@milehimikey/em 1.19.6 → 1.20.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/.claude/skills/event-modeling/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/reference/conform.md +32 -4
- package/.claude/skills/event-modeling-design/SKILL.md +14 -3
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-discover/reference/extract.md +8 -0
- package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
- package/.claude/skills/event-modeling-implement/SKILL.md +7 -2
- package/.claude/skills/event-modeling-implement/reference/implement.md +73 -6
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +24 -4
- package/.claude/skills/event-modeling-shared/reference/methodology.md +16 -0
- package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +1 -1
- package/.claude/skills/event-modeling-shared/templates/slice.md +6 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/README.md +11 -1
- package/dist/catalog/docBadge.d.ts +16 -0
- package/dist/catalog/docBadge.js +50 -0
- package/dist/catalog/docBadge.js.map +1 -0
- package/dist/catalog/docModelConsistencyValidate.js +9 -2
- package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
- package/dist/catalog/invTokens.d.ts +49 -0
- package/dist/catalog/invTokens.js +94 -0
- package/dist/catalog/invTokens.js.map +1 -0
- package/dist/catalog/pages.js +48 -1
- package/dist/catalog/pages.js.map +1 -1
- package/dist/catalog/scenarios.d.ts +4 -0
- package/dist/catalog/scenarios.js +4 -1
- package/dist/catalog/scenarios.js.map +1 -1
- package/dist/catalog/sliceDoc.d.ts +46 -1
- package/dist/catalog/sliceDoc.js +90 -2
- package/dist/catalog/sliceDoc.js.map +1 -1
- package/dist/catalog/sliceDocRender.d.ts +3 -0
- package/dist/catalog/sliceDocRender.js +295 -0
- package/dist/catalog/sliceDocRender.js.map +1 -0
- package/dist/cli/conformSupersede.js +13 -3
- package/dist/cli/conformSupersede.js.map +1 -1
- package/dist/cli/coverage.d.ts +13 -23
- package/dist/cli/coverage.js +51 -91
- package/dist/cli/coverage.js.map +1 -1
- package/dist/cli/markImplemented.js +21 -3
- package/dist/cli/markImplemented.js.map +1 -1
- package/dist/cli/refsCheck.d.ts +52 -0
- package/dist/cli/refsCheck.js +127 -1
- package/dist/cli/refsCheck.js.map +1 -1
- package/dist/cli/sliceConform.d.ts +100 -1
- package/dist/cli/sliceConform.js +182 -9
- package/dist/cli/sliceConform.js.map +1 -1
- package/dist/cli/status.js +4 -3
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/watchStoryline.d.ts +27 -0
- package/dist/cli/watchStoryline.js +55 -0
- package/dist/cli/watchStoryline.js.map +1 -0
- package/dist/cli.js +184 -24
- package/dist/cli.js.map +1 -1
- package/dist/emit/docJson.d.ts +99 -0
- package/dist/emit/docJson.js +197 -0
- package/dist/emit/docJson.js.map +1 -0
- package/dist/emit/refsJson.d.ts +5 -3
- package/dist/emit/refsJson.js +5 -2
- package/dist/emit/refsJson.js.map +1 -1
- package/dist/mcp/server.js +23 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/continuation.d.ts +9 -0
- package/dist/model/continuation.js +30 -0
- package/dist/model/continuation.js.map +1 -1
- package/dist/model/rules.d.ts +8 -0
- package/dist/model/rules.js +8 -0
- package/dist/model/rules.js.map +1 -1
- package/dist/model/shapeLint.js +48 -0
- package/dist/model/shapeLint.js.map +1 -1
- package/dist/model/validate.js +119 -0
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/ast.d.ts +8 -0
- package/dist/parser/parser.js +51 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/render/render.js +1 -1
- package/dist/render/render.js.map +1 -1
- package/dist/render/sliceOverlay.d.ts +7 -2
- package/dist/render/sliceOverlay.js +28 -3
- package/dist/render/sliceOverlay.js.map +1 -1
- package/dist/render/storylinePicker.d.ts +9 -0
- package/dist/render/storylinePicker.js +17 -0
- package/dist/render/storylinePicker.js.map +1 -0
- package/dist/render/viewerHtml.js +1 -1
- package/dist/render/viewerHtml.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/shared/reference/em-dsl.md +24 -4
- package/plugin/shared/reference/methodology.md +16 -0
- package/plugin/shared/reference/slice-doc-schema.md +1 -1
- package/plugin/shared/templates/slice.md +6 -1
- package/plugin/skills/conform/SKILL.md +1 -1
- package/plugin/skills/conform/reference/conform.md +32 -4
- package/plugin/skills/design/SKILL.md +14 -3
- package/plugin/skills/discover/SKILL.md +1 -1
- package/plugin/skills/discover/reference/extract.md +8 -0
- package/plugin/skills/engagement/SKILL.md +1 -1
- package/plugin/skills/event-modeling/SKILL.md +1 -1
- package/plugin/skills/implement/SKILL.md +7 -2
- package/plugin/skills/implement/reference/implement.md +73 -6
- package/plugin/skills/review/SKILL.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliceDoc.js","sourceRoot":"","sources":["../../src/catalog/sliceDoc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sliceDoc.js","sourceRoot":"","sources":["../../src/catalog/sliceDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// GH #402: section-aware HTML rendering for a slice doc's body — the same `marked` dependency
|
|
3
|
+
// already bundled for `em catalog` (docs/dependencies.md), driven through custom renderer
|
|
4
|
+
// extensions instead of marked's flat default output. No new dependency, and no change to the
|
|
5
|
+
// body markdown a doc author writes — only how it renders to HTML. A fresh `Marked` instance is
|
|
6
|
+
// built per call (the package's own guidance, see marked's `Marked` class doc comment: "create a
|
|
7
|
+
// separate Marked instance and use Marked#use" for per-call configuration) so the per-doc
|
|
8
|
+
// invariant-anchor bookkeeping below never leaks across two docs rendered in the same `em
|
|
9
|
+
// catalog`/`em watch` run.
|
|
10
|
+
//
|
|
11
|
+
// - Given/When/Then scenario cards: a `### Scenario: <title>` heading immediately followed by a
|
|
12
|
+
// Given/When/Then bullet list, inside a `## Scenarios…` section, merges — at the token level
|
|
13
|
+
// (`hooks.processAllTokens`) — into one synthetic `scenarioCard` token rendered as a single
|
|
14
|
+
// bordered card. Acceptance is EXACTLY the strict grammar's (catalog/scenarios.ts): the
|
|
15
|
+
// candidate block's own raw text is run through `parseScenarios`, and only a block it accepts
|
|
16
|
+
// (all three beats present and non-empty, labels case-sensitive, column-0) becomes a card.
|
|
17
|
+
// Anything it would flag `slice-doc/structured-section-malformed` — a missing or empty beat, a
|
|
18
|
+
// lowercase label — and anything it ignores — a block outside a `## Scenarios…` section —
|
|
19
|
+
// renders exactly as flat markdown did before, so a diagnostic-worthy block never looks
|
|
20
|
+
// silently fixed by presentation.
|
|
21
|
+
// - INV-* chips: every `INV-<mnemonic>-<n>`-shaped token (the grammar catalog/invTokens.ts's
|
|
22
|
+
// `INV_TOKEN_RE` defines, `\b`-bounded on both sides) becomes a chip. An ID this doc declares
|
|
23
|
+
// in its own Invariants/Delta ownership section (`extractInvariantIds` — the same scan `em
|
|
24
|
+
// coverage`/`em validate` already trust as "this doc owns this ID") gets its anchor at its
|
|
25
|
+
// first rendered occurrence INSIDE that ownership section — not at an earlier passing citation
|
|
26
|
+
// (the template's canonical order puts the Command field table, whose Rules column cites ids,
|
|
27
|
+
// before `## Invariants`); every other mention, before or after, links to the anchor. Only
|
|
28
|
+
// when the ownership section has no chip-renderable occurrence of the id (e.g. the declaring
|
|
29
|
+
// bullet backticks it, which renders as a codespan marked's inline extensions never enter)
|
|
30
|
+
// does the anchor fall back to the id's first rendered mention anywhere. An ID this doc never
|
|
31
|
+
// declares (a narrative citation of a sibling slice's rule) renders as a plain, unlinked chip.
|
|
32
|
+
// - Field tables: every markdown table (the GENERATED command/event/view tables, MIL-266,
|
|
33
|
+
// included) gets a `field-table` class, and its Type / Notes-or-Rules / Required-or-
|
|
34
|
+
// Immutable-Fact column (matched by header text, position-independent since the three
|
|
35
|
+
// REGION_TABLE_HEADERS shapes don't share a column order) gets a `col-type`/`col-notes`/
|
|
36
|
+
// `col-flag` class — same table, just styled.
|
|
37
|
+
//
|
|
38
|
+
// Pure: markdown text in, HTML string out. No frontmatter, no SliceDoc, no drift
|
|
39
|
+
// classification — those live one level up (catalog/docBadge.ts), kept out of this module on
|
|
40
|
+
// purpose so it never has to depend on catalog/sliceDoc.ts or catalog/driftSignal.ts. The INV
|
|
41
|
+
// grammar comes from catalog/invTokens.ts (a leaf), NOT cli/coverage.ts, which imports
|
|
42
|
+
// catalog/docJoin.ts → catalog/sliceDoc.ts → this module — an import cycle invTokens.ts exists
|
|
43
|
+
// to break.
|
|
44
|
+
import { Marked } from "marked";
|
|
45
|
+
import { extractInvariantIds, INV_TOKEN_RE, OWNERSHIP_HEADING_RE } from "./invTokens.js";
|
|
46
|
+
import { parseScenarios, SCENARIOS_SECTION_RE } from "./scenarios.js";
|
|
47
|
+
/** INV_TOKEN_RE's token run, anchored at the current inline-lexer position; the `\b` on each
|
|
48
|
+
* side is enforced by the tokenizer below (the preceding character lives in the already-lexed
|
|
49
|
+
* tokens, outside what a `^`-anchored regex can see). */
|
|
50
|
+
const INV_CHIP_RE = /^INV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*/;
|
|
51
|
+
/** The strict grammar's heading prefix (scenarios.ts `SCENARIO_HEADING_RE`), case-sensitive, as
|
|
52
|
+
* it appears in a heading token's inner text. */
|
|
53
|
+
const SCENARIO_PREFIX_RE = /^Scenario:\s*/;
|
|
54
|
+
/** The strict grammar's beat labels (scenarios.ts `LABEL_RE`), case-sensitive. */
|
|
55
|
+
const GWT_LABEL_RE = /^(Given|When|Then):$/;
|
|
56
|
+
function escapeHtml(s) {
|
|
57
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
58
|
+
}
|
|
59
|
+
/** The Given/When/Then label a scenario list item's bullet opens with, or null when its first
|
|
60
|
+
* child isn't a bold `**Given:**`/`**When:**`/`**Then:**` label (exact case — the strict
|
|
61
|
+
* grammar's) — scenarios.ts's shape, read off the already-lexed token tree. */
|
|
62
|
+
function itemLabel(item) {
|
|
63
|
+
const first = item.tokens[0];
|
|
64
|
+
if (!first || (first.type !== "text" && first.type !== "paragraph"))
|
|
65
|
+
return null;
|
|
66
|
+
const inline = first.tokens;
|
|
67
|
+
const strong = inline?.[0];
|
|
68
|
+
if (!strong || strong.type !== "strong")
|
|
69
|
+
return null;
|
|
70
|
+
const m = GWT_LABEL_RE.exec(strong.text);
|
|
71
|
+
return m ? m[1].toLowerCase() : null;
|
|
72
|
+
}
|
|
73
|
+
/** True when every item of a bullet list is Given/When/Then-labelled — the card layout can only
|
|
74
|
+
* label steps it recognizes, so a list with any stray unlabelled bullet stays a plain list even
|
|
75
|
+
* when the strict grammar would accept the block (it ignores such bullets; a card would have to
|
|
76
|
+
* mislabel them). */
|
|
77
|
+
function isScenarioList(list) {
|
|
78
|
+
if (!list || list.type !== "list")
|
|
79
|
+
return false;
|
|
80
|
+
const items = list.items;
|
|
81
|
+
return items.length > 0 && items.every((it) => itemLabel(it) !== null);
|
|
82
|
+
}
|
|
83
|
+
/** The strict grammar's verdict on a candidate heading+list pair, by parsing the pair's OWN raw
|
|
84
|
+
* text (under a synthetic `## Scenarios` opener, since section membership was already checked
|
|
85
|
+
* against the doc's real headings). Accepted means `parseScenarios` yields exactly this one
|
|
86
|
+
* scenario and no problems — the exact acceptance `slice-doc/structured-section-malformed` and
|
|
87
|
+
* `em export`'s `doc.scenarios` use, not a re-implementation of it. A block the full-doc parse
|
|
88
|
+
* would flag can never pass here: the snippet is a subset of the block's lines, and beats only
|
|
89
|
+
* accumulate, so snippet-accepted implies full-doc-accepted. */
|
|
90
|
+
function strictGrammarAccepts(heading, list) {
|
|
91
|
+
const snippet = `## Scenarios\n${heading.raw.trimEnd()}\n${list.raw}`;
|
|
92
|
+
const parsed = parseScenarios(snippet);
|
|
93
|
+
return parsed.problems.length === 0 && parsed.scenarios.length === 1;
|
|
94
|
+
}
|
|
95
|
+
/** The heading's own inline tokens, with the literal `Scenario: ` prefix stripped off the first
|
|
96
|
+
* text token — so the title's own inline formatting (an INV-* mention included) still renders. */
|
|
97
|
+
function stripScenarioPrefix(heading) {
|
|
98
|
+
const [first, ...rest] = heading.tokens;
|
|
99
|
+
if (!first || first.type !== "text")
|
|
100
|
+
return heading.tokens;
|
|
101
|
+
const stripped = first.text.replace(SCENARIO_PREFIX_RE, "");
|
|
102
|
+
if (stripped === first.text)
|
|
103
|
+
return heading.tokens;
|
|
104
|
+
return [{ ...first, text: stripped, raw: stripped }, ...rest];
|
|
105
|
+
}
|
|
106
|
+
/** Merges each strict-grammar-accepted `### Scenario: <title>` heading + Given/When/Then list
|
|
107
|
+
* pair inside a `## Scenarios…` section into one `scenarioCard` token, so the two render as a
|
|
108
|
+
* single card instead of a heading followed by a loose bullet list. Section tracking mirrors
|
|
109
|
+
* `parseScenarios`' own raw-line rule: a literal `## Scenarios…` ATX heading opens the section,
|
|
110
|
+
* any other `#`/`##` ATX heading closes it. Everything else — a block outside the section, a
|
|
111
|
+
* missing or empty beat, a lowercase label — passes through untouched and renders as plain
|
|
112
|
+
* markdown. Runs once, over the top-level token array, via `hooks.processAllTokens`. */
|
|
113
|
+
function mergeScenarioCards(tokens) {
|
|
114
|
+
const out = [];
|
|
115
|
+
let inScenarios = false;
|
|
116
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
117
|
+
const t = tokens[i];
|
|
118
|
+
if (t.type === "heading") {
|
|
119
|
+
// Same boundary rule as parseScenarios, applied to the heading's raw first line: only a
|
|
120
|
+
// `#`/`##` line toggles the section; `###` and deeper never do.
|
|
121
|
+
const rawLine = t.raw.split(/\r?\n/)[0];
|
|
122
|
+
if (/^#{1,2}\s/.test(rawLine))
|
|
123
|
+
inScenarios = SCENARIOS_SECTION_RE.test(rawLine);
|
|
124
|
+
}
|
|
125
|
+
if (inScenarios && t.type === "heading" && t.depth === 3 && SCENARIO_PREFIX_RE.test(t.text)) {
|
|
126
|
+
const heading = t;
|
|
127
|
+
let j = i + 1;
|
|
128
|
+
while (j < tokens.length && tokens[j].type === "space")
|
|
129
|
+
j++;
|
|
130
|
+
const list = tokens[j];
|
|
131
|
+
if (isScenarioList(list) && strictGrammarAccepts(heading, list)) {
|
|
132
|
+
const card = { type: "scenarioCard", raw: heading.raw + list.raw, titleTokens: stripScenarioPrefix(heading), list };
|
|
133
|
+
out.push(card);
|
|
134
|
+
i = j;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
out.push(t);
|
|
139
|
+
}
|
|
140
|
+
const links = tokens.links;
|
|
141
|
+
if (links !== undefined)
|
|
142
|
+
out.links = links;
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
function scenarioStepBodyHtml(parser, item) {
|
|
146
|
+
const first = item.tokens[0];
|
|
147
|
+
const inlineRest = (first.tokens ?? []).slice(1);
|
|
148
|
+
const inlineHtml = parser.parseInline(inlineRest).trim();
|
|
149
|
+
const blockRest = item.tokens.slice(1);
|
|
150
|
+
const blockHtml = blockRest.length > 0 ? parser.parse(blockRest) : "";
|
|
151
|
+
return inlineHtml + blockHtml;
|
|
152
|
+
}
|
|
153
|
+
function renderScenarioCard(token) {
|
|
154
|
+
const { titleTokens, list } = token;
|
|
155
|
+
const titleHtml = this.parser.parseInline(titleTokens);
|
|
156
|
+
const steps = list.items
|
|
157
|
+
.map((item) => {
|
|
158
|
+
// itemLabel() is non-null for every item — isScenarioList() gated the merge on that.
|
|
159
|
+
const label = itemLabel(item);
|
|
160
|
+
const name = label[0].toUpperCase() + label.slice(1);
|
|
161
|
+
const body = scenarioStepBodyHtml(this.parser, item);
|
|
162
|
+
return (`<div class="scenario-step scenario-step--${label}">` +
|
|
163
|
+
`<span class="scenario-step-label">${name}</span>` +
|
|
164
|
+
`<div class="scenario-step-body">${body}</div></div>`);
|
|
165
|
+
})
|
|
166
|
+
.join("");
|
|
167
|
+
return `<div class="scenario-card"><h3 class="scenario-card-title">${titleHtml}</h3>${steps}</div>`;
|
|
168
|
+
}
|
|
169
|
+
/** The defining ids that will actually RENDER as a chip somewhere inside the ownership section —
|
|
170
|
+
* where the definition anchor belongs. Scanned from the raw body with code spans stripped,
|
|
171
|
+
* because a backticked id renders as a codespan, which marked's inline extensions never enter:
|
|
172
|
+
* such an id still *defines* (extractInvariantIds reads raw text), but its anchor has to fall
|
|
173
|
+
* back to the first rendered mention anywhere. */
|
|
174
|
+
function ownershipRenderableIds(body, definingIds) {
|
|
175
|
+
const out = new Set();
|
|
176
|
+
let inOwnership = false;
|
|
177
|
+
for (const line of body.split(/\r?\n/)) {
|
|
178
|
+
if (/^#{1,2}\s/.test(line)) {
|
|
179
|
+
inOwnership = OWNERSHIP_HEADING_RE.test(line);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (!inOwnership)
|
|
183
|
+
continue;
|
|
184
|
+
const noCode = line.replace(/`[^`]*`/g, "");
|
|
185
|
+
for (const m of noCode.matchAll(INV_TOKEN_RE))
|
|
186
|
+
if (definingIds.has(m[0]))
|
|
187
|
+
out.add(m[0]);
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
191
|
+
const WORD_CHAR_RE = /[A-Za-z0-9_]/;
|
|
192
|
+
/** A fresh inline extension per render call: `claimed` is per-doc state (which IDs have already
|
|
193
|
+
* been given their one anchor), so two docs rendered back to back in the same `em catalog` run
|
|
194
|
+
* never share it — see the file header comment on why a fresh `Marked` instance is built per
|
|
195
|
+
* call. `definingIds` is this doc's own `extractInvariantIds(body)` result; `anchorInOwnership`
|
|
196
|
+
* the subset whose anchor must wait for the ownership section (`ownershipRenderableIds`);
|
|
197
|
+
* `state.inOwnership` is kept current by the heading renderer in `renderSliceDocBodyHtml`. */
|
|
198
|
+
function invChipExtension(definingIds, anchorInOwnership, state) {
|
|
199
|
+
const claimed = new Set();
|
|
200
|
+
return {
|
|
201
|
+
name: "invChip",
|
|
202
|
+
level: "inline",
|
|
203
|
+
start(src) {
|
|
204
|
+
const i = src.indexOf("INV-");
|
|
205
|
+
return i < 0 ? undefined : i;
|
|
206
|
+
},
|
|
207
|
+
tokenizer(src, tokens) {
|
|
208
|
+
const m = INV_CHIP_RE.exec(src);
|
|
209
|
+
if (!m)
|
|
210
|
+
return undefined;
|
|
211
|
+
// INV_TOKEN_RE's \b on both sides: a run glued to a preceding word character (`XINV-1`,
|
|
212
|
+
// the preceding text is the last already-lexed inline token) or followed by one (only `_`
|
|
213
|
+
// can follow the greedy alphanumeric run and still be a word character) is not a token.
|
|
214
|
+
const prev = tokens[tokens.length - 1];
|
|
215
|
+
const prevChar = typeof prev?.raw === "string" ? prev.raw.slice(-1) : "";
|
|
216
|
+
if (WORD_CHAR_RE.test(prevChar))
|
|
217
|
+
return undefined;
|
|
218
|
+
if (src.charAt(m[0].length) === "_")
|
|
219
|
+
return undefined;
|
|
220
|
+
return { type: "invChip", raw: m[0], id: m[0] };
|
|
221
|
+
},
|
|
222
|
+
renderer(token) {
|
|
223
|
+
const { id } = token;
|
|
224
|
+
if (!definingIds.has(id))
|
|
225
|
+
return `<span class="inv-chip inv-chip--external">${escapeHtml(id)}</span>`;
|
|
226
|
+
const anchor = `inv-${id.toLowerCase()}`;
|
|
227
|
+
if (claimed.has(id))
|
|
228
|
+
return `<a class="inv-chip inv-chip--ref" href="#${anchor}">${escapeHtml(id)}</a>`;
|
|
229
|
+
// The definition anchor belongs to the occurrence inside the ownership section; a passing
|
|
230
|
+
// citation rendered before it (the template puts the Command field table first) is a link.
|
|
231
|
+
if (anchorInOwnership.has(id) && !state.inOwnership) {
|
|
232
|
+
return `<a class="inv-chip inv-chip--ref" href="#${anchor}">${escapeHtml(id)}</a>`;
|
|
233
|
+
}
|
|
234
|
+
claimed.add(id);
|
|
235
|
+
return `<span class="inv-chip inv-chip--def" id="${anchor}">${escapeHtml(id)}</span>`;
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
// ---------------------------------------------------------------------------------------------
|
|
240
|
+
// Field tables.
|
|
241
|
+
/** Which styling class a generated region's table column gets, by header text — position-
|
|
242
|
+
* independent since REGION_TABLE_HEADERS' three shapes (command/event/view) don't share a
|
|
243
|
+
* column order (sliceSections.ts). */
|
|
244
|
+
function fieldColumnClass(header) {
|
|
245
|
+
if (/^type$/i.test(header))
|
|
246
|
+
return "col-type";
|
|
247
|
+
if (/notes|rules|validation/i.test(header))
|
|
248
|
+
return "col-notes";
|
|
249
|
+
if (/^(required|immutable fact\?)$/i.test(header))
|
|
250
|
+
return "col-flag";
|
|
251
|
+
return "";
|
|
252
|
+
}
|
|
253
|
+
function renderFieldTable(token) {
|
|
254
|
+
const headerHtml = token.header
|
|
255
|
+
.map((cell) => {
|
|
256
|
+
const cls = fieldColumnClass(cell.text);
|
|
257
|
+
return `<th${cls ? ` class="${cls}"` : ""}>${this.parser.parseInline(cell.tokens)}</th>`;
|
|
258
|
+
})
|
|
259
|
+
.join("");
|
|
260
|
+
const bodyHtml = token.rows
|
|
261
|
+
.map((row) => `<tr>${row
|
|
262
|
+
.map((cell, i) => {
|
|
263
|
+
const cls = fieldColumnClass(token.header[i]?.text ?? "");
|
|
264
|
+
return `<td${cls ? ` class="${cls}"` : ""}>${this.parser.parseInline(cell.tokens)}</td>`;
|
|
265
|
+
})
|
|
266
|
+
.join("")}</tr>`)
|
|
267
|
+
.join("");
|
|
268
|
+
return `<table class="field-table"><thead><tr>${headerHtml}</tr></thead><tbody>${bodyHtml}</tbody></table>`;
|
|
269
|
+
}
|
|
270
|
+
// ---------------------------------------------------------------------------------------------
|
|
271
|
+
/** The full `html` a slice doc's body renders to — `catalog/sliceDoc.ts`'s only caller. Replaces
|
|
272
|
+
* the plain `marked.parse(body)` this used to be with the section-aware rendering above. */
|
|
273
|
+
export function renderSliceDocBodyHtml(body) {
|
|
274
|
+
const definingIds = new Set(extractInvariantIds(body));
|
|
275
|
+
const anchorInOwnership = ownershipRenderableIds(body, definingIds);
|
|
276
|
+
const state = { inOwnership: false };
|
|
277
|
+
const m = new Marked();
|
|
278
|
+
m.use({
|
|
279
|
+
hooks: { processAllTokens: mergeScenarioCards },
|
|
280
|
+
extensions: [{ name: "scenarioCard", renderer: renderScenarioCard }, invChipExtension(definingIds, anchorInOwnership, state)],
|
|
281
|
+
renderer: {
|
|
282
|
+
// Tracks which section rendering is currently inside (same raw-line boundary rule the
|
|
283
|
+
// ownership scanners use), then falls through (`false`) to the default heading HTML.
|
|
284
|
+
heading(token) {
|
|
285
|
+
const rawLine = token.raw.split(/\r?\n/)[0];
|
|
286
|
+
if (/^#{1,2}\s/.test(rawLine))
|
|
287
|
+
state.inOwnership = OWNERSHIP_HEADING_RE.test(rawLine);
|
|
288
|
+
return false;
|
|
289
|
+
},
|
|
290
|
+
table: renderFieldTable,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
return m.parse(body, { async: false });
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=sliceDocRender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliceDocRender.js","sourceRoot":"","sources":["../../src/catalog/sliceDocRender.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
32
32
|
import { join } from "node:path";
|
|
33
33
|
import { isValidDateString } from "./stateFile.js";
|
|
34
|
-
import { applyFindingsRuling,
|
|
34
|
+
import { applyFindingsRuling, parseFindingsSpec, serializeFindingsDoc } from "./findings.js";
|
|
35
|
+
import { resolveFindingsForReport } from "./sliceConform.js";
|
|
35
36
|
const BANNER_PREFIX = "> **Superseded as of `";
|
|
36
37
|
/** Conservative charset for `--findings`: digits, commas, spaces, and either dash style (ASCII
|
|
37
38
|
* hyphen or an en/em dash pasted from a report) — enough to write "1-3", "1, 2, 4", or "1–3",
|
|
@@ -108,11 +109,20 @@ export function runConformSupersede(baseDir, reportPath, revision, findings, on,
|
|
|
108
109
|
if (ids === null) {
|
|
109
110
|
return { ok: false, message: `--findings "${findings}" doesn't parse into finding id(s) — expected e.g. "1-3" or "1, 2, 4"` };
|
|
110
111
|
}
|
|
111
|
-
|
|
112
|
+
// GH #391: the writer keeps the exact stem (ids are per file, so a ruling must land in ONE
|
|
113
|
+
// named file); when the twin is absent but same-revision files exist it refuses, naming them.
|
|
114
|
+
const lookup = resolveFindingsForReport(baseDir, reportPath, revision);
|
|
112
115
|
if (lookup.kind === "invalid") {
|
|
113
116
|
return { ok: false, message: lookup.message };
|
|
114
117
|
}
|
|
115
|
-
if (lookup.kind === "
|
|
118
|
+
if (lookup.kind === "revision") {
|
|
119
|
+
return {
|
|
120
|
+
ok: false,
|
|
121
|
+
message: `findings file beside ${reportPath} not found; same-revision files: ${lookup.files.map((f) => f.path).join(", ")} — ` +
|
|
122
|
+
"name the report to match its findings file (<x>-report.md <-> <x>-findings.json), or pass the per-slice report",
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (lookup.kind === "none") {
|
|
116
126
|
findingsRuling = {
|
|
117
127
|
kind: "no-findings-file",
|
|
118
128
|
warning: `no findings JSON found beside ${reportPath} — recording the banner only; the ruling ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformSupersede.js","sourceRoot":"","sources":["../../src/cli/conformSupersede.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,sFAAsF;AACtF,4FAA4F;AAC5F,yFAAyF;AACzF,wFAAwF;AACxF,8FAA8F;AAC9F,+FAA+F;AAC/F,iCAAiC;AACjC,EAAE;AACF,6FAA6F;AAC7F,gGAAgG;AAChG,iGAAiG;AACjG,8FAA8F;AAC9F,uFAAuF;AACvF,+FAA+F;AAC/F,6FAA6F;AAC7F,+FAA+F;AAC/F,+FAA+F;AAC/F,wCAAwC;AACxC,EAAE;AACF,iGAAiG;AACjG,8FAA8F;AAC9F,oFAAoF;AACpF,iGAAiG;AACjG,iGAAiG;AACjG,+FAA+F;AAC/F,gGAAgG;AAChG,iGAAiG;AACjG,2EAA2E;AAE3E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAgB,
|
|
1
|
+
{"version":3,"file":"conformSupersede.js","sourceRoot":"","sources":["../../src/cli/conformSupersede.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/coverage.d.ts
CHANGED
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
import { NormalizedModel } from "../model/model.js";
|
|
2
2
|
import { RefsResult } from "../model/refs.js";
|
|
3
|
-
|
|
4
|
-
* both `INV-1`/`INV-2` (the template's bare numbering) and `INV-CHK-4`/`INV-CHK-3a` (the
|
|
5
|
-
* per-slice mnemonic style reference/conform.md's own example uses). Exported so tests can
|
|
6
|
-
* assert against the exact grammar. */
|
|
7
|
-
export declare const INV_TOKEN_RE: RegExp;
|
|
8
|
-
/**
|
|
9
|
-
* Extract every distinct `INV-*` token this slice doc *defines*, in first-occurrence order (a
|
|
10
|
-
* rule stated once in `## Invariants` and re-declared in a later `## Delta` section dedupes to
|
|
11
|
-
* its first appearance — order is for stable, readable output, not a claim about which mention is
|
|
12
|
-
* canonical). Scoped to `OWNERSHIP_HEADING_RE`'s sections only, so a doc's prose narratively
|
|
13
|
-
* citing another slice's ID elsewhere (Dependencies, Open Questions, ...) doesn't cross-credit
|
|
14
|
-
* that ID as this slice's own (MIL-149) — the section ends at the next `#`/`##` heading or EOF,
|
|
15
|
-
* same boundary rule sliceDoc.ts's countOpenQuestions() uses, so a `### Added`/`#### Requirement`
|
|
16
|
-
* subheading under `## Delta` stays in scope while a sibling `## Scenarios` does not. Within that
|
|
17
|
-
* scope, only `STRUCTURAL_LINE_RE`'s bullet/subheading lines contribute — MIL-155 — so a wrapped
|
|
18
|
-
* continuation line that legitimately *cites* a sibling slice's ID while explaining this doc's own
|
|
19
|
-
* (e.g. an Invariants bullet's exactly-once rule wrapping onto a line naming another slice's
|
|
20
|
-
* queue-draining ID) doesn't cross-credit that citation just because it sits inside the ownership
|
|
21
|
-
* section too.
|
|
22
|
-
*/
|
|
23
|
-
export declare function extractInvariantIds(body: string): string[];
|
|
3
|
+
export { INV_TOKEN_RE, extractInvariantIds } from "../catalog/invTokens.js";
|
|
24
4
|
/**
|
|
25
5
|
* MIL-265: the subset of `extractInvariantIds(body)` the doc *restates as a rule* — ids written
|
|
26
6
|
* with the declaring label `**INV-X:**` (or `**INV-X**:`) on a structural line of an ownership
|
|
@@ -32,8 +12,18 @@ export declare function extractInvariantIds(body: string): string[];
|
|
|
32
12
|
export declare function extractDeclaredInvariantLabels(body: string): string[];
|
|
33
13
|
/**
|
|
34
14
|
* GH #286: like `extractDeclaredInvariantLabels`, but also returns the rule text after the label
|
|
35
|
-
* (`- **INV-X:** If `parentId` is set, ...`), trimmed.
|
|
36
|
-
*
|
|
15
|
+
* (`- **INV-X:** If `parentId` is set, ...`), trimmed. Since GH #401 (round 3) a soft-wrapped
|
|
16
|
+
* declaring bullet's indented continuation lines are joined into its text with single spaces
|
|
17
|
+
* (`isContinuationLine` — nested elaboration bullets stay excluded, as does everything MIL-155
|
|
18
|
+
* excludes from ID extraction): real docs wrap their rule sentences
|
|
19
|
+
* (examples/order-fulfillment/slices/capture-payment.md's INV-CAP-1), and a single-line capture
|
|
20
|
+
* exported 4 of that estate's 7 catalog entries mid-sentence. Walks the ownership sections
|
|
21
|
+
* line-by-line itself — `ownershipStructuralLines` drops the continuation lines on purpose
|
|
22
|
+
* (MIL-155, so a wrapped line's cross-citation never contributes an ID) and must stay that way
|
|
23
|
+
* for `extractInvariantIds`. Consumers: the advisory `command-second-intent` lint
|
|
24
|
+
* (catalog/invariantsValidate.ts) — unaffected by the join, since `conditionalField` matches
|
|
25
|
+
* patterns anchored at `^` and the join only appends tail text — and `em export --doc-json`'s
|
|
26
|
+
* doc-declared invariant fallback (emit/docJson.ts), which needs the full sentence.
|
|
37
27
|
*/
|
|
38
28
|
export declare function extractDeclaredInvariantRules(body: string): {
|
|
39
29
|
id: string;
|