@thomasfosterau/effect-rdf 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2250 -1
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +187 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1,552 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { K as isTriple, O as defaultGraph, q as isVariable } from "./Term-CFLG1qu4.mjs";
3
+ import { r as emptySet } from "./stringMap-D5YIpYtR.mjs";
4
+ import * as Predicate from "effect/Predicate";
5
+ import * as Match from "effect/Match";
6
+ // src/sparql/Ast.ts
7
+ /**
8
+ * The abstract syntax tree of SPARQL 1.1 (and SPARQL 1.2) queries and
9
+ * updates.
10
+ *
11
+ * The AST stays close to the surface syntax (group graph patterns, solution
12
+ * modifiers, update operations) while using the core `Term` model for all
13
+ * IRIs, literals, blank nodes, variables and triple terms. Abbreviated
14
+ * syntax (prefixed names, `a`, blank node property lists, collections,
15
+ * reifiers and annotations) is expanded by the parser, so every IRI in the
16
+ * tree is absolute.
17
+ *
18
+ * All nodes are plain immutable objects discriminated by `_tag`; the
19
+ * constructors in this module are the recommended way to build them.
20
+ *
21
+ * @since 0.1.0
22
+ */
23
+ var Ast_exports = /* @__PURE__ */ __exportAll({
24
+ aggregate: () => aggregate,
25
+ alternative: () => alternative,
26
+ ask: () => ask,
27
+ bgp: () => bgp,
28
+ bind: () => bind,
29
+ builtInArity: () => builtInArity,
30
+ construct: () => construct,
31
+ containsAggregate: () => containsAggregate,
32
+ describe: () => describe,
33
+ emptyPrologue: () => emptyPrologue,
34
+ exists: () => exists,
35
+ expressionVariables: () => expressionVariables,
36
+ filter: () => filter,
37
+ functionCall: () => functionCall,
38
+ graph: () => graph,
39
+ group: () => group,
40
+ inScopeVariables: () => inScopeVariables,
41
+ inverse: () => inverse,
42
+ isBuiltInName: () => isBuiltInName,
43
+ isPath: () => isPath,
44
+ isQuery: () => isQuery,
45
+ isUpdate: () => isUpdate,
46
+ link: () => link,
47
+ minus: () => minus,
48
+ negated: () => negated,
49
+ oneOrMore: () => oneOrMore,
50
+ operation: () => operation,
51
+ optional: () => optional,
52
+ pathPattern: () => pathPattern,
53
+ projectedVariables: () => projectedVariables,
54
+ projection: () => projection,
55
+ quadPattern: () => quadPattern,
56
+ select: () => select,
57
+ sequence: () => sequence,
58
+ service: () => service,
59
+ subSelect: () => subSelect,
60
+ triplePattern: () => triplePattern,
61
+ union: () => union,
62
+ update: () => update,
63
+ values: () => values,
64
+ zeroOrMore: () => zeroOrMore,
65
+ zeroOrOne: () => zeroOrOne
66
+ });
67
+ /**
68
+ * @since 0.1.0
69
+ * @category guards
70
+ */
71
+ const isPath = (u) => Predicate.hasProperty(u, "_tag") && Predicate.isString(u._tag) && u._tag.startsWith("Path");
72
+ /**
73
+ * Arity of each built-in function: `[min, max]` (`max` = `Infinity` for
74
+ * variadic functions).
75
+ *
76
+ * @since 0.1.0
77
+ * @category models
78
+ */
79
+ const builtInArity = {
80
+ STR: [1, 1],
81
+ LANG: [1, 1],
82
+ LANGMATCHES: [2, 2],
83
+ LANGDIR: [1, 1],
84
+ DATATYPE: [1, 1],
85
+ BOUND: [1, 1],
86
+ IRI: [1, 1],
87
+ URI: [1, 1],
88
+ BNODE: [0, 1],
89
+ RAND: [0, 0],
90
+ ABS: [1, 1],
91
+ CEIL: [1, 1],
92
+ FLOOR: [1, 1],
93
+ ROUND: [1, 1],
94
+ CONCAT: [0, Infinity],
95
+ SUBSTR: [2, 3],
96
+ STRLEN: [1, 1],
97
+ REPLACE: [3, 4],
98
+ UCASE: [1, 1],
99
+ LCASE: [1, 1],
100
+ ENCODE_FOR_URI: [1, 1],
101
+ CONTAINS: [2, 2],
102
+ STRSTARTS: [2, 2],
103
+ STRENDS: [2, 2],
104
+ STRBEFORE: [2, 2],
105
+ STRAFTER: [2, 2],
106
+ YEAR: [1, 1],
107
+ MONTH: [1, 1],
108
+ DAY: [1, 1],
109
+ HOURS: [1, 1],
110
+ MINUTES: [1, 1],
111
+ SECONDS: [1, 1],
112
+ TIMEZONE: [1, 1],
113
+ TZ: [1, 1],
114
+ NOW: [0, 0],
115
+ UUID: [0, 0],
116
+ STRUUID: [0, 0],
117
+ MD5: [1, 1],
118
+ SHA1: [1, 1],
119
+ SHA256: [1, 1],
120
+ SHA384: [1, 1],
121
+ SHA512: [1, 1],
122
+ COALESCE: [0, Infinity],
123
+ IF: [3, 3],
124
+ STRLANG: [2, 2],
125
+ STRLANGDIR: [3, 3],
126
+ STRDT: [2, 2],
127
+ SAMETERM: [2, 2],
128
+ ISIRI: [1, 1],
129
+ ISURI: [1, 1],
130
+ ISBLANK: [1, 1],
131
+ ISLITERAL: [1, 1],
132
+ ISNUMERIC: [1, 1],
133
+ HASLANG: [1, 1],
134
+ HASLANGDIR: [1, 1],
135
+ REGEX: [2, 3],
136
+ ISTRIPLE: [1, 1],
137
+ TRIPLE: [3, 3],
138
+ SUBJECT: [1, 1],
139
+ PREDICATE: [1, 1],
140
+ OBJECT: [1, 1]
141
+ };
142
+ /**
143
+ * Whether a (case-insensitive) name is a built-in function.
144
+ *
145
+ * @since 0.1.0
146
+ * @category guards
147
+ */
148
+ const isBuiltInName = (name) => Object.prototype.hasOwnProperty.call(builtInArity, name.toUpperCase());
149
+ /**
150
+ * @since 0.1.0
151
+ * @category guards
152
+ */
153
+ const isQuery = (u) => Predicate.isTagged(u, "Select") || Predicate.isTagged(u, "Construct") || Predicate.isTagged(u, "Ask") || Predicate.isTagged(u, "Describe");
154
+ /**
155
+ * @since 0.1.0
156
+ * @category guards
157
+ */
158
+ const isUpdate = (u) => Predicate.isTagged(u, "Update");
159
+ /**
160
+ * @since 0.1.0
161
+ * @category constructors
162
+ */
163
+ const emptyPrologue = { prefixes: {} };
164
+ /**
165
+ * @since 0.1.0
166
+ * @category constructors
167
+ */
168
+ const triplePattern = (subject, predicate, object) => ({
169
+ _tag: "TriplePattern",
170
+ subject,
171
+ predicate,
172
+ object
173
+ });
174
+ /**
175
+ * @since 0.1.0
176
+ * @category constructors
177
+ */
178
+ const pathPattern = (subject, path, object) => ({
179
+ _tag: "PathPattern",
180
+ subject,
181
+ path,
182
+ object
183
+ });
184
+ /**
185
+ * @since 0.1.0
186
+ * @category constructors
187
+ */
188
+ const quadPattern = (subject, predicate, object, graph = defaultGraph) => ({
189
+ _tag: "QuadPattern",
190
+ subject,
191
+ predicate,
192
+ object,
193
+ graph
194
+ });
195
+ /**
196
+ * @since 0.1.0
197
+ * @category constructors
198
+ */
199
+ const link = (iri) => ({
200
+ _tag: "PathLink",
201
+ iri
202
+ });
203
+ /**
204
+ * @since 0.1.0
205
+ * @category constructors
206
+ */
207
+ const inverse = (path) => ({
208
+ _tag: "PathInverse",
209
+ path
210
+ });
211
+ /**
212
+ * @since 0.1.0
213
+ * @category constructors
214
+ */
215
+ const sequence = (...paths) => ({
216
+ _tag: "PathSequence",
217
+ paths
218
+ });
219
+ /**
220
+ * @since 0.1.0
221
+ * @category constructors
222
+ */
223
+ const alternative = (...paths) => ({
224
+ _tag: "PathAlternative",
225
+ paths
226
+ });
227
+ /**
228
+ * @since 0.1.0
229
+ * @category constructors
230
+ */
231
+ const zeroOrMore = (path) => ({
232
+ _tag: "PathZeroOrMore",
233
+ path
234
+ });
235
+ /**
236
+ * @since 0.1.0
237
+ * @category constructors
238
+ */
239
+ const oneOrMore = (path) => ({
240
+ _tag: "PathOneOrMore",
241
+ path
242
+ });
243
+ /**
244
+ * @since 0.1.0
245
+ * @category constructors
246
+ */
247
+ const zeroOrOne = (path) => ({
248
+ _tag: "PathZeroOrOne",
249
+ path
250
+ });
251
+ /**
252
+ * @since 0.1.0
253
+ * @category constructors
254
+ */
255
+ const negated = (iris, inverse = []) => ({
256
+ _tag: "PathNegated",
257
+ iris,
258
+ inverse
259
+ });
260
+ /**
261
+ * @since 0.1.0
262
+ * @category constructors
263
+ */
264
+ const operation = (operator, ...args) => ({
265
+ _tag: "Operation",
266
+ operator,
267
+ args
268
+ });
269
+ /**
270
+ * @since 0.1.0
271
+ * @category constructors
272
+ */
273
+ const functionCall = (fn, args, distinct = false) => ({
274
+ _tag: "FunctionCall",
275
+ function: fn,
276
+ args,
277
+ distinct
278
+ });
279
+ /**
280
+ * @since 0.1.0
281
+ * @category constructors
282
+ */
283
+ const aggregate = (name, expression, options) => {
284
+ const plain = {
285
+ _tag: "Aggregate",
286
+ name,
287
+ expression,
288
+ distinct: options?.distinct ?? false
289
+ };
290
+ return options?.separator === void 0 ? plain : {
291
+ ...plain,
292
+ separator: options.separator
293
+ };
294
+ };
295
+ /**
296
+ * @since 0.1.0
297
+ * @category constructors
298
+ */
299
+ const exists = (pattern, negated = false) => ({
300
+ _tag: "Exists",
301
+ negated,
302
+ pattern
303
+ });
304
+ /**
305
+ * @since 0.1.0
306
+ * @category constructors
307
+ */
308
+ const bgp = (triples) => ({
309
+ _tag: "Bgp",
310
+ triples
311
+ });
312
+ /**
313
+ * @since 0.1.0
314
+ * @category constructors
315
+ */
316
+ const group = (patterns) => ({
317
+ _tag: "Group",
318
+ patterns
319
+ });
320
+ /**
321
+ * @since 0.1.0
322
+ * @category constructors
323
+ */
324
+ const optional = (pattern) => ({
325
+ _tag: "Optional",
326
+ pattern
327
+ });
328
+ /**
329
+ * @since 0.1.0
330
+ * @category constructors
331
+ */
332
+ const union = (patterns) => ({
333
+ _tag: "Union",
334
+ patterns
335
+ });
336
+ /**
337
+ * @since 0.1.0
338
+ * @category constructors
339
+ */
340
+ const minus = (pattern) => ({
341
+ _tag: "Minus",
342
+ pattern
343
+ });
344
+ /**
345
+ * @since 0.1.0
346
+ * @category constructors
347
+ */
348
+ const graph = (name, pattern) => ({
349
+ _tag: "Graph",
350
+ name,
351
+ pattern
352
+ });
353
+ /**
354
+ * @since 0.1.0
355
+ * @category constructors
356
+ */
357
+ const service = (name, pattern, silent = false) => ({
358
+ _tag: "Service",
359
+ name,
360
+ pattern,
361
+ silent
362
+ });
363
+ /**
364
+ * @since 0.1.0
365
+ * @category constructors
366
+ */
367
+ const filter = (expression) => ({
368
+ _tag: "Filter",
369
+ expression
370
+ });
371
+ /**
372
+ * @since 0.1.0
373
+ * @category constructors
374
+ */
375
+ const bind = (expression, variable) => ({
376
+ _tag: "Bind",
377
+ expression,
378
+ variable
379
+ });
380
+ /**
381
+ * @since 0.1.0
382
+ * @category constructors
383
+ */
384
+ const values = (variables, rows) => ({
385
+ _tag: "Values",
386
+ variables,
387
+ rows
388
+ });
389
+ /**
390
+ * @since 0.1.0
391
+ * @category constructors
392
+ */
393
+ const subSelect = (query) => ({
394
+ _tag: "SubSelect",
395
+ query
396
+ });
397
+ /**
398
+ * A projected `(expression AS ?variable)`.
399
+ *
400
+ * @since 0.1.0
401
+ * @category constructors
402
+ */
403
+ const projection = (expression, variable) => ({
404
+ _tag: "Projection",
405
+ expression,
406
+ variable
407
+ });
408
+ const queryDefaults = {
409
+ prologue: emptyPrologue,
410
+ groupBy: [],
411
+ having: [],
412
+ orderBy: []
413
+ };
414
+ /**
415
+ * Creates a `SELECT` query; omitted fields take their defaults.
416
+ *
417
+ * @since 0.1.0
418
+ * @category constructors
419
+ */
420
+ const select = (fields) => ({
421
+ _tag: "Select",
422
+ ...queryDefaults,
423
+ distinct: false,
424
+ reduced: false,
425
+ projection: "*",
426
+ ...fields
427
+ });
428
+ /**
429
+ * Creates a `CONSTRUCT` query.
430
+ *
431
+ * @since 0.1.0
432
+ * @category constructors
433
+ */
434
+ const construct = (fields) => ({
435
+ _tag: "Construct",
436
+ ...queryDefaults,
437
+ ...fields
438
+ });
439
+ /**
440
+ * Creates an `ASK` query.
441
+ *
442
+ * @since 0.1.0
443
+ * @category constructors
444
+ */
445
+ const ask = (fields) => ({
446
+ _tag: "Ask",
447
+ ...queryDefaults,
448
+ ...fields
449
+ });
450
+ /**
451
+ * Creates a `DESCRIBE` query.
452
+ *
453
+ * @since 0.1.0
454
+ * @category constructors
455
+ */
456
+ const describe = (fields) => ({
457
+ _tag: "Describe",
458
+ ...queryDefaults,
459
+ where: group([]),
460
+ ...fields
461
+ });
462
+ /**
463
+ * Creates an update request.
464
+ *
465
+ * @since 0.1.0
466
+ * @category constructors
467
+ */
468
+ const update = (operations, prologue = emptyPrologue) => ({
469
+ _tag: "Update",
470
+ prologue,
471
+ operations
472
+ });
473
+ const addTermVariables = (term, out) => {
474
+ if (isVariable(term)) out.set(term.value, true);
475
+ else if (isTriple(term)) {
476
+ addTermVariables(term.subject, out);
477
+ addTermVariables(term.predicate, out);
478
+ addTermVariables(term.object, out);
479
+ }
480
+ };
481
+ /**
482
+ * The variables that are in-scope after a graph pattern (SPARQL 1.1 §18.2.1),
483
+ * in order of first appearance. Blank nodes are not included.
484
+ *
485
+ * @since 0.1.0
486
+ * @category utils
487
+ */
488
+ const inScopeVariables = (pattern) => {
489
+ const out = emptySet();
490
+ collectInScope(pattern, out);
491
+ return Array.from(out.keys());
492
+ };
493
+ const collectInScope = (pattern, out) => {
494
+ Match.value(pattern).pipe(Match.tag("Bgp", (b) => b.triples.forEach((t) => {
495
+ addTermVariables(t.subject, out);
496
+ if (Predicate.isTagged(t, "TriplePattern")) addTermVariables(t.predicate, out);
497
+ addTermVariables(t.object, out);
498
+ })), Match.tag("Group", "Union", (g) => g.patterns.forEach((p) => collectInScope(p, out))), Match.tag("Optional", (o) => collectInScope(o.pattern, out)), Match.tag("Minus", "Filter", () => void 0), Match.tag("Graph", "Service", (g) => {
499
+ addTermVariables(g.name, out);
500
+ collectInScope(g.pattern, out);
501
+ }), Match.tag("Bind", (b) => {
502
+ out.set(b.variable.value, true);
503
+ }), Match.tag("Values", (v) => v.variables.forEach((x) => out.set(x.value, true))), Match.tag("SubSelect", (s) => projectedVariables(s.query).forEach((v) => out.set(v, true))), Match.exhaustive);
504
+ };
505
+ /**
506
+ * The variables projected by a `SELECT` query (for `SELECT *`, the
507
+ * in-scope variables of its pattern and trailing `VALUES`).
508
+ *
509
+ * @since 0.1.0
510
+ * @category utils
511
+ */
512
+ const projectedVariables = (query) => {
513
+ if (query.projection === "*") {
514
+ const out = emptySet();
515
+ collectInScope(query.where, out);
516
+ query.values?.variables.forEach((v) => out.set(v.value, true));
517
+ return Array.from(out.keys());
518
+ }
519
+ return query.projection.map((p) => isVariable(p) ? p.value : p.variable.value);
520
+ };
521
+ /**
522
+ * All variables mentioned anywhere in an expression (including inside
523
+ * `EXISTS` patterns when `deep` is set).
524
+ *
525
+ * @since 0.1.0
526
+ * @category utils
527
+ */
528
+ const expressionVariables = (expression, deep = false) => {
529
+ const out = emptySet();
530
+ const go = (e) => {
531
+ Match.value(e).pipe(Match.tag("Variable", "Triple", (t) => addTermVariables(t, out)), Match.tag("Operation", "FunctionCall", (call) => call.args.forEach(go)), Match.tag("Aggregate", (a) => {
532
+ if (a.expression !== "*") go(a.expression);
533
+ }), Match.tag("Exists", (x) => {
534
+ if (deep) collectInScope(x.pattern, out);
535
+ }), Match.orElse(() => void 0));
536
+ };
537
+ go(expression);
538
+ return Array.from(out.keys());
539
+ };
540
+ /**
541
+ * Whether an expression contains an aggregate (outside of nested `EXISTS`
542
+ * patterns).
543
+ *
544
+ * @since 0.1.0
545
+ * @category utils
546
+ */
547
+ const containsAggregate = (expression) => {
548
+ return Match.value(expression).pipe(Match.tag("Aggregate", () => true), Match.tag("Operation", "FunctionCall", (call) => call.args.some(containsAggregate)), Match.orElse(() => false));
549
+ };
550
+ export { pathPattern as A, update as B, isUpdate as C, oneOrMore as D, negated as E, sequence as F, zeroOrMore as H, service as I, subSelect as L, projection as M, quadPattern as N, operation as O, select as P, triplePattern as R, isQuery as S, minus as T, zeroOrOne as U, values as V, group as _, bgp as a, isBuiltInName as b, construct as c, emptyPrologue as d, exists as f, graph as g, functionCall as h, ask as i, projectedVariables as j, optional as k, containsAggregate as l, filter as m, aggregate as n, bind as o, expressionVariables as p, alternative as r, builtInArity as s, Ast_exports as t, describe as u, inScopeVariables as v, link as w, isPath as x, inverse as y, union as z };
551
+
552
+ //# sourceMappingURL=Ast-CPRZmBvk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ast-CPRZmBvk.mjs","names":["Term.defaultGraph","Term.isVariable","Term.isTriple","StringMap.emptySet"],"sources":["../src/sparql/Ast.ts"],"sourcesContent":["/**\n * The abstract syntax tree of SPARQL 1.1 (and SPARQL 1.2) queries and\n * updates.\n *\n * The AST stays close to the surface syntax (group graph patterns, solution\n * modifiers, update operations) while using the core `Term` model for all\n * IRIs, literals, blank nodes, variables and triple terms. Abbreviated\n * syntax (prefixed names, `a`, blank node property lists, collections,\n * reifiers and annotations) is expanded by the parser, so every IRI in the\n * tree is absolute.\n *\n * All nodes are plain immutable objects discriminated by `_tag`; the\n * constructors in this module are the recommended way to build them.\n *\n * @since 0.1.0\n */\nimport * as Term from '../Term.ts';\nimport * as Predicate from 'effect/Predicate';\nimport * as Match from 'effect/Match';\nimport * as StringMap from './internal/stringMap.ts';\n\n// -----------------------------------------------------------------------------\n// Terms\n// -----------------------------------------------------------------------------\n\n/**\n * A term that may appear in a triple pattern: an IRI, literal, blank node,\n * variable or triple term (whose components may themselves be variables).\n *\n * @since 0.1.0\n * @category models\n */\nexport type TermPattern =\n | Term.NamedNode\n | Term.BlankNode\n | Term.Literal\n | Term.Variable\n | Term.Triple<any, any, any>;\n\n/**\n * An IRI or a variable.\n *\n * @since 0.1.0\n * @category models\n */\nexport type VarOrIri = Term.NamedNode | Term.Variable;\n\n// -----------------------------------------------------------------------------\n// Property paths\n// -----------------------------------------------------------------------------\n\n/**\n * A property path expression (SPARQL 1.1 §9).\n *\n * A path consisting of a single IRI is represented as `PathLink`; triple\n * patterns whose predicate is a plain IRI use `TriplePattern` instead.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Path =\n | PathLink\n | PathInverse\n | PathSequence\n | PathAlternative\n | PathZeroOrMore\n | PathOneOrMore\n | PathZeroOrOne\n | PathNegated;\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface PathLink {\n readonly _tag: 'PathLink';\n readonly iri: Term.NamedNode;\n}\n\n/**\n * `^path`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathInverse {\n readonly _tag: 'PathInverse';\n readonly path: Path;\n}\n\n/**\n * `path1 / path2 / …`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathSequence {\n readonly _tag: 'PathSequence';\n readonly paths: ReadonlyArray<Path>;\n}\n\n/**\n * `path1 | path2 | …`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathAlternative {\n readonly _tag: 'PathAlternative';\n readonly paths: ReadonlyArray<Path>;\n}\n\n/**\n * `path*`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathZeroOrMore {\n readonly _tag: 'PathZeroOrMore';\n readonly path: Path;\n}\n\n/**\n * `path+`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathOneOrMore {\n readonly _tag: 'PathOneOrMore';\n readonly path: Path;\n}\n\n/**\n * `path?`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathZeroOrOne {\n readonly _tag: 'PathZeroOrOne';\n readonly path: Path;\n}\n\n/**\n * A negated property set `!(iri1 | ^iri2 | …)`. `iris` are the forward\n * IRIs and `inverse` the IRIs written with `^`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathNegated {\n readonly _tag: 'PathNegated';\n readonly iris: ReadonlyArray<Term.NamedNode>;\n readonly inverse: ReadonlyArray<Term.NamedNode>;\n}\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isPath = (u: unknown): u is Path =>\n Predicate.hasProperty(u, '_tag') && Predicate.isString(u._tag) && u._tag.startsWith('Path');\n\n// -----------------------------------------------------------------------------\n// Triple and quad patterns\n// -----------------------------------------------------------------------------\n\n/**\n * A triple pattern whose predicate is an IRI or a variable.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface TriplePattern {\n readonly _tag: 'TriplePattern';\n readonly subject: TermPattern;\n readonly predicate: VarOrIri;\n readonly object: TermPattern;\n}\n\n/**\n * A triple pattern whose predicate is a (non-trivial) property path.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface PathPattern {\n readonly _tag: 'PathPattern';\n readonly subject: TermPattern;\n readonly path: Path;\n readonly object: TermPattern;\n}\n\n/**\n * A triple pattern within a graph: used by update templates (`INSERT`,\n * `DELETE`, `DELETE WHERE`). `graph` is the default graph for triples\n * outside of a `GRAPH` block.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface QuadPattern {\n readonly _tag: 'QuadPattern';\n readonly subject: TermPattern;\n readonly predicate: VarOrIri;\n readonly object: TermPattern;\n readonly graph: Term.NamedNode | Term.Variable | Term.DefaultGraph;\n}\n\n// -----------------------------------------------------------------------------\n// Expressions\n// -----------------------------------------------------------------------------\n\n/**\n * The built-in operators and functions of SPARQL 1.1 and 1.2, in their\n * canonical (upper case) spelling. Unary plus and minus are `UPLUS` and\n * `UMINUS`; `IN` and `NOT IN` take the tested expression as their first\n * argument.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Operator =\n | '||'\n | '&&'\n | '!'\n | '='\n | '!='\n | '<'\n | '>'\n | '<='\n | '>='\n | '+'\n | '-'\n | '*'\n | '/'\n | 'UPLUS'\n | 'UMINUS'\n | 'IN'\n | 'NOT IN'\n | BuiltInName;\n\n/**\n * Names of the built-in function calls (`BuiltInCall` in the grammar,\n * excluding aggregates and `EXISTS`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type BuiltInName =\n | 'STR'\n | 'LANG'\n | 'LANGMATCHES'\n | 'LANGDIR'\n | 'DATATYPE'\n | 'BOUND'\n | 'IRI'\n | 'URI'\n | 'BNODE'\n | 'RAND'\n | 'ABS'\n | 'CEIL'\n | 'FLOOR'\n | 'ROUND'\n | 'CONCAT'\n | 'SUBSTR'\n | 'STRLEN'\n | 'REPLACE'\n | 'UCASE'\n | 'LCASE'\n | 'ENCODE_FOR_URI'\n | 'CONTAINS'\n | 'STRSTARTS'\n | 'STRENDS'\n | 'STRBEFORE'\n | 'STRAFTER'\n | 'YEAR'\n | 'MONTH'\n | 'DAY'\n | 'HOURS'\n | 'MINUTES'\n | 'SECONDS'\n | 'TIMEZONE'\n | 'TZ'\n | 'NOW'\n | 'UUID'\n | 'STRUUID'\n | 'MD5'\n | 'SHA1'\n | 'SHA256'\n | 'SHA384'\n | 'SHA512'\n | 'COALESCE'\n | 'IF'\n | 'STRLANG'\n | 'STRLANGDIR'\n | 'STRDT'\n | 'SAMETERM'\n | 'ISIRI'\n | 'ISURI'\n | 'ISBLANK'\n | 'ISLITERAL'\n | 'ISNUMERIC'\n | 'HASLANG'\n | 'HASLANGDIR'\n | 'REGEX'\n | 'ISTRIPLE'\n | 'TRIPLE'\n | 'SUBJECT'\n | 'PREDICATE'\n | 'OBJECT';\n\n/**\n * Arity of each built-in function: `[min, max]` (`max` = `Infinity` for\n * variadic functions).\n *\n * @since 0.1.0\n * @category models\n */\nexport const builtInArity: Readonly<Record<BuiltInName, readonly [number, number]>> = {\n STR: [1, 1],\n LANG: [1, 1],\n LANGMATCHES: [2, 2],\n LANGDIR: [1, 1],\n DATATYPE: [1, 1],\n BOUND: [1, 1],\n IRI: [1, 1],\n URI: [1, 1],\n BNODE: [0, 1],\n RAND: [0, 0],\n ABS: [1, 1],\n CEIL: [1, 1],\n FLOOR: [1, 1],\n ROUND: [1, 1],\n CONCAT: [0, Infinity],\n SUBSTR: [2, 3],\n STRLEN: [1, 1],\n REPLACE: [3, 4],\n UCASE: [1, 1],\n LCASE: [1, 1],\n ENCODE_FOR_URI: [1, 1],\n CONTAINS: [2, 2],\n STRSTARTS: [2, 2],\n STRENDS: [2, 2],\n STRBEFORE: [2, 2],\n STRAFTER: [2, 2],\n YEAR: [1, 1],\n MONTH: [1, 1],\n DAY: [1, 1],\n HOURS: [1, 1],\n MINUTES: [1, 1],\n SECONDS: [1, 1],\n TIMEZONE: [1, 1],\n TZ: [1, 1],\n NOW: [0, 0],\n UUID: [0, 0],\n STRUUID: [0, 0],\n MD5: [1, 1],\n SHA1: [1, 1],\n SHA256: [1, 1],\n SHA384: [1, 1],\n SHA512: [1, 1],\n COALESCE: [0, Infinity],\n IF: [3, 3],\n STRLANG: [2, 2],\n STRLANGDIR: [3, 3],\n STRDT: [2, 2],\n SAMETERM: [2, 2],\n ISIRI: [1, 1],\n ISURI: [1, 1],\n ISBLANK: [1, 1],\n ISLITERAL: [1, 1],\n ISNUMERIC: [1, 1],\n HASLANG: [1, 1],\n HASLANGDIR: [1, 1],\n REGEX: [2, 3],\n ISTRIPLE: [1, 1],\n TRIPLE: [3, 3],\n SUBJECT: [1, 1],\n PREDICATE: [1, 1],\n OBJECT: [1, 1],\n};\n\n/**\n * Whether a (case-insensitive) name is a built-in function.\n *\n * @since 0.1.0\n * @category guards\n */\nexport const isBuiltInName = (name: string): name is BuiltInName =>\n Object.prototype.hasOwnProperty.call(builtInArity, name.toUpperCase());\n\n/**\n * A SPARQL expression. Variables and constant terms are expressions as-is.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Expression =\n | Term.Variable\n | Term.NamedNode\n | Term.Literal\n | Term.BlankNode\n | Term.Triple<any, any, any>\n | OperationExpression\n | FunctionCallExpression\n | AggregateExpression\n | ExistsExpression;\n\n/**\n * An operator or built-in function application.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface OperationExpression {\n readonly _tag: 'Operation';\n readonly operator: Operator;\n readonly args: ReadonlyArray<Expression>;\n}\n\n/**\n * A call to an extension function (or a cast such as `xsd:integer(?x)`)\n * identified by IRI.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface FunctionCallExpression {\n readonly _tag: 'FunctionCall';\n readonly function: Term.NamedNode;\n readonly args: ReadonlyArray<Expression>;\n /** `DISTINCT` was given (only meaningful for custom aggregates). */\n readonly distinct: boolean;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type AggregateName = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMPLE' | 'GROUP_CONCAT';\n\n/**\n * An aggregate. `expression` is `'*'` for `COUNT(*)`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface AggregateExpression {\n readonly _tag: 'Aggregate';\n readonly name: AggregateName;\n readonly distinct: boolean;\n readonly expression: Expression | '*';\n /** The `SEPARATOR` of `GROUP_CONCAT` (defaults to a single space). */\n readonly separator?: string | undefined;\n}\n\n/**\n * `EXISTS { … }` / `NOT EXISTS { … }`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ExistsExpression {\n readonly _tag: 'Exists';\n readonly negated: boolean;\n readonly pattern: GroupPattern;\n}\n\n// -----------------------------------------------------------------------------\n// Graph patterns\n// -----------------------------------------------------------------------------\n\n/**\n * An element of a group graph pattern.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Pattern =\n | BgpPattern\n | GroupPattern\n | OptionalPattern\n | UnionPattern\n | MinusPattern\n | GraphPattern\n | ServicePattern\n | FilterPattern\n | BindPattern\n | ValuesPattern\n | SubSelectPattern;\n\n/**\n * A block of triple patterns (`TriplesBlock`).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface BgpPattern {\n readonly _tag: 'Bgp';\n readonly triples: ReadonlyArray<TriplePattern | PathPattern>;\n}\n\n/**\n * A group graph pattern `{ … }`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface GroupPattern {\n readonly _tag: 'Group';\n readonly patterns: ReadonlyArray<Pattern>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface OptionalPattern {\n readonly _tag: 'Optional';\n readonly pattern: GroupPattern;\n}\n\n/**\n * `{ … } UNION { … } UNION …`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface UnionPattern {\n readonly _tag: 'Union';\n readonly patterns: ReadonlyArray<GroupPattern>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface MinusPattern {\n readonly _tag: 'Minus';\n readonly pattern: GroupPattern;\n}\n\n/**\n * `GRAPH ?g { … }`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface GraphPattern {\n readonly _tag: 'Graph';\n readonly name: VarOrIri;\n readonly pattern: GroupPattern;\n}\n\n/**\n * `SERVICE [SILENT] <endpoint> { … }`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ServicePattern {\n readonly _tag: 'Service';\n readonly name: VarOrIri;\n readonly silent: boolean;\n readonly pattern: GroupPattern;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface FilterPattern {\n readonly _tag: 'Filter';\n readonly expression: Expression;\n}\n\n/**\n * `BIND (expr AS ?var)`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface BindPattern {\n readonly _tag: 'Bind';\n readonly expression: Expression;\n readonly variable: Term.Variable;\n}\n\n/**\n * Inline data. Each row has one entry per variable; `undefined` is `UNDEF`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ValuesPattern {\n readonly _tag: 'Values';\n readonly variables: ReadonlyArray<Term.Variable>;\n readonly rows: ReadonlyArray<ReadonlyArray<Term.GroundTerm | undefined>>;\n}\n\n/**\n * A nested `SELECT` query.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface SubSelectPattern {\n readonly _tag: 'SubSelect';\n readonly query: SelectQuery;\n}\n\n// -----------------------------------------------------------------------------\n// Queries\n// -----------------------------------------------------------------------------\n\n/**\n * The prologue of a query or update: the declared base IRI, prefixes and\n * version. Declarations are kept for pretty printing only; the parser has\n * already expanded all IRIs.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Prologue {\n readonly base?: string | undefined;\n readonly prefixes: Readonly<Record<string, string>>;\n readonly version?: string | undefined;\n}\n\n/**\n * `FROM` and `FROM NAMED` (or `USING` / `USING NAMED`) clauses.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface DatasetClause {\n readonly default: ReadonlyArray<Term.NamedNode>;\n readonly named: ReadonlyArray<Term.NamedNode>;\n}\n\n/**\n * A `GROUP BY` condition, optionally bound to a variable with `AS`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface GroupCondition {\n readonly expression: Expression;\n readonly variable?: Term.Variable | undefined;\n}\n\n/**\n * An `ORDER BY` condition.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface OrderCondition {\n readonly expression: Expression;\n readonly descending: boolean;\n}\n\n/**\n * A projected `(expression AS ?variable)`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Projection {\n readonly _tag: 'Projection';\n readonly expression: Expression;\n readonly variable: Term.Variable;\n}\n\n/**\n * Fields shared by all query forms.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface QueryBase {\n readonly prologue: Prologue;\n readonly dataset?: DatasetClause | undefined;\n readonly where: GroupPattern;\n readonly groupBy: ReadonlyArray<GroupCondition>;\n readonly having: ReadonlyArray<Expression>;\n readonly orderBy: ReadonlyArray<OrderCondition>;\n readonly limit?: number | undefined;\n readonly offset?: number | undefined;\n /** A trailing `VALUES` clause. */\n readonly values?: ValuesPattern | undefined;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface SelectQuery extends QueryBase {\n readonly _tag: 'Select';\n readonly distinct: boolean;\n readonly reduced: boolean;\n readonly projection: '*' | ReadonlyArray<Term.Variable | Projection>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface ConstructQuery extends QueryBase {\n readonly _tag: 'Construct';\n readonly template: ReadonlyArray<TriplePattern>;\n /** Whether the short form `CONSTRUCT WHERE { … }` was used. */\n readonly short?: boolean | undefined;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface AskQuery extends QueryBase {\n readonly _tag: 'Ask';\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface DescribeQuery extends QueryBase {\n readonly _tag: 'Describe';\n readonly terms: '*' | ReadonlyArray<VarOrIri>;\n}\n\n/**\n * Any query.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Query = SelectQuery | ConstructQuery | AskQuery | DescribeQuery;\n\n// -----------------------------------------------------------------------------\n// Updates\n// -----------------------------------------------------------------------------\n\n/**\n * The target of `CLEAR` / `DROP`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type GraphTarget =\n | Term.NamedNode\n | { readonly _tag: 'Default' }\n | { readonly _tag: 'Named' }\n | { readonly _tag: 'All' };\n\n/**\n * A graph or the default graph (`ADD`, `MOVE`, `COPY`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type GraphOrDefault = Term.NamedNode | Term.DefaultGraph;\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface InsertDataOperation {\n readonly _tag: 'InsertData';\n readonly quads: ReadonlyArray<Term.Quad>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface DeleteDataOperation {\n readonly _tag: 'DeleteData';\n readonly quads: ReadonlyArray<Term.Quad>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface DeleteWhereOperation {\n readonly _tag: 'DeleteWhere';\n readonly patterns: ReadonlyArray<QuadPattern>;\n}\n\n/**\n * `[WITH <g>] DELETE { … } INSERT { … } [USING …] WHERE { … }`\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ModifyOperation {\n readonly _tag: 'Modify';\n readonly with?: Term.NamedNode | undefined;\n readonly delete: ReadonlyArray<QuadPattern>;\n readonly insert: ReadonlyArray<QuadPattern>;\n readonly using?: DatasetClause | undefined;\n readonly where: GroupPattern;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface LoadOperation {\n readonly _tag: 'Load';\n readonly silent: boolean;\n readonly source: Term.NamedNode;\n readonly destination?: Term.NamedNode | undefined;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface ClearOperation {\n readonly _tag: 'Clear';\n readonly silent: boolean;\n readonly target: GraphTarget;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface DropOperation {\n readonly _tag: 'Drop';\n readonly silent: boolean;\n readonly target: GraphTarget;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface CreateOperation {\n readonly _tag: 'Create';\n readonly silent: boolean;\n readonly graph: Term.NamedNode;\n}\n\n/**\n * `ADD`, `MOVE` and `COPY`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface TransferOperation {\n readonly _tag: 'Add' | 'Move' | 'Copy';\n readonly silent: boolean;\n readonly source: GraphOrDefault;\n readonly destination: GraphOrDefault;\n}\n\n/**\n * A single update operation.\n *\n * @since 0.1.0\n * @category models\n */\nexport type UpdateOperation =\n | InsertDataOperation\n | DeleteDataOperation\n | DeleteWhereOperation\n | ModifyOperation\n | LoadOperation\n | ClearOperation\n | DropOperation\n | CreateOperation\n | TransferOperation;\n\n/**\n * An update request: a sequence of operations.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Update {\n readonly _tag: 'Update';\n readonly prologue: Prologue;\n readonly operations: ReadonlyArray<UpdateOperation>;\n}\n\n// -----------------------------------------------------------------------------\n// Guards\n// -----------------------------------------------------------------------------\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isQuery = (u: unknown): u is Query =>\n Predicate.isTagged(u, 'Select') ||\n Predicate.isTagged(u, 'Construct') ||\n Predicate.isTagged(u, 'Ask') ||\n Predicate.isTagged(u, 'Describe');\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isUpdate = (u: unknown): u is Update => Predicate.isTagged(u, 'Update');\n\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const emptyPrologue: Prologue = { prefixes: {} };\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const triplePattern = (\n subject: TermPattern,\n predicate: VarOrIri,\n object: TermPattern,\n): TriplePattern => ({ _tag: 'TriplePattern', subject, predicate, object });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const pathPattern = (\n subject: TermPattern,\n path: Path,\n object: TermPattern,\n): PathPattern => ({\n _tag: 'PathPattern',\n subject,\n path,\n object,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const quadPattern = (\n subject: TermPattern,\n predicate: VarOrIri,\n object: TermPattern,\n graph: Term.NamedNode | Term.Variable | Term.DefaultGraph = Term.defaultGraph,\n): QuadPattern => ({ _tag: 'QuadPattern', subject, predicate, object, graph });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const link = (iri: Term.NamedNode): PathLink => ({ _tag: 'PathLink', iri });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const inverse = (path: Path): PathInverse => ({ _tag: 'PathInverse', path });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const sequence = (...paths: ReadonlyArray<Path>): PathSequence => ({\n _tag: 'PathSequence',\n paths,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const alternative = (...paths: ReadonlyArray<Path>): PathAlternative => ({\n _tag: 'PathAlternative',\n paths,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const zeroOrMore = (path: Path): PathZeroOrMore => ({ _tag: 'PathZeroOrMore', path });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const oneOrMore = (path: Path): PathOneOrMore => ({ _tag: 'PathOneOrMore', path });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const zeroOrOne = (path: Path): PathZeroOrOne => ({ _tag: 'PathZeroOrOne', path });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const negated = (\n iris: ReadonlyArray<Term.NamedNode>,\n inverse: ReadonlyArray<Term.NamedNode> = [],\n): PathNegated => ({ _tag: 'PathNegated', iris, inverse });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const operation = (\n operator: Operator,\n ...args: ReadonlyArray<Expression>\n): OperationExpression => ({ _tag: 'Operation', operator, args });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const functionCall = (\n fn: Term.NamedNode,\n args: ReadonlyArray<Expression>,\n distinct = false,\n): FunctionCallExpression => ({ _tag: 'FunctionCall', function: fn, args, distinct });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const aggregate = (\n name: AggregateName,\n expression: Expression | '*',\n options?: { readonly distinct?: boolean; readonly separator?: string },\n): AggregateExpression => {\n const plain: AggregateExpression = {\n _tag: 'Aggregate',\n name,\n expression,\n distinct: options?.distinct ?? false,\n };\n return options?.separator === undefined ? plain : { ...plain, separator: options.separator };\n};\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const exists = (pattern: GroupPattern, negated = false): ExistsExpression => ({\n _tag: 'Exists',\n negated,\n pattern,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const bgp = (triples: ReadonlyArray<TriplePattern | PathPattern>): BgpPattern => ({\n _tag: 'Bgp',\n triples,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const group = (patterns: ReadonlyArray<Pattern>): GroupPattern => ({\n _tag: 'Group',\n patterns,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const optional = (pattern: GroupPattern): OptionalPattern => ({ _tag: 'Optional', pattern });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const union = (patterns: ReadonlyArray<GroupPattern>): UnionPattern => ({\n _tag: 'Union',\n patterns,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const minus = (pattern: GroupPattern): MinusPattern => ({ _tag: 'Minus', pattern });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const graph = (name: VarOrIri, pattern: GroupPattern): GraphPattern => ({\n _tag: 'Graph',\n name,\n pattern,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const service = (name: VarOrIri, pattern: GroupPattern, silent = false): ServicePattern => ({\n _tag: 'Service',\n name,\n pattern,\n silent,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const filter = (expression: Expression): FilterPattern => ({ _tag: 'Filter', expression });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const bind = (expression: Expression, variable: Term.Variable): BindPattern => ({\n _tag: 'Bind',\n expression,\n variable,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const values = (\n variables: ReadonlyArray<Term.Variable>,\n rows: ReadonlyArray<ReadonlyArray<Term.GroundTerm | undefined>>,\n): ValuesPattern => ({ _tag: 'Values', variables, rows });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const subSelect = (query: SelectQuery): SubSelectPattern => ({ _tag: 'SubSelect', query });\n\n/**\n * A projected `(expression AS ?variable)`.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const projection = (expression: Expression, variable: Term.Variable): Projection => ({\n _tag: 'Projection',\n expression,\n variable,\n});\n\nconst queryDefaults = {\n prologue: emptyPrologue,\n groupBy: [],\n having: [],\n orderBy: [],\n} as const;\n\n/**\n * Creates a `SELECT` query; omitted fields take their defaults.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const select = (\n fields: Partial<Omit<SelectQuery, '_tag'>> & Pick<SelectQuery, 'where'>,\n): SelectQuery => ({\n _tag: 'Select',\n ...queryDefaults,\n distinct: false,\n reduced: false,\n projection: '*',\n ...fields,\n});\n\n/**\n * Creates a `CONSTRUCT` query.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const construct = (\n fields: Partial<Omit<ConstructQuery, '_tag'>> & Pick<ConstructQuery, 'where' | 'template'>,\n): ConstructQuery => ({ _tag: 'Construct', ...queryDefaults, ...fields });\n\n/**\n * Creates an `ASK` query.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const ask = (\n fields: Partial<Omit<AskQuery, '_tag'>> & Pick<AskQuery, 'where'>,\n): AskQuery => ({ _tag: 'Ask', ...queryDefaults, ...fields });\n\n/**\n * Creates a `DESCRIBE` query.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const describe = (\n fields: Partial<Omit<DescribeQuery, '_tag'>> & Pick<DescribeQuery, 'terms'>,\n): DescribeQuery => ({ _tag: 'Describe', ...queryDefaults, where: group([]), ...fields });\n\n/**\n * Creates an update request.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const update = (\n operations: ReadonlyArray<UpdateOperation>,\n prologue: Prologue = emptyPrologue,\n): Update => ({ _tag: 'Update', prologue, operations });\n\n// -----------------------------------------------------------------------------\n// Utilities\n// -----------------------------------------------------------------------------\n\n/** Variable names in order of first appearance, as a string set. */\ntype Names = Map<string, true>;\n\nconst addTermVariables = (term: TermPattern | Term.Term, out: Names): void => {\n if (Term.isVariable(term)) out.set(term.value, true);\n else if (Term.isTriple(term)) {\n addTermVariables(term.subject, out);\n addTermVariables(term.predicate, out);\n addTermVariables(term.object, out);\n }\n};\n\n/**\n * The variables that are in-scope after a graph pattern (SPARQL 1.1 §18.2.1),\n * in order of first appearance. Blank nodes are not included.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const inScopeVariables = (pattern: Pattern): ReadonlyArray<string> => {\n const out: Names = StringMap.emptySet();\n collectInScope(pattern, out);\n return Array.from(out.keys());\n};\n\nconst collectInScope = (pattern: Pattern, out: Names): void => {\n Match.value(pattern).pipe(\n Match.tag('Bgp', (b) =>\n b.triples.forEach((t) => {\n addTermVariables(t.subject, out);\n if (Predicate.isTagged(t, 'TriplePattern')) addTermVariables(t.predicate, out);\n addTermVariables(t.object, out);\n }),\n ),\n Match.tag('Group', 'Union', (g) => g.patterns.forEach((p) => collectInScope(p, out))),\n Match.tag('Optional', (o) => collectInScope(o.pattern, out)),\n Match.tag('Minus', 'Filter', () => undefined),\n Match.tag('Graph', 'Service', (g) => {\n addTermVariables(g.name, out);\n collectInScope(g.pattern, out);\n }),\n Match.tag('Bind', (b) => {\n out.set(b.variable.value, true);\n }),\n Match.tag('Values', (v) => v.variables.forEach((x) => out.set(x.value, true))),\n Match.tag('SubSelect', (s) => projectedVariables(s.query).forEach((v) => out.set(v, true))),\n Match.exhaustive,\n );\n};\n\n/**\n * The variables projected by a `SELECT` query (for `SELECT *`, the\n * in-scope variables of its pattern and trailing `VALUES`).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const projectedVariables = (query: SelectQuery): ReadonlyArray<string> => {\n if (query.projection === '*') {\n const out: Names = StringMap.emptySet();\n collectInScope(query.where, out);\n query.values?.variables.forEach((v) => out.set(v.value, true));\n return Array.from(out.keys());\n }\n return query.projection.map((p) => (Term.isVariable(p) ? p.value : p.variable.value));\n};\n\n/**\n * All variables mentioned anywhere in an expression (including inside\n * `EXISTS` patterns when `deep` is set).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const expressionVariables = (\n expression: Expression,\n deep = false,\n): ReadonlyArray<string> => {\n const out: Names = StringMap.emptySet();\n const go = (e: Expression): void => {\n Match.value(e).pipe(\n Match.tag('Variable', 'Triple', (t) => addTermVariables(t, out)),\n Match.tag('Operation', 'FunctionCall', (call) => call.args.forEach(go)),\n Match.tag('Aggregate', (a) => {\n if (a.expression !== '*') go(a.expression);\n }),\n Match.tag('Exists', (x) => {\n if (deep) collectInScope(x.pattern, out);\n }),\n Match.orElse(() => undefined),\n );\n };\n go(expression);\n return Array.from(out.keys());\n};\n\n/**\n * Whether an expression contains an aggregate (outside of nested `EXISTS`\n * patterns).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const containsAggregate = (expression: Expression): boolean => {\n return Match.value(expression).pipe(\n Match.tag('Aggregate', () => true),\n Match.tag('Operation', 'FunctionCall', (call) => call.args.some(containsAggregate)),\n Match.orElse(() => false),\n );\n};\n"],"mappings":"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"}