@wirecat/cli-base 0.27.0 → 0.27.1

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 CHANGED
@@ -328,6 +328,7 @@ extends:
328
328
  | `scripts/test-matrix.ts` | `cli-dev test-matrix --program dist/program.js --untested scripts/test-matrix-untested.ts --name max [--check]` |
329
329
 
330
330
  | — | `cli-dev lint --cli dist/bin.js` (or `--commands <file>`): the command tree against the standard |
331
+ | — | `cli-dev audit --cli <bin> --cli <bin> …`: several CLIs against the standard and against each other |
331
332
 
332
333
  `cli-dev lint` reads `<cli> commands --json`, refuses a document not in `commandsDocument`'s shape, and
333
334
  judges it by `LINT_RULES` and `VOCABULARY` from `/standards`. Known violations live in
@@ -343,6 +344,23 @@ keys, cli-base's envelope, error, log record and commands document schemas, and
343
344
  `log_attributes` (`logAttributesJsonSchema(allow)`) is the CLI's log allow-list instead: `log-attribute-key` fails a
344
345
  key that names message text, a token or a phone number.
345
346
 
347
+ `cli-dev audit` reads two or more commands documents (`--cli <bin>` or `--commands <file>`, repeated) and prints a
348
+ scorecard: per CLI and rule, what it found, what the baseline holds, what is overridden, what is new and what was
349
+ fixed; `--json` prints it as the list envelope. Every lint rule judges each CLI alone; `AUDIT_RULES` in `/standards`
350
+ compare them: `required-root` (`REQUIRED_ROOTS`: `commands`, `doctor`, `skill show|install`, `mcp`, `upgrade`),
351
+ `same-path-contract` (a path two CLIs of a parity group share has the same options, value names, output and summary;
352
+ a group covering the whole tree has the same paths), `same-flag-meaning`, `same-entity-schema` (from `--schemas
353
+ <cli>=<file>`) and `same-error-reason` (from `--reasons <cli>=<file>`, a JSON list of `defineReasons` entries). The two
354
+ last rules print `n/a` for a CLI that gave no such file. `PARITY_GROUPS` names who is compared where — `messengers`
355
+ (tg, max) over the whole tree, `all` over the shared roots — and each group's declared `differences`, each with a reason,
356
+ at most 10. Known findings live in `audit/baseline/<rule>.json` (`--baseline`), targets naming the CLIs
357
+ (`max+tg chats list --limit`, `tg: chats grab` for a lint violation); `--write-baseline` rewrites them. `--lint
358
+ <cli>=<dir>` judges that CLI's lint rules by its own `lint/` folder instead. A new finding fails the run — only one
359
+ naming `--for <cli>` when given — and a fixed one is reported, not failed. `AUDIT_BLOCKS` decides whether a new
360
+ cross-CLI divergence fails the run (`"new"`) or only shows (`"never"`); a new lint violation always fails. A document
361
+ from a cli-base before 0.26, with camelCase keys, is read too, and `key-casing` reports it. The weekly `Weekly CLI
362
+ audit` workflow runs it over the five latest published CLIs and rewrites the pinned issue labelled `cli-audit`.
363
+
346
364
  `--rules` names a module exporting `CHANGELOG` and `docsRules(root)`; `--program` one exporting
347
365
  `createProgram`; `--untested` one exporting `UNTESTED`. A TypeScript module loads on Node 24 as it is.
348
366
 
