@openuji/speculator 0.7.3 → 0.7.4

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 (50) hide show
  1. package/dist/parse/html/SpecStatementHtmlParser.d.ts +4 -1
  2. package/dist/parse/html/SpecStatementHtmlParser.d.ts.map +1 -1
  3. package/dist/parse/html/SpecStatementHtmlParser.js +42 -26
  4. package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -1
  5. package/dist/parse/html/parser.d.ts.map +1 -1
  6. package/dist/parse/html/parser.js +25 -1
  7. package/dist/parse/html/parser.js.map +1 -1
  8. package/dist/parse/index.d.ts +1 -0
  9. package/dist/parse/index.d.ts.map +1 -1
  10. package/dist/parse/index.js +2 -0
  11. package/dist/parse/index.js.map +1 -1
  12. package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -1
  13. package/dist/parse/markdown/HtmlBlockMarkdownParser.js +2 -1
  14. package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -1
  15. package/dist/parse/markdown/parser.d.ts.map +1 -1
  16. package/dist/parse/markdown/parser.js +6 -2
  17. package/dist/parse/markdown/parser.js.map +1 -1
  18. package/dist/parse/utils/hast-utils.d.ts.map +1 -1
  19. package/dist/parse/utils/hast-utils.js +110 -7
  20. package/dist/parse/utils/hast-utils.js.map +1 -1
  21. package/dist/parse/utils/markdown-utils.d.ts +18 -0
  22. package/dist/parse/utils/markdown-utils.d.ts.map +1 -1
  23. package/dist/parse/utils/markdown-utils.js +142 -0
  24. package/dist/parse/utils/markdown-utils.js.map +1 -1
  25. package/dist/parse/utils/normative.js +3 -3
  26. package/dist/parse/utils/normative.js.map +1 -1
  27. package/dist/postprocess/index.d.ts +1 -0
  28. package/dist/postprocess/index.d.ts.map +1 -1
  29. package/dist/postprocess/index.js +3 -0
  30. package/dist/postprocess/index.js.map +1 -1
  31. package/dist/postprocess/plugins/statement-distribute.d.ts +13 -0
  32. package/dist/postprocess/plugins/statement-distribute.d.ts.map +1 -0
  33. package/dist/postprocess/plugins/statement-distribute.js +112 -0
  34. package/dist/postprocess/plugins/statement-distribute.js.map +1 -0
  35. package/dist/postprocess/plugins/statement-index.d.ts.map +1 -1
  36. package/dist/postprocess/plugins/statement-index.js +20 -17
  37. package/dist/postprocess/plugins/statement-index.js.map +1 -1
  38. package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts.map +1 -1
  39. package/dist/postprocess/plugins/statementsJsonLd-compute.js +1 -0
  40. package/dist/postprocess/plugins/statementsJsonLd-compute.js.map +1 -1
  41. package/dist/postprocess/walk-ast.d.ts +7 -15
  42. package/dist/postprocess/walk-ast.d.ts.map +1 -1
  43. package/dist/postprocess/walk-ast.js +48 -57
  44. package/dist/postprocess/walk-ast.js.map +1 -1
  45. package/dist/types/ast.generated.d.ts +33 -4
  46. package/dist/types/ast.generated.d.ts.map +1 -1
  47. package/dist/types/ast.generated.js +1 -1
  48. package/dist/types/ast.generated.js.map +1 -1
  49. package/package.json +1 -1
  50. package/schema/spec-ast.schema.json +85 -3
@@ -24,6 +24,16 @@ export function parseMarkdownInlines(text) {
24
24
  }
25
25
  return inlines;
26
26
  }
