@descent-vtt/spec-guard 0.15.0 → 0.17.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.
Files changed (57) hide show
  1. package/CHANGELOG.md +126 -4
  2. package/README.md +503 -509
  3. package/dist/cites.d.ts.map +1 -1
  4. package/dist/cites.js +5 -1
  5. package/dist/cites.js.map +1 -1
  6. package/dist/cli.d.ts +3 -2
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +8 -4
  9. package/dist/cli.js.map +1 -1
  10. package/dist/glob.d.ts +25 -16
  11. package/dist/glob.d.ts.map +1 -1
  12. package/dist/glob.js +199 -138
  13. package/dist/glob.js.map +1 -1
  14. package/dist/impact.d.ts.map +1 -1
  15. package/dist/impact.js +12 -2
  16. package/dist/impact.js.map +1 -1
  17. package/dist/mcp.d.ts.map +1 -1
  18. package/dist/mcp.js +5 -3
  19. package/dist/mcp.js.map +1 -1
  20. package/dist/parser.d.ts +11 -9
  21. package/dist/parser.d.ts.map +1 -1
  22. package/dist/parser.js +250 -43
  23. package/dist/parser.js.map +1 -1
  24. package/dist/prove.d.ts.map +1 -1
  25. package/dist/prove.js +2 -1
  26. package/dist/prove.js.map +1 -1
  27. package/dist/reporter.d.ts +12 -4
  28. package/dist/reporter.d.ts.map +1 -1
  29. package/dist/reporter.js +200 -48
  30. package/dist/reporter.js.map +1 -1
  31. package/dist/runner.d.ts +12 -2
  32. package/dist/runner.d.ts.map +1 -1
  33. package/dist/runner.js +13 -4
  34. package/dist/runner.js.map +1 -1
  35. package/dist/types.d.ts +24 -2
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
  38. package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -1
  39. package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
  40. package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
  41. package/dist/vendor/spec-core/pattern/glob.d.ts +88 -2
  42. package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
  43. package/dist/vendor/spec-core/pattern/glob.js +234 -32
  44. package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
  45. package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
  46. package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -1
  47. package/dist/vendor/spec-core/pattern/index.js +1 -1
  48. package/dist/vendor/spec-core/pattern/index.js.map +1 -1
  49. package/dist/vendor/spec-core/text/index.d.ts +1 -0
  50. package/dist/vendor/spec-core/text/index.d.ts.map +1 -1
  51. package/dist/vendor/spec-core/text/index.js +1 -0
  52. package/dist/vendor/spec-core/text/index.js.map +1 -1
  53. package/dist/vendor/spec-core/text/width.d.ts +31 -0
  54. package/dist/vendor/spec-core/text/width.d.ts.map +1 -0
  55. package/dist/vendor/spec-core/text/width.js +113 -0
  56. package/dist/vendor/spec-core/text/width.js.map +1 -0
  57. package/package.json +1 -1
package/dist/glob.js CHANGED
@@ -16,7 +16,7 @@
16
16
  import path from 'node:path';
17
17
  import { nodeIo } from './io.js';
18
18
  import { DEFAULT_SCOPE } from './scope.js';
19
- import { globWitness, parseGlob } from './vendor/spec-core/pattern/index.js';
19
+ import { globAlternatives, globWitness, parseGlob, } from './vendor/spec-core/pattern/index.js';
20
20
  const MAGIC_RE = /[*?[\]{}]/;
21
21
  /** True when the pattern contains glob metacharacters. */