@@ -0,0 +1,64 @@
1
+ import type { CommandsDocument } from "../commands/document.js";
2
+ import { type AuditRule, type ParityGroup, type RequiredRoot } from "../standards/audit.js";
3
+ import { type ErrorReason } from "../standards/errors.js";
4
+ import { type Override } from "../standards/lint.js";
5
+ import type { Vocabulary } from "../standards/vocabulary.js";
6
+ export interface AuditInput {
7
+ document: CommandsDocument;
8
+ /** As the CLI printed it, for `key-casing`. */
9
+ raw: unknown;
10
+ schemas?: Readonly<Record<string, unknown>>;
11
+ reasons?: readonly ErrorReason[];
12
+ /** The CLI's own `lint/` baseline and overrides; its lint rules are then judged by them, not the audit's. */
13
+ lint?: {
14
+ baseline: Readonly<Record<string, readonly string[]>>;
15
+ overrides: readonly Override[];
16
+ budget: number;
17
+ };
18
+ }
19
+ export interface Finding {
20
+ rule: string;
21
+ clis: string[];
22
+ /** `<clis> <what>`: `max+tg chats list --limit`, `zm upgrade`, `tg: chats grab` for a lint violation. */
23
+ target: string;
24
+ message: string;
25
+ }
26
+ export interface ScoreRow {
27
+ cli: string;
28
+ rule: string;
29
+ /** False when the CLI gave no input the rule reads: no schemas, no reasons. Its counts are then 0, not a pass. */
30
+ measured: boolean;
31
+ found: number;
32
+ baseline: number;
33
+ overridden: number;
34
+ new: number;
35
+ fixed: number;
36
+ new_targets: string[];
37
+ }
38
+ export interface AuditOptions {
39
+ groups: readonly ParityGroup[];
40
+ roots: readonly RequiredRoot[];
41
+ vocabulary: Vocabulary;
42
+ /** `audit/baseline/<rule>.json`, by rule. */
43
+ baseline: Readonly<Record<string, readonly string[]>>;
44
+ blocks: "new" | "never";
45
+ /** Only new findings that name this CLI block: the one being released. */
46
+ only?: string;
47
+ }
48
+ export interface AuditResult {
49
+ findings: Finding[];
50
+ rows: ScoreRow[];
51
+ /** New findings that fail the run. */
52
+ blocking: Finding[];
53
+ /** What `--write-baseline` writes, by rule. */
54
+ nextBaseline: Record<string, string[]>;
55
+ problems: string[];
56
+ }
57
+ /** A document from cli-base before 0.26 prints camelCase keys; the audit reads both, `key-casing` still reports it. */
58
+ export declare const snakeKeys: (value: unknown) => unknown;
59
+ /** The CLIs a target names: `max+tg chats list` → max, tg; `tg: chats grab` → tg. */
60
+ export declare const clisOf: (target: string) => string[];
61
+ export declare const auditClis: (inputs: readonly AuditInput[], options: AuditOptions, rules?: readonly AuditRule[]) => AuditResult;
62
+ /** One line per CLI and rule that found something, then one total per CLI. */
63
+ export declare const scorecardTable: (rows: readonly ScoreRow[]) => string;
64
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/dev/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACxG,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAG5D,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,+CAA+C;IAC/C,GAAG,EAAE,OAAO,CAAA;IACZ,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,6GAA6G;IAC7G,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;QAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CACjH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,yGAAyG;IACzG,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,kHAAkH;IAClH,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;IAC9B,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,GAAG,OAAO,CAAA;IACvB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,IAAI,EAAE,QAAQ,EAAE,CAAA;IAChB,sCAAsC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAQD,uHAAuH;AACvH,eAAO,MAAM,SAAS,UAAW,OAAO,KAAG,OAM1C,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,MAAM,WAAY,MAAM,KAAG,MAAM,EAA+D,CAAA;AAiM7G,eAAO,MAAM,SAAS,WACZ,SAAS,UAAU,EAAE,WACpB,YAAY,UACd,SAAS,SAAS,EAAE,KAC1B,WAwHF,CAAA;AAOD,8EAA8E;AAC9E,eAAO,MAAM,cAAc,SAAU,SAAS,QAAQ,EAAE,KAAG,MAgB1D,CAAA"}
@@ -0,0 +1,304 @@
1
+ import { AUDIT_RULES } from "../standards/audit.js";
2
+ import { BASE_REASONS } from "../standards/errors.js";
3
+ import { LINT_RULES, OVERRIDE_BUDGET } from "../standards/lint.js";
4
+ import { judge, kindOf, lintCommands, longName, summaryOf, walk } from "./lint.js";
5
+ const byText = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
6
+ const toSnake = (key) => key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
7
+ const VALUE_KEYS = new Set(["default", "implies"]);
8
+ /** A document from cli-base before 0.26 prints camelCase keys; the audit reads both, `key-casing` still reports it. */
9
+ export const snakeKeys = (value) => {
10
+ if (Array.isArray(value))
11
+ return value.map(snakeKeys);
12
+ if (typeof value !== "object" || value === null)
13
+ return value;
14
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [toSnake(key), VALUE_KEYS.has(key) ? item : snakeKeys(item)]));
15
+ };
16
+ /** The CLIs a target names: `max+tg chats list` → max, tg; `tg: chats grab` → tg. */
17
+ export const clisOf = (target) => (target.split(" ")[0] ?? "").replace(/:$/, "").split("+");
18
+ const named = (clis) => [...clis].sort(byText).join("+");
19
+ const handwritten = (document) => new Map(walk(document.commands)
20
+ .filter((command) => command.origin === "handwritten")
21
+ .map((command) => [command.path.join(" "), command]));
22
+ const requiredRoots = (inputs, roots) => inputs.flatMap(({ document }) => {
23
+ const paths = new Set(walk(document.commands).map((command) => command.path.join(" ")));
24
+ return roots
25
+ .filter((root) => !paths.has(root.path.join(" ")))
26
+ .map((root) => ({
27
+ rule: "required-root",
28
+ clis: [document.cli],
29
+ target: `${document.cli} ${root.path.join(" ")}`,
30
+ message: `no "${root.path.join(" ")}": ${root.meaning}`,
31
+ }));
32
+ });
33
+ const describe = (values) => [...values].map(([cli, value]) => `${cli}: ${value}`).join(", ");
34
+ const optionKinds = (options) => new Map(options.map((option) => [longName(option.flags), kindOf(option)]));
35
+ const shownKind = (kind) => (kind === undefined ? "absent" : kind === "switch" ? kind : `<${kind}>`);
36
+ const samePathContract = (inputs, groups) => {
37
+ const trees = new Map(inputs.map(({ document }) => [document.cli, handwritten(document)]));
38
+ const paths = [...new Set([...trees.values()].flatMap((tree) => [...tree.keys()]))].sort(byText);
39
+ const found = [];
40
+ for (const path of paths) {
41
+ const root = path.split(" ")[0] ?? "";
42
+ const covering = groups.filter((group) => group.covers === "tree" || group.covers.includes(root));
43
+ for (const group of covering.filter((one) => one.covers === "tree")) {
44
+ const present = group.members.filter((cli) => trees.has(cli));
45
+ const having = present.filter((cli) => trees.get(cli)?.has(path));
46
+ if (present.length >= 2 && having.length < present.length)
47
+ found.push({
48
+ rule: "same-path-contract",
49
+ clis: [...present].sort(byText),
50
+ target: `${named(present)} ${path}: presence`,
51
+ message: `only in ${having.join(", ")}`,
52
+ });
53
+ }
54
+ const having = [...new Set(covering.flatMap((group) => group.members))]
55
+ .filter((cli) => trees.get(cli)?.has(path))
56
+ .sort(byText);
57
+ if (having.length < 2)
58
+ continue;
59
+ const commands = new Map(having.map((cli) => [cli, trees.get(cli)?.get(path)]));
60
+ const push = (what, values) => {
61
+ if (new Set(values.values()).size > 1)
62
+ found.push({
63
+ rule: "same-path-contract",
64
+ clis: having,
65
+ target: `${named(having)} ${path}${what}`,
66
+ message: describe(values),
67
+ });
68
+ };
69
+ const kinds = new Map([...commands].map(([cli, command]) => [cli, optionKinds(command.options)]));
70
+ const flags = [...new Set([...kinds.values()].flatMap((one) => [...one.keys()]))].sort(byText);
71
+ for (const flag of flags)
72
+ push(` ${flag}`, new Map([...kinds].map(([cli, one]) => [cli, shownKind(one.get(flag))])));
73
+ push(": output", new Map([...commands].map(([cli, command]) => [
74
+ cli,
75
+ command.output ? [command.output.entity, command.output.view].filter(Boolean).join("/") : "none",
76
+ ])));
77
+ const own = (cli, text) => text.replace(new RegExp(`\\b${cli}\\b`, "g"), "<cli>");
78
+ push(": summary", new Map([...commands].map(([cli, command]) => [cli, JSON.stringify(own(cli, summaryOf(command)))])));
79
+ }
80
+ return found;
81
+ };
82
+ const sameFlagMeaning = (inputs) => {
83
+ const uses = new Map();
84
+ for (const { document } of inputs) {
85
+ const options = [
86
+ ...document.global_options,
87
+ ...walk(document.commands)
88
+ .filter((command) => command.origin === "handwritten")
89
+ .flatMap((command) => command.options),
90
+ ];
91
+ for (const option of options) {
92
+ const name = longName(option.flags);
93
+ if (!name.startsWith("--"))
94
+ continue;
95
+ const byCli = uses.get(name) ?? new Map();
96
+ byCli.set(document.cli, (byCli.get(document.cli) ?? new Set()).add(shownKind(kindOf(option))));
97
+ uses.set(name, byCli);
98
+ }
99
+ }
100
+ return [...uses]
101
+ .sort(([a], [b]) => byText(a, b))
102
+ .flatMap(([flag, byCli]) => {
103
+ const signatures = new Map([...byCli].map(([cli, kinds]) => [cli, [...kinds].sort(byText).join(" | ")]));
104
+ if (byCli.size < 2 || new Set(signatures.values()).size < 2)
105
+ return [];
106
+ const clis = [...byCli.keys()].sort(byText);
107
+ return [{ rule: "same-flag-meaning", clis, target: `${named(clis)} ${flag}`, message: describe(signatures) }];
108
+ });
109
+ };
110
+ const canonical = (value) => JSON.stringify(value, (_, item) => typeof item === "object" && item !== null && !Array.isArray(item)
111
+ ? Object.fromEntries(Object.entries(item).sort(([a], [b]) => byText(a, b)))
112
+ : item);
113
+ const sameEntitySchema = (inputs) => {
114
+ const schemas = new Map();
115
+ for (const { document, schemas: own } of inputs) {
116
+ if (!own)
117
+ continue;
118
+ const entities = new Set(walk(document.commands).flatMap((command) => [command.output?.entity, command.query?.entity].filter((one) => one !== undefined)));
119
+ for (const entity of entities)
120
+ if (own[entity] !== undefined)
121
+ schemas.set(entity, (schemas.get(entity) ?? new Map()).set(document.cli, canonical(own[entity])));
122
+ }
123
+ return [...schemas]
124
+ .sort(([a], [b]) => byText(a, b))
125
+ .flatMap(([entity, byCli]) => {
126
+ if (byCli.size < 2 || new Set(byCli.values()).size < 2)
127
+ return [];
128
+ const clis = [...byCli.keys()].sort(byText);
129
+ const groups = [...new Set(byCli.values())].map((schema) => [...byCli].filter(([, one]) => one === schema).map(([cli]) => cli));
130
+ return [
131
+ {
132
+ rule: "same-entity-schema",
133
+ clis,
134
+ target: `${named(clis)} entity ${entity}`,
135
+ message: `${groups.length} different schemas: ${groups.map((one) => one.join(", ")).join(" / ")}`,
136
+ },
137
+ ];
138
+ });
139
+ };
140
+ const BASE = "cli-base";
141
+ const sameErrorReason = (inputs) => {
142
+ const owned = [
143
+ ...BASE_REASONS.map((reason) => ({ owner: BASE, reason })),
144
+ ...inputs.flatMap(({ document, reasons }) => (reasons ?? []).map((reason) => ({ owner: document.cli, reason }))),
145
+ ];
146
+ const found = [];
147
+ const push = (clis, what, message) => found.push({ rule: "same-error-reason", clis, target: `${named(clis)} ${what}`, message });
148
+ const by = (key) => {
149
+ const groups = new Map();
150
+ for (const entry of owned)
151
+ groups.set(key(entry), [...(groups.get(key(entry)) ?? []), entry]);
152
+ return [...groups].sort(([a], [b]) => byText(a, b));
153
+ };
154
+ for (const [, entries] of by(({ reason }) => `${reason.code} ${reason.message.trim().toLowerCase()}`)) {
155
+ const ids = [...new Set(entries.map(({ reason }) => reason.reason))].sort(byText);
156
+ const clis = [...new Set(entries.map(({ owner }) => owner).filter((owner) => owner !== BASE))].sort(byText);
157
+ if (ids.length > 1 && clis.length > 0)
158
+ push(clis, `reason ${ids.join("=")}`, `one failure under ${ids.length} names: "${entries[0]?.reason.message}"`);
159
+ }
160
+ for (const [id, entries] of by(({ reason }) => reason.reason)) {
161
+ const codes = new Map(entries.map(({ owner, reason }) => [owner, reason.code]));
162
+ const clis = [...codes.keys()].filter((owner) => owner !== BASE).sort(byText);
163
+ if (new Set(codes.values()).size > 1 && clis.length > 0)
164
+ push(clis, `reason ${id}: code`, describe(codes));
165
+ }
166
+ return found;
167
+ };
168
+ const CROSS = {
169
+ "required-root": (inputs, options) => requiredRoots(inputs, options.roots),
170
+ "same-path-contract": (inputs, options) => samePathContract(inputs, options.groups),
171
+ "same-flag-meaning": (inputs) => sameFlagMeaning(inputs),
172
+ "same-entity-schema": (inputs) => sameEntitySchema(inputs),
173
+ "same-error-reason": (inputs) => sameErrorReason(inputs),
174
+ };
175
+ const measuredBy = {
176
+ "same-entity-schema": (input) => input.schemas !== undefined,
177
+ "same-error-reason": (input) => input.reasons !== undefined,
178
+ };
179
+ export const auditClis = (inputs, options, rules = AUDIT_RULES) => {
180
+ const problems = [];
181
+ const clis = inputs.map(({ document }) => document.cli);
182
+ for (const cli of new Set(clis.filter((one, index) => clis.indexOf(one) !== index)))
183
+ problems.push(`${cli} is given twice`);
184
+ const lintIds = LINT_RULES.map((rule) => rule.id);
185
+ const known = new Set([...lintIds, ...rules.map((rule) => rule.id)]);
186
+ for (const rule of Object.keys(options.baseline))
187
+ if (!known.has(rule))
188
+ problems.push(`no lint or audit rule "${rule}" (named in the baseline)`);
189
+ for (const group of options.groups)
190
+ for (const entry of group.differences)
191
+ if (!known.has(entry.rule))
192
+ problems.push(`no audit rule "${entry.rule}" (a difference in ${group.name})`);
193
+ const lint = new Map(inputs.map((input) => [
194
+ input.document.cli,
195
+ lintCommands(input.document, options.vocabulary, LINT_RULES, { raw: input.raw, schemas: input.schemas }),
196
+ ]));
197
+ const findings = [
198
+ ...inputs.flatMap(({ document }) => (lint.get(document.cli) ?? []).map((violation) => ({
199
+ rule: violation.rule,
200
+ clis: [document.cli],
201
+ target: `${document.cli}: ${violation.target}`,
202
+ message: violation.message,
203
+ }))),
204
+ ...rules.flatMap((rule) => {
205
+ const check = CROSS[rule.id];
206
+ if (!check)
207
+ throw new Error(`audit rule "${rule.id}" has no check`);
208
+ return check(inputs, options);
209
+ }),
210
+ ];
211
+ const declared = new Map(options.groups.flatMap((group) => group.differences.map((entry) => [`${entry.rule} ${entry.target}`, group.name])));
212
+ const found = new Set(findings.map((finding) => `${finding.rule} ${finding.target}`));
213
+ for (const [key, group] of declared)
214
+ if (!found.has(key))
215
+ problems.push(`stale difference in ${group}, no such divergence — remove it: ${key}`);
216
+ for (const group of options.groups)
217
+ if (group.differences.length > OVERRIDE_BUDGET)
218
+ problems.push(`${group.name} declares ${group.differences.length} differences; the budget is ${OVERRIDE_BUDGET}`);
219
+ const baselined = new Set(Object.entries(options.baseline).flatMap(([rule, targets]) => targets.map((target) => `${rule} ${target}`)));
220
+ const ownLint = (cli, rule) => lintIds.includes(rule) ? inputs.find((input) => input.document.cli === cli)?.lint : undefined;
221
+ const rows = [];
222
+ const blocking = [];
223
+ for (const input of inputs) {
224
+ const cli = input.document.cli;
225
+ for (const rule of [...lintIds, ...rules.map((one) => one.id)]) {
226
+ const mine = findings.filter((finding) => finding.rule === rule && finding.clis.includes(cli));
227
+ const own = ownLint(cli, rule);
228
+ let row;
229
+ if (own) {
230
+ const violations = (lint.get(cli) ?? []).filter((violation) => violation.rule === rule);
231
+ const verdict = judge(violations, { [rule]: own.baseline[rule] ?? [] }, own.overrides, own.budget);
232
+ row = {
233
+ cli,
234
+ rule,
235
+ measured: true,
236
+ found: violations.length,
237
+ baseline: verdict.baselined,
238
+ overridden: verdict.overridden,
239
+ new: verdict.fresh.length,
240
+ fixed: verdict.stale.filter((entry) => entry.in === "baseline").length,
241
+ new_targets: verdict.fresh.map((violation) => `${cli}: ${violation.target}`),
242
+ };
243
+ blocking.push(...mine.filter((finding) => row.new_targets.includes(finding.target)));
244
+ }
245
+ else {
246
+ const open = mine.filter((finding) => !declared.has(`${rule} ${finding.target}`));
247
+ const fresh = open.filter((finding) => !baselined.has(`${rule} ${finding.target}`));
248
+ const here = new Set(mine.map((finding) => finding.target));
249
+ row = {
250
+ cli,
251
+ rule,
252
+ measured: measuredBy[rule]?.(input) ?? true,
253
+ found: mine.length,
254
+ baseline: open.length - fresh.length,
255
+ overridden: mine.length - open.length,
256
+ new: fresh.length,
257
+ fixed: (options.baseline[rule] ?? []).filter((target) => clisOf(target).includes(cli) && (!here.has(target) || declared.has(`${rule} ${target}`))).length,
258
+ new_targets: fresh.map((finding) => finding.target),
259
+ };
260
+ const blocks = lintIds.includes(rule) || options.blocks === "new";
261
+ if (blocks)
262
+ blocking.push(...fresh);
263
+ }
264
+ rows.push(row);
265
+ }
266
+ }
267
+ const selfJudged = new Set(inputs.filter((input) => input.lint).map((input) => input.document.cli));
268
+ const nextBaseline = Object.fromEntries([...lintIds, ...rules.map((rule) => rule.id)].map((rule) => {
269
+ const kept = (options.baseline[rule] ?? []).filter((target) => !clisOf(target).some((cli) => clis.includes(cli)));
270
+ const now = findings
271
+ .filter((finding) => finding.rule === rule && !declared.has(`${rule} ${finding.target}`))
272
+ .filter((finding) => !(lintIds.includes(rule) && selfJudged.has(finding.clis[0] ?? "")))
273
+ .map((finding) => finding.target);
274
+ return [rule, [...new Set([...kept, ...now])].sort(byText)];
275
+ }));
276
+ const unique = new Map(blocking.map((finding) => [`${finding.rule} ${finding.target}`, finding]));
277
+ return {
278
+ findings,
279
+ rows,
280
+ blocking: [...unique.values()].filter((finding) => options.only === undefined || finding.clis.includes(options.only)),
281
+ nextBaseline,
282
+ problems,
283
+ };
284
+ };
285
+ const pad = (cells, widths) => cells
286
+ .map((cell, index) => (index < 2 ? cell.padEnd(widths[index] ?? 0) : cell.padStart(widths[index] ?? 0)))
287
+ .join(" ");
288
+ /** One line per CLI and rule that found something, then one total per CLI. */
289
+ export const scorecardTable = (rows) => {
290
+ const header = ["cli", "rule", "found", "baseline", "overridden", "new", "fixed"];
291
+ const cells = (row) => row.measured
292
+ ? [row.cli, row.rule, ...[row.found, row.baseline, row.overridden, row.new, row.fixed].map(String)]
293
+ : [row.cli, row.rule, "n/a", "n/a", "n/a", "n/a", "n/a"];
294
+ const shown = rows.filter((row) => !row.measured || row.found > 0 || row.fixed > 0);
295
+ const totals = [...new Set(rows.map((row) => row.cli))].map((cli) => {
296
+ const mine = rows.filter((row) => row.cli === cli && row.measured);
297
+ const sum = (key) => String(mine.reduce((total, row) => total + row[key], 0));
298
+ return [cli, "total", sum("found"), sum("baseline"), sum("overridden"), sum("new"), sum("fixed")];
299
+ });
300
+ const lines = [header, ...shown.map(cells), ...totals];
301
+ const widths = header.map((_, index) => Math.max(...lines.map((line) => line[index]?.length ?? 0)));
302
+ return lines.map((line) => pad(line, widths).trimEnd()).join("\n");
303
+ };
304
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/dev/audit.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type CommandsDocument } from "../commands/document.js";
2
+ import type { CommandInfo, OptionInfo } from "../commands/index.js";
2
3
  import { type LintRule, type Override } from "../standards/lint.js";
