@agentshouse/mdmodel 0.1.0-alpha.9 → 0.1.0-c5a71fe539a49

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 (379) hide show
  1. package/API.md +303 -0
  2. package/README.md +34 -189
  3. package/dist/blocks.d.ts +11 -0
  4. package/dist/blocks.d.ts.map +1 -0
  5. package/dist/blocks.js +62 -0
  6. package/dist/condition.d.ts +137 -0
  7. package/dist/condition.d.ts.map +1 -0
  8. package/dist/condition.js +394 -0
  9. package/dist/definition.d.ts +46 -27
  10. package/dist/definition.d.ts.map +1 -1
  11. package/dist/definition.js +485 -152
  12. package/dist/divide.d.ts +3 -0
  13. package/dist/divide.d.ts.map +1 -0
  14. package/dist/divide.js +310 -0
  15. package/dist/document.d.ts +12 -1
  16. package/dist/document.d.ts.map +1 -1
  17. package/dist/document.js +176 -124
  18. package/dist/fields.d.ts +4 -0
  19. package/dist/fields.d.ts.map +1 -0
  20. package/dist/fields.js +3 -0
  21. package/dist/index.d.ts +11 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +8 -4
  24. package/dist/links.d.ts +1 -0
  25. package/dist/links.d.ts.map +1 -1
  26. package/dist/links.js +618 -224
  27. package/dist/paths.d.ts +5 -3
  28. package/dist/paths.d.ts.map +1 -1
  29. package/dist/paths.js +47 -37
  30. package/dist/profile.js +1 -3
  31. package/dist/project.d.ts +19 -1
  32. package/dist/project.d.ts.map +1 -1
  33. package/dist/project.js +77 -94
  34. package/dist/references.d.ts +4 -0
  35. package/dist/references.d.ts.map +1 -0
  36. package/dist/references.js +25 -0
  37. package/dist/refuse.d.ts.map +1 -1
  38. package/dist/refuse.js +2 -10
  39. package/dist/schema.d.ts +7 -5
  40. package/dist/schema.d.ts.map +1 -1
  41. package/dist/schema.js +156 -41
  42. package/dist/sections.d.ts +2 -1
  43. package/dist/sections.d.ts.map +1 -1
  44. package/dist/sections.js +44 -66
  45. package/dist/types.d.ts +40 -2
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +1 -3
  48. package/dist/validate.d.ts +3 -2
  49. package/dist/validate.d.ts.map +1 -1
  50. package/dist/validate.js +129 -142
  51. package/dist/version.d.ts +1 -1
  52. package/dist/version.d.ts.map +1 -1
  53. package/dist/version.js +1 -3
  54. package/dist/yaml.d.ts +2 -0
  55. package/dist/yaml.d.ts.map +1 -1
  56. package/dist/yaml.js +262 -192
  57. package/fixtures/README.md +91 -56
  58. package/fixtures/cases/absent-optional-field/library/companies/acme.md +4 -0
  59. package/fixtures/cases/absent-optional-field/library/deals/lead.md +6 -0
  60. package/fixtures/cases/absent-optional-field/schema.yaml +56 -0
  61. package/fixtures/cases/attachment-reference-any-file/context.json +1 -0
  62. package/fixtures/cases/attachment-reference-any-file/expected.json +1 -0
  63. package/fixtures/cases/attachment-reference-any-file/library/companies/acme.md +4 -0
  64. package/fixtures/cases/attachment-reference-any-file/library/deals/renewal.md +15 -0
  65. package/fixtures/cases/attachment-reference-any-file/library/places/depot.md +4 -0
  66. package/fixtures/cases/attachment-reference-any-file/library/products/seats.md +4 -0
  67. package/fixtures/cases/attachment-reference-any-file/library/products/support.md +4 -0
  68. package/fixtures/cases/attachment-reference-any-file/schema.yaml +32 -0
  69. package/fixtures/cases/attachment-reference-dangles/context.json +1 -0
  70. package/fixtures/cases/attachment-reference-dangles/expected.json +1 -0
  71. package/fixtures/cases/attachment-reference-dangles/library/companies/acme.md +4 -0
  72. package/fixtures/cases/attachment-reference-dangles/library/deals/renewal.md +15 -0
  73. package/fixtures/cases/attachment-reference-dangles/library/places/depot.md +4 -0
  74. package/fixtures/cases/attachment-reference-dangles/library/products/seats.md +4 -0
  75. package/fixtures/cases/attachment-reference-dangles/library/products/support.md +4 -0
  76. package/fixtures/cases/attachment-reference-dangles/schema.yaml +32 -0
  77. package/fixtures/cases/attachment-reference-outside/context.json +1 -0
  78. package/fixtures/cases/attachment-reference-outside/expected.json +6 -0
  79. package/fixtures/cases/attachment-reference-outside/library/companies/acme.md +4 -0
  80. package/fixtures/cases/attachment-reference-outside/library/deals/renewal.md +15 -0
  81. package/fixtures/cases/attachment-reference-outside/library/places/depot.md +4 -0
  82. package/fixtures/cases/attachment-reference-outside/library/products/seats.md +4 -0
  83. package/fixtures/cases/attachment-reference-outside/library/products/support.md +4 -0
  84. package/fixtures/cases/attachment-reference-outside/schema.yaml +32 -0
  85. package/fixtures/cases/binary-any-reference/expected.json +1 -2
  86. package/fixtures/cases/binary-any-reference/schema.yaml +4 -0
  87. package/fixtures/cases/binary-document-collision/expected.json +1 -2
  88. package/fixtures/cases/binary-document-collision/schema.yaml +1 -0
  89. package/fixtures/cases/binary-link-outside-collection/expected.json +1 -2
  90. package/fixtures/cases/binary-link-outside-collection/schema.yaml +1 -0
  91. package/fixtures/cases/binary-prototype-reference/expected.json +1 -2
  92. package/fixtures/cases/binary-prototype-reference/schema.yaml +4 -0
  93. package/fixtures/cases/binary-typed-reference/expected.json +1 -2
  94. package/fixtures/cases/binary-typed-reference/schema.yaml +5 -0
  95. package/fixtures/cases/boolean-field/context.json +1 -0
  96. package/fixtures/cases/boolean-field/expected.json +6 -0
  97. package/fixtures/cases/boolean-field/library/companies/acme.md +4 -0
  98. package/fixtures/cases/boolean-field/library/deals/renewal.md +31 -0
  99. package/fixtures/cases/boolean-field/schema.yaml +56 -0
  100. package/fixtures/cases/bracketed-link-definition/schema.yaml +6 -0
  101. package/fixtures/cases/closed-nested-object/context.json +1 -0
  102. package/fixtures/cases/closed-nested-object/expected.json +6 -0
  103. package/fixtures/cases/closed-nested-object/library/companies/acme.md +4 -0
  104. package/fixtures/cases/closed-nested-object/library/deals/renewal.md +32 -0
  105. package/fixtures/cases/closed-nested-object/schema.yaml +56 -0
  106. package/fixtures/cases/composed-root-reference/context.json +1 -0
  107. package/fixtures/cases/composed-root-reference/expected.json +6 -0
  108. package/fixtures/cases/composed-root-reference/library/a.md +5 -0
  109. package/fixtures/cases/composed-root-reference/schema.yaml +13 -0
  110. package/fixtures/cases/date-time-format/context.json +1 -0
  111. package/fixtures/cases/date-time-format/expected.json +6 -0
  112. package/fixtures/cases/date-time-format/library/companies/acme.md +4 -0
  113. package/fixtures/cases/date-time-format/library/deals/renewal.md +31 -0
  114. package/fixtures/cases/date-time-format/schema.yaml +56 -0
  115. package/fixtures/cases/declared-binary-links/schema.yaml +1 -0
  116. package/fixtures/cases/default-unfilled/context.json +1 -0
  117. package/fixtures/cases/default-unfilled/expected.json +6 -0
  118. package/fixtures/cases/default-unfilled/library/companies/acme.md +4 -0
  119. package/fixtures/cases/default-unfilled/library/deals/renewal.md +29 -0
  120. package/fixtures/cases/default-unfilled/schema.yaml +56 -0
  121. package/fixtures/cases/defs-pattern/context.json +1 -0
  122. package/fixtures/cases/defs-pattern/expected.json +6 -0
  123. package/fixtures/cases/defs-pattern/library/companies/acme.md +4 -0
  124. package/fixtures/cases/defs-pattern/library/deals/renewal.md +31 -0
  125. package/fixtures/cases/defs-pattern/schema.yaml +56 -0
  126. package/fixtures/cases/dependent-rule/context.json +1 -0
  127. package/fixtures/cases/dependent-rule/expected.json +6 -0
  128. package/fixtures/cases/dependent-rule/library/companies/acme.md +4 -0
  129. package/fixtures/cases/dependent-rule/library/deals/renewal.md +30 -0
  130. package/fixtures/cases/dependent-rule/schema.yaml +56 -0
  131. package/fixtures/cases/duplicate-link-definition/schema.yaml +6 -0
  132. package/fixtures/cases/email-format/context.json +1 -0
  133. package/fixtures/cases/email-format/expected.json +6 -0
  134. package/fixtures/cases/email-format/library/companies/acme.md +4 -0
  135. package/fixtures/cases/email-format/library/deals/renewal.md +31 -0
  136. package/fixtures/cases/email-format/schema.yaml +56 -0
  137. package/fixtures/cases/fenced-link-definition/schema.yaml +6 -0
  138. package/fixtures/cases/field-enum/expected.json +2 -3
  139. package/fixtures/cases/field-enum/schema.yaml +7 -0
  140. package/fixtures/cases/frontmatter-schema/context.json +1 -0
  141. package/fixtures/cases/frontmatter-schema/expected.json +5 -0
  142. package/fixtures/cases/frontmatter-schema/schema.yaml +5 -0
  143. package/fixtures/cases/integer-field/context.json +1 -0
  144. package/fixtures/cases/integer-field/expected.json +6 -0
  145. package/fixtures/cases/integer-field/library/companies/acme.md +4 -0
  146. package/fixtures/cases/integer-field/library/deals/renewal.md +31 -0
  147. package/fixtures/cases/integer-field/schema.yaml +56 -0
  148. package/fixtures/cases/interrupted-link-definition/schema.yaml +1 -0
  149. package/fixtures/cases/json-schema-constructs/context.json +1 -0
  150. package/fixtures/cases/json-schema-constructs/expected.json +1 -0
  151. package/fixtures/cases/json-schema-constructs/library/companies/acme.md +4 -0
  152. package/fixtures/cases/json-schema-constructs/library/deals/renewal.md +31 -0
  153. package/fixtures/cases/json-schema-constructs/schema.yaml +56 -0
  154. package/fixtures/cases/list-of-objects-closed/context.json +1 -0
  155. package/fixtures/cases/list-of-objects-closed/expected.json +6 -0
  156. package/fixtures/cases/list-of-objects-closed/library/companies/acme.md +4 -0
  157. package/fixtures/cases/list-of-objects-closed/library/deals/renewal.md +32 -0
  158. package/fixtures/cases/list-of-objects-closed/schema.yaml +56 -0
  159. package/fixtures/cases/list-of-objects-item/context.json +1 -0
  160. package/fixtures/cases/list-of-objects-item/expected.json +6 -0
  161. package/fixtures/cases/list-of-objects-item/library/companies/acme.md +4 -0
  162. package/fixtures/cases/list-of-objects-item/library/deals/renewal.md +31 -0
  163. package/fixtures/cases/list-of-objects-item/schema.yaml +56 -0
  164. package/fixtures/cases/list-of-objects-reference/context.json +1 -0
  165. package/fixtures/cases/list-of-objects-reference/expected.json +6 -0
  166. package/fixtures/cases/list-of-objects-reference/library/companies/acme.md +4 -0
  167. package/fixtures/cases/list-of-objects-reference/library/deals/renewal.md +14 -0
  168. package/fixtures/cases/list-of-objects-reference/library/places/depot.md +4 -0
  169. package/fixtures/cases/list-of-objects-reference/library/products/seats.md +4 -0
  170. package/fixtures/cases/list-of-objects-reference/library/products/support.md +4 -0
  171. package/fixtures/cases/list-of-objects-reference/schema.yaml +32 -0
  172. package/fixtures/cases/list-size/context.json +1 -0
  173. package/fixtures/cases/list-size/expected.json +6 -0
  174. package/fixtures/cases/list-size/library/companies/acme.md +4 -0
  175. package/fixtures/cases/list-size/library/deals/renewal.md +31 -0
  176. package/fixtures/cases/list-size/schema.yaml +56 -0
  177. package/fixtures/cases/long-fence-link-definition/schema.yaml +1 -0
  178. package/fixtures/cases/malformed-definition/expected.json +2 -4
  179. package/fixtures/cases/malformed-definition/schema.yaml +3 -0
  180. package/fixtures/cases/member-document/context.json +1 -0
  181. package/fixtures/cases/member-document/expected.json +1 -0
  182. package/fixtures/cases/member-document/library/people/ana.md +5 -0
  183. package/fixtures/cases/member-document/schema.yaml +5 -0
  184. package/fixtures/cases/missing-binary-image/expected.json +1 -2
  185. package/fixtures/cases/missing-binary-image/schema.yaml +1 -0
  186. package/fixtures/cases/missing-binary-link/expected.json +1 -2
  187. package/fixtures/cases/missing-binary-link/schema.yaml +1 -0
  188. package/fixtures/cases/missing-required-field/expected.json +2 -3
  189. package/fixtures/cases/missing-required-field/schema.yaml +7 -0
  190. package/fixtures/cases/missing-section-item-kind/expected.json +2 -4
  191. package/fixtures/cases/missing-section-item-kind/schema.yaml +6 -0
  192. package/fixtures/cases/misspelled-key/context.json +1 -0
  193. package/fixtures/cases/misspelled-key/expected.json +6 -0
  194. package/fixtures/cases/misspelled-key/library/companies/acme.md +4 -0
  195. package/fixtures/cases/misspelled-key/library/deals/renewal.md +32 -0
  196. package/fixtures/cases/misspelled-key/schema.yaml +56 -0
  197. package/fixtures/cases/nested-defs/context.json +1 -0
  198. package/fixtures/cases/nested-defs/expected.json +6 -0
  199. package/fixtures/cases/nested-defs/library/deal.md +6 -0
  200. package/fixtures/cases/nested-defs/schema.yaml +11 -0
  201. package/fixtures/cases/nested-object-reference/context.json +1 -0
  202. package/fixtures/cases/nested-object-reference/expected.json +6 -0
  203. package/fixtures/cases/nested-object-reference/library/companies/acme.md +4 -0
  204. package/fixtures/cases/nested-object-reference/library/deals/renewal.md +14 -0
  205. package/fixtures/cases/nested-object-reference/library/places/depot.md +4 -0
  206. package/fixtures/cases/nested-object-reference/library/products/seats.md +4 -0
  207. package/fixtures/cases/nested-object-reference/library/products/support.md +4 -0
  208. package/fixtures/cases/nested-object-reference/schema.yaml +32 -0
  209. package/fixtures/cases/nested-reference/context.json +1 -0
  210. package/fixtures/cases/nested-reference/expected.json +1 -0
  211. package/fixtures/cases/nested-reference/library/companies/acme.md +4 -0
  212. package/fixtures/cases/nested-reference/library/deals/renewal.md +15 -0
  213. package/fixtures/cases/nested-reference/library/places/depot.md +4 -0
  214. package/fixtures/cases/nested-reference/library/products/seats.md +4 -0
  215. package/fixtures/cases/nested-reference/library/products/support.md +4 -0
  216. package/fixtures/cases/nested-reference/schema.yaml +32 -0
  217. package/fixtures/cases/nested-required-field/context.json +1 -0
  218. package/fixtures/cases/nested-required-field/expected.json +6 -0
  219. package/fixtures/cases/nested-required-field/library/companies/acme.md +4 -0
  220. package/fixtures/cases/nested-required-field/library/deals/renewal.md +30 -0
  221. package/fixtures/cases/nested-required-field/schema.yaml +56 -0
  222. package/fixtures/cases/null-refused/context.json +1 -0
  223. package/fixtures/cases/null-refused/expected.json +6 -0
  224. package/fixtures/cases/null-refused/library/companies/acme.md +4 -0
  225. package/fixtures/cases/null-refused/library/deals/renewal.md +31 -0
  226. package/fixtures/cases/null-refused/schema.yaml +56 -0
  227. package/fixtures/cases/numeric-range/context.json +1 -0
  228. package/fixtures/cases/numeric-range/expected.json +6 -0
  229. package/fixtures/cases/numeric-range/library/companies/acme.md +4 -0
  230. package/fixtures/cases/numeric-range/library/deals/renewal.md +31 -0
  231. package/fixtures/cases/numeric-range/schema.yaml +56 -0
  232. package/fixtures/cases/one-of-variant/context.json +1 -0
  233. package/fixtures/cases/one-of-variant/expected.json +6 -0
  234. package/fixtures/cases/one-of-variant/library/companies/acme.md +4 -0
  235. package/fixtures/cases/one-of-variant/library/deals/renewal.md +31 -0
  236. package/fixtures/cases/one-of-variant/schema.yaml +56 -0
  237. package/fixtures/cases/open-map-value/context.json +1 -0
  238. package/fixtures/cases/open-map-value/expected.json +6 -0
  239. package/fixtures/cases/open-map-value/library/companies/acme.md +4 -0
  240. package/fixtures/cases/open-map-value/library/deals/renewal.md +31 -0
  241. package/fixtures/cases/open-map-value/schema.yaml +56 -0
  242. package/fixtures/cases/other-room-reference/context.json +1 -0
  243. package/fixtures/cases/other-room-reference/expected.json +6 -0
  244. package/fixtures/cases/other-room-reference/library/companies/acme.md +4 -0
  245. package/fixtures/cases/other-room-reference/library/deals/renewal.md +14 -0
  246. package/fixtures/cases/other-room-reference/library/places/depot.md +4 -0
  247. package/fixtures/cases/other-room-reference/library/products/seats.md +4 -0
  248. package/fixtures/cases/other-room-reference/library/products/support.md +4 -0
  249. package/fixtures/cases/other-room-reference/schema.yaml +32 -0
  250. package/fixtures/cases/paragraph-link-definition/schema.yaml +1 -0
  251. package/fixtures/cases/prototype-field/expected.json +2 -3
  252. package/fixtures/cases/prototype-field/schema.yaml +6 -0
  253. package/fixtures/cases/quoted-link-definition/expected.json +1 -2
  254. package/fixtures/cases/quoted-link-definition/schema.yaml +1 -0
  255. package/fixtures/cases/referenced-missing-file/expected.json +0 -1
  256. package/fixtures/cases/referenced-missing-file/schema.yaml +11 -0
  257. package/fixtures/cases/remote-ref/context.json +1 -0
  258. package/fixtures/cases/remote-ref/expected.json +5 -0
  259. package/fixtures/cases/remote-ref/schema.yaml +3 -0
  260. package/fixtures/cases/second-member-document/context.json +1 -0
  261. package/fixtures/cases/second-member-document/expected.json +5 -0
  262. package/fixtures/cases/second-member-document/schema.yaml +4 -0
  263. package/fixtures/cases/section-item-enum/context.json +1 -0
  264. package/fixtures/cases/section-item-enum/expected.json +6 -0
  265. package/fixtures/cases/section-item-enum/library/task.md +8 -0
  266. package/fixtures/cases/section-item-enum/schema.yaml +3 -0
  267. package/fixtures/cases/section-item-kind/context.json +1 -0
  268. package/fixtures/cases/section-item-kind/expected.json +6 -0
  269. package/fixtures/cases/section-item-kind/library/task.md +8 -0
  270. package/fixtures/cases/section-item-kind/schema.yaml +3 -0
  271. package/fixtures/cases/section-items/context.json +1 -0
  272. package/fixtures/cases/section-items/expected.json +1 -0
  273. package/fixtures/cases/section-items/library/other.md +3 -0
  274. package/fixtures/cases/section-items/library/page.md +42 -0
  275. package/fixtures/cases/section-items/schema.yaml +10 -0
  276. package/fixtures/cases/section-reference-path/context.json +1 -0
  277. package/fixtures/cases/section-reference-path/expected.json +6 -0
  278. package/fixtures/cases/section-reference-path/library/other.md +3 -0
  279. package/fixtures/cases/section-reference-path/library/page.md +7 -0
  280. package/fixtures/cases/section-reference-path/schema.yaml +3 -0
  281. package/fixtures/cases/section-reference-type/context.json +1 -0
  282. package/fixtures/cases/section-reference-type/expected.json +6 -0
  283. package/fixtures/cases/section-reference-type/library/note.md +1 -0
  284. package/fixtures/cases/section-reference-type/library/page.md +7 -0
  285. package/fixtures/cases/section-reference-type/schema.yaml +3 -0
  286. package/fixtures/cases/shortcut-reference-link/context.json +1 -0
  287. package/fixtures/cases/shortcut-reference-link/expected.json +5 -0
  288. package/fixtures/cases/shortcut-reference-link/library/item.md +10 -0
  289. package/fixtures/cases/shortcut-reference-link/schema.yaml +6 -0
  290. package/fixtures/cases/string-length/context.json +1 -0
  291. package/fixtures/cases/string-length/expected.json +6 -0
  292. package/fixtures/cases/string-length/library/companies/acme.md +4 -0
  293. package/fixtures/cases/string-length/library/deals/renewal.md +31 -0
  294. package/fixtures/cases/string-length/schema.yaml +56 -0
  295. package/fixtures/cases/structured-section/expected.json +1 -2
  296. package/fixtures/cases/structured-section/schema.yaml +7 -0
  297. package/fixtures/cases/submission-keys/context.json +1 -0
  298. package/fixtures/cases/submission-keys/expected.json +1 -0
  299. package/fixtures/cases/submission-keys/library/notes/visitor.md +8 -0
  300. package/fixtures/cases/submission-keys/schema.yaml +4 -0
  301. package/fixtures/cases/text-field-kind/context.json +1 -0
  302. package/fixtures/cases/text-field-kind/expected.json +6 -0
  303. package/fixtures/cases/text-field-kind/library/page.md +4 -0
  304. package/fixtures/cases/text-field-kind/schema.yaml +4 -0
  305. package/fixtures/cases/truncated-link-definition/expected.json +1 -2
  306. package/fixtures/cases/truncated-link-definition/schema.yaml +1 -0
  307. package/fixtures/cases/types-folder-content/context.json +1 -0
  308. package/fixtures/cases/types-folder-content/expected.json +1 -0
  309. package/fixtures/cases/types-folder-content/library/types/task.md +4 -0
  310. package/fixtures/cases/types-folder-content/schema.yaml +4 -0
  311. package/fixtures/cases/unclosed-frontmatter/expected.json +1 -2
  312. package/fixtures/cases/undeclared-field/expected.json +2 -3
  313. package/fixtures/cases/undeclared-field/schema.yaml +6 -0
  314. package/fixtures/cases/unevaluated-items-closed/context.json +1 -0
  315. package/fixtures/cases/unevaluated-items-closed/expected.json +6 -0
  316. package/fixtures/cases/unevaluated-items-closed/library/trip.md +6 -0
  317. package/fixtures/cases/unevaluated-items-closed/schema.yaml +10 -0
  318. package/fixtures/cases/unknown-type/context.json +1 -0
  319. package/fixtures/cases/unknown-type/expected.json +6 -0
  320. package/fixtures/cases/unknown-type/library/item.md +3 -0
  321. package/fixtures/cases/unknown-type/schema.yaml +3 -0
  322. package/fixtures/cases/unlisted-reference-type/context.json +1 -0
  323. package/fixtures/cases/unlisted-reference-type/expected.json +5 -0
  324. package/fixtures/cases/unlisted-reference-type/schema.yaml +3 -0
  325. package/fixtures/cases/unresolved-link/expected.json +1 -2
  326. package/fixtures/cases/unresolved-link/schema.yaml +6 -0
  327. package/fixtures/cases/valid-typed-document/schema.yaml +16 -0
  328. package/fixtures/cases/wide-item-fence-link/schema.yaml +1 -0
  329. package/fixtures/division.json +409 -0
  330. package/fixtures/projection.json +90 -21
  331. package/package.json +3 -12
  332. package/dist/definition.js.map +0 -1
  333. package/dist/document.js.map +0 -1
  334. package/dist/index.js.map +0 -1
  335. package/dist/links.js.map +0 -1
  336. package/dist/paths.js.map +0 -1
  337. package/dist/profile.js.map +0 -1
  338. package/dist/project.js.map +0 -1
  339. package/dist/refuse.js.map +0 -1
  340. package/dist/schema.js.map +0 -1
  341. package/dist/sections.js.map +0 -1
  342. package/dist/types.js.map +0 -1
  343. package/dist/validate.js.map +0 -1
  344. package/dist/version.js.map +0 -1
  345. package/dist/yaml.js.map +0 -1
  346. package/fixtures/cases/binary-any-reference/library/types/note.md +0 -5
  347. package/fixtures/cases/binary-document-collision/library/types/note.md +0 -3
  348. package/fixtures/cases/binary-link-outside-collection/library/types/note.md +0 -3
  349. package/fixtures/cases/binary-prototype-reference/library/types/note.md +0 -5
  350. package/fixtures/cases/binary-typed-reference/library/types/note.md +0 -5
  351. package/fixtures/cases/binary-typed-reference/library/types/person.md +0 -3
  352. package/fixtures/cases/bracketed-link-definition/library/types/task.md +0 -7
  353. package/fixtures/cases/declared-binary-links/library/types/note.md +0 -3
  354. package/fixtures/cases/duplicate-link-definition/library/types/task.md +0 -7
  355. package/fixtures/cases/fenced-link-definition/library/types/task.md +0 -7
  356. package/fixtures/cases/field-enum/library/types/task.md +0 -8
  357. package/fixtures/cases/interrupted-link-definition/library/types/note.md +0 -3
  358. package/fixtures/cases/long-fence-link-definition/library/types/note.md +0 -3
  359. package/fixtures/cases/malformed-definition/library/types/task.md +0 -5
  360. package/fixtures/cases/missing-binary-image/library/types/note.md +0 -3
  361. package/fixtures/cases/missing-binary-link/library/types/note.md +0 -3
  362. package/fixtures/cases/missing-required-field/library/types/task.md +0 -8
  363. package/fixtures/cases/missing-section-item-kind/library/types/task.md +0 -7
  364. package/fixtures/cases/paragraph-link-definition/library/types/note.md +0 -3
  365. package/fixtures/cases/prd-definition/library/types/task.md +0 -16
  366. package/fixtures/cases/prototype-field/library/types/task.md +0 -7
  367. package/fixtures/cases/quoted-link-definition/library/types/note.md +0 -3
  368. package/fixtures/cases/referenced-missing-file/library/types/person.md +0 -5
  369. package/fixtures/cases/referenced-missing-file/library/types/task.md +0 -8
  370. package/fixtures/cases/structured-section/library/types/task.md +0 -8
  371. package/fixtures/cases/truncated-link-definition/library/types/note.md +0 -3
  372. package/fixtures/cases/undeclared-field/library/types/task.md +0 -7
  373. package/fixtures/cases/unresolved-link/library/types/task.md +0 -7
  374. package/fixtures/cases/valid-typed-document/library/types/person.md +0 -5
  375. package/fixtures/cases/valid-typed-document/library/types/task.md +0 -13
  376. package/fixtures/cases/wide-item-fence-link/library/types/note.md +0 -3
  377. package/markdown-syntax-profile.md +0 -9
  378. /package/fixtures/cases/{prd-definition → absent-optional-field}/context.json +0 -0
  379. /package/fixtures/cases/{prd-definition → absent-optional-field}/expected.json +0 -0
