aliasmate 1.3.1 → 1.4.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 (55) hide show
  1. package/README.md +159 -13
  2. package/dist/cli.js +6 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/changelog.d.ts +9 -0
  5. package/dist/commands/changelog.d.ts.map +1 -0
  6. package/dist/commands/changelog.js +72 -0
  7. package/dist/commands/changelog.js.map +1 -0
  8. package/dist/commands/edit.d.ts.map +1 -1
  9. package/dist/commands/edit.js +77 -3
  10. package/dist/commands/edit.js.map +1 -1
  11. package/dist/commands/list.d.ts.map +1 -1
  12. package/dist/commands/list.js +4 -0
  13. package/dist/commands/list.js.map +1 -1
  14. package/dist/commands/prev.d.ts +1 -1
  15. package/dist/commands/prev.d.ts.map +1 -1
  16. package/dist/commands/prev.js +75 -8
  17. package/dist/commands/prev.js.map +1 -1
  18. package/dist/commands/run.d.ts.map +1 -1
  19. package/dist/commands/run.js +23 -2
  20. package/dist/commands/run.js.map +1 -1
  21. package/dist/commands/save.d.ts.map +1 -1
  22. package/dist/commands/save.js +61 -2
  23. package/dist/commands/save.js.map +1 -1
  24. package/dist/storage/index.d.ts +4 -1
  25. package/dist/storage/index.d.ts.map +1 -1
  26. package/dist/storage/index.js +3 -1
  27. package/dist/storage/index.js.map +1 -1
  28. package/dist/utils/changelog.d.ts +41 -0
  29. package/dist/utils/changelog.d.ts.map +1 -0
  30. package/dist/utils/changelog.js +193 -0
  31. package/dist/utils/changelog.js.map +1 -0
  32. package/dist/utils/constants.d.ts +1 -1
  33. package/dist/utils/constants.js +1 -1
  34. package/dist/utils/env.d.ts +64 -0
  35. package/dist/utils/env.d.ts.map +1 -0
  36. package/dist/utils/env.js +200 -0
  37. package/dist/utils/env.js.map +1 -0
  38. package/dist/utils/executor.d.ts +2 -1
  39. package/dist/utils/executor.d.ts.map +1 -1
  40. package/dist/utils/executor.js +3 -1
  41. package/dist/utils/executor.js.map +1 -1
  42. package/dist/utils/history.d.ts.map +1 -1
  43. package/dist/utils/history.js +6 -2
  44. package/dist/utils/history.js.map +1 -1
  45. package/dist/utils/llm-generator.d.ts.map +1 -1
  46. package/dist/utils/llm-generator.js +122 -6
  47. package/dist/utils/llm-generator.js.map +1 -1
  48. package/dist/utils/onboarding.d.ts.map +1 -1
  49. package/dist/utils/onboarding.js +59 -4
  50. package/dist/utils/onboarding.js.map +1 -1
  51. package/dist/utils/prompts.d.ts +11 -1
  52. package/dist/utils/prompts.d.ts.map +1 -1
  53. package/dist/utils/prompts.js.map +1 -1
  54. package/package.json +6 -2
  55. package/whats-new.json +125 -0
@@ -9,6 +9,8 @@ const history_1 = require("../utils/history");
9
9
  const storage_1 = require("../storage");
10
10
  const errors_1 = require("../utils/errors");
11
11
  const constants_1 = require("../utils/constants");
12
+ const prompts_1 = require("../utils/prompts");
13
+ const env_1 = require("../utils/env");
12
14
  /**
13
15
  * Save the previous command from shell history
14
16
  *
@@ -22,17 +24,24 @@ const constants_1 = require("../utils/constants");
22
24
  * // The npm command is saved and can be re-run from anywhere
23
25
  * ```
24
26
  */
