@openuji/speculator 0.3.1 → 0.4.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 (610) hide show
  1. package/README.md +111 -50
  2. package/dist/file-provider/__tests__/compliance.test.d.ts +5 -0
  3. package/dist/file-provider/__tests__/compliance.test.d.ts.map +1 -0
  4. package/dist/file-provider/__tests__/compliance.test.js +52 -0
  5. package/dist/file-provider/__tests__/compliance.test.js.map +1 -0
  6. package/dist/file-provider/index.d.ts +8 -0
  7. package/dist/file-provider/index.d.ts.map +1 -0
  8. package/dist/file-provider/index.js +10 -0
  9. package/dist/file-provider/index.js.map +1 -0
  10. package/dist/file-provider/memory.d.ts +46 -0
  11. package/dist/file-provider/memory.d.ts.map +1 -0
  12. package/dist/file-provider/memory.js +99 -0
  13. package/dist/file-provider/memory.js.map +1 -0
  14. package/dist/file-provider/node.d.ts +32 -0
  15. package/dist/file-provider/node.d.ts.map +1 -0
  16. package/dist/file-provider/node.js +65 -0
  17. package/dist/file-provider/node.js.map +1 -0
  18. package/dist/file-provider/types.d.ts +69 -0
  19. package/dist/file-provider/types.d.ts.map +1 -0
  20. package/dist/file-provider/types.js +47 -0
  21. package/dist/file-provider/types.js.map +1 -0
  22. package/dist/file-provider/web.d.ts +32 -0
  23. package/dist/file-provider/web.d.ts.map +1 -0
  24. package/dist/file-provider/web.js +77 -0
  25. package/dist/file-provider/web.js.map +1 -0
  26. package/dist/index.d.ts +15 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +16 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/parse/AsideHtmlParser.d.ts +12 -0
  31. package/dist/parse/AsideHtmlParser.d.ts.map +1 -0
  32. package/dist/parse/AsideHtmlParser.js +74 -0
  33. package/dist/parse/AsideHtmlParser.js.map +1 -0
  34. package/dist/parse/BlockquoteHtmlParser.d.ts +11 -0
  35. package/dist/parse/BlockquoteHtmlParser.d.ts.map +1 -0
  36. package/dist/parse/BlockquoteHtmlParser.js +28 -0
  37. package/dist/parse/BlockquoteHtmlParser.js.map +1 -0
  38. package/dist/parse/BlockquoteMarkdownParser.d.ts +11 -0
  39. package/dist/parse/BlockquoteMarkdownParser.d.ts.map +1 -0
  40. package/dist/parse/BlockquoteMarkdownParser.js +26 -0
  41. package/dist/parse/BlockquoteMarkdownParser.js.map +1 -0
  42. package/dist/parse/CodeHtmlParser.d.ts +11 -0
  43. package/dist/parse/CodeHtmlParser.d.ts.map +1 -0
  44. package/dist/parse/CodeHtmlParser.js +38 -0
  45. package/dist/parse/CodeHtmlParser.js.map +1 -0
  46. package/dist/parse/CodeMarkdownParser.d.ts +11 -0
  47. package/dist/parse/CodeMarkdownParser.d.ts.map +1 -0
  48. package/dist/parse/CodeMarkdownParser.js +29 -0
  49. package/dist/parse/CodeMarkdownParser.js.map +1 -0
  50. package/dist/parse/DfnHtmlParser.d.ts +12 -0
  51. package/dist/parse/DfnHtmlParser.d.ts.map +1 -0
  52. package/dist/parse/DfnHtmlParser.js +53 -0
  53. package/dist/parse/DfnHtmlParser.js.map +1 -0
  54. package/dist/parse/HeadingsHtmlParser.d.ts +11 -0
  55. package/dist/parse/HeadingsHtmlParser.d.ts.map +1 -0
  56. package/dist/parse/HeadingsHtmlParser.js +30 -0
  57. package/dist/parse/HeadingsHtmlParser.js.map +1 -0
  58. package/dist/parse/HeadingsMarkdownParser.d.ts +11 -0
  59. package/dist/parse/HeadingsMarkdownParser.d.ts.map +1 -0
  60. package/dist/parse/HeadingsMarkdownParser.js +26 -0
  61. package/dist/parse/HeadingsMarkdownParser.js.map +1 -0
  62. package/dist/parse/InlinesHtmlParser.d.ts +12 -0
  63. package/dist/parse/InlinesHtmlParser.d.ts.map +1 -0
  64. package/dist/parse/InlinesHtmlParser.js +150 -0
  65. package/dist/parse/InlinesHtmlParser.js.map +1 -0
  66. package/dist/parse/InlinesMarkdownParser.d.ts +11 -0
  67. package/dist/parse/InlinesMarkdownParser.d.ts.map +1 -0
  68. package/dist/parse/InlinesMarkdownParser.js +91 -0
  69. package/dist/parse/InlinesMarkdownParser.js.map +1 -0
  70. package/dist/parse/ListsHtmlParser.d.ts +11 -0
  71. package/dist/parse/ListsHtmlParser.d.ts.map +1 -0
  72. package/dist/parse/ListsHtmlParser.js +71 -0
  73. package/dist/parse/ListsHtmlParser.js.map +1 -0
  74. package/dist/parse/ListsMarkdownParser.d.ts +11 -0
  75. package/dist/parse/ListsMarkdownParser.d.ts.map +1 -0
  76. package/dist/parse/ListsMarkdownParser.js +46 -0
  77. package/dist/parse/ListsMarkdownParser.js.map +1 -0
  78. package/dist/parse/MiscHtmlParser.d.ts +12 -0
  79. package/dist/parse/MiscHtmlParser.d.ts.map +1 -0
  80. package/dist/parse/MiscHtmlParser.js +85 -0
  81. package/dist/parse/MiscHtmlParser.js.map +1 -0
  82. package/dist/parse/MiscMarkdownParser.d.ts +11 -0
  83. package/dist/parse/MiscMarkdownParser.d.ts.map +1 -0
  84. package/dist/parse/MiscMarkdownParser.js +38 -0
  85. package/dist/parse/MiscMarkdownParser.js.map +1 -0
  86. package/dist/parse/ParagraphsHtmlParser.d.ts +11 -0
  87. package/dist/parse/ParagraphsHtmlParser.d.ts.map +1 -0
  88. package/dist/parse/ParagraphsHtmlParser.js +30 -0
  89. package/dist/parse/ParagraphsHtmlParser.js.map +1 -0
  90. package/dist/parse/ParagraphsMarkdownParser.d.ts +11 -0
  91. package/dist/parse/ParagraphsMarkdownParser.d.ts.map +1 -0
  92. package/dist/parse/ParagraphsMarkdownParser.js +25 -0
  93. package/dist/parse/ParagraphsMarkdownParser.js.map +1 -0
  94. package/dist/parse/SectionsHtmlParser.d.ts +12 -0
  95. package/dist/parse/SectionsHtmlParser.d.ts.map +1 -0
  96. package/dist/parse/SectionsHtmlParser.js +58 -0
  97. package/dist/parse/SectionsHtmlParser.js.map +1 -0
  98. package/dist/parse/TablesHtmlParser.d.ts +11 -0
  99. package/dist/parse/TablesHtmlParser.d.ts.map +1 -0
  100. package/dist/parse/TablesHtmlParser.js +81 -0
  101. package/dist/parse/TablesHtmlParser.js.map +1 -0
  102. package/dist/parse/TablesMarkdownParser.d.ts +11 -0
  103. package/dist/parse/TablesMarkdownParser.d.ts.map +1 -0
  104. package/dist/parse/TablesMarkdownParser.js +56 -0
  105. package/dist/parse/TablesMarkdownParser.js.map +1 -0
  106. package/dist/parse/XrefHtmlParser.d.ts +12 -0
  107. package/dist/parse/XrefHtmlParser.d.ts.map +1 -0
  108. package/dist/parse/XrefHtmlParser.js +124 -0
  109. package/dist/parse/XrefHtmlParser.js.map +1 -0
  110. package/dist/parse/__tests__/assembler.test.d.ts +5 -0
  111. package/dist/parse/__tests__/assembler.test.d.ts.map +1 -0
  112. package/dist/parse/__tests__/assembler.test.js +135 -0
  113. package/dist/parse/__tests__/assembler.test.js.map +1 -0
  114. package/dist/parse/__tests__/html.test.d.ts +5 -0
  115. package/dist/parse/__tests__/html.test.d.ts.map +1 -0
  116. package/dist/parse/__tests__/html.test.js +149 -0
  117. package/dist/parse/__tests__/html.test.js.map +1 -0
  118. package/dist/parse/__tests__/markdown.test.d.ts +5 -0
  119. package/dist/parse/__tests__/markdown.test.d.ts.map +1 -0
  120. package/dist/parse/__tests__/markdown.test.js +133 -0
  121. package/dist/parse/__tests__/markdown.test.js.map +1 -0
  122. package/dist/parse/__tests__/pipeline.test.d.ts +5 -0
  123. package/dist/parse/__tests__/pipeline.test.d.ts.map +1 -0
  124. package/dist/parse/__tests__/pipeline.test.js +215 -0
  125. package/dist/parse/__tests__/pipeline.test.js.map +1 -0
  126. package/dist/parse/__tests__/respec.test.d.ts +7 -0
  127. package/dist/parse/__tests__/respec.test.d.ts.map +1 -0
  128. package/dist/parse/__tests__/respec.test.js +151 -0
  129. package/dist/parse/__tests__/respec.test.js.map +1 -0
  130. package/dist/parse/assembler.d.ts +20 -0
  131. package/dist/parse/assembler.d.ts.map +1 -0
  132. package/dist/parse/assembler.js +175 -0
  133. package/dist/parse/assembler.js.map +1 -0
  134. package/dist/parse/html/AsideHtmlParser.d.ts +12 -0
  135. package/dist/parse/html/AsideHtmlParser.d.ts.map +1 -0
  136. package/dist/parse/html/AsideHtmlParser.js +74 -0
  137. package/dist/parse/html/AsideHtmlParser.js.map +1 -0
  138. package/dist/parse/html/BlockquoteHtmlParser.d.ts +11 -0
  139. package/dist/parse/html/BlockquoteHtmlParser.d.ts.map +1 -0
  140. package/dist/parse/html/BlockquoteHtmlParser.js +28 -0
  141. package/dist/parse/html/BlockquoteHtmlParser.js.map +1 -0
  142. package/dist/parse/html/CodeHtmlParser.d.ts +11 -0
  143. package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -0
  144. package/dist/parse/html/CodeHtmlParser.js +38 -0
  145. package/dist/parse/html/CodeHtmlParser.js.map +1 -0
  146. package/dist/parse/html/DfnHtmlParser.d.ts +12 -0
  147. package/dist/parse/html/DfnHtmlParser.d.ts.map +1 -0
  148. package/dist/parse/html/DfnHtmlParser.js +53 -0
  149. package/dist/parse/html/DfnHtmlParser.js.map +1 -0
  150. package/dist/parse/html/HeadingsHtmlParser.d.ts +11 -0
  151. package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -0
  152. package/dist/parse/html/HeadingsHtmlParser.js +30 -0
  153. package/dist/parse/html/HeadingsHtmlParser.js.map +1 -0
  154. package/dist/parse/html/InlinesHtmlParser.d.ts +12 -0
  155. package/dist/parse/html/InlinesHtmlParser.d.ts.map +1 -0
  156. package/dist/parse/html/InlinesHtmlParser.js +150 -0
  157. package/dist/parse/html/InlinesHtmlParser.js.map +1 -0
  158. package/dist/parse/html/ListsHtmlParser.d.ts +11 -0
  159. package/dist/parse/html/ListsHtmlParser.d.ts.map +1 -0
  160. package/dist/parse/html/ListsHtmlParser.js +71 -0
  161. package/dist/parse/html/ListsHtmlParser.js.map +1 -0
  162. package/dist/parse/html/MiscHtmlParser.d.ts +12 -0
  163. package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -0
  164. package/dist/parse/html/MiscHtmlParser.js +85 -0
  165. package/dist/parse/html/MiscHtmlParser.js.map +1 -0
  166. package/dist/parse/html/ParagraphsHtmlParser.d.ts +11 -0
  167. package/dist/parse/html/ParagraphsHtmlParser.d.ts.map +1 -0
  168. package/dist/parse/html/ParagraphsHtmlParser.js +30 -0
  169. package/dist/parse/html/ParagraphsHtmlParser.js.map +1 -0
  170. package/dist/parse/html/SectionsHtmlParser.d.ts +12 -0
  171. package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -0
  172. package/dist/parse/html/SectionsHtmlParser.js +58 -0
  173. package/dist/parse/html/SectionsHtmlParser.js.map +1 -0
  174. package/dist/parse/html/TablesHtmlParser.d.ts +11 -0
  175. package/dist/parse/html/TablesHtmlParser.d.ts.map +1 -0
  176. package/dist/parse/html/TablesHtmlParser.js +81 -0
  177. package/dist/parse/html/TablesHtmlParser.js.map +1 -0
  178. package/dist/parse/html/XrefHtmlParser.d.ts +12 -0
  179. package/dist/parse/html/XrefHtmlParser.d.ts.map +1 -0
  180. package/dist/parse/html/XrefHtmlParser.js +125 -0
  181. package/dist/parse/html/XrefHtmlParser.js.map +1 -0
  182. package/dist/parse/html/handlers/blockquote.d.ts +9 -0
  183. package/dist/parse/html/handlers/blockquote.d.ts.map +1 -0
  184. package/dist/parse/html/handlers/blockquote.js +21 -0
  185. package/dist/parse/html/handlers/blockquote.js.map +1 -0
  186. package/dist/parse/html/handlers/code.d.ts +9 -0
  187. package/dist/parse/html/handlers/code.d.ts.map +1 -0
  188. package/dist/parse/html/handlers/code.js +31 -0
  189. package/dist/parse/html/handlers/code.js.map +1 -0
  190. package/dist/parse/html/handlers/containers.d.ts +16 -0
  191. package/dist/parse/html/handlers/containers.d.ts.map +1 -0
  192. package/dist/parse/html/handlers/containers.js +25 -0
  193. package/dist/parse/html/handlers/containers.js.map +1 -0
  194. package/dist/parse/html/handlers/heading.d.ts +9 -0
  195. package/dist/parse/html/handlers/heading.d.ts.map +1 -0
  196. package/dist/parse/html/handlers/heading.js +26 -0
  197. package/dist/parse/html/handlers/heading.js.map +1 -0
  198. package/dist/parse/html/handlers/index.d.ts +23 -0
  199. package/dist/parse/html/handlers/index.d.ts.map +1 -0
  200. package/dist/parse/html/handlers/index.js +47 -0
  201. package/dist/parse/html/handlers/index.js.map +1 -0
  202. package/dist/parse/html/handlers/inline.d.ts +35 -0
  203. package/dist/parse/html/handlers/inline.d.ts.map +1 -0
  204. package/dist/parse/html/handlers/inline.js +119 -0
  205. package/dist/parse/html/handlers/inline.js.map +1 -0
  206. package/dist/parse/html/handlers/list.d.ts +9 -0
  207. package/dist/parse/html/handlers/list.d.ts.map +1 -0
  208. package/dist/parse/html/handlers/list.js +63 -0
  209. package/dist/parse/html/handlers/list.js.map +1 -0
  210. package/dist/parse/html/handlers/paragraph.d.ts +9 -0
  211. package/dist/parse/html/handlers/paragraph.d.ts.map +1 -0
  212. package/dist/parse/html/handlers/paragraph.js +20 -0
  213. package/dist/parse/html/handlers/paragraph.js.map +1 -0
  214. package/dist/parse/html/handlers/section.d.ts +9 -0
  215. package/dist/parse/html/handlers/section.d.ts.map +1 -0
  216. package/dist/parse/html/handlers/section.js +53 -0
  217. package/dist/parse/html/handlers/section.js.map +1 -0
  218. package/dist/parse/html/index.d.ts +5 -0
  219. package/dist/parse/html/index.d.ts.map +1 -0
  220. package/dist/parse/html/index.js +12 -0
  221. package/dist/parse/html/index.js.map +1 -0
  222. package/dist/parse/html/parser.d.ts +51 -0
  223. package/dist/parse/html/parser.d.ts.map +1 -0
  224. package/dist/parse/html/parser.js +228 -0
  225. package/dist/parse/html/parser.js.map +1 -0
  226. package/dist/parse/index.d.ts +16 -0
  227. package/dist/parse/index.d.ts.map +1 -0
  228. package/dist/parse/index.js +19 -0
  229. package/dist/parse/index.js.map +1 -0
  230. package/dist/parse/markdown/BlockquoteMarkdownParser.d.ts +11 -0
  231. package/dist/parse/markdown/BlockquoteMarkdownParser.d.ts.map +1 -0
  232. package/dist/parse/markdown/BlockquoteMarkdownParser.js +26 -0
  233. package/dist/parse/markdown/BlockquoteMarkdownParser.js.map +1 -0
  234. package/dist/parse/markdown/CodeMarkdownParser.d.ts +11 -0
  235. package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -0
  236. package/dist/parse/markdown/CodeMarkdownParser.js +29 -0
  237. package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -0
  238. package/dist/parse/markdown/HeadingsMarkdownParser.d.ts +11 -0
  239. package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -0
  240. package/dist/parse/markdown/HeadingsMarkdownParser.js +26 -0
  241. package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -0
  242. package/dist/parse/markdown/InlinesMarkdownParser.d.ts +11 -0
  243. package/dist/parse/markdown/InlinesMarkdownParser.d.ts.map +1 -0
  244. package/dist/parse/markdown/InlinesMarkdownParser.js +91 -0
  245. package/dist/parse/markdown/InlinesMarkdownParser.js.map +1 -0
  246. package/dist/parse/markdown/ListsMarkdownParser.d.ts +11 -0
  247. package/dist/parse/markdown/ListsMarkdownParser.d.ts.map +1 -0
  248. package/dist/parse/markdown/ListsMarkdownParser.js +46 -0
  249. package/dist/parse/markdown/ListsMarkdownParser.js.map +1 -0
  250. package/dist/parse/markdown/MiscMarkdownParser.d.ts +11 -0
  251. package/dist/parse/markdown/MiscMarkdownParser.d.ts.map +1 -0
  252. package/dist/parse/markdown/MiscMarkdownParser.js +38 -0
  253. package/dist/parse/markdown/MiscMarkdownParser.js.map +1 -0
  254. package/dist/parse/markdown/ParagraphsMarkdownParser.d.ts +11 -0
  255. package/dist/parse/markdown/ParagraphsMarkdownParser.d.ts.map +1 -0
  256. package/dist/parse/markdown/ParagraphsMarkdownParser.js +25 -0
  257. package/dist/parse/markdown/ParagraphsMarkdownParser.js.map +1 -0
  258. package/dist/parse/markdown/TablesMarkdownParser.d.ts +11 -0
  259. package/dist/parse/markdown/TablesMarkdownParser.d.ts.map +1 -0
  260. package/dist/parse/markdown/TablesMarkdownParser.js +56 -0
  261. package/dist/parse/markdown/TablesMarkdownParser.js.map +1 -0
  262. package/dist/parse/markdown/handlers/blockquote.d.ts +9 -0
  263. package/dist/parse/markdown/handlers/blockquote.d.ts.map +1 -0
  264. package/dist/parse/markdown/handlers/blockquote.js +22 -0
  265. package/dist/parse/markdown/handlers/blockquote.js.map +1 -0
  266. package/dist/parse/markdown/handlers/code.d.ts +9 -0
  267. package/dist/parse/markdown/handlers/code.d.ts.map +1 -0
  268. package/dist/parse/markdown/handlers/code.js +25 -0
  269. package/dist/parse/markdown/handlers/code.js.map +1 -0
  270. package/dist/parse/markdown/handlers/heading.d.ts +9 -0
  271. package/dist/parse/markdown/handlers/heading.d.ts.map +1 -0
  272. package/dist/parse/markdown/handlers/heading.js +22 -0
  273. package/dist/parse/markdown/handlers/heading.js.map +1 -0
  274. package/dist/parse/markdown/handlers/index.d.ts +23 -0
  275. package/dist/parse/markdown/handlers/index.d.ts.map +1 -0
  276. package/dist/parse/markdown/handlers/index.js +47 -0
  277. package/dist/parse/markdown/handlers/index.js.map +1 -0
  278. package/dist/parse/markdown/handlers/inline.d.ts +35 -0
  279. package/dist/parse/markdown/handlers/inline.d.ts.map +1 -0
  280. package/dist/parse/markdown/handlers/inline.js +126 -0
  281. package/dist/parse/markdown/handlers/inline.js.map +1 -0
  282. package/dist/parse/markdown/handlers/list.d.ts +9 -0
  283. package/dist/parse/markdown/handlers/list.d.ts.map +1 -0
  284. package/dist/parse/markdown/handlers/list.js +42 -0
  285. package/dist/parse/markdown/handlers/list.js.map +1 -0
  286. package/dist/parse/markdown/handlers/misc.d.ts +15 -0
  287. package/dist/parse/markdown/handlers/misc.d.ts.map +1 -0
  288. package/dist/parse/markdown/handlers/misc.js +38 -0
  289. package/dist/parse/markdown/handlers/misc.js.map +1 -0
  290. package/dist/parse/markdown/handlers/paragraph.d.ts +9 -0
  291. package/dist/parse/markdown/handlers/paragraph.d.ts.map +1 -0
  292. package/dist/parse/markdown/handlers/paragraph.js +21 -0
  293. package/dist/parse/markdown/handlers/paragraph.js.map +1 -0
  294. package/dist/parse/markdown/handlers/table.d.ts +9 -0
  295. package/dist/parse/markdown/handlers/table.d.ts.map +1 -0
  296. package/dist/parse/markdown/handlers/table.js +52 -0
  297. package/dist/parse/markdown/handlers/table.js.map +1 -0
  298. package/dist/parse/markdown/index.d.ts +5 -0
  299. package/dist/parse/markdown/index.d.ts.map +1 -0
  300. package/dist/parse/markdown/index.js +12 -0
  301. package/dist/parse/markdown/index.js.map +1 -0
  302. package/dist/parse/markdown/parser.d.ts +51 -0
  303. package/dist/parse/markdown/parser.d.ts.map +1 -0
  304. package/dist/parse/markdown/parser.js +134 -0
  305. package/dist/parse/markdown/parser.js.map +1 -0
  306. package/dist/parse/normalize.d.ts +51 -0
  307. package/dist/parse/normalize.d.ts.map +1 -0
  308. package/dist/parse/normalize.js +78 -0
  309. package/dist/parse/normalize.js.map +1 -0
  310. package/dist/parse/parsers.d.ts +37 -0
  311. package/dist/parse/parsers.d.ts.map +1 -0
  312. package/dist/parse/parsers.js +86 -0
  313. package/dist/parse/parsers.js.map +1 -0
  314. package/dist/parse/pipeline.d.ts +41 -0
  315. package/dist/parse/pipeline.d.ts.map +1 -0
  316. package/dist/parse/pipeline.js +120 -0
  317. package/dist/parse/pipeline.js.map +1 -0
  318. package/dist/parse/registry.d.ts +156 -0
  319. package/dist/parse/registry.d.ts.map +1 -0
  320. package/dist/parse/registry.js +104 -0
  321. package/dist/parse/registry.js.map +1 -0
  322. package/dist/parse/types.d.ts +67 -0
  323. package/dist/parse/types.d.ts.map +1 -0
  324. package/dist/parse/types.js +19 -0
  325. package/dist/parse/types.js.map +1 -0
  326. package/dist/pipeline/__tests__/pipeline.test.d.ts +5 -0
  327. package/dist/pipeline/__tests__/pipeline.test.d.ts.map +1 -0
  328. package/dist/pipeline/__tests__/pipeline.test.js +69 -0
  329. package/dist/pipeline/__tests__/pipeline.test.js.map +1 -0
  330. package/dist/pipeline/__tests__/single-as-workspace.test.d.ts +2 -0
  331. package/dist/pipeline/__tests__/single-as-workspace.test.d.ts.map +1 -0
  332. package/dist/pipeline/__tests__/single-as-workspace.test.js +19 -0
  333. package/dist/pipeline/__tests__/single-as-workspace.test.js.map +1 -0
  334. package/dist/pipeline/__tests__/workspace-rules.test.d.ts +11 -0
  335. package/dist/pipeline/__tests__/workspace-rules.test.d.ts.map +1 -0
  336. package/dist/pipeline/__tests__/workspace-rules.test.js +54 -0
  337. package/dist/pipeline/__tests__/workspace-rules.test.js.map +1 -0
  338. package/dist/pipeline/__tests__/workspace.test.d.ts +2 -0
  339. package/dist/pipeline/__tests__/workspace.test.d.ts.map +1 -0
  340. package/dist/pipeline/__tests__/workspace.test.js +61 -0
  341. package/dist/pipeline/__tests__/workspace.test.js.map +1 -0
  342. package/dist/pipeline/index.d.ts +34 -0
  343. package/dist/pipeline/index.d.ts.map +1 -0
  344. package/dist/pipeline/index.js +45 -0
  345. package/dist/pipeline/index.js.map +1 -0
  346. package/dist/pipeline/runner.d.ts +38 -0
  347. package/dist/pipeline/runner.d.ts.map +1 -0
  348. package/dist/pipeline/runner.js +128 -0
  349. package/dist/pipeline/runner.js.map +1 -0
  350. package/dist/pipeline/types.d.ts +106 -0
  351. package/dist/pipeline/types.d.ts.map +1 -0
  352. package/dist/pipeline/types.js +9 -0
  353. package/dist/pipeline/types.js.map +1 -0
  354. package/dist/pipeline/workspace-index.d.ts +11 -0
  355. package/dist/pipeline/workspace-index.d.ts.map +1 -0
  356. package/dist/pipeline/workspace-index.js +57 -0
  357. package/dist/pipeline/workspace-index.js.map +1 -0
  358. package/dist/plugins/__tests__/citation-transform.test.d.ts +7 -0
  359. package/dist/plugins/__tests__/citation-transform.test.d.ts.map +1 -0
  360. package/dist/plugins/__tests__/citation-transform.test.js +89 -0
  361. package/dist/plugins/__tests__/citation-transform.test.js.map +1 -0
  362. package/dist/plugins/__tests__/dfn-parsing.test.d.ts +2 -0
  363. package/dist/plugins/__tests__/dfn-parsing.test.d.ts.map +1 -0
  364. package/dist/plugins/__tests__/dfn-parsing.test.js +65 -0
  365. package/dist/plugins/__tests__/dfn-parsing.test.js.map +1 -0
  366. package/dist/plugins/__tests__/dfn-resolve.test.d.ts +5 -0
  367. package/dist/plugins/__tests__/dfn-resolve.test.d.ts.map +1 -0
  368. package/dist/plugins/__tests__/dfn-resolve.test.js +152 -0
  369. package/dist/plugins/__tests__/dfn-resolve.test.js.map +1 -0
  370. package/dist/plugins/__tests__/xref-parsing.test.d.ts +2 -0
  371. package/dist/plugins/__tests__/xref-parsing.test.d.ts.map +1 -0
  372. package/dist/plugins/__tests__/xref-parsing.test.js +66 -0
  373. package/dist/plugins/__tests__/xref-parsing.test.js.map +1 -0
  374. package/dist/plugins/aside.d.ts +12 -0
  375. package/dist/plugins/aside.d.ts.map +1 -0
  376. package/dist/plugins/aside.js +78 -0
  377. package/dist/plugins/aside.js.map +1 -0
  378. package/dist/plugins/blockquote.d.ts +11 -0
  379. package/dist/plugins/blockquote.d.ts.map +1 -0
  380. package/dist/plugins/blockquote.js +47 -0
  381. package/dist/plugins/blockquote.js.map +1 -0
  382. package/dist/plugins/citation-transform.d.ts +19 -0
  383. package/dist/plugins/citation-transform.d.ts.map +1 -0
  384. package/dist/plugins/citation-transform.js +176 -0
  385. package/dist/plugins/citation-transform.js.map +1 -0
  386. package/dist/plugins/citation.d.ts +21 -0
  387. package/dist/plugins/citation.d.ts.map +1 -0
  388. package/dist/plugins/citation.js +131 -0
  389. package/dist/plugins/citation.js.map +1 -0
  390. package/dist/plugins/code.d.ts +11 -0
  391. package/dist/plugins/code.d.ts.map +1 -0
  392. package/dist/plugins/code.js +60 -0
  393. package/dist/plugins/code.js.map +1 -0
  394. package/dist/plugins/core-html.d.ts +27 -0
  395. package/dist/plugins/core-html.d.ts.map +1 -0
  396. package/dist/plugins/core-html.js +53 -0
  397. package/dist/plugins/core-html.js.map +1 -0
  398. package/dist/plugins/core-markdown.d.ts +26 -0
  399. package/dist/plugins/core-markdown.d.ts.map +1 -0
  400. package/dist/plugins/core-markdown.js +55 -0
  401. package/dist/plugins/core-markdown.js.map +1 -0
  402. package/dist/plugins/data-cite.d.ts +12 -0
  403. package/dist/plugins/data-cite.d.ts.map +1 -0
  404. package/dist/plugins/data-cite.js +50 -0
  405. package/dist/plugins/data-cite.js.map +1 -0
  406. package/dist/plugins/dfn-resolve.d.ts +15 -0
  407. package/dist/plugins/dfn-resolve.d.ts.map +1 -0
  408. package/dist/plugins/dfn-resolve.js +257 -0
  409. package/dist/plugins/dfn-resolve.js.map +1 -0
  410. package/dist/plugins/dfn.d.ts +12 -0
  411. package/dist/plugins/dfn.d.ts.map +1 -0
  412. package/dist/plugins/dfn.js +57 -0
  413. package/dist/plugins/dfn.js.map +1 -0
  414. package/dist/plugins/directives.d.ts +8 -0
  415. package/dist/plugins/directives.d.ts.map +1 -0
  416. package/dist/plugins/directives.js +34 -0
  417. package/dist/plugins/directives.js.map +1 -0
  418. package/dist/plugins/heading.d.ts +11 -0
  419. package/dist/plugins/heading.d.ts.map +1 -0
  420. package/dist/plugins/heading.js +49 -0
  421. package/dist/plugins/heading.js.map +1 -0
  422. package/dist/plugins/index.d.ts +12 -0
  423. package/dist/plugins/index.d.ts.map +1 -0
  424. package/dist/plugins/index.js +26 -0
  425. package/dist/plugins/index.js.map +1 -0
  426. package/dist/plugins/inline.d.ts +12 -0
  427. package/dist/plugins/inline.d.ts.map +1 -0
  428. package/dist/plugins/inline.js +234 -0
  429. package/dist/plugins/inline.js.map +1 -0
  430. package/dist/plugins/list.d.ts +11 -0
  431. package/dist/plugins/list.d.ts.map +1 -0
  432. package/dist/plugins/list.js +110 -0
  433. package/dist/plugins/list.js.map +1 -0
  434. package/dist/plugins/misc.d.ts +12 -0
  435. package/dist/plugins/misc.d.ts.map +1 -0
  436. package/dist/plugins/misc.js +116 -0
  437. package/dist/plugins/misc.js.map +1 -0
  438. package/dist/plugins/paragraph.d.ts +11 -0
  439. package/dist/plugins/paragraph.d.ts.map +1 -0
  440. package/dist/plugins/paragraph.js +48 -0
  441. package/dist/plugins/paragraph.js.map +1 -0
  442. package/dist/plugins/section.d.ts +12 -0
  443. package/dist/plugins/section.d.ts.map +1 -0
  444. package/dist/plugins/section.js +62 -0
  445. package/dist/plugins/section.js.map +1 -0
  446. package/dist/plugins/table.d.ts +11 -0
  447. package/dist/plugins/table.d.ts.map +1 -0
  448. package/dist/plugins/table.js +130 -0
  449. package/dist/plugins/table.js.map +1 -0
  450. package/dist/plugins/xref.d.ts +12 -0
  451. package/dist/plugins/xref.d.ts.map +1 -0
  452. package/dist/plugins/xref.js +92 -0
  453. package/dist/plugins/xref.js.map +1 -0
  454. package/dist/postprocess/__tests__/citation-transform.test.d.ts +7 -0
  455. package/dist/postprocess/__tests__/citation-transform.test.d.ts.map +1 -0
  456. package/dist/postprocess/__tests__/citation-transform.test.js +89 -0
  457. package/dist/postprocess/__tests__/citation-transform.test.js.map +1 -0
  458. package/dist/postprocess/__tests__/dfn-resolve.test.d.ts +5 -0
  459. package/dist/postprocess/__tests__/dfn-resolve.test.d.ts.map +1 -0
  460. package/dist/postprocess/__tests__/dfn-resolve.test.js +160 -0
  461. package/dist/postprocess/__tests__/dfn-resolve.test.js.map +1 -0
  462. package/dist/postprocess/__tests__/section-id.test.d.ts +5 -0
  463. package/dist/postprocess/__tests__/section-id.test.d.ts.map +1 -0
  464. package/dist/postprocess/__tests__/section-id.test.js +222 -0
  465. package/dist/postprocess/__tests__/section-id.test.js.map +1 -0
  466. package/dist/postprocess/citation-transform.d.ts +19 -0
  467. package/dist/postprocess/citation-transform.d.ts.map +1 -0
  468. package/dist/postprocess/citation-transform.js +176 -0
  469. package/dist/postprocess/citation-transform.js.map +1 -0
  470. package/dist/postprocess/dfn-index.d.ts +16 -0
  471. package/dist/postprocess/dfn-index.d.ts.map +1 -0
  472. package/dist/postprocess/dfn-index.js +72 -0
  473. package/dist/postprocess/dfn-index.js.map +1 -0
  474. package/dist/postprocess/dfn-resolve.d.ts +15 -0
  475. package/dist/postprocess/dfn-resolve.d.ts.map +1 -0
  476. package/dist/postprocess/dfn-resolve.js +257 -0
  477. package/dist/postprocess/dfn-resolve.js.map +1 -0
  478. package/dist/postprocess/index.d.ts +15 -0
  479. package/dist/postprocess/index.d.ts.map +1 -0
  480. package/dist/postprocess/index.js +36 -0
  481. package/dist/postprocess/index.js.map +1 -0
  482. package/dist/postprocess/plugins/citation-transform.d.ts +19 -0
  483. package/dist/postprocess/plugins/citation-transform.d.ts.map +1 -0
  484. package/dist/postprocess/plugins/citation-transform.js +179 -0
  485. package/dist/postprocess/plugins/citation-transform.js.map +1 -0
  486. package/dist/postprocess/plugins/dfn-index.d.ts +16 -0
  487. package/dist/postprocess/plugins/dfn-index.d.ts.map +1 -0
  488. package/dist/postprocess/plugins/dfn-index.js +76 -0
  489. package/dist/postprocess/plugins/dfn-index.js.map +1 -0
  490. package/dist/postprocess/plugins/reference-resolve.d.ts +19 -0
  491. package/dist/postprocess/plugins/reference-resolve.d.ts.map +1 -0
  492. package/dist/postprocess/plugins/reference-resolve.js +103 -0
  493. package/dist/postprocess/plugins/reference-resolve.js.map +1 -0
  494. package/dist/postprocess/plugins/section-id.d.ts +16 -0
  495. package/dist/postprocess/plugins/section-id.d.ts.map +1 -0
  496. package/dist/postprocess/plugins/section-id.js +116 -0
  497. package/dist/postprocess/plugins/section-id.js.map +1 -0
  498. package/dist/postprocess/plugins/walk-ast.d.ts +38 -0
  499. package/dist/postprocess/plugins/walk-ast.d.ts.map +1 -0
  500. package/dist/postprocess/plugins/walk-ast.js +92 -0
  501. package/dist/postprocess/plugins/walk-ast.js.map +1 -0
  502. package/dist/postprocess/reference-resolve.d.ts +19 -0
  503. package/dist/postprocess/reference-resolve.d.ts.map +1 -0
  504. package/dist/postprocess/reference-resolve.js +105 -0
  505. package/dist/postprocess/reference-resolve.js.map +1 -0
  506. package/dist/postprocess/walk-ast.d.ts +38 -0
  507. package/dist/postprocess/walk-ast.d.ts.map +1 -0
  508. package/dist/postprocess/walk-ast.js +94 -0
  509. package/dist/postprocess/walk-ast.js.map +1 -0
  510. package/dist/preprocess/__tests__/pipeline.test.d.ts +5 -0
  511. package/dist/preprocess/__tests__/pipeline.test.d.ts.map +1 -0
  512. package/dist/preprocess/__tests__/pipeline.test.js +188 -0
  513. package/dist/preprocess/__tests__/pipeline.test.js.map +1 -0
  514. package/dist/preprocess/__tests__/resolver.test.d.ts +5 -0
  515. package/dist/preprocess/__tests__/resolver.test.d.ts.map +1 -0
  516. package/dist/preprocess/__tests__/resolver.test.js +165 -0
  517. package/dist/preprocess/__tests__/resolver.test.js.map +1 -0
  518. package/dist/preprocess/__tests__/scan-html.test.d.ts +5 -0
  519. package/dist/preprocess/__tests__/scan-html.test.d.ts.map +1 -0
  520. package/dist/preprocess/__tests__/scan-html.test.js +99 -0
  521. package/dist/preprocess/__tests__/scan-html.test.js.map +1 -0
  522. package/dist/preprocess/__tests__/scan-markdown.test.d.ts +5 -0
  523. package/dist/preprocess/__tests__/scan-markdown.test.d.ts.map +1 -0
  524. package/dist/preprocess/__tests__/scan-markdown.test.js +92 -0
  525. package/dist/preprocess/__tests__/scan-markdown.test.js.map +1 -0
  526. package/dist/preprocess/config/doc-config.d.ts +30 -0
  527. package/dist/preprocess/config/doc-config.d.ts.map +1 -0
  528. package/dist/preprocess/config/doc-config.js +85 -0
  529. package/dist/preprocess/config/doc-config.js.map +1 -0
  530. package/dist/preprocess/config/index.d.ts +9 -0
  531. package/dist/preprocess/config/index.d.ts.map +1 -0
  532. package/dist/preprocess/config/index.js +7 -0
  533. package/dist/preprocess/config/index.js.map +1 -0
  534. package/dist/preprocess/config/loader.d.ts +61 -0
  535. package/dist/preprocess/config/loader.d.ts.map +1 -0
  536. package/dist/preprocess/config/loader.js +40 -0
  537. package/dist/preprocess/config/loader.js.map +1 -0
  538. package/dist/preprocess/config/normalize.d.ts +19 -0
  539. package/dist/preprocess/config/normalize.d.ts.map +1 -0
  540. package/dist/preprocess/config/normalize.js +106 -0
  541. package/dist/preprocess/config/normalize.js.map +1 -0
  542. package/dist/preprocess/config/types.d.ts +40 -0
  543. package/dist/preprocess/config/types.d.ts.map +1 -0
  544. package/dist/preprocess/config/types.js +8 -0
  545. package/dist/preprocess/config/types.js.map +1 -0
  546. package/dist/preprocess/include/index.d.ts +7 -0
  547. package/dist/preprocess/include/index.d.ts.map +1 -0
  548. package/dist/preprocess/include/index.js +7 -0
  549. package/dist/preprocess/include/index.js.map +1 -0
  550. package/dist/preprocess/include/resolver.d.ts +40 -0
  551. package/dist/preprocess/include/resolver.d.ts.map +1 -0
  552. package/dist/preprocess/include/resolver.js +187 -0
  553. package/dist/preprocess/include/resolver.js.map +1 -0
  554. package/dist/preprocess/include/scan-html.d.ts +31 -0
  555. package/dist/preprocess/include/scan-html.d.ts.map +1 -0
  556. package/dist/preprocess/include/scan-html.js +100 -0
  557. package/dist/preprocess/include/scan-html.js.map +1 -0
  558. package/dist/preprocess/include/scan-markdown.d.ts +31 -0
  559. package/dist/preprocess/include/scan-markdown.d.ts.map +1 -0
  560. package/dist/preprocess/include/scan-markdown.js +83 -0
  561. package/dist/preprocess/include/scan-markdown.js.map +1 -0
  562. package/dist/preprocess/index.d.ts +16 -0
  563. package/dist/preprocess/index.d.ts.map +1 -0
  564. package/dist/preprocess/index.js +16 -0
  565. package/dist/preprocess/index.js.map +1 -0
  566. package/dist/preprocess/pipeline.d.ts +57 -0
  567. package/dist/preprocess/pipeline.d.ts.map +1 -0
  568. package/dist/preprocess/pipeline.js +100 -0
  569. package/dist/preprocess/pipeline.js.map +1 -0
  570. package/dist/preprocess/types.d.ts +197 -0
  571. package/dist/preprocess/types.d.ts.map +1 -0
  572. package/dist/preprocess/types.js +22 -0
  573. package/dist/preprocess/types.js.map +1 -0
  574. package/dist/types/ast.generated.d.ts +517 -0
  575. package/dist/types/ast.generated.d.ts.map +1 -0
  576. package/dist/types/ast.generated.js +66 -0
  577. package/dist/types/ast.generated.js.map +1 -0
  578. package/dist/validation/validate.d.ts +86 -0
  579. package/dist/validation/validate.d.ts.map +1 -0
  580. package/dist/validation/validate.js +162 -0
  581. package/dist/validation/validate.js.map +1 -0
  582. package/dist/workspace/__tests__/sort.test.d.ts +2 -0
  583. package/dist/workspace/__tests__/sort.test.d.ts.map +1 -0
  584. package/dist/workspace/__tests__/sort.test.js +122 -0
  585. package/dist/workspace/__tests__/sort.test.js.map +1 -0
  586. package/dist/workspace/index.d.ts +8 -0
  587. package/dist/workspace/index.d.ts.map +1 -0
  588. package/dist/workspace/index.js +7 -0
  589. package/dist/workspace/index.js.map +1 -0
  590. package/dist/workspace/sort.d.ts +49 -0
  591. package/dist/workspace/sort.d.ts.map +1 -0
  592. package/dist/workspace/sort.js +114 -0
  593. package/dist/workspace/sort.js.map +1 -0
  594. package/package.json +46 -81
  595. package/schema/spec-ast.schema.json +1440 -0
  596. package/bin/speculator.mjs +0 -76
  597. package/dist/browser.cjs +0 -1690
  598. package/dist/browser.d.cts +0 -418
  599. package/dist/browser.d.ts +0 -418
  600. package/dist/browser.js +0 -36
  601. package/dist/chunk-H7C7MOU6.js +0 -28
  602. package/dist/chunk-V4GSFQE7.js +0 -1646
  603. package/dist/cli/export-assertions.cjs +0 -1710
  604. package/dist/cli/export-assertions.d.cts +0 -25
  605. package/dist/cli/export-assertions.d.ts +0 -25
  606. package/dist/cli/export-assertions.js +0 -107
  607. package/dist/node.cjs +0 -1712
  608. package/dist/node.d.cts +0 -17
  609. package/dist/node.d.ts +0 -17
  610. package/dist/node.js +0 -40
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/parse/parsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Parse Pipeline
3
+ *
4
+ * Orchestrates parsing of preprocessed spec into Document AST.
5
+ * Parser modules are registered automatically when importing html/index and markdown/index.
6
+ */
7
+ import type { PreprocessedSpec } from '#src/preprocess/types';
8
+ import type { UnitParser, ParseResult } from '#src/parse/types';
9
+ import { ParseHandlerRegistry } from '#src/parse/registry';
10
+ /**
11
+ * Parse a preprocessed spec into a Document AST
12
+ *
13
+ * Uses the default registry with core handlers.
14
+ *
15
+ * @param preprocessed - Preprocessed spec with config and source units
16
+ * @returns ParseResult with document and diagnostics
17
+ */
18
+ export declare function parse(preprocessed: PreprocessedSpec): ParseResult;
19
+ /**
20
+ * Parse a preprocessed spec using a custom handler registry
21
+ *
22
+ * This allows the pipeline to use plugin-registered handlers.
23
+ *
24
+ * @param preprocessed - Preprocessed spec with config and source units
25
+ * @param registry - Custom handler registry with plugin handlers
26
+ * @returns ParseResult with document and diagnostics
27
+ */
28
+ export declare function parseWithRegistry(preprocessed: PreprocessedSpec, registry: ParseHandlerRegistry): ParseResult;
29
+ /**
30
+ * Register a custom parser for a format
31
+ *
32
+ * Useful for extending with custom format support.
33
+ */
34
+ export declare function registerParser(parser: UnitParser): void;
35
+ /**
36
+ * Parse composite source directly (without config)
37
+ *
38
+ * Useful for testing or when config is handled separately.
39
+ */
40
+ export declare function parseCompositeSource(source: PreprocessedSpec['source'], config?: PreprocessedSpec['config']): ParseResult;
41
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/parse/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAA4B,MAAM,uBAAuB,CAAC;AAExF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAIjF,OAAO,EAAE,oBAAoB,EAAmB,MAAM,qBAAqB,CAAC;AA4F5E;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,YAAY,EAAE,gBAAgB,GAAG,WAAW,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,oBAAoB,GAC/B,WAAW,CAGb;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,MAAM,GAAE,gBAAgB,CAAC,QAAQ,CAAM,GACxC,WAAW,CAEb"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Parse Pipeline
3
+ *
4
+ * Orchestrates parsing of preprocessed spec into Document AST.
5
+ * Parser modules are registered automatically when importing html/index and markdown/index.
6
+ */
7
+ import { MarkdownUnitParser } from '#src/parse/markdown/index';
8
+ import { HtmlUnitParser } from '#src/parse/html/index';
9
+ import { assembleDocument } from '#src/parse/assembler';
10
+ import { defaultRegistry } from '#src/parse/registry';
11
+ /**
12
+ * Parser registry - maps format to parser factory
13
+ */
14
+ function createParsers(registry) {
15
+ const parsers = new Map();
16
+ parsers.set('markdown', new MarkdownUnitParser(registry));
17
+ parsers.set('html', new HtmlUnitParser(registry));
18
+ return parsers;
19
+ }
20
+ // Default parsers using the default registry
21
+ const defaultParsers = createParsers(defaultRegistry);
22
+ /**
23
+ * Get parser for a format from a parser map
24
+ */
25
+ function getParser(parsers, format) {
26
+ const parser = parsers.get(format);
27
+ if (!parser) {
28
+ throw new Error(`No parser registered for format: ${format}`);
29
+ }
30
+ return parser;
31
+ }
32
+ /**
33
+ * Parse a single source unit
34
+ */
35
+ function parseUnit(unit, parsers) {
36
+ const diagnostics = [];
37
+ try {
38
+ const parser = getParser(parsers, unit.format);
39
+ const blocks = parser.parse(unit);
40
+ return { blocks, diagnostics };
41
+ }
42
+ catch (error) {
43
+ diagnostics.push({
44
+ severity: 'error',
45
+ code: 'parse-error',
46
+ message: `Failed to parse ${unit.file}: ${error instanceof Error ? error.message : String(error)}`,
47
+ file: unit.file,
48
+ });
49
+ return { blocks: [], diagnostics };
50
+ }
51
+ }
52
+ /**
53
+ * Internal parse implementation
54
+ */
55
+ function parseInternal(preprocessed, parsers) {
56
+ const diagnostics = [];
57
+ const allBlocks = [];
58
+ // Parse each unit in order
59
+ for (const unit of preprocessed.source.units) {
60
+ const unitResult = parseUnit(unit, parsers);
61
+ diagnostics.push(...unitResult.diagnostics);
62
+ allBlocks.push(...unitResult.blocks);
63
+ }
64
+ // Check for errors
65
+ const hasErrors = diagnostics.some(d => d.severity === 'error');
66
+ if (hasErrors && allBlocks.length === 0) {
67
+ return { diagnostics, hasErrors };
68
+ }
69
+ // Assemble document
70
+ const document = assembleDocument(allBlocks, preprocessed.config, preprocessed.source.entryFile);
71
+ return {
72
+ result: {
73
+ config: preprocessed.config,
74
+ document,
75
+ },
76
+ diagnostics,
77
+ hasErrors,
78
+ };
79
+ }
80
+ /**
81
+ * Parse a preprocessed spec into a Document AST
82
+ *
83
+ * Uses the default registry with core handlers.
84
+ *
85
+ * @param preprocessed - Preprocessed spec with config and source units
86
+ * @returns ParseResult with document and diagnostics
87
+ */
88
+ export function parse(preprocessed) {
89
+ return parseInternal(preprocessed, defaultParsers);
90
+ }
91
+ /**
92
+ * Parse a preprocessed spec using a custom handler registry
93
+ *
94
+ * This allows the pipeline to use plugin-registered handlers.
95
+ *
96
+ * @param preprocessed - Preprocessed spec with config and source units
97
+ * @param registry - Custom handler registry with plugin handlers
98
+ * @returns ParseResult with document and diagnostics
99
+ */
100
+ export function parseWithRegistry(preprocessed, registry) {
101
+ const parsers = createParsers(registry);
102
+ return parseInternal(preprocessed, parsers);
103
+ }
104
+ /**
105
+ * Register a custom parser for a format
106
+ *
107
+ * Useful for extending with custom format support.
108
+ */
109
+ export function registerParser(parser) {
110
+ defaultParsers.set(parser.format, parser);
111
+ }
112
+ /**
113
+ * Parse composite source directly (without config)
114
+ *
115
+ * Useful for testing or when config is handled separately.
116
+ */
117
+ export function parseCompositeSource(source, config = {}) {
118
+ return parse({ config, source });
119
+ }
120
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/parse/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Parse Handler Registry
3
+ *
4
+ * Provides a modular architecture for parser modules.
5
+ * Parser modules handle specific hast/mdast nodes and emit SpecAST nodes.
6
+ */
7
+ import type { Element, RootContent } from 'hast';
8
+ import type { RootContent as MdastRootContent } from 'mdast';
9
+ import type { SourceUnit } from '#src/preprocess/types';
10
+ import type { Section, Block, Inline, SourcePos } from '#src/types/ast.generated';
11
+ import type { ParseDiagnostic } from '#src/parse/types';
12
+ /**
13
+ * Node with optional position information
14
+ */
15
+ export interface NodeWithPosition {
16
+ position?: {
17
+ start: {
18
+ line: number;
19
+ column: number;
20
+ offset?: number;
21
+ };
22
+ end?: {
23
+ line: number;
24
+ column: number;
25
+ offset?: number;
26
+ };
27
+ };
28
+ }
29
+ /**
30
+ * Result of handling a node - can emit blocks, inlines, or null
31
+ */
32
+ export type HandlerResult = Section | Block | Inline | (Section | Block)[] | Inline[] | null;
33
+ /**
34
+ * Block-level handler result
35
+ */
36
+ export type BlockHandlerResult = Section | Block | (Section | Block)[] | null;
37
+ /**
38
+ * Inline-level handler result
39
+ */
40
+ export type InlineHandlerResult = Inline | Inline[] | null;
41
+ /**
42
+ * Unified context provided to parser modules
43
+ *
44
+ * This is the common interface for both HTML and Markdown parser modules.
45
+ * Some methods may be no-ops depending on the format.
46
+ */
47
+ export interface ParseContext {
48
+ /** Source unit being parsed */
49
+ readonly unit: SourceUnit;
50
+ /** Create source position from node */
51
+ createSourcePos(node: NodeWithPosition): SourcePos | undefined;
52
+ /** Transform children to inline nodes */
53
+ transformInlineChildren(children: RootContent[] | MdastRootContent[]): Inline[];
54
+ /** Transform children to block nodes (recursive) */
55
+ transformBlockChildren(children: RootContent[] | MdastRootContent[]): (Section | Block)[];
56
+ /**
57
+ * Emit a diagnostic from the parser module.
58
+ * Use for warnings about invalid structure, unsupported elements, etc.
59
+ */
60
+ emitDiagnostic(diagnostic: Omit<ParseDiagnostic, 'file'>): void;
61
+ /** Get text content of element (HTML) */
62
+ getTextContent(element: Element): string;
63
+ /** Get attribute value (HTML) */
64
+ getAttr(element: Element, name: string): string | undefined;
65
+ }
66
+ /**
67
+ * HTML parser module for handling hast elements.
68
+ *
69
+ * Parser modules are first-class modules that live in src/parse/.
70
+ * They handle specific HTML tags and emit SpecAST nodes.
71
+ */
72
+ export interface HtmlParserModule {
73
+ /** Unique parser module name */
74
+ name: string;
75
+ /** Tag names this parser handles (e.g., ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']) */
76
+ handles: string[];
77
+ /**
78
+ * Order for deterministic dispatch.
79
+ * Lower numbers run first. Default is 10.
80
+ */
81
+ order?: number;
82
+ /** Handle a block-level element */
83
+ handleBlock?(element: Element, ctx: ParseContext): BlockHandlerResult;
84
+ /** Handle an inline-level element */
85
+ handleInline?(element: Element, ctx: ParseContext): InlineHandlerResult;
86
+ }
87
+ /**
88
+ * Markdown parser module for handling mdast nodes.
89
+ *
90
+ * Parser modules are first-class modules that live in src/parse/.
91
+ * They handle specific mdast node types and emit SpecAST nodes.
92
+ */
93
+ export interface MarkdownParserModule {
94
+ /** Unique parser module name */
95
+ name: string;
96
+ /** Node types this parser handles (e.g., ['heading']) */
97
+ handles: string[];
98
+ /**
99
+ * Order for deterministic dispatch.
100
+ * Lower numbers run first. Default is 10.
101
+ */
102
+ order?: number;
103
+ /** Handle a block-level node */
104
+ handleBlock?(node: MdastRootContent, ctx: ParseContext): Block | null;
105
+ /** Handle an inline-level node */
106
+ handleInline?(node: MdastRootContent, ctx: ParseContext): InlineHandlerResult;
107
+ }
108
+ /**
109
+ * Registry for parser modules
110
+ *
111
+ * Manages parser modules for HTML tags and Markdown node types.
112
+ * Supports ordering for deterministic dispatch.
113
+ */
114
+ export declare class ParseHandlerRegistry {
115
+ private htmlBlockHandlers;
116
+ private htmlInlineHandlers;
117
+ private mdBlockHandlers;
118
+ private mdInlineHandlers;
119
+ /**
120
+ * Register an HTML parser module
121
+ */
122
+ registerHtmlParser(parser: HtmlParserModule): void;
123
+ /**
124
+ * Register a Markdown parser module
125
+ */
126
+ registerMarkdownParser(parser: MarkdownParserModule): void;
127
+ /**
128
+ * Get HTML block parser for a tag
129
+ */
130
+ getHtmlBlockHandler(tagName: string): HtmlParserModule | undefined;
131
+ /**
132
+ * Get HTML inline parser for a tag
133
+ */
134
+ getHtmlInlineHandler(tagName: string): HtmlParserModule | undefined;
135
+ /**
136
+ * Get Markdown block parser for a node type
137
+ */
138
+ getMdBlockHandler(nodeType: string): MarkdownParserModule | undefined;
139
+ /**
140
+ * Get Markdown inline parser for a node type
141
+ */
142
+ getMdInlineHandler(nodeType: string): MarkdownParserModule | undefined;
143
+ /**
144
+ * Check if a handler exists for HTML tag
145
+ */
146
+ hasHtmlHandler(tagName: string): boolean;
147
+ /**
148
+ * Check if a handler exists for Markdown node type
149
+ */
150
+ hasMdHandler(nodeType: string): boolean;
151
+ }
152
+ /**
153
+ * Global default registry instance
154
+ */
155
+ export declare const defaultRegistry: ParseHandlerRegistry;
156
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/parse/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Parse Handler Registry
3
+ *
4
+ * Provides a modular architecture for parser modules.
5
+ * Parser modules handle specific hast/mdast nodes and emit SpecAST nodes.
6
+ */
7
+ // ============================================================================
8
+ // Registry
9
+ // ============================================================================
10
+ /**
11
+ * Registry for parser modules
12
+ *
13
+ * Manages parser modules for HTML tags and Markdown node types.
14
+ * Supports ordering for deterministic dispatch.
15
+ */
16
+ export class ParseHandlerRegistry {
17
+ htmlBlockHandlers = new Map();
18
+ htmlInlineHandlers = new Map();
19
+ mdBlockHandlers = new Map();
20
+ mdInlineHandlers = new Map();
21
+ /**
22
+ * Register an HTML parser module
23
+ */
24
+ registerHtmlParser(parser) {
25
+ for (const tag of parser.handles) {
26
+ const normalizedTag = tag.toLowerCase();
27
+ // Check if we should override based on order
28
+ if (parser.handleBlock) {
29
+ const existing = this.htmlBlockHandlers.get(normalizedTag);
30
+ if (!existing || (parser.order ?? 10) < (existing.order ?? 10)) {
31
+ this.htmlBlockHandlers.set(normalizedTag, parser);
32
+ }
33
+ }
34
+ if (parser.handleInline) {
35
+ const existing = this.htmlInlineHandlers.get(normalizedTag);
36
+ if (!existing || (parser.order ?? 10) < (existing.order ?? 10)) {
37
+ this.htmlInlineHandlers.set(normalizedTag, parser);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * Register a Markdown parser module
44
+ */
45
+ registerMarkdownParser(parser) {
46
+ for (const nodeType of parser.handles) {
47
+ // Check if we should override based on order
48
+ if (parser.handleBlock) {
49
+ const existing = this.mdBlockHandlers.get(nodeType);
50
+ if (!existing || (parser.order ?? 10) < (existing.order ?? 10)) {
51
+ this.mdBlockHandlers.set(nodeType, parser);
52
+ }
53
+ }
54
+ if (parser.handleInline) {
55
+ const existing = this.mdInlineHandlers.get(nodeType);
56
+ if (!existing || (parser.order ?? 10) < (existing.order ?? 10)) {
57
+ this.mdInlineHandlers.set(nodeType, parser);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * Get HTML block parser for a tag
64
+ */
65
+ getHtmlBlockHandler(tagName) {
66
+ return this.htmlBlockHandlers.get(tagName.toLowerCase());
67
+ }
68
+ /**
69
+ * Get HTML inline parser for a tag
70
+ */
71
+ getHtmlInlineHandler(tagName) {
72
+ return this.htmlInlineHandlers.get(tagName.toLowerCase());
73
+ }
74
+ /**
75
+ * Get Markdown block parser for a node type
76
+ */
77
+ getMdBlockHandler(nodeType) {
78
+ return this.mdBlockHandlers.get(nodeType);
79
+ }
80
+ /**
81
+ * Get Markdown inline parser for a node type
82
+ */
83
+ getMdInlineHandler(nodeType) {
84
+ return this.mdInlineHandlers.get(nodeType);
85
+ }
86
+ /**
87
+ * Check if a handler exists for HTML tag
88
+ */
89
+ hasHtmlHandler(tagName) {
90
+ const normalized = tagName.toLowerCase();
91
+ return this.htmlBlockHandlers.has(normalized) || this.htmlInlineHandlers.has(normalized);
92
+ }
93
+ /**
94
+ * Check if a handler exists for Markdown node type
95
+ */
96
+ hasMdHandler(nodeType) {
97
+ return this.mdBlockHandlers.has(nodeType) || this.mdInlineHandlers.has(nodeType);
98
+ }
99
+ }
100
+ /**
101
+ * Global default registry instance
102
+ */
103
+ export const defaultRegistry = new ParseHandlerRegistry();
104
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/parse/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Parse Stage Types
3
+ *
4
+ * Types for parsing source units into AST nodes.
5
+ */
6
+ import type { SourceUnit, SourceFormat, SpecConfig } from '#src/preprocess/types';
7
+ import type { Section, Block, SourcePos, Document } from '#src/types/ast.generated';
8
+ /**
9
+ * Interface for format-specific unit parsers
10
+ *
11
+ * Both markdown and HTML parsers implement this interface,
12
+ * allowing the orchestrator to route units to the correct parser.
13
+ */
14
+ export interface UnitParser {
15
+ /** Format this parser handles */
16
+ readonly format: SourceFormat;
17
+ /**
18
+ * Parse a source unit into AST blocks
19
+ *
20
+ * @param unit - Source unit to parse
21
+ * @returns Array of top-level blocks/sections
22
+ */
23
+ parse(unit: SourceUnit): (Section | Block)[];
24
+ }
25
+ /**
26
+ * Result of parsing a preprocessed spec
27
+ */
28
+ export interface ParsedSpec {
29
+ /** Configuration from preprocess */
30
+ config: SpecConfig;
31
+ /** Parsed document AST */
32
+ document: Document;
33
+ }
34
+ /**
35
+ * Parse diagnostic codes
36
+ */
37
+ export type ParseDiagnosticCode = 'parse-error' | 'invalid-structure' | 'unsupported-element';
38
+ /**
39
+ * Diagnostic severity levels
40
+ */
41
+ export type DiagnosticSeverity = 'error' | 'warning' | 'info';
42
+ /**
43
+ * Parse diagnostic message
44
+ */
45
+ export interface ParseDiagnostic {
46
+ severity: DiagnosticSeverity;
47
+ code: ParseDiagnosticCode;
48
+ message: string;
49
+ file?: string;
50
+ sourcePos?: SourcePos;
51
+ }
52
+ /**
53
+ * Parse result with diagnostics
54
+ */
55
+ export interface ParseResult {
56
+ /** Parsed spec (may be partial if errors) */
57
+ result?: ParsedSpec;
58
+ /** Diagnostics from parsing */
59
+ diagnostics: ParseDiagnostic[];
60
+ /** Quick check for errors */
61
+ hasErrors: boolean;
62
+ }
63
+ /**
64
+ * Create a source position from unit context
65
+ */
66
+ export declare function createSourcePos(unit: SourceUnit, line: number, column: number): SourcePos;
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parse/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOpF;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACvB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B;;;;;OAKG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;CAChD;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,oCAAoC;IACpC,MAAM,EAAE,UAAU,CAAC;IAEnB,0BAA0B;IAC1B,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GACzB,aAAa,GACb,mBAAmB,GACnB,qBAAqB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE,eAAe,EAAE,CAAC;IAE/B,6BAA6B;IAC7B,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,SAAS,CAMX"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Parse Stage Types
3
+ *
4
+ * Types for parsing source units into AST nodes.
5
+ */
6
+ // ============================================================================
7
+ // Helpers
8
+ // ============================================================================
9
+ /**
10
+ * Create a source position from unit context
11
+ */
12
+ export function createSourcePos(unit, line, column) {
13
+ return {
14
+ file: unit.file,
15
+ line: unit.startLine + line - 1,
16
+ column,
17
+ };
18
+ }
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parse/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsFH,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,eAAe,CAC3B,IAAgB,EAChB,IAAY,EACZ,MAAc;IAEd,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;QAC/B,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Pipeline Integration Tests
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/__tests__/pipeline.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Pipeline Integration Tests
3
+ */
4
+ import { describe, it, expect } from 'vitest';
5
+ import { speculate, corePlugins } from '#src/index';
6
+ import { MemoryFileProvider } from '#src/file-provider/memory';
7
+ describe('speculate', () => {
8
+ it('processes a simple markdown spec', async () => {
9
+ const fileProvider = new MemoryFileProvider({
10
+ '/spec/index.md': '# My Spec\n\nParagraph content.',
11
+ });
12
+ const result = await speculate({
13
+ entry: '/spec/index.md',
14
+ plugins: corePlugins,
15
+ fileProvider,
16
+ });
17
+ expect(result.workspace?.documents[0].type).toBe('document');
18
+ expect(result.workspace?.documents[0].children.length).toBeGreaterThan(0);
19
+ });
20
+ it('processes markdown with config', async () => {
21
+ const fileProvider = new MemoryFileProvider({
22
+ '/spec/index.md': '# Title\n\nContent',
23
+ '/spec/config.respec.json': JSON.stringify({
24
+ title: 'Test Spec',
25
+ shortName: 'test',
26
+ }),
27
+ });
28
+ const result = await speculate({
29
+ entry: '/spec/index.md',
30
+ configPath: '/spec/config.respec.json',
31
+ plugins: corePlugins,
32
+ fileProvider,
33
+ });
34
+ expect(result.workspace?.documents[0].metadata?.title).toBe('Test Spec');
35
+ });
36
+ it('processes HTML spec with sections', async () => {
37
+ const fileProvider = new MemoryFileProvider({
38
+ '/spec/index.html': `
39
+ <section id="abstract">
40
+ <h2>Abstract</h2>
41
+ <p>Summary text</p>
42
+ </section>
43
+ `,
44
+ });
45
+ const result = await speculate({
46
+ entry: '/spec/index.html',
47
+ plugins: corePlugins,
48
+ fileProvider,
49
+ });
50
+ const section = result.workspace?.documents[0].children[0];
51
+ expect(section.type).toBe('section');
52
+ expect(section.id).toBe('abstract');
53
+ });
54
+ it('works with includes', async () => {
55
+ const fileProvider = new MemoryFileProvider({
56
+ '/spec/index.md': '# Title\n\n:::include ./intro.md :::\n',
57
+ '/spec/intro.md': '## Introduction\n\nIntro text',
58
+ });
59
+ const result = await speculate({
60
+ entry: '/spec/index.md',
61
+ plugins: corePlugins,
62
+ fileProvider,
63
+ });
64
+ // Check that content from both files is present
65
+ const doc = result.workspace?.documents[0];
66
+ expect(doc?.children.length).toBeGreaterThan(0);
67
+ });
68
+ });
69
+ //# sourceMappingURL=pipeline.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../../src/pipeline/__tests__/pipeline.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=single-as-workspace.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-as-workspace.test.d.ts","sourceRoot":"","sources":["../../../src/pipeline/__tests__/single-as-workspace.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { SpeculatorPipeline } from '../runner.js';
3
+ import { MemoryFileProvider } from '#src/file-provider/memory';
4
+ describe('Single document as workspace', () => {
5
+ it('should return a Workspace root even for a single-document run', async () => {
6
+ const fileProvider = new MemoryFileProvider();
7
+ fileProvider.setFile('/spec.md', '# Spec\n\nHello world');
8
+ const pipeline = new SpeculatorPipeline([]);
9
+ const result = await pipeline.run({
10
+ entry: '/spec.md',
11
+ fileProvider
12
+ });
13
+ expect(result.workspace).toBeDefined();
14
+ expect(result.workspace?.type).toBe('workspace');
15
+ expect(result.workspace?.documents.length).toBe(1);
16
+ expect(result.workspace?.documents[0].type).toBe('document');
17
+ });
18
+ });
19
+ //# sourceMappingURL=single-as-workspace.test.js.map