@jasonbelmonti/markdown-engine 0.1.0 → 2.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 (350) hide show
  1. package/CHANGELOG.md +53 -4
  2. package/README.md +138 -10
  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-runtime.d.ts +30 -0
  21. package/dist/api/annotation-target-runtime.d.ts.map +1 -0
  22. package/dist/api/annotation-target-runtime.js +161 -0
  23. package/dist/api/annotation-target-runtime.js.map +1 -0
  24. package/dist/api/annotation-target-validation.d.ts +4 -0
  25. package/dist/api/annotation-target-validation.d.ts.map +1 -0
  26. package/dist/api/annotation-target-validation.js +147 -0
  27. package/dist/api/annotation-target-validation.js.map +1 -0
  28. package/dist/api/annotations.d.ts +4 -0
  29. package/dist/api/annotations.d.ts.map +1 -0
  30. package/dist/api/annotations.js +16 -0
  31. package/dist/api/annotations.js.map +1 -0
  32. package/dist/api/compatibility.d.ts +15 -0
  33. package/dist/api/compatibility.d.ts.map +1 -0
  34. package/dist/api/compatibility.js +57 -0
  35. package/dist/api/compatibility.js.map +1 -0
  36. package/dist/api/contracts.d.ts +4 -1
  37. package/dist/api/contracts.d.ts.map +1 -1
  38. package/dist/api/contracts.js +3 -0
  39. package/dist/api/contracts.js.map +1 -1
  40. package/dist/api/declarative-validation.d.ts +13 -0
  41. package/dist/api/declarative-validation.d.ts.map +1 -0
  42. package/dist/api/declarative-validation.js +63 -0
  43. package/dist/api/declarative-validation.js.map +1 -0
  44. package/dist/api/document-queries.d.ts +3 -0
  45. package/dist/api/document-queries.d.ts.map +1 -0
  46. package/dist/api/document-queries.js +160 -0
  47. package/dist/api/document-queries.js.map +1 -0
  48. package/dist/api/document.d.ts +179 -2
  49. package/dist/api/document.d.ts.map +1 -1
  50. package/dist/api/engine-node-attributes.d.ts +15 -0
  51. package/dist/api/engine-node-attributes.d.ts.map +1 -0
  52. package/dist/api/engine-node-attributes.js +99 -0
  53. package/dist/api/engine-node-attributes.js.map +1 -0
  54. package/dist/api/normalize.d.ts +2 -1
  55. package/dist/api/normalize.d.ts.map +1 -1
  56. package/dist/api/normalize.js +22 -1
  57. package/dist/api/normalize.js.map +1 -1
  58. package/dist/api/serialize.d.ts +5 -1
  59. package/dist/api/serialize.d.ts.map +1 -1
  60. package/dist/api/serialize.js +7 -14
  61. package/dist/api/serialize.js.map +1 -1
  62. package/dist/cli/args.d.ts +18 -0
  63. package/dist/cli/args.d.ts.map +1 -0
  64. package/dist/cli/args.js +109 -0
  65. package/dist/cli/args.js.map +1 -0
  66. package/dist/cli/declarative-validation.d.ts +18 -0
  67. package/dist/cli/declarative-validation.d.ts.map +1 -0
  68. package/dist/cli/declarative-validation.js +131 -0
  69. package/dist/cli/declarative-validation.js.map +1 -0
  70. package/dist/cli/document-version.d.ts +14 -0
  71. package/dist/cli/document-version.d.ts.map +1 -0
  72. package/dist/cli/document-version.js +32 -0
  73. package/dist/cli/document-version.js.map +1 -0
  74. package/dist/cli/files.d.ts +6 -0
  75. package/dist/cli/files.d.ts.map +1 -0
  76. package/dist/cli/files.js +33 -0
  77. package/dist/cli/files.js.map +1 -0
  78. package/dist/cli/index.d.ts +3 -0
  79. package/dist/cli/index.d.ts.map +1 -0
  80. package/dist/cli/index.js +9 -0
  81. package/dist/cli/index.js.map +1 -0
  82. package/dist/cli/normalize-markdown.d.ts +8 -0
  83. package/dist/cli/normalize-markdown.d.ts.map +1 -0
  84. package/dist/cli/normalize-markdown.js +10 -0
  85. package/dist/cli/normalize-markdown.js.map +1 -0
  86. package/dist/cli/run.d.ts +11 -0
  87. package/dist/cli/run.d.ts.map +1 -0
  88. package/dist/cli/run.js +52 -0
  89. package/dist/cli/run.js.map +1 -0
  90. package/dist/cli/validate-args.d.ts +18 -0
  91. package/dist/cli/validate-args.d.ts.map +1 -0
  92. package/dist/cli/validate-args.js +131 -0
  93. package/dist/cli/validate-args.js.map +1 -0
  94. package/dist/declarative-validation/assertions/context.d.ts +8 -0
  95. package/dist/declarative-validation/assertions/context.d.ts.map +1 -0
  96. package/dist/declarative-validation/assertions/context.js +2 -0
  97. package/dist/declarative-validation/assertions/context.js.map +1 -0
  98. package/dist/declarative-validation/assertions/diagnostics.d.ts +22 -0
  99. package/dist/declarative-validation/assertions/diagnostics.d.ts.map +1 -0
  100. package/dist/declarative-validation/assertions/diagnostics.js +71 -0
  101. package/dist/declarative-validation/assertions/diagnostics.js.map +1 -0
  102. package/dist/declarative-validation/assertions/document-text-offsets.d.ts +3 -0
  103. package/dist/declarative-validation/assertions/document-text-offsets.d.ts.map +1 -0
  104. package/dist/declarative-validation/assertions/document-text-offsets.js +32 -0
  105. package/dist/declarative-validation/assertions/document-text-offsets.js.map +1 -0
  106. package/dist/declarative-validation/assertions/evaluator.d.ts +5 -0
  107. package/dist/declarative-validation/assertions/evaluator.d.ts.map +1 -0
  108. package/dist/declarative-validation/assertions/evaluator.js +46 -0
  109. package/dist/declarative-validation/assertions/evaluator.js.map +1 -0
  110. package/dist/declarative-validation/assertions/exists.d.ts +4 -0
  111. package/dist/declarative-validation/assertions/exists.d.ts.map +1 -0
  112. package/dist/declarative-validation/assertions/exists.js +8 -0
  113. package/dist/declarative-validation/assertions/exists.js.map +1 -0
  114. package/dist/declarative-validation/assertions/frontmatter-required.d.ts +9 -0
  115. package/dist/declarative-validation/assertions/frontmatter-required.d.ts.map +1 -0
  116. package/dist/declarative-validation/assertions/frontmatter-required.js +15 -0
  117. package/dist/declarative-validation/assertions/frontmatter-required.js.map +1 -0
  118. package/dist/declarative-validation/assertions/id-targets.d.ts +29 -0
  119. package/dist/declarative-validation/assertions/id-targets.d.ts.map +1 -0
  120. package/dist/declarative-validation/assertions/id-targets.js +428 -0
  121. package/dist/declarative-validation/assertions/id-targets.js.map +1 -0
  122. package/dist/declarative-validation/assertions/id-tokens.d.ts +15 -0
  123. package/dist/declarative-validation/assertions/id-tokens.d.ts.map +1 -0
  124. package/dist/declarative-validation/assertions/id-tokens.js +27 -0
  125. package/dist/declarative-validation/assertions/id-tokens.js.map +1 -0
  126. package/dist/declarative-validation/assertions/ids.d.ts +9 -0
  127. package/dist/declarative-validation/assertions/ids.d.ts.map +1 -0
  128. package/dist/declarative-validation/assertions/ids.js +42 -0
  129. package/dist/declarative-validation/assertions/ids.js.map +1 -0
  130. package/dist/declarative-validation/assertions/index.d.ts +3 -0
  131. package/dist/declarative-validation/assertions/index.d.ts.map +1 -0
  132. package/dist/declarative-validation/assertions/index.js +3 -0
  133. package/dist/declarative-validation/assertions/index.js.map +1 -0
  134. package/dist/declarative-validation/assertions/literal-text.d.ts +2 -0
  135. package/dist/declarative-validation/assertions/literal-text.d.ts.map +1 -0
  136. package/dist/declarative-validation/assertions/literal-text.js +14 -0
  137. package/dist/declarative-validation/assertions/literal-text.js.map +1 -0
  138. package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts +3 -0
  139. package/dist/declarative-validation/assertions/normalized-source-ranges.d.ts.map +1 -0
  140. package/dist/declarative-validation/assertions/normalized-source-ranges.js +105 -0
  141. package/dist/declarative-validation/assertions/normalized-source-ranges.js.map +1 -0
  142. package/dist/declarative-validation/assertions/ordering.d.ts +6 -0
  143. package/dist/declarative-validation/assertions/ordering.d.ts.map +1 -0
  144. package/dist/declarative-validation/assertions/ordering.js +71 -0
  145. package/dist/declarative-validation/assertions/ordering.js.map +1 -0
  146. package/dist/declarative-validation/assertions/references.d.ts +9 -0
  147. package/dist/declarative-validation/assertions/references.d.ts.map +1 -0
  148. package/dist/declarative-validation/assertions/references.js +354 -0
  149. package/dist/declarative-validation/assertions/references.js.map +1 -0
  150. package/dist/declarative-validation/assertions/sections-required.d.ts +9 -0
  151. package/dist/declarative-validation/assertions/sections-required.d.ts.map +1 -0
  152. package/dist/declarative-validation/assertions/sections-required.js +49 -0
  153. package/dist/declarative-validation/assertions/sections-required.js.map +1 -0
  154. package/dist/declarative-validation/assertions/table-columns-required.d.ts +9 -0
  155. package/dist/declarative-validation/assertions/table-columns-required.d.ts.map +1 -0
  156. package/dist/declarative-validation/assertions/table-columns-required.js +31 -0
  157. package/dist/declarative-validation/assertions/table-columns-required.js.map +1 -0
  158. package/dist/declarative-validation/assertions/text-length.d.ts +9 -0
  159. package/dist/declarative-validation/assertions/text-length.d.ts.map +1 -0
  160. package/dist/declarative-validation/assertions/text-length.js +40 -0
  161. package/dist/declarative-validation/assertions/text-length.js.map +1 -0
  162. package/dist/declarative-validation/assertions/text-occurrence-count.d.ts +9 -0
  163. package/dist/declarative-validation/assertions/text-occurrence-count.d.ts.map +1 -0
  164. package/dist/declarative-validation/assertions/text-occurrence-count.js +22 -0
  165. package/dist/declarative-validation/assertions/text-occurrence-count.js.map +1 -0
  166. package/dist/declarative-validation/assertions/text.d.ts +9 -0
  167. package/dist/declarative-validation/assertions/text.d.ts.map +1 -0
  168. package/dist/declarative-validation/assertions/text.js +32 -0
  169. package/dist/declarative-validation/assertions/text.js.map +1 -0
  170. package/dist/declarative-validation/compiler/assertion-builders.d.ts +6 -0
  171. package/dist/declarative-validation/compiler/assertion-builders.d.ts.map +1 -0
  172. package/dist/declarative-validation/compiler/assertion-builders.js +199 -0
  173. package/dist/declarative-validation/compiler/assertion-builders.js.map +1 -0
  174. package/dist/declarative-validation/compiler/assertion-shapes.d.ts +18 -0
  175. package/dist/declarative-validation/compiler/assertion-shapes.d.ts.map +1 -0
  176. package/dist/declarative-validation/compiler/assertion-shapes.js +129 -0
  177. package/dist/declarative-validation/compiler/assertion-shapes.js.map +1 -0
  178. package/dist/declarative-validation/compiler/assertions.d.ts +5 -0
  179. package/dist/declarative-validation/compiler/assertions.d.ts.map +1 -0
  180. package/dist/declarative-validation/compiler/assertions.js +25 -0
  181. package/dist/declarative-validation/compiler/assertions.js.map +1 -0
  182. package/dist/declarative-validation/compiler/compatibility.d.ts +4 -0
  183. package/dist/declarative-validation/compiler/compatibility.d.ts.map +1 -0
  184. package/dist/declarative-validation/compiler/compatibility.js +28 -0
  185. package/dist/declarative-validation/compiler/compatibility.js.map +1 -0
  186. package/dist/declarative-validation/compiler/diagnostics.d.ts +3 -0
  187. package/dist/declarative-validation/compiler/diagnostics.d.ts.map +1 -0
  188. package/dist/declarative-validation/compiler/diagnostics.js +9 -0
  189. package/dist/declarative-validation/compiler/diagnostics.js.map +1 -0
  190. package/dist/declarative-validation/compiler/index.d.ts +5 -0
  191. package/dist/declarative-validation/compiler/index.d.ts.map +1 -0
  192. package/dist/declarative-validation/compiler/index.js +164 -0
  193. package/dist/declarative-validation/compiler/index.js.map +1 -0
  194. package/dist/declarative-validation/compiler/plan.d.ts +58 -0
  195. package/dist/declarative-validation/compiler/plan.d.ts.map +1 -0
  196. package/dist/declarative-validation/compiler/plan.js +2 -0
  197. package/dist/declarative-validation/compiler/plan.js.map +1 -0
  198. package/dist/declarative-validation/diagnostics/index.d.ts +7 -0
  199. package/dist/declarative-validation/diagnostics/index.d.ts.map +1 -0
  200. package/dist/declarative-validation/diagnostics/index.js +2 -0
  201. package/dist/declarative-validation/diagnostics/index.js.map +1 -0
  202. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts +11 -0
  203. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.d.ts.map +1 -0
  204. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js +45 -0
  205. package/dist/declarative-validation/diagnostics/profile-config-diagnostics.js.map +1 -0
  206. package/dist/declarative-validation/evidence/index.d.ts +14 -0
  207. package/dist/declarative-validation/evidence/index.d.ts.map +1 -0
  208. package/dist/declarative-validation/evidence/index.js +38 -0
  209. package/dist/declarative-validation/evidence/index.js.map +1 -0
  210. package/dist/declarative-validation/profile/assertion-schema.d.ts +4 -0
  211. package/dist/declarative-validation/profile/assertion-schema.d.ts.map +1 -0
  212. package/dist/declarative-validation/profile/assertion-schema.js +285 -0
  213. package/dist/declarative-validation/profile/assertion-schema.js.map +1 -0
  214. package/dist/declarative-validation/profile/data-closure.d.ts +6 -0
  215. package/dist/declarative-validation/profile/data-closure.d.ts.map +1 -0
  216. package/dist/declarative-validation/profile/data-closure.js +167 -0
  217. package/dist/declarative-validation/profile/data-closure.js.map +1 -0
  218. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts +5 -0
  219. package/dist/declarative-validation/profile/direct-profile-diagnostics.d.ts.map +1 -0
  220. package/dist/declarative-validation/profile/direct-profile-diagnostics.js +73 -0
  221. package/dist/declarative-validation/profile/direct-profile-diagnostics.js.map +1 -0
  222. package/dist/declarative-validation/profile/index.d.ts +113 -0
  223. package/dist/declarative-validation/profile/index.d.ts.map +1 -0
  224. package/dist/declarative-validation/profile/index.js +2 -0
  225. package/dist/declarative-validation/profile/index.js.map +1 -0
  226. package/dist/declarative-validation/profile/materialization.d.ts +9 -0
  227. package/dist/declarative-validation/profile/materialization.d.ts.map +1 -0
  228. package/dist/declarative-validation/profile/materialization.js +109 -0
  229. package/dist/declarative-validation/profile/materialization.js.map +1 -0
  230. package/dist/declarative-validation/profile/parse.d.ts +3 -0
  231. package/dist/declarative-validation/profile/parse.d.ts.map +1 -0
  232. package/dist/declarative-validation/profile/parse.js +89 -0
  233. package/dist/declarative-validation/profile/parse.js.map +1 -0
  234. package/dist/declarative-validation/profile/schema-values.d.ts +14 -0
  235. package/dist/declarative-validation/profile/schema-values.d.ts.map +1 -0
  236. package/dist/declarative-validation/profile/schema-values.js +81 -0
  237. package/dist/declarative-validation/profile/schema-values.js.map +1 -0
  238. package/dist/declarative-validation/profile/schema.d.ts +9 -0
  239. package/dist/declarative-validation/profile/schema.d.ts.map +1 -0
  240. package/dist/declarative-validation/profile/schema.js +98 -0
  241. package/dist/declarative-validation/profile/schema.js.map +1 -0
  242. package/dist/declarative-validation/profile/selector-schema.d.ts +4 -0
  243. package/dist/declarative-validation/profile/selector-schema.d.ts.map +1 -0
  244. package/dist/declarative-validation/profile/selector-schema.js +145 -0
  245. package/dist/declarative-validation/profile/selector-schema.js.map +1 -0
  246. package/dist/declarative-validation/results/index.d.ts +26 -0
  247. package/dist/declarative-validation/results/index.d.ts.map +1 -0
  248. package/dist/declarative-validation/results/index.js +2 -0
  249. package/dist/declarative-validation/results/index.js.map +1 -0
  250. package/dist/declarative-validation/selectors/index.d.ts +57 -0
  251. package/dist/declarative-validation/selectors/index.d.ts.map +1 -0
  252. package/dist/declarative-validation/selectors/index.js +149 -0
  253. package/dist/declarative-validation/selectors/index.js.map +1 -0
  254. package/dist/declarative-validation/selectors/source.d.ts +8 -0
  255. package/dist/declarative-validation/selectors/source.d.ts.map +1 -0
  256. package/dist/declarative-validation/selectors/source.js +57 -0
  257. package/dist/declarative-validation/selectors/source.js.map +1 -0
  258. package/dist/declarative-validation/selectors/table-targets.d.ts +13 -0
  259. package/dist/declarative-validation/selectors/table-targets.d.ts.map +1 -0
  260. package/dist/declarative-validation/selectors/table-targets.js +106 -0
  261. package/dist/declarative-validation/selectors/table-targets.js.map +1 -0
  262. package/dist/declarative-validation/selectors/table-text.d.ts +4 -0
  263. package/dist/declarative-validation/selectors/table-text.d.ts.map +1 -0
  264. package/dist/declarative-validation/selectors/table-text.js +16 -0
  265. package/dist/declarative-validation/selectors/table-text.js.map +1 -0
  266. package/dist/internal/document-node-walk.d.ts +10 -0
  267. package/dist/internal/document-node-walk.d.ts.map +1 -0
  268. package/dist/internal/document-node-walk.js +36 -0
  269. package/dist/internal/document-node-walk.js.map +1 -0
  270. package/dist/internal/stable-json.d.ts +3 -0
  271. package/dist/internal/stable-json.d.ts.map +1 -0
  272. package/dist/internal/stable-json.js +17 -0
  273. package/dist/internal/stable-json.js.map +1 -0
  274. package/dist/ir/document-derived-views.d.ts +4 -0
  275. package/dist/ir/document-derived-views.d.ts.map +1 -0
  276. package/dist/ir/document-derived-views.js +27 -0
  277. package/dist/ir/document-derived-views.js.map +1 -0
  278. package/dist/ir/document-link-reference-views.d.ts +3 -0
  279. package/dist/ir/document-link-reference-views.d.ts.map +1 -0
  280. package/dist/ir/document-link-reference-views.js +150 -0
  281. package/dist/ir/document-link-reference-views.js.map +1 -0
  282. package/dist/ir/document-link-views.d.ts +3 -0
  283. package/dist/ir/document-link-views.d.ts.map +1 -0
  284. package/dist/ir/document-link-views.js +23 -0
  285. package/dist/ir/document-link-views.js.map +1 -0
  286. package/dist/ir/document-list-views.d.ts +3 -0
  287. package/dist/ir/document-list-views.d.ts.map +1 -0
  288. package/dist/ir/document-list-views.js +39 -0
  289. package/dist/ir/document-list-views.js.map +1 -0
  290. package/dist/ir/document-sections.d.ts +3 -0
  291. package/dist/ir/document-sections.d.ts.map +1 -0
  292. package/dist/ir/document-sections.js +55 -0
  293. package/dist/ir/document-sections.js.map +1 -0
  294. package/dist/ir/document-table-views.d.ts +3 -0
  295. package/dist/ir/document-table-views.d.ts.map +1 -0
  296. package/dist/ir/document-table-views.js +31 -0
  297. package/dist/ir/document-table-views.js.map +1 -0
  298. package/dist/ir/document-targets.d.ts +10 -0
  299. package/dist/ir/document-targets.d.ts.map +1 -0
  300. package/dist/ir/document-targets.js +44 -0
  301. package/dist/ir/document-targets.js.map +1 -0
  302. package/dist/ir/document-text-spans.d.ts +3 -0
  303. package/dist/ir/document-text-spans.d.ts.map +1 -0
  304. package/dist/ir/document-text-spans.js +18 -0
  305. package/dist/ir/document-text-spans.js.map +1 -0
  306. package/dist/ir/document.d.ts +2 -3
  307. package/dist/ir/document.d.ts.map +1 -1
  308. package/dist/ir/document.js +12 -8
  309. package/dist/ir/document.js.map +1 -1
  310. package/dist/ir/index.d.ts +1 -0
  311. package/dist/ir/index.d.ts.map +1 -1
  312. package/dist/ir/normalization-input.d.ts +12 -0
  313. package/dist/ir/normalization-input.d.ts.map +1 -0
  314. package/dist/ir/normalization-input.js +2 -0
  315. package/dist/ir/normalization-input.js.map +1 -0
  316. package/dist/ir/source-ranges.d.ts +8 -0
  317. package/dist/ir/source-ranges.d.ts.map +1 -0
  318. package/dist/ir/source-ranges.js +21 -0
  319. package/dist/ir/source-ranges.js.map +1 -0
  320. package/dist/rules/code-fence-languages.d.ts.map +1 -1
  321. package/dist/rules/code-fence-languages.js +4 -6
  322. package/dist/rules/code-fence-languages.js.map +1 -1
  323. package/dist/rules/document-query.d.ts +0 -2
  324. package/dist/rules/document-query.d.ts.map +1 -1
  325. package/dist/rules/document-query.js +1 -17
  326. package/dist/rules/document-query.js.map +1 -1
  327. package/dist/rules/index.d.ts +2 -6
  328. package/dist/rules/index.d.ts.map +1 -1
  329. package/dist/rules/index.js +3 -37
  330. package/dist/rules/index.js.map +1 -1
  331. package/dist/rules/links-allowed-schemes.d.ts.map +1 -1
  332. package/dist/rules/links-allowed-schemes.js +3 -2
  333. package/dist/rules/links-allowed-schemes.js.map +1 -1
  334. package/dist/rules/registry.d.ts +12 -0
  335. package/dist/rules/registry.d.ts.map +1 -0
  336. package/dist/rules/registry.js +61 -0
  337. package/dist/rules/registry.js.map +1 -0
  338. package/docs/contracts/api.md +661 -0
  339. package/docs/contracts/declarative-validation.md +559 -0
  340. package/docs/contracts/frontmatter.md +122 -0
  341. package/fixtures/declarative-validation/examples/operational-spec/fail.md +32 -0
  342. package/fixtures/declarative-validation/examples/operational-spec/pass.md +34 -0
  343. package/fixtures/declarative-validation/examples/operational-spec/profile.yaml +131 -0
  344. package/fixtures/declarative-validation/examples/release-checklist/fail.md +22 -0
  345. package/fixtures/declarative-validation/examples/release-checklist/pass.md +22 -0
  346. package/fixtures/declarative-validation/examples/release-checklist/profile.yaml +96 -0
  347. package/fixtures/declarative-validation/examples/requirements-traceability/fail.md +27 -0
  348. package/fixtures/declarative-validation/examples/requirements-traceability/pass.md +27 -0
  349. package/fixtures/declarative-validation/examples/requirements-traceability/profile.yaml +119 -0
  350. package/package.json +37 -4
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Operational Spec Example
3
+ status: ready
4
+ ---
5
+
6
+ # Objective
7
+
8
+ Mission control.
9
+
10
+ # Context / Constraints
11
+
12
+ The example stays generic. It validates Markdown headings, tables, IDs, list
13
+ content, literal text, and links without attaching domain meaning to the core
14
+ engine.
15
+
16
+ # Execution Plan
17
+
18
+ - MUST Validate profile fixtures locally.
19
+ - Record evidence before requesting review.
20
+ - Keep the checks deterministic and local-only.
21
+
22
+ # Risk Register
23
+
24
+ | ID | Mitigation | Status |
25
+ | --- | --- | --- |
26
+ | OPS-RISK-1 | Keep examples structural. | tracked |
27
+ | OPS-RISK-2 | Keep commands local. | closed |
28
+
29
+ # Handoff Links
30
+
31
+ The [handoff packet](./handoff-packet.md) records follow-up review notes for the
32
+ next operator.
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Operational Spec Example
3
+ owner: platform-team
4
+ status: ready
5
+ ---
6
+
7
+ # Objective
8
+
9
+ Mission control uses this structural profile to confirm a small operating spec
10
+ has the required sections, handoff links, and risk tracking details.
11
+
12
+ # Context / Constraints
13
+
14
+ The example stays generic. It validates Markdown headings, tables, IDs, list
15
+ content, literal text, and links without attaching domain meaning to the core
16
+ engine.
17
+
18
+ # Execution Plan
19
+
20
+ - MUST Validate profile fixtures locally.
21
+ - MUST Record evidence before requesting review.
22
+ - Keep the checks deterministic and local-only.
23
+
24
+ # Risk Register
25
+
26
+ | ID | Mitigation | Status |
27
+ | --- | --- | --- |
28
+ | OPS-RISK-1 | Keep examples structural. | tracked |
29
+ | OPS-RISK-2 | Keep commands local. | closed |
30
+
31
+ # Handoff Links
32
+
33
+ The [handoff packet](./handoff-packet.md) records follow-up review notes for the
34
+ next operator.
@@ -0,0 +1,131 @@
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.heading.text
45
+ select:
46
+ target: heading
47
+ text: Risk Register
48
+ assert:
49
+ text:
50
+ contains: "Risk Register"
51
+
52
+ - id: risk.table.columns
53
+ select:
54
+ target: table
55
+ section: Risk Register
56
+ header:
57
+ - ID
58
+ - Mitigation
59
+ - Status
60
+ assert:
61
+ tableColumnsRequired:
62
+ columns:
63
+ - ID
64
+ - Mitigation
65
+ - Status
66
+
67
+ - id: risk.ids.unique
68
+ select:
69
+ target: tableCell
70
+ section: Risk Register
71
+ tableHeader:
72
+ - ID
73
+ - Mitigation
74
+ - Status
75
+ column: ID
76
+ assert:
77
+ ids:
78
+ prefix: OPS-RISK
79
+ unique: true
80
+
81
+ - id: tracked.risk.row
82
+ select:
83
+ target: tableRow
84
+ section: Risk Register
85
+ tableHeader:
86
+ - ID
87
+ - Mitigation
88
+ - Status
89
+ where:
90
+ column: Status
91
+ equals: tracked
92
+ assert:
93
+ text:
94
+ contains: OPS-RISK-1
95
+
96
+ - id: execution.must.count
97
+ select:
98
+ target: section
99
+ title: Execution Plan
100
+ assert:
101
+ textOccurrenceCount:
102
+ text: MUST
103
+ count: 2
104
+
105
+ - id: execution.list
106
+ select:
107
+ target: list
108
+ section: Execution Plan
109
+ ordered: false
110
+ assert:
111
+ text:
112
+ contains: "Validate profile"
113
+
114
+ - id: handoff.paragraph
115
+ select:
116
+ target: textSpan
117
+ section: Handoff Links
118
+ nodeType: paragraph
119
+ textIncludes: "handoff packet"
120
+ assert:
121
+ text:
122
+ contains: "follow-up"
123
+
124
+ - id: handoff.link
125
+ select:
126
+ target: link
127
+ section: Handoff Links
128
+ text: "handoff packet"
129
+ url: "./handoff-packet.md"
130
+ assert:
131
+ exists: true
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Release Checklist Example
3
+ release: 1.0.0
4
+ owner: release-team
5
+ ---
6
+
7
+ # Release Checklist
8
+
9
+ - Verify package metadata.
10
+ - Use manual bypass for the dry run.
11
+ - Record release evidence.
12
+
13
+ # Gate Table
14
+
15
+ | ID | Gate | Status |
16
+ | --- | --- | --- |
17
+ | REL-GATE-1 | Contract docs | blocked |
18
+ | REL-GATE-1 | Boundary audit | ready |
19
+
20
+ # Links
21
+
22
+ Publish review uses the [release notes](./release-notes.md) after all gates pass.
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Release Checklist Example
3
+ release: 1.0.0
4
+ owner: release-team
5
+ ---
6
+
7
+ # Release Checklist
8
+
9
+ - Verify package metadata.
10
+ - Verify package dry run.
11
+ - Record release evidence.
12
+
13
+ # Gate Table
14
+
15
+ | ID | Gate | Status |
16
+ | --- | --- | --- |
17
+ | REL-GATE-1 | Contract docs | ready |
18
+ | REL-GATE-2 | Boundary audit | ready |
19
+
20
+ # Links
21
+
22
+ Publish review uses the [release notes](./release-notes.md) after all gates pass.
@@ -0,0 +1,96 @@
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
+ - release
12
+ - owner
13
+
14
+ - id: sections.required
15
+ select:
16
+ target: document
17
+ assert:
18
+ sectionsRequired:
19
+ order: strict
20
+ headings:
21
+ - Release Checklist
22
+ - Gate Table
23
+ - Links
24
+
25
+ - id: checklist.list
26
+ select:
27
+ target: list
28
+ section: Release Checklist
29
+ ordered: false
30
+ assert:
31
+ text:
32
+ contains: "Verify package"
33
+ excludes:
34
+ - "manual bypass"
35
+
36
+ - id: gate.table.columns
37
+ select:
38
+ target: table
39
+ section: Gate Table
40
+ header:
41
+ - ID
42
+ - Gate
43
+ - Status
44
+ assert:
45
+ tableColumnsRequired:
46
+ columns:
47
+ - ID
48
+ - Gate
49
+ - Status
50
+
51
+ - id: gate.ids.unique
52
+ select:
53
+ target: tableCell
54
+ section: Gate Table
55
+ column: ID
56
+ assert:
57
+ ids:
58
+ prefix: REL-GATE
59
+ unique: true
60
+
61
+ - id: ready.gate.row
62
+ select:
63
+ target: tableRow
64
+ section: Gate Table
65
+ tableHeader:
66
+ - ID
67
+ - Gate
68
+ - Status
69
+ where:
70
+ column: Gate
71
+ equals: "Contract docs"
72
+ assert:
73
+ text:
74
+ contains: ready
75
+
76
+ - id: status.ready.count
77
+ select:
78
+ target: tableCell
79
+ section: Gate Table
80
+ column: Status
81
+ rowWhere:
82
+ column: ID
83
+ equals: REL-GATE-1
84
+ assert:
85
+ textOccurrenceCount:
86
+ text: ready
87
+ count: 1
88
+
89
+ - id: release.link
90
+ select:
91
+ target: link
92
+ section: Links
93
+ text: "release notes"
94
+ url: "./release-notes.md"
95
+ assert:
96
+ exists: true
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Requirements Traceability Example
3
+ owner: quality-team
4
+ status: ready
5
+ ---
6
+
7
+ # Requirements
8
+
9
+ | ID | Requirement statement | Source |
10
+ | --- | --- | --- |
11
+ | REQ-1 | The package shall parse one Markdown file. | CLI |
12
+ | REQ-2 | The package shall validate a configured profile. | API |
13
+ | REQ-3 | The package shall emit deterministic diagnostics. | Evidence |
14
+
15
+ # Evidence Matrix
16
+
17
+ | ID | Requirement | Note |
18
+ | --- | --- | --- |
19
+ | EVD-1 | REQ-1 | CLI parse fixture |
20
+ | EVD-2 | REQ-2 | Profile validation fixture |
21
+ | EVD-3 | REQ-3 | Diagnostic assertion fixture |
22
+
23
+ # Traceability
24
+
25
+ REQ-1 is covered by EVD-1.
26
+ REQ-2 is covered by EVD-2.
27
+ EVD-3 has evidence, but the final requirement reference is missing.
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Requirements Traceability Example
3
+ owner: quality-team
4
+ status: ready
5
+ ---
6
+
7
+ # Requirements
8
+
9
+ | ID | Requirement statement | Source |
10
+ | --- | --- | --- |
11
+ | REQ-1 | The package shall parse one Markdown file. | CLI |
12
+ | REQ-2 | The package shall validate a configured profile. | API |
13
+ | REQ-3 | The package shall emit deterministic diagnostics. | Evidence |
14
+
15
+ # Evidence Matrix
16
+
17
+ | ID | Requirement | Evidence |
18
+ | --- | --- | --- |
19
+ | EVD-1 | REQ-1 | CLI parse fixture |
20
+ | EVD-2 | REQ-2 | Profile validation fixture |
21
+ | EVD-3 | REQ-3 | Diagnostic assertion fixture |
22
+
23
+ # Traceability
24
+
25
+ REQ-1 is covered by EVD-1.
26
+ REQ-2 is covered by EVD-2.
27
+ REQ-3 is covered by EVD-3.
@@ -0,0 +1,119 @@
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
+ - Requirements
22
+ - Evidence Matrix
23
+ - Traceability
24
+
25
+ - id: requirements.table.columns
26
+ select:
27
+ target: table
28
+ section: Requirements
29
+ header:
30
+ - ID
31
+ - Requirement statement
32
+ - Source
33
+ assert:
34
+ tableColumnsRequired:
35
+ columns:
36
+ - ID
37
+ - Requirement statement
38
+ - Source
39
+
40
+ - id: evidence.table.columns
41
+ select:
42
+ target: table
43
+ section: Evidence Matrix
44
+ header:
45
+ - ID
46
+ - Requirement
47
+ assert:
48
+ tableColumnsRequired:
49
+ columns:
50
+ - ID
51
+ - Requirement
52
+ - Evidence
53
+
54
+ - id: requirement.ids.unique
55
+ select:
56
+ target: tableCell
57
+ section: Requirements
58
+ column: ID
59
+ assert:
60
+ ids:
61
+ prefix: REQ
62
+ unique: true
63
+
64
+ - id: evidence.ids.unique
65
+ select:
66
+ target: tableCell
67
+ section: Evidence Matrix
68
+ column: ID
69
+ assert:
70
+ ids:
71
+ prefix: EVD
72
+ unique: true
73
+
74
+ - id: requirement.text
75
+ select:
76
+ target: tableCell
77
+ section: Requirements
78
+ column: Requirement statement
79
+ rowWhere:
80
+ column: ID
81
+ equals: REQ-2
82
+ assert:
83
+ text:
84
+ contains: shall
85
+ excludes:
86
+ - TBD
87
+
88
+ - id: requirements.shall.count
89
+ select:
90
+ target: section
91
+ title: Requirements
92
+ assert:
93
+ textOccurrenceCount:
94
+ text: shall
95
+ count: 3
96
+
97
+ - id: traceability.requirements
98
+ select:
99
+ target: document
100
+ assert:
101
+ references:
102
+ idsFrom:
103
+ section: Requirements
104
+ column: ID
105
+ prefix: REQ
106
+ mustAppearIn:
107
+ - Traceability
108
+
109
+ - id: traceability.evidence
110
+ select:
111
+ target: document
112
+ assert:
113
+ references:
114
+ idsFrom:
115
+ section: Evidence Matrix
116
+ column: ID
117
+ prefix: EVD
118
+ mustAppearIn:
119
+ - Traceability
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@jasonbelmonti/markdown-engine",
3
- "version": "0.1.0",
3
+ "version": "2.0.0",
4
4
  "description": "Deterministic Markdown parsing and validation engine package.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
