@descent-vtt/spec-guard 0.11.0 → 0.12.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 +354 -3
- package/README.md +377 -22
- package/dist/cites.d.ts +192 -0
- package/dist/cites.d.ts.map +1 -0
- package/dist/cites.js +599 -0
- package/dist/cites.js.map +1 -0
- package/dist/cli.d.ts +14 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +315 -22
- package/dist/cli.js.map +1 -1
- package/dist/comments.d.ts +1 -1
- package/dist/comments.js +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -5
- package/dist/config.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +38 -14
- package/dist/engine.js.map +1 -1
- package/dist/glob.d.ts +128 -24
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +304 -61
- package/dist/glob.js.map +1 -1
- package/dist/impact.d.ts +179 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +360 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +16 -75
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +198 -370
- package/dist/mcp.js.map +1 -1
- package/dist/overlay.d.ts +39 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +133 -0
- package/dist/overlay.js.map +1 -0
- package/dist/parser.d.ts +41 -24
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +217 -160
- package/dist/parser.js.map +1 -1
- package/dist/prove.d.ts +46 -0
- package/dist/prove.d.ts.map +1 -0
- package/dist/prove.js +549 -0
- package/dist/prove.js.map +1 -0
- package/dist/query.d.ts +11 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +9 -3
- package/dist/query.js.map +1 -1
- package/dist/reporter.d.ts +139 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +593 -21
- package/dist/reporter.js.map +1 -1
- package/dist/rules.js +3 -3
- package/dist/rules.js.map +1 -1
- package/dist/runner.d.ts +24 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +84 -21
- package/dist/runner.js.map +1 -1
- package/dist/specs.d.ts +5 -1
- package/dist/specs.d.ts.map +1 -1
- package/dist/specs.js +5 -1
- package/dist/specs.js.map +1 -1
- package/dist/structure.d.ts.map +1 -1
- package/dist/structure.js +7 -6
- package/dist/structure.js.map +1 -1
- package/dist/types.d.ts +193 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vendor/spec-core/jsonrpc/index.d.ts +3 -0
- package/dist/vendor/spec-core/jsonrpc/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/index.js +2 -0
- package/dist/vendor/spec-core/jsonrpc/index.js.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.d.ts +158 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.d.ts.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.js +353 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.js.map +1 -0
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts +104 -0
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/frontmatter.js +459 -0
- package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -0
- package/dist/vendor/spec-core/markdown/headings.d.ts +46 -0
- package/dist/vendor/spec-core/markdown/headings.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/headings.js +199 -0
- package/dist/vendor/spec-core/markdown/headings.js.map +1 -0
- package/dist/vendor/spec-core/markdown/index.d.ts +6 -0
- package/dist/vendor/spec-core/markdown/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/index.js +4 -0
- package/dist/vendor/spec-core/markdown/index.js.map +1 -0
- package/dist/vendor/spec-core/markdown/layout.d.ts +40 -0
- package/dist/vendor/spec-core/markdown/layout.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/layout.js +28 -0
- package/dist/vendor/spec-core/markdown/layout.js.map +1 -0
- package/dist/vendor/spec-core/markdown/links.d.ts +23 -0
- package/dist/vendor/spec-core/markdown/links.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/links.js +364 -0
- package/dist/vendor/spec-core/markdown/links.js.map +1 -0
- package/dist/vendor/spec-core/markdown/lists.d.ts +23 -0
- package/dist/vendor/spec-core/markdown/lists.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/lists.js +127 -0
- package/dist/vendor/spec-core/markdown/lists.js.map +1 -0
- package/dist/vendor/spec-core/markdown/scan.d.ts +37 -0
- package/dist/vendor/spec-core/markdown/scan.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/scan.js +439 -0
- package/dist/vendor/spec-core/markdown/scan.js.map +1 -0
- package/dist/vendor/spec-core/markdown/syntax.d.ts +76 -0
- package/dist/vendor/spec-core/markdown/syntax.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/syntax.js +181 -0
- package/dist/vendor/spec-core/markdown/syntax.js.map +1 -0
- package/dist/vendor/spec-core/markdown/tables.d.ts +19 -0
- package/dist/vendor/spec-core/markdown/tables.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/tables.js +86 -0
- package/dist/vendor/spec-core/markdown/tables.js.map +1 -0
- package/dist/vendor/spec-core/markdown/types.d.ts +288 -0
- package/dist/vendor/spec-core/markdown/types.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/types.js +9 -0
- package/dist/vendor/spec-core/markdown/types.js.map +1 -0
- package/dist/vendor/spec-core/path/index.d.ts +2 -0
- package/dist/vendor/spec-core/path/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/path/index.js +2 -0
- package/dist/vendor/spec-core/path/index.js.map +1 -0
- package/dist/vendor/spec-core/path/posix.d.ts +84 -0
- package/dist/vendor/spec-core/path/posix.d.ts.map +1 -0
- package/dist/vendor/spec-core/path/posix.js +150 -0
- package/dist/vendor/spec-core/path/posix.js.map +1 -0
- package/dist/vendor/spec-core/pattern/automaton.d.ts +130 -0
- package/dist/vendor/spec-core/pattern/automaton.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/automaton.js +340 -0
- package/dist/vendor/spec-core/pattern/automaton.js.map +1 -0
- package/dist/vendor/spec-core/pattern/charset.d.ts +59 -0
- package/dist/vendor/spec-core/pattern/charset.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/charset.js +116 -0
- package/dist/vendor/spec-core/pattern/charset.js.map +1 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts +122 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/glob.js +481 -0
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -0
- package/dist/vendor/spec-core/pattern/index.d.ts +7 -0
- package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/index.js +4 -0
- package/dist/vendor/spec-core/pattern/index.js.map +1 -0
- package/dist/vendor/spec-core/pattern/regex.d.ts +68 -0
- package/dist/vendor/spec-core/pattern/regex.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/regex.js +813 -0
- package/dist/vendor/spec-core/pattern/regex.js.map +1 -0
- package/dist/vendor/spec-core/text/index.d.ts +3 -0
- package/dist/vendor/spec-core/text/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/index.js +2 -0
- package/dist/vendor/spec-core/text/index.js.map +1 -0
- package/dist/vendor/spec-core/text/lines.d.ts +73 -0
- package/dist/vendor/spec-core/text/lines.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/lines.js +156 -0
- package/dist/vendor/spec-core/text/lines.js.map +1 -0
- package/package.json +8 -1
- package/src/vendor/spec-core/LICENSE +21 -0
- package/src/vendor/spec-core/README.md +8 -0
package/dist/cites.d.ts
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `spec-guard cites`: the specs a codebase's comments cite, and whether each is
|
|
3
|
+
* still there and still in force. ADR-0017.
|
|
4
|
+
*
|
|
5
|
+
* A comment such as `// ADR-0011: the domain imports no infrastructure` is a
|
|
6
|
+
* claim about the codebase: that a decision exists, and governs this code.
|
|
7
|
+
* When the document is gone, or superseded, the comment sends the next reader
|
|
8
|
+
* to a decision that is not the one in force, and nothing notices - spec-graph
|
|
9
|
+
* reads only Markdown, and a run only the directives. This reads the other
|
|
10
|
+
* side: comment text, as ADR-0006's classifier finds it, for ids a project
|
|
11
|
+
* names.
|
|
12
|
+
*
|
|
13
|
+
* An id is found by a small scanner, never by a regular expression built from
|
|
14
|
+
* the template a project wrote: its literal text, a run of digits, and a word
|
|
15
|
+
* boundary on each side. The digits are a number, so `ADR-7`, `ADR-007` and a
|
|
16
|
+
* file called `0007-x.md` are one document.
|
|
17
|
+
*/
|
|
18
|
+
import { type Io } from './io.js';
|
|
19
|
+
import type { CiteFamily, CitesReport, SpecStatus } from './types.js';
|
|
20
|
+
/** Where the number goes, in an id template and in a file name. */
|
|
21
|
+
export declare const NUMBER = "{n}";
|
|
22
|
+
/** An id template, read: the text before the number, and the text after it. */
|
|
23
|
+
export interface IdTemplate {
|
|
24
|
+
prefix: string;
|
|
25
|
+
suffix: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Why an id template cannot be used, or null.
|
|
29
|
+
*
|
|
30
|
+
* The text around `{n}` is literal, and it has to be there: `{n}` alone would
|
|
31
|
+
* make every number in every comment a citation. It may not be a digit where
|
|
32
|
+
* it meets the number, or the two would run together - `A1{n}` would never
|
|
33
|
+
* know where `A1` ended.
|
|
34
|
+
*/
|
|
35
|
+
export declare function citeIdError(template: string): string | null;
|
|
36
|
+
/** An id template, read. Only ever given one `citeIdError` accepted. */
|
|
37
|
+
export declare function parseIdTemplate(template: string): IdTemplate;
|
|
38
|
+
/** A files template, read: the glob that finds the documents, and the name around the number. */
|
|
39
|
+
export interface FilesTemplate {
|
|
40
|
+
/** The template with `{n}` read as `*`, taking in a `*` just after it: every path that could be a document. */
|
|
41
|
+
glob: string;
|
|
42
|
+
/** The file name before the number, which is literal. */
|
|
43
|
+
before: string;
|
|
44
|
+
/** The file name after the number, a glob of one segment, or empty. */
|
|
45
|
+
after: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Why a files template cannot be used, or null.
|
|
49
|
+
*
|
|
50
|
+
* The number is read from a document's file name, so `{n}` has to be in the
|
|
51
|
+
* last segment, and what comes before it there has to be literal: that is
|
|
52
|
+
* what says where in `0007-ledger.md` or `rfc-12.md` the number starts.
|
|
53
|
+
*/
|
|
54
|
+
export declare function citeFilesError(template: string): string | null;
|
|
55
|
+
/** A files template, read. Only ever given one `citeFilesError` accepted. */
|
|
56
|
+
export declare function parseFilesTemplate(template: string): FilesTemplate;
|
|
57
|
+
/** A number as a comparable key: its digits without leading zeros, and `0` for none. */
|
|
58
|
+
export declare function numberKey(digits: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* The number a document's path gives it under a files template - its digits
|
|
61
|
+
* as the file name spells them - or null when the path is not one of the
|
|
62
|
+
* template's documents.
|
|
63
|
+
*
|
|
64
|
+
* The whole path is matched against the glob, and then the file name is read:
|
|
65
|
+
* the literal text before the number, a run of digits as long as it goes, and
|
|
66
|
+
* a rest that the text after the number must match exactly. So `{n}-*.md`
|
|
67
|
+
* reads `0007` from `0007-x.md`, and nothing from `0007x.md` or `x-0007.md`.
|
|
68
|
+
*/
|
|
69
|
+
export declare function documentNumber(template: string): (relativePath: string) => string | null;
|
|
70
|
+
/** One id found in text: which template, where, the number, and how it was written. */
|
|
71
|
+
export interface Citation {
|
|
72
|
+
/** Index of the template in the list the scanner was given. */
|
|
73
|
+
family: number;
|
|
74
|
+
/** Offset of the id's first character. */
|
|
75
|
+
start: number;
|
|
76
|
+
end: number;
|
|
77
|
+
/** The number, as `numberKey` writes it. */
|
|
78
|
+
number: string;
|
|
79
|
+
/** The id as written. */
|
|
80
|
+
written: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Every id in a text, in order of position; the ids of one template before
|
|
84
|
+
* another's where two begin at one place.
|
|
85
|
+
*
|
|
86
|
+
* For each template: its literal prefix, then a run of digits, then its
|
|
87
|
+
* suffix, with no letter, digit or underscore running into either end - so
|
|
88
|
+
* `XADR-1` and `ADR-12a` are not `ADR-{n}` citations, and `ADR-12.` is. The
|
|
89
|
+
* whole text is read, once per template; which ids lie in a comment is
|
|
90
|
+
* `inComments`'s question.
|
|
91
|
+
*/
|
|
92
|
+
export declare function scanCitations(text: string, templates: readonly IdTemplate[]): Citation[];
|
|
93
|
+
/**
|
|
94
|
+
* Whether an id is qualified by another owner, and so names that owner's
|
|
95
|
+
* document rather than one of this project's.
|
|
96
|
+
*
|
|
97
|
+
* `spec-core's ADR-0005`, `spec-graph ADR-0017`, `its ADR-0012` and
|
|
98
|
+
* `org/repo ADR-9` each cite a document in another repository, which only has
|
|
99
|
+
* the same number as one here by coincidence: read as this project's, it is a
|
|
100
|
+
* ghost when the number is not used here, and quietly the wrong document when
|
|
101
|
+
* it is. So the word just before an id - past one run of spaces - is read,
|
|
102
|
+
* and the id is another owner's when that word is a possessive (`'s`, `its`,
|
|
103
|
+
* `their`) or a name with a `-` or `/` inside it. `see ADR-7`, `per ADR-7`,
|
|
104
|
+
* `(ADR-7)`, `e.g. ADR-7` and `it's ADR-7` are this project's. What that
|
|
105
|
+
* costs is a hyphenated word used as an ordinary one, `re-read ADR-7`, which
|
|
106
|
+
* is read as a qualifier and not checked: a citation missed, rather than one
|
|
107
|
+
* reported that is not wrong.
|
|
108
|
+
*
|
|
109
|
+
* An id in a link is another owner's too: one just after a `/`, `#`, `=` or
|
|
110
|
+
* `?`, which is a path, an anchor or a query, or in a run of text holding
|
|
111
|
+
* `://`. `https://github.com/org/repo/blob/main/docs/adr/ADR-0042.md` names a
|
|
112
|
+
* document wherever that repository keeps it, and `docs/ADR-0099.html` a page
|
|
113
|
+
* built from one - neither is a document this template finds.
|
|
114
|
+
*/
|
|
115
|
+
export declare function qualified(text: string, start: number): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* The citations that lie wholly inside a comment. Both lists are in order of
|
|
118
|
+
* position, so one walk through each answers every question: the file is
|
|
119
|
+
* searched once for each template, rather than once per comment - which on a
|
|
120
|
+
* file of many comments and no citations would search to its end each time.
|
|
121
|
+
*/
|
|
122
|
+
export declare function inComments(citations: readonly Citation[], comments: ReadonlyArray<readonly [number, number]>): Citation[];
|
|
123
|
+
export declare function isStale(status: string | undefined): boolean;
|
|
124
|
+
/** A document of a family, as a citation needs to know it. */
|
|
125
|
+
export interface CitedDocument {
|
|
126
|
+
/** Root-relative path. */
|
|
127
|
+
file: string;
|
|
128
|
+
/** The number as its file name spells it: `0007`. */
|
|
129
|
+
spelled: string;
|
|
130
|
+
title?: string;
|
|
131
|
+
status?: SpecStatus;
|
|
132
|
+
}
|
|
133
|
+
/** A family, ready to look up: its templates, and its documents by number. */
|
|
134
|
+
export interface ResolvedFamily extends CiteFamily {
|
|
135
|
+
source: 'config' | 'derived';
|
|
136
|
+
template: IdTemplate;
|
|
137
|
+
documents: Map<string, CitedDocument[]>;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The documents a files template names, by number.
|
|
141
|
+
*
|
|
142
|
+
* Walked from the template's literal base, skipping what a run skips. The
|
|
143
|
+
* project's `exclude` is not applied: it says what no rule reads, and a
|
|
144
|
+
* document it leaves out of the rules still exists to be cited. A document
|
|
145
|
+
* that cannot be read is still a document, with no status.
|
|
146
|
+
*/
|
|
147
|
+
export declare function findDocuments(family: CiteFamily, root: string, io: Io, defaultSkips: boolean): Promise<Map<string, CitedDocument[]>>;
|
|
148
|
+
/**
|
|
149
|
+
* The families a project's specs imply, when it names none.
|
|
150
|
+
*
|
|
151
|
+
* A directory of spec files whose names begin with a number is a numbered
|
|
152
|
+
* series, and a series whose documents all title themselves with one id and
|
|
153
|
+
* that same number - `# ADR-0007: ...` in `0007-x.md` - says how it is cited.
|
|
154
|
+
* Anything short of that is not guessed at: a series whose titles disagree, or
|
|
155
|
+
* do not begin with an id, gets a note saying to configure `cites`.
|
|
156
|
+
*/
|
|
157
|
+
export declare function deriveFamilies(documents: ReadonlyArray<{
|
|
158
|
+
file: string;
|
|
159
|
+
title?: string;
|
|
160
|
+
}>): {
|
|
161
|
+
families: CiteFamily[];
|
|
162
|
+
notes: string[];
|
|
163
|
+
};
|
|
164
|
+
export interface CitesOptions {
|
|
165
|
+
/** Absolute root. */
|
|
166
|
+
root: string;
|
|
167
|
+
/** The spec globs: the files left out of the scan, and where families are derived from. */
|
|
168
|
+
patterns: readonly string[];
|
|
169
|
+
/** The families to look for; derived from the specs when absent. */
|
|
170
|
+
families?: readonly CiteFamily[];
|
|
171
|
+
/** Root-relative paths to read the comments of; the whole root when absent. */
|
|
172
|
+
paths?: readonly string[];
|
|
173
|
+
/** The project's exclusions, left out of the scan. */
|
|
174
|
+
exclude?: readonly string[];
|
|
175
|
+
/** Skip `.git`, `.hg`, `.svn` and `node_modules`, as a run does. */
|
|
176
|
+
defaultSkips?: boolean;
|
|
177
|
+
/** A stale citation is an error, and so is a file whose comments could not all be read. */
|
|
178
|
+
strict?: boolean;
|
|
179
|
+
io?: Io;
|
|
180
|
+
}
|
|
181
|
+
/** A configuration no answer can be trusted under: the report is not written, and the command exits 2. */
|
|
182
|
+
export declare class CitesError extends Error {
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Reads the comments of every source file in scope and reports each citation
|
|
186
|
+
* of a document that does not exist or is no longer in force.
|
|
187
|
+
*
|
|
188
|
+
* Throws `CitesError` when the answer could not be trusted: a family whose
|
|
189
|
+
* files match no document, which would make every citation of it a ghost.
|
|
190
|
+
*/
|
|
191
|
+
export declare function findCitations(options: CitesOptions): Promise<CitesReport>;
|
|
192
|
+
//# sourceMappingURL=cites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cites.d.ts","sourceRoot":"","sources":["../src/cites.ts"],"names":[],"mappings":"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"}
|