aliasmate 1.3.2 → 1.5.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 (57) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +96 -10
  3. package/dist/cli.js +9 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/changelog.d.ts +9 -0
  6. package/dist/commands/changelog.d.ts.map +1 -0
  7. package/dist/commands/changelog.js +72 -0
  8. package/dist/commands/changelog.js.map +1 -0
  9. package/dist/commands/edit.d.ts.map +1 -1
  10. package/dist/commands/edit.js +77 -3
  11. package/dist/commands/edit.js.map +1 -1
  12. package/dist/commands/list.d.ts.map +1 -1
  13. package/dist/commands/list.js +4 -0
  14. package/dist/commands/list.js.map +1 -1
  15. package/dist/commands/prev.d.ts +1 -1
  16. package/dist/commands/prev.d.ts.map +1 -1
  17. package/dist/commands/prev.js +66 -4
  18. package/dist/commands/prev.js.map +1 -1
  19. package/dist/commands/run.d.ts.map +1 -1
  20. package/dist/commands/run.js +23 -2
  21. package/dist/commands/run.js.map +1 -1
  22. package/dist/commands/save.d.ts.map +1 -1
  23. package/dist/commands/save.js +61 -2
  24. package/dist/commands/save.js.map +1 -1
  25. package/dist/storage/index.d.ts +40 -1
  26. package/dist/storage/index.d.ts.map +1 -1
  27. package/dist/storage/index.js +83 -1
  28. package/dist/storage/index.js.map +1 -1
  29. package/dist/utils/changelog.d.ts +41 -0
  30. package/dist/utils/changelog.d.ts.map +1 -0
  31. package/dist/utils/changelog.js +192 -0
  32. package/dist/utils/changelog.js.map +1 -0
  33. package/dist/utils/constants.d.ts +1 -1
  34. package/dist/utils/constants.js +1 -1
  35. package/dist/utils/env.d.ts +64 -0
  36. package/dist/utils/env.d.ts.map +1 -0
  37. package/dist/utils/env.js +199 -0
  38. package/dist/utils/env.js.map +1 -0
  39. package/dist/utils/executor.d.ts +2 -1
  40. package/dist/utils/executor.d.ts.map +1 -1
  41. package/dist/utils/executor.js +3 -1
  42. package/dist/utils/executor.js.map +1 -1
  43. package/dist/utils/llm-generator.d.ts.map +1 -1
  44. package/dist/utils/llm-generator.js +123 -7
  45. package/dist/utils/llm-generator.js.map +1 -1
  46. package/dist/utils/onboarding.d.ts.map +1 -1
  47. package/dist/utils/onboarding.js +35 -7
  48. package/dist/utils/onboarding.js.map +1 -1
  49. package/dist/utils/prompts.d.ts +11 -1
  50. package/dist/utils/prompts.d.ts.map +1 -1
  51. package/dist/utils/prompts.js.map +1 -1
  52. package/dist/utils/version-checker.d.ts +29 -0
  53. package/dist/utils/version-checker.d.ts.map +1 -0
  54. package/dist/utils/version-checker.js +191 -0
  55. package/dist/utils/version-checker.js.map +1 -0
  56. package/package.json +6 -2
  57. package/whats-new.json +144 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.5.0] - 2026-01-14
9
+
10
+ ### Added
11
+ - **Automatic Version Update Checker**
12
+ - Checks npm registry for new versions once per day
13
+ - Beautiful notification displayed when updates are available
14
+ - Smart error handling: silently fails if offline or network errors occur
15
+ - 5-second timeout prevents blocking user workflow
16
+ - Stores check metadata in `~/.config/aliasmate/metadata.json`
17
+ - Never interrupts or delays command execution
18
+ - Clear upgrade instructions in notification
19
+
20
+ - **Metadata Storage System**
21
+ - New generic metadata storage for application state
22
+ - Separate from command aliases for better organization
23
+ - Support for typed metadata with TypeScript generics
24
+ - Atomic file operations to prevent corruption
25
+ - Foundation for future feature enhancements
26
+
27
+ ### Changed
28
+ - Version checks run automatically on every command but only notify once per day
29
+ - Configuration directory now contains both `config.json` (aliases) and `metadata.json` (app state)
30
+
8
31
  ## [1.3.1] - 2026-01-12
9
32
 
