@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,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateJWT = exports.verifyJWT = exports.clearAllUserSessionsForCurrentApp = exports.clearLoginSession = exports.createLoginSession = exports.sessionAuth = void 0;
|
|
37
|
+
const jwt = __importStar(require("jsonwebtoken"));
|
|
38
|
+
const session_1 = require("../session");
|
|
39
|
+
const requestContext_1 = require("../system.applications/requestContext");
|
|
40
|
+
const getHeaderValue = (headers, key) => {
|
|
41
|
+
if (!headers || !key)
|
|
42
|
+
return '';
|
|
43
|
+
const value = headers[key] || headers[key.toLowerCase()] || headers[key.toUpperCase()];
|
|
44
|
+
if (Array.isArray(value))
|
|
45
|
+
return String(value[0] || '').trim();
|
|
46
|
+
return String(value || '').trim();
|
|
47
|
+
};
|
|
48
|
+
const extractSessionId = (headers) => {
|
|
49
|
+
const fromHeader = getHeaderValue(headers, 'sessiontoken')
|
|
50
|
+
|| getHeaderValue(headers, 'x-session-id')
|
|
51
|
+
|| getHeaderValue(headers, 'sessionid');
|
|
52
|
+
return String(fromHeader || '').trim();
|
|
53
|
+
};
|
|
54
|
+
const getSessionBindingFromRequest = () => {
|
|
55
|
+
const headers = requestContext_1.RequestContext.get('headers', {});
|
|
56
|
+
const userIP = requestContext_1.RequestContext.get('userIP', '') || '';
|
|
57
|
+
return {
|
|
58
|
+
userAgent: getHeaderValue(headers, 'user-agent'),
|
|
59
|
+
secChUa: getHeaderValue(headers, 'sec-ch-ua'),
|
|
60
|
+
secChUaPlatform: getHeaderValue(headers, 'sec-ch-ua-platform'),
|
|
61
|
+
acceptLanguage: getHeaderValue(headers, 'accept-language'),
|
|
62
|
+
ipAddress: userIP,
|
|
63
|
+
deviceId: getHeaderValue(headers, 'x-device-id') || getHeaderValue(headers, 'x-client-device-id'),
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
// Session-only authentication middleware
|
|
67
|
+
const sessionAuth = (appScope) => {
|
|
68
|
+
try {
|
|
69
|
+
const reqHeaders = requestContext_1.RequestContext.get('headers', {});
|
|
70
|
+
const sessionId = extractSessionId(reqHeaders);
|
|
71
|
+
if (!sessionId) {
|
|
72
|
+
console.error('❌ No sessionId found in request');
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
requestContext_1.RequestContext.set('sessionID', sessionId);
|
|
76
|
+
const binding = getSessionBindingFromRequest();
|
|
77
|
+
const sessionValidation = session_1.SessionManager.validateSession(sessionId, binding, appScope);
|
|
78
|
+
if (!sessionValidation.valid) {
|
|
79
|
+
// Clear invalid session cookie
|
|
80
|
+
requestContext_1.RequestContext.set(`user${sessionId}`, null);
|
|
81
|
+
requestContext_1.RequestContext.set(`sessionID`, null);
|
|
82
|
+
requestContext_1.RequestContext.set('session', null);
|
|
83
|
+
console.error('❌ Invalid session:', sessionValidation.reason || 'unknown reason');
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
// Session is valid, set user data
|
|
87
|
+
const user = {
|
|
88
|
+
user_id: sessionValidation.userId,
|
|
89
|
+
authType: 'session',
|
|
90
|
+
sessionId: sessionId
|
|
91
|
+
};
|
|
92
|
+
requestContext_1.RequestContext.set(`user${sessionId}`, user);
|
|
93
|
+
requestContext_1.RequestContext.set('session', user);
|
|
94
|
+
console.log('✅ Session verified successfully for user:', sessionValidation.userId);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error('❌ Session authentication failed:', error.message);
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
exports.sessionAuth = sessionAuth;
|
|
103
|
+
// Helper method to create login session with cookie
|
|
104
|
+
const createLoginSession = (data, appScope) => {
|
|
105
|
+
const sessionId = session_1.SessionManager.createSession(data.userId, getSessionBindingFromRequest(), appScope);
|
|
106
|
+
requestContext_1.RequestContext.set(`user${sessionId}`, {
|
|
107
|
+
user_id: data.userId,
|
|
108
|
+
username: data.username,
|
|
109
|
+
authType: 'session',
|
|
110
|
+
sessionId: sessionId
|
|
111
|
+
});
|
|
112
|
+
requestContext_1.RequestContext.set(`sessionID`, sessionId);
|
|
113
|
+
return sessionId;
|
|
114
|
+
};
|
|
115
|
+
exports.createLoginSession = createLoginSession;
|
|
116
|
+
// Helper method to logout and clear session
|
|
117
|
+
const clearLoginSession = (appScope) => {
|
|
118
|
+
const reqHeaders = requestContext_1.RequestContext.get('headers', {});
|
|
119
|
+
const sessionId = extractSessionId(reqHeaders) || requestContext_1.RequestContext.get('sessionID', '') || '';
|
|
120
|
+
if (sessionId) {
|
|
121
|
+
session_1.SessionManager.removeSession(sessionId, appScope);
|
|
122
|
+
requestContext_1.RequestContext.set(`user${sessionId}`, null);
|
|
123
|
+
requestContext_1.RequestContext.set(`sessionID`, null);
|
|
124
|
+
requestContext_1.RequestContext.set('session', null);
|
|
125
|
+
console.log('🚪 Session cleared:', sessionId);
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
};
|
|
130
|
+
exports.clearLoginSession = clearLoginSession;
|
|
131
|
+
const clearAllUserSessionsForCurrentApp = (userId, appScope) => {
|
|
132
|
+
if (!userId)
|
|
133
|
+
return false;
|
|
134
|
+
session_1.SessionManager.removeUserSession(userId, appScope);
|
|
135
|
+
requestContext_1.RequestContext.set('sessionID', null);
|
|
136
|
+
requestContext_1.RequestContext.set('session', null);
|
|
137
|
+
console.log(`🚪 All sessions cleared for user ${userId} in app ${appScope}`);
|
|
138
|
+
return true;
|
|
139
|
+
};
|
|
140
|
+
exports.clearAllUserSessionsForCurrentApp = clearAllUserSessionsForCurrentApp;
|
|
141
|
+
// Helper method to verify JWT token (can be used anywhere in the project)
|
|
142
|
+
const verifyJWT = (req) => {
|
|
143
|
+
// First try to get token from custom tokenKey header (your frontend approach)
|
|
144
|
+
let token = req.headers['tokenkey'] || req.headers['tokenKey'];
|
|
145
|
+
// If not found, fallback to standard Authorization Bearer header
|
|
146
|
+
if (!token) {
|
|
147
|
+
const authHeader = req.headers.authorization;
|
|
148
|
+
if (authHeader && authHeader.startsWith('Bearer ')) {
|
|
149
|
+
token = authHeader.substring(7);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// If still no token found
|
|
153
|
+
if (!token) {
|
|
154
|
+
throw new Error('No valid token provided. Please provide token in tokenKey header or Authorization Bearer header');
|
|
155
|
+
}
|
|
156
|
+
const jwtSecret = process.env.JWT_SECRET;
|
|
157
|
+
if (!jwtSecret) {
|
|
158
|
+
throw new Error('JWT secret not configured');
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const decoded = jwt.verify(token, jwtSecret);
|
|
162
|
+
return decoded;
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
console.log('❌ JWT Error:', error.name, '-', error.message);
|
|
166
|
+
// Handle specific JWT errors
|
|
167
|
+
if (error.name === 'TokenExpiredError') {
|
|
168
|
+
throw new Error('Token has expired. Please login again');
|
|
169
|
+
}
|
|
170
|
+
if (error.name === 'JsonWebTokenError') {
|
|
171
|
+
throw new Error('Invalid token signature');
|
|
172
|
+
}
|
|
173
|
+
if (error.name === 'NotBeforeError') {
|
|
174
|
+
throw new Error('Token not active yet');
|
|
175
|
+
}
|
|
176
|
+
// Generic error for other cases
|
|
177
|
+
throw new Error(`Invalid token: ${error.message}`);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
exports.verifyJWT = verifyJWT;
|
|
181
|
+
// Optional: Create a JWT token (helper method)
|
|
182
|
+
const generateJWT = (payload, expiresIn = '24h') => {
|
|
183
|
+
const jwtSecret = process.env.JWT_SECRET;
|
|
184
|
+
if (!jwtSecret) {
|
|
185
|
+
throw new Error('JWT_SECRET environment variable is not set');
|
|
186
|
+
}
|
|
187
|
+
const token = jwt.sign(payload, jwtSecret, { expiresIn });
|
|
188
|
+
return token;
|
|
189
|
+
};
|
|
190
|
+
exports.generateJWT = generateJWT;
|
|
191
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../core/middleware/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.middleware.d.ts","sourceRoot":"","sources":["../../core/middleware/core.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAGnE;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function middleware(req, _res, next) {
|
|
4
|
+
// You can add any core-specific middleware logic here
|
|
5
|
+
next();
|
|
6
|
+
}
|
|
7
|
+
exports.default = middleware;
|
|
8
|
+
//# sourceMappingURL=core.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.middleware.js","sourceRoot":"","sources":["../../core/middleware/core.middleware.ts"],"names":[],"mappings":";;AAEA,SAAS,UAAU,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB;IAClE,sDAAsD;IACtD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../core/middleware/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAI3F"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorHandler = errorHandler;
|
|
4
|
+
function errorHandler(err, req, res, next) {
|
|
5
|
+
// Log the error to the console (or a logging service)
|
|
6
|
+
console.error({ success: false, error: err.message });
|
|
7
|
+
res.status(err.statusCode || 500).json({ success: false, error: err.message });
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../core/middleware/error.ts"],"names":[],"mappings":";;AAGA,oCAIC;AAJD,SAAgB,YAAY,CAAC,GAAc,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC1F,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as applicationMiddleware } from './application.middleware';
|
|
2
|
+
export { default as coreMiddleware } from './core.middleware';
|
|
3
|
+
export { default as systemMiddleware } from './system.middleware';
|
|
4
|
+
export { errorHandler } from './error';
|
|
5
|
+
export { multipartAny, normalizeMultipartBody } from './multipart';
|
|
6
|
+
export { sessionAuth, createLoginSession, clearLoginSession, clearAllUserSessionsForCurrentApp, verifyJWT, generateJWT, } from './auth';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../core/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,iCAAiC,EACjC,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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.generateJWT = exports.verifyJWT = exports.clearAllUserSessionsForCurrentApp = exports.clearLoginSession = exports.createLoginSession = exports.sessionAuth = exports.normalizeMultipartBody = exports.multipartAny = exports.errorHandler = exports.systemMiddleware = exports.coreMiddleware = exports.applicationMiddleware = void 0;
|
|
7
|
+
var application_middleware_1 = require("./application.middleware");
|
|
8
|
+
Object.defineProperty(exports, "applicationMiddleware", { enumerable: true, get: function () { return __importDefault(application_middleware_1).default; } });
|
|
9
|
+
var core_middleware_1 = require("./core.middleware");
|
|
10
|
+
Object.defineProperty(exports, "coreMiddleware", { enumerable: true, get: function () { return __importDefault(core_middleware_1).default; } });
|
|
11
|
+
var system_middleware_1 = require("./system.middleware");
|
|
12
|
+
Object.defineProperty(exports, "systemMiddleware", { enumerable: true, get: function () { return __importDefault(system_middleware_1).default; } });
|
|
13
|
+
var error_1 = require("./error");
|
|
14
|
+
Object.defineProperty(exports, "errorHandler", { enumerable: true, get: function () { return error_1.errorHandler; } });
|
|
15
|
+
var multipart_1 = require("./multipart");
|
|
16
|
+
Object.defineProperty(exports, "multipartAny", { enumerable: true, get: function () { return multipart_1.multipartAny; } });
|
|
17
|
+
Object.defineProperty(exports, "normalizeMultipartBody", { enumerable: true, get: function () { return multipart_1.normalizeMultipartBody; } });
|
|
18
|
+
var auth_1 = require("./auth");
|
|
19
|
+
Object.defineProperty(exports, "sessionAuth", { enumerable: true, get: function () { return auth_1.sessionAuth; } });
|
|
20
|
+
Object.defineProperty(exports, "createLoginSession", { enumerable: true, get: function () { return auth_1.createLoginSession; } });
|
|
21
|
+
Object.defineProperty(exports, "clearLoginSession", { enumerable: true, get: function () { return auth_1.clearLoginSession; } });
|
|
22
|
+
Object.defineProperty(exports, "clearAllUserSessionsForCurrentApp", { enumerable: true, get: function () { return auth_1.clearAllUserSessionsForCurrentApp; } });
|
|
23
|
+
Object.defineProperty(exports, "verifyJWT", { enumerable: true, get: function () { return auth_1.verifyJWT; } });
|
|
24
|
+
Object.defineProperty(exports, "generateJWT", { enumerable: true, get: function () { return auth_1.generateJWT; } });
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../core/middleware/index.ts"],"names":[],"mappings":";;;;;;AAAA,mEAA4E;AAAnE,gJAAA,OAAO,OAAyB;AACzC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,yDAAkE;AAAzD,sIAAA,OAAO,OAAoB;AAEpC,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,yCAAmE;AAA1D,yGAAA,YAAY,OAAA;AAAE,mHAAA,sBAAsB,OAAA;AAE7C,+BAOgB;AANd,mGAAA,WAAW,OAAA;AACX,0GAAA,kBAAkB,OAAA;AAClB,yGAAA,iBAAiB,OAAA;AACjB,yHAAA,iCAAiC,OAAA;AACjC,iGAAA,SAAS,OAAA;AACT,mGAAA,WAAW,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const multipartAny: import("express").RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
2
|
+
export interface __FILE extends Express.Multer.File {
|
|
3
|
+
customFileName: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function normalizeMultipartBody(req: any): any;
|
|
6
|
+
//# sourceMappingURL=multipart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../core/middleware/multipart.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,8IAKjB,CAAC;AAET,MAAM,WAAW,MAAO,SAAQ,OAAO,CAAC,MAAM,CAAC,IAAI;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,OAqD9C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.multipartAny = void 0;
|
|
7
|
+
exports.normalizeMultipartBody = normalizeMultipartBody;
|
|
8
|
+
// @server/core/middleware/multipart.ts
|
|
9
|
+
const multer_1 = __importDefault(require("multer"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
exports.multipartAny = (0, multer_1.default)({
|
|
12
|
+
storage: multer_1.default.memoryStorage(),
|
|
13
|
+
limits: {
|
|
14
|
+
fileSize: 50 * 1024 * 1024, // 50MB
|
|
15
|
+
},
|
|
16
|
+
}).any();
|
|
17
|
+
function normalizeMultipartBody(req) {
|
|
18
|
+
if (Array.isArray(req.body))
|
|
19
|
+
return req.body;
|
|
20
|
+
const body = { ...req.body };
|
|
21
|
+
const files = Array.isArray(req.files) ? req.files : [];
|
|
22
|
+
const grouped = {};
|
|
23
|
+
const counters = {};
|
|
24
|
+
files.forEach((file) => {
|
|
25
|
+
/**
|
|
26
|
+
* media -> base=media, label=originalname
|
|
27
|
+
* media[] -> base=media, label= originalname_1,originalname_2
|
|
28
|
+
* media[abc] -> base=media, label=abc
|
|
29
|
+
* media[abc][] -> base=media, label=abc_1, abc_2
|
|
30
|
+
*/
|
|
31
|
+
const match = file.fieldname.match(/^([^\[\]]+)(?:\[([^\]]+)\])?(?:\[\])?$/);
|
|
32
|
+
if (!match) {
|
|
33
|
+
throw new Error(`Invalid file field name: ${file.fieldname}`);
|
|
34
|
+
}
|
|
35
|
+
const baseKey = match[1]; // media
|
|
36
|
+
const labelFromField = match[2]; // abc | undefined
|
|
37
|
+
if (!grouped[baseKey]) {
|
|
38
|
+
grouped[baseKey] = [];
|
|
39
|
+
counters[baseKey] = {};
|
|
40
|
+
}
|
|
41
|
+
// 🔹 base label
|
|
42
|
+
const baseLabel = labelFromField ? labelFromField : path_1.default.parse(file.originalname).name;
|
|
43
|
+
// 🔹 ensure uniqueness
|
|
44
|
+
counters[baseKey][baseLabel] = (counters[baseKey][baseLabel] || 0) + 1;
|
|
45
|
+
const count = counters[baseKey][baseLabel];
|
|
46
|
+
const finalLabel = count === 1 ? baseLabel : `${baseLabel}_${count}`;
|
|
47
|
+
file.customFileName = finalLabel;
|
|
48
|
+
file.fieldname = baseKey; // normalize key
|
|
49
|
+
grouped[baseKey].push(file);
|
|
50
|
+
});
|
|
51
|
+
// Attach to body (ALWAYS arrays)
|
|
52
|
+
Object.entries(grouped).forEach(([key, list]) => {
|
|
53
|
+
body[key] = list;
|
|
54
|
+
});
|
|
55
|
+
// Always keep raw files
|
|
56
|
+
body.files = files;
|
|
57
|
+
return body;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=multipart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multipart.js","sourceRoot":"","sources":["../../core/middleware/multipart.ts"],"names":[],"mappings":";;;;;;AAeA,wDAqDC;AApED,uCAAuC;AACvC,oDAA4B;AAC5B,gDAAwB;AAEX,QAAA,YAAY,GAAG,IAAA,gBAAM,EAAC;IACjC,OAAO,EAAE,gBAAM,CAAC,aAAa,EAAE;IAC/B,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KACpC;CACF,CAAC,CAAC,GAAG,EAAE,CAAC;AAMT,SAAgB,sBAAsB,CAAC,GAAQ;IAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAA2C,EAAE,CAAC;IAE5D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB;;;;;WAKG;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE7E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAEnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,gBAAgB;QAChB,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QAEvF,uBAAuB;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;QAErE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,gBAAgB;QAE1C,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAEnB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.middleware.d.ts","sourceRoot":"","sources":["../../core/middleware/system.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAQlE;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const application_config_1 = require("../defaults/application.config");
|
|
4
|
+
function middleware(req, res, next) {
|
|
5
|
+
// Apply security headers
|
|
6
|
+
const headers = application_config_1.APP_DEFAULT_CONFIG.securityHeaders ?? {};
|
|
7
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
8
|
+
res.setHeader(key, value);
|
|
9
|
+
}
|
|
10
|
+
console.log('[system.middleware] X-Powered-By set to:', res.getHeader('X-Powered-By'));
|
|
11
|
+
next();
|
|
12
|
+
}
|
|
13
|
+
exports.default = middleware;
|
|
14
|
+
//# sourceMappingURL=system.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.middleware.js","sourceRoot":"","sources":["../../core/middleware/system.middleware.ts"],"names":[],"mappings":";;AACA,uEAAoE;AAEpE,SAAS,UAAU,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IACjE,yBAAyB;IACzB,MAAM,OAAO,GAAG,uCAAkB,CAAC,eAAe,IAAI,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IACvF,IAAI,EAAE,CAAC;AACT,CAAC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export interface StandardResponse {
|
|
2
|
+
statusCode: number;
|
|
3
|
+
status: boolean;
|
|
4
|
+
message: string;
|
|
5
|
+
output?: any;
|
|
6
|
+
timestamp?: string;
|
|
7
|
+
path?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class ResponseHandler {
|
|
10
|
+
/**
|
|
11
|
+
* Send a successful response
|
|
12
|
+
*/
|
|
13
|
+
static success(res: any, statusCode: number, message: string, output?: any, path?: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Send an error response
|
|
16
|
+
*/
|
|
17
|
+
static error(res: any, statusCode: number, message: string, output?: any, path?: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Send a paginated response for list output
|
|
20
|
+
*/
|
|
21
|
+
static successWithPagination(res: any, statusCode: number, message: string, output: any, pagination: {
|
|
22
|
+
currentPage: number;
|
|
23
|
+
totalPages: number;
|
|
24
|
+
totalRecords: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
hasNextPage: boolean;
|
|
27
|
+
hasPreviousPage: boolean;
|
|
28
|
+
}, path?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Send a validation error response
|
|
31
|
+
*/
|
|
32
|
+
static validationError(res: any, message?: string, errors?: any, path?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Send a not found response
|
|
35
|
+
*/
|
|
36
|
+
static notFound(res: any, message?: string, path?: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Send an unauthorized response
|
|
39
|
+
*/
|
|
40
|
+
static unauthorized(res: any, message?: string, path?: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Send a forbidden response
|
|
43
|
+
*/
|
|
44
|
+
static forbidden(res: any, message?: string, path?: string): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=responseHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseHandler.d.ts","sourceRoot":"","sources":["../core/responseHandler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IACxB;;OAEG;IACH,MAAM,CAAC,OAAO,CACV,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAY,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,GAAG,EACZ,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAaP;;OAEG;IACH,MAAM,CAAC,KAAK,CACR,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAY,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,GAAG,EACZ,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAaP;;OAEG;IACH,MAAM,CAAC,qBAAqB,CACxB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAY,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,EACX,UAAU,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;KAC5B,EACD,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAgBP;;OAEG;IACH,MAAM,CAAC,eAAe,CAClB,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,MAA4B,EACrC,MAAM,CAAC,EAAE,GAAG,EACZ,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAaP;;OAEG;IACH,MAAM,CAAC,QAAQ,CACX,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,MAA6B,EACtC,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAYP;;OAEG;IACH,MAAM,CAAC,YAAY,CACf,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,MAA8B,EACvC,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;IAYP;;OAEG;IACH,MAAM,CAAC,SAAS,CACZ,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,MAA2B,EACpC,IAAI,CAAC,EAAE,MAAM,GACd,IAAI;CAWV"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseHandler = void 0;
|
|
4
|
+
class ResponseHandler {
|
|
5
|
+
/**
|
|
6
|
+
* Send a successful response
|
|
7
|
+
*/
|
|
8
|
+
static success(res, statusCode = 200, message, output, path) {
|
|
9
|
+
const response = {
|
|
10
|
+
statusCode,
|
|
11
|
+
status: true,
|
|
12
|
+
message,
|
|
13
|
+
timestamp: new Date().toISOString(),
|
|
14
|
+
...(output && { output }),
|
|
15
|
+
...(path && { path })
|
|
16
|
+
};
|
|
17
|
+
res.status(statusCode).json(response);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Send an error response
|
|
21
|
+
*/
|
|
22
|
+
static error(res, statusCode = 400, message, output, path) {
|
|
23
|
+
const response = {
|
|
24
|
+
statusCode,
|
|
25
|
+
status: false,
|
|
26
|
+
message,
|
|
27
|
+
timestamp: new Date().toISOString(),
|
|
28
|
+
...(output && { output }),
|
|
29
|
+
...(path && { path })
|
|
30
|
+
};
|
|
31
|
+
res.status(statusCode).json(response);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Send a paginated response for list output
|
|
35
|
+
*/
|
|
36
|
+
static successWithPagination(res, statusCode = 200, message, output, pagination, path) {
|
|
37
|
+
const response = {
|
|
38
|
+
statusCode,
|
|
39
|
+
status: true,
|
|
40
|
+
message,
|
|
41
|
+
output: {
|
|
42
|
+
...output,
|
|
43
|
+
pagination
|
|
44
|
+
},
|
|
45
|
+
timestamp: new Date().toISOString(),
|
|
46
|
+
...(path && { path })
|
|
47
|
+
};
|
|
48
|
+
res.status(statusCode).json(response);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Send a validation error response
|
|
52
|
+
*/
|
|
53
|
+
static validationError(res, message = "Validation failed", errors, path) {
|
|
54
|
+
const response = {
|
|
55
|
+
statusCode: 400,
|
|
56
|
+
status: false,
|
|
57
|
+
message,
|
|
58
|
+
...(errors && { output: { errors } }),
|
|
59
|
+
timestamp: new Date().toISOString(),
|
|
60
|
+
...(path && { path })
|
|
61
|
+
};
|
|
62
|
+
res.status(400).json(response);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Send a not found response
|
|
66
|
+
*/
|
|
67
|
+
static notFound(res, message = "Resource not found", path) {
|
|
68
|
+
const response = {
|
|
69
|
+
statusCode: 404,
|
|
70
|
+
status: false,
|
|
71
|
+
message,
|
|
72
|
+
timestamp: new Date().toISOString(),
|
|
73
|
+
...(path && { path })
|
|
74
|
+
};
|
|
75
|
+
res.status(404).json(response);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Send an unauthorized response
|
|
79
|
+
*/
|
|
80
|
+
static unauthorized(res, message = "Unauthorized access", path) {
|
|
81
|
+
const response = {
|
|
82
|
+
statusCode: 401,
|
|
83
|
+
status: false,
|
|
84
|
+
message,
|
|
85
|
+
timestamp: new Date().toISOString(),
|
|
86
|
+
...(path && { path })
|
|
87
|
+
};
|
|
88
|
+
res.status(401).json(response);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Send a forbidden response
|
|
92
|
+
*/
|
|
93
|
+
static forbidden(res, message = "Access forbidden", path) {
|
|
94
|
+
const response = {
|
|
95
|
+
statusCode: 403,
|
|
96
|
+
status: false,
|
|
97
|
+
message,
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
...(path && { path })
|
|
100
|
+
};
|
|
101
|
+
res.status(403).json(response);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.ResponseHandler = ResponseHandler;
|
|
105
|
+
//# sourceMappingURL=responseHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseHandler.js","sourceRoot":"","sources":["../core/responseHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export type SessionBindingInput = {
|
|
2
|
+
userAgent?: string;
|
|
3
|
+
secChUa?: string;
|
|
4
|
+
secChUaPlatform?: string;
|
|
5
|
+
acceptLanguage?: string;
|
|
6
|
+
ipAddress?: string;
|
|
7
|
+
deviceId?: string;
|
|
8
|
+
};
|
|
9
|
+
type SessionBinding = {
|
|
10
|
+
hash: string;
|
|
11
|
+
snapshot: SessionBindingInput;
|
|
12
|
+
};
|
|
13
|
+
type SessionRecord = {
|
|
14
|
+
sessionId: string;
|
|
15
|
+
userId: string;
|
|
16
|
+
appScope: string;
|
|
17
|
+
loginTime: Date;
|
|
18
|
+
lastActivity: Date;
|
|
19
|
+
expiresAt: Date;
|
|
20
|
+
binding?: SessionBinding;
|
|
21
|
+
};
|
|
22
|
+
declare const activeSessions: Map<string, SessionRecord>;
|
|
23
|
+
export declare class SessionManager {
|
|
24
|
+
private static SESSION_TIMEOUT;
|
|
25
|
+
private static DEFAULT_APP_SCOPE;
|
|
26
|
+
private static resolveAppScope;
|
|
27
|
+
private static getSessionKey;
|
|
28
|
+
private static getUserSessionKey;
|
|
29
|
+
private static persistSession;
|
|
30
|
+
private static hydrateSession;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new session for a user
|
|
33
|
+
*/
|
|
34
|
+
private static normalizeIpSegment;
|
|
35
|
+
private static buildBinding;
|
|
36
|
+
static createSession(userId: string, bindingInput?: SessionBindingInput, appScope?: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Validate and refresh a session
|
|
39
|
+
*/
|
|
40
|
+
static validateSession(sessionId: string, bindingInput?: SessionBindingInput, appScope?: string): {
|
|
41
|
+
valid: boolean;
|
|
42
|
+
userId?: string;
|
|
43
|
+
reason?: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Remove a specific session
|
|
47
|
+
*/
|
|
48
|
+
static removeSession(sessionId: string, appScope?: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Remove all sessions for a specific user
|
|
51
|
+
*/
|
|
52
|
+
static removeUserSession(userId: string, appScope?: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Clean up expired sessions
|
|
55
|
+
*/
|
|
56
|
+
static cleanupExpiredSessions(): number;
|
|
57
|
+
}
|
|
58
|
+
export { activeSessions };
|
|
59
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../core/session.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAGF,QAAA,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAa,CAAC;AAE7D,qBAAa,cAAc;IAGvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IAEzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAiB;IAEjD,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,OAAO,CAAC,MAAM,CAAC,cAAc;IAa7B,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA0BjC,OAAO,CAAC,MAAM,CAAC,YAAY;IA+B3B,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IA4BnG;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA+CtJ;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAqBnE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBjE;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,MAAM;CAoB1C;AASD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|