@thomasfosterau/effect-rdf 0.0.0-stage → 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 +2251 -2
  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 +195 -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,568 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, N as isBlankNode, Y as literal, Z as namedNode, z as isLiteral } from "./Term-CFLG1qu4.mjs";
3
+ import { A as objectsOf, E as match, U as union, t as DatasetSchema } from "./Dataset-BlmlcI7J.mjs";
4
+ import { t as Vocab_exports } from "./Vocab-DceKywpq.mjs";
5
+ import { S as toValue, v as isWellFormed } from "./Xsd-Cdgx5zRB.mjs";
6
+ import { a as substitute, i as localName, n as display } from "./Message-CK_DGQuu.mjs";
7
+ import { r as sh, t as SH } from "./Vocabulary-CnQl-_Z4.mjs";
8
+ import { a as evaluate, f as toSparql, l as predicate } from "./Path-B20Yp8KE.mjs";
9
+ import { a as isShapesGraph, i as get, o as parse, r as componentOf } from "./Shapes-18GjfyBV.mjs";
10
+ import { t as SparqlConstraintEvaluator } from "./Sparql-BiYFMSpl.mjs";
11
+ import { a as formatResult, i as format, l as make$1, n as ValidationReportSchema, u as makeResult } from "./ValidationReport-DBdJshW5.mjs";
12
+ import * as Arr from "effect/Array";
13
+ import { constVoid, identity, pipe } from "effect/Function";
14
+ import * as Iterable from "effect/Iterable";
15
+ import * as MutableHashMap from "effect/MutableHashMap";
16
+ import * as MutableHashSet from "effect/MutableHashSet";
17
+ import * as Option from "effect/Option";
18
+ import * as Predicate from "effect/Predicate";
19
+ import * as Schema from "effect/Schema";
20
+ import * as SchemaTransformation from "effect/SchemaTransformation";
21
+ import * as Effect from "effect/Effect";
22
+ import * as Match from "effect/Match";
23
+ import * as SchemaIssue from "effect/SchemaIssue";
24
+ import * as Record from "effect/Record";
25
+ import * as Context from "effect/Context";
26
+ import * as Layer from "effect/Layer";
27
+ import * as BigDecimal from "effect/BigDecimal";
28
+ // src/shacl/internal/compare.ts
29
+ /**
30
+ * Ordering of RDF terms following the SPARQL `<` operator, as required by the
31
+ * SHACL value range and property pair constraint components.
32
+ *
33
+ * @internal
34
+ */
35
+ const XSD_STRING = "http://www.w3.org/2001/XMLSchema#string";
36
+ const toNum = Match.type().pipe(Match.tag("Integer", (v) => Option.some({
37
+ kind: "integer",
38
+ value: v.value
39
+ })), Match.tag("Decimal", (v) => Option.some({
40
+ kind: "decimal",
41
+ value: v.value
42
+ })), Match.tag("Float", "Double", (v) => Option.some({
43
+ kind: "float",
44
+ value: v.value
45
+ })), Match.orElse(() => Option.none()));
46
+ const sign = (n) => n < 0 ? -1 : n > 0 ? 1 : 0;
47
+ const toFloat = (n) => n.kind === "float" ? n.value : Number(n.kind === "integer" ? n.value : BigDecimal.format(n.value));
48
+ const toDecimal = (n) => n.kind === "integer" ? BigDecimal.fromBigInt(n.value) : n.value;
49
+ const compareNum = (a, b) => {
50
+ if (a.kind === "float" || b.kind === "float") {
51
+ const x = toFloat(a);
52
+ const y = toFloat(b);
53
+ if (Number.isNaN(x) || Number.isNaN(y)) return Option.none();
54
+ return Option.some(sign(x - y) || (x < y ? -1 : x > y ? 1 : 0));
55
+ }
56
+ if (a.kind === "integer" && b.kind === "integer") return Option.some(a.value < b.value ? -1 : a.value > b.value ? 1 : 0);
57
+ return Option.some(BigDecimal.Order(toDecimal(a), toDecimal(b)));
58
+ };
59
+ const FOURTEEN_HOURS = 504e5;
60
+ const order = (x, y) => x < y ? -1 : x > y ? 1 : 0;
61
+ const isString$1 = Predicate.isTagged("String");
62
+ const isBoolean = Predicate.isTagged("Boolean");
63
+ const isDateTime = Predicate.isTagged("DateTime");
64
+ const isDuration = Predicate.isTagged("Duration");
65
+ const isOther = Predicate.isTagged("Other");
66
+ /** Simple literals / xsd:string are ordered; language-tagged strings only when they share a tag. */
67
+ const stringsComparable = (a, b) => a.language !== "" || b.language !== "" ? a.language.toLowerCase() === b.language.toLowerCase() : a.datatype.value === XSD_STRING && b.datatype.value === XSD_STRING;
68
+ const none = Option.none();
69
+ const compareDateTimes = (x, y) => {
70
+ if (x.kind !== y.kind) return none;
71
+ const d = x.epochMillis - y.epochMillis;
72
+ return Predicate.isUndefined(x.timezone) === Predicate.isUndefined(y.timezone) || Math.abs(d) > FOURTEEN_HOURS ? Option.some(sign(d)) : none;
73
+ };
74
+ const compareDurations = (x, y) => {
75
+ const m = sign(x.months - y.months);
76
+ const s = sign(x.seconds - y.seconds);
77
+ if (m === 0) return Option.some(s);
78
+ return s === 0 || s === m ? Option.some(m) : none;
79
+ };
80
+ const compareValues = (va, vb, a, b) => {
81
+ if (isString$1(va)) return isString$1(vb) && stringsComparable(a, b) ? Option.some(order(va.value, vb.value)) : none;
82
+ if (isBoolean(va)) return isBoolean(vb) ? Option.some(va.value === vb.value ? 0 : va.value ? 1 : -1) : none;
83
+ if (isDateTime(va)) return isDateTime(vb) ? compareDateTimes(va, vb) : none;
84
+ if (isDuration(va)) return isDuration(vb) ? compareDurations(va, vb) : none;
85
+ return isOther(va) && isOther(vb) && a.key === b.key ? Option.some(0) : none;
86
+ };
87
+ const compareLiterals = (a, b) => {
88
+ const va = toValue(a);
89
+ const vb = toValue(b);
90
+ const na = toNum(va);
91
+ const nb = toNum(vb);
92
+ if (Option.isSome(na) && Option.isSome(nb)) return compareNum(na.value, nb.value);
93
+ if (Option.isSome(na) || Option.isSome(nb)) return Option.none();
94
+ return compareValues(va, vb, a, b);
95
+ };
96
+ /**
97
+ * Compares two terms. Returns `None` when they are not comparable (in which
98
+ * case every SPARQL comparison yields an error, i.e. false).
99
+ *
100
+ * @internal
101
+ */
102
+ const compareTerms = (a, b) => isLiteral(a) && isLiteral(b) ? compareLiterals(a, b) : Option.none();
103
+ // src/shacl/Validator.ts
104
+ /**
105
+ * SHACL Core validation (§3–§4): validates a data graph against a shapes
106
+ * graph and produces a `ValidationReport`.
107
+ *
108
+ * ```ts
109
+ * import { Effect } from "effect"
110
+ * import { Validator, ValidationReport } from "@thomasfosterau/effect-rdf/shacl"
111
+ *
112
+ * const program = Effect.gen(function* () {
113
+ * const report = yield* Validator.validate(dataGraph, shapesGraph)
114
+ * console.log(ValidationReport.format(report))
115
+ * })
116
+ * ```
117
+ *
118
+ * The `Validator` service pre-compiles a shapes graph once and validates many
119
+ * data graphs against it:
120
+ *
121
+ * ```ts
122
+ * const program = Effect.gen(function* () {
123
+ * const validator = yield* Validator.Validator
124
+ * const ok = yield* validator.conforms(dataGraph)
125
+ * }).pipe(Effect.provide(Validator.layer(shapesGraph)))
126
+ * ```
127
+ *
128
+ * @since 0.1.0
129
+ */
130
+ var Validator_exports = /* @__PURE__ */ __exportAll({
131
+ ConformanceError: () => ConformanceError,
132
+ RecursiveShapeError: () => RecursiveShapeError,
133
+ UnsupportedFeatureError: () => UnsupportedFeatureError,
134
+ Validator: () => Validator,
135
+ assertConforms: () => assertConforms,
136
+ conforms: () => conforms,
137
+ layer: () => layer,
138
+ make: () => make,
139
+ schema: () => schema,
140
+ severities: () => severities,
141
+ validate: () => validate,
142
+ validateNode: () => validateNode
143
+ });
144
+ /** A string as a JSON string literal, for messages. */
145
+ const quote = Schema.encodeSync(Schema.fromJsonString(Schema.String));
146
+ const { rdf, rdfs, xsd } = Vocab_exports;
147
+ /**
148
+ * Validation reached a shape again for the same focus node while still
149
+ * validating it (a recursive shape). The SHACL specification leaves the
150
+ * validation of recursive shapes undefined.
151
+ *
152
+ * @since 0.1.0
153
+ * @category errors
154
+ */
155
+ var RecursiveShapeError = class extends Schema.TaggedError()("RecursiveShapeError", {
156
+ message: Schema.String,
157
+ shape: Schema.String,
158
+ focusNode: Schema.String
159
+ }) {};
160
+ /**
161
+ * The shapes graph uses a feature this validator cannot evaluate (currently:
162
+ * SHACL-SPARQL constraints and targets when no
163
+ * `Sparql.SparqlConstraintEvaluator` is provided).
164
+ *
165
+ * @since 0.1.0
166
+ * @category errors
167
+ */
168
+ var UnsupportedFeatureError = class extends Schema.TaggedError()("UnsupportedFeatureError", {
169
+ message: Schema.String,
170
+ feature: Schema.String,
171
+ shape: Schema.String
172
+ }) {};
173
+ /**
174
+ * The data graph does not conform to the shapes graph (raised by
175
+ * `Validator.check` and `assertConforms`).
176
+ *
177
+ * @since 0.1.0
178
+ * @category errors
179
+ */
180
+ var ConformanceError = class extends Schema.TaggedError()("ConformanceError", {
181
+ message: Schema.String,
182
+ report: ValidationReportSchema
183
+ }) {};
184
+ const langMatches = (tag, range) => {
185
+ if (tag === "") return false;
186
+ if (range === "*") return true;
187
+ const t = tag.toLowerCase();
188
+ const r = range.toLowerCase();
189
+ return t === r || t.startsWith(`${r}-`);
190
+ };
191
+ const IRI = Option.some("IRI");
192
+ const BLANK_NODE = Option.some("BlankNode");
193
+ const LITERAL = Option.some("Literal");
194
+ const nodeKindOf = (t) => isNamedNode(t) ? IRI : isBlankNode(t) ? BLANK_NODE : isLiteral(t) ? LITERAL : Option.none();
195
+ const matchesNodeKind = (t, kind) => Option.exists(nodeKindOf(t), (k) => kind.includes(k));
196
+ const hasDatatype = (v, datatype) => {
197
+ if (!isLiteral(v) || v.datatype.value !== datatype.value) return false;
198
+ if (datatype.value === rdf.langString.value || datatype.value === rdf.dirLangString.value) return v.language !== "";
199
+ if (v.language !== "") return false;
200
+ return isWellFormed(v);
201
+ };
202
+ const stringValue = (v) => isNamedNode(v) || isLiteral(v) ? Option.some(v.value) : Option.none();
203
+ /** Whether a value node has no string value, or one that fails `ok`. */
204
+ const failsString = (v, ok) => !Option.exists(stringValue(v), ok);
205
+ const show = (t) => t.key;
206
+ /** A high surrogate and the code unit after it: one code point. */
207
+ const surrogatePair = /[\uD800-\uDBFF][\s\S]/g;
208
+ /** The length of a string in Unicode code points (as XPath `fn:string-length`). */
209
+ const codePointLength = (s) => s.replace(surrogatePair, "_").length;
210
+ /** Whether `a` and `b` are comparable and their order satisfies `ok`. */
211
+ const ordered = (a, b, ok) => Option.exists(compareTerms(a, b), ok);
212
+ const defaultMessage = (constraint, value) => {
213
+ const v = Option.match(value, {
214
+ onNone: () => "Value",
215
+ onSome: (t) => `Value ${show(t)}`
216
+ });
217
+ return Match.value(constraint).pipe(Match.tag("Class", (c) => `${v} is not an instance of ${show(c.class)}`), Match.tag("Datatype", (c) => `${v} does not have datatype ${show(c.datatype)}`), Match.tag("NodeKind", (c) => `${v} does not have node kind sh:${c.nodeKind}`), Match.tag("MinCount", (c) => `Less than ${c.minCount} values`), Match.tag("MaxCount", (c) => `More than ${c.maxCount} values`), Match.tag("MinExclusive", (c) => `${v} is not greater than ${show(c.value)}`), Match.tag("MinInclusive", (c) => `${v} is not greater than or equal to ${show(c.value)}`), Match.tag("MaxExclusive", (c) => `${v} is not less than ${show(c.value)}`), Match.tag("MaxInclusive", (c) => `${v} is not less than or equal to ${show(c.value)}`), Match.tag("MinLength", (c) => `${v} is shorter than ${c.minLength} characters`), Match.tag("MaxLength", (c) => `${v} is longer than ${c.maxLength} characters`), Match.tag("Pattern", (c) => `${v} does not match pattern ${quote(c.pattern)}`), Match.tag("LanguageIn", (c) => `${v} does not have a language tag in [${c.languages.join(", ")}]`), Match.tag("UniqueLang", () => "Language tag used by more than one value"), Match.tag("Equals", (c) => `${v} is not equal to the values of ${show(c.predicate)}`), Match.tag("Disjoint", (c) => `${v} is also a value of ${show(c.predicate)}`), Match.tag("LessThan", (c) => `${v} is not less than the values of ${show(c.predicate)}`), Match.tag("LessThanOrEquals", (c) => `${v} is not less than or equal to the values of ${show(c.predicate)}`)).pipe(Match.tag("Not", (c) => `${v} conforms to the negated shape ${show(c.shape)}`), Match.tag("And", () => `${v} does not conform to all of the shapes`), Match.tag("Or", () => `${v} does not conform to any of the shapes`), Match.tag("Xone", () => `${v} does not conform to exactly one of the shapes`), Match.tag("Node", (c) => `${v} does not conform to shape ${show(c.shape)}`), Match.tag("Property", (c) => `${v} does not conform to property shape ${show(c.shape)}`), Match.tag("QualifiedMinCount", (c) => `Less than ${c.count} values conform to shape ${show(c.shape)}`), Match.tag("QualifiedMaxCount", (c) => `More than ${c.count} values conform to shape ${show(c.shape)}`), Match.tag("Closed", () => `Predicate is not allowed by the closed shape (value ${Option.match(value, {
218
+ onNone: () => "",
219
+ onSome: show
220
+ })})`), Match.tag("HasValue", (c) => `Missing expected value ${show(c.value)}`), Match.tag("In", () => `${v} is not one of the allowed values`), Match.tag("Sparql", "Component", () => `${v} violates a SPARQL-based constraint`), Match.exhaustive);
221
+ };
222
+ const integer = (n) => literal(String(n), xsd.integer);
223
+ const boolean = (b) => literal(String(b), xsd.boolean);
224
+ const listText = (terms) => literal(terms.map(display).join(", "));
225
+ /** The parameter values of a core constraint by parameter name (for message templates). */
226
+ const coreParameters = (constraint) => {
227
+ return Match.value(constraint).pipe(Match.withReturnType(), Match.tag("Class", (c) => [["class", c.class]]), Match.tag("Datatype", (c) => [["datatype", c.datatype]]), Match.tag("NodeKind", (c) => [["nodeKind", namedNode(SH + c.nodeKind)]]), Match.tag("MinCount", (c) => [["minCount", integer(c.minCount)]]), Match.tag("MaxCount", (c) => [["maxCount", integer(c.maxCount)]]), Match.tag("MinExclusive", (c) => [["minExclusive", c.value]]), Match.tag("MinInclusive", (c) => [["minInclusive", c.value]]), Match.tag("MaxExclusive", (c) => [["maxExclusive", c.value]]), Match.tag("MaxInclusive", (c) => [["maxInclusive", c.value]]), Match.tag("MinLength", (c) => [["minLength", integer(c.minLength)]]), Match.tag("MaxLength", (c) => [["maxLength", integer(c.maxLength)]]), Match.tag("Pattern", (c) => [["pattern", literal(c.pattern)], ["flags", literal(c.flags)]]), Match.tag("LanguageIn", (c) => [["languageIn", literal(c.languages.join(", "))]]), Match.tag("UniqueLang", () => [["uniqueLang", boolean(true)]]), Match.tag("Equals", (c) => [["equals", c.predicate]]), Match.tag("Disjoint", (c) => [["disjoint", c.predicate]]), Match.tag("LessThan", (c) => [["lessThan", c.predicate]]), Match.tag("LessThanOrEquals", (c) => [["lessThanOrEquals", c.predicate]])).pipe(Match.tag("Not", (c) => [["not", c.shape]]), Match.tag("And", (c) => [["and", listText(c.shapes)]]), Match.tag("Or", (c) => [["or", listText(c.shapes)]]), Match.tag("Xone", (c) => [["xone", listText(c.shapes)]]), Match.tag("Node", (c) => [["node", c.shape]]), Match.tag("Property", (c) => [["property", c.shape]]), Match.tag("QualifiedMinCount", (c) => [
228
+ ["qualifiedValueShape", c.shape],
229
+ ["qualifiedMinCount", integer(c.count)],
230
+ ["qualifiedValueShapesDisjoint", boolean(c.disjoint)]
231
+ ]), Match.tag("QualifiedMaxCount", (c) => [
232
+ ["qualifiedValueShape", c.shape],
233
+ ["qualifiedMaxCount", integer(c.count)],
234
+ ["qualifiedValueShapesDisjoint", boolean(c.disjoint)]
235
+ ]), Match.tag("Closed", (c) => [["closed", boolean(true)], ["ignoredProperties", listText(c.ignoredProperties)]]), Match.tag("HasValue", (c) => [["hasValue", c.value]]), Match.tag("In", (c) => [["in", listText(c.values)]]), Match.tag("Sparql", () => []), Match.tag("Component", (c) => c.parameters.map((p) => [localName(p.path), p.value])), Match.exhaustive);
236
+ };
237
+ /** The `path` variable of message templates: the predicate, or the path in SPARQL syntax. */
238
+ const pathTerm = (path) => Predicate.isTagged(path, "PredicatePath") ? path.predicate : literal(toSparql(path));
239
+ /** Substitutes `{?var}` / `{$var}` placeholders of result messages. */
240
+ const substituteMessages = (messages, lookup) => messages.map((m) => substitute(m, (name) => Option.getOrUndefined(lookup(name))));
241
+ /** The value of the last parameter of that name. */
242
+ const parameterNamed = (parameters, name) => Option.map(Arr.findLast(parameters, ([n]) => n === name), ([, t]) => t);
243
+ /** The built-in template variables `this`, `value` and `path`. */
244
+ const builtinVariable = (name, focus, value, resultPath) => Match.value(name).pipe(Match.withReturnType(), Match.when("this", () => Option.some(Option.some(focus))), Match.when("value", () => Option.some(value)), Match.when("path", () => Option.some(Option.map(resultPath, pathTerm))), Match.orElse(() => Option.none()));
245
+ const noValue = Option.none();
246
+ const keysOf = (terms) => MutableHashSet.fromIterable(Arr.map(terms, (t) => t.key));
247
+ const addNew = (out) => (t) => {
248
+ if (!MutableHashMap.has(out, t.key)) MutableHashMap.set(out, t.key, t);
249
+ };
250
+ const valuesOf = (nodes) => Arr.fromIterable(MutableHashMap.values(nodes));
251
+ const andFails = (conforming, members) => conforming < members;
252
+ const orFails = (conforming) => conforming === 0;
253
+ const xoneFails = (conforming) => conforming !== 1;
254
+ const makeEngine = (data, shapes, options, evaluator) => {
255
+ const memo = MutableHashMap.empty();
256
+ const active = MutableHashSet.empty();
257
+ const superClassCache = MutableHashMap.empty();
258
+ const withDetails = options.details === true;
259
+ const computeSuperClasses = (cls) => {
260
+ const seen = MutableHashSet.make(cls.key);
261
+ const unseen = (sup) => {
262
+ if (MutableHashSet.has(seen, sup.key)) return false;
263
+ MutableHashSet.add(seen, sup.key);
264
+ return true;
265
+ };
266
+ const nextLevel = (frontier) => Arr.isReadonlyArrayEmpty(frontier) ? Option.none() : Option.some([void 0, Arr.flatMap(frontier, (c) => isLiteral(c) ? [] : Arr.filter(objectsOf(data, c, rdfs.subClassOf), unseen))]);
267
+ Iterable.forEach(Iterable.unfold([cls], nextLevel), constVoid);
268
+ MutableHashMap.set(superClassCache, cls.key, seen);
269
+ return seen;
270
+ };
271
+ const superClassesOf = (cls) => Option.getOrElse(MutableHashMap.get(superClassCache, cls.key), () => computeSuperClasses(cls));
272
+ const isInstanceOf = (node, cls) => !isLiteral(node) && objectsOf(data, node, rdf.type).some((t) => MutableHashSet.has(superClassesOf(t), cls.key));
273
+ const instancesOf = (cls) => {
274
+ const out = MutableHashMap.empty();
275
+ Arr.forEach(match(data, { predicate: rdf.type }), (q) => {
276
+ if (!MutableHashMap.has(out, q.subject.key) && MutableHashSet.has(superClassesOf(q.object), cls.key)) MutableHashMap.set(out, q.subject.key, q.subject);
277
+ });
278
+ return valuesOf(out);
279
+ };
280
+ const objectsOf$1 = (s, p) => isLiteral(s) ? [] : objectsOf(data, s, p);
281
+ const shapeById = (id) => Option.getOrElse(get(shapes, id), () => ({
282
+ _tag: "NodeShape",
283
+ id,
284
+ targets: [],
285
+ constraints: [],
286
+ severity: sh.Violation,
287
+ messages: [],
288
+ deactivated: false
289
+ }));
290
+ const unsupported = (shape, feature) => options.sparql === "ignore" ? Effect.succeed([]) : Effect.fail(new UnsupportedFeatureError({
291
+ message: `${feature} used by shape ${shape.id.key} requires a SparqlConstraintEvaluator`,
292
+ feature,
293
+ shape: shape.id.key
294
+ }));
295
+ const recursive = (shape, focus) => options.recursion === "ignore" ? Effect.succeed([]) : Effect.fail(new RecursiveShapeError({
296
+ message: `shape ${shape.id.key} is recursive for focus node ${focus.key}`,
297
+ shape: shape.id.key,
298
+ focusNode: focus.key
299
+ }));
300
+ const validateShape = (shape, focus) => Effect.suspend(() => {
301
+ if (shape.deactivated) return Effect.succeed([]);
302
+ const key = `${shape.id.key} ${focus.key}`;
303
+ const cached = MutableHashMap.get(memo, key);
304
+ if (Option.isSome(cached)) return Effect.succeed(cached.value);
305
+ if (MutableHashSet.has(active, key)) return recursive(shape, focus);
306
+ MutableHashSet.add(active, key);
307
+ const valueNodes = Predicate.isTagged(shape, "PropertyShape") ? evaluate(data, focus, shape.path) : [focus];
308
+ return Effect.forEach(shape.constraints, (c) => evaluate$1(shape, focus, valueNodes, c), { concurrency: 1 }).pipe(Effect.map((rs) => {
309
+ const results = rs.flat();
310
+ MutableHashSet.remove(active, key);
311
+ MutableHashMap.set(memo, key, results);
312
+ return results;
313
+ }));
314
+ });
315
+ const conforms = (id, node) => Effect.map(validateShape(shapeById(id), node), (rs) => Arr.isReadonlyArrayEmpty(rs));
316
+ const nestedResults = (id, v) => validateShape(shapeById(id), v);
317
+ const evaluate$1 = Effect.fnUntraced(function* (shape, focus, valueNodes, constraint) {
318
+ const component = componentOf(constraint);
319
+ const shapePath = Predicate.isTagged(shape, "PropertyShape") ? Option.some(shape.path) : Option.none();
320
+ const parameters = coreParameters(constraint);
321
+ const result = (value, extra = {}) => {
322
+ const resultPath = extra.path === void 0 ? shapePath : Option.some(extra.path);
323
+ return makeResult({
324
+ focusNode: focus,
325
+ sourceShape: shape.id,
326
+ sourceConstraintComponent: component,
327
+ severity: shape.severity,
328
+ resultPath,
329
+ value,
330
+ messages: Arr.isReadonlyArrayNonEmpty(shape.messages) ? substituteMessages(shape.messages, (name) => Option.getOrElse(builtinVariable(name, focus, value, resultPath), () => parameterNamed(parameters, name))) : [literal(defaultMessage(constraint, value))],
331
+ details: withDetails ? extra.details ?? [] : []
332
+ });
333
+ };
334
+ const each = (failed) => valueNodes.filter(failed).map((v) => result(Option.some(v)));
335
+ const logical = (members, fails) => Effect.map(Effect.forEach(valueNodes, (v) => Effect.map(Effect.forEach(members, (s) => nestedResults(s, v), { concurrency: 1 }), (nested) => {
336
+ const conforming = nested.filter((rs) => Arr.isReadonlyArrayEmpty(rs)).length;
337
+ return fails(conforming, members.length) ? [result(Option.some(v), { details: nested.flat() })] : [];
338
+ }), { concurrency: 1 }), (perNode) => perNode.flat());
339
+ const qualifiedCount = (c) => Effect.map(Effect.filter(valueNodes, (v) => Effect.flatMap(conforms(c.shape, v), (ok) => !ok || !c.disjoint ? Effect.succeed(ok) : Effect.map(Effect.findFirst(c.siblings, (s) => conforms(s, v)), Option.isNone))), (counted) => counted.length);
340
+ const lessThan = (predicate, ok) => Effect.sync(() => {
341
+ const others = objectsOf$1(focus, predicate);
342
+ return Arr.flatMap(valueNodes, (v) => Arr.map(Arr.filter(others, (o) => !ordered(v, o, ok)), () => result(Option.some(v))));
343
+ });
344
+ return yield* Match.value(constraint).pipe(Match.tag("Class", (c) => Effect.sync(() => each((v) => !isInstanceOf(v, c.class)))), Match.tag("Datatype", (c) => Effect.sync(() => each((v) => !hasDatatype(v, c.datatype)))), Match.tag("NodeKind", (c) => Effect.sync(() => each((v) => !matchesNodeKind(v, c.nodeKind)))), Match.tag("MinCount", (c) => Effect.sync(() => valueNodes.length < c.minCount ? [result(noValue)] : [])), Match.tag("MaxCount", (c) => Effect.sync(() => valueNodes.length > c.maxCount ? [result(noValue)] : [])), Match.tag("MinExclusive", (c) => Effect.sync(() => each((v) => !ordered(v, c.value, (s) => s === 1)))), Match.tag("MinInclusive", (c) => Effect.sync(() => each((v) => !ordered(v, c.value, (s) => s !== -1)))), Match.tag("MaxExclusive", (c) => Effect.sync(() => each((v) => !ordered(v, c.value, (s) => s === -1)))), Match.tag("MaxInclusive", (c) => Effect.sync(() => each((v) => !ordered(v, c.value, (s) => s !== 1)))), Match.tag("MinLength", (c) => Effect.sync(() => each((v) => failsString(v, (s) => codePointLength(s) >= c.minLength)))), Match.tag("MaxLength", (c) => Effect.sync(() => each((v) => failsString(v, (s) => codePointLength(s) <= c.maxLength)))), Match.tag("Pattern", (c) => Effect.sync(() => each((v) => failsString(v, (s) => c.regex.test(s))))), Match.tag("LanguageIn", (c) => Effect.sync(() => each((v) => !isLiteral(v) || !c.languages.some((range) => langMatches(v.language, range))))), Match.tag("UniqueLang", () => Effect.sync(() => {
345
+ const languages = Arr.flatMap(valueNodes, (v) => isLiteral(v) && v.language !== "" ? [v.language.toLowerCase()] : []);
346
+ return Arr.map(Arr.filter(Record.values(Arr.groupBy(languages, identity)), (g) => g.length > 1), () => result(noValue));
347
+ })), Match.tag("Equals", (c) => Effect.sync(() => {
348
+ const others = objectsOf$1(focus, c.predicate);
349
+ const otherKeys = keysOf(others);
350
+ const valueKeys = keysOf(valueNodes);
351
+ return [...valueNodes.filter((v) => !MutableHashSet.has(otherKeys, v.key)).map((v) => result(Option.some(v))), ...others.filter((o) => !MutableHashSet.has(valueKeys, o.key)).map((o) => result(Option.some(o)))];
352
+ })), Match.tag("Disjoint", (c) => Effect.sync(() => {
353
+ const otherKeys = keysOf(objectsOf$1(focus, c.predicate));
354
+ return each((v) => MutableHashSet.has(otherKeys, v.key));
355
+ })), Match.tag("LessThan", (c) => lessThan(c.predicate, (s) => s === -1)), Match.tag("LessThanOrEquals", (c) => lessThan(c.predicate, (s) => s !== 1)), Match.tag("Not", (c) => Effect.gen(function* () {
356
+ return (yield* Effect.filter(valueNodes, (v) => conforms(c.shape, v))).map((v) => result(Option.some(v)));
357
+ }))).pipe(Match.tag("And", (c) => logical(c.shapes, andFails)), Match.tag("Or", (c) => logical(c.shapes, orFails)), Match.tag("Xone", (c) => logical(c.shapes, xoneFails)), Match.tag("Node", (c) => Effect.gen(function* () {
358
+ const nested = c.shape;
359
+ return (yield* Effect.forEach(valueNodes, (v) => Effect.map(nestedResults(nested, v), (rs) => Arr.isReadonlyArrayNonEmpty(rs) ? [result(Option.some(v), { details: rs })] : []), { concurrency: 1 })).flat();
360
+ })), Match.tag("Property", (c) => Effect.gen(function* () {
361
+ const property = shapeById(c.shape);
362
+ return (yield* Effect.forEach(valueNodes, (v) => validateShape(property, v), { concurrency: 1 })).flat();
363
+ })), Match.tag("QualifiedMinCount", (c) => Effect.map(qualifiedCount(c), (count) => count < c.count ? [result(noValue)] : [])), Match.tag("QualifiedMaxCount", (c) => Effect.map(qualifiedCount(c), (count) => count > c.count ? [result(noValue)] : [])), Match.tag("Closed", (c) => Effect.sync(() => {
364
+ const allowed = keysOf(c.allowedProperties);
365
+ return Arr.flatMap(valueNodes, (v) => isLiteral(v) ? [] : Arr.flatMap(match(data, { subject: v }), (q) => MutableHashSet.has(allowed, q.predicate.key) ? [] : [result(Option.some(q.object), { path: predicate(q.predicate) })]));
366
+ })), Match.tag("HasValue", (c) => Effect.sync(() => valueNodes.some((v) => v.key === c.value.key) ? [] : [result(noValue)])), Match.tag("In", (c) => Effect.sync(() => {
367
+ const allowed = keysOf(c.values);
368
+ return each((v) => !MutableHashSet.has(allowed, v.key));
369
+ })), Match.tag("Sparql", "Component", (c) => Effect.gen(function* () {
370
+ if (Option.isNone(evaluator)) return yield* unsupported(shape, Predicate.isTagged(c, "Sparql") ? "sh:sparql" : `constraint component ${c.component.key}`);
371
+ return (yield* evaluator.value.evaluateConstraint({
372
+ dataGraph: data,
373
+ shapesGraph: shapes,
374
+ shape,
375
+ constraint: c,
376
+ focusNode: focus,
377
+ valueNodes
378
+ })).map((violation) => {
379
+ const focusNode = violation.focusNode ?? focus;
380
+ const value = Option.fromNullishOr(violation.value);
381
+ const resultPath = violation.path !== void 0 ? Option.some(violation.path) : shapePath;
382
+ const lookup = (name) => pipe(Option.fromNullishOr(violation.bindings?.get(name)), Option.orElse(() => parameterNamed(parameters, name)), Option.orElse(() => Option.flatten(builtinVariable(name, focusNode, value, resultPath))));
383
+ const templates = violation.messages !== void 0 && Arr.isReadonlyArrayNonEmpty(violation.messages) ? violation.messages : shape.messages;
384
+ return makeResult({
385
+ focusNode,
386
+ sourceShape: shape.id,
387
+ sourceConstraintComponent: component,
388
+ sourceConstraint: Predicate.isTagged(c, "Sparql") ? Option.some(c.node) : Option.none(),
389
+ severity: violation.severity ?? shape.severity,
390
+ resultPath,
391
+ value,
392
+ messages: Arr.isReadonlyArrayNonEmpty(templates) ? substituteMessages(templates, lookup) : [literal(defaultMessage(c, value))]
393
+ });
394
+ });
395
+ })), Match.exhaustive);
396
+ });
397
+ return {
398
+ validateShape,
399
+ focusNodes: Effect.fnUntraced(function* (shape) {
400
+ const out = MutableHashMap.empty();
401
+ const add = addNew(out);
402
+ yield* Effect.forEach(shape.targets, Effect.fnUntraced(function* (target) {
403
+ yield* Match.value(target).pipe(Match.tag("TargetNode", (t) => Effect.sync(() => add(t.node))), Match.tag("TargetClass", (t) => Effect.sync(() => Arr.forEach(instancesOf(t.class), add))), Match.tag("TargetSubjectsOf", (t) => Effect.sync(() => Arr.forEach(match(data, { predicate: t.predicate }), (q) => add(q.subject)))), Match.tag("TargetObjectsOf", (t) => Effect.sync(() => Arr.forEach(match(data, { predicate: t.predicate }), (q) => add(q.object)))), Match.tag("SparqlTarget", (t) => Option.match(evaluator, {
404
+ onNone: () => unsupported(shape, "sh:target"),
405
+ onSome: (ev) => Effect.map(ev.selectTargets({
406
+ dataGraph: data,
407
+ shapesGraph: shapes,
408
+ shape,
409
+ target: t.node
410
+ }), (nodes) => Arr.forEach(nodes, add))
411
+ })), Match.exhaustive);
412
+ }), {
413
+ concurrency: 1,
414
+ discard: true
415
+ });
416
+ return valuesOf(out);
417
+ })
418
+ };
419
+ };
420
+ const resolveShapes = (shapes) => isShapesGraph(shapes) ? Effect.succeed(shapes) : parse(shapes);
421
+ /** Parses the shapes graph (if needed) and builds the engine over the data graph. */
422
+ const prepare = Effect.fnUntraced(function* (dataGraph, shapesGraph, options) {
423
+ const shapes = yield* resolveShapes(shapesGraph);
424
+ const data = options.includeShapesGraph === true ? union(dataGraph, shapes.dataset) : dataGraph;
425
+ const evaluator = yield* Effect.serviceOption(SparqlConstraintEvaluator);
426
+ return {
427
+ shapes,
428
+ engine: makeEngine(data, shapes, options, evaluator)
429
+ };
430
+ });
431
+ /**
432
+ * Validates a data graph against a shapes graph (either an RDF dataset, which
433
+ * is parsed first, or a pre-parsed `Shapes.ShapesGraph`).
434
+ *
435
+ * SPARQL-based constraints and targets are delegated to a
436
+ * `Sparql.SparqlConstraintEvaluator` when one is present in the context.
437
+ *
438
+ * @since 0.1.0
439
+ * @category validation
440
+ */
441
+ const validate = Effect.fn("Shacl.validate")(function* (dataGraph, shapesGraph, options = {}) {
442
+ const { shapes, engine } = yield* prepare(dataGraph, shapesGraph, options);
443
+ yield* Effect.annotateCurrentSpan({
444
+ "shacl.shapes": shapes.shapes.length,
445
+ "rdf.quads": dataGraph.size
446
+ });
447
+ const perShape = yield* Effect.forEach(shapes.shapes, (shape) => shape.deactivated || Arr.isReadonlyArrayEmpty(shape.targets) ? Effect.succeed([]) : Effect.flatMap(engine.focusNodes(shape), (foci) => Effect.map(Effect.forEach(foci, (focus) => engine.validateShape(shape, focus), { concurrency: 1 }), (rs) => rs.flat())), { concurrency: 1 });
448
+ const report = make$1(perShape.flat());
449
+ yield* Effect.annotateCurrentSpan({
450
+ "shacl.results": report.results.length,
451
+ "shacl.conforms": report.conforms
452
+ });
453
+ return report;
454
+ });
455
+ /**
456
+ * Validates a single focus node against one shape of a shapes graph,
457
+ * ignoring targets.
458
+ *
459
+ * @since 0.1.0
460
+ * @category validation
461
+ */
462
+ const validateNode = Effect.fnUntraced(function* (dataGraph, shapesGraph, shapeId, focusNode, options = {}) {
463
+ const { shapes, engine } = yield* prepare(dataGraph, shapesGraph, options);
464
+ const shape = Option.getOrUndefined(get(shapes, shapeId));
465
+ if (shape === void 0) return make$1([]);
466
+ return make$1(yield* engine.validateShape(shape, focusNode));
467
+ });
468
+ /**
469
+ * Whether a data graph conforms to a shapes graph.
470
+ *
471
+ * @since 0.1.0
472
+ * @category validation
473
+ */
474
+ const conforms = (dataGraph, shapesGraph, options) => Effect.map(validate(dataGraph, shapesGraph, options), (r) => r.conforms);
475
+ /**
476
+ * Validates and fails with a `ConformanceError` (carrying the report) when
477
+ * the data graph does not conform; succeeds with the data graph otherwise.
478
+ *
479
+ * @since 0.1.0
480
+ * @category validation
481
+ */
482
+ const assertConforms = (dataGraph, shapesGraph, options) => Effect.flatMap(validate(dataGraph, shapesGraph, options), (report) => report.conforms ? Effect.succeed(dataGraph) : Effect.fail(new ConformanceError({
483
+ message: format(report),
484
+ report
485
+ })));
486
+ /**
487
+ * A validator bound to a pre-compiled shapes graph.
488
+ *
489
+ * @since 0.1.0
490
+ * @category services
491
+ */
492
+ var Validator = class extends Context.Service()("@thomasfosterau/effect-rdf/shacl/Validator") {};
493
+ /**
494
+ * Compiles a shapes graph into a `Validator` service implementation. The
495
+ * given options are defaults that individual calls may override.
496
+ *
497
+ * @since 0.1.0
498
+ * @category constructors
499
+ */
500
+ const make = Effect.fnUntraced(function* (shapesGraph, defaults = {}) {
501
+ const compiled = yield* resolveShapes(shapesGraph);
502
+ const merge = (options) => ({
503
+ ...defaults,
504
+ ...options
505
+ });
506
+ return Validator.of({
507
+ shapesGraph: compiled,
508
+ validate: (data, options) => validate(data, compiled, merge(options)),
509
+ conforms: (data, options) => conforms(data, compiled, merge(options)),
510
+ check: (data, options) => assertConforms(data, compiled, merge(options))
511
+ });
512
+ });
513
+ /**
514
+ * A layer providing a `Validator` for the given shapes graph.
515
+ *
516
+ * @since 0.1.0
517
+ * @category layers
518
+ */
519
+ const layer = (shapesGraph, defaults) => Layer.effect(Validator, make(shapesGraph, defaults));
520
+ const severityRank = (severity) => severity.value === sh.Info.value ? 0 : severity.value === sh.Warning.value ? 1 : 2;
521
+ const thresholdRank = {
522
+ info: 0,
523
+ warning: 1,
524
+ violation: 2
525
+ };
526
+ /**
527
+ * A `Schema` that accepts a `Dataset` only if it conforms to the given shapes
528
+ * graph. Decoding fails with a `SchemaIssue.Composite` holding one
529
+ * `InvalidValue` issue per failing result: its `message` annotation is the
530
+ * formatted result (`ValidationReport.formatResult`) and its `result`
531
+ * annotation the `ValidationResult` itself, for consumers that inspect
532
+ * failures (focus node, path, constraint component, severity, messages). By
533
+ * default only `sh:Violation` results fail (see `SchemaOptions.failOn`).
534
+ * Encoding is the identity.
535
+ *
536
+ * Compose it with a syntax codec to parse and validate in one decode:
537
+ * `Turtle.codec.schema.pipe(Schema.decodeTo(Validator.schema(shapes)))`.
538
+ *
539
+ * @since 0.1.0
540
+ * @category schemas
541
+ */
542
+ const schema = (shapesGraph, options) => {
543
+ const threshold = thresholdRank[options?.failOn ?? "violation"];
544
+ return DatasetSchema.pipe(Schema.decodeTo(DatasetSchema, SchemaTransformation.transformEffect({
545
+ decode: (data, parseOptions) => validate(data, shapesGraph, options).pipe(Effect.mapError((e) => new SchemaIssue.InvalidValue({ message: e.message }, data, parseOptions)), Effect.flatMap((report) => Arr.match(Arr.filter(report.results, (r) => severityRank(r.severity) >= threshold), {
546
+ onEmpty: () => Effect.succeed(data),
547
+ onNonEmpty: (failing) => Effect.fail(new SchemaIssue.Composite(DatasetSchema.ast, Arr.map(failing, (r) => new SchemaIssue.InvalidValue({
548
+ message: formatResult(r),
549
+ result: r
550
+ }, r, parseOptions)), data))
551
+ }))),
552
+ encode: (data) => Effect.succeed(data)
553
+ })));
554
+ };
555
+ /**
556
+ * The SHACL `sh:Violation`, `sh:Warning` and `sh:Info` severities.
557
+ *
558
+ * @since 0.1.0
559
+ * @category constants
560
+ */
561
+ const severities = {
562
+ Violation: sh.Violation,
563
+ Warning: sh.Warning,
564
+ Info: sh.Info
565
+ };
566
+ export { Validator_exports as a, layer as c, severities as d, validate as f, Validator as i, make as l, RecursiveShapeError as n, assertConforms as o, validateNode as p, UnsupportedFeatureError as r, conforms as s, ConformanceError as t, schema as u };
567
+
568
+ //# sourceMappingURL=Validator-DmUfMbpL.mjs.map