@openuji/speculator 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/parse/assembler.d.ts +1 -1
  7. package/dist/parse/assembler.d.ts.map +1 -1
  8. package/dist/parse/assembler.js +67 -13
  9. package/dist/parse/assembler.js.map +1 -1
  10. package/dist/parse/html/AsideHtmlParser.d.ts.map +1 -1
  11. package/dist/parse/html/AsideHtmlParser.js +85 -3
  12. package/dist/parse/html/AsideHtmlParser.js.map +1 -1
  13. package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -1
  14. package/dist/parse/html/CodeHtmlParser.js +6 -2
  15. package/dist/parse/html/CodeHtmlParser.js.map +1 -1
  16. package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -1
  17. package/dist/parse/html/HeadingsHtmlParser.js +3 -4
  18. package/dist/parse/html/HeadingsHtmlParser.js.map +1 -1
  19. package/dist/parse/html/IdlHtmlParser.d.ts +0 -4
  20. package/dist/parse/html/IdlHtmlParser.d.ts.map +1 -1
  21. package/dist/parse/html/IdlHtmlParser.js +2 -138
  22. package/dist/parse/html/IdlHtmlParser.js.map +1 -1
  23. package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -1
  24. package/dist/parse/html/MiscHtmlParser.js +2 -42
  25. package/dist/parse/html/MiscHtmlParser.js.map +1 -1
  26. package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -1
  27. package/dist/parse/html/SectionsHtmlParser.js +17 -26
  28. package/dist/parse/html/SectionsHtmlParser.js.map +1 -1
  29. package/dist/parse/html/SpecStatementHtmlParser.js +3 -0
  30. package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -1
  31. package/dist/parse/html/VocabHtmlParser.d.ts +12 -0
  32. package/dist/parse/html/VocabHtmlParser.d.ts.map +1 -0
  33. package/dist/parse/html/VocabHtmlParser.js +1156 -0
  34. package/dist/parse/html/VocabHtmlParser.js.map +1 -0
  35. package/dist/parse/html/parser.d.ts +13 -4
  36. package/dist/parse/html/parser.d.ts.map +1 -1
  37. package/dist/parse/html/parser.js +105 -119
  38. package/dist/parse/html/parser.js.map +1 -1
  39. package/dist/parse/index.d.ts +1 -2
  40. package/dist/parse/index.d.ts.map +1 -1
  41. package/dist/parse/index.js +0 -1
  42. package/dist/parse/index.js.map +1 -1
  43. package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -1
  44. package/dist/parse/markdown/CodeMarkdownParser.js +20 -2
  45. package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -1
  46. package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -1
  47. package/dist/parse/markdown/HeadingsMarkdownParser.js +10 -33
  48. package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -1
  49. package/dist/parse/markdown/MdxJsxMarkdownParser.d.ts +8 -0
  50. package/dist/parse/markdown/MdxJsxMarkdownParser.d.ts.map +1 -0
  51. package/dist/parse/markdown/MdxJsxMarkdownParser.js +61 -0
  52. package/dist/parse/markdown/MdxJsxMarkdownParser.js.map +1 -0
  53. package/dist/parse/markdown/MdxMarkdownParser.d.ts +13 -0
  54. package/dist/parse/markdown/MdxMarkdownParser.d.ts.map +1 -0
  55. package/dist/parse/markdown/MdxMarkdownParser.js +351 -0
  56. package/dist/parse/markdown/MdxMarkdownParser.js.map +1 -0
  57. package/dist/parse/markdown/ShorthandsMarkdownParser.d.ts.map +1 -1
  58. package/dist/parse/markdown/ShorthandsMarkdownParser.js +57 -2
  59. package/dist/parse/markdown/ShorthandsMarkdownParser.js.map +1 -1
  60. package/dist/parse/markdown/parser.d.ts +12 -3
  61. package/dist/parse/markdown/parser.d.ts.map +1 -1
  62. package/dist/parse/markdown/parser.js +90 -57
  63. package/dist/parse/markdown/parser.js.map +1 -1
  64. package/dist/parse/markdown/plugins.d.ts +26 -0
  65. package/dist/parse/markdown/plugins.d.ts.map +1 -0
  66. package/dist/parse/markdown/plugins.js +90 -0
  67. package/dist/parse/markdown/plugins.js.map +1 -0
  68. package/dist/parse/markdown/remark-mdx-jsx-only.d.ts +10 -0
  69. package/dist/parse/markdown/remark-mdx-jsx-only.d.ts.map +1 -0
  70. package/dist/parse/markdown/remark-mdx-jsx-only.js +26 -0
  71. package/dist/parse/markdown/remark-mdx-jsx-only.js.map +1 -0
  72. package/dist/parse/parsers.d.ts +2 -2
  73. package/dist/parse/parsers.d.ts.map +1 -1
  74. package/dist/parse/parsers.js +6 -6
  75. package/dist/parse/parsers.js.map +1 -1
  76. package/dist/parse/pipeline.d.ts.map +1 -1
  77. package/dist/parse/pipeline.js +41 -14
  78. package/dist/parse/pipeline.js.map +1 -1
  79. package/dist/parse/registry.d.ts +5 -5
  80. package/dist/parse/registry.d.ts.map +1 -1
  81. package/dist/parse/registry.js +12 -12
  82. package/dist/parse/registry.js.map +1 -1
  83. package/dist/parse/source-mapper.d.ts +42 -0
  84. package/dist/parse/source-mapper.d.ts.map +1 -0
  85. package/dist/parse/source-mapper.js +117 -0
  86. package/dist/parse/source-mapper.js.map +1 -0
  87. package/dist/parse/types.d.ts +20 -9
  88. package/dist/parse/types.d.ts.map +1 -1
  89. package/dist/parse/types.js +2 -13
  90. package/dist/parse/types.js.map +1 -1
  91. package/dist/parse/utils/hast-utils.d.ts.map +1 -1
  92. package/dist/parse/utils/hast-utils.js +69 -29
  93. package/dist/parse/utils/hast-utils.js.map +1 -1
  94. package/dist/parse/utils/html-element-utils.d.ts +9 -0
  95. package/dist/parse/utils/html-element-utils.d.ts.map +1 -0
  96. package/dist/parse/utils/html-element-utils.js +88 -0
  97. package/dist/parse/utils/html-element-utils.js.map +1 -0
  98. package/dist/parse/utils/idl-tokenizer.d.ts +7 -0
  99. package/dist/parse/utils/idl-tokenizer.d.ts.map +1 -0
  100. package/dist/parse/utils/idl-tokenizer.js +137 -0
  101. package/dist/parse/utils/idl-tokenizer.js.map +1 -0
  102. package/dist/parse/utils/markdown-utils.d.ts +16 -10
  103. package/dist/parse/utils/markdown-utils.d.ts.map +1 -1
  104. package/dist/parse/utils/markdown-utils.js +39 -75
  105. package/dist/parse/utils/markdown-utils.js.map +1 -1
  106. package/dist/pipeline/index.d.ts.map +1 -1
  107. package/dist/pipeline/index.js +1 -0
  108. package/dist/pipeline/index.js.map +1 -1
  109. package/dist/pipeline/runner.d.ts.map +1 -1
  110. package/dist/pipeline/runner.js +10 -4
  111. package/dist/pipeline/runner.js.map +1 -1
  112. package/dist/pipeline/types.d.ts +2 -0
  113. package/dist/pipeline/types.d.ts.map +1 -1
  114. package/dist/postprocess/index.d.ts +3 -1
  115. package/dist/postprocess/index.d.ts.map +1 -1
  116. package/dist/postprocess/index.js +9 -3
  117. package/dist/postprocess/index.js.map +1 -1
  118. package/dist/postprocess/plugins/bibliography-generator.d.ts.map +1 -1
  119. package/dist/postprocess/plugins/bibliography-generator.js +20 -3
  120. package/dist/postprocess/plugins/bibliography-generator.js.map +1 -1
  121. package/dist/postprocess/plugins/citation-resolve.d.ts.map +1 -1
  122. package/dist/postprocess/plugins/citation-resolve.js +255 -11
  123. package/dist/postprocess/plugins/citation-resolve.js.map +1 -1
  124. package/dist/postprocess/plugins/example-index.d.ts +16 -0
  125. package/dist/postprocess/plugins/example-index.d.ts.map +1 -0
  126. package/dist/postprocess/plugins/example-index.js +131 -0
  127. package/dist/postprocess/plugins/example-index.js.map +1 -0
  128. package/dist/postprocess/plugins/note-index.d.ts +14 -0
  129. package/dist/postprocess/plugins/note-index.d.ts.map +1 -0
  130. package/dist/postprocess/plugins/note-index.js +103 -0
  131. package/dist/postprocess/plugins/note-index.js.map +1 -0
  132. package/dist/postprocess/plugins/note-shorthands.d.ts +11 -0
  133. package/dist/postprocess/plugins/note-shorthands.d.ts.map +1 -0
  134. package/dist/postprocess/plugins/note-shorthands.js +298 -0
  135. package/dist/postprocess/plugins/note-shorthands.js.map +1 -0
  136. package/dist/postprocess/plugins/reference-resolve.d.ts.map +1 -1
  137. package/dist/postprocess/plugins/reference-resolve.js +46 -1
  138. package/dist/postprocess/plugins/reference-resolve.js.map +1 -1
  139. package/dist/postprocess/plugins/statement-distribute.d.ts.map +1 -1
  140. package/dist/postprocess/plugins/statement-distribute.js +46 -8
  141. package/dist/postprocess/plugins/statement-distribute.js.map +1 -1
  142. package/dist/postprocess/plugins/toc.d.ts.map +1 -1
  143. package/dist/postprocess/plugins/toc.js +20 -16
  144. package/dist/postprocess/plugins/toc.js.map +1 -1
  145. package/dist/postprocess/walk-ast.d.ts +5 -1
  146. package/dist/postprocess/walk-ast.d.ts.map +1 -1
  147. package/dist/postprocess/walk-ast.js +9 -0
  148. package/dist/postprocess/walk-ast.js.map +1 -1
  149. package/dist/preprocess/config/doc-config.d.ts +4 -1
  150. package/dist/preprocess/config/doc-config.d.ts.map +1 -1
  151. package/dist/preprocess/config/doc-config.js +6 -3
  152. package/dist/preprocess/config/doc-config.js.map +1 -1
  153. package/dist/preprocess/config/normalize.d.ts.map +1 -1
  154. package/dist/preprocess/config/normalize.js +34 -11
  155. package/dist/preprocess/config/normalize.js.map +1 -1
  156. package/dist/preprocess/config/types.d.ts +7 -3
  157. package/dist/preprocess/config/types.d.ts.map +1 -1
  158. package/dist/preprocess/include/resolver.d.ts.map +1 -1
  159. package/dist/preprocess/include/resolver.js +137 -33
  160. package/dist/preprocess/include/resolver.js.map +1 -1
  161. package/dist/preprocess/include/scan-html.js +1 -1
  162. package/dist/preprocess/include/scan-html.js.map +1 -1
  163. package/dist/preprocess/index.d.ts +1 -1
  164. package/dist/preprocess/index.d.ts.map +1 -1
  165. package/dist/preprocess/index.js.map +1 -1
  166. package/dist/preprocess/pipeline.d.ts.map +1 -1
  167. package/dist/preprocess/pipeline.js +1 -1
  168. package/dist/preprocess/pipeline.js.map +1 -1
  169. package/dist/preprocess/types.d.ts +32 -12
  170. package/dist/preprocess/types.d.ts.map +1 -1
  171. package/dist/types/ast.generated.d.ts +69 -13
  172. package/dist/types/ast.generated.d.ts.map +1 -1
  173. package/dist/types/ast.generated.js +4 -4
  174. package/dist/types/ast.generated.js.map +1 -1
  175. package/dist/workspace/sort.js +1 -1
  176. package/dist/workspace/sort.js.map +1 -1
  177. package/package.json +11 -2
  178. package/schema/spec-ast.schema.json +143 -9
