@dyanet/nestjs-config-aws 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +60 -43
- package/dist/cjs/aws-config-loader.js +57 -0
- package/dist/cjs/build-loaders.js +58 -0
- package/dist/cjs/config.module.js +138 -0
- package/dist/cjs/index.js +46 -0
- package/dist/cjs/interfaces/config-service.interface.js +11 -0
- package/dist/cjs/interfaces/default-schema.interface.js +63 -0
- package/dist/cjs/{nestjs-config-aws/src/interfaces → interfaces}/index.js +1 -1
- package/dist/cjs/interfaces/module-options.interface.js +3 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/services/config.service.js +142 -0
- package/dist/esm/aws-config-loader.js +54 -0
- package/dist/esm/build-loaders.js +55 -0
- package/dist/esm/config.module.js +135 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/interfaces/config-service.interface.js +7 -0
- package/dist/esm/interfaces/default-schema.interface.js +59 -0
- package/dist/esm/interfaces/index.js +8 -0
- package/dist/esm/interfaces/module-options.interface.js +2 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/services/config.service.js +139 -0
- package/dist/types/aws-config-loader.d.ts +74 -0
- package/dist/types/aws-config-loader.d.ts.map +1 -0
- package/dist/types/build-loaders.d.ts +30 -0
- package/dist/types/build-loaders.d.ts.map +1 -0
- package/dist/types/{nestjs-config-aws/src/config.module.d.ts → config.module.d.ts} +2 -8
- package/dist/types/config.module.d.ts.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces/config-service.interface.d.ts.map +1 -0
- package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/default-schema.interface.d.ts +14 -14
- package/dist/types/interfaces/default-schema.interface.d.ts.map +1 -0
- package/dist/types/interfaces/index.d.ts.map +1 -0
- package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/module-options.interface.d.ts +22 -3
- package/dist/types/interfaces/module-options.interface.d.ts.map +1 -0
- package/dist/types/services/config.service.d.ts.map +1 -0
- package/package.json +12 -6
- package/dist/cjs/config-aws/src/config-manager.js +0 -366
- package/dist/cjs/config-aws/src/errors/index.js +0 -77
- package/dist/cjs/config-aws/src/index.js +0 -37
- package/dist/cjs/config-aws/src/interfaces/config-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/config-manager.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/env-file-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/environment-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/s3-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/secrets-manager-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +0 -3
- package/dist/cjs/config-aws/src/loaders/env-file.loader.js +0 -169
- package/dist/cjs/config-aws/src/loaders/environment.loader.js +0 -85
- package/dist/cjs/config-aws/src/loaders/s3.loader.js +0 -145
- package/dist/cjs/config-aws/src/loaders/secrets-manager.loader.js +0 -169
- package/dist/cjs/config-aws/src/loaders/ssm-parameter-store.loader.js +0 -199
- package/dist/cjs/config-aws/src/utils/env-file-parser.util.js +0 -98
- package/dist/cjs/config-aws/src/utils/validation.util.js +0 -116
- package/dist/cjs/nestjs-config-aws/src/config.module.js +0 -175
- package/dist/cjs/nestjs-config-aws/src/index.js +0 -61
- package/dist/cjs/nestjs-config-aws/src/integration/index.js +0 -23
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/index.js +0 -26
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +0 -73
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +0 -4
- package/dist/cjs/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +0 -52
- package/dist/cjs/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +0 -124
- package/dist/cjs/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +0 -592
- package/dist/cjs/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +0 -385
- package/dist/cjs/nestjs-config-aws/src/integration/providers/index.js +0 -20
- package/dist/cjs/nestjs-config-aws/src/integration/services/async-config-helper.service.js +0 -366
- package/dist/cjs/nestjs-config-aws/src/integration/services/error-handler.service.js +0 -267
- package/dist/cjs/nestjs-config-aws/src/integration/services/factory-registration.service.js +0 -517
- package/dist/cjs/nestjs-config-aws/src/integration/services/index.js +0 -26
- package/dist/cjs/nestjs-config-aws/src/integration/services/integration-state.service.js +0 -81
- package/dist/cjs/nestjs-config-aws/src/integration/services/namespace-handler.service.js +0 -465
- package/dist/cjs/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +0 -318
- package/dist/cjs/nestjs-config-aws/src/integration/services/precedence-handler.service.js +0 -292
- package/dist/cjs/nestjs-config-aws/src/integration/services/validation-integration.service.js +0 -595
- package/dist/cjs/nestjs-config-aws/src/integration/utils/config-integration.util.js +0 -283
- package/dist/cjs/nestjs-config-aws/src/integration/utils/index.js +0 -19
- package/dist/cjs/nestjs-config-aws/src/interfaces/config-service.interface.js +0 -11
- package/dist/cjs/nestjs-config-aws/src/interfaces/default-schema.interface.js +0 -63
- package/dist/cjs/nestjs-config-aws/src/interfaces/module-options.interface.js +0 -3
- package/dist/cjs/nestjs-config-aws/src/services/config.service.js +0 -142
- package/dist/esm/config-aws/src/config-manager.js +0 -362
- package/dist/esm/config-aws/src/errors/index.js +0 -69
- package/dist/esm/config-aws/src/index.js +0 -21
- package/dist/esm/config-aws/src/interfaces/config-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/config-manager.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/env-file-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/environment-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/s3-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/secrets-manager-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +0 -2
- package/dist/esm/config-aws/src/loaders/env-file.loader.js +0 -132
- package/dist/esm/config-aws/src/loaders/environment.loader.js +0 -81
- package/dist/esm/config-aws/src/loaders/s3.loader.js +0 -141
- package/dist/esm/config-aws/src/loaders/secrets-manager.loader.js +0 -165
- package/dist/esm/config-aws/src/loaders/ssm-parameter-store.loader.js +0 -195
- package/dist/esm/config-aws/src/utils/env-file-parser.util.js +0 -94
- package/dist/esm/config-aws/src/utils/validation.util.js +0 -112
- package/dist/esm/nestjs-config-aws/src/config.module.js +0 -172
- package/dist/esm/nestjs-config-aws/src/index.js +0 -23
- package/dist/esm/nestjs-config-aws/src/integration/index.js +0 -7
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/index.js +0 -10
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +0 -64
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +0 -3
- package/dist/esm/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +0 -44
- package/dist/esm/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +0 -121
- package/dist/esm/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +0 -589
- package/dist/esm/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +0 -382
- package/dist/esm/nestjs-config-aws/src/integration/providers/index.js +0 -4
- package/dist/esm/nestjs-config-aws/src/integration/services/async-config-helper.service.js +0 -363
- package/dist/esm/nestjs-config-aws/src/integration/services/error-handler.service.js +0 -264
- package/dist/esm/nestjs-config-aws/src/integration/services/factory-registration.service.js +0 -514
- package/dist/esm/nestjs-config-aws/src/integration/services/index.js +0 -10
- package/dist/esm/nestjs-config-aws/src/integration/services/integration-state.service.js +0 -78
- package/dist/esm/nestjs-config-aws/src/integration/services/namespace-handler.service.js +0 -462
- package/dist/esm/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +0 -315
- package/dist/esm/nestjs-config-aws/src/integration/services/precedence-handler.service.js +0 -289
- package/dist/esm/nestjs-config-aws/src/integration/services/validation-integration.service.js +0 -589
- package/dist/esm/nestjs-config-aws/src/integration/utils/config-integration.util.js +0 -240
- package/dist/esm/nestjs-config-aws/src/integration/utils/index.js +0 -3
- package/dist/esm/nestjs-config-aws/src/interfaces/config-service.interface.js +0 -7
- package/dist/esm/nestjs-config-aws/src/interfaces/default-schema.interface.js +0 -59
- package/dist/esm/nestjs-config-aws/src/interfaces/index.js +0 -8
- package/dist/esm/nestjs-config-aws/src/interfaces/module-options.interface.js +0 -2
- package/dist/esm/nestjs-config-aws/src/services/config.service.js +0 -139
- package/dist/types/config-aws/src/config-manager.d.ts +0 -119
- package/dist/types/config-aws/src/config-manager.d.ts.map +0 -1
- package/dist/types/config-aws/src/errors/index.d.ts +0 -43
- package/dist/types/config-aws/src/errors/index.d.ts.map +0 -1
- package/dist/types/config-aws/src/index.d.ts +0 -24
- package/dist/types/config-aws/src/index.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts +0 -33
- package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts +0 -86
- package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts +0 -12
- package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts +0 -10
- package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts +0 -14
- package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts +0 -12
- package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts +0 -14
- package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts.map +0 -1
- package/dist/types/config-aws/src/loaders/env-file.loader.d.ts +0 -69
- package/dist/types/config-aws/src/loaders/env-file.loader.d.ts.map +0 -1
- package/dist/types/config-aws/src/loaders/environment.loader.d.ts +0 -46
- package/dist/types/config-aws/src/loaders/environment.loader.d.ts.map +0 -1
- package/dist/types/config-aws/src/loaders/s3.loader.d.ts +0 -62
- package/dist/types/config-aws/src/loaders/s3.loader.d.ts.map +0 -1
- package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts +0 -68
- package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts.map +0 -1
- package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts +0 -78
- package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts.map +0 -1
- package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts +0 -45
- package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts.map +0 -1
- package/dist/types/config-aws/src/utils/validation.util.d.ts +0 -53
- package/dist/types/config-aws/src/utils/validation.util.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/config.module.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/index.d.ts +0 -11
- package/dist/types/nestjs-config-aws/src/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/index.d.ts +0 -6
- package/dist/types/nestjs-config-aws/src/integration/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts +0 -71
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts +0 -24
- package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts +0 -9
- package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts +0 -66
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts +0 -17
- package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts +0 -332
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts +0 -259
- package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts +0 -209
- package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts +0 -249
- package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts +0 -36
- package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts +0 -134
- package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts +0 -119
- package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts +0 -3
- package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts +0 -84
- package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts +0 -84
- package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts +0 -158
- package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts +0 -9
- package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts +0 -41
- package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts +0 -192
- package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts +0 -87
- package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts +0 -103
- package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts +0 -222
- package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts +0 -81
- package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts +0 -2
- package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/interfaces/config-service.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/interfaces/default-schema.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/interfaces/module-options.interface.d.ts.map +0 -1
- package/dist/types/nestjs-config-aws/src/services/config.service.d.ts.map +0 -1
- /package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/config-service.interface.d.ts +0 -0
- /package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/index.d.ts +0 -0
- /package/dist/types/{nestjs-config-aws/src/services → services}/config.service.d.ts +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
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 ConfigServiceImpl_1;
|
|
11
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
12
|
+
import { ConfigManager, ConfigurationError } from '@dyanet/config-aws';
|
|
13
|
+
import { ConfigService } from '../interfaces/config-service.interface.js';
|
|
14
|
+
/**
|
|
15
|
+
* NestJS Injectable wrapper around ConfigManager from @dyanet/config-aws.
|
|
16
|
+
* Provides type-safe configuration access with NestJS dependency injection support.
|
|
17
|
+
*
|
|
18
|
+
* This is a thin adapter layer that delegates all configuration loading and
|
|
19
|
+
* management to the framework-agnostic ConfigManager from config-aws.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { ConfigServiceImpl } from '@dyanet/nestjs-config-aws';
|
|
24
|
+
* import { z } from 'zod';
|
|
25
|
+
*
|
|
26
|
+
* const schema = z.object({
|
|
27
|
+
* DATABASE_URL: z.string(),
|
|
28
|
+
* PORT: z.coerce.number().default(3000),
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const configService = new ConfigServiceImpl({
|
|
32
|
+
* loaders: [new EnvironmentLoader()],
|
|
33
|
+
* schema,
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* await configService.initialize();
|
|
37
|
+
* const dbUrl = configService.get('DATABASE_URL');
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
let ConfigServiceImpl = ConfigServiceImpl_1 = class ConfigServiceImpl extends ConfigService {
|
|
41
|
+
logger = new Logger(ConfigServiceImpl_1.name);
|
|
42
|
+
configManager;
|
|
43
|
+
enableNestLogging;
|
|
44
|
+
constructor(options = {}) {
|
|
45
|
+
super();
|
|
46
|
+
this.enableNestLogging = options.enableNestLogging ?? true;
|
|
47
|
+
// Create ConfigManager from config-aws with provided options
|
|
48
|
+
this.configManager = new ConfigManager({
|
|
49
|
+
loaders: options.loaders,
|
|
50
|
+
schema: options.schema,
|
|
51
|
+
precedence: options.precedence,
|
|
52
|
+
validateOnLoad: options.validateOnLoad,
|
|
53
|
+
enableLogging: options.enableLogging,
|
|
54
|
+
logger: options.logger,
|
|
55
|
+
verbose: options.verbose,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Initialize the configuration service by loading configuration from all sources.
|
|
60
|
+
* This method should be called during application startup.
|
|
61
|
+
*
|
|
62
|
+
* @throws ConfigurationError if loading or validation fails
|
|
63
|
+
*/
|
|
64
|
+
async initialize() {
|
|
65
|
+
if (this.configManager.isLoaded()) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
if (this.enableNestLogging) {
|
|
70
|
+
this.logger.log('Initializing configuration service...');
|
|
71
|
+
}
|
|
72
|
+
await this.configManager.load();
|
|
73
|
+
if (this.enableNestLogging) {
|
|
74
|
+
this.logger.log('Configuration service initialized successfully');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const errorMessage = `Failed to initialize configuration service: ${error instanceof Error ? error.message : String(error)}`;
|
|
79
|
+
this.logger.error(errorMessage);
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get a configuration value by key with type safety.
|
|
85
|
+
*
|
|
86
|
+
* @param key - The configuration key to retrieve
|
|
87
|
+
* @returns The configuration value with proper typing
|
|
88
|
+
* @throws ConfigurationError if configuration is not initialized
|
|
89
|
+
*/
|
|
90
|
+
get(key) {
|
|
91
|
+
if (!this.configManager.isLoaded()) {
|
|
92
|
+
throw new ConfigurationError('Configuration service not initialized. Call initialize() first.');
|
|
93
|
+
}
|
|
94
|
+
return this.configManager.get(key);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if the configuration service has been initialized.
|
|
98
|
+
*
|
|
99
|
+
* @returns True if the service is ready to serve configuration values
|
|
100
|
+
*/
|
|
101
|
+
isInitialized() {
|
|
102
|
+
return this.configManager.isLoaded();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get all configuration values.
|
|
106
|
+
*
|
|
107
|
+
* @returns The complete configuration object
|
|
108
|
+
* @throws ConfigurationError if configuration is not initialized
|
|
109
|
+
*/
|
|
110
|
+
getAll() {
|
|
111
|
+
if (!this.configManager.isLoaded()) {
|
|
112
|
+
throw new ConfigurationError('Configuration service not initialized. Call initialize() first.');
|
|
113
|
+
}
|
|
114
|
+
return this.configManager.getAll();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get the current application environment.
|
|
118
|
+
*
|
|
119
|
+
* @returns The APP_ENV value or 'development' as default
|
|
120
|
+
*/
|
|
121
|
+
getAppEnv() {
|
|
122
|
+
return this.configManager.getAppEnv();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the underlying ConfigManager instance.
|
|
126
|
+
* Useful for advanced use cases that need direct access to ConfigManager features.
|
|
127
|
+
*
|
|
128
|
+
* @returns The ConfigManager instance from @dyanet/config-aws
|
|
129
|
+
*/
|
|
130
|
+
getConfigManager() {
|
|
131
|
+
return this.configManager;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
ConfigServiceImpl = ConfigServiceImpl_1 = __decorate([
|
|
135
|
+
Injectable(),
|
|
136
|
+
__metadata("design:paramtypes", [Object])
|
|
137
|
+
], ConfigServiceImpl);
|
|
138
|
+
export { ConfigServiceImpl };
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQWN2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVJLElBQU0saUJBQWlCLHlCQUF2QixNQUFNLGlCQUErQyxTQUFRLGFBQWdCO0lBQ2pFLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxhQUFhLENBQW1CO0lBQ2hDLGlCQUFpQixDQUFVO0lBRTVDLFlBQVksVUFBbUMsRUFBRTtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDO1FBRTNELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFJO1lBQ3hDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWhDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxZQUFZLEdBQUcsK0NBQStDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQW9CLEdBQU07UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksa0JBQWtCLENBQzFCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxrQkFBa0IsQ0FDMUIsaUVBQWlFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGLENBQUE7QUE1R1ksaUJBQWlCO0lBRDdCLFVBQVUsRUFBRTs7R0FDQSxpQkFBaUIsQ0E0RzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTG9nZ2VyIH0gZnJvbSAnQG5lc3Rqcy9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdNYW5hZ2VyLCBDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xyXG5pbXBvcnQgdHlwZSB7IENvbmZpZ01hbmFnZXJPcHRpb25zIH0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBOZXN0SlMgQ29uZmlnU2VydmljZSB3cmFwcGVyLlxyXG4gKiBFeHRlbmRzIENvbmZpZ01hbmFnZXJPcHRpb25zIGZyb20gQGR5YW5ldC9jb25maWctYXdzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWdTZXJ2aWNlT3B0aW9uczxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnTWFuYWdlck9wdGlvbnM8VD4ge1xyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIE5lc3RKUyBsb2dnaW5nXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGVuYWJsZU5lc3RMb2dnaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIE5lc3RKUyBJbmplY3RhYmxlIHdyYXBwZXIgYXJvdW5kIENvbmZpZ01hbmFnZXIgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3MuXHJcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBjb25maWd1cmF0aW9uIGFjY2VzcyB3aXRoIE5lc3RKUyBkZXBlbmRlbmN5IGluamVjdGlvbiBzdXBwb3J0LlxyXG4gKiBcclxuICogVGhpcyBpcyBhIHRoaW4gYWRhcHRlciBsYXllciB0aGF0IGRlbGVnYXRlcyBhbGwgY29uZmlndXJhdGlvbiBsb2FkaW5nIGFuZFxyXG4gKiBtYW5hZ2VtZW50IHRvIHRoZSBmcmFtZXdvcmstYWdub3N0aWMgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3MuXHJcbiAqIFxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IENvbmZpZ1NlcnZpY2VJbXBsIH0gZnJvbSAnQGR5YW5ldC9uZXN0anMtY29uZmlnLWF3cyc7XHJcbiAqIGltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xyXG4gKiBcclxuICogY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xyXG4gKiAgIERBVEFCQVNFX1VSTDogei5zdHJpbmcoKSxcclxuICogICBQT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDMwMDApLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGNvbnN0IGNvbmZpZ1NlcnZpY2UgPSBuZXcgQ29uZmlnU2VydmljZUltcGwoe1xyXG4gKiAgIGxvYWRlcnM6IFtuZXcgRW52aXJvbm1lbnRMb2FkZXIoKV0sXHJcbiAqICAgc2NoZW1hLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGF3YWl0IGNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gKiBjb25zdCBkYlVybCA9IGNvbmZpZ1NlcnZpY2UuZ2V0KCdEQVRBQkFTRV9VUkwnKTtcclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlSW1wbDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnU2VydmljZTxUPiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBuZXcgTG9nZ2VyKENvbmZpZ1NlcnZpY2VJbXBsLm5hbWUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnTWFuYWdlcjogQ29uZmlnTWFuYWdlcjxUPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZU5lc3RMb2dnaW5nOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb25maWdTZXJ2aWNlT3B0aW9uczxUPiA9IHt9KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgXHJcbiAgICB0aGlzLmVuYWJsZU5lc3RMb2dnaW5nID0gb3B0aW9ucy5lbmFibGVOZXN0TG9nZ2luZyA/PyB0cnVlO1xyXG4gICAgXHJcbiAgICAvLyBDcmVhdGUgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3Mgd2l0aCBwcm92aWRlZCBvcHRpb25zXHJcbiAgICB0aGlzLmNvbmZpZ01hbmFnZXIgPSBuZXcgQ29uZmlnTWFuYWdlcjxUPih7XHJcbiAgICAgIGxvYWRlcnM6IG9wdGlvbnMubG9hZGVycyxcclxuICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSxcclxuICAgICAgcHJlY2VkZW5jZTogb3B0aW9ucy5wcmVjZWRlbmNlLFxyXG4gICAgICB2YWxpZGF0ZU9uTG9hZDogb3B0aW9ucy52YWxpZGF0ZU9uTG9hZCxcclxuICAgICAgZW5hYmxlTG9nZ2luZzogb3B0aW9ucy5lbmFibGVMb2dnaW5nLFxyXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxyXG4gICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZSBieSBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBhbGwgc291cmNlcy5cclxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBzdGFydHVwLlxyXG4gICAqIFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGxvYWRpbmcgb3IgdmFsaWRhdGlvbiBmYWlsc1xyXG4gICAqL1xyXG4gIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZU5lc3RMb2dnaW5nKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdJbml0aWFsaXppbmcgY29uZmlndXJhdGlvbiBzZXJ2aWNlLi4uJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnTWFuYWdlci5sb2FkKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVOZXN0TG9nZ2luZykge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgRmFpbGVkIHRvIGluaXRpYWxpemUgY29uZmlndXJhdGlvbiBzZXJ2aWNlOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhIGNvbmZpZ3VyYXRpb24gdmFsdWUgYnkga2V5IHdpdGggdHlwZSBzYWZldHkuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGtleSAtIFRoZSBjb25maWd1cmF0aW9uIGtleSB0byByZXRyaWV2ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHZhbHVlIHdpdGggcHJvcGVyIHR5cGluZ1xyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEspOiBUW0tdIHtcclxuICAgIGlmICghdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcclxuICAgICAgICAnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0aWFsaXplKCkgZmlyc3QuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc2VydmljZSBpcyByZWFkeSB0byBzZXJ2ZSBjb25maWd1cmF0aW9uIHZhbHVlc1xyXG4gICAqL1xyXG4gIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBjb25maWd1cmF0aW9uIG9iamVjdFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0QWxsKCk6IFQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ01hbmFnZXIuaXNMb2FkZWQoKSkge1xyXG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFxyXG4gICAgICAgICdDb25maWd1cmF0aW9uIHNlcnZpY2Ugbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXRpYWxpemUoKSBmaXJzdC4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIGVudmlyb25tZW50LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBBUFBfRU5WIHZhbHVlIG9yICdkZXZlbG9wbWVudCcgYXMgZGVmYXVsdFxyXG4gICAqL1xyXG4gIGdldEFwcEVudigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXRBcHBFbnYoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdW5kZXJseWluZyBDb25maWdNYW5hZ2VyIGluc3RhbmNlLlxyXG4gICAqIFVzZWZ1bCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzIHRoYXQgbmVlZCBkaXJlY3QgYWNjZXNzIHRvIENvbmZpZ01hbmFnZXIgZmVhdHVyZXMuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVGhlIENvbmZpZ01hbmFnZXIgaW5zdGFuY2UgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3NcclxuICAgKi9cclxuICBnZXRDb25maWdNYW5hZ2VyKCk6IENvbmZpZ01hbmFnZXI8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { PrecedenceStrategy } from '@dyanet/config-aws';
|
|
2
|
+
import type { ZodType } from 'zod';
|
|
3
|
+
import { AwsOptions, SecretsManagerConfig, SSMConfig } from './interfaces/module-options.interface';
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link awsConfigLoader}.
|
|
6
|
+
*/
|
|
7
|
+
export interface AwsConfigLoaderOptions<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
8
|
+
/** Zod schema for validation. When provided, the merged config is validated. */
|
|
9
|
+
schema?: ZodType<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Simple AWS options (`{ secretName, ssmPrefix, region }`) — the same shape as the
|
|
12
|
+
* Next.js adapter's `getConfig`. When set, takes precedence over the granular
|
|
13
|
+
* `secretsManagerConfig` / `ssmConfig` options.
|
|
14
|
+
*/
|
|
15
|
+
aws?: AwsOptions;
|
|
16
|
+
/** AWS Secrets Manager configuration (advanced). Omit or set `enabled: false` to skip. */
|
|
17
|
+
secretsManagerConfig?: SecretsManagerConfig;
|
|
18
|
+
/** AWS SSM Parameter Store configuration (advanced). Omit or set `enabled: false` to skip. */
|
|
19
|
+
ssmConfig?: SSMConfig;
|
|
20
|
+
/** Prefix for environment variables (e.g. `APP_`). */
|
|
21
|
+
envPrefix?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Precedence strategy for merging sources.
|
|
24
|
+
* @default 'aws-first'
|
|
25
|
+
*/
|
|
26
|
+
precedence?: PrecedenceStrategy;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to validate the merged config against `schema`.
|
|
29
|
+
* @default true when a schema is provided, otherwise false
|
|
30
|
+
*/
|
|
31
|
+
validate?: boolean;
|
|
32
|
+
/** Enable verbose loader logging. @default false */
|
|
33
|
+
enableLogging?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a configuration factory that loads from AWS sources (Secrets Manager,
|
|
37
|
+
* SSM Parameter Store) and environment variables, for use with the standard
|
|
38
|
+
* `@nestjs/config` `ConfigModule`.
|
|
39
|
+
*
|
|
40
|
+
* The returned function matches `@nestjs/config`'s `ConfigFactory` shape, so drop
|
|
41
|
+
* it straight into the `load` array — no extra module to import, and
|
|
42
|
+
* `@nestjs/config` stays an optional peer dependency of this package.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* import { ConfigModule } from '@nestjs/config';
|
|
47
|
+
* import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
|
|
48
|
+
*
|
|
49
|
+
* @Module({
|
|
50
|
+
* imports: [
|
|
51
|
+
* ConfigModule.forRoot({
|
|
52
|
+
* isGlobal: true,
|
|
53
|
+
* // Simple `aws` shape — same as the Next.js adapter's getConfig:
|
|
54
|
+
* load: [awsConfigLoader({ aws: { secretName: '/my-app/config' } })],
|
|
55
|
+
* }),
|
|
56
|
+
* ],
|
|
57
|
+
* })
|
|
58
|
+
* export class AppModule {}
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @example Namespaced (compose with `@nestjs/config`'s `registerAs`):
|
|
62
|
+
* ```typescript
|
|
63
|
+
* import { ConfigModule, registerAs } from '@nestjs/config';
|
|
64
|
+
*
|
|
65
|
+
* ConfigModule.forRoot({
|
|
66
|
+
* load: [registerAs('database', awsConfigLoader({ ssmConfig: { paths: { production: '/db' } } }))],
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @param options Loader options.
|
|
71
|
+
* @returns A factory `() => Promise<T>` suitable for `ConfigModule`'s `load` array.
|
|
72
|
+
*/
|
|
73
|
+
export declare function awsConfigLoader<T extends Record<string, unknown> = Record<string, unknown>>(options?: AwsConfigLoaderOptions<T>): () => Promise<T>;
|
|
74
|
+
//# sourceMappingURL=aws-config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-config-loader.d.ts","sourceRoot":"","sources":["../../src/aws-config-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjG,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,OAAO,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACtC,MAAM,OAAO,CAAC,CAAC,CAAC,CAalB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ConfigLoader } from '@dyanet/config-aws';
|
|
2
|
+
import { AwsOptions, SecretsManagerConfig, SSMConfig } from './interfaces/module-options.interface';
|
|
3
|
+
/**
|
|
4
|
+
* The AWS configuration sources used to build a set of loaders.
|
|
5
|
+
* Shared by {@link ConfigModule} and {@link awsConfigLoader} so both produce an
|
|
6
|
+
* identical loader chain.
|
|
7
|
+
*/
|
|
8
|
+
export interface AwsLoaderSources {
|
|
9
|
+
/** Prefix for environment variables (e.g. `APP_`). */
|
|
10
|
+
envPrefix?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Simple AWS options (`{ secretName, ssmPrefix, region }`) — mirrors the Next.js
|
|
13
|
+
* adapter. When set, exactly the named sources are added and the granular
|
|
14
|
+
* `secretsManagerConfig` / `ssmConfig` options below are ignored.
|
|
15
|
+
*/
|
|
16
|
+
aws?: AwsOptions;
|
|
17
|
+
/** AWS Secrets Manager configuration (advanced). Omit or set `enabled: false` to skip. */
|
|
18
|
+
secretsManagerConfig?: SecretsManagerConfig;
|
|
19
|
+
/** AWS SSM Parameter Store configuration (advanced). Omit or set `enabled: false` to skip. */
|
|
20
|
+
ssmConfig?: SSMConfig;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build the configuration loader chain from AWS source options.
|
|
24
|
+
*
|
|
25
|
+
* Order (lowest precedence first): environment variables, then Secrets Manager,
|
|
26
|
+
* then SSM Parameter Store. The AWS loaders skip themselves automatically when
|
|
27
|
+
* unavailable (e.g. in a local environment or without credentials).
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildAwsLoaders(options: AwsLoaderSources): ConfigLoader[];
|
|
30
|
+
//# sourceMappingURL=build-loaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-loaders.d.ts","sourceRoot":"","sources":["../../src/build-loaders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEpG;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAsCzE"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
2
|
import { NestConfigAwsModuleOptions, NestConfigAwsModuleAsyncOptions } from './interfaces/module-options.interface';
|
|
3
|
-
import { DefaultConfigSchema } from './interfaces/default-schema.interface';
|
|
4
3
|
/**
|
|
5
4
|
* Token for injecting module options
|
|
6
5
|
*/
|
|
@@ -17,7 +16,7 @@ export declare class ConfigModule {
|
|
|
17
16
|
* @param options - Configuration options for the module
|
|
18
17
|
* @returns Dynamic module configuration
|
|
19
18
|
*/
|
|
20
|
-
static forRoot<T =
|
|
19
|
+
static forRoot<T = Record<string, unknown>>(options?: NestConfigAwsModuleOptions<T>): DynamicModule;
|
|
21
20
|
/**
|
|
22
21
|
* Create an asynchronous configuration module with factory-based options.
|
|
23
22
|
* Useful when configuration options depend on other services or async operations.
|
|
@@ -25,7 +24,7 @@ export declare class ConfigModule {
|
|
|
25
24
|
* @param options - Async configuration options with factory function
|
|
26
25
|
* @returns Dynamic module configuration
|
|
27
26
|
*/
|
|
28
|
-
static forRootAsync<T =
|
|
27
|
+
static forRootAsync<T = Record<string, unknown>>(options: NestConfigAwsModuleAsyncOptions<T>): DynamicModule;
|
|
29
28
|
/**
|
|
30
29
|
* Create the ConfigService provider for synchronous module registration.
|
|
31
30
|
*/
|
|
@@ -38,10 +37,5 @@ export declare class ConfigModule {
|
|
|
38
37
|
* Create the ConfigService provider for asynchronous module registration.
|
|
39
38
|
*/
|
|
40
39
|
private static createAsyncConfigServiceProvider;
|
|
41
|
-
/**
|
|
42
|
-
* Create configuration loaders based on module options.
|
|
43
|
-
* Uses loaders from @dyanet/config-aws core package.
|
|
44
|
-
*/
|
|
45
|
-
private static createLoaders;
|
|
46
40
|
}
|
|
47
41
|
//# sourceMappingURL=config.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../src/config.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AAIpH;;GAEG;AACH,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,qBAEa,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,OAAO,GAAE,0BAA0B,CAAC,CAAC,CAAM,GAC1C,aAAa;IAiBhB;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAC,GAC1C,aAAa;IAehB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IA+B1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAYnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;CA4BhD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { EnvironmentLoader, EnvFileLoader, S3Loader, SecretsManagerLoader, SSMParameterStoreLoader, ConfigManager, ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError, ConfigValidationUtil, EnvFileParser, } from '@dyanet/config-aws';
|
|
2
|
+
export type { ConfigLoader, ConfigManagerOptions, LoaderPrecedence, VerboseOptions, PrecedenceStrategy, ConfigLoadResult, ConfigSourceInfo, Logger, EnvironmentLoaderConfig, EnvFileLoaderConfig, S3LoaderConfig, SecretsManagerLoaderConfig, SSMParameterStoreLoaderConfig, } from '@dyanet/config-aws';
|
|
3
|
+
export * from './config.module';
|
|
4
|
+
export * from './interfaces';
|
|
5
|
+
export * from './services/config.service';
|
|
6
|
+
export { awsConfigLoader } from './aws-config-loader';
|
|
7
|
+
export type { AwsConfigLoaderOptions } from './aws-config-loader';
|
|
8
|
+
export { buildAwsLoaders } from './build-loaders';
|
|
9
|
+
export type { AwsLoaderSources } from './build-loaders';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EAGvB,aAAa,EAGb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EAGzB,oBAAoB,EACpB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EAGN,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-service.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/config-service.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,aAAa,CAAC,CAAC,GAAG,GAAG;IACzC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7C;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,OAAO;IAEjC;;;OAGG;IACH,QAAQ,CAAC,MAAM,IAAI,CAAC;CACrB"}
|
package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/default-schema.interface.d.ts
RENAMED
|
@@ -23,9 +23,9 @@ export declare const defaultConfigSchema: z.ZodObject<{
|
|
|
23
23
|
/** Redis URL */
|
|
24
24
|
REDIS_URL: z.ZodOptional<z.ZodString>;
|
|
25
25
|
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
APP_ENV: "
|
|
27
|
-
AWS_REGION?: string | undefined;
|
|
26
|
+
APP_ENV: "development" | "test" | "production" | "local";
|
|
28
27
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
28
|
+
AWS_REGION?: string | undefined;
|
|
29
29
|
AWS_PROFILE?: string | undefined;
|
|
30
30
|
PORT?: number | undefined;
|
|
31
31
|
HOST?: string | undefined;
|
|
@@ -33,9 +33,9 @@ export declare const defaultConfigSchema: z.ZodObject<{
|
|
|
33
33
|
DATABASE_URL?: string | undefined;
|
|
34
34
|
REDIS_URL?: string | undefined;
|
|
35
35
|
}, {
|
|
36
|
-
AWS_REGION?: string | undefined;
|
|
37
|
-
APP_ENV?: "local" | "development" | "test" | "production" | undefined;
|
|
38
36
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
37
|
+
APP_ENV?: "development" | "test" | "production" | "local" | undefined;
|
|
38
|
+
AWS_REGION?: string | undefined;
|
|
39
39
|
AWS_PROFILE?: string | undefined;
|
|
40
40
|
PORT?: number | undefined;
|
|
41
41
|
HOST?: string | undefined;
|
|
@@ -63,9 +63,9 @@ export declare const environmentSchemas: {
|
|
|
63
63
|
} & {
|
|
64
64
|
AWS_REGION: z.ZodOptional<z.ZodString>;
|
|
65
65
|
}, "strip", z.ZodTypeAny, {
|
|
66
|
-
APP_ENV: "
|
|
67
|
-
AWS_REGION?: string | undefined;
|
|
66
|
+
APP_ENV: "development" | "test" | "production" | "local";
|
|
68
67
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
68
|
+
AWS_REGION?: string | undefined;
|
|
69
69
|
AWS_PROFILE?: string | undefined;
|
|
70
70
|
PORT?: number | undefined;
|
|
71
71
|
HOST?: string | undefined;
|
|
@@ -73,9 +73,9 @@ export declare const environmentSchemas: {
|
|
|
73
73
|
DATABASE_URL?: string | undefined;
|
|
74
74
|
REDIS_URL?: string | undefined;
|
|
75
75
|
}, {
|
|
76
|
-
AWS_REGION?: string | undefined;
|
|
77
|
-
APP_ENV?: "local" | "development" | "test" | "production" | undefined;
|
|
78
76
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
77
|
+
APP_ENV?: "development" | "test" | "production" | "local" | undefined;
|
|
78
|
+
AWS_REGION?: string | undefined;
|
|
79
79
|
AWS_PROFILE?: string | undefined;
|
|
80
80
|
PORT?: number | undefined;
|
|
81
81
|
HOST?: string | undefined;
|
|
@@ -95,8 +95,8 @@ export declare const environmentSchemas: {
|
|
|
95
95
|
} & {
|
|
96
96
|
AWS_REGION: z.ZodString;
|
|
97
97
|
}, "strip", z.ZodTypeAny, {
|
|
98
|
+
APP_ENV: "development" | "test" | "production" | "local";
|
|
98
99
|
AWS_REGION: string;
|
|
99
|
-
APP_ENV: "local" | "development" | "test" | "production";
|
|
100
100
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
101
101
|
AWS_PROFILE?: string | undefined;
|
|
102
102
|
PORT?: number | undefined;
|
|
@@ -106,8 +106,8 @@ export declare const environmentSchemas: {
|
|
|
106
106
|
REDIS_URL?: string | undefined;
|
|
107
107
|
}, {
|
|
108
108
|
AWS_REGION: string;
|
|
109
|
-
APP_ENV?: "local" | "development" | "test" | "production" | undefined;
|
|
110
109
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
110
|
+
APP_ENV?: "development" | "test" | "production" | "local" | undefined;
|
|
111
111
|
AWS_PROFILE?: string | undefined;
|
|
112
112
|
PORT?: number | undefined;
|
|
113
113
|
HOST?: string | undefined;
|
|
@@ -127,8 +127,8 @@ export declare const environmentSchemas: {
|
|
|
127
127
|
} & {
|
|
128
128
|
AWS_REGION: z.ZodString;
|
|
129
129
|
}, "strip", z.ZodTypeAny, {
|
|
130
|
+
APP_ENV: "development" | "test" | "production" | "local";
|
|
130
131
|
AWS_REGION: string;
|
|
131
|
-
APP_ENV: "local" | "development" | "test" | "production";
|
|
132
132
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
133
133
|
AWS_PROFILE?: string | undefined;
|
|
134
134
|
PORT?: number | undefined;
|
|
@@ -138,8 +138,8 @@ export declare const environmentSchemas: {
|
|
|
138
138
|
REDIS_URL?: string | undefined;
|
|
139
139
|
}, {
|
|
140
140
|
AWS_REGION: string;
|
|
141
|
-
APP_ENV?: "local" | "development" | "test" | "production" | undefined;
|
|
142
141
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
142
|
+
APP_ENV?: "development" | "test" | "production" | "local" | undefined;
|
|
143
143
|
AWS_PROFILE?: string | undefined;
|
|
144
144
|
PORT?: number | undefined;
|
|
145
145
|
HOST?: string | undefined;
|
|
@@ -159,8 +159,8 @@ export declare const environmentSchemas: {
|
|
|
159
159
|
AWS_REGION: z.ZodString;
|
|
160
160
|
LOG_LEVEL: z.ZodDefault<z.ZodEnum<["error", "warn", "info"]>>;
|
|
161
161
|
}, "strip", z.ZodTypeAny, {
|
|
162
|
+
APP_ENV: "development" | "test" | "production" | "local";
|
|
162
163
|
AWS_REGION: string;
|
|
163
|
-
APP_ENV: "local" | "development" | "test" | "production";
|
|
164
164
|
LOG_LEVEL: "error" | "warn" | "info";
|
|
165
165
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
166
166
|
AWS_PROFILE?: string | undefined;
|
|
@@ -170,8 +170,8 @@ export declare const environmentSchemas: {
|
|
|
170
170
|
REDIS_URL?: string | undefined;
|
|
171
171
|
}, {
|
|
172
172
|
AWS_REGION: string;
|
|
173
|
-
APP_ENV?: "local" | "development" | "test" | "production" | undefined;
|
|
174
173
|
NODE_ENV?: "development" | "test" | "production" | undefined;
|
|
174
|
+
APP_ENV?: "development" | "test" | "production" | "local" | undefined;
|
|
175
175
|
AWS_PROFILE?: string | undefined;
|
|
176
176
|
PORT?: number | undefined;
|
|
177
177
|
HOST?: string | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-schema.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/default-schema.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,0BAA0B;;IAG1B,sEAAsE;;IAGtE,8BAA8B;;IAG9B,wCAAwC;;IAGxC,uBAAuB;;IAGvB,uBAAuB;;IAGvB,gBAAgB;;IAGhB,mBAAmB;;IAGnB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAEhB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,CAGnE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAAyD,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,cAAc,4BAA4B,CAAC"}
|
package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/module-options.interface.d.ts
RENAMED
|
@@ -31,15 +31,34 @@ export interface SSMConfig {
|
|
|
31
31
|
/** Whether to decrypt SecureString parameters */
|
|
32
32
|
decrypt?: boolean;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Simple, flat AWS options — the same ergonomic shape used by the Next.js adapter's
|
|
36
|
+
* `getConfig`. When provided, exactly the named sources are loaded (a `secretName`
|
|
37
|
+
* adds a Secrets Manager loader, an `ssmPrefix` adds an SSM loader); the granular
|
|
38
|
+
* `secretsManagerConfig` / `ssmConfig` options are not applied.
|
|
39
|
+
*/
|
|
40
|
+
export interface AwsOptions {
|
|
41
|
+
/** Secret name/path for AWS Secrets Manager. */
|
|
42
|
+
secretName?: string;
|
|
43
|
+
/** Parameter path prefix for AWS SSM Parameter Store. */
|
|
44
|
+
ssmPrefix?: string;
|
|
45
|
+
/** AWS region (defaults to the `AWS_REGION` env var, then `us-east-1`). */
|
|
46
|
+
region?: string;
|
|
47
|
+
}
|
|
34
48
|
/**
|
|
35
49
|
* Options for configuring the NestJS AWS Configuration module.
|
|
36
50
|
*/
|
|
37
51
|
export interface NestConfigAwsModuleOptions<T = any> {
|
|
38
|
-
/** Zod schema for configuration validation */
|
|
52
|
+
/** Zod schema for configuration validation. When omitted, values are returned as-is (no validation). */
|
|
39
53
|
schema?: ZodType<T>;
|
|
40
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Simple AWS options (`{ secretName, ssmPrefix, region }`) — mirrors the Next.js
|
|
56
|
+
* adapter. When set, takes precedence over `secretsManagerConfig` / `ssmConfig`.
|
|
57
|
+
*/
|
|
58
|
+
aws?: AwsOptions;
|
|
59
|
+
/** Configuration for AWS Secrets Manager integration (advanced). */
|
|
41
60
|
secretsManagerConfig?: SecretsManagerConfig;
|
|
42
|
-
/** Configuration for AWS Systems Manager Parameter Store integration */
|
|
61
|
+
/** Configuration for AWS Systems Manager Parameter Store integration (advanced). */
|
|
43
62
|
ssmConfig?: SSMConfig;
|
|
44
63
|
/** Prefix for environment variables (e.g., 'APP_') */
|
|
45
64
|
envPrefix?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-options.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,GAAG,GAAG;IACjD,wGAAwG;IACxG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpB;;;OAGG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IAEjB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C,oFAAoF;IACpF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B,CAAC,CAAC,GAAG,GAAG;IACtD,gDAAgD;IAChD,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAEvG,uDAAuD;IACvD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAEf,gDAAgD;IAChD,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChG;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAEhC,OAAO,GAAE,oBAAoB,CAAC,CAAC,CAAM;IAiBjD;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IASpC;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;OAKG;IACH,MAAM,IAAI,CAAC;IASX;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAInB;;;;;OAKG;IACH,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC;CAGrC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dyanet/nestjs-config-aws",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "AWS-integrated configuration management for NestJS applications with support for environment variables, AWS Secrets Manager, and AWS Systems Manager Parameter Store.
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "AWS-integrated configuration management for NestJS applications with support for environment variables, AWS Secrets Manager, and AWS Systems Manager Parameter Store. Provides an injectable ConfigService and an awsConfigLoader factory for @nestjs/config.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
@@ -18,10 +18,11 @@
|
|
|
18
18
|
"LICENSE"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "npm run clean && npm run build:types && npm run build:esm && npm run build:cjs",
|
|
21
|
+
"build": "npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:postbuild",
|
|
22
22
|
"build:types": "tsc --project tsconfig.types.json",
|
|
23
23
|
"build:esm": "tsc --project tsconfig.esm.json",
|
|
24
24
|
"build:cjs": "tsc --project tsconfig.cjs.json",
|
|
25
|
+
"build:postbuild": "node ../../scripts/postbuild.mjs ./dist",
|
|
25
26
|
"clean": "rimraf dist",
|
|
26
27
|
"test": "jest",
|
|
27
28
|
"test:watch": "jest --watch",
|
|
@@ -61,11 +62,16 @@
|
|
|
61
62
|
"@dyanet/config-aws": "^1.0.0"
|
|
62
63
|
},
|
|
63
64
|
"peerDependencies": {
|
|
64
|
-
"@nestjs/common": "^11.0.0",
|
|
65
|
-
"@nestjs/config": "^4.0.0",
|
|
66
|
-
"@nestjs/core": "^11.0.0",
|
|
65
|
+
"@nestjs/common": "^10.0.0 || ^11.0.0",
|
|
66
|
+
"@nestjs/config": "^3.0.0 || ^4.0.0",
|
|
67
|
+
"@nestjs/core": "^10.0.0 || ^11.0.0",
|
|
67
68
|
"zod": "^3.22.0"
|
|
68
69
|
},
|
|
70
|
+
"peerDependenciesMeta": {
|
|
71
|
+
"@nestjs/config": {
|
|
72
|
+
"optional": true
|
|
73
|
+
}
|
|
74
|
+
},
|
|
69
75
|
"repository": {
|
|
70
76
|
"type": "git",
|
|
71
77
|
"url": "https://github.com/dyanet/config-aws.git"
|