envx-cli 1.0.0 → 1.0.1
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 +1 -1
- package/README.md +44 -3
- package/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.js +54 -53
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/decrypt.d.ts.map +1 -1
- package/dist/commands/decrypt.js +2 -2
- package/dist/commands/decrypt.js.map +1 -1
- package/dist/commands/encrypt.d.ts.map +1 -1
- package/dist/commands/encrypt.js +4 -4
- package/dist/commands/encrypt.js.map +1 -1
- package/dist/commands/interactive.d.ts.map +1 -1
- package/dist/commands/interactive.js +4 -8
- package/dist/commands/interactive.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.js +10 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/exec.d.ts.map +1 -1
- package/dist/utils/exec.js +17 -13
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/file.d.ts +1 -1
- package/dist/utils/file.js +30 -30
- package/dist/utils/interactive.d.ts +2 -2
- package/dist/utils/interactive.js +101 -101
- package/dist/utils/interactive.js.map +1 -1
- package/package.json +35 -4
package/dist/utils/file.js
CHANGED
|
@@ -27,7 +27,7 @@ class FileUtils {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
for (const filePath of encryptedFiles) {
|
|
30
|
-
const decryptedPath = (0, lodash_1.replace)(filePath,
|
|
30
|
+
const decryptedPath = (0, lodash_1.replace)(filePath, '.gpg', '');
|
|
31
31
|
results.push({
|
|
32
32
|
path: path_1.default.join(cwd, decryptedPath),
|
|
33
33
|
stage: environment,
|
|
@@ -38,7 +38,7 @@ class FileUtils {
|
|
|
38
38
|
return results;
|
|
39
39
|
}
|
|
40
40
|
static async findAllEnvironments(cwd) {
|
|
41
|
-
const pattern =
|
|
41
|
+
const pattern = '**/.env.*';
|
|
42
42
|
const files = await (0, fast_glob_1.default)(pattern, { cwd, dot: true });
|
|
43
43
|
const environments = new Set();
|
|
44
44
|
for (const file of files) {
|
|
@@ -73,7 +73,7 @@ class FileUtils {
|
|
|
73
73
|
}
|
|
74
74
|
static async getFileHash(filePath) {
|
|
75
75
|
const fileBuffer = await fs_extra_1.default.readFile(filePath);
|
|
76
|
-
return crypto_1.default.createHash(
|
|
76
|
+
return crypto_1.default.createHash('md5').update(fileBuffer).digest('hex');
|
|
77
77
|
}
|
|
78
78
|
static async filesAreIdentical(file1, file2) {
|
|
79
79
|
if (!(await this.fileExists(file1)) || !(await this.fileExists(file2))) {
|
|
@@ -86,22 +86,22 @@ class FileUtils {
|
|
|
86
86
|
return hash1 === hash2;
|
|
87
87
|
}
|
|
88
88
|
static async readEnvrc(cwd) {
|
|
89
|
-
const envrcPath = path_1.default.join(cwd,
|
|
89
|
+
const envrcPath = path_1.default.join(cwd, '.envrc');
|
|
90
90
|
if (!(await this.fileExists(envrcPath))) {
|
|
91
91
|
return {};
|
|
92
92
|
}
|
|
93
93
|
try {
|
|
94
|
-
const content = await fs_extra_1.default.readFile(envrcPath,
|
|
94
|
+
const content = await fs_extra_1.default.readFile(envrcPath, 'utf-8');
|
|
95
95
|
const config = {};
|
|
96
|
-
const lines = content.split(
|
|
96
|
+
const lines = content.split('\n');
|
|
97
97
|
for (const line of lines) {
|
|
98
98
|
const trimmed = line.trim();
|
|
99
|
-
if (trimmed.startsWith(
|
|
99
|
+
if (trimmed.startsWith('export ')) {
|
|
100
100
|
const exportStatement = trimmed.substring(7);
|
|
101
|
-
const [key, ...valueParts] = exportStatement.split(
|
|
101
|
+
const [key, ...valueParts] = exportStatement.split('=');
|
|
102
102
|
if (key && valueParts.length > 0) {
|
|
103
|
-
let value = valueParts.join(
|
|
104
|
-
value = value.replace(/^["']|["']$/g,
|
|
103
|
+
let value = valueParts.join('=');
|
|
104
|
+
value = value.replace(/^["']|["']$/g, '');
|
|
105
105
|
config[key.trim()] = value;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -114,17 +114,17 @@ class FileUtils {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
static async writeEnvrc(cwd, config) {
|
|
117
|
-
const envrcPath = path_1.default.join(cwd,
|
|
117
|
+
const envrcPath = path_1.default.join(cwd, '.envrc');
|
|
118
118
|
try {
|
|
119
|
-
const lines = [
|
|
119
|
+
const lines = ['# Environment secrets generated by envx', ''];
|
|
120
120
|
for (const [key, value] of Object.entries(config)) {
|
|
121
121
|
lines.push(`export ${key}="${value}"`);
|
|
122
122
|
}
|
|
123
|
-
lines.push(
|
|
124
|
-
await fs_extra_1.default.writeFile(envrcPath, lines.join(
|
|
123
|
+
lines.push('');
|
|
124
|
+
await fs_extra_1.default.writeFile(envrcPath, lines.join('\n'), 'utf-8');
|
|
125
125
|
return {
|
|
126
126
|
success: true,
|
|
127
|
-
message:
|
|
127
|
+
message: 'Successfully wrote .envrc file',
|
|
128
128
|
filePath: envrcPath,
|
|
129
129
|
};
|
|
130
130
|
}
|
|
@@ -139,23 +139,23 @@ class FileUtils {
|
|
|
139
139
|
}
|
|
140
140
|
static async createEnvTemplate(filePath, template) {
|
|
141
141
|
try {
|
|
142
|
-
let content =
|
|
142
|
+
let content = '';
|
|
143
143
|
if (template && (await this.fileExists(template))) {
|
|
144
|
-
content = await fs_extra_1.default.readFile(template,
|
|
144
|
+
content = await fs_extra_1.default.readFile(template, 'utf-8');
|
|
145
145
|
}
|
|
146
146
|
else {
|
|
147
147
|
content = [
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
].join(
|
|
148
|
+
'# Environment variables',
|
|
149
|
+
'# Add your environment-specific variables here',
|
|
150
|
+
'',
|
|
151
|
+
'# Example:',
|
|
152
|
+
'# DATABASE_URL=',
|
|
153
|
+
'# API_KEY=',
|
|
154
|
+
'# DEBUG=false',
|
|
155
|
+
'',
|
|
156
|
+
].join('\n');
|
|
157
157
|
}
|
|
158
|
-
await fs_extra_1.default.writeFile(filePath, content,
|
|
158
|
+
await fs_extra_1.default.writeFile(filePath, content, 'utf-8');
|
|
159
159
|
return {
|
|
160
160
|
success: true,
|
|
161
161
|
message: `Successfully created .env file`,
|
|
@@ -172,7 +172,7 @@ class FileUtils {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
static generateRandomSecret(length = 32) {
|
|
175
|
-
return crypto_1.default.randomBytes(length).toString(
|
|
175
|
+
return crypto_1.default.randomBytes(length).toString('hex');
|
|
176
176
|
}
|
|
177
177
|
static generateSecretVariableName(stage) {
|
|
178
178
|
return `${stage.toUpperCase()}_SECRET`;
|
|
@@ -190,10 +190,10 @@ class FileUtils {
|
|
|
190
190
|
return `${filePath}.gpg`;
|
|
191
191
|
}
|
|
192
192
|
static getDecryptedPath(encryptedPath) {
|
|
193
|
-
return (0, lodash_1.replace)(encryptedPath,
|
|
193
|
+
return (0, lodash_1.replace)(encryptedPath, '.gpg', '');
|
|
194
194
|
}
|
|
195
195
|
static isEncryptedFile(filePath) {
|
|
196
|
-
return filePath.endsWith(
|
|
196
|
+
return filePath.endsWith('.gpg');
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
exports.FileUtils = FileUtils;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EnvrcConfig } from
|
|
1
|
+
import { EnvrcConfig } from '../types';
|
|
2
2
|
export declare class InteractiveUtils {
|
|
3
3
|
static selectEnvironment(environments: string[], message?: string): Promise<string>;
|
|
4
4
|
static selectMultipleEnvironments(environments: string[], message?: string): Promise<string[]>;
|
|
@@ -10,7 +10,7 @@ export declare class InteractiveUtils {
|
|
|
10
10
|
static setupEnvrc(cwd: string, existingEnvironments?: string[]): Promise<EnvrcConfig>;
|
|
11
11
|
static selectFiles(files: string[], message?: string): Promise<string[]>;
|
|
12
12
|
static confirmOperation(message: string, defaultValue?: boolean): Promise<boolean>;
|
|
13
|
-
static selectOperationMode(): Promise<
|
|
13
|
+
static selectOperationMode(): Promise<'encrypt' | 'decrypt' | 'create' | 'interactive'>;
|
|
14
14
|
static withProgress<T>(promise: Promise<T>, message?: string): Promise<T>;
|
|
15
15
|
static displayWelcome(): void;
|
|
16
16
|
static displayPrerequisites(): void;
|
|
@@ -10,54 +10,54 @@ const path_1 = __importDefault(require("path"));
|
|
|
10
10
|
const exec_1 = require("./exec");
|
|
11
11
|
const file_1 = require("./file");
|
|
12
12
|
class InteractiveUtils {
|
|
13
|
-
static async selectEnvironment(environments, message =
|
|
13
|
+
static async selectEnvironment(environments, message = 'Select environment:') {
|
|
14
14
|
if (environments.length === 0) {
|
|
15
|
-
throw new Error(
|
|
15
|
+
throw new Error('No environments found');
|
|
16
16
|
}
|
|
17
17
|
if (environments.length === 1) {
|
|
18
18
|
return environments[0];
|
|
19
19
|
}
|
|
20
20
|
const { environment } = await inquirer_1.default.prompt([
|
|
21
21
|
{
|
|
22
|
-
type:
|
|
23
|
-
name:
|
|
22
|
+
type: 'list',
|
|
23
|
+
name: 'environment',
|
|
24
24
|
message,
|
|
25
25
|
choices: environments,
|
|
26
26
|
},
|
|
27
27
|
]);
|
|
28
28
|
return environment;
|
|
29
29
|
}
|
|
30
|
-
static async selectMultipleEnvironments(environments, message =
|
|
30
|
+
static async selectMultipleEnvironments(environments, message = 'Select environments:') {
|
|
31
31
|
if (environments.length === 0) {
|
|
32
|
-
throw new Error(
|
|
32
|
+
throw new Error('No environments found');
|
|
33
33
|
}
|
|
34
34
|
const { selectedEnvironments } = await inquirer_1.default.prompt({
|
|
35
|
-
type:
|
|
36
|
-
name:
|
|
35
|
+
type: 'checkbox',
|
|
36
|
+
name: 'selectedEnvironments',
|
|
37
37
|
message,
|
|
38
38
|
choices: environments,
|
|
39
39
|
validate: (input) => {
|
|
40
40
|
if (input.length === 0) {
|
|
41
|
-
return
|
|
41
|
+
return 'Please select at least one environment';
|
|
42
42
|
}
|
|
43
43
|
return true;
|
|
44
44
|
},
|
|
45
45
|
});
|
|
46
46
|
return selectedEnvironments;
|
|
47
47
|
}
|
|
48
|
-
static async promptPassphrase(message =
|
|
48
|
+
static async promptPassphrase(message = 'Enter passphrase:') {
|
|
49
49
|
const { passphrase } = await inquirer_1.default.prompt([
|
|
50
50
|
{
|
|
51
|
-
type:
|
|
52
|
-
name:
|
|
51
|
+
type: 'password',
|
|
52
|
+
name: 'passphrase',
|
|
53
53
|
message,
|
|
54
|
-
mask:
|
|
54
|
+
mask: '*',
|
|
55
55
|
validate: (input) => {
|
|
56
56
|
if (!input.trim()) {
|
|
57
|
-
return
|
|
57
|
+
return 'Passphrase cannot be empty';
|
|
58
58
|
}
|
|
59
59
|
if (input.length < 4) {
|
|
60
|
-
return
|
|
60
|
+
return 'Passphrase must be at least 4 characters long';
|
|
61
61
|
}
|
|
62
62
|
return true;
|
|
63
63
|
},
|
|
@@ -68,13 +68,13 @@ class InteractiveUtils {
|
|
|
68
68
|
static async confirmPassphrase(originalPassphrase) {
|
|
69
69
|
const { confirmPassphrase } = await inquirer_1.default.prompt([
|
|
70
70
|
{
|
|
71
|
-
type:
|
|
72
|
-
name:
|
|
73
|
-
message:
|
|
74
|
-
mask:
|
|
71
|
+
type: 'password',
|
|
72
|
+
name: 'confirmPassphrase',
|
|
73
|
+
message: 'Confirm passphrase:',
|
|
74
|
+
mask: '*',
|
|
75
75
|
validate: (input) => {
|
|
76
76
|
if (input !== originalPassphrase) {
|
|
77
|
-
return
|
|
77
|
+
return 'Passphrases do not match';
|
|
78
78
|
}
|
|
79
79
|
return true;
|
|
80
80
|
},
|
|
@@ -83,22 +83,22 @@ class InteractiveUtils {
|
|
|
83
83
|
return confirmPassphrase === originalPassphrase;
|
|
84
84
|
}
|
|
85
85
|
static async promptNewPassphrase() {
|
|
86
|
-
const passphrase = await this.promptPassphrase(
|
|
86
|
+
const passphrase = await this.promptPassphrase('Enter new passphrase:');
|
|
87
87
|
await this.confirmPassphrase(passphrase);
|
|
88
88
|
return passphrase;
|
|
89
89
|
}
|
|
90
|
-
static async promptEnvironmentName(message =
|
|
90
|
+
static async promptEnvironmentName(message = 'Enter environment name:') {
|
|
91
91
|
const { environment } = await inquirer_1.default.prompt([
|
|
92
92
|
{
|
|
93
|
-
type:
|
|
94
|
-
name:
|
|
93
|
+
type: 'input',
|
|
94
|
+
name: 'environment',
|
|
95
95
|
message,
|
|
96
96
|
validate: (input) => {
|
|
97
97
|
if (!input.trim()) {
|
|
98
|
-
return
|
|
98
|
+
return 'Environment name cannot be empty';
|
|
99
99
|
}
|
|
100
100
|
if (!file_1.FileUtils.isValidEnvironmentName(input.trim())) {
|
|
101
|
-
return
|
|
101
|
+
return 'Environment name can only contain letters, numbers, hyphens, and underscores';
|
|
102
102
|
}
|
|
103
103
|
return true;
|
|
104
104
|
},
|
|
@@ -110,25 +110,25 @@ class InteractiveUtils {
|
|
|
110
110
|
static async promptSecret(stageName) {
|
|
111
111
|
const { secretOption } = await inquirer_1.default.prompt([
|
|
112
112
|
{
|
|
113
|
-
type:
|
|
114
|
-
name:
|
|
113
|
+
type: 'list',
|
|
114
|
+
name: 'secretOption',
|
|
115
115
|
message: `How would you like to set the secret for ${chalk_1.default.magenta(stageName)}?`,
|
|
116
116
|
choices: [
|
|
117
|
-
{ name:
|
|
118
|
-
{ name:
|
|
117
|
+
{ name: 'Generate random secret', value: 'generate' },
|
|
118
|
+
{ name: 'Enter custom secret', value: 'custom' },
|
|
119
119
|
],
|
|
120
120
|
},
|
|
121
121
|
]);
|
|
122
|
-
if (secretOption ===
|
|
122
|
+
if (secretOption === 'generate') {
|
|
123
123
|
const { secretLength } = await inquirer_1.default.prompt([
|
|
124
124
|
{
|
|
125
|
-
type:
|
|
126
|
-
name:
|
|
127
|
-
message:
|
|
125
|
+
type: 'list',
|
|
126
|
+
name: 'secretLength',
|
|
127
|
+
message: 'Select secret length:',
|
|
128
128
|
choices: [
|
|
129
|
-
{ name:
|
|
130
|
-
{ name:
|
|
131
|
-
{ name:
|
|
129
|
+
{ name: '32 characters (recommended)', value: 32 },
|
|
130
|
+
{ name: '64 characters (high security)', value: 64 },
|
|
131
|
+
{ name: '16 characters (basic)', value: 16 },
|
|
132
132
|
],
|
|
133
133
|
default: 32,
|
|
134
134
|
},
|
|
@@ -138,16 +138,16 @@ class InteractiveUtils {
|
|
|
138
138
|
else {
|
|
139
139
|
const { customSecret } = await inquirer_1.default.prompt([
|
|
140
140
|
{
|
|
141
|
-
type:
|
|
142
|
-
name:
|
|
141
|
+
type: 'password',
|
|
142
|
+
name: 'customSecret',
|
|
143
143
|
message: `Enter secret for ${stageName}:`,
|
|
144
|
-
mask:
|
|
144
|
+
mask: '*',
|
|
145
145
|
validate: (input) => {
|
|
146
146
|
if (!input.trim()) {
|
|
147
|
-
return
|
|
147
|
+
return 'Secret cannot be empty';
|
|
148
148
|
}
|
|
149
149
|
if (input.length < 8) {
|
|
150
|
-
return
|
|
150
|
+
return 'Secret must be at least 8 characters long';
|
|
151
151
|
}
|
|
152
152
|
return true;
|
|
153
153
|
},
|
|
@@ -157,55 +157,55 @@ class InteractiveUtils {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
static async setupEnvrc(cwd, existingEnvironments = []) {
|
|
160
|
-
exec_1.CliUtils.header(
|
|
161
|
-
console.log(chalk_1.default.gray(
|
|
162
|
-
console.log(chalk_1.default.gray(
|
|
160
|
+
exec_1.CliUtils.header('Interactive .envrc Setup');
|
|
161
|
+
console.log(chalk_1.default.gray('This will help you set up secrets for your environments.'));
|
|
162
|
+
console.log(chalk_1.default.gray('The secrets will be stored in a .envrc file.'));
|
|
163
163
|
console.log();
|
|
164
|
-
const envrcPath = path_1.default.join(cwd,
|
|
164
|
+
const envrcPath = path_1.default.join(cwd, '.envrc');
|
|
165
165
|
const envrcExists = await file_1.FileUtils.fileExists(envrcPath);
|
|
166
166
|
if (envrcExists) {
|
|
167
|
-
exec_1.CliUtils.warning(
|
|
167
|
+
exec_1.CliUtils.warning('.envrc file already exists');
|
|
168
168
|
const { overwrite } = await inquirer_1.default.prompt([
|
|
169
169
|
{
|
|
170
|
-
type:
|
|
171
|
-
name:
|
|
172
|
-
message:
|
|
170
|
+
type: 'confirm',
|
|
171
|
+
name: 'overwrite',
|
|
172
|
+
message: 'Do you want to overwrite the existing .envrc file?',
|
|
173
173
|
default: false,
|
|
174
174
|
},
|
|
175
175
|
]);
|
|
176
176
|
if (!overwrite) {
|
|
177
|
-
exec_1.CliUtils.info(
|
|
177
|
+
exec_1.CliUtils.info('Keeping existing .envrc file');
|
|
178
178
|
return await file_1.FileUtils.readEnvrc(cwd);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
let environments = [];
|
|
182
182
|
if (existingEnvironments.length > 0) {
|
|
183
|
-
exec_1.CliUtils.info(`Found existing environments: ${existingEnvironments.map(
|
|
183
|
+
exec_1.CliUtils.info(`Found existing environments: ${existingEnvironments.map(env => chalk_1.default.magenta(env)).join(', ')}`);
|
|
184
184
|
const { useExisting } = await inquirer_1.default.prompt([
|
|
185
185
|
{
|
|
186
|
-
type:
|
|
187
|
-
name:
|
|
188
|
-
message:
|
|
186
|
+
type: 'confirm',
|
|
187
|
+
name: 'useExisting',
|
|
188
|
+
message: 'Do you want to set up secrets for these existing environments?',
|
|
189
189
|
default: true,
|
|
190
190
|
},
|
|
191
191
|
]);
|
|
192
192
|
if (useExisting) {
|
|
193
|
-
const selectedEnvs = await this.selectMultipleEnvironments(existingEnvironments,
|
|
193
|
+
const selectedEnvs = await this.selectMultipleEnvironments(existingEnvironments, 'Select environments to set up secrets for:');
|
|
194
194
|
environments = environments.concat(selectedEnvs);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
const { addMore } = await inquirer_1.default.prompt([
|
|
198
198
|
{
|
|
199
|
-
type:
|
|
200
|
-
name:
|
|
201
|
-
message:
|
|
199
|
+
type: 'confirm',
|
|
200
|
+
name: 'addMore',
|
|
201
|
+
message: 'Do you want to add secrets for additional environments?',
|
|
202
202
|
default: environments.length === 0,
|
|
203
203
|
},
|
|
204
204
|
]);
|
|
205
205
|
if (addMore) {
|
|
206
206
|
let addingMore = true;
|
|
207
207
|
while (addingMore) {
|
|
208
|
-
const newEnv = await this.promptEnvironmentName(
|
|
208
|
+
const newEnv = await this.promptEnvironmentName('Enter new environment name:');
|
|
209
209
|
if (!environments.includes(newEnv)) {
|
|
210
210
|
environments.push(newEnv);
|
|
211
211
|
exec_1.CliUtils.success(`Added ${chalk_1.default.magenta(newEnv)} to the list`);
|
|
@@ -215,9 +215,9 @@ class InteractiveUtils {
|
|
|
215
215
|
}
|
|
216
216
|
const { continueAdding } = await inquirer_1.default.prompt([
|
|
217
217
|
{
|
|
218
|
-
type:
|
|
219
|
-
name:
|
|
220
|
-
message:
|
|
218
|
+
type: 'confirm',
|
|
219
|
+
name: 'continueAdding',
|
|
220
|
+
message: 'Do you want to add another environment?',
|
|
221
221
|
default: false,
|
|
222
222
|
},
|
|
223
223
|
]);
|
|
@@ -225,11 +225,11 @@ class InteractiveUtils {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
if (environments.length === 0) {
|
|
228
|
-
throw new Error(
|
|
228
|
+
throw new Error('No environments selected for .envrc setup');
|
|
229
229
|
}
|
|
230
230
|
const config = {};
|
|
231
231
|
const secrets = [];
|
|
232
|
-
exec_1.CliUtils.subheader(
|
|
232
|
+
exec_1.CliUtils.subheader('Setting up secrets');
|
|
233
233
|
for (const env of environments.sort()) {
|
|
234
234
|
console.log();
|
|
235
235
|
exec_1.CliUtils.info(`Setting up secret for ${chalk_1.default.magenta(env)}`);
|
|
@@ -244,35 +244,35 @@ class InteractiveUtils {
|
|
|
244
244
|
exec_1.CliUtils.success(`Secret configured for ${chalk_1.default.magenta(env)} as ${chalk_1.default.cyan(variableName)}`);
|
|
245
245
|
}
|
|
246
246
|
console.log();
|
|
247
|
-
exec_1.CliUtils.subheader(
|
|
247
|
+
exec_1.CliUtils.subheader('Summary');
|
|
248
248
|
const tableRows = secrets.map(({ stage, variableName }) => [
|
|
249
249
|
chalk_1.default.magenta(stage),
|
|
250
250
|
chalk_1.default.cyan(variableName),
|
|
251
|
-
chalk_1.default.green(
|
|
251
|
+
chalk_1.default.green('✓ Set'),
|
|
252
252
|
]);
|
|
253
|
-
exec_1.CliUtils.printTable([
|
|
253
|
+
exec_1.CliUtils.printTable(['Environment', 'Variable Name', 'Status'], tableRows);
|
|
254
254
|
const { confirmCreate } = await inquirer_1.default.prompt([
|
|
255
255
|
{
|
|
256
|
-
type:
|
|
257
|
-
name:
|
|
258
|
-
message:
|
|
256
|
+
type: 'confirm',
|
|
257
|
+
name: 'confirmCreate',
|
|
258
|
+
message: 'Create .envrc file with these settings?',
|
|
259
259
|
default: true,
|
|
260
260
|
},
|
|
261
261
|
]);
|
|
262
262
|
if (!confirmCreate) {
|
|
263
|
-
throw new Error(
|
|
263
|
+
throw new Error('Setup cancelled by user');
|
|
264
264
|
}
|
|
265
265
|
return config;
|
|
266
266
|
}
|
|
267
|
-
static async selectFiles(files, message =
|
|
267
|
+
static async selectFiles(files, message = 'Select files:') {
|
|
268
268
|
if (files.length === 0) {
|
|
269
|
-
throw new Error(
|
|
269
|
+
throw new Error('No files available for selection');
|
|
270
270
|
}
|
|
271
271
|
if (files.length === 1) {
|
|
272
272
|
const { confirm } = await inquirer_1.default.prompt([
|
|
273
273
|
{
|
|
274
|
-
type:
|
|
275
|
-
name:
|
|
274
|
+
type: 'confirm',
|
|
275
|
+
name: 'confirm',
|
|
276
276
|
message: `Process file ${chalk_1.default.cyan(files[0])}?`,
|
|
277
277
|
default: true,
|
|
278
278
|
},
|
|
@@ -280,16 +280,16 @@ class InteractiveUtils {
|
|
|
280
280
|
return confirm ? files : [];
|
|
281
281
|
}
|
|
282
282
|
const { selectedFiles } = await inquirer_1.default.prompt({
|
|
283
|
-
type:
|
|
284
|
-
name:
|
|
283
|
+
type: 'checkbox',
|
|
284
|
+
name: 'selectedFiles',
|
|
285
285
|
message,
|
|
286
|
-
choices: files.map(
|
|
286
|
+
choices: files.map(file => ({
|
|
287
287
|
name: file,
|
|
288
288
|
value: file,
|
|
289
289
|
})),
|
|
290
290
|
validate: (input) => {
|
|
291
291
|
if (input.length === 0) {
|
|
292
|
-
return
|
|
292
|
+
return 'Please select at least one file';
|
|
293
293
|
}
|
|
294
294
|
return true;
|
|
295
295
|
},
|
|
@@ -299,8 +299,8 @@ class InteractiveUtils {
|
|
|
299
299
|
static async confirmOperation(message, defaultValue = true) {
|
|
300
300
|
const { confirm } = await inquirer_1.default.prompt([
|
|
301
301
|
{
|
|
302
|
-
type:
|
|
303
|
-
name:
|
|
302
|
+
type: 'confirm',
|
|
303
|
+
name: 'confirm',
|
|
304
304
|
message,
|
|
305
305
|
default: defaultValue,
|
|
306
306
|
},
|
|
@@ -310,21 +310,21 @@ class InteractiveUtils {
|
|
|
310
310
|
static async selectOperationMode() {
|
|
311
311
|
const { operation } = await inquirer_1.default.prompt([
|
|
312
312
|
{
|
|
313
|
-
type:
|
|
314
|
-
name:
|
|
315
|
-
message:
|
|
313
|
+
type: 'list',
|
|
314
|
+
name: 'operation',
|
|
315
|
+
message: 'What would you like to do?',
|
|
316
316
|
choices: [
|
|
317
|
-
{ name:
|
|
318
|
-
{ name:
|
|
319
|
-
{ name:
|
|
320
|
-
{ name:
|
|
317
|
+
{ name: 'Encrypt environment files', value: 'encrypt' },
|
|
318
|
+
{ name: 'Decrypt environment files', value: 'decrypt' },
|
|
319
|
+
{ name: 'Create new environment file', value: 'create' },
|
|
320
|
+
{ name: 'Interactive setup (.envrc)', value: 'interactive' },
|
|
321
321
|
],
|
|
322
322
|
},
|
|
323
323
|
]);
|
|
324
324
|
return operation;
|
|
325
325
|
}
|
|
326
|
-
static async withProgress(promise, message =
|
|
327
|
-
const spinner = [
|
|
326
|
+
static async withProgress(promise, message = 'Processing...') {
|
|
327
|
+
const spinner = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
328
328
|
let i = 0;
|
|
329
329
|
const interval = setInterval(() => {
|
|
330
330
|
process.stdout.write(`\r${spinner[i]} ${message}`);
|
|
@@ -344,20 +344,20 @@ class InteractiveUtils {
|
|
|
344
344
|
}
|
|
345
345
|
static displayWelcome() {
|
|
346
346
|
console.log();
|
|
347
|
-
console.log(chalk_1.default.bold.cyan(
|
|
348
|
-
console.log(chalk_1.default.gray(
|
|
347
|
+
console.log(chalk_1.default.bold.cyan('🔐 Welcome to EnvX'));
|
|
348
|
+
console.log(chalk_1.default.gray('Environment file encryption and management tool'));
|
|
349
349
|
console.log();
|
|
350
350
|
}
|
|
351
351
|
static displayPrerequisites() {
|
|
352
|
-
exec_1.CliUtils.header(
|
|
353
|
-
console.log(
|
|
354
|
-
console.log(chalk_1.default.yellow(
|
|
355
|
-
console.log(chalk_1.default.yellow(
|
|
352
|
+
exec_1.CliUtils.header('Prerequisites');
|
|
353
|
+
console.log('Before using EnvX, make sure you have:');
|
|
354
|
+
console.log(chalk_1.default.yellow('• GPG installed and configured'));
|
|
355
|
+
console.log(chalk_1.default.yellow('• Appropriate file permissions in your project directory'));
|
|
356
356
|
console.log();
|
|
357
|
-
console.log(
|
|
358
|
-
console.log(chalk_1.default.cyan(
|
|
359
|
-
console.log(chalk_1.default.cyan(
|
|
360
|
-
console.log(chalk_1.default.cyan(
|
|
357
|
+
console.log('To install GPG:');
|
|
358
|
+
console.log(chalk_1.default.cyan('• macOS: brew install gnupg'));
|
|
359
|
+
console.log(chalk_1.default.cyan('• Ubuntu/Debian: sudo apt-get install gnupg'));
|
|
360
|
+
console.log(chalk_1.default.cyan('• Windows: Download from https://gnupg.org/download/'));
|
|
361
361
|
console.log();
|
|
362
362
|
}
|
|
363
363
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}
|