@thomasfosterau/effect-rdf 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2251 -2
- package/dist/Algebra-CGG4oae3.mjs +433 -0
- package/dist/Algebra-CGG4oae3.mjs.map +1 -0
- package/dist/Algebra-uGsIEOUA.d.mts +446 -0
- package/dist/Ast-CPRZmBvk.mjs +552 -0
- package/dist/Ast-CPRZmBvk.mjs.map +1 -0
- package/dist/Ast-vcw2W-lf.d.mts +827 -0
- package/dist/Bindings-Ck3m7JRC.mjs +249 -0
- package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
- package/dist/Bindings-DiKpBd7f.d.mts +153 -0
- package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
- package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
- package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
- package/dist/ClientFormats-CXomkXLV.mjs +73 -0
- package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
- package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
- package/dist/Csv2Json-DynEcwCh.mjs +194 -0
- package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
- package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
- package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
- package/dist/Dataset-BlmlcI7J.mjs +782 -0
- package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
- package/dist/Dataset-DS3ESOcO.d.mts +426 -0
- package/dist/Dataset.d.mts +2 -0
- package/dist/Dataset.mjs +1 -0
- package/dist/Datatype-CxMpamHC.d.mts +212 -0
- package/dist/Datatype-DQvkNkiH.mjs +1001 -0
- package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
- package/dist/Dialect-8ChFj5EX.d.mts +113 -0
- package/dist/Dialect-CzVH38uo.mjs +165 -0
- package/dist/Dialect-CzVH38uo.mjs.map +1 -0
- package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
- package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
- package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
- package/dist/DublinCore-AnwqxRx6.mjs +137 -0
- package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
- package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
- package/dist/Engine-CYPB3g4h.d.mts +144 -0
- package/dist/Engine-DF8PN7g-.mjs +872 -0
- package/dist/Engine-DF8PN7g-.mjs.map +1 -0
- package/dist/Errors-CMdV1RhU.mjs +37 -0
- package/dist/Errors-CMdV1RhU.mjs.map +1 -0
- package/dist/Errors-u2bDjUeM.d.mts +30 -0
- package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
- package/dist/Evaluator-DOY2-guC.mjs +281 -0
- package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
- package/dist/Exif-CpqniYQd.d.mts +78 -0
- package/dist/Exif-DjkCfEB-.mjs +89 -0
- package/dist/Exif-DjkCfEB-.mjs.map +1 -0
- package/dist/Expression-BIMMvduQ.mjs +230 -0
- package/dist/Expression-BIMMvduQ.mjs.map +1 -0
- package/dist/Expression-W8A9cyX7.d.mts +89 -0
- package/dist/Extract-Bop85jES.mjs +220 -0
- package/dist/Extract-Bop85jES.mjs.map +1 -0
- package/dist/Extract-C_pCvuTC.d.mts +88 -0
- package/dist/Federation-BcNrozc1.d.mts +52 -0
- package/dist/Federation-CHScBkaK.mjs +130 -0
- package/dist/Federation-CHScBkaK.mjs.map +1 -0
- package/dist/Functions-AvjNcId_.mjs +1346 -0
- package/dist/Functions-AvjNcId_.mjs.map +1 -0
- package/dist/Functions-OQJZP-F6.d.mts +111 -0
- package/dist/Generator-C52mmq01.d.mts +50 -0
- package/dist/Generator-D3utCJC7.mjs +205 -0
- package/dist/Generator-D3utCJC7.mjs.map +1 -0
- package/dist/Grammar-CPlSxGH6.mjs +200 -0
- package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
- package/dist/Grammar-CRhnRoCu.d.mts +148 -0
- package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
- package/dist/Grammar-mQ8CgE1M.mjs +258 -0
- package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
- package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
- package/dist/GraphStore-DvbqwKy1.mjs +212 -0
- package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
- package/dist/Iri-BB8Ks-BF.d.mts +84 -0
- package/dist/Iri-Cr92gsQV.mjs +232 -0
- package/dist/Iri-Cr92gsQV.mjs.map +1 -0
- package/dist/Iri.d.mts +2 -0
- package/dist/Iri.mjs +1 -0
- package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
- package/dist/Isomorphism-DInKnWIy.mjs +390 -0
- package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
- package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
- package/dist/Isomorphism.d.mts +2 -0
- package/dist/Isomorphism.mjs +1 -0
- package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
- package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
- package/dist/JsonLd-DobFrQNa.d.mts +242 -0
- package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
- package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
- package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
- package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
- package/dist/LanguageTag.d.mts +2 -0
- package/dist/LanguageTag.mjs +1 -0
- package/dist/Lexical-Cg0JHrf6.mjs +243 -0
- package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
- package/dist/Lexical-D3zySYVS.d.mts +163 -0
- package/dist/Manifest-B6xf6mUc.mjs +148 -0
- package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
- package/dist/Manifest-DQUMRBFr.d.mts +98 -0
- package/dist/Mapping-BgG74x3U.d.mts +63 -0
- package/dist/Mapping-Dc1ZGirk.mjs +259 -0
- package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
- package/dist/Mcp-1DwTTKOK.mjs +48 -0
- package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
- package/dist/Mcp-d-pX9erx.d.mts +25 -0
- package/dist/Message-CK_DGQuu.mjs +95 -0
- package/dist/Message-CK_DGQuu.mjs.map +1 -0
- package/dist/Message-fIvTJSXM.d.mts +49 -0
- package/dist/Metadata-BbffwGDZ.mjs +445 -0
- package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
- package/dist/Metadata-CEt3yc1-.d.mts +901 -0
- package/dist/Metadata-D4HsQNXr.mjs +1273 -0
- package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
- package/dist/Metadata-nzS7QKRj.d.mts +350 -0
- package/dist/Model-DaMmxurZ.d.mts +293 -0
- package/dist/Model-DlPzRYhF.mjs +528 -0
- package/dist/Model-DlPzRYhF.mjs.map +1 -0
- package/dist/N3-BzyV-KIH.mjs +974 -0
- package/dist/N3-BzyV-KIH.mjs.map +1 -0
- package/dist/N3-DSLnonDn.d.mts +100 -0
- package/dist/NQuads-C1VBOJ3-.mjs +117 -0
- package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
- package/dist/NQuads-FjFZikFg.d.mts +76 -0
- package/dist/NTriples-D-kLSEAf.mjs +120 -0
- package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
- package/dist/NTriples-D34OspfW.d.mts +76 -0
- package/dist/Namespace-ClTUO_ya.d.mts +42 -0
- package/dist/Namespace-DHFIsORd.mjs +75 -0
- package/dist/Namespace-DHFIsORd.mjs.map +1 -0
- package/dist/Namespace.d.mts +2 -0
- package/dist/Namespace.mjs +1 -0
- package/dist/Namespaces-Bz85vpjW.mjs +235 -0
- package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
- package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
- package/dist/Optimizer-BWWQRQPY.mjs +168 -0
- package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
- package/dist/Optimizer-DUpUow6k.d.mts +26 -0
- package/dist/Options-BLBGL4HE.mjs +72 -0
- package/dist/Options-BLBGL4HE.mjs.map +1 -0
- package/dist/Options-BommQwP9.d.mts +127 -0
- package/dist/Packet-CA76wVX3.mjs +197 -0
- package/dist/Packet-CA76wVX3.mjs.map +1 -0
- package/dist/Packet-Cy5g6XuW.d.mts +130 -0
- package/dist/Parser-p1Gyr0QN.d.mts +85 -0
- package/dist/Parser-xARsOWXk.mjs +1317 -0
- package/dist/Parser-xARsOWXk.mjs.map +1 -0
- package/dist/Path-B20Yp8KE.mjs +284 -0
- package/dist/Path-B20Yp8KE.mjs.map +1 -0
- package/dist/Path-DRB8e-Zn.d.mts +181 -0
- package/dist/Pdf-B9RZn--8.d.mts +77 -0
- package/dist/Pdf-CKK6dkZn.mjs +89 -0
- package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
- package/dist/PdfA-CUjSuntT.d.mts +109 -0
- package/dist/PdfA-CleOhuL6.mjs +124 -0
- package/dist/PdfA-CleOhuL6.mjs.map +1 -0
- package/dist/Photoshop-CiHo80qV.mjs +233 -0
- package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
- package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
- package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
- package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
- package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
- package/dist/PrefixMap.d.mts +2 -0
- package/dist/PrefixMap.mjs +1 -0
- package/dist/Processor-CMmecFsb.mjs +198 -0
- package/dist/Processor-CMmecFsb.mjs.map +1 -0
- package/dist/Processor-FJPvO0CB.d.mts +435 -0
- package/dist/Protocol-BA7OkNgp.mjs +202 -0
- package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
- package/dist/Protocol-DlSoiIKB.d.mts +108 -0
- package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
- package/dist/Query-D9A6LOpP.mjs +364 -0
- package/dist/Query-D9A6LOpP.mjs.map +1 -0
- package/dist/Query-KqSkTYyG.d.mts +96 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
- package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
- package/dist/RdfJs-D6-49XB5.mjs +86 -0
- package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
- package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
- package/dist/RdfJs.d.mts +2 -0
- package/dist/RdfJs.mjs +1 -0
- package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
- package/dist/RdfJson-BNocgW4f.mjs +548 -0
- package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
- package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
- package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
- package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
- package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
- package/dist/Rdfs-CyY2wVHI.mjs +167 -0
- package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
- package/dist/Rdfs.d.mts +2 -0
- package/dist/Rdfs.mjs +1 -0
- package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
- package/dist/Reasoner-Cw90zrjv.mjs +798 -0
- package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
- package/dist/Reification-BmN4EfnM.d.mts +40 -0
- package/dist/Reification-dpqQvjDE.mjs +82 -0
- package/dist/Reification-dpqQvjDE.mjs.map +1 -0
- package/dist/Reification.d.mts +2 -0
- package/dist/Reification.mjs +1 -0
- package/dist/Report-XHs8htzK.mjs +121 -0
- package/dist/Report-XHs8htzK.mjs.map +1 -0
- package/dist/Report-hcXsc_19.d.mts +115 -0
- package/dist/Resource-B1cI8FyJ.d.mts +218 -0
- package/dist/Resource-sIEeNh15.mjs +374 -0
- package/dist/Resource-sIEeNh15.mjs.map +1 -0
- package/dist/Resource.d.mts +2 -0
- package/dist/Resource.mjs +1 -0
- package/dist/Results-BVNEC-Wt.d.mts +277 -0
- package/dist/Results-peJjGA2V.mjs +621 -0
- package/dist/Results-peJjGA2V.mjs.map +1 -0
- package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
- package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
- package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
- package/dist/SemAct-CDchtk49.d.mts +96 -0
- package/dist/SemAct-CmyT4yI8.mjs +118 -0
- package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
- package/dist/Serialization-DP9H5bYQ.mjs +514 -0
- package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
- package/dist/Serialization-Df8iVauT.d.mts +392 -0
- package/dist/Serialization.d.mts +2 -0
- package/dist/Serialization.mjs +1 -0
- package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
- package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
- package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
- package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
- package/dist/ShExC-Ctf-06CL.d.mts +67 -0
- package/dist/ShExC-DJbB19i3.mjs +1181 -0
- package/dist/ShExC-DJbB19i3.mjs.map +1 -0
- package/dist/ShExError-BeYFD9rv.d.mts +61 -0
- package/dist/ShExError-CVtq2NnM.mjs +64 -0
- package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
- package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
- package/dist/ShExJ-COiPd9Xw.mjs +532 -0
- package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
- package/dist/ShExR-ByR4mCh-.mjs +480 -0
- package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
- package/dist/ShExR-CqONNNBz.d.mts +40 -0
- package/dist/ShapeMap-C422pxKl.d.mts +140 -0
- package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
- package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
- package/dist/Shapes-18GjfyBV.mjs +597 -0
- package/dist/Shapes-18GjfyBV.mjs.map +1 -0
- package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
- package/dist/Sparql-BiYFMSpl.mjs +29 -0
- package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
- package/dist/Sparql-DecpWTPh.d.mts +97 -0
- package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
- package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
- package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
- package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
- package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
- package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
- package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
- package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
- package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
- package/dist/Store-D0jmVfb3.d.mts +166 -0
- package/dist/Store-DH3Ow1GO.mjs +162 -0
- package/dist/Store-DH3Ow1GO.mjs.map +1 -0
- package/dist/Structure-BjMo4Bkc.mjs +334 -0
- package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
- package/dist/Structure-n4CmDiab.d.mts +63 -0
- package/dist/Table-BGgm9nbM.mjs +538 -0
- package/dist/Table-BGgm9nbM.mjs.map +1 -0
- package/dist/Table-C3reiVrb.d.mts +261 -0
- package/dist/Term-B_4ezyXq.d.mts +619 -0
- package/dist/Term-CFLG1qu4.mjs +991 -0
- package/dist/Term-CFLG1qu4.mjs.map +1 -0
- package/dist/Term.d.mts +2 -0
- package/dist/Term.mjs +1 -0
- package/dist/TermCodec-CDZiEztW.mjs +397 -0
- package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
- package/dist/TermCodec-_03bDXr0.d.mts +209 -0
- package/dist/TermCodec.d.mts +2 -0
- package/dist/TermCodec.mjs +1 -0
- package/dist/TermJson-BOPe0yve.d.mts +232 -0
- package/dist/TermJson-FAg3lvjl.mjs +142 -0
- package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
- package/dist/TermJson.d.mts +2 -0
- package/dist/TermJson.mjs +1 -0
- package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
- package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
- package/dist/TermSchema-DBO6MroX.d.mts +6 -0
- package/dist/Testing-B-aPCpmu.mjs +63 -0
- package/dist/Testing-B-aPCpmu.mjs.map +1 -0
- package/dist/Testing-CF6s8P3O.d.mts +53 -0
- package/dist/Tiff-CR-2QeSI.d.mts +148 -0
- package/dist/Tiff-DlsOlZPM.mjs +169 -0
- package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
- package/dist/Tools-7MdRKccr.d.mts +583 -0
- package/dist/Tools-ryxphZbI.mjs +329 -0
- package/dist/Tools-ryxphZbI.mjs.map +1 -0
- package/dist/Translate-B0YKKANS.d.mts +37 -0
- package/dist/Translate-gzWPq0Ia.mjs +308 -0
- package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
- package/dist/Translation-DC9rLm2y.mjs +1535 -0
- package/dist/Translation-DC9rLm2y.mjs.map +1 -0
- package/dist/Translation-K4L9XBqX.d.mts +103 -0
- package/dist/TriG-BkqtqZ6Y.mjs +125 -0
- package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
- package/dist/TriG-xDjdDatp.d.mts +86 -0
- package/dist/Turtle-Bv1_bisW.d.mts +85 -0
- package/dist/Turtle-CZVUOtwl.mjs +133 -0
- package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
- package/dist/ValidationReport-DBdJshW5.mjs +285 -0
- package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
- package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
- package/dist/Validator-227ff9Rn.d.mts +179 -0
- package/dist/Validator-BzXMKDeJ.mjs +1162 -0
- package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
- package/dist/Validator-Dl8cih5V.d.mts +207 -0
- package/dist/Validator-DmUfMbpL.mjs +568 -0
- package/dist/Validator-DmUfMbpL.mjs.map +1 -0
- package/dist/Vocab-DceKywpq.mjs +168 -0
- package/dist/Vocab-DceKywpq.mjs.map +1 -0
- package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
- package/dist/Vocab-Do56UgBX.d.mts +81 -0
- package/dist/Vocab-TfpWG1Ne.mjs +118 -0
- package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
- package/dist/Vocab.d.mts +2 -0
- package/dist/Vocab.mjs +1 -0
- package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
- package/dist/Xml-B7iihYCS.mjs +976 -0
- package/dist/Xml-B7iihYCS.mjs.map +1 -0
- package/dist/Xml-CmfHS7SW.d.mts +267 -0
- package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
- package/dist/Xmp-DCGN9pOD.mjs +307 -0
- package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
- package/dist/XmpBasic-CP38jpR_.mjs +73 -0
- package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
- package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
- package/dist/XmpMM-BfL_TgJF.mjs +73 -0
- package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
- package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
- package/dist/XmpRights-BKPtoI5L.mjs +73 -0
- package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
- package/dist/XmpRights-CaALZQz2.d.mts +63 -0
- package/dist/Xsd-Cdgx5zRB.mjs +405 -0
- package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
- package/dist/Xsd-D2elNhSm.d.mts +187 -0
- package/dist/Xsd.d.mts +2 -0
- package/dist/Xsd.mjs +1 -0
- package/dist/accessors-CEjaojuQ.mjs +28 -0
- package/dist/accessors-CEjaojuQ.mjs.map +1 -0
- package/dist/codec-Lb2T96rv.d.mts +20 -0
- package/dist/codec-QNo7IdJF.mjs +389 -0
- package/dist/codec-QNo7IdJF.mjs.map +1 -0
- package/dist/csvw/Csv2Json.d.mts +2 -0
- package/dist/csvw/Csv2Json.mjs +1 -0
- package/dist/csvw/Csv2Rdf.d.mts +2 -0
- package/dist/csvw/Csv2Rdf.mjs +1 -0
- package/dist/csvw/Datatype.d.mts +2 -0
- package/dist/csvw/Datatype.mjs +1 -0
- package/dist/csvw/Metadata.d.mts +2 -0
- package/dist/csvw/Metadata.mjs +1 -0
- package/dist/csvw/Processor.d.mts +2 -0
- package/dist/csvw/Processor.mjs +1 -0
- package/dist/csvw/Report.d.mts +2 -0
- package/dist/csvw/Report.mjs +1 -0
- package/dist/csvw/Table.d.mts +2 -0
- package/dist/csvw/Table.mjs +1 -0
- package/dist/csvw/index.d.mts +8 -0
- package/dist/csvw/index.mjs +8 -0
- package/dist/index-Cms2TYfC.d.mts +16 -0
- package/dist/index-Ct8xFmRs.d.mts +7 -0
- package/dist/index-D4QFwOjm.d.mts +28 -0
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +17 -0
- package/dist/jsonld/DocumentLoader.d.mts +2 -0
- package/dist/jsonld/DocumentLoader.mjs +1 -0
- package/dist/jsonld/JsonLd.d.mts +2 -0
- package/dist/jsonld/JsonLd.mjs +1 -0
- package/dist/jsonld/JsonLdError.d.mts +2 -0
- package/dist/jsonld/JsonLdError.mjs +1 -0
- package/dist/jsonld/index.d.mts +4 -0
- package/dist/jsonld/index.mjs +4 -0
- package/dist/lists-D-OpQ0Ir.mjs +77 -0
- package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
- package/dist/loop-D5-gNx9K.mjs +21 -0
- package/dist/loop-D5-gNx9K.mjs.map +1 -0
- package/dist/loop-DZ2hXlr_.mjs +21 -0
- package/dist/loop-DZ2hXlr_.mjs.map +1 -0
- package/dist/n3/Isomorphism.d.mts +2 -0
- package/dist/n3/Isomorphism.mjs +1 -0
- package/dist/n3/Mapping.d.mts +2 -0
- package/dist/n3/Mapping.mjs +1 -0
- package/dist/n3/Model.d.mts +2 -0
- package/dist/n3/Model.mjs +1 -0
- package/dist/n3/N3.d.mts +2 -0
- package/dist/n3/N3.mjs +1 -0
- package/dist/n3/Reasoner.d.mts +2 -0
- package/dist/n3/Reasoner.mjs +2 -0
- package/dist/n3/Vocab.d.mts +2 -0
- package/dist/n3/Vocab.mjs +1 -0
- package/dist/n3/index.d.mts +7 -0
- package/dist/n3/index.mjs +7 -0
- package/dist/ntriples/Grammar.d.mts +2 -0
- package/dist/ntriples/Grammar.mjs +1 -0
- package/dist/ntriples/Lexical.d.mts +2 -0
- package/dist/ntriples/Lexical.mjs +1 -0
- package/dist/ntriples/NQuads.d.mts +2 -0
- package/dist/ntriples/NQuads.mjs +1 -0
- package/dist/ntriples/NTriples.d.mts +2 -0
- package/dist/ntriples/NTriples.mjs +1 -0
- package/dist/ntriples/index.d.mts +5 -0
- package/dist/ntriples/index.mjs +5 -0
- package/dist/rdfjson/RdfJson.d.mts +2 -0
- package/dist/rdfjson/RdfJson.mjs +1 -0
- package/dist/rdfjson/index.d.mts +2 -0
- package/dist/rdfjson/index.mjs +1 -0
- package/dist/rdfxml/RdfXml.d.mts +2 -0
- package/dist/rdfxml/RdfXml.mjs +1 -0
- package/dist/rdfxml/Xml.d.mts +2 -0
- package/dist/rdfxml/Xml.mjs +1 -0
- package/dist/rdfxml/index.d.mts +3 -0
- package/dist/rdfxml/index.mjs +3 -0
- package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
- package/dist/serialize-96KBvKaf.mjs +1463 -0
- package/dist/serialize-96KBvKaf.mjs.map +1 -0
- package/dist/serialize-DsoXdM6n.d.mts +37 -0
- package/dist/shacl/Message.d.mts +2 -0
- package/dist/shacl/Message.mjs +1 -0
- package/dist/shacl/Path.d.mts +2 -0
- package/dist/shacl/Path.mjs +1 -0
- package/dist/shacl/Shapes.d.mts +2 -0
- package/dist/shacl/Shapes.mjs +1 -0
- package/dist/shacl/Sparql.d.mts +2 -0
- package/dist/shacl/Sparql.mjs +1 -0
- package/dist/shacl/ValidationReport.d.mts +2 -0
- package/dist/shacl/ValidationReport.mjs +1 -0
- package/dist/shacl/Validator.d.mts +2 -0
- package/dist/shacl/Validator.mjs +1 -0
- package/dist/shacl/Vocabulary.d.mts +2 -0
- package/dist/shacl/Vocabulary.mjs +1 -0
- package/dist/shacl/index.d.mts +9 -0
- package/dist/shacl/index.mjs +8 -0
- package/dist/shex/SemAct.d.mts +2 -0
- package/dist/shex/SemAct.mjs +1 -0
- package/dist/shex/ShExC.d.mts +2 -0
- package/dist/shex/ShExC.mjs +1 -0
- package/dist/shex/ShExError.d.mts +2 -0
- package/dist/shex/ShExError.mjs +1 -0
- package/dist/shex/ShExJ.d.mts +2 -0
- package/dist/shex/ShExJ.mjs +2 -0
- package/dist/shex/ShExR.d.mts +2 -0
- package/dist/shex/ShExR.mjs +1 -0
- package/dist/shex/ShapeMap.d.mts +2 -0
- package/dist/shex/ShapeMap.mjs +1 -0
- package/dist/shex/Structure.d.mts +2 -0
- package/dist/shex/Structure.mjs +2 -0
- package/dist/shex/Validator.d.mts +2 -0
- package/dist/shex/Validator.mjs +4 -0
- package/dist/shex/index.d.mts +9 -0
- package/dist/shex/index.mjs +9 -0
- package/dist/sparql/Algebra.d.mts +2 -0
- package/dist/sparql/Algebra.mjs +1 -0
- package/dist/sparql/Ast.d.mts +2 -0
- package/dist/sparql/Ast.mjs +1 -0
- package/dist/sparql/Bindings.d.mts +2 -0
- package/dist/sparql/Bindings.mjs +1 -0
- package/dist/sparql/ClientErrors.d.mts +2 -0
- package/dist/sparql/ClientErrors.mjs +1 -0
- package/dist/sparql/ClientFormats.d.mts +2 -0
- package/dist/sparql/ClientFormats.mjs +1 -0
- package/dist/sparql/Engine.d.mts +2 -0
- package/dist/sparql/Engine.mjs +1 -0
- package/dist/sparql/Errors.d.mts +2 -0
- package/dist/sparql/Errors.mjs +1 -0
- package/dist/sparql/Expression.d.mts +2 -0
- package/dist/sparql/Expression.mjs +1 -0
- package/dist/sparql/Federation.d.mts +2 -0
- package/dist/sparql/Federation.mjs +1 -0
- package/dist/sparql/Functions.d.mts +2 -0
- package/dist/sparql/Functions.mjs +1 -0
- package/dist/sparql/Generator.d.mts +2 -0
- package/dist/sparql/Generator.mjs +1 -0
- package/dist/sparql/GraphStore.d.mts +2 -0
- package/dist/sparql/GraphStore.mjs +1 -0
- package/dist/sparql/Optimizer.d.mts +2 -0
- package/dist/sparql/Optimizer.mjs +1 -0
- package/dist/sparql/Options.d.mts +2 -0
- package/dist/sparql/Options.mjs +1 -0
- package/dist/sparql/Parser.d.mts +2 -0
- package/dist/sparql/Parser.mjs +1 -0
- package/dist/sparql/Protocol.d.mts +2 -0
- package/dist/sparql/Protocol.mjs +1 -0
- package/dist/sparql/ProtocolErrors.d.mts +2 -0
- package/dist/sparql/ProtocolErrors.mjs +1 -0
- package/dist/sparql/QueryBuilder.d.mts +2 -0
- package/dist/sparql/QueryBuilder.mjs +1 -0
- package/dist/sparql/Results.d.mts +2 -0
- package/dist/sparql/Results.mjs +1 -0
- package/dist/sparql/ResultsStream.d.mts +2 -0
- package/dist/sparql/ResultsStream.mjs +1 -0
- package/dist/sparql/ServerFormats.d.mts +2 -0
- package/dist/sparql/ServerFormats.mjs +1 -0
- package/dist/sparql/ServiceDescription.d.mts +2 -0
- package/dist/sparql/ServiceDescription.mjs +1 -0
- package/dist/sparql/SparqlClient.d.mts +2 -0
- package/dist/sparql/SparqlClient.mjs +1 -0
- package/dist/sparql/SparqlServer.d.mts +2 -0
- package/dist/sparql/SparqlServer.mjs +1 -0
- package/dist/sparql/Store.d.mts +2 -0
- package/dist/sparql/Store.mjs +1 -0
- package/dist/sparql/TermSchema.d.mts +3 -0
- package/dist/sparql/TermSchema.mjs +2 -0
- package/dist/sparql/Testing.d.mts +2 -0
- package/dist/sparql/Testing.mjs +1 -0
- package/dist/sparql/Translate.d.mts +2 -0
- package/dist/sparql/Translate.mjs +1 -0
- package/dist/sparql/ai/Mcp.d.mts +2 -0
- package/dist/sparql/ai/Mcp.mjs +1 -0
- package/dist/sparql/ai/Tools.d.mts +2 -0
- package/dist/sparql/ai/Tools.mjs +1 -0
- package/dist/sparql/ai/index.d.mts +3 -0
- package/dist/sparql/ai/index.mjs +3 -0
- package/dist/sparql/index.d.mts +30 -0
- package/dist/sparql/index.mjs +29 -0
- package/dist/sparql/shacl/Evaluator.d.mts +2 -0
- package/dist/sparql/shacl/Evaluator.mjs +1 -0
- package/dist/sparql/shacl/Query.d.mts +2 -0
- package/dist/sparql/shacl/Query.mjs +1 -0
- package/dist/sparql/shacl/index.d.mts +3 -0
- package/dist/sparql/shacl/index.mjs +3 -0
- package/dist/sparql/sql/Dialect.d.mts +2 -0
- package/dist/sparql/sql/Dialect.mjs +1 -0
- package/dist/sparql/sql/SqlStore.d.mts +2 -0
- package/dist/sparql/sql/SqlStore.mjs +1 -0
- package/dist/sparql/sql/Translation.d.mts +2 -0
- package/dist/sparql/sql/Translation.mjs +1 -0
- package/dist/sparql/sql/index.d.mts +4 -0
- package/dist/sparql/sql/index.mjs +4 -0
- package/dist/stringMap-D5YIpYtR.mjs +38 -0
- package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
- package/dist/tokens-C6BzeodQ.mjs +24 -0
- package/dist/tokens-C6BzeodQ.mjs.map +1 -0
- package/dist/turtle/Grammar.d.mts +3 -0
- package/dist/turtle/Grammar.mjs +3 -0
- package/dist/turtle/Manifest.d.mts +2 -0
- package/dist/turtle/Manifest.mjs +1 -0
- package/dist/turtle/TriG.d.mts +2 -0
- package/dist/turtle/TriG.mjs +1 -0
- package/dist/turtle/Turtle.d.mts +2 -0
- package/dist/turtle/Turtle.mjs +1 -0
- package/dist/turtle/index.d.mts +5 -0
- package/dist/turtle/index.mjs +5 -0
- package/dist/xmp/DublinCore.d.mts +2 -0
- package/dist/xmp/DublinCore.mjs +1 -0
- package/dist/xmp/Exif.d.mts +2 -0
- package/dist/xmp/Exif.mjs +1 -0
- package/dist/xmp/Extract.d.mts +2 -0
- package/dist/xmp/Extract.mjs +1 -0
- package/dist/xmp/Metadata.d.mts +2 -0
- package/dist/xmp/Metadata.mjs +1 -0
- package/dist/xmp/Namespaces.d.mts +2 -0
- package/dist/xmp/Namespaces.mjs +1 -0
- package/dist/xmp/Packet.d.mts +2 -0
- package/dist/xmp/Packet.mjs +1 -0
- package/dist/xmp/Pdf.d.mts +2 -0
- package/dist/xmp/Pdf.mjs +1 -0
- package/dist/xmp/PdfA.d.mts +2 -0
- package/dist/xmp/PdfA.mjs +1 -0
- package/dist/xmp/Photoshop.d.mts +2 -0
- package/dist/xmp/Photoshop.mjs +1 -0
- package/dist/xmp/Tiff.d.mts +2 -0
- package/dist/xmp/Tiff.mjs +1 -0
- package/dist/xmp/Xmp.d.mts +2 -0
- package/dist/xmp/Xmp.mjs +3 -0
- package/dist/xmp/XmpBasic.d.mts +2 -0
- package/dist/xmp/XmpBasic.mjs +1 -0
- package/dist/xmp/XmpMM.d.mts +2 -0
- package/dist/xmp/XmpMM.mjs +1 -0
- package/dist/xmp/XmpRights.d.mts +2 -0
- package/dist/xmp/XmpRights.mjs +1 -0
- package/dist/xmp/index.d.mts +15 -0
- package/dist/xmp/index.mjs +15 -0
- package/package.json +195 -3
- package/src/Dataset.ts +1085 -0
- package/src/Iri.ts +322 -0
- package/src/Isomorphism.ts +319 -0
- package/src/LanguageTag.ts +98 -0
- package/src/Namespace.ts +100 -0
- package/src/PrefixMap.ts +117 -0
- package/src/RdfJs.ts +146 -0
- package/src/Rdfs.ts +241 -0
- package/src/Reification.ts +103 -0
- package/src/Resource.ts +873 -0
- package/src/Serialization.ts +775 -0
- package/src/Term.ts +1300 -0
- package/src/TermCodec.ts +505 -0
- package/src/TermJson.ts +313 -0
- package/src/Vocab.ts +161 -0
- package/src/Xsd.ts +573 -0
- package/src/csvw/Csv2Json.ts +265 -0
- package/src/csvw/Csv2Rdf.ts +268 -0
- package/src/csvw/Datatype.ts +589 -0
- package/src/csvw/Metadata.ts +1523 -0
- package/src/csvw/Processor.ts +276 -0
- package/src/csvw/Report.ts +135 -0
- package/src/csvw/Table.ts +759 -0
- package/src/csvw/index.ts +22 -0
- package/src/csvw/internal/dateFormat.ts +202 -0
- package/src/csvw/internal/json.ts +104 -0
- package/src/csvw/internal/numberFormat.ts +369 -0
- package/src/csvw/internal/object.ts +23 -0
- package/src/csvw/internal/uriTemplate.ts +130 -0
- package/src/csvw/internal/url.ts +93 -0
- package/src/csvw/internal/vocab.ts +282 -0
- package/src/index.ts +40 -0
- package/src/internal/arbitrary.ts +148 -0
- package/src/internal/loop.ts +24 -0
- package/src/internal/pending.ts +20 -0
- package/src/internal/textDecoder.ts +183 -0
- package/src/jsonld/DocumentLoader.ts +512 -0
- package/src/jsonld/JsonLd.ts +847 -0
- package/src/jsonld/JsonLdError.ts +105 -0
- package/src/jsonld/index.ts +13 -0
- package/src/jsonld/internal/compact.ts +852 -0
- package/src/jsonld/internal/context.ts +781 -0
- package/src/jsonld/internal/expand.ts +614 -0
- package/src/jsonld/internal/flatten.ts +243 -0
- package/src/jsonld/internal/frame.ts +559 -0
- package/src/jsonld/internal/iri.ts +52 -0
- package/src/jsonld/internal/json.ts +19 -0
- package/src/jsonld/internal/linkHeader.ts +60 -0
- package/src/jsonld/internal/rdf.ts +481 -0
- package/src/jsonld/internal/util.ts +367 -0
- package/src/n3/Isomorphism.ts +476 -0
- package/src/n3/Mapping.ts +332 -0
- package/src/n3/Model.ts +696 -0
- package/src/n3/N3.ts +237 -0
- package/src/n3/Reasoner.ts +568 -0
- package/src/n3/Vocab.ts +111 -0
- package/src/n3/index.ts +21 -0
- package/src/n3/internal/builtins.ts +668 -0
- package/src/n3/internal/guards.ts +23 -0
- package/src/n3/internal/lists.ts +106 -0
- package/src/n3/internal/loop.ts +28 -0
- package/src/n3/internal/parser.ts +1032 -0
- package/src/n3/internal/writer.ts +344 -0
- package/src/ntriples/Grammar.ts +317 -0
- package/src/ntriples/Lexical.ts +321 -0
- package/src/ntriples/NQuads.ts +140 -0
- package/src/ntriples/NTriples.ts +143 -0
- package/src/ntriples/index.ts +14 -0
- package/src/ntriples/internal/codec.ts +229 -0
- package/src/ntriples/internal/lineParser.ts +326 -0
- package/src/ntriples/internal/loop.ts +14 -0
- package/src/rdfjson/RdfJson.ts +806 -0
- package/src/rdfjson/index.ts +9 -0
- package/src/rdfjson/internal/json.ts +19 -0
- package/src/rdfxml/RdfXml.ts +1408 -0
- package/src/rdfxml/Xml.ts +419 -0
- package/src/rdfxml/index.ts +11 -0
- package/src/rdfxml/internal/chars.ts +73 -0
- package/src/rdfxml/internal/loop.ts +24 -0
- package/src/rdfxml/internal/parser.ts +1265 -0
- package/src/shacl/Message.ts +102 -0
- package/src/shacl/Path.ts +483 -0
- package/src/shacl/Shapes.ts +913 -0
- package/src/shacl/Sparql.ts +128 -0
- package/src/shacl/ValidationReport.ts +438 -0
- package/src/shacl/Validator.ts +1156 -0
- package/src/shacl/Vocabulary.ts +180 -0
- package/src/shacl/index.ts +22 -0
- package/src/shacl/internal/compare.ts +128 -0
- package/src/shacl/internal/regex.ts +56 -0
- package/src/shex/SemAct.ts +197 -0
- package/src/shex/ShExC.ts +415 -0
- package/src/shex/ShExError.ts +71 -0
- package/src/shex/ShExJ.ts +893 -0
- package/src/shex/ShExR.ts +640 -0
- package/src/shex/ShapeMap.ts +385 -0
- package/src/shex/Structure.ts +467 -0
- package/src/shex/Validator.ts +395 -0
- package/src/shex/index.ts +24 -0
- package/src/shex/internal/engine.ts +682 -0
- package/src/shex/internal/iterate.ts +14 -0
- package/src/shex/internal/json.ts +12 -0
- package/src/shex/internal/lexer.ts +56 -0
- package/src/shex/internal/nodeConstraint.ts +368 -0
- package/src/shex/internal/shexcLexer.ts +387 -0
- package/src/shex/internal/shexcParser.ts +1312 -0
- package/src/shex/internal/tokens.ts +41 -0
- package/src/shex/internal/xpathRegex.ts +290 -0
- package/src/sparql/Algebra.ts +914 -0
- package/src/sparql/Ast.ts +1344 -0
- package/src/sparql/Bindings.ts +272 -0
- package/src/sparql/ClientErrors.ts +156 -0
- package/src/sparql/ClientFormats.ts +70 -0
- package/src/sparql/Engine.ts +699 -0
- package/src/sparql/Errors.ts +30 -0
- package/src/sparql/Expression.ts +360 -0
- package/src/sparql/Federation.ts +187 -0
- package/src/sparql/Functions.ts +689 -0
- package/src/sparql/Generator.ts +426 -0
- package/src/sparql/GraphStore.ts +341 -0
- package/src/sparql/Optimizer.ts +230 -0
- package/src/sparql/Options.ts +191 -0
- package/src/sparql/Parser.ts +173 -0
- package/src/sparql/Protocol.ts +342 -0
- package/src/sparql/ProtocolErrors.ts +113 -0
- package/src/sparql/QueryBuilder.ts +953 -0
- package/src/sparql/Results.ts +844 -0
- package/src/sparql/ResultsStream.ts +771 -0
- package/src/sparql/ServerFormats.ts +75 -0
- package/src/sparql/ServiceDescription.ts +130 -0
- package/src/sparql/SparqlClient.ts +947 -0
- package/src/sparql/SparqlServer.ts +528 -0
- package/src/sparql/Store.ts +311 -0
- package/src/sparql/TermSchema.ts +20 -0
- package/src/sparql/Testing.ts +114 -0
- package/src/sparql/Translate.ts +407 -0
- package/src/sparql/ai/Mcp.ts +43 -0
- package/src/sparql/ai/Tools.ts +481 -0
- package/src/sparql/ai/index.ts +11 -0
- package/src/sparql/index.ts +64 -0
- package/src/sparql/internal/evaluator.ts +947 -0
- package/src/sparql/internal/hash.ts +418 -0
- package/src/sparql/internal/json.ts +12 -0
- package/src/sparql/internal/lexer.ts +488 -0
- package/src/sparql/internal/loop.ts +24 -0
- package/src/sparql/internal/parser.ts +2215 -0
- package/src/sparql/internal/prefetch.ts +46 -0
- package/src/sparql/internal/stringMap.ts +39 -0
- package/src/sparql/internal/textResults.ts +226 -0
- package/src/sparql/internal/values.ts +550 -0
- package/src/sparql/shacl/Evaluator.ts +478 -0
- package/src/sparql/shacl/Query.ts +574 -0
- package/src/sparql/shacl/index.ts +12 -0
- package/src/sparql/sql/Dialect.ts +246 -0
- package/src/sparql/sql/SqlStore.ts +1080 -0
- package/src/sparql/sql/Translation.ts +1898 -0
- package/src/sparql/sql/index.ts +17 -0
- package/src/sparql/sql/internal/encoding.ts +313 -0
- package/src/turtle/Grammar.ts +286 -0
- package/src/turtle/Manifest.ts +215 -0
- package/src/turtle/TriG.ts +158 -0
- package/src/turtle/Turtle.ts +166 -0
- package/src/turtle/index.ts +14 -0
- package/src/turtle/internal/loop.ts +23 -0
- package/src/turtle/internal/parse.ts +112 -0
- package/src/turtle/internal/parser.ts +1303 -0
- package/src/turtle/internal/serialize.ts +79 -0
- package/src/turtle/internal/streamWriter.ts +128 -0
- package/src/turtle/internal/writer.ts +898 -0
- package/src/xmp/DublinCore.ts +147 -0
- package/src/xmp/Exif.ts +109 -0
- package/src/xmp/Extract.ts +351 -0
- package/src/xmp/Metadata.ts +703 -0
- package/src/xmp/Namespaces.ts +228 -0
- package/src/xmp/Packet.ts +297 -0
- package/src/xmp/Pdf.ts +99 -0
- package/src/xmp/PdfA.ts +280 -0
- package/src/xmp/Photoshop.ts +275 -0
- package/src/xmp/Tiff.ts +196 -0
- package/src/xmp/Xmp.ts +430 -0
- package/src/xmp/XmpBasic.ts +90 -0
- package/src/xmp/XmpMM.ts +82 -0
- package/src/xmp/XmpRights.ts +83 -0
- package/src/xmp/index.ts +36 -0
- package/src/xmp/internal/accessors.ts +72 -0
- package/src/xmp/internal/xml.ts +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Xml-B7iihYCS.mjs","names":["NAME_START","NAME_CHAR","isNCName","isName","isValidText","XML_NAMESPACE","XMLNS_NAMESPACE","isValidText","isName","isNCName","parse","normalizeInput","Chars.NAME_START","Chars.NAME_CHAR","Chars.isNCName","Chars.isName","Chars.isValidText","Internal.normalizeInput","Internal.parseText","Internal.Failure"],"sources":["../src/rdfxml/internal/chars.ts","../src/rdfxml/internal/loop.ts","../src/rdfxml/internal/parser.ts","../src/rdfxml/Xml.ts"],"sourcesContent":["/**\n * XML 1.0 character classes, as regular expressions (for the predicates) and\n * as `@thomasfosterau/effect-parse` token sets (for the grammar).\n *\n * @internal\n */\nimport * as Token from '@thomasfosterau/effect-parse/Token';\n\n/** @internal */\nexport const NAME_START =\n 'A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\u{10000}-\\\\u{EFFFF}';\n\n/** @internal */\nexport const NAME_CHAR = `${NAME_START}\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040`;\n\nconst NAME_RE = new RegExp(`^[:${NAME_START}][:${NAME_CHAR}]*$`, 'u');\nconst NCNAME_RE = new RegExp(`^[${NAME_START}][${NAME_CHAR}]*$`, 'u');\n\n/** @internal */\nexport const NMTOKEN_RE = new RegExp(`^[:${NAME_CHAR}]+$`, 'u');\n\n/** @internal */\nexport const INVALID_CHAR_RE = new RegExp(\n '[^\\\\t\\\\n\\\\r\\\\u0020-\\\\uD7FF\\\\uE000-\\\\uFFFD\\\\u{10000}-\\\\u{10FFFF}]',\n 'u',\n);\n\n/** @internal */\nexport const PUBID_RE = /^[ \\r\\na-zA-Z0-9\\-'()+,./:=?;!*#@$_%]*$/;\n\n/** @internal */\nexport const isNCName = (value: string): boolean => NCNAME_RE.test(value);\n\n/** @internal */\nexport const isName = (value: string): boolean => NAME_RE.test(value);\n\n/** @internal */\nexport const isValidText = (value: string): boolean => !INVALID_CHAR_RE.test(value);\n\n/** `NameStartChar`, without `:`. */\nconst nameStartSet: Token.StringTokenSet = [\n Token.range('A', 'Z'),\n '_',\n Token.range('a', 'z'),\n Token.range('À', 'Ö'),\n Token.range('Ø', 'ö'),\n Token.range('ø', '˿'),\n Token.range('Ͱ', 'ͽ'),\n Token.range('Ϳ', ''),\n Token.range('', ''),\n Token.range('⁰', ''),\n Token.range('Ⰰ', ''),\n Token.range('、', ''),\n Token.range('豈', '﷏'),\n Token.range('ﷰ', '�'),\n Token.range('\\u{10000}', '\\u{EFFFF}'),\n];\n\n/** `NameStartChar` (with `:`). */\nexport const nameStart: Token.StringTokenSet = [nameStartSet, ':'];\n\n/** `NameChar` (with `:`). */\nexport const nameChar: Token.StringTokenSet = [\n nameStart,\n '-.',\n Token.range('0', '9'),\n '·',\n Token.range('̀', 'ͯ'),\n Token.range('‿', '⁀'),\n];\n\n/** `S` */\nexport const space = ' \\t\\n\\r';\n","/**\n * A loop as a function, for the scans that step a cursor until a condition\n * holds (the line starts of a document, the canonical form of a long run of\n * nodes).\n *\n * @internal\n */\nimport * as Iterable from 'effect/Iterable';\n\nconst BLOCK = 1024;\n\n/** `0 … BLOCK - 1`: the steps of one block run as an array scan, which engines optimise well. */\nconst offsets: ReadonlyArray<number> = Array.from({ length: BLOCK }, (_, i) => i);\n\n/** The first step of each block after the first: `BLOCK, 2 * BLOCK, …`. */\nconst blocks: Iterable<number> = Iterable.makeBy((b) => (b + 1) * BLOCK);\n\n/** Calls `step` with 0, 1, 2, … until it returns `false`. */\nexport const loop = (step: (i: number) => boolean): void => {\n // Most loops end within the first block, which needs no iterator\n if (offsets.every((i) => step(i))) {\n Iterable.some(blocks, (base) => offsets.some((i) => !step(base + i)));\n }\n};\n","/**\n * The XML 1.0 parser behind `Xml.parse`: a compiled\n * `@thomasfosterau/effect-parse` grammar over the (line-end normalised)\n * input, building the document tree as it reads.\n *\n * Element content is read by one loop over start tags, end tags, text and\n * the other markup, with the open elements on an explicit stack, so deeply\n * nested documents cannot exhaust the call stack. Errors are thrown (as a\n * `Failure` at an offset) out of the grammar.\n *\n * The parser guards against hostile documents:\n *\n * - external entities and parameter entities are never loaded;\n * - the replacement text of entity references may add up to at most\n * `MAX_ENTITY_EXPANSION` characters (which defeats \"billion laughs\");\n * - entity references nest at most `MAX_ENTITY_DEPTH` deep, and elements at\n * most `MAX_ELEMENT_DEPTH` deep;\n * - the replacement text of an entity that contains markup is parsed with\n * the document's tables, not copies of them, so that many such entities\n * and references cost time in proportion to the text expanded.\n *\n * @internal\n */\nimport * as Compiler from '@thomasfosterau/effect-parse/Compiler';\nimport * as Parser from '@thomasfosterau/effect-parse/Parser';\nimport * as Token from '@thomasfosterau/effect-parse/Token';\nimport * as Arr from 'effect/Array';\nimport { constFalse } from 'effect/Function';\nimport * as HashSet from 'effect/HashSet';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Result from 'effect/Result';\nimport type * as Xml from '../Xml.ts';\nimport {\n INVALID_CHAR_RE,\n isName,\n isNCName,\n isValidText,\n nameChar,\n nameStart,\n NMTOKEN_RE,\n PUBID_RE,\n space,\n} from './chars.ts';\nimport { loop } from './loop.ts';\n\nconst XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nconst XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n\n/** The most replacement text that entity references may add to a document. */\nexport const MAX_ENTITY_EXPANSION = 1_000_000;\n\n/** How deeply entity references may nest. */\nexport const MAX_ENTITY_DEPTH = 64;\n\n/** How deeply elements may nest. */\nexport const MAX_ELEMENT_DEPTH = 1024;\n\n/** A well-formedness error at an offset, thrown out of the grammar. */\nexport class Failure {\n readonly message: string;\n readonly offset: number;\n /** Where in the document the error is: set by `parseText`, from `offset`. */\n position: Xml.Position;\n constructor(message: string, offset: number) {\n this.message = message;\n this.offset = offset;\n this.position = { offset, line: 0, column: 0 };\n }\n}\n\ntype P<A> = Parser.Parser<A>;\n\ninterface AttributeDefault {\n readonly name: string;\n readonly value: string;\n readonly tokenized: boolean;\n}\n\ninterface RawAttribute {\n readonly name: string;\n value: string;\n readonly offset: number;\n readonly defaulted: boolean;\n}\n\n/** An open element (or the content an entity's replacement text adds). */\ninterface Frame {\n readonly qname: string;\n /** Where its start tag is (found as it is read, when the last position found is near). */\n readonly position: Xml.Position;\n readonly prefix: string;\n readonly localName: string;\n readonly namespace: Option.Option<string>;\n readonly attributes: ReadonlyArray<Xml.Attribute>;\n readonly declarations: ReadonlyArray<Xml.NamespaceDeclaration>;\n readonly inScope: ReadonlyMap<string, string>;\n readonly children: Array<Xml.Node>;\n text: string;\n textStart: number;\n /** Whether the last of `children` is a text node (so `text` may merge into it). */\n endsWithText: boolean;\n /** How many children precede the last child taken by a `RootChildHook`: text never merges into them. */\n floor: number;\n}\n\n/** The replacement text of a predefined entity, or `''` if `entity` is not one. */\nconst predefined = (entity: string): string =>\n entity === 'lt'\n ? '<'\n : entity === 'gt'\n ? '>'\n : entity === 'amp'\n ? '&'\n : entity === 'apos'\n ? \"'\"\n : entity === 'quot'\n ? '\"'\n : '';\n\n/** The types (tokenized or not) and defaults an `<!ATTLIST>` declares for an element. */\ninterface AttributeList {\n readonly types: MutableHashMap.MutableHashMap<string, boolean>;\n readonly defaults: Array<AttributeDefault>;\n}\n\nconst baseFrame = (inScope: ReadonlyMap<string, string>): Frame => ({\n qname: '',\n position: { offset: 0, line: 0, column: 0 },\n prefix: '',\n localName: '',\n namespace: Option.none(),\n attributes: [],\n declarations: [],\n inScope,\n children: [],\n text: '',\n textStart: -1,\n endsWithText: false,\n floor: 0,\n});\n\n/** Whether `offset` is on line `l` (from 0) of the text whose line starts are `starts`. */\nconst onLine = (starts: ReadonlyArray<number>, l: number, offset: number): boolean =>\n (starts[l] ?? Infinity) <= offset && offset < (starts[l + 1] ?? Infinity);\n\n/** The line (from 0) of `offset` among lines `lo … hi` of the text whose line starts are `starts`. */\nconst lineIndex = (\n starts: ReadonlyArray<number>,\n offset: number,\n lo: number,\n hi: number,\n): number => {\n if (lo >= hi) return lo;\n const mid = (lo + hi + 1) >> 1;\n return (starts[mid] ?? 0) <= offset\n ? lineIndex(starts, offset, mid, hi)\n : lineIndex(starts, offset, lo, mid - 1);\n};\n\n/**\n * Receives each child element of the root as soon as it is closed, with the\n * root element as read so far (its `children` are those not taken). Returns\n * `true` to take the child, which is then left out of the document.\n *\n * @internal\n */\nexport type RootChildHook = (child: Xml.Element, root: Xml.Element) => boolean;\n\nconst keepChild: RootChildHook = () => false;\n\n/** Up to how many attributes a start tag's duplicates are found by searching its list. */\nconst SMALL = 16;\n\n/** Stands for the declarations of an `<!ATTLIST>` until one is read. */\nconst NO_ATTRIBUTE_LIST: AttributeList = { types: MutableHashMap.empty(), defaults: [] };\n\n/** Stands for the set of a start tag's expanded names while it has too few to need one. */\nconst UNUSED: MutableHashSet.MutableHashSet<string> = MutableHashSet.empty();\n\n/** The document being parsed. */\nclass Context {\n /** The text being parsed: the document, or an entity's replacement text. */\n src: string;\n lineStarts: ReadonlyArray<number>;\n readonly entities = MutableHashMap.empty<string, string>();\n readonly externalEntities = MutableHashSet.empty<string>();\n /** The `<!ATTLIST>` declarations, by element name. */\n readonly attributeLists = MutableHashMap.empty<string, AttributeList>();\n expanded = 0;\n hasExternalSubset = false;\n\n /** Takes a finished child of the root element instead of adding it to the root (`true`). */\n onRootChild: RootChildHook = keepChild;\n\n /** The frames of the open elements; those below `base` belong to enclosing text. */\n stack: Arr.NonEmptyArray<Frame>;\n base = 1;\n /** The entities whose replacement text is being parsed. */\n entityStack: HashSet.HashSet<string> = HashSet.empty();\n\n // The parts of the document\n version: Option.Option<string> = Option.none();\n encoding: Option.Option<string> = Option.none();\n standalone: Option.Option<boolean> = Option.none();\n doctype: Option.Option<Xml.DocumentType> = Option.none();\n readonly prolog: Array<Xml.Comment | Xml.ProcessingInstruction> = [];\n readonly epilog: Array<Xml.Comment | Xml.ProcessingInstruction> = [];\n root: Option.Option<Xml.Element> = Option.none();\n\n // Registers for the markup being read (none of it nests)\n tagStart = 0;\n qname = '';\n raw: Array<RawAttribute> = [];\n /** The qualified names read so far, split (`nameParts`). */\n readonly qnames = MutableHashMap.empty<string, readonly [prefix: string, local: string]>();\n /** The names in `namesOf`, once it is too long to search. */\n readonly names = MutableHashSet.empty<string>();\n /** The attributes whose names `names` holds (cleared and refilled for each long start tag). */\n namesOf: ReadonlyArray<RawAttribute> = [];\n /** The declarations of the `<!ATTLIST>` being read (set as each is begun). */\n attributeList: AttributeList = NO_ATTRIBUTE_LIST;\n attributeName = '';\n attributeType = '';\n tokenized = false;\n\n constructor(src: string, lineStarts: ReadonlyArray<number>) {\n this.src = src;\n this.lineStarts = lineStarts;\n // `inScopeNamespaces` is a public `ReadonlyMap`\n this.stack = [baseFrame(new Map())];\n }\n\n /** The line of the last position, where the next one usually is (offsets mostly increase). */\n private line = 0;\n\n position(offset: number): Xml.Position {\n const starts = this.lineStarts;\n // The last position's line, or the one after or before it (where the text before a tag\n // starts), before a binary search\n const line = this.line;\n const lo = onLine(starts, line, offset)\n ? line\n : onLine(starts, line + 1, offset)\n ? line + 1\n : line > 0 && onLine(starts, line - 1, offset)\n ? line - 1\n : lineIndex(starts, offset, 0, starts.length - 1);\n this.line = lo;\n return { offset, line: lo + 1, column: offset - (starts[lo] ?? 0) + 1 };\n }\n\n /** Whether the start tag being read has an attribute `name` (adding it if not). */\n hasAttribute(attribute: string): boolean {\n if (this.raw.length < SMALL) return this.raw.some((a) => a.name === attribute);\n const names = this.names;\n if (this.namesOf !== this.raw) {\n MutableHashSet.clear(names);\n this.raw.forEach((a) => MutableHashSet.add(names, a.name));\n this.namesOf = this.raw;\n }\n if (MutableHashSet.has(names, attribute)) return true;\n MutableHashSet.add(names, attribute);\n return false;\n }\n\n top(): Frame {\n return Arr.lastNonEmpty(this.stack);\n }\n}\n\nlet x = new Context('', [0]);\n\nconst fail: (message: string, offset: number) => never = (message, offset) => {\n throw new Failure(message, offset);\n};\n\n// -----------------------------------------------------------------------------\n// Helpers\n// -----------------------------------------------------------------------------\n\nconst lit = Token.literal;\n\n/** Runs `f` at the current offset, consuming nothing. */\nconst act = (f: (pos: number) => void): P<number> => Parser.tap(Parser.location, f);\n\n/** Throws `message` at the current offset. */\nconst failHere = <A = never>(message: string): P<A> =>\n Parser.map(Parser.location, (pos): A => fail(message, pos));\n\nconst at = (s: string): P<unknown> => Parser.peek(lit(s));\n\nconst ws: P<string> = Token.takeWhile(space);\nconst requireWs: P<unknown> = Parser.alt(\n Token.takeWhile(space, { min: 1 }),\n failHere('Expected white space'),\n);\n\n/** Fails unless white space was just read (`ws` may have read none). */\nconst afterWs: P<void> = Parser.make<void>((state) => {\n const c = state.input.charCodeAt(state.pos - 1);\n if (c !== 0x20 && c !== 0x09 && c !== 0x0a && c !== 0x0d) fail('Expected white space', state.pos);\n return undefined;\n});\n\nconst expect = (s: string): P<unknown> => Parser.alt(lit(s), failHere(`Expected \"${s}\"`));\n\nconst xmlName: P<string> = Parser.alt(\n Parser.taken(Parser.seq(Token.oneOf(nameStart), Token.takeWhile(nameChar))),\n failHere('Expected a name'),\n);\n\nconst eq: P<unknown> = Parser.seq(ws, expect('='), ws);\n\n/** A quoted string, without its quotes. */\nconst quoted: P<string> = Parser.alt(\n Parser.preceded(\n Parser.peek(Token.oneOf('\"\\'')),\n Parser.alt(\n Parser.delimited(lit('\"'), Token.takeTill('\"'), lit('\"')),\n Parser.delimited(lit(\"'\"), Token.takeTill(\"'\"), lit(\"'\")),\n failHere('Unterminated quoted string'),\n ),\n ),\n failHere('Expected a quoted string'),\n);\n\n/** `p`, then `check` with its value and the offset after it. */\nconst checked = <A>(p: P<A>, check: (a: A, pos: number) => void): P<A> =>\n Parser.seq(p, Parser.location).pipe(\n Parser.tap(([a, pos]) => check(a, pos)),\n Parser.map(([a]) => a),\n );\n\nconst collapse = (value: string): string => value.replace(/ +/g, ' ').replace(/^ | $/g, '');\n\nconst CHAR_REF_RE = /^#(x[0-9a-fA-F]+|[0-9]+)$/;\n\n// -----------------------------------------------------------------------------\n// References\n// -----------------------------------------------------------------------------\n\nconst charRef = (body: string, offset: number): string => {\n const code = body.startsWith('#x') ? parseInt(body.slice(2), 16) : parseInt(body.slice(1), 10);\n if (!(code <= 0x10ffff)) fail('Invalid character reference', offset);\n const ch = String.fromCodePoint(code);\n if (!isValidText(ch)) fail('Character reference to an invalid character', offset);\n return ch;\n};\n\n/** Expands the character references in an entity value, leaving entity references. */\nconst expandCharRefs = (raw: string, offset: number): string =>\n // `body` is unset only when the bare `&` (the only one-character match) was matched\n raw.replace(/&(#x[0-9a-fA-F]+|#[0-9]+|[^;]*);|&/g, (m: string, body: string, i: number) => {\n if (m.length === 1) fail('Invalid reference', offset + i);\n if (body.startsWith('#')) return charRef(body, offset + i);\n if (!isName(body)) fail('Invalid entity reference', offset + i);\n return m;\n });\n\n/** The replacement text of a reference to `entity`, counted against the expansion limit. */\nconst entityText = (entity: string, offset: number, stack: HashSet.HashSet<string>): string => {\n if (!isName(entity)) fail('Invalid entity reference', offset);\n const builtIn = predefined(entity);\n if (builtIn !== '') return builtIn === '<' ? '<' : builtIn === '&' ? '&' : builtIn;\n if (MutableHashSet.has(x.externalEntities, entity)) {\n fail(`External entity \"${entity}\" is not supported`, offset);\n }\n const value = Option.getOrElse(MutableHashMap.get(x.entities, entity), () =>\n fail(`Undefined entity \"${entity}\"`, offset),\n );\n if (HashSet.has(stack, entity)) fail(`Recursive entity \"${entity}\"`, offset);\n if (HashSet.size(stack) >= MAX_ENTITY_DEPTH) {\n fail('Entity references are nested too deeply', offset);\n }\n x.expanded += value.length;\n if (x.expanded > MAX_ENTITY_EXPANSION) fail('Entity expansion limit exceeded', offset);\n return value;\n};\n\n/**\n * What attribute-value normalisation replaces: a reference (to the first `;`\n * after its `&`), an `&` with no `;` after it, `<`, and white space other\n * than a space. The matches are found before any is replaced, so the nested\n * normalisation of an entity's replacement text may reuse it.\n */\nconst ATTRIBUTE_SPECIAL_RE = /&([^;]*);|[&<\\t\\n\\r]/g;\nconst ATTRIBUTE_SPECIAL_TEST_RE = /[&<\\t\\n\\r]/;\n\n/** Normalises an attribute value (XML 1.0 §3.3.3). */\nconst normalizeAttribute = (raw: string, offset: number, stack: HashSet.HashSet<string>): string =>\n !ATTRIBUTE_SPECIAL_TEST_RE.test(raw)\n ? raw\n : // `body` is set for every match longer than one character (a reference)\n raw.replace(ATTRIBUTE_SPECIAL_RE, (m: string, body: string, i: number): string => {\n if (m === '<') return fail('\"<\" is not allowed in attribute values', offset + i);\n if (m === '&') return fail('Unterminated reference', offset + i);\n if (m.length === 1) return ' ';\n if (body.startsWith('#')) {\n if (!CHAR_REF_RE.test(body)) fail('Invalid character reference', offset + i);\n return charRef(body, offset + i);\n }\n const replacement = entityText(body, offset + i, stack);\n return normalizeAttribute(replacement, offset + i, HashSet.add(stack, body));\n });\n\n/** An attribute value literal, normalised. */\nconst attributeValue: P<string> = Parser.alt(\n Parser.preceded(\n Parser.peek(Token.oneOf('\"\\'')),\n Parser.alt(\n Parser.seq(Parser.location, Parser.delimited(lit('\"'), Token.takeTill('\"'), lit('\"'))),\n Parser.seq(Parser.location, Parser.delimited(lit(\"'\"), Token.takeTill(\"'\"), lit(\"'\"))),\n failHere<readonly [number, string]>('Unterminated attribute value'),\n ),\n ),\n failHere<readonly [number, string]>('Expected a quoted attribute value'),\n).pipe(Parser.map(([quote, raw]) => normalizeAttribute(raw, quote + 1, HashSet.empty())));\n\n// -----------------------------------------------------------------------------\n// Comments and processing instructions\n// -----------------------------------------------------------------------------\n\nconst comment: P<Xml.Comment> = Parser.terminated(\n Parser.seq(\n Parser.location,\n Parser.preceded(lit('<!--'), Parser.opt(Token.takeUntil('--'))),\n Parser.location,\n ).pipe(\n Parser.map(([start, body, end]): Xml.Comment => {\n const value = Option.getOrElse(body, () => fail('Unterminated comment', start));\n if (x.src.charCodeAt(end + 2) !== 0x3e) fail('\"--\" is not allowed in comments', end);\n return { _tag: 'Comment', value, position: x.position(start) };\n }),\n ),\n lit('-->'),\n);\n\nconst pi: P<Xml.ProcessingInstruction> = Parser.terminated(\n Parser.seq(\n Parser.location,\n Parser.preceded(\n lit('<?'),\n checked(xmlName, (target, pos) => {\n if (target.toLowerCase() === 'xml')\n fail('Reserved processing instruction target', pos - target.length - 2);\n if (target.includes(':')) fail('Processing instruction targets cannot contain \":\"', pos);\n }),\n ),\n Parser.alt(\n Parser.preceded(at('?>'), Parser.succeed(Option.some(''))),\n Parser.preceded(requireWs, Parser.opt(Token.takeUntil('?>'))),\n ),\n ).pipe(\n Parser.map(([start, target, data]): Xml.ProcessingInstruction => ({\n _tag: 'ProcessingInstruction',\n target,\n data: Option.getOrElse(data, () => fail('Unterminated processing instruction', start)),\n position: x.position(start),\n })),\n ),\n lit('?>'),\n);\n\n// -----------------------------------------------------------------------------\n// The document type declaration\n// -----------------------------------------------------------------------------\n\n/** `ExternalID`: `[publicId, systemId]`. */\nconst externalId: P<readonly [Option.Option<string>, Option.Option<string>]> = Parser.alt(\n Parser.preceded(Parser.seq(lit('SYSTEM'), requireWs), quoted).pipe(\n Parser.map((system) => [Option.none(), Option.some(system)] as const),\n ),\n Parser.preceded(\n Parser.seq(expect('PUBLIC'), requireWs),\n Parser.seq(\n checked(quoted, (pub, pos) => {\n if (!PUBID_RE.test(pub)) fail('Invalid public identifier', pos);\n }),\n Parser.preceded(Parser.seq(ws, afterWs), quoted),\n ).pipe(Parser.map(([pub, system]) => [Option.some(pub), Option.some(system)] as const)),\n ),\n);\n\nconst skipParens: P<unknown> = Parser.preceded(\n expect('('),\n Parser.seq(Parser.location, Token.takeTill(')'), Parser.opt(lit(')'))).pipe(\n Parser.tap(([pos, tokens, close]) => {\n if (Option.isNone(close)) fail('Unterminated enumeration', pos);\n if (tokens.split('|').some((t) => !NMTOKEN_RE.test(t.trim()))) {\n fail('Invalid enumeration', pos);\n }\n }),\n ),\n);\n\nconst TOKENIZED_TYPES: HashSet.HashSet<string> = HashSet.make(\n 'ID',\n 'IDREF',\n 'IDREFS',\n 'ENTITY',\n 'ENTITIES',\n 'NMTOKEN',\n 'NMTOKENS',\n);\n\nconst defaultDecl: P<Option.Option<string>> = Parser.alt(\n Parser.preceded(lit('#REQUIRED'), Parser.succeed(Option.none<string>())),\n Parser.preceded(lit('#IMPLIED'), Parser.succeed(Option.none<string>())),\n Parser.preceded(\n Parser.opt(Parser.seq(lit('#FIXED'), requireWs)),\n Parser.map(attributeValue, Option.some),\n ),\n);\n\nconst notation: P<void> = Parser.make<void>((state) =>\n x.attributeType === 'NOTATION' ? undefined : state.backtrack('Verify', ['NOTATION']),\n);\n\nconst attributeDef: P<unknown> = Parser.seq(\n Parser.tap(xmlName, (n) => {\n x.attributeName = n;\n x.tokenized = true;\n }),\n requireWs,\n Parser.alt(\n Parser.preceded(at('('), skipParens),\n Parser.seq(\n checked(xmlName, (type, pos) => {\n x.attributeType = type;\n if (type === 'CDATA') x.tokenized = false;\n else if (type !== 'NOTATION' && !HashSet.has(TOKENIZED_TYPES, type)) {\n fail(`Unknown attribute type \"${type}\"`, pos);\n }\n }),\n Parser.opt(Parser.preceded(notation, Parser.seq(requireWs, skipParens))),\n ),\n ),\n requireWs,\n defaultDecl,\n).pipe(\n Parser.tap(([, , , , defaultValue]) => {\n const { types, defaults } = x.attributeList;\n const attribute = x.attributeName;\n if (MutableHashMap.has(types, attribute)) return; // first wins\n const tokenized = x.tokenized;\n MutableHashMap.set(types, attribute, tokenized);\n if (Option.isSome(defaultValue)) {\n const value = defaultValue.value;\n defaults.push({ name: attribute, value: tokenized ? collapse(value) : value, tokenized });\n }\n }),\n);\n\nconst attlistDecl: P<unknown> = Parser.preceded(\n Parser.seq(lit('<!ATTLIST'), requireWs),\n Parser.seq(\n Parser.tap(xmlName, (element) => {\n const known = MutableHashMap.get(x.attributeLists, element);\n if (Option.isSome(known)) x.attributeList = known.value;\n else {\n const list: AttributeList = { types: MutableHashMap.empty(), defaults: [] };\n MutableHashMap.set(x.attributeLists, element, list);\n x.attributeList = list;\n }\n }),\n Parser.repeat(Parser.preceded(Parser.seq(ws, Parser.not(lit('>')), afterWs), attributeDef)),\n ws,\n lit('>'),\n ),\n);\n\nconst entityDecl: P<unknown> = Parser.preceded(\n Parser.seq(lit('<!ENTITY'), requireWs),\n Parser.seq(\n Parser.alt(\n Parser.preceded(Parser.seq(lit('%'), requireWs), Parser.succeed(true)),\n Parser.succeed(false),\n ),\n checked(xmlName, (n, pos) => {\n if (n.includes(':')) fail('Entity names cannot contain \":\"', pos);\n }),\n requireWs,\n Parser.alt(\n Parser.preceded(\n Parser.peek(Token.oneOf('\"\\'')),\n Parser.seq(Parser.location, quoted).pipe(\n Parser.map(([quote, raw]) => {\n if (raw.includes('%')) fail('Parameter entity references are not supported', quote + 1);\n return Option.some(expandCharRefs(raw, quote + 1));\n }),\n ),\n ),\n Parser.preceded(\n externalId,\n Parser.opt(\n Parser.preceded(\n Parser.seq(Token.takeWhile(space, { min: 1 }), lit('NDATA')),\n Parser.seq(requireWs, xmlName),\n ),\n ),\n ).pipe(Parser.as(Option.none<string>())),\n ),\n ws,\n expect('>'),\n ),\n).pipe(\n Parser.tap(([parameter, entity, , value]) => {\n if (parameter) return;\n if (MutableHashMap.has(x.entities, entity) || MutableHashSet.has(x.externalEntities, entity)) {\n return; // first wins\n }\n if (Option.isSome(value)) MutableHashMap.set(x.entities, entity, value.value);\n else MutableHashSet.add(x.externalEntities, entity);\n }),\n);\n\n/** `<!ELEMENT …>` and `<!NOTATION …>`, skipped. */\nconst skippedDecl: P<unknown> = Parser.seq(\n Parser.repeat(\n Parser.alt(\n Parser.preceded(Parser.peek(Token.oneOf('\"\\'')), quoted),\n Token.takeTill('>\"\\'', { min: 1 }),\n ),\n ),\n Parser.alt(lit('>'), failHere('Unterminated markup declaration')),\n);\n\nconst internalSubset: P<unknown> = Parser.terminated(\n Parser.repeat(\n Parser.preceded(\n Parser.seq(ws, Parser.not(lit(']'))),\n Parser.alt(\n Parser.preceded(Parser.eof, failHere('Unterminated internal subset')),\n Parser.preceded(at('<!ENTITY'), entityDecl),\n Parser.preceded(at('<!ATTLIST'), attlistDecl),\n Parser.preceded(Parser.alt(at('<!ELEMENT'), at('<!NOTATION')), skippedDecl),\n Parser.preceded(at('<!--'), comment),\n Parser.preceded(at('<?'), pi),\n Parser.preceded(at('%'), failHere('Parameter entity references are not supported')),\n failHere('Invalid markup in the internal subset'),\n ),\n ),\n ),\n Parser.seq(ws, lit(']')),\n);\n\nconst doctype: P<unknown> = Parser.seq(\n Parser.preceded(Parser.seq(lit('<!DOCTYPE'), requireWs), xmlName),\n Parser.alt(\n Parser.preceded(\n Parser.seq(ws, Parser.peek(Parser.alt(lit('SYSTEM'), lit('PUBLIC'))), afterWs),\n Parser.terminated(externalId, ws),\n ).pipe(\n Parser.tap(() => {\n x.hasExternalSubset = true;\n }),\n ),\n Parser.preceded(ws, Parser.succeed([Option.none<string>(), Option.none<string>()] as const)),\n ),\n Parser.opt(Parser.preceded(lit('['), Parser.terminated(internalSubset, ws))),\n expect('>'),\n).pipe(\n Parser.tap(([doctypeName, [publicId, systemId]]) => {\n x.doctype = Option.some({\n name: doctypeName,\n publicId: Option.getOrUndefined(publicId),\n systemId: Option.getOrUndefined(systemId),\n // `DocumentType.entities` is a public `ReadonlyMap`\n entities: new Map(x.entities),\n });\n }),\n);\n\n// -----------------------------------------------------------------------------\n// Elements\n// -----------------------------------------------------------------------------\n\nconst pushText = (frame: Frame, s: string, offset: number): void => {\n if (s === '') return;\n if (frame.textStart === -1) frame.textStart = offset;\n frame.text += s;\n};\n\nconst isText = Predicate.isTagged('Text');\n\nconst flush = (frame: Frame): void => {\n if (frame.text !== '') {\n const children = frame.children;\n const prev = frame.endsWithText && children.length > frame.floor ? children.at(-1) : undefined;\n if (isText(prev)) {\n children[children.length - 1] = { ...prev, value: prev.value + frame.text };\n } else {\n children.push({ _tag: 'Text', value: frame.text, position: x.position(frame.textStart) });\n frame.endsWithText = true;\n }\n }\n frame.text = '';\n frame.textStart = -1;\n};\n\n/** Adds a child that is not text to `frame`, after its text. */\nconst pushChild = (frame: Frame, node: Xml.Node): void => {\n flush(frame);\n frame.children.push(node);\n frame.endsWithText = false;\n};\n\n/** A child that is not text. */\nconst pushNode = (node: Xml.Node): void => {\n pushChild(x.top(), node);\n};\n\n/**\n * The prefix (`''` if none) and local part of a valid qualified name. The\n * names of a document repeat, so each is checked and split once, and its\n * parts are the same strings each time.\n */\nconst splitName = (qname: string, offset: number): readonly [prefix: string, local: string] => {\n const i = qname.indexOf(':');\n if (i === -1) {\n if (!isNCName(qname)) fail(`Invalid name \"${qname}\"`, offset);\n return ['', qname];\n }\n const prefix = qname.slice(0, i);\n const local = qname.slice(i + 1);\n if (!isNCName(prefix) || !isNCName(local)) fail(`Invalid qualified name \"${qname}\"`, offset);\n if (prefix === 'xmlns') fail('Elements and attributes cannot use the \"xmlns\" prefix', offset);\n return [prefix, local];\n};\n\nconst nameParts = (qname: string, offset: number): readonly [prefix: string, local: string] => {\n const known = MutableHashMap.get(x.qnames, qname);\n if (Option.isSome(known)) return known.value;\n const parts = splitName(qname, offset);\n MutableHashMap.set(x.qnames, qname, parts);\n return parts;\n};\n\nconst XML_NAMESPACE_OPTION = Option.some(XML_NAMESPACE);\n\n/** The namespace of a name with `prefix` (an element's default namespace if `''`). */\nconst namespaceOf = (\n prefix: string,\n ns: ReadonlyMap<string, string>,\n isElement: boolean,\n offset: number,\n): Option.Option<string> => {\n if (prefix === '') return isElement ? Option.fromUndefinedOr(ns.get('')) : Option.none();\n if (prefix === 'xml') return XML_NAMESPACE_OPTION;\n const uri = ns.get(prefix);\n if (uri === undefined) fail(`Unbound namespace prefix \"${prefix}\"`, offset);\n return Option.some(uri);\n};\n\n/** The namespace prefix an `xmlns` / `xmlns:…` attribute declares, or none for any other attribute. */\nconst declaredPrefix = (attribute: string): Option.Option<string> =>\n attribute === 'xmlns'\n ? Option.some('')\n : attribute.startsWith('xmlns:')\n ? Option.some(attribute.slice(6))\n : Option.none();\n\nconst isDeclaration = (attribute: string): boolean =>\n attribute === 'xmlns' || attribute.startsWith('xmlns:');\n\n/** The namespaces in scope of an element that makes `declarations` (which are not empty). */\nconst declare = (\n parentNs: ReadonlyMap<string, string>,\n declarations: ReadonlyArray<Xml.NamespaceDeclaration>,\n): ReadonlyMap<string, string> => {\n // `inScopeNamespaces` is a public `ReadonlyMap`\n const own = new Map(parentNs);\n declarations.forEach((d) => {\n if (d.namespace === '') own.delete('');\n else own.set(d.prefix, d.namespace);\n });\n return own;\n};\n\n/** Checks a namespace declaration, which declares `prefix` to be `uri`. */\nconst checkDeclaration = (prefix: string, uri: string, offset: number): void => {\n if (prefix !== '' && !isNCName(prefix)) fail('Invalid namespace prefix', offset);\n if (prefix === 'xmlns') fail('The \"xmlns\" prefix cannot be declared', offset);\n if (prefix === 'xml' && uri !== XML_NAMESPACE) fail('The \"xml\" prefix cannot be rebound', offset);\n if (prefix !== 'xml' && uri === XML_NAMESPACE) {\n fail('The XML namespace cannot be bound to another prefix', offset);\n }\n if (uri === XMLNS_NAMESPACE) fail('The xmlns namespace cannot be declared', offset);\n if (prefix !== '' && uri === '') fail('Prefixed namespace declarations cannot be empty', offset);\n};\n\n/** Opens the element whose start tag was just read (closing it too if it was empty). */\nconst openElement = (empty: boolean): void => {\n const start = x.tagStart;\n const qname = x.qname;\n const raw = x.raw;\n // attribute types and defaults from the internal subset\n if (!MutableHashMap.isEmpty(x.attributeLists)) {\n const list = MutableHashMap.get(x.attributeLists, qname);\n if (Option.isSome(list)) {\n const { types, defaults } = list.value;\n raw.forEach((a) => {\n if (Option.getOrElse(MutableHashMap.get(types, a.name), constFalse)) {\n a.value = collapse(a.value);\n }\n });\n defaults.forEach((d) => {\n if (!x.hasAttribute(d.name)) {\n raw.push({ name: d.name, value: d.value, offset: start, defaulted: true });\n }\n });\n }\n }\n\n // namespace declarations\n const parent = x.top();\n const parentNs = parent.inScope;\n const declarations: Array<Xml.NamespaceDeclaration> = [];\n raw.forEach((a) => {\n const declared = declaredPrefix(a.name);\n if (Option.isNone(declared)) return;\n const prefix = declared.value;\n checkDeclaration(prefix, a.value, a.offset);\n if (prefix !== 'xml') declarations.push({ prefix, namespace: a.value });\n });\n const inScope = Arr.isArrayNonEmpty(declarations) ? declare(parentNs, declarations) : parentNs;\n\n const [prefix, localName] = nameParts(qname, start + 1);\n const namespace = namespaceOf(prefix, inScope, true, start + 1);\n const attributes: Array<Xml.Attribute> = [];\n const large = raw.length >= SMALL;\n const expanded = large ? MutableHashSet.empty<string>() : UNUSED;\n raw.forEach((a) => {\n if (isDeclaration(a.name)) return;\n const [ap, al] = nameParts(a.name, a.offset);\n const ans = Option.getOrUndefined(namespaceOf(ap, inScope, false, a.offset));\n const key = `${ans ?? ''} ${al}`;\n const duplicate = large\n ? MutableHashSet.has(expanded, key)\n : attributes.some((b) => b.localName === al && b.namespace === ans);\n if (duplicate) fail(`Duplicate attribute \"{${ans ?? ''}}${al}\"`, a.offset);\n if (large) MutableHashSet.add(expanded, key);\n attributes.push({\n _tag: 'Attribute',\n name: a.name,\n prefix: ap,\n localName: al,\n namespace: ans,\n value: a.value,\n defaulted: a.defaulted,\n position: x.position(a.offset),\n });\n });\n\n flush(parent);\n const frame: Frame = {\n qname,\n position: x.position(start),\n prefix,\n localName,\n namespace,\n attributes,\n declarations,\n inScope,\n children: [],\n text: '',\n textStart: -1,\n endsWithText: false,\n floor: 0,\n };\n if (empty) {\n closeElement(frame);\n return;\n }\n if (x.stack.length - x.base >= MAX_ELEMENT_DEPTH) fail('Elements are nested too deeply', start);\n x.stack.push(frame);\n};\n\n/** The element an open frame stands for (with the children it has so far). */\nconst elementOf = (frame: Frame): Xml.Element => ({\n _tag: 'Element',\n name: frame.qname,\n prefix: frame.prefix,\n localName: frame.localName,\n namespace: Option.getOrUndefined(frame.namespace),\n attributes: frame.attributes,\n namespaceDeclarations: frame.declarations,\n inScopeNamespaces: frame.inScope,\n children: frame.children,\n position: frame.position,\n});\n\n/** Adds a finished element to its parent. */\nconst closeElement = (frame: Frame): void => {\n flush(frame);\n const element = elementOf(frame);\n const inDocument = HashSet.isEmpty(x.entityStack);\n // The document element (not one in an entity's replacement text) is the root\n if (x.stack.length === 1 && inDocument) {\n x.root = Option.some(element);\n return;\n }\n // A child of the root (not inside an entity's replacement text) may be taken as it closes\n if (x.stack.length === 2 && inDocument && x.onRootChild(element, elementOf(x.top()))) {\n const root = x.top();\n root.floor = root.children.length;\n return;\n }\n pushChild(x.top(), element);\n};\n\nconst attribute: P<unknown> = Parser.seq(Parser.location, xmlName, eq, attributeValue).pipe(\n Parser.tap(([offset, attributeName, , value]) => {\n if (x.hasAttribute(attributeName)) fail(`Duplicate attribute \"${attributeName}\"`, offset);\n x.raw.push({ name: attributeName, value, offset, defaulted: false });\n }),\n);\n\nconst startTag: P<unknown> = Parser.seq(\n Parser.tap(Parser.seq(Parser.location, Parser.preceded(lit('<'), xmlName)), ([start, qname]) => {\n x.tagStart = start;\n x.qname = qname;\n x.raw = [];\n }),\n Parser.repeat(\n Parser.preceded(\n Parser.seq(ws, Parser.not(Parser.alt(lit('>'), lit('/>')))),\n Parser.preceded(\n Parser.make<void>((state) => {\n const c = state.input.charCodeAt(state.pos - 1);\n if (c !== 0x20 && c !== 0x09 && c !== 0x0a && c !== 0x0d) {\n fail('Expected white space between attributes', state.pos);\n }\n return undefined;\n }),\n attribute,\n ),\n ),\n ),\n Parser.preceded(\n ws,\n Parser.alt(\n Parser.tap(lit('/>'), () => openElement(true)),\n Parser.tap(lit('>'), () => openElement(false)),\n ),\n ),\n);\n\nconst endTag: P<unknown> = Parser.seq(\n Parser.seq(\n act((offset) => {\n if (x.stack.length === x.base) fail('Unbalanced end tag in entity replacement text', offset);\n }),\n Parser.preceded(lit('</'), xmlName),\n ).pipe(\n Parser.tap(([offset, endName]) => {\n const frame = x.top();\n if (endName !== frame.qname) {\n fail(`Mismatched end tag: expected </${frame.qname}> but found </${endName}>`, offset);\n }\n }),\n ),\n ws,\n expect('>'),\n).pipe(\n Parser.tap(() => {\n const frame = x.top();\n x.stack.pop();\n closeElement(frame);\n }),\n);\n\nconst cdata: P<unknown> = Parser.seq(\n Parser.location,\n Parser.preceded(\n lit('<![CDATA['),\n Parser.opt(Parser.terminated(Token.takeUntil(']]>'), lit(']]>'))),\n ),\n).pipe(\n Parser.tap(([start, text]) => {\n pushText(\n x.top(),\n Option.getOrElse(text, () => fail('Unterminated CDATA section', start)),\n start,\n );\n }),\n);\n\nconst charData: P<unknown> = Parser.seq(Parser.location, Token.takeTill('<&', { min: 1 })).pipe(\n Parser.tap(([start, text]) => {\n const bad = text.indexOf(']]>');\n if (bad !== -1) fail('\"]]>\" is not allowed in character data', start + bad);\n pushText(x.top(), text, start);\n }),\n);\n\n/** The content an entity's replacement text adds (parsed interpreted: it may nest). */\nconst entityContent: P<unknown> = Parser.suspend(() =>\n Parser.terminated(\n Parser.repeat(Parser.preceded(Parser.not(Parser.eof), contentItem)),\n act((pos) => {\n if (x.stack.length > x.base) fail('Unexpected end of input: unclosed element', pos);\n }),\n ),\n);\n\n/** Parses the replacement text of an entity that contains markup. */\nconst replacementNodes = (body: string, replacement: string, start: number): Array<Xml.Node> => {\n const { src, lineStarts, stack, base, entityStack } = x;\n const frame = baseFrame(x.top().inScope);\n x.src = replacement;\n x.lineStarts = [0];\n x.stack = [frame];\n x.base = 1;\n x.entityStack = HashSet.add(entityStack, body);\n const outcome = Result.try({\n try: () => {\n const result = Parser.parse(entityContent, replacement);\n if (Result.isFailure(result)) fail('Invalid markup', result.failure.offset);\n flush(frame);\n return frame.children;\n },\n catch: (e) => e,\n });\n x.src = src;\n x.lineStarts = lineStarts;\n x.stack = stack;\n x.base = base;\n x.entityStack = entityStack;\n if (Result.isSuccess(outcome)) return outcome.success;\n if (outcome.failure instanceof Failure) {\n fail(`In entity \"${body}\": ${outcome.failure.message}`, start);\n }\n throw outcome.failure;\n};\n\nconst reference: P<unknown> = Parser.seq(\n Parser.location,\n Parser.preceded(lit('&'), Token.takeTill(';')),\n Parser.opt(lit(';')),\n).pipe(\n Parser.tap(([start, body, semi]) => {\n if (Option.isNone(semi)) fail('Unterminated reference', start);\n const frame = x.top();\n if (body.startsWith('#')) {\n if (!CHAR_REF_RE.test(body)) fail('Invalid character reference', start);\n pushText(frame, charRef(body, start), start);\n return;\n }\n const builtIn = predefined(body);\n if (builtIn !== '') {\n pushText(frame, builtIn, start);\n return;\n }\n const replacement = entityText(body, start, x.entityStack);\n if (!replacement.includes('<') && !replacement.includes('&')) {\n pushText(frame, replacement, start);\n return;\n }\n flush(frame);\n const position = x.position(start);\n replacementNodes(body, replacement, start).forEach((n) => {\n if (isText(n)) pushText(frame, n.value, start);\n else pushChild(frame, { ...n, position });\n });\n }),\n);\n\nconst contentItem: P<unknown> = Parser.alt(\n Parser.preceded(at('</'), endTag),\n Parser.preceded(at('<!--'), Parser.tap(comment, pushNode)),\n Parser.preceded(at('<![CDATA['), cdata),\n Parser.preceded(at('<?'), Parser.tap(pi, pushNode)),\n Parser.preceded(at('<!'), failHere('Unexpected markup declaration in content')),\n Parser.preceded(at('<'), startTag),\n Parser.preceded(at('&'), reference),\n charData,\n);\n\n/** The root element: its start tag, then content until it is closed. */\nconst rootElement: P<unknown> = Parser.asVoid(\n Parser.seq(\n startTag,\n Parser.repeat(\n Parser.preceded(\n Parser.make<void>((state) =>\n x.stack.length > x.base ? undefined : state.backtrack('Verify', ['content']),\n ),\n Parser.alt(\n Parser.preceded(Parser.eof, failHere('Unexpected end of input: unclosed element')),\n contentItem,\n ),\n ),\n ),\n ),\n);\n\n// -----------------------------------------------------------------------------\n// The document\n// -----------------------------------------------------------------------------\n\nconst xmlDecl: P<unknown> = Parser.preceded(\n Parser.seq(lit('<?xml'), Parser.peek(Token.oneOf(space))),\n Parser.seq(\n requireWs,\n expect('version'),\n eq,\n checked(quoted, (version, pos) => {\n if (!/^1\\.[0-9]+$/.test(version)) fail(`Unsupported XML version \"${version}\"`, pos);\n x.version = Option.some(version);\n }),\n ws,\n Parser.opt(\n Parser.preceded(\n Parser.seq(at('encoding'), afterWs, lit('encoding'), eq),\n Parser.terminated(\n checked(quoted, (encoding, pos) => {\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(encoding)) fail('Invalid encoding name', pos);\n x.encoding = Option.some(encoding);\n }),\n ws,\n ),\n ),\n ),\n Parser.opt(\n Parser.preceded(\n Parser.seq(at('standalone'), afterWs, lit('standalone'), eq),\n Parser.terminated(\n checked(quoted, (sd, pos) => {\n if (sd !== 'yes' && sd !== 'no') fail('standalone must be \"yes\" or \"no\"', pos);\n x.standalone = Option.some(sd === 'yes');\n }),\n ws,\n ),\n ),\n ),\n expect('?>'),\n ),\n);\n\nconst prologOrEpilog = (node: Xml.Comment | Xml.ProcessingInstruction): void => {\n (Option.isNone(x.root) ? x.prolog : x.epilog).push(node);\n};\n\nconst document: P<unknown> = Compiler.jit(\n Parser.asVoid(\n Parser.seq(\n Parser.opt(xmlDecl),\n Parser.repeat(\n Parser.preceded(\n Parser.not(Parser.eof),\n Parser.alt(\n Token.takeWhile(space, { min: 1 }),\n Parser.preceded(at('<!--'), Parser.tap(comment, prologOrEpilog)),\n Parser.preceded(at('<?'), Parser.tap(pi, prologOrEpilog)),\n Parser.preceded(\n at('<!DOCTYPE'),\n Parser.preceded(\n act((pos) => {\n if (Option.isSome(x.doctype) || Option.isSome(x.root)) {\n fail('Unexpected DOCTYPE', pos);\n }\n }),\n doctype,\n ),\n ),\n Parser.preceded(\n at('<'),\n Parser.preceded(\n act((pos) => {\n if (Option.isSome(x.root)) fail('Only one root element is allowed', pos);\n }),\n rootElement,\n ),\n ),\n act((pos) =>\n fail(\n Option.isNone(x.root)\n ? 'Expected the root element'\n : 'Content after the root element',\n pos,\n ),\n ),\n ),\n ),\n ),\n act((pos) => {\n if (Option.isNone(x.root)) fail('No root element', pos);\n }),\n ),\n ),\n);\n\n/** Parses a (line-end normalised) document, throwing a `Failure`. */\nconst parse = (\n text: string,\n lineStarts: ReadonlyArray<number>,\n onRootChild: RootChildHook,\n): Xml.Document => {\n x = new Context(text, lineStarts);\n x.onRootChild = onRootChild;\n const result = Parser.parse(document, text);\n if (Result.isFailure(result)) fail('Invalid XML', result.failure.offset);\n return {\n _tag: 'Document',\n version: Option.getOrUndefined(x.version),\n encoding: Option.getOrUndefined(x.encoding),\n standalone: Option.getOrUndefined(x.standalone),\n doctype: Option.getOrUndefined(x.doctype),\n prolog: x.prolog,\n root: Option.getOrElse(x.root, () => fail('No root element', text.length)),\n epilog: x.epilog,\n };\n};\n\n/** The line and column of an offset, given the offsets at which lines start. */\nconst positionAt = (lineStarts: ReadonlyArray<number>, offset: number): Xml.Position => {\n const lo = lineIndex(lineStarts, offset, 0, lineStarts.length - 1);\n return { offset, line: lo + 1, column: offset - (lineStarts[lo] ?? 0) + 1 };\n};\n\nconst lineStartsOf = (text: string): Array<number> => {\n const starts = [0];\n let i = text.indexOf('\\n');\n loop(() => {\n if (i === -1) return false;\n starts.push(i + 1);\n i = text.indexOf('\\n', i + 1);\n return true;\n });\n return starts;\n};\n\n/** @internal */\nexport const normalizeInput = (input: string): string => {\n const noBom = input.charCodeAt(0) === 0xfeff ? input.slice(1) : input;\n return noBom.includes('\\r') ? noBom.replace(/\\r\\n?/g, '\\n') : noBom;\n};\n\n/**\n * Parses a document (normalising its line ends first), throwing a `Failure`\n * with its position. `onRootChild` may take the root's children as they are\n * read.\n *\n * @internal\n */\nexport const parseText = (input: string, onRootChild: RootChildHook = keepChild): Xml.Document => {\n const text = normalizeInput(input);\n const lineStarts = lineStartsOf(text);\n const outcome = Result.try({\n try: () => {\n const bad = INVALID_CHAR_RE.exec(text);\n if (bad !== null) fail('Invalid XML character', bad.index);\n return parse(text, lineStarts, onRootChild);\n },\n catch: (e) => e,\n });\n if (Result.isSuccess(outcome)) return outcome.success;\n const e = outcome.failure;\n if (e instanceof Failure) e.position = positionAt(lineStarts, Math.min(e.offset, text.length));\n throw e;\n};\n","/**\n * A small, namespace-aware, non-validating XML 1.0 parser producing an\n * immutable document tree, plus Exclusive XML Canonicalization (with\n * comments) of element content.\n *\n * Supported: the XML declaration, a document type declaration whose internal\n * subset may declare general entities and attribute defaults, elements,\n * attributes (with attribute-value normalisation), Namespaces in XML 1.0,\n * CDATA sections, comments, processing instructions, and character and\n * entity references. External entities and parameter entities are not\n * loaded (they are reported as errors when referenced).\n *\n * The parser is a compiled `@thomasfosterau/effect-parse` grammar; it is\n * pure and synchronous internally, and the public `parse` API returns an\n * `Effect` failing with `XmlParseError`. It is safe on hostile input:\n * entity replacement text may add at most 1,000,000 characters to a\n * document, entity references nest at most 64 deep and elements at most\n * 1,024 deep, and the time it takes grows with the text it expands.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as HashMap from 'effect/HashMap';\nimport * as Match from 'effect/Match';\nimport * as Option from 'effect/Option';\nimport * as Order from 'effect/Order';\nimport type * as Ordering from 'effect/Ordering';\nimport * as Result from 'effect/Result';\nimport * as Schema from 'effect/Schema';\nimport * as Chars from './internal/chars.ts';\nimport * as Internal from './internal/parser.ts';\n\n/**\n * The XML namespace, bound to the `xml` prefix.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n\n/**\n * The namespace of namespace declarations (`xmlns`).\n *\n * @since 0.1.0\n * @category constants\n */\nexport const XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n\n// -----------------------------------------------------------------------------\n// Model\n// -----------------------------------------------------------------------------\n\n/**\n * A position in the (line-end normalised) input. Lines and columns are\n * 1-based; the column counts UTF-16 code units.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Position {\n readonly offset: number;\n readonly line: number;\n readonly column: number;\n}\n\n/**\n * An attribute with its namespace-resolved name and normalised value.\n * Namespace declarations are not attributes; see\n * `Element.namespaceDeclarations`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Attribute {\n readonly _tag: 'Attribute';\n /** The qualified name as written. */\n readonly name: string;\n /** The prefix, or `\"\"` for unprefixed attributes. */\n readonly prefix: string;\n readonly localName: string;\n /** The namespace name; unprefixed attributes have no namespace. */\n readonly namespace: string | undefined;\n readonly value: string;\n /** Whether the attribute was supplied by an `<!ATTLIST>` default. */\n readonly defaulted: boolean;\n readonly position: Position;\n}\n\n/**\n * A namespace declaration (`xmlns=\"…\"` or `xmlns:p=\"…\"`).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface NamespaceDeclaration {\n /** The declared prefix, or `\"\"` for the default namespace. */\n readonly prefix: string;\n /** The namespace name (`\"\"` undeclares the default namespace). */\n readonly namespace: string;\n}\n\n/**\n * An element.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Element {\n readonly _tag: 'Element';\n /** The qualified name as written. */\n readonly name: string;\n /** The prefix, or `\"\"` for unprefixed elements. */\n readonly prefix: string;\n readonly localName: string;\n /** The namespace name, or `undefined` when the element is in no namespace. */\n readonly namespace: string | undefined;\n readonly attributes: ReadonlyArray<Attribute>;\n readonly namespaceDeclarations: ReadonlyArray<NamespaceDeclaration>;\n /**\n * All namespace bindings in scope (prefix → namespace, `\"\"` for the\n * default namespace). The implicit `xml` binding is not included and\n * undeclared default namespaces are absent.\n */\n readonly inScopeNamespaces: ReadonlyMap<string, string>;\n readonly children: ReadonlyArray<Node>;\n readonly position: Position;\n}\n\n/**\n * Character data. Adjacent character data, references and CDATA sections\n * are merged into a single text node.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Text {\n readonly _tag: 'Text';\n readonly value: string;\n readonly position: Position;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Comment {\n readonly _tag: 'Comment';\n readonly value: string;\n readonly position: Position;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface ProcessingInstruction {\n readonly _tag: 'ProcessingInstruction';\n readonly target: string;\n readonly data: string;\n readonly position: Position;\n}\n\n/**\n * A child of an element.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Node = Element | Text | Comment | ProcessingInstruction;\n\n/**\n * The document type declaration, if present.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface DocumentType {\n readonly name: string;\n readonly publicId: string | undefined;\n readonly systemId: string | undefined;\n /** Internal general entities (name → replacement text). */\n readonly entities: ReadonlyMap<string, string>;\n}\n\n/**\n * A parsed XML document.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Document {\n readonly _tag: 'Document';\n readonly version: string | undefined;\n readonly encoding: string | undefined;\n readonly standalone: boolean | undefined;\n readonly doctype: DocumentType | undefined;\n /** Comments and processing instructions before the root element. */\n readonly prolog: ReadonlyArray<Comment | ProcessingInstruction>;\n readonly root: Element;\n /** Comments and processing instructions after the root element. */\n readonly epilog: ReadonlyArray<Comment | ProcessingInstruction>;\n}\n\n/**\n * A well-formedness or namespace error.\n *\n * @since 0.1.0\n * @category errors\n */\nexport class XmlParseError extends Schema.TaggedError<XmlParseError>()('XmlParseError', {\n message: Schema.String,\n offset: Schema.Number,\n line: Schema.Number,\n column: Schema.Number,\n}) {}\n\n// -----------------------------------------------------------------------------\n// Character classes\n// -----------------------------------------------------------------------------\n\n/**\n * The XML `NameStartChar` production as a regular expression character\n * class body (without brackets), excluding `:`. Requires the `u` flag.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const NAME_START: string = Chars.NAME_START;\n/**\n * The XML `NameChar` production as a regular expression character class\n * body (without brackets), excluding `:`. Requires the `u` flag.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const NAME_CHAR: string = Chars.NAME_CHAR;\n\n/**\n * Whether a string is an XML `NCName` (a name without colons), as required\n * for namespace prefixes, local names, `rdf:ID` and `rdf:nodeID`.\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isNCName: (value: string) => boolean = Chars.isNCName;\n\n/**\n * Whether a string is an XML `Name`.\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isName: (value: string) => boolean = Chars.isName;\n\n/**\n * Whether a string consists only of characters allowed in XML 1.0 documents.\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isValidText: (value: string) => boolean = Chars.isValidText;\n\n// Hoisted: a regex literal makes a new `RegExp` each time it is evaluated.\nconst WHITESPACE = /^[ \\t\\r\\n]*$/;\n\n/**\n * Whether a string consists only of XML white space (`S`).\n *\n * @since 0.1.0\n * @category predicates\n */\nexport const isWhitespace = (value: string): boolean => WHITESPACE.test(value);\n\n// -----------------------------------------------------------------------------\n// Parser\n// -----------------------------------------------------------------------------\n\n/**\n * Normalises line ends (`\\r\\n` and `\\r` become `\\n`) and strips a leading\n * byte order mark, as an XML processor does before parsing.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const normalizeInput: (input: string) => string = Internal.normalizeInput;\n\n/**\n * Parses an XML document, returning a `Result`.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parseResult = (input: string): Result.Result<Document, XmlParseError> =>\n Result.try({\n try: () => Internal.parseText(input),\n catch: (e) => {\n if (e instanceof Internal.Failure) {\n return new XmlParseError({\n message: e.message,\n offset: e.position.offset,\n line: e.position.line,\n column: e.position.column,\n });\n }\n throw e;\n },\n });\n\n/**\n * Parses an XML document.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parse = (input: string): Effect.Effect<Document, XmlParseError> =>\n Effect.suspend(() => Effect.fromResult(parseResult(input)));\n\n// -----------------------------------------------------------------------------\n// Exclusive XML Canonicalization\n// -----------------------------------------------------------------------------\n\n/**\n * Escapes character data as in Canonical XML.\n *\n * @since 0.1.0\n * @category canonicalization\n */\nexport const escapeText = (value: string): string =>\n value.replace(/[&<>\\r]/g, (c) =>\n c === '&' ? '&' : c === '<' ? '<' : c === '>' ? '>' : '
',\n );\n\n/**\n * Escapes an attribute value as in Canonical XML.\n *\n * @since 0.1.0\n * @category canonicalization\n */\nexport const escapeAttribute = (value: string): string =>\n value.replace(/[&<\"\\t\\n\\r]/g, (c) =>\n c === '&'\n ? '&'\n : c === '<'\n ? '<'\n : c === '\"'\n ? '"'\n : c === '\\t'\n ? '	'\n : c === '\\n'\n ? '
'\n : '
',\n );\n\nconst compareStrings = (a: string, b: string): Ordering.Ordering => (a < b ? -1 : a > b ? 1 : 0);\n\n/**\n * Serialises a sequence of nodes (with all their descendants, but none of\n * their ancestors) using Exclusive XML Canonicalization 1.0 with comments\n * and an empty InclusiveNamespaces PrefixList. This is how RDF/XML computes\n * the lexical form of `rdf:parseType=\"Literal\"` content.\n *\n * @since 0.1.0\n * @category canonicalization\n */\nexport const canonicalize = (nodes: ReadonlyArray<Node>): string =>\n nodes.map((n) => canonicalNode(n, HashMap.empty())).join('');\n\nconst byPrefix = Order.make<readonly [string, string]>((a, b) => compareStrings(a[0], b[0]));\n\nconst byExpandedName = Order.make<Attribute>(\n (a, b) =>\n compareStrings(a.namespace ?? '', b.namespace ?? '') ||\n compareStrings(a.localName, b.localName),\n);\n\n/** The prefixes an element visibly utilises: its own, and those of its prefixed attributes. */\nconst utilizedPrefixes = (node: Element): ReadonlyArray<string> =>\n Arr.dedupe(\n Arr.filter(\n [node.prefix, ...node.attributes.map((a) => a.prefix).filter((p) => p !== '')],\n (p) => p !== 'xml',\n ),\n );\n\n// Built once: `canonicalize` runs it for every node of an XML literal.\nconst canonicalNode: (node: Node, rendered: HashMap.HashMap<string, string>) => string = Match.fn(\n (node: Node, _rendered: HashMap.HashMap<string, string>) => node,\n).pipe(\n Match.withReturnType<string>(),\n Match.tag('Text', (node) => escapeText(node.value)),\n Match.tag('Comment', (node) => `<!--${node.value}-->`),\n Match.tag('ProcessingInstruction', (node) =>\n node.data === '' ? `<?${node.target}?>` : `<?${node.target} ${node.data}?>`,\n ),\n Match.tag('Element', (node, _node, rendered) => {\n const decls = Arr.sort(\n Arr.filterMap(utilizedPrefixes(node), (p) => {\n const uri = node.inScopeNamespaces.get(p) ?? '';\n return Option.getOrElse(HashMap.get(rendered, p), () => '') === uri\n ? Result.failVoid\n : Result.succeed([p, uri] as const);\n }),\n byPrefix,\n );\n const next = decls.reduce((m, [p, uri]) => HashMap.set(m, p, uri), rendered);\n const namespaces = decls\n .map(([p, uri]) =>\n p === '' ? ` xmlns=\"${escapeAttribute(uri)}\"` : ` xmlns:${p}=\"${escapeAttribute(uri)}\"`,\n )\n .join('');\n const attributes = Arr.sort(node.attributes, byExpandedName)\n .map((a) => ` ${a.name}=\"${escapeAttribute(a.value)}\"`)\n .join('');\n const children = node.children.map((c) => canonicalNode(c, next)).join('');\n return `<${node.name}${namespaces}${attributes}>${children}</${node.name}>`;\n }),\n Match.exhaustive,\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Result from "effect/Result";
|
|
4
|
+
declare namespace Xml_d_exports {
|
|
5
|
+
export { Attribute, Comment, Document, DocumentType, Element, NAME_CHAR, NAME_START, NamespaceDeclaration, Node, Position, ProcessingInstruction, Text, XMLNS_NAMESPACE, XML_NAMESPACE, XmlParseError, canonicalize, escapeAttribute, escapeText, isNCName, isName, isValidText, isWhitespace, normalizeInput, parse, parseResult };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The XML namespace, bound to the `xml` prefix.
|
|
9
|
+
*
|
|
10
|
+
* @since 0.1.0
|
|
11
|
+
* @category constants
|
|
12
|
+
*/
|
|
13
|
+
declare const XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace";
|
|
14
|
+
/**
|
|
15
|
+
* The namespace of namespace declarations (`xmlns`).
|
|
16
|
+
*
|
|
17
|
+
* @since 0.1.0
|
|
18
|
+
* @category constants
|
|
19
|
+
*/
|
|
20
|
+
declare const XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/";
|
|
21
|
+
/**
|
|
22
|
+
* A position in the (line-end normalised) input. Lines and columns are
|
|
23
|
+
* 1-based; the column counts UTF-16 code units.
|
|
24
|
+
*
|
|
25
|
+
* @since 0.1.0
|
|
26
|
+
* @category models
|
|
27
|
+
*/
|
|
28
|
+
interface Position {
|
|
29
|
+
readonly offset: number;
|
|
30
|
+
readonly line: number;
|
|
31
|
+
readonly column: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* An attribute with its namespace-resolved name and normalised value.
|
|
35
|
+
* Namespace declarations are not attributes; see
|
|
36
|
+
* `Element.namespaceDeclarations`.
|
|
37
|
+
*
|
|
38
|
+
* @since 0.1.0
|
|
39
|
+
* @category models
|
|
40
|
+
*/
|
|
41
|
+
interface Attribute {
|
|
42
|
+
readonly _tag: 'Attribute';
|
|
43
|
+
/** The qualified name as written. */
|
|
44
|
+
readonly name: string;
|
|
45
|
+
/** The prefix, or `""` for unprefixed attributes. */
|
|
46
|
+
readonly prefix: string;
|
|
47
|
+
readonly localName: string;
|
|
48
|
+
/** The namespace name; unprefixed attributes have no namespace. */
|
|
49
|
+
readonly namespace: string | undefined;
|
|
50
|
+
readonly value: string;
|
|
51
|
+
/** Whether the attribute was supplied by an `<!ATTLIST>` default. */
|
|
52
|
+
readonly defaulted: boolean;
|
|
53
|
+
readonly position: Position;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A namespace declaration (`xmlns="…"` or `xmlns:p="…"`).
|
|
57
|
+
*
|
|
58
|
+
* @since 0.1.0
|
|
59
|
+
* @category models
|
|
60
|
+
*/
|
|
61
|
+
interface NamespaceDeclaration {
|
|
62
|
+
/** The declared prefix, or `""` for the default namespace. */
|
|
63
|
+
readonly prefix: string;
|
|
64
|
+
/** The namespace name (`""` undeclares the default namespace). */
|
|
65
|
+
readonly namespace: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* An element.
|
|
69
|
+
*
|
|
70
|
+
* @since 0.1.0
|
|
71
|
+
* @category models
|
|
72
|
+
*/
|
|
73
|
+
interface Element {
|
|
74
|
+
readonly _tag: 'Element';
|
|
75
|
+
/** The qualified name as written. */
|
|
76
|
+
readonly name: string;
|
|
77
|
+
/** The prefix, or `""` for unprefixed elements. */
|
|
78
|
+
readonly prefix: string;
|
|
79
|
+
readonly localName: string;
|
|
80
|
+
/** The namespace name, or `undefined` when the element is in no namespace. */
|
|
81
|
+
readonly namespace: string | undefined;
|
|
82
|
+
readonly attributes: ReadonlyArray<Attribute>;
|
|
83
|
+
readonly namespaceDeclarations: ReadonlyArray<NamespaceDeclaration>;
|
|
84
|
+
/**
|
|
85
|
+
* All namespace bindings in scope (prefix → namespace, `""` for the
|
|
86
|
+
* default namespace). The implicit `xml` binding is not included and
|
|
87
|
+
* undeclared default namespaces are absent.
|
|
88
|
+
*/
|
|
89
|
+
readonly inScopeNamespaces: ReadonlyMap<string, string>;
|
|
90
|
+
readonly children: ReadonlyArray<Node>;
|
|
91
|
+
readonly position: Position;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Character data. Adjacent character data, references and CDATA sections
|
|
95
|
+
* are merged into a single text node.
|
|
96
|
+
*
|
|
97
|
+
* @since 0.1.0
|
|
98
|
+
* @category models
|
|
99
|
+
*/
|
|
100
|
+
interface Text {
|
|
101
|
+
readonly _tag: 'Text';
|
|
102
|
+
readonly value: string;
|
|
103
|
+
readonly position: Position;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @since 0.1.0
|
|
107
|
+
* @category models
|
|
108
|
+
*/
|
|
109
|
+
interface Comment {
|
|
110
|
+
readonly _tag: 'Comment';
|
|
111
|
+
readonly value: string;
|
|
112
|
+
readonly position: Position;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @since 0.1.0
|
|
116
|
+
* @category models
|
|
117
|
+
*/
|
|
118
|
+
interface ProcessingInstruction {
|
|
119
|
+
readonly _tag: 'ProcessingInstruction';
|
|
120
|
+
readonly target: string;
|
|
121
|
+
readonly data: string;
|
|
122
|
+
readonly position: Position;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A child of an element.
|
|
126
|
+
*
|
|
127
|
+
* @since 0.1.0
|
|
128
|
+
* @category models
|
|
129
|
+
*/
|
|
130
|
+
type Node = Element | Text | Comment | ProcessingInstruction;
|
|
131
|
+
/**
|
|
132
|
+
* The document type declaration, if present.
|
|
133
|
+
*
|
|
134
|
+
* @since 0.1.0
|
|
135
|
+
* @category models
|
|
136
|
+
*/
|
|
137
|
+
interface DocumentType {
|
|
138
|
+
readonly name: string;
|
|
139
|
+
readonly publicId: string | undefined;
|
|
140
|
+
readonly systemId: string | undefined;
|
|
141
|
+
/** Internal general entities (name → replacement text). */
|
|
142
|
+
readonly entities: ReadonlyMap<string, string>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* A parsed XML document.
|
|
146
|
+
*
|
|
147
|
+
* @since 0.1.0
|
|
148
|
+
* @category models
|
|
149
|
+
*/
|
|
150
|
+
interface Document {
|
|
151
|
+
readonly _tag: 'Document';
|
|
152
|
+
readonly version: string | undefined;
|
|
153
|
+
readonly encoding: string | undefined;
|
|
154
|
+
readonly standalone: boolean | undefined;
|
|
155
|
+
readonly doctype: DocumentType | undefined;
|
|
156
|
+
/** Comments and processing instructions before the root element. */
|
|
157
|
+
readonly prolog: ReadonlyArray<Comment | ProcessingInstruction>;
|
|
158
|
+
readonly root: Element;
|
|
159
|
+
/** Comments and processing instructions after the root element. */
|
|
160
|
+
readonly epilog: ReadonlyArray<Comment | ProcessingInstruction>;
|
|
161
|
+
}
|
|
162
|
+
declare const XmlParseError_base: Schema.Class<XmlParseError, Schema.TaggedStruct<"XmlParseError", {
|
|
163
|
+
readonly message: Schema.String;
|
|
164
|
+
readonly offset: Schema.Number;
|
|
165
|
+
readonly line: Schema.Number;
|
|
166
|
+
readonly column: Schema.Number;
|
|
167
|
+
}>, import("effect/Cause").YieldableError>;
|
|
168
|
+
/**
|
|
169
|
+
* A well-formedness or namespace error.
|
|
170
|
+
*
|
|
171
|
+
* @since 0.1.0
|
|
172
|
+
* @category errors
|
|
173
|
+
*/
|
|
174
|
+
declare class XmlParseError extends XmlParseError_base {}
|
|
175
|
+
/**
|
|
176
|
+
* The XML `NameStartChar` production as a regular expression character
|
|
177
|
+
* class body (without brackets), excluding `:`. Requires the `u` flag.
|
|
178
|
+
*
|
|
179
|
+
* @since 0.1.0
|
|
180
|
+
* @category constants
|
|
181
|
+
*/
|
|
182
|
+
declare const NAME_START: string;
|
|
183
|
+
/**
|
|
184
|
+
* The XML `NameChar` production as a regular expression character class
|
|
185
|
+
* body (without brackets), excluding `:`. Requires the `u` flag.
|
|
186
|
+
*
|
|
187
|
+
* @since 0.1.0
|
|
188
|
+
* @category constants
|
|
189
|
+
*/
|
|
190
|
+
declare const NAME_CHAR: string;
|
|
191
|
+
/**
|
|
192
|
+
* Whether a string is an XML `NCName` (a name without colons), as required
|
|
193
|
+
* for namespace prefixes, local names, `rdf:ID` and `rdf:nodeID`.
|
|
194
|
+
*
|
|
195
|
+
* @since 0.1.0
|
|
196
|
+
* @category predicates
|
|
197
|
+
*/
|
|
198
|
+
declare const isNCName: (value: string) => boolean;
|
|
199
|
+
/**
|
|
200
|
+
* Whether a string is an XML `Name`.
|
|
201
|
+
*
|
|
202
|
+
* @since 0.1.0
|
|
203
|
+
* @category predicates
|
|
204
|
+
*/
|
|
205
|
+
declare const isName: (value: string) => boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Whether a string consists only of characters allowed in XML 1.0 documents.
|
|
208
|
+
*
|
|
209
|
+
* @since 0.1.0
|
|
210
|
+
* @category predicates
|
|
211
|
+
*/
|
|
212
|
+
declare const isValidText: (value: string) => boolean;
|
|
213
|
+
/**
|
|
214
|
+
* Whether a string consists only of XML white space (`S`).
|
|
215
|
+
*
|
|
216
|
+
* @since 0.1.0
|
|
217
|
+
* @category predicates
|
|
218
|
+
*/
|
|
219
|
+
declare const isWhitespace: (value: string) => boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Normalises line ends (`\r\n` and `\r` become `\n`) and strips a leading
|
|
222
|
+
* byte order mark, as an XML processor does before parsing.
|
|
223
|
+
*
|
|
224
|
+
* @since 0.1.0
|
|
225
|
+
* @category parsing
|
|
226
|
+
*/
|
|
227
|
+
declare const normalizeInput: (input: string) => string;
|
|
228
|
+
/**
|
|
229
|
+
* Parses an XML document, returning a `Result`.
|
|
230
|
+
*
|
|
231
|
+
* @since 0.1.0
|
|
232
|
+
* @category parsing
|
|
233
|
+
*/
|
|
234
|
+
declare const parseResult: (input: string) => Result.Result<Document, XmlParseError>;
|
|
235
|
+
/**
|
|
236
|
+
* Parses an XML document.
|
|
237
|
+
*
|
|
238
|
+
* @since 0.1.0
|
|
239
|
+
* @category parsing
|
|
240
|
+
*/
|
|
241
|
+
declare const parse: (input: string) => Effect.Effect<Document, XmlParseError>;
|
|
242
|
+
/**
|
|
243
|
+
* Escapes character data as in Canonical XML.
|
|
244
|
+
*
|
|
245
|
+
* @since 0.1.0
|
|
246
|
+
* @category canonicalization
|
|
247
|
+
*/
|
|
248
|
+
declare const escapeText: (value: string) => string;
|
|
249
|
+
/**
|
|
250
|
+
* Escapes an attribute value as in Canonical XML.
|
|
251
|
+
*
|
|
252
|
+
* @since 0.1.0
|
|
253
|
+
* @category canonicalization
|
|
254
|
+
*/
|
|
255
|
+
declare const escapeAttribute: (value: string) => string;
|
|
256
|
+
/**
|
|
257
|
+
* Serialises a sequence of nodes (with all their descendants, but none of
|
|
258
|
+
* their ancestors) using Exclusive XML Canonicalization 1.0 with comments
|
|
259
|
+
* and an empty InclusiveNamespaces PrefixList. This is how RDF/XML computes
|
|
260
|
+
* the lexical form of `rdf:parseType="Literal"` content.
|
|
261
|
+
*
|
|
262
|
+
* @since 0.1.0
|
|
263
|
+
* @category canonicalization
|
|
264
|
+
*/
|
|
265
|
+
declare const canonicalize: (nodes: ReadonlyArray<Node>) => string;
|
|
266
|
+
export { isWhitespace as C, parseResult as E, isValidText as S, parse as T, canonicalize as _, Element as a, isNCName as b, NamespaceDeclaration as c, ProcessingInstruction as d, Text as f, Xml_d_exports as g, XmlParseError as h, DocumentType as i, Node as l, XML_NAMESPACE as m, Comment as n, NAME_CHAR as o, XMLNS_NAMESPACE as p, Document as r, NAME_START as s, Attribute as t, Position as u, escapeAttribute as v, normalizeInput as w, isName as x, escapeText as y };
|
|
267
|
+
//# sourceMappingURL=Xml-CmfHS7SW.d.mts.map
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { _ as Quad } from "./Term-B_4ezyXq.mjs";
|
|
2
|
+
import { c as Parser, i as Format, l as RdfParseError, m as Serializer, o as ParseOptions, p as SerializeOptions$1, r as Codec, s as ParseResult, u as RdfSerializeError } from "./Serialization-Df8iVauT.mjs";
|
|
3
|
+
import { o as Metadata } from "./Metadata-nzS7QKRj.mjs";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Result from "effect/Result";
|
|
6
|
+
declare namespace Xmp_d_exports {
|
|
7
|
+
export { SerializeOptions, codec, format, parse, parseMetadata, parser, serialize, serializeMetadata, serializeMetadataResult, serializer };
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The XMP format description. XMP's registered media type is RDF/XML's
|
|
11
|
+
* (`application/rdf+xml`); the `.xmp` extension tells the two apart.
|
|
12
|
+
*
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
* @category formats
|
|
15
|
+
*/
|
|
16
|
+
declare const format: Format;
|
|
17
|
+
/**
|
|
18
|
+
* Parses the text of an XMP packet: a packet, a bare `<x:xmpmeta>` (or
|
|
19
|
+
* older `<x:xapmeta>`) element, a bare `rdf:RDF` element or any XML document
|
|
20
|
+
* containing one (an SVG's `<metadata>`). The first `rdf:RDF` element is
|
|
21
|
+
* read as RDF/XML.
|
|
22
|
+
*
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
* @category parsing
|
|
25
|
+
*/
|
|
26
|
+
declare const parse: (input: string, options?: ParseOptions) => Effect.Effect<ParseResult, RdfParseError>;
|
|
27
|
+
/**
|
|
28
|
+
* The XMP parser.
|
|
29
|
+
*
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
* @category parsing
|
|
32
|
+
*/
|
|
33
|
+
declare const parser: Parser;
|
|
34
|
+
/**
|
|
35
|
+
* Reads the XMP data model from text, or from bytes: the first packet in
|
|
36
|
+
* them, or the whole of them as UTF-8 when they hold no packet (a sidecar
|
|
37
|
+
* `.xmp` file written without one).
|
|
38
|
+
*
|
|
39
|
+
* @since 0.1.0
|
|
40
|
+
* @category parsing
|
|
41
|
+
*/
|
|
42
|
+
declare const parseMetadata: (input: string | Uint8Array, options?: ParseOptions) => Effect.Effect<Metadata, RdfParseError>;
|
|
43
|
+
/**
|
|
44
|
+
* Options for serializing XMP.
|
|
45
|
+
*
|
|
46
|
+
* @since 0.1.0
|
|
47
|
+
* @category models
|
|
48
|
+
*/
|
|
49
|
+
interface SerializeOptions extends SerializeOptions$1 {
|
|
50
|
+
/** Whether to wrap the XMP in an `<?xpacket?>` packet. Defaults to `true`. */
|
|
51
|
+
readonly packet?: boolean | undefined;
|
|
52
|
+
/** Whether the packet trailer is `end="w"`. Defaults to `true`. */
|
|
53
|
+
readonly writable?: boolean | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Bytes of padding before the trailer. Defaults to `Packet.DEFAULT_PADDING`
|
|
56
|
+
* for a writable packet and 0 for a read-only one.
|
|
57
|
+
*/
|
|
58
|
+
readonly padding?: number | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* The exact byte length of the packet, padding the difference: how a
|
|
61
|
+
* packet is updated in place. Serialization fails when the XMP does not
|
|
62
|
+
* fit. Overrides `padding`.
|
|
63
|
+
*/
|
|
64
|
+
readonly size?: number | undefined;
|
|
65
|
+
/** The `x:xmptk` attribute naming the writing toolkit. Omitted by default. */
|
|
66
|
+
readonly toolkit?: string | undefined;
|
|
67
|
+
/** The indentation unit. Defaults to one space, as Adobe's toolkit writes. */
|
|
68
|
+
readonly indent?: string | undefined;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Serializes the XMP data model, returning a `Result`.
|
|
72
|
+
*
|
|
73
|
+
* @since 0.1.0
|
|
74
|
+
* @category serializing
|
|
75
|
+
*/
|
|
76
|
+
declare const serializeMetadataResult: (meta: Metadata, options?: SerializeOptions) => Result.Result<string, RdfSerializeError>;
|
|
77
|
+
/**
|
|
78
|
+
* Serializes the XMP data model as a canonical XMP packet. Fails with
|
|
79
|
+
* `RdfSerializeError` when a property IRI does not end in an XML name, or
|
|
80
|
+
* the packet does not fit `options.size`.
|
|
81
|
+
*
|
|
82
|
+
* @since 0.1.0
|
|
83
|
+
* @category serializing
|
|
84
|
+
*/
|
|
85
|
+
declare const serializeMetadata: (meta: Metadata, options?: SerializeOptions) => Effect.Effect<string, RdfSerializeError>;
|
|
86
|
+
/**
|
|
87
|
+
* Serializes quads as a canonical XMP packet. The quads must have the shape
|
|
88
|
+
* of the XMP data model (see `Metadata.fromDataset`); named graphs are
|
|
89
|
+
* merged.
|
|
90
|
+
*
|
|
91
|
+
* @since 0.1.0
|
|
92
|
+
* @category serializing
|
|
93
|
+
*/
|
|
94
|
+
declare const serialize: (quads: Iterable<Quad>, options?: SerializeOptions) => Effect.Effect<string, RdfSerializeError>;
|
|
95
|
+
/**
|
|
96
|
+
* The XMP serializer.
|
|
97
|
+
*
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
* @category serializing
|
|
100
|
+
*/
|
|
101
|
+
declare const serializer: Serializer<SerializeOptions>;
|
|
102
|
+
/**
|
|
103
|
+
* The XMP codec, including a `Schema` transforming XMP packets to datasets
|
|
104
|
+
* and back.
|
|
105
|
+
*
|
|
106
|
+
* @since 0.1.0
|
|
107
|
+
* @category codecs
|
|
108
|
+
*/
|
|
109
|
+
declare const codec: Codec<ParseOptions, SerializeOptions>;
|
|
110
|
+
export { parse as a, serialize as c, serializer as d, format as i, serializeMetadata as l, Xmp_d_exports as n, parseMetadata as o, codec as r, parser as s, SerializeOptions as t, serializeMetadataResult as u };
|
|
111
|
+
//# sourceMappingURL=Xmp-D7CKA7MZ.d.mts.map
|