@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,346 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { l as resolve, u as withoutFragment } from "./Iri-Cr92gsQV.mjs";
3
+ import { a as make } from "./JsonLdError-C9J-BxfG.mjs";
4
+ import * as Arr from "effect/Array";
5
+ import * as Iterable from "effect/Iterable";
6
+ import * as MutableHashMap from "effect/MutableHashMap";
7
+ import * as Option from "effect/Option";
8
+ import * as Predicate from "effect/Predicate";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Record from "effect/Record";
11
+ import * as Context from "effect/Context";
12
+ import * as Layer from "effect/Layer";
13
+ import * as Result from "effect/Result";
14
+ import * as Headers from "effect/http/Headers";
15
+ import * as HttpClient from "effect/http/HttpClient";
16
+ import * as HttpClientRequest from "effect/http/HttpClientRequest";
17
+ import * as Ascii from "@thomasfosterau/effect-parse/Ascii";
18
+ import * as Compiler from "@thomasfosterau/effect-parse/Compiler";
19
+ import * as Parser from "@thomasfosterau/effect-parse/Parser";
20
+ import * as Token from "@thomasfosterau/effect-parse/Token";
21
+ // src/jsonld/internal/linkHeader.ts
22
+ /**
23
+ * HTTP `Link` header values (RFC 8288, §3) as an `@thomasfosterau/effect-parse`
24
+ * grammar. Like the user agents the RFC describes, it is lenient: it reads as
25
+ * many link values as it can and ignores what follows them.
26
+ *
27
+ * @internal
28
+ */
29
+ const space = " \r\n\f\v";
30
+ const ows = Token.takeWhile(space);
31
+ const linkTarget = Parser.delimited(Token.literal("<"), Token.takeTill(">"), Token.literal(">"));
32
+ const name = Token.takeTill([space, ";,="], { min: 1 }).pipe(Parser.map((n) => n.toLowerCase()));
33
+ /** `quoted-string`, with its `quoted-pair`s decoded. */
34
+ const quoted = Parser.delimited(Token.literal("\""), Ascii.escaped(Token.takeTill("\"\\", { min: 1 }), "\\", Token.any), Token.literal("\""));
35
+ const paramValue = Parser.alt(quoted, Token.takeTill([space, ";,"]));
36
+ const param = Parser.preceded(Parser.seq(ows, Token.literal(";"), ows), Parser.seq(name, Parser.alt(Parser.preceded(Parser.seq(ows, Token.literal("="), ows), paramValue), Parser.succeed(""))));
37
+ const linkValue = Parser.delimited(ows, Parser.seq(linkTarget, Parser.repeat(param).pipe(Parser.map(Record.fromEntries))), Parser.seq(ows, Parser.opt(Token.literal(",")))).pipe(Parser.map(([target, params]) => ({
38
+ target,
39
+ params
40
+ })));
41
+ const links = Compiler.jit(Parser.repeat(linkValue));
42
+ /** The links of a header value (up to the first that cannot be read). */
43
+ const parse = (value) => {
44
+ const result = Parser.parsePeek(links, value);
45
+ return Result.isSuccess(result) ? result.success[1] : [];
46
+ };
47
+ // src/jsonld/internal/json.ts
48
+ /**
49
+ * The one `JSON.parse` call of this package. It stays native because the
50
+ * engine's `SyntaxError` text is part of the parse error messages, and
51
+ * `Schema.fromJsonString` replaces it with a generic issue.
52
+ *
53
+ * @internal
54
+ */
55
+ /**
56
+ * Parses JSON text, failing with the engine's `SyntaxError`.
57
+ *
58
+ * @internal
59
+ */
60
+ const parseJson = (text) => Result.try({
61
+ try: () => JSON.parse(text),
62
+ catch: (e) => e instanceof SyntaxError ? e : new SyntaxError(String(e))
63
+ });
64
+ // src/jsonld/DocumentLoader.ts
65
+ /**
66
+ * Loading of remote JSON-LD documents and contexts.
67
+ *
68
+ * The `DocumentLoader` service retrieves documents by URL. Two layers are
69
+ * provided: `layerHttp`, backed by the Effect `HttpClient` and implementing
70
+ * the JSON-LD content-type and `Link` header rules, and `layerStatic`, which
71
+ * serves documents from an in-memory map (useful for tests, offline use and
72
+ * pinning well-known contexts).
73
+ *
74
+ * @since 0.1.0
75
+ */
76
+ var DocumentLoader_exports = /* @__PURE__ */ __exportAll({
77
+ DocumentLoader: () => DocumentLoader,
78
+ cached: () => cached,
79
+ extractHtml: () => extractHtml,
80
+ fromFetch: () => fromFetch,
81
+ fromResponse: () => fromResponse,
82
+ layer: () => layer,
83
+ layerHttp: () => layerHttp,
84
+ layerStatic: () => layerStatic,
85
+ makeHttp: () => makeHttp,
86
+ makeStatic: () => makeStatic,
87
+ none: () => none,
88
+ parseLinkHeader: () => parseLinkHeader
89
+ });
90
+ /**
91
+ * The document loader used to dereference remote documents and contexts.
92
+ *
93
+ * @since 0.1.0
94
+ * @category services
95
+ */
96
+ var DocumentLoader = class extends Context.Service()("@thomasfosterau/effect-rdf/jsonld/DocumentLoader") {};
97
+ const CONTEXT_REL = "http://www.w3.org/ns/json-ld#context";
98
+ /**
99
+ * Parses HTTP `Link` header values (RFC 8288).
100
+ *
101
+ * @since 0.1.0
102
+ * @category utils
103
+ */
104
+ const parseLinkHeader = (header) => (Predicate.isString(header) ? [header] : header).flatMap(parse);
105
+ /** The media type of a `Content-Type` value: lower-cased, without parameters. */
106
+ const mediaTypeOf = (contentType) => Option.map(contentType, (ct) => {
107
+ const semicolon = ct.indexOf(";");
108
+ return (semicolon === -1 ? ct : ct.slice(0, semicolon)).trim().toLowerCase();
109
+ });
110
+ const PROFILE = /;\s*profile\s*=\s*("([^"]*)"|[^;\s]*)/i;
111
+ /** The `profile` parameter of a `Content-Type` value. */
112
+ const profileOf = (contentType) => Option.flatMap(contentType, (ct) => {
113
+ const m = PROFILE.exec(ct);
114
+ return m === null ? Option.none() : Option.fromUndefinedOr(m[2] ?? m[1]);
115
+ });
116
+ const isJsonMediaType = (mt) => Option.exists(mt, (t) => t === "application/json" || t === "application/ld+json" || t.endsWith("+json"));
117
+ const isJsonLdMediaType = (mt) => Option.exists(mt, (t) => t === "application/ld+json");
118
+ const isHtmlMediaType = (mt) => Option.exists(mt, (t) => t === "text/html" || t === "application/xhtml+xml");
119
+ const loadingFailed = (url, reason) => make("loading document failed", `${url}: ${reason}`);
120
+ /**
121
+ * Interprets a response following the JSON-LD rules for media types and
122
+ * `Link` headers (JSON-LD 1.1 API §9.4, LoadDocumentCallback).
123
+ *
124
+ * @since 0.1.0
125
+ * @category constructors
126
+ */
127
+ const fromResponse = (response, options) => Effect.suspend(() => {
128
+ if (response.status !== void 0 && (response.status < 200 || response.status >= 300)) return Effect.fail(loadingFailed(response.url, `HTTP status ${response.status}`));
129
+ const contentType = Option.fromUndefinedOr(response.contentType);
130
+ const mt = mediaTypeOf(contentType);
131
+ const links = response.link === void 0 ? [] : parseLinkHeader(response.link);
132
+ if (!isJsonLdMediaType(mt) && !isJsonMediaType(mt)) {
133
+ const alternate = links.find((l) => l.params["rel"]?.split(/\s+/).includes("alternate") === true && l.params["type"] === "application/ld+json");
134
+ if (alternate !== void 0) return Effect.succeed({
135
+ _tag: "Alternate",
136
+ url: resolve(alternate.target, response.url)
137
+ });
138
+ }
139
+ const contextLinks = !isJsonLdMediaType(mt) && isJsonMediaType(mt) ? links.filter((l) => l.params["rel"]?.split(/\s+/).includes(CONTEXT_REL) === true) : [];
140
+ if (contextLinks.length > 1) return Effect.fail(make("multiple context link headers", response.url));
141
+ const contextUrl = Option.getOrUndefined(Option.map(Arr.head(contextLinks), (l) => resolve(l.target, response.url)));
142
+ if (isHtmlMediaType(mt)) return Effect.map(extractHtml(response.body, response.url, options), (r) => ({
143
+ _tag: "Document",
144
+ document: {
145
+ ...r,
146
+ contentType: Option.getOrUndefined(mt),
147
+ contextUrl
148
+ }
149
+ }));
150
+ if (!isJsonMediaType(mt)) return Effect.fail(loadingFailed(response.url, `unsupported content type ${String(Option.getOrUndefined(mt))}`));
151
+ return Result.match(parseJson(response.body), {
152
+ onFailure: (e) => Effect.fail(loadingFailed(response.url, `invalid JSON: ${String(e)}`)),
153
+ onSuccess: (document) => Effect.succeed({
154
+ _tag: "Document",
155
+ document: {
156
+ documentUrl: response.url,
157
+ document,
158
+ contentType: Option.getOrUndefined(mt),
159
+ contextUrl,
160
+ profile: Option.getOrUndefined(profileOf(contentType))
161
+ }
162
+ })
163
+ });
164
+ });
165
+ const ENTITIES = {
166
+ amp: "&",
167
+ lt: "<",
168
+ gt: ">",
169
+ quot: "\"",
170
+ apos: "'"
171
+ };
172
+ const decodeEntities = (s) => s.replace(/&(#x[0-9a-fA-F]+|#[0-9]+|amp|lt|gt|quot|apos);/g, (_, e) => {
173
+ if (e.startsWith("#x")) return String.fromCodePoint(parseInt(e.slice(2), 16));
174
+ if (e.startsWith("#")) return String.fromCodePoint(parseInt(e.slice(1), 10));
175
+ return ENTITIES[e] ?? "";
176
+ });
177
+ /** An element's attributes, by lower-cased name. */
178
+ const attributes = (tag) => {
179
+ const out = MutableHashMap.empty();
180
+ const body = tag.replace(/^<\s*[^\s>]+/, "").replace(/\/?>$/, "");
181
+ Iterable.forEach(body.matchAll(/([^\s=/>]+)(?:\s*=\s*("([^"]*)"|'([^']*)'|([^\s>]+)))?/g), (m) => {
182
+ const name = m[1];
183
+ if (name !== void 0) MutableHashMap.set(out, name.toLowerCase(), decodeEntities(m[3] ?? m[4] ?? m[5] ?? ""));
184
+ });
185
+ return out;
186
+ };
187
+ const attribute = (attrs, name) => MutableHashMap.get(attrs, name);
188
+ const parseScript = (content) => Result.mapError(parseJson(content), (e) => make("invalid script element", String(e)));
189
+ /**
190
+ * Extracts embedded JSON-LD from an HTML document (`<script
191
+ * type="application/ld+json">` elements), honouring a fragment identifier
192
+ * that selects a script by `id`, and the HTML `<base>` element.
193
+ *
194
+ * @since 0.1.0
195
+ * @category utils
196
+ */
197
+ const extractHtml = (html, url, options) => Effect.suspend(() => {
198
+ const base = /<base\s[^>]*>/i.exec(html);
199
+ const documentUrl = Option.getOrElse(Option.map(Option.flatMap(Option.fromNullOr(base), (b) => attribute(attributes(b[0]), "href")), (href) => resolve(href, url)), () => url);
200
+ const hash = url.indexOf("#");
201
+ const fragment = hash === -1 ? "" : decodeURIComponent(url.slice(hash + 1));
202
+ const scripts = [];
203
+ Iterable.forEach(html.matchAll(/<script(\s[^>]*)?>([\s\S]*?)<\/script\s*>/gi), (m) => {
204
+ const attrs = attributes(`<script${m[1] ?? ""}>`);
205
+ if (isJsonLdMediaType(mediaTypeOf(attribute(attrs, "type")))) scripts.push({
206
+ attrs,
207
+ content: m[2] ?? ""
208
+ });
209
+ });
210
+ const remote = (document) => Effect.fromResult(Result.map(document, (d) => ({
211
+ documentUrl,
212
+ document: d
213
+ })));
214
+ if (fragment !== "") {
215
+ const script = scripts.find((s) => Option.exists(attribute(s.attrs, "id"), (id) => id === fragment));
216
+ if (script === void 0) return Effect.fail(loadingFailed(url, `no script element with id ${fragment}`));
217
+ return remote(parseScript(script.content));
218
+ }
219
+ if (options?.extractAllScripts === true) return remote(Result.map(Result.all(scripts.map((s) => parseScript(s.content))), (values) => values.flatMap((v) => Array.isArray(v) ? v : [v])));
220
+ return Option.match(Arr.head(scripts), {
221
+ onNone: () => Effect.fail(loadingFailed(url, "no JSON-LD script element")),
222
+ onSome: (script) => remote(parseScript(script.content))
223
+ });
224
+ });
225
+ /**
226
+ * Builds a loader from a function fetching raw responses. Responses are
227
+ * interpreted with `fromResponse`; alternate links are followed.
228
+ *
229
+ * @since 0.1.0
230
+ * @category constructors
231
+ */
232
+ const fromFetch = (fetchResponse) => {
233
+ const load = (url, depth, options) => fetchResponse(url, options).pipe(Effect.flatMap((response) => fromResponse(response, options)), Effect.flatMap((r) => {
234
+ if (Predicate.isTagged(r, "Document")) return Effect.succeed(r.document);
235
+ if (depth > 5) return Effect.fail(loadingFailed(url, "too many alternate links"));
236
+ return load(r.url, depth + 1, options);
237
+ }));
238
+ return { load: (url, options) => load(url, 0, options).pipe(Effect.withSpan("DocumentLoader.load", { attributes: { "url.full": url } })) };
239
+ };
240
+ /**
241
+ * Wraps a loader with an in-memory cache of successfully loaded documents.
242
+ *
243
+ * @since 0.1.0
244
+ * @category combinators
245
+ */
246
+ const cached = (loader) => {
247
+ const cache = MutableHashMap.empty();
248
+ return { load: (url, options) => Effect.suspend(() => {
249
+ const key = `${options?.extractAllScripts === true ? "*" : ""}${url}`;
250
+ return Option.match(MutableHashMap.get(cache, key), {
251
+ onSome: (hit) => Effect.succeed(hit),
252
+ onNone: () => Effect.tap(loader.load(url, options), (doc) => Effect.sync(() => MutableHashMap.set(cache, key, doc)))
253
+ });
254
+ }) };
255
+ };
256
+ /**
257
+ * A loader serving documents from a map of URL to document. Values may be
258
+ * parsed JSON, JSON text, or complete `RemoteDocument`s. Unknown URLs fail
259
+ * with `loading document failed`.
260
+ *
261
+ * @since 0.1.0
262
+ * @category constructors
263
+ */
264
+ const makeStatic = (documents) => {
265
+ const lookup = (key) => {
266
+ if (isMap(documents)) return documents.has(key) ? Option.some(documents.get(key)) : Option.none();
267
+ return Object.hasOwn(documents, key) ? Option.some(documents[key]) : Option.none();
268
+ };
269
+ return { load: (url) => Effect.suspend(() => {
270
+ const found = lookup(withoutFragment(url));
271
+ if (Option.isNone(found)) return Effect.fail(loadingFailed(url, "not found"));
272
+ const value = found.value;
273
+ if (isRemoteDocument(value)) return Effect.succeed(value);
274
+ if (Predicate.isString(value)) return Result.match(parseJson(value), {
275
+ onFailure: (e) => Effect.fail(loadingFailed(url, `invalid JSON: ${String(e)}`)),
276
+ onSuccess: (document) => Effect.succeed({
277
+ documentUrl: url,
278
+ document,
279
+ contentType: "application/ld+json"
280
+ })
281
+ });
282
+ return Effect.succeed({
283
+ documentUrl: url,
284
+ document: value,
285
+ contentType: "application/ld+json"
286
+ });
287
+ }) };
288
+ };
289
+ const isMap = (documents) => documents instanceof Map;
290
+ const isRemoteDocument = (u) => Predicate.hasProperty(u, "documentUrl") && Predicate.hasProperty(u, "document") && Predicate.isString(u.documentUrl);
291
+ /**
292
+ * A loader that fails for every URL (no remote loading).
293
+ *
294
+ * @since 0.1.0
295
+ * @category constructors
296
+ */
297
+ const none = { load: (url) => Effect.fail(loadingFailed(url, "remote documents are disabled")) };
298
+ /**
299
+ * Provides a static, in-memory `DocumentLoader`.
300
+ *
301
+ * @since 0.1.0
302
+ * @category layers
303
+ */
304
+ const layerStatic = (documents) => Layer.succeed(DocumentLoader, makeStatic(documents));
305
+ /**
306
+ * Provides a `DocumentLoader` from a loader implementation.
307
+ *
308
+ * @since 0.1.0
309
+ * @category layers
310
+ */
311
+ const layer = (loader) => Layer.succeed(DocumentLoader, loader);
312
+ const ACCEPT = "application/ld+json, application/json;q=0.9, text/html;q=0.8, application/xhtml+xml;q=0.8, */*;q=0.1";
313
+ /**
314
+ * Builds a loader on top of an `HttpClient`.
315
+ *
316
+ * @since 0.1.0
317
+ * @category constructors
318
+ */
319
+ const makeHttp = Effect.map(HttpClient.HttpClient, (client) => {
320
+ const fetchResponse = (url, options) => Effect.gen(function* () {
321
+ const accept = options?.profile !== void 0 ? `application/ld+json;profile="${options.profile}", ${ACCEPT}` : ACCEPT;
322
+ const request = HttpClientRequest.get(withoutFragment(url)).pipe(HttpClientRequest.setHeader("accept", accept));
323
+ const response = yield* client.execute(request);
324
+ const body = yield* response.text;
325
+ const finalUrl = response.url === "" ? url : response.url;
326
+ const hash = url.indexOf("#");
327
+ return {
328
+ url: hash === -1 ? finalUrl : finalUrl + url.slice(hash),
329
+ status: response.status,
330
+ contentType: Option.getOrUndefined(Headers.get(response.headers, "content-type")),
331
+ link: Option.getOrUndefined(Headers.get(response.headers, "link")),
332
+ body
333
+ };
334
+ }).pipe(Effect.mapError((e) => loadingFailed(url, String(e))));
335
+ return cached(fromFetch(fetchResponse));
336
+ });
337
+ /**
338
+ * A caching `DocumentLoader` backed by the Effect `HttpClient`.
339
+ *
340
+ * @since 0.1.0
341
+ * @category layers
342
+ */
343
+ const layerHttp = Layer.effect(DocumentLoader, makeHttp);
344
+ export { fromFetch as a, layerHttp as c, makeStatic as d, none as f, extractHtml as i, layerStatic as l, parseJson as m, DocumentLoader_exports as n, fromResponse as o, parseLinkHeader as p, cached as r, layer as s, DocumentLoader as t, makeHttp as u };
345
+
346
+ //# sourceMappingURL=DocumentLoader-D3lZREnB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentLoader-D3lZREnB.mjs","names":["LinkHeader.parse","JsonLdError.make","Iri.resolve","Iri.withoutFragment"],"sources":["../src/jsonld/internal/linkHeader.ts","../src/jsonld/internal/json.ts","../src/jsonld/DocumentLoader.ts"],"sourcesContent":["/**\n * HTTP `Link` header values (RFC 8288, §3) as an `@thomasfosterau/effect-parse`\n * grammar. Like the user agents the RFC describes, it is lenient: it reads as\n * many link values as it can and ignores what follows them.\n *\n * @internal\n */\nimport * as Ascii from '@thomasfosterau/effect-parse/Ascii';\nimport * as Compiler from '@thomasfosterau/effect-parse/Compiler';\nimport * as Parser from '@thomasfosterau/effect-parse/Parser';\nimport * as Token from '@thomasfosterau/effect-parse/Token';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\n\n/** @internal */\nexport interface Link {\n readonly target: string;\n readonly params: Readonly<Record<string, string>>;\n}\n\nconst space = ' \\t\\r\\n\\f\\v';\nconst ows = Token.takeWhile(space);\n\nconst linkTarget = Parser.delimited(Token.literal('<'), Token.takeTill('>'), Token.literal('>'));\n\nconst name = Token.takeTill([space, ';,='], { min: 1 }).pipe(Parser.map((n) => n.toLowerCase()));\n\n/** `quoted-string`, with its `quoted-pair`s decoded. */\nconst quoted = Parser.delimited(\n Token.literal('\"'),\n Ascii.escaped(Token.takeTill('\"\\\\', { min: 1 }), '\\\\', Token.any),\n Token.literal('\"'),\n);\n\nconst paramValue = Parser.alt(quoted, Token.takeTill([space, ';,']));\n\nconst param = Parser.preceded(\n Parser.seq(ows, Token.literal(';'), ows),\n Parser.seq(\n name,\n Parser.alt(\n Parser.preceded(Parser.seq(ows, Token.literal('='), ows), paramValue),\n Parser.succeed(''),\n ),\n ),\n);\n\nconst linkValue = Parser.delimited(\n ows,\n Parser.seq(linkTarget, Parser.repeat(param).pipe(Parser.map(Record.fromEntries))),\n Parser.seq(ows, Parser.opt(Token.literal(','))),\n).pipe(Parser.map(([target, params]): Link => ({ target, params })));\n\nconst links = Compiler.jit(Parser.repeat(linkValue));\n\n/** The links of a header value (up to the first that cannot be read). */\nexport const parse = (value: string): ReadonlyArray<Link> => {\n const result = Parser.parsePeek(links, value);\n return Result.isSuccess(result) ? result.success[1] : [];\n};\n","/**\n * The one `JSON.parse` call of this package. It stays native because the\n * engine's `SyntaxError` text is part of the parse error messages, and\n * `Schema.fromJsonString` replaces it with a generic issue.\n *\n * @internal\n */\nimport * as Result from 'effect/Result';\n\n/**\n * Parses JSON text, failing with the engine's `SyntaxError`.\n *\n * @internal\n */\nexport const parseJson = (text: string): Result.Result<unknown, SyntaxError> =>\n Result.try({\n try: () => JSON.parse(text),\n catch: (e) => (e instanceof SyntaxError ? e : new SyntaxError(String(e))),\n });\n","/**\n * Loading of remote JSON-LD documents and contexts.\n *\n * The `DocumentLoader` service retrieves documents by URL. Two layers are\n * provided: `layerHttp`, backed by the Effect `HttpClient` and implementing\n * the JSON-LD content-type and `Link` header rules, and `layerStatic`, which\n * serves documents from an in-memory map (useful for tests, offline use and\n * pinning well-known contexts).\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Iterable from 'effect/Iterable';\nimport * as Layer from 'effect/Layer';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport * as Result from 'effect/Result';\nimport * as Headers from 'effect/http/Headers';\nimport * as HttpClient from 'effect/http/HttpClient';\nimport * as HttpClientRequest from 'effect/http/HttpClientRequest';\nimport * as Iri from '../Iri.ts';\nimport * as LinkHeader from './internal/linkHeader.ts';\nimport { parseJson } from './internal/json.ts';\nimport * as JsonLdError from './JsonLdError.ts';\nimport * as Predicate from 'effect/Predicate';\n\n/**\n * A loaded document (the `RemoteDocument` interface of the JSON-LD API).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface RemoteDocument {\n /** The final URL of the document, after redirects. */\n readonly documentUrl: string;\n /** The parsed JSON document. */\n readonly document: unknown;\n /** The media type of the response, without parameters. */\n readonly contentType?: string | undefined;\n /** The URL of a context referenced by an HTTP `Link` header. */\n readonly contextUrl?: string | undefined;\n /** The `profile` media type parameter, if any. */\n readonly profile?: string | undefined;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface LoadOptions {\n /** A profile to request, e.g. `http://www.w3.org/ns/json-ld#context`. */\n readonly profile?: string | undefined;\n /** Extract all JSON-LD script elements from HTML documents. */\n readonly extractAllScripts?: boolean | undefined;\n}\n\n/**\n * The service shape.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Loader {\n readonly load: (\n url: string,\n options?: LoadOptions,\n ) => Effect.Effect<RemoteDocument, JsonLdError.JsonLdError>;\n}\n\n/**\n * The document loader used to dereference remote documents and contexts.\n *\n * @since 0.1.0\n * @category services\n */\nexport class DocumentLoader extends Context.Service<DocumentLoader, Loader>()(\n '@thomasfosterau/effect-rdf/jsonld/DocumentLoader',\n) {}\n\n/**\n * A raw HTTP-like response, interpreted with `fromResponse`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Response {\n /** The final URL after redirects. */\n readonly url: string;\n readonly status?: number | undefined;\n /** The `Content-Type` header. */\n readonly contentType?: string | undefined;\n /** The `Link` header value(s). */\n readonly link?: string | ReadonlyArray<string> | undefined;\n readonly body: string;\n}\n\nconst CONTEXT_REL = 'http://www.w3.org/ns/json-ld#context';\n\n/**\n * A parsed entry of an HTTP `Link` header.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Link {\n readonly target: string;\n readonly params: Readonly<Record<string, string>>;\n}\n\n/**\n * Parses HTTP `Link` header values (RFC 8288).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const parseLinkHeader = (header: string | ReadonlyArray<string>): ReadonlyArray<Link> =>\n (Predicate.isString(header) ? [header] : header).flatMap(LinkHeader.parse);\n\n/** The media type of a `Content-Type` value: lower-cased, without parameters. */\nconst mediaTypeOf = (contentType: Option.Option<string>): Option.Option<string> =>\n Option.map(contentType, (ct) => {\n const semicolon = ct.indexOf(';');\n return (semicolon === -1 ? ct : ct.slice(0, semicolon)).trim().toLowerCase();\n });\n\nconst PROFILE = /;\\s*profile\\s*=\\s*(\"([^\"]*)\"|[^;\\s]*)/i;\n\n/** The `profile` parameter of a `Content-Type` value. */\nconst profileOf = (contentType: Option.Option<string>): Option.Option<string> =>\n Option.flatMap(contentType, (ct) => {\n const m = PROFILE.exec(ct);\n return m === null ? Option.none() : Option.fromUndefinedOr(m[2] ?? m[1]);\n });\n\nconst isJsonMediaType = (mt: Option.Option<string>): boolean =>\n Option.exists(\n mt,\n (t) => t === 'application/json' || t === 'application/ld+json' || t.endsWith('+json'),\n );\n\nconst isJsonLdMediaType = (mt: Option.Option<string>): boolean =>\n Option.exists(mt, (t) => t === 'application/ld+json');\n\nconst isHtmlMediaType = (mt: Option.Option<string>): boolean =>\n Option.exists(mt, (t) => t === 'text/html' || t === 'application/xhtml+xml');\n\nconst loadingFailed = (url: string, reason: string) =>\n JsonLdError.make('loading document failed', `${url}: ${reason}`);\n\n/**\n * The result of interpreting a response: either a document, or a redirect\n * to an alternate JSON-LD representation.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Interpreted =\n | { readonly _tag: 'Document'; readonly document: RemoteDocument }\n | { readonly _tag: 'Alternate'; readonly url: string };\n\n/**\n * Interprets a response following the JSON-LD rules for media types and\n * `Link` headers (JSON-LD 1.1 API §9.4, LoadDocumentCallback).\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromResponse = (\n response: Response,\n options?: LoadOptions,\n): Effect.Effect<Interpreted, JsonLdError.JsonLdError> =>\n Effect.suspend((): Effect.Effect<Interpreted, JsonLdError.JsonLdError> => {\n if (response.status !== undefined && (response.status < 200 || response.status >= 300)) {\n return Effect.fail(loadingFailed(response.url, `HTTP status ${response.status}`));\n }\n const contentType = Option.fromUndefinedOr(response.contentType);\n const mt = mediaTypeOf(contentType);\n const links = response.link === undefined ? [] : parseLinkHeader(response.link);\n if (!isJsonLdMediaType(mt) && !isJsonMediaType(mt)) {\n const alternate = links.find(\n (l) =>\n l.params['rel']?.split(/\\s+/).includes('alternate') === true &&\n l.params['type'] === 'application/ld+json',\n );\n if (alternate !== undefined) {\n return Effect.succeed({\n _tag: 'Alternate' as const,\n url: Iri.resolve(alternate.target, response.url),\n });\n }\n }\n const contextLinks =\n !isJsonLdMediaType(mt) && isJsonMediaType(mt)\n ? links.filter((l) => l.params['rel']?.split(/\\s+/).includes(CONTEXT_REL) === true)\n : [];\n if (contextLinks.length > 1) {\n return Effect.fail(JsonLdError.make('multiple context link headers', response.url));\n }\n const contextUrl = Option.getOrUndefined(\n Option.map(Arr.head(contextLinks), (l) => Iri.resolve(l.target, response.url)),\n );\n if (isHtmlMediaType(mt)) {\n return Effect.map(extractHtml(response.body, response.url, options), (r) => ({\n _tag: 'Document' as const,\n document: { ...r, contentType: Option.getOrUndefined(mt), contextUrl },\n }));\n }\n if (!isJsonMediaType(mt)) {\n return Effect.fail(\n loadingFailed(\n response.url,\n `unsupported content type ${String(Option.getOrUndefined(mt))}`,\n ),\n );\n }\n return Result.match(parseJson(response.body), {\n onFailure: (e) => Effect.fail(loadingFailed(response.url, `invalid JSON: ${String(e)}`)),\n onSuccess: (document) =>\n Effect.succeed({\n _tag: 'Document' as const,\n document: {\n documentUrl: response.url,\n document,\n contentType: Option.getOrUndefined(mt),\n contextUrl,\n profile: Option.getOrUndefined(profileOf(contentType)),\n },\n }),\n });\n });\n\nconst ENTITIES: Readonly<Record<string, string>> = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n};\n\nconst decodeEntities = (s: string): string =>\n s.replace(/&(#x[0-9a-fA-F]+|#[0-9]+|amp|lt|gt|quot|apos);/g, (_, e: string) => {\n if (e.startsWith('#x')) return String.fromCodePoint(parseInt(e.slice(2), 16));\n if (e.startsWith('#')) return String.fromCodePoint(parseInt(e.slice(1), 10));\n // The pattern admits only the named entities in `ENTITIES`.\n return ENTITIES[e] ?? '';\n });\n\ntype Attributes = MutableHashMap.MutableHashMap<string, string>;\n\n/** An element's attributes, by lower-cased name. */\nconst attributes = (tag: string): Attributes => {\n const out: Attributes = MutableHashMap.empty();\n const body = tag.replace(/^<\\s*[^\\s>]+/, '').replace(/\\/?>$/, '');\n Iterable.forEach(\n body.matchAll(/([^\\s=/>]+)(?:\\s*=\\s*(\"([^\"]*)\"|'([^']*)'|([^\\s>]+)))?/g),\n (m) => {\n const name = m[1];\n if (name !== undefined) {\n MutableHashMap.set(out, name.toLowerCase(), decodeEntities(m[3] ?? m[4] ?? m[5] ?? ''));\n }\n },\n );\n return out;\n};\n\nconst attribute = (attrs: Attributes, name: string): Option.Option<string> =>\n MutableHashMap.get(attrs, name);\n\nconst parseScript = (content: string) =>\n Result.mapError(parseJson(content), (e) => JsonLdError.make('invalid script element', String(e)));\n\n/**\n * Extracts embedded JSON-LD from an HTML document (`<script\n * type=\"application/ld+json\">` elements), honouring a fragment identifier\n * that selects a script by `id`, and the HTML `<base>` element.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const extractHtml = (\n html: string,\n url: string,\n options?: LoadOptions,\n): Effect.Effect<RemoteDocument, JsonLdError.JsonLdError> =>\n Effect.suspend(() => {\n const base = /<base\\s[^>]*>/i.exec(html);\n const documentUrl = Option.getOrElse(\n Option.map(\n Option.flatMap(Option.fromNullOr(base), (b) => attribute(attributes(b[0]), 'href')),\n (href) => Iri.resolve(href, url),\n ),\n () => url,\n );\n const hash = url.indexOf('#');\n const fragment = hash === -1 ? '' : decodeURIComponent(url.slice(hash + 1));\n const scripts: Array<{ attrs: Attributes; content: string }> = [];\n Iterable.forEach(html.matchAll(/<script(\\s[^>]*)?>([\\s\\S]*?)<\\/script\\s*>/gi), (m) => {\n const attrs = attributes(`<script${m[1] ?? ''}>`);\n if (isJsonLdMediaType(mediaTypeOf(attribute(attrs, 'type')))) {\n scripts.push({ attrs, content: m[2] ?? '' });\n }\n });\n const remote = (document: Result.Result<unknown, JsonLdError.JsonLdError>) =>\n Effect.fromResult(\n Result.map(document, (d): RemoteDocument => ({ documentUrl, document: d })),\n );\n if (fragment !== '') {\n const script = scripts.find((s) =>\n Option.exists(attribute(s.attrs, 'id'), (id) => id === fragment),\n );\n if (script === undefined) {\n return Effect.fail(loadingFailed(url, `no script element with id ${fragment}`));\n }\n return remote(parseScript(script.content));\n }\n if (options?.extractAllScripts === true) {\n return remote(\n Result.map(Result.all(scripts.map((s) => parseScript(s.content))), (values) =>\n values.flatMap((v) => (Array.isArray(v) ? v : [v])),\n ),\n );\n }\n return Option.match(Arr.head(scripts), {\n onNone: () => Effect.fail(loadingFailed(url, 'no JSON-LD script element')),\n onSome: (script) => remote(parseScript(script.content)),\n });\n });\n\n/**\n * Builds a loader from a function fetching raw responses. Responses are\n * interpreted with `fromResponse`; alternate links are followed.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromFetch = (\n fetchResponse: (\n url: string,\n options?: LoadOptions,\n ) => Effect.Effect<Response, JsonLdError.JsonLdError>,\n): Loader => {\n const load = (\n url: string,\n depth: number,\n options?: LoadOptions,\n ): Effect.Effect<RemoteDocument, JsonLdError.JsonLdError> =>\n fetchResponse(url, options).pipe(\n Effect.flatMap((response) => fromResponse(response, options)),\n Effect.flatMap((r) => {\n if (Predicate.isTagged(r, 'Document')) return Effect.succeed(r.document);\n if (depth > 5) return Effect.fail(loadingFailed(url, 'too many alternate links'));\n return load(r.url, depth + 1, options);\n }),\n );\n return {\n load: (url, options) =>\n load(url, 0, options).pipe(\n Effect.withSpan('DocumentLoader.load', { attributes: { 'url.full': url } }),\n ),\n };\n};\n\n/**\n * Wraps a loader with an in-memory cache of successfully loaded documents.\n *\n * @since 0.1.0\n * @category combinators\n */\nexport const cached = (loader: Loader): Loader => {\n const cache = MutableHashMap.empty<string, RemoteDocument>();\n return {\n load: (url, options) =>\n Effect.suspend(() => {\n const key = `${options?.extractAllScripts === true ? '*' : ''}${url}`;\n return Option.match(MutableHashMap.get(cache, key), {\n onSome: (hit) => Effect.succeed(hit),\n onNone: () =>\n Effect.tap(loader.load(url, options), (doc) =>\n Effect.sync(() => MutableHashMap.set(cache, key, doc)),\n ),\n });\n }),\n };\n};\n\n/**\n * A loader serving documents from a map of URL to document. Values may be\n * parsed JSON, JSON text, or complete `RemoteDocument`s. Unknown URLs fail\n * with `loading document failed`.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const makeStatic = (\n documents: Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>,\n): Loader => {\n // A `Map` is read as one; any other value as a record of URL to document.\n const lookup = (key: string): Option.Option<unknown> => {\n if (isMap(documents))\n return documents.has(key) ? Option.some(documents.get(key)) : Option.none();\n return Object.hasOwn(documents, key) ? Option.some(documents[key]) : Option.none();\n };\n return {\n load: (url) =>\n Effect.suspend(() => {\n const found = lookup(Iri.withoutFragment(url));\n if (Option.isNone(found)) return Effect.fail(loadingFailed(url, 'not found'));\n const value = found.value;\n if (isRemoteDocument(value)) return Effect.succeed(value);\n if (Predicate.isString(value)) {\n return Result.match(parseJson(value), {\n onFailure: (e) => Effect.fail(loadingFailed(url, `invalid JSON: ${String(e)}`)),\n onSuccess: (document) =>\n Effect.succeed({ documentUrl: url, document, contentType: 'application/ld+json' }),\n });\n }\n return Effect.succeed({\n documentUrl: url,\n document: value,\n contentType: 'application/ld+json',\n });\n }),\n };\n};\n\nconst isMap = (\n documents: Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>,\n): documents is ReadonlyMap<string, unknown> => documents instanceof Map;\n\nconst isRemoteDocument = (u: unknown): u is RemoteDocument =>\n Predicate.hasProperty(u, 'documentUrl') &&\n Predicate.hasProperty(u, 'document') &&\n Predicate.isString(u.documentUrl);\n\n/**\n * A loader that fails for every URL (no remote loading).\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const none: Loader = {\n load: (url) => Effect.fail(loadingFailed(url, 'remote documents are disabled')),\n};\n\n/**\n * Provides a static, in-memory `DocumentLoader`.\n *\n * @since 0.1.0\n * @category layers\n */\nexport const layerStatic = (\n documents: Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>,\n): Layer.Layer<DocumentLoader> => Layer.succeed(DocumentLoader, makeStatic(documents));\n\n/**\n * Provides a `DocumentLoader` from a loader implementation.\n *\n * @since 0.1.0\n * @category layers\n */\nexport const layer = (loader: Loader): Layer.Layer<DocumentLoader> =>\n Layer.succeed(DocumentLoader, loader);\n\nconst ACCEPT =\n 'application/ld+json, application/json;q=0.9, text/html;q=0.8, application/xhtml+xml;q=0.8, */*;q=0.1';\n\n/**\n * Builds a loader on top of an `HttpClient`.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const makeHttp: Effect.Effect<Loader, never, HttpClient.HttpClient> = Effect.map(\n HttpClient.HttpClient,\n (client) => {\n const fetchResponse = (url: string, options?: LoadOptions) =>\n Effect.gen(function* () {\n const accept =\n options?.profile !== undefined\n ? `application/ld+json;profile=\"${options.profile}\", ${ACCEPT}`\n : ACCEPT;\n const request = HttpClientRequest.get(Iri.withoutFragment(url)).pipe(\n HttpClientRequest.setHeader('accept', accept),\n );\n const response = yield* client.execute(request);\n const body = yield* response.text;\n const finalUrl = response.url === '' ? url : response.url;\n const hash = url.indexOf('#');\n return {\n url: hash === -1 ? finalUrl : finalUrl + url.slice(hash),\n status: response.status,\n contentType: Option.getOrUndefined(Headers.get(response.headers, 'content-type')),\n link: Option.getOrUndefined(Headers.get(response.headers, 'link')),\n body,\n } satisfies Response;\n }).pipe(Effect.mapError((e) => loadingFailed(url, String(e))));\n return cached(fromFetch(fetchResponse));\n },\n);\n\n/**\n * A caching `DocumentLoader` backed by the Effect `HttpClient`.\n *\n * @since 0.1.0\n * @category layers\n */\nexport const layerHttp: Layer.Layer<DocumentLoader, never, HttpClient.HttpClient> = Layer.effect(\n DocumentLoader,\n makeHttp,\n);\n"],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { n as JsonLdError } from "./JsonLdError-DSOfHkOy.mjs";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Context from "effect/Context";
4
+ import * as Layer from "effect/Layer";
5
+ import * as HttpClient from "effect/http/HttpClient";
6
+ declare namespace DocumentLoader_d_exports {
7
+ export { DocumentLoader, Interpreted, Link, LoadOptions, Loader, RemoteDocument, Response, cached, extractHtml, fromFetch, fromResponse, layer, layerHttp, layerStatic, makeHttp, makeStatic, none, parseLinkHeader };
8
+ }
9
+ /**
10
+ * A loaded document (the `RemoteDocument` interface of the JSON-LD API).
11
+ *
12
+ * @since 0.1.0
13
+ * @category models
14
+ */
15
+ interface RemoteDocument {
16
+ /** The final URL of the document, after redirects. */
17
+ readonly documentUrl: string;
18
+ /** The parsed JSON document. */
19
+ readonly document: unknown;
20
+ /** The media type of the response, without parameters. */
21
+ readonly contentType?: string | undefined;
22
+ /** The URL of a context referenced by an HTTP `Link` header. */
23
+ readonly contextUrl?: string | undefined;
24
+ /** The `profile` media type parameter, if any. */
25
+ readonly profile?: string | undefined;
26
+ }
27
+ /**
28
+ * @since 0.1.0
29
+ * @category models
30
+ */
31
+ interface LoadOptions {
32
+ /** A profile to request, e.g. `http://www.w3.org/ns/json-ld#context`. */
33
+ readonly profile?: string | undefined;
34
+ /** Extract all JSON-LD script elements from HTML documents. */
35
+ readonly extractAllScripts?: boolean | undefined;
36
+ }
37
+ /**
38
+ * The service shape.
39
+ *
40
+ * @since 0.1.0
41
+ * @category models
42
+ */
43
+ interface Loader {
44
+ readonly load: (url: string, options?: LoadOptions) => Effect.Effect<RemoteDocument, JsonLdError>;
45
+ }
46
+ declare const DocumentLoader_base: Context.ServiceClass<DocumentLoader, "@thomasfosterau/effect-rdf/jsonld/DocumentLoader", Loader>;
47
+ /**
48
+ * The document loader used to dereference remote documents and contexts.
49
+ *
50
+ * @since 0.1.0
51
+ * @category services
52
+ */
53
+ declare class DocumentLoader extends DocumentLoader_base {}
54
+ /**
55
+ * A raw HTTP-like response, interpreted with `fromResponse`.
56
+ *
57
+ * @since 0.1.0
58
+ * @category models
59
+ */
60
+ interface Response {
61
+ /** The final URL after redirects. */
62
+ readonly url: string;
63
+ readonly status?: number | undefined;
64
+ /** The `Content-Type` header. */
65
+ readonly contentType?: string | undefined;
66
+ /** The `Link` header value(s). */
67
+ readonly link?: string | ReadonlyArray<string> | undefined;
68
+ readonly body: string;
69
+ }
70
+ /**
71
+ * A parsed entry of an HTTP `Link` header.
72
+ *
73
+ * @since 0.1.0
74
+ * @category models
75
+ */
76
+ interface Link {
77
+ readonly target: string;
78
+ readonly params: Readonly<Record<string, string>>;
79
+ }
80
+ /**
81
+ * Parses HTTP `Link` header values (RFC 8288).
82
+ *
83
+ * @since 0.1.0
84
+ * @category utils
85
+ */
86
+ declare const parseLinkHeader: (header: string | ReadonlyArray<string>) => ReadonlyArray<Link>;
87
+ /**
88
+ * The result of interpreting a response: either a document, or a redirect
89
+ * to an alternate JSON-LD representation.
90
+ *
91
+ * @since 0.1.0
92
+ * @category models
93
+ */
94
+ type Interpreted = {
95
+ readonly _tag: 'Document';
96
+ readonly document: RemoteDocument;
97
+ } | {
98
+ readonly _tag: 'Alternate';
99
+ readonly url: string;
100
+ };
101
+ /**
102
+ * Interprets a response following the JSON-LD rules for media types and
103
+ * `Link` headers (JSON-LD 1.1 API §9.4, LoadDocumentCallback).
104
+ *
105
+ * @since 0.1.0
106
+ * @category constructors
107
+ */
108
+ declare const fromResponse: (response: Response, options?: LoadOptions) => Effect.Effect<Interpreted, JsonLdError>;
109
+ /**
110
+ * Extracts embedded JSON-LD from an HTML document (`<script
111
+ * type="application/ld+json">` elements), honouring a fragment identifier
112
+ * that selects a script by `id`, and the HTML `<base>` element.
113
+ *
114
+ * @since 0.1.0
115
+ * @category utils
116
+ */
117
+ declare const extractHtml: (html: string, url: string, options?: LoadOptions) => Effect.Effect<RemoteDocument, JsonLdError>;
118
+ /**
119
+ * Builds a loader from a function fetching raw responses. Responses are
120
+ * interpreted with `fromResponse`; alternate links are followed.
121
+ *
122
+ * @since 0.1.0
123
+ * @category constructors
124
+ */
125
+ declare const fromFetch: (fetchResponse: (url: string, options?: LoadOptions) => Effect.Effect<Response, JsonLdError>) => Loader;
126
+ /**
127
+ * Wraps a loader with an in-memory cache of successfully loaded documents.
128
+ *
129
+ * @since 0.1.0
130
+ * @category combinators
131
+ */
132
+ declare const cached: (loader: Loader) => Loader;
133
+ /**
134
+ * A loader serving documents from a map of URL to document. Values may be
135
+ * parsed JSON, JSON text, or complete `RemoteDocument`s. Unknown URLs fail
136
+ * with `loading document failed`.
137
+ *
138
+ * @since 0.1.0
139
+ * @category constructors
140
+ */
141
+ declare const makeStatic: (documents: Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>) => Loader;
142
+ /**
143
+ * A loader that fails for every URL (no remote loading).
144
+ *
145
+ * @since 0.1.0
146
+ * @category constructors
147
+ */
148
+ declare const none: Loader;
149
+ /**
150
+ * Provides a static, in-memory `DocumentLoader`.
151
+ *
152
+ * @since 0.1.0
153
+ * @category layers
154
+ */
155
+ declare const layerStatic: (documents: Readonly<Record<string, unknown>> | ReadonlyMap<string, unknown>) => Layer.Layer<DocumentLoader>;
156
+ /**
157
+ * Provides a `DocumentLoader` from a loader implementation.
158
+ *
159
+ * @since 0.1.0
160
+ * @category layers
161
+ */
162
+ declare const layer: (loader: Loader) => Layer.Layer<DocumentLoader>;
163
+ /**
164
+ * Builds a loader on top of an `HttpClient`.
165
+ *
166
+ * @since 0.1.0
167
+ * @category constructors
168
+ */
169
+ declare const makeHttp: Effect.Effect<Loader, never, HttpClient.HttpClient>;
170
+ /**
171
+ * A caching `DocumentLoader` backed by the Effect `HttpClient`.
172
+ *
173
+ * @since 0.1.0
174
+ * @category layers
175
+ */
176
+ declare const layerHttp: Layer.Layer<DocumentLoader, never, HttpClient.HttpClient>;
177
+ export { makeStatic as _, LoadOptions as a, Response as c, fromFetch as d, fromResponse as f, makeHttp as g, layerStatic as h, Link as i, cached as l, layerHttp as m, DocumentLoader_d_exports as n, Loader as o, layer as p, Interpreted as r, RemoteDocument as s, DocumentLoader as t, extractHtml as u, none as v, parseLinkHeader as y };
178
+ //# sourceMappingURL=DocumentLoader-ZUCEVrW5.d.mts.map