@descent-vtt/spec-guard 0.16.0 → 0.18.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 +89 -4
  2. package/README.md +478 -512
  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 -18
  11. package/dist/glob.d.ts.map +1 -1
  12. package/dist/glob.js +127 -136
  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 +128 -32
  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 +199 -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 +85 -0
  42. package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
  43. package/dist/vendor/spec-core/pattern/glob.js +207 -17
  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,23 +116,44 @@ 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 as `options` say.
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.
130
153
  *
131
154
  * spec-core reads a trailing `/` as the directory's contents too, so asking it
132
155
  * about the glob as written changes the reading of none it accepts. But `**`
133
- * 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
134
157
  * spec-core is asked: `glob="/./"` and `glob="{./}/"` were read as `/./**`
135
158
  * and `{./}/**`, every path, where spec-core refuses `/./` as it refuses `/.`,
136
159
  * and the `.//` the braces give as it refuses `./`. A glob refused as read
@@ -148,60 +171,66 @@ function parseAsWritten(written, options) {
148
171
  }
149
172
  /**
150
173
  * An `exclude` pattern in the one form both engines are given: forward slashes,
151
- * no surrounding space, no leading `./` and no trailing slash. A leading `/`
152
- * 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`.
153
177
  *
154
178
  * ripgrep used to be handed the pattern as written, and read three shapes
155
179
  * differently from the scanner. `./build` and `src\build` excluded nothing, and
156
180
  * `build/` did not exclude a file named `build`. ADR-0014.
157
181
  */