package/dist/document.js CHANGED
@@ -1,13 +1,13 @@
1
+ import { ARRAY_INDEX, pointerSegments } from './definition.js';
1
2
  import { hrefOccurrences } from './links.js';
2
- import { classifyHref, hrefSuffix } from './paths.js';
3
+ import { relative, retarget, SHELL_ROOMS, shellTarget, target } from './paths.js';
4
+ import { references } from './references.js';
3
5
  import { headingSpans, sectionsRecord } from './sections.js';
4
6
  import { refusal } from './refuse.js';
5
- import { bodyStartAfterYaml, bodyStartOf, equalValue, extractFrontmatter, jsValue, lineEnding, mapEntry, parseYamlMapping, serializeJs, serializeKey, YamlError } from './yaml.js';
7
+ import { bodyStartAfterYaml, bodyStartOf, equalValue, extractFrontmatter, jsValue, lineEnding, mapEntry, parseYamlMapping, serializeJs, serializeKey, YamlError, } from './yaml.js';
6
8
  const internals = new WeakMap();
7
9
  function refuse(file, rule, location) {
8
- return location === undefined ? refusal(file, rule) : refusal(file, rule, {
9
- location
10
- });
10
+ return location === undefined ? refusal(file, rule) : refusal(file, rule, { location });
11
11
  }
