@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nestjs-config-integration.module.js","sourceRoot":"","sources":["../../../src/integration/nestjs-config-integration.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAY,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEzF;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,uCAAuC,CAAC;AAE7F;;;GAGG;AAGI,IAAM,8BAA8B,sCAApC,MAAM,8BAA8B;IACzC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,MAAM,EAAE,gCAA8B;YACtC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qCAAqC;oBAC9C,QAAQ,EAAE,OAAO;iBAClB;gBACD,GAAG,SAAS;aACb;YACD,OAAO,EAAE;gBACP,gCAAgC;gBAChC,6BAA6B;gBAC7B,uBAAuB;gBACvB,0BAA0B;gBAC1B,8BAA8B;gBAC9B,wBAAwB;gBACxB,uBAAuB;gBACvB,4BAA4B;aAC7B;YACD,MAAM,EAAE,OAAO,CAAC,gBAAgB,KAAK,KAAK;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEzC,OAAO;YACL,MAAM,EAAE,gCAA8B;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT,GAAG,cAAc;gBACjB,GAAG,SAAS;aACb;YACD,OAAO,EAAE;gBACP,gCAAgC;gBAChC,6BAA6B;gBAC7B,uBAAuB;gBACvB,0BAA0B;gBAC1B,8BAA8B;gBAC9B,wBAAwB;gBACxB,uBAAuB;gBACvB,4BAA4B;aAC7B;YACD,MAAM,EAAE,IAAI,EAAE,sCAAsC;SACrD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAAC,QAA6B;QAC1D,OAAO;YACL,gCAAgC;YAChC,6BAA6B;YAC7B,uBAAuB;YACvB,wBAAwB;YACxB,0BAA0B;YAC1B,8BAA8B;YAC9B,wBAAwB;YACxB,uBAAuB;YACvB,4BAA4B;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,oBAAoB,CAAC,OAAgC;QAClE,OAAO;YACL;gBACE,OAAO,EAAE,qCAAqC;gBAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA9FY,8BAA8B;IAF1C,MAAM,EAAE;IACR,MAAM,CAAC,EAAE,CAAC;GACE,8BAA8B,CA8F1C"}
|
|
@@ -1,588 +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 AwsConfigurationLoaderService_1;
|
|
14
|
-
import { Injectable, Logger, Inject, Optional } from '@nestjs/common';
|
|
15
|
-
import { SecretsManagerLoader } from '../../loaders/secrets-manager.loader';
|
|
16
|
-
import { SSMParameterStoreLoader } from '../../loaders/ssm-parameter-store.loader';
|
|
17
|
-
import { EnvironmentLoader } from '../../loaders/environment.loader';
|
|
18
|
-
import { ErrorHandlerService } from '../services/error-handler.service';
|
|
19
|
-
/**
|
|
20
|
-
* Service for loading configuration from AWS sources for integration with @nestjs/config.
|
|
21
|
-
* Uses existing AWS loaders to fetch configuration and provides namespace-aware loading capabilities.
|
|
22
|
-
*/
|
|
23
|
-
let AwsConfigurationLoaderService = AwsConfigurationLoaderService_1 = class AwsConfigurationLoaderService {
|
|
24
|
-
constructor(options) {
|
|
25
|
-
this.logger = new Logger(AwsConfigurationLoaderService_1.name);
|
|
26
|
-
this.options = options || {};
|
|
27
|
-
this.errorHandler = new ErrorHandlerService(this.options);
|
|
28
|
-
this.loaders = this.createLoaders();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Load configuration from AWS sources.
|
|
32
|
-
* @returns Promise resolving to configuration data
|
|
33
|
-
*/
|
|
34
|
-
async loadConfiguration() {
|
|
35
|
-
const mergedConfig = {};
|
|
36
|
-
const sources = [];
|
|
37
|
-
for (const loader of this.loaders) {
|
|
38
|
-
try {
|
|
39
|
-
// Check if loader is available in current environment with timeout
|
|
40
|
-
const isAvailable = await this.checkAvailabilityWithTimeout(loader);
|
|
41
|
-
if (!isAvailable) {
|
|
42
|
-
if (this.options.enableLogging) {
|
|
43
|
-
this.logger.debug(`Skipping ${loader.getName()} - not available in current environment`);
|
|
44
|
-
}
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (this.options.enableLogging) {
|
|
48
|
-
this.logger.debug(`Loading configuration from ${loader.getName()}`);
|
|
49
|
-
}
|
|
50
|
-
// Load configuration from this source with retry logic for AWS services
|
|
51
|
-
const loaderConfig = loader instanceof EnvironmentLoader
|
|
52
|
-
? await loader.load()
|
|
53
|
-
: await this.loadWithRetry(loader);
|
|
54
|
-
// Create configuration source metadata
|
|
55
|
-
const source = {
|
|
56
|
-
name: loader.getName(),
|
|
57
|
-
type: this.getSourceType(loader),
|
|
58
|
-
priority: this.getSourcePriority(loader),
|
|
59
|
-
data: loaderConfig,
|
|
60
|
-
loadedAt: new Date(),
|
|
61
|
-
};
|
|
62
|
-
sources.push(source);
|
|
63
|
-
// Merge with existing configuration based on precedence
|
|
64
|
-
Object.assign(mergedConfig, loaderConfig);
|
|
65
|
-
if (this.options.enableLogging) {
|
|
66
|
-
const keyCount = Object.keys(loaderConfig).length;
|
|
67
|
-
this.logger.debug(`Loaded ${keyCount} configuration values from ${loader.getName()}`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
const loaderError = error instanceof Error ? error : new Error(String(error));
|
|
72
|
-
// Log detailed error information for troubleshooting
|
|
73
|
-
this.errorHandler.logDetailedError(`loadConfiguration - ${loader.getName()}`, loaderError, {
|
|
74
|
-
loaderName: loader.getName(),
|
|
75
|
-
loaderType: this.getSourceType(loader),
|
|
76
|
-
});
|
|
77
|
-
// Handle specific error types
|
|
78
|
-
if (this.isAwsServiceError(loaderError)) {
|
|
79
|
-
const shouldContinue = this.handleAwsSpecificError(loader, loaderError);
|
|
80
|
-
if (!shouldContinue) {
|
|
81
|
-
throw loaderError;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// Handle general configuration errors
|
|
86
|
-
const shouldContinue = this.errorHandler.handleConfigurationError(loader.getName(), loaderError);
|
|
87
|
-
if (!shouldContinue) {
|
|
88
|
-
throw loaderError;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// Add error to source metadata
|
|
92
|
-
const errorSource = {
|
|
93
|
-
name: loader.getName(),
|
|
94
|
-
type: this.getSourceType(loader),
|
|
95
|
-
priority: this.getSourcePriority(loader),
|
|
96
|
-
data: {},
|
|
97
|
-
loadedAt: new Date(),
|
|
98
|
-
errors: [loaderError.message],
|
|
99
|
-
};
|
|
100
|
-
sources.push(errorSource);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return mergedConfig;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Load configuration for specific namespaces from AWS sources.
|
|
107
|
-
* @param namespaces - Array of namespace names to load
|
|
108
|
-
* @returns Promise resolving to namespaced configuration data
|
|
109
|
-
*/
|
|
110
|
-
async loadNamespacedConfiguration(namespaces) {
|
|
111
|
-
const result = {};
|
|
112
|
-
// Initialize all namespaces
|
|
113
|
-
for (const namespace of namespaces) {
|
|
114
|
-
result[namespace] = {};
|
|
115
|
-
}
|
|
116
|
-
for (const loader of this.loaders) {
|
|
117
|
-
try {
|
|
118
|
-
// Check if loader is available in current environment with timeout
|
|
119
|
-
const isAvailable = await this.checkAvailabilityWithTimeout(loader);
|
|
120
|
-
if (!isAvailable) {
|
|
121
|
-
if (this.options.enableLogging) {
|
|
122
|
-
this.logger.debug(`Skipping ${loader.getName()} for namespace loading - not available`);
|
|
123
|
-
}
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (this.options.enableLogging) {
|
|
127
|
-
this.logger.debug(`Loading namespaced configuration from ${loader.getName()}`);
|
|
128
|
-
}
|
|
129
|
-
// Load configuration from this source with retry logic for AWS services
|
|
130
|
-
const loaderConfig = loader instanceof EnvironmentLoader
|
|
131
|
-
? await loader.load()
|
|
132
|
-
: await this.loadWithRetry(loader);
|
|
133
|
-
// Distribute configuration to namespaces based on key prefixes or patterns
|
|
134
|
-
for (const namespace of namespaces) {
|
|
135
|
-
const namespacedConfig = this.extractNamespaceConfig(loaderConfig, namespace);
|
|
136
|
-
if (Object.keys(namespacedConfig).length > 0) {
|
|
137
|
-
Object.assign(result[namespace], namespacedConfig);
|
|
138
|
-
if (this.options.enableLogging) {
|
|
139
|
-
const keyCount = Object.keys(namespacedConfig).length;
|
|
140
|
-
this.logger.debug(`Loaded ${keyCount} values for namespace '${namespace}' from ${loader.getName()}`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
const loaderError = error instanceof Error ? error : new Error(String(error));
|
|
147
|
-
// Log detailed error information for troubleshooting
|
|
148
|
-
this.errorHandler.logDetailedError(`loadNamespacedConfiguration - ${loader.getName()}`, loaderError, {
|
|
149
|
-
loaderName: loader.getName(),
|
|
150
|
-
loaderType: this.getSourceType(loader),
|
|
151
|
-
namespaces,
|
|
152
|
-
});
|
|
153
|
-
// Handle specific error types
|
|
154
|
-
if (this.isAwsServiceError(loaderError)) {
|
|
155
|
-
const shouldContinue = this.handleAwsSpecificError(loader, loaderError);
|
|
156
|
-
if (!shouldContinue) {
|
|
157
|
-
throw loaderError;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
// Handle general configuration errors
|
|
162
|
-
const shouldContinue = this.errorHandler.handleConfigurationError(loader.getName(), loaderError);
|
|
163
|
-
if (!shouldContinue) {
|
|
164
|
-
throw loaderError;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Create fallback configuration for each namespace
|
|
168
|
-
if (this.options.fallbackToLocal) {
|
|
169
|
-
for (const namespace of namespaces) {
|
|
170
|
-
const fallbackConfig = this.errorHandler.createFallbackConfiguration(namespace);
|
|
171
|
-
Object.assign(result[namespace], fallbackConfig);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return result;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Check if AWS services are available.
|
|
180
|
-
* @returns Promise resolving to availability status
|
|
181
|
-
*/
|
|
182
|
-
async isAvailable() {
|
|
183
|
-
try {
|
|
184
|
-
// Check if at least one AWS loader is available
|
|
185
|
-
const availabilityChecks = this.loaders
|
|
186
|
-
.filter(loader => !(loader instanceof EnvironmentLoader)) // Skip environment loader
|
|
187
|
-
.map(loader => this.checkAvailabilityWithTimeout(loader));
|
|
188
|
-
if (availabilityChecks.length === 0) {
|
|
189
|
-
// No AWS loaders configured
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
// Wait for all availability checks to complete
|
|
193
|
-
const results = await Promise.allSettled(availabilityChecks);
|
|
194
|
-
// Return true if at least one AWS service is available
|
|
195
|
-
return results.some(result => result.status === 'fulfilled' && result.value === true);
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
const availabilityError = error instanceof Error ? error : new Error(String(error));
|
|
199
|
-
this.errorHandler.logDetailedError('isAvailable', availabilityError);
|
|
200
|
-
// Handle as AWS unavailable
|
|
201
|
-
this.errorHandler.handleAwsUnavailable('AWS Services', availabilityError);
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Get all available configuration sources with their metadata.
|
|
207
|
-
* @returns Promise resolving to array of configuration sources
|
|
208
|
-
*/
|
|
209
|
-
async getAvailableSources() {
|
|
210
|
-
const sources = [];
|
|
211
|
-
for (const loader of this.loaders) {
|
|
212
|
-
try {
|
|
213
|
-
const isAvailable = await loader.isAvailable();
|
|
214
|
-
if (isAvailable) {
|
|
215
|
-
const loaderConfig = await loader.load();
|
|
216
|
-
const source = {
|
|
217
|
-
name: loader.getName(),
|
|
218
|
-
type: this.getSourceType(loader),
|
|
219
|
-
priority: this.getSourcePriority(loader),
|
|
220
|
-
data: loaderConfig,
|
|
221
|
-
loadedAt: new Date(),
|
|
222
|
-
};
|
|
223
|
-
sources.push(source);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
// Add source with error information
|
|
228
|
-
const source = {
|
|
229
|
-
name: loader.getName(),
|
|
230
|
-
type: this.getSourceType(loader),
|
|
231
|
-
priority: this.getSourcePriority(loader),
|
|
232
|
-
data: {},
|
|
233
|
-
loadedAt: new Date(),
|
|
234
|
-
errors: [error instanceof Error ? error.message : String(error)],
|
|
235
|
-
};
|
|
236
|
-
sources.push(source);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return sources;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Create configuration loaders based on integration options.
|
|
243
|
-
* @returns Array of configuration loaders
|
|
244
|
-
*/
|
|
245
|
-
createLoaders() {
|
|
246
|
-
const loaders = [];
|
|
247
|
-
// Always include environment loader
|
|
248
|
-
loaders.push(new EnvironmentLoader(this.options.envPrefix));
|
|
249
|
-
// Add AWS Secrets Manager loader if configured
|
|
250
|
-
if (this.options.secretsManagerConfig?.enabled !== false) {
|
|
251
|
-
const secretsConfig = {
|
|
252
|
-
region: this.options.secretsManagerConfig?.region,
|
|
253
|
-
// Convert paths to secretName format expected by SecretsManagerLoader
|
|
254
|
-
secretName: this.getSecretsManagerPath(),
|
|
255
|
-
};
|
|
256
|
-
loaders.push(new SecretsManagerLoader(secretsConfig));
|
|
257
|
-
}
|
|
258
|
-
// Add SSM Parameter Store loader if configured
|
|
259
|
-
if (this.options.ssmConfig?.enabled !== false) {
|
|
260
|
-
const ssmConfig = {
|
|
261
|
-
region: this.options.ssmConfig?.region,
|
|
262
|
-
// Convert paths to parameterPath format expected by SSMParameterStoreLoader
|
|
263
|
-
parameterPath: this.getSSMParameterPath(),
|
|
264
|
-
withDecryption: this.options.ssmConfig?.decrypt ?? true,
|
|
265
|
-
};
|
|
266
|
-
loaders.push(new SSMParameterStoreLoader(ssmConfig));
|
|
267
|
-
}
|
|
268
|
-
return loaders;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Get the source type for a given loader.
|
|
272
|
-
* @param loader - The configuration loader
|
|
273
|
-
* @returns The configuration source type
|
|
274
|
-
*/
|
|
275
|
-
getSourceType(loader) {
|
|
276
|
-
if (loader instanceof EnvironmentLoader) {
|
|
277
|
-
return 'environment';
|
|
278
|
-
}
|
|
279
|
-
else if (loader instanceof SecretsManagerLoader) {
|
|
280
|
-
return 'secrets-manager';
|
|
281
|
-
}
|
|
282
|
-
else if (loader instanceof SSMParameterStoreLoader) {
|
|
283
|
-
return 'ssm';
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
return 'local-file';
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Get the priority for a given loader based on precedence rules.
|
|
291
|
-
* @param loader - The configuration loader
|
|
292
|
-
* @returns The priority number (higher = higher priority)
|
|
293
|
-
*/
|
|
294
|
-
getSourcePriority(loader) {
|
|
295
|
-
const precedence = this.options.precedence || 'aws-first';
|
|
296
|
-
if (precedence === 'local-first') {
|
|
297
|
-
// Environment variables have highest priority
|
|
298
|
-
if (loader instanceof EnvironmentLoader)
|
|
299
|
-
return 100;
|
|
300
|
-
if (loader instanceof SecretsManagerLoader)
|
|
301
|
-
return 50;
|
|
302
|
-
if (loader instanceof SSMParameterStoreLoader)
|
|
303
|
-
return 40;
|
|
304
|
-
}
|
|
305
|
-
else if (precedence === 'aws-first') {
|
|
306
|
-
// AWS sources have higher priority
|
|
307
|
-
if (loader instanceof SecretsManagerLoader)
|
|
308
|
-
return 100;
|
|
309
|
-
if (loader instanceof SSMParameterStoreLoader)
|
|
310
|
-
return 90;
|
|
311
|
-
if (loader instanceof EnvironmentLoader)
|
|
312
|
-
return 50;
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
// merge - equal priority, order matters
|
|
316
|
-
return 50;
|
|
317
|
-
}
|
|
318
|
-
return 50;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Extract configuration for a specific namespace from loaded configuration.
|
|
322
|
-
* @param config - The loaded configuration
|
|
323
|
-
* @param namespace - The namespace to extract
|
|
324
|
-
* @returns Configuration values for the namespace
|
|
325
|
-
*/
|
|
326
|
-
extractNamespaceConfig(config, namespace) {
|
|
327
|
-
const namespaceConfig = {};
|
|
328
|
-
const namespacePrefix = namespace.toUpperCase();
|
|
329
|
-
// Strategy 1: Look for direct namespace key (e.g., config.database)
|
|
330
|
-
if (config[namespace]) {
|
|
331
|
-
Object.assign(namespaceConfig, config[namespace]);
|
|
332
|
-
}
|
|
333
|
-
// Strategy 2: Look for keys that start with the namespace prefix (e.g., DATABASE_HOST)
|
|
334
|
-
for (const [key, value] of Object.entries(config)) {
|
|
335
|
-
const upperKey = key.toUpperCase();
|
|
336
|
-
// Check if key starts with namespace prefix followed by underscore
|
|
337
|
-
if (upperKey.startsWith(`${namespacePrefix}_`)) {
|
|
338
|
-
// Remove namespace prefix and underscore, convert to camelCase
|
|
339
|
-
const namespacedKey = key.substring(namespace.length + 1);
|
|
340
|
-
const camelCaseKey = this.toCamelCase(namespacedKey);
|
|
341
|
-
if (camelCaseKey) {
|
|
342
|
-
namespaceConfig[camelCaseKey] = value;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
// Strategy 3: Look for nested namespace paths (e.g., /app/database/host)
|
|
347
|
-
const nestedConfig = this.extractNestedNamespaceConfig(config, namespace);
|
|
348
|
-
Object.assign(namespaceConfig, nestedConfig);
|
|
349
|
-
return namespaceConfig;
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Extract nested namespace configuration from hierarchical keys.
|
|
353
|
-
* @param config - The loaded configuration
|
|
354
|
-
* @param namespace - The namespace to extract
|
|
355
|
-
* @returns Configuration values for the namespace
|
|
356
|
-
*/
|
|
357
|
-
extractNestedNamespaceConfig(config, namespace) {
|
|
358
|
-
const namespaceConfig = {};
|
|
359
|
-
const namespacePath = `/${namespace}/`;
|
|
360
|
-
for (const [key, value] of Object.entries(config)) {
|
|
361
|
-
// Check if key contains namespace path
|
|
362
|
-
if (key.includes(namespacePath)) {
|
|
363
|
-
// Extract the part after the namespace path
|
|
364
|
-
const pathIndex = key.indexOf(namespacePath);
|
|
365
|
-
const afterNamespace = key.substring(pathIndex + namespacePath.length);
|
|
366
|
-
if (afterNamespace) {
|
|
367
|
-
// Convert path segments to nested object structure
|
|
368
|
-
const nestedKey = this.pathToNestedKey(afterNamespace);
|
|
369
|
-
this.setNestedValue(namespaceConfig, nestedKey, value);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
return namespaceConfig;
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Convert snake_case or kebab-case to camelCase.
|
|
377
|
-
* @param str - String to convert
|
|
378
|
-
* @returns camelCase string
|
|
379
|
-
*/
|
|
380
|
-
toCamelCase(str) {
|
|
381
|
-
return str
|
|
382
|
-
.toLowerCase()
|
|
383
|
-
.replace(/[_-](.)/g, (_, char) => char.toUpperCase());
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* Convert path segments to nested key structure.
|
|
387
|
-
* @param path - Path string (e.g., "host/port")
|
|
388
|
-
* @returns Nested key structure
|
|
389
|
-
*/
|
|
390
|
-
pathToNestedKey(path) {
|
|
391
|
-
return path
|
|
392
|
-
.split('/')
|
|
393
|
-
.map(segment => this.toCamelCase(segment))
|
|
394
|
-
.join('.');
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* Set a nested value in an object using dot notation.
|
|
398
|
-
* @param obj - Target object
|
|
399
|
-
* @param path - Dot notation path
|
|
400
|
-
* @param value - Value to set
|
|
401
|
-
*/
|
|
402
|
-
setNestedValue(obj, path, value) {
|
|
403
|
-
const keys = path.split('.');
|
|
404
|
-
let current = obj;
|
|
405
|
-
for (let i = 0; i < keys.length - 1; i++) {
|
|
406
|
-
const key = keys[i];
|
|
407
|
-
if (key && (!(key in current) || typeof current[key] !== 'object')) {
|
|
408
|
-
current[key] = {};
|
|
409
|
-
}
|
|
410
|
-
if (key) {
|
|
411
|
-
current = current[key];
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
const lastKey = keys[keys.length - 1];
|
|
415
|
-
if (lastKey) {
|
|
416
|
-
current[lastKey] = value;
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* Get the Secrets Manager path based on configuration.
|
|
421
|
-
* @returns The secrets manager path
|
|
422
|
-
*/
|
|
423
|
-
getSecretsManagerPath() {
|
|
424
|
-
const paths = this.options.secretsManagerConfig?.paths;
|
|
425
|
-
if (!paths) {
|
|
426
|
-
return '/nestjs-config-aws';
|
|
427
|
-
}
|
|
428
|
-
// Use the first available path or default
|
|
429
|
-
return paths.production || paths.development || paths.test || '/nestjs-config-aws';
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* Get the SSM Parameter Store path based on configuration.
|
|
433
|
-
* @returns The SSM parameter path
|
|
434
|
-
*/
|
|
435
|
-
getSSMParameterPath() {
|
|
436
|
-
const paths = this.options.ssmConfig?.paths;
|
|
437
|
-
if (!paths) {
|
|
438
|
-
return '/nestjs-config-aws';
|
|
439
|
-
}
|
|
440
|
-
// Use the first available path or default
|
|
441
|
-
return paths.production || paths.development || paths.test || '/nestjs-config-aws';
|
|
442
|
-
}
|
|
443
|
-
/**
|
|
444
|
-
* Check if an error is an AWS service error.
|
|
445
|
-
* @param error - The error to check
|
|
446
|
-
* @returns Whether the error is from an AWS service
|
|
447
|
-
*/
|
|
448
|
-
isAwsServiceError(error) {
|
|
449
|
-
// AWS SDK errors typically have specific names
|
|
450
|
-
const awsErrorNames = [
|
|
451
|
-
'AccessDeniedException',
|
|
452
|
-
'ResourceNotFoundException',
|
|
453
|
-
'InvalidRequestException',
|
|
454
|
-
'ThrottlingException',
|
|
455
|
-
'ServiceUnavailableException',
|
|
456
|
-
'NetworkingError',
|
|
457
|
-
'TimeoutError',
|
|
458
|
-
'CredentialsError',
|
|
459
|
-
'UnknownEndpoint',
|
|
460
|
-
];
|
|
461
|
-
return awsErrorNames.includes(error.name) || error.message.includes('AWS');
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Handle AWS-specific errors with appropriate strategies.
|
|
465
|
-
* @param loader - The loader that encountered the error
|
|
466
|
-
* @param error - The AWS error
|
|
467
|
-
* @returns Whether to continue processing
|
|
468
|
-
*/
|
|
469
|
-
handleAwsSpecificError(loader, error) {
|
|
470
|
-
const serviceName = this.getServiceName(loader);
|
|
471
|
-
switch (error.name) {
|
|
472
|
-
case 'AccessDeniedException':
|
|
473
|
-
return this.errorHandler.handlePermissionError(serviceName, this.getResourceName(loader), error);
|
|
474
|
-
case 'ResourceNotFoundException':
|
|
475
|
-
return this.errorHandler.handleResourceNotFound(serviceName, this.getResourceName(loader), error);
|
|
476
|
-
case 'NetworkingError':
|
|
477
|
-
case 'TimeoutError':
|
|
478
|
-
const networkResult = this.errorHandler.handleNetworkError(serviceName, error);
|
|
479
|
-
return networkResult.shouldContinue;
|
|
480
|
-
case 'ThrottlingException':
|
|
481
|
-
case 'TooManyRequestsException':
|
|
482
|
-
this.logger.warn(`Rate limiting encountered for ${serviceName}, continuing with other sources`);
|
|
483
|
-
return true;
|
|
484
|
-
case 'ServiceUnavailableException':
|
|
485
|
-
return this.errorHandler.handleAwsUnavailable(serviceName, error);
|
|
486
|
-
case 'CredentialsError':
|
|
487
|
-
this.logger.error(`AWS credentials error for ${serviceName}: ${error.message}`);
|
|
488
|
-
this.logger.error('Please check AWS credentials configuration');
|
|
489
|
-
return this.errorHandler.handleAwsUnavailable(serviceName, error);
|
|
490
|
-
default:
|
|
491
|
-
// Handle as general configuration error
|
|
492
|
-
return this.errorHandler.handleConfigurationError(serviceName, error);
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Get the service name for a loader.
|
|
497
|
-
* @param loader - The configuration loader
|
|
498
|
-
* @returns The service name
|
|
499
|
-
*/
|
|
500
|
-
getServiceName(loader) {
|
|
501
|
-
if (loader instanceof SecretsManagerLoader) {
|
|
502
|
-
return 'AWS Secrets Manager';
|
|
503
|
-
}
|
|
504
|
-
else if (loader instanceof SSMParameterStoreLoader) {
|
|
505
|
-
return 'AWS Systems Manager Parameter Store';
|
|
506
|
-
}
|
|
507
|
-
else if (loader instanceof EnvironmentLoader) {
|
|
508
|
-
return 'Environment Variables';
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
return 'Unknown Service';
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
/**
|
|
515
|
-
* Get the resource name for a loader.
|
|
516
|
-
* @param loader - The configuration loader
|
|
517
|
-
* @returns The resource name
|
|
518
|
-
*/
|
|
519
|
-
getResourceName(loader) {
|
|
520
|
-
if (loader instanceof SecretsManagerLoader) {
|
|
521
|
-
return this.getSecretsManagerPath();
|
|
522
|
-
}
|
|
523
|
-
else if (loader instanceof SSMParameterStoreLoader) {
|
|
524
|
-
return this.getSSMParameterPath();
|
|
525
|
-
}
|
|
526
|
-
else {
|
|
527
|
-
return 'configuration';
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Load configuration with retry logic for retryable errors.
|
|
532
|
-
* @param loader - The configuration loader
|
|
533
|
-
* @param maxRetries - Maximum number of retries
|
|
534
|
-
* @returns Promise resolving to configuration data
|
|
535
|
-
*/
|
|
536
|
-
async loadWithRetry(loader, maxRetries = 3) {
|
|
537
|
-
let lastError = null;
|
|
538
|
-
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
539
|
-
try {
|
|
540
|
-
return await loader.load();
|
|
541
|
-
}
|
|
542
|
-
catch (error) {
|
|
543
|
-
const loaderError = error instanceof Error ? error : new Error(String(error));
|
|
544
|
-
lastError = loaderError;
|
|
545
|
-
// Check if error is retryable
|
|
546
|
-
if (!this.errorHandler.isRetryableError(loaderError) || attempt === maxRetries) {
|
|
547
|
-
throw loaderError;
|
|
548
|
-
}
|
|
549
|
-
// Wait before retrying
|
|
550
|
-
const delay = this.errorHandler.getRetryDelay(attempt);
|
|
551
|
-
this.logger.warn(`Retrying ${loader.getName()} in ${delay}ms (attempt ${attempt}/${maxRetries})`);
|
|
552
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
// This should never be reached, but just in case
|
|
556
|
-
throw lastError || new Error('Unknown error during retry');
|
|
557
|
-
}
|
|
558
|
-
/**
|
|
559
|
-
* Check availability with timeout and error handling.
|
|
560
|
-
* @param loader - The configuration loader
|
|
561
|
-
* @param timeoutMs - Timeout in milliseconds
|
|
562
|
-
* @returns Promise resolving to availability status
|
|
563
|
-
*/
|
|
564
|
-
async checkAvailabilityWithTimeout(loader, timeoutMs = 5000) {
|
|
565
|
-
try {
|
|
566
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
567
|
-
setTimeout(() => reject(new Error('Availability check timeout')), timeoutMs);
|
|
568
|
-
});
|
|
569
|
-
const availabilityPromise = loader.isAvailable();
|
|
570
|
-
return await Promise.race([availabilityPromise, timeoutPromise]);
|
|
571
|
-
}
|
|
572
|
-
catch (error) {
|
|
573
|
-
const loaderError = error instanceof Error ? error : new Error(String(error));
|
|
574
|
-
if (this.options.enableLogging) {
|
|
575
|
-
this.logger.debug(`Availability check failed for ${loader.getName()}: ${loaderError.message}`);
|
|
576
|
-
}
|
|
577
|
-
return false;
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
};
|
|
581
|
-
AwsConfigurationLoaderService = AwsConfigurationLoaderService_1 = __decorate([
|
|
582
|
-
Injectable(),
|
|
583
|
-
__param(0, Optional()),
|
|
584
|
-
__param(0, Inject('INTEGRATION_OPTIONS')),
|
|
585
|
-
__metadata("design:paramtypes", [Object])
|
|
586
|
-
], AwsConfigurationLoaderService);
|
|
587
|
-
export { AwsConfigurationLoaderService };
|
|
588
|
-
//# sourceMappingURL=aws-configuration-loader.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aws-configuration-loader.service.js","sourceRoot":"","sources":["../../../../src/integration/providers/aws-configuration-loader.service.ts"],"names":[],"mappings":"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"}
|