10
33
  ### Fixed
package/README.md CHANGED
@@ -24,14 +24,18 @@ Whether you're a solo developer or part of a team, AliasMate helps you streamlin
24
24
  - šŸš€ **Save previous commands** from shell history with one simple command
25
25
  - šŸ“‚ **Remember working directories** where commands should be executed
26
26
  - šŸŽÆ **Path mode selection** - Choose between saved directory or current directory execution
27
+ - šŸŒ **Environment variable capture** - Save and restore environment variables with commands
28
+ - šŸ”’ **Security-focused** - Automatic masking of sensitive variables (API keys, tokens)
27
29
  - ⚔ **Quick execution** of saved commands with optional path override
28
30
  - šŸ“ **Interactive save** with prompts for command and path
29
31
  - šŸ“‹ **List all saved commands** with their details
30
- - āœļø **Edit commands** interactively
32
+ - šŸ” **Search commands** by name, text, or directory
33
+ - āœļø **Edit commands** interactively with environment variable management
31
34
  - šŸ—‘ļø **Delete unwanted commands**
32
35
  - šŸ“¤ **Export/Import** commands for backup or sharing
36
+ - šŸ“œ **Changelog viewer** - View version history and cumulative changes
33
37
  - šŸ¤– **LLM Integration** - Default command to generate comprehensive documentation
34
- - šŸŽ‰ **Onboarding experience** - Welcome tour for first-time users
38
+ - šŸŽ‰ **Onboarding experience** - Welcome tour and upgrade notifications
35
39
  - šŸŽØ **Beautiful colored output** for better readability
36
40
  - šŸ”„ **Cross-platform** support (Linux, macOS, Windows)
37
41
 
@@ -290,6 +294,86 @@ See where your commands are stored:
290
294
  aliasmate config
