envilder 0.5.3 → 0.5.4
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/lib/Cli.d.ts.map +1 -1
- package/lib/Cli.js +8 -33
- package/lib/Cli.js.map +1 -1
- package/lib/cli/application/EnvilderHandler.d.ts +2 -1
- package/lib/cli/application/EnvilderHandler.d.ts.map +1 -1
- package/lib/cli/application/EnvilderHandler.js +37 -28
- package/lib/cli/application/EnvilderHandler.js.map +1 -1
- package/lib/cli/domain/EnvilderBuilder.js +1 -1
- package/lib/cli/domain/EnvilderBuilder.js.map +1 -1
- package/lib/cli/domain/ports/IEnvFileManager.d.ts +3 -3
- package/lib/cli/domain/ports/IEnvFileManager.d.ts.map +1 -1
- package/lib/cli/infrastructure/{AwsSsmStoreSecrets.d.ts → AwsSsmSecretProvider.d.ts} +1 -1
- package/lib/cli/infrastructure/AwsSsmSecretProvider.d.ts.map +1 -0
- package/lib/cli/infrastructure/{AwsSsmStoreSecrets.js → AwsSsmSecretProvider.js} +1 -1
- package/lib/cli/infrastructure/AwsSsmSecretProvider.js.map +1 -0
- package/lib/cli/infrastructure/EnvFileManager.d.ts +4 -3
- package/lib/cli/infrastructure/EnvFileManager.d.ts.map +1 -1
- package/lib/cli/infrastructure/EnvFileManager.js +44 -29
- package/lib/cli/infrastructure/EnvFileManager.js.map +1 -1
- package/lib/cli/infrastructure/PackageJsonFinder.d.ts +5 -0
- package/lib/cli/infrastructure/PackageJsonFinder.d.ts.map +1 -0
- package/lib/cli/infrastructure/PackageJsonFinder.js +38 -0
- package/lib/cli/infrastructure/PackageJsonFinder.js.map +1 -0
- package/package.json +6 -5
- package/lib/cli/infrastructure/AwsSsmStoreSecrets.d.ts.map +0 -1
- package/lib/cli/infrastructure/AwsSsmStoreSecrets.js.map +0 -1
package/lib/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":";AAOA;;;;;;GAMG;AACH,wBAAsB,IAAI,kBA4BzB"}
|
package/lib/Cli.js
CHANGED
|
@@ -8,41 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
12
11
|
import { dirname, join } from 'node:path';
|
|
13
12
|
import { fileURLToPath } from 'node:url';
|
|
14
13
|
import { Command } from 'commander';
|
|
15
14
|
import { EnvilderBuilder } from './cli/domain/EnvilderBuilder.js';
|
|
16
|
-
|
|
17
|
-
const __dirname = dirname(__filename);
|
|
18
|
-
/**
|
|
19
|
-
* Find the package.json file by traversing up directories
|
|
20
|
-
* @param startDir The directory to start searching from
|
|
21
|
-
* @param maxDepth Maximum number of parent directories to check
|
|
22
|
-
* @returns Path to package.json if found, or null if not found
|
|
23
|
-
*/
|
|
24
|
-
function findPackageJson(startDir, maxDepth = 5) {
|
|
25
|
-
let currentDir = startDir;
|
|
26
|
-
let depth = 0;
|
|
27
|
-
while (depth < maxDepth) {
|
|
28
|
-
const packagePath = join(currentDir, 'package.json');
|
|
29
|
-
if (existsSync(packagePath)) {
|
|
30
|
-
return packagePath;
|
|
31
|
-
}
|
|
32
|
-
// Go up one directory
|
|
33
|
-
const parentDir = dirname(currentDir);
|
|
34
|
-
if (parentDir === currentDir) {
|
|
35
|
-
// We've reached the root
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
currentDir = parentDir;
|
|
39
|
-
depth++;
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
// Get package.json path by searching up from current file
|
|
44
|
-
const packageJsonPath = findPackageJson(__dirname) || join(__dirname, '..', '..', 'package.json');
|
|
45
|
-
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
15
|
+
import { PackageJsonFinder } from './cli/infrastructure/PackageJsonFinder.js';
|
|
46
16
|
/**
|
|
47
17
|
* Parses CLI arguments and runs the environment file generator.
|
|
48
18
|
*
|
|
@@ -53,10 +23,11 @@ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
|
53
23
|
export function main() {
|
|
54
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
25
|
const program = new Command();
|
|
26
|
+
const version = yield getVersion();
|
|
56
27
|
program
|
|
57
28
|
.name('envilder')
|
|
58
29
|
.description('A CLI tool to generate .env files from AWS SSM parameters')
|
|
59
|
-
.version(
|
|
30
|
+
.version(version)
|
|
60
31
|
.requiredOption('--map <path>', 'Path to the JSON file with environment variable mapping')
|
|
61
32
|
.requiredOption('--envfile <path>', 'Path to the .env file to be generated')
|
|
62
33
|
.option('--profile <name>', 'AWS CLI profile to use');
|
|
@@ -72,7 +43,11 @@ export function main() {
|
|
|
72
43
|
yield envilder.run(options.map, options.envfile);
|
|
73
44
|
});
|
|
74
45
|
}
|
|
75
|
-
|
|
46
|
+
function getVersion() {
|
|
47
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
48
|
+
const __dirname = dirname(__filename);
|
|
49
|
+
return new PackageJsonFinder().readPackageJsonVersion(join(__dirname, '../package.json'));
|
|
50
|
+
}
|
|
76
51
|
main().catch((error) => {
|
|
77
52
|
console.error('🚨 Uh-oh! Looks like Mario fell into the wrong pipe! 🍄💥');
|
|
78
53
|
console.error(error);
|
package/lib/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,UAAgB,IAAI;;QACxB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QAEnC,OAAO;aACJ,IAAI,CAAC,UAAU,CAAC;aAChB,WAAW,CAAC,2DAA2D,CAAC;aACxE,OAAO,CAAC,OAAO,CAAC;aAChB,cAAc,CACb,cAAc,EACd,yDAAyD,CAC1D;aACA,cAAc,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;aAC3E,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;QAExD,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE;aACrC,sBAAsB,EAAE;aACxB,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;aAChC,MAAM,EAAE,CAAC;QAEZ,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CAAA;AAED,SAAS,UAAU;IACjB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,IAAI,iBAAiB,EAAE,CAAC,sBAAsB,CACnD,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -13,6 +13,7 @@ export declare class Envilder {
|
|
|
13
13
|
* @param envFilePath - Path to the local environment file to read and update.
|
|
14
14
|
*/
|
|
15
15
|
run(mapPath: string, envFilePath: string): Promise<void>;
|
|
16
|
-
private
|
|
16
|
+
private envild;
|
|
17
|
+
private processSecret;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=EnvilderHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvilderHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/application/EnvilderHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe;IAKtE;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"EnvilderHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/application/EnvilderHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe;IAKtE;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;YAmBhC,MAAM;YAuBN,aAAa;CAqB5B"}
|
|
@@ -22,41 +22,50 @@ export class Envilder {
|
|
|
22
22
|
*/
|
|
23
23
|
run(mapPath, envFilePath) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
try {
|
|
26
|
+
const requestVariables = yield this.envFileManager.loadMapFile(mapPath);
|
|
27
|
+
const currentVariables = yield this.envFileManager.loadEnvFile(envFilePath);
|
|
28
|
+
const envilded = yield this.envild(requestVariables, currentVariables);
|
|
29
|
+
yield this.envFileManager.saveEnvFile(envFilePath, envilded);
|
|
30
|
+
console.log(`Environment File generated at '${envFilePath}'`);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
34
|
+
console.error(`Failed to generate environment file: ${errorMessage}`);
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
30
37
|
});
|
|
31
38
|
}
|
|
32
|
-
|
|
39
|
+
envild(paramMap, existingEnvVariables) {
|
|
33
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (!value) {
|
|
40
|
-
console.error(`Warning: No value found for: '${secretName}'`);
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
existingEnvVariables[envVar] = value;
|
|
44
|
-
console.log(`${envVar}=${value.length > 10 ? '*'.repeat(value.length - 3) + value.slice(-3) : '*'.repeat(value.length)}`);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error(`Error fetching parameter: '${secretName}'`);
|
|
48
|
-
errors.push(`ParameterNotFound: ${secretName}`);
|
|
49
|
-
}
|
|
41
|
+
const errors = [];
|
|
42
|
+
for (const [envVar, secretName] of Object.entries(paramMap)) {
|
|
43
|
+
const error = yield this.processSecret(envVar, secretName, existingEnvVariables);
|
|
44
|
+
if (error) {
|
|
45
|
+
errors.push(error);
|
|
50
46
|
}
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
}
|
|
48
|
+
if (errors.length > 0) {
|
|
49
|
+
throw new Error(`Some parameters could not be fetched:\n${errors.join('\n')}`);
|
|
50
|
+
}
|
|
51
|
+
return existingEnvVariables;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
processSecret(envVar, secretName, existingEnvVariables) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
try {
|
|
57
|
+
const value = yield this.keyVault.getSecret(secretName);
|
|
58
|
+
if (!value) {
|
|
59
|
+
console.error(`Warning: No value found for: '${secretName}'`);
|
|
60
|
+
return null;
|
|
53
61
|
}
|
|
54
|
-
|
|
62
|
+
existingEnvVariables[envVar] = value;
|
|
63
|
+
console.log(`${envVar}=${value.length > 10 ? '*'.repeat(value.length - 3) + value.slice(-3) : '*'.repeat(value.length)}`);
|
|
64
|
+
return null;
|
|
55
65
|
}
|
|
56
66
|
catch (error) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
throw error;
|
|
67
|
+
console.error(`Error fetching parameter: '${secretName}'`);
|
|
68
|
+
return `ParameterNotFound: ${secretName}`;
|
|
60
69
|
}
|
|
61
70
|
});
|
|
62
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvilderHandler.js","sourceRoot":"","sources":["../../../src/cli/application/EnvilderHandler.ts"],"names":[],"mappings":";;;;;;;;;AAGA,MAAM,OAAO,QAAQ;IAInB,YAAY,QAAyB,EAAE,cAA+B;QACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACG,GAAG,CAAC,OAAe,EAAE,WAAmB;;YAC5C,MAAM,
|
|
1
|
+
{"version":3,"file":"EnvilderHandler.js","sourceRoot":"","sources":["../../../src/cli/application/EnvilderHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SSM } from '@aws-sdk/client-ssm';
|
|
2
2
|
import { fromIni } from '@aws-sdk/credential-providers';
|
|
3
3
|
import { Envilder } from '../application/EnvilderHandler.js';
|
|
4
|
-
import { AwsSsmSecretProvider } from '../infrastructure/
|
|
4
|
+
import { AwsSsmSecretProvider } from '../infrastructure/AwsSsmSecretProvider.js';
|
|
5
5
|
import { EnvFileManager } from '../infrastructure/EnvFileManager.js';
|
|
6
6
|
export class EnvilderBuilder {
|
|
7
7
|
static build() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvilderBuilder.js","sourceRoot":"","sources":["../../../src/cli/domain/EnvilderBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"EnvilderBuilder.js","sourceRoot":"","sources":["../../../src/cli/domain/EnvilderBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAIrE,MAAM,OAAO,eAAe;IAI1B,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,WAA4B;QAC7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,QAAyB;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,MAAM,GAAG,GACP,OAAO,IAAI,IAAI;YACb,CAAC,CAAC,IAAI,GAAG,EAAE;YACX,CAAC,CAAC,IAAI,GAAG,CAAC;gBACN,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;aACxB,CAAC,CAAC;QAE5B,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface IEnvFileManager {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
loadMapFile(mapPath: string): Promise<Record<string, string>>;
|
|
3
|
+
loadEnvFile(envFilePath: string): Promise<Record<string, string>>;
|
|
4
|
+
saveEnvFile(envFilePath: string, envVariables: Record<string, string>): Promise<void>;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=IEnvFileManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IEnvFileManager.d.ts","sourceRoot":"","sources":["../../../../src/cli/domain/ports/IEnvFileManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"IEnvFileManager.d.ts","sourceRoot":"","sources":["../../../../src/cli/domain/ports/IEnvFileManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsSsmSecretProvider.d.ts","sourceRoot":"","sources":["../../../src/cli/infrastructure/AwsSsmSecretProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,GAAG,CAAM;gBAEL,GAAG,EAAE,GAAG;IAId,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAQ3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsSsmSecretProvider.js","sourceRoot":"","sources":["../../../src/cli/infrastructure/AwsSsmSecretProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,qBAAqB,CAAC;AAGpE,MAAM,OAAO,oBAAoB;IAG/B,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEK,SAAS,CAAC,IAAY;;YAC1B,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;gBACtC,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC;QAC1B,CAAC;KAAA;CACF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { IEnvFileManager } from '../domain/ports/IEnvFileManager';
|
|
2
2
|
export declare class EnvFileManager implements IEnvFileManager {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
loadMapFile(mapPath: string): Promise<Record<string, string>>;
|
|
4
|
+
loadEnvFile(envFilePath: string): Promise<Record<string, string>>;
|
|
5
|
+
saveEnvFile(envFilePath: string, envVariables: Record<string, string>): Promise<void>;
|
|
6
|
+
private escapeEnvValue;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=EnvFileManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvFileManager.d.ts","sourceRoot":"","sources":["../../../src/cli/infrastructure/EnvFileManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,cAAe,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"EnvFileManager.d.ts","sourceRoot":"","sources":["../../../src/cli/infrastructure/EnvFileManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,cAAe,YAAW,eAAe;IAC9C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAU7D,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAajE,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;IAOhB,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -1,37 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import * as fs from 'node:fs/promises';
|
|
2
11
|
import * as dotenv from 'dotenv';
|
|
3
12
|
export class EnvFileManager {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
loadMapFile(mapPath) {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
const content = yield fs.readFile(mapPath, 'utf-8');
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(content);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
console.error(`Error parsing JSON from ${mapPath}`);
|
|
21
|
+
throw new Error(`Invalid JSON in parameter map file: ${mapPath}`);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
13
24
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
loadEnvFile(envFilePath) {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const envVariables = {};
|
|
28
|
+
try {
|
|
29
|
+
yield fs.access(envFilePath);
|
|
30
|
+
}
|
|
31
|
+
catch (_a) {
|
|
32
|
+
return envVariables;
|
|
33
|
+
}
|
|
34
|
+
const existingEnvContent = yield fs.readFile(envFilePath, 'utf-8');
|
|
35
|
+
const parsedEnv = dotenv.parse(existingEnvContent);
|
|
36
|
+
Object.assign(envVariables, parsedEnv);
|
|
17
37
|
return envVariables;
|
|
18
|
-
}
|
|
19
|
-
const existingEnvContent = fs.readFileSync(envFilePath, 'utf-8');
|
|
20
|
-
const parsedEnv = dotenv.parse(existingEnvContent);
|
|
21
|
-
Object.assign(envVariables, parsedEnv);
|
|
22
|
-
return envVariables;
|
|
38
|
+
});
|
|
23
39
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.
|
|
27
|
-
|
|
28
|
-
.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
fs.writeFileSync(envFilePath, envContent);
|
|
40
|
+
saveEnvFile(envFilePath, envVariables) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const envContent = Object.entries(envVariables)
|
|
43
|
+
.map(([key, value]) => `${key}=${this.escapeEnvValue(value)}`)
|
|
44
|
+
.join('\n');
|
|
45
|
+
yield fs.writeFile(envFilePath, envContent);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
escapeEnvValue(value) {
|
|
49
|
+
return value.replace(/(\r\n|\n|\r)/g, '\\n');
|
|
35
50
|
}
|
|
36
51
|
}
|
|
37
52
|
//# sourceMappingURL=EnvFileManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvFileManager.js","sourceRoot":"","sources":["../../../src/cli/infrastructure/EnvFileManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"EnvFileManager.js","sourceRoot":"","sources":["../../../src/cli/infrastructure/EnvFileManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,MAAM,OAAO,cAAc;IACnB,WAAW,CAAC,OAAe;;YAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;KAAA;IAEK,WAAW,CAAC,WAAmB;;YACnC,MAAM,YAAY,GAA2B,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACvC,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAEK,WAAW,CACf,WAAmB,EACnB,YAAoC;;YAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEO,cAAc,CAAC,KAAa;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageJsonFinder.d.ts","sourceRoot":"","sources":["../../../src/cli/infrastructure/PackageJsonFinder.ts"],"names":[],"mappings":"AAEA,qBAAa,iBAAiB;IACtB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBtE,OAAO,CAAC,aAAa;CAMtB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { promises as fs } from 'node:fs';
|
|
11
|
+
export class PackageJsonFinder {
|
|
12
|
+
readPackageJsonVersion(packageJsonPath) {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
try {
|
|
15
|
+
yield fs.access(packageJsonPath);
|
|
16
|
+
const content = yield fs.readFile(packageJsonPath, 'utf8');
|
|
17
|
+
const pkg = JSON.parse(content);
|
|
18
|
+
if (typeof pkg.version !== 'string') {
|
|
19
|
+
throw new Error('Version field not found in package.json');
|
|
20
|
+
}
|
|
21
|
+
return pkg.version;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (this.isEnoentError(err)) {
|
|
25
|
+
throw new Error('package.json not found');
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`Failed to read or parse package.json: ${err instanceof Error ? err.message : String(err)}`);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
isEnoentError(err) {
|
|
32
|
+
if (!(err instanceof Error)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return 'code' in err && err.code === 'ENOENT';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PackageJsonFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageJsonFinder.js","sourceRoot":"","sources":["../../../src/cli/infrastructure/PackageJsonFinder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,OAAO,iBAAiB;IACtB,sBAAsB,CAAC,eAAuB;;YAClD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEvD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBAED,OAAO,GAAG,CAAC,OAAO,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,IAAI,KAAK,CACb,yCAAyC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5F,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEO,aAAa,CAAC,GAAY;QAChC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,IAAI,GAAG,IAAK,GAAyB,CAAC,IAAI,KAAK,QAAQ,CAAC;IACvE,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "envilder",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "A CLI that securely centralizes your environment variables from AWS SSM as a single source of truth",
|
|
5
5
|
"main": "./lib/Cli.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"envilder": "lib/Cli.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"clean": "
|
|
10
|
+
"clean": "npm cache clean --force && npx rimraf lib && npx rimraf coverage && npx rimraf node_modules",
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"local:install": "npm run build && node --loader ts-node/esm scripts/pack-and-install.ts",
|
|
13
13
|
"local:test-run": "npm run build && node lib/cli/cli.js --map=tests/cli/sample/param-map.json --envfile=tests/cli/sample/autogenerated.env",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"format:write": "biome format --write",
|
|
16
16
|
"lint": "secretlint \"**/*\" && biome check --write && tsc --noEmit",
|
|
17
17
|
"lint:fix": "biome lint --fix",
|
|
18
|
-
"test": "vitest run --reporter
|
|
18
|
+
"test": "vitest run --reporter=verbose --coverage",
|
|
19
|
+
"test:ci": "vitest run --reporter=verbose --reporter=junit --coverage --outputFile=coverage/junit/test-results.xml",
|
|
19
20
|
"npm-publish": "npm run lint && npm run build && npm run test && npm pack --dry-run && npm publish",
|
|
20
21
|
"npm-release-patch": "npm version patch",
|
|
21
22
|
"npm-release-minor": "npm version minor",
|
|
@@ -69,9 +70,9 @@
|
|
|
69
70
|
"@biomejs/biome": "^1.9.1",
|
|
70
71
|
"@secretlint/secretlint-rule-preset-recommend": "^9.3.2",
|
|
71
72
|
"@testcontainers/localstack": "^11.0.1",
|
|
73
|
+
"@types/glob": "^8.1.0",
|
|
72
74
|
"@vitest/coverage-v8": "^3.1.1",
|
|
73
|
-
"
|
|
74
|
-
"rimraf": "^6.0.1",
|
|
75
|
+
"glob": "^11.0.2",
|
|
75
76
|
"secretlint": "^9.3.2",
|
|
76
77
|
"testcontainers": "^11.0.1",
|
|
77
78
|
"ts-node": "^10.9.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AwsSsmStoreSecrets.d.ts","sourceRoot":"","sources":["../../../src/cli/infrastructure/AwsSsmStoreSecrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,GAAG,CAAM;gBAEL,GAAG,EAAE,GAAG;IAId,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAQ3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AwsSsmStoreSecrets.js","sourceRoot":"","sources":["../../../src/cli/infrastructure/AwsSsmStoreSecrets.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,qBAAqB,CAAC;AAGpE,MAAM,OAAO,oBAAoB;IAG/B,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEK,SAAS,CAAC,IAAY;;YAC1B,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;gBACtC,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC;QAC1B,CAAC;KAAA;CACF"}
|