27
+ /**
28
+ * Parse a string as Markdown blocks.
29
+ */
30
+ export function parseMarkdownBlocks(text) {
31
+ if (!text || !text.trim())
32
+ return [];
33
+ const processor = unified().use(remarkParse).use(remarkGfm);
34
+ const tree = processor.parse(text);
35
+ return tree.children;
36
+ }
27
37
  const FENCED_CODE_START = /^(\s{0,3})(?:```|~~~)/;
28
38
  const TABLE_SEPARATOR = /^\s*\|?[\s:|-]+\|[\s:|-]*\|?\s*$/;
29
39
  /**
@@ -94,4 +104,136 @@ export function escapeShorthandPipesInTables(content) {
94
104
  }
95
105
  return result.join('\n');
96
106
  }
107
+ /**
108
+ * Preserve custom HTML element blocks across blank lines.
109
+ *
110
+ * CommonMark type-7 HTML blocks (custom tags like <spec-statement>)
111
+ * terminate at blank lines. This replaces blank lines inside such blocks
112
+ * with <!-- --> comments, preventing remark from splitting the block.
113
+ * Custom elements are identified by tag names containing a hyphen
114
+ * (web component naming convention).
115
+ *
116
+ * Also ensures a blank line is inserted before a custom element when
117
+ * it immediately follows paragraph-level content (e.g. a <dfn> line)
118
+ * to prevent remark from merging both into a single paragraph.
119
+ */
120
+ export function preserveCustomHtmlBlocks(content) {
121
+ const lines = content.split('\n');
122
+ const result = [];
123
+ let insideTag = null;
124
+ for (let i = 0; i < lines.length; i++) {
125
+ const line = lines[i];
126
+ if (!insideTag) {
127
+ // Check for custom element opening tag (tag name contains hyphen)
128
+ // Allow list markers (-, *, +, 1.) before the tag
129
+ const match = line.match(/^(\s*(?:[-*+]|\d+\.)?\s*<[a-z][a-z0-9]*-[a-z0-9-]*(?:\s[^>]*)?>)(.*)/i);
130
+ if (match) {
131
+ const tagOnly = match[1];
132
+ const afterTag = match[2];
133
+ const tagNameMatch = tagOnly.match(/<([a-z][a-z0-9]*-[a-z0-9-]*)/i);
134
+ const tagName = tagNameMatch[1];
135
+ // Assumption: we are entering a block
136
+ insideTag = tagName;
137
+ // Check if the block closes on the same line (inline usage)
138
+ // The closing tag could be in afterTag
139
+ if (afterTag.includes(`</${tagName}>`)) {
140
+ insideTag = null;
141
+ }
142
+ // Ensure a blank line precedes the custom element so remark
143
+ // treats it as a standalone HTML block instead of merging it
144
+ // into the preceding paragraph (e.g. a <dfn> line).
145
+ // Only insert when the previous line is paragraph-level content
146
+ // (not an HTML block tag, not another custom element, not blank).
147
+ if (result.length > 0 && needsBlankLineBefore(result[result.length - 1])) {
148
+ result.push('');
149
+ }
150
+ // Check if this line also has the closing tag (self-closing on one line)
151
+ if (line.includes(`</${insideTag}>`)) {
152
+ insideTag = null;
153
+ result.push(line);
154
+ }
155
+ else if (afterTag.trim()) {
156
+ // Content after the opening tag on the same line prevents
157
+ // CommonMark type-7 HTML block recognition. Split it so the
158
+ // tag is on its own line and content follows.
159
+ // We must indent the content to keep it within the parent list item (if any).
160
+ // A safe heuristic is to indent to the same level as the tag's start,
161
+ // plus a standard indent (e.g. 2 spaces) or simply align with the tag.
162
+ // Actually, for list items, we want to align with the *content* start.
163
+ // If the line starts with `- <tag>`, indentation should match `<tag>`.
164
+ // Match indentation and marker
165
+ const prefixMatch = tagOnly.match(/^(\s*(?:[-*+]|\d+\.)?\s*)/);
166
+ const prefix = prefixMatch ? prefixMatch[1] : '';
167
+ // Use a string of spaces equal to length of prefix (replacing marker with spaces)
168
+ const indentation = ' '.repeat(prefix.length);
169
+ result.push(tagOnly);
170
+ result.push(indentation + afterTag);
171
+ }
172
+ else {
173
+ result.push(line);
174
+ }
175
+ }
176
+ else {
177
+ result.push(line);
178
+ }
179
+ }
180
+ else {
181
+ // Inside a custom element block
182
+ if (line.includes(`</${insideTag}>`)) {
183
+ insideTag = null;
184
+ result.push(line);
185
+ }
186
+ else if (line.trim() === '') {
187
+ // Replace blank line with magic token to prevent remark from splitting the block.
188
+ // We use a text string that won't trigger any block start.
189
+ result.push('__SPECULATOR_BLANK_LINE__');
190
+ }
191
+ else {
192
+ result.push(line);
193
+ }
194
+ }
195
+ }
196
+ return result.join('\n');
197
+ }
198
+ /**
199
+ * CommonMark type-6 block-level HTML tags that start their own HTML block.
200
+ * Lines starting with these tags are already treated as HTML blocks by remark,
201
+ * so we must not insert a blank line between them and a following custom element.
202
+ */
203
+ const HTML_BLOCK_TAGS = new Set([
204
+ 'address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body',
205
+ 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir',
206
+ 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',
207
+ 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header',
208
+ 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem',
209
+ 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'search',
210
+ 'section', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead',
211
+ 'title', 'tr', 'track', 'ul',
212
+ ]);
213
+ /**
214
+ * Check if the line before a custom element needs a blank line inserted.
215
+ * Returns true only when the previous line is paragraph-level content
216
+ * (not an HTML block start, not a custom element, not blank/closing tag).
217
+ */
218
+ function needsBlankLineBefore(prevLine) {
219
+ const trimmed = prevLine.trim();
220
+ if (trimmed === '')
221
+ return false;
222
+ // Check if it starts with an HTML tag
223
+ const tagMatch = trimmed.match(/^<\/?([a-z][a-z0-9-]*)/i);
224
+ if (tagMatch) {
225
+ const tagName = tagMatch[1].toLowerCase();
226
+ // CommonMark type-6 block tags — already an HTML block, don't split
227
+ if (HTML_BLOCK_TAGS.has(tagName))
228
+ return false;
229
+ // Custom element (hyphenated) — already an HTML block, don't split
230
+ if (tagName.includes('-'))
231
+ return false;
232
+ // Closing tags (</...>) — part of an HTML block, don't split
233
+ if (trimmed.startsWith('</'))
234
+ return false;
235
+ }
236
+ // The line is paragraph-level content (e.g. "<dfn>Phase</dfn> is ...")
237
+ return true;
238
+ }
97
239
  //# sourceMappingURL=markdown-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"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"}
@@ -48,13 +48,13 @@ export function inferLevel(text) {
48
48
  foundLevels.add('SHOULD NOT');
49
49
  // Check positive forms
50
50
  // Note: we check if they are NOT followed by NOT to avoid double matching
51
- if (/\b(MUST|SHALL|REQUIRED)\b/.test(upperText) && !/\b(MUST|SHALL) NOT\b/.test(upperText)) {
51
+ if (/\b(MUST|SHALL)\b/.test(upperText) && !/\b(MUST|SHALL) NOT\b/.test(upperText)) {
52
52
  foundLevels.add('MUST');
53
53
  }
54
- if (/\b(SHOULD|RECOMMENDED)\b/.test(upperText) && !/\bSHOULD NOT\b/.test(upperText)) {
54
+ if (/\b(SHOULD)\b/.test(upperText) && !/\bSHOULD NOT\b/.test(upperText)) {
55
55
  foundLevels.add('SHOULD');
56
56
  }
57
- if (/\b(MAY|OPTIONAL)\b/.test(upperText)) {
57
+ if (/\b(MAY)\b/.test(upperText)) {
58
58
  foundLevels.add('MAY');
59
59
  }
60
60
  if (foundLevels.size === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"normative.js","sourceRoot":"","sources":["../../../src/parse/utils/normative.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8BH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAiB;IAChE,MAAM;IACN,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,OAAO,4BAA4B,CAAC,GAAG,CAAC,KAAuB,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,4BAA4B;IAC5B,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEpE,uBAAuB;IACvB,0EAA0E;IAC1E,IAAI,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClF,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"normative.js","sourceRoot":"","sources":["../../../src/parse/utils/normative.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8BH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAiB;IAChE,MAAM;IACN,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,OAAO,4BAA4B,CAAC,GAAG,CAAC,KAAuB,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,4BAA4B;IAC5B,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEpE,uBAAuB;IACvB,0EAA0E;IAC1E,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -7,6 +7,7 @@
7
7
  * Note: Parsing logic has been moved to dedicated parser modules in src/parse/.
8
8
  */
9
9
  export { conformanceBoilerplatePlugin } from './plugins/conformance-boilerplate.js';
10
+ export { statementDistributePlugin } from './plugins/statement-distribute.js';
10
11
  export { sectionIdPlugin } from './plugins/section-id.js';
11
12
  export { dfnIndexPlugin } from './plugins/dfn-index.js';
12
13
  export { biblioIndexPlugin } from './plugins/biblio-index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postprocess/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAoB9D,eAAO,MAAM,WAAW,gCAiBvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postprocess/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAqB9D,eAAO,MAAM,WAAW,gCAkBvB,CAAC"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  // Transform plugins
10
10
  export { conformanceBoilerplatePlugin } from './plugins/conformance-boilerplate.js';
11
+ export { statementDistributePlugin } from './plugins/statement-distribute.js';
11
12
  // Index plugins
12
13
  export { sectionIdPlugin } from './plugins/section-id.js';
13
14
  export { dfnIndexPlugin } from './plugins/dfn-index.js';
@@ -30,6 +31,7 @@ export { walkDocument } from './walk-ast.js';
30
31
  * Phase execution order: transform → index → resolve → compute → render
31
32
  */
32
33
  import { conformanceBoilerplatePlugin } from './plugins/conformance-boilerplate.js';
34
+ import { statementDistributePlugin } from './plugins/statement-distribute.js';
33
35
  import { sectionIdPlugin } from './plugins/section-id.js';
34
36
  import { dfnIndexPlugin } from './plugins/dfn-index.js';
35
37
  import { biblioIndexPlugin } from './plugins/biblio-index.js';
@@ -44,6 +46,7 @@ import { statementsJsonLdComputePlugin } from './plugins/statementsJsonLd-comput
44
46
  export const corePlugins = [
45
47
  // Transform plugins
46
48
  conformanceBoilerplatePlugin, // order: { transform: 20 }
49
+ statementDistributePlugin, // order: { transform: 25 }
47
50
  // Index plugins
48
51
  sectionIdPlugin, // order: { index: 5 }
49
52
  dfnIndexPlugin, // order: { index: 10 }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postprocess/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAoB;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,kBAAkB;AAClB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,YAAY;AACZ,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,oBAAoB;IACpB,4BAA4B,EAAE,2BAA2B;IACzD,gBAAgB;IAChB,eAAe,EAAa,sBAAsB;IAClD,cAAc,EAAc,uBAAuB;IACnD,iBAAiB,EAAW,sBAAsB;IAClD,mBAAmB,EAAS,uBAAuB;IACnD,oBAAoB,EAAQ,uBAAuB;IACnD,kBAAkB;IAClB,sBAAsB,EAAM,yBAAyB;IACrD,qBAAqB,EAAO,yBAAyB;IACrD,kBAAkB;IAClB,2BAA2B,EAAE,wBAAwB;IACrD,SAAS,EAAmB,yBAAyB;IACrD,oBAAoB,EAAQ,yBAAyB;IACrD,6BAA6B,EAAE,yBAAyB;CAC3D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postprocess/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oBAAoB;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,gBAAgB;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,kBAAkB;AAClB,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,YAAY;AACZ,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D;;;;GAIG;AACH,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,oBAAoB;IACpB,4BAA4B,EAAE,2BAA2B;IACzD,yBAAyB,EAAI,2BAA2B;IACxD,gBAAgB;IAChB,eAAe,EAAa,sBAAsB;IAClD,cAAc,EAAc,uBAAuB;IACnD,iBAAiB,EAAW,sBAAsB;IAClD,mBAAmB,EAAS,uBAAuB;IACnD,oBAAoB,EAAQ,uBAAuB;IACnD,kBAAkB;IAClB,sBAAsB,EAAM,yBAAyB;IACrD,qBAAqB,EAAO,yBAAyB;IACrD,kBAAkB;IAClB,2BAA2B,EAAE,wBAAwB;IACrD,SAAS,EAAmB,yBAAyB;IACrD,oBAAoB,EAAQ,yBAAyB;IACrD,6BAA6B,EAAE,yBAAyB;CAC3D,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Statement Distribute Plugin
3
+ *
4
+ * Walks the AST for specStatement nodes that contain lists or tables,
5
+ * and distributes normative properties (level, contentText, tempId, dataCopConcept)
6
+ * to individual listItem / tableRow children.
7
+ *
8
+ * This keeps the parser isolated — the parser just reads attributes and delegates
9
+ * child parsing. This plugin decides how to handle the resulting structure.
10
+ */
11
+ import type { Plugin } from '#src/pipeline/types';
12
+ export declare const statementDistributePlugin: Plugin;
13
+ //# sourceMappingURL=statement-distribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-distribute.d.ts","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-distribute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AA4GpE,eAAO,MAAM,yBAAyB,EAAE,MAOvC,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Statement Distribute Plugin
3
+ *
4
+ * Walks the AST for specStatement nodes that contain lists or tables,
5
+ * and distributes normative properties (level, contentText, tempId, dataCopConcept)
6
+ * to individual listItem / tableRow children.
7
+ *
8
+ * This keeps the parser isolated — the parser just reads attributes and delegates
9
+ * child parsing. This plugin decides how to handle the resulting structure.
10
+ */
11
+ import { walkDocument } from '#src/postprocess/walk-ast';
12
+ import { slugify, toPlainText } from '#src/parse/normalize';
13
+ import { inferLevel } from '#src/parse/utils/normative';
14
+ function distributeToList(list, stmt, prefix) {
15
+ if (!list.children)
16
+ return false;
17
+ let modified = false;
18
+ for (const item of list.children) {
19
+ if (item.type === 'listItem') {
20
+ if (item.children.length == 2) {
21
+ const first = item.children[0];
22
+ const second = item.children[1];
23
+ if (first.type === 'paragraph' && second.type === 'list') {
24
+ const childPrefix = toPlainText(first.children).trim();
25
+ distributeToList(second, stmt, [prefix, childPrefix].join(' '));
26
+ continue;
27
+ }
28
+ }
29
+ const itemText = toPlainText(item.children).trim();
30
+ const fullText = prefix + (prefix ? ' ' : '') + itemText;
31
+ const level = inferLevel(fullText);
32
+ // Apply statement properties to list item
33
+ const listItem = item;
34
+ listItem.level = level;
35
+ listItem.contentText = fullText;
36
+ listItem.tempId = slugify(fullText);
37
+ if (stmt.dataCopConcept) {
38
+ listItem.dataCopConcept = stmt.dataCopConcept;
39
+ }
40
+ modified = true;
41
+ }
42
+ }
43
+ return modified;
44
+ }
45
+ function distributeToTable(table, stmt, prefix) {
46
+ if (!table.children)
47
+ return false;
48
+ let modified = false;
49
+ for (const row of table.children) {
50
+ if (row.type !== 'tableRow')
51
+ continue;
52
+ const isHeader = row.children.some((cell) => cell.header);
53
+ if (isHeader)
54
+ continue;
55
+ const tableRow = row;
56
+ const rowText = tableRow.children
57
+ .map((cell) => toPlainText([cell]).trim())
58
+ .filter((text) => text.length > 0)
59
+ .join(' ');
60
+ if (!rowText)
61
+ continue;
62
+ const fullText = prefix + (prefix ? ' ' : '') + rowText;
63
+ const level = inferLevel(fullText);
64
+ tableRow.level = level;
65
+ tableRow.contentText = fullText;
66
+ tableRow.tempId = slugify(fullText);
67
+ if (stmt.dataCopConcept) {
68
+ tableRow.dataCopConcept = stmt.dataCopConcept;
69
+ }
70
+ modified = true;
71
+ }
72
+ return modified;
73
+ }
74
+ function distributeStatements(document) {
75
+ walkDocument(document, {
76
+ visitBlock: (block) => {
77
+ // Only process groups, as simple statements (specStatement) are atomic/inline-only.
78
+ if (block.type !== 'specStatementGroup')
79
+ return;
80
+ const group = block;
81
+ // Verify if we have children to distribute
82
+ if (!group.children || group.children.length === 0) {
83
+ return;
84
+ }
85
+ const children = group.children;
86
+ let currentPrefix = '';
87
+ // Iterate over all children to handle multiple paragraph+list pairs
88
+ for (const child of children) {
89
+ if (child.type === 'paragraph') {
90
+ // Update prefix for subsequent lists/tables
91
+ currentPrefix = toPlainText(child.children).trim();
92
+ }
93
+ else if (child.type === 'list') {
94
+ // Distribute to list items
95
+ distributeToList(child, group, currentPrefix);
96
+ }
97
+ else if (child.type === 'table') {
98
+ // Distribute to table rows
99
+ distributeToTable(child, group, currentPrefix);
100
+ }
101
+ }
102
+ }
103
+ });
104
+ }
105
+ export const statementDistributePlugin = {
106
+ name: 'statement-distribute',
107
+ order: { transform: 25 },
108
+ async transform(ctx) {
109
+ distributeStatements(ctx.document);
110
+ },
111
+ };
112
+ //# sourceMappingURL=statement-distribute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-distribute.js","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-distribute.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"statement-index.d.ts","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAuIhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAWlC,CAAC"}
1
+ {"version":3,"file":"statement-index.d.ts","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AA0IhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAWlC,CAAC"}
@@ -49,12 +49,19 @@ function buildStatementIndex(document, baseIri) {
49
49
  // Pass 1: Collect all explicit IDs to avoid collisions
50
50
  walkDocument(document, {
51
51
  visitBlock: (block) => {
52
- if (block.type === 'specStatement') {
53
- const stmt = block;
54
- if (stmt.id) {
55
- usedIds.add(stmt.id);
52
+ if (block.type === 'specStatement' || block.type === 'specStatementGroup') {
53
+ if (block.id) {
54
+ usedIds.add(block.id);
56
55
  }
57
56
  }
57
+ },
58
+ visitListItem: (item) => {
59
+ if (item.id)
60
+ usedIds.add(item.id);
61
+ },
62
+ visitTableRow: (row) => {
63
+ if (row.id)
64
+ usedIds.add(row.id);
58
65
  }
59
66
  });
60
67
  const walk = (nodes, currentCop) => {
@@ -62,18 +69,19 @@ function buildStatementIndex(document, baseIri) {
62
69
  let nextCop = currentCop;
63
70
  // Sections and Headings can provide dataCopConcept
64
71
  if (node.type === 'section') {
65
- const section = node;
66
- if (section.dataCopConcept) {
67
- nextCop = section.dataCopConcept;
72
+ if (node.dataCopConcept) {
73
+ nextCop = node.dataCopConcept;
68
74
  }
69
75
  }
70
76
  else if (node.type === 'heading') {
71
- const heading = node;
72
- if (heading.dataCopConcept) {
73
- nextCop = heading.dataCopConcept;
77
+ if (node.dataCopConcept) {
78
+ nextCop = node.dataCopConcept;
74
79
  }
75
80
  }
76
- if (node.type === 'specStatement') {
81
+ // A node is a statement if it has type 'specStatement' OR is a listItem/tableRow with a level
82
+ const isStatement = node.type === 'specStatement' ||
83
+ ((node.type === 'listItem' || node.type === 'tableRow') && !!node.level);
84
+ if (isStatement) {
77
85
  const stmt = node;
78
86
  // If statement has its own dataCopConcept, it takes precedence
79
87
  const effectiveCop = stmt.dataCopConcept || nextCop;
@@ -93,7 +101,7 @@ function buildStatementIndex(document, baseIri) {
93
101
  const entry = {
94
102
  id: stmt.id,
95
103
  level: stmt.level || 'NONE',
96
- contentText: stmt.contentText,
104
+ contentText: stmt.contentText || '',
97
105
  subject: resolvedSubject,
98
106
  sourcePos: stmt.sourcePos || {
99
107
  file: document.sourcePos?.file || 'unknown',
@@ -110,11 +118,6 @@ function buildStatementIndex(document, baseIri) {
110
118
  if ('children' in node && Array.isArray(node.children)) {
111
119
  walk(node.children, nextCop);
112
120
  }
113
- if (node.type === 'section' && node.heading) {
114
- // Headings are handled together with the section they belong to?
115
- // Actually, if we are in a section, we already looked at node.dataCop.
116
- // We don't need to walk heading children separately for COP, as they are inline.
117
- }
118
121
  }
119
122
  };
120
123
  walk(document.children);
@@ -1 +1 @@
1
- {"version":3,"file":"statement-index.js","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statement-index.js","sourceRoot":"","sources":["../../../src/postprocess/plugins/statement-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"statementsJsonLd-compute.d.ts","sourceRoot":"","sources":["../../../src/postprocess/plugins/statementsJsonLd-compute.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,qBAAqB,CAAC;AAmDlE;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,MA+G3C,CAAC"}
1
+ {"version":3,"file":"statementsJsonLd-compute.d.ts","sourceRoot":"","sources":["../../../src/postprocess/plugins/statementsJsonLd-compute.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,qBAAqB,CAAC;AAoDlE;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,MA+G3C,CAAC"}
@@ -45,6 +45,7 @@ function getJsonLdType(level) {
45
45
  case 'SHOULD':
46
46
  case 'SHOULD NOT':
47
47
  case 'MAY':
48
+ case 'AMBIGUOUS':
48
49
  return 'spec:Requirement';
49
50
  default:
50
51
  // currently we only support normative statements
@@ -1 +1 @@
1
- {"version":3,"file":"statementsJsonLd-compute.js","sourceRoot":"","sources":["../../../src/postprocess/plugins/statementsJsonLd-compute.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,aAAa,GAAG,4BAA4B,CAAC;AACnD,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAC9C,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAE1D;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,KAAa;IACzC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,MAAM;YACP,OAAO,WAAW,CAAC;QACvB,KAAK,UAAU;YACX,OAAO,cAAc,CAAC;QAC1B,KAAK,QAAQ;YACT,OAAO,aAAa,CAAC;QACzB,KAAK,YAAY;YACb,OAAO,gBAAgB,CAAC;QAC5B,KAAK,KAAK;YACN,OAAO,UAAU,CAAC;QACtB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa;IAChC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,KAAK;YACN,OAAO,kBAAkB,CAAC;QAC9B;YACI,iDAAiD;YACjD,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAW;IACjD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,oCAAoC;IAE5D,KAAK,CAAC,OAAO,CAAC,GAAmB;QAC7B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAEjC,gBAAgB;QAChB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QAEnC,kBAAkB;QAClB,MAAM,OAAO,GAA2B;YACpC,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,OAAO;YACb,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ;SAC7B,CAAC;QAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;QAEtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,YAAY,GAAG,UAAU;aAC9B,MAAM,CAAC,CAAC,IAAyB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChE,GAAG,CAAC,CAAC,IAAyB,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpD,kDAAkD;YAClD,MAAM,KAAK,GAA4B;gBACnC,EAAE,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC,EAAE,EAAE;gBAC/B,IAAI;aACP,CAAC;YAEF,4EAA4E;YAC5E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,KAAK,CAAC,yBAAyB,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAED,uCAAuC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACX,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;YACtD,CAAC;YAED,yCAAyC;YACzC,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAE3C,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,GAAG,WAAW,sBAAsB,CAAC;QAEzD,yCAAyC;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9C,iEAAiE;YACjE,IAAI,KAAK,GAAG,uBAAuB,CAAC;YACpC,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBAC1C,0BAA0B;gBAC1B,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,WAAW;YACf,CAAC;YAED,OAAO;gBACH,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,cAAc;gBACpB,gBAAgB,EAAE,KAAK;gBACvB,eAAe,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;gBACpC,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;aAC3C,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,SAAS,GAAG;YACd,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,oBAAoB;YAC1B,gBAAgB,EAAE,qBAAqB;YACvC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAChE,CAAC;QAEF,6CAA6C;QAC7C,MAAM,aAAa,GAAG;YAClB,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,eAAe;YACxD,wBAAwB,EAAE,SAAS;YACnC,kBAAkB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,CAAC,aAAa;SACpF,CAAC;QAEF,MAAM,KAAK,GAAG;YACV,aAAa;YACb,GAAG,WAAW;YACd,GAAG,YAAY;SAClB,CAAC;QAEF,uCAAuC;QACvC,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;SAClB,CAAC;QAEF,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAChD,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"statementsJsonLd-compute.js","sourceRoot":"","sources":["../../../src/postprocess/plugins/statementsJsonLd-compute.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Provides a generic visitor pattern for walking the SpecAST.
5
5
  * Used by postprocess plugins to traverse document structure.
6
6
  */
7
- import type { Document, Section, Block, Inline } from '#src/types/ast.generated';
7
+ import type { Document, Section, Block, Inline, ListItem, TableRow, TableCell } from '#src/types/ast.generated';
8
8
  /**
9
9
  * Visitor interface for AST traversal.
10
10
  * Implement only the methods you need.
@@ -16,23 +16,15 @@ export interface AstVisitor {
16
16
  visitBlock?(block: Block): void;
17
17
  /** Called for each section node */
18
18
  visitSection?(section: Section): void;
19
+ /** Called for list items */
20
+ visitListItem?(item: ListItem): void;
21
+ /** Called for table rows */
22
+ visitTableRow?(row: TableRow): void;
23
+ /** Called for table cells */
24
+ visitTableCell?(cell: TableCell): void;
19
25
  }
20
26
  /**
21
27
  * Walk an entire document, calling visitor methods for each node type.
22
- *
23
- * @param document - The document to traverse
24
- * @param visitor - Visitor with optional callbacks for each node type
25
- *
26
- * @example
27
- * ```typescript
28
- * walkDocument(doc, {
29
- * visitInline: (inline) => {
30
- * if (inline.type === 'definition') {
31
- * // process definition
32
- * }
33
- * }
34
- * });
35
- * ```
36
28
  */
37
29
  export declare function walkDocument(document: Document, visitor: AstVisitor): void;
38
30
  //# sourceMappingURL=walk-ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"walk-ast.d.ts","sourceRoot":"","sources":["../../src/postprocess/walk-ast.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACT,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,kCAAkC;IAClC,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iCAAiC;IACjC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAChC,mCAAmC;IACnC,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC;AAsED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAQ1E"}
1
+ {"version":3,"file":"walk-ast.d.ts","sourceRoot":"","sources":["../../src/postprocess/walk-ast.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACZ,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,kCAAkC;IAClC,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iCAAiC;IACjC,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAChC,mCAAmC;IACnC,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,4BAA4B;IAC5B,aAAa,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrC,4BAA4B;IAC5B,aAAa,CAAC,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,6BAA6B;IAC7B,cAAc,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1C;AAsFD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAE1E"}