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.
Files changed (26) hide show
  1. package/lib/Cli.d.ts.map +1 -1
  2. package/lib/Cli.js +8 -33
  3. package/lib/Cli.js.map +1 -1
  4. package/lib/cli/application/EnvilderHandler.d.ts +2 -1
  5. package/lib/cli/application/EnvilderHandler.d.ts.map +1 -1
  6. package/lib/cli/application/EnvilderHandler.js +37 -28
  7. package/lib/cli/application/EnvilderHandler.js.map +1 -1
  8. package/lib/cli/domain/EnvilderBuilder.js +1 -1
  9. package/lib/cli/domain/EnvilderBuilder.js.map +1 -1
  10. package/lib/cli/domain/ports/IEnvFileManager.d.ts +3 -3
  11. package/lib/cli/domain/ports/IEnvFileManager.d.ts.map +1 -1
  12. package/lib/cli/infrastructure/{AwsSsmStoreSecrets.d.ts → AwsSsmSecretProvider.d.ts} +1 -1
  13. package/lib/cli/infrastructure/AwsSsmSecretProvider.d.ts.map +1 -0
  14. package/lib/cli/infrastructure/{AwsSsmStoreSecrets.js → AwsSsmSecretProvider.js} +1 -1
  15. package/lib/cli/infrastructure/AwsSsmSecretProvider.js.map +1 -0
  16. package/lib/cli/infrastructure/EnvFileManager.d.ts +4 -3
  17. package/lib/cli/infrastructure/EnvFileManager.d.ts.map +1 -1
  18. package/lib/cli/infrastructure/EnvFileManager.js +44 -29
  19. package/lib/cli/infrastructure/EnvFileManager.js.map +1 -1
  20. package/lib/cli/infrastructure/PackageJsonFinder.d.ts +5 -0
  21. package/lib/cli/infrastructure/PackageJsonFinder.d.ts.map +1 -0
  22. package/lib/cli/infrastructure/PackageJsonFinder.js +38 -0
  23. package/lib/cli/infrastructure/PackageJsonFinder.js.map +1 -0
  24. package/package.json +6 -5
  25. package/lib/cli/infrastructure/AwsSsmStoreSecrets.d.ts.map +0 -1
  26. 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":";AA6CA;;;;;;GAMG;AACH,wBAAsB,IAAI,kBA0BzB"}
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
- const __filename = fileURLToPath(import.meta.url);
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(packageJson.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
- // Execute the CLI
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,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,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;AAElE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;IACrD,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,yBAAyB;YACzB,MAAM;QACR,CAAC;QAED,UAAU,GAAG,SAAS,CAAC;QACvB,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0DAA0D;AAC1D,MAAM,eAAe,GACnB,eAAe,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,UAAgB,IAAI;;QACxB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO;aACJ,IAAI,CAAC,UAAU,CAAC;aAChB,WAAW,CAAC,2DAA2D,CAAC;aACxE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;aAC5B,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,kBAAkB;AAClB,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"}
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 fetchAndUpdateEnvVariables;
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;YAYhC,0BAA0B;CAoCzC"}
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
- const paramMap = this.envFileManager.loadParamMap(mapPath);
26
- const existingEnvVariables = this.envFileManager.loadExistingEnvVariables(envFilePath);
27
- const updatedEnvVariables = yield this.fetchAndUpdateEnvVariables(paramMap, existingEnvVariables);
28
- this.envFileManager.writeEnvFile(envFilePath, updatedEnvVariables);
29
- console.log(`Environment File generated at '${envFilePath}'`);
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
- fetchAndUpdateEnvVariables(paramMap, existingEnvVariables) {
39
+ envild(paramMap, existingEnvVariables) {
33
40
  return __awaiter(this, void 0, void 0, function* () {
34
- try {
35
- const errors = [];
36
- for (const [envVar, secretName] of Object.entries(paramMap)) {
37
- try {
38
- const value = yield this.keyVault.getSecret(secretName);
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
- if (errors.length > 0) {
52
- throw new Error(`Some parameters could not be fetched:\n${errors.join('\n')}`);
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
- return existingEnvVariables;
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
- const errorMessage = error instanceof Error ? error.message : String(error);
58
- console.error(`Failed to generate environment file: ${errorMessage}`);
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,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,oBAAoB,GACxB,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAC/D,QAAQ,EACR,oBAAoB,CACrB,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;QAChE,CAAC;KAAA;IAEa,0BAA0B,CACtC,QAAgC,EAChC,oBAA4C;;YAE5C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBACxD,IAAI,CAAC,KAAK,EAAE,CAAC;4BACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,UAAU,GAAG,CAAC,CAAC;4BAC9D,SAAS;wBACX,CAAC;wBACD,oBAAoB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;wBACrC,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAC7G,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,GAAG,CAAC,CAAC;wBAC3D,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9D,CAAC;gBACJ,CAAC;gBAED,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO,CAAC,KAAK,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;gBACtE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;CACF"}
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/AwsSsmStoreSecrets.js';
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,yCAAyC,CAAC;AAC/E,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
+ {"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
- loadParamMap(mapPath: string): Record<string, string>;
3
- loadExistingEnvVariables(envFilePath: string): Record<string, string>;
4
- writeEnvFile(envFilePath: string, envVariables: Record<string, string>): void;
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,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC/E"}
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"}
@@ -5,4 +5,4 @@ export declare class AwsSsmSecretProvider implements ISecretProvider {
5
5
  constructor(ssm: SSM);
6
6
  getSecret(name: string): Promise<string | undefined>;
7
7
  }
8
- //# sourceMappingURL=AwsSsmStoreSecrets.d.ts.map
8
+ //# sourceMappingURL=AwsSsmSecretProvider.d.ts.map
@@ -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"}
@@ -23,4 +23,4 @@ export class AwsSsmSecretProvider {
23
23
  });
24
24
  }
25
25
  }
26
- //# sourceMappingURL=AwsSsmStoreSecrets.js.map
26
+ //# sourceMappingURL=AwsSsmSecretProvider.js.map
@@ -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
- loadParamMap(mapPath: string): Record<string, string>;
4
- loadExistingEnvVariables(envFilePath: string): Record<string, string>;
5
- writeEnvFile(envFilePath: string, envVariables: Record<string, string>): void;
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;IACpD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrD,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWrE,YAAY,CACV,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,IAAI;CAYR"}
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
- import * as fs from 'node:fs';
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
- loadParamMap(mapPath) {
5
- const content = fs.readFileSync(mapPath, 'utf-8');
6
- try {
7
- return JSON.parse(content);
8
- }
9
- catch (error) {
10
- console.error(`Error parsing JSON from ${mapPath}`);
11
- throw new Error(`Invalid JSON in parameter map file: ${mapPath}`);
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
- loadExistingEnvVariables(envFilePath) {
15
- const envVariables = {};
16
- if (!fs.existsSync(envFilePath)) {
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
- writeEnvFile(envFilePath, envVariables) {
25
- const envContent = Object.entries(envVariables)
26
- .map(([key, value]) => {
27
- const escapedValue = value
28
- .replace(/\\/g, '\\\\')
29
- .replace(/(\r\n|\n|\r)/g, '\\n')
30
- .replace(/"/g, '\\"');
31
- return `${key}=${escapedValue}`;
32
- })
33
- .join('\n');
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,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,MAAM,OAAO,cAAc;IACzB,YAAY,CAAC,OAAe;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,WAAmB;QAC1C,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,YAAY,CACV,WAAmB,EACnB,YAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,MAAM,YAAY,GAAG,KAAK;iBACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;iBACtB,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;iBAC/B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxB,OAAO,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;CACF"}
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,5 @@
1
+ export declare class PackageJsonFinder {
2
+ readPackageJsonVersion(packageJsonPath: string): Promise<string>;
3
+ private isEnoentError;
4
+ }
5
+ //# sourceMappingURL=PackageJsonFinder.d.ts.map
@@ -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",
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": "jest --clearCache && npm cache clean --force && rimraf lib && rimraf coverage && rimraf node_modules",
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 verbose --coverage",
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
- "jest": "^29.7.0",
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"}