@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
package/README.md
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
# @kvishal04/library-core
|
|
2
|
+
|
|
3
|
+
Reusable TypeScript utility library for backend applications.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @kvishal04/library-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Node Version
|
|
12
|
+
|
|
13
|
+
- Node.js 18 or above is recommended.
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import {
|
|
19
|
+
validator,
|
|
20
|
+
ResponseHandler,
|
|
21
|
+
SessionManager,
|
|
22
|
+
HTTP_RESPONSE_CODE,
|
|
23
|
+
} from '@kvishal04/library-core';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Environment Setup
|
|
27
|
+
|
|
28
|
+
Set only what your used modules need.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Encryption
|
|
32
|
+
SECRET_KEY=your-secret
|
|
33
|
+
SECRET_IV=your-secret-iv
|
|
34
|
+
ENCRYPTION_METHOD=aes-256-cbc
|
|
35
|
+
|
|
36
|
+
# GeoLocation
|
|
37
|
+
GOOGLE_MAPS_API_KEY=your-google-api-key
|
|
38
|
+
|
|
39
|
+
# Session store location (optional)
|
|
40
|
+
PROJECT_ROOT=/absolute/project/path
|
|
41
|
+
|
|
42
|
+
# DB module
|
|
43
|
+
DB_CONFIG=[{"CONNECTION_NAME":"master","DB_TYPE":"mysql","CONFIG":{"SERVER_NAME":"localhost","PORT":3306,"USERNAME":"root","PASSWORD":"pass","DATABASE":"appdb"}}]
|
|
44
|
+
|
|
45
|
+
# Cron scheduler
|
|
46
|
+
CRON_JOBS=[{"JOB_NAME":"refresh-cache","CRON_EXPRESSION":"*/5 * * * *","url":"http://localhost:3000/internal/refresh","method":"POST","headers":{"authorization":"Bearer token"},"body":{}}]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Exported Features
|
|
50
|
+
|
|
51
|
+
- Constants and enums
|
|
52
|
+
- Validator
|
|
53
|
+
- ResponseHandler
|
|
54
|
+
- SessionManager
|
|
55
|
+
- Encryption helpers
|
|
56
|
+
- GeoLocation
|
|
57
|
+
- ExcelUtil
|
|
58
|
+
- Image resizer
|
|
59
|
+
- Cron scheduler helper
|
|
60
|
+
- DB module
|
|
61
|
+
- Spreadsheet module
|
|
62
|
+
- ConfigManager module
|
|
63
|
+
- Connectors loader
|
|
64
|
+
- AppConfig singleton
|
|
65
|
+
- Middleware helpers (auth, multipart, system/core/app middleware, error handler)
|
|
66
|
+
- System config-manager router
|
|
67
|
+
- System application helpers (CORS, controller, request context, render/util)
|
|
68
|
+
- Utility helpers (HttpError, throwError, validateBodyForSpecialCharacter)
|
|
69
|
+
- Core response type aliases (CoreJsonResponse, CoreBufferResponse, CoreRenderResponse, CoreServiceResponse)
|
|
70
|
+
- Session store alias (SessionStore)
|
|
71
|
+
|
|
72
|
+
## Detailed Usage
|
|
73
|
+
|
|
74
|
+
### 1) Constants
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
import { HTTP_RESPONSE_CODE, Operators, ActionType } from '@kvishal04/library-core';
|
|
78
|
+
|
|
79
|
+
if (code === HTTP_RESPONSE_CODE.SUCCESS) {
|
|
80
|
+
// success branch
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const filter = { operator: Operators.And, action: ActionType.login };
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2) Validator
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
import { validator } from '@kvishal04/library-core';
|
|
90
|
+
|
|
91
|
+
const schema = {
|
|
92
|
+
required: ['name', 'email'],
|
|
93
|
+
string: ['name'],
|
|
94
|
+
email: ['email'],
|
|
95
|
+
number: ['age'],
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const payload = {
|
|
99
|
+
name: 'Vishal',
|
|
100
|
+
email: 'vishal@example.com',
|
|
101
|
+
age: 28,
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
validator.validate(payload, schema);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 3) ResponseHandler (Express)
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { ResponseHandler } from '@kvishal04/library-core';
|
|
111
|
+
|
|
112
|
+
export function getProfile(_req: any, res: any) {
|
|
113
|
+
return ResponseHandler.success(res, 200, 'Profile fetched', { id: 'u_101' });
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function createUser(_req: any, res: any) {
|
|
117
|
+
return ResponseHandler.validationError(res, 'Validation failed', {
|
|
118
|
+
email: 'Invalid email',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 4) SessionManager
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
import { SessionManager } from '@kvishal04/library-core';
|
|
127
|
+
|
|
128
|
+
const sessionId = SessionManager.createSession(
|
|
129
|
+
'user-123',
|
|
130
|
+
{
|
|
131
|
+
userAgent: req.headers['user-agent'],
|
|
132
|
+
acceptLanguage: req.headers['accept-language'],
|
|
133
|
+
ipAddress: req.ip,
|
|
134
|
+
},
|
|
135
|
+
'my-app'
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
const result = SessionManager.validateSession(
|
|
139
|
+
sessionId,
|
|
140
|
+
{
|
|
141
|
+
userAgent: req.headers['user-agent'],
|
|
142
|
+
acceptLanguage: req.headers['accept-language'],
|
|
143
|
+
ipAddress: req.ip,
|
|
144
|
+
},
|
|
145
|
+
'my-app'
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
if (!result.valid) {
|
|
149
|
+
// handle invalid session
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 5) Encryption
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { encryptData, decryptData } from '@kvishal04/library-core';
|
|
157
|
+
|
|
158
|
+
const encrypted = encryptData({ userId: 'user-123' });
|
|
159
|
+
const decrypted = decryptData(encrypted);
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 6) GeoLocation
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
import { GeoLocation } from '@kvishal04/library-core';
|
|
166
|
+
|
|
167
|
+
const latLng = await GeoLocation.getLatLngFromAddress(
|
|
168
|
+
'My Office',
|
|
169
|
+
'MG Road',
|
|
170
|
+
'Karnataka',
|
|
171
|
+
'Bengaluru',
|
|
172
|
+
'India'
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
const fullData = await GeoLocation.getGeoDataFromAddress(
|
|
176
|
+
'My Office',
|
|
177
|
+
'MG Road',
|
|
178
|
+
'Karnataka',
|
|
179
|
+
'Bengaluru',
|
|
180
|
+
'India',
|
|
181
|
+
process.env.MY_RUNTIME_MAP_KEY
|
|
182
|
+
);
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 7) ExcelUtil
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import { ExcelUtil } from '@kvishal04/library-core';
|
|
189
|
+
|
|
190
|
+
const buffer = await ExcelUtil.createExcelBuffer([
|
|
191
|
+
{ id: 1, name: 'A' },
|
|
192
|
+
{ id: 2, name: 'B' },
|
|
193
|
+
]);
|
|
194
|
+
|
|
195
|
+
const multiBuffer = await ExcelUtil.createMultiSheetExcelBuffer([
|
|
196
|
+
{ sheetName: 'Users', data: [{ id: 1, name: 'Vishal' }] },
|
|
197
|
+
{ sheetName: 'Orders', data: [{ orderId: 'O1', amount: 1200 }] },
|
|
198
|
+
]);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 8) Image Resizer
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
import { resizeImageFromUrl } from '@kvishal04/library-core';
|
|
205
|
+
|
|
206
|
+
const blobs = await resizeImageFromUrl({
|
|
207
|
+
baseImageUrl: 'https://example.com/image.jpg',
|
|
208
|
+
sizes: [64, 128, 256],
|
|
209
|
+
options: {
|
|
210
|
+
fit: 'contain',
|
|
211
|
+
quality: 90,
|
|
212
|
+
compressionLevel: 6,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
// blobs['64x64'] -> Blob
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### 9) Cron Scheduler
|
|
220
|
+
|
|
221
|
+
```ts
|
|
222
|
+
import { scheduleTaskSchedulerJob } from '@kvishal04/library-core';
|
|
223
|
+
|
|
224
|
+
scheduleTaskSchedulerJob();
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
This reads `CRON_JOBS` from environment and schedules each valid cron expression.
|
|
228
|
+
|
|
229
|
+
### 10) DB Module
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
import { DB } from '@kvishal04/library-core';
|
|
233
|
+
|
|
234
|
+
const db = DB.connect('master');
|
|
235
|
+
const rows = await db.raw('SELECT 1 AS ok');
|
|
236
|
+
|
|
237
|
+
const health = await DB.status('master');
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 11) Spreadsheet Module
|
|
241
|
+
|
|
242
|
+
```ts
|
|
243
|
+
import { SpreadsheetService } from '@kvishal04/library-core';
|
|
244
|
+
|
|
245
|
+
const svc = new SpreadsheetService();
|
|
246
|
+
|
|
247
|
+
await svc.createFile('exports/report.xlsx', {
|
|
248
|
+
sheets: [
|
|
249
|
+
{
|
|
250
|
+
name: 'Report',
|
|
251
|
+
rows: [
|
|
252
|
+
{ id: 1, name: 'A' },
|
|
253
|
+
{ id: 2, name: 'B' },
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
],
|
|
257
|
+
freezeHeader: true,
|
|
258
|
+
autoFilter: true,
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
const parsed = await svc.readFile('exports/report.xlsx');
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
If you want API routes:
|
|
265
|
+
|
|
266
|
+
```ts
|
|
267
|
+
import express from 'express';
|
|
268
|
+
import { SpreadsheetRouter } from '@kvishal04/library-core';
|
|
269
|
+
|
|
270
|
+
const app = express();
|
|
271
|
+
app.use(SpreadsheetRouter);
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### 12) ConfigManager Module
|
|
275
|
+
|
|
276
|
+
```ts
|
|
277
|
+
import { ConfigManager, ConfigManagerApiRoutes } from '@kvishal04/library-core';
|
|
278
|
+
|
|
279
|
+
await ConfigManager.reloadConfigs();
|
|
280
|
+
const cfg = ConfigManager.getConfig('notify/email/gmail.config');
|
|
281
|
+
|
|
282
|
+
ConfigManager.on('config:reloaded', ({ key }) => {
|
|
283
|
+
console.log('Config reloaded:', key);
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Mount API routes:
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
import express from 'express';
|
|
291
|
+
import { ConfigManagerApiRoutes } from '@kvishal04/library-core';
|
|
292
|
+
|
|
293
|
+
const app = express();
|
|
294
|
+
app.use('/config-manager', ConfigManagerApiRoutes);
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### 13) Connectors Loader
|
|
298
|
+
|
|
299
|
+
```ts
|
|
300
|
+
import { Connectors } from '@kvishal04/library-core';
|
|
301
|
+
|
|
302
|
+
const connector = Connectors.load('payments');
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### 14) AppConfig Singleton
|
|
306
|
+
|
|
307
|
+
```ts
|
|
308
|
+
import { AppConfig } from '@kvishal04/library-core';
|
|
309
|
+
|
|
310
|
+
AppConfig.set('APP_CONFIG_ROOT', 'C:/configs');
|
|
311
|
+
const root = AppConfig.get<string>('APP_CONFIG_ROOT');
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### 15) CORS Setup Helper
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
import express from 'express';
|
|
318
|
+
import { configureAppCors } from '@kvishal04/library-core';
|
|
319
|
+
|
|
320
|
+
const app = express();
|
|
321
|
+
|
|
322
|
+
app.use(
|
|
323
|
+
configureAppCors({
|
|
324
|
+
debug: false,
|
|
325
|
+
routes: [],
|
|
326
|
+
cors: {
|
|
327
|
+
allowedOrigins: ['http://localhost:3000'],
|
|
328
|
+
allowCredentials: true,
|
|
329
|
+
maxAge: 86400,
|
|
330
|
+
},
|
|
331
|
+
allowedMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
332
|
+
allowedHeaders: ['Content-Type', 'Authorization'],
|
|
333
|
+
})
|
|
334
|
+
);
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### 16) ApiController and RequestContext
|
|
338
|
+
|
|
339
|
+
```ts
|
|
340
|
+
import { ApiController, RequestContext } from '@kvishal04/library-core';
|
|
341
|
+
|
|
342
|
+
RequestContext.run(() => {
|
|
343
|
+
RequestContext.set('requestId', 'req-123');
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
const controller = new ApiController({
|
|
347
|
+
debug: true,
|
|
348
|
+
routes: [],
|
|
349
|
+
cors: {
|
|
350
|
+
allowedOrigins: ['*'],
|
|
351
|
+
allowCredentials: false,
|
|
352
|
+
maxAge: 0,
|
|
353
|
+
},
|
|
354
|
+
allowedMethods: ['POST', 'OPTIONS'],
|
|
355
|
+
allowedHeaders: ['Content-Type'],
|
|
356
|
+
});
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### 17) System Response Helper
|
|
360
|
+
|
|
361
|
+
```ts
|
|
362
|
+
import { SystemResponse } from '@kvishal04/library-core';
|
|
363
|
+
|
|
364
|
+
return SystemResponse.JSON({ message: 'ok' }, 200);
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### 18) System Config-Manager Router
|
|
368
|
+
|
|
369
|
+
```ts
|
|
370
|
+
import express from 'express';
|
|
371
|
+
import { SystemConfigManagerRouter } from '@kvishal04/library-core';
|
|
372
|
+
|
|
373
|
+
const app = express();
|
|
374
|
+
app.use(SystemConfigManagerRouter);
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### 19) Middleware Helpers
|
|
378
|
+
|
|
379
|
+
```ts
|
|
380
|
+
import express from 'express';
|
|
381
|
+
import {
|
|
382
|
+
applicationMiddleware,
|
|
383
|
+
coreMiddleware,
|
|
384
|
+
systemMiddleware,
|
|
385
|
+
errorHandler,
|
|
386
|
+
multipartAny,
|
|
387
|
+
normalizeMultipartBody,
|
|
388
|
+
verifyJWT,
|
|
389
|
+
sessionAuth,
|
|
390
|
+
generateJWT,
|
|
391
|
+
} from '@kvishal04/library-core';
|
|
392
|
+
|
|
393
|
+
const app = express();
|
|
394
|
+
|
|
395
|
+
app.use(applicationMiddleware);
|
|
396
|
+
app.use(coreMiddleware);
|
|
397
|
+
app.use(systemMiddleware);
|
|
398
|
+
|
|
399
|
+
app.post('/upload', multipartAny, (req, res) => {
|
|
400
|
+
const body = normalizeMultipartBody(req);
|
|
401
|
+
res.json({ status: true, files: body.files?.length || 0 });
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
app.get('/secure', (req, res) => {
|
|
405
|
+
const user = verifyJWT(req);
|
|
406
|
+
if (!sessionAuth('my-app')) {
|
|
407
|
+
return res.status(401).json({ status: false, message: 'Unauthorized' });
|
|
408
|
+
}
|
|
409
|
+
return res.json({ status: true, user });
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
app.use(errorHandler);
|
|
413
|
+
|
|
414
|
+
const token = generateJWT({ userId: 'u_101' }, '24h');
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### 20) Utility Helpers
|
|
418
|
+
|
|
419
|
+
```ts
|
|
420
|
+
import {
|
|
421
|
+
HttpError,
|
|
422
|
+
throwError,
|
|
423
|
+
validateBodyForSpecialCharacter,
|
|
424
|
+
returnDateYYYYMMDD,
|
|
425
|
+
} from '@learn/library-core';
|
|
426
|
+
|
|
427
|
+
const isValid = validateBodyForSpecialCharacter({ name: 'Vishal' });
|
|
428
|
+
if (!isValid) {
|
|
429
|
+
throw new HttpError('Invalid payload', 400);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
const today = returnDateYYYYMMDD(new Date());
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### 21) Core Response Type Aliases
|
|
436
|
+
|
|
437
|
+
```ts
|
|
438
|
+
import type { CoreServiceResponse } from '@kvishal04/library-core';
|
|
439
|
+
|
|
440
|
+
const response: CoreServiceResponse = {
|
|
441
|
+
kind: 'json',
|
|
442
|
+
payload: { ok: true },
|
|
443
|
+
statusCode: 200,
|
|
444
|
+
};
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
## Build
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
npm run build
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
## Publish
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
npm login
|
|
457
|
+
npm publish --access public
|
|
458
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type ConfigValue = any;
|
|
2
|
+
declare class AppConfig {
|
|
3
|
+
private store;
|
|
4
|
+
set(key: string, value: ConfigValue): void;
|
|
5
|
+
get<T = ConfigValue>(key: string, defaultValue?: T): T;
|
|
6
|
+
has(key: string): boolean;
|
|
7
|
+
remove(key: string): void;
|
|
8
|
+
all(): Record<string, ConfigValue>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* SINGLETON EXPORT
|
|
12
|
+
* Same instance shared across entire app
|
|
13
|
+
*/
|
|
14
|
+
declare const __AppConfig: AppConfig;
|
|
15
|
+
export default __AppConfig;
|
|
16
|
+
//# sourceMappingURL=appConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../core/appConfig.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG,GAAG,CAAC;AAEvB,cAAM,SAAS;IACb,OAAO,CAAC,KAAK,CAAmC;IAEhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAO1C,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC;IAYtD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;CAGnC;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW,WAAkB,CAAC;AACpC,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// src/core/config.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
class AppConfig {
|
|
5
|
+
store = {};
|
|
6
|
+
set(key, value) {
|
|
7
|
+
if (!key) {
|
|
8
|
+
throw new Error('Config key is required');
|
|
9
|
+
}
|
|
10
|
+
this.store[key] = value;
|
|
11
|
+
}
|
|
12
|
+
get(key, defaultValue) {
|
|
13
|
+
if (!key) {
|
|
14
|
+
throw new Error('Config key is required');
|
|
15
|
+
}
|
|
16
|
+
if (this.store.hasOwnProperty(key)) {
|
|
17
|
+
return this.store[key];
|
|
18
|
+
}
|
|
19
|
+
return defaultValue;
|
|
20
|
+
}
|
|
21
|
+
has(key) {
|
|
22
|
+
return this.store.hasOwnProperty(key);
|
|
23
|
+
}
|
|
24
|
+
remove(key) {
|
|
25
|
+
delete this.store[key];
|
|
26
|
+
}
|
|
27
|
+
all() {
|
|
28
|
+
return { ...this.store };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* SINGLETON EXPORT
|
|
33
|
+
* Same instance shared across entire app
|
|
34
|
+
*/
|
|
35
|
+
const __AppConfig = new AppConfig();
|
|
36
|
+
exports.default = __AppConfig;
|
|
37
|
+
//# sourceMappingURL=appConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appConfig.js","sourceRoot":"","sources":["../core/appConfig.ts"],"names":[],"mappings":";AAAA,qBAAqB;;AAIrB,MAAM,SAAS;IACL,KAAK,GAAgC,EAAE,CAAC;IAEhD,GAAG,CAAC,GAAW,EAAE,KAAkB;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,GAAG,CAAkB,GAAW,EAAE,YAAgB;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;QAC9B,CAAC;QAED,OAAO,YAAiB,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,GAAG;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,IAAI,SAAS,EAAE,CAAC;AACpC,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfigManager — public barrel
|
|
3
|
+
*
|
|
4
|
+
* ── Router (mount in your Express app) ───────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* import { ConfigManagerApiRoutes } from '@server/core/configmanager';
|
|
7
|
+
* app.use('/config-manager', ConfigManagerApiRoutes);
|
|
8
|
+
*
|
|
9
|
+
* ── Service (use anywhere in the codebase) ────────────────────────────────────
|
|
10
|
+
*
|
|
11
|
+
* import ConfigManager from '@server/core/configmanager';
|
|
12
|
+
*
|
|
13
|
+
* await ConfigManager.reloadConfigs();
|
|
14
|
+
* const cfg = ConfigManager.getConfig('notify/email/gmail.config');
|
|
15
|
+
*
|
|
16
|
+
* ── Events ────────────────────────────────────────────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* import ConfigManager from '@server/core/configmanager';
|
|
19
|
+
* ConfigManager.on('config:reloaded', ({ key }) => { ... });
|
|
20
|
+
*
|
|
21
|
+
* ── Named import ──────────────────────────────────────────────────────────────
|
|
22
|
+
*
|
|
23
|
+
* import { ConfigManager } from '@server/core/configmanager';
|
|
24
|
+
*/
|
|
25
|
+
export { default } from './src/service';
|
|
26
|
+
export { default as ConfigManager } from './src/service';
|
|
27
|
+
export declare const ConfigManagerApiRoutes: import("express-serve-static-core").Router;
|
|
28
|
+
export type { ConfigMeta, ConfigRegistry } from './src/types/config.meta.types';
|
|
29
|
+
export type { CacheEntry, RuntimeMeta } from './src/types/config.types';
|
|
30
|
+
export type { ApiResponse, ApiSuccessResponse, ApiErrorResponse } from './src/types/api.types';
|
|
31
|
+
export { configEvents } from './src/events/config.events';
|
|
32
|
+
export type { ConfigEventName, ConfigEventPayload } from './src/events/config.events';
|
|
33
|
+
export { parseConfig } from './src/utils/config.parser';
|
|
34
|
+
export { validateConfig } from './src/utils/config.validator';
|
|
35
|
+
export type { ValidationRule, ValidationResult } from './src/utils/config.validator';
|
|
36
|
+
export { sanitize, getAllConfigsSafe } from './src/utils/config.serializer';
|
|
37
|
+
export { scanConfigFiles } from './src/utils/config.loader';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../core/configmanager/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAMzD,eAAO,MAAM,sBAAsB,4CAAsB,CAAC;AAI1D,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAChF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI/F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAItF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ConfigManager — public barrel
|
|
4
|
+
*
|
|
5
|
+
* ── Router (mount in your Express app) ───────────────────────────────────────
|
|
6
|
+
*
|
|
7
|
+
* import { ConfigManagerApiRoutes } from '@server/core/configmanager';
|
|
8
|
+
* app.use('/config-manager', ConfigManagerApiRoutes);
|
|
9
|
+
*
|
|
10
|
+
* ── Service (use anywhere in the codebase) ────────────────────────────────────
|
|
11
|
+
*
|
|
12
|
+
* import ConfigManager from '@server/core/configmanager';
|
|
13
|
+
*
|
|
14
|
+
* await ConfigManager.reloadConfigs();
|
|
15
|
+
* const cfg = ConfigManager.getConfig('notify/email/gmail.config');
|
|
16
|
+
*
|
|
17
|
+
* ── Events ────────────────────────────────────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* import ConfigManager from '@server/core/configmanager';
|
|
20
|
+
* ConfigManager.on('config:reloaded', ({ key }) => { ... });
|
|
21
|
+
*
|
|
22
|
+
* ── Named import ──────────────────────────────────────────────────────────────
|
|
23
|
+
*
|
|
24
|
+
* import { ConfigManager } from '@server/core/configmanager';
|
|
25
|
+
*/
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.scanConfigFiles = exports.getAllConfigsSafe = exports.sanitize = exports.validateConfig = exports.parseConfig = exports.configEvents = exports.ConfigManagerApiRoutes = exports.ConfigManager = exports.default = void 0;
|
|
31
|
+
// ─── Service ──────────────────────────────────────────────────────────────────
|
|
32
|
+
var service_1 = require("./src/service");
|
|
33
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(service_1).default; } });
|
|
34
|
+
var service_2 = require("./src/service");
|
|
35
|
+
Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return __importDefault(service_2).default; } });
|
|
36
|
+
// ─── Router ───────────────────────────────────────────────────────────────────
|
|
37
|
+
const routes_1 = require("./src/routes");
|
|
38
|
+
exports.ConfigManagerApiRoutes = routes_1.ConfigManagerRoutes;
|
|
39
|
+
// ─── Events ───────────────────────────────────────────────────────────────────
|
|
40
|
+
var config_events_1 = require("./src/events/config.events");
|
|
41
|
+
Object.defineProperty(exports, "configEvents", { enumerable: true, get: function () { return config_events_1.configEvents; } });
|
|
42
|
+
// ─── Utils (for advanced consumers) ──────────────────────────────────────────
|
|
43
|
+
var config_parser_1 = require("./src/utils/config.parser");
|
|
44
|
+
Object.defineProperty(exports, "parseConfig", { enumerable: true, get: function () { return config_parser_1.parseConfig; } });
|
|
45
|
+
var config_validator_1 = require("./src/utils/config.validator");
|
|
46
|
+
Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_validator_1.validateConfig; } });
|
|
47
|
+
var config_serializer_1 = require("./src/utils/config.serializer");
|
|
48
|
+
Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return config_serializer_1.sanitize; } });
|
|
49
|
+
Object.defineProperty(exports, "getAllConfigsSafe", { enumerable: true, get: function () { return config_serializer_1.getAllConfigsSafe; } });
|
|
50
|
+
var config_loader_1 = require("./src/utils/config.loader");
|
|
51
|
+
Object.defineProperty(exports, "scanConfigFiles", { enumerable: true, get: function () { return config_loader_1.scanConfigFiles; } });
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../core/configmanager/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,iFAAiF;AAEjF,yCAAwC;AAA/B,mHAAA,OAAO,OAAA;AAChB,yCAAyD;AAAhD,yHAAA,OAAO,OAAiB;AAEjC,iFAAiF;AAEjF,yCAAmD;AAEtC,QAAA,sBAAsB,GAAG,4BAAmB,CAAC;AAQ1D,iFAAiF;AAEjF,4DAA0D;AAAjD,6GAAA,YAAY,OAAA;AAGrB,gFAAgF;AAEhF,2DAAwD;AAA/C,4GAAA,WAAW,OAAA;AACpB,iEAA8D;AAArD,kHAAA,cAAc,OAAA;AAEvB,mEAA4E;AAAnE,6GAAA,QAAQ,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AACpC,2DAA4D;AAAnD,gHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
export type ConfigEventName = 'config:loaded' | 'config:reloaded' | 'config:updated' | 'config:archived' | 'config:unarchived' | 'config:deleted' | 'config:cache-flushed';
|
|
3
|
+
export interface ConfigEventPayload {
|
|
4
|
+
/** Normalized cache key (lowercase, forward-slash path) */
|
|
5
|
+
key: string;
|
|
6
|
+
/** Original relative path as supplied by the caller */
|
|
7
|
+
path: string;
|
|
8
|
+
/** Optional discriminator for handlers that care about the action taken */
|
|
9
|
+
action?: string;
|
|
10
|
+
}
|
|
11
|
+
declare class ConfigEventEmitter extends EventEmitter {
|
|
12
|
+
emit(event: ConfigEventName, payload?: ConfigEventPayload): boolean;
|
|
13
|
+
on(event: ConfigEventName, listener: (payload: ConfigEventPayload) => void): this;
|
|
14
|
+
once(event: ConfigEventName, listener: (payload: ConfigEventPayload) => void): this;
|
|
15
|
+
off(event: ConfigEventName, listener: (payload: ConfigEventPayload) => void): this;
|
|
16
|
+
}
|
|
17
|
+
export declare const configEvents: ConfigEventEmitter;
|
|
18
|
+
export default configEvents;
|
|
19
|
+
//# sourceMappingURL=config.events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.events.d.ts","sourceRoot":"","sources":["../../../../core/configmanager/src/events/config.events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,CAAC;AAI3B,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,cAAM,kBAAmB,SAAQ,YAAY;IAC3C,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO;IAInE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAIjF,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAInF,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;CAGnF;AAED,eAAO,MAAM,YAAY,oBAA2B,CAAC;AACrD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configEvents = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
// ─── Typed EventEmitter ───────────────────────────────────────────────────────
|
|
6
|
+
class ConfigEventEmitter extends events_1.EventEmitter {
|
|
7
|
+
emit(event, payload) {
|
|
8
|
+
return super.emit(event, payload);
|
|
9
|
+
}
|
|
10
|
+
on(event, listener) {
|
|
11
|
+
return super.on(event, listener);
|
|
12
|
+
}
|
|
13
|
+
once(event, listener) {
|
|
14
|
+
return super.once(event, listener);
|
|
15
|
+
}
|
|
16
|
+
off(event, listener) {
|
|
17
|
+
return super.off(event, listener);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.configEvents = new ConfigEventEmitter();
|
|
21
|
+
exports.default = exports.configEvents;
|
|
22
|
+
//# sourceMappingURL=config.events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.events.js","sourceRoot":"","sources":["../../../../core/configmanager/src/events/config.events.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAwBtC,iFAAiF;AAEjF,MAAM,kBAAmB,SAAQ,qBAAY;IAC3C,IAAI,CAAC,KAAsB,EAAE,OAA4B;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,EAAE,CAAC,KAAsB,EAAE,QAA+C;QACxE,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,KAAsB,EAAE,QAA+C;QAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,KAAsB,EAAE,QAA+C;QACzE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;CACF;AAEY,QAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACrD,kBAAe,oBAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CacheEntry } from '../types/config.types';
|
|
2
|
+
declare class ConfigCache {
|
|
3
|
+
private readonly store;
|
|
4
|
+
set(key: string, entry: CacheEntry): void;
|
|
5
|
+
get(key: string): CacheEntry | undefined;
|
|
6
|
+
has(key: string): boolean;
|
|
7
|
+
delete(key: string): boolean;
|
|
8
|
+
flush(): void;
|
|
9
|
+
keys(): string[];
|
|
10
|
+
/** Returns the raw internal map for read-only iteration */
|
|
11
|
+
entries(): ReadonlyMap<string, CacheEntry>;
|
|
12
|
+
size(): number;
|
|
13
|
+
}
|
|
14
|
+
export declare const configCache: ConfigCache;
|
|
15
|
+
export default configCache;
|
|
16
|
+
//# sourceMappingURL=config.cache.d.ts.map
|