@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jasonbelmonti/markdown-engine",
3
- "version": "1.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "Deterministic Markdown parsing and validation engine package.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "bugs": {
15
15
  "url": "https://github.com/jasonbelmonti/markdown-engine/issues"
16
16
  },
17
- "homepage": "https://github.com/jasonbelmonti/markdown-engine#readme",
17
+ "homepage": "https://jasonbelmonti.github.io/markdown-engine/",
18
18
  "keywords": [
19
19
  "markdown",
20
20
  "gfm",
@@ -31,6 +31,10 @@
31
31
  "types": "./dist/index.d.ts",
32
32
  "files": [
33
33
  "dist",
34
+ "dist-bundled",
35
+ "skills",
36
+ "docs/contracts",
37
+ "fixtures/declarative-validation/examples",
34
38
  "CHANGELOG.md",
35
39
  "SECURITY.md"
36
40
  ],
@@ -40,27 +44,42 @@
40
44
  "scripts": {
41
45
  "clean": "node scripts/clean-dist.mjs",
42
46
  "build": "npm run clean && tsc -p tsconfig.json",
47
+ "build:cli:bundled": "node scripts/build-bundled-cli.mjs",
48
+ "build:cli-bundle": "node scripts/build-cli-bundle.mjs",
43
49
  "prepack": "npm run release:verify",
44
50
  "prepublishOnly": "npm run release:verify",
45
- "release:verify": "npm run typecheck && npm test && node scripts/check-boundaries.mjs && npm run build && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
51
+ "release:verify": "npm run typecheck && npm test && node scripts/check-boundaries.mjs && npm run docs:rich-ir-contract && npm run docs:declarative-validation-contract && npm run audit:declarative-validation-boundary && npm run build && npm run build:cli:bundled && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
46
52
  "release:check-clean": "git diff --check HEAD -- && git diff --exit-code HEAD --",
47
53
  "snapshots:update:parser": "npm run build && vitest run tests/parser-fixtures.test.ts -u \"--exclude=.worktrees/**\"",
48
54
  "snapshots:update:rules": "npm run build && vitest run tests/rules.test.ts -u \"--exclude=.worktrees/**\"",
49
- "snapshots:update:rich-ir": "npm run build && vitest run tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts -u \"--exclude=.worktrees/**\"",
55
+ "snapshots:update:rich-ir": "npm run build && vitest run tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts -u \"--exclude=.worktrees/**\"",
50
56
  "snapshots:update:serialization": "npm run build && vitest run tests/serialization-repeatability.test.ts tests/boundary-inspection.test.ts -u \"--exclude=.worktrees/**\"",
51
57
  "test:rich-ir:proving": "npm run build && vitest run tests/rich-ir-proving.test.ts \"--exclude=.worktrees/**\"",
52
58
  "test:rich-ir:contract": "npm run build && tsc -p tsconfig.document-contract.json && vitest run tests/document-contract.test.ts \"--exclude=.worktrees/**\"",
53
59
  "test:rich-ir:targets": "npm run build && vitest run tests/rich-ir-targets.test.ts \"--exclude=.worktrees/**\"",
54
- "test:rich-ir:queries": "npm run build && vitest run tests/rich-ir-queries.test.ts \"--exclude=.worktrees/**\"",
60
+ "test:rich-ir:queries": "npm run build && vitest run tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts \"--exclude=.worktrees/**\"",
55
61
  "test:rich-ir:annotations": "npm run build && vitest run tests/rich-ir-annotations.test.ts \"--exclude=.worktrees/**\"",
56
62
  "test:rich-ir:compat": "npm run build && vitest run tests/rich-ir-compat.test.ts \"--exclude=.worktrees/**\"",
57
63
  "test:rich-ir:repeatability": "npm run build && vitest run tests/rich-ir-repeatability.test.ts \"--exclude=.worktrees/**\"",
58
64
  "test:rich-ir:downstream": "npm run build && vitest run tests/rich-ir-downstream.test.ts \"--exclude=.worktrees/**\"",
59
65
  "audit:rich-ir-boundary": "node scripts/check-boundaries.mjs",
60
66
  "docs:rich-ir-contract": "node scripts/check-rich-ir-contract-docs.mjs",
67
+ "test:validation:proving": "npm run build && vitest run tests/declarative-validation-proving.test.ts \"--exclude=.worktrees/**\"",
68
+ "test:validation:contract": "npm run build && tsc -p tsconfig.declarative-validation-contract.json && vitest run tests/declarative-validation-contract.test.ts \"--exclude=.worktrees/**\"",
69
+ "test:validation:profile": "npm run build && vitest run tests/declarative-validation-profile.test.ts \"--exclude=.worktrees/**\"",
70
+ "test:validation:compiler": "npm run build && vitest run tests/declarative-validation-compiler.test.ts \"--exclude=.worktrees/**\"",
71
+ "test:validation:selectors": "npm run build && vitest run tests/declarative-validation-selectors.test.ts \"--exclude=.worktrees/**\"",
72
+ "test:validation:assertions": "npm run build && vitest run tests/declarative-validation-assertions.test.ts tests/declarative-validation-table-column-coverage-fixtures.test.ts tests/declarative-validation-grouped-rules-fixtures.test.ts tests/declarative-validation-when-skipped-rules-fixtures.test.ts \"--exclude=.worktrees/**\"",
73
+ "test:validation:diagnostics": "npm run build && vitest run tests/declarative-validation-diagnostics.test.ts \"--exclude=.worktrees/**\"",
74
+ "test:validation:cli": "npm run build && vitest run tests/declarative-validation-cli.test.ts \"--exclude=.worktrees/**\"",
75
+ "test:validation:examples": "npm run build && vitest run tests/declarative-validation-examples.test.ts \"--exclude=.worktrees/**\"",
76
+ "test:validation:repeatability": "npm run build && vitest run tests/declarative-validation-repeatability.test.ts \"--exclude=.worktrees/**\" && node scripts/prove-declarative-validation-repeatability.mjs --runs 10",
77
+ "test:validation:downstream": "npm run build && vitest run tests/declarative-validation-downstream.test.ts \"--exclude=.worktrees/**\"",
78
+ "audit:declarative-validation-boundary": "node scripts/check-declarative-validation-boundary.mjs",
79
+ "docs:declarative-validation-contract": "node scripts/check-declarative-validation-contract-docs.mjs",
61
80
  "typecheck": "tsc -p tsconfig.json --noEmit",
62
81
  "test": "npm run build && vitest run \"--exclude=.worktrees/**\"",
63
- "test:snapshots": "npm run build && vitest run tests/parser-fixtures.test.ts tests/rules.test.ts tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/serialization-repeatability.test.ts \"--exclude=.worktrees/**\""
82
+ "test:snapshots": "npm run build && vitest run tests/parser-fixtures.test.ts tests/rules.test.ts tests/rich-ir-targets.test.ts tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts tests/serialization-repeatability.test.ts \"--exclude=.worktrees/**\""
64
83
  },
65
84
  "engines": {
66
85
  "node": "^20.19.0 || >=22.12.0"
@@ -68,6 +87,7 @@
68
87
  "devDependencies": {
69
88
  "@types/node": "^22.19.17",
70
89
  "cmark-gfm": "^0.9.0",
90
+ "esbuild": "^0.27.7",
71
91
  "typescript": "^5.8.3",
72
92
  "vitest": "^3.1.3"
73
93
  },
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: profile-backed-markdown
3
+ description: Validate Markdown files that declare a local markdown-engine validation profile in frontmatter.
4
+ ---
5
+
6
+ # Profile-Backed Markdown
7
+
8
+ Use this skill when a Markdown file contains frontmatter with `validationProfile`
9
+ and you need deterministic profile validation before editing or handing off the
10
+ file.
11
+
12
+ ## Workflow
13
+
14
+ 1. Run the bundled wrapper:
15
+
16
+ ```bash
17
+ node scripts/validate-profile-backed-markdown.mjs --file /path/to/file.md
18
+ ```
19
+
20
+ 2. Treat stdout as the validator JSON source of truth. Do not infer pass/fail
21
+ from prose or repair notes.
22
+ 3. If validation fails, rerun with `--repair-brief` to emit compact repair
23
+ guidance on stderr while preserving validator JSON on stdout.
24
+ 4. Edit the Markdown file only when the user asked for repair. Do not edit
25
+ validation profiles unless explicitly requested.
26
+ 5. Rerun the wrapper after edits and require exit code `0` before reporting the
27
+ document clean.
28
+
29
+ ## Frontmatter Contract
30
+
31
+ The wrapper reads a top-level frontmatter scalar:
32
+
33
+ ```yaml
34
+ validationProfile: operational-spec
35
+ ```
36
+
37
+ Profile names resolve to `assets/profiles/<validationProfile>.yaml` by default.
38
+ The wrapper rejects absolute paths and parent-directory traversal so validation
39
+ profiles stay within the local skill assets.
40
+
41
+ ## Bundled CLI
42
+
43
+ The wrapper does not require a globally installed `markdown-engine` binary. It
44
+ uses `MARKDOWN_ENGINE_CLI` when set, then checks for a local
45
+ `scripts/markdown-engine-cli.mjs`, then falls back to the package-level
46
+ `dist-bundled/markdown-engine-cli.mjs`.
47
+
48
+ For a standalone skill folder, build and copy the bundled CLI artifact before
49
+ distribution:
50
+
51
+ ```bash
52
+ npm run build:cli:bundled
53
+ cp dist-bundled/markdown-engine-cli.mjs skills/profile-backed-markdown/scripts/
54
+ ```
@@ -0,0 +1,98 @@
1
+ syntaxVersion: markdown-engine.validation@v1
2
+ documentVersion: 1.0.0
3
+ rules:
4
+ - id: frontmatter.required
5
+ select:
6
+ target: document
7
+ assert:
8
+ frontmatterRequired:
9
+ fields:
10
+ - title
11
+ - owner
12
+ - status
13
+
14
+ - id: sections.required
15
+ select:
16
+ target: document
17
+ assert:
18
+ sectionsRequired:
19
+ order: strict
20
+ headings:
21
+ - Objective
22
+ - Context / Constraints
23
+ - Execution Plan
24
+ - Risk Register
25
+ - Handoff Links
26
+
27
+ - id: objective.text
28
+ select:
29
+ target: section
30
+ title: Objective
31
+ assert:
32
+ text:
33
+ contains: "Mission control"
34
+
35
+ - id: objective.length
36
+ select:
37
+ target: section
38
+ title: Objective
39
+ assert:
40
+ textLength:
41
+ min: 80
42
+ max: 180
43
+
44
+ - id: risk.table.columns
45
+ select:
46
+ target: table
47
+ section: Risk Register
48
+ header:
49
+ - ID
50
+ - Mitigation
51
+ - Status
52
+ assert:
53
+ tableColumnsRequired:
54
+ columns:
55
+ - ID
56
+ - Mitigation
57
+ - Status
58
+
59
+ - id: risk.ids.unique
60
+ select:
61
+ target: tableCell
62
+ section: Risk Register
63
+ tableHeader:
64
+ - ID
65
+ - Mitigation
66
+ - Status
67
+ column: ID
68
+ assert:
69
+ ids:
70
+ prefix: OPS-RISK
71
+ unique: true
72
+
73
+ - id: execution.must.count
74
+ select:
75
+ target: section
76
+ title: Execution Plan
77
+ assert:
78
+ textOccurrenceCount:
79
+ text: MUST
80
+ count: 2
81
+
82
+ - id: execution.list
83
+ select:
84
+ target: list
85
+ section: Execution Plan
86
+ ordered: false
87
+ assert:
88
+ text:
89
+ contains: "Validate profile"
90
+
91
+ - id: handoff.link
92
+ select:
93
+ target: link
94
+ section: Handoff Links
95
+ text: "handoff packet"
96
+ url: "./handoff-packet.md"
97
+ assert:
98
+ exists: true
@@ -0,0 +1,14 @@
1
+ # Repair Brief Contract
2
+
3
+ `--repair-brief` emits a compact diagnostic summary on stderr and preserves the
4
+ validator JSON result on stdout.
5
+
6
+ Each diagnostic entry is derived from validator JSON only:
7
+
8
+ - `ruleId`: the failing profile rule when present, otherwise `(none)`.
9
+ - `message`: the validator diagnostic message.
10
+ - `sourceRange`: the validator diagnostic range when present, otherwise
11
+ `unavailable`.
12
+
13
+ The wrapper must not invent validation outcomes, synthesize missing diagnostics,
14
+ or edit local profile assets.