@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
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { ConfigManagerOptions, ConfigLoadResult, Logger, VerboseOptions } from './interfaces/config-manager.interface';
|
|
2
|
+
/**
|
|
3
|
+
* ConfigManager orchestrates loading configuration from multiple sources
|
|
4
|
+
* with configurable precedence and validation.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { ConfigManager, EnvironmentLoader, SecretsManagerLoader } from '@dyanet/config-aws';
|
|
9
|
+
* import { z } from 'zod';
|
|
10
|
+
*
|
|
11
|
+
* const schema = z.object({
|
|
12
|
+
* DATABASE_URL: z.string(),
|
|
13
|
+
* API_KEY: z.string(),
|
|
14
|
+
* PORT: z.coerce.number().default(3000),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const manager = new ConfigManager({
|
|
18
|
+
* loaders: [
|
|
19
|
+
* new EnvironmentLoader({ prefix: 'APP_' }),
|
|
20
|
+
* new SecretsManagerLoader({ secretName: '/my-app/config' }),
|
|
21
|
+
* ],
|
|
22
|
+
* schema,
|
|
23
|
+
* precedence: 'aws-first',
|
|
24
|
+
* verbose: true,
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* await manager.load();
|
|
28
|
+
* const dbUrl = manager.get('DATABASE_URL');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class ConfigManager<T = Record<string, unknown>> {
|
|
32
|
+
/** @internal */
|
|
33
|
+
protected readonly _options: Required<Omit<ConfigManagerOptions<T>, 'schema' | 'logger' | 'verbose'>> & {
|
|
34
|
+
schema?: ConfigManagerOptions<T>['schema'];
|
|
35
|
+
logger?: Logger;
|
|
36
|
+
verbose?: VerboseOptions | boolean;
|
|
37
|
+
};
|
|
38
|
+
/** @internal */
|
|
39
|
+
protected readonly _logger: Logger;
|
|
40
|
+
/** @internal */
|
|
41
|
+
protected readonly _verboseOptions: Required<VerboseOptions> | null;
|
|
42
|
+
private config;
|
|
43
|
+
private loadResult;
|
|
44
|
+
private loaded;
|
|
45
|
+
constructor(options?: ConfigManagerOptions<T>);
|
|
46
|
+
/**
|
|
47
|
+
* Resolve verbose options from boolean or object
|
|
48
|
+
*/
|
|
49
|
+
private resolveVerboseOptions;
|
|
50
|
+
/**
|
|
51
|
+
* Log a message if logging is enabled
|
|
52
|
+
*/
|
|
53
|
+
private log;
|
|
54
|
+
/**
|
|
55
|
+
* Mask a value for logging
|
|
56
|
+
*/
|
|
57
|
+
private maskValue;
|
|
58
|
+
/**
|
|
59
|
+
* Get the loading order for loaders based on precedence strategy.
|
|
60
|
+
* Returns loaders sorted by priority (lower priority first, so higher priority loads last and wins).
|
|
61
|
+
*/
|
|
62
|
+
private getLoadOrder;
|
|
63
|
+
/**
|
|
64
|
+
* Sort loaders by custom precedence configuration
|
|
65
|
+
*/
|
|
66
|
+
private sortByCustomPrecedence;
|
|
67
|
+
/**
|
|
68
|
+
* Sort loaders by predefined order
|
|
69
|
+
*/
|
|
70
|
+
private sortByPredefinedOrder;
|
|
71
|
+
/**
|
|
72
|
+
* Load configuration from all configured loaders.
|
|
73
|
+
* Loaders are executed in precedence order, with later loaders overriding earlier ones.
|
|
74
|
+
*/
|
|
75
|
+
load(): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Get a specific configuration value by key.
|
|
78
|
+
* @param key The configuration key
|
|
79
|
+
* @returns The configuration value
|
|
80
|
+
* @throws ConfigurationError if configuration is not loaded
|
|
81
|
+
*/
|
|
82
|
+
get<K extends keyof T>(key: K): T[K];
|
|
83
|
+
/**
|
|
84
|
+
* Get all configuration values.
|
|
85
|
+
* @returns The complete configuration object
|
|
86
|
+
* @throws ConfigurationError if configuration is not loaded
|
|
87
|
+
*/
|
|
88
|
+
getAll(): T;
|
|
89
|
+
/**
|
|
90
|
+
* Check if configuration has been loaded.
|
|
91
|
+
* @returns true if configuration is loaded
|
|
92
|
+
*/
|
|
93
|
+
isLoaded(): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Get the current application environment.
|
|
96
|
+
* @returns The APP_ENV value or 'development' as default
|
|
97
|
+
*/
|
|
98
|
+
getAppEnv(): string;
|
|
99
|
+
/**
|
|
100
|
+
* Get the load result with source information.
|
|
101
|
+
* @returns The load result or null if not loaded
|
|
102
|
+
*/
|
|
103
|
+
getLoadResult(): ConfigLoadResult<T> | null;
|
|
104
|
+
/**
|
|
105
|
+
* Serialize the current configuration to JSON string.
|
|
106
|
+
* @returns JSON string representation of the configuration
|
|
107
|
+
* @throws ConfigurationError if configuration is not loaded
|
|
108
|
+
*/
|
|
109
|
+
serialize(): string;
|
|
110
|
+
/**
|
|
111
|
+
* Create a new ConfigManager with configuration loaded from a JSON string.
|
|
112
|
+
* This is useful for restoring configuration from a serialized state.
|
|
113
|
+
* @param json JSON string to deserialize
|
|
114
|
+
* @param options Optional ConfigManager options (schema will be used for validation)
|
|
115
|
+
* @returns A new ConfigManager instance with the deserialized configuration
|
|
116
|
+
*/
|
|
117
|
+
static deserialize<T = Record<string, unknown>>(json: string, options?: ConfigManagerOptions<T>): ConfigManager<T>;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../../../config-aws/src/config-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAEhB,MAAM,EAEN,cAAc,EACf,MAAM,uCAAuC,CAAC;AAsD/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,GAAG;QACtG,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;KACpC,CAAC;IACF,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAEpE,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,oBAAoB,CAAC,CAAC,CAAM;IAcjD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0G3B;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAQpC;;;;OAIG;IACH,MAAM,IAAI,CAAC;IAOX;;;OAGG;IACH,QAAQ,IAAI,OAAO;IAInB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,aAAa,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3C;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAOnB;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAoB,CAAC,CAAC,CAAM,GACpC,aAAa,CAAC,CAAC,CAAC;CA4BpB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for all configuration-related errors
|
|
3
|
+
*/
|
|
4
|
+
export declare class ConfigurationError extends Error {
|
|
5
|
+
/** The underlying cause of this error */
|
|
6
|
+
readonly cause?: Error;
|
|
7
|
+
constructor(message: string, cause?: Error);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Error thrown when configuration validation fails
|
|
11
|
+
*/
|
|
12
|
+
export declare class ValidationError extends ConfigurationError {
|
|
13
|
+
/** Detailed validation errors from Zod */
|
|
14
|
+
readonly validationErrors: unknown;
|
|
15
|
+
constructor(message: string, validationErrors: unknown, cause?: Error);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Error thrown when an AWS service operation fails
|
|
19
|
+
*/
|
|
20
|
+
export declare class AWSServiceError extends ConfigurationError {
|
|
21
|
+
/** The AWS service that failed */
|
|
22
|
+
readonly service: string;
|
|
23
|
+
/** The operation that failed */
|
|
24
|
+
readonly operation: string;
|
|
25
|
+
constructor(message: string, service: string, operation: string, cause?: Error);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when a configuration loader fails to load
|
|
29
|
+
*/
|
|
30
|
+
export declare class ConfigurationLoadError extends ConfigurationError {
|
|
31
|
+
/** The name of the loader that failed */
|
|
32
|
+
readonly loader: string;
|
|
33
|
+
constructor(message: string, loader: string, cause?: Error);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error thrown when required configuration keys are missing
|
|
37
|
+
*/
|
|
38
|
+
export declare class MissingConfigurationError extends ConfigurationError {
|
|
39
|
+
/** The keys that are missing */
|
|
40
|
+
readonly missingKeys: string[];
|
|
41
|
+
constructor(message: string, missingKeys: string[], cause?: Error);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/errors/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,yCAAyC;IACzC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,0CAA0C;IAC1C,SAAgB,gBAAgB,EAAE,OAAO,CAAC;gBAE9B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK;CAMtE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,kCAAkC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,gCAAgC;IAChC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAO/E;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,yCAAyC;IACzC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAM3D;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,kBAAkB;IAC/D,gCAAgC;IAChC,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK;CAMlE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dyanet/config-aws
|
|
3
|
+
*
|
|
4
|
+
* Framework-agnostic AWS configuration management library.
|
|
5
|
+
* Supports environment variables, AWS Secrets Manager, SSM Parameter Store,
|
|
6
|
+
* S3, and .env files with configurable precedence.
|
|
7
|
+
*/
|
|
8
|
+
export type { ConfigLoader, ConfigLoaderResult, } from './interfaces/config-loader.interface';
|
|
9
|
+
export type { ConfigManagerOptions, LoaderPrecedence, VerboseOptions, PrecedenceStrategy, ConfigLoadResult, ConfigSourceInfo, Logger, } from './interfaces/config-manager.interface';
|
|
10
|
+
export type { EnvironmentLoaderConfig, } from './interfaces/environment-loader.interface';
|
|
11
|
+
export type { EnvFileLoaderConfig, } from './interfaces/env-file-loader.interface';
|
|
12
|
+
export type { S3LoaderConfig, } from './interfaces/s3-loader.interface';
|
|
13
|
+
export type { SecretsManagerLoaderConfig, } from './interfaces/secrets-manager-loader.interface';
|
|
14
|
+
export type { SSMParameterStoreLoaderConfig, } from './interfaces/ssm-parameter-store-loader.interface';
|
|
15
|
+
export { ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError, } from './errors';
|
|
16
|
+
export { EnvironmentLoader } from './loaders/environment.loader';
|
|
17
|
+
export { EnvFileLoader } from './loaders/env-file.loader';
|
|
18
|
+
export { S3Loader } from './loaders/s3.loader';
|
|
19
|
+
export { SecretsManagerLoader } from './loaders/secrets-manager.loader';
|
|
20
|
+
export { SSMParameterStoreLoader } from './loaders/ssm-parameter-store.loader';
|
|
21
|
+
export { ConfigManager } from './config-manager';
|
|
22
|
+
export { ConfigValidationUtil } from './utils/validation.util';
|
|
23
|
+
export { EnvFileParser } from './utils/env-file-parser.util';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../config-aws/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,YAAY,EACZ,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,GACP,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EACV,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AAEnD,YAAY,EACV,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAEhD,YAAY,EACV,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,0BAA0B,GAC3B,MAAM,+CAA+C,CAAC;AAEvD,YAAY,EACV,6BAA6B,GAC9B,MAAM,mDAAmD,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result returned by a configuration loader
|
|
3
|
+
*/
|
|
4
|
+
export interface ConfigLoaderResult {
|
|
5
|
+
/** The loaded configuration key-value pairs */
|
|
6
|
+
config: Record<string, unknown>;
|
|
7
|
+
/** Keys that were loaded by this loader */
|
|
8
|
+
keysLoaded: string[];
|
|
9
|
+
/** Time taken to load in milliseconds */
|
|
10
|
+
duration: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Interface for configuration loaders.
|
|
14
|
+
* All loaders must implement this interface to be used with ConfigManager.
|
|
15
|
+
*/
|
|
16
|
+
export interface ConfigLoader {
|
|
17
|
+
/**
|
|
18
|
+
* Load configuration from the source.
|
|
19
|
+
* @returns Promise resolving to the loaded configuration
|
|
20
|
+
*/
|
|
21
|
+
load(): Promise<Record<string, unknown>>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the name of this loader for logging and debugging.
|
|
24
|
+
* @returns The loader name
|
|
25
|
+
*/
|
|
26
|
+
getName(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Check if this loader is available and can load configuration.
|
|
29
|
+
* @returns Promise resolving to true if the loader can load configuration
|
|
30
|
+
*/
|
|
31
|
+
isAvailable(): Promise<boolean>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=config-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/config-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzC;;;OAGG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { ZodType } from 'zod';
|
|
2
|
+
import type { ConfigLoader } from './config-loader.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Logger interface for ConfigManager
|
|
5
|
+
*/
|
|
6
|
+
export interface Logger {
|
|
7
|
+
log(message: string): void;
|
|
8
|
+
error(message: string): void;
|
|
9
|
+
warn(message: string): void;
|
|
10
|
+
debug?(message: string): void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options for verbose logging output
|
|
14
|
+
*/
|
|
15
|
+
export interface VerboseOptions {
|
|
16
|
+
/** Log all variable names being loaded. Default: true */
|
|
17
|
+
logKeys?: boolean;
|
|
18
|
+
/** Log variable values (WARNING: may expose secrets). Default: false */
|
|
19
|
+
logValues?: boolean;
|
|
20
|
+
/** Log when a variable is overridden by a higher-precedence loader. Default: true */
|
|
21
|
+
logOverrides?: boolean;
|
|
22
|
+
/** Log loader timing information. Default: true */
|
|
23
|
+
logTiming?: boolean;
|
|
24
|
+
/** Mask sensitive values (show first/last 2 chars only). Default: true (when logValues is true) */
|
|
25
|
+
maskValues?: boolean;
|
|
26
|
+
/** Keys to always mask regardless of maskValues setting. Default: ['password', 'secret', 'key', 'token'] */
|
|
27
|
+
sensitiveKeys?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Custom loader precedence configuration
|
|
31
|
+
*/
|
|
32
|
+
export interface LoaderPrecedence {
|
|
33
|
+
/** Loader name */
|
|
34
|
+
loader: string;
|
|
35
|
+
/** Priority - higher values override lower values */
|
|
36
|
+
priority: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Precedence strategy for merging configurations
|
|
40
|
+
* - 'aws-first': env -> envFile -> s3 -> secretsManager -> ssm (AWS wins)
|
|
41
|
+
* - 'local-first': secretsManager -> ssm -> s3 -> envFile -> env (local wins)
|
|
42
|
+
* - Custom array: user-defined order via LoaderPrecedence[]
|
|
43
|
+
*/
|
|
44
|
+
export type PrecedenceStrategy = 'aws-first' | 'local-first' | LoaderPrecedence[];
|
|
45
|
+
/**
|
|
46
|
+
* Options for ConfigManager
|
|
47
|
+
*/
|
|
48
|
+
export interface ConfigManagerOptions<T = Record<string, unknown>> {
|
|
49
|
+
/** Array of loaders to use */
|
|
50
|
+
loaders?: ConfigLoader[];
|
|
51
|
+
/** Zod schema for validation */
|
|
52
|
+
schema?: ZodType<T>;
|
|
53
|
+
/** Precedence strategy for merging configurations */
|
|
54
|
+
precedence?: PrecedenceStrategy;
|
|
55
|
+
/** Whether to validate configuration on load. Default: true */
|
|
56
|
+
validateOnLoad?: boolean;
|
|
57
|
+
/** Enable logging. Default: false */
|
|
58
|
+
enableLogging?: boolean;
|
|
59
|
+
/** Custom logger instance */
|
|
60
|
+
logger?: Logger;
|
|
61
|
+
/** Verbose debugging output options */
|
|
62
|
+
verbose?: VerboseOptions | boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Information about a configuration source
|
|
66
|
+
*/
|
|
67
|
+
export interface ConfigSourceInfo {
|
|
68
|
+
/** Name of the loader */
|
|
69
|
+
loader: string;
|
|
70
|
+
/** Keys loaded by this loader */
|
|
71
|
+
keysLoaded: string[];
|
|
72
|
+
/** Time taken to load in milliseconds */
|
|
73
|
+
duration: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Result of loading configuration
|
|
77
|
+
*/
|
|
78
|
+
export interface ConfigLoadResult<T> {
|
|
79
|
+
/** The merged configuration */
|
|
80
|
+
config: T;
|
|
81
|
+
/** Information about each source */
|
|
82
|
+
sources: ConfigSourceInfo[];
|
|
83
|
+
/** When the configuration was loaded */
|
|
84
|
+
loadedAt: Date;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=config-manager.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/config-manager.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IACrF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4GAA4G;IAC5G,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,8BAA8B;IAC9B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,+BAA+B;IAC/B,MAAM,EAAE,CAAC,CAAC;IACV,oCAAoC;IACpC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,EAAE,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for EnvFileLoader
|
|
3
|
+
*/
|
|
4
|
+
export interface EnvFileLoaderConfig {
|
|
5
|
+
/** Paths to .env files to load. Default: ['.env', '.env.local'] */
|
|
6
|
+
paths?: string[];
|
|
7
|
+
/** File encoding. Default: 'utf-8' */
|
|
8
|
+
encoding?: BufferEncoding;
|
|
9
|
+
/** Whether later files override earlier ones. Default: true */
|
|
10
|
+
override?: boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=env-file-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-file-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/env-file-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for EnvironmentLoader
|
|
3
|
+
*/
|
|
4
|
+
export interface EnvironmentLoaderConfig {
|
|
5
|
+
/** Prefix to filter environment variables. Only variables starting with this prefix will be loaded. */
|
|
6
|
+
prefix?: string;
|
|
7
|
+
/** List of environment variable names to exclude from loading */
|
|
8
|
+
exclude?: string[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=environment-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/environment-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for S3Loader
|
|
3
|
+
*/
|
|
4
|
+
export interface S3LoaderConfig {
|
|
5
|
+
/** S3 bucket name */
|
|
6
|
+
bucket: string;
|
|
7
|
+
/** S3 object key */
|
|
8
|
+
key: string;
|
|
9
|
+
/** AWS region. If not specified, uses default region from environment */
|
|
10
|
+
region?: string;
|
|
11
|
+
/** Format of the configuration file. Default: 'auto' (auto-detect based on content) */
|
|
12
|
+
format?: 'json' | 'env' | 'auto';
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=s3-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/s3-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAClC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for SecretsManagerLoader
|
|
3
|
+
*/
|
|
4
|
+
export interface SecretsManagerLoaderConfig {
|
|
5
|
+
/** Name or ARN of the secret to load */
|
|
6
|
+
secretName?: string;
|
|
7
|
+
/** AWS region. If not specified, uses default region from environment */
|
|
8
|
+
region?: string;
|
|
9
|
+
/** Mapping of environment names to path prefixes */
|
|
10
|
+
environmentMapping?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=secrets-manager-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-manager-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/secrets-manager-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for SSMParameterStoreLoader
|
|
3
|
+
*/
|
|
4
|
+
export interface SSMParameterStoreLoaderConfig {
|
|
5
|
+
/** Path prefix for parameters to load */
|
|
6
|
+
parameterPath?: string;
|
|
7
|
+
/** AWS region. If not specified, uses default region from environment */
|
|
8
|
+
region?: string;
|
|
9
|
+
/** Mapping of environment names to path prefixes */
|
|
10
|
+
environmentMapping?: Record<string, string>;
|
|
11
|
+
/** Whether to decrypt SecureString parameters. Default: true */
|
|
12
|
+
withDecryption?: boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ssm-parameter-store-loader.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssm-parameter-store-loader.interface.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/interfaces/ssm-parameter-store-loader.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ConfigLoader } from '../interfaces/config-loader.interface';
|
|
2
|
+
import type { EnvFileLoaderConfig } from '../interfaces/env-file-loader.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Loader that reads configuration from .env files on the filesystem.
|
|
5
|
+
* Uses AWS ECS-compatible format for parsing.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Load from default paths (.env, .env.local)
|
|
10
|
+
* const loader = new EnvFileLoader();
|
|
11
|
+
*
|
|
12
|
+
* // Load from specific paths
|
|
13
|
+
* const loader = new EnvFileLoader({
|
|
14
|
+
* paths: ['.env', '.env.production']
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* // Disable override (first file wins)
|
|
18
|
+
* const loader = new EnvFileLoader({
|
|
19
|
+
* paths: ['.env', '.env.local'],
|
|
20
|
+
* override: false
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html
|
|
25
|
+
*/
|
|
26
|
+
export declare class EnvFileLoader implements ConfigLoader {
|
|
27
|
+
/** @internal */
|
|
28
|
+
protected readonly _config: Required<EnvFileLoaderConfig>;
|
|
29
|
+
/** Default paths to search for .env files */
|
|
30
|
+
private static readonly DEFAULT_PATHS;
|
|
31
|
+
/** Default file encoding */
|
|
32
|
+
private static readonly DEFAULT_ENCODING;
|
|
33
|
+
constructor(config?: EnvFileLoaderConfig);
|
|
34
|
+
getName(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Check if at least one of the configured .env files exists.
|
|
37
|
+
* @returns Promise resolving to true if any file exists
|
|
38
|
+
*/
|
|
39
|
+
isAvailable(): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Load configuration from .env files.
|
|
42
|
+
*
|
|
43
|
+
* Files are processed in order. When override is true (default),
|
|
44
|
+
* later files override earlier ones. When override is false,
|
|
45
|
+
* earlier files take precedence.
|
|
46
|
+
*
|
|
47
|
+
* Missing files are silently skipped.
|
|
48
|
+
*
|
|
49
|
+
* @returns Promise resolving to the merged configuration
|
|
50
|
+
* @throws ConfigurationLoadError if a file exists but cannot be read
|
|
51
|
+
*/
|
|
52
|
+
load(): Promise<Record<string, unknown>>;
|
|
53
|
+
/**
|
|
54
|
+
* Resolve a file path relative to the current working directory.
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
protected resolvePath(filePath: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a file exists.
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
protected fileExists(filePath: string): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Read a file's contents.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
protected readFile(filePath: string): Promise<string>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=env-file.loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-file.loader.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/loaders/env-file.loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAInF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,YAAW,YAAY;IAChD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE1D,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAE/D,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;gBAEvD,MAAM,GAAE,mBAAwB;IAQ5C,OAAO,IAAI,MAAM;IAKjB;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuC9C;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAO/C;;;OAGG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;;OAGG;cACa,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ConfigLoader } from '../interfaces/config-loader.interface';
|
|
2
|
+
import type { EnvironmentLoaderConfig } from '../interfaces/environment-loader.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Loader that reads configuration from process.env.
|
|
5
|
+
* Supports prefix filtering and exclusion lists.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Load all environment variables
|
|
10
|
+
* const loader = new EnvironmentLoader();
|
|
11
|
+
*
|
|
12
|
+
* // Load only variables starting with 'APP_', stripping the prefix
|
|
13
|
+
* const loader = new EnvironmentLoader({ prefix: 'APP_' });
|
|
14
|
+
*
|
|
15
|
+
* // Load all except specific variables
|
|
16
|
+
* const loader = new EnvironmentLoader({ exclude: ['PATH', 'HOME'] });
|
|
17
|
+
*
|
|
18
|
+
* // Combine prefix and exclusion
|
|
19
|
+
* const loader = new EnvironmentLoader({
|
|
20
|
+
* prefix: 'APP_',
|
|
21
|
+
* exclude: ['APP_DEBUG']
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class EnvironmentLoader implements ConfigLoader {
|
|
26
|
+
/** @internal */
|
|
27
|
+
protected readonly _config: EnvironmentLoaderConfig;
|
|
28
|
+
constructor(config?: EnvironmentLoaderConfig);
|
|
29
|
+
getName(): string;
|
|
30
|
+
isAvailable(): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Load configuration from process.env.
|
|
33
|
+
*
|
|
34
|
+
* When a prefix is specified:
|
|
35
|
+
* - Only variables starting with the prefix are included
|
|
36
|
+
* - The prefix is stripped from the resulting key names
|
|
37
|
+
*
|
|
38
|
+
* When an exclusion list is specified:
|
|
39
|
+
* - Variables in the list are excluded from the result
|
|
40
|
+
* - Exclusion is checked against the original key (before prefix stripping)
|
|
41
|
+
*
|
|
42
|
+
* @returns Promise resolving to the loaded configuration
|
|
43
|
+
*/
|
|
44
|
+
load(): Promise<Record<string, unknown>>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=environment.loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.loader.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/loaders/environment.loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAExC,MAAM,GAAE,uBAA4B;IAIhD,OAAO,IAAI,MAAM;IAIX,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;;;;;;;;;OAYG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAmC/C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
import type { ConfigLoader } from '../interfaces/config-loader.interface';
|
|
3
|
+
import type { S3LoaderConfig } from '../interfaces/s3-loader.interface';
|
|
4
|
+
/**
|
|
5
|
+
* Loader that reads configuration from S3 buckets.
|
|
6
|
+
* Supports JSON and .env file formats with auto-detection.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Load JSON config from S3
|
|
11
|
+
* const loader = new S3Loader({
|
|
12
|
+
* bucket: 'my-config-bucket',
|
|
13
|
+
* key: 'config/app.json',
|
|
14
|
+
* format: 'json'
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* // Load .env file from S3 with auto-detection
|
|
18
|
+
* const loader = new S3Loader({
|
|
19
|
+
* bucket: 'my-config-bucket',
|
|
20
|
+
* key: 'config/.env'
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html
|
|
25
|
+
*/
|
|
26
|
+
export declare class S3Loader implements ConfigLoader {
|
|
27
|
+
/** @internal */
|
|
28
|
+
protected readonly _config: Required<S3LoaderConfig>;
|
|
29
|
+
/** @internal */
|
|
30
|
+
protected readonly _client: S3Client;
|
|
31
|
+
constructor(config: S3LoaderConfig);
|
|
32
|
+
getName(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Check if this loader is available by verifying AWS credentials.
|
|
35
|
+
* @returns Promise resolving to true if AWS credentials are available
|
|
36
|
+
*/
|
|
37
|
+
isAvailable(): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Load configuration from S3.
|
|
40
|
+
* @returns Promise resolving to configuration key-value pairs
|
|
41
|
+
* @throws AWSServiceError if S3 operation fails
|
|
42
|
+
* @throws ConfigurationLoadError if content cannot be parsed
|
|
43
|
+
*/
|
|
44
|
+
load(): Promise<Record<string, unknown>>;
|
|
45
|
+
/**
|
|
46
|
+
* Parse content based on format setting or auto-detection.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
protected parseContent(content: string): Record<string, unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* Detect content format based on structure.
|
|
52
|
+
* JSON content starts with '{' after trimming whitespace.
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
protected detectFormat(content: string): 'json' | 'env';
|
|
56
|
+
/**
|
|
57
|
+
* Parse JSON content.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
protected parseJson(content: string): Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=s3.loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.loader.d.ts","sourceRoot":"","sources":["../../../../../../config-aws/src/loaders/s3.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAIxE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,QAAS,YAAW,YAAY;IAC3C,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACrD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAEzB,MAAM,EAAE,cAAc;IAclC,OAAO,IAAI,MAAM;IAKjB;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAkD9C;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUhE;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK;IAQvD;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAkB9D"}
|