@duyquangnvx/agent-cli 0.16.0 → 0.18.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 +76 -0
- package/README.md +2 -2
- package/agents-section.md +5 -0
- package/dist/agent-cli.d.ts +69 -11
- package/dist/agent-cli.js +69 -10
- package/dist/agent-cli.js.map +1 -1
- package/dist/built-ins/agents-md.d.ts +9 -9
- package/dist/built-ins/agents-md.js +8 -8
- package/dist/built-ins/agents-md.js.map +1 -1
- package/dist/built-ins/doctor-rows.js +5 -3
- package/dist/built-ins/doctor-rows.js.map +1 -1
- package/dist/built-ins/doctor.d.ts +1 -1
- package/dist/built-ins/doctor.js +16 -15
- package/dist/built-ins/doctor.js.map +1 -1
- package/dist/built-ins/install/dependency.js +1 -1
- package/dist/built-ins/install/dependency.js.map +1 -1
- package/dist/built-ins/install/global-npm.js +6 -4
- package/dist/built-ins/install/global-npm.js.map +1 -1
- package/dist/built-ins/npm.d.ts +3 -2
- package/dist/built-ins/npm.js +16 -9
- package/dist/built-ins/npm.js.map +1 -1
- package/dist/{project-root.js → built-ins/project-root.js} +1 -1
- package/dist/built-ins/project-root.js.map +1 -0
- package/dist/built-ins/skill/hub.d.ts +3 -2
- package/dist/built-ins/skill/hub.js +43 -16
- package/dist/built-ins/skill/hub.js.map +1 -1
- package/dist/built-ins/skill/install-command.d.ts +3 -4
- package/dist/built-ins/skill/install-command.js +20 -21
- package/dist/built-ins/skill/install-command.js.map +1 -1
- package/dist/built-ins/skill/packaged.js +5 -2
- package/dist/built-ins/skill/packaged.js.map +1 -1
- package/dist/built-ins/skill/skill.d.ts +5 -2
- package/dist/built-ins/skill/skill.js +1 -1
- package/dist/built-ins/skill/skill.js.map +1 -1
- package/dist/built-ins/update.d.ts +1 -1
- package/dist/built-ins/update.js +4 -9
- package/dist/built-ins/update.js.map +1 -1
- package/dist/check-examples.d.ts +6 -0
- package/dist/check-examples.js +53 -0
- package/dist/check-examples.js.map +1 -0
- package/dist/check-next-steps.d.ts +10 -0
- package/dist/check-next-steps.js +47 -0
- package/dist/check-next-steps.js.map +1 -0
- package/dist/command-errors.d.ts +8 -0
- package/dist/command-errors.js +25 -0
- package/dist/command-errors.js.map +1 -0
- package/dist/{flags.d.ts → command-line/flags.d.ts} +7 -4
- package/dist/{flags.js → command-line/flags.js} +8 -10
- package/dist/command-line/flags.js.map +1 -0
- package/dist/{input.d.ts → command-line/input.d.ts} +1 -1
- package/dist/{input.js → command-line/input.js} +1 -1
- package/dist/command-line/input.js.map +1 -0
- package/dist/{invocation.d.ts → command-line/invocation.d.ts} +6 -3
- package/dist/{invocation.js → command-line/invocation.js} +9 -5
- package/dist/command-line/invocation.js.map +1 -0
- package/dist/{parse-input.d.ts → command-line/parse-input.d.ts} +2 -2
- package/dist/{parse-input.js → command-line/parse-input.js} +3 -3
- package/dist/command-line/parse-input.js.map +1 -0
- package/dist/command-line/route-line.d.ts +15 -0
- package/dist/command-line/route-line.js +18 -0
- package/dist/command-line/route-line.js.map +1 -0
- package/dist/{route.d.ts → command-line/route.d.ts} +2 -2
- package/dist/{route.js → command-line/route.js} +1 -1
- package/dist/command-line/route.js.map +1 -0
- package/dist/command-line/shell-words.d.ts +12 -0
- package/dist/command-line/shell-words.js +83 -0
- package/dist/command-line/shell-words.js.map +1 -0
- package/dist/command-line/suggest.js.map +1 -0
- package/dist/command-line/tokenize.js.map +1 -0
- package/dist/{usage.d.ts → command-line/usage.d.ts} +1 -1
- package/dist/{usage.js → command-line/usage.js} +2 -2
- package/dist/command-line/usage.js.map +1 -0
- package/dist/command-spec.d.ts +13 -4
- package/dist/command-spec.js +22 -11
- package/dist/command-spec.js.map +1 -1
- package/dist/{agent.d.ts → context/agent.d.ts} +1 -1
- package/dist/context/agent.js.map +1 -0
- package/dist/{confirm.d.ts → context/confirm.d.ts} +3 -3
- package/dist/{confirm.js → context/confirm.js} +9 -11
- package/dist/context/confirm.js.map +1 -0
- package/dist/{cost.d.ts → context/cost.d.ts} +3 -3
- package/dist/context/cost.js +16 -0
- package/dist/context/cost.js.map +1 -0
- package/dist/context/declared.d.ts +8 -0
- package/dist/context/declared.js +10 -0
- package/dist/context/declared.js.map +1 -0
- package/dist/{errno.d.ts → context/errno.d.ts} +4 -3
- package/dist/{errno.js → context/errno.js} +14 -7
- package/dist/context/errno.js.map +1 -0
- package/dist/{files.js → context/files.js} +1 -1
- package/dist/context/files.js.map +1 -0
- package/dist/{interrupts.d.ts → context/interrupts.d.ts} +14 -10
- package/dist/{interrupts.js → context/interrupts.js} +30 -27
- package/dist/context/interrupts.js.map +1 -0
- package/dist/{operator.d.ts → context/operator.d.ts} +4 -3
- package/dist/{operator.js → context/operator.js} +4 -3
- package/dist/context/operator.js.map +1 -0
- package/dist/{outputs.d.ts → context/outputs.d.ts} +6 -5
- package/dist/{outputs.js → context/outputs.js} +10 -9
- package/dist/context/outputs.js.map +1 -0
- package/dist/{project.d.ts → context/project.d.ts} +4 -3
- package/dist/{project.js → context/project.js} +8 -7
- package/dist/context/project.js.map +1 -0
- package/dist/{secrets.d.ts → context/secrets.d.ts} +8 -1
- package/dist/context/secrets.js +85 -0
- package/dist/context/secrets.js.map +1 -0
- package/dist/{side-task.d.ts → context/side-task.d.ts} +2 -2
- package/dist/{side-task.js → context/side-task.js} +1 -1
- package/dist/context/side-task.js.map +1 -0
- package/dist/{spawn.d.ts → context/spawn.d.ts} +4 -3
- package/dist/{spawn.js → context/spawn.js} +7 -6
- package/dist/context/spawn.js.map +1 -0
- package/dist/{spill.d.ts → context/spill.d.ts} +4 -3
- package/dist/{spill.js → context/spill.js} +4 -4
- package/dist/context/spill.js.map +1 -0
- package/dist/{stdin.d.ts → context/stdin.d.ts} +2 -2
- package/dist/{stdin.js → context/stdin.js} +2 -2
- package/dist/context/stdin.js.map +1 -0
- package/dist/{tools.d.ts → context/tools.d.ts} +4 -3
- package/dist/{tools.js → context/tools.js} +8 -10
- package/dist/context/tools.js.map +1 -0
- package/dist/context.d.ts +51 -27
- package/dist/define-command.d.ts +47 -0
- package/dist/define-command.js +25 -0
- package/dist/define-command.js.map +1 -0
- package/dist/define.d.ts +81 -61
- package/dist/define.js +0 -14
- package/dist/define.js.map +1 -1
- package/dist/error-table.d.ts +9 -6
- package/dist/error-table.js +6 -6
- package/dist/error-table.js.map +1 -1
- package/dist/errors.d.ts +15 -1
- package/dist/errors.js +24 -6
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +8 -7
- package/dist/execute.js +52 -23
- package/dist/execute.js.map +1 -1
- package/dist/exit-classes.d.ts +1 -2
- package/dist/exit-classes.js +41 -48
- package/dist/exit-classes.js.map +1 -1
- package/dist/help-json.d.ts +4 -3
- package/dist/help-json.js +33 -11
- package/dist/help-json.js.map +1 -1
- package/dist/help.js +1 -0
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +19 -26
- package/dist/index.js +6 -18
- package/dist/index.js.map +1 -1
- package/dist/list.d.ts +6 -5
- package/dist/list.js +17 -11
- package/dist/list.js.map +1 -1
- package/dist/next-step.d.ts +23 -0
- package/dist/next-step.js +20 -0
- package/dist/next-step.js.map +1 -0
- package/dist/output.d.ts +11 -5
- package/dist/output.js +25 -11
- package/dist/output.js.map +1 -1
- package/dist/root-spec.d.ts +5 -0
- package/dist/root-spec.js +15 -0
- package/dist/root-spec.js.map +1 -0
- package/dist/run-cli.d.ts +2 -2
- package/dist/run-cli.js +12 -11
- package/dist/run-cli.js.map +1 -1
- package/dist/run-command.d.ts +4 -4
- package/dist/run-command.js +66 -37
- package/dist/run-command.js.map +1 -1
- package/dist/run-options.d.ts +11 -4
- package/dist/run-process.js +22 -7
- package/dist/run-process.js.map +1 -1
- package/dist/runtime-codes.d.ts +33 -0
- package/dist/runtime-codes.js +50 -0
- package/dist/runtime-codes.js.map +1 -0
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/testing.d.ts +27 -0
- package/dist/testing.js +66 -0
- package/dist/testing.js.map +1 -0
- package/dist/version.d.ts +4 -1
- package/dist/version.js +6 -1
- package/dist/version.js.map +1 -1
- package/docs/README.md +51 -0
- package/docs/example/archive.test.ts +280 -0
- package/docs/example/archive.ts +160 -0
- package/docs/example/bin.test.ts +118 -0
- package/docs/example/bin.ts +5 -0
- package/docs/example/bundle.test.ts +57 -0
- package/docs/example/bundle.ts +57 -0
- package/docs/example/cli.test.ts +428 -0
- package/docs/example/cli.ts +191 -0
- package/docs/example/commit.test.ts +78 -0
- package/docs/example/commit.ts +26 -0
- package/docs/example/define.ts +16 -0
- package/docs/example/errors.ts +17 -0
- package/docs/example/export.test.ts +64 -0
- package/docs/example/export.ts +32 -0
- package/docs/example/fake-ports.ts +14 -0
- package/docs/example/folder.ts +48 -0
- package/docs/example/import.test.ts +53 -0
- package/docs/example/import.ts +50 -0
- package/docs/example/package.json +21 -0
- package/docs/example/ports.ts +105 -0
- package/docs/example/serve.test.ts +49 -0
- package/docs/example/serve.ts +40 -0
- package/docs/example/store.ts +62 -0
- package/docs/example/tsdown.config.ts +33 -0
- package/docs/getting-started.md +19 -0
- package/docs/guides/commands.md +35 -0
- package/docs/guides/doctor.md +52 -0
- package/docs/guides/effects-and-plans.md +44 -0
- package/docs/guides/errors.md +57 -0
- package/docs/guides/lists.md +18 -0
- package/docs/guides/local-state.md +28 -0
- package/docs/guides/long-runs.md +109 -0
- package/docs/guides/remote-services.md +124 -0
- package/docs/guides/shipping.md +61 -0
- package/docs/guides/testing.md +69 -0
- package/docs/principles.md +39 -0
- package/docs/reference.md +25 -0
- package/package.json +12 -1
- package/dist/agent.js.map +0 -1
- package/dist/confirm.js.map +0 -1
- package/dist/cost.js +0 -16
- package/dist/cost.js.map +0 -1
- package/dist/errno.js.map +0 -1
- package/dist/files.js.map +0 -1
- package/dist/flags.js.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/interrupts.js.map +0 -1
- package/dist/invocation.js.map +0 -1
- package/dist/operator.js.map +0 -1
- package/dist/outputs.js.map +0 -1
- package/dist/parse-input.js.map +0 -1
- package/dist/project-root.js.map +0 -1
- package/dist/project.js.map +0 -1
- package/dist/route.js.map +0 -1
- package/dist/secrets.js +0 -31
- package/dist/secrets.js.map +0 -1
- package/dist/side-task.js.map +0 -1
- package/dist/spawn.js.map +0 -1
- package/dist/spill.js.map +0 -1
- package/dist/stdin.js.map +0 -1
- package/dist/suggest.js.map +0 -1
- package/dist/tokenize.js.map +0 -1
- package/dist/tools.js.map +0 -1
- package/dist/usage.js.map +0 -1
- /package/dist/{project-root.d.ts → built-ins/project-root.d.ts} +0 -0
- /package/dist/{suggest.d.ts → command-line/suggest.d.ts} +0 -0
- /package/dist/{suggest.js → command-line/suggest.js} +0 -0
- /package/dist/{tokenize.d.ts → command-line/tokenize.d.ts} +0 -0
- /package/dist/{tokenize.js → command-line/tokenize.js} +0 -0
- /package/dist/{agent.js → context/agent.js} +0 -0
- /package/dist/{files.d.ts → context/files.d.ts} +0 -0
package/dist/run-command.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import type { CommandRoute } from "./command-line/route.js";
|
|
2
|
+
import { type FinishSideTask } from "./context/side-task.js";
|
|
1
3
|
import type { Cli } from "./define.js";
|
|
2
4
|
import { type OutputFormat, type RunResult } from "./output.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type { RunOptions, Writers } from "./run-options.js";
|
|
5
|
-
import { type FinishSideTask } from "./side-task.js";
|
|
5
|
+
import type { RunSettings, Writers } from "./run-options.js";
|
|
6
6
|
export interface Ran {
|
|
7
7
|
readonly result: RunResult;
|
|
8
8
|
readonly finishSideTask: FinishSideTask;
|
|
9
9
|
}
|
|
10
10
|
/** Leaves the Side task running, so the caller writes the result before it waits for it. */
|
|
11
|
-
export declare function runCommand(cli: Cli, routed: CommandRoute, options:
|
|
11
|
+
export declare function runCommand(cli: Cli, routed: CommandRoute, options: RunSettings<unknown>, write: Writers, baseFormat: OutputFormat): Promise<Ran>;
|
package/dist/run-command.js
CHANGED
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
import { installOf } from "./built-ins/install/install.js";
|
|
2
2
|
import { skillOf } from "./built-ins/skill/skill.js";
|
|
3
3
|
import { poll, realClock } from "./clock.js";
|
|
4
|
-
import {
|
|
4
|
+
import { checkedCodes } from "./command-errors.js";
|
|
5
|
+
import { changedArgv, commandLineOf } from "./command-line/invocation.js";
|
|
6
|
+
import { knownFlags, parseCommand, stdinArgOf, } from "./command-line/parse-input.js";
|
|
7
|
+
import { commandLabel } from "./command-spec.js";
|
|
8
|
+
import { fileErrorOf } from "./context/errno.js";
|
|
9
|
+
import { classifiedFiles, realFiles } from "./context/files.js";
|
|
10
|
+
import { RunControl } from "./context/interrupts.js";
|
|
11
|
+
import { checkOperator } from "./context/operator.js";
|
|
12
|
+
import { outputsGuard } from "./context/outputs.js";
|
|
13
|
+
import { projectOf } from "./context/project.js";
|
|
14
|
+
import { envFileOf, secretOf } from "./context/secrets.js";
|
|
15
|
+
import { noSideTask, startSideTask } from "./context/side-task.js";
|
|
16
|
+
import { contextSpawn, contextSpawnDetached, realSpawn, realSpawnDetached, } from "./context/spawn.js";
|
|
17
|
+
import { spillTo } from "./context/spill.js";
|
|
18
|
+
import { isTerminal, readingLine, readStdin, stdinStalled } from "./context/stdin.js";
|
|
19
|
+
import { cliErrorOf } from "./error-table.js";
|
|
5
20
|
import { isDebug, traceOf } from "./errors.js";
|
|
6
|
-
import {
|
|
7
|
-
import { classifiedFiles, realFiles } from "./files.js";
|
|
8
|
-
import { RunControl } from "./interrupts.js";
|
|
9
|
-
import { commandLineOf } from "./invocation.js";
|
|
21
|
+
import { dataOutcome, execute } from "./execute.js";
|
|
10
22
|
import { manifestAt } from "./manifest.js";
|
|
11
|
-
import { checkOperator } from "./operator.js";
|
|
12
23
|
import { commandResult, errorResult, noticeLine, progressLine, STOPPED_RESULT, startedOutput, } from "./output.js";
|
|
13
|
-
import { outputsGuard } from "./outputs.js";
|
|
14
24
|
import { packageRootOf } from "./package-root.js";
|
|
15
|
-
import {
|
|
16
|
-
import { projectOf } from "./project.js";
|
|
17
|
-
import { envFileOf, secretOf } from "./secrets.js";
|
|
18
|
-
import { noSideTask, startSideTask } from "./side-task.js";
|
|
19
|
-
import { contextSpawn, contextSpawnDetached, realSpawn, realSpawnDetached, } from "./spawn.js";
|
|
20
|
-
import { spillTo } from "./spill.js";
|
|
21
|
-
import { isTerminal, readingLine, readStdin, stdinStalled } from "./stdin.js";
|
|
25
|
+
import { buildStamp } from "./version.js";
|
|
22
26
|
function stdinNeverEndedHint(callerLine) {
|
|
23
27
|
return `stdin never ended: pipe the text into \`${callerLine}\`, or redirect a file into it`;
|
|
24
28
|
}
|
|
29
|
+
function runDeadlineAdvice(resumed, pipedLine) {
|
|
30
|
+
return resumed === undefined
|
|
31
|
+
? { hint: stdinNeverEndedHint(pipedLine) }
|
|
32
|
+
: { hint: "run the Next step to continue the work", next: [resumed] };
|
|
33
|
+
}
|
|
25
34
|
function selfOf(name, bin) {
|
|
26
35
|
return bin === undefined ? [name] : [process.execPath, ...process.execArgv, bin];
|
|
27
36
|
}
|
|
@@ -40,7 +49,7 @@ function portsOf(cli, replacement) {
|
|
|
40
49
|
return cli.ports ?? (() => ({}));
|
|
41
50
|
}
|
|
42
51
|
function portsBaseOf(scope, signal) {
|
|
43
|
-
const { cli, options, packageRoot, progress, fileError,
|
|
52
|
+
const { cli, options, packageRoot, progress, fileError, rerun, clock, files } = scope;
|
|
44
53
|
const { cwd, env } = options;
|
|
45
54
|
const envFile = envFileOf(cli.name, env);
|
|
46
55
|
return {
|
|
@@ -52,21 +61,32 @@ function portsBaseOf(scope, signal) {
|
|
|
52
61
|
envFile,
|
|
53
62
|
fileError,
|
|
54
63
|
version: cli.version,
|
|
55
|
-
build:
|
|
64
|
+
build: buildStamp(),
|
|
56
65
|
self: selfOf(cli.name, options.bin),
|
|
57
66
|
signal,
|
|
58
67
|
clock,
|
|
59
68
|
files,
|
|
60
|
-
spawn: contextSpawn(options.spawn ?? realSpawn, { cwd, env, signal }, { fileError,
|
|
61
|
-
spawnDetached: contextSpawnDetached(spawnDetachedOf(options), { cwd, env, signal }, { fileError,
|
|
69
|
+
spawn: contextSpawn(options.spawn ?? realSpawn, { cwd, env, signal }, { fileError, rerun }),
|
|
70
|
+
spawnDetached: contextSpawnDetached(spawnDetachedOf(options), { cwd, env, signal }, { fileError, rerun }),
|
|
62
71
|
};
|
|
63
72
|
}
|
|
64
73
|
function contextOf(portsBase, control, parts) {
|
|
65
|
-
const { ports, project, force,
|
|
74
|
+
const { ports, project, force, secrets = [], rerun, deliver, notice } = parts;
|
|
75
|
+
const declared = new Set(secrets.map(({ name }) => name));
|
|
66
76
|
return {
|
|
67
77
|
...portsBase,
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
secret: (name) => {
|
|
79
|
+
// Only a cast reaches an undeclared name, and only a `.env` edited mid-run a missing value.
|
|
80
|
+
if (!declared.has(name)) {
|
|
81
|
+
throw new Error(`ctx.secret("${name}") names a Secret the Command does not declare`);
|
|
82
|
+
}
|
|
83
|
+
const secret = portsBase.secret(name);
|
|
84
|
+
if (secret === undefined)
|
|
85
|
+
throw new Error(`ctx.secret("${name}") found no value`);
|
|
86
|
+
return secret;
|
|
87
|
+
},
|
|
88
|
+
fail: cliErrorOf,
|
|
89
|
+
deadline: (ms, options) => control.deadline(ms, options),
|
|
70
90
|
runToEnd: (name, work) => control.runToEnd(name, work),
|
|
71
91
|
// Built on first read, so a factory that throws fails only what needs the ports, never `doctor`.
|
|
72
92
|
get ports() {
|
|
@@ -74,7 +94,7 @@ function contextOf(portsBase, control, parts) {
|
|
|
74
94
|
},
|
|
75
95
|
project,
|
|
76
96
|
force,
|
|
77
|
-
|
|
97
|
+
rerun,
|
|
78
98
|
poll: (check, { intervalMs, signal: stop }) => poll(portsBase.clock, check, intervalMs, stop === undefined ? control.signal : AbortSignal.any([control.signal, stop])),
|
|
79
99
|
deliver,
|
|
80
100
|
notice,
|
|
@@ -96,9 +116,13 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
96
116
|
flags: knownFlags(routed.spec),
|
|
97
117
|
stdinArg: stdinArgOf(routed),
|
|
98
118
|
};
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
119
|
+
const rerunOf = (change) => ({
|
|
120
|
+
kind: "rerun",
|
|
121
|
+
words: changedArgv(invocation, change),
|
|
122
|
+
stdinArg: invocation.stdinArg,
|
|
123
|
+
});
|
|
124
|
+
const rerun = rerunOf();
|
|
125
|
+
const fileError = fileErrorOf({ rerun, env, platform });
|
|
102
126
|
const format = {
|
|
103
127
|
...baseFormat,
|
|
104
128
|
bugs: () => manifestAt(packageRoot).bugs,
|
|
@@ -108,11 +132,11 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
108
132
|
// A stdin that never ended was fed by the caller's own pipe, so its hint names no file to redirect.
|
|
109
133
|
const pipedLine = commandLineOf({ ...invocation, stdinArg: undefined });
|
|
110
134
|
// Set once the input is parsed; a deadline before that can only have cut off the stdin read.
|
|
111
|
-
let
|
|
135
|
+
let resumed;
|
|
112
136
|
// Created before the input is parsed, so Ctrl-C and the run deadline also bound the stdin read.
|
|
113
137
|
const control = new RunControl({
|
|
114
138
|
commandLine,
|
|
115
|
-
|
|
139
|
+
rerun,
|
|
116
140
|
outer: options.signal,
|
|
117
141
|
clock,
|
|
118
142
|
progress,
|
|
@@ -120,7 +144,7 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
120
144
|
? undefined
|
|
121
145
|
: {
|
|
122
146
|
ms: command.deadline.ms,
|
|
123
|
-
|
|
147
|
+
advice: () => runDeadlineAdvice(resumed, pipedLine),
|
|
124
148
|
},
|
|
125
149
|
});
|
|
126
150
|
const failed = (error, finishSideTask) => {
|
|
@@ -129,7 +153,7 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
129
153
|
};
|
|
130
154
|
let parsed;
|
|
131
155
|
try {
|
|
132
|
-
checkOperator(routed.spec, env,
|
|
156
|
+
checkOperator(routed.spec, env, rerun);
|
|
133
157
|
parsed = await parseCommand(routed, invocation, (field) => {
|
|
134
158
|
if (isTerminal(stdin))
|
|
135
159
|
progress(readingLine(field.name, platform));
|
|
@@ -143,7 +167,7 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
143
167
|
return failed(error, noSideTask);
|
|
144
168
|
}
|
|
145
169
|
const { input, flags } = parsed;
|
|
146
|
-
|
|
170
|
+
resumed = command.deadline?.resume(input, rerunOf);
|
|
147
171
|
const outputs = outputsGuard(classifiedFiles(files, { cwd, fileError }), cwd);
|
|
148
172
|
const scope = {
|
|
149
173
|
cli,
|
|
@@ -151,7 +175,7 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
151
175
|
packageRoot,
|
|
152
176
|
progress,
|
|
153
177
|
fileError,
|
|
154
|
-
|
|
178
|
+
rerun,
|
|
155
179
|
clock,
|
|
156
180
|
files: outputs.files,
|
|
157
181
|
};
|
|
@@ -180,25 +204,27 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
180
204
|
project =
|
|
181
205
|
builtIn || cli.project === undefined
|
|
182
206
|
? undefined
|
|
183
|
-
: projectOf(cli.project, cwd, { fileError,
|
|
207
|
+
: projectOf(cli.project, cwd, { fileError, rerun });
|
|
184
208
|
}
|
|
185
209
|
catch (error) {
|
|
186
210
|
return failed(error, finishSideTask);
|
|
187
211
|
}
|
|
212
|
+
// Parsed only when printed, so a Command that catches around `deliver` cannot hide a rejection.
|
|
188
213
|
let delivered;
|
|
189
214
|
const ctx = contextOf(portsBase, control, {
|
|
190
215
|
ports: once(() => ports(portsBase)),
|
|
191
216
|
project,
|
|
192
217
|
force: flags.force,
|
|
193
|
-
|
|
218
|
+
secrets: command.secrets,
|
|
219
|
+
rerun: rerunOf,
|
|
194
220
|
notice: (text) => write.stderr(noticeLine(text, routed.json)),
|
|
195
221
|
deliver: (data) => {
|
|
196
|
-
delivered =
|
|
222
|
+
delivered = () => dataOutcome(command, data, commandLine);
|
|
197
223
|
},
|
|
198
224
|
});
|
|
199
225
|
const spill = spillTo({
|
|
200
226
|
cliName: format.cliName,
|
|
201
|
-
|
|
227
|
+
label: commandLabel(routed.spec.path, format.cliName),
|
|
202
228
|
env,
|
|
203
229
|
clock,
|
|
204
230
|
files: outputs.files,
|
|
@@ -216,7 +242,6 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
216
242
|
confirm: flags.confirm,
|
|
217
243
|
yes: flags.yes,
|
|
218
244
|
page: flags.page,
|
|
219
|
-
invocation,
|
|
220
245
|
commandLine,
|
|
221
246
|
started: async (outcome) => {
|
|
222
247
|
write.stdout(await startedOutput(outcome, format, spill));
|
|
@@ -235,7 +260,11 @@ export async function runCommand(cli, routed, options, write, baseFormat) {
|
|
|
235
260
|
if (served && control.signal.aborted) {
|
|
236
261
|
return { result: STOPPED_RESULT, finishSideTask };
|
|
237
262
|
}
|
|
238
|
-
settled = {
|
|
263
|
+
settled = {
|
|
264
|
+
ok: false,
|
|
265
|
+
error: checkedCodes(control.errorAfter(error), routed.spec, cli),
|
|
266
|
+
delivered,
|
|
267
|
+
};
|
|
239
268
|
}
|
|
240
269
|
return {
|
|
241
270
|
result: await commandResult(settled, { ...format, fields: flags.fields }, spill),
|
package/dist/run-command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
|
package/dist/run-options.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Clock } from "./clock.js";
|
|
2
|
+
import type { Files } from "./context/files.js";
|
|
3
|
+
import type { Spawn, SpawnDetached } from "./context/spawn.js";
|
|
4
|
+
import type { StdinSource } from "./context/stdin.js";
|
|
2
5
|
import type { Env } from "./context.js";
|
|
3
6
|
import type { NoPorts } from "./define.js";
|
|
4
|
-
import type { Files } from "./files.js";
|
|
5
7
|
import type { RunResult } from "./output.js";
|
|
6
|
-
import type { Spawn, SpawnDetached } from "./spawn.js";
|
|
7
|
-
import type { StdinSource } from "./stdin.js";
|
|
8
8
|
export interface RunOptions<Ports = NoPorts> {
|
|
9
|
-
|
|
9
|
+
/** Absent, the run sees an empty env, so a test never reads the shell's. */
|
|
10
|
+
readonly env?: Env;
|
|
10
11
|
readonly cwd: string;
|
|
11
12
|
readonly stdoutIsTTY?: boolean;
|
|
12
13
|
/**
|
|
@@ -45,6 +46,12 @@ export interface RunOptions<Ports = NoPorts> {
|
|
|
45
46
|
*/
|
|
46
47
|
readonly platform?: NodeJS.Platform;
|
|
47
48
|
}
|
|
49
|
+
/** `RunOptions` with its defaults filled in, as the Runtime reads them. */
|
|
50
|
+
export interface RunSettings<Ports = NoPorts> extends RunOptions<Ports> {
|
|
51
|
+
readonly env: Env;
|
|
52
|
+
/** Whether a failure's Next steps must route to a Command, as a test run checks. */
|
|
53
|
+
readonly checkNextSteps?: boolean;
|
|
54
|
+
}
|
|
48
55
|
/** Where output that cannot wait for the run's end is written as it happens, and the run's output once it ends. */
|
|
49
56
|
export interface Writers {
|
|
50
57
|
stdout(text: string): void;
|
package/dist/run-process.js
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import { SIGNAL_EXIT_CODES } from "./exit-classes.js";
|
|
2
2
|
import { runWithProgress } from "./run-cli.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const READER_GONE = new Set(["EPIPE", "EOF"]);
|
|
4
|
+
// A reader that closes the pipe early, as `| head` does, breaks it (EPIPE, EOF on Windows); the run
|
|
5
|
+
// goes on and exits as it would have, with the rest of that stream's output dropped.
|
|
6
|
+
function writerTo(stream) {
|
|
7
|
+
stream.on("error", (error) => {
|
|
8
|
+
if (error.code === undefined || !READER_GONE.has(error.code))
|
|
9
|
+
throw error;
|
|
10
|
+
});
|
|
11
|
+
return (text) => new Promise((resolve) => {
|
|
12
|
+
if (stream.destroyed) {
|
|
13
|
+
resolve();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
stream.write(text, () => resolve());
|
|
17
|
+
});
|
|
5
18
|
}
|
|
6
19
|
export async function runProcess(cli) {
|
|
20
|
+
const stdout = writerTo(process.stdout);
|
|
21
|
+
const stderr = writerTo(process.stderr);
|
|
7
22
|
const stop = new AbortController();
|
|
8
23
|
// A second signal quits at once, accepting lost output, so a stuck Command never traps a person.
|
|
9
24
|
const onSignal = (signal) => {
|
|
@@ -24,11 +39,11 @@ export async function runProcess(cli) {
|
|
|
24
39
|
node: process.execPath,
|
|
25
40
|
stdin: process.stdin,
|
|
26
41
|
}, {
|
|
27
|
-
stdout: (text) =>
|
|
28
|
-
stderr: (text) =>
|
|
29
|
-
result: async (
|
|
30
|
-
await
|
|
31
|
-
await
|
|
42
|
+
stdout: (text) => void stdout(text),
|
|
43
|
+
stderr: (text) => void stderr(text),
|
|
44
|
+
result: async (result) => {
|
|
45
|
+
await stdout(result.stdout);
|
|
46
|
+
await stderr(result.stderr);
|
|
32
47
|
},
|
|
33
48
|
}, "stopping… (Ctrl-C again to quit now)");
|
|
34
49
|
process.exitCode = result.exitCode;
|
package/dist/run-process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-process.js","sourceRoot":"","sources":["../src/run-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,
|
|
1
|
+
{"version":3,"file":"run-process.js","sourceRoot":"","sources":["../src/run-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Every code the Runtime fails a run with, keyed by itself, to catch or assert one. */
|
|
2
|
+
export declare const runtimeCodes: {
|
|
3
|
+
readonly INVALID_INPUT: "INVALID_INPUT";
|
|
4
|
+
readonly UNKNOWN_OPTION: "UNKNOWN_OPTION";
|
|
5
|
+
readonly UNKNOWN_COMMAND: "UNKNOWN_COMMAND";
|
|
6
|
+
readonly UNKNOWN_FIELD: "UNKNOWN_FIELD";
|
|
7
|
+
readonly CONFIRMATION_REQUIRED: "CONFIRMATION_REQUIRED";
|
|
8
|
+
readonly CONFIRMATION_MISMATCH: "CONFIRMATION_MISMATCH";
|
|
9
|
+
readonly NOT_CONFIRMED: "NOT_CONFIRMED";
|
|
10
|
+
readonly NEEDS_OPERATOR: "NEEDS_OPERATOR";
|
|
11
|
+
readonly OUTPUT_EXISTS: "OUTPUT_EXISTS";
|
|
12
|
+
readonly STDIN_STALLED: "STDIN_STALLED";
|
|
13
|
+
readonly INTERRUPTED: "INTERRUPTED";
|
|
14
|
+
readonly DEADLINE_EXCEEDED: "DEADLINE_EXCEEDED";
|
|
15
|
+
readonly INTERNAL: "INTERNAL";
|
|
16
|
+
readonly PERMISSION_DENIED: "PERMISSION_DENIED";
|
|
17
|
+
readonly DISK_FULL: "DISK_FULL";
|
|
18
|
+
readonly NOT_FOUND: "NOT_FOUND";
|
|
19
|
+
readonly ALREADY_EXISTS: "ALREADY_EXISTS";
|
|
20
|
+
readonly NOT_A_FILE: "NOT_A_FILE";
|
|
21
|
+
readonly TOOL_FAILED: "TOOL_FAILED";
|
|
22
|
+
readonly TOOL_MISSING: "TOOL_MISSING";
|
|
23
|
+
readonly SECRET_MISSING: "SECRET_MISSING";
|
|
24
|
+
readonly PROJECT_INVALID: "PROJECT_INVALID";
|
|
25
|
+
readonly DOCTOR_PROBLEMS: "DOCTOR_PROBLEMS";
|
|
26
|
+
readonly NOT_GLOBAL_INSTALL: "NOT_GLOBAL_INSTALL";
|
|
27
|
+
readonly REGISTRY_UNREACHABLE: "REGISTRY_UNREACHABLE";
|
|
28
|
+
readonly REGISTRY_AUTH: "REGISTRY_AUTH";
|
|
29
|
+
readonly INSTALL_FAILED: "INSTALL_FAILED";
|
|
30
|
+
readonly NPM_FAILED: "NPM_FAILED";
|
|
31
|
+
readonly NO_LATEST: "NO_LATEST";
|
|
32
|
+
};
|
|
33
|
+
export type RuntimeCode = (typeof runtimeCodes)[keyof typeof runtimeCodes];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DOCTOR_PROBLEMS } from "./built-ins/doctor.js";
|
|
2
|
+
import { NOT_GLOBAL_INSTALL } from "./built-ins/install/global-npm.js";
|
|
3
|
+
import { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./built-ins/npm.js";
|
|
4
|
+
import { INVALID_INPUT, UNKNOWN_COMMAND, UNKNOWN_OPTION } from "./command-line/usage.js";
|
|
5
|
+
import { CONFIRMATION_MISMATCH, CONFIRMATION_REQUIRED } from "./context/confirm.js";
|
|
6
|
+
import { NOT_CONFIRMED } from "./context/cost.js";
|
|
7
|
+
import { ALREADY_EXISTS, DISK_FULL, NOT_A_FILE, NOT_FOUND, PERMISSION_DENIED, } from "./context/errno.js";
|
|
8
|
+
import { DEADLINE_EXCEEDED, INTERRUPTED } from "./context/interrupts.js";
|
|
9
|
+
import { NEEDS_OPERATOR } from "./context/operator.js";
|
|
10
|
+
import { OUTPUT_EXISTS } from "./context/outputs.js";
|
|
11
|
+
import { PROJECT_INVALID } from "./context/project.js";
|
|
12
|
+
import { SECRET_MISSING } from "./context/secrets.js";
|
|
13
|
+
import { TOOL_FAILED } from "./context/spawn.js";
|
|
14
|
+
import { STDIN_STALLED } from "./context/stdin.js";
|
|
15
|
+
import { TOOL_MISSING } from "./context/tools.js";
|
|
16
|
+
import { INTERNAL } from "./errors.js";
|
|
17
|
+
import { UNKNOWN_FIELD } from "./list.js";
|
|
18
|
+
/** Every code the Runtime fails a run with, keyed by itself, to catch or assert one. */
|
|
19
|
+
export const runtimeCodes = {
|
|
20
|
+
INVALID_INPUT,
|
|
21
|
+
UNKNOWN_OPTION,
|
|
22
|
+
UNKNOWN_COMMAND,
|
|
23
|
+
UNKNOWN_FIELD,
|
|
24
|
+
CONFIRMATION_REQUIRED,
|
|
25
|
+
CONFIRMATION_MISMATCH,
|
|
26
|
+
NOT_CONFIRMED,
|
|
27
|
+
NEEDS_OPERATOR,
|
|
28
|
+
OUTPUT_EXISTS,
|
|
29
|
+
STDIN_STALLED,
|
|
30
|
+
INTERRUPTED,
|
|
31
|
+
DEADLINE_EXCEEDED,
|
|
32
|
+
INTERNAL,
|
|
33
|
+
PERMISSION_DENIED,
|
|
34
|
+
DISK_FULL,
|
|
35
|
+
NOT_FOUND,
|
|
36
|
+
ALREADY_EXISTS,
|
|
37
|
+
NOT_A_FILE,
|
|
38
|
+
TOOL_FAILED,
|
|
39
|
+
TOOL_MISSING,
|
|
40
|
+
SECRET_MISSING,
|
|
41
|
+
PROJECT_INVALID,
|
|
42
|
+
DOCTOR_PROBLEMS,
|
|
43
|
+
NOT_GLOBAL_INSTALL,
|
|
44
|
+
REGISTRY_UNREACHABLE,
|
|
45
|
+
REGISTRY_AUTH,
|
|
46
|
+
INSTALL_FAILED,
|
|
47
|
+
NPM_FAILED,
|
|
48
|
+
NO_LATEST,
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=runtime-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-codes.js","sourceRoot":"","sources":["../src/runtime-codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,wFAAwF;AACxF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa;IACb,cAAc;IACd,eAAe;IACf,aAAa;IACb,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,cAAc;IACd,UAAU;IACV,WAAW;IACX,YAAY;IACZ,cAAc;IACd,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,aAAa;IACb,cAAc;IACd,UAAU;IACV,SAAS;CACD,CAAC"}
|
package/dist/style.js
CHANGED
package/dist/style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAe7C,SAAS,aAAa,CAAC,GAAQ,EAAE,WAAoB;IACnD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACpE,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,EAAE,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;IAClG,OAAO,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa;IACtC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC;AAC5D,CAAC;AAED,MAAM,QAAQ,GAAU;IACtB,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,KAAK,GAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;AAEpC,MAAM,KAAK,GAAU;IACnB,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,GAAQ,EAAE,WAAoB;IACrD,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Clock } from "./clock.js";
|
|
2
|
+
/** What a test tells `fakeClock` about work it cannot see. */
|
|
3
|
+
export interface FakeClockOptions {
|
|
4
|
+
/**
|
|
5
|
+
* True while work Node does not track is still running, such as sharp on its own threads; time
|
|
6
|
+
* waits until it is false. Without it, the clock already waits for file reads and writes.
|
|
7
|
+
*/
|
|
8
|
+
busy?: () => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Runs as each sleep ends, before the sleeper resumes: a test changes the world here, such as
|
|
11
|
+
* adding the record a `ctx.poll` waits for, so the next check finds it.
|
|
12
|
+
*/
|
|
13
|
+
onWake?: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A clock for tests, passed as `runCli`'s `clock` option. Its time starts at 0 and moves only when
|
|
17
|
+
* every task is waiting on it: the earliest sleep then wakes at once, so a Command's deadlines,
|
|
18
|
+
* `ctx.poll` intervals and waits finish instantly and in order, and `now()` reads the time they
|
|
19
|
+
* would have taken.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const clock = fakeClock();
|
|
23
|
+
* const result = await runCli(cli, ["wait", "job-1"], { cwd, clock });
|
|
24
|
+
* expect(clock.now()).toBe(30_000);
|
|
25
|
+
*/
|
|
26
|
+
export declare function fakeClock(options?: Readonly<FakeClockOptions>): Clock;
|
|
27
|
+
export { checkExamples } from "./check-examples.js";
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Node's names for a file read or write in flight; time waits for them, as it would really.
|
|
2
|
+
const FILE_REQUESTS = ["FSReqPromise", "FSReqCallback", "CloseReq"];
|
|
3
|
+
function filesBusy() {
|
|
4
|
+
return process.getActiveResourcesInfo().some((resource) => FILE_REQUESTS.includes(resource));
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A clock for tests, passed as `runCli`'s `clock` option. Its time starts at 0 and moves only when
|
|
8
|
+
* every task is waiting on it: the earliest sleep then wakes at once, so a Command's deadlines,
|
|
9
|
+
* `ctx.poll` intervals and waits finish instantly and in order, and `now()` reads the time they
|
|
10
|
+
* would have taken.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const clock = fakeClock();
|
|
14
|
+
* const result = await runCli(cli, ["wait", "job-1"], { cwd, clock });
|
|
15
|
+
* expect(clock.now()).toBe(30_000);
|
|
16
|
+
*/
|
|
17
|
+
export function fakeClock(options = {}) {
|
|
18
|
+
const { busy = () => false, onWake = () => { } } = options;
|
|
19
|
+
let now = 0;
|
|
20
|
+
let sleepers = [];
|
|
21
|
+
let scheduled = false;
|
|
22
|
+
const wakeEarliest = () => {
|
|
23
|
+
if (filesBusy() || busy()) {
|
|
24
|
+
setImmediate(wakeEarliest);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
scheduled = false;
|
|
28
|
+
const [earliest] = [...sleepers].sort((a, b) => a.at - b.at);
|
|
29
|
+
if (earliest === undefined)
|
|
30
|
+
return;
|
|
31
|
+
sleepers = sleepers.filter((sleeper) => sleeper !== earliest);
|
|
32
|
+
now = Math.max(now, earliest.at);
|
|
33
|
+
earliest.wake();
|
|
34
|
+
schedule();
|
|
35
|
+
};
|
|
36
|
+
const schedule = () => {
|
|
37
|
+
if (scheduled || sleepers.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
scheduled = true;
|
|
40
|
+
setImmediate(wakeEarliest);
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
now: () => now,
|
|
44
|
+
sleep: (ms, signal) => new Promise((resolve, reject) => {
|
|
45
|
+
if (signal?.aborted === true) {
|
|
46
|
+
reject(signal.reason);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const sleeper = {
|
|
50
|
+
at: now + ms,
|
|
51
|
+
wake: () => {
|
|
52
|
+
onWake();
|
|
53
|
+
resolve();
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
sleepers = [...sleepers, sleeper];
|
|
57
|
+
signal?.addEventListener("abort", () => {
|
|
58
|
+
sleepers = sleepers.filter((other) => other !== sleeper);
|
|
59
|
+
reject(signal.reason);
|
|
60
|
+
}, { once: true });
|
|
61
|
+
schedule();
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export { checkExamples } from "./check-examples.js";
|
|
66
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAqBA,4FAA4F;AAC5F,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AAEpE,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,OAAO,GAA+B,EAAE;IAChE,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,OAAO,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,QAAQ,GAAc,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,IAAI,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YAC1B,YAAY,CAAC,YAAY,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,SAAS,GAAG,KAAK,CAAC;QAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;QAC9D,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/C,SAAS,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG;QACd,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CACpB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAY;gBACvB,EAAE,EAAE,GAAG,GAAG,EAAE;gBACZ,IAAI,EAAE,GAAG,EAAE;oBACT,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF,CAAC;YACF,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,GAAG,EAAE;gBACH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;gBACzD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AACD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { BuildStamp } from "./context.js";
|
|
1
2
|
import type { Cli } from "./define.js";
|
|
3
|
+
/** The bundler's stamp, absent when the CLI runs unbundled. Read per call, so a test can define it. */
|
|
4
|
+
export declare function buildStamp(): BuildStamp | undefined;
|
|
2
5
|
/** The first line of `--version`: the version, and the commit and time of a stamped build. */
|
|
3
|
-
export declare function versionLine({ version
|
|
6
|
+
export declare function versionLine({ version }: Cli): string;
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
/** The bundler's stamp, absent when the CLI runs unbundled. Read per call, so a test can define it. */
|
|
2
|
+
export function buildStamp() {
|
|
3
|
+
return typeof __AGENT_CLI_BUILD__ === "undefined" ? undefined : __AGENT_CLI_BUILD__;
|
|
4
|
+
}
|
|
1
5
|
/** The first line of `--version`: the version, and the commit and time of a stamped build. */
|
|
2
|
-
export function versionLine({ version
|
|
6
|
+
export function versionLine({ version }) {
|
|
7
|
+
const build = buildStamp();
|
|
3
8
|
return build === undefined
|
|
4
9
|
? version
|
|
5
10
|
: `${version} (${build.sha}${build.dirty ? "+dirty" : ""}) built ${build.builtAt}`;
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,uGAAuG;AACvG,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,mBAAmB,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACtF,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAO;IAC1C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC;AACvF,CAAC"}
|