25
- function prevCommand(name, cwd = process.cwd()) {
27
+ async function prevCommand(name, cwd = process.cwd()) {
26
28
  try {
27
29
  // Get the last command from history
28
30
  const lastCommand = (0, history_1.getLastCommand)();
29
31
  if (!lastCommand) {
30
32
  console.error(chalk_1.default.red(`Error: ${constants_1.ERROR_MESSAGES.historyNotAvailable}`));
31
- console.log(chalk_1.default.yellow('\nTroubleshooting:'));
32
- console.log(chalk_1.default.gray('1. Make sure your shell history is enabled'));
33
- console.log(chalk_1.default.gray('2. For real-time history capture, configure your shell:'));
34
- console.log(chalk_1.default.gray(` ${(0, history_1.getHistoryConfigInstructions)()}`));
35
- console.log(chalk_1.default.gray('3. Or use "aliasmate save" to manually enter the command'));
33
+ console.log(chalk_1.default.yellow('\nWhy this happens:'));
34
+ console.log(chalk_1.default.gray('Most shells only write commands to history when the shell exits.'));
35
+ console.log(chalk_1.default.gray('This means recent commands may not be available yet.'));
36
+ console.log(chalk_1.default.yellow('\nSolution (Recommended):'));
37
+ console.log(chalk_1.default.gray('Configure your shell for real-time history writing:'));
38
+ console.log(chalk_1.default.cyan(` ${(0, history_1.getHistoryConfigInstructions)()}`));
39
+ console.log(chalk_1.default.yellow('\nAlternative:'));
40
+ console.log(chalk_1.default.gray('Use') + chalk_1.default.cyan(' aliasmate save ') + chalk_1.default.gray('to manually enter the command'));
41
+ console.log(chalk_1.default.yellow('\nWhat you can do right now:'));
42
+ console.log(chalk_1.default.gray('1. Configure your shell as shown above'));
43
+ console.log(chalk_1.default.gray('2. Close and reopen your terminal'));
44
+ console.log(chalk_1.default.gray('3. Try running your command again, then use') + chalk_1.default.cyan(' aliasmate prev'));
36
45
  process.exit(errors_1.ExitCode.GeneralError);
37
46
  }
38
47
  // Validate command name
@@ -45,14 +54,72 @@ function prevCommand(name, cwd = process.cwd()) {
45
54
  if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
46
55
  (0, errors_1.exitWithError)('Command name can only contain letters, numbers, hyphens, and underscores', errors_1.ExitCode.InvalidInput);
47
56
  }
48
- // Save the command with the current directory (default to 'saved' path mode for prev command)
57
+ // Ask if user wants to capture environment variables
58
+ const captureEnvPrompt = {
59
+ type: 'confirm',
60
+ name: 'captureEnv',
61
+ message: 'Capture current environment variables with this command?',
62
+ default: false,
63
+ };
64
+ const shouldCaptureEnv = await (0, prompts_1.promptConfirm)(captureEnvPrompt);
65
+ let selectedEnv = {};
66
+ if (shouldCaptureEnv) {
67
+ const userEnv = (0, env_1.getUserEnvVars)();
68
+ const { sensitive, safe } = (0, env_1.categorizeEnvVars)(userEnv);
69
+ if (Object.keys(userEnv).length === 0) {
70
+ console.log(chalk_1.default.yellow('No user-defined environment variables found.'));
71
+ }
72
+ else {
73
+ // Show warning if there are sensitive vars
74
+ if (Object.keys(sensitive).length > 0) {
75
+ console.log(chalk_1.default.yellow('\n⚠️ Warning: Some environment variables appear to contain sensitive data:'));
76
+ Object.keys(sensitive).forEach(key => {
77
+ console.log(chalk_1.default.yellow(` - ${key}`));
78
+ });
79
+ console.log(chalk_1.default.gray('(These may contain API keys, tokens, or passwords)\n'));
80
+ }
81
+ // Let user select which vars to save
82
+ const envChoices = [
83
+ ...Object.keys(safe).map(key => ({
84
+ name: (0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0],
85
+ value: key,
86
+ checked: true, // Safe vars are checked by default
87
+ })),
88
+ ...Object.keys(sensitive).map(key => ({
89
+ name: `${(0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0]} ${chalk_1.default.yellow('(sensitive)')}`,
90
+ value: key,
91
+ checked: false, // Sensitive vars are unchecked by default
92
+ })),
93
+ ];
94
+ if (envChoices.length > 0) {
95
+ const checkboxPrompt = {
96
+ type: 'checkbox',
97
+ name: 'envVars',
98
+ message: 'Select environment variables to save (use space to toggle):',
99
+ choices: envChoices,
100
+ };
101
+ const selectedVars = await (0, prompts_1.promptMultiple)([checkboxPrompt]);
102
+ // Build the selected env object
103
+ for (const varName of selectedVars.envVars) {
104
+ selectedEnv[varName] = userEnv[varName];
105
+ }
106
+ if (Object.keys(selectedEnv).length > 0) {
107
+ console.log(chalk_1.default.green(`\n✓ ${Object.keys(selectedEnv).length} environment variable(s) will be saved`));
108
+ }
109
+ }
110
+ }
111
+ }
112
+ // Save the command with the current directory and env vars (default to 'saved' path mode for prev command)
49
113
  try {
50
- const success = (0, storage_1.setAlias)(name, lastCommand, cwd, 'saved');
114
+ const success = (0, storage_1.setAlias)(name, lastCommand, cwd, 'saved', Object.keys(selectedEnv).length > 0 ? selectedEnv : undefined);
51
115
  if (success) {
52
116
  console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.saved(name)}`));
53
117
  console.log(chalk_1.default.gray(` Command: ${lastCommand}`));
54
118
  console.log(chalk_1.default.gray(` Directory: ${cwd}`));
55
119
  console.log(chalk_1.default.gray(` Path Mode: saved (use 'aliasmate edit ${name}' to change)`));
120
+ if (Object.keys(selectedEnv).length > 0) {
121
+ console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(selectedEnv).length} saved`));
122
+ }
56
123
  }
