@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,1346 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, K as isTriple, N as isBlankNode, Y as literal, Z as namedNode, o as Literal, rt as triple, w as XSD_STRING, z as isLiteral } from "./Term-CFLG1qu4.mjs";
3
+ import { l as resolve } from "./Iri-Cr92gsQV.mjs";
4
+ import { S as toValue, _ as isValidLexical, a as canonicalDouble, g as isNumericDatatype, h as isKnownDatatype, i as canonicalDecimal, v as isWellFormed } from "./Xsd-Cdgx5zRB.mjs";
5
+ import { a as setOf, i as fromEntries, n as empty } from "./stringMap-D5YIpYtR.mjs";
6
+ import { t as loop } from "./loop-D5-gNx9K.mjs";
7
+ import * as Arr from "effect/Array";
8
+ import * as Option from "effect/Option";
9
+ import * as Predicate from "effect/Predicate";
10
+ import * as Schema from "effect/Schema";
11
+ import * as Str from "effect/String";
12
+ import * as Record from "effect/Record";
13
+ import * as Result from "effect/Result";
14
+ import * as BigDecimal from "effect/BigDecimal";
15
+ // src/sparql/internal/hash.ts
16
+ /**
17
+ * Pure, synchronous implementations of MD5, SHA-1, SHA-256, SHA-384 and
18
+ * SHA-512 over UTF-8 strings, returning lower-case hex digests.
19
+ *
20
+ * @internal
21
+ */
22
+ const utf8 = (s) => new TextEncoder().encode(s);
23
+ const hex = (bytes) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
24
+ /** `0 … n - 1`. */
25
+ const range = (n) => Array.from({ length: n }, (_, i) => i);
26
+ /** The offsets of the `blockSize`-byte blocks of a padded message. */
27
+ const blocks = (m, blockSize) => range(m.length / blockSize).map((b) => b * blockSize);
28
+ const pad = (msg, blockSize, lengthBytes, littleEndian) => {
29
+ const bitLen = BigInt(msg.length) * 8n;
30
+ const total = Math.ceil((msg.length + 1 + lengthBytes) / blockSize) * blockSize;
31
+ const out = new Uint8Array(total);
32
+ out.set(msg);
33
+ out[msg.length] = 128;
34
+ range(lengthBytes).forEach((i) => {
35
+ const byte = Number(bitLen >> BigInt(8 * i) & 255n);
36
+ if (littleEndian) out[total - lengthBytes + i] = byte;
37
+ else out[total - 1 - i] = byte;
38
+ });
39
+ return out;
40
+ };
41
+ const rotl = (x, n) => x << n | x >>> 32 - n;
42
+ const rotr = (x, n) => x >>> n | x << 32 - n;
43
+ /** Big-endian 32-bit words of a digest, as hex. */
44
+ const hexWords = (words) => words.map((x) => (x >>> 0).toString(16).padStart(8, "0")).join("");
45
+ const MD5_STEPS = [
46
+ 7,
47
+ 12,
48
+ 17,
49
+ 22,
50
+ 7,
51
+ 12,
52
+ 17,
53
+ 22,
54
+ 7,
55
+ 12,
56
+ 17,
57
+ 22,
58
+ 7,
59
+ 12,
60
+ 17,
61
+ 22,
62
+ 5,
63
+ 9,
64
+ 14,
65
+ 20,
66
+ 5,
67
+ 9,
68
+ 14,
69
+ 20,
70
+ 5,
71
+ 9,
72
+ 14,
73
+ 20,
74
+ 5,
75
+ 9,
76
+ 14,
77
+ 20,
78
+ 4,
79
+ 11,
80
+ 16,
81
+ 23,
82
+ 4,
83
+ 11,
84
+ 16,
85
+ 23,
86
+ 4,
87
+ 11,
88
+ 16,
89
+ 23,
90
+ 4,
91
+ 11,
92
+ 16,
93
+ 23,
94
+ 6,
95
+ 10,
96
+ 15,
97
+ 21,
98
+ 6,
99
+ 10,
100
+ 15,
101
+ 21,
102
+ 6,
103
+ 10,
104
+ 15,
105
+ 21,
106
+ 6,
107
+ 10,
108
+ 15,
109
+ 21
110
+ ].map((s, i) => ({
111
+ i,
112
+ k: Math.floor(Math.abs(Math.sin(i + 1)) * 2 ** 32) | 0,
113
+ s,
114
+ g: i < 16 ? i : i < 32 ? (5 * i + 1) % 16 : i < 48 ? (3 * i + 5) % 16 : 7 * i % 16
115
+ }));
116
+ const md5 = (input) => {
117
+ const m = pad(utf8(input), 64, 8, true);
118
+ let a0 = 1732584193;
119
+ let b0 = -271733879;
120
+ let c0 = -1732584194;
121
+ let d0 = 271733878;
122
+ const view = new DataView(m.buffer);
123
+ blocks(m, 64).forEach((off) => {
124
+ let a = a0;
125
+ let b = b0;
126
+ let c = c0;
127
+ let d = d0;
128
+ MD5_STEPS.forEach(({ i, k, s, g }) => {
129
+ const f = i < 16 ? b & c | ~b & d : i < 32 ? d & b | ~d & c : i < 48 ? b ^ c ^ d : c ^ (b | ~d);
130
+ const tmp = d;
131
+ d = c;
132
+ c = b;
133
+ b = b + rotl(a + f + k + (view.getUint32(off + g * 4, true) | 0) | 0, s) | 0;
134
+ a = tmp;
135
+ });
136
+ a0 = a0 + a | 0;
137
+ b0 = b0 + b | 0;
138
+ c0 = c0 + c | 0;
139
+ d0 = d0 + d | 0;
140
+ });
141
+ const out = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(16));
142
+ [
143
+ a0,
144
+ b0,
145
+ c0,
146
+ d0
147
+ ].forEach((x, i) => out.setUint32(i * 4, x >>> 0, true));
148
+ return hex(new Uint8Array(out.buffer));
149
+ };
150
+ const ROUNDS_16 = range(16);
151
+ const SCHEDULE_80 = range(80).slice(16);
152
+ const SCHEDULE_64 = range(64).slice(16);
153
+ const SHA1_ROUNDS = range(80);
154
+ const sha1 = (input) => {
155
+ const m = pad(utf8(input), 64, 8, false);
156
+ let h0 = 1732584193;
157
+ let h1 = -271733879;
158
+ let h2 = -1732584194;
159
+ let h3 = 271733878;
160
+ let h4 = -1009589776;
161
+ const view = new DataView(m.buffer);
162
+ const w = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(320));
163
+ const word = (i) => w.getInt32(i * 4);
164
+ blocks(m, 64).forEach((off) => {
165
+ ROUNDS_16.forEach((i) => w.setInt32(i * 4, view.getUint32(off + i * 4) | 0));
166
+ SCHEDULE_80.forEach((i) => w.setInt32(i * 4, rotl(word(i - 3) ^ word(i - 8) ^ word(i - 14) ^ word(i - 16), 1)));
167
+ let a = h0;
168
+ let b = h1;
169
+ let c = h2;
170
+ let d = h3;
171
+ let e = h4;
172
+ SHA1_ROUNDS.forEach((i) => {
173
+ const f = i < 20 ? b & c | ~b & d : i < 40 ? b ^ c ^ d : i < 60 ? b & c | b & d | c & d : b ^ c ^ d;
174
+ const k = i < 20 ? 1518500249 : i < 40 ? 1859775393 : i < 60 ? -1894007588 : -899497514;
175
+ const t = rotl(a, 5) + f + e + k + word(i) | 0;
176
+ e = d;
177
+ d = c;
178
+ c = rotl(b, 30);
179
+ b = a;
180
+ a = t;
181
+ });
182
+ h0 = h0 + a | 0;
183
+ h1 = h1 + b | 0;
184
+ h2 = h2 + c | 0;
185
+ h3 = h3 + d | 0;
186
+ h4 = h4 + e | 0;
187
+ });
188
+ return hexWords([
189
+ h0,
190
+ h1,
191
+ h2,
192
+ h3,
193
+ h4
194
+ ]);
195
+ };
196
+ const K256 = [
197
+ 1116352408,
198
+ 1899447441,
199
+ 3049323471,
200
+ 3921009573,
201
+ 961987163,
202
+ 1508970993,
203
+ 2453635748,
204
+ 2870763221,
205
+ 3624381080,
206
+ 310598401,
207
+ 607225278,
208
+ 1426881987,
209
+ 1925078388,
210
+ 2162078206,
211
+ 2614888103,
212
+ 3248222580,
213
+ 3835390401,
214
+ 4022224774,
215
+ 264347078,
216
+ 604807628,
217
+ 770255983,
218
+ 1249150122,
219
+ 1555081692,
220
+ 1996064986,
221
+ 2554220882,
222
+ 2821834349,
223
+ 2952996808,
224
+ 3210313671,
225
+ 3336571891,
226
+ 3584528711,
227
+ 113926993,
228
+ 338241895,
229
+ 666307205,
230
+ 773529912,
231
+ 1294757372,
232
+ 1396182291,
233
+ 1695183700,
234
+ 1986661051,
235
+ 2177026350,
236
+ 2456956037,
237
+ 2730485921,
238
+ 2820302411,
239
+ 3259730800,
240
+ 3345764771,
241
+ 3516065817,
242
+ 3600352804,
243
+ 4094571909,
244
+ 275423344,
245
+ 430227734,
246
+ 506948616,
247
+ 659060556,
248
+ 883997877,
249
+ 958139571,
250
+ 1322822218,
251
+ 1537002063,
252
+ 1747873779,
253
+ 1955562222,
254
+ 2024104815,
255
+ 2227730452,
256
+ 2361852424,
257
+ 2428436474,
258
+ 2756734187,
259
+ 3204031479,
260
+ 3329325298
261
+ ].map((x) => x | 0);
262
+ const sha256 = (input) => {
263
+ const m = pad(utf8(input), 64, 8, false);
264
+ let h0 = 1779033703;
265
+ let h1 = -1150833019;
266
+ let h2 = 1013904242;
267
+ let h3 = -1521486534;
268
+ let h4 = 1359893119;
269
+ let h5 = -1694144372;
270
+ let h6 = 528734635;
271
+ let h7 = 1541459225;
272
+ const view = new DataView(m.buffer);
273
+ const w = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(256));
274
+ const word = (i) => w.getInt32(i * 4);
275
+ blocks(m, 64).forEach((off) => {
276
+ ROUNDS_16.forEach((i) => w.setInt32(i * 4, view.getUint32(off + i * 4) | 0));
277
+ SCHEDULE_64.forEach((i) => {
278
+ const x = word(i - 15);
279
+ const y = word(i - 2);
280
+ const s0 = rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;
281
+ const s1 = rotr(y, 17) ^ rotr(y, 19) ^ y >>> 10;
282
+ w.setInt32(i * 4, word(i - 16) + s0 + word(i - 7) + s1 | 0);
283
+ });
284
+ let a = h0;
285
+ let b = h1;
286
+ let c = h2;
287
+ let d = h3;
288
+ let e = h4;
289
+ let f = h5;
290
+ let g = h6;
291
+ let hh = h7;
292
+ K256.forEach((k, i) => {
293
+ const S1 = rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
294
+ const ch = e & f ^ ~e & g;
295
+ const t1 = hh + S1 + ch + k + word(i) | 0;
296
+ const t2 = (rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22)) + (a & b ^ a & c ^ b & c) | 0;
297
+ hh = g;
298
+ g = f;
299
+ f = e;
300
+ e = d + t1 | 0;
301
+ d = c;
302
+ c = b;
303
+ b = a;
304
+ a = t1 + t2 | 0;
305
+ });
306
+ h0 = h0 + a | 0;
307
+ h1 = h1 + b | 0;
308
+ h2 = h2 + c | 0;
309
+ h3 = h3 + d | 0;
310
+ h4 = h4 + e | 0;
311
+ h5 = h5 + f | 0;
312
+ h6 = h6 + g | 0;
313
+ h7 = h7 + hh | 0;
314
+ });
315
+ return hexWords([
316
+ h0,
317
+ h1,
318
+ h2,
319
+ h3,
320
+ h4,
321
+ h5,
322
+ h6,
323
+ h7
324
+ ]);
325
+ };
326
+ const K512 = [
327
+ "428a2f98d728ae22",
328
+ "7137449123ef65cd",
329
+ "b5c0fbcfec4d3b2f",
330
+ "e9b5dba58189dbbc",
331
+ "3956c25bf348b538",
332
+ "59f111f1b605d019",
333
+ "923f82a4af194f9b",
334
+ "ab1c5ed5da6d8118",
335
+ "d807aa98a3030242",
336
+ "12835b0145706fbe",
337
+ "243185be4ee4b28c",
338
+ "550c7dc3d5ffb4e2",
339
+ "72be5d74f27b896f",
340
+ "80deb1fe3b1696b1",
341
+ "9bdc06a725c71235",
342
+ "c19bf174cf692694",
343
+ "e49b69c19ef14ad2",
344
+ "efbe4786384f25e3",
345
+ "0fc19dc68b8cd5b5",
346
+ "240ca1cc77ac9c65",
347
+ "2de92c6f592b0275",
348
+ "4a7484aa6ea6e483",
349
+ "5cb0a9dcbd41fbd4",
350
+ "76f988da831153b5",
351
+ "983e5152ee66dfab",
352
+ "a831c66d2db43210",
353
+ "b00327c898fb213f",
354
+ "bf597fc7beef0ee4",
355
+ "c6e00bf33da88fc2",
356
+ "d5a79147930aa725",
357
+ "06ca6351e003826f",
358
+ "142929670a0e6e70",
359
+ "27b70a8546d22ffc",
360
+ "2e1b21385c26c926",
361
+ "4d2c6dfc5ac42aed",
362
+ "53380d139d95b3df",
363
+ "650a73548baf63de",
364
+ "766a0abb3c77b2a8",
365
+ "81c2c92e47edaee6",
366
+ "92722c851482353b",
367
+ "a2bfe8a14cf10364",
368
+ "a81a664bbc423001",
369
+ "c24b8b70d0f89791",
370
+ "c76c51a30654be30",
371
+ "d192e819d6ef5218",
372
+ "d69906245565a910",
373
+ "f40e35855771202a",
374
+ "106aa07032bbd1b8",
375
+ "19a4c116b8d2d0c8",
376
+ "1e376c085141ab53",
377
+ "2748774cdf8eeb99",
378
+ "34b0bcb5e19b48a8",
379
+ "391c0cb3c5c95a63",
380
+ "4ed8aa4ae3418acb",
381
+ "5b9cca4f7763e373",
382
+ "682e6ff3d6b2b8a3",
383
+ "748f82ee5defb2fc",
384
+ "78a5636f43172f60",
385
+ "84c87814a1f0ab72",
386
+ "8cc702081a6439ec",
387
+ "90befffa23631e28",
388
+ "a4506cebde82bde9",
389
+ "bef9a3f7b2c67915",
390
+ "c67178f2e372532b",
391
+ "ca273eceea26619c",
392
+ "d186b8c721c0c207",
393
+ "eada7dd6cde0eb1e",
394
+ "f57d4f7fee6ed178",
395
+ "06f067aa72176fba",
396
+ "0a637dc5a2c898a6",
397
+ "113f9804bef90dae",
398
+ "1b710b35131c471b",
399
+ "28db77f523047d84",
400
+ "32caab7b40c72493",
401
+ "3c9ebe0a15c9bebc",
402
+ "431d67c49c100d4c",
403
+ "4cc5d4becb3e42b6",
404
+ "597f299cfc657e2a",
405
+ "5fcb6fab3ad6faec",
406
+ "6c44198c4a475817"
407
+ ].map((h) => BigInt(`0x${h}`));
408
+ const MASK64 = (1n << 64n) - 1n;
409
+ const rotr64 = (x, n) => (x >> n | x << 64n - n) & MASK64;
410
+ const SCHEDULE_512 = range(80).slice(16);
411
+ const sha512core = (input, init, outWords) => {
412
+ const m = pad(utf8(input), 128, 16, false);
413
+ let h = init;
414
+ const view = new DataView(m.buffer);
415
+ const w = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(640));
416
+ const word = (i) => w.getBigUint64(i * 8);
417
+ blocks(m, 128).forEach((off) => {
418
+ ROUNDS_16.forEach((i) => w.setBigUint64(i * 8, view.getBigUint64(off + i * 8)));
419
+ SCHEDULE_512.forEach((i) => {
420
+ const x = word(i - 15);
421
+ const y = word(i - 2);
422
+ const s0 = rotr64(x, 1n) ^ rotr64(x, 8n) ^ x >> 7n;
423
+ const s1 = rotr64(y, 19n) ^ rotr64(y, 61n) ^ y >> 6n;
424
+ w.setBigUint64(i * 8, word(i - 16) + s0 + word(i - 7) + s1 & MASK64);
425
+ });
426
+ let [a, b, c, d, e, f, g, hh] = h;
427
+ K512.forEach((k, i) => {
428
+ const S1 = rotr64(e, 14n) ^ rotr64(e, 18n) ^ rotr64(e, 41n);
429
+ const ch = e & f ^ ~e & MASK64 & g;
430
+ const t1 = hh + S1 + ch + k + word(i) & MASK64;
431
+ const t2 = (rotr64(a, 28n) ^ rotr64(a, 34n) ^ rotr64(a, 39n)) + (a & b ^ a & c ^ b & c) & MASK64;
432
+ hh = g;
433
+ g = f;
434
+ f = e;
435
+ e = d + t1 & MASK64;
436
+ d = c;
437
+ c = b;
438
+ b = a;
439
+ a = t1 + t2 & MASK64;
440
+ });
441
+ const [h0, h1, h2, h3, h4, h5, h6, h7] = h;
442
+ h = [
443
+ h0 + a & MASK64,
444
+ h1 + b & MASK64,
445
+ h2 + c & MASK64,
446
+ h3 + d & MASK64,
447
+ h4 + e & MASK64,
448
+ h5 + f & MASK64,
449
+ h6 + g & MASK64,
450
+ h7 + hh & MASK64
451
+ ];
452
+ });
453
+ return h.slice(0, outWords).map((x) => x.toString(16).padStart(16, "0")).join("");
454
+ };
455
+ const big = (x) => BigInt(`0x${x}`);
456
+ /** A SHA-512 initial state, from its hex words. */
457
+ const state512 = (...[a, b, c, d, e, f, g, h]) => [
458
+ big(a),
459
+ big(b),
460
+ big(c),
461
+ big(d),
462
+ big(e),
463
+ big(f),
464
+ big(g),
465
+ big(h)
466
+ ];
467
+ const sha512 = (input) => sha512core(input, state512("6a09e667f3bcc908", "bb67ae8584caa73b", "3c6ef372fe94f82b", "a54ff53a5f1d36f1", "510e527fade682d1", "9b05688c2b3e6c1f", "1f83d9abfb41bd6b", "5be0cd19137e2179"), 8);
468
+ const sha384 = (input) => sha512core(input, state512("cbbb9d5dc1059ed8", "629a292a367cd507", "9159015a3070dd17", "152fecd8f70e5939", "67332667ffc00b31", "8eb44a8768581511", "db0c2e0d64f98fa7", "47b5481dbefa4fa4"), 6);
469
+ // src/sparql/internal/values.ts
470
+ /**
471
+ * Value-level helpers for expression evaluation: numeric type promotion and
472
+ * arithmetic, comparisons, effective boolean value and the ORDER BY term
473
+ * ordering.
474
+ *
475
+ * Errors are signalled by throwing `EvalFailure` (a cheap, stack-less
476
+ * object); the public API converts them to `ExpressionError`s.
477
+ *
478
+ * @internal
479
+ */
480
+ const XSD = "http://www.w3.org/2001/XMLSchema#";
481
+ const RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
482
+ /** A thrown expression evaluation error. */
483
+ var EvalFailure = class {
484
+ message;
485
+ constructor(message) {
486
+ this.message = message;
487
+ }
488
+ };
489
+ /**
490
+ * Runs `f`, returning a thrown `EvalFailure` (an expression error) as the
491
+ * failure; any other exception is a defect and propagates.
492
+ */
493
+ const catchEvalFailure = (f) => Result.try({
494
+ try: f,
495
+ catch: (cause) => {
496
+ if (cause instanceof EvalFailure) return cause;
497
+ throw cause;
498
+ }
499
+ });
500
+ const fail = (message) => {
501
+ throw new EvalFailure(message);
502
+ };
503
+ const dt = {
504
+ string: namedNode(`${XSD}string`),
505
+ boolean: namedNode(`${XSD}boolean`),
506
+ integer: namedNode(`${XSD}integer`),
507
+ decimal: namedNode(`${XSD}decimal`),
508
+ float: namedNode(`${XSD}float`),
509
+ double: namedNode(`${XSD}double`),
510
+ dateTime: namedNode(`${XSD}dateTime`),
511
+ dayTimeDuration: namedNode(`${XSD}dayTimeDuration`),
512
+ langString: namedNode(`${RDF}langString`),
513
+ dirLangString: namedNode(`${RDF}dirLangString`)
514
+ };
515
+ const TRUE = new Literal("true", dt.boolean);
516
+ const FALSE = new Literal("false", dt.boolean);
517
+ const bool = (b) => b ? TRUE : FALSE;
518
+ /** A simple literal or `xsd:string` (no language tag). */
519
+ const isSimpleString = (t) => isLiteral(t) && t.language === "" && t.datatype.value === "http://www.w3.org/2001/XMLSchema#string";
520
+ /** A string literal: simple, `xsd:string` or language-tagged. */
521
+ const isStringLiteral = (t) => isLiteral(t) && (t.language !== "" || t.datatype.value === "http://www.w3.org/2001/XMLSchema#string");
522
+ const stringLike = (value, like) => like.language === "" ? new Literal(value, dt.string) : like.direction === void 0 ? new Literal(value, dt.langString, like.language) : new Literal(value, dt.dirLangString, like.language, like.direction);
523
+ const simple = (value) => new Literal(value, dt.string);
524
+ /** The numeric value of each literal met, `None` for a non-numeric one. */
525
+ const numCache = /* @__PURE__ */ new WeakMap();
526
+ const numOfValue = (v) => Predicate.isTagged(v, "Integer") ? Option.some({
527
+ kind: 0,
528
+ v: v.value
529
+ }) : Predicate.isTagged(v, "Decimal") ? Option.some({
530
+ kind: 1,
531
+ v: v.value
532
+ }) : Predicate.isTagged(v, "Float") ? Option.some({
533
+ kind: 2,
534
+ v: v.value
535
+ }) : Predicate.isTagged(v, "Double") ? Option.some({
536
+ kind: 3,
537
+ v: v.value
538
+ }) : Option.none();
539
+ /** The numeric value of a literal, `None` if it is not a valid numeric literal. */
540
+ const numeric = (t) => {
541
+ if (!isLiteral(t) || t.language !== "") return Option.none();
542
+ const cached = numCache.get(t);
543
+ if (cached !== void 0) return cached;
544
+ const d = t.datatype.value;
545
+ const result = isNumericDatatype(d) && isValidLexical(d, t.value) ? numOfValue(toValue(t)) : Option.none();
546
+ numCache.set(t, result);
547
+ return result;
548
+ };
549
+ const isNumeric = (t) => Option.isSome(numeric(t));
550
+ const toNumber = (n) => n.kind === 0 ? Number(n.v) : n.kind === 1 ? BigDecimal.toNumberUnsafe(n.v) : n.v;
551
+ const toDecimal = (n) => n.kind === 0 ? BigDecimal.fromBigInt(n.v) : n.kind === 1 ? n.v : fail("Not a decimal");
552
+ /** Promotes a numeric value to (at least) the given kind. */
553
+ const promote = (n, kind) => {
554
+ if (n.kind >= kind) return n;
555
+ return kind === 1 ? {
556
+ kind: 1,
557
+ v: toDecimal(n)
558
+ } : kind === 2 ? {
559
+ kind: 2,
560
+ v: Math.fround(toNumber(n))
561
+ } : {
562
+ kind: 3,
563
+ v: toNumber(n)
564
+ };
565
+ };
566
+ const numLiteral = (n) => n.kind === 0 ? new Literal(n.v.toString(), dt.integer) : n.kind === 1 ? new Literal(canonicalDecimal(n.v), dt.decimal) : n.kind === 2 ? new Literal(canonicalDouble(Math.fround(n.v)), dt.float) : new Literal(canonicalDouble(n.v), dt.double);
567
+ /** The numeric value of a literal; an evaluation error if it has none. */
568
+ const requireNum = (t) => {
569
+ const n = numeric(t);
570
+ return Option.isSome(n) ? n.value : fail("Expected a numeric literal");
571
+ };
572
+ const DIVISION_SCALE = 18;
573
+ /** `op` on two values already promoted to the common `kind`. */
574
+ const arithmeticAt = (kind, op, px, py) => {
575
+ if (px.kind === 0 && py.kind === 0) {
576
+ const u = px.v;
577
+ const v = py.v;
578
+ return numLiteral({
579
+ kind: 0,
580
+ v: op === "+" ? u + v : op === "-" ? u - v : u * v
581
+ });
582
+ }
583
+ if (px.kind === 1 && py.kind === 1) {
584
+ const u = px.v;
585
+ const v = py.v;
586
+ if (op === "/") {
587
+ if (BigDecimal.isZero(v)) return fail("Division by zero");
588
+ return numLiteral({
589
+ kind: 1,
590
+ v: divideDecimal(u, v)
591
+ });
592
+ }
593
+ return numLiteral({
594
+ kind: 1,
595
+ v: op === "+" ? BigDecimal.sum(u, v) : op === "-" ? BigDecimal.subtract(u, v) : BigDecimal.multiply(u, v)
596
+ });
597
+ }
598
+ const u = toNumber(px);
599
+ const v = toNumber(py);
600
+ const r = op === "+" ? u + v : op === "-" ? u - v : op === "*" ? u * v : u / v;
601
+ return numLiteral(kind === 2 ? {
602
+ kind: 2,
603
+ v: Math.fround(r)
604
+ } : {
605
+ kind: 3,
606
+ v: r
607
+ });
608
+ };
609
+ const arithmetic = (op, a, b) => {
610
+ const x = requireNum(a);
611
+ const y = requireNum(b);
612
+ let kind = Math.max(x.kind, y.kind);
613
+ if (op === "/" && kind === 0) kind = 1;
614
+ const px = promote(x, kind);
615
+ const py = promote(y, kind);
616
+ return arithmeticAt(kind, op, px, py);
617
+ };
618
+ /** Decimal division with a fixed number of fractional digits (rounded half-even). */
619
+ const divideDecimal = (u, v) => {
620
+ const exact = BigDecimal.divide(u, v);
621
+ const scaled = BigDecimal.round(Option.getOrElse(exact, () => BigDecimal.fromBigInt(0n)), {
622
+ scale: DIVISION_SCALE,
623
+ mode: "half-even"
624
+ });
625
+ return BigDecimal.normalize(scaled);
626
+ };
627
+ const negate = (a) => {
628
+ return negateNum(requireNum(a));
629
+ };
630
+ const negateNum = (x) => numLiteral(x.kind === 0 ? {
631
+ kind: 0,
632
+ v: -x.v
633
+ } : x.kind === 1 ? {
634
+ kind: 1,
635
+ v: BigDecimal.negate(x.v)
636
+ } : x.kind === 2 ? {
637
+ kind: 2,
638
+ v: -x.v
639
+ } : {
640
+ kind: 3,
641
+ v: -x.v
642
+ });
643
+ /** Compares two numerics; returns NaN when unordered (NaN operands). */
644
+ const compareNum = (x, y) => {
645
+ const kind = Math.max(x.kind, y.kind);
646
+ if (kind <= 1) {
647
+ if (x.kind === 0 && y.kind === 0) {
648
+ const u = x.v;
649
+ const v = y.v;
650
+ return u < v ? -1 : u > v ? 1 : 0;
651
+ }
652
+ const u = toDecimal(x);
653
+ const v = toDecimal(y);
654
+ return BigDecimal.isLessThan(u, v) ? -1 : BigDecimal.isGreaterThan(u, v) ? 1 : 0;
655
+ }
656
+ const u = toNumber(promote(x, kind));
657
+ const v = toNumber(promote(y, kind));
658
+ if (Number.isNaN(u) || Number.isNaN(v)) return NaN;
659
+ return u < v ? -1 : u > v ? 1 : 0;
660
+ };
661
+ const DATE_KINDS = setOf([
662
+ "dateTime",
663
+ "dateTimeStamp",
664
+ "date",
665
+ "time",
666
+ "gYear",
667
+ "gYearMonth",
668
+ "gMonth",
669
+ "gMonthDay",
670
+ "gDay"
671
+ ]);
672
+ const dateValue = (t) => {
673
+ if (!isLiteral(t) || !t.datatype.value.startsWith("http://www.w3.org/2001/XMLSchema#")) return Option.none();
674
+ const local = t.datatype.value.slice(33);
675
+ if (!DATE_KINDS.has(local) || !isValidLexical(t.datatype.value, t.value)) return Option.none();
676
+ const v = toValue(t);
677
+ if (!Predicate.isTagged(v, "DateTime")) return Option.none();
678
+ return Option.some({
679
+ kind: local === "dateTimeStamp" ? "dateTime" : local,
680
+ millis: v.epochMillis,
681
+ zoned: v.timezone !== void 0
682
+ });
683
+ };
684
+ const FOURTEEN_HOURS = 504e5;
685
+ const BEFORE = Option.some(-1);
686
+ const SAME = Option.some(0);
687
+ const AFTER = Option.some(1);
688
+ /** Compares two date/time values of the same kind; `None` if indeterminate. */
689
+ const compareDates = (a, b) => {
690
+ if (a.kind !== b.kind) return Option.none();
691
+ if (a.zoned !== b.zoned) {
692
+ const diff = a.millis - b.millis;
693
+ if (Math.abs(diff) <= FOURTEEN_HOURS) return Option.none();
694
+ return diff < 0 ? BEFORE : AFTER;
695
+ }
696
+ return a.millis < b.millis ? BEFORE : a.millis > b.millis ? AFTER : SAME;
697
+ };
698
+ const durationValue = (t) => {
699
+ if (!isLiteral(t)) return Option.none();
700
+ const d = t.datatype.value;
701
+ if (d !== `http://www.w3.org/2001/XMLSchema#duration` && d !== `http://www.w3.org/2001/XMLSchema#dayTimeDuration` && d !== `http://www.w3.org/2001/XMLSchema#yearMonthDuration`) return Option.none();
702
+ if (!isValidLexical(d, t.value)) return Option.none();
703
+ const v = toValue(t);
704
+ return Predicate.isTagged(v, "Duration") ? Option.some({
705
+ kind: d.slice(33),
706
+ months: v.months,
707
+ seconds: v.seconds
708
+ }) : Option.none();
709
+ };
710
+ /** Compares strings by Unicode code points. */
711
+ const compareCodepoints = (a, b) => {
712
+ if (a === b) return 0;
713
+ const n = Math.min(a.length, b.length);
714
+ let i = 0;
715
+ loop(() => {
716
+ if (i >= n || a.charCodeAt(i) !== b.charCodeAt(i)) return false;
717
+ i++;
718
+ return true;
719
+ });
720
+ if (i < n) {
721
+ const x = a.charCodeAt(i);
722
+ const y = b.charCodeAt(i);
723
+ const xs = x >= 55296 && x <= 57343;
724
+ if (xs !== (y >= 55296 && y <= 57343)) return xs ? 1 : -1;
725
+ return x < y ? -1 : 1;
726
+ }
727
+ return a.length < b.length ? -1 : a.length > b.length ? 1 : 0;
728
+ };
729
+ const isBooleanLiteral = (t) => isLiteral(t) && t.datatype.value === `http://www.w3.org/2001/XMLSchema#boolean` && isValidLexical(t.datatype.value, t.value);
730
+ const booleanValue = (t) => t.value === "true" || t.value === "1";
731
+ /**
732
+ * Compares two literals by value (for `<`, `>`, …). Returns a number (NaN for
733
+ * unordered) or throws if they are not comparable.
734
+ */
735
+ const compareLiterals = (a, b) => {
736
+ const x = numeric(a);
737
+ const y = numeric(b);
738
+ if (Option.isSome(x) && Option.isSome(y)) return compareNum(x.value, y.value);
739
+ if (isSimpleString(a) && isSimpleString(b)) return compareCodepoints(a.value, b.value);
740
+ if (isLiteral(a) && isLiteral(b) && a.language !== "" && a.language === b.language && a.direction === b.direction) return compareCodepoints(a.value, b.value);
741
+ if (isBooleanLiteral(a) && isBooleanLiteral(b)) return Number(booleanValue(a)) - Number(booleanValue(b));
742
+ const da = dateValue(a);
743
+ const db = dateValue(b);
744
+ if (Option.isSome(da) && Option.isSome(db)) {
745
+ const c = compareDates(da.value, db.value);
746
+ if (Option.isSome(c)) return c.value;
747
+ return fail("Indeterminate date comparison");
748
+ }
749
+ const ua = durationValue(a);
750
+ const ub = durationValue(b);
751
+ if (Option.isSome(ua) && Option.isSome(ub)) {
752
+ const u = ua.value;
753
+ const v = ub.value;
754
+ if (u.months === v.months) return Math.sign(u.seconds - v.seconds);
755
+ if (u.seconds === v.seconds) return Math.sign(u.months - v.months);
756
+ return fail("Indeterminate duration comparison");
757
+ }
758
+ return fail("Incomparable values");
759
+ };
760
+ const isKnownLiteral = (t) => t.language !== "" || isKnownDatatype(t.datatype.value);
761
+ /** RDF term equality with value semantics (`=`). Throws on type errors. */
762
+ const equals = (a, b) => {
763
+ const ta = isTriple(a);
764
+ const tb = isTriple(b);
765
+ if (ta || tb) {
766
+ if (!ta || !tb) return false;
767
+ return equals(a.subject, b.subject) && equals(a.predicate, b.predicate) && equals(a.object, b.object);
768
+ }
769
+ if (!isLiteral(a) || !isLiteral(b)) return a.key === b.key;
770
+ const x = numeric(a);
771
+ const y = numeric(b);
772
+ if (Option.isSome(x) && Option.isSome(y)) return compareNum(x.value, y.value) === 0;
773
+ if (a.key === b.key) return true;
774
+ if (isSimpleString(a) && isSimpleString(b)) return a.value === b.value;
775
+ if (isBooleanLiteral(a) && isBooleanLiteral(b)) return booleanValue(a) === booleanValue(b);
776
+ const da = dateValue(a);
777
+ const db = dateValue(b);
778
+ if (Option.isSome(da) && Option.isSome(db)) {
779
+ if (da.value.kind !== db.value.kind) return false;
780
+ const c = compareDates(da.value, db.value);
781
+ if (Option.isNone(c)) return fail("Indeterminate date comparison");
782
+ return c.value === 0;
783
+ }
784
+ const ua = durationValue(a);
785
+ const ub = durationValue(b);
786
+ if (Option.isSome(ua) && Option.isSome(ub)) return ua.value.months === ub.value.months && ua.value.seconds === ub.value.seconds;
787
+ if (a.language !== "" || b.language !== "") return false;
788
+ if (isKnownLiteral(a) && isKnownLiteral(b) && isWellFormed(a) && isWellFormed(b) && a.datatype.value !== b.datatype.value) return false;
789
+ return fail("Cannot compare literals");
790
+ };
791
+ /** Effective boolean value. */
792
+ const numEbv = (n) => n.kind === 0 ? n.v !== 0n : n.kind === 1 ? !BigDecimal.isZero(n.v) : !(n.v === 0 || Number.isNaN(n.v));
793
+ const ebv = (t) => {
794
+ if (!isLiteral(t)) return fail("EBV of a non-literal");
795
+ const d = t.datatype.value;
796
+ if (d === `http://www.w3.org/2001/XMLSchema#boolean`) {
797
+ if (!isValidLexical(d, t.value)) return fail("Invalid boolean");
798
+ return booleanValue(t);
799
+ }
800
+ if (t.language === "" && d === "http://www.w3.org/2001/XMLSchema#string") return Str.isNonEmpty(t.value);
801
+ if (isNumericDatatype(d)) {
802
+ const n = numeric(t);
803
+ return Option.isSome(n) && numEbv(n.value);
804
+ }
805
+ return fail("EBV is not defined for this literal");
806
+ };
807
+ /** The `ORDER BY` rank of a bound term: blank nodes < IRIs < literals < triple terms. */
808
+ const termRank = (t) => isBlankNode(t) ? 1 : isNamedNode(t) ? 2 : isLiteral(t) ? 3 : isTriple(t) ? 4 : 5;
809
+ /** Orders two literals: by value where comparable, else syntactically. */
810
+ const compareLiteralOrder = (a, l) => {
811
+ const compared = Result.try(() => compareLiterals(a, l));
812
+ if (Result.isSuccess(compared)) {
813
+ const c = compared.success;
814
+ if (!Number.isNaN(c) && c !== 0) return c;
815
+ if (c === 0 && a.key === l.key) return 0;
816
+ }
817
+ const ka = a.language !== "" ? 1 : a.datatype.value === "http://www.w3.org/2001/XMLSchema#string" ? 0 : 2;
818
+ const kb = l.language !== "" ? 1 : l.datatype.value === "http://www.w3.org/2001/XMLSchema#string" ? 0 : 2;
819
+ if (ka !== kb) return ka - kb;
820
+ return compareCodepoints(a.datatype.value, l.datatype.value) || compareCodepoints(a.language, l.language) || compareCodepoints(a.value, l.value);
821
+ };
822
+ /**
823
+ * The total ordering used by `ORDER BY` on bound terms: blank nodes < IRIs <
824
+ * literals < triple terms; literals are ordered by value where comparable
825
+ * and otherwise by datatype, language and lexical form.
826
+ */
827
+ const compareTerms = (a, b) => {
828
+ const ra = termRank(a);
829
+ const rb = termRank(b);
830
+ if (ra !== rb) return ra - rb;
831
+ if (isLiteral(a) && isLiteral(b)) return compareLiteralOrder(a, b);
832
+ if (isTriple(a) && isTriple(b)) return compareTerms(a.subject, b.subject) || compareTerms(a.predicate, b.predicate) || compareTerms(a.object, b.object);
833
+ if ((isBlankNode(a) || isNamedNode(a)) && (isBlankNode(b) || isNamedNode(b))) return compareCodepoints(a.value, b.value);
834
+ return 0;
835
+ };
836
+ /** `compareTerms` on possibly unbound terms (`None`), with unbound first. */
837
+ const orderCompare = (a, b) => Option.isNone(a) ? Option.isNone(b) ? 0 : -1 : Option.isNone(b) ? 1 : compareTerms(a.value, b.value);
838
+ // src/sparql/Functions.ts
839
+ /**
840
+ * SPARQL built-in functions, XSD casts and the registry of extension
841
+ * functions.
842
+ *
843
+ * Extension functions are plain synchronous functions from argument terms
844
+ * to a term, registered by IRI and passed to the engine (see
845
+ * `Engine.EngineOptions.functions`). They signal type errors by throwing
846
+ * `ExpressionError` (or calling `Functions.error`).
847
+ *
848
+ * @since 0.1.0
849
+ */
850
+ var Functions_exports = /* @__PURE__ */ __exportAll({
851
+ ExpressionError: () => ExpressionError,
852
+ builtIns: () => builtIns,
853
+ cast: () => cast,
854
+ compileRegex: () => compileRegex,
855
+ error: () => error,
856
+ isCast: () => isCast,
857
+ registry: () => registry
858
+ });
859
+ /**
860
+ * An expression evaluation error (a SPARQL "type error"): unbound
861
+ * variables, wrong argument types, division by zero, …
862
+ *
863
+ * @since 0.1.0
864
+ * @category errors
865
+ */
866
+ var ExpressionError = class extends Schema.TaggedError()("ExpressionError", { message: Schema.String }) {};
867
+ /**
868
+ * Signals an expression error from inside a function implementation.
869
+ *
870
+ * @since 0.1.0
871
+ * @category errors
872
+ */
873
+ const error = (message) => fail(message);
874
+ /**
875
+ * Creates a registry from a record of IRI → function.
876
+ *
877
+ * @since 0.1.0
878
+ * @category constructors
879
+ */
880
+ const registry = (functions) => fromEntries(Record.toEntries(functions));
881
+ const literalArg = (t) => isLiteral(t) ? t : fail("Expected a literal");
882
+ const stringArg = (t) => isStringLiteral(t) ? t : fail("Expected a string literal");
883
+ const simpleArg = (t) => isSimpleString(t) ? t : fail("Expected a simple literal");
884
+ /** Argument compatibility (SPARQL 1.1 §17.4.3.1.2). */
885
+ const compatible = (a, b) => b.language === "" || a.language === b.language && a.direction === b.direction;
886
+ const codepoints = (s) => Array.from(s);
887
+ const intLiteral = (n) => new Literal(BigInt(n).toString(), dt.integer);
888
+ const numArg = requireNum;
889
+ const roundNum = (t, mode, fn) => {
890
+ const n = numArg(t);
891
+ return numLiteral(n.kind === 0 ? n : n.kind === 1 ? {
892
+ kind: 1,
893
+ v: BigDecimal.round(n.v, {
894
+ scale: 0,
895
+ mode
896
+ })
897
+ } : n.kind === 2 ? {
898
+ kind: 2,
899
+ v: fn(n.v)
900
+ } : {
901
+ kind: 3,
902
+ v: fn(n.v)
903
+ });
904
+ };
905
+ const xpathRound = (x) => {
906
+ if (!Number.isFinite(x) || Object.is(x, -0)) return x;
907
+ const r = Math.floor(x + .5);
908
+ return r === 0 && x < 0 ? -0 : r;
909
+ };
910
+ /** Compiled regular expressions by flags and pattern (read on every `REGEX` / `REPLACE` call). */
911
+ const regexCache = empty();
912
+ /** Compiles an XPath regular expression with XPath flags to a JS RegExp. */
913
+ const compileRegex = (pattern, flags, global = false) => {
914
+ const key = `${global ? "g" : ""}${flags}/${pattern}`;
915
+ const cached = regexCache.get(key);
916
+ if (cached !== void 0) return cached;
917
+ let source = pattern;
918
+ let jsFlags = global ? "g" : "";
919
+ Array.from(flags).forEach((flag) => {
920
+ if (flag === "i" || flag === "s" || flag === "m") {
921
+ if (!jsFlags.includes(flag)) jsFlags += flag;
922
+ } else if (flag === "x") source = source.replace(/[\t\n\r ]/g, "");
923
+ else if (flag === "q") source = source.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
924
+ else fail(`Invalid regex flag '${flag}'`);
925
+ });
926
+ const compiled = Result.try(() => new RegExp(source, `${jsFlags}u`)).pipe(Result.orElse(() => Result.try(() => new RegExp(source, jsFlags))));
927
+ if (Result.isFailure(compiled)) return fail("Invalid regular expression");
928
+ const re = compiled.success;
929
+ if (regexCache.size > 1e3) regexCache.clear();
930
+ regexCache.set(key, re);
931
+ return re;
932
+ };
933
+ /** The flags argument of `REGEX` / `REPLACE`, absent beyond the arguments given. */
934
+ const regexFlags = (args, i) => {
935
+ const t = Option.fromUndefinedOr(args[i]);
936
+ return Option.isSome(t) ? simpleArg(t.value).value : "";
937
+ };
938
+ const parseDateParts = (t) => {
939
+ const lit = literalArg(t);
940
+ const d = lit.datatype.value;
941
+ if (!(d === `http://www.w3.org/2001/XMLSchema#dateTime` || d === `http://www.w3.org/2001/XMLSchema#date` || d === `http://www.w3.org/2001/XMLSchema#time` || d === `http://www.w3.org/2001/XMLSchema#dateTimeStamp`) || !isValidLexical(d, lit.value)) return fail("Expected an xsd:dateTime");
942
+ const m = /^(?:(-?\d{4,})-(\d\d)-(\d\d))?T?(?:(\d\d):(\d\d):(\d\d(?:\.\d+)?))?(Z|[+-]\d\d:\d\d)?$/.exec(lit.value);
943
+ if (m === null) return fail("Invalid date/time");
944
+ return {
945
+ year: m[1],
946
+ month: m[2],
947
+ day: m[3],
948
+ hours: m[4],
949
+ minutes: m[5],
950
+ seconds: m[6],
951
+ tz: m[7]
952
+ };
953
+ };
954
+ const timezoneDuration = (tz) => {
955
+ if (tz === "Z") return "PT0S";
956
+ const sign = tz.startsWith("-") ? "-" : "";
957
+ const h = Number(tz.slice(1, 3));
958
+ const mi = Number(tz.slice(4, 6));
959
+ if (h === 0 && mi === 0) return "PT0S";
960
+ return `${sign}PT${h > 0 ? `${h}H` : ""}${mi > 0 ? `${mi}M` : ""}`;
961
+ };
962
+ const encodeForUri = (s) => encodeURIComponent(s).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
963
+ const uuid = (random) => {
964
+ const h = Array.from({ length: 16 }, (_, i) => {
965
+ const b = Math.floor(random() * 256);
966
+ return i === 6 ? b & 15 | 64 : i === 8 ? b & 63 | 128 : b;
967
+ }).map((b) => b.toString(16).padStart(2, "0")).join("");
968
+ return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
969
+ };
970
+ const LANG_TAG = /^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/;
971
+ /** The two string arguments of a string function, which must be compatible (§17.4.3.1.2). */
972
+ const compatibleStrings = ([a, b]) => {
973
+ const x = stringArg(a);
974
+ const y = stringArg(b);
975
+ return compatible(x, y) ? [x, y] : fail("Incompatible arguments");
976
+ };
977
+ /**
978
+ * `STRBEFORE` / `STRAFTER`: `part` of the first string around the first
979
+ * occurrence of the second, or the empty simple literal if there is none.
980
+ */
981
+ const around = (args, part) => {
982
+ const [x, y] = compatibleStrings(args);
983
+ const i = x.value.indexOf(y.value);
984
+ return i === -1 ? simple("") : stringLike(part(x.value, y.value, i), x);
985
+ };
986
+ const iriFn = ([a], ctx) => {
987
+ if (isNamedNode(a)) return a;
988
+ const s = simpleArg(a).value;
989
+ return namedNode(ctx.baseIri !== void 0 ? resolve(s, ctx.baseIri) : s);
990
+ };
991
+ const hashFn = (f) => ([a]) => simple(f(simpleArg(a).value));
992
+ /**
993
+ * The strict built-in functions, keyed by canonical name. Functional forms
994
+ * (`BOUND`, `IF`, `COALESCE`, `&&`, `||`, `IN`, `EXISTS`) are handled by the
995
+ * expression evaluator.
996
+ *
997
+ * @since 0.1.0
998
+ * @category built-ins
999
+ */
1000
+ const builtIns = {
1001
+ STR: ([a]) => isNamedNode(a) || isLiteral(a) ? simple(a.value) : fail("STR of a blank node or triple term"),
1002
+ LANG: ([a]) => simple(literalArg(a).language),
1003
+ LANGDIR: ([a]) => simple(literalArg(a).direction ?? ""),
1004
+ LANGMATCHES: ([tag, range]) => {
1005
+ const t = simpleArg(tag).value.toLowerCase();
1006
+ const r = simpleArg(range).value.toLowerCase();
1007
+ if (r === "*") return bool(t !== "");
1008
+ return bool(t === r || t.startsWith(`${r}-`));
1009
+ },
1010
+ DATATYPE: ([a]) => literalArg(a).datatype,
1011
+ IRI: iriFn,
1012
+ URI: iriFn,
1013
+ BNODE: (args, ctx, sol) => ctx.blankNode(Arr.isReadonlyArrayEmpty(args) ? void 0 : simpleArg(args[0]).value, sol),
1014
+ RAND: (_, ctx) => numLiteral({
1015
+ kind: 3,
1016
+ v: ctx.random()
1017
+ }),
1018
+ ABS: ([a]) => {
1019
+ const n = numArg(a);
1020
+ return numLiteral(n.kind === 0 ? {
1021
+ kind: 0,
1022
+ v: n.v < 0n ? -n.v : n.v
1023
+ } : n.kind === 1 ? {
1024
+ kind: 1,
1025
+ v: BigDecimal.abs(n.v)
1026
+ } : n.kind === 2 ? {
1027
+ kind: 2,
1028
+ v: Math.abs(n.v)
1029
+ } : {
1030
+ kind: 3,
1031
+ v: Math.abs(n.v)
1032
+ });
1033
+ },
1034
+ CEIL: ([a]) => roundNum(a, "ceil", Math.ceil),
1035
+ FLOOR: ([a]) => roundNum(a, "floor", Math.floor),
1036
+ ROUND: ([a]) => roundNum(a, "half-ceil", xpathRound),
1037
+ CONCAT: (args) => {
1038
+ const lits = args.map(stringArg);
1039
+ const first = lits[0];
1040
+ const sameLang = first !== void 0 && first.language !== "" && lits.every((l) => l.language === first.language && l.direction === first.direction);
1041
+ const value = lits.map((l) => l.value).join("");
1042
+ return sameLang ? stringLike(value, first) : simple(value);
1043
+ },
1044
+ SUBSTR: ([s, start, len]) => {
1045
+ const str = stringArg(s);
1046
+ const chars = codepoints(str.value);
1047
+ const st = toNumber(numArg(start));
1048
+ const from = xpathRound(st);
1049
+ let to = Infinity;
1050
+ if (len !== void 0) to = from + xpathRound(toNumber(numArg(len)));
1051
+ if (Number.isNaN(from) || Number.isNaN(to)) return stringLike("", str);
1052
+ const out = chars.filter((_, i) => i + 1 >= from && i + 1 < to).join("");
1053
+ return stringLike(out, str);
1054
+ },
1055
+ STRLEN: ([a]) => intLiteral(codepoints(stringArg(a).value).length),
1056
+ REPLACE: (args) => {
1057
+ const [s, pattern, replacement] = args;
1058
+ const str = stringArg(s);
1059
+ const re = compileRegex(simpleArg(pattern).value, regexFlags(args, 3), true);
1060
+ if (re.test("")) {
1061
+ re.lastIndex = 0;
1062
+ return fail("REPLACE pattern matches the empty string");
1063
+ }
1064
+ re.lastIndex = 0;
1065
+ const repl = simpleArg(replacement).value.replace(/\\(\$|\\)|\$/g, (m, esc) => esc === "$" ? "$$" : esc === "\\" ? "\\" : m);
1066
+ return stringLike(str.value.replace(re, repl), str);
1067
+ },
1068
+ UCASE: ([a]) => {
1069
+ const s = stringArg(a);
1070
+ return stringLike(s.value.toUpperCase(), s);
1071
+ },
1072
+ LCASE: ([a]) => {
1073
+ const s = stringArg(a);
1074
+ return stringLike(s.value.toLowerCase(), s);
1075
+ },
1076
+ ENCODE_FOR_URI: ([a]) => simple(encodeForUri(stringArg(a).value)),
1077
+ CONTAINS: (args) => {
1078
+ const [x, y] = compatibleStrings(args);
1079
+ return bool(x.value.includes(y.value));
1080
+ },
1081
+ STRSTARTS: (args) => {
1082
+ const [x, y] = compatibleStrings(args);
1083
+ return bool(x.value.startsWith(y.value));
1084
+ },
1085
+ STRENDS: (args) => {
1086
+ const [x, y] = compatibleStrings(args);
1087
+ return bool(x.value.endsWith(y.value));
1088
+ },
1089
+ STRBEFORE: (args) => around(args, (x, _y, i) => x.slice(0, i)),
1090
+ STRAFTER: (args) => around(args, (x, y, i) => x.slice(i + y.length)),
1091
+ YEAR: ([a]) => {
1092
+ const p = parseDateParts(a);
1093
+ return p.year !== void 0 ? intLiteral(BigInt(p.year)) : fail("No year");
1094
+ },
1095
+ MONTH: ([a]) => {
1096
+ const p = parseDateParts(a);
1097
+ return p.month !== void 0 ? intLiteral(Number(p.month)) : fail("No month");
1098
+ },
1099
+ DAY: ([a]) => {
1100
+ const p = parseDateParts(a);
1101
+ return p.day !== void 0 ? intLiteral(Number(p.day)) : fail("No day");
1102
+ },
1103
+ HOURS: ([a]) => {
1104
+ const p = parseDateParts(a);
1105
+ return p.hours !== void 0 ? intLiteral(Number(p.hours)) : fail("No hours");
1106
+ },
1107
+ MINUTES: ([a]) => {
1108
+ const p = parseDateParts(a);
1109
+ return p.minutes !== void 0 ? intLiteral(Number(p.minutes)) : fail("No minutes");
1110
+ },
1111
+ SECONDS: ([a]) => {
1112
+ const p = parseDateParts(a);
1113
+ if (p.seconds === void 0) return fail("No seconds");
1114
+ return numLiteral({
1115
+ kind: 1,
1116
+ v: BigDecimal.fromStringUnsafe(p.seconds)
1117
+ });
1118
+ },
1119
+ TIMEZONE: ([a]) => {
1120
+ const p = parseDateParts(a);
1121
+ if (p.tz === void 0) return fail("No timezone");
1122
+ return new Literal(timezoneDuration(p.tz), dt.dayTimeDuration);
1123
+ },
1124
+ TZ: ([a]) => simple(parseDateParts(a).tz ?? ""),
1125
+ NOW: (_, ctx) => new Literal(ctx.now.toISOString(), dt.dateTime),
1126
+ UUID: (_, ctx) => namedNode(`urn:uuid:${uuid(ctx.random)}`),
1127
+ STRUUID: (_, ctx) => simple(uuid(ctx.random)),
1128
+ MD5: hashFn(md5),
1129
+ SHA1: hashFn(sha1),
1130
+ SHA256: hashFn(sha256),
1131
+ SHA384: hashFn(sha384),
1132
+ SHA512: hashFn(sha512),
1133
+ STRLANG: ([s, lang]) => {
1134
+ const lex = simpleArg(s).value;
1135
+ const tag = simpleArg(lang).value;
1136
+ if (!LANG_TAG.test(tag)) return fail("Invalid language tag");
1137
+ return literal(lex, tag);
1138
+ },
1139
+ STRLANGDIR: ([s, lang, dir]) => {
1140
+ const lex = simpleArg(s).value;
1141
+ const tag = simpleArg(lang).value;
1142
+ const d = simpleArg(dir).value;
1143
+ if (!LANG_TAG.test(tag)) return fail("Invalid language tag");
1144
+ if (d !== "ltr" && d !== "rtl") return fail("Invalid base direction");
1145
+ return literal(lex, {
1146
+ language: tag,
1147
+ direction: d
1148
+ });
1149
+ },
1150
+ STRDT: ([s, datatype]) => {
1151
+ const lex = simpleArg(s).value;
1152
+ if (!isNamedNode(datatype)) return fail("STRDT requires an IRI");
1153
+ if (datatype.value === dt.langString.value || datatype.value === dt.dirLangString.value) return fail("STRDT cannot create language-tagged strings");
1154
+ return new Literal(lex, datatype);
1155
+ },
1156
+ SAMETERM: ([a, b]) => bool(a.key === b.key),
1157
+ ISIRI: ([a]) => bool(isNamedNode(a)),
1158
+ ISURI: ([a]) => bool(isNamedNode(a)),
1159
+ ISBLANK: ([a]) => bool(isBlankNode(a)),
1160
+ ISLITERAL: ([a]) => bool(isLiteral(a)),
1161
+ ISNUMERIC: ([a]) => bool(isNumeric(a)),
1162
+ HASLANG: ([a]) => bool(isLiteral(a) && a.language !== ""),
1163
+ HASLANGDIR: ([a]) => bool(isLiteral(a) && a.direction !== void 0),
1164
+ REGEX: (args) => {
1165
+ const [s, pattern] = args;
1166
+ const str = stringArg(s);
1167
+ const re = compileRegex(simpleArg(pattern).value, regexFlags(args, 2));
1168
+ return bool(re.test(str.value));
1169
+ },
1170
+ ISTRIPLE: ([a]) => bool(isTriple(a)),
1171
+ TRIPLE: ([s, p, o]) => {
1172
+ if (!isNamedNode(s) && !isBlankNode(s)) return fail("TRIPLE subject must be an IRI or blank node");
1173
+ if (!isNamedNode(p)) return fail("TRIPLE predicate must be an IRI");
1174
+ return triple(s, p, o);
1175
+ },
1176
+ SUBJECT: ([a]) => isTriple(a) ? a.subject : fail("Not a triple term"),
1177
+ PREDICATE: ([a]) => isTriple(a) ? a.predicate : fail("Not a triple term"),
1178
+ OBJECT: ([a]) => isTriple(a) ? a.object : fail("Not a triple term")
1179
+ };
1180
+ const XSD_INTEGER_TYPE_NAMES = [
1181
+ "integer",
1182
+ "long",
1183
+ "int",
1184
+ "short",
1185
+ "byte",
1186
+ "nonNegativeInteger",
1187
+ "positiveInteger",
1188
+ "nonPositiveInteger",
1189
+ "negativeInteger",
1190
+ "unsignedLong",
1191
+ "unsignedInt",
1192
+ "unsignedShort",
1193
+ "unsignedByte"
1194
+ ].map((t) => XSD + t);
1195
+ const XSD_INTEGER_TYPES = setOf(XSD_INTEGER_TYPE_NAMES);
1196
+ /** The XPath string form of a float/double (`fn:string`). */
1197
+ const xpathDoubleString = (v) => {
1198
+ if (Number.isNaN(v)) return "NaN";
1199
+ if (!Number.isFinite(v)) return v > 0 ? "INF" : "-INF";
1200
+ const abs = Math.abs(v);
1201
+ if (abs === 0) return Object.is(v, -0) ? "-0" : "0";
1202
+ if (abs >= 1e-6 && abs < 1e6) return String(v);
1203
+ return canonicalDouble(v);
1204
+ };
1205
+ const castString = (a) => {
1206
+ if (isNamedNode(a)) return a.value;
1207
+ const l = literalArg(a);
1208
+ const numeric$1 = numeric(l);
1209
+ if (Option.isSome(numeric$1)) {
1210
+ const n = numeric$1.value;
1211
+ if (n.kind === 0) return n.v.toString();
1212
+ if (n.kind === 1) {
1213
+ const s = canonicalDecimal(n.v);
1214
+ return s.endsWith(".0") ? s.slice(0, -2) : s;
1215
+ }
1216
+ return xpathDoubleString(n.v);
1217
+ }
1218
+ if (l.datatype.value === dt.boolean.value && isValidLexical(l.datatype.value, l.value)) return l.value === "true" || l.value === "1" ? "true" : "false";
1219
+ return l.value;
1220
+ };
1221
+ const castBoolean = ({ l, numeric, isBool, boolValue, fromString, lexical }) => {
1222
+ if (isBool) return bool(boolValue);
1223
+ if (Option.isSome(numeric)) return bool(ebv(l));
1224
+ if (fromString && /^(true|false|1|0)$/.test(lexical)) return bool(lexical === "true" || lexical === "1");
1225
+ return fail("Invalid boolean cast");
1226
+ };
1227
+ const integerOf = (n) => {
1228
+ if (n.kind === 0) return n.v;
1229
+ if (n.kind === 1) return BigInt(BigDecimal.format(BigDecimal.truncate(n.v)).split(".")[0] ?? "0");
1230
+ if (!Number.isFinite(n.v)) return fail("Cannot cast NaN/INF to integer");
1231
+ return BigInt(Math.trunc(n.v));
1232
+ };
1233
+ const castInteger = (source) => {
1234
+ const { target, dtNode, numeric, isBool, boolValue, fromString, lexical } = source;
1235
+ const value = isBool ? boolValue ? 1n : 0n : Option.isSome(numeric) ? integerOf(numeric.value) : fromString && /^[+-]?\d+$/.test(lexical) ? BigInt(lexical) : fail("Invalid integer cast");
1236
+ const lit = new Literal(value.toString(), dtNode);
1237
+ return isValidLexical(target, lit.value) ? lit : fail("Integer out of range");
1238
+ };
1239
+ const castDecimal = ({ numeric, isBool, boolValue, fromString, lexical }) => {
1240
+ if (isBool) return numLiteral({
1241
+ kind: 1,
1242
+ v: BigDecimal.fromBigInt(boolValue ? 1n : 0n)
1243
+ });
1244
+ if (Option.isSome(numeric)) {
1245
+ const n = numeric.value;
1246
+ if (n.kind === 0 || n.kind === 1) return numLiteral({
1247
+ kind: 1,
1248
+ v: toDecimal(n)
1249
+ });
1250
+ if (!Number.isFinite(n.v)) return fail("Cannot cast NaN/INF to decimal");
1251
+ return numLiteral({
1252
+ kind: 1,
1253
+ v: BigDecimal.fromNumberUnsafe(n.v)
1254
+ });
1255
+ }
1256
+ if (fromString && /^[+-]?(\d+(\.\d*)?|\.\d+)$/.test(lexical)) return numLiteral({
1257
+ kind: 1,
1258
+ v: BigDecimal.fromStringUnsafe(lexical.replace(/\.$/, ""))
1259
+ });
1260
+ return fail("Invalid decimal cast");
1261
+ };
1262
+ const floatingOf = (lexical) => lexical === "INF" || lexical === "+INF" ? Infinity : lexical === "-INF" ? -Infinity : Number(lexical);
1263
+ const castFloating = (source) => {
1264
+ const { target, numeric, isBool, boolValue, fromString, lexical } = source;
1265
+ const kind = target === dt.double.value ? 3 : 2;
1266
+ const value = isBool ? boolValue ? 1 : 0 : Option.isSome(numeric) ? toNumber(numeric.value) : fromString && isValidLexical(target, lexical) ? floatingOf(lexical) : fail("Invalid floating point cast");
1267
+ return numLiteral({
1268
+ kind,
1269
+ v: kind === 2 ? Math.fround(value) : value
1270
+ });
1271
+ };
1272
+ const castDateTime = ({ target, dtNode, l, fromString, lexical }) => {
1273
+ if (l.datatype.value === target && isValidLexical(target, l.value)) return l;
1274
+ if (l.datatype.value === `http://www.w3.org/2001/XMLSchema#date` && isValidLexical(l.datatype.value, l.value)) {
1275
+ const m = /^(-?\d+-\d\d-\d\d)(.*)$/.exec(l.value);
1276
+ if (m === null) return fail("Invalid date");
1277
+ return new Literal(`${m[1]}T00:00:00${m[2]}`, dtNode);
1278
+ }
1279
+ if (fromString && isValidLexical(target, lexical)) return new Literal(lexical, dtNode);
1280
+ return fail("Invalid dateTime cast");
1281
+ };
1282
+ /** Other XSD types: from strings with a valid lexical form, or the same type. */
1283
+ const castOther = ({ target, dtNode, l, fromString, lexical }) => {
1284
+ if (l.datatype.value === target) return l;
1285
+ if (fromString && isValidLexical(target, lexical)) return new Literal(lexical, dtNode);
1286
+ return fail(`Invalid cast to ${target}`);
1287
+ };
1288
+ const castTo = (target, a) => {
1289
+ if (target === "http://www.w3.org/2001/XMLSchema#string") {
1290
+ if (isLiteral(a) && a.language !== "") return fail("Cannot cast a language-tagged string");
1291
+ return simple(castString(a));
1292
+ }
1293
+ const l = literalArg(a);
1294
+ if (l.language !== "") return fail("Cannot cast a language-tagged string");
1295
+ const isBool = l.datatype.value === dt.boolean.value && isValidLexical(l.datatype.value, l.value);
1296
+ const source = {
1297
+ target,
1298
+ dtNode: namedNode(target),
1299
+ l,
1300
+ numeric: numeric(l),
1301
+ isBool,
1302
+ boolValue: isBool && (l.value === "true" || l.value === "1"),
1303
+ fromString: isSimpleString(l),
1304
+ lexical: l.value.trim()
1305
+ };
1306
+ if (target === dt.boolean.value) return castBoolean(source);
1307
+ if (XSD_INTEGER_TYPES.has(target)) return castInteger(source);
1308
+ if (target === dt.decimal.value) return castDecimal(source);
1309
+ if (target === dt.double.value || target === dt.float.value) return castFloating(source);
1310
+ if (target === dt.dateTime.value) return castDateTime(source);
1311
+ return castOther(source);
1312
+ };
1313
+ const CASTABLE = setOf([
1314
+ XSD_STRING,
1315
+ `${XSD}boolean`,
1316
+ `${XSD}decimal`,
1317
+ `${XSD}float`,
1318
+ `${XSD}double`,
1319
+ `${XSD}dateTime`,
1320
+ `${XSD}date`,
1321
+ `${XSD}time`,
1322
+ ...XSD_INTEGER_TYPE_NAMES
1323
+ ]);
1324
+ /**
1325
+ * Whether an IRI is an XSD constructor function (cast) supported by this
1326
+ * implementation.
1327
+ *
1328
+ * @since 0.1.0
1329
+ * @category casts
1330
+ */
1331
+ const isCast = (iri) => CASTABLE.has(iri);
1332
+ /**
1333
+ * Casts a term to an XSD datatype (`xsd:integer(?x)` etc.). Throws an
1334
+ * expression error when the cast is not possible.
1335
+ *
1336
+ * @since 0.1.0
1337
+ * @category casts
1338
+ */
1339
+ const cast = (datatype, term) => {
1340
+ if (isBlankNode(term) || isTriple(term)) return fail("Cannot cast");
1341
+ if (isNamedNode(term) && datatype !== "http://www.w3.org/2001/XMLSchema#string") return fail("Cannot cast an IRI");
1342
+ return castTo(datatype, term);
1343
+ };
1344
+ export { orderCompare as C, negate as S, dt as _, compileRegex as a, fail as b, registry as c, TRUE as d, arithmetic as f, compareTerms as g, compareLiterals as h, cast as i, EvalFailure as l, catchEvalFailure as m, Functions_exports as n, error as o, bool as p, builtIns as r, isCast as s, ExpressionError as t, FALSE as u, ebv as v, simple as w, isNumeric as x, equals as y };
1345
+
1346
+ //# sourceMappingURL=Functions-AvjNcId_.mjs.map