envilder 0.5.6 → 0.6.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.
Files changed (115) hide show
  1. package/README.md +316 -121
  2. package/ROADMAP.md +24 -8
  3. package/lib/apps/cli/Cli.d.ts +3 -0
  4. package/lib/apps/cli/Cli.d.ts.map +1 -0
  5. package/lib/apps/cli/Cli.js +79 -0
  6. package/lib/apps/cli/Cli.js.map +1 -0
  7. package/lib/envilder/application/dispatch/DispatchActionCommand.d.ts +15 -0
  8. package/lib/envilder/application/dispatch/DispatchActionCommand.d.ts.map +1 -0
  9. package/lib/envilder/application/dispatch/DispatchActionCommand.js +26 -0
  10. package/lib/envilder/application/dispatch/DispatchActionCommand.js.map +1 -0
  11. package/lib/envilder/application/dispatch/DispatchActionCommandHandler.d.ts +16 -0
  12. package/lib/envilder/application/dispatch/DispatchActionCommandHandler.d.ts.map +1 -0
  13. package/lib/envilder/application/dispatch/DispatchActionCommandHandler.js +68 -0
  14. package/lib/envilder/application/dispatch/DispatchActionCommandHandler.js.map +1 -0
  15. package/lib/envilder/application/dispatch/builders/DispatchActionCommandHandlerBuilder.d.ts +15 -0
  16. package/lib/envilder/application/dispatch/builders/DispatchActionCommandHandlerBuilder.d.ts.map +1 -0
  17. package/lib/envilder/application/dispatch/builders/DispatchActionCommandHandlerBuilder.js +38 -0
  18. package/lib/envilder/application/dispatch/builders/DispatchActionCommandHandlerBuilder.js.map +1 -0
  19. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.d.ts +7 -0
  20. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.d.ts.map +1 -0
  21. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.js +10 -0
  22. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.js.map +1 -0
  23. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.d.ts +24 -0
  24. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.d.ts.map +1 -0
  25. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.js +92 -0
  26. package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.js.map +1 -0
  27. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.d.ts +7 -0
  28. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.d.ts.map +1 -0
  29. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.js +10 -0
  30. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.js.map +1 -0
  31. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.d.ts +22 -0
  32. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.d.ts.map +1 -0
  33. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.js +74 -0
  34. package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.js.map +1 -0
  35. package/lib/envilder/application/pushSingle/PushSingleCommand.d.ts +8 -0
  36. package/lib/envilder/application/pushSingle/PushSingleCommand.d.ts.map +1 -0
  37. package/lib/envilder/application/pushSingle/PushSingleCommand.js +11 -0
  38. package/lib/envilder/application/pushSingle/PushSingleCommand.js.map +1 -0
  39. package/lib/envilder/application/pushSingle/PushSingleCommandHandler.d.ts +15 -0
  40. package/lib/envilder/application/pushSingle/PushSingleCommandHandler.d.ts.map +1 -0
  41. package/lib/envilder/application/pushSingle/PushSingleCommandHandler.js +37 -0
  42. package/lib/envilder/application/pushSingle/PushSingleCommandHandler.js.map +1 -0
  43. package/lib/envilder/domain/CliOptions.d.ts +34 -0
  44. package/lib/envilder/domain/CliOptions.d.ts.map +1 -0
  45. package/lib/envilder/domain/CliOptions.js +2 -0
  46. package/lib/envilder/domain/CliOptions.js.map +1 -0
  47. package/lib/envilder/domain/EnvironmentVariable.d.ts +37 -0
  48. package/lib/envilder/domain/EnvironmentVariable.d.ts.map +1 -0
  49. package/lib/envilder/domain/EnvironmentVariable.js +59 -0
  50. package/lib/envilder/domain/EnvironmentVariable.js.map +1 -0
  51. package/lib/envilder/domain/OperationMode.d.ts +6 -0
  52. package/lib/envilder/domain/OperationMode.d.ts.map +1 -0
  53. package/lib/envilder/domain/OperationMode.js +7 -0
  54. package/lib/envilder/domain/OperationMode.js.map +1 -0
  55. package/lib/envilder/domain/errors/DomainErrors.d.ts +34 -0
  56. package/lib/envilder/domain/errors/DomainErrors.d.ts.map +1 -0
  57. package/lib/envilder/domain/errors/DomainErrors.js +40 -0
  58. package/lib/envilder/domain/errors/DomainErrors.js.map +1 -0
  59. package/lib/envilder/domain/ports/IEnvFileManager.d.ts.map +1 -0
  60. package/lib/envilder/domain/ports/IEnvFileManager.js.map +1 -0
  61. package/lib/envilder/domain/ports/ILogger.d.ts.map +1 -0
  62. package/lib/envilder/domain/ports/ILogger.js.map +1 -0
  63. package/lib/envilder/domain/ports/ISecretProvider.d.ts +5 -0
  64. package/lib/envilder/domain/ports/ISecretProvider.d.ts.map +1 -0
  65. package/lib/envilder/domain/ports/ISecretProvider.js.map +1 -0
  66. package/lib/{cli/infrastructure → envilder/infrastructure/Aws}/AwsSsmSecretProvider.d.ts +2 -1
  67. package/lib/envilder/infrastructure/Aws/AwsSsmSecretProvider.d.ts.map +1 -0
  68. package/lib/envilder/infrastructure/Aws/AwsSsmSecretProvider.js +49 -0
  69. package/lib/envilder/infrastructure/Aws/AwsSsmSecretProvider.js.map +1 -0
  70. package/lib/{cli/infrastructure → envilder/infrastructure/EnvManager}/EnvFileManager.d.ts +2 -2
  71. package/lib/envilder/infrastructure/EnvManager/EnvFileManager.d.ts.map +1 -0
  72. package/lib/{cli/infrastructure → envilder/infrastructure/EnvManager}/EnvFileManager.js +24 -8
  73. package/lib/envilder/infrastructure/EnvManager/EnvFileManager.js.map +1 -0
  74. package/lib/{cli/infrastructure → envilder/infrastructure/Logger}/ConsoleLogger.d.ts +1 -1
  75. package/lib/envilder/infrastructure/Logger/ConsoleLogger.d.ts.map +1 -0
  76. package/lib/envilder/infrastructure/Logger/ConsoleLogger.js.map +1 -0
  77. package/lib/envilder/infrastructure/VersionFinder/PackageJsonFinder.d.ts.map +1 -0
  78. package/lib/envilder/infrastructure/VersionFinder/PackageJsonFinder.js.map +1 -0
  79. package/package.json +7 -5
  80. package/lib/Cli.d.ts +0 -10
  81. package/lib/Cli.d.ts.map +0 -1
  82. package/lib/Cli.js +0 -58
  83. package/lib/Cli.js.map +0 -1
  84. package/lib/cli/application/EnvilderHandler.d.ts +0 -21
  85. package/lib/cli/application/EnvilderHandler.d.ts.map +0 -1
  86. package/lib/cli/application/EnvilderHandler.js +0 -74
  87. package/lib/cli/application/EnvilderHandler.js.map +0 -1
  88. package/lib/cli/application/builders/EnvilderBuilder.d.ts +0 -18
  89. package/lib/cli/application/builders/EnvilderBuilder.d.ts.map +0 -1
  90. package/lib/cli/application/builders/EnvilderBuilder.js +0 -53
  91. package/lib/cli/application/builders/EnvilderBuilder.js.map +0 -1
  92. package/lib/cli/domain/ports/IEnvFileManager.d.ts.map +0 -1
  93. package/lib/cli/domain/ports/IEnvFileManager.js.map +0 -1
  94. package/lib/cli/domain/ports/ILogger.d.ts.map +0 -1
  95. package/lib/cli/domain/ports/ILogger.js.map +0 -1
  96. package/lib/cli/domain/ports/ISecretProvider.d.ts +0 -4
  97. package/lib/cli/domain/ports/ISecretProvider.d.ts.map +0 -1
  98. package/lib/cli/domain/ports/ISecretProvider.js.map +0 -1
  99. package/lib/cli/infrastructure/AwsSsmSecretProvider.d.ts.map +0 -1
  100. package/lib/cli/infrastructure/AwsSsmSecretProvider.js +0 -26
  101. package/lib/cli/infrastructure/AwsSsmSecretProvider.js.map +0 -1
  102. package/lib/cli/infrastructure/ConsoleLogger.d.ts.map +0 -1
  103. package/lib/cli/infrastructure/ConsoleLogger.js.map +0 -1
  104. package/lib/cli/infrastructure/EnvFileManager.d.ts.map +0 -1
  105. package/lib/cli/infrastructure/EnvFileManager.js.map +0 -1
  106. package/lib/cli/infrastructure/PackageJsonFinder.d.ts.map +0 -1
  107. package/lib/cli/infrastructure/PackageJsonFinder.js.map +0 -1
  108. /package/lib/{cli → envilder}/domain/ports/IEnvFileManager.d.ts +0 -0
  109. /package/lib/{cli → envilder}/domain/ports/IEnvFileManager.js +0 -0
  110. /package/lib/{cli → envilder}/domain/ports/ILogger.d.ts +0 -0
  111. /package/lib/{cli → envilder}/domain/ports/ILogger.js +0 -0
  112. /package/lib/{cli → envilder}/domain/ports/ISecretProvider.js +0 -0
  113. /package/lib/{cli/infrastructure → envilder/infrastructure/Logger}/ConsoleLogger.js +0 -0
  114. /package/lib/{cli/infrastructure → envilder/infrastructure/VersionFinder}/PackageJsonFinder.d.ts +0 -0
  115. /package/lib/{cli/infrastructure → envilder/infrastructure/VersionFinder}/PackageJsonFinder.js +0 -0
