aliasmate 1.0.0 → 1.3.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 (77) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/README.md +188 -3
  3. package/dist/cli.js +66 -15
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/delete.d.ts +12 -0
  6. package/dist/commands/delete.d.ts.map +1 -1
  7. package/dist/commands/delete.js +29 -8
  8. package/dist/commands/delete.js.map +1 -1
  9. package/dist/commands/edit.d.ts +13 -0
  10. package/dist/commands/edit.d.ts.map +1 -1
  11. package/dist/commands/edit.js +72 -26
  12. package/dist/commands/edit.js.map +1 -1
  13. package/dist/commands/export.d.ts +17 -0
  14. package/dist/commands/export.d.ts.map +1 -1
  15. package/dist/commands/export.js +42 -7
  16. package/dist/commands/export.js.map +1 -1
  17. package/dist/commands/import.d.ts +21 -0
  18. package/dist/commands/import.d.ts.map +1 -1
  19. package/dist/commands/import.js +93 -48
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/list.d.ts +20 -0
  22. package/dist/commands/list.d.ts.map +1 -1
  23. package/dist/commands/list.js +83 -6
  24. package/dist/commands/list.js.map +1 -1
  25. package/dist/commands/prev.d.ts +14 -1
  26. package/dist/commands/prev.d.ts.map +1 -1
  27. package/dist/commands/prev.js +43 -14
  28. package/dist/commands/prev.js.map +1 -1
  29. package/dist/commands/run.d.ts +16 -1
  30. package/dist/commands/run.d.ts.map +1 -1
  31. package/dist/commands/run.js +52 -11
  32. package/dist/commands/run.js.map +1 -1
  33. package/dist/commands/save.d.ts +15 -1
  34. package/dist/commands/save.d.ts.map +1 -1
  35. package/dist/commands/save.js +82 -35
  36. package/dist/commands/save.js.map +1 -1
  37. package/dist/commands/search.d.ts +19 -0
  38. package/dist/commands/search.d.ts.map +1 -0
  39. package/dist/commands/search.js +113 -0
  40. package/dist/commands/search.js.map +1 -0
  41. package/dist/storage/index.d.ts +44 -8
  42. package/dist/storage/index.d.ts.map +1 -1
  43. package/dist/storage/index.js +58 -12
  44. package/dist/storage/index.js.map +1 -1
  45. package/dist/utils/constants.d.ts +48 -0
  46. package/dist/utils/constants.d.ts.map +1 -0
  47. package/dist/utils/constants.js +51 -0
  48. package/dist/utils/constants.js.map +1 -0
  49. package/dist/utils/errors.d.ts +30 -0
  50. package/dist/utils/errors.d.ts.map +1 -0
  51. package/dist/utils/errors.js +62 -0
  52. package/dist/utils/errors.js.map +1 -0
  53. package/dist/utils/executor.d.ts +22 -1
  54. package/dist/utils/executor.d.ts.map +1 -1
  55. package/dist/utils/executor.js +36 -11
  56. package/dist/utils/executor.js.map +1 -1
  57. package/dist/utils/history.d.ts +21 -3
  58. package/dist/utils/history.d.ts.map +1 -1
  59. package/dist/utils/history.js +28 -14
  60. package/dist/utils/history.js.map +1 -1
  61. package/dist/utils/llm-generator.d.ts +21 -0
  62. package/dist/utils/llm-generator.d.ts.map +1 -0
  63. package/dist/utils/llm-generator.js +337 -0
  64. package/dist/utils/llm-generator.js.map +1 -0
  65. package/dist/utils/onboarding.d.ts +10 -0
  66. package/dist/utils/onboarding.d.ts.map +1 -0
  67. package/dist/utils/onboarding.js +201 -0
  68. package/dist/utils/onboarding.js.map +1 -0
  69. package/dist/utils/paths.d.ts +39 -1
  70. package/dist/utils/paths.d.ts.map +1 -1
  71. package/dist/utils/paths.js +56 -1
  72. package/dist/utils/paths.js.map +1 -1
  73. package/dist/utils/prompts.d.ts +56 -0
  74. package/dist/utils/prompts.d.ts.map +1 -0
  75. package/dist/utils/prompts.js +51 -0
  76. package/dist/utils/prompts.js.map +1 -0
  77. package/package.json +22 -6
