@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.
- package/CHANGELOG.md +68 -4
- package/README.md +503 -512
- package/dist/cites.d.ts.map +1 -1
- package/dist/cites.js +5 -1
- package/dist/cites.js.map +1 -1
- package/dist/cli.d.ts +3 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -4
- package/dist/cli.js.map +1 -1
- package/dist/glob.d.ts +25 -18
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +127 -136
- package/dist/glob.js.map +1 -1
- package/dist/impact.d.ts.map +1 -1
- package/dist/impact.js +12 -2
- package/dist/impact.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +5 -3
- package/dist/mcp.js.map +1 -1
- package/dist/parser.d.ts +11 -9
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +250 -43
- package/dist/parser.js.map +1 -1
- package/dist/prove.d.ts.map +1 -1
- package/dist/prove.js +2 -1
- package/dist/prove.js.map +1 -1
- package/dist/reporter.d.ts +12 -4
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +200 -48
- package/dist/reporter.js.map +1 -1
- package/dist/runner.d.ts +12 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +13 -4
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +24 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
- package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.d.ts +85 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.js +207 -17
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
- package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
- package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/index.js +1 -1
- package/dist/vendor/spec-core/pattern/index.js.map +1 -1
- package/dist/vendor/spec-core/text/index.d.ts +1 -0
- package/dist/vendor/spec-core/text/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/text/index.js +1 -0
- package/dist/vendor/spec-core/text/index.js.map +1 -1
- package/dist/vendor/spec-core/text/width.d.ts +31 -0
- package/dist/vendor/spec-core/text/width.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/width.js +113 -0
- package/dist/vendor/spec-core/text/width.js.map +1 -0
- 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]
|
|
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
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
231
|
-
if (
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
/**
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
498
|
-
*
|
|
499
|
-
*
|
|
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
|
|
503
|
-
if (
|
|
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
|
|
520
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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),
|
|
538
|
-
*
|
|
539
|
-
*
|
|
540
|
-
*
|
|
541
|
-
* prose
|
|
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
|
|
544
|
-
* documents this syntax inside a fence - this project's README
|
|
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) ??
|
|
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);
|
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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"}
|
package/dist/prove.d.ts.map
CHANGED
|
@@ -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,
|
|
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: {
|