@thomasfosterau/effect-rdf 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2250 -1
- 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 +187 -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,548 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { B as isNamedNode, K as isTriple, O as defaultGraph, P as isDefaultGraph, Y as literal, c as NamedNode, d as Quad, t as BlankNode, u as Order$1, y as Triple } from "./Term-CFLG1qu4.mjs";
|
|
3
|
+
import { D as mutate, c as empty, t as DatasetSchema } from "./Dataset-BlmlcI7J.mjs";
|
|
4
|
+
import { i as empty$1 } from "./PrefixMap-BHFPDLO-.mjs";
|
|
5
|
+
import { C as withParseSpan, c as makeCodec, d as makeSerializer, l as makeFormat, n as RdfParseError, o as freshBlankNodePrefix, r as RdfSerializeError, u as makeParser, w as withSerializeSpan } from "./Serialization-DP9H5bYQ.mjs";
|
|
6
|
+
import * as Arr from "effect/Array";
|
|
7
|
+
import { constVoid } from "effect/Function";
|
|
8
|
+
import * as Iterable from "effect/Iterable";
|
|
9
|
+
import * as MutableHashSet from "effect/MutableHashSet";
|
|
10
|
+
import * as Option from "effect/Option";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import * as SchemaTransformation from "effect/SchemaTransformation";
|
|
13
|
+
import * as Effect from "effect/Effect";
|
|
14
|
+
import * as Match from "effect/Match";
|
|
15
|
+
import * as Order from "effect/Order";
|
|
16
|
+
import * as SchemaIssue from "effect/SchemaIssue";
|
|
17
|
+
import * as Record from "effect/Record";
|
|
18
|
+
import * as Result from "effect/Result";
|
|
19
|
+
// src/rdfjson/internal/json.ts
|
|
20
|
+
/**
|
|
21
|
+
* The one `JSON.parse` call of this package. It stays native because the
|
|
22
|
+
* engine's `SyntaxError` text is part of the parse error messages, and
|
|
23
|
+
* `Schema.fromJsonString` replaces it with a generic issue.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Parses JSON text, failing with the engine's `SyntaxError`.
|
|
29
|
+
*
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
const parseJson = (text) => Result.try({
|
|
33
|
+
try: () => JSON.parse(text),
|
|
34
|
+
catch: (e) => e instanceof SyntaxError ? e : new SyntaxError(String(e))
|
|
35
|
+
});
|
|
36
|
+
// src/rdfjson/RdfJson.ts
|
|
37
|
+
/**
|
|
38
|
+
* RDF/JSON (https://www.w3.org/TR/rdf-json/), media type
|
|
39
|
+
* `application/rdf+json`.
|
|
40
|
+
*
|
|
41
|
+
* The document structure is described with Effect `Schema`s, so decoding
|
|
42
|
+
* validates the JSON shape and reports precise errors. `RdfJsonFromString`
|
|
43
|
+
* decodes JSON text into a typed `Document`, and `DatasetFromRdfJson` /
|
|
44
|
+
* `DatasetFromString` transform documents into core `Dataset`s and back.
|
|
45
|
+
*
|
|
46
|
+
* ## RDF 1.2 extensions
|
|
47
|
+
*
|
|
48
|
+
* RDF/JSON predates RDF 1.2. This module defines two backwards-compatible
|
|
49
|
+
* extensions, accepted when parsing by default and written only when
|
|
50
|
+
* `extensions: true` is passed to the serializer:
|
|
51
|
+
*
|
|
52
|
+
* - **Base direction**: a literal object with a `"lang"` may carry
|
|
53
|
+
* `"direction": "ltr" | "rtl"`, denoting a directional language-tagged
|
|
54
|
+
* string (`rdf:dirLangString`).
|
|
55
|
+
* - **Triple terms**: an object value `{ "type": "triple", "value": { … } }`
|
|
56
|
+
* whose `value` has `"subject"` (a `uri` or `bnode` value), `"predicate"`
|
|
57
|
+
* (a `uri` value) and `"object"` (any object value, including another
|
|
58
|
+
* triple term) members.
|
|
59
|
+
*
|
|
60
|
+
* ```json
|
|
61
|
+
* {
|
|
62
|
+
* "http://example.org/s": {
|
|
63
|
+
* "http://example.org/says": [
|
|
64
|
+
* { "type": "literal", "value": "שלום", "lang": "he", "direction": "rtl" },
|
|
65
|
+
* { "type": "triple", "value": {
|
|
66
|
+
* "subject": { "type": "uri", "value": "http://example.org/a" },
|
|
67
|
+
* "predicate": { "type": "uri", "value": "http://example.org/b" },
|
|
68
|
+
* "object": { "type": "literal", "value": "c" } } }
|
|
69
|
+
* ]
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* RDF/JSON describes a single graph: serialising quads in named graphs fails
|
|
75
|
+
* unless `mergeGraphs: true` is given.
|
|
76
|
+
*
|
|
77
|
+
* @since 0.1.0
|
|
78
|
+
*/
|
|
79
|
+
var RdfJson_exports = /* @__PURE__ */ __exportAll({
|
|
80
|
+
BlankNodeValue: () => BlankNodeValue,
|
|
81
|
+
DatasetFromRdfJson: () => DatasetFromRdfJson,
|
|
82
|
+
DatasetFromString: () => DatasetFromString,
|
|
83
|
+
Document: () => Document,
|
|
84
|
+
LiteralValue: () => LiteralValue,
|
|
85
|
+
ObjectValue: () => ObjectValue,
|
|
86
|
+
RdfJsonFromString: () => RdfJsonFromString,
|
|
87
|
+
StrictDocument: () => StrictDocument,
|
|
88
|
+
StrictObjectValue: () => StrictObjectValue,
|
|
89
|
+
TripleTermValue: () => TripleTermValue,
|
|
90
|
+
UriValue: () => UriValue,
|
|
91
|
+
codec: () => codec,
|
|
92
|
+
format: () => format,
|
|
93
|
+
fromQuads: () => fromQuads,
|
|
94
|
+
makeDatasetSchema: () => makeDatasetSchema,
|
|
95
|
+
parse: () => parse,
|
|
96
|
+
parser: () => parser,
|
|
97
|
+
serialize: () => serialize,
|
|
98
|
+
serializer: () => serializer,
|
|
99
|
+
toDataset: () => toDataset
|
|
100
|
+
});
|
|
101
|
+
const FORMAT_NAME = "RDF/JSON";
|
|
102
|
+
const XSD_STRING = "http://www.w3.org/2001/XMLSchema#string";
|
|
103
|
+
const RDF_LANG_STRING = "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString";
|
|
104
|
+
const RDF_DIR_LANG_STRING = "http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString";
|
|
105
|
+
/**
|
|
106
|
+
* The RDF/JSON format description.
|
|
107
|
+
*
|
|
108
|
+
* @since 0.1.0
|
|
109
|
+
* @category formats
|
|
110
|
+
*/
|
|
111
|
+
const format = makeFormat({
|
|
112
|
+
name: FORMAT_NAME,
|
|
113
|
+
mediaType: "application/rdf+json",
|
|
114
|
+
extensions: ["rj"],
|
|
115
|
+
datasets: false
|
|
116
|
+
});
|
|
117
|
+
const trace = {
|
|
118
|
+
module: "RdfJson",
|
|
119
|
+
format
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* @since 0.1.0
|
|
123
|
+
* @category schemas
|
|
124
|
+
*/
|
|
125
|
+
const UriValue = Schema.Struct({
|
|
126
|
+
type: Schema.Literal("uri"),
|
|
127
|
+
value: Schema.String
|
|
128
|
+
}).annotate({
|
|
129
|
+
identifier: "UriValue",
|
|
130
|
+
description: "An RDF/JSON IRI value"
|
|
131
|
+
});
|
|
132
|
+
/**
|
|
133
|
+
* @since 0.1.0
|
|
134
|
+
* @category schemas
|
|
135
|
+
*/
|
|
136
|
+
const BlankNodeValue = Schema.Struct({
|
|
137
|
+
type: Schema.Literal("bnode"),
|
|
138
|
+
value: Schema.String.check(Schema.isPattern(/^_:.+$/s, { message: "Blank node values must have the form \"_:label\"" }))
|
|
139
|
+
}).annotate({
|
|
140
|
+
identifier: "BlankNodeValue",
|
|
141
|
+
description: "An RDF/JSON blank node value"
|
|
142
|
+
});
|
|
143
|
+
const Direction = Schema.Literals(["ltr", "rtl"]);
|
|
144
|
+
/**
|
|
145
|
+
* @since 0.1.0
|
|
146
|
+
* @category schemas
|
|
147
|
+
*/
|
|
148
|
+
const LiteralValue = Schema.Struct({
|
|
149
|
+
type: Schema.Literal("literal"),
|
|
150
|
+
value: Schema.String,
|
|
151
|
+
lang: Schema.optionalKey(Schema.String.check(Schema.isPattern(/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/, { message: "Invalid language tag" }))),
|
|
152
|
+
datatype: Schema.optionalKey(Schema.String),
|
|
153
|
+
direction: Schema.optionalKey(Direction)
|
|
154
|
+
}).check(Schema.makeFilter((l) => l.lang !== void 0 && l.datatype !== void 0 && l.datatype !== RDF_LANG_STRING && l.datatype !== RDF_DIR_LANG_STRING ? {
|
|
155
|
+
path: ["datatype"],
|
|
156
|
+
issue: "\"datatype\" cannot be combined with \"lang\""
|
|
157
|
+
} : void 0, {
|
|
158
|
+
identifier: "LiteralLangDatatype",
|
|
159
|
+
title: "Language or datatype",
|
|
160
|
+
description: "A literal with a \"lang\" has no \"datatype\" other than rdf:langString"
|
|
161
|
+
}), Schema.makeFilter((l) => l.direction !== void 0 && l.lang === void 0 ? {
|
|
162
|
+
path: ["direction"],
|
|
163
|
+
issue: "\"direction\" requires \"lang\""
|
|
164
|
+
} : void 0, {
|
|
165
|
+
identifier: "LiteralDirectionLang",
|
|
166
|
+
title: "Direction requires language",
|
|
167
|
+
description: "A literal with a \"direction\" also has a \"lang\""
|
|
168
|
+
})).annotate({
|
|
169
|
+
identifier: "LiteralValue",
|
|
170
|
+
description: "An RDF/JSON literal value"
|
|
171
|
+
});
|
|
172
|
+
const SubjectValue = Schema.Union([UriValue, BlankNodeValue]);
|
|
173
|
+
/**
|
|
174
|
+
* An RDF 1.2 triple term (extension).
|
|
175
|
+
*
|
|
176
|
+
* @since 0.1.0
|
|
177
|
+
* @category schemas
|
|
178
|
+
*/
|
|
179
|
+
const TripleTermValue = Schema.Struct({
|
|
180
|
+
type: Schema.Literal("triple"),
|
|
181
|
+
value: Schema.Struct({
|
|
182
|
+
subject: SubjectValue,
|
|
183
|
+
predicate: UriValue,
|
|
184
|
+
object: Schema.suspend(() => ObjectValue)
|
|
185
|
+
})
|
|
186
|
+
}).annotate({
|
|
187
|
+
identifier: "TripleTermValue",
|
|
188
|
+
description: "An RDF 1.2 triple term (extension)"
|
|
189
|
+
});
|
|
190
|
+
/**
|
|
191
|
+
* Any object value, including the RDF 1.2 extensions.
|
|
192
|
+
*
|
|
193
|
+
* @since 0.1.0
|
|
194
|
+
* @category schemas
|
|
195
|
+
*/
|
|
196
|
+
const ObjectValue = Schema.Union([
|
|
197
|
+
UriValue,
|
|
198
|
+
BlankNodeValue,
|
|
199
|
+
LiteralValue,
|
|
200
|
+
TripleTermValue
|
|
201
|
+
]).annotate({ expected: "an RDF/JSON value (\"type\" must be \"uri\", \"bnode\", \"literal\" or \"triple\")" });
|
|
202
|
+
/**
|
|
203
|
+
* An object value in strict RDF/JSON: no triple terms and no base
|
|
204
|
+
* direction.
|
|
205
|
+
*
|
|
206
|
+
* @since 0.1.0
|
|
207
|
+
* @category schemas
|
|
208
|
+
*/
|
|
209
|
+
const StrictObjectValue = Schema.Union([
|
|
210
|
+
UriValue,
|
|
211
|
+
BlankNodeValue,
|
|
212
|
+
LiteralValue.check(Schema.makeFilter((l) => l.direction !== void 0 ? {
|
|
213
|
+
path: ["direction"],
|
|
214
|
+
issue: "\"direction\" is an RDF 1.2 extension (disabled in strict mode)"
|
|
215
|
+
} : void 0, {
|
|
216
|
+
identifier: "StrictLiteralDirection",
|
|
217
|
+
title: "No base direction",
|
|
218
|
+
description: "A strict RDF/JSON literal has no \"direction\""
|
|
219
|
+
}))
|
|
220
|
+
]).annotate({ expected: "an RDF/JSON value (\"type\" must be \"uri\", \"bnode\" or \"literal\")" });
|
|
221
|
+
const makeDocument = (value) => Schema.Record(Schema.String, Schema.Record(Schema.String, Schema.Array(value)));
|
|
222
|
+
/**
|
|
223
|
+
* An RDF/JSON document, accepting the RDF 1.2 extensions.
|
|
224
|
+
*
|
|
225
|
+
* @since 0.1.0
|
|
226
|
+
* @category schemas
|
|
227
|
+
*/
|
|
228
|
+
const Document = makeDocument(ObjectValue).annotate({ description: "An RDF/JSON document (with the RDF 1.2 extensions)" });
|
|
229
|
+
/**
|
|
230
|
+
* A strict RDF/JSON document, rejecting the RDF 1.2 extensions.
|
|
231
|
+
*
|
|
232
|
+
* @since 0.1.0
|
|
233
|
+
* @category schemas
|
|
234
|
+
*/
|
|
235
|
+
const StrictDocument = makeDocument(StrictObjectValue).annotate({ description: "A strict RDF/JSON document" });
|
|
236
|
+
/**
|
|
237
|
+
* Decodes RDF/JSON text into a validated `Document` (and encodes documents
|
|
238
|
+
* as JSON text).
|
|
239
|
+
*
|
|
240
|
+
* @since 0.1.0
|
|
241
|
+
* @category schemas
|
|
242
|
+
*/
|
|
243
|
+
const RdfJsonFromString = Schema.fromJsonString(Document);
|
|
244
|
+
/**
|
|
245
|
+
* Converts a (validated) RDF/JSON document to a dataset.
|
|
246
|
+
*
|
|
247
|
+
* @since 0.1.0
|
|
248
|
+
* @category conversions
|
|
249
|
+
*/
|
|
250
|
+
const toDataset = (document, options) => {
|
|
251
|
+
const prefix = options?.blankNodePrefix ?? freshBlankNodePrefix();
|
|
252
|
+
const graph = options?.graph ?? defaultGraph;
|
|
253
|
+
const blank = (label) => new BlankNode(prefix + label.slice(2));
|
|
254
|
+
const subjectTerm = (key) => key.startsWith("_:") ? blank(key) : new NamedNode(key);
|
|
255
|
+
const objectTerm = Match.type().pipe(Match.withReturnType(), Match.when({ type: "uri" }, (v) => new NamedNode(v.value)), Match.when({ type: "bnode" }, (v) => blank(v.value)), Match.when({ type: "literal" }, (v) => {
|
|
256
|
+
if (v.lang !== void 0) return literal(v.value, v.direction !== void 0 ? {
|
|
257
|
+
language: v.lang,
|
|
258
|
+
direction: v.direction
|
|
259
|
+
} : v.lang);
|
|
260
|
+
return literal(v.value, new NamedNode(v.datatype ?? XSD_STRING));
|
|
261
|
+
}), Match.when({ type: "triple" }, (v) => new Triple(v.value.subject.type === "uri" ? new NamedNode(v.value.subject.value) : blank(v.value.subject.value), new NamedNode(v.value.predicate.value), objectTerm(v.value.object))), Match.exhaustive);
|
|
262
|
+
return mutate(empty, (b) => Arr.forEach(Record.toEntries(document), ([s, predicates]) => {
|
|
263
|
+
const subject = subjectTerm(s);
|
|
264
|
+
Arr.forEach(Record.toEntries(predicates), ([p, objects]) => {
|
|
265
|
+
const predicate = new NamedNode(p);
|
|
266
|
+
Arr.forEach(objects, (o) => b.add(new Quad(subject, predicate, objectTerm(o), graph)));
|
|
267
|
+
});
|
|
268
|
+
}));
|
|
269
|
+
};
|
|
270
|
+
var SerializeFailure = class {
|
|
271
|
+
message;
|
|
272
|
+
constructor(message) {
|
|
273
|
+
this.message = message;
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
const quadOrder = Order.combineAll([
|
|
277
|
+
Order.mapInput(Order$1, (q) => q.subject),
|
|
278
|
+
Order.mapInput(Order$1, (q) => q.predicate),
|
|
279
|
+
Order.mapInput(Order$1, (q) => q.object)
|
|
280
|
+
]);
|
|
281
|
+
const failSerialize = (message) => {
|
|
282
|
+
throw new SerializeFailure(message);
|
|
283
|
+
};
|
|
284
|
+
const resourceValue = (t) => isNamedNode(t) ? {
|
|
285
|
+
type: "uri",
|
|
286
|
+
value: t.value
|
|
287
|
+
} : {
|
|
288
|
+
type: "bnode",
|
|
289
|
+
value: `_:${t.value}`
|
|
290
|
+
};
|
|
291
|
+
const fromQuadsUnsafe = (quads, options) => {
|
|
292
|
+
const extensions = options.extensions ?? false;
|
|
293
|
+
const objectValue = Match.type().pipe(Match.withReturnType(), Match.tag("NamedNode", "BlankNode", (t) => resourceValue(t)), Match.tag("Literal", (t) => {
|
|
294
|
+
if (t.language !== "") {
|
|
295
|
+
if (t.direction === void 0) return {
|
|
296
|
+
type: "literal",
|
|
297
|
+
value: t.value,
|
|
298
|
+
lang: t.language
|
|
299
|
+
};
|
|
300
|
+
if (!extensions) failSerialize(`The literal ${t.key} has a base direction, which requires the RDF/JSON extensions`);
|
|
301
|
+
return {
|
|
302
|
+
type: "literal",
|
|
303
|
+
value: t.value,
|
|
304
|
+
lang: t.language,
|
|
305
|
+
direction: t.direction
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
return t.datatype.value === XSD_STRING ? {
|
|
309
|
+
type: "literal",
|
|
310
|
+
value: t.value
|
|
311
|
+
} : {
|
|
312
|
+
type: "literal",
|
|
313
|
+
value: t.value,
|
|
314
|
+
datatype: t.datatype.value
|
|
315
|
+
};
|
|
316
|
+
}), Match.tag("Triple", (t) => {
|
|
317
|
+
if (!extensions) failSerialize(`The triple term ${t.key} requires the RDF/JSON extensions`);
|
|
318
|
+
const subject = t.subject;
|
|
319
|
+
if (isTriple(subject)) throw new SerializeFailure(`Triple terms cannot have triple terms as subjects: ${t.key}`);
|
|
320
|
+
return {
|
|
321
|
+
type: "triple",
|
|
322
|
+
value: {
|
|
323
|
+
subject: resourceValue(subject),
|
|
324
|
+
predicate: {
|
|
325
|
+
type: "uri",
|
|
326
|
+
value: t.predicate.value
|
|
327
|
+
},
|
|
328
|
+
object: objectValue(t.object)
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
}), Match.exhaustive);
|
|
332
|
+
const merge = options.mergeGraphs ?? false;
|
|
333
|
+
const seen = MutableHashSet.empty();
|
|
334
|
+
const sorted = Arr.sort(quads, quadOrder);
|
|
335
|
+
const document = {};
|
|
336
|
+
Arr.forEach(sorted, (q) => {
|
|
337
|
+
if (!isDefaultGraph(q.graph) && !merge) failSerialize(`RDF/JSON cannot represent named graphs (found graph ${q.graph.key})`);
|
|
338
|
+
const tripleKey = `${q.subject.key} ${q.predicate.key} ${q.object.key}`;
|
|
339
|
+
if (MutableHashSet.has(seen, tripleKey)) return;
|
|
340
|
+
MutableHashSet.add(seen, tripleKey);
|
|
341
|
+
const subject = q.subject;
|
|
342
|
+
if (isTriple(subject)) throw new SerializeFailure("RDF/JSON cannot represent triple terms as subjects");
|
|
343
|
+
const s = isNamedNode(subject) ? subject.value : `_:${subject.value}`;
|
|
344
|
+
const predicates = document[s] ??= {};
|
|
345
|
+
(predicates[q.predicate.value] ??= []).push(objectValue(q.object));
|
|
346
|
+
});
|
|
347
|
+
return document;
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Converts quads to an RDF/JSON document.
|
|
351
|
+
*
|
|
352
|
+
* @since 0.1.0
|
|
353
|
+
* @category conversions
|
|
354
|
+
*/
|
|
355
|
+
const fromQuads = (quads, options) => Effect.try({
|
|
356
|
+
try: () => fromQuadsUnsafe(quads, options ?? {}),
|
|
357
|
+
catch: (e) => {
|
|
358
|
+
if (e instanceof SerializeFailure) return new RdfSerializeError({
|
|
359
|
+
format: FORMAT_NAME,
|
|
360
|
+
message: e.message
|
|
361
|
+
});
|
|
362
|
+
throw e;
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
/**
|
|
366
|
+
* Builds a schema transforming RDF/JSON documents into datasets and back,
|
|
367
|
+
* with the given conversion options.
|
|
368
|
+
*
|
|
369
|
+
* @since 0.1.0
|
|
370
|
+
* @category schemas
|
|
371
|
+
*/
|
|
372
|
+
const makeDatasetSchema = (options) => (options?.strict === true ? StrictDocument : Document).pipe(Schema.decodeTo(DatasetSchema, SchemaTransformation.transformEffect({
|
|
373
|
+
decode: (document) => Effect.sync(() => toDataset(document, options)),
|
|
374
|
+
encode: (dataset) => fromQuads(dataset, options).pipe(Effect.mapError((e) => new SchemaIssue.InvalidValue({ message: e.message }, dataset)))
|
|
375
|
+
})));
|
|
376
|
+
/**
|
|
377
|
+
* A schema transforming RDF/JSON documents into datasets and back. Decoding
|
|
378
|
+
* accepts the RDF 1.2 extensions; encoding writes strict RDF/JSON and fails
|
|
379
|
+
* for data that needs the extensions or uses named graphs.
|
|
380
|
+
*
|
|
381
|
+
* @since 0.1.0
|
|
382
|
+
* @category schemas
|
|
383
|
+
*/
|
|
384
|
+
const DatasetFromRdfJson = makeDatasetSchema();
|
|
385
|
+
/**
|
|
386
|
+
* A schema transforming RDF/JSON text into datasets and back.
|
|
387
|
+
*
|
|
388
|
+
* @since 0.1.0
|
|
389
|
+
* @category schemas
|
|
390
|
+
*/
|
|
391
|
+
const DatasetFromString = Schema.fromJsonString(DatasetFromRdfJson, { space: 2 });
|
|
392
|
+
/**
|
|
393
|
+
* Finds the offset of the first JSON syntax error (JavaScript engines do not
|
|
394
|
+
* always report one). Only used once `JSON.parse` has failed.
|
|
395
|
+
*/
|
|
396
|
+
const jsonErrorOffset = (input) => {
|
|
397
|
+
let i = 0;
|
|
398
|
+
const ws = () => {
|
|
399
|
+
WHITESPACE.lastIndex = i;
|
|
400
|
+
i += WHITESPACE.exec(input)?.[0].length ?? 0;
|
|
401
|
+
};
|
|
402
|
+
const fail = () => {
|
|
403
|
+
throw i;
|
|
404
|
+
};
|
|
405
|
+
const string = () => {
|
|
406
|
+
STRING_PREFIX.lastIndex = i;
|
|
407
|
+
i += STRING_PREFIX.exec(input)?.[0].length ?? 0;
|
|
408
|
+
if (input[i] !== "\"") fail();
|
|
409
|
+
i++;
|
|
410
|
+
};
|
|
411
|
+
const NUMBER = /-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?/y;
|
|
412
|
+
/** The members of an object or the items of an array, up to the closing `end`. */
|
|
413
|
+
const elements = (end, element) => {
|
|
414
|
+
i++;
|
|
415
|
+
ws();
|
|
416
|
+
if (input[i] === end) {
|
|
417
|
+
i++;
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
repeat(() => {
|
|
421
|
+
element();
|
|
422
|
+
ws();
|
|
423
|
+
if (input[i] === ",") {
|
|
424
|
+
i++;
|
|
425
|
+
return true;
|
|
426
|
+
}
|
|
427
|
+
if (input[i] !== end) fail();
|
|
428
|
+
i++;
|
|
429
|
+
return false;
|
|
430
|
+
});
|
|
431
|
+
};
|
|
432
|
+
const member = () => {
|
|
433
|
+
ws();
|
|
434
|
+
if (input[i] !== "\"") fail();
|
|
435
|
+
string();
|
|
436
|
+
ws();
|
|
437
|
+
if (input[i] !== ":") fail();
|
|
438
|
+
i++;
|
|
439
|
+
value();
|
|
440
|
+
};
|
|
441
|
+
const value = () => {
|
|
442
|
+
ws();
|
|
443
|
+
const c = input[i];
|
|
444
|
+
if (c === "{") elements("}", member);
|
|
445
|
+
else if (c === "[") elements("]", value);
|
|
446
|
+
else if (c === "\"") string();
|
|
447
|
+
else if (input.startsWith("true", i)) i += 4;
|
|
448
|
+
else if (input.startsWith("false", i)) i += 5;
|
|
449
|
+
else if (input.startsWith("null", i)) i += 4;
|
|
450
|
+
else {
|
|
451
|
+
NUMBER.lastIndex = i;
|
|
452
|
+
const m = NUMBER.exec(input);
|
|
453
|
+
if (m === null) return fail();
|
|
454
|
+
i += m[0].length;
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
const scan = () => {
|
|
458
|
+
value();
|
|
459
|
+
ws();
|
|
460
|
+
return i;
|
|
461
|
+
};
|
|
462
|
+
return Result.getOrElse(Result.try(scan), () => i);
|
|
463
|
+
};
|
|
464
|
+
const WHITESPACE = /[ \t\n\r]*/y;
|
|
465
|
+
/**
|
|
466
|
+
* The longest well-formed prefix of a JSON string, from its opening quote:
|
|
467
|
+
* any character but `"`, `\` and U+0000–U+001F (the C0 controls; DEL and the
|
|
468
|
+
* C1 controls are allowed), or an escape.
|
|
469
|
+
*/
|
|
470
|
+
const STRING_PREFIX = /"(?:[^"\\\p{Cc}]|[\x7f-\x9f]|\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4}))*/uy;
|
|
471
|
+
/** Runs `step` until it returns `false`. */
|
|
472
|
+
const repeat = (step) => Iterable.forEach(Iterable.unfold(true, (again) => again ? Option.some([void 0, step()]) : Option.none()), constVoid);
|
|
473
|
+
const jsonErrorPosition = (input) => {
|
|
474
|
+
const offset = jsonErrorOffset(input);
|
|
475
|
+
const before = input.slice(0, offset);
|
|
476
|
+
return {
|
|
477
|
+
line: before.split("\n").length,
|
|
478
|
+
column: offset - before.lastIndexOf("\n")
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
/**
|
|
482
|
+
* Parses RDF/JSON text into a dataset. The document shape is validated with
|
|
483
|
+
* the `Document` schema (or `StrictDocument` when `strict` is set), and
|
|
484
|
+
* validation failures are reported as `RdfParseError`s.
|
|
485
|
+
*
|
|
486
|
+
* @since 0.1.0
|
|
487
|
+
* @category parsing
|
|
488
|
+
*/
|
|
489
|
+
const parse = (input, options) => Effect.gen(function* () {
|
|
490
|
+
const json = yield* Effect.fromResult(parseJson(input)).pipe(Effect.mapError((e) => new RdfParseError({
|
|
491
|
+
format: FORMAT_NAME,
|
|
492
|
+
message: `Invalid JSON: ${e.message}`,
|
|
493
|
+
...jsonErrorPosition(input)
|
|
494
|
+
})));
|
|
495
|
+
const document = yield* Schema.decodeUnknownEffect(options?.strict === true ? StrictDocument : Document)(json).pipe(Effect.mapError((e) => new RdfParseError({
|
|
496
|
+
format: FORMAT_NAME,
|
|
497
|
+
message: e.message
|
|
498
|
+
})));
|
|
499
|
+
return {
|
|
500
|
+
dataset: toDataset(document, options),
|
|
501
|
+
prefixes: empty$1,
|
|
502
|
+
baseIri: options?.baseIri
|
|
503
|
+
};
|
|
504
|
+
}).pipe(withParseSpan(trace, input));
|
|
505
|
+
/**
|
|
506
|
+
* Serialises quads as RDF/JSON text.
|
|
507
|
+
*
|
|
508
|
+
* @since 0.1.0
|
|
509
|
+
* @category serializing
|
|
510
|
+
*/
|
|
511
|
+
const serialize = (quads, options) => fromQuads(quads, options).pipe(Effect.flatMap((document) => Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown, { space: options?.space ?? 2 }))(document).pipe(Effect.mapError((e) => new RdfSerializeError({
|
|
512
|
+
format: FORMAT_NAME,
|
|
513
|
+
message: e.message
|
|
514
|
+
})))), Effect.map((text) => `${text}\n`), withSerializeSpan(trace));
|
|
515
|
+
/**
|
|
516
|
+
* The RDF/JSON parser.
|
|
517
|
+
*
|
|
518
|
+
* @since 0.1.0
|
|
519
|
+
* @category parsing
|
|
520
|
+
*/
|
|
521
|
+
const parser = makeParser({
|
|
522
|
+
format,
|
|
523
|
+
parse
|
|
524
|
+
});
|
|
525
|
+
/**
|
|
526
|
+
* The RDF/JSON serializer.
|
|
527
|
+
*
|
|
528
|
+
* @since 0.1.0
|
|
529
|
+
* @category serializing
|
|
530
|
+
*/
|
|
531
|
+
const serializer = makeSerializer({
|
|
532
|
+
format,
|
|
533
|
+
serialize
|
|
534
|
+
});
|
|
535
|
+
/**
|
|
536
|
+
* The RDF/JSON codec. Its `schema` is `DatasetFromString`, so decoding
|
|
537
|
+
* errors carry the precise schema issue.
|
|
538
|
+
*
|
|
539
|
+
* @since 0.1.0
|
|
540
|
+
* @category codecs
|
|
541
|
+
*/
|
|
542
|
+
const codec = {
|
|
543
|
+
...makeCodec(parser, serializer),
|
|
544
|
+
schema: DatasetFromString
|
|
545
|
+
};
|
|
546
|
+
export { parse as _, LiteralValue as a, serializer as b, RdfJson_exports as c, TripleTermValue as d, UriValue as f, makeDatasetSchema as g, fromQuads as h, Document as i, StrictDocument as l, format as m, DatasetFromRdfJson as n, ObjectValue as o, codec as p, DatasetFromString as r, RdfJsonFromString as s, BlankNodeValue as t, StrictObjectValue as u, parser as v, toDataset as x, serialize as y };
|
|
547
|
+
|
|
548
|
+
//# sourceMappingURL=RdfJson-BNocgW4f.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RdfJson-BNocgW4f.mjs","names":["Serialization.makeFormat","Serialization.freshBlankNodePrefix","Term.defaultGraph","Term.BlankNode","Term.NamedNode","Term.literal","Term.Triple","Dataset.mutate","Dataset.empty","Term.Quad","Term.Order","Term.isNamedNode","Term.isTriple","Term.isDefaultGraph","Serialization.RdfSerializeError","Dataset.DatasetSchema","Serialization.RdfParseError","PrefixMap.empty","Serialization.withParseSpan","Serialization.withSerializeSpan","Serialization.makeParser","Serialization.makeSerializer","Serialization.makeCodec"],"sources":["../src/rdfjson/internal/json.ts","../src/rdfjson/RdfJson.ts"],"sourcesContent":["/**\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 * RDF/JSON (https://www.w3.org/TR/rdf-json/), media type\n * `application/rdf+json`.\n *\n * The document structure is described with Effect `Schema`s, so decoding\n * validates the JSON shape and reports precise errors. `RdfJsonFromString`\n * decodes JSON text into a typed `Document`, and `DatasetFromRdfJson` /\n * `DatasetFromString` transform documents into core `Dataset`s and back.\n *\n * ## RDF 1.2 extensions\n *\n * RDF/JSON predates RDF 1.2. This module defines two backwards-compatible\n * extensions, accepted when parsing by default and written only when\n * `extensions: true` is passed to the serializer:\n *\n * - **Base direction**: a literal object with a `\"lang\"` may carry\n * `\"direction\": \"ltr\" | \"rtl\"`, denoting a directional language-tagged\n * string (`rdf:dirLangString`).\n * - **Triple terms**: an object value `{ \"type\": \"triple\", \"value\": { … } }`\n * whose `value` has `\"subject\"` (a `uri` or `bnode` value), `\"predicate\"`\n * (a `uri` value) and `\"object\"` (any object value, including another\n * triple term) members.\n *\n * ```json\n * {\n * \"http://example.org/s\": {\n * \"http://example.org/says\": [\n * { \"type\": \"literal\", \"value\": \"שלום\", \"lang\": \"he\", \"direction\": \"rtl\" },\n * { \"type\": \"triple\", \"value\": {\n * \"subject\": { \"type\": \"uri\", \"value\": \"http://example.org/a\" },\n * \"predicate\": { \"type\": \"uri\", \"value\": \"http://example.org/b\" },\n * \"object\": { \"type\": \"literal\", \"value\": \"c\" } } }\n * ]\n * }\n * }\n * ```\n *\n * RDF/JSON describes a single graph: serialising quads in named graphs fails\n * unless `mergeGraphs: true` is given.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport { constVoid } from 'effect/Function';\nimport * as Iterable from 'effect/Iterable';\nimport * as Match from 'effect/Match';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Order from 'effect/Order';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaIssue from 'effect/SchemaIssue';\nimport * as SchemaTransformation from 'effect/SchemaTransformation';\nimport * as Dataset from '../Dataset.ts';\nimport * as PrefixMap from '../PrefixMap.ts';\nimport * as Serialization from '../Serialization.ts';\nimport * as Term from '../Term.ts';\nimport { parseJson } from './internal/json.ts';\n\nconst FORMAT_NAME = 'RDF/JSON';\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\nconst RDF_LANG_STRING = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString';\nconst RDF_DIR_LANG_STRING = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString';\n\n/**\n * The RDF/JSON format description.\n *\n * @since 0.1.0\n * @category formats\n */\nexport const format: Serialization.Format = Serialization.makeFormat({\n name: FORMAT_NAME,\n mediaType: 'application/rdf+json',\n extensions: ['rj'],\n datasets: false,\n});\n\n// Spans are named `RdfJson.parse`, `RdfJson.serialize`.\nconst trace: Serialization.SpanTarget = { module: 'RdfJson', format };\n\n// -----------------------------------------------------------------------------\n// Document model\n// -----------------------------------------------------------------------------\n\n/**\n * An IRI value: `{ \"type\": \"uri\", \"value\": \"http://…\" }`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type UriValue = {\n readonly type: 'uri';\n readonly value: string;\n};\n\n/**\n * A blank node value: `{ \"type\": \"bnode\", \"value\": \"_:label\" }`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type BlankNodeValue = {\n readonly type: 'bnode';\n readonly value: string;\n};\n\n/**\n * A literal value. `lang` and `datatype` are mutually exclusive;\n * `direction` is an RDF 1.2 extension that requires `lang`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type LiteralValue = {\n readonly type: 'literal';\n readonly value: string;\n readonly lang?: string;\n readonly datatype?: string;\n readonly direction?: Term.Direction;\n};\n\n/**\n * An RDF 1.2 triple term value (extension).\n *\n * @since 0.1.0\n * @category models\n */\nexport type TripleTermValue = {\n readonly type: 'triple';\n readonly value: {\n readonly subject: UriValue | BlankNodeValue;\n readonly predicate: UriValue;\n readonly object: ObjectValue;\n };\n};\n\n/**\n * Any value in the object position.\n *\n * @since 0.1.0\n * @category models\n */\nexport type ObjectValue = UriValue | BlankNodeValue | LiteralValue | TripleTermValue;\n\n/**\n * An RDF/JSON document: subject → predicate → array of object values.\n * Subjects are IRIs or blank node labels (`\"_:label\"`).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Document {\n readonly [subject: string]: { readonly [predicate: string]: ReadonlyArray<ObjectValue> };\n}\n\n// -----------------------------------------------------------------------------\n// Schemas\n// -----------------------------------------------------------------------------\n\n/**\n * @since 0.1.0\n * @category schemas\n */\nexport const UriValue: Schema.Codec<UriValue> = Schema.Struct({\n type: Schema.Literal('uri'),\n value: Schema.String,\n}).annotate({ identifier: 'UriValue', description: 'An RDF/JSON IRI value' });\n\n/**\n * @since 0.1.0\n * @category schemas\n */\nexport const BlankNodeValue: Schema.Codec<BlankNodeValue> = Schema.Struct({\n type: Schema.Literal('bnode'),\n value: Schema.String.check(\n Schema.isPattern(/^_:.+$/s, { message: 'Blank node values must have the form \"_:label\"' }),\n ),\n}).annotate({ identifier: 'BlankNodeValue', description: 'An RDF/JSON blank node value' });\n\nconst Direction = Schema.Literals(['ltr', 'rtl']);\n\n/**\n * @since 0.1.0\n * @category schemas\n */\nexport const LiteralValue: Schema.Codec<LiteralValue> = Schema.Struct({\n type: Schema.Literal('literal'),\n value: Schema.String,\n lang: Schema.optionalKey(\n Schema.String.check(\n Schema.isPattern(/^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/, { message: 'Invalid language tag' }),\n ),\n ),\n datatype: Schema.optionalKey(Schema.String),\n direction: Schema.optionalKey(Direction),\n})\n .check(\n Schema.makeFilter(\n (l) =>\n l.lang !== undefined &&\n l.datatype !== undefined &&\n l.datatype !== RDF_LANG_STRING &&\n l.datatype !== RDF_DIR_LANG_STRING\n ? { path: ['datatype'], issue: '\"datatype\" cannot be combined with \"lang\"' }\n : undefined,\n {\n identifier: 'LiteralLangDatatype',\n title: 'Language or datatype',\n description: 'A literal with a \"lang\" has no \"datatype\" other than rdf:langString',\n },\n ),\n Schema.makeFilter(\n (l) =>\n l.direction !== undefined && l.lang === undefined\n ? { path: ['direction'], issue: '\"direction\" requires \"lang\"' }\n : undefined,\n {\n identifier: 'LiteralDirectionLang',\n title: 'Direction requires language',\n description: 'A literal with a \"direction\" also has a \"lang\"',\n },\n ),\n )\n .annotate({ identifier: 'LiteralValue', description: 'An RDF/JSON literal value' });\n\nconst SubjectValue = Schema.Union([UriValue, BlankNodeValue]);\n\n/**\n * An RDF 1.2 triple term (extension).\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const TripleTermValue: Schema.Codec<TripleTermValue> = Schema.Struct({\n type: Schema.Literal('triple'),\n value: Schema.Struct({\n subject: SubjectValue,\n predicate: UriValue,\n object: Schema.suspend((): Schema.Codec<ObjectValue> => ObjectValue),\n }),\n}).annotate({ identifier: 'TripleTermValue', description: 'An RDF 1.2 triple term (extension)' });\n\n/**\n * Any object value, including the RDF 1.2 extensions.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const ObjectValue: Schema.Codec<ObjectValue> = Schema.Union([\n UriValue,\n BlankNodeValue,\n LiteralValue,\n TripleTermValue,\n]).annotate({\n expected: 'an RDF/JSON value (\"type\" must be \"uri\", \"bnode\", \"literal\" or \"triple\")',\n});\n\n/**\n * The type of an object value in strict RDF/JSON (the `StrictObjectValue`\n * schema's decoded type).\n *\n * @since 0.1.0\n * @category models\n */\nexport type StrictObjectValue = typeof StrictObjectValue.Type;\n\n/**\n * An object value in strict RDF/JSON: no triple terms and no base\n * direction.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const StrictObjectValue: Schema.Codec<UriValue | BlankNodeValue | LiteralValue> =\n Schema.Union([\n UriValue,\n BlankNodeValue,\n LiteralValue.check(\n Schema.makeFilter(\n (l) =>\n l.direction !== undefined\n ? {\n path: ['direction'],\n issue: '\"direction\" is an RDF 1.2 extension (disabled in strict mode)',\n }\n : undefined,\n {\n identifier: 'StrictLiteralDirection',\n title: 'No base direction',\n description: 'A strict RDF/JSON literal has no \"direction\"',\n },\n ),\n ),\n ]).annotate({\n expected: 'an RDF/JSON value (\"type\" must be \"uri\", \"bnode\" or \"literal\")',\n });\n\nconst makeDocument = (value: Schema.Codec<ObjectValue>): Schema.Codec<Document> =>\n Schema.Record(Schema.String, Schema.Record(Schema.String, Schema.Array(value)));\n\n/**\n * An RDF/JSON document, accepting the RDF 1.2 extensions.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const Document: Schema.Codec<Document> = makeDocument(ObjectValue).annotate({\n description: 'An RDF/JSON document (with the RDF 1.2 extensions)',\n});\n\n/**\n * A strict RDF/JSON document, rejecting the RDF 1.2 extensions.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const StrictDocument: Schema.Codec<Document> = makeDocument(StrictObjectValue).annotate({\n description: 'A strict RDF/JSON document',\n});\n\n/**\n * The decoded type of `RdfJsonFromString`: a validated `Document`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type RdfJsonFromString = typeof RdfJsonFromString.Type;\n\n/**\n * Decodes RDF/JSON text into a validated `Document` (and encodes documents\n * as JSON text).\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const RdfJsonFromString: Schema.Codec<Document, string> = Schema.fromJsonString(Document);\n\n// -----------------------------------------------------------------------------\n// Conversions\n// -----------------------------------------------------------------------------\n\n/**\n * Options for converting RDF/JSON documents to datasets.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ToDatasetOptions {\n /** The graph to place triples in. Defaults to the default graph. */\n readonly graph?: Term.Graph | undefined;\n /**\n * Prefix for blank node labels. Defaults to a fresh prefix per document,\n * so that blank nodes from different documents never clash.\n */\n readonly blankNodePrefix?: string | undefined;\n}\n\n/**\n * Converts a (validated) RDF/JSON document to a dataset.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const toDataset = (document: Document, options?: ToDatasetOptions): Dataset.Dataset => {\n const prefix = options?.blankNodePrefix ?? Serialization.freshBlankNodePrefix();\n const graph = options?.graph ?? Term.defaultGraph;\n const blank = (label: string) => new Term.BlankNode(prefix + label.slice(2));\n const subjectTerm = (key: string): Term.NamedNode | Term.BlankNode =>\n key.startsWith('_:') ? blank(key) : new Term.NamedNode(key);\n // Built once per document: `objectTerm` runs for every object value.\n const objectTerm: (v: ObjectValue) => Term.Object = Match.type<ObjectValue>().pipe(\n Match.withReturnType<Term.Object>(),\n Match.when({ type: 'uri' }, (v) => new Term.NamedNode(v.value)),\n Match.when({ type: 'bnode' }, (v) => blank(v.value)),\n Match.when({ type: 'literal' }, (v) => {\n if (v.lang !== undefined) {\n return Term.literal(\n v.value,\n v.direction !== undefined ? { language: v.lang, direction: v.direction } : v.lang,\n );\n }\n return Term.literal(v.value, new Term.NamedNode(v.datatype ?? XSD_STRING));\n }),\n Match.when(\n { type: 'triple' },\n (v) =>\n new Term.Triple(\n v.value.subject.type === 'uri'\n ? new Term.NamedNode(v.value.subject.value)\n : blank(v.value.subject.value),\n new Term.NamedNode(v.value.predicate.value),\n objectTerm(v.value.object),\n ),\n ),\n Match.exhaustive,\n );\n return Dataset.mutate(Dataset.empty, (b) =>\n Arr.forEach(Record.toEntries(document), ([s, predicates]) => {\n const subject = subjectTerm(s);\n Arr.forEach(Record.toEntries(predicates), ([p, objects]) => {\n const predicate = new Term.NamedNode(p);\n Arr.forEach(objects, (o) => b.add(new Term.Quad(subject, predicate, objectTerm(o), graph)));\n });\n }),\n );\n};\n\n/**\n * Options for converting quads to RDF/JSON.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface FromQuadsOptions {\n /**\n * Whether to use the RDF 1.2 extensions (base direction and triple terms).\n * When `false` (the default), data that needs them is rejected with an\n * `RdfSerializeError`.\n */\n readonly extensions?: boolean | undefined;\n /**\n * Whether to merge quads from named graphs into the single RDF/JSON graph.\n * When `false` (the default), quads in named graphs are rejected.\n */\n readonly mergeGraphs?: boolean | undefined;\n}\n\nclass SerializeFailure {\n readonly message: string;\n constructor(message: string) {\n this.message = message;\n }\n}\n\n// Subject, predicate, object only — not `Term.QuadOrder`, which sorts by graph first: RDF/JSON\n// has no graphs, so quads from every graph interleave by their triple.\nconst quadOrder: Order.Order<Term.Quad> = Order.combineAll([\n Order.mapInput(Term.Order, (q: Term.Quad) => q.subject),\n Order.mapInput(Term.Order, (q: Term.Quad) => q.predicate),\n Order.mapInput(Term.Order, (q: Term.Quad) => q.object),\n]);\n\nconst failSerialize = (message: string): never => {\n throw new SerializeFailure(message);\n};\n\nconst resourceValue = (t: Term.NamedNode | Term.BlankNode): UriValue | BlankNodeValue =>\n Term.isNamedNode(t) ? { type: 'uri', value: t.value } : { type: 'bnode', value: `_:${t.value}` };\n\nconst fromQuadsUnsafe = (quads: Iterable<Term.Quad>, options: FromQuadsOptions): Document => {\n const extensions = options.extensions ?? false;\n // Built once per serialisation: `objectValue` runs for every object term.\n const objectValue: (t: Term.Object) => ObjectValue = Match.type<Term.Object>().pipe(\n Match.withReturnType<ObjectValue>(),\n Match.tag('NamedNode', 'BlankNode', (t) => resourceValue(t)),\n Match.tag('Literal', (t) => {\n if (t.language !== '') {\n if (t.direction === undefined) return { type: 'literal', value: t.value, lang: t.language };\n if (!extensions) {\n failSerialize(\n `The literal ${t.key} has a base direction, which requires the RDF/JSON extensions`,\n );\n }\n return { type: 'literal', value: t.value, lang: t.language, direction: t.direction };\n }\n return t.datatype.value === XSD_STRING\n ? { type: 'literal', value: t.value }\n : { type: 'literal', value: t.value, datatype: t.datatype.value };\n }),\n Match.tag('Triple', (t) => {\n if (!extensions) {\n failSerialize(`The triple term ${t.key} requires the RDF/JSON extensions`);\n }\n const subject = t.subject;\n if (Term.isTriple(subject)) {\n throw new SerializeFailure(`Triple terms cannot have triple terms as subjects: ${t.key}`);\n }\n return {\n type: 'triple',\n value: {\n subject: resourceValue(subject),\n predicate: { type: 'uri', value: t.predicate.value },\n object: objectValue(t.object),\n },\n };\n }),\n Match.exhaustive,\n );\n const merge = options.mergeGraphs ?? false;\n const seen = MutableHashSet.empty<string>();\n const sorted = Arr.sort(quads, quadOrder);\n const document: { [subject: string]: { [predicate: string]: Array<ObjectValue> } } = {};\n Arr.forEach(sorted, (q) => {\n if (!Term.isDefaultGraph(q.graph) && !merge) {\n failSerialize(`RDF/JSON cannot represent named graphs (found graph ${q.graph.key})`);\n }\n const tripleKey = `${q.subject.key} ${q.predicate.key} ${q.object.key}`;\n if (MutableHashSet.has(seen, tripleKey)) return;\n MutableHashSet.add(seen, tripleKey);\n const subject = q.subject;\n if (Term.isTriple(subject)) {\n throw new SerializeFailure('RDF/JSON cannot represent triple terms as subjects');\n }\n const s = Term.isNamedNode(subject) ? subject.value : `_:${subject.value}`;\n const predicates = (document[s] ??= {});\n (predicates[q.predicate.value] ??= []).push(objectValue(q.object));\n });\n return document;\n};\n\n/**\n * Converts quads to an RDF/JSON document.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const fromQuads = (\n quads: Iterable<Term.Quad>,\n options?: FromQuadsOptions,\n): Effect.Effect<Document, Serialization.RdfSerializeError> =>\n Effect.try({\n try: () => fromQuadsUnsafe(quads, options ?? {}),\n // Anything but a `SerializeFailure` is a bug: rethrown, it becomes a defect.\n catch: (e) => {\n if (e instanceof SerializeFailure) {\n return new Serialization.RdfSerializeError({ format: FORMAT_NAME, message: e.message });\n }\n throw e;\n },\n });\n\n/**\n * Builds a schema transforming RDF/JSON documents into datasets and back,\n * with the given conversion options.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const makeDatasetSchema = (\n options?: ToDatasetOptions & FromQuadsOptions & { readonly strict?: boolean | undefined },\n): Schema.Codec<Dataset.Dataset, Document> =>\n (options?.strict === true ? StrictDocument : Document).pipe(\n Schema.decodeTo(\n Dataset.DatasetSchema,\n SchemaTransformation.transformEffect({\n decode: (document: Document) => Effect.sync(() => toDataset(document, options)),\n encode: (dataset: Dataset.Dataset) =>\n fromQuads(dataset, options).pipe(\n Effect.mapError((e) => new SchemaIssue.InvalidValue({ message: e.message }, dataset)),\n ),\n }),\n ),\n );\n\n/**\n * A schema transforming RDF/JSON documents into datasets and back. Decoding\n * accepts the RDF 1.2 extensions; encoding writes strict RDF/JSON and fails\n * for data that needs the extensions or uses named graphs.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const DatasetFromRdfJson: Schema.Codec<Dataset.Dataset, Document> = makeDatasetSchema();\n\n/**\n * The decoded type of `DatasetFromString`: a `Dataset`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type DatasetFromString = typeof DatasetFromString.Type;\n\n/**\n * A schema transforming RDF/JSON text into datasets and back.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const DatasetFromString: Schema.Codec<Dataset.Dataset, string> = Schema.fromJsonString(\n DatasetFromRdfJson,\n { space: 2 },\n);\n\n// -----------------------------------------------------------------------------\n// Parser / serializer\n// -----------------------------------------------------------------------------\n\n/**\n * Options for parsing RDF/JSON.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ParseOptions extends Serialization.ParseOptions {\n /** Reject the RDF 1.2 extensions. Defaults to `false`. */\n readonly strict?: boolean | undefined;\n}\n\n/**\n * Finds the offset of the first JSON syntax error (JavaScript engines do not\n * always report one). Only used once `JSON.parse` has failed.\n */\nconst jsonErrorOffset = (input: string): number => {\n let i = 0;\n const ws = () => {\n WHITESPACE.lastIndex = i;\n i += WHITESPACE.exec(input)?.[0].length ?? 0;\n };\n const fail = (): never => {\n throw i;\n };\n const string = () => {\n // The longest well-formed prefix of the string; it fails where it stops\n // unless a closing quote follows.\n STRING_PREFIX.lastIndex = i;\n i += STRING_PREFIX.exec(input)?.[0].length ?? 0;\n if (input[i] !== '\"') fail();\n i++;\n };\n const NUMBER = /-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?/y;\n /** The members of an object or the items of an array, up to the closing `end`. */\n const elements = (end: string, element: () => void) => {\n i++;\n ws();\n if (input[i] === end) {\n i++;\n return;\n }\n repeat(() => {\n element();\n ws();\n if (input[i] === ',') {\n i++;\n return true;\n }\n if (input[i] !== end) fail();\n i++;\n return false;\n });\n };\n const member = () => {\n ws();\n if (input[i] !== '\"') fail();\n string();\n ws();\n if (input[i] !== ':') fail();\n i++;\n value();\n };\n const value = (): void => {\n ws();\n const c = input[i];\n if (c === '{') elements('}', member);\n else if (c === '[') elements(']', value);\n else if (c === '\"') string();\n else if (input.startsWith('true', i)) i += 4;\n else if (input.startsWith('false', i)) i += 5;\n else if (input.startsWith('null', i)) i += 4;\n else {\n NUMBER.lastIndex = i;\n const m = NUMBER.exec(input);\n if (m === null) return fail();\n i += m[0].length;\n }\n };\n const scan = () => {\n value();\n ws();\n return i;\n };\n // `fail` throws at the offending offset, which is `i`.\n return Result.getOrElse(Result.try(scan), () => i);\n};\n\nconst WHITESPACE = /[ \\t\\n\\r]*/y;\n\n/**\n * The longest well-formed prefix of a JSON string, from its opening quote:\n * any character but `\"`, `\\` and U+0000–U+001F (the C0 controls; DEL and the\n * C1 controls are allowed), or an escape.\n */\nconst STRING_PREFIX = /\"(?:[^\"\\\\\\p{Cc}]|[\\x7f-\\x9f]|\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-F]{4}))*/uy;\n\n/** Runs `step` until it returns `false`. */\nconst repeat = (step: () => boolean): void =>\n Iterable.forEach(\n Iterable.unfold(true, (again) =>\n again ? Option.some([undefined, step()] as const) : Option.none(),\n ),\n constVoid,\n );\n\nconst jsonErrorPosition = (input: string) => {\n const offset = jsonErrorOffset(input);\n const before = input.slice(0, offset);\n const line = before.split('\\n').length;\n return { line, column: offset - before.lastIndexOf('\\n') };\n};\n\n/**\n * Parses RDF/JSON text into a dataset. The document shape is validated with\n * the `Document` schema (or `StrictDocument` when `strict` is set), and\n * validation failures are reported as `RdfParseError`s.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parse = (\n input: string,\n options?: ParseOptions,\n): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>\n Effect.gen(function* () {\n const json = yield* Effect.fromResult(parseJson(input)).pipe(\n Effect.mapError(\n (e) =>\n new Serialization.RdfParseError({\n format: FORMAT_NAME,\n message: `Invalid JSON: ${e.message}`,\n ...jsonErrorPosition(input),\n }),\n ),\n );\n const document = yield* Schema.decodeUnknownEffect(\n options?.strict === true ? StrictDocument : Document,\n )(json).pipe(\n Effect.mapError(\n (e) => new Serialization.RdfParseError({ format: FORMAT_NAME, message: e.message }),\n ),\n );\n return {\n dataset: toDataset(document, options),\n prefixes: PrefixMap.empty,\n baseIri: options?.baseIri,\n };\n }).pipe(Serialization.withParseSpan(trace, input));\n\n/**\n * Options for serialising RDF/JSON.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface SerializeOptions extends Serialization.SerializeOptions, FromQuadsOptions {\n /** Indentation passed to `JSON.stringify`. Defaults to 2 spaces. */\n readonly space?: number | string | undefined;\n}\n\n/**\n * Serialises quads as RDF/JSON text.\n *\n * @since 0.1.0\n * @category serializing\n */\nexport const serialize = (\n quads: Iterable<Term.Quad>,\n options?: SerializeOptions,\n): Effect.Effect<string, Serialization.RdfSerializeError> =>\n fromQuads(quads, options).pipe(\n Effect.flatMap((document) =>\n Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown, { space: options?.space ?? 2 }))(\n document,\n ).pipe(\n Effect.mapError(\n (e) => new Serialization.RdfSerializeError({ format: FORMAT_NAME, message: e.message }),\n ),\n ),\n ),\n Effect.map((text) => `${text}\\n`),\n Serialization.withSerializeSpan(trace),\n );\n\n/**\n * The RDF/JSON parser.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parser: Serialization.Parser<ParseOptions> = Serialization.makeParser({\n format,\n parse,\n});\n\n/**\n * The RDF/JSON serializer.\n *\n * @since 0.1.0\n * @category serializing\n */\nexport const serializer: Serialization.Serializer<SerializeOptions> = Serialization.makeSerializer({\n format,\n serialize,\n});\n\n/**\n * The RDF/JSON codec. Its `schema` is `DatasetFromString`, so decoding\n * errors carry the precise schema issue.\n *\n * @since 0.1.0\n * @category codecs\n */\nexport const codec: Serialization.Codec<ParseOptions, SerializeOptions> = {\n ...Serialization.makeCodec(parser, serializer),\n schema: DatasetFromString,\n};\n"],"mappings":"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"}
|