@@ -1 +1 @@
1
- {"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Element } from 'hast';
2
+ import type { Block, BlockHtmlElement, Inline, InlineHtmlElement, Section } from '#src/types/ast.generated';
3
+ import type { ParseContext } from '#src/parse/registry';
4
+ export type HtmlAttributeValue = string | number | boolean | null;
5
+ export type HtmlAttributes = Record<string, HtmlAttributeValue>;
6
+ export declare function extractHtmlAttributes(element: Element): HtmlAttributes | undefined;
7
+ export declare function createBlockHtmlElement(element: Element, ctx: ParseContext, children: (Section | Block)[]): BlockHtmlElement;
8
+ export declare function createInlineHtmlElement(element: Element, ctx: ParseContext, children: Inline[]): InlineHtmlElement;
9
+ //# sourceMappingURL=html-element-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-element-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/html-element-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EACR,KAAK,EACL,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,OAAO,EACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAyChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAelF;AAMD,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,GAC9B,gBAAgB,CAgBlB;AAED,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,EAAE,GACnB,iBAAiB,CAgBnB"}
@@ -0,0 +1,88 @@
1
+ function normalizeAttributeName(name) {
2
+ if (name === 'className')
3
+ return 'class';
4
+ if (name === 'htmlFor')
5
+ return 'for';
6
+ if (name.startsWith('data') && name.length > 4 && /[A-Z]/.test(name[4])) {
7
+ return `data-${name.slice(4).replace(/([A-Z])/g, '-$1').toLowerCase()}`;
8
+ }
9
+ if (name.startsWith('aria') && name.length > 4 && /[A-Z]/.test(name[4])) {
10
+ return `aria-${name.slice(4).replace(/([A-Z])/g, '-$1').toLowerCase()}`;
11
+ }
12
+ return name;
13
+ }
14
+ function normalizeAttributeValue(value) {
15
+ if (value === null)
16
+ return null;
17
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
18
+ return value;
19
+ }
20
+ if (Array.isArray(value)) {
21
+ const text = value
22
+ .map((part) => {
23
+ if (part === null)
24
+ return '';
25
+ if (typeof part === 'string' || typeof part === 'number' || typeof part === 'boolean') {
26
+ return String(part);
27
+ }
28
+ return '';
29
+ })
30
+ .filter(Boolean)
31
+ .join(' ')
32
+ .trim();
33
+ return text.length > 0 ? text : undefined;
34
+ }
35
+ return undefined;
36
+ }
37
+ export function extractHtmlAttributes(element) {
38
+ const properties = (element.properties ?? {});
39
+ const attributes = {};
40
+ for (const [rawName, rawValue] of Object.entries(properties)) {
41
+ if (rawName === 'children')
42
+ continue;
43
+ const value = normalizeAttributeValue(rawValue);
44
+ if (value === undefined)
45
+ continue;
46
+ const name = normalizeAttributeName(rawName);
47
+ attributes[name] = value;
48
+ }
49
+ return Object.keys(attributes).length > 0 ? attributes : undefined;
50
+ }
51
+ function toBlockChildren(children) {
52
+ return children.filter((child) => child.type !== 'section');
53
+ }
54
+ export function createBlockHtmlElement(element, ctx, children) {
55
+ const sourcePos = ctx.createSourcePos(element);
56
+ const attributes = extractHtmlAttributes(element);
57
+ const id = ctx.getAttr(element, 'id');
58
+ const result = {
59
+ type: 'htmlElement',
60
+ tagName: element.tagName,
61
+ children: toBlockChildren(children),
62
+ };
63
+ if (id)
64
+ result.id = id;
65
+ if (attributes)
66
+ result.attributes = attributes;
67
+ if (sourcePos)
68
+ result.sourcePos = sourcePos;
69
+ return result;
70
+ }
71
+ export function createInlineHtmlElement(element, ctx, children) {
72
+ const sourcePos = ctx.createSourcePos(element);
73
+ const attributes = extractHtmlAttributes(element);
74
+ const id = ctx.getAttr(element, 'id');
75
+ const result = {
76
+ type: 'htmlInlineElement',
77
+ tagName: element.tagName,
78
+ children,
79
+ };
80
+ if (id)
81
+ result.id = id;
82
+ if (attributes)
83
+ result.attributes = attributes;
84
+ if (sourcePos)
85
+ result.sourcePos = sourcePos;
86
+ return result;
87
+ }
88
+ //# sourceMappingURL=html-element-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-element-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/html-element-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Inline, SourcePos } from '#src/types/ast.generated';
2
+ /**
3
+ * Tokenizes WebIDL text into inline nodes used by BlockIdl.
4
+ * This is intentionally heuristic and shared by both HTML and Markdown IDL parsing.
5
+ */
6
+ export declare function tokenizeIdlContent(content: string, sourcePos?: SourcePos): Inline[];
7
+ //# sourceMappingURL=idl-tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idl-tokenizer.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/idl-tokenizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiD,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA2CjH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CA+GnF"}
@@ -0,0 +1,137 @@
1
+ // Keywords that start a definition.
2
+ const DEF_KEYWORDS = new Set(['interface', 'dictionary', 'enum', 'callback', 'typedef', 'partial']);
3
+ // Keywords to ignore (not types or names).
4
+ const IGNORED_KEYWORDS = new Set([
5
+ 'readonly', 'attribute', 'required', 'const', 'serializer', 'stringifier', 'inherit',
6
+ 'static', 'getter', 'setter', 'deleter', 'legacycaller', 'iterable', 'maplike', 'setlike',
7
+ ]);
8
+ const PRIMITIVE_TYPES = new Set([
9
+ 'long', 'unsigned', 'short', 'float', 'double', 'boolean', 'byte', 'octet', 'void', 'any', 'object',
10
+ ]);
11
+ function createTextInline(value, sourcePos) {
12
+ if (sourcePos) {
13
+ return { type: 'text', value, sourcePos };
14
+ }
15
+ return { type: 'text', value };
16
+ }
17
+ function createWorkspaceIdlReference(targetTerm, sourcePos) {
18
+ if (sourcePos) {
19
+ return {
20
+ type: 'workspaceIdlReference',
21
+ targetTerm,
22
+ sourcePos,
23
+ children: [{ type: 'text', value: targetTerm }],
24
+ };
25
+ }
26
+ return {
27
+ type: 'workspaceIdlReference',
28
+ targetTerm,
29
+ children: [{ type: 'text', value: targetTerm }],
30
+ };
31
+ }
32
+ function isIdentifier(word) {
33
+ return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(word);
34
+ }
35
+ /**
36
+ * Tokenizes WebIDL text into inline nodes used by BlockIdl.
37
+ * This is intentionally heuristic and shared by both HTML and Markdown IDL parsing.
38
+ */
39
+ export function tokenizeIdlContent(content, sourcePos) {
40
+ const children = [];
41
+ let currentContext = 'top-level';
42
+ let contextName = null;
43
+ let expectingNameFor = null;
44
+ let expectingMemberName = false;
45
+ // Delimiters: whitespace, punctuation, and type wrapper tokens used in IDL type expressions.
46
+ const tokens = content.split(/([ \t\n\r]+|[{};(),=?<>[\]:])/);
47
+ for (const token of tokens) {
48
+ if (!token)
49
+ continue;
50
+ if (/^[ \t\n\r]+$/.test(token) || /^[{};(),=?]$/.test(token)) {
51
+ children.push(createTextInline(token, sourcePos));
52
+ if (token === '}') {
53
+ currentContext = 'top-level';
54
+ contextName = null;
55
+ }
56
+ else if (token === ';') {
57
+ expectingMemberName = false;
58
+ if (currentContext === 'top-level') {
59
+ expectingNameFor = null;
60
+ }
61
+ }
62
+ continue;
63
+ }
64
+ if (DEF_KEYWORDS.has(token)) {
65
+ children.push(createTextInline(token, sourcePos));
66
+ expectingNameFor = token;
67
+ continue;
68
+ }
69
+ if (IGNORED_KEYWORDS.has(token)) {
70
+ children.push(createTextInline(token, sourcePos));
71
+ continue;
72
+ }
73
+ if (!isIdentifier(token)) {
74
+ children.push(createTextInline(token, sourcePos));
75
+ continue;
76
+ }
77
+ if (expectingNameFor) {
78
+ const dfnType = expectingNameFor === 'interface'
79
+ ? 'interface'
80
+ : expectingNameFor === 'dictionary'
81
+ ? 'dictionary'
82
+ : expectingNameFor === 'enum'
83
+ ? 'enum'
84
+ : 'typedef';
85
+ const definition = {
86
+ type: 'definition',
87
+ term: token,
88
+ dfnType,
89
+ children: [{ type: 'text', value: token }],
90
+ };
91
+ if (sourcePos) {
92
+ definition.sourcePos = sourcePos;
93
+ }
94
+ children.push(definition);
95
+ contextName = token;
96
+ currentContext = dfnType;
97
+ expectingNameFor = null;
98
+ continue;
99
+ }
100
+ if (contextName && (currentContext === 'interface' || currentContext === 'dictionary')) {
101
+ if (PRIMITIVE_TYPES.has(token)) {
102
+ children.push(createWorkspaceIdlReference(token, sourcePos));
103
+ expectingMemberName = true;
104
+ continue;
105
+ }
106
+ if (/^[A-Z]/.test(token)) {
107
+ children.push(createWorkspaceIdlReference(token, sourcePos));
108
+ expectingMemberName = true;
109
+ continue;
110
+ }
111
+ if (expectingMemberName) {
112
+ const memberDefinition = {
113
+ type: 'definition',
114
+ term: `${contextName}/${token}`,
115
+ dfnType: currentContext === 'interface' ? 'method' : 'field',
116
+ children: [{ type: 'text', value: token }],
117
+ };
118
+ if (sourcePos) {
119
+ memberDefinition.sourcePos = sourcePos;
120
+ }
121
+ children.push(memberDefinition);
122
+ expectingMemberName = false;
123
+ continue;
124
+ }
125
+ children.push(createTextInline(token, sourcePos));
126
+ continue;
127
+ }
128
+ if (/^[A-Z]/.test(token)) {
129
+ children.push(createWorkspaceIdlReference(token, sourcePos));
130
+ }
131
+ else {
132
+ children.push(createTextInline(token, sourcePos));
133
+ }
134
+ }
135
+ return children;
136
+ }
137
+ //# sourceMappingURL=idl-tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idl-tokenizer.js","sourceRoot":"","sources":["../../../src/parse/utils/idl-tokenizer.ts"],"names":[],"mappings":"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"}
@@ -15,17 +15,23 @@ export declare function parseMarkdownBlocks(text: string): RootContent[];
15
15
  */