@@ -0,0 +1,11 @@
1
+ export class PushSingleCommand {
2
+ constructor(key, value, ssmPath) {
3
+ this.key = key;
4
+ this.value = value;
5
+ this.ssmPath = ssmPath;
6
+ }
7
+ static create(key, value, ssmPath) {
8
+ return new PushSingleCommand(key, value, ssmPath);
9
+ }
10
+ }
11
+ //# sourceMappingURL=PushSingleCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushSingleCommand.js","sourceRoot":"","sources":["../../../../src/envilder/application/pushSingle/PushSingleCommand.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAC5B,YACkB,GAAW,EACX,KAAa,EACb,OAAe;QAFf,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEJ,MAAM,CAAC,MAAM,CACX,GAAW,EACX,KAAa,EACb,OAAe;QAEf,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { ILogger } from '../../domain/ports/ILogger.js';
2
+ import type { ISecretProvider } from '../../domain/ports/ISecretProvider.js';
3
+ import type { PushSingleCommand } from './PushSingleCommand.js';
4
+ export declare class PushSingleCommandHandler {
5
+ private readonly secretProvider;
6
+ private readonly logger;
7
+ constructor(secretProvider: ISecretProvider, logger: ILogger);
8
+ /**
9
+ * Handles the PushSingleCommand which pushes a single environment variable to AWS SSM.
10
+ *
11
+ * @param command - The PushSingleCommand containing key, value and ssmPath
12
+ */
13
+ handle(command: PushSingleCommand): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=PushSingleCommandHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushSingleCommandHandler.d.ts","sourceRoot":"","sources":["../../../../src/envilder/application/pushSingle/PushSingleCommandHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,cAAc,EAAE,eAAe,EAC/B,MAAM,EAAE,OAAO;IAGlC;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBxD"}
@@ -0,0 +1,37 @@
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 { EnvironmentVariable } from '../../domain/EnvironmentVariable.js';
11
+ export class PushSingleCommandHandler {
12
+ constructor(secretProvider, logger) {
13
+ this.secretProvider = secretProvider;
14
+ this.logger = logger;
15
+ }
16
+ /**
17
+ * Handles the PushSingleCommand which pushes a single environment variable to AWS SSM.
18
+ *
19
+ * @param command - The PushSingleCommand containing key, value and ssmPath
20
+ */
21
+ handle(command) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ try {
24
+ this.logger.info(`Starting push operation for key '${command.key}' to path '${command.ssmPath}'`);
25
+ const envVariable = new EnvironmentVariable(command.key, command.value, true);
26
+ yield this.secretProvider.setSecret(command.ssmPath, command.value);
27
+ this.logger.info(`Pushed ${command.key}=${envVariable.maskedValue} to AWS SSM at path ${command.ssmPath}`);
28
+ }
29
+ catch (error) {
30
+ const errorMessage = error instanceof Error ? error.message : String(error);
31
+ this.logger.error(`Failed to push variable to SSM: ${errorMessage}`);
32
+ throw error;
33
+ }
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=PushSingleCommandHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushSingleCommandHandler.js","sourceRoot":"","sources":["../../../../src/envilder/application/pushSingle/PushSingleCommandHandler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAK1E,MAAM,OAAO,wBAAwB;IACnC,YACmB,cAA+B,EAC/B,MAAe;QADf,mBAAc,GAAd,cAAc,CAAiB;QAC/B,WAAM,GAAN,MAAM,CAAS;IAC/B,CAAC;IAEJ;;;;OAIG;IACG,MAAM,CAAC,OAA0B;;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,OAAO,CAAC,GAAG,cAAc,OAAO,CAAC,OAAO,GAAG,CAChF,CAAC;gBAEF,MAAM,WAAW,GAAG,IAAI,mBAAmB,CACzC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,KAAK,EACb,IAAI,CACL,CAAC;gBAEF,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,UAAU,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,WAAW,uBAAuB,OAAO,CAAC,OAAO,EAAE,CACzF,CAAC;YACJ,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,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;gBACrE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Options for the CLI commands.
3
+ */
4
+ export type CliOptions = {
5
+ /**
6
+ * Path to the JSON file with environment variable mapping
7
+ */
8
+ map?: string;
9
+ /**
10
+ * Path to the .env file to be generated or imported
11
+ */
12
+ envfile?: string;
13
+ /**
14
+ * Single environment variable name to push
15
+ */
16
+ key?: string;
17
+ /**
18
+ * Value of the single environment variable to push
19
+ */
20
+ value?: string;
21
+ /**
22
+ * SSM path for the single environment variable
23
+ */
24
+ ssmPath?: string;
25
+ /**
26
+ * AWS CLI profile to use
27
+ */
28
+ profile?: string;
29
+ /**
30
+ * Flag to push local .env file back to AWS SSM (renamed from import)
31
+ */
32
+ push?: boolean;
33
+ };
34
+ //# sourceMappingURL=CliOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliOptions.d.ts","sourceRoot":"","sources":["../../../src/envilder/domain/CliOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CliOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliOptions.js","sourceRoot":"","sources":["../../../src/envilder/domain/CliOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Represents an environment variable with validation and business rules.
3
+ */
4
+ export declare class EnvironmentVariable {
5
+ private readonly _name;
6
+ private readonly _value;
7
+ private readonly _isSecret;
8
+ /**
9
+ * Creates a new environment variable
10
+ *
11
+ * @param name - The name of the environment variable
12
+ * @param value - The value of the environment variable
13
+ * @param isSecret - Whether this variable should be treated as sensitive information
14
+ */
15
+ constructor(name: string, value: string, isSecret?: boolean);
16
+ /**
17
+ * Gets the name of the environment variable
18
+ */
19
+ get name(): string;
20
+ /**
21
+ * Gets the value of the environment variable
22
+ */
23
+ get value(): string;
24
+ /**
25
+ * Gets whether this variable is sensitive information
26
+ */
27
+ get isSecret(): boolean;
28
+ /**
29
+ * Returns a masked representation of the value for logging
30
+ */
31
+ get maskedValue(): string;
32
+ /**
33
+ * Validates the environment variable
34
+ */
35
+ private validate;
36
+ }
37
+ //# sourceMappingURL=EnvironmentVariable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentVariable.d.ts","sourceRoot":"","sources":["../../../src/envilder/domain/EnvironmentVariable.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IAEpC;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe;IAOlE;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAQxB;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ;CAWjB"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Represents an environment variable with validation and business rules.
3
+ */
4
+ export class EnvironmentVariable {
5
+ /**
6
+ * Creates a new environment variable
7
+ *
8
+ * @param name - The name of the environment variable
9
+ * @param value - The value of the environment variable
10
+ * @param isSecret - Whether this variable should be treated as sensitive information
11
+ */
12
+ constructor(name, value, isSecret = false) {
13
+ this.validate(name, value);
14
+ this._name = name;
15
+ this._value = value;
16
+ this._isSecret = isSecret;
17
+ }
18
+ /**
19
+ * Gets the name of the environment variable
20
+ */
21
+ get name() {
22
+ return this._name;
23
+ }
24
+ /**
25
+ * Gets the value of the environment variable
26
+ */
27
+ get value() {
28
+ return this._value;
29
+ }
30
+ /**
31
+ * Gets whether this variable is sensitive information
32
+ */
33
+ get isSecret() {
34
+ return this._isSecret;
35
+ }
36
+ /**
37
+ * Returns a masked representation of the value for logging
38
+ */
39
+ get maskedValue() {
40
+ if (!this._isSecret) {
41
+ return this._value;
42
+ }
43
+ return this._value.length > 10
44
+ ? '*'.repeat(this._value.length - 3) + this._value.slice(-3)
45
+ : '*'.repeat(this._value.length);
46
+ }
47
+ /**
48
+ * Validates the environment variable
49
+ */
50
+ validate(name, value) {
51
+ if (!name || name.trim() === '') {
52
+ throw new Error('Environment variable name cannot be empty');
53
+ }
54
+ if (value === undefined || value === null) {
55
+ throw new Error(`Value for environment variable ${name} cannot be null or undefined`);
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=EnvironmentVariable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentVariable.js","sourceRoot":"","sources":["../../../src/envilder/domain/EnvironmentVariable.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAK9B;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,KAAa,EAAE,WAAoB,KAAK;QAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE;YAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,8BAA8B,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export declare enum OperationMode {
2
+ PUSH_SINGLE = "PUSH_SINGLE",
3
+ PUSH_ENV_TO_SSM = "PUSH_ENV_TO_SSM",
4
+ PULL_SSM_TO_ENV = "PULL_SSM_TO_ENV"
5
+ }
6
+ //# sourceMappingURL=OperationMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationMode.d.ts","sourceRoot":"","sources":["../../../src/envilder/domain/OperationMode.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACpC"}
@@ -0,0 +1,7 @@
1
+ export var OperationMode;
2
+ (function (OperationMode) {
3
+ OperationMode["PUSH_SINGLE"] = "PUSH_SINGLE";
4
+ OperationMode["PUSH_ENV_TO_SSM"] = "PUSH_ENV_TO_SSM";
5
+ OperationMode["PULL_SSM_TO_ENV"] = "PULL_SSM_TO_ENV";
6
+ })(OperationMode || (OperationMode = {}));
7
+ //# sourceMappingURL=OperationMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationMode.js","sourceRoot":"","sources":["../../../src/envilder/domain/OperationMode.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,4CAA2B,CAAA;IAC3B,oDAAmC,CAAA;IACnC,oDAAmC,CAAA;AACrC,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Base class for all domain-specific errors in the application.
3
+ */
4
+ export declare class DomainError extends Error {
5
+ constructor(message: string);
6
+ }
7
+ /**
8
+ * Error thrown when required arguments are missing or invalid.
9
+ */
10
+ export declare class InvalidArgumentError extends DomainError {
11
+ }
12
+ /**
13
+ * Error thrown when a required dependency is missing.
14
+ */
15
+ export declare class DependencyMissingError extends DomainError {
16
+ }
17
+ /**
18
+ * Error thrown when a secret operation fails.
19
+ */
20
+ export declare class SecretOperationError extends DomainError {
21
+ }
22
+ /**
23
+ * Error thrown when an environment file operation fails.
24
+ */
25
+ export declare class EnvironmentFileError extends DomainError {
26
+ }
27
+ /**
28
+ * Error thrown when a parameter cannot be found.
29
+ */
30
+ export declare class ParameterNotFoundError extends DomainError {
31
+ constructor(paramName: string);
32
+ readonly paramName: string;
33
+ }
34
+ //# sourceMappingURL=DomainErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainErrors.d.ts","sourceRoot":"","sources":["../../../../src/envilder/domain/errors/DomainErrors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;CAAG;AAE1D;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,SAAS,EAAE,MAAM;IAK7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Base class for all domain-specific errors in the application.
3
+ */
4
+ export class DomainError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = this.constructor.name;
8
+ Error.captureStackTrace(this, this.constructor);
9
+ }
10
+ }
11
+ /**
12
+ * Error thrown when required arguments are missing or invalid.
13
+ */
14
+ export class InvalidArgumentError extends DomainError {
15
+ }
16
+ /**
17
+ * Error thrown when a required dependency is missing.
18
+ */
19
+ export class DependencyMissingError extends DomainError {
20
+ }
21
+ /**
22
+ * Error thrown when a secret operation fails.
23
+ */
24
+ export class SecretOperationError extends DomainError {
25
+ }
26
+ /**
27
+ * Error thrown when an environment file operation fails.
28
+ */
29
+ export class EnvironmentFileError extends DomainError {
30
+ }
31
+ /**
32
+ * Error thrown when a parameter cannot be found.
33
+ */
34
+ export class ParameterNotFoundError extends DomainError {
35
+ constructor(paramName) {
36
+ super(`Parameter not found: ${paramName}`);
37
+ this.paramName = paramName;
38
+ }
39
+ }
40
+ //# sourceMappingURL=DomainErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainErrors.js","sourceRoot":"","sources":["../../../../src/envilder/domain/errors/DomainErrors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;CAAG;AAE1D;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;CAAG;AAExD;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,YAAY,SAAiB;QAC3B,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAGF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEnvFileManager.d.ts","sourceRoot":"","sources":["../../../../src/envilder/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":"IEnvFileManager.js","sourceRoot":"","sources":["../../../../src/envilder/domain/ports/IEnvFileManager.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILogger.d.ts","sourceRoot":"","sources":["../../../../src/envilder/domain/ports/ILogger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILogger.js","sourceRoot":"","sources":["../../../../src/envilder/domain/ports/ILogger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export interface ISecretProvider {
2
+ getSecret(name: string): Promise<string | undefined>;
3
+ setSecret(name: string, value: string): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=ISecretProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISecretProvider.d.ts","sourceRoot":"","sources":["../../../../src/envilder/domain/ports/ISecretProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISecretProvider.js","sourceRoot":"","sources":["../../../../src/envilder/domain/ports/ISecretProvider.ts"],"names":[],"mappings":""}
@@ -1,8 +1,9 @@
1
1
  import { type SSM } from '@aws-sdk/client-ssm';
2
- import type { ISecretProvider } from '../domain/ports/ISecretProvider';
2
+ import type { ISecretProvider } from '../../domain/ports/ISecretProvider';
3
3
  export declare class AwsSsmSecretProvider implements ISecretProvider {
4
4
  private ssm;
5
5
  constructor(ssm: SSM);
6
6
  getSecret(name: string): Promise<string | undefined>;
7
+ setSecret(name: string, value: string): Promise<void>;
7
8
  }
8
9
  //# sourceMappingURL=AwsSsmSecretProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsSsmSecretProvider.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/Aws/AwsSsmSecretProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,GAAG,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,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;IAuBpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS5D"}
@@ -0,0 +1,49 @@
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 { GetParameterCommand, PutParameterCommand, } from '@aws-sdk/client-ssm';
11
+ export class AwsSsmSecretProvider {
12
+ constructor(ssm) {
13
+ this.ssm = ssm;
14
+ }
15
+ getSecret(name) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ try {
18
+ const command = new GetParameterCommand({
19
+ Name: name,
20
+ WithDecryption: true,
21
+ });
22
+ const { Parameter } = yield this.ssm.send(command);
23
+ return Parameter === null || Parameter === void 0 ? void 0 : Parameter.Value;
24
+ }
25
+ catch (error) {
26
+ if (typeof error === 'object' &&
27
+ error !== null &&
28
+ 'name' in error &&
29
+ error.name === 'ParameterNotFound') {
30
+ return undefined;
31
+ }
32
+ const errorMessage = error instanceof Error ? error.message : String(error);
33
+ throw new Error(`Failed to get secret ${name}: ${errorMessage}`);
34
+ }
35
+ });
36
+ }
37
+ setSecret(name, value) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const command = new PutParameterCommand({
40
+ Name: name,
41
+ Value: value,
42
+ Type: 'SecureString',
43
+ Overwrite: true,
44
+ });
45
+ yield this.ssm.send(command);
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=AwsSsmSecretProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsSsmSecretProvider.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/Aws/AwsSsmSecretProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,OAAO,oBAAoB;IAG/B,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAEK,SAAS,CAAC,IAAY;;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;oBACtC,IAAI,EAAE,IAAI;oBACV,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,OAAO,KAAK,KAAK,QAAQ;oBACzB,KAAK,KAAK,IAAI;oBACd,MAAM,IAAI,KAAK;oBACf,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAClC,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY,EAAE,KAAa;;YACzC,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;gBACtC,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;KAAA;CACF"}
@@ -1,5 +1,5 @@
1
- import type { IEnvFileManager } from '../domain/ports/IEnvFileManager';
2
- import type { ILogger } from '../domain/ports/ILogger';
1
+ import type { IEnvFileManager } from '../../domain/ports/IEnvFileManager.js';
2
+ import type { ILogger } from '../../domain/ports/ILogger.js';
3
3
  export declare class EnvFileManager implements IEnvFileManager {
4
4
  private logger;
5
5
  constructor(logger: ILogger);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvFileManager.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/EnvManager/EnvFileManager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,MAAM,CAAU;gBACZ,MAAM,EAAE,OAAO;IAOrB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAmB7D,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAcjE,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;IAiBhB,OAAO,CAAC,cAAc;CAGvB"}
@@ -9,22 +9,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import * as fs from 'node:fs/promises';
11
11
  import * as dotenv from 'dotenv';
12
+ import { DependencyMissingError, EnvironmentFileError, } from '../../domain/errors/DomainErrors.js';
12
13
  export class EnvFileManager {
13
14
  constructor(logger) {
14
15
  if (!logger) {
15
- throw new Error('Logger must be specified');
16
+ throw new DependencyMissingError('Logger must be specified');
16
17
  }
17
18
  this.logger = logger;
18
19
  }
19
20
  loadMapFile(mapPath) {
20
21
  return __awaiter(this, void 0, void 0, function* () {
21
- const content = yield fs.readFile(mapPath, 'utf-8');
22
22
  try {
23
- return JSON.parse(content);
23
+ const content = yield fs.readFile(mapPath, 'utf-8');
24
+ try {
25
+ return JSON.parse(content);
26
+ }
27
+ catch (_err) {
28
+ this.logger.error(`Error parsing JSON from ${mapPath}`);
29
+ throw new EnvironmentFileError(`Invalid JSON in parameter map file: ${mapPath}`);
30
+ }
24
31
  }
25
- catch (_err) {
26
- this.logger.error(`Error parsing JSON from ${mapPath}`);
27
- throw new Error(`Invalid JSON in parameter map file: ${mapPath}`);
32
+ catch (error) {
33
+ if (error instanceof EnvironmentFileError) {
34
+ throw error;
35
+ }
36
+ throw new EnvironmentFileError(`Failed to read map file: ${mapPath}`);
28
37
  }
29
38
  });
30
39
  }
@@ -38,7 +47,7 @@ export class EnvFileManager {
38
47
  return envVariables;
39
48
  }
40
49
  const existingEnvContent = yield fs.readFile(envFilePath, 'utf-8');
41
- const parsedEnv = dotenv.parse(existingEnvContent);
50
+ const parsedEnv = dotenv.parse(existingEnvContent) || {};
42
51
  Object.assign(envVariables, parsedEnv);
43
52
  return envVariables;
44
53
  });
@@ -48,7 +57,14 @@ export class EnvFileManager {
48
57
  const envContent = Object.entries(envVariables)
49
58
  .map(([key, value]) => `${key}=${this.escapeEnvValue(value)}`)
50
59
  .join('\n');
51
- yield fs.writeFile(envFilePath, envContent);
60
+ try {
61
+ yield fs.writeFile(envFilePath, envContent);
62
+ }
63
+ catch (error) {
64
+ const errorMessage = error instanceof Error ? error.message : String(error);
65
+ this.logger.error(`Failed to write environment file: ${errorMessage}`);
66
+ throw new EnvironmentFileError(`Failed to write environment file: ${errorMessage}`);
67
+ }
52
68
  });
53
69
  }
