@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.
Files changed (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2251 -2
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +195 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1,73 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { C as XMP_RIGHTS } from "./Namespaces-Bz85vpjW.mjs";
3
+ import { a as localized, f as setText, i as items, o as setBag, p as text, s as setBoolean, t as boolean, u as setLocalized } from "./accessors-CEjaojuQ.mjs";
4
+ // src/xmp/XmpRights.ts
5
+ var XmpRights_exports = /* @__PURE__ */ __exportAll({
6
+ marked: () => marked,
7
+ owner: () => owner,
8
+ setMarked: () => setMarked,
9
+ setOwner: () => setOwner,
10
+ setUsageTerms: () => setUsageTerms,
11
+ setWebStatement: () => setWebStatement,
12
+ usageTerms: () => usageTerms,
13
+ webStatement: () => webStatement
14
+ });
15
+ /**
16
+ * Whether the resource is rights-managed (`xmpRights:Marked`).
17
+ *
18
+ * @since 0.1.0
19
+ * @category getters
20
+ */
21
+ const marked = boolean(`${XMP_RIGHTS}Marked`);
22
+ /**
23
+ * Sets whether the resource is rights-managed (`xmpRights:Marked`).
24
+ *
25
+ * @since 0.1.0
26
+ * @category setters
27
+ */
28
+ const setMarked = setBoolean(`${XMP_RIGHTS}Marked`);
29
+ /**
30
+ * The legal owners (`xmpRights:Owner`), an unordered array.
31
+ *
32
+ * @since 0.1.0
33
+ * @category getters
34
+ */
35
+ const owner = items(`${XMP_RIGHTS}Owner`);
36
+ /**
37
+ * Sets the legal owners (`xmpRights:Owner`), an unordered array.
38
+ *
39
+ * @since 0.1.0
40
+ * @category setters
41
+ */
42
+ const setOwner = setBag(`${XMP_RIGHTS}Owner`);
43
+ /**
44
+ * How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).
45
+ *
46
+ * @since 0.1.0
47
+ * @category getters
48
+ */
49
+ const usageTerms = localized(`${XMP_RIGHTS}UsageTerms`);
50
+ /**
51
+ * Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.
52
+ *
53
+ * @since 0.1.0
54
+ * @category setters
55
+ */
56
+ const setUsageTerms = setLocalized(`${XMP_RIGHTS}UsageTerms`);
57
+ /**
58
+ * The URL of a rights statement (`xmpRights:WebStatement`).
59
+ *
60
+ * @since 0.1.0
61
+ * @category getters
62
+ */
63
+ const webStatement = text(`${XMP_RIGHTS}WebStatement`);
64
+ /**
65
+ * Sets the URL of a rights statement (`xmpRights:WebStatement`).
66
+ *
67
+ * @since 0.1.0
68
+ * @category setters
69
+ */
70
+ const setWebStatement = setText(`${XMP_RIGHTS}WebStatement`);
71
+ export { setOwner as a, usageTerms as c, setMarked as i, webStatement as l, marked as n, setUsageTerms as o, owner as r, setWebStatement as s, XmpRights_exports as t };
72
+
73
+ //# sourceMappingURL=XmpRights-BKPtoI5L.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmpRights-BKPtoI5L.mjs","names":["Accessors.boolean","Accessors.setBoolean","Accessors.items","Accessors.setBag","Accessors.localized","Accessors.setLocalized","Accessors.text","Accessors.setText"],"sources":["../src/xmp/XmpRights.ts"],"sourcesContent":["/**\n * Typed accessors for the XMP Rights Management schema (`xmpRights:`).\n *\n * @since 0.1.0\n */\nimport type * as Option from 'effect/Option';\nimport * as Accessors from './internal/accessors.ts';\nimport type * as Metadata from './Metadata.ts';\nimport { XMP_RIGHTS } from './Namespaces.ts';\n\n/**\n * Whether the resource is rights-managed (`xmpRights:Marked`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const marked: (self: Metadata.Metadata) => Option.Option<boolean> = Accessors.boolean(\n `${XMP_RIGHTS}Marked`,\n);\n\n/**\n * Sets whether the resource is rights-managed (`xmpRights:Marked`).\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setMarked: Metadata.Setter<boolean> = Accessors.setBoolean(`${XMP_RIGHTS}Marked`);\n\n/**\n * The legal owners (`xmpRights:Owner`), an unordered array.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const owner: (self: Metadata.Metadata) => Option.Option<ReadonlyArray<string>> =\n Accessors.items(`${XMP_RIGHTS}Owner`);\n\n/**\n * Sets the legal owners (`xmpRights:Owner`), an unordered array.\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setOwner: Metadata.Setter<Iterable<string>> = Accessors.setBag(`${XMP_RIGHTS}Owner`);\n\n/**\n * How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const usageTerms: (self: Metadata.Metadata, language?: string) => Option.Option<string> =\n Accessors.localized(`${XMP_RIGHTS}UsageTerms`);\n\n/**\n * Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setUsageTerms: Metadata.LocalizedSetter = Accessors.setLocalized(\n `${XMP_RIGHTS}UsageTerms`,\n);\n\n/**\n * The URL of a rights statement (`xmpRights:WebStatement`).\n *\n * @since 0.1.0\n * @category getters\n */\nexport const webStatement: (self: Metadata.Metadata) => Option.Option<string> = Accessors.text(\n `${XMP_RIGHTS}WebStatement`,\n);\n\n/**\n * Sets the URL of a rights statement (`xmpRights:WebStatement`).\n *\n * @since 0.1.0\n * @category setters\n */\nexport const setWebStatement: Metadata.Setter<string> = Accessors.setText(\n `${XMP_RIGHTS}WebStatement`,\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgBA,MAAa,SAA8DA,QACzE,GAAG,WAAW,OAChB;;;;;;;AAQA,MAAa,YAAsCC,WAAqB,GAAG,WAAW,OAAO;;;;;;;AAQ7F,MAAa,QACXC,MAAgB,GAAG,WAAW,MAAM;;;;;;;AAQtC,MAAa,WAA8CC,OAAiB,GAAG,WAAW,MAAM;;;;;;;AAQhG,MAAa,aACXC,UAAoB,GAAG,WAAW,WAAW;;;;;;;AAQ/C,MAAa,gBAA0CC,aACrD,GAAG,WAAW,WAChB;;;;;;;AAQA,MAAa,eAAmEC,KAC9E,GAAG,WAAW,aAChB;;;;;;;AAQA,MAAa,kBAA2CC,QACtD,GAAG,WAAW,aAChB"}
@@ -0,0 +1,63 @@
1
+ import { a as LocalizedSetter, c as Setter, o as Metadata } from "./Metadata-nzS7QKRj.mjs";
2
+ import * as Option from "effect/Option";
3
+ declare namespace XmpRights_d_exports {
4
+ export { marked, owner, setMarked, setOwner, setUsageTerms, setWebStatement, usageTerms, webStatement };
5
+ }
6
+ /**
7
+ * Whether the resource is rights-managed (`xmpRights:Marked`).
8
+ *
9
+ * @since 0.1.0
10
+ * @category getters
11
+ */
12
+ declare const marked: (self: Metadata) => Option.Option<boolean>;
13
+ /**
14
+ * Sets whether the resource is rights-managed (`xmpRights:Marked`).
15
+ *
16
+ * @since 0.1.0
17
+ * @category setters
18
+ */
19
+ declare const setMarked: Setter<boolean>;
20
+ /**
21
+ * The legal owners (`xmpRights:Owner`), an unordered array.
22
+ *
23
+ * @since 0.1.0
24
+ * @category getters
25
+ */
26
+ declare const owner: (self: Metadata) => Option.Option<ReadonlyArray<string>>;
27
+ /**
28
+ * Sets the legal owners (`xmpRights:Owner`), an unordered array.
29
+ *
30
+ * @since 0.1.0
31
+ * @category setters
32
+ */
33
+ declare const setOwner: Setter<Iterable<string>>;
34
+ /**
35
+ * How the resource may be used (`xmpRights:UsageTerms`), a language alternative. Reads the item in `language` (default `x-default`).
36
+ *
37
+ * @since 0.1.0
38
+ * @category getters
39
+ */
40
+ declare const usageTerms: (self: Metadata, language?: string) => Option.Option<string>;
41
+ /**
42
+ * Sets one language of how the resource may be used (`xmpRights:UsageTerms`), a language alternative.
43
+ *
44
+ * @since 0.1.0
45
+ * @category setters
46
+ */
47
+ declare const setUsageTerms: LocalizedSetter;
48
+ /**
49
+ * The URL of a rights statement (`xmpRights:WebStatement`).
50
+ *
51
+ * @since 0.1.0
52
+ * @category getters
53
+ */
54
+ declare const webStatement: (self: Metadata) => Option.Option<string>;
55
+ /**
56
+ * Sets the URL of a rights statement (`xmpRights:WebStatement`).
57
+ *
58
+ * @since 0.1.0
59
+ * @category setters
60
+ */
61
+ declare const setWebStatement: Setter<string>;
62
+ export { setOwner as a, usageTerms as c, setMarked as i, webStatement as l, marked as n, setUsageTerms as o, owner as r, setWebStatement as s, XmpRights_d_exports as t };
63
+ //# sourceMappingURL=XmpRights-CaALZQz2.d.mts.map
@@ -0,0 +1,405 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { Y as literal, o as Literal } from "./Term-CFLG1qu4.mjs";
3
+ import { o as xsd } from "./Vocab-DceKywpq.mjs";
4
+ import * as Arr from "effect/Array";
5
+ import * as MutableHashMap from "effect/MutableHashMap";
6
+ import * as Option from "effect/Option";
7
+ import * as Predicate from "effect/Predicate";
8
+ import * as Match from "effect/Match";
9
+ import * as Record from "effect/Record";
10
+ import * as BigDecimal from "effect/BigDecimal";
11
+ // src/Xsd.ts
12
+ /**
13
+ * XML Schema datatypes: lexical validation, value mapping, canonical forms
14
+ * and typed literal constructors.
15
+ *
16
+ * @since 0.1.0
17
+ */
18
+ var Xsd_exports = /* @__PURE__ */ __exportAll({
19
+ anyURI: () => anyURI,
20
+ boolean: () => boolean,
21
+ canonicalDecimal: () => canonicalDecimal,
22
+ canonicalDouble: () => canonicalDouble,
23
+ canonicalize: () => canonicalize,
24
+ date: () => date,
25
+ dateTime: () => dateTime,
26
+ decimal: () => decimal,
27
+ double: () => double,
28
+ float: () => float,
29
+ fromJs: () => fromJs,
30
+ integer: () => integer,
31
+ isIntegerDatatype: () => isIntegerDatatype,
32
+ isKnownDatatype: () => isKnownDatatype,
33
+ isNumericDatatype: () => isNumericDatatype,
34
+ isValidLexical: () => isValidLexical,
35
+ isWellFormed: () => isWellFormed,
36
+ numericDatatypes: () => numericDatatypes,
37
+ string: () => string,
38
+ toJs: () => toJs,
39
+ toValue: () => toValue,
40
+ typed: () => typed
41
+ });
42
+ const XSD = xsd.base;
43
+ const TZ = "(?:Z|[+-](?:(?:0\\d|1[0-3]):[0-5]\\d|14:00))";
44
+ const YEAR = "-?(?:[1-9]\\d{3,}|0\\d{3})";
45
+ const MONTH = "(?:0[1-9]|1[0-2])";
46
+ const DAY = "(?:0[1-9]|[12]\\d|3[01])";
47
+ const TIME = "(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?|24:00:00(?:\\.0+)?)";
48
+ const re = (s) => new RegExp(`^${s}$`);
49
+ const INTEGER = /^[+-]?\d+$/;
50
+ const LANGUAGE = /^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/;
51
+ /** Lexical-space patterns by XSD local name. */
52
+ const lexical = MutableHashMap.fromIterable(Record.toEntries({
53
+ boolean: /^(?:true|false|1|0)$/,
54
+ decimal: /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/,
55
+ integer: INTEGER,
56
+ double: /^(?:[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?|[+-]?INF|NaN)$/,
57
+ float: /^(?:[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?|[+-]?INF|NaN)$/,
58
+ dateTime: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}?`),
59
+ dateTimeStamp: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}`),
60
+ date: re(`${YEAR}-${MONTH}-${DAY}${TZ}?`),
61
+ time: re(`${TIME}${TZ}?`),
62
+ gYear: re(`${YEAR}${TZ}?`),
63
+ gYearMonth: re(`${YEAR}-${MONTH}${TZ}?`),
64
+ gMonth: re(`--${MONTH}${TZ}?`),
65
+ gMonthDay: re(`--${MONTH}-${DAY}${TZ}?`),
66
+ gDay: re(`---${DAY}${TZ}?`),
67
+ duration: /^-?P(?=\d|T\d)(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?=\d)(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$/,
68
+ yearMonthDuration: /^-?P(?=\d)(?:\d+Y)?(?:\d+M)?$/,
69
+ dayTimeDuration: /^-?P(?=\d|T\d)(?:\d+D)?(?:T(?=\d)(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$/,
70
+ hexBinary: /^(?:[0-9A-Fa-f]{2})*$/,
71
+ base64Binary: /^(?:(?:[A-Za-z0-9+/] ?){4})*(?:(?:[A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=)?$/,
72
+ language: LANGUAGE,
73
+ normalizedString: /^[^\r\n\t]*$/,
74
+ token: /^(?:[^\s](?:[^\s]| (?! ))*[^\s]|[^\s])?$/,
75
+ NMTOKEN: /^[\w.\-:\u00B7\u00C0-\uFFFD]+$/u,
76
+ Name: /^[A-Za-z_:\u00C0-\uFFFD][\w.\-:\u00B7\u00C0-\uFFFD]*$/u,
77
+ NCName: /^[A-Za-z_\u00C0-\uFFFD][\w.\-\u00B7\u00C0-\uFFFD]*$/u
78
+ }));
79
+ const unbounded = Option.none();
80
+ const integerBounds = MutableHashMap.fromIterable(Record.toEntries({
81
+ integer: [unbounded, unbounded],
82
+ long: [Option.some(-(2n ** 63n)), Option.some(2n ** 63n - 1n)],
83
+ int: [Option.some(-(2n ** 31n)), Option.some(2n ** 31n - 1n)],
84
+ short: [Option.some(-32768n), Option.some(32767n)],
85
+ byte: [Option.some(-128n), Option.some(127n)],
86
+ unsignedLong: [Option.some(0n), Option.some(2n ** 64n - 1n)],
87
+ unsignedInt: [Option.some(0n), Option.some(2n ** 32n - 1n)],
88
+ unsignedShort: [Option.some(0n), Option.some(65535n)],
89
+ unsignedByte: [Option.some(0n), Option.some(255n)],
90
+ positiveInteger: [Option.some(1n), unbounded],
91
+ nonNegativeInteger: [Option.some(0n), unbounded],
92
+ negativeInteger: [unbounded, Option.some(-1n)],
93
+ nonPositiveInteger: [unbounded, Option.some(0n)]
94
+ }));
95
+ /**
96
+ * The XSD numeric datatypes recognised by SPARQL, ordered by type promotion.
97
+ *
98
+ * @since 0.1.0
99
+ */
100
+ const numericDatatypes = /* @__PURE__ */ new Set([
101
+ ...Arr.map(Arr.fromIterable(MutableHashMap.keys(integerBounds)), (t) => XSD + t),
102
+ `${XSD}decimal`,
103
+ `${XSD}float`,
104
+ `${XSD}double`
105
+ ]);
106
+ /**
107
+ * Whether a datatype IRI is one of the XSD integer types (including derived
108
+ * types such as `xsd:int`).
109
+ *
110
+ * @since 0.1.0
111
+ */
112
+ const isIntegerDatatype = (datatype) => datatype.startsWith(XSD) && MutableHashMap.has(integerBounds, datatype.slice(XSD.length));
113
+ /**
114
+ * Whether a datatype IRI is numeric.
115
+ *
116
+ * @since 0.1.0
117
+ */
118
+ const isNumericDatatype = (datatype) => numericDatatypes.has(datatype);
119
+ /**
120
+ * Whether this implementation knows the lexical space of a datatype.
121
+ *
122
+ * @since 0.1.0
123
+ */
124
+ const isKnownDatatype = (datatype) => {
125
+ if (datatype === "http://www.w3.org/2001/XMLSchema#string" || datatype === "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" || datatype === "http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString") return true;
126
+ if (!datatype.startsWith(XSD)) return false;
127
+ const local = datatype.slice(XSD.length);
128
+ return MutableHashMap.has(lexical, local) || MutableHashMap.has(integerBounds, local) || local === "anyURI";
129
+ };
130
+ /**
131
+ * Checks whether a lexical form is in the lexical space of a datatype.
132
+ * Unknown datatypes are treated as valid.
133
+ *
134
+ * @since 0.1.0
135
+ */
136
+ const isValidLexical = (datatype, value) => {
137
+ if (!datatype.startsWith(XSD)) return true;
138
+ const local = datatype.slice(XSD.length);
139
+ const bounds = MutableHashMap.get(integerBounds, local);
140
+ if (Option.isSome(bounds)) {
141
+ if (!INTEGER.test(value)) return false;
142
+ const n = BigInt(value);
143
+ const [min, max] = bounds.value;
144
+ return !Option.exists(min, (m) => n < m) && !Option.exists(max, (m) => n > m);
145
+ }
146
+ const pattern = MutableHashMap.get(lexical, local);
147
+ if (Option.isNone(pattern)) return true;
148
+ if (!pattern.value.test(value)) return false;
149
+ if (local === "date" || local === "dateTime" || local === "dateTimeStamp") {
150
+ const [year = 0, month = 0, day = 0] = numbers(DATE, value);
151
+ return day <= daysInMonth(year, month);
152
+ }
153
+ return true;
154
+ };
155
+ /**
156
+ * Whether a literal is well-formed: its lexical form is in the lexical space
157
+ * of its (known) datatype. Language-tagged strings must have a well-formed
158
+ * BCP 47 tag.
159
+ *
160
+ * @since 0.1.0
161
+ */
162
+ const isWellFormed = (self) => self.language !== "" ? LANGUAGE.test(self.language) : isValidLexical(self.datatype.value, self.value);
163
+ const daysInMonth = (year, month) => month === 2 ? year % 4 === 0 && year % 100 !== 0 || year % 400 === 0 ? 29 : 28 : [
164
+ 4,
165
+ 6,
166
+ 9,
167
+ 11
168
+ ].includes(month) ? 30 : 31;
169
+ /** The numbers a pattern's groups match in `v` (the lexical form is valid, so it matches). */
170
+ const numbers = (pattern, v) => (pattern.exec(v) ?? []).slice(1).map(Number);
171
+ const DATE = /^(-?\d+)-(\d\d)-(\d\d)/;
172
+ const parseTimezone = (s) => Option.map(Option.fromNullishOr(/(Z|[+-]\d\d:\d\d)$/.exec(s)?.[1]), (zone) => zone === "Z" ? 0 : (zone.startsWith("-") ? -1 : 1) * (Number(zone.slice(1, 3)) * 60 + Number(zone.slice(4, 6))));
173
+ const toEpoch = (y, mo, d, h, mi, s, tz) => {
174
+ const date = /* @__PURE__ */ new Date(0);
175
+ date.setUTCFullYear(y, mo - 1, d);
176
+ date.setUTCHours(h, mi, 0, 0);
177
+ return date.getTime() + s * 1e3 - Option.getOrElse(tz, () => 0) * 6e4;
178
+ };
179
+ const valueOf = Match.fn((local, _v, _dt) => local).pipe(Match.withReturnType(), Match.when("boolean", (_local, _l, v) => ({
180
+ _tag: "Boolean",
181
+ value: v === "true" || v === "1"
182
+ })), Match.when("decimal", (_local, _l, v) => {
183
+ const normalized = v.startsWith(".") || v.startsWith("-.") || v.startsWith("+.") ? v.replace(".", "0.") : v;
184
+ return {
185
+ _tag: "Decimal",
186
+ value: BigDecimal.fromStringUnsafe(normalized.endsWith(".") ? `${normalized}0` : normalized)
187
+ };
188
+ }), Match.when("double", (_local, _l, v) => ({
189
+ _tag: "Double",
190
+ value: parseXsdFloat(v)
191
+ })), Match.when("float", (_local, _l, v) => ({
192
+ _tag: "Float",
193
+ value: Math.fround(parseXsdFloat(v))
194
+ })), Match.when(Match.is("dateTime", "dateTimeStamp"), (_local, _l, v) => {
195
+ const [y = 0, mo = 0, d = 0, h = 0, mi = 0, s = 0] = numbers(/^(-?\d+)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d(?:\.\d+)?)/, v);
196
+ const tz = parseTimezone(v);
197
+ return {
198
+ _tag: "DateTime",
199
+ kind: "dateTime",
200
+ epochMillis: toEpoch(y, mo, d, h, mi, s, tz),
201
+ timezone: Option.getOrUndefined(tz)
202
+ };
203
+ }), Match.when("date", (_local, _l, v) => {
204
+ const [y = 0, mo = 0, d = 0] = numbers(DATE, v);
205
+ const tz = parseTimezone(v);
206
+ return {
207
+ _tag: "DateTime",
208
+ kind: "date",
209
+ epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),
210
+ timezone: Option.getOrUndefined(tz)
211
+ };
212
+ }), Match.when("time", (_local, _l, v) => {
213
+ const [h = 0, mi = 0, s = 0] = numbers(/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)/, v);
214
+ const tz = parseTimezone(v);
215
+ return {
216
+ _tag: "DateTime",
217
+ kind: "time",
218
+ epochMillis: toEpoch(1972, 12, 31, h, mi, s, tz),
219
+ timezone: Option.getOrUndefined(tz)
220
+ };
221
+ }), Match.when(Match.is("gYear", "gYearMonth", "gMonth", "gMonthDay", "gDay"), (local, _l, v) => {
222
+ const tz = parseTimezone(v);
223
+ const body = Option.isNone(tz) ? v : v.replace(/(Z|[+-]\d\d:\d\d)$/, "");
224
+ let y = 1972;
225
+ let mo = 12;
226
+ let d = 31;
227
+ if (local === "gYear") y = +body;
228
+ else if (local === "gYearMonth") {
229
+ const [year = y, month = mo] = numbers(/^(-?\d+)-(\d\d)$/, body);
230
+ y = year;
231
+ mo = month;
232
+ } else if (local === "gMonth") mo = +body.slice(2);
233
+ else if (local === "gMonthDay") [mo, d] = [+body.slice(2, 4), +body.slice(5, 7)];
234
+ else d = +body.slice(3);
235
+ if (local === "gYear" || local === "gYearMonth" || local === "gMonth") d = 1;
236
+ return {
237
+ _tag: "DateTime",
238
+ kind: local,
239
+ epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),
240
+ timezone: Option.getOrUndefined(tz)
241
+ };
242
+ }), Match.when(Match.is("duration", "yearMonthDuration", "dayTimeDuration"), (_local, _l, v) => {
243
+ const m = /^(-)?P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$/.exec(v) ?? [];
244
+ const sign = m[1] === "-" ? -1 : 1;
245
+ const months = sign * (Number(m[2] ?? 0) * 12 + Number(m[3] ?? 0));
246
+ const seconds = sign * (Number(m[4] ?? 0) * 86400 + Number(m[5] ?? 0) * 3600 + Number(m[6] ?? 0) * 60 + Number(m[7] ?? 0));
247
+ return {
248
+ _tag: "Duration",
249
+ months: months === 0 ? 0 : months,
250
+ seconds: seconds === 0 ? 0 : seconds
251
+ };
252
+ }), Match.orElse((_local, _l, v, dt) => ({
253
+ _tag: "Other",
254
+ lexical: v,
255
+ datatype: dt
256
+ })));
257
+ /**
258
+ * Maps a literal to its value. Ill-formed literals and unknown datatypes map
259
+ * to `Other`.
260
+ *
261
+ * @since 0.1.0
262
+ */
263
+ const toValue = (self) => {
264
+ const dt = self.datatype.value;
265
+ const v = self.value;
266
+ if (dt === "http://www.w3.org/2001/XMLSchema#string" || dt === "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" || dt === "http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString") return {
267
+ _tag: "String",
268
+ value: v,
269
+ language: self.language,
270
+ direction: self.direction
271
+ };
272
+ if (!dt.startsWith(XSD) || !isValidLexical(dt, v)) return {
273
+ _tag: "Other",
274
+ lexical: v,
275
+ datatype: dt
276
+ };
277
+ const local = dt.slice(XSD.length);
278
+ if (MutableHashMap.has(integerBounds, local)) return {
279
+ _tag: "Integer",
280
+ value: BigInt(v)
281
+ };
282
+ return valueOf(local, v, dt);
283
+ };
284
+ const parseXsdFloat = (v) => v === "INF" || v === "+INF" ? Infinity : v === "-INF" ? -Infinity : v === "NaN" ? NaN : Number(v);
285
+ /**
286
+ * Formats a number in the canonical `xsd:double` form (e.g. `1.0E0`).
287
+ *
288
+ * @since 0.1.0
289
+ */
290
+ const canonicalDouble = (n) => {
291
+ if (Number.isNaN(n)) return "NaN";
292
+ if (n === Infinity) return "INF";
293
+ if (n === -Infinity) return "-INF";
294
+ if (n === 0) return Object.is(n, -0) ? "-0.0E0" : "0.0E0";
295
+ const [mantissa = "", exponent = ""] = n.toExponential().split("e");
296
+ return `${mantissa.includes(".") ? mantissa : `${mantissa}.0`}E${exponent.replace("+", "")}`;
297
+ };
298
+ /**
299
+ * Formats a `BigDecimal` in the canonical `xsd:decimal` form (always
300
+ * containing a decimal point).
301
+ *
302
+ * @since 0.1.0
303
+ */
304
+ const canonicalDecimal = (d) => {
305
+ const s = BigDecimal.format(BigDecimal.normalize(d));
306
+ return s.includes(".") ? s : `${s}.0`;
307
+ };
308
+ const canonicalOf = Match.fn((value, _self) => value).pipe(Match.withReturnType(), Match.tag("Boolean", (value, _v, self) => new Literal(String(value.value), self.datatype)), Match.tag("Integer", (value, _v, self) => new Literal(value.value.toString(), self.datatype)), Match.tag("Decimal", (value, _v, self) => new Literal(canonicalDecimal(value.value), self.datatype)), Match.tag("Double", "Float", (value, _v, self) => new Literal(canonicalDouble(value.value), self.datatype)), Match.orElse((_value, _v, self) => self));
309
+ /**
310
+ * Returns the canonical form of a literal, or the literal unchanged if its
311
+ * datatype has no known canonical mapping or it is ill-formed.
312
+ *
313
+ * @since 0.1.0
314
+ */
315
+ const canonicalize = (self) => canonicalOf(toValue(self), self);
316
+ const dts = {
317
+ boolean: xsd.boolean,
318
+ integer: xsd.integer,
319
+ decimal: xsd.decimal,
320
+ double: xsd.double,
321
+ float: xsd.float,
322
+ dateTime: xsd.dateTime,
323
+ date: xsd.date,
324
+ anyURI: xsd.anyURI
325
+ };
326
+ /**
327
+ * @since 0.1.0
328
+ * @category constructors
329
+ */
330
+ const string = (value) => literal(value);
331
+ /**
332
+ * @since 0.1.0
333
+ * @category constructors
334
+ */
335
+ const boolean = (value) => new Literal(String(value), dts.boolean);
336
+ /**
337
+ * @since 0.1.0
338
+ * @category constructors
339
+ */
340
+ const integer = (value) => new Literal(Predicate.isBigInt(value) ? value.toString() : Math.trunc(value).toString(), dts.integer);
341
+ /**
342
+ * @since 0.1.0
343
+ * @category constructors
344
+ */
345
+ const decimal = (value) => new Literal(canonicalDecimal(BigDecimal.isBigDecimal(value) ? value : Predicate.isNumber(value) ? BigDecimal.fromNumberUnsafe(value) : BigDecimal.fromStringUnsafe(value)), dts.decimal);
346
+ /**
347
+ * @since 0.1.0
348
+ * @category constructors
349
+ */
350
+ const double = (value) => new Literal(canonicalDouble(value), dts.double);
351
+ /**
352
+ * @since 0.1.0
353
+ * @category constructors
354
+ */
355
+ const float = (value) => new Literal(canonicalDouble(Math.fround(value)), dts.float);
356
+ /**
357
+ * @since 0.1.0
358
+ * @category constructors
359
+ */
360
+ const dateTime = (value) => new Literal(value.toISOString(), dts.dateTime);
361
+ /**
362
+ * @since 0.1.0
363
+ * @category constructors
364
+ */
365
+ const date = (value) => new Literal(value.toISOString().slice(0, 10), dts.date);
366
+ /**
367
+ * @since 0.1.0
368
+ * @category constructors
369
+ */
370
+ const anyURI = (value) => new Literal(value, dts.anyURI);
371
+ /**
372
+ * Creates a typed literal from a datatype and lexical form.
373
+ *
374
+ * @since 0.1.0
375
+ * @category constructors
376
+ */
377
+ const typed = (value, datatype) => new Literal(value, datatype);
378
+ /**
379
+ * Converts a JavaScript value to the most natural literal: strings become
380
+ * `xsd:string`, booleans `xsd:boolean`, integers `xsd:integer`, other numbers
381
+ * `xsd:double`, bigints `xsd:integer` and dates `xsd:dateTime`.
382
+ *
383
+ * @since 0.1.0
384
+ * @category constructors
385
+ */
386
+ const fromJs = (value) => {
387
+ if (Predicate.isString(value)) return string(value);
388
+ if (Predicate.isBoolean(value)) return boolean(value);
389
+ if (Predicate.isBigInt(value)) return integer(value);
390
+ if (Predicate.isNumber(value)) return Number.isInteger(value) ? integer(value) : double(value);
391
+ return dateTime(value);
392
+ };
393
+ const jsOf = Match.type().pipe(Match.withReturnType(), Match.tag("String", (v) => Option.some(v.value)), Match.tag("Boolean", (v) => Option.some(v.value)), Match.tag("Integer", (v) => Option.some(v.value <= BigInt(Number.MAX_SAFE_INTEGER) && v.value >= BigInt(Number.MIN_SAFE_INTEGER) ? Number(v.value) : v.value)), Match.tag("Decimal", (v) => Option.some(BigDecimal.toNumberUnsafe(v.value))), Match.tag("Double", "Float", (v) => Option.some(v.value)), Match.tag("DateTime", (v) => v.kind === "dateTime" || v.kind === "date" ? Option.some(new Date(v.epochMillis)) : Option.none()), Match.orElse(() => Option.none()));
394
+ /**
395
+ * Converts a literal to a natural JavaScript value: strings, booleans,
396
+ * numbers (for integers within the safe range, decimals, floats and doubles),
397
+ * bigints (for large integers) and `Date`s (for `xsd:dateTime` and
398
+ * `xsd:date`). Returns `None` for ill-formed literals and unknown datatypes.
399
+ *
400
+ * @since 0.1.0
401
+ */
402
+ const toJs = (self) => jsOf(toValue(self));
403
+ export { typed as C, toValue as S, isValidLexical as _, canonicalDouble as a, string as b, dateTime as c, float as d, fromJs as f, isNumericDatatype as g, isKnownDatatype as h, canonicalDecimal as i, decimal as l, isIntegerDatatype as m, anyURI as n, canonicalize as o, integer as p, boolean as r, date as s, Xsd_exports as t, double as u, isWellFormed as v, toJs as x, numericDatatypes as y };
404
+
405
+ //# sourceMappingURL=Xsd-Cdgx5zRB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Xsd-Cdgx5zRB.mjs","names":[],"sources":["../src/Xsd.ts"],"sourcesContent":["/**\n * XML Schema datatypes: lexical validation, value mapping, canonical forms\n * and typed literal constructors.\n *\n * @since 0.1.0\n */\nimport * as BigDecimal from 'effect/BigDecimal';\nimport * as Arr from 'effect/Array';\nimport * as Match from 'effect/Match';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\nimport {\n Literal,\n NamedNode,\n RDF_DIR_LANG_STRING,\n RDF_LANG_STRING,\n XSD_STRING,\n literal,\n} from './Term.ts';\nimport { xsd } from './Vocab.ts';\nimport * as Predicate from 'effect/Predicate';\n\nconst XSD = xsd.base;\n\n// -----------------------------------------------------------------------------\n// Lexical spaces\n// -----------------------------------------------------------------------------\n\nconst TZ = '(?:Z|[+-](?:(?:0\\\\d|1[0-3]):[0-5]\\\\d|14:00))';\nconst YEAR = '-?(?:[1-9]\\\\d{3,}|0\\\\d{3})';\nconst MONTH = '(?:0[1-9]|1[0-2])';\nconst DAY = '(?:0[1-9]|[12]\\\\d|3[01])';\nconst TIME = '(?:(?:[01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d(?:\\\\.\\\\d+)?|24:00:00(?:\\\\.0+)?)';\n\nconst re = (s: string) => new RegExp(`^${s}$`);\n\nconst INTEGER = /^[+-]?\\d+$/;\nconst LANGUAGE = /^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/;\n\n/** Lexical-space patterns by XSD local name. */\nconst lexical = MutableHashMap.fromIterable<string, RegExp>(\n Record.toEntries({\n boolean: /^(?:true|false|1|0)$/,\n decimal: /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)$/,\n integer: INTEGER,\n double: /^(?:[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?|[+-]?INF|NaN)$/,\n float: /^(?:[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?|[+-]?INF|NaN)$/,\n dateTime: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}?`),\n dateTimeStamp: re(`${YEAR}-${MONTH}-${DAY}T${TIME}${TZ}`),\n date: re(`${YEAR}-${MONTH}-${DAY}${TZ}?`),\n time: re(`${TIME}${TZ}?`),\n gYear: re(`${YEAR}${TZ}?`),\n gYearMonth: re(`${YEAR}-${MONTH}${TZ}?`),\n gMonth: re(`--${MONTH}${TZ}?`),\n gMonthDay: re(`--${MONTH}-${DAY}${TZ}?`),\n gDay: re(`---${DAY}${TZ}?`),\n duration:\n /^-?P(?=\\d|T\\d)(?:\\d+Y)?(?:\\d+M)?(?:\\d+D)?(?:T(?=\\d)(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?$/,\n yearMonthDuration: /^-?P(?=\\d)(?:\\d+Y)?(?:\\d+M)?$/,\n dayTimeDuration: /^-?P(?=\\d|T\\d)(?:\\d+D)?(?:T(?=\\d)(?:\\d+H)?(?:\\d+M)?(?:\\d+(?:\\.\\d+)?S)?)?$/,\n hexBinary: /^(?:[0-9A-Fa-f]{2})*$/,\n base64Binary:\n /^(?:(?:[A-Za-z0-9+/] ?){4})*(?:(?:[A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=)?$/,\n language: LANGUAGE,\n // eslint-disable-next-line no-control-regex\n normalizedString: /^[^\\r\\n\\t]*$/,\n token: /^(?:[^\\s](?:[^\\s]| (?! ))*[^\\s]|[^\\s])?$/,\n NMTOKEN: /^[\\w.\\-:\\u00B7\\u00C0-\\uFFFD]+$/u,\n Name: /^[A-Za-z_:\\u00C0-\\uFFFD][\\w.\\-:\\u00B7\\u00C0-\\uFFFD]*$/u,\n NCName: /^[A-Za-z_\\u00C0-\\uFFFD][\\w.\\-\\u00B7\\u00C0-\\uFFFD]*$/u,\n }),\n);\n\n/** Value-space bounds (inclusive; `undefined` is unbounded) of the XSD integer types. */\n/** The inclusive bounds of an integer type; none is unbounded. */\ntype Bounds = readonly [Option.Option<bigint>, Option.Option<bigint>];\n\nconst unbounded: Option.Option<bigint> = Option.none();\n\nconst integerBounds = MutableHashMap.fromIterable<string, Bounds>(\n Record.toEntries<string, Bounds>({\n integer: [unbounded, unbounded],\n long: [Option.some(-(2n ** 63n)), Option.some(2n ** 63n - 1n)],\n int: [Option.some(-(2n ** 31n)), Option.some(2n ** 31n - 1n)],\n short: [Option.some(-32768n), Option.some(32767n)],\n byte: [Option.some(-128n), Option.some(127n)],\n unsignedLong: [Option.some(0n), Option.some(2n ** 64n - 1n)],\n unsignedInt: [Option.some(0n), Option.some(2n ** 32n - 1n)],\n unsignedShort: [Option.some(0n), Option.some(65535n)],\n unsignedByte: [Option.some(0n), Option.some(255n)],\n positiveInteger: [Option.some(1n), unbounded],\n nonNegativeInteger: [Option.some(0n), unbounded],\n negativeInteger: [unbounded, Option.some(-1n)],\n nonPositiveInteger: [unbounded, Option.some(0n)],\n }),\n);\n\n/**\n * The XSD numeric datatypes recognised by SPARQL, ordered by type promotion.\n *\n * @since 0.1.0\n */\nexport const numericDatatypes: ReadonlySet<string> = new Set([\n ...Arr.map(Arr.fromIterable(MutableHashMap.keys(integerBounds)), (t) => XSD + t),\n `${XSD}decimal`,\n `${XSD}float`,\n `${XSD}double`,\n]);\n\n/**\n * Whether a datatype IRI is one of the XSD integer types (including derived\n * types such as `xsd:int`).\n *\n * @since 0.1.0\n */\nexport const isIntegerDatatype = (datatype: string): boolean =>\n datatype.startsWith(XSD) && MutableHashMap.has(integerBounds, datatype.slice(XSD.length));\n\n/**\n * Whether a datatype IRI is numeric.\n *\n * @since 0.1.0\n */\nexport const isNumericDatatype = (datatype: string): boolean => numericDatatypes.has(datatype);\n\n/**\n * Whether this implementation knows the lexical space of a datatype.\n *\n * @since 0.1.0\n */\nexport const isKnownDatatype = (datatype: string): boolean => {\n if (datatype === XSD_STRING || datatype === RDF_LANG_STRING || datatype === RDF_DIR_LANG_STRING)\n return true;\n if (!datatype.startsWith(XSD)) return false;\n const local = datatype.slice(XSD.length);\n return (\n MutableHashMap.has(lexical, local) ||\n MutableHashMap.has(integerBounds, local) ||\n local === 'anyURI'\n );\n};\n\n/**\n * Checks whether a lexical form is in the lexical space of a datatype.\n * Unknown datatypes are treated as valid.\n *\n * @since 0.1.0\n */\nexport const isValidLexical = (datatype: string, value: string): boolean => {\n if (!datatype.startsWith(XSD)) return true;\n const local = datatype.slice(XSD.length);\n const bounds = MutableHashMap.get(integerBounds, local);\n if (Option.isSome(bounds)) {\n if (!INTEGER.test(value)) return false;\n const n = BigInt(value);\n const [min, max] = bounds.value;\n return !Option.exists(min, (m) => n < m) && !Option.exists(max, (m) => n > m);\n }\n const pattern = MutableHashMap.get(lexical, local);\n if (Option.isNone(pattern)) return true;\n if (!pattern.value.test(value)) return false;\n if (local === 'date' || local === 'dateTime' || local === 'dateTimeStamp') {\n const [year = 0, month = 0, day = 0] = numbers(DATE, value);\n return day <= daysInMonth(year, month);\n }\n return true;\n};\n\n/**\n * Whether a literal is well-formed: its lexical form is in the lexical space\n * of its (known) datatype. Language-tagged strings must have a well-formed\n * BCP 47 tag.\n *\n * @since 0.1.0\n */\nexport const isWellFormed = (self: Literal): boolean =>\n self.language !== ''\n ? LANGUAGE.test(self.language)\n : isValidLexical(self.datatype.value, self.value);\n\nconst daysInMonth = (year: number, month: number) =>\n month === 2\n ? (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n ? 29\n : 28\n : [4, 6, 9, 11].includes(month)\n ? 30\n : 31;\n\n// -----------------------------------------------------------------------------\n// Value space\n// -----------------------------------------------------------------------------\n\n/**\n * A literal's value in the XSD value space.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Value =\n | {\n readonly _tag: 'String';\n readonly value: string;\n readonly language: string;\n readonly direction: 'ltr' | 'rtl' | undefined;\n }\n | { readonly _tag: 'Boolean'; readonly value: boolean }\n | { readonly _tag: 'Integer'; readonly value: bigint }\n | { readonly _tag: 'Decimal'; readonly value: BigDecimal.BigDecimal }\n | { readonly _tag: 'Float'; readonly value: number }\n | { readonly _tag: 'Double'; readonly value: number }\n | {\n readonly _tag: 'DateTime';\n readonly kind:\n | 'dateTime'\n | 'date'\n | 'time'\n | 'gYear'\n | 'gYearMonth'\n | 'gMonth'\n | 'gMonthDay'\n | 'gDay';\n /** Milliseconds since the epoch, interpreting missing timezones as UTC. */\n readonly epochMillis: number;\n /** Timezone offset in minutes, or `undefined` when absent. */\n readonly timezone: number | undefined;\n }\n | { readonly _tag: 'Duration'; readonly months: number; readonly seconds: number }\n | { readonly _tag: 'Other'; readonly lexical: string; readonly datatype: string };\n\n/** The numbers a pattern's groups match in `v` (the lexical form is valid, so it matches). */\nconst numbers = (pattern: RegExp, v: string): ReadonlyArray<number> =>\n (pattern.exec(v) ?? []).slice(1).map(Number);\n\nconst DATE = /^(-?\\d+)-(\\d\\d)-(\\d\\d)/;\n\nconst parseTimezone = (s: string): Option.Option<number> =>\n Option.map(Option.fromNullishOr(/(Z|[+-]\\d\\d:\\d\\d)$/.exec(s)?.[1]), (zone) =>\n zone === 'Z'\n ? 0\n : (zone.startsWith('-') ? -1 : 1) *\n (Number(zone.slice(1, 3)) * 60 + Number(zone.slice(4, 6))),\n );\n\nconst toEpoch = (\n y: number,\n mo: number,\n d: number,\n h: number,\n mi: number,\n s: number,\n tz: Option.Option<number>,\n) => {\n const date = new Date(0);\n date.setUTCFullYear(y, mo - 1, d);\n date.setUTCHours(h, mi, 0, 0);\n return date.getTime() + s * 1000 - Option.getOrElse(tz, () => 0) * 60_000;\n};\n\n// Built once: `toValue` runs for every literal a comparison, filter or index touches.\nconst valueOf = Match.fn((local: string, _v: string, _dt: string) => local).pipe(\n Match.withReturnType<Value>(),\n Match.when('boolean', (_local, _l, v) => ({ _tag: 'Boolean', value: v === 'true' || v === '1' })),\n Match.when('decimal', (_local, _l, v) => {\n const normalized =\n v.startsWith('.') || v.startsWith('-.') || v.startsWith('+.') ? v.replace('.', '0.') : v;\n return {\n _tag: 'Decimal',\n value: BigDecimal.fromStringUnsafe(normalized.endsWith('.') ? `${normalized}0` : normalized),\n };\n }),\n Match.when('double', (_local, _l, v) => ({ _tag: 'Double', value: parseXsdFloat(v) })),\n Match.when('float', (_local, _l, v) => ({\n _tag: 'Float',\n value: Math.fround(parseXsdFloat(v)),\n })),\n Match.when(Match.is('dateTime', 'dateTimeStamp'), (_local, _l, v) => {\n const [y = 0, mo = 0, d = 0, h = 0, mi = 0, s = 0] = numbers(\n /^(-?\\d+)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)/,\n v,\n );\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'dateTime',\n epochMillis: toEpoch(y, mo, d, h, mi, s, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when('date', (_local, _l, v) => {\n const [y = 0, mo = 0, d = 0] = numbers(DATE, v);\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'date',\n epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when('time', (_local, _l, v) => {\n const [h = 0, mi = 0, s = 0] = numbers(/^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)/, v);\n const tz = parseTimezone(v);\n return {\n _tag: 'DateTime',\n kind: 'time',\n epochMillis: toEpoch(1972, 12, 31, h, mi, s, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when(Match.is('gYear', 'gYearMonth', 'gMonth', 'gMonthDay', 'gDay'), (local, _l, v) => {\n const tz = parseTimezone(v);\n const body = Option.isNone(tz) ? v : v.replace(/(Z|[+-]\\d\\d:\\d\\d)$/, '');\n let y = 1972;\n let mo = 12;\n let d = 31;\n if (local === 'gYear') y = +body;\n else if (local === 'gYearMonth') {\n const [year = y, month = mo] = numbers(/^(-?\\d+)-(\\d\\d)$/, body);\n y = year;\n mo = month;\n } else if (local === 'gMonth') mo = +body.slice(2);\n else if (local === 'gMonthDay') [mo, d] = [+body.slice(2, 4), +body.slice(5, 7)];\n else d = +body.slice(3);\n if (local === 'gYear' || local === 'gYearMonth' || local === 'gMonth') d = 1;\n return {\n _tag: 'DateTime',\n kind: local,\n epochMillis: toEpoch(y, mo, d, 0, 0, 0, tz),\n timezone: Option.getOrUndefined(tz),\n };\n }),\n Match.when(Match.is('duration', 'yearMonthDuration', 'dayTimeDuration'), (_local, _l, v) => {\n const m =\n /^(-)?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/.exec(\n v,\n ) ?? [];\n const sign = m[1] === '-' ? -1 : 1;\n const months = sign * (Number(m[2] ?? 0) * 12 + Number(m[3] ?? 0));\n const seconds =\n sign *\n (Number(m[4] ?? 0) * 86400 +\n Number(m[5] ?? 0) * 3600 +\n Number(m[6] ?? 0) * 60 +\n Number(m[7] ?? 0));\n return {\n _tag: 'Duration',\n months: months === 0 ? 0 : months,\n seconds: seconds === 0 ? 0 : seconds,\n };\n }),\n Match.orElse((_local, _l, v, dt) => ({ _tag: 'Other', lexical: v, datatype: dt })),\n);\n\n/**\n * Maps a literal to its value. Ill-formed literals and unknown datatypes map\n * to `Other`.\n *\n * @since 0.1.0\n */\nexport const toValue = (self: Literal): Value => {\n const dt = self.datatype.value;\n const v = self.value;\n if (dt === XSD_STRING || dt === RDF_LANG_STRING || dt === RDF_DIR_LANG_STRING) {\n return { _tag: 'String', value: v, language: self.language, direction: self.direction };\n }\n if (!dt.startsWith(XSD) || !isValidLexical(dt, v))\n return { _tag: 'Other', lexical: v, datatype: dt };\n const local = dt.slice(XSD.length);\n if (MutableHashMap.has(integerBounds, local)) return { _tag: 'Integer', value: BigInt(v) };\n return valueOf(local, v, dt);\n};\n\nconst parseXsdFloat = (v: string): number =>\n v === 'INF' || v === '+INF' ? Infinity : v === '-INF' ? -Infinity : v === 'NaN' ? NaN : Number(v);\n\n// -----------------------------------------------------------------------------\n// Canonical forms\n// -----------------------------------------------------------------------------\n\n/**\n * Formats a number in the canonical `xsd:double` form (e.g. `1.0E0`).\n *\n * @since 0.1.0\n */\nexport const canonicalDouble = (n: number): string => {\n if (Number.isNaN(n)) return 'NaN';\n if (n === Infinity) return 'INF';\n if (n === -Infinity) return '-INF';\n if (n === 0) return Object.is(n, -0) ? '-0.0E0' : '0.0E0';\n // `toExponential` always produces `<mantissa>e<exponent>`\n const [mantissa = '', exponent = ''] = n.toExponential().split('e');\n const m = mantissa.includes('.') ? mantissa : `${mantissa}.0`;\n return `${m}E${exponent.replace('+', '')}`;\n};\n\n/**\n * Formats a `BigDecimal` in the canonical `xsd:decimal` form (always\n * containing a decimal point).\n *\n * @since 0.1.0\n */\nexport const canonicalDecimal = (d: BigDecimal.BigDecimal): string => {\n const s = BigDecimal.format(BigDecimal.normalize(d));\n return s.includes('.') ? s : `${s}.0`;\n};\n\n// Built once: `canonicalize` runs for every literal a serializer or the dataset canonicalises.\nconst canonicalOf = Match.fn((value: Value, _self: Literal) => value).pipe(\n Match.withReturnType<Literal>(),\n Match.tag('Boolean', (value, _v, self) => new Literal(String(value.value), self.datatype)),\n Match.tag('Integer', (value, _v, self) => new Literal(value.value.toString(), self.datatype)),\n Match.tag(\n 'Decimal',\n (value, _v, self) => new Literal(canonicalDecimal(value.value), self.datatype),\n ),\n Match.tag(\n 'Double',\n 'Float',\n (value, _v, self) => new Literal(canonicalDouble(value.value), self.datatype),\n ),\n Match.orElse((_value, _v, self) => self),\n);\n\n/**\n * Returns the canonical form of a literal, or the literal unchanged if its\n * datatype has no known canonical mapping or it is ill-formed.\n *\n * @since 0.1.0\n */\nexport const canonicalize = (self: Literal): Literal => canonicalOf(toValue(self), self);\n\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n\nconst dts = {\n boolean: xsd.boolean,\n integer: xsd.integer,\n decimal: xsd.decimal,\n double: xsd.double,\n float: xsd.float,\n dateTime: xsd.dateTime,\n date: xsd.date,\n anyURI: xsd.anyURI,\n} as const;\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const string = (value: string): Literal => literal(value);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const boolean = (value: boolean): Literal => new Literal(String(value), dts.boolean);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const integer = (value: number | bigint): Literal =>\n new Literal(\n Predicate.isBigInt(value) ? value.toString() : Math.trunc(value).toString(),\n dts.integer,\n );\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const decimal = (value: BigDecimal.BigDecimal | number | string): Literal =>\n new Literal(\n canonicalDecimal(\n BigDecimal.isBigDecimal(value)\n ? value\n : Predicate.isNumber(value)\n ? BigDecimal.fromNumberUnsafe(value)\n : BigDecimal.fromStringUnsafe(value),\n ),\n dts.decimal,\n );\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const double = (value: number): Literal => new Literal(canonicalDouble(value), dts.double);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const float = (value: number): Literal =>\n new Literal(canonicalDouble(Math.fround(value)), dts.float);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const dateTime = (value: Date): Literal => new Literal(value.toISOString(), dts.dateTime);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const date = (value: Date): Literal =>\n new Literal(value.toISOString().slice(0, 10), dts.date);\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const anyURI = (value: string): Literal => new Literal(value, dts.anyURI);\n\n/**\n * Creates a typed literal from a datatype and lexical form.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const typed = (value: string, datatype: NamedNode): Literal => new Literal(value, datatype);\n\n/**\n * Converts a JavaScript value to the most natural literal: strings become\n * `xsd:string`, booleans `xsd:boolean`, integers `xsd:integer`, other numbers\n * `xsd:double`, bigints `xsd:integer` and dates `xsd:dateTime`.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromJs = (value: string | number | bigint | boolean | Date): Literal => {\n if (Predicate.isString(value)) return string(value);\n if (Predicate.isBoolean(value)) return boolean(value);\n if (Predicate.isBigInt(value)) return integer(value);\n if (Predicate.isNumber(value)) return Number.isInteger(value) ? integer(value) : double(value);\n return dateTime(value);\n};\n\n// Built once: `toJs` runs for every literal a result row or JSON conversion reads.\nconst jsOf = Match.type<Value>().pipe(\n Match.withReturnType<Option.Option<string | number | bigint | boolean | Date>>(),\n Match.tag('String', (v) => Option.some(v.value)),\n Match.tag('Boolean', (v) => Option.some(v.value)),\n Match.tag('Integer', (v) =>\n Option.some(\n v.value <= BigInt(Number.MAX_SAFE_INTEGER) && v.value >= BigInt(Number.MIN_SAFE_INTEGER)\n ? Number(v.value)\n : v.value,\n ),\n ),\n Match.tag('Decimal', (v) => Option.some(BigDecimal.toNumberUnsafe(v.value))),\n Match.tag('Double', 'Float', (v) => Option.some(v.value)),\n Match.tag('DateTime', (v) =>\n v.kind === 'dateTime' || v.kind === 'date'\n ? Option.some(new Date(v.epochMillis))\n : Option.none(),\n ),\n Match.orElse(() => Option.none()),\n);\n\n/**\n * Converts a literal to a natural JavaScript value: strings, booleans,\n * numbers (for integers within the safe range, decimals, floats and doubles),\n * bigints (for large integers) and `Date`s (for `xsd:dateTime` and\n * `xsd:date`). Returns `None` for ill-formed literals and unknown datatypes.\n *\n * @since 0.1.0\n */\nexport const toJs = (self: Literal): Option.Option<string | number | bigint | boolean | Date> =>\n jsOf(toValue(self));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,MAAM,IAAI;AAMhB,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,MAAM;AACZ,MAAM,OAAO;AAEb,MAAM,MAAM,MAAc,IAAI,OAAO,IAAI,EAAE,EAAE;AAE7C,MAAM,UAAU;AAChB,MAAM,WAAW;;AAGjB,MAAM,UAAU,eAAe,aAC7B,OAAO,UAAU;CACf,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,OAAO;CACP,UAAU,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE;CACpD,eAAe,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,IAAI;CACxD,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE;CACxC,MAAM,GAAG,GAAG,OAAO,GAAG,EAAE;CACxB,OAAO,GAAG,GAAG,OAAO,GAAG,EAAE;CACzB,YAAY,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,EAAE;CACvC,QAAQ,GAAG,KAAK,QAAQ,GAAG,EAAE;CAC7B,WAAW,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE;CACvC,MAAM,GAAG,MAAM,MAAM,GAAG,EAAE;CAC1B,UACE;CACF,mBAAmB;CACnB,iBAAiB;CACjB,WAAW;CACX,cACE;CACF,UAAU;CAEV,kBAAkB;CAClB,OAAO;CACP,SAAS;CACT,MAAM;CACN,QAAQ;AACV,CAAC,CACH;AAMA,MAAM,YAAmC,OAAO,KAAK;AAErD,MAAM,gBAAgB,eAAe,aACnC,OAAO,UAA0B;CAC/B,SAAS,CAAC,WAAW,SAAS;CAC9B,MAAM,CAAC,OAAO,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,KAAK,MAAM,MAAM,EAAE,CAAC;CAC7D,KAAK,CAAC,OAAO,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,KAAK,MAAM,MAAM,EAAE,CAAC;CAC5D,OAAO,CAAC,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC;CACjD,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC;CAC5C,cAAc,CAAC,OAAO,KAAK,EAAE,GAAG,OAAO,KAAK,MAAM,MAAM,EAAE,CAAC;CAC3D,aAAa,CAAC,OAAO,KAAK,EAAE,GAAG,OAAO,KAAK,MAAM,MAAM,EAAE,CAAC;CAC1D,eAAe,CAAC,OAAO,KAAK,EAAE,GAAG,OAAO,KAAK,MAAM,CAAC;CACpD,cAAc,CAAC,OAAO,KAAK,EAAE,GAAG,OAAO,KAAK,IAAI,CAAC;CACjD,iBAAiB,CAAC,OAAO,KAAK,EAAE,GAAG,SAAS;CAC5C,oBAAoB,CAAC,OAAO,KAAK,EAAE,GAAG,SAAS;CAC/C,iBAAiB,CAAC,WAAW,OAAO,KAAK,CAAC,EAAE,CAAC;CAC7C,oBAAoB,CAAC,WAAW,OAAO,KAAK,EAAE,CAAC;AACjD,CAAC,CACH;;;;;;AAOA,MAAa,mCAAwC,IAAI,IAAI;CAC3D,GAAG,IAAI,IAAI,IAAI,aAAa,eAAe,KAAK,aAAa,CAAC,IAAI,MAAM,MAAM,CAAC;CAC/E,GAAG,IAAI;CACP,GAAG,IAAI;CACP,GAAG,IAAI;AACT,CAAC;;;;;;;AAQD,MAAa,qBAAqB,aAChC,SAAS,WAAW,GAAG,KAAK,eAAe,IAAI,eAAe,SAAS,MAAM,IAAI,MAAM,CAAC;;;;;;AAO1F,MAAa,qBAAqB,aAA8B,iBAAiB,IAAI,QAAQ;;;;;;AAO7F,MAAa,mBAAmB,aAA8B;CAC5D,IAAI,aAAA,6CAA2B,aAAA,2DAAgC,aAAA,4DAC7D,OAAO;CACT,IAAI,CAAC,SAAS,WAAW,GAAG,GAAG,OAAO;CACtC,MAAM,QAAQ,SAAS,MAAM,IAAI,MAAM;CACvC,OACE,eAAe,IAAI,SAAS,KAAK,KACjC,eAAe,IAAI,eAAe,KAAK,KACvC,UAAU;AAEd;;;;;;;AAQA,MAAa,kBAAkB,UAAkB,UAA2B;CAC1E,IAAI,CAAC,SAAS,WAAW,GAAG,GAAG,OAAO;CACtC,MAAM,QAAQ,SAAS,MAAM,IAAI,MAAM;CACvC,MAAM,SAAS,eAAe,IAAI,eAAe,KAAK;CACtD,IAAI,OAAO,OAAO,MAAM,GAAG;EACzB,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,OAAO;EACjC,MAAM,IAAI,OAAO,KAAK;EACtB,MAAM,CAAC,KAAK,OAAO,OAAO;EAC1B,OAAO,CAAC,OAAO,OAAO,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,MAAM,MAAM,IAAI,CAAC;CAC9E;CACA,MAAM,UAAU,eAAe,IAAI,SAAS,KAAK;CACjD,IAAI,OAAO,OAAO,OAAO,GAAG,OAAO;CACnC,IAAI,CAAC,QAAQ,MAAM,KAAK,KAAK,GAAG,OAAO;CACvC,IAAI,UAAU,UAAU,UAAU,cAAc,UAAU,iBAAiB;EACzE,MAAM,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,KAAK,QAAQ,MAAM,KAAK;EAC1D,OAAO,OAAO,YAAY,MAAM,KAAK;CACvC;CACA,OAAO;AACT;;;;;;;;AASA,MAAa,gBAAgB,SAC3B,KAAK,aAAa,KACd,SAAS,KAAK,KAAK,QAAQ,IAC3B,eAAe,KAAK,SAAS,OAAO,KAAK,KAAK;AAEpD,MAAM,eAAe,MAAc,UACjC,UAAU,IACL,OAAO,MAAM,KAAK,OAAO,QAAQ,KAAM,OAAO,QAAQ,IACrD,KACA,KACF;CAAC;CAAG;CAAG;CAAG;AAAE,CAAC,CAAC,SAAS,KAAK,IAC1B,KACA;;AA4CR,MAAM,WAAW,SAAiB,OAC/B,QAAQ,KAAK,CAAC,KAAK,CAAC,EAAA,CAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM;AAE7C,MAAM,OAAO;AAEb,MAAM,iBAAiB,MACrB,OAAO,IAAI,OAAO,cAAc,qBAAqB,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,SACnE,SAAS,MACL,KACC,KAAK,WAAW,GAAG,IAAI,KAAK,MAC5B,OAAO,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,MAAM,GAAG,CAAC,CAAC,EAC9D;AAEF,MAAM,WACJ,GACA,IACA,GACA,GACA,IACA,GACA,OACG;CACH,MAAM,uBAAO,IAAI,KAAK,CAAC;CACvB,KAAK,eAAe,GAAG,KAAK,GAAG,CAAC;CAChC,KAAK,YAAY,GAAG,IAAI,GAAG,CAAC;CAC5B,OAAO,KAAK,QAAQ,IAAI,IAAI,MAAO,OAAO,UAAU,UAAU,CAAC,IAAI;AACrE;AAGA,MAAM,UAAU,MAAM,IAAI,OAAe,IAAY,QAAgB,KAAK,CAAC,CAAC,KAC1E,MAAM,eAAsB,GAC5B,MAAM,KAAK,YAAY,QAAQ,IAAI,OAAO;CAAE,MAAM;CAAW,OAAO,MAAM,UAAU,MAAM;AAAI,EAAE,GAChG,MAAM,KAAK,YAAY,QAAQ,IAAI,MAAM;CACvC,MAAM,aACJ,EAAE,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI;CACzF,OAAO;EACL,MAAM;EACN,OAAO,WAAW,iBAAiB,WAAW,SAAS,GAAG,IAAI,GAAG,WAAW,KAAK,UAAU;CAC7F;AACF,CAAC,GACD,MAAM,KAAK,WAAW,QAAQ,IAAI,OAAO;CAAE,MAAM;CAAU,OAAO,cAAc,CAAC;AAAE,EAAE,GACrF,MAAM,KAAK,UAAU,QAAQ,IAAI,OAAO;CACtC,MAAM;CACN,OAAO,KAAK,OAAO,cAAc,CAAC,CAAC;AACrC,EAAE,GACF,MAAM,KAAK,MAAM,GAAG,YAAY,eAAe,IAAI,QAAQ,IAAI,MAAM;CACnE,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,QACnD,yDACA,CACF;CACA,MAAM,KAAK,cAAc,CAAC;CAC1B,OAAO;EACL,MAAM;EACN,MAAM;EACN,aAAa,QAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE;EAC3C,UAAU,OAAO,eAAe,EAAE;CACpC;AACF,CAAC,GACD,MAAM,KAAK,SAAS,QAAQ,IAAI,MAAM;CACpC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,MAAM,CAAC;CAC9C,MAAM,KAAK,cAAc,CAAC;CAC1B,OAAO;EACL,MAAM;EACN,MAAM;EACN,aAAa,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE;EAC1C,UAAU,OAAO,eAAe,EAAE;CACpC;AACF,CAAC,GACD,MAAM,KAAK,SAAS,QAAQ,IAAI,MAAM;CACpC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,mCAAmC,CAAC;CAC3E,MAAM,KAAK,cAAc,CAAC;CAC1B,OAAO;EACL,MAAM;EACN,MAAM;EACN,aAAa,QAAQ,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE;EAC/C,UAAU,OAAO,eAAe,EAAE;CACpC;AACF,CAAC,GACD,MAAM,KAAK,MAAM,GAAG,SAAS,cAAc,UAAU,aAAa,MAAM,IAAI,OAAO,IAAI,MAAM;CAC3F,MAAM,KAAK,cAAc,CAAC;CAC1B,MAAM,OAAO,OAAO,OAAO,EAAE,IAAI,IAAI,EAAE,QAAQ,sBAAsB,EAAE;CACvE,IAAI,IAAI;CACR,IAAI,KAAK;CACT,IAAI,IAAI;CACR,IAAI,UAAU,SAAS,IAAI,CAAC;MACvB,IAAI,UAAU,cAAc;EAC/B,MAAM,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,oBAAoB,IAAI;EAC/D,IAAI;EACJ,KAAK;CACP,OAAO,IAAI,UAAU,UAAU,KAAK,CAAC,KAAK,MAAM,CAAC;MAC5C,IAAI,UAAU,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC;MAC1E,IAAI,CAAC,KAAK,MAAM,CAAC;CACtB,IAAI,UAAU,WAAW,UAAU,gBAAgB,UAAU,UAAU,IAAI;CAC3E,OAAO;EACL,MAAM;EACN,MAAM;EACN,aAAa,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE;EAC1C,UAAU,OAAO,eAAe,EAAE;CACpC;AACF,CAAC,GACD,MAAM,KAAK,MAAM,GAAG,YAAY,qBAAqB,iBAAiB,IAAI,QAAQ,IAAI,MAAM;CAC1F,MAAM,IACJ,4FAA4F,KAC1F,CACF,KAAK,CAAC;CACR,MAAM,OAAO,EAAE,OAAO,MAAM,KAAK;CACjC,MAAM,SAAS,QAAQ,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,MAAM,CAAC;CAChE,MAAM,UACJ,QACC,OAAO,EAAE,MAAM,CAAC,IAAI,QACnB,OAAO,EAAE,MAAM,CAAC,IAAI,OACpB,OAAO,EAAE,MAAM,CAAC,IAAI,KACpB,OAAO,EAAE,MAAM,CAAC;CACpB,OAAO;EACL,MAAM;EACN,QAAQ,WAAW,IAAI,IAAI;EAC3B,SAAS,YAAY,IAAI,IAAI;CAC/B;AACF,CAAC,GACD,MAAM,QAAQ,QAAQ,IAAI,GAAG,QAAQ;CAAE,MAAM;CAAS,SAAS;CAAG,UAAU;AAAG,EAAE,CACnF;;;;;;;AAQA,MAAa,WAAW,SAAyB;CAC/C,MAAM,KAAK,KAAK,SAAS;CACzB,MAAM,IAAI,KAAK;CACf,IAAI,OAAA,6CAAqB,OAAA,2DAA0B,OAAA,4DACjD,OAAO;EAAE,MAAM;EAAU,OAAO;EAAG,UAAU,KAAK;EAAU,WAAW,KAAK;CAAU;CAExF,IAAI,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,eAAe,IAAI,CAAC,GAC9C,OAAO;EAAE,MAAM;EAAS,SAAS;EAAG,UAAU;CAAG;CACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,MAAM;CACjC,IAAI,eAAe,IAAI,eAAe,KAAK,GAAG,OAAO;EAAE,MAAM;EAAW,OAAO,OAAO,CAAC;CAAE;CACzF,OAAO,QAAQ,OAAO,GAAG,EAAE;AAC7B;AAEA,MAAM,iBAAiB,MACrB,MAAM,SAAS,MAAM,SAAS,WAAW,MAAM,SAAS,YAAY,MAAM,QAAQ,MAAM,OAAO,CAAC;;;;;;AAWlG,MAAa,mBAAmB,MAAsB;CACpD,IAAI,OAAO,MAAM,CAAC,GAAG,OAAO;CAC5B,IAAI,MAAM,UAAU,OAAO;CAC3B,IAAI,MAAM,WAAW,OAAO;CAC5B,IAAI,MAAM,GAAG,OAAO,OAAO,GAAG,GAAG,EAAE,IAAI,WAAW;CAElD,MAAM,CAAC,WAAW,IAAI,WAAW,MAAM,EAAE,cAAc,CAAC,CAAC,MAAM,GAAG;CAElE,OAAO,GADG,SAAS,SAAS,GAAG,IAAI,WAAW,GAAG,SAAS,IAC9C,GAAG,SAAS,QAAQ,KAAK,EAAE;AACzC;;;;;;;AAQA,MAAa,oBAAoB,MAAqC;CACpE,MAAM,IAAI,WAAW,OAAO,WAAW,UAAU,CAAC,CAAC;CACnD,OAAO,EAAE,SAAS,GAAG,IAAI,IAAI,GAAG,EAAE;AACpC;AAGA,MAAM,cAAc,MAAM,IAAI,OAAc,UAAmB,KAAK,CAAC,CAAC,KACpE,MAAM,eAAwB,GAC9B,MAAM,IAAI,YAAY,OAAO,IAAI,SAAS,IAAI,QAAQ,OAAO,MAAM,KAAK,GAAG,KAAK,QAAQ,CAAC,GACzF,MAAM,IAAI,YAAY,OAAO,IAAI,SAAS,IAAI,QAAQ,MAAM,MAAM,SAAS,GAAG,KAAK,QAAQ,CAAC,GAC5F,MAAM,IACJ,YACC,OAAO,IAAI,SAAS,IAAI,QAAQ,iBAAiB,MAAM,KAAK,GAAG,KAAK,QAAQ,CAC/E,GACA,MAAM,IACJ,UACA,UACC,OAAO,IAAI,SAAS,IAAI,QAAQ,gBAAgB,MAAM,KAAK,GAAG,KAAK,QAAQ,CAC9E,GACA,MAAM,QAAQ,QAAQ,IAAI,SAAS,IAAI,CACzC;;;;;;;AAQA,MAAa,gBAAgB,SAA2B,YAAY,QAAQ,IAAI,GAAG,IAAI;AAMvF,MAAM,MAAM;CACV,SAAS,IAAI;CACb,SAAS,IAAI;CACb,SAAS,IAAI;CACb,QAAQ,IAAI;CACZ,OAAO,IAAI;CACX,UAAU,IAAI;CACd,MAAM,IAAI;CACV,QAAQ,IAAI;AACd;;;;;AAMA,MAAa,UAAU,UAA2B,QAAQ,KAAK;;;;;AAM/D,MAAa,WAAW,UAA4B,IAAI,QAAQ,OAAO,KAAK,GAAG,IAAI,OAAO;;;;;AAM1F,MAAa,WAAW,UACtB,IAAI,QACF,UAAU,SAAS,KAAK,IAAI,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAC,SAAS,GAC1E,IAAI,OACN;;;;;AAMF,MAAa,WAAW,UACtB,IAAI,QACF,iBACE,WAAW,aAAa,KAAK,IACzB,QACA,UAAU,SAAS,KAAK,IACtB,WAAW,iBAAiB,KAAK,IACjC,WAAW,iBAAiB,KAAK,CACzC,GACA,IAAI,OACN;;;;;AAMF,MAAa,UAAU,UAA2B,IAAI,QAAQ,gBAAgB,KAAK,GAAG,IAAI,MAAM;;;;;AAMhG,MAAa,SAAS,UACpB,IAAI,QAAQ,gBAAgB,KAAK,OAAO,KAAK,CAAC,GAAG,IAAI,KAAK;;;;;AAM5D,MAAa,YAAY,UAAyB,IAAI,QAAQ,MAAM,YAAY,GAAG,IAAI,QAAQ;;;;;AAM/F,MAAa,QAAQ,UACnB,IAAI,QAAQ,MAAM,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI;;;;;AAMxD,MAAa,UAAU,UAA2B,IAAI,QAAQ,OAAO,IAAI,MAAM;;;;;;;AAQ/E,MAAa,SAAS,OAAe,aAAiC,IAAI,QAAQ,OAAO,QAAQ;;;;;;;;;AAUjG,MAAa,UAAU,UAA8D;CACnF,IAAI,UAAU,SAAS,KAAK,GAAG,OAAO,OAAO,KAAK;CAClD,IAAI,UAAU,UAAU,KAAK,GAAG,OAAO,QAAQ,KAAK;CACpD,IAAI,UAAU,SAAS,KAAK,GAAG,OAAO,QAAQ,KAAK;CACnD,IAAI,UAAU,SAAS,KAAK,GAAG,OAAO,OAAO,UAAU,KAAK,IAAI,QAAQ,KAAK,IAAI,OAAO,KAAK;CAC7F,OAAO,SAAS,KAAK;AACvB;AAGA,MAAM,OAAO,MAAM,KAAY,CAAC,CAAC,KAC/B,MAAM,eAAyE,GAC/E,MAAM,IAAI,WAAW,MAAM,OAAO,KAAK,EAAE,KAAK,CAAC,GAC/C,MAAM,IAAI,YAAY,MAAM,OAAO,KAAK,EAAE,KAAK,CAAC,GAChD,MAAM,IAAI,YAAY,MACpB,OAAO,KACL,EAAE,SAAS,OAAO,OAAO,gBAAgB,KAAK,EAAE,SAAS,OAAO,OAAO,gBAAgB,IACnF,OAAO,EAAE,KAAK,IACd,EAAE,KACR,CACF,GACA,MAAM,IAAI,YAAY,MAAM,OAAO,KAAK,WAAW,eAAe,EAAE,KAAK,CAAC,CAAC,GAC3E,MAAM,IAAI,UAAU,UAAU,MAAM,OAAO,KAAK,EAAE,KAAK,CAAC,GACxD,MAAM,IAAI,aAAa,MACrB,EAAE,SAAS,cAAc,EAAE,SAAS,SAChC,OAAO,KAAK,IAAI,KAAK,EAAE,WAAW,CAAC,IACnC,OAAO,KAAK,CAClB,GACA,MAAM,aAAa,OAAO,KAAK,CAAC,CAClC;;;;;;;;;AAUA,MAAa,QAAQ,SACnB,KAAK,QAAQ,IAAI,CAAC"}