envx-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +550 -0
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +281 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/decrypt.d.ts +3 -0
- package/dist/commands/decrypt.d.ts.map +1 -0
- package/dist/commands/decrypt.js +206 -0
- package/dist/commands/decrypt.js.map +1 -0
- package/dist/commands/encrypt.d.ts +3 -0
- package/dist/commands/encrypt.d.ts.map +1 -0
- package/dist/commands/encrypt.js +194 -0
- package/dist/commands/encrypt.js.map +1 -0
- package/dist/commands/interactive.d.ts +4 -0
- package/dist/commands/interactive.d.ts.map +1 -0
- package/dist/commands/interactive.js +218 -0
- package/dist/commands/interactive.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +299 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +167 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +76 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/types/index.d.ts +64 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/exec.d.ts +32 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +208 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/file.d.ts +22 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +200 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/interactive.d.ts +18 -0
- package/dist/utils/interactive.d.ts.map +1 -0
- package/dist/utils/interactive.js +365 -0
- package/dist/utils/interactive.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createCreateCommand = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const schemas_1 = require("../schemas");
|
|
11
|
+
const exec_1 = require("../utils/exec");
|
|
12
|
+
const file_1 = require("../utils/file");
|
|
13
|
+
const interactive_1 = require("../utils/interactive");
|
|
14
|
+
const createCreateCommand = () => {
|
|
15
|
+
const command = new commander_1.Command("create");
|
|
16
|
+
command
|
|
17
|
+
.description("Create new environment files")
|
|
18
|
+
.option("-e, --environment <env>", "Environment name (e.g., development, staging, production)")
|
|
19
|
+
.option("-t, --template <path>", "Template file path to use as base")
|
|
20
|
+
.option("-c, --cwd <path>", "Working directory path")
|
|
21
|
+
.option("-i, --interactive", "Interactive mode for creating multiple environments")
|
|
22
|
+
.option("--overwrite", "Overwrite existing files without confirmation")
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
try {
|
|
25
|
+
await executeCreate(options);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
exec_1.CliUtils.error(`File creation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return command;
|
|
33
|
+
};
|
|
34
|
+
exports.createCreateCommand = createCreateCommand;
|
|
35
|
+
async function executeCreate(rawOptions) {
|
|
36
|
+
exec_1.CliUtils.header("Environment File Creation");
|
|
37
|
+
const cwd = rawOptions.cwd || exec_1.ExecUtils.getCurrentDir();
|
|
38
|
+
const existingEnvironments = await file_1.FileUtils.findAllEnvironments(cwd);
|
|
39
|
+
if (existingEnvironments.length > 0) {
|
|
40
|
+
exec_1.CliUtils.info(`Existing environments: ${existingEnvironments.map((env) => exec_1.CliUtils.formatEnvironment(env)).join(", ")}`);
|
|
41
|
+
}
|
|
42
|
+
let environment = rawOptions.environment;
|
|
43
|
+
let template = rawOptions.template;
|
|
44
|
+
if (rawOptions.interactive) {
|
|
45
|
+
await executeInteractiveCreate(cwd, existingEnvironments, template, rawOptions.overwrite);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!environment) {
|
|
49
|
+
environment = await interactive_1.InteractiveUtils.promptEnvironmentName("Enter environment name:");
|
|
50
|
+
}
|
|
51
|
+
if (!file_1.FileUtils.isValidEnvironmentName(environment)) {
|
|
52
|
+
throw new Error("Environment name can only contain letters, numbers, hyphens, and underscores");
|
|
53
|
+
}
|
|
54
|
+
const options = (0, schemas_1.validateCreateOptions)({
|
|
55
|
+
environment,
|
|
56
|
+
template,
|
|
57
|
+
cwd,
|
|
58
|
+
});
|
|
59
|
+
if (existingEnvironments.includes(environment)) {
|
|
60
|
+
exec_1.CliUtils.warning(`Environment '${environment}' already exists`);
|
|
61
|
+
const envFiles = await file_1.FileUtils.findEnvFiles(environment, cwd);
|
|
62
|
+
if (envFiles.length > 0) {
|
|
63
|
+
console.log("Existing files:");
|
|
64
|
+
envFiles.forEach((file) => {
|
|
65
|
+
const displayPath = file.encrypted
|
|
66
|
+
? file_1.FileUtils.getEncryptedPath(file.path)
|
|
67
|
+
: file.path;
|
|
68
|
+
console.log(` • ${exec_1.CliUtils.formatPath(displayPath, cwd)}`);
|
|
69
|
+
});
|
|
70
|
+
if (!rawOptions.overwrite) {
|
|
71
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation("Do you want to create additional files for this environment?", false);
|
|
72
|
+
if (!confirm) {
|
|
73
|
+
exec_1.CliUtils.info("Operation cancelled.");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (template) {
|
|
80
|
+
const templatePath = path_1.default.isAbsolute(template)
|
|
81
|
+
? template
|
|
82
|
+
: path_1.default.join(cwd, template);
|
|
83
|
+
if (!(await file_1.FileUtils.fileExists(templatePath))) {
|
|
84
|
+
throw new Error(`Template file not found: ${template}`);
|
|
85
|
+
}
|
|
86
|
+
template = templatePath;
|
|
87
|
+
}
|
|
88
|
+
const envFilePath = path_1.default.join(cwd, `.env.${environment}`);
|
|
89
|
+
const relativePath = file_1.FileUtils.getRelativePath(envFilePath, cwd);
|
|
90
|
+
if ((await file_1.FileUtils.fileExists(envFilePath)) && !rawOptions.overwrite) {
|
|
91
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation(`File ${chalk_1.default.cyan(relativePath)} already exists. Overwrite?`, false);
|
|
92
|
+
if (!confirm) {
|
|
93
|
+
exec_1.CliUtils.info("Operation cancelled.");
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exec_1.CliUtils.info(`Creating environment file: ${chalk_1.default.cyan(relativePath)}`);
|
|
98
|
+
try {
|
|
99
|
+
const result = await file_1.FileUtils.createEnvTemplate(envFilePath, template);
|
|
100
|
+
if (result.success) {
|
|
101
|
+
exec_1.CliUtils.success(`Created: ${chalk_1.default.cyan(relativePath)}`);
|
|
102
|
+
console.log();
|
|
103
|
+
exec_1.CliUtils.info("Next steps:");
|
|
104
|
+
console.log(chalk_1.default.gray(`• Edit ${relativePath} and add your environment variables`));
|
|
105
|
+
console.log(chalk_1.default.gray(`• Use "envx encrypt -e ${environment}" to encrypt the file`));
|
|
106
|
+
console.log(chalk_1.default.gray("• Add the encrypted .gpg file to version control"));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
exec_1.CliUtils.error(result.message);
|
|
110
|
+
if (result.error) {
|
|
111
|
+
console.log(chalk_1.default.red(` • ${result.error.message}`));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
exec_1.CliUtils.error(`Failed to create file: ${error instanceof Error ? error.message : String(error)}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function executeInteractiveCreate(cwd, existingEnvironments, template, overwrite) {
|
|
120
|
+
exec_1.CliUtils.subheader("Interactive Environment Creation");
|
|
121
|
+
const commonEnvironments = [
|
|
122
|
+
"development",
|
|
123
|
+
"staging",
|
|
124
|
+
"production",
|
|
125
|
+
"local",
|
|
126
|
+
"test",
|
|
127
|
+
];
|
|
128
|
+
const suggestedEnvironments = commonEnvironments.filter((env) => !existingEnvironments.includes(env));
|
|
129
|
+
if (suggestedEnvironments.length > 0) {
|
|
130
|
+
exec_1.CliUtils.info("Suggested environments:");
|
|
131
|
+
suggestedEnvironments.forEach((env) => {
|
|
132
|
+
console.log(` • ${exec_1.CliUtils.formatEnvironment(env)}`);
|
|
133
|
+
});
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
const { createMode } = (await interactive_1.InteractiveUtils.confirmOperation("Do you want to select from suggested environments?"))
|
|
137
|
+
? { createMode: "suggested" }
|
|
138
|
+
: { createMode: "custom" };
|
|
139
|
+
let environmentsToCreate = [];
|
|
140
|
+
if (createMode === "suggested" && suggestedEnvironments.length > 0) {
|
|
141
|
+
environmentsToCreate = await interactive_1.InteractiveUtils.selectMultipleEnvironments(suggestedEnvironments, "Select environments to create:");
|
|
142
|
+
}
|
|
143
|
+
const { addCustom } = (await interactive_1.InteractiveUtils.confirmOperation("Do you want to add custom environments?", createMode === "custom"))
|
|
144
|
+
? { addCustom: true }
|
|
145
|
+
: { addCustom: false };
|
|
146
|
+
if (addCustom) {
|
|
147
|
+
let addingMore = true;
|
|
148
|
+
while (addingMore) {
|
|
149
|
+
const newEnv = await interactive_1.InteractiveUtils.promptEnvironmentName("Enter environment name:");
|
|
150
|
+
if (!environmentsToCreate.includes(newEnv) &&
|
|
151
|
+
!existingEnvironments.includes(newEnv)) {
|
|
152
|
+
environmentsToCreate.push(newEnv);
|
|
153
|
+
exec_1.CliUtils.success(`Added ${exec_1.CliUtils.formatEnvironment(newEnv)} to creation list`);
|
|
154
|
+
}
|
|
155
|
+
else if (existingEnvironments.includes(newEnv)) {
|
|
156
|
+
exec_1.CliUtils.warning(`Environment ${exec_1.CliUtils.formatEnvironment(newEnv)} already exists`);
|
|
157
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation("Do you want to create files for this environment anyway?");
|
|
158
|
+
if (confirm) {
|
|
159
|
+
environmentsToCreate.push(newEnv);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
exec_1.CliUtils.warning(`Environment ${exec_1.CliUtils.formatEnvironment(newEnv)} already in creation list`);
|
|
164
|
+
}
|
|
165
|
+
const { continueAdding } = (await interactive_1.InteractiveUtils.confirmOperation("Do you want to add another environment?", false))
|
|
166
|
+
? { continueAdding: true }
|
|
167
|
+
: { continueAdding: false };
|
|
168
|
+
addingMore = continueAdding;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (environmentsToCreate.length === 0) {
|
|
172
|
+
exec_1.CliUtils.warning("No environments selected for creation.");
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (!template) {
|
|
176
|
+
const { useTemplate } = (await interactive_1.InteractiveUtils.confirmOperation("Do you want to use a template file?", false))
|
|
177
|
+
? { useTemplate: true }
|
|
178
|
+
: { useTemplate: false };
|
|
179
|
+
if (useTemplate) {
|
|
180
|
+
const commonTemplates = [".env.example", ".env.template", ".env.sample"];
|
|
181
|
+
const foundTemplates = [];
|
|
182
|
+
for (const templateName of commonTemplates) {
|
|
183
|
+
const templatePath = path_1.default.join(cwd, templateName);
|
|
184
|
+
if (await file_1.FileUtils.fileExists(templatePath)) {
|
|
185
|
+
foundTemplates.push(templateName);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (foundTemplates.length > 0) {
|
|
189
|
+
const { templateChoice } = (await interactive_1.InteractiveUtils.selectFiles([...foundTemplates, "Enter custom path"], "Select template file:"));
|
|
190
|
+
if (templateChoice === "Enter custom path") {
|
|
191
|
+
const { customTemplate } = (await interactive_1.InteractiveUtils.promptEnvironmentName("Enter template file path:"));
|
|
192
|
+
template = customTemplate;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
template = path_1.default.join(cwd, templateChoice[0]);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const { customTemplate } = (await interactive_1.InteractiveUtils.promptEnvironmentName("Enter template file path:"));
|
|
200
|
+
template = customTemplate;
|
|
201
|
+
}
|
|
202
|
+
if (template) {
|
|
203
|
+
const templatePath = path_1.default.isAbsolute(template)
|
|
204
|
+
? template
|
|
205
|
+
: path_1.default.join(cwd, template);
|
|
206
|
+
if (!(await file_1.FileUtils.fileExists(templatePath))) {
|
|
207
|
+
exec_1.CliUtils.warning(`Template file not found: ${template}`);
|
|
208
|
+
template = undefined;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
template = templatePath;
|
|
212
|
+
exec_1.CliUtils.success(`Using template: ${exec_1.CliUtils.formatPath(template, cwd)}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
console.log();
|
|
218
|
+
exec_1.CliUtils.subheader("Creation Summary");
|
|
219
|
+
console.log(`Will create ${environmentsToCreate.length} environment file(s):`);
|
|
220
|
+
environmentsToCreate.forEach((env) => {
|
|
221
|
+
console.log(` • .env.${exec_1.CliUtils.formatEnvironment(env)}`);
|
|
222
|
+
});
|
|
223
|
+
if (template) {
|
|
224
|
+
console.log(`Using template: ${exec_1.CliUtils.formatPath(template, cwd)}`);
|
|
225
|
+
}
|
|
226
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation("Create these environment files?");
|
|
227
|
+
if (!confirm) {
|
|
228
|
+
exec_1.CliUtils.info("Operation cancelled.");
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
exec_1.CliUtils.subheader("Creating Files");
|
|
232
|
+
let successCount = 0;
|
|
233
|
+
let errorCount = 0;
|
|
234
|
+
for (const environment of environmentsToCreate.sort()) {
|
|
235
|
+
const envFilePath = path_1.default.join(cwd, `.env.${environment}`);
|
|
236
|
+
const relativePath = file_1.FileUtils.getRelativePath(envFilePath, cwd);
|
|
237
|
+
console.log();
|
|
238
|
+
exec_1.CliUtils.info(`Creating: ${chalk_1.default.cyan(relativePath)}`);
|
|
239
|
+
try {
|
|
240
|
+
if ((await file_1.FileUtils.fileExists(envFilePath)) && !overwrite) {
|
|
241
|
+
const fileConfirm = await interactive_1.InteractiveUtils.confirmOperation(`File already exists. Overwrite ${relativePath}?`, false);
|
|
242
|
+
if (!fileConfirm) {
|
|
243
|
+
exec_1.CliUtils.warning("Skipped existing file");
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const result = await file_1.FileUtils.createEnvTemplate(envFilePath, template);
|
|
248
|
+
if (result.success) {
|
|
249
|
+
exec_1.CliUtils.success(`Created: ${chalk_1.default.cyan(relativePath)}`);
|
|
250
|
+
successCount++;
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
exec_1.CliUtils.error(`Failed: ${result.message}`);
|
|
254
|
+
errorCount++;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
exec_1.CliUtils.error(`Error creating ${relativePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
259
|
+
errorCount++;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
console.log();
|
|
263
|
+
exec_1.CliUtils.subheader("Creation Results");
|
|
264
|
+
if (successCount > 0) {
|
|
265
|
+
exec_1.CliUtils.success(`Successfully created ${successCount} file(s)`);
|
|
266
|
+
}
|
|
267
|
+
if (errorCount > 0) {
|
|
268
|
+
exec_1.CliUtils.error(`Failed to create ${errorCount} file(s)`);
|
|
269
|
+
}
|
|
270
|
+
if (successCount > 0) {
|
|
271
|
+
console.log();
|
|
272
|
+
exec_1.CliUtils.info("Next steps:");
|
|
273
|
+
console.log(chalk_1.default.gray("• Edit the created files and add your environment variables"));
|
|
274
|
+
console.log(chalk_1.default.gray('• Use "envx encrypt" to encrypt sensitive files'));
|
|
275
|
+
console.log(chalk_1.default.gray('• Use "envx interactive" to set up .envrc with secrets'));
|
|
276
|
+
}
|
|
277
|
+
if (errorCount > 0) {
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decrypt.d.ts","sourceRoot":"","sources":["../../src/commands/decrypt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,oBAAoB,QAAO,OAqBvC,CAAC"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDecryptCommand = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const schemas_1 = require("../schemas");
|
|
10
|
+
const exec_1 = require("../utils/exec");
|
|
11
|
+
const file_1 = require("../utils/file");
|
|
12
|
+
const interactive_1 = require("../utils/interactive");
|
|
13
|
+
const createDecryptCommand = () => {
|
|
14
|
+
const command = new commander_1.Command('decrypt');
|
|
15
|
+
command
|
|
16
|
+
.description('Decrypt environment files')
|
|
17
|
+
.option('-e, --environment <env>', 'Environment name (e.g., development, staging, production)')
|
|
18
|
+
.option('-p, --passphrase <passphrase>', 'Passphrase for decryption')
|
|
19
|
+
.option('-s, --secret <secret>', 'Secret key from environment variable')
|
|
20
|
+
.option('-c, --cwd <path>', 'Working directory path')
|
|
21
|
+
.option('-i, --interactive', 'Interactive mode for selecting files')
|
|
22
|
+
.option('--overwrite', 'Overwrite existing decrypted files without confirmation')
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
try {
|
|
25
|
+
await executeDecrypt(options);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
exec_1.CliUtils.error(`Decryption failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return command;
|
|
33
|
+
};
|
|
34
|
+
exports.createDecryptCommand = createDecryptCommand;
|
|
35
|
+
async function executeDecrypt(rawOptions) {
|
|
36
|
+
exec_1.CliUtils.header('Environment File Decryption');
|
|
37
|
+
const cwd = rawOptions.cwd || exec_1.ExecUtils.getCurrentDir();
|
|
38
|
+
if (!exec_1.ExecUtils.isGpgAvailable()) {
|
|
39
|
+
exec_1.CliUtils.error('GPG is not available. Please install GPG to use decryption features.');
|
|
40
|
+
interactive_1.InteractiveUtils.displayPrerequisites();
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const availableEnvironments = await file_1.FileUtils.findAllEnvironments(cwd);
|
|
44
|
+
if (availableEnvironments.length === 0) {
|
|
45
|
+
exec_1.CliUtils.warning('No environment files found in the current directory.');
|
|
46
|
+
exec_1.CliUtils.info('Use the "create" command to create environment files first.');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
let environment = rawOptions.environment;
|
|
50
|
+
let passphrase = rawOptions.passphrase;
|
|
51
|
+
if (!environment) {
|
|
52
|
+
if (availableEnvironments.length === 1) {
|
|
53
|
+
environment = availableEnvironments[0];
|
|
54
|
+
exec_1.CliUtils.info(`Using environment: ${exec_1.CliUtils.formatEnvironment(environment)}`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
environment = await interactive_1.InteractiveUtils.selectEnvironment(availableEnvironments, 'Select environment to decrypt:');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!availableEnvironments.includes(environment)) {
|
|
61
|
+
throw new Error(`Environment '${environment}' not found. Available: ${availableEnvironments.join(', ')}`);
|
|
62
|
+
}
|
|
63
|
+
if (!passphrase) {
|
|
64
|
+
const envrcConfig = await file_1.FileUtils.readEnvrc(cwd);
|
|
65
|
+
const secretVar = file_1.FileUtils.generateSecretVariableName(environment);
|
|
66
|
+
if (rawOptions.secret && envrcConfig[rawOptions.secret]) {
|
|
67
|
+
passphrase = envrcConfig[rawOptions.secret];
|
|
68
|
+
exec_1.CliUtils.info(`Using secret from .envrc: ${chalk_1.default.cyan(rawOptions.secret)}`);
|
|
69
|
+
}
|
|
70
|
+
else if (envrcConfig[secretVar]) {
|
|
71
|
+
passphrase = envrcConfig[secretVar];
|
|
72
|
+
exec_1.CliUtils.info(`Using secret from .envrc: ${chalk_1.default.cyan(secretVar)}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
passphrase = await interactive_1.InteractiveUtils.promptPassphrase('Enter decryption passphrase:');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const options = (0, schemas_1.validateDecryptOptions)({
|
|
79
|
+
environment,
|
|
80
|
+
passphrase,
|
|
81
|
+
cwd,
|
|
82
|
+
secret: rawOptions.secret
|
|
83
|
+
});
|
|
84
|
+
exec_1.CliUtils.info('Testing GPG operation...');
|
|
85
|
+
const gpgTest = exec_1.ExecUtils.testGpgOperation(passphrase);
|
|
86
|
+
if (!gpgTest.success) {
|
|
87
|
+
throw new Error(`GPG test failed: ${gpgTest.message}`);
|
|
88
|
+
}
|
|
89
|
+
exec_1.CliUtils.success('GPG test passed');
|
|
90
|
+
const envFiles = await file_1.FileUtils.findEnvFiles(environment, cwd);
|
|
91
|
+
const encryptedFiles = envFiles.filter(file => file.encrypted && file.exists);
|
|
92
|
+
if (encryptedFiles.length === 0) {
|
|
93
|
+
exec_1.CliUtils.warning(`No encrypted .env.${environment}.gpg files found to decrypt.`);
|
|
94
|
+
exec_1.CliUtils.info('Use the "encrypt" command to encrypt environment files first.');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
exec_1.CliUtils.info(`Found ${encryptedFiles.length} encrypted file(s) to decrypt:`);
|
|
98
|
+
encryptedFiles.forEach(file => {
|
|
99
|
+
const encryptedPath = file_1.FileUtils.getEncryptedPath(file.path);
|
|
100
|
+
console.log(` • ${exec_1.CliUtils.formatPath(encryptedPath, cwd)}`);
|
|
101
|
+
});
|
|
102
|
+
let filesToProcess = encryptedFiles;
|
|
103
|
+
if (rawOptions.interactive && encryptedFiles.length > 1) {
|
|
104
|
+
const selectedPaths = await interactive_1.InteractiveUtils.selectFiles(encryptedFiles.map(f => file_1.FileUtils.getRelativePath(file_1.FileUtils.getEncryptedPath(f.path), cwd)), 'Select files to decrypt:');
|
|
105
|
+
filesToProcess = encryptedFiles.filter(file => {
|
|
106
|
+
const encryptedPath = file_1.FileUtils.getEncryptedPath(file.path);
|
|
107
|
+
return selectedPaths.includes(file_1.FileUtils.getRelativePath(encryptedPath, cwd));
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (filesToProcess.length === 0) {
|
|
111
|
+
exec_1.CliUtils.info('No files selected for decryption.');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const conflictFiles = [];
|
|
115
|
+
for (const envFile of filesToProcess) {
|
|
116
|
+
if (await file_1.FileUtils.fileExists(envFile.path)) {
|
|
117
|
+
conflictFiles.push(envFile.path);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (conflictFiles.length > 0 && !rawOptions.overwrite) {
|
|
121
|
+
exec_1.CliUtils.warning(`The following files already exist and will be overwritten:`);
|
|
122
|
+
conflictFiles.forEach(file => {
|
|
123
|
+
console.log(` • ${exec_1.CliUtils.formatPath(file, cwd)}`);
|
|
124
|
+
});
|
|
125
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation('Continue and overwrite existing files?', false);
|
|
126
|
+
if (!confirm) {
|
|
127
|
+
exec_1.CliUtils.info('Operation cancelled.');
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (!rawOptions.interactive && conflictFiles.length === 0) {
|
|
132
|
+
const confirm = await interactive_1.InteractiveUtils.confirmOperation(`Decrypt ${filesToProcess.length} file(s) for ${exec_1.CliUtils.formatEnvironment(environment)}?`);
|
|
133
|
+
if (!confirm) {
|
|
134
|
+
exec_1.CliUtils.info('Operation cancelled.');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exec_1.CliUtils.subheader('Decrypting Files');
|
|
139
|
+
let successCount = 0;
|
|
140
|
+
let errorCount = 0;
|
|
141
|
+
for (const envFile of filesToProcess) {
|
|
142
|
+
const encryptedPath = file_1.FileUtils.getEncryptedPath(envFile.path);
|
|
143
|
+
const relativePath = file_1.FileUtils.getRelativePath(envFile.path, cwd);
|
|
144
|
+
const relativeEncryptedPath = file_1.FileUtils.getRelativePath(encryptedPath, cwd);
|
|
145
|
+
console.log();
|
|
146
|
+
exec_1.CliUtils.info(`Processing: ${chalk_1.default.cyan(relativeEncryptedPath)}`);
|
|
147
|
+
try {
|
|
148
|
+
let backupPath = null;
|
|
149
|
+
if (await file_1.FileUtils.fileExists(envFile.path)) {
|
|
150
|
+
backupPath = await file_1.FileUtils.createBackup(envFile.path);
|
|
151
|
+
exec_1.CliUtils.info(`Created backup: ${chalk_1.default.gray(file_1.FileUtils.getRelativePath(backupPath, cwd))}`);
|
|
152
|
+
}
|
|
153
|
+
const decryptResult = exec_1.ExecUtils.decryptFile(encryptedPath, envFile.path, passphrase);
|
|
154
|
+
if (decryptResult.success) {
|
|
155
|
+
exec_1.CliUtils.success(`Decrypted: ${chalk_1.default.cyan(relativePath)}`);
|
|
156
|
+
if (backupPath) {
|
|
157
|
+
await file_1.FileUtils.removeBackup(backupPath);
|
|
158
|
+
}
|
|
159
|
+
successCount++;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
if (backupPath) {
|
|
163
|
+
exec_1.ExecUtils.moveFile(backupPath, envFile.path);
|
|
164
|
+
exec_1.CliUtils.info('Restored original file from backup');
|
|
165
|
+
}
|
|
166
|
+
exec_1.CliUtils.error(`Failed to decrypt: ${decryptResult.message}`);
|
|
167
|
+
if (decryptResult.errors) {
|
|
168
|
+
decryptResult.errors.forEach(error => {
|
|
169
|
+
console.log(chalk_1.default.red(` • ${error}`));
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
errorCount++;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
exec_1.CliUtils.error(`Error processing ${relativeEncryptedPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
177
|
+
errorCount++;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
console.log();
|
|
181
|
+
exec_1.CliUtils.subheader('Decryption Summary');
|
|
182
|
+
if (successCount > 0) {
|
|
183
|
+
exec_1.CliUtils.success(`Successfully decrypted ${successCount} file(s)`);
|
|
184
|
+
}
|
|
185
|
+
if (errorCount > 0) {
|
|
186
|
+
exec_1.CliUtils.error(`Failed to decrypt ${errorCount} file(s)`);
|
|
187
|
+
}
|
|
188
|
+
if (successCount > 0) {
|
|
189
|
+
console.log();
|
|
190
|
+
exec_1.CliUtils.info('Next steps:');
|
|
191
|
+
console.log(chalk_1.default.gray('• Review the decrypted environment files'));
|
|
192
|
+
console.log(chalk_1.default.gray('• Remember: decrypted files contain sensitive data'));
|
|
193
|
+
console.log(chalk_1.default.gray('• Consider re-encrypting files when done: envx encrypt'));
|
|
194
|
+
console.log(chalk_1.default.gray('• Never commit decrypted .env files to version control'));
|
|
195
|
+
}
|
|
196
|
+
if (successCount > 0) {
|
|
197
|
+
console.log();
|
|
198
|
+
exec_1.CliUtils.warning('Security Notice:');
|
|
199
|
+
console.log(chalk_1.default.yellow('Decrypted files contain sensitive information.'));
|
|
200
|
+
console.log(chalk_1.default.yellow('Ensure they are not accidentally committed to version control.'));
|
|
201
|
+
}
|
|
202
|
+
if (errorCount > 0) {
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=decrypt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decrypt.js","sourceRoot":"","sources":["../../src/commands/decrypt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypt.d.ts","sourceRoot":"","sources":["../../src/commands/encrypt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,oBAAoB,QAAO,OAoBvC,CAAC"}
|