@descent-vtt/spec-guard 0.16.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 +68 -4
  2. package/README.md +503 -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 +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 +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/parser.js CHANGED
@@ -154,6 +154,91 @@ export const INACTIVE_STATUSES = new Set([
154
154
  'superseded',
155
155
  'archived',
156
156
  ]);
157
+ /**
158
+ * The status key, and the same key in Chinese, Traditional and Simplified, read
159
+ * wherever `status` is: in front matter, as a heading, as a label.
160
+ */
161
+ const STATUS_KEYS = new Set(['status', '狀態', '状态']);
162
+ /** What a table's left cell may name the status by: the status keys, and `State`, which tables of that form write as often. */
163
+ const TABLE_STATUS_KEYS = new Set([...STATUS_KEYS, 'state']);
164
+ /**
165
+ * Chinese status words, each under the English word it translates: the
166
+ * family's table (spec-core's ADR-0005; ADR-0010's amendment of 2026-09-30).
167
+ *
168
+ * Not new words. A Chinese word is read as the English it translates, and the
169
+ * English then does here what it does, so only a word under one of the six
170
+ * above withholds a document: 延後 is `deferred`, which stays in force as the
171
+ * English does, where spec-graph retires both. The value is the English word,
172
+ * so JSON, `cites` and the family's table read it as they read the English; the
173
+ * line is kept as written. Keyed by the English rather than listing it, so no
174
+ * word of the closed list is written twice.
175
+ */
176
+ const CHINESE_STATUS_WORDS = {
177
+ superseded: ['已被取代', '被取代', '已取代'],
178
+ deprecated: ['已棄用', '棄用', '已廢棄', '廢棄', '已停用', '已過時', '已弃用', '弃用', '已废弃', '废弃', '已过时'],
179
+ rejected: ['已否決', '否決', '已拒絕', '不採納', '已否决', '否决', '已拒绝', '不采纳'],
180
+ withdrawn: ['已撤回', '撤回', '已作廢', '作廢', '已作废', '作废'],
181
+ deferred: ['延後', '暫緩', '擱置', '延后', '暂缓', '搁置'],
182
+ archived: ['封存', '已封存', '歸檔', '已歸檔', '归档', '已归档'],
183
+ final: ['已定案', '定案', '已凍結', '已冻结'],
184
+ // "Provisionally accepted", read by its first word, as the English is; so
185
+ // 暫定接受 is not accepted, and is no word listed.
186
+ provisionally: ['暫定', '暂定'],
187
+ accepted: ['已接受', '接受', '已採納', '採納', '已核准', '核准', '已批准', '批准', '已生效', '生效', '已采纳', '采纳'],
188
+ implemented: ['已實施', '已完成', '已实施'],
189
+ draft: ['草稿', '草案'],
190
+ proposed: ['提議', '提案', '審查中', '審核中', '討論中', '待審', '待審核', '提议', '审查中', '审核中', '讨论中', '待审', '待审核'],
191
+ };
192
+ /**
193
+ * Every Chinese status word with the English it is read as. In no order: a
194
+ * word that begins a longer one - 待審 in 待審核 - is followed there by a Han
195
+ * character, which no word read may be, so at most one word is ever read.
196
+ */
197
+ const CHINESE_WORDS = Object.entries(CHINESE_STATUS_WORDS).flatMap(([english, words]) => words.map((word) => [word, english]));
198
+ /** What may follow a status word: nothing, white space, punctuation or a symbol, never another character of a word. */
199
+ const WORD_END = /^(?:$|[\s\p{P}\p{S}])/u;
200
+ /**
201
+ * 被, then what superseded the document, in thirty characters at most, and the
202
+ * verb: 被 ADR-0003 取代. With nothing between them it is 被取代, a word listed.
203
+ */
204
+ const SUPERSEDED_BY = /^已?被(.{1,30}?)(?:取代|替代|取而代之)/u;
205
+ /**
206
+ * A negation directly before a verb, which says the opposite: 未取代, 不再取代,
207
+ * and 尚未取代, whose 尚未 ends in 未.
208
+ */
209
+ const NEGATED = /(?:[不未非沒没無无勿]|不再)$/u;
210
+ /** A document reference after 已取代, past spaces or a colon: `已取代 ADR-0002`. */
211
+ const REFERENCE_AFTER = /^[ \t\u3000]*[::]?[ \t\u3000]*[A-Za-z0-9]/;
212
+ /**
213
+ * The English word a status written in Chinese is read as, or why none is,
214
+ * or undefined for a value that does not begin with a Han character.
215
+ *
216
+ * Chinese puts no space between words, so the word is not a first run of
217
+ * letters as the English is: it is the listed word the value begins with, and
218
+ * only when a space, punctuation or the end follows it, so that 草稿已核准 is no
219
+ * word listed and keeps its document in force. 被 and a verb of superseding
220
+ * within thirty characters is superseded, as "superseded by" is. Two readings
221
+ * are refused, each to keep a document in force rather than guess: 已取代
222
+ * before a document reference, which usually says which document this one
223
+ * supersedes; and a verb after a negation, which says the opposite. A value
224
+ * beginning with a negation, such as 未接受, begins with no word listed.
225
+ */
226
+ function chineseStatus(text) {
227
+ if (!/^\p{Script=Han}/u.test(text))
228
+ return undefined;
229
+ const found = CHINESE_WORDS.find(([word]) => text.startsWith(word) && WORD_END.test(text.slice(word.length)));
230
+ if (found !== undefined) {
231
+ const [word, english] = found;
232
+ return word === '已取代' && REFERENCE_AFTER.test(text.slice(word.length))
233
+ ? { reason: '"已取代" before a document reference names the document this one supersedes, not this one\'s status' }
234
+ : { value: english };
235
+ }
236
+ const superseded = SUPERSEDED_BY.exec(text);
237
+ if (superseded !== null && !NEGATED.test(superseded[1]) && WORD_END.test(text.slice(superseded[0].length))) {
238
+ return { value: 'superseded' };
239
+ }
240
+ return { reason: `"${text}" does not begin with a status word spec-guard reads` };
241
+ }
157
242
  /**
158
243
  * The three ways the key is spelled: `**Status**:`, `**Status:**`, `Status:`.
159
244
  *
@@ -164,32 +249,61 @@ export const INACTIVE_STATUSES = new Set([
164
249
  * colon is only consumed when it closes emphasis that opened the key. The
165
250
  * colon itself is mandatory, which keeps "Status reports are..." from being
166
251
  * read as metadata. Leading whitespace in the value is left to `toStatus`,
167
- * which trims it anyway.
252
+ * which trims it anyway. The key may be written in Chinese, 狀態 or 状态, and
253
+ * the colon full-width, `:`, as Chinese text writes it.
168
254
  */
