aliasmate 1.6.1 → 2.0.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 +37 -0
- package/README.md +61 -876
- package/dist/cli/completion.d.ts +5 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +144 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/manage.d.ts +20 -0
- package/dist/cli/manage.d.ts.map +1 -0
- package/dist/cli/manage.js +213 -0
- package/dist/cli/manage.js.map +1 -0
- package/dist/cli/run.d.ts +6 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +46 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/save.d.ts +9 -0
- package/dist/cli/save.d.ts.map +1 -0
- package/dist/cli/save.js +52 -0
- package/dist/cli/save.js.map +1 -0
- package/dist/cli/transfer.d.ts +5 -0
- package/dist/cli/transfer.d.ts.map +1 -0
- package/dist/cli/transfer.js +118 -0
- package/dist/cli/transfer.js.map +1 -0
- package/dist/core/commands.d.ts +27 -0
- package/dist/core/commands.d.ts.map +1 -0
- package/dist/core/commands.js +194 -0
- package/dist/core/commands.js.map +1 -0
- package/dist/core/env.d.ts +9 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +45 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/executor.d.ts +7 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/{utils → core}/executor.js +10 -46
- package/dist/core/executor.js.map +1 -0
- package/dist/core/history.d.ts +11 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +117 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/recent.d.ts +14 -0
- package/dist/core/recent.d.ts.map +1 -0
- package/dist/core/recent.js +54 -0
- package/dist/core/recent.js.map +1 -0
- package/dist/core/runner.d.ts +13 -0
- package/dist/core/runner.d.ts.map +1 -0
- package/dist/core/runner.js +83 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/store.d.ts +29 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +131 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/types.d.ts +29 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validate.d.ts +6 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +139 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/format.d.ts +16 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +112 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/interactive.d.ts +6 -0
- package/dist/ui/interactive.d.ts.map +1 -0
- package/dist/ui/interactive.js +147 -0
- package/dist/ui/interactive.js.map +1 -0
- package/dist/ui/onboarding.d.ts +3 -0
- package/dist/ui/onboarding.d.ts.map +1 -0
- package/dist/ui/onboarding.js +82 -0
- package/dist/ui/onboarding.js.map +1 -0
- package/dist/ui/prompts.d.ts +14 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +96 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/theme.d.ts +28 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +43 -0
- package/dist/ui/theme.js.map +1 -0
- package/package.json +4 -5
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -252
- package/dist/cli.js.map +0 -1
- package/dist/commands/alias.d.ts +0 -30
- package/dist/commands/alias.d.ts.map +0 -1
- package/dist/commands/alias.js +0 -213
- package/dist/commands/alias.js.map +0 -1
- package/dist/commands/changelog.d.ts +0 -9
- package/dist/commands/changelog.d.ts.map +0 -1
- package/dist/commands/changelog.js +0 -72
- package/dist/commands/changelog.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -17
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js +0 -363
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/delete.d.ts +0 -14
- package/dist/commands/delete.d.ts.map +0 -1
- package/dist/commands/delete.js +0 -54
- package/dist/commands/delete.js.map +0 -1
- package/dist/commands/edit.d.ts +0 -16
- package/dist/commands/edit.d.ts.map +0 -1
- package/dist/commands/edit.js +0 -231
- package/dist/commands/edit.js.map +0 -1
- package/dist/commands/export.d.ts +0 -23
- package/dist/commands/export.d.ts.map +0 -1
- package/dist/commands/export.js +0 -122
- package/dist/commands/export.js.map +0 -1
- package/dist/commands/import.d.ts +0 -23
- package/dist/commands/import.d.ts.map +0 -1
- package/dist/commands/import.js +0 -235
- package/dist/commands/import.js.map +0 -1
- package/dist/commands/list.d.ts +0 -25
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -58
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/prev.d.ts +0 -15
- package/dist/commands/prev.d.ts.map +0 -1
- package/dist/commands/prev.js +0 -138
- package/dist/commands/prev.js.map +0 -1
- package/dist/commands/recent.d.ts +0 -24
- package/dist/commands/recent.d.ts.map +0 -1
- package/dist/commands/recent.js +0 -132
- package/dist/commands/recent.js.map +0 -1
- package/dist/commands/run.d.ts +0 -22
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -217
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/save.d.ts +0 -17
- package/dist/commands/save.d.ts.map +0 -1
- package/dist/commands/save.js +0 -232
- package/dist/commands/save.js.map +0 -1
- package/dist/commands/search.d.ts +0 -19
- package/dist/commands/search.d.ts.map +0 -1
- package/dist/commands/search.js +0 -113
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -10
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -162
- package/dist/commands/validate.js.map +0 -1
- package/dist/storage/index.d.ts +0 -117
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -262
- package/dist/storage/index.js.map +0 -1
- package/dist/utils/changelog.d.ts +0 -41
- package/dist/utils/changelog.d.ts.map +0 -1
- package/dist/utils/changelog.js +0 -192
- package/dist/utils/changelog.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -48
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -51
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/env.d.ts +0 -64
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -199
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -30
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -62
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/executor.d.ts +0 -33
- package/dist/utils/executor.d.ts.map +0 -1
- package/dist/utils/executor.js.map +0 -1
- package/dist/utils/formatters.d.ts +0 -30
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/formatters.js +0 -188
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/history.d.ts +0 -37
- package/dist/utils/history.d.ts.map +0 -1
- package/dist/utils/history.js +0 -179
- package/dist/utils/history.js.map +0 -1
- package/dist/utils/llm-generator.d.ts +0 -21
- package/dist/utils/llm-generator.d.ts.map +0 -1
- package/dist/utils/llm-generator.js +0 -915
- package/dist/utils/llm-generator.js.map +0 -1
- package/dist/utils/onboarding.d.ts +0 -10
- package/dist/utils/onboarding.d.ts.map +0 -1
- package/dist/utils/onboarding.js +0 -316
- package/dist/utils/onboarding.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -44
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -115
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/prompts.d.ts +0 -66
- package/dist/utils/prompts.d.ts.map +0 -1
- package/dist/utils/prompts.js +0 -51
- package/dist/utils/prompts.js.map +0 -1
- package/dist/utils/recent.d.ts +0 -55
- package/dist/utils/recent.d.ts.map +0 -1
- package/dist/utils/recent.js +0 -102
- package/dist/utils/recent.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -56
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -413
- package/dist/utils/validator.js.map +0 -1
- package/dist/utils/version-checker.d.ts +0 -29
- package/dist/utils/version-checker.d.ts.map +0 -1
- package/dist/utils/version-checker.js +0 -191
- package/dist/utils/version-checker.js.map +0 -1
- package/whats-new.json +0 -202
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/core/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ExecutionEntry } from './types';
|
|
2
|
+
export declare function getExecutionHistory(): ExecutionEntry[];
|
|
3
|
+
export declare function recordExecution(commandName: string): void;
|
|
4
|
+
export declare function clearExecutionHistory(): void;
|
|
5
|
+
/** Unique command names, most recently run first. Powers @N references. */
|
|
6
|
+
export declare function getRecentNames(limit?: number): string[];
|
|
7
|
+
export interface CommandStats {
|
|
8
|
+
name: string;
|
|
9
|
+
runCount: number;
|
|
10
|
+
lastRunAt: string;
|
|
11
|
+
}
|
|
12
|
+
/** Per-command usage stats, most-used first. */
|
|
13
|
+
export declare function getUsageStats(): CommandStats[];
|
|
14
|
+
//# sourceMappingURL=recent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent.d.ts","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAUvD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gDAAgD;AAChD,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAe9C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getExecutionHistory = getExecutionHistory;
|
|
4
|
+
exports.recordExecution = recordExecution;
|
|
5
|
+
exports.clearExecutionHistory = clearExecutionHistory;
|
|
6
|
+
exports.getRecentNames = getRecentNames;
|
|
7
|
+
exports.getUsageStats = getUsageStats;
|
|
8
|
+
const store_1 = require("./store");
|
|
9
|
+
const HISTORY_KEY = 'execution_history';
|
|
10
|
+
const MAX_ENTRIES = 200;
|
|
11
|
+
function getExecutionHistory() {
|
|
12
|
+
return (0, store_1.getMetadata)(HISTORY_KEY) ?? [];
|
|
13
|
+
}
|
|
14
|
+
function recordExecution(commandName) {
|
|
15
|
+
const history = getExecutionHistory();
|
|
16
|
+
history.unshift({ commandName, executedAt: new Date().toISOString() });
|
|
17
|
+
(0, store_1.setMetadata)(HISTORY_KEY, history.slice(0, MAX_ENTRIES));
|
|
18
|
+
}
|
|
19
|
+
function clearExecutionHistory() {
|
|
20
|
+
(0, store_1.setMetadata)(HISTORY_KEY, []);
|
|
21
|
+
}
|
|
22
|
+
/** Unique command names, most recently run first. Powers @N references. */
|
|
23
|
+
function getRecentNames(limit) {
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
const result = [];
|
|
26
|
+
for (const entry of getExecutionHistory()) {
|
|
27
|
+
if (seen.has(entry.commandName))
|
|
28
|
+
continue;
|
|
29
|
+
seen.add(entry.commandName);
|
|
30
|
+
result.push(entry.commandName);
|
|
31
|
+
if (limit !== undefined && result.length >= limit)
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
/** Per-command usage stats, most-used first. */
|
|
37
|
+
function getUsageStats() {
|
|
38
|
+
const stats = new Map();
|
|
39
|
+
for (const entry of getExecutionHistory()) {
|
|
40
|
+
const existing = stats.get(entry.commandName);
|
|
41
|
+
if (existing) {
|
|
42
|
+
existing.runCount += 1;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
stats.set(entry.commandName, {
|
|
46
|
+
name: entry.commandName,
|
|
47
|
+
runCount: 1,
|
|
48
|
+
lastRunAt: entry.executedAt,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [...stats.values()].sort((a, b) => b.runCount - a.runCount);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=recent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent.js","sourceRoot":"","sources":["../../src/core/recent.ts"],"names":[],"mappings":";;AAMA,kDAEC;AAED,0CAIC;AAED,sDAEC;AAGD,wCAUC;AASD,sCAeC;AAvDD,mCAAmD;AAGnD,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAgB,mBAAmB;IACjC,OAAO,IAAA,mBAAW,EAAmB,WAAW,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvE,IAAA,mBAAW,EAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,qBAAqB;IACnC,IAAA,mBAAW,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,KAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK;YAAE,MAAM;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,gDAAgD;AAChD,SAAgB,aAAa;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC3B,IAAI,EAAE,KAAK,CAAC,WAAW;gBACvB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SavedCommand } from './types';
|
|
2
|
+
export interface RunPlan {
|
|
3
|
+
name: string;
|
|
4
|
+
saved: SavedCommand;
|
|
5
|
+
cwd: string;
|
|
6
|
+
cwdSource: 'saved' | 'current' | 'override';
|
|
7
|
+
dangers: string[];
|
|
8
|
+
}
|
|
9
|
+
/** Resolve a name (or alias or @N) into a concrete execution plan. */
|
|
10
|
+
export declare function planRun(nameInput: string, pathOverride?: string): RunPlan;
|
|
11
|
+
/** Execute a plan, recording it in the usage history. */
|
|
12
|
+
export declare function executePlan(plan: RunPlan): Promise<import("./types").ExecutionResult>;
|
|
13
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CA0BzE;AAED,yDAAyD;AACzD,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,8CAW9C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.planRun = planRun;
|
|
37
|
+
exports.executePlan = executePlan;
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const commands_1 = require("./commands");
|
|
40
|
+
const recent_1 = require("./recent");
|
|
41
|
+
const executor_1 = require("./executor");
|
|
42
|
+
const validate_1 = require("./validate");
|
|
43
|
+
/** Resolve a name (or alias or @N) into a concrete execution plan. */
|
|
44
|
+
function planRun(nameInput, pathOverride) {
|
|
45
|
+
const name = (0, commands_1.resolveName)(nameInput, (0, recent_1.getRecentNames)());
|
|
46
|
+
if (!name) {
|
|
47
|
+
throw new Error(nameInput.startsWith('@')
|
|
48
|
+
? `No recent command at ${nameInput}. Run "aliasmate recent" to see history.`
|
|
49
|
+
: `Command "${nameInput}" not found. Run "aliasmate list" to see saved commands.`);
|
|
50
|
+
}
|
|
51
|
+
const saved = (0, commands_1.getCommand)(name);
|
|
52
|
+
if (!saved)
|
|
53
|
+
throw new Error(`Command "${name}" not found`);
|
|
54
|
+
let cwd;
|
|
55
|
+
let cwdSource;
|
|
56
|
+
if (pathOverride) {
|
|
57
|
+
cwd = path.resolve(pathOverride);
|
|
58
|
+
cwdSource = 'override';
|
|
59
|
+
}
|
|
60
|
+
else if ((saved.pathMode ?? 'saved') === 'current') {
|
|
61
|
+
cwd = process.cwd();
|
|
62
|
+
cwdSource = 'current';
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
cwd = saved.directory;
|
|
66
|
+
cwdSource = 'saved';
|
|
67
|
+
}
|
|
68
|
+
return { name, saved, cwd, cwdSource, dangers: (0, validate_1.getDangerWarnings)(saved.command) };
|
|
69
|
+
}
|
|
70
|
+
/** Execute a plan, recording it in the usage history. */
|
|
71
|
+
async function executePlan(plan) {
|
|
72
|
+
const errors = (0, validate_1.validateSavedCommand)({
|
|
73
|
+
...plan.saved,
|
|
74
|
+
directory: plan.cwd,
|
|
75
|
+
pathMode: 'saved',
|
|
76
|
+
}).filter((issue) => issue.level === 'error');
|
|
77
|
+
if (errors.length > 0) {
|
|
78
|
+
throw new Error(errors.map((e) => e.message).join('; '));
|
|
79
|
+
}
|
|
80
|
+
(0, recent_1.recordExecution)(plan.name);
|
|
81
|
+
return (0, executor_1.executeCommand)(plan.saved.command, plan.cwd, plan.saved.env);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,0BA0BC;AAGD,kCAWC;AAxDD,2CAA6B;AAC7B,yCAAqD;AACrD,qCAA2D;AAC3D,yCAA4C;AAC5C,yCAAqE;AAWrE,sEAAsE;AACtE,SAAgB,OAAO,CAAC,SAAiB,EAAE,YAAqB;IAC9D,MAAM,IAAI,GAAG,IAAA,sBAAW,EAAC,SAAS,EAAE,IAAA,uBAAc,GAAE,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;YACvB,CAAC,CAAC,wBAAwB,SAAS,0CAA0C;YAC7E,CAAC,CAAC,YAAY,SAAS,0DAA0D,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;IAE3D,IAAI,GAAW,CAAC;IAChB,IAAI,SAA+B,CAAC;IACpC,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjC,SAAS,GAAG,UAAU,CAAC;IACzB,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QACrD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;QACtB,SAAS,GAAG,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAA,4BAAiB,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,yDAAyD;AAClD,KAAK,UAAU,WAAW,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,IAAA,+BAAoB,EAAC;QAClC,GAAG,IAAI,CAAC,KAAK;QACb,SAAS,EAAE,IAAI,CAAC,GAAG;QACnB,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAA,wBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config directory resolution. ALIASMATE_HOME overrides the default so tests
|
|
3
|
+
* and power users can point at an isolated directory.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getConfigDir(): string;
|
|
6
|
+
export declare function getConfigPath(): string;
|
|
7
|
+
export declare function getMetadataPath(): string;
|
|
8
|
+
export declare function getOnboardingPath(): string;
|
|
9
|
+
/**
|
|
10
|
+
* A JSON-backed document with per-process caching and atomic writes.
|
|
11
|
+
* Each file is read at most once per process; writes go through a temp file
|
|
12
|
+
* and rename so a crash can never corrupt user data.
|
|
13
|
+
*/
|
|
14
|
+
export declare class JsonFile<T extends object> {
|
|
15
|
+
private readonly filePath;
|
|
16
|
+
private readonly fallback;
|
|
17
|
+
private cache;
|
|
18
|
+
constructor(filePath: () => string, fallback: () => T);
|
|
19
|
+
read(): T;
|
|
20
|
+
write(data: T): void;
|
|
21
|
+
update(mutate: (data: T) => void): T;
|
|
22
|
+
/** Drop the cache (used by tests when the underlying path changes). */
|
|
23
|
+
invalidate(): void;
|
|
24
|
+
}
|
|
25
|
+
export declare const configFile: JsonFile<Record<string, unknown>>;
|
|
26
|
+
export declare const metadataFile: JsonFile<Record<string, unknown>>;
|
|
27
|
+
export declare function getMetadata<T>(key: string): T | undefined;
|
|
28
|
+
export declare function setMetadata<T>(key: string, value: T): void;
|
|
29
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,MAAM;IAIlC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,KAAK,CAAkB;gBAGZ,QAAQ,EAAE,MAAM,MAAM,EACtB,QAAQ,EAAE,MAAM,CAAC;IAGpC,IAAI,IAAI,CAAC;IAuBT,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAQpB,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC;IAOpC,uEAAuE;IACvE,UAAU,IAAI,IAAI;CAGnB;AAED,eAAO,MAAM,UAAU,mCAAmE,CAAC;AAC3F,eAAO,MAAM,YAAY,mCAAqE,CAAC;AAE/F,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEzD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAI1D"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.metadataFile = exports.configFile = exports.JsonFile = void 0;
|
|
37
|
+
exports.getConfigDir = getConfigDir;
|
|
38
|
+
exports.getConfigPath = getConfigPath;
|
|
39
|
+
exports.getMetadataPath = getMetadataPath;
|
|
40
|
+
exports.getOnboardingPath = getOnboardingPath;
|
|
41
|
+
exports.getMetadata = getMetadata;
|
|
42
|
+
exports.setMetadata = setMetadata;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
/**
|
|
47
|
+
* Config directory resolution. ALIASMATE_HOME overrides the default so tests
|
|
48
|
+
* and power users can point at an isolated directory.
|
|
49
|
+
*/
|
|
50
|
+
function getConfigDir() {
|
|
51
|
+
const dir = process.env.ALIASMATE_HOME || path.join(os.homedir(), '.config', 'aliasmate');
|
|
52
|
+
if (!fs.existsSync(dir)) {
|
|
53
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
54
|
+
}
|
|
55
|
+
return dir;
|
|
56
|
+
}
|
|
57
|
+
function getConfigPath() {
|
|
58
|
+
return path.join(getConfigDir(), 'config.json');
|
|
59
|
+
}
|
|
60
|
+
function getMetadataPath() {
|
|
61
|
+
return path.join(getConfigDir(), 'metadata.json');
|
|
62
|
+
}
|
|
63
|
+
function getOnboardingPath() {
|
|
64
|
+
return path.join(getConfigDir(), 'onboarding.json');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A JSON-backed document with per-process caching and atomic writes.
|
|
68
|
+
* Each file is read at most once per process; writes go through a temp file
|
|
69
|
+
* and rename so a crash can never corrupt user data.
|
|
70
|
+
*/
|
|
71
|
+
class JsonFile {
|
|
72
|
+
constructor(filePath, fallback) {
|
|
73
|
+
this.filePath = filePath;
|
|
74
|
+
this.fallback = fallback;
|
|
75
|
+
this.cache = null;
|
|
76
|
+
}
|
|
77
|
+
read() {
|
|
78
|
+
if (this.cache !== null)
|
|
79
|
+
return this.cache;
|
|
80
|
+
const file = this.filePath();
|
|
81
|
+
if (!fs.existsSync(file)) {
|
|
82
|
+
this.cache = this.fallback();
|
|
83
|
+
return this.cache;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
this.cache = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Corrupt file: preserve it for the user instead of silently clobbering.
|
|
90
|
+
const backup = `${file}.corrupt-${Date.now()}`;
|
|
91
|
+
try {
|
|
92
|
+
fs.copyFileSync(file, backup);
|
|
93
|
+
process.stderr.write(`Warning: could not parse ${file}; backup saved to ${backup}\n`);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Best effort only.
|
|
97
|
+
}
|
|
98
|
+
this.cache = this.fallback();
|
|
99
|
+
}
|
|
100
|
+
return this.cache;
|
|
101
|
+
}
|
|
102
|
+
write(data) {
|
|
103
|
+
const file = this.filePath();
|
|
104
|
+
const tmp = `${file}.tmp`;
|
|
105
|
+
fs.writeFileSync(tmp, JSON.stringify(data, null, 2), 'utf8');
|
|
106
|
+
fs.renameSync(tmp, file);
|
|
107
|
+
this.cache = data;
|
|
108
|
+
}
|
|
109
|
+
update(mutate) {
|
|
110
|
+
const data = this.read();
|
|
111
|
+
mutate(data);
|
|
112
|
+
this.write(data);
|
|
113
|
+
return data;
|
|
114
|
+
}
|
|
115
|
+
/** Drop the cache (used by tests when the underlying path changes). */
|
|
116
|
+
invalidate() {
|
|
117
|
+
this.cache = null;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.JsonFile = JsonFile;
|
|
121
|
+
exports.configFile = new JsonFile(getConfigPath, () => ({}));
|
|
122
|
+
exports.metadataFile = new JsonFile(getMetadataPath, () => ({}));
|
|
123
|
+
function getMetadata(key) {
|
|
124
|
+
return exports.metadataFile.read()[key];
|
|
125
|
+
}
|
|
126
|
+
function setMetadata(key, value) {
|
|
127
|
+
exports.metadataFile.update((data) => {
|
|
128
|
+
data[key] = value;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Where a saved command executes: its saved directory or the caller's cwd. */
|
|
2
|
+
export type PathMode = 'saved' | 'current';
|
|
3
|
+
/** A saved command and its execution context. Matches the on-disk config.json schema. */
|
|
4
|
+
export interface SavedCommand {
|
|
5
|
+
command: string;
|
|
6
|
+
directory: string;
|
|
7
|
+
pathMode?: PathMode;
|
|
8
|
+
env?: Record<string, string>;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
updatedAt: string;
|
|
11
|
+
}
|
|
12
|
+
export type CommandMap = Record<string, SavedCommand>;
|
|
13
|
+
/** Shortcut alias name -> saved command name. */
|
|
14
|
+
export type AliasMap = Record<string, string>;
|
|
15
|
+
export interface ExecutionEntry {
|
|
16
|
+
commandName: string;
|
|
17
|
+
executedAt: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ValidationIssue {
|
|
20
|
+
level: 'error' | 'warning';
|
|
21
|
+
message: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ExecutionResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
exitCode: number;
|
|
26
|
+
durationMs: number;
|
|
27
|
+
}
|
|
28
|
+
export type ListFormat = 'table' | 'json' | 'yaml' | 'compact';
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEtD,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SavedCommand, ValidationIssue } from './types';
|
|
2
|
+
/** Static checks on a saved command; errors block execution, warnings do not. */
|
|
3
|
+
export declare function validateSavedCommand(cmd: SavedCommand): ValidationIssue[];
|
|
4
|
+
/** Human-readable warnings when a command looks destructive. */
|
|
5
|
+
export declare function getDangerWarnings(command: string): string[];
|
|
6
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/core/validate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwDxD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,eAAe,EAAE,CAkCzE;AAUD,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.validateSavedCommand = validateSavedCommand;
|
|
37
|
+
exports.getDangerWarnings = getDangerWarnings;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const SHELL_BUILTINS = new Set([
|
|
42
|
+
'cd',
|
|
43
|
+
'echo',
|
|
44
|
+
'export',
|
|
45
|
+
'source',
|
|
46
|
+
'alias',
|
|
47
|
+
'set',
|
|
48
|
+
'unset',
|
|
49
|
+
'read',
|
|
50
|
+
'eval',
|
|
51
|
+
'exec',
|
|
52
|
+
'exit',
|
|
53
|
+
'true',
|
|
54
|
+
'false',
|
|
55
|
+
'test',
|
|
56
|
+
'pwd',
|
|
57
|
+
'type',
|
|
58
|
+
'command',
|
|
59
|
+
'wait',
|
|
60
|
+
]);
|
|
61
|
+
function executableExistsInPath(name) {
|
|
62
|
+
const pathVar = process.env.PATH ?? '';
|
|
63
|
+
const exts = os.platform() === 'win32' ? (process.env.PATHEXT ?? '.EXE;.CMD;.BAT').split(';') : [''];
|
|
64
|
+
for (const dir of pathVar.split(path.delimiter)) {
|
|
65
|
+
if (!dir)
|
|
66
|
+
continue;
|
|
67
|
+
for (const ext of exts) {
|
|
68
|
+
try {
|
|
69
|
+
const candidate = path.join(dir, name + ext.toLowerCase());
|
|
70
|
+
if (fs.existsSync(candidate) || fs.existsSync(path.join(dir, name + ext)))
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Unreadable PATH entry; skip.
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
function hasBalancedQuotes(command) {
|
|
81
|
+
let single = false;
|
|
82
|
+
let double = false;
|
|
83
|
+
for (let i = 0; i < command.length; i++) {
|
|
84
|
+
const ch = command[i];
|
|
85
|
+
if (ch === '\\' && !single) {
|
|
86
|
+
i++;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (ch === "'" && !double)
|
|
90
|
+
single = !single;
|
|
91
|
+
if (ch === '"' && !single)
|
|
92
|
+
double = !double;
|
|
93
|
+
}
|
|
94
|
+
return !single && !double;
|
|
95
|
+
}
|
|
96
|
+
/** Static checks on a saved command; errors block execution, warnings do not. */
|
|
97
|
+
function validateSavedCommand(cmd) {
|
|
98
|
+
const issues = [];
|
|
99
|
+
const executable = cmd.command.trim().split(/\s+/)[0] ?? '';
|
|
100
|
+
const looksLikePath = executable.includes('/') || executable.includes('\\');
|
|
101
|
+
const isEnvAssignment = /^[A-Za-z_][A-Za-z0-9_]*=/.test(executable);
|
|
102
|
+
if (executable && !looksLikePath && !isEnvAssignment) {
|
|
103
|
+
if (!SHELL_BUILTINS.has(executable) && !executableExistsInPath(executable)) {
|
|
104
|
+
issues.push({ level: 'warning', message: `Command "${executable}" not found in PATH` });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (looksLikePath) {
|
|
108
|
+
const resolved = path.isAbsolute(executable)
|
|
109
|
+
? executable
|
|
110
|
+
: path.join(cmd.directory, executable);
|
|
111
|
+
if (!fs.existsSync(resolved)) {
|
|
112
|
+
issues.push({ level: 'warning', message: `File "${executable}" does not exist` });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!hasBalancedQuotes(cmd.command)) {
|
|
116
|
+
issues.push({ level: 'error', message: 'Unbalanced quotes in command' });
|
|
117
|
+
}
|
|
118
|
+
if ((cmd.pathMode ?? 'saved') === 'saved' && !fs.existsSync(cmd.directory)) {
|
|
119
|
+
issues.push({ level: 'error', message: `Directory does not exist: ${cmd.directory}` });
|
|
120
|
+
}
|
|
121
|
+
for (const key of Object.keys(cmd.env ?? {})) {
|
|
122
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) {
|
|
123
|
+
issues.push({ level: 'warning', message: `Invalid environment variable name: ${key}` });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return issues;
|
|
127
|
+
}
|
|
128
|
+
const DANGEROUS_PATTERNS = [
|
|
129
|
+
{ pattern: /rm\s+(-[a-z]*[rf][a-z]*\s+)+/i, label: 'recursive/forced delete (rm -rf)' },
|
|
130
|
+
{ pattern: /\bdd\s+.*of=/i, label: 'raw disk write (dd)' },
|
|
131
|
+
{ pattern: /\bmkfs(\.\w+)?\b/i, label: 'filesystem format (mkfs)' },
|
|
132
|
+
{ pattern: />\s*\/dev\/sd[a-z]/i, label: 'write to block device' },
|
|
133
|
+
{ pattern: /:\(\)\s*\{.*\};\s*:/, label: 'fork bomb' },
|
|
134
|
+
];
|
|
135
|
+
/** Human-readable warnings when a command looks destructive. */
|
|
136
|
+
function getDangerWarnings(command) {
|
|
137
|
+
return DANGEROUS_PATTERNS.filter(({ pattern }) => pattern.test(command)).map(({ label }) => label);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/core/validate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,oDAkCC;AAWD,8CAIC;AA7GD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAG7B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAEH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,IAAI,GACR,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;YACzF,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,MAAM,CAAC;QAC5C,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED,iFAAiF;AACjF,SAAgB,oBAAoB,CAAC,GAAiB;IACpD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,IAAI,UAAU,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,UAAU,qBAAqB,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAC1C,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,UAAU,kBAAkB,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,6BAA6B,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,sCAAsC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAA8C;IACpE,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,kCAAkC,EAAE;IACvF,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC1D,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,0BAA0B,EAAE;IACnE,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAClE,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE;CACvD,CAAC;AAEF,gEAAgE;AAChE,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAC1E,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CACrB,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|