aliasmate 2.0.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -3
- package/README.md +43 -10
- package/dist/cli/completion.js +4 -4
- package/dist/cli/completion.js.map +1 -1
- package/dist/cli/manage.d.ts +2 -3
- package/dist/cli/manage.d.ts.map +1 -1
- package/dist/cli/manage.js +44 -26
- package/dist/cli/manage.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +14 -12
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/save.d.ts +7 -8
- package/dist/cli/save.d.ts.map +1 -1
- package/dist/cli/save.js +71 -33
- package/dist/cli/save.js.map +1 -1
- package/dist/cli/transfer.d.ts +1 -0
- package/dist/cli/transfer.d.ts.map +1 -1
- package/dist/cli/transfer.js +40 -59
- package/dist/cli/transfer.js.map +1 -1
- package/dist/core/commands.d.ts +2 -0
- package/dist/core/commands.d.ts.map +1 -1
- package/dist/core/commands.js +40 -2
- package/dist/core/commands.js.map +1 -1
- package/dist/core/transfer.d.ts +20 -0
- package/dist/core/transfer.d.ts.map +1 -0
- package/dist/core/transfer.js +110 -0
- package/dist/core/transfer.js.map +1 -0
- package/dist/index.js +14 -11
- package/dist/index.js.map +1 -1
- package/dist/ui/format.d.ts +4 -1
- package/dist/ui/format.d.ts.map +1 -1
- package/dist/ui/format.js +61 -18
- package/dist/ui/format.js.map +1 -1
- package/dist/ui/interactive.d.ts +59 -3
- package/dist/ui/interactive.d.ts.map +1 -1
- package/dist/ui/interactive.js +604 -94
- package/dist/ui/interactive.js.map +1 -1
- package/dist/ui/onboarding.d.ts.map +1 -1
- package/dist/ui/onboarding.js +7 -7
- package/dist/ui/onboarding.js.map +1 -1
- package/dist/ui/prompts.d.ts +1 -12
- package/dist/ui/prompts.d.ts.map +1 -1
- package/dist/ui/prompts.js +45 -91
- package/dist/ui/prompts.js.map +1 -1
- package/dist/ui/table.d.ts +18 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +54 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/theme.d.ts +8 -6
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +33 -18
- package/dist/ui/theme.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,41 @@ 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
8
|
|
|
9
|
+
## [2.3.0] - 2026-07-06
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **In-TUI export/import**: `x` exports a full backup (real secret values) to a prefilled `~/aliasmate-backup-<date>.json` path, `i` imports from a JSON file — with inline error handling, conflict skipping, and automatic pre-import backup
|
|
13
|
+
- CLI import now asks once about conflicts instead of per command
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Project moved to **github.com/akhshyganesh/aliasmate** (old URLs redirect); installer, docs, and package metadata updated
|
|
17
|
+
- Export/import logic extracted to `core/transfer` and shared by CLI and TUI; `~` is expanded in file paths
|
|
18
|
+
|
|
19
|
+
## [2.2.0] - 2026-07-06
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- **Rename commands**: `aliasmate rename <old> <new>` (alias `mv`), or simply change the name field in the TUI edit form — shortcut aliases and run history follow the new name
|
|
23
|
+
- **Standalone binaries** (no Node.js/npm needed): esbuild bundle + Node SEA build script, `install.sh` one-liner installer, and a GitHub Actions release workflow producing macOS (x64/arm64), Linux (x64/arm64), and Windows binaries on every tag
|
|
24
|
+
- **`export --full`**: restorable backups that keep real secret env values (default export still masks them for safe sharing)
|
|
25
|
+
- **Caret editing in TUI form fields**: ←/→, home/end (ctrl+a/ctrl+e), delete-forward, ctrl+u, and mid-string insertion
|
|
26
|
+
|
|
27
|
+
## [2.1.0] - 2026-07-06
|
|
28
|
+
|
|
29
|
+
Complete visual redesign and a real full-screen TUI.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- **Full-screen TUI** (`aliasmate` with no args): browse commands sorted by usage with a live detail pane (command, directory, env, run history); run with `enter`, fuzzy filter with `/`, create with `n`, edit with `e`, delete with `d`, stats with `s` — everything in-screen
|
|
33
|
+
- **In-TUI forms** for creating and editing commands (name validation, path-mode toggle, env capture) — no more prompt round-trips
|
|
34
|
+
- `aliasmate prev [name]` opens the TUI form prefilled with your captured command; still saves directly when run non-interactively (scripts/CI)
|
|
35
|
+
- `aliasmate save` and `aliasmate edit <name>` open the TUI form
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- **New design language**: terracotta accent, quiet grays, flat borderless tables, lowercase labels — content first, chrome barely visible
|
|
39
|
+
- `list`/`search` render a flat width-aware table; `stats` and `recent` restyled to match
|
|
40
|
+
- Filter matches on command names rank above matches in command text/directories
|
|
41
|
+
- Clearing a filter keeps the same row highlighted
|
|
42
|
+
- Removed the `inquirer` dependency entirely (lighter install, faster startup)
|
|
43
|
+
|
|
9
44
|
## [2.0.0] - 2026-07-06
|
|
10
45
|
|
|
11
46
|
Complete ground-up rewrite focused on performance, modularity, and day-to-day usability. Your saved commands, aliases, and run history carry over unchanged.
|
|
@@ -390,6 +425,6 @@ Complete ground-up rewrite focused on performance, modularity, and day-to-day us
|
|
|
390
425
|
- Input validation and error handling
|
|
391
426
|
- Beautiful CLI output with chalk
|
|
392
427
|
|
|
393
|
-
[1.2.0]: https://github.com/
|
|
394
|
-
[1.1.0]: https://github.com/
|
|
395
|
-
[1.0.0]: https://github.com/
|
|
428
|
+
[1.2.0]: https://github.com/akhshyganesh/aliasmate/releases/tag/v1.2.0
|
|
429
|
+
[1.1.0]: https://github.com/akhshyganesh/aliasmate/releases/tag/v1.1.0
|
|
430
|
+
[1.0.0]: https://github.com/akhshyganesh/aliasmate/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -7,47 +7,71 @@ Save shell commands with their working directories and re-run them from anywhere
|
|
|
7
7
|
|
|
8
8
|
## Install
|
|
9
9
|
|
|
10
|
+
**Standalone (no Node.js required):**
|
|
11
|
+
|
|
10
12
|
```bash
|
|
11
|
-
|
|
13
|
+
curl -fsSL https://raw.githubusercontent.com/akhshyganesh/aliasmate/main/install.sh | sh
|
|
12
14
|
```
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
Downloads a self-contained binary for macOS (Intel/Apple Silicon) or Linux (x64/arm64). Windows users: grab `aliasmate-win-x64.exe` from the [latest release](https://github.com/akhshyganesh/aliasmate/releases/latest).
|
|
17
|
+
|
|
18
|
+
**Via npm** (requires Node.js 18+):
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm i -g aliasmate
|
|
22
|
+
```
|
|
15
23
|
|
|
16
24
|
## Quick start
|
|
17
25
|
|
|
18
26
|
```bash
|
|
19
|
-
# Run any command, then
|
|
27
|
+
# Run any command, then capture it — the TUI opens with everything prefilled
|
|
20
28
|
npm run build -- --production
|
|
21
29
|
aliasmate prev build
|
|
22
30
|
|
|
23
31
|
# Run it later, from any directory — it executes back in the project folder
|
|
24
32
|
aliasmate run build
|
|
25
33
|
|
|
26
|
-
# Or
|
|
34
|
+
# Or open the full-screen TUI
|
|
27
35
|
aliasmate
|
|
28
36
|
```
|
|
29
37
|
|
|
30
|
-
Running `aliasmate` with no arguments opens
|
|
38
|
+
Running `aliasmate` with no arguments opens a full-screen TUI: your commands sorted by usage with a live detail pane. Everything happens in-screen:
|
|
39
|
+
|
|
40
|
+
| Key | Action |
|
|
41
|
+
|-----|--------|
|
|
42
|
+
| `↑↓` / `jk` | move |
|
|
43
|
+
| `enter` | run selected command |
|
|
44
|
+
| `/` | fuzzy filter (type to narrow) |
|
|
45
|
+
| `n` | new command (in-TUI form) |
|
|
46
|
+
| `e` | edit selected (in-TUI form) |
|
|
47
|
+
| `d` | delete (with confirm) |
|
|
48
|
+
| `←→` | move the caret while editing form fields |
|
|
49
|
+
| `s` | usage stats |
|
|
50
|
+
| `x` | export a full backup (JSON) |
|
|
51
|
+
| `i` | import commands from a JSON file |
|
|
52
|
+
| `q` / `esc` | quit |
|
|
31
53
|
|
|
32
54
|
## Commands
|
|
33
55
|
|
|
34
56
|
| Command | Description |
|
|
35
57
|
|---------|-------------|
|
|
36
|
-
| `aliasmate` |
|
|
37
|
-
| `aliasmate prev
|
|
38
|
-
| `aliasmate save` |
|
|
58
|
+
| `aliasmate` | Full-screen TUI (browse/run/create/edit/delete/stats) |
|
|
59
|
+
| `aliasmate prev [name]` | Capture your last shell command → TUI form, prefilled (saves directly when scripted) |
|
|
60
|
+
| `aliasmate save` | Open the TUI with a blank new-command form |
|
|
39
61
|
| `aliasmate run <name> [path]` | Run a saved command, optionally in a different directory |
|
|
40
62
|
| `aliasmate run @0` | Re-run your most recent command (`@1`, `@2`, …) |
|
|
41
63
|
| `aliasmate run <name> --dry-run [--verbose]` | Preview without executing |
|
|
42
64
|
| `aliasmate list` (`ls`) | List commands (`--format table\|json\|yaml\|compact`) |
|
|
43
65
|
| `aliasmate search <query>` (`find`) | Search by name, text, or directory |
|
|
44
|
-
| `aliasmate edit <name>` | Edit a command (
|
|
66
|
+
| `aliasmate edit <name>` | Edit a command in the TUI form (change the name field to rename) |
|
|
67
|
+
| `aliasmate rename <old> <new>` (`mv`) | Rename a command — aliases and run history follow |
|
|
45
68
|
| `aliasmate delete <name>` (`rm`) | Delete a command (`-f` skips confirmation) |
|
|
46
69
|
| `aliasmate alias <short> <name>` | Create a shortcut alias (`--list`, `--remove <a>`) |
|
|
47
70
|
| `aliasmate recent` | Recently run commands with `@N` indices (`--clear`) |
|
|
48
71
|
| `aliasmate stats` | Usage statistics: most-used commands, total runs |
|
|
49
72
|
| `aliasmate validate [name]` | Check commands, directories, and env vars |
|
|
50
|
-
| `aliasmate export <file>` | Export to JSON/YAML — secrets masked |
|
|
73
|
+
| `aliasmate export <file>` | Export to JSON/YAML — secrets masked for sharing |
|
|
74
|
+
| `aliasmate export <file> --full` | Restorable backup with real secret values |
|
|
51
75
|
| `aliasmate import <file>` | Import from JSON (backs up your config first) |
|
|
52
76
|
| `aliasmate completion install` | Install tab completion (bash/zsh/fish) |
|
|
53
77
|
| `aliasmate config` | Show where your data is stored |
|
|
@@ -66,6 +90,15 @@ When saving, you can capture user-defined env vars (`NODE_ENV`, `API_URL`, …)
|
|
|
66
90
|
- All writes to your config are atomic; a crash can never corrupt your data.
|
|
67
91
|
- `import` writes a timestamped backup of your existing config before touching it.
|
|
68
92
|
|
|
93
|
+
### Backup & restore
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
aliasmate export backup.json --full # everything, including real env secrets
|
|
97
|
+
aliasmate import backup.json # restore (auto-backs up current state first)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Default exports mask secret values so they're safe to share with a team; `--full` keeps them intact for personal backups.
|
|
101
|
+
|
|
69
102
|
### Recent commands & stats
|
|
70
103
|
Every run is tracked. `aliasmate run @0` re-runs your latest command, `aliasmate recent` lists history, and `aliasmate stats` shows your most-used commands.
|
|
71
104
|
|
package/dist/cli/completion.js
CHANGED
|
@@ -39,7 +39,7 @@ const os = __importStar(require("os"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const commands_1 = require("../core/commands");
|
|
41
41
|
const theme_1 = require("../ui/theme");
|
|
42
|
-
const SUBCOMMANDS = 'run save prev list search edit delete export import alias recent validate stats completion config help';
|
|
42
|
+
const SUBCOMMANDS = 'run save prev list search edit rename delete export import alias recent validate stats completion config help';
|
|
43
43
|
function savedNames() {
|
|
44
44
|
return [...Object.keys((0, commands_1.listCommands)()), ...Object.keys((0, commands_1.listAliases)())].join(' ');
|
|
45
45
|
}
|
|
@@ -51,7 +51,7 @@ _aliasmate_complete() {
|
|
|
51
51
|
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
52
52
|
if [ "$COMP_CWORD" -eq 1 ]; then
|
|
53
53
|
COMPREPLY=( $(compgen -W "${SUBCOMMANDS}" -- "$cur") )
|
|
54
|
-
elif [ "$prev" = "run" ] || [ "$prev" = "edit" ] || [ "$prev" = "delete" ] || [ "$prev" = "rm" ] || [ "$prev" = "validate" ]; then
|
|
54
|
+
elif [ "$prev" = "run" ] || [ "$prev" = "edit" ] || [ "$prev" = "rename" ] || [ "$prev" = "mv" ] || [ "$prev" = "delete" ] || [ "$prev" = "rm" ] || [ "$prev" = "validate" ]; then
|
|
55
55
|
COMPREPLY=( $(compgen -W "$(aliasmate completion --names 2>/dev/null)" -- "$cur") )
|
|
56
56
|
fi
|
|
57
57
|
}
|
|
@@ -65,7 +65,7 @@ _aliasmate() {
|
|
|
65
65
|
subcmds=(${SUBCOMMANDS})
|
|
66
66
|
if (( CURRENT == 2 )); then
|
|
67
67
|
_describe 'command' subcmds
|
|
68
|
-
elif [[ \${words[2]} == (run|edit|delete|rm|validate) ]]; then
|
|
68
|
+
elif [[ \${words[2]} == (run|edit|rename|mv|delete|rm|validate) ]]; then
|
|
69
69
|
local -a names
|
|
70
70
|
names=($(aliasmate completion --names 2>/dev/null))
|
|
71
71
|
_describe 'saved command' names
|
|
@@ -78,7 +78,7 @@ function fishScript() {
|
|
|
78
78
|
return `# aliasmate fish completion
|
|
79
79
|
complete -c aliasmate -f
|
|
80
80
|
complete -c aliasmate -n "__fish_use_subcommand" -a "${SUBCOMMANDS}"
|
|
81
|
-
complete -c aliasmate -n "__fish_seen_subcommand_from run edit delete rm validate" -a "(aliasmate completion --names 2>/dev/null)"
|
|
81
|
+
complete -c aliasmate -n "__fish_seen_subcommand_from run edit rename mv delete rm validate" -a "(aliasmate completion --names 2>/dev/null)"
|
|
82
82
|
`;
|
|
83
83
|
}
|
|
84
84
|
function detectShell() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/cli/completion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,8CA0BC;AArHD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,+CAA6D;AAC7D,uCAA8C;AAE9C,MAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/cli/completion.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/manage.d.ts
CHANGED
|
@@ -4,9 +4,8 @@ export declare function searchHandler(query: string): void;
|
|
|
4
4
|
export declare function deleteHandler(name: string, options: {
|
|
5
5
|
force?: boolean;
|
|
6
6
|
}): Promise<void>;
|
|
7
|
-
export declare function editHandler(name: string
|
|
8
|
-
|
|
9
|
-
}): Promise<void>;
|
|
7
|
+
export declare function editHandler(name: string): Promise<void>;
|
|
8
|
+
export declare function renameHandler(from: string, to: string): Promise<void>;
|
|
10
9
|
export declare function aliasHandler(shortAlias: string | undefined, commandName: string | undefined, options: {
|
|
11
10
|
list?: boolean;
|
|
12
11
|
remove?: string;
|
package/dist/cli/manage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,eAAe,CAAC;AAuBvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiBpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASjD;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7F;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB7D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,CAsBN;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+BhF;AAED,wBAAgB,YAAY,IAAI,IAAI,CAmBnC;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CA6BnD"}
|
package/dist/cli/manage.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.listHandler = listHandler;
|
|
|
37
37
|
exports.searchHandler = searchHandler;
|
|
38
38
|
exports.deleteHandler = deleteHandler;
|
|
39
39
|
exports.editHandler = editHandler;
|
|
40
|
+
exports.renameHandler = renameHandler;
|
|
40
41
|
exports.aliasHandler = aliasHandler;
|
|
41
42
|
exports.recentHandler = recentHandler;
|
|
42
43
|
exports.statsHandler = statsHandler;
|
|
@@ -46,8 +47,12 @@ const recent_1 = require("../core/recent");
|
|
|
46
47
|
const validate_1 = require("../core/validate");
|
|
47
48
|
const format_1 = require("../ui/format");
|
|
48
49
|
const theme_1 = require("../ui/theme");
|
|
49
|
-
function
|
|
50
|
-
|
|
50
|
+
function usageMaps() {
|
|
51
|
+
const stats = (0, recent_1.getUsageStats)();
|
|
52
|
+
return {
|
|
53
|
+
runCounts: new Map(stats.map((s) => [s.name, s.runCount])),
|
|
54
|
+
lastRuns: new Map(stats.map((s) => [s.name, s.lastRunAt])),
|
|
55
|
+
};
|
|
51
56
|
}
|
|
52
57
|
function listHandler(format) {
|
|
53
58
|
const commands = (0, commands_1.listCommands)();
|
|
@@ -57,9 +62,13 @@ function listHandler(format) {
|
|
|
57
62
|
console.log(`\n${theme_1.icons.spark} Save your last command with ${theme_1.theme.name('aliasmate prev <name>')}`);
|
|
58
63
|
return;
|
|
59
64
|
}
|
|
60
|
-
if (format === 'table')
|
|
61
|
-
console.log(theme_1.
|
|
62
|
-
|
|
65
|
+
if (format === 'table') {
|
|
66
|
+
console.log(`\n${(0, theme_1.brandLine)(`· ${count} command${count > 1 ? 's' : ''}`)}\n`);
|
|
67
|
+
}
|
|
68
|
+
console.log((0, format_1.render)(commands, format, usageMaps()));
|
|
69
|
+
if (format === 'table') {
|
|
70
|
+
console.log(theme_1.theme.faint('\n ⁺N saved env vars · aliasmate run <name>'));
|
|
71
|
+
}
|
|
63
72
|
}
|
|
64
73
|
function searchHandler(query) {
|
|
65
74
|
const matches = (0, commands_1.searchCommands)(query);
|
|
@@ -68,8 +77,8 @@ function searchHandler(query) {
|
|
|
68
77
|
console.log(theme_1.theme.dim(`No commands match "${query}".`));
|
|
69
78
|
return;
|
|
70
79
|
}
|
|
71
|
-
console.log(theme_1.
|
|
72
|
-
console.log((0, format_1.render)(matches, 'table',
|
|
80
|
+
console.log(`\n${(0, theme_1.brandLine)(`· ${count} match${count > 1 ? 'es' : ''} for "${query}"`)}\n`);
|
|
81
|
+
console.log((0, format_1.render)(matches, 'table', usageMaps()));
|
|
73
82
|
}
|
|
74
83
|
async function deleteHandler(name, options) {
|
|
75
84
|
const cmd = (0, commands_1.getCommand)(name);
|
|
@@ -89,22 +98,32 @@ async function deleteHandler(name, options) {
|
|
|
89
98
|
(0, commands_1.deleteCommand)(name);
|
|
90
99
|
(0, theme_1.ok)(`Deleted ${theme_1.theme.name(name)}`);
|
|
91
100
|
}
|
|
92
|
-
async function editHandler(name
|
|
101
|
+
async function editHandler(name) {
|
|
93
102
|
const existing = (0, commands_1.getCommand)(name);
|
|
94
103
|
if (!existing) {
|
|
95
104
|
(0, theme_1.fail)(`Command "${name}" not found`);
|
|
96
105
|
process.exitCode = 1;
|
|
97
106
|
return;
|
|
98
107
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (options.validate !== false) {
|
|
104
|
-
for (const issue of (0, validate_1.validateSavedCommand)((0, commands_1.getCommand)(name)))
|
|
105
|
-
(0, theme_1.warn)(issue.message);
|
|
108
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
109
|
+
(0, theme_1.fail)('Editing needs an interactive terminal.');
|
|
110
|
+
process.exitCode = 1;
|
|
111
|
+
return;
|
|
106
112
|
}
|
|
107
|
-
|
|
113
|
+
const { interactiveHome } = await Promise.resolve().then(() => __importStar(require('../ui/interactive')));
|
|
114
|
+
await interactiveHome({
|
|
115
|
+
name,
|
|
116
|
+
command: existing.command,
|
|
117
|
+
directory: existing.directory,
|
|
118
|
+
pathMode: existing.pathMode ?? 'saved',
|
|
119
|
+
env: existing.env,
|
|
120
|
+
editing: name,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async function renameHandler(from, to) {
|
|
124
|
+
const { renameCommand } = await Promise.resolve().then(() => __importStar(require('../core/commands')));
|
|
125
|
+
renameCommand(from, to);
|
|
126
|
+
(0, theme_1.ok)(`renamed ${theme_1.theme.name(from)} ${theme_1.theme.dim('→')} ${theme_1.theme.name(to)}`);
|
|
108
127
|
}
|
|
109
128
|
function aliasHandler(shortAlias, commandName, options) {
|
|
110
129
|
if (options.remove) {
|
|
@@ -154,30 +173,29 @@ function recentHandler(options) {
|
|
|
154
173
|
break;
|
|
155
174
|
}
|
|
156
175
|
const counts = new Map(stats.map((s) => [s.name, s.runCount]));
|
|
157
|
-
console.log(theme_1.
|
|
176
|
+
console.log(`\n${(0, theme_1.brandLine)('· recent')}\n`);
|
|
158
177
|
rows.forEach((row, i) => {
|
|
159
178
|
const runs = counts.get(row.name) ?? 0;
|
|
160
|
-
console.log(` ${theme_1.theme.accent(`@${i}
|
|
179
|
+
console.log(` ${theme_1.theme.accent(`@${i}`.padEnd(4))} ${theme_1.theme.name(row.name.padEnd(20))} ${theme_1.theme.dim(`${(0, format_1.timeAgo)(row.at)} · ${runs} run${runs === 1 ? '' : 's'}`)}`);
|
|
161
180
|
});
|
|
162
|
-
console.log(theme_1.theme.
|
|
181
|
+
console.log(theme_1.theme.faint('\n re-run instantly: aliasmate run @0'));
|
|
163
182
|
}
|
|
164
183
|
function statsHandler() {
|
|
165
184
|
const stats = (0, recent_1.getUsageStats)();
|
|
166
185
|
const commands = (0, commands_1.listCommands)();
|
|
167
186
|
const total = (0, recent_1.getExecutionHistory)().length;
|
|
168
|
-
console.log(theme_1.
|
|
169
|
-
console.log(` ${theme_1.theme.
|
|
170
|
-
console.log(` ${theme_1.theme.
|
|
187
|
+
console.log(`\n${(0, theme_1.brandLine)('· stats')}\n`);
|
|
188
|
+
console.log(` ${theme_1.theme.faint('commands'.padEnd(10))}${Object.keys(commands).length}`);
|
|
189
|
+
console.log(` ${theme_1.theme.faint('runs'.padEnd(10))}${total}\n`);
|
|
171
190
|
const top = stats.slice(0, 10);
|
|
172
191
|
if (top.length === 0) {
|
|
173
|
-
console.log(theme_1.theme.dim(' Run something to start building stats
|
|
192
|
+
console.log(theme_1.theme.dim(' Run something to start building stats.'));
|
|
174
193
|
return;
|
|
175
194
|
}
|
|
176
|
-
console.log(theme_1.theme.heading(' Most used:\n'));
|
|
177
195
|
const max = top[0].runCount;
|
|
178
196
|
for (const s of top) {
|
|
179
|
-
const bar = '
|
|
180
|
-
console.log(` ${theme_1.theme.name(s.name.padEnd(20))} ${theme_1.theme.accent(bar)} ${s.runCount} ${theme_1.theme.
|
|
197
|
+
const bar = '▮'.repeat(Math.max(1, Math.round((s.runCount / max) * 24)));
|
|
198
|
+
console.log(` ${theme_1.theme.name(s.name.padEnd(20))} ${theme_1.theme.accent(bar)} ${theme_1.theme.dim(String(s.runCount))} ${theme_1.theme.faint((0, format_1.timeAgo)(s.lastRunAt))}`);
|
|
181
199
|
}
|
|
182
200
|
}
|
|
183
201
|
function validateHandler(name) {
|
package/dist/cli/manage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAyBD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/cli/run.js
CHANGED
|
@@ -3,25 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runHandler = runHandler;
|
|
4
4
|
const runner_1 = require("../core/runner");
|
|
5
5
|
const env_1 = require("../core/env");
|
|
6
|
+
const format_1 = require("../ui/format");
|
|
6
7
|
const theme_1 = require("../ui/theme");
|
|
7
8
|
function printDryRun(plan, verbose) {
|
|
8
|
-
|
|
9
|
-
console.log(
|
|
10
|
-
console.log(` ${
|
|
9
|
+
const label = (t) => theme_1.theme.faint(t.padEnd(9));
|
|
10
|
+
console.log(`\n${theme_1.icons.dot} ${theme_1.theme.heading(plan.name)} ${theme_1.theme.dim('· dry run — nothing will execute')}\n`);
|
|
11
|
+
console.log(` ${label('command')}${plan.saved.command}`);
|
|
12
|
+
console.log(` ${label('where')}${theme_1.theme.dim(`${(0, format_1.prettyPath)(plan.cwd)} (${plan.cwdSource})`)}`);
|
|
11
13
|
const env = plan.saved.env ?? {};
|
|
12
14
|
const envCount = Object.keys(env).length;
|
|
13
15
|
if (envCount > 0) {
|
|
14
|
-
console.log(` ${theme_1.theme.dim('
|
|
16
|
+
console.log(` ${label('env')}${theme_1.theme.dim(`${envCount} variable${envCount > 1 ? 's' : ''}`)}`);
|
|
15
17
|
if (verbose) {
|
|
16
18
|
for (const [k, v] of Object.entries((0, env_1.maskSensitive)(env))) {
|
|
17
|
-
console.log(`
|
|
19
|
+
console.log(` ${' '.repeat(9)}${theme_1.theme.dim(`${k}=${v}`)}`);
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
for (const danger of plan.dangers) {
|
|
22
|
-
(0, theme_1.warn)(`
|
|
24
|
+
(0, theme_1.warn)(`looks dangerous: ${danger}`);
|
|
23
25
|
}
|
|
24
|
-
console.log(theme_1.theme.
|
|
26
|
+
console.log(theme_1.theme.faint('\n run without --dry-run to execute'));
|
|
25
27
|
}
|
|
26
28
|
async function runHandler(name, pathOverride, options) {
|
|
27
29
|
const plan = (0, runner_1.planRun)(name, pathOverride);
|
|
@@ -29,17 +31,17 @@ async function runHandler(name, pathOverride, options) {
|
|
|
29
31
|
printDryRun(plan, options.verbose ?? false);
|
|
30
32
|
return;
|
|
31
33
|
}
|
|
32
|
-
console.log(`${theme_1.icons.
|
|
33
|
-
console.log(theme_1.theme.
|
|
34
|
+
console.log(`${theme_1.icons.dot} ${theme_1.theme.heading(plan.name)} ${theme_1.theme.faint('·')} ${theme_1.theme.dim(plan.saved.command)}`);
|
|
35
|
+
console.log(` ${theme_1.theme.faint((0, format_1.prettyPath)(plan.cwd))}\n`);
|
|
34
36
|
for (const danger of plan.dangers) {
|
|
35
|
-
(0, theme_1.warn)(`
|
|
37
|
+
(0, theme_1.warn)(`looks dangerous: ${danger}`);
|
|
36
38
|
}
|
|
37
39
|
const result = await (0, runner_1.executePlan)(plan);
|
|
38
40
|
if (result.success) {
|
|
39
|
-
console.log(`\n${theme_1.icons.ok} ${theme_1.theme.
|
|
41
|
+
console.log(`\n${theme_1.icons.ok} ${theme_1.theme.faint(`done · ${(result.durationMs / 1000).toFixed(1)}s`)}`);
|
|
40
42
|
}
|
|
41
43
|
else {
|
|
42
|
-
console.error(`\n${theme_1.icons.fail} ${theme_1.theme.error(`
|
|
44
|
+
console.error(`\n${theme_1.icons.fail} ${theme_1.theme.error(`exit ${result.exitCode}`)} ${theme_1.theme.faint(`· ${(result.durationMs / 1000).toFixed(1)}s`)}`);
|
|
43
45
|
process.exitCode = result.exitCode;
|
|
44
46
|
}
|
|
45
47
|
}
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/save.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/** `aliasmate save` —
|
|
2
|
-
export declare function saveHandler(
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}): Promise<void>;
|
|
1
|
+
/** `aliasmate save` — opens the TUI with a blank new-command form. */
|
|
2
|
+
export declare function saveHandler(): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* `aliasmate prev [name]` — captures your last shell command and opens the
|
|
5
|
+
* TUI form prefilled with it. In scripts (no TTY) it saves directly.
|
|
6
|
+
*/
|
|
7
|
+
export declare function prevHandler(name: string | undefined): Promise<void>;
|
|
9
8
|
//# sourceMappingURL=save.d.ts.map
|
package/dist/cli/save.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/cli/save.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/cli/save.ts"],"names":[],"mappings":"AAWA,sEAAsE;AACtE,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzE"}
|