12
12
  function freezeDocument(content, type, fields, preamble, sections, internal) {
13
13
  const document = Object.freeze({
@@ -15,15 +15,17 @@ function freezeDocument(content, type, fields, preamble, sections, internal) {
15
15
  type,
16
16
  fields: Object.freeze(fields),
17
17
  preamble,
18
- sections: Object.freeze(sections)
18
+ sections: Object.freeze(sections),
19
19
  });
20
20
  internals.set(document, internal);
21
21
  return document;
22
22
  }
23
23
  function declaredType(fields) {
24
24
  const value = fields.type;
25
- if (value === undefined || value === null) return undefined;
26
- if (typeof value !== 'string' || value === '') return undefined;
25
+ if (value === undefined || value === null)
26
+ return undefined;
27
+ if (typeof value !== 'string' || value === '')
28
+ return undefined;
27
29
  return value;
28
30
  }
29
31
  export function parse(content, file = '') {
@@ -35,22 +37,17 @@ export function parse(content, file = '') {
35
37
  document: freezeDocument(content, undefined, {}, content.slice(0, spans[0]?.headingStart), sectionsRecord(spans, content), {
36
38
  root: null,
37
39
  yamlEnd: 0,
38
- bodyStart: 0
39
- })
40
+ bodyStart: 0,
41
+ }),
40
42
  };