16
16
  export declare function escapeShorthandPipesInTables(content: string): string;
17
17
  /**
18
- * Preserve custom HTML element blocks across blank lines.
18
+ * Formats custom MDX tags (like <spec-statement>) so they are correctly
19
+ * recognized as "Flow" elements by MDX-JSX.
19
20
  *
20
- * CommonMark type-7 HTML blocks (custom tags like <spec-statement>)
21
- * terminate at blank lines. This replaces blank lines inside such blocks
22
- * with <!-- --> comments, preventing remark from splitting the block.
23
- * Custom elements are identified by tag names containing a hyphen
24
- * (web component naming convention).
21
+ * If a tag starts at the beginning of a line (perhaps with a list marker)
22
+ * but has content on the same line, MDX treats it as a phrasing element.
23
+ * If that phrasing element crosses a block boundary (e.g. at the next newline
24
+ * or col-1 transition for the closer), it fails to parse.
25
25
  *
26
- * Also ensures a blank line is inserted before a custom element when
27
- * it immediately follows paragraph-level content (e.g. a <dfn> line)
28
- * to prevent remark from merging both into a single paragraph.
26
+ * This ensures the tag is on its own line.
27
+ * It also ensures a blank line precedes tags that follow paragraphs.
29
28
  */
30
- export declare function preserveCustomHtmlBlocks(content: string): string;
29
+ export declare function normalizeMdxTags(content: string): string;
30
+ /**
31
+ * CommonMark type-6 block-level HTML tags that start their own HTML block.
32
+ * Lines starting with these tags are already treated as HTML blocks by remark,
33
+ * so we must not insert a blank line between them and a following custom element.
34
+ */
35
+ export declare const HTML_BLOCK_TAGS: Set<string>;
36
+ export declare function isHtmlBlockTag(tagName: string): boolean;
31
37
  //# sourceMappingURL=markdown-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,WAAW,EAAa,MAAM,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBhE;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAkBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuDpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmFhE"}
