snapshot-checker 0.2.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -343
- package/dist/commands/forkall.d.ts +4 -12
- package/dist/commands/forkall.d.ts.map +1 -1
- package/dist/commands/forkall.js +46 -23
- package/dist/commands/forkall.js.map +1 -1
- package/dist/commands/report.d.ts +9 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +153 -32
- package/dist/commands/report.js.map +1 -1
- package/dist/demos/context-demo.d.ts +10 -0
- package/dist/demos/context-demo.d.ts.map +1 -0
- package/dist/{commands/context_demo.js → demos/context-demo.js} +15 -18
- package/dist/demos/context-demo.js.map +1 -0
- package/dist/{commands → demos}/mac-example.d.ts +1 -3
- package/dist/demos/mac-example.d.ts.map +1 -0
- package/dist/{commands → demos}/mac-example.js +2 -4
- package/dist/demos/mac-example.js.map +1 -0
- package/dist/{commands/timeout_demo.d.ts → demos/timeout-demo.d.ts} +2 -2
- package/dist/demos/timeout-demo.d.ts.map +1 -0
- package/dist/demos/timeout-demo.js +35 -0
- package/dist/demos/timeout-demo.js.map +1 -0
- package/dist/src/cli.js +209 -169
- package/dist/src/cli.js.map +1 -1
- package/dist/src/executor.d.ts +1 -3
- package/dist/src/executor.d.ts.map +1 -1
- package/dist/src/executor.js +1 -3
- package/dist/src/executor.js.map +1 -1
- package/dist/src/groupSpecs.d.ts +1 -4
- package/dist/src/groupSpecs.d.ts.map +1 -1
- package/dist/src/groupSpecs.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/{common_groups.d.ts → presets.d.ts} +24 -2
- package/dist/src/lib/presets.d.ts.map +1 -0
- package/dist/src/lib/{common_groups.js → presets.js} +73 -24
- package/dist/src/lib/presets.js.map +1 -0
- package/dist/src/lib/{programmatic.d.ts → scenario.d.ts} +9 -11
- package/dist/src/lib/scenario.d.ts.map +1 -0
- package/dist/src/lib/{programmatic.js → scenario.js} +6 -10
- package/dist/src/lib/scenario.js.map +1 -0
- package/dist/src/logger.d.ts +23 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +92 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/runCommand.d.ts +27 -35
- package/dist/src/runCommand.d.ts.map +1 -1
- package/dist/src/runCommand.js +81 -70
- package/dist/src/runCommand.js.map +1 -1
- package/dist/src/runGroups.d.ts +6 -12
- package/dist/src/runGroups.d.ts.map +1 -1
- package/dist/src/runGroups.js +14 -19
- package/dist/src/runGroups.js.map +1 -1
- package/dist/src/runners/builtinFunctionRunner.d.ts +1 -0
- package/dist/src/runners/builtinFunctionRunner.d.ts.map +1 -1
- package/dist/src/runners/builtinFunctionRunner.js +5 -12
- package/dist/src/runners/builtinFunctionRunner.js.map +1 -1
- package/dist/src/runners/embedRunner.d.ts +1 -0
- package/dist/src/runners/embedRunner.d.ts.map +1 -1
- package/dist/src/runners/embedRunner.js +5 -1
- package/dist/src/runners/embedRunner.js.map +1 -1
- package/dist/src/runners/shellRunner.d.ts +1 -0
- package/dist/src/runners/shellRunner.d.ts.map +1 -1
- package/dist/src/runners/shellRunner.js +40 -8
- package/dist/src/runners/shellRunner.js.map +1 -1
- package/dist/src/runners/types.d.ts +9 -0
- package/dist/src/runners/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +47 -77
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +37 -10
- package/dist/src/types.js.map +1 -1
- package/package.json +10 -3
- package/dist/commands/context_demo.d.ts +0 -18
- package/dist/commands/context_demo.d.ts.map +0 -1
- package/dist/commands/context_demo.js.map +0 -1
- package/dist/commands/mac-example.d.ts.map +0 -1
- package/dist/commands/mac-example.js.map +0 -1
- package/dist/commands/timeout_demo.d.ts.map +0 -1
- package/dist/commands/timeout_demo.js +0 -48
- package/dist/commands/timeout_demo.js.map +0 -1
- package/dist/src/lib/common_groups.d.ts.map +0 -1
- package/dist/src/lib/common_groups.js.map +0 -1
- package/dist/src/lib/foo.d.ts +0 -3
- package/dist/src/lib/foo.d.ts.map +0 -1
- package/dist/src/lib/foo.js +0 -7
- package/dist/src/lib/foo.js.map +0 -1
- package/dist/src/lib/programmatic.d.ts.map +0 -1
- package/dist/src/lib/programmatic.js.map +0 -1
- package/dist/src/lib/trace_formatter.d.ts +0 -9
- package/dist/src/lib/trace_formatter.d.ts.map +0 -1
- package/dist/src/lib/trace_formatter.js +0 -148
- package/dist/src/lib/trace_formatter.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { CommandKind } from "../types.js";
|
|
1
|
+
import { CommandKind, unsupportedBackgroundCommandResult } from "../types.js";
|
|
2
|
+
/** `CommandKind.BuiltinFunction`:调用 `CommandDef.func` */
|
|
2
3
|
export class BuiltinFunctionCommandRunner {
|
|
3
4
|
canRun(cmd) {
|
|
4
5
|
return cmd.kind === CommandKind.BuiltinFunction;
|
|
@@ -15,17 +16,9 @@ export class BuiltinFunctionCommandRunner {
|
|
|
15
16
|
durationMs: Date.now() - options.start,
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
description: cmd.description ?? cmd.func.name ?? "builtin-function",
|
|
22
|
-
success: false,
|
|
23
|
-
exitCode: null,
|
|
24
|
-
stdout: "",
|
|
25
|
-
stderr: "builtin-function 暂不支持 background=true",
|
|
26
|
-
durationMs: Date.now() - options.start,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
19
|
+
const bgErr = unsupportedBackgroundCommandResult(cmd, options.start);
|
|
20
|
+
if (bgErr)
|
|
21
|
+
return bgErr;
|
|
29
22
|
try {
|
|
30
23
|
const status = await cmd.func(options.commandContext);
|
|
31
24
|
const success = status !== false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtinFunctionRunner.js","sourceRoot":"","sources":["../../../src/runners/builtinFunctionRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"builtinFunctionRunner.js","sourceRoot":"","sources":["../../../src/runners/builtinFunctionRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AAI9E,yDAAyD;AACzD,MAAM,OAAO,4BAA4B;IACvC,MAAM,CAAC,GAAe;QACpB,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,eAAe,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAe,EACf,OAA6B;QAE7B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,eAAe;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,kBAAkB;gBAClD,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,+BAA+B;gBACvC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;aACvC,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,kCAAkC,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,eAAe;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB;gBACnE,OAAO;gBACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B;gBAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;aACvC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,eAAe;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB;gBACnE,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CommandDef, CommandResult } from "../types.js";
|
|
2
2
|
import type { CommandRunner, RunnerExecuteOptions } from "./types.js";
|
|
3
|
+
/** `CommandKind.Embed`:`sleep`、`timeout`/`timieout` */
|
|
3
4
|
export declare class EmbedCommandRunner implements CommandRunner {
|
|
4
5
|
canRun(cmd: CommandDef): boolean;
|
|
5
6
|
execute(cmd: CommandDef, options: RunnerExecuteOptions): Promise<CommandResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/embedRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqHtE,qBAAa,kBAAmB,YAAW,aAAa;IACtD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI1B,OAAO,CACX,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"embedRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/embedRunner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqHtE,uDAAuD;AACvD,qBAAa,kBAAmB,YAAW,aAAa;IACtD,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAI1B,OAAO,CACX,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;CAqB1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommandKind } from "../types.js";
|
|
1
|
+
import { CommandKind, unsupportedBackgroundCommandResult } from "../types.js";
|
|
2
2
|
function sleep(ms) {
|
|
3
3
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
4
4
|
}
|
|
@@ -106,11 +106,15 @@ function runEmbedTimeout(cmd, start, streamOutput) {
|
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
|
+
/** `CommandKind.Embed`:`sleep`、`timeout`/`timieout` */
|
|
109
110
|
export class EmbedCommandRunner {
|
|
110
111
|
canRun(cmd) {
|
|
111
112
|
return cmd.kind === CommandKind.Embed;
|
|
112
113
|
}
|
|
113
114
|
async execute(cmd, options) {
|
|
115
|
+
const bgErr = unsupportedBackgroundCommandResult(cmd, options.start);
|
|
116
|
+
if (bgErr)
|
|
117
|
+
return bgErr;
|
|
114
118
|
const sleepResult = runEmbedSleep(cmd, options.start);
|
|
115
119
|
if (sleepResult)
|
|
116
120
|
return sleepResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedRunner.js","sourceRoot":"","sources":["../../../src/runners/embedRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"embedRunner.js","sourceRoot":"","sources":["../../../src/runners/embedRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CommandDef, CommandResult } from "../types.js";
|
|
2
2
|
import type { CommandRunner, RunnerExecuteOptions } from "./types.js";
|
|
3
|
+
/** `linux`/`mac`/`windows`:子进程执行 `run` 或 `file`+`args` */
|
|
3
4
|
export declare class ShellCommandRunner implements CommandRunner {
|
|
4
5
|
private readonly kinds;
|
|
5
6
|
canRun(cmd: CommandDef): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/shellRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAsCtE,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAInB;IAEH,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAIhC,OAAO,CACL,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shellRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/shellRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAsCtE,0DAA0D;AAC1D,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAInB;IAEH,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAIhC,OAAO,CACL,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;CA4I1B"}
|
|
@@ -24,10 +24,11 @@ function normalizeCommandForSpawn(cmd) {
|
|
|
24
24
|
}
|
|
25
25
|
const file = cmd.file;
|
|
26
26
|
if (!file)
|
|
27
|
-
throw new Error("CommandDef
|
|
27
|
+
throw new Error("CommandDef 需提供 `run` 或 `file`");
|
|
28
28
|
const args = cmd.args ?? [];
|
|
29
29
|
return { command: file, args, displayText: [file, ...args].join(" ") };
|
|
30
30
|
}
|
|
31
|
+
/** `linux`/`mac`/`windows`:子进程执行 `run` 或 `file`+`args` */
|
|
31
32
|
export class ShellCommandRunner {
|
|
32
33
|
kinds = new Set([
|
|
33
34
|
CommandKind.Linux,
|
|
@@ -42,16 +43,47 @@ export class ShellCommandRunner {
|
|
|
42
43
|
const cwd = cmd.cwd ?? process.cwd();
|
|
43
44
|
const shouldCaptureOutput = Boolean(cmd.captureToVar);
|
|
44
45
|
if (cmd.background && options.registerBackgroundProcess) {
|
|
45
|
-
const
|
|
46
|
+
const delayMs = Math.max(0, cmd.backgroundDelayMs ?? 0);
|
|
47
|
+
const stdio = [
|
|
48
|
+
"ignore",
|
|
49
|
+
options.streamOutput ? "inherit" : "ignore",
|
|
50
|
+
options.streamOutput ? "inherit" : "ignore",
|
|
51
|
+
];
|
|
52
|
+
const spawnBg = () => spawn(command, args, {
|
|
46
53
|
cwd,
|
|
47
54
|
shell: false,
|
|
48
|
-
stdio
|
|
49
|
-
"ignore",
|
|
50
|
-
options.streamOutput ? "inherit" : "ignore",
|
|
51
|
-
options.streamOutput ? "inherit" : "ignore",
|
|
52
|
-
],
|
|
55
|
+
stdio,
|
|
53
56
|
});
|
|
54
|
-
|
|
57
|
+
if (delayMs === 0) {
|
|
58
|
+
const child = spawnBg();
|
|
59
|
+
options.registerBackgroundProcess(child);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (!options.registerPendingBackgroundSpawn) {
|
|
63
|
+
return Promise.resolve({
|
|
64
|
+
kind: cmd.kind,
|
|
65
|
+
description: cmd.description,
|
|
66
|
+
success: false,
|
|
67
|
+
exitCode: null,
|
|
68
|
+
stdout: "",
|
|
69
|
+
stderr: "backgroundDelayMs>0 时需要由 executeAll/executeOne 注入 registerPendingBackgroundSpawn",
|
|
70
|
+
durationMs: Date.now() - options.start,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const done = new Promise((resolve, reject) => {
|
|
74
|
+
setTimeout(() => {
|
|
75
|
+
try {
|
|
76
|
+
const child = spawnBg();
|
|
77
|
+
options.registerBackgroundProcess(child);
|
|
78
|
+
resolve();
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
reject(err instanceof Error ? err : new Error(String(err)));
|
|
82
|
+
}
|
|
83
|
+
}, delayMs);
|
|
84
|
+
});
|
|
85
|
+
options.registerPendingBackgroundSpawn(done);
|
|
86
|
+
}
|
|
55
87
|
return Promise.resolve({
|
|
56
88
|
kind: cmd.kind,
|
|
57
89
|
description: cmd.description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellRunner.js","sourceRoot":"","sources":["../../../src/runners/shellRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"shellRunner.js","sourceRoot":"","sources":["../../../src/runners/shellRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import type { ChildProcess } from "node:child_process";
|
|
2
2
|
import type { CommandContext, CommandDef, CommandResult } from "../types.js";
|
|
3
|
+
/** `CommandRunner.execute` 入参 */
|
|
3
4
|
export interface RunnerExecuteOptions {
|
|
4
5
|
streamOutput: boolean;
|
|
5
6
|
registerBackgroundProcess?: (child: ChildProcess) => void;
|
|
7
|
+
/**
|
|
8
|
+
* 后台命令在延时计时器之后才 spawn 时调用,传入的 Promise 在子进程已登记进
|
|
9
|
+
* `registerBackgroundProcess` 后落地;{@link executeAll} 在收尾前会 `await` 这些 Promise,
|
|
10
|
+
* 避免尚未 spawn 就收掉后台列表。
|
|
11
|
+
*/
|
|
12
|
+
registerPendingBackgroundSpawn?: (done: Promise<void>) => void;
|
|
6
13
|
commandContext: CommandContext;
|
|
14
|
+
/** `executeOne` 起始时间戳(毫秒) */
|
|
7
15
|
start: number;
|
|
8
16
|
}
|
|
17
|
+
/** 与 {@link CommandKind} 子集对应的执行策略 */
|
|
9
18
|
export interface CommandRunner {
|
|
10
19
|
canRun(cmd: CommandDef): boolean;
|
|
11
20
|
execute(cmd: CommandDef, options: RunnerExecuteOptions): Promise<CommandResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runners/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;IACjC,OAAO,CACL,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runners/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7E,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1D;;;;OAIG;IACH,8BAA8B,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/D,cAAc,EAAE,cAAc,CAAC;IAC/B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC;IACjC,OAAO,CACL,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* - mac: 仅在 macOS 下执行
|
|
5
|
-
* - windows: 仅在 Windows 下执行
|
|
6
|
-
* - embed: 内置命令(如 sleep),由执行器内部实现,全平台可用
|
|
7
|
-
* - builtin-function: 内置函数命令(JS/TS 函数),由执行器直接调用,全平台可用
|
|
2
|
+
* 命令执行通道类别。
|
|
3
|
+
* `linux` / `mac` / `windows`:对应平台 Shell;`embed` / `builtin-function`:进程内执行,各平台可用。
|
|
8
4
|
*/
|
|
9
5
|
export declare enum CommandKind {
|
|
10
6
|
Linux = "linux",
|
|
@@ -13,95 +9,70 @@ export declare enum CommandKind {
|
|
|
13
9
|
Embed = "embed",
|
|
14
10
|
BuiltinFunction = "builtin-function"
|
|
15
11
|
}
|
|
16
|
-
/**
|
|
17
|
-
* 根据当前系统类型返回对应的命令类型枚举
|
|
18
|
-
*/
|
|
12
|
+
/** 将 `os.platform()` 映射为与当前主机匹配的 {@link CommandKind}(非 win32/darwin 归类为 `linux`)。 */
|
|
19
13
|
export declare function getCurrentPlatformKind(): CommandKind;
|
|
20
|
-
/**
|
|
21
|
-
* 单条命令定义
|
|
22
|
-
*/
|
|
14
|
+
/** 单条可调度命令的描述 */
|
|
23
15
|
export interface CommandDef {
|
|
24
|
-
/**
|
|
16
|
+
/** 选用的执行通道 */
|
|
25
17
|
kind: CommandKind;
|
|
26
|
-
/**
|
|
18
|
+
/** 日志与展示用摘要 */
|
|
27
19
|
description?: string;
|
|
28
|
-
/**
|
|
20
|
+
/** Shell 内联脚本;与 `file` 二选一,优先于 `file`+`args` */
|
|
29
21
|
run?: string;
|
|
30
|
-
/**
|
|
22
|
+
/** 可执行文件路径;在缺少 `run` 时使用 */
|
|
31
23
|
file?: string;
|
|
32
24
|
/**
|
|
33
|
-
*
|
|
34
|
-
* - 返回 true / false 时:分别表示成功 / 失败(等价退出码 0 / 1)
|
|
35
|
-
* - 返回 void 时:视为成功
|
|
25
|
+
* `builtin-function` 时调用;返回 `false` 记为失败,其余为成功(`void` 同成功)。
|
|
36
26
|
*/
|
|
37
27
|
func?: (context: CommandContext) => boolean | void | Promise<boolean | void>;
|
|
38
|
-
/**
|
|
28
|
+
/** `file` 模式下的参数列表 */
|
|
39
29
|
args?: string[];
|
|
40
|
-
/**
|
|
30
|
+
/** 工作目录;缺省为进程当前目录 */
|
|
41
31
|
cwd?: string;
|
|
42
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* 后台执行:不阻塞后续命令;前台结束后依 `waitForBackground` 或 CLI `--wait` 回收。
|
|
34
|
+
* 在 `executeAll`/`executeOne` 的 `streamOutput` 为 `true` 时(与默认非静默一致),本子进程 stdout/stderr
|
|
35
|
+
* 继承当前终端,可与仍在运行的并行前台子进程写入同一控制台,从而在时间上交错显示输出。
|
|
36
|
+
* 使用 `--silent`/静默时请见 `backgroundDelayMs` 说明。
|
|
37
|
+
*/
|
|
43
38
|
background?: boolean;
|
|
44
39
|
/**
|
|
45
|
-
*
|
|
40
|
+
* `background: true` 时:延迟多少毫秒后再启动子进程(不阻塞队列中后续命令)。
|
|
41
|
+
* 缺省或未设视为 0,与同批其它后台命令一样尽快 spawn。
|
|
42
|
+
*
|
|
43
|
+
* 延后启动的后台命令与随后开始的前台长时间任务若均开启流式输出,则二者的终端输出通常会在同一控制台交错出现;
|
|
44
|
+
* 若为静默(`silent`/`streamOutput: false`),后台子进程标准流将被忽略,无法在采集中穿插看到其输出。
|
|
46
45
|
*/
|
|
46
|
+
backgroundDelayMs?: number;
|
|
47
|
+
/** 将输出写入 `CommandContext`,供后续模板或内置函数使用 */
|
|
47
48
|
captureToVar?: CaptureToVarDef;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
|
-
*
|
|
51
|
-
* key 为变量名(仅建议使用字母/数字/下划线),value 可为任意类型。
|
|
52
|
-
* - 在 builtin-function 中请通过 get / set 读写。
|
|
53
|
-
* - 在命令模板 {{var}} 替换场景中,仅允许 string 类型参与替换。
|
|
51
|
+
* 同批次命令间共享的键值存储;`{{name}}` 替换仅接受 `string` 值。
|
|
54
52
|
*/
|
|
55
53
|
export interface CommandContext {
|
|
56
|
-
/**
|
|
57
|
-
* 读取上下文中的变量:
|
|
58
|
-
* - 不存在时返回 undefined
|
|
59
|
-
* - 调用方通过泛型参数标注期望类型:const pid = ctx.get<number>('pid')
|
|
60
|
-
*/
|
|
61
54
|
get<T = unknown>(key: string): T | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* 读取变量并提供默认值:
|
|
64
|
-
* - 不存在(或值为 undefined)时返回 defaultValue
|
|
65
|
-
*/
|
|
55
|
+
/** 键不存在或值为 `undefined` 时返回 `defaultValue` */
|
|
66
56
|
get<T = unknown>(key: string, defaultValue: T): T;
|
|
67
57
|
set(key: string, value: unknown): void;
|
|
68
|
-
/**
|
|
58
|
+
/** 键是否已定义(含显式写入的 `undefined`) */
|
|
69
59
|
has(key: string): boolean;
|
|
70
60
|
}
|
|
71
|
-
/**
|
|
61
|
+
/** 构造空 {@link CommandContext} */
|
|
72
62
|
export declare function createCommandContext(): CommandContext;
|
|
73
63
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* 使用方式示例:
|
|
77
|
-
* - 将整段 stdout 写入变量:
|
|
78
|
-
* { captureToVar: { name: 'foo' } }
|
|
79
|
-
* - 用正则从 stdout 中抽取一部分:
|
|
80
|
-
* { captureToVar: { name: 'pid', pattern: '^(\\d+)', groupIndex: 1 } }
|
|
64
|
+
* 将命令输出映射到上下文变量。
|
|
65
|
+
* 无 `pattern` 时使用去空白后的全文;有 `pattern` 时默认取捕获组 `groupIndex`(默认 `1`)。
|
|
81
66
|
*/
|
|
82
67
|
export interface CaptureToVarDef {
|
|
83
|
-
/** 变量名 */
|
|
84
68
|
name: string;
|
|
85
|
-
/**
|
|
86
|
-
* 从哪一个输出源读取:
|
|
87
|
-
* - stdout:标准输出(默认)
|
|
88
|
-
* - stderr:标准错误输出
|
|
89
|
-
*/
|
|
69
|
+
/** 截取来源;默认 `stdout` */
|
|
90
70
|
from?: "stdout" | "stderr";
|
|
91
|
-
/**
|
|
92
|
-
* 可选:用于从输出中提取变量值的正则表达式。
|
|
93
|
-
* - 若未提供,则使用整个输出(去除首尾空白)作为变量值。
|
|
94
|
-
* - 若提供,则默认使用第 1 个捕获组(groupIndex 默认为 1)。
|
|
95
|
-
*/
|
|
96
71
|
pattern?: string;
|
|
97
|
-
/**
|
|
98
|
-
* 指定要取的捕获组下标,默认 1。
|
|
99
|
-
*/
|
|
72
|
+
/** `pattern` 的捕获组下标;默认 `1` */
|
|
100
73
|
groupIndex?: number;
|
|
101
74
|
}
|
|
102
|
-
/**
|
|
103
|
-
* 命令执行结果
|
|
104
|
-
*/
|
|
75
|
+
/** 单条命令执行产物 */
|
|
105
76
|
export interface CommandResult {
|
|
106
77
|
kind: CommandKind;
|
|
107
78
|
description?: string;
|
|
@@ -111,31 +82,30 @@ export interface CommandResult {
|
|
|
111
82
|
stderr: string;
|
|
112
83
|
durationMs: number;
|
|
113
84
|
}
|
|
85
|
+
/** 仅 `linux` / `mac` / `windows` 的 Shell 子进程可调后台执行 */
|
|
86
|
+
export declare function commandKindSupportsBackground(kind: CommandKind): boolean;
|
|
114
87
|
/**
|
|
115
|
-
*
|
|
88
|
+
* 是否显式配置了与后台相关的选项:`background:true`,或正的 `backgroundDelayMs`。
|
|
116
89
|
*/
|
|
117
|
-
export
|
|
90
|
+
export declare function commandRequestsBackgroundOptions(cmd: CommandDef): boolean;
|
|
118
91
|
/**
|
|
119
|
-
*
|
|
92
|
+
* 不支持后台的 {@link CommandKind} 却在配置中带了 `background` / `backgroundDelayMs` 时的错误产物。
|
|
120
93
|
*/
|
|
94
|
+
export declare function unsupportedBackgroundCommandResult(cmd: CommandDef, startMs: number): CommandResult | null;
|
|
95
|
+
/** 命名组到命令序列的映射 */
|
|
96
|
+
export type Groups = Record<string, CommandDef[]>;
|
|
97
|
+
/** {@link runGroupChunks} 与 CLI 的执行开关 */
|
|
121
98
|
export interface RunOptions {
|
|
122
|
-
/** 是否在单条命令失败时停止后续命令 */
|
|
123
99
|
stopOnError?: boolean;
|
|
124
|
-
/**
|
|
100
|
+
/** 与 `ExecuteAllOptions.silent` 一致(参见 `runCommand` 模块) */
|
|
125
101
|
silent?: boolean;
|
|
126
|
-
/**
|
|
127
|
-
* 为 true 时:所有前台命令执行完后仍等待后台进程自然退出,再结束 CLI。
|
|
128
|
-
* 默认 false:前台全部结束后优雅终止后台进程并退出。
|
|
129
|
-
*/
|
|
102
|
+
/** 全部前台结束后是否阻塞至后台子进程退出;否则发送终止 */
|
|
130
103
|
waitForBackground?: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* 为 true 时忽略命令 kind 与当前系统的匹配关系,直接尝试执行全部命令。
|
|
133
|
-
* 该模式存在较高风险(例如在非目标平台执行失败),建议仅在明确知晓后果时使用。
|
|
134
|
-
*/
|
|
104
|
+
/** 忽略 `CommandKind` 与宿主 OS 是否一致 */
|
|
135
105
|
ignorePlatform?: boolean;
|
|
136
|
-
/**
|
|
106
|
+
/** 组名过滤;语义由调用方约定 */
|
|
137
107
|
groups?: string[];
|
|
138
|
-
/**
|
|
108
|
+
/** 相邻命令块之间的间隔(毫秒);对 `repeat` 产生的多块同样生效 */
|
|
139
109
|
intervalMs?: number;
|
|
140
110
|
}
|
|
141
111
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,eAAe,qBAAqB;CACrC;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,IAAI,WAAW,CAcpD;AAED,iBAAiB;AACjB,MAAM,WAAW,UAAU;IACzB,cAAc;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7E,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,6CAA6C;IAC7C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,iCAAiC;IACjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAwBD,iCAAiC;AACjC,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAe;AACf,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAMxE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAIzE;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,IAAI,CAYtB;AAED,kBAAkB;AAClB,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAElD,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mCAAmC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/src/types.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { platform } from "node:os";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* - mac: 仅在 macOS 下执行
|
|
6
|
-
* - windows: 仅在 Windows 下执行
|
|
7
|
-
* - embed: 内置命令(如 sleep),由执行器内部实现,全平台可用
|
|
8
|
-
* - builtin-function: 内置函数命令(JS/TS 函数),由执行器直接调用,全平台可用
|
|
3
|
+
* 命令执行通道类别。
|
|
4
|
+
* `linux` / `mac` / `windows`:对应平台 Shell;`embed` / `builtin-function`:进程内执行,各平台可用。
|
|
9
5
|
*/
|
|
10
6
|
export var CommandKind;
|
|
11
7
|
(function (CommandKind) {
|
|
@@ -15,9 +11,7 @@ export var CommandKind;
|
|
|
15
11
|
CommandKind["Embed"] = "embed";
|
|
16
12
|
CommandKind["BuiltinFunction"] = "builtin-function";
|
|
17
13
|
})(CommandKind || (CommandKind = {}));
|
|
18
|
-
/**
|
|
19
|
-
* 根据当前系统类型返回对应的命令类型枚举
|
|
20
|
-
*/
|
|
14
|
+
/** 将 `os.platform()` 映射为与当前主机匹配的 {@link CommandKind}(非 win32/darwin 归类为 `linux`)。 */
|
|
21
15
|
export function getCurrentPlatformKind() {
|
|
22
16
|
const p = platform();
|
|
23
17
|
if (p === "win32")
|
|
@@ -49,8 +43,41 @@ class CommandContextStore {
|
|
|
49
43
|
return Object.prototype.hasOwnProperty.call(this.data, key);
|
|
50
44
|
}
|
|
51
45
|
}
|
|
52
|
-
/**
|
|
46
|
+
/** 构造空 {@link CommandContext} */
|
|
53
47
|
export function createCommandContext() {
|
|
54
48
|
return new CommandContextStore();
|
|
55
49
|
}
|
|
50
|
+
/** 仅 `linux` / `mac` / `windows` 的 Shell 子进程可调后台执行 */
|
|
51
|
+
export function commandKindSupportsBackground(kind) {
|
|
52
|
+
return (kind === CommandKind.Linux ||
|
|
53
|
+
kind === CommandKind.Mac ||
|
|
54
|
+
kind === CommandKind.Windows);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 是否显式配置了与后台相关的选项:`background:true`,或正的 `backgroundDelayMs`。
|
|
58
|
+
*/
|
|
59
|
+
export function commandRequestsBackgroundOptions(cmd) {
|
|
60
|
+
if (cmd.background === true)
|
|
61
|
+
return true;
|
|
62
|
+
const d = cmd.backgroundDelayMs;
|
|
63
|
+
return typeof d === "number" && d > 0;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 不支持后台的 {@link CommandKind} 却在配置中带了 `background` / `backgroundDelayMs` 时的错误产物。
|
|
67
|
+
*/
|
|
68
|
+
export function unsupportedBackgroundCommandResult(cmd, startMs) {
|
|
69
|
+
if (!commandRequestsBackgroundOptions(cmd))
|
|
70
|
+
return null;
|
|
71
|
+
if (commandKindSupportsBackground(cmd.kind))
|
|
72
|
+
return null;
|
|
73
|
+
return {
|
|
74
|
+
kind: cmd.kind,
|
|
75
|
+
description: cmd.description,
|
|
76
|
+
success: false,
|
|
77
|
+
exitCode: null,
|
|
78
|
+
stdout: "",
|
|
79
|
+
stderr: `kind「${cmd.kind}」不支持后台执行,请勿设置 background 或 backgroundDelayMs`,
|
|
80
|
+
durationMs: Date.now() - startMs,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
56
83
|
//# sourceMappingURL=types.js.map
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,mDAAoC,CAAA;AACtC,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,qFAAqF;AACrF,MAAM,UAAU,sBAAsB;IACpC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC;IAC9C,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,GAAG,CAAC;IAC3C,IACE,CAAC,KAAK,OAAO;QACb,CAAC,KAAK,KAAK;QACX,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,OAAO,EACb,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC;AAC3B,CAAC;AAmDD,MAAM,mBAAmB;IACN,IAAI,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAIrE,GAAG,CAAc,GAAW,EAAE,YAAgB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,KAAU,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,iCAAiC;AACjC,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,mBAAmB,EAAE,CAAC;AACnC,CAAC;AA0BD,sDAAsD;AACtD,MAAM,UAAU,6BAA6B,CAAC,IAAiB;IAC7D,OAAO,CACL,IAAI,KAAK,WAAW,CAAC,KAAK;QAC1B,IAAI,KAAK,WAAW,CAAC,GAAG;QACxB,IAAI,KAAK,WAAW,CAAC,OAAO,CAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAe;IAC9D,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAChD,GAAe,EACf,OAAe;IAEf,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,6BAA6B,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,QAAQ,GAAG,CAAC,IAAI,8CAA8C;QACtE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;KACjC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snapshot-checker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "CLI 工具:按顺序执行 bat / mac / shell 命令",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
"types": "./dist/commands/*.d.ts",
|
|
16
16
|
"import": "./dist/commands/*.js",
|
|
17
17
|
"default": "./dist/commands/*.js"
|
|
18
|
+
},
|
|
19
|
+
"./demos/*": {
|
|
20
|
+
"types": "./dist/demos/*.d.ts",
|
|
21
|
+
"import": "./dist/demos/*.js",
|
|
22
|
+
"default": "./dist/demos/*.js"
|
|
18
23
|
}
|
|
19
24
|
},
|
|
20
25
|
"files": [
|
|
@@ -27,7 +32,7 @@
|
|
|
27
32
|
},
|
|
28
33
|
"scripts": {
|
|
29
34
|
"clean": "rimraf dist",
|
|
30
|
-
"build": "tsc",
|
|
35
|
+
"build": "rimraf dist && tsc",
|
|
31
36
|
"test": "tsx --test tests/**/*.test.ts",
|
|
32
37
|
"prepublishOnly": "npm run build",
|
|
33
38
|
"start": "node dist/src/cli.js",
|
|
@@ -49,7 +54,9 @@
|
|
|
49
54
|
},
|
|
50
55
|
"dependencies": {
|
|
51
56
|
"commander": "^12.0.0",
|
|
52
|
-
"
|
|
57
|
+
"consola": "^3.4.2",
|
|
58
|
+
"hiperf_txt_parser": "^1.2.5",
|
|
59
|
+
"hmtrace-parser": "^0.3.0"
|
|
53
60
|
},
|
|
54
61
|
"engines": {
|
|
55
62
|
"node": ">=18"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type Groups } from "../src/types.js";
|
|
2
|
-
/**
|
|
3
|
-
* 示例场景:演示如何在命令之间传递变量(含跨不同 group)。
|
|
4
|
-
*
|
|
5
|
-
* 使用方式(开发态):
|
|
6
|
-
* npm run dev -- context_demo
|
|
7
|
-
*
|
|
8
|
-
* 使用方式(构建后):
|
|
9
|
-
* node dist/cli.js context_demo
|
|
10
|
-
*
|
|
11
|
-
* 作为 npm 包被外部项目引用时:
|
|
12
|
-
* import { resolveScenario, runScenarioGroups } from 'snapshot-checker';
|
|
13
|
-
* import * as contextDemo from 'snapshot-checker/commands/context_demo';
|
|
14
|
-
* 完整示例见 demos/consumer-app(需先发布包并 npm install snapshot-checker)。
|
|
15
|
-
*/
|
|
16
|
-
export declare const groups: Groups;
|
|
17
|
-
export declare const defaultGroupOrder: string[];
|
|
18
|
-
//# sourceMappingURL=context_demo.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context_demo.d.ts","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,EAAE,MA8CpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAKrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context_demo.js","sourceRoot":"","sources":["../../commands/context_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,sBAAsB,GAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,oCAAoC;AACpC,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,OAAO,EAAE;QACP;YACE,IAAI;YACJ,WAAW,EAAE,oBAAoB;YACjC,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF;IACD,KAAK,EAAE;QACL;YACE,IAAI;YACJ,WAAW,EAAE,eAAe;YAC5B,GAAG,EAAE,wBAAwB;SAC9B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,CAAC,GAAmB,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAS,MAAM,CAAC,IAAI,SAAS,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,CAAC;SACF;QACD;YACE,IAAI;YACJ,WAAW,EAAE,aAAa;YAC1B,GAAG,EAAE,qCAAqC;SAC3C;KACF;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,WAAW,CAAC,eAAe;YACjC,WAAW,EAAE,uCAAuC;YACpD,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;SAClB;QACD;YACE,IAAI;YACJ,WAAW,EAAE,6BAA6B;YAC1C,GAAG,EAAE,qDAAqD;SAC3D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,SAAS;IACT,OAAO;IACP,WAAW;IACX,aAAa;CACd,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mac-example.d.ts","sourceRoot":"","sources":["../../commands/mac-example.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAQpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAoB,CAAC;AAE3D,eAAO,MAAM,OAAO;;;GAEnB,CAAC;AAEF,UAAU,iBAAiB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,CAuBlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mac-example.js","sourceRoot":"","sources":["../../commands/mac-example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,WAAW,CAAC,GAAG;YACrB,WAAW,EAAE,oBAAoB;YACjC,GAAG,EAAE,UAAU;SAChB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACxD,CAAC;AAMF,MAAM,UAAU,YAAY,CAAC,GAI5B;IACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE3C,MAAM,QAAQ,GACZ,GAAG,KAAK,EAAE;QACR,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,WAAW,CAAC,GAAG;gBACrB,WAAW,EAAE,yBAAyB;gBACtC,GAAG,EAAE,QAAQ,GAAG,EAAE;aACnB;SACF,CAAC;IAER,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO;QACL,MAAM,EAAE;YACN,GAAG,UAAU;YACb,GAAG,EAAE,QAAQ;SACd;QACD,iBAAiB,EAAE,KAAK;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeout_demo.d.ts","sourceRoot":"","sources":["../../commands/timeout_demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAmBzB,eAAO,MAAM,MAAM,EAAE,MA4BpB,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAsB,CAAC"}
|