@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.
- package/LICENSE +21 -0
- package/README.md +2251 -2
- package/dist/Algebra-CGG4oae3.mjs +433 -0
- package/dist/Algebra-CGG4oae3.mjs.map +1 -0
- package/dist/Algebra-uGsIEOUA.d.mts +446 -0
- package/dist/Ast-CPRZmBvk.mjs +552 -0
- package/dist/Ast-CPRZmBvk.mjs.map +1 -0
- package/dist/Ast-vcw2W-lf.d.mts +827 -0
- package/dist/Bindings-Ck3m7JRC.mjs +249 -0
- package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
- package/dist/Bindings-DiKpBd7f.d.mts +153 -0
- package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
- package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
- package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
- package/dist/ClientFormats-CXomkXLV.mjs +73 -0
- package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
- package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
- package/dist/Csv2Json-DynEcwCh.mjs +194 -0
- package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
- package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
- package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
- package/dist/Dataset-BlmlcI7J.mjs +782 -0
- package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
- package/dist/Dataset-DS3ESOcO.d.mts +426 -0
- package/dist/Dataset.d.mts +2 -0
- package/dist/Dataset.mjs +1 -0
- package/dist/Datatype-CxMpamHC.d.mts +212 -0
- package/dist/Datatype-DQvkNkiH.mjs +1001 -0
- package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
- package/dist/Dialect-8ChFj5EX.d.mts +113 -0
- package/dist/Dialect-CzVH38uo.mjs +165 -0
- package/dist/Dialect-CzVH38uo.mjs.map +1 -0
- package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
- package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
- package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
- package/dist/DublinCore-AnwqxRx6.mjs +137 -0
- package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
- package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
- package/dist/Engine-CYPB3g4h.d.mts +144 -0
- package/dist/Engine-DF8PN7g-.mjs +872 -0
- package/dist/Engine-DF8PN7g-.mjs.map +1 -0
- package/dist/Errors-CMdV1RhU.mjs +37 -0
- package/dist/Errors-CMdV1RhU.mjs.map +1 -0
- package/dist/Errors-u2bDjUeM.d.mts +30 -0
- package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
- package/dist/Evaluator-DOY2-guC.mjs +281 -0
- package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
- package/dist/Exif-CpqniYQd.d.mts +78 -0
- package/dist/Exif-DjkCfEB-.mjs +89 -0
- package/dist/Exif-DjkCfEB-.mjs.map +1 -0
- package/dist/Expression-BIMMvduQ.mjs +230 -0
- package/dist/Expression-BIMMvduQ.mjs.map +1 -0
- package/dist/Expression-W8A9cyX7.d.mts +89 -0
- package/dist/Extract-Bop85jES.mjs +220 -0
- package/dist/Extract-Bop85jES.mjs.map +1 -0
- package/dist/Extract-C_pCvuTC.d.mts +88 -0
- package/dist/Federation-BcNrozc1.d.mts +52 -0
- package/dist/Federation-CHScBkaK.mjs +130 -0
- package/dist/Federation-CHScBkaK.mjs.map +1 -0
- package/dist/Functions-AvjNcId_.mjs +1346 -0
- package/dist/Functions-AvjNcId_.mjs.map +1 -0
- package/dist/Functions-OQJZP-F6.d.mts +111 -0
- package/dist/Generator-C52mmq01.d.mts +50 -0
- package/dist/Generator-D3utCJC7.mjs +205 -0
- package/dist/Generator-D3utCJC7.mjs.map +1 -0
- package/dist/Grammar-CPlSxGH6.mjs +200 -0
- package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
- package/dist/Grammar-CRhnRoCu.d.mts +148 -0
- package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
- package/dist/Grammar-mQ8CgE1M.mjs +258 -0
- package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
- package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
- package/dist/GraphStore-DvbqwKy1.mjs +212 -0
- package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
- package/dist/Iri-BB8Ks-BF.d.mts +84 -0
- package/dist/Iri-Cr92gsQV.mjs +232 -0
- package/dist/Iri-Cr92gsQV.mjs.map +1 -0
- package/dist/Iri.d.mts +2 -0
- package/dist/Iri.mjs +1 -0
- package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
- package/dist/Isomorphism-DInKnWIy.mjs +390 -0
- package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
- package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
- package/dist/Isomorphism.d.mts +2 -0
- package/dist/Isomorphism.mjs +1 -0
- package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
- package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
- package/dist/JsonLd-DobFrQNa.d.mts +242 -0
- package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
- package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
- package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
- package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
- package/dist/LanguageTag.d.mts +2 -0
- package/dist/LanguageTag.mjs +1 -0
- package/dist/Lexical-Cg0JHrf6.mjs +243 -0
- package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
- package/dist/Lexical-D3zySYVS.d.mts +163 -0
- package/dist/Manifest-B6xf6mUc.mjs +148 -0
- package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
- package/dist/Manifest-DQUMRBFr.d.mts +98 -0
- package/dist/Mapping-BgG74x3U.d.mts +63 -0
- package/dist/Mapping-Dc1ZGirk.mjs +259 -0
- package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
- package/dist/Mcp-1DwTTKOK.mjs +48 -0
- package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
- package/dist/Mcp-d-pX9erx.d.mts +25 -0
- package/dist/Message-CK_DGQuu.mjs +95 -0
- package/dist/Message-CK_DGQuu.mjs.map +1 -0
- package/dist/Message-fIvTJSXM.d.mts +49 -0
- package/dist/Metadata-BbffwGDZ.mjs +445 -0
- package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
- package/dist/Metadata-CEt3yc1-.d.mts +901 -0
- package/dist/Metadata-D4HsQNXr.mjs +1273 -0
- package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
- package/dist/Metadata-nzS7QKRj.d.mts +350 -0
- package/dist/Model-DaMmxurZ.d.mts +293 -0
- package/dist/Model-DlPzRYhF.mjs +528 -0
- package/dist/Model-DlPzRYhF.mjs.map +1 -0
- package/dist/N3-BzyV-KIH.mjs +974 -0
- package/dist/N3-BzyV-KIH.mjs.map +1 -0
- package/dist/N3-DSLnonDn.d.mts +100 -0
- package/dist/NQuads-C1VBOJ3-.mjs +117 -0
- package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
- package/dist/NQuads-FjFZikFg.d.mts +76 -0
- package/dist/NTriples-D-kLSEAf.mjs +120 -0
- package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
- package/dist/NTriples-D34OspfW.d.mts +76 -0
- package/dist/Namespace-ClTUO_ya.d.mts +42 -0
- package/dist/Namespace-DHFIsORd.mjs +75 -0
- package/dist/Namespace-DHFIsORd.mjs.map +1 -0
- package/dist/Namespace.d.mts +2 -0
- package/dist/Namespace.mjs +1 -0
- package/dist/Namespaces-Bz85vpjW.mjs +235 -0
- package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
- package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
- package/dist/Optimizer-BWWQRQPY.mjs +168 -0
- package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
- package/dist/Optimizer-DUpUow6k.d.mts +26 -0
- package/dist/Options-BLBGL4HE.mjs +72 -0
- package/dist/Options-BLBGL4HE.mjs.map +1 -0
- package/dist/Options-BommQwP9.d.mts +127 -0
- package/dist/Packet-CA76wVX3.mjs +197 -0
- package/dist/Packet-CA76wVX3.mjs.map +1 -0
- package/dist/Packet-Cy5g6XuW.d.mts +130 -0
- package/dist/Parser-p1Gyr0QN.d.mts +85 -0
- package/dist/Parser-xARsOWXk.mjs +1317 -0
- package/dist/Parser-xARsOWXk.mjs.map +1 -0
- package/dist/Path-B20Yp8KE.mjs +284 -0
- package/dist/Path-B20Yp8KE.mjs.map +1 -0
- package/dist/Path-DRB8e-Zn.d.mts +181 -0
- package/dist/Pdf-B9RZn--8.d.mts +77 -0
- package/dist/Pdf-CKK6dkZn.mjs +89 -0
- package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
- package/dist/PdfA-CUjSuntT.d.mts +109 -0
- package/dist/PdfA-CleOhuL6.mjs +124 -0
- package/dist/PdfA-CleOhuL6.mjs.map +1 -0
- package/dist/Photoshop-CiHo80qV.mjs +233 -0
- package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
- package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
- package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
- package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
- package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
- package/dist/PrefixMap.d.mts +2 -0
- package/dist/PrefixMap.mjs +1 -0
- package/dist/Processor-CMmecFsb.mjs +198 -0
- package/dist/Processor-CMmecFsb.mjs.map +1 -0
- package/dist/Processor-FJPvO0CB.d.mts +435 -0
- package/dist/Protocol-BA7OkNgp.mjs +202 -0
- package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
- package/dist/Protocol-DlSoiIKB.d.mts +108 -0
- package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
- package/dist/Query-D9A6LOpP.mjs +364 -0
- package/dist/Query-D9A6LOpP.mjs.map +1 -0
- package/dist/Query-KqSkTYyG.d.mts +96 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
- package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
- package/dist/RdfJs-D6-49XB5.mjs +86 -0
- package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
- package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
- package/dist/RdfJs.d.mts +2 -0
- package/dist/RdfJs.mjs +1 -0
- package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
- package/dist/RdfJson-BNocgW4f.mjs +548 -0
- package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
- package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
- package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
- package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
- package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
- package/dist/Rdfs-CyY2wVHI.mjs +167 -0
- package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
- package/dist/Rdfs.d.mts +2 -0
- package/dist/Rdfs.mjs +1 -0
- package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
- package/dist/Reasoner-Cw90zrjv.mjs +798 -0
- package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
- package/dist/Reification-BmN4EfnM.d.mts +40 -0
- package/dist/Reification-dpqQvjDE.mjs +82 -0
- package/dist/Reification-dpqQvjDE.mjs.map +1 -0
- package/dist/Reification.d.mts +2 -0
- package/dist/Reification.mjs +1 -0
- package/dist/Report-XHs8htzK.mjs +121 -0
- package/dist/Report-XHs8htzK.mjs.map +1 -0
- package/dist/Report-hcXsc_19.d.mts +115 -0
- package/dist/Resource-B1cI8FyJ.d.mts +218 -0
- package/dist/Resource-sIEeNh15.mjs +374 -0
- package/dist/Resource-sIEeNh15.mjs.map +1 -0
- package/dist/Resource.d.mts +2 -0
- package/dist/Resource.mjs +1 -0
- package/dist/Results-BVNEC-Wt.d.mts +277 -0
- package/dist/Results-peJjGA2V.mjs +621 -0
- package/dist/Results-peJjGA2V.mjs.map +1 -0
- package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
- package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
- package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
- package/dist/SemAct-CDchtk49.d.mts +96 -0
- package/dist/SemAct-CmyT4yI8.mjs +118 -0
- package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
- package/dist/Serialization-DP9H5bYQ.mjs +514 -0
- package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
- package/dist/Serialization-Df8iVauT.d.mts +392 -0
- package/dist/Serialization.d.mts +2 -0
- package/dist/Serialization.mjs +1 -0
- package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
- package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
- package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
- package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
- package/dist/ShExC-Ctf-06CL.d.mts +67 -0
- package/dist/ShExC-DJbB19i3.mjs +1181 -0
- package/dist/ShExC-DJbB19i3.mjs.map +1 -0
- package/dist/ShExError-BeYFD9rv.d.mts +61 -0
- package/dist/ShExError-CVtq2NnM.mjs +64 -0
- package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
- package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
- package/dist/ShExJ-COiPd9Xw.mjs +532 -0
- package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
- package/dist/ShExR-ByR4mCh-.mjs +480 -0
- package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
- package/dist/ShExR-CqONNNBz.d.mts +40 -0
- package/dist/ShapeMap-C422pxKl.d.mts +140 -0
- package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
- package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
- package/dist/Shapes-18GjfyBV.mjs +597 -0
- package/dist/Shapes-18GjfyBV.mjs.map +1 -0
- package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
- package/dist/Sparql-BiYFMSpl.mjs +29 -0
- package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
- package/dist/Sparql-DecpWTPh.d.mts +97 -0
- package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
- package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
- package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
- package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
- package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
- package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
- package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
- package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
- package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
- package/dist/Store-D0jmVfb3.d.mts +166 -0
- package/dist/Store-DH3Ow1GO.mjs +162 -0
- package/dist/Store-DH3Ow1GO.mjs.map +1 -0
- package/dist/Structure-BjMo4Bkc.mjs +334 -0
- package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
- package/dist/Structure-n4CmDiab.d.mts +63 -0
- package/dist/Table-BGgm9nbM.mjs +538 -0
- package/dist/Table-BGgm9nbM.mjs.map +1 -0
- package/dist/Table-C3reiVrb.d.mts +261 -0
- package/dist/Term-B_4ezyXq.d.mts +619 -0
- package/dist/Term-CFLG1qu4.mjs +991 -0
- package/dist/Term-CFLG1qu4.mjs.map +1 -0
- package/dist/Term.d.mts +2 -0
- package/dist/Term.mjs +1 -0
- package/dist/TermCodec-CDZiEztW.mjs +397 -0
- package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
- package/dist/TermCodec-_03bDXr0.d.mts +209 -0
- package/dist/TermCodec.d.mts +2 -0
- package/dist/TermCodec.mjs +1 -0
- package/dist/TermJson-BOPe0yve.d.mts +232 -0
- package/dist/TermJson-FAg3lvjl.mjs +142 -0
- package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
- package/dist/TermJson.d.mts +2 -0
- package/dist/TermJson.mjs +1 -0
- package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
- package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
- package/dist/TermSchema-DBO6MroX.d.mts +6 -0
- package/dist/Testing-B-aPCpmu.mjs +63 -0
- package/dist/Testing-B-aPCpmu.mjs.map +1 -0
- package/dist/Testing-CF6s8P3O.d.mts +53 -0
- package/dist/Tiff-CR-2QeSI.d.mts +148 -0
- package/dist/Tiff-DlsOlZPM.mjs +169 -0
- package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
- package/dist/Tools-7MdRKccr.d.mts +583 -0
- package/dist/Tools-ryxphZbI.mjs +329 -0
- package/dist/Tools-ryxphZbI.mjs.map +1 -0
- package/dist/Translate-B0YKKANS.d.mts +37 -0
- package/dist/Translate-gzWPq0Ia.mjs +308 -0
- package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
- package/dist/Translation-DC9rLm2y.mjs +1535 -0
- package/dist/Translation-DC9rLm2y.mjs.map +1 -0
- package/dist/Translation-K4L9XBqX.d.mts +103 -0
- package/dist/TriG-BkqtqZ6Y.mjs +125 -0
- package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
- package/dist/TriG-xDjdDatp.d.mts +86 -0
- package/dist/Turtle-Bv1_bisW.d.mts +85 -0
- package/dist/Turtle-CZVUOtwl.mjs +133 -0
- package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
- package/dist/ValidationReport-DBdJshW5.mjs +285 -0
- package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
- package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
- package/dist/Validator-227ff9Rn.d.mts +179 -0
- package/dist/Validator-BzXMKDeJ.mjs +1162 -0
- package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
- package/dist/Validator-Dl8cih5V.d.mts +207 -0
- package/dist/Validator-DmUfMbpL.mjs +568 -0
- package/dist/Validator-DmUfMbpL.mjs.map +1 -0
- package/dist/Vocab-DceKywpq.mjs +168 -0
- package/dist/Vocab-DceKywpq.mjs.map +1 -0
- package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
- package/dist/Vocab-Do56UgBX.d.mts +81 -0
- package/dist/Vocab-TfpWG1Ne.mjs +118 -0
- package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
- package/dist/Vocab.d.mts +2 -0
- package/dist/Vocab.mjs +1 -0
- package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
- package/dist/Xml-B7iihYCS.mjs +976 -0
- package/dist/Xml-B7iihYCS.mjs.map +1 -0
- package/dist/Xml-CmfHS7SW.d.mts +267 -0
- package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
- package/dist/Xmp-DCGN9pOD.mjs +307 -0
- package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
- package/dist/XmpBasic-CP38jpR_.mjs +73 -0
- package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
- package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
- package/dist/XmpMM-BfL_TgJF.mjs +73 -0
- package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
- package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
- package/dist/XmpRights-BKPtoI5L.mjs +73 -0
- package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
- package/dist/XmpRights-CaALZQz2.d.mts +63 -0
- package/dist/Xsd-Cdgx5zRB.mjs +405 -0
- package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
- package/dist/Xsd-D2elNhSm.d.mts +187 -0
- package/dist/Xsd.d.mts +2 -0
- package/dist/Xsd.mjs +1 -0
- package/dist/accessors-CEjaojuQ.mjs +28 -0
- package/dist/accessors-CEjaojuQ.mjs.map +1 -0
- package/dist/codec-Lb2T96rv.d.mts +20 -0
- package/dist/codec-QNo7IdJF.mjs +389 -0
- package/dist/codec-QNo7IdJF.mjs.map +1 -0
- package/dist/csvw/Csv2Json.d.mts +2 -0
- package/dist/csvw/Csv2Json.mjs +1 -0
- package/dist/csvw/Csv2Rdf.d.mts +2 -0
- package/dist/csvw/Csv2Rdf.mjs +1 -0
- package/dist/csvw/Datatype.d.mts +2 -0
- package/dist/csvw/Datatype.mjs +1 -0
- package/dist/csvw/Metadata.d.mts +2 -0
- package/dist/csvw/Metadata.mjs +1 -0
- package/dist/csvw/Processor.d.mts +2 -0
- package/dist/csvw/Processor.mjs +1 -0
- package/dist/csvw/Report.d.mts +2 -0
- package/dist/csvw/Report.mjs +1 -0
- package/dist/csvw/Table.d.mts +2 -0
- package/dist/csvw/Table.mjs +1 -0
- package/dist/csvw/index.d.mts +8 -0
- package/dist/csvw/index.mjs +8 -0
- package/dist/index-Cms2TYfC.d.mts +16 -0
- package/dist/index-Ct8xFmRs.d.mts +7 -0
- package/dist/index-D4QFwOjm.d.mts +28 -0
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +17 -0
- package/dist/jsonld/DocumentLoader.d.mts +2 -0
- package/dist/jsonld/DocumentLoader.mjs +1 -0
- package/dist/jsonld/JsonLd.d.mts +2 -0
- package/dist/jsonld/JsonLd.mjs +1 -0
- package/dist/jsonld/JsonLdError.d.mts +2 -0
- package/dist/jsonld/JsonLdError.mjs +1 -0
- package/dist/jsonld/index.d.mts +4 -0
- package/dist/jsonld/index.mjs +4 -0
- package/dist/lists-D-OpQ0Ir.mjs +77 -0
- package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
- package/dist/loop-D5-gNx9K.mjs +21 -0
- package/dist/loop-D5-gNx9K.mjs.map +1 -0
- package/dist/loop-DZ2hXlr_.mjs +21 -0
- package/dist/loop-DZ2hXlr_.mjs.map +1 -0
- package/dist/n3/Isomorphism.d.mts +2 -0
- package/dist/n3/Isomorphism.mjs +1 -0
- package/dist/n3/Mapping.d.mts +2 -0
- package/dist/n3/Mapping.mjs +1 -0
- package/dist/n3/Model.d.mts +2 -0
- package/dist/n3/Model.mjs +1 -0
- package/dist/n3/N3.d.mts +2 -0
- package/dist/n3/N3.mjs +1 -0
- package/dist/n3/Reasoner.d.mts +2 -0
- package/dist/n3/Reasoner.mjs +2 -0
- package/dist/n3/Vocab.d.mts +2 -0
- package/dist/n3/Vocab.mjs +1 -0
- package/dist/n3/index.d.mts +7 -0
- package/dist/n3/index.mjs +7 -0
- package/dist/ntriples/Grammar.d.mts +2 -0
- package/dist/ntriples/Grammar.mjs +1 -0
- package/dist/ntriples/Lexical.d.mts +2 -0
- package/dist/ntriples/Lexical.mjs +1 -0
- package/dist/ntriples/NQuads.d.mts +2 -0
- package/dist/ntriples/NQuads.mjs +1 -0
- package/dist/ntriples/NTriples.d.mts +2 -0
- package/dist/ntriples/NTriples.mjs +1 -0
- package/dist/ntriples/index.d.mts +5 -0
- package/dist/ntriples/index.mjs +5 -0
- package/dist/rdfjson/RdfJson.d.mts +2 -0
- package/dist/rdfjson/RdfJson.mjs +1 -0
- package/dist/rdfjson/index.d.mts +2 -0
- package/dist/rdfjson/index.mjs +1 -0
- package/dist/rdfxml/RdfXml.d.mts +2 -0
- package/dist/rdfxml/RdfXml.mjs +1 -0
- package/dist/rdfxml/Xml.d.mts +2 -0
- package/dist/rdfxml/Xml.mjs +1 -0
- package/dist/rdfxml/index.d.mts +3 -0
- package/dist/rdfxml/index.mjs +3 -0
- package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
- package/dist/serialize-96KBvKaf.mjs +1463 -0
- package/dist/serialize-96KBvKaf.mjs.map +1 -0
- package/dist/serialize-DsoXdM6n.d.mts +37 -0
- package/dist/shacl/Message.d.mts +2 -0
- package/dist/shacl/Message.mjs +1 -0
- package/dist/shacl/Path.d.mts +2 -0
- package/dist/shacl/Path.mjs +1 -0
- package/dist/shacl/Shapes.d.mts +2 -0
- package/dist/shacl/Shapes.mjs +1 -0
- package/dist/shacl/Sparql.d.mts +2 -0
- package/dist/shacl/Sparql.mjs +1 -0
- package/dist/shacl/ValidationReport.d.mts +2 -0
- package/dist/shacl/ValidationReport.mjs +1 -0
- package/dist/shacl/Validator.d.mts +2 -0
- package/dist/shacl/Validator.mjs +1 -0
- package/dist/shacl/Vocabulary.d.mts +2 -0
- package/dist/shacl/Vocabulary.mjs +1 -0
- package/dist/shacl/index.d.mts +9 -0
- package/dist/shacl/index.mjs +8 -0
- package/dist/shex/SemAct.d.mts +2 -0
- package/dist/shex/SemAct.mjs +1 -0
- package/dist/shex/ShExC.d.mts +2 -0
- package/dist/shex/ShExC.mjs +1 -0
- package/dist/shex/ShExError.d.mts +2 -0
- package/dist/shex/ShExError.mjs +1 -0
- package/dist/shex/ShExJ.d.mts +2 -0
- package/dist/shex/ShExJ.mjs +2 -0
- package/dist/shex/ShExR.d.mts +2 -0
- package/dist/shex/ShExR.mjs +1 -0
- package/dist/shex/ShapeMap.d.mts +2 -0
- package/dist/shex/ShapeMap.mjs +1 -0
- package/dist/shex/Structure.d.mts +2 -0
- package/dist/shex/Structure.mjs +2 -0
- package/dist/shex/Validator.d.mts +2 -0
- package/dist/shex/Validator.mjs +4 -0
- package/dist/shex/index.d.mts +9 -0
- package/dist/shex/index.mjs +9 -0
- package/dist/sparql/Algebra.d.mts +2 -0
- package/dist/sparql/Algebra.mjs +1 -0
- package/dist/sparql/Ast.d.mts +2 -0
- package/dist/sparql/Ast.mjs +1 -0
- package/dist/sparql/Bindings.d.mts +2 -0
- package/dist/sparql/Bindings.mjs +1 -0
- package/dist/sparql/ClientErrors.d.mts +2 -0
- package/dist/sparql/ClientErrors.mjs +1 -0
- package/dist/sparql/ClientFormats.d.mts +2 -0
- package/dist/sparql/ClientFormats.mjs +1 -0
- package/dist/sparql/Engine.d.mts +2 -0
- package/dist/sparql/Engine.mjs +1 -0
- package/dist/sparql/Errors.d.mts +2 -0
- package/dist/sparql/Errors.mjs +1 -0
- package/dist/sparql/Expression.d.mts +2 -0
- package/dist/sparql/Expression.mjs +1 -0
- package/dist/sparql/Federation.d.mts +2 -0
- package/dist/sparql/Federation.mjs +1 -0
- package/dist/sparql/Functions.d.mts +2 -0
- package/dist/sparql/Functions.mjs +1 -0
- package/dist/sparql/Generator.d.mts +2 -0
- package/dist/sparql/Generator.mjs +1 -0
- package/dist/sparql/GraphStore.d.mts +2 -0
- package/dist/sparql/GraphStore.mjs +1 -0
- package/dist/sparql/Optimizer.d.mts +2 -0
- package/dist/sparql/Optimizer.mjs +1 -0
- package/dist/sparql/Options.d.mts +2 -0
- package/dist/sparql/Options.mjs +1 -0
- package/dist/sparql/Parser.d.mts +2 -0
- package/dist/sparql/Parser.mjs +1 -0
- package/dist/sparql/Protocol.d.mts +2 -0
- package/dist/sparql/Protocol.mjs +1 -0
- package/dist/sparql/ProtocolErrors.d.mts +2 -0
- package/dist/sparql/ProtocolErrors.mjs +1 -0
- package/dist/sparql/QueryBuilder.d.mts +2 -0
- package/dist/sparql/QueryBuilder.mjs +1 -0
- package/dist/sparql/Results.d.mts +2 -0
- package/dist/sparql/Results.mjs +1 -0
- package/dist/sparql/ResultsStream.d.mts +2 -0
- package/dist/sparql/ResultsStream.mjs +1 -0
- package/dist/sparql/ServerFormats.d.mts +2 -0
- package/dist/sparql/ServerFormats.mjs +1 -0
- package/dist/sparql/ServiceDescription.d.mts +2 -0
- package/dist/sparql/ServiceDescription.mjs +1 -0
- package/dist/sparql/SparqlClient.d.mts +2 -0
- package/dist/sparql/SparqlClient.mjs +1 -0
- package/dist/sparql/SparqlServer.d.mts +2 -0
- package/dist/sparql/SparqlServer.mjs +1 -0
- package/dist/sparql/Store.d.mts +2 -0
- package/dist/sparql/Store.mjs +1 -0
- package/dist/sparql/TermSchema.d.mts +3 -0
- package/dist/sparql/TermSchema.mjs +2 -0
- package/dist/sparql/Testing.d.mts +2 -0
- package/dist/sparql/Testing.mjs +1 -0
- package/dist/sparql/Translate.d.mts +2 -0
- package/dist/sparql/Translate.mjs +1 -0
- package/dist/sparql/ai/Mcp.d.mts +2 -0
- package/dist/sparql/ai/Mcp.mjs +1 -0
- package/dist/sparql/ai/Tools.d.mts +2 -0
- package/dist/sparql/ai/Tools.mjs +1 -0
- package/dist/sparql/ai/index.d.mts +3 -0
- package/dist/sparql/ai/index.mjs +3 -0
- package/dist/sparql/index.d.mts +30 -0
- package/dist/sparql/index.mjs +29 -0
- package/dist/sparql/shacl/Evaluator.d.mts +2 -0
- package/dist/sparql/shacl/Evaluator.mjs +1 -0
- package/dist/sparql/shacl/Query.d.mts +2 -0
- package/dist/sparql/shacl/Query.mjs +1 -0
- package/dist/sparql/shacl/index.d.mts +3 -0
- package/dist/sparql/shacl/index.mjs +3 -0
- package/dist/sparql/sql/Dialect.d.mts +2 -0
- package/dist/sparql/sql/Dialect.mjs +1 -0
- package/dist/sparql/sql/SqlStore.d.mts +2 -0
- package/dist/sparql/sql/SqlStore.mjs +1 -0
- package/dist/sparql/sql/Translation.d.mts +2 -0
- package/dist/sparql/sql/Translation.mjs +1 -0
- package/dist/sparql/sql/index.d.mts +4 -0
- package/dist/sparql/sql/index.mjs +4 -0
- package/dist/stringMap-D5YIpYtR.mjs +38 -0
- package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
- package/dist/tokens-C6BzeodQ.mjs +24 -0
- package/dist/tokens-C6BzeodQ.mjs.map +1 -0
- package/dist/turtle/Grammar.d.mts +3 -0
- package/dist/turtle/Grammar.mjs +3 -0
- package/dist/turtle/Manifest.d.mts +2 -0
- package/dist/turtle/Manifest.mjs +1 -0
- package/dist/turtle/TriG.d.mts +2 -0
- package/dist/turtle/TriG.mjs +1 -0
- package/dist/turtle/Turtle.d.mts +2 -0
- package/dist/turtle/Turtle.mjs +1 -0
- package/dist/turtle/index.d.mts +5 -0
- package/dist/turtle/index.mjs +5 -0
- package/dist/xmp/DublinCore.d.mts +2 -0
- package/dist/xmp/DublinCore.mjs +1 -0
- package/dist/xmp/Exif.d.mts +2 -0
- package/dist/xmp/Exif.mjs +1 -0
- package/dist/xmp/Extract.d.mts +2 -0
- package/dist/xmp/Extract.mjs +1 -0
- package/dist/xmp/Metadata.d.mts +2 -0
- package/dist/xmp/Metadata.mjs +1 -0
- package/dist/xmp/Namespaces.d.mts +2 -0
- package/dist/xmp/Namespaces.mjs +1 -0
- package/dist/xmp/Packet.d.mts +2 -0
- package/dist/xmp/Packet.mjs +1 -0
- package/dist/xmp/Pdf.d.mts +2 -0
- package/dist/xmp/Pdf.mjs +1 -0
- package/dist/xmp/PdfA.d.mts +2 -0
- package/dist/xmp/PdfA.mjs +1 -0
- package/dist/xmp/Photoshop.d.mts +2 -0
- package/dist/xmp/Photoshop.mjs +1 -0
- package/dist/xmp/Tiff.d.mts +2 -0
- package/dist/xmp/Tiff.mjs +1 -0
- package/dist/xmp/Xmp.d.mts +2 -0
- package/dist/xmp/Xmp.mjs +3 -0
- package/dist/xmp/XmpBasic.d.mts +2 -0
- package/dist/xmp/XmpBasic.mjs +1 -0
- package/dist/xmp/XmpMM.d.mts +2 -0
- package/dist/xmp/XmpMM.mjs +1 -0
- package/dist/xmp/XmpRights.d.mts +2 -0
- package/dist/xmp/XmpRights.mjs +1 -0
- package/dist/xmp/index.d.mts +15 -0
- package/dist/xmp/index.mjs +15 -0
- package/package.json +195 -3
- package/src/Dataset.ts +1085 -0
- package/src/Iri.ts +322 -0
- package/src/Isomorphism.ts +319 -0
- package/src/LanguageTag.ts +98 -0
- package/src/Namespace.ts +100 -0
- package/src/PrefixMap.ts +117 -0
- package/src/RdfJs.ts +146 -0
- package/src/Rdfs.ts +241 -0
- package/src/Reification.ts +103 -0
- package/src/Resource.ts +873 -0
- package/src/Serialization.ts +775 -0
- package/src/Term.ts +1300 -0
- package/src/TermCodec.ts +505 -0
- package/src/TermJson.ts +313 -0
- package/src/Vocab.ts +161 -0
- package/src/Xsd.ts +573 -0
- package/src/csvw/Csv2Json.ts +265 -0
- package/src/csvw/Csv2Rdf.ts +268 -0
- package/src/csvw/Datatype.ts +589 -0
- package/src/csvw/Metadata.ts +1523 -0
- package/src/csvw/Processor.ts +276 -0
- package/src/csvw/Report.ts +135 -0
- package/src/csvw/Table.ts +759 -0
- package/src/csvw/index.ts +22 -0
- package/src/csvw/internal/dateFormat.ts +202 -0
- package/src/csvw/internal/json.ts +104 -0
- package/src/csvw/internal/numberFormat.ts +369 -0
- package/src/csvw/internal/object.ts +23 -0
- package/src/csvw/internal/uriTemplate.ts +130 -0
- package/src/csvw/internal/url.ts +93 -0
- package/src/csvw/internal/vocab.ts +282 -0
- package/src/index.ts +40 -0
- package/src/internal/arbitrary.ts +148 -0
- package/src/internal/loop.ts +24 -0
- package/src/internal/pending.ts +20 -0
- package/src/internal/textDecoder.ts +183 -0
- package/src/jsonld/DocumentLoader.ts +512 -0
- package/src/jsonld/JsonLd.ts +847 -0
- package/src/jsonld/JsonLdError.ts +105 -0
- package/src/jsonld/index.ts +13 -0
- package/src/jsonld/internal/compact.ts +852 -0
- package/src/jsonld/internal/context.ts +781 -0
- package/src/jsonld/internal/expand.ts +614 -0
- package/src/jsonld/internal/flatten.ts +243 -0
- package/src/jsonld/internal/frame.ts +559 -0
- package/src/jsonld/internal/iri.ts +52 -0
- package/src/jsonld/internal/json.ts +19 -0
- package/src/jsonld/internal/linkHeader.ts +60 -0
- package/src/jsonld/internal/rdf.ts +481 -0
- package/src/jsonld/internal/util.ts +367 -0
- package/src/n3/Isomorphism.ts +476 -0
- package/src/n3/Mapping.ts +332 -0
- package/src/n3/Model.ts +696 -0
- package/src/n3/N3.ts +237 -0
- package/src/n3/Reasoner.ts +568 -0
- package/src/n3/Vocab.ts +111 -0
- package/src/n3/index.ts +21 -0
- package/src/n3/internal/builtins.ts +668 -0
- package/src/n3/internal/guards.ts +23 -0
- package/src/n3/internal/lists.ts +106 -0
- package/src/n3/internal/loop.ts +28 -0
- package/src/n3/internal/parser.ts +1032 -0
- package/src/n3/internal/writer.ts +344 -0
- package/src/ntriples/Grammar.ts +317 -0
- package/src/ntriples/Lexical.ts +321 -0
- package/src/ntriples/NQuads.ts +140 -0
- package/src/ntriples/NTriples.ts +143 -0
- package/src/ntriples/index.ts +14 -0
- package/src/ntriples/internal/codec.ts +229 -0
- package/src/ntriples/internal/lineParser.ts +326 -0
- package/src/ntriples/internal/loop.ts +14 -0
- package/src/rdfjson/RdfJson.ts +806 -0
- package/src/rdfjson/index.ts +9 -0
- package/src/rdfjson/internal/json.ts +19 -0
- package/src/rdfxml/RdfXml.ts +1408 -0
- package/src/rdfxml/Xml.ts +419 -0
- package/src/rdfxml/index.ts +11 -0
- package/src/rdfxml/internal/chars.ts +73 -0
- package/src/rdfxml/internal/loop.ts +24 -0
- package/src/rdfxml/internal/parser.ts +1265 -0
- package/src/shacl/Message.ts +102 -0
- package/src/shacl/Path.ts +483 -0
- package/src/shacl/Shapes.ts +913 -0
- package/src/shacl/Sparql.ts +128 -0
- package/src/shacl/ValidationReport.ts +438 -0
- package/src/shacl/Validator.ts +1156 -0
- package/src/shacl/Vocabulary.ts +180 -0
- package/src/shacl/index.ts +22 -0
- package/src/shacl/internal/compare.ts +128 -0
- package/src/shacl/internal/regex.ts +56 -0
- package/src/shex/SemAct.ts +197 -0
- package/src/shex/ShExC.ts +415 -0
- package/src/shex/ShExError.ts +71 -0
- package/src/shex/ShExJ.ts +893 -0
- package/src/shex/ShExR.ts +640 -0
- package/src/shex/ShapeMap.ts +385 -0
- package/src/shex/Structure.ts +467 -0
- package/src/shex/Validator.ts +395 -0
- package/src/shex/index.ts +24 -0
- package/src/shex/internal/engine.ts +682 -0
- package/src/shex/internal/iterate.ts +14 -0
- package/src/shex/internal/json.ts +12 -0
- package/src/shex/internal/lexer.ts +56 -0
- package/src/shex/internal/nodeConstraint.ts +368 -0
- package/src/shex/internal/shexcLexer.ts +387 -0
- package/src/shex/internal/shexcParser.ts +1312 -0
- package/src/shex/internal/tokens.ts +41 -0
- package/src/shex/internal/xpathRegex.ts +290 -0
- package/src/sparql/Algebra.ts +914 -0
- package/src/sparql/Ast.ts +1344 -0
- package/src/sparql/Bindings.ts +272 -0
- package/src/sparql/ClientErrors.ts +156 -0
- package/src/sparql/ClientFormats.ts +70 -0
- package/src/sparql/Engine.ts +699 -0
- package/src/sparql/Errors.ts +30 -0
- package/src/sparql/Expression.ts +360 -0
- package/src/sparql/Federation.ts +187 -0
- package/src/sparql/Functions.ts +689 -0
- package/src/sparql/Generator.ts +426 -0
- package/src/sparql/GraphStore.ts +341 -0
- package/src/sparql/Optimizer.ts +230 -0
- package/src/sparql/Options.ts +191 -0
- package/src/sparql/Parser.ts +173 -0
- package/src/sparql/Protocol.ts +342 -0
- package/src/sparql/ProtocolErrors.ts +113 -0
- package/src/sparql/QueryBuilder.ts +953 -0
- package/src/sparql/Results.ts +844 -0
- package/src/sparql/ResultsStream.ts +771 -0
- package/src/sparql/ServerFormats.ts +75 -0
- package/src/sparql/ServiceDescription.ts +130 -0
- package/src/sparql/SparqlClient.ts +947 -0
- package/src/sparql/SparqlServer.ts +528 -0
- package/src/sparql/Store.ts +311 -0
- package/src/sparql/TermSchema.ts +20 -0
- package/src/sparql/Testing.ts +114 -0
- package/src/sparql/Translate.ts +407 -0
- package/src/sparql/ai/Mcp.ts +43 -0
- package/src/sparql/ai/Tools.ts +481 -0
- package/src/sparql/ai/index.ts +11 -0
- package/src/sparql/index.ts +64 -0
- package/src/sparql/internal/evaluator.ts +947 -0
- package/src/sparql/internal/hash.ts +418 -0
- package/src/sparql/internal/json.ts +12 -0
- package/src/sparql/internal/lexer.ts +488 -0
- package/src/sparql/internal/loop.ts +24 -0
- package/src/sparql/internal/parser.ts +2215 -0
- package/src/sparql/internal/prefetch.ts +46 -0
- package/src/sparql/internal/stringMap.ts +39 -0
- package/src/sparql/internal/textResults.ts +226 -0
- package/src/sparql/internal/values.ts +550 -0
- package/src/sparql/shacl/Evaluator.ts +478 -0
- package/src/sparql/shacl/Query.ts +574 -0
- package/src/sparql/shacl/index.ts +12 -0
- package/src/sparql/sql/Dialect.ts +246 -0
- package/src/sparql/sql/SqlStore.ts +1080 -0
- package/src/sparql/sql/Translation.ts +1898 -0
- package/src/sparql/sql/index.ts +17 -0
- package/src/sparql/sql/internal/encoding.ts +313 -0
- package/src/turtle/Grammar.ts +286 -0
- package/src/turtle/Manifest.ts +215 -0
- package/src/turtle/TriG.ts +158 -0
- package/src/turtle/Turtle.ts +166 -0
- package/src/turtle/index.ts +14 -0
- package/src/turtle/internal/loop.ts +23 -0
- package/src/turtle/internal/parse.ts +112 -0
- package/src/turtle/internal/parser.ts +1303 -0
- package/src/turtle/internal/serialize.ts +79 -0
- package/src/turtle/internal/streamWriter.ts +128 -0
- package/src/turtle/internal/writer.ts +898 -0
- package/src/xmp/DublinCore.ts +147 -0
- package/src/xmp/Exif.ts +109 -0
- package/src/xmp/Extract.ts +351 -0
- package/src/xmp/Metadata.ts +703 -0
- package/src/xmp/Namespaces.ts +228 -0
- package/src/xmp/Packet.ts +297 -0
- package/src/xmp/Pdf.ts +99 -0
- package/src/xmp/PdfA.ts +280 -0
- package/src/xmp/Photoshop.ts +275 -0
- package/src/xmp/Tiff.ts +196 -0
- package/src/xmp/Xmp.ts +430 -0
- package/src/xmp/XmpBasic.ts +90 -0
- package/src/xmp/XmpMM.ts +82 -0
- package/src/xmp/XmpRights.ts +83 -0
- package/src/xmp/index.ts +36 -0
- package/src/xmp/internal/accessors.ts +72 -0
- 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
|