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.
- package/CHANGELOG.md +23 -0
- package/README.md +96 -10
- package/dist/cli.js +9 -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 +66 -4
- 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 +40 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +83 -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 +192 -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 +199 -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/llm-generator.d.ts.map +1 -1
- package/dist/utils/llm-generator.js +123 -7
- package/dist/utils/llm-generator.js.map +1 -1
- package/dist/utils/onboarding.d.ts.map +1 -1
- package/dist/utils/onboarding.js +35 -7
- 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/dist/utils/version-checker.d.ts +29 -0
- package/dist/utils/version-checker.d.ts.map +1 -0
- package/dist/utils/version-checker.js +191 -0
- package/dist/utils/version-checker.js.map +1 -0
- package/package.json +6 -2
- 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
|
-
-
|
|
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
|
|
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 (
|
|
305
|
-
| `aliasmate save` | - | Interactively save a new command |
|
|
306
|
-
| `aliasmate list` | `ls` | List all saved commands |
|
|
307
|
-
| `aliasmate
|
|
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
|
|
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('
|
|
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":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,wCAA4C;AAC5C,0CAA8C;AAC9C,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,8CAAkD;AAClD,8CAAkD;AAClD,uCAA4F;AAC5F,iDAAgD;AAChD,mDAA4D;AAC5D,yDAA6D;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"
|
|
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"}
|
package/dist/commands/edit.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
|
* 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":";;;;;
|
|
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,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA0DlC"}
|
package/dist/commands/list.js
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/prev.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
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,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') +
|
|
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
|
-
//
|
|
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);
|