@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,243 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { A as escapeString, B as isNamedNode, Y as literal, k as escapeIri, o as Literal } from "./Term-CFLG1qu4.mjs";
3
+ import * as Match from "effect/Match";
4
+ // src/ntriples/Lexical.ts
5
+ /**
6
+ * Lexical rules shared by the N-Triples family of RDF syntaxes (N-Triples,
7
+ * N-Quads, Turtle and TriG): character classes, escape decoding, language
8
+ * tags with base direction, and canonical term formatting.
9
+ *
10
+ * These are low-level, pure helpers; most users want the `NTriples` and
11
+ * `NQuads` modules instead.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ var Lexical_exports = /* @__PURE__ */ __exportAll({
16
+ blankNodeLabel: () => blankNodeLabel,
17
+ decodeEchar: () => decodeEchar,
18
+ decodeUchar: () => decodeUchar,
19
+ formatIri: () => formatIri,
20
+ formatLiteral: () => formatLiteral,
21
+ formatTerm: () => formatTerm,
22
+ isAbsoluteIri: () => isAbsoluteIri,
23
+ isBlankNodeLabel: () => isBlankNodeLabel,
24
+ isDigit: () => isDigit,
25
+ isHex: () => isHex,
26
+ isIriChar: () => isIriChar,
27
+ isPnChars: () => isPnChars,
28
+ isPnCharsBase: () => isPnCharsBase,
29
+ isPnCharsU: () => isPnCharsU,
30
+ isWritableIri: () => isWritableIri,
31
+ makeLiteral: () => makeLiteral,
32
+ parseLanguageTag: () => parseLanguageTag
33
+ });
34
+ const RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
35
+ const RDF_LANG_STRING = `${RDF}langString`;
36
+ const RDF_DIR_LANG_STRING = `${RDF}dirLangString`;
37
+ const XSD_STRING = "http://www.w3.org/2001/XMLSchema#string";
38
+ /**
39
+ * `PN_CHARS_BASE` from the Turtle / N-Triples grammars.
40
+ *
41
+ * @since 0.1.0
42
+ * @category character classes
43
+ */
44
+ const isPnCharsBase = (c) => c >= 65 && c <= 90 || c >= 97 && c <= 122 || c >= 192 && c <= 214 || c >= 216 && c <= 246 || c >= 248 && c <= 767 || c >= 880 && c <= 893 || c >= 895 && c <= 8191 || c >= 8204 && c <= 8205 || c >= 8304 && c <= 8591 || c >= 11264 && c <= 12271 || c >= 12289 && c <= 55295 || c >= 63744 && c <= 64975 || c >= 65008 && c <= 65533 || c >= 65536 && c <= 983039;
45
+ /**
46
+ * `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.
47
+ *
48
+ * @since 0.1.0
49
+ * @category character classes
50
+ */
51
+ const isPnCharsU = (c) => c === 95 || isPnCharsBase(c);
52
+ /**
53
+ * `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.
54
+ *
55
+ * @since 0.1.0
56
+ * @category character classes
57
+ */
58
+ const isPnChars = (c) => isPnCharsU(c) || c === 45 || c >= 48 && c <= 57 || c === 183 || c >= 768 && c <= 879 || c >= 8255 && c <= 8256;
59
+ /**
60
+ * Whether a code point is an ASCII digit.
61
+ *
62
+ * @since 0.1.0
63
+ * @category character classes
64
+ */
65
+ const isDigit = (c) => c >= 48 && c <= 57;
66
+ /**
67
+ * Whether a code point is an ASCII hexadecimal digit.
68
+ *
69
+ * @since 0.1.0
70
+ * @category character classes
71
+ */
72
+ const isHex = (c) => c >= 48 && c <= 57 || c >= 65 && c <= 70 || c >= 97 && c <= 102;
73
+ /**
74
+ * Whether a code point may appear unescaped inside an `IRIREF`
75
+ * (`[^#x00-#x20<>"{}|^`\]`).
76
+ *
77
+ * @since 0.1.0
78
+ * @category character classes
79
+ */
80
+ const isIriChar = (c) => c > 32 && c !== 60 && c !== 62 && c !== 34 && c !== 123 && c !== 125 && c !== 124 && c !== 94 && c !== 96 && c !== 92;
81
+ const SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*:/;
82
+ /**
83
+ * Whether a string is an absolute IRI reference (starts with a scheme).
84
+ *
85
+ * @since 0.1.0
86
+ * @category validation
87
+ */
88
+ const isAbsoluteIri = (iri) => SCHEME.test(iri);
89
+ /**
90
+ * Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is
91
+ * absolute and contains no characters that would need escaping.
92
+ *
93
+ * @since 0.1.0
94
+ * @category validation
95
+ */
96
+ const isWritableIri = (iri) => isAbsoluteIri(iri) && escapeIri(iri) === iri;
97
+ /** The code point of a one-code-point string (as `Array.from` splits a string). */
98
+ const codePointOf = (ch) => ch.codePointAt(0) ?? 0;
99
+ const HEX_DIGITS = /^[0-9A-Fa-f]*$/;
100
+ /**
101
+ * Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).
102
+ *
103
+ * @since 0.1.0
104
+ * @category validation
105
+ */
106
+ const isBlankNodeLabel = (label) => {
107
+ if (label === "") return false;
108
+ const codePoints = Array.from(label, codePointOf);
109
+ return codePoints.every((c, i) => i === 0 ? isPnCharsU(c) || isDigit(c) : isPnChars(c) || c === 46) && codePoints.at(-1) !== 46;
110
+ };
111
+ /**
112
+ * Decodes a `UCHAR` (`\uXXXX` or `\UXXXXXXXX`) starting at `index`, which
113
+ * must point at the backslash. Surrogate code points and values beyond
114
+ * U+10FFFF are rejected.
115
+ *
116
+ * @since 0.1.0
117
+ * @category escapes
118
+ */
119
+ const decodeUchar = (input, index) => {
120
+ const kind = input.charCodeAt(index + 1);
121
+ const digits = kind === 117 ? 4 : kind === 85 ? 8 : 0;
122
+ if (digits === 0) return {
123
+ _tag: "Error",
124
+ message: "Invalid escape sequence"
125
+ };
126
+ const hex = input.slice(index + 2, index + 2 + digits);
127
+ if (hex.length !== digits || !HEX_DIGITS.test(hex)) return {
128
+ _tag: "Error",
129
+ message: "Invalid numeric escape sequence"
130
+ };
131
+ const value = parseInt(hex, 16);
132
+ if (value > 1114111) return {
133
+ _tag: "Error",
134
+ message: "Numeric escape is beyond U+10FFFF"
135
+ };
136
+ if (value >= 55296 && value <= 57343) return {
137
+ _tag: "Error",
138
+ message: "Numeric escape encodes a surrogate code point"
139
+ };
140
+ return {
141
+ _tag: "Ok",
142
+ value: String.fromCodePoint(value),
143
+ length: digits + 2
144
+ };
145
+ };
146
+ const echar = Match.type().pipe(Match.when(116, () => " "), Match.when(98, () => "\b"), Match.when(110, () => "\n"), Match.when(114, () => "\r"), Match.when(102, () => "\f"), Match.when(34, () => "\""), Match.when(39, () => "'"), Match.when(92, () => "\\"), Match.orElse(() => void 0));
147
+ /**
148
+ * Decodes the string-escape (`ECHAR`) character following a backslash, if
149
+ * it is one of `t b n r f " ' \`.
150
+ *
151
+ * @since 0.1.0
152
+ * @category escapes
153
+ */
154
+ const decodeEchar = (c) => echar(c);
155
+ const LANG_DIR = /^([a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*)(?:--([a-zA-Z]+))?$/;
156
+ /**
157
+ * Parses the text of a `LANG_DIR` token (without the leading `@`). Returns
158
+ * `undefined` when the tag or direction is invalid; directions must be
159
+ * `ltr` or `rtl`.
160
+ *
161
+ * @since 0.1.0
162
+ * @category validation
163
+ */
164
+ const parseLanguageTag = (text) => {
165
+ const m = LANG_DIR.exec(text);
166
+ if (m === null) return void 0;
167
+ const direction = m[2];
168
+ if (direction !== void 0 && direction !== "ltr" && direction !== "rtl") return void 0;
169
+ return {
170
+ language: m[1] ?? "",
171
+ direction
172
+ };
173
+ };
174
+ /**
175
+ * Builds a literal from a lexical form and an optional language tag or
176
+ * datatype, rejecting the language-string datatypes used without a tag.
177
+ * Returns an error message on failure.
178
+ *
179
+ * @since 0.1.0
180
+ * @category constructors
181
+ */
182
+ const makeLiteral = (value, annotation) => {
183
+ if (annotation === void 0) return literal(value);
184
+ if (isNamedNode(annotation)) {
185
+ if (annotation.value === RDF_LANG_STRING || annotation.value === RDF_DIR_LANG_STRING) return `The datatype ${annotation.key} requires a language tag`;
186
+ return new Literal(value, annotation);
187
+ }
188
+ return literal(value, annotation);
189
+ };
190
+ /**
191
+ * Encodes an arbitrary blank node label as a valid N-Triples label. Valid
192
+ * labels are returned unchanged.
193
+ *
194
+ * @since 0.1.0
195
+ * @category formatting
196
+ */
197
+ const blankNodeLabel = (label) => {
198
+ if (isBlankNodeLabel(label)) return label;
199
+ return `x${Array.from(label, (ch) => {
200
+ const c = codePointOf(ch);
201
+ return isPnCharsBase(c) || isDigit(c) ? ch : `_${c.toString(16)}_`;
202
+ }).join("")}`;
203
+ };
204
+ /**
205
+ * Formats an IRI as a canonical `IRIREF`.
206
+ *
207
+ * @since 0.1.0
208
+ * @category formatting
209
+ */
210
+ const formatIri = (iri) => `<${escapeIri(iri)}>`;
211
+ /**
212
+ * Formats a literal in canonical N-Triples form: canonical string escapes,
213
+ * lower-case language tags, and no datatype for `xsd:string`.
214
+ *
215
+ * @since 0.1.0
216
+ * @category formatting
217
+ */
218
+ const formatLiteral = (literal) => {
219
+ const lexical = `"${escapeString(literal.value)}"`;
220
+ if (literal.language !== "") {
221
+ const language = literal.language.toLowerCase();
222
+ return literal.direction === void 0 ? `${lexical}@${language}` : `${lexical}@${language}--${literal.direction}`;
223
+ }
224
+ if (literal.datatype.value === XSD_STRING) return lexical;
225
+ return `${lexical}^^${formatIri(literal.datatype.value)}`;
226
+ };
227
+ const formatTermMatch = Match.type().pipe(Match.tag("NamedNode", (term) => formatIri(term.value)), Match.tag("BlankNode", (term) => `_:${blankNodeLabel(term.value)}`), Match.tag("Literal", (term) => formatLiteral(term)), Match.tag("Triple", (term) => {
228
+ const s = formatTerm(term.subject);
229
+ const o = formatTerm(term.object);
230
+ return s === void 0 || o === void 0 ? void 0 : `<<( ${s} ${formatIri(term.predicate.value)} ${o} )>>`;
231
+ }), Match.orElse(() => void 0));
232
+ /**
233
+ * Formats a ground term (IRI, blank node, literal or triple term) in
234
+ * canonical N-Triples form. Returns `undefined` for variables and the
235
+ * default graph, which have no N-Triples representation.
236
+ *
237
+ * @since 0.1.0
238
+ * @category formatting
239
+ */
240
+ const formatTerm = (term) => formatTermMatch(term);
241
+ export { makeLiteral as _, formatIri as a, isAbsoluteIri as c, isHex as d, isIriChar as f, isWritableIri as g, isPnCharsU as h, decodeUchar as i, isBlankNodeLabel as l, isPnCharsBase as m, blankNodeLabel as n, formatLiteral as o, isPnChars as p, decodeEchar as r, formatTerm as s, Lexical_exports as t, isDigit as u, parseLanguageTag as v };
242
+
243
+ //# sourceMappingURL=Lexical-Cg0JHrf6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lexical-Cg0JHrf6.mjs","names":["Term.escapeIri","Term.literal","Term.isNamedNode","Term.Literal","Term.escapeString"],"sources":["../src/ntriples/Lexical.ts"],"sourcesContent":["/**\n * Lexical rules shared by the N-Triples family of RDF syntaxes (N-Triples,\n * N-Quads, Turtle and TriG): character classes, escape decoding, language\n * tags with base direction, and canonical term formatting.\n *\n * These are low-level, pure helpers; most users want the `NTriples` and\n * `NQuads` modules instead.\n *\n * @since 0.1.0\n */\nimport * as Term from '../Term.ts';\nimport * as Match from 'effect/Match';\n\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst RDF_LANG_STRING = `${RDF}langString`;\nconst RDF_DIR_LANG_STRING = `${RDF}dirLangString`;\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\n\n/**\n * `PN_CHARS_BASE` from the Turtle / N-Triples grammars.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnCharsBase = (c: number): boolean =>\n (c >= 0x41 && c <= 0x5a) ||\n (c >= 0x61 && c <= 0x7a) ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x2ff) ||\n (c >= 0x370 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff);\n\n/**\n * `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnCharsU = (c: number): boolean => c === 0x5f || isPnCharsBase(c);\n\n/**\n * `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnChars = (c: number): boolean =>\n isPnCharsU(c) ||\n c === 0x2d ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0xb7 ||\n (c >= 0x300 && c <= 0x36f) ||\n (c >= 0x203f && c <= 0x2040);\n\n/**\n * Whether a code point is an ASCII digit.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isDigit = (c: number): boolean => c >= 0x30 && c <= 0x39;\n\n/**\n * Whether a code point is an ASCII hexadecimal digit.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isHex = (c: number): boolean =>\n (c >= 0x30 && c <= 0x39) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n\n/**\n * Whether a code point may appear unescaped inside an `IRIREF`\n * (`[^#x00-#x20<>\"{}|^`\\]`).\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isIriChar = (c: number): boolean =>\n c > 0x20 &&\n c !== 0x3c && // <\n c !== 0x3e && // >\n c !== 0x22 && // \"\n c !== 0x7b && // {\n c !== 0x7d && // }\n c !== 0x7c && // |\n c !== 0x5e && // ^\n c !== 0x60 && // `\n c !== 0x5c; // \\\n\n// Hoisted: a regex literal makes a new `RegExp` each time it is evaluated, and this runs per IRI.\nconst SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*:/;\n\n/**\n * Whether a string is an absolute IRI reference (starts with a scheme).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isAbsoluteIri = (iri: string): boolean => SCHEME.test(iri);\n\n/**\n * Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is\n * absolute and contains no characters that would need escaping.\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isWritableIri = (iri: string): boolean =>\n // `escapeIri` changes exactly the characters `isIriChar` rejects\n isAbsoluteIri(iri) && Term.escapeIri(iri) === iri;\n\n/** The code point of a one-code-point string (as `Array.from` splits a string). */\nconst codePointOf = (ch: string): number => ch.codePointAt(0) ?? 0;\n\nconst HEX_DIGITS = /^[0-9A-Fa-f]*$/;\n\n/**\n * Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isBlankNodeLabel = (label: string): boolean => {\n if (label === '') return false;\n const codePoints = Array.from(label, codePointOf);\n return (\n codePoints.every((c, i) =>\n i === 0 ? isPnCharsU(c) || isDigit(c) : isPnChars(c) || c === 0x2e,\n ) && codePoints.at(-1) !== 0x2e\n );\n};\n\n/**\n * The result of decoding a numeric escape: the code point or an error\n * message.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport type DecodedEscape =\n | { readonly _tag: 'Ok'; readonly value: string; readonly length: number }\n | { readonly _tag: 'Error'; readonly message: string };\n\n/**\n * Decodes a `UCHAR` (`\\uXXXX` or `\\UXXXXXXXX`) starting at `index`, which\n * must point at the backslash. Surrogate code points and values beyond\n * U+10FFFF are rejected.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport const decodeUchar = (input: string, index: number): DecodedEscape => {\n const kind = input.charCodeAt(index + 1);\n const digits = kind === 0x75 ? 4 : kind === 0x55 ? 8 : 0;\n if (digits === 0) return { _tag: 'Error', message: 'Invalid escape sequence' };\n const hex = input.slice(index + 2, index + 2 + digits);\n if (hex.length !== digits || !HEX_DIGITS.test(hex)) {\n return { _tag: 'Error', message: 'Invalid numeric escape sequence' };\n }\n const value = parseInt(hex, 16);\n if (value > 0x10ffff) {\n return { _tag: 'Error', message: 'Numeric escape is beyond U+10FFFF' };\n }\n if (value >= 0xd800 && value <= 0xdfff) {\n return { _tag: 'Error', message: 'Numeric escape encodes a surrogate code point' };\n }\n return { _tag: 'Ok', value: String.fromCodePoint(value), length: digits + 2 };\n};\n\n// Built once: `decodeEchar` runs for every backslash escape a lexer reads.\nconst echar = Match.type<number>().pipe(\n Match.when(0x74, () => '\\t'),\n Match.when(0x62, () => '\\b'),\n Match.when(0x6e, () => '\\n'),\n Match.when(0x72, () => '\\r'),\n Match.when(0x66, () => '\\f'),\n Match.when(0x22, () => '\"'),\n Match.when(0x27, () => \"'\"),\n Match.when(0x5c, () => '\\\\'),\n Match.orElse(() => undefined),\n);\n\n/**\n * Decodes the string-escape (`ECHAR`) character following a backslash, if\n * it is one of `t b n r f \" ' \\`.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport const decodeEchar = (c: number): string | undefined => echar(c);\n\n/**\n * A language tag with an optional base direction.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LanguageTag {\n readonly language: string;\n readonly direction: Term.Direction | undefined;\n}\n\nconst LANG_DIR = /^([a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*)(?:--([a-zA-Z]+))?$/;\n\n/**\n * Parses the text of a `LANG_DIR` token (without the leading `@`). Returns\n * `undefined` when the tag or direction is invalid; directions must be\n * `ltr` or `rtl`.\n *\n * @since 0.1.0\n * @category validation\n */\nexport const parseLanguageTag = (text: string): LanguageTag | undefined => {\n const m = LANG_DIR.exec(text);\n if (m === null) return undefined;\n const direction = m[2];\n if (direction !== undefined && direction !== 'ltr' && direction !== 'rtl') return undefined;\n return { language: m[1] ?? '', direction };\n};\n\n/**\n * Builds a literal from a lexical form and an optional language tag or\n * datatype, rejecting the language-string datatypes used without a tag.\n * Returns an error message on failure.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const makeLiteral = (\n value: string,\n annotation: LanguageTag | Term.NamedNode | undefined,\n): Term.Literal | string => {\n if (annotation === undefined) return Term.literal(value);\n if (Term.isNamedNode(annotation)) {\n if (annotation.value === RDF_LANG_STRING || annotation.value === RDF_DIR_LANG_STRING) {\n return `The datatype ${annotation.key} requires a language tag`;\n }\n return new Term.Literal(value, annotation);\n }\n return Term.literal(value, annotation);\n};\n\n// -----------------------------------------------------------------------------\n// Canonical formatting\n// -----------------------------------------------------------------------------\n\n/**\n * Encodes an arbitrary blank node label as a valid N-Triples label. Valid\n * labels are returned unchanged.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const blankNodeLabel = (label: string): string => {\n if (isBlankNodeLabel(label)) return label;\n return `x${Array.from(label, (ch) => {\n const c = codePointOf(ch);\n return isPnCharsBase(c) || isDigit(c) ? ch : `_${c.toString(16)}_`;\n }).join('')}`;\n};\n\n/**\n * Formats an IRI as a canonical `IRIREF`.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatIri = (iri: string): string => `<${Term.escapeIri(iri)}>`;\n\n/**\n * Formats a literal in canonical N-Triples form: canonical string escapes,\n * lower-case language tags, and no datatype for `xsd:string`.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatLiteral = (literal: Term.Literal): string => {\n const lexical = `\"${Term.escapeString(literal.value)}\"`;\n if (literal.language !== '') {\n const language = literal.language.toLowerCase();\n return literal.direction === undefined\n ? `${lexical}@${language}`\n : `${lexical}@${language}--${literal.direction}`;\n }\n if (literal.datatype.value === XSD_STRING) return lexical;\n return `${lexical}^^${formatIri(literal.datatype.value)}`;\n};\n\n// Built once: `formatTerm` runs for every term a serializer writes.\nconst formatTermMatch = Match.type<Term.Term>().pipe(\n Match.tag('NamedNode', (term) => formatIri(term.value)),\n Match.tag('BlankNode', (term) => `_:${blankNodeLabel(term.value)}`),\n Match.tag('Literal', (term) => formatLiteral(term)),\n Match.tag('Triple', (term) => {\n const s = formatTerm(term.subject);\n const o = formatTerm(term.object);\n return s === undefined || o === undefined\n ? undefined\n : `<<( ${s} ${formatIri(term.predicate.value)} ${o} )>>`;\n }),\n Match.orElse(() => undefined),\n);\n\n/**\n * Formats a ground term (IRI, blank node, literal or triple term) in\n * canonical N-Triples form. Returns `undefined` for variables and the\n * default graph, which have no N-Triples representation.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatTerm = (term: Term.Term): string | undefined => formatTermMatch(term);\n"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { T as Term, d as NamedNode, i as Direction, l as Literal } from "./Term-B_4ezyXq.mjs";
2
+ declare namespace Lexical_d_exports {
3
+ export { DecodedEscape, LanguageTag, blankNodeLabel, decodeEchar, decodeUchar, formatIri, formatLiteral, formatTerm, isAbsoluteIri, isBlankNodeLabel, isDigit, isHex, isIriChar, isPnChars, isPnCharsBase, isPnCharsU, isWritableIri, makeLiteral, parseLanguageTag };
4
+ }
5
+ /**
6
+ * `PN_CHARS_BASE` from the Turtle / N-Triples grammars.
7
+ *
8
+ * @since 0.1.0
9
+ * @category character classes
10
+ */
11
+ declare const isPnCharsBase: (c: number) => boolean;
12
+ /**
13
+ * `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.
14
+ *
15
+ * @since 0.1.0
16
+ * @category character classes
17
+ */
18
+ declare const isPnCharsU: (c: number) => boolean;
19
+ /**
20
+ * `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.
21
+ *
22
+ * @since 0.1.0
23
+ * @category character classes
24
+ */
25
+ declare const isPnChars: (c: number) => boolean;
26
+ /**
27
+ * Whether a code point is an ASCII digit.
28
+ *
29
+ * @since 0.1.0
30
+ * @category character classes
31
+ */
32
+ declare const isDigit: (c: number) => boolean;
33
+ /**
34
+ * Whether a code point is an ASCII hexadecimal digit.
35
+ *
36
+ * @since 0.1.0
37
+ * @category character classes
38
+ */
39
+ declare const isHex: (c: number) => boolean;
40
+ /**
41
+ * Whether a code point may appear unescaped inside an `IRIREF`
42
+ * (`[^#x00-#x20<>"{}|^`\]`).
43
+ *
44
+ * @since 0.1.0
45
+ * @category character classes
46
+ */
47
+ declare const isIriChar: (c: number) => boolean;
48
+ /**
49
+ * Whether a string is an absolute IRI reference (starts with a scheme).
50
+ *
51
+ * @since 0.1.0
52
+ * @category validation
53
+ */
54
+ declare const isAbsoluteIri: (iri: string) => boolean;
55
+ /**
56
+ * Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is
57
+ * absolute and contains no characters that would need escaping.
58
+ *
59
+ * @since 0.1.0
60
+ * @category validation
61
+ */
62
+ declare const isWritableIri: (iri: string) => boolean;
63
+ /**
64
+ * Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).
65
+ *
66
+ * @since 0.1.0
67
+ * @category validation
68
+ */
69
+ declare const isBlankNodeLabel: (label: string) => boolean;
70
+ /**
71
+ * The result of decoding a numeric escape: the code point or an error
72
+ * message.
73
+ *
74
+ * @since 0.1.0
75
+ * @category escapes
76
+ */
77
+ type DecodedEscape = {
78
+ readonly _tag: 'Ok';
79
+ readonly value: string;
80
+ readonly length: number;
81
+ } | {
82
+ readonly _tag: 'Error';
83
+ readonly message: string;
84
+ };
85
+ /**
86
+ * Decodes a `UCHAR` (`\uXXXX` or `\UXXXXXXXX`) starting at `index`, which
87
+ * must point at the backslash. Surrogate code points and values beyond
88
+ * U+10FFFF are rejected.
89
+ *
90
+ * @since 0.1.0
91
+ * @category escapes
92
+ */
93
+ declare const decodeUchar: (input: string, index: number) => DecodedEscape;
94
+ /**
95
+ * Decodes the string-escape (`ECHAR`) character following a backslash, if
96
+ * it is one of `t b n r f " ' \`.
97
+ *
98
+ * @since 0.1.0
99
+ * @category escapes
100
+ */
101
+ declare const decodeEchar: (c: number) => string | undefined;
102
+ /**
103
+ * A language tag with an optional base direction.
104
+ *
105
+ * @since 0.1.0
106
+ * @category models
107
+ */
108
+ interface LanguageTag {
109
+ readonly language: string;
110
+ readonly direction: Direction | undefined;
111
+ }
112
+ /**
113
+ * Parses the text of a `LANG_DIR` token (without the leading `@`). Returns
114
+ * `undefined` when the tag or direction is invalid; directions must be
115
+ * `ltr` or `rtl`.
116
+ *
117
+ * @since 0.1.0
118
+ * @category validation
119
+ */
120
+ declare const parseLanguageTag: (text: string) => LanguageTag | undefined;
121
+ /**
122
+ * Builds a literal from a lexical form and an optional language tag or
123
+ * datatype, rejecting the language-string datatypes used without a tag.
124
+ * Returns an error message on failure.
125
+ *
126
+ * @since 0.1.0
127
+ * @category constructors
128
+ */
129
+ declare const makeLiteral: (value: string, annotation: LanguageTag | NamedNode | undefined) => Literal | string;
130
+ /**
131
+ * Encodes an arbitrary blank node label as a valid N-Triples label. Valid
132
+ * labels are returned unchanged.
133
+ *
134
+ * @since 0.1.0
135
+ * @category formatting
136
+ */
137
+ declare const blankNodeLabel: (label: string) => string;
138
+ /**
139
+ * Formats an IRI as a canonical `IRIREF`.
140
+ *
141
+ * @since 0.1.0
142
+ * @category formatting
143
+ */
144
+ declare const formatIri: (iri: string) => string;
145
+ /**
146
+ * Formats a literal in canonical N-Triples form: canonical string escapes,
147
+ * lower-case language tags, and no datatype for `xsd:string`.
148
+ *
149
+ * @since 0.1.0
150
+ * @category formatting
151
+ */
152
+ declare const formatLiteral: (literal: Literal) => string;
153
+ /**
154
+ * Formats a ground term (IRI, blank node, literal or triple term) in
155
+ * canonical N-Triples form. Returns `undefined` for variables and the
156
+ * default graph, which have no N-Triples representation.
157
+ *
158
+ * @since 0.1.0
159
+ * @category formatting
160
+ */
161
+ declare const formatTerm: (term: Term) => string | undefined;
162
+ export { isPnCharsU as _, decodeEchar as a, parseLanguageTag as b, formatLiteral as c, isBlankNodeLabel as d, isDigit as f, isPnCharsBase as g, isPnChars as h, blankNodeLabel as i, formatTerm as l, isIriChar as m, LanguageTag as n, decodeUchar as o, isHex as p, Lexical_d_exports as r, formatIri as s, DecodedEscape as t, isAbsoluteIri as u, isWritableIri as v, makeLiteral as y };
163
+ //# sourceMappingURL=Lexical-D3zySYVS.d.mts.map
@@ -0,0 +1,148 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, U as isResource, Z as namedNode, z as isLiteral } from "./Term-CFLG1qu4.mjs";
3
+ import { A as objectsOf, C as list, L as subjectsOf, O as objectOf } from "./Dataset-BlmlcI7J.mjs";
4
+ import { n as make, r as vocabulary } from "./Namespace-DHFIsORd.mjs";
5
+ import { a as rdfs, i as rdf } from "./Vocab-DceKywpq.mjs";
6
+ import { i as parse$1 } from "./Turtle-CZVUOtwl.mjs";
7
+ import * as Arr from "effect/Array";
8
+ import * as MutableHashSet from "effect/MutableHashSet";
9
+ import * as Option from "effect/Option";
10
+ import * as Effect from "effect/Effect";
11
+ // src/turtle/Manifest.ts
12
+ /**
13
+ * A reader for W3C test-suite manifests (`manifest.ttl`) as used by the RDF,
14
+ * SPARQL, SHACL, ShEx and JSON-LD test suites.
15
+ *
16
+ * Manifests are parsed with the Turtle parser. `load` follows `mf:include`
17
+ * recursively; reading files is delegated to a caller-supplied function so
18
+ * that the module stays platform independent.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import * as fs from 'node:fs'
23
+ * import { Effect } from 'effect'
24
+ * import { Manifest } from '@thomasfosterau/effect-rdf/turtle'
25
+ *
26
+ * const entries = Manifest.load(
27
+ * 'https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-turtle/manifest.ttl',
28
+ * Manifest.fileReader('https://w3c.github.io/rdf-tests/', '/path/to/rdf-tests/', (path) =>
29
+ * Effect.sync(() => fs.readFileSync(path, 'utf8')),
30
+ * ),
31
+ * )
32
+ * ```
33
+ *
34
+ * @since 0.1.0
35
+ */
36
+ var Manifest_exports = /* @__PURE__ */ __exportAll({
37
+ fileReader: () => fileReader,
38
+ load: () => load,
39
+ mf: () => mf,
40
+ parse: () => parse,
41
+ rdft: () => rdft,
42
+ toPath: () => toPath
43
+ });
44
+ /**
45
+ * The W3C test manifest vocabulary.
46
+ *
47
+ * @since 0.1.0
48
+ * @category vocabularies
49
+ */
50
+ const mf = vocabulary("http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#", [
51
+ "Manifest",
52
+ "entries",
53
+ "include",
54
+ "name",
55
+ "action",
56
+ "result",
57
+ "assumedTestBase"
58
+ ]);
59
+ /**
60
+ * The RDF test vocabulary.
61
+ *
62
+ * @since 0.1.0
63
+ * @category vocabularies
64
+ */
65
+ const rdft = make("http://www.w3.org/ns/rdftest#");
66
+ const localName = (iri) => iri.replace(/^.*[#/]/, "");
67
+ const iriOf = (term) => Option.flatMap(term, (t) => isNamedNode(t) ? Option.some(t.value) : Option.none());
68
+ const stringOf = (term) => Option.flatMap(term, (t) => isLiteral(t) ? Option.some(t.value) : Option.none());
69
+ /**
70
+ * Parses a manifest document. `iri` is the manifest's own IRI, used as the
71
+ * base IRI.
72
+ *
73
+ * @since 0.1.0
74
+ * @category parsing
75
+ */
76
+ const parse = (text, iri) => Effect.map(parse$1(text, { baseIri: iri }), ({ dataset }) => {
77
+ const subjects = subjectsOf(dataset, rdf.type, mf.Manifest);
78
+ const manifest = subjects.find((s) => isNamedNode(s) && s.value === iri) ?? subjects[0] ?? namedNode(iri);
79
+ const listAt = (p) => objectsOf(dataset, manifest, p).flatMap((head) => Option.getOrElse(list(dataset, head), () => []));
80
+ const entries = listAt(mf.entries).flatMap((node) => {
81
+ if (!isResource(node)) return [];
82
+ const type = iriOf(objectOf(dataset, node, rdf.type));
83
+ const id = isNamedNode(node) ? node.value : node.key;
84
+ return [{
85
+ id,
86
+ node,
87
+ type: Option.getOrElse(type, () => ""),
88
+ kind: Option.match(type, {
89
+ onNone: () => "",
90
+ onSome: localName
91
+ }),
92
+ name: Option.getOrElse(stringOf(objectOf(dataset, node, mf.name)), () => localName(id)),
93
+ comment: stringOf(objectOf(dataset, node, rdfs.comment)),
94
+ action: iriOf(objectOf(dataset, node, mf.action)),
95
+ result: iriOf(objectOf(dataset, node, mf.result)),
96
+ manifest: iri,
97
+ dataset
98
+ }];
99
+ });
100
+ return {
101
+ iri,
102
+ label: stringOf(objectOf(dataset, manifest, rdfs.label)),
103
+ assumedTestBase: iriOf(objectOf(dataset, manifest, mf.assumedTestBase)),
104
+ entries,
105
+ includes: listAt(mf.include).flatMap((t) => isNamedNode(t) ? [t.value] : []),
106
+ dataset
107
+ };
108
+ });
109
+ /**
110
+ * Loads a manifest and, recursively, every manifest it includes, returning
111
+ * all entries (each manifest is read at most once).
112
+ *
113
+ * @since 0.1.0
114
+ * @category loading
115
+ */
116
+ const load = (iri, read) => Effect.suspend(() => {
117
+ const seen = MutableHashSet.empty();
118
+ const entries = [];
119
+ const visit = (queue) => {
120
+ if (!Arr.isReadonlyArrayNonEmpty(queue)) return Effect.succeed(entries);
121
+ const [next, ...rest] = queue;
122
+ if (MutableHashSet.has(seen, next)) return visit(rest);
123
+ MutableHashSet.add(seen, next);
124
+ return read(next).pipe(Effect.flatMap((text) => parse(text, next)), Effect.flatMap((manifest) => {
125
+ entries.push(...manifest.entries);
126
+ return visit([...rest, ...manifest.includes]);
127
+ }));
128
+ };
129
+ return visit([iri]);
130
+ });
131
+ /**
132
+ * Builds a `read` function for `load` that maps IRIs under `iriPrefix` to
133
+ * paths under `pathPrefix` and reads them with `readFile`.
134
+ *
135
+ * @since 0.1.0
136
+ * @category loading
137
+ */
138
+ const fileReader = (iriPrefix, pathPrefix, readFile) => (iri) => readFile(toPath(iri, iriPrefix, pathPrefix));
139
+ /**
140
+ * Maps an IRI under `iriPrefix` to a path under `pathPrefix`.
141
+ *
142
+ * @since 0.1.0
143
+ * @category loading
144
+ */
145
+ const toPath = (iri, iriPrefix, pathPrefix) => iri.startsWith(iriPrefix) ? pathPrefix + iri.slice(iriPrefix.length) : iri;
146
+ export { parse as a, mf as i, fileReader as n, rdft as o, load as r, toPath as s, Manifest_exports as t };
147
+
148
+ //# sourceMappingURL=Manifest-B6xf6mUc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Manifest-B6xf6mUc.mjs","names":["Namespace.vocabulary","Namespace.make","Term.isNamedNode","Term.isLiteral","Turtle.parse","Dataset.subjectsOf","Term.namedNode","Dataset.objectsOf","Dataset.list","Term.isResource","Dataset.objectOf"],"sources":["../src/turtle/Manifest.ts"],"sourcesContent":["/**\n * A reader for W3C test-suite manifests (`manifest.ttl`) as used by the RDF,\n * SPARQL, SHACL, ShEx and JSON-LD test suites.\n *\n * Manifests are parsed with the Turtle parser. `load` follows `mf:include`\n * recursively; reading files is delegated to a caller-supplied function so\n * that the module stays platform independent.\n *\n * @example\n * ```ts\n * import * as fs from 'node:fs'\n * import { Effect } from 'effect'\n * import { Manifest } from '@thomasfosterau/effect-rdf/turtle'\n *\n * const entries = Manifest.load(\n * 'https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-turtle/manifest.ttl',\n * Manifest.fileReader('https://w3c.github.io/rdf-tests/', '/path/to/rdf-tests/', (path) =>\n * Effect.sync(() => fs.readFileSync(path, 'utf8')),\n * ),\n * )\n * ```\n *\n * @since 0.1.0\n */\nimport * as Dataset from '../Dataset.ts';\nimport * as Namespace from '../Namespace.ts';\nimport type * as Serialization from '../Serialization.ts';\nimport * as Term from '../Term.ts';\nimport { rdf, rdfs } from '../Vocab.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Turtle from './Turtle.ts';\n\n/**\n * The W3C test manifest vocabulary.\n *\n * @since 0.1.0\n * @category vocabularies\n */\nexport const mf = Namespace.vocabulary(\n 'http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#',\n ['Manifest', 'entries', 'include', 'name', 'action', 'result', 'assumedTestBase'],\n);\n\n/**\n * The RDF test vocabulary.\n *\n * @since 0.1.0\n * @category vocabularies\n */\nexport const rdft = Namespace.make('http://www.w3.org/ns/rdftest#');\n\n/**\n * A single test entry.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Entry {\n /** The test IRI (or blank node key). */\n readonly id: string;\n /** The test node itself, for reading further properties from `dataset`. */\n readonly node: Term.Subject;\n /** The IRI of the test's `rdf:type`. */\n readonly type: string;\n /** The local name of the test type, e.g. `TestTurtleEval`. */\n readonly kind: string;\n /** `mf:name` (falls back to the local name of the test IRI). */\n readonly name: string;\n /** `rdfs:comment`, if any. */\n readonly comment: Option.Option<string>;\n /** The `mf:action` IRI, if the action is an IRI. */\n readonly action: Option.Option<string>;\n /** The `mf:result` IRI, if the result is an IRI. */\n readonly result: Option.Option<string>;\n /** The IRI of the manifest that lists this entry. */\n readonly manifest: string;\n /** The parsed manifest document. */\n readonly dataset: Dataset.Dataset;\n}\n\n/**\n * A parsed manifest.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Manifest {\n readonly iri: string;\n readonly label: Option.Option<string>;\n readonly assumedTestBase: Option.Option<string>;\n readonly entries: ReadonlyArray<Entry>;\n readonly includes: ReadonlyArray<string>;\n readonly dataset: Dataset.Dataset;\n}\n\nconst localName = (iri: string): string => iri.replace(/^.*[#/]/, '');\n\nconst iriOf = (term: Option.Option<Term.Object>): Option.Option<string> =>\n Option.flatMap(term, (t) => (Term.isNamedNode(t) ? Option.some(t.value) : Option.none()));\n\nconst stringOf = (term: Option.Option<Term.Object>): Option.Option<string> =>\n Option.flatMap(term, (t) => (Term.isLiteral(t) ? Option.some(t.value) : Option.none()));\n\n/**\n * Parses a manifest document. `iri` is the manifest's own IRI, used as the\n * base IRI.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parse = (\n text: string,\n iri: string,\n): Effect.Effect<Manifest, Serialization.RdfParseError> =>\n Effect.map(Turtle.parse(text, { baseIri: iri }), ({ dataset }) => {\n const subjects = Dataset.subjectsOf(dataset, rdf.type, mf.Manifest);\n const manifest: Term.Subject =\n subjects.find((s) => Term.isNamedNode(s) && s.value === iri) ??\n subjects[0] ??\n Term.namedNode(iri);\n const listAt = (p: Term.NamedNode): ReadonlyArray<Term.Object> =>\n Dataset.objectsOf(dataset, manifest, p).flatMap((head) =>\n Option.getOrElse(Dataset.list(dataset, head), () => []),\n );\n const entries = listAt(mf.entries).flatMap((node): ReadonlyArray<Entry> => {\n if (!Term.isResource(node)) return [];\n const type = iriOf(Dataset.objectOf(dataset, node, rdf.type));\n const id = Term.isNamedNode(node) ? node.value : node.key;\n return [\n {\n id,\n node,\n type: Option.getOrElse(type, () => ''),\n kind: Option.match(type, { onNone: () => '', onSome: localName }),\n name: Option.getOrElse(stringOf(Dataset.objectOf(dataset, node, mf.name)), () =>\n localName(id),\n ),\n comment: stringOf(Dataset.objectOf(dataset, node, rdfs.comment)),\n action: iriOf(Dataset.objectOf(dataset, node, mf.action)),\n result: iriOf(Dataset.objectOf(dataset, node, mf.result)),\n manifest: iri,\n dataset,\n },\n ];\n });\n return {\n iri,\n label: stringOf(Dataset.objectOf(dataset, manifest, rdfs.label)),\n assumedTestBase: iriOf(Dataset.objectOf(dataset, manifest, mf.assumedTestBase)),\n entries,\n includes: listAt(mf.include).flatMap((t) => (Term.isNamedNode(t) ? [t.value] : [])),\n dataset,\n };\n });\n\n/**\n * Loads a manifest and, recursively, every manifest it includes, returning\n * all entries (each manifest is read at most once).\n *\n * @since 0.1.0\n * @category loading\n */\nexport const load = <E, R>(\n iri: string,\n read: (iri: string) => Effect.Effect<string, E, R>,\n): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> =>\n Effect.suspend(() => {\n const seen = MutableHashSet.empty<string>();\n const entries: Array<Entry> = [];\n // Breadth first: a manifest's entries, then those of each include in turn\n const visit = (\n queue: ReadonlyArray<string>,\n ): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> => {\n if (!Arr.isReadonlyArrayNonEmpty(queue)) return Effect.succeed(entries);\n const [next, ...rest] = queue;\n if (MutableHashSet.has(seen, next)) return visit(rest);\n MutableHashSet.add(seen, next);\n return read(next).pipe(\n Effect.flatMap((text) => parse(text, next)),\n Effect.flatMap((manifest) => {\n entries.push(...manifest.entries);\n return visit([...rest, ...manifest.includes]);\n }),\n );\n };\n return visit([iri]);\n });\n\n/**\n * Builds a `read` function for `load` that maps IRIs under `iriPrefix` to\n * paths under `pathPrefix` and reads them with `readFile`.\n *\n * @since 0.1.0\n * @category loading\n */\nexport const fileReader =\n <E, R>(\n iriPrefix: string,\n pathPrefix: string,\n readFile: (path: string) => Effect.Effect<string, E, R>,\n ) =>\n (iri: string): Effect.Effect<string, E, R> =>\n readFile(toPath(iri, iriPrefix, pathPrefix));\n\n/**\n * Maps an IRI under `iriPrefix` to a path under `pathPrefix`.\n *\n * @since 0.1.0\n * @category loading\n */\nexport const toPath = (iri: string, iriPrefix: string, pathPrefix: string): string =>\n iri.startsWith(iriPrefix) ? pathPrefix + iri.slice(iriPrefix.length) : iri;\n"],"mappings":"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"}