@@ -1,2 +1,15 @@
1
+ /**
2
+ * Edit an existing command interactively
3
+ *
4
+ * @param name - The name of the command to edit
5
+ *
6
+ * @example
7
+ * ```
8
+ * // User is prompted to update:
9
+ * // - Command (pre-filled with current value)
10
+ * // - Working directory (pre-filled with current value)
11
+ * await editCommand('build-prod');
12
+ * ```
13
+ */
1
14
  export declare function editCommand(name: string): Promise<void>;
2
15
  //# sourceMappingURL=edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAIA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D7D"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiG7D"}
@@ -4,65 +4,111 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.editCommand = editCommand;
7
- const inquirer_1 = __importDefault(require("inquirer"));
8
7
  const chalk_1 = __importDefault(require("chalk"));
9
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
+ /**
13
+ * Edit an existing command interactively
14
+ *
15
+ * @param name - The name of the command to edit
16
+ *
17
+ * @example
18
+ * ```
19
+ * // User is prompted to update:
20
+ * // - Command (pre-filled with current value)
21
+ * // - Working directory (pre-filled with current value)
22
+ * await editCommand('build-prod');
23
+ * ```
24
+ */
10
25
  async function editCommand(name) {
11
26
  try {
12
27
  // Get the existing alias
13
28
  const alias = (0, storage_1.getAlias)(name);
14
29
  if (!alias) {
15
- console.error(chalk_1.default.red(`Error: No saved command found with name "${name}"`));
16
- console.log(chalk_1.default.yellow('Use "aliasmate list" to see all saved commands'));
17
- process.exit(1);
30
+ console.error(chalk_1.default.red(`Error: ${constants_1.ERROR_MESSAGES.commandNotFound(name)}`));
31
+ console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.useList));
32
+ process.exit(errors_1.ExitCode.InvalidInput);
18
33
  }
19
34
  console.log(chalk_1.default.blue(`Editing command: ${name}\n`));
20
- // Prompt for new values
21
- const answers = await inquirer_1.default.prompt([
35
+ // Prompt for new values including path mode
36
+ const prompts = [
22
37
  {
23
38
  type: 'input',
24
39
  name: 'command',
25
40
  message: 'Command:',
26
41
  default: alias.command,
27
42
  validate: (input) => {
28
- if (!input.trim()) {
29
- return 'Command cannot be empty';
43
+ const trimmed = input.trim();
44
+ if (!trimmed) {
45
+ return constants_1.HELP_MESSAGES.emptyValue('Command');
30
46
  }
31
47
  return true;
32
- }
48
+ },
33
49
  },
34
50
  {
35
51
  type: 'input',
36
52
  name: 'directory',
37
53
  message: 'Working directory:',
38
- default: alias.directory
39
- }
40
- ]);
54
+ default: alias.directory,
55
+ validate: (input) => {
56
+ const trimmed = input.trim();
57
+ if (!trimmed) {
58
+ return constants_1.HELP_MESSAGES.emptyValue('Directory');
59
+ }
60
+ return true;
61
+ },
62
+ },
63
+ {
64
+ type: 'list',
65
+ name: 'pathMode',
66
+ message: 'Path mode:',
67
+ choices: [
68
+ {
69
+ name: 'Saved Directory (always run in the directory above)',
70
+ value: 'saved',
71
+ },
72
+ {
73
+ name: 'Current Directory (run in your current working directory)',
74
+ value: 'current',
75
+ },
76
+ ],
77
+ },
78
+ ];
79
+ const answers = await (0, prompts_1.promptMultiple)(prompts);
41
80
  // Check if anything changed
