@descent-vtt/spec-guard 0.14.0 → 0.16.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 +99 -0
- package/README.md +19 -11
- package/dist/glob.d.ts +3 -1
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +108 -38
- package/dist/glob.js.map +1 -1
- package/dist/parser.d.ts +6 -5
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +276 -33
- package/dist/parser.js.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.d.ts +3 -2
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.js +36 -24
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
- package/package.json +1 -1
package/dist/parser.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* what a status line means. ADR-0002.
|
|
23
23
|
*/
|
|
24
24
|
import { lineStarts, locate } from './text.js';
|
|
25
|
-
import { findEntry, readFrontMatter, scanMarkdown, titleOf } from './vendor/spec-core/markdown/index.js';
|
|
25
|
+
import { findEntry, keyName, readFrontMatter, scanMarkdown, titleOf, } from './vendor/spec-core/markdown/index.js';
|
|
26
26
|
/** Every directive spec-guard understands. */
|
|
27
27
|
export const KINDS = new Set([
|
|
28
28
|
'assert-absence',
|
|
@@ -192,22 +192,24 @@ function toStatus(raw, source) {
|
|
|
192
192
|
return { value, label, source, active: !INACTIVE_STATUSES.has(value) };
|
|
193
193
|
}
|
|
194
194
|
/**
|
|
195
|
-
* The status front matter declares,
|
|
196
|
-
* front matter names none.
|
|
195
|
+
* The status front matter declares, or undefined when front matter names none.
|
|
197
196
|
*
|
|
198
|
-
* spec-core's reader, which the family's tools share: a quoted
|
|
199
|
-
* up to its closing quote and a plain one up to a comment, as
|
|
200
|
-
* reader this replaced did - MADR's own template quotes the
|
|
201
|
-
* `"proposed" # decided at review` is proposed. Quotes and `#` are
|
|
202
|
-
* and nowhere else.
|
|
197
|
+
* YAML is read by spec-core's reader, which the family's tools share: a quoted
|
|
198
|
+
* value is taken up to its closing quote and a plain one up to a comment, as
|
|
199
|
+
* the one-line reader this replaced did - MADR's own template quotes the
|
|
200
|
+
* status, and `"proposed" # decided at review` is proposed. Quotes and `#` are
|
|
201
|
+
* syntax here and nowhere else. TOML, between `+++` lines, is read for this
|
|
202
|
+
* one key by `tomlStatus`: a string on one line, quoted as TOML quotes it.
|
|
203
203
|
*
|
|
204
204
|
* A `status` key decides, whether or not its value can be read. One the reader
|
|
205
205
|
* refuses - continued onto the next line, text after a closing quote, `: ` in
|
|
206
|
-
* a plain value - or one with no word in it declares no
|
|
207
|
-
* the document in force, and says why. It used to be
|
|
208
|
-
* `## Status` section or a `Status:` line further down was
|
|
209
|
-
* `status: "accepted" (2024-05-01)` above a section still
|
|
210
|
-
* took an accepted decision out of force.
|
|
206
|
+
* a plain value, a TOML array or table - or one with no word in it declares no
|
|
207
|
+
* status, which leaves the document in force, and says why. It used to be
|
|
208
|
+
* skipped, and then a `## Status` section or a `Status:` line further down was
|
|
209
|
+
* read in its place: `status: "accepted" (2024-05-01)` above a section still
|
|
210
|
+
* saying `Proposed` took an accepted decision out of force. TOML's key was
|
|
211
|
+
* once not read at all, and `status = "accepted"` above the same section was
|
|
212
|
+
* withheld by it.
|
|
211
213
|
*
|
|
212
214
|
* Front matter opened on the first line and never closed decides the same
|
|
213
215
|
* way. Its author wrote front matter, and what it says cannot be read, so the
|
|
@@ -219,31 +221,271 @@ function toStatus(raw, source) {
|
|
|
219
221
|
function fromFrontmatter(scan) {
|
|
220
222
|
if (scan.unclosedFrontMatter !== null)
|
|
221
223
|
return {};
|
|
222
|
-
|
|
224
|
+
const block = scan.frontMatter;
|
|
225
|
+
if (block === null)
|
|
223
226
|
return undefined;
|
|
224
|
-
const
|
|
225
|
-
if (
|
|
227
|
+
const declared = block.kind === 'toml' ? tomlStatus(block.raw, (offset) => scan.index.positionAt(block.start + offset).line) : yamlStatus(scan, block);
|
|
228
|
+
if (declared === undefined)
|
|
226
229
|
return undefined;
|
|
227
|
-
const
|
|
228
|
-
const status = value.kind === 'scalar' ? toStatus(value.scalar.text, 'frontmatter') : undefined;
|
|
230
|
+
const status = 'text' in declared ? toStatus(declared.text, 'frontmatter') : undefined;
|
|
229
231
|
if (status !== undefined)
|
|
230
232
|
return { status };
|
|
231
|
-
const reason =
|
|
232
|
-
? value.reason
|
|
233
|
-
: value.kind === 'list'
|
|
234
|
-
? 'a list is not a status'
|
|
235
|
-
: value.scalar.text.trim() === ''
|
|
236
|
-
? 'it is empty'
|
|
237
|
-
: `"${value.scalar.text}" does not begin with a word`;
|
|
233
|
+
const reason = 'reason' in declared ? declared.reason : declared.text.trim() === '' ? 'it is empty' : `"${declared.text}" does not begin with a word`;
|
|
238
234
|
return {
|
|
239
235
|
problem: {
|
|
240
|
-
|
|
241
|
-
// document's own lines after any byte-order mark.
|
|
242
|
-
line: entry.line + 1,
|
|
236
|
+
line: declared.line,
|
|
243
237
|
message: `the status in front matter cannot be read (${reason}), so its status is unrecognised and the document stays in force; a status written below the front matter is not read in its place`,
|
|
244
238
|
},
|
|
245
239
|
};
|
|
246
240
|
}
|
|
241
|
+
/** The `status` of YAML front matter, as spec-core's reader reads it, or undefined when it has none. */
|
|
242
|
+
function yamlStatus(scan, block) {
|
|
243
|
+
const entry = findEntry(readFrontMatter(scan.text.slice(0, block.bodyStart)), 'status');
|
|
244
|
+
if (entry === undefined)
|
|
245
|
+
return undefined;
|
|
246
|
+
// The reader counts lines from 0 in the text the scan read, which is the
|
|
247
|
+
// document's own lines after any byte-order mark.
|
|
248
|
+
const line = entry.line + 1;
|
|
249
|
+
const { value } = entry;
|
|
250
|
+
if (value.kind === 'scalar')
|
|
251
|
+
return { line, text: value.scalar.text };
|
|
252
|
+
return { line, reason: value.kind === 'list' ? 'a list is not a status' : value.reason };
|
|
253
|
+
}
|
|
254
|
+
/*
|
|
255
|
+
* What ends a line in TOML front matter, as the scanner ends its lines, and
|
|
256
|
+
* then what else ends what is being read. Past the end of the text `charAt`
|
|
257
|
+
* reads the empty string, which each of them includes, so every walk that
|
|
258
|
+
* stops at one of them stops at the end as well.
|
|
259
|
+
*/
|
|
260
|
+
const TOML_LINE_END = '\n\r';
|
|
261
|
+
/** What may follow a value on its line: nothing, or a comment. */
|
|
262
|
+
const TOML_VALUE_END = '\n\r#';
|
|
263
|
+
/** What ends a number, a boolean or a date: its line, or the array or inline table it is in. */
|
|
264
|
+
const TOML_BARE_END = '\n\r#,]}';
|
|
265
|
+
const TOML_BARE_KEY = /[A-Za-z0-9_-]/;
|
|
266
|
+
/** TOML 1.0's escapes. A later version's `\e` and `\x` are refused, which leaves the document in force. */
|
|
267
|
+
const TOML_ESCAPES = { b: '\b', t: '\t', n: '\n', f: '\f', r: '\r', '"': '"', '\\': '\\' };
|
|
268
|
+
const TOML_HEX_DIGITS = { u: 4, U: 8 };
|
|
269
|
+
/**
|
|
270
|
+
* The top-level `status` of TOML front matter, as TOML reads it, or undefined
|
|
271
|
+
* when it has none. `raw` is the text between the `+++` lines, and `lineAt`
|
|
272
|
+
* turns an offset in it into a line of the document.
|
|
273
|
+
*
|
|
274
|
+
* Only that key is read, and only as a string on one line - `status =
|
|
275
|
+
* "accepted"` or `status = 'accepted'`, with the blanks and the comment TOML
|
|
276
|
+
* allows around it. spec-guard depends on nothing, and a TOML parser would be
|
|
277
|
+
* its first dependency, for one key. The rest of the block is walked rather
|
|
278
|
+
* than read: strings, arrays and inline tables are stepped over to their ends,
|
|
279
|
+
* whatever lines those are on, so that a `status = "draft"` line inside a
|
|
280
|
+
* multi-line string is not taken for the key, nor a `[1, 2]` line inside an
|
|
281
|
+
* array for a table header, which would end the top level early.
|
|
282
|
+
*
|
|
283
|
+
* The key is the document's when it comes before the first table header, or
|
|
284
|
+
* when a header names it; it is compared as the YAML reader compares keys, so
|
|
285
|
+
* `Status` is it. Any other form of it - a multi-line string, an array, a
|
|
286
|
+
* table, a value that is not a string - is why it cannot be read, as a YAML
|
|
287
|
+
* value the reader refuses is. A `status` in a table is the table's, one in an
|
|
288
|
+
* inline table is that table's, and one in a comment is not written. A line
|
|
289
|
+
* this walk cannot follow is passed over to its end, as the YAML reader passes
|
|
290
|
+
* over a line that is not `key: value`.
|
|
291
|
+
*/
|
|
292
|
+
function tomlStatus(raw, lineAt) {
|
|
293
|
+
let i = 0;
|
|
294
|
+
const peek = () => raw.charAt(i);
|
|
295
|
+
const opens = (delimiter) => raw.startsWith(delimiter, i);
|
|
296
|
+
const blank = () => {
|
|
297
|
+
while (peek() === ' ' || peek() === '\t')
|
|
298
|
+
i += 1;
|
|
299
|
+
};
|
|
300
|
+
const toLineEnd = () => {
|
|
301
|
+
while (!TOML_LINE_END.includes(peek()))
|
|
302
|
+
i += 1;
|
|
303
|
+
};
|
|
304
|
+
/** Blanks, newlines and comments: what may come between the items of an array or an inline table. */
|
|
305
|
+
const space = () => {
|
|
306
|
+
for (;;) {
|
|
307
|
+
blank();
|
|
308
|
+
if (peek() === '#')
|
|
309
|
+
toLineEnd();
|
|
310
|
+
if (peek() !== '\n' && peek() !== '\r')
|
|
311
|
+
return;
|
|
312
|
+
i += 1;
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
/** A string on one line, basic or literal, from its opening quote: its text, or why it cannot be read. */
|
|
316
|
+
const string = () => {
|
|
317
|
+
const quote = peek();
|
|
318
|
+
let text = '';
|
|
319
|
+
for (i += 1;; i += 1) {
|
|
320
|
+
const ch = peek();
|
|
321
|
+
if (TOML_LINE_END.includes(ch))
|
|
322
|
+
return { reason: 'the string is never closed on its line' };
|
|
323
|
+
if (ch === quote) {
|
|
324
|
+
i += 1;
|
|
325
|
+
return { text };
|
|
326
|
+
}
|
|
327
|
+
if (ch !== '\\' || quote === "'") {
|
|
328
|
+
text += ch;
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
const code = raw.charAt(i + 1);
|
|
332
|
+
// A backslash ending the line escapes nothing, and the string runs off it.
|
|
333
|
+
if (TOML_LINE_END.includes(code))
|
|
334
|
+
continue;
|
|
335
|
+
i += 1;
|
|
336
|
+
const simple = TOML_ESCAPES[code];
|
|
337
|
+
if (simple !== undefined) {
|
|
338
|
+
text += simple;
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
const width = TOML_HEX_DIGITS[code] ?? 0;
|
|
342
|
+
const hex = raw.slice(i + 1, i + 1 + width);
|
|
343
|
+
// Every line of the block ends in a terminator, which is not a digit, so
|
|
344
|
+
// an escape cut short is never all digits.
|
|
345
|
+
if (!/^[0-9A-Fa-f]+$/.test(hex))
|
|
346
|
+
return { reason: `"\\${code}" is not an escape this reader knows` };
|
|
347
|
+
const point = Number.parseInt(hex, 16);
|
|
348
|
+
if (point > 0x10ffff)
|
|
349
|
+
return { reason: `"\\${code}${hex}" is not a character` };
|
|
350
|
+
text += String.fromCodePoint(point);
|
|
351
|
+
i += width;
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
/** Steps over a multi-line string from its opening delimiter to its closing one, or to the end. */
|
|
355
|
+
const multiline = (delimiter) => {
|
|
356
|
+
const quote = delimiter.charAt(0);
|
|
357
|
+
i += 3;
|
|
358
|
+
while (peek() !== '') {
|
|
359
|
+
if (opens(delimiter)) {
|
|
360
|
+
// Up to two quotes just inside the closing delimiter are the string's,
|
|
361
|
+
// so the string ends where the run of quotes does.
|
|
362
|
+
while (peek() === quote)
|
|
363
|
+
i += 1;
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
// In a basic string a backslash escapes what follows it, a quote included.
|
|
367
|
+
i += peek() === '\\' && quote === '"' ? 2 : 1;
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
/** A key, dotted or not, as its parts, and the blanks after it; undefined where none is written. */
|
|
371
|
+
const key = () => {
|
|
372
|
+
const parts = [];
|
|
373
|
+
for (;;) {
|
|
374
|
+
blank();
|
|
375
|
+
if (peek() === '"' || peek() === "'") {
|
|
376
|
+
const read = string();
|
|
377
|
+
if ('reason' in read)
|
|
378
|
+
return undefined;
|
|
379
|
+
parts.push(read.text);
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
const from = i;
|
|
383
|
+
while (TOML_BARE_KEY.test(peek()))
|
|
384
|
+
i += 1;
|
|
385
|
+
if (i === from)
|
|
386
|
+
return undefined;
|
|
387
|
+
parts.push(raw.slice(from, i));
|
|
388
|
+
}
|
|
389
|
+
blank();
|
|
390
|
+
if (peek() !== '.')
|
|
391
|
+
return parts;
|
|
392
|
+
i += 1;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
/** The `=` after a key, and the blanks after it. */
|
|
396
|
+
const equals = () => {
|
|
397
|
+
if (peek() !== '=')
|
|
398
|
+
return false;
|
|
399
|
+
i += 1;
|
|
400
|
+
blank();
|
|
401
|
+
return true;
|
|
402
|
+
};
|
|
403
|
+
/** Steps over a value to its end, or to what it cannot follow. */
|
|
404
|
+
const value = () => {
|
|
405
|
+
if (opens('"""') || opens("'''"))
|
|
406
|
+
multiline(raw.slice(i, i + 3));
|
|
407
|
+
else if (peek() === '"' || peek() === "'")
|
|
408
|
+
string();
|
|
409
|
+
else if (peek() === '[' || peek() === '{')
|
|
410
|
+
brackets();
|
|
411
|
+
else
|
|
412
|
+
while (!TOML_BARE_END.includes(peek()))
|
|
413
|
+
i += 1;
|
|
414
|
+
};
|
|
415
|
+
/** Steps over an array or an inline table from its opening bracket to its closing one, or to what it cannot follow. */
|
|
416
|
+
const brackets = () => {
|
|
417
|
+
const table = peek() === '{';
|
|
418
|
+
const close = table ? '}' : ']';
|
|
419
|
+
i += 1;
|
|
420
|
+
for (;;) {
|
|
421
|
+
space();
|
|
422
|
+
if (peek() === close) {
|
|
423
|
+
i += 1;
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
if (table && (key() === undefined || !equals()))
|
|
427
|
+
return;
|
|
428
|
+
value();
|
|
429
|
+
space();
|
|
430
|
+
if (peek() === ',')
|
|
431
|
+
i += 1;
|
|
432
|
+
else if (peek() !== close)
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
const isStatus = (part) => keyName(part) === 'status';
|
|
437
|
+
/** The value of the top-level `status` key, from just past the key. */
|
|
438
|
+
const status = (parts, at) => {
|
|
439
|
+
const line = lineAt(at);
|
|
440
|
+
const cannot = (reason) => ({ line, reason });
|
|
441
|
+
if (parts.length > 1)
|
|
442
|
+
return cannot('a table is not a status');
|
|
443
|
+
if (!equals())
|
|
444
|
+
return cannot('"=" does not follow the key');
|
|
445
|
+
if (opens('"""') || opens("'''"))
|
|
446
|
+
return cannot('a multi-line string is not read; write it as "..." on one line');
|
|
447
|
+
const ch = peek();
|
|
448
|
+
if (ch === '[')
|
|
449
|
+
return cannot('an array is not a status');
|
|
450
|
+
if (ch === '{')
|
|
451
|
+
return cannot('a table is not a status');
|
|
452
|
+
if (TOML_VALUE_END.includes(ch))
|
|
453
|
+
return cannot('it is empty');
|
|
454
|
+
if (ch !== '"' && ch !== "'")
|
|
455
|
+
return cannot('it is not a string; quote it');
|
|
456
|
+
const read = string();
|
|
457
|
+
if ('reason' in read)
|
|
458
|
+
return cannot(read.reason);
|
|
459
|
+
blank();
|
|
460
|
+
return TOML_VALUE_END.includes(peek()) ? { line, text: read.text } : cannot('text follows a closing quote');
|
|
461
|
+
};
|
|
462
|
+
let root = true;
|
|
463
|
+
while (peek() !== '') {
|
|
464
|
+
blank();
|
|
465
|
+
const at = i;
|
|
466
|
+
if (peek() === '[') {
|
|
467
|
+
const array = opens('[[');
|
|
468
|
+
i += array ? 2 : 1;
|
|
469
|
+
const header = key();
|
|
470
|
+
if (header !== undefined && isStatus(header[0])) {
|
|
471
|
+
return { line: lineAt(at), reason: array ? 'an array of tables is not a status' : 'a table is not a status' };
|
|
472
|
+
}
|
|
473
|
+
root = false;
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
// A blank line or a comment holds no key, so it is passed over as a
|
|
477
|
+
// line that cannot be followed is.
|
|
478
|
+
const parts = key();
|
|
479
|
+
if (parts !== undefined && root && isStatus(parts[0]))
|
|
480
|
+
return status(parts, at);
|
|
481
|
+
if (parts !== undefined && equals())
|
|
482
|
+
value();
|
|
483
|
+
}
|
|
484
|
+
toLineEnd();
|
|
485
|
+
i += 1;
|
|
486
|
+
}
|
|
487
|
+
return undefined;
|
|
488
|
+
}
|
|
247
489
|
/**
|
|
248
490
|
* A `## Status` section, whose value is the first line of prose under it.
|
|
249
491
|
*
|
|
@@ -291,11 +533,12 @@ function fromLabel(scan) {
|
|
|
291
533
|
* The lifecycle status a Markdown document declares about itself.
|
|
292
534
|
*
|
|
293
535
|
* Three spellings are recognised because three are in use, including two in
|
|
294
|
-
* this repository's own ADRs:
|
|
295
|
-
* (Nygard), and a bold `**Status:**` label.
|
|
296
|
-
* `status` key, readable or not, and when it
|
|
297
|
-
* machine-readable metadata rather than a convention read
|
|
298
|
-
* front matter that cannot be read is no licence to read the
|
|
536
|
+
* this repository's own ADRs: front-matter (MADR's YAML, or TOML between `+++`
|
|
537
|
+
* lines), a `## Status` section (Nygard), and a bold `**Status:**` label.
|
|
538
|
+
* Front-matter wins when it has a `status` key, readable or not, and when it
|
|
539
|
+
* never closes - it is machine-readable metadata rather than a convention read
|
|
540
|
+
* out of prose, and front matter that cannot be read is no licence to read the
|
|
541
|
+
* prose instead.
|
|
299
542
|
*
|
|
300
543
|
* The section and the label are read with code masked, so a document that
|
|
301
544
|
* documents this syntax inside a fence - this project's README does - is not
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,9 @@
|
|
|
29
29
|
* - Braces expand first, and each alternative reads as it would written on
|
|
30
30
|
* its own: `{src/,lib}` is `src/` or `lib`, and a trailing `/` means the
|
|
31
31
|
* directory's contents - in an exclusion, the directory and its contents.
|
|
32
|
-
*
|
|
33
|
-
* the
|
|
32
|
+
* `{/docs,lib}` is `/docs` or `lib`, the leading `/` rooting or anchoring
|
|
33
|
+
* that alternative as it would the pattern. One that names no path,
|
|
34
|
+
* `{./,lib}` or `{,lib}`, is refused, as `./` and the empty pattern are.
|
|
34
35
|
* - Case is the caller's decision, stated every time. A result must not
|
|
35
36
|
* depend on the host it ran on.
|
|
36
37
|
* - A malformed pattern is an error, never a literal. An unclosed `[` or `{`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/vendor/spec-core/pattern/glob.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../../src/vendor/spec-core/pattern/glob.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,9 @@
|
|
|
29
29
|
* - Braces expand first, and each alternative reads as it would written on
|
|
30
30
|
* its own: `{src/,lib}` is `src/` or `lib`, and a trailing `/` means the
|
|
31
31
|
* directory's contents - in an exclusion, the directory and its contents.
|
|
32
|
-
*
|
|
33
|
-
* the
|
|
32
|
+
* `{/docs,lib}` is `/docs` or `lib`, the leading `/` rooting or anchoring
|
|
33
|
+
* that alternative as it would the pattern. One that names no path,
|
|
34
|
+
* `{./,lib}` or `{,lib}`, is refused, as `./` and the empty pattern are.
|
|
34
35
|
* - Case is the caller's decision, stated every time. A result must not
|
|
35
36
|
* depend on the host it ran on.
|
|
36
37
|
* - A malformed pattern is an error, never a literal. An unclosed `[` or `{`,
|
|
@@ -86,22 +87,13 @@ function build(source, options) {
|
|
|
86
87
|
return 'a negated pattern is a list entry, not a glob; narrow the positive pattern';
|
|
87
88
|
if (/(?:^|[^\\])[?*+@!]\([^)]*\|/.test(pattern))
|
|
88
89
|
return EXTGLOB;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
let anchored = false;
|
|
95
|
-
if (pattern.startsWith('/')) {
|
|
96
|
-
if (options.dialect === 'gitignore')
|
|
97
|
-
anchored = true;
|
|
98
|
-
else
|
|
99
|
-
rooted = true;
|
|
100
|
-
pattern = pattern.replace(/^\/+/, '');
|
|
101
|
-
}
|
|
102
|
-
if (pattern.length === 0)
|
|
90
|
+
// The pattern's own leading slash is taken off before the braces expand, so
|
|
91
|
+
// that the root itself, and a text the braces give, are refused in the
|
|
92
|
+
// words they always were: `/{./,a}` is told `./`.
|
|
93
|
+
const whole = unrooted(pattern);
|
|
94
|
+
if (whole.text.length === 0)
|
|
103
95
|
return 'the pattern names the root itself, not a path under it';
|
|
104
|
-
const expanded = expandBraces(
|
|
96
|
+
const expanded = expandBraces(whole.text, escapes);
|
|
105
97
|
if (typeof expanded === 'string')
|
|
106
98
|
return expanded;
|
|
107
99
|
const alternatives = [];
|
|
@@ -111,13 +103,19 @@ function build(source, options) {
|
|
|
111
103
|
// Each text the braces give is shorter than the pattern, so only a
|
|
112
104
|
// pattern without braces is its own text.
|
|
113
105
|
if (namesNoPath(text))
|
|
114
|
-
return text ===
|
|
115
|
-
|
|
106
|
+
return text === whole.text ? 'the pattern names no path' : bracesNamingNoPath(text);
|
|
107
|
+
// Its leading slash is read as the pattern's is, since braces expand
|
|
108
|
+
// before anything else is decided: `{/docs,x}` is `/docs` or `x`. Left to
|
|
109
|
+
// `parseAlternative`, the slash would be an empty segment, dropped, and
|
|
110
|
+
// `/docs` would read as `docs`. A slash after a segment, as in
|
|
111
|
+
// `a/{/b,c}`, starts no text, and is the empty segment of `a//b`.
|
|
112
|
+
const alone = unrooted(text);
|
|
113
|
+
const parsed = parseAlternative(trailingSlash(alone.text, options.dialect), escapes);
|
|
116
114
|
if (parsed === GLOBSTAR_IN_NAME)
|
|
117
115
|
return `${GLOBSTAR_IN_NAME}: ${globstarAdvice(written)}`;
|
|
118
116
|
if (typeof parsed === 'string')
|
|
119
117
|
return parsed;
|
|
120
|
-
alternatives.push(parsed);
|
|
118
|
+
alternatives.push({ ...parsed, rooted: whole.rooted || alone.rooted });
|
|
121
119
|
}
|
|
122
120
|
const builder = new Builder();
|
|
123
121
|
const fragments = [];
|
|
@@ -125,7 +123,7 @@ function build(source, options) {
|
|
|
125
123
|
let automaton;
|
|
126
124
|
try {
|
|
127
125
|
for (const alternative of alternatives) {
|
|
128
|
-
const compiled = compileAlternative(builder, alternative, options
|
|
126
|
+
const compiled = compileAlternative(builder, alternative, options);
|
|
129
127
|
fragments.push(compiled.fragment);
|
|
130
128
|
bases.push(compiled.base);
|
|
131
129
|
}
|
|
@@ -261,6 +259,20 @@ function classEnd(pattern, open, escapes) {
|
|
|
261
259
|
return -1;
|
|
262
260
|
}
|
|
263
261
|
/* ---------------------------------------------------------------- segments */
|
|
262
|
+
/**
|
|
263
|
+
* A pattern, or a text its braces give, without the `./` and the slashes it
|
|
264
|
+
* starts with, and whether a slash led it once the `./` was gone. What a
|
|
265
|
+
* leading slash means is the dialect's: it roots a pattern at the
|
|
266
|
+
* filesystem's root in `path` and `ripgrep`, and only anchors it at the
|
|
267
|
+
* repository root in `gitignore`, as git reads one. `.//docs` is led by one,
|
|
268
|
+
* as `/docs` is.
|
|
269
|
+
*/
|
|
270
|
+
function unrooted(text) {
|
|
271
|
+
let rest = text;
|
|
272
|
+
while (rest.startsWith('./'))
|
|
273
|
+
rest = rest.slice(2);
|
|
274
|
+
return { text: rest.replace(/^\/+/, ''), rooted: rest.startsWith('/') };
|
|
275
|
+
}
|
|
264
276
|
/** Whether a pattern's text names no path: nothing in it but `/` and `.` segments. */
|
|
265
277
|
function namesNoPath(text) {
|
|
266
278
|
return text.split('/').every((part) => part === '' || part === '.');
|
|
@@ -504,14 +516,14 @@ function segmentsFragment(b, segments) {
|
|
|
504
516
|
});
|
|
505
517
|
return b.sequence(parts);
|
|
506
518
|
}
|
|
507
|
-
function compileAlternative(b, alternative, options
|
|
508
|
-
const { segments } = alternative;
|
|
519
|
+
function compileAlternative(b, alternative, options) {
|
|
520
|
+
const { segments, rooted } = alternative;
|
|
509
521
|
const body = segmentsFragment(b, segments);
|
|
510
522
|
const root = rooted ? '/' : '';
|
|
511
523
|
const literal = literalText(segments);
|
|
512
524
|
const leading = leadingLiteral(segments);
|
|
513
525
|
if (options.dialect === 'gitignore') {
|
|
514
|
-
const floating = !
|
|
526
|
+
const floating = !rooted && !alternative.slashed;
|
|
515
527
|
const parts = [body, b.optional(beneath(b))];
|
|
516
528
|
if (floating)
|
|
517
529
|
parts.unshift(anyDirectories(b));
|