@duyquangnvx/agent-cli 0.26.0 → 0.28.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 +34 -0
- package/dist/agent-cli.js +9 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/built-ins/agents-md.d.ts +3 -2
- package/dist/built-ins/agents-md.js +8 -9
- package/dist/built-ins/agents-md.js.map +1 -1
- package/dist/built-ins/commands.d.ts +2 -1
- package/dist/built-ins/commands.js.map +1 -1
- package/dist/built-ins/doctor-rows.js +1 -1
- package/dist/built-ins/doctor-rows.js.map +1 -1
- package/dist/built-ins/doctor.d.ts +0 -1
- package/dist/built-ins/doctor.js +21 -8
- package/dist/built-ins/doctor.js.map +1 -1
- package/dist/built-ins/install/dependency.js +23 -23
- package/dist/built-ins/install/dependency.js.map +1 -1
- package/dist/built-ins/install/global-npm.d.ts +6 -3
- package/dist/built-ins/install/global-npm.js +19 -14
- package/dist/built-ins/install/global-npm.js.map +1 -1
- package/dist/built-ins/install/global.js +6 -7
- package/dist/built-ins/install/global.js.map +1 -1
- package/dist/built-ins/install/install.d.ts +0 -3
- package/dist/built-ins/install/install.js +0 -1
- package/dist/built-ins/install/install.js.map +1 -1
- package/dist/built-ins/install/release-check.js +10 -17
- package/dist/built-ins/install/release-check.js.map +1 -1
- package/dist/built-ins/npm.d.ts +8 -7
- package/dist/built-ins/npm.js +20 -12
- package/dist/built-ins/npm.js.map +1 -1
- package/dist/built-ins/project-root.d.ts +4 -4
- package/dist/built-ins/project-root.js +12 -22
- package/dist/built-ins/project-root.js.map +1 -1
- package/dist/built-ins/read.d.ts +5 -0
- package/dist/built-ins/read.js +29 -0
- package/dist/built-ins/read.js.map +1 -0
- package/dist/built-ins/setup.d.ts +1 -2
- package/dist/built-ins/setup.js +32 -26
- package/dist/built-ins/setup.js.map +1 -1
- package/dist/built-ins/skill/home.d.ts +2 -1
- package/dist/built-ins/skill/home.js +19 -17
- package/dist/built-ins/skill/home.js.map +1 -1
- package/dist/built-ins/skill/install-command.d.ts +2 -1
- package/dist/built-ins/skill/install-command.js +13 -11
- package/dist/built-ins/skill/install-command.js.map +1 -1
- package/dist/built-ins/skill/project.js +6 -7
- package/dist/built-ins/skill/project.js.map +1 -1
- package/dist/built-ins/skill/sync.d.ts +4 -3
- package/dist/built-ins/skill/sync.js +24 -17
- package/dist/built-ins/skill/sync.js.map +1 -1
- package/dist/built-ins/update.d.ts +1 -1
- package/dist/built-ins/update.js +9 -7
- package/dist/built-ins/update.js.map +1 -1
- package/dist/built-ins/upgrades.d.ts +2 -1
- package/dist/built-ins/upgrades.js +5 -12
- package/dist/built-ins/upgrades.js.map +1 -1
- package/dist/check-examples.js +5 -23
- package/dist/check-examples.js.map +1 -1
- package/dist/check-next-steps.d.ts +3 -9
- package/dist/check-next-steps.js +20 -32
- package/dist/check-next-steps.js.map +1 -1
- package/dist/command-line/line-problem.d.ts +14 -0
- package/dist/command-line/line-problem.js +41 -0
- package/dist/command-line/line-problem.js.map +1 -0
- package/dist/context/files.d.ts +3 -0
- package/dist/context/files.js +17 -2
- package/dist/context/files.js.map +1 -1
- package/dist/context/outputs.d.ts +13 -24
- package/dist/context/outputs.js +37 -37
- package/dist/context/outputs.js.map +1 -1
- package/dist/context/secrets.d.ts +5 -1
- package/dist/context/secrets.js +18 -5
- package/dist/context/secrets.js.map +1 -1
- package/dist/context/spawn.js +3 -1
- package/dist/context/spawn.js.map +1 -1
- package/dist/context/tools.d.ts +9 -4
- package/dist/context/tools.js +12 -12
- package/dist/context/tools.js.map +1 -1
- package/dist/context.d.ts +12 -8
- package/dist/define-command.d.ts +29 -13
- package/dist/define-command.js +5 -3
- package/dist/define-command.js.map +1 -1
- package/dist/define.d.ts +19 -6
- package/dist/define.js.map +1 -1
- package/dist/errors.d.ts +3 -6
- package/dist/errors.js +17 -28
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +7 -16
- package/dist/execute.js +11 -14
- package/dist/execute.js.map +1 -1
- package/dist/exit-classes.d.ts +7 -10
- package/dist/exit-classes.js +20 -81
- package/dist/exit-classes.js.map +1 -1
- package/dist/failure.d.ts +36 -0
- package/dist/failure.js +65 -0
- package/dist/failure.js.map +1 -0
- package/dist/help-json.js +5 -3
- package/dist/help-json.js.map +1 -1
- package/dist/help.js +9 -3
- package/dist/help.js.map +1 -1
- package/dist/output.d.ts +3 -10
- package/dist/output.js +14 -24
- package/dist/output.js.map +1 -1
- package/dist/run-cli.js +7 -5
- package/dist/run-cli.js.map +1 -1
- package/dist/run-command.d.ts +6 -1
- package/dist/run-command.js +31 -155
- package/dist/run-command.js.map +1 -1
- package/dist/run-options.d.ts +5 -2
- package/dist/run-scope.d.ts +35 -0
- package/dist/run-scope.js +138 -0
- package/dist/run-scope.js.map +1 -0
- package/dist/runtime-codes.d.ts +140 -1
- package/dist/runtime-codes.js +60 -4
- package/dist/runtime-codes.js.map +1 -1
- package/docs/README.md +2 -2
- package/docs/example/cli.test.ts +9 -2
- package/docs/example/cli.ts +1 -0
- package/docs/example/folder.ts +1 -0
- package/docs/guides/commands.md +2 -2
- package/docs/guides/doctor.md +3 -2
- package/docs/guides/errors.md +1 -1
- package/docs/guides/testing.md +2 -1
- package/package.json +1 -1
- package/dist/command-errors.d.ts +0 -8
- package/dist/command-errors.js +0 -25
- package/dist/command-errors.js.map +0 -1
- package/dist/command-line/route-line.d.ts +0 -15
- package/dist/command-line/route-line.js +0 -18
- package/dist/command-line/route-line.js.map +0 -1
package/dist/context/secrets.js
CHANGED
|
@@ -30,8 +30,11 @@ export function secretOf({ envFile, env, fileError }, name) {
|
|
|
30
30
|
const fromFile = readDotenv(envFile, fileError)[name];
|
|
31
31
|
return fromFile ? { value: fromFile, origin: { kind: "file", path: envFile } } : undefined;
|
|
32
32
|
}
|
|
33
|
+
export function isNeeded({ optional }) {
|
|
34
|
+
return optional !== true;
|
|
35
|
+
}
|
|
33
36
|
function missingIn(scope, secrets) {
|
|
34
|
-
return secrets.filter((
|
|
37
|
+
return secrets.filter((secret) => isNeeded(secret) && secretOf(scope, secret.name) === undefined);
|
|
35
38
|
}
|
|
36
39
|
function getItFrom({ get }) {
|
|
37
40
|
return `(get it from ${get})`;
|
|
@@ -55,11 +58,15 @@ export function checkSecrets(secrets, scope, rerun) {
|
|
|
55
58
|
function originOf({ origin }) {
|
|
56
59
|
return origin.kind === "env" ? "the environment" : origin.path;
|
|
57
60
|
}
|
|
58
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* The `doctor` row over every distinct Secret the CLI and its Commands declare; none without any. A
|
|
63
|
+
* name needed anywhere counts as needed, and an unset optional one goes unmentioned.
|
|
64
|
+
*/
|
|
59
65
|
export function secretRows(secrets, commands) {
|
|
60
66
|
const declared = declaredIn(secrets, commands, (command) => command.secrets);
|
|
61
67
|
if (declared.length === 0)
|
|
62
68
|
return [];
|
|
69
|
+
const needed = new Map(declaredIn(secrets.filter(isNeeded), commands, (command) => command.secrets?.filter(isNeeded)).map((declaration) => [declaration.name, declaration]));
|
|
63
70
|
return [
|
|
64
71
|
{
|
|
65
72
|
name: "secrets",
|
|
@@ -68,16 +75,22 @@ export function secretRows(secrets, commands) {
|
|
|
68
75
|
declaration,
|
|
69
76
|
secret: secretOf({ env, envFile, fileError }, declaration.name),
|
|
70
77
|
}));
|
|
71
|
-
const missing = read.
|
|
78
|
+
const missing = read.flatMap(({ declaration, secret }) => {
|
|
79
|
+
const neededAs = needed.get(declaration.name);
|
|
80
|
+
return secret === undefined && neededAs !== undefined ? [neededAs] : [];
|
|
81
|
+
});
|
|
72
82
|
if (missing.length > 0) {
|
|
73
|
-
const each = missing.map((
|
|
83
|
+
const each = missing.map((declaration) => `${declaration.name} is not set ${getItFrom(declaration)}`);
|
|
74
84
|
return {
|
|
75
85
|
state: "problem",
|
|
76
86
|
message: `${each.join(", ")}; add ${missing.length === 1 ? "it" : "them"} to ${envFile} or the environment`,
|
|
77
87
|
};
|
|
78
88
|
}
|
|
79
89
|
const found = read.flatMap(({ declaration, secret }) => secret === undefined ? [] : [`${declaration.name} from ${originOf(secret)}`]);
|
|
80
|
-
return {
|
|
90
|
+
return {
|
|
91
|
+
state: "ok",
|
|
92
|
+
message: found.length > 0 ? found.join(", ") : "no Secret is set, and none is needed",
|
|
93
|
+
};
|
|
81
94
|
},
|
|
82
95
|
},
|
|
83
96
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/context/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAY/C,2FAA2F;AAC3F,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,GAAQ;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,IAAY,EACZ,SAAoB;IAEpB,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AASD,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CACtB,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAe,EACxC,IAAY;IAEZ,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB,EAAE,OAAqC;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/context/secrets.ts"],"names":[],"mappings":"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"}
|
package/dist/context/spawn.js
CHANGED
|
@@ -37,7 +37,9 @@ function batchCommandLine(command, file, args) {
|
|
|
37
37
|
return [escapedForCmd(command), ...args.map((arg) => batchArgument(arg, shim))].join(" ");
|
|
38
38
|
}
|
|
39
39
|
async function windowsLaunch(command, args, env) {
|
|
40
|
-
const file = PATH_SEPARATOR.test(command)
|
|
40
|
+
const file = PATH_SEPARATOR.test(command)
|
|
41
|
+
? command
|
|
42
|
+
: await findTool(command, { env, platform: process.platform });
|
|
41
43
|
if (file === undefined || !BATCH_FILE.test(file))
|
|
42
44
|
return { command, args, shell: false };
|
|
43
45
|
return { command: batchCommandLine(command, file, args), args: [], shell: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/context/spawn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/context/spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/context/tools.d.ts
CHANGED
|
@@ -3,9 +3,14 @@ import type { Commands, DoctorCheck, Tool } from "../define.js";
|
|
|
3
3
|
import { type Rerun } from "../next-step.js";
|
|
4
4
|
export declare const TOOL_MISSING = "TOOL_MISSING";
|
|
5
5
|
export declare function pathOf(env: Env): string;
|
|
6
|
-
/** Where
|
|
7
|
-
export
|
|
6
|
+
/** Where a tool is looked for: `env`'s PATH, and on Windows its PATHEXT. */
|
|
7
|
+
export interface ToolSearch {
|
|
8
|
+
readonly env: Env;
|
|
9
|
+
readonly platform: NodeJS.Platform;
|
|
10
|
+
}
|
|
11
|
+
/** Where `name` is found on `PATH`, or undefined. */
|
|
12
|
+
export declare function findTool(name: string, search: ToolSearch): Promise<string | undefined>;
|
|
8
13
|
/** Fails with `TOOL_MISSING`, naming every missing tool at once, unless all are on `PATH`. */
|
|
9
|
-
export declare function checkTools(tools: readonly Tool[],
|
|
14
|
+
export declare function checkTools(tools: readonly Tool[], search: ToolSearch, rerun: Rerun): Promise<void>;
|
|
10
15
|
/** One `doctor` row per distinct tool the CLI and its Commands declare, with its install command as the fix. */
|
|
11
|
-
export declare function toolRows(tools: readonly Tool[], commands: Commands): DoctorCheck[];
|
|
16
|
+
export declare function toolRows(tools: readonly Tool[], commands: Commands, platform: NodeJS.Platform): DoctorCheck[];
|
package/dist/context/tools.js
CHANGED
|
@@ -10,8 +10,8 @@ export function pathOf(env) {
|
|
|
10
10
|
const key = Object.keys(env).find((name) => name.toUpperCase() === "PATH") ?? "PATH";
|
|
11
11
|
return env[key] ?? "";
|
|
12
12
|
}
|
|
13
|
-
function extensionsOf(env) {
|
|
14
|
-
return
|
|
13
|
+
function extensionsOf({ env, platform }) {
|
|
14
|
+
return platform === "win32" ? (env.PATHEXT ?? WINDOWS_EXTENSIONS).split(";") : [""];
|
|
15
15
|
}
|
|
16
16
|
async function isExecutable(file) {
|
|
17
17
|
try {
|
|
@@ -26,19 +26,19 @@ async function isExecutable(file) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
/** The file names `name` may have on `PATH`: itself when it already ends in one of the extensions. */
|
|
29
|
-
function fileNamesOf(name,
|
|
30
|
-
const extensions = extensionsOf(
|
|
29
|
+
function fileNamesOf(name, search) {
|
|
30
|
+
const extensions = extensionsOf(search);
|
|
31
31
|
const own = extname(name).toUpperCase();
|
|
32
32
|
return own !== "" && extensions.some((extension) => extension.toUpperCase() === own)
|
|
33
33
|
? [name]
|
|
34
34
|
: extensions.map((extension) => `${name}${extension}`);
|
|
35
35
|
}
|
|
36
|
-
/** Where `name` is found on `PATH
|
|
37
|
-
export async function findTool(name,
|
|
38
|
-
const folders = pathOf(env)
|
|
36
|
+
/** Where `name` is found on `PATH`, or undefined. */
|
|
37
|
+
export async function findTool(name, search) {
|
|
38
|
+
const folders = pathOf(search.env)
|
|
39
39
|
.split(delimiter)
|
|
40
40
|
.filter((folder) => folder !== "");
|
|
41
|
-
const candidates = folders.flatMap((folder) => fileNamesOf(name,
|
|
41
|
+
const candidates = folders.flatMap((folder) => fileNamesOf(name, search).map((file) => join(folder, file)));
|
|
42
42
|
for (const file of candidates) {
|
|
43
43
|
if (await isExecutable(file))
|
|
44
44
|
return file;
|
|
@@ -46,8 +46,8 @@ export async function findTool(name, env) {
|
|
|
46
46
|
return undefined;
|
|
47
47
|
}
|
|
48
48
|
/** Fails with `TOOL_MISSING`, naming every missing tool at once, unless all are on `PATH`. */
|
|
49
|
-
export async function checkTools(tools,
|
|
50
|
-
const found = await Promise.all(tools.map((tool) => findTool(tool.name,
|
|
49
|
+
export async function checkTools(tools, search, rerun) {
|
|
50
|
+
const found = await Promise.all(tools.map((tool) => findTool(tool.name, search)));
|
|
51
51
|
const missing = tools.filter((_tool, index) => found[index] === undefined);
|
|
52
52
|
if (missing.length === 0)
|
|
53
53
|
return;
|
|
@@ -60,11 +60,11 @@ export async function checkTools(tools, env, rerun) {
|
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
62
|
/** One `doctor` row per distinct tool the CLI and its Commands declare, with its install command as the fix. */
|
|
63
|
-
export function toolRows(tools, commands) {
|
|
63
|
+
export function toolRows(tools, commands, platform) {
|
|
64
64
|
return declaredIn(tools, commands, (command) => command.tools).map(({ name, install }) => ({
|
|
65
65
|
name,
|
|
66
66
|
run: async (ctx) => {
|
|
67
|
-
const file = await findTool(name, ctx.env);
|
|
67
|
+
const file = await findTool(name, { env: ctx.env, platform });
|
|
68
68
|
return file === undefined
|
|
69
69
|
? { state: "problem", message: `${name} is not on PATH`, fix: install }
|
|
70
70
|
: { state: "ok", message: `found at ${file}` };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/context/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,MAAM,UAAU,MAAM,CAAC,GAAQ;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC;IACrF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/context/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -22,19 +22,22 @@ export interface BuildStamp {
|
|
|
22
22
|
readonly builtAt: string;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* What a Command declares it needs, which types its `ctx`: `secretName`, the names of
|
|
26
|
-
* and `errors`, the part of the Error table
|
|
25
|
+
* What a Command declares it needs, which types its `ctx`: `secretName`, the names of the `secrets`
|
|
26
|
+
* it needs, `optionalSecretName`, those it runs without, and `errors`, the part of the Error table
|
|
27
|
+
* its `errors` names.
|
|
27
28
|
*/
|
|
28
|
-
export interface Needs<SecretName extends string = string, Errors extends ErrorTable = ErrorTable> {
|
|
29
|
+
export interface Needs<SecretName extends string = string, Errors extends ErrorTable = ErrorTable, OptionalSecretName extends string = string> {
|
|
29
30
|
readonly secretName: SecretName;
|
|
31
|
+
readonly optionalSecretName: OptionalSecretName;
|
|
30
32
|
readonly errors: Errors;
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
export type NoNeeds = Needs<never, NoErrors>;
|
|
34
|
+
export type NoNeeds = Needs<never, NoErrors, never>;
|
|
34
35
|
/** `Declared` is what the Command declares it needs, so `secret` and `fail` take only those. */
|
|
35
36
|
export interface Context<Ports = unknown, Settings = unknown, Declared extends Needs = NoNeeds> {
|
|
36
37
|
readonly cwd: string;
|
|
37
38
|
readonly env: Env;
|
|
39
|
+
/** The platform the run is on: `process.platform`, or the `platform` a test passed to `runCli`. */
|
|
40
|
+
readonly platform: NodeJS.Platform;
|
|
38
41
|
/** The CLI's version, as `--version` prints it. */
|
|
39
42
|
readonly version: string;
|
|
40
43
|
/** The bundler's stamp, as `--version` prints it; absent when the CLI runs unbundled. */
|
|
@@ -123,10 +126,11 @@ export interface Context<Ports = unknown, Settings = unknown, Declared extends N
|
|
|
123
126
|
readonly project: Project<Settings> | undefined;
|
|
124
127
|
/**
|
|
125
128
|
* One of the Command's declared `secrets`, with where it came from: the env, then
|
|
126
|
-
* `$XDG_CONFIG_HOME/<cli>/.env` (default `~/.config`). The Runtime checked each before
|
|
127
|
-
* Command started, so
|
|
129
|
+
* `$XDG_CONFIG_HOME/<cli>/.env` (default `~/.config`). The Runtime checked each it needs before
|
|
130
|
+
* the Command started, so only an optional one may be `undefined`.
|
|
128
131
|
*/
|
|
129
132
|
secret(name: Declared["secretName"]): Secret;
|
|
133
|
+
secret(name: Declared["optionalSecretName"]): Secret | undefined;
|
|
130
134
|
/**
|
|
131
135
|
* The `CliError` for one of the Command's declared `errors`, as `cliError` builds it, for the
|
|
132
136
|
* Command to throw: `details` must match the code's schema.
|
|
@@ -177,7 +181,7 @@ export interface PortsBase extends PortsBaseOfContext {
|
|
|
177
181
|
*/
|
|
178
182
|
secret(name: string): Secret | undefined;
|
|
179
183
|
}
|
|
180
|
-
type PortsBaseOfContext = Pick<Context, "env" | "cwd" | "packageRoot" | "envFile" | "spawn" | "spawnDetached" | "files" | "clock" | "signal" | "progress" | "version" | "build" | "self" | "fileError">;
|
|
184
|
+
type PortsBaseOfContext = Pick<Context, "env" | "platform" | "cwd" | "packageRoot" | "envFile" | "spawn" | "spawnDetached" | "files" | "clock" | "signal" | "progress" | "version" | "build" | "self" | "fileError">;
|
|
181
185
|
export interface Project<Settings = unknown> {
|
|
182
186
|
/** The folder holding the Project file. */
|
|
183
187
|
readonly root: string;
|
package/dist/define-command.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type * as z from "zod";
|
|
2
2
|
import { type StandardFlagName } from "./command-line/flags.js";
|
|
3
3
|
import type { Needs } from "./context.js";
|
|
4
|
-
import type { ActCommand, Command, DestructiveCommand, InputSchema, ListCommand, NoInput, ReadCommand, ServeCommand, WriteCommand } from "./define.js";
|
|
4
|
+
import type { ActCommand, Command, DestructiveCommand, InputSchema, ListCommand, NoInput, ReadCommand, SecretDeclaration, ServeCommand, WriteCommand } from "./define.js";
|
|
5
5
|
import type { ErrorTable, NoErrors } from "./error-table.js";
|
|
6
6
|
import type { RowSchema } from "./list.js";
|
|
7
|
+
import { type DeclaredRuntimeErrors } from "./runtime-codes.js";
|
|
8
|
+
/** The codes a Command may declare in `errors`: the CLI's table and the Runtime's that only some Commands reach. */
|
|
9
|
+
type Declarable<Table extends ErrorTable> = Table & DeclaredRuntimeErrors;
|
|
7
10
|
type Kebab<Key extends string> = Key extends `${infer Head}${infer Tail}` ? `${Head extends Lowercase<Head> ? Head : `-${Lowercase<Head>}`}${Kebab<Tail>}` : Key;
|
|
8
11
|
type Taken<Schema extends InputSchema> = Extract<Kebab<Extract<keyof Schema["shape"], string>>, StandardFlagName>;
|
|
9
12
|
type Unreserved<Schema extends InputSchema> = [Taken<Schema>] extends [never] ? unknown : {
|
|
@@ -21,27 +24,40 @@ interface WithOutput<Schema extends z.ZodType> {
|
|
|
21
24
|
interface WithoutOutput {
|
|
22
25
|
readonly output?: undefined;
|
|
23
26
|
}
|
|
24
|
-
type
|
|
27
|
+
type NeededName<Secrets extends readonly SecretDeclaration[]> = Exclude<Secrets[number], {
|
|
28
|
+
readonly optional: true;
|
|
29
|
+
}>["name"];
|
|
30
|
+
type OptionalName<Secrets extends readonly SecretDeclaration[]> = Extract<Secrets[number], {
|
|
31
|
+
readonly optional: true;
|
|
32
|
+
}>["name"];
|
|
33
|
+
type DeclarableCode<Table extends ErrorTable> = keyof Declarable<Table> & string;
|
|
34
|
+
/** The `ctx` needs of a Command declaring `Secrets` and, of the codes it may declare, `Code`. */
|
|
35
|
+
type Needed<Secrets extends readonly SecretDeclaration[], Table extends ErrorTable, Code extends DeclarableCode<Table>> = Needs<NeededName<Secrets>, Pick<Declarable<Table>, Code>, OptionalName<Secrets>>;
|
|
36
|
+
type DeclaredSecrets<Secrets extends readonly SecretDeclaration[]> = {
|
|
37
|
+
readonly secrets?: Secrets;
|
|
38
|
+
} & NoInfer<string extends Secrets[number]["name"] ? {
|
|
25
39
|
readonly secrets?: {
|
|
26
40
|
readonly "give each Secret's name as a literal, or the object as const": never;
|
|
27
41
|
};
|
|
28
42
|
} : unknown>;
|
|
29
43
|
/** Declares a Command whose `ctx.ports` is the CLI's `Ports`. */
|
|
30
44
|
export interface DefineCommand<Ports, Settings = unknown, Table extends ErrorTable = NoErrors> {
|
|
31
|
-
<Row extends RowSchema, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
32
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
33
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
34
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
35
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
36
|
-
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
37
|
-
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
38
|
-
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
39
|
-
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
40
|
-
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
41
|
-
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const
|
|
45
|
+
<Row extends RowSchema, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ListCommand<Args, Options, Row, Ports, Settings, Needed<Secrets, Table, Code>> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ListCommand<Args, Options, Row, Ports, Settings, Needed<Secrets, Table, Code>>;
|
|
46
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ReadCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ReadCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema>;
|
|
47
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ReadCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ReadCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput;
|
|
48
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ActCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ActCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema>;
|
|
49
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ActCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ActCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput;
|
|
50
|
+
<Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ServeCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ServeCommand<Args, Options, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema>;
|
|
51
|
+
<Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: ServeCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): ServeCommand<Args, Options, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput;
|
|
52
|
+
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: WriteCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): WriteCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema>;
|
|
53
|
+
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: WriteCommand<Args, Options, Plan, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): WriteCommand<Args, Options, Plan, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput;
|
|
54
|
+
<Plan, Schema extends z.ZodType, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: DestructiveCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema> & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): DestructiveCommand<Args, Options, Plan, Returns<Schema>, Ports, Settings, Prints<Schema>, Needed<Secrets, Table, Code>> & WithOutput<Schema>;
|
|
55
|
+
<Plan, Data, Args extends InputSchema = NoInput, Options extends InputSchema = NoInput, const Secrets extends readonly SecretDeclaration[] = readonly [], Code extends DeclarableCode<Table> = never>(command: DestructiveCommand<Args, Options, Plan, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput & WithoutStandardFlags<Args, Options> & DeclaredSecrets<Secrets>): DestructiveCommand<Args, Options, Plan, Data, Ports, Settings, Data, Needed<Secrets, Table, Code>> & WithoutOutput;
|
|
42
56
|
}
|
|
43
57
|
/** Throws when the Command's declaration breaks a rule its type cannot express; `label` names it. */
|
|
44
58
|
export declare function checkCommand(command: Command, label: string, table: ErrorTable): void;
|
|
59
|
+
/** Throws on a code in `errors` that is neither in `table` nor a Runtime code some Commands declare. */
|
|
60
|
+
export declare function checkErrors(errors: readonly string[], label: string, table: ErrorTable): void;
|
|
45
61
|
export declare function defineCommandFor<Ports, Settings, Table extends ErrorTable = NoErrors>(): DefineCommand<Ports, Settings, Table>;
|
|
46
62
|
export declare const defineCommand: DefineCommand<unknown>;
|
|
47
63
|
export {};
|
package/dist/define-command.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { checkForce, checkNoStandardFlags } from "./command-line/flags.js";
|
|
2
2
|
import { checkArrayArgLast, checkNoBooleanArrayOption, checkStdinFields, } from "./command-line/input.js";
|
|
3
|
+
import { mustDeclare } from "./runtime-codes.js";
|
|
3
4
|
/** Throws when the Command's declaration breaks a rule its type cannot express; `label` names it. */
|
|
4
5
|
export function checkCommand(command, label, table) {
|
|
5
6
|
checkNoStandardFlags(command, label);
|
|
@@ -7,10 +8,11 @@ export function checkCommand(command, label, table) {
|
|
|
7
8
|
checkArrayArgLast(label, command.args);
|
|
8
9
|
checkStdinFields(label, command.args, command.options);
|
|
9
10
|
checkNoBooleanArrayOption(label, command.options);
|
|
10
|
-
checkErrors(command, label, table);
|
|
11
|
+
checkErrors(command.errors ?? [], label, table);
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
/** Throws on a code in `errors` that is neither in `table` nor a Runtime code some Commands declare. */
|
|
14
|
+
export function checkErrors(errors, label, table) {
|
|
15
|
+
const unknown = errors.filter((code) => !mustDeclare(code, table));
|
|
14
16
|
if (unknown.length > 0) {
|
|
15
17
|
throw new Error(`${label} declares ${unknown.join(", ")} in errors, a code the Error table lacks`);
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-command.js","sourceRoot":"","sources":["../src/define-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAClG,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAA8B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiV7E,qGAAqG;AACrG,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,KAAa,EAAE,KAAiB;IAC7E,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3B,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,MAAyB,EAAE,KAAa,EAAE,KAAiB;IACrF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAClF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAK9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAA2B,OAAiB;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B,gBAAgB,EAAE,CAAC"}
|
package/dist/define.d.ts
CHANGED
|
@@ -30,6 +30,11 @@ export interface SecretDeclaration<Name extends string = string> {
|
|
|
30
30
|
readonly name: Name;
|
|
31
31
|
/** Where to obtain the key, such as the page that issues it; shown when it is missing. */
|
|
32
32
|
readonly get: string;
|
|
33
|
+
/**
|
|
34
|
+
* The Command runs without it, as with a token that overrides a saved login: its absence fails
|
|
35
|
+
* nothing, `ctx.secret` may give `undefined`, and help JSON marks it.
|
|
36
|
+
*/
|
|
37
|
+
readonly optional?: true;
|
|
33
38
|
}
|
|
34
39
|
/** Bounds a whole run, so a long run stops before the caller's own timeout and can be continued. */
|
|
35
40
|
export interface RunDeadline<In> {
|
|
@@ -61,14 +66,16 @@ interface CommandBase<Args extends InputSchema, Options extends InputSchema, Dec
|
|
|
61
66
|
readonly tools?: readonly Tool[];
|
|
62
67
|
/**
|
|
63
68
|
* Read after `tools`, before `plan`, `run` or `start`, `--dry-run` included: missing ones fail the
|
|
64
|
-
* run with `SECRET_MISSING` (exit 2), naming each with its `get` and the CLI's `.env
|
|
65
|
-
* reads only these, help JSON lists them, and `doctor` checks
|
|
69
|
+
* run with `SECRET_MISSING` (exit 2), naming each with its `get` and the CLI's `.env`; an optional
|
|
70
|
+
* one never does. `ctx.secret` reads only these, help JSON lists them, and `doctor` checks
|
|
71
|
+
* each it needs and reports each set.
|
|
66
72
|
*/
|
|
67
|
-
readonly secrets?: readonly SecretDeclaration<Declared["secretName"]>[];
|
|
73
|
+
readonly secrets?: readonly SecretDeclaration<Declared["secretName"] | Declared["optionalSecretName"]>[];
|
|
68
74
|
/**
|
|
69
|
-
* The codes of the CLI's Error table the
|
|
70
|
-
* `
|
|
71
|
-
* leaf included, fails as a bug
|
|
75
|
+
* The codes of the CLI's Error table, and the Runtime codes only some Commands reach, such as
|
|
76
|
+
* `NO_LATEST`, that the Command throws, listed with their class in help JSON; `ctx.fail` throws
|
|
77
|
+
* only these. A run ending in one missing here, an `AggregateError` leaf included, fails as a bug
|
|
78
|
+
* (exit 70). A Runtime code any Command can meet is never listed.
|
|
72
79
|
*/
|
|
73
80
|
readonly errors?: readonly (keyof Declared["errors"] & string)[];
|
|
74
81
|
/**
|
|
@@ -280,6 +287,12 @@ export interface DoctorCheck<Ports = unknown, Settings = unknown> {
|
|
|
280
287
|
readonly deadlineMs?: number;
|
|
281
288
|
/** A problem in an advisory row shows but never fails `doctor`. */
|
|
282
289
|
readonly advisory?: boolean;
|
|
290
|
+
/**
|
|
291
|
+
* The codes of the Error table, and the Runtime codes only some Commands reach, that the row fails
|
|
292
|
+
* with, thrown or as its finding's `code`; `doctor` declares those of every row that is not
|
|
293
|
+
* advisory. A row that is not advisory failing with one missing here fails `doctor` as a bug (exit 70).
|
|
294
|
+
*/
|
|
295
|
+
readonly errors?: readonly string[];
|
|
283
296
|
/**
|
|
284
297
|
* `ctx.signal` aborts at the row's deadline. A thrown error is reported as this row's problem,
|
|
285
298
|
* with its first Next step other than `ctx.rerun()` as the fix; one from `ctx.spawn` finding a
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAkcA,0FAA0F;AAC1F,MAAM,UAAU,SAAS,CAAC,IAAwB;IAChD,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AACzC,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Env } from "./context.js";
|
|
2
2
|
import type { ErrorTable } from "./error-table.js";
|
|
3
|
+
import type { ClassifiedLeaf } from "./failure.js";
|
|
3
4
|
import { type NextStep, type Step } from "./next-step.js";
|
|
4
5
|
import type { Style } from "./style.js";
|
|
5
6
|
export interface CliErrorFields {
|
|
@@ -44,14 +45,9 @@ export interface ErrorFormat {
|
|
|
44
45
|
readonly errors: ErrorTable;
|
|
45
46
|
/** Where the CLI takes bug reports, read from package.json `bugs` only when a hint names it. */
|
|
46
47
|
readonly bugs?: () => string | undefined;
|
|
47
|
-
/** Whether `error` is a bug: not a `CliError`, or one whose code nobody declared. */
|
|
48
|
-
readonly isBug: (error: unknown) => boolean;
|
|
49
|
-
readonly isWait: (error: unknown) => boolean;
|
|
50
48
|
}
|
|
51
49
|
export declare function errnoOf(error: unknown): string | undefined;
|
|
52
50
|
export declare function isMissingFile(error: unknown): boolean;
|
|
53
|
-
/** What `pending` resolves with, or undefined when it fails because a file is missing. */
|
|
54
|
-
export declare function orMissing<T>(pending: Promise<T>): Promise<T | undefined>;
|
|
55
51
|
export declare function isNothingThere(error: unknown): boolean;
|
|
56
52
|
/** The CLI's own environment variable, such as `TOOL_DEBUG` for `cliVariable("tool", "DEBUG")`. */
|
|
57
53
|
export declare function cliVariable(cliName: string, suffix: string): string;
|
|
@@ -65,5 +61,6 @@ export declare function traceOf(error: unknown): string;
|
|
|
65
61
|
* empty `AggregateError` is a leaf.
|
|
66
62
|
*/
|
|
67
63
|
export declare function errorsOf(error: unknown): readonly unknown[];
|
|
68
|
-
|
|
64
|
+
/** The classified errors a run failed with, as stderr carries them. */
|
|
65
|
+
export declare function formatRuntimeError(leaves: readonly ClassifiedLeaf[], format: ErrorFormat): string;
|
|
69
66
|
export {};
|
package/dist/errors.js
CHANGED
|
@@ -41,17 +41,6 @@ export function errnoOf(error) {
|
|
|
41
41
|
export function isMissingFile(error) {
|
|
42
42
|
return errnoOf(error) === "ENOENT";
|
|
43
43
|
}
|
|
44
|
-
/** What `pending` resolves with, or undefined when it fails because a file is missing. */
|
|
45
|
-
export async function orMissing(pending) {
|
|
46
|
-
try {
|
|
47
|
-
return await pending;
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
if (isMissingFile(error))
|
|
51
|
-
return undefined;
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
44
|
// ENOTDIR: a part of the path is a file, so nothing can exist under it.
|
|
56
45
|
export function isNothingThere(error) {
|
|
57
46
|
return isMissingFile(error) || errnoOf(error) === "ENOTDIR";
|
|
@@ -79,12 +68,12 @@ function bugHint(format) {
|
|
|
79
68
|
return bugs === undefined ? rerun : `${rerun}, then report it at ${bugs}`;
|
|
80
69
|
}
|
|
81
70
|
// A bug's own Next steps are the author's guess at a failure that was not meant to happen.
|
|
82
|
-
function fieldsOf(error, format) {
|
|
71
|
+
function fieldsOf({ error, exitClass }, format) {
|
|
83
72
|
if (!(error instanceof CliError)) {
|
|
84
73
|
return { code: INTERNAL, message: messageOf(error), hint: bugHint(format) };
|
|
85
74
|
}
|
|
86
75
|
const { code, message, hint, details, retryAt, next } = error;
|
|
87
|
-
if (
|
|
76
|
+
if (exitClass === "bug")
|
|
88
77
|
return { code, message, hint: bugHint(format), details, retryAt };
|
|
89
78
|
const lines = next.map((step) => lineOf(step, format.runAs));
|
|
90
79
|
return { code, message, hint, details, retryAt, ...(lines.length === 0 ? {} : { next: lines }) };
|
|
@@ -98,11 +87,11 @@ export function traceOf(error) {
|
|
|
98
87
|
return error instanceof Error ? (error.stack ?? error.message) : String(error);
|
|
99
88
|
}
|
|
100
89
|
/** Under debug: a bug's stack trace, then every error's cause chain. */
|
|
101
|
-
function debugTrace(error, format) {
|
|
90
|
+
function debugTrace({ error, exitClass }, format) {
|
|
102
91
|
if (!isDebug(format))
|
|
103
92
|
return undefined;
|
|
104
93
|
const lines = [
|
|
105
|
-
...(
|
|
94
|
+
...(exitClass === "bug" ? [traceOf(error)] : []),
|
|
106
95
|
...causesOf(error).map((cause) => `caused by: ${traceOf(cause)}`),
|
|
107
96
|
];
|
|
108
97
|
return lines.length === 0 ? undefined : lines.join("\n");
|
|
@@ -127,29 +116,29 @@ function printedDetail(error, format) {
|
|
|
127
116
|
const value = Reflect.get(details, key);
|
|
128
117
|
return typeof value === "string" ? value : undefined;
|
|
129
118
|
}
|
|
130
|
-
function labelOf(
|
|
131
|
-
if (
|
|
119
|
+
function labelOf({ exitClass }, style) {
|
|
120
|
+
if (exitClass === "wait")
|
|
132
121
|
return style.yellow("wait:");
|
|
133
|
-
return style.red(
|
|
122
|
+
return style.red(exitClass === "bug" ? "internal error:" : "error:");
|
|
134
123
|
}
|
|
135
|
-
function errorLines(
|
|
136
|
-
const fields = fieldsOf(
|
|
137
|
-
const blocks = [printedDetail(error, format), debugTrace(
|
|
124
|
+
function errorLines(leaf, format) {
|
|
125
|
+
const fields = fieldsOf(leaf, format);
|
|
126
|
+
const blocks = [printedDetail(leaf.error, format), debugTrace(leaf, format)].filter((block) => block !== undefined);
|
|
138
127
|
const { style } = format;
|
|
139
|
-
const label = labelOf(
|
|
128
|
+
const label = labelOf(leaf, style);
|
|
140
129
|
const between = blocks.map((block) => `${block}\n`).join("");
|
|
141
130
|
const runs = (fields.next ?? []).map((line) => `${style.cyan("run:")} ${line}\n`).join("");
|
|
142
131
|
return `${label} ${fields.message}\n${between}${style.cyan("hint:")} ${fields.hint}\n${runs}`;
|
|
143
132
|
}
|
|
144
|
-
|
|
145
|
-
|
|
133
|
+
/** The classified errors a run failed with, as stderr carries them. */
|
|
134
|
+
export function formatRuntimeError(leaves, format) {
|
|
146
135
|
if (format.json) {
|
|
147
|
-
const printed =
|
|
148
|
-
...fieldsOf(
|
|
149
|
-
stack: debugTrace(
|
|
136
|
+
const printed = leaves.map((leaf) => ({
|
|
137
|
+
...fieldsOf(leaf, format),
|
|
138
|
+
stack: debugTrace(leaf, format),
|
|
150
139
|
}));
|
|
151
140
|
return `${JSON.stringify({ errors: printed })}\n`;
|
|
152
141
|
}
|
|
153
|
-
return
|
|
142
|
+
return leaves.map((leaf) => errorLines(leaf, format)).join("");
|
|
154
143
|
}
|
|
155
144
|
//# sourceMappingURL=errors.js.map
|