41
43
  }
42
- if (fence.kind === 'unclosed') return {
43
- ok: false,
44
- refusal: refuse(file, 'frontmatter-fence')
45
- };
44
+ if (fence.kind === 'unclosed')
45
+ return { ok: false, refusal: refuse(file, 'frontmatter-fence') };
46
46
  try {
47
47
  const root = parseYamlMapping(content, fence.yamlStart, fence.yamlEnd);
48
48
  const fields = jsValue(root);
49
49
  if (fields === null || typeof fields !== 'object' || Array.isArray(fields)) {
50
- return {
51
- ok: false,
52
- refusal: refuse(file, 'frontmatter-fence')
53
- };
50
+ return { ok: false, refusal: refuse(file, 'frontmatter-fence') };
54
51
  }
55
52
  const bodyStart = bodyStartAfterYaml(content, fence.yamlEnd);
56
53
  const spans = headingSpans(content, bodyStart);
@@ -60,14 +57,13 @@ export function parse(content, file = '') {
60
57
  document: freezeDocument(content, declaredType(record), record, content.slice(bodyStart, spans[0]?.headingStart), sectionsRecord(spans, content), {
61
58
  root,
62
59
  yamlEnd: fence.yamlEnd,
63
- bodyStart
64
- })
65
- };
66
- } catch (error) {
67
- if (error instanceof YamlError) return {
68
- ok: false,
69
- refusal: refuse(file, 'frontmatter-fence')
60
+ bodyStart,
61
+ }),
70
62
  };
