@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,1014 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, E as compare, K as isTriple, N as isBlankNode, O as defaultGraph, P as isDefaultGraph, Y as literal, c as NamedNode, d as Quad, o as Literal, t as BlankNode, u as Order$1, y as Triple } from "./Term-CFLG1qu4.mjs";
3
+ import { m as fromIterable } from "./Dataset-BlmlcI7J.mjs";
4
+ import { l as resolve, s as relativize } from "./Iri-Cr92gsQV.mjs";
5
+ import { i as empty, s as make } from "./PrefixMap-BHFPDLO-.mjs";
6
+ import { C as withParseSpan, c as makeCodec, d as makeSerializer, l as makeFormat, n as RdfParseError, o as freshBlankNodePrefix, r as RdfSerializeError, u as makeParser, w as withSerializeSpan } from "./Serialization-DP9H5bYQ.mjs";
7
+ import { _ as Failure, c as escapeAttribute, f as isValidText, l as escapeText, n as NAME_START, p as isWhitespace, s as canonicalize, t as NAME_CHAR, u as isNCName, v as parseText } from "./Xml-B7iihYCS.mjs";
8
+ import * as Arr from "effect/Array";
9
+ import * as MutableHashMap from "effect/MutableHashMap";
10
+ import * as MutableHashSet from "effect/MutableHashSet";
11
+ import * as Option from "effect/Option";
12
+ import * as Predicate from "effect/Predicate";
13
+ import * as Effect from "effect/Effect";
14
+ import * as Match from "effect/Match";
15
+ import * as Order from "effect/Order";
16
+ import * as Result from "effect/Result";
17
+ // src/rdfxml/RdfXml.ts
18
+ /**
19
+ * RDF 1.2 XML Syntax (RDF/XML): parser and serializer.
20
+ *
21
+ * The parser implements the RDF/XML grammar of
22
+ * https://www.w3.org/TR/rdf-syntax-grammar/ together with the RDF 1.2
23
+ * additions: `rdf:version`, base direction via `its:dir`, triple terms via
24
+ * `rdf:parseType="Triple"`, and annotations via `rdf:annotation` /
25
+ * `rdf:annotationNodeID`. `rdf:parseType="Literal"` content is turned into
26
+ * an `rdf:XMLLiteral` using Exclusive XML Canonicalization.
27
+ *
28
+ * The serializer writes readable RDF/XML: typed node elements, nested blank
29
+ * nodes where a blank node is referenced exactly once, namespace
30
+ * declarations taken from `options.prefixes` and generated namespaces for the
31
+ * rest.
32
+ *
33
+ * @since 0.1.0
34
+ */
35
+ var RdfXml_exports = /* @__PURE__ */ __exportAll({
36
+ codec: () => codec,
37
+ format: () => format,
38
+ parse: () => parse,
39
+ parseDocument: () => parseDocument,
40
+ parseQuads: () => parseQuads,
41
+ parser: () => parser,
42
+ serialize: () => serialize,
43
+ serializer: () => serializer,
44
+ splitIri: () => splitIri
45
+ });
46
+ const RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
47
+ const ITS = "http://www.w3.org/2005/11/its";
48
+ const XSD_STRING = "http://www.w3.org/2001/XMLSchema#string";
49
+ const FORMAT_NAME = "RDF/XML";
50
+ /**
51
+ * The RDF/XML format description (`application/rdf+xml`).
52
+ *
53
+ * @since 0.1.0
54
+ * @category formats
55
+ */
56
+ const format = makeFormat({
57
+ name: FORMAT_NAME,
58
+ mediaType: "application/rdf+xml",
59
+ extensions: ["rdf", "owl"],
60
+ datasets: false
61
+ });
62
+ const trace = {
63
+ module: "RdfXml",
64
+ format
65
+ };
66
+ const rdf = (local) => RDF + local;
67
+ /** The core syntax terms and the old terms, which are never node, property or attribute names. */
68
+ const RESERVED_TERMS = MutableHashSet.fromIterable([
69
+ "RDF",
70
+ "ID",
71
+ "about",
72
+ "annotation",
73
+ "annotationNodeID",
74
+ "parseType",
75
+ "resource",
76
+ "nodeID",
77
+ "datatype",
78
+ "version",
79
+ "aboutEach",
80
+ "aboutEachPrefix",
81
+ "bagID"
82
+ ].map(rdf));
83
+ const UNQUALIFIED_RDF_ATTRIBUTES = MutableHashSet.make("ID", "about", "resource", "parseType", "type", "version");
84
+ const RDF_DESCRIPTION = rdf("Description");
85
+ const RDF_LI = rdf("li");
86
+ const RDF_TYPE = rdf("type");
87
+ const RDF_ID = rdf("ID");
88
+ const RDF_NODE_ID = rdf("nodeID");
89
+ const RDF_ABOUT = rdf("about");
90
+ const RDF_VERSION = rdf("version");
91
+ const RDF_ANNOTATION = rdf("annotation");
92
+ const RDF_ANNOTATION_NODE_ID = rdf("annotationNodeID");
93
+ const RDF_PARSE_TYPE = rdf("parseType");
94
+ const RDF_RESOURCE = rdf("resource");
95
+ const RDF_DATATYPE = rdf("datatype");
96
+ const isReserved = (iri) => MutableHashSet.has(RESERVED_TERMS, iri);
97
+ const isForbiddenNodeElement = (iri) => isReserved(iri) || iri === RDF_LI;
98
+ const isForbiddenPropertyElement = (iri) => isReserved(iri) || iri === RDF_DESCRIPTION;
99
+ const isForbiddenPropertyAttribute = (iri) => isReserved(iri) || iri === RDF_DESCRIPTION || iri === RDF_LI;
100
+ const isElement = Predicate.isTagged("Element");
101
+ const isText = Predicate.isTagged("Text");
102
+ var ParseFailure = class {
103
+ message;
104
+ position;
105
+ constructor(message, position) {
106
+ this.message = message;
107
+ this.position = position;
108
+ }
109
+ };
110
+ /** Resolves `reference` against the base IRI of `ctx`, if it has one. */
111
+ const resolveIn = (reference, base) => resolve(reference, Option.getOrUndefined(base));
112
+ const isRdf12 = (version) => Option.isSome(version) && version.value !== "1.0" && version.value !== "1.1";
113
+ const rdfType = new NamedNode(rdf("type"));
114
+ const rdfFirst = new NamedNode(rdf("first"));
115
+ const rdfRest = new NamedNode(rdf("rest"));
116
+ const rdfNil = new NamedNode(rdf("nil"));
117
+ const rdfStatement = new NamedNode(rdf("Statement"));
118
+ const rdfSubject = new NamedNode(rdf("subject"));
119
+ const rdfPredicate = new NamedNode(rdf("predicate"));
120
+ const rdfObject = new NamedNode(rdf("object"));
121
+ const rdfReifies = new NamedNode(rdf("reifies"));
122
+ const rdfXmlLiteral = new NamedNode(rdf("XMLLiteral"));
123
+ /**
124
+ * Adds an attribute that is not a syntax attribute of its element to `props`
125
+ * (`rdf:version` aside, which `context` reads).
126
+ */
127
+ const propertyAttr = (a, parser, props) => {
128
+ if (a.iri === RDF_VERSION) return;
129
+ if (isForbiddenPropertyAttribute(a.iri)) parser.fail(`${a.attribute.name} is not allowed as a property attribute`, a.attribute);
130
+ props.push(a);
131
+ };
132
+ /** Gathers an attribute of a node element (run for every one, so a chain of comparisons). */
133
+ const nodeAttribute = (a, parser, attrs) => {
134
+ const iri = a.iri;
135
+ if (iri !== RDF_ID && iri !== RDF_NODE_ID && iri !== RDF_ABOUT) {
136
+ propertyAttr(a, parser, attrs.props);
137
+ return;
138
+ }
139
+ if (Option.isSome(attrs.idAttr)) parser.fail(`rdf:${attrs.idAttr.value.attribute.localName} and rdf:${a.attribute.localName} cannot be used together`, a.attribute);
140
+ attrs.idAttr = Option.some(a);
141
+ };
142
+ /** Gathers an attribute of a property element (run for every one, so a chain of comparisons). */
143
+ const propertyAttribute = (a, parser, attrs) => {
144
+ const iri = a.iri;
145
+ if (iri === RDF_ID) attrs.id = Option.some(a);
146
+ else if (iri === RDF_ANNOTATION || iri === RDF_ANNOTATION_NODE_ID) {
147
+ if (Option.isSome(attrs.annotation)) parser.fail("rdf:annotation and rdf:annotationNodeID cannot be used together", a.attribute);
148
+ attrs.annotation = Option.some(a);
149
+ } else if (iri === RDF_PARSE_TYPE) attrs.parseType = Option.some(a);
150
+ else if (iri === RDF_RESOURCE) attrs.resource = Option.some(a);
151
+ else if (iri === RDF_NODE_ID) attrs.nodeId = Option.some(a);
152
+ else if (iri === RDF_DATATYPE) attrs.datatype = Option.some(a);
153
+ else propertyAttr(a, parser, attrs.props);
154
+ };
155
+ const isRdfRoot = (root) => root.namespace === RDF && root.localName === "RDF";
156
+ var RdfXmlParser = class {
157
+ sink = [];
158
+ ids = MutableHashSet.empty();
159
+ counter = 0;
160
+ blankNodePrefix;
161
+ defaultVersion;
162
+ constructor(blankNodePrefix, defaultVersion) {
163
+ this.blankNodePrefix = blankNodePrefix;
164
+ this.defaultVersion = defaultVersion;
165
+ }
166
+ fail(message, node) {
167
+ throw new ParseFailure(message, node.position);
168
+ }
169
+ /** Fails if any of `attrs` is present: the first `<name> <why>`. */
170
+ reject(attrs, why) {
171
+ const other = Option.firstSomeOf(attrs);
172
+ if (Option.isSome(other)) {
173
+ const { attribute } = other.value;
174
+ this.fail(`${attribute.name} ${why}`, attribute);
175
+ }
176
+ }
177
+ emit(s, p, o) {
178
+ const t = new Triple(s, p, o);
179
+ this.sink.push(t);
180
+ return t;
181
+ }
182
+ fresh() {
183
+ return new BlankNode(`${this.blankNodePrefix}${this.counter++}`);
184
+ }
185
+ blank(id, node) {
186
+ if (!isNCName(id)) this.fail(`Invalid blank node identifier "${id}"`, node);
187
+ return new BlankNode(`${this.blankNodePrefix}${id}`);
188
+ }
189
+ /** The IRIs of names and datatypes seen so far, which repeat throughout a document. */
190
+ names = MutableHashMap.empty();
191
+ /**
192
+ * The IRIs of the names read so far, by local name, then namespace (a
193
+ * local name rarely has more than one).
194
+ */
195
+ qualifiedNames = MutableHashMap.empty();
196
+ /**
197
+ * The IRI of a name (`namespace` + `localName`), the same string each time
198
+ * it is read: names repeat throughout a document, and each later lookup of
199
+ * the IRI (in the reserved-term set, the node cache) then hashes nothing.
200
+ */
201
+ qualified(namespace, localName) {
202
+ const byLocalName = MutableHashMap.get(this.qualifiedNames, localName);
203
+ if (Option.isNone(byLocalName)) {
204
+ const iri = namespace + localName;
205
+ MutableHashMap.set(this.qualifiedNames, localName, [[namespace, iri]]);
206
+ return iri;
207
+ }
208
+ const byNamespace = byLocalName.value;
209
+ const known = byNamespace.find(([ns]) => ns === namespace);
210
+ if (known !== void 0) return known[1];
211
+ const iri = namespace + localName;
212
+ byNamespace.push([namespace, iri]);
213
+ return iri;
214
+ }
215
+ /** The node for the IRI of an element or attribute name, or of a datatype. */
216
+ named(iri) {
217
+ const known = MutableHashMap.get(this.names, iri);
218
+ if (Option.isSome(known)) return known.value;
219
+ const node = new NamedNode(iri);
220
+ MutableHashMap.set(this.names, iri, node);
221
+ return node;
222
+ }
223
+ iri(value, ctx) {
224
+ return new NamedNode(resolveIn(value, ctx.base));
225
+ }
226
+ idIri(id, ctx, node) {
227
+ if (!isNCName(id)) this.fail(`Invalid rdf:ID "${id}"`, node);
228
+ const iri = resolveIn(`#${id}`, ctx.base);
229
+ if (MutableHashSet.has(this.ids, iri)) this.fail(`Duplicate rdf:ID "${id}"`, node);
230
+ MutableHashSet.add(this.ids, iri);
231
+ return new NamedNode(iri);
232
+ }
233
+ literal(value, ctx) {
234
+ if (ctx.language === "") return literal(value);
235
+ return ctx.direction === "" ? literal(value, ctx.language) : literal(value, {
236
+ language: ctx.language,
237
+ direction: ctx.direction
238
+ });
239
+ }
240
+ /** Computes the evaluation context of an element. */
241
+ context(el, parent) {
242
+ if (Arr.isReadonlyArrayEmpty(el.attributes)) return parent;
243
+ let base = parent.base;
244
+ let language = parent.language;
245
+ let direction = parent.direction;
246
+ let version = parent.version;
247
+ let dir = Option.none();
248
+ el.attributes.forEach((a) => {
249
+ if (a.namespace === "http://www.w3.org/XML/1998/namespace") {
250
+ if (a.localName === "base") base = Option.some(resolveIn(a.value, base));
251
+ else if (a.localName === "lang") language = a.value;
252
+ } else if (a.namespace === ITS && a.localName === "dir") dir = Option.some(a);
253
+ else if ((a.namespace === RDF || a.namespace === void 0) && a.localName === "version") version = Option.some(a.value);
254
+ });
255
+ if (Option.isSome(dir) && isRdf12(version)) {
256
+ const value = dir.value.value;
257
+ if (value !== "ltr" && value !== "rtl" && value !== "") this.fail(`Invalid its:dir value "${value}"`, dir.value);
258
+ direction = value;
259
+ }
260
+ return {
261
+ base,
262
+ language,
263
+ direction,
264
+ version
265
+ };
266
+ }
267
+ /** The RDF-relevant attributes of an element, with their IRIs. */
268
+ attributes(el) {
269
+ const out = [];
270
+ el.attributes.forEach((a) => {
271
+ if (a.namespace === "http://www.w3.org/XML/1998/namespace") return;
272
+ if (a.prefix.toLowerCase().startsWith("xml")) return;
273
+ if (a.namespace === void 0) {
274
+ if (a.localName.toLowerCase().startsWith("xml")) return;
275
+ if (!MutableHashSet.has(UNQUALIFIED_RDF_ATTRIBUTES, a.localName)) this.fail(`Unqualified attribute "${a.localName}" is not allowed`, a);
276
+ out.push({
277
+ iri: this.qualified(RDF, a.localName),
278
+ value: a.value,
279
+ attribute: a
280
+ });
281
+ return;
282
+ }
283
+ if (a.namespace === ITS && (a.localName === "dir" || a.localName === "version")) return;
284
+ out.push({
285
+ iri: this.qualified(a.namespace, a.localName),
286
+ value: a.value,
287
+ attribute: a
288
+ });
289
+ });
290
+ return out;
291
+ }
292
+ elementIri(el) {
293
+ if (el.namespace === void 0) this.fail(`Element "${el.name}" is not in a namespace`, el);
294
+ return this.qualified(el.namespace, el.localName);
295
+ }
296
+ document(doc, base) {
297
+ const root = doc.root;
298
+ const ctx = {
299
+ base,
300
+ language: "",
301
+ direction: "",
302
+ version: this.defaultVersion
303
+ };
304
+ if (isRdfRoot(root)) this.nodeElementList(root.children, this.rdfRoot(root, ctx));
305
+ else this.nodeElement(root, ctx);
306
+ }
307
+ /** The context of the node elements in an `rdf:RDF` root, after checking its attributes. */
308
+ rdfRoot(root, ctx) {
309
+ const rootCtx = this.context(root, ctx);
310
+ this.attributes(root).forEach((a) => {
311
+ if (a.iri !== RDF_VERSION) this.fail(`Unexpected attribute on rdf:RDF`, a.attribute);
312
+ });
313
+ return rootCtx;
314
+ }
315
+ nodeElementList(children, ctx) {
316
+ const subjects = [];
317
+ children.forEach((c) => {
318
+ if (isElement(c)) subjects.push(this.nodeElement(c, ctx));
319
+ else if (isText(c) && !isWhitespace(c.value)) this.fail("Unexpected text where node elements are expected", c);
320
+ });
321
+ return subjects;
322
+ }
323
+ nodeElement(el, parentCtx) {
324
+ const ctx = this.context(el, parentCtx);
325
+ const iri = this.elementIri(el);
326
+ if (isForbiddenNodeElement(iri)) this.fail(`<${el.name}> is not allowed as a node element`, el);
327
+ const attrs = {
328
+ idAttr: Option.none(),
329
+ props: []
330
+ };
331
+ this.attributes(el).forEach((a) => nodeAttribute(a, this, attrs));
332
+ const s = Option.match(attrs.idAttr, {
333
+ onNone: () => this.fresh(),
334
+ onSome: (idAttr) => {
335
+ const local = idAttr.iri.slice(43);
336
+ return local === "ID" ? this.idIri(idAttr.value, ctx, idAttr.attribute) : local === "nodeID" ? this.blank(idAttr.value, idAttr.attribute) : this.iri(idAttr.value, ctx);
337
+ }
338
+ });
339
+ if (iri !== RDF_DESCRIPTION) this.emit(s, rdfType, this.named(iri));
340
+ attrs.props.forEach((a) => {
341
+ this.emit(s, this.named(a.iri), a.iri === RDF_TYPE ? this.iri(a.value, ctx) : this.literal(a.value, ctx));
342
+ });
343
+ this.propertyEltList(el, s, ctx);
344
+ return s;
345
+ }
346
+ propertyEltList(el, subject, ctx) {
347
+ let li = 1;
348
+ el.children.forEach((c) => {
349
+ if (isElement(c)) {
350
+ const name = this.elementIri(c);
351
+ this.propertyElt(c, name === RDF_LI ? rdf(`_${li++}`) : name, subject, ctx);
352
+ } else if (isText(c) && !isWhitespace(c.value)) this.fail("Unexpected text where property elements are expected", c);
353
+ });
354
+ }
355
+ propertyElt(el, iri, subject, parentCtx) {
356
+ if (isForbiddenPropertyElement(iri)) this.fail(`<${el.name}> is not allowed as a property element`, el);
357
+ const ctx = this.context(el, parentCtx);
358
+ const predicate = this.named(iri);
359
+ const attrs = {
360
+ id: Option.none(),
361
+ annotation: Option.none(),
362
+ parseType: Option.none(),
363
+ resource: Option.none(),
364
+ nodeId: Option.none(),
365
+ datatype: Option.none(),
366
+ props: []
367
+ };
368
+ this.attributes(el).forEach((a) => propertyAttribute(a, this, attrs));
369
+ const { id, annotation, parseType, resource, nodeId, datatype, props } = attrs;
370
+ const elements = [];
371
+ let text = "";
372
+ let hasText = false;
373
+ el.children.forEach((c) => {
374
+ if (isElement(c)) elements.push(c);
375
+ else if (isText(c)) {
376
+ text += c.value;
377
+ hasText = true;
378
+ }
379
+ });
380
+ const finish = (object) => {
381
+ const statement = this.emit(subject, predicate, object);
382
+ this.reify(statement, id, annotation, ctx);
383
+ };
384
+ const firstProp = Arr.head(props);
385
+ if (Option.isSome(parseType)) {
386
+ this.reject([
387
+ resource,
388
+ nodeId,
389
+ datatype,
390
+ firstProp
391
+ ], "cannot be used with rdf:parseType");
392
+ Match.value(parseType.value.value).pipe(Match.when("Resource", () => {
393
+ const n = this.fresh();
394
+ finish(n);
395
+ this.propertyEltList(el, n, ctx);
396
+ }), Match.when("Collection", () => {
397
+ const items = this.nodeElementList(el.children, ctx);
398
+ if (!Arr.isArrayNonEmpty(items)) {
399
+ finish(rdfNil);
400
+ return;
401
+ }
402
+ const cells = Arr.map(items, () => this.fresh());
403
+ finish(Arr.headNonEmpty(cells));
404
+ Arr.zip(cells, items).forEach(([cell, item], i) => {
405
+ this.emit(cell, rdfFirst, item);
406
+ this.emit(cell, rdfRest, cells[i + 1] ?? rdfNil);
407
+ });
408
+ }), Match.when("Triple", () => {
409
+ const saved = this.sink;
410
+ this.sink = [];
411
+ if (!Arr.isArrayNonEmpty(elements) || elements.length !== 1 || hasText && !isWhitespace(text)) this.fail("rdf:parseType=\"Triple\" must contain exactly one node element", el);
412
+ this.nodeElement(Arr.headNonEmpty(elements), ctx);
413
+ const triples = this.sink;
414
+ this.sink = saved;
415
+ if (!isRdf12(ctx.version)) return;
416
+ if (!Arr.isArrayNonEmpty(triples) || triples.length !== 1) this.fail(`rdf:parseType="Triple" content must describe exactly one triple, found ${triples.length}`, el);
417
+ finish(Arr.headNonEmpty(triples));
418
+ }), Match.orElse(() => {
419
+ finish(new Literal(canonicalize(el.children), rdfXmlLiteral));
420
+ }));
421
+ return;
422
+ }
423
+ if (Arr.isArrayNonEmpty(elements)) {
424
+ if (elements.length > 1) this.fail("A property element can contain only one node element", el);
425
+ if (!isWhitespace(text)) this.fail("Mixed content is not allowed in a property element", el);
426
+ this.reject([
427
+ resource,
428
+ nodeId,
429
+ datatype,
430
+ firstProp
431
+ ], "is not allowed on a property element with content");
432
+ finish(this.nodeElement(Arr.headNonEmpty(elements), ctx));
433
+ return;
434
+ }
435
+ if (hasText && text !== "") {
436
+ this.reject([
437
+ resource,
438
+ nodeId,
439
+ firstProp
440
+ ], "is not allowed on a literal property element");
441
+ finish(Option.isSome(datatype) ? literal(text, this.named(resolveIn(datatype.value.value, ctx.base))) : this.literal(text, ctx));
442
+ return;
443
+ }
444
+ if (Option.isSome(resource) && Option.isSome(nodeId)) this.fail("rdf:resource and rdf:nodeID cannot be used together", nodeId.value.attribute);
445
+ if (Option.isSome(datatype)) {
446
+ this.reject([
447
+ resource,
448
+ nodeId,
449
+ firstProp
450
+ ], "cannot be used with rdf:datatype");
451
+ finish(literal("", this.named(resolveIn(datatype.value.value, ctx.base))));
452
+ return;
453
+ }
454
+ if (Option.isNone(resource) && Option.isNone(nodeId) && Arr.isReadonlyArrayEmpty(props)) {
455
+ finish(this.literal("", ctx));
456
+ return;
457
+ }
458
+ const r = Option.isSome(resource) ? this.iri(resource.value.value, ctx) : Option.isSome(nodeId) ? this.blank(nodeId.value.value, nodeId.value.attribute) : this.fresh();
459
+ props.forEach((a) => {
460
+ this.emit(r, this.named(a.iri), a.iri === RDF_TYPE ? this.iri(a.value, ctx) : this.literal(a.value, ctx));
461
+ });
462
+ finish(r);
463
+ }
464
+ reify(statement, id, annotation, ctx) {
465
+ if (Option.isSome(id)) {
466
+ const i = this.idIri(id.value.value, ctx, id.value.attribute);
467
+ this.emit(i, rdfType, rdfStatement);
468
+ this.emit(i, rdfSubject, statement.subject);
469
+ this.emit(i, rdfPredicate, statement.predicate);
470
+ this.emit(i, rdfObject, statement.object);
471
+ }
472
+ if (Option.isSome(annotation)) {
473
+ const { iri, value, attribute } = annotation.value;
474
+ const reifier = iri === RDF_ANNOTATION ? this.iri(value, ctx) : this.blank(value, attribute);
475
+ this.emit(reifier, rdfReifies, statement);
476
+ }
477
+ }
478
+ };
479
+ const toParseError = (message, position) => new RdfParseError({
480
+ format: FORMAT_NAME,
481
+ message,
482
+ line: position.line,
483
+ column: position.column
484
+ });
485
+ const parseTriples = (doc, options) => Effect.try({
486
+ try: () => {
487
+ const parser = new RdfXmlParser(options?.blankNodePrefix ?? freshBlankNodePrefix(), Option.fromUndefinedOr(options?.version));
488
+ parser.document(doc, Option.fromUndefinedOr(options?.baseIri));
489
+ return parser.sink;
490
+ },
491
+ catch: (e) => {
492
+ if (e instanceof ParseFailure) return toParseError(e.message, e.position);
493
+ throw e;
494
+ }
495
+ });
496
+ /**
497
+ * Adds the namespace declarations of the elements among `nodes` (at
498
+ * `depth`, the root's being 0) and of their descendants down to `maxDepth`
499
+ * to `prefixes`, keeping the first declaration of each prefix.
500
+ */
501
+ const declarePrefixes = (prefixes, nodes, depth, maxDepth) => {
502
+ nodes.forEach((node) => {
503
+ if (!isElement(node)) return;
504
+ node.namespaceDeclarations.forEach((d) => {
505
+ if (d.prefix !== "" && d.namespace !== "" && !prefixes.some(([p]) => p === d.prefix)) prefixes.push([d.prefix, d.namespace]);
506
+ });
507
+ if (depth < maxDepth) declarePrefixes(prefixes, node.children, depth + 1, maxDepth);
508
+ });
509
+ };
510
+ /** The prefixes declared on the root, its children and their children. */
511
+ const collectPrefixes = (doc) => {
512
+ const prefixes = [];
513
+ declarePrefixes(prefixes, [doc.root], 0, 2);
514
+ return make(prefixes);
515
+ };
516
+ /**
517
+ * Converts the node elements of an `rdf:RDF` root while the XML is read, as
518
+ * each one is closed, so that no more than one of them is held at a time.
519
+ * The order of conversion (and so of triples, blank nodes and prefixes) and
520
+ * which error is reported are as for a whole document: an XML error anywhere
521
+ * comes first, so the first RDF/XML error is kept until the XML has been
522
+ * read.
523
+ */
524
+ var RootStream = class {
525
+ parser;
526
+ /** The context outside the root, and then that of its node elements. */
527
+ ctx;
528
+ prefixes = [];
529
+ failures = [];
530
+ /** Whether the root has been seen, and whether it is `rdf:RDF`. */
531
+ started = false;
532
+ streaming = false;
533
+ /** How many of the children the root kept have been converted. */
534
+ converted = 0;
535
+ constructor(parser, ctx) {
536
+ this.parser = parser;
537
+ this.ctx = ctx;
538
+ }
539
+ /** The `RootChildHook`: takes the child if the root is `rdf:RDF`. */
540
+ take = (child, root) => {
541
+ if (!this.begin(root)) return false;
542
+ this.guard(() => {
543
+ this.drain(root);
544
+ declarePrefixes(this.prefixes, [child], 1, 2);
545
+ this.parser.nodeElement(child, this.ctx);
546
+ });
547
+ return true;
548
+ };
549
+ /** Converts what is left once the document has been read. */
550
+ finish(doc) {
551
+ if (this.begin(doc.root)) this.guard(() => this.drain(doc.root));
552
+ else {
553
+ this.parser.document(doc, this.ctx.base);
554
+ declarePrefixes(this.prefixes, [doc.root], 0, 2);
555
+ }
556
+ const failure = this.failures.at(0);
557
+ if (failure !== void 0) throw failure;
558
+ }
559
+ begin(root) {
560
+ if (!this.started) {
561
+ this.started = true;
562
+ this.streaming = isRdfRoot(root);
563
+ if (this.streaming) {
564
+ declarePrefixes(this.prefixes, [root], 0, 0);
565
+ this.guard(() => {
566
+ this.ctx = this.parser.rdfRoot(root, this.ctx);
567
+ });
568
+ }
569
+ }
570
+ return this.streaming;
571
+ }
572
+ /** Converts the children the root kept (text, and elements from entities) since the last time. */
573
+ drain(root) {
574
+ const pending = root.children.slice(this.converted);
575
+ this.converted = root.children.length;
576
+ declarePrefixes(this.prefixes, pending, 1, 2);
577
+ this.parser.nodeElementList(pending, this.ctx);
578
+ }
579
+ /** Runs a conversion step unless one has failed, keeping its failure. */
580
+ guard(step) {
581
+ if (Arr.isReadonlyArrayNonEmpty(this.failures)) return;
582
+ const outcome = Result.try({
583
+ try: step,
584
+ catch: (e) => e
585
+ });
586
+ if (Result.isSuccess(outcome)) return;
587
+ if (!(outcome.failure instanceof ParseFailure)) throw outcome.failure;
588
+ this.failures.push(outcome.failure);
589
+ }
590
+ };
591
+ /**
592
+ * Parses an already-parsed XML document as RDF/XML. The root element is
593
+ * `rdf:RDF` or a single node element; `xml:base` on it is returned as the
594
+ * base IRI and namespace declarations on it (and its children) as prefixes.
595
+ * Formats that embed RDF/XML in a larger XML document (XMP, SVG metadata)
596
+ * pass a document whose root is the embedded `rdf:RDF` element.
597
+ *
598
+ * @since 0.1.0
599
+ * @category parsing
600
+ */
601
+ const parseDocument = (doc, options) => Effect.map(parseTriples(doc, options), (triples) => toResult(toQuadsResult(triples, doc, collectPrefixes(doc), options)));
602
+ /** The result of a parse: the triples in their graph, with the document's prefixes and base. */
603
+ /** The quads of a parse, in their graph, with the document's prefixes and base. */
604
+ const toQuadsResult = (triples, doc, prefixes, options) => {
605
+ const graph = options?.graph ?? defaultGraph;
606
+ let baseIri = options?.baseIri;
607
+ const xmlBase = doc.root.attributes.find((a) => a.namespace === "http://www.w3.org/XML/1998/namespace" && a.localName === "base");
608
+ if (xmlBase !== void 0) baseIri = resolve(xmlBase.value, baseIri);
609
+ return {
610
+ quads: triples.map((t) => new Quad(t.subject, t.predicate, t.object, graph)),
611
+ prefixes,
612
+ baseIri
613
+ };
614
+ };
615
+ const toResult = (quads) => ({
616
+ dataset: fromIterable(quads.quads),
617
+ prefixes: quads.prefixes,
618
+ baseIri: quads.baseIri
619
+ });
620
+ /**
621
+ * Parses a complete RDF/XML document into its statements in document order,
622
+ * without building a dataset. Node elements are converted as they are read,
623
+ * so the XML tree is never held whole.
624
+ *
625
+ * @since 0.1.0
626
+ * @category parsing
627
+ * @example
628
+ * ```ts
629
+ * import * as Effect from 'effect/Effect';
630
+ * import { RdfXml } from '@thomasfosterau/effect-rdf/rdfxml';
631
+ *
632
+ * const { quads } = Effect.runSync(
633
+ * RdfXml.parseQuads(
634
+ * `<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
635
+ * xmlns:ex="http://example.org/">
636
+ * <rdf:Description rdf:about="http://example.org/a" ex:p="1"/>
637
+ * </rdf:RDF>`,
638
+ * ),
639
+ * );
640
+ * // quads.length === 1
641
+ * ```
642
+ */
643
+ const parseQuads = (input, options) => Effect.try({
644
+ try: () => {
645
+ const version = Option.fromUndefinedOr(options?.version);
646
+ const parser = new RdfXmlParser(options?.blankNodePrefix ?? freshBlankNodePrefix(), version);
647
+ const stream = new RootStream(parser, {
648
+ base: Option.fromUndefinedOr(options?.baseIri),
649
+ language: "",
650
+ direction: "",
651
+ version
652
+ });
653
+ const doc = parseText(input, stream.take);
654
+ stream.finish(doc);
655
+ return toQuadsResult(parser.sink, doc, make(stream.prefixes), options);
656
+ },
657
+ catch: (e) => {
658
+ if (e instanceof Failure) return toParseError(e.message, e.position);
659
+ if (e instanceof ParseFailure) return toParseError(e.message, e.position);
660
+ throw e;
661
+ }
662
+ });
663
+ /**
664
+ * Parses a complete RDF/XML document. Namespace declarations on the root
665
+ * element (and its children) are returned as prefixes.
666
+ *
667
+ * @since 0.1.0
668
+ * @category parsing
669
+ */
670
+ const parse = (input, options) => Effect.map(parseQuads(input, options), toResult).pipe(withParseSpan(trace, input));
671
+ /**
672
+ * The RDF/XML parser.
673
+ *
674
+ * @since 0.1.0
675
+ * @category parsing
676
+ */
677
+ const parser = makeParser({
678
+ format,
679
+ parse
680
+ });
681
+ var SerializeFailure = class {
682
+ message;
683
+ constructor(message) {
684
+ this.message = message;
685
+ }
686
+ };
687
+ const LOCAL_SUFFIX_RE = new RegExp(`[${NAME_START}][${NAME_CHAR}]*$`, "u");
688
+ /**
689
+ * Splits an IRI into a namespace and a local name that is an XML `NCName`,
690
+ * choosing the longest possible local name. Returns `None` when the IRI does
691
+ * not end with an `NCName` (such IRIs cannot be used as element or
692
+ * attribute names).
693
+ *
694
+ * @since 0.1.0
695
+ * @category serializing
696
+ */
697
+ const splitIri = (iri) => {
698
+ const m = LOCAL_SUFFIX_RE.exec(iri);
699
+ if (m === null || m.index === 0) return Option.none();
700
+ return Option.some([iri.slice(0, m.index), m[0]]);
701
+ };
702
+ const escapeAttr = escapeAttribute;
703
+ /** Whether `prefix` may be declared for `ns` as configured in `options.prefixes`. */
704
+ const isConfigurable = (prefix, ns) => isNCName(prefix) && !prefix.toLowerCase().startsWith("xml") && ns !== ITS && isValidText(ns) && ns === RDF === (prefix === "rdf") && prefix !== "its";
705
+ /** The first of `name(1)`, `name(2)`, … (counting on from `from`) that `taken` does not hold. */
706
+ const freshName = (taken, from, name) => {
707
+ const candidate = name(from + 1);
708
+ return MutableHashSet.has(taken, candidate) ? freshName(taken, from + 1, name) : [candidate, from + 1];
709
+ };
710
+ var Writer = class {
711
+ namespaces;
712
+ blankLabels = MutableHashMap.empty();
713
+ /** The QName of each IRI written so far, while no namespace has been added since. */
714
+ qnames = MutableHashMap.empty();
715
+ needsVersion = false;
716
+ needsIts = false;
717
+ options;
718
+ constructor(options, prefixes) {
719
+ this.options = options;
720
+ const byNamespace = MutableHashMap.empty();
721
+ const used = MutableHashSet.empty();
722
+ prefixes.prefixes.forEach((ns, prefix) => {
723
+ if (isConfigurable(prefix, ns) && !MutableHashMap.has(byNamespace, ns) && !MutableHashSet.has(used, prefix)) {
724
+ MutableHashMap.set(byNamespace, ns, prefix);
725
+ MutableHashSet.add(used, prefix);
726
+ }
727
+ });
728
+ if (!MutableHashMap.has(byNamespace, RDF)) {
729
+ MutableHashMap.set(byNamespace, RDF, "rdf");
730
+ MutableHashSet.add(used, "rdf");
731
+ }
732
+ MutableHashSet.add(used, "its");
733
+ this.namespaces = {
734
+ byNamespace,
735
+ used,
736
+ declared: MutableHashSet.make(RDF),
737
+ counter: 0
738
+ };
739
+ }
740
+ fail(message) {
741
+ throw new SerializeFailure(message);
742
+ }
743
+ qname(iri, what) {
744
+ const known = MutableHashMap.get(this.qnames, iri);
745
+ if (Option.isSome(known)) return known.value;
746
+ const name = this.newQname(iri, what);
747
+ MutableHashMap.set(this.qnames, iri, name);
748
+ return name;
749
+ }
750
+ newQname(iri, what) {
751
+ if (!isValidText(iri)) this.fail(`The ${what} <${iri}> contains invalid XML characters`);
752
+ const { byNamespace, used, declared } = this.namespaces;
753
+ const configured = Arr.reduce(Arr.fromIterable(MutableHashMap.keys(byNamespace)), Option.none(), (best, ns) => iri.startsWith(ns) && (Option.isNone(best) || ns.length > best.value[0].length) && isNCName(iri.slice(ns.length)) ? Option.some([ns, iri.slice(ns.length)]) : best);
754
+ const [ns, local] = Option.getOrElse(Option.orElse(configured, () => splitIri(iri)), () => this.fail(`The ${what} <${iri}> cannot be written as an XML QName`));
755
+ MutableHashSet.add(declared, ns);
756
+ return `${Option.getOrElse(MutableHashMap.get(byNamespace, ns), () => {
757
+ const [generated, n] = freshName(used, this.namespaces.counter, (i) => `ns${i}`);
758
+ this.namespaces.counter = n;
759
+ MutableHashSet.add(used, generated);
760
+ MutableHashMap.set(byNamespace, ns, generated);
761
+ MutableHashMap.clear(this.qnames);
762
+ return generated;
763
+ })}:${local}`;
764
+ }
765
+ iriRef(iri) {
766
+ if (!isValidText(iri)) this.fail(`The IRI <${iri}> contains characters not allowed in XML`);
767
+ const base = this.options.baseIri;
768
+ if (base !== void 0) {
769
+ const rel = relativize(iri, base);
770
+ if (Option.isSome(rel)) return escapeAttr(rel.value);
771
+ }
772
+ return escapeAttr(iri);
773
+ }
774
+ blankLabel(node) {
775
+ const known = MutableHashMap.get(this.blankLabels, node.value);
776
+ if (Option.isSome(known)) return known.value;
777
+ const label = isNCName(node.value) && !MutableHashSet.has(this.usedLabels, node.value) ? node.value : this.freshLabel();
778
+ MutableHashSet.add(this.usedLabels, label);
779
+ MutableHashMap.set(this.blankLabels, node.value, label);
780
+ return label;
781
+ }
782
+ freshLabel() {
783
+ const [label, n] = freshName(this.usedLabels, this.labelCounter - 1, (i) => `b${i}`);
784
+ this.labelCounter = n + 1;
785
+ return label;
786
+ }
787
+ usedLabels = MutableHashSet.empty();
788
+ labelCounter = 0;
789
+ };
790
+ const text = (value, writer) => {
791
+ if (!isValidText(value)) writer.fail("A literal contains characters not allowed in XML 1.0");
792
+ return escapeText(value);
793
+ };
794
+ const sortByPredicateObject = (ts) => Arr.sort(ts, Order.combine(Order.mapInput(Order$1, (t) => t.predicate), Order.mapInput(Order$1, (t) => t.object)));
795
+ /** Whether `t` gives its subject an `rdf:type` that can be the name of a typed node element. */
796
+ const isTypeTriple = (t) => t.predicate.value === RDF_TYPE && isNamedNode(t.object) && !isForbiddenNodeElement(t.object.value) && Option.isSome(splitIri(t.object.value));
797
+ const serializeGraph = (triples, options) => {
798
+ const writer = new Writer(options, options.prefixes ?? empty);
799
+ const indentUnit = options.indent ?? " ";
800
+ const nest = options.nestBlankNodes ?? true;
801
+ const typed = options.typedNodes ?? true;
802
+ const graph = {
803
+ bySubject: MutableHashMap.empty(),
804
+ references: MutableHashMap.empty()
805
+ };
806
+ const referenceCount = (label) => {
807
+ const count = MutableHashMap.get(graph.references, label);
808
+ return Option.isSome(count) ? count.value : 0;
809
+ };
810
+ const inTripleTerm = MutableHashSet.empty();
811
+ const markTripleTerm = (t) => {
812
+ if (isBlankNode(t)) MutableHashSet.add(inTripleTerm, t.value);
813
+ else if (isTriple(t)) {
814
+ markTripleTerm(t.subject);
815
+ markTripleTerm(t.object);
816
+ }
817
+ };
818
+ triples.forEach((t) => {
819
+ if (isTriple(t.subject)) writer.fail("RDF/XML cannot represent triple terms in the subject position");
820
+ const subject = t.subject;
821
+ const key = subject.key;
822
+ const entry = MutableHashMap.get(graph.bySubject, key);
823
+ if (Option.isSome(entry)) entry.value.triples.push(t);
824
+ else MutableHashMap.set(graph.bySubject, key, {
825
+ subject,
826
+ triples: [t]
827
+ });
828
+ const o = t.object;
829
+ if (isBlankNode(o)) MutableHashMap.set(graph.references, o.value, referenceCount(o.value) + 1);
830
+ else if (isTriple(o)) markTripleTerm(o);
831
+ });
832
+ const nested = MutableHashSet.empty();
833
+ if (nest) {
834
+ MutableHashMap.forEach(graph.references, (count, label) => {
835
+ if (count === 1 && !MutableHashSet.has(inTripleTerm, label)) MutableHashSet.add(nested, label);
836
+ });
837
+ const reachable = MutableHashSet.empty();
838
+ const visit = (subjectKey) => {
839
+ const entry = MutableHashMap.get(graph.bySubject, subjectKey);
840
+ if (Option.isNone(entry)) return;
841
+ entry.value.triples.forEach((t) => {
842
+ const o = t.object;
843
+ if (isBlankNode(o) && MutableHashSet.has(nested, o.value) && !MutableHashSet.has(reachable, o.value)) {
844
+ MutableHashSet.add(reachable, o.value);
845
+ visit(o.key);
846
+ }
847
+ });
848
+ };
849
+ MutableHashMap.forEach(graph.bySubject, (entry, key) => {
850
+ const s = entry.subject;
851
+ if (!isBlankNode(s) || !MutableHashSet.has(nested, s.value)) visit(key);
852
+ });
853
+ MutableHashMap.forEach(graph.bySubject, (entry) => {
854
+ const s = entry.subject;
855
+ if (isBlankNode(s) && MutableHashSet.has(nested, s.value) && !MutableHashSet.has(reachable, s.value)) {
856
+ MutableHashSet.remove(nested, s.value);
857
+ visit(s.key);
858
+ }
859
+ });
860
+ }
861
+ const body = [];
862
+ /** Writes a node element for `subject` at `depth`. */
863
+ const node = (subject, depth, inline, lines) => {
864
+ const pad = indentUnit.repeat(depth);
865
+ const sorted = Option.match(MutableHashMap.get(graph.bySubject, subject.key), {
866
+ onNone: () => [],
867
+ onSome: (entry) => sortByPredicateObject(entry.triples)
868
+ });
869
+ const typeTriple = typed ? Arr.findFirst(sorted, (t) => isTypeTriple(t) && isValidText(t.object.value) ? Option.some([t, t.object.value]) : Option.none()) : Option.none();
870
+ const element = Option.match(typeTriple, {
871
+ onNone: () => "rdf:Description",
872
+ onSome: ([, type]) => writer.qname(type, "type")
873
+ });
874
+ const ts = Option.match(typeTriple, {
875
+ onNone: () => sorted,
876
+ onSome: ([typeT]) => sorted.filter((t) => t !== typeT)
877
+ });
878
+ const attrs = isNamedNode(subject) ? ` rdf:about="${writer.iriRef(subject.value)}"` : isBlankNode(subject) && !inline && (referenceCount(subject.value) > 0 || MutableHashSet.has(inTripleTerm, subject.value)) ? ` rdf:nodeID="${writer.blankLabel(subject)}"` : "";
879
+ if (Arr.isReadonlyArrayEmpty(ts)) {
880
+ lines.push(`${pad}<${element}${attrs}/>`);
881
+ return;
882
+ }
883
+ lines.push(`${pad}<${element}${attrs}>`);
884
+ ts.forEach((t) => property(t, depth + 1, lines));
885
+ lines.push(`${pad}</${element}>`);
886
+ };
887
+ const property = (t, depth, lines) => {
888
+ const pad = indentUnit.repeat(depth);
889
+ const p = t.predicate.value;
890
+ if (isForbiddenPropertyElement(p) || p === RDF_LI) writer.fail(`The predicate <${p}> cannot be used as an RDF/XML property element`);
891
+ const name = writer.qname(p, "predicate");
892
+ propertyObject(t.object, pad, name, depth, lines);
893
+ };
894
+ const propertyObject = Match.fn((o, _pad, _name, _depth, _lines) => o).pipe(Match.withReturnType(), Match.tag("NamedNode", (o, _o, pad, name, _depth, lines) => {
895
+ lines.push(`${pad}<${name} rdf:resource="${writer.iriRef(o.value)}"/>`);
896
+ }), Match.tag("BlankNode", (o, _o, pad, name, depth, lines) => {
897
+ if (MutableHashSet.has(nested, o.value) && !MutableHashSet.has(inTripleTerm, o.value)) {
898
+ const described = Option.match(MutableHashMap.get(graph.bySubject, o.key), {
899
+ onNone: () => [],
900
+ onSome: (entry) => entry.triples
901
+ });
902
+ if (Arr.isReadonlyArrayEmpty(described)) {
903
+ lines.push(`${pad}<${name} rdf:parseType="Resource"/>`);
904
+ return;
905
+ }
906
+ if (!(typed && described.some(isTypeTriple))) {
907
+ lines.push(`${pad}<${name} rdf:parseType="Resource">`);
908
+ sortByPredicateObject(described).forEach((x) => property(x, depth + 1, lines));
909
+ lines.push(`${pad}</${name}>`);
910
+ return;
911
+ }
912
+ lines.push(`${pad}<${name}>`);
913
+ node(o, depth + 1, true, lines);
914
+ lines.push(`${pad}</${name}>`);
915
+ return;
916
+ }
917
+ lines.push(`${pad}<${name} rdf:nodeID="${writer.blankLabel(o)}"/>`);
918
+ }), Match.tag("Literal", (o, _o, pad, name, _depth, lines) => {
919
+ let attrs = "";
920
+ if (o.language !== "") {
921
+ attrs += ` xml:lang="${escapeAttr(o.language)}"`;
922
+ if (o.direction !== void 0) {
923
+ writer.needsVersion = true;
924
+ writer.needsIts = true;
925
+ attrs += ` its:dir="${o.direction}"`;
926
+ }
927
+ } else if (o.datatype.value !== XSD_STRING) attrs += ` rdf:datatype="${writer.iriRef(o.datatype.value)}"`;
928
+ if (o.value === "") lines.push(`${pad}<${name}${attrs}/>`);
929
+ else lines.push(`${pad}<${name}${attrs}>${text(o.value, writer)}</${name}>`);
930
+ }), Match.tag("Triple", (o, _o, pad, name, depth, lines) => {
931
+ writer.needsVersion = true;
932
+ lines.push(`${pad}<${name} rdf:parseType="Triple">`);
933
+ tripleTerm(o, depth + 1, lines);
934
+ lines.push(`${pad}</${name}>`);
935
+ }), Match.exhaustive);
936
+ const tripleTerm = (t, depth, lines) => {
937
+ const pad = indentUnit.repeat(depth);
938
+ const s = t.subject;
939
+ const attrs = isNamedNode(s) ? ` rdf:about="${writer.iriRef(s.value)}"` : isBlankNode(s) ? ` rdf:nodeID="${writer.blankLabel(s)}"` : writer.fail("RDF/XML cannot represent triple terms in the subject position");
940
+ lines.push(`${pad}<rdf:Description${attrs}>`);
941
+ const o = t.object;
942
+ if (isBlankNode(o)) {
943
+ const name = writer.qname(t.predicate.value, "predicate");
944
+ if (isForbiddenPropertyElement(t.predicate.value) || t.predicate.value === RDF_LI) writer.fail(`The predicate <${t.predicate.value}> cannot be used as an RDF/XML property element`);
945
+ lines.push(`${pad}${indentUnit}<${name} rdf:nodeID="${writer.blankLabel(o)}"/>`);
946
+ } else property(t, depth + 1, lines);
947
+ lines.push(`${pad}</rdf:Description>`);
948
+ };
949
+ Arr.sort(Arr.map(Arr.fromIterable(MutableHashMap.values(graph.bySubject)), (e) => e.subject), Order.make((a, b) => a._tag === b._tag ? compare(a, b) : isNamedNode(a) ? -1 : 1)).forEach((s) => {
950
+ if (!isBlankNode(s) || !MutableHashSet.has(nested, s.value)) node(s, 1, false, body);
951
+ });
952
+ const decls = [
953
+ ...Arr.sort(Arr.filter(Arr.fromIterable(writer.namespaces.byNamespace), ([ns]) => MutableHashSet.has(writer.namespaces.declared, ns)), Order.make((a, b) => a[1] === "rdf" ? -1 : b[1] === "rdf" ? 1 : a[1] < b[1] ? -1 : 1)).map(([ns, prefix]) => `xmlns:${prefix}="${escapeAttr(ns)}"`),
954
+ ...writer.needsIts ? [`xmlns:its="${ITS}"`, "its:version=\"2.0\""] : [],
955
+ ...options.baseIri === void 0 ? [] : [`xml:base="${escapeAttr(options.baseIri)}"`],
956
+ ...writer.needsVersion ? ["rdf:version=\"1.2\""] : []
957
+ ];
958
+ const sep = `\n${" ".repeat(9)}`;
959
+ const declaration = options.xmlDeclaration ?? true ? ["<?xml version=\"1.0\" encoding=\"utf-8\"?>"] : [];
960
+ return `${(Arr.isReadonlyArrayEmpty(body) ? [...declaration, `<rdf:RDF ${decls.join(sep)}/>`] : [
961
+ ...declaration,
962
+ `<rdf:RDF ${decls.join(sep)}>`,
963
+ ...body,
964
+ "</rdf:RDF>"
965
+ ]).join("\n")}\n`;
966
+ };
967
+ /**
968
+ * Serialises quads as an RDF/XML document. Fails with `RdfSerializeError`
969
+ * for quads in named graphs, triple terms in the subject position, and
970
+ * predicates that cannot be written as XML QNames.
971
+ *
972
+ * @since 0.1.0
973
+ * @category serializing
974
+ */
975
+ const serialize = (quads, options) => Effect.suspend(() => {
976
+ const all = Arr.fromIterable(quads);
977
+ const named = Arr.findFirst(all, (q) => !isDefaultGraph(q.graph));
978
+ if (Option.isSome(named)) return Effect.fail(new RdfSerializeError({
979
+ format: FORMAT_NAME,
980
+ message: `RDF/XML cannot represent named graphs (found graph ${named.value.graph.key})`
981
+ }));
982
+ const triples = all.map((q) => q.triple);
983
+ return Effect.try({
984
+ try: () => serializeGraph(triples, options ?? {}),
985
+ catch: (e) => {
986
+ if (e instanceof SerializeFailure) return new RdfSerializeError({
987
+ format: FORMAT_NAME,
988
+ message: e.message
989
+ });
990
+ throw e;
991
+ }
992
+ });
993
+ }).pipe(withSerializeSpan(trace));
994
+ /**
995
+ * The RDF/XML serializer.
996
+ *
997
+ * @since 0.1.0
998
+ * @category serializing
999
+ */
1000
+ const serializer = makeSerializer({
1001
+ format,
1002
+ serialize
1003
+ });
1004
+ /**
1005
+ * The RDF/XML codec, including a `Schema` transforming RDF/XML documents to
1006
+ * datasets and back.
1007
+ *
1008
+ * @since 0.1.0
1009
+ * @category codecs
1010
+ */
1011
+ const codec = makeCodec(parser, serializer);
1012
+ export { parseDocument as a, serialize as c, parse as i, serializer as l, codec as n, parseQuads as o, format as r, parser as s, RdfXml_exports as t, splitIri as u };
1013
+
1014
+ //# sourceMappingURL=RdfXml-DJ9G4gOq.mjs.map