@thomasfosterau/effect-rdf 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2250 -1
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +187 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1,168 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, K as isTriple, O as defaultGraph, q as isVariable } from "./Term-CFLG1qu4.mjs";
3
+ import { r as emptySet } from "./stringMap-D5YIpYtR.mjs";
4
+ import { a as expressionVariables, i as containsExists, m as mapChildren, n as bgp, r as certainVariables, s as filter, y as transform } from "./Algebra-CGG4oae3.mjs";
5
+ import { t as loop } from "./loop-D5-gNx9K.mjs";
6
+ import * as Arr from "effect/Array";
7
+ import * as Option from "effect/Option";
8
+ import * as Predicate from "effect/Predicate";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Match from "effect/Match";
11
+ // src/sparql/Optimizer.ts
12
+ /**
13
+ * A simple, semantics-preserving algebra optimizer:
14
+ *
15
+ * - **Filter pushdown**: conjunctive filter conditions are pushed below
16
+ * `Join` and into the left side of `LeftJoin` / `Minus` when all their
17
+ * variables are certainly bound there (and they contain no `EXISTS`).
18
+ * - **BGP join ordering**: the triple patterns of each BGP are reordered
19
+ * greedily by estimated selectivity (using `QuadStore.estimate` when the
20
+ * store provides it, and a static heuristic otherwise), preferring
21
+ * patterns connected to already-bound variables.
22
+ *
23
+ * Patterns inside `EXISTS` are left untouched.
24
+ *
25
+ * @since 0.1.0
26
+ */
27
+ var Optimizer_exports = /* @__PURE__ */ __exportAll({ optimize: () => optimize });
28
+ const conjuncts = (e) => Predicate.isTagged(e, "Operation") && e.operator === "&&" ? e.args.flatMap(conjuncts) : [e];
29
+ const conjunction = (es) => es.reduce((a, b) => ({
30
+ _tag: "Operation",
31
+ operator: "&&",
32
+ args: [a, b]
33
+ }));
34
+ const subset = (a, b) => Array.from(a).every((x) => b.has(x));
35
+ /** Pushes one filter condition as deep as possible; `None` if it cannot move. */
36
+ const push = (e, op) => {
37
+ const vars = expressionVariables(e);
38
+ return Match.value(op).pipe(Match.tag("Join", (j) => {
39
+ if (subset(vars, certainVariables(j.left))) return Option.some({
40
+ ...j,
41
+ left: pushOrWrap(e, j.left)
42
+ });
43
+ if (subset(vars, certainVariables(j.right))) return Option.some({
44
+ ...j,
45
+ right: pushOrWrap(e, j.right)
46
+ });
47
+ return Option.none();
48
+ }), Match.tag("LeftJoin", "Minus", (o) => subset(vars, certainVariables(o.left)) ? Option.some({
49
+ ...o,
50
+ left: pushOrWrap(e, o.left)
51
+ }) : Option.none()), Match.tag("Filter", (f) => Option.some({
52
+ ...f,
53
+ input: pushOrWrap(e, f.input)
54
+ })), Match.orElse(() => Option.none()));
55
+ };
56
+ const pushOrWrap = (e, op) => Option.getOrElse(push(e, op), () => filter(e, op));
57
+ const pushFilters = (op) => transform(op, (o) => {
58
+ if (!Predicate.isTagged(o, "Filter")) return o;
59
+ const kept = [];
60
+ const keep = (input, c) => {
61
+ kept.push(c);
62
+ return input;
63
+ };
64
+ const input = conjuncts(o.expression).reduce((acc, c) => containsExists(c) ? keep(acc, c) : Option.getOrElse(push(c, acc), () => keep(acc, c)), o.input);
65
+ return Arr.isReadonlyArrayEmpty(kept) ? input : filter(conjunction(kept), input);
66
+ });
67
+ const positions = (p) => [
68
+ p.subject,
69
+ p.predicate,
70
+ p.object
71
+ ];
72
+ const patternVariables = (p) => {
73
+ const out = [];
74
+ const go = (t) => {
75
+ if (isVariable(t)) out.push(t.value);
76
+ else if (isTriple(t)) {
77
+ go(t.subject);
78
+ go(t.predicate);
79
+ go(t.object);
80
+ }
81
+ };
82
+ positions(p).forEach(go);
83
+ return out;
84
+ };
85
+ /** A pattern term as a constant: `None` for a variable or a triple pattern with variables. */
86
+ const constant = (t) => {
87
+ if (isVariable(t)) return Option.none();
88
+ if (isTriple(t)) {
89
+ const vars = patternVariables({
90
+ _tag: "TriplePattern",
91
+ subject: t.subject,
92
+ predicate: t.predicate,
93
+ object: t.object
94
+ });
95
+ return Arr.isReadonlyArrayNonEmpty(vars) ? Option.none() : Option.some(t);
96
+ }
97
+ return Option.some(t);
98
+ };
99
+ /** Static selectivity heuristic when the store gives no estimates. */
100
+ const staticCost = (p) => (Option.isNone(constant(p.subject)) ? 100 : 1) * (Option.isNone(constant(p.object)) ? 10 : 1) * (Option.isNone(constant(p.predicate)) ? 5 : 1);
101
+ const orderBgp = (patterns, ctx) => Effect.gen(function* () {
102
+ if (patterns.length < 2) return patterns;
103
+ const estimate = ctx.store.estimate;
104
+ const costs = yield* Effect.forEach(patterns, (p) => estimate === void 0 ? Effect.succeed(staticCost(p)) : estimate({
105
+ subject: Option.getOrUndefined(constant(p.subject)),
106
+ predicate: Option.getOrUndefined(constant(p.predicate)),
107
+ object: Option.getOrUndefined(constant(p.object)),
108
+ graph: Predicate.isTagged(ctx.graph, "NamedGraph") ? ctx.graph.graph : ctx.dataset.defaultGraph === "default" ? defaultGraph : void 0
109
+ }), { concurrency: 1 });
110
+ const remaining = Arr.zip(patterns, costs).map(([p, cost]) => ({
111
+ p,
112
+ cost,
113
+ vars: patternVariables(p)
114
+ }));
115
+ const bound = emptySet();
116
+ const out = [];
117
+ loop(() => {
118
+ if (!Arr.isArrayNonEmpty(remaining)) return false;
119
+ const connected = remaining.some((r) => r.vars.some((v) => bound.has(v)));
120
+ const best = Arr.map(remaining, (r, i) => {
121
+ const isConnected = r.vars.some((v) => bound.has(v));
122
+ const eligible = !(connected && !isConnected && bound.size > 0);
123
+ const boundCount = r.vars.filter((v) => bound.has(v)).length;
124
+ return {
125
+ r,
126
+ i,
127
+ score: eligible ? r.cost / 10 ** boundCount : Infinity
128
+ };
129
+ }).reduce((a, b) => b.score < a.score ? b : a);
130
+ remaining.splice(best.i, 1);
131
+ out.push(best.r.p);
132
+ best.r.vars.forEach((v) => bound.set(v, true));
133
+ return true;
134
+ });
135
+ return out;
136
+ });
137
+ const orderBgps = (op, ctx) => {
138
+ return Match.value(op).pipe(Match.tag("Bgp", (b) => Effect.map(orderBgp(b.patterns, ctx), (patterns) => bgp(patterns))), Match.tag("Path", "Values", (o) => Effect.succeed(o)), Match.tag("Graph", (g) => Effect.map(orderBgps(g.input, {
139
+ ...ctx,
140
+ graph: isNamedNode(g.name) ? {
141
+ _tag: "NamedGraph",
142
+ graph: g.name
143
+ } : ctx.graph
144
+ }), (input) => ({
145
+ ...g,
146
+ input
147
+ }))), Match.orElse((o) => {
148
+ const children = [];
149
+ mapChildren(o, (c) => {
150
+ children.push(c);
151
+ return c;
152
+ });
153
+ return Effect.map(Effect.forEach(children, (c) => orderBgps(c, ctx), { concurrency: 1 }), (optimized) => {
154
+ let i = 0;
155
+ return mapChildren(o, (c) => optimized[i++] ?? c);
156
+ });
157
+ }));
158
+ };
159
+ /**
160
+ * Optimizes an algebra expression.
161
+ *
162
+ * @since 0.1.0
163
+ * @category optimization
164
+ */
165
+ const optimize = (op, ctx) => orderBgps(pushFilters(op), ctx);
166
+ export { optimize as n, Optimizer_exports as t };
167
+
168
+ //# sourceMappingURL=Optimizer-BWWQRQPY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Optimizer-BWWQRQPY.mjs","names":["Algebra.expressionVariables","Algebra.certainVariables","Algebra.filter","Algebra.transform","Algebra.containsExists","Term.isVariable","Term.isTriple","Term.defaultGraph","StringMap.emptySet","Algebra.bgp","Term.isNamedNode","Algebra.mapChildren"],"sources":["../src/sparql/Optimizer.ts"],"sourcesContent":["/**\n * A simple, semantics-preserving algebra optimizer:\n *\n * - **Filter pushdown**: conjunctive filter conditions are pushed below\n * `Join` and into the left side of `LeftJoin` / `Minus` when all their\n * variables are certainly bound there (and they contain no `EXISTS`).\n * - **BGP join ordering**: the triple patterns of each BGP are reordered\n * greedily by estimated selectivity (using `QuadStore.estimate` when the\n * store provides it, and a static heuristic otherwise), preferring\n * patterns connected to already-bound variables.\n *\n * Patterns inside `EXISTS` are left untouched.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Term from '../Term.ts';\nimport * as Algebra from './Algebra.ts';\nimport type * as Ast from './Ast.ts';\nimport { loop } from './internal/loop.ts';\nimport * as StringMap from './internal/stringMap.ts';\nimport type * as Store from './Store.ts';\n\n/**\n * Inputs of the optimizer.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface OptimizerContext {\n readonly store: Store.QuadStoreShape;\n readonly dataset: Store.DatasetSpec;\n readonly graph: Store.ActiveGraph;\n}\n\nconst conjuncts = (e: Algebra.Expression): Array<Algebra.Expression> =>\n Predicate.isTagged(e, 'Operation') && e.operator === '&&' ? e.args.flatMap(conjuncts) : [e];\n\nconst conjunction = (es: ReadonlyArray<Algebra.Expression>): Algebra.Expression =>\n es.reduce((a, b) => ({ _tag: 'Operation', operator: '&&', args: [a, b] }));\n\nconst subset = (a: ReadonlySet<string>, b: ReadonlySet<string>): boolean =>\n Array.from(a).every((x) => b.has(x));\n\n/** Pushes one filter condition as deep as possible; `None` if it cannot move. */\nconst push = (e: Algebra.Expression, op: Algebra.Operation): Option.Option<Algebra.Operation> => {\n const vars = Algebra.expressionVariables(e);\n return Match.value(op).pipe(\n Match.tag('Join', (j): Option.Option<Algebra.Operation> => {\n if (subset(vars, Algebra.certainVariables(j.left))) {\n return Option.some({ ...j, left: pushOrWrap(e, j.left) });\n }\n if (subset(vars, Algebra.certainVariables(j.right))) {\n return Option.some({ ...j, right: pushOrWrap(e, j.right) });\n }\n return Option.none();\n }),\n Match.tag('LeftJoin', 'Minus', (o) =>\n subset(vars, Algebra.certainVariables(o.left))\n ? Option.some({ ...o, left: pushOrWrap(e, o.left) })\n : Option.none(),\n ),\n Match.tag('Filter', (f) => Option.some({ ...f, input: pushOrWrap(e, f.input) })),\n Match.orElse(() => Option.none()),\n );\n};\n\nconst pushOrWrap = (e: Algebra.Expression, op: Algebra.Operation): Algebra.Operation =>\n Option.getOrElse(push(e, op), () => Algebra.filter(e, op));\n\nconst pushFilters = (op: Algebra.Operation): Algebra.Operation =>\n Algebra.transform(op, (o) => {\n if (!Predicate.isTagged(o, 'Filter')) return o;\n // The conditions that stay, and the input with the others pushed in.\n const kept: Array<Algebra.Expression> = [];\n const keep = (input: Algebra.Operation, c: Algebra.Expression): Algebra.Operation => {\n kept.push(c);\n return input;\n };\n const input = conjuncts(o.expression).reduce(\n (acc, c) =>\n Algebra.containsExists(c)\n ? keep(acc, c)\n : Option.getOrElse(push(c, acc), () => keep(acc, c)),\n o.input,\n );\n return Arr.isReadonlyArrayEmpty(kept) ? input : Algebra.filter(conjunction(kept), input);\n });\n\nconst positions = (p: Ast.TriplePattern): ReadonlyArray<Ast.TermPattern> => [\n p.subject,\n p.predicate,\n p.object,\n];\n\nconst patternVariables = (p: Ast.TriplePattern): ReadonlyArray<string> => {\n const out: Array<string> = [];\n const go = (t: Ast.TermPattern | Term.Term): void => {\n if (Term.isVariable(t)) out.push(t.value);\n else if (Term.isTriple(t)) {\n go(t.subject);\n go(t.predicate);\n go(t.object);\n }\n };\n positions(p).forEach(go);\n return out;\n};\n\n/** A pattern term as a constant: `None` for a variable or a triple pattern with variables. */\nconst constant = (t: Ast.TermPattern): Option.Option<Term.GroundTerm> => {\n if (Term.isVariable(t)) return Option.none();\n if (Term.isTriple(t)) {\n const vars = patternVariables({\n _tag: 'TriplePattern',\n subject: t.subject,\n predicate: t.predicate,\n object: t.object,\n });\n return Arr.isReadonlyArrayNonEmpty(vars) ? Option.none() : Option.some(t);\n }\n return Option.some(t);\n};\n\n/** Static selectivity heuristic when the store gives no estimates. */\nconst staticCost = (p: Ast.TriplePattern): number =>\n (Option.isNone(constant(p.subject)) ? 100 : 1) *\n (Option.isNone(constant(p.object)) ? 10 : 1) *\n (Option.isNone(constant(p.predicate)) ? 5 : 1);\n\nconst orderBgp = (\n patterns: ReadonlyArray<Ast.TriplePattern>,\n ctx: OptimizerContext,\n): Effect.Effect<ReadonlyArray<Ast.TriplePattern>, Store.StoreError> =>\n Effect.gen(function* () {\n if (patterns.length < 2) return patterns;\n const estimate = ctx.store.estimate;\n const costs = yield* Effect.forEach(\n patterns,\n (p) =>\n estimate === undefined\n ? Effect.succeed(staticCost(p))\n : estimate({\n subject: Option.getOrUndefined(constant(p.subject)),\n predicate: Option.getOrUndefined(constant(p.predicate)),\n object: Option.getOrUndefined(constant(p.object)),\n graph: Predicate.isTagged(ctx.graph, 'NamedGraph')\n ? ctx.graph.graph\n : ctx.dataset.defaultGraph === 'default'\n ? Term.defaultGraph\n : undefined,\n }),\n { concurrency: 1 },\n );\n const remaining = Arr.zip(patterns, costs).map(([p, cost]) => ({\n p,\n cost,\n vars: patternVariables(p),\n }));\n const bound = StringMap.emptySet();\n const out: Array<Ast.TriplePattern> = [];\n // Greedily picks the cheapest pattern, preferring those connected to the bound variables.\n loop(() => {\n if (!Arr.isArrayNonEmpty(remaining)) return false;\n const connected = remaining.some((r) => r.vars.some((v) => bound.has(v)));\n const scored = Arr.map(remaining, (r, i) => {\n const isConnected = r.vars.some((v) => bound.has(v));\n const eligible = !(connected && !isConnected && bound.size > 0);\n const boundCount = r.vars.filter((v) => bound.has(v)).length;\n return { r, i, score: eligible ? r.cost / 10 ** boundCount : Infinity };\n });\n // The first with the lowest score (the first pattern if none is eligible).\n const best = scored.reduce((a, b) => (b.score < a.score ? b : a));\n remaining.splice(best.i, 1);\n out.push(best.r.p);\n best.r.vars.forEach((v) => bound.set(v, true));\n return true;\n });\n return out;\n });\n\nconst orderBgps = (\n op: Algebra.Operation,\n ctx: OptimizerContext,\n): Effect.Effect<Algebra.Operation, Store.StoreError> => {\n return Match.value(op).pipe(\n Match.tag('Bgp', (b): Effect.Effect<Algebra.Operation, Store.StoreError> =>\n Effect.map(orderBgp(b.patterns, ctx), (patterns) => Algebra.bgp(patterns)),\n ),\n Match.tag('Path', 'Values', (o) => Effect.succeed(o)),\n Match.tag('Graph', (g) =>\n Effect.map(\n orderBgps(g.input, {\n ...ctx,\n graph: Term.isNamedNode(g.name) ? { _tag: 'NamedGraph', graph: g.name } : ctx.graph,\n }),\n (input) => ({ ...g, input }),\n ),\n ),\n Match.orElse((o) => {\n const children: Array<Algebra.Operation> = [];\n Algebra.mapChildren(o, (c) => {\n children.push(c);\n return c;\n });\n return Effect.map(\n Effect.forEach(children, (c) => orderBgps(c, ctx), { concurrency: 1 }),\n (optimized) => {\n let i = 0;\n return Algebra.mapChildren(o, (c) => optimized[i++] ?? c);\n },\n );\n }),\n );\n};\n\n/**\n * Optimizes an algebra expression.\n *\n * @since 0.1.0\n * @category optimization\n */\nexport const optimize = (\n op: Algebra.Operation,\n ctx: OptimizerContext,\n): Effect.Effect<Algebra.Operation, Store.StoreError> => orderBgps(pushFilters(op), ctx);\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { g as Operation } from "./Algebra-uGsIEOUA.mjs";
2
+ import { c as StoreError, n as DatasetSpec, o as QuadStoreShape, t as ActiveGraph } from "./Store-D0jmVfb3.mjs";
3
+ import * as Effect from "effect/Effect";
4
+ declare namespace Optimizer_d_exports {
5
+ export { OptimizerContext, optimize };
6
+ }
7
+ /**
8
+ * Inputs of the optimizer.
9
+ *
10
+ * @since 0.1.0
11
+ * @category models
12
+ */
13
+ interface OptimizerContext {
14
+ readonly store: QuadStoreShape;
15
+ readonly dataset: DatasetSpec;
16
+ readonly graph: ActiveGraph;
17
+ }
18
+ /**
19
+ * Optimizes an algebra expression.
20
+ *
21
+ * @since 0.1.0
22
+ * @category optimization
23
+ */
24
+ declare const optimize: (op: Operation, ctx: OptimizerContext) => Effect.Effect<Operation, StoreError>;
25
+ export { Optimizer_d_exports as n, optimize as r, OptimizerContext as t };
26
+ //# sourceMappingURL=Optimizer-DUpUow6k.d.mts.map
@@ -0,0 +1,72 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import * as Result from "effect/Result";
3
+ import * as Duration from "effect/Duration";
4
+ // src/sparql/Options.ts
5
+ /**
6
+ * Server configuration.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+ var Options_exports = /* @__PURE__ */ __exportAll({
11
+ requestPath: () => requestPath,
12
+ requestUrl: () => requestUrl,
13
+ resolve: () => resolve
14
+ });
15
+ /** Removes a trailing slash (but not the root's): the path still starts with `/`. */
16
+ const trimSlash = (path) => path.length > 1 && path.endsWith("/") ? `/${path.slice(1, -1)}` : path;
17
+ /**
18
+ * Applies the defaults.
19
+ *
20
+ * @since 0.1.0
21
+ * @category constructors
22
+ */
23
+ const resolve = (options = {}) => {
24
+ const path = trimSlash(options.path ?? "/sparql");
25
+ return {
26
+ path,
27
+ updatePath: trimSlash(options.updatePath ?? path),
28
+ graphStorePath: options.graphStorePath === false ? void 0 : trimSlash(options.graphStorePath ?? "/rdf-graph-store"),
29
+ baseUrl: options.baseUrl,
30
+ baseIri: options.baseIri,
31
+ readOnly: options.readOnly ?? false,
32
+ queryTimeout: options.queryTimeout === void 0 ? void 0 : Duration.fromInputUnsafe(options.queryTimeout),
33
+ updateTimeout: options.updateTimeout === void 0 ? void 0 : Duration.fromInputUnsafe(options.updateTimeout),
34
+ maxResults: options.maxResults,
35
+ cors: options.cors === true ? {} : options.cors === false ? void 0 : options.cors,
36
+ logging: options.logging ?? false,
37
+ serviceDescription: options.serviceDescription ?? true,
38
+ unionDefaultGraph: options.unionDefaultGraph ?? false,
39
+ federation: options.federation ?? false,
40
+ prefixes: options.prefixes ?? {}
41
+ };
42
+ };
43
+ const stripTrailing = (path) => path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
44
+ /**
45
+ * The absolute URL of a request (without fragment), using `baseUrl`, the
46
+ * request's absolute URL, or its `Host` header.
47
+ *
48
+ * @since 0.1.0
49
+ * @category utils
50
+ */
51
+ const requestUrl = (request, options) => {
52
+ const raw = request.originalUrl;
53
+ const parsed = new URL(raw, "http://localhost");
54
+ if (options.baseUrl !== void 0) return new URL(parsed.pathname + parsed.search, options.baseUrl);
55
+ if (/^[a-z][a-z0-9+.-]*:/i.test(raw)) return parsed;
56
+ const host = request.headers["host"] ?? "localhost";
57
+ const proto = ((request.headers["x-forwarded-proto"] ?? "http").split(",", 1)[0] ?? "").trim();
58
+ return new URL(parsed.pathname + parsed.search, `${proto}://${host}`);
59
+ };
60
+ /**
61
+ * The path of a request URL, without query string and trailing slash.
62
+ *
63
+ * @since 0.1.0
64
+ * @category utils
65
+ */
66
+ const requestPath = (url) => {
67
+ const pathname = new URL(url, "http://localhost").pathname;
68
+ return stripTrailing(Result.getOrElse(Result.try(() => decodeURI(pathname)), () => pathname));
69
+ };
70
+ export { resolve as i, requestPath as n, requestUrl as r, Options_exports as t };
71
+
72
+ //# sourceMappingURL=Options-BLBGL4HE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Options-BLBGL4HE.mjs","names":[],"sources":["../src/sparql/Options.ts"],"sourcesContent":["/**\n * Server configuration.\n *\n * @since 0.1.0\n */\nimport * as Duration from 'effect/Duration';\nimport * as Result from 'effect/Result';\nimport type * as HttpServerRequest from 'effect/http/HttpServerRequest';\n\n/**\n * CORS settings.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface CorsOptions {\n /** Allowed origins (default: any, `*`). */\n readonly allowedOrigins?: ReadonlyArray<string> | undefined;\n /** Allowed request headers (default: whatever the preflight asks for). */\n readonly allowedHeaders?: ReadonlyArray<string> | undefined;\n /** Response headers exposed to scripts. */\n readonly exposedHeaders?: ReadonlyArray<string> | undefined;\n /** Preflight cache duration in seconds. */\n readonly maxAge?: number | undefined;\n /** Whether to allow credentials. */\n readonly credentials?: boolean | undefined;\n}\n\n/**\n * Server options. Every field is optional.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Options {\n /** Path of the SPARQL query endpoint (default `/sparql`). */\n readonly path?: `/${string}` | undefined;\n /**\n * Path of the SPARQL update endpoint (default: the query endpoint, which\n * then accepts both).\n */\n readonly updatePath?: `/${string}` | undefined;\n /**\n * Path of the Graph Store Protocol endpoint (default `/rdf-graph-store`),\n * or `false` to disable it. Graphs are identified indirectly with\n * `?default` / `?graph=<iri>` on this path, or directly by any URL below it.\n */\n readonly graphStorePath?: `/${string}` | false | undefined;\n /**\n * The public origin of the server (e.g. `https://data.example.org`), used to\n * build the request URLs that serve as base IRIs and as directly\n * identified graph IRIs. Defaults to the request's `Host` header (and\n * `X-Forwarded-Proto`).\n */\n readonly baseUrl?: string | undefined;\n /**\n * The base IRI for queries and updates. Defaults to the endpoint URL, as\n * suggested by the protocol.\n */\n readonly baseIri?: string | undefined;\n /** Rejects updates and Graph Store writes (default `false`). */\n readonly readOnly?: boolean | undefined;\n /**\n * Time limit for evaluating a query. A query that produces no result in\n * time is answered with `503 Service Unavailable`; a streaming response\n * that exceeds it is aborted.\n */\n readonly queryTimeout?: Duration.Input | undefined;\n /** Time limit for an update request (`503` when exceeded). */\n readonly updateTimeout?: Duration.Input | undefined;\n /** The maximum number of solutions or triples returned by a query. */\n readonly maxResults?: number | undefined;\n /** Enables CORS (`true` for permissive defaults). */\n readonly cors?: boolean | CorsOptions | undefined;\n /** Logs every request with Effect logging (default `false` for the handler). */\n readonly logging?: boolean | undefined;\n /** Serve a service description on `GET` without a query (default `true`). */\n readonly serviceDescription?: boolean | undefined;\n /** Advertised in the service description: `sd:UnionDefaultGraph`. */\n readonly unionDefaultGraph?: boolean | undefined;\n /** Advertised in the service description: `sd:BasicFederatedQuery`. */\n readonly federation?: boolean | undefined;\n /** Prefixes used when serialising graphs in syntaxes that support them. */\n readonly prefixes?: Readonly<Record<string, string>> | undefined;\n}\n\n/**\n * Options with defaults applied.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Resolved {\n readonly path: `/${string}`;\n readonly updatePath: `/${string}`;\n readonly graphStorePath: `/${string}` | undefined;\n readonly baseUrl: string | undefined;\n readonly baseIri: string | undefined;\n readonly readOnly: boolean;\n readonly queryTimeout: Duration.Duration | undefined;\n readonly updateTimeout: Duration.Duration | undefined;\n readonly maxResults: number | undefined;\n readonly cors: CorsOptions | undefined;\n readonly logging: boolean;\n readonly serviceDescription: boolean;\n readonly unionDefaultGraph: boolean;\n readonly federation: boolean;\n readonly prefixes: Readonly<Record<string, string>>;\n}\n\n/** Removes a trailing slash (but not the root's): the path still starts with `/`. */\nconst trimSlash = (path: `/${string}`): `/${string}` =>\n path.length > 1 && path.endsWith('/') ? `/${path.slice(1, -1)}` : path;\n\n/**\n * Applies the defaults.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const resolve = (options: Options = {}): Resolved => {\n const path = trimSlash(options.path ?? '/sparql');\n return {\n path,\n updatePath: trimSlash(options.updatePath ?? path),\n graphStorePath:\n options.graphStorePath === false\n ? undefined\n : trimSlash(options.graphStorePath ?? '/rdf-graph-store'),\n baseUrl: options.baseUrl,\n baseIri: options.baseIri,\n readOnly: options.readOnly ?? false,\n queryTimeout:\n options.queryTimeout === undefined\n ? undefined\n : Duration.fromInputUnsafe(options.queryTimeout),\n updateTimeout:\n options.updateTimeout === undefined\n ? undefined\n : Duration.fromInputUnsafe(options.updateTimeout),\n maxResults: options.maxResults,\n cors: options.cors === true ? {} : options.cors === false ? undefined : options.cors,\n logging: options.logging ?? false,\n serviceDescription: options.serviceDescription ?? true,\n unionDefaultGraph: options.unionDefaultGraph ?? false,\n federation: options.federation ?? false,\n prefixes: options.prefixes ?? {},\n };\n};\n\nconst stripTrailing = (path: string): string =>\n path.length > 1 && path.endsWith('/') ? path.slice(0, -1) : path;\n\n/**\n * The absolute URL of a request (without fragment), using `baseUrl`, the\n * request's absolute URL, or its `Host` header.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const requestUrl = (\n request: HttpServerRequest.HttpServerRequest,\n options: Resolved,\n): URL => {\n const raw = request.originalUrl;\n const parsed = new URL(raw, 'http://localhost');\n if (options.baseUrl !== undefined) {\n return new URL(parsed.pathname + parsed.search, options.baseUrl);\n }\n if (/^[a-z][a-z0-9+.-]*:/i.test(raw)) return parsed;\n const host = request.headers['host'] ?? 'localhost';\n const proto = ((request.headers['x-forwarded-proto'] ?? 'http').split(',', 1)[0] ?? '').trim();\n return new URL(parsed.pathname + parsed.search, `${proto}://${host}`);\n};\n\n/**\n * The path of a request URL, without query string and trailing slash.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const requestPath = (url: string): string => {\n const pathname = new URL(url, 'http://localhost').pathname;\n // A malformed percent-encoding is matched as written.\n return stripTrailing(\n Result.getOrElse(\n Result.try(() => decodeURI(pathname)),\n () => pathname,\n ),\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AA+GA,MAAM,aAAa,SACjB,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM;;;;;;;AAQpE,MAAa,WAAW,UAAmB,CAAC,MAAgB;CAC1D,MAAM,OAAO,UAAU,QAAQ,QAAQ,SAAS;CAChD,OAAO;EACL;EACA,YAAY,UAAU,QAAQ,cAAc,IAAI;EAChD,gBACE,QAAQ,mBAAmB,QACvB,KAAA,IACA,UAAU,QAAQ,kBAAkB,kBAAkB;EAC5D,SAAS,QAAQ;EACjB,SAAS,QAAQ;EACjB,UAAU,QAAQ,YAAY;EAC9B,cACE,QAAQ,iBAAiB,KAAA,IACrB,KAAA,IACA,SAAS,gBAAgB,QAAQ,YAAY;EACnD,eACE,QAAQ,kBAAkB,KAAA,IACtB,KAAA,IACA,SAAS,gBAAgB,QAAQ,aAAa;EACpD,YAAY,QAAQ;EACpB,MAAM,QAAQ,SAAS,OAAO,CAAC,IAAI,QAAQ,SAAS,QAAQ,KAAA,IAAY,QAAQ;EAChF,SAAS,QAAQ,WAAW;EAC5B,oBAAoB,QAAQ,sBAAsB;EAClD,mBAAmB,QAAQ,qBAAqB;EAChD,YAAY,QAAQ,cAAc;EAClC,UAAU,QAAQ,YAAY,CAAC;CACjC;AACF;AAEA,MAAM,iBAAiB,SACrB,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;;;;;;;;AAS9D,MAAa,cACX,SACA,YACQ;CACR,MAAM,MAAM,QAAQ;CACpB,MAAM,SAAS,IAAI,IAAI,KAAK,kBAAkB;CAC9C,IAAI,QAAQ,YAAY,KAAA,GACtB,OAAO,IAAI,IAAI,OAAO,WAAW,OAAO,QAAQ,QAAQ,OAAO;CAEjE,IAAI,uBAAuB,KAAK,GAAG,GAAG,OAAO;CAC7C,MAAM,OAAO,QAAQ,QAAQ,WAAW;CACxC,MAAM,UAAU,QAAQ,QAAQ,wBAAwB,OAAA,CAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,GAAA,CAAI,KAAK;CAC7F,OAAO,IAAI,IAAI,OAAO,WAAW,OAAO,QAAQ,GAAG,MAAM,KAAK,MAAM;AACtE;;;;;;;AAQA,MAAa,eAAe,QAAwB;CAClD,MAAM,WAAW,IAAI,IAAI,KAAK,kBAAkB,CAAC,CAAC;CAElD,OAAO,cACL,OAAO,UACL,OAAO,UAAU,UAAU,QAAQ,CAAC,SAC9B,QACR,CACF;AACF"}
@@ -0,0 +1,127 @@
1
+ import * as Duration from "effect/Duration";
2
+ import * as HttpServerRequest from "effect/http/HttpServerRequest";
3
+ declare namespace Options_d_exports {
4
+ export { CorsOptions, Options, Resolved, requestPath, requestUrl, resolve };
5
+ }
6
+ /**
7
+ * CORS settings.
8
+ *
9
+ * @since 0.1.0
10
+ * @category models
11
+ */
12
+ interface CorsOptions {
13
+ /** Allowed origins (default: any, `*`). */
14
+ readonly allowedOrigins?: ReadonlyArray<string> | undefined;
15
+ /** Allowed request headers (default: whatever the preflight asks for). */
16
+ readonly allowedHeaders?: ReadonlyArray<string> | undefined;
17
+ /** Response headers exposed to scripts. */
18
+ readonly exposedHeaders?: ReadonlyArray<string> | undefined;
19
+ /** Preflight cache duration in seconds. */
20
+ readonly maxAge?: number | undefined;
21
+ /** Whether to allow credentials. */
22
+ readonly credentials?: boolean | undefined;
23
+ }
24
+ /**
25
+ * Server options. Every field is optional.
26
+ *
27
+ * @since 0.1.0
28
+ * @category models
29
+ */
30
+ interface Options {
31
+ /** Path of the SPARQL query endpoint (default `/sparql`). */
32
+ readonly path?: `/${string}` | undefined;
33
+ /**
34
+ * Path of the SPARQL update endpoint (default: the query endpoint, which
35
+ * then accepts both).
36
+ */
37
+ readonly updatePath?: `/${string}` | undefined;
38
+ /**
39
+ * Path of the Graph Store Protocol endpoint (default `/rdf-graph-store`),
40
+ * or `false` to disable it. Graphs are identified indirectly with
41
+ * `?default` / `?graph=<iri>` on this path, or directly by any URL below it.
42
+ */
43
+ readonly graphStorePath?: `/${string}` | false | undefined;
44
+ /**
45
+ * The public origin of the server (e.g. `https://data.example.org`), used to
46
+ * build the request URLs that serve as base IRIs and as directly
47
+ * identified graph IRIs. Defaults to the request's `Host` header (and
48
+ * `X-Forwarded-Proto`).
49
+ */
50
+ readonly baseUrl?: string | undefined;
51
+ /**
52
+ * The base IRI for queries and updates. Defaults to the endpoint URL, as
53
+ * suggested by the protocol.
54
+ */
55
+ readonly baseIri?: string | undefined;
56
+ /** Rejects updates and Graph Store writes (default `false`). */
57
+ readonly readOnly?: boolean | undefined;
58
+ /**
59
+ * Time limit for evaluating a query. A query that produces no result in
60
+ * time is answered with `503 Service Unavailable`; a streaming response
61
+ * that exceeds it is aborted.
62
+ */
63
+ readonly queryTimeout?: Duration.Input | undefined;
64
+ /** Time limit for an update request (`503` when exceeded). */
65
+ readonly updateTimeout?: Duration.Input | undefined;
66
+ /** The maximum number of solutions or triples returned by a query. */
67
+ readonly maxResults?: number | undefined;
68
+ /** Enables CORS (`true` for permissive defaults). */
69
+ readonly cors?: boolean | CorsOptions | undefined;
70
+ /** Logs every request with Effect logging (default `false` for the handler). */
71
+ readonly logging?: boolean | undefined;
72
+ /** Serve a service description on `GET` without a query (default `true`). */
73
+ readonly serviceDescription?: boolean | undefined;
74
+ /** Advertised in the service description: `sd:UnionDefaultGraph`. */
75
+ readonly unionDefaultGraph?: boolean | undefined;
76
+ /** Advertised in the service description: `sd:BasicFederatedQuery`. */
77
+ readonly federation?: boolean | undefined;
78
+ /** Prefixes used when serialising graphs in syntaxes that support them. */
79
+ readonly prefixes?: Readonly<Record<string, string>> | undefined;
80
+ }
81
+ /**
82
+ * Options with defaults applied.
83
+ *
84
+ * @since 0.1.0
85
+ * @category models
86
+ */
87
+ interface Resolved {
88
+ readonly path: `/${string}`;
89
+ readonly updatePath: `/${string}`;
90
+ readonly graphStorePath: `/${string}` | undefined;
91
+ readonly baseUrl: string | undefined;
92
+ readonly baseIri: string | undefined;
93
+ readonly readOnly: boolean;
94
+ readonly queryTimeout: Duration.Duration | undefined;
95
+ readonly updateTimeout: Duration.Duration | undefined;
96
+ readonly maxResults: number | undefined;
97
+ readonly cors: CorsOptions | undefined;
98
+ readonly logging: boolean;
99
+ readonly serviceDescription: boolean;
100
+ readonly unionDefaultGraph: boolean;
101
+ readonly federation: boolean;
102
+ readonly prefixes: Readonly<Record<string, string>>;
103
+ }
104
+ /**
105
+ * Applies the defaults.
106
+ *
107
+ * @since 0.1.0
108
+ * @category constructors
109
+ */
110
+ declare const resolve: (options?: Options) => Resolved;
111
+ /**
112
+ * The absolute URL of a request (without fragment), using `baseUrl`, the
113
+ * request's absolute URL, or its `Host` header.
114
+ *
115
+ * @since 0.1.0
116
+ * @category utils
117
+ */
118
+ declare const requestUrl: (request: HttpServerRequest.HttpServerRequest, options: Resolved) => URL;
119
+ /**
120
+ * The path of a request URL, without query string and trailing slash.
121
+ *
122
+ * @since 0.1.0
123
+ * @category utils
124
+ */
125
+ declare const requestPath: (url: string) => string;
126
+ export { requestPath as a, Resolved as i, Options as n, requestUrl as o, Options_d_exports as r, resolve as s, CorsOptions as t };
127
+ //# sourceMappingURL=Options-BommQwP9.d.mts.map
@@ -0,0 +1,197 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import * as Arr from "effect/Array";
3
+ import * as Option from "effect/Option";
4
+ import * as Order from "effect/Order";
5
+ // src/xmp/Packet.ts
6
+ /**
7
+ * XMP packets (ISO 16684-1 §7.3): finding `<?xpacket begin=… ?>` …
8
+ * `<?xpacket end="w"?>` in arbitrary bytes, and wrapping serialized XMP in
9
+ * a packet with the whitespace padding that lets a writer update it in
10
+ * place.
11
+ *
12
+ * Packets are found in UTF-8, UTF-16 and UTF-32 (either byte order), the
13
+ * encodings ISO 16684-1 §7.3.2 lets a packet use and a byte scanner can
14
+ * recognise without parsing the host file.
15
+ *
16
+ * @since 0.1.0
17
+ */
18
+ var Packet_exports = /* @__PURE__ */ __exportAll({
19
+ DEFAULT_PADDING: () => DEFAULT_PADDING,
20
+ PACKET_ID: () => PACKET_ID,
21
+ byteLength: () => byteLength,
22
+ find: () => find,
23
+ findAll: () => findAll,
24
+ padding: () => padding,
25
+ unwrap: () => unwrap,
26
+ wrap: () => wrap,
27
+ wrapToSize: () => wrapToSize
28
+ });
29
+ /**
30
+ * The `id` attribute every packet header carries.
31
+ *
32
+ * @since 0.1.0
33
+ * @category constants
34
+ */
35
+ const PACKET_ID = "W5M0MpCehiHzreSzNTczkc9d";
36
+ /**
37
+ * The padding a writable packet gets by default: 2 KiB, as the XMP
38
+ * specification recommends.
39
+ *
40
+ * @since 0.1.0
41
+ * @category constants
42
+ */
43
+ const DEFAULT_PADDING = 2048;
44
+ const HEADER = "<?xpacket begin=";
45
+ const TRAILER = "<?xpacket end=";
46
+ const PI_END = "?>";
47
+ const ENCODINGS = [
48
+ "utf-8",
49
+ "utf-16be",
50
+ "utf-16le",
51
+ "utf-32be",
52
+ "utf-32le"
53
+ ];
54
+ const WIDTHS = {
55
+ "utf-8": 1,
56
+ "utf-16be": 2,
57
+ "utf-16le": 2,
58
+ "utf-32be": 4,
59
+ "utf-32le": 4
60
+ };
61
+ const isLittleEndian = (encoding) => encoding.endsWith("le");
62
+ /** One ASCII code unit in an encoding: the code, zero-padded to the unit's width. */
63
+ const asciiUnit = (code, encoding) => {
64
+ const padding = Array.from({ length: WIDTHS[encoding] - 1 }, () => 0);
65
+ return isLittleEndian(encoding) ? [code, ...padding] : [...padding, code];
66
+ };
67
+ const encodeAscii = (text, encoding) => Uint8Array.from(Arr.flatMap(Arr.fromIterable(text), (c) => asciiUnit(c.charCodeAt(0), encoding)));
68
+ /**
69
+ * Decodes UTF-32, which the WHATWG `TextDecoder` does not support. A code
70
+ * point outside Unicode, or a surrogate, decodes to U+FFFD as `TextDecoder`
71
+ * would.
72
+ */
73
+ const decodeUtf32 = (bytes, littleEndian) => {
74
+ const data = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
75
+ const units = Math.floor(bytes.length / 4);
76
+ return Array.from({ length: units }, (_, i) => {
77
+ const code = data.getUint32(i * 4, littleEndian);
78
+ return code > 1114111 || code >= 55296 && code <= 57343 ? "�" : String.fromCodePoint(code);
79
+ }).join("");
80
+ };
81
+ const decode = (bytes, encoding) => WIDTHS[encoding] === 4 ? decodeUtf32(bytes, isLittleEndian(encoding)) : new TextDecoder(encoding).decode(bytes);
82
+ const bytesToString = (bytes) => new TextDecoder("windows-1252").decode(bytes);
83
+ const marker = (text, encoding) => bytesToString(encodeAscii(text, encoding));
84
+ const indexIn = (haystack, needle, from) => {
85
+ const i = haystack.indexOf(needle, from);
86
+ return i < 0 ? Option.none() : Option.some(i);
87
+ };
88
+ const isWritable = (text, trailer) => text.charAt(trailer + 14 + 1) === "w";
89
+ const findIn = (bytes, haystack, from) => {
90
+ const starts = Arr.getSomes(Arr.map(ENCODINGS, (encoding) => Option.map(indexIn(haystack, marker(HEADER, encoding), from), (offset) => ({
91
+ offset,
92
+ encoding
93
+ }))));
94
+ const first = Arr.head(Arr.sort(starts, Order.mapInput(Order.Number, (s) => s.offset)));
95
+ return Option.flatMap(first, ({ offset, encoding }) => {
96
+ const width = WIDTHS[encoding];
97
+ const end = Option.flatMap(indexIn(haystack, marker(TRAILER, encoding), offset + 16 * width), (trailer) => Option.map(indexIn(haystack, marker(PI_END, encoding), trailer + 14 * width), (close) => close + 2 * width));
98
+ return Option.map(end, (close) => {
99
+ const text = decode(bytes.subarray(offset, close), encoding);
100
+ return {
101
+ offset,
102
+ length: close - offset,
103
+ encoding,
104
+ writable: isWritable(text, text.lastIndexOf(TRAILER)),
105
+ text
106
+ };
107
+ });
108
+ });
109
+ };
110
+ /**
111
+ * Finds the first packet at or after `fromIndex` in a byte sequence: a file
112
+ * of any format, scanned without parsing it (ISO 16684-1 §7.3.2's packet
113
+ * scanning).
114
+ *
115
+ * @since 0.1.0
116
+ * @category scanning
117
+ */
118
+ const find = (bytes, fromIndex = 0) => findIn(bytes, bytesToString(bytes), fromIndex);
119
+ /**
120
+ * Finds every packet in a byte sequence, in order.
121
+ *
122
+ * @since 0.1.0
123
+ * @category scanning
124
+ */
125
+ const findAll = (bytes) => {
126
+ const haystack = bytesToString(bytes);
127
+ return Arr.unfold(0, (from) => Option.map(findIn(bytes, haystack, from), (p) => [p, p.offset + p.length]));
128
+ };
129
+ /**
130
+ * Splits a packet's text into the serialized XMP, the padding and the
131
+ * writability of its trailer. Returns `None` when the text is not a packet.
132
+ *
133
+ * @since 0.1.0
134
+ * @category parsing
135
+ */
136
+ const unwrap = (text) => Option.flatMap(indexIn(text, HEADER, 0), (start) => Option.flatMap(indexIn(text, PI_END, start), (headerEnd) => {
137
+ const trailer = text.lastIndexOf(TRAILER);
138
+ if (trailer < headerEnd) return Option.none();
139
+ const content = text.slice(headerEnd + 2, trailer).replace(/^\r?\n/, "");
140
+ const xml = content.trimEnd();
141
+ return Option.some({
142
+ xml,
143
+ padding: content.length - xml.length,
144
+ writable: isWritable(text, trailer)
145
+ });
146
+ }));
147
+ const header = `<?xpacket begin="" id="${PACKET_ID}"?>\n`;
148
+ const trailerOf = (writable) => `<?xpacket end="${writable ? "w" : "r"}"?>`;
149
+ /**
150
+ * Whitespace padding of exactly `bytes` bytes: lines of 99 spaces and a
151
+ * newline, as XMP writers lay it out.
152
+ *
153
+ * @since 0.1.0
154
+ * @category serializing
155
+ */
156
+ const padding = (bytes) => {
157
+ const lines = Math.floor(bytes / 100);
158
+ return `${`${" ".repeat(99)}\n`.repeat(lines)}${" ".repeat(bytes - lines * 100)}`;
159
+ };
160
+ const body = (xml) => xml.endsWith("\n") ? xml : `${xml}\n`;
161
+ /**
162
+ * Wraps serialized XMP (an `<x:xmpmeta>` element) in a UTF-8 packet.
163
+ *
164
+ * @since 0.1.0
165
+ * @category serializing
166
+ */
167
+ const wrap = (xml, options) => {
168
+ const writable = options?.writable ?? true;
169
+ const pad = options?.padding ?? (writable ? 2048 : 0);
170
+ return `${header}${body(xml)}${padding(pad)}${trailerOf(writable)}`;
171
+ };
172
+ /**
173
+ * The UTF-8 byte length of a string.
174
+ *
175
+ * @since 0.1.0
176
+ * @category serializing
177
+ */
178
+ const byteLength = (text) => new TextEncoder().encode(text).length;
179
+ /**
180
+ * Wraps serialized XMP in a UTF-8 packet of exactly `size` bytes, padding the
181
+ * difference: how an XMP packet is updated in place in a file. Returns
182
+ * `None` when the XMP does not fit.
183
+ *
184
+ * @since 0.1.0
185
+ * @category serializing
186
+ */
187
+ const wrapToSize = (xml, size, options) => {
188
+ const writable = options?.writable ?? true;
189
+ const fixed = byteLength(`${header}${body(xml)}${trailerOf(writable)}`);
190
+ return fixed > size ? Option.none() : Option.some(wrap(xml, {
191
+ writable,
192
+ padding: size - fixed
193
+ }));
194
+ };
195
+ export { find as a, unwrap as c, byteLength as i, wrap as l, PACKET_ID as n, findAll as o, Packet_exports as r, padding as s, DEFAULT_PADDING as t, wrapToSize as u };
196
+
197
+ //# sourceMappingURL=Packet-CA76wVX3.mjs.map