aliasmate 1.6.1 → 2.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/CHANGELOG.md +37 -0
- package/README.md +61 -876
- package/dist/cli/completion.d.ts +5 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +144 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/manage.d.ts +20 -0
- package/dist/cli/manage.d.ts.map +1 -0
- package/dist/cli/manage.js +213 -0
- package/dist/cli/manage.js.map +1 -0
- package/dist/cli/run.d.ts +6 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +46 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/save.d.ts +9 -0
- package/dist/cli/save.d.ts.map +1 -0
- package/dist/cli/save.js +52 -0
- package/dist/cli/save.js.map +1 -0
- package/dist/cli/transfer.d.ts +5 -0
- package/dist/cli/transfer.d.ts.map +1 -0
- package/dist/cli/transfer.js +118 -0
- package/dist/cli/transfer.js.map +1 -0
- package/dist/core/commands.d.ts +27 -0
- package/dist/core/commands.d.ts.map +1 -0
- package/dist/core/commands.js +194 -0
- package/dist/core/commands.js.map +1 -0
- package/dist/core/env.d.ts +9 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +45 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/executor.d.ts +7 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/{utils → core}/executor.js +10 -46
- package/dist/core/executor.js.map +1 -0
- package/dist/core/history.d.ts +11 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +117 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/recent.d.ts +14 -0
- package/dist/core/recent.d.ts.map +1 -0
- package/dist/core/recent.js +54 -0
- package/dist/core/recent.js.map +1 -0
- package/dist/core/runner.d.ts +13 -0
- package/dist/core/runner.d.ts.map +1 -0
- package/dist/core/runner.js +83 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/store.d.ts +29 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +131 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/types.d.ts +29 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validate.d.ts +6 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +139 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/format.d.ts +16 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +112 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/interactive.d.ts +6 -0
- package/dist/ui/interactive.d.ts.map +1 -0
- package/dist/ui/interactive.js +147 -0
- package/dist/ui/interactive.js.map +1 -0
- package/dist/ui/onboarding.d.ts +3 -0
- package/dist/ui/onboarding.d.ts.map +1 -0
- package/dist/ui/onboarding.js +82 -0
- package/dist/ui/onboarding.js.map +1 -0
- package/dist/ui/prompts.d.ts +14 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +96 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/theme.d.ts +28 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +43 -0
- package/dist/ui/theme.js.map +1 -0
- package/package.json +4 -5
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -252
- package/dist/cli.js.map +0 -1
- package/dist/commands/alias.d.ts +0 -30
- package/dist/commands/alias.d.ts.map +0 -1
- package/dist/commands/alias.js +0 -213
- package/dist/commands/alias.js.map +0 -1
- package/dist/commands/changelog.d.ts +0 -9
- package/dist/commands/changelog.d.ts.map +0 -1
- package/dist/commands/changelog.js +0 -72
- package/dist/commands/changelog.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -17
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js +0 -363
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/delete.d.ts +0 -14
- package/dist/commands/delete.d.ts.map +0 -1
- package/dist/commands/delete.js +0 -54
- package/dist/commands/delete.js.map +0 -1
- package/dist/commands/edit.d.ts +0 -16
- package/dist/commands/edit.d.ts.map +0 -1
- package/dist/commands/edit.js +0 -231
- package/dist/commands/edit.js.map +0 -1
- package/dist/commands/export.d.ts +0 -23
- package/dist/commands/export.d.ts.map +0 -1
- package/dist/commands/export.js +0 -122
- package/dist/commands/export.js.map +0 -1
- package/dist/commands/import.d.ts +0 -23
- package/dist/commands/import.d.ts.map +0 -1
- package/dist/commands/import.js +0 -235
- package/dist/commands/import.js.map +0 -1
- package/dist/commands/list.d.ts +0 -25
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -58
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/prev.d.ts +0 -15
- package/dist/commands/prev.d.ts.map +0 -1
- package/dist/commands/prev.js +0 -138
- package/dist/commands/prev.js.map +0 -1
- package/dist/commands/recent.d.ts +0 -24
- package/dist/commands/recent.d.ts.map +0 -1
- package/dist/commands/recent.js +0 -132
- package/dist/commands/recent.js.map +0 -1
- package/dist/commands/run.d.ts +0 -22
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -217
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/save.d.ts +0 -17
- package/dist/commands/save.d.ts.map +0 -1
- package/dist/commands/save.js +0 -232
- package/dist/commands/save.js.map +0 -1
- package/dist/commands/search.d.ts +0 -19
- package/dist/commands/search.d.ts.map +0 -1
- package/dist/commands/search.js +0 -113
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -10
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -162
- package/dist/commands/validate.js.map +0 -1
- package/dist/storage/index.d.ts +0 -117
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -262
- package/dist/storage/index.js.map +0 -1
- package/dist/utils/changelog.d.ts +0 -41
- package/dist/utils/changelog.d.ts.map +0 -1
- package/dist/utils/changelog.js +0 -192
- package/dist/utils/changelog.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -48
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -51
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/env.d.ts +0 -64
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -199
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -30
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -62
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/executor.d.ts +0 -33
- package/dist/utils/executor.d.ts.map +0 -1
- package/dist/utils/executor.js.map +0 -1
- package/dist/utils/formatters.d.ts +0 -30
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/formatters.js +0 -188
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/history.d.ts +0 -37
- package/dist/utils/history.d.ts.map +0 -1
- package/dist/utils/history.js +0 -179
- package/dist/utils/history.js.map +0 -1
- package/dist/utils/llm-generator.d.ts +0 -21
- package/dist/utils/llm-generator.d.ts.map +0 -1
- package/dist/utils/llm-generator.js +0 -915
- package/dist/utils/llm-generator.js.map +0 -1
- package/dist/utils/onboarding.d.ts +0 -10
- package/dist/utils/onboarding.d.ts.map +0 -1
- package/dist/utils/onboarding.js +0 -316
- package/dist/utils/onboarding.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -44
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -115
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/prompts.d.ts +0 -66
- package/dist/utils/prompts.d.ts.map +0 -1
- package/dist/utils/prompts.js +0 -51
- package/dist/utils/prompts.js.map +0 -1
- package/dist/utils/recent.d.ts +0 -55
- package/dist/utils/recent.d.ts.map +0 -1
- package/dist/utils/recent.js +0 -102
- package/dist/utils/recent.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -56
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -413
- package/dist/utils/validator.js.map +0 -1
- package/dist/utils/version-checker.d.ts +0 -29
- package/dist/utils/version-checker.d.ts.map +0 -1
- package/dist/utils/version-checker.js +0 -191
- package/dist/utils/version-checker.js.map +0 -1
- package/whats-new.json +0 -202
package/dist/commands/edit.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
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.editCommand = editCommand;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const storage_1 = require("../storage");
|
|
9
|
-
const errors_1 = require("../utils/errors");
|
|
10
|
-
const constants_1 = require("../utils/constants");
|
|
11
|
-
const prompts_1 = require("../utils/prompts");
|
|
12
|
-
const env_1 = require("../utils/env");
|
|
13
|
-
const validator_1 = require("../utils/validator");
|
|
14
|
-
/**
|
|
15
|
-
* Edit an existing command interactively
|
|
16
|
-
*
|
|
17
|
-
* @param name - The name of the command to edit
|
|
18
|
-
* @param shouldValidate - Whether to validate the command (defaults to true)
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```
|
|
22
|
-
* // User is prompted to update:
|
|
23
|
-
* // - Command (pre-filled with current value)
|
|
24
|
-
* // - Working directory (pre-filled with current value)
|
|
25
|
-
* await editCommand('build-prod');
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
async function editCommand(name, shouldValidate = true) {
|
|
29
|
-
try {
|
|
30
|
-
// Get the existing alias
|
|
31
|
-
const alias = (0, storage_1.getAlias)(name);
|
|
32
|
-
if (!alias) {
|
|
33
|
-
console.error(chalk_1.default.red(`Error: ${constants_1.ERROR_MESSAGES.commandNotFound(name)}`));
|
|
34
|
-
console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.useList));
|
|
35
|
-
process.exit(errors_1.ExitCode.InvalidInput);
|
|
36
|
-
}
|
|
37
|
-
console.log(chalk_1.default.blue(`Editing command: ${name}\n`));
|
|
38
|
-
// Prompt for new values including path mode
|
|
39
|
-
const prompts = [
|
|
40
|
-
{
|
|
41
|
-
type: 'input',
|
|
42
|
-
name: 'command',
|
|
43
|
-
message: 'Command:',
|
|
44
|
-
default: alias.command,
|
|
45
|
-
validate: (input) => {
|
|
46
|
-
const trimmed = input.trim();
|
|
47
|
-
if (!trimmed) {
|
|
48
|
-
return constants_1.HELP_MESSAGES.emptyValue('Command');
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
type: 'input',
|
|
55
|
-
name: 'directory',
|
|
56
|
-
message: 'Working directory:',
|
|
57
|
-
default: alias.directory,
|
|
58
|
-
validate: (input) => {
|
|
59
|
-
const trimmed = input.trim();
|
|
60
|
-
if (!trimmed) {
|
|
61
|
-
return constants_1.HELP_MESSAGES.emptyValue('Directory');
|
|
62
|
-
}
|
|
63
|
-
return true;
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
type: 'list',
|
|
68
|
-
name: 'pathMode',
|
|
69
|
-
message: 'Path mode:',
|
|
70
|
-
choices: [
|
|
71
|
-
{
|
|
72
|
-
name: 'Saved Directory (always run in the directory above)',
|
|
73
|
-
value: 'saved',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
name: 'Current Directory (run in your current working directory)',
|
|
77
|
-
value: 'current',
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
},
|
|
81
|
-
];
|
|
82
|
-
const answers = await (0, prompts_1.promptMultiple)(prompts);
|
|
83
|
-
// Ask if user wants to update environment variables
|
|
84
|
-
const updateEnvPrompt = {
|
|
85
|
-
type: 'confirm',
|
|
86
|
-
name: 'updateEnv',
|
|
87
|
-
message: 'Update environment variables?',
|
|
88
|
-
default: false,
|
|
89
|
-
};
|
|
90
|
-
const shouldUpdateEnv = await (0, prompts_1.promptConfirm)(updateEnvPrompt);
|
|
91
|
-
let selectedEnv = alias.env;
|
|
92
|
-
if (shouldUpdateEnv) {
|
|
93
|
-
// Merge current env with saved env for the selection UI
|
|
94
|
-
const currentEnv = (0, env_1.getUserEnvVars)();
|
|
95
|
-
const savedEnv = alias.env || {};
|
|
96
|
-
// Combine all available env vars
|
|
97
|
-
const allEnv = { ...currentEnv, ...savedEnv };
|
|
98
|
-
const { sensitive, safe } = (0, env_1.categorizeEnvVars)(allEnv);
|
|
99
|
-
if (Object.keys(allEnv).length === 0) {
|
|
100
|
-
console.log(chalk_1.default.yellow('No user-defined environment variables found.'));
|
|
101
|
-
selectedEnv = undefined;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
// Show warning if there are sensitive vars
|
|
105
|
-
if (Object.keys(sensitive).length > 0) {
|
|
106
|
-
console.log(chalk_1.default.yellow('\n⚠️ Warning: Some environment variables appear to contain sensitive data:'));
|
|
107
|
-
Object.keys(sensitive).forEach((key) => {
|
|
108
|
-
console.log(chalk_1.default.yellow(` - ${key}`));
|
|
109
|
-
});
|
|
110
|
-
console.log(chalk_1.default.gray('(These may contain API keys, tokens, or passwords)\n'));
|
|
111
|
-
}
|
|
112
|
-
// Let user select which vars to save
|
|
113
|
-
const envChoices = [
|
|
114
|
-
...Object.keys(safe).map((key) => ({
|
|
115
|
-
name: (0, env_1.formatEnvVars)({ [key]: allEnv[key] })[0],
|
|
116
|
-
value: key,
|
|
117
|
-
checked: key in savedEnv, // Check if already saved
|
|
118
|
-
})),
|
|
119
|
-
...Object.keys(sensitive).map((key) => ({
|
|
120
|
-
name: `${(0, env_1.formatEnvVars)({ [key]: allEnv[key] })[0]} ${chalk_1.default.yellow('(sensitive)')}`,
|
|
121
|
-
value: key,
|
|
122
|
-
checked: key in savedEnv, // Check if already saved
|
|
123
|
-
})),
|
|
124
|
-
];
|
|
125
|
-
if (envChoices.length > 0) {
|
|
126
|
-
const checkboxPrompt = {
|
|
127
|
-
type: 'checkbox',
|
|
128
|
-
name: 'envVars',
|
|
129
|
-
message: 'Select environment variables to save (use space to toggle):',
|
|
130
|
-
choices: envChoices,
|
|
131
|
-
};
|
|
132
|
-
const selectedVars = await (0, prompts_1.promptMultiple)([checkboxPrompt]);
|
|
133
|
-
// Build the selected env object
|
|
134
|
-
const newEnv = {};
|
|
135
|
-
for (const varName of selectedVars.envVars) {
|
|
136
|
-
newEnv[varName] = allEnv[varName];
|
|
137
|
-
}
|
|
138
|
-
selectedEnv = Object.keys(newEnv).length > 0 ? newEnv : undefined;
|
|
139
|
-
if (selectedEnv) {
|
|
140
|
-
console.log(chalk_1.default.green(`\n✓ ${Object.keys(selectedEnv).length} environment variable(s) will be saved`));
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
console.log(chalk_1.default.yellow('\n✓ All environment variables cleared'));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Check if anything changed
|
|
149
|
-
const currentPathMode = alias.pathMode || 'saved'; // Default to 'saved' for backward compatibility
|
|
150
|
-
const envChanged = JSON.stringify(selectedEnv || {}) !== JSON.stringify(alias.env || {});
|
|
151
|
-
if (answers.command === alias.command &&
|
|
152
|
-
answers.directory === alias.directory &&
|
|
153
|
-
answers.pathMode === currentPathMode &&
|
|
154
|
-
!envChanged) {
|
|
155
|
-
console.log(chalk_1.default.yellow('No changes made'));
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
// Validate the command if requested
|
|
159
|
-
if (shouldValidate) {
|
|
160
|
-
console.log(chalk_1.default.blue('\nValidating command...'));
|
|
161
|
-
const report = (0, validator_1.validateCommandAlias)(answers.command, answers.directory, selectedEnv);
|
|
162
|
-
if (report.issues.length > 0) {
|
|
163
|
-
const errors = report.issues.filter((issue) => issue.type === 'error');
|
|
164
|
-
const warnings = report.issues.filter((issue) => issue.type === 'warning');
|
|
165
|
-
if (errors.length > 0) {
|
|
166
|
-
console.log(chalk_1.default.red(`\n✗ Validation failed with ${errors.length} error(s):\n`));
|
|
167
|
-
for (const error of errors) {
|
|
168
|
-
console.log(chalk_1.default.red(` [${error.field}] ${error.message}`));
|
|
169
|
-
}
|
|
170
|
-
console.log();
|
|
171
|
-
console.log(chalk_1.default.yellow('Use --no-validate flag to skip validation'));
|
|
172
|
-
process.exit(errors_1.ExitCode.InvalidInput);
|
|
173
|
-
}
|
|
174
|
-
if (warnings.length > 0) {
|
|
175
|
-
console.log(chalk_1.default.yellow(`\n⚠ ${warnings.length} warning(s):\n`));
|
|
176
|
-
for (const warning of warnings) {
|
|
177
|
-
console.log(chalk_1.default.yellow(` [${warning.field}] ${warning.message}`));
|
|
178
|
-
}
|
|
179
|
-
const continuePrompt = {
|
|
180
|
-
type: 'confirm',
|
|
181
|
-
name: 'continue',
|
|
182
|
-
message: 'Continue saving despite warnings?',
|
|
183
|
-
default: true,
|
|
184
|
-
};
|
|
185
|
-
const shouldContinue = await (0, prompts_1.promptConfirm)(continuePrompt);
|
|
186
|
-
if (!shouldContinue) {
|
|
187
|
-
console.log(chalk_1.default.yellow('Edit cancelled'));
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
console.log(chalk_1.default.green('✓ Validation passed'));
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
console.log(chalk_1.default.green('✓ Validation passed'));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
// Update the alias with path mode and env vars
|
|
200
|
-
try {
|
|
201
|
-
const success = (0, storage_1.setAlias)(name, answers.command, answers.directory, answers.pathMode, selectedEnv);
|
|
202
|
-
if (success) {
|
|
203
|
-
console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.updated(name)}`));
|
|
204
|
-
console.log(chalk_1.default.gray(` Command: ${answers.command}`));
|
|
205
|
-
console.log(chalk_1.default.gray(` Directory: ${answers.directory}`));
|
|
206
|
-
console.log(chalk_1.default.gray(` Path Mode: ${answers.pathMode}`));
|
|
207
|
-
if (selectedEnv && Object.keys(selectedEnv).length > 0) {
|
|
208
|
-
console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(selectedEnv).length} saved`));
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
console.log(chalk_1.default.gray(` Environment Variables: none`));
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotUpdate);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
(0, errors_1.exitWithError)(`${constants_1.ERROR_MESSAGES.couldNotUpdate}: ${error.message}`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
if ((0, errors_1.isInquirerTTYError)(error)) {
|
|
224
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.interactiveNotSupported, errors_1.ExitCode.GeneralError);
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
(0, errors_1.handleError)(error, 'Failed to edit command');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
//# sourceMappingURL=edit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Export all saved commands to a file
|
|
3
|
-
*
|
|
4
|
-
* Creates a portable backup of all commands with metadata, suitable for:
|
|
5
|
-
* - Sharing with team members
|
|
6
|
-
* - Backing up your command library
|
|
7
|
-
* - Migrating between machines
|
|
8
|
-
*
|
|
9
|
-
* @param filePath - The path where the export file should be created
|
|
10
|
-
* @param format - Output format: 'json' (default) or 'yaml'
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```
|
|
14
|
-
* // Export to JSON file
|
|
15
|
-
* exportCommand('./my-commands.json');
|
|
16
|
-
* // Output: ✓ Exported 15 command(s) to /path/to/my-commands.json
|
|
17
|
-
*
|
|
18
|
-
* // Export to YAML file
|
|
19
|
-
* exportCommand('./my-commands.yaml', 'yaml');
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function exportCommand(filePath: string, format?: 'json' | 'yaml'): void;
|
|
23
|
-
//# sourceMappingURL=export.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,IAAI,CAiEtF"}
|
package/dist/commands/export.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.exportCommand = exportCommand;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
-
const storage_1 = require("../storage");
|
|
44
|
-
const errors_1 = require("../utils/errors");
|
|
45
|
-
const constants_1 = require("../utils/constants");
|
|
46
|
-
const formatters_1 = require("../utils/formatters");
|
|
47
|
-
/**
|
|
48
|
-
* Export all saved commands to a file
|
|
49
|
-
*
|
|
50
|
-
* Creates a portable backup of all commands with metadata, suitable for:
|
|
51
|
-
* - Sharing with team members
|
|
52
|
-
* - Backing up your command library
|
|
53
|
-
* - Migrating between machines
|
|
54
|
-
*
|
|
55
|
-
* @param filePath - The path where the export file should be created
|
|
56
|
-
* @param format - Output format: 'json' (default) or 'yaml'
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```
|
|
60
|
-
* // Export to JSON file
|
|
61
|
-
* exportCommand('./my-commands.json');
|
|
62
|
-
* // Output: ✓ Exported 15 command(s) to /path/to/my-commands.json
|
|
63
|
-
*
|
|
64
|
-
* // Export to YAML file
|
|
65
|
-
* exportCommand('./my-commands.yaml', 'yaml');
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
function exportCommand(filePath, format = 'json') {
|
|
69
|
-
try {
|
|
70
|
-
// Validate file path
|
|
71
|
-
if (!filePath || !filePath.trim()) {
|
|
72
|
-
(0, errors_1.exitWithError)('File path cannot be empty', errors_1.ExitCode.InvalidInput);
|
|
73
|
-
}
|
|
74
|
-
const aliases = (0, storage_1.loadAliases)();
|
|
75
|
-
const names = Object.keys(aliases);
|
|
76
|
-
if (names.length === 0) {
|
|
77
|
-
console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.noCommands));
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
// Resolve the file path
|
|
81
|
-
const resolvedPath = path.resolve(filePath);
|
|
82
|
-
// Check if file already exists and warn user
|
|
83
|
-
if (fs.existsSync(resolvedPath)) {
|
|
84
|
-
console.log(chalk_1.default.yellow(`Warning: File already exists and will be overwritten: ${resolvedPath}`));
|
|
85
|
-
}
|
|
86
|
-
// Ensure directory exists
|
|
87
|
-
const dirPath = path.dirname(resolvedPath);
|
|
88
|
-
if (!fs.existsSync(dirPath)) {
|
|
89
|
-
try {
|
|
90
|
-
fs.mkdirSync(dirPath, { recursive: true });
|
|
91
|
-
}
|
|
92
|
-
catch (mkdirError) {
|
|
93
|
-
(0, errors_1.exitWithError)(`Could not create directory: ${mkdirError.message}`, errors_1.ExitCode.PermissionDenied);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// Export in the specified format
|
|
97
|
-
let content;
|
|
98
|
-
if (format === 'yaml') {
|
|
99
|
-
content = (0, formatters_1.formatAsYAML)(aliases);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
// JSON format with metadata
|
|
103
|
-
const exportData = {
|
|
104
|
-
exportedAt: new Date().toISOString(),
|
|
105
|
-
version: '1.0',
|
|
106
|
-
aliases: aliases,
|
|
107
|
-
};
|
|
108
|
-
content = JSON.stringify(exportData, null, 2);
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
fs.writeFileSync(resolvedPath, content, 'utf8');
|
|
112
|
-
console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.exported(names.length, resolvedPath)}`));
|
|
113
|
-
}
|
|
114
|
-
catch (writeError) {
|
|
115
|
-
(0, errors_1.exitWithError)(`${constants_1.ERROR_MESSAGES.couldNotWrite}: ${writeError.message}`, errors_1.ExitCode.PermissionDenied);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
(0, errors_1.handleError)(error, 'Failed to export commands');
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=export.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,sCAiEC;AA9FD,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAC1B,wCAAyC;AACzC,4CAAuE;AACvE,kDAAqF;AACrF,oDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,aAAa,CAAC,QAAgB,EAAE,SAA0B,MAAM;IAC9E,IAAI,CAAC;QACH,qBAAqB;QACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAA,sBAAa,EAAC,2BAA2B,EAAE,iBAAQ,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,qBAAW,GAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,6CAA6C;QAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,yDAAyD,YAAY,EAAE,CAAC,CACtF,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,IAAA,sBAAa,EACX,+BAAgC,UAAoB,CAAC,OAAO,EAAE,EAC9D,iBAAQ,CAAC,gBAAgB,CAC1B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAe,CAAC;QAEpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,GAAG,IAAA,yBAAY,EAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,MAAM,UAAU,GAAG;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,OAAO;aACjB,CAAC;YACF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,4BAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAA,sBAAa,EACX,GAAG,0BAAc,CAAC,aAAa,KAAM,UAAoB,CAAC,OAAO,EAAE,EACnE,iBAAQ,CAAC,gBAAgB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,oBAAW,EAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Import commands from a JSON file
|
|
3
|
-
*
|
|
4
|
-
* Handles conflicts intelligently by prompting the user for each conflict:
|
|
5
|
-
* - Overwrite: Replace existing command with imported one
|
|
6
|
-
* - Skip: Keep existing command, discard imported one
|
|
7
|
-
* - Rename: Save imported command with a different name
|
|
8
|
-
*
|
|
9
|
-
* @param filePath - The path to the JSON file to import from
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```
|
|
13
|
-
* // Import commands from a file
|
|
14
|
-
* await importCommand('./team-commands.json');
|
|
15
|
-
*
|
|
16
|
-
* // If conflicts are found, user is prompted:
|
|
17
|
-
* // - Overwrite existing
|
|
18
|
-
* // - Skip this command
|
|
19
|
-
* // - Rename imported command
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function importCommand(filePath: string): Promise<void>;
|
|
23
|
-
//# sourceMappingURL=import.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuLnE"}
|
package/dist/commands/import.js
DELETED
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.importCommand = importCommand;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
-
const storage_1 = require("../storage");
|
|
44
|
-
const errors_1 = require("../utils/errors");
|
|
45
|
-
const constants_1 = require("../utils/constants");
|
|
46
|
-
const prompts_1 = require("../utils/prompts");
|
|
47
|
-
/**
|
|
48
|
-
* Import commands from a JSON file
|
|
49
|
-
*
|
|
50
|
-
* Handles conflicts intelligently by prompting the user for each conflict:
|
|
51
|
-
* - Overwrite: Replace existing command with imported one
|
|
52
|
-
* - Skip: Keep existing command, discard imported one
|
|
53
|
-
* - Rename: Save imported command with a different name
|
|
54
|
-
*
|
|
55
|
-
* @param filePath - The path to the JSON file to import from
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```
|
|
59
|
-
* // Import commands from a file
|
|
60
|
-
* await importCommand('./team-commands.json');
|
|
61
|
-
*
|
|
62
|
-
* // If conflicts are found, user is prompted:
|
|
63
|
-
* // - Overwrite existing
|
|
64
|
-
* // - Skip this command
|
|
65
|
-
* // - Rename imported command
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
async function importCommand(filePath) {
|
|
69
|
-
try {
|
|
70
|
-
// Resolve the file path
|
|
71
|
-
const resolvedPath = path.resolve(filePath);
|
|
72
|
-
// Check if file exists
|
|
73
|
-
if (!fs.existsSync(resolvedPath)) {
|
|
74
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.fileNotFound(resolvedPath), errors_1.ExitCode.FileNotFound);
|
|
75
|
-
}
|
|
76
|
-
// Read and parse the file
|
|
77
|
-
let importData;
|
|
78
|
-
try {
|
|
79
|
-
const fileContent = fs.readFileSync(resolvedPath, 'utf8');
|
|
80
|
-
importData = JSON.parse(fileContent);
|
|
81
|
-
}
|
|
82
|
-
catch (parseError) {
|
|
83
|
-
console.error(chalk_1.default.red(`Error: ${constants_1.ERROR_MESSAGES.invalidJson}`));
|
|
84
|
-
console.error(parseError.message);
|
|
85
|
-
process.exit(errors_1.ExitCode.InvalidInput);
|
|
86
|
-
}
|
|
87
|
-
// Validate the import data structure
|
|
88
|
-
if (!importData.aliases || typeof importData.aliases !== 'object') {
|
|
89
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.invalidFormat, errors_1.ExitCode.InvalidInput);
|
|
90
|
-
}
|
|
91
|
-
const importAliases = importData.aliases;
|
|
92
|
-
const importNames = Object.keys(importAliases);
|
|
93
|
-
// Validate each alias structure
|
|
94
|
-
for (const name of importNames) {
|
|
95
|
-
const alias = importAliases[name];
|
|
96
|
-
if (!alias ||
|
|
97
|
-
typeof alias !== 'object' ||
|
|
98
|
-
typeof alias.command !== 'string' ||
|
|
99
|
-
typeof alias.directory !== 'string' ||
|
|
100
|
-
!alias.command.trim() ||
|
|
101
|
-
!alias.directory.trim()) {
|
|
102
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.invalidAliasStructure(name), errors_1.ExitCode.InvalidInput);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (importNames.length === 0) {
|
|
106
|
-
console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.noCommands));
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
console.log(chalk_1.default.blue(`Found ${importNames.length} command(s) to import\n`));
|
|
110
|
-
// Create backup of existing config before importing
|
|
111
|
-
const existingAliases = (0, storage_1.loadAliases)();
|
|
112
|
-
if (Object.keys(existingAliases).length > 0) {
|
|
113
|
-
const configPath = (0, storage_1.getConfigPath)();
|
|
114
|
-
const backupPath = `${configPath}.backup.${Date.now()}`;
|
|
115
|
-
try {
|
|
116
|
-
fs.copyFileSync(configPath, backupPath);
|
|
117
|
-
console.log(chalk_1.default.gray(`Backup created: ${backupPath}\n`));
|
|
118
|
-
}
|
|
119
|
-
catch (backupError) {
|
|
120
|
-
console.warn(chalk_1.default.yellow(`Warning: Could not create backup: ${backupError.message}`));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
const conflicts = [];
|
|
124
|
-
const newAliases = [];
|
|
125
|
-
// Check for conflicts
|
|
126
|
-
for (const name of importNames) {
|
|
127
|
-
if ((0, storage_1.aliasExists)(name)) {
|
|
128
|
-
conflicts.push(name);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
newAliases.push(name);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Handle conflicts
|
|
135
|
-
const resolutions = {};
|
|
136
|
-
if (conflicts.length > 0) {
|
|
137
|
-
console.log(chalk_1.default.yellow(`Warning: ${conflicts.length} name conflict(s) found:\n`));
|
|
138
|
-
for (const name of conflicts) {
|
|
139
|
-
console.log(chalk_1.default.gray(`Existing: ${name}`));
|
|
140
|
-
console.log(chalk_1.default.gray(` ${existingAliases[name].command}`));
|
|
141
|
-
console.log(chalk_1.default.gray(`Importing: ${name}`));
|
|
142
|
-
console.log(chalk_1.default.gray(` ${importAliases[name].command}\n`));
|
|
143
|
-
const actionPrompt = {
|
|
144
|
-
type: 'list',
|
|
145
|
-
name: 'action',
|
|
146
|
-
message: `What should we do with "${name}"?`,
|
|
147
|
-
choices: [
|
|
148
|
-
{ name: 'Overwrite existing', value: 'overwrite' },
|
|
149
|
-
{ name: 'Skip this command', value: 'skip' },
|
|
150
|
-
{ name: 'Rename imported command', value: 'rename' },
|
|
151
|
-
],
|
|
152
|
-
};
|
|
153
|
-
const action = await (0, prompts_1.promptList)(actionPrompt);
|
|
154
|
-
if (action === 'rename') {
|
|
155
|
-
const renamePrompt = {
|
|
156
|
-
type: 'input',
|
|
157
|
-
name: 'newName',
|
|
158
|
-
message: 'Enter new name:',
|
|
159
|
-
default: `${name}_imported`,
|
|
160
|
-
validate: (input) => {
|
|
161
|
-
const trimmed = input.trim();
|
|
162
|
-
if (!trimmed) {
|
|
163
|
-
return constants_1.HELP_MESSAGES.emptyValue('Name');
|
|
164
|
-
}
|
|
165
|
-
if (trimmed.includes(' ')) {
|
|
166
|
-
return constants_1.HELP_MESSAGES.invalidName;
|
|
167
|
-
}
|
|
168
|
-
// Check for invalid characters
|
|
169
|
-
if (!/^[a-zA-Z0-9_-]+$/.test(trimmed)) {
|
|
170
|
-
return 'Name can only contain letters, numbers, hyphens, and underscores';
|
|
171
|
-
}
|
|
172
|
-
if ((0, storage_1.aliasExists)(trimmed) || resolutions[trimmed]) {
|
|
173
|
-
return `Name "${trimmed}" is already taken`;
|
|
174
|
-
}
|
|
175
|
-
return true;
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
const newName = await (0, prompts_1.promptText)(renamePrompt);
|
|
179
|
-
resolutions[name] = { action: 'rename', newName: newName.trim() };
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
resolutions[name] = { action };
|
|
183
|
-
}
|
|
184
|
-
console.log();
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
// Apply imports
|
|
188
|
-
const updatedAliases = { ...existingAliases };
|
|
189
|
-
let importedCount = 0;
|
|
190
|
-
let skippedCount = 0;
|
|
191
|
-
for (const name of importNames) {
|
|
192
|
-
const importAlias = importAliases[name];
|
|
193
|
-
if (conflicts.includes(name)) {
|
|
194
|
-
const resolution = resolutions[name];
|
|
195
|
-
if (resolution.action === 'skip') {
|
|
196
|
-
skippedCount++;
|
|
197
|
-
continue;
|
|
198
|
-
}
|
|
199
|
-
else if (resolution.action === 'overwrite') {
|
|
200
|
-
updatedAliases[name] = importAlias;
|
|
201
|
-
importedCount++;
|
|
202
|
-
}
|
|
203
|
-
else if (resolution.action === 'rename' && resolution.newName) {
|
|
204
|
-
updatedAliases[resolution.newName] = importAlias;
|
|
205
|
-
importedCount++;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
updatedAliases[name] = importAlias;
|
|
210
|
-
importedCount++;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
// Save the updated aliases
|
|
214
|
-
const success = (0, storage_1.saveAliases)(updatedAliases);
|
|
215
|
-
if (success) {
|
|
216
|
-
console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.importComplete}:`));
|
|
217
|
-
console.log(chalk_1.default.gray(` Imported: ${importedCount} command(s)`));
|
|
218
|
-
if (skippedCount > 0) {
|
|
219
|
-
console.log(chalk_1.default.gray(` Skipped: ${skippedCount} command(s)`));
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
(0, errors_1.exitWithError)('Could not save imported commands');
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
if ((0, errors_1.isInquirerTTYError)(error)) {
|
|
228
|
-
(0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.interactiveNotSupported, errors_1.ExitCode.GeneralError);
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
(0, errors_1.handleError)(error, 'Failed to import commands');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
//# sourceMappingURL=import.js.map
|