diff --git a/package-lock.json b/package-lock.json index 53b46f0..6f825d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@athenna/core", - "version": "5.28.0", + "version": "5.29.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@athenna/core", - "version": "5.28.0", + "version": "5.29.0", "license": "MIT", "dependencies": { "pretty-repl": "^3.1.2", @@ -41,6 +41,8 @@ "lint-staged": "^12.5.0", "nodemon": "^3.1.10", "prettier": "^2.8.8", + "reflect-metadata": "^0.2.2", + "source-map-support": "^0.5.21", "vite": "^6.3.5" }, "engines": { @@ -224,6 +226,13 @@ "typescript": "^5.5.4" } }, + "node_modules/@athenna/tsconfig/node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@athenna/view": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@athenna/view/-/view-5.4.0.tgz", @@ -4613,6 +4622,13 @@ "dev": true, "license": "MIT" }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/buffer/node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -12807,9 +12823,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true, "license": "Apache-2.0" }, @@ -13745,6 +13761,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", diff --git a/package.json b/package.json index 3517e9d..34beb79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/core", - "version": "5.28.0", + "version": "5.29.0", "description": "One foundation for multiple applications.", "license": "MIT", "author": "João Lenon ", @@ -109,6 +109,8 @@ "lint-staged": "^12.5.0", "nodemon": "^3.1.10", "prettier": "^2.8.8", + "reflect-metadata": "^0.2.2", + "source-map-support": "^0.5.21", "vite": "^6.3.5" }, "c8": { diff --git a/src/ignite/Ignite.ts b/src/ignite/Ignite.ts index 7907661..bc56ee6 100644 --- a/src/ignite/Ignite.ts +++ b/src/ignite/Ignite.ts @@ -7,6 +7,8 @@ * file that was distributed with this source code. */ +import sourceMapSupport from 'source-map-support' + import type { SemverNode, CronOptions, @@ -55,6 +57,16 @@ export class Ignite extends Macroable { */ public options: IgniteOptions + /** + * Install source maps support if the --enable-source-maps + * flag is not set. + */ + public installSourceMaps() { + if (!process.execArgv.includes('--enable-source-maps')) { + sourceMapSupport.install({ handleUncaughtExceptions: false }) + } + } + /** * Load the Ignite class using the options and meta url path. */ diff --git a/src/index.ts b/src/index.ts index 34a511c..3398c20 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,6 +7,8 @@ * file that was distributed with this source code. */ +import 'reflect-metadata' + export * from '#src/types' export * from '#src/facades/Repl'