@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.
- package/README.md +111 -50
- package/dist/file-provider/__tests__/compliance.test.d.ts +5 -0
- package/dist/file-provider/__tests__/compliance.test.d.ts.map +1 -0
- package/dist/file-provider/__tests__/compliance.test.js +52 -0
- package/dist/file-provider/__tests__/compliance.test.js.map +1 -0
- package/dist/file-provider/index.d.ts +8 -0
- package/dist/file-provider/index.d.ts.map +1 -0
- package/dist/file-provider/index.js +10 -0
- package/dist/file-provider/index.js.map +1 -0
- package/dist/file-provider/memory.d.ts +46 -0
- package/dist/file-provider/memory.d.ts.map +1 -0
- package/dist/file-provider/memory.js +99 -0
- package/dist/file-provider/memory.js.map +1 -0
- package/dist/file-provider/node.d.ts +32 -0
- package/dist/file-provider/node.d.ts.map +1 -0
- package/dist/file-provider/node.js +65 -0
- package/dist/file-provider/node.js.map +1 -0
- package/dist/file-provider/types.d.ts +69 -0
- package/dist/file-provider/types.d.ts.map +1 -0
- package/dist/file-provider/types.js +47 -0
- package/dist/file-provider/types.js.map +1 -0
- package/dist/file-provider/web.d.ts +32 -0
- package/dist/file-provider/web.d.ts.map +1 -0
- package/dist/file-provider/web.js +77 -0
- package/dist/file-provider/web.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/parse/AsideHtmlParser.d.ts +12 -0
- package/dist/parse/AsideHtmlParser.d.ts.map +1 -0
- package/dist/parse/AsideHtmlParser.js +74 -0
- package/dist/parse/AsideHtmlParser.js.map +1 -0
- package/dist/parse/BlockquoteHtmlParser.d.ts +11 -0
- package/dist/parse/BlockquoteHtmlParser.d.ts.map +1 -0
- package/dist/parse/BlockquoteHtmlParser.js +28 -0
- package/dist/parse/BlockquoteHtmlParser.js.map +1 -0
- package/dist/parse/BlockquoteMarkdownParser.d.ts +11 -0
- package/dist/parse/BlockquoteMarkdownParser.d.ts.map +1 -0
- package/dist/parse/BlockquoteMarkdownParser.js +26 -0
- package/dist/parse/BlockquoteMarkdownParser.js.map +1 -0
- package/dist/parse/CodeHtmlParser.d.ts +11 -0
- package/dist/parse/CodeHtmlParser.d.ts.map +1 -0
- package/dist/parse/CodeHtmlParser.js +38 -0
- package/dist/parse/CodeHtmlParser.js.map +1 -0
- package/dist/parse/CodeMarkdownParser.d.ts +11 -0
- package/dist/parse/CodeMarkdownParser.d.ts.map +1 -0
- package/dist/parse/CodeMarkdownParser.js +29 -0
- package/dist/parse/CodeMarkdownParser.js.map +1 -0
- package/dist/parse/DfnHtmlParser.d.ts +12 -0
- package/dist/parse/DfnHtmlParser.d.ts.map +1 -0
- package/dist/parse/DfnHtmlParser.js +53 -0
- package/dist/parse/DfnHtmlParser.js.map +1 -0
- package/dist/parse/HeadingsHtmlParser.d.ts +11 -0
- package/dist/parse/HeadingsHtmlParser.d.ts.map +1 -0
- package/dist/parse/HeadingsHtmlParser.js +30 -0
- package/dist/parse/HeadingsHtmlParser.js.map +1 -0
- package/dist/parse/HeadingsMarkdownParser.d.ts +11 -0
- package/dist/parse/HeadingsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/HeadingsMarkdownParser.js +26 -0
- package/dist/parse/HeadingsMarkdownParser.js.map +1 -0
- package/dist/parse/InlinesHtmlParser.d.ts +12 -0
- package/dist/parse/InlinesHtmlParser.d.ts.map +1 -0
- package/dist/parse/InlinesHtmlParser.js +150 -0
- package/dist/parse/InlinesHtmlParser.js.map +1 -0
- package/dist/parse/InlinesMarkdownParser.d.ts +11 -0
- package/dist/parse/InlinesMarkdownParser.d.ts.map +1 -0
- package/dist/parse/InlinesMarkdownParser.js +91 -0
- package/dist/parse/InlinesMarkdownParser.js.map +1 -0
- package/dist/parse/ListsHtmlParser.d.ts +11 -0
- package/dist/parse/ListsHtmlParser.d.ts.map +1 -0
- package/dist/parse/ListsHtmlParser.js +71 -0
- package/dist/parse/ListsHtmlParser.js.map +1 -0
- package/dist/parse/ListsMarkdownParser.d.ts +11 -0
- package/dist/parse/ListsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/ListsMarkdownParser.js +46 -0
- package/dist/parse/ListsMarkdownParser.js.map +1 -0
- package/dist/parse/MiscHtmlParser.d.ts +12 -0
- package/dist/parse/MiscHtmlParser.d.ts.map +1 -0
- package/dist/parse/MiscHtmlParser.js +85 -0
- package/dist/parse/MiscHtmlParser.js.map +1 -0
- package/dist/parse/MiscMarkdownParser.d.ts +11 -0
- package/dist/parse/MiscMarkdownParser.d.ts.map +1 -0
- package/dist/parse/MiscMarkdownParser.js +38 -0
- package/dist/parse/MiscMarkdownParser.js.map +1 -0
- package/dist/parse/ParagraphsHtmlParser.d.ts +11 -0
- package/dist/parse/ParagraphsHtmlParser.d.ts.map +1 -0
- package/dist/parse/ParagraphsHtmlParser.js +30 -0
- package/dist/parse/ParagraphsHtmlParser.js.map +1 -0
- package/dist/parse/ParagraphsMarkdownParser.d.ts +11 -0
- package/dist/parse/ParagraphsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/ParagraphsMarkdownParser.js +25 -0
- package/dist/parse/ParagraphsMarkdownParser.js.map +1 -0
- package/dist/parse/SectionsHtmlParser.d.ts +12 -0
- package/dist/parse/SectionsHtmlParser.d.ts.map +1 -0
- package/dist/parse/SectionsHtmlParser.js +58 -0
- package/dist/parse/SectionsHtmlParser.js.map +1 -0
- package/dist/parse/TablesHtmlParser.d.ts +11 -0
- package/dist/parse/TablesHtmlParser.d.ts.map +1 -0
- package/dist/parse/TablesHtmlParser.js +81 -0
- package/dist/parse/TablesHtmlParser.js.map +1 -0
- package/dist/parse/TablesMarkdownParser.d.ts +11 -0
- package/dist/parse/TablesMarkdownParser.d.ts.map +1 -0
- package/dist/parse/TablesMarkdownParser.js +56 -0
- package/dist/parse/TablesMarkdownParser.js.map +1 -0
- package/dist/parse/XrefHtmlParser.d.ts +12 -0
- package/dist/parse/XrefHtmlParser.d.ts.map +1 -0
- package/dist/parse/XrefHtmlParser.js +124 -0
- package/dist/parse/XrefHtmlParser.js.map +1 -0
- package/dist/parse/__tests__/assembler.test.d.ts +5 -0
- package/dist/parse/__tests__/assembler.test.d.ts.map +1 -0
- package/dist/parse/__tests__/assembler.test.js +135 -0
- package/dist/parse/__tests__/assembler.test.js.map +1 -0
- package/dist/parse/__tests__/html.test.d.ts +5 -0
- package/dist/parse/__tests__/html.test.d.ts.map +1 -0
- package/dist/parse/__tests__/html.test.js +149 -0
- package/dist/parse/__tests__/html.test.js.map +1 -0
- package/dist/parse/__tests__/markdown.test.d.ts +5 -0
- package/dist/parse/__tests__/markdown.test.d.ts.map +1 -0
- package/dist/parse/__tests__/markdown.test.js +133 -0
- package/dist/parse/__tests__/markdown.test.js.map +1 -0
- package/dist/parse/__tests__/pipeline.test.d.ts +5 -0
- package/dist/parse/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/parse/__tests__/pipeline.test.js +215 -0
- package/dist/parse/__tests__/pipeline.test.js.map +1 -0
- package/dist/parse/__tests__/respec.test.d.ts +7 -0
- package/dist/parse/__tests__/respec.test.d.ts.map +1 -0
- package/dist/parse/__tests__/respec.test.js +151 -0
- package/dist/parse/__tests__/respec.test.js.map +1 -0
- package/dist/parse/assembler.d.ts +20 -0
- package/dist/parse/assembler.d.ts.map +1 -0
- package/dist/parse/assembler.js +175 -0
- package/dist/parse/assembler.js.map +1 -0
- package/dist/parse/html/AsideHtmlParser.d.ts +12 -0
- package/dist/parse/html/AsideHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/AsideHtmlParser.js +74 -0
- package/dist/parse/html/AsideHtmlParser.js.map +1 -0
- package/dist/parse/html/BlockquoteHtmlParser.d.ts +11 -0
- package/dist/parse/html/BlockquoteHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/BlockquoteHtmlParser.js +28 -0
- package/dist/parse/html/BlockquoteHtmlParser.js.map +1 -0
- package/dist/parse/html/CodeHtmlParser.d.ts +11 -0
- package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/CodeHtmlParser.js +38 -0
- package/dist/parse/html/CodeHtmlParser.js.map +1 -0
- package/dist/parse/html/DfnHtmlParser.d.ts +12 -0
- package/dist/parse/html/DfnHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/DfnHtmlParser.js +53 -0
- package/dist/parse/html/DfnHtmlParser.js.map +1 -0
- package/dist/parse/html/HeadingsHtmlParser.d.ts +11 -0
- package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/HeadingsHtmlParser.js +30 -0
- package/dist/parse/html/HeadingsHtmlParser.js.map +1 -0
- package/dist/parse/html/InlinesHtmlParser.d.ts +12 -0
- package/dist/parse/html/InlinesHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/InlinesHtmlParser.js +150 -0
- package/dist/parse/html/InlinesHtmlParser.js.map +1 -0
- package/dist/parse/html/ListsHtmlParser.d.ts +11 -0
- package/dist/parse/html/ListsHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/ListsHtmlParser.js +71 -0
- package/dist/parse/html/ListsHtmlParser.js.map +1 -0
- package/dist/parse/html/MiscHtmlParser.d.ts +12 -0
- package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/MiscHtmlParser.js +85 -0
- package/dist/parse/html/MiscHtmlParser.js.map +1 -0
- package/dist/parse/html/ParagraphsHtmlParser.d.ts +11 -0
- package/dist/parse/html/ParagraphsHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/ParagraphsHtmlParser.js +30 -0
- package/dist/parse/html/ParagraphsHtmlParser.js.map +1 -0
- package/dist/parse/html/SectionsHtmlParser.d.ts +12 -0
- package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/SectionsHtmlParser.js +58 -0
- package/dist/parse/html/SectionsHtmlParser.js.map +1 -0
- package/dist/parse/html/TablesHtmlParser.d.ts +11 -0
- package/dist/parse/html/TablesHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/TablesHtmlParser.js +81 -0
- package/dist/parse/html/TablesHtmlParser.js.map +1 -0
- package/dist/parse/html/XrefHtmlParser.d.ts +12 -0
- package/dist/parse/html/XrefHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/XrefHtmlParser.js +125 -0
- package/dist/parse/html/XrefHtmlParser.js.map +1 -0
- package/dist/parse/html/handlers/blockquote.d.ts +9 -0
- package/dist/parse/html/handlers/blockquote.d.ts.map +1 -0
- package/dist/parse/html/handlers/blockquote.js +21 -0
- package/dist/parse/html/handlers/blockquote.js.map +1 -0
- package/dist/parse/html/handlers/code.d.ts +9 -0
- package/dist/parse/html/handlers/code.d.ts.map +1 -0
- package/dist/parse/html/handlers/code.js +31 -0
- package/dist/parse/html/handlers/code.js.map +1 -0
- package/dist/parse/html/handlers/containers.d.ts +16 -0
- package/dist/parse/html/handlers/containers.d.ts.map +1 -0
- package/dist/parse/html/handlers/containers.js +25 -0
- package/dist/parse/html/handlers/containers.js.map +1 -0
- package/dist/parse/html/handlers/heading.d.ts +9 -0
- package/dist/parse/html/handlers/heading.d.ts.map +1 -0
- package/dist/parse/html/handlers/heading.js +26 -0
- package/dist/parse/html/handlers/heading.js.map +1 -0
- package/dist/parse/html/handlers/index.d.ts +23 -0
- package/dist/parse/html/handlers/index.d.ts.map +1 -0
- package/dist/parse/html/handlers/index.js +47 -0
- package/dist/parse/html/handlers/index.js.map +1 -0
- package/dist/parse/html/handlers/inline.d.ts +35 -0
- package/dist/parse/html/handlers/inline.d.ts.map +1 -0
- package/dist/parse/html/handlers/inline.js +119 -0
- package/dist/parse/html/handlers/inline.js.map +1 -0
- package/dist/parse/html/handlers/list.d.ts +9 -0
- package/dist/parse/html/handlers/list.d.ts.map +1 -0
- package/dist/parse/html/handlers/list.js +63 -0
- package/dist/parse/html/handlers/list.js.map +1 -0
- package/dist/parse/html/handlers/paragraph.d.ts +9 -0
- package/dist/parse/html/handlers/paragraph.d.ts.map +1 -0
- package/dist/parse/html/handlers/paragraph.js +20 -0
- package/dist/parse/html/handlers/paragraph.js.map +1 -0
- package/dist/parse/html/handlers/section.d.ts +9 -0
- package/dist/parse/html/handlers/section.d.ts.map +1 -0
- package/dist/parse/html/handlers/section.js +53 -0
- package/dist/parse/html/handlers/section.js.map +1 -0
- package/dist/parse/html/index.d.ts +5 -0
- package/dist/parse/html/index.d.ts.map +1 -0
- package/dist/parse/html/index.js +12 -0
- package/dist/parse/html/index.js.map +1 -0
- package/dist/parse/html/parser.d.ts +51 -0
- package/dist/parse/html/parser.d.ts.map +1 -0
- package/dist/parse/html/parser.js +228 -0
- package/dist/parse/html/parser.js.map +1 -0
- package/dist/parse/index.d.ts +16 -0
- package/dist/parse/index.d.ts.map +1 -0
- package/dist/parse/index.js +19 -0
- package/dist/parse/index.js.map +1 -0
- package/dist/parse/markdown/BlockquoteMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/BlockquoteMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/BlockquoteMarkdownParser.js +26 -0
- package/dist/parse/markdown/BlockquoteMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/CodeMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/CodeMarkdownParser.js +29 -0
- package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/HeadingsMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/HeadingsMarkdownParser.js +26 -0
- package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/InlinesMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/InlinesMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/InlinesMarkdownParser.js +91 -0
- package/dist/parse/markdown/InlinesMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/ListsMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/ListsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/ListsMarkdownParser.js +46 -0
- package/dist/parse/markdown/ListsMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/MiscMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/MiscMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/MiscMarkdownParser.js +38 -0
- package/dist/parse/markdown/MiscMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/ParagraphsMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/ParagraphsMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/ParagraphsMarkdownParser.js +25 -0
- package/dist/parse/markdown/ParagraphsMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/TablesMarkdownParser.d.ts +11 -0
- package/dist/parse/markdown/TablesMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/TablesMarkdownParser.js +56 -0
- package/dist/parse/markdown/TablesMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/handlers/blockquote.d.ts +9 -0
- package/dist/parse/markdown/handlers/blockquote.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/blockquote.js +22 -0
- package/dist/parse/markdown/handlers/blockquote.js.map +1 -0
- package/dist/parse/markdown/handlers/code.d.ts +9 -0
- package/dist/parse/markdown/handlers/code.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/code.js +25 -0
- package/dist/parse/markdown/handlers/code.js.map +1 -0
- package/dist/parse/markdown/handlers/heading.d.ts +9 -0
- package/dist/parse/markdown/handlers/heading.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/heading.js +22 -0
- package/dist/parse/markdown/handlers/heading.js.map +1 -0
- package/dist/parse/markdown/handlers/index.d.ts +23 -0
- package/dist/parse/markdown/handlers/index.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/index.js +47 -0
- package/dist/parse/markdown/handlers/index.js.map +1 -0
- package/dist/parse/markdown/handlers/inline.d.ts +35 -0
- package/dist/parse/markdown/handlers/inline.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/inline.js +126 -0
- package/dist/parse/markdown/handlers/inline.js.map +1 -0
- package/dist/parse/markdown/handlers/list.d.ts +9 -0
- package/dist/parse/markdown/handlers/list.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/list.js +42 -0
- package/dist/parse/markdown/handlers/list.js.map +1 -0
- package/dist/parse/markdown/handlers/misc.d.ts +15 -0
- package/dist/parse/markdown/handlers/misc.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/misc.js +38 -0
- package/dist/parse/markdown/handlers/misc.js.map +1 -0
- package/dist/parse/markdown/handlers/paragraph.d.ts +9 -0
- package/dist/parse/markdown/handlers/paragraph.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/paragraph.js +21 -0
- package/dist/parse/markdown/handlers/paragraph.js.map +1 -0
- package/dist/parse/markdown/handlers/table.d.ts +9 -0
- package/dist/parse/markdown/handlers/table.d.ts.map +1 -0
- package/dist/parse/markdown/handlers/table.js +52 -0
- package/dist/parse/markdown/handlers/table.js.map +1 -0
- package/dist/parse/markdown/index.d.ts +5 -0
- package/dist/parse/markdown/index.d.ts.map +1 -0
- package/dist/parse/markdown/index.js +12 -0
- package/dist/parse/markdown/index.js.map +1 -0
- package/dist/parse/markdown/parser.d.ts +51 -0
- package/dist/parse/markdown/parser.d.ts.map +1 -0
- package/dist/parse/markdown/parser.js +134 -0
- package/dist/parse/markdown/parser.js.map +1 -0
- package/dist/parse/normalize.d.ts +51 -0
- package/dist/parse/normalize.d.ts.map +1 -0
- package/dist/parse/normalize.js +78 -0
- package/dist/parse/normalize.js.map +1 -0
- package/dist/parse/parsers.d.ts +37 -0
- package/dist/parse/parsers.d.ts.map +1 -0
- package/dist/parse/parsers.js +86 -0
- package/dist/parse/parsers.js.map +1 -0
- package/dist/parse/pipeline.d.ts +41 -0
- package/dist/parse/pipeline.d.ts.map +1 -0
- package/dist/parse/pipeline.js +120 -0
- package/dist/parse/pipeline.js.map +1 -0
- package/dist/parse/registry.d.ts +156 -0
- package/dist/parse/registry.d.ts.map +1 -0
- package/dist/parse/registry.js +104 -0
- package/dist/parse/registry.js.map +1 -0
- package/dist/parse/types.d.ts +67 -0
- package/dist/parse/types.d.ts.map +1 -0
- package/dist/parse/types.js +19 -0
- package/dist/parse/types.js.map +1 -0
- package/dist/pipeline/__tests__/pipeline.test.d.ts +5 -0
- package/dist/pipeline/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/pipeline.test.js +69 -0
- package/dist/pipeline/__tests__/pipeline.test.js.map +1 -0
- package/dist/pipeline/__tests__/single-as-workspace.test.d.ts +2 -0
- package/dist/pipeline/__tests__/single-as-workspace.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/single-as-workspace.test.js +19 -0
- package/dist/pipeline/__tests__/single-as-workspace.test.js.map +1 -0
- package/dist/pipeline/__tests__/workspace-rules.test.d.ts +11 -0
- package/dist/pipeline/__tests__/workspace-rules.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/workspace-rules.test.js +54 -0
- package/dist/pipeline/__tests__/workspace-rules.test.js.map +1 -0
- package/dist/pipeline/__tests__/workspace.test.d.ts +2 -0
- package/dist/pipeline/__tests__/workspace.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/workspace.test.js +61 -0
- package/dist/pipeline/__tests__/workspace.test.js.map +1 -0
- package/dist/pipeline/index.d.ts +34 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +45 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/runner.d.ts +38 -0
- package/dist/pipeline/runner.d.ts.map +1 -0
- package/dist/pipeline/runner.js +128 -0
- package/dist/pipeline/runner.js.map +1 -0
- package/dist/pipeline/types.d.ts +106 -0
- package/dist/pipeline/types.d.ts.map +1 -0
- package/dist/pipeline/types.js +9 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/pipeline/workspace-index.d.ts +11 -0
- package/dist/pipeline/workspace-index.d.ts.map +1 -0
- package/dist/pipeline/workspace-index.js +57 -0
- package/dist/pipeline/workspace-index.js.map +1 -0
- package/dist/plugins/__tests__/citation-transform.test.d.ts +7 -0
- package/dist/plugins/__tests__/citation-transform.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/citation-transform.test.js +89 -0
- package/dist/plugins/__tests__/citation-transform.test.js.map +1 -0
- package/dist/plugins/__tests__/dfn-parsing.test.d.ts +2 -0
- package/dist/plugins/__tests__/dfn-parsing.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/dfn-parsing.test.js +65 -0
- package/dist/plugins/__tests__/dfn-parsing.test.js.map +1 -0
- package/dist/plugins/__tests__/dfn-resolve.test.d.ts +5 -0
- package/dist/plugins/__tests__/dfn-resolve.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/dfn-resolve.test.js +152 -0
- package/dist/plugins/__tests__/dfn-resolve.test.js.map +1 -0
- package/dist/plugins/__tests__/xref-parsing.test.d.ts +2 -0
- package/dist/plugins/__tests__/xref-parsing.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/xref-parsing.test.js +66 -0
- package/dist/plugins/__tests__/xref-parsing.test.js.map +1 -0
- package/dist/plugins/aside.d.ts +12 -0
- package/dist/plugins/aside.d.ts.map +1 -0
- package/dist/plugins/aside.js +78 -0
- package/dist/plugins/aside.js.map +1 -0
- package/dist/plugins/blockquote.d.ts +11 -0
- package/dist/plugins/blockquote.d.ts.map +1 -0
- package/dist/plugins/blockquote.js +47 -0
- package/dist/plugins/blockquote.js.map +1 -0
- package/dist/plugins/citation-transform.d.ts +19 -0
- package/dist/plugins/citation-transform.d.ts.map +1 -0
- package/dist/plugins/citation-transform.js +176 -0
- package/dist/plugins/citation-transform.js.map +1 -0
- package/dist/plugins/citation.d.ts +21 -0
- package/dist/plugins/citation.d.ts.map +1 -0
- package/dist/plugins/citation.js +131 -0
- package/dist/plugins/citation.js.map +1 -0
- package/dist/plugins/code.d.ts +11 -0
- package/dist/plugins/code.d.ts.map +1 -0
- package/dist/plugins/code.js +60 -0
- package/dist/plugins/code.js.map +1 -0
- package/dist/plugins/core-html.d.ts +27 -0
- package/dist/plugins/core-html.d.ts.map +1 -0
- package/dist/plugins/core-html.js +53 -0
- package/dist/plugins/core-html.js.map +1 -0
- package/dist/plugins/core-markdown.d.ts +26 -0
- package/dist/plugins/core-markdown.d.ts.map +1 -0
- package/dist/plugins/core-markdown.js +55 -0
- package/dist/plugins/core-markdown.js.map +1 -0
- package/dist/plugins/data-cite.d.ts +12 -0
- package/dist/plugins/data-cite.d.ts.map +1 -0
- package/dist/plugins/data-cite.js +50 -0
- package/dist/plugins/data-cite.js.map +1 -0
- package/dist/plugins/dfn-resolve.d.ts +15 -0
- package/dist/plugins/dfn-resolve.d.ts.map +1 -0
- package/dist/plugins/dfn-resolve.js +257 -0
- package/dist/plugins/dfn-resolve.js.map +1 -0
- package/dist/plugins/dfn.d.ts +12 -0
- package/dist/plugins/dfn.d.ts.map +1 -0
- package/dist/plugins/dfn.js +57 -0
- package/dist/plugins/dfn.js.map +1 -0
- package/dist/plugins/directives.d.ts +8 -0
- package/dist/plugins/directives.d.ts.map +1 -0
- package/dist/plugins/directives.js +34 -0
- package/dist/plugins/directives.js.map +1 -0
- package/dist/plugins/heading.d.ts +11 -0
- package/dist/plugins/heading.d.ts.map +1 -0
- package/dist/plugins/heading.js +49 -0
- package/dist/plugins/heading.js.map +1 -0
- package/dist/plugins/index.d.ts +12 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +26 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/inline.d.ts +12 -0
- package/dist/plugins/inline.d.ts.map +1 -0
- package/dist/plugins/inline.js +234 -0
- package/dist/plugins/inline.js.map +1 -0
- package/dist/plugins/list.d.ts +11 -0
- package/dist/plugins/list.d.ts.map +1 -0
- package/dist/plugins/list.js +110 -0
- package/dist/plugins/list.js.map +1 -0
- package/dist/plugins/misc.d.ts +12 -0
- package/dist/plugins/misc.d.ts.map +1 -0
- package/dist/plugins/misc.js +116 -0
- package/dist/plugins/misc.js.map +1 -0
- package/dist/plugins/paragraph.d.ts +11 -0
- package/dist/plugins/paragraph.d.ts.map +1 -0
- package/dist/plugins/paragraph.js +48 -0
- package/dist/plugins/paragraph.js.map +1 -0
- package/dist/plugins/section.d.ts +12 -0
- package/dist/plugins/section.d.ts.map +1 -0
- package/dist/plugins/section.js +62 -0
- package/dist/plugins/section.js.map +1 -0
- package/dist/plugins/table.d.ts +11 -0
- package/dist/plugins/table.d.ts.map +1 -0
- package/dist/plugins/table.js +130 -0
- package/dist/plugins/table.js.map +1 -0
- package/dist/plugins/xref.d.ts +12 -0
- package/dist/plugins/xref.d.ts.map +1 -0
- package/dist/plugins/xref.js +92 -0
- package/dist/plugins/xref.js.map +1 -0
- package/dist/postprocess/__tests__/citation-transform.test.d.ts +7 -0
- package/dist/postprocess/__tests__/citation-transform.test.d.ts.map +1 -0
- package/dist/postprocess/__tests__/citation-transform.test.js +89 -0
- package/dist/postprocess/__tests__/citation-transform.test.js.map +1 -0
- package/dist/postprocess/__tests__/dfn-resolve.test.d.ts +5 -0
- package/dist/postprocess/__tests__/dfn-resolve.test.d.ts.map +1 -0
- package/dist/postprocess/__tests__/dfn-resolve.test.js +160 -0
- package/dist/postprocess/__tests__/dfn-resolve.test.js.map +1 -0
- package/dist/postprocess/__tests__/section-id.test.d.ts +5 -0
- package/dist/postprocess/__tests__/section-id.test.d.ts.map +1 -0
- package/dist/postprocess/__tests__/section-id.test.js +222 -0
- package/dist/postprocess/__tests__/section-id.test.js.map +1 -0
- package/dist/postprocess/citation-transform.d.ts +19 -0
- package/dist/postprocess/citation-transform.d.ts.map +1 -0
- package/dist/postprocess/citation-transform.js +176 -0
- package/dist/postprocess/citation-transform.js.map +1 -0
- package/dist/postprocess/dfn-index.d.ts +16 -0
- package/dist/postprocess/dfn-index.d.ts.map +1 -0
- package/dist/postprocess/dfn-index.js +72 -0
- package/dist/postprocess/dfn-index.js.map +1 -0
- package/dist/postprocess/dfn-resolve.d.ts +15 -0
- package/dist/postprocess/dfn-resolve.d.ts.map +1 -0
- package/dist/postprocess/dfn-resolve.js +257 -0
- package/dist/postprocess/dfn-resolve.js.map +1 -0
- package/dist/postprocess/index.d.ts +15 -0
- package/dist/postprocess/index.d.ts.map +1 -0
- package/dist/postprocess/index.js +36 -0
- package/dist/postprocess/index.js.map +1 -0
- package/dist/postprocess/plugins/citation-transform.d.ts +19 -0
- package/dist/postprocess/plugins/citation-transform.d.ts.map +1 -0
- package/dist/postprocess/plugins/citation-transform.js +179 -0
- package/dist/postprocess/plugins/citation-transform.js.map +1 -0
- package/dist/postprocess/plugins/dfn-index.d.ts +16 -0
- package/dist/postprocess/plugins/dfn-index.d.ts.map +1 -0
- package/dist/postprocess/plugins/dfn-index.js +76 -0
- package/dist/postprocess/plugins/dfn-index.js.map +1 -0
- package/dist/postprocess/plugins/reference-resolve.d.ts +19 -0
- package/dist/postprocess/plugins/reference-resolve.d.ts.map +1 -0
- package/dist/postprocess/plugins/reference-resolve.js +103 -0
- package/dist/postprocess/plugins/reference-resolve.js.map +1 -0
- package/dist/postprocess/plugins/section-id.d.ts +16 -0
- package/dist/postprocess/plugins/section-id.d.ts.map +1 -0
- package/dist/postprocess/plugins/section-id.js +116 -0
- package/dist/postprocess/plugins/section-id.js.map +1 -0
- package/dist/postprocess/plugins/walk-ast.d.ts +38 -0
- package/dist/postprocess/plugins/walk-ast.d.ts.map +1 -0
- package/dist/postprocess/plugins/walk-ast.js +92 -0
- package/dist/postprocess/plugins/walk-ast.js.map +1 -0
- package/dist/postprocess/reference-resolve.d.ts +19 -0
- package/dist/postprocess/reference-resolve.d.ts.map +1 -0
- package/dist/postprocess/reference-resolve.js +105 -0
- package/dist/postprocess/reference-resolve.js.map +1 -0
- package/dist/postprocess/walk-ast.d.ts +38 -0
- package/dist/postprocess/walk-ast.d.ts.map +1 -0
- package/dist/postprocess/walk-ast.js +94 -0
- package/dist/postprocess/walk-ast.js.map +1 -0
- package/dist/preprocess/__tests__/pipeline.test.d.ts +5 -0
- package/dist/preprocess/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/preprocess/__tests__/pipeline.test.js +188 -0
- package/dist/preprocess/__tests__/pipeline.test.js.map +1 -0
- package/dist/preprocess/__tests__/resolver.test.d.ts +5 -0
- package/dist/preprocess/__tests__/resolver.test.d.ts.map +1 -0
- package/dist/preprocess/__tests__/resolver.test.js +165 -0
- package/dist/preprocess/__tests__/resolver.test.js.map +1 -0
- package/dist/preprocess/__tests__/scan-html.test.d.ts +5 -0
- package/dist/preprocess/__tests__/scan-html.test.d.ts.map +1 -0
- package/dist/preprocess/__tests__/scan-html.test.js +99 -0
- package/dist/preprocess/__tests__/scan-html.test.js.map +1 -0
- package/dist/preprocess/__tests__/scan-markdown.test.d.ts +5 -0
- package/dist/preprocess/__tests__/scan-markdown.test.d.ts.map +1 -0
- package/dist/preprocess/__tests__/scan-markdown.test.js +92 -0
- package/dist/preprocess/__tests__/scan-markdown.test.js.map +1 -0
- package/dist/preprocess/config/doc-config.d.ts +30 -0
- package/dist/preprocess/config/doc-config.d.ts.map +1 -0
- package/dist/preprocess/config/doc-config.js +85 -0
- package/dist/preprocess/config/doc-config.js.map +1 -0
- package/dist/preprocess/config/index.d.ts +9 -0
- package/dist/preprocess/config/index.d.ts.map +1 -0
- package/dist/preprocess/config/index.js +7 -0
- package/dist/preprocess/config/index.js.map +1 -0
- package/dist/preprocess/config/loader.d.ts +61 -0
- package/dist/preprocess/config/loader.d.ts.map +1 -0
- package/dist/preprocess/config/loader.js +40 -0
- package/dist/preprocess/config/loader.js.map +1 -0
- package/dist/preprocess/config/normalize.d.ts +19 -0
- package/dist/preprocess/config/normalize.d.ts.map +1 -0
- package/dist/preprocess/config/normalize.js +106 -0
- package/dist/preprocess/config/normalize.js.map +1 -0
- package/dist/preprocess/config/types.d.ts +40 -0
- package/dist/preprocess/config/types.d.ts.map +1 -0
- package/dist/preprocess/config/types.js +8 -0
- package/dist/preprocess/config/types.js.map +1 -0
- package/dist/preprocess/include/index.d.ts +7 -0
- package/dist/preprocess/include/index.d.ts.map +1 -0
- package/dist/preprocess/include/index.js +7 -0
- package/dist/preprocess/include/index.js.map +1 -0
- package/dist/preprocess/include/resolver.d.ts +40 -0
- package/dist/preprocess/include/resolver.d.ts.map +1 -0
- package/dist/preprocess/include/resolver.js +187 -0
- package/dist/preprocess/include/resolver.js.map +1 -0
- package/dist/preprocess/include/scan-html.d.ts +31 -0
- package/dist/preprocess/include/scan-html.d.ts.map +1 -0
- package/dist/preprocess/include/scan-html.js +100 -0
- package/dist/preprocess/include/scan-html.js.map +1 -0
- package/dist/preprocess/include/scan-markdown.d.ts +31 -0
- package/dist/preprocess/include/scan-markdown.d.ts.map +1 -0
- package/dist/preprocess/include/scan-markdown.js +83 -0
- package/dist/preprocess/include/scan-markdown.js.map +1 -0
- package/dist/preprocess/index.d.ts +16 -0
- package/dist/preprocess/index.d.ts.map +1 -0
- package/dist/preprocess/index.js +16 -0
- package/dist/preprocess/index.js.map +1 -0
- package/dist/preprocess/pipeline.d.ts +57 -0
- package/dist/preprocess/pipeline.d.ts.map +1 -0
- package/dist/preprocess/pipeline.js +100 -0
- package/dist/preprocess/pipeline.js.map +1 -0
- package/dist/preprocess/types.d.ts +197 -0
- package/dist/preprocess/types.d.ts.map +1 -0
- package/dist/preprocess/types.js +22 -0
- package/dist/preprocess/types.js.map +1 -0
- package/dist/types/ast.generated.d.ts +517 -0
- package/dist/types/ast.generated.d.ts.map +1 -0
- package/dist/types/ast.generated.js +66 -0
- package/dist/types/ast.generated.js.map +1 -0
- package/dist/validation/validate.d.ts +86 -0
- package/dist/validation/validate.d.ts.map +1 -0
- package/dist/validation/validate.js +162 -0
- package/dist/validation/validate.js.map +1 -0
- package/dist/workspace/__tests__/sort.test.d.ts +2 -0
- package/dist/workspace/__tests__/sort.test.d.ts.map +1 -0
- package/dist/workspace/__tests__/sort.test.js +122 -0
- package/dist/workspace/__tests__/sort.test.js.map +1 -0
- package/dist/workspace/index.d.ts +8 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +7 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/sort.d.ts +49 -0
- package/dist/workspace/sort.d.ts.map +1 -0
- package/dist/workspace/sort.js +114 -0
- package/dist/workspace/sort.js.map +1 -0
- package/package.json +46 -81
- package/schema/spec-ast.schema.json +1440 -0
- package/bin/speculator.mjs +0 -76
- package/dist/browser.cjs +0 -1690
- package/dist/browser.d.cts +0 -418
- package/dist/browser.d.ts +0 -418
- package/dist/browser.js +0 -36
- package/dist/chunk-H7C7MOU6.js +0 -28
- package/dist/chunk-V4GSFQE7.js +0 -1646
- package/dist/cli/export-assertions.cjs +0 -1710
- package/dist/cli/export-assertions.d.cts +0 -25
- package/dist/cli/export-assertions.d.ts +0 -25
- package/dist/cli/export-assertions.js +0 -107
- package/dist/node.cjs +0 -1712
- package/dist/node.d.cts +0 -17
- package/dist/node.d.ts +0 -17
- 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 @@
|
|
|
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 @@
|
|
|
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
|