@jasonbelmonti/markdown-engine 1.0.0 → 3.0.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 (373) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +113 -56
  3. package/SECURITY.md +5 -3
  4. package/dist/api/annotation-source-range.d.ts +7 -0
  5. package/dist/api/annotation-source-range.d.ts.map +1 -0
  6. package/dist/api/annotation-source-range.js +103 -0
  7. package/dist/api/annotation-source-range.js.map +1 -0
  8. package/dist/api/annotation-target-candidate.d.ts +10 -0
  9. package/dist/api/annotation-target-candidate.d.ts.map +1 -0
  10. package/dist/api/annotation-target-candidate.js +14 -0
  11. package/dist/api/annotation-target-candidate.js.map +1 -0
  12. package/dist/api/annotation-target-cloning.d.ts +5 -0
  13. package/dist/api/annotation-target-cloning.d.ts.map +1 -0
  14. package/dist/api/annotation-target-cloning.js +122 -0
  15. package/dist/api/annotation-target-cloning.js.map +1 -0
  16. package/dist/api/annotation-target-diagnostics.d.ts +8 -0
  17. package/dist/api/annotation-target-diagnostics.d.ts.map +1 -0
  18. package/dist/api/annotation-target-diagnostics.js +57 -0
  19. package/dist/api/annotation-target-diagnostics.js.map +1 -0
  20. package/dist/api/annotation-target-validation.d.ts +2 -2
  21. package/dist/api/annotation-target-validation.d.ts.map +1 -1
  22. package/dist/api/annotation-target-validation.js +5 -272
  23. package/dist/api/annotation-target-validation.js.map +1 -1
  24. package/dist/api/contracts.d.ts +2 -1
  25. package/dist/api/contracts.d.ts.map +1 -1
  26. package/dist/api/contracts.js +1 -0
  27. package/dist/api/contracts.js.map +1 -1
  28. package/dist/api/declarative-validation.d.ts +13 -0
  29. package/dist/api/declarative-validation.d.ts.map +1 -0
  30. package/dist/api/declarative-validation.js +85 -0
  31. package/dist/api/declarative-validation.js.map +1 -0
  32. package/dist/api/document-queries.d.ts.map +1 -1
  33. package/dist/api/document-queries.js +74 -3
  34. package/dist/api/document-queries.js.map +1 -1
  35. package/dist/api/document.d.ts +44 -0
  36. package/dist/api/document.d.ts.map +1 -1
  37. package/dist/api/engine-node-attributes.d.ts +15 -0
  38. package/dist/api/engine-node-attributes.d.ts.map +1 -0
  39. package/dist/api/engine-node-attributes.js +99 -0
  40. package/dist/api/engine-node-attributes.js.map +1 -0
  41. package/dist/api/normalize.d.ts.map +1 -1
  42. package/dist/api/normalize.js +22 -1
  43. package/dist/api/normalize.js.map +1 -1
  44. package/dist/api/serialize.js +2 -14
  45. package/dist/api/serialize.js.map +1 -1
  46. package/dist/cli/args.d.ts +6 -2
  47. package/dist/cli/args.d.ts.map +1 -1
  48. package/dist/cli/args.js +33 -25
  49. package/dist/cli/args.js.map +1 -1
  50. package/dist/cli/declarative-validation.d.ts +18 -0
  51. package/dist/cli/declarative-validation.d.ts.map +1 -0
  52. package/dist/cli/declarative-validation.js +126 -0
  53. package/dist/cli/declarative-validation.js.map +1 -0
  54. package/dist/cli/files.d.ts +1 -0
  55. package/dist/cli/files.d.ts.map +1 -1
  56. package/dist/cli/files.js +3 -0
  57. package/dist/cli/files.js.map +1 -1
  58. package/dist/cli/run.d.ts.map +1 -1
  59. package/dist/cli/run.js +18 -3
  60. package/dist/cli/run.js.map +1 -1
  61. package/dist/cli/validate-args.d.ts +18 -0
  62. package/dist/cli/validate-args.d.ts.map +1 -0
  63. package/dist/cli/validate-args.js +131 -0
  64. package/dist/cli/validate-args.js.map +1 -0
  65. package/dist/declarative-validation/applicability/classifier.d.ts +18 -0
  66. package/dist/declarative-validation/applicability/classifier.d.ts.map +1 -0
  67. package/dist/declarative-validation/applicability/classifier.js +37 -0
  68. package/dist/declarative-validation/applicability/classifier.js.map +1 -0
  69. package/dist/declarative-validation/applicability/index.d.ts +2 -0
  70. package/dist/declarative-validation/applicability/index.d.ts.map +1 -0
  71. package/dist/declarative-validation/applicability/index.js +2 -0
  72. package/dist/declarative-validation/applicability/index.js.map +1 -0
  73. package/dist/declarative-validation/assertions/context.d.ts +8 -0
  74. package/dist/declarative-validation/assertions/context.d.ts.map +1 -0
  75. package/dist/declarative-validation/assertions/context.js +2 -0
  76. package/dist/declarative-validation/assertions/context.js.map +1 -0
  77. package/dist/declarative-validation/assertions/diagnostics.d.ts +25 -0
  78. package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -0
  79. package/dist/declarative-validation/assertions/diagnostics.js +96 -0
  80. package/dist/declarative-validation/assertions/diagnostics.js.map +1 -0
  81. package/dist/declarative-validation/assertions/document-text-offsets.d.ts +3 -0
  82. package/dist/declarative-validation/assertions/document-text-offsets.d.ts.map +1 -0
  83. package/dist/declarative-validation/assertions/document-text-offsets.js +32 -0
  84. package/dist/declarative-validation/assertions/document-text-offsets.js.map +1 -0
  85. package/dist/declarative-validation/assertions/evaluator.d.ts +5 -0
  86. package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -0
  87. package/dist/declarative-validation/assertions/evaluator.js +49 -0
  88. package/dist/declarative-validation/assertions/evaluator.js.map +1 -0
  89. package/dist/declarative-validation/assertions/exists.d.ts +4 -0
  90. package/dist/declarative-validation/assertions/exists.d.ts.map +1 -0
  91. package/dist/declarative-validation/assertions/exists.js +8 -0
  92. package/dist/declarative-validation/assertions/exists.js.map +1 -0
  93. package/dist/declarative-validation/assertions/frontmatter-required.d.ts +9 -0
  94. package/dist/declarative-validation/assertions/frontmatter-required.d.ts.map +1 -0
  95. package/dist/declarative-validation/assertions/frontmatter-required.js +15 -0
  96. package/dist/declarative-validation/assertions/frontmatter-required.js.map +1 -0
  97. package/dist/declarative-validation/assertions/group-evaluator.d.ts +6 -0
  98. package/dist/declarative-validation/assertions/group-evaluator.d.ts.map +1 -0
  99. package/dist/declarative-validation/assertions/group-evaluator.js +57 -0
  100. package/dist/declarative-validation/assertions/group-evaluator.js.map +1 -0
  101. package/dist/declarative-validation/assertions/id-targets.d.ts +44 -0
  102. package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -0
  103. package/dist/declarative-validation/assertions/id-targets.js +391 -0
  104. package/dist/declarative-validation/assertions/id-targets.js.map +1 -0
  105. package/dist/declarative-validation/assertions/id-tokens.d.ts +15 -0
  106. package/dist/declarative-validation/assertions/id-tokens.d.ts.map +1 -0
  107. package/dist/declarative-validation/assertions/id-tokens.js +27 -0
  108. package/dist/declarative-validation/assertions/id-tokens.js.map +1 -0
  109. package/dist/declarative-validation/assertions/ids.d.ts +9 -0
  110. package/dist/declarative-validation/assertions/ids.d.ts.map +1 -0
  111. package/dist/declarative-validation/assertions/ids.js +128 -0
  112. package/dist/declarative-validation/assertions/ids.js.map +1 -0
  113. package/dist/declarative-validation/assertions/index.d.ts +4 -0
  114. package/dist/declarative-validation/assertions/index.d.ts.map +1 -0
  115. package/dist/declarative-validation/assertions/index.js +4 -0
  116. package/dist/declarative-validation/assertions/index.js.map +1 -0
  117. package/dist/declarative-validation/assertions/literal-text.d.ts +2 -0
  118. package/dist/declarative-validation/assertions/literal-text.d.ts.map +1 -0
  119. package/dist/declarative-validation/assertions/literal-text.js +14 -0
  120. package/dist/declarative-validation/assertions/literal-text.js.map +1 -0
  121. package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts +3 -0
  122. package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts.map +1 -0
  123. package/dist/declarative-validation/assertions/normalized-source-ranges.js +105 -0
  124. package/dist/declarative-validation/assertions/normalized-source-ranges.js.map +1 -0
  125. package/dist/declarative-validation/assertions/ordering.d.ts +6 -0
  126. package/dist/declarative-validation/assertions/ordering.d.ts.map +1 -0
  127. package/dist/declarative-validation/assertions/ordering.js +71 -0
  128. package/dist/declarative-validation/assertions/ordering.js.map +1 -0
  129. package/dist/declarative-validation/assertions/references.d.ts +9 -0
  130. package/dist/declarative-validation/assertions/references.d.ts.map +1 -0
  131. package/dist/declarative-validation/assertions/references.js +354 -0
  132. package/dist/declarative-validation/assertions/references.js.map +1 -0
  133. package/dist/declarative-validation/assertions/sections-required.d.ts +9 -0
  134. package/dist/declarative-validation/assertions/sections-required.d.ts.map +1 -0
  135. package/dist/declarative-validation/assertions/sections-required.js +49 -0
  136. package/dist/declarative-validation/assertions/sections-required.js.map +1 -0
  137. package/dist/declarative-validation/assertions/table-column-coverage.d.ts +9 -0
  138. package/dist/declarative-validation/assertions/table-column-coverage.d.ts.map +1 -0
  139. package/dist/declarative-validation/assertions/table-column-coverage.js +108 -0
  140. package/dist/declarative-validation/assertions/table-column-coverage.js.map +1 -0
  141. package/dist/declarative-validation/assertions/table-columns-required.d.ts +9 -0
  142. package/dist/declarative-validation/assertions/table-columns-required.d.ts.map +1 -0
  143. package/dist/declarative-validation/assertions/table-columns-required.js +31 -0
  144. package/dist/declarative-validation/assertions/table-columns-required.js.map +1 -0
  145. package/dist/declarative-validation/assertions/text-length.d.ts +9 -0
  146. package/dist/declarative-validation/assertions/text-length.d.ts.map +1 -0
  147. package/dist/declarative-validation/assertions/text-length.js +40 -0
  148. package/dist/declarative-validation/assertions/text-length.js.map +1 -0
  149. package/dist/declarative-validation/assertions/text-occurrence-count.d.ts +9 -0
  150. package/dist/declarative-validation/assertions/text-occurrence-count.d.ts.map +1 -0
  151. package/dist/declarative-validation/assertions/text-occurrence-count.js +22 -0
  152. package/dist/declarative-validation/assertions/text-occurrence-count.js.map +1 -0
  153. package/dist/declarative-validation/assertions/text.d.ts +9 -0
  154. package/dist/declarative-validation/assertions/text.d.ts.map +1 -0
  155. package/dist/declarative-validation/assertions/text.js +32 -0
  156. package/dist/declarative-validation/assertions/text.js.map +1 -0
  157. package/dist/declarative-validation/compiler/applicability-plan.d.ts +5 -0
  158. package/dist/declarative-validation/compiler/applicability-plan.d.ts.map +1 -0
  159. package/dist/declarative-validation/compiler/applicability-plan.js +22 -0
  160. package/dist/declarative-validation/compiler/applicability-plan.js.map +1 -0
  161. package/dist/declarative-validation/compiler/assertion-builders.d.ts +7 -0
  162. package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -0
  163. package/dist/declarative-validation/compiler/assertion-builders.js +237 -0
  164. package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -0
  165. package/dist/declarative-validation/compiler/assertion-shapes.d.ts +20 -0
  166. package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -0
  167. package/dist/declarative-validation/compiler/assertion-shapes.js +219 -0
  168. package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -0
  169. package/dist/declarative-validation/compiler/assertions.d.ts +6 -0
  170. package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -0
  171. package/dist/declarative-validation/compiler/assertions.js +35 -0
  172. package/dist/declarative-validation/compiler/assertions.js.map +1 -0
  173. package/dist/declarative-validation/compiler/compatibility.d.ts +4 -0
  174. package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -0
  175. package/dist/declarative-validation/compiler/compatibility.js +29 -0
  176. package/dist/declarative-validation/compiler/compatibility.js.map +1 -0
  177. package/dist/declarative-validation/compiler/diagnostics.d.ts +3 -0
  178. package/dist/declarative-validation/compiler/diagnostics.d.ts.map +1 -0
  179. package/dist/declarative-validation/compiler/diagnostics.js +9 -0
  180. package/dist/declarative-validation/compiler/diagnostics.js.map +1 -0
  181. package/dist/declarative-validation/compiler/group-plans.d.ts +6 -0
  182. package/dist/declarative-validation/compiler/group-plans.d.ts.map +1 -0
  183. package/dist/declarative-validation/compiler/group-plans.js +67 -0
  184. package/dist/declarative-validation/compiler/group-plans.js.map +1 -0
  185. package/dist/declarative-validation/compiler/index.d.ts +5 -0
  186. package/dist/declarative-validation/compiler/index.d.ts.map +1 -0
  187. package/dist/declarative-validation/compiler/index.js +199 -0
  188. package/dist/declarative-validation/compiler/index.js.map +1 -0
  189. package/dist/declarative-validation/compiler/plan.d.ts +126 -0
  190. package/dist/declarative-validation/compiler/plan.d.ts.map +1 -0
  191. package/dist/declarative-validation/compiler/plan.js +2 -0
  192. package/dist/declarative-validation/compiler/plan.js.map +1 -0
  193. package/dist/declarative-validation/compiler/rule-fields.d.ts +6 -0
  194. package/dist/declarative-validation/compiler/rule-fields.d.ts.map +1 -0
  195. package/dist/declarative-validation/compiler/rule-fields.js +40 -0
  196. package/dist/declarative-validation/compiler/rule-fields.js.map +1 -0
  197. package/dist/declarative-validation/diagnostics/index.d.ts +7 -0
  198. package/dist/declarative-validation/diagnostics/index.d.ts.map +1 -0
  199. package/dist/declarative-validation/diagnostics/index.js +2 -0
  200. package/dist/declarative-validation/diagnostics/index.js.map +1 -0
  201. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts +10 -0
  202. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -0
  203. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +51 -0
  204. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js.map +1 -0
  205. package/dist/declarative-validation/evidence/index.d.ts +14 -0
  206. package/dist/declarative-validation/evidence/index.d.ts.map +1 -0
  207. package/dist/declarative-validation/evidence/index.js +38 -0
  208. package/dist/declarative-validation/evidence/index.js.map +1 -0
  209. package/dist/declarative-validation/profile/applicability-schema.d.ts +4 -0
  210. package/dist/declarative-validation/profile/applicability-schema.d.ts.map +1 -0
  211. package/dist/declarative-validation/profile/applicability-schema.js +24 -0
  212. package/dist/declarative-validation/profile/applicability-schema.js.map +1 -0
  213. package/dist/declarative-validation/profile/assertion-schema.d.ts +5 -0
  214. package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -0
  215. package/dist/declarative-validation/profile/assertion-schema.js +420 -0
  216. package/dist/declarative-validation/profile/assertion-schema.js.map +1 -0
  217. package/dist/declarative-validation/profile/data-closure.d.ts +6 -0
  218. package/dist/declarative-validation/profile/data-closure.d.ts.map +1 -0
  219. package/dist/declarative-validation/profile/data-closure.js +167 -0
  220. package/dist/declarative-validation/profile/data-closure.js.map +1 -0
  221. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts +7 -0
  222. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -0
  223. package/dist/declarative-validation/profile/direct-profile-diagnostics.js +81 -0
  224. package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -0
  225. package/dist/declarative-validation/profile/group-schema.d.ts +5 -0
  226. package/dist/declarative-validation/profile/group-schema.d.ts.map +1 -0
  227. package/dist/declarative-validation/profile/group-schema.js +55 -0
  228. package/dist/declarative-validation/profile/group-schema.js.map +1 -0
  229. package/dist/declarative-validation/profile/ids-assertion-contract.d.ts +12 -0
  230. package/dist/declarative-validation/profile/ids-assertion-contract.d.ts.map +1 -0
  231. package/dist/declarative-validation/profile/ids-assertion-contract.js +32 -0
  232. package/dist/declarative-validation/profile/ids-assertion-contract.js.map +1 -0
  233. package/dist/declarative-validation/profile/index.d.ts +153 -0
  234. package/dist/declarative-validation/profile/index.d.ts.map +1 -0
  235. package/dist/declarative-validation/profile/index.js +2 -0
  236. package/dist/declarative-validation/profile/index.js.map +1 -0
  237. package/dist/declarative-validation/profile/materialization.d.ts +9 -0
  238. package/dist/declarative-validation/profile/materialization.d.ts.map +1 -0
  239. package/dist/declarative-validation/profile/materialization.js +112 -0
  240. package/dist/declarative-validation/profile/materialization.js.map +1 -0
  241. package/dist/declarative-validation/profile/parse.d.ts +3 -0
  242. package/dist/declarative-validation/profile/parse.d.ts.map +1 -0
  243. package/dist/declarative-validation/profile/parse.js +89 -0
  244. package/dist/declarative-validation/profile/parse.js.map +1 -0
  245. package/dist/declarative-validation/profile/schema-values.d.ts +14 -0
  246. package/dist/declarative-validation/profile/schema-values.d.ts.map +1 -0
  247. package/dist/declarative-validation/profile/schema-values.js +81 -0
  248. package/dist/declarative-validation/profile/schema-values.js.map +1 -0
  249. package/dist/declarative-validation/profile/schema.d.ts +9 -0
  250. package/dist/declarative-validation/profile/schema.d.ts.map +1 -0
  251. package/dist/declarative-validation/profile/schema.js +159 -0
  252. package/dist/declarative-validation/profile/schema.js.map +1 -0
  253. package/dist/declarative-validation/profile/selector-schema.d.ts +4 -0
  254. package/dist/declarative-validation/profile/selector-schema.d.ts.map +1 -0
  255. package/dist/declarative-validation/profile/selector-schema.js +145 -0
  256. package/dist/declarative-validation/profile/selector-schema.js.map +1 -0
  257. package/dist/declarative-validation/profile/syntax-version.d.ts +7 -0
  258. package/dist/declarative-validation/profile/syntax-version.d.ts.map +1 -0
  259. package/dist/declarative-validation/profile/syntax-version.js +11 -0
  260. package/dist/declarative-validation/profile/syntax-version.js.map +1 -0
  261. package/dist/declarative-validation/results/clone-rule-result.d.ts +6 -0
  262. package/dist/declarative-validation/results/clone-rule-result.d.ts.map +1 -0
  263. package/dist/declarative-validation/results/clone-rule-result.js +125 -0
  264. package/dist/declarative-validation/results/clone-rule-result.js.map +1 -0
  265. package/dist/declarative-validation/results/create-result.d.ts +15 -0
  266. package/dist/declarative-validation/results/create-result.d.ts.map +1 -0
  267. package/dist/declarative-validation/results/create-result.js +58 -0
  268. package/dist/declarative-validation/results/create-result.js.map +1 -0
  269. package/dist/declarative-validation/results/index.d.ts +4 -0
  270. package/dist/declarative-validation/results/index.d.ts.map +1 -0
  271. package/dist/declarative-validation/results/index.js +3 -0
  272. package/dist/declarative-validation/results/index.js.map +1 -0
  273. package/dist/declarative-validation/results/skipped-rule-result.d.ts +10 -0
  274. package/dist/declarative-validation/results/skipped-rule-result.d.ts.map +1 -0
  275. package/dist/declarative-validation/results/skipped-rule-result.js +18 -0
  276. package/dist/declarative-validation/results/skipped-rule-result.js.map +1 -0
  277. package/dist/declarative-validation/results/types.d.ts +77 -0
  278. package/dist/declarative-validation/results/types.d.ts.map +1 -0
  279. package/dist/declarative-validation/results/types.js +2 -0
  280. package/dist/declarative-validation/results/types.js.map +1 -0
  281. package/dist/declarative-validation/selectors/index.d.ts +57 -0
  282. package/dist/declarative-validation/selectors/index.d.ts.map +1 -0
  283. package/dist/declarative-validation/selectors/index.js +149 -0
  284. package/dist/declarative-validation/selectors/index.js.map +1 -0
  285. package/dist/declarative-validation/selectors/source.d.ts +8 -0
  286. package/dist/declarative-validation/selectors/source.d.ts.map +1 -0
  287. package/dist/declarative-validation/selectors/source.js +57 -0
  288. package/dist/declarative-validation/selectors/source.js.map +1 -0
  289. package/dist/declarative-validation/selectors/table-targets.d.ts +36 -0
  290. package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -0
  291. package/dist/declarative-validation/selectors/table-targets.js +149 -0
  292. package/dist/declarative-validation/selectors/table-targets.js.map +1 -0
  293. package/dist/declarative-validation/selectors/table-text.d.ts +4 -0
  294. package/dist/declarative-validation/selectors/table-text.d.ts.map +1 -0
  295. package/dist/declarative-validation/selectors/table-text.js +16 -0
  296. package/dist/declarative-validation/selectors/table-text.js.map +1 -0
  297. package/dist/{ir → internal}/document-node-walk.d.ts +5 -0
  298. package/dist/internal/document-node-walk.d.ts.map +1 -0
  299. package/dist/internal/document-node-walk.js +36 -0
  300. package/dist/internal/document-node-walk.js.map +1 -0
  301. package/dist/internal/stable-json.d.ts +3 -0
  302. package/dist/internal/stable-json.d.ts.map +1 -0
  303. package/dist/internal/stable-json.js +17 -0
  304. package/dist/internal/stable-json.js.map +1 -0
  305. package/dist/ir/document-derived-views.d.ts.map +1 -1
  306. package/dist/ir/document-derived-views.js +2 -0
  307. package/dist/ir/document-derived-views.js.map +1 -1
  308. package/dist/ir/document-link-reference-views.d.ts +3 -0
  309. package/dist/ir/document-link-reference-views.d.ts.map +1 -0
  310. package/dist/ir/document-link-reference-views.js +150 -0
  311. package/dist/ir/document-link-reference-views.js.map +1 -0
  312. package/dist/ir/document-link-views.d.ts.map +1 -1
  313. package/dist/ir/document-link-views.js +7 -8
  314. package/dist/ir/document-link-views.js.map +1 -1
  315. package/dist/ir/document-list-views.d.ts.map +1 -1
  316. package/dist/ir/document-list-views.js +14 -13
  317. package/dist/ir/document-list-views.js.map +1 -1
  318. package/dist/ir/document-sections.d.ts.map +1 -1
  319. package/dist/ir/document-sections.js +2 -4
  320. package/dist/ir/document-sections.js.map +1 -1
  321. package/dist/ir/document-table-views.js +1 -1
  322. package/dist/ir/document-table-views.js.map +1 -1
  323. package/dist/ir/document-text-spans.js +1 -1
  324. package/dist/ir/document-text-spans.js.map +1 -1
  325. package/dist/ir/document.d.ts +2 -3
  326. package/dist/ir/document.d.ts.map +1 -1
  327. package/dist/ir/document.js +1 -1
  328. package/dist/ir/document.js.map +1 -1
  329. package/dist/ir/index.d.ts +1 -0
  330. package/dist/ir/index.d.ts.map +1 -1
  331. package/dist/ir/normalization-input.d.ts +12 -0
  332. package/dist/ir/normalization-input.d.ts.map +1 -0
  333. package/dist/ir/normalization-input.js +2 -0
  334. package/dist/ir/normalization-input.js.map +1 -0
  335. package/dist/rules/code-fence-languages.d.ts.map +1 -1
  336. package/dist/rules/code-fence-languages.js +4 -6
  337. package/dist/rules/code-fence-languages.js.map +1 -1
  338. package/dist/rules/document-query.d.ts +0 -2
  339. package/dist/rules/document-query.d.ts.map +1 -1
  340. package/dist/rules/document-query.js +1 -17
  341. package/dist/rules/document-query.js.map +1 -1
  342. package/dist/rules/index.d.ts +2 -6
  343. package/dist/rules/index.d.ts.map +1 -1
  344. package/dist/rules/index.js +3 -37
  345. package/dist/rules/index.js.map +1 -1
  346. package/dist/rules/links-allowed-schemes.d.ts.map +1 -1
  347. package/dist/rules/links-allowed-schemes.js +3 -2
  348. package/dist/rules/links-allowed-schemes.js.map +1 -1
  349. package/dist/rules/registry.d.ts +12 -0
  350. package/dist/rules/registry.d.ts.map +1 -0
  351. package/dist/rules/registry.js +61 -0
  352. package/dist/rules/registry.js.map +1 -0
  353. package/dist-bundled/markdown-engine-cli.mjs +26826 -0
  354. package/docs/contracts/api.md +665 -0
  355. package/docs/contracts/declarative-validation.md +842 -0
  356. package/docs/contracts/frontmatter.md +122 -0
  357. package/fixtures/declarative-validation/examples/operational-spec/fail.md +32 -0
  358. package/fixtures/declarative-validation/examples/operational-spec/pass.md +34 -0
  359. package/fixtures/declarative-validation/examples/operational-spec/profile.yaml +131 -0
  360. package/fixtures/declarative-validation/examples/release-checklist/fail.md +22 -0
  361. package/fixtures/declarative-validation/examples/release-checklist/pass.md +22 -0
  362. package/fixtures/declarative-validation/examples/release-checklist/profile.yaml +96 -0
  363. package/fixtures/declarative-validation/examples/requirements-traceability/fail.md +27 -0
  364. package/fixtures/declarative-validation/examples/requirements-traceability/pass.md +27 -0
  365. package/fixtures/declarative-validation/examples/requirements-traceability/profile.yaml +119 -0
  366. package/package.json +26 -6
  367. package/skills/profile-backed-markdown/SKILL.md +54 -0
  368. package/skills/profile-backed-markdown/assets/profiles/operational-spec.yaml +98 -0
  369. package/skills/profile-backed-markdown/references/repair-brief.md +14 -0
  370. package/skills/profile-backed-markdown/scripts/validate-profile-backed-markdown.mjs +590 -0
  371. package/dist/ir/document-node-walk.d.ts.map +0 -1
  372. package/dist/ir/document-node-walk.js +0 -16
  373. package/dist/ir/document-node-walk.js.map +0 -1
