@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.
Files changed (137) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/parse/assembler.d.ts.map +1 -1
  4. package/dist/parse/assembler.js +6 -16
  5. package/dist/parse/assembler.js.map +1 -1
  6. package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -1
  7. package/dist/parse/html/CodeHtmlParser.js +1 -0
  8. package/dist/parse/html/CodeHtmlParser.js.map +1 -1
  9. package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -1
  10. package/dist/parse/html/HeadingsHtmlParser.js +7 -0
  11. package/dist/parse/html/HeadingsHtmlParser.js.map +1 -1
  12. package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -1
  13. package/dist/parse/html/MiscHtmlParser.js +1 -0
  14. package/dist/parse/html/MiscHtmlParser.js.map +1 -1
  15. package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -1
  16. package/dist/parse/html/SectionsHtmlParser.js +3 -0
  17. package/dist/parse/html/SectionsHtmlParser.js.map +1 -1
  18. package/dist/parse/html/SpecStatementHtmlParser.d.ts +9 -0
  19. package/dist/parse/html/SpecStatementHtmlParser.d.ts.map +1 -0
  20. package/dist/parse/html/SpecStatementHtmlParser.js +52 -0
  21. package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -0
  22. package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -1
  23. package/dist/parse/markdown/CodeMarkdownParser.js +1 -0
  24. package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -1
  25. package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -1
  26. package/dist/parse/markdown/HeadingsMarkdownParser.js +23 -13
  27. package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -1
  28. package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -1
  29. package/dist/parse/markdown/HtmlBlockMarkdownParser.js +5 -20
  30. package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -1
  31. package/dist/parse/markdown/HtmlParagraphMarkdownParser.d.ts.map +1 -1
  32. package/dist/parse/markdown/HtmlParagraphMarkdownParser.js +19 -18
  33. package/dist/parse/markdown/HtmlParagraphMarkdownParser.js.map +1 -1
  34. package/dist/parse/markdown/MiscMarkdownParser.d.ts.map +1 -1
  35. package/dist/parse/markdown/MiscMarkdownParser.js +2 -0
  36. package/dist/parse/markdown/MiscMarkdownParser.js.map +1 -1
  37. package/dist/parse/normalize.d.ts +22 -0
  38. package/dist/parse/normalize.d.ts.map +1 -1
  39. package/dist/parse/normalize.js +36 -0
  40. package/dist/parse/normalize.js.map +1 -1
  41. package/dist/parse/parsers.d.ts +1 -0
  42. package/dist/parse/parsers.d.ts.map +1 -1
  43. package/dist/parse/parsers.js +3 -0
  44. package/dist/parse/parsers.js.map +1 -1
  45. package/dist/parse/pipeline.d.ts.map +1 -1
  46. package/dist/parse/pipeline.js +1 -1
  47. package/dist/parse/pipeline.js.map +1 -1
  48. package/dist/parse/utils/hast-utils.d.ts +5 -1
  49. package/dist/parse/utils/hast-utils.d.ts.map +1 -1
  50. package/dist/parse/utils/hast-utils.js +76 -5
  51. package/dist/parse/utils/hast-utils.js.map +1 -1
  52. package/dist/parse/utils/markdown-utils.d.ts +9 -0
  53. package/dist/parse/utils/markdown-utils.d.ts.map +1 -0
  54. package/dist/parse/utils/markdown-utils.js +27 -0
  55. package/dist/parse/utils/markdown-utils.js.map +1 -0
  56. package/dist/parse/utils/normative.d.ts +31 -0
  57. package/dist/parse/utils/normative.d.ts.map +1 -0
  58. package/dist/parse/utils/normative.js +66 -0
  59. package/dist/parse/utils/normative.js.map +1 -0
  60. package/dist/pipeline/runner.d.ts +2 -0
  61. package/dist/pipeline/runner.d.ts.map +1 -1
  62. package/dist/pipeline/runner.js +38 -16
  63. package/dist/pipeline/runner.js.map +1 -1
  64. package/dist/pipeline/types.d.ts +9 -2
  65. package/dist/pipeline/types.d.ts.map +1 -1
  66. package/dist/pipeline/types.js.map +1 -1
  67. package/dist/pipeline/workspace-index.d.ts +6 -6
  68. package/dist/pipeline/workspace-index.d.ts.map +1 -1
  69. package/dist/pipeline/workspace-index.js +26 -47
  70. package/dist/pipeline/workspace-index.js.map +1 -1
  71. package/dist/postprocess/index.d.ts +3 -0
  72. package/dist/postprocess/index.d.ts.map +1 -1
  73. package/dist/postprocess/index.js +9 -0
  74. package/dist/postprocess/index.js.map +1 -1
  75. package/dist/postprocess/plugins/biblio-index.d.ts +9 -0
  76. package/dist/postprocess/plugins/biblio-index.d.ts.map +1 -0
  77. package/dist/postprocess/plugins/biblio-index.js +32 -0
  78. package/dist/postprocess/plugins/biblio-index.js.map +1 -0
  79. package/dist/postprocess/plugins/bibliography-generator.d.ts.map +1 -1
  80. package/dist/postprocess/plugins/bibliography-generator.js +2 -1
  81. package/dist/postprocess/plugins/bibliography-generator.js.map +1 -1
  82. package/dist/postprocess/plugins/dfn-index.d.ts.map +1 -1
  83. package/dist/postprocess/plugins/dfn-index.js +20 -2
  84. package/dist/postprocess/plugins/dfn-index.js.map +1 -1
  85. package/dist/postprocess/plugins/jsonld-compute.d.ts +14 -0
  86. package/dist/postprocess/plugins/jsonld-compute.d.ts.map +1 -0
  87. package/dist/postprocess/plugins/jsonld-compute.js +122 -0
  88. package/dist/postprocess/plugins/jsonld-compute.js.map +1 -0
  89. package/dist/postprocess/plugins/statement-index.d.ts +11 -0
  90. package/dist/postprocess/plugins/statement-index.d.ts.map +1 -0
  91. package/dist/postprocess/plugins/statement-index.js +135 -0
  92. package/dist/postprocess/plugins/statement-index.js.map +1 -0
  93. package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts +14 -0
  94. package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts.map +1 -0
  95. package/dist/postprocess/plugins/statementsJsonLd-compute.js +124 -0
  96. package/dist/postprocess/plugins/statementsJsonLd-compute.js.map +1 -0
  97. package/dist/preprocess/config/doc-config.d.ts +1 -1
  98. package/dist/preprocess/config/doc-config.d.ts.map +1 -1
  99. package/dist/preprocess/config/doc-config.js +4 -2
  100. package/dist/preprocess/config/doc-config.js.map +1 -1
  101. package/dist/preprocess/config/env.d.ts +14 -0
  102. package/dist/preprocess/config/env.d.ts.map +1 -0
  103. package/dist/preprocess/config/env.js +22 -0
  104. package/dist/preprocess/config/env.js.map +1 -0
  105. package/dist/preprocess/config/loader.d.ts +1 -1
  106. package/dist/preprocess/config/loader.d.ts.map +1 -1
  107. package/dist/preprocess/config/loader.js +4 -2
  108. package/dist/preprocess/config/loader.js.map +1 -1
  109. package/dist/preprocess/config/normalize.d.ts.map +1 -1
  110. package/dist/preprocess/config/normalize.js +16 -4
  111. package/dist/preprocess/config/normalize.js.map +1 -1
  112. package/dist/preprocess/config/types.d.ts +2 -0
  113. package/dist/preprocess/config/types.d.ts.map +1 -1
  114. package/dist/preprocess/index.d.ts +1 -1
  115. package/dist/preprocess/index.d.ts.map +1 -1
  116. package/dist/preprocess/pipeline.d.ts +2 -0
  117. package/dist/preprocess/pipeline.d.ts.map +1 -1
  118. package/dist/preprocess/pipeline.js +1 -1
  119. package/dist/preprocess/pipeline.js.map +1 -1
  120. package/dist/preprocess/types.d.ts +13 -2
  121. package/dist/preprocess/types.d.ts.map +1 -1
  122. package/dist/types/ast.generated.d.ts +107 -37
  123. package/dist/types/ast.generated.d.ts.map +1 -1
  124. package/dist/types/ast.generated.js +1 -1
  125. package/dist/types/ast.generated.js.map +1 -1
  126. package/dist/utils/mapping.d.ts +26 -0
  127. package/dist/utils/mapping.d.ts.map +1 -0
  128. package/dist/utils/mapping.js +46 -0
  129. package/dist/utils/mapping.js.map +1 -0
  130. package/dist/workspace/builder.d.ts +15 -7
  131. package/dist/workspace/builder.d.ts.map +1 -1
  132. package/dist/workspace/builder.js +7 -13
  133. package/dist/workspace/builder.js.map +1 -1
  134. package/dist/workspace/index.d.ts +1 -1
  135. package/dist/workspace/index.d.ts.map +1 -1
  136. package/package.json +1 -1
  137. package/schema/spec-ast.schema.json +168 -20
