@wirecat/cli-base 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -1
- package/dist/commands/document.d.ts +72 -0
- package/dist/commands/document.d.ts.map +1 -0
- package/dist/commands/document.js +71 -0
- package/dist/commands/document.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +23 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/deadline.js +3 -3
- package/dist/deadline.js.map +1 -1
- package/dist/dev/bin.js +0 -0
- package/dist/dev/lint.d.ts +31 -0
- package/dist/dev/lint.d.ts.map +1 -0
- package/dist/dev/lint.js +148 -0
- package/dist/dev/lint.js.map +1 -0
- package/dist/dev/main.d.ts.map +1 -1
- package/dist/dev/main.js +132 -2
- package/dist/dev/main.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -1
- package/dist/errors.js.map +1 -1
- package/dist/output-buffer.js +2 -2
- package/dist/output-buffer.js.map +1 -1
- package/dist/standards/errors.d.ts +40 -0
- package/dist/standards/errors.d.ts.map +1 -0
- package/dist/standards/errors.js +33 -0
- package/dist/standards/errors.js.map +1 -0
- package/dist/standards/index.d.ts +8 -0
- package/dist/standards/index.d.ts.map +1 -0
- package/dist/standards/index.js +8 -0
- package/dist/standards/index.js.map +1 -0
- package/dist/standards/lint.d.ts +29 -0
- package/dist/standards/lint.d.ts.map +1 -0
- package/dist/standards/lint.js +50 -0
- package/dist/standards/lint.js.map +1 -0
- package/dist/standards/log.d.ts +21 -0
- package/dist/standards/log.d.ts.map +1 -0
- package/dist/standards/log.js +18 -0
- package/dist/standards/log.js.map +1 -0
- package/dist/standards/output.d.ts +126 -0
- package/dist/standards/output.d.ts.map +1 -0
- package/dist/standards/output.js +54 -0
- package/dist/standards/output.js.map +1 -0
- package/dist/standards/registry.d.ts +18 -0
- package/dist/standards/registry.d.ts.map +1 -0
- package/dist/standards/registry.js +41 -0
- package/dist/standards/registry.js.map +1 -0
- package/dist/standards/steps.d.ts +28 -0
- package/dist/standards/steps.d.ts.map +1 -0
- package/dist/standards/steps.js +56 -0
- package/dist/standards/steps.js.map +1 -0
- package/dist/standards/vocabulary.d.ts +40 -0
- package/dist/standards/vocabulary.d.ts.map +1 -0
- package/dist/standards/vocabulary.js +242 -0
- package/dist/standards/vocabulary.js.map +1 -0
- package/package.json +27 -19
package/dist/dev/main.js
CHANGED
|
@@ -2,11 +2,18 @@
|
|
|
2
2
|
* `cli-dev`: the development scripts every CLI on cli-base used to carry a copy of. Each command
|
|
3
3
|
* reads and writes under `cwd` and reports through `out` and `err`; `main` returns the exit code.
|
|
4
4
|
*/
|
|
5
|
-
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
6
6
|
import { isAbsolute, join } from "node:path";
|
|
7
7
|
import { pathToFileURL } from "node:url";
|
|
8
8
|
import { parseArgs } from "node:util";
|
|
9
|
+
import spawn from "cross-spawn";
|
|
10
|
+
import * as v from "valibot";
|
|
11
|
+
import { parseCommandsDocument } from "../commands/document.js";
|
|
9
12
|
import { changelogProblems, docsProblems, JOURNAL_IDS, markdownFiles, structureProblems, versionScript, } from "../release/index.js";
|
|
13
|
+
import { baselineProblems, baselineSchema, LINT_RULES, OVERRIDE_BUDGET, overridesProblems, overridesSchema, } from "../standards/lint.js";
|
|
14
|
+
import { issuesOf } from "../standards/registry.js";
|
|
15
|
+
import { VOCABULARY } from "../standards/vocabulary.js";
|
|
16
|
+
import { baselineOf, judge, lintCommands } from "./lint.js";
|
|
10
17
|
import { nextVersion } from "./next-version.js";
|
|
11
18
|
import { slowTests } from "./slow-tests.js";
|
|
12
19
|
import { matrixPage, matrixRows, parseArgvLog } from "./test-matrix.js";
|
|
@@ -20,7 +27,12 @@ const USAGE = `usage: cli-dev <command> [options]
|
|
|
20
27
|
links, anchors and the changelog's shape; --pages also
|
|
21
28
|
docs/ against docs/meta.json, the docs portal's structure
|
|
22
29
|
test-matrix --program <module> --untested <module> --name <cli> [--page <path>] [--check]
|
|
23
|
-
docs/dev/test-matrix.md from coverage/argv.jsonl
|
|
30
|
+
docs/dev/test-matrix.md from coverage/argv.jsonl
|
|
31
|
+
lint (--cli <bin> | --commands <file>) [--baseline <dir>] [--overrides <file>] [--budget <n>]
|
|
32
|
+
[--write-baseline] the command tree against the standard's rules; fails on a
|
|
33
|
+
new violation, a stale baseline entry or override, or more
|
|
34
|
+
overrides than the budget (10). --write-baseline rewrites
|
|
35
|
+
lint/baseline/<rule>.json to today's violations`;
|
|
24
36
|
const load = async (cwd, path) => (await import(pathToFileURL(isAbsolute(path) ? path : join(cwd, path)).href));
|
|
25
37
|
const report = (io, problems, ok) => {
|
|
26
38
|
for (const problem of problems)
|
|
@@ -101,6 +113,122 @@ const testMatrix = async (args, io) => {
|
|
|
101
113
|
io.err(`test matrix: ${count("tested")} tested, ${count("untested")} untested with a reason, ${missing.length} missing`);
|
|
102
114
|
return failed ? 1 : 0;
|
|
103
115
|
};
|
|
116
|
+
const readJson = (path) => {
|
|
117
|
+
try {
|
|
118
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
throw new Error(`${path}: ${error.message}`);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const commandsJson = (io, cli, file) => {
|
|
125
|
+
if (file)
|
|
126
|
+
return readJson(isAbsolute(file) ? file : join(io.cwd, file));
|
|
127
|
+
const bin = cli ?? "";
|
|
128
|
+
const script = /\.[cm]?js$/.test(bin);
|
|
129
|
+
const run = spawn.sync(script ? process.execPath : bin, [...(script ? [bin] : []), "commands", "--json"], {
|
|
130
|
+
cwd: io.cwd,
|
|
131
|
+
encoding: "utf8",
|
|
132
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
133
|
+
});
|
|
134
|
+
if (run.error || run.status !== 0)
|
|
135
|
+
throw new Error(`${bin} commands --json failed: ${run.error?.message ?? String(run.stderr).trim().split("\n")[0]}`);
|
|
136
|
+
return JSON.parse(String(run.stdout));
|
|
137
|
+
};
|
|
138
|
+
const lint = (args, io) => {
|
|
139
|
+
try {
|
|
140
|
+
return lintRun(args, io);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
io.err(error.message);
|
|
144
|
+
return 2;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const lintRun = (args, io) => {
|
|
148
|
+
const { values } = parseArgs({
|
|
149
|
+
args,
|
|
150
|
+
options: {
|
|
151
|
+
cli: { type: "string" },
|
|
152
|
+
commands: { type: "string" },
|
|
153
|
+
baseline: { type: "string", default: "lint/baseline" },
|
|
154
|
+
overrides: { type: "string", default: "lint/overrides.json" },
|
|
155
|
+
budget: { type: "string", default: String(OVERRIDE_BUDGET) },
|
|
156
|
+
"write-baseline": { type: "boolean", default: false },
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
if (Boolean(values.cli) === Boolean(values.commands)) {
|
|
160
|
+
io.err("lint needs one of --cli <bin> or --commands <file>");
|
|
161
|
+
return 2;
|
|
162
|
+
}
|
|
163
|
+
const budget = Number(values.budget);
|
|
164
|
+
if (!Number.isInteger(budget) || budget < 0) {
|
|
165
|
+
io.err(`--budget takes a whole number, not "${values.budget}"`);
|
|
166
|
+
return 2;
|
|
167
|
+
}
|
|
168
|
+
let raw;
|
|
169
|
+
try {
|
|
170
|
+
raw = commandsJson(io, values.cli, values.commands);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
io.err(error.message);
|
|
174
|
+
return 2;
|
|
175
|
+
}
|
|
176
|
+
const parsed = parseCommandsDocument(raw);
|
|
177
|
+
if (!parsed.document) {
|
|
178
|
+
io.err("the commands document is not the shape cli-base's commandsDocument() writes:");
|
|
179
|
+
for (const problem of parsed.problems.slice(0, 20))
|
|
180
|
+
io.err(` ${problem}`);
|
|
181
|
+
if (parsed.problems.length > 20)
|
|
182
|
+
io.err(` … and ${parsed.problems.length - 20} more`);
|
|
183
|
+
return 2;
|
|
184
|
+
}
|
|
185
|
+
const problems = [];
|
|
186
|
+
const overridesPath = join(io.cwd, values.overrides);
|
|
187
|
+
let overrides = [];
|
|
188
|
+
if (existsSync(overridesPath)) {
|
|
189
|
+
const read = v.safeParse(overridesSchema, readJson(overridesPath));
|
|
190
|
+
const found = read.success ? overridesProblems(read.output) : issuesOf(read.issues);
|
|
191
|
+
if (read.success)
|
|
192
|
+
overrides = read.output;
|
|
193
|
+
problems.push(...found.map((issue) => `${values.overrides}: ${issue}`));
|
|
194
|
+
}
|
|
195
|
+
const baselineDir = join(io.cwd, values.baseline);
|
|
196
|
+
const baseline = {};
|
|
197
|
+
if (existsSync(baselineDir))
|
|
198
|
+
for (const file of readdirSync(baselineDir).filter((name) => name.endsWith(".json"))) {
|
|
199
|
+
const read = v.safeParse(baselineSchema, readJson(join(baselineDir, file)));
|
|
200
|
+
const found = read.success ? baselineProblems(read.output) : issuesOf(read.issues);
|
|
201
|
+
if (read.success)
|
|
202
|
+
baseline[file.slice(0, -".json".length)] = read.output;
|
|
203
|
+
problems.push(...found.map((issue) => `${values.baseline}/${file}: ${issue}`));
|
|
204
|
+
}
|
|
205
|
+
const violations = lintCommands(parsed.document, VOCABULARY);
|
|
206
|
+
const severity = new Map(LINT_RULES.map((rule) => [rule.id, rule.severity]));
|
|
207
|
+
if (values["write-baseline"]) {
|
|
208
|
+
mkdirSync(baselineDir, { recursive: true });
|
|
209
|
+
for (const [rule, targets] of Object.entries(baselineOf(violations, overrides))) {
|
|
210
|
+
const path = join(baselineDir, `${rule}.json`);
|
|
211
|
+
if (targets.length > 0)
|
|
212
|
+
writeFileSync(path, `${JSON.stringify(targets, null, 2)}\n`);
|
|
213
|
+
else
|
|
214
|
+
rmSync(path, { force: true });
|
|
215
|
+
baseline[rule] = targets;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const verdict = judge(violations, baseline, overrides, budget);
|
|
219
|
+
for (const id of verdict.unknownRules)
|
|
220
|
+
problems.push(`no lint rule "${id}" (named in ${values.baseline} or ${values.overrides})`);
|
|
221
|
+
for (const found of verdict.fresh)
|
|
222
|
+
problems.push(`${severity.get(found.rule) ?? "?"} ${found.rule} ${found.target}: ${found.message}`);
|
|
223
|
+
for (const entry of verdict.stale)
|
|
224
|
+
problems.push(entry.in === "baseline"
|
|
225
|
+
? `stale baseline entry, fixed or overridden — remove it: ${values.baseline}/${entry.rule}.json "${entry.target}"`
|
|
226
|
+
: `stale override, no such violation — remove it: ${entry.rule} "${entry.target}"`);
|
|
227
|
+
if (verdict.overBudget)
|
|
228
|
+
problems.push(`${overrides.length} overrides; the budget is ${budget}`);
|
|
229
|
+
io.err(`lint: ${violations.length} violations — ${verdict.baselined} in the baseline, ${verdict.overridden} overridden (budget ${budget}), ${verdict.fresh.length} new`);
|
|
230
|
+
return report(io, problems, "lint: ok");
|
|
231
|
+
};
|
|
104
232
|
export const main = async (argv, io) => {
|
|
105
233
|
const [command, ...args] = argv;
|
|
106
234
|
switch (command) {
|
|
@@ -136,6 +264,8 @@ export const main = async (argv, io) => {
|
|
|
136
264
|
return docsCheck(args, io);
|
|
137
265
|
case "test-matrix":
|
|
138
266
|
return testMatrix(args, io);
|
|
267
|
+
case "lint":
|
|
268
|
+
return lint(args, io);
|
|
139
269
|
case "help":
|
|
140
270
|
case "--help":
|
|
141
271
|
case "-h":
|
package/dist/dev/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/dev/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/dev/main.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,YACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,CACH,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,YACrB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,CACH,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAMD,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IAEjC,YAAY,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,EAM1E;CACF;AAED,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,KAAK,IAAI,QAC4C,CAAA"}
|
package/dist/errors.js
CHANGED
|
@@ -22,6 +22,9 @@ export const errorCodes = [
|
|
|
22
22
|
"outcome_unknown",
|
|
23
23
|
"cancelled",
|
|
24
24
|
];
|
|
25
|
+
// Symbol.for, so two copies of this package — one CLI's and one dependency's, during a pin bump —
|
|
26
|
+
// recognise each other's errors where `instanceof` cannot.
|
|
27
|
+
const BRAND = Symbol.for("@wirecat/cli-base/CliError");
|
|
25
28
|
export class CliError extends Error {
|
|
26
29
|
code;
|
|
27
30
|
details;
|
|
@@ -30,7 +33,8 @@ export class CliError extends Error {
|
|
|
30
33
|
this.name = "CliError";
|
|
31
34
|
this.code = code;
|
|
32
35
|
this.details = details;
|
|
36
|
+
Object.defineProperty(this, BRAND, { value: true });
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
|
-
export const isCliError = (value) => value
|
|
39
|
+
export const isCliError = (value) => typeof value === "object" && value !== null && value[BRAND] === true;
|
|
36
40
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,uBAAuB;IACvB,cAAc;IACd,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;CACH,CAAA;AAsBV,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAW;IACf,OAAO,CAAiB;IAEjC,YAAY,IAAe,EAAE,OAAe,EAAE,OAAO,GAAoB,EAAE;QACzE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,uBAAuB;IACvB,cAAc;IACd,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;CACH,CAAA;AAsBV,kGAAkG;AAClG,2DAA2D;AAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAEtD,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAW;IACf,OAAO,CAAiB;IAEjC,YAAY,IAAe,EAAE,OAAe,EAAE,OAAO,GAAoB,EAAE;QACzE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAqB,EAAE,CAC9D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAA+B,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA"}
|
package/dist/output-buffer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CliError } from "./errors.js";
|
|
1
|
+
import { CliError, isCliError } from "./errors.js";
|
|
2
2
|
import { fieldsOf, projectFields } from "./result-fields.js";
|
|
3
3
|
export const createOutputBuffer = ({ maxOutputBytes = 4 * 1024 * 1024, fields, format, } = {}) => {
|
|
4
4
|
if (!Number.isSafeInteger(maxOutputBytes) || maxOutputBytes < 0)
|
|
@@ -32,7 +32,7 @@ export const createOutputBuffer = ({ maxOutputBytes = 4 * 1024 * 1024, fields, f
|
|
|
32
32
|
: project(text) + (text.endsWith("\n") ? "\n" : "");
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
35
|
-
if (error
|
|
35
|
+
if (isCliError(error))
|
|
36
36
|
throw error;
|
|
37
37
|
throw new CliError("invalid_response", "field projection requires complete JSON values or JSONL lines", {
|
|
38
38
|
reason: "projection_unavailable",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-buffer.js","sourceRoot":"","sources":["../src/output-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"output-buffer.js","sourceRoot":"","sources":["../src/output-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
/** The one error object, on stderr in machine mode and as MCP's `isError` content alike. */
|
|
3
|
+
export declare const errorObjectSchema: v.StrictObjectSchema<{
|
|
4
|
+
readonly error: v.StrictObjectSchema<{
|
|
5
|
+
readonly code: v.PicklistSchema<readonly ["validation_error", "configuration_error", "authentication_error", "permission_error", "not_found", "confirmation_required", "rate_limited", "timeout", "network_error", "provider_error", "provider_unavailable", "invalid_response", "outcome_unknown", "cancelled"], undefined>;
|
|
6
|
+
readonly reason: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "dotted lower-case words, such as `page.next`">]>;
|
|
7
|
+
readonly message: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
8
|
+
/** The option or argument at fault. */
|
|
9
|
+
readonly param: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>, undefined>;
|
|
10
|
+
readonly details: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
11
|
+
readonly next: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StrictObjectSchema<{
|
|
12
|
+
readonly step: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "dotted lower-case words, such as `page.next`">]>;
|
|
13
|
+
readonly command: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
14
|
+
readonly args: v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>;
|
|
15
|
+
readonly why: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
16
|
+
}, undefined>, undefined>, v.MaxLengthAction<{
|
|
17
|
+
step: string;
|
|
18
|
+
command: string;
|
|
19
|
+
args: {
|
|
20
|
+
[x: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
why: string;
|
|
23
|
+
}[], 3, undefined>]>, undefined>;
|
|
24
|
+
readonly runId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
25
|
+
}, undefined>;
|
|
26
|
+
}, undefined>;
|
|
27
|
+
export type ErrorObject = v.InferOutput<typeof errorObjectSchema>;
|
|
28
|
+
declare const reasonSchema: v.StrictObjectSchema<{
|
|
29
|
+
readonly reason: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "dotted lower-case words, such as `page.next`">]>;
|
|
30
|
+
readonly code: v.PicklistSchema<readonly ["validation_error", "configuration_error", "authentication_error", "permission_error", "not_found", "confirmation_required", "rate_limited", "timeout", "network_error", "provider_error", "provider_unavailable", "invalid_response", "outcome_unknown", "cancelled"], undefined>;
|
|
31
|
+
/** `{name}` placeholders, each one of `details`. */
|
|
32
|
+
readonly message: v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
33
|
+
readonly details: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a camelCase key">]>, undefined>;
|
|
34
|
+
readonly step: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "dotted lower-case words, such as `page.next`">]>, undefined>;
|
|
35
|
+
}, undefined>;
|
|
36
|
+
export type ErrorReason = v.InferOutput<typeof reasonSchema>;
|
|
37
|
+
/** Reasons live where they are raised; each package defines its own list with this. */
|
|
38
|
+
export declare const defineReasons: (input: unknown) => ErrorReason[];
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/standards/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB;;;;;QAK1B,uCAAuC;;;;;;;;;;;;;;;;;;aAMzC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,QAAA,MAAM,YAAY;;;IAGhB,oDAAoD;;;;aAIpD,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAE5D,uFAAuF;AACvF,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,WAAW,EAQtD,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { errorCodes } from "../errors.js";
|
|
3
|
+
import { MAX_NEXT_STEPS, nextStepSchema } from "./output.js";
|
|
4
|
+
import { dottedId, duplicates, parseRegistry, placeholders, text } from "./registry.js";
|
|
5
|
+
/** The one error object, on stderr in machine mode and as MCP's `isError` content alike. */
|
|
6
|
+
export const errorObjectSchema = v.strictObject({
|
|
7
|
+
error: v.strictObject({
|
|
8
|
+
code: v.picklist(errorCodes),
|
|
9
|
+
reason: dottedId,
|
|
10
|
+
message: text,
|
|
11
|
+
/** The option or argument at fault. */
|
|
12
|
+
param: v.optional(text),
|
|
13
|
+
details: v.optional(v.record(v.string(), v.unknown())),
|
|
14
|
+
next: v.optional(v.pipe(v.array(nextStepSchema), v.maxLength(MAX_NEXT_STEPS))),
|
|
15
|
+
runId: text,
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
18
|
+
const reasonSchema = v.strictObject({
|
|
19
|
+
reason: dottedId,
|
|
20
|
+
code: v.picklist(errorCodes),
|
|
21
|
+
/** `{name}` placeholders, each one of `details`. */
|
|
22
|
+
message: v.pipe(text, v.maxLength(120)),
|
|
23
|
+
details: v.array(v.pipe(v.string(), v.regex(/^[a-z][a-zA-Z0-9]*$/, "a camelCase key"))),
|
|
24
|
+
step: v.optional(dottedId),
|
|
25
|
+
});
|
|
26
|
+
/** Reasons live where they are raised; each package defines its own list with this. */
|
|
27
|
+
export const defineReasons = (input) => parseRegistry("error reasons", v.array(reasonSchema), input, (reasons) => [
|
|
28
|
+
...duplicates(reasons.map((entry) => entry.reason)).map((reason) => `"${reason}" is listed twice`),
|
|
29
|
+
...reasons.flatMap((entry) => placeholders(entry.message)
|
|
30
|
+
.filter((name) => !entry.details.includes(name))
|
|
31
|
+
.map((name) => `${entry.reason}: the message names {${name}}, which is not one of its details`)),
|
|
32
|
+
]);
|
|
33
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/standards/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEvF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,IAAI;QACb,uCAAuC;QACvC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9E,KAAK,EAAE,IAAI;KACZ,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IAClC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,oDAAoD;IACpD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;CAC3B,CAAC,CAAA;AAIF,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC7D,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;IACxE,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,mBAAmB,CAAC;IAClG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;SACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,wBAAwB,IAAI,oCAAoC,CAAC,CAClG;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { defineReasons, type ErrorObject, type ErrorReason, errorObjectSchema } from "./errors.js";
|
|
2
|
+
export { baselineProblems, baselineSchema, defineLintRules, LINT_RULES, LINT_SEVERITIES, type LintRule, type LintSeverity, OVERRIDE_BUDGET, type Override, overridesProblems, overridesSchema, } from "./lint.js";
|
|
3
|
+
export { LOG_SEVERITIES, type LogRecord, type LogSeverity, logRecordSchema } from "./log.js";
|
|
4
|
+
export { defineFieldRules, FIELD_RULES, type FieldRule, type ItemEnvelope, isoTime, itemEnvelopeSchema, type ListEnvelope, listEnvelopeSchema, MAX_NEXT_STEPS, type Meta, type Missing, metaSchema, missingSchema, type NextStep, nextStepSchema, type Page, pageSchema, } from "./output.js";
|
|
5
|
+
export { fill, jsonSchemaOf, RegistryError } from "./registry.js";
|
|
6
|
+
export { defineSteps, SAME_COMMAND, STEPS, type StepDefinition, type StepInput, stepOf } from "./steps.js";
|
|
7
|
+
export { defineVocabulary, FLAG_TYPES, type FlagType, VOCABULARY, type Vocabulary, type VocabularyFlag, type VocabularyNoun, type VocabularyVerb, vocabularySchema, } from "./vocabulary.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/standards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAClG,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,QAAQ,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC5F,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,OAAO,EACP,kBAAkB,EAClB,KAAK,YAAY,EACjB,kBAAkB,EAClB,cAAc,EACd,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,UAAU,EACV,aAAa,EACb,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,IAAI,EACT,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1G,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { defineReasons, errorObjectSchema } from "./errors.js";
|
|
2
|
+
export { baselineProblems, baselineSchema, defineLintRules, LINT_RULES, LINT_SEVERITIES, OVERRIDE_BUDGET, overridesProblems, overridesSchema, } from "./lint.js";
|
|
3
|
+
export { LOG_SEVERITIES, logRecordSchema } from "./log.js";
|
|
4
|
+
export { defineFieldRules, FIELD_RULES, isoTime, itemEnvelopeSchema, listEnvelopeSchema, MAX_NEXT_STEPS, metaSchema, missingSchema, nextStepSchema, pageSchema, } from "./output.js";
|
|
5
|
+
export { fill, jsonSchemaOf, RegistryError } from "./registry.js";
|
|
6
|
+
export { defineSteps, SAME_COMMAND, STEPS, stepOf } from "./steps.js";
|
|
7
|
+
export { defineVocabulary, FLAG_TYPES, VOCABULARY, vocabularySchema, } from "./vocabulary.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/standards/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsC,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAClG,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,eAAe,EAGf,eAAe,EAEf,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAoC,eAAe,EAAE,MAAM,UAAU,CAAA;AAC5F,OAAO,EACL,gBAAgB,EAChB,WAAW,EAGX,OAAO,EACP,kBAAkB,EAElB,kBAAkB,EAClB,cAAc,EAGd,UAAU,EACV,aAAa,EAEb,cAAc,EAEd,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAuC,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1G,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,UAAU,EAKV,gBAAgB,GACjB,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const LINT_SEVERITIES: readonly ["high", "medium", "low"];
|
|
3
|
+
declare const lintRuleSchema: v.StrictObjectSchema<{
|
|
4
|
+
readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a lower-case word, words joined by -">]>;
|
|
5
|
+
readonly severity: v.PicklistSchema<readonly ["high", "medium", "low"], undefined>;
|
|
6
|
+
/** What the rule looks at; a violation's target names one of these. */
|
|
7
|
+
readonly scope: v.PicklistSchema<["command", "group", "argument", "option", "flag"], undefined>;
|
|
8
|
+
readonly summary: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
9
|
+
}, undefined>;
|
|
10
|
+
export type LintRule = v.InferOutput<typeof lintRuleSchema>;
|
|
11
|
+
export type LintSeverity = (typeof LINT_SEVERITIES)[number];
|
|
12
|
+
export declare const defineLintRules: (input: unknown) => LintRule[];
|
|
13
|
+
/** Ids and severities follow the Azure CLI linter (`azdev linter`): a rule is named after what it finds. */
|
|
14
|
+
export declare const LINT_RULES: LintRule[];
|
|
15
|
+
/** `lint/baseline/<rule-id>.json`: today's violations of one rule, by target. It may only shrink. */
|
|
16
|
+
export declare const baselineSchema: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>, undefined>;
|
|
17
|
+
/** `lint/overrides.json`: permanent exceptions, each with its reason, counted against a budget. */
|
|
18
|
+
export declare const overridesSchema: v.ArraySchema<v.StrictObjectSchema<{
|
|
19
|
+
readonly rule: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a lower-case word, words joined by -">]>;
|
|
20
|
+
readonly target: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
21
|
+
readonly reason: v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>, v.MinLengthAction<string, 10, "say why, in a sentence">]>;
|
|
22
|
+
}, undefined>, undefined>;
|
|
23
|
+
export type Override = v.InferOutput<typeof overridesSchema>[number];
|
|
24
|
+
/** What the schemas cannot say, so they stay convertible to JSON Schema: no entry twice. */
|
|
25
|
+
export declare const baselineProblems: (targets: readonly string[]) => string[];
|
|
26
|
+
export declare const overridesProblems: (entries: readonly Override[]) => string[];
|
|
27
|
+
export declare const OVERRIDE_BUDGET = 10;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/standards/lint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,eAAO,MAAM,eAAe,YAAI,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAA;AAEjE,QAAA,MAAM,cAAc;;;IAGlB,uEAAuE;;;aAGvE,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,QAAQ,EAGtD,CAAA;AAEH,4GAA4G;AAC5G,eAAO,MAAM,UAAU,EAAE,QAAQ,EA4B/B,CAAA;AAEF,qGAAqG;AACrG,eAAO,MAAM,cAAc,8HAAgB,CAAA;AAE3C,mGAAmG;AACnG,eAAO,MAAM,eAAe;;;;yBAE3B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpE,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,YAAa,SAAS,MAAM,EAAE,KAAG,MAAM,EACA,CAAA;AAEpE,eAAO,MAAM,iBAAiB,YAAa,SAAS,QAAQ,EAAE,KAAG,MAAM,EACyC,CAAA;AAEhH,eAAO,MAAM,eAAe,KAAK,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { duplicates, parseRegistry, text, word } from "./registry.js";
|
|
3
|
+
export const LINT_SEVERITIES = ["high", "medium", "low"];
|
|
4
|
+
const lintRuleSchema = v.strictObject({
|
|
5
|
+
id: word,
|
|
6
|
+
severity: v.picklist(LINT_SEVERITIES),
|
|
7
|
+
/** What the rule looks at; a violation's target names one of these. */
|
|
8
|
+
scope: v.picklist(["command", "group", "argument", "option", "flag"]),
|
|
9
|
+
summary: text,
|
|
10
|
+
});
|
|
11
|
+
export const defineLintRules = (input) => parseRegistry("lint rules", v.array(lintRuleSchema), input, (rules) => duplicates(rules.map((rule) => rule.id)).map((id) => `"${id}" is listed twice`));
|
|
12
|
+
/** Ids and severities follow the Azure CLI linter (`azdev linter`): a rule is named after what it finds. */
|
|
13
|
+
export const LINT_RULES = defineLintRules([
|
|
14
|
+
{
|
|
15
|
+
id: "unknown-verb",
|
|
16
|
+
severity: "high",
|
|
17
|
+
scope: "command",
|
|
18
|
+
summary: "a command's last word is a verb or view noun from the vocabulary; a top-level one may be a root word",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "unknown-resource",
|
|
22
|
+
severity: "medium",
|
|
23
|
+
scope: "group",
|
|
24
|
+
summary: "a group is a resource from the vocabulary (plural, or a registered singular) or a root word",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "flag-two-meanings",
|
|
28
|
+
severity: "high",
|
|
29
|
+
scope: "flag",
|
|
30
|
+
summary: "a flag takes the same kind of value in every command, and the one the vocabulary gives it",
|
|
31
|
+
},
|
|
32
|
+
{ id: "missing-command-help", severity: "high", scope: "command", summary: "every command has a summary" },
|
|
33
|
+
{
|
|
34
|
+
id: "command-help-too-long",
|
|
35
|
+
severity: "low",
|
|
36
|
+
scope: "command",
|
|
37
|
+
summary: "a summary is at most 80 characters",
|
|
38
|
+
},
|
|
39
|
+
{ id: "missing-argument-help", severity: "high", scope: "argument", summary: "every argument is described" },
|
|
40
|
+
{ id: "missing-option-help", severity: "high", scope: "option", summary: "every option is described" },
|
|
41
|
+
]);
|
|
42
|
+
/** `lint/baseline/<rule-id>.json`: today's violations of one rule, by target. It may only shrink. */
|
|
43
|
+
export const baselineSchema = v.array(text);
|
|
44
|
+
/** `lint/overrides.json`: permanent exceptions, each with its reason, counted against a budget. */
|
|
45
|
+
export const overridesSchema = v.array(v.strictObject({ rule: word, target: text, reason: v.pipe(text, v.minLength(10, "say why, in a sentence")) }));
|
|
46
|
+
/** What the schemas cannot say, so they stay convertible to JSON Schema: no entry twice. */
|
|
47
|
+
export const baselineProblems = (targets) => duplicates(targets).map((target) => `"${target}" is listed twice`);
|
|
48
|
+
export const overridesProblems = (entries) => duplicates(entries.map((entry) => `${entry.rule} ${entry.target}`)).map((both) => `"${both}" is listed twice`);
|
|
49
|
+
export const OVERRIDE_BUDGET = 10;
|
|
50
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/standards/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
/** pino's level names, so a record maps to OpenTelemetry's SeverityText by upper-casing it. */
|
|
3
|
+
export declare const LOG_SEVERITIES: readonly ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
4
|
+
/** One log record, OpenTelemetry's field names, one flat JSON line. */
|
|
5
|
+
export declare const logRecordSchema: v.StrictObjectSchema<{
|
|
6
|
+
readonly time: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time with a zone">]>;
|
|
7
|
+
readonly severity: v.PicklistSchema<readonly ["trace", "debug", "info", "warn", "error", "fatal"], undefined>;
|
|
8
|
+
readonly body: v.StringSchema<undefined>;
|
|
9
|
+
readonly runId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
10
|
+
/** From an MCP caller's `_meta.traceparent`, when it sent one. */
|
|
11
|
+
readonly traceId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "32 lower-case hex digits">]>, undefined>;
|
|
12
|
+
readonly command: v.StringSchema<undefined>;
|
|
13
|
+
readonly attributes: v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>;
|
|
14
|
+
readonly resource: v.StrictObjectSchema<{
|
|
15
|
+
readonly service: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
16
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "must not be empty">]>;
|
|
17
|
+
}, undefined>;
|
|
18
|
+
}, undefined>;
|
|
19
|
+
export type LogRecord = v.InferOutput<typeof logRecordSchema>;
|
|
20
|
+
export type LogSeverity = (typeof LOG_SEVERITIES)[number];
|
|
21
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/standards/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAI5B,+FAA+F;AAC/F,eAAO,MAAM,cAAc,YAAI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AAE3F,uEAAuE;AACvE,eAAO,MAAM,eAAe;;;;;IAK1B,kEAAkE;;;;;;;;aAKlE,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { isoTime } from "./output.js";
|
|
3
|
+
import { text } from "./registry.js";
|
|
4
|
+
/** pino's level names, so a record maps to OpenTelemetry's SeverityText by upper-casing it. */
|
|
5
|
+
export const LOG_SEVERITIES = ["trace", "debug", "info", "warn", "error", "fatal"];
|
|
6
|
+
/** One log record, OpenTelemetry's field names, one flat JSON line. */
|
|
7
|
+
export const logRecordSchema = v.strictObject({
|
|
8
|
+
time: isoTime,
|
|
9
|
+
severity: v.picklist(LOG_SEVERITIES),
|
|
10
|
+
body: v.string(),
|
|
11
|
+
runId: text,
|
|
12
|
+
/** From an MCP caller's `_meta.traceparent`, when it sent one. */
|
|
13
|
+
traceId: v.optional(v.pipe(v.string(), v.regex(/^[0-9a-f]{32}$/, "32 lower-case hex digits"))),
|
|
14
|
+
command: v.string(),
|
|
15
|
+
attributes: v.record(v.string(), v.unknown()),
|
|
16
|
+
resource: v.strictObject({ service: text, version: text }),
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/standards/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AAE3F,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,IAAI;IACX,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC9F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;CAC3D,CAAC,CAAA"}
|