42
- if (answers.command === alias.command && answers.directory === alias.directory) {
81
+ const currentPathMode = alias.pathMode || 'saved'; // Default to 'saved' for backward compatibility
82
+ if (answers.command === alias.command &&
83
+ answers.directory === alias.directory &&
84
+ answers.pathMode === currentPathMode) {
43
85
  console.log(chalk_1.default.yellow('No changes made'));
44
86
  return;
45
87
  }
46
- // Update the alias
47
- const success = (0, storage_1.setAlias)(name, answers.command, answers.directory);
48
- if (success) {
49
- console.log(chalk_1.default.green(`✓ Updated command "${name}"`));
50
- console.log(chalk_1.default.gray(` Command: ${answers.command}`));
51
- console.log(chalk_1.default.gray(` Directory: ${answers.directory}`));
88
+ // Update the alias with path mode
89
+ try {
90
+ const success = (0, storage_1.setAlias)(name, answers.command, answers.directory, answers.pathMode);
91
+ if (success) {
92
+ console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.updated(name)}`));
93
+ console.log(chalk_1.default.gray(` Command: ${answers.command}`));
94
+ console.log(chalk_1.default.gray(` Directory: ${answers.directory}`));
95
+ console.log(chalk_1.default.gray(` Path Mode: ${answers.pathMode}`));
96
+ }
97
+ else {
98
+ (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotUpdate);
99
+ }
52
100
  }
53
- else {
54
- console.error(chalk_1.default.red('Error: Could not update command'));
55
- process.exit(1);
101
+ catch (error) {
102
+ (0, errors_1.exitWithError)(`${constants_1.ERROR_MESSAGES.couldNotUpdate}: ${error.message}`);
56
103
  }
57
104
  }
58
105
  catch (error) {
59
- if (error.isTtyError) {
60
- console.error(chalk_1.default.red('Error: Interactive prompt not supported in this environment'));
106
+ if ((0, errors_1.isInquirerTTYError)(error)) {
107
+ (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.interactiveNotSupported, errors_1.ExitCode.GeneralError);
61
108
  }
62
109
  else {
63
- console.error(chalk_1.default.red('Error:'), error.message);
110
+ (0, errors_1.handleError)(error, 'Failed to edit command');
64
111
  }
65
- process.exit(1);
66
112
  }
67
113
  }
68
114
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":";;;;;AAIA,kCA4DC;AAhED,wDAAgC;AAChC,kDAA0B;AAC1B,wCAAgD;AAEzC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC;QAEtD,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;wBAClB,OAAO,yBAAyB,CAAC;oBACnC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;aACzB;SACF,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,19 @@
1
+ /**
2
+ * Export all saved commands to a JSON 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
+ *
11
+ * @example
12
+ * ```
13
+ * // Export to a file
14
+ * exportCommand('./my-commands.json');
15
+ * // Output: ✓ Exported 15 command(s) to /path/to/my-commands.json
16
+ * ```
17
+ */
1
18
  export declare function exportCommand(filePath: string): void;
2
19
  //# sourceMappingURL=export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA+BpD"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAyDpD"}
@@ -41,34 +41,69 @@ const fs = __importStar(require("fs"));
41
41
  const path = __importStar(require("path"));
42
42
  const chalk_1 = __importDefault(require("chalk"));
43
43
  const storage_1 = require("../storage");
44
+ const errors_1 = require("../utils/errors");
45
+ const constants_1 = require("../utils/constants");
46
+ /**
47
+ * Export all saved commands to a JSON file
48
+ *
49
+ * Creates a portable backup of all commands with metadata, suitable for:
50
+ * - Sharing with team members
51
+ * - Backing up your command library
52
+ * - Migrating between machines
53
+ *
54
+ * @param filePath - The path where the export file should be created
55
+ *
56
+ * @example
57
+ * ```
58
+ * // Export to a file
59
+ * exportCommand('./my-commands.json');
60
+ * // Output: ✓ Exported 15 command(s) to /path/to/my-commands.json
61
+ * ```
62
+ */
44
63
  function exportCommand(filePath) {
45
64
  try {
65
+ // Validate file path
66
+ if (!filePath || !filePath.trim()) {
67
+ (0, errors_1.exitWithError)('File path cannot be empty', errors_1.ExitCode.InvalidInput);
68
+ }
46
69
  const aliases = (0, storage_1.loadAliases)();
47
70
  const names = Object.keys(aliases);
48
71
  if (names.length === 0) {
49
- console.log(chalk_1.default.yellow('No saved commands to export.'));
72
+ console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.noCommands));
50
73
  return;
51
74
  }
52
75
  // Resolve the file path
53
76
  const resolvedPath = path.resolve(filePath);
77
+ // Check if file already exists and warn user
78
+ if (fs.existsSync(resolvedPath)) {
79
+ console.log(chalk_1.default.yellow(`Warning: File already exists and will be overwritten: ${resolvedPath}`));
80
+ }
81
+ // Ensure directory exists
82
+ const dirPath = path.dirname(resolvedPath);
83
+ if (!fs.existsSync(dirPath)) {
84
+ try {
85
+ fs.mkdirSync(dirPath, { recursive: true });
86
+ }
87
+ catch (mkdirError) {
88
+ (0, errors_1.exitWithError)(`Could not create directory: ${mkdirError.message}`, errors_1.ExitCode.PermissionDenied);
89
+ }
90
+ }
54
91
  // Export as JSON
55
92
  const exportData = {
56
93
  exportedAt: new Date().toISOString(),
57
94
  version: '1.0',
58
- aliases: aliases
95
+ aliases: aliases,
59
96
  };
60
97
  try {
61
98
  fs.writeFileSync(resolvedPath, JSON.stringify(exportData, null, 2), 'utf8');
62
- console.log(chalk_1.default.green(`✓ Exported ${names.length} command(s) to ${resolvedPath}`));
99
+ console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.exported(names.length, resolvedPath)}`));
63
100
  }
