@dyanet/nestjs-config-aws 1.0.1 → 1.2.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 +213 -1013
- package/dist/cjs/config-aws/src/config-manager.js +366 -0
- package/dist/cjs/config-aws/src/errors/index.js +77 -0
- package/dist/cjs/config-aws/src/index.js +37 -0
- package/dist/cjs/config-aws/src/interfaces/config-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/config-manager.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/env-file-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/environment-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/s3-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/secrets-manager-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +3 -0
- package/dist/cjs/config-aws/src/loaders/env-file.loader.js +169 -0
- package/dist/cjs/config-aws/src/loaders/environment.loader.js +85 -0
- package/dist/cjs/config-aws/src/loaders/s3.loader.js +145 -0
- package/dist/cjs/config-aws/src/loaders/secrets-manager.loader.js +169 -0
- package/dist/cjs/config-aws/src/loaders/ssm-parameter-store.loader.js +199 -0
- package/dist/cjs/config-aws/src/utils/env-file-parser.util.js +98 -0
- package/dist/cjs/config-aws/src/utils/validation.util.js +116 -0
- package/dist/cjs/nestjs-config-aws/src/config.module.js +175 -0
- package/dist/cjs/nestjs-config-aws/src/index.js +61 -0
- package/dist/cjs/{integration → nestjs-config-aws/src/integration}/index.js +1 -1
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +3 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +3 -0
- package/dist/cjs/{integration → nestjs-config-aws/src/integration}/interfaces/index.js +1 -1
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +3 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +3 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +73 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +3 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +4 -0
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +52 -0
- package/dist/cjs/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +124 -0
- package/dist/cjs/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +592 -0
- package/dist/cjs/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +385 -0
- package/dist/cjs/{integration → nestjs-config-aws/src/integration}/providers/index.js +1 -1
- package/dist/cjs/nestjs-config-aws/src/integration/services/async-config-helper.service.js +366 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/error-handler.service.js +267 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/factory-registration.service.js +517 -0
- package/dist/cjs/{integration → nestjs-config-aws/src/integration}/services/index.js +1 -1
- package/dist/cjs/nestjs-config-aws/src/integration/services/integration-state.service.js +81 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/namespace-handler.service.js +465 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +318 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/precedence-handler.service.js +292 -0
- package/dist/cjs/nestjs-config-aws/src/integration/services/validation-integration.service.js +595 -0
- package/dist/cjs/nestjs-config-aws/src/integration/utils/config-integration.util.js +283 -0
- package/dist/cjs/{integration → nestjs-config-aws/src/integration}/utils/index.js +1 -1
- package/dist/cjs/nestjs-config-aws/src/interfaces/config-service.interface.js +11 -0
- package/dist/cjs/nestjs-config-aws/src/interfaces/default-schema.interface.js +63 -0
- package/dist/cjs/nestjs-config-aws/src/interfaces/index.js +30 -0
- package/dist/cjs/nestjs-config-aws/src/interfaces/module-options.interface.js +3 -0
- package/dist/cjs/nestjs-config-aws/src/services/config.service.js +142 -0
- package/dist/esm/config-aws/src/config-manager.js +362 -0
- package/dist/esm/config-aws/src/errors/index.js +69 -0
- package/dist/esm/config-aws/src/index.js +21 -0
- package/dist/esm/config-aws/src/interfaces/config-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/config-manager.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/env-file-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/environment-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/s3-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/secrets-manager-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +2 -0
- package/dist/esm/config-aws/src/loaders/env-file.loader.js +132 -0
- package/dist/esm/config-aws/src/loaders/environment.loader.js +81 -0
- package/dist/esm/config-aws/src/loaders/s3.loader.js +141 -0
- package/dist/esm/config-aws/src/loaders/secrets-manager.loader.js +165 -0
- package/dist/esm/config-aws/src/loaders/ssm-parameter-store.loader.js +195 -0
- package/dist/esm/config-aws/src/utils/env-file-parser.util.js +94 -0
- package/dist/esm/config-aws/src/utils/validation.util.js +112 -0
- package/dist/esm/nestjs-config-aws/src/config.module.js +172 -0
- package/dist/esm/nestjs-config-aws/src/index.js +23 -0
- package/dist/esm/nestjs-config-aws/src/integration/index.js +7 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/index.js +10 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +64 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +3 -0
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +44 -0
- package/dist/esm/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +121 -0
- package/dist/esm/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +589 -0
- package/dist/esm/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +382 -0
- package/dist/esm/nestjs-config-aws/src/integration/providers/index.js +4 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/async-config-helper.service.js +363 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/error-handler.service.js +264 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/factory-registration.service.js +514 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/index.js +10 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/integration-state.service.js +78 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/namespace-handler.service.js +462 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +315 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/precedence-handler.service.js +289 -0
- package/dist/esm/nestjs-config-aws/src/integration/services/validation-integration.service.js +589 -0
- package/dist/esm/nestjs-config-aws/src/integration/utils/config-integration.util.js +240 -0
- package/dist/esm/nestjs-config-aws/src/integration/utils/index.js +3 -0
- package/dist/esm/nestjs-config-aws/src/interfaces/config-service.interface.js +7 -0
- package/dist/esm/nestjs-config-aws/src/interfaces/default-schema.interface.js +59 -0
- package/dist/esm/nestjs-config-aws/src/interfaces/index.js +8 -0
- package/dist/esm/nestjs-config-aws/src/interfaces/module-options.interface.js +2 -0
- package/dist/esm/nestjs-config-aws/src/services/config.service.js +139 -0
- package/dist/types/config-aws/src/config-manager.d.ts +119 -0
- package/dist/types/config-aws/src/config-manager.d.ts.map +1 -0
- package/dist/types/config-aws/src/errors/index.d.ts +43 -0
- package/dist/types/config-aws/src/errors/index.d.ts.map +1 -0
- package/dist/types/config-aws/src/index.d.ts +24 -0
- package/dist/types/config-aws/src/index.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts +33 -0
- package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts +86 -0
- package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts +12 -0
- package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts +10 -0
- package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts +14 -0
- package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts +12 -0
- package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts +14 -0
- package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts.map +1 -0
- package/dist/types/config-aws/src/loaders/env-file.loader.d.ts +69 -0
- package/dist/types/config-aws/src/loaders/env-file.loader.d.ts.map +1 -0
- package/dist/types/config-aws/src/loaders/environment.loader.d.ts +46 -0
- package/dist/types/config-aws/src/loaders/environment.loader.d.ts.map +1 -0
- package/dist/types/config-aws/src/loaders/s3.loader.d.ts +62 -0
- package/dist/types/config-aws/src/loaders/s3.loader.d.ts.map +1 -0
- package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts +68 -0
- package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts.map +1 -0
- package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts +78 -0
- package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts.map +1 -0
- package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts +45 -0
- package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts.map +1 -0
- package/dist/types/{utils → config-aws/src/utils}/validation.util.d.ts +10 -10
- package/dist/types/config-aws/src/utils/validation.util.d.ts.map +1 -0
- package/dist/types/{config.module.d.ts → nestjs-config-aws/src/config.module.d.ts} +1 -0
- package/dist/types/nestjs-config-aws/src/config.module.d.ts.map +1 -0
- package/dist/types/{index.d.ts → nestjs-config-aws/src/index.d.ts} +2 -4
- package/dist/types/nestjs-config-aws/src/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/interfaces/config-service.interface.d.ts.map +1 -0
- package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/default-schema.interface.d.ts +28 -28
- package/dist/types/nestjs-config-aws/src/interfaces/default-schema.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts +5 -0
- package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/interfaces/module-options.interface.d.ts.map +1 -0
- package/dist/types/nestjs-config-aws/src/services/config.service.d.ts +88 -0
- package/dist/types/nestjs-config-aws/src/services/config.service.d.ts.map +1 -0
- package/package.json +20 -27
- package/LICENSE +0 -21
- package/dist/cjs/config.module.js +0 -178
- package/dist/cjs/config.module.js.map +0 -1
- package/dist/cjs/index.js +0 -47
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/integration/index.js.map +0 -1
- package/dist/cjs/integration/interfaces/configuration-factory.interface.js +0 -3
- package/dist/cjs/integration/interfaces/configuration-factory.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/configuration-source.interface.js +0 -3
- package/dist/cjs/integration/interfaces/configuration-source.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/index.js.map +0 -1
- package/dist/cjs/integration/interfaces/integration-options.interface.js +0 -3
- package/dist/cjs/integration/interfaces/integration-options.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/integration-state.interface.js +0 -3
- package/dist/cjs/integration/interfaces/integration-state.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js +0 -73
- package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js +0 -3
- package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/typed-configuration.interface.js +0 -4
- package/dist/cjs/integration/interfaces/typed-configuration.interface.js.map +0 -1
- package/dist/cjs/integration/interfaces/utility-types.interface.js +0 -52
- package/dist/cjs/integration/interfaces/utility-types.interface.js.map +0 -1
- package/dist/cjs/integration/nestjs-config-integration.module.js +0 -124
- package/dist/cjs/integration/nestjs-config-integration.module.js.map +0 -1
- package/dist/cjs/integration/providers/aws-configuration-loader.service.js +0 -591
- package/dist/cjs/integration/providers/aws-configuration-loader.service.js.map +0 -1
- package/dist/cjs/integration/providers/configuration-factory.provider.js +0 -383
- package/dist/cjs/integration/providers/configuration-factory.provider.js.map +0 -1
- package/dist/cjs/integration/providers/index.js.map +0 -1
- package/dist/cjs/integration/services/async-config-helper.service.js +0 -356
- package/dist/cjs/integration/services/async-config-helper.service.js.map +0 -1
- package/dist/cjs/integration/services/error-handler.service.js +0 -265
- package/dist/cjs/integration/services/error-handler.service.js.map +0 -1
- package/dist/cjs/integration/services/factory-registration.service.js +0 -512
- package/dist/cjs/integration/services/factory-registration.service.js.map +0 -1
- package/dist/cjs/integration/services/index.js.map +0 -1
- package/dist/cjs/integration/services/integration-state.service.js +0 -83
- package/dist/cjs/integration/services/integration-state.service.js.map +0 -1
- package/dist/cjs/integration/services/namespace-handler.service.js +0 -467
- package/dist/cjs/integration/services/namespace-handler.service.js.map +0 -1
- package/dist/cjs/integration/services/nestjs-config-integration.service.js +0 -316
- package/dist/cjs/integration/services/nestjs-config-integration.service.js.map +0 -1
- package/dist/cjs/integration/services/precedence-handler.service.js +0 -294
- package/dist/cjs/integration/services/precedence-handler.service.js.map +0 -1
- package/dist/cjs/integration/services/validation-integration.service.js +0 -591
- package/dist/cjs/integration/services/validation-integration.service.js.map +0 -1
- package/dist/cjs/integration/utils/config-integration.util.js +0 -283
- package/dist/cjs/integration/utils/config-integration.util.js.map +0 -1
- package/dist/cjs/integration/utils/index.js.map +0 -1
- package/dist/cjs/interfaces/config-loader.interface.js +0 -3
- package/dist/cjs/interfaces/config-loader.interface.js.map +0 -1
- package/dist/cjs/interfaces/config-service.interface.js +0 -11
- package/dist/cjs/interfaces/config-service.interface.js.map +0 -1
- package/dist/cjs/interfaces/default-schema.interface.js +0 -63
- package/dist/cjs/interfaces/default-schema.interface.js.map +0 -1
- package/dist/cjs/interfaces/errors.interface.js +0 -77
- package/dist/cjs/interfaces/errors.interface.js.map +0 -1
- package/dist/cjs/interfaces/index.js +0 -25
- package/dist/cjs/interfaces/index.js.map +0 -1
- package/dist/cjs/interfaces/module-options.interface.js +0 -3
- package/dist/cjs/interfaces/module-options.interface.js.map +0 -1
- package/dist/cjs/loaders/environment.loader.js +0 -59
- package/dist/cjs/loaders/environment.loader.js.map +0 -1
- package/dist/cjs/loaders/secrets-manager.loader.js +0 -122
- package/dist/cjs/loaders/secrets-manager.loader.js.map +0 -1
- package/dist/cjs/loaders/ssm-parameter-store.loader.js +0 -146
- package/dist/cjs/loaders/ssm-parameter-store.loader.js.map +0 -1
- package/dist/cjs/services/config.service.js +0 -297
- package/dist/cjs/services/config.service.js.map +0 -1
- package/dist/cjs/utils/validation.util.js +0 -114
- package/dist/cjs/utils/validation.util.js.map +0 -1
- package/dist/esm/config.module.js +0 -175
- package/dist/esm/config.module.js.map +0 -1
- package/dist/esm/index.js +0 -18
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/integration/index.js +0 -7
- package/dist/esm/integration/index.js.map +0 -1
- package/dist/esm/integration/interfaces/configuration-factory.interface.js +0 -2
- package/dist/esm/integration/interfaces/configuration-factory.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/configuration-source.interface.js +0 -2
- package/dist/esm/integration/interfaces/configuration-source.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/index.js +0 -10
- package/dist/esm/integration/interfaces/index.js.map +0 -1
- package/dist/esm/integration/interfaces/integration-options.interface.js +0 -2
- package/dist/esm/integration/interfaces/integration-options.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/integration-state.interface.js +0 -2
- package/dist/esm/integration/interfaces/integration-state.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js +0 -64
- package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js +0 -2
- package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/typed-configuration.interface.js +0 -3
- package/dist/esm/integration/interfaces/typed-configuration.interface.js.map +0 -1
- package/dist/esm/integration/interfaces/utility-types.interface.js +0 -44
- package/dist/esm/integration/interfaces/utility-types.interface.js.map +0 -1
- package/dist/esm/integration/nestjs-config-integration.module.js +0 -121
- package/dist/esm/integration/nestjs-config-integration.module.js.map +0 -1
- package/dist/esm/integration/providers/aws-configuration-loader.service.js +0 -588
- package/dist/esm/integration/providers/aws-configuration-loader.service.js.map +0 -1
- package/dist/esm/integration/providers/configuration-factory.provider.js +0 -380
- package/dist/esm/integration/providers/configuration-factory.provider.js.map +0 -1
- package/dist/esm/integration/providers/index.js +0 -4
- package/dist/esm/integration/providers/index.js.map +0 -1
- package/dist/esm/integration/services/async-config-helper.service.js +0 -353
- package/dist/esm/integration/services/async-config-helper.service.js.map +0 -1
- package/dist/esm/integration/services/error-handler.service.js +0 -262
- package/dist/esm/integration/services/error-handler.service.js.map +0 -1
- package/dist/esm/integration/services/factory-registration.service.js +0 -509
- package/dist/esm/integration/services/factory-registration.service.js.map +0 -1
- package/dist/esm/integration/services/index.js +0 -10
- package/dist/esm/integration/services/index.js.map +0 -1
- package/dist/esm/integration/services/integration-state.service.js +0 -80
- package/dist/esm/integration/services/integration-state.service.js.map +0 -1
- package/dist/esm/integration/services/namespace-handler.service.js +0 -464
- package/dist/esm/integration/services/namespace-handler.service.js.map +0 -1
- package/dist/esm/integration/services/nestjs-config-integration.service.js +0 -313
- package/dist/esm/integration/services/nestjs-config-integration.service.js.map +0 -1
- package/dist/esm/integration/services/precedence-handler.service.js +0 -291
- package/dist/esm/integration/services/precedence-handler.service.js.map +0 -1
- package/dist/esm/integration/services/validation-integration.service.js +0 -585
- package/dist/esm/integration/services/validation-integration.service.js.map +0 -1
- package/dist/esm/integration/utils/config-integration.util.js +0 -240
- package/dist/esm/integration/utils/config-integration.util.js.map +0 -1
- package/dist/esm/integration/utils/index.js +0 -3
- package/dist/esm/integration/utils/index.js.map +0 -1
- package/dist/esm/interfaces/config-loader.interface.js +0 -2
- package/dist/esm/interfaces/config-loader.interface.js.map +0 -1
- package/dist/esm/interfaces/config-service.interface.js +0 -7
- package/dist/esm/interfaces/config-service.interface.js.map +0 -1
- package/dist/esm/interfaces/default-schema.interface.js +0 -59
- package/dist/esm/interfaces/default-schema.interface.js.map +0 -1
- package/dist/esm/interfaces/errors.interface.js +0 -69
- package/dist/esm/interfaces/errors.interface.js.map +0 -1
- package/dist/esm/interfaces/index.js +0 -9
- package/dist/esm/interfaces/index.js.map +0 -1
- package/dist/esm/interfaces/module-options.interface.js +0 -2
- package/dist/esm/interfaces/module-options.interface.js.map +0 -1
- package/dist/esm/loaders/environment.loader.js +0 -55
- package/dist/esm/loaders/environment.loader.js.map +0 -1
- package/dist/esm/loaders/secrets-manager.loader.js +0 -118
- package/dist/esm/loaders/secrets-manager.loader.js.map +0 -1
- package/dist/esm/loaders/ssm-parameter-store.loader.js +0 -142
- package/dist/esm/loaders/ssm-parameter-store.loader.js.map +0 -1
- package/dist/esm/services/config.service.js +0 -261
- package/dist/esm/services/config.service.js.map +0 -1
- package/dist/esm/utils/validation.util.js +0 -110
- package/dist/esm/utils/validation.util.js.map +0 -1
- package/dist/types/config.module.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/integration/index.d.ts.map +0 -1
- package/dist/types/integration/interfaces/configuration-factory.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/configuration-source.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/index.d.ts.map +0 -1
- package/dist/types/integration/interfaces/integration-options.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/integration-state.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/nestjs-config-integration.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/typed-configuration.interface.d.ts.map +0 -1
- package/dist/types/integration/interfaces/utility-types.interface.d.ts.map +0 -1
- package/dist/types/integration/nestjs-config-integration.module.d.ts.map +0 -1
- package/dist/types/integration/providers/aws-configuration-loader.service.d.ts.map +0 -1
- package/dist/types/integration/providers/configuration-factory.provider.d.ts.map +0 -1
- package/dist/types/integration/providers/index.d.ts.map +0 -1
- package/dist/types/integration/services/async-config-helper.service.d.ts.map +0 -1
- package/dist/types/integration/services/error-handler.service.d.ts.map +0 -1
- package/dist/types/integration/services/factory-registration.service.d.ts.map +0 -1
- package/dist/types/integration/services/index.d.ts.map +0 -1
- package/dist/types/integration/services/integration-state.service.d.ts.map +0 -1
- package/dist/types/integration/services/namespace-handler.service.d.ts.map +0 -1
- package/dist/types/integration/services/nestjs-config-integration.service.d.ts.map +0 -1
- package/dist/types/integration/services/precedence-handler.service.d.ts.map +0 -1
- package/dist/types/integration/services/validation-integration.service.d.ts.map +0 -1
- package/dist/types/integration/utils/config-integration.util.d.ts.map +0 -1
- package/dist/types/integration/utils/index.d.ts.map +0 -1
- package/dist/types/interfaces/config-loader.interface.d.ts +0 -22
- package/dist/types/interfaces/config-loader.interface.d.ts.map +0 -1
- package/dist/types/interfaces/config-service.interface.d.ts.map +0 -1
- package/dist/types/interfaces/default-schema.interface.d.ts.map +0 -1
- package/dist/types/interfaces/errors.interface.d.ts +0 -38
- package/dist/types/interfaces/errors.interface.d.ts.map +0 -1
- package/dist/types/interfaces/index.d.ts +0 -6
- package/dist/types/interfaces/index.d.ts.map +0 -1
- package/dist/types/interfaces/module-options.interface.d.ts.map +0 -1
- package/dist/types/loaders/environment.loader.d.ts +0 -26
- package/dist/types/loaders/environment.loader.d.ts.map +0 -1
- package/dist/types/loaders/secrets-manager.loader.d.ts +0 -52
- package/dist/types/loaders/secrets-manager.loader.d.ts.map +0 -1
- package/dist/types/loaders/ssm-parameter-store.loader.d.ts +0 -68
- package/dist/types/loaders/ssm-parameter-store.loader.d.ts.map +0 -1
- package/dist/types/services/config.service.d.ts +0 -94
- package/dist/types/services/config.service.d.ts.map +0 -1
- package/dist/types/utils/validation.util.d.ts.map +0 -1
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/index.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/configuration-factory.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/configuration-source.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/index.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/integration-options.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/integration-state.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/nestjs-config-compatibility.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/nestjs-config-integration.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/typed-configuration.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/utility-types.interface.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/nestjs-config-integration.module.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/aws-configuration-loader.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/configuration-factory.provider.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/index.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/async-config-helper.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/error-handler.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/factory-registration.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/index.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/integration-state.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/namespace-handler.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/nestjs-config-integration.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/precedence-handler.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/validation-integration.service.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/utils/config-integration.util.d.ts +0 -0
- /package/dist/types/{integration → nestjs-config-aws/src/integration}/utils/index.d.ts +0 -0
- /package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/config-service.interface.d.ts +0 -0
- /package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/module-options.interface.d.ts +0 -0
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
var AsyncConfigHelperService_1;
|
|
14
|
-
import { Injectable, Logger, Inject, Optional } from '@nestjs/common';
|
|
15
|
-
import { FactoryRegistrationService } from './factory-registration.service';
|
|
16
|
-
import { NESTJS_CONFIG_AWS_INTEGRATION_OPTIONS } from '../nestjs-config-integration.module';
|
|
17
|
-
/**
|
|
18
|
-
* Helper service for async configuration support with @nestjs/config.
|
|
19
|
-
* This service provides utilities for creating async configuration factories
|
|
20
|
-
* and managing dependency injection in async scenarios.
|
|
21
|
-
*/
|
|
22
|
-
let AsyncConfigHelperService = AsyncConfigHelperService_1 = class AsyncConfigHelperService {
|
|
23
|
-
constructor(factoryRegistrationService, options = {}) {
|
|
24
|
-
this.factoryRegistrationService = factoryRegistrationService;
|
|
25
|
-
this.options = options;
|
|
26
|
-
this.logger = new Logger(AsyncConfigHelperService_1.name);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Create an async configuration factory that loads AWS configuration.
|
|
30
|
-
* This factory can be used with @nestjs/config's load array.
|
|
31
|
-
*
|
|
32
|
-
* @returns Promise resolving to configuration factory
|
|
33
|
-
*/
|
|
34
|
-
async createAsyncConfigFactory() {
|
|
35
|
-
this.logger.debug('Creating async configuration factory');
|
|
36
|
-
try {
|
|
37
|
-
// Register AWS factories and get the first one
|
|
38
|
-
const awsFactories = await this.factoryRegistrationService.registerFactories();
|
|
39
|
-
if (awsFactories.length === 0) {
|
|
40
|
-
this.logger.warn('No AWS factories available, creating empty factory');
|
|
41
|
-
return () => ({});
|
|
42
|
-
}
|
|
43
|
-
// Create a combined factory that merges all AWS factories
|
|
44
|
-
const combinedFactory = () => {
|
|
45
|
-
const combinedConfig = {};
|
|
46
|
-
for (const factory of awsFactories) {
|
|
47
|
-
try {
|
|
48
|
-
const factoryConfig = factory();
|
|
49
|
-
Object.assign(combinedConfig, factoryConfig);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
this.logger.error(`Error executing AWS factory:`, error);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return combinedConfig;
|
|
56
|
-
};
|
|
57
|
-
this.logger.debug(`Created async configuration factory with ${awsFactories.length} AWS factories`);
|
|
58
|
-
return combinedFactory;
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
const factoryError = error instanceof Error ? error : new Error(String(error));
|
|
62
|
-
this.logger.error('Failed to create async configuration factory:', factoryError);
|
|
63
|
-
// Handle error based on options
|
|
64
|
-
if (this.options.failOnAwsError) {
|
|
65
|
-
throw factoryError;
|
|
66
|
-
}
|
|
67
|
-
// Return empty factory as fallback
|
|
68
|
-
if (this.options.fallbackToLocal) {
|
|
69
|
-
this.logger.warn('Returning empty factory due to AWS error');
|
|
70
|
-
return () => ({});
|
|
71
|
-
}
|
|
72
|
-
throw factoryError;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Create multiple async configuration factories for namespaces.
|
|
77
|
-
* This method creates separate factories for each namespace.
|
|
78
|
-
*
|
|
79
|
-
* @param namespaces - Array of namespace names
|
|
80
|
-
* @returns Promise resolving to array of namespaced configuration factories
|
|
81
|
-
*/
|
|
82
|
-
async createAsyncNamespacedFactories(namespaces) {
|
|
83
|
-
this.logger.debug(`Creating async namespaced factories for: ${namespaces.join(', ')}`);
|
|
84
|
-
try {
|
|
85
|
-
const namespacedFactories = await this.factoryRegistrationService.registerNamespacedFactories(namespaces);
|
|
86
|
-
if (namespacedFactories.length === 0) {
|
|
87
|
-
this.logger.warn('No namespaced factories available, creating empty factories');
|
|
88
|
-
return namespaces.map(() => () => ({}));
|
|
89
|
-
}
|
|
90
|
-
this.logger.debug(`Created ${namespacedFactories.length} async namespaced factories`);
|
|
91
|
-
return namespacedFactories;
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
const namespacedError = error instanceof Error ? error : new Error(String(error));
|
|
95
|
-
this.logger.error('Failed to create async namespaced factories:', namespacedError);
|
|
96
|
-
// Handle error based on options
|
|
97
|
-
if (this.options.failOnAwsError) {
|
|
98
|
-
throw namespacedError;
|
|
99
|
-
}
|
|
100
|
-
// Return empty factories as fallback
|
|
101
|
-
if (this.options.fallbackToLocal) {
|
|
102
|
-
this.logger.warn('Returning empty namespaced factories due to AWS error');
|
|
103
|
-
return namespaces.map(() => () => ({}));
|
|
104
|
-
}
|
|
105
|
-
throw namespacedError;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Create an async factory function that can be used with dependency injection.
|
|
110
|
-
* This method creates a factory that can receive injected dependencies.
|
|
111
|
-
*
|
|
112
|
-
* @param dependencies - Array of dependency tokens to inject
|
|
113
|
-
* @returns Async factory function
|
|
114
|
-
*/
|
|
115
|
-
createAsyncFactoryWithDependencies(dependencies = []) {
|
|
116
|
-
this.logger.debug(`Creating async factory with ${dependencies.length} dependencies`);
|
|
117
|
-
return async (..._injectedDependencies) => {
|
|
118
|
-
try {
|
|
119
|
-
this.logger.debug('Executing async factory with dependencies');
|
|
120
|
-
// Create AWS configuration factory
|
|
121
|
-
const awsFactory = await this.createAsyncConfigFactory();
|
|
122
|
-
// Create enhanced configuration options
|
|
123
|
-
const configOptions = {
|
|
124
|
-
load: [awsFactory],
|
|
125
|
-
isGlobal: this.options.registerGlobally ?? true,
|
|
126
|
-
cache: this.options.factoryOptions?.cache ?? true,
|
|
127
|
-
expandVariables: this.options.factoryOptions?.expandVariables ?? true,
|
|
128
|
-
};
|
|
129
|
-
this.logger.debug('Async factory with dependencies executed successfully');
|
|
130
|
-
return configOptions;
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
const dependencyError = error instanceof Error ? error : new Error(String(error));
|
|
134
|
-
this.logger.error('Failed to execute async factory with dependencies:', dependencyError);
|
|
135
|
-
// Handle error based on options
|
|
136
|
-
if (this.options.failOnAwsError) {
|
|
137
|
-
throw dependencyError;
|
|
138
|
-
}
|
|
139
|
-
// Return basic configuration as fallback
|
|
140
|
-
if (this.options.fallbackToLocal) {
|
|
141
|
-
this.logger.warn('Returning basic configuration due to dependency error');
|
|
142
|
-
return {
|
|
143
|
-
load: [],
|
|
144
|
-
isGlobal: this.options.registerGlobally ?? true,
|
|
145
|
-
cache: this.options.factoryOptions?.cache ?? true,
|
|
146
|
-
expandVariables: this.options.factoryOptions?.expandVariables ?? true,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
throw dependencyError;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Create an async factory that merges with existing configuration.
|
|
155
|
-
* This method creates a factory that can be combined with other configuration sources.
|
|
156
|
-
*
|
|
157
|
-
* @param existingFactory - Existing configuration factory to merge with
|
|
158
|
-
* @returns Promise resolving to merged configuration factory
|
|
159
|
-
*/
|
|
160
|
-
async createMergedAsyncFactory(existingFactory) {
|
|
161
|
-
this.logger.debug('Creating merged async configuration factory');
|
|
162
|
-
try {
|
|
163
|
-
// Create AWS configuration factory
|
|
164
|
-
const awsFactory = await this.createAsyncConfigFactory();
|
|
165
|
-
// If no existing factory, return AWS factory
|
|
166
|
-
if (!existingFactory) {
|
|
167
|
-
return awsFactory;
|
|
168
|
-
}
|
|
169
|
-
// Create merged factory
|
|
170
|
-
const mergedFactory = () => {
|
|
171
|
-
const awsConfig = awsFactory();
|
|
172
|
-
const existingConfig = existingFactory();
|
|
173
|
-
// Merge configurations based on precedence
|
|
174
|
-
const precedence = this.options.precedence || 'aws-first';
|
|
175
|
-
if (precedence === 'aws-first') {
|
|
176
|
-
return { ...existingConfig, ...awsConfig };
|
|
177
|
-
}
|
|
178
|
-
else if (precedence === 'local-first') {
|
|
179
|
-
return { ...awsConfig, ...existingConfig };
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
// merge - deep merge both configurations
|
|
183
|
-
return this.deepMerge(existingConfig, awsConfig);
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
this.logger.debug('Created merged async configuration factory');
|
|
187
|
-
return mergedFactory;
|
|
188
|
-
}
|
|
189
|
-
catch (error) {
|
|
190
|
-
const mergeError = error instanceof Error ? error : new Error(String(error));
|
|
191
|
-
this.logger.error('Failed to create merged async factory:', mergeError);
|
|
192
|
-
// Handle error based on options
|
|
193
|
-
if (this.options.failOnAwsError) {
|
|
194
|
-
throw mergeError;
|
|
195
|
-
}
|
|
196
|
-
// Return existing factory or empty factory as fallback
|
|
197
|
-
if (this.options.fallbackToLocal) {
|
|
198
|
-
this.logger.warn('Returning existing factory due to merge error');
|
|
199
|
-
return existingFactory || (() => ({}));
|
|
200
|
-
}
|
|
201
|
-
throw mergeError;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Create configuration options for async module setup.
|
|
206
|
-
* This method creates options that can be used with ConfigModule.forRoot().
|
|
207
|
-
*
|
|
208
|
-
* @param baseOptions - Base configuration options to enhance
|
|
209
|
-
* @returns Promise resolving to enhanced configuration options
|
|
210
|
-
*/
|
|
211
|
-
async createAsyncConfigOptions(baseOptions = {}) {
|
|
212
|
-
this.logger.debug('Creating async configuration options');
|
|
213
|
-
try {
|
|
214
|
-
// Create AWS configuration factory
|
|
215
|
-
const awsFactory = await this.createAsyncConfigFactory();
|
|
216
|
-
// Merge with existing load array
|
|
217
|
-
const existingLoad = baseOptions.load || [];
|
|
218
|
-
const enhancedLoad = [...existingLoad, awsFactory];
|
|
219
|
-
// Create enhanced options
|
|
220
|
-
const enhancedOptions = {
|
|
221
|
-
...baseOptions,
|
|
222
|
-
load: enhancedLoad,
|
|
223
|
-
isGlobal: baseOptions.isGlobal !== undefined ? baseOptions.isGlobal : (this.options.registerGlobally ?? true),
|
|
224
|
-
cache: baseOptions.cache !== undefined ? baseOptions.cache : (this.options.factoryOptions?.cache ?? true),
|
|
225
|
-
expandVariables: baseOptions.expandVariables !== undefined ? baseOptions.expandVariables : (this.options.factoryOptions?.expandVariables ?? true),
|
|
226
|
-
};
|
|
227
|
-
this.logger.debug('Created async configuration options');
|
|
228
|
-
return enhancedOptions;
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
const optionsError = error instanceof Error ? error : new Error(String(error));
|
|
232
|
-
this.logger.error('Failed to create async configuration options:', optionsError);
|
|
233
|
-
// Handle error based on options
|
|
234
|
-
if (this.options.failOnAwsError) {
|
|
235
|
-
throw optionsError;
|
|
236
|
-
}
|
|
237
|
-
// Return base options as fallback
|
|
238
|
-
if (this.options.fallbackToLocal) {
|
|
239
|
-
this.logger.warn('Returning base options due to async error');
|
|
240
|
-
return baseOptions;
|
|
241
|
-
}
|
|
242
|
-
throw optionsError;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Check if AWS configuration is available for async loading.
|
|
247
|
-
* This method can be used to determine if AWS integration should be enabled.
|
|
248
|
-
*
|
|
249
|
-
* @returns Promise resolving to availability status
|
|
250
|
-
*/
|
|
251
|
-
async checkAsyncAvailability() {
|
|
252
|
-
this.logger.debug('Checking async configuration availability');
|
|
253
|
-
const status = {
|
|
254
|
-
isAvailable: false,
|
|
255
|
-
factoriesCount: 0,
|
|
256
|
-
errors: []
|
|
257
|
-
};
|
|
258
|
-
try {
|
|
259
|
-
// Try to register factories to check availability
|
|
260
|
-
const factories = await this.factoryRegistrationService.registerFactories();
|
|
261
|
-
status.isAvailable = factories.length > 0;
|
|
262
|
-
status.factoriesCount = factories.length;
|
|
263
|
-
this.logger.debug(`Async availability check: available=${status.isAvailable}, factories=${status.factoriesCount}`);
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
const availabilityError = error instanceof Error ? error : new Error(String(error));
|
|
267
|
-
status.errors.push(availabilityError.message);
|
|
268
|
-
this.logger.error('Async availability check failed:', availabilityError);
|
|
269
|
-
}
|
|
270
|
-
return status;
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Create a factory that loads configuration on-demand.
|
|
274
|
-
* This factory delays AWS configuration loading until it's actually needed.
|
|
275
|
-
*
|
|
276
|
-
* @returns Configuration factory with lazy loading
|
|
277
|
-
*/
|
|
278
|
-
createLazyAsyncFactory() {
|
|
279
|
-
this.logger.debug('Creating lazy async configuration factory');
|
|
280
|
-
let cachedConfig = null;
|
|
281
|
-
let loadingPromise = null;
|
|
282
|
-
return () => {
|
|
283
|
-
// Return cached config if available
|
|
284
|
-
if (cachedConfig !== null) {
|
|
285
|
-
return cachedConfig;
|
|
286
|
-
}
|
|
287
|
-
// If already loading, wait for the promise
|
|
288
|
-
if (loadingPromise) {
|
|
289
|
-
// For synchronous factory, we can't wait for async operations
|
|
290
|
-
// Return empty config and let the promise resolve in background
|
|
291
|
-
this.logger.warn('Lazy factory called while loading, returning empty config');
|
|
292
|
-
return {};
|
|
293
|
-
}
|
|
294
|
-
// Start loading configuration
|
|
295
|
-
loadingPromise = this.loadConfigurationLazily();
|
|
296
|
-
// Return empty config for now (will be populated on next call)
|
|
297
|
-
this.logger.debug('Started lazy loading, returning empty config');
|
|
298
|
-
return {};
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Load configuration lazily for the lazy factory.
|
|
303
|
-
* @returns Promise resolving to configuration data
|
|
304
|
-
*/
|
|
305
|
-
async loadConfigurationLazily() {
|
|
306
|
-
try {
|
|
307
|
-
this.logger.debug('Loading configuration lazily');
|
|
308
|
-
const awsFactory = await this.createAsyncConfigFactory();
|
|
309
|
-
const config = awsFactory();
|
|
310
|
-
// Cache the configuration
|
|
311
|
-
const cachedConfig = config;
|
|
312
|
-
this.logger.debug('Lazy configuration loading completed');
|
|
313
|
-
return cachedConfig;
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
const lazyError = error instanceof Error ? error : new Error(String(error));
|
|
317
|
-
this.logger.error('Lazy configuration loading failed:', lazyError);
|
|
318
|
-
// Return empty config on error
|
|
319
|
-
return {};
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Deep merge two configuration objects.
|
|
324
|
-
* @param target - Target object
|
|
325
|
-
* @param source - Source object
|
|
326
|
-
* @returns Merged object
|
|
327
|
-
*/
|
|
328
|
-
deepMerge(target, source) {
|
|
329
|
-
const result = { ...target };
|
|
330
|
-
for (const [key, value] of Object.entries(source)) {
|
|
331
|
-
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
332
|
-
if (result[key] && typeof result[key] === 'object' && !Array.isArray(result[key])) {
|
|
333
|
-
result[key] = this.deepMerge(result[key], value);
|
|
334
|
-
}
|
|
335
|
-
else {
|
|
336
|
-
result[key] = { ...value };
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
result[key] = value;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
return result;
|
|
344
|
-
}
|
|
345
|
-
};
|
|
346
|
-
AsyncConfigHelperService = AsyncConfigHelperService_1 = __decorate([
|
|
347
|
-
Injectable(),
|
|
348
|
-
__param(1, Optional()),
|
|
349
|
-
__param(1, Inject(NESTJS_CONFIG_AWS_INTEGRATION_OPTIONS)),
|
|
350
|
-
__metadata("design:paramtypes", [FactoryRegistrationService, Object])
|
|
351
|
-
], AsyncConfigHelperService);
|
|
352
|
-
export { AsyncConfigHelperService };
|
|
353
|
-
//# sourceMappingURL=async-config-helper.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"async-config-helper.service.js","sourceRoot":"","sources":["../../../../src/integration/services/async-config-helper.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var ErrorHandlerService_1;
|
|
11
|
-
import { Injectable, Logger } from '@nestjs/common';
|
|
12
|
-
import { ConfigurationError } from '../../interfaces/errors.interface';
|
|
13
|
-
/**
|
|
14
|
-
* Service for handling errors and implementing graceful degradation strategies
|
|
15
|
-
* in the AWS configuration integration.
|
|
16
|
-
*/
|
|
17
|
-
let ErrorHandlerService = ErrorHandlerService_1 = class ErrorHandlerService {
|
|
18
|
-
constructor(options) {
|
|
19
|
-
this.options = options;
|
|
20
|
-
this.logger = new Logger(ErrorHandlerService_1.name);
|
|
21
|
-
// Set default error handling strategy
|
|
22
|
-
this.errorHandling = {
|
|
23
|
-
onAwsUnavailable: 'warn',
|
|
24
|
-
onConfigurationError: 'warn',
|
|
25
|
-
onValidationError: 'fail',
|
|
26
|
-
enableDetailedLogging: true,
|
|
27
|
-
...options.errorHandling,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Handle AWS service unavailability.
|
|
32
|
-
* @param serviceName - Name of the AWS service that's unavailable
|
|
33
|
-
* @param error - The error that occurred
|
|
34
|
-
* @returns Whether to continue processing
|
|
35
|
-
*/
|
|
36
|
-
handleAwsUnavailable(serviceName, error) {
|
|
37
|
-
const message = `AWS service '${serviceName}' is unavailable${error ? `: ${error.message}` : ''}`;
|
|
38
|
-
switch (this.errorHandling.onAwsUnavailable) {
|
|
39
|
-
case 'fail':
|
|
40
|
-
this.logger.error(message);
|
|
41
|
-
throw new ConfigurationError(`AWS service unavailable: ${serviceName}`, error);
|
|
42
|
-
case 'warn':
|
|
43
|
-
this.logger.warn(message);
|
|
44
|
-
this.logger.warn('Continuing with available configuration sources');
|
|
45
|
-
return true;
|
|
46
|
-
case 'silent':
|
|
47
|
-
if (this.errorHandling.enableDetailedLogging) {
|
|
48
|
-
this.logger.debug(message);
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
51
|
-
default:
|
|
52
|
-
this.logger.warn(message);
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Handle configuration loading errors.
|
|
58
|
-
* @param source - Name of the configuration source
|
|
59
|
-
* @param error - The error that occurred
|
|
60
|
-
* @returns Whether to continue processing
|
|
61
|
-
*/
|
|
62
|
-
handleConfigurationError(source, error) {
|
|
63
|
-
const message = `Configuration error from '${source}': ${error.message}`;
|
|
64
|
-
switch (this.errorHandling.onConfigurationError) {
|
|
65
|
-
case 'fail':
|
|
66
|
-
this.logger.error(message);
|
|
67
|
-
throw new ConfigurationError(`Configuration loading failed: ${source}`, error);
|
|
68
|
-
case 'warn':
|
|
69
|
-
this.logger.warn(message);
|
|
70
|
-
this.logger.warn('Continuing with other configuration sources');
|
|
71
|
-
return true;
|
|
72
|
-
case 'use-default':
|
|
73
|
-
this.logger.warn(message);
|
|
74
|
-
this.logger.warn('Using default configuration values');
|
|
75
|
-
return true;
|
|
76
|
-
default:
|
|
77
|
-
this.logger.warn(message);
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Handle validation errors.
|
|
83
|
-
* @param field - The field that failed validation
|
|
84
|
-
* @param error - The validation error
|
|
85
|
-
* @returns Whether to continue processing
|
|
86
|
-
*/
|
|
87
|
-
handleValidationError(field, error) {
|
|
88
|
-
const message = `Validation error for field '${field}': ${error.message}`;
|
|
89
|
-
switch (this.errorHandling.onValidationError) {
|
|
90
|
-
case 'fail':
|
|
91
|
-
this.logger.error(message);
|
|
92
|
-
throw new ConfigurationError(`Validation failed: ${field}`, error);
|
|
93
|
-
case 'warn':
|
|
94
|
-
this.logger.warn(message);
|
|
95
|
-
this.logger.warn('Continuing with invalid configuration value');
|
|
96
|
-
return true;
|
|
97
|
-
case 'skip-invalid':
|
|
98
|
-
this.logger.warn(message);
|
|
99
|
-
this.logger.warn('Skipping invalid configuration value');
|
|
100
|
-
return false;
|
|
101
|
-
default:
|
|
102
|
-
this.logger.error(message);
|
|
103
|
-
throw new ConfigurationError(`Validation failed: ${field}`, error);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Handle network connectivity issues.
|
|
108
|
-
* @param service - The service experiencing connectivity issues
|
|
109
|
-
* @param error - The network error
|
|
110
|
-
* @returns Whether to retry or continue
|
|
111
|
-
*/
|
|
112
|
-
handleNetworkError(service, error) {
|
|
113
|
-
const message = `Network error connecting to '${service}': ${error.message}`;
|
|
114
|
-
if (this.errorHandling.enableDetailedLogging) {
|
|
115
|
-
this.logger.error(message);
|
|
116
|
-
this.logger.error('Stack trace:', error.stack);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
this.logger.error(message);
|
|
120
|
-
}
|
|
121
|
-
// For network errors, we generally don't retry immediately but continue with other sources
|
|
122
|
-
return {
|
|
123
|
-
shouldRetry: false,
|
|
124
|
-
shouldContinue: true,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Handle permission denied errors.
|
|
129
|
-
* @param service - The service that denied access
|
|
130
|
-
* @param resource - The resource that was accessed
|
|
131
|
-
* @param error - The permission error
|
|
132
|
-
* @returns Whether to continue processing
|
|
133
|
-
*/
|
|
134
|
-
handlePermissionError(service, resource, error) {
|
|
135
|
-
const message = `Permission denied accessing '${resource}' in '${service}': ${error.message}`;
|
|
136
|
-
this.logger.error(message);
|
|
137
|
-
this.logger.error('Please check AWS credentials and IAM permissions');
|
|
138
|
-
if (this.errorHandling.enableDetailedLogging) {
|
|
139
|
-
this.logger.error('Stack trace:', error.stack);
|
|
140
|
-
}
|
|
141
|
-
// Permission errors are usually configuration issues, so we continue with other sources
|
|
142
|
-
return this.handleConfigurationError(service, error);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Handle resource not found errors.
|
|
146
|
-
* @param service - The service where the resource was not found
|
|
147
|
-
* @param resource - The resource that was not found
|
|
148
|
-
* @param error - The not found error
|
|
149
|
-
* @returns Whether to continue processing
|
|
150
|
-
*/
|
|
151
|
-
handleResourceNotFound(service, resource, error) {
|
|
152
|
-
const message = `Resource '${resource}' not found in '${service}'${error ? `: ${error.message}` : ''}`;
|
|
153
|
-
if (this.errorHandling.enableDetailedLogging) {
|
|
154
|
-
this.logger.debug(message);
|
|
155
|
-
this.logger.debug('This may be expected if the resource is not configured for this environment');
|
|
156
|
-
}
|
|
157
|
-
// Resource not found is often expected in different environments
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Log detailed error information for troubleshooting.
|
|
162
|
-
* @param context - The context where the error occurred
|
|
163
|
-
* @param error - The error to log
|
|
164
|
-
* @param additionalInfo - Additional information to include
|
|
165
|
-
*/
|
|
166
|
-
logDetailedError(context, error, additionalInfo) {
|
|
167
|
-
if (!this.errorHandling.enableDetailedLogging) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
this.logger.error(`Detailed error in ${context}:`);
|
|
171
|
-
this.logger.error(`Error name: ${error.name}`);
|
|
172
|
-
this.logger.error(`Error message: ${error.message}`);
|
|
173
|
-
if (error.stack) {
|
|
174
|
-
this.logger.error(`Stack trace: ${error.stack}`);
|
|
175
|
-
}
|
|
176
|
-
if (additionalInfo) {
|
|
177
|
-
this.logger.error(`Additional info: ${JSON.stringify(additionalInfo, null, 2)}`);
|
|
178
|
-
}
|
|
179
|
-
// Log environment information that might be relevant
|
|
180
|
-
this.logger.error('Environment context:');
|
|
181
|
-
this.logger.error(`NODE_ENV: ${process.env['NODE_ENV'] || 'undefined'}`);
|
|
182
|
-
this.logger.error(`APP_ENV: ${process.env['APP_ENV'] || 'undefined'}`);
|
|
183
|
-
this.logger.error(`AWS_REGION: ${process.env['AWS_REGION'] || 'undefined'}`);
|
|
184
|
-
this.logger.error(`AWS_PROFILE: ${process.env['AWS_PROFILE'] || 'undefined'}`);
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Create a fallback configuration when AWS sources fail.
|
|
188
|
-
* @param namespace - Optional namespace for the fallback config
|
|
189
|
-
* @returns Fallback configuration object
|
|
190
|
-
*/
|
|
191
|
-
createFallbackConfiguration(namespace) {
|
|
192
|
-
const fallbackConfig = {};
|
|
193
|
-
if (this.options.fallbackToLocal) {
|
|
194
|
-
this.logger.warn('Creating fallback configuration from environment variables');
|
|
195
|
-
// Extract environment variables that might be configuration
|
|
196
|
-
for (const [key, value] of Object.entries(process.env)) {
|
|
197
|
-
if (value !== undefined) {
|
|
198
|
-
// If namespace is specified, only include keys that match
|
|
199
|
-
if (namespace) {
|
|
200
|
-
const upperNamespace = namespace.toUpperCase();
|
|
201
|
-
if (key.toUpperCase().startsWith(upperNamespace)) {
|
|
202
|
-
const namespacedKey = key.substring(namespace.length);
|
|
203
|
-
const cleanKey = namespacedKey.startsWith('_') ? namespacedKey.substring(1) : namespacedKey;
|
|
204
|
-
if (cleanKey) {
|
|
205
|
-
fallbackConfig[cleanKey] = value;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
fallbackConfig[key] = value;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return fallbackConfig;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Check if an error is retryable.
|
|
219
|
-
* @param error - The error to check
|
|
220
|
-
* @returns Whether the error is retryable
|
|
221
|
-
*/
|
|
222
|
-
isRetryableError(error) {
|
|
223
|
-
// Network errors are generally retryable
|
|
224
|
-
if (error.name === 'NetworkingError' || error.name === 'TimeoutError') {
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
// Throttling errors are retryable
|
|
228
|
-
if (error.name === 'ThrottlingException' || error.name === 'TooManyRequestsException') {
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
|
-
// Service unavailable errors are retryable
|
|
232
|
-
if (error.name === 'ServiceUnavailableException') {
|
|
233
|
-
return true;
|
|
234
|
-
}
|
|
235
|
-
// Permission and resource not found errors are not retryable
|
|
236
|
-
if (error.name === 'AccessDeniedException' || error.name === 'ResourceNotFoundException') {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
// Default to not retryable for unknown errors
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Get retry delay for retryable errors.
|
|
244
|
-
* @param attemptNumber - The current attempt number (1-based)
|
|
245
|
-
* @returns Delay in milliseconds
|
|
246
|
-
*/
|
|
247
|
-
getRetryDelay(attemptNumber) {
|
|
248
|
-
// Exponential backoff with jitter
|
|
249
|
-
const baseDelay = 1000; // 1 second
|
|
250
|
-
const maxDelay = 30000; // 30 seconds
|
|
251
|
-
const delay = Math.min(baseDelay * Math.pow(2, attemptNumber - 1), maxDelay);
|
|
252
|
-
// Add jitter (±25%)
|
|
253
|
-
const jitter = delay * 0.25 * (Math.random() - 0.5);
|
|
254
|
-
return Math.max(100, delay + jitter); // Minimum 100ms delay
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
ErrorHandlerService = ErrorHandlerService_1 = __decorate([
|
|
258
|
-
Injectable(),
|
|
259
|
-
__metadata("design:paramtypes", [Object])
|
|
260
|
-
], ErrorHandlerService);
|
|
261
|
-
export { ErrorHandlerService };
|
|
262
|
-
//# sourceMappingURL=error-handler.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.service.js","sourceRoot":"","sources":["../../../../src/integration/services/error-handler.service.ts"],"names":[],"mappings":"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"}
|