@@ -0,0 +1,391 @@
1
+ import { documentQueries } from "../../api/document-queries.js";
2
+ import { tableColumnTargets } from "../selectors/table-targets.js";
3
+ import { documentTextOffsetForTarget } from "./document-text-offsets.js";
4
+ import { extractIdTokens } from "./id-tokens.js";
5
+ import { sourceRangeForNormalizedText } from "./normalized-source-ranges.js";
6
+ export function extractTargetIdTokens(document, target, options = {}) {
7
+ return extractIdTokensForSegments(idTextSegmentsForSelectionTarget(document, target), options);
8
+ }
9
+ export function extractSectionBodyIdTokens(document, section, options = {}) {
10
+ return extractIdTokensForSegments(sectionBodySegments(document, section, { includeChildSections: true }), options);
11
+ }
12
+ export function extractSectionIdTokens(document, section, options = {}) {
13
+ return extractIdTokensForSegments(sectionSegments(document, section, {
14
+ includeHeading: true,
15
+ includeChildSections: true,
16
+ }), options);
17
+ }
18
+ export function extractTableColumnIdTokens(document, source, options = {}) {
19
+ const resolution = resolveTableColumnIdTokens(document, source, options);
20
+ return [...resolution.tokens];
21
+ }
22
+ export function resolveTableColumnIdTokens(document, source, options = {}) {
23
+ const resolution = tableColumnTargets(document, source);
24
+ if (resolution.status !== "resolved") {
25
+ return {
26
+ status: resolution.status,
27
+ source,
28
+ tokens: [],
29
+ };
30
+ }
31
+ return {
32
+ status: "resolved",
33
+ source,
34
+ tokens: extractIdTokensForSegments(resolution.targets.flatMap((target) => idTextSegmentsForSelectionTarget(document, target)), options),
35
+ };
36
+ }
37
+ function extractIdTokensForSegments(segments, options) {
38
+ return segments.flatMap((segment) => extractIdTokens(segment.text, options).map((token) => ({
39
+ value: token.value,
40
+ comparisonValue: token.comparisonValue,
41
+ textOffset: token.textOffset,
42
+ occurrenceKey: idOccurrenceKey(segment, token.comparisonValue, token.textOffset),
43
+ ...definitionColumnProperties(segment),
44
+ ...sectionTitleProperty(segment),
45
+ ...sectionTargetIdProperty(segment),
46
+ ...tokenSourceRangeProperty(segment, token.textOffset, token.value.length),
47
+ })));
48
+ }
49
+ function idTextSegmentsForSelectionTarget(document, target) {
50
+ switch (target.kind) {
51
+ case "document":
52
+ return document.children.flatMap((node, nodeIndex) => topLevelNodeSegments(document, node, nodeIndex));
53
+ case "section":
54
+ return sectionSegments(document, target.section, {
55
+ includeHeading: true,
56
+ includeChildSections: false,
57
+ });
58
+ case "heading":
59
+ return [
60
+ sourceBackedTextSegment({
61
+ document,
62
+ text: target.text,
63
+ occurrenceScope: target.section.headingTarget.id,
64
+ sourceTargetId: target.section.headingTarget.id,
65
+ sourceRange: target.source?.range,
66
+ sourceText: target.source?.text,
67
+ }),
68
+ ];
69
+ case "table":
70
+ return tableCellSegments(target.table, sectionForTable(document, target.table));
71
+ case "tableRow":
72
+ return tableCellsSegments(target.table, target.cells, sectionForTable(document, target.table));
73
+ case "tableCell":
74
+ return [
75
+ tableCellSegment(target.table, target.cell, sectionForTable(document, target.table)),
76
+ ];
77
+ case "textSpan":
78
+ return [
79
+ sourceBackedTextSegment({
80
+ document,
81
+ text: target.text,
82
+ occurrenceScope: target.span.target.id,
83
+ sourceTargetId: target.span.target.id,
84
+ sourceRange: target.source?.range,
85
+ sourceText: target.source?.text,
86
+ }),
87
+ ];
88
+ case "link":
89
+ return [
90
+ sourceBackedTextSegment({
91
+ document,
92
+ text: target.text,
93
+ occurrenceScope: target.link.target.id,
94
+ sourceTargetId: target.link.target.id,
95
+ sourceRange: target.source?.range,
96
+ sourceText: target.source?.text,
97
+ }),
98
+ ];
99
+ case "list":
100
+ return nodeTargetSegments(document, target.list.target);
101
+ }
102
+ }
103
+ function topLevelNodeSegments(document, node, nodeIndex) {
104
+ if (node.target === undefined) {
105
+ return nodeTextSegments(document, node, `document-node:${nodeIndex}`);
106
+ }
107
+ return nodeTargetSegments(document, node.target, sectionForNodeTarget(document, node.target));
108
+ }
109
+ function sectionSegments(document, section, options) {
110
+ return [
111
+ ...(options.includeHeading
112
+ ? [sectionHeadingSegment(document, section)]
113
+ : []),
114
+ ...sectionBodySegments(document, section, {
115
+ includeChildSections: options.includeChildSections,
116
+ }),
117
+ ];
118
+ }
119
+ function sectionBodySegments(document, section, options) {
120
+ return [
121
+ ...section.bodyTargets.flatMap((bodyTarget) => nodeTargetSegments(document, bodyTarget, section)),
122
+ ...(options.includeChildSections ? childSectionSegments(document, section) : []),
123
+ ];
124
+ }
125
+ function childSectionSegments(document, section) {
126
+ return section.childSections.flatMap((childTarget) => {
127
+ const childSection = documentQueries.sections(document, {
128
+ targetId: childTarget.id,
129
+ })[0];
130
+ return childSection === undefined
131
+ ? []
132
+ : sectionSegments(document, childSection, {
133
+ includeHeading: false,
134
+ includeChildSections: true,
135
+ });
136
+ });
137
+ }
138
+ function nodeTargetSegments(document, target, section) {
139
+ const table = documentQueries.tables(document, { targetId: target.id })[0];
140
+ if (table !== undefined) {
141
+ return tableCellSegments(table, section);
142
+ }
143
+ const node = documentQueries.nodes(document, { targetId: target.id })[0];
144
+ if (node !== undefined) {
145
+ return nodeTextSegments(document, node, `target:${target.id}`, section);
146
+ }
147
+ return [];
148
+ }
149
+ function nodeTextSegments(document, node, fallbackScope, section) {
150
+ if (node.type === "table" && node.target !== undefined) {
151
+ const table = documentQueries.tables(document, { targetId: node.target.id })[0];
152
+ return table === undefined ? [] : tableCellSegments(table, section);
153
+ }
154
+ if (node.text !== undefined) {
155
+ return [
156
+ sourceBackedTextSegment({
157
+ document,
158
+ text: node.text,
159
+ occurrenceScope: node.target?.id ?? fallbackScope,
160
+ sourceTargetId: node.target?.id,
161
+ sourceRange: node.source?.range ?? node.sourceRange,
162
+ sourceText: node.source?.text,
163
+ section,
164
+ }),
165
+ ];
166
+ }
167
+ return (node.children ?? []).flatMap((child, childIndex) => nodeTextSegments(document, child, `${fallbackScope}/child:${childIndex}`, section));
168
+ }
169
+ function tableCellSegments(table, section) {
170
+ return tableCellsSegments(table, table.cells, section);
171
+ }
172
+ function tableCellsSegments(table, cells, section) {
173
+ return [...cells]
174
+ .sort(compareCells)
175
+ .map((cell) => tableCellSegment(table, cell, section));
176
+ }
177
+ function tableCellSegment(table, cell, section) {
178
+ return textSegment({
179
+ text: cell.text,
180
+ occurrenceScope: cell.target.id,
181
+ sourceRange: cell.sourceRange,
182
+ section,
183
+ definitionColumnKey: tableCellDefinitionColumnKey(table, cell),
184
+ definitionColumnHeader: tableCellDefinitionColumnHeader(table, cell),
185
+ definitionColumnSignature: tableCellDefinitionColumnSignature(table, cell),
186
+ definitionSourceRowKey: tableCellDefinitionSourceRowKey(table, cell),
187
+ definitionRowSignature: tableCellDefinitionRowSignature(table, cell),
188
+ definitionTableHeaderCount: tableCellDefinitionTableHeaderCount(table, cell),
189
+ definitionTableKey: table.target.id,
190
+ });
191
+ }
192
+ function sectionHeadingSegment(document, section) {
193
+ const headingSource = documentQueries.sourceSlice(document, section.headingTarget);
194
+ return sourceBackedTextSegment({
195
+ document,
196
+ text: section.title,
197
+ occurrenceScope: section.headingTarget.id,
198
+ sourceTargetId: section.headingTarget.id,
199
+ sourceRange: headingSource?.range,
200
+ sourceText: headingSource?.text,
201
+ section,
202
+ });
203
+ }
204
+ function sourceBackedTextSegment(input) {
205
+ return textSegment({
206
+ text: input.text,
207
+ occurrenceScope: input.occurrenceScope,
208
+ sourceRange: input.sourceRange,
209
+ sourceText: input.sourceText,
210
+ documentTextOffset: input.sourceTargetId === undefined
211
+ ? undefined
212
+ : documentTextOffsetForTarget(input.document, input.sourceTargetId),
213
+ section: input.section,
214
+ });
215
+ }
216
+ function textSegment(input) {
217
+ return {
218
+ text: input.text,
219
+ occurrenceScope: input.occurrenceScope,
220
+ ...(input.documentTextOffset !== undefined
221
+ ? { documentTextOffset: input.documentTextOffset }
222
+ : {}),
223
+ ...(input.definitionColumnKey !== undefined
224
+ ? { definitionColumnKey: input.definitionColumnKey }
225
+ : {}),
226
+ ...(input.definitionColumnHeader !== undefined
227
+ ? { definitionColumnHeader: input.definitionColumnHeader }
228
+ : {}),
229
+ ...(input.definitionColumnSignature !== undefined
230
+ ? { definitionColumnSignature: input.definitionColumnSignature }
231
+ : {}),
232
+ ...(input.definitionSourceRowKey !== undefined
233
+ ? { definitionSourceRowKey: input.definitionSourceRowKey }
234
+ : {}),
235
+ ...(input.definitionRowSignature !== undefined
236
+ ? { definitionRowSignature: input.definitionRowSignature }
237
+ : {}),
238
+ ...(input.definitionTableHeaderCount !== undefined
239
+ ? { definitionTableHeaderCount: input.definitionTableHeaderCount }
240
+ : {}),
241
+ ...(input.definitionTableKey !== undefined
242
+ ? { definitionTableKey: input.definitionTableKey }
243
+ : {}),
244
+ ...(input.section !== undefined
245
+ ? {
246
+ sectionTitle: input.section.title,
247
+ sectionTargetId: input.section.target.id,
248
+ }
249
+ : {}),
250
+ ...(input.sourceRange !== undefined ? { sourceRange: input.sourceRange } : {}),
251
+ ...(input.sourceText !== undefined ? { sourceText: input.sourceText } : {}),
252
+ };
253
+ }
254
+ function idOccurrenceKey(segment, comparisonValue, textOffset) {
255
+ if (segment.documentTextOffset !== undefined) {
256
+ return `${comparisonValue}:document:${segment.documentTextOffset + textOffset}`;
257
+ }
258
+ return `${comparisonValue}:${segment.occurrenceScope}:${textOffset}`;
259
+ }
260
+ function tokenSourceRangeProperty(segment, textOffset, textLength) {
261
+ if (segment.sourceRange === undefined) {
262
+ return {};
263
+ }
264
+ if (segment.sourceText === undefined) {
265
+ return { sourceRange: segment.sourceRange };
266
+ }
267
+ const sourceRange = sourceRangeForNormalizedText(segment.sourceRange, segment.sourceText, segment.text, textOffset, textLength);
268
+ return sourceRange === undefined
269
+ ? { sourceRange: segment.sourceRange }
270
+ : { sourceRange };
271
+ }
272
+ function definitionColumnProperties(segment) {
273
+ if (segment.definitionColumnKey === undefined) {
274
+ return {};
275
+ }
276
+ return {
277
+ definitionColumnKey: segment.definitionColumnKey,
278
+ ...(segment.definitionColumnHeader !== undefined
279
+ ? { definitionColumnHeader: segment.definitionColumnHeader }
280
+ : {}),
281
+ ...(segment.definitionColumnSignature !== undefined
282
+ ? { definitionColumnSignature: segment.definitionColumnSignature }
283
+ : {}),
284
+ ...(segment.definitionSourceRowKey !== undefined
285
+ ? { definitionSourceRowKey: segment.definitionSourceRowKey }
286
+ : {}),
287
+ ...(segment.definitionRowSignature !== undefined
288
+ ? { definitionRowSignature: segment.definitionRowSignature }
289
+ : {}),
290
+ ...(segment.definitionTableHeaderCount !== undefined
291
+ ? { definitionTableHeaderCount: segment.definitionTableHeaderCount }
292
+ : {}),
293
+ ...(segment.definitionTableKey !== undefined
294
+ ? { definitionTableKey: segment.definitionTableKey }
295
+ : {}),
296
+ };
297
+ }
298
+ function sectionTitleProperty(segment) {
299
+ return segment.sectionTitle === undefined
300
+ ? {}
301
+ : { sectionTitle: segment.sectionTitle };
302
+ }
303
+ function sectionTargetIdProperty(segment) {
304
+ return segment.sectionTargetId === undefined
305
+ ? {}
306
+ : { sectionTargetId: segment.sectionTargetId };
307
+ }
308
+ function tableCellDefinitionColumnKey(table, cell) {
309
+ const header = tableHeaderForColumn(table, cell.columnIndex);
310
+ if (header === undefined) {
311
+ return undefined;
312
+ }
313
+ return `${table.target.id}:column:${cell.columnIndex}`;
314
+ }
315
+ function tableCellDefinitionColumnHeader(table, cell) {
316
+ return tableHeaderForColumn(table, cell.columnIndex)?.text;
317
+ }
318
+ function tableCellDefinitionColumnSignature(table, cell) {
319
+ const header = tableHeaderForColumn(table, cell.columnIndex);
320
+ if (header === undefined) {
321
+ return undefined;
322
+ }
323
+ return `column:${cell.columnIndex}:headers:${tableHeaderSignature(table)}`;
324
+ }
325
+ function tableCellDefinitionSourceRowKey(table, cell) {
326
+ const header = tableHeaderForColumn(table, cell.columnIndex);
327
+ if (header === undefined) {
328
+ return undefined;
329
+ }
330
+ return `table:${table.target.id}:row:${cell.rowIndex}`;
331
+ }
332
+ function tableCellDefinitionRowSignature(table, cell) {
333
+ const header = tableHeaderForColumn(table, cell.columnIndex);
334
+ if (header === undefined) {
335
+ return undefined;
336
+ }
337
+ return `headers:${tableHeaderSignature(table)}:row:${tableRowSignature(table, cell.rowIndex)}`;
338
+ }
339
+ function tableCellDefinitionTableHeaderCount(table, cell) {
340
+ return tableHeaderForColumn(table, cell.columnIndex) === undefined
341
+ ? undefined
342
+ : tableHeaderCount(table);
343
+ }
344
+ function tableHeaderForColumn(table, columnIndex) {
345
+ return table.cells
346
+ .filter((candidate) => candidate.header && candidate.columnIndex === columnIndex)
347
+ .sort(compareCells)[0];
348
+ }
349
+ function tableHeaderCount(table) {
350
+ return table.cells.filter((cell) => cell.header).length;
351
+ }
352
+ function tableHeaderSignature(table) {
353
+ return table.cells
354
+ .filter((cell) => cell.header)
355
+ .sort(compareCells)
356
+ .map((cell) => `${cell.columnIndex}:${cell.text}`)
357
+ .join("|");
358
+ }
359
+ function tableRowSignature(table, rowIndex) {
360
+ return table.cells
361
+ .filter((cell) => cell.rowIndex === rowIndex)
362
+ .sort(compareCells)
363
+ .map((cell) => `${cell.columnIndex}:${cell.text}`)
364
+ .join("|");
365
+ }
366
+ function sectionForTable(document, table) {
367
+ return sectionForNodeTarget(document, table.target);
368
+ }
369
+ function sectionForNodeTarget(document, nodeTarget) {
370
+ return documentQueries
371
+ .sections(document)
372
+ .find((section) => sectionOwnsNodeTarget(document, section, nodeTarget.id));
373
+ }
374
+ function sectionOwnsNodeTarget(document, section, targetId) {
375
+ return section.bodyTargets.some((bodyTarget) => {
376
+ if (bodyTarget.id === targetId) {
377
+ return true;
378
+ }
379
+ return nodeContainsTarget(documentQueries.nodes(document, { targetId: bodyTarget.id })[0], targetId);
380
+ });
381
+ }
382
+ function nodeContainsTarget(node, targetId) {
383
+ if (node?.target?.id === targetId) {
384
+ return true;
385
+ }
386
+ return (node?.children ?? []).some((child) => nodeContainsTarget(child, targetId));
387
+ }
388
+ function compareCells(left, right) {
389
+ return left.rowIndex - right.rowIndex || left.columnIndex - right.columnIndex;
390
+ }
391
+ //# sourceMappingURL=id-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-targets.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/id-targets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { SourceRange } from "../../api/diagnostics.js";
2
+ export interface IdToken {
3
+ value: string;
4
+ comparisonValue: string;
5
+ textOffset: number;
6
+ sourceRange?: SourceRange;
7
+ }
8
+ export interface IdTokenOptions {
9
+ caseSensitive?: boolean;
10
+ prefix?: string;
11
+ sourceRange?: SourceRange;
12
+ }
13
+ export declare function extractIdTokens(text: string, options?: IdTokenOptions): IdToken[];
14
+ export declare function comparisonValue(value: string, caseSensitive: boolean): string;
15
+ //# sourceMappingURL=id-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-tokens.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/id-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,EAAE,CAwBX;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAE7E"}
@@ -0,0 +1,27 @@
1
+ const ID_TOKEN_PATTERN = /\b[A-Za-z][A-Za-z0-9]*-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*\b/g;
2
+ export function extractIdTokens(text, options = {}) {
3
+ const caseSensitive = options.caseSensitive ?? true;
4
+ const tokens = [...text.matchAll(ID_TOKEN_PATTERN)].map((match) => {
5
+ const value = match[0] ?? "";
6
+ return {
7
+ value,
8
+ comparisonValue: comparisonValue(value, caseSensitive),
9
+ textOffset: match.index ?? 0,
10
+ ...(options.sourceRange !== undefined
11
+ ? { sourceRange: options.sourceRange }
12
+ : {}),
13
+ };
14
+ });
15
+ const prefix = options.prefix;
16
+ if (prefix === undefined) {
17
+ return tokens;
18
+ }
19
+ return tokens.filter((token) => tokenMatchesPrefix(token.value, prefix, caseSensitive));
20
+ }
21
+ export function comparisonValue(value, caseSensitive) {
22
+ return caseSensitive ? value : value.toLowerCase();
23
+ }
24
+ function tokenMatchesPrefix(token, prefix, caseSensitive) {
25
+ return comparisonValue(token, caseSensitive).startsWith(comparisonValue(`${prefix}-`, caseSensitive));
26
+ }
27
+ //# sourceMappingURL=id-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-tokens.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/id-tokens.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAepF,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,UAA0B,EAAE;IAE5B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,KAAK;YACL,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC;YACtD,UAAU,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,aAAsB;IACnE,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAa,EACb,MAAc,EACd,aAAsB;IAEtB,OAAO,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,UAAU,CACrD,eAAe,CAAC,GAAG,MAAM,GAAG,EAAE,aAAa,CAAC,CAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CompiledDeclarativeAssertion } from "../compiler/plan.js";
2
+ import type { AssertionEvaluationContext } from "./context.js";
3
+ import type { AssertionDiagnostic } from "./diagnostics.js";
4
+ type IdsAssertion = Extract<CompiledDeclarativeAssertion, {
5
+ kind: "ids";
6
+ }>;
7
+ export declare function evaluateIds(assertion: IdsAssertion, context: AssertionEvaluationContext): AssertionDiagnostic[];
8
+ export {};
9
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,KAAK,YAAY,GAAG,OAAO,CAAC,4BAA4B,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AA0B3E,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,EAAE,CAcvB"}
@@ -0,0 +1,128 @@
1
+ import { emptySelectionDiagnostic, validationDiagnostic, } from "./diagnostics.js";
2
+ import { extractTargetIdTokens } from "./id-targets.js";
3
+ export function evaluateIds(assertion, context) {
4
+ if (context.selection.targets.length === 0) {
5
+ return [emptySelectionDiagnostic(context.rule, context.assertionIndex)];
6
+ }
7
+ const collectedIds = collectIds(assertion, context);
8
+ const diagnostics = assertion.unique === true
9
+ ? duplicateIdDiagnostics(collectedIds, context)
10
+ : [];
11
+ diagnostics.push(...idCountDiagnostics(assertion, collectedIds, context));
12
+ return diagnostics;
13
+ }
14
+ function collectIds(assertion, context) {
15
+ const seenByComparisonValue = new Map();
16
+ const uniqueOccurrences = [];
17
+ const seenOccurrences = new Set();
18
+ const duplicates = [];
19
+ for (const [targetOrder, target] of context.selection.targets.entries()) {
20
+ const tokens = extractTargetIdTokens(context.selection.document, target, {
21
+ caseSensitive: assertion.caseSensitive,
22
+ ...(assertion.prefix !== undefined ? { prefix: assertion.prefix } : {}),
23
+ });
24
+ for (const [tokenOrder, token] of tokens.entries()) {
25
+ if (seenOccurrences.has(token.occurrenceKey)) {
26
+ continue;
27
+ }
28
+ seenOccurrences.add(token.occurrenceKey);
29
+ const currentOccurrence = {
30
+ token,
31
+ target,
32
+ targetOrder,
33
+ tokenOrder,
34
+ };
35
+ const firstSeen = seenByComparisonValue.get(token.comparisonValue);
36
+ if (firstSeen === undefined) {
37
+ seenByComparisonValue.set(token.comparisonValue, currentOccurrence);
38
+ uniqueOccurrences.push(currentOccurrence);
39
+ continue;
40
+ }
41
+ duplicates.push({ firstSeen, repeated: currentOccurrence });
42
+ }
43
+ }
44
+ return { duplicates, uniqueOccurrences };
45
+ }
46
+ function duplicateIdDiagnostics(collectedIds, context) {
47
+ return collectedIds.duplicates.map(({ firstSeen, repeated }) => validationDiagnostic("profile.validation.duplicateId", `ID "${repeated.token.value}" duplicates earlier ID "${firstSeen.token.value}".`, context.rule, {
48
+ assertionIndex: context.assertionIndex,
49
+ target: repeated.target,
50
+ targetOrder: repeated.targetOrder,
51
+ targetKey: duplicateIdSortKey(repeated.token.comparisonValue, repeated.targetOrder),
52
+ diagnosticOrder: repeated.tokenOrder,
53
+ ...(repeated.token.sourceRange !== undefined
54
+ ? { sourceRange: repeated.token.sourceRange }
55
+ : {}),
56
+ }));
57
+ }
58
+ function idCountDiagnostics(assertion, collectedIds, context) {
59
+ const diagnostics = [];
60
+ const actualCount = collectedIds.uniqueOccurrences.length;
61
+ if (assertion.minCount !== undefined && actualCount < assertion.minCount) {
62
+ diagnostics.push(idCountDiagnostic("profile.validation.idCountTooLow", minCountMessage(assertion, assertion.minCount, actualCount), "min", minCountAnchor(collectedIds, context), context));
63
+ }
64
+ if (assertion.maxCount !== undefined && actualCount > assertion.maxCount) {
65
+ diagnostics.push(idCountDiagnostic("profile.validation.idCountTooHigh", maxCountMessage(assertion, assertion.maxCount, actualCount), "max", maxCountAnchor(assertion, collectedIds, context), context));
66
+ }
67
+ return diagnostics;
68
+ }
69
+ function idCountDiagnostic(code, message, boundName, anchor, context) {
70
+ return validationDiagnostic(code, message, context.rule, {
71
+ assertionIndex: context.assertionIndex,
72
+ targetOrder: anchor.targetOrder,
73
+ targetKey: idCountSortKey(boundName),
74
+ diagnosticOrder: anchor.diagnosticOrder,
75
+ ...(anchor.target !== undefined ? { target: anchor.target } : {}),
76
+ ...(anchor.sourceRange !== undefined ? { sourceRange: anchor.sourceRange } : {}),
77
+ });
78
+ }
79
+ function minCountAnchor(collectedIds, context) {
80
+ const firstKnownId = collectedIds.uniqueOccurrences[0];
81
+ return firstKnownId === undefined
82
+ ? firstSelectionTargetAnchor(context)
83
+ : occurrenceAnchor(firstKnownId);
84
+ }
85
+ function maxCountAnchor(assertion, collectedIds, context) {
86
+ const firstExcessId = assertion.maxCount === undefined
87
+ ? undefined
88
+ : collectedIds.uniqueOccurrences[assertion.maxCount];
89
+ return firstExcessId === undefined
90
+ ? firstSelectionTargetAnchor(context)
91
+ : occurrenceAnchor(firstExcessId);
92
+ }
93
+ function occurrenceAnchor(occurrence) {
94
+ return {
95
+ target: occurrence.target,
96
+ targetOrder: occurrence.targetOrder,
97
+ diagnosticOrder: occurrence.tokenOrder,
98
+ ...(occurrence.token.sourceRange !== undefined
99
+ ? { sourceRange: occurrence.token.sourceRange }
100
+ : {}),
101
+ };
102
+ }
103
+ function firstSelectionTargetAnchor(context) {
104
+ const firstTarget = context.selection.targets[0];
105
+ return {
106
+ targetOrder: 0,
107
+ diagnosticOrder: 0,
108
+ ...(firstTarget !== undefined ? { target: firstTarget } : {}),
109
+ };
110
+ }
111
+ function minCountMessage(assertion, expected, actual) {
112
+ return `Expected at least ${expected} ${uniqueIdDescription(assertion)} but found ${actual}.`;
113
+ }
114
+ function maxCountMessage(assertion, expected, actual) {
115
+ return `Expected at most ${expected} ${uniqueIdDescription(assertion)} but found ${actual}.`;
116
+ }
117
+ function uniqueIdDescription(assertion) {
118
+ return assertion.prefix === undefined
119
+ ? "unique IDs"
120
+ : `unique IDs matching prefix "${assertion.prefix}"`;
121
+ }
122
+ function idCountSortKey(boundName) {
123
+ return `id-count:${boundName}`;
124
+ }
125
+ function duplicateIdSortKey(comparisonValue, targetOrder) {
126
+ return `id:${comparisonValue}:${targetOrder}`;
127
+ }
128
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/ids.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { evaluateCompiledDeclarativeAllOfRule, evaluateCompiledDeclarativeAnyOfRule, } from "./group-evaluator.js";
2
+ export { evaluateCompiledDeclarativeRule } from "./evaluator.js";
3
+ export { sortValidationRuleResults } from "./ordering.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { evaluateCompiledDeclarativeAllOfRule, evaluateCompiledDeclarativeAnyOfRule, } from "./group-evaluator.js";
2
+ export { evaluateCompiledDeclarativeRule } from "./evaluator.js";
3
+ export { sortValidationRuleResults } from "./ordering.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function countNonOverlappingLiteralOccurrences(text: string, literal: string): number;
2
+ //# sourceMappingURL=literal-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal-text.d.ts","sourceRoot":"","sources":["../../../src/declarative-validation/assertions/literal-text.ts"],"names":[],"mappings":"AAAA,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,MAAM,CAeR"}