63
+ }
64
+ catch (error) {
65
+ if (error instanceof YamlError)
66
+ return { ok: false, refusal: refuse(file, 'frontmatter-fence') };
71
67
  throw error;
72
68
  }
73
69
  }
@@ -77,89 +73,70 @@ function splice(content, start, end, insert) {
77
73
  function applyField(document, name, value, prior) {
78
74
  const internal = internals.get(document);
79
75
  if (internal === undefined || internal.root === null) {
80
- return {
81
- outcome: 'refuse',
82
- refusal: refuse('', 'frontmatter-fence', name)
83
- };
76
+ return { outcome: 'refuse', refusal: refuse('', 'frontmatter-fence', name) };
84
77
  }
85
78
  if (!equalValue(document.fields[name], prior)) {
86
- return {
87
- outcome: 'stale',
88
- document
89
- };
79
+ return { outcome: 'stale', document };
90
80
  }
91
81
  let nextContent;
92
82
  const existing = mapEntry(internal.root, name);
93
83
  if (existing !== undefined) {
94
84
  nextContent = splice(document.content, existing.value.start, existing.value.end, serializeJs(value));
95
- } else {
85
+ }
86
+ else if (document.content[internal.root.start] === '{') {
87
+ nextContent = splice(document.content, internal.root.end - 1, internal.root.end - 1, `${internal.root.entries.length === 0 ? '' : ', '}${serializeKey(name)}: ${serializeJs(value)}`);
88
+ }
89
+ else {
96
90
  const nl = lineEnding(document.content);
97
- const line = `${serializeKey(name)}: ${serializeJs(value)}${nl}`;
91
+ const lineStart = document.content.lastIndexOf('\n', internal.root.start - 1) + 1;
92
+ const indent = document.content.slice(lineStart, internal.root.start);
93
+ const line = `${indent}${serializeKey(name)}: ${serializeJs(value)}${nl}`;
98
94
  const before = document.content.slice(0, internal.yamlEnd);
99
95
  const prefix = before.endsWith('\n') || before.endsWith('\r\n') ? '' : nl;
100
96
  nextContent = splice(document.content, internal.yamlEnd, internal.yamlEnd, `${prefix}${line}`);
101
97
  }
102
98
  const parsed = parse(nextContent);
103
- if (!parsed.ok) return {
104
- outcome: 'refuse',
105
- refusal: parsed.refusal
106
- };
107
- return {
108
- outcome: 'applied',
109
- document: parsed.document
110
- };
99
+ if (!parsed.ok)
100
+ return { outcome: 'refuse', refusal: parsed.refusal };
101
+ return { outcome: 'applied', document: parsed.document };
111
102
  }
112
103
  function applySection(document, name, value, prior) {
113
104
  const internal = internals.get(document);
114
- if (internal === undefined) return {
115
- outcome: 'refuse',
116
- refusal: refuse('', 'required-section', name)
117
- };
105
+ if (internal === undefined)
106
+ return { outcome: 'refuse', refusal: refuse('', 'required-section', name) };
118
107
  const spans = headingSpans(document.content, internal.bodyStart);
119
- const span = spans.find((item)=>item.name === name);
120
- if (span === undefined) return {
121
- outcome: 'refuse',
122
- refusal: refuse('', 'required-section', name)
123
- };
108
+ const span = spans.find((item) => item.name === name);
109
+ if (span === undefined)
110
+ return { outcome: 'refuse', refusal: refuse('', 'required-section', name) };
124
111
  const current = document.content.slice(span.bodyStart, span.bodyEnd);
125
- if (current !== prior) return {
126
- outcome: 'stale',
127
- document
128
- };
112
+ if (current !== prior)
113
+ return { outcome: 'stale', document };
129
114
  const parsed = parse(splice(document.content, span.bodyStart, span.bodyEnd, value));
130
- if (!parsed.ok) return {
131
- outcome: 'refuse',
132
- refusal: parsed.refusal
133
- };
134
- return {
135
- outcome: 'applied',
136
- document: parsed.document
137
- };
115
+ if (!parsed.ok)
116
+ return { outcome: 'refuse', refusal: parsed.refusal };
117
+ return { outcome: 'applied', document: parsed.document };
138
118
  }
139
119
  function applyPreamble(document, value, prior) {
140
- if (document.preamble !== prior) return {
141
- outcome: 'stale',
142
- document
143
- };
120
+ if (document.preamble !== prior)
121
+ return { outcome: 'stale', document };
144
122
  const start = bodyStartOf(document.content);
145
123
  const parsed = parse(splice(document.content, start, start + document.preamble.length, value));
146
- if (!parsed.ok) return {
147
- outcome: 'refuse',
148
- refusal: parsed.refusal
149
- };
150
- return {
151
- outcome: 'applied',
152
- document: parsed.document
153
- };
124
+ if (!parsed.ok)
125
+ return { outcome: 'refuse', refusal: parsed.refusal };
126
+ return { outcome: 'applied', document: parsed.document };
154
127
  }
155
128
  function fitsBare(to) {
156
- if (to === '' || to.startsWith('<')) return false;
129
+ if (to === '' || to.startsWith('<'))
130
+ return false;
157
131
  let depth = 0;
158
- for (const character of to){
159
- if (/[\s\u0000-\u001f\u007f]/.test(character)) return false;
160
- if (character === '(') depth += 1;
132
+ for (const character of to) {
133
+ if (/[\s\u0000-\u001f\u007f]/.test(character))
134
+ return false;
135
+ if (character === '(')
136
+ depth += 1;
161
137
  else if (character === ')') {
162
- if (depth === 0) return false;
138
+ if (depth === 0)
139
+ return false;
163
140
  depth -= 1;
164
141
  }
165
142
  }
@@ -169,68 +146,142 @@ function fitsBrackets(to) {
169
146
  return to !== '' && !/[<>\n\r]/.test(to);
170
147
  }
171
148
  function destinationText(to, bracketed) {
172
- if (fitsBare(to)) return bracketed && fitsBrackets(to) ? `<${to}>` : to;
173
- if (fitsBrackets(to)) return `<${to}>`;
149
+ if (fitsBare(to))
150
+ return bracketed && fitsBrackets(to) ? `<${to}>` : to;
151
+ if (fitsBrackets(to))
152
+ return `<${to}>`;
174
153
  return null;
175
154
  }
176
- function applyLink(document, href, to) {
177
- const content = document.content;
178
- const bodyStart = bodyStartOf(content);
179
- const matches = hrefOccurrences(content.slice(bodyStart)).filter((occurrence)=>occurrence.href === href);
180
- if (matches.length === 0) return {
181
- outcome: 'stale',
182
- document
183
- };
184
- const written = to + hrefSuffix(href);
155
+ function relinked(content, bodyStart, href, to) {
156
+ const written = retarget(href, to);
185
157
  let rewritten = '';
186
158
  let cursor = 0;
187
- for (const match of matches){
159
+ for (const match of hrefOccurrences(content.slice(bodyStart))) {
160
+ if (match.href !== href)
161
+ continue;
188
162
  const text = destinationText(written, match.bracketed);
189
- if (text === null) return {
190
- outcome: 'refuse',
191
- refusal: refuse('', 'unwritable-link', written)
192
- };
163
+ if (text === null)
164
+ return refuse('', 'unwritable-link', written);
193
165
  rewritten += content.slice(cursor, bodyStart + match.start);
194
166
  rewritten += text;
195
167
  cursor = bodyStart + match.end;
196
168
  }
197
- const parsed = parse(rewritten + content.slice(cursor));
198
- if (!parsed.ok) return {
199
- outcome: 'refuse',
200
- refusal: parsed.refusal
201
- };
202
- return {
203
- outcome: 'applied',
204
- document: parsed.document
205
- };
169
+ return rewritten + content.slice(cursor);
170
+ }
171
+ function shellRelinked(content, bodyStart, file, handle) {
172
+ const hrefs = new Set(hrefOccurrences(content.slice(bodyStart)).map(({ href }) => href));
173
+ let held = content;
174
+ for (const href of hrefs) {
175
+ const path = shellTarget(href, handle);
176
+ if (path === null)
177
+ continue;
178
+ const text = relinked(held, bodyStart, href, relative(file, path));
179
+ if (typeof text !== 'string')
180
+ return text;
181
+ held = text;
182
+ }
183
+ return held;
184
+ }
185
+ function reparsed(document, content) {
186
+ if (typeof content !== 'string')
187
+ return { outcome: 'refuse', refusal: content };
188
+ if (content === document.content)
189
+ return { outcome: 'applied', document };
190
+ const parsed = parse(content);
191
+ if (!parsed.ok)
192
+ return { outcome: 'refuse', refusal: parsed.refusal };
193
+ return { outcome: 'applied', document: parsed.document };
194
+ }
195
+ function applyLink(document, href, to) {
196
+ const content = document.content;
197
+ const bodyStart = bodyStartOf(content);
198
+ if (!hrefOccurrences(content.slice(bodyStart)).some((occurrence) => occurrence.href === href))
199
+ return { outcome: 'stale', document };
200
+ return reparsed(document, relinked(content, bodyStart, href, to));
201
+ }
202
+ function nodeAt(root, pointer) {
203
+ let node = root;
204
+ for (const key of pointerSegments(pointer)) {
205
+ if (node?.kind === 'map')
206
+ node = mapEntry(node, key)?.value;
207
+ else if (node?.kind === 'seq' && ARRAY_INDEX.test(key))
208
+ node = node.items[Number(key)];
209
+ else
210
+ return undefined;
211
+ }
212
+ return node;
213
+ }
214
+ function scalarText(source, value) {
215
+ if (source === "'")
216
+ return `'${value.replaceAll("'", "''")}'`;
217
+ if (source === '"')
218
+ return JSON.stringify(value);
219
+ return serializeJs(value);
220
+ }
221
+ function applyReference(document, pointer, value, prior) {
222
+ const root = internals.get(document)?.root;
223
+ const node = root === null || root === undefined ? undefined : nodeAt(root, pointer);
224
+ if (node?.kind !== 'scalar' || node.value !== prior)
225
+ return { outcome: 'stale', document };
226
+ const text = scalarText(document.content[node.start], value);
227
+ const parsed = parse(splice(document.content, node.start, node.end, text));
228
+ if (!parsed.ok)
229
+ return { outcome: 'refuse', refusal: parsed.refusal };
230
+ return { outcome: 'applied', document: parsed.document };
231
+ }
232
+ export function relativize(document, file, handle, definition) {
233
+ let held = document;
234
+ for (const { pointer, value } of definition === undefined
235
+ ? []
236
+ : references(document, definition)) {
237
+ const path = shellTarget(value, handle);
238
+ if (path === null)
239
+ continue;
240
+ const result = applyReference(held, pointer, retarget(value, relative(file, path)), value);
241
+ if (result.outcome !== 'applied')
242
+ return result;
243
+ held = result.document;
244
+ }
245
+ return reparsed(held, shellRelinked(held.content, bodyStartOf(held.content), file, handle));
246
+ }
247
+ export function relativizeBody(body, file, handle) {
248
+ const relinkedBody = shellRelinked(body, 0, file, handle);
249
+ if (typeof relinkedBody !== 'string')
250
+ return { outcome: 'refuse', refusal: relinkedBody };
251
+ const elsewhere = hrefOccurrences(relinkedBody).find(({ href }) => href.startsWith(SHELL_ROOMS));
252
+ if (elsewhere !== undefined)
253
+ return { outcome: 'refuse', refusal: refuse(file, 'unresolved-link', elsewhere.href) };
254
+ return { outcome: 'applied', body: relinkedBody };
206
255
  }
207
256
  export function links(document, file) {
208
257
  const found = [];
209
258
  const seen = new Set();
210
- for (const occurrence of hrefOccurrences(document.content.slice(bodyStartOf(document.content)))){
211
- if (seen.has(occurrence.href)) continue;
212
- const resolved = classifyHref(file, occurrence.href);
213
- if (resolved.kind !== 'path') continue;
259
+ for (const occurrence of hrefOccurrences(document.content.slice(bodyStartOf(document.content)))) {
260
+ if (seen.has(occurrence.href))
261
+ continue;
262
+ const resolved = target(file, occurrence.href);
263
+ if (resolved === null)
264
+ continue;
214
265
  seen.add(occurrence.href);
215
- found.push({
216
- href: occurrence.href,
217
- target: resolved.path
218
- });
266
+ found.push({ href: occurrence.href, target: resolved });
219
267
  }
220
268
  return found;
221
269
  }
222
270
  export function apply(document, change) {
223
- if (change.kind === 'link') return applyLink(document, change.href, change.to);
224
- if (change.kind === 'preamble') return applyPreamble(document, change.value, change.prior);
271
+ if (change.kind === 'link')
272
+ return applyLink(document, change.href, change.to);
273
+ if (change.kind === 'reference')
274
+ return applyReference(document, change.pointer, change.value, change.prior);
275
+ if (change.kind === 'preamble')
276
+ return applyPreamble(document, change.value, change.prior);
225
277
  try {
226
- if (change.kind === 'field') return applyField(document, change.name, change.value, change.prior);
278
+ if (change.kind === 'field')
279
+ return applyField(document, change.name, change.value, change.prior);
227
280
  return applySection(document, change.name, change.value, change.prior);
228
- } catch (error) {
281
+ }
282
+ catch (error) {
229
283
  if (error instanceof YamlError) {
230
- return {
231
- outcome: 'refuse',
232
- refusal: refuse('', 'frontmatter-fence', change.name)
233
- };
284
+ return { outcome: 'refuse', refusal: refuse('', 'frontmatter-fence', change.name) };
234
285
  }
235
286
  throw error;
236
287
  }
@@ -238,5 +289,6 @@ export function apply(document, change) {
238
289
  export function serialize(document) {
239
290
  return document.content;
240
291
  }
241
-
242
- //# sourceMappingURL=document.js.map
292
+ export function frontmatter(document) {
293
+ return internals.get(document)?.root ?? null;
294
+ }
@@ -0,0 +1,4 @@
1
+ export declare const MEMBER_FIELD = "member";
2
+ export declare const SITE_FIELD = "site";
3
+ export declare const RECEIVED_FIELD = "received";
4
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC,eAAO,MAAM,cAAc,aAAa,CAAC"}
package/dist/fields.js ADDED
@@ -0,0 +1,3 @@
1
+ export const MEMBER_FIELD = 'member';
2
+ export const SITE_FIELD = 'site';
3
+ export const RECEIVED_FIELD = 'received';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,15 @@
1
- export { apply, links, parse, serialize } from './document.js';
1
+ export { dated, factKind, facts, fires, holds, instant, itemFires, pointed, WRITE_DOORS, } from './condition.js';
2
+ export type { Actor, Condition, ConditionScope, ConditionTest, ConditionValue, CronCondition, DateCondition, DocumentCondition, DocumentEvent, DocumentFacts, Fact, FactKind, ItemCondition, ItemFacts, Resolved, WriteDoor, } from './condition.js';
3
+ export { divide } from './divide.js';
4
+ export { apply, links, parse, relativize, relativizeBody, serialize } from './document.js';
5
+ export { MEMBER_FIELD, RECEIVED_FIELD, SITE_FIELD } from './fields.js';
6
+ export { relative, retarget, target } from './paths.js';
2
7
  export { MARKDOWN_SYNTAX_PROFILE } from './profile.js';
3
8
  export { project } from './project.js';
4
- export type { ApplyResult, Change, Document, Library, Link, ParseResult, Projection, ProjectionContext, Refusal, Validation, ValidationContext, } from './types.js';
5
- export { validate } from './validate.js';
9
+ export { references } from './references.js';
10
+ export { ATTACHMENT, escapePointer, pointerSegments } from './definition.js';
11
+ export type { Definition, JsonType, PatternFacts, SectionSpec, Shape, ValueFacts, } from './definition.js';
12
+ export type { ApplyResult, Change, Division, DivisionContext, Document, Library, ModelVerification, Link, ParseResult, Projection, ProjectionContext, Reference, Refusal, Span, Validation, ValidationContext, VerifiedModel, } from './types.js';
13
+ export { validate, verify } from './validate.js';
6
14
  export { VERSION } from './version.js';
7
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,KAAK,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,YAAY,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,KAAK,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,11 @@
1
- export { apply, links, parse, serialize } from './document.js';
1
+ export { dated, factKind, facts, fires, holds, instant, itemFires, pointed, WRITE_DOORS, } from './condition.js';
2
+ export { divide } from './divide.js';
3
+ export { apply, links, parse, relativize, relativizeBody, serialize } from './document.js';
4
+ export { MEMBER_FIELD, RECEIVED_FIELD, SITE_FIELD } from './fields.js';
5
+ export { relative, retarget, target } from './paths.js';
2
6
  export { MARKDOWN_SYNTAX_PROFILE } from './profile.js';
3
7
  export { project } from './project.js';
4
- export { validate } from './validate.js';
8
+ export { references } from './references.js';
9
+ export { ATTACHMENT, escapePointer, pointerSegments } from './definition.js';
10
+ export { validate, verify } from './validate.js';
5
11
  export { VERSION } from './version.js';
6
-
7
- //# sourceMappingURL=index.js.map
package/dist/links.d.ts CHANGED
@@ -20,6 +20,7 @@ export type LinkInventory = {
20
20
  readonly uses: readonly LinkUse[];
21
21
  readonly blocks: readonly DefinitionBlock[];
22
22
  };
23
+ export declare function fenceSpans(text: string): readonly (readonly [number, number])[];
23
24
  export declare function linkInventory(body: string): LinkInventory;
24
25
  export declare function hrefOccurrences(body: string): readonly HrefOccurrence[];
25
26
  //# sourceMappingURL=links.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AA8WA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAyBzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAIvE"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AA0sBA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAe/E;AAYD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA2DzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAIvE"}