1
+ {"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,WAAW,EAAa,MAAM,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBhE;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAkBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuDpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+CxD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,aAS1B,CAAC;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -105,92 +105,53 @@ export function escapeShorthandPipesInTables(content) {
105
105
  return result.join('\n');
106
106
  }
107
107
  /**
108
- * Preserve custom HTML element blocks across blank lines.
108
+ * Formats custom MDX tags (like <spec-statement>) so they are correctly
109
+ * recognized as "Flow" elements by MDX-JSX.
109
110
  *
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).
111
+ * If a tag starts at the beginning of a line (perhaps with a list marker)
112
+ * but has content on the same line, MDX treats it as a phrasing element.
113
+ * If that phrasing element crosses a block boundary (e.g. at the next newline
114
+ * or col-1 transition for the closer), it fails to parse.
115
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.
116
+ * This ensures the tag is on its own line.
117
+ * It also ensures a blank line precedes tags that follow paragraphs.
119
118
  */
120
- export function preserveCustomHtmlBlocks(content) {
119
+ export function normalizeMdxTags(content) {
121
120
  const lines = content.split('\n');
122
121
  const result = [];
123
- let insideTag = null;
124
122
  for (let i = 0; i < lines.length; i++) {
125
123
  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 {
124
+ // Match custom element opening tag (tag name contains hyphen)
125
+ // Allow list markers (-, *, +, 1.) before the tag
126
+ const match = line.match(/^(\s*(?:[-*+]|\d+\.)?\s*<[a-z][a-z0-9]*-[a-z0-9-]*(?:\s[^>]*)?>)(.+)$/i);
127
+ if (match) {
128
+ const tagPart = match[1];
129
+ const afterTag = match[2];
130
+ const tagNameMatch = tagPart.match(/<([a-z][a-z0-9]*-[a-z0-9-]*)/i);
131
+ const tagName = tagNameMatch[1];
132
+ // If it's closed on the same line, it's a true inline, don't split.
133
+ if (afterTag.includes(`</${tagName}>`)) {
177
134
  result.push(line);
135
+ continue;
178
136
  }
137
+ // Ensure a blank line precedes the block-to-be if it follows a paragraph
138
+ if (result.length > 0 && needsBlankLineBefore(result[result.length - 1])) {
139
+ result.push('');
140
+ }
141
+ // Split tag from content to force "Flow" mode in MDX
142
+ result.push(tagPart);
143
+ // Indent the content to stay within the parent list item (if any)
144
+ const prefixMatch = tagPart.match(/^(\s*(?:[-*+]|\d+\.)?\s*)/);
145
+ const prefix = prefixMatch ? prefixMatch[1] : '';
146
+ result.push(' '.repeat(prefix.length) + afterTag);
179
147
  }
180
148
  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);
149
+ // Check if we need a blank line before a col-1 tag that doesn't have trailing content
150
+ const pureTagMatch = line.match(/^(\s*(?:[-*+]|\d+\.)?\s*<[a-z][a-z0-9]*-[a-z0-9-]*(?:\s[^>]*)?>)\s*$/i);
151
+ if (pureTagMatch && result.length > 0 && needsBlankLineBefore(result[result.length - 1])) {
152
+ result.push('');
193
153
  }
154
+ result.push(line);
194
155
  }
195
156
  }
196
157
  return result.join('\n');
@@ -200,7 +161,7 @@ export function preserveCustomHtmlBlocks(content) {
200
161
  * Lines starting with these tags are already treated as HTML blocks by remark,
201
162
  * so we must not insert a blank line between them and a following custom element.
202
163
  */
203
- const HTML_BLOCK_TAGS = new Set([
164
+ export const HTML_BLOCK_TAGS = new Set([
204
165
  'address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body',
205
166
  'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir',
206
167
  'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',
@@ -210,6 +171,9 @@ const HTML_BLOCK_TAGS = new Set([
210
171
  'section', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead',
211
172
  'title', 'tr', 'track', 'ul',
212
173
  ]);
174
+ export function isHtmlBlockTag(tagName) {
175
+ return HTML_BLOCK_TAGS.has(tagName.toLowerCase());
176
+ }
213
177
  /**
214
178
  * Check if the line before a custom element needs a blank line inserted.
215
179
  * Returns true only when the previous line is paragraph-level content
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGpE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAcnF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGpE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAenF"}
@@ -40,6 +40,7 @@ export async function speculate(options) {
40
40
  entry: options.entry,
41
41
  configPath: options.configPath,
42
42
  fileProvider,
43
+ env: options.env,
43
44
  });
44
45
  }
45
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACrD,gDAAgD;IAChD,MAAM,YAAY,GAAiB,OAAO,CAAC,YAAY,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAElF,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAGzD,mBAAmB;IACnB,OAAO,QAAQ,CAAC,GAAG,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY;KACf,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACrD,gDAAgD;IAChD,MAAM,YAAY,GAAiB,OAAO,CAAC,YAAY,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAElF,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAGzD,mBAAmB;IACnB,OAAO,QAAQ,CAAC,GAAG,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY;QACZ,GAAG,EAAE,OAAO,CAAC,GAAG;KACnB,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EACR,MAAM,EAEN,eAAe,EAElB,MAAM,YAAY,CAAC;AAoCpB;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,GAAE,MAAM,EAAO;IAIlC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ5B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE;QACxB,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;CA4G/B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EACR,MAAM,EAEN,eAAe,EAElB,MAAM,YAAY,CAAC;AAoCpB;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,GAAE,MAAM,EAAO;IAIlC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ5B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE;QACxB,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;CAmH/B"}
@@ -61,6 +61,7 @@ export class SpeculatorPipeline {
61
61
  */
62
62
  async runWorkspace(options) {
63
63
  const results = [];
64
+ const errors = [];
64
65
  // 1. Initial run: Preprocess + Parse
65
66
  for (const entryConfig of options.entries) {
66
67
  try {
@@ -73,6 +74,9 @@ export class SpeculatorPipeline {
73
74
  const registry = new ParseHandlerRegistry();
74
75
  registerCoreParsers(registry);
75
76
  const parseResult = parseWithRegistry(preprocessedSpec, registry);
77
+ if (parseResult.errors && parseResult.errors.length > 0) {
78
+ errors.push(...parseResult.errors);
79
+ }
76
80
  if (!parseResult.result)
77
81
  continue;
78
82
  results.push({
@@ -81,13 +85,15 @@ export class SpeculatorPipeline {
81
85
  config: preprocessedSpec.config
82
86
  });
83
87
  }
84
- catch {
85
- // Preprocess errors are now thrown, skip this entry
88
+ catch (err) {
89
+ // Preprocess errors are now collected instead of just throwing
90
+ const msg = err instanceof Error ? err.message : String(err);
91
+ errors.push(`Error processing ${entryConfig.entry}: ${msg}`);
86
92
  continue;
87
93
  }
88
94
  }
89
95
  if (results.length === 0) {
90
- return {};
96
+ return { errors: errors.length > 0 ? errors : undefined };
91
97
  }
92
98
  const runtimeWorkspace = {
93
99
  documents: new Map(results.map(r => [r.entry, r.doc])),
@@ -148,7 +154,7 @@ export class SpeculatorPipeline {
148
154
  }
149
155
  // 6. FINALIZE Workspace AST
150
156
  const workspace = await finalizeWorkspace(runtimeWorkspace.documents, runtimeWorkspace.globalIndex);
151
- return { workspace };
157
+ return { workspace, errors: errors.length > 0 ? errors : undefined };
152
158
  }
153
159
  }
154
160
  //# sourceMappingURL=runner.js.map