@thomasfosterau/effect-rdf 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2250 -1
- package/dist/Algebra-CGG4oae3.mjs +433 -0
- package/dist/Algebra-CGG4oae3.mjs.map +1 -0
- package/dist/Algebra-uGsIEOUA.d.mts +446 -0
- package/dist/Ast-CPRZmBvk.mjs +552 -0
- package/dist/Ast-CPRZmBvk.mjs.map +1 -0
- package/dist/Ast-vcw2W-lf.d.mts +827 -0
- package/dist/Bindings-Ck3m7JRC.mjs +249 -0
- package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
- package/dist/Bindings-DiKpBd7f.d.mts +153 -0
- package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
- package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
- package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
- package/dist/ClientFormats-CXomkXLV.mjs +73 -0
- package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
- package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
- package/dist/Csv2Json-DynEcwCh.mjs +194 -0
- package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
- package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
- package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
- package/dist/Dataset-BlmlcI7J.mjs +782 -0
- package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
- package/dist/Dataset-DS3ESOcO.d.mts +426 -0
- package/dist/Dataset.d.mts +2 -0
- package/dist/Dataset.mjs +1 -0
- package/dist/Datatype-CxMpamHC.d.mts +212 -0
- package/dist/Datatype-DQvkNkiH.mjs +1001 -0
- package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
- package/dist/Dialect-8ChFj5EX.d.mts +113 -0
- package/dist/Dialect-CzVH38uo.mjs +165 -0
- package/dist/Dialect-CzVH38uo.mjs.map +1 -0
- package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
- package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
- package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
- package/dist/DublinCore-AnwqxRx6.mjs +137 -0
- package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
- package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
- package/dist/Engine-CYPB3g4h.d.mts +144 -0
- package/dist/Engine-DF8PN7g-.mjs +872 -0
- package/dist/Engine-DF8PN7g-.mjs.map +1 -0
- package/dist/Errors-CMdV1RhU.mjs +37 -0
- package/dist/Errors-CMdV1RhU.mjs.map +1 -0
- package/dist/Errors-u2bDjUeM.d.mts +30 -0
- package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
- package/dist/Evaluator-DOY2-guC.mjs +281 -0
- package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
- package/dist/Exif-CpqniYQd.d.mts +78 -0
- package/dist/Exif-DjkCfEB-.mjs +89 -0
- package/dist/Exif-DjkCfEB-.mjs.map +1 -0
- package/dist/Expression-BIMMvduQ.mjs +230 -0
- package/dist/Expression-BIMMvduQ.mjs.map +1 -0
- package/dist/Expression-W8A9cyX7.d.mts +89 -0
- package/dist/Extract-Bop85jES.mjs +220 -0
- package/dist/Extract-Bop85jES.mjs.map +1 -0
- package/dist/Extract-C_pCvuTC.d.mts +88 -0
- package/dist/Federation-BcNrozc1.d.mts +52 -0
- package/dist/Federation-CHScBkaK.mjs +130 -0
- package/dist/Federation-CHScBkaK.mjs.map +1 -0
- package/dist/Functions-AvjNcId_.mjs +1346 -0
- package/dist/Functions-AvjNcId_.mjs.map +1 -0
- package/dist/Functions-OQJZP-F6.d.mts +111 -0
- package/dist/Generator-C52mmq01.d.mts +50 -0
- package/dist/Generator-D3utCJC7.mjs +205 -0
- package/dist/Generator-D3utCJC7.mjs.map +1 -0
- package/dist/Grammar-CPlSxGH6.mjs +200 -0
- package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
- package/dist/Grammar-CRhnRoCu.d.mts +148 -0
- package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
- package/dist/Grammar-mQ8CgE1M.mjs +258 -0
- package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
- package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
- package/dist/GraphStore-DvbqwKy1.mjs +212 -0
- package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
- package/dist/Iri-BB8Ks-BF.d.mts +84 -0
- package/dist/Iri-Cr92gsQV.mjs +232 -0
- package/dist/Iri-Cr92gsQV.mjs.map +1 -0
- package/dist/Iri.d.mts +2 -0
- package/dist/Iri.mjs +1 -0
- package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
- package/dist/Isomorphism-DInKnWIy.mjs +390 -0
- package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
- package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
- package/dist/Isomorphism.d.mts +2 -0
- package/dist/Isomorphism.mjs +1 -0
- package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
- package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
- package/dist/JsonLd-DobFrQNa.d.mts +242 -0
- package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
- package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
- package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
- package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
- package/dist/LanguageTag.d.mts +2 -0
- package/dist/LanguageTag.mjs +1 -0
- package/dist/Lexical-Cg0JHrf6.mjs +243 -0
- package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
- package/dist/Lexical-D3zySYVS.d.mts +163 -0
- package/dist/Manifest-B6xf6mUc.mjs +148 -0
- package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
- package/dist/Manifest-DQUMRBFr.d.mts +98 -0
- package/dist/Mapping-BgG74x3U.d.mts +63 -0
- package/dist/Mapping-Dc1ZGirk.mjs +259 -0
- package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
- package/dist/Mcp-1DwTTKOK.mjs +48 -0
- package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
- package/dist/Mcp-d-pX9erx.d.mts +25 -0
- package/dist/Message-CK_DGQuu.mjs +95 -0
- package/dist/Message-CK_DGQuu.mjs.map +1 -0
- package/dist/Message-fIvTJSXM.d.mts +49 -0
- package/dist/Metadata-BbffwGDZ.mjs +445 -0
- package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
- package/dist/Metadata-CEt3yc1-.d.mts +901 -0
- package/dist/Metadata-D4HsQNXr.mjs +1273 -0
- package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
- package/dist/Metadata-nzS7QKRj.d.mts +350 -0
- package/dist/Model-DaMmxurZ.d.mts +293 -0
- package/dist/Model-DlPzRYhF.mjs +528 -0
- package/dist/Model-DlPzRYhF.mjs.map +1 -0
- package/dist/N3-BzyV-KIH.mjs +974 -0
- package/dist/N3-BzyV-KIH.mjs.map +1 -0
- package/dist/N3-DSLnonDn.d.mts +100 -0
- package/dist/NQuads-C1VBOJ3-.mjs +117 -0
- package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
- package/dist/NQuads-FjFZikFg.d.mts +76 -0
- package/dist/NTriples-D-kLSEAf.mjs +120 -0
- package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
- package/dist/NTriples-D34OspfW.d.mts +76 -0
- package/dist/Namespace-ClTUO_ya.d.mts +42 -0
- package/dist/Namespace-DHFIsORd.mjs +75 -0
- package/dist/Namespace-DHFIsORd.mjs.map +1 -0
- package/dist/Namespace.d.mts +2 -0
- package/dist/Namespace.mjs +1 -0
- package/dist/Namespaces-Bz85vpjW.mjs +235 -0
- package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
- package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
- package/dist/Optimizer-BWWQRQPY.mjs +168 -0
- package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
- package/dist/Optimizer-DUpUow6k.d.mts +26 -0
- package/dist/Options-BLBGL4HE.mjs +72 -0
- package/dist/Options-BLBGL4HE.mjs.map +1 -0
- package/dist/Options-BommQwP9.d.mts +127 -0
- package/dist/Packet-CA76wVX3.mjs +197 -0
- package/dist/Packet-CA76wVX3.mjs.map +1 -0
- package/dist/Packet-Cy5g6XuW.d.mts +130 -0
- package/dist/Parser-p1Gyr0QN.d.mts +85 -0
- package/dist/Parser-xARsOWXk.mjs +1317 -0
- package/dist/Parser-xARsOWXk.mjs.map +1 -0
- package/dist/Path-B20Yp8KE.mjs +284 -0
- package/dist/Path-B20Yp8KE.mjs.map +1 -0
- package/dist/Path-DRB8e-Zn.d.mts +181 -0
- package/dist/Pdf-B9RZn--8.d.mts +77 -0
- package/dist/Pdf-CKK6dkZn.mjs +89 -0
- package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
- package/dist/PdfA-CUjSuntT.d.mts +109 -0
- package/dist/PdfA-CleOhuL6.mjs +124 -0
- package/dist/PdfA-CleOhuL6.mjs.map +1 -0
- package/dist/Photoshop-CiHo80qV.mjs +233 -0
- package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
- package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
- package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
- package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
- package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
- package/dist/PrefixMap.d.mts +2 -0
- package/dist/PrefixMap.mjs +1 -0
- package/dist/Processor-CMmecFsb.mjs +198 -0
- package/dist/Processor-CMmecFsb.mjs.map +1 -0
- package/dist/Processor-FJPvO0CB.d.mts +435 -0
- package/dist/Protocol-BA7OkNgp.mjs +202 -0
- package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
- package/dist/Protocol-DlSoiIKB.d.mts +108 -0
- package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
- package/dist/Query-D9A6LOpP.mjs +364 -0
- package/dist/Query-D9A6LOpP.mjs.map +1 -0
- package/dist/Query-KqSkTYyG.d.mts +96 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
- package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
- package/dist/RdfJs-D6-49XB5.mjs +86 -0
- package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
- package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
- package/dist/RdfJs.d.mts +2 -0
- package/dist/RdfJs.mjs +1 -0
- package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
- package/dist/RdfJson-BNocgW4f.mjs +548 -0
- package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
- package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
- package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
- package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
- package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
- package/dist/Rdfs-CyY2wVHI.mjs +167 -0
- package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
- package/dist/Rdfs.d.mts +2 -0
- package/dist/Rdfs.mjs +1 -0
- package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
- package/dist/Reasoner-Cw90zrjv.mjs +798 -0
- package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
- package/dist/Reification-BmN4EfnM.d.mts +40 -0
- package/dist/Reification-dpqQvjDE.mjs +82 -0
- package/dist/Reification-dpqQvjDE.mjs.map +1 -0
- package/dist/Reification.d.mts +2 -0
- package/dist/Reification.mjs +1 -0
- package/dist/Report-XHs8htzK.mjs +121 -0
- package/dist/Report-XHs8htzK.mjs.map +1 -0
- package/dist/Report-hcXsc_19.d.mts +115 -0
- package/dist/Resource-B1cI8FyJ.d.mts +218 -0
- package/dist/Resource-sIEeNh15.mjs +374 -0
- package/dist/Resource-sIEeNh15.mjs.map +1 -0
- package/dist/Resource.d.mts +2 -0
- package/dist/Resource.mjs +1 -0
- package/dist/Results-BVNEC-Wt.d.mts +277 -0
- package/dist/Results-peJjGA2V.mjs +621 -0
- package/dist/Results-peJjGA2V.mjs.map +1 -0
- package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
- package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
- package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
- package/dist/SemAct-CDchtk49.d.mts +96 -0
- package/dist/SemAct-CmyT4yI8.mjs +118 -0
- package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
- package/dist/Serialization-DP9H5bYQ.mjs +514 -0
- package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
- package/dist/Serialization-Df8iVauT.d.mts +392 -0
- package/dist/Serialization.d.mts +2 -0
- package/dist/Serialization.mjs +1 -0
- package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
- package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
- package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
- package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
- package/dist/ShExC-Ctf-06CL.d.mts +67 -0
- package/dist/ShExC-DJbB19i3.mjs +1181 -0
- package/dist/ShExC-DJbB19i3.mjs.map +1 -0
- package/dist/ShExError-BeYFD9rv.d.mts +61 -0
- package/dist/ShExError-CVtq2NnM.mjs +64 -0
- package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
- package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
- package/dist/ShExJ-COiPd9Xw.mjs +532 -0
- package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
- package/dist/ShExR-ByR4mCh-.mjs +480 -0
- package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
- package/dist/ShExR-CqONNNBz.d.mts +40 -0
- package/dist/ShapeMap-C422pxKl.d.mts +140 -0
- package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
- package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
- package/dist/Shapes-18GjfyBV.mjs +597 -0
- package/dist/Shapes-18GjfyBV.mjs.map +1 -0
- package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
- package/dist/Sparql-BiYFMSpl.mjs +29 -0
- package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
- package/dist/Sparql-DecpWTPh.d.mts +97 -0
- package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
- package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
- package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
- package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
- package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
- package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
- package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
- package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
- package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
- package/dist/Store-D0jmVfb3.d.mts +166 -0
- package/dist/Store-DH3Ow1GO.mjs +162 -0
- package/dist/Store-DH3Ow1GO.mjs.map +1 -0
- package/dist/Structure-BjMo4Bkc.mjs +334 -0
- package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
- package/dist/Structure-n4CmDiab.d.mts +63 -0
- package/dist/Table-BGgm9nbM.mjs +538 -0
- package/dist/Table-BGgm9nbM.mjs.map +1 -0
- package/dist/Table-C3reiVrb.d.mts +261 -0
- package/dist/Term-B_4ezyXq.d.mts +619 -0
- package/dist/Term-CFLG1qu4.mjs +991 -0
- package/dist/Term-CFLG1qu4.mjs.map +1 -0
- package/dist/Term.d.mts +2 -0
- package/dist/Term.mjs +1 -0
- package/dist/TermCodec-CDZiEztW.mjs +397 -0
- package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
- package/dist/TermCodec-_03bDXr0.d.mts +209 -0
- package/dist/TermCodec.d.mts +2 -0
- package/dist/TermCodec.mjs +1 -0
- package/dist/TermJson-BOPe0yve.d.mts +232 -0
- package/dist/TermJson-FAg3lvjl.mjs +142 -0
- package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
- package/dist/TermJson.d.mts +2 -0
- package/dist/TermJson.mjs +1 -0
- package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
- package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
- package/dist/TermSchema-DBO6MroX.d.mts +6 -0
- package/dist/Testing-B-aPCpmu.mjs +63 -0
- package/dist/Testing-B-aPCpmu.mjs.map +1 -0
- package/dist/Testing-CF6s8P3O.d.mts +53 -0
- package/dist/Tiff-CR-2QeSI.d.mts +148 -0
- package/dist/Tiff-DlsOlZPM.mjs +169 -0
- package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
- package/dist/Tools-7MdRKccr.d.mts +583 -0
- package/dist/Tools-ryxphZbI.mjs +329 -0
- package/dist/Tools-ryxphZbI.mjs.map +1 -0
- package/dist/Translate-B0YKKANS.d.mts +37 -0
- package/dist/Translate-gzWPq0Ia.mjs +308 -0
- package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
- package/dist/Translation-DC9rLm2y.mjs +1535 -0
- package/dist/Translation-DC9rLm2y.mjs.map +1 -0
- package/dist/Translation-K4L9XBqX.d.mts +103 -0
- package/dist/TriG-BkqtqZ6Y.mjs +125 -0
- package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
- package/dist/TriG-xDjdDatp.d.mts +86 -0
- package/dist/Turtle-Bv1_bisW.d.mts +85 -0
- package/dist/Turtle-CZVUOtwl.mjs +133 -0
- package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
- package/dist/ValidationReport-DBdJshW5.mjs +285 -0
- package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
- package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
- package/dist/Validator-227ff9Rn.d.mts +179 -0
- package/dist/Validator-BzXMKDeJ.mjs +1162 -0
- package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
- package/dist/Validator-Dl8cih5V.d.mts +207 -0
- package/dist/Validator-DmUfMbpL.mjs +568 -0
- package/dist/Validator-DmUfMbpL.mjs.map +1 -0
- package/dist/Vocab-DceKywpq.mjs +168 -0
- package/dist/Vocab-DceKywpq.mjs.map +1 -0
- package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
- package/dist/Vocab-Do56UgBX.d.mts +81 -0
- package/dist/Vocab-TfpWG1Ne.mjs +118 -0
- package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
- package/dist/Vocab.d.mts +2 -0
- package/dist/Vocab.mjs +1 -0
- package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
- package/dist/Xml-B7iihYCS.mjs +976 -0
- package/dist/Xml-B7iihYCS.mjs.map +1 -0
- package/dist/Xml-CmfHS7SW.d.mts +267 -0
- package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
- package/dist/Xmp-DCGN9pOD.mjs +307 -0
- package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
- package/dist/XmpBasic-CP38jpR_.mjs +73 -0
- package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
- package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
- package/dist/XmpMM-BfL_TgJF.mjs +73 -0
- package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
- package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
- package/dist/XmpRights-BKPtoI5L.mjs +73 -0
- package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
- package/dist/XmpRights-CaALZQz2.d.mts +63 -0
- package/dist/Xsd-Cdgx5zRB.mjs +405 -0
- package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
- package/dist/Xsd-D2elNhSm.d.mts +187 -0
- package/dist/Xsd.d.mts +2 -0
- package/dist/Xsd.mjs +1 -0
- package/dist/accessors-CEjaojuQ.mjs +28 -0
- package/dist/accessors-CEjaojuQ.mjs.map +1 -0
- package/dist/codec-Lb2T96rv.d.mts +20 -0
- package/dist/codec-QNo7IdJF.mjs +389 -0
- package/dist/codec-QNo7IdJF.mjs.map +1 -0
- package/dist/csvw/Csv2Json.d.mts +2 -0
- package/dist/csvw/Csv2Json.mjs +1 -0
- package/dist/csvw/Csv2Rdf.d.mts +2 -0
- package/dist/csvw/Csv2Rdf.mjs +1 -0
- package/dist/csvw/Datatype.d.mts +2 -0
- package/dist/csvw/Datatype.mjs +1 -0
- package/dist/csvw/Metadata.d.mts +2 -0
- package/dist/csvw/Metadata.mjs +1 -0
- package/dist/csvw/Processor.d.mts +2 -0
- package/dist/csvw/Processor.mjs +1 -0
- package/dist/csvw/Report.d.mts +2 -0
- package/dist/csvw/Report.mjs +1 -0
- package/dist/csvw/Table.d.mts +2 -0
- package/dist/csvw/Table.mjs +1 -0
- package/dist/csvw/index.d.mts +8 -0
- package/dist/csvw/index.mjs +8 -0
- package/dist/index-Cms2TYfC.d.mts +16 -0
- package/dist/index-Ct8xFmRs.d.mts +7 -0
- package/dist/index-D4QFwOjm.d.mts +28 -0
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +17 -0
- package/dist/jsonld/DocumentLoader.d.mts +2 -0
- package/dist/jsonld/DocumentLoader.mjs +1 -0
- package/dist/jsonld/JsonLd.d.mts +2 -0
- package/dist/jsonld/JsonLd.mjs +1 -0
- package/dist/jsonld/JsonLdError.d.mts +2 -0
- package/dist/jsonld/JsonLdError.mjs +1 -0
- package/dist/jsonld/index.d.mts +4 -0
- package/dist/jsonld/index.mjs +4 -0
- package/dist/lists-D-OpQ0Ir.mjs +77 -0
- package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
- package/dist/loop-D5-gNx9K.mjs +21 -0
- package/dist/loop-D5-gNx9K.mjs.map +1 -0
- package/dist/loop-DZ2hXlr_.mjs +21 -0
- package/dist/loop-DZ2hXlr_.mjs.map +1 -0
- package/dist/n3/Isomorphism.d.mts +2 -0
- package/dist/n3/Isomorphism.mjs +1 -0
- package/dist/n3/Mapping.d.mts +2 -0
- package/dist/n3/Mapping.mjs +1 -0
- package/dist/n3/Model.d.mts +2 -0
- package/dist/n3/Model.mjs +1 -0
- package/dist/n3/N3.d.mts +2 -0
- package/dist/n3/N3.mjs +1 -0
- package/dist/n3/Reasoner.d.mts +2 -0
- package/dist/n3/Reasoner.mjs +2 -0
- package/dist/n3/Vocab.d.mts +2 -0
- package/dist/n3/Vocab.mjs +1 -0
- package/dist/n3/index.d.mts +7 -0
- package/dist/n3/index.mjs +7 -0
- package/dist/ntriples/Grammar.d.mts +2 -0
- package/dist/ntriples/Grammar.mjs +1 -0
- package/dist/ntriples/Lexical.d.mts +2 -0
- package/dist/ntriples/Lexical.mjs +1 -0
- package/dist/ntriples/NQuads.d.mts +2 -0
- package/dist/ntriples/NQuads.mjs +1 -0
- package/dist/ntriples/NTriples.d.mts +2 -0
- package/dist/ntriples/NTriples.mjs +1 -0
- package/dist/ntriples/index.d.mts +5 -0
- package/dist/ntriples/index.mjs +5 -0
- package/dist/rdfjson/RdfJson.d.mts +2 -0
- package/dist/rdfjson/RdfJson.mjs +1 -0
- package/dist/rdfjson/index.d.mts +2 -0
- package/dist/rdfjson/index.mjs +1 -0
- package/dist/rdfxml/RdfXml.d.mts +2 -0
- package/dist/rdfxml/RdfXml.mjs +1 -0
- package/dist/rdfxml/Xml.d.mts +2 -0
- package/dist/rdfxml/Xml.mjs +1 -0
- package/dist/rdfxml/index.d.mts +3 -0
- package/dist/rdfxml/index.mjs +3 -0
- package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
- package/dist/serialize-96KBvKaf.mjs +1463 -0
- package/dist/serialize-96KBvKaf.mjs.map +1 -0
- package/dist/serialize-DsoXdM6n.d.mts +37 -0
- package/dist/shacl/Message.d.mts +2 -0
- package/dist/shacl/Message.mjs +1 -0
- package/dist/shacl/Path.d.mts +2 -0
- package/dist/shacl/Path.mjs +1 -0
- package/dist/shacl/Shapes.d.mts +2 -0
- package/dist/shacl/Shapes.mjs +1 -0
- package/dist/shacl/Sparql.d.mts +2 -0
- package/dist/shacl/Sparql.mjs +1 -0
- package/dist/shacl/ValidationReport.d.mts +2 -0
- package/dist/shacl/ValidationReport.mjs +1 -0
- package/dist/shacl/Validator.d.mts +2 -0
- package/dist/shacl/Validator.mjs +1 -0
- package/dist/shacl/Vocabulary.d.mts +2 -0
- package/dist/shacl/Vocabulary.mjs +1 -0
- package/dist/shacl/index.d.mts +9 -0
- package/dist/shacl/index.mjs +8 -0
- package/dist/shex/SemAct.d.mts +2 -0
- package/dist/shex/SemAct.mjs +1 -0
- package/dist/shex/ShExC.d.mts +2 -0
- package/dist/shex/ShExC.mjs +1 -0
- package/dist/shex/ShExError.d.mts +2 -0
- package/dist/shex/ShExError.mjs +1 -0
- package/dist/shex/ShExJ.d.mts +2 -0
- package/dist/shex/ShExJ.mjs +2 -0
- package/dist/shex/ShExR.d.mts +2 -0
- package/dist/shex/ShExR.mjs +1 -0
- package/dist/shex/ShapeMap.d.mts +2 -0
- package/dist/shex/ShapeMap.mjs +1 -0
- package/dist/shex/Structure.d.mts +2 -0
- package/dist/shex/Structure.mjs +2 -0
- package/dist/shex/Validator.d.mts +2 -0
- package/dist/shex/Validator.mjs +4 -0
- package/dist/shex/index.d.mts +9 -0
- package/dist/shex/index.mjs +9 -0
- package/dist/sparql/Algebra.d.mts +2 -0
- package/dist/sparql/Algebra.mjs +1 -0
- package/dist/sparql/Ast.d.mts +2 -0
- package/dist/sparql/Ast.mjs +1 -0
- package/dist/sparql/Bindings.d.mts +2 -0
- package/dist/sparql/Bindings.mjs +1 -0
- package/dist/sparql/ClientErrors.d.mts +2 -0
- package/dist/sparql/ClientErrors.mjs +1 -0
- package/dist/sparql/ClientFormats.d.mts +2 -0
- package/dist/sparql/ClientFormats.mjs +1 -0
- package/dist/sparql/Engine.d.mts +2 -0
- package/dist/sparql/Engine.mjs +1 -0
- package/dist/sparql/Errors.d.mts +2 -0
- package/dist/sparql/Errors.mjs +1 -0
- package/dist/sparql/Expression.d.mts +2 -0
- package/dist/sparql/Expression.mjs +1 -0
- package/dist/sparql/Federation.d.mts +2 -0
- package/dist/sparql/Federation.mjs +1 -0
- package/dist/sparql/Functions.d.mts +2 -0
- package/dist/sparql/Functions.mjs +1 -0
- package/dist/sparql/Generator.d.mts +2 -0
- package/dist/sparql/Generator.mjs +1 -0
- package/dist/sparql/GraphStore.d.mts +2 -0
- package/dist/sparql/GraphStore.mjs +1 -0
- package/dist/sparql/Optimizer.d.mts +2 -0
- package/dist/sparql/Optimizer.mjs +1 -0
- package/dist/sparql/Options.d.mts +2 -0
- package/dist/sparql/Options.mjs +1 -0
- package/dist/sparql/Parser.d.mts +2 -0
- package/dist/sparql/Parser.mjs +1 -0
- package/dist/sparql/Protocol.d.mts +2 -0
- package/dist/sparql/Protocol.mjs +1 -0
- package/dist/sparql/ProtocolErrors.d.mts +2 -0
- package/dist/sparql/ProtocolErrors.mjs +1 -0
- package/dist/sparql/QueryBuilder.d.mts +2 -0
- package/dist/sparql/QueryBuilder.mjs +1 -0
- package/dist/sparql/Results.d.mts +2 -0
- package/dist/sparql/Results.mjs +1 -0
- package/dist/sparql/ResultsStream.d.mts +2 -0
- package/dist/sparql/ResultsStream.mjs +1 -0
- package/dist/sparql/ServerFormats.d.mts +2 -0
- package/dist/sparql/ServerFormats.mjs +1 -0
- package/dist/sparql/ServiceDescription.d.mts +2 -0
- package/dist/sparql/ServiceDescription.mjs +1 -0
- package/dist/sparql/SparqlClient.d.mts +2 -0
- package/dist/sparql/SparqlClient.mjs +1 -0
- package/dist/sparql/SparqlServer.d.mts +2 -0
- package/dist/sparql/SparqlServer.mjs +1 -0
- package/dist/sparql/Store.d.mts +2 -0
- package/dist/sparql/Store.mjs +1 -0
- package/dist/sparql/TermSchema.d.mts +3 -0
- package/dist/sparql/TermSchema.mjs +2 -0
- package/dist/sparql/Testing.d.mts +2 -0
- package/dist/sparql/Testing.mjs +1 -0
- package/dist/sparql/Translate.d.mts +2 -0
- package/dist/sparql/Translate.mjs +1 -0
- package/dist/sparql/ai/Mcp.d.mts +2 -0
- package/dist/sparql/ai/Mcp.mjs +1 -0
- package/dist/sparql/ai/Tools.d.mts +2 -0
- package/dist/sparql/ai/Tools.mjs +1 -0
- package/dist/sparql/ai/index.d.mts +3 -0
- package/dist/sparql/ai/index.mjs +3 -0
- package/dist/sparql/index.d.mts +30 -0
- package/dist/sparql/index.mjs +29 -0
- package/dist/sparql/shacl/Evaluator.d.mts +2 -0
- package/dist/sparql/shacl/Evaluator.mjs +1 -0
- package/dist/sparql/shacl/Query.d.mts +2 -0
- package/dist/sparql/shacl/Query.mjs +1 -0
- package/dist/sparql/shacl/index.d.mts +3 -0
- package/dist/sparql/shacl/index.mjs +3 -0
- package/dist/sparql/sql/Dialect.d.mts +2 -0
- package/dist/sparql/sql/Dialect.mjs +1 -0
- package/dist/sparql/sql/SqlStore.d.mts +2 -0
- package/dist/sparql/sql/SqlStore.mjs +1 -0
- package/dist/sparql/sql/Translation.d.mts +2 -0
- package/dist/sparql/sql/Translation.mjs +1 -0
- package/dist/sparql/sql/index.d.mts +4 -0
- package/dist/sparql/sql/index.mjs +4 -0
- package/dist/stringMap-D5YIpYtR.mjs +38 -0
- package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
- package/dist/tokens-C6BzeodQ.mjs +24 -0
- package/dist/tokens-C6BzeodQ.mjs.map +1 -0
- package/dist/turtle/Grammar.d.mts +3 -0
- package/dist/turtle/Grammar.mjs +3 -0
- package/dist/turtle/Manifest.d.mts +2 -0
- package/dist/turtle/Manifest.mjs +1 -0
- package/dist/turtle/TriG.d.mts +2 -0
- package/dist/turtle/TriG.mjs +1 -0
- package/dist/turtle/Turtle.d.mts +2 -0
- package/dist/turtle/Turtle.mjs +1 -0
- package/dist/turtle/index.d.mts +5 -0
- package/dist/turtle/index.mjs +5 -0
- package/dist/xmp/DublinCore.d.mts +2 -0
- package/dist/xmp/DublinCore.mjs +1 -0
- package/dist/xmp/Exif.d.mts +2 -0
- package/dist/xmp/Exif.mjs +1 -0
- package/dist/xmp/Extract.d.mts +2 -0
- package/dist/xmp/Extract.mjs +1 -0
- package/dist/xmp/Metadata.d.mts +2 -0
- package/dist/xmp/Metadata.mjs +1 -0
- package/dist/xmp/Namespaces.d.mts +2 -0
- package/dist/xmp/Namespaces.mjs +1 -0
- package/dist/xmp/Packet.d.mts +2 -0
- package/dist/xmp/Packet.mjs +1 -0
- package/dist/xmp/Pdf.d.mts +2 -0
- package/dist/xmp/Pdf.mjs +1 -0
- package/dist/xmp/PdfA.d.mts +2 -0
- package/dist/xmp/PdfA.mjs +1 -0
- package/dist/xmp/Photoshop.d.mts +2 -0
- package/dist/xmp/Photoshop.mjs +1 -0
- package/dist/xmp/Tiff.d.mts +2 -0
- package/dist/xmp/Tiff.mjs +1 -0
- package/dist/xmp/Xmp.d.mts +2 -0
- package/dist/xmp/Xmp.mjs +3 -0
- package/dist/xmp/XmpBasic.d.mts +2 -0
- package/dist/xmp/XmpBasic.mjs +1 -0
- package/dist/xmp/XmpMM.d.mts +2 -0
- package/dist/xmp/XmpMM.mjs +1 -0
- package/dist/xmp/XmpRights.d.mts +2 -0
- package/dist/xmp/XmpRights.mjs +1 -0
- package/dist/xmp/index.d.mts +15 -0
- package/dist/xmp/index.mjs +15 -0
- package/package.json +187 -3
- package/src/Dataset.ts +1085 -0
- package/src/Iri.ts +322 -0
- package/src/Isomorphism.ts +319 -0
- package/src/LanguageTag.ts +98 -0
- package/src/Namespace.ts +100 -0
- package/src/PrefixMap.ts +117 -0
- package/src/RdfJs.ts +146 -0
- package/src/Rdfs.ts +241 -0
- package/src/Reification.ts +103 -0
- package/src/Resource.ts +873 -0
- package/src/Serialization.ts +775 -0
- package/src/Term.ts +1300 -0
- package/src/TermCodec.ts +505 -0
- package/src/TermJson.ts +313 -0
- package/src/Vocab.ts +161 -0
- package/src/Xsd.ts +573 -0
- package/src/csvw/Csv2Json.ts +265 -0
- package/src/csvw/Csv2Rdf.ts +268 -0
- package/src/csvw/Datatype.ts +589 -0
- package/src/csvw/Metadata.ts +1523 -0
- package/src/csvw/Processor.ts +276 -0
- package/src/csvw/Report.ts +135 -0
- package/src/csvw/Table.ts +759 -0
- package/src/csvw/index.ts +22 -0
- package/src/csvw/internal/dateFormat.ts +202 -0
- package/src/csvw/internal/json.ts +104 -0
- package/src/csvw/internal/numberFormat.ts +369 -0
- package/src/csvw/internal/object.ts +23 -0
- package/src/csvw/internal/uriTemplate.ts +130 -0
- package/src/csvw/internal/url.ts +93 -0
- package/src/csvw/internal/vocab.ts +282 -0
- package/src/index.ts +40 -0
- package/src/internal/arbitrary.ts +148 -0
- package/src/internal/loop.ts +24 -0
- package/src/internal/pending.ts +20 -0
- package/src/internal/textDecoder.ts +183 -0
- package/src/jsonld/DocumentLoader.ts +512 -0
- package/src/jsonld/JsonLd.ts +847 -0
- package/src/jsonld/JsonLdError.ts +105 -0
- package/src/jsonld/index.ts +13 -0
- package/src/jsonld/internal/compact.ts +852 -0
- package/src/jsonld/internal/context.ts +781 -0
- package/src/jsonld/internal/expand.ts +614 -0
- package/src/jsonld/internal/flatten.ts +243 -0
- package/src/jsonld/internal/frame.ts +559 -0
- package/src/jsonld/internal/iri.ts +52 -0
- package/src/jsonld/internal/json.ts +19 -0
- package/src/jsonld/internal/linkHeader.ts +60 -0
- package/src/jsonld/internal/rdf.ts +481 -0
- package/src/jsonld/internal/util.ts +367 -0
- package/src/n3/Isomorphism.ts +476 -0
- package/src/n3/Mapping.ts +332 -0
- package/src/n3/Model.ts +696 -0
- package/src/n3/N3.ts +237 -0
- package/src/n3/Reasoner.ts +568 -0
- package/src/n3/Vocab.ts +111 -0
- package/src/n3/index.ts +21 -0
- package/src/n3/internal/builtins.ts +668 -0
- package/src/n3/internal/guards.ts +23 -0
- package/src/n3/internal/lists.ts +106 -0
- package/src/n3/internal/loop.ts +28 -0
- package/src/n3/internal/parser.ts +1032 -0
- package/src/n3/internal/writer.ts +344 -0
- package/src/ntriples/Grammar.ts +317 -0
- package/src/ntriples/Lexical.ts +321 -0
- package/src/ntriples/NQuads.ts +140 -0
- package/src/ntriples/NTriples.ts +143 -0
- package/src/ntriples/index.ts +14 -0
- package/src/ntriples/internal/codec.ts +229 -0
- package/src/ntriples/internal/lineParser.ts +326 -0
- package/src/ntriples/internal/loop.ts +14 -0
- package/src/rdfjson/RdfJson.ts +806 -0
- package/src/rdfjson/index.ts +9 -0
- package/src/rdfjson/internal/json.ts +19 -0
- package/src/rdfxml/RdfXml.ts +1408 -0
- package/src/rdfxml/Xml.ts +419 -0
- package/src/rdfxml/index.ts +11 -0
- package/src/rdfxml/internal/chars.ts +73 -0
- package/src/rdfxml/internal/loop.ts +24 -0
- package/src/rdfxml/internal/parser.ts +1265 -0
- package/src/shacl/Message.ts +102 -0
- package/src/shacl/Path.ts +483 -0
- package/src/shacl/Shapes.ts +913 -0
- package/src/shacl/Sparql.ts +128 -0
- package/src/shacl/ValidationReport.ts +438 -0
- package/src/shacl/Validator.ts +1156 -0
- package/src/shacl/Vocabulary.ts +180 -0
- package/src/shacl/index.ts +22 -0
- package/src/shacl/internal/compare.ts +128 -0
- package/src/shacl/internal/regex.ts +56 -0
- package/src/shex/SemAct.ts +197 -0
- package/src/shex/ShExC.ts +415 -0
- package/src/shex/ShExError.ts +71 -0
- package/src/shex/ShExJ.ts +893 -0
- package/src/shex/ShExR.ts +640 -0
- package/src/shex/ShapeMap.ts +385 -0
- package/src/shex/Structure.ts +467 -0
- package/src/shex/Validator.ts +395 -0
- package/src/shex/index.ts +24 -0
- package/src/shex/internal/engine.ts +682 -0
- package/src/shex/internal/iterate.ts +14 -0
- package/src/shex/internal/json.ts +12 -0
- package/src/shex/internal/lexer.ts +56 -0
- package/src/shex/internal/nodeConstraint.ts +368 -0
- package/src/shex/internal/shexcLexer.ts +387 -0
- package/src/shex/internal/shexcParser.ts +1312 -0
- package/src/shex/internal/tokens.ts +41 -0
- package/src/shex/internal/xpathRegex.ts +290 -0
- package/src/sparql/Algebra.ts +914 -0
- package/src/sparql/Ast.ts +1344 -0
- package/src/sparql/Bindings.ts +272 -0
- package/src/sparql/ClientErrors.ts +156 -0
- package/src/sparql/ClientFormats.ts +70 -0
- package/src/sparql/Engine.ts +699 -0
- package/src/sparql/Errors.ts +30 -0
- package/src/sparql/Expression.ts +360 -0
- package/src/sparql/Federation.ts +187 -0
- package/src/sparql/Functions.ts +689 -0
- package/src/sparql/Generator.ts +426 -0
- package/src/sparql/GraphStore.ts +341 -0
- package/src/sparql/Optimizer.ts +230 -0
- package/src/sparql/Options.ts +191 -0
- package/src/sparql/Parser.ts +173 -0
- package/src/sparql/Protocol.ts +342 -0
- package/src/sparql/ProtocolErrors.ts +113 -0
- package/src/sparql/QueryBuilder.ts +953 -0
- package/src/sparql/Results.ts +844 -0
- package/src/sparql/ResultsStream.ts +771 -0
- package/src/sparql/ServerFormats.ts +75 -0
- package/src/sparql/ServiceDescription.ts +130 -0
- package/src/sparql/SparqlClient.ts +947 -0
- package/src/sparql/SparqlServer.ts +528 -0
- package/src/sparql/Store.ts +311 -0
- package/src/sparql/TermSchema.ts +20 -0
- package/src/sparql/Testing.ts +114 -0
- package/src/sparql/Translate.ts +407 -0
- package/src/sparql/ai/Mcp.ts +43 -0
- package/src/sparql/ai/Tools.ts +481 -0
- package/src/sparql/ai/index.ts +11 -0
- package/src/sparql/index.ts +64 -0
- package/src/sparql/internal/evaluator.ts +947 -0
- package/src/sparql/internal/hash.ts +418 -0
- package/src/sparql/internal/json.ts +12 -0
- package/src/sparql/internal/lexer.ts +488 -0
- package/src/sparql/internal/loop.ts +24 -0
- package/src/sparql/internal/parser.ts +2215 -0
- package/src/sparql/internal/prefetch.ts +46 -0
- package/src/sparql/internal/stringMap.ts +39 -0
- package/src/sparql/internal/textResults.ts +226 -0
- package/src/sparql/internal/values.ts +550 -0
- package/src/sparql/shacl/Evaluator.ts +478 -0
- package/src/sparql/shacl/Query.ts +574 -0
- package/src/sparql/shacl/index.ts +12 -0
- package/src/sparql/sql/Dialect.ts +246 -0
- package/src/sparql/sql/SqlStore.ts +1080 -0
- package/src/sparql/sql/Translation.ts +1898 -0
- package/src/sparql/sql/index.ts +17 -0
- package/src/sparql/sql/internal/encoding.ts +313 -0
- package/src/turtle/Grammar.ts +286 -0
- package/src/turtle/Manifest.ts +215 -0
- package/src/turtle/TriG.ts +158 -0
- package/src/turtle/Turtle.ts +166 -0
- package/src/turtle/index.ts +14 -0
- package/src/turtle/internal/loop.ts +23 -0
- package/src/turtle/internal/parse.ts +112 -0
- package/src/turtle/internal/parser.ts +1303 -0
- package/src/turtle/internal/serialize.ts +79 -0
- package/src/turtle/internal/streamWriter.ts +128 -0
- package/src/turtle/internal/writer.ts +898 -0
- package/src/xmp/DublinCore.ts +147 -0
- package/src/xmp/Exif.ts +109 -0
- package/src/xmp/Extract.ts +351 -0
- package/src/xmp/Metadata.ts +703 -0
- package/src/xmp/Namespaces.ts +228 -0
- package/src/xmp/Packet.ts +297 -0
- package/src/xmp/Pdf.ts +99 -0
- package/src/xmp/PdfA.ts +280 -0
- package/src/xmp/Photoshop.ts +275 -0
- package/src/xmp/Tiff.ts +196 -0
- package/src/xmp/Xmp.ts +430 -0
- package/src/xmp/XmpBasic.ts +90 -0
- package/src/xmp/XmpMM.ts +82 -0
- package/src/xmp/XmpRights.ts +83 -0
- package/src/xmp/index.ts +36 -0
- package/src/xmp/internal/accessors.ts +72 -0
- package/src/xmp/internal/xml.ts +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metadata-D4HsQNXr.mjs","names":["get","Iri.resolve","Iri.removeDotSegments","Iri.withoutFragment","Datatype.Datatype","Report.warning","Report.error","Json.describe","Json.get","Json.keys","Url.resolve","Vocab.expand","LanguageTag.isWellFormed","Json.isArray","Json.isObject","Json.entries","Datatype.isBuiltIn","Vocab.terms","Vocab.expandPrefixed","Vocab.isAbsoluteUrl","Json.has","Datatype.boundKey","Datatype.isString","Datatype.isBinary","Datatype.isNumeric","Datatype.isDateTime","Datatype.isDuration","Datatype.fromIri","Datatype.checkFormat","Datatype.string","Json.parseJson","Json.set","Url.normalize"],"sources":["../src/csvw/internal/json.ts","../src/csvw/internal/object.ts","../src/csvw/internal/url.ts","../src/csvw/Metadata.ts"],"sourcesContent":["/**\n * The one `JSON.parse` call of this package. It stays native because the\n * engine's `SyntaxError` text is part of the metadata error messages, and\n * `Schema.fromJsonString` replaces it with a generic issue.\n *\n * @internal\n */\nimport type * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\nimport type * as Schema from 'effect/Schema';\n\n/**\n * Parses JSON text, failing with the engine's `SyntaxError` message.\n *\n * @internal\n */\nexport const parseJson = (text: string): Result.Result<Schema.Json, string> =>\n Result.try({\n try: (): Schema.Json => JSON.parse(text),\n catch: (e) => (e instanceof SyntaxError ? e.message : String(e)),\n });\n\n/**\n * Whether a JSON value is an object (not an array, not `null`).\n *\n * @internal\n */\nexport const isObject = (value: Schema.Json): value is Schema.JsonObject =>\n Predicate.isObject(value) && !Array.isArray(value);\n\n/**\n * Whether a JSON value is an array.\n *\n * @internal\n */\nexport const isArray = (value: Schema.Json): value is Schema.JsonArray => Array.isArray(value);\n\n/**\n * The entries of a JSON object, in insertion order.\n *\n * @internal\n */\nexport const entries = (obj: Schema.JsonObject): Array<[string, Schema.Json]> =>\n Record.toEntries<string, Schema.Json>(obj);\n\n/**\n * The keys of a JSON object, in insertion order.\n *\n * @internal\n */\nexport const keys = (obj: Schema.JsonObject): Array<string> =>\n Record.keys<string, Schema.Json>(obj);\n\n/**\n * Whether a JSON object has a key.\n *\n * @internal\n */\nexport const has = (obj: Schema.JsonObject, key: string): boolean => obj[key] !== undefined;\n\n/**\n * The value of a key of a JSON object.\n *\n * @internal\n */\nexport const get = (obj: Schema.JsonObject, key: string): Option.Option<Schema.Json> =>\n Record.get<string, Schema.Json>(obj, key);\n\n/**\n * Maps the values of a JSON object.\n *\n * @internal\n */\nexport const mapValues = (\n obj: Schema.JsonObject,\n f: (value: Schema.Json, key: string) => Schema.Json,\n): Schema.JsonObject => Record.map<string, Schema.Json, Schema.Json>(obj, f);\n\n/**\n * A JSON object with one key set.\n *\n * @internal\n */\nexport const set = (obj: Schema.JsonObject, key: string, value: Schema.Json): Schema.JsonObject =>\n Record.set(\n Record.map<string, Schema.Json, Schema.Json>(obj, (v) => v),\n key,\n value,\n );\n\n/**\n * A short description of a JSON value for messages: strings quoted, numbers\n * and booleans as written, `null`, and the kind of anything else.\n *\n * @internal\n */\nexport const describe = (value: Schema.Json): string => {\n if (Predicate.isString(value)) return `\"${value}\"`;\n if (Predicate.isNumber(value) || Predicate.isBoolean(value)) return `${value}`;\n if (Predicate.isNull(value)) return 'null';\n return isArray(value) ? 'an array' : 'an object';\n};\n","/**\n * Building objects whose optional properties are set only when present, as\n * `exactOptionalPropertyTypes` requires.\n *\n * @internal\n */\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\n\n/**\n * `{ [key]: value }` when the value is present, `{}` otherwise; spread it\n * into an object literal.\n *\n * @internal\n */\nexport const optional = <K extends string, A>(\n key: K,\n value: Option.Option<A>,\n): { readonly [P in K]?: A } =>\n Option.match(value, {\n onNone: (): { readonly [P in K]?: A } => ({}),\n onSome: (v): { readonly [P in K]?: A } => Record.singleton(key, v),\n });\n","/**\n * URL helpers: resolution, RFC 3986 syntax- and scheme-based normalization\n * (Tabular Data Model §URL Normalization) and the percent-encoding of column\n * names derived from titles.\n *\n * @internal\n */\nimport { Iri } from '../../index.ts';\n\n/**\n * Resolves a reference against a base URL.\n *\n * @internal\n */\nexport const resolve = (reference: string, base: string): string => Iri.resolve(reference, base);\n\nconst URL_RE = /^([A-Za-z][A-Za-z0-9+.-]*):(?:\\/\\/([^/?#]*))?([^?#]*)(\\?[^#]*)?(#.*)?$/;\nconst UNRESERVED = /[A-Za-z0-9\\-._~]/;\n\nconst normalizePercent = (s: string): string =>\n s.replace(/%([0-9A-Fa-f]{2})/g, (_, hex: string) => {\n const c = String.fromCharCode(Number.parseInt(hex, 16));\n return UNRESERVED.test(c) ? c : `%${hex.toUpperCase()}`;\n });\n\nconst isDefaultPort = (scheme: string, port: string): boolean =>\n (scheme === 'http' && port === '80') || (scheme === 'https' && port === '443');\n\nconst normalizeAuthority = (authority: string, scheme: string): string => {\n const at = authority.lastIndexOf('@');\n const userinfo = at === -1 ? '' : authority.slice(0, at + 1);\n const hostPort = (at === -1 ? authority : authority.slice(at + 1)).toLowerCase();\n const m = /^(.*?)(?::(\\d*))?$/.exec(hostPort);\n const host = m?.[1] ?? hostPort;\n const port = m?.[2];\n const keep = port !== undefined && port !== '' && !isDefaultPort(scheme, port);\n return `${userinfo}${host}${keep ? `:${port}` : ''}`;\n};\n\n/**\n * Normalizes a URL for comparison: lower-case scheme and host, upper-case\n * percent-encodings, decoded unreserved characters, no dot segments, no\n * default HTTP(S) port and a `/` path for an HTTP(S) URL with an authority.\n *\n * @internal\n */\nexport const normalize = (url: string): string => {\n const m = URL_RE.exec(url);\n if (m === null) return url;\n const scheme = (m[1] ?? '').toLowerCase();\n const authority = m[2];\n const rawPath = normalizePercent(m[3] ?? '');\n const path = Iri.removeDotSegments(rawPath);\n const query = m[4] === undefined ? '' : normalizePercent(m[4]);\n const fragment = m[5] === undefined ? '' : normalizePercent(m[5]);\n if (authority === undefined) return `${scheme}:${path}${query}${fragment}`;\n const p = path === '' && (scheme === 'http' || scheme === 'https') ? '/' : path;\n return `${scheme}://${normalizeAuthority(authority, scheme)}${p}${query}${fragment}`;\n};\n\n/**\n * Percent-encodes every character of a title that cannot appear in a URI\n * template variable name (anything but `A-Z`, `a-z`, `0-9`, `_` and `.`),\n * for a column name derived from it.\n *\n * @internal\n */\nexport const encodeName = (title: string): string =>\n encodeURIComponent(title).replace(\n /[!'()*~-]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n\n/**\n * Percent-decodes a column name (`_name` and JSON property names).\n *\n * @internal\n */\nexport const decodeName = (name: string): string =>\n name.replace(/(?:%[0-9A-Fa-f]{2})+/g, (run) => {\n const bytes = run.match(/%([0-9A-Fa-f]{2})/g) ?? [];\n const decoded = new TextDecoder('utf-8', { fatal: false }).decode(\n Uint8Array.from(bytes, (b) => Number.parseInt(b.slice(1), 16)),\n );\n return decoded;\n });\n\n/**\n * Removes the fragment from a URL.\n *\n * @internal\n */\nexport const withoutFragment = (url: string): string => Iri.withoutFragment(url);\n","/**\n * CSVW metadata documents (Metadata Vocabulary for Tabular Data): the\n * normalized description model as Effect `Schema`s (table groups, tables,\n * schemas, columns, dialects, foreign keys, transformations), and decoding a\n * JSON-LD metadata document with its fixed `http://www.w3.org/ns/csvw`\n * context into that model — validating every property, warning about and\n * dropping invalid values, failing on errors, and normalizing per §Normalization\n * (absolute URLs, natural-language and common properties, referenced schemas\n * and dialects fetched and inlined).\n *\n * @since 0.1.0\n */\nimport { LanguageTag } from '../index.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\nimport * as Schema from 'effect/Schema';\nimport * as Datatype from './Datatype.ts';\nimport * as Report from './Report.ts';\nimport * as Json from './internal/json.ts';\nimport { optional } from './internal/object.ts';\nimport * as Url from './internal/url.ts';\nimport * as Vocab from './internal/vocab.ts';\n\n// -----------------------------------------------------------------------------\n// Errors\n// -----------------------------------------------------------------------------\n\n/**\n * A metadata document that cannot be used: invalid JSON, an invalid\n * `@context`, a missing required property, or a value the specification\n * says is an error (processing stops).\n *\n * @since 0.1.0\n * @category errors\n */\nexport class MetadataError extends Schema.TaggedError<MetadataError>()('MetadataError', {\n message: Schema.String,\n url: Schema.optional(Schema.String),\n}) {}\n\n// -----------------------------------------------------------------------------\n// Model\n// -----------------------------------------------------------------------------\n\n/**\n * A natural-language property's value: language tags (`und` when unknown)\n * mapped to strings.\n *\n * @since 0.1.0\n * @category models\n */\nexport const LanguageMap = Schema.Record(Schema.String, Schema.Array(Schema.String));\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type LanguageMap = typeof LanguageMap.Type;\n\n/**\n * Common properties and notes in normalized form: prefixed names or absolute\n * URLs mapped to JSON-LD values.\n *\n * @since 0.1.0\n * @category models\n */\nexport const CommonProperties = Schema.Record(Schema.String, Schema.Json);\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type CommonProperties = typeof CommonProperties.Type;\n\n/**\n * The text direction of cells.\n *\n * @since 0.1.0\n * @category models\n */\nexport const TextDirection = Schema.Literals(['ltr', 'rtl', 'auto', 'inherit']);\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type TextDirection = typeof TextDirection.Type;\n\n/**\n * The direction of a table's columns.\n *\n * @since 0.1.0\n * @category models\n */\nexport const TableDirection = Schema.Literals(['ltr', 'rtl', 'auto']);\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type TableDirection = typeof TableDirection.Type;\n\n/**\n * The inherited properties of a description (§Inherited Properties), set\n * where they were specified; a column inherits each unset one from its\n * schema, table and table group.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Inherited = Schema.Struct({\n aboutUrl: Schema.optional(Schema.String),\n datatype: Schema.optional(Datatype.Datatype),\n default: Schema.optional(Schema.String),\n lang: Schema.optional(Schema.String),\n null: Schema.optional(Schema.Array(Schema.String)),\n ordered: Schema.optional(Schema.Boolean),\n propertyUrl: Schema.optional(Schema.String),\n required: Schema.optional(Schema.Boolean),\n separator: Schema.optional(Schema.NullOr(Schema.String)),\n textDirection: Schema.optional(TextDirection),\n valueUrl: Schema.optional(Schema.String),\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Inherited = typeof Inherited.Type;\n\n/**\n * A column description.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Column = Schema.Struct({\n id: Schema.optional(Schema.String),\n name: Schema.optional(Schema.String),\n /** The name derived from the first title in the metadata's default language. */\n titleName: Schema.optional(Schema.String),\n titles: LanguageMap,\n isVirtual: Schema.Boolean,\n isSuppressed: Schema.Boolean,\n inherited: Inherited,\n common: CommonProperties,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Column = typeof Column.Type;\n\n/**\n * The referenced side of a foreign key: a table by `resource` URL or by\n * `schemaReference`, and its columns.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Reference = Schema.Struct({\n resource: Schema.optional(Schema.String),\n schemaReference: Schema.optional(Schema.String),\n columnReference: Schema.Array(Schema.String),\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Reference = typeof Reference.Type;\n\n/**\n * A foreign key definition.\n *\n * @since 0.1.0\n * @category models\n */\nexport const ForeignKey = Schema.Struct({\n columnReference: Schema.Array(Schema.String),\n reference: Reference,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type ForeignKey = typeof ForeignKey.Type;\n\n/**\n * A schema description (`tableSchema`).\n *\n * @since 0.1.0\n * @category models\n */\nexport const TableSchema = Schema.Struct({\n id: Schema.optional(Schema.String),\n columns: Schema.Array(Column),\n primaryKey: Schema.optional(Schema.Array(Schema.String)),\n rowTitles: Schema.optional(Schema.Array(Schema.String)),\n foreignKeys: Schema.Array(ForeignKey),\n inherited: Inherited,\n common: CommonProperties,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type TableSchema = typeof TableSchema.Type;\n\n/**\n * The trim flag of a dialect.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Trim = Schema.Literals(['true', 'false', 'start', 'end']);\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Trim = typeof Trim.Type;\n\n/**\n * A dialect description with every flag resolved (`header` folded into\n * `headerRowCount`, `skipInitialSpace` into `trim`).\n *\n * @since 0.1.0\n * @category models\n */\nexport const Dialect = Schema.Struct({\n id: Schema.optional(Schema.String),\n commentPrefix: Schema.optional(Schema.String),\n delimiter: Schema.String,\n isDoubleQuoted: Schema.Boolean,\n encoding: Schema.String,\n headerRowCount: Schema.Int,\n lineTerminators: Schema.Array(Schema.String),\n quoteChar: Schema.NullOr(Schema.String),\n shouldSkipBlankRows: Schema.Boolean,\n skipColumns: Schema.Int,\n skipRows: Schema.Int,\n trim: Trim,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Dialect = typeof Dialect.Type;\n\n/**\n * The default dialect: UTF-8 CSV with one header row.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const defaultDialect: Dialect = {\n delimiter: ',',\n isDoubleQuoted: true,\n encoding: 'utf-8',\n headerRowCount: 1,\n lineTerminators: ['\\r\\n', '\\n'],\n quoteChar: '\"',\n shouldSkipBlankRows: false,\n skipColumns: 0,\n skipRows: 0,\n trim: 'true',\n};\n\n/**\n * A transformation definition.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Transformation = Schema.Struct({\n id: Schema.optional(Schema.String),\n url: Schema.String,\n scriptFormat: Schema.String,\n targetFormat: Schema.String,\n source: Schema.optional(Schema.String),\n titles: LanguageMap,\n common: CommonProperties,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Transformation = typeof Transformation.Type;\n\n/**\n * A table description.\n *\n * @since 0.1.0\n * @category models\n */\nexport const Table = Schema.Struct({\n id: Schema.optional(Schema.String),\n url: Schema.String,\n dialect: Schema.optional(Dialect),\n notes: Schema.Array(Schema.Json),\n isSuppressed: Schema.Boolean,\n tableDirection: Schema.optional(TableDirection),\n tableSchema: Schema.optional(TableSchema),\n transformations: Schema.Array(Transformation),\n inherited: Inherited,\n common: CommonProperties,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type Table = typeof Table.Type;\n\n/**\n * A table group description: the normalized form of every metadata document\n * (a table description is wrapped in a group of one).\n *\n * @since 0.1.0\n * @category models\n */\nexport const TableGroup = Schema.Struct({\n id: Schema.optional(Schema.String),\n tables: Schema.Array(Table),\n dialect: Schema.optional(Dialect),\n notes: Schema.Array(Schema.Json),\n tableDirection: Schema.optional(TableDirection),\n tableSchema: Schema.optional(TableSchema),\n transformations: Schema.Array(Transformation),\n inherited: Inherited,\n common: CommonProperties,\n});\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport type TableGroup = typeof TableGroup.Type;\n\n/**\n * A decoded metadata document and the warnings raised while decoding it.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Decoded {\n readonly group: TableGroup;\n readonly warnings: ReadonlyArray<Report.Issue>;\n}\n\n/**\n * Fetches the JSON document a `tableSchema` or `dialect` URL references.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Fetch = (url: string) => Effect.Effect<string, MetadataError>;\n\n// -----------------------------------------------------------------------------\n// Decoding context\n// -----------------------------------------------------------------------------\n\ntype Obj = Schema.JsonObject;\n\ninterface Ctx {\n readonly url: string;\n readonly base: string;\n readonly language: Option.Option<string>;\n readonly issues: Array<Report.Issue>;\n}\n\nconst warn = (ctx: Ctx, message: string): void => {\n ctx.issues.push(Report.warning(message, { table: ctx.url }));\n};\n\nconst error = (ctx: Ctx, message: string): void => {\n ctx.issues.push(Report.error(message, { table: ctx.url }));\n};\n\nconst quote = Json.describe;\n\nconst CSVW_CONTEXT = 'http://www.w3.org/ns/csvw';\n\nconst inheritedKeys = [\n 'aboutUrl',\n 'datatype',\n 'default',\n 'lang',\n 'null',\n 'ordered',\n 'propertyUrl',\n 'required',\n 'separator',\n 'textDirection',\n 'valueUrl',\n] as const;\n\ntype Kind =\n | 'TableGroup'\n | 'Table'\n | 'Schema'\n | 'Column'\n | 'Dialect'\n | 'Template'\n | 'Datatype'\n | 'ForeignKey'\n | 'Reference';\n\nconst ownKeys: Readonly<Record<Kind, ReadonlyArray<string>>> = {\n TableGroup: [\n 'tables',\n 'dialect',\n 'notes',\n 'tableDirection',\n 'tableSchema',\n 'transformations',\n ...inheritedKeys,\n ],\n Table: [\n 'url',\n 'dialect',\n 'notes',\n 'suppressOutput',\n 'tableDirection',\n 'tableSchema',\n 'transformations',\n ...inheritedKeys,\n ],\n Schema: ['columns', 'foreignKeys', 'primaryKey', 'rowTitles', ...inheritedKeys],\n Column: ['name', 'suppressOutput', 'titles', 'virtual', ...inheritedKeys],\n Dialect: [\n 'commentPrefix',\n 'delimiter',\n 'doubleQuote',\n 'encoding',\n 'header',\n 'headerRowCount',\n 'lineTerminators',\n 'quoteChar',\n 'skipBlankRows',\n 'skipColumns',\n 'skipInitialSpace',\n 'skipRows',\n 'trim',\n ],\n Template: ['url', 'scriptFormat', 'targetFormat', 'source', 'titles'],\n Datatype: [\n 'base',\n 'format',\n 'length',\n 'minLength',\n 'maxLength',\n 'minimum',\n 'maximum',\n 'minInclusive',\n 'maxInclusive',\n 'minExclusive',\n 'maxExclusive',\n ],\n ForeignKey: ['columnReference', 'reference'],\n Reference: ['resource', 'schemaReference', 'columnReference'],\n};\n\nconst isCommonPropertyName = (key: string): boolean => key.includes(':');\n\nconst get = (obj: Obj, key: string): Option.Option<Schema.Json> => Json.get(obj, key);\n\n/**\n * Checks the keys of a description object: `@id` (a link that must not be a\n * blank node), `@type` (must name the kind), warnings for properties that are\n * not defined for this kind, and errors for unknown keywords.\n */\nconst checkKeys = (obj: Obj, kind: Kind, ctx: Ctx): void => {\n const strict = kind === 'ForeignKey' || kind === 'Reference';\n Arr.forEach(Json.keys(obj), (key) => {\n if (key === '@id') {\n const id = obj[key];\n if (Predicate.isString(id) && id.startsWith('_:'))\n error(ctx, `${kind} @id ${quote(id)} must not be a blank node`);\n else if (!Predicate.isString(id)) warn(ctx, `${kind} @id must be a string`);\n return;\n }\n if (key === '@type') {\n if (obj[key] !== kind) error(ctx, `${kind} @type must be \"${kind}\"`);\n return;\n }\n if (key === '@context') return;\n if (key.startsWith('@')) {\n error(ctx, `${kind} must not use the keyword ${key}`);\n return;\n }\n if (Arr.contains(ownKeys[kind], key)) return;\n if (isCommonPropertyName(key) && !strict) return;\n if (strict) error(ctx, `${kind} must not have the property ${key}`);\n else warn(ctx, `${kind} has an unknown property ${key}`);\n });\n};\n\nconst idOf = (obj: Obj, ctx: Ctx): Option.Option<string> =>\n Option.flatMap(get(obj, '@id'), (id) =>\n Predicate.isString(id)\n ? id.startsWith('_:')\n ? Option.none()\n : Option.some(Url.resolve(Vocab.expand(id), ctx.base))\n : Option.some(Url.resolve('', ctx.base)),\n );\n\n// -----------------------------------------------------------------------------\n// Property value checks\n// -----------------------------------------------------------------------------\n\nconst booleanProperty = (obj: Obj, key: string, ctx: Ctx): Option.Option<boolean> =>\n Option.flatMap(get(obj, key), (v) => {\n if (Predicate.isBoolean(v)) return Option.some(v);\n warn(ctx, `${key} must be a boolean, not ${quote(v)}`);\n return Option.none();\n });\n\nconst stringProperty = (obj: Obj, key: string, ctx: Ctx): Option.Option<string> =>\n Option.flatMap(get(obj, key), (v) => {\n if (Predicate.isString(v)) return Option.some(v);\n warn(ctx, `${key} must be a string, not ${quote(v)}`);\n return Option.none();\n });\n\nconst nonNegativeInteger = (obj: Obj, key: string, ctx: Ctx): Option.Option<number> =>\n Option.flatMap(get(obj, key), (v) => {\n if (Predicate.isNumber(v) && Number.isInteger(v) && v >= 0) return Option.some(v);\n warn(ctx, `${key} must be a non-negative integer, not ${quote(v)}`);\n return Option.none();\n });\n\nconst linkProperty = (obj: Obj, key: string, ctx: Ctx): Option.Option<string> =>\n Option.map(get(obj, key), (v) => {\n if (Predicate.isString(v)) return Url.resolve(v, ctx.base);\n warn(ctx, `${key} must be a string, not ${quote(v)}`);\n return Url.resolve('', ctx.base);\n });\n\nconst templateProperty = (obj: Obj, key: string, ctx: Ctx): Option.Option<string> =>\n Option.map(get(obj, key), (v) => {\n if (Predicate.isString(v)) return v;\n warn(ctx, `${key} must be a URI template string, not ${quote(v)}`);\n return '';\n });\n\nconst isLanguageTag = (tag: string): boolean => LanguageTag.isWellFormed(tag);\n\n/** A natural-language property (§Natural Language Properties). */\nconst naturalLanguage = (value: Schema.Json, key: string, ctx: Ctx): LanguageMap => {\n const lang = Option.getOrElse(ctx.language, () => 'und');\n const strings = (vs: Schema.JsonArray): ReadonlyArray<string> =>\n Arr.filter(vs, (v): v is string => {\n if (Predicate.isString(v)) return true;\n warn(ctx, `${key} values must be strings, not ${quote(v)}`);\n return false;\n });\n if (Predicate.isString(value)) return { [lang]: [value] };\n if (Json.isArray(value))\n return Arr.isReadonlyArrayNonEmpty(value) ? { [lang]: strings(value) } : {};\n if (Json.isObject(value))\n return Record.fromEntries(\n Arr.flatMap(Json.entries(value), ([tag, v]) => {\n if (!isLanguageTag(tag)) {\n warn(ctx, `${key} has an invalid language tag ${quote(tag)}`);\n return [];\n }\n if (Predicate.isString(v)) return [[tag, [v]] as const];\n if (Json.isArray(v)) return [[tag, strings(v)] as const];\n warn(ctx, `${key} values must be strings, not ${quote(v)}`);\n return [];\n }),\n );\n warn(ctx, `${key} must be a string, array or language map, not ${quote(value)}`);\n return {};\n};\n\nconst columnReference = (\n obj: Obj,\n key: string,\n ctx: Ctx,\n required: boolean,\n): Option.Option<ReadonlyArray<string>> =>\n Option.flatMap(get(obj, key), (v) => {\n const refs = Predicate.isString(v)\n ? Option.some([v])\n : Json.isArray(v) && Arr.isReadonlyArrayNonEmpty(v) && Arr.every(v, Predicate.isString)\n ? Option.some(Arr.filter(v, Predicate.isString))\n : Option.none();\n if (Option.isNone(refs)) {\n if (required) error(ctx, `${key} must be a column name or a non-empty array of them`);\n else warn(ctx, `${key} must be a column name or a non-empty array of them`);\n }\n return refs;\n });\n\n// -----------------------------------------------------------------------------\n// Common properties (§Values of Common Properties, §Normalization)\n// -----------------------------------------------------------------------------\n\nconst legitimateTypes = [\n 'TableGroup',\n 'Table',\n 'Schema',\n 'Column',\n 'Dialect',\n 'Template',\n 'Datatype',\n];\n\nconst isValidType = (t: string, valueType: boolean): boolean =>\n !t.startsWith('_:') &&\n ((valueType ? Datatype.isBuiltIn(t) : Arr.contains(legitimateTypes, t)) ||\n Record.has(Vocab.terms, t) ||\n Option.isSome(Vocab.expandPrefixed(t)) ||\n (Vocab.isAbsoluteUrl(t) && !t.includes(' ')));\n\nconst normalizeCommon = (value: Schema.Json, ctx: Ctx): Schema.Json => {\n if (Json.isArray(value)) return Arr.map(value, (v) => normalizeCommon(v, ctx));\n if (Predicate.isString(value))\n return Option.match(ctx.language, {\n onNone: () => ({ '@value': value }),\n onSome: (language) => ({ '@value': value, '@language': language }),\n });\n if (!Json.isObject(value)) return value;\n if (Json.has(value, '@value')) {\n const v = value['@value'];\n const extra = Arr.filter(\n Json.keys(value),\n (k) => !Arr.contains(['@value', '@type', '@language'], k),\n );\n if (Arr.isReadonlyArrayNonEmpty(extra))\n error(ctx, `a value object must not have the properties ${Arr.join(extra, ', ')}`);\n if (Json.has(value, '@type') && Json.has(value, '@language'))\n error(ctx, 'a value object must not have both @type and @language');\n if (!(Predicate.isString(v) || Predicate.isNumber(v) || Predicate.isBoolean(v)))\n error(ctx, '@value must be a string, number or boolean');\n Option.map(get(value, '@type'), (t) => {\n if (!Predicate.isString(t) || !isValidType(t, true))\n error(ctx, `invalid value @type ${quote(t)}`);\n });\n Option.map(get(value, '@language'), (l) => {\n if (!(Predicate.isNull(l) || (Predicate.isString(l) && isLanguageTag(l))))\n error(ctx, `invalid @language ${quote(l)}`);\n });\n return value;\n }\n return Record.fromEntries(\n Arr.map(Json.entries(value), ([key, v]): readonly [string, Schema.Json] => {\n if (key === '@id') {\n if (!Predicate.isString(v)) {\n error(ctx, '@id must be a string');\n return [key, v];\n }\n if (v.startsWith('_:')) error(ctx, `@id ${quote(v)} must not be a blank node`);\n return [key, Url.resolve(Vocab.expand(v), ctx.base)];\n }\n if (key === '@type') {\n const types = Json.isArray(v) ? v : [v];\n Arr.forEach(types, (t) => {\n if (!Predicate.isString(t) || !isValidType(t, false))\n error(ctx, `invalid node @type ${quote(t)}`);\n });\n return [key, v];\n }\n if (key === '@language') error(ctx, '@language must only be used with @value');\n else if (key === '@context') error(ctx, 'a metadata document must not add a new @context');\n else if (key === '@list' || key === '@set') error(ctx, `${key} must not be used`);\n else if (key.startsWith('@')) error(ctx, `unknown keyword ${key}`);\n return [key, normalizeCommon(v, ctx)];\n }),\n );\n};\n\n/** The common properties of a description object. */\nconst commonProperties = (obj: Obj, ctx: Ctx): CommonProperties =>\n Record.fromEntries(\n Arr.map(\n Arr.filter(Json.entries(obj), ([key]) => isCommonPropertyName(key) && !key.startsWith('@')),\n ([key, value]) => [key, normalizeCommon(value, ctx)] as const,\n ),\n );\n\nconst notesOf = (obj: Obj, ctx: Ctx): ReadonlyArray<Schema.Json> =>\n Option.match(get(obj, 'notes'), {\n onNone: () => [],\n onSome: (v) => {\n if (Json.isArray(v)) return Arr.map(v, (n) => normalizeCommon(n, ctx));\n warn(ctx, 'notes must be an array');\n return [];\n },\n });\n\n// -----------------------------------------------------------------------------\n// Datatypes\n// -----------------------------------------------------------------------------\n\nconst bound = (obj: Obj, key: string, base: string, ctx: Ctx): Option.Option<Datatype.Bound> =>\n Option.flatMap(get(obj, key), (v) => {\n if (Predicate.isNumber(v) || Predicate.isString(v)) {\n if (Option.isNone(Datatype.boundKey(v, base)))\n error(ctx, `${key} ${quote(v)} is not a valid ${base}`);\n return Option.some(v);\n }\n warn(ctx, `${key} must be a number or string`);\n return Option.none();\n });\n\nconst sameBound = (a: Datatype.Bound, b: Datatype.Bound, base: string): boolean =>\n Option.makeEquivalence((x: number, y: number) => x === y)(\n Datatype.boundKey(a, base),\n Datatype.boundKey(b, base),\n );\n\n/** Whether both values are present and satisfy `f`. */\nconst both = <A>(a: Option.Option<A>, b: Option.Option<A>, f: (x: A, y: A) => boolean): boolean =>\n Option.exists(Option.all([a, b]), ([x, y]) => f(x, y));\n\nconst of = Option.fromNullishOr;\n\n/** Whether bound `a` is below bound `b` (`strict`) or at most `b`, in `base`'s value space. */\nconst below =\n (base: string, strict: boolean) =>\n (a: Datatype.Bound, b: Datatype.Bound): boolean =>\n Option.exists(Option.all([Datatype.boundKey(a, base), Datatype.boundKey(b, base)]), ([x, y]) =>\n strict ? x < y : x <= y,\n );\n\nconst hasLength = (d: Datatype.Datatype): boolean =>\n d.length !== undefined || d.minLength !== undefined || d.maxLength !== undefined;\n\nconst hasBounds = (d: Datatype.Datatype): boolean =>\n d.minInclusive !== undefined ||\n d.maxInclusive !== undefined ||\n d.minExclusive !== undefined ||\n d.maxExclusive !== undefined;\n\nconst lengthApplies = (base: string): boolean =>\n Datatype.isString(base) || Datatype.isBinary(base) || base === 'anyAtomicType';\n\nconst boundsApply = (base: string): boolean =>\n Datatype.isNumeric(base) || Datatype.isDateTime(base) || Datatype.isDuration(base);\n\n/** The datatype constraint combinations that are errors (§Derived Datatypes). */\nconst datatypeRules: ReadonlyArray<\n readonly [(d: Datatype.Datatype) => boolean, (d: Datatype.Datatype) => string]\n> = [\n [\n (d) => both(of(d.length), of(d.minLength), (l, m) => l < m),\n () => 'length is less than minLength',\n ],\n [\n (d) => both(of(d.length), of(d.maxLength), (l, m) => l > m),\n () => 'length is greater than maxLength',\n ],\n [\n (d) => both(of(d.minLength), of(d.maxLength), (l, m) => l > m),\n () => 'minLength is greater than maxLength',\n ],\n [\n (d) => hasLength(d) && !lengthApplies(d.base),\n (d) => `length constraints do not apply to ${d.base}`,\n ],\n [\n (d) => hasBounds(d) && !boundsApply(d.base),\n (d) => `value constraints do not apply to ${d.base}`,\n ],\n [\n (d) => both(of(d.minInclusive), of(d.minExclusive), () => true),\n () => 'minInclusive and minExclusive must not both be specified',\n ],\n [\n (d) => both(of(d.maxInclusive), of(d.maxExclusive), () => true),\n () => 'maxInclusive and maxExclusive must not both be specified',\n ],\n [\n (d) => both(of(d.maxInclusive), of(d.minInclusive), below(d.base, true)),\n () => 'maxInclusive is less than minInclusive',\n ],\n [\n (d) => both(of(d.maxExclusive), of(d.minInclusive), below(d.base, false)),\n () => 'maxExclusive is not greater than minInclusive',\n ],\n [\n (d) => both(of(d.maxExclusive), of(d.minExclusive), below(d.base, true)),\n () => 'maxExclusive is less than minExclusive',\n ],\n [\n (d) => both(of(d.maxInclusive), of(d.minExclusive), below(d.base, false)),\n () => 'maxInclusive is not greater than minExclusive',\n ],\n];\n\nconst checkDatatype = (d: Datatype.Datatype, ctx: Ctx): void =>\n Arr.forEach(datatypeRules, ([violated, message]) => {\n if (violated(d)) error(ctx, message(d));\n });\n\nconst datatypeObject = (obj: Obj, ctx: Ctx): Datatype.Datatype => {\n checkKeys(obj, 'Datatype', ctx);\n const id = idOf(obj, ctx);\n if (Option.isSome(id) && Option.isSome(Datatype.fromIri(id.value))) {\n if (Arr.some(Json.keys(obj), (k) => k !== '@id' && k !== '@type'))\n error(ctx, `a datatype with the built-in @id ${id.value} must not have other properties`);\n }\n const base = Option.getOrElse(\n Option.flatMap(stringProperty(obj, 'base', ctx), (b) => {\n if (Datatype.isBuiltIn(b)) return Option.some(b);\n warn(ctx, `base ${quote(b)} is not a built-in datatype`);\n return Option.some('string');\n }),\n () => 'string',\n );\n const format = Option.flatMap(\n get(obj, 'format'),\n (f): Option.Option<string | Datatype.NumericFormat> => {\n const candidate = Predicate.isString(f)\n ? Option.some<string | Datatype.NumericFormat>(f)\n : Json.isObject(f) && Datatype.isNumeric(base)\n ? Option.some<string | Datatype.NumericFormat>({\n ...optional('decimalChar', stringProperty(f, 'decimalChar', ctx)),\n ...optional('groupChar', stringProperty(f, 'groupChar', ctx)),\n ...optional('pattern', stringProperty(f, 'pattern', ctx)),\n })\n : Option.none();\n if (Option.isNone(candidate)) {\n warn(ctx, `invalid format for a ${base} datatype`);\n return Option.none();\n }\n return Option.match(Datatype.checkFormat(base, candidate.value), {\n onNone: () => candidate,\n onSome: (message) => {\n warn(ctx, message);\n return Option.none();\n },\n });\n },\n );\n const minimum = bound(obj, 'minimum', base, ctx);\n const maximum = bound(obj, 'maximum', base, ctx);\n const minInclusive = bound(obj, 'minInclusive', base, ctx);\n const maxInclusive = bound(obj, 'maxInclusive', base, ctx);\n if (\n Option.isSome(minimum) &&\n Option.isSome(minInclusive) &&\n !sameBound(minimum.value, minInclusive.value, base)\n )\n error(ctx, 'minimum and minInclusive differ');\n if (\n Option.isSome(maximum) &&\n Option.isSome(maxInclusive) &&\n !sameBound(maximum.value, maxInclusive.value, base)\n )\n error(ctx, 'maximum and maxInclusive differ');\n const datatype: Datatype.Datatype = {\n base,\n ...optional('id', id),\n ...optional('format', format),\n ...optional('length', nonNegativeInteger(obj, 'length', ctx)),\n ...optional('minLength', nonNegativeInteger(obj, 'minLength', ctx)),\n ...optional('maxLength', nonNegativeInteger(obj, 'maxLength', ctx)),\n ...optional(\n 'minInclusive',\n Option.orElse(minInclusive, () => minimum),\n ),\n ...optional(\n 'maxInclusive',\n Option.orElse(maxInclusive, () => maximum),\n ),\n ...optional('minExclusive', bound(obj, 'minExclusive', base, ctx)),\n ...optional('maxExclusive', bound(obj, 'maxExclusive', base, ctx)),\n common: commonProperties(obj, ctx),\n };\n checkDatatype(datatype, ctx);\n return datatype;\n};\n\nconst datatypeProperty = (value: Schema.Json, ctx: Ctx): Option.Option<Datatype.Datatype> => {\n if (Predicate.isString(value)) {\n if (Datatype.isBuiltIn(value)) return Option.some({ base: value, common: {} });\n warn(ctx, `datatype ${quote(value)} is not a built-in datatype`);\n return Option.some(Datatype.string);\n }\n if (Json.isObject(value)) return Option.some(datatypeObject(value, ctx));\n warn(ctx, `datatype must be a string or object, not ${quote(value)}`);\n return Option.some(Datatype.string);\n};\n\n// -----------------------------------------------------------------------------\n// Inherited properties\n// -----------------------------------------------------------------------------\n\n/** A `separator`: a string, or `null` for none (overriding an inherited one). */\ntype Separator = Exclude<Inherited['separator'], undefined>;\n\nconst inheritedOf = (obj: Obj, ctx: Ctx): Inherited => {\n const nulls = Option.flatMap(get(obj, 'null'), (v): Option.Option<ReadonlyArray<string>> => {\n if (Predicate.isString(v)) return Option.some([v]);\n if (Json.isArray(v)) {\n const strings = Arr.filter(v, Predicate.isString);\n if (Arr.length(strings) !== Arr.length(v)) warn(ctx, 'null values must be strings');\n return Option.some(strings);\n }\n warn(ctx, `null must be a string or array of strings, not ${quote(v)}`);\n return Option.some(['']);\n });\n const lang = Option.flatMap(stringProperty(obj, 'lang', ctx), (l) => {\n if (isLanguageTag(l)) return Option.some(l);\n warn(ctx, `lang ${quote(l)} is not a valid language tag`);\n return Option.some('und');\n });\n const separator = Option.flatMap(get(obj, 'separator'), (v): Option.Option<Separator> => {\n if (Predicate.isString(v) || Predicate.isNull(v)) return Option.some(v);\n warn(ctx, `separator must be a string or null, not ${quote(v)}`);\n return Option.some(null);\n });\n const textDirection = Option.flatMap(\n get(obj, 'textDirection'),\n (v): Option.Option<TextDirection> => {\n if (v === 'ltr' || v === 'rtl' || v === 'auto' || v === 'inherit') return Option.some(v);\n warn(ctx, `textDirection must be \"ltr\", \"rtl\", \"auto\" or \"inherit\", not ${quote(v)}`);\n return Option.some('inherit');\n },\n );\n const defaultValue = Option.flatMap(get(obj, 'default'), (v) => {\n if (Predicate.isString(v)) return Option.some(v);\n warn(ctx, `default must be a string, not ${quote(v)}`);\n return Option.some('');\n });\n const flag = (key: string) =>\n Option.flatMap(get(obj, key), (v) => {\n if (Predicate.isBoolean(v)) return Option.some(v);\n warn(ctx, `${key} must be a boolean, not ${quote(v)}`);\n return Option.some(false);\n });\n return {\n ...optional('aboutUrl', templateProperty(obj, 'aboutUrl', ctx)),\n ...optional(\n 'datatype',\n Option.flatMap(get(obj, 'datatype'), (v) => datatypeProperty(v, ctx)),\n ),\n ...optional('default', defaultValue),\n ...optional('lang', lang),\n ...optional('null', nulls),\n ...optional('ordered', flag('ordered')),\n ...optional('propertyUrl', templateProperty(obj, 'propertyUrl', ctx)),\n ...optional('required', flag('required')),\n ...optional('separator', separator),\n ...optional('textDirection', textDirection),\n ...optional('valueUrl', templateProperty(obj, 'valueUrl', ctx)),\n };\n};\n\n// -----------------------------------------------------------------------------\n// Columns and schemas\n// -----------------------------------------------------------------------------\n\nconst COLUMN_NAME = /^(?:[A-Za-z0-9]|%[0-9A-Fa-f]{2})(?:[A-Za-z0-9_.]|%[0-9A-Fa-f]{2})*$/;\n\nconst columnOf = (obj: Obj, ctx: Ctx): Column => {\n checkKeys(obj, 'Column', ctx);\n const titles = Option.match(get(obj, 'titles'), {\n onNone: () => ({}),\n onSome: (v) => naturalLanguage(v, 'titles', ctx),\n });\n const name = Option.flatMap(get(obj, 'name'), (v) => {\n if (!Predicate.isString(v)) {\n warn(ctx, `column name must be a string, not ${quote(v)}`);\n return Option.none();\n }\n if (!COLUMN_NAME.test(v) || v.startsWith('_')) {\n warn(ctx, `invalid column name ${quote(v)}`);\n return Option.none();\n }\n return Option.some(v);\n });\n return {\n ...optional('id', idOf(obj, ctx)),\n ...optional('name', name),\n ...optional(\n 'titleName',\n Option.flatMap(\n Record.get(\n titles,\n Option.getOrElse(ctx.language, () => 'und'),\n ),\n Arr.head,\n ),\n ),\n titles,\n isVirtual: Option.getOrElse(booleanProperty(obj, 'virtual', ctx), () => false),\n isSuppressed: Option.getOrElse(booleanProperty(obj, 'suppressOutput', ctx), () => false),\n inherited: inheritedOf(obj, ctx),\n common: commonProperties(obj, ctx),\n };\n};\n\nconst arrayProperty = (obj: Obj, key: string, ctx: Ctx): ReadonlyArray<Obj> =>\n Option.match(get(obj, key), {\n onNone: () => [],\n onSome: (v) => {\n if (!Json.isArray(v)) {\n warn(ctx, `${key} must be an array`);\n return [];\n }\n return Arr.filter(v, (item): item is Obj => {\n if (Json.isObject(item)) return true;\n warn(ctx, `${key} items must be objects, not ${quote(item)}`);\n return false;\n });\n },\n });\n\nconst foreignKeyOf = (obj: Obj, ctx: Ctx): Option.Option<ForeignKey> => {\n checkKeys(obj, 'ForeignKey', ctx);\n const columns = columnReference(obj, 'columnReference', ctx, true);\n const reference = Option.flatMap(get(obj, 'reference'), (r): Option.Option<Reference> => {\n if (!Json.isObject(r)) {\n error(ctx, 'foreign key reference must be an object');\n return Option.none();\n }\n checkKeys(r, 'Reference', ctx);\n const resource = linkProperty(r, 'resource', ctx);\n const schemaReference = linkProperty(r, 'schemaReference', ctx);\n if (Option.isSome(resource) === Option.isSome(schemaReference))\n error(ctx, 'foreign key reference needs exactly one of resource and schemaReference');\n return Option.map(columnReference(r, 'columnReference', ctx, true), (cols) => ({\n ...optional('resource', resource),\n ...optional('schemaReference', schemaReference),\n columnReference: cols,\n }));\n });\n if (Option.isNone(reference) && !Json.has(obj, 'reference'))\n error(ctx, 'foreign key needs a reference');\n return Option.map(Option.all([columns, reference]), ([from, to]) => ({\n columnReference: from,\n reference: to,\n }));\n};\n\nconst schemaOf = (obj: Obj, ctx: Ctx): TableSchema => {\n checkKeys(obj, 'Schema', ctx);\n const columns = Arr.map(arrayProperty(obj, 'columns', ctx), (c) => columnOf(c, ctx));\n const names = Arr.getSomes(Arr.map(columns, (c) => Option.fromNullishOr(c.name)));\n if (Arr.length(Arr.dedupe(names)) !== Arr.length(names))\n error(ctx, 'column names must be unique');\n const firstVirtual = Arr.findFirstIndex(columns, (c) => c.isVirtual);\n if (Option.exists(firstVirtual, (i) => Arr.some(Arr.drop(columns, i), (c) => !c.isVirtual)))\n error(ctx, 'virtual columns must follow every non-virtual column');\n const references = (key: string) =>\n Option.flatMap(columnReference(obj, key, ctx, false), (refs) => {\n if (Arr.every(refs, (r) => Arr.contains(names, r))) return Option.some(refs);\n warn(ctx, `${key} references a column that does not exist`);\n return Option.none();\n });\n const foreignKeys = Arr.getSomes(\n Arr.map(arrayProperty(obj, 'foreignKeys', ctx), (fk) => foreignKeyOf(fk, ctx)),\n );\n Arr.forEach(foreignKeys, (fk) => {\n if (!Arr.every(fk.columnReference, (r) => Arr.contains(names, r)))\n error(ctx, 'foreign key columnReference references a column that does not exist');\n });\n return {\n ...optional('id', idOf(obj, ctx)),\n columns,\n ...optional('primaryKey', references('primaryKey')),\n ...optional('rowTitles', references('rowTitles')),\n foreignKeys,\n inherited: inheritedOf(obj, ctx),\n common: commonProperties(obj, ctx),\n };\n};\n\n// -----------------------------------------------------------------------------\n// Dialects and transformations\n// -----------------------------------------------------------------------------\n\nconst isEncoding = (encoding: string): boolean =>\n Result.isSuccess(Result.try(() => new TextDecoder(encoding)));\n\nconst dialectOf = (obj: Obj, ctx: Ctx): Dialect => {\n checkKeys(obj, 'Dialect', ctx);\n const d = defaultDialect;\n const header = booleanProperty(obj, 'header', ctx);\n const headerRowCount = nonNegativeInteger(obj, 'headerRowCount', ctx);\n const skipInitialSpace = booleanProperty(obj, 'skipInitialSpace', ctx);\n const trim = Option.flatMap(get(obj, 'trim'), (v): Option.Option<Trim> => {\n if (Predicate.isBoolean(v)) return Option.some(v ? 'true' : 'false');\n if (v === 'true' || v === 'false' || v === 'start' || v === 'end') return Option.some(v);\n warn(ctx, `trim must be a boolean or \"true\", \"false\", \"start\" or \"end\", not ${quote(v)}`);\n return Option.none();\n });\n const quoteChar = Option.flatMap(\n get(obj, 'quoteChar'),\n (v): Option.Option<Dialect['quoteChar']> => {\n if (Predicate.isString(v) || Predicate.isNull(v)) return Option.some(v);\n warn(ctx, `quoteChar must be a string or null, not ${quote(v)}`);\n return Option.none();\n },\n );\n const lineTerminators = Option.flatMap(\n get(obj, 'lineTerminators'),\n (v): Option.Option<ReadonlyArray<string>> => {\n if (Predicate.isString(v)) return Option.some([v]);\n if (Json.isArray(v) && Arr.every(v, Predicate.isString))\n return Option.some(Arr.filter(v, Predicate.isString));\n warn(ctx, 'lineTerminators must be a string or an array of strings');\n return Option.none();\n },\n );\n const encoding = Option.flatMap(stringProperty(obj, 'encoding', ctx), (e) => {\n if (isEncoding(e)) return Option.some(e);\n warn(ctx, `unknown encoding ${quote(e)}`);\n return Option.none();\n });\n return {\n ...optional('id', idOf(obj, ctx)),\n ...optional('commentPrefix', stringProperty(obj, 'commentPrefix', ctx)),\n delimiter: Option.getOrElse(stringProperty(obj, 'delimiter', ctx), () => d.delimiter),\n isDoubleQuoted: Option.getOrElse(\n booleanProperty(obj, 'doubleQuote', ctx),\n () => d.isDoubleQuoted,\n ),\n encoding: Option.getOrElse(encoding, () => d.encoding),\n headerRowCount: Option.getOrElse(headerRowCount, () =>\n Option.getOrElse(\n Option.map(header, (h) => (h ? 1 : 0)),\n () => d.headerRowCount,\n ),\n ),\n lineTerminators: Option.getOrElse(lineTerminators, () => d.lineTerminators),\n quoteChar: Option.getOrElse(quoteChar, () => d.quoteChar),\n shouldSkipBlankRows: Option.getOrElse(\n booleanProperty(obj, 'skipBlankRows', ctx),\n () => d.shouldSkipBlankRows,\n ),\n skipColumns: Option.getOrElse(nonNegativeInteger(obj, 'skipColumns', ctx), () => d.skipColumns),\n skipRows: Option.getOrElse(nonNegativeInteger(obj, 'skipRows', ctx), () => d.skipRows),\n trim: Option.getOrElse(trim, () =>\n Option.getOrElse(\n Option.map(skipInitialSpace, (s): Trim => (s ? 'start' : 'false')),\n () => d.trim,\n ),\n ),\n };\n};\n\nconst transformationOf = (obj: Obj, ctx: Ctx): Option.Option<Transformation> => {\n checkKeys(obj, 'Template', ctx);\n const required = (key: string) => {\n const v = linkProperty(obj, key, ctx);\n if (Option.isNone(v)) error(ctx, `transformation needs ${key}`);\n return v;\n };\n const url = required('url');\n const scriptFormat = required('scriptFormat');\n const targetFormat = required('targetFormat');\n const source = Option.flatMap(stringProperty(obj, 'source', ctx), (s) => {\n if (s === 'json' || s === 'rdf') return Option.some(s);\n warn(ctx, `transformation source must be \"json\" or \"rdf\", not ${quote(s)}`);\n return Option.none();\n });\n return Option.map(Option.all([url, scriptFormat, targetFormat]), ([u, sf, tf]) => ({\n ...optional('id', idOf(obj, ctx)),\n url: u,\n scriptFormat: sf,\n targetFormat: tf,\n ...optional('source', source),\n titles: Option.match(get(obj, 'titles'), {\n onNone: () => ({}),\n onSome: (v) => naturalLanguage(v, 'titles', ctx),\n }),\n common: commonProperties(obj, ctx),\n }));\n};\n\nconst tableDirectionOf = (obj: Obj, ctx: Ctx): Option.Option<TableDirection> =>\n Option.flatMap(get(obj, 'tableDirection'), (v): Option.Option<TableDirection> => {\n if (v === 'ltr' || v === 'rtl' || v === 'auto') return Option.some(v);\n warn(ctx, `tableDirection must be \"ltr\", \"rtl\" or \"auto\", not ${quote(v)}`);\n return Option.some('auto');\n });\n\n// -----------------------------------------------------------------------------\n// Object properties referencing other documents\n// -----------------------------------------------------------------------------\n\ninterface Located {\n readonly obj: Obj;\n readonly ctx: Ctx;\n}\n\nconst contextOf = (\n doc: Obj,\n url: string,\n issues: Array<Report.Issue>,\n required: boolean,\n): Result.Result<Ctx, MetadataError> => {\n const fail = (message: string) => Result.fail(new MetadataError({ message, url }));\n const ctx: Ctx = { url, base: url, language: Option.none(), issues };\n return Option.match(get(doc, '@context'), {\n onNone: () =>\n required ? fail('a metadata document must have a @context') : Result.succeed(ctx),\n onSome: (c) => {\n if (c === CSVW_CONTEXT) return Result.succeed(ctx);\n if (!Json.isArray(c) || Arr.length(c) !== 2 || c[0] !== CSVW_CONTEXT)\n return fail(`@context must be \"${CSVW_CONTEXT}\" or [\"${CSVW_CONTEXT}\", {…}]`);\n const local = c[1];\n if (local === undefined || !Json.isObject(local))\n return fail('the local @context must be an object');\n const others = Arr.filter(Json.keys(local), (k) => k !== '@base' && k !== '@language');\n if (Arr.isReadonlyArrayNonEmpty(others))\n return fail(\n `the local @context must only define @base and @language, not ${Arr.join(others, ', ')}`,\n );\n const base = Option.match(get(local, '@base'), {\n onNone: () => url,\n onSome: (b) => {\n if (Predicate.isString(b)) return Url.resolve(b, url);\n issues.push(Report.warning('@base must be a string', { table: url }));\n return url;\n },\n });\n const language = Option.flatMap(get(local, '@language'), (l) => {\n if (Predicate.isString(l) && isLanguageTag(l)) return Option.some(l);\n issues.push(\n Report.warning(`@language ${quote(l)} is not a valid language tag`, { table: url }),\n );\n return Option.none();\n });\n return Result.succeed({ url, base, language, issues });\n },\n });\n};\n\nconst parseDocument = (text: string, url: string): Result.Result<Schema.Json, MetadataError> =>\n Result.mapError(\n Json.parseJson(text),\n (message) => new MetadataError({ message: `invalid JSON: ${message}`, url }),\n );\n\nconst objectProperty = (\n obj: Obj,\n key: string,\n ctx: Ctx,\n load: Fetch,\n): Effect.Effect<Option.Option<Located>, MetadataError> =>\n Option.match(get(obj, key), {\n onNone: () => Effect.succeedNone,\n onSome: (v) => {\n if (Json.isObject(v)) {\n if (Json.has(v, '@context')) error(ctx, `${key} must not have a @context`);\n return Effect.succeedSome({ obj: v, ctx });\n }\n if (Predicate.isString(v)) {\n const url = Url.resolve(v, ctx.base);\n return Effect.flatMap(load(url), (text) =>\n Effect.fromResult(\n Result.flatMap(parseDocument(text, url), (doc) => {\n if (!Json.isObject(doc))\n return Result.fail(new MetadataError({ message: `${key} must be an object`, url }));\n return Result.map(contextOf(doc, url, ctx.issues, false), (sub) =>\n Option.some({\n obj: Json.has(doc, '@id') ? doc : Json.set(doc, '@id', url),\n ctx: sub,\n }),\n );\n }),\n ),\n );\n }\n warn(ctx, `${key} must be an object or a URL, not ${quote(v)}`);\n return Effect.succeedSome({ obj: {}, ctx });\n },\n });\n\n// -----------------------------------------------------------------------------\n// Tables and table groups\n// -----------------------------------------------------------------------------\n\n/** The properties table and table group descriptions share. */\nconst sharedProperties = Effect.fnUntraced(function* (obj: Obj, ctx: Ctx, load: Fetch) {\n const schema = yield* objectProperty(obj, 'tableSchema', ctx, load);\n const dialect = yield* objectProperty(obj, 'dialect', ctx, load);\n return {\n ...optional('id', idOf(obj, ctx)),\n ...optional(\n 'dialect',\n Option.map(dialect, (d) => dialectOf(d.obj, d.ctx)),\n ),\n notes: notesOf(obj, ctx),\n ...optional('tableDirection', tableDirectionOf(obj, ctx)),\n ...optional(\n 'tableSchema',\n Option.map(schema, (s) => schemaOf(s.obj, s.ctx)),\n ),\n transformations: Arr.getSomes(\n Arr.map(arrayProperty(obj, 'transformations', ctx), (t) => transformationOf(t, ctx)),\n ),\n inherited: inheritedOf(obj, ctx),\n common: commonProperties(obj, ctx),\n };\n});\n\nconst describedTable = Effect.fnUntraced(function* (obj: Obj, ctx: Ctx, load: Fetch) {\n checkKeys(obj, 'Table', ctx);\n const url = linkProperty(obj, 'url', ctx);\n if (Option.isNone(url) || !Predicate.isString(obj['url'])) error(ctx, 'a table must have a url');\n const shared = yield* sharedProperties(obj, ctx, load);\n const table: Table = {\n ...shared,\n url: Option.getOrElse(url, () => ctx.base),\n isSuppressed: Option.getOrElse(booleanProperty(obj, 'suppressOutput', ctx), () => false),\n };\n return table;\n});\n\nconst describedGroup = Effect.fnUntraced(function* (obj: Obj, ctx: Ctx, load: Fetch) {\n checkKeys(obj, 'TableGroup', ctx);\n const tables = yield* Effect.forEach(\n arrayProperty(obj, 'tables', ctx),\n (t) => describedTable(t, ctx, load),\n { concurrency: 1 },\n );\n if (!Arr.isReadonlyArrayNonEmpty(tables))\n error(ctx, 'a table group must have at least one table');\n const shared = yield* sharedProperties(obj, ctx, load);\n const group: TableGroup = { ...shared, tables };\n return group;\n});\n\n/**\n * Decodes a parsed metadata document found at `url` into a normalized table\n * group (a table description becomes a group of one), fetching the schemas\n * and dialects it references by URL with `load`. Warnings are returned with\n * the group; errors fail with `MetadataError`.\n *\n * @since 0.1.0\n * @category decoding\n */\nexport const decodeJson = Effect.fnUntraced(function* (\n document: Schema.Json,\n url: string,\n load: Fetch,\n): Effect.fn.Return<Decoded, MetadataError> {\n if (!Json.isObject(document))\n return yield* new MetadataError({ message: 'a metadata document must be an object', url });\n const issues: Array<Report.Issue> = [];\n const ctx = yield* Effect.fromResult(contextOf(document, url, issues, true));\n const isGroup = Json.has(document, 'tables');\n if (!isGroup && !Json.has(document, 'url')) {\n return yield* new MetadataError({\n message: 'a metadata document must describe a table group (tables) or a table (url)',\n url,\n });\n }\n const group: TableGroup = isGroup\n ? yield* describedGroup(document, ctx, load)\n : {\n tables: [yield* describedTable(document, ctx, load)],\n notes: [],\n transformations: [],\n inherited: {},\n common: {},\n };\n const first = Arr.findFirst(issues, (i) => i.level === 'error');\n if (Option.isSome(first)) return yield* new MetadataError({ message: first.value.message, url });\n return { group, warnings: issues };\n});\n\n/**\n * Decodes metadata text found at `url` (see `decodeJson`); invalid JSON fails\n * with `MetadataError`.\n *\n * @since 0.1.0\n * @category decoding\n */\nexport const decode = (\n text: string,\n url: string,\n load: Fetch,\n): Effect.Effect<Decoded, MetadataError> =>\n Effect.flatMap(Effect.fromResult(parseDocument(text, url)), (doc) => decodeJson(doc, url, load));\n\n/**\n * A `Fetch` that fails for every URL: for metadata that references no other\n * document.\n *\n * @since 0.1.0\n * @category decoding\n */\nexport const noFetch: Fetch = (url) =>\n Effect.fail(new MetadataError({ message: `cannot fetch ${url}`, url }));\n\n// -----------------------------------------------------------------------------\n// Inheritance, names and compatibility\n// -----------------------------------------------------------------------------\n\n/**\n * The effective inherited properties of a column: its own, then its schema's,\n * its table's and its group's.\n *\n * @since 0.1.0\n * @category inheritance\n */\nexport const inherit = (...levels: ReadonlyArray<Inherited>): Inherited =>\n Arr.reduceRight(levels, noInherited, (acc, level) => ({ ...acc, ...level }));\n\nconst noInherited: Inherited = {};\n\n/**\n * The table's effective schema: its own, or its group's.\n *\n * @since 0.1.0\n * @category inheritance\n */\nexport const schemaOfTable = (group: TableGroup, table: Table): Option.Option<TableSchema> =>\n Option.orElse(Option.fromNullishOr(table.tableSchema), () =>\n Option.fromNullishOr(group.tableSchema),\n );\n\n/**\n * The table's effective dialect: its own, its group's, or the default.\n *\n * @since 0.1.0\n * @category inheritance\n */\nexport const dialectOfTable = (group: TableGroup, table: Table): Dialect =>\n table.dialect ?? group.dialect ?? defaultDialect;\n\n/**\n * Whether two language tags match for title comparison: `und` matches any\n * language, and tags match when equal after truncation to the shorter one.\n *\n * @since 0.1.0\n * @category compatibility\n */\nexport const languagesMatch = (a: string, b: string): boolean => {\n if (a === 'und' || b === 'und') return true;\n const x = a.toLowerCase().split('-');\n const y = b.toLowerCase().split('-');\n const n = Math.min(Arr.length(x), Arr.length(y));\n return Arr.join(Arr.take(x, n), '-') === Arr.join(Arr.take(y, n), '-');\n};\n\nconst titleEntries = (titles: LanguageMap): ReadonlyArray<readonly [string, string]> =>\n Arr.flatMap(Record.toEntries(titles), ([lang, ts]) => Arr.map(ts, (t) => [lang, t] as const));\n\n/**\n * Whether two column descriptions are compatible (§Schema Compatibility).\n *\n * @since 0.1.0\n * @category compatibility\n */\nexport const columnsCompatible = (a: Column, b: Column, validating: boolean): boolean => {\n const aTitles = titleEntries(a.titles);\n const bTitles = titleEntries(b.titles);\n const aEmpty = a.name === undefined && !Arr.isReadonlyArrayNonEmpty(aTitles);\n const bEmpty = b.name === undefined && !Arr.isReadonlyArrayNonEmpty(bTitles);\n if (aEmpty || bEmpty) return true;\n if (a.name !== undefined && a.name === b.name) return true;\n if (\n Arr.some(aTitles, ([la, ta]) =>\n Arr.some(bTitles, ([lb, tb]) => ta === tb && languagesMatch(la, lb)),\n )\n )\n return true;\n if (!validating) {\n const nameOnly = (c: Column, ts: ReadonlyArray<unknown>) =>\n c.name !== undefined && !Arr.isReadonlyArrayNonEmpty(ts);\n const titlesOnly = (c: Column, ts: ReadonlyArray<unknown>) =>\n c.name === undefined && Arr.isReadonlyArrayNonEmpty(ts);\n if (\n (nameOnly(a, aTitles) && titlesOnly(b, bTitles)) ||\n (titlesOnly(a, aTitles) && nameOnly(b, bTitles))\n )\n return true;\n }\n return false;\n};\n\n/**\n * Checks a table's schema against the columns embedded in its data\n * (§Schema Compatibility), returning the reason they are incompatible.\n *\n * @since 0.1.0\n * @category compatibility\n */\nexport const checkCompatible = (\n schema: ReadonlyArray<Column>,\n embedded: ReadonlyArray<Column>,\n validating: boolean,\n): Option.Option<string> => {\n const real = Arr.filter(schema, (c) => !c.isVirtual);\n if (Arr.length(real) !== Arr.length(embedded))\n return Option.some(\n `the metadata describes ${Arr.length(real)} columns but the data has ${Arr.length(embedded)}`,\n );\n return Option.map(\n Arr.findFirstIndex(Arr.zip(real, embedded), ([a, b]) => !columnsCompatible(a, b, validating)),\n (i) => `column ${i + 1} of the metadata is not compatible with the data's header`,\n );\n};\n\n/**\n * Whether a table group describes the table at `url` (URLs compared after\n * normalization).\n *\n * @since 0.1.0\n * @category compatibility\n */\nexport const describes = (group: TableGroup, url: string): boolean =>\n Arr.some(group.tables, (t) => Url.normalize(t.url) === Url.normalize(url));\n"],"mappings":"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"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Result from "effect/Result";
|
|
6
|
+
declare namespace Metadata_d_exports {
|
|
7
|
+
export { ArrayForm, ArrayValue, Entries, Entry, LocalizedSetter, Metadata, Setter, Simple, Struct, Value, X_DEFAULT, XmpModelError, array, bag, empty, fromDataset, fromDatasetResult, get, getItems, getLocalized, getText, isArray, isSimple, isStruct, itemsOf, languageAlternative, localizedOf, lookup, make, remove, seq, set, setLocalized, struct, text, textOf, toDataset, uri, withQualifiers };
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The `xml:lang` value of the default item of a language alternative.
|
|
11
|
+
*
|
|
12
|
+
* @since 0.1.0
|
|
13
|
+
* @category constants
|
|
14
|
+
*/
|
|
15
|
+
declare const X_DEFAULT = "x-default";
|
|
16
|
+
/**
|
|
17
|
+
* A named value: a property, a structure field or a qualifier, keyed by its
|
|
18
|
+
* full IRI.
|
|
19
|
+
*
|
|
20
|
+
* @since 0.1.0
|
|
21
|
+
* @category models
|
|
22
|
+
*/
|
|
23
|
+
type Entry = readonly [iri: string, value: Value];
|
|
24
|
+
/**
|
|
25
|
+
* Named values, each IRI at most once.
|
|
26
|
+
*
|
|
27
|
+
* @since 0.1.0
|
|
28
|
+
* @category models
|
|
29
|
+
*/
|
|
30
|
+
type Entries = ReadonlyArray<Entry>;
|
|
31
|
+
/**
|
|
32
|
+
* A simple value: a text string, or a URI (written with `rdf:resource`).
|
|
33
|
+
*
|
|
34
|
+
* @since 0.1.0
|
|
35
|
+
* @category models
|
|
36
|
+
*/
|
|
37
|
+
interface Simple {
|
|
38
|
+
readonly _tag: 'Simple';
|
|
39
|
+
readonly value: string;
|
|
40
|
+
/** Whether the value is a URI rather than text. */
|
|
41
|
+
readonly isUri: boolean;
|
|
42
|
+
/** The `xml:lang` qualifier of a text value. */
|
|
43
|
+
readonly language: Option.Option<string>;
|
|
44
|
+
/** The other qualifiers (`xml:lang` is `language`). */
|
|
45
|
+
readonly qualifiers: Entries;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A structure: named fields, each keyed by its full IRI.
|
|
49
|
+
*
|
|
50
|
+
* @since 0.1.0
|
|
51
|
+
* @category models
|
|
52
|
+
*/
|
|
53
|
+
interface Struct {
|
|
54
|
+
readonly _tag: 'Struct';
|
|
55
|
+
readonly fields: Entries;
|
|
56
|
+
readonly qualifiers: Entries;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The form of an array: unordered (`Bag`), ordered (`Seq`) or alternatives
|
|
60
|
+
* (`Alt`, of which the first is the default).
|
|
61
|
+
*
|
|
62
|
+
* @since 0.1.0
|
|
63
|
+
* @category models
|
|
64
|
+
*/
|
|
65
|
+
type ArrayForm = 'Bag' | 'Seq' | 'Alt';
|
|
66
|
+
/**
|
|
67
|
+
* An array value (`rdf:Bag`, `rdf:Seq` or `rdf:Alt`).
|
|
68
|
+
*
|
|
69
|
+
* @since 0.1.0
|
|
70
|
+
* @category models
|
|
71
|
+
*/
|
|
72
|
+
interface ArrayValue {
|
|
73
|
+
readonly _tag: 'Array';
|
|
74
|
+
readonly form: ArrayForm;
|
|
75
|
+
readonly items: ReadonlyArray<Value>;
|
|
76
|
+
readonly qualifiers: Entries;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* An XMP property or field value.
|
|
80
|
+
*
|
|
81
|
+
* @since 0.1.0
|
|
82
|
+
* @category models
|
|
83
|
+
*/
|
|
84
|
+
type Value = Simple | Struct | ArrayValue;
|
|
85
|
+
/**
|
|
86
|
+
* The metadata of one resource: the `rdf:about` value of its descriptions
|
|
87
|
+
* (usually `""`, the containing file) and its top-level properties.
|
|
88
|
+
*
|
|
89
|
+
* @since 0.1.0
|
|
90
|
+
* @category models
|
|
91
|
+
*/
|
|
92
|
+
interface Metadata {
|
|
93
|
+
readonly about: string;
|
|
94
|
+
readonly properties: Entries;
|
|
95
|
+
}
|
|
96
|
+
declare const XmpModelError_base: Schema.Class<XmpModelError, Schema.TaggedStruct<"XmpModelError", {
|
|
97
|
+
readonly message: Schema.String;
|
|
98
|
+
}>, import("effect/Cause").YieldableError>;
|
|
99
|
+
/**
|
|
100
|
+
* RDF that does not have the shape of the XMP data model: a cycle, a triple
|
|
101
|
+
* term, an array with non-member properties or a property given twice.
|
|
102
|
+
*
|
|
103
|
+
* @since 0.1.0
|
|
104
|
+
* @category errors
|
|
105
|
+
*/
|
|
106
|
+
declare class XmpModelError extends XmpModelError_base {}
|
|
107
|
+
/**
|
|
108
|
+
* Whether a value is a simple value.
|
|
109
|
+
*
|
|
110
|
+
* @since 0.1.0
|
|
111
|
+
* @category guards
|
|
112
|
+
*/
|
|
113
|
+
declare const isSimple: (value: Value) => value is Simple;
|
|
114
|
+
/**
|
|
115
|
+
* Whether a value is a structure.
|
|
116
|
+
*
|
|
117
|
+
* @since 0.1.0
|
|
118
|
+
* @category guards
|
|
119
|
+
*/
|
|
120
|
+
declare const isStruct: (value: Value) => value is Struct;
|
|
121
|
+
/**
|
|
122
|
+
* Whether a value is an array.
|
|
123
|
+
*
|
|
124
|
+
* @since 0.1.0
|
|
125
|
+
* @category guards
|
|
126
|
+
*/
|
|
127
|
+
declare const isArray: (value: Value) => value is ArrayValue;
|
|
128
|
+
/**
|
|
129
|
+
* The value of the entry with the given IRI.
|
|
130
|
+
*
|
|
131
|
+
* @since 0.1.0
|
|
132
|
+
* @category accessors
|
|
133
|
+
*/
|
|
134
|
+
declare const lookup: (entries: Entries, iri: string) => Option.Option<Value>;
|
|
135
|
+
/**
|
|
136
|
+
* Metadata with no properties, about the containing file (`rdf:about=""`).
|
|
137
|
+
*
|
|
138
|
+
* @since 0.1.0
|
|
139
|
+
* @category constructors
|
|
140
|
+
*/
|
|
141
|
+
declare const empty: Metadata;
|
|
142
|
+
/**
|
|
143
|
+
* Builds metadata from `[iri, value]` entries (a later entry replaces an
|
|
144
|
+
* earlier one with the same IRI).
|
|
145
|
+
*
|
|
146
|
+
* @since 0.1.0
|
|
147
|
+
* @category constructors
|
|
148
|
+
*/
|
|
149
|
+
declare const make: (properties: Iterable<Entry>, about?: string) => Metadata;
|
|
150
|
+
/**
|
|
151
|
+
* A text value, optionally with an `xml:lang` qualifier.
|
|
152
|
+
*
|
|
153
|
+
* @since 0.1.0
|
|
154
|
+
* @category constructors
|
|
155
|
+
*/
|
|
156
|
+
declare const text: (value: string, language?: string) => Simple;
|
|
157
|
+
/**
|
|
158
|
+
* A URI value, written with `rdf:resource`.
|
|
159
|
+
*
|
|
160
|
+
* @since 0.1.0
|
|
161
|
+
* @category constructors
|
|
162
|
+
*/
|
|
163
|
+
declare const uri: (value: string) => Simple;
|
|
164
|
+
/**
|
|
165
|
+
* A structure from `[iri, value]` field entries.
|
|
166
|
+
*
|
|
167
|
+
* @since 0.1.0
|
|
168
|
+
* @category constructors
|
|
169
|
+
*/
|
|
170
|
+
declare const struct: (fields: Iterable<Entry>) => Struct;
|
|
171
|
+
/**
|
|
172
|
+
* An array of the given form.
|
|
173
|
+
*
|
|
174
|
+
* @since 0.1.0
|
|
175
|
+
* @category constructors
|
|
176
|
+
*/
|
|
177
|
+
declare const array: (form: ArrayForm, items: Iterable<Value>) => ArrayValue;
|
|
178
|
+
/**
|
|
179
|
+
* An unordered array (`rdf:Bag`) of text values.
|
|
180
|
+
*
|
|
181
|
+
* @since 0.1.0
|
|
182
|
+
* @category constructors
|
|
183
|
+
*/
|
|
184
|
+
declare const bag: (items: Iterable<string>) => ArrayValue;
|
|
185
|
+
/**
|
|
186
|
+
* An ordered array (`rdf:Seq`) of text values.
|
|
187
|
+
*
|
|
188
|
+
* @since 0.1.0
|
|
189
|
+
* @category constructors
|
|
190
|
+
*/
|
|
191
|
+
declare const seq: (items: Iterable<string>) => ArrayValue;
|
|
192
|
+
/**
|
|
193
|
+
* A language alternative: an `rdf:Alt` of text values each qualified by
|
|
194
|
+
* `xml:lang`, from `[language, text]` pairs. An `x-default` entry is moved
|
|
195
|
+
* first, as ISO 16684-1 requires.
|
|
196
|
+
*
|
|
197
|
+
* @since 0.1.0
|
|
198
|
+
* @category constructors
|
|
199
|
+
*/
|
|
200
|
+
declare const languageAlternative: (entries: Iterable<readonly [string, string]>) => ArrayValue;
|
|
201
|
+
/**
|
|
202
|
+
* Returns the value with the given qualifiers added (replacing qualifiers
|
|
203
|
+
* of the same IRI).
|
|
204
|
+
*
|
|
205
|
+
* @since 0.1.0
|
|
206
|
+
* @category combinators
|
|
207
|
+
*/
|
|
208
|
+
declare const withQualifiers: {
|
|
209
|
+
(qualifiers: Iterable<Entry>): <V extends Value>(self: V) => V;
|
|
210
|
+
<V extends Value>(self: V, qualifiers: Iterable<Entry>): V;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* The value of a top-level property.
|
|
214
|
+
*
|
|
215
|
+
* @since 0.1.0
|
|
216
|
+
* @category accessors
|
|
217
|
+
*/
|
|
218
|
+
declare const get: {
|
|
219
|
+
(iri: string): (self: Metadata) => Option.Option<Value>;
|
|
220
|
+
(self: Metadata, iri: string): Option.Option<Value>;
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Sets a top-level property, keeping its position if it was already set.
|
|
224
|
+
*
|
|
225
|
+
* @since 0.1.0
|
|
226
|
+
* @category combinators
|
|
227
|
+
*/
|
|
228
|
+
declare const set: {
|
|
229
|
+
(iri: string, value: Value): (self: Metadata) => Metadata;
|
|
230
|
+
(self: Metadata, iri: string, value: Value): Metadata;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Removes a top-level property.
|
|
234
|
+
*
|
|
235
|
+
* @since 0.1.0
|
|
236
|
+
* @category combinators
|
|
237
|
+
*/
|
|
238
|
+
declare const remove: {
|
|
239
|
+
(iri: string): (self: Metadata) => Metadata;
|
|
240
|
+
(self: Metadata, iri: string): Metadata;
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* The string of a simple (text or URI) value.
|
|
244
|
+
*
|
|
245
|
+
* @since 0.1.0
|
|
246
|
+
* @category accessors
|
|
247
|
+
*/
|
|
248
|
+
declare const textOf: (value: Value) => Option.Option<string>;
|
|
249
|
+
/**
|
|
250
|
+
* The strings of an array's simple items, in order; items that are not
|
|
251
|
+
* simple values are skipped.
|
|
252
|
+
*
|
|
253
|
+
* @since 0.1.0
|
|
254
|
+
* @category accessors
|
|
255
|
+
*/
|
|
256
|
+
declare const itemsOf: (value: Value) => Option.Option<ReadonlyArray<string>>;
|
|
257
|
+
/**
|
|
258
|
+
* Looks up a language alternative the way ISO 16684-1 §8.2.2.4 describes:
|
|
259
|
+
* the item whose `xml:lang` matches `language` (case-insensitively), else
|
|
260
|
+
* the `x-default` item, else the first item. A simple value is its own
|
|
261
|
+
* only alternative.
|
|
262
|
+
*
|
|
263
|
+
* @since 0.1.0
|
|
264
|
+
* @category accessors
|
|
265
|
+
*/
|
|
266
|
+
declare const localizedOf: (value: Value, language?: string) => Option.Option<string>;
|
|
267
|
+
/**
|
|
268
|
+
* The string of a simple top-level property.
|
|
269
|
+
*
|
|
270
|
+
* @since 0.1.0
|
|
271
|
+
* @category accessors
|
|
272
|
+
*/
|
|
273
|
+
declare const getText: {
|
|
274
|
+
(iri: string): (self: Metadata) => Option.Option<string>;
|
|
275
|
+
(self: Metadata, iri: string): Option.Option<string>;
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* The strings of an array-valued top-level property.
|
|
279
|
+
*
|
|
280
|
+
* @since 0.1.0
|
|
281
|
+
* @category accessors
|
|
282
|
+
*/
|
|
283
|
+
declare const getItems: {
|
|
284
|
+
(iri: string): (self: Metadata) => Option.Option<ReadonlyArray<string>>;
|
|
285
|
+
(self: Metadata, iri: string): Option.Option<ReadonlyArray<string>>;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* A language-alternative top-level property in the given language (see
|
|
289
|
+
* `localizedOf`).
|
|
290
|
+
*
|
|
291
|
+
* @since 0.1.0
|
|
292
|
+
* @category accessors
|
|
293
|
+
*/
|
|
294
|
+
declare const getLocalized: (self: Metadata, iri: string, language?: string) => Option.Option<string>;
|
|
295
|
+
/**
|
|
296
|
+
* Sets one language of a language-alternative top-level property, keeping
|
|
297
|
+
* its other languages. Setting `x-default` puts that item first.
|
|
298
|
+
*
|
|
299
|
+
* @since 0.1.0
|
|
300
|
+
* @category combinators
|
|
301
|
+
*/
|
|
302
|
+
declare const setLocalized: (self: Metadata, iri: string, value: string, language?: string) => Metadata;
|
|
303
|
+
/**
|
|
304
|
+
* Reads the XMP data model from the RDF of an XMP packet, returning a
|
|
305
|
+
* `Result`. Typed literals keep only their lexical form (XMP has no
|
|
306
|
+
* datatypes); named graphs are ignored.
|
|
307
|
+
*
|
|
308
|
+
* @since 0.1.0
|
|
309
|
+
* @category conversions
|
|
310
|
+
*/
|
|
311
|
+
declare const fromDatasetResult: (dataset: Dataset) => Result.Result<Metadata, XmpModelError>;
|
|
312
|
+
/**
|
|
313
|
+
* Reads the XMP data model from the RDF of an XMP packet.
|
|
314
|
+
*
|
|
315
|
+
* @since 0.1.0
|
|
316
|
+
* @category conversions
|
|
317
|
+
*/
|
|
318
|
+
declare const fromDataset: (dataset: Dataset) => Effect.Effect<Metadata, XmpModelError>;
|
|
319
|
+
/**
|
|
320
|
+
* The RDF of the XMP data model: the properties of one `rdf:about` subject,
|
|
321
|
+
* structures and arrays as blank nodes, and qualified values in the
|
|
322
|
+
* `rdf:value` form.
|
|
323
|
+
*
|
|
324
|
+
* @since 0.1.0
|
|
325
|
+
* @category conversions
|
|
326
|
+
*/
|
|
327
|
+
declare const toDataset: (self: Metadata) => Dataset;
|
|
328
|
+
/**
|
|
329
|
+
* A typed setter of one property, data-first or data-last.
|
|
330
|
+
*
|
|
331
|
+
* @since 0.1.0
|
|
332
|
+
* @category models
|
|
333
|
+
*/
|
|
334
|
+
interface Setter<A> {
|
|
335
|
+
(value: A): (self: Metadata) => Metadata;
|
|
336
|
+
(self: Metadata, value: A): Metadata;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* A typed setter of one language of a language-alternative property
|
|
340
|
+
* (`x-default` unless a language is given), data-first or data-last.
|
|
341
|
+
*
|
|
342
|
+
* @since 0.1.0
|
|
343
|
+
* @category models
|
|
344
|
+
*/
|
|
345
|
+
interface LocalizedSetter {
|
|
346
|
+
(value: string, language?: string): (self: Metadata) => Metadata;
|
|
347
|
+
(self: Metadata, value: string, language?: string): Metadata;
|
|
348
|
+
}
|
|
349
|
+
export { make as A, withQualifiers as B, isArray as C, languageAlternative as D, itemsOf as E, struct as F, text as I, textOf as L, seq as M, set as N, localizedOf as O, setLocalized as P, toDataset as R, getText as S, isStruct as T, fromDataset as _, LocalizedSetter as a, getItems as b, Setter as c, Value as d, X_DEFAULT as f, empty as g, bag as h, Entry as i, remove as j, lookup as k, Simple as l, array as m, ArrayValue as n, Metadata as o, XmpModelError as p, Entries as r, Metadata_d_exports as s, ArrayForm as t, Struct as u, fromDatasetResult as v, isSimple as w, getLocalized as x, get as y, uri as z };
|
|
350
|
+
//# sourceMappingURL=Metadata-nzS7QKRj.d.mts.map
|