291
295
  ```
292
296
 
297
+ ### Environment Variables
298
+
299
+ AliasMate can capture and restore environment variables along with your commands:
300
+
301
+ #### Capturing Environment Variables
302
+
303
+ When saving commands with `prev` or `save`, you'll be prompted to capture environment variables:
304
+
305
+ ```bash
306
+ NODE_ENV=production npm run build
307
+ aliasmate prev build-prod
308
+ # Would you like to capture current environment variables? (y/n)
309
+ ```
310
+
311
+ **What Gets Captured:**
312
+ - āœ… User-defined environment variables (like `NODE_ENV`, `API_URL`, `DEBUG`)
313
+ - āŒ System variables are filtered out (like `PATH`, `HOME`, `USER`)
314
+ - šŸ”’ Sensitive variables are automatically detected and masked
315
+
316
+ #### Security Features
317
+
318
+ - **Automatic Detection**: Sensitive variables containing keywords like `KEY`, `SECRET`, `TOKEN`, `PASSWORD` are automatically identified
319
+ - **Masked Exports**: When exporting, sensitive values are masked (e.g., `API_KEY=abc***xy`)
320
+ - **Safe Sharing**: Share command exports with your team without exposing secrets
321
+
322
+ #### Managing Environment Variables
323
+
324
+ ```bash
325
+ # Edit a command to update environment variables
326
+ aliasmate edit build-prod
327
+ # Select which variables to keep or remove
328
+
329
+ # View commands with their environment variables
330
+ aliasmate list
331
+ # Shows which commands have env vars saved
332
+ ```
333
+
334
+ **Use Cases:**
335
+ - Development/staging/production environment switching
336
+ - API testing with different endpoints and tokens
337
+ - Tool configuration (e.g., `DEBUG=*`, `VERBOSE=true`)
338
+ - Multi-environment deployments
339
+
340
+ **Example:**
341
+ ```bash
342
+ # Development setup
343
+ NODE_ENV=development API_URL=http://localhost:3000 npm start
344
+ aliasmate prev dev-server
345
+
346
+ # Run anywhere - environment is restored
347
+ aliasmate run dev-server
348
+ # Restores NODE_ENV and API_URL automatically
349
+ ```
350
+
351
+ ### Version History & Changelog
352
+
353
+ View what's new and see changes between versions:
354
+
355
+ ```bash
356
+ # View current version changes
357
+ aliasmate changelog
358
+
359
+ # View specific version
360
+ aliasmate changelog --ver 1.3.0
361
+
362
+ # View all changes between versions (upgrade path)
363
+ aliasmate changelog --from 1.2.0 --to 1.4.0
364
+
365
+ # View all changes since a version
366
+ aliasmate changelog --from 1.2.0
367
+ ```
368
+
369
+ **Automatic Upgrade Notifications:**
370
+ When you upgrade AliasMate, you'll automatically see:
371
+ - Summary of new features and improvements
372
+ - Cumulative changes since your last version
373
+ - Links to full documentation
374
+
375
+ This ensures you never miss important features or fixes when upgrading!
376
+
293
377
  ## Configuration
294
378
 
295
379
  Commands are stored in:
@@ -300,15 +384,17 @@ Commands are stored in:
300
384
 
301
385
  | Command | Aliases | Description |
302
386
  |---------|---------|-------------|
303
- | `aliasmate prev <name>` | - | Save the previous command from shell history |
304
- | `aliasmate run <name> [path]` | - | Run a saved command (optionally in a different directory) |
305
- | `aliasmate save` | - | Interactively save a new command |
306
- | `aliasmate list` | `ls` | List all saved commands |
307
- | `aliasmate edit <name>` | - | Edit a saved command |
387
+ | `aliasmate prev <name>` | - | Save the previous command from shell history (with optional env vars) |
388
+ | `aliasmate run <name> [path]` | - | Run a saved command (restores env vars, optionally override directory) |
389
+ | `aliasmate save` | - | Interactively save a new command (with optional env vars) |
390
+ | `aliasmate list` | `ls` | List all saved commands (shows env var indicators) |
391
+ | `aliasmate search <query>` | `find` | Search for commands by name, text, or directory |
392
+ | `aliasmate edit <name>` | - | Edit a saved command (manage env vars, path mode, etc.) |
308
393
  | `aliasmate delete <name>` | `rm` | Delete a saved command |
309
- | `aliasmate export <file>` | - | Export commands to a JSON file |
310
- | `aliasmate import <file>` | - | Import commands from a JSON file |
311
- | `aliasmate config` | - | Show config file location |
394
+ | `aliasmate export <file>` | - | Export commands to a JSON file (sensitive vars masked) |
395
+ | `aliasmate import <file>` | - | Import commands from a JSON file (auto backup) |
396
+ | `aliasmate changelog` | `changes` | View version changelog and release notes |
397
+ | `aliasmate config` | - | Show config file location and command count |
312
398
 
313
399
  ## Examples
314
400
 
package/dist/cli.js CHANGED
@@ -15,10 +15,12 @@ const edit_1 = require("./commands/edit");
15
15
  const export_1 = require("./commands/export");
16
16
  const import_1 = require("./commands/import");
17
17
  const search_1 = require("./commands/search");
18
+ const changelog_1 = require("./commands/changelog");
18
19
  const storage_1 = require("./storage");
19
20
  const constants_1 = require("./utils/constants");
20
21
  const onboarding_1 = require("./utils/onboarding");
21
22
  const llm_generator_1 = require("./utils/llm-generator");
23
+ const version_checker_1 = require("./utils/version-checker");
22
24
  const program = new commander_1.Command();
23
25
  program
24
26
  .name('aliasmate')
@@ -29,7 +31,7 @@ program
29
31
  .command('prev <name>')
30
32
  .description('Save the previous command from shell history')
31
33
  .action((name) => {
32
- (0, prev_1.prevCommand)(name, process.cwd());
34
+ void (0, prev_1.prevCommand)(name, process.cwd());
33
35
  });
34
36
  // run command - execute a saved command
35
37
  program
@@ -90,6 +92,8 @@ program
90
92
  .action((file) => {
91
93
  void (0, import_1.importCommand)(file);
92
94
  });
95
+ // Add changelog command
96
+ program.addCommand((0, changelog_1.createChangelogCommand)());
93
97
  // config command - show config location
94
98
  program
95
99
  .command('config')
@@ -112,7 +116,8 @@ program.on('command:*', () => {
112
116
  console.log(chalk_1.default.gray(' list (ls) - List all saved commands'));
113
117
  console.log(chalk_1.default.gray(' search <query> - Search for commands'));
114
118
  console.log(chalk_1.default.gray(' edit <name> - Edit a saved command'));
115
- console.log(chalk_1.default.gray(' delete <name> - Delete a saved command'));
119
+ console.log(chalk_1.default.gray(' dhangelog - View version changelog'));
120
+ console.log(chalk_1.default.gray(' celete <name> - Delete a saved command'));
116
121
  console.log(chalk_1.default.gray(' export <file> - Export commands to JSON'));
117
122
  console.log(chalk_1.default.gray(' import <file> - Import commands from JSON'));
118
123
  console.log(chalk_1.default.gray(' config - Show config file location'));
@@ -134,6 +139,8 @@ process.on('unhandledRejection', (reason) => {
134
139
  // Check for first install or upgrade and show onboarding BEFORE parsing
135
140
  // This runs on EVERY invocation, but only shows messages on first install or upgrade
136
141
  const onboardingShown = (0, onboarding_1.checkAndShowOnboarding)();
142
+ // Check for updates (runs once per day, silently fails if offline)
143
+ void (0, version_checker_1.checkForUpdates)();
137
144
  // Create default LLM command if it doesn't exist
138
145
  if (!(0, storage_1.aliasExists)('llm')) {
139
146
  const llmCmd = (0, llm_generator_1.getDefaultLLMCommand)();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Command to display changelog information
3
+ */
4
+ import { Command } from 'commander';
5
+ /**
6
+ * Create the changelog command
7
+ */
8
+ export declare function createChangelogCommand(): Command;
9
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAsDhD"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Command to display changelog information
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createChangelogCommand = createChangelogCommand;
10
+ const commander_1 = require("commander");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const constants_1 = require("../utils/constants");
13
+ const changelog_1 = require("../utils/changelog");
14
+ /**
15
+ * Create the changelog command
16
+ */
17
+ function createChangelogCommand() {
18
+ const command = new commander_1.Command('changelog');
19
+ command
20
+ .alias('changes')
21
+ .description('Display changelog information')
22
+ .option('-f, --from <version>', 'Starting version (e.g., 1.2.0)')
23
+ .option('-t, --to <version>', 'Ending version (defaults to current)')
24
+ .option('--ver <version>', 'Show changes for a specific version')
25
+ .action((options) => {
26
+ try {
27
+ if (options.ver) {
28
+ // Show specific version
29
+ const changes = (0, changelog_1.getVersionChanges)(options.ver);
30
+ if (changes) {
31
+ (0, changelog_1.displayVersionChanges)(changes);
32
+ }
33
+ else {
34
+ console.log(chalk_1.default.yellow(`\nNo changelog data found for version ${options.ver}`));
35
+ console.log(chalk_1.default.gray('Check CHANGELOG.md for complete history\n'));
36
+ }
37
+ }
38
+ else if (options.from) {
39
+ // Show cumulative changes
40
+ const toVersion = options.to || constants_1.APP_VERSION;
41
+ (0, changelog_1.displayCumulativeChanges)(options.from, toVersion);
42
+ }
43
+ else {
44
+ // Show current version changes
45
+ const changes = (0, changelog_1.getVersionChanges)(constants_1.APP_VERSION);
46
+ if (changes) {
47
+ console.log(chalk_1.default.bold.cyan('\nšŸ“‹ Current Version Changes\n'));
48
+ (0, changelog_1.displayVersionChanges)(changes);
49
+ }
50
+ else {
51
+ console.log(chalk_1.default.yellow(`\nNo changelog data found for current version (${constants_1.APP_VERSION})`));
52
+ console.log(chalk_1.default.gray('Check CHANGELOG.md for complete history\n'));
53
+ }
54
+ // Show usage examples
55
+ console.log(chalk_1.default.bold.yellow('\nšŸ’” Usage Examples:\n'));
56
+ console.log(chalk_1.default.gray(' View changes for a specific version:'));
57
+ console.log(chalk_1.default.cyan(' $ aliasmate changelog --ver 1.3.0\n'));
58
+ console.log(chalk_1.default.gray(' View cumulative changes between versions:'));
59
+ console.log(chalk_1.default.cyan(' $ aliasmate changelog --from 1.2.0 --to 1.4.0\n'));
60
+ console.log(chalk_1.default.gray(' View all changes from a version to current:'));
61
+ console.log(chalk_1.default.cyan(' $ aliasmate changelog --from 1.2.0\n'));
62
+ }
63
+ }
64
+ catch (error) {
65
+ console.error(chalk_1.default.red('\nāŒ Error displaying changelog:'), error);
66
+ console.log(chalk_1.default.gray('Check CHANGELOG.md for complete history\n'));
67
+ process.exit(1);
68
+ }
69
+ });
70
+ return command;
71
+ }
72
+ //# sourceMappingURL=changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmM7D"}
@@ -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
  * Edit an existing command interactively
14
15
  *
@@ -77,22 +78,95 @@ async function editCommand(name) {
77
78
  },
78
79
  ];
79
80
  const answers = await (0, prompts_1.promptMultiple)(prompts);
81
+ // Ask if user wants to update environment variables
82
+ const updateEnvPrompt = {
83
+ type: 'confirm',
84
+ name: 'updateEnv',
85
+ message: 'Update environment variables?',
86
+ default: false,
87
+ };
88
+ const shouldUpdateEnv = await (0, prompts_1.promptConfirm)(updateEnvPrompt);
89
+ let selectedEnv = alias.env;
90
+ if (shouldUpdateEnv) {
91
+ // Merge current env with saved env for the selection UI
92
+ const currentEnv = (0, env_1.getUserEnvVars)();
93
+ const savedEnv = alias.env || {};
94
+ // Combine all available env vars
95
+ const allEnv = { ...currentEnv, ...savedEnv };
96
+ const { sensitive, safe } = (0, env_1.categorizeEnvVars)(allEnv);
97
+ if (Object.keys(allEnv).length === 0) {
98
+ console.log(chalk_1.default.yellow('No user-defined environment variables found.'));
99
+ selectedEnv = undefined;
100
+ }
101
+ else {
102
+ // Show warning if there are sensitive vars
103
+ if (Object.keys(sensitive).length > 0) {
104
+ console.log(chalk_1.default.yellow('\nāš ļø Warning: Some environment variables appear to contain sensitive data:'));
105
+ Object.keys(sensitive).forEach((key) => {
106
+ console.log(chalk_1.default.yellow(` - ${key}`));
107
+ });
108
+ console.log(chalk_1.default.gray('(These may contain API keys, tokens, or passwords)\n'));
109
+ }
110
+ // Let user select which vars to save
111
+ const envChoices = [
112
+ ...Object.keys(safe).map((key) => ({
113
+ name: (0, env_1.formatEnvVars)({ [key]: allEnv[key] })[0],
114
+ value: key,
115
+ checked: key in savedEnv, // Check if already saved
116
+ })),
117
+ ...Object.keys(sensitive).map((key) => ({
118
+ name: `${(0, env_1.formatEnvVars)({ [key]: allEnv[key] })[0]} ${chalk_1.default.yellow('(sensitive)')}`,
119
+ value: key,
120
+ checked: key in savedEnv, // Check if already saved
121
+ })),
122
+ ];
123
+ if (envChoices.length > 0) {
124
+ const checkboxPrompt = {
125
+ type: 'checkbox',
126
+ name: 'envVars',
127
+ message: 'Select environment variables to save (use space to toggle):',
128
+ choices: envChoices,
129
+ };
130
+ const selectedVars = await (0, prompts_1.promptMultiple)([checkboxPrompt]);
131
+ // Build the selected env object
132
+ const newEnv = {};
133
+ for (const varName of selectedVars.envVars) {
134
+ newEnv[varName] = allEnv[varName];
135
+ }
136
+ selectedEnv = Object.keys(newEnv).length > 0 ? newEnv : undefined;
137
+ if (selectedEnv) {
138
+ console.log(chalk_1.default.green(`\nāœ“ ${Object.keys(selectedEnv).length} environment variable(s) will be saved`));
139
+ }
140
+ else {
141
+ console.log(chalk_1.default.yellow('\nāœ“ All environment variables cleared'));
142
+ }
143
+ }
144
+ }
145
+ }
80
146
  // Check if anything changed
81
147
  const currentPathMode = alias.pathMode || 'saved'; // Default to 'saved' for backward compatibility
148
+ const envChanged = JSON.stringify(selectedEnv || {}) !== JSON.stringify(alias.env || {});
82
149
  if (answers.command === alias.command &&
83
150
  answers.directory === alias.directory &&
84
- answers.pathMode === currentPathMode) {
151
+ answers.pathMode === currentPathMode &&
152
+ !envChanged) {
85
153
  console.log(chalk_1.default.yellow('No changes made'));
86
154
  return;
87
155
  }
88
- // Update the alias with path mode
156
+ // Update the alias with path mode and env vars
89
157
  try {
90
- const success = (0, storage_1.setAlias)(name, answers.command, answers.directory, answers.pathMode);
158
+ const success = (0, storage_1.setAlias)(name, answers.command, answers.directory, answers.pathMode, selectedEnv);
91
159
  if (success) {
92
160
  console.log(chalk_1.default.green(`āœ“ ${constants_1.SUCCESS_MESSAGES.updated(name)}`));
93
161
  console.log(chalk_1.default.gray(` Command: ${answers.command}`));
94
162
  console.log(chalk_1.default.gray(` Directory: ${answers.directory}`));
95
163
  console.log(chalk_1.default.gray(` Path Mode: ${answers.pathMode}`));
164
+ if (selectedEnv && Object.keys(selectedEnv).length > 0) {
165
+ console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(selectedEnv).length} saved`));
166
+ }
167
+ else {
168
+ console.log(chalk_1.default.gray(` Environment Variables: none`));
169
+ }
96
170
  }