@@ -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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"}
@@ -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;AA4BtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAgB7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAerD,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"}
@@ -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":"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"}
@@ -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,CAAuB,GACzD,WAAW,CAEb"}
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"}
@@ -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;AAElE;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAsBtG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,YAAY,CA8C9F"}
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: if camelCase name not found, try kebab-case for data- attributes
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 Markdown's transformInlineChildren to handle shorthands (|var|)
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 === 'element') {
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
- // Delegate anything else (text, mdast nodes) to the original transformer
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,6EAA6E;IAC7E,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC3C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,IAAK,KAAkB,CAAC,KAAK,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,IAAI,cAAc,CAAC,KAAgB,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAqB,EAAE,GAAiB;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,SAAS,GAAI,IAAiB,CAAC,KAAK,CAAC;QAC3C,mFAAmF;QACnF,MAAM,GAAG,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAU,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAe,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE9C,0DAA0D;IAC1D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE3D,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IAC7D,OAAO,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAiB,EAAE,eAA2B;IAC5E,MAAM,iBAAiB,GAAG,GAAG,CAAC,uBAAuB,CAAC;IAEtD,kEAAkE;IAClE,MAAM,eAAe,GAAG,eAAe;QACnC,CAAC,CAAC,CAAC,QAA0B,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,QAAQ;gBAAE,OAAO,eAAe,CAAC;YAEtC,OAAO;gBACH,GAAG,eAAe;gBAClB,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;gBACpD,+DAA+D;gBAC/D,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;oBAC7B,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBACpD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAC3B,MAAM,EAAE,eAAe,CAAC,MAAM,KAAK,SAAS;oBACxC,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;oBACvD,CAAC,CAAC,SAAS;aAClB,CAAC;QACN,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;IAE1B,MAAM,OAAO,GAAiB;QAC1B,GAAG,GAAG;QACN,eAAe;QACf,uBAAuB,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,QAA6B,EAAE,CAAC;gBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAChD,IAAI,GAAG,EAAE,CAAC;wBACN,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;;4BACxC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,yEAAyE;oBACzE,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,cAAc;QACd,OAAO;KACV,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC"}
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;AAiCpB;;;;;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;KAC9B,GAAG,OAAO,CAAC,eAAe,CAAC;IAO5B;;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;KAC9B,GAAG,OAAO,CAAC,eAAe,CAAC;CAsF/B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,OAAO,KAAK,EACR,MAAM,EAEN,eAAe,EAElB,MAAM,YAAY,CAAC;AAoCpB;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAW;gBAEd,OAAO,GAAE,MAAM,EAAO;IAIlC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ5B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE;QACxB,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClD,YAAY,EAAE,YAAY,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;KAC5C,GAAG,OAAO,CAAC,eAAe,CAAC;CA4G/B"}
@@ -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 { buildGlobalIndex, finalizeWorkspace } from './workspace-index.js';
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({ doc: parseResult.result.document, entry: entryConfig.entry });
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({ document: res.doc, level, workspace: runtimeWorkspace });
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({ document: res.doc, level, workspace: runtimeWorkspace });
115
+ await plugin.index({
116
+ document: res.doc,
117
+ level,
118
+ workspace: runtimeWorkspace,
119
+ config: res.config
120
+ });
105
121
  }
106
122
  }
107
- // 4. AGGREGATE Global Index
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({ document: res.doc, level, workspace: runtimeWorkspace });
128
+ await plugin.resolve({
129
+ document: res.doc,
130
+ level,
131
+ workspace: runtimeWorkspace,
132
+ config: res.config
133
+ });
115
134
  }
116
135
  }
117
- // 6. COMPUTE phase
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({ document: res.doc, level, workspace: runtimeWorkspace });
141
+ await plugin.compute({
142
+ document: res.doc,
143
+ level,
144
+ workspace: runtimeWorkspace,
145
+ config: res.config
146
+ });
123
147
  }
124
148
  }
125
- // Finalize: Convert runtime workspace to AST
126
- const workspaceAST = finalizeWorkspace(runtimeWorkspace);
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