@kvishal04/library-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +458 -0
- package/dist/appConfig.d.ts +16 -0
- package/dist/appConfig.d.ts.map +1 -0
- package/dist/appConfig.js +37 -0
- package/dist/appConfig.js.map +1 -0
- package/dist/configmanager/index.d.ts +38 -0
- package/dist/configmanager/index.d.ts.map +1 -0
- package/dist/configmanager/index.js +52 -0
- package/dist/configmanager/index.js.map +1 -0
- package/dist/configmanager/src/events/config.events.d.ts +19 -0
- package/dist/configmanager/src/events/config.events.d.ts.map +1 -0
- package/dist/configmanager/src/events/config.events.js +22 -0
- package/dist/configmanager/src/events/config.events.js.map +1 -0
- package/dist/configmanager/src/models/config.cache.d.ts +16 -0
- package/dist/configmanager/src/models/config.cache.d.ts.map +1 -0
- package/dist/configmanager/src/models/config.cache.js +37 -0
- package/dist/configmanager/src/models/config.cache.js.map +1 -0
- package/dist/configmanager/src/models/config.meta.d.ts +13 -0
- package/dist/configmanager/src/models/config.meta.d.ts.map +1 -0
- package/dist/configmanager/src/models/config.meta.js +30 -0
- package/dist/configmanager/src/models/config.meta.js.map +1 -0
- package/dist/configmanager/src/models/config.registry.d.ts +29 -0
- package/dist/configmanager/src/models/config.registry.d.ts.map +1 -0
- package/dist/configmanager/src/models/config.registry.js +121 -0
- package/dist/configmanager/src/models/config.registry.js.map +1 -0
- package/dist/configmanager/src/routes.d.ts +4 -0
- package/dist/configmanager/src/routes.d.ts.map +1 -0
- package/dist/configmanager/src/routes.js +292 -0
- package/dist/configmanager/src/routes.js.map +1 -0
- package/dist/configmanager/src/service.d.ts +90 -0
- package/dist/configmanager/src/service.d.ts.map +1 -0
- package/dist/configmanager/src/service.js +163 -0
- package/dist/configmanager/src/service.js.map +1 -0
- package/dist/configmanager/src/types/api.types.d.ts +11 -0
- package/dist/configmanager/src/types/api.types.d.ts.map +1 -0
- package/dist/configmanager/src/types/api.types.js +4 -0
- package/dist/configmanager/src/types/api.types.js.map +1 -0
- package/dist/configmanager/src/types/config.meta.types.d.ts +12 -0
- package/dist/configmanager/src/types/config.meta.types.d.ts.map +1 -0
- package/dist/configmanager/src/types/config.meta.types.js +5 -0
- package/dist/configmanager/src/types/config.meta.types.js.map +1 -0
- package/dist/configmanager/src/types/config.types.d.ts +17 -0
- package/dist/configmanager/src/types/config.types.d.ts.map +1 -0
- package/dist/configmanager/src/types/config.types.js +5 -0
- package/dist/configmanager/src/types/config.types.js.map +1 -0
- package/dist/configmanager/src/utils/config.file.d.ts +72 -0
- package/dist/configmanager/src/utils/config.file.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.file.js +238 -0
- package/dist/configmanager/src/utils/config.file.js.map +1 -0
- package/dist/configmanager/src/utils/config.loader.d.ts +20 -0
- package/dist/configmanager/src/utils/config.loader.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.loader.js +116 -0
- package/dist/configmanager/src/utils/config.loader.js.map +1 -0
- package/dist/configmanager/src/utils/config.parser.d.ts +10 -0
- package/dist/configmanager/src/utils/config.parser.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.parser.js +52 -0
- package/dist/configmanager/src/utils/config.parser.js.map +1 -0
- package/dist/configmanager/src/utils/config.path.d.ts +18 -0
- package/dist/configmanager/src/utils/config.path.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.path.js +68 -0
- package/dist/configmanager/src/utils/config.path.js.map +1 -0
- package/dist/configmanager/src/utils/config.serializer.d.ts +15 -0
- package/dist/configmanager/src/utils/config.serializer.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.serializer.js +51 -0
- package/dist/configmanager/src/utils/config.serializer.js.map +1 -0
- package/dist/configmanager/src/utils/config.validator.d.ts +11 -0
- package/dist/configmanager/src/utils/config.validator.d.ts.map +1 -0
- package/dist/configmanager/src/utils/config.validator.js +20 -0
- package/dist/configmanager/src/utils/config.validator.js.map +1 -0
- package/dist/connectors.d.ts +4 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +29 -0
- package/dist/connectors.js.map +1 -0
- package/dist/constant.d.ts +43 -0
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +45 -0
- package/dist/constant.js.map +1 -0
- package/dist/crons/task-scheduler.cron.d.ts +2 -0
- package/dist/crons/task-scheduler.cron.d.ts.map +1 -0
- package/dist/crons/task-scheduler.cron.js +53 -0
- package/dist/crons/task-scheduler.cron.js.map +1 -0
- package/dist/db/index.d.ts +8 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +18 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/pool.d.ts +2 -0
- package/dist/db/pool.d.ts.map +1 -0
- package/dist/db/pool.js +8 -0
- package/dist/db/pool.js.map +1 -0
- package/dist/db/src/Controller.d.ts +22 -0
- package/dist/db/src/Controller.d.ts.map +1 -0
- package/dist/db/src/Controller.js +43 -0
- package/dist/db/src/Controller.js.map +1 -0
- package/dist/db/src/config/adaptor.base.d.ts +18 -0
- package/dist/db/src/config/adaptor.base.d.ts.map +1 -0
- package/dist/db/src/config/adaptor.base.js +64 -0
- package/dist/db/src/config/adaptor.base.js.map +1 -0
- package/dist/db/src/config/connection.db.d.ts +17 -0
- package/dist/db/src/config/connection.db.d.ts.map +1 -0
- package/dist/db/src/config/connection.db.js +25 -0
- package/dist/db/src/config/connection.db.js.map +1 -0
- package/dist/db/src/config/main.db.d.ts +7 -0
- package/dist/db/src/config/main.db.d.ts.map +1 -0
- package/dist/db/src/config/main.db.js +53 -0
- package/dist/db/src/config/main.db.js.map +1 -0
- package/dist/db/src/config/transaction.db.d.ts +11 -0
- package/dist/db/src/config/transaction.db.d.ts.map +1 -0
- package/dist/db/src/config/transaction.db.js +24 -0
- package/dist/db/src/config/transaction.db.js.map +1 -0
- package/dist/db/src/models/index.d.ts +4 -0
- package/dist/db/src/models/index.d.ts.map +1 -0
- package/dist/db/src/models/index.js +3 -0
- package/dist/db/src/models/index.js.map +1 -0
- package/dist/db/src/pool.d.ts +8 -0
- package/dist/db/src/pool.d.ts.map +1 -0
- package/dist/db/src/pool.js +34 -0
- package/dist/db/src/pool.js.map +1 -0
- package/dist/db/src/utils/binding.wrapper.d.ts +7 -0
- package/dist/db/src/utils/binding.wrapper.d.ts.map +1 -0
- package/dist/db/src/utils/binding.wrapper.js +28 -0
- package/dist/db/src/utils/binding.wrapper.js.map +1 -0
- package/dist/db/src/utils/logger.db.d.ts +11 -0
- package/dist/db/src/utils/logger.db.d.ts.map +1 -0
- package/dist/db/src/utils/logger.db.js +51 -0
- package/dist/db/src/utils/logger.db.js.map +1 -0
- package/dist/db/src/utils/result.wrapper.d.ts +9 -0
- package/dist/db/src/utils/result.wrapper.d.ts.map +1 -0
- package/dist/db/src/utils/result.wrapper.js +40 -0
- package/dist/db/src/utils/result.wrapper.js.map +1 -0
- package/dist/db.d.ts +10 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +20 -0
- package/dist/db.js.map +1 -0
- package/dist/defaults/application.config.d.ts +3 -0
- package/dist/defaults/application.config.d.ts.map +1 -0
- package/dist/defaults/application.config.js +35 -0
- package/dist/defaults/application.config.js.map +1 -0
- package/dist/encryption.d.ts +3 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +30 -0
- package/dist/encryption.js.map +1 -0
- package/dist/excelUtil.d.ts +33 -0
- package/dist/excelUtil.d.ts.map +1 -0
- package/dist/excelUtil.js +197 -0
- package/dist/excelUtil.js.map +1 -0
- package/dist/geoLocation.d.ts +16 -0
- package/dist/geoLocation.d.ts.map +1 -0
- package/dist/geoLocation.js +38 -0
- package/dist/geoLocation.js.map +1 -0
- package/dist/imageResizer.d.ts +15 -0
- package/dist/imageResizer.d.ts.map +1 -0
- package/dist/imageResizer.js +47 -0
- package/dist/imageResizer.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/application.interfaces.d.ts +70 -0
- package/dist/interfaces/application.interfaces.d.ts.map +1 -0
- package/dist/interfaces/application.interfaces.js +3 -0
- package/dist/interfaces/application.interfaces.js.map +1 -0
- package/dist/middleware/application.middleware.d.ts +4 -0
- package/dist/middleware/application.middleware.d.ts.map +1 -0
- package/dist/middleware/application.middleware.js +14 -0
- package/dist/middleware/application.middleware.js.map +1 -0
- package/dist/middleware/auth.d.ts +19 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +191 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/core.middleware.d.ts +4 -0
- package/dist/middleware/core.middleware.d.ts.map +1 -0
- package/dist/middleware/core.middleware.js +8 -0
- package/dist/middleware/core.middleware.js.map +1 -0
- package/dist/middleware/error.d.ts +4 -0
- package/dist/middleware/error.d.ts.map +1 -0
- package/dist/middleware/error.js +9 -0
- package/dist/middleware/error.js.map +1 -0
- package/dist/middleware/index.d.ts +7 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +25 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/multipart.d.ts +6 -0
- package/dist/middleware/multipart.d.ts.map +1 -0
- package/dist/middleware/multipart.js +59 -0
- package/dist/middleware/multipart.js.map +1 -0
- package/dist/middleware/system.middleware.d.ts +4 -0
- package/dist/middleware/system.middleware.d.ts.map +1 -0
- package/dist/middleware/system.middleware.js +14 -0
- package/dist/middleware/system.middleware.js.map +1 -0
- package/dist/responseHandler.d.ts +46 -0
- package/dist/responseHandler.d.ts.map +1 -0
- package/dist/responseHandler.js +105 -0
- package/dist/responseHandler.js.map +1 -0
- package/dist/session.d.ts +59 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +262 -0
- package/dist/session.js.map +1 -0
- package/dist/spreadsheet/index.d.ts +15 -0
- package/dist/spreadsheet/index.d.ts.map +1 -0
- package/dist/spreadsheet/index.js +37 -0
- package/dist/spreadsheet/index.js.map +1 -0
- package/dist/spreadsheet/src/SpreadsheetRouter.d.ts +3 -0
- package/dist/spreadsheet/src/SpreadsheetRouter.d.ts.map +1 -0
- package/dist/spreadsheet/src/SpreadsheetRouter.js +262 -0
- package/dist/spreadsheet/src/SpreadsheetRouter.js.map +1 -0
- package/dist/spreadsheet/src/models/SpreadsheetTypes.d.ts +74 -0
- package/dist/spreadsheet/src/models/SpreadsheetTypes.d.ts.map +1 -0
- package/dist/spreadsheet/src/models/SpreadsheetTypes.js +3 -0
- package/dist/spreadsheet/src/models/SpreadsheetTypes.js.map +1 -0
- package/dist/spreadsheet/src/models/index.d.ts +2 -0
- package/dist/spreadsheet/src/models/index.d.ts.map +1 -0
- package/dist/spreadsheet/src/models/index.js +18 -0
- package/dist/spreadsheet/src/models/index.js.map +1 -0
- package/dist/spreadsheet/src/service/SpreadsheetService.d.ts +72 -0
- package/dist/spreadsheet/src/service/SpreadsheetService.d.ts.map +1 -0
- package/dist/spreadsheet/src/service/SpreadsheetService.js +232 -0
- package/dist/spreadsheet/src/service/SpreadsheetService.js.map +1 -0
- package/dist/spreadsheet/src/utils/styleUtils.d.ts +31 -0
- package/dist/spreadsheet/src/utils/styleUtils.d.ts.map +1 -0
- package/dist/spreadsheet/src/utils/styleUtils.js +84 -0
- package/dist/spreadsheet/src/utils/styleUtils.js.map +1 -0
- package/dist/system/config-manager/config-loader.d.ts +57 -0
- package/dist/system/config-manager/config-loader.d.ts.map +1 -0
- package/dist/system/config-manager/config-loader.js +217 -0
- package/dist/system/config-manager/config-loader.js.map +1 -0
- package/dist/system/config-manager/handlers/file.d.ts +4 -0
- package/dist/system/config-manager/handlers/file.d.ts.map +1 -0
- package/dist/system/config-manager/handlers/file.js +70 -0
- package/dist/system/config-manager/handlers/file.js.map +1 -0
- package/dist/system/config-manager/handlers/reload-configs.d.ts +4 -0
- package/dist/system/config-manager/handlers/reload-configs.d.ts.map +1 -0
- package/dist/system/config-manager/handlers/reload-configs.js +63 -0
- package/dist/system/config-manager/handlers/reload-configs.js.map +1 -0
- package/dist/system/config-manager/handlers/rename.d.ts +3 -0
- package/dist/system/config-manager/handlers/rename.d.ts.map +1 -0
- package/dist/system/config-manager/handlers/rename.js +80 -0
- package/dist/system/config-manager/handlers/rename.js.map +1 -0
- package/dist/system/config-manager/handlers/status.d.ts +3 -0
- package/dist/system/config-manager/handlers/status.d.ts.map +1 -0
- package/dist/system/config-manager/handlers/status.js +55 -0
- package/dist/system/config-manager/handlers/status.js.map +1 -0
- package/dist/system/config-manager/handlers/tree.d.ts +4 -0
- package/dist/system/config-manager/handlers/tree.d.ts.map +1 -0
- package/dist/system/config-manager/handlers/tree.js +64 -0
- package/dist/system/config-manager/handlers/tree.js.map +1 -0
- package/dist/system/config-manager/helpers.d.ts +20 -0
- package/dist/system/config-manager/helpers.d.ts.map +1 -0
- package/dist/system/config-manager/helpers.js +123 -0
- package/dist/system/config-manager/helpers.js.map +1 -0
- package/dist/system/config-manager/index.d.ts +3 -0
- package/dist/system/config-manager/index.d.ts.map +1 -0
- package/dist/system/config-manager/index.js +22 -0
- package/dist/system/config-manager/index.js.map +1 -0
- package/dist/system.applications/configure-app-cors.d.ts +3 -0
- package/dist/system.applications/configure-app-cors.d.ts.map +1 -0
- package/dist/system.applications/configure-app-cors.js +35 -0
- package/dist/system.applications/configure-app-cors.js.map +1 -0
- package/dist/system.applications/controller.d.ts +48 -0
- package/dist/system.applications/controller.d.ts.map +1 -0
- package/dist/system.applications/controller.js +165 -0
- package/dist/system.applications/controller.js.map +1 -0
- package/dist/system.applications/requestContext.d.ts +41 -0
- package/dist/system.applications/requestContext.d.ts.map +1 -0
- package/dist/system.applications/requestContext.js +78 -0
- package/dist/system.applications/requestContext.js.map +1 -0
- package/dist/system.applications/response.helpers.d.ts +22 -0
- package/dist/system.applications/response.helpers.d.ts.map +1 -0
- package/dist/system.applications/response.helpers.js +53 -0
- package/dist/system.applications/response.helpers.js.map +1 -0
- package/dist/system.applications/response.types.d.ts +33 -0
- package/dist/system.applications/response.types.d.ts.map +1 -0
- package/dist/system.applications/response.types.js +3 -0
- package/dist/system.applications/response.types.js.map +1 -0
- package/dist/system.applications/sessions.d.ts +29 -0
- package/dist/system.applications/sessions.d.ts.map +1 -0
- package/dist/system.applications/sessions.js +129 -0
- package/dist/system.applications/sessions.js.map +1 -0
- package/dist/system.applications/util.d.ts +7 -0
- package/dist/system.applications/util.d.ts.map +1 -0
- package/dist/system.applications/util.js +35 -0
- package/dist/system.applications/util.js.map +1 -0
- package/dist/types/response.types.d.ts +19 -0
- package/dist/types/response.types.d.ts.map +1 -0
- package/dist/types/response.types.js +3 -0
- package/dist/types/response.types.js.map +1 -0
- package/dist/util.d.ts +13 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +69 -0
- package/dist/util.js.map +1 -0
- package/dist/validator/index.d.ts +3 -0
- package/dist/validator/index.d.ts.map +1 -0
- package/dist/validator/index.js +9 -0
- package/dist/validator/index.js.map +1 -0
- package/dist/validator/src/errors/validation.d.ts +6 -0
- package/dist/validator/src/errors/validation.d.ts.map +1 -0
- package/dist/validator/src/errors/validation.js +14 -0
- package/dist/validator/src/errors/validation.js.map +1 -0
- package/dist/validator/src/main.d.ts +61 -0
- package/dist/validator/src/main.d.ts.map +1 -0
- package/dist/validator/src/main.js +65 -0
- package/dist/validator/src/main.js.map +1 -0
- package/dist/validator/src/rules/array.d.ts +2 -0
- package/dist/validator/src/rules/array.d.ts.map +1 -0
- package/dist/validator/src/rules/array.js +15 -0
- package/dist/validator/src/rules/array.js.map +1 -0
- package/dist/validator/src/rules/between.d.ts +6 -0
- package/dist/validator/src/rules/between.d.ts.map +1 -0
- package/dist/validator/src/rules/between.js +15 -0
- package/dist/validator/src/rules/between.js.map +1 -0
- package/dist/validator/src/rules/boolean.d.ts +2 -0
- package/dist/validator/src/rules/boolean.d.ts.map +1 -0
- package/dist/validator/src/rules/boolean.js +15 -0
- package/dist/validator/src/rules/boolean.js.map +1 -0
- package/dist/validator/src/rules/check.d.ts +7 -0
- package/dist/validator/src/rules/check.d.ts.map +1 -0
- package/dist/validator/src/rules/check.js +15 -0
- package/dist/validator/src/rules/check.js.map +1 -0
- package/dist/validator/src/rules/custom.d.ts +15 -0
- package/dist/validator/src/rules/custom.d.ts.map +1 -0
- package/dist/validator/src/rules/custom.js +47 -0
- package/dist/validator/src/rules/custom.js.map +1 -0
- package/dist/validator/src/rules/email.d.ts +2 -0
- package/dist/validator/src/rules/email.d.ts.map +1 -0
- package/dist/validator/src/rules/email.js +15 -0
- package/dist/validator/src/rules/email.js.map +1 -0
- package/dist/validator/src/rules/enum.d.ts +6 -0
- package/dist/validator/src/rules/enum.d.ts.map +1 -0
- package/dist/validator/src/rules/enum.js +15 -0
- package/dist/validator/src/rules/enum.js.map +1 -0
- package/dist/validator/src/rules/file.d.ts +2 -0
- package/dist/validator/src/rules/file.d.ts.map +1 -0
- package/dist/validator/src/rules/file.js +29 -0
- package/dist/validator/src/rules/file.js.map +1 -0
- package/dist/validator/src/rules/notEmpty.d.ts +2 -0
- package/dist/validator/src/rules/notEmpty.d.ts.map +1 -0
- package/dist/validator/src/rules/notEmpty.js +15 -0
- package/dist/validator/src/rules/notEmpty.js.map +1 -0
- package/dist/validator/src/rules/number.d.ts +2 -0
- package/dist/validator/src/rules/number.d.ts.map +1 -0
- package/dist/validator/src/rules/number.js +15 -0
- package/dist/validator/src/rules/number.js.map +1 -0
- package/dist/validator/src/rules/object.d.ts +2 -0
- package/dist/validator/src/rules/object.d.ts.map +1 -0
- package/dist/validator/src/rules/object.js +15 -0
- package/dist/validator/src/rules/object.js.map +1 -0
- package/dist/validator/src/rules/pattern.d.ts +6 -0
- package/dist/validator/src/rules/pattern.d.ts.map +1 -0
- package/dist/validator/src/rules/pattern.js +15 -0
- package/dist/validator/src/rules/pattern.js.map +1 -0
- package/dist/validator/src/rules/phone.d.ts +2 -0
- package/dist/validator/src/rules/phone.d.ts.map +1 -0
- package/dist/validator/src/rules/phone.js +15 -0
- package/dist/validator/src/rules/phone.js.map +1 -0
- package/dist/validator/src/rules/required.d.ts +2 -0
- package/dist/validator/src/rules/required.d.ts.map +1 -0
- package/dist/validator/src/rules/required.js +12 -0
- package/dist/validator/src/rules/required.js.map +1 -0
- package/dist/validator/src/rules/string.d.ts +2 -0
- package/dist/validator/src/rules/string.d.ts.map +1 -0
- package/dist/validator/src/rules/string.js +15 -0
- package/dist/validator/src/rules/string.js.map +1 -0
- package/dist/validator/src/rules/url.d.ts +2 -0
- package/dist/validator/src/rules/url.d.ts.map +1 -0
- package/dist/validator/src/rules/url.js +15 -0
- package/dist/validator/src/rules/url.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../core/system/config-manager/handlers/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const CONFIG_ROOT: string;
|
|
2
|
+
export declare function resolveConfigPath(relativePath: string): string;
|
|
3
|
+
export declare function ensurePathInsideRoot(resolvedPath: string): void;
|
|
4
|
+
export declare function ensureFolder(folderPath: string): Promise<void>;
|
|
5
|
+
export declare function normalizeToConfigFile(relativePath: string, allowDirectory?: boolean): string;
|
|
6
|
+
/**
|
|
7
|
+
* Writes the status value into the file's `<file>:status` alternate data stream.
|
|
8
|
+
*/
|
|
9
|
+
export declare function writeFileStatus(filePath: string, status: 'active' | 'inactive'): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Reads the status value from the file's `<file>:status` alternate data stream.
|
|
12
|
+
* Returns null if the stream does not exist yet.
|
|
13
|
+
*/
|
|
14
|
+
export declare function readFileStatus(filePath: string): Promise<'active' | 'inactive' | null>;
|
|
15
|
+
export declare function buildTree(dirPath: string, relativeBase?: string): Promise<any[]>;
|
|
16
|
+
export declare function countTreeItems(nodes: any[]): {
|
|
17
|
+
files: number;
|
|
18
|
+
directories: number;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../core/system/config-manager/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,EAAyC,MAAM,CAAC;AAIxE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS9D;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAI/D;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,MAAM,CAU1F;AAUD;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,CASvC;AAID,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,SAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAuBlF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAgBnF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CONFIG_ROOT = void 0;
|
|
7
|
+
exports.resolveConfigPath = resolveConfigPath;
|
|
8
|
+
exports.ensurePathInsideRoot = ensurePathInsideRoot;
|
|
9
|
+
exports.ensureFolder = ensureFolder;
|
|
10
|
+
exports.normalizeToConfigFile = normalizeToConfigFile;
|
|
11
|
+
exports.writeFileStatus = writeFileStatus;
|
|
12
|
+
exports.readFileStatus = readFileStatus;
|
|
13
|
+
exports.buildTree = buildTree;
|
|
14
|
+
exports.countTreeItems = countTreeItems;
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
17
|
+
const appConfig_1 = __importDefault(require("../../appConfig"));
|
|
18
|
+
exports.CONFIG_ROOT = appConfig_1.default.get('APP_CONFIG_ROOT');
|
|
19
|
+
// ─── Path Utilities ───────────────────────────────────────────────────────────
|
|
20
|
+
function resolveConfigPath(relativePath) {
|
|
21
|
+
if (!relativePath || typeof relativePath !== 'string') {
|
|
22
|
+
throw new Error('Path is required');
|
|
23
|
+
}
|
|
24
|
+
const normalized = path_1.default.normalize(relativePath);
|
|
25
|
+
if (normalized.startsWith('..') || path_1.default.isAbsolute(normalized)) {
|
|
26
|
+
throw new Error('Invalid path');
|
|
27
|
+
}
|
|
28
|
+
return path_1.default.resolve(exports.CONFIG_ROOT, normalized);
|
|
29
|
+
}
|
|
30
|
+
function ensurePathInsideRoot(resolvedPath) {
|
|
31
|
+
if (!resolvedPath.startsWith(path_1.default.resolve(exports.CONFIG_ROOT))) {
|
|
32
|
+
throw new Error('Path outside config root is not allowed');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function ensureFolder(folderPath) {
|
|
36
|
+
await promises_1.default.mkdir(folderPath, { recursive: true, mode: 0o755 });
|
|
37
|
+
}
|
|
38
|
+
function normalizeToConfigFile(relativePath, allowDirectory = false) {
|
|
39
|
+
if (!relativePath || typeof relativePath !== 'string') {
|
|
40
|
+
throw new Error('Path is required');
|
|
41
|
+
}
|
|
42
|
+
if (allowDirectory && relativePath.endsWith('/'))
|
|
43
|
+
return relativePath;
|
|
44
|
+
const ext = path_1.default.extname(relativePath);
|
|
45
|
+
if (!ext)
|
|
46
|
+
return `${relativePath}.config`;
|
|
47
|
+
if (ext !== '.config')
|
|
48
|
+
throw new Error('Only .config files are allowed');
|
|
49
|
+
return relativePath;
|
|
50
|
+
}
|
|
51
|
+
// ─── File Attribute Utilities (NTFS Alternate Data Streams) ─────────────────
|
|
52
|
+
//
|
|
53
|
+
// Status is stored as a named stream on the file: `file.config:status`
|
|
54
|
+
// The main file content is never modified. ADS is invisible to normal reads
|
|
55
|
+
// and travels with the file on NTFS volumes.
|
|
56
|
+
const STATUS_STREAM = ':status';
|
|
57
|
+
/**
|
|
58
|
+
* Writes the status value into the file's `<file>:status` alternate data stream.
|
|
59
|
+
*/
|
|
60
|
+
async function writeFileStatus(filePath, status) {
|
|
61
|
+
await promises_1.default.writeFile(`${filePath}${STATUS_STREAM}`, status, 'utf8');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Reads the status value from the file's `<file>:status` alternate data stream.
|
|
65
|
+
* Returns null if the stream does not exist yet.
|
|
66
|
+
*/
|
|
67
|
+
async function readFileStatus(filePath) {
|
|
68
|
+
try {
|
|
69
|
+
const raw = await promises_1.default.readFile(`${filePath}${STATUS_STREAM}`, 'utf8');
|
|
70
|
+
const val = raw.trim().toLowerCase();
|
|
71
|
+
if (val === 'active' || val === 'inactive')
|
|
72
|
+
return val;
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// ─── Tree Builder ─────────────────────────────────────────────────────────────
|
|
80
|
+
async function buildTree(dirPath, relativeBase = '') {
|
|
81
|
+
const entries = await promises_1.default.readdir(dirPath, { withFileTypes: true });
|
|
82
|
+
const items = [];
|
|
83
|
+
for (const entry of entries) {
|
|
84
|
+
const entryFull = path_1.default.join(dirPath, entry.name);
|
|
85
|
+
const entryRel = path_1.default.join(relativeBase || '', entry.name).replace(/\\/g, '/');
|
|
86
|
+
const stat = await promises_1.default.stat(entryFull).catch(() => null);
|
|
87
|
+
if (entry.isDirectory()) {
|
|
88
|
+
const children = await buildTree(entryFull, entryRel);
|
|
89
|
+
items.push({ name: entry.name, type: 'directory', path: entryRel + '/', children });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const fileStatus = await readFileStatus(entryFull);
|
|
93
|
+
items.push({
|
|
94
|
+
name: entry.name,
|
|
95
|
+
type: 'file',
|
|
96
|
+
path: entryRel,
|
|
97
|
+
size: stat?.size ?? 0,
|
|
98
|
+
modifiedAt: stat?.mtime ?? null,
|
|
99
|
+
configStatus: fileStatus ?? 'active',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return items;
|
|
104
|
+
}
|
|
105
|
+
function countTreeItems(nodes) {
|
|
106
|
+
let files = 0;
|
|
107
|
+
let directories = 0;
|
|
108
|
+
for (const node of nodes) {
|
|
109
|
+
if (node.type === 'directory') {
|
|
110
|
+
directories++;
|
|
111
|
+
if (node.children?.length) {
|
|
112
|
+
const child = countTreeItems(node.children);
|
|
113
|
+
files += child.files;
|
|
114
|
+
directories += child.directories;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
files++;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { files, directories };
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../core/system/config-manager/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/system/config-manager/index.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAWhC,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const tree_1 = require("./handlers/tree");
|
|
8
|
+
const file_1 = require("./handlers/file");
|
|
9
|
+
const status_1 = require("./handlers/status");
|
|
10
|
+
const rename_1 = require("./handlers/rename");
|
|
11
|
+
const reload_configs_1 = require("./handlers/reload-configs");
|
|
12
|
+
const router = express_1.default.Router();
|
|
13
|
+
router.post('/config-manager/tree', tree_1.treeHandler);
|
|
14
|
+
router.post('/config-manager/reload', tree_1.reloadHandler);
|
|
15
|
+
router.post('/config-manager/file', file_1.fileHandler);
|
|
16
|
+
router.post('/config-manager/save', express_1.default.text({ type: '*/*', limit: '10mb' }), file_1.saveHandler);
|
|
17
|
+
router.post('/config-manager/status', status_1.statusHandler);
|
|
18
|
+
router.post('/config-manager/rename', rename_1.renameHandler);
|
|
19
|
+
router.post('/config-manager/reload-configs', reload_configs_1.reloadConfigsHandler);
|
|
20
|
+
router.post('/config-manager/get-config', reload_configs_1.getConfigHandler);
|
|
21
|
+
exports.default = router;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../core/system/config-manager/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,0CAA6D;AAC7D,0CAA2D;AAC3D,8CAAkD;AAClD,8CAAkD;AAClD,8DAGmC;AAEnC,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;AAEhC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAY,kBAAW,CAAC,CAAC;AAC3D,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAU,oBAAa,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAY,kBAAW,CAAC,CAAC;AAC3D,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAY,iBAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAW,CAAC,CAAC;AACzG,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAU,sBAAa,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAU,sBAAa,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,qCAAoB,CAAC,CAAC;AACpE,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAM,iCAAgB,CAAC,CAAC;AAEhE,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-app-cors.d.ts","sourceRoot":"","sources":["../../core/system.applications/configure-app-cors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,OAgCzD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureAppCors = configureAppCors;
|
|
7
|
+
const cors_1 = __importDefault(require("cors"));
|
|
8
|
+
const application_config_1 = require("../defaults/application.config");
|
|
9
|
+
function configureAppCors(config) {
|
|
10
|
+
const corsConfig = {
|
|
11
|
+
...application_config_1.APP_DEFAULT_CONFIG.cors,
|
|
12
|
+
...config.cors,
|
|
13
|
+
};
|
|
14
|
+
const allowedMethods = config.allowedMethods ?? application_config_1.APP_DEFAULT_CONFIG.allowedMethods ?? ['POST', 'OPTIONS'];
|
|
15
|
+
const allowedHeaders = config.allowedHeaders ?? application_config_1.APP_DEFAULT_CONFIG.allowedHeaders ?? [];
|
|
16
|
+
const options = {
|
|
17
|
+
origin: (origin, callback) => {
|
|
18
|
+
const allowed = corsConfig.allowedOrigins;
|
|
19
|
+
if (allowed.includes('*')) {
|
|
20
|
+
return callback(null, true);
|
|
21
|
+
}
|
|
22
|
+
if (!origin || allowed.includes(origin)) {
|
|
23
|
+
return callback(null, true);
|
|
24
|
+
}
|
|
25
|
+
return callback(new Error('CORS origin denied'), false);
|
|
26
|
+
},
|
|
27
|
+
credentials: corsConfig.allowCredentials,
|
|
28
|
+
maxAge: corsConfig.maxAge,
|
|
29
|
+
exposedHeaders: corsConfig.exposedHeaders,
|
|
30
|
+
methods: allowedMethods,
|
|
31
|
+
allowedHeaders: allowedHeaders,
|
|
32
|
+
};
|
|
33
|
+
return (0, cors_1.default)(options);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=configure-app-cors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-app-cors.js","sourceRoot":"","sources":["../../core/system.applications/configure-app-cors.ts"],"names":[],"mappings":";;;;;AAIA,4CAgCC;AApCD,gDAAyC;AAEzC,uEAAoE;AAEpE,SAAgB,gBAAgB,CAAC,MAAyB;IACxD,MAAM,UAAU,GAAG;QACjB,GAAG,uCAAkB,CAAC,IAAI;QAC1B,GAAG,MAAM,CAAC,IAAI;KACf,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uCAAkB,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzG,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uCAAkB,CAAC,cAAc,IAAI,EAAE,CAAC;IAExF,MAAM,OAAO,GAAgB;QAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC;YAE1C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,WAAW,EAAE,UAAU,CAAC,gBAAgB;QACxC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,OAAO,EAAE,cAAc;QACvB,cAAc,EAAE,cAAc;KAC/B,CAAC;IAEF,OAAO,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { ServiceResponse } from './response.types';
|
|
3
|
+
import { ApplicationConfig, RouteDefinition } from '../interfaces/application.interfaces';
|
|
4
|
+
export declare class ApiController {
|
|
5
|
+
private readonly config;
|
|
6
|
+
constructor(config: ApplicationConfig);
|
|
7
|
+
parseAction(action: string): {
|
|
8
|
+
method: string;
|
|
9
|
+
slug: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Resolve stage by group name
|
|
13
|
+
*/
|
|
14
|
+
resolveStage(group: string): RouteDefinition;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve action slug → service method
|
|
17
|
+
*/
|
|
18
|
+
resolveAction(stage: RouteDefinition, slug: string): {
|
|
19
|
+
method: string;
|
|
20
|
+
slug: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Validate developer key
|
|
24
|
+
*/
|
|
25
|
+
validateDevKey(): Promise<void>;
|
|
26
|
+
validateBodyForSpecialCharacter(body: any): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Validate stage access (auth / session / RBAC)
|
|
29
|
+
*/
|
|
30
|
+
validateStage(stage: any): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Unified error handler
|
|
33
|
+
*/
|
|
34
|
+
static handleError(res: Response, err: any): void;
|
|
35
|
+
/**
|
|
36
|
+
* Typed error factory
|
|
37
|
+
*/
|
|
38
|
+
static error(status: number, message: string, debug?: unknown): {
|
|
39
|
+
status: number;
|
|
40
|
+
message: string;
|
|
41
|
+
debug: unknown;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Unified response sender
|
|
45
|
+
*/
|
|
46
|
+
static sendResponse(res: Response, result: ServiceResponse): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../core/system.applications/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE1F,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IACtD,WAAW,CAAC,MAAM,EAAE,MAAM;;;;IAO1B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAQ5C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;;;;IAalD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,+BAA+B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAUjD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;;;;;IAI7D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;CAsElE"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ApiController = void 0;
|
|
7
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
8
|
+
class ApiController {
|
|
9
|
+
config;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
parseAction(action) {
|
|
14
|
+
const [method, slug] = action.split('|');
|
|
15
|
+
return {
|
|
16
|
+
method,
|
|
17
|
+
slug: slug || method,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve stage by group name
|
|
22
|
+
*/
|
|
23
|
+
resolveStage(group) {
|
|
24
|
+
const stage = this.config.routes.find((s) => s.name === group);
|
|
25
|
+
if (!stage) {
|
|
26
|
+
throw ApiController.error(404, `Invalid API group: ${group}`);
|
|
27
|
+
}
|
|
28
|
+
return stage;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve action slug → service method
|
|
32
|
+
*/
|
|
33
|
+
resolveAction(stage, slug) {
|
|
34
|
+
const match = stage.actions.find((a) => {
|
|
35
|
+
const { slug: actionSlug } = this.parseAction(a);
|
|
36
|
+
return actionSlug === slug;
|
|
37
|
+
});
|
|
38
|
+
if (!match) {
|
|
39
|
+
throw ApiController.error(404, `Action '${slug}' not allowed for group '${stage.name}'`);
|
|
40
|
+
}
|
|
41
|
+
return this.parseAction(match);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Validate developer key
|
|
45
|
+
*/
|
|
46
|
+
async validateDevKey() {
|
|
47
|
+
console.log('Validating dev key...');
|
|
48
|
+
if (!this.config.validateDevKey)
|
|
49
|
+
return;
|
|
50
|
+
const ok = await this.config.validateDevKey();
|
|
51
|
+
if (!ok) {
|
|
52
|
+
throw ApiController.error(401, 'Invalid developer key');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async validateBodyForSpecialCharacter(body) {
|
|
56
|
+
console.log('Validating body for special characters...');
|
|
57
|
+
if (!this.config.validateBodyForSpecialCharacter)
|
|
58
|
+
return;
|
|
59
|
+
const ok = await this.config.validateBodyForSpecialCharacter(body);
|
|
60
|
+
if (!ok) {
|
|
61
|
+
throw ApiController.error(400, 'Body contains invalid characters');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Validate stage access (auth / session / RBAC)
|
|
66
|
+
*/
|
|
67
|
+
async validateStage(stage) {
|
|
68
|
+
if (!this.config.stageValidation)
|
|
69
|
+
return;
|
|
70
|
+
const ok = await this.config.stageValidation(stage);
|
|
71
|
+
var stageErrorMessage = '';
|
|
72
|
+
if (!ok) {
|
|
73
|
+
// check for custom error message
|
|
74
|
+
if (this.config.stageErrorMessage) {
|
|
75
|
+
const stageError = this.config.stageErrorMessage.filter((s) => s.stage === stage)[0];
|
|
76
|
+
if (stageError) {
|
|
77
|
+
stageErrorMessage = stageError.message;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
throw ApiController.error(403, stageErrorMessage || 'Stage access denied');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Unified error handler
|
|
85
|
+
*/
|
|
86
|
+
static handleError(res, err) {
|
|
87
|
+
const status = err.status || 500;
|
|
88
|
+
res.status(status).json({
|
|
89
|
+
status: false,
|
|
90
|
+
message: err.message || 'Internal Server Error',
|
|
91
|
+
...(err.debug && { debug: err.debug }),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Typed error factory
|
|
96
|
+
*/
|
|
97
|
+
static error(status, message, debug) {
|
|
98
|
+
return { status, message, debug };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Unified response sender
|
|
102
|
+
*/
|
|
103
|
+
static sendResponse(res, result) {
|
|
104
|
+
switch (result.kind) {
|
|
105
|
+
case 'json':
|
|
106
|
+
res.status(result.statusCode ?? 200).json({
|
|
107
|
+
status: result.payload && 'status' in result.payload ? result.payload.status : true,
|
|
108
|
+
statusCode: result.statusCode ?? 200,
|
|
109
|
+
// success: result.success ?? (result.statusCode ? result.statusCode >= 200 && result.statusCode < 300 : true),
|
|
110
|
+
message: result.payload && 'message' in result.payload
|
|
111
|
+
? result.payload.message
|
|
112
|
+
: 'Success',
|
|
113
|
+
output: result.payload && 'output' in result.payload
|
|
114
|
+
? result.payload.output
|
|
115
|
+
: undefined,
|
|
116
|
+
error: result.payload && 'error' in result.payload ? result.payload.error : undefined,
|
|
117
|
+
...(result.payload.translationId && { translationId: result.payload.translationId }),
|
|
118
|
+
//payload: result.payload,
|
|
119
|
+
});
|
|
120
|
+
break;
|
|
121
|
+
case 'buffer':
|
|
122
|
+
if (result.contentType) {
|
|
123
|
+
res.setHeader('Content-Type', result.contentType);
|
|
124
|
+
}
|
|
125
|
+
res.status(result.statusCode ?? 200).send(result.buffer);
|
|
126
|
+
break;
|
|
127
|
+
case 'render':
|
|
128
|
+
const { view, data, statusCode } = result;
|
|
129
|
+
// Heuristic: inline template vs file
|
|
130
|
+
const isInlineTemplate = view.includes('{{') || view.includes('<');
|
|
131
|
+
if (isInlineTemplate) {
|
|
132
|
+
const template = handlebars_1.default.compile(view);
|
|
133
|
+
const html = template(data || {});
|
|
134
|
+
res.status(statusCode ?? 200).send(html);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// File-based render (Handlebars engine)
|
|
138
|
+
res.status(statusCode ?? 200).render(view, data);
|
|
139
|
+
break;
|
|
140
|
+
case 'file':
|
|
141
|
+
if (result.mimeType) {
|
|
142
|
+
res.setHeader('Content-Type', result.mimeType);
|
|
143
|
+
}
|
|
144
|
+
res.setHeader('Content-Disposition', `attachment; filename="${result.fileName}"`);
|
|
145
|
+
res.download(result.filePath, result.fileName, (err) => {
|
|
146
|
+
if (err && !res.headersSent) {
|
|
147
|
+
console.error('Error downloading file:', err);
|
|
148
|
+
res.status(500).json({
|
|
149
|
+
status: false,
|
|
150
|
+
message: 'Failed to download file',
|
|
151
|
+
error: err.message,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
break;
|
|
156
|
+
default:
|
|
157
|
+
res.status(500).json({
|
|
158
|
+
status: false,
|
|
159
|
+
message: 'Invalid response type',
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.ApiController = ApiController;
|
|
165
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../core/system.applications/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RequestContext
|
|
3
|
+
*
|
|
4
|
+
* - Request-scoped storage
|
|
5
|
+
* - Safe for concurrent users
|
|
6
|
+
* - Automatically cleared after request lifecycle
|
|
7
|
+
*/
|
|
8
|
+
export declare class RequestContext {
|
|
9
|
+
private static storage;
|
|
10
|
+
/**
|
|
11
|
+
* Initialize a new request context.
|
|
12
|
+
* Must be called once per request (middleware).
|
|
13
|
+
*/
|
|
14
|
+
static run<T>(callback: () => T): T;
|
|
15
|
+
/**
|
|
16
|
+
* Set a value in the current request context
|
|
17
|
+
*/
|
|
18
|
+
static set<T = unknown>(key: string, value: T): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get all value from the current request context
|
|
21
|
+
*/
|
|
22
|
+
static getAll(): Record<string, unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* Get a value from the current request context
|
|
25
|
+
*/
|
|
26
|
+
static get<T = unknown>(key: string, defaultValue?: T): T | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a key exists in context
|
|
29
|
+
*/
|
|
30
|
+
static has(key: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Remove a key from context
|
|
33
|
+
*/
|
|
34
|
+
static delete(key: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Clear the entire context (optional)
|
|
37
|
+
* Usually not needed — context is auto-cleared after request
|
|
38
|
+
*/
|
|
39
|
+
static clear(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=requestContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../core/system.applications/requestContext.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAyC;IAE/D;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAInC;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAUpD;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWxC;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAMrE;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKhC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAIrB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestContext = void 0;
|
|
4
|
+
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
/**
|
|
6
|
+
* RequestContext
|
|
7
|
+
*
|
|
8
|
+
* - Request-scoped storage
|
|
9
|
+
* - Safe for concurrent users
|
|
10
|
+
* - Automatically cleared after request lifecycle
|
|
11
|
+
*/
|
|
12
|
+
class RequestContext {
|
|
13
|
+
static storage = new async_hooks_1.AsyncLocalStorage();
|
|
14
|
+
/**
|
|
15
|
+
* Initialize a new request context.
|
|
16
|
+
* Must be called once per request (middleware).
|
|
17
|
+
*/
|
|
18
|
+
static run(callback) {
|
|
19
|
+
return this.storage.run(new Map(), callback);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Set a value in the current request context
|
|
23
|
+
*/
|
|
24
|
+
static set(key, value) {
|
|
25
|
+
const store = this.storage.getStore();
|
|
26
|
+
if (!store) {
|
|
27
|
+
throw new Error('RequestContext not initialized. Did you forget to call RequestContext.run()?');
|
|
28
|
+
}
|
|
29
|
+
store.set(key, value);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get all value from the current request context
|
|
33
|
+
*/
|
|
34
|
+
static getAll() {
|
|
35
|
+
const store = this.storage.getStore();
|
|
36
|
+
if (!store) {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
const result = {};
|
|
40
|
+
for (const [key, value] of store.entries()) {
|
|
41
|
+
result[key] = value;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get a value from the current request context
|
|
47
|
+
*/
|
|
48
|
+
static get(key, defaultValue) {
|
|
49
|
+
const store = this.storage.getStore();
|
|
50
|
+
if (!store)
|
|
51
|
+
return defaultValue;
|
|
52
|
+
return store.get(key) ?? defaultValue;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if a key exists in context
|
|
56
|
+
*/
|
|
57
|
+
static has(key) {
|
|
58
|
+
const store = this.storage.getStore();
|
|
59
|
+
return store ? store.has(key) : false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Remove a key from context
|
|
63
|
+
*/
|
|
64
|
+
static delete(key) {
|
|
65
|
+
const store = this.storage.getStore();
|
|
66
|
+
store?.delete(key);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Clear the entire context (optional)
|
|
70
|
+
* Usually not needed — context is auto-cleared after request
|
|
71
|
+
*/
|
|
72
|
+
static clear() {
|
|
73
|
+
const store = this.storage.getStore();
|
|
74
|
+
store?.clear();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.RequestContext = RequestContext;
|
|
78
|
+
//# sourceMappingURL=requestContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestContext.js","sourceRoot":"","sources":["../../core/system.applications/requestContext.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAOhD;;;;;;GAMG;AACH,MAAa,cAAc;IACjB,MAAM,CAAC,OAAO,GAAG,IAAI,+BAAiB,EAAgB,CAAC;IAE/D;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAI,QAAiB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAc,GAAW,EAAE,KAAQ;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;OAEG;IACH,MAAM,CAAC,GAAG,CAAc,GAAW,EAAE,YAAgB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAC;QAChC,OAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAO,IAAI,YAAY,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;;AAtEH,wCAuEC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JsonResponse, BufferResponse, RenderResponse } from './response.types';
|
|
2
|
+
declare function JSON<T>(payload: T, statusCode?: number): JsonResponse<T>;
|
|
3
|
+
declare function BUFFER(buffer: Buffer, contentType?: string, statusCode?: number): BufferResponse;
|
|
4
|
+
declare function RENDER(view: string, data?: Record<string, any>, statusCode?: number): RenderResponse;
|
|
5
|
+
declare function TPL(location: string, data?: Record<string, any>, statusCode?: number): RenderResponse;
|
|
6
|
+
declare function FILE(filePath: string, fileName: string, mimeType?: string): {
|
|
7
|
+
kind: "file";
|
|
8
|
+
filePath: string;
|
|
9
|
+
fileName: string;
|
|
10
|
+
mimeType: string;
|
|
11
|
+
statusCode: number;
|
|
12
|
+
};
|
|
13
|
+
declare class ResponseHelper {
|
|
14
|
+
JSON: typeof JSON;
|
|
15
|
+
BUFFER: typeof BUFFER;
|
|
16
|
+
RENDER: typeof RENDER;
|
|
17
|
+
TPL: typeof TPL;
|
|
18
|
+
FILE: typeof FILE;
|
|
19
|
+
}
|
|
20
|
+
declare const Response: ResponseHelper;
|
|
21
|
+
export default Response;
|
|
22
|
+
//# sourceMappingURL=response.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.helpers.d.ts","sourceRoot":"","sources":["../../core/system.applications/response.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEhF,iBAAS,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,SAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAO9D;AAED,iBAAS,MAAM,CACb,MAAM,EAAE,MAAM,EACd,WAAW,SAA6B,EACxC,UAAU,SAAM,GACf,cAAc,CAOhB;AAED,iBAAS,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,UAAU,SAAM,GAAG,cAAc,CAO9F;AACD,iBAAS,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,UAAU,SAAM,GAAG,cAAc,CAO/F;AAED,iBAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;EAQlE;AAED,cAAM,cAAc;IAClB,IAAI,cAAQ;IACZ,MAAM,gBAAU;IAChB,MAAM,gBAAU;IAChB,GAAG,aAAO;IACV,IAAI,cAAQ;CACb;AAED,QAAA,MAAM,QAAQ,gBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC"}
|