@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,893 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ShExJ abstract syntax of ShEx schemas (ShEx 2.1, plus the ShEx 2.2
|
|
3
|
+
* `EXTENDS` / `ABSTRACT` / `RESTRICTS` additions), as plain immutable
|
|
4
|
+
* TypeScript values together with Effect `Schema`s that decode and encode
|
|
5
|
+
* ShExJ JSON documents.
|
|
6
|
+
*
|
|
7
|
+
* Shape and triple expression labels are IRI strings or blank node labels
|
|
8
|
+
* written `_:label`. A reference to a shape or triple expression is simply
|
|
9
|
+
* its label (a string).
|
|
10
|
+
*
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
*/
|
|
13
|
+
import * as Iri from '../Iri.ts';
|
|
14
|
+
import * as Effect from 'effect/Effect';
|
|
15
|
+
import * as Match from 'effect/Match';
|
|
16
|
+
import * as Result from 'effect/Result';
|
|
17
|
+
import * as S from 'effect/Schema';
|
|
18
|
+
import { ShExJError } from './ShExError.ts';
|
|
19
|
+
import * as Json from './internal/json.ts';
|
|
20
|
+
import * as Predicate from 'effect/Predicate';
|
|
21
|
+
|
|
22
|
+
// -----------------------------------------------------------------------------
|
|
23
|
+
// Models
|
|
24
|
+
// -----------------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* An IRI (absolute, after parsing) or a blank node label (`_:label`).
|
|
28
|
+
*
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
* @category models
|
|
31
|
+
*/
|
|
32
|
+
export type Label = string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A ShEx schema.
|
|
36
|
+
*
|
|
37
|
+
* @since 0.1.0
|
|
38
|
+
* @category models
|
|
39
|
+
*/
|
|
40
|
+
export interface Schema {
|
|
41
|
+
readonly type: 'Schema';
|
|
42
|
+
readonly '@context'?: string;
|
|
43
|
+
readonly imports?: ReadonlyArray<string>;
|
|
44
|
+
readonly startActs?: ReadonlyArray<SemAct>;
|
|
45
|
+
readonly start?: ShapeExprOrRef;
|
|
46
|
+
readonly shapes?: ReadonlyArray<ShapeDecl>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* A labelled shape expression declaration.
|
|
51
|
+
*
|
|
52
|
+
* @since 0.1.0
|
|
53
|
+
* @category models
|
|
54
|
+
*/
|
|
55
|
+
export interface ShapeDecl {
|
|
56
|
+
readonly type: 'ShapeDecl';
|
|
57
|
+
readonly id: Label;
|
|
58
|
+
readonly abstract?: boolean;
|
|
59
|
+
readonly restricts?: ReadonlyArray<ShapeExprOrRef>;
|
|
60
|
+
readonly shapeExpr: ShapeExprOrRef;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @since 0.1.0
|
|
65
|
+
* @category models
|
|
66
|
+
*/
|
|
67
|
+
export type ShapeExpr = ShapeOr | ShapeAnd | ShapeNot | NodeConstraint | Shape | ShapeExternal;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A shape expression or a reference (label) to a declared shape expression.
|
|
71
|
+
*
|
|
72
|
+
* @since 0.1.0
|
|
73
|
+
* @category models
|
|
74
|
+
*/
|
|
75
|
+
export type ShapeExprOrRef = ShapeExpr | Label;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @since 0.1.0
|
|
79
|
+
* @category models
|
|
80
|
+
*/
|
|
81
|
+
export interface ShapeOr {
|
|
82
|
+
readonly type: 'ShapeOr';
|
|
83
|
+
readonly shapeExprs: ReadonlyArray<ShapeExprOrRef>;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @since 0.1.0
|
|
88
|
+
* @category models
|
|
89
|
+
*/
|
|
90
|
+
export interface ShapeAnd {
|
|
91
|
+
readonly type: 'ShapeAnd';
|
|
92
|
+
readonly shapeExprs: ReadonlyArray<ShapeExprOrRef>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @since 0.1.0
|
|
97
|
+
* @category models
|
|
98
|
+
*/
|
|
99
|
+
export interface ShapeNot {
|
|
100
|
+
readonly type: 'ShapeNot';
|
|
101
|
+
readonly shapeExpr: ShapeExprOrRef;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* A shape defined outside the schema (supplied by the validator).
|
|
106
|
+
*
|
|
107
|
+
* @since 0.1.0
|
|
108
|
+
* @category models
|
|
109
|
+
*/
|
|
110
|
+
export interface ShapeExternal {
|
|
111
|
+
readonly type: 'ShapeExternal';
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @since 0.1.0
|
|
116
|
+
* @category models
|
|
117
|
+
*/
|
|
118
|
+
export type NodeKind = 'iri' | 'bnode' | 'nonliteral' | 'literal';
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* XML Schema string and numeric facets.
|
|
122
|
+
*
|
|
123
|
+
* @since 0.1.0
|
|
124
|
+
* @category models
|
|
125
|
+
*/
|
|
126
|
+
export interface Facets {
|
|
127
|
+
readonly length?: number;
|
|
128
|
+
readonly minlength?: number;
|
|
129
|
+
readonly maxlength?: number;
|
|
130
|
+
readonly pattern?: string;
|
|
131
|
+
readonly flags?: string;
|
|
132
|
+
readonly mininclusive?: number;
|
|
133
|
+
readonly minexclusive?: number;
|
|
134
|
+
readonly maxinclusive?: number;
|
|
135
|
+
readonly maxexclusive?: number;
|
|
136
|
+
readonly totaldigits?: number;
|
|
137
|
+
readonly fractiondigits?: number;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @since 0.1.0
|
|
142
|
+
* @category models
|
|
143
|
+
*/
|
|
144
|
+
export interface NodeConstraint extends Facets {
|
|
145
|
+
readonly type: 'NodeConstraint';
|
|
146
|
+
readonly nodeKind?: NodeKind;
|
|
147
|
+
readonly datatype?: string;
|
|
148
|
+
readonly values?: ReadonlyArray<ValueSetValue>;
|
|
149
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
150
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* A literal in a value set or annotation. `type` is the datatype IRI (absent
|
|
155
|
+
* for `xsd:string` and language-tagged strings).
|
|
156
|
+
*
|
|
157
|
+
* @since 0.1.0
|
|
158
|
+
* @category models
|
|
159
|
+
*/
|
|
160
|
+
export interface ObjectLiteral {
|
|
161
|
+
readonly value: string;
|
|
162
|
+
readonly language?: string;
|
|
163
|
+
readonly type?: string;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* An IRI (string) or a literal.
|
|
168
|
+
*
|
|
169
|
+
* @since 0.1.0
|
|
170
|
+
* @category models
|
|
171
|
+
*/
|
|
172
|
+
export type ObjectValue = string | ObjectLiteral;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* @since 0.1.0
|
|
176
|
+
* @category models
|
|
177
|
+
*/
|
|
178
|
+
export interface Wildcard {
|
|
179
|
+
readonly type: 'Wildcard';
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @since 0.1.0
|
|
184
|
+
* @category models
|
|
185
|
+
*/
|
|
186
|
+
export interface IriStem {
|
|
187
|
+
readonly type: 'IriStem';
|
|
188
|
+
readonly stem: string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @since 0.1.0
|
|
193
|
+
* @category models
|
|
194
|
+
*/
|
|
195
|
+
export interface IriStemRange {
|
|
196
|
+
readonly type: 'IriStemRange';
|
|
197
|
+
readonly stem: string | Wildcard;
|
|
198
|
+
readonly exclusions: ReadonlyArray<string | IriStem>;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* @since 0.1.0
|
|
203
|
+
* @category models
|
|
204
|
+
*/
|
|
205
|
+
export interface LiteralStem {
|
|
206
|
+
readonly type: 'LiteralStem';
|
|
207
|
+
readonly stem: string;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* @since 0.1.0
|
|
212
|
+
* @category models
|
|
213
|
+
*/
|
|
214
|
+
export interface LiteralStemRange {
|
|
215
|
+
readonly type: 'LiteralStemRange';
|
|
216
|
+
readonly stem: string | Wildcard;
|
|
217
|
+
readonly exclusions: ReadonlyArray<string | LiteralStem>;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* @since 0.1.0
|
|
222
|
+
* @category models
|
|
223
|
+
*/
|
|
224
|
+
export interface Language {
|
|
225
|
+
readonly type: 'Language';
|
|
226
|
+
readonly languageTag: string;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* @since 0.1.0
|
|
231
|
+
* @category models
|
|
232
|
+
*/
|
|
233
|
+
export interface LanguageStem {
|
|
234
|
+
readonly type: 'LanguageStem';
|
|
235
|
+
readonly stem: string;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* @since 0.1.0
|
|
240
|
+
* @category models
|
|
241
|
+
*/
|
|
242
|
+
export interface LanguageStemRange {
|
|
243
|
+
readonly type: 'LanguageStemRange';
|
|
244
|
+
readonly stem: string | Wildcard;
|
|
245
|
+
readonly exclusions: ReadonlyArray<string | LanguageStem>;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* @since 0.1.0
|
|
250
|
+
* @category models
|
|
251
|
+
*/
|
|
252
|
+
export type ValueSetValue =
|
|
253
|
+
| ObjectValue
|
|
254
|
+
| IriStem
|
|
255
|
+
| IriStemRange
|
|
256
|
+
| LiteralStem
|
|
257
|
+
| LiteralStemRange
|
|
258
|
+
| Language
|
|
259
|
+
| LanguageStem
|
|
260
|
+
| LanguageStemRange;
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* @since 0.1.0
|
|
264
|
+
* @category models
|
|
265
|
+
*/
|
|
266
|
+
export interface Shape {
|
|
267
|
+
readonly type: 'Shape';
|
|
268
|
+
readonly closed?: boolean;
|
|
269
|
+
readonly extends?: ReadonlyArray<ShapeExprOrRef>;
|
|
270
|
+
readonly extra?: ReadonlyArray<string>;
|
|
271
|
+
readonly expression?: TripleExprOrRef;
|
|
272
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
273
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @since 0.1.0
|
|
278
|
+
* @category models
|
|
279
|
+
*/
|
|
280
|
+
export type TripleExpr = EachOf | OneOf | TripleConstraint;
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* A triple expression or a reference (inclusion, `&label`) to a labelled
|
|
284
|
+
* triple expression.
|
|
285
|
+
*
|
|
286
|
+
* @since 0.1.0
|
|
287
|
+
* @category models
|
|
288
|
+
*/
|
|
289
|
+
export type TripleExprOrRef = TripleExpr | Label;
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Cardinality: `max` of `-1` means unbounded. Both default to 1.
|
|
293
|
+
*
|
|
294
|
+
* @since 0.1.0
|
|
295
|
+
* @category models
|
|
296
|
+
*/
|
|
297
|
+
export interface Cardinality {
|
|
298
|
+
readonly min?: number;
|
|
299
|
+
readonly max?: number;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* @since 0.1.0
|
|
304
|
+
* @category models
|
|
305
|
+
*/
|
|
306
|
+
export interface EachOf extends Cardinality {
|
|
307
|
+
readonly type: 'EachOf';
|
|
308
|
+
readonly id?: Label;
|
|
309
|
+
readonly expressions: ReadonlyArray<TripleExprOrRef>;
|
|
310
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
311
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* @since 0.1.0
|
|
316
|
+
* @category models
|
|
317
|
+
*/
|
|
318
|
+
export interface OneOf extends Cardinality {
|
|
319
|
+
readonly type: 'OneOf';
|
|
320
|
+
readonly id?: Label;
|
|
321
|
+
readonly expressions: ReadonlyArray<TripleExprOrRef>;
|
|
322
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
323
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* @since 0.1.0
|
|
328
|
+
* @category models
|
|
329
|
+
*/
|
|
330
|
+
export interface TripleConstraint extends Cardinality {
|
|
331
|
+
readonly type: 'TripleConstraint';
|
|
332
|
+
readonly id?: Label;
|
|
333
|
+
readonly inverse?: boolean;
|
|
334
|
+
readonly predicate: string;
|
|
335
|
+
readonly valueExpr?: ShapeExprOrRef;
|
|
336
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
337
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* A semantic action.
|
|
342
|
+
*
|
|
343
|
+
* @since 0.1.0
|
|
344
|
+
* @category models
|
|
345
|
+
*/
|
|
346
|
+
export interface SemAct {
|
|
347
|
+
readonly type: 'SemAct';
|
|
348
|
+
readonly name: string;
|
|
349
|
+
readonly code?: string;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @since 0.1.0
|
|
354
|
+
* @category models
|
|
355
|
+
*/
|
|
356
|
+
export interface Annotation {
|
|
357
|
+
readonly type: 'Annotation';
|
|
358
|
+
readonly predicate: string;
|
|
359
|
+
readonly object: ObjectValue;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// -----------------------------------------------------------------------------
|
|
363
|
+
// Schemas
|
|
364
|
+
// -----------------------------------------------------------------------------
|
|
365
|
+
|
|
366
|
+
const opt = S.optionalKey;
|
|
367
|
+
const Int = S.Int;
|
|
368
|
+
const atLeast2 = <S extends S.Top>(s: S) => S.Array(s).check(S.isMinLength(2));
|
|
369
|
+
const atLeast1 = <S extends S.Top>(s: S) => S.Array(s).check(S.isMinLength(1));
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* @since 0.1.0
|
|
373
|
+
* @category schemas
|
|
374
|
+
*/
|
|
375
|
+
export const SemActSchema: S.Codec<SemAct> = S.Struct({
|
|
376
|
+
type: S.Literal('SemAct'),
|
|
377
|
+
name: S.String,
|
|
378
|
+
code: opt(S.String),
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* @since 0.1.0
|
|
383
|
+
* @category schemas
|
|
384
|
+
*/
|
|
385
|
+
export const ObjectLiteralSchema: S.Codec<ObjectLiteral> = S.Struct({
|
|
386
|
+
value: S.String,
|
|
387
|
+
language: opt(S.String),
|
|
388
|
+
type: opt(S.String),
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @since 0.1.0
|
|
393
|
+
* @category schemas
|
|
394
|
+
*/
|
|
395
|
+
export const ObjectValueSchema: S.Codec<ObjectValue> = S.Union([S.String, ObjectLiteralSchema]);
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* @since 0.1.0
|
|
399
|
+
* @category schemas
|
|
400
|
+
*/
|
|
401
|
+
export const AnnotationSchema: S.Codec<Annotation> = S.Struct({
|
|
402
|
+
type: S.Literal('Annotation'),
|
|
403
|
+
predicate: S.String,
|
|
404
|
+
object: ObjectValueSchema,
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* @since 0.1.0
|
|
409
|
+
* @category schemas
|
|
410
|
+
*/
|
|
411
|
+
export const WildcardSchema: S.Codec<Wildcard> = S.Struct({
|
|
412
|
+
type: S.Literal('Wildcard'),
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
const stem = <T extends string>(type: T) => S.Struct({ type: S.Literal(type), stem: S.String });
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* @since 0.1.0
|
|
419
|
+
* @category schemas
|
|
420
|
+
*/
|
|
421
|
+
export const IriStemSchema: S.Codec<IriStem> = stem('IriStem');
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* @since 0.1.0
|
|
425
|
+
* @category schemas
|
|
426
|
+
*/
|
|
427
|
+
export const LiteralStemSchema: S.Codec<LiteralStem> = stem('LiteralStem');
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* @since 0.1.0
|
|
431
|
+
* @category schemas
|
|
432
|
+
*/
|
|
433
|
+
export const LanguageStemSchema: S.Codec<LanguageStem> = stem('LanguageStem');
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* @since 0.1.0
|
|
437
|
+
* @category schemas
|
|
438
|
+
*/
|
|
439
|
+
export const IriStemRangeSchema: S.Codec<IriStemRange> = S.Struct({
|
|
440
|
+
type: S.Literal('IriStemRange'),
|
|
441
|
+
stem: S.Union([S.String, WildcardSchema]),
|
|
442
|
+
exclusions: S.Array(S.Union([S.String, IriStemSchema])),
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* @since 0.1.0
|
|
447
|
+
* @category schemas
|
|
448
|
+
*/
|
|
449
|
+
export const LiteralStemRangeSchema: S.Codec<LiteralStemRange> = S.Struct({
|
|
450
|
+
type: S.Literal('LiteralStemRange'),
|
|
451
|
+
stem: S.Union([S.String, WildcardSchema]),
|
|
452
|
+
exclusions: S.Array(S.Union([S.String, LiteralStemSchema])),
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* @since 0.1.0
|
|
457
|
+
* @category schemas
|
|
458
|
+
*/
|
|
459
|
+
export const LanguageSchema: S.Codec<Language> = S.Struct({
|
|
460
|
+
type: S.Literal('Language'),
|
|
461
|
+
languageTag: S.String,
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* @since 0.1.0
|
|
466
|
+
* @category schemas
|
|
467
|
+
*/
|
|
468
|
+
export const LanguageStemRangeSchema: S.Codec<LanguageStemRange> = S.Struct({
|
|
469
|
+
type: S.Literal('LanguageStemRange'),
|
|
470
|
+
stem: S.Union([S.String, WildcardSchema]),
|
|
471
|
+
exclusions: S.Array(S.Union([S.String, LanguageStemSchema])),
|
|
472
|
+
});
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* @since 0.1.0
|
|
476
|
+
* @category schemas
|
|
477
|
+
*/
|
|
478
|
+
export const ValueSetValueSchema: S.Codec<ValueSetValue> = S.Union([
|
|
479
|
+
S.String,
|
|
480
|
+
IriStemSchema,
|
|
481
|
+
IriStemRangeSchema,
|
|
482
|
+
LiteralStemSchema,
|
|
483
|
+
LiteralStemRangeSchema,
|
|
484
|
+
LanguageSchema,
|
|
485
|
+
LanguageStemSchema,
|
|
486
|
+
LanguageStemRangeSchema,
|
|
487
|
+
ObjectLiteralSchema,
|
|
488
|
+
]);
|
|
489
|
+
|
|
490
|
+
const shapeExprOrRef: S.Codec<ShapeExprOrRef> = S.suspend(
|
|
491
|
+
(): S.Codec<ShapeExprOrRef> => ShapeExprOrRefSchema,
|
|
492
|
+
);
|
|
493
|
+
const tripleExprOrRef: S.Codec<TripleExprOrRef> = S.suspend(
|
|
494
|
+
(): S.Codec<TripleExprOrRef> => TripleExprOrRefSchema,
|
|
495
|
+
);
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* @since 0.1.0
|
|
499
|
+
* @category schemas
|
|
500
|
+
*/
|
|
501
|
+
export const NodeConstraintSchema: S.Codec<NodeConstraint> = S.Struct({
|
|
502
|
+
type: S.Literal('NodeConstraint'),
|
|
503
|
+
nodeKind: opt(S.Literals(['iri', 'bnode', 'nonliteral', 'literal'])),
|
|
504
|
+
datatype: opt(S.String),
|
|
505
|
+
length: opt(Int),
|
|
506
|
+
minlength: opt(Int),
|
|
507
|
+
maxlength: opt(Int),
|
|
508
|
+
pattern: opt(S.String),
|
|
509
|
+
flags: opt(S.String),
|
|
510
|
+
mininclusive: opt(S.Number),
|
|
511
|
+
minexclusive: opt(S.Number),
|
|
512
|
+
maxinclusive: opt(S.Number),
|
|
513
|
+
maxexclusive: opt(S.Number),
|
|
514
|
+
totaldigits: opt(Int),
|
|
515
|
+
fractiondigits: opt(Int),
|
|
516
|
+
values: opt(S.Array(ValueSetValueSchema)),
|
|
517
|
+
semActs: opt(atLeast1(SemActSchema)),
|
|
518
|
+
annotations: opt(atLeast1(AnnotationSchema)),
|
|
519
|
+
});
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* @since 0.1.0
|
|
523
|
+
* @category schemas
|
|
524
|
+
*/
|
|
525
|
+
export const ShapeExternalSchema: S.Codec<ShapeExternal> = S.Struct({
|
|
526
|
+
type: S.Literal('ShapeExternal'),
|
|
527
|
+
});
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* @since 0.1.0
|
|
531
|
+
* @category schemas
|
|
532
|
+
*/
|
|
533
|
+
export const ShapeOrSchema: S.Codec<ShapeOr> = S.Struct({
|
|
534
|
+
type: S.Literal('ShapeOr'),
|
|
535
|
+
shapeExprs: atLeast2(shapeExprOrRef),
|
|
536
|
+
});
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* @since 0.1.0
|
|
540
|
+
* @category schemas
|
|
541
|
+
*/
|
|
542
|
+
export const ShapeAndSchema: S.Codec<ShapeAnd> = S.Struct({
|
|
543
|
+
type: S.Literal('ShapeAnd'),
|
|
544
|
+
shapeExprs: atLeast2(shapeExprOrRef),
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* @since 0.1.0
|
|
549
|
+
* @category schemas
|
|
550
|
+
*/
|
|
551
|
+
export const ShapeNotSchema: S.Codec<ShapeNot> = S.Struct({
|
|
552
|
+
type: S.Literal('ShapeNot'),
|
|
553
|
+
shapeExpr: shapeExprOrRef,
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* @since 0.1.0
|
|
558
|
+
* @category schemas
|
|
559
|
+
*/
|
|
560
|
+
export const ShapeSchema: S.Codec<Shape> = S.Struct({
|
|
561
|
+
type: S.Literal('Shape'),
|
|
562
|
+
closed: opt(S.Boolean),
|
|
563
|
+
extends: opt(atLeast1(shapeExprOrRef)),
|
|
564
|
+
extra: opt(atLeast1(S.String)),
|
|
565
|
+
expression: opt(tripleExprOrRef),
|
|
566
|
+
semActs: opt(atLeast1(SemActSchema)),
|
|
567
|
+
annotations: opt(atLeast1(AnnotationSchema)),
|
|
568
|
+
});
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* @since 0.1.0
|
|
572
|
+
* @category schemas
|
|
573
|
+
*/
|
|
574
|
+
export const ShapeExprSchema: S.Codec<ShapeExpr> = S.Union([
|
|
575
|
+
ShapeOrSchema,
|
|
576
|
+
ShapeAndSchema,
|
|
577
|
+
ShapeNotSchema,
|
|
578
|
+
NodeConstraintSchema,
|
|
579
|
+
ShapeSchema,
|
|
580
|
+
ShapeExternalSchema,
|
|
581
|
+
]);
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* @since 0.1.0
|
|
585
|
+
* @category schemas
|
|
586
|
+
*/
|
|
587
|
+
export const ShapeExprOrRefSchema: S.Codec<ShapeExprOrRef> = S.Union([S.String, ShapeExprSchema]);
|
|
588
|
+
|
|
589
|
+
const cardinalityFields = {
|
|
590
|
+
min: opt(Int),
|
|
591
|
+
max: opt(Int),
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* @since 0.1.0
|
|
596
|
+
* @category schemas
|
|
597
|
+
*/
|
|
598
|
+
export const TripleConstraintSchema: S.Codec<TripleConstraint> = S.Struct({
|
|
599
|
+
type: S.Literal('TripleConstraint'),
|
|
600
|
+
id: opt(S.String),
|
|
601
|
+
inverse: opt(S.Boolean),
|
|
602
|
+
predicate: S.String,
|
|
603
|
+
valueExpr: opt(shapeExprOrRef),
|
|
604
|
+
...cardinalityFields,
|
|
605
|
+
semActs: opt(atLeast1(SemActSchema)),
|
|
606
|
+
annotations: opt(atLeast1(AnnotationSchema)),
|
|
607
|
+
});
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* @since 0.1.0
|
|
611
|
+
* @category schemas
|
|
612
|
+
*/
|
|
613
|
+
export const EachOfSchema: S.Codec<EachOf> = S.Struct({
|
|
614
|
+
type: S.Literal('EachOf'),
|
|
615
|
+
id: opt(S.String),
|
|
616
|
+
expressions: atLeast1(tripleExprOrRef),
|
|
617
|
+
...cardinalityFields,
|
|
618
|
+
semActs: opt(atLeast1(SemActSchema)),
|
|
619
|
+
annotations: opt(atLeast1(AnnotationSchema)),
|
|
620
|
+
});
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* @since 0.1.0
|
|
624
|
+
* @category schemas
|
|
625
|
+
*/
|
|
626
|
+
export const OneOfSchema: S.Codec<OneOf> = S.Struct({
|
|
627
|
+
type: S.Literal('OneOf'),
|
|
628
|
+
id: opt(S.String),
|
|
629
|
+
expressions: atLeast1(tripleExprOrRef),
|
|
630
|
+
...cardinalityFields,
|
|
631
|
+
semActs: opt(atLeast1(SemActSchema)),
|
|
632
|
+
annotations: opt(atLeast1(AnnotationSchema)),
|
|
633
|
+
});
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* @since 0.1.0
|
|
637
|
+
* @category schemas
|
|
638
|
+
*/
|
|
639
|
+
export const TripleExprSchema: S.Codec<TripleExpr> = S.Union([
|
|
640
|
+
EachOfSchema,
|
|
641
|
+
OneOfSchema,
|
|
642
|
+
TripleConstraintSchema,
|
|
643
|
+
]);
|
|
644
|
+
|
|
645
|
+
/**
|
|
646
|
+
* @since 0.1.0
|
|
647
|
+
* @category schemas
|
|
648
|
+
*/
|
|
649
|
+
export const TripleExprOrRefSchema: S.Codec<TripleExprOrRef> = S.Union([
|
|
650
|
+
S.String,
|
|
651
|
+
TripleExprSchema,
|
|
652
|
+
]);
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* @since 0.1.0
|
|
656
|
+
* @category schemas
|
|
657
|
+
*/
|
|
658
|
+
export const ShapeDeclSchema: S.Codec<ShapeDecl> = S.Struct({
|
|
659
|
+
type: S.Literal('ShapeDecl'),
|
|
660
|
+
id: S.String,
|
|
661
|
+
abstract: opt(S.Boolean),
|
|
662
|
+
restricts: opt(atLeast1(ShapeExprOrRefSchema)),
|
|
663
|
+
shapeExpr: ShapeExprOrRefSchema,
|
|
664
|
+
});
|
|
665
|
+
|
|
666
|
+
/**
|
|
667
|
+
* The schema of a complete ShExJ document.
|
|
668
|
+
*
|
|
669
|
+
* @since 0.1.0
|
|
670
|
+
* @category schemas
|
|
671
|
+
*/
|
|
672
|
+
export const SchemaSchema: S.Codec<Schema> = S.Struct({
|
|
673
|
+
type: S.Literal('Schema'),
|
|
674
|
+
'@context': opt(S.String),
|
|
675
|
+
imports: opt(atLeast1(S.String)),
|
|
676
|
+
startActs: opt(atLeast1(SemActSchema)),
|
|
677
|
+
start: opt(ShapeExprOrRefSchema),
|
|
678
|
+
shapes: opt(atLeast1(ShapeDeclSchema)),
|
|
679
|
+
});
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* The ShEx JSON-LD context IRI.
|
|
683
|
+
*
|
|
684
|
+
* @since 0.1.0
|
|
685
|
+
* @category constants
|
|
686
|
+
*/
|
|
687
|
+
export const context = 'http://www.w3.org/ns/shex.jsonld';
|
|
688
|
+
|
|
689
|
+
// -----------------------------------------------------------------------------
|
|
690
|
+
// Decoding / encoding
|
|
691
|
+
// -----------------------------------------------------------------------------
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* Decodes and validates an already-parsed JSON value as a ShExJ schema.
|
|
695
|
+
*
|
|
696
|
+
* @since 0.1.0
|
|
697
|
+
* @category decoding
|
|
698
|
+
*/
|
|
699
|
+
export const decode = (input: unknown): Effect.Effect<Schema, ShExJError> =>
|
|
700
|
+
S.decodeUnknownEffect(SchemaSchema)(input).pipe(
|
|
701
|
+
Effect.mapError((e) => new ShExJError({ message: e.message })),
|
|
702
|
+
);
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Parses and validates a ShExJ JSON document.
|
|
706
|
+
*
|
|
707
|
+
* @since 0.1.0
|
|
708
|
+
* @category decoding
|
|
709
|
+
*/
|
|
710
|
+
export const parse = (input: string): Effect.Effect<Schema, ShExJError> =>
|
|
711
|
+
Result.match(Json.parse(input), {
|
|
712
|
+
onFailure: (e) => Effect.fail(new ShExJError({ message: `invalid JSON: ${e}` })),
|
|
713
|
+
onSuccess: decode,
|
|
714
|
+
});
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* Encodes a schema as a ShExJ JSON value (adding the JSON-LD `@context`).
|
|
718
|
+
*
|
|
719
|
+
* @since 0.1.0
|
|
720
|
+
* @category encoding
|
|
721
|
+
*/
|
|
722
|
+
export const toJson = (schema: Schema): unknown => {
|
|
723
|
+
const { '@context': _, ...rest } = schema;
|
|
724
|
+
return { '@context': context, ...rest };
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
/**
|
|
728
|
+
* Serialises a schema as a ShExJ JSON document.
|
|
729
|
+
*
|
|
730
|
+
* @since 0.1.0
|
|
731
|
+
* @category encoding
|
|
732
|
+
*/
|
|
733
|
+
export const stringify = (schema: Schema, space: number | string = 2): string =>
|
|
734
|
+
S.encodeSync(S.fromJsonString(S.Unknown, { space }))(toJson(schema));
|
|
735
|
+
|
|
736
|
+
// -----------------------------------------------------------------------------
|
|
737
|
+
// IRI mapping
|
|
738
|
+
// -----------------------------------------------------------------------------
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* Applies `f` to every IRI in a schema (labels, predicates, datatypes, value
|
|
742
|
+
* set IRIs and stems, imports, semantic action names and annotations). Blank
|
|
743
|
+
* node labels are left untouched.
|
|
744
|
+
*
|
|
745
|
+
* @since 0.1.0
|
|
746
|
+
* @category combinators
|
|
747
|
+
*/
|
|
748
|
+
export const mapIris = (schema: Schema, f: (iri: string) => string): Schema => {
|
|
749
|
+
const label = (l: string) => (isBlankLabel(l) ? l : f(l));
|
|
750
|
+
const objectValue = (v: ObjectValue): ObjectValue =>
|
|
751
|
+
Predicate.isString(v) ? f(v) : v.type === undefined ? v : { ...v, type: f(v.type) };
|
|
752
|
+
const semActs = (acts: ReadonlyArray<SemAct>) => acts.map((a) => ({ ...a, name: f(a.name) }));
|
|
753
|
+
const annotations = (as: ReadonlyArray<Annotation>) =>
|
|
754
|
+
as.map((a) => ({ ...a, predicate: f(a.predicate), object: objectValue(a.object) }));
|
|
755
|
+
const withMeta = <
|
|
756
|
+
T extends {
|
|
757
|
+
readonly semActs?: ReadonlyArray<SemAct>;
|
|
758
|
+
readonly annotations?: ReadonlyArray<Annotation>;
|
|
759
|
+
},
|
|
760
|
+
>(
|
|
761
|
+
t: T,
|
|
762
|
+
): T => {
|
|
763
|
+
let out: T = { ...t };
|
|
764
|
+
if (t.semActs !== undefined) out = { ...out, semActs: semActs(t.semActs) };
|
|
765
|
+
if (t.annotations !== undefined) out = { ...out, annotations: annotations(t.annotations) };
|
|
766
|
+
return out;
|
|
767
|
+
};
|
|
768
|
+
const value = (v: ValueSetValue): ValueSetValue => {
|
|
769
|
+
if (Predicate.isString(v)) return f(v);
|
|
770
|
+
if ('value' in v) return objectValue(v);
|
|
771
|
+
return Match.value(v).pipe(
|
|
772
|
+
Match.discriminator('type')('IriStem', (member): ValueSetValue => ({
|
|
773
|
+
...member,
|
|
774
|
+
stem: f(member.stem),
|
|
775
|
+
})),
|
|
776
|
+
Match.discriminator('type')('IriStemRange', (member): ValueSetValue => ({
|
|
777
|
+
...member,
|
|
778
|
+
stem: Predicate.isString(member.stem) ? f(member.stem) : member.stem,
|
|
779
|
+
exclusions: member.exclusions.map((e) =>
|
|
780
|
+
Predicate.isString(e) ? f(e) : { ...e, stem: f(e.stem) },
|
|
781
|
+
),
|
|
782
|
+
})),
|
|
783
|
+
Match.orElse((member): ValueSetValue => member),
|
|
784
|
+
);
|
|
785
|
+
};
|
|
786
|
+
const shapeExpr = (e: ShapeExprOrRef): ShapeExprOrRef => {
|
|
787
|
+
if (Predicate.isString(e)) return label(e);
|
|
788
|
+
return Match.value(e).pipe(
|
|
789
|
+
Match.discriminator('type')('ShapeOr', 'ShapeAnd', (expr): ShapeExprOrRef => ({
|
|
790
|
+
...expr,
|
|
791
|
+
shapeExprs: expr.shapeExprs.map(shapeExpr),
|
|
792
|
+
})),
|
|
793
|
+
Match.discriminator('type')('ShapeNot', (expr): ShapeExprOrRef => ({
|
|
794
|
+
...expr,
|
|
795
|
+
shapeExpr: shapeExpr(expr.shapeExpr),
|
|
796
|
+
})),
|
|
797
|
+
Match.discriminator('type')('ShapeExternal', (expr): ShapeExprOrRef => expr),
|
|
798
|
+
Match.discriminator('type')('NodeConstraint', (expr): ShapeExprOrRef => {
|
|
799
|
+
const out: any = withMeta(expr);
|
|
800
|
+
if (expr.datatype !== undefined) out.datatype = f(expr.datatype);
|
|
801
|
+
if (expr.values !== undefined) out.values = expr.values.map(value);
|
|
802
|
+
return out;
|
|
803
|
+
}),
|
|
804
|
+
Match.discriminator('type')('Shape', (expr): ShapeExprOrRef => {
|
|
805
|
+
const out: any = withMeta(expr);
|
|
806
|
+
if (expr.extends !== undefined) out.extends = expr.extends.map(shapeExpr);
|
|
807
|
+
if (expr.extra !== undefined) out.extra = expr.extra.map(f);
|
|
808
|
+
if (expr.expression !== undefined) out.expression = tripleExpr(expr.expression);
|
|
809
|
+
return out;
|
|
810
|
+
}),
|
|
811
|
+
Match.exhaustive,
|
|
812
|
+
);
|
|
813
|
+
};
|
|
814
|
+
const tripleExpr = (t: TripleExprOrRef): TripleExprOrRef => {
|
|
815
|
+
if (Predicate.isString(t)) return label(t);
|
|
816
|
+
const out: any = withMeta(t);
|
|
817
|
+
if (t.id !== undefined) out.id = label(t.id);
|
|
818
|
+
if (t.type === 'TripleConstraint') {
|
|
819
|
+
out.predicate = f(t.predicate);
|
|
820
|
+
if (t.valueExpr !== undefined) out.valueExpr = shapeExpr(t.valueExpr);
|
|
821
|
+
} else {
|
|
822
|
+
out.expressions = t.expressions.map(tripleExpr);
|
|
823
|
+
}
|
|
824
|
+
return out;
|
|
825
|
+
};
|
|
826
|
+
const out: any = { ...schema };
|
|
827
|
+
if (schema.imports !== undefined) out.imports = schema.imports.map(f);
|
|
828
|
+
if (schema.startActs !== undefined) out.startActs = semActs(schema.startActs);
|
|
829
|
+
if (schema.start !== undefined) out.start = shapeExpr(schema.start);
|
|
830
|
+
if (schema.shapes !== undefined)
|
|
831
|
+
out.shapes = schema.shapes.map((d) => {
|
|
832
|
+
const decl: any = { ...d, id: label(d.id), shapeExpr: shapeExpr(d.shapeExpr) };
|
|
833
|
+
if (d.restricts !== undefined) decl.restricts = d.restricts.map(shapeExpr);
|
|
834
|
+
return decl;
|
|
835
|
+
});
|
|
836
|
+
return out;
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
/**
|
|
840
|
+
* Resolves every relative IRI of a schema (e.g. one read from a ShExJ file)
|
|
841
|
+
* against a base IRI.
|
|
842
|
+
*
|
|
843
|
+
* @since 0.1.0
|
|
844
|
+
* @category combinators
|
|
845
|
+
*/
|
|
846
|
+
export const resolveIris = (schema: Schema, base: string): Schema =>
|
|
847
|
+
mapIris(schema, (iri) => (Iri.isAbsolute(iri) ? iri : Iri.resolve(iri, base)));
|
|
848
|
+
|
|
849
|
+
// -----------------------------------------------------------------------------
|
|
850
|
+
// Helpers
|
|
851
|
+
// -----------------------------------------------------------------------------
|
|
852
|
+
|
|
853
|
+
/**
|
|
854
|
+
* Whether a label is a blank node label (`_:x`).
|
|
855
|
+
*
|
|
856
|
+
* @since 0.1.0
|
|
857
|
+
* @category guards
|
|
858
|
+
*/
|
|
859
|
+
export const isBlankLabel = (label: Label): boolean => label.startsWith('_:');
|
|
860
|
+
|
|
861
|
+
/**
|
|
862
|
+
* Whether a value set value is an `ObjectLiteral`.
|
|
863
|
+
*
|
|
864
|
+
* @since 0.1.0
|
|
865
|
+
* @category guards
|
|
866
|
+
*/
|
|
867
|
+
export const isObjectLiteral = (v: unknown): v is ObjectLiteral =>
|
|
868
|
+
Predicate.hasProperty(v, 'value');
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* Inclusive repetition bounds of a triple expression; `max` may be
|
|
872
|
+
* `Infinity`.
|
|
873
|
+
*
|
|
874
|
+
* @since 0.1.0
|
|
875
|
+
* @category utils
|
|
876
|
+
*/
|
|
877
|
+
export interface Bounds {
|
|
878
|
+
readonly min: number;
|
|
879
|
+
readonly max: number;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
/**
|
|
883
|
+
* Normalised cardinality, with `max` of `-1` (unbounded) mapped to
|
|
884
|
+
* `Infinity`.
|
|
885
|
+
*
|
|
886
|
+
* @since 0.1.0
|
|
887
|
+
* @category utils
|
|
888
|
+
*/
|
|
889
|
+
export const cardinality = (c: Cardinality): Bounds => {
|
|
890
|
+
const min = c.min ?? 1;
|
|
891
|
+
const max = c.max === undefined ? 1 : c.max === -1 ? Infinity : c.max;
|
|
892
|
+
return { min, max };
|
|
893
|
+
};
|