envilder 0.9.4 → 0.10.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 +8 -0
- package/docs/changelogs/cli.md +21 -0
- package/docs/changelogs/gha.md +14 -0
- package/docs/changelogs/sdk-dotnet.md +16 -0
- package/docs/changelogs/sdk-nodejs.md +16 -0
- package/docs/changelogs/sdk-python.md +16 -0
- package/lib/envilder/core/infrastructure/variableStore/FileVariableStore.d.ts.map +1 -1
- package/lib/envilder/core/infrastructure/variableStore/FileVariableStore.js +7 -1
- package/lib/envilder/core/infrastructure/variableStore/FileVariableStore.js.map +1 -1
- package/lib/sdks/nodejs/src/application/map-file-parser.d.ts +2 -0
- package/lib/sdks/nodejs/src/application/map-file-parser.d.ts.map +1 -1
- package/lib/sdks/nodejs/src/application/map-file-parser.js +33 -24
- package/lib/sdks/nodejs/src/application/map-file-parser.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -83,6 +83,7 @@ Watch how easy it is to automate your .env management in less than 1 minute:
|
|
|
83
83
|
|
|
84
84
|
```json
|
|
85
85
|
{
|
|
86
|
+
"$schema": "https://envilder.com/schema/map-file.v1.json",
|
|
86
87
|
"DB_PASSWORD": "/my-app/db/password",
|
|
87
88
|
"API_KEY": "/my-app/api-key"
|
|
88
89
|
}
|
|
@@ -165,12 +166,17 @@ what secrets your app needs and where they live in your cloud provider. The same
|
|
|
165
166
|
the CLI, the GitHub Action, and the runtime SDKs. You can optionally include a `$config` section
|
|
166
167
|
to declare which provider and settings to use.
|
|
167
168
|
|
|
169
|
+
Add `"$schema"` to enable IDE autocomplete, inline documentation, and validation for your map
|
|
170
|
+
files. The schema is published at
|
|
171
|
+
[envilder.com/schema/map-file.v1.json](https://envilder.com/schema/map-file.v1.json).
|
|
172
|
+
|
|
168
173
|
### Basic Format (AWS SSM, default)
|
|
169
174
|
|
|
170
175
|
When no `$config` is present, Envilder defaults to AWS SSM Parameter Store:
|
|
171
176
|
|
|
172
177
|
```json
|
|
173
178
|
{
|
|
179
|
+
"$schema": "https://envilder.com/schema/map-file.v1.json",
|
|
174
180
|
"API_KEY": "/myapp/prod/api-key",
|
|
175
181
|
"DB_PASSWORD": "/myapp/prod/db-password",
|
|
176
182
|
"SECRET_TOKEN": "/myapp/prod/secret-token"
|
|
@@ -188,6 +194,7 @@ and uses all other keys as secret mappings:
|
|
|
188
194
|
|
|
189
195
|
```json
|
|
190
196
|
{
|
|
197
|
+
"$schema": "https://envilder.com/schema/map-file.v1.json",
|
|
191
198
|
"$config": {
|
|
192
199
|
"provider": "aws",
|
|
193
200
|
"profile": "prod-account"
|
|
@@ -201,6 +208,7 @@ and uses all other keys as secret mappings:
|
|
|
201
208
|
|
|
202
209
|
```json
|
|
203
210
|
{
|
|
211
|
+
"$schema": "https://envilder.com/schema/map-file.v1.json",
|
|
204
212
|
"$config": {
|
|
205
213
|
"provider": "azure",
|
|
206
214
|
"vaultUrl": "https://my-vault.vault.azure.net"
|
package/docs/changelogs/cli.md
CHANGED
|
@@ -5,6 +5,27 @@ For SDK-specific changes, see `sdk-dotnet.md`, `sdk-python.md`, or `sdk-nodejs.m
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
## [0.10.0] - 2026-05-03
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
* **Map-file JSON Schema** — A formal JSON Schema specification for map files,
|
|
13
|
+
published at `https://envilder.com/schema/map-file.v1.json`. Add
|
|
14
|
+
`"$schema": "https://envilder.com/schema/map-file.v1.json"` to any map file
|
|
15
|
+
for IDE autocomplete, inline documentation, and validation
|
|
16
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
17
|
+
* **Schema contract tests** — 39 tests validating the JSON Schema across all
|
|
18
|
+
providers (AWS, Azure, GCP, HashiCorp Vault, file)
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
* **Reserved key filtering** — All `$`-prefixed keys (e.g. `$schema`) are now
|
|
23
|
+
excluded from variable mappings. Previously only `$config` was filtered,
|
|
24
|
+
causing `$schema` to leak into environment variables
|
|
25
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
8
29
|
## [0.9.4] - 2026-05-03
|
|
9
30
|
|
|
10
31
|
### Fixed
|
package/docs/changelogs/gha.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.10.0] - 2026-05-03
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
|
|
5
|
+
* **Reserved key filtering** — `$schema` and other `$`-prefixed keys no longer
|
|
6
|
+
leak into environment variable mappings
|
|
7
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
8
|
+
|
|
9
|
+
### Dependencies
|
|
10
|
+
|
|
11
|
+
* Bundle updated with latest CLI core (map-file schema support)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
1
15
|
## [0.9.4] - 2026-05-03
|
|
2
16
|
|
|
3
17
|
### Fixed
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [0.3.0] - 2026-05-03
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
* **Map-file JSON Schema support** — Map files can now include
|
|
6
|
+
`"$schema": "https://envilder.com/schema/map-file.v1.json"` for IDE
|
|
7
|
+
autocomplete and validation without affecting secret resolution
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
* **Reserved key filtering** — All `$`-prefixed keys are now excluded from
|
|
12
|
+
variable mappings. Previously only `$config` was filtered
|
|
13
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
1
17
|
## [0.2.0] - 2026-04-18
|
|
2
18
|
|
|
3
19
|
### Added
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [0.2.0] - 2026-05-03
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
* **Map-file JSON Schema support** — Map files can now include
|
|
6
|
+
`"$schema": "https://envilder.com/schema/map-file.v1.json"` for IDE
|
|
7
|
+
autocomplete and validation without affecting secret resolution
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
* **Reserved key filtering** — All `$`-prefixed keys are now excluded from
|
|
12
|
+
variable mappings. Previously only `$config` was filtered
|
|
13
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
1
17
|
## [0.1.1] - 2026-05-02
|
|
2
18
|
|
|
3
19
|
### Documentation
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [0.4.0] - 2026-05-03
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
* **Map-file JSON Schema support** — Map files can now include
|
|
6
|
+
`"$schema": "https://envilder.com/schema/map-file.v1.json"` for IDE
|
|
7
|
+
autocomplete and validation without affecting secret resolution
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
* **Reserved key filtering** — All `$`-prefixed keys are now excluded from
|
|
12
|
+
variable mappings. Previously only `$config` was filtered
|
|
13
|
+
([#218](https://github.com/macalbert/envilder/pull/218))
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
1
17
|
## [0.3.2] - 2026-04-18
|
|
2
18
|
|
|
3
19
|
### Changed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileVariableStore.d.ts","sourceRoot":"","sources":["../../../../../src/envilder/core/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBACa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEW,MAAM,EAAE,OAAO;IAO5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAK3D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"FileVariableStore.d.ts","sourceRoot":"","sources":["../../../../../src/envilder/core/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBACa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEW,MAAM,EAAE,OAAO;IAO5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAK3D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAchD,YAAY;IAmBpB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAc/D,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;IAiBhB,OAAO,CAAC,cAAc;CASvB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAkBxB"}
|
|
@@ -53,7 +53,13 @@ let FileVariableStore = class FileVariableStore {
|
|
|
53
53
|
const raw = yield this.readJsonFile(source);
|
|
54
54
|
const { $config } = raw, rest = __rest(raw, ["$config"]);
|
|
55
55
|
const config = $config && typeof $config === 'object' ? $config : {};
|
|
56
|
-
|
|
56
|
+
const mappings = {};
|
|
57
|
+
for (const [key, value] of Object.entries(rest)) {
|
|
58
|
+
if (!key.startsWith('$') && typeof value === 'string') {
|
|
59
|
+
mappings[key] = value;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return { config, mappings };
|
|
57
63
|
});
|
|
58
64
|
}
|
|
59
65
|
readJsonFile(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileVariableStore.js","sourceRoot":"","sources":["../../../../../src/envilder/core/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAG5B,YAAmC,MAAe;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEK,UAAU,CAAC,MAAc;;YAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEK,gBAAgB,CAAC,MAAc;;YACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,EAAE,OAAO,KAAc,GAAG,EAAZ,IAAI,UAAK,GAAG,EAA1B,WAAoB,CAAM,CAAC;YACjC,MAAM,MAAM,GACV,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,
|
|
1
|
+
{"version":3,"file":"FileVariableStore.js","sourceRoot":"","sources":["../../../../../src/envilder/core/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-file-parser.d.ts","sourceRoot":"","sources":["../../../../../src/sdks/nodejs/src/application/map-file-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAUlE;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"map-file-parser.d.ts","sourceRoot":"","sources":["../../../../../src/sdks/nodejs/src/application/map-file-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAUlE;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAqBlC,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;CAqBpB"}
|
|
@@ -15,33 +15,13 @@ export class MapFileParser {
|
|
|
15
15
|
* @returns Parsed config and variable mappings.
|
|
16
16
|
*/
|
|
17
17
|
parse(json) {
|
|
18
|
-
|
|
19
|
-
try {
|
|
20
|
-
raw = JSON.parse(json);
|
|
21
|
-
}
|
|
22
|
-
catch (_a) {
|
|
23
|
-
throw new Error('Invalid map file: content is not valid JSON');
|
|
24
|
-
}
|
|
25
|
-
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
26
|
-
throw new Error('Invalid map file: root must be a JSON object');
|
|
27
|
-
}
|
|
18
|
+
const raw = this.parseRawJson(json);
|
|
28
19
|
const mappings = new Map();
|
|
29
20
|
let config = {};
|
|
30
21
|
for (const [key, value] of Object.entries(raw)) {
|
|
31
|
-
if (key
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
const providerStr = typeof obj.provider === 'string'
|
|
35
|
-
? obj.provider.toLowerCase()
|
|
36
|
-
: undefined;
|
|
37
|
-
config = {
|
|
38
|
-
provider: providerStr ? PROVIDER_MAP[providerStr] : undefined,
|
|
39
|
-
vaultUrl: typeof obj.vaultUrl === 'string' ? obj.vaultUrl : undefined,
|
|
40
|
-
profile: typeof obj.profile === 'string' ? obj.profile : undefined,
|
|
41
|
-
};
|
|
42
|
-
if (providerStr && !config.provider) {
|
|
43
|
-
throw new Error(`Unknown provider: '${obj.provider}'. Supported: aws, azure`);
|
|
44
|
-
}
|
|
22
|
+
if (key.startsWith('$')) {
|
|
23
|
+
if (key === CONFIG_KEY) {
|
|
24
|
+
config = this.parseConfig(value);
|
|
45
25
|
}
|
|
46
26
|
continue;
|
|
47
27
|
}
|
|
@@ -51,5 +31,34 @@ export class MapFileParser {
|
|
|
51
31
|
}
|
|
52
32
|
return { config, mappings };
|
|
53
33
|
}
|
|
34
|
+
parseRawJson(json) {
|
|
35
|
+
let raw;
|
|
36
|
+
try {
|
|
37
|
+
raw = JSON.parse(json);
|
|
38
|
+
}
|
|
39
|
+
catch (_a) {
|
|
40
|
+
throw new Error('Invalid map file: content is not valid JSON');
|
|
41
|
+
}
|
|
42
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
43
|
+
throw new Error('Invalid map file: root must be a JSON object');
|
|
44
|
+
}
|
|
45
|
+
return raw;
|
|
46
|
+
}
|
|
47
|
+
parseConfig(value) {
|
|
48
|
+
if (typeof value !== 'object' || value === null) {
|
|
49
|
+
return {};
|
|
50
|
+
}
|
|
51
|
+
const obj = value;
|
|
52
|
+
const providerStr = typeof obj.provider === 'string' ? obj.provider.toLowerCase() : undefined;
|
|
53
|
+
const config = {
|
|
54
|
+
provider: providerStr ? PROVIDER_MAP[providerStr] : undefined,
|
|
55
|
+
vaultUrl: typeof obj.vaultUrl === 'string' ? obj.vaultUrl : undefined,
|
|
56
|
+
profile: typeof obj.profile === 'string' ? obj.profile : undefined,
|
|
57
|
+
};
|
|
58
|
+
if (providerStr && !config.provider) {
|
|
59
|
+
throw new Error(`Unknown provider: '${obj.provider}'. Supported: aws, azure`);
|
|
60
|
+
}
|
|
61
|
+
return config;
|
|
62
|
+
}
|
|
54
63
|
}
|
|
55
64
|
//# sourceMappingURL=map-file-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-file-parser.js","sourceRoot":"","sources":["../../../../../src/sdks/nodejs/src/application/map-file-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,YAAY,GAAuC;IACvD,GAAG,EAAE,kBAAkB,CAAC,GAAG;IAC3B,KAAK,EAAE,kBAAkB,CAAC,KAAK;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB;;;;;OAKG;IACH,KAAK,CAAC,IAAY;QAChB,IAAI,
|
|
1
|
+
{"version":3,"file":"map-file-parser.js","sourceRoot":"","sources":["../../../../../src/sdks/nodejs/src/application/map-file-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,MAAM,YAAY,GAAuC;IACvD,GAAG,EAAE,kBAAkB,CAAC,GAAG;IAC3B,KAAK,EAAE,kBAAkB,CAAC,KAAK;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB;;;;;OAKG;IACH,KAAK,CAAC,IAAY;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,IAAI,MAAM,GAAkB,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;oBACvB,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,GAA8B,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,KAAc;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACrE,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;QAEF,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,CAAC,QAAQ,0BAA0B,CAC7D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "envilder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "A CLI and GitHub Action that securely centralizes your environment variables from AWS SSM or Azure Key Vault as a single source of truth",
|
|
5
5
|
"homepage": "https://envilder.com",
|
|
6
6
|
"author": {
|
|
@@ -106,6 +106,8 @@
|
|
|
106
106
|
"@types/node": "catalog:",
|
|
107
107
|
"@vercel/ncc": "^0.38.4",
|
|
108
108
|
"@vitest/coverage-v8": "catalog:",
|
|
109
|
+
"ajv": "^8.20.0",
|
|
110
|
+
"ajv-formats": "^3.0.1",
|
|
109
111
|
"glob": "^13.0.6",
|
|
110
112
|
"lefthook": "^2.1.4",
|
|
111
113
|
"secretlint": "^12.3.1",
|