@itgorillaz/configify 1.3.2 → 3.0.0-alpha.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 +33 -15
- package/dist/{src/configify.module.d.ts → configify.module.d.ts} +0 -1
- package/dist/{src/configify.module.js → configify.module.js} +6 -11
- package/dist/configify.module.js.map +1 -0
- package/dist/{src/configuration → configuration}/configuration-options.interface.d.ts +2 -4
- package/dist/configuration/configuration-options.interface.js.map +1 -0
- package/dist/configuration/configuration-parser.interface.js.map +1 -0
- package/dist/configuration/configuration-providers.interface.js.map +1 -0
- package/dist/configuration/configuration.registry.js.map +1 -0
- package/dist/configuration/index.js.map +1 -0
- package/dist/configuration/parsers/configuration-parser.factory.js.map +1 -0
- package/dist/configuration/parsers/dotenv-configuration.parser.js.map +1 -0
- package/dist/configuration/parsers/index.js.map +1 -0
- package/dist/configuration/parsers/json-configuration.parser.js.map +1 -0
- package/dist/configuration/parsers/yaml-configuration.parser.js.map +1 -0
- package/dist/configuration/resolvers/aws/aws-secrets-resolver.factory.d.ts +5 -0
- package/dist/configuration/resolvers/aws/aws-secrets-resolver.factory.js +17 -0
- package/dist/configuration/resolvers/aws/aws-secrets-resolver.factory.js.map +1 -0
- package/dist/{src/configuration → configuration}/resolvers/aws/index.d.ts +1 -0
- package/dist/{src/configuration → configuration}/resolvers/aws/index.js +1 -0
- package/dist/configuration/resolvers/aws/index.js.map +1 -0
- package/dist/configuration/resolvers/aws/parameter-store-configuration.resolver.js.map +1 -0
- package/dist/configuration/resolvers/aws/secrets-manager-configuration.resolver.js.map +1 -0
- package/dist/configuration/resolvers/configuration-resolver.interface.js.map +1 -0
- package/dist/{src/configuration → configuration}/resolvers/index.d.ts +0 -1
- package/dist/{src/configuration → configuration}/resolvers/index.js +0 -1
- package/dist/configuration/resolvers/index.js.map +1 -0
- package/dist/configuration/resolvers/resolved-value.interface.js.map +1 -0
- package/dist/decorators/configuration.decorator.js.map +1 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/value.decorator.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interpolation/variables.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.ts +1 -1
- package/package.json +11 -11
- package/src/configify.module.ts +7 -27
- package/src/configuration/configuration-options.interface.ts +3 -11
- package/src/configuration/configuration-parser.interface.ts +1 -1
- package/src/configuration/resolvers/aws/aws-secrets-resolver.factory.ts +32 -0
- package/src/configuration/resolvers/aws/index.ts +1 -0
- package/src/configuration/resolvers/index.ts +0 -1
- package/src/index.ts +1 -0
- package/tsconfig.build.json +8 -1
- package/tsconfig.build.tsbuildinfo +1 -0
- package/dist/src/configify.module.js.map +0 -1
- package/dist/src/configuration/configuration-options.interface.js.map +0 -1
- package/dist/src/configuration/configuration-parser.interface.js.map +0 -1
- package/dist/src/configuration/configuration-providers.interface.js.map +0 -1
- package/dist/src/configuration/configuration.registry.js.map +0 -1
- package/dist/src/configuration/index.js.map +0 -1
- package/dist/src/configuration/parsers/configuration-parser.factory.js.map +0 -1
- package/dist/src/configuration/parsers/dotenv-configuration.parser.js.map +0 -1
- package/dist/src/configuration/parsers/index.js.map +0 -1
- package/dist/src/configuration/parsers/json-configuration.parser.js.map +0 -1
- package/dist/src/configuration/parsers/yaml-configuration.parser.js.map +0 -1
- package/dist/src/configuration/resolvers/aws/index.js.map +0 -1
- package/dist/src/configuration/resolvers/aws/parameter-store-configuration.resolver.js.map +0 -1
- package/dist/src/configuration/resolvers/aws/secrets-manager-configuration.resolver.js.map +0 -1
- package/dist/src/configuration/resolvers/configuration-resolver.interface.js.map +0 -1
- package/dist/src/configuration/resolvers/index.js.map +0 -1
- package/dist/src/configuration/resolvers/resolved-value.interface.js.map +0 -1
- package/dist/src/decorators/configuration.decorator.js.map +0 -1
- package/dist/src/decorators/index.js.map +0 -1
- package/dist/src/decorators/value.decorator.js.map +0 -1
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.js +0 -19
- package/dist/src/index.js.map +0 -1
- package/dist/src/interpolation/variables.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/dist/{src/configuration → configuration}/configuration-options.interface.js +0 -0
- /package/dist/{src/configuration → configuration}/configuration-parser.interface.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/configuration-parser.interface.js +0 -0
- /package/dist/{src/configuration → configuration}/configuration-providers.interface.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/configuration-providers.interface.js +0 -0
- /package/dist/{src/configuration → configuration}/configuration.registry.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/configuration.registry.js +0 -0
- /package/dist/{src/configuration → configuration}/index.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/index.js +0 -0
- /package/dist/{src/configuration → configuration}/parsers/configuration-parser.factory.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/parsers/configuration-parser.factory.js +0 -0
- /package/dist/{src/configuration → configuration}/parsers/dotenv-configuration.parser.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/parsers/dotenv-configuration.parser.js +0 -0
- /package/dist/{src/configuration → configuration}/parsers/index.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/parsers/index.js +0 -0
- /package/dist/{src/configuration → configuration}/parsers/json-configuration.parser.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/parsers/json-configuration.parser.js +0 -0
- /package/dist/{src/configuration → configuration}/parsers/yaml-configuration.parser.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/parsers/yaml-configuration.parser.js +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/aws/parameter-store-configuration.resolver.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/aws/parameter-store-configuration.resolver.js +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/aws/secrets-manager-configuration.resolver.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/aws/secrets-manager-configuration.resolver.js +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/configuration-resolver.interface.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/configuration-resolver.interface.js +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/resolved-value.interface.d.ts +0 -0
- /package/dist/{src/configuration → configuration}/resolvers/resolved-value.interface.js +0 -0
- /package/dist/{src/decorators → decorators}/configuration.decorator.d.ts +0 -0
- /package/dist/{src/decorators → decorators}/configuration.decorator.js +0 -0
- /package/dist/{src/decorators → decorators}/index.d.ts +0 -0
- /package/dist/{src/decorators → decorators}/index.js +0 -0
- /package/dist/{src/decorators → decorators}/value.decorator.d.ts +0 -0
- /package/dist/{src/decorators → decorators}/value.decorator.js +0 -0
- /package/dist/{src/interpolation → interpolation}/variables.d.ts +0 -0
- /package/dist/{src/interpolation → interpolation}/variables.js +0 -0
package/README.md
CHANGED
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
<p align="center"><b>@itgorillaz/configify</b></p>
|
|
6
6
|
<p align="center">NestJS config on steroids</p>
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://buymeacoffee.com/tommelo" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
8
12
|
## Description
|
|
9
13
|
|
|
10
14
|
**configify** is a NestJS configuration module that makes it easier to deal with configuration files and secrets.
|
|
@@ -30,15 +34,16 @@ export class AppModule {}
|
|
|
30
34
|
|
|
31
35
|
**Important Note**: When working with strict mode enabled `"strict": true`(tsconfig.json) it's necessary to set the option `strictPropertyInitialization` to `false` since the module will initialize the configuration class properties during runtime after resolving the values of the environment variables.
|
|
32
36
|
|
|
33
|
-
By default, when bootstraping, the module will lookup for a `.env`
|
|
37
|
+
By default, when bootstraping, the module will lookup for a `.env`, an `application.yml` and an `application.json` file at the root folder of the project:
|
|
34
38
|
|
|
35
39
|
```
|
|
36
40
|
my-web-app
|
|
37
41
|
| .env
|
|
38
42
|
| application.yml
|
|
43
|
+
| application.json
|
|
39
44
|
```
|
|
40
45
|
|
|
41
|
-
You can also provide the location of the configuration files by
|
|
46
|
+
You can also provide the location of the configuration files by overriding the configuration options.
|
|
42
47
|
|
|
43
48
|
### Mapping Configuration Classes
|
|
44
49
|
|
|
@@ -167,7 +172,27 @@ export class DatabaseConfiguration {
|
|
|
167
172
|
|
|
168
173
|
### Dealing with Secrets
|
|
169
174
|
|
|
170
|
-
Out of the box, this module can resolve AWS Secrets Manager and Parameter Store secrets.
|
|
175
|
+
Out of the box, this module can resolve AWS Secrets Manager and Parameter Store secrets. For that, just need to choose which strategies you would like to use to resolve AWS secrets:
|
|
176
|
+
|
|
177
|
+
```js
|
|
178
|
+
// use default aws client instances
|
|
179
|
+
ConfigifyModule.forRootAsync({
|
|
180
|
+
secretsResolverStrategies: [
|
|
181
|
+
AwsSecretsResolverFactory.defaultParameterStoreResolver(),
|
|
182
|
+
AwsSecretsResolverFactory.defaultSecretsManagerResolver(),
|
|
183
|
+
],
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// or provide your own aws client instances
|
|
187
|
+
ConfigifyModule.forRootAsync({
|
|
188
|
+
secretsResolverStrategies: [
|
|
189
|
+
new AwsParameterStoreConfigurationResolver(new SSMClient())
|
|
190
|
+
new AwsSecretsManagerConfigurationResolver(
|
|
191
|
+
new SecretsManagerClient(),
|
|
192
|
+
),
|
|
193
|
+
],
|
|
194
|
+
});
|
|
195
|
+
```
|
|
171
196
|
|
|
172
197
|
Every configuration attribute stating with `AWS_SECRETS_MANAGER`, `AWS_PARAMETER_STORE`, `aws-secrets-manager` and `aws-parameter-store` will be considered a special configuration attribute and the module will try to resolve it's remote value.
|
|
173
198
|
|
|
@@ -238,7 +263,7 @@ export class SuperSecretConfiguration {
|
|
|
238
263
|
|
|
239
264
|
### Validating Configuration Classes
|
|
240
265
|
|
|
241
|
-
Depending on how critical a configuration is, you may want to validate it before
|
|
266
|
+
Depending on how critical a configuration is, you may want to validate it before starting the application, for that you can use [class-validator](https://github.com/typestack/class-validator) to make sure your configuration is loaded correctly:
|
|
242
267
|
|
|
243
268
|
```js
|
|
244
269
|
@Configuration()
|
|
@@ -282,16 +307,9 @@ configFilePath?: string | string[];
|
|
|
282
307
|
expandConfig?: boolean;
|
|
283
308
|
|
|
284
309
|
/**
|
|
285
|
-
* The
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
secretsManagerClient?: SecretsManagerClient;
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* The AWS Systems Manager Client
|
|
292
|
-
* If no client is provided, the module will create one.
|
|
293
|
-
*/
|
|
294
|
-
ssmClient?: SSMClient;
|
|
310
|
+
* The secrets resolvers strategies
|
|
311
|
+
*/
|
|
312
|
+
secretsResolverStrategies?: ConfigurationResolver[];
|
|
295
313
|
```
|
|
296
314
|
|
|
297
315
|
## License
|
|
@@ -2,7 +2,6 @@ import { DynamicModule } from '@nestjs/common';
|
|
|
2
2
|
import { ConfigifyModuleOptions } from './configuration';
|
|
3
3
|
export declare class ConfigifyModule {
|
|
4
4
|
private static readonly DEFAULT_CONFIG_FILES;
|
|
5
|
-
private static readonly SECRETS_RESOLVER_PIPELINE;
|
|
6
5
|
static forRootAsync(options?: ConfigifyModuleOptions): Promise<DynamicModule>;
|
|
7
6
|
private static runSecretsResolverPipeline;
|
|
8
7
|
private static buildConfigurationProviders;
|
|
@@ -8,14 +8,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var ConfigifyModule_1;
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.ConfigifyModule = void 0;
|
|
11
|
-
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
12
|
-
const client_ssm_1 = require("@aws-sdk/client-ssm");
|
|
13
11
|
const common_1 = require("@nestjs/common");
|
|
14
12
|
const class_validator_1 = require("class-validator");
|
|
15
13
|
const fs = require("fs");
|
|
16
14
|
const path_1 = require("path");
|
|
17
15
|
const configuration_1 = require("./configuration");
|
|
18
|
-
const parameter_store_configuration_resolver_1 = require("./configuration/resolvers/aws/parameter-store-configuration.resolver");
|
|
19
16
|
const variables_1 = require("./interpolation/variables");
|
|
20
17
|
let ConfigifyModule = ConfigifyModule_1 = class ConfigifyModule {
|
|
21
18
|
static async forRootAsync(options = {}) {
|
|
@@ -42,11 +39,13 @@ let ConfigifyModule = ConfigifyModule_1 = class ConfigifyModule {
|
|
|
42
39
|
};
|
|
43
40
|
}
|
|
44
41
|
static async runSecretsResolverPipeline(config, options) {
|
|
42
|
+
var _a;
|
|
45
43
|
const secrets = {};
|
|
46
|
-
|
|
47
|
-
const resolver
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
if ((_a = options.secretsResolverStrategies) === null || _a === void 0 ? void 0 : _a.length) {
|
|
45
|
+
for (const resolver of options.secretsResolverStrategies) {
|
|
46
|
+
const result = await resolver.resolve(config);
|
|
47
|
+
Object.assign(secrets, result);
|
|
48
|
+
}
|
|
50
49
|
}
|
|
51
50
|
return secrets;
|
|
52
51
|
}
|
|
@@ -109,10 +108,6 @@ ConfigifyModule.DEFAULT_CONFIG_FILES = [
|
|
|
109
108
|
(0, path_1.resolve)(process.cwd(), 'application.yml'),
|
|
110
109
|
(0, path_1.resolve)(process.cwd(), 'application.json'),
|
|
111
110
|
];
|
|
112
|
-
ConfigifyModule.SECRETS_RESOLVER_PIPELINE = [
|
|
113
|
-
(options) => new configuration_1.AwsSecretsManagerConfigurationResolver(options.secretsManagerClient || new client_secrets_manager_1.SecretsManagerClient()),
|
|
114
|
-
(options) => new parameter_store_configuration_resolver_1.AwsParameterStoreConfigurationResolver(options.ssmClient || new client_ssm_1.SSMClient()),
|
|
115
|
-
];
|
|
116
111
|
exports.ConfigifyModule = ConfigifyModule = ConfigifyModule_1 = __decorate([
|
|
117
112
|
(0, common_1.Module)({})
|
|
118
113
|
], ConfigifyModule);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configify.module.js","sourceRoot":"","sources":["../src/configify.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AACjE,qDAA+C;AAC/C,yBAAyB;AACzB,+BAA+B;AAC/B,mDAMyB;AACzB,yDAAsD;AAmB/C,IAAM,eAAe,uBAArB,MAAM,eAAe;IAyB1B,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,UAAkC,EAAE;QAEpC,MAAM,QAAQ,mCAAQ,OAAO,GAAK,6CAA6B,CAAE,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,SAAS,mCAAQ,OAAO,GAAK,QAAQ,CAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,aAAa,mCAAQ,SAAS,GAAK,OAAO,CAAE,CAAC;QAEnD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,qBAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAE1C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAElE,OAAO;YACL,OAAO;YACP,SAAS;YACT,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,iBAAe;SACxB,CAAC;IACJ,CAAC;IASO,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAC7C,MAA2B,EAC3B,OAA+B;;QAE/B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,MAAA,OAAO,CAAC,yBAAyB,0CAAE,MAAM,EAAE,CAAC;YAC9C,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IASO,MAAM,CAAC,2BAA2B;;QACxC,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,qCAAqB,CAAC,WAAW,EAAE,CAAC;QACrD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;YAElC,MAAM,UAAU,GACd,qCAAqB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAE9D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,qCAAqB,CAAC,oBAAoB,CACzD,QAAQ,EACR,SAAS,CACV,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC;gBAEtC,MAAM,YAAY,GAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC;gBAEzD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAEzD,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YAC9B,CAAC;YAED,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM;qBACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,IAAI,CAAC,SAAS,CACZ,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,EACrD,IAAI,EACJ,CAAC,CACF,CACF;qBACA,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IASO,MAAM,CAAC,iBAAiB,CAC9B,MAAW,EACX,OAAiB,EAAE,EACnB,SAA8B,EAAE;QAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QAClC,CAAC;IACH,CAAC;IAQO,MAAM,CAAC,uBAAuB,CAAC,KAAe;QACpD,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,0CAA0B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAUO,MAAM,CAAC,yBAAyB,CAAC,IAAwB;QAC/D,OAAQ,EAAe;aACpB,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC;aAC7C,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,0CAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnE,CAAC;IACN,CAAC;;AA/LU,0CAAe;AAOF,oCAAoB,GAAG;IAC7C,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;IAC9B,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC;IACzC,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;CAC3C,AAJ2C,CAI1C;0BAXS,eAAe;IAD3B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,eAAe,CAgM3B"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SSMClient } from '@aws-sdk/client-ssm';
|
|
1
|
+
import { ConfigurationResolver } from './resolvers';
|
|
3
2
|
export interface ConfigifyModuleOptions {
|
|
4
3
|
ignoreConfigFile?: boolean;
|
|
5
4
|
ignoreEnvVars?: boolean;
|
|
6
5
|
configFilePath?: string | string[];
|
|
7
6
|
expandConfig?: boolean;
|
|
8
|
-
|
|
9
|
-
ssmClient?: SSMClient;
|
|
7
|
+
secretsResolverStrategies?: ConfigurationResolver[];
|
|
10
8
|
}
|
|
11
9
|
export declare const DefaultConfigifyModuleOptions: ConfigifyModuleOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-options.interface.js","sourceRoot":"","sources":["../../src/configuration/configuration-options.interface.ts"],"names":[],"mappings":";;;AAsCa,QAAA,6BAA6B,GAA2B;IACnE,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,IAAI;CACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-parser.interface.js","sourceRoot":"","sources":["../../src/configuration/configuration-parser.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-providers.interface.js","sourceRoot":"","sources":["../../src/configuration/configuration-providers.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.registry.js","sourceRoot":"","sources":["../../src/configuration/configuration.registry.ts"],"names":[],"mappings":";;;AAAA,8CAIuB;AAQvB,MAAa,qBAAqB;IAQhC,MAAM,CAAC,cAAc,CAAC,IAAS;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAQD,MAAM,CAAC,iBAAiB,CAAC,MAAW,EAAE,SAA0B;QAC9D,CACE,MAAM,CAAC,sCAAyB,CAAC;YACjC,CAAC,MAAM,CAAC,sCAAyB,CAAC,GAAG,EAAE,CAAC,CACzC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC;IAOD,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAQD,MAAM,CAAC,2BAA2B,CAAC,MAAW;QAC5C,OAAO,MAAM,CAAC,sCAAyB,CAAC,CAAC;IAC3C,CAAC;IASD,MAAM,CAAC,oBAAoB,CACzB,QAAa,EACb,SAAiB;QAEjB,OAAO,OAAO,CAAC,WAAW,CAAC,2BAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;;AAxDH,sDAyDC;AAxDyB,8BAAQ,GAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD;AAClD,mEAAiD;AACjD,sEAAoD;AACpD,2DAAyC;AACzC,4CAA0B;AAC1B,8CAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-parser.factory.js","sourceRoot":"","sources":["../../../src/configuration/parsers/configuration-parser.factory.ts"],"names":[],"mappings":";;;AACA,+EAA0E;AAC1E,2EAAsE;AACtE,2EAAsE;AAOtE,MAAa,0BAA0B;IAiBrC,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAA8B,CAAC;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAQD,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;IAQO,MAAM,CAAC,UAAU,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;;AAzCH,gEA0CC;AAtCyB,kCAAO,GAAwC;IACrE,GAAG,EAAE,IAAI,uDAAyB,EAAE;IACpC,GAAG,EAAE,IAAI,mDAAuB,EAAE;IAClC,IAAI,EAAE,IAAI,mDAAuB,EAAE;IACnC,IAAI,EAAE,IAAI,mDAAuB,EAAE;CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotenv-configuration.parser.js","sourceRoot":"","sources":["../../../src/configuration/parsers/dotenv-configuration.parser.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,yBAAyB;AAMzB,MAAa,yBAAyB;IAO7B,KAAK,CAAC,IAAY;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAVD,8DAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configuration/parsers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,gEAA8C;AAC9C,8DAA4C;AAC5C,8DAA4C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-configuration.parser.js","sourceRoot":"","sources":["../../../src/configuration/parsers/json-configuration.parser.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAMzB,MAAa,uBAAuB;IAO3B,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAVD,0DAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-configuration.parser.js","sourceRoot":"","sources":["../../../src/configuration/parsers/yaml-configuration.parser.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,gCAAgC;AAMhC,MAAa,uBAAuB;IAO3B,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAwB,CAAC;IAC1E,CAAC;CACF;AAVD,0DAUC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsSecretsResolverFactory = void 0;
|
|
4
|
+
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
5
|
+
const client_ssm_1 = require("@aws-sdk/client-ssm");
|
|
6
|
+
const parameter_store_configuration_resolver_1 = require("./parameter-store-configuration.resolver");
|
|
7
|
+
const secrets_manager_configuration_resolver_1 = require("./secrets-manager-configuration.resolver");
|
|
8
|
+
class AwsSecretsResolverFactory {
|
|
9
|
+
static defaultParameterStoreResolver() {
|
|
10
|
+
return new parameter_store_configuration_resolver_1.AwsParameterStoreConfigurationResolver(new client_ssm_1.SSMClient());
|
|
11
|
+
}
|
|
12
|
+
static defaultSecretsManagerResolver() {
|
|
13
|
+
return new secrets_manager_configuration_resolver_1.AwsSecretsManagerConfigurationResolver(new client_secrets_manager_1.SecretsManagerClient());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AwsSecretsResolverFactory = AwsSecretsResolverFactory;
|
|
17
|
+
//# sourceMappingURL=aws-secrets-resolver.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-secrets-resolver.factory.js","sourceRoot":"","sources":["../../../../src/configuration/resolvers/aws/aws-secrets-resolver.factory.ts"],"names":[],"mappings":";;;AAAA,4EAAuE;AACvE,oDAAgD;AAEhD,qGAAkG;AAClG,qGAAkG;AASlG,MAAa,yBAAyB;IAKpC,MAAM,CAAC,6BAA6B;QAClC,OAAO,IAAI,+EAAsC,CAAC,IAAI,sBAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAMD,MAAM,CAAC,6BAA6B;QAClC,OAAO,IAAI,+EAAsC,CAC/C,IAAI,6CAAoB,EAAE,CAC3B,CAAC;IACJ,CAAC;CACF;AAlBD,8DAkBC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./aws-secrets-resolver.factory"), exports);
|
|
17
18
|
__exportStar(require("./parameter-store-configuration.resolver"), exports);
|
|
18
19
|
__exportStar(require("./secrets-manager-configuration.resolver"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/configuration/resolvers/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,2EAAyD;AACzD,2EAAyD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-store-configuration.resolver.js","sourceRoot":"","sources":["../../../../src/configuration/resolvers/aws/parameter-store-configuration.resolver.ts"],"names":[],"mappings":";;;AAAA,oDAAqE;AAOrE,MAAa,sCAAsC;IAWjD,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;QAR1B,iCAA4B,GAAG,qBAAqB,CAAC;QACrD,mCAA8B,GAAG,qBAAqB,CAAC;IAO1B,CAAC;IAU/C,KAAK,CAAC,OAAO,CAAC,MAA2B;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM;iBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,MAAA,CAAC,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAA,EAAA,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAQO,mBAAmB,CACzB,MAA2B;QAE3B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACR,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;YACjD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CACtD,CACF,CAAC;IACJ,CAAC;IASO,KAAK,CAAC,kBAAkB,CAC9B,GAAW,EACX,EAAU;;QAEV,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,gCAAmB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO;gBACL,EAAE;gBACF,GAAG;gBACH,KAAK,EAAE,MAAA,QAAQ,CAAC,SAAS,0CAAE,KAAK;gBAChC,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,EAAE;gBACF,GAAG;gBACH,KAAK,EAAE,CAAU;gBACjB,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;IACH,CAAC;IAQO,gBAAgB,CACtB,MAA2B;QAE3B,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA3GD,wFA2GC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-manager-configuration.resolver.js","sourceRoot":"","sources":["../../../../src/configuration/resolvers/aws/secrets-manager-configuration.resolver.ts"],"names":[],"mappings":";;;AAAA,4EAGyC;AAOzC,MAAa,sCAAsC;IAWjD,YAA6B,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;QARhD,iCAA4B,GAAG,qBAAqB,CAAC;QACrD,mCAA8B,GAAG,qBAAqB,CAAC;IAOJ,CAAC;IAUrE,KAAK,CAAC,OAAO,CAAC,MAA2B;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,MAAA,CAAC,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAA,EAAA,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAQO,mBAAmB,CACzB,MAA2B;QAE3B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACR,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;YACjD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CACtD,CACF,CAAC;IACJ,CAAC;IASO,KAAK,CAAC,kBAAkB,CAC9B,GAAW,EACX,EAAU;QAEV,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,8CAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO;gBACL,EAAE;gBACF,GAAG;gBACH,KAAK,EAAE,QAAQ,CAAC,YAAY;gBAC5B,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,EAAE;gBACF,GAAG;gBACH,KAAK,EAAE,CAAU;gBACjB,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;IACH,CAAC;IAQO,gBAAgB,CACtB,MAA2B;QAE3B,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA1GD,wFA0GC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-resolver.interface.js","sourceRoot":"","sources":["../../../src/configuration/resolvers/configuration-resolver.interface.ts"],"names":[],"mappings":""}
|
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./aws"), exports);
|
|
18
17
|
__exportStar(require("./configuration-resolver.interface"), exports);
|
|
19
18
|
__exportStar(require("./resolved-value.interface"), exports);
|
|
20
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configuration/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,6DAA2C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-value.interface.js","sourceRoot":"","sources":["../../../src/configuration/resolvers/resolved-value.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.decorator.js","sourceRoot":"","sources":["../../src/decorators/configuration.decorator.ts"],"names":[],"mappings":";;;AAAA,oFAAgF;AAKnE,QAAA,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAW/D,MAAM,aAAa,GAAG,GAAmB,EAAE;IAChD,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,8CAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,CAAC,cAAc,CACpB,8BAAsB,EACtB,MAAM,CAAC,WAAW,CAAC,IAAI,EACvB,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,oDAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.decorator.js","sourceRoot":"","sources":["../../src/decorators/value.decorator.ts"],"names":[],"mappings":";;;AAAA,oFAAgF;AAKnE,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAKzC,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAsC/D,MAAM,KAAK,GAAG,CACnB,GAAW,EACX,OAAsB,EACH,EAAE;IACrB,OAAO,CAAC,MAAc,EAAE,QAAyB,EAAE,EAAE;QACnD,8CAAqB,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,CAAC,cAAc,CAAC,sBAAc,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./configify.module"), exports);
|
|
18
|
+
__exportStar(require("./configuration"), exports);
|
|
19
|
+
__exportStar(require("./decorators"), exports);
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,kDAAgC;AAChC,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../src/interpolation/variables.ts"],"names":[],"mappings":";;;AAQA,MAAa,SAAS;IA8BpB,MAAM,CAAC,MAAM,CAAC,MAA+B;QAC3C,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC;gBACX,OAAO,YAAY,KAAK,QAAQ;oBAC9B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;oBACpC,CAAC,CAAC,YAAY,CAAC;QACrB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IASO,MAAM,CAAC,WAAW,CACxB,KAAc,EACd,MAA+B;QAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5C,MAAM,4BAA4B,GAAG,IAAI,CAAC,WAAW,CACnD,KAAK,EACL,IAAI,CAAC,iBAAiB,CACvB,CAAC;QAEF,IAAI,4BAA4B,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEjE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC,WAAW,CACrB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EACrE,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAQO,MAAM,CAAC,eAAe,CAAC,KAAa;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IASO,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,KAAa;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;;AAjGH,8BAkGC;AA9FyB,wBAAc,GAAW,OAAO,CAAC;AAKjC,2BAAiB,GAAW,gBAAgB,CAAC;AAY7C,iCAAuB,GAC7C,8CAA8C,CAAC"}
|
package/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './dist';
|
package/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './dist';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itgorillaz/configify",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.0",
|
|
4
4
|
"description": "NestJS Config on Steroids",
|
|
5
5
|
"author": "tommelo",
|
|
6
6
|
"private": false,
|
|
@@ -30,33 +30,33 @@
|
|
|
30
30
|
"js-yaml": "^4.1.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"@nestjs/common": "^9.0.0 || ^10.0.0",
|
|
36
|
-
"@nestjs/core": "^9.0.0 || ^10.0.0",
|
|
33
|
+
"@nestjs/common": "^9.0.0 || ^10.0.0 || ^11.0.0",
|
|
34
|
+
"@nestjs/core": "^9.0.0 || ^10.0.0 || ^11.0.0",
|
|
37
35
|
"class-validator": "^0.14.0",
|
|
38
36
|
"reflect-metadata": "^0.1.13 || ^0.2.0",
|
|
39
37
|
"rxjs": "^7.2.0"
|
|
40
38
|
},
|
|
41
39
|
"devDependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@nestjs/
|
|
40
|
+
"@aws-sdk/client-secrets-manager": "^3.454.0",
|
|
41
|
+
"@aws-sdk/client-ssm": "^3.461.0",
|
|
42
|
+
"@nestjs/cli": "^11.0.2",
|
|
43
|
+
"@nestjs/schematics": "^11.0.0",
|
|
44
|
+
"@nestjs/testing": "^11.0.5",
|
|
45
45
|
"@types/jest": "29.5.14",
|
|
46
46
|
"@types/js-yaml": "^4.0.9",
|
|
47
|
-
"@types/node": "22.
|
|
47
|
+
"@types/node": "22.13.8",
|
|
48
48
|
"@types/supertest": "^6.0.2",
|
|
49
49
|
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
50
50
|
"@typescript-eslint/parser": "^8.1.0",
|
|
51
51
|
"eslint": "^8.0.0 || ^9.0.0",
|
|
52
|
-
"eslint-config-prettier": "^
|
|
52
|
+
"eslint-config-prettier": "^10.0.1",
|
|
53
53
|
"eslint-plugin-prettier": "^5.1.3",
|
|
54
54
|
"jest": "29.7.0",
|
|
55
55
|
"prettier": "^3.2.5",
|
|
56
56
|
"prettier-plugin-organize-imports": "^4.0.0",
|
|
57
57
|
"source-map-support": "^0.5.20",
|
|
58
58
|
"supertest": "^7.0.0",
|
|
59
|
-
"ts-jest": "29.2.
|
|
59
|
+
"ts-jest": "29.2.6",
|
|
60
60
|
"ts-loader": "^9.2.3",
|
|
61
61
|
"ts-node": "^10.0.0",
|
|
62
62
|
"tsconfig-paths": "4.2.0",
|
package/src/configify.module.ts
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
|
|
2
|
-
import { SSMClient } from '@aws-sdk/client-ssm';
|
|
3
1
|
import { DynamicModule, Module, Provider } from '@nestjs/common';
|
|
4
2
|
import { validateSync } from 'class-validator';
|
|
5
3
|
import * as fs from 'fs';
|
|
6
4
|
import { resolve } from 'path';
|
|
7
5
|
import {
|
|
8
|
-
AwsSecretsManagerConfigurationResolver,
|
|
9
6
|
ConfigifyModuleOptions,
|
|
10
7
|
ConfigurationParserFactory,
|
|
11
8
|
ConfigurationProviders,
|
|
12
9
|
ConfigurationRegistry,
|
|
13
10
|
DefaultConfigifyModuleOptions,
|
|
14
11
|
} from './configuration';
|
|
15
|
-
import { AwsParameterStoreConfigurationResolver } from './configuration/resolvers/aws/parameter-store-configuration.resolver';
|
|
16
12
|
import { Variables } from './interpolation/variables';
|
|
17
13
|
|
|
18
14
|
/**
|
|
@@ -26,7 +22,7 @@ import { Variables } from './interpolation/variables';
|
|
|
26
22
|
* - Reading configuration files
|
|
27
23
|
* - Resolving remote secrets
|
|
28
24
|
* - Expanding variables
|
|
29
|
-
* - Creating object instances
|
|
25
|
+
* - Creating object instances decorated with Configuration and assigning its values
|
|
30
26
|
* - Validating the configuration instance
|
|
31
27
|
*
|
|
32
28
|
* All the configuration set to the configuration files will be assigned to the process.env object
|
|
@@ -45,28 +41,11 @@ export class ConfigifyModule {
|
|
|
45
41
|
resolve(process.cwd(), 'application.json'),
|
|
46
42
|
];
|
|
47
43
|
|
|
48
|
-
/**
|
|
49
|
-
* The remote secrets resolvers pipeline.
|
|
50
|
-
* This module currently supports resolving secrets on
|
|
51
|
-
* AWS Secrets Manager and AWS Parameters Store.
|
|
52
|
-
*/
|
|
53
|
-
private static readonly SECRETS_RESOLVER_PIPELINE = [
|
|
54
|
-
(options: ConfigifyModuleOptions) =>
|
|
55
|
-
new AwsSecretsManagerConfigurationResolver(
|
|
56
|
-
options.secretsManagerClient || new SecretsManagerClient(),
|
|
57
|
-
),
|
|
58
|
-
|
|
59
|
-
(options: ConfigifyModuleOptions) =>
|
|
60
|
-
new AwsParameterStoreConfigurationResolver(
|
|
61
|
-
options.ssmClient || new SSMClient(),
|
|
62
|
-
),
|
|
63
|
-
];
|
|
64
|
-
|
|
65
44
|
/**
|
|
66
45
|
* Creates the configfy dynamic module.
|
|
67
46
|
*
|
|
68
47
|
* The module will manage the instance of all classes decorated the Configuration decorator,
|
|
69
|
-
* meaning, the module will
|
|
48
|
+
* meaning, the module will create the instance and associate the value to attributes according to the
|
|
70
49
|
* keys provided by the Value decorator.
|
|
71
50
|
*
|
|
72
51
|
* The configuration key pair values will also be available on process.env object.
|
|
@@ -118,10 +97,11 @@ export class ConfigifyModule {
|
|
|
118
97
|
options: ConfigifyModuleOptions,
|
|
119
98
|
): Promise<Record<string, any>> {
|
|
120
99
|
const secrets = {};
|
|
121
|
-
|
|
122
|
-
const resolver
|
|
123
|
-
|
|
124
|
-
|
|
100
|
+
if (options.secretsResolverStrategies?.length) {
|
|
101
|
+
for (const resolver of options.secretsResolverStrategies) {
|
|
102
|
+
const result = await resolver.resolve(config);
|
|
103
|
+
Object.assign(secrets, result);
|
|
104
|
+
}
|
|
125
105
|
}
|
|
126
106
|
return secrets;
|
|
127
107
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SSMClient } from '@aws-sdk/client-ssm';
|
|
1
|
+
import { ConfigurationResolver } from './resolvers';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* The configuration options interface
|
|
@@ -29,16 +28,9 @@ export interface ConfigifyModuleOptions {
|
|
|
29
28
|
expandConfig?: boolean;
|
|
30
29
|
|
|
31
30
|
/**
|
|
32
|
-
* The
|
|
33
|
-
* If no client is provided, the module will create one.
|
|
31
|
+
* The secrets resolvers strategies
|
|
34
32
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* The AWS Systems Manager Client
|
|
39
|
-
* If no client is provided, the module will create one.
|
|
40
|
-
*/
|
|
41
|
-
ssmClient?: SSMClient;
|
|
33
|
+
secretsResolverStrategies?: ConfigurationResolver[];
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
/**
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
|
|
2
|
+
import { SSMClient } from '@aws-sdk/client-ssm';
|
|
3
|
+
import { ConfigurationResolver } from '../configuration-resolver.interface';
|
|
4
|
+
import { AwsParameterStoreConfigurationResolver } from './parameter-store-configuration.resolver';
|
|
5
|
+
import { AwsSecretsManagerConfigurationResolver } from './secrets-manager-configuration.resolver';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The AWS secrets resolver factory.
|
|
9
|
+
* This class provides the default secrets resolvers for the module.
|
|
10
|
+
* The default secrets resolvers are:
|
|
11
|
+
* - Parameter Store
|
|
12
|
+
* - Secrets Manager
|
|
13
|
+
*/
|
|
14
|
+
export class AwsSecretsResolverFactory {
|
|
15
|
+
/**
|
|
16
|
+
* The default parameter store secrets resolver
|
|
17
|
+
* @returns {ConfigurationResolver} the default parameter store secrets resolver
|
|
18
|
+
*/
|
|
19
|
+
static defaultParameterStoreResolver(): ConfigurationResolver {
|
|
20
|
+
return new AwsParameterStoreConfigurationResolver(new SSMClient());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The default secrets manager secrets resolver
|
|
25
|
+
* @returns {ConfigurationResolver} the default secrets manager secrets resolver
|
|
26
|
+
*/
|
|
27
|
+
static defaultSecretsManagerResolver(): ConfigurationResolver {
|
|
28
|
+
return new AwsSecretsManagerConfigurationResolver(
|
|
29
|
+
new SecretsManagerClient(),
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/index.ts
CHANGED
package/tsconfig.build.json
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "./tsconfig.json",
|
|
3
|
-
"
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "./dist",
|
|
5
|
+
"rootDir": "./src"
|
|
6
|
+
},
|
|
7
|
+
"include": [
|
|
8
|
+
"src/**/*",
|
|
9
|
+
],
|
|
10
|
+
"exclude": ["node_modules", "test", "**/*spec.ts"]
|
|
4
11
|
}
|