@thomasfosterau/effect-rdf 0.0.0 → 0.1.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 (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2250 -1
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +187 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validator-BzXMKDeJ.mjs","names":["Term.isLiteral","Term.isNamedNode","Term.isBlankNode","Xsd.isNumericDatatype","Xsd.isValidLexical","Term.isResource","Term.triple","Term.isResource","Term.isTriple","Dataset.match","Term.isVariable","Term.isDefaultGraph","Structure.check","Structure.makeIndex","SemAct.SemActHandler","SemAct.withExternalCode","ShapeMap.resolve","ShapeMap.isStart","Dataset.DatasetSchema"],"sources":["../src/shex/internal/xpathRegex.ts","../src/shex/internal/nodeConstraint.ts","../src/shex/internal/engine.ts","../src/shex/Validator.ts"],"sourcesContent":["import * as Arr from 'effect/Array';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\n/**\n * Translation of XPath / XML Schema regular expressions (as used by the\n * ShEx `pattern` facet and `fn:matches`) to JavaScript `RegExp`s.\n *\n * Handled differences: `.` excludes only `\\n` and `\\r`; `\\d`, `\\w`, `\\i`,\n * `\\c` and their complements use the XML Schema definitions; character class\n * subtraction (`[a-z-[aeiou]]`); `\\p{IsBlock}` names; the `x` flag removes\n * whitespace; escapes JavaScript rejects in Unicode mode are normalised.\n *\n * @internal\n */\n\nconst NAME_START =\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\u{10000}-\\\\u{EFFFF}';\nconst NAME_CHAR = `${NAME_START}\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040`;\n\n/** A character class body, and whether the class is complemented. */\ninterface ClassBody {\n readonly body: string;\n readonly negated: boolean;\n}\n\n/** A lookup table keyed by escape letter or block name. */\ninterface Table<A> {\n readonly [key: string]: A;\n}\n\n/** Class body fragments for the multi-character escapes. */\nconst CLASS_ESCAPES: Table<ClassBody> = {\n d: { body: '\\\\p{Nd}', negated: false },\n D: { body: '\\\\p{Nd}', negated: true },\n w: { body: '\\\\p{L}\\\\p{M}\\\\p{N}\\\\p{S}', negated: false },\n W: { body: '\\\\p{L}\\\\p{M}\\\\p{N}\\\\p{S}', negated: true },\n s: { body: ' \\\\t\\\\n\\\\r', negated: false },\n S: { body: ' \\\\t\\\\n\\\\r', negated: true },\n i: { body: NAME_START, negated: false },\n I: { body: NAME_START, negated: true },\n c: { body: NAME_CHAR, negated: false },\n C: { body: NAME_CHAR, negated: true },\n};\n\nconst BLOCKS: Table<string> = {\n BasicLatin: '\\\\u0000-\\\\u007F',\n 'Latin-1Supplement': '\\\\u0080-\\\\u00FF',\n LatinExtended_A: '\\\\u0100-\\\\u017F',\n 'LatinExtended-A': '\\\\u0100-\\\\u017F',\n 'LatinExtended-B': '\\\\u0180-\\\\u024F',\n IPAExtensions: '\\\\u0250-\\\\u02AF',\n Greek: '\\\\u0370-\\\\u03FF',\n GreekandCoptic: '\\\\u0370-\\\\u03FF',\n Cyrillic: '\\\\u0400-\\\\u04FF',\n Hebrew: '\\\\u0590-\\\\u05FF',\n Arabic: '\\\\u0600-\\\\u06FF',\n CJKUnifiedIdeographs: '\\\\u4E00-\\\\u9FFF',\n Hiragana: '\\\\u3040-\\\\u309F',\n Katakana: '\\\\u30A0-\\\\u30FF',\n};\n\nconst SYNTAX = MutableHashSet.make(\n '^',\n '$',\n '\\\\',\n '.',\n '*',\n '+',\n '?',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '|',\n '/',\n);\n\n/** What a character class collects besides its body. */\ninterface ClassState {\n /** Complemented class escapes, which cannot go in the body. */\n readonly extra: Array<string>;\n /** The subtracted class (`-[…]`), translated. */\n subtraction: Option.Option<string>;\n}\n\n/** An escape read by `Translator.escape`: a character, or a class body. */\ntype Escape = { kind: 'char'; text: string } | { kind: 'class'; body: string; negated: boolean };\n\n// Built once: `escape` runs it for every backslash of every pattern.\nconst escapeOf: (c: string, t: Translator) => Escape = Match.fn(\n (c: string, _t: Translator) => c,\n).pipe(\n Match.withReturnType<Escape>(),\n Match.when('n', () => ({ kind: 'char', text: '\\\\n' })),\n Match.when('r', () => ({ kind: 'char', text: '\\\\r' })),\n Match.when('t', () => ({ kind: 'char', text: '\\\\t' })),\n Match.when(Match.is('p', 'P'), (c, _c, t) => {\n const p = t.property(c === 'P');\n return { kind: 'class', ...p };\n }),\n Match.orElse((c, _c, t) => {\n const ce = CLASS_ESCAPES[c];\n if (ce !== undefined) return { kind: 'class', ...ce };\n if (/[0-9]/.test(c)) return { kind: 'char', text: `\\\\${c}` };\n if (c === '-') return { kind: 'char', text: '\\\\-' };\n if (MutableHashSet.has(SYNTAX, c)) return { kind: 'char', text: `\\\\${c}` };\n return t.fail(`invalid escape \\\\${c}`);\n }),\n);\n\nclass Translator {\n i = 0;\n readonly src: string;\n readonly dotAll: boolean;\n readonly extended: boolean;\n constructor(src: string, dotAll: boolean, extended: boolean) {\n this.src = src;\n this.dotAll = dotAll;\n this.extended = extended;\n }\n\n fail(msg: string): never {\n throw new SyntaxError(`${msg} at ${this.i} in /${this.src}/`);\n }\n\n /** Translates a property escape `\\p{..}` / `\\P{..}` (cursor after `p`/`P`). */\n property(negated: boolean): ClassBody {\n if (this.src[this.i] !== '{') this.fail('expected {');\n const end = this.src.indexOf('}', this.i);\n if (end === -1) this.fail('unterminated property escape');\n const name = this.src.slice(this.i + 1, end);\n this.i = end + 1;\n if (name.startsWith('Is')) {\n const block = BLOCKS[name.slice(2)];\n if (block === undefined) this.fail(`unsupported block ${name}`);\n return { body: block, negated };\n }\n return { body: `\\\\p{${name}}`, negated };\n }\n\n /** Reads an escape inside or outside a class (cursor after the backslash). */\n escape(): Escape {\n const c = this.src[this.i++];\n if (c === undefined) this.fail('dangling backslash');\n return escapeOf(c, this);\n }\n\n /** Translates a character class (cursor after `[`); returns a JS fragment. */\n charClass(): string {\n const negated = this.src[this.i] === '^';\n if (negated) this.i++;\n const state: ClassState = { extra: [], subtraction: Option.none() };\n const raw = Arr.unfold(true, (first) =>\n Option.map(this.classAtom(first, state), (fragment) => [fragment, false] as const),\n ).join('');\n // Ranges were emitted with escaped '-': restore range operators between plain characters.\n const body = restoreRanges(raw);\n const { extra } = state;\n const set = Arr.isReadonlyArrayEmpty(extra)\n ? `[${negated ? '^' : ''}${body}]`\n : this.union(negated, [...(body === '' ? [] : [`[${body}]`]), ...extra]);\n return Option.match(state.subtraction, {\n onNone: () => set,\n onSome: (subtraction) => `(?:(?!${subtraction})${set})`,\n });\n }\n\n /** A class with complemented escapes: the union of its alternatives (or its complement). */\n union(negated: boolean, alts: ReadonlyArray<string>): string {\n const union = `(?:${alts.join('|')})`;\n return negated ? `(?:(?!${union})[\\\\s\\\\S])` : union;\n }\n\n /**\n * Reads the next atom of a character class, returning its body fragment,\n * or none once the class ends (`]`, or a subtraction, which ends it).\n */\n classAtom(first: boolean, state: ClassState): Option.Option<string> {\n const c = this.src[this.i];\n if (c === undefined) this.fail('unterminated character class');\n if (c === ']' && !first) {\n this.i++;\n return Option.none();\n }\n if (c === '-' && this.src[this.i + 1] === '[') {\n this.i += 2;\n state.subtraction = Option.some(this.charClass());\n if (this.src[this.i] !== ']') this.fail('expected ] after class subtraction');\n this.i++;\n return Option.none();\n }\n this.i++;\n if (c === '\\\\') {\n const e = this.escape();\n if (e.kind === 'char') return Option.some(e.text);\n if (!e.negated) return Option.some(e.body);\n state.extra.push(`[^${e.body}]`);\n return Option.some('');\n }\n if (c === '[' || c === '/' || c === '{' || c === '}' || c === '(' || c === ')' || c === '|') {\n return Option.some(`\\\\${c}`);\n }\n return Option.some(c === '-' ? '\\\\-' : c);\n }\n\n /** Translates the atom at the cursor (outside a class). */\n atom(): string {\n const c = this.src.charAt(this.i);\n if (this.extended && /\\s/.test(c)) {\n this.i++;\n return '';\n }\n if (c === '\\\\') {\n this.i++;\n const e = this.escape();\n return e.kind === 'char'\n ? e.text === '\\\\-'\n ? '-'\n : e.text\n : `[${e.negated ? '^' : ''}${e.body}]`;\n }\n if (c === '[') {\n this.i++;\n return this.charClass();\n }\n if (c === '{') {\n const q = /^\\{\\d+(?:,\\d*)?\\}/.exec(this.src.slice(this.i));\n if (q !== null) {\n this.i += q[0].length;\n return q[0];\n }\n this.i++;\n return '\\\\{';\n }\n this.i++;\n if (c === '.') return this.dotAll ? '[\\\\s\\\\S]' : '[^\\\\n\\\\r]';\n if (c === '/') return '\\\\/';\n if (c === ']' || c === '}') return `\\\\${c}`;\n return c;\n }\n\n translate(): string {\n return Arr.unfold(this, (t) =>\n t.i < t.src.length ? Option.some([t.atom(), t] as const) : Option.none(),\n ).join('');\n }\n}\n\n/**\n * Inside a translated class body, a `-` between two class atoms that was\n * written unescaped is a range; we escaped every `-` while scanning, so turn\n * back those that had atoms on both sides in the source.\n */\nconst restoreRanges = (body: string): string => {\n // Tokenise into atoms: escapes (\\x, \\p{..}, \\u{..}) or single code points.\n const atoms = body.match(CLASS_ATOM) ?? [];\n const endpointAt = (k: number): boolean => {\n const a = atoms[k];\n return a !== undefined && isRangeEndpoint(a);\n };\n return Arr.map(atoms, (a, k) =>\n a === '\\\\-' && endpointAt(k - 1) && endpointAt(k + 1) ? '-' : a,\n ).join('');\n};\n\nconst CLASS_ATOM = /\\\\(?:[pP]\\{[^}]*\\}|u\\{[0-9A-Fa-f]+\\}|u[0-9A-Fa-f]{4}|.)|./gsu;\n\nconst isRangeEndpoint = (atom: string): boolean => !/^\\\\[pPdDwWsS]/.test(atom) && atom !== '\\\\-';\n\n/**\n * Compiles an XPath regular expression with XPath flags (`s`, `m`, `i`, `x`,\n * `q`) to a JavaScript `RegExp` (Unicode mode).\n *\n * @internal\n */\nexport const compileXPathRegex = (pattern: string, flags: string): RegExp => {\n if (flags.includes('q')) {\n const escaped = pattern.replace(/[\\\\^$.*+?()[\\]{}|/-]/g, '\\\\$&');\n return new RegExp(escaped, `u${flags.includes('i') ? 'i' : ''}`);\n }\n const t = new Translator(pattern, flags.includes('s'), flags.includes('x'));\n const source = t.translate();\n let jsFlags = 'u';\n if (flags.includes('i')) jsFlags += 'i';\n if (flags.includes('m')) jsFlags += 'm';\n return new RegExp(source, jsFlags);\n};\n","/**\n * Node constraint evaluation (`satisfies2`): node kinds, datatypes, XML\n * Schema string and numeric facets, and value sets.\n *\n * @internal\n */\nimport * as Arr from 'effect/Array';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Match from 'effect/Match';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Result from 'effect/Result';\nimport * as Term from '../../Term.ts';\nimport * as Xsd from '../../Xsd.ts';\nimport type * as ShExJ from '../ShExJ.ts';\nimport { compileXPathRegex } from './xpathRegex.ts';\n\nconst XSD = 'http://www.w3.org/2001/XMLSchema#';\nconst XSD_STRING = `${XSD}string`;\nconst RDF_LANG_STRING = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString';\n\nconst decimalDerived = MutableHashSet.fromIterable(\n [\n 'decimal',\n 'integer',\n 'nonPositiveInteger',\n 'negativeInteger',\n 'long',\n 'int',\n 'short',\n 'byte',\n 'nonNegativeInteger',\n 'unsignedLong',\n 'unsignedInt',\n 'unsignedShort',\n 'unsignedByte',\n 'positiveInteger',\n ].map((l) => XSD + l),\n);\n\n/** The string a string facet applies to. */\nconst lexicalForm = (n: Term.Term): string =>\n Term.isLiteral(n) || Term.isNamedNode(n) || Term.isBlankNode(n) ? n.value : n.key;\n\n/** The number of code points (a lone surrogate counts as one, as string iteration does). */\nconst codePointLength = (s: string): number =>\n s.length - (s.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g)?.length ?? 0);\n\nconst regexCache = MutableHashMap.empty<string, Result.Result<RegExp, string>>();\n\n/** Compiles (once) an XPath pattern; fails with the reason it is invalid. */\nconst getRegex = (pattern: string, flags: string): Result.Result<RegExp, string> => {\n const key = `${flags}/${pattern}`;\n return Option.getOrElse(MutableHashMap.get(regexCache, key), () => {\n const re = Result.try({\n try: () => compileXPathRegex(pattern, flags),\n // The message of the thrown `SyntaxError`, else the thrown value's string form.\n catch: (e) =>\n Predicate.hasProperty(e, 'message') && Predicate.isString(e.message)\n ? e.message\n : String(e),\n });\n MutableHashMap.set(regexCache, key, re);\n return re;\n });\n};\n\ninterface DecimalParts {\n readonly negative: boolean;\n /** Integer digits without leading zeros (may be empty). */\n readonly int: string;\n /** Fraction digits without trailing zeros (may be empty). */\n readonly frac: string;\n}\n\nconst decimalParts = (lexical: string): Option.Option<DecimalParts> => {\n const m = /^([+-]?)(\\d*)(?:\\.(\\d*))?$/.exec(lexical.trim());\n if (m === null || ((m[2] ?? '') === '' && (m[3] ?? '') === '')) return Option.none();\n const int = (m[2] ?? '').replace(/^0+/, '');\n const frac = (m[3] ?? '').replace(/0+$/, '');\n return Option.some({ negative: m[1] === '-' && (int !== '' || frac !== ''), int, frac });\n};\n\nconst compareDecimalParts = (a: DecimalParts, b: DecimalParts): number => {\n if (a.negative !== b.negative) return a.negative ? -1 : 1;\n const sign = a.negative ? -1 : 1;\n if (a.int.length !== b.int.length) return sign * (a.int.length < b.int.length ? -1 : 1);\n if (a.int !== b.int) return sign * (a.int < b.int ? -1 : 1);\n const len = Math.max(a.frac.length, b.frac.length);\n const fa = a.frac.padEnd(len, '0');\n const fb = b.frac.padEnd(len, '0');\n if (fa === fb) return 0;\n return sign * (fa < fb ? -1 : 1);\n};\n\nconst numberToDecimalParts = (n: number): Option.Option<DecimalParts> => {\n if (!Number.isFinite(n)) return Option.none();\n const s = String(n);\n if (/e/i.test(s)) {\n // Expand exponent notation exactly.\n const m = /^(-?)(\\d+)(?:\\.(\\d+))?e([+-]\\d+)$/i.exec(s);\n if (m === null) return Option.none();\n const digits = (m[2] ?? '') + (m[3] ?? '');\n const exp = parseInt(m[4] ?? '', 10) - (m[3] ?? '').length;\n const body =\n exp >= 0\n ? digits + '0'.repeat(exp)\n : (() => {\n const padded = digits.padStart(-exp + 1, '0');\n return `${padded.slice(0, exp)}.${padded.slice(exp)}`;\n })();\n return decimalParts(m[1] + body);\n }\n return decimalParts(s);\n};\n\n/** Numeric value of a literal for comparison, or undefined if not numeric/invalid. */\ntype Numeric =\n | { readonly kind: 'decimal'; readonly parts: DecimalParts }\n | { readonly kind: 'float'; readonly value: number };\n\nconst numericValue = (n: Term.Term): Option.Option<Numeric> => {\n if (!Term.isLiteral(n)) return Option.none();\n const dt = n.datatype.value;\n if (!Xsd.isNumericDatatype(dt) || !Xsd.isValidLexical(dt, n.value)) return Option.none();\n if (MutableHashSet.has(decimalDerived, dt)) {\n return Option.map(decimalParts(n.value), (parts): Numeric => ({ kind: 'decimal', parts }));\n }\n const v = n.value.trim();\n const value =\n v === 'INF' || v === '+INF'\n ? Infinity\n : v === '-INF'\n ? -Infinity\n : v === 'NaN'\n ? NaN\n : Number(v);\n return Option.some({ kind: 'float', value });\n};\n\n/** Compares a numeric value with a facet; returns NaN when incomparable. */\nconst compareWith = (v: Numeric, facet: number): number => {\n if (v.kind === 'decimal') {\n const { parts } = v;\n return Option.match(numberToDecimalParts(facet), {\n onNone: () => (Number.isNaN(facet) ? NaN : facet === Infinity ? -1 : 1),\n onSome: (f) => compareDecimalParts(parts, f),\n });\n }\n if (Number.isNaN(v.value) || Number.isNaN(facet)) return NaN;\n return v.value < facet ? -1 : v.value > facet ? 1 : 0;\n};\n\nconst lowerEq = (a: string, b: string) => a.toLowerCase() === b.toLowerCase();\n\n/** Basic language-range filtering (RFC 4647 §3.3.1). */\nconst languageMatches = (tag: string, range: string): boolean => {\n if (range === '' || range === '*') return tag !== '';\n const t = tag.toLowerCase();\n const r = range.toLowerCase();\n return t === r || t.startsWith(`${r}-`);\n};\n\nconst literalEquals = (n: Term.Literal, v: ShExJ.ObjectLiteral): boolean => {\n if (n.value !== v.value) return false;\n if (v.language !== undefined) return n.language !== '' && lowerEq(n.language, v.language);\n if (n.language !== '') return false;\n return n.datatype.value === (v.type ?? XSD_STRING);\n};\n\n/**\n * Whether a value is in an IRI or literal stem range: under its stem (any\n * value, for a wildcard) and under none of its exclusions.\n */\nconst inStemRange = (value: string, range: ShExJ.IriStemRange | ShExJ.LiteralStemRange): boolean =>\n (!Predicate.isString(range.stem) || value.startsWith(range.stem)) &&\n !range.exclusions.some((e) => (Predicate.isString(e) ? value === e : value.startsWith(e.stem)));\n\n// Built once: `valueMatches` runs it for every value set value a node is checked against.\nconst stemValueMatches: (\n v: Exclude<ShExJ.ValueSetValue, ShExJ.ObjectValue>,\n n: Term.Term,\n) => boolean = Match.fn(\n (v: Exclude<ShExJ.ValueSetValue, ShExJ.ObjectValue>, _n: Term.Term) => v,\n).pipe(\n Match.withReturnType<boolean>(),\n Match.when({ type: 'IriStem' }, (v, _v, n) => Term.isNamedNode(n) && n.value.startsWith(v.stem)),\n Match.when(\n { type: 'IriStemRange' },\n (v, _v, n) => Term.isNamedNode(n) && inStemRange(n.value, v),\n ),\n Match.when(\n { type: 'LiteralStem' },\n (v, _v, n) => Term.isLiteral(n) && n.value.startsWith(v.stem),\n ),\n Match.when(\n { type: 'LiteralStemRange' },\n (v, _v, n) => Term.isLiteral(n) && inStemRange(n.value, v),\n ),\n Match.when(\n { type: 'Language' },\n (v, _v, n) => Term.isLiteral(n) && n.language !== '' && lowerEq(n.language, v.languageTag),\n ),\n Match.when(\n { type: 'LanguageStem' },\n (v, _v, n) => Term.isLiteral(n) && n.language !== '' && languageMatches(n.language, v.stem),\n ),\n Match.when({ type: 'LanguageStemRange' }, (v, _v, n) => {\n if (!Term.isLiteral(n) || n.language === '') return false;\n if (Predicate.isString(v.stem) && !languageMatches(n.language, v.stem)) return false;\n return !v.exclusions.some((e) =>\n Predicate.isString(e) ? lowerEq(n.language, e) : languageMatches(n.language, e.stem),\n );\n }),\n Match.orElse(() => false),\n);\n\n/**\n * Whether a term matches a value set value.\n *\n * @internal\n */\nexport const valueMatches = (n: Term.Term, v: ShExJ.ValueSetValue): boolean => {\n if (Predicate.isString(v)) return Term.isNamedNode(n) && n.value === v;\n // A value without `type`, or with a `value`, is an object literal in ShExJ.\n if (!('type' in v) || 'value' in v) return Term.isLiteral(n) && literalEquals(n, v);\n return stemValueMatches(v, n);\n};\n\nconst failure = (cond: boolean, message: () => string): Option.Option<string> =>\n cond ? Option.some(message()) : Option.none();\n\n// Built once: `checkNodeConstraint` runs it for every node constraint it evaluates.\nconst nodeKindFailure = Match.fn((nc: ShExJ.NodeConstraint, _n: Term.Term) => nc.nodeKind).pipe(\n Match.withReturnType<Option.Option<string>>(),\n Match.when('iri', (_kind, _nc, n) =>\n failure(!Term.isNamedNode(n), () => `${n.key} is not an IRI`),\n ),\n Match.when('bnode', (_kind, _nc, n) =>\n failure(!Term.isBlankNode(n), () => `${n.key} is not a blank node`),\n ),\n Match.when('literal', (_kind, _nc, n) =>\n failure(!Term.isLiteral(n), () => `${n.key} is not a literal`),\n ),\n Match.when('nonliteral', (_kind, _nc, n) =>\n failure(!Term.isResource(n), () => `${n.key} is not an IRI or blank node`),\n ),\n Match.orElse(() => Option.none()),\n);\n\n/** The numeric range facets: how each reads its limit, and which comparisons it accepts. */\nconst numericFacets: ReadonlyArray<\n readonly [\n name: string,\n limit: (nc: ShExJ.NodeConstraint) => Option.Option<number>,\n ok: (c: number) => boolean,\n ]\n> = [\n ['mininclusive', (nc) => Option.fromUndefinedOr(nc.mininclusive), (c) => c >= 0],\n ['minexclusive', (nc) => Option.fromUndefinedOr(nc.minexclusive), (c) => c > 0],\n ['maxinclusive', (nc) => Option.fromUndefinedOr(nc.maxinclusive), (c) => c <= 0],\n ['maxexclusive', (nc) => Option.fromUndefinedOr(nc.maxexclusive), (c) => c < 0],\n];\n\n/** The datatype check of a node constraint with a `datatype`. */\nconst datatypeFailure = (n: Term.Term, datatype: string): Option.Option<string> => {\n if (!Term.isLiteral(n)) return Option.some(`${n.key} is not a literal of datatype <${datatype}>`);\n const actual = n.language !== '' ? RDF_LANG_STRING : n.datatype.value;\n if (actual !== datatype && !(n.language !== '' && n.datatype.value === datatype))\n return Option.some(`${n.key} does not have datatype <${datatype}>`);\n return failure(\n n.language === '' &&\n (!Xsd.isValidLexical(datatype, n.value) ||\n ((datatype === `${XSD}float` || datatype === `${XSD}double`) && n.value === '+INF')),\n () => `${n.key} is not a valid <${datatype}>`,\n );\n};\n\n/** The string facets (`length`, `minlength`, `maxlength`, `pattern`). */\nconst stringFacetFailure = (n: Term.Term, nc: ShExJ.NodeConstraint): Option.Option<string> => {\n const lex = lexicalForm(n);\n const len = codePointLength(lex);\n if (nc.length !== undefined && len !== nc.length)\n return Option.some(`${n.key} has length ${len}, expected ${nc.length}`);\n if (nc.minlength !== undefined && len < nc.minlength)\n return Option.some(`${n.key} has length ${len}, expected at least ${nc.minlength}`);\n if (nc.maxlength !== undefined && len > nc.maxlength)\n return Option.some(`${n.key} has length ${len}, expected at most ${nc.maxlength}`);\n if (nc.pattern === undefined) return Option.none();\n const compiled = getRegex(nc.pattern, nc.flags ?? '');\n if (Result.isFailure(compiled))\n return Option.some(`invalid pattern /${nc.pattern}/: ${compiled.failure}`);\n const re = compiled.success;\n re.lastIndex = 0;\n return failure(!re.test(lex), () => `${n.key} does not match /${nc.pattern}/${nc.flags ?? ''}`);\n};\n\n/** The numeric range facets, in order: the first one the node violates. */\nconst numericFacetFailure = (n: Term.Term, nc: ShExJ.NodeConstraint): Option.Option<string> =>\n Arr.findFirst(numericFacets, ([facet, limitOf, ok]) =>\n Option.flatMap(limitOf(nc), (limit) =>\n Option.match(numericValue(n), {\n onNone: () => Option.some(`${n.key} is not numeric (${facet})`),\n onSome: (v) =>\n failure(!ok(compareWith(v, limit)), () => `${n.key} violates ${facet} ${limit}`),\n }),\n ),\n );\n\n/** The digits facets (`totaldigits`, `fractiondigits`). */\nconst digitsFailure = (n: Term.Term, nc: ShExJ.NodeConstraint): Option.Option<string> => {\n const parts =\n Term.isLiteral(n) &&\n MutableHashSet.has(decimalDerived, n.datatype.value) &&\n Xsd.isValidLexical(n.datatype.value, n.value)\n ? decimalParts(n.value)\n : Option.none();\n return Option.match(parts, {\n onNone: () => Option.some(`${n.key} is not an xsd:decimal value`),\n onSome: ({ int, frac }) => {\n const total = Math.max(1, int.length + frac.length);\n if (nc.totaldigits !== undefined && total > nc.totaldigits)\n return Option.some(`${n.key} has ${total} digits, expected at most ${nc.totaldigits}`);\n return failure(\n nc.fractiondigits !== undefined && frac.length > nc.fractiondigits,\n () => `${n.key} has ${frac.length} fraction digits, expected at most ${nc.fractiondigits}`,\n );\n },\n });\n};\n\n/**\n * Evaluates a node constraint (without its semantic actions): none on\n * success, or the reason it fails.\n *\n * @internal\n */\nexport const checkNodeConstraint = (\n n: Term.Term,\n nc: ShExJ.NodeConstraint,\n): Option.Option<string> => {\n const kindFailure = nodeKindFailure(nc, n);\n if (Option.isSome(kindFailure)) return kindFailure;\n if (nc.datatype !== undefined) {\n const f = datatypeFailure(n, nc.datatype);\n if (Option.isSome(f)) return f;\n }\n if (\n nc.length !== undefined ||\n nc.minlength !== undefined ||\n nc.maxlength !== undefined ||\n nc.pattern !== undefined\n ) {\n const f = stringFacetFailure(n, nc);\n if (Option.isSome(f)) return f;\n }\n const numeric = numericFacetFailure(n, nc);\n if (Option.isSome(numeric)) return numeric;\n if (nc.totaldigits !== undefined || nc.fractiondigits !== undefined) {\n const f = digitsFailure(n, nc);\n if (Option.isSome(f)) return f;\n }\n return failure(\n nc.values !== undefined && !nc.values.some((v) => valueMatches(n, v)),\n () => `${n.key} is not in the value set`,\n );\n};\n","/**\n * The ShEx validation engine: a synchronous evaluator of `satisfies` with\n * memoisation and coinductive (greatest fixed point) handling of recursive\n * references, partition search for triple expressions over bags of triple\n * constraint assignments, and ShEx 2.2 `EXTENDS` / `ABSTRACT` /\n * `RESTRICTS` semantics.\n *\n * @internal\n */\nimport * as Arr from 'effect/Array';\nimport * as Iterable from 'effect/Iterable';\nimport * as Match from 'effect/Match';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Result from 'effect/Result';\nimport * as Dataset from '../../Dataset.ts';\nimport * as Term from '../../Term.ts';\nimport type * as SemAct from '../SemAct.ts';\nimport type * as ShExJ from '../ShExJ.ts';\nimport { cardinality } from '../ShExJ.ts';\nimport type { SchemaIndex } from '../Structure.ts';\nimport { iterate } from './iterate.ts';\nimport { checkNodeConstraint } from './nodeConstraint.ts';\nimport * as Predicate from 'effect/Predicate';\n\n/** An arc of a node's neighbourhood. */\nexport interface Arc {\n readonly triple: Term.Triple;\n readonly dir: 'out' | 'in';\n readonly predicate: string;\n /** The node at the other end of the arc. */\n readonly value: Term.Term;\n}\n\ninterface Target {\n readonly label: string;\n count: number;\n}\n\ninterface Ctx {\n /** The neighbourhood subset being matched (none: the full neighbourhood). */\n readonly arcs: Option.Option<ReadonlyArray<Arc>>;\n readonly target: Option.Option<Target>;\n readonly partitionClosed: boolean;\n}\n\nconst FULL: Ctx = { arcs: Option.none(), target: Option.none(), partitionClosed: false };\n\n/** None means success; a string is a failure reason. */\ntype Outcome = Option.Option<string>;\n\nconst success: Outcome = Option.none();\n\n/** The labels of the unfinished (recursive) checks an outcome depends on. */\ntype Deps = MutableHashSet.MutableHashSet<string>;\n\n/** Whether a triple expression was used, and the outcome of its semantic actions. */\ninterface Visit {\n readonly used: boolean;\n readonly r: Outcome;\n}\n\nconst unused: Visit = { used: false, r: success };\n\n/** A triple constraint of a shape and the bag position of its arcs. */\ntype LocalIndex = WeakMap<ShExJ.TripleConstraint, number>;\n\n/** An arc with the triple constraints it can be assigned to. */\ninterface Choice {\n readonly arc: Arc;\n readonly tcs: ReadonlyArray<ShExJ.TripleConstraint>;\n}\n\n/** An arc assigned to one of its triple constraints. */\ninterface Assigned {\n readonly arc: Arc;\n readonly tc: ShExJ.TripleConstraint;\n}\n\n/** A failure reason as the messages print it (`undefined` when there is none). */\nconst show = (o: Outcome): string => Option.getOrElse(o, () => 'undefined');\n\nconst bagKey = (bag: ReadonlyArray<number>): string => bag.join(',');\n\nconst dedupe = (bags: ReadonlyArray<ReadonlyArray<number>>): Array<ReadonlyArray<number>> =>\n Arr.fromIterable(\n MutableHashMap.values(MutableHashMap.fromIterable(Arr.map(bags, (b) => [bagKey(b), b]))),\n );\n\n/** The first of the alternatives of a `ShapeOr` that `n` satisfies, preferring the target. */\nconst satisfiesOr = (\n e: ShExJ.ShapeOr,\n engine: Engine,\n n: Term.Term,\n ctx: Ctx,\n deps: Deps,\n): Outcome => {\n // When validating a descendant of a target shape, prefer an\n // alternative that goes through the target.\n let first: Outcome = Option.none();\n let passed = false;\n const throughTarget = Arr.some(e.shapeExprs, (c) => {\n const before = Option.match(ctx.target, { onNone: () => 0, onSome: (t) => t.count });\n const r = engine.satisfies(n, c, ctx, deps, Option.none());\n if (Option.isNone(r)) {\n if (Option.match(ctx.target, { onNone: () => true, onSome: (t) => t.count > before })) {\n return true;\n }\n passed = true;\n } else if (Option.isNone(first)) first = r;\n return false;\n });\n return throughTarget || passed\n ? success\n : Option.some(`${n.key} matches none of the alternatives (${show(first)})`);\n};\n\n// Built once: `satisfies` runs it for every shape expression of every node it checks.\nconst satisfiesExpr: (\n e: ShExJ.ShapeExpr,\n engine: Engine,\n n: Term.Term,\n ctx: Ctx,\n deps: Deps,\n declLabel: Option.Option<string>,\n) => Outcome = Match.fn(\n (\n e: ShExJ.ShapeExpr,\n _engine: Engine,\n _n: Term.Term,\n _ctx: Ctx,\n _deps: Deps,\n _declLabel: Option.Option<string>,\n ) => e,\n).pipe(\n Match.withReturnType<Outcome>(),\n Match.when({ type: 'ShapeAnd' }, (e, _e, engine, n, ctx, deps) =>\n Arr.findFirst(e.shapeExprs, (c) => engine.satisfies(n, c, ctx, deps, Option.none())),\n ),\n Match.when({ type: 'ShapeOr' }, (e, _e, engine, n, ctx, deps) =>\n satisfiesOr(e, engine, n, ctx, deps),\n ),\n Match.when({ type: 'ShapeNot' }, (e, _e, engine, n, ctx, deps) =>\n Option.isNone(engine.satisfies(n, e.shapeExpr, ctx, deps, Option.none()))\n ? Option.some(`${n.key} matches a negated shape expression`)\n : success,\n ),\n Match.when({ type: 'NodeConstraint' }, (e, _e, engine, n) => {\n const r = checkNodeConstraint(n, e);\n if (Option.isSome(r)) return r;\n return engine.runSemActs(e.semActs, { site: 'nodeConstraint', node: n });\n }),\n Match.when({ type: 'ShapeExternal' }, (_e, _input, engine, n, ctx, deps, declLabel) =>\n Option.match(\n Option.flatMap(declLabel, (l) => MutableHashMap.get(engine.externs, l)),\n {\n onNone: () =>\n Option.some(\n `no definition available for external shape ${Option.getOrElse(declLabel, () => 'undefined')}`,\n ),\n onSome: (ext) => engine.satisfies(n, ext.shapeExpr, ctx, deps, Option.none()),\n },\n ),\n ),\n Match.when({ type: 'Shape' }, (e, _e, engine, n, ctx, deps) =>\n engine.matchesShape(n, e, ctx, deps),\n ),\n Match.exhaustive,\n);\n\n/** Appends to `out` the triple constraints of `tcs` it does not have yet. */\nconst addAll = (\n out: Array<ShExJ.TripleConstraint>,\n tcs: ReadonlyArray<ShExJ.TripleConstraint>,\n): void =>\n tcs.forEach((tc) => {\n if (!out.includes(tc)) out.push(tc);\n });\n\n// Built once: `extensionTcs` runs it for every shape expression an extension refers to.\nconst extensionTcsOf: (\n e: ShExJ.ShapeExpr,\n engine: Engine,\n out: Array<ShExJ.TripleConstraint>,\n seen: MutableHashSet.MutableHashSet<string>,\n) => void = Match.fn(\n (\n e: ShExJ.ShapeExpr,\n _engine: Engine,\n _out: Array<ShExJ.TripleConstraint>,\n _seen: MutableHashSet.MutableHashSet<string>,\n ) => e,\n).pipe(\n Match.when({ type: 'Shape' }, (e, _e, engine, out, seen) => {\n addAll(out, engine.localTcs(e));\n e.extends?.forEach((x) => engine.extensionTcs(x, out, seen));\n }),\n Match.when({ type: Match.is('ShapeAnd', 'ShapeOr') }, (e, _e, engine, out, seen) => {\n e.shapeExprs.forEach((c) => engine.extensionTcs(c, out, seen));\n }),\n Match.when({ type: 'ShapeNot' }, (e, _e, engine, out, seen) => {\n engine.extensionTcs(e.shapeExpr, out, seen);\n }),\n Match.orElse(() => undefined),\n);\n\n/** The arcs of `quads` in one direction, each triple once. */\nconst arcsOf = (\n quads: Iterable<Term.Quad>,\n dir: Arc['dir'],\n valueOf: (q: Term.Quad) => Term.Term,\n): Array<Arc> => {\n const seen = MutableHashSet.empty<string>();\n return Arr.filterMap(Arr.fromIterable(quads), (q) => {\n const t = Term.triple(q.subject, q.predicate, q.object);\n if (MutableHashSet.has(seen, t.key)) return Result.failVoid;\n MutableHashSet.add(seen, t.key);\n return Result.succeed({ triple: t, dir, predicate: q.predicate.value, value: valueOf(q) });\n });\n};\n\nexport class Engine {\n private readonly cache = MutableHashMap.empty<string, Outcome>();\n private readonly inProgress = MutableHashSet.empty<string>();\n private readonly neighbourhoods = MutableHashMap.empty<string, ReadonlyArray<Arc>>();\n private readonly shapeTcs = new WeakMap<object, ReadonlyArray<ShExJ.TripleConstraint>>();\n\n readonly index: SchemaIndex;\n readonly dataset: Dataset.Dataset;\n readonly handler: SemAct.Handler;\n readonly externs: MutableHashMap.MutableHashMap<string, ShExJ.ShapeDecl>;\n constructor(\n index: SchemaIndex,\n dataset: Dataset.Dataset,\n handler: SemAct.Handler,\n externs: MutableHashMap.MutableHashMap<string, ShExJ.ShapeDecl>,\n ) {\n this.index = index;\n this.dataset = dataset;\n this.handler = handler;\n this.externs = externs;\n }\n\n // ---------------------------------------------------------------------------\n // Data access\n // ---------------------------------------------------------------------------\n\n neighbourhood(n: Term.Term): ReadonlyArray<Arc> {\n return Option.getOrElse(MutableHashMap.get(this.neighbourhoods, n.key), () => {\n const arcs = [\n ...(Term.isResource(n) || Term.isTriple(n)\n ? arcsOf(Dataset.match(this.dataset, { subject: n }), 'out', (q) => q.object)\n : []),\n ...(!Term.isVariable(n) && !Term.isDefaultGraph(n)\n ? arcsOf(Dataset.match(this.dataset, { object: n }), 'in', (q) => q.subject)\n : []),\n ];\n MutableHashMap.set(this.neighbourhoods, n.key, arcs);\n return arcs;\n });\n }\n\n // ---------------------------------------------------------------------------\n // Semantic actions\n // ---------------------------------------------------------------------------\n\n runSemActs(acts: ReadonlyArray<ShExJ.SemAct> = [], context: SemAct.SemActContext): Outcome {\n return Arr.findFirst(acts, (act) => {\n const r = this.handler(act, context);\n return Option.isSome(r) && !r.value\n ? Option.some(`semantic action <${act.name}> failed`)\n : Option.none();\n });\n }\n\n // ---------------------------------------------------------------------------\n // Shape labels\n // ---------------------------------------------------------------------------\n\n /** Validates `n` against a shape label (or a descendant) on its full neighbourhood. */\n validateLabel(n: Term.Term, label: string, deps: Deps): Outcome {\n return this.memoized(`${n.key}\\u0000${label}`, deps, (local) =>\n this.satisfiesDescendant(n, label, local),\n );\n }\n\n /** Validates `n` against the start shape expression. */\n validateStart(n: Term.Term, deps: Deps): Outcome {\n const start = this.index.schema.start;\n if (start === undefined) return Option.some('the schema has no start shape');\n return this.memoized(`${n.key}\\u0000\\u0000START`, deps, (local) =>\n this.satisfies(n, start, FULL, local, Option.none()),\n );\n }\n\n /**\n * Runs `check` once per `key` (a node and shape pair), caching its outcome.\n * A key already in progress is a recursive reference: it succeeds for now\n * and is reported to the caller in `deps`, and an outcome is cached only\n * once it no longer depends on an unfinished key.\n */\n private memoized(key: string, deps: Deps, check: (local: Deps) => Outcome): Outcome {\n const cached = MutableHashMap.get(this.cache, key);\n if (Option.isSome(cached)) return cached.value;\n if (MutableHashSet.has(this.inProgress, key)) {\n MutableHashSet.add(deps, key);\n return success;\n }\n MutableHashSet.add(this.inProgress, key);\n const local = MutableHashSet.empty<string>();\n const result = Result.try(() => check(local));\n MutableHashSet.remove(this.inProgress, key);\n if (Result.isFailure(result)) throw result.failure;\n const r = result.success;\n MutableHashSet.remove(local, key);\n if (Option.isSome(r) || MutableHashSet.size(local) === 0)\n MutableHashMap.set(this.cache, key, r);\n Iterable.forEach(local, (d) => MutableHashSet.add(deps, d));\n return r;\n }\n\n private satisfiesDescendant(n: Term.Term, label: string, deps: Deps): Outcome {\n const decl = this.index.shapes.get(label);\n if (decl === undefined) return Option.some(`unknown shape ${label}`);\n const candidates = [label, ...(this.index.descendants.get(label) ?? [])].filter(\n (l) => this.index.shapes.get(l)?.abstract !== true,\n );\n if (Arr.isReadonlyArrayEmpty(candidates))\n return Option.some(`${label} is abstract and has no concrete extension`);\n let first: Outcome = Option.none();\n const found = Arr.some(candidates, (c) => {\n const target: Option.Option<Target> =\n c === label ? Option.none() : Option.some({ label, count: 0 });\n const r = this.satisfiesDecl(\n n,\n c,\n { arcs: Option.none(), target, partitionClosed: false },\n deps,\n );\n if (\n Option.isNone(r) &&\n Option.match(target, { onNone: () => true, onSome: (t) => t.count > 0 })\n )\n return true;\n if (Option.isNone(first))\n first = Option.orElse(r, () =>\n Option.some(`${n.key} matches ${c} but not through ${label}`),\n );\n return false;\n });\n return found ? success : first;\n }\n\n private satisfiesDecl(n: Term.Term, label: string, ctx: Ctx, deps: Deps): Outcome {\n const decl = this.index.shapes.get(label);\n if (decl === undefined) return Option.some(`unknown shape ${label}`);\n return Arr.findFirst([...(decl.restricts ?? []), decl.shapeExpr], (e) =>\n this.satisfies(n, e, ctx, deps, Option.some(label)),\n );\n }\n\n // ---------------------------------------------------------------------------\n // Shape expressions\n // ---------------------------------------------------------------------------\n\n satisfies(\n n: Term.Term,\n e: ShExJ.ShapeExprOrRef,\n ctx: Ctx,\n deps: Deps,\n declLabel: Option.Option<string>,\n ): Outcome {\n if (Predicate.isString(e)) {\n if (Option.isNone(ctx.arcs)) return this.validateLabel(n, e, deps);\n const r = this.satisfiesDecl(n, e, ctx, deps);\n if (Option.isNone(r) && Option.isSome(ctx.target) && ctx.target.value.label === e)\n ctx.target.value.count++;\n return r;\n }\n return satisfiesExpr(e, this, n, ctx, deps, declLabel);\n }\n\n // ---------------------------------------------------------------------------\n // Triple constraints\n // ---------------------------------------------------------------------------\n\n /** The triple constraints of a triple expression (through inclusions). */\n private tcsOf(\n te: ShExJ.TripleExprOrRef,\n out: Array<ShExJ.TripleConstraint>,\n seen: MutableHashSet.MutableHashSet<string>,\n ): void {\n if (Predicate.isString(te)) {\n if (MutableHashSet.has(seen, te)) return;\n MutableHashSet.add(seen, te);\n const included = this.index.tripleExprs.get(te);\n if (included !== undefined) this.tcsOf(included, out, seen);\n return;\n }\n if (te.type === 'TripleConstraint') {\n if (!out.includes(te)) out.push(te);\n } else te.expressions.forEach((c) => this.tcsOf(c, out, seen));\n }\n\n localTcs(shape: ShExJ.Shape): ReadonlyArray<ShExJ.TripleConstraint> {\n const cached = this.shapeTcs.get(shape);\n if (cached !== undefined) return cached;\n const out: Array<ShExJ.TripleConstraint> = [];\n if (shape.expression !== undefined) this.tcsOf(shape.expression, out, MutableHashSet.empty());\n this.shapeTcs.set(shape, out);\n return out;\n }\n\n /** All triple constraints of the shapes an extension refers to (recursively). */\n extensionTcs(\n e: ShExJ.ShapeExprOrRef,\n out: Array<ShExJ.TripleConstraint>,\n seen: MutableHashSet.MutableHashSet<string>,\n ): void {\n if (Predicate.isString(e)) {\n if (MutableHashSet.has(seen, e)) return;\n MutableHashSet.add(seen, e);\n const decl = this.index.shapes.get(e);\n if (decl !== undefined) {\n decl.restricts?.forEach((r) => this.extensionTcs(r, out, seen));\n this.extensionTcs(decl.shapeExpr, out, seen);\n }\n return;\n }\n extensionTcsOf(e, this, out, seen);\n }\n\n matchesShape(n: Term.Term, shape: ShExJ.Shape, ctx: Ctx, deps: Deps): Outcome {\n const arcs = Option.getOrElse(ctx.arcs, () => this.neighbourhood(n));\n const closed = shape.closed === true || ctx.partitionClosed;\n const local = this.localTcs(shape);\n const extensions = shape.extends ?? [];\n const extTcs = Arr.map(extensions, (x) => {\n const out: Array<ShExJ.TripleConstraint> = [];\n this.extensionTcs(x, out, MutableHashSet.empty());\n return out;\n });\n const all = Arr.dedupeWith([...local, ...Arr.flatten(extTcs)], (a, b) => a === b);\n const localIndex: LocalIndex = new WeakMap(Arr.map(local, (tc, i) => [tc, i] as const));\n const extGroupsOf = new WeakMap<ShExJ.TripleConstraint, Array<number>>();\n extTcs.forEach((group, i) =>\n group.forEach((tc) => {\n if (localIndex.has(tc)) return;\n const g = extGroupsOf.get(tc);\n if (g === undefined) extGroupsOf.set(tc, [i]);\n else g.push(i);\n }),\n );\n const byPredicate = Arr.groupBy(\n all,\n (tc) => `${tc.inverse === true ? 'in' : 'out'} ${tc.predicate}`,\n );\n const extra = MutableHashSet.fromIterable(shape.extra ?? []);\n\n // Candidate triple constraints of every arc.\n const choices: Array<Choice> = [];\n const valueCache = MutableHashMap.empty<string, Outcome>();\n const valueOutcome = (\n tc: ShExJ.TripleConstraint,\n valueExpr: ShExJ.ShapeExprOrRef,\n arc: Arc,\n ) => {\n const ck = `${all.indexOf(tc)} ${arc.value.key}`;\n return Option.getOrElse(MutableHashMap.get(valueCache, ck), () => {\n const r = this.satisfies(arc.value, valueExpr, FULL, deps, Option.none());\n MutableHashMap.set(valueCache, ck, r);\n return r;\n });\n };\n const arcFailure = Arr.findFirst(arcs, (arc): Outcome => {\n const tcs = byPredicate[`${arc.dir} ${arc.predicate}`];\n if (tcs === undefined) {\n return arc.dir === 'out' && closed\n ? Option.some(`closed shape does not allow ${arc.triple.key}`)\n : success;\n }\n let firstReason: Outcome = Option.none();\n const ok = Arr.filter(tcs, (tc) => {\n if (tc.valueExpr === undefined) return true;\n const r = valueOutcome(tc, tc.valueExpr, arc);\n if (Option.isNone(r)) return true;\n if (Option.isNone(firstReason)) firstReason = r;\n return false;\n });\n if (Arr.isReadonlyArrayEmpty(ok)) {\n return MutableHashSet.has(extra, arc.predicate)\n ? success\n : Option.some(\n `${arc.triple.key} does not match its triple constraint: ${show(firstReason)}`,\n );\n }\n choices.push({ arc, tcs: ok });\n return success;\n });\n if (Option.isSome(arcFailure)) return arcFailure;\n\n const hasTcSemActs = local.some((tc) => tc.semActs !== undefined);\n const tried = MutableHashSet.empty<string>();\n // Filled in order by `search`, so it is dense once every arc is assigned.\n const assignment: Array<Assigned> = [];\n let firstFailure: Outcome = Option.none();\n\n const tryAssignment = (): Outcome => {\n const counts = Array.from({ length: local.length }, () => 0);\n const partitions: Array<Array<Arc>> = extensions.map(() => []);\n const keyParts = Arr.filterMap(assignment, ({ arc, tc }) => {\n const li = localIndex.get(tc);\n if (li !== undefined) {\n counts[li] = (counts[li] ?? 0) + 1;\n return hasTcSemActs ? Result.succeed(`L${li}`) : Result.failVoid;\n }\n const groups = extGroupsOf.get(tc) ?? [];\n groups.forEach((g) => partitions[g]?.push(arc));\n return Result.succeed(`E${groups.join('.')}`);\n });\n const key = `${counts.join(',')}|${keyParts.join('-')}`;\n if (MutableHashSet.has(tried, key)) return Option.some('duplicate partition');\n MutableHashSet.add(tried, key);\n // Local triple expression.\n if (shape.expression !== undefined) {\n if (!this.matchBag(shape.expression, counts, localIndex)) {\n return Option.some(`the triples of ${n.key} do not match the triple expression`);\n }\n } else if (counts.some((c) => c > 0)) return Option.some('unexpected triples');\n // Extensions.\n const extFailure = Arr.findFirst(extensions, (x, i) =>\n this.satisfies(\n n,\n x,\n { arcs: Option.some(partitions[i] ?? []), target: ctx.target, partitionClosed: closed },\n deps,\n Option.none(),\n ),\n );\n if (Option.isSome(extFailure)) return extFailure;\n // Semantic actions.\n const matched = Arr.map(assignment, ({ arc }) => arc.triple);\n const tcFailure = Arr.findFirst(assignment, ({ arc, tc }) =>\n localIndex.has(tc)\n ? this.runSemActs(tc.semActs, { site: 'tripleConstraint', node: n, triple: arc.triple })\n : success,\n );\n if (Option.isSome(tcFailure)) return tcFailure;\n if (shape.expression !== undefined) {\n const r = this.groupSemActs(shape.expression, counts, localIndex, n, matched);\n if (Option.isSome(r)) return r;\n }\n return this.runSemActs(shape.semActs, { site: 'shape', node: n, triples: matched });\n };\n\n const search = (i: number): boolean => {\n const choice = choices[i];\n if (choice === undefined) {\n const r = tryAssignment();\n if (Option.isNone(r)) return true;\n if (r.value !== 'duplicate partition' && Option.isNone(firstFailure)) firstFailure = r;\n return false;\n }\n return Arr.some(choice.tcs, (tc) => {\n assignment[i] = { arc: choice.arc, tc };\n return search(i + 1);\n });\n };\n if (search(0)) return success;\n return Option.orElse(firstFailure, () => Option.some(`${n.key} does not match the shape`));\n }\n\n // ---------------------------------------------------------------------------\n // Triple expression matching on bags\n // ---------------------------------------------------------------------------\n\n /** Whether the bag of triple constraint counts matches the triple expression. */\n private matchBag(\n te: ShExJ.TripleExprOrRef,\n counts: ReadonlyArray<number>,\n localIndex: LocalIndex,\n ): boolean {\n const zero = bagKey(counts.map(() => 0));\n return this.step(te, counts, localIndex, 0).some((b) => bagKey(b) === zero);\n }\n\n private resolveTe(te: ShExJ.TripleExprOrRef): Option.Option<ShExJ.TripleExpr> {\n return Predicate.isString(te)\n ? Option.fromUndefinedOr(this.index.tripleExprs.get(te))\n : Option.some(te);\n }\n\n /** All bags remaining after `te` (with its cardinality) consumes part of `bag`. */\n private step(\n te0: ShExJ.TripleExprOrRef,\n bag: ReadonlyArray<number>,\n localIndex: LocalIndex,\n depth: number,\n ): Array<ReadonlyArray<number>> {\n const resolved = this.resolveTe(te0);\n if (Option.isNone(resolved) || depth > 64) return [];\n const te = resolved.value;\n const { min, max } = cardinality(te);\n if (te.type === 'TripleConstraint') {\n const k = localIndex.get(te);\n if (k === undefined) return min === 0 ? [bag] : [];\n const avail = bag[k] ?? 0;\n const hi = Math.min(max, avail);\n return hi < min\n ? []\n : Arr.map(Arr.range(min, hi), (c) => {\n const nb = bag.slice();\n nb[k] = avail - c;\n return nb;\n });\n }\n const once = (b: ReadonlyArray<number>): Array<ReadonlyArray<number>> =>\n te.type === 'OneOf'\n ? dedupe(te.expressions.flatMap((x) => this.step(x, b, localIndex, depth + 1)))\n : Arr.reduce(te.expressions, [b], (sets: Array<ReadonlyArray<number>>, x) =>\n Arr.isReadonlyArrayEmpty(sets)\n ? sets\n : dedupe(sets.flatMap((s) => this.step(x, s, localIndex, depth + 1))),\n );\n const result = MutableHashMap.empty<string, ReadonlyArray<number>>();\n if (min === 0) MutableHashMap.set(result, bagKey(bag), bag);\n iterate({ i: 1, frontier: [bag] }, ({ i, frontier }) => {\n if (i > max || Arr.isReadonlyArrayEmpty(frontier)) return Option.none();\n const next = dedupe(frontier.flatMap(once));\n if (i < min) return Option.some({ i: i + 1, frontier: next });\n const fresh = Arr.filter(next, (b) => {\n const k = bagKey(b);\n if (MutableHashMap.has(result, k)) return false;\n MutableHashMap.set(result, k, b);\n return true;\n });\n return Option.some({ i: i + 1, frontier: fresh });\n });\n return Arr.fromIterable(MutableHashMap.values(result));\n }\n\n /** Runs the semantic actions of the groups (EachOf/OneOf) that took part in a match. */\n private groupSemActs(\n te0: ShExJ.TripleExprOrRef,\n counts: ReadonlyArray<number>,\n localIndex: LocalIndex,\n n: Term.Term,\n triples: ReadonlyArray<Term.Triple>,\n ): Outcome {\n const visit = (\n node: ShExJ.TripleExprOrRef,\n seen: MutableHashSet.MutableHashSet<string>,\n ): Visit => {\n if (Predicate.isString(node)) {\n if (MutableHashSet.has(seen, node)) return unused;\n MutableHashSet.add(seen, node);\n }\n const resolved = this.resolveTe(node);\n if (Option.isNone(resolved)) return unused;\n const te = resolved.value;\n if (te.type === 'TripleConstraint') {\n const k = localIndex.get(te);\n return { used: k !== undefined && (counts[k] ?? 0) > 0, r: success };\n }\n let used = false;\n const failed = Arr.findFirst(te.expressions, (x) => {\n const v = visit(x, seen);\n if (Option.isSome(v.r)) return Option.some(v);\n used ||= v.used;\n return Option.none();\n });\n if (Option.isSome(failed)) return failed.value;\n if (used || cardinality(te).min > 0) {\n const r = this.runSemActs(te.semActs, { site: 'tripleExpression', node: n, triples });\n if (Option.isSome(r)) return { used, r };\n }\n return { used, r: success };\n };\n return visit(te0, MutableHashSet.empty()).r;\n }\n}\n","/**\n * ShEx validation: checks node/shape associations of a shape map against an\n * RDF dataset per the ShEx 2.1 semantics (with the ShEx 2.2 `EXTENDS`,\n * `ABSTRACT` and `RESTRICTS` extensions).\n *\n * Recursive references are evaluated coinductively (the maximal typing) and\n * memoised; schemas are checked for the structural requirements, which\n * guarantee a stratification so that negation is well-defined. Imports are\n * loaded through the `SchemaLoader` service and semantic actions are\n * dispatched to the `SemAct.SemActHandler` service.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Schema from 'effect/Schema';\nimport type * as SchemaAST from 'effect/SchemaAST';\nimport * as SchemaIssue from 'effect/SchemaIssue';\nimport * as SchemaTransformation from 'effect/SchemaTransformation';\nimport * as Dataset from '../Dataset.ts';\nimport type * as Term from '../Term.ts';\nimport { Engine } from './internal/engine.ts';\nimport * as SemAct from './SemAct.ts';\nimport { ShExImportError, type ShExStructureError, ShExValidationError } from './ShExError.ts';\nimport type * as ShExJ from './ShExJ.ts';\nimport * as ShapeMap from './ShapeMap.ts';\nimport * as Structure from './Structure.ts';\n\n// -----------------------------------------------------------------------------\n// Services\n// -----------------------------------------------------------------------------\n\n/**\n * Loads imported schemas by IRI.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Loader {\n readonly load: (iri: string) => Effect.Effect<ShExJ.Schema, ShExImportError>;\n}\n\n/**\n * The service used to resolve `IMPORT`s. The default loader fails for every\n * import.\n *\n * @since 0.1.0\n * @category services\n */\nexport const SchemaLoader: Context.Reference<Loader> = Context.Reference<Loader>(\n '@thomasfosterau/effect-rdf/shex/SchemaLoader',\n {\n defaultValue: () => ({\n load: (iri) =>\n Effect.fail(new ShExImportError({ iri, message: 'no SchemaLoader is configured' })),\n }),\n },\n);\n\n/**\n * A layer providing a `SchemaLoader`.\n *\n * @since 0.1.0\n * @category layers\n */\nexport const loaderLayer = (loader: Loader): Layer.Layer<never> =>\n Layer.succeed(SchemaLoader, loader);\n\n/**\n * A loader serving schemas from a map of IRIs (useful for tests and bundled\n * schemas).\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const loaderFromRecord = (schemas: Readonly<Record<string, ShExJ.Schema>>): Loader => ({\n load: (iri) => {\n const s = schemas[iri];\n return s === undefined\n ? Effect.fail(new ShExImportError({ iri, message: 'unknown schema' }))\n : Effect.succeed(s);\n },\n});\n\n// -----------------------------------------------------------------------------\n// Models\n// -----------------------------------------------------------------------------\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Options {\n /**\n * Definitions for shapes declared `EXTERNAL`, given as a schema whose\n * declarations share the external labels.\n */\n readonly externalShapes?: ShExJ.Schema | undefined;\n /**\n * Code for semantic actions written without code (`%<name>%`), matched by\n * action name.\n */\n readonly externalSemActs?: ReadonlyArray<ShExJ.SemAct> | undefined;\n /** The IRI of the schema itself, so that circular imports of it are ignored. */\n readonly schemaIri?: string | undefined;\n}\n\n/**\n * The validation result of one node/shape association.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ShapeResult {\n readonly node: Term.GroundTerm;\n readonly shape: ShapeMap.ShapeSelector;\n readonly status: 'conformant' | 'nonconformant';\n /** Why the node does not conform. */\n readonly reason?: string;\n}\n\n/**\n * A validation report: one result per association of the (fixed) shape map.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ValidationReport {\n readonly results: ReadonlyArray<ShapeResult>;\n /** Whether every association conforms. */\n readonly conformant: boolean;\n}\n\n/**\n * A validator for one (import-resolved, structurally checked) schema.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Validator {\n /** The schema with the declarations of its imports merged in. */\n readonly schema: ShExJ.Schema;\n readonly index: Structure.SchemaIndex;\n /** Validates a fixed or query shape map against a dataset. */\n readonly validate: (\n dataset: Dataset.Dataset,\n shapeMap: ShapeMap.QueryShapeMap,\n ) => Effect.Effect<ValidationReport, ShExValidationError>;\n}\n\n// -----------------------------------------------------------------------------\n// Imports\n// -----------------------------------------------------------------------------\n\n/**\n * Loads the imports of a schema (transitively, each IRI once) and merges\n * their declarations into it. The importing schema's `start` and `startActs`\n * are kept.\n *\n * @since 0.1.0\n * @category imports\n */\nexport const resolveImports = Effect.fnUntraced(function* (\n schema: ShExJ.Schema,\n schemaIri?: string,\n) {\n if (schema.imports === undefined || Arr.isReadonlyArrayEmpty(schema.imports)) return schema;\n const loader = yield* SchemaLoader;\n const seen = MutableHashSet.fromIterable(schemaIri === undefined ? [] : [schemaIri]);\n const shapes: Array<ShExJ.ShapeDecl> = [...(schema.shapes ?? [])];\n const labels = MutableHashSet.fromIterable(shapes.map((s) => s.id));\n // Breadth first, each IRI once: the queue holds the imports still to load.\n const load = (queue: ReadonlyArray<string>): Effect.Effect<void, ShExImportError> =>\n Arr.match(queue, {\n onEmpty: () => Effect.void,\n onNonEmpty: ([iri, ...rest]) => {\n if (MutableHashSet.has(seen, iri)) return load(rest);\n MutableHashSet.add(seen, iri);\n return Effect.flatMap(loader.load(iri), (imported) => {\n imported.shapes?.forEach((d) => {\n if (MutableHashSet.has(labels, d.id)) return;\n MutableHashSet.add(labels, d.id);\n shapes.push(d);\n });\n return load([...rest, ...(imported.imports ?? [])]);\n });\n },\n });\n yield* load(schema.imports);\n const { imports: _, ...rest } = schema;\n // SAFETY: dropping the optional `imports` (and re-adding `shapes` only when non-empty) leaves a\n // valid `ShExJ.Schema`; the spread just loses the nominal type.\n return Arr.isReadonlyArrayNonEmpty(shapes) ? { ...rest, shapes } : rest;\n});\n\n// -----------------------------------------------------------------------------\n// Validation\n// -----------------------------------------------------------------------------\n\nconst isFixedMap = (map: ShapeMap.QueryShapeMap): map is ShapeMap.FixedShapeMap =>\n map.every((a) => !Predicate.isTagged(a.node, 'TriplePattern'));\n\n/**\n * Prepares a validator: loads imports through `SchemaLoader`, checks the\n * structural requirements and indexes the schema. Semantic actions are\n * dispatched to the `SemAct.SemActHandler` in scope when the validator is\n * made.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const make = Effect.fnUntraced(function* (schema: ShExJ.Schema, options: Options = {}) {\n const resolved = yield* resolveImports(schema, options.schemaIri);\n yield* Structure.check(resolved);\n const index = Structure.makeIndex(resolved);\n const baseHandler = yield* SemAct.SemActHandler;\n const handler =\n options.externalSemActs === undefined\n ? baseHandler\n : SemAct.withExternalCode(baseHandler, options.externalSemActs);\n const externs = MutableHashMap.fromIterable(\n Arr.map(options.externalShapes?.shapes ?? [], (d) => [d.id, d] as const),\n );\n\n const validate = (\n dataset: Dataset.Dataset,\n shapeMap: ShapeMap.QueryShapeMap,\n ): Effect.Effect<ValidationReport, ShExValidationError> =>\n Effect.suspend(() => {\n const fixed = isFixedMap(shapeMap) ? shapeMap : ShapeMap.resolve(shapeMap, dataset);\n const invalid = Arr.findFirst(fixed, (a) =>\n ShapeMap.isStart(a.shape)\n ? resolved.start === undefined\n ? Option.some('the shape map uses START but the schema has no start')\n : Option.none()\n : index.shapes.has(a.shape)\n ? Option.none()\n : Option.some(`the schema does not declare shape ${a.shape}`),\n );\n if (Option.isSome(invalid)) {\n return Effect.fail(new ShExValidationError({ message: invalid.value }));\n }\n const engine = new Engine(index, dataset, handler, externs);\n const startFailure = engine.runSemActs(resolved.startActs, {\n site: 'start',\n node: undefined,\n });\n const results: Array<ShapeResult> = fixed.map((a) => {\n const reason = Option.orElse(startFailure, () =>\n ShapeMap.isStart(a.shape)\n ? engine.validateStart(a.node, MutableHashSet.empty())\n : engine.validateLabel(a.node, a.shape, MutableHashSet.empty()),\n );\n return Option.match(reason, {\n onNone: (): ShapeResult => ({ node: a.node, shape: a.shape, status: 'conformant' }),\n onSome: (why): ShapeResult => ({\n node: a.node,\n shape: a.shape,\n status: 'nonconformant',\n reason: why,\n }),\n });\n });\n const conformant = results.every((r) => r.status === 'conformant');\n return Effect.as(\n Effect.annotateCurrentSpan({\n 'shex.associations': results.length,\n 'shex.nonconformant': results.filter((r) => r.status === 'nonconformant').length,\n 'shex.conformant': conformant,\n }),\n { results, conformant },\n );\n }).pipe(Effect.withSpan('ShEx.validate'));\n\n // SAFETY: `satisfies Validator` checks the literal; the assertion only widens it to the\n // interface.\n return { schema: resolved, index, validate } satisfies Validator;\n});\n\n/**\n * Validates a shape map against a dataset with a schema.\n *\n * @since 0.1.0\n * @category validation\n */\nexport const validate = (\n dataset: Dataset.Dataset,\n schema: ShExJ.Schema,\n shapeMap: ShapeMap.QueryShapeMap,\n options: Options = {},\n): Effect.Effect<ValidationReport, ShExValidationError | ShExImportError | ShExStructureError> =>\n Effect.flatMap(make(schema, options), (v) => v.validate(dataset, shapeMap));\n\n/**\n * Validates a single node against a shape label (or `START`).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const validateNode = (\n dataset: Dataset.Dataset,\n schema: ShExJ.Schema,\n node: Term.GroundTerm,\n shape: ShapeMap.ShapeSelector,\n options: Options = {},\n): Effect.Effect<ShapeResult, ShExValidationError | ShExImportError | ShExStructureError> =>\n // A one-association shape map yields exactly one result.\n Effect.map(validate(dataset, schema, [{ node, shape }], options), (r) =>\n Arr.getUnsafe(r.results, 0),\n );\n\n// -----------------------------------------------------------------------------\n// Schema integration\n// -----------------------------------------------------------------------------\n\n/**\n * Formats a shape result on one line: `<node>@<shape>` and, when it does\n * not conform, why.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatResult = (result: ShapeResult): string => {\n const label = ShapeMap.isStart(result.shape) ? 'START' : `<${result.shape}>`;\n const association = `${result.node.key}@${label}`;\n return result.reason === undefined\n ? `${association}: ${result.status}`\n : `${association}: ${result.reason}`;\n};\n\n// One `InvalidValue` per nonconformant association, annotated with its message and result.\nconst nonconformance = (\n failing: Arr.NonEmptyReadonlyArray<ShapeResult>,\n data: Dataset.Dataset,\n options: SchemaAST.ParseOptions,\n): SchemaIssue.Issue => {\n const issues = Arr.map(\n failing,\n (result) =>\n new SchemaIssue.InvalidValue({ message: formatResult(result), result }, result, options),\n );\n return new SchemaIssue.Composite(Dataset.DatasetSchema.ast, issues, data);\n};\n\n/**\n * A `Schema` that accepts a `Dataset` only if every association of the\n * shape map (or the single `{ node, shape }`) conforms, so ShEx validation\n * fits into `Schema.decode` pipelines. It takes a prepared `Validator`\n * (`make`), so imports are resolved before the schema is built and decoding\n * needs no services.\n *\n * Decoding fails with a `SchemaIssue.Composite` holding one `InvalidValue`\n * issue per nonconformant association: its `message` annotation is the\n * formatted result (`formatResult`) and its `result` annotation the\n * `ShapeResult`. A shape map naming an undeclared shape fails with one\n * `InvalidValue`. Encoding is the identity.\n *\n * Compose it with a syntax codec to parse and validate in one decode:\n * `Turtle.codec.schema.pipe(Schema.decodeTo(Validator.schema(validator, map)))`.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const schema = (\n validator: Validator,\n shapeMap: ShapeMap.QueryShapeMap | ShapeMap.Association,\n): Schema.decodeTo<Schema.declare<Dataset.Dataset>, Schema.declare<Dataset.Dataset>> => {\n const map: ShapeMap.QueryShapeMap = 'node' in shapeMap ? [shapeMap] : shapeMap;\n return Dataset.DatasetSchema.pipe(\n Schema.decodeTo(\n Dataset.DatasetSchema,\n SchemaTransformation.transformEffect({\n decode: (data: Dataset.Dataset, options) =>\n validator.validate(data, map).pipe(\n Effect.mapError(\n (e) => new SchemaIssue.InvalidValue({ message: e.message }, data, options),\n ),\n Effect.flatMap((report) => {\n const failing = Arr.filter(report.results, (r) => r.status === 'nonconformant');\n return Arr.isReadonlyArrayNonEmpty(failing)\n ? Effect.fail(nonconformance(failing, data, options))\n : Effect.succeed(data);\n }),\n ),\n encode: (data: Dataset.Dataset) => Effect.succeed(data),\n }),\n ),\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { d as NamedNode, s as GroundTerm } from "./Term-B_4ezyXq.mjs";
2
+ import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
3
+ import "./index-Cms2TYfC.mjs";
4
+ import { c as ShapeId, l as ShapesGraph, u as ShapesGraphError } from "./Shapes-BQFDFc4Q.mjs";
5
+ import { r as SparqlEvaluationError } from "./Sparql-DecpWTPh.mjs";
6
+ import { i as ValidationReport } from "./ValidationReport-Dx3WxY0h.mjs";
7
+ import * as Schema from "effect/Schema";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Context from "effect/Context";
10
+ import * as Layer from "effect/Layer";
11
+ declare namespace Validator_d_exports {
12
+ export { ConformanceError, RecursiveShapeError, SchemaOptions, UnsupportedFeatureError, ValidateOptions, ValidationError, Validator, assertConforms, conforms, layer, make, schema, severities, validate, validateNode };
13
+ }
14
+ declare const RecursiveShapeError_base: Schema.Class<RecursiveShapeError, Schema.TaggedStruct<"RecursiveShapeError", {
15
+ readonly message: Schema.String;
16
+ readonly shape: Schema.String;
17
+ readonly focusNode: Schema.String;
18
+ }>, import("effect/Cause").YieldableError>;
19
+ /**
20
+ * Validation reached a shape again for the same focus node while still
21
+ * validating it (a recursive shape). The SHACL specification leaves the
22
+ * validation of recursive shapes undefined.
23
+ *
24
+ * @since 0.1.0
25
+ * @category errors
26
+ */
27
+ declare class RecursiveShapeError extends RecursiveShapeError_base {}
28
+ declare const UnsupportedFeatureError_base: Schema.Class<UnsupportedFeatureError, Schema.TaggedStruct<"UnsupportedFeatureError", {
29
+ readonly message: Schema.String;
30
+ readonly feature: Schema.String;
31
+ readonly shape: Schema.String;
32
+ }>, import("effect/Cause").YieldableError>;
33
+ /**
34
+ * The shapes graph uses a feature this validator cannot evaluate (currently:
35
+ * SHACL-SPARQL constraints and targets when no
36
+ * `Sparql.SparqlConstraintEvaluator` is provided).
37
+ *
38
+ * @since 0.1.0
39
+ * @category errors
40
+ */
41
+ declare class UnsupportedFeatureError extends UnsupportedFeatureError_base {}
42
+ declare const ConformanceError_base: Schema.Class<ConformanceError, Schema.TaggedStruct<"ConformanceError", {
43
+ readonly message: Schema.String;
44
+ readonly report: Schema.declare<ValidationReport, ValidationReport>;
45
+ }>, import("effect/Cause").YieldableError>;
46
+ /**
47
+ * The data graph does not conform to the shapes graph (raised by
48
+ * `Validator.check` and `assertConforms`).
49
+ *
50
+ * @since 0.1.0
51
+ * @category errors
52
+ */
53
+ declare class ConformanceError extends ConformanceError_base {}
54
+ /**
55
+ * The errors that can prevent validation from producing a report (SHACL
56
+ * "failures").
57
+ *
58
+ * @since 0.1.0
59
+ * @category errors
60
+ */
61
+ type ValidationError = ShapesGraphError | RecursiveShapeError | UnsupportedFeatureError | SparqlEvaluationError;
62
+ /**
63
+ * Validation options.
64
+ *
65
+ * @since 0.1.0
66
+ * @category models
67
+ */
68
+ interface ValidateOptions {
69
+ /**
70
+ * Validate the union of the data graph and the shapes graph (useful when
71
+ * the data graph declares `sh:shapesGraph`, or the shapes and data live in
72
+ * the same document). Default `false`.
73
+ */
74
+ readonly includeShapesGraph?: boolean | undefined;
75
+ /**
76
+ * What to do with SHACL-SPARQL constraints and targets when no
77
+ * `Sparql.SparqlConstraintEvaluator` is provided: `"fail"` (default) fails
78
+ * with an `UnsupportedFeatureError`, `"ignore"` skips them.
79
+ */
80
+ readonly sparql?: 'fail' | 'ignore' | undefined;
81
+ /**
82
+ * What to do when a shape is (directly or indirectly) validated against a
83
+ * focus node while it is already being validated against the same node:
84
+ * `"fail"` (default) fails with a `RecursiveShapeError`, `"ignore"` treats
85
+ * the recursive reference as conforming.
86
+ */
87
+ readonly recursion?: 'fail' | 'ignore' | undefined;
88
+ /**
89
+ * Attach the nested results that caused `sh:node`, `sh:not`, `sh:and`,
90
+ * `sh:or`, `sh:xone` and qualified value shape results as `sh:detail`.
91
+ * Default `false`.
92
+ */
93
+ readonly details?: boolean | undefined;
94
+ }
95
+ /**
96
+ * Validates a data graph against a shapes graph (either an RDF dataset, which
97
+ * is parsed first, or a pre-parsed `Shapes.ShapesGraph`).
98
+ *
99
+ * SPARQL-based constraints and targets are delegated to a
100
+ * `Sparql.SparqlConstraintEvaluator` when one is present in the context.
101
+ *
102
+ * @since 0.1.0
103
+ * @category validation
104
+ */
105
+ declare const validate: (dataGraph: Dataset, shapesGraph: Dataset | ShapesGraph, options?: ValidateOptions) => Effect.Effect<ValidationReport, ValidationError>;
106
+ /**
107
+ * Validates a single focus node against one shape of a shapes graph,
108
+ * ignoring targets.
109
+ *
110
+ * @since 0.1.0
111
+ * @category validation
112
+ */
113
+ declare const validateNode: (dataGraph: Dataset, shapesGraph: Dataset | ShapesGraph, shape: ShapeId, focusNode: GroundTerm, options?: ValidateOptions) => Effect.Effect<ValidationReport, ValidationError>;
114
+ /**
115
+ * Whether a data graph conforms to a shapes graph.
116
+ *
117
+ * @since 0.1.0
118
+ * @category validation
119
+ */
120
+ declare const conforms: (dataGraph: Dataset, shapesGraph: Dataset | ShapesGraph, options?: ValidateOptions) => Effect.Effect<boolean, ValidationError>;
121
+ /**
122
+ * Validates and fails with a `ConformanceError` (carrying the report) when
123
+ * the data graph does not conform; succeeds with the data graph otherwise.
124
+ *
125
+ * @since 0.1.0
126
+ * @category validation
127
+ */
128
+ declare const assertConforms: (dataGraph: Dataset, shapesGraph: Dataset | ShapesGraph, options?: ValidateOptions) => Effect.Effect<Dataset, ValidationError | ConformanceError>;
129
+ declare const Validator_base: Context.ServiceClass<Validator, "@thomasfosterau/effect-rdf/shacl/Validator", {
130
+ /** The compiled shapes graph. */
131
+ readonly shapesGraph: ShapesGraph;
132
+ /** Validates a data graph, producing a report. */
133
+ readonly validate: (dataGraph: Dataset, options?: ValidateOptions) => Effect.Effect<ValidationReport, ValidationError>;
134
+ /** Whether a data graph conforms. */
135
+ readonly conforms: (dataGraph: Dataset, options?: ValidateOptions) => Effect.Effect<boolean, ValidationError>;
136
+ /** Succeeds with the data graph if it conforms, failing with a `ConformanceError` otherwise. */
137
+ readonly check: (dataGraph: Dataset, options?: ValidateOptions) => Effect.Effect<Dataset, ValidationError | ConformanceError>;
138
+ }>;
139
+ /**
140
+ * A validator bound to a pre-compiled shapes graph.
141
+ *
142
+ * @since 0.1.0
143
+ * @category services
144
+ */
145
+ declare class Validator extends Validator_base {}
146
+ /**
147
+ * Compiles a shapes graph into a `Validator` service implementation. The
148
+ * given options are defaults that individual calls may override.
149
+ *
150
+ * @since 0.1.0
151
+ * @category constructors
152
+ */
153
+ declare const make: (shapesGraph: Dataset | ShapesGraph, defaults?: ValidateOptions) => Effect.Effect<Validator['Service'], ShapesGraphError>;
154
+ /**
155
+ * A layer providing a `Validator` for the given shapes graph.
156
+ *
157
+ * @since 0.1.0
158
+ * @category layers
159
+ */
160
+ declare const layer: (shapesGraph: Dataset | ShapesGraph, defaults?: ValidateOptions) => Layer.Layer<Validator, ShapesGraphError>;
161
+ /**
162
+ * Options for `schema`: validation options plus the severity that fails
163
+ * decoding.
164
+ *
165
+ * @since 0.1.0
166
+ * @category schemas
167
+ */
168
+ interface SchemaOptions extends ValidateOptions {
169
+ /**
170
+ * The least severe result that fails decoding: `"violation"` (default)
171
+ * accepts data whose results are only `sh:Warning` or `sh:Info`,
172
+ * `"warning"` also fails on warnings, and `"info"` on any result (the
173
+ * report's own `conforms`, which is false whenever there is any result).
174
+ * Results with a custom severity count as violations.
175
+ */
176
+ readonly failOn?: 'violation' | 'warning' | 'info' | undefined;
177
+ }
178
+ /**
179
+ * A `Schema` that accepts a `Dataset` only if it conforms to the given shapes
180
+ * graph. Decoding fails with a `SchemaIssue.Composite` holding one
181
+ * `InvalidValue` issue per failing result: its `message` annotation is the
182
+ * formatted result (`ValidationReport.formatResult`) and its `result`
183
+ * annotation the `ValidationResult` itself, for consumers that inspect
184
+ * failures (focus node, path, constraint component, severity, messages). By
185
+ * default only `sh:Violation` results fail (see `SchemaOptions.failOn`).
186
+ * Encoding is the identity.
187
+ *
188
+ * Compose it with a syntax codec to parse and validate in one decode:
189
+ * `Turtle.codec.schema.pipe(Schema.decodeTo(Validator.schema(shapes)))`.
190
+ *
191
+ * @since 0.1.0
192
+ * @category schemas
193
+ */
194
+ declare const schema: (shapesGraph: ShapesGraph, options?: SchemaOptions) => Schema.decodeTo<Schema.declare<Dataset>, Schema.declare<Dataset>>;
195
+ /**
196
+ * The SHACL `sh:Violation`, `sh:Warning` and `sh:Info` severities.
197
+ *
198
+ * @since 0.1.0
199
+ * @category constants
200
+ */
201
+ declare const severities: {
202
+ readonly Violation: NamedNode<"http://www.w3.org/ns/shacl#Violation">;
203
+ readonly Warning: NamedNode<"http://www.w3.org/ns/shacl#Warning">;
204
+ readonly Info: NamedNode<"http://www.w3.org/ns/shacl#Info">;
205
+ };
206
+ export { ValidateOptions as a, Validator_d_exports as c, layer as d, make as f, validateNode as g, validate as h, UnsupportedFeatureError as i, assertConforms as l, severities as m, RecursiveShapeError as n, ValidationError as o, schema as p, SchemaOptions as r, Validator as s, ConformanceError as t, conforms as u };
207
+ //# sourceMappingURL=Validator-Dl8cih5V.d.mts.map