@descent-vtt/spec-guard 0.10.3 → 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 +410 -0
- package/README.md +385 -27
- 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 +51 -2
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +353 -57
- package/dist/comments.js.map +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/imports.d.ts.map +1 -1
- package/dist/imports.js +5 -58
- package/dist/imports.js.map +1 -1
- 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/glob.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Glob matching and directory walking.
|
|
3
3
|
*
|
|
4
4
|
* Windows shells do not expand globs, so `spec-guard "docs/**\/*.md"` must
|
|
5
5
|
* behave identically on every platform. spec-guard therefore always expands
|
|
6
6
|
* patterns itself instead of trusting the shell.
|
|
7
|
+
*
|
|
8
|
+
* Matching is spec-core's, copied into src/vendor/spec-core: one automaton that
|
|
9
|
+
* keeps a set of live states and so cannot backtrack, in three named dialects.
|
|
10
|
+
* Each kind of pattern here is one of them, read case-sensitively on every host.
|
|
11
|
+
* `glob=` is `ripgrep`, `exclude=`, `module=` and a layer are `gitignore`, and
|
|
12
|
+
* a pattern matched against a whole path from where it starts - `dirs=`, a
|
|
13
|
+
* required entry's name - is `path`. What is walked, and what the walk skips,
|
|
14
|
+
* stays here. ADR-0015.
|
|
7
15
|
*/
|
|
8
16
|
import path from 'node:path';
|
|
9
17
|
import { nodeIo } from './io.js';
|
|
10
18
|
import { DEFAULT_SCOPE } from './scope.js';
|
|
19
|
+
import { globWitness, parseGlob } from './vendor/spec-core/pattern/index.js';
|
|
11
20
|
const MAGIC_RE = /[*?[\]{}]/;
|
|
12
21
|
/** True when the pattern contains glob metacharacters. */
|
|
13
22
|
export function isGlob(pattern) {
|
|
@@ -25,6 +34,13 @@ const REGEXP_SPECIALS = new Set(['.', '+', '^', '$', '(', ')', '|']);
|
|
|
25
34
|
* Converts a glob to an anchored RegExp.
|
|
26
35
|
* Supports `*`, `**`, `?`, `[...]` and `{a,b}` - the subset every developer
|
|
27
36
|
* already knows from .gitignore and ripgrep.
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Nothing in spec-guard matches with this any more: a glob is read
|
|
39
|
+
* by spec-core's automaton, which cannot backtrack (ADR-0015). This compiled
|
|
40
|
+
* `*-*-*-*-*-*x` to a pattern that took 28 seconds to fail a 121-character
|
|
41
|
+
* name, read `**` inside a segment as crossing directories, and took an unclosed
|
|
42
|
+
* `[` or `{` as a literal. It stays for callers of the API, and the tests keep
|
|
43
|
+
* it as the oracle for everything the two readings agree on.
|
|
28
44
|
*/
|
|
29
45
|
export function globToRegExp(pattern, options = {}) {
|
|
30
46
|
let source = '';
|
|
@@ -89,36 +105,171 @@ export function globToRegExp(pattern, options = {}) {
|
|
|
89
105
|
}
|
|
90
106
|
/**
|
|
91
107
|
* An include glob in the one form both engines are given: forward slashes, no
|
|
92
|
-
* leading `./`, and a trailing slash read as everything
|
|
108
|
+
* surrounding space, no leading `./`, and a trailing slash read as everything
|
|
109
|
+
* under the directory.
|
|
93
110
|
*
|
|
94
111
|
* ripgrep used to be handed the glob as written, and matched nothing for
|
|
95
|
-
* `./src/*.ts` or `src/` while the scanner matched the files. ADR-0014.
|
|
112
|
+
* `./src/*.ts` or `src/` while the scanner matched the files. ADR-0014. The
|
|
113
|
+
* space is trimmed because spec-core trims it, and ripgrep would have read it
|
|
114
|
+
* as part of a name.
|
|
96
115
|
*/
|
|
97
116
|
export function normalizeGlob(pattern) {
|
|
98
|
-
const normalized = toPosix(pattern).replace(/^\.\//, '');
|
|
117
|
+
const normalized = toPosix(pattern.trim()).replace(/^\.\//, '');
|
|
99
118
|
return normalized.endsWith('/') ? `${normalized}**` : normalized;
|
|
100
119
|
}
|
|
101
120
|
/**
|
|
102
121
|
* An `exclude` pattern in the one form both engines are given: forward slashes,
|
|
103
|
-
* no leading `./` and no trailing slash. A leading `/`
|
|
104
|
-
* something: see `createExcludeMatcher`.
|
|
122
|
+
* no surrounding space, no leading `./` and no trailing slash. A leading `/`
|
|
123
|
+
* stays, because it means something: see `createExcludeMatcher`.
|
|
105
124
|
*
|
|
106
125
|
* ripgrep used to be handed the pattern as written, and read three shapes
|
|
107
126
|
* differently from the scanner. `./build` and `src\build` excluded nothing, and
|
|
108
127
|
* `build/` did not exclude a file named `build`. ADR-0014.
|
|
109
128
|
*/
|
|
110
129
|
export function normalizeExclude(pattern) {
|
|
111
|
-
return toPosix(pattern).replace(/^\.\//, '').replace(/\/+$/, '');
|
|
130
|
+
return toPosix(pattern.trim()).replace(/^\.\//, '').replace(/\/+$/, '');
|
|
131
|
+
}
|
|
132
|
+
/* --------------------------------------------------------------- readings */
|
|
133
|
+
// Case-sensitive, every one: the family's rule for paths, since git's are and a
|
|
134
|
+
// result must not depend on the host it ran on (spec-core ADR-0005).
|
|
135
|
+
const RIPGREP = { dialect: 'ripgrep', caseSensitive: true };
|
|
136
|
+
const GITIGNORE = { dialect: 'gitignore', caseSensitive: true };
|
|
137
|
+
// A pattern with no glob syntax names exactly one path, never a directory and
|
|
138
|
+
// what is beneath it: `dirs="packages"` is that directory, and `README.md` is
|
|
139
|
+
// that file.
|
|
140
|
+
const WHOLE = { dialect: 'path', caseSensitive: true, literal: 'file' };
|
|
141
|
+
/**
|
|
142
|
+
* An include glob, as `glob=` means it.
|
|
143
|
+
*
|
|
144
|
+
* A leading `/` anchors it at the root, as ripgrep reads `-g /src/*.ts` and as
|
|
145
|
+
* `exclude` reads `/build`. spec-core's ripgrep dialect reads it as the root of
|
|
146
|
+
* the filesystem, which no path relative to the root is under, so the slash is
|
|
147
|
+
* dropped and the rest read as a whole path. Otherwise a pattern that is one
|
|
148
|
+
* segment in every alternative is a file name at any depth, and so decided by
|
|
149
|
+
* a path's last segment alone.
|
|
150
|
+
*/
|
|
151
|
+
function readInclude(pattern) {
|
|
152
|
+
const normalized = normalizeGlob(pattern);
|
|
153
|
+
// The first run of slashes, which a pattern that starts with one starts with.
|
|
154
|
+
if (normalized.startsWith('/'))
|
|
155
|
+
return { parsed: parseGlob(normalized.replace(/\/+/, ''), WHOLE), shape: 'whole' };
|
|
156
|
+
const parsed = parseGlob(normalized, RIPGREP);
|
|
157
|
+
return { parsed, shape: parsed.ok && oneSegment(normalized) ? 'last' : 'whole' };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* An exclusion, a module or a layer, as `.gitignore` reads a line: one that is
|
|
161
|
+
* one segment in every alternative, and not anchored by a leading `/`, matches
|
|
162
|
+
* a path when it matches any one of the path's segments.
|
|
163
|
+
*/
|
|
164
|
+
function readExclude(pattern) {
|
|
165
|
+
const normalized = normalizeExclude(pattern);
|
|
166
|
+
const parsed = parseGlob(normalized, GITIGNORE);
|
|
167
|
+
const floating = parsed.ok && !normalized.startsWith('/') && oneSegment(normalized);
|
|
168
|
+
return { parsed, shape: floating ? 'any' : 'whole' };
|
|
169
|
+
}
|
|
170
|
+
/** A pattern matched against a whole path from where it starts, with `\` a separator as it is everywhere here. */
|
|
171
|
+
function readWhole(pattern) {
|
|
172
|
+
return { parsed: parseGlob(toPosix(pattern), WHOLE), shape: 'whole' };
|
|
173
|
+
}
|
|
174
|
+
/** What of a path decides whether a glob or an exclusion matches it. */
|
|
175
|
+
export function patternShape(pattern, kind) {
|
|
176
|
+
return (kind === 'include' ? readInclude(pattern) : readExclude(pattern)).shape;
|
|
177
|
+
}
|
|
178
|
+
/** A pattern's segments, as spec-core counts them: an empty or `.` segment is none. */
|
|
179
|
+
function segmentsOf(pattern) {
|
|
180
|
+
return pattern.split('/').filter((segment) => segment !== '' && segment !== '.');
|
|
181
|
+
}
|
|
182
|
+
/** Whether every alternative of a pattern spec-core accepted is one segment. */
|
|
183
|
+
function oneSegment(pattern) {
|
|
184
|
+
return expandBraces(lex(pattern)).every((tokens) => segmentsOf(tokens.join('')).length === 1);
|
|
185
|
+
}
|
|
186
|
+
/** The predicate a reading produced, or an error naming the pattern as it was written. */
|
|
187
|
+
function matcherOf(reading, kind, pattern) {
|
|
188
|
+
if (!reading.parsed.ok)
|
|
189
|
+
throw new Error(`invalid ${kind} pattern "${pattern}": ${reading.parsed.error}`);
|
|
190
|
+
return globPredicate(reading.parsed.glob, reading.shape);
|
|
191
|
+
}
|
|
192
|
+
/** Why a reading failed, in the words `matcherOf` would throw, or null. */
|
|
193
|
+
function refusal(reading, kind, pattern) {
|
|
194
|
+
return reading.parsed.ok ? null : `invalid ${kind} pattern "${pattern}": ${reading.parsed.error}`;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* A predicate over paths from one compiled glob, asking the glob no more often
|
|
198
|
+
* than the pattern's shape requires.
|
|
199
|
+
*
|
|
200
|
+
* Every answer is the automaton's. But a Thompson automaton keeps a set of live
|
|
201
|
+
* states per character where a RegExp compiled to machine code, and asked of
|
|
202
|
+
* every path the matching took 26 times as long: 261 ms against 10 over the
|
|
203
|
+
* 10,446 paths in this repository's node_modules, for three globs and four
|
|
204
|
+
* exclusions (ADR-0015). A tree repeats its names - those paths hold 6,714
|
|
205
|
+
* distinct segments - and most patterns are one segment in every alternative,
|
|
206
|
+
* `*.ts`, `tests`, `node:fs`, whose answer for a path is their answer for its
|
|
207
|
+
* last segment or for one of its segments. So those are asked once per segment.
|
|
208
|
+
* Any other pattern can only match below the directories spec-core names as its
|
|
209
|
+
* bases, and a path outside all of them is answered without asking.
|
|
210
|
+
*/
|
|
211
|
+
export function globPredicate(glob, shape) {
|
|
212
|
+
if (shape === 'whole') {
|
|
213
|
+
const { bases } = glob;
|
|
214
|
+
return (relativePath) => bases.some((base) => base === '' || relativePath.startsWith(`${base}/`)) && glob.match(relativePath);
|
|
215
|
+
}
|
|
216
|
+
const known = new Map();
|
|
217
|
+
const matches = (segment) => {
|
|
218
|
+
let answer = known.get(segment);
|
|
219
|
+
if (answer === undefined) {
|
|
220
|
+
answer = glob.match(segment);
|
|
221
|
+
known.set(segment, answer);
|
|
222
|
+
}
|
|
223
|
+
return answer;
|
|
224
|
+
};
|
|
225
|
+
return shape === 'last'
|
|
226
|
+
? (relativePath) => matches(relativePath.slice(relativePath.lastIndexOf('/') + 1))
|
|
227
|
+
: (relativePath) => relativePath.split('/').some(matches);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Why an include glob cannot be read, or null when it can.
|
|
231
|
+
*
|
|
232
|
+
* A malformed glob - an unclosed `[` or `{`, an extended glob such as `+(a|b)`,
|
|
233
|
+
* a `..` - used to be read anyway: as a literal, or as whatever the regular
|
|
234
|
+
* expression it compiled to happened to mean. A typo read as a literal is a
|
|
235
|
+
* filter that matches nothing and reports clean, so it is refused.
|
|
236
|
+
*/
|
|
237
|
+
export function globPatternError(pattern) {
|
|
238
|
+
return refusal(readInclude(pattern), 'glob', pattern);
|
|
239
|
+
}
|
|
240
|
+
/** Why a module pattern or a layer cannot be read, or null when it can. */
|
|
241
|
+
export function modulePatternError(pattern, kind = 'module') {
|
|
242
|
+
return refusal(readExclude(pattern), kind, pattern);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* A name a module pattern or a layer matches, or null when it matches none.
|
|
246
|
+
*
|
|
247
|
+
* The shortest spec-core's witness search finds, so a literal is itself -
|
|
248
|
+
* `node:fs`, `src/db` - and `@app/db/**` is a name just below `@app/db`.
|
|
249
|
+
* `spec-guard prove` imports it, to show a rule about the module that it can
|
|
250
|
+
* fail (ADR-0016).
|
|
251
|
+
*/
|
|
252
|
+
export function moduleWitness(pattern) {
|
|
253
|
+
const { parsed } = readExclude(pattern);
|
|
254
|
+
if (!parsed.ok)
|
|
255
|
+
return null;
|
|
256
|
+
const found = globWitness([parsed.glob]);
|
|
257
|
+
return found.kind === 'found' ? found.path : null;
|
|
258
|
+
}
|
|
259
|
+
/** Why a pattern read against a whole path - `dirs=`, a required entry's name - cannot be read, or null. */
|
|
260
|
+
export function pathPatternError(pattern) {
|
|
261
|
+
return refusal(readWhole(pattern), 'glob', pattern);
|
|
112
262
|
}
|
|
113
263
|
/**
|
|
114
264
|
* Why an exclude pattern can never leave anything out, or null when it can.
|
|
115
265
|
*
|
|
116
|
-
* Each of
|
|
117
|
-
* one that matters is `!`: in `.gitignore` it re-includes a path, and a
|
|
118
|
-
* copied from one kept `build` and silently lost
|
|
119
|
-
* so the exclusion was wider than the list reads.
|
|
120
|
-
* outside the root, where nothing is searched,
|
|
121
|
-
* itself, which no path under it is.
|
|
266
|
+
* Each of the first four matched nothing under both engines, and nothing said
|
|
267
|
+
* so. The one that matters is `!`: in `.gitignore` it re-includes a path, and a
|
|
268
|
+
* list copied from one kept `build` and silently lost
|
|
269
|
+
* `!build/generated/needed.ts`, so the exclusion was wider than the list reads.
|
|
270
|
+
* A `..` or a drive path points outside the root, where nothing is searched,
|
|
271
|
+
* and `.` or `/` names the root itself, which no path under it is. After those,
|
|
272
|
+
* whatever spec-core refuses: a malformed pattern excludes nothing either.
|
|
122
273
|
*/
|
|
123
274
|
export function excludePatternError(pattern) {
|
|
124
275
|
const normalized = normalizeExclude(pattern);
|
|
@@ -131,33 +282,35 @@ export function excludePatternError(pattern) {
|
|
|
131
282
|
: normalized === '' || normalized === '.'
|
|
132
283
|
? 'it names the root itself rather than a path under it'
|
|
133
284
|
: null;
|
|
134
|
-
return reason === null ?
|
|
285
|
+
return reason === null ? refusal(readExclude(pattern), 'exclude', pattern) : `invalid exclude pattern "${pattern}": ${reason}`;
|
|
135
286
|
}
|
|
136
|
-
/** The error for the first pattern in a list that
|
|
137
|
-
export function
|
|
287
|
+
/** The error for the first pattern in a list that cannot be read, by the given check, or null. */
|
|
288
|
+
export function patternListError(patterns, check) {
|
|
138
289
|
for (const pattern of patterns) {
|
|
139
|
-
const error =
|
|
290
|
+
const error = check(pattern);
|
|
140
291
|
if (error !== null)
|
|
141
292
|
return error;
|
|
142
293
|
}
|
|
143
294
|
return null;
|
|
144
295
|
}
|
|
296
|
+
/** The error for the first pattern in a list that can never exclude anything, or null. */
|
|
297
|
+
export function excludeListError(patterns) {
|
|
298
|
+
return patternListError(patterns, excludePatternError);
|
|
299
|
+
}
|
|
145
300
|
/**
|
|
146
301
|
* Builds a predicate over root-relative POSIX paths.
|
|
147
302
|
*
|
|
148
303
|
* Following ripgrep's `-g` semantics, a pattern without a `/` is matched
|
|
149
|
-
* against the file's
|
|
150
|
-
* containing `/` is matched against the whole relative path.
|
|
304
|
+
* against the file's name at any depth (`*.ts` matches `src/deep/a.ts`), while
|
|
305
|
+
* a pattern containing `/` is matched against the whole relative path. Each
|
|
306
|
+
* alternative of a `{a,b}` decides that for itself. Throws for a pattern that
|
|
307
|
+
* cannot be read; a directive's patterns are refused before a matcher is built.
|
|
151
308
|
*/
|
|
152
309
|
export function createGlobMatcher(patterns) {
|
|
153
310
|
if (patterns.length === 0)
|
|
154
311
|
return () => true;
|
|
155
|
-
const matchers = patterns.map((pattern) =>
|
|
156
|
-
|
|
157
|
-
const basenameOnly = !normalized.includes('/');
|
|
158
|
-
return { regexp: globToRegExp(normalized), basenameOnly };
|
|
159
|
-
});
|
|
160
|
-
return (relativePath) => matchers.some(({ regexp, basenameOnly }) => regexp.test(basenameOnly ? path.posix.basename(relativePath) : relativePath));
|
|
312
|
+
const matchers = patterns.map((pattern) => matcherOf(readInclude(pattern), 'glob', pattern));
|
|
313
|
+
return (relativePath) => matchers.some((matches) => matches(relativePath));
|
|
161
314
|
}
|
|
162
315
|
/**
|
|
163
316
|
* Builds a predicate for `exclude` patterns, following gitignore/ripgrep rules
|
|
@@ -169,36 +322,101 @@ export function createGlobMatcher(patterns) {
|
|
|
169
322
|
* directory, not a file of that name. ripgrep's `-g !pattern` already behaves
|
|
170
323
|
* this way; matching it here is what keeps the two engines from disagreeing.
|
|
171
324
|
*
|
|
172
|
-
* The rule is one line: a pattern
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
* `/target` gave a different count on a tree large enough for `auto` to pick
|
|
180
|
-
* ripgrep. The slash is not part of any path, so it is dropped once it has
|
|
181
|
-
* anchored the pattern.
|
|
325
|
+
* The rule is one line: a pattern matches a path or any directory above it,
|
|
326
|
+
* and it is anchored at the root when it holds a `/` anywhere but at its end.
|
|
327
|
+
* A leading slash anchors and is otherwise dropped, as it is in `.gitignore`:
|
|
328
|
+
* `/build` is the `build` at the root, where `build` is one at any depth.
|
|
329
|
+
* ripgrep always read it that way, and the scanner used to match nothing for
|
|
330
|
+
* it, so a rule excluding `/target` gave a different count on a tree large
|
|
331
|
+
* enough for `auto` to pick ripgrep.
|
|
182
332
|
*/
|
|
183
333
|
export function createExcludeMatcher(patterns) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
334
|
+
const matchers = patterns.map((pattern) => matcherOf(readExclude(pattern), 'exclude', pattern));
|
|
335
|
+
return (relativePath) => matchers.some((matches) => matches(relativePath));
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Builds a predicate for one pattern matched against a whole path from where
|
|
339
|
+
* it starts: `dirs="*"` against a directory below a target, a required entry's
|
|
340
|
+
* name against the names in a directory. `*` is one segment, `**` any number of
|
|
341
|
+
* them, and a pattern with no glob syntax names one path exactly.
|
|
342
|
+
*/
|
|
343
|
+
export function createPathMatcher(pattern) {
|
|
344
|
+
return matcherOf(readWhole(pattern), 'glob', pattern);
|
|
345
|
+
}
|
|
346
|
+
/* ------------------------------------------------------- what ripgrep reads */
|
|
347
|
+
/**
|
|
348
|
+
* The globs ripgrep is handed for one normalised pattern: the same set of
|
|
349
|
+
* paths spec-core reads it as, spelled so that ripgrep's globset reads it the
|
|
350
|
+
* same way.
|
|
351
|
+
*
|
|
352
|
+
* Handed the pattern as spec-guard normalised it, ripgrep still read four
|
|
353
|
+
* shapes differently from the scanner, and each is measured in ADR-0015:
|
|
354
|
+
* - it decides whether a glob is anchored from the whole glob, where spec-core
|
|
355
|
+
* decides for each alternative of its braces, so `{src/*.ts,*.md}` found
|
|
356
|
+
* `*.md` only at the root;
|
|
357
|
+
* - it drops an empty alternative, so `{,src/}a.ts` never found `a.ts`;
|
|
358
|
+
* - it keeps `.` and empty segments, which spec-core drops, so `src/./a.ts`
|
|
359
|
+
* matched nothing;
|
|
360
|
+
* - it refuses a `}` that closes nothing, which spec-core reads as itself.
|
|
361
|
+
*
|
|
362
|
+
* So the braces are expanded here, one glob per alternative, each alternative
|
|
363
|
+
* is cleaned of `.` and empty segments and anchored or not by its own shape,
|
|
364
|
+
* and a lone `}` is written as the class `[}]`. Only ever given a pattern
|
|
365
|
+
* spec-core accepts, since a directive's are refused before anything runs.
|
|
366
|
+
*/
|
|
367
|
+
export function ripgrepGlobs(normalized) {
|
|
368
|
+
const rooted = normalized.startsWith('/');
|
|
369
|
+
const globs = expandBraces(lex(normalized)).map((tokens) => {
|
|
370
|
+
const segments = segmentsOf(tokens.map((token) => (token === '}' ? '[}]' : token)).join(''));
|
|
371
|
+
const text = segments.join('/');
|
|
372
|
+
// ripgrep reads a leading `!` as negation and spec-core reads it as a
|
|
373
|
+
// character. Only an alternative can start with one - a pattern that does
|
|
374
|
+
// is refused - and a prefix that changes nothing else keeps it a character.
|
|
375
|
+
if (rooted || (segments.length > 1 && text.startsWith('!')))
|
|
376
|
+
return `/${text}`;
|
|
377
|
+
return text.startsWith('!') ? `**/${text}` : text;
|
|
189
378
|
});
|
|
190
|
-
return (
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
379
|
+
return [...new Set(globs)];
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* A pattern spec-core accepted, cut into classes, braces, commas and the runs
|
|
383
|
+
* of anything else between them. A class is one token, so what it holds is
|
|
384
|
+
* never read as a brace or a comma: it opens with `[`, may be negated with `!`
|
|
385
|
+
* or `^`, and its first member is a member even when it is `]`.
|
|
386
|
+
*/
|
|
387
|
+
function lex(pattern) {
|
|
388
|
+
return pattern.match(/\[[!^]?\]?[^\]]*\]|[{},]|[^[{},]+/g);
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* `{a,b}` groups expanded into the patterns they stand for, as spec-core
|
|
392
|
+
* expands them: groups nest, and a `}` that closes nothing is a character.
|
|
393
|
+
* Every `{` closes, since spec-core accepted the pattern.
|
|
394
|
+
*/
|
|
395
|
+
function expandBraces(tokens) {
|
|
396
|
+
const open = tokens.indexOf('{');
|
|
397
|
+
if (open === -1)
|
|
398
|
+
return [tokens];
|
|
399
|
+
let close = open;
|
|
400
|
+
for (let depth = 1; depth > 0; depth += nesting(tokens[close]))
|
|
401
|
+
close += 1;
|
|
402
|
+
const options = [[]];
|
|
403
|
+
let depth = 0;
|
|
404
|
+
for (const token of tokens.slice(open + 1, close)) {
|
|
405
|
+
// Below 1 rather than at 0: the depth never goes below 0, and read this
|
|
406
|
+
// way its sign decides something, where at 0 either sign would do.
|
|
407
|
+
if (token === ',' && depth < 1) {
|
|
408
|
+
options.push([]);
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
depth += nesting(token);
|
|
412
|
+
options[options.length - 1].push(token);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return options.flatMap((option) => expandBraces([...tokens.slice(0, open), ...option, ...tokens.slice(close + 1)]));
|
|
416
|
+
}
|
|
417
|
+
/** How a token moves the depth of brace groups. */
|
|
418
|
+
function nesting(token) {
|
|
419
|
+
return token === '{' ? 1 : token === '}' ? -1 : 0;
|
|
202
420
|
}
|
|
203
421
|
/** Orders directory entries by name, byte-wise and stable across platforms. */
|
|
204
422
|
export function compareDirents(a, b) {
|
|
@@ -306,10 +524,39 @@ export function globBase(pattern) {
|
|
|
306
524
|
}
|
|
307
525
|
return { base: base.join('/'), rest: segments.slice(index).join('/') };
|
|
308
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* A spec pattern that holds glob syntax, read.
|
|
529
|
+
*
|
|
530
|
+
* Walked from its literal base and matched below it, so the base is never read
|
|
531
|
+
* as a glob: `../shared/docs/*.md` names a directory outside the root, whose
|
|
532
|
+
* `..` a glob may not hold, and `C:/repo/docs/*.md` a drive. What is below is
|
|
533
|
+
* read as `glob=` reads the pattern: `*.md` by name at any depth, `docs/*.md`
|
|
534
|
+
* as the whole path.
|
|
535
|
+
*/
|
|
536
|
+
function readSpecGlob(pattern) {
|
|
537
|
+
const normalized = normalizeGlob(toPosix(pattern));
|
|
538
|
+
const absolute = path.isAbsolute(normalized);
|
|
539
|
+
const { base, rest } = globBase(normalized);
|
|
540
|
+
// With no base, what is left is the whole pattern, and reads as glob= does.
|
|
541
|
+
// Below a base every alternative is anchored, since each holds the base's `/`.
|
|
542
|
+
return { base, absolute, normalized, reading: base === '' && !absolute ? readInclude(rest) : readWhole(rest) };
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Why a spec pattern cannot be read, or null when it can.
|
|
546
|
+
*
|
|
547
|
+
* Asked by the command line and the configuration before anything runs, in the
|
|
548
|
+
* words `expandSpecPatterns` would throw. A path with no glob syntax is a path,
|
|
549
|
+
* found or not; only a glob can be malformed.
|
|
550
|
+
*/
|
|
551
|
+
export function specPatternError(pattern) {
|
|
552
|
+
return isGlob(toPosix(pattern)) ? refusal(readSpecGlob(pattern).reading, 'spec', pattern) : null;
|
|
553
|
+
}
|
|
309
554
|
/**
|
|
310
555
|
* Expands CLI spec patterns into a sorted, de-duplicated list of absolute file
|
|
311
556
|
* paths. Plain paths are taken literally; a directory expands to the Markdown
|
|
312
|
-
* files it contains
|
|
557
|
+
* files it contains; a glob is read by `readSpecGlob`. A pattern spec-core
|
|
558
|
+
* refuses is an error that names it, where it used to be read as a literal and
|
|
559
|
+
* match nothing.
|
|
313
560
|
*/
|
|
314
561
|
export async function expandSpecPatterns(patterns, root, defaultExtensions = ['.md', '.markdown', '.mdx'], io = nodeIo) {
|
|
315
562
|
const found = new Set();
|
|
@@ -330,15 +577,11 @@ export async function expandSpecPatterns(patterns, root, defaultExtensions = ['.
|
|
|
330
577
|
}
|
|
331
578
|
continue;
|
|
332
579
|
}
|
|
333
|
-
const
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
const matcher = createGlobMatcher([pattern]);
|
|
580
|
+
const { base, absolute, normalized, reading } = readSpecGlob(pattern);
|
|
581
|
+
const walkRoot = absolute ? base || path.parse(normalized).root : path.resolve(root, base);
|
|
582
|
+
const matches = matcherOf(reading, 'spec', rawPattern);
|
|
337
583
|
for await (const file of walkPaths(walkRoot, { io })) {
|
|
338
|
-
|
|
339
|
-
? toPosix(file.absolutePath)
|
|
340
|
-
: toPosix(path.relative(root, file.absolutePath));
|
|
341
|
-
if (matcher(candidate))
|
|
584
|
+
if (matches(file.relativePath))
|
|
342
585
|
found.add(file.absolutePath);
|
|
343
586
|
}
|
|
344
587
|
}
|
package/dist/glob.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"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"}
|