169
- const STATUS_LABEL_RE = /^[ \t]{0,3}(?:(\*\*|__)status(?:\1[ \t]*:|[ \t]*:\1)|status[ \t]*:)(.*)/i;
255
+ const STATUS_LABEL_RE = /^[ \t]{0,3}(?:(\*\*|__)(?:status|狀態|状态)(?:\1[ \t]*[::]|[ \t]*[::]\1)|(?:status|狀態|状态)[ \t]*[::])(.*)/i;
170
256
  /**
171
- * Turns a status line into a status, or into nothing.
257
+ * Turns a status line into a status, or into why it is none.
172
258
  *
173
259
  * The value is the first run of letters, so "Accepted (0.3.0)." and
174
260
  * "Superseded by ADR-0007" normalise to one word while the line as written
175
261
  * survives for the report - a reader shown "superseded" learns much less than
176
- * one shown what it was superseded by.
262
+ * one shown what it was superseded by. A value that begins with a Han character
263
+ * is read as the English word its Chinese translates (`chineseStatus`), so
264
+ * `已取代(2024)` is superseded and keeps its line.
177
265
  */
178
266
  function toStatus(raw, source) {
179
267
  const trimmed = raw.trim();
180
268
  // The word is read through any leading emphasis, so `**Superseded** by
181
269
  // ADR-0007` is superseded rather than nothing at all - which is what a rule
182
- // that required the markers to balance made of it.
183
- const word = /^[*_]*([a-zA-Z]+)/.exec(trimmed);
184
- if (!word)
185
- return undefined;
270
+ // that required the markers to balance made of it. The `^` decides nothing:
271
+ // the pattern matches the empty string, so its first match is at the start
272
+ // whether or not it is anchored there.
273
+ const text = trimmed.replace(/^[*_]*/, '');
274
+ const english = /^[a-zA-Z]+/.exec(text)?.[0].toLowerCase();
275
+ const read = english === undefined ? chineseStatus(text) : { value: english };
276
+ if (read === undefined || 'reason' in read)
277
+ return read ?? {};
186
278
  // The label loses emphasis only when it wraps the whole line. `**Draft**` is
187
279
  // a status written in bold and reads better without the markers; "Superseded
188
280
  // by *ADR-0007*" is a sentence with emphasis inside it, and taking one marker
189
281
  // off each end would put a half-mangled line in the report.
190
- const label = trimmed.replace(/^(\*{1,2}|_{1,2})(.*)\1$/, '$2');
191
- const value = word[1].toLowerCase();
192
- return { value, label, source, active: !INACTIVE_STATUSES.has(value) };
282
+ const label = unwrapped(trimmed);
283
+ return { status: { value: read.value, label, source, active: !INACTIVE_STATUSES.has(read.value) } };
284
+ }
285
+ /** A text without the emphasis that wraps the whole of it, if any does. */
286
+ function unwrapped(text) {
287
+ return text.replace(/^(\*{1,2}|_{1,2})(.*)\1$/, '$2');
288
+ }
289
+ /** Why a status written as `text` cannot be read: the reason it was given, or what the text holds. */
290
+ function unreadable(text, reason) {
291
+ return reason ?? (text.trim() === '' ? 'it is empty' : `"${text}" does not begin with a word`);
292
+ }
293
+ /**
294
+ * The reading of a status written in the body - a section, or a label - on
295
+ * `line`: the status, or a warning there that it cannot be read, which keeps
296
+ * the document in force. `subject` names where it was written.
297
+ */
298
+ function decided(read, line, text, subject, below) {
299
+ if ('status' in read)
300
+ return { status: read.status };
301
+ return {
302
+ problem: {
303
+ line,
304
+ message: `${subject} cannot be read (${unreadable(text, read.reason)}), so its status is unrecognised and the document stays in force${below}`,
305
+ },
306
+ };
193
307
  }
