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.
- package/README.md +159 -13
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/changelog.d.ts +9 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +72 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/edit.d.ts.map +1 -1
- package/dist/commands/edit.js +77 -3
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +4 -0
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/prev.d.ts +1 -1
- package/dist/commands/prev.d.ts.map +1 -1
- package/dist/commands/prev.js +75 -8
- package/dist/commands/prev.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +23 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/save.d.ts.map +1 -1
- package/dist/commands/save.js +61 -2
- package/dist/commands/save.js.map +1 -1
- package/dist/storage/index.d.ts +4 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +3 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/utils/changelog.d.ts +41 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +193 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/env.d.ts +64 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +200 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/executor.d.ts +2 -1
- package/dist/utils/executor.d.ts.map +1 -1
- package/dist/utils/executor.js +3 -1
- package/dist/utils/executor.js.map +1 -1
- package/dist/utils/history.d.ts.map +1 -1
- package/dist/utils/history.js +6 -2
- package/dist/utils/history.js.map +1 -1
- package/dist/utils/llm-generator.d.ts.map +1 -1
- package/dist/utils/llm-generator.js +122 -6
- package/dist/utils/llm-generator.js.map +1 -1
- package/dist/utils/onboarding.d.ts.map +1 -1
- package/dist/utils/onboarding.js +59 -4
- package/dist/utils/onboarding.js.map +1 -1
- package/dist/utils/prompts.d.ts +11 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js.map +1 -1
- package/package.json +6 -2
- package/whats-new.json +125 -0
package/dist/commands/prev.js
CHANGED
|
@@ -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('\
|
|
32
|
-
console.log(chalk_1.default.gray('
|
|
33
|
-
console.log(chalk_1.default.gray('
|
|
34
|
-
console.log(chalk_1.default.
|
|
35
|
-
console.log(chalk_1.default.gray('
|
|
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
|
-
//
|
|
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":";;;;;
|
|
1
|
+
{"version":3,"file":"prev.js","sourceRoot":"","sources":["../../src/commands/prev.ts"],"names":[],"mappings":";;;;;AA8BA,kCA8HC;AA5JD,kDAA0B;AAC1B,8CAAgF;AAChF,wCAAsC;AACtC,4CAAuE;AACvE,kDAAsE;AACtE,8CAK0B;AAC1B,sCAIsB;AAEtB;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACzE,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,qBAAqB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,IAAA,sCAA4B,GAAE,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC9G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvG,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,qDAAqD;QACrD,MAAM,gBAAgB,GAAkB;YACtC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,0DAA0D;YACnE,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,IAAA,uBAAa,EAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,WAAW,GAA2B,EAAE,CAAC;QAE7C,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAA,oBAAc,GAAE,CAAC;YACjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAA,uBAAiB,EAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6EAA6E,CAAC,CAAC,CAAC;oBACzG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;gBAClF,CAAC;gBAED,qCAAqC;gBACrC,MAAM,UAAU,GAAG;oBACjB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/B,IAAI,EAAE,IAAA,mBAAa,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC/C,KAAK,EAAE,GAAG;wBACV,OAAO,EAAE,IAAI,EAAE,mCAAmC;qBACnD,CAAC,CAAC;oBACH,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACpC,IAAI,EAAE,GAAG,IAAA,mBAAa,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,eAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;wBACnF,KAAK,EAAE,GAAG;wBACV,OAAO,EAAE,KAAK,EAAE,0CAA0C;qBAC3D,CAAC,CAAC;iBACJ,CAAC;gBAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,cAAc,GAAmB;wBACrC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,6DAA6D;wBACtE,OAAO,EAAE,UAAU;qBACpB,CAAC;oBAEF,MAAM,YAAY,GAAG,MAAM,IAAA,wBAAc,EAAwB,CAAC,cAAc,CAAC,CAAC,CAAC;oBAEnF,gCAAgC;oBAChC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;wBAC3C,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,wCAAwC,CAAC,CAAC,CAAC;oBAC3G,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,2GAA2G;QAC3G,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,kBAAQ,EACtB,IAAI,EACJ,WAAW,EACX,GAAG,EACH,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;YAEF,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;gBACvF,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC;gBAC/F,CAAC;YACH,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/commands/run.js
CHANGED
|
@@ -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) {
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;;;;
|
|
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":"
|
|
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"}
|
package/dist/commands/save.js
CHANGED
|
@@ -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
|
-
//
|
|
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":";;;;;
|
|
1
|
+
{"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/commands/save.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/storage/index.js
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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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"}
|