97
171
  else {
98
172
  (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotUpdate);
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAkDlC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA0DlC"}
@@ -98,6 +98,10 @@ function listCommand() {
98
98
  console.log(chalk_1.default.gray(` Command: ${displayCommand}`));
99
99
  console.log(chalk_1.default.gray(` Directory: ${alias.directory}`));
100
100
  console.log(chalk_1.default.gray(` Path Mode: ${pathMode === 'saved' ? 'šŸ“ Saved' : 'šŸ“ Current'}`));
101
+ // Show env var count if any are saved
102
+ if (alias.env && Object.keys(alias.env).length > 0) {
103
+ console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(alias.env).length} saved`));
104
+ }
101
105
  if (alias.createdAt) {
102
106
  console.log(chalk_1.default.gray(` Created: ${new Date(alias.createdAt).toLocaleString()}`));
103
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,kCA0DC;AApFD,kDAA0B;AAC1B,uCAAyB;AACzB,wCAAyC;AACzC,4CAA8C;AAC9C,kDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,WAAW;IACzB,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,yBAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;QAEjE,sBAAsB;QACtB,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,kCAAkC;YAClC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAEpE,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC;YAE3C,qCAAqC;YACrC,MAAM,gBAAgB,GAAG,GAAG,CAAC;YAC7B,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,cAAc,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAC7C,4DAA4D;gBAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,SAAS,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;oBACxC,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAE9F,sCAAsC;YACtC,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,QAAQ,CAAC,CAChF,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,oBAAW,EAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -11,5 +11,5 @@
11
11
  * // The npm command is saved and can be re-run from anywhere
12
12
  * ```
13
13
  */
14
- export declare function prevCommand(name: string, cwd?: string): void;
14
+ export declare function prevCommand(name: string, cwd?: string): Promise<void>;
15
15
  //# sourceMappingURL=prev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prev.d.ts","sourceRoot":"","sources":["../../src/commands/prev.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,IAAI,CAsD3E"}
1
+ {"version":3,"file":"prev.d.ts","sourceRoot":"","sources":["../../src/commands/prev.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8I1F"}
@@ -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,7 +24,7 @@ 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)();
@@ -35,7 +37,9 @@ function prevCommand(name, cwd = process.cwd()) {
35
37
  console.log(chalk_1.default.gray('Configure your shell for real-time history writing:'));
36
38
  console.log(chalk_1.default.cyan(` ${(0, history_1.getHistoryConfigInstructions)()}`));
37
39
  console.log(chalk_1.default.yellow('\nAlternative:'));
38
- console.log(chalk_1.default.gray('Use') + chalk_1.default.cyan(' aliasmate save ') + chalk_1.default.gray('to manually enter the command'));
40
+ console.log(chalk_1.default.gray('Use') +
41
+ chalk_1.default.cyan(' aliasmate save ') +
42
+ chalk_1.default.gray('to manually enter the command'));
39
43
  console.log(chalk_1.default.yellow('\nWhat you can do right now:'));
40
44
  console.log(chalk_1.default.gray('1. Configure your shell as shown above'));
41
45
  console.log(chalk_1.default.gray('2. Close and reopen your terminal'));
@@ -52,14 +56,72 @@ function prevCommand(name, cwd = process.cwd()) {
52
56
  if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
53
57
  (0, errors_1.exitWithError)('Command name can only contain letters, numbers, hyphens, and underscores', errors_1.ExitCode.InvalidInput);
54
58
  }
55
- // Save the command with the current directory (default to 'saved' path mode for prev command)
59
+ // Ask if user wants to capture environment variables
60
+ const captureEnvPrompt = {
61
+ type: 'confirm',
62
+ name: 'captureEnv',
63
+ message: 'Capture current environment variables with this command?',
64
+ default: false,
65
+ };
66
+ const shouldCaptureEnv = await (0, prompts_1.promptConfirm)(captureEnvPrompt);
67
+ const selectedEnv = {};
68
+ if (shouldCaptureEnv) {
69
+ const userEnv = (0, env_1.getUserEnvVars)();
70
+ const { sensitive, safe } = (0, env_1.categorizeEnvVars)(userEnv);
71
+ if (Object.keys(userEnv).length === 0) {
72
+ console.log(chalk_1.default.yellow('No user-defined environment variables found.'));
73
+ }
74
+ else {
75
+ // Show warning if there are sensitive vars
76
+ if (Object.keys(sensitive).length > 0) {
77
+ console.log(chalk_1.default.yellow('\nāš ļø Warning: Some environment variables appear to contain sensitive data:'));
78
+ Object.keys(sensitive).forEach((key) => {
79
+ console.log(chalk_1.default.yellow(` - ${key}`));
80
+ });
81
+ console.log(chalk_1.default.gray('(These may contain API keys, tokens, or passwords)\n'));
82
+ }
83
+ // Let user select which vars to save
84
+ const envChoices = [
85
+ ...Object.keys(safe).map((key) => ({
86
+ name: (0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0],
87
+ value: key,
88
+ checked: true, // Safe vars are checked by default
89
+ })),
90
+ ...Object.keys(sensitive).map((key) => ({
91
+ name: `${(0, env_1.formatEnvVars)({ [key]: userEnv[key] })[0]} ${chalk_1.default.yellow('(sensitive)')}`,
92
+ value: key,
93
+ checked: false, // Sensitive vars are unchecked by default
94
+ })),
95
+ ];
96
+ if (envChoices.length > 0) {
97
+ const checkboxPrompt = {
98
+ type: 'checkbox',
99
+ name: 'envVars',
100
+ message: 'Select environment variables to save (use space to toggle):',
101
+ choices: envChoices,
102
+ };
103
+ const selectedVars = await (0, prompts_1.promptMultiple)([checkboxPrompt]);
104
+ // Build the selected env object
105
+ for (const varName of selectedVars.envVars) {
106
+ selectedEnv[varName] = userEnv[varName];
107
+ }
108
+ if (Object.keys(selectedEnv).length > 0) {
109
+ console.log(chalk_1.default.green(`\nāœ“ ${Object.keys(selectedEnv).length} environment variable(s) will be saved`));
110
+ }
111
+ }
112
+ }
113
+ }
114
+ // Save the command with the current directory and env vars (default to 'saved' path mode for prev command)
56
115
  try {
57
- const success = (0, storage_1.setAlias)(name, lastCommand, cwd, 'saved');
116
+ const success = (0, storage_1.setAlias)(name, lastCommand, cwd, 'saved', Object.keys(selectedEnv).length > 0 ? selectedEnv : undefined);
58
117
  if (success) {
59
118
  console.log(chalk_1.default.green(`āœ“ ${constants_1.SUCCESS_MESSAGES.saved(name)}`));
60
119
  console.log(chalk_1.default.gray(` Command: ${lastCommand}`));
61
120
  console.log(chalk_1.default.gray(` Directory: ${cwd}`));
62
121
  console.log(chalk_1.default.gray(` Path Mode: saved (use 'aliasmate edit ${name}' to change)`));
122
+ if (Object.keys(selectedEnv).length > 0) {
123
+ console.log(chalk_1.default.gray(` Environment Variables: ${Object.keys(selectedEnv).length} saved`));
124
+ }
63
125
  }
64
126
  else {
65
127
  (0, errors_1.exitWithError)(constants_1.ERROR_MESSAGES.couldNotSave);