194
308
  /**
195
309
  * The status front matter declares, or undefined when front matter names none.
@@ -227,22 +341,40 @@ function fromFrontmatter(scan) {
227
341
  const declared = block.kind === 'toml' ? tomlStatus(block.raw, (offset) => scan.index.positionAt(block.start + offset).line) : yamlStatus(scan, block);
228
342
  if (declared === undefined)
229
343
  return undefined;
230
- const status = 'text' in declared ? toStatus(declared.text, 'frontmatter') : undefined;
231
- if (status !== undefined)
232
- return { status };
233
- const reason = 'reason' in declared ? declared.reason : declared.text.trim() === '' ? 'it is empty' : `"${declared.text}" does not begin with a word`;
344
+ let reason;
345
+ if ('text' in declared) {
346
+ const read = toStatus(declared.text, 'frontmatter');
347
+ if ('status' in read)
348
+ return { status: read.status };
349
+ reason = unreadable(declared.text, read.reason);
350
+ }
351
+ else {
352
+ reason = declared.reason;
353
+ }
234
354
  return {
235
355
  problem: {
236
356
  line: declared.line,
237
357
  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`,
358
+ ...('hint' in declared ? { hint: declared.hint } : {}),
238
359
  },
239
360
  };
240
361
  }
241
- /** The `status` of YAML front matter, as spec-core's reader reads it, or undefined when it has none. */
362
+ /**
363
+ * The status of YAML front matter, as spec-core's reader reads it: its
364
+ * `status`, or without one its `狀態`, or without that its `状态`; undefined
365
+ * when it has none of them.
366
+ *
367
+ * The reader reads a key of any script from its copy of `5666c96`, so the key
368
+ * in Chinese is an entry as `status` is, and its value is read as that key's
369
+ * is: quoted or plain, to a comment, and refused in the same words when it
370
+ * goes on under the key.
371
+ */
242
372
  function yamlStatus(scan, block) {
243
- const entry = findEntry(readFrontMatter(scan.text.slice(0, block.bodyStart)), 'status');
373
+ const text = scan.text.slice(0, block.bodyStart);
374
+ const frontMatter = readFrontMatter(text);
375
+ const entry = findEntry(frontMatter, 'status') ?? findEntry(frontMatter, '狀態') ?? findEntry(frontMatter, '状态');
244
376
  if (entry === undefined)
245
- return undefined;
377
+ return fullWidthKey(scan, text);
246
378
  // The reader counts lines from 0 in the text the scan read, which is the
247
379
  // document's own lines after any byte-order mark.
248
380
  const line = entry.line + 1;
@@ -251,6 +383,30 @@ function yamlStatus(scan, block) {
251
383
  return { line, text: value.scalar.text };
252
384
  return { line, reason: value.kind === 'list' ? 'a list is not a status' : value.reason };
253
385
  }
386
+ /** A top-level `狀態` or `状态` followed by a full-width colon, which YAML does not read as one. */
387
+ const FULL_WIDTH_KEY = /^(狀態|状态)[ \t]*:/m;
388
+ /**
389
+ * The status key in Chinese written with a full-width colon, as Chinese text
390
+ * writes one, on the first line of YAML front matter at the top level that
391
+ * holds it.
392
+ *
393
+ * YAML ends a key at an ASCII colon and at nothing else, so `状态:草稿` is a
394
+ * line YAML would not read as the key, and the reader passes over it. It is a
395
+ * status that cannot be read: its document stays in force, nothing below the
396
+ * front matter is read in its place, and the warning says to write the colon
397
+ * in ASCII. A label or a heading in the body is prose, where the full-width
398
+ * colon is read.
399
+ */
400
+ function fullWidthKey(scan, frontMatter) {
401
+ const found = FULL_WIDTH_KEY.exec(frontMatter);
402
+ if (found === null)
403
+ return undefined;
404
+ return {
405
+ line: scan.index.positionAt(found.index).line,
406
+ reason: 'YAML ends a key at an ASCII colon, and this one is full-width',
407
+ hint: `write "${found[1]}:" with an ASCII colon`,
408
+ };
409
+ }
254
410
  /*
255
411
  * What ends a line in TOML front matter, as the scanner ends its lines, and
256
412
  * then what else ends what is being read. Past the end of the text `charAt`
@@ -433,7 +589,8 @@ function tomlStatus(raw, lineAt) {
433
589
  return;
434
590
  }
435
591
  };
436
- const isStatus = (part) => keyName(part) === 'status';
592
+ // A key written in Chinese is quoted, since TOML's bare keys are ASCII.
593
+ const isStatus = (part) => STATUS_KEYS.has(keyName(part));
437
594
  /** The value of the top-level `status` key, from just past the key. */
438
595
  const status = (parts, at) => {
439
596
  const line = lineAt(at);
@@ -486,27 +643,76 @@ function tomlStatus(raw, lineAt) {
486
643
  }
487
644
  return undefined;
488
645
  }
646
+ /** What a status in the body that cannot be read says of the spellings ranked below it. */
647
+ const NOT_READ_BELOW = '; a status written elsewhere in the document is not read in its place';
489
648
  /**
490
- * A `## Status` section, whose value is the first line of prose under it.
649
+ * A `## Status` section, whose value is the first line of prose under it,
650
+ * before the next heading.
491
651
  *
492
652
  * The section is a heading the scanner reads - ATX or setext, at any level, and
493
653
  * never one inside code or a comment, which is where a template keeps a
494
654
  * `## Status` it has not filled in. Its text is compared whole, so `## Status
495
655
  * of the migration` is a section about something else.
496
656
  *
497
- * A section with nothing but the next heading under it declares no status.
498
- * There is no guard for that here: an ATX heading begins with `#`, and a value
499
- * that does not begin with a letter is already no status at all.
657
+ * A section that is there decides, as front matter's key does: one whose value
658
+ * cannot be read - nothing under it before the next heading, or a line that
659
+ * begins with no word - keeps the document in force, says so on that line, and
660
+ * the label is not read in its place. It used to be: `## Status` over
661
+ * `2024-05-01: accepted` handed over to a `Status: draft` line in the preamble,
662
+ * and a status that cannot be read withheld a document by accident.
500
663
  */
501
664
  function fromHeading(scan) {
502
- const heading = scan.headings.find((candidate) => candidate.text.toLowerCase() === 'status');
503
- if (heading === undefined)
665
+ const at = scan.headings.findIndex((candidate) => STATUS_KEYS.has(candidate.text.toLowerCase()));
666
+ if (at === -1)
504
667
  return undefined;
668
+ const heading = scan.headings[at];
669
+ const next = scan.headings[at + 1];
670
+ const subject = `the status under the heading "${heading.text}"`;
505
671
  const view = scan.masks.directives;
506
- for (const line of scan.lines.slice(heading.endLine)) {
672
+ for (const line of scan.lines.slice(heading.endLine, next === undefined ? undefined : next.line - 1)) {
507
673
  const candidate = view.slice(line.start, line.end).trim();
508
674
  if (candidate.length > 0)
509
- return toStatus(candidate, 'heading');
675
+ return decided(toStatus(candidate, 'heading'), line.line, candidate, subject, NOT_READ_BELOW);
676
+ }
677
+ return decided({}, heading.line, '', subject, NOT_READ_BELOW);
678
+ }
679
+ /**
680
+ * The line the document's preamble ends before: that of its first heading of
681
+ * level two or deeper, or past the last line. A heading the scanner reads, so
682
+ * a `##` shown in code or kept in a comment does not end the preamble early.
683
+ */
684
+ function preambleEnd(scan) {
685
+ return scan.headings.find((heading) => heading.level >= 2)?.line ?? Number.POSITIVE_INFINITY;
686
+ }
687
+ /**
688
+ * A table of two columns in the preamble, one of whose rows - the header row
689
+ * among them - names the status in its left cell and gives it in its right:
690
+ * `| 狀態 | 已接受 |`, or `| Status | Accepted |` under a header row.
691
+ *
692
+ * It ranks where a `## Status` section does, after one, before the label:
693
+ * front matter still decides first. Two columns and the preamble are what
694
+ * make it this document's status. A table of more columns, or one further
695
+ * down, is a register of other documents or a legend of what each word means,
696
+ * whose status column is theirs; neither is read, whatever it holds. The left
697
+ * cell is compared whole, without the emphasis that wraps it and in any case,
698
+ * so `**Status**` names the status and `Status of the migration` does not; the
699
+ * right cell is read with code masked, as a section's line is. The first row
700
+ * that names it decides, readable or not, as a section does.
701
+ */
702
+ function fromTable(scan) {
703
+ const end = preambleEnd(scan);
704
+ const view = scan.masks.directives;
705
+ // `<` and `<=` read alike: the scanner makes no row of a heading's line, so
706
+ // no table starts on the one that ends the preamble.
707
+ for (const table of scan.tables.filter((candidate) => candidate.line < end && candidate.headers.length === 2)) {
708
+ for (const row of [{ cells: table.headers, line: table.line }, ...table.rows]) {
709
+ // Every row has a cell: the scanner ends a table at a line with none.
710
+ const [key, value] = row.cells;
711
+ if (!TABLE_STATUS_KEYS.has(unwrapped(key.text).toLowerCase()))
712
+ continue;
713
+ const text = value === undefined ? '' : view.slice(value.start, value.end).trim();
714
+ return decided(toStatus(text, 'table'), row.line, text, 'the status in the table', NOT_READ_BELOW);
715
+ }
510
716
  }
511
717
  return undefined;
512
718
  }
@@ -516,39 +722,40 @@ function fromHeading(scan) {
516
722
  * Bounded to the preamble - everything before the first heading of level two
517
723
  * or deeper - because this form is a line of prose with a colon in it, and a
518
724
  * tool that accepts one anywhere in a long document will eventually find one in
519
- * a sentence. The bound is a heading the scanner reads, so a `##` shown in code
520
- * or kept in a comment does not end the preamble early.
725
+ * a sentence. The first such line decides, and one whose value cannot be read
726
+ * says so, as a section does.
521
727
  */
522
728
  function fromLabel(scan) {
523
- const section = scan.headings.find((heading) => heading.level >= 2);
524
729
  const view = scan.masks.directives;
525
- for (const line of section === undefined ? scan.lines : scan.lines.slice(0, section.line - 1)) {
730
+ for (const line of scan.lines.slice(0, preambleEnd(scan) - 1)) {
526
731
  const found = STATUS_LABEL_RE.exec(view.slice(line.start, line.end));
527
732
  if (found)
528
- return toStatus(found[2], 'label');
733
+ return decided(toStatus(found[2], 'label'), line.line, found[2].trim(), 'the status label', '');
529
734
  }
530
735
  return undefined;
531
736
  }
532
737
  /**
533
738
  * The lifecycle status a Markdown document declares about itself.
534
739
  *
535
- * Three spellings are recognised because three are in use, including two in
740
+ * Four spellings are recognised because four are in use, including two in
536
741
  * 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.
742
+ * lines), a `## Status` section (Nygard), a table of two columns in the
743
+ * preamble, and a bold `**Status:**` label; each with the key in English or in
744
+ * Chinese. Front-matter wins when it has a status key, readable or not, and
745
+ * when it never closes - it is machine-readable metadata rather than a
746
+ * convention read out of prose, and front matter that cannot be read is no
747
+ * licence to read the prose instead. Then the section, the table and the
748
+ * label, the first of them that is there deciding, readable or not.
542
749
  *
543
- * The section and the label are read with code masked, so a document that
544
- * documents this syntax inside a fence - this project's README does - is not
545
- * read as declaring a status.
750
+ * The section, the table and the label are read with code masked, so a
751
+ * document that documents this syntax inside a fence - this project's README
752
+ * does - is not read as declaring a status.
546
753
  */
547
754
  export function parseStatus(source) {
548
755
  return statusOf(scanMarkdown(source)).status;
549
756
  }
550
757
  function statusOf(scan) {
551
- return fromFrontmatter(scan) ?? { status: fromHeading(scan) ?? fromLabel(scan) };
758
+ return fromFrontmatter(scan) ?? fromHeading(scan) ?? fromTable(scan) ?? fromLabel(scan) ?? {};
552
759
  }
553
760
  /**
554
761
  * The document's title: its first level-one heading, ATX or setext, as the
@@ -741,7 +948,7 @@ function directivesOf(source, scan, context) {
741
948
  const at = (line) => ({ file: context.file, relativeFile: context.relativeFile, line, column: 1 });
742
949
  const warnings = [
743
950
  ...unclosedFrontMatter(scan).map(({ line, message }) => ({ location: at(line), kind: 'unclosed-front-matter', message })),
744
- ...(problem === undefined ? [] : [{ location: at(problem.line), kind: 'unreadable-status', message: problem.message }]),
951
+ ...(problem === undefined ? [] : [{ location: at(problem.line), kind: 'unreadable-status', message: problem.message, ...(problem.hint === undefined ? {} : { hint: problem.hint }) }]),
745
952
  ...unclosedBlocks(scan).map(({ line, message }) => ({ location: at(line), kind: 'unclosed-block', message })),
746
953
  ];
747
954
  const hidden = maskedDirectives(source, masked, scan, starts, context);
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,OAAO,EAA8E,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG1H,OAAO,KAAK,EAKV,WAAW,EAIZ,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,UAAU,EACR,UAAU,GACV,MAAM,GACN,qBAAqB,GACrB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,SAAS,GACT,cAAc,GACd,IAAI,CACP,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAsI7C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2D1D;AA8DD,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMpE;AAwPD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BhF"}
1
+ {"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,OAAO,EAA8E,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG1H,OAAO,KAAK,EAKV,WAAW,EAIZ,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,UAAU,EACR,UAAU,GACV,MAAM,GACN,qBAAqB,GACrB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,SAAS,GACT,cAAc,GACd,IAAI,CACP,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAsI7C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2D1D;AA8DD,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMpE;AAwPD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAgChF"}
package/dist/prove.js CHANGED
@@ -526,7 +526,8 @@ export async function proveSpecGuard(options) {
526
526
  results.push(await proveAssertion(assertion, context));
527
527
  const count = (outcome) => results.filter((result) => result.outcome === outcome).length;
528
528
  return {
529
- ok: count('survived') === 0 && plan.errors.length === 0,
529
+ ok: count('survived') === 0 && plan.errors.length === 0 && !plan.nothingVerified,
530
+ ...(plan.nothingVerified ? { nothingVerified: true } : {}),
530
531
  root,
531
532
  durationMs: elapsed(startedAt),
532
533
  summary: {