57
124
  else {
58
125
  (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotSave);
@@ -1 +1 @@
1
- {"version":3,"file":"prev.js","sourceRoot":"","sources":["../../src/commands/prev.ts"],"names":[],"mappings":";;;;;AAmBA,kCA+CC;AAlED,kDAA0B;AAC1B,8CAAgF;AAChF,wCAAsC;AACtC,4CAAuE;AACvE,kDAAsE;AAEtE;;;;;;;;;;;;GAYG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACnE,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAA,wBAAc,GAAE,CAAC;QAErC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,0BAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,IAAA,sCAA4B,GAAE,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1B,IAAA,sBAAa,EAAC,8BAA8B,EAAE,iBAAQ,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAA,sBAAa,EAAC,oCAAoC,EAAE,iBAAQ,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAA,sBAAa,EACX,0EAA0E,EAC1E,iBAAQ,CAAC,YAAY,CACtB,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAE1D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,4BAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2CAA2C,IAAI,cAAc,CAAC,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAA,sBAAa,EAAC,0BAAc,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,sBAAa,EAAC,GAAG,0BAAc,CAAC,YAAY,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,oBAAW,EAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prev.js","sourceRoot":"","sources":["../../src/commands/prev.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDnF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFnF"}
@@ -10,6 +10,7 @@ const executor_1 = require("../utils/executor");
10
10
  const paths_1 = require("../utils/paths");
11
11
  const errors_1 = require("../utils/errors");
12
12
  const constants_1 = require("../utils/constants");
13
+ const env_1 = require("../utils/env");
13
14
  /**
14
15
  * Run a saved command, optionally overriding its working directory
15
16
  *
@@ -60,9 +61,29 @@ async function runCommand(name, overridePath) {
60
61
  else {
61
62
  console.log(chalk_1.default.gray(`Path Mode: ${pathMode}`));
62
63
  }
64
+ // Handle environment variables
65
+ let envToUse = process.env;
66
+ if (alias.env && Object.keys(alias.env).length > 0) {
67
+ envToUse = (0, env_1.mergeEnvVars)(alias.env, process.env);
68
+ console.log(chalk_1.default.gray(`Environment Variables: ${Object.keys(alias.env).length} loaded`));
69
+ // Show any overrides
70
+ const overrides = (0, env_1.getEnvOverrides)(alias.env, process.env);
71
+ if (overrides.length > 0) {
72
+ console.log(chalk_1.default.yellow(`\n⚠️ ${overrides.length} saved env variable(s) overridden by current environment:`));
73
+ overrides.forEach(({ name }) => {
74
+ console.log(chalk_1.default.yellow(` - ${name}`));
75
+ });
76
+ }
77
+ // Show masked env vars for visibility
78
+ const masked = (0, env_1.maskSensitiveEnvVars)(alias.env);
79
+ console.log(chalk_1.default.gray('\nSaved environment variables:'));
80
+ Object.entries(masked).forEach(([key, value]) => {
81
+ console.log(chalk_1.default.gray(` ${key}=${value}`));
82
+ });
83
+ }
63
84
  console.log();
64
- // Execute the command
65
- const result = await (0, executor_1.executeCommand)(alias.command, runDir);
85
+ // Execute the command with merged environment
86
+ const result = await (0, executor_1.executeCommand)(alias.command, runDir, envToUse);
66
87
  if (!result.success) {
67
88
  console.error(chalk_1.default.red('\n✗ Command failed'));
68
89
  if (result.exitCode !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmH5E"}
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsL5E"}
@@ -9,6 +9,7 @@ const storage_1 = require("../storage");
9
9
  const errors_1 = require("../utils/errors");
10
10
  const constants_1 = require("../utils/constants");
11
11
  const prompts_1 = require("../utils/prompts");
12
+ const env_1 = require("../utils/env");
12
13
  /**
13
14
  * Interactively save a new command with prompts
14
15
  *
@@ -101,14 +102,72 @@ async function saveCommand(cwd = process.cwd()) {
101
102
  return;
102
103
  }
103
104
  }
104
- // Save the command with path mode
105
+ // Ask if user wants to capture environment variables
106
+ const captureEnvPrompt = {
107
+ type: 'confirm',
108
+ name: 'captureEnv',
109
+ message: 'Capture current environment variables with this command?',
110
+ default: false,
111
+ };
112
+ const shouldCaptureEnv = await (0, prompts_1.promptConfirm)(captureEnvPrompt);
113
+ let selectedEnv = {};
114
+ if (shouldCaptureEnv) {
115
+ const userEnv = (0, env_1.getUserEnvVars)();
116
+ const { sensitive, safe } = (0, env_1.categorizeEnvVars)(userEnv);
117
+ if (Object.keys(userEnv).length === 0) {
118
+ console.log(chalk_1.default.yellow('No user-defined environment variables found.'));
119
+ }
120
+ else {
121
+ // Show warning if there are sensitive vars
122
+ if (Object.keys(sensitive).length > 0) {
123
+ console.log(chalk_1.default.yellow('\n⚠️ Warning: Some environment variables appear to contain sensitive data:'));
124
+ Object.keys(sensitive).forEach(key => {
125
+ console.log(chalk_1.default.yellow(` - ${key}`));
126
+ });
127
+ console.log(chalk_1.default.gray('(These may contain API keys, tokens, or passwords)\n'));
128
+ }
129
+ // Let user select which vars to save
130
+ const envChoices = [
131
+ ...Object.keys(safe).map(key => ({
132
+ name: (0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0],
133
+ value: key,
134
+ checked: true, // Safe vars are checked by default
135
+ })),
136
+ ...Object.keys(sensitive).map(key => ({
137
+ name: `${(0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0]} ${chalk_1.default.yellow('(sensitive)')}`,
138
+ value: key,
139
+ checked: false, // Sensitive vars are unchecked by default
140
+ })),
141
+ ];
142
+ if (envChoices.length > 0) {
143
+ const checkboxPrompt = {
144
+ type: 'checkbox',
145
+ name: 'envVars',
146
+ message: 'Select environment variables to save (use space to toggle):',
147
+ choices: envChoices,
148
+ };
149
+ const selectedVars = await (0, prompts_1.promptMultiple)([checkboxPrompt]);
150
+ // Build the selected env object
151
+ for (const varName of selectedVars.envVars) {
152
+ selectedEnv[varName] = userEnv[varName];
153
+ }
154
+ if (Object.keys(selectedEnv).length > 0) {
155
+ console.log(chalk_1.default.green(`\n✓ ${Object.keys(selectedEnv).length} environment variable(s) will be saved`));
156
+ }
157
+ }
158
+ }
159
+ }
160
+ // Save the command with path mode and env vars
105
161
  try {
106
- const success = (0, storage_1.setAlias)(answers.name.trim(), answers.command, answers.directory, answers.pathMode);
162
+ const success = (0, storage_1.setAlias)(answers.name.trim(), answers.command, answers.directory, answers.pathMode, Object.keys(selectedEnv).length > 0 ? selectedEnv : undefined);
107
163
  if (success) {
108
164
  console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.saved(answers.name.trim())}`));
109
165
  console.log(chalk_1.default.gray(` Command: ${answers.command}`));
110
166
  console.log(chalk_1.default.gray(` Directory: ${answers.directory}`));
111
167
  console.log(chalk_1.default.gray(` Path Mode: ${answers.pathMode}`));
168
+ if (Object.keys(selectedEnv).length > 0) {
169
+ console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(selectedEnv).length} saved`));
170
+ }
112
171
  }
113
172
  else {
114
173
  (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotSave);
@@ -1 +1 @@
1
- {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface CommandAlias {
14
14
  directory: string;
15
15
  /** Path mode: 'saved' (use stored directory) or 'current' (use current directory) */
16
16
  pathMode?: PathMode;
17
+ /** Environment variables to set when running the command */
18
+ env?: Record<string, string>;
17
19
  /** ISO 8601 timestamp when the command was created */
18
20
  createdAt: string;
19
21
  /** ISO 8601 timestamp when the command was last modified */
@@ -59,10 +61,11 @@ export declare function getAlias(name: string): CommandAlias | undefined;
59
61
  * @param command - The shell command to save
60
62
  * @param directory - The working directory for the command
61
63
  * @param pathMode - Optional path mode ('saved' or 'current'), defaults to 'saved'
64
+ * @param env - Optional environment variables to save with the command
62
65
  * @returns true if successful, false otherwise
63
66
  * @throws {Error} If the directory doesn't exist or isn't accessible
64
67
  */
65
- export declare function setAlias(name: string, command: string, directory: string, pathMode?: PathMode): boolean;
68
+ export declare function setAlias(name: string, command: string, directory: string, pathMode?: PathMode, env?: Record<string, string>): boolean;
66
69
  /**
67
70
  * Delete an alias by name
68
71
  * @param name - The name of the alias to delete
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAUrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAczC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAsBzD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAkB,GAC3B,OAAO,CA0BT;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAUrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,WAAW,CAczC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAsBzD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,QAAkB,EAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CA2BT;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD"}
@@ -127,10 +127,11 @@ function getAlias(name) {
127
127
  * @param command - The shell command to save
128
128
  * @param directory - The working directory for the command
129
129
  * @param pathMode - Optional path mode ('saved' or 'current'), defaults to 'saved'
130
+ * @param env - Optional environment variables to save with the command
130
131
  * @returns true if successful, false otherwise
131
132
  * @throws {Error} If the directory doesn't exist or isn't accessible
132
133
  */
133
- function setAlias(name, command, directory, pathMode = 'saved') {
134
+ function setAlias(name, command, directory, pathMode = 'saved', env) {
134
135
  // Validate inputs
135
136
  if (!name || !name.trim()) {
136
137
  throw new Error('Alias name cannot be empty');
@@ -150,6 +151,7 @@ function setAlias(name, command, directory, pathMode = 'saved') {
150
151
  command: command.trim(),
151
152
  directory: path.resolve(directory),
152
153
  pathMode,
154
+ ...(env && Object.keys(env).length > 0 ? { env } : {}),
153
155
  createdAt: aliases[name]?.createdAt || new Date().toISOString(),
154
156
  updatedAt: new Date().toISOString(),
155
157
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Changelog utilities for displaying cumulative version changes
3
+ */
4
+ interface ChangelogEntry {
5
+ version: string;
6
+ date: string;
7
+ sections: {
8
+ added?: string[];
9
+ changed?: string[];
10
+ fixed?: string[];
11
+ deprecated?: string[];
12
+ removed?: string[];
13
+ security?: string[];
14
+ };
15
+ }
16
+ /**
17
+ * Get all versions between fromVersion and toVersion (inclusive)
18
+ */
19
+ export declare function getVersionsInRange(fromVersion: string, toVersion: string): string[];
20
+ /**
21
+ * Get changes for a specific version
22
+ */
23
+ export declare function getVersionChanges(version: string): ChangelogEntry | null;
24
+ /**
25
+ * Get cumulative changes between two versions
26
+ */
27
+ export declare function getCumulativeChanges(fromVersion: string, toVersion: string): ChangelogEntry[];
28
+ /**
29
+ * Display changes for a single version
30
+ */
31
+ export declare function displayVersionChanges(entry: ChangelogEntry): void;
32
+ /**
33
+ * Display cumulative changes between versions
34
+ */
35
+ export declare function displayCumulativeChanges(fromVersion: string, toVersion: string): void;
36
+ /**
37
+ * Get a summary of changes suitable for upgrade notifications
38
+ */
39
+ export declare function getUpgradeSummary(fromVersion: string, toVersion: string): string[];
40
+ export {};
41
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAwCD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAKxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAS7F;AAaD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CA6BjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwBrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAelF"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * Changelog utilities for displaying cumulative version changes
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.getVersionsInRange = getVersionsInRange;
43
+ exports.getVersionChanges = getVersionChanges;
44
+ exports.getCumulativeChanges = getCumulativeChanges;
45
+ exports.displayVersionChanges = displayVersionChanges;
46
+ exports.displayCumulativeChanges = displayCumulativeChanges;
47
+ exports.getUpgradeSummary = getUpgradeSummary;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const chalk_1 = __importDefault(require("chalk"));
51
+ /**
52
+ * Compare semantic version strings
53
+ * @returns -1 if v1 < v2, 0 if equal, 1 if v1 > v2
54
+ */
55
+ function compareVersions(v1, v2) {
56
+ const parts1 = v1.split('.').map(Number);
57
+ const parts2 = v2.split('.').map(Number);
58
+ for (let i = 0; i < 3; i++) {
59
+ if (parts1[i] > parts2[i])
60
+ return 1;
61
+ if (parts1[i] < parts2[i])
62
+ return -1;
63
+ }
64
+ return 0;
65
+ }
66
+ /**
67
+ * Load what's new data from file
68
+ */
69
+ function loadWhatsNewData() {
70
+ const whatsNewPath = path.join(__dirname, '../../whats-new.json');
71
+ if (!fs.existsSync(whatsNewPath)) {
72
+ return null;
73
+ }
74
+ try {
75
+ const data = fs.readFileSync(whatsNewPath, 'utf8');
76
+ return JSON.parse(data);
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ }
82
+ /**
83
+ * Get all versions between fromVersion and toVersion (inclusive)
84
+ */
85
+ function getVersionsInRange(fromVersion, toVersion) {
86
+ const data = loadWhatsNewData();
87
+ if (!data)
88
+ return [];
89
+ const allVersions = Object.keys(data).sort(compareVersions);
90
+ return allVersions.filter((version) => {
91
+ return compareVersions(version, fromVersion) >= 0 &&
92
+ compareVersions(version, toVersion) <= 0;
93
+ });
94
+ }
95
+ /**
96
+ * Get changes for a specific version
97
+ */
98
+ function getVersionChanges(version) {
99
+ const data = loadWhatsNewData();
100
+ if (!data)
101
+ return null;
102
+ return data[version] || null;
103
+ }
104
+ /**
105
+ * Get cumulative changes between two versions
106
+ */
107
+ function getCumulativeChanges(fromVersion, toVersion) {
108
+ const versions = getVersionsInRange(fromVersion, toVersion);
109
+ const data = loadWhatsNewData();
110
+ if (!data)
111
+ return [];
112
+ return versions
113
+ .map((v) => data[v])
114
+ .filter((entry) => entry !== undefined);
115
+ }
116
+ /**
117
+ * Format a changelog section for display
118
+ */
119
+ function formatSection(title, items, icon) {
120
+ let output = chalk_1.default.bold(`\n${icon} ${title}:\n`);
121
+ items.forEach((item) => {
122
+ output += chalk_1.default.gray(` • ${item}\n`);
123
+ });
124
+ return output;
125
+ }
126
+ /**
127
+ * Display changes for a single version
128
+ */
129
+ function displayVersionChanges(entry) {
130
+ console.log();
131
+ console.log(chalk_1.default.bold.cyan(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
132
+ console.log(chalk_1.default.bold.green(`Version ${entry.version}`) + chalk_1.default.gray(` (${entry.date})`));
133
+ console.log(chalk_1.default.bold.cyan(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
134
+ if (entry.sections.added) {
135
+ console.log(formatSection('Added', entry.sections.added, '✨'));
136
+ }
137
+ if (entry.sections.changed) {
138
+ console.log(formatSection('Changed', entry.sections.changed, '🔄'));
139
+ }
140
+ if (entry.sections.fixed) {
141
+ console.log(formatSection('Fixed', entry.sections.fixed, '🐛'));
142
+ }
143
+ if (entry.sections.deprecated) {
144
+ console.log(formatSection('Deprecated', entry.sections.deprecated, '⚠️'));
145
+ }
146
+ if (entry.sections.removed) {
147
+ console.log(formatSection('Removed', entry.sections.removed, '🗑️'));
148
+ }
149
+ if (entry.sections.security) {
150
+ console.log(formatSection('Security', entry.sections.security, '🔒'));
151
+ }
152
+ }
153
+ /**
154
+ * Display cumulative changes between versions
155
+ */
156
+ function displayCumulativeChanges(fromVersion, toVersion) {
157
+ const changes = getCumulativeChanges(fromVersion, toVersion);
158
+ if (changes.length === 0) {
159
+ console.log(chalk_1.default.yellow('\nNo changelog data available for this version range.'));
160
+ return;
161
+ }
162
+ console.log();
163
+ console.log(chalk_1.default.bold.magenta('╔═══════════════════════════════════════════════════════╗'));
164
+ console.log(chalk_1.default.bold.magenta('║ 📋 CUMULATIVE CHANGELOG ║'));
165
+ console.log(chalk_1.default.bold.magenta(`║ ${fromVersion} → ${toVersion} ║`));
166
+ console.log(chalk_1.default.bold.magenta('╚═══════════════════════════════════════════════════════╝'));
167
+ // Display in reverse chronological order (newest first)
168
+ changes.reverse().forEach((entry) => {
169
+ displayVersionChanges(entry);
170
+ });
171
+ console.log();
172
+ console.log(chalk_1.default.bold.cyan(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
173
+ console.log(chalk_1.default.bold.green(`✅ Total of ${changes.length} version(s) included`));
174
+ console.log(chalk_1.default.bold.cyan(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
175
+ console.log();
176
+ }
177
+ /**
178
+ * Get a summary of changes suitable for upgrade notifications
179
+ */
180
+ function getUpgradeSummary(fromVersion, toVersion) {
181
+ const changes = getCumulativeChanges(fromVersion, toVersion);
182
+ const highlights = [];
183
+ changes.forEach((entry) => {
184
+ // Collect the most important items (max 3 per version)
185
+ const important = [
186
+ ...(entry.sections.added?.slice(0, 2) || []),
187
+ ...(entry.sections.security?.slice(0, 1) || []),
188
+ ];
189
+ highlights.push(...important);
190
+ });
191
+ return highlights.slice(0, 5); // Return top 5 highlights
192
+ }
193
+ //# sourceMappingURL=changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"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"}