@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,73 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { C as XMP_RIGHTS } from "./Namespaces-Bz85vpjW.mjs";
|
|
3
|
+
import { a as localized, f as setText, i as items, o as setBag, p as text, s as setBoolean, t as boolean, u as setLocalized } from "./accessors-CEjaojuQ.mjs";
|
|
4
|
+
// src/xmp/XmpRights.ts
|
|
5
|
+
var XmpRights_exports = /* @__PURE__ */ __exportAll({
|
|
6
|
+
marked: () => marked,
|
|
7
|
+
owner: () => owner,
|
|
8
|
+
setMarked: () => setMarked,
|
|
9
|
+
setOwner: () => setOwner,
|
|
10
|
+
setUsageTerms: () => setUsageTerms,
|
|
11
|
+
setWebStatement: () => setWebStatement,
|
|
12
|
+
usageTerms: () => usageTerms,
|
|
13
|
+
webStatement: () => webStatement
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Whether the resource is rights-managed (`xmpRights:Marked`).
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
* @category getters
|
|
20
|
+
*/
|
|
21
|
+
const marked = boolean(`${XMP_RIGHTS}Marked`);
|
|
22
|
+
/**
|
|
23
|
+
* Sets whether the resource is rights-managed (`xmpRights:Marked`).
|
|
24
|
+
*
|
|
25
|
+
* @since 0.1.0
|
|
26
|
+
* @category setters
|
|
27
|
+
*/
|
|
28
|
+
const setMarked = setBoolean(`${XMP_RIGHTS}Marked`);
|
|
29
|
+
/**
|
|
30
|
+
* The legal owners (`xmpRights:Owner`), an unordered array.
|
|
31
|
+
*
|
|
32
|
+
* @since 0.1.0
|
|
33
|
+
* @category getters
|
|
34
|
+
*/
|
|
35
|
+
const owner = items(`${XMP_RIGHTS}Owner`);
|
|
36
|
+
/**
|
|
37
|
+
* Sets the legal owners (`xmpRights:Owner`), an unordered array.
|
|
38
|
+
*
|
|
39
|
+
* @since 0.1.0
|
|
40
|
+
* @category setters
|
|
41
|
+
*/
|
|
42
|
+
const setOwner = setBag(`${XMP_RIGHTS}Owner`);
|
|
43
|
+
/**
|
|
44
|
+
* How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).
|
|
45
|
+
*
|
|
46
|
+
* @since 0.1.0
|
|
47
|
+
* @category getters
|
|
48
|
+
*/
|
|
49
|
+
const usageTerms = localized(`${XMP_RIGHTS}UsageTerms`);
|
|
50
|
+
/**
|
|
51
|
+
* Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.
|
|
52
|
+
*
|
|
53
|
+
* @since 0.1.0
|
|
54
|
+
* @category setters
|
|
55
|
+
*/
|
|
56
|
+
const setUsageTerms = setLocalized(`${XMP_RIGHTS}UsageTerms`);
|
|
57
|
+
/**
|
|
58
|
+
* The URL of a rights statement (`xmpRights:WebStatement`).
|
|
59
|
+
*
|
|
60
|
+
* @since 0.1.0
|
|
61
|
+
* @category getters
|
|
62
|
+
*/
|
|
63
|
+
const webStatement = text(`${XMP_RIGHTS}WebStatement`);
|
|
64
|
+
/**
|
|
65
|
+
* Sets the URL of a rights statement (`xmpRights:WebStatement`).
|
|
66
|
+
*
|
|
67
|
+
* @since 0.1.0
|
|
68
|
+
* @category setters
|
|
69
|
+
*/
|
|
70
|
+
const setWebStatement = setText(`${XMP_RIGHTS}WebStatement`);
|
|
71
|
+
export { setOwner as a, usageTerms as c, setMarked as i, webStatement as l, marked as n, setUsageTerms as o, owner as r, setWebStatement as s, XmpRights_exports as t };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=XmpRights-BKPtoI5L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XmpRights-BKPtoI5L.mjs","names":["Accessors.boolean","Accessors.setBoolean","Accessors.items","Accessors.setBag","Accessors.localized","Accessors.setLocalized","Accessors.text","Accessors.setText"],"sources":["../src/xmp/XmpRights.ts"],"sourcesContent":["/**\n * Typed accessors for the XMP Rights Management schema (`xmpRights:`).\n *\n * @since 0.1.0\n */\nimport type * as Option from 'effect/Option';\nimport * as Accessors from './internal/accessors.ts';\nimport type * as Metadata from './Metadata.ts';\nimport { XMP_RIGHTS } from './Namespaces.ts';\n\n/**\n * Whether the resource is rights-managed (`xmpRights:Marked`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const marked: (self: Metadata.Metadata) => Option.Option<boolean> = Accessors.boolean(\n `${XMP_RIGHTS}Marked`,\n);\n\n/**\n * Sets whether the resource is rights-managed (`xmpRights:Marked`).\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setMarked: Metadata.Setter<boolean> = Accessors.setBoolean(`${XMP_RIGHTS}Marked`);\n\n/**\n * The legal owners (`xmpRights:Owner`), an unordered array.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const owner: (self: Metadata.Metadata) => Option.Option<ReadonlyArray<string>> =\n Accessors.items(`${XMP_RIGHTS}Owner`);\n\n/**\n * Sets the legal owners (`xmpRights:Owner`), an unordered array.\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setOwner: Metadata.Setter<Iterable<string>> = Accessors.setBag(`${XMP_RIGHTS}Owner`);\n\n/**\n * How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const usageTerms: (self: Metadata.Metadata, language?: string) => Option.Option<string> =\n Accessors.localized(`${XMP_RIGHTS}UsageTerms`);\n\n/**\n * Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setUsageTerms: Metadata.LocalizedSetter = Accessors.setLocalized(\n `${XMP_RIGHTS}UsageTerms`,\n);\n\n/**\n * The URL of a rights statement (`xmpRights:WebStatement`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const webStatement: (self: Metadata.Metadata) => Option.Option<string> = Accessors.text(\n `${XMP_RIGHTS}WebStatement`,\n);\n\n/**\n * Sets the URL of a rights statement (`xmpRights:WebStatement`).\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setWebStatement: Metadata.Setter<string> = Accessors.setText(\n `${XMP_RIGHTS}WebStatement`,\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgBA,MAAa,SAA8DA,QACzE,GAAG,WAAW,OAChB;;;;;;;AAQA,MAAa,YAAsCC,WAAqB,GAAG,WAAW,OAAO;;;;;;;AAQ7F,MAAa,QACXC,MAAgB,GAAG,WAAW,MAAM;;;;;;;AAQtC,MAAa,WAA8CC,OAAiB,GAAG,WAAW,MAAM;;;;;;;AAQhG,MAAa,aACXC,UAAoB,GAAG,WAAW,WAAW;;;;;;;AAQ/C,MAAa,gBAA0CC,aACrD,GAAG,WAAW,WAChB;;;;;;;AAQA,MAAa,eAAmEC,KAC9E,GAAG,WAAW,aAChB;;;;;;;AAQA,MAAa,kBAA2CC,QACtD,GAAG,WAAW,aAChB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { a as LocalizedSetter, c as Setter, o as Metadata } from "./Metadata-nzS7QKRj.mjs";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
declare namespace XmpRights_d_exports {
|
|
4
|
+
export { marked, owner, setMarked, setOwner, setUsageTerms, setWebStatement, usageTerms, webStatement };
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Whether the resource is rights-managed (`xmpRights:Marked`).
|
|
8
|
+
*
|
|
9
|
+
* @since 0.1.0
|
|
10
|
+
* @category getters
|
|
11
|
+
*/
|
|
12
|
+
declare const marked: (self: Metadata) => Option.Option<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Sets whether the resource is rights-managed (`xmpRights:Marked`).
|
|
15
|
+
*
|
|
16
|
+
* @since 0.1.0
|
|
17
|
+
* @category setters
|
|
18
|
+
*/
|
|
19
|
+
declare const setMarked: Setter<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* The legal owners (`xmpRights:Owner`), an unordered array.
|
|
22
|
+
*
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
* @category getters
|
|
25
|
+
*/
|
|
26
|
+
declare const owner: (self: Metadata) => Option.Option<ReadonlyArray<string>>;
|
|
27
|
+
/**
|
|
28
|
+
* Sets the legal owners (`xmpRights:Owner`), an unordered array.
|
|
29
|
+
*
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
* @category setters
|
|
32
|
+
*/
|
|
33
|
+
declare const setOwner: Setter<Iterable<string>>;
|
|
34
|
+
/**
|
|
35
|
+
* How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).
|
|
36
|
+
*
|
|
37
|
+
* @since 0.1.0
|
|
38
|
+
* @category getters
|
|
39
|
+
*/
|
|
40
|
+
declare const usageTerms: (self: Metadata, language?: string) => Option.Option<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.
|
|
43
|
+
*
|
|
44
|
+
* @since 0.1.0
|
|
45
|
+
* @category setters
|
|
46
|
+
*/
|
|
47
|
+
declare const setUsageTerms: LocalizedSetter;
|
|
48
|
+
/**
|
|
49
|
+
* The URL of a rights statement (`xmpRights:WebStatement`).
|
|
50
|
+
*
|
|
51
|
+
* @since 0.1.0
|
|
52
|
+
* @category getters
|
|
53
|
+
*/
|
|
54
|
+
declare const webStatement: (self: Metadata) => Option.Option<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the URL of a rights statement (`xmpRights:WebStatement`).
|
|
57
|
+
*
|
|
58
|
+
* @since 0.1.0
|
|
59
|
+
* @category setters
|
|
60
|
+
*/
|
|
61
|
+
declare const setWebStatement: Setter<string>;
|
|
62
|
+
export { setOwner as a, usageTerms as c, setMarked as i, webStatement as l, marked as n, setUsageTerms as o, owner as r, setWebStatement as s, XmpRights_d_exports as t };
|
|
63
|
+
//# sourceMappingURL=XmpRights-CaALZQz2.d.mts.map
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { Y as literal, o as Literal } from "./Term-CFLG1qu4.mjs";
|
|
3
|
+
import { o as xsd } from "./Vocab-DceKywpq.mjs";
|
|
4
|
+
import * as Arr from "effect/Array";
|
|
5
|
+
import * as MutableHashMap from "effect/MutableHashMap";
|
|
6
|
+
import * as Option from "effect/Option";
|
|
7
|
+
import * as Predicate from "effect/Predicate";
|
|
8
|
+
import * as Match from "effect/Match";
|
|
9
|
+
import * as Record from "effect/Record";
|
|
10
|
+
import * as BigDecimal from "effect/BigDecimal";
|
|
11
|
+
// src/Xsd.ts
|
|
12
|
+
/**
|
|
13
|
+
* XML Schema datatypes: lexical validation, value mapping, canonical forms
|
|
14
|
+
* and typed literal constructors.
|
|
15
|
+
*
|
|
16
|
+
* @since 0.1.0
|
|
17
|
+
*/
|
|
18
|
+
var Xsd_exports = /* @__PURE__ */ __exportAll({
|
|
19
|
+
anyURI: () => anyURI,
|
|
20
|
+
boolean: () => boolean,
|
|
21
|
+
canonicalDecimal: () => canonicalDecimal,
|
|
22
|
+
canonicalDouble: () => canonicalDouble,
|
|
23
|
+
canonicalize: () => canonicalize,
|
|
24
|
+
date: () => date,
|
|
25
|
+
dateTime: () => dateTime,
|
|
26
|
+
decimal: () => decimal,
|
|
27
|
+
double: () => double,
|
|
28
|
+
float: () => float,
|
|
29
|
+
fromJs: () => fromJs,
|
|
30
|
+
integer: () => integer,
|
|
31
|
+
isIntegerDatatype: () => isIntegerDatatype,
|
|
32
|
+
isKnownDatatype: () => isKnownDatatype,
|
|
33
|
+
isNumericDatatype: () => isNumericDatatype,
|
|
34
|
+
isValidLexical: () => isValidLexical,
|
|
35
|
+
isWellFormed: () => isWellFormed,
|
|
36
|
+
numericDatatypes: () => numericDatatypes,
|
|
37
|
+
string: () => string,
|
|
38
|
+
toJs: () => toJs,
|
|
39
|
+
toValue: () => toValue,
|
|
40
|
+
typed: () => typed
|
|
41
|
+
});
|
|
42
|
+
const XSD = xsd.base;
|
|
43
|
+
const TZ = "(?:Z|[+-](?:(?:0\\d|1[0-3]):[0-5]\\d|14:00))";
|
|
44
|
+
const YEAR = "-?(?:[1-9]\\d{3,}|0\\d{3})";
|
|
45
|
+
const MONTH = "(?:0[1-9]|1[0-2])";
|
|
46
|
+
const DAY = "(?:0[1-9]|[12]\\d|3[01])";
|
|
47
|
+
const TIME = "(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?|24:00:00(?:\\.0+)?)";
|
|
48
|
+
const re = (s) => new RegExp(`^${s}$`);
|
|
49
|
+
const INTEGER = /^[+-]?\d+$/;
|
|
50
|
+
const LANGUAGE = /^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/;
|
|
51
|
+
/** Lexical-space patterns by XSD local name. */
|
|
52
|
+
const lexical = MutableHashMap.fromIterable(Record.toEntries({
|
|
53
|
+
boolean: /^(?:true|false|1|0)$/,
|
|
54
|
+
decimal: /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/,
|
|
55
|
+
integer: INTEGER,
|
|
56
|
+
double: /^(?:[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?|[+-]?INF|NaN)$/,
|
|
57
|
+
float: /^(?:[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?|[+-]?INF|NaN)$/,
|
|
58
|
+
dateTime: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}?`),
|
|
59
|
+
dateTimeStamp: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}`),
|
|
60
|
+
date: re(`${YEAR}-${MONTH}-${DAY}${TZ}?`),
|
|
61
|
+
time: re(`${TIME}${TZ}?`),
|
|
62
|
+
gYear: re(`${YEAR}${TZ}?`),
|
|
63
|
+
gYearMonth: re(`${YEAR}-${MONTH}${TZ}?`),
|
|
64
|
+
gMonth: re(`--${MONTH}${TZ}?`),
|
|
65
|
+
gMonthDay: re(`--${MONTH}-${DAY}${TZ}?`),
|
|
66
|
+
gDay: re(`---${DAY}${TZ}?`),
|
|
67
|
+
duration: /^-?P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?=\d)(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$/,
|
|
68
|
+
yearMonthDuration: /^-?P(?=\d)(?:\d+Y)?(?:\d+M)?$/,
|
|
69
|
+
dayTimeDuration: /^-?P(?=\d|T\d)(?:\d+D)?(?:T(?=\d)(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$/,
|
|
70
|
+
hexBinary: /^(?:[0-9A-Fa-f]{2})*$/,
|
|
71
|
+
base64Binary: /^(?:(?:[A-Za-z0-9+/] ?){4})*(?:(?:[A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=)?$/,
|
|
72
|
+
language: LANGUAGE,
|
|
73
|
+
normalizedString: /^[^\r\n\t]*$/,
|
|
74
|
+
token: /^(?:[^\s](?:[^\s]| (?! ))*[^\s]|[^\s])?$/,
|
|
75
|
+
NMTOKEN: /^[\w.\-:\u00B7\u00C0-\uFFFD]+$/u,
|
|
76
|
+
Name: /^[A-Za-z_:\u00C0-\uFFFD][\w.\-:\u00B7\u00C0-\uFFFD]*$/u,
|
|
77
|
+
NCName: /^[A-Za-z_\u00C0-\uFFFD][\w.\-\u00B7\u00C0-\uFFFD]*$/u
|
|
78
|
+
}));
|
|
79
|
+
const unbounded = Option.none();
|
|
80
|
+
const integerBounds = MutableHashMap.fromIterable(Record.toEntries({
|
|
81
|
+
integer: [unbounded, unbounded],
|
|
82
|
+
long: [Option.some(-(2n ** 63n)), Option.some(2n ** 63n - 1n)],
|
|
83
|
+
int: [Option.some(-(2n ** 31n)), Option.some(2n ** 31n - 1n)],
|
|
84
|
+
short: [Option.some(-32768n), Option.some(32767n)],
|
|
85
|
+
byte: [Option.some(-128n), Option.some(127n)],
|
|
86
|
+
unsignedLong: [Option.some(0n), Option.some(2n ** 64n - 1n)],
|
|
87
|
+
unsignedInt: [Option.some(0n), Option.some(2n ** 32n - 1n)],
|
|
88
|
+
unsignedShort: [Option.some(0n), Option.some(65535n)],
|
|
89
|
+
unsignedByte: [Option.some(0n), Option.some(255n)],
|
|
90
|
+
positiveInteger: [Option.some(1n), unbounded],
|
|
91
|
+
nonNegativeInteger: [Option.some(0n), unbounded],
|
|
92
|
+
negativeInteger: [unbounded, Option.some(-1n)],
|
|
93
|
+
nonPositiveInteger: [unbounded, Option.some(0n)]
|
|
94
|
+
}));
|
|
95
|
+
/**
|
|
96
|
+
* The XSD numeric datatypes recognised by SPARQL, ordered by type promotion.
|
|
97
|
+
*
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
*/
|
|
100
|
+
const numericDatatypes = /* @__PURE__ */ new Set([
|
|
101
|
+
...Arr.map(Arr.fromIterable(MutableHashMap.keys(integerBounds)), (t) => XSD + t),
|
|
102
|
+
`${XSD}decimal`,
|
|
103
|
+
`${XSD}float`,
|
|
104
|
+
`${XSD}double`
|
|
105
|
+
]);
|
|
106
|
+
/**
|
|
107
|
+
* Whether a datatype IRI is one of the XSD integer types (including derived
|
|
108
|
+
* types such as `xsd:int`).
|
|
109
|
+
*
|
|
110
|
+
* @since 0.1.0
|
|
111
|
+
*/
|
|
112
|
+
const isIntegerDatatype = (datatype) => datatype.startsWith(XSD) && MutableHashMap.has(integerBounds, datatype.slice(XSD.length));
|
|
113
|
+
/**
|
|
114
|
+
* Whether a datatype IRI is numeric.
|
|
115
|
+
*
|
|
116
|
+
* @since 0.1.0
|
|
117
|
+
*/
|
|
118
|
+
const isNumericDatatype = (datatype) => numericDatatypes.has(datatype);
|
|
119
|
+
/**
|
|
120
|
+
* Whether this implementation knows the lexical space of a datatype.
|
|
121
|
+
*
|
|
122
|
+
* @since 0.1.0
|
|
123
|
+
*/
|
|
124
|
+
const isKnownDatatype = (datatype) => {
|
|
125
|
+
if (datatype === "http://www.w3.org/2001/XMLSchema#string" || datatype === "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" || datatype === "http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString") return true;
|
|
126
|
+
if (!datatype.startsWith(XSD)) return false;
|
|
127
|
+
const local = datatype.slice(XSD.length);
|
|
128
|
+
return MutableHashMap.has(lexical, local) || MutableHashMap.has(integerBounds, local) || local === "anyURI";
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Checks whether a lexical form is in the lexical space of a datatype.
|
|
132
|
+
* Unknown datatypes are treated as valid.
|
|
133
|
+
*
|
|
134
|
+
* @since 0.1.0
|
|
135
|
+
*/
|
|
136
|
+
const isValidLexical = (datatype, value) => {
|
|
137
|
+
if (!datatype.startsWith(XSD)) return true;
|
|
138
|
+
const local = datatype.slice(XSD.length);
|
|
139
|
+
const bounds = MutableHashMap.get(integerBounds, local);
|
|
140
|
+
if (Option.isSome(bounds)) {
|
|
141
|
+
if (!INTEGER.test(value)) return false;
|
|
142
|
+
const n = BigInt(value);
|
|
143
|
+
const [min, max] = bounds.value;
|
|
144
|
+
return !Option.exists(min, (m) => n < m) && !Option.exists(max, (m) => n > m);
|
|
145
|
+
}
|
|
146
|
+
const pattern = MutableHashMap.get(lexical, local);
|
|
147
|
+
if (Option.isNone(pattern)) return true;
|
|
148
|
+
if (!pattern.value.test(value)) return false;
|
|
149
|
+
if (local === "date" || local === "dateTime" || local === "dateTimeStamp") {
|
|
150
|
+
const [year = 0, month = 0, day = 0] = numbers(DATE, value);
|
|
151
|
+
return day <= daysInMonth(year, month);
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Whether a literal is well-formed: its lexical form is in the lexical space
|
|
157
|
+
* of its (known) datatype. Language-tagged strings must have a well-formed
|
|
158
|
+
* BCP 47 tag.
|
|
159
|
+
*
|
|
160
|
+
* @since 0.1.0
|
|
161
|
+
*/
|
|
162
|
+
const isWellFormed = (self) => self.language !== "" ? LANGUAGE.test(self.language) : isValidLexical(self.datatype.value, self.value);
|
|
163
|
+
const daysInMonth = (year, month) => month === 2 ? year % 4 === 0 && year % 100 !== 0 || year % 400 === 0 ? 29 : 28 : [
|
|
164
|
+
4,
|
|
165
|
+
6,
|
|
166
|
+
9,
|
|
167
|
+
11
|
|
168
|
+
].includes(month) ? 30 : 31;
|
|
169
|
+
/** The numbers a pattern's groups match in `v` (the lexical form is valid, so it matches). */
|
|
170
|
+
const numbers = (pattern, v) => (pattern.exec(v) ?? []).slice(1).map(Number);
|
|
171
|
+
const DATE = /^(-?\d+)-(\d\d)-(\d\d)/;
|
|
172
|
+
const parseTimezone = (s) => Option.map(Option.fromNullishOr(/(Z|[+-]\d\d:\d\d)$/.exec(s)?.[1]), (zone) => zone === "Z" ? 0 : (zone.startsWith("-") ? -1 : 1) * (Number(zone.slice(1, 3)) * 60 + Number(zone.slice(4, 6))));
|
|
173
|
+
const toEpoch = (y, mo, d, h, mi, s, tz) => {
|
|
174
|
+
const date = /* @__PURE__ */ new Date(0);
|
|
175
|
+
date.setUTCFullYear(y, mo - 1, d);
|
|
176
|
+
date.setUTCHours(h, mi, 0, 0);
|
|
177
|
+
return date.getTime() + s * 1e3 - Option.getOrElse(tz, () => 0) * 6e4;
|
|
178
|
+
};
|
|
179
|
+
const valueOf = Match.fn((local, _v, _dt) => local).pipe(Match.withReturnType(), Match.when("boolean", (_local, _l, v) => ({
|
|
180
|
+
_tag: "Boolean",
|
|
181
|
+
value: v === "true" || v === "1"
|
|
182
|
+
})), Match.when("decimal", (_local, _l, v) => {
|
|
183
|
+
const normalized = v.startsWith(".") || v.startsWith("-.") || v.startsWith("+.") ? v.replace(".", "0.") : v;
|
|
184
|
+
return {
|
|
185
|
+
_tag: "Decimal",
|
|
186
|
+
value: BigDecimal.fromStringUnsafe(normalized.endsWith(".") ? `${normalized}0` : normalized)
|
|
187
|
+
};
|
|
188
|
+
}), Match.when("double", (_local, _l, v) => ({
|
|
189
|
+
_tag: "Double",
|
|
190
|
+
value: parseXsdFloat(v)
|
|
191
|
+
})), Match.when("float", (_local, _l, v) => ({
|
|
192
|
+
_tag: "Float",
|
|
193
|
+
value: Math.fround(parseXsdFloat(v))
|
|
194
|
+
})), Match.when(Match.is("dateTime", "dateTimeStamp"), (_local, _l, v) => {
|
|
195
|
+
const [y = 0, mo = 0, d = 0, h = 0, mi = 0, s = 0] = numbers(/^(-?\d+)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d(?:\.\d+)?)/, v);
|
|
196
|
+
const tz = parseTimezone(v);
|
|
197
|
+
return {
|
|
198
|
+
_tag: "DateTime",
|
|
199
|
+
kind: "dateTime",
|
|
200
|
+
epochMillis: toEpoch(y, mo, d, h, mi, s, tz),
|
|
201
|
+
timezone: Option.getOrUndefined(tz)
|
|
202
|
+
};
|
|
203
|
+
}), Match.when("date", (_local, _l, v) => {
|
|
204
|
+
const [y = 0, mo = 0, d = 0] = numbers(DATE, v);
|
|
205
|
+
const tz = parseTimezone(v);
|
|
206
|
+
return {
|
|
207
|
+
_tag: "DateTime",
|
|
208
|
+
kind: "date",
|
|
209
|
+
epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),
|
|
210
|
+
timezone: Option.getOrUndefined(tz)
|
|
211
|
+
};
|
|
212
|
+
}), Match.when("time", (_local, _l, v) => {
|
|
213
|
+
const [h = 0, mi = 0, s = 0] = numbers(/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)/, v);
|
|
214
|
+
const tz = parseTimezone(v);
|
|
215
|
+
return {
|
|
216
|
+
_tag: "DateTime",
|
|
217
|
+
kind: "time",
|
|
218
|
+
epochMillis: toEpoch(1972, 12, 31, h, mi, s, tz),
|
|
219
|
+
timezone: Option.getOrUndefined(tz)
|
|
220
|
+
};
|
|
221
|
+
}), Match.when(Match.is("gYear", "gYearMonth", "gMonth", "gMonthDay", "gDay"), (local, _l, v) => {
|
|
222
|
+
const tz = parseTimezone(v);
|
|
223
|
+
const body = Option.isNone(tz) ? v : v.replace(/(Z|[+-]\d\d:\d\d)$/, "");
|
|
224
|
+
let y = 1972;
|
|
225
|
+
let mo = 12;
|
|
226
|
+
let d = 31;
|
|
227
|
+
if (local === "gYear") y = +body;
|
|
228
|
+
else if (local === "gYearMonth") {
|
|
229
|
+
const [year = y, month = mo] = numbers(/^(-?\d+)-(\d\d)$/, body);
|
|
230
|
+
y = year;
|
|
231
|
+
mo = month;
|
|
232
|
+
} else if (local === "gMonth") mo = +body.slice(2);
|
|
233
|
+
else if (local === "gMonthDay") [mo, d] = [+body.slice(2, 4), +body.slice(5, 7)];
|
|
234
|
+
else d = +body.slice(3);
|
|
235
|
+
if (local === "gYear" || local === "gYearMonth" || local === "gMonth") d = 1;
|
|
236
|
+
return {
|
|
237
|
+
_tag: "DateTime",
|
|
238
|
+
kind: local,
|
|
239
|
+
epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),
|
|
240
|
+
timezone: Option.getOrUndefined(tz)
|
|
241
|
+
};
|
|
242
|
+
}), Match.when(Match.is("duration", "yearMonthDuration", "dayTimeDuration"), (_local, _l, v) => {
|
|
243
|
+
const m = /^(-)?P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/.exec(v) ?? [];
|
|
244
|
+
const sign = m[1] === "-" ? -1 : 1;
|
|
245
|
+
const months = sign * (Number(m[2] ?? 0) * 12 + Number(m[3] ?? 0));
|
|
246
|
+
const seconds = sign * (Number(m[4] ?? 0) * 86400 + Number(m[5] ?? 0) * 3600 + Number(m[6] ?? 0) * 60 + Number(m[7] ?? 0));
|
|
247
|
+
return {
|
|
248
|
+
_tag: "Duration",
|
|
249
|
+
months: months === 0 ? 0 : months,
|
|
250
|
+
seconds: seconds === 0 ? 0 : seconds
|
|
251
|
+
};
|
|
252
|
+
}), Match.orElse((_local, _l, v, dt) => ({
|
|
253
|
+
_tag: "Other",
|
|
254
|
+
lexical: v,
|
|
255
|
+
datatype: dt
|
|
256
|
+
})));
|
|
257
|
+
/**
|
|
258
|
+
* Maps a literal to its value. Ill-formed literals and unknown datatypes map
|
|
259
|
+
* to `Other`.
|
|
260
|
+
*
|
|
261
|
+
* @since 0.1.0
|
|
262
|
+
*/
|
|
263
|
+
const toValue = (self) => {
|
|
264
|
+
const dt = self.datatype.value;
|
|
265
|
+
const v = self.value;
|
|
266
|
+
if (dt === "http://www.w3.org/2001/XMLSchema#string" || dt === "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" || dt === "http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString") return {
|
|
267
|
+
_tag: "String",
|
|
268
|
+
value: v,
|
|
269
|
+
language: self.language,
|
|
270
|
+
direction: self.direction
|
|
271
|
+
};
|
|
272
|
+
if (!dt.startsWith(XSD) || !isValidLexical(dt, v)) return {
|
|
273
|
+
_tag: "Other",
|
|
274
|
+
lexical: v,
|
|
275
|
+
datatype: dt
|
|
276
|
+
};
|
|
277
|
+
const local = dt.slice(XSD.length);
|
|
278
|
+
if (MutableHashMap.has(integerBounds, local)) return {
|
|
279
|
+
_tag: "Integer",
|
|
280
|
+
value: BigInt(v)
|
|
281
|
+
};
|
|
282
|
+
return valueOf(local, v, dt);
|
|
283
|
+
};
|
|
284
|
+
const parseXsdFloat = (v) => v === "INF" || v === "+INF" ? Infinity : v === "-INF" ? -Infinity : v === "NaN" ? NaN : Number(v);
|
|
285
|
+
/**
|
|
286
|
+
* Formats a number in the canonical `xsd:double` form (e.g. `1.0E0`).
|
|
287
|
+
*
|
|
288
|
+
* @since 0.1.0
|
|
289
|
+
*/
|
|
290
|
+
const canonicalDouble = (n) => {
|
|
291
|
+
if (Number.isNaN(n)) return "NaN";
|
|
292
|
+
if (n === Infinity) return "INF";
|
|
293
|
+
if (n === -Infinity) return "-INF";
|
|
294
|
+
if (n === 0) return Object.is(n, -0) ? "-0.0E0" : "0.0E0";
|
|
295
|
+
const [mantissa = "", exponent = ""] = n.toExponential().split("e");
|
|
296
|
+
return `${mantissa.includes(".") ? mantissa : `${mantissa}.0`}E${exponent.replace("+", "")}`;
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Formats a `BigDecimal` in the canonical `xsd:decimal` form (always
|
|
300
|
+
* containing a decimal point).
|
|
301
|
+
*
|
|
302
|
+
* @since 0.1.0
|
|
303
|
+
*/
|
|
304
|
+
const canonicalDecimal = (d) => {
|
|
305
|
+
const s = BigDecimal.format(BigDecimal.normalize(d));
|
|
306
|
+
return s.includes(".") ? s : `${s}.0`;
|
|
307
|
+
};
|
|
308
|
+
const canonicalOf = Match.fn((value, _self) => value).pipe(Match.withReturnType(), Match.tag("Boolean", (value, _v, self) => new Literal(String(value.value), self.datatype)), Match.tag("Integer", (value, _v, self) => new Literal(value.value.toString(), self.datatype)), Match.tag("Decimal", (value, _v, self) => new Literal(canonicalDecimal(value.value), self.datatype)), Match.tag("Double", "Float", (value, _v, self) => new Literal(canonicalDouble(value.value), self.datatype)), Match.orElse((_value, _v, self) => self));
|
|
309
|
+
/**
|
|
310
|
+
* Returns the canonical form of a literal, or the literal unchanged if its
|
|
311
|
+
* datatype has no known canonical mapping or it is ill-formed.
|
|
312
|
+
*
|
|
313
|
+
* @since 0.1.0
|
|
314
|
+
*/
|
|
315
|
+
const canonicalize = (self) => canonicalOf(toValue(self), self);
|
|
316
|
+
const dts = {
|
|
317
|
+
boolean: xsd.boolean,
|
|
318
|
+
integer: xsd.integer,
|
|
319
|
+
decimal: xsd.decimal,
|
|
320
|
+
double: xsd.double,
|
|
321
|
+
float: xsd.float,
|
|
322
|
+
dateTime: xsd.dateTime,
|
|
323
|
+
date: xsd.date,
|
|
324
|
+
anyURI: xsd.anyURI
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* @since 0.1.0
|
|
328
|
+
* @category constructors
|
|
329
|
+
*/
|
|
330
|
+
const string = (value) => literal(value);
|
|
331
|
+
/**
|
|
332
|
+
* @since 0.1.0
|
|
333
|
+
* @category constructors
|
|
334
|
+
*/
|
|
335
|
+
const boolean = (value) => new Literal(String(value), dts.boolean);
|
|
336
|
+
/**
|
|
337
|
+
* @since 0.1.0
|
|
338
|
+
* @category constructors
|
|
339
|
+
*/
|
|
340
|
+
const integer = (value) => new Literal(Predicate.isBigInt(value) ? value.toString() : Math.trunc(value).toString(), dts.integer);
|
|
341
|
+
/**
|
|
342
|
+
* @since 0.1.0
|
|
343
|
+
* @category constructors
|
|
344
|
+
*/
|
|
345
|
+
const decimal = (value) => new Literal(canonicalDecimal(BigDecimal.isBigDecimal(value) ? value : Predicate.isNumber(value) ? BigDecimal.fromNumberUnsafe(value) : BigDecimal.fromStringUnsafe(value)), dts.decimal);
|
|
346
|
+
/**
|
|
347
|
+
* @since 0.1.0
|
|
348
|
+
* @category constructors
|
|
349
|
+
*/
|
|
350
|
+
const double = (value) => new Literal(canonicalDouble(value), dts.double);
|
|
351
|
+
/**
|
|
352
|
+
* @since 0.1.0
|
|
353
|
+
* @category constructors
|
|
354
|
+
*/
|
|
355
|
+
const float = (value) => new Literal(canonicalDouble(Math.fround(value)), dts.float);
|
|
356
|
+
/**
|
|
357
|
+
* @since 0.1.0
|
|
358
|
+
* @category constructors
|
|
359
|
+
*/
|
|
360
|
+
const dateTime = (value) => new Literal(value.toISOString(), dts.dateTime);
|
|
361
|
+
/**
|
|
362
|
+
* @since 0.1.0
|
|
363
|
+
* @category constructors
|
|
364
|
+
*/
|
|
365
|
+
const date = (value) => new Literal(value.toISOString().slice(0, 10), dts.date);
|
|
366
|
+
/**
|
|
367
|
+
* @since 0.1.0
|
|
368
|
+
* @category constructors
|
|
369
|
+
*/
|
|
370
|
+
const anyURI = (value) => new Literal(value, dts.anyURI);
|
|
371
|
+
/**
|
|
372
|
+
* Creates a typed literal from a datatype and lexical form.
|
|
373
|
+
*
|
|
374
|
+
* @since 0.1.0
|
|
375
|
+
* @category constructors
|
|
376
|
+
*/
|
|
377
|
+
const typed = (value, datatype) => new Literal(value, datatype);
|
|
378
|
+
/**
|
|
379
|
+
* Converts a JavaScript value to the most natural literal: strings become
|
|
380
|
+
* `xsd:string`, booleans `xsd:boolean`, integers `xsd:integer`, other numbers
|
|
381
|
+
* `xsd:double`, bigints `xsd:integer` and dates `xsd:dateTime`.
|
|
382
|
+
*
|
|
383
|
+
* @since 0.1.0
|
|
384
|
+
* @category constructors
|
|
385
|
+
*/
|
|
386
|
+
const fromJs = (value) => {
|
|
387
|
+
if (Predicate.isString(value)) return string(value);
|
|
388
|
+
if (Predicate.isBoolean(value)) return boolean(value);
|
|
389
|
+
if (Predicate.isBigInt(value)) return integer(value);
|
|
390
|
+
if (Predicate.isNumber(value)) return Number.isInteger(value) ? integer(value) : double(value);
|
|
391
|
+
return dateTime(value);
|
|
392
|
+
};
|
|
393
|
+
const jsOf = Match.type().pipe(Match.withReturnType(), Match.tag("String", (v) => Option.some(v.value)), Match.tag("Boolean", (v) => Option.some(v.value)), Match.tag("Integer", (v) => Option.some(v.value <= BigInt(Number.MAX_SAFE_INTEGER) && v.value >= BigInt(Number.MIN_SAFE_INTEGER) ? Number(v.value) : v.value)), Match.tag("Decimal", (v) => Option.some(BigDecimal.toNumberUnsafe(v.value))), Match.tag("Double", "Float", (v) => Option.some(v.value)), Match.tag("DateTime", (v) => v.kind === "dateTime" || v.kind === "date" ? Option.some(new Date(v.epochMillis)) : Option.none()), Match.orElse(() => Option.none()));
|
|
394
|
+
/**
|
|
395
|
+
* Converts a literal to a natural JavaScript value: strings, booleans,
|
|
396
|
+
* numbers (for integers within the safe range, decimals, floats and doubles),
|
|
397
|
+
* bigints (for large integers) and `Date`s (for `xsd:dateTime` and
|
|
398
|
+
* `xsd:date`). Returns `None` for ill-formed literals and unknown datatypes.
|
|
399
|
+
*
|
|
400
|
+
* @since 0.1.0
|
|
401
|
+
*/
|
|
402
|
+
const toJs = (self) => jsOf(toValue(self));
|
|
403
|
+
export { typed as C, toValue as S, isValidLexical as _, canonicalDouble as a, string as b, dateTime as c, float as d, fromJs as f, isNumericDatatype as g, isKnownDatatype as h, canonicalDecimal as i, decimal as l, isIntegerDatatype as m, anyURI as n, canonicalize as o, integer as p, boolean as r, date as s, Xsd_exports as t, double as u, isWellFormed as v, toJs as x, numericDatatypes as y };
|
|
404
|
+
|
|
405
|
+
//# sourceMappingURL=Xsd-Cdgx5zRB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Xsd-Cdgx5zRB.mjs","names":[],"sources":["../src/Xsd.ts"],"sourcesContent":["/**\n * XML Schema datatypes: lexical validation, value mapping, canonical forms\n * and typed literal constructors.\n *\n * @since 0.1.0\n */\nimport * as BigDecimal from 'effect/BigDecimal';\nimport * as Arr from 'effect/Array';\nimport * as Match from 'effect/Match';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\nimport {\n Literal,\n NamedNode,\n RDF_DIR_LANG_STRING,\n RDF_LANG_STRING,\n XSD_STRING,\n literal,\n} from './Term.ts';\nimport { xsd } from './Vocab.ts';\nimport * as Predicate from 'effect/Predicate';\n\nconst XSD = xsd.base;\n\n// -----------------------------------------------------------------------------\n// Lexical spaces\n// -----------------------------------------------------------------------------\n\nconst TZ = '(?:Z|[+-](?:(?:0\\\\d|1[0-3]):[0-5]\\\\d|14:00))';\nconst YEAR = '-?(?:[1-9]\\\\d{3,}|0\\\\d{3})';\nconst MONTH = '(?:0[1-9]|1[0-2])';\nconst DAY = '(?:0[1-9]|[12]\\\\d|3[01])';\nconst TIME = '(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?|24:00:00(?:\\\\.0+)?)';\n\nconst re = (s: string) => new RegExp(`^${s}$`);\n\nconst INTEGER = /^[+-]?\\d+$/;\nconst LANGUAGE = /^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/;\n\n/** Lexical-space patterns by XSD local name. */\nconst lexical = MutableHashMap.fromIterable<string, RegExp>(\n Record.toEntries({\n boolean: /^(?:true|false|1|0)$/,\n decimal: /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)$/,\n integer: INTEGER,\n double: /^(?:[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?|[+-]?INF|NaN)$/,\n float: /^(?:[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?|[+-]?INF|NaN)$/,\n dateTime: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}?`),\n dateTimeStamp: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}`),\n date: re(`${YEAR}-${MONTH}-${DAY}${TZ}?`),\n time: re(`${TIME}${TZ}?`),\n gYear: re(`${YEAR}${TZ}?`),\n gYearMonth: re(`${YEAR}-${MONTH}${TZ}?`),\n gMonth: re(`--${MONTH}${TZ}?`),\n gMonthDay: re(`--${MONTH}-${DAY}${TZ}?`),\n gDay: re(`---${DAY}${TZ}?`),\n duration:\n /^-?P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?=\\d)(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?$/,\n yearMonthDuration: /^-?P(?=\\d)(?:\\d+Y)?(?:\\d+M)?$/,\n dayTimeDuration: /^-?P(?=\\d|T\\d)(?:\\d+D)?(?:T(?=\\d)(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?$/,\n hexBinary: /^(?:[0-9A-Fa-f]{2})*$/,\n base64Binary:\n /^(?:(?:[A-Za-z0-9+/] ?){4})*(?:(?:[A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=)?$/,\n language: LANGUAGE,\n // eslint-disable-next-line no-control-regex\n normalizedString: /^[^\\r\\n\\t]*$/,\n token: /^(?:[^\\s](?:[^\\s]| (?! ))*[^\\s]|[^\\s])?$/,\n NMTOKEN: /^[\\w.\\-:\\u00B7\\u00C0-\\uFFFD]+$/u,\n Name: /^[A-Za-z_:\\u00C0-\\uFFFD][\\w.\\-:\\u00B7\\u00C0-\\uFFFD]*$/u,\n NCName: /^[A-Za-z_\\u00C0-\\uFFFD][\\w.\\-\\u00B7\\u00C0-\\uFFFD]*$/u,\n }),\n);\n\n/** Value-space bounds (inclusive; `undefined` is unbounded) of the XSD integer types. */\n/** The inclusive bounds of an integer type; none is unbounded. */\ntype Bounds = readonly [Option.Option<bigint>, Option.Option<bigint>];\n\nconst unbounded: Option.Option<bigint> = Option.none();\n\nconst integerBounds = MutableHashMap.fromIterable<string, Bounds>(\n Record.toEntries<string, Bounds>({\n integer: [unbounded, unbounded],\n long: [Option.some(-(2n ** 63n)), Option.some(2n ** 63n - 1n)],\n int: [Option.some(-(2n ** 31n)), Option.some(2n ** 31n - 1n)],\n short: [Option.some(-32768n), Option.some(32767n)],\n byte: [Option.some(-128n), Option.some(127n)],\n unsignedLong: [Option.some(0n), Option.some(2n ** 64n - 1n)],\n unsignedInt: [Option.some(0n), Option.some(2n ** 32n - 1n)],\n unsignedShort: [Option.some(0n), Option.some(65535n)],\n unsignedByte: [Option.some(0n), Option.some(255n)],\n positiveInteger: [Option.some(1n), unbounded],\n nonNegativeInteger: [Option.some(0n), unbounded],\n negativeInteger: [unbounded, Option.some(-1n)],\n nonPositiveInteger: [unbounded, Option.some(0n)],\n }),\n);\n\n/**\n * The XSD numeric datatypes recognised by SPARQL, ordered by type promotion.\n *\n * @since 0.1.0\n */\nexport const numericDatatypes: ReadonlySet<string> = new Set([\n ...Arr.map(Arr.fromIterable(MutableHashMap.keys(integerBounds)), (t) => XSD + t),\n `${XSD}decimal`,\n `${XSD}float`,\n `${XSD}double`,\n]);\n\n/**\n * Whether a datatype IRI is one of the XSD integer types (including derived\n * types such as `xsd:int`).\n *\n * @since 0.1.0\n */\nexport const isIntegerDatatype = (datatype: string): boolean =>\n datatype.startsWith(XSD) && MutableHashMap.has(integerBounds, datatype.slice(XSD.length));\n\n/**\n * Whether a datatype IRI is numeric.\n *\n * @since 0.1.0\n */\nexport const isNumericDatatype = (datatype: string): boolean => numericDatatypes.has(datatype);\n\n/**\n * Whether this implementation knows the lexical space of a datatype.\n *\n * @since 0.1.0\n */\nexport const isKnownDatatype = (datatype: string): boolean => {\n if (datatype === XSD_STRING || datatype === RDF_LANG_STRING || datatype === RDF_DIR_LANG_STRING)\n return true;\n if (!datatype.startsWith(XSD)) return false;\n const local = datatype.slice(XSD.length);\n return (\n MutableHashMap.has(lexical, local) ||\n MutableHashMap.has(integerBounds, local) ||\n local === 'anyURI'\n );\n};\n\n/**\n * Checks whether a lexical form is in the lexical space of a datatype.\n * Unknown datatypes are treated as valid.\n *\n * @since 0.1.0\n */\nexport const isValidLexical = (datatype: string, value: string): boolean => {\n if (!datatype.startsWith(XSD)) return true;\n const local = datatype.slice(XSD.length);\n const bounds = MutableHashMap.get(integerBounds, local);\n if (Option.isSome(bounds)) {\n if (!INTEGER.test(value)) return false;\n const n = BigInt(value);\n const [min, max] = bounds.value;\n return !Option.exists(min, (m) => n < m) && !Option.exists(max, (m) => n > m);\n }\n const pattern = MutableHashMap.get(lexical, local);\n if (Option.isNone(pattern)) return true;\n if (!pattern.value.test(value)) return false;\n if (local === 'date' || local === 'dateTime' || local === 'dateTimeStamp') {\n const [year = 0, month = 0, day = 0] = numbers(DATE, value);\n return day <= daysInMonth(year, month);\n }\n return true;\n};\n\n/**\n * Whether a literal is well-formed: its lexical form is in the lexical space\n * of its (known) datatype. Language-tagged strings must have a well-formed\n * BCP 47 tag.\n *\n * @since 0.1.0\n */\nexport const isWellFormed = (self: Literal): boolean =>\n self.language !== ''\n ? LANGUAGE.test(self.language)\n : isValidLexical(self.datatype.value, self.value);\n\nconst daysInMonth = (year: number, month: number) =>\n month === 2\n ? (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n ? 29\n : 28\n : [4, 6, 9, 11].includes(month)\n ? 30\n : 31;\n\n// -----------------------------------------------------------------------------\n// Value space\n// -----------------------------------------------------------------------------\n\n/**\n * A literal's value in the XSD value space.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Value =\n | {\n readonly _tag: 'String';\n readonly value: string;\n readonly language: string;\n readonly direction: 'ltr' | 'rtl' | undefined;\n }\n | { readonly _tag: 'Boolean'; readonly value: boolean }\n | { readonly _tag: 'Integer'; readonly value: bigint }\n | { readonly _tag: 'Decimal'; readonly value: BigDecimal.BigDecimal }\n | { readonly _tag: 'Float'; readonly value: number }\n | { readonly _tag: 'Double'; readonly value: number }\n | {\n readonly _tag: 'DateTime';\n readonly kind:\n | 'dateTime'\n | 'date'\n | 'time'\n | 'gYear'\n | 'gYearMonth'\n | 'gMonth'\n | 'gMonthDay'\n | 'gDay';\n /** Milliseconds since the epoch, interpreting missing timezones as UTC. */\n readonly epochMillis: number;\n /** Timezone offset in minutes, or `undefined` when absent. */\n readonly timezone: number | undefined;\n }\n | { readonly _tag: 'Duration'; readonly months: number; readonly seconds: number }\n | { readonly _tag: 'Other'; readonly lexical: string; readonly datatype: string };\n\n/** The numbers a pattern's groups match in `v` (the lexical form is valid, so it matches). */\nconst numbers = (pattern: RegExp, v: string): ReadonlyArray<number> =>\n (pattern.exec(v) ?? []).slice(1).map(Number);\n\nconst DATE = /^(-?\\d+)-(\\d\\d)-(\\d\\d)/;\n\nconst parseTimezone = (s: string): Option.Option<number> =>\n Option.map(Option.fromNullishOr(/(Z|[+-]\\d\\d:\\d\\d)$/.exec(s)?.[1]), (zone) =>\n zone === 'Z'\n ? 0\n : (zone.startsWith('-') ? -1 : 1) *\n (Number(zone.slice(1, 3)) * 60 + Number(zone.slice(4, 6))),\n );\n\nconst toEpoch = (\n y: number,\n mo: number,\n d: number,\n h: number,\n mi: number,\n s: number,\n tz: Option.Option<number>,\n) => {\n const date = new Date(0);\n date.setUTCFullYear(y, mo - 1, d);\n date.setUTCHours(h, mi, 0, 0);\n return date.getTime() + s * 1000 - Option.getOrElse(tz, () => 0) * 60_000;\n};\n\n// Built once: `toValue` runs for every literal a comparison, filter or index touches.\nconst valueOf = Match.fn((local: string, _v: string, _dt: string) => local).pipe(\n Match.withReturnType<Value>(),\n Match.when('boolean', (_local, _l, v) => ({ _tag: 'Boolean', value: v === 'true' || v === '1' })),\n Match.when('decimal', (_local, _l, v) => {\n const normalized =\n v.startsWith('.') || v.startsWith('-.') || v.startsWith('+.') ? v.replace('.', '0.') : v;\n return {\n _tag: 'Decimal',\n value: BigDecimal.fromStringUnsafe(normalized.endsWith('.') ? `${normalized}0` : normalized),\n };\n }),\n Match.when('double', (_local, _l, v) => ({ _tag: 'Double', value: parseXsdFloat(v) })),\n Match.when('float', (_local, _l, v) => ({\n _tag: 'Float',\n value: Math.fround(parseXsdFloat(v)),\n })),\n Match.when(Match.is('dateTime', 'dateTimeStamp'), (_local, _l, v) => {\n const [y = 0, mo = 0, d = 0, h = 0, mi = 0, s = 0] = numbers(\n /^(-?\\d+)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)/,\n v,\n );\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'dateTime',\n epochMillis: toEpoch(y, mo, d, h, mi, s, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when('date', (_local, _l, v) => {\n const [y = 0, mo = 0, d = 0] = numbers(DATE, v);\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'date',\n epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when('time', (_local, _l, v) => {\n const [h = 0, mi = 0, s = 0] = numbers(/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)/, v);\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'time',\n epochMillis: toEpoch(1972, 12, 31, h, mi, s, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when(Match.is('gYear', 'gYearMonth', 'gMonth', 'gMonthDay', 'gDay'), (local, _l, v) => {\n const tz = parseTimezone(v);\n const body = Option.isNone(tz) ? v : v.replace(/(Z|[+-]\\d\\d:\\d\\d)$/, '');\n let y = 1972;\n let mo = 12;\n let d = 31;\n if (local === 'gYear') y = +body;\n else if (local === 'gYearMonth') {\n const [year = y, month = mo] = numbers(/^(-?\\d+)-(\\d\\d)$/, body);\n y = year;\n mo = month;\n } else if (local === 'gMonth') mo = +body.slice(2);\n else if (local === 'gMonthDay') [mo, d] = [+body.slice(2, 4), +body.slice(5, 7)];\n else d = +body.slice(3);\n if (local === 'gYear' || local === 'gYearMonth' || local === 'gMonth') d = 1;\n return {\n _tag: 'DateTime',\n kind: local,\n epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when(Match.is('duration', 'yearMonthDuration', 'dayTimeDuration'), (_local, _l, v) => {\n const m =\n /^(-)?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/.exec(\n v,\n ) ?? [];\n const sign = m[1] === '-' ? -1 : 1;\n const months = sign * (Number(m[2] ?? 0) * 12 + Number(m[3] ?? 0));\n const seconds =\n sign *\n (Number(m[4] ?? 0) * 86400 +\n Number(m[5] ?? 0) * 3600 +\n Number(m[6] ?? 0) * 60 +\n Number(m[7] ?? 0));\n return {\n _tag: 'Duration',\n months: months === 0 ? 0 : months,\n seconds: seconds === 0 ? 0 : seconds,\n };\n }),\n Match.orElse((_local, _l, v, dt) => ({ _tag: 'Other', lexical: v, datatype: dt })),\n);\n\n/**\n * Maps a literal to its value. Ill-formed literals and unknown datatypes map\n * to `Other`.\n *\n * @since 0.1.0\n */\nexport const toValue = (self: Literal): Value => {\n const dt = self.datatype.value;\n const v = self.value;\n if (dt === XSD_STRING || dt === RDF_LANG_STRING || dt === RDF_DIR_LANG_STRING) {\n return { _tag: 'String', value: v, language: self.language, direction: self.direction };\n }\n if (!dt.startsWith(XSD) || !isValidLexical(dt, v))\n return { _tag: 'Other', lexical: v, datatype: dt };\n const local = dt.slice(XSD.length);\n if (MutableHashMap.has(integerBounds, local)) return { _tag: 'Integer', value: BigInt(v) };\n return valueOf(local, v, dt);\n};\n\nconst parseXsdFloat = (v: string): number =>\n v === 'INF' || v === '+INF' ? Infinity : v === '-INF' ? -Infinity : v === 'NaN' ? NaN : Number(v);\n\n// -----------------------------------------------------------------------------\n// Canonical forms\n// -----------------------------------------------------------------------------\n\n/**\n * Formats a number in the canonical `xsd:double` form (e.g. `1.0E0`).\n *\n * @since 0.1.0\n */\nexport const canonicalDouble = (n: number): string => {\n if (Number.isNaN(n)) return 'NaN';\n if (n === Infinity) return 'INF';\n if (n === -Infinity) return '-INF';\n if (n === 0) return Object.is(n, -0) ? '-0.0E0' : '0.0E0';\n // `toExponential` always produces `<mantissa>e<exponent>`\n const [mantissa = '', exponent = ''] = n.toExponential().split('e');\n const m = mantissa.includes('.') ? mantissa : `${mantissa}.0`;\n return `${m}E${exponent.replace('+', '')}`;\n};\n\n/**\n * Formats a `BigDecimal` in the canonical `xsd:decimal` form (always\n * containing a decimal point).\n *\n * @since 0.1.0\n */\nexport const canonicalDecimal = (d: BigDecimal.BigDecimal): string => {\n const s = BigDecimal.format(BigDecimal.normalize(d));\n return s.includes('.') ? s : `${s}.0`;\n};\n\n// Built once: `canonicalize` runs for every literal a serializer or the dataset canonicalises.\nconst canonicalOf = Match.fn((value: Value, _self: Literal) => value).pipe(\n Match.withReturnType<Literal>(),\n Match.tag('Boolean', (value, _v, self) => new Literal(String(value.value), self.datatype)),\n Match.tag('Integer', (value, _v, self) => new Literal(value.value.toString(), self.datatype)),\n Match.tag(\n 'Decimal',\n (value, _v, self) => new Literal(canonicalDecimal(value.value), self.datatype),\n ),\n Match.tag(\n 'Double',\n 'Float',\n (value, _v, self) => new Literal(canonicalDouble(value.value), self.datatype),\n ),\n Match.orElse((_value, _v, self) => self),\n);\n\n/**\n * Returns the canonical form of a literal, or the literal unchanged if its\n * datatype has no known canonical mapping or it is ill-formed.\n *\n * @since 0.1.0\n */\nexport const canonicalize = (self: Literal): Literal => canonicalOf(toValue(self), self);\n\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n\nconst dts = {\n boolean: xsd.boolean,\n integer: xsd.integer,\n decimal: xsd.decimal,\n double: xsd.double,\n float: xsd.float,\n dateTime: xsd.dateTime,\n date: xsd.date,\n anyURI: xsd.anyURI,\n} as const;\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const string = (value: string): Literal => literal(value);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const boolean = (value: boolean): Literal => new Literal(String(value), dts.boolean);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const integer = (value: number | bigint): Literal =>\n new Literal(\n Predicate.isBigInt(value) ? value.toString() : Math.trunc(value).toString(),\n dts.integer,\n );\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const decimal = (value: BigDecimal.BigDecimal | number | string): Literal =>\n new Literal(\n canonicalDecimal(\n BigDecimal.isBigDecimal(value)\n ? value\n : Predicate.isNumber(value)\n ? BigDecimal.fromNumberUnsafe(value)\n : BigDecimal.fromStringUnsafe(value),\n ),\n dts.decimal,\n );\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const double = (value: number): Literal => new Literal(canonicalDouble(value), dts.double);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const float = (value: number): Literal =>\n new Literal(canonicalDouble(Math.fround(value)), dts.float);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const dateTime = (value: Date): Literal => new Literal(value.toISOString(), dts.dateTime);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const date = (value: Date): Literal =>\n new Literal(value.toISOString().slice(0, 10), dts.date);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const anyURI = (value: string): Literal => new Literal(value, dts.anyURI);\n\n/**\n * Creates a typed literal from a datatype and lexical form.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const typed = (value: string, datatype: NamedNode): Literal => new Literal(value, datatype);\n\n/**\n * Converts a JavaScript value to the most natural literal: strings become\n * `xsd:string`, booleans `xsd:boolean`, integers `xsd:integer`, other numbers\n * `xsd:double`, bigints `xsd:integer` and dates `xsd:dateTime`.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromJs = (value: string | number | bigint | boolean | Date): Literal => {\n if (Predicate.isString(value)) return string(value);\n if (Predicate.isBoolean(value)) return boolean(value);\n if (Predicate.isBigInt(value)) return integer(value);\n if (Predicate.isNumber(value)) return Number.isInteger(value) ? integer(value) : double(value);\n return dateTime(value);\n};\n\n// Built once: `toJs` runs for every literal a result row or JSON conversion reads.\nconst jsOf = Match.type<Value>().pipe(\n Match.withReturnType<Option.Option<string | number | bigint | boolean | Date>>(),\n Match.tag('String', (v) => Option.some(v.value)),\n Match.tag('Boolean', (v) => Option.some(v.value)),\n Match.tag('Integer', (v) =>\n Option.some(\n v.value <= BigInt(Number.MAX_SAFE_INTEGER) && v.value >= BigInt(Number.MIN_SAFE_INTEGER)\n ? Number(v.value)\n : v.value,\n ),\n ),\n Match.tag('Decimal', (v) => Option.some(BigDecimal.toNumberUnsafe(v.value))),\n Match.tag('Double', 'Float', (v) => Option.some(v.value)),\n Match.tag('DateTime', (v) =>\n v.kind === 'dateTime' || v.kind === 'date'\n ? Option.some(new Date(v.epochMillis))\n : Option.none(),\n ),\n Match.orElse(() => Option.none()),\n);\n\n/**\n * Converts a literal to a natural JavaScript value: strings, booleans,\n * numbers (for integers within the safe range, decimals, floats and doubles),\n * bigints (for large integers) and `Date`s (for `xsd:dateTime` and\n * `xsd:date`). Returns `None` for ill-formed literals and unknown datatypes.\n *\n * @since 0.1.0\n */\nexport const toJs = (self: Literal): Option.Option<string | number | bigint | boolean | Date> =>\n jsOf(toValue(self));\n"],"mappings":"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"}
|