@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,243 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { A as escapeString, B as isNamedNode, Y as literal, k as escapeIri, o as Literal } from "./Term-CFLG1qu4.mjs";
|
|
3
|
+
import * as Match from "effect/Match";
|
|
4
|
+
// src/ntriples/Lexical.ts
|
|
5
|
+
/**
|
|
6
|
+
* Lexical rules shared by the N-Triples family of RDF syntaxes (N-Triples,
|
|
7
|
+
* N-Quads, Turtle and TriG): character classes, escape decoding, language
|
|
8
|
+
* tags with base direction, and canonical term formatting.
|
|
9
|
+
*
|
|
10
|
+
* These are low-level, pure helpers; most users want the `NTriples` and
|
|
11
|
+
* `NQuads` modules instead.
|
|
12
|
+
*
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
*/
|
|
15
|
+
var Lexical_exports = /* @__PURE__ */ __exportAll({
|
|
16
|
+
blankNodeLabel: () => blankNodeLabel,
|
|
17
|
+
decodeEchar: () => decodeEchar,
|
|
18
|
+
decodeUchar: () => decodeUchar,
|
|
19
|
+
formatIri: () => formatIri,
|
|
20
|
+
formatLiteral: () => formatLiteral,
|
|
21
|
+
formatTerm: () => formatTerm,
|
|
22
|
+
isAbsoluteIri: () => isAbsoluteIri,
|
|
23
|
+
isBlankNodeLabel: () => isBlankNodeLabel,
|
|
24
|
+
isDigit: () => isDigit,
|
|
25
|
+
isHex: () => isHex,
|
|
26
|
+
isIriChar: () => isIriChar,
|
|
27
|
+
isPnChars: () => isPnChars,
|
|
28
|
+
isPnCharsBase: () => isPnCharsBase,
|
|
29
|
+
isPnCharsU: () => isPnCharsU,
|
|
30
|
+
isWritableIri: () => isWritableIri,
|
|
31
|
+
makeLiteral: () => makeLiteral,
|
|
32
|
+
parseLanguageTag: () => parseLanguageTag
|
|
33
|
+
});
|
|
34
|
+
const RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
|
|
35
|
+
const RDF_LANG_STRING = `${RDF}langString`;
|
|
36
|
+
const RDF_DIR_LANG_STRING = `${RDF}dirLangString`;
|
|
37
|
+
const XSD_STRING = "http://www.w3.org/2001/XMLSchema#string";
|
|
38
|
+
/**
|
|
39
|
+
* `PN_CHARS_BASE` from the Turtle / N-Triples grammars.
|
|
40
|
+
*
|
|
41
|
+
* @since 0.1.0
|
|
42
|
+
* @category character classes
|
|
43
|
+
*/
|
|
44
|
+
const isPnCharsBase = (c) => c >= 65 && c <= 90 || c >= 97 && c <= 122 || c >= 192 && c <= 214 || c >= 216 && c <= 246 || c >= 248 && c <= 767 || c >= 880 && c <= 893 || c >= 895 && c <= 8191 || c >= 8204 && c <= 8205 || c >= 8304 && c <= 8591 || c >= 11264 && c <= 12271 || c >= 12289 && c <= 55295 || c >= 63744 && c <= 64975 || c >= 65008 && c <= 65533 || c >= 65536 && c <= 983039;
|
|
45
|
+
/**
|
|
46
|
+
* `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.
|
|
47
|
+
*
|
|
48
|
+
* @since 0.1.0
|
|
49
|
+
* @category character classes
|
|
50
|
+
*/
|
|
51
|
+
const isPnCharsU = (c) => c === 95 || isPnCharsBase(c);
|
|
52
|
+
/**
|
|
53
|
+
* `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.
|
|
54
|
+
*
|
|
55
|
+
* @since 0.1.0
|
|
56
|
+
* @category character classes
|
|
57
|
+
*/
|
|
58
|
+
const isPnChars = (c) => isPnCharsU(c) || c === 45 || c >= 48 && c <= 57 || c === 183 || c >= 768 && c <= 879 || c >= 8255 && c <= 8256;
|
|
59
|
+
/**
|
|
60
|
+
* Whether a code point is an ASCII digit.
|
|
61
|
+
*
|
|
62
|
+
* @since 0.1.0
|
|
63
|
+
* @category character classes
|
|
64
|
+
*/
|
|
65
|
+
const isDigit = (c) => c >= 48 && c <= 57;
|
|
66
|
+
/**
|
|
67
|
+
* Whether a code point is an ASCII hexadecimal digit.
|
|
68
|
+
*
|
|
69
|
+
* @since 0.1.0
|
|
70
|
+
* @category character classes
|
|
71
|
+
*/
|
|
72
|
+
const isHex = (c) => c >= 48 && c <= 57 || c >= 65 && c <= 70 || c >= 97 && c <= 102;
|
|
73
|
+
/**
|
|
74
|
+
* Whether a code point may appear unescaped inside an `IRIREF`
|
|
75
|
+
* (`[^#x00-#x20<>"{}|^`\]`).
|
|
76
|
+
*
|
|
77
|
+
* @since 0.1.0
|
|
78
|
+
* @category character classes
|
|
79
|
+
*/
|
|
80
|
+
const isIriChar = (c) => c > 32 && c !== 60 && c !== 62 && c !== 34 && c !== 123 && c !== 125 && c !== 124 && c !== 94 && c !== 96 && c !== 92;
|
|
81
|
+
const SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*:/;
|
|
82
|
+
/**
|
|
83
|
+
* Whether a string is an absolute IRI reference (starts with a scheme).
|
|
84
|
+
*
|
|
85
|
+
* @since 0.1.0
|
|
86
|
+
* @category validation
|
|
87
|
+
*/
|
|
88
|
+
const isAbsoluteIri = (iri) => SCHEME.test(iri);
|
|
89
|
+
/**
|
|
90
|
+
* Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is
|
|
91
|
+
* absolute and contains no characters that would need escaping.
|
|
92
|
+
*
|
|
93
|
+
* @since 0.1.0
|
|
94
|
+
* @category validation
|
|
95
|
+
*/
|
|
96
|
+
const isWritableIri = (iri) => isAbsoluteIri(iri) && escapeIri(iri) === iri;
|
|
97
|
+
/** The code point of a one-code-point string (as `Array.from` splits a string). */
|
|
98
|
+
const codePointOf = (ch) => ch.codePointAt(0) ?? 0;
|
|
99
|
+
const HEX_DIGITS = /^[0-9A-Fa-f]*$/;
|
|
100
|
+
/**
|
|
101
|
+
* Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).
|
|
102
|
+
*
|
|
103
|
+
* @since 0.1.0
|
|
104
|
+
* @category validation
|
|
105
|
+
*/
|
|
106
|
+
const isBlankNodeLabel = (label) => {
|
|
107
|
+
if (label === "") return false;
|
|
108
|
+
const codePoints = Array.from(label, codePointOf);
|
|
109
|
+
return codePoints.every((c, i) => i === 0 ? isPnCharsU(c) || isDigit(c) : isPnChars(c) || c === 46) && codePoints.at(-1) !== 46;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Decodes a `UCHAR` (`\uXXXX` or `\UXXXXXXXX`) starting at `index`, which
|
|
113
|
+
* must point at the backslash. Surrogate code points and values beyond
|
|
114
|
+
* U+10FFFF are rejected.
|
|
115
|
+
*
|
|
116
|
+
* @since 0.1.0
|
|
117
|
+
* @category escapes
|
|
118
|
+
*/
|
|
119
|
+
const decodeUchar = (input, index) => {
|
|
120
|
+
const kind = input.charCodeAt(index + 1);
|
|
121
|
+
const digits = kind === 117 ? 4 : kind === 85 ? 8 : 0;
|
|
122
|
+
if (digits === 0) return {
|
|
123
|
+
_tag: "Error",
|
|
124
|
+
message: "Invalid escape sequence"
|
|
125
|
+
};
|
|
126
|
+
const hex = input.slice(index + 2, index + 2 + digits);
|
|
127
|
+
if (hex.length !== digits || !HEX_DIGITS.test(hex)) return {
|
|
128
|
+
_tag: "Error",
|
|
129
|
+
message: "Invalid numeric escape sequence"
|
|
130
|
+
};
|
|
131
|
+
const value = parseInt(hex, 16);
|
|
132
|
+
if (value > 1114111) return {
|
|
133
|
+
_tag: "Error",
|
|
134
|
+
message: "Numeric escape is beyond U+10FFFF"
|
|
135
|
+
};
|
|
136
|
+
if (value >= 55296 && value <= 57343) return {
|
|
137
|
+
_tag: "Error",
|
|
138
|
+
message: "Numeric escape encodes a surrogate code point"
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
_tag: "Ok",
|
|
142
|
+
value: String.fromCodePoint(value),
|
|
143
|
+
length: digits + 2
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
const echar = Match.type().pipe(Match.when(116, () => " "), Match.when(98, () => "\b"), Match.when(110, () => "\n"), Match.when(114, () => "\r"), Match.when(102, () => "\f"), Match.when(34, () => "\""), Match.when(39, () => "'"), Match.when(92, () => "\\"), Match.orElse(() => void 0));
|
|
147
|
+
/**
|
|
148
|
+
* Decodes the string-escape (`ECHAR`) character following a backslash, if
|
|
149
|
+
* it is one of `t b n r f " ' \`.
|
|
150
|
+
*
|
|
151
|
+
* @since 0.1.0
|
|
152
|
+
* @category escapes
|
|
153
|
+
*/
|
|
154
|
+
const decodeEchar = (c) => echar(c);
|
|
155
|
+
const LANG_DIR = /^([a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*)(?:--([a-zA-Z]+))?$/;
|
|
156
|
+
/**
|
|
157
|
+
* Parses the text of a `LANG_DIR` token (without the leading `@`). Returns
|
|
158
|
+
* `undefined` when the tag or direction is invalid; directions must be
|
|
159
|
+
* `ltr` or `rtl`.
|
|
160
|
+
*
|
|
161
|
+
* @since 0.1.0
|
|
162
|
+
* @category validation
|
|
163
|
+
*/
|
|
164
|
+
const parseLanguageTag = (text) => {
|
|
165
|
+
const m = LANG_DIR.exec(text);
|
|
166
|
+
if (m === null) return void 0;
|
|
167
|
+
const direction = m[2];
|
|
168
|
+
if (direction !== void 0 && direction !== "ltr" && direction !== "rtl") return void 0;
|
|
169
|
+
return {
|
|
170
|
+
language: m[1] ?? "",
|
|
171
|
+
direction
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Builds a literal from a lexical form and an optional language tag or
|
|
176
|
+
* datatype, rejecting the language-string datatypes used without a tag.
|
|
177
|
+
* Returns an error message on failure.
|
|
178
|
+
*
|
|
179
|
+
* @since 0.1.0
|
|
180
|
+
* @category constructors
|
|
181
|
+
*/
|
|
182
|
+
const makeLiteral = (value, annotation) => {
|
|
183
|
+
if (annotation === void 0) return literal(value);
|
|
184
|
+
if (isNamedNode(annotation)) {
|
|
185
|
+
if (annotation.value === RDF_LANG_STRING || annotation.value === RDF_DIR_LANG_STRING) return `The datatype ${annotation.key} requires a language tag`;
|
|
186
|
+
return new Literal(value, annotation);
|
|
187
|
+
}
|
|
188
|
+
return literal(value, annotation);
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Encodes an arbitrary blank node label as a valid N-Triples label. Valid
|
|
192
|
+
* labels are returned unchanged.
|
|
193
|
+
*
|
|
194
|
+
* @since 0.1.0
|
|
195
|
+
* @category formatting
|
|
196
|
+
*/
|
|
197
|
+
const blankNodeLabel = (label) => {
|
|
198
|
+
if (isBlankNodeLabel(label)) return label;
|
|
199
|
+
return `x${Array.from(label, (ch) => {
|
|
200
|
+
const c = codePointOf(ch);
|
|
201
|
+
return isPnCharsBase(c) || isDigit(c) ? ch : `_${c.toString(16)}_`;
|
|
202
|
+
}).join("")}`;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Formats an IRI as a canonical `IRIREF`.
|
|
206
|
+
*
|
|
207
|
+
* @since 0.1.0
|
|
208
|
+
* @category formatting
|
|
209
|
+
*/
|
|
210
|
+
const formatIri = (iri) => `<${escapeIri(iri)}>`;
|
|
211
|
+
/**
|
|
212
|
+
* Formats a literal in canonical N-Triples form: canonical string escapes,
|
|
213
|
+
* lower-case language tags, and no datatype for `xsd:string`.
|
|
214
|
+
*
|
|
215
|
+
* @since 0.1.0
|
|
216
|
+
* @category formatting
|
|
217
|
+
*/
|
|
218
|
+
const formatLiteral = (literal) => {
|
|
219
|
+
const lexical = `"${escapeString(literal.value)}"`;
|
|
220
|
+
if (literal.language !== "") {
|
|
221
|
+
const language = literal.language.toLowerCase();
|
|
222
|
+
return literal.direction === void 0 ? `${lexical}@${language}` : `${lexical}@${language}--${literal.direction}`;
|
|
223
|
+
}
|
|
224
|
+
if (literal.datatype.value === XSD_STRING) return lexical;
|
|
225
|
+
return `${lexical}^^${formatIri(literal.datatype.value)}`;
|
|
226
|
+
};
|
|
227
|
+
const formatTermMatch = Match.type().pipe(Match.tag("NamedNode", (term) => formatIri(term.value)), Match.tag("BlankNode", (term) => `_:${blankNodeLabel(term.value)}`), Match.tag("Literal", (term) => formatLiteral(term)), Match.tag("Triple", (term) => {
|
|
228
|
+
const s = formatTerm(term.subject);
|
|
229
|
+
const o = formatTerm(term.object);
|
|
230
|
+
return s === void 0 || o === void 0 ? void 0 : `<<( ${s} ${formatIri(term.predicate.value)} ${o} )>>`;
|
|
231
|
+
}), Match.orElse(() => void 0));
|
|
232
|
+
/**
|
|
233
|
+
* Formats a ground term (IRI, blank node, literal or triple term) in
|
|
234
|
+
* canonical N-Triples form. Returns `undefined` for variables and the
|
|
235
|
+
* default graph, which have no N-Triples representation.
|
|
236
|
+
*
|
|
237
|
+
* @since 0.1.0
|
|
238
|
+
* @category formatting
|
|
239
|
+
*/
|
|
240
|
+
const formatTerm = (term) => formatTermMatch(term);
|
|
241
|
+
export { makeLiteral as _, formatIri as a, isAbsoluteIri as c, isHex as d, isIriChar as f, isWritableIri as g, isPnCharsU as h, decodeUchar as i, isBlankNodeLabel as l, isPnCharsBase as m, blankNodeLabel as n, formatLiteral as o, isPnChars as p, decodeEchar as r, formatTerm as s, Lexical_exports as t, isDigit as u, parseLanguageTag as v };
|
|
242
|
+
|
|
243
|
+
//# sourceMappingURL=Lexical-Cg0JHrf6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lexical-Cg0JHrf6.mjs","names":["Term.escapeIri","Term.literal","Term.isNamedNode","Term.Literal","Term.escapeString"],"sources":["../src/ntriples/Lexical.ts"],"sourcesContent":["/**\n * Lexical rules shared by the N-Triples family of RDF syntaxes (N-Triples,\n * N-Quads, Turtle and TriG): character classes, escape decoding, language\n * tags with base direction, and canonical term formatting.\n *\n * These are low-level, pure helpers; most users want the `NTriples` and\n * `NQuads` modules instead.\n *\n * @since 0.1.0\n */\nimport * as Term from '../Term.ts';\nimport * as Match from 'effect/Match';\n\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst RDF_LANG_STRING = `${RDF}langString`;\nconst RDF_DIR_LANG_STRING = `${RDF}dirLangString`;\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\n\n/**\n * `PN_CHARS_BASE` from the Turtle / N-Triples grammars.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnCharsBase = (c: number): boolean =>\n (c >= 0x41 && c <= 0x5a) ||\n (c >= 0x61 && c <= 0x7a) ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x2ff) ||\n (c >= 0x370 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff);\n\n/**\n * `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnCharsU = (c: number): boolean => c === 0x5f || isPnCharsBase(c);\n\n/**\n * `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isPnChars = (c: number): boolean =>\n isPnCharsU(c) ||\n c === 0x2d ||\n (c >= 0x30 && c <= 0x39) ||\n c === 0xb7 ||\n (c >= 0x300 && c <= 0x36f) ||\n (c >= 0x203f && c <= 0x2040);\n\n/**\n * Whether a code point is an ASCII digit.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isDigit = (c: number): boolean => c >= 0x30 && c <= 0x39;\n\n/**\n * Whether a code point is an ASCII hexadecimal digit.\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isHex = (c: number): boolean =>\n (c >= 0x30 && c <= 0x39) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\n\n/**\n * Whether a code point may appear unescaped inside an `IRIREF`\n * (`[^#x00-#x20<>\"{}|^`\\]`).\n *\n * @since 0.1.0\n * @category character classes\n */\nexport const isIriChar = (c: number): boolean =>\n c > 0x20 &&\n c !== 0x3c && // <\n c !== 0x3e && // >\n c !== 0x22 && // \"\n c !== 0x7b && // {\n c !== 0x7d && // }\n c !== 0x7c && // |\n c !== 0x5e && // ^\n c !== 0x60 && // `\n c !== 0x5c; // \\\n\n// Hoisted: a regex literal makes a new `RegExp` each time it is evaluated, and this runs per IRI.\nconst SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*:/;\n\n/**\n * Whether a string is an absolute IRI reference (starts with a scheme).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isAbsoluteIri = (iri: string): boolean => SCHEME.test(iri);\n\n/**\n * Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is\n * absolute and contains no characters that would need escaping.\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isWritableIri = (iri: string): boolean =>\n // `escapeIri` changes exactly the characters `isIriChar` rejects\n isAbsoluteIri(iri) && Term.escapeIri(iri) === iri;\n\n/** The code point of a one-code-point string (as `Array.from` splits a string). */\nconst codePointOf = (ch: string): number => ch.codePointAt(0) ?? 0;\n\nconst HEX_DIGITS = /^[0-9A-Fa-f]*$/;\n\n/**\n * Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const isBlankNodeLabel = (label: string): boolean => {\n if (label === '') return false;\n const codePoints = Array.from(label, codePointOf);\n return (\n codePoints.every((c, i) =>\n i === 0 ? isPnCharsU(c) || isDigit(c) : isPnChars(c) || c === 0x2e,\n ) && codePoints.at(-1) !== 0x2e\n );\n};\n\n/**\n * The result of decoding a numeric escape: the code point or an error\n * message.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport type DecodedEscape =\n | { readonly _tag: 'Ok'; readonly value: string; readonly length: number }\n | { readonly _tag: 'Error'; readonly message: string };\n\n/**\n * Decodes a `UCHAR` (`\\uXXXX` or `\\UXXXXXXXX`) starting at `index`, which\n * must point at the backslash. Surrogate code points and values beyond\n * U+10FFFF are rejected.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport const decodeUchar = (input: string, index: number): DecodedEscape => {\n const kind = input.charCodeAt(index + 1);\n const digits = kind === 0x75 ? 4 : kind === 0x55 ? 8 : 0;\n if (digits === 0) return { _tag: 'Error', message: 'Invalid escape sequence' };\n const hex = input.slice(index + 2, index + 2 + digits);\n if (hex.length !== digits || !HEX_DIGITS.test(hex)) {\n return { _tag: 'Error', message: 'Invalid numeric escape sequence' };\n }\n const value = parseInt(hex, 16);\n if (value > 0x10ffff) {\n return { _tag: 'Error', message: 'Numeric escape is beyond U+10FFFF' };\n }\n if (value >= 0xd800 && value <= 0xdfff) {\n return { _tag: 'Error', message: 'Numeric escape encodes a surrogate code point' };\n }\n return { _tag: 'Ok', value: String.fromCodePoint(value), length: digits + 2 };\n};\n\n// Built once: `decodeEchar` runs for every backslash escape a lexer reads.\nconst echar = Match.type<number>().pipe(\n Match.when(0x74, () => '\\t'),\n Match.when(0x62, () => '\\b'),\n Match.when(0x6e, () => '\\n'),\n Match.when(0x72, () => '\\r'),\n Match.when(0x66, () => '\\f'),\n Match.when(0x22, () => '\"'),\n Match.when(0x27, () => \"'\"),\n Match.when(0x5c, () => '\\\\'),\n Match.orElse(() => undefined),\n);\n\n/**\n * Decodes the string-escape (`ECHAR`) character following a backslash, if\n * it is one of `t b n r f \" ' \\`.\n *\n * @since 0.1.0\n * @category escapes\n */\nexport const decodeEchar = (c: number): string | undefined => echar(c);\n\n/**\n * A language tag with an optional base direction.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LanguageTag {\n readonly language: string;\n readonly direction: Term.Direction | undefined;\n}\n\nconst LANG_DIR = /^([a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*)(?:--([a-zA-Z]+))?$/;\n\n/**\n * Parses the text of a `LANG_DIR` token (without the leading `@`). Returns\n * `undefined` when the tag or direction is invalid; directions must be\n * `ltr` or `rtl`.\n *\n * @since 0.1.0\n * @category validation\n */\nexport const parseLanguageTag = (text: string): LanguageTag | undefined => {\n const m = LANG_DIR.exec(text);\n if (m === null) return undefined;\n const direction = m[2];\n if (direction !== undefined && direction !== 'ltr' && direction !== 'rtl') return undefined;\n return { language: m[1] ?? '', direction };\n};\n\n/**\n * Builds a literal from a lexical form and an optional language tag or\n * datatype, rejecting the language-string datatypes used without a tag.\n * Returns an error message on failure.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const makeLiteral = (\n value: string,\n annotation: LanguageTag | Term.NamedNode | undefined,\n): Term.Literal | string => {\n if (annotation === undefined) return Term.literal(value);\n if (Term.isNamedNode(annotation)) {\n if (annotation.value === RDF_LANG_STRING || annotation.value === RDF_DIR_LANG_STRING) {\n return `The datatype ${annotation.key} requires a language tag`;\n }\n return new Term.Literal(value, annotation);\n }\n return Term.literal(value, annotation);\n};\n\n// -----------------------------------------------------------------------------\n// Canonical formatting\n// -----------------------------------------------------------------------------\n\n/**\n * Encodes an arbitrary blank node label as a valid N-Triples label. Valid\n * labels are returned unchanged.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const blankNodeLabel = (label: string): string => {\n if (isBlankNodeLabel(label)) return label;\n return `x${Array.from(label, (ch) => {\n const c = codePointOf(ch);\n return isPnCharsBase(c) || isDigit(c) ? ch : `_${c.toString(16)}_`;\n }).join('')}`;\n};\n\n/**\n * Formats an IRI as a canonical `IRIREF`.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatIri = (iri: string): string => `<${Term.escapeIri(iri)}>`;\n\n/**\n * Formats a literal in canonical N-Triples form: canonical string escapes,\n * lower-case language tags, and no datatype for `xsd:string`.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatLiteral = (literal: Term.Literal): string => {\n const lexical = `\"${Term.escapeString(literal.value)}\"`;\n if (literal.language !== '') {\n const language = literal.language.toLowerCase();\n return literal.direction === undefined\n ? `${lexical}@${language}`\n : `${lexical}@${language}--${literal.direction}`;\n }\n if (literal.datatype.value === XSD_STRING) return lexical;\n return `${lexical}^^${formatIri(literal.datatype.value)}`;\n};\n\n// Built once: `formatTerm` runs for every term a serializer writes.\nconst formatTermMatch = Match.type<Term.Term>().pipe(\n Match.tag('NamedNode', (term) => formatIri(term.value)),\n Match.tag('BlankNode', (term) => `_:${blankNodeLabel(term.value)}`),\n Match.tag('Literal', (term) => formatLiteral(term)),\n Match.tag('Triple', (term) => {\n const s = formatTerm(term.subject);\n const o = formatTerm(term.object);\n return s === undefined || o === undefined\n ? undefined\n : `<<( ${s} ${formatIri(term.predicate.value)} ${o} )>>`;\n }),\n Match.orElse(() => undefined),\n);\n\n/**\n * Formats a ground term (IRI, blank node, literal or triple term) in\n * canonical N-Triples form. Returns `undefined` for variables and the\n * default graph, which have no N-Triples representation.\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatTerm = (term: Term.Term): string | undefined => formatTermMatch(term);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { T as Term, d as NamedNode, i as Direction, l as Literal } from "./Term-B_4ezyXq.mjs";
|
|
2
|
+
declare namespace Lexical_d_exports {
|
|
3
|
+
export { DecodedEscape, LanguageTag, blankNodeLabel, decodeEchar, decodeUchar, formatIri, formatLiteral, formatTerm, isAbsoluteIri, isBlankNodeLabel, isDigit, isHex, isIriChar, isPnChars, isPnCharsBase, isPnCharsU, isWritableIri, makeLiteral, parseLanguageTag };
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* `PN_CHARS_BASE` from the Turtle / N-Triples grammars.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
* @category character classes
|
|
10
|
+
*/
|
|
11
|
+
declare const isPnCharsBase: (c: number) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* `PN_CHARS_U`: `PN_CHARS_BASE` or `_`.
|
|
14
|
+
*
|
|
15
|
+
* @since 0.1.0
|
|
16
|
+
* @category character classes
|
|
17
|
+
*/
|
|
18
|
+
declare const isPnCharsU: (c: number) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* `PN_CHARS`: `PN_CHARS_U`, `-`, digits, `·` and combining marks.
|
|
21
|
+
*
|
|
22
|
+
* @since 0.1.0
|
|
23
|
+
* @category character classes
|
|
24
|
+
*/
|
|
25
|
+
declare const isPnChars: (c: number) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a code point is an ASCII digit.
|
|
28
|
+
*
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
* @category character classes
|
|
31
|
+
*/
|
|
32
|
+
declare const isDigit: (c: number) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether a code point is an ASCII hexadecimal digit.
|
|
35
|
+
*
|
|
36
|
+
* @since 0.1.0
|
|
37
|
+
* @category character classes
|
|
38
|
+
*/
|
|
39
|
+
declare const isHex: (c: number) => boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Whether a code point may appear unescaped inside an `IRIREF`
|
|
42
|
+
* (`[^#x00-#x20<>"{}|^`\]`).
|
|
43
|
+
*
|
|
44
|
+
* @since 0.1.0
|
|
45
|
+
* @category character classes
|
|
46
|
+
*/
|
|
47
|
+
declare const isIriChar: (c: number) => boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether a string is an absolute IRI reference (starts with a scheme).
|
|
50
|
+
*
|
|
51
|
+
* @since 0.1.0
|
|
52
|
+
* @category validation
|
|
53
|
+
*/
|
|
54
|
+
declare const isAbsoluteIri: (iri: string) => boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Whether an IRI can be written as an N-Triples / Turtle `IRIREF`: it is
|
|
57
|
+
* absolute and contains no characters that would need escaping.
|
|
58
|
+
*
|
|
59
|
+
* @since 0.1.0
|
|
60
|
+
* @category validation
|
|
61
|
+
*/
|
|
62
|
+
declare const isWritableIri: (iri: string) => boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Whether a string is a valid `BLANK_NODE_LABEL` (without the `_:`).
|
|
65
|
+
*
|
|
66
|
+
* @since 0.1.0
|
|
67
|
+
* @category validation
|
|
68
|
+
*/
|
|
69
|
+
declare const isBlankNodeLabel: (label: string) => boolean;
|
|
70
|
+
/**
|
|
71
|
+
* The result of decoding a numeric escape: the code point or an error
|
|
72
|
+
* message.
|
|
73
|
+
*
|
|
74
|
+
* @since 0.1.0
|
|
75
|
+
* @category escapes
|
|
76
|
+
*/
|
|
77
|
+
type DecodedEscape = {
|
|
78
|
+
readonly _tag: 'Ok';
|
|
79
|
+
readonly value: string;
|
|
80
|
+
readonly length: number;
|
|
81
|
+
} | {
|
|
82
|
+
readonly _tag: 'Error';
|
|
83
|
+
readonly message: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Decodes a `UCHAR` (`\uXXXX` or `\UXXXXXXXX`) starting at `index`, which
|
|
87
|
+
* must point at the backslash. Surrogate code points and values beyond
|
|
88
|
+
* U+10FFFF are rejected.
|
|
89
|
+
*
|
|
90
|
+
* @since 0.1.0
|
|
91
|
+
* @category escapes
|
|
92
|
+
*/
|
|
93
|
+
declare const decodeUchar: (input: string, index: number) => DecodedEscape;
|
|
94
|
+
/**
|
|
95
|
+
* Decodes the string-escape (`ECHAR`) character following a backslash, if
|
|
96
|
+
* it is one of `t b n r f " ' \`.
|
|
97
|
+
*
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
* @category escapes
|
|
100
|
+
*/
|
|
101
|
+
declare const decodeEchar: (c: number) => string | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* A language tag with an optional base direction.
|
|
104
|
+
*
|
|
105
|
+
* @since 0.1.0
|
|
106
|
+
* @category models
|
|
107
|
+
*/
|
|
108
|
+
interface LanguageTag {
|
|
109
|
+
readonly language: string;
|
|
110
|
+
readonly direction: Direction | undefined;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Parses the text of a `LANG_DIR` token (without the leading `@`). Returns
|
|
114
|
+
* `undefined` when the tag or direction is invalid; directions must be
|
|
115
|
+
* `ltr` or `rtl`.
|
|
116
|
+
*
|
|
117
|
+
* @since 0.1.0
|
|
118
|
+
* @category validation
|
|
119
|
+
*/
|
|
120
|
+
declare const parseLanguageTag: (text: string) => LanguageTag | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* Builds a literal from a lexical form and an optional language tag or
|
|
123
|
+
* datatype, rejecting the language-string datatypes used without a tag.
|
|
124
|
+
* Returns an error message on failure.
|
|
125
|
+
*
|
|
126
|
+
* @since 0.1.0
|
|
127
|
+
* @category constructors
|
|
128
|
+
*/
|
|
129
|
+
declare const makeLiteral: (value: string, annotation: LanguageTag | NamedNode | undefined) => Literal | string;
|
|
130
|
+
/**
|
|
131
|
+
* Encodes an arbitrary blank node label as a valid N-Triples label. Valid
|
|
132
|
+
* labels are returned unchanged.
|
|
133
|
+
*
|
|
134
|
+
* @since 0.1.0
|
|
135
|
+
* @category formatting
|
|
136
|
+
*/
|
|
137
|
+
declare const blankNodeLabel: (label: string) => string;
|
|
138
|
+
/**
|
|
139
|
+
* Formats an IRI as a canonical `IRIREF`.
|
|
140
|
+
*
|
|
141
|
+
* @since 0.1.0
|
|
142
|
+
* @category formatting
|
|
143
|
+
*/
|
|
144
|
+
declare const formatIri: (iri: string) => string;
|
|
145
|
+
/**
|
|
146
|
+
* Formats a literal in canonical N-Triples form: canonical string escapes,
|
|
147
|
+
* lower-case language tags, and no datatype for `xsd:string`.
|
|
148
|
+
*
|
|
149
|
+
* @since 0.1.0
|
|
150
|
+
* @category formatting
|
|
151
|
+
*/
|
|
152
|
+
declare const formatLiteral: (literal: Literal) => string;
|
|
153
|
+
/**
|
|
154
|
+
* Formats a ground term (IRI, blank node, literal or triple term) in
|
|
155
|
+
* canonical N-Triples form. Returns `undefined` for variables and the
|
|
156
|
+
* default graph, which have no N-Triples representation.
|
|
157
|
+
*
|
|
158
|
+
* @since 0.1.0
|
|
159
|
+
* @category formatting
|
|
160
|
+
*/
|
|
161
|
+
declare const formatTerm: (term: Term) => string | undefined;
|
|
162
|
+
export { isPnCharsU as _, decodeEchar as a, parseLanguageTag as b, formatLiteral as c, isBlankNodeLabel as d, isDigit as f, isPnCharsBase as g, isPnChars as h, blankNodeLabel as i, formatTerm as l, isIriChar as m, LanguageTag as n, decodeUchar as o, isHex as p, Lexical_d_exports as r, formatIri as s, DecodedEscape as t, isAbsoluteIri as u, isWritableIri as v, makeLiteral as y };
|
|
163
|
+
//# sourceMappingURL=Lexical-D3zySYVS.d.mts.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { B as isNamedNode, U as isResource, Z as namedNode, z as isLiteral } from "./Term-CFLG1qu4.mjs";
|
|
3
|
+
import { A as objectsOf, C as list, L as subjectsOf, O as objectOf } from "./Dataset-BlmlcI7J.mjs";
|
|
4
|
+
import { n as make, r as vocabulary } from "./Namespace-DHFIsORd.mjs";
|
|
5
|
+
import { a as rdfs, i as rdf } from "./Vocab-DceKywpq.mjs";
|
|
6
|
+
import { i as parse$1 } from "./Turtle-CZVUOtwl.mjs";
|
|
7
|
+
import * as Arr from "effect/Array";
|
|
8
|
+
import * as MutableHashSet from "effect/MutableHashSet";
|
|
9
|
+
import * as Option from "effect/Option";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
// src/turtle/Manifest.ts
|
|
12
|
+
/**
|
|
13
|
+
* A reader for W3C test-suite manifests (`manifest.ttl`) as used by the RDF,
|
|
14
|
+
* SPARQL, SHACL, ShEx and JSON-LD test suites.
|
|
15
|
+
*
|
|
16
|
+
* Manifests are parsed with the Turtle parser. `load` follows `mf:include`
|
|
17
|
+
* recursively; reading files is delegated to a caller-supplied function so
|
|
18
|
+
* that the module stays platform independent.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import * as fs from 'node:fs'
|
|
23
|
+
* import { Effect } from 'effect'
|
|
24
|
+
* import { Manifest } from '@thomasfosterau/effect-rdf/turtle'
|
|
25
|
+
*
|
|
26
|
+
* const entries = Manifest.load(
|
|
27
|
+
* 'https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-turtle/manifest.ttl',
|
|
28
|
+
* Manifest.fileReader('https://w3c.github.io/rdf-tests/', '/path/to/rdf-tests/', (path) =>
|
|
29
|
+
* Effect.sync(() => fs.readFileSync(path, 'utf8')),
|
|
30
|
+
* ),
|
|
31
|
+
* )
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @since 0.1.0
|
|
35
|
+
*/
|
|
36
|
+
var Manifest_exports = /* @__PURE__ */ __exportAll({
|
|
37
|
+
fileReader: () => fileReader,
|
|
38
|
+
load: () => load,
|
|
39
|
+
mf: () => mf,
|
|
40
|
+
parse: () => parse,
|
|
41
|
+
rdft: () => rdft,
|
|
42
|
+
toPath: () => toPath
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* The W3C test manifest vocabulary.
|
|
46
|
+
*
|
|
47
|
+
* @since 0.1.0
|
|
48
|
+
* @category vocabularies
|
|
49
|
+
*/
|
|
50
|
+
const mf = vocabulary("http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#", [
|
|
51
|
+
"Manifest",
|
|
52
|
+
"entries",
|
|
53
|
+
"include",
|
|
54
|
+
"name",
|
|
55
|
+
"action",
|
|
56
|
+
"result",
|
|
57
|
+
"assumedTestBase"
|
|
58
|
+
]);
|
|
59
|
+
/**
|
|
60
|
+
* The RDF test vocabulary.
|
|
61
|
+
*
|
|
62
|
+
* @since 0.1.0
|
|
63
|
+
* @category vocabularies
|
|
64
|
+
*/
|
|
65
|
+
const rdft = make("http://www.w3.org/ns/rdftest#");
|
|
66
|
+
const localName = (iri) => iri.replace(/^.*[#/]/, "");
|
|
67
|
+
const iriOf = (term) => Option.flatMap(term, (t) => isNamedNode(t) ? Option.some(t.value) : Option.none());
|
|
68
|
+
const stringOf = (term) => Option.flatMap(term, (t) => isLiteral(t) ? Option.some(t.value) : Option.none());
|
|
69
|
+
/**
|
|
70
|
+
* Parses a manifest document. `iri` is the manifest's own IRI, used as the
|
|
71
|
+
* base IRI.
|
|
72
|
+
*
|
|
73
|
+
* @since 0.1.0
|
|
74
|
+
* @category parsing
|
|
75
|
+
*/
|
|
76
|
+
const parse = (text, iri) => Effect.map(parse$1(text, { baseIri: iri }), ({ dataset }) => {
|
|
77
|
+
const subjects = subjectsOf(dataset, rdf.type, mf.Manifest);
|
|
78
|
+
const manifest = subjects.find((s) => isNamedNode(s) && s.value === iri) ?? subjects[0] ?? namedNode(iri);
|
|
79
|
+
const listAt = (p) => objectsOf(dataset, manifest, p).flatMap((head) => Option.getOrElse(list(dataset, head), () => []));
|
|
80
|
+
const entries = listAt(mf.entries).flatMap((node) => {
|
|
81
|
+
if (!isResource(node)) return [];
|
|
82
|
+
const type = iriOf(objectOf(dataset, node, rdf.type));
|
|
83
|
+
const id = isNamedNode(node) ? node.value : node.key;
|
|
84
|
+
return [{
|
|
85
|
+
id,
|
|
86
|
+
node,
|
|
87
|
+
type: Option.getOrElse(type, () => ""),
|
|
88
|
+
kind: Option.match(type, {
|
|
89
|
+
onNone: () => "",
|
|
90
|
+
onSome: localName
|
|
91
|
+
}),
|
|
92
|
+
name: Option.getOrElse(stringOf(objectOf(dataset, node, mf.name)), () => localName(id)),
|
|
93
|
+
comment: stringOf(objectOf(dataset, node, rdfs.comment)),
|
|
94
|
+
action: iriOf(objectOf(dataset, node, mf.action)),
|
|
95
|
+
result: iriOf(objectOf(dataset, node, mf.result)),
|
|
96
|
+
manifest: iri,
|
|
97
|
+
dataset
|
|
98
|
+
}];
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
iri,
|
|
102
|
+
label: stringOf(objectOf(dataset, manifest, rdfs.label)),
|
|
103
|
+
assumedTestBase: iriOf(objectOf(dataset, manifest, mf.assumedTestBase)),
|
|
104
|
+
entries,
|
|
105
|
+
includes: listAt(mf.include).flatMap((t) => isNamedNode(t) ? [t.value] : []),
|
|
106
|
+
dataset
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
/**
|
|
110
|
+
* Loads a manifest and, recursively, every manifest it includes, returning
|
|
111
|
+
* all entries (each manifest is read at most once).
|
|
112
|
+
*
|
|
113
|
+
* @since 0.1.0
|
|
114
|
+
* @category loading
|
|
115
|
+
*/
|
|
116
|
+
const load = (iri, read) => Effect.suspend(() => {
|
|
117
|
+
const seen = MutableHashSet.empty();
|
|
118
|
+
const entries = [];
|
|
119
|
+
const visit = (queue) => {
|
|
120
|
+
if (!Arr.isReadonlyArrayNonEmpty(queue)) return Effect.succeed(entries);
|
|
121
|
+
const [next, ...rest] = queue;
|
|
122
|
+
if (MutableHashSet.has(seen, next)) return visit(rest);
|
|
123
|
+
MutableHashSet.add(seen, next);
|
|
124
|
+
return read(next).pipe(Effect.flatMap((text) => parse(text, next)), Effect.flatMap((manifest) => {
|
|
125
|
+
entries.push(...manifest.entries);
|
|
126
|
+
return visit([...rest, ...manifest.includes]);
|
|
127
|
+
}));
|
|
128
|
+
};
|
|
129
|
+
return visit([iri]);
|
|
130
|
+
});
|
|
131
|
+
/**
|
|
132
|
+
* Builds a `read` function for `load` that maps IRIs under `iriPrefix` to
|
|
133
|
+
* paths under `pathPrefix` and reads them with `readFile`.
|
|
134
|
+
*
|
|
135
|
+
* @since 0.1.0
|
|
136
|
+
* @category loading
|
|
137
|
+
*/
|
|
138
|
+
const fileReader = (iriPrefix, pathPrefix, readFile) => (iri) => readFile(toPath(iri, iriPrefix, pathPrefix));
|
|
139
|
+
/**
|
|
140
|
+
* Maps an IRI under `iriPrefix` to a path under `pathPrefix`.
|
|
141
|
+
*
|
|
142
|
+
* @since 0.1.0
|
|
143
|
+
* @category loading
|
|
144
|
+
*/
|
|
145
|
+
const toPath = (iri, iriPrefix, pathPrefix) => iri.startsWith(iriPrefix) ? pathPrefix + iri.slice(iriPrefix.length) : iri;
|
|
146
|
+
export { parse as a, mf as i, fileReader as n, rdft as o, load as r, toPath as s, Manifest_exports as t };
|
|
147
|
+
|
|
148
|
+
//# sourceMappingURL=Manifest-B6xf6mUc.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Manifest-B6xf6mUc.mjs","names":["Namespace.vocabulary","Namespace.make","Term.isNamedNode","Term.isLiteral","Turtle.parse","Dataset.subjectsOf","Term.namedNode","Dataset.objectsOf","Dataset.list","Term.isResource","Dataset.objectOf"],"sources":["../src/turtle/Manifest.ts"],"sourcesContent":["/**\n * A reader for W3C test-suite manifests (`manifest.ttl`) as used by the RDF,\n * SPARQL, SHACL, ShEx and JSON-LD test suites.\n *\n * Manifests are parsed with the Turtle parser. `load` follows `mf:include`\n * recursively; reading files is delegated to a caller-supplied function so\n * that the module stays platform independent.\n *\n * @example\n * ```ts\n * import * as fs from 'node:fs'\n * import { Effect } from 'effect'\n * import { Manifest } from '@thomasfosterau/effect-rdf/turtle'\n *\n * const entries = Manifest.load(\n * 'https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-turtle/manifest.ttl',\n * Manifest.fileReader('https://w3c.github.io/rdf-tests/', '/path/to/rdf-tests/', (path) =>\n * Effect.sync(() => fs.readFileSync(path, 'utf8')),\n * ),\n * )\n * ```\n *\n * @since 0.1.0\n */\nimport * as Dataset from '../Dataset.ts';\nimport * as Namespace from '../Namespace.ts';\nimport type * as Serialization from '../Serialization.ts';\nimport * as Term from '../Term.ts';\nimport { rdf, rdfs } from '../Vocab.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Turtle from './Turtle.ts';\n\n/**\n * The W3C test manifest vocabulary.\n *\n * @since 0.1.0\n * @category vocabularies\n */\nexport const mf = Namespace.vocabulary(\n 'http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#',\n ['Manifest', 'entries', 'include', 'name', 'action', 'result', 'assumedTestBase'],\n);\n\n/**\n * The RDF test vocabulary.\n *\n * @since 0.1.0\n * @category vocabularies\n */\nexport const rdft = Namespace.make('http://www.w3.org/ns/rdftest#');\n\n/**\n * A single test entry.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Entry {\n /** The test IRI (or blank node key). */\n readonly id: string;\n /** The test node itself, for reading further properties from `dataset`. */\n readonly node: Term.Subject;\n /** The IRI of the test's `rdf:type`. */\n readonly type: string;\n /** The local name of the test type, e.g. `TestTurtleEval`. */\n readonly kind: string;\n /** `mf:name` (falls back to the local name of the test IRI). */\n readonly name: string;\n /** `rdfs:comment`, if any. */\n readonly comment: Option.Option<string>;\n /** The `mf:action` IRI, if the action is an IRI. */\n readonly action: Option.Option<string>;\n /** The `mf:result` IRI, if the result is an IRI. */\n readonly result: Option.Option<string>;\n /** The IRI of the manifest that lists this entry. */\n readonly manifest: string;\n /** The parsed manifest document. */\n readonly dataset: Dataset.Dataset;\n}\n\n/**\n * A parsed manifest.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Manifest {\n readonly iri: string;\n readonly label: Option.Option<string>;\n readonly assumedTestBase: Option.Option<string>;\n readonly entries: ReadonlyArray<Entry>;\n readonly includes: ReadonlyArray<string>;\n readonly dataset: Dataset.Dataset;\n}\n\nconst localName = (iri: string): string => iri.replace(/^.*[#/]/, '');\n\nconst iriOf = (term: Option.Option<Term.Object>): Option.Option<string> =>\n Option.flatMap(term, (t) => (Term.isNamedNode(t) ? Option.some(t.value) : Option.none()));\n\nconst stringOf = (term: Option.Option<Term.Object>): Option.Option<string> =>\n Option.flatMap(term, (t) => (Term.isLiteral(t) ? Option.some(t.value) : Option.none()));\n\n/**\n * Parses a manifest document. `iri` is the manifest's own IRI, used as the\n * base IRI.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parse = (\n text: string,\n iri: string,\n): Effect.Effect<Manifest, Serialization.RdfParseError> =>\n Effect.map(Turtle.parse(text, { baseIri: iri }), ({ dataset }) => {\n const subjects = Dataset.subjectsOf(dataset, rdf.type, mf.Manifest);\n const manifest: Term.Subject =\n subjects.find((s) => Term.isNamedNode(s) && s.value === iri) ??\n subjects[0] ??\n Term.namedNode(iri);\n const listAt = (p: Term.NamedNode): ReadonlyArray<Term.Object> =>\n Dataset.objectsOf(dataset, manifest, p).flatMap((head) =>\n Option.getOrElse(Dataset.list(dataset, head), () => []),\n );\n const entries = listAt(mf.entries).flatMap((node): ReadonlyArray<Entry> => {\n if (!Term.isResource(node)) return [];\n const type = iriOf(Dataset.objectOf(dataset, node, rdf.type));\n const id = Term.isNamedNode(node) ? node.value : node.key;\n return [\n {\n id,\n node,\n type: Option.getOrElse(type, () => ''),\n kind: Option.match(type, { onNone: () => '', onSome: localName }),\n name: Option.getOrElse(stringOf(Dataset.objectOf(dataset, node, mf.name)), () =>\n localName(id),\n ),\n comment: stringOf(Dataset.objectOf(dataset, node, rdfs.comment)),\n action: iriOf(Dataset.objectOf(dataset, node, mf.action)),\n result: iriOf(Dataset.objectOf(dataset, node, mf.result)),\n manifest: iri,\n dataset,\n },\n ];\n });\n return {\n iri,\n label: stringOf(Dataset.objectOf(dataset, manifest, rdfs.label)),\n assumedTestBase: iriOf(Dataset.objectOf(dataset, manifest, mf.assumedTestBase)),\n entries,\n includes: listAt(mf.include).flatMap((t) => (Term.isNamedNode(t) ? [t.value] : [])),\n dataset,\n };\n });\n\n/**\n * Loads a manifest and, recursively, every manifest it includes, returning\n * all entries (each manifest is read at most once).\n *\n * @since 0.1.0\n * @category loading\n */\nexport const load = <E, R>(\n iri: string,\n read: (iri: string) => Effect.Effect<string, E, R>,\n): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> =>\n Effect.suspend(() => {\n const seen = MutableHashSet.empty<string>();\n const entries: Array<Entry> = [];\n // Breadth first: a manifest's entries, then those of each include in turn\n const visit = (\n queue: ReadonlyArray<string>,\n ): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> => {\n if (!Arr.isReadonlyArrayNonEmpty(queue)) return Effect.succeed(entries);\n const [next, ...rest] = queue;\n if (MutableHashSet.has(seen, next)) return visit(rest);\n MutableHashSet.add(seen, next);\n return read(next).pipe(\n Effect.flatMap((text) => parse(text, next)),\n Effect.flatMap((manifest) => {\n entries.push(...manifest.entries);\n return visit([...rest, ...manifest.includes]);\n }),\n );\n };\n return visit([iri]);\n });\n\n/**\n * Builds a `read` function for `load` that maps IRIs under `iriPrefix` to\n * paths under `pathPrefix` and reads them with `readFile`.\n *\n * @since 0.1.0\n * @category loading\n */\nexport const fileReader =\n <E, R>(\n iriPrefix: string,\n pathPrefix: string,\n readFile: (path: string) => Effect.Effect<string, E, R>,\n ) =>\n (iri: string): Effect.Effect<string, E, R> =>\n readFile(toPath(iri, iriPrefix, pathPrefix));\n\n/**\n * Maps an IRI under `iriPrefix` to a path under `pathPrefix`.\n *\n * @since 0.1.0\n * @category loading\n */\nexport const toPath = (iri: string, iriPrefix: string, pathPrefix: string): string =>\n iri.startsWith(iriPrefix) ? pathPrefix + iri.slice(iriPrefix.length) : iri;\n"],"mappings":"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"}
|