22
22
  export function isGlob(pattern) {
@@ -105,8 +105,10 @@ export function globToRegExp(pattern, options = {}) {
105
105
  }
106
106
  /**
107
107
  * An include glob in the one form both engines are given: forward slashes, no
108
- * surrounding space, no leading `./`, and a trailing slash read as everything
109
- * under the directory.
108
+ * surrounding space, no leading `./` where taking it off changes nothing, and
109
+ * a trailing slash read as everything under the directory. It reads as the
110
+ * glob as written reads, and ripgrep's globs are made from it
111
+ * (`ripgrepGlobs`).
110
112
  *
111
113
  * ripgrep used to be handed the glob as written, and matched nothing for
112
114
  * `./src/*.ts` or `src/` while the scanner matched the files. ADR-0014. The
@@ -114,34 +116,54 @@ export function globToRegExp(pattern, options = {}) {
114
116
  * as part of a name.
115
117
  */
116
118
  export function normalizeGlob(pattern) {
117
- return slashAsContents(writtenGlob(pattern));
119
+ return slashAsContents(withoutDotSlash(trimmed(pattern)));
118
120
  }
119
- /** A glob in the form `normalizeGlob` gives it, but for its trailing slash. */
120
- function writtenGlob(pattern) {
121
- return toPosix(pattern.trim()).replace(/^\.\//, '');
121
+ /**
122
+ * A pattern as every reading here takes it: without the space around it,
123
+ * which spec-core trims too, and with each `\` a `/`. What it starts with is
124
+ * spec-core's to read, so a `./` before a `!` keeps the `!` part of a name,
125
+ * and one before braces keeps a slash they give from rooting a text.
126
+ */
127
+ function trimmed(pattern) {
128
+ return toPosix(pattern.trim());
129
+ }
130
+ /**
131
+ * A pattern without the `./` it starts with and the slashes after it, which
132
+ * name the directory the pattern is read from - but where taking them off
133
+ * would change what spec-core reads. Before a `!` the `./` is what makes `!a`
134
+ * a name and not a negation. Before braces that give a text starting with
135
+ * `/`, it is what keeps that text from being rooted: `./{/docs,x}` is `docs`
136
+ * or `x` at any depth, where `{/docs,x}` roots `docs`. Only the first `./`
137
+ * goes, so `././a` is `./a`; the slashes after it go with it, as spec-core
138
+ * reads them from its copy of `5666c96`, so `.//a` is `a`, where it was `/a`.
139
+ */
140
+ function withoutDotSlash(pattern) {
141
+ const rest = pattern.replace(/^\.\/+/, '');
142
+ // `rest` starts with no `/`, so a text rooted there is rooted by its own.
143
+ const read = globAlternatives(rest);
144
+ return rest.startsWith('!') || (read.ok && read.alternatives.some(({ rooted }) => rooted)) ? pattern : rest;
122
145
  }
123
146
  /** A glob with a trailing slash written as everything under the directory. */
124
147
  function slashAsContents(written) {
125
148
  return written.endsWith('/') ? `${written}**` : written;
126
149
  }
127
150
  /**
128
- * A glob parsed in the form both engines are given, unless spec-core refuses
129
- * it as written: `read` says what of it spec-core is given to read, and
130
- * `options` how.
151
+ * A glob parsed as spec-core reads it, a trailing slash included, unless
152
+ * spec-core refuses it as written, read as `options` say.
131
153
  *
132
154
  * spec-core reads a trailing `/` as the directory's contents too, so asking it
133
155
  * about the glob as written changes the reading of none it accepts. But `**`
134
- * names a path whatever comes before it, and `normalizeGlob` adds it before
156
+ * names a path whatever comes before it, and `slashAsContents` adds it before
135
157
  * spec-core is asked: `glob="/./"` and `glob="{./}/"` were read as `/./**`
136
158
  * and `{./}/**`, every path, where spec-core refuses `/./` as it refuses `/.`,
137
159
  * and the `.//` the braces give as it refuses `./`. A glob refused as read
138
160
  * keeps the words it was refused in.
139
161
  */
140
- function parseAsWritten(written, options, read = (text) => text) {
141
- const parsed = parseGlob(read(slashAsContents(written)), options);
162
+ function parseAsWritten(written, options) {
163
+ const parsed = parseGlob(slashAsContents(written), options);
142
164
  // Only a glob that ends in `/` is read as other than written. Any other,
143
- // asked again as written, is answered as it was read, its leading slashes
144
- // kept or not, so this decides how long a reading takes and never what it is.
165
+ // asked again as written, is answered as it was read, so this decides how
166
+ // long a reading takes and never what it is.
145
167
  if (!parsed.ok || !written.endsWith('/'))
146
168
  return parsed;
147
169
  const judged = parseGlob(written, options);
@@ -149,58 +171,66 @@ function parseAsWritten(written, options, read = (text) => text) {
149
171
  }
150
172
  /**
151
173
  * An `exclude` pattern in the one form both engines are given: forward slashes,
152
- * no surrounding space, no leading `./` and no trailing slash. A leading `/`
153
- * stays, because it means something: see `createExcludeMatcher`.
174
+ * no surrounding space, no leading `./` where taking it off changes nothing,
175
+ * and no trailing slash. A leading `/` stays, because it means something: see
176
+ * `createExcludeMatcher`.
154
177
  *
155
178
  * ripgrep used to be handed the pattern as written, and read three shapes
156
179
  * differently from the scanner. `./build` and `src\build` excluded nothing, and
157
180
  * `build/` did not exclude a file named `build`. ADR-0014.
158
181
  */
159
182
  export function normalizeExclude(pattern) {
160
- return toPosix(pattern.trim()).replace(/^\.\//, '').replace(/\/+$/, '');
183
+ return withoutDotSlash(trimmed(pattern)).replace(/\/+$/, '');
161
184
  }
162
185
  /**
163
186
  * A `dirs=` pattern in the one form it is read in: forward slashes, no
164
- * surrounding space, and no leading `./` or trailing `/`, on the whole of it
165
- * and on each alternative of its braces. A pattern spec-core refuses keeps
166
- * its braces as written, since they may not close.
187
+ * surrounding space, no leading `./` where taking it off changes nothing, and
188
+ * no trailing `/`, on the whole of it and on each alternative of its braces.
189
+ * A pattern spec-core refuses keeps its braces as written, since they may not
190
+ * close.
167
191
  *
168
192
  * `dirs=` names directories, so a trailing slash there says only that the
169
193
  * name is a directory's, and the attribute always dropped the one ending it:
170
194
  * `dirs="a/"` is `a`. spec-core, from its copy of `f9ce375`, reads a slash
171
195
  * ending a brace alternative as the directory's contents, and `{a/,d}` became
172
- * every directory below `a`, and `d`, where it had been `a` and `d`. So each
173
- * alternative is read as the whole is, and the braces written again from what
174
- * is left: `{a/,d}` is `{a,d}`, and `x/{a/,b}` is `{x/a,x/b}`. A `\` is a
175
- * separator here as everywhere, so `{a\/,d}` is `{a,d}` too. ADR-0013.
196
+ * every directory below `a`, and `d`, where it had been `a` and `d`. So the
197
+ * braces are written again from the alternatives spec-core reads, each
198
+ * without the slashes it ends with: `{a/,d}` is `{a,d}`, and `x/{a/,b}` is
199
+ * `{x/a,x/b}`. A `\` is a separator here as everywhere, so `{a\/,d}` is
200
+ * `{a,d}` too. ADR-0013.
176
201
  */
177
202
  export function normalizeDirs(pattern) {
178
- const whole = bareDirectory(toPosix(pattern.trim()));
179
- // The helpers below expect braces that close, which only a pattern spec-core
180
- // accepts is sure to have.
203
+ const whole = bareDirectory(trimmed(pattern));
204
+ // Braces that do not close are read by nothing below, and only a pattern
205
+ // spec-core accepts is sure to have none.
181
206
  if (!readWhole(whole).parsed.ok)
182
207
  return whole;
208
+ const read = textsOf(whole);
209
+ // Only a slash ending an alternative reads other than dirs= means it. A
210
+ // `./` or a slash an alternative starts with names what it names written
211
+ // again without them, so braces with no such slash stay as written.
212
+ if (!read.alternatives.some(({ text }) => text.endsWith('/')))
213
+ return whole;
183
214
  // What spec-core takes off the front before it reads braces stays in front
184
- // of them, since a leading `/` there roots the pattern and one inside braces
185
- // does not: `/{a/,d}` names paths under the filesystem's root, as `/a` does.
215
+ // of them, so the braces written again read as the writer put them:
216
+ // `/{a/,d}` is `/{a,d}`, every alternative under the filesystem's root, as
217
+ // `/a` is. A `/` leading one alternative stays on it and roots it alone, as
218
+ // spec-core reads it from its copy of `7e41240`: `{/a/,d}` is `{/a,d}`.
186
219
  const body = whole.replace(/^(?:\.?\/)+/, '');
187
- const written = expandBraces(lex(body)).map((tokens) => tokens.map(asCharacter).join(''));
188
- const read = written.map(bareDirectory);
189
- return read.every((alternative, index) => alternative === written[index])
190
- ? whole
191
- : `${whole.slice(0, whole.length - body.length)}{${read.join(',')}}`;
220
+ const texts = read.alternatives.map(({ rooted, text }) => `${rooted && !read.rooted ? '/' : ''}${text.replace(/\/+$/, '')}`);
221
+ return `${whole.slice(0, whole.length - body.length)}{${texts.join(',')}}`;
192
222
  }
193
- /** A pattern, or one alternative of one, without the `./` it starts with or the slashes it ends with. */
223
+ /** A pattern without the `./` it starts with, where that changes nothing, or the slashes it ends with. */
194
224
  function bareDirectory(pattern) {
195
- return pattern.replace(/^\.\//, '').replace(/\/+$/, '');
225
+ return withoutDotSlash(pattern).replace(/\/+$/, '');
196
226
  }
197
227
  /**
198
- * A brace or a comma no group took, spelled as the class that matches it, so
199
- * braces written around it again do not read it as syntax. A `{` is never
200
- * left over: every one closes in a pattern spec-core accepted.
228
+ * The texts a pattern's braces give, as spec-core reads each at its start.
229
+ * Only ever asked of a pattern spec-core accepted, whose braces expand, and
230
+ * that is all spec-core refuses here.
201
231
  */
202
- function asCharacter(token) {
203
- return token === '}' || token === ',' ? `[${token}]` : token;
232
+ function textsOf(pattern) {
233
+ return globAlternatives(pattern);
204
234
  }
205
235
  /* --------------------------------------------------------------- readings */
206
236
  // Case-sensitive, every one: the family's rule for paths, since git's are and a
@@ -260,37 +290,64 @@ const belowReadings = readings();
260
290
  * A leading `/` anchors it at the root, as ripgrep reads `-g /src/*.ts` and as
261
291
  * `exclude` reads `/build`. spec-core's ripgrep dialect reads it as the root of
262
292
  * the filesystem, which no path relative to the root is under, so the slash is
263
- * dropped and the rest read as a whole path. Otherwise a pattern that is one
264
- * segment in every alternative is a file name at any depth, and so decided by
265
- * a path's last segment alone.
293
+ * dropped and the rest read as a whole path. One leading an alternative of its
294
+ * braces anchors that alternative alone, since spec-core, from its copy of
295
+ * `7e41240`, reads it as it reads one leading the pattern: `{/src/*.ts,*.md}`
296
+ * is `/src/*.ts` from the root, or a `.md` at any depth. Otherwise a pattern
297
+ * that is one segment in every alternative is a file name at any depth, and
298
+ * so decided by a path's last segment alone.
299
+ *
300
+ * Whether it can be read at all is asked of spec-core as written, its leading
301
+ * slashes kept, as `{/!a,x}` and `{/**.md,x}` are asked. The slashes were
302
+ * taken off first, so `/!a` was refused as the negation `!a` is, where
303
+ * spec-core reads the name `!a` at the root; and `/**.md` was told to write
304
+ * `*.md` for one level, a name at any depth, rather than `/*.md`. So is a
305
+ * leading `./`, which spec-core reads with the slashes after it, and which
306
+ * makes a `!` after it part of a name: `./!a` is the name `!a` at any depth.
266
307
  */
267
308
  function readInclude(pattern) {
268
309
  return includeReadings(pattern, () => {
269
- const written = writtenGlob(pattern);
270
- const normalized = slashAsContents(written);
271
- // The first run of slashes, which a pattern that starts with one starts
272
- // with. As written it keeps them, so that `/` is refused as naming the
273
- // root, and `/./` as `/.` is.
274
- if (written.startsWith('/'))
275
- return { parsed: parseAsWritten(written, WHOLE, (text) => text.replace(/\/+/, '')), shape: 'whole' };
310
+ const written = trimmed(pattern);
276
311
  const parsed = parseAsWritten(written, RIPGREP);
312
+ // In the `path` dialect every alternative is a whole path, so one that
313
+ // ripgrep reads as a name at any depth is written as one.
314
+ const rooted = parsed.ok ? fromWhereRead(written, (alternative) => (segmentsOf(alternative).length > 1 ? alternative : `**/${alternative}`)) : null;
315
+ if (rooted !== null)
316
+ return { parsed: rooted, shape: 'whole' };
277
317
  // The kind decides here only whether a trailing slash on an alternative
278
318
  // adds a segment, and any text after the slash is one: a kind naming
279
319
  // neither reading, whose lookup adds `undefined`, gives the same shape.
280
- return { parsed, shape: parsed.ok && oneSegment(normalized, 'include') ? 'last' : 'whole' };
320
+ return { parsed, shape: parsed.ok && oneSegment(written, 'include') ? 'last' : 'whole' };
281
321
  });
282
322
  }
323
+ /**
324
+ * A pattern spec-core accepted, read in the `path` dialect from where it is
325
+ * read when a text its braces give is rooted - each rooted text without its
326
+ * root, and every other written by `write` - or null when none is. What no
327
+ * path relative to the root is under, spec-core's reading of a rooted text, is
328
+ * never what a writer meant by it: `glob="/src/*.ts"` anchors at the root, and
329
+ * below a spec pattern's base `docs/{/adr,x}` is `docs//adr`, which is
330
+ * `docs/adr`. The braces are written again around what is left, a brace or a
331
+ * comma no group took written as a character, as spec-core gives it.
332
+ */
333
+ function fromWhereRead(pattern, write) {
334
+ const read = alternatives(pattern, 'include');
335
+ if (!read.some(({ rooted }) => rooted))
336
+ return null;
337
+ return parseGlob(`{${read.map(({ rooted, text }) => (rooted ? text : write(text))).join(',')}}`, WHOLE);
338
+ }
283
339
  /**
284
340
  * An exclusion, a module or a layer, as `.gitignore` reads a line: one that is
285
- * one segment in every alternative, and not anchored by a leading `/`, matches
286
- * a path when it matches any one of the path's segments.
341
+ * one segment in every alternative, and none of them anchored by a leading
342
+ * `/`, matches a path when it matches any one of the path's segments. A
343
+ * trailing slash is spec-core's to drop, on the whole and on an alternative,
344
+ * and a leading `./` its to read, as `glob=` leaves it.
287
345
  */
288
346
  function readExclude(pattern) {
289
347
  return excludeReadings(pattern, () => {
290
- const normalized = normalizeExclude(pattern);
291
- const parsed = parseGlob(normalized, GITIGNORE);
292
- const floating = parsed.ok && !normalized.startsWith('/') && oneSegment(normalized, 'exclude');
293
- return { parsed, shape: floating ? 'any' : 'whole' };
348
+ const written = trimmed(pattern);
349
+ const parsed = parseGlob(written, GITIGNORE);
350
+ return { parsed, shape: parsed.ok && oneSegment(written, 'exclude') ? 'any' : 'whole' };
294
351
  });
295
352
  }
296
353
  /** A pattern matched against a whole path from where it starts, with `\` a separator as it is everywhere here. */
@@ -305,9 +362,13 @@ export function patternShape(pattern, kind) {
305
362
  function segmentsOf(pattern) {
306
363
  return pattern.split('/').filter((segment) => segment !== '' && segment !== '.');
307
364
  }
308
- /** Whether every alternative of a pattern spec-core accepted is one segment, read as `kind` reads it. */
365
+ /**
366
+ * Whether every alternative of a pattern spec-core accepted is one segment,
367
+ * read as `kind` reads it, and none is rooted: `{/build,x}` anchors `build`
368
+ * at the root, as `/build` does, so a segment of a path cannot answer for it.
369
+ */
309
370
  function oneSegment(pattern, kind) {
310
- return alternatives(pattern, kind).every((alternative) => segmentsOf(alternative).length === 1);
371
+ return alternatives(pattern, kind).every(({ rooted, text }) => !rooted && segmentsOf(text).length === 1);
311
372
  }
312
373
  /** The predicate a reading produced, or an error naming the pattern as it was written. */
313
374
  function matcherOf(reading, kind, pattern) {
@@ -490,23 +551,27 @@ export function createPathMatcher(pattern) {
490
551
  * matched nothing;
491
552
  * - it refuses a `}` that closes nothing, which spec-core reads as itself.
492
553
  *
493
- * So the braces are expanded here, one glob per alternative, each alternative
494
- * is read as `kind` reads it, cleaned of `.` and empty segments and anchored or
495
- * not by its own shape, and a lone `}` is written as the class `[}]`. Only ever
496
- * given a pattern spec-core accepts, since a directive's are refused before
497
- * anything runs.
554
+ * So it is handed one glob per alternative spec-core's braces give, each read
555
+ * as `kind` reads it, cleaned of `.` and empty segments and anchored or not
556
+ * as spec-core roots it - by a leading `/` on the pattern or on the
557
+ * alternative, since spec-core, from its copy of `7e41240`, reads
558
+ * `{/build,x}` as `/build` or `x`, and never by one after a `./`, which from
559
+ * its copy of `5666c96` goes with the slashes after it - and a `}` or `,` no
560
+ * group took is written as the class that matches it. Only ever given a
561
+ * pattern spec-core accepts, since a directive's are refused before anything
562
+ * runs.
498
563
  */
499
564
  export function ripgrepGlobs(normalized, kind) {
500
- const rooted = normalized.startsWith('/');
501
- const globs = alternatives(normalized, kind).map((alternative) => {
502
- const segments = segmentsOf(alternative);
503
- const text = segments.join('/');
565
+ const globs = alternatives(normalized, kind).map(({ rooted, text }) => {
566
+ const segments = segmentsOf(text);
567
+ const joined = segments.join('/');
504
568
  // ripgrep reads a leading `!` as negation and spec-core reads it as a
505
- // character. Only an alternative can start with one - a pattern that does
506
- // is refused - and a prefix that changes nothing else keeps it a character.
507
- if (rooted || (segments.length > 1 && text.startsWith('!')))
508
- return `/${text}`;
509
- return text.startsWith('!') ? `**/${text}` : text;
569
+ // character. Only an alternative, or a pattern after its `./`, can start
570
+ // with one - a pattern that does is refused - and a prefix that changes
571
+ // nothing else keeps it a character.
572
+ if (rooted || (segments.length > 1 && joined.startsWith('!')))
573
+ return `/${joined}`;
574
+ return joined.startsWith('!') ? `**/${joined}` : joined;
510
575
  });
511
576
  return [...new Set(globs)];
512
577
  }
@@ -518,10 +583,12 @@ export function ripgrepGlobs(normalized, kind) {
518
583
  */
519
584
  const TRAILING_SLASH = { include: '**', exclude: '' };
520
585
  /**
521
- * The patterns a pattern's braces stand for, each read as spec-core reads an
522
- * alternative: as it would be written alone, a trailing `/` included. So
523
- * `{src/,*.md}` is `src/**` or a `.md` at any depth to `glob=`, and
524
- * `{build/,dist}` is `build` or `dist` to `exclude=`.
586
+ * The patterns a pattern's braces stand for, as spec-core's `globAlternatives`
587
+ * reads each: rooted or not, and its text without the `./` and the slashes it
588
+ * starts with, a `}` or a `,` no group took written as the class that matches
589
+ * it, and a trailing `/` read as `kind` reads one. So `{src/,*.md}` is
590
+ * `src/**` or a `.md` at any depth to `glob=`, and `{build/,dist}` is `build`
591
+ * or `dist` to `exclude=`.
525
592
  *
526
593
  * Until spec-core's copy from `f9ce375` the slash was read only at the end of
527
594
  * the whole pattern, so inside braces it was dropped, and `{src/,*.md}` was a
@@ -529,52 +596,13 @@ const TRAILING_SLASH = { include: '**', exclude: '' };
529
596
  * the segment shortcut asked `a.ts` about `src/a.ts` and answered no, and
530
597
  * ripgrep was handed `src`, which it matches against a file named `src` at any
531
598
  * depth and never against what is under the directory. ADR-0015.
599
+ *
600
+ * The braces were expanded here, and a leading `./` and `/` read here, until
601
+ * spec-core's copy from `5666c96` gave its own reading of both, which is the
602
+ * one it matches by.
532
603
  */
533
604
  function alternatives(pattern, kind) {
534
- return expandBraces(lex(pattern)).map((tokens) => {
535
- const alternative = tokens.map((token) => (token === '}' ? '[}]' : token)).join('');
536
- return alternative.endsWith('/') ? `${alternative}${TRAILING_SLASH[kind]}` : alternative;
537
- });
538
- }
539
- /**
540
- * A pattern spec-core accepted, cut into classes, braces, commas and the runs
541
- * of anything else between them. A class is one token, so what it holds is
542
- * never read as a brace or a comma: it opens with `[`, may be negated with `!`
543
- * or `^`, and its first member is a member even when it is `]`.
544
- */
545
- function lex(pattern) {
546
- return pattern.match(/\[[!^]?\]?[^\]]*\]|[{},]|[^[{},]+/g);
547
- }
548
- /**
549
- * `{a,b}` groups expanded into the patterns they stand for, as spec-core
550
- * expands them: groups nest, and a `}` that closes nothing is a character.
551
- * Every `{` closes, since spec-core accepted the pattern.
552
- */
553
- function expandBraces(tokens) {
554
- const open = tokens.indexOf('{');
555
- if (open === -1)
556
- return [tokens];
557
- let close = open;
558
- for (let depth = 1; depth > 0; depth += nesting(tokens[close]))
559
- close += 1;
560
- const options = [[]];
561
- let depth = 0;
562
- for (const token of tokens.slice(open + 1, close)) {
563
- // Below 1 rather than at 0: the depth never goes below 0, and read this
564
- // way its sign decides something, where at 0 either sign would do.
565
- if (token === ',' && depth < 1) {
566
- options.push([]);
567
- }
568
- else {
569
- depth += nesting(token);
570
- options[options.length - 1].push(token);
571
- }
572
- }
573
- return options.flatMap((option) => expandBraces([...tokens.slice(0, open), ...option, ...tokens.slice(close + 1)]));
574
- }
575
- /** How a token moves the depth of brace groups. */
576
- function nesting(token) {
577
- return token === '{' ? 1 : token === '}' ? -1 : 0;
605
+ return textsOf(pattern).alternatives.map(({ rooted, text }) => ({ rooted, text: text.endsWith('/') ? `${text}${TRAILING_SLASH[kind]}` : text }));
578
606
  }
579
607
  /** Orders directory entries by name, byte-wise and stable across platforms. */
580
608
  export function compareDirents(a, b) {
@@ -700,39 +728,72 @@ const BASE = 'base';
700
728
  *
701
729
  * What is below a base is asked of spec-core alone first, and a pattern it
702
730
  * reads so reads as it always has, a few characters short of the state
703
- * ceiling too, where the directory standing for the base would take it past.
731
+ * ceiling too, where the directory standing for the base would take it past;
732
+ * an alternative that starts with `/` is read from the base (`readBelow`).
704
733
  * One it refuses alone is judged as spec-core judges the whole pattern, with
705
734
  * the base in front: below a directory standing for the base, read there when
706
735
  * spec-core reads it there and refused for the reason spec-core gives there.
707
736
  * So `docs/{./,adr}` is everything under `docs`, as spec-core reads it whole,
708
737
  * where `{./,adr}` alone names no path; and `docs/!*.md` is a name that
709
738
  * starts with `!`, where `!*.md` alone is a negation. A base that names no
710
- * directory - the root in `/{./,a}` or `//{./,a}`, `.` in `././{./,a}` -
711
- * stands for none, and what is below it is judged alone, as spec-core judges
712
- * the whole: refused.
739
+ * directory - `.` in `././{./,a}` - stands for none, and what is below it
740
+ * is judged alone, as spec-core judges the whole: refused.
741
+ *
742
+ * Where the base is the root itself, as in `/*.md` or `/{./,a}`, spec-core
743
+ * is asked the whole pattern, as `glob=` asks it of a glob that starts with
744
+ * `/`, and it is read from the root the walk starts at. Asked what is below
745
+ * the root alone, spec-core refused `/!*.md` as the negation `!*.md` is, and
746
+ * told `/**.md` to write `**\/*.md` or `*.md`, where it reads the whole as
747
+ * the names `!*.md` at the root and tells it to write `/**\/*.md` or `/*.md`.
748
+ *
749
+ * A `./` is spec-core's to read, as `glob=` leaves it, so `./!*.md` is the
750
+ * names `!*.md` at any depth, as `./*.md` is `*.md`; the base is found
751
+ * without it and the slashes after it, as spec-core reads them from its copy
752
+ * of `5666c96`, so `.//docs/*.md` is walked from `docs`, as `./docs/*.md` is,
753
+ * where it was walked from the filesystem's `/docs`. Where the base is only
754
+ * `.`, as in `././!*.md`, and what is below it is refused alone, spec-core is
755
+ * asked the whole pattern: one it reads, such as that negation, which there
756
+ * is a name, is read below the base as below a named one, and one it refuses,
757
+ * such as `././{./,a}`, is refused as below the base.
713
758
  */
714
759
  function readSpecGlob(pattern) {
715
- const written = writtenGlob(pattern);
760
+ const written = trimmed(pattern);
716
761
  const absolute = path.isAbsolute(written);
717
762
  // The base ends at the first segment holding glob syntax, which comes before
718
763
  // the empty one a trailing `/` leaves, so the glob as written has the base
719
- // the glob as read has.
720
- const { base, rest } = globBase(written);
721
- const spec = { base, absolute, written };
722
- // With no base, what is left is the whole pattern, and reads as glob= does.
723
- if (base === '' && !absolute)
724
- return { ...spec, reading: readInclude(rest), under: '' };
764
+ // the glob as read has. It is found with the first `./` taken off, whatever
765
+ // follows it, so `./!*.md` has none, as `./*.md` has none; a second stays,
766
+ // and makes `././*.md` the root's, below the base `.`.
767
+ const { base, rest } = globBase(written.replace(/^\.\/+/, ''));
768
+ const spec = { base, absolute, written, whole: false };
769
+ // With no base, or the root for one, the pattern is read as glob= reads it,
770
+ // from where the walk starts.
771
+ if (base === '' || (absolute && segmentsOf(base).length === 0))
772
+ return { ...spec, whole: true, reading: readInclude(written), under: '' };
725
773
  const alone = readBelow(rest);
726
- return alone.parsed.ok || segmentsOf(base).length === 0
774
+ return alone.parsed.ok || (segmentsOf(base).length === 0 && !readWhole(written).parsed.ok)
727
775
  ? { ...spec, reading: alone, under: '' }
728
776
  : { ...spec, reading: readBelow(`${BASE}/${rest}`), under: `${BASE}/` };
729
777
  }
730
778
  /**
731
779
  * What a spec pattern holds below its base, matched against the whole path
732
780
  * from there, since each alternative holds the base's `/` and so is anchored.
781
+ *
782
+ * An alternative's own leading `/` follows the base's, and so roots nothing:
783
+ * spec-core reads `docs/{/adr,x}` whole as `docs//adr` or `docs/x`, and
784
+ * `docs//adr` is `docs/adr`. Given what is below the base alone, it reads
785
+ * `{/adr,x}` from its copy of `7e41240` as `/adr`, under the filesystem's
786
+ * root, which nothing below a base is.
733
787
  */
734
788
  function readBelow(rest) {
735
- return belowReadings(rest, () => ({ parsed: parseAsWritten(rest, WHOLE), shape: 'whole' }));
789
+ return belowReadings(rest, () => {
790
+ const parsed = parseAsWritten(rest, WHOLE);
791
+ // Writing an unrooted alternative as it is decides no answer: written as
792
+ // nothing, it leaves an empty alternative spec-core refuses, and
793
+ // `readSpecGlob` then reads the pattern below a stand-in base, which gives
794
+ // the same reading - every base that reaches here has a segment.
795
+ return { parsed: (parsed.ok ? fromWhereRead(rest, (alternative) => alternative) : null) ?? parsed, shape: 'whole' };
796
+ });
736
797
  }
737
798
  /**
738
799
  * The two patterns spec-core's refusal of `**` inside a name tells a writer to
@@ -754,11 +815,11 @@ const ADVICE = /write "(.*)" for any depth, or "(.*)" for one level/;
754
815
  * `glob=` for the whole pattern, and a base outside the root, whose `..`
755
816
  * spec-core refuses, is given it too.
756
817
  */
757
- function specRefusal({ base, reading, under }) {
818
+ function specRefusal({ base, reading, under, whole }) {
758
819
  if (reading.parsed.ok)
759
820
  return null;
760
821
  const { error } = reading.parsed;
761
- if (base === '')
822
+ if (whole)
762
823
  return error;
763
824
  const below = (advised) => `${base}/${advised.slice(under.length)}`;
764
825
  return error.replace(ADVICE, (_, deep, flat) => `write "${below(deep)}" for any depth, or "${below(flat)}" for one level`);
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../src/impact.ts"],"names":[],"mappings":"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"}