+ "bin": {
8
+ "markdown-engine": "dist/cli/index.js"
9
+ },
7
10
  "repository": {
8
11
  "type": "git",
9
12
  "url": "git+https://github.com/jasonbelmonti/markdown-engine.git"
@@ -11,7 +14,7 @@
11
14
  "bugs": {
12
15
  "url": "https://github.com/jasonbelmonti/markdown-engine/issues"
13
16
  },
14
- "homepage": "https://github.com/jasonbelmonti/markdown-engine#readme",
17
+ "homepage": "https://jasonbelmonti.github.io/markdown-engine/",
15
18
  "keywords": [
16
19
  "markdown",
17
20
  "gfm",
@@ -28,6 +31,8 @@
28
31
  "types": "./dist/index.d.ts",
29
32
  "files": [
30
33
  "dist",
34
+ "docs/contracts",
35
+ "fixtures/declarative-validation/examples",
31
36
  "CHANGELOG.md",
32
37
  "SECURITY.md"
33
38
  ],
@@ -39,10 +44,38 @@
39
44
  "build": "npm run clean && tsc -p tsconfig.json",
40
45
  "prepack": "npm run release:verify",
41
46
  "prepublishOnly": "npm run release:verify",
42
- "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",
47
+ "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 && node scripts/prove-repeatability.mjs --runs 10 && npm run release:check-clean",
43
48
  "release:check-clean": "git diff --check HEAD -- && git diff --exit-code HEAD --",
49
+ "snapshots:update:parser": "npm run build && vitest run tests/parser-fixtures.test.ts -u \"--exclude=.worktrees/**\"",
50
+ "snapshots:update:rules": "npm run build && vitest run tests/rules.test.ts -u \"--exclude=.worktrees/**\"",
51
+ "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/**\"",
52
+ "snapshots:update:serialization": "npm run build && vitest run tests/serialization-repeatability.test.ts tests/boundary-inspection.test.ts -u \"--exclude=.worktrees/**\"",
53
+ "test:rich-ir:proving": "npm run build && vitest run tests/rich-ir-proving.test.ts \"--exclude=.worktrees/**\"",
54
+ "test:rich-ir:contract": "npm run build && tsc -p tsconfig.document-contract.json && vitest run tests/document-contract.test.ts \"--exclude=.worktrees/**\"",
55
+ "test:rich-ir:targets": "npm run build && vitest run tests/rich-ir-targets.test.ts \"--exclude=.worktrees/**\"",
56
+ "test:rich-ir:queries": "npm run build && vitest run tests/rich-ir-queries.test.ts tests/rich-ir-link-references.test.ts \"--exclude=.worktrees/**\"",
57
+ "test:rich-ir:annotations": "npm run build && vitest run tests/rich-ir-annotations.test.ts \"--exclude=.worktrees/**\"",
58
+ "test:rich-ir:compat": "npm run build && vitest run tests/rich-ir-compat.test.ts \"--exclude=.worktrees/**\"",
59
+ "test:rich-ir:repeatability": "npm run build && vitest run tests/rich-ir-repeatability.test.ts \"--exclude=.worktrees/**\"",
60
+ "test:rich-ir:downstream": "npm run build && vitest run tests/rich-ir-downstream.test.ts \"--exclude=.worktrees/**\"",
61
+ "audit:rich-ir-boundary": "node scripts/check-boundaries.mjs",
62
+ "docs:rich-ir-contract": "node scripts/check-rich-ir-contract-docs.mjs",
63
+ "test:validation:proving": "npm run build && vitest run tests/declarative-validation-proving.test.ts \"--exclude=.worktrees/**\"",
64
+ "test:validation:contract": "npm run build && tsc -p tsconfig.declarative-validation-contract.json && vitest run tests/declarative-validation-contract.test.ts \"--exclude=.worktrees/**\"",
65
+ "test:validation:profile": "npm run build && vitest run tests/declarative-validation-profile.test.ts \"--exclude=.worktrees/**\"",
66
+ "test:validation:compiler": "npm run build && vitest run tests/declarative-validation-compiler.test.ts \"--exclude=.worktrees/**\"",
67
+ "test:validation:selectors": "npm run build && vitest run tests/declarative-validation-selectors.test.ts \"--exclude=.worktrees/**\"",
68
+ "test:validation:assertions": "npm run build && vitest run tests/declarative-validation-assertions.test.ts \"--exclude=.worktrees/**\"",
69
+ "test:validation:diagnostics": "npm run build && vitest run tests/declarative-validation-diagnostics.test.ts \"--exclude=.worktrees/**\"",
70
+ "test:validation:cli": "npm run build && vitest run tests/declarative-validation-cli.test.ts \"--exclude=.worktrees/**\"",
71
+ "test:validation:examples": "npm run build && vitest run tests/declarative-validation-examples.test.ts \"--exclude=.worktrees/**\"",
72
+ "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",
73
+ "test:validation:downstream": "npm run build && vitest run tests/declarative-validation-downstream.test.ts \"--exclude=.worktrees/**\"",
74
+ "audit:declarative-validation-boundary": "node scripts/check-declarative-validation-boundary.mjs",
75
+ "docs:declarative-validation-contract": "node scripts/check-declarative-validation-contract-docs.mjs",
44
76
  "typecheck": "tsc -p tsconfig.json --noEmit",
45
- "test": "npm run build && vitest run \"--exclude=.worktrees/**\""
77
+ "test": "npm run build && vitest run \"--exclude=.worktrees/**\"",
78
+ "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/**\""
46
79
  },
47
80
  "engines": {
48
81
  "node": "^20.19.0 || >=22.12.0"