@openuji/speculator 0.6.2 → 0.7.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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/parse/assembler.d.ts.map +1 -1
- package/dist/parse/assembler.js +6 -16
- package/dist/parse/assembler.js.map +1 -1
- package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/CodeHtmlParser.js +1 -0
- package/dist/parse/html/CodeHtmlParser.js.map +1 -1
- package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/HeadingsHtmlParser.js +7 -0
- package/dist/parse/html/HeadingsHtmlParser.js.map +1 -1
- package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/MiscHtmlParser.js +1 -0
- package/dist/parse/html/MiscHtmlParser.js.map +1 -1
- package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/SectionsHtmlParser.js +3 -0
- package/dist/parse/html/SectionsHtmlParser.js.map +1 -1
- package/dist/parse/html/SpecStatementHtmlParser.d.ts +9 -0
- package/dist/parse/html/SpecStatementHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/SpecStatementHtmlParser.js +52 -0
- package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -0
- package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/CodeMarkdownParser.js +1 -0
- package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/HeadingsMarkdownParser.js +23 -13
- package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/HtmlBlockMarkdownParser.js +5 -20
- package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/HtmlParagraphMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/HtmlParagraphMarkdownParser.js +19 -18
- package/dist/parse/markdown/HtmlParagraphMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/MiscMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/MiscMarkdownParser.js +2 -0
- package/dist/parse/markdown/MiscMarkdownParser.js.map +1 -1
- package/dist/parse/normalize.d.ts +22 -0
- package/dist/parse/normalize.d.ts.map +1 -1
- package/dist/parse/normalize.js +36 -0
- package/dist/parse/normalize.js.map +1 -1
- package/dist/parse/parsers.d.ts +1 -0
- package/dist/parse/parsers.d.ts.map +1 -1
- package/dist/parse/parsers.js +3 -0
- package/dist/parse/parsers.js.map +1 -1
- package/dist/parse/pipeline.d.ts.map +1 -1
- package/dist/parse/pipeline.js +1 -1
- package/dist/parse/pipeline.js.map +1 -1
- package/dist/parse/utils/hast-utils.d.ts +5 -1
- package/dist/parse/utils/hast-utils.d.ts.map +1 -1
- package/dist/parse/utils/hast-utils.js +76 -5
- package/dist/parse/utils/hast-utils.js.map +1 -1
- package/dist/parse/utils/markdown-utils.d.ts +9 -0
- package/dist/parse/utils/markdown-utils.d.ts.map +1 -0
- package/dist/parse/utils/markdown-utils.js +27 -0
- package/dist/parse/utils/markdown-utils.js.map +1 -0
- package/dist/parse/utils/normative.d.ts +31 -0
- package/dist/parse/utils/normative.d.ts.map +1 -0
- package/dist/parse/utils/normative.js +66 -0
- package/dist/parse/utils/normative.js.map +1 -0
- package/dist/pipeline/runner.d.ts +2 -0
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +38 -16
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/pipeline/types.d.ts +9 -2
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/pipeline/types.js.map +1 -1
- package/dist/pipeline/workspace-index.d.ts +6 -6
- package/dist/pipeline/workspace-index.d.ts.map +1 -1
- package/dist/pipeline/workspace-index.js +26 -47
- package/dist/pipeline/workspace-index.js.map +1 -1
- package/dist/postprocess/index.d.ts +3 -0
- package/dist/postprocess/index.d.ts.map +1 -1
- package/dist/postprocess/index.js +9 -0
- package/dist/postprocess/index.js.map +1 -1
- package/dist/postprocess/plugins/biblio-index.d.ts +9 -0
- package/dist/postprocess/plugins/biblio-index.d.ts.map +1 -0
- package/dist/postprocess/plugins/biblio-index.js +32 -0
- package/dist/postprocess/plugins/biblio-index.js.map +1 -0
- package/dist/postprocess/plugins/bibliography-generator.d.ts.map +1 -1
- package/dist/postprocess/plugins/bibliography-generator.js +2 -1
- package/dist/postprocess/plugins/bibliography-generator.js.map +1 -1
- package/dist/postprocess/plugins/dfn-index.d.ts.map +1 -1
- package/dist/postprocess/plugins/dfn-index.js +20 -2
- package/dist/postprocess/plugins/dfn-index.js.map +1 -1
- package/dist/postprocess/plugins/jsonld-compute.d.ts +14 -0
- package/dist/postprocess/plugins/jsonld-compute.d.ts.map +1 -0
- package/dist/postprocess/plugins/jsonld-compute.js +122 -0
- package/dist/postprocess/plugins/jsonld-compute.js.map +1 -0
- package/dist/postprocess/plugins/statement-index.d.ts +11 -0
- package/dist/postprocess/plugins/statement-index.d.ts.map +1 -0
- package/dist/postprocess/plugins/statement-index.js +135 -0
- package/dist/postprocess/plugins/statement-index.js.map +1 -0
- package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts +14 -0
- package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts.map +1 -0
- package/dist/postprocess/plugins/statementsJsonLd-compute.js +124 -0
- package/dist/postprocess/plugins/statementsJsonLd-compute.js.map +1 -0
- package/dist/preprocess/config/doc-config.d.ts +1 -1
- package/dist/preprocess/config/doc-config.d.ts.map +1 -1
- package/dist/preprocess/config/doc-config.js +4 -2
- package/dist/preprocess/config/doc-config.js.map +1 -1
- package/dist/preprocess/config/env.d.ts +14 -0
- package/dist/preprocess/config/env.d.ts.map +1 -0
- package/dist/preprocess/config/env.js +22 -0
- package/dist/preprocess/config/env.js.map +1 -0
- package/dist/preprocess/config/loader.d.ts +1 -1
- package/dist/preprocess/config/loader.d.ts.map +1 -1
- package/dist/preprocess/config/loader.js +4 -2
- package/dist/preprocess/config/loader.js.map +1 -1
- package/dist/preprocess/config/normalize.d.ts.map +1 -1
- package/dist/preprocess/config/normalize.js +16 -4
- package/dist/preprocess/config/normalize.js.map +1 -1
- package/dist/preprocess/config/types.d.ts +2 -0
- package/dist/preprocess/config/types.d.ts.map +1 -1
- package/dist/preprocess/index.d.ts +1 -1
- package/dist/preprocess/index.d.ts.map +1 -1
- package/dist/preprocess/pipeline.d.ts +2 -0
- package/dist/preprocess/pipeline.d.ts.map +1 -1
- package/dist/preprocess/pipeline.js +1 -1
- package/dist/preprocess/pipeline.js.map +1 -1
- package/dist/preprocess/types.d.ts +13 -2
- package/dist/preprocess/types.d.ts.map +1 -1
- package/dist/types/ast.generated.d.ts +107 -37
- package/dist/types/ast.generated.d.ts.map +1 -1
- package/dist/types/ast.generated.js +1 -1
- package/dist/types/ast.generated.js.map +1 -1
- package/dist/utils/mapping.d.ts +26 -0
- package/dist/utils/mapping.d.ts.map +1 -0
- package/dist/utils/mapping.js +46 -0
- package/dist/utils/mapping.js.map +1 -0
- package/dist/workspace/builder.d.ts +15 -7
- package/dist/workspace/builder.d.ts.map +1 -1
- package/dist/workspace/builder.js +7 -13
- package/dist/workspace/builder.js.map +1 -1
- package/dist/workspace/index.d.ts +1 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/schema/spec-ast.schema.json +168 -20
package/dist/parse/normalize.js
CHANGED
|
@@ -75,4 +75,40 @@ export function parseDataCite(attr) {
|
|
|
75
75
|
forcedNormative,
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Generate a deterministic slug from content text.
|
|
80
|
+
*
|
|
81
|
+
* Rules:
|
|
82
|
+
* 1. Lowercase
|
|
83
|
+
* 2. Remove apostrophes/quotes
|
|
84
|
+
* 3. Replace non-alphanumeric with -
|
|
85
|
+
* 4. Trim -
|
|
86
|
+
*
|
|
87
|
+
* Example: "The client MUST send an Accept header." → "the-client-must-send-an-accept-header"
|
|
88
|
+
*/
|
|
89
|
+
export function slugify(str) {
|
|
90
|
+
return str
|
|
91
|
+
.toLowerCase()
|
|
92
|
+
.replace(/['"]/g, '')
|
|
93
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
94
|
+
.replace(/^-+|-+$/g, '');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Recursively collect plain text from a list of AST nodes.
|
|
98
|
+
*/
|
|
99
|
+
export function toPlainText(nodes) {
|
|
100
|
+
let text = '';
|
|
101
|
+
for (const node of nodes) {
|
|
102
|
+
if (node.type === 'text' || node.type === 'plain') {
|
|
103
|
+
text += node.value || '';
|
|
104
|
+
}
|
|
105
|
+
else if (node.children && Array.isArray(node.children)) {
|
|
106
|
+
text += toPlainText(node.children);
|
|
107
|
+
}
|
|
108
|
+
else if (node.value && typeof node.value === 'string') {
|
|
109
|
+
text += node.value;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return text;
|
|
113
|
+
}
|
|
78
114
|
//# sourceMappingURL=normalize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/parse/normalize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACrC,OAAO,GAAG;SACL,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI;SACN,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAoBD,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,sBAAsB;IACtB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,eAAe,GAAG,IAAI,CAAC;QACvB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACpC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,yBAAyB;IACzB,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACH,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;QAC5B,IAAI;QACJ,QAAQ;QACR,eAAe;KAClB,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/parse/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/parse/parsers.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { InlinesHtmlParser } from './html/InlinesHtmlParser.js';
|
|
|
14
14
|
export { DfnHtmlParser } from './html/DfnHtmlParser.js';
|
|
15
15
|
export { ReferenceHtmlParser } from './html/ReferenceHtmlParser.js';
|
|
16
16
|
export { AsideHtmlParser } from './html/AsideHtmlParser.js';
|
|
17
|
+
export { SpecStatementHtmlParser } from './html/SpecStatementHtmlParser.js';
|
|
17
18
|
export { MiscHtmlParser } from './html/MiscHtmlParser.js';
|
|
18
19
|
export { HeadingsMarkdownParser } from './markdown/HeadingsMarkdownParser.js';
|
|
19
20
|
export { ParagraphsMarkdownParser } from './markdown/ParagraphsMarkdownParser.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/parse/parsers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/parse/parsers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AA6BtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAiB7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAerD,CAAC"}
|
package/dist/parse/parsers.js
CHANGED
|
@@ -15,6 +15,7 @@ export { InlinesHtmlParser } from './html/InlinesHtmlParser.js';
|
|
|
15
15
|
export { DfnHtmlParser } from './html/DfnHtmlParser.js';
|
|
16
16
|
export { ReferenceHtmlParser } from './html/ReferenceHtmlParser.js';
|
|
17
17
|
export { AsideHtmlParser } from './html/AsideHtmlParser.js';
|
|
18
|
+
export { SpecStatementHtmlParser } from './html/SpecStatementHtmlParser.js';
|
|
18
19
|
export { MiscHtmlParser } from './html/MiscHtmlParser.js';
|
|
19
20
|
// Markdown Parser Modules
|
|
20
21
|
export { HeadingsMarkdownParser } from './markdown/HeadingsMarkdownParser.js';
|
|
@@ -40,6 +41,7 @@ import { InlinesHtmlParser } from './html/InlinesHtmlParser.js';
|
|
|
40
41
|
import { DfnHtmlParser } from './html/DfnHtmlParser.js';
|
|
41
42
|
import { ReferenceHtmlParser } from './html/ReferenceHtmlParser.js';
|
|
42
43
|
import { AsideHtmlParser } from './html/AsideHtmlParser.js';
|
|
44
|
+
import { SpecStatementHtmlParser } from './html/SpecStatementHtmlParser.js';
|
|
43
45
|
import { MiscHtmlParser } from './html/MiscHtmlParser.js';
|
|
44
46
|
import { HeadingsMarkdownParser } from './markdown/HeadingsMarkdownParser.js';
|
|
45
47
|
import { ParagraphsMarkdownParser } from './markdown/ParagraphsMarkdownParser.js';
|
|
@@ -60,6 +62,7 @@ export const coreHtmlParsers = [
|
|
|
60
62
|
// ReSpec-specific parsers (higher priority)
|
|
61
63
|
DfnHtmlParser, // order: 5
|
|
62
64
|
ReferenceHtmlParser, // order: 5
|
|
65
|
+
SpecStatementHtmlParser, // order: 5
|
|
63
66
|
AsideHtmlParser, // order: 8
|
|
64
67
|
// Standard parsers
|
|
65
68
|
SectionsHtmlParser, // order: 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/parse/parsers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/parse/parsers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,0BAA0B;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,yBAAyB;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAuB;IAC/C,4CAA4C;IAC5C,aAAa,EAAQ,WAAW;IAChC,mBAAmB,EAAO,WAAW;IACrC,uBAAuB,EAAG,WAAW;IACrC,eAAe,EAAM,WAAW;IAChC,mBAAmB;IACnB,kBAAkB,EAAG,YAAY;IACjC,kBAAkB,EAAG,YAAY;IACjC,oBAAoB,EAAC,YAAY;IACjC,eAAe,EAAM,YAAY;IACjC,cAAc,EAAO,YAAY;IACjC,oBAAoB,EAAC,YAAY;IACjC,gBAAgB,EAAK,YAAY;IACjC,iBAAiB,EAAI,YAAY;IACjC,oCAAoC;IACpC,cAAc,EAAO,YAAY;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACvD,yCAAyC;IACzC,wBAAwB,EAAM,WAAW;IACzC,2BAA2B,EAAG,WAAW;IACzC,uBAAuB,EAAO,WAAW;IACzC,mBAAmB;IACnB,sBAAsB,EAAG,YAAY;IACrC,wBAAwB,EAAC,YAAY;IACrC,mBAAmB,EAAM,YAAY;IACrC,kBAAkB,EAAO,YAAY;IACrC,wBAAwB,EAAC,YAAY;IACrC,oBAAoB,EAAK,YAAY;IACrC,qBAAqB,EAAI,YAAY;IACrC,oCAAoC;IACpC,kBAAkB,EAAO,YAAY;CACxC,CAAC"}
|
|
@@ -1 +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,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,EAAE,oBAAoB,EAAmB,MAAM,qBAAqB,CAAC;AA8E5E;;;;;;;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,
|
|
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,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,EAAE,oBAAoB,EAAmB,MAAM,qBAAqB,CAAC;AA8E5E;;;;;;;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,CAAoC,GACtE,WAAW,CAEb"}
|
package/dist/parse/pipeline.js
CHANGED
|
@@ -102,7 +102,7 @@ export function registerParser(parser) {
|
|
|
102
102
|
*
|
|
103
103
|
* Useful for testing or when config is handled separately.
|
|
104
104
|
*/
|
|
105
|
-
export function parseCompositeSource(source, config = { id: 'anonymous' }) {
|
|
105
|
+
export function parseCompositeSource(source, config = { id: 'anonymous', specIri: '' }) {
|
|
106
106
|
return parse({ config, source });
|
|
107
107
|
}
|
|
108
108
|
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/parse/pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/parse/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Element, RootContent as HastRootContent } from 'hast';
|
|
8
8
|
import type { ParseContext } from '#src/parse/registry';
|
|
9
|
-
import type { Inline, SourcePos } from '#src/types/ast.generated';
|
|
9
|
+
import type { Inline, SourcePos, Block, Section } from '#src/types/ast.generated';
|
|
10
10
|
/**
|
|
11
11
|
* Get element attribute value from hast element.
|
|
12
12
|
* Handles various types: strings, arrays (joins with space), numbers, and booleans.
|
|
@@ -22,6 +22,10 @@ export declare function getTextContent(element: Element): string;
|
|
|
22
22
|
* This is the core transformation logic shared by both paragraph and block HTML parsers.
|
|
23
23
|
*/
|
|
24
24
|
export declare function transformHastInline(node: HastRootContent, ctx: ParseContext): Inline | Inline[] | null;
|
|
25
|
+
/**
|
|
26
|
+
* Transform a hast node to Speculator block(s) using HTML handlers.
|
|
27
|
+
*/
|
|
28
|
+
export declare function transformHastBlock(node: HastRootContent, ctx: ParseContext): (Section | Block)[];
|
|
25
29
|
/**
|
|
26
30
|
* Create a hast-aware ParseContext from a base (markdown) context.
|
|
27
31
|
* This allows hast nodes to be transformed using the same handler infrastructure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hast-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,WAAW,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"hast-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,WAAW,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAkB,MAAM,0BAA0B,CAAC;AAElG;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUvD;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAuBtG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CA4BhG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,YAAY,CAoF9F"}
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export function getAttr(element, name) {
|
|
12
12
|
let val = element.properties?.[name];
|
|
13
|
-
// Fallback:
|
|
13
|
+
// Fallback: handle data- attributes (check both camelCase and kebab-case)
|
|
14
14
|
if (val === undefined && name.startsWith('data')) {
|
|
15
|
+
const camel = name.replace(/-([a-z0-9])/g, (g) => g[1].toUpperCase());
|
|
15
16
|
const kebab = name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
16
|
-
val = element.properties?.[kebab];
|
|
17
|
+
val = element.properties?.[camel] ?? element.properties?.[kebab];
|
|
17
18
|
}
|
|
18
19
|
if (typeof val === 'string')
|
|
19
20
|
return val;
|
|
@@ -41,6 +42,7 @@ export function getTextContent(element) {
|
|
|
41
42
|
}
|
|
42
43
|
return text;
|
|
43
44
|
}
|
|
45
|
+
import { parseMarkdownInlines } from './markdown-utils.js';
|
|
44
46
|
/**
|
|
45
47
|
* Transform a hast node to Speculator inline(s) using HTML handlers.
|
|
46
48
|
* This is the core transformation logic shared by both paragraph and block HTML parsers.
|
|
@@ -48,7 +50,8 @@ export function getTextContent(element) {
|
|
|
48
50
|
export function transformHastInline(node, ctx) {
|
|
49
51
|
if (node.type === 'text') {
|
|
50
52
|
const textValue = node.value;
|
|
51
|
-
// Delegate back to
|
|
53
|
+
// Delegate back to registry's transformInlineChildren.
|
|
54
|
+
// In a hastCtx, this will be handled by our recursive-safe wrapper.
|
|
52
55
|
const res = ctx.transformInlineChildren([{ type: 'text', value: textValue }]);
|
|
53
56
|
return res.length === 0 ? null : res;
|
|
54
57
|
}
|
|
@@ -64,6 +67,37 @@ export function transformHastInline(node, ctx) {
|
|
|
64
67
|
// Fallback: recurse into children if no handler for this tag
|
|
65
68
|
return ctx.transformInlineChildren(element.children);
|
|
66
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Transform a hast node to Speculator block(s) using HTML handlers.
|
|
72
|
+
*/
|
|
73
|
+
export function transformHastBlock(node, ctx) {
|
|
74
|
+
if (node.type !== 'element')
|
|
75
|
+
return [];
|
|
76
|
+
const element = node;
|
|
77
|
+
const tagName = element.tagName.toLowerCase();
|
|
78
|
+
const handler = ctx.registry.getHtmlBlockHandler(tagName);
|
|
79
|
+
if (handler?.handleBlock) {
|
|
80
|
+
const result = handler.handleBlock(element, ctx);
|
|
81
|
+
if (result === null)
|
|
82
|
+
return [];
|
|
83
|
+
if (Array.isArray(result))
|
|
84
|
+
return result;
|
|
85
|
+
return [result];
|
|
86
|
+
}
|
|
87
|
+
// Fallback: wrap as paragraph if it has inline content
|
|
88
|
+
const sourcePos = ctx.createSourcePos(element);
|
|
89
|
+
const inlines = ctx.transformInlineChildren(element.children);
|
|
90
|
+
if (inlines.length > 0) {
|
|
91
|
+
const result = {
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
children: inlines,
|
|
94
|
+
};
|
|
95
|
+
if (sourcePos)
|
|
96
|
+
result.sourcePos = sourcePos;
|
|
97
|
+
return [result];
|
|
98
|
+
}
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
67
101
|
/**
|
|
68
102
|
* Create a hast-aware ParseContext from a base (markdown) context.
|
|
69
103
|
* This allows hast nodes to be transformed using the same handler infrastructure.
|
|
@@ -98,7 +132,13 @@ export function createHastContext(ctx, parentSourcePos) {
|
|
|
98
132
|
transformInlineChildren: (children) => {
|
|
99
133
|
const results = [];
|
|
100
134
|
for (const child of children) {
|
|
101
|
-
if (child.type === '
|
|
135
|
+
if (child.type === 'text') {
|
|
136
|
+
// Re-parse text as Markdown to handle core markup (**bold**, `code`) and shorthands.
|
|
137
|
+
// We use originalTransform (the non-recursive one) to break the chain.
|
|
138
|
+
const mdastNodes = parseMarkdownInlines(child.value);
|
|
139
|
+
results.push(...originalTransform(mdastNodes));
|
|
140
|
+
}
|
|
141
|
+
else if (child.type === 'element') {
|
|
102
142
|
const res = transformHastInline(child, hastCtx);
|
|
103
143
|
if (res) {
|
|
104
144
|
if (Array.isArray(res))
|
|
@@ -108,12 +148,43 @@ export function createHastContext(ctx, parentSourcePos) {
|
|
|
108
148
|
}
|
|
109
149
|
}
|
|
110
150
|
else {
|
|
111
|
-
//
|
|
151
|
+
// Fallback for any other nodes (e.g. already parsed mdast nodes)
|
|
112
152
|
results.push(...originalTransform([child]));
|
|
113
153
|
}
|
|
114
154
|
}
|
|
115
155
|
return results;
|
|
116
156
|
},
|
|
157
|
+
transformBlockChildren: (children) => {
|
|
158
|
+
const results = [];
|
|
159
|
+
let currentInlines = [];
|
|
160
|
+
const flushInlines = () => {
|
|
161
|
+
if (currentInlines.length > 0) {
|
|
162
|
+
const inlines = hastCtx.transformInlineChildren(currentInlines);
|
|
163
|
+
if (inlines.length > 0) {
|
|
164
|
+
results.push({
|
|
165
|
+
type: 'paragraph',
|
|
166
|
+
children: inlines,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
currentInlines = [];
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
for (const child of children) {
|
|
173
|
+
if (child.type === 'element') {
|
|
174
|
+
const element = child;
|
|
175
|
+
const handler = hastCtx.registry.getHtmlBlockHandler(element.tagName.toLowerCase());
|
|
176
|
+
if (handler?.handleBlock) {
|
|
177
|
+
flushInlines();
|
|
178
|
+
results.push(...transformHastBlock(child, hastCtx));
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// If not a block element, add to current inlines
|
|
183
|
+
currentInlines.push(child);
|
|
184
|
+
}
|
|
185
|
+
flushInlines();
|
|
186
|
+
return results;
|
|
187
|
+
},
|
|
117
188
|
getTextContent,
|
|
118
189
|
getAttr,
|
|
119
190
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,IAAY;IAClD,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IAErC,
|
|
1
|
+
{"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RootContent } from 'mdast';
|
|
2
|
+
/**
|
|
3
|
+
* Parse a string as Markdown inlines.
|
|
4
|
+
*
|
|
5
|
+
* Returns mdast nodes found within a single paragraph.
|
|
6
|
+
* If the input contains multiple blocks, only children of the first paragraph are returned.
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseMarkdownInlines(text: string): RootContent[];
|
|
9
|
+
//# sourceMappingURL=markdown-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,WAAW,EAAa,MAAM,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBhE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { unified } from 'unified';
|
|
2
|
+
import remarkParse from 'remark-parse';
|
|
3
|
+
import remarkGfm from 'remark-gfm';
|
|
4
|
+
/**
|
|
5
|
+
* Parse a string as Markdown inlines.
|
|
6
|
+
*
|
|
7
|
+
* Returns mdast nodes found within a single paragraph.
|
|
8
|
+
* If the input contains multiple blocks, only children of the first paragraph are returned.
|
|
9
|
+
*/
|
|
10
|
+
export function parseMarkdownInlines(text) {
|
|
11
|
+
if (!text || !text.trim())
|
|
12
|
+
return [];
|
|
13
|
+
const processor = unified().use(remarkParse).use(remarkGfm);
|
|
14
|
+
const tree = processor.parse(text);
|
|
15
|
+
// Flatten all paragraphs into a single array of inline nodes
|
|
16
|
+
const inlines = [];
|
|
17
|
+
for (const child of tree.children) {
|
|
18
|
+
if (child.type === 'paragraph') {
|
|
19
|
+
inlines.push(...child.children);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
inlines.push(child);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return inlines;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=markdown-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC;IAE3C,6DAA6D;IAC7D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAI,KAAmB,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normative Level Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized logic for RFC 2119 / 8174 keywords and canonical level resolution.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Canonical requirement levels used in the AST and JSON-LD.
|
|
8
|
+
*/
|
|
9
|
+
export type NormativeLevel = 'MUST' | 'MUST NOT' | 'SHOULD' | 'SHOULD NOT' | 'MAY' | 'NOTE' | 'NONE' | 'AMBIGUOUS';
|
|
10
|
+
/**
|
|
11
|
+
* RFC 2119 / 8174 keywords including aliases.
|
|
12
|
+
*/
|
|
13
|
+
export type NormativeKeyword = 'MUST' | 'MUST NOT' | 'REQUIRED' | 'SHALL' | 'SHALL NOT' | 'SHOULD' | 'SHOULD NOT' | 'RECOMMENDED' | 'MAY' | 'OPTIONAL';
|
|
14
|
+
/**
|
|
15
|
+
* Map of keyword aliases to their canonical normative levels.
|
|
16
|
+
*/
|
|
17
|
+
export declare const NORMATIVE_KEYWORDS: Record<string, NormativeLevel>;
|
|
18
|
+
/**
|
|
19
|
+
* Set of levels that represent normative requirements.
|
|
20
|
+
*/
|
|
21
|
+
export declare const NORMATIVE_REQUIREMENT_LEVELS: Set<NormativeLevel>;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a level string is a normative requirement level.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isRequirement(level: string): level is NormativeLevel;
|
|
26
|
+
/**
|
|
27
|
+
* Infer requirement level from text content.
|
|
28
|
+
* Policy A: Ambiguous if multiple different levels are found.
|
|
29
|
+
*/
|
|
30
|
+
export declare function inferLevel(text: string): NormativeLevel;
|
|
31
|
+
//# sourceMappingURL=normative.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normative.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/normative.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,KAAK,GACL,MAAM,GACN,MAAM,GACN,WAAW,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACtB,MAAM,GACN,UAAU,GACV,UAAU,GACV,OAAO,GACP,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,KAAK,GACL,UAAU,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAW7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,qBAMvC,CAAC;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEpE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwBvD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normative Level Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized logic for RFC 2119 / 8174 keywords and canonical level resolution.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Map of keyword aliases to their canonical normative levels.
|
|
8
|
+
*/
|
|
9
|
+
export const NORMATIVE_KEYWORDS = {
|
|
10
|
+
'MUST': 'MUST',
|
|
11
|
+
'REQUIRED': 'MUST',
|
|
12
|
+
'SHALL': 'MUST',
|
|
13
|
+
'MUST NOT': 'MUST NOT',
|
|
14
|
+
'SHALL NOT': 'MUST NOT',
|
|
15
|
+
'SHOULD': 'SHOULD',
|
|
16
|
+
'RECOMMENDED': 'SHOULD',
|
|
17
|
+
'SHOULD NOT': 'SHOULD NOT',
|
|
18
|
+
'MAY': 'MAY',
|
|
19
|
+
'OPTIONAL': 'MAY'
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Set of levels that represent normative requirements.
|
|
23
|
+
*/
|
|
24
|
+
export const NORMATIVE_REQUIREMENT_LEVELS = new Set([
|
|
25
|
+
'MUST',
|
|
26
|
+
'MUST NOT',
|
|
27
|
+
'SHOULD',
|
|
28
|
+
'SHOULD NOT',
|
|
29
|
+
'MAY'
|
|
30
|
+
]);
|
|
31
|
+
/**
|
|
32
|
+
* Checks if a level string is a normative requirement level.
|
|
33
|
+
*/
|
|
34
|
+
export function isRequirement(level) {
|
|
35
|
+
return NORMATIVE_REQUIREMENT_LEVELS.has(level);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Infer requirement level from text content.
|
|
39
|
+
* Policy A: Ambiguous if multiple different levels are found.
|
|
40
|
+
*/
|
|
41
|
+
export function inferLevel(text) {
|
|
42
|
+
const foundLevels = new Set();
|
|
43
|
+
const upperText = text.toUpperCase();
|
|
44
|
+
// Check negated forms first
|
|
45
|
+
if (/\b(MUST NOT|SHALL NOT)\b/.test(upperText))
|
|
46
|
+
foundLevels.add('MUST NOT');
|
|
47
|
+
if (/\bSHOULD NOT\b/.test(upperText))
|
|
48
|
+
foundLevels.add('SHOULD NOT');
|
|
49
|
+
// Check positive forms
|
|
50
|
+
// Note: we check if they are NOT followed by NOT to avoid double matching
|
|
51
|
+
if (/\b(MUST|SHALL|REQUIRED)\b/.test(upperText) && !/\b(MUST|SHALL) NOT\b/.test(upperText)) {
|
|
52
|
+
foundLevels.add('MUST');
|
|
53
|
+
}
|
|
54
|
+
if (/\b(SHOULD|RECOMMENDED)\b/.test(upperText) && !/\bSHOULD NOT\b/.test(upperText)) {
|
|
55
|
+
foundLevels.add('SHOULD');
|
|
56
|
+
}
|
|
57
|
+
if (/\b(MAY|OPTIONAL)\b/.test(upperText)) {
|
|
58
|
+
foundLevels.add('MAY');
|
|
59
|
+
}
|
|
60
|
+
if (foundLevels.size === 0)
|
|
61
|
+
return 'NONE';
|
|
62
|
+
if (foundLevels.size > 1)
|
|
63
|
+
return 'AMBIGUOUS';
|
|
64
|
+
return Array.from(foundLevels)[0];
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=normative.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normative.js","sourceRoot":"","sources":["../../../src/parse/utils/normative.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8BH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,YAAY;IAC1B,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAiB;IAChE,MAAM;IACN,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,OAAO,4BAA4B,CAAC,GAAG,CAAC,KAAuB,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,4BAA4B;IAC5B,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEpE,uBAAuB;IACvB,0EAA0E;IAC1E,IAAI,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClF,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -23,6 +23,7 @@ export declare class SpeculatorPipeline {
|
|
|
23
23
|
entry: string;
|
|
24
24
|
configPath?: string;
|
|
25
25
|
fileProvider: FileProvider;
|
|
26
|
+
env?: Record<string, string | undefined>;
|
|
26
27
|
}): Promise<SpeculateResult>;
|
|
27
28
|
/**
|
|
28
29
|
* Run the complete pipeline for a workspace (one or more documents)
|
|
@@ -33,6 +34,7 @@ export declare class SpeculatorPipeline {
|
|
|
33
34
|
configPath?: string;
|
|
34
35
|
}[];
|
|
35
36
|
fileProvider: FileProvider;
|
|
37
|
+
env?: Record<string, string | undefined>;
|
|
36
38
|
}): Promise<SpeculateResult>;
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EACR,MAAM,EAEN,eAAe,EAElB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EACR,MAAM,EAEN,eAAe,EAElB,MAAM,YAAY,CAAC;AAoCpB;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,GAAE,MAAM,EAAO;IAIlC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ5B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE;QACxB,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;CA4G/B"}
|
package/dist/pipeline/runner.js
CHANGED
|
@@ -8,7 +8,7 @@ import { preprocess } from '#src/preprocess/pipeline';
|
|
|
8
8
|
import { parseWithRegistry } from '#src/parse/pipeline';
|
|
9
9
|
import { ParseHandlerRegistry } from '#src/parse/registry';
|
|
10
10
|
import { coreHtmlParsers, coreMarkdownParsers } from '#src/parse/parsers';
|
|
11
|
-
import {
|
|
11
|
+
import { finalizeWorkspace } from './workspace-index.js';
|
|
12
12
|
// Default order for plugins that don't specify
|
|
13
13
|
const DEFAULT_ORDER = 100;
|
|
14
14
|
/**
|
|
@@ -52,7 +52,8 @@ export class SpeculatorPipeline {
|
|
|
52
52
|
async run(options) {
|
|
53
53
|
return this.runWorkspace({
|
|
54
54
|
entries: [{ entry: options.entry, configPath: options.configPath }],
|
|
55
|
-
fileProvider: options.fileProvider
|
|
55
|
+
fileProvider: options.fileProvider,
|
|
56
|
+
env: options.env
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
@@ -67,13 +68,18 @@ export class SpeculatorPipeline {
|
|
|
67
68
|
entry: entryConfig.entry,
|
|
68
69
|
configPath: entryConfig.configPath,
|
|
69
70
|
fileProvider: options.fileProvider,
|
|
71
|
+
env: options.env,
|
|
70
72
|
});
|
|
71
73
|
const registry = new ParseHandlerRegistry();
|
|
72
74
|
registerCoreParsers(registry);
|
|
73
75
|
const parseResult = parseWithRegistry(preprocessedSpec, registry);
|
|
74
76
|
if (!parseResult.result)
|
|
75
77
|
continue;
|
|
76
|
-
results.push({
|
|
78
|
+
results.push({
|
|
79
|
+
doc: parseResult.result.document,
|
|
80
|
+
entry: entryConfig.entry,
|
|
81
|
+
config: preprocessedSpec.config
|
|
82
|
+
});
|
|
77
83
|
}
|
|
78
84
|
catch {
|
|
79
85
|
// Preprocess errors are now thrown, skip this entry
|
|
@@ -93,7 +99,12 @@ export class SpeculatorPipeline {
|
|
|
93
99
|
for (const res of results) {
|
|
94
100
|
const level = runtimeWorkspace.documentLevels.get(res.entry) ?? 0;
|
|
95
101
|
for (const plugin of transformPlugins) {
|
|
96
|
-
await plugin.transform({
|
|
102
|
+
await plugin.transform({
|
|
103
|
+
document: res.doc,
|
|
104
|
+
level,
|
|
105
|
+
workspace: runtimeWorkspace,
|
|
106
|
+
config: res.config
|
|
107
|
+
});
|
|
97
108
|
}
|
|
98
109
|
}
|
|
99
110
|
// 3. INDEX phase
|
|
@@ -101,32 +112,43 @@ export class SpeculatorPipeline {
|
|
|
101
112
|
for (const res of results) {
|
|
102
113
|
const level = runtimeWorkspace.documentLevels.get(res.entry) ?? 0;
|
|
103
114
|
for (const plugin of indexPlugins) {
|
|
104
|
-
await plugin.index({
|
|
115
|
+
await plugin.index({
|
|
116
|
+
document: res.doc,
|
|
117
|
+
level,
|
|
118
|
+
workspace: runtimeWorkspace,
|
|
119
|
+
config: res.config
|
|
120
|
+
});
|
|
105
121
|
}
|
|
106
122
|
}
|
|
107
|
-
// 4.
|
|
108
|
-
runtimeWorkspace.globalIndex = buildGlobalIndex(runtimeWorkspace.documents, runtimeWorkspace.documentLevels);
|
|
109
|
-
// 5. RESOLVE phase
|
|
123
|
+
// 4. RESOLVE phase
|
|
110
124
|
const resolvePlugins = sortPluginsForPhase(this.plugins.filter(p => p.resolve), 'resolve');
|
|
111
125
|
for (const res of results) {
|
|
112
126
|
const level = runtimeWorkspace.documentLevels.get(res.entry) ?? 0;
|
|
113
127
|
for (const plugin of resolvePlugins) {
|
|
114
|
-
await plugin.resolve({
|
|
128
|
+
await plugin.resolve({
|
|
129
|
+
document: res.doc,
|
|
130
|
+
level,
|
|
131
|
+
workspace: runtimeWorkspace,
|
|
132
|
+
config: res.config
|
|
133
|
+
});
|
|
115
134
|
}
|
|
116
135
|
}
|
|
117
|
-
//
|
|
136
|
+
// 5. COMPUTE phase
|
|
118
137
|
const computePlugins = sortPluginsForPhase(this.plugins.filter(p => p.compute), 'compute');
|
|
119
138
|
for (const res of results) {
|
|
120
139
|
const level = runtimeWorkspace.documentLevels.get(res.entry) ?? 0;
|
|
121
140
|
for (const plugin of computePlugins) {
|
|
122
|
-
await plugin.compute({
|
|
141
|
+
await plugin.compute({
|
|
142
|
+
document: res.doc,
|
|
143
|
+
level,
|
|
144
|
+
workspace: runtimeWorkspace,
|
|
145
|
+
config: res.config
|
|
146
|
+
});
|
|
123
147
|
}
|
|
124
148
|
}
|
|
125
|
-
//
|
|
126
|
-
const
|
|
127
|
-
return {
|
|
128
|
-
workspace: workspaceAST
|
|
129
|
-
};
|
|
149
|
+
// 6. FINALIZE Workspace AST
|
|
150
|
+
const workspace = await finalizeWorkspace(runtimeWorkspace.documents, runtimeWorkspace.globalIndex);
|
|
151
|
+
return { workspace };
|
|
130
152
|
}
|
|
131
153
|
}
|
|
132
154
|
//# sourceMappingURL=runner.js.map
|