158
182
  export function normalizeExclude(pattern) {
159
- return toPosix(pattern.trim()).replace(/^\.\//, '').replace(/\/+$/, '');
183
+ return withoutDotSlash(trimmed(pattern)).replace(/\/+$/, '');
160
184
  }
161
185
  /**
162
186
  * A `dirs=` pattern in the one form it is read in: forward slashes, no
163
- * surrounding space, and no leading `./` or trailing `/`, on the whole of it
164
- * and on each alternative of its braces. A pattern spec-core refuses keeps
165
- * 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.
166
191
  *
167
192
  * `dirs=` names directories, so a trailing slash there says only that the
168
193
  * name is a directory's, and the attribute always dropped the one ending it:
169
194
  * `dirs="a/"` is `a`. spec-core, from its copy of `f9ce375`, reads a slash
170
195
  * ending a brace alternative as the directory's contents, and `{a/,d}` became
171
- * every directory below `a`, and `d`, where it had been `a` and `d`. So each
172
- * alternative is read as the whole is, and the braces written again from what
173
- * is left: `{a/,d}` is `{a,d}`, and `x/{a/,b}` is `{x/a,x/b}`. A `\` is a
174
- * 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.
175
201
  */
176
202
  export function normalizeDirs(pattern) {
177
- const whole = bareDirectory(toPosix(pattern.trim()));
178
- // The helpers below expect braces that close, which only a pattern spec-core
179
- // 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.
180
206
  if (!readWhole(whole).parsed.ok)
181
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;
182
214
  // What spec-core takes off the front before it reads braces stays in front
183
215
  // of them, so the braces written again read as the writer put them:
184
216
  // `/{a/,d}` is `/{a,d}`, every alternative under the filesystem's root, as
185
217
  // `/a` is. A `/` leading one alternative stays on it and roots it alone, as
186
218
  // spec-core reads it from its copy of `7e41240`: `{/a/,d}` is `{/a,d}`.
187
219
  const body = whole.replace(/^(?:\.?\/)+/, '');
188
- const written = expandBraces(lex(body)).map((tokens) => tokens.map(asCharacter).join(''));
189
- const read = written.map(bareDirectory);
190
- return read.every((alternative, index) => alternative === written[index])
191
- ? whole
192
- : `${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(',')}}`;
193
222
  }
194
- /** 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. */
195
224
  function bareDirectory(pattern) {
196
- return pattern.replace(/^\.\//, '').replace(/\/+$/, '');
225
+ return withoutDotSlash(pattern).replace(/\/+$/, '');
197
226
  }
198
227
  /**
199
- * A brace or a comma no group took, spelled as the class that matches it, so
200
- * braces written around it again do not read it as syntax. A `{` is never
201
- * 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.
202
231
  */
203
- function asCharacter(token) {
204
- return token === '}' || token === ',' ? `[${token}]` : token;
232
+ function textsOf(pattern) {
233
+ return globAlternatives(pattern);
205
234
  }
206
235
  /* --------------------------------------------------------------- readings */
207
236
  // Case-sensitive, every one: the family's rule for paths, since git's are and a
@@ -272,38 +301,25 @@ const belowReadings = readings();
272
301
  * slashes kept, as `{/!a,x}` and `{/**.md,x}` are asked. The slashes were
273
302
  * taken off first, so `/!a` was refused as the negation `!a` is, where
274
303
  * spec-core reads the name `!a` at the root; and `/**.md` was told to write
275
- * `*.md` for one level, a name at any depth, rather than `/*.md`.
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.
276
307
  */
277
308
  function readInclude(pattern) {
278
309
  return includeReadings(pattern, () => {
279
- const written = writtenGlob(pattern);
280
- const normalized = slashAsContents(written);
310
+ const written = trimmed(pattern);
281
311
  const parsed = parseAsWritten(written, RIPGREP);
282
312
  // In the `path` dialect every alternative is a whole path, so one that
283
313
  // ripgrep reads as a name at any depth is written as one.
284
- const rooted = parsed.ok ? fromWhereRead(normalized, (alternative) => (segmentsOf(alternative).length > 1 ? alternative : `**/${alternative}`)) : null;
314
+ const rooted = parsed.ok ? fromWhereRead(written, (alternative) => (segmentsOf(alternative).length > 1 ? alternative : `**/${alternative}`)) : null;
285
315
  if (rooted !== null)
286
316
  return { parsed: rooted, shape: 'whole' };
287
317
  // The kind decides here only whether a trailing slash on an alternative
288
318
  // adds a segment, and any text after the slash is one: a kind naming
289
319
  // neither reading, whose lookup adds `undefined`, gives the same shape.
290
- return { parsed, shape: parsed.ok && oneSegment(normalized, 'include') ? 'last' : 'whole' };
320
+ return { parsed, shape: parsed.ok && oneSegment(written, 'include') ? 'last' : 'whole' };
291
321
  });
292
322
  }
293
- /**
294
- * What roots a pattern, or a text its braces give, as spec-core reads it: the
295
- * slashes that lead it once the `./` it starts with are dropped, with those
296
- * `./`, or nothing. A rooted text is rooted at the filesystem's root in the
297
- * `path` and `ripgrep` dialects, and anchored at the repository root in
298
- * `gitignore`; `.//docs` is, as `/docs` is.
299
- */
300
- function rootOf(text) {
301
- return /^(?:\.\/)*\/+/.exec(text)?.[0] ?? '';
302
- }
303
- /** Whether a pattern, or a text its braces give, is rooted. */
304
- function isRooted(text) {
305
- return rootOf(text) !== '';
306
- }
307
323
  /**
308
324
  * A pattern spec-core accepted, read in the `path` dialect from where it is
309
325
  * read when a text its braces give is rooted - each rooted text without its
@@ -312,25 +328,26 @@ function isRooted(text) {
312
328
  * never what a writer meant by it: `glob="/src/*.ts"` anchors at the root, and
313
329
  * below a spec pattern's base `docs/{/adr,x}` is `docs//adr`, which is
314
330
  * `docs/adr`. The braces are written again around what is left, a brace or a
315
- * comma no group took written as a character.
331
+ * comma no group took written as a character, as spec-core gives it.
316
332
  */
317
333
  function fromWhereRead(pattern, write) {
318
- const texts = alternatives(pattern, 'include', asCharacter);
319
- if (!texts.some(isRooted))
334
+ const read = alternatives(pattern, 'include');
335
+ if (!read.some(({ rooted }) => rooted))
320
336
  return null;
321
- const read = texts.map((text) => (isRooted(text) ? text.slice(rootOf(text).length) : write(text)));
322
- return parseGlob(`{${read.join(',')}}`, WHOLE);
337
+ return parseGlob(`{${read.map(({ rooted, text }) => (rooted ? text : write(text))).join(',')}}`, WHOLE);
323
338
  }
324
339
  /**
325
340
  * An exclusion, a module or a layer, as `.gitignore` reads a line: one that is
326
341
  * one segment in every alternative, and none of them anchored by a leading
327
- * `/`, matches a path when it matches any one of the path's segments.
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.
328
345
  */
329
346
  function readExclude(pattern) {
330
347
  return excludeReadings(pattern, () => {
331
- const normalized = normalizeExclude(pattern);
332
- const parsed = parseGlob(normalized, GITIGNORE);
333
- return { parsed, shape: parsed.ok && oneSegment(normalized, 'exclude') ? 'any' : 'whole' };
348
+ const written = trimmed(pattern);
349
+ const parsed = parseGlob(written, GITIGNORE);
350
+ return { parsed, shape: parsed.ok && oneSegment(written, 'exclude') ? 'any' : 'whole' };
334
351
  });
335
352
  }
336
353
  /** A pattern matched against a whole path from where it starts, with `\` a separator as it is everywhere here. */
@@ -351,7 +368,7 @@ function segmentsOf(pattern) {
351
368
  * at the root, as `/build` does, so a segment of a path cannot answer for it.
352
369
  */
353
370
  function oneSegment(pattern, kind) {
354
- return alternatives(pattern, kind).every((alternative) => !isRooted(alternative) && segmentsOf(alternative).length === 1);
371
+ return alternatives(pattern, kind).every(({ rooted, text }) => !rooted && segmentsOf(text).length === 1);
355
372
  }
356
373
  /** The predicate a reading produced, or an error naming the pattern as it was written. */
357
374
  function matcherOf(reading, kind, pattern) {
@@ -534,24 +551,27 @@ export function createPathMatcher(pattern) {
534
551
  * matched nothing;
535
552
  * - it refuses a `}` that closes nothing, which spec-core reads as itself.
536
553
  *
537
- * So the braces are expanded here, one glob per alternative, each alternative
538
- * is read as `kind` reads it, cleaned of `.` and empty segments and anchored or
539
- * not by its own shape - by a leading `/` on the pattern or on the alternative
540
- * too, since spec-core, from its copy of `7e41240`, reads `{/build,x}` as
541
- * `/build` or `x` - and a lone `}` is written as the class `[}]`. Only ever
542
- * given a pattern spec-core accepts, since a directive's are refused before
543
- * 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.
544
563
  */
545
564
  export function ripgrepGlobs(normalized, kind) {
546
- const globs = alternatives(normalized, kind).map((alternative) => {
547
- const segments = segmentsOf(alternative);
548
- const text = segments.join('/');
565
+ const globs = alternatives(normalized, kind).map(({ rooted, text }) => {
566
+ const segments = segmentsOf(text);
567
+ const joined = segments.join('/');
549
568
  // ripgrep reads a leading `!` as negation and spec-core reads it as a
550
- // character. Only an alternative can start with one - a pattern that does
551
- // is refused - and a prefix that changes nothing else keeps it a character.
552
- if (isRooted(alternative) || (segments.length > 1 && text.startsWith('!')))
553
- return `/${text}`;
554
- 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;
555
575
  });
556
576
  return [...new Set(globs)];
557
577
  }
@@ -563,10 +583,12 @@ export function ripgrepGlobs(normalized, kind) {
563
583
  */
564
584
  const TRAILING_SLASH = { include: '**', exclude: '' };
565
585
  /**
566
- * The patterns a pattern's braces stand for, each read as spec-core reads an
567
- * alternative: as it would be written alone, a trailing `/` included. So
568
- * `{src/,*.md}` is `src/**` or a `.md` at any depth to `glob=`, and
569
- * `{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=`.
570
592
  *
571
593
  * Until spec-core's copy from `f9ce375` the slash was read only at the end of
572
594
  * the whole pattern, so inside braces it was dropped, and `{src/,*.md}` was a
@@ -575,55 +597,12 @@ const TRAILING_SLASH = { include: '**', exclude: '' };
575
597
  * ripgrep was handed `src`, which it matches against a file named `src` at any
576
598
  * depth and never against what is under the directory. ADR-0015.
577
599
  *
578
- * A `}` no group took is written as the class that matches it, and so is a
579
- * comma when `spell` says so: in braces written again it would part two
580
- * alternatives, where ripgrep, handed it alone, reads it as itself.
581
- */
582
- function alternatives(pattern, kind, spell = (token) => (token === '}' ? '[}]' : token)) {
583
- return expandBraces(lex(pattern)).map((tokens) => {
584
- const alternative = tokens.map(spell).join('');
585
- return alternative.endsWith('/') ? `${alternative}${TRAILING_SLASH[kind]}` : alternative;
586
- });
587
- }
588
- /**
589
- * A pattern spec-core accepted, cut into classes, braces, commas and the runs
590
- * of anything else between them. A class is one token, so what it holds is
591
- * never read as a brace or a comma: it opens with `[`, may be negated with `!`
592
- * or `^`, and its first member is a member even when it is `]`.
593
- */
594
- function lex(pattern) {
595
- return pattern.match(/\[[!^]?\]?[^\]]*\]|[{},]|[^[{},]+/g);
596
- }
597
- /**
598
- * `{a,b}` groups expanded into the patterns they stand for, as spec-core
599
- * expands them: groups nest, and a `}` that closes nothing is a character.
600
- * Every `{` closes, since spec-core accepted the pattern.
601
- */
602
- function expandBraces(tokens) {
603
- const open = tokens.indexOf('{');
604
- if (open === -1)
605
- return [tokens];
606
- let close = open;
607
- for (let depth = 1; depth > 0; depth += nesting(tokens[close]))
608
- close += 1;
609
- const options = [[]];
610
- let depth = 0;
611
- for (const token of tokens.slice(open + 1, close)) {
612
- // Below 1 rather than at 0: the depth never goes below 0, and read this
613
- // way its sign decides something, where at 0 either sign would do.
614
- if (token === ',' && depth < 1) {
615
- options.push([]);
616
- }
617
- else {
618
- depth += nesting(token);
619
- options[options.length - 1].push(token);
620
- }
621
- }
622
- return options.flatMap((option) => expandBraces([...tokens.slice(0, open), ...option, ...tokens.slice(close + 1)]));
623
- }
624
- /** How a token moves the depth of brace groups. */
625
- function nesting(token) {
626
- return token === '{' ? 1 : token === '}' ? -1 : 0;
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.
603
+ */
604
+ function alternatives(pattern, kind) {
605
+ return textsOf(pattern).alternatives.map(({ rooted, text }) => ({ rooted, text: text.endsWith('/') ? `${text}${TRAILING_SLASH[kind]}` : text }));
627
606
  }
628
607
  /** Orders directory entries by name, byte-wise and stable across platforms. */
629
608
  export function compareDirents(a, b) {
@@ -766,21 +745,33 @@ const BASE = 'base';
766
745
  * the root alone, spec-core refused `/!*.md` as the negation `!*.md` is, and
767
746
  * told `/**.md` to write `**\/*.md` or `*.md`, where it reads the whole as
768
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.
769
758
  */
770
759
  function readSpecGlob(pattern) {
771
- const written = writtenGlob(pattern);
760
+ const written = trimmed(pattern);
772
761
  const absolute = path.isAbsolute(written);
773
762
  // The base ends at the first segment holding glob syntax, which comes before
774
763
  // the empty one a trailing `/` leaves, so the glob as written has the base
775
- // the glob as read has.
776
- const { base, rest } = globBase(written);
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(/^\.\/+/, ''));
777
768
  const spec = { base, absolute, written, whole: false };
778
769
  // With no base, or the root for one, the pattern is read as glob= reads it,
779
770
  // from where the walk starts.
780
771
  if (base === '' || (absolute && segmentsOf(base).length === 0))
781
772
  return { ...spec, whole: true, reading: readInclude(written), under: '' };
782
773
  const alone = readBelow(rest);
783
- return alone.parsed.ok || segmentsOf(base).length === 0
774
+ return alone.parsed.ok || (segmentsOf(base).length === 0 && !readWhole(written).parsed.ok)
784
775
  ? { ...spec, reading: alone, under: '' }
785
776
  : { ...spec, reading: readBelow(`${BASE}/${rest}`), under: `${BASE}/` };
786
777
  }
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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"}
package/dist/impact.js CHANGED
@@ -25,6 +25,7 @@ import { loadRuleSet, resolveQueryPath } from './query.js';
25
25
  import { governs, viewRule, within } from './rules.js';
26
26
  import { formatOptionLines } from './reporter.js';
27
27
  import { createScope } from './scope.js';
28
+ import { displayWidth } from './vendor/spec-core/text/index.js';
28
29
  /** The files a relative Python import can name, most likely first. */
29
30
  function pythonCandidates(resolved) {
30
31
  return [`${resolved}.py`, `${resolved}.pyi`, `${resolved}/__init__.py`, `${resolved}/__init__.pyi`];
@@ -255,6 +256,15 @@ export async function impactOf(options) {
255
256
  function plural(count, one, many) {
256
257
  return `${count} ${count === 1 ? one : many}`;
257
258
  }
259
+ /**
260
+ * A text and the spaces after it that make it `width` columns wide in a
261
+ * terminal. `.padEnd` counts UTF-16 units, and a path such as `src/頁面.ts`
262
+ * is nine of them and eleven columns, so the column after it began two
263
+ * columns late on its line. Never given a text wider than `width`.
264
+ */
265
+ function padded(text, width) {
266
+ return `${text}${' '.repeat(width - displayWidth(text))}`;
267
+ }
258
268
  /** At most this many unresolved references are listed in the human report; JSON has them all. */
259
269
  const SHOWN_UNRESOLVED = 10;
260
270
  /** At most this many files are named under a rule in the human report; JSON has them all. */
@@ -274,9 +284,9 @@ export function formatImpact(report) {
274
284
  out.push(result.dependents.length === 0
275
285
  ? ' nothing in scope imports it'
276
286
  : ` ${plural(result.dependents.length, 'file depends', 'files depend')} on it, ${direct} directly${deepest > 1 ? `, up to ${deepest} imports away` : ''}`);
277
- const width = Math.max(0, ...result.dependents.map((dependent) => dependent.file.length));
287
+ const width = Math.max(0, ...result.dependents.map((dependent) => displayWidth(dependent.file)));
278
288
  for (const dependent of result.dependents) {
279
- out.push(` ${dependent.depth} ${dependent.file.padEnd(width)} imports ${dependent.via.imports} (line ${dependent.via.line})`);
289
+ out.push(` ${dependent.depth} ${padded(dependent.file, width)} imports ${dependent.via.imports} (line ${dependent.via.line})`);
280
290
  }
281
291
  out.push('');
282
292
  }