64
101
  catch (writeError) {
65
- console.error(chalk_1.default.red('Error: Could not write to file'), writeError.message);
66
- process.exit(1);
102
+ (0, errors_1.exitWithError)(`${constants_1.ERROR_MESSAGES.couldNotWrite}: ${writeError.message}`, errors_1.ExitCode.PermissionDenied);
67
103
  }
68
104
  }
69
105
  catch (error) {
70
- console.error(chalk_1.default.red('Error:'), error.message);
71
- process.exit(1);
106
+ (0, errors_1.handleError)(error, 'Failed to export commands');
72
107
  }
73
108
  }
74
109
  //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,sCA+BC;AApCD,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAC1B,wCAAyC;AAEzC,SAAgB,aAAa,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACH,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,8BAA8B,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,iBAAiB;QACjB,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,MAAM,kBAAkB,YAAY,EAAE,CAAC,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAG,UAAoB,CAAC,OAAO,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,sCAyDC;AAjFD,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAC1B,wCAAyC;AACzC,4CAAuE;AACvE,kDAAqF;AAErF;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,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,iBAAiB;QACjB,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5E,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,2 +1,23 @@
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
+ */
1
22
  export declare function importCommand(filePath: string): Promise<void>;
2
23
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAYA,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JnE"}
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"}
@@ -39,17 +39,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.importCommand = importCommand;
40
40
  const fs = __importStar(require("fs"));
41
41
  const path = __importStar(require("path"));
42
- const inquirer_1 = __importDefault(require("inquirer"));
43
42
  const chalk_1 = __importDefault(require("chalk"));
44
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
+ */
45
68
  async function importCommand(filePath) {
46
69
  try {
47
70
  // Resolve the file path
48
71
  const resolvedPath = path.resolve(filePath);
49
72
  // Check if file exists
50
73
  if (!fs.existsSync(resolvedPath)) {
51
- console.error(chalk_1.default.red(`Error: File not found: ${resolvedPath}`));
52
- process.exit(1);
74
+ (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.fileNotFound(resolvedPath), errors_1.ExitCode.FileNotFound);
53
75
  }
54
76
  // Read and parse the file
55
77
  let importData;
@@ -58,24 +80,46 @@ async function importCommand(filePath) {
58
80
  importData = JSON.parse(fileContent);
59
81
  }
60
82
  catch (parseError) {
61
- console.error(chalk_1.default.red('Error: Could not parse file. Make sure it is valid JSON.'));
83
+ console.error(chalk_1.default.red(`Error: ${constants_1.ERROR_MESSAGES.invalidJson}`));
62
84
  console.error(parseError.message);
63
- process.exit(1);
85
+ process.exit(errors_1.ExitCode.InvalidInput);
64
86
  }
65
87
  // Validate the import data structure
66
88
  if (!importData.aliases || typeof importData.aliases !== 'object') {
67
- console.error(chalk_1.default.red('Error: Invalid file format. Expected an "aliases" object.'));
68
- process.exit(1);
89
+ (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.invalidFormat, errors_1.ExitCode.InvalidInput);
69
90
  }
70
91
  const importAliases = importData.aliases;
71
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
+ }
72
105
  if (importNames.length === 0) {
73
- console.log(chalk_1.default.yellow('No commands found in file.'));
106
+ console.log(chalk_1.default.yellow(constants_1.HELP_MESSAGES.noCommands));
74
107
  return;
75
108
  }
76
109
  console.log(chalk_1.default.blue(`Found ${importNames.length} command(s) to import\n`));
77
- // Load existing aliases
110
+ // Create backup of existing config before importing
78
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
+ }
79
123
  const conflicts = [];