3
4
  import type { Vocabulary } from "../standards/vocabulary.js";
4
5
  export interface Violation {
@@ -7,6 +8,11 @@ export interface Violation {
7
8
  target: string;
8
9
  message: string;
9
10
  }
11
+ export declare const walk: (commands: readonly CommandInfo[]) => CommandInfo[];
12
+ export declare const longName: (flags: string) => string;
13
+ /** A flag's kind of value: its value name, or `switch`. Two kinds under one name are two meanings. */
14
+ export declare const kindOf: (option: OptionInfo) => string;
15
+ export declare const summaryOf: (command: CommandInfo) => string;
10
16
  export interface LintContext {
11
17
  /** The commands document as the CLI printed it; parsing drops keys it does not know, so casing is checked here. */
12
18
  raw?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/dev/lint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAA8B,MAAM,yBAAyB,CAAA;AAK3F,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAI/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,gHAAgH;IAChH,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AA0BD,MAAM,WAAW,WAAW;IAC1B,mHAAmH;IACnH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC5C;AAOD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAOnD,CAAA;AAwCF,sGAAsG;AACtG,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAM,EAM/C,CAAA;AAoSH,eAAO,MAAM,WAAW,QAAO,MAAM,EAAyB,CAAA;AAE9D,kHAAkH;AAClH,eAAO,MAAM,YAAY,aACb,gBAAgB,cACd,UAAU,UACf,SAAS,QAAQ,EAAE,YACjB,WAAW,KACnB,SAAS,EAUX,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,qGAAqG;IACrG,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAAA;KAAE,EAAE,CAAA;IACvE,yEAAyE;IACzE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,KAAK,eACJ,SAAS,SAAS,EAAE,YACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,aAC1C,SAAS,QAAQ,EAAE,UACtB,MAAM,UACP,SAAS,QAAQ,EAAE,KACzB,SA4BF,CAAA;AAED,+GAA+G;AAC/G,eAAO,MAAM,UAAU,eACT,SAAS,SAAS,EAAE,aACrB,SAAS,QAAQ,EAAE,UACvB,SAAS,QAAQ,EAAE,KACzB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWzB,CAAA"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/dev/lint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAA8B,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAInE,OAAO,EAAc,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAI/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,gHAAgH;IAChH,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAWD,eAAO,MAAM,IAAI,aAAc,SAAS,WAAW,EAAE,KAAG,WAAW,EACV,CAAA;AAEzD,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,MAA8E,CAAA;AAEvH,sGAAsG;AACtG,eAAO,MAAM,MAAM,WAAY,UAAU,KAAG,MAG3C,CAAA;AAED,eAAO,MAAM,SAAS,YAAa,WAAW,KAAG,MACqB,CAAA;AAItE,MAAM,WAAW,WAAW;IAC1B,mHAAmH;IACnH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC5C;AAOD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAOnD,CAAA;AAwCF,sGAAsG;AACtG,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAM,EAM/C,CAAA;AAoSH,eAAO,MAAM,WAAW,QAAO,MAAM,EAAyB,CAAA;AAE9D,kHAAkH;AAClH,eAAO,MAAM,YAAY,aACb,gBAAgB,cACd,UAAU,UACf,SAAS,QAAQ,EAAE,YACjB,WAAW,KACnB,SAAS,EAUX,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,qGAAqG;IACrG,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAAA;KAAE,EAAE,CAAA;IACvE,yEAAyE;IACzE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,KAAK,eACJ,SAAS,SAAS,EAAE,YACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,aAC1C,SAAS,QAAQ,EAAE,UACtB,MAAM,UACP,SAAS,QAAQ,EAAE,KACzB,SA4BF,CAAA;AAED,+GAA+G;AAC/G,eAAO,MAAM,UAAU,eACT,SAAS,SAAS,EAAE,aACrB,SAAS,QAAQ,EAAE,UACvB,SAAS,QAAQ,EAAE,KACzB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWzB,CAAA"}
package/dist/dev/lint.js CHANGED
@@ -14,15 +14,15 @@ const EXAMPLES_MAX = 3;
14
14
  const SEARCH_ROOT = "search";
15
15
  const SEARCH_EVERYTHING = "all";
16
16
  const byText = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
17
- const walk = (commands) => commands.flatMap((one) => [one, ...walk(one.commands)]);
18
- const longName = (flags) => flags.split(/[ ,|]+/).find((part) => part.startsWith("--")) ?? flags;
17
+ export const walk = (commands) => commands.flatMap((one) => [one, ...walk(one.commands)]);
18
+ export const longName = (flags) => flags.split(/[ ,|]+/).find((part) => part.startsWith("--")) ?? flags;
19
19
  /** A flag's kind of value: its value name, or `switch`. Two kinds under one name are two meanings. */
20
- const kindOf = (option) => {
20
+ export const kindOf = (option) => {
21
21
  if (!option.takes_value)
22
22
  return "switch";
23
23
  return option.flags.match(/[<[]([^>\]]+)[>\]]/)?.[1]?.toLowerCase() ?? "value";
24
24
  };
25
- const summaryOf = (command) => (command.summary ?? command.description.split("\n")[0] ?? "").trim();
25
+ export const summaryOf = (command) => (command.summary ?? command.description.split("\n")[0] ?? "").trim();
26
26
  const label = (command) => command.path.join(" ");
27
27
  /** The `--schemas` entry holding the CLI's log allow-list; its keys are camelCase, so `key-casing` skips it. */
28
28
  const LOG_ATTRIBUTES = "log_attributes";
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/dev/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/dev/lint.ts"],"names":[],"mappings":"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"}