54
70
  escapeEnvValue(value) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvFileManager.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/EnvManager/EnvFileManager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAI7C,MAAM,OAAO,cAAc;IAEzB,YAAY,MAAe;QACzB,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,WAAW,CAAC,OAAe;;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,IAAa,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;oBACxD,MAAM,IAAI,oBAAoB,CAC5B,uCAAuC,OAAO,EAAE,CACjD,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;oBAC1C,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,oBAAoB,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;YACxE,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,IAAI,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAEvC,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;YAEd,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC9C,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,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;gBACvE,MAAM,IAAI,oBAAoB,CAC5B,qCAAqC,YAAY,EAAE,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEO,cAAc,CAAC,KAAa;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { ILogger } from '../domain/ports/ILogger';
1
+ import type { ILogger } from '../../domain/ports/ILogger';
2
2
  export declare class ConsoleLogger implements ILogger {
3
3
  info(message: string): void;
4
4
  warn(message: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/Logger/ConsoleLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,qBAAa,aAAc,YAAW,OAAO;IAC3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleLogger.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/Logger/ConsoleLogger.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageJsonFinder.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/VersionFinder/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 @@
1
+ {"version":3,"file":"PackageJsonFinder.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/VersionFinder/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,IAAI,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC/F,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,16 +1,16 @@
1
1
  {
2
2
  "name": "envilder",
3
- "version": "0.5.6",
3
+ "version": "0.6.0",
4
4
  "description": "A CLI that securely centralizes your environment variables from AWS SSM as a single source of truth",
5
- "main": "./lib/Cli.js",
5
+ "main": "./lib/apps/cli/Cli.js",
6
6
  "bin": {
7
- "envilder": "lib/Cli.js"
7
+ "envilder": "lib/apps/cli/Cli.js"
8
8
  },
9
9
  "scripts": {
10
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
- "local:test-run": "npm run build && node lib/cli/cli.js --map=tests/cli/sample/param-map.json --envfile=tests/cli/sample/autogenerated.env",
13
+ "local:test-run": "npm run build && node lib/apps/cli/Cli.js --map=tests/sample/param-map.json --envfile=tests/sample/autogenerated.env",
14
14
  "format": "biome format",
15
15
  "format:write": "biome format --write",
16
16
  "lint": "secretlint \"**/*\" && biome check --write && tsc --noEmit",
@@ -46,7 +46,9 @@
46
46
  "bugs": {
47
47
  "url": "https://github.com/macalbert/envilder/issues"
48
48
  },
49
- "author": "Marçal Albert <mac.albert@gmail.com>",
49
+ "author": "Marçal Albert Castellví",
50
+ "email": "mac.albert@gmail.com",
51
+ "url": "https://github.com/macalbert/envilder",
50
52
  "license": "MIT",
51
53
  "publishConfig": {
52
54
  "access": "public"
package/lib/Cli.d.ts DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Parses CLI arguments and runs the environment file generator.
4
- *
5
- * Expects `--map` and `--envfile` options to be provided, with an optional `--profile` for AWS CLI profile selection. Invokes the main process to generate a `.env` file from AWS SSM parameters based on the provided mapping.
6
- *
7
- * @throws {Error} If either `--map` or `--envfile` arguments are missing.
8
- */
9
- export declare function main(): Promise<void>;
10
- //# sourceMappingURL=Cli.d.ts.map
package/lib/Cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":";AAQA;;;;;;GAMG;AACH,wBAAsB,IAAI,kBA6BzB"}