80
124
  const newAliases = [];
81
125
  // Check for conflicts
@@ -96,40 +140,43 @@ async function importCommand(filePath) {
96
140
  console.log(chalk_1.default.gray(` ${existingAliases[name].command}`));
97
141
  console.log(chalk_1.default.gray(`Importing: ${name}`));
98
142
  console.log(chalk_1.default.gray(` ${importAliases[name].command}\n`));
99
- const { action } = await inquirer_1.default.prompt([
100
- {
101
- type: 'list',
102
- name: 'action',
103
- message: `What should we do with "${name}"?`,
104
- choices: [
105
- { name: 'Overwrite existing', value: 'overwrite' },
106
- { name: 'Skip this command', value: 'skip' },
107
- { name: 'Rename imported command', value: 'rename' }
108
- ]
109
- }
110
- ]);
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);
111
154
  if (action === 'rename') {
112
- const { newName } = await inquirer_1.default.prompt([
113
- {
114
- type: 'input',
115
- name: 'newName',
116
- message: 'Enter new name:',
117
- default: `${name}_imported`,
118
- validate: (input) => {
119
- if (!input.trim()) {
120
- return 'Name cannot be empty';
121
- }
122
- if (input.includes(' ')) {
123
- return 'Name cannot contain spaces';
124
- }
125
- if ((0, storage_1.aliasExists)(input) || resolutions[input]) {
126
- return `Name "${input}" is already taken`;
127
- }
128
- return true;
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`;
129
174
  }
130
- }
131
- ]);
132
- resolutions[name] = { action: 'rename', newName };
175
+ return true;
176
+ },
177
+ };
178
+ const newName = await (0, prompts_1.promptText)(renamePrompt);
179
+ resolutions[name] = { action: 'rename', newName: newName.trim() };
133
180
  }
134
181
  else {
135
182
  resolutions[name] = { action };
@@ -166,25 +213,23 @@ async function importCommand(filePath) {
166
213
  // Save the updated aliases
167
214
  const success = (0, storage_1.saveAliases)(updatedAliases);
168
215
  if (success) {
169
- console.log(chalk_1.default.green(`✓ Import complete:`));
216
+ console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.importComplete}:`));
170
217
  console.log(chalk_1.default.gray(` Imported: ${importedCount} command(s)`));
171
218
  if (skippedCount > 0) {
172
219
  console.log(chalk_1.default.gray(` Skipped: ${skippedCount} command(s)`));
173
220
  }
174
221
  }
175
222
  else {
176
- console.error(chalk_1.default.red('Error: Could not save imported commands'));
177
- process.exit(1);
223
+ (0, errors_1.exitWithError)('Could not save imported commands');
178
224
  }
179
225
  }
180
226
  catch (error) {
181
- if (error.isTtyError) {
182
- console.error(chalk_1.default.red('Error: Interactive prompt not supported in this environment'));
227
+ if ((0, errors_1.isInquirerTTYError)(error)) {
228
+ (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.interactiveNotSupported, errors_1.ExitCode.GeneralError);
183
229
  }
184
230
  else {
185
- console.error(chalk_1.default.red('Error:'), error.message);
231
+ (0, errors_1.handleError)(error, 'Failed to import commands');
186
232
  }
187
- process.exit(1);
188
233
  }
189
234
  }
190
235
  //# sourceMappingURL=import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,22 @@
1
+ /**
2
+ * List all saved commands with their details
3
+ *
4
+ * Displays commands alphabetically with their command text and working directory.
5
+ * If no commands are saved, provides guidance on how to save commands.
6
+ *
7
+ * @example
8
+ * ```
9
+ * // Output:
10
+ * // Saved commands (3):
11
+ * //
12
+ * // build-prod
13
+ * // Command: npm run build --production
14
+ * // Directory: /home/user/project
15
+ * //
16
+ * // deploy
17
+ * // Command: ./deploy.sh
18
+ * // Directory: /home/user/scripts
19
+ * ```
20
+ */
1
21
  export declare function listCommand(): void;
2
22
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,IAAI,IAAI,CA2BlC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAkDlC"}