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.
Files changed (93) hide show
  1. package/README.md +103 -343
  2. package/dist/commands/forkall.d.ts +4 -12
  3. package/dist/commands/forkall.d.ts.map +1 -1
  4. package/dist/commands/forkall.js +46 -23
  5. package/dist/commands/forkall.js.map +1 -1
  6. package/dist/commands/report.d.ts +9 -0
  7. package/dist/commands/report.d.ts.map +1 -1
  8. package/dist/commands/report.js +153 -32
  9. package/dist/commands/report.js.map +1 -1
  10. package/dist/demos/context-demo.d.ts +10 -0
  11. package/dist/demos/context-demo.d.ts.map +1 -0
  12. package/dist/{commands/context_demo.js → demos/context-demo.js} +15 -18
  13. package/dist/demos/context-demo.js.map +1 -0
  14. package/dist/{commands → demos}/mac-example.d.ts +1 -3
  15. package/dist/demos/mac-example.d.ts.map +1 -0
  16. package/dist/{commands → demos}/mac-example.js +2 -4
  17. package/dist/demos/mac-example.js.map +1 -0
  18. package/dist/{commands/timeout_demo.d.ts → demos/timeout-demo.d.ts} +2 -2
  19. package/dist/demos/timeout-demo.d.ts.map +1 -0
  20. package/dist/demos/timeout-demo.js +35 -0
  21. package/dist/demos/timeout-demo.js.map +1 -0
  22. package/dist/src/cli.js +209 -169
  23. package/dist/src/cli.js.map +1 -1
  24. package/dist/src/executor.d.ts +1 -3
  25. package/dist/src/executor.d.ts.map +1 -1
  26. package/dist/src/executor.js +1 -3
  27. package/dist/src/executor.js.map +1 -1
  28. package/dist/src/groupSpecs.d.ts +1 -4
  29. package/dist/src/groupSpecs.d.ts.map +1 -1
  30. package/dist/src/groupSpecs.js.map +1 -1
  31. package/dist/src/index.d.ts +1 -1
  32. package/dist/src/index.d.ts.map +1 -1
  33. package/dist/src/index.js +1 -1
  34. package/dist/src/index.js.map +1 -1
  35. package/dist/src/lib/{common_groups.d.ts → presets.d.ts} +24 -2
  36. package/dist/src/lib/presets.d.ts.map +1 -0
  37. package/dist/src/lib/{common_groups.js → presets.js} +73 -24
  38. package/dist/src/lib/presets.js.map +1 -0
  39. package/dist/src/lib/{programmatic.d.ts → scenario.d.ts} +9 -11
  40. package/dist/src/lib/scenario.d.ts.map +1 -0
  41. package/dist/src/lib/{programmatic.js → scenario.js} +6 -10
  42. package/dist/src/lib/scenario.js.map +1 -0
  43. package/dist/src/logger.d.ts +23 -0
  44. package/dist/src/logger.d.ts.map +1 -0
  45. package/dist/src/logger.js +92 -0
  46. package/dist/src/logger.js.map +1 -0
  47. package/dist/src/runCommand.d.ts +27 -35
  48. package/dist/src/runCommand.d.ts.map +1 -1
  49. package/dist/src/runCommand.js +81 -70
  50. package/dist/src/runCommand.js.map +1 -1
  51. package/dist/src/runGroups.d.ts +6 -12
  52. package/dist/src/runGroups.d.ts.map +1 -1
  53. package/dist/src/runGroups.js +14 -19
  54. package/dist/src/runGroups.js.map +1 -1
  55. package/dist/src/runners/builtinFunctionRunner.d.ts +1 -0
  56. package/dist/src/runners/builtinFunctionRunner.d.ts.map +1 -1
  57. package/dist/src/runners/builtinFunctionRunner.js +5 -12
  58. package/dist/src/runners/builtinFunctionRunner.js.map +1 -1
  59. package/dist/src/runners/embedRunner.d.ts +1 -0
  60. package/dist/src/runners/embedRunner.d.ts.map +1 -1
  61. package/dist/src/runners/embedRunner.js +5 -1
  62. package/dist/src/runners/embedRunner.js.map +1 -1
  63. package/dist/src/runners/shellRunner.d.ts +1 -0
  64. package/dist/src/runners/shellRunner.d.ts.map +1 -1
  65. package/dist/src/runners/shellRunner.js +40 -8
  66. package/dist/src/runners/shellRunner.js.map +1 -1
  67. package/dist/src/runners/types.d.ts +9 -0
  68. package/dist/src/runners/types.d.ts.map +1 -1
  69. package/dist/src/types.d.ts +47 -77
  70. package/dist/src/types.d.ts.map +1 -1
  71. package/dist/src/types.js +37 -10
  72. package/dist/src/types.js.map +1 -1
  73. package/package.json +10 -3
  74. package/dist/commands/context_demo.d.ts +0 -18
  75. package/dist/commands/context_demo.d.ts.map +0 -1
  76. package/dist/commands/context_demo.js.map +0 -1
  77. package/dist/commands/mac-example.d.ts.map +0 -1
  78. package/dist/commands/mac-example.js.map +0 -1
  79. package/dist/commands/timeout_demo.d.ts.map +0 -1
  80. package/dist/commands/timeout_demo.js +0 -48
  81. package/dist/commands/timeout_demo.js.map +0 -1
  82. package/dist/src/lib/common_groups.d.ts.map +0 -1
  83. package/dist/src/lib/common_groups.js.map +0 -1
  84. package/dist/src/lib/foo.d.ts +0 -3
  85. package/dist/src/lib/foo.d.ts.map +0 -1
  86. package/dist/src/lib/foo.js +0 -7
  87. package/dist/src/lib/foo.js.map +0 -1
  88. package/dist/src/lib/programmatic.d.ts.map +0 -1
  89. package/dist/src/lib/programmatic.js.map +0 -1
  90. package/dist/src/lib/trace_formatter.d.ts +0 -9
  91. package/dist/src/lib/trace_formatter.d.ts.map +0 -1
  92. package/dist/src/lib/trace_formatter.js +0 -148
  93. 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
- if (cmd.background) {
19
- return {
20
- kind: CommandKind.BuiltinFunction,
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;AAI1C,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,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,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,uCAAuC;gBAC/C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;aACvC,CAAC;QACJ,CAAC;QACD,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
+ {"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;CAmB1B"}
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":"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"}
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;CA2G1B"}
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 必须提供 run 或 file");
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 child = spawn(command, args, {
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
- options.registerBackgroundProcess(child);
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":"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"}
1
+ {"version":3,"file":"shellRunner.js","sourceRoot":"","sources":["../../../src/runners/shellRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,SAAS,aAAa,CAAC,IAAmB;IACxC,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,IAAI,KAAK,WAAW,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CACnB,IAAiB,EACjB,GAAW;IAEX,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAe;IAK/C,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,0DAA0D;AAC1D,MAAM,OAAO,kBAAkB;IACZ,KAAK,GAAG,IAAI,GAAG,CAAc;QAC5C,WAAW,CAAC,KAAK;QACjB,WAAW,CAAC,GAAG;QACf,WAAW,CAAC,OAAO;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,GAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CACL,GAAe,EACf,OAA6B;QAE7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEtD,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;YACxD,MAAM,KAAK,GAA2D;gBACpE,QAAQ;gBACR,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBAC3C,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;aAC5C,CAAC;YACF,MAAM,OAAO,GAAG,GAAiB,EAAE,CACjC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;gBACnB,GAAG;gBACH,KAAK,EAAE,KAAK;gBACZ,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC;oBAC5C,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,EAAE;wBACV,MAAM,EACJ,kFAAkF;wBACpF,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;qBACvC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACjD,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC;4BACH,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;4BACxB,OAAO,CAAC,yBAA0B,CAAC,KAAK,CAAC,CAAC;4BAC1C,OAAO,EAAE,CAAC;wBACZ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9D,CAAC;oBACH,CAAC,EAAE,OAAO,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;aACvC,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;oBACjC,GAAG;oBACH,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;iBACxC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;oBACxC,OAAO,CAAC;wBACN,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;wBAC3C,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC;wBAC5B,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,EAAE;wBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;qBACvC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,OAAO,CAAC;wBACN,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;wBAC3C,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;qBACvC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;gBACjC,GAAG;gBACH,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,OAAO,CAAC,YAAY;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,OAAO,CAAC,YAAY;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;gBACxC,OAAO,CAAC;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;oBAC3C,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC;oBAC5B,QAAQ,EAAE,IAAI;oBACd,MAAM;oBACN,MAAM;oBACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;iBACvC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;oBAC3C,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,GAAG,CAAC,OAAO;oBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK;iBACvC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -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"}
@@ -1,10 +1,6 @@
1
1
  /**
2
- * 命令类型枚举:与系统平台或内置行为关联
3
- * - linux: 仅在 Linux 下执行
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
- /** 要执行的命令或脚本内容(优先级高于 file+args */
20
+ /** Shell 内联脚本;与 `file` 二选一,优先于 `file`+`args` */
29
21
  run?: string;
30
- /** 可执行文件路径(当未提供 run 时生效) */
22
+ /** 可执行文件路径;在缺少 `run` 时使用 */
31
23
  file?: string;
32
24
  /**
33
- * 内置函数(kind 为 builtin-function 时生效)
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
- /** 传给 file 的参数数组(当未提供 run 时生效) */
28
+ /** `file` 模式下的参数列表 */
39
29
  args?: string[];
40
- /** 可选:工作目录,不填则使用当前目录 */
30
+ /** 工作目录;缺省为进程当前目录 */
41
31
  cwd?: string;
42
- /** 为 true 时在后台运行,执行器不等待其结束即继续下一条;默认全部前台命令结束后会优雅结束后台进程;传 CLI --wait 则改为等到后台进程全部退出后再退出 */
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
- /** 是否包含该 key(与 get 返回 undefined 区分:可能显式存了 undefined) */
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 type Groups = Record<string, CommandDef[]>;
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
- /** 每组命令之间的执行间隔(毫秒),默认无间隔;对重复执行的 group 也生效(每次重复后间隔) */
108
+ /** 相邻命令块之间的间隔(毫秒);对 `repeat` 产生的多块同样生效 */
139
109
  intervalMs?: number;
140
110
  }
141
111
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,CAcpD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7E,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C;;;OAGG;IACH,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,wDAAwD;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAwBD,kBAAkB;AAClB,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,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;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/src/types.js CHANGED
@@ -1,11 +1,7 @@
1
1
  import { platform } from "node:os";
2
2
  /**
3
- * 命令类型枚举:与系统平台或内置行为关联
4
- * - linux: 仅在 Linux 下执行
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;;;;;GAOG;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;;GAEG;AACH,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;AAuDD,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,kBAAkB;AAClB,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,mBAAmB,EAAE,CAAC;AACnC,CAAC"}
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.2.2",
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
- "hiperf_txt_parser": "^1.1.0"
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"}