@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 @@
1
+ {"version":3,"file":"serialize-96KBvKaf.mjs","names":["Term.Quad","Term.BlankNode","Term.defaultGraph","Grammar.skip","Grammar.pnChars","Grammar.alphanumeric","Grammar.pnCharsBase","Lexical.decodeUchar","Lexical.isIriChar","Lexical.decodeEchar","Grammar.iriRef","Lexical.isAbsoluteIri","Term.NamedNode","Iri.resolve","Grammar.pnPrefix","Grammar.pnLocal","Grammar.blankNodeLabel","Grammar.stringLiteral","Lexical.parseLanguageTag","Lexical.makeLiteral","Term.literal","Term.Literal","Term.Triple","Serialization.freshBlankNodePrefix","Term.defaultGraph","Serialization.RdfParseError","PrefixMap.make","Dataset.fromIterable","Serialization.withParseSpan","Serialization.withStreamSpan","Lexical.isPnCharsBase","Lexical.isPnChars","Lexical.isPnCharsU","Lexical.isDigit","Lexical.isHex","Term.escapeString","Term.isBlankNode","Term.isTriple","Term.isGround","Term.isDefaultGraph","Lexical.isWritableIri","Term.escapeIri","Term.blankNode","Term.isNamedNode","Term.Quad","Term.isLiteral","Lexical.blankNodeLabel","Iri.relativize","Lexical.isAbsoluteIri","Isomorphism.relabel","Dataset.fromIterable","Term.escapeIri","Lexical.isWritableIri","Term.isDefaultGraph","Serialization.RdfSerializeError","Serialization.withSerializeSpan","Serialization.withStreamSpan"],"sources":["../src/turtle/internal/loop.ts","../src/turtle/internal/parser.ts","../src/turtle/internal/parse.ts","../src/turtle/internal/writer.ts","../src/turtle/internal/streamWriter.ts","../src/turtle/internal/serialize.ts"],"sourcesContent":["/**\n * A loop as a function, for the scans that step a cursor until a condition\n * holds (decoding an escape, walking a list, counting line breaks).\n *\n * @internal\n */\nimport * as Iterable from 'effect/Iterable';\n\nconst BLOCK = 1024;\n\n/** `0 … BLOCK - 1`: the steps of one block run as an array scan, which engines optimise well. */\nconst offsets: ReadonlyArray<number> = Array.from({ length: BLOCK }, (_, i) => i);\n\n/** The first step of each block after the first: `BLOCK, 2 * BLOCK, …`. */\nconst blocks: Iterable<number> = Iterable.makeBy((b) => (b + 1) * BLOCK);\n\n/** Calls `step` with 0, 1, 2, … until it returns `false`. */\nexport const loop = (step: (i: number) => boolean): void => {\n // Most loops end within the first block, which needs no iterator\n if (offsets.every((i) => step(i))) {\n Iterable.some(blocks, (base) => offsets.some((i) => !step(base + i)));\n }\n};\n","/**\n * The Turtle and TriG (RDF 1.2) parser: a compiled\n * `@thomasfosterau/effect-parse` grammar over the input string, built on the\n * terminals of `Grammar.ts`, that emits quads as it reads.\n *\n * What depends on the document so far (prefixes, the base IRI, blank node\n * labels and counters, the current graph) lives in a per-parser `Builder`\n * that the grammar's callbacks update, as the hand-written parser it replaces\n * did. Errors are thrown out of the grammar (as a `Stop` at an offset) at the\n * points, and with the messages, of that parser.\n *\n * Input can be fed incrementally. Each run parses as many statements as the\n * buffered text holds; a statement that ends too close to the end of the\n * buffer to be sure of (or fails there) is rolled back and retried with more\n * text, and a statement that fails before the input is complete is re-read in\n * partial mode to tell a real error from a statement that is merely cut off.\n *\n * @internal\n */\nimport * as Ascii from '@thomasfosterau/effect-parse/Ascii';\nimport * as Compiler from '@thomasfosterau/effect-parse/Compiler';\nimport * as Parser from '@thomasfosterau/effect-parse/Parser';\nimport * as Token from '@thomasfosterau/effect-parse/Token';\nimport * as Iri from '../../Iri.ts';\nimport * as Term from '../../Term.ts';\nimport { rdf, xsd } from '../../Vocab.ts';\nimport * as Lexical from '../../ntriples/Lexical.ts';\nimport * as Arr from 'effect/Array';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Result from 'effect/Result';\nimport * as Str from 'effect/String';\nimport * as Grammar from '../Grammar.ts';\nimport { loop } from './loop.ts';\n\n/** @internal */\nexport class SyntaxFailure extends Error {\n readonly line: number;\n readonly column: number;\n constructor(message: string, line: number, column: number) {\n super(message);\n this.line = line;\n this.column = column;\n }\n}\n\n/** @internal */\nexport interface ParserOptions {\n readonly trig: boolean;\n readonly baseIri: Option.Option<string>;\n readonly blankNodePrefix: string;\n /** The graph for triples outside graph blocks. */\n readonly graph: Term.Graph;\n}\n\n/** An error at an offset of the text being parsed, thrown out of the grammar. */\nclass Stop {\n readonly message: string;\n readonly pos: number;\n constructor(message: string, pos: number) {\n this.message = message;\n this.pos = pos;\n }\n}\n\n/**\n * How far past the end of a statement, and past any dots there, the grammar\n * may look (`.%41`, `1.e+5`): a statement ending closer than this to the end\n * of incomplete input is retried once more text has arrived. (A run of dots\n * may continue a name, as in `ex:a...b`, however long it is.)\n */\nconst MARGIN = 3;\n\nconst C_DOT = 0x2e;\nconst C_BACKSLASH = 0x5c;\nconst C_PERCENT = 0x25;\nconst C_GT = 0x3e;\n\n/** A run of dots, matched where it starts. */\nconst DOTS = /\\.*/y;\n\n/** The offset after any dots at `pos`. */\nconst skipDots = (input: string, pos: number): number => {\n if (input.charCodeAt(pos) !== C_DOT) return pos;\n DOTS.lastIndex = pos;\n DOTS.test(input);\n return DOTS.lastIndex;\n};\n\ntype P<A> = Parser.Parser<A>;\n\n// -----------------------------------------------------------------------------\n// The builder\n// -----------------------------------------------------------------------------\n\n/** The subject being described, with the predicate, object and reifier in progress. */\nclass Frame {\n subject: Term.Subject = rdf.nil;\n predicate: Term.Predicate = rdf.nil;\n object: Term.Object = rdf.nil;\n reifier: Option.Option<Term.NamedNode | Term.BlankNode> = Option.none();\n /** The triple of the current object, once built for a reifier. */\n triple: Option.Option<Term.Triple> = Option.none();\n}\n\nconst noReifier = Option.none<Term.NamedNode | Term.BlankNode>();\nconst noTriple = Option.none<Term.Triple>();\n\n/** A previous prefix binding (`None` when the prefix was unbound). */\ntype PrefixBinding = readonly [prefix: string, previous: Option.Option<string>];\n\nclass Builder {\n readonly options: ParserOptions;\n readonly prefixes = MutableHashMap.empty<string, string>();\n base: Option.Option<string>;\n out: Array<Term.Quad> = [];\n readonly labels = MutableHashMap.empty<string, Term.BlankNode>();\n counter = 0;\n graph: Term.Graph;\n inGraph = false;\n\n /** Whether the input is complete, and the text being parsed. */\n final = true;\n input = '';\n readonly frames: Array<Frame> = [];\n depth = -1;\n /** A node read before it is known what it is (a TriG subject or graph name). */\n pending: Term.NamedNode | Term.BlankNode = rdf.nil;\n\n /** The state at the start of the current statement, to roll back to. */\n open = false;\n snapPos = 0;\n snapOut = 0;\n snapCounter = 0;\n snapGraph: Term.Graph;\n snapInGraph = false;\n snapBase: Option.Option<string> = Option.none();\n /** The prefix the statement bound, with its previous binding. */\n snapPrefix: Option.Option<PrefixBinding> = Option.none();\n /** Registers for the terms being read (none of them nests). */\n iriStart = 0;\n iriEnd = 0;\n nameStart = 0;\n prefix = '';\n stringStart = 0;\n stringEnd = 0;\n tagStart = 0;\n literalStart = 0;\n literalValue = '';\n\n /** Where the last complete statement ended. */\n lastEnd = 0;\n /** The state at the start of the run, for a re-run. */\n private runOut = 0;\n private runCounter = 0;\n private runGraph: Term.Graph;\n private runInGraph = false;\n private runBase: Option.Option<string> = Option.none();\n /** The prefixes set during the run, with their previous values. */\n private readonly runPrefixes: Array<PrefixBinding> = [];\n\n constructor(options: ParserOptions) {\n this.options = options;\n this.base = options.baseIri;\n this.graph = options.graph;\n this.snapGraph = options.graph;\n this.runGraph = options.graph;\n }\n\n /** Records the state at the start of a run. */\n beginRun(): void {\n this.open = false;\n this.lastEnd = 0;\n this.runOut = this.out.length;\n this.runCounter = this.counter;\n this.runGraph = this.graph;\n this.runInGraph = this.inGraph;\n this.runBase = this.base;\n this.runPrefixes.length = 0;\n }\n\n /** Returns to the state at the start of the run (for the re-run of a failed one). */\n restartRun(): void {\n this.open = false;\n this.lastEnd = 0;\n this.depth = -1;\n this.out.length = this.runOut;\n this.counter = this.runCounter;\n this.graph = this.runGraph;\n this.inGraph = this.runInGraph;\n this.base = this.runBase;\n Arr.forEach(Arr.reverse(this.runPrefixes), (binding) => this.restorePrefix(binding));\n this.runPrefixes.length = 0;\n }\n\n private restorePrefix([prefix, previous]: PrefixBinding): void {\n if (Option.isSome(previous)) MutableHashMap.set(this.prefixes, prefix, previous.value);\n else MutableHashMap.remove(this.prefixes, prefix);\n }\n\n frame(): Frame {\n // The grammar pushes a frame before it reads one, so the fallback is never used\n return this.frames[this.depth] ?? new Frame();\n }\n\n push(subject: Term.Subject): void {\n const frame = (this.frames[++this.depth] ??= new Frame());\n frame.subject = subject;\n frame.reifier = noReifier;\n frame.triple = noTriple;\n }\n\n emit(s: Term.Subject, p: Term.Predicate, o: Term.Object): void {\n this.out.push(new Term.Quad(s, p, o, this.graph));\n }\n\n fresh(): Term.BlankNode {\n return new Term.BlankNode(`${this.options.blankNodePrefix}_${(this.counter++).toString(36)}`);\n }\n\n snapshot(pos: number): void {\n this.open = true;\n this.depth = -1;\n this.snapPos = pos;\n this.snapOut = this.out.length;\n this.snapCounter = this.counter;\n this.snapGraph = this.graph;\n this.snapInGraph = this.inGraph;\n this.snapBase = this.base;\n this.snapPrefix = Option.none();\n }\n\n /** Undoes the statement in progress. */\n rollback(): void {\n if (!this.open) return;\n this.out.length = this.snapOut;\n this.counter = this.snapCounter;\n this.graph = this.snapGraph;\n this.inGraph = this.snapInGraph;\n this.base = this.snapBase;\n if (Option.isSome(this.snapPrefix)) {\n this.restorePrefix(this.snapPrefix.value);\n this.snapPrefix = Option.none();\n }\n this.depth = -1;\n }\n\n setPrefix(prefix: string, iri: string): void {\n const binding: PrefixBinding = [prefix, MutableHashMap.get(this.prefixes, prefix)];\n if (Option.isNone(this.snapPrefix)) this.snapPrefix = Option.some(binding);\n this.runPrefixes.push(binding);\n MutableHashMap.set(this.prefixes, prefix, iri);\n }\n\n openGraph(graph: Term.Graph): void {\n this.inGraph = true;\n this.graph = graph;\n }\n}\n\n/** The builder of the parser running the grammar. */\nlet b: Builder = new Builder({\n trig: false,\n baseIri: Option.none(),\n blankNodePrefix: '',\n graph: Term.defaultGraph,\n});\n\n// -----------------------------------------------------------------------------\n// Helpers\n// -----------------------------------------------------------------------------\n\nconst lit = Token.literal;\nconst skip = Grammar.skip;\n\n/** Runs `f` at the current offset, consuming nothing (never skipped by the compiler). */\nconst act = (f: (pos: number) => void): P<number> => Parser.tap(Parser.location, f);\n\n/** Throws `message` at the current offset. */\nconst failHere = <A = never>(message: string): P<A> =>\n Parser.make<A>((state) => {\n throw new Stop(message, state.pos);\n });\n\n/** Throws the error `diagnose` finds at the current offset. */\nconst failWith = <A = never>(diagnose: (input: string, pos: number) => Stop): P<A> =>\n Parser.make<A>((state) => {\n throw diagnose(state.input, state.pos);\n });\n\nconst at = (s: string): P<unknown> => Parser.peek(lit(s));\n\nconst nameChar = Token.oneOf([Grammar.pnChars, ':']);\nconst notName = Parser.not(nameChar);\n\n/** A case-insensitive keyword followed by a character that cannot continue a name. */\nconst keyword = (word: string): P<unknown> => Parser.terminated(Ascii.caseless(word), notName);\n\n/** An `@` keyword, not followed by a letter, digit or `-`. */\nconst atKeyword = (word: string): P<unknown> =>\n Parser.terminated(lit(word), Parser.not(Token.oneOf([Grammar.alphanumeric, '-'])));\n\n/** `.` or the error \"Expected `what`\". */\nconst expectDot = (what: string): P<unknown> => Parser.alt(lit('.'), failHere(`Expected ${what}`));\n\nconst nameStart: P<unknown> = Parser.peek(Parser.alt(lit(':'), Token.oneOf(Grammar.pnCharsBase)));\n\n// -----------------------------------------------------------------------------\n// Diagnostics: the errors of IRIs and strings, found by scanning them again\n// -----------------------------------------------------------------------------\n\nconst isDecodeError = Predicate.isTagged('Error');\n\n/**\n * Scans from `start` with `step`, which returns the next offset, or the\n * error found (`Some`) or the end of the term (`None`) to stop.\n */\nconst scan = (\n start: number,\n step: (i: number) => number | Option.Option<Stop>,\n): Option.Option<Stop> => {\n let i = start;\n let error = Option.none<Stop>();\n loop(() => {\n const next = step(i);\n if (Predicate.isNumber(next)) {\n i = next;\n return true;\n }\n error = next;\n return false;\n });\n return error;\n};\n\nconst fail = (message: string, pos: number): Option.Option<Stop> =>\n Option.some(new Stop(message, pos));\n\n/** The error in the IRI at `start`, or `None`; `end` bounds an IRI that matched. */\nconst iriError = (input: string, start: number, end = input.length): Option.Option<Stop> =>\n scan(start + 1, (i) => {\n if (i >= end) return end === input.length ? fail('Unterminated IRI', start) : Option.none();\n const c = input.charCodeAt(i);\n if (c === C_GT) return Option.none();\n if (c === C_BACKSLASH) {\n const decoded = Lexical.decodeUchar(input, i);\n if (isDecodeError(decoded)) return fail(decoded.message, i);\n if (!Lexical.isIriChar(decoded.value.codePointAt(0) ?? 0)) {\n return fail('Escaped character is not allowed in an IRI', i);\n }\n return i + decoded.length;\n }\n if (!Lexical.isIriChar(c)) return fail('Invalid character in IRI', i);\n return i + 1;\n });\n\n/** The error in the string at `start`, or `None`; `end` bounds a string that matched. */\nconst stringError = (input: string, start: number, end = input.length): Option.Option<Stop> => {\n const q = input.charCodeAt(start);\n const long = input.charCodeAt(start + 1) === q && input.charCodeAt(start + 2) === q;\n if (!long && input.charCodeAt(start + 1) === q) return Option.none();\n return scan(start + (long ? 3 : 1), (i) => {\n if (i >= end) {\n return end === input.length ? fail('Unterminated string literal', start) : Option.none();\n }\n const c = input.charCodeAt(i);\n if (c === q) {\n if (!long) return Option.none();\n if (input.charCodeAt(i + 1) === q && input.charCodeAt(i + 2) === q) return Option.none();\n return i + 1;\n }\n if (c === C_BACKSLASH) {\n if (Lexical.decodeEchar(input.charCodeAt(i + 1)) !== undefined) return i + 2;\n const decoded = Lexical.decodeUchar(input, i);\n if (isDecodeError(decoded)) return fail(decoded.message, i);\n return i + decoded.length;\n }\n if (!long && (c === 0x0a || c === 0x0d)) return fail('Line break in string literal', i);\n return i + 1;\n });\n};\n\nconst diagnosis =\n (find: (input: string, start: number) => Option.Option<Stop>, message: string) =>\n (input: string, pos: number): Stop =>\n Option.getOrElse(find(input, pos), () => new Stop(message, pos));\n\n// -----------------------------------------------------------------------------\n// Terms\n// -----------------------------------------------------------------------------\n\n/** `IRIREF` (at a `<`), resolved against the base. */\nconst iri: P<Term.NamedNode> = Parser.preceded(\n act((pos) => {\n b.iriStart = pos;\n }),\n Parser.terminated(\n Parser.alt(Parser.backtrack(Grammar.iriRef), failWith(diagnosis(iriError, 'Invalid IRI'))),\n act((pos) => {\n b.iriEnd = pos;\n }),\n ),\n).pipe(\n Parser.map((value) => {\n const start = b.iriStart;\n // Escapes (which shorten the value) may decode to characters an IRI cannot contain\n if (b.iriEnd - start - 2 !== value.length) {\n const error = iriError(b.input, start, b.iriEnd);\n if (Option.isSome(error)) throw error.value;\n }\n if (Option.isNone(b.base)) {\n if (!Lexical.isAbsoluteIri(value)) {\n throw new Stop(`Relative IRI <${value}> cannot be resolved without a base IRI`, start);\n }\n return new Term.NamedNode(value);\n }\n return new Term.NamedNode(Iri.resolve(value, b.base.value));\n }),\n);\n\n/** Fails when a prefix name is followed by a dot (which `PN_PREFIX` cannot end with). */\nconst noTrailingDot: P<void> = Parser.make<void>((state) => {\n if (state.input.charCodeAt(state.pos) === C_DOT) {\n throw new Stop('A prefix name must not end with \".\"', state.pos - b.prefix.length);\n }\n return undefined;\n});\n\n/** `PN_PREFIX` (possibly empty), before the colon. */\nconst prefixLabel: P<string> = Parser.alt(\n Parser.terminated(\n Parser.tap(Grammar.pnPrefix, (prefix) => {\n b.prefix = prefix;\n }),\n noTrailingDot,\n ),\n Parser.preceded(at(':'), Parser.succeed('')),\n failHere('Invalid prefix name'),\n);\n\n/** Fails on the escapes that end a local name early: `%` or `\\` (after any dots). */\nconst localTail: P<void> = Parser.make<void>((state) => {\n const input = state.input;\n const i = skipDots(input, state.pos);\n const c = input.charCodeAt(i);\n if (c === C_PERCENT) throw new Stop('Invalid percent escape', i);\n if (c === C_BACKSLASH) throw new Stop('Invalid escape in local name', i);\n return undefined;\n});\n\nconst prefixedName: P<Term.NamedNode> = Parser.preceded(\n Parser.seq(\n act((pos) => {\n b.nameStart = pos;\n }),\n Parser.tap(prefixLabel, (prefix) => {\n b.prefix = prefix;\n }),\n ),\n Parser.alt(\n Parser.preceded(\n lit(':'),\n Parser.terminated(Parser.alt(Grammar.pnLocal, Parser.succeed('')), localTail),\n ).pipe(\n Parser.map((local) => {\n const ns = MutableHashMap.get(b.prefixes, b.prefix);\n if (Option.isNone(ns)) throw new Stop(`Undefined prefix \"${b.prefix}:\"`, b.nameStart);\n return new Term.NamedNode(ns.value + local);\n }),\n ),\n Parser.make<Term.NamedNode>(() => {\n throw new Stop('Expected a prefixed name', b.nameStart);\n }),\n ),\n);\n\nconst blankNode: P<Term.BlankNode> = Parser.alt(\n Grammar.blankNodeLabel,\n Parser.preceded(lit('_:'), failHere<string>('Invalid blank node label')),\n).pipe(\n Parser.map((label) => {\n const found = MutableHashMap.get(b.labels, label);\n if (Option.isSome(found)) return found.value;\n const node = new Term.BlankNode(\n b.options.blankNodePrefix + (label.startsWith('_') ? `_${label}` : label),\n );\n MutableHashMap.set(b.labels, label, node);\n return node;\n }),\n);\n\n/** An IRI or a blank node label (no anonymous nodes). */\nconst resource: P<Term.NamedNode | Term.BlankNode> = Parser.alt(\n Parser.preceded(at('<<'), failHere('Unexpected triple')),\n Parser.preceded(at('<'), iri),\n Parser.preceded(at('_:'), blankNode),\n prefixedName,\n);\n\n/** Any of the four string forms (at a quote), returning the value. */\nconst string: P<string> = Parser.preceded(\n act((pos) => {\n b.stringStart = pos;\n }),\n Parser.terminated(\n Parser.alt(\n Parser.backtrack(Grammar.stringLiteral),\n failWith(diagnosis(stringError, 'Invalid string literal')),\n ),\n act((pos) => {\n b.stringEnd = pos;\n }),\n ),\n).pipe(\n Parser.map((value) => {\n // Numeric escapes (which shorten the value) may encode surrogates, which the terminal accepts\n const input = b.input;\n const start = b.stringStart;\n const q = input.charCodeAt(start);\n const quotes = input.charCodeAt(start + 1) === q && input.charCodeAt(start + 2) === q ? 6 : 2;\n if (b.stringEnd - start - quotes !== value.length) {\n const error = stringError(input, start, b.stringEnd);\n if (Option.isSome(error)) throw error.value;\n }\n return value;\n }),\n);\n\nconst datatype: P<Term.NamedNode> = Parser.alt(\n Parser.preceded(Parser.seq(Parser.not(lit('<<')), at('<')), iri),\n Parser.preceded(nameStart, prefixedName),\n failHere('Expected a datatype IRI'),\n);\n\nconst languageTag: P<Lexical.LanguageTag> = Parser.preceded(\n lit('@'),\n Parser.preceded(\n act((pos) => {\n b.tagStart = pos;\n }),\n Token.takeWhile([Grammar.alphanumeric, '-']),\n ),\n).pipe(\n Parser.map((text) => {\n const tag = Lexical.parseLanguageTag(text);\n if (tag === undefined) throw new Stop('Invalid language tag', b.tagStart);\n return tag;\n }),\n);\n\n/** The literal read, with a language tag or datatype. */\nconst annotatedLiteral = (annotation: Lexical.LanguageTag | Term.NamedNode): Term.Literal => {\n const result = Lexical.makeLiteral(b.literalValue, annotation);\n if (Predicate.isString(result)) throw new Stop(result, b.literalStart);\n return result;\n};\n\nconst rdfLiteral: P<Term.Literal> = Parser.preceded(\n Parser.seq(\n act((pos) => {\n b.literalStart = pos;\n }),\n Parser.tap(string, (value) => {\n b.literalValue = value;\n }),\n skip,\n ),\n Parser.alt(\n languageTag.pipe(Parser.map(annotatedLiteral)),\n Parser.preceded(\n Parser.alt(lit('^^'), Parser.preceded(at('^'), failHere(\"Expected '^^'\"))),\n Parser.preceded(skip, datatype),\n ).pipe(Parser.map(annotatedLiteral)),\n Parser.make<Term.Literal>(() => Term.literal(b.literalValue)),\n ),\n);\n\nconst numericLiteral: P<Term.Literal> = Parser.alt(\n Grammar.double.pipe(Parser.map((value) => new Term.Literal(value, xsd.double))),\n Grammar.decimal.pipe(Parser.map((value) => new Term.Literal(value, xsd.decimal))),\n Grammar.integer.pipe(Parser.map((value) => new Term.Literal(value, xsd.integer))),\n failHere('Invalid number'),\n);\n\nconst trueLiteral = new Term.Literal('true', xsd.boolean);\nconst falseLiteral = new Term.Literal('false', xsd.boolean);\n\nconst booleanLiteral: P<Term.Literal> = Parser.alt(\n Parser.terminated(lit('true'), notName).pipe(Parser.as(trueLiteral)),\n Parser.terminated(lit('false'), notName).pipe(Parser.as(falseLiteral)),\n);\n\n/** Numbers, booleans and prefixed names. */\nconst simpleObject: P<Term.Object> = Parser.alt(\n Parser.preceded(Parser.peek(Token.oneOf('0123456789+-.')), numericLiteral),\n booleanLiteral,\n Parser.preceded(nameStart, prefixedName),\n failHere('Expected an object'),\n);\n\nconst anon: P<Term.BlankNode> = Parser.seq(lit('['), Token.takeWhile(' \\t\\r\\n'), lit(']')).pipe(\n Parser.map(() => b.fresh()),\n);\n\n/** `iri | BlankNode`, including `[]`. */\nconst iriOrBlankNode = (what: string): P<Term.NamedNode | Term.BlankNode> =>\n Parser.alt(\n Parser.preceded(\n at('['),\n Parser.alt(anon, failHere(`Blank node property lists are not allowed in ${what}`)),\n ),\n Parser.preceded(at('<<'), failHere(`Unexpected triple in ${what}`)),\n Parser.preceded(at('('), failHere(`Collections are not allowed in ${what}`)),\n Parser.preceded(Parser.peek(Token.oneOf('<_:')), resource),\n Parser.preceded(\n Parser.seq(Parser.peek(Token.oneOf(Grammar.pnCharsBase)), Parser.not(booleanLiteral)),\n resource,\n ),\n failHere(`Expected an IRI or blank node in ${what}`),\n );\n\nconst verb: P<Term.NamedNode> = Parser.alt(\n Parser.preceded(at('<<'), failHere('Triples are not allowed as predicates')),\n Parser.preceded(at('<'), iri),\n Parser.terminated(lit('a'), notName).pipe(Parser.as(rdf.type)),\n Parser.preceded(nameStart, prefixedName),\n failHere('Expected a predicate'),\n);\n\nconst tripleTerm: P<Term.Triple> = Parser.suspend(() => tripleTermDef);\nconst reifiedTriple: P<Term.NamedNode | Term.BlankNode> = Parser.suspend(() => reifiedTripleDef);\nconst object: P<Term.Object> = Parser.suspend(() => objectDef);\nconst predicateObjectList: P<unknown> = Parser.suspend(() => predicateObjectListDef);\n\n/** The object of a reified triple or triple term. */\nconst innerObject = (reified: boolean): P<Term.Object> => {\n const what = reified ? 'reified triples' : 'triple terms';\n return Parser.alt(\n Parser.preceded(at('<<('), tripleTerm),\n Parser.preceded(\n at('<<'),\n reified ? reifiedTriple : failHere('Reified triples are not allowed in triple terms'),\n ),\n Parser.preceded(Parser.peek(Token.oneOf('<_')), resource),\n Parser.preceded(\n at('['),\n Parser.alt(anon, failHere(`Blank node property lists are not allowed in ${what}`)),\n ),\n Parser.preceded(at('('), failHere(`Collections are not allowed in ${what}`)),\n Parser.preceded(Parser.peek(Token.oneOf('\"\\'')), rdfLiteral),\n simpleObject,\n );\n};\n\nconst tripleTermDef: P<Term.Triple> = Parser.seq(\n Parser.preceded(Parser.seq(lit('<<('), skip), iriOrBlankNode('the subject of a triple term')),\n Parser.preceded(skip, verb),\n Parser.preceded(skip, innerObject(false)),\n Parser.preceded(skip, Parser.alt(lit(')>>'), failHere(\"Expected ')>>'\"))),\n).pipe(Parser.map(([s, p, o]) => new Term.Triple(s, p, o)));\n\nconst startsReifierId: P<unknown> = Parser.peek(\n Parser.alt(\n Parser.preceded(Parser.not(lit('<<')), lit('<')),\n lit('_:'),\n anon,\n lit(':'),\n Token.oneOf(Grammar.pnCharsBase),\n ),\n);\n\n/** A reifier IRI or blank node, including `[]`. */\nconst reifierId: P<Term.NamedNode | Term.BlankNode> = Parser.preceded(\n startsReifierId,\n Parser.alt(Parser.preceded(at('['), anon), resource),\n);\n\nconst reifiedTripleDef: P<Term.NamedNode | Term.BlankNode> = Parser.seq(\n Parser.preceded(\n Parser.seq(lit('<<'), skip),\n Parser.alt(\n Parser.preceded(Parser.seq(at('<<'), Parser.not(lit('<<('))), reifiedTriple),\n iriOrBlankNode('the subject of a reified triple'),\n ),\n ),\n Parser.preceded(skip, verb),\n Parser.preceded(skip, innerObject(true)),\n Parser.preceded(\n skip,\n Parser.opt(\n Parser.preceded(Parser.seq(lit('~'), skip), Parser.terminated(Parser.opt(reifierId), skip)),\n ),\n ),\n Parser.alt(lit('>>'), failHere(\"Expected '>>'\")),\n).pipe(\n Parser.map(([s, p, o, r]) => {\n const reifier = Option.getOrElse(Option.flatten(r), () => b.fresh());\n b.emit(reifier, rdf.reifies, new Term.Triple(s, p, o));\n return reifier;\n }),\n);\n\nconst blankNodePropertyList: P<Term.BlankNode> = Parser.seq(\n Parser.tap(lit('[').pipe(Parser.map(() => b.fresh())), (node) => b.push(node)),\n Parser.preceded(skip, predicateObjectList),\n Parser.preceded(skip, Parser.alt(lit(']'), failHere(\"Expected ']'\"))),\n).pipe(\n Parser.tap(() => {\n b.depth--;\n }),\n Parser.map(([node]) => node),\n);\n\nconst collection: P<Term.NamedNode | Term.BlankNode> = Parser.preceded(\n Parser.seq(lit('('), skip),\n Parser.terminated(\n Parser.repeat(\n Parser.preceded(\n Parser.seq(Parser.not(lit(')')), Parser.not(Parser.eof)),\n Parser.terminated(object, skip),\n ),\n ),\n Parser.alt(lit(')'), failHere(\"Expected ')'\")),\n ),\n).pipe(\n Parser.map((items) => {\n if (Arr.isReadonlyArrayEmpty(items)) return rdf.nil;\n // Each cell is labelled before the next: `( a b )` is `_:c0 first a ; rest _:c1`, …\n const head = b.fresh();\n Arr.reduce<Term.Object, Term.NamedNode | Term.BlankNode>(items, head, (cell, item, i) => {\n b.emit(cell, rdf.first, item);\n const next = i + 1 < items.length ? b.fresh() : rdf.nil;\n b.emit(cell, rdf.rest, next);\n return next;\n });\n return head;\n }),\n);\n\n/**\n * A parser as a rule of its own: the compiler inlines everything between\n * rules, and leaves inlined into the recursive productions would make their\n * stack frames (and so the nesting the parser supports) much larger.\n */\nconst rule = <A>(p: P<A>): P<A> => Parser.suspend(() => p);\n\nconst objectDef: P<Term.Object> = Parser.alt(\n Parser.preceded(at('<<('), tripleTerm),\n Parser.preceded(at('<<'), reifiedTriple),\n Parser.preceded(at('<'), rule(iri)),\n Parser.preceded(at('_:'), rule(blankNode)),\n Parser.preceded(at('_'), rule(prefixedName)),\n Parser.preceded(at('['), Parser.alt(rule(anon), rule(blankNodePropertyList))),\n Parser.preceded(at('('), rule(collection)),\n Parser.preceded(Parser.peek(Token.oneOf('\"\\'')), rule(rdfLiteral)),\n rule(simpleObject),\n);\n\n// -----------------------------------------------------------------------------\n// Predicate-object lists\n// -----------------------------------------------------------------------------\n\nconst freshNode: P<Term.BlankNode> = Parser.make<Term.BlankNode>(() => b.fresh());\n\nconst emitObject: P<Term.Object> = Parser.tap(object, (o) => {\n const frame = b.frame();\n b.emit(frame.subject, frame.predicate, o);\n frame.object = o;\n frame.reifier = noReifier;\n frame.triple = noTriple;\n});\n\n/** The triple of the frame's current object, built once. */\nconst frameTriple = (frame: Frame): Term.Triple => {\n if (Option.isSome(frame.triple)) return frame.triple.value;\n const triple = new Term.Triple(frame.subject, frame.predicate, frame.object);\n frame.triple = Option.some(triple);\n return triple;\n};\n\nconst reifies = (frame: Frame, reifier: Term.NamedNode | Term.BlankNode): void => {\n b.emit(reifier, rdf.reifies, frameTriple(frame));\n};\n\n// `~ r` names a reifier of the triple; `{| … |}` describes it (a fresh one if none was named).\nconst annotation: P<unknown> = Parser.repeat(\n Parser.preceded(\n skip,\n Parser.alt(\n Parser.tap(\n Parser.preceded(Parser.seq(lit('~'), skip), Parser.alt(reifierId, freshNode)),\n (reifier) => {\n const frame = b.frame();\n reifies(frame, reifier);\n frame.reifier = Option.some(reifier);\n },\n ),\n Parser.seq(\n Parser.tap(lit('{|'), () => {\n const frame = b.frame();\n if (Option.isSome(frame.reifier)) {\n b.push(frame.reifier.value);\n return;\n }\n const reifier = b.fresh();\n frame.reifier = Option.some(reifier);\n reifies(frame, reifier);\n b.push(reifier);\n }),\n Parser.preceded(skip, predicateObjectList),\n Parser.preceded(skip, Parser.alt(lit('|}'), failHere(\"Expected '|}'\"))),\n ).pipe(\n Parser.tap(() => {\n b.depth--;\n b.frame().reifier = noReifier;\n }),\n ),\n ),\n ),\n);\n\nconst objectList: P<unknown> = Parser.seq(\n emitObject,\n rule(annotation),\n skip,\n Parser.repeat(\n Parser.preceded(Parser.seq(lit(','), skip), Parser.seq(emitObject, annotation, skip)),\n ),\n);\n\nconst setPredicate: P<Term.NamedNode> = Parser.tap(rule(verb), (p) => {\n b.frame().predicate = p;\n});\n\nconst startsVerb: P<unknown> = Parser.peek(\n Parser.alt(\n Parser.preceded(Parser.not(lit('<<')), lit('<')),\n lit(':'),\n Token.oneOf(Grammar.pnCharsBase),\n ),\n);\n\nconst predicateObjectListDef: P<unknown> = Parser.seq(\n setPredicate,\n skip,\n objectList,\n Parser.repeat(\n Parser.preceded(\n Parser.repeat(Parser.seq(lit(';'), skip), { min: 1 }),\n Parser.opt(Parser.preceded(startsVerb, Parser.seq(setPredicate, skip, objectList))),\n ),\n ),\n);\n\n/** `subject` (pushed while `rest` describes it). */\nconst describing = (subject: P<Term.Subject>, rest: P<unknown>): P<unknown> =>\n Parser.terminated(\n Parser.preceded(\n Parser.tap(subject, (s) => b.push(s)),\n rest,\n ),\n act(() => {\n b.depth--;\n }),\n );\n\nconst notEnd: P<unknown> = Parser.not(Token.oneOf('.}'));\n\nconst properties: P<unknown> = Parser.preceded(skip, predicateObjectList);\nconst optionalProperties: P<unknown> = Parser.preceded(\n skip,\n Parser.opt(Parser.preceded(notEnd, predicateObjectList)),\n);\n\n/** The `triples` production. */\nconst triples: P<unknown> = Parser.alt(\n Parser.preceded(\n at('['),\n Parser.alt(describing(anon, properties), describing(blankNodePropertyList, optionalProperties)),\n ),\n Parser.preceded(at('('), describing(collection, properties)),\n Parser.preceded(at('<<('), failHere('Triple terms are not allowed as subjects')),\n Parser.preceded(at('<<'), describing(reifiedTriple, optionalProperties)),\n describing(resource, properties),\n);\n\n// -----------------------------------------------------------------------------\n// Statements\n// -----------------------------------------------------------------------------\n\nconst prefixDirective = (turtle: boolean): P<unknown> =>\n Parser.seq(\n Parser.tap(\n Parser.preceded(skip, Parser.seq(Parser.location, prefixLabel, Parser.opt(lit(':')))),\n ([start, , colon]) => {\n if (Option.isNone(colon)) throw new Stop('Expected a prefix name ending with \":\"', start);\n },\n ),\n Parser.preceded(skip, Parser.alt(Parser.preceded(at('<'), iri), failHere('Expected an IRI'))),\n turtle ? Parser.preceded(skip, expectDot(\"'.' after @prefix\")) : Parser.succeed(undefined),\n ).pipe(\n Parser.tap(([[, prefix], ref]) => {\n b.setPrefix(prefix, ref.value);\n }),\n );\n\nconst baseDirective = (turtle: boolean): P<unknown> =>\n Parser.seq(\n Parser.preceded(skip, Parser.alt(Parser.preceded(at('<'), iri), failHere('Expected an IRI'))),\n turtle ? Parser.preceded(skip, expectDot(\"'.' after @base\")) : Parser.succeed(undefined),\n ).pipe(\n Parser.tap(([ref]) => {\n b.base = Option.some(ref.value);\n }),\n );\n\nconst versionDirective = (turtle: boolean): P<unknown> =>\n Parser.seq(\n Parser.preceded(\n skip,\n Parser.alt(\n Parser.preceded(\n Parser.peek(Parser.alt(lit('\"\"\"'), lit(\"'''\"))),\n failHere('Long strings are not allowed as version specifiers'),\n ),\n Parser.preceded(Parser.peek(Token.oneOf('\"\\'')), string),\n failHere('Expected a version string'),\n ),\n ),\n turtle ? Parser.preceded(skip, expectDot(\"'.' after @version\")) : Parser.succeed(undefined),\n );\n\nconst directive: P<unknown> = Parser.alt(\n Parser.preceded(\n at('@'),\n Parser.alt(\n Parser.preceded(atKeyword('@prefix'), prefixDirective(true)),\n Parser.preceded(atKeyword('@base'), baseDirective(true)),\n Parser.preceded(atKeyword('@version'), versionDirective(true)),\n failHere('Unknown directive'),\n ),\n ),\n Parser.preceded(keyword('prefix'), prefixDirective(false)),\n Parser.preceded(keyword('base'), baseDirective(false)),\n Parser.preceded(keyword('version'), versionDirective(false)),\n);\n\nconst endOfStatement: P<unknown> = Parser.preceded(\n skip,\n expectDot(\"'.' at the end of the statement\"),\n);\n\nconst turtleStatement: P<unknown> = Parser.alt(directive, Parser.seq(triples, endOfStatement));\n\nconst pending = (p: P<Term.NamedNode | Term.BlankNode>): P<unknown> =>\n Parser.tap(p, (node) => {\n b.pending = node;\n });\n\n/** A graph block opened with `{` after `pending`, or properties of `pending`. */\nconst graphOrProperties: P<unknown> = Parser.preceded(\n skip,\n Parser.alt(\n Parser.tap(lit('{'), () => b.openGraph(b.pending)),\n Parser.seq(\n describing(\n Parser.make<Term.Subject>(() => b.pending),\n predicateObjectList,\n ),\n endOfStatement,\n ),\n ),\n);\n\nconst graphLabel: P<Term.NamedNode | Term.BlankNode> = Parser.alt(\n Parser.preceded(at('['), Parser.alt(anon, failHere('Expected a graph name'))),\n resource,\n);\n\n/** A TriG block outside graphs. */\nconst block: P<unknown> = Parser.alt(\n Parser.tap(lit('{'), () => b.openGraph(Term.defaultGraph)),\n Parser.preceded(\n keyword('graph'),\n Parser.seq(\n pending(Parser.preceded(skip, graphLabel)),\n Parser.preceded(skip, Parser.alt(lit('{'), failHere(\"Expected '{' after graph name\"))),\n ).pipe(Parser.tap(() => b.openGraph(b.pending))),\n ),\n Parser.preceded(\n at('['),\n Parser.alt(\n Parser.preceded(pending(anon), graphOrProperties),\n Parser.seq(\n describing(\n blankNodePropertyList,\n Parser.preceded(\n skip,\n Parser.opt(Parser.preceded(Parser.not(lit('.')), predicateObjectList)),\n ),\n ),\n endOfStatement,\n ),\n ),\n ),\n Parser.preceded(at('('), Parser.seq(describing(collection, properties), endOfStatement)),\n Parser.preceded(at('<<('), failHere('Triple terms are not allowed as subjects')),\n Parser.preceded(\n at('<<'),\n Parser.seq(\n describing(\n reifiedTriple,\n Parser.preceded(\n skip,\n Parser.opt(Parser.preceded(Parser.not(lit('.')), predicateObjectList)),\n ),\n ),\n endOfStatement,\n ),\n ),\n Parser.preceded(pending(resource), graphOrProperties),\n);\n\n/** Whether a TriG graph block is open (consuming nothing). */\nconst inGraph: P<void> = Parser.make<void>((state) =>\n b.inGraph ? undefined : state.backtrack('Verify', ['a graph block']),\n);\n\nconst graphStatement: P<unknown> = Parser.alt(\n Parser.tap(lit('}'), () => {\n b.inGraph = false;\n b.graph = b.options.graph;\n }),\n Parser.seq(triples, skip, Parser.alt(lit('.'), at('}'), failHere(\"Expected '.' or '}'\"))),\n);\n\nconst trigStatement: P<unknown> = Parser.alt(\n Parser.preceded(inGraph, graphStatement),\n directive,\n block,\n);\n\n/** Records the state at the start of a statement. */\nconst beginStatement: P<void> = Parser.make<void>((state) => {\n b.snapshot(state.pos);\n return undefined;\n});\n\n/**\n * Ends a statement, unless the input may continue so close to its end that\n * the statement could still turn out differently.\n */\nconst endStatement: P<void> = Parser.make<void>((state) => {\n if (!b.final) {\n const input = state.input;\n const i = skipDots(input, state.pos);\n if (i + MARGIN > input.length) return state.backtrack('Verify', ['more input']);\n }\n b.open = false;\n b.lastEnd = state.pos;\n return undefined;\n});\n\n/** Starts a run: the compiled run, or the interpreted re-run after it fails. */\nconst startRun: P<void> = Parser.make<void>((state) => {\n b.input = state.input;\n b.restartRun();\n return undefined;\n});\n\nconst statements = (statement: P<unknown>): P<number> =>\n Compiler.jit(\n Parser.preceded(\n startRun,\n Parser.preceded(\n Parser.repeat(\n Parser.preceded(\n skip,\n Parser.preceded(\n Parser.not(Parser.eof),\n Parser.delimited(beginStatement, statement, endStatement),\n ),\n ),\n ),\n Parser.preceded(skip, Parser.location),\n ),\n ),\n );\n\nconst turtleStatements = statements(turtleStatement);\nconst trigStatements = statements(trigStatement);\n\n/** One statement, for the partial-mode check (setting the input first). */\nconst single = (statement: P<unknown>): P<unknown> =>\n Parser.preceded(\n Parser.make<void>((state) => {\n b.input = state.input;\n return undefined;\n }),\n statement,\n );\n\nconst turtleSingle = single(turtleStatement);\nconst trigSingle = single(trigStatement);\n\n// -----------------------------------------------------------------------------\n// Driving\n// -----------------------------------------------------------------------------\n\n/** @internal */\nexport class TurtleParser {\n private input = '';\n private pos = 0;\n private final = true;\n /** Lines and columns consumed before the start of `input`. */\n private lineOffset = 0;\n private columnOffset = 0;\n private started = false;\n private readonly builder: Builder;\n /** How much text the failing statement at `pos` had when it was last checked (or -1). */\n private checked = -1;\n\n readonly options: ParserOptions;\n constructor(options: ParserOptions) {\n this.options = options;\n this.builder = new Builder(options);\n }\n\n get prefixes(): MutableHashMap.MutableHashMap<string, string> {\n return this.builder.prefixes;\n }\n\n get base(): Option.Option<string> {\n return this.builder.base;\n }\n\n /** Parses a complete document. */\n parseDocument(input: string): Array<Term.Quad> {\n this.input = input;\n this.pos = 0;\n this.final = true;\n this.skipBom();\n this.run();\n return this.finish();\n }\n\n /** Adds a chunk of input and returns the statements completed so far. */\n feed(chunk: string): Array<Term.Quad> {\n this.discardConsumed();\n this.input += chunk;\n this.final = false;\n this.skipBom();\n this.run();\n return this.take();\n }\n\n /** Signals the end of input and returns the remaining statements. */\n end(): Array<Term.Quad> {\n this.final = true;\n this.run();\n return this.finish();\n }\n\n private finish(): Array<Term.Quad> {\n if (this.builder.inGraph) this.fail(\"Unterminated graph block: expected '}'\");\n return this.take();\n }\n\n private take(): Array<Term.Quad> {\n const out = this.builder.out;\n this.builder.out = [];\n return out;\n }\n\n private skipBom(): void {\n if (this.started) return;\n if (Str.isEmpty(this.input)) return;\n this.started = true;\n if (this.input.charCodeAt(0) === 0xfeff) this.pos = 1;\n }\n\n private discardConsumed(): void {\n if (this.pos === 0) return;\n const consumed = this.input.slice(0, this.pos);\n const lastBreak = Math.max(consumed.lastIndexOf('\\n'), consumed.lastIndexOf('\\r'));\n if (lastBreak === -1) {\n this.columnOffset += consumed.length;\n } else {\n this.lineOffset += countLines(consumed);\n this.columnOffset = consumed.length - lastBreak - 1;\n }\n this.input = this.input.slice(this.pos);\n this.pos = 0;\n }\n\n /** Parses the statements of the buffered input. */\n private run(): void {\n const base = this.pos;\n const input = base === 0 ? this.input : this.input.slice(base);\n const builder = this.builder;\n b = builder;\n builder.final = this.final;\n builder.beginRun();\n const outcome = Result.try({\n try: () => {\n const result = Parser.parsePeek(\n this.options.trig ? trigStatements : turtleStatements,\n input,\n );\n if (Result.isFailure(result)) this.fail('Invalid syntax', base + result.failure.offset);\n const [, end] = result.success;\n if (this.final) {\n if (end < input.length) this.fail('Invalid syntax', base + end);\n this.pos = base + end;\n } else {\n builder.rollback();\n this.pos = base + builder.lastEnd;\n this.checked = -1;\n }\n },\n // A `Stop` is the expected failure; anything else (a `SyntaxFailure`,\n // a bug) keeps propagating.\n catch: (e) => {\n if (e instanceof Stop) return e;\n throw e;\n },\n });\n if (Result.isFailure(outcome)) {\n const e = outcome.failure;\n builder.rollback();\n if (this.final) this.fail(e.message, base + e.pos);\n // A statement that fails is usually just cut off: it is retried with more\n // text, and checked when it still fails once its text has doubled (which\n // keeps the interpreted checks linear in the input)\n const start = builder.snapPos;\n const remaining = input.length - start;\n if (start !== 0 || this.checked < 0 || remaining < 2 * this.checked) {\n if (start !== 0 || this.checked < 0) this.checked = remaining;\n this.pos = base + start;\n return;\n }\n this.checked = remaining;\n this.check(input, base);\n }\n }\n\n /**\n * Before the input is complete, re-reads the statement that failed in\n * partial mode: it fails again if the error is real, and runs out of input\n * if the statement is only cut off.\n */\n private check(input: string, base: number): void {\n const builder = this.builder;\n const start = builder.snapPos;\n builder.open = true;\n const outcome = Result.try({\n try: () => {\n const result = Parser.parsePartial(\n this.options.trig ? trigSingle : turtleSingle,\n input.slice(start),\n );\n if (Result.isFailure(result))\n this.fail('Invalid syntax', base + start + result.failure.offset);\n },\n // A `Stop` is the expected failure; anything else (a `SyntaxFailure`,\n // a bug) keeps propagating.\n catch: (e) => {\n if (e instanceof Stop) return e;\n throw e;\n },\n });\n if (Result.isFailure(outcome)) {\n builder.rollback();\n this.fail(outcome.failure.message, base + start + outcome.failure.pos);\n }\n builder.rollback();\n builder.open = false;\n this.pos = base + start;\n }\n\n private fail(message: string, pos: number = this.pos): never {\n const before = this.input.slice(0, pos);\n const lines = countLines(before);\n const lastBreak = Math.max(before.lastIndexOf('\\n'), before.lastIndexOf('\\r'));\n const column = lines === 0 ? this.columnOffset + pos + 1 : pos - lastBreak;\n throw new SyntaxFailure(message, this.lineOffset + lines + 1, column);\n }\n}\n\n/** A line break: `\\r\\n`, `\\r` or `\\n`. */\nconst LINE_BREAK = /\\r\\n?|\\n/g;\n\nconst countLines = (text: string): number => {\n let n = 0;\n LINE_BREAK.lastIndex = 0;\n loop(() => {\n if (!LINE_BREAK.test(text)) return false;\n n++;\n return true;\n });\n return n;\n};\n","import * as Dataset from '../../Dataset.ts';\nimport * as PrefixMap from '../../PrefixMap.ts';\nimport * as Serialization from '../../Serialization.ts';\nimport * as Term from '../../Term.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Stream from 'effect/Stream';\nimport { SyntaxFailure, TurtleParser } from './parser.ts';\n\n/** @internal */\nexport interface Syntax {\n readonly name: string;\n readonly trig: boolean;\n /** The span prefix and format for tracing (`<module>.parse`, …); untraced when `None`. */\n readonly trace: Option.Option<Serialization.SpanTarget>;\n}\n\n/**\n * The result of parsing a document into quads in document order.\n *\n * @internal\n */\nexport interface QuadsResult {\n readonly quads: ReadonlyArray<Term.Quad>;\n readonly prefixes: PrefixMap.PrefixMap;\n readonly baseIri: string | undefined;\n}\n\nconst makeParser = (syntax: Syntax, options?: Serialization.ParseOptions): TurtleParser =>\n new TurtleParser({\n trig: syntax.trig,\n baseIri: Option.fromUndefinedOr(options?.baseIri),\n blankNodePrefix: options?.blankNodePrefix ?? Serialization.freshBlankNodePrefix(),\n graph: (syntax.trig ? undefined : options?.graph) ?? Term.defaultGraph,\n });\n\n/**\n * Maps what a parse threw — a `SyntaxFailure`, or a defect as an `Error` or\n * its string form — to an `RdfParseError`.\n */\nconst toParseError = (syntax: Syntax, error: Error | string): Serialization.RdfParseError =>\n error instanceof SyntaxFailure\n ? new Serialization.RdfParseError({\n format: syntax.name,\n message: error.message,\n line: error.line,\n column: error.column,\n })\n : new Serialization.RdfParseError({\n format: syntax.name,\n message: Predicate.isString(error) ? error : error.message,\n });\n\n/** @internal */\nexport const parseQuads = (\n syntax: Syntax,\n input: string,\n options?: Serialization.ParseOptions,\n): Effect.Effect<QuadsResult, Serialization.RdfParseError> =>\n Effect.try({\n try: () => {\n const parser = makeParser(syntax, options);\n const quads = parser.parseDocument(input);\n return {\n quads,\n prefixes: PrefixMap.make(parser.prefixes),\n baseIri: Option.getOrUndefined(parser.base),\n };\n },\n catch: (error) => toParseError(syntax, Predicate.isError(error) ? error : String(error)),\n });\n\n/** @internal */\nexport const parse = (\n syntax: Syntax,\n input: string,\n options?: Serialization.ParseOptions,\n): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>\n Effect.map(parseQuads(syntax, input, options), (result) => ({\n dataset: Dataset.fromIterable(result.quads),\n prefixes: result.prefixes,\n baseIri: result.baseIri,\n })).pipe(Serialization.withParseSpan(Option.getOrUndefined(syntax.trace), input));\n\nconst END: unique symbol = Symbol('end');\n\n/** @internal */\nexport const parseStream =\n (syntax: Syntax) =>\n <E, R>(\n input: Stream.Stream<string, E, R>,\n options?: Serialization.ParseOptions,\n ): Stream.Stream<Term.Quad, Serialization.RdfParseError | E, R> =>\n Stream.suspend(() => {\n const parser = makeParser(syntax, options);\n return Stream.concat(input, Stream.succeed(END)).pipe(\n Stream.mapAccumArrayEffect(\n () => undefined,\n (_, chunks) =>\n Effect.try({\n try: (): readonly [undefined, ReadonlyArray<Term.Quad>] => [\n undefined,\n Arr.flatMap(chunks, (chunk) => (chunk === END ? parser.end() : parser.feed(chunk))),\n ],\n catch: (error) =>\n toParseError(syntax, Predicate.isError(error) ? error : String(error)),\n }),\n ),\n );\n }).pipe(Serialization.withStreamSpan(Option.getOrUndefined(syntax.trace), 'parseStream'));\n","/**\n * Pretty-printing writer shared by the Turtle and TriG serializers.\n *\n * @internal\n */\nimport * as Dataset from '../../Dataset.ts';\nimport * as Iri from '../../Iri.ts';\nimport * as Isomorphism from '../../Isomorphism.ts';\nimport type * as PrefixMap from '../../PrefixMap.ts';\nimport * as Term from '../../Term.ts';\nimport { commonPrefixes, rdf, xsd } from '../../Vocab.ts';\nimport * as Lexical from '../../ntriples/Lexical.ts';\nimport * as Arr from 'effect/Array';\nimport * as Iterable from 'effect/Iterable';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Order from 'effect/Order';\nimport * as Predicate from 'effect/Predicate';\nimport * as Record from 'effect/Record';\nimport { loop } from './loop.ts';\n\n/** @internal */\nexport class SerializeFailure extends Error {}\n\n/** @internal */\nexport interface WriterOptions {\n readonly trig: boolean;\n readonly prefixes: Option.Option<PrefixMap.PrefixMap>;\n readonly baseIri: Option.Option<string>;\n readonly autoPrefixes: boolean;\n readonly sparqlDirectives: boolean;\n readonly indent: string;\n}\n\nconst RDF_TYPE = rdf.type.value;\nconst RDF_FIRST = rdf.first.value;\nconst RDF_REST = rdf.rest.value;\nconst RDF_NIL = rdf.nil.value;\nconst RDF_REIFIES = rdf.reifies.value;\nconst XSD_INTEGER = xsd.integer.value;\nconst XSD_DECIMAL = xsd.decimal.value;\nconst XSD_DOUBLE = xsd.double.value;\nconst XSD_BOOLEAN = xsd.boolean.value;\n\nconst INTEGER = /^[+-]?[0-9]+$/;\nconst DECIMAL = /^[+-]?[0-9]*\\.[0-9]+$/;\nconst DOUBLE =\n /^[+-]?(?:[0-9]+\\.[0-9]*[eE][+-]?[0-9]+|\\.[0-9]+[eE][+-]?[0-9]+|[0-9]+[eE][+-]?[0-9]+)$/;\n\n/** Characters that may be backslash-escaped in a local name (minus URL delimiters). */\nconst LOCAL_ESCAPABLE = \"_~.-!$&'()*+,;=@\";\n\n/** An ASCII local name that is already a `PN_LOCAL` (or empty): no character needs encoding. */\nconst PLAIN_LOCAL = /^(?:[A-Za-z0-9_:](?:[A-Za-z0-9_:.-]*[A-Za-z0-9_:-])?)?$/;\n\n/**\n * The characters a long (`\"\"\"`) string escapes: `\\`, `\"`, controls other than\n * tab and line feed, and the noncharacters U+FFFE and U+FFFF. Written as what\n * is kept, so that it names no control character.\n */\nconst LONG_ESCAPED = /[\\\\\"]|[^\\t\\n -~\\x80-\\u{fffd}\\u{10000}-\\u{10ffff}]/gu;\n\n// -----------------------------------------------------------------------------\n// Lexical helpers\n// -----------------------------------------------------------------------------\n\n/** The code point of a one-character string. */\nconst codePoint = (ch: string): number => ch.codePointAt(0) ?? 0;\n\n/** Whether `prefix` is a valid `PN_PREFIX` (or empty). */\nexport const isPrefixName = (prefix: string): boolean => {\n if (prefix === '') return true;\n const chars = Array.from(prefix, codePoint);\n return (\n Arr.isReadonlyArrayNonEmpty(chars) &&\n Lexical.isPnCharsBase(Arr.headNonEmpty(chars)) &&\n Arr.lastNonEmpty(chars) !== 0x2e &&\n chars.every((c) => Lexical.isPnChars(c) || c === 0x2e)\n );\n};\n\n/** Encodes a local name character by character, escaping what `PN_LOCAL` needs escaped. */\nconst encodeLocalChars = (local: string): Option.Option<string> => {\n const chars = Array.from(local);\n const last = chars.length - 1;\n let out = '';\n let i = 0;\n let ok = true;\n loop(() => {\n if (i > last) return false;\n const ch = chars[i] ?? '';\n const c = codePoint(ch);\n const plain =\n i === 0\n ? Lexical.isPnCharsU(c) || c === 0x3a || Lexical.isDigit(c)\n : Lexical.isPnChars(c) || c === 0x3a || (c === 0x2e && i !== last);\n if (plain) {\n out += ch;\n i += 1;\n return true;\n }\n const h1 = chars[i + 1] ?? '';\n const h2 = chars[i + 2] ?? '';\n if (\n c === 0x25 &&\n i + 2 < chars.length &&\n Lexical.isHex(h1.charCodeAt(0)) &&\n Lexical.isHex(h2.charCodeAt(0))\n ) {\n out += ch + h1 + h2;\n i += 3;\n return true;\n }\n if (LOCAL_ESCAPABLE.includes(ch)) {\n out += `\\\\${ch}`;\n i += 1;\n return true;\n }\n ok = false;\n return false;\n });\n return ok ? Option.some(out) : Option.none();\n};\n\n/** Encodes a local name as `PN_LOCAL`, or returns `None` if it cannot be. */\nexport const encodeLocalName = (local: string): Option.Option<string> =>\n PLAIN_LOCAL.test(local) ? Option.some(local) : encodeLocalChars(local);\n\nconst hex4 = (c: number): string => `\\\\u${c.toString(16).toUpperCase().padStart(4, '0')}`;\n\nconst escapeLong = (ch: string): string =>\n ch === '\\\\' ? '\\\\\\\\' : ch === '\"' ? '\\\\\"' : ch === '\\r' ? '\\\\r' : hex4(ch.charCodeAt(0));\n\n/** Formats a string as a Turtle string literal, using `\"\"\"` for multi-line text. */\nexport const quoteString = (value: string): string =>\n value.includes('\\n')\n ? `\"\"\"${value.replace(LONG_ESCAPED, escapeLong)}\"\"\"`\n : `\"${Term.escapeString(value)}\"`;\n\n// -----------------------------------------------------------------------------\n// Analysis\n// -----------------------------------------------------------------------------\n\ninterface BlankInfo {\n readonly objectRefs: Array<Term.Quad>;\n inTripleTerm: boolean;\n asGraph: boolean;\n /** The graph the node is first a subject in, and whether it is a subject in any other. */\n subjectGraph: Option.Option<string>;\n manyGraphs: boolean;\n}\n\n/** Calls `f` for every blank node in `t`, looking inside triple terms. */\nconst visitBlankNodes = (t: Term.Term, f: (b: Term.BlankNode) => void): void => {\n if (Term.isBlankNode(t)) {\n f(t);\n } else if (Term.isTriple(t)) {\n visitBlankNodes(t.subject, f);\n visitBlankNodes(t.object, f);\n }\n};\n\n/** Throws when a triple term's subject is itself a triple term, at any depth of objects. */\nconst checkTriple = (t: Term.Triple): void => {\n if (Term.isTriple(t.subject)) {\n throw new SerializeFailure(\n `Triple terms cannot be the subject of a triple term in Turtle 1.2: ${t.key}`,\n );\n }\n if (Term.isTriple(t.object)) checkTriple(t.object);\n};\n\n/** @internal */\nexport const checkQuad = (q: Term.Quad, trig: boolean): void => {\n if (Term.isTriple(q.subject)) {\n throw new SerializeFailure(`Triple terms cannot be subjects in Turtle 1.2: ${q.key}`);\n }\n if (!Term.isGround(q)) throw new SerializeFailure(`Cannot serialise non-ground quad ${q.key}`);\n if (Term.isTriple(q.object)) checkTriple(q.object);\n if (!trig && !Term.isDefaultGraph(q.graph)) {\n throw new SerializeFailure(`Turtle cannot represent quads in named graphs: ${q.key}`);\n }\n};\n\ntype Annotation =\n | { readonly _tag: 'Block'; readonly reifier: Term.BlankNode }\n | { readonly _tag: 'Id'; readonly reifier: Term.NamedNode | Term.BlankNode };\n\nconst isIdAnnotation = Predicate.isTagged('Id');\n\ntype StringSet = MutableHashSet.MutableHashSet<string>;\n\ninterface GraphPlan {\n readonly graph: Term.Graph;\n readonly bySubject: MutableHashMap.MutableHashMap<string, Array<Term.Quad>>;\n readonly subjects: MutableHashMap.MutableHashMap<string, Term.Subject>;\n /** Blank nodes rendered inline as `[ ... ]` at their single reference. */\n readonly inline: StringSet;\n /** List heads rendered as `( ... )`, with their items. */\n readonly lists: MutableHashMap.MutableHashMap<string, ReadonlyArray<Term.Object>>;\n /** Blank nodes consumed as list cells (including heads). */\n readonly listCells: StringSet;\n /** Annotations keyed by the asserted quad's key. */\n readonly annotations: MutableHashMap.MutableHashMap<string, Array<Annotation>>;\n /** Blank reifiers rendered inside `{| ... |}` blocks. */\n readonly blockReifiers: StringSet;\n /** Reifiers referenced as `~ id`. */\n readonly idReifiers: StringSet;\n /** Blank reifiers rendered as `<< s p o >>` subjects. */\n readonly reifiedSubjects: MutableHashMap.MutableHashMap<string, Term.Triple>;\n /** Quads represented by syntax (annotations, lists) rather than written out (by identity). */\n readonly consumed: WeakSet<Term.Quad>;\n}\n\n/** Appends `value` to the list at `key`, creating the list on first use. */\nconst pushAt = <V>(\n map: MutableHashMap.MutableHashMap<string, Array<V>>,\n key: string,\n value: V,\n): void => {\n const list = MutableHashMap.get(map, key);\n if (Option.isSome(list)) list.value.push(value);\n else MutableHashMap.set(map, key, [value]);\n};\n\n/**\n * Groups `values` by key, in order of first appearance, calling `onFirst`\n * with the first value of each group. A run of values with the same key\n * (statements arrive grouped) is appended without a lookup.\n */\nconst groupBy = <V>(\n values: ReadonlyArray<V>,\n keyOf: (value: V) => string,\n onFirst: (value: V, key: string) => void = () => undefined,\n): MutableHashMap.MutableHashMap<string, Array<V>> => {\n const groups = MutableHashMap.empty<string, Array<V>>();\n let lastKey = '';\n let last: Array<V> = [];\n values.forEach((value) => {\n const key = keyOf(value);\n if (Arr.isReadonlyArrayNonEmpty(last) && key === lastKey) {\n last.push(value);\n return;\n }\n const found = MutableHashMap.get(groups, key);\n if (Option.isSome(found)) {\n found.value.push(value);\n last = found.value;\n } else {\n last = [value];\n MutableHashMap.set(groups, key, last);\n onFirst(value, key);\n }\n lastKey = key;\n });\n return groups;\n};\n\n/** The list at `key`, or an empty one. */\nconst listAt = <V>(\n map: MutableHashMap.MutableHashMap<string, Array<V>>,\n key: string,\n): ReadonlyArray<V> => Option.getOrElse(MutableHashMap.get(map, key), () => []);\n\n/** A declared prefix, with its index among the declarations. */\ninterface PrefixCandidate {\n readonly prefix: string;\n readonly ns: string;\n readonly index: number;\n}\n\nconst byNamespaceLength: Order.Order<PrefixCandidate> = Order.flip(\n Order.mapInput(Order.Number, (c: PrefixCandidate) => c.ns.length),\n);\n\n/** `rdf:type` first (written `a`), then by IRI. */\nconst byVerb: Order.Order<string> = (a, b) =>\n a === RDF_TYPE ? -1 : b === RDF_TYPE ? 1 : a < b ? -1 : a > b ? 1 : 0;\n\n// -----------------------------------------------------------------------------\n// Writer\n// -----------------------------------------------------------------------------\n\n/** @internal */\nexport class Writer {\n private readonly prefixes: Array<readonly [string, string]>;\n /** Whether each of `prefixes` has been written. */\n private readonly usedPrefixes: Array<boolean> = [];\n /** The prefixes, longest namespace first (in declaration order for equal lengths). */\n private readonly byLength: ReadonlyArray<PrefixCandidate>;\n private readonly blanks = MutableHashMap.empty<string, BlankInfo>();\n /** The keys of the quads written, built when the first reifier is planned. */\n private assertedKeys: Option.Option<StringSet> = Option.none();\n private plan!: GraphPlan;\n private readonly labels = MutableHashMap.empty<string, string>();\n private rendered: StringSet = MutableHashSet.empty();\n\n readonly options: WriterOptions;\n private readonly quads: ReadonlyArray<Term.Quad>;\n private readonly relabel;\n constructor(options: WriterOptions, quads: ReadonlyArray<Term.Quad>, relabel = true) {\n this.options = options;\n this.quads = quads;\n this.relabel = relabel;\n const declared = MutableHashMap.empty<string, string>();\n if (options.autoPrefixes) {\n Arr.forEach(detectPrefixes(quads, options.baseIri), ([p, ns]) => {\n MutableHashMap.set(declared, p, ns);\n });\n }\n if (Option.isSome(options.prefixes)) {\n Iterable.forEach(options.prefixes.value.prefixes, ([p, ns]) => {\n // A declared prefix replaces any detected one for the same namespace\n Arr.forEach(\n Arr.filter(Arr.fromIterable(declared), ([q, other]) => other === ns && q !== p),\n ([q]) => {\n MutableHashMap.remove(declared, q);\n },\n );\n MutableHashMap.set(declared, p, ns);\n });\n }\n this.prefixes = Arr.filter(\n Arr.fromIterable(declared),\n ([p, ns]) => isPrefixName(p) && Lexical.isWritableIri(ns),\n );\n this.byLength = Arr.sort(\n this.prefixes.map(([prefix, ns], index): PrefixCandidate => ({ prefix, ns, index })),\n byNamespaceLength,\n );\n if (Option.isSome(options.baseIri) && !Lexical.isWritableIri(options.baseIri.value)) {\n throw new SerializeFailure(`Invalid base IRI <${options.baseIri.value}>`);\n }\n }\n\n write(): string {\n this.quads.forEach((q) => {\n checkQuad(q, this.options.trig);\n this.index(q);\n });\n const names = MutableHashMap.empty<string, Term.Graph>();\n const byGraph = groupBy(\n this.quads,\n (q) => q.graph.key,\n (q, key) => MutableHashMap.set(names, key, q.graph),\n );\n const graphs = Arr.sort(\n Arr.fromIterable(names),\n Order.mapInput(compareTerms, ([, graph]: readonly [string, Term.Graph]) => graph),\n ).map(([key, graph]) => ({ graph, quads: listAt(byGraph, key) }));\n const body = Arr.reduce(graphs, '', (out, { graph, quads }) =>\n Term.isDefaultGraph(graph)\n ? out + this.writeGraph(graph, quads, 0)\n : // The graph name is labelled before its content\n `${out}${out === '' ? '' : '\\n'}${this.term(graph)} {\\n${this.writeGraph(graph, quads, 1)}}\\n`,\n );\n return this.header() + body;\n }\n\n private asserted(): StringSet {\n if (Option.isSome(this.assertedKeys)) return this.assertedKeys.value;\n const keys: StringSet = MutableHashSet.empty();\n this.quads.forEach((q) => MutableHashSet.add(keys, q.key));\n this.assertedKeys = Option.some(keys);\n return keys;\n }\n\n private header(): string {\n const sparql = this.options.sparqlDirectives;\n const base = Option.match(this.options.baseIri, {\n onNone: () => '',\n onSome: (iri) =>\n sparql ? `BASE <${Term.escapeIri(iri)}>\\n` : `@base <${Term.escapeIri(iri)}> .\\n`,\n });\n const used = Arr.sort(\n this.prefixes.filter((_, i) => this.usedPrefixes[i] === true),\n byPrefixName,\n );\n const out =\n base +\n used\n .map(([p, ns]) =>\n sparql\n ? `PREFIX ${p}: <${Term.escapeIri(ns)}>\\n`\n : `@prefix ${p}: <${Term.escapeIri(ns)}> .\\n`,\n )\n .join('');\n return out === '' ? '' : `${out}\\n`;\n }\n\n private info(b: Term.BlankNode): BlankInfo {\n const found = MutableHashMap.get(this.blanks, b.value);\n if (Option.isSome(found)) return found.value;\n const info: BlankInfo = {\n objectRefs: [],\n inTripleTerm: false,\n asGraph: false,\n subjectGraph: Option.none(),\n manyGraphs: false,\n };\n MutableHashMap.set(this.blanks, b.value, info);\n return info;\n }\n\n private index(q: Term.Quad): void {\n if (Term.isBlankNode(q.subject)) {\n const info = this.info(q.subject);\n if (Option.isNone(info.subjectGraph)) info.subjectGraph = Option.some(q.graph.key);\n else if (info.subjectGraph.value !== q.graph.key) info.manyGraphs = true;\n }\n if (Term.isBlankNode(q.object)) this.info(q.object).objectRefs.push(q);\n if (Term.isTriple(q.object)) {\n visitBlankNodes(q.object, (b) => {\n this.info(b).inTripleTerm = true;\n });\n }\n if (Term.isBlankNode(q.graph)) this.info(q.graph).asGraph = true;\n }\n\n /** Whether a blank node is local to `graph` and appears in no triple term or graph name. */\n private isLocal(b: Term.BlankNode, graph: Term.Graph): boolean {\n const info = this.info(b);\n return (\n !info.inTripleTerm &&\n !info.asGraph &&\n !info.manyGraphs &&\n (Option.isNone(info.subjectGraph) || info.subjectGraph.value === graph.key)\n );\n }\n\n private planGraph(\n graph: Term.Graph,\n quads: ReadonlyArray<Term.Quad>,\n demoted: StringSet,\n ): GraphPlan {\n const subjects = MutableHashMap.empty<string, Term.Subject>();\n const bySubject = groupBy(\n quads,\n (q) => q.subject.key,\n (q, key) => MutableHashMap.set(subjects, key, q.subject),\n );\n const consumed = new WeakSet<Term.Quad>();\n\n // Blank nodes referenced exactly once (as an object, in this graph), rendered inline.\n const inline: StringSet = MutableHashSet.empty();\n quads.forEach((q) => {\n const o = q.object;\n if (!Term.isBlankNode(o) || MutableHashSet.has(demoted, o.value) || !this.isLocal(o, graph))\n return;\n const refs = this.info(o).objectRefs;\n if (refs.length === 1 && refs[0]?.graph.key === graph.key)\n MutableHashSet.add(inline, o.value);\n });\n\n // Well-formed collections.\n const lists = MutableHashMap.empty<string, ReadonlyArray<Term.Object>>();\n const listCells: StringSet = MutableHashSet.empty();\n const listShape = (label: string): Option.Option<readonly [Term.Object, Term.Object]> => {\n if (!MutableHashSet.has(inline, label)) return Option.none();\n const own = listAt(bySubject, `_:${label}`);\n if (own.length !== 2) return Option.none();\n const first = Arr.findFirst(own, (q) => q.predicate.value === RDF_FIRST);\n const rest = Arr.findFirst(own, (q) => q.predicate.value === RDF_REST);\n return Option.isSome(first) && Option.isSome(rest)\n ? Option.some<readonly [Term.Object, Term.Object]>([first.value.object, rest.value.object])\n : Option.none();\n };\n Iterable.forEach(inline, (label) => {\n if (Option.isNone(listShape(label))) return;\n const ref = Arr.head(this.info(Term.blankNode(label)).objectRefs);\n // Not the tail of another list cell.\n if (\n Option.isNone(ref) ||\n (ref.value.predicate.value === RDF_REST &&\n Term.isBlankNode(ref.value.subject) &&\n Option.isSome(listShape(ref.value.subject.value)))\n ) {\n return;\n }\n const items: Array<Term.Object> = [];\n const cells: Array<string> = [];\n let current: string = label;\n let ok = false;\n loop(() => {\n const shape = listShape(current);\n if (Option.isNone(shape) || cells.includes(current)) return false;\n const [item, next] = shape.value;\n cells.push(current);\n items.push(item);\n if (Term.isNamedNode(next) && next.value === RDF_NIL) {\n ok = true;\n return false;\n }\n if (!Term.isBlankNode(next)) return false;\n current = next.value;\n return true;\n });\n if (!ok) return;\n MutableHashMap.set(lists, label, items);\n Arr.forEach(cells, (cell) => {\n MutableHashSet.add(listCells, cell);\n Arr.forEach(listAt(bySubject, `_:${cell}`), (q) => {\n consumed.add(q);\n });\n });\n });\n\n // Annotations and reified-triple subjects.\n const annotations = MutableHashMap.empty<string, Array<Annotation>>();\n const blockReifiers: StringSet = MutableHashSet.empty();\n const reifiedSubjects = MutableHashMap.empty<string, Term.Triple>();\n const idReifiers: StringSet = MutableHashSet.empty();\n /** A blank reifier of nothing else, described only here: written as a block or a subject. */\n const isStandalone = (r: Term.BlankNode): boolean =>\n !MutableHashSet.has(demoted, r.value) &&\n this.isLocal(r, graph) &&\n Arr.isReadonlyArrayEmpty(this.info(r).objectRefs) &&\n listAt(bySubject, r.key).filter((x) => x.predicate.value === RDF_REIFIES && !consumed.has(x))\n .length === 1;\n quads.forEach((q) => {\n if (q.predicate.value !== RDF_REIFIES || !Term.isTriple(q.object)) return;\n const t = q.object;\n if (Term.isTriple(t.subject)) return;\n const r = q.subject;\n if (Term.isTriple(r)) return;\n const assertedKey = new Term.Quad(t.subject, t.predicate, t.object, graph).key;\n const isAsserted = MutableHashSet.has(this.asserted(), assertedKey);\n if (Term.isBlankNode(r) && isStandalone(r)) {\n consumed.add(q);\n if (isAsserted) {\n MutableHashSet.add(blockReifiers, r.value);\n pushAt(annotations, assertedKey, { _tag: 'Block', reifier: r });\n } else {\n MutableHashMap.set(reifiedSubjects, r.value, t);\n }\n } else if (\n isAsserted &&\n (Term.isNamedNode(r) ||\n (!MutableHashSet.has(inline, r.value) && !MutableHashSet.has(listCells, r.value)))\n ) {\n consumed.add(q);\n if (Term.isBlankNode(r)) MutableHashSet.add(idReifiers, r.value);\n pushAt(annotations, assertedKey, { _tag: 'Id', reifier: r });\n }\n });\n\n return {\n graph,\n bySubject,\n subjects,\n inline,\n lists,\n listCells,\n annotations,\n blockReifiers,\n idReifiers,\n reifiedSubjects,\n consumed,\n };\n }\n\n private writeGraph(graph: Term.Graph, quads: ReadonlyArray<Term.Quad>, level: number): string {\n // Inline blank nodes and lists that rendering did not reach are written out, and re-planned\n const demoted: StringSet = MutableHashSet.empty();\n let out = '';\n loop(() => {\n this.plan = this.planGraph(graph, quads, demoted);\n this.rendered = MutableHashSet.empty();\n out = this.renderGraph(level);\n const before = MutableHashSet.size(demoted);\n Iterable.forEach(this.plan.inline, (label) => {\n if (\n !MutableHashSet.has(this.rendered, label) &&\n !MutableHashSet.has(this.plan.listCells, label)\n ) {\n MutableHashSet.add(demoted, label);\n }\n });\n Iterable.forEach(MutableHashMap.keys(this.plan.lists), (label) => {\n if (!MutableHashSet.has(this.rendered, label)) MutableHashSet.add(demoted, label);\n });\n return MutableHashSet.size(demoted) !== before;\n });\n return out;\n }\n\n private renderGraph(level: number): string {\n const plan = this.plan;\n const unsorted = Arr.filter(\n Arr.fromIterable(MutableHashMap.values(plan.subjects)),\n (s) =>\n !(\n Term.isBlankNode(s) &&\n (MutableHashSet.has(plan.inline, s.value) ||\n MutableHashSet.has(plan.listCells, s.value) ||\n MutableHashSet.has(plan.blockReifiers, s.value))\n ),\n );\n const roots = Arr.sort(unsorted, compareTerms);\n const blocks = Arr.flatMap(roots, (s): ReadonlyArray<string> => {\n const quads = listAt(plan.bySubject, s.key).filter((q) => !plan.consumed.has(q));\n const reified = Term.isBlankNode(s)\n ? MutableHashMap.get(plan.reifiedSubjects, s.value)\n : Option.none<Term.Triple>();\n const head = Option.isSome(reified) ? this.reifiedTriple(reified.value) : this.term(s);\n if (Arr.isReadonlyArrayEmpty(quads)) {\n return Option.isSome(reified) ? [`${this.pad(level)}${head} .\\n`] : [];\n }\n if (\n Term.isBlankNode(s) &&\n Option.isNone(reified) &&\n !MutableHashSet.has(plan.idReifiers, s.value) &&\n Arr.isReadonlyArrayEmpty(this.info(s).objectRefs) &&\n this.isLocal(s, plan.graph)\n ) {\n // An unreferenced blank node: `[ p o ] .`\n return [`${this.pad(level)}${this.bracketed('[', ']', quads, level)} .\\n`];\n }\n return [`${this.pad(level)}${head} ${this.predicateObjectList(quads, level + 1)} .\\n`];\n });\n return blocks.join(level === 0 ? '\\n' : '');\n }\n\n private pad(level: number): string {\n return this.options.indent.repeat(level);\n }\n\n /** Renders `p o, o ; p o` with continuation lines at `level`. */\n private predicateObjectList(quads: ReadonlyArray<Term.Quad>, level: number): string {\n const byPredicate = groupBy(quads, (q) => q.predicate.value);\n const predicates = Arr.sort(\n byPredicate,\n Order.mapInput(byVerb, ([p]: readonly [string, Array<Term.Quad>]) => p),\n );\n const parts = predicates.map(([p, list]) => {\n const objects = Arr.sort(\n list,\n Order.mapInput(compareTerms, (q: Term.Quad) => q.object),\n ).map((q) => this.objectWithAnnotations(q, level));\n const verb = p === RDF_TYPE ? 'a' : this.iri(p);\n return `${verb} ${objects.join(', ')}`;\n });\n return parts.join(` ;\\n${this.pad(level)}`);\n }\n\n private objectWithAnnotations(q: Term.Quad, level: number): string {\n let out = this.object(q.object, level);\n const annotations = MutableHashMap.get(this.plan.annotations, q.key);\n if (Option.isNone(annotations)) return out;\n // An annotation block directly after a reifier would describe that\n // reifier, so blocks come first, then bare `~`, then `~ id`.\n let bare = '';\n let ids = '';\n Arr.forEach(\n Arr.sort(\n annotations.value,\n Order.mapInput(compareTerms, (x: Annotation) => x.reifier),\n ),\n (annotation) => {\n if (isIdAnnotation(annotation)) {\n ids += ` ~ ${this.term(annotation.reifier)}`;\n return;\n }\n const own = listAt(this.plan.bySubject, annotation.reifier.key).filter(\n (x) => !this.plan.consumed.has(x),\n );\n if (Arr.isReadonlyArrayEmpty(own)) bare += ' ~';\n else out += ` ${this.bracketed('{|', '|}', own, level)}`;\n },\n );\n return out + bare + ids;\n }\n\n /** Renders a bracketed property list (`[ ... ]` or `{| ... |}`). */\n private bracketed(\n open: string,\n close: string,\n quads: ReadonlyArray<Term.Quad>,\n level: number,\n ): string {\n const single = this.predicateObjectList(quads, level + 1);\n if (!single.includes('\\n') && single.length <= 60) return `${open} ${single} ${close}`;\n return `${open}\\n${this.pad(level + 1)}${single}\\n${this.pad(level)}${close}`;\n }\n\n private object(o: Term.Object, level: number): string {\n if (Term.isBlankNode(o)) {\n const items = MutableHashMap.get(this.plan.lists, o.value);\n if (Option.isSome(items) && !MutableHashSet.has(this.rendered, o.value)) {\n MutableHashSet.add(this.rendered, o.value);\n const rendered = items.value.map((item) => this.object(item, level));\n const oneLine = `( ${rendered.join(' ')} )`;\n return oneLine.length <= 80 && !oneLine.includes('\\n')\n ? oneLine\n : `(\\n${rendered.map((r) => this.pad(level + 1) + r).join('\\n')}\\n${this.pad(level)})`;\n }\n if (\n MutableHashSet.has(this.plan.inline, o.value) &&\n !MutableHashSet.has(this.rendered, o.value)\n ) {\n MutableHashSet.add(this.rendered, o.value);\n const own = listAt(this.plan.bySubject, o.key).filter((x) => !this.plan.consumed.has(x));\n if (Arr.isReadonlyArrayEmpty(own)) return '[]';\n const only = own.length === 1 ? Arr.head(own) : Option.none<Term.Quad>();\n if (\n Option.isSome(only) &&\n only.value.predicate.value === RDF_REIFIES &&\n Term.isTriple(only.value.object) &&\n !Term.isTriple(only.value.object.subject)\n ) {\n // A blank node whose only statement reifies a triple: `<< s p o >>`.\n return this.reifiedTriple(only.value.object);\n }\n return this.bracketed('[', ']', own, level);\n }\n }\n if (Term.isNamedNode(o) && o.value === RDF_NIL) return '()';\n return this.term(o);\n }\n\n private reifiedTriple(t: Term.Triple): string {\n return `<< ${this.term(t.subject)} ${this.predicate(t.predicate)} ${this.term(t.object)} >>`;\n }\n\n private predicate(p: Term.NamedNode): string {\n return p.value === RDF_TYPE ? 'a' : this.iri(p.value);\n }\n\n /** Renders a term without any abbreviation that depends on context. */\n term(t: Term.Term): string {\n // Plain guards rather than a `Match`: this runs for every term written\n if (Term.isNamedNode(t)) return this.iri(t.value);\n if (Term.isBlankNode(t)) return `_:${this.label(t.value)}`;\n if (Term.isLiteral(t)) return this.literal(t);\n if (Term.isTriple(t)) {\n return `<<( ${this.term(t.subject)} ${this.predicate(t.predicate)} ${this.term(t.object)} )>>`;\n }\n throw new SerializeFailure(`Cannot serialise ${t._tag}`);\n }\n\n /** Output labels are assigned in order of first appearance. */\n private label(value: string): string {\n if (!this.relabel) return Lexical.blankNodeLabel(value);\n const found = MutableHashMap.get(this.labels, value);\n if (Option.isSome(found)) return found.value;\n const label = `b${MutableHashMap.size(this.labels)}`;\n MutableHashMap.set(this.labels, value, label);\n return label;\n }\n\n private literal(l: Term.Literal): string {\n const dt = l.datatype.value;\n if (l.language === '') {\n if (\n (dt === XSD_INTEGER && INTEGER.test(l.value)) ||\n (dt === XSD_DECIMAL && DECIMAL.test(l.value)) ||\n (dt === XSD_DOUBLE && DOUBLE.test(l.value)) ||\n (dt === XSD_BOOLEAN && (l.value === 'true' || l.value === 'false'))\n ) {\n return l.value;\n }\n }\n const lexical = quoteString(l.value);\n if (l.language !== '') {\n const language = l.language.toLowerCase();\n return l.direction === undefined\n ? `${lexical}@${language}`\n : `${lexical}@${language}--${l.direction}`;\n }\n if (dt === Term.XSD_STRING) return lexical;\n return `${lexical}^^${this.iri(dt)}`;\n }\n\n iri(iri: string): string {\n if (!Lexical.isWritableIri(iri)) throw new SerializeFailure(`Invalid or relative IRI <${iri}>`);\n // The longest namespace whose local part can be written as a prefixed name\n const best = this.byLength.find(\n (c) => iri.startsWith(c.ns) && Option.isSome(encodeLocalName(iri.slice(c.ns.length))),\n );\n if (best !== undefined) {\n this.usedPrefixes[best.index] = true;\n return `${best.prefix}:${Option.getOrElse(encodeLocalName(iri.slice(best.ns.length)), () => '')}`;\n }\n if (Option.isSome(this.options.baseIri)) {\n const relative = Iri.relativize(iri, this.options.baseIri.value);\n if (Option.isSome(relative)) return `<${Term.escapeIri(relative.value)}>`;\n }\n return `<${Term.escapeIri(iri)}>`;\n }\n}\n\n/** Term kinds in writing order; anything else (a variable) sorts last. */\nconst tagRank: Record.ReadonlyRecord<string, number> = {\n DefaultGraph: 0,\n NamedNode: 1,\n BlankNode: 2,\n Literal: 3,\n Triple: 4,\n};\n\n/** The value of a numeric literal, or `NaN`. */\nconst numericValue = (l: Term.Literal): number => {\n const dt = l.datatype.value;\n return dt === XSD_INTEGER || dt === XSD_DECIMAL || dt === XSD_DOUBLE ? Number(l.value) : NaN;\n};\n\nconst compareTerms: Order.Order<Term.Term> = (a, b) => {\n const ra = tagRank[a._tag] ?? 5;\n const rb = tagRank[b._tag] ?? 5;\n if (ra !== rb) return ra < rb ? -1 : 1;\n if (Term.isLiteral(a) && Term.isLiteral(b)) {\n const na = numericValue(a);\n const nb = numericValue(b);\n if (!Number.isNaN(na) && !Number.isNaN(nb) && na !== nb) return na < nb ? -1 : 1;\n }\n return a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\n};\n\n/** Prefix declarations by prefix name. */\nexport const byPrefixName: Order.Order<readonly [string, string]> = Order.mapInput(\n Order.String,\n ([prefix]: readonly [string, string]) => prefix,\n);\n\n/** Counts the namespaces of the IRIs in `t` (and in its datatype and triple terms). */\nconst countNamespaces = (\n t: Term.Term,\n counts: MutableHashMap.MutableHashMap<string, { count: number }>,\n): void => {\n // Plain guards rather than a `Match`: this runs for every term of every quad\n if (Term.isNamedNode(t)) {\n const i = Math.max(t.value.lastIndexOf('#'), t.value.lastIndexOf('/'));\n if (i <= 0) return;\n const ns = t.value.slice(0, i + 1);\n if (!Lexical.isAbsoluteIri(ns) || Option.isNone(encodeLocalName(t.value.slice(i + 1)))) {\n return;\n }\n const found = MutableHashMap.get(counts, ns);\n if (Option.isSome(found)) found.value.count += 1;\n else MutableHashMap.set(counts, ns, { count: 1 });\n } else if (Term.isLiteral(t)) {\n if (t.language === '' && t.datatype.value !== Term.XSD_STRING) {\n countNamespaces(t.datatype, counts);\n }\n } else if (Term.isTriple(t)) {\n countNamespaces(t.subject, counts);\n countNamespaces(t.predicate, counts);\n countNamespaces(t.object, counts);\n }\n};\n\n/** Well-known namespaces by IRI, with their usual prefixes. */\nconst knownPrefixes = MutableHashMap.fromIterable(\n Record.toEntries(commonPrefixes).map(([p, ns]): readonly [string, string] => [ns, p]),\n);\n\n/**\n * Finds namespaces worth declaring: well-known vocabularies that are used,\n * plus any namespace used by at least two IRIs.\n */\nconst detectPrefixes = (\n quads: ReadonlyArray<Term.Quad>,\n baseIri: Option.Option<string>,\n): Array<readonly [string, string]> => {\n // Namespaces under the base IRI are better written as relative IRIs.\n const baseDir = Option.map(baseIri, (iri) => iri.slice(0, iri.lastIndexOf('/') + 1));\n const counts = MutableHashMap.empty<string, { count: number }>();\n quads.forEach((q) => {\n countNamespaces(q.subject, counts);\n countNamespaces(q.predicate, counts);\n countNamespaces(q.object, counts);\n countNamespaces(q.graph, counts);\n });\n let n = 0;\n return Arr.flatMap(\n Arr.sort(\n counts,\n Order.mapInput(Order.String, ([ns]: readonly [string, { count: number }]) => ns),\n ),\n ([ns, { count }]): ReadonlyArray<readonly [string, string]> => {\n const name = MutableHashMap.get(knownPrefixes, ns);\n if (Option.isSome(name)) return [[name.value, ns]];\n if (Option.isSome(baseDir) && baseDir.value.includes('//') && ns.startsWith(baseDir.value)) {\n return [];\n }\n return count >= 2 ? [[`ns${n++}`, ns]] : [];\n },\n );\n};\n\n/**\n * Normalises quads for writing: relabels blank nodes deterministically.\n *\n * @internal\n */\nexport const prepare = (quads: Iterable<Term.Quad>): ReadonlyArray<Term.Quad> =>\n Array.from(Isomorphism.relabel(Dataset.fromIterable(quads), 'b'));\n","/**\n * An incremental Turtle / TriG writer.\n *\n * @internal\n */\nimport * as Term from '../../Term.ts';\nimport { rdf } from '../../Vocab.ts';\nimport * as Lexical from '../../ntriples/Lexical.ts';\nimport * as Arr from 'effect/Array';\nimport * as Iterable from 'effect/Iterable';\nimport * as Option from 'effect/Option';\nimport { byPrefixName, checkQuad, isPrefixName, Writer, type WriterOptions } from './writer.ts';\n\n/**\n * Groups consecutive statements by graph, subject and predicate but performs\n * no look-ahead (no inline blank nodes, lists or annotations), so it runs in\n * constant memory.\n *\n * @internal\n */\nexport class StreamWriter {\n private writerInstance: Option.Option<Writer> = Option.none();\n /** The keys of the open graph block, statement and predicate. */\n private graph: Option.Option<string> = Option.none();\n private subject: Option.Option<string> = Option.none();\n private predicate: Option.Option<string> = Option.none();\n private started = false;\n\n readonly options: WriterOptions;\n constructor(options: WriterOptions) {\n this.options = options;\n }\n\n /** Created lazily so that option validation errors surface as failures. */\n private get writer(): Writer {\n if (Option.isSome(this.writerInstance)) return this.writerInstance.value;\n const writer = new Writer({ ...this.options, autoPrefixes: false }, [], false);\n this.writerInstance = Option.some(writer);\n return writer;\n }\n\n /** The document header: base and all declared prefixes. */\n private header(): string {\n void this.writer;\n const sparql = this.options.sparqlDirectives;\n const base = Option.match(this.options.baseIri, {\n onNone: () => '',\n onSome: (iri) => {\n const escaped = Term.escapeIri(iri);\n return sparql ? `BASE <${escaped}>\\n` : `@base <${escaped}> .\\n`;\n },\n });\n const prefixes = Option.match(this.options.prefixes, {\n onNone: () => '',\n onSome: (map) =>\n Arr.sort(\n Arr.filter(\n Arr.fromIterable(map.prefixes),\n ([p, ns]) => isPrefixName(p) && Lexical.isWritableIri(ns),\n ),\n byPrefixName,\n )\n .map(([p, ns]) => {\n const iri = Term.escapeIri(ns);\n return sparql ? `PREFIX ${p}: <${iri}>\\n` : `@prefix ${p}: <${iri}> .\\n`;\n })\n .join(''),\n });\n const out = base + prefixes;\n return out === '' ? '' : `${out}\\n`;\n }\n\n write(quads: Iterable<Term.Quad>): string {\n let out = '';\n if (!this.started) {\n this.started = true;\n out += this.header();\n }\n const indent = this.options.indent;\n const writer = this.writer;\n Iterable.forEach(quads, (q) => {\n checkQuad(q, this.options.trig);\n const graph = q.graph.key;\n if (Option.isNone(this.graph) || this.graph.value !== graph) {\n out += this.closeGraph();\n this.graph = Option.some(graph);\n if (!Term.isDefaultGraph(q.graph)) out += `${writer.term(q.graph)} {\\n`;\n }\n const pad = Term.isDefaultGraph(q.graph) ? '' : indent;\n const object = writer.term(q.object);\n if (Option.isSome(this.subject) && this.subject.value === q.subject.key) {\n if (Option.isSome(this.predicate) && this.predicate.value === q.predicate.key) {\n out += `, ${object}`;\n } else {\n this.predicate = Option.some(q.predicate.key);\n out += ` ;\\n${pad}${indent}${this.verb(q.predicate)} ${object}`;\n }\n } else {\n if (Option.isSome(this.subject)) out += ' .\\n';\n this.subject = Option.some(q.subject.key);\n this.predicate = Option.some(q.predicate.key);\n out += `${pad}${writer.term(q.subject)} ${this.verb(q.predicate)} ${object}`;\n }\n });\n return out;\n }\n\n /** Closes any open statement and graph block. */\n end(): string {\n const head = this.started ? '' : this.header();\n this.started = true;\n return head + this.closeGraph();\n }\n\n private verb(p: Term.NamedNode): string {\n return p.value === rdf.type.value ? 'a' : this.writer.iri(p.value);\n }\n\n private closeGraph(): string {\n let out = '';\n if (Option.isSome(this.subject)) out += ' .\\n';\n this.subject = Option.none();\n this.predicate = Option.none();\n if (Option.isSome(this.graph) && this.graph.value !== '') out += '}\\n';\n this.graph = Option.none();\n return out;\n }\n}\n","import * as Serialization from '../../Serialization.ts';\nimport type * as Term from '../../Term.ts';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Stream from 'effect/Stream';\nimport type { Syntax } from './parse.ts';\nimport { StreamWriter } from './streamWriter.ts';\nimport { prepare, Writer, type WriterOptions } from './writer.ts';\n\n/**\n * Options for the Turtle and TriG serializers.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface SerializeOptions extends Serialization.SerializeOptions {\n /**\n * Also declare prefixes detected from the data: well-known vocabularies\n * (`rdf`, `rdfs`, `xsd`, `owl`) and `nsN` prefixes for other namespaces\n * used at least twice. Prefixes in `prefixes` take precedence. Defaults to\n * `false`. Ignored by `serializeStream`.\n */\n readonly autoPrefixes?: boolean | undefined;\n /** Use SPARQL-style `PREFIX` / `BASE` directives. Defaults to `false`. */\n readonly sparqlDirectives?: boolean | undefined;\n /** The indentation unit. Defaults to four spaces. */\n readonly indent?: string | undefined;\n}\n\nconst writerOptions = (syntax: Syntax, options?: SerializeOptions): WriterOptions => ({\n trig: syntax.trig,\n prefixes: Option.fromUndefinedOr(options?.prefixes),\n baseIri: Option.fromUndefinedOr(options?.baseIri),\n autoPrefixes: options?.autoPrefixes ?? false,\n sparqlDirectives: options?.sparqlDirectives ?? false,\n indent: options?.indent ?? ' ',\n});\n\n/** Maps what a serialisation threw (an `Error` or its string form) to an `RdfSerializeError`. */\nconst toSerializeError = (syntax: Syntax, error: Error | string): Serialization.RdfSerializeError =>\n new Serialization.RdfSerializeError({\n format: syntax.name,\n message: Predicate.isString(error) ? error : error.message,\n });\n\n/** @internal */\nexport const serialize = (\n syntax: Syntax,\n quads: Iterable<Term.Quad>,\n options?: SerializeOptions,\n): Effect.Effect<string, Serialization.RdfSerializeError> =>\n Effect.try({\n try: () => new Writer(writerOptions(syntax, options), prepare(quads)).write(),\n catch: (error) => toSerializeError(syntax, Predicate.isError(error) ? error : String(error)),\n }).pipe(Serialization.withSerializeSpan(Option.getOrUndefined(syntax.trace)));\n\n/** @internal */\nexport const serializeStream =\n (syntax: Syntax) =>\n <E, R>(\n quads: Stream.Stream<Term.Quad, E, R>,\n options?: SerializeOptions,\n ): Stream.Stream<string, Serialization.RdfSerializeError | E, R> =>\n Stream.suspend(() => {\n const writer = new StreamWriter(writerOptions(syntax, options));\n const write = (f: () => string) =>\n Effect.try({\n try: f,\n catch: (error) =>\n toSerializeError(syntax, Predicate.isError(error) ? error : String(error)),\n });\n return quads.pipe(\n Stream.chunks,\n Stream.mapEffect((chunk) => write(() => writer.write(chunk))),\n Stream.concat(Stream.fromEffect(write(() => writer.end()))),\n Stream.filter((s) => s !== ''),\n );\n }).pipe(Serialization.withStreamSpan(Option.getOrUndefined(syntax.trace), 'serializeStream'));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,QAAQ;;AAGd,MAAM,UAAiC,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC;;AAGhF,MAAM,SAA2B,SAAS,QAAQ,OAAO,IAAI,KAAK,KAAK;;AAGvE,MAAa,QAAQ,SAAuC;CAE1D,IAAI,QAAQ,OAAO,MAAM,KAAK,CAAC,CAAC,GAC9B,SAAS,KAAK,SAAS,SAAS,QAAQ,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;ACeA,IAAa,gBAAb,cAAmC,MAAM;CACvC;CACA;CACA,YAAY,SAAiB,MAAc,QAAgB;EACzD,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;CAChB;AACF;;AAYA,IAAM,OAAN,MAAW;CACT;CACA;CACA,YAAY,SAAiB,KAAa;EACxC,KAAK,UAAU;EACf,KAAK,MAAM;CACb;AACF;;;;;;;AAQA,MAAM,SAAS;AAEf,MAAM,QAAQ;AACd,MAAM,cAAc;AACpB,MAAM,YAAY;AAClB,MAAM,OAAO;;AAGb,MAAM,OAAO;;AAGb,MAAM,YAAY,OAAe,QAAwB;CACvD,IAAI,MAAM,WAAW,GAAG,MAAM,OAAO,OAAO;CAC5C,KAAK,YAAY;CACjB,KAAK,KAAK,KAAK;CACf,OAAO,KAAK;AACd;;AASA,IAAM,QAAN,MAAY;CACV,UAAwB,IAAI;CAC5B,YAA4B,IAAI;CAChC,SAAsB,IAAI;CAC1B,UAA0D,OAAO,KAAK;;CAEtE,SAAqC,OAAO,KAAK;AACnD;AAEA,MAAM,YAAY,OAAO,KAAsC;AAC/D,MAAM,WAAW,OAAO,KAAkB;AAK1C,IAAM,UAAN,MAAc;CACZ;CACA,WAAoB,eAAe,MAAsB;CACzD;CACA,MAAwB,CAAC;CACzB,SAAkB,eAAe,MAA8B;CAC/D,UAAU;CACV;CACA,UAAU;;CAGV,QAAQ;CACR,QAAQ;CACR,SAAgC,CAAC;CACjC,QAAQ;;CAER,UAA2C,IAAI;;CAG/C,OAAO;CACP,UAAU;CACV,UAAU;CACV,cAAc;CACd;CACA,cAAc;CACd,WAAkC,OAAO,KAAK;;CAE9C,aAA2C,OAAO,KAAK;;CAEvD,WAAW;CACX,SAAS;CACT,YAAY;CACZ,SAAS;CACT,cAAc;CACd,YAAY;CACZ,WAAW;CACX,eAAe;CACf,eAAe;;CAGf,UAAU;;CAEV,SAAiB;CACjB,aAAqB;CACrB;CACA,aAAqB;CACrB,UAAyC,OAAO,KAAK;;CAErD,cAAqD,CAAC;CAEtD,YAAY,SAAwB;EAClC,KAAK,UAAU;EACf,KAAK,OAAO,QAAQ;EACpB,KAAK,QAAQ,QAAQ;EACrB,KAAK,YAAY,QAAQ;EACzB,KAAK,WAAW,QAAQ;CAC1B;;CAGA,WAAiB;EACf,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,SAAS,KAAK,IAAI;EACvB,KAAK,aAAa,KAAK;EACvB,KAAK,WAAW,KAAK;EACrB,KAAK,aAAa,KAAK;EACvB,KAAK,UAAU,KAAK;EACpB,KAAK,YAAY,SAAS;CAC5B;;CAGA,aAAmB;EACjB,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,QAAQ;EACb,KAAK,IAAI,SAAS,KAAK;EACvB,KAAK,UAAU,KAAK;EACpB,KAAK,QAAQ,KAAK;EAClB,KAAK,UAAU,KAAK;EACpB,KAAK,OAAO,KAAK;EACjB,IAAI,QAAQ,IAAI,QAAQ,KAAK,WAAW,IAAI,YAAY,KAAK,cAAc,OAAO,CAAC;EACnF,KAAK,YAAY,SAAS;CAC5B;CAEA,cAAsB,CAAC,QAAQ,WAAgC;EAC7D,IAAI,OAAO,OAAO,QAAQ,GAAG,eAAe,IAAI,KAAK,UAAU,QAAQ,SAAS,KAAK;OAChF,eAAe,OAAO,KAAK,UAAU,MAAM;CAClD;CAEA,QAAe;EAEb,OAAO,KAAK,OAAO,KAAK,UAAU,IAAI,MAAM;CAC9C;CAEA,KAAK,SAA6B;EAChC,MAAM,QAAS,KAAK,OAAO,EAAE,KAAK,WAAW,IAAI,MAAM;EACvD,MAAM,UAAU;EAChB,MAAM,UAAU;EAChB,MAAM,SAAS;CACjB;CAEA,KAAK,GAAiB,GAAmB,GAAsB;EAC7D,KAAK,IAAI,KAAK,IAAIA,KAAU,GAAG,GAAG,GAAG,KAAK,KAAK,CAAC;CAClD;CAEA,QAAwB;EACtB,OAAO,IAAIC,UAAe,GAAG,KAAK,QAAQ,gBAAgB,IAAI,KAAK,UAAA,CAAW,SAAS,EAAE,GAAG;CAC9F;CAEA,SAAS,KAAmB;EAC1B,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;EACf,KAAK,UAAU,KAAK,IAAI;EACxB,KAAK,cAAc,KAAK;EACxB,KAAK,YAAY,KAAK;EACtB,KAAK,cAAc,KAAK;EACxB,KAAK,WAAW,KAAK;EACrB,KAAK,aAAa,OAAO,KAAK;CAChC;;CAGA,WAAiB;EACf,IAAI,CAAC,KAAK,MAAM;EAChB,KAAK,IAAI,SAAS,KAAK;EACvB,KAAK,UAAU,KAAK;EACpB,KAAK,QAAQ,KAAK;EAClB,KAAK,UAAU,KAAK;EACpB,KAAK,OAAO,KAAK;EACjB,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG;GAClC,KAAK,cAAc,KAAK,WAAW,KAAK;GACxC,KAAK,aAAa,OAAO,KAAK;EAChC;EACA,KAAK,QAAQ;CACf;CAEA,UAAU,QAAgB,KAAmB;EAC3C,MAAM,UAAyB,CAAC,QAAQ,eAAe,IAAI,KAAK,UAAU,MAAM,CAAC;EACjF,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,KAAK,aAAa,OAAO,KAAK,OAAO;EACzE,KAAK,YAAY,KAAK,OAAO;EAC7B,eAAe,IAAI,KAAK,UAAU,QAAQ,GAAG;CAC/C;CAEA,UAAU,OAAyB;EACjC,KAAK,UAAU;EACf,KAAK,QAAQ;CACf;AACF;;AAGA,IAAI,IAAa,IAAI,QAAQ;CAC3B,MAAM;CACN,SAAS,OAAO,KAAK;CACrB,iBAAiB;CACjB,OAAOC;AACT,CAAC;AAMD,MAAM,MAAM,MAAM;AAClB,MAAM,OAAOC;;AAGb,MAAM,OAAO,MAAwC,OAAO,IAAI,OAAO,UAAU,CAAC;;AAGlF,MAAM,YAAuB,YAC3B,OAAO,MAAS,UAAU;CACxB,MAAM,IAAI,KAAK,SAAS,MAAM,GAAG;AACnC,CAAC;;AAGH,MAAM,YAAuB,aAC3B,OAAO,MAAS,UAAU;CACxB,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG;AACvC,CAAC;AAEH,MAAM,MAAM,MAA0B,OAAO,KAAK,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,MAAM,MAAM,CAACC,SAAiB,GAAG,CAAC;AACnD,MAAM,UAAU,OAAO,IAAI,QAAQ;;AAGnC,MAAM,WAAW,SAA6B,OAAO,WAAW,MAAM,SAAS,IAAI,GAAG,OAAO;;AAG7F,MAAM,aAAa,SACjB,OAAO,WAAW,IAAI,IAAI,GAAG,OAAO,IAAI,MAAM,MAAM,CAACC,cAAsB,GAAG,CAAC,CAAC,CAAC;;AAGnF,MAAM,aAAa,SAA6B,OAAO,IAAI,IAAI,GAAG,GAAG,SAAS,YAAY,MAAM,CAAC;AAEjG,MAAM,YAAwB,OAAO,KAAK,OAAO,IAAI,IAAI,GAAG,GAAG,MAAM,MAAMC,WAAmB,CAAC,CAAC;AAMhG,MAAM,gBAAgB,UAAU,SAAS,OAAO;;;;;AAMhD,MAAM,QACJ,OACA,SACwB;CACxB,IAAI,IAAI;CACR,IAAI,QAAQ,OAAO,KAAW;CAC9B,WAAW;EACT,MAAM,OAAO,KAAK,CAAC;EACnB,IAAI,UAAU,SAAS,IAAI,GAAG;GAC5B,IAAI;GACJ,OAAO;EACT;EACA,QAAQ;EACR,OAAO;CACT,CAAC;CACD,OAAO;AACT;AAEA,MAAM,QAAQ,SAAiB,QAC7B,OAAO,KAAK,IAAI,KAAK,SAAS,GAAG,CAAC;;AAGpC,MAAM,YAAY,OAAe,OAAe,MAAM,MAAM,WAC1D,KAAK,QAAQ,IAAI,MAAM;CACrB,IAAI,KAAK,KAAK,OAAO,QAAQ,MAAM,SAAS,KAAK,oBAAoB,KAAK,IAAI,OAAO,KAAK;CAC1F,MAAM,IAAI,MAAM,WAAW,CAAC;CAC5B,IAAI,MAAM,MAAM,OAAO,OAAO,KAAK;CACnC,IAAI,MAAM,aAAa;EACrB,MAAM,UAAUC,YAAoB,OAAO,CAAC;EAC5C,IAAI,cAAc,OAAO,GAAG,OAAO,KAAK,QAAQ,SAAS,CAAC;EAC1D,IAAI,CAACC,UAAkB,QAAQ,MAAM,YAAY,CAAC,KAAK,CAAC,GACtD,OAAO,KAAK,8CAA8C,CAAC;EAE7D,OAAO,IAAI,QAAQ;CACrB;CACA,IAAI,CAACA,UAAkB,CAAC,GAAG,OAAO,KAAK,4BAA4B,CAAC;CACpE,OAAO,IAAI;AACb,CAAC;;AAGH,MAAM,eAAe,OAAe,OAAe,MAAM,MAAM,WAAgC;CAC7F,MAAM,IAAI,MAAM,WAAW,KAAK;CAChC,MAAM,OAAO,MAAM,WAAW,QAAQ,CAAC,MAAM,KAAK,MAAM,WAAW,QAAQ,CAAC,MAAM;CAClF,IAAI,CAAC,QAAQ,MAAM,WAAW,QAAQ,CAAC,MAAM,GAAG,OAAO,OAAO,KAAK;CACnE,OAAO,KAAK,SAAS,OAAO,IAAI,KAAK,MAAM;EACzC,IAAI,KAAK,KACP,OAAO,QAAQ,MAAM,SAAS,KAAK,+BAA+B,KAAK,IAAI,OAAO,KAAK;EAEzF,MAAM,IAAI,MAAM,WAAW,CAAC;EAC5B,IAAI,MAAM,GAAG;GACX,IAAI,CAAC,MAAM,OAAO,OAAO,KAAK;GAC9B,IAAI,MAAM,WAAW,IAAI,CAAC,MAAM,KAAK,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO,KAAK;GACvF,OAAO,IAAI;EACb;EACA,IAAI,MAAM,aAAa;GACrB,IAAIC,YAAoB,MAAM,WAAW,IAAI,CAAC,CAAC,MAAM,KAAA,GAAW,OAAO,IAAI;GAC3E,MAAM,UAAUF,YAAoB,OAAO,CAAC;GAC5C,IAAI,cAAc,OAAO,GAAG,OAAO,KAAK,QAAQ,SAAS,CAAC;GAC1D,OAAO,IAAI,QAAQ;EACrB;EACA,IAAI,CAAC,SAAS,MAAM,MAAQ,MAAM,KAAO,OAAO,KAAK,gCAAgC,CAAC;EACtF,OAAO,IAAI;CACb,CAAC;AACH;AAEA,MAAM,aACH,MAA6D,aAC7D,OAAe,QACd,OAAO,UAAU,KAAK,OAAO,GAAG,SAAS,IAAI,KAAK,SAAS,GAAG,CAAC;;AAOnE,MAAM,MAAyB,OAAO,SACpC,KAAK,QAAQ;CACX,EAAE,WAAW;AACf,CAAC,GACD,OAAO,WACL,OAAO,IAAI,OAAO,UAAUG,MAAc,GAAG,SAAS,UAAU,UAAU,aAAa,CAAC,CAAC,GACzF,KAAK,QAAQ;CACX,EAAE,SAAS;AACb,CAAC,CACH,CACF,CAAC,CAAC,KACA,OAAO,KAAK,UAAU;CACpB,MAAM,QAAQ,EAAE;CAEhB,IAAI,EAAE,SAAS,QAAQ,MAAM,MAAM,QAAQ;EACzC,MAAM,QAAQ,SAAS,EAAE,OAAO,OAAO,EAAE,MAAM;EAC/C,IAAI,OAAO,OAAO,KAAK,GAAG,MAAM,MAAM;CACxC;CACA,IAAI,OAAO,OAAO,EAAE,IAAI,GAAG;EACzB,IAAI,CAACC,cAAsB,KAAK,GAC9B,MAAM,IAAI,KAAK,iBAAiB,MAAM,0CAA0C,KAAK;EAEvF,OAAO,IAAIC,UAAe,KAAK;CACjC;CACA,OAAO,IAAIA,UAAeC,QAAY,OAAO,EAAE,KAAK,KAAK,CAAC;AAC5D,CAAC,CACH;;AAGA,MAAM,gBAAyB,OAAO,MAAY,UAAU;CAC1D,IAAI,MAAM,MAAM,WAAW,MAAM,GAAG,MAAM,OACxC,MAAM,IAAI,KAAK,yCAAuC,MAAM,MAAM,EAAE,OAAO,MAAM;AAGrF,CAAC;;AAGD,MAAM,cAAyB,OAAO,IACpC,OAAO,WACL,OAAO,IAAIC,WAAmB,WAAW;CACvC,EAAE,SAAS;AACb,CAAC,GACD,aACF,GACA,OAAO,SAAS,GAAG,GAAG,GAAG,OAAO,QAAQ,EAAE,CAAC,GAC3C,SAAS,qBAAqB,CAChC;;AAGA,MAAM,YAAqB,OAAO,MAAY,UAAU;CACtD,MAAM,QAAQ,MAAM;CACpB,MAAM,IAAI,SAAS,OAAO,MAAM,GAAG;CACnC,MAAM,IAAI,MAAM,WAAW,CAAC;CAC5B,IAAI,MAAM,WAAW,MAAM,IAAI,KAAK,0BAA0B,CAAC;CAC/D,IAAI,MAAM,aAAa,MAAM,IAAI,KAAK,gCAAgC,CAAC;AAEzE,CAAC;AAED,MAAM,eAAkC,OAAO,SAC7C,OAAO,IACL,KAAK,QAAQ;CACX,EAAE,YAAY;AAChB,CAAC,GACD,OAAO,IAAI,cAAc,WAAW;CAClC,EAAE,SAAS;AACb,CAAC,CACH,GACA,OAAO,IACL,OAAO,SACL,IAAI,GAAG,GACP,OAAO,WAAW,OAAO,IAAIC,SAAiB,OAAO,QAAQ,EAAE,CAAC,GAAG,SAAS,CAC9E,CAAC,CAAC,KACA,OAAO,KAAK,UAAU;CACpB,MAAM,KAAK,eAAe,IAAI,EAAE,UAAU,EAAE,MAAM;CAClD,IAAI,OAAO,OAAO,EAAE,GAAG,MAAM,IAAI,KAAK,qBAAqB,EAAE,OAAO,KAAK,EAAE,SAAS;CACpF,OAAO,IAAIH,UAAe,GAAG,QAAQ,KAAK;AAC5C,CAAC,CACH,GACA,OAAO,WAA2B;CAChC,MAAM,IAAI,KAAK,4BAA4B,EAAE,SAAS;AACxD,CAAC,CACH,CACF;AAEA,MAAM,YAA+B,OAAO,IAC1CI,gBACA,OAAO,SAAS,IAAI,IAAI,GAAG,SAAiB,0BAA0B,CAAC,CACzE,CAAC,CAAC,KACA,OAAO,KAAK,UAAU;CACpB,MAAM,QAAQ,eAAe,IAAI,EAAE,QAAQ,KAAK;CAChD,IAAI,OAAO,OAAO,KAAK,GAAG,OAAO,MAAM;CACvC,MAAM,OAAO,IAAIf,UACf,EAAE,QAAQ,mBAAmB,MAAM,WAAW,GAAG,IAAI,IAAI,UAAU,MACrE;CACA,eAAe,IAAI,EAAE,QAAQ,OAAO,IAAI;CACxC,OAAO;AACT,CAAC,CACH;;AAGA,MAAM,WAA+C,OAAO,IAC1D,OAAO,SAAS,GAAG,IAAI,GAAG,SAAS,mBAAmB,CAAC,GACvD,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG,GAC5B,OAAO,SAAS,GAAG,IAAI,GAAG,SAAS,GACnC,YACF;;AAGA,MAAM,SAAoB,OAAO,SAC/B,KAAK,QAAQ;CACX,EAAE,cAAc;AAClB,CAAC,GACD,OAAO,WACL,OAAO,IACL,OAAO,UAAUgB,aAAqB,GACtC,SAAS,UAAU,aAAa,wBAAwB,CAAC,CAC3D,GACA,KAAK,QAAQ;CACX,EAAE,YAAY;AAChB,CAAC,CACH,CACF,CAAC,CAAC,KACA,OAAO,KAAK,UAAU;CAEpB,MAAM,QAAQ,EAAE;CAChB,MAAM,QAAQ,EAAE;CAChB,MAAM,IAAI,MAAM,WAAW,KAAK;CAChC,MAAM,SAAS,MAAM,WAAW,QAAQ,CAAC,MAAM,KAAK,MAAM,WAAW,QAAQ,CAAC,MAAM,IAAI,IAAI;CAC5F,IAAI,EAAE,YAAY,QAAQ,WAAW,MAAM,QAAQ;EACjD,MAAM,QAAQ,YAAY,OAAO,OAAO,EAAE,SAAS;EACnD,IAAI,OAAO,OAAO,KAAK,GAAG,MAAM,MAAM;CACxC;CACA,OAAO;AACT,CAAC,CACH;AAEA,MAAM,WAA8B,OAAO,IACzC,OAAO,SAAS,OAAO,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAC/D,OAAO,SAAS,WAAW,YAAY,GACvC,SAAS,yBAAyB,CACpC;AAEA,MAAM,cAAsC,OAAO,SACjD,IAAI,GAAG,GACP,OAAO,SACL,KAAK,QAAQ;CACX,EAAE,WAAW;AACf,CAAC,GACD,MAAM,UAAU,CAACZ,cAAsB,GAAG,CAAC,CAC7C,CACF,CAAC,CAAC,KACA,OAAO,KAAK,SAAS;CACnB,MAAM,MAAMa,iBAAyB,IAAI;CACzC,IAAI,QAAQ,KAAA,GAAW,MAAM,IAAI,KAAK,wBAAwB,EAAE,QAAQ;CACxE,OAAO;AACT,CAAC,CACH;;AAGA,MAAM,oBAAoB,eAAmE;CAC3F,MAAM,SAASC,YAAoB,EAAE,cAAc,UAAU;CAC7D,IAAI,UAAU,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,QAAQ,EAAE,YAAY;CACrE,OAAO;AACT;AAEA,MAAM,aAA8B,OAAO,SACzC,OAAO,IACL,KAAK,QAAQ;CACX,EAAE,eAAe;AACnB,CAAC,GACD,OAAO,IAAI,SAAS,UAAU;CAC5B,EAAE,eAAe;AACnB,CAAC,GACD,IACF,GACA,OAAO,IACL,YAAY,KAAK,OAAO,IAAI,gBAAgB,CAAC,GAC7C,OAAO,SACL,OAAO,IAAI,IAAI,IAAI,GAAG,OAAO,SAAS,GAAG,GAAG,GAAG,SAAS,eAAe,CAAC,CAAC,GACzE,OAAO,SAAS,MAAM,QAAQ,CAChC,CAAC,CAAC,KAAK,OAAO,IAAI,gBAAgB,CAAC,GACnC,OAAO,WAAyBC,QAAa,EAAE,YAAY,CAAC,CAC9D,CACF;AAEA,MAAM,iBAAkC,OAAO,IAAA,OAC9B,KAAK,OAAO,KAAK,UAAU,IAAIC,QAAa,OAAO,IAAI,MAAM,CAAC,CAAC,GAAA,QAC9D,KAAK,OAAO,KAAK,UAAU,IAAIA,QAAa,OAAO,IAAI,OAAO,CAAC,CAAC,GAAA,QAChE,KAAK,OAAO,KAAK,UAAU,IAAIA,QAAa,OAAO,IAAI,OAAO,CAAC,CAAC,GAChF,SAAS,gBAAgB,CAC3B;AAEA,MAAM,cAAc,IAAIA,QAAa,QAAQ,IAAI,OAAO;AACxD,MAAM,eAAe,IAAIA,QAAa,SAAS,IAAI,OAAO;AAE1D,MAAM,iBAAkC,OAAO,IAC7C,OAAO,WAAW,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,GACnE,OAAO,WAAW,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,KAAK,OAAO,GAAG,YAAY,CAAC,CACvE;;AAGA,MAAM,eAA+B,OAAO,IAC1C,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC,GAAG,cAAc,GACzE,gBACA,OAAO,SAAS,WAAW,YAAY,GACvC,SAAS,oBAAoB,CAC/B;AAEA,MAAM,OAA0B,OAAO,IAAI,IAAI,GAAG,GAAG,MAAM,UAAU,QAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KACzF,OAAO,UAAU,EAAE,MAAM,CAAC,CAC5B;;AAGA,MAAM,kBAAkB,SACtB,OAAO,IACL,OAAO,SACL,GAAG,GAAG,GACN,OAAO,IAAI,MAAM,SAAS,gDAAgD,MAAM,CAAC,CACnF,GACA,OAAO,SAAS,GAAG,IAAI,GAAG,SAAS,wBAAwB,MAAM,CAAC,GAClE,OAAO,SAAS,GAAG,GAAG,GAAG,SAAS,kCAAkC,MAAM,CAAC,GAC3E,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,QAAQ,GACzD,OAAO,SACL,OAAO,IAAI,OAAO,KAAK,MAAM,MAAMf,WAAmB,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC,GACpF,QACF,GACA,SAAS,oCAAoC,MAAM,CACrD;AAEF,MAAM,OAA0B,OAAO,IACrC,OAAO,SAAS,GAAG,IAAI,GAAG,SAAS,uCAAuC,CAAC,GAC3E,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG,GAC5B,OAAO,WAAW,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,IAAI,CAAC,GAC7D,OAAO,SAAS,WAAW,YAAY,GACvC,SAAS,sBAAsB,CACjC;AAEA,MAAM,aAA6B,OAAO,cAAc,aAAa;AACrE,MAAM,gBAAoD,OAAO,cAAc,gBAAgB;AAC/F,MAAM,SAAyB,OAAO,cAAc,SAAS;AAC7D,MAAM,sBAAkC,OAAO,cAAc,sBAAsB;;AAGnF,MAAM,eAAe,YAAqC;CACxD,MAAM,OAAO,UAAU,oBAAoB;CAC3C,OAAO,OAAO,IACZ,OAAO,SAAS,GAAG,KAAK,GAAG,UAAU,GACrC,OAAO,SACL,GAAG,IAAI,GACP,UAAU,gBAAgB,SAAS,iDAAiD,CACtF,GACA,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,QAAQ,GACxD,OAAO,SACL,GAAG,GAAG,GACN,OAAO,IAAI,MAAM,SAAS,gDAAgD,MAAM,CAAC,CACnF,GACA,OAAO,SAAS,GAAG,GAAG,GAAG,SAAS,kCAAkC,MAAM,CAAC,GAC3E,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,UAAU,GAC3D,YACF;AACF;AAEA,MAAM,gBAAgC,OAAO,IAC3C,OAAO,SAAS,OAAO,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,eAAe,8BAA8B,CAAC,GAC5F,OAAO,SAAS,MAAM,IAAI,GAC1B,OAAO,SAAS,MAAM,YAAY,KAAK,CAAC,GACxC,OAAO,SAAS,MAAM,OAAO,IAAI,IAAI,KAAK,GAAG,SAAS,gBAAgB,CAAC,CAAC,CAC1E,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,GAAG,GAAG,OAAO,IAAIgB,OAAY,GAAG,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,kBAA8B,OAAO,KACzC,OAAO,IACL,OAAO,SAAS,OAAO,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAC/C,IAAI,IAAI,GACR,MACA,IAAI,GAAG,GACP,MAAM,MAAMhB,WAAmB,CACjC,CACF;;AAGA,MAAM,YAAgD,OAAO,SAC3D,iBACA,OAAO,IAAI,OAAO,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,QAAQ,CACrD;AAEA,MAAM,mBAAuD,OAAO,IAClE,OAAO,SACL,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,GAC1B,OAAO,IACL,OAAO,SAAS,OAAO,IAAI,GAAG,IAAI,GAAG,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,aAAa,GAC3E,eAAe,iCAAiC,CAClD,CACF,GACA,OAAO,SAAS,MAAM,IAAI,GAC1B,OAAO,SAAS,MAAM,YAAY,IAAI,CAAC,GACvC,OAAO,SACL,MACA,OAAO,IACL,OAAO,SAAS,OAAO,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,WAAW,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC,CAC5F,CACF,GACA,OAAO,IAAI,IAAI,IAAI,GAAG,SAAS,eAAe,CAAC,CACjD,CAAC,CAAC,KACA,OAAO,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO;CAC3B,MAAM,UAAU,OAAO,UAAU,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CACnE,EAAE,KAAK,SAAS,IAAI,SAAS,IAAIgB,OAAY,GAAG,GAAG,CAAC,CAAC;CACrD,OAAO;AACT,CAAC,CACH;AAEA,MAAM,wBAA2C,OAAO,IACtD,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,SAAS,EAAE,KAAK,IAAI,CAAC,GAC7E,OAAO,SAAS,MAAM,mBAAmB,GACzC,OAAO,SAAS,MAAM,OAAO,IAAI,IAAI,GAAG,GAAG,SAAS,cAAc,CAAC,CAAC,CACtE,CAAC,CAAC,KACA,OAAO,UAAU;CACf,EAAE;AACJ,CAAC,GACD,OAAO,KAAK,CAAC,UAAU,IAAI,CAC7B;AAEA,MAAM,aAAiD,OAAO,SAC5D,OAAO,IAAI,IAAI,GAAG,GAAG,IAAI,GACzB,OAAO,WACL,OAAO,OACL,OAAO,SACL,OAAO,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,GAAG,OAAO,IAAI,OAAO,GAAG,CAAC,GACvD,OAAO,WAAW,QAAQ,IAAI,CAChC,CACF,GACA,OAAO,IAAI,IAAI,GAAG,GAAG,SAAS,cAAc,CAAC,CAC/C,CACF,CAAC,CAAC,KACA,OAAO,KAAK,UAAU;CACpB,IAAI,IAAI,qBAAqB,KAAK,GAAG,OAAO,IAAI;CAEhD,MAAM,OAAO,EAAE,MAAM;CACrB,IAAI,OAAqD,OAAO,OAAO,MAAM,MAAM,MAAM;EACvF,EAAE,KAAK,MAAM,IAAI,OAAO,IAAI;EAC5B,MAAM,OAAO,IAAI,IAAI,MAAM,SAAS,EAAE,MAAM,IAAI,IAAI;EACpD,EAAE,KAAK,MAAM,IAAI,MAAM,IAAI;EAC3B,OAAO;CACT,CAAC;CACD,OAAO;AACT,CAAC,CACH;;;;;;AAOA,MAAM,QAAW,MAAkB,OAAO,cAAc,CAAC;AAEzD,MAAM,YAA4B,OAAO,IACvC,OAAO,SAAS,GAAG,KAAK,GAAG,UAAU,GACrC,OAAO,SAAS,GAAG,IAAI,GAAG,aAAa,GACvC,OAAO,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,GAClC,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,SAAS,CAAC,GACzC,OAAO,SAAS,GAAG,GAAG,GAAG,KAAK,YAAY,CAAC,GAC3C,OAAO,SAAS,GAAG,GAAG,GAAG,OAAO,IAAI,KAAK,IAAI,GAAG,KAAK,qBAAqB,CAAC,CAAC,GAC5E,OAAO,SAAS,GAAG,GAAG,GAAG,KAAK,UAAU,CAAC,GACzC,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GACjE,KAAK,YAAY,CACnB;AAMA,MAAM,YAA+B,OAAO,WAA2B,EAAE,MAAM,CAAC;AAEhF,MAAM,aAA6B,OAAO,IAAI,SAAS,MAAM;CAC3D,MAAM,QAAQ,EAAE,MAAM;CACtB,EAAE,KAAK,MAAM,SAAS,MAAM,WAAW,CAAC;CACxC,MAAM,SAAS;CACf,MAAM,UAAU;CAChB,MAAM,SAAS;AACjB,CAAC;;AAGD,MAAM,eAAe,UAA8B;CACjD,IAAI,OAAO,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,OAAO;CACrD,MAAM,SAAS,IAAIA,OAAY,MAAM,SAAS,MAAM,WAAW,MAAM,MAAM;CAC3E,MAAM,SAAS,OAAO,KAAK,MAAM;CACjC,OAAO;AACT;AAEA,MAAM,WAAW,OAAc,YAAmD;CAChF,EAAE,KAAK,SAAS,IAAI,SAAS,YAAY,KAAK,CAAC;AACjD;AAGA,MAAM,aAAyB,OAAO,OACpC,OAAO,SACL,MACA,OAAO,IACL,OAAO,IACL,OAAO,SAAS,OAAO,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,IAAI,WAAW,SAAS,CAAC,IAC3E,YAAY;CACX,MAAM,QAAQ,EAAE,MAAM;CACtB,QAAQ,OAAO,OAAO;CACtB,MAAM,UAAU,OAAO,KAAK,OAAO;AACrC,CACF,GACA,OAAO,IACL,OAAO,IAAI,IAAI,IAAI,SAAS;CAC1B,MAAM,QAAQ,EAAE,MAAM;CACtB,IAAI,OAAO,OAAO,MAAM,OAAO,GAAG;EAChC,EAAE,KAAK,MAAM,QAAQ,KAAK;EAC1B;CACF;CACA,MAAM,UAAU,EAAE,MAAM;CACxB,MAAM,UAAU,OAAO,KAAK,OAAO;CACnC,QAAQ,OAAO,OAAO;CACtB,EAAE,KAAK,OAAO;AAChB,CAAC,GACD,OAAO,SAAS,MAAM,mBAAmB,GACzC,OAAO,SAAS,MAAM,OAAO,IAAI,IAAI,IAAI,GAAG,SAAS,eAAe,CAAC,CAAC,CACxE,CAAC,CAAC,KACA,OAAO,UAAU;CACf,EAAE;CACF,EAAE,MAAM,CAAC,CAAC,UAAU;AACtB,CAAC,CACH,CACF,CACF,CACF;AAEA,MAAM,aAAyB,OAAO,IACpC,YACA,KAAK,UAAU,GACf,MACA,OAAO,OACL,OAAO,SAAS,OAAO,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,IAAI,YAAY,YAAY,IAAI,CAAC,CACtF,CACF;AAEA,MAAM,eAAkC,OAAO,IAAI,KAAK,IAAI,IAAI,MAAM;CACpE,EAAE,MAAM,CAAC,CAAC,YAAY;AACxB,CAAC;AAED,MAAM,aAAyB,OAAO,KACpC,OAAO,IACL,OAAO,SAAS,OAAO,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAC/C,IAAI,GAAG,GACP,MAAM,MAAMhB,WAAmB,CACjC,CACF;AAEA,MAAM,yBAAqC,OAAO,IAChD,cACA,MACA,YACA,OAAO,OACL,OAAO,SACL,OAAO,OAAO,OAAO,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,GACpD,OAAO,IAAI,OAAO,SAAS,YAAY,OAAO,IAAI,cAAc,MAAM,UAAU,CAAC,CAAC,CACpF,CACF,CACF;;AAGA,MAAM,cAAc,SAA0B,SAC5C,OAAO,WACL,OAAO,SACL,OAAO,IAAI,UAAU,MAAM,EAAE,KAAK,CAAC,CAAC,GACpC,IACF,GACA,UAAU;CACR,EAAE;AACJ,CAAC,CACH;AAEF,MAAM,SAAqB,OAAO,IAAI,MAAM,MAAM,IAAI,CAAC;AAEvD,MAAM,aAAyB,OAAO,SAAS,MAAM,mBAAmB;AACxE,MAAM,qBAAiC,OAAO,SAC5C,MACA,OAAO,IAAI,OAAO,SAAS,QAAQ,mBAAmB,CAAC,CACzD;;AAGA,MAAM,UAAsB,OAAO,IACjC,OAAO,SACL,GAAG,GAAG,GACN,OAAO,IAAI,WAAW,MAAM,UAAU,GAAG,WAAW,uBAAuB,kBAAkB,CAAC,CAChG,GACA,OAAO,SAAS,GAAG,GAAG,GAAG,WAAW,YAAY,UAAU,CAAC,GAC3D,OAAO,SAAS,GAAG,KAAK,GAAG,SAAS,0CAA0C,CAAC,GAC/E,OAAO,SAAS,GAAG,IAAI,GAAG,WAAW,eAAe,kBAAkB,CAAC,GACvE,WAAW,UAAU,UAAU,CACjC;AAMA,MAAM,mBAAmB,WACvB,OAAO,IACL,OAAO,IACL,OAAO,SAAS,MAAM,OAAO,IAAI,OAAO,UAAU,aAAa,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IACnF,CAAC,SAAS,WAAW;CACpB,IAAI,OAAO,OAAO,KAAK,GAAG,MAAM,IAAI,KAAK,4CAA0C,KAAK;AAC1F,CACF,GACA,OAAO,SAAS,MAAM,OAAO,IAAI,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,iBAAiB,CAAC,CAAC,GAC5F,SAAS,OAAO,SAAS,MAAM,UAAU,mBAAmB,CAAC,IAAI,OAAO,QAAQ,KAAA,CAAS,CAC3F,CAAC,CAAC,KACA,OAAO,KAAK,CAAC,GAAG,SAAS,SAAS;CAChC,EAAE,UAAU,QAAQ,IAAI,KAAK;AAC/B,CAAC,CACH;AAEF,MAAM,iBAAiB,WACrB,OAAO,IACL,OAAO,SAAS,MAAM,OAAO,IAAI,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,iBAAiB,CAAC,CAAC,GAC5F,SAAS,OAAO,SAAS,MAAM,UAAU,iBAAiB,CAAC,IAAI,OAAO,QAAQ,KAAA,CAAS,CACzF,CAAC,CAAC,KACA,OAAO,KAAK,CAAC,SAAS;CACpB,EAAE,OAAO,OAAO,KAAK,IAAI,KAAK;AAChC,CAAC,CACH;AAEF,MAAM,oBAAoB,WACxB,OAAO,IACL,OAAO,SACL,MACA,OAAO,IACL,OAAO,SACL,OAAO,KAAK,OAAO,IAAI,IAAI,QAAK,GAAG,IAAI,KAAK,CAAC,CAAC,GAC9C,SAAS,oDAAoD,CAC/D,GACA,OAAO,SAAS,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG,MAAM,GACvD,SAAS,2BAA2B,CACtC,CACF,GACA,SAAS,OAAO,SAAS,MAAM,UAAU,oBAAoB,CAAC,IAAI,OAAO,QAAQ,KAAA,CAAS,CAC5F;AAEF,MAAM,YAAwB,OAAO,IACnC,OAAO,SACL,GAAG,GAAG,GACN,OAAO,IACL,OAAO,SAAS,UAAU,SAAS,GAAG,gBAAgB,IAAI,CAAC,GAC3D,OAAO,SAAS,UAAU,OAAO,GAAG,cAAc,IAAI,CAAC,GACvD,OAAO,SAAS,UAAU,UAAU,GAAG,iBAAiB,IAAI,CAAC,GAC7D,SAAS,mBAAmB,CAC9B,CACF,GACA,OAAO,SAAS,QAAQ,QAAQ,GAAG,gBAAgB,KAAK,CAAC,GACzD,OAAO,SAAS,QAAQ,MAAM,GAAG,cAAc,KAAK,CAAC,GACrD,OAAO,SAAS,QAAQ,SAAS,GAAG,iBAAiB,KAAK,CAAC,CAC7D;AAEA,MAAM,iBAA6B,OAAO,SACxC,MACA,UAAU,iCAAiC,CAC7C;AAEA,MAAM,kBAA8B,OAAO,IAAI,WAAW,OAAO,IAAI,SAAS,cAAc,CAAC;AAE7F,MAAM,WAAW,MACf,OAAO,IAAI,IAAI,SAAS;CACtB,EAAE,UAAU;AACd,CAAC;;AAGH,MAAM,oBAAgC,OAAO,SAC3C,MACA,OAAO,IACL,OAAO,IAAI,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,GACjD,OAAO,IACL,WACE,OAAO,WAAyB,EAAE,OAAO,GACzC,mBACF,GACA,cACF,CACF,CACF;AAEA,MAAM,aAAiD,OAAO,IAC5D,OAAO,SAAS,GAAG,GAAG,GAAG,OAAO,IAAI,MAAM,SAAS,uBAAuB,CAAC,CAAC,GAC5E,QACF;;AAGA,MAAM,QAAoB,OAAO,IAC/B,OAAO,IAAI,IAAI,GAAG,SAAS,EAAE,UAAUJ,YAAiB,CAAC,GACzD,OAAO,SACL,QAAQ,OAAO,GACf,OAAO,IACL,QAAQ,OAAO,SAAS,MAAM,UAAU,CAAC,GACzC,OAAO,SAAS,MAAM,OAAO,IAAI,IAAI,GAAG,GAAG,SAAS,+BAA+B,CAAC,CAAC,CACvF,CAAC,CAAC,KAAK,OAAO,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CACjD,GACA,OAAO,SACL,GAAG,GAAG,GACN,OAAO,IACL,OAAO,SAAS,QAAQ,IAAI,GAAG,iBAAiB,GAChD,OAAO,IACL,WACE,uBACA,OAAO,SACL,MACA,OAAO,IAAI,OAAO,SAAS,OAAO,IAAI,IAAI,GAAG,CAAC,GAAG,mBAAmB,CAAC,CACvE,CACF,GACA,cACF,CACF,CACF,GACA,OAAO,SAAS,GAAG,GAAG,GAAG,OAAO,IAAI,WAAW,YAAY,UAAU,GAAG,cAAc,CAAC,GACvF,OAAO,SAAS,GAAG,KAAK,GAAG,SAAS,0CAA0C,CAAC,GAC/E,OAAO,SACL,GAAG,IAAI,GACP,OAAO,IACL,WACE,eACA,OAAO,SACL,MACA,OAAO,IAAI,OAAO,SAAS,OAAO,IAAI,IAAI,GAAG,CAAC,GAAG,mBAAmB,CAAC,CACvE,CACF,GACA,cACF,CACF,GACA,OAAO,SAAS,QAAQ,QAAQ,GAAG,iBAAiB,CACtD;;AAGA,MAAM,UAAmB,OAAO,MAAY,UAC1C,EAAE,UAAU,KAAA,IAAY,MAAM,UAAU,UAAU,CAAC,eAAe,CAAC,CACrE;AAEA,MAAM,iBAA6B,OAAO,IACxC,OAAO,IAAI,IAAI,GAAG,SAAS;CACzB,EAAE,UAAU;CACZ,EAAE,QAAQ,EAAE,QAAQ;AACtB,CAAC,GACD,OAAO,IAAI,SAAS,MAAM,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,qBAAqB,CAAC,CAAC,CAC1F;AAEA,MAAM,gBAA4B,OAAO,IACvC,OAAO,SAAS,SAAS,cAAc,GACvC,WACA,KACF;;AAGA,MAAM,iBAA0B,OAAO,MAAY,UAAU;CAC3D,EAAE,SAAS,MAAM,GAAG;AAEtB,CAAC;;;;;AAMD,MAAM,eAAwB,OAAO,MAAY,UAAU;CACzD,IAAI,CAAC,EAAE,OAAO;EACZ,MAAM,QAAQ,MAAM;EAEpB,IADU,SAAS,OAAO,MAAM,GAC5B,IAAI,SAAS,MAAM,QAAQ,OAAO,MAAM,UAAU,UAAU,CAAC,YAAY,CAAC;CAChF;CACA,EAAE,OAAO;CACT,EAAE,UAAU,MAAM;AAEpB,CAAC;;AAGD,MAAM,WAAoB,OAAO,MAAY,UAAU;CACrD,EAAE,QAAQ,MAAM;CAChB,EAAE,WAAW;AAEf,CAAC;AAED,MAAM,cAAc,cAClB,SAAS,IACP,OAAO,SACL,UACA,OAAO,SACL,OAAO,OACL,OAAO,SACL,MACA,OAAO,SACL,OAAO,IAAI,OAAO,GAAG,GACrB,OAAO,UAAU,gBAAgB,WAAW,YAAY,CAC1D,CACF,CACF,GACA,OAAO,SAAS,MAAM,OAAO,QAAQ,CACvC,CACF,CACF;AAEF,MAAM,mBAAmB,WAAW,eAAe;AACnD,MAAM,iBAAiB,WAAW,aAAa;;AAG/C,MAAM,UAAU,cACd,OAAO,SACL,OAAO,MAAY,UAAU;CAC3B,EAAE,QAAQ,MAAM;AAElB,CAAC,GACD,SACF;AAEF,MAAM,eAAe,OAAO,eAAe;AAC3C,MAAM,aAAa,OAAO,aAAa;;AAOvC,IAAa,eAAb,MAA0B;CACxB,QAAgB;CAChB,MAAc;CACd,QAAgB;;CAEhB,aAAqB;CACrB,eAAuB;CACvB,UAAkB;CAClB;;CAEA,UAAkB;CAElB;CACA,YAAY,SAAwB;EAClC,KAAK,UAAU;EACf,KAAK,UAAU,IAAI,QAAQ,OAAO;CACpC;CAEA,IAAI,WAA0D;EAC5D,OAAO,KAAK,QAAQ;CACtB;CAEA,IAAI,OAA8B;EAChC,OAAO,KAAK,QAAQ;CACtB;;CAGA,cAAc,OAAiC;EAC7C,KAAK,QAAQ;EACb,KAAK,MAAM;EACX,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,IAAI;EACT,OAAO,KAAK,OAAO;CACrB;;CAGA,KAAK,OAAiC;EACpC,KAAK,gBAAgB;EACrB,KAAK,SAAS;EACd,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,KAAK,IAAI;EACT,OAAO,KAAK,KAAK;CACnB;;CAGA,MAAwB;EACtB,KAAK,QAAQ;EACb,KAAK,IAAI;EACT,OAAO,KAAK,OAAO;CACrB;CAEA,SAAmC;EACjC,IAAI,KAAK,QAAQ,SAAS,KAAK,KAAK,wCAAwC;EAC5E,OAAO,KAAK,KAAK;CACnB;CAEA,OAAiC;EAC/B,MAAM,MAAM,KAAK,QAAQ;EACzB,KAAK,QAAQ,MAAM,CAAC;EACpB,OAAO;CACT;CAEA,UAAwB;EACtB,IAAI,KAAK,SAAS;EAClB,IAAI,IAAI,QAAQ,KAAK,KAAK,GAAG;EAC7B,KAAK,UAAU;EACf,IAAI,KAAK,MAAM,WAAW,CAAC,MAAM,OAAQ,KAAK,MAAM;CACtD;CAEA,kBAAgC;EAC9B,IAAI,KAAK,QAAQ,GAAG;EACpB,MAAM,WAAW,KAAK,MAAM,MAAM,GAAG,KAAK,GAAG;EAC7C,MAAM,YAAY,KAAK,IAAI,SAAS,YAAY,IAAI,GAAG,SAAS,YAAY,IAAI,CAAC;EACjF,IAAI,cAAc,IAChB,KAAK,gBAAgB,SAAS;OACzB;GACL,KAAK,cAAc,WAAW,QAAQ;GACtC,KAAK,eAAe,SAAS,SAAS,YAAY;EACpD;EACA,KAAK,QAAQ,KAAK,MAAM,MAAM,KAAK,GAAG;EACtC,KAAK,MAAM;CACb;;CAGA,MAAoB;EAClB,MAAM,OAAO,KAAK;EAClB,MAAM,QAAQ,SAAS,IAAI,KAAK,QAAQ,KAAK,MAAM,MAAM,IAAI;EAC7D,MAAM,UAAU,KAAK;EACrB,IAAI;EACJ,QAAQ,QAAQ,KAAK;EACrB,QAAQ,SAAS;EACjB,MAAM,UAAU,OAAO,IAAI;GACzB,WAAW;IACT,MAAM,SAAS,OAAO,UACpB,KAAK,QAAQ,OAAO,iBAAiB,kBACrC,KACF;IACA,IAAI,OAAO,UAAU,MAAM,GAAG,KAAK,KAAK,kBAAkB,OAAO,OAAO,QAAQ,MAAM;IACtF,MAAM,GAAG,OAAO,OAAO;IACvB,IAAI,KAAK,OAAO;KACd,IAAI,MAAM,MAAM,QAAQ,KAAK,KAAK,kBAAkB,OAAO,GAAG;KAC9D,KAAK,MAAM,OAAO;IACpB,OAAO;KACL,QAAQ,SAAS;KACjB,KAAK,MAAM,OAAO,QAAQ;KAC1B,KAAK,UAAU;IACjB;GACF;GAGA,QAAQ,MAAM;IACZ,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM;GACR;EACF,CAAC;EACD,IAAI,OAAO,UAAU,OAAO,GAAG;GAC7B,MAAM,IAAI,QAAQ;GAClB,QAAQ,SAAS;GACjB,IAAI,KAAK,OAAO,KAAK,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG;GAIjD,MAAM,QAAQ,QAAQ;GACtB,MAAM,YAAY,MAAM,SAAS;GACjC,IAAI,UAAU,KAAK,KAAK,UAAU,KAAK,YAAY,IAAI,KAAK,SAAS;IACnE,IAAI,UAAU,KAAK,KAAK,UAAU,GAAG,KAAK,UAAU;IACpD,KAAK,MAAM,OAAO;IAClB;GACF;GACA,KAAK,UAAU;GACf,KAAK,MAAM,OAAO,IAAI;EACxB;CACF;;;;;;CAOA,MAAc,OAAe,MAAoB;EAC/C,MAAM,UAAU,KAAK;EACrB,MAAM,QAAQ,QAAQ;EACtB,QAAQ,OAAO;EACf,MAAM,UAAU,OAAO,IAAI;GACzB,WAAW;IACT,MAAM,SAAS,OAAO,aACpB,KAAK,QAAQ,OAAO,aAAa,cACjC,MAAM,MAAM,KAAK,CACnB;IACA,IAAI,OAAO,UAAU,MAAM,GACzB,KAAK,KAAK,kBAAkB,OAAO,QAAQ,OAAO,QAAQ,MAAM;GACpE;GAGA,QAAQ,MAAM;IACZ,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM;GACR;EACF,CAAC;EACD,IAAI,OAAO,UAAU,OAAO,GAAG;GAC7B,QAAQ,SAAS;GACjB,KAAK,KAAK,QAAQ,QAAQ,SAAS,OAAO,QAAQ,QAAQ,QAAQ,GAAG;EACvE;EACA,QAAQ,SAAS;EACjB,QAAQ,OAAO;EACf,KAAK,MAAM,OAAO;CACpB;CAEA,KAAa,SAAiB,MAAc,KAAK,KAAY;EAC3D,MAAM,SAAS,KAAK,MAAM,MAAM,GAAG,GAAG;EACtC,MAAM,QAAQ,WAAW,MAAM;EAC/B,MAAM,YAAY,KAAK,IAAI,OAAO,YAAY,IAAI,GAAG,OAAO,YAAY,IAAI,CAAC;EAC7E,MAAM,SAAS,UAAU,IAAI,KAAK,eAAe,MAAM,IAAI,MAAM;EACjE,MAAM,IAAI,cAAc,SAAS,KAAK,aAAa,QAAQ,GAAG,MAAM;CACtE;AACF;;AAGA,MAAM,aAAa;AAEnB,MAAM,cAAc,SAAyB;CAC3C,IAAI,IAAI;CACR,WAAW,YAAY;CACvB,WAAW;EACT,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,OAAO;EACnC;EACA,OAAO;CACT,CAAC;CACD,OAAO;AACT;;ACxvCA,MAAM,cAAc,QAAgB,YAClC,IAAI,aAAa;CACf,MAAM,OAAO;CACb,SAAS,OAAO,gBAAgB,SAAS,OAAO;CAChD,iBAAiB,SAAS,mBAAmBqB,qBAAmC;CAChF,QAAQ,OAAO,OAAO,KAAA,IAAY,SAAS,UAAUC;AACvD,CAAC;;;;;AAMH,MAAM,gBAAgB,QAAgB,UACpC,iBAAiB,gBACb,IAAIC,cAA4B;CAC9B,QAAQ,OAAO;CACf,SAAS,MAAM;CACf,MAAM,MAAM;CACZ,QAAQ,MAAM;AAChB,CAAC,IACD,IAAIA,cAA4B;CAC9B,QAAQ,OAAO;CACf,SAAS,UAAU,SAAS,KAAK,IAAI,QAAQ,MAAM;AACrD,CAAC;;AAGP,MAAa,cACX,QACA,OACA,YAEA,OAAO,IAAI;CACT,WAAW;EACT,MAAM,SAAS,WAAW,QAAQ,OAAO;EAEzC,OAAO;GACL,OAFY,OAAO,cAAc,KAE7B;GACJ,UAAUC,KAAe,OAAO,QAAQ;GACxC,SAAS,OAAO,eAAe,OAAO,IAAI;EAC5C;CACF;CACA,QAAQ,UAAU,aAAa,QAAQ,UAAU,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,CAAC;AACzF,CAAC;;AAGH,MAAa,SACX,QACA,OACA,YAEA,OAAO,IAAI,WAAW,QAAQ,OAAO,OAAO,IAAI,YAAY;CAC1D,SAASC,aAAqB,OAAO,KAAK;CAC1C,UAAU,OAAO;CACjB,SAAS,OAAO;AAClB,EAAE,CAAC,CAAC,KAAKC,cAA4B,OAAO,eAAe,OAAO,KAAK,GAAG,KAAK,CAAC;AAElF,MAAM,MAAqB,OAAO,KAAK;;AAGvC,MAAa,eACV,YAEC,OACA,YAEA,OAAO,cAAc;CACnB,MAAM,SAAS,WAAW,QAAQ,OAAO;CACzC,OAAO,OAAO,OAAO,OAAO,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,KAC/C,OAAO,0BACC,KAAA,IACL,GAAG,WACF,OAAO,IAAI;EACT,WAA2D,CACzD,KAAA,GACA,IAAI,QAAQ,SAAS,UAAW,UAAU,MAAM,OAAO,IAAI,IAAI,OAAO,KAAK,KAAK,CAAE,CACpF;EACA,QAAQ,UACN,aAAa,QAAQ,UAAU,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,CAAC;CACzE,CAAC,CACL,CACF;AACF,CAAC,CAAC,CAAC,KAAKC,eAA6B,OAAO,eAAe,OAAO,KAAK,GAAG,aAAa,CAAC;;;;;;;;ACxF5F,IAAa,mBAAb,cAAsC,MAAM,CAAC;AAY7C,MAAM,WAAW,IAAI,KAAK;AAC1B,MAAM,YAAY,IAAI,MAAM;AAC5B,MAAM,WAAW,IAAI,KAAK;AAC1B,MAAM,UAAU,IAAI,IAAI;AACxB,MAAM,cAAc,IAAI,QAAQ;AAChC,MAAM,cAAc,IAAI,QAAQ;AAChC,MAAM,cAAc,IAAI,QAAQ;AAChC,MAAM,aAAa,IAAI,OAAO;AAC9B,MAAM,cAAc,IAAI,QAAQ;AAEhC,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,MAAM,SACJ;;AAGF,MAAM,kBAAkB;;AAGxB,MAAM,cAAc;;;;;;AAOpB,MAAM,eAAe;;AAOrB,MAAM,aAAa,OAAuB,GAAG,YAAY,CAAC,KAAK;;AAG/D,MAAa,gBAAgB,WAA4B;CACvD,IAAI,WAAW,IAAI,OAAO;CAC1B,MAAM,QAAQ,MAAM,KAAK,QAAQ,SAAS;CAC1C,OACE,IAAI,wBAAwB,KAAK,KACjCC,cAAsB,IAAI,aAAa,KAAK,CAAC,KAC7C,IAAI,aAAa,KAAK,MAAM,MAC5B,MAAM,OAAO,MAAMC,UAAkB,CAAC,KAAK,MAAM,EAAI;AAEzD;;AAGA,MAAM,oBAAoB,UAAyC;CACjE,MAAM,QAAQ,MAAM,KAAK,KAAK;CAC9B,MAAM,OAAO,MAAM,SAAS;CAC5B,IAAI,MAAM;CACV,IAAI,IAAI;CACR,IAAI,KAAK;CACT,WAAW;EACT,IAAI,IAAI,MAAM,OAAO;EACrB,MAAM,KAAK,MAAM,MAAM;EACvB,MAAM,IAAI,UAAU,EAAE;EAKtB,IAHE,MAAM,IACFC,WAAmB,CAAC,KAAK,MAAM,MAAQC,QAAgB,CAAC,IACxDF,UAAkB,CAAC,KAAK,MAAM,MAAS,MAAM,MAAQ,MAAM,MACtD;GACT,OAAO;GACP,KAAK;GACL,OAAO;EACT;EACA,MAAM,KAAK,MAAM,IAAI,MAAM;EAC3B,MAAM,KAAK,MAAM,IAAI,MAAM;EAC3B,IACE,MAAM,MACN,IAAI,IAAI,MAAM,UACdG,MAAc,GAAG,WAAW,CAAC,CAAC,KAC9BA,MAAc,GAAG,WAAW,CAAC,CAAC,GAC9B;GACA,OAAO,KAAK,KAAK;GACjB,KAAK;GACL,OAAO;EACT;EACA,IAAI,gBAAgB,SAAS,EAAE,GAAG;GAChC,OAAO,KAAK;GACZ,KAAK;GACL,OAAO;EACT;EACA,KAAK;EACL,OAAO;CACT,CAAC;CACD,OAAO,KAAK,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK;AAC7C;;AAGA,MAAa,mBAAmB,UAC9B,YAAY,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,iBAAiB,KAAK;AAEvE,MAAM,QAAQ,MAAsB,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG;AAEtF,MAAM,cAAc,OAClB,OAAO,OAAO,SAAS,OAAO,OAAM,SAAQ,OAAO,OAAO,QAAQ,KAAK,GAAG,WAAW,CAAC,CAAC;;AAGzF,MAAa,eAAe,UAC1B,MAAM,SAAS,IAAI,IACf,MAAM,MAAM,QAAQ,cAAc,UAAU,EAAE,OAC9C,IAAIC,aAAkB,KAAK,EAAE;;AAgBnC,MAAM,mBAAmB,GAAc,MAAyC;CAC9E,IAAIC,YAAiB,CAAC,GACpB,EAAE,CAAC;MACE,IAAIC,SAAc,CAAC,GAAG;EAC3B,gBAAgB,EAAE,SAAS,CAAC;EAC5B,gBAAgB,EAAE,QAAQ,CAAC;CAC7B;AACF;;AAGA,MAAM,eAAe,MAAyB;CAC5C,IAAIA,SAAc,EAAE,OAAO,GACzB,MAAM,IAAI,iBACR,sEAAsE,EAAE,KAC1E;CAEF,IAAIA,SAAc,EAAE,MAAM,GAAG,YAAY,EAAE,MAAM;AACnD;;AAGA,MAAa,aAAa,GAAc,SAAwB;CAC9D,IAAIA,SAAc,EAAE,OAAO,GACzB,MAAM,IAAI,iBAAiB,kDAAkD,EAAE,KAAK;CAEtF,IAAI,CAACC,SAAc,CAAC,GAAG,MAAM,IAAI,iBAAiB,oCAAoC,EAAE,KAAK;CAC7F,IAAID,SAAc,EAAE,MAAM,GAAG,YAAY,EAAE,MAAM;CACjD,IAAI,CAAC,QAAQ,CAACE,eAAoB,EAAE,KAAK,GACvC,MAAM,IAAI,iBAAiB,kDAAkD,EAAE,KAAK;AAExF;AAMA,MAAM,iBAAiB,UAAU,SAAS,IAAI;;AA2B9C,MAAM,UACJ,KACA,KACA,UACS;CACT,MAAM,OAAO,eAAe,IAAI,KAAK,GAAG;CACxC,IAAI,OAAO,OAAO,IAAI,GAAG,KAAK,MAAM,KAAK,KAAK;MACzC,eAAe,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC;AAC3C;;;;;;AAOA,MAAM,WACJ,QACA,OACA,gBAAiD,KAAA,MACG;CACpD,MAAM,SAAS,eAAe,MAAwB;CACtD,IAAI,UAAU;CACd,IAAI,OAAiB,CAAC;CACtB,OAAO,SAAS,UAAU;EACxB,MAAM,MAAM,MAAM,KAAK;EACvB,IAAI,IAAI,wBAAwB,IAAI,KAAK,QAAQ,SAAS;GACxD,KAAK,KAAK,KAAK;GACf;EACF;EACA,MAAM,QAAQ,eAAe,IAAI,QAAQ,GAAG;EAC5C,IAAI,OAAO,OAAO,KAAK,GAAG;GACxB,MAAM,MAAM,KAAK,KAAK;GACtB,OAAO,MAAM;EACf,OAAO;GACL,OAAO,CAAC,KAAK;GACb,eAAe,IAAI,QAAQ,KAAK,IAAI;GACpC,QAAQ,OAAO,GAAG;EACpB;EACA,UAAU;CACZ,CAAC;CACD,OAAO;AACT;;AAGA,MAAM,UACJ,KACA,QACqB,OAAO,UAAU,eAAe,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC;AAS9E,MAAM,oBAAkD,MAAM,KAC5D,MAAM,SAAS,MAAM,SAAS,MAAuB,EAAE,GAAG,MAAM,CAClE;;AAGA,MAAM,UAA+B,GAAG,MACtC,MAAM,WAAW,KAAK,MAAM,WAAW,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;;AAOtE,IAAa,SAAb,MAAoB;CAClB;;CAEA,eAAgD,CAAC;;CAEjD;CACA,SAA0B,eAAe,MAAyB;;CAElE,eAAiD,OAAO,KAAK;CAC7D;CACA,SAA0B,eAAe,MAAsB;CAC/D,WAA8B,eAAe,MAAM;CAEnD;CACA;CACA;CACA,YAAY,SAAwB,OAAiC,UAAU,MAAM;EACnF,KAAK,UAAU;EACf,KAAK,QAAQ;EACb,KAAK,UAAU;EACf,MAAM,WAAW,eAAe,MAAsB;EACtD,IAAI,QAAQ,cACV,IAAI,QAAQ,eAAe,OAAO,QAAQ,OAAO,IAAI,CAAC,GAAG,QAAQ;GAC/D,eAAe,IAAI,UAAU,GAAG,EAAE;EACpC,CAAC;EAEH,IAAI,OAAO,OAAO,QAAQ,QAAQ,GAChC,SAAS,QAAQ,QAAQ,SAAS,MAAM,WAAW,CAAC,GAAG,QAAQ;GAE7D,IAAI,QACF,IAAI,OAAO,IAAI,aAAa,QAAQ,IAAI,CAAC,GAAG,WAAW,UAAU,MAAM,MAAM,CAAC,IAC7E,CAAC,OAAO;IACP,eAAe,OAAO,UAAU,CAAC;GACnC,CACF;GACA,eAAe,IAAI,UAAU,GAAG,EAAE;EACpC,CAAC;EAEH,KAAK,WAAW,IAAI,OAClB,IAAI,aAAa,QAAQ,IACxB,CAAC,GAAG,QAAQ,aAAa,CAAC,KAAKC,cAAsB,EAAE,CAC1D;EACA,KAAK,WAAW,IAAI,KAClB,KAAK,SAAS,KAAK,CAAC,QAAQ,KAAK,WAA4B;GAAE;GAAQ;GAAI;EAAM,EAAE,GACnF,iBACF;EACA,IAAI,OAAO,OAAO,QAAQ,OAAO,KAAK,CAACA,cAAsB,QAAQ,QAAQ,KAAK,GAChF,MAAM,IAAI,iBAAiB,qBAAqB,QAAQ,QAAQ,MAAM,EAAE;CAE5E;CAEA,QAAgB;EACd,KAAK,MAAM,SAAS,MAAM;GACxB,UAAU,GAAG,KAAK,QAAQ,IAAI;GAC9B,KAAK,MAAM,CAAC;EACd,CAAC;EACD,MAAM,QAAQ,eAAe,MAA0B;EACvD,MAAM,UAAU,QACd,KAAK,QACJ,MAAM,EAAE,MAAM,MACd,GAAG,QAAQ,eAAe,IAAI,OAAO,KAAK,EAAE,KAAK,CACpD;EACA,MAAM,SAAS,IAAI,KACjB,IAAI,aAAa,KAAK,GACtB,MAAM,SAAS,eAAe,GAAG,WAA0C,KAAK,CAClF,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY;GAAE;GAAO,OAAO,OAAO,SAAS,GAAG;EAAE,EAAE;EAChE,MAAM,OAAO,IAAI,OAAO,QAAQ,KAAK,KAAK,EAAE,OAAO,YACjDD,eAAoB,KAAK,IACrB,MAAM,KAAK,WAAW,OAAO,OAAO,CAAC,IAErC,GAAG,MAAM,QAAQ,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,EAAE,MAAM,KAAK,WAAW,OAAO,OAAO,CAAC,EAAE,IAChG;EACA,OAAO,KAAK,OAAO,IAAI;CACzB;CAEA,WAA8B;EAC5B,IAAI,OAAO,OAAO,KAAK,YAAY,GAAG,OAAO,KAAK,aAAa;EAC/D,MAAM,OAAkB,eAAe,MAAM;EAC7C,KAAK,MAAM,SAAS,MAAM,eAAe,IAAI,MAAM,EAAE,GAAG,CAAC;EACzD,KAAK,eAAe,OAAO,KAAK,IAAI;EACpC,OAAO;CACT;CAEA,SAAyB;EACvB,MAAM,SAAS,KAAK,QAAQ;EAU5B,MAAM,MATO,OAAO,MAAM,KAAK,QAAQ,SAAS;GAC9C,cAAc;GACd,SAAS,QACP,SAAS,SAASE,UAAe,GAAG,EAAE,OAAO,UAAUA,UAAe,GAAG,EAAE;EAC/E,CAMK,IALQ,IAAI,KACf,KAAK,SAAS,QAAQ,GAAG,MAAM,KAAK,aAAa,OAAO,IAAI,GAC5D,YAIG,CAAC,CACD,KAAK,CAAC,GAAG,QACR,SACI,UAAU,EAAE,KAAKA,UAAe,EAAE,EAAE,OACpC,WAAW,EAAE,KAAKA,UAAe,EAAE,EAAE,MAC3C,CAAC,CACA,KAAK,EAAE;EACZ,OAAO,QAAQ,KAAK,KAAK,GAAG,IAAI;CAClC;CAEA,KAAa,GAA8B;EACzC,MAAM,QAAQ,eAAe,IAAI,KAAK,QAAQ,EAAE,KAAK;EACrD,IAAI,OAAO,OAAO,KAAK,GAAG,OAAO,MAAM;EACvC,MAAM,OAAkB;GACtB,YAAY,CAAC;GACb,cAAc;GACd,SAAS;GACT,cAAc,OAAO,KAAK;GAC1B,YAAY;EACd;EACA,eAAe,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC7C,OAAO;CACT;CAEA,MAAc,GAAoB;EAChC,IAAIL,YAAiB,EAAE,OAAO,GAAG;GAC/B,MAAM,OAAO,KAAK,KAAK,EAAE,OAAO;GAChC,IAAI,OAAO,OAAO,KAAK,YAAY,GAAG,KAAK,eAAe,OAAO,KAAK,EAAE,MAAM,GAAG;QAC5E,IAAI,KAAK,aAAa,UAAU,EAAE,MAAM,KAAK,KAAK,aAAa;EACtE;EACA,IAAIA,YAAiB,EAAE,MAAM,GAAG,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,WAAW,KAAK,CAAC;EACrE,IAAIC,SAAc,EAAE,MAAM,GACxB,gBAAgB,EAAE,SAAS,MAAM;GAC/B,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe;EAC9B,CAAC;EAEH,IAAID,YAAiB,EAAE,KAAK,GAAG,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,UAAU;CAC9D;;CAGA,QAAgB,GAAmB,OAA4B;EAC7D,MAAM,OAAO,KAAK,KAAK,CAAC;EACxB,OACE,CAAC,KAAK,gBACN,CAAC,KAAK,WACN,CAAC,KAAK,eACL,OAAO,OAAO,KAAK,YAAY,KAAK,KAAK,aAAa,UAAU,MAAM;CAE3E;CAEA,UACE,OACA,OACA,SACW;EACX,MAAM,WAAW,eAAe,MAA4B;EAC5D,MAAM,YAAY,QAChB,QACC,MAAM,EAAE,QAAQ,MAChB,GAAG,QAAQ,eAAe,IAAI,UAAU,KAAK,EAAE,OAAO,CACzD;EACA,MAAM,2BAAW,IAAI,QAAmB;EAGxC,MAAM,SAAoB,eAAe,MAAM;EAC/C,MAAM,SAAS,MAAM;GACnB,MAAM,IAAI,EAAE;GACZ,IAAI,CAACA,YAAiB,CAAC,KAAK,eAAe,IAAI,SAAS,EAAE,KAAK,KAAK,CAAC,KAAK,QAAQ,GAAG,KAAK,GACxF;GACF,MAAM,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;GAC1B,IAAI,KAAK,WAAW,KAAK,KAAK,EAAE,EAAE,MAAM,QAAQ,MAAM,KACpD,eAAe,IAAI,QAAQ,EAAE,KAAK;EACtC,CAAC;EAGD,MAAM,QAAQ,eAAe,MAA0C;EACvE,MAAM,YAAuB,eAAe,MAAM;EAClD,MAAM,aAAa,UAAsE;GACvF,IAAI,CAAC,eAAe,IAAI,QAAQ,KAAK,GAAG,OAAO,OAAO,KAAK;GAC3D,MAAM,MAAM,OAAO,WAAW,KAAK,OAAO;GAC1C,IAAI,IAAI,WAAW,GAAG,OAAO,OAAO,KAAK;GACzC,MAAM,QAAQ,IAAI,UAAU,MAAM,MAAM,EAAE,UAAU,UAAU,SAAS;GACvE,MAAM,OAAO,IAAI,UAAU,MAAM,MAAM,EAAE,UAAU,UAAU,QAAQ;GACrE,OAAO,OAAO,OAAO,KAAK,KAAK,OAAO,OAAO,IAAI,IAC7C,OAAO,KAA0C,CAAC,MAAM,MAAM,QAAQ,KAAK,MAAM,MAAM,CAAC,IACxF,OAAO,KAAK;EAClB;EACA,SAAS,QAAQ,SAAS,UAAU;GAClC,IAAI,OAAO,OAAO,UAAU,KAAK,CAAC,GAAG;GACrC,MAAM,MAAM,IAAI,KAAK,KAAK,KAAKM,YAAe,KAAK,CAAC,CAAC,CAAC,UAAU;GAEhE,IACE,OAAO,OAAO,GAAG,KAChB,IAAI,MAAM,UAAU,UAAU,YAC7BN,YAAiB,IAAI,MAAM,OAAO,KAClC,OAAO,OAAO,UAAU,IAAI,MAAM,QAAQ,KAAK,CAAC,GAElD;GAEF,MAAM,QAA4B,CAAC;GACnC,MAAM,QAAuB,CAAC;GAC9B,IAAI,UAAkB;GACtB,IAAI,KAAK;GACT,WAAW;IACT,MAAM,QAAQ,UAAU,OAAO;IAC/B,IAAI,OAAO,OAAO,KAAK,KAAK,MAAM,SAAS,OAAO,GAAG,OAAO;IAC5D,MAAM,CAAC,MAAM,QAAQ,MAAM;IAC3B,MAAM,KAAK,OAAO;IAClB,MAAM,KAAK,IAAI;IACf,IAAIO,YAAiB,IAAI,KAAK,KAAK,UAAU,SAAS;KACpD,KAAK;KACL,OAAO;IACT;IACA,IAAI,CAACP,YAAiB,IAAI,GAAG,OAAO;IACpC,UAAU,KAAK;IACf,OAAO;GACT,CAAC;GACD,IAAI,CAAC,IAAI;GACT,eAAe,IAAI,OAAO,OAAO,KAAK;GACtC,IAAI,QAAQ,QAAQ,SAAS;IAC3B,eAAe,IAAI,WAAW,IAAI;IAClC,IAAI,QAAQ,OAAO,WAAW,KAAK,MAAM,IAAI,MAAM;KACjD,SAAS,IAAI,CAAC;IAChB,CAAC;GACH,CAAC;EACH,CAAC;EAGD,MAAM,cAAc,eAAe,MAAiC;EACpE,MAAM,gBAA2B,eAAe,MAAM;EACtD,MAAM,kBAAkB,eAAe,MAA2B;EAClE,MAAM,aAAwB,eAAe,MAAM;;EAEnD,MAAM,gBAAgB,MACpB,CAAC,eAAe,IAAI,SAAS,EAAE,KAAK,KACpC,KAAK,QAAQ,GAAG,KAAK,KACrB,IAAI,qBAAqB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,KAChD,OAAO,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,UAAU,UAAU,eAAe,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAC1F,WAAW;EAChB,MAAM,SAAS,MAAM;GACnB,IAAI,EAAE,UAAU,UAAU,eAAe,CAACC,SAAc,EAAE,MAAM,GAAG;GACnE,MAAM,IAAI,EAAE;GACZ,IAAIA,SAAc,EAAE,OAAO,GAAG;GAC9B,MAAM,IAAI,EAAE;GACZ,IAAIA,SAAc,CAAC,GAAG;GACtB,MAAM,cAAc,IAAIO,KAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC;GAC3E,MAAM,aAAa,eAAe,IAAI,KAAK,SAAS,GAAG,WAAW;GAClE,IAAIR,YAAiB,CAAC,KAAK,aAAa,CAAC,GAAG;IAC1C,SAAS,IAAI,CAAC;IACd,IAAI,YAAY;KACd,eAAe,IAAI,eAAe,EAAE,KAAK;KACzC,OAAO,aAAa,aAAa;MAAE,MAAM;MAAS,SAAS;KAAE,CAAC;IAChE,OACE,eAAe,IAAI,iBAAiB,EAAE,OAAO,CAAC;GAElD,OAAO,IACL,eACCO,YAAiB,CAAC,KAChB,CAAC,eAAe,IAAI,QAAQ,EAAE,KAAK,KAAK,CAAC,eAAe,IAAI,WAAW,EAAE,KAAK,IACjF;IACA,SAAS,IAAI,CAAC;IACd,IAAIP,YAAiB,CAAC,GAAG,eAAe,IAAI,YAAY,EAAE,KAAK;IAC/D,OAAO,aAAa,aAAa;KAAE,MAAM;KAAM,SAAS;IAAE,CAAC;GAC7D;EACF,CAAC;EAED,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CAEA,WAAmB,OAAmB,OAAiC,OAAuB;EAE5F,MAAM,UAAqB,eAAe,MAAM;EAChD,IAAI,MAAM;EACV,WAAW;GACT,KAAK,OAAO,KAAK,UAAU,OAAO,OAAO,OAAO;GAChD,KAAK,WAAW,eAAe,MAAM;GACrC,MAAM,KAAK,YAAY,KAAK;GAC5B,MAAM,SAAS,eAAe,KAAK,OAAO;GAC1C,SAAS,QAAQ,KAAK,KAAK,SAAS,UAAU;IAC5C,IACE,CAAC,eAAe,IAAI,KAAK,UAAU,KAAK,KACxC,CAAC,eAAe,IAAI,KAAK,KAAK,WAAW,KAAK,GAE9C,eAAe,IAAI,SAAS,KAAK;GAErC,CAAC;GACD,SAAS,QAAQ,eAAe,KAAK,KAAK,KAAK,KAAK,IAAI,UAAU;IAChE,IAAI,CAAC,eAAe,IAAI,KAAK,UAAU,KAAK,GAAG,eAAe,IAAI,SAAS,KAAK;GAClF,CAAC;GACD,OAAO,eAAe,KAAK,OAAO,MAAM;EAC1C,CAAC;EACD,OAAO;CACT;CAEA,YAAoB,OAAuB;EACzC,MAAM,OAAO,KAAK;EAClB,MAAM,WAAW,IAAI,OACnB,IAAI,aAAa,eAAe,OAAO,KAAK,QAAQ,CAAC,IACpD,MACC,EACEA,YAAiB,CAAC,MACjB,eAAe,IAAI,KAAK,QAAQ,EAAE,KAAK,KACtC,eAAe,IAAI,KAAK,WAAW,EAAE,KAAK,KAC1C,eAAe,IAAI,KAAK,eAAe,EAAE,KAAK,GAEtD;EACA,MAAM,QAAQ,IAAI,KAAK,UAAU,YAAY;EAsB7C,OArBe,IAAI,QAAQ,QAAQ,MAA6B;GAC9D,MAAM,QAAQ,OAAO,KAAK,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC;GAC/E,MAAM,UAAUA,YAAiB,CAAC,IAC9B,eAAe,IAAI,KAAK,iBAAiB,EAAE,KAAK,IAChD,OAAO,KAAkB;GAC7B,MAAM,OAAO,OAAO,OAAO,OAAO,IAAI,KAAK,cAAc,QAAQ,KAAK,IAAI,KAAK,KAAK,CAAC;GACrF,IAAI,IAAI,qBAAqB,KAAK,GAChC,OAAO,OAAO,OAAO,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC;GAEvE,IACEA,YAAiB,CAAC,KAClB,OAAO,OAAO,OAAO,KACrB,CAAC,eAAe,IAAI,KAAK,YAAY,EAAE,KAAK,KAC5C,IAAI,qBAAqB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,KAChD,KAAK,QAAQ,GAAG,KAAK,KAAK,GAG1B,OAAO,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,UAAU,KAAK,KAAK,OAAO,KAAK,EAAE,KAAK;GAE3E,OAAO,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,oBAAoB,OAAO,QAAQ,CAAC,EAAE,KAAK;EACvF,CACY,CAAC,CAAC,KAAK,UAAU,IAAI,OAAO,EAAE;CAC5C;CAEA,IAAY,OAAuB;EACjC,OAAO,KAAK,QAAQ,OAAO,OAAO,KAAK;CACzC;;CAGA,oBAA4B,OAAiC,OAAuB;EAClF,MAAM,cAAc,QAAQ,QAAQ,MAAM,EAAE,UAAU,KAAK;EAa3D,OAZmB,IAAI,KACrB,aACA,MAAM,SAAS,SAAS,CAAC,OAA4C,CAAC,CAEjD,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU;GAC1C,MAAM,UAAU,IAAI,KAClB,MACA,MAAM,SAAS,eAAe,MAAiB,EAAE,MAAM,CACzD,CAAC,CAAC,KAAK,MAAM,KAAK,sBAAsB,GAAG,KAAK,CAAC;GAEjD,OAAO,GADM,MAAM,WAAW,MAAM,KAAK,IAAI,CAAC,EAC/B,GAAG,QAAQ,KAAK,IAAI;EACrC,CACW,CAAC,CAAC,KAAK,OAAO,KAAK,IAAI,KAAK,GAAG;CAC5C;CAEA,sBAA8B,GAAc,OAAuB;EACjE,IAAI,MAAM,KAAK,OAAO,EAAE,QAAQ,KAAK;EACrC,MAAM,cAAc,eAAe,IAAI,KAAK,KAAK,aAAa,EAAE,GAAG;EACnE,IAAI,OAAO,OAAO,WAAW,GAAG,OAAO;EAGvC,IAAI,OAAO;EACX,IAAI,MAAM;EACV,IAAI,QACF,IAAI,KACF,YAAY,OACZ,MAAM,SAAS,eAAe,MAAkB,EAAE,OAAO,CAC3D,IACC,eAAe;GACd,IAAI,eAAe,UAAU,GAAG;IAC9B,OAAO,MAAM,KAAK,KAAK,WAAW,OAAO;IACzC;GACF;GACA,MAAM,MAAM,OAAO,KAAK,KAAK,WAAW,WAAW,QAAQ,GAAG,CAAC,CAAC,QAC7D,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAClC;GACA,IAAI,IAAI,qBAAqB,GAAG,GAAG,QAAQ;QACtC,OAAO,IAAI,KAAK,UAAU,MAAM,MAAM,KAAK,KAAK;EACvD,CACF;EACA,OAAO,MAAM,OAAO;CACtB;;CAGA,UACE,MACA,OACA,OACA,OACQ;EACR,MAAM,SAAS,KAAK,oBAAoB,OAAO,QAAQ,CAAC;EACxD,IAAI,CAAC,OAAO,SAAS,IAAI,KAAK,OAAO,UAAU,IAAI,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG;EAC/E,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI;CACxE;CAEA,OAAe,GAAgB,OAAuB;EACpD,IAAIA,YAAiB,CAAC,GAAG;GACvB,MAAM,QAAQ,eAAe,IAAI,KAAK,KAAK,OAAO,EAAE,KAAK;GACzD,IAAI,OAAO,OAAO,KAAK,KAAK,CAAC,eAAe,IAAI,KAAK,UAAU,EAAE,KAAK,GAAG;IACvE,eAAe,IAAI,KAAK,UAAU,EAAE,KAAK;IACzC,MAAM,WAAW,MAAM,MAAM,KAAK,SAAS,KAAK,OAAO,MAAM,KAAK,CAAC;IACnE,MAAM,UAAU,KAAK,SAAS,KAAK,GAAG,EAAE;IACxC,OAAO,QAAQ,UAAU,MAAM,CAAC,QAAQ,SAAS,IAAI,IACjD,UACA,MAAM,SAAS,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,KAAK,EAAE;GACxF;GACA,IACE,eAAe,IAAI,KAAK,KAAK,QAAQ,EAAE,KAAK,KAC5C,CAAC,eAAe,IAAI,KAAK,UAAU,EAAE,KAAK,GAC1C;IACA,eAAe,IAAI,KAAK,UAAU,EAAE,KAAK;IACzC,MAAM,MAAM,OAAO,KAAK,KAAK,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC;IACvF,IAAI,IAAI,qBAAqB,GAAG,GAAG,OAAO;IAC1C,MAAM,OAAO,IAAI,WAAW,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,KAAgB;IACvE,IACE,OAAO,OAAO,IAAI,KAClB,KAAK,MAAM,UAAU,UAAU,eAC/BC,SAAc,KAAK,MAAM,MAAM,KAC/B,CAACA,SAAc,KAAK,MAAM,OAAO,OAAO,GAGxC,OAAO,KAAK,cAAc,KAAK,MAAM,MAAM;IAE7C,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,KAAK;GAC5C;EACF;EACA,IAAIM,YAAiB,CAAC,KAAK,EAAE,UAAU,SAAS,OAAO;EACvD,OAAO,KAAK,KAAK,CAAC;CACpB;CAEA,cAAsB,GAAwB;EAC5C,OAAO,MAAM,KAAK,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,KAAK,EAAE,MAAM,EAAE;CAC1F;CAEA,UAAkB,GAA2B;EAC3C,OAAO,EAAE,UAAU,WAAW,MAAM,KAAK,IAAI,EAAE,KAAK;CACtD;;CAGA,KAAK,GAAsB;EAEzB,IAAIA,YAAiB,CAAC,GAAG,OAAO,KAAK,IAAI,EAAE,KAAK;EAChD,IAAIP,YAAiB,CAAC,GAAG,OAAO,KAAK,KAAK,MAAM,EAAE,KAAK;EACvD,IAAIS,UAAe,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC;EAC5C,IAAIR,SAAc,CAAC,GACjB,OAAO,OAAO,KAAK,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,KAAK,EAAE,MAAM,EAAE;EAE3F,MAAM,IAAI,iBAAiB,oBAAoB,EAAE,MAAM;CACzD;;CAGA,MAAc,OAAuB;EACnC,IAAI,CAAC,KAAK,SAAS,OAAOS,iBAAuB,KAAK;EACtD,MAAM,QAAQ,eAAe,IAAI,KAAK,QAAQ,KAAK;EACnD,IAAI,OAAO,OAAO,KAAK,GAAG,OAAO,MAAM;EACvC,MAAM,QAAQ,IAAI,eAAe,KAAK,KAAK,MAAM;EACjD,eAAe,IAAI,KAAK,QAAQ,OAAO,KAAK;EAC5C,OAAO;CACT;CAEA,QAAgB,GAAyB;EACvC,MAAM,KAAK,EAAE,SAAS;EACtB,IAAI,EAAE,aAAa,IAEd;OAAA,OAAO,eAAe,QAAQ,KAAK,EAAE,KAAK,KAC1C,OAAO,eAAe,QAAQ,KAAK,EAAE,KAAK,KAC1C,OAAO,cAAc,OAAO,KAAK,EAAE,KAAK,KACxC,OAAO,gBAAgB,EAAE,UAAU,UAAU,EAAE,UAAU,UAE1D,OAAO,EAAE;EAAA;EAGb,MAAM,UAAU,YAAY,EAAE,KAAK;EACnC,IAAI,EAAE,aAAa,IAAI;GACrB,MAAM,WAAW,EAAE,SAAS,YAAY;GACxC,OAAO,EAAE,cAAc,KAAA,IACnB,GAAG,QAAQ,GAAG,aACd,GAAG,QAAQ,GAAG,SAAS,IAAI,EAAE;EACnC;EACA,IAAI,OAAO,2CAAiB,OAAO;EACnC,OAAO,GAAG,QAAQ,IAAI,KAAK,IAAI,EAAE;CACnC;CAEA,IAAI,KAAqB;EACvB,IAAI,CAACN,cAAsB,GAAG,GAAG,MAAM,IAAI,iBAAiB,4BAA4B,IAAI,EAAE;EAE9F,MAAM,OAAO,KAAK,SAAS,MACxB,MAAM,IAAI,WAAW,EAAE,EAAE,KAAK,OAAO,OAAO,gBAAgB,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CACtF;EACA,IAAI,SAAS,KAAA,GAAW;GACtB,KAAK,aAAa,KAAK,SAAS;GAChC,OAAO,GAAG,KAAK,OAAO,GAAG,OAAO,UAAU,gBAAgB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE;EAChG;EACA,IAAI,OAAO,OAAO,KAAK,QAAQ,OAAO,GAAG;GACvC,MAAM,WAAWO,WAAe,KAAK,KAAK,QAAQ,QAAQ,KAAK;GAC/D,IAAI,OAAO,OAAO,QAAQ,GAAG,OAAO,IAAIN,UAAe,SAAS,KAAK,EAAE;EACzE;EACA,OAAO,IAAIA,UAAe,GAAG,EAAE;CACjC;AACF;;AAGA,MAAM,UAAiD;CACrD,cAAc;CACd,WAAW;CACX,WAAW;CACX,SAAS;CACT,QAAQ;AACV;;AAGA,MAAM,gBAAgB,MAA4B;CAChD,MAAM,KAAK,EAAE,SAAS;CACtB,OAAO,OAAO,eAAe,OAAO,eAAe,OAAO,aAAa,OAAO,EAAE,KAAK,IAAI;AAC3F;AAEA,MAAM,gBAAwC,GAAG,MAAM;CACrD,MAAM,KAAK,QAAQ,EAAE,SAAS;CAC9B,MAAM,KAAK,QAAQ,EAAE,SAAS;CAC9B,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,KAAK;CACrC,IAAII,UAAe,CAAC,KAAKA,UAAe,CAAC,GAAG;EAC1C,MAAM,KAAK,aAAa,CAAC;EACzB,MAAM,KAAK,aAAa,CAAC;EACzB,IAAI,CAAC,OAAO,MAAM,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,KAAK;CACjF;CACA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI;AAClD;;AAGA,MAAa,eAAuD,MAAM,SACxE,MAAM,SACL,CAAC,YAAuC,MAC3C;;AAGA,MAAM,mBACJ,GACA,WACS;CAET,IAAIF,YAAiB,CAAC,GAAG;EACvB,MAAM,IAAI,KAAK,IAAI,EAAE,MAAM,YAAY,GAAG,GAAG,EAAE,MAAM,YAAY,GAAG,CAAC;EACrE,IAAI,KAAK,GAAG;EACZ,MAAM,KAAK,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;EACjC,IAAI,CAACK,cAAsB,EAAE,KAAK,OAAO,OAAO,gBAAgB,EAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,GACnF;EAEF,MAAM,QAAQ,eAAe,IAAI,QAAQ,EAAE;EAC3C,IAAI,OAAO,OAAO,KAAK,GAAG,MAAM,MAAM,SAAS;OAC1C,eAAe,IAAI,QAAQ,IAAI,EAAE,OAAO,EAAE,CAAC;CAClD,OAAO,IAAIH,UAAe,CAAC,GACrB;MAAA,EAAE,aAAa,MAAM,EAAE,SAAS,UAAU,2CAC5C,gBAAgB,EAAE,UAAU,MAAM;CAAA,OAE/B,IAAIR,SAAc,CAAC,GAAG;EAC3B,gBAAgB,EAAE,SAAS,MAAM;EACjC,gBAAgB,EAAE,WAAW,MAAM;EACnC,gBAAgB,EAAE,QAAQ,MAAM;CAClC;AACF;;AAGA,MAAM,gBAAgB,eAAe,aACnC,OAAO,UAAU,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,QAAmC,CAAC,IAAI,CAAC,CAAC,CACtF;;;;;AAMA,MAAM,kBACJ,OACA,YACqC;CAErC,MAAM,UAAU,OAAO,IAAI,UAAU,QAAQ,IAAI,MAAM,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC;CACnF,MAAM,SAAS,eAAe,MAAiC;CAC/D,MAAM,SAAS,MAAM;EACnB,gBAAgB,EAAE,SAAS,MAAM;EACjC,gBAAgB,EAAE,WAAW,MAAM;EACnC,gBAAgB,EAAE,QAAQ,MAAM;EAChC,gBAAgB,EAAE,OAAO,MAAM;CACjC,CAAC;CACD,IAAI,IAAI;CACR,OAAO,IAAI,QACT,IAAI,KACF,QACA,MAAM,SAAS,MAAM,SAAS,CAAC,QAA8C,EAAE,CACjF,IACC,CAAC,IAAI,EAAE,aAAuD;EAC7D,MAAM,OAAO,eAAe,IAAI,eAAe,EAAE;EACjD,IAAI,OAAO,OAAO,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;EACjD,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,MAAM,SAAS,IAAI,KAAK,GAAG,WAAW,QAAQ,KAAK,GACvF,OAAO,CAAC;EAEV,OAAO,SAAS,IAAI,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,IAAI,CAAC;CAC5C,CACF;AACF;;;;;;AAOA,MAAa,WAAW,UACtB,MAAM,KAAKY,QAAoBC,aAAqB,KAAK,GAAG,GAAG,CAAC;;;;;;;;;;;;;;AC72BlE,IAAa,eAAb,MAA0B;CACxB,iBAAgD,OAAO,KAAK;;CAE5D,QAAuC,OAAO,KAAK;CACnD,UAAyC,OAAO,KAAK;CACrD,YAA2C,OAAO,KAAK;CACvD,UAAkB;CAElB;CACA,YAAY,SAAwB;EAClC,KAAK,UAAU;CACjB;;CAGA,IAAY,SAAiB;EAC3B,IAAI,OAAO,OAAO,KAAK,cAAc,GAAG,OAAO,KAAK,eAAe;EACnE,MAAM,SAAS,IAAI,OAAO;GAAE,GAAG,KAAK;GAAS,cAAc;EAAM,GAAG,CAAC,GAAG,KAAK;EAC7E,KAAK,iBAAiB,OAAO,KAAK,MAAM;EACxC,OAAO;CACT;;CAGA,SAAyB;EACvB,KAAU;EACV,MAAM,SAAS,KAAK,QAAQ;EAwB5B,MAAM,MAvBO,OAAO,MAAM,KAAK,QAAQ,SAAS;GAC9C,cAAc;GACd,SAAS,QAAQ;IACf,MAAM,UAAUC,UAAe,GAAG;IAClC,OAAO,SAAS,SAAS,QAAQ,OAAO,UAAU,QAAQ;GAC5D;EACF,CAiBe,IAhBE,OAAO,MAAM,KAAK,QAAQ,UAAU;GACnD,cAAc;GACd,SAAS,QACP,IAAI,KACF,IAAI,OACF,IAAI,aAAa,IAAI,QAAQ,IAC5B,CAAC,GAAG,QAAQ,aAAa,CAAC,KAAKC,cAAsB,EAAE,CAC1D,GACA,YACF,CAAC,CACE,KAAK,CAAC,GAAG,QAAQ;IAChB,MAAM,MAAMD,UAAe,EAAE;IAC7B,OAAO,SAAS,UAAU,EAAE,KAAK,IAAI,OAAO,WAAW,EAAE,KAAK,IAAI;GACpE,CAAC,CAAC,CACD,KAAK,EAAE;EACd,CAC0B;EAC1B,OAAO,QAAQ,KAAK,KAAK,GAAG,IAAI;CAClC;CAEA,MAAM,OAAoC;EACxC,IAAI,MAAM;EACV,IAAI,CAAC,KAAK,SAAS;GACjB,KAAK,UAAU;GACf,OAAO,KAAK,OAAO;EACrB;EACA,MAAM,SAAS,KAAK,QAAQ;EAC5B,MAAM,SAAS,KAAK;EACpB,SAAS,QAAQ,QAAQ,MAAM;GAC7B,UAAU,GAAG,KAAK,QAAQ,IAAI;GAC9B,MAAM,QAAQ,EAAE,MAAM;GACtB,IAAI,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,MAAM,UAAU,OAAO;IAC3D,OAAO,KAAK,WAAW;IACvB,KAAK,QAAQ,OAAO,KAAK,KAAK;IAC9B,IAAI,CAACE,eAAoB,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,KAAK,EAAE,KAAK,EAAE;GACpE;GACA,MAAM,MAAMA,eAAoB,EAAE,KAAK,IAAI,KAAK;GAChD,MAAM,SAAS,OAAO,KAAK,EAAE,MAAM;GACnC,IAAI,OAAO,OAAO,KAAK,OAAO,KAAK,KAAK,QAAQ,UAAU,EAAE,QAAQ,KAAK;IACvE,IAAI,OAAO,OAAO,KAAK,SAAS,KAAK,KAAK,UAAU,UAAU,EAAE,UAAU,KACxE,OAAO,KAAK;SACP;KACL,KAAK,YAAY,OAAO,KAAK,EAAE,UAAU,GAAG;KAC5C,OAAO,OAAO,MAAM,SAAS,KAAK,KAAK,EAAE,SAAS,EAAE,GAAG;IACzD;GACF,OAAO;IACL,IAAI,OAAO,OAAO,KAAK,OAAO,GAAG,OAAO;IACxC,KAAK,UAAU,OAAO,KAAK,EAAE,QAAQ,GAAG;IACxC,KAAK,YAAY,OAAO,KAAK,EAAE,UAAU,GAAG;IAC5C,OAAO,GAAG,MAAM,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,KAAK,EAAE,SAAS,EAAE,GAAG;GACtE;EACF,CAAC;EACD,OAAO;CACT;;CAGA,MAAc;EACZ,MAAM,OAAO,KAAK,UAAU,KAAK,KAAK,OAAO;EAC7C,KAAK,UAAU;EACf,OAAO,OAAO,KAAK,WAAW;CAChC;CAEA,KAAa,GAA2B;EACtC,OAAO,EAAE,UAAU,IAAI,KAAK,QAAQ,MAAM,KAAK,OAAO,IAAI,EAAE,KAAK;CACnE;CAEA,aAA6B;EAC3B,IAAI,MAAM;EACV,IAAI,OAAO,OAAO,KAAK,OAAO,GAAG,OAAO;EACxC,KAAK,UAAU,OAAO,KAAK;EAC3B,KAAK,YAAY,OAAO,KAAK;EAC7B,IAAI,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,MAAM,UAAU,IAAI,OAAO;EACjE,KAAK,QAAQ,OAAO,KAAK;EACzB,OAAO;CACT;AACF;;ACjGA,MAAM,iBAAiB,QAAgB,aAA+C;CACpF,MAAM,OAAO;CACb,UAAU,OAAO,gBAAgB,SAAS,QAAQ;CAClD,SAAS,OAAO,gBAAgB,SAAS,OAAO;CAChD,cAAc,SAAS,gBAAgB;CACvC,kBAAkB,SAAS,oBAAoB;CAC/C,QAAQ,SAAS,UAAU;AAC7B;;AAGA,MAAM,oBAAoB,QAAgB,UACxC,IAAIC,kBAAgC;CAClC,QAAQ,OAAO;CACf,SAAS,UAAU,SAAS,KAAK,IAAI,QAAQ,MAAM;AACrD,CAAC;;AAGH,MAAa,aACX,QACA,OACA,YAEA,OAAO,IAAI;CACT,WAAW,IAAI,OAAO,cAAc,QAAQ,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM;CAC5E,QAAQ,UAAU,iBAAiB,QAAQ,UAAU,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,CAAC;AAC7F,CAAC,CAAC,CAAC,KAAKC,kBAAgC,OAAO,eAAe,OAAO,KAAK,CAAC,CAAC;;AAG9E,MAAa,mBACV,YAEC,OACA,YAEA,OAAO,cAAc;CACnB,MAAM,SAAS,IAAI,aAAa,cAAc,QAAQ,OAAO,CAAC;CAC9D,MAAM,SAAS,MACb,OAAO,IAAI;EACT,KAAK;EACL,QAAQ,UACN,iBAAiB,QAAQ,UAAU,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,CAAC;CAC7E,CAAC;CACH,OAAO,MAAM,KACX,OAAO,QACP,OAAO,WAAW,UAAU,YAAY,OAAO,MAAM,KAAK,CAAC,CAAC,GAC5D,OAAO,OAAO,OAAO,WAAW,YAAY,OAAO,IAAI,CAAC,CAAC,CAAC,GAC1D,OAAO,QAAQ,MAAM,MAAM,EAAE,CAC/B;AACF,CAAC,CAAC,CAAC,KAAKC,eAA6B,OAAO,eAAe,OAAO,KAAK,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { _ as Quad } from "./Term-B_4ezyXq.mjs";
2
+ import { t as PrefixMap } from "./PrefixMap-BMlXrWNd.mjs";
3
+ import { p as SerializeOptions$1 } from "./Serialization-Df8iVauT.mjs";
4
+ import "effect/Option";
5
+ import "effect/Effect";
6
+ import "effect/Stream";
7
+ /**
8
+ * The result of parsing a document into quads in document order.
9
+ *
10
+ * @internal
11
+ */
12
+ interface QuadsResult {
13
+ readonly quads: ReadonlyArray<Quad>;
14
+ readonly prefixes: PrefixMap;
15
+ readonly baseIri: string | undefined;
16
+ }
17
+ /**
18
+ * Options for the Turtle and TriG serializers.
19
+ *
20
+ * @since 0.1.0
21
+ * @category models
22
+ */
23
+ interface SerializeOptions extends SerializeOptions$1 {
24
+ /**
25
+ * Also declare prefixes detected from the data: well-known vocabularies
26
+ * (`rdf`, `rdfs`, `xsd`, `owl`) and `nsN` prefixes for other namespaces
27
+ * used at least twice. Prefixes in `prefixes` take precedence. Defaults to
28
+ * `false`. Ignored by `serializeStream`.
29
+ */
30
+ readonly autoPrefixes?: boolean | undefined;
31
+ /** Use SPARQL-style `PREFIX` / `BASE` directives. Defaults to `false`. */
32
+ readonly sparqlDirectives?: boolean | undefined;
33
+ /** The indentation unit. Defaults to four spaces. */
34
+ readonly indent?: string | undefined;
35
+ }
36
+ export { QuadsResult as n, SerializeOptions as t };
37
+ //# sourceMappingURL=serialize-DsoXdM6n.d.mts.map
@@ -0,0 +1,2 @@
1
+ import { a as substitute, i as localName, n as display, o as variables, r as format } from "../Message-fIvTJSXM.mjs";
2
+ export { display, format, localName, substitute, variables };
@@ -0,0 +1 @@
1
+ export { n as display, r as format, i as localName, a as substitute, o as variables } from "../Message-CK_DGQuu.mjs";
@@ -0,0 +1,2 @@
1
+ import { C as zeroOrOne, S as zeroOrMore, _ as oneOrMore, a as PathRdf, b as toRdf, c as PredicatePath, d as ZeroOrOnePath, f as alternative, g as inverse, h as fromRdf, i as Path, l as SequencePath, m as evaluate, n as InversePath, o as PathSyntaxError, p as equals, r as OneOrMorePath, t as AlternativePath, u as ZeroOrMorePath, v as predicate, x as toSparql, y as sequence } from "../Path-DRB8e-Zn.mjs";
2
+ export { AlternativePath, InversePath, OneOrMorePath, Path, PathRdf, PathSyntaxError, PredicatePath, SequencePath, ZeroOrMorePath, ZeroOrOnePath, alternative, equals, evaluate, fromRdf, inverse, oneOrMore, predicate, sequence, toRdf, toSparql, zeroOrMore, zeroOrOne };
@@ -0,0 +1 @@
1
+ export { t as PathSyntaxError, r as alternative, i as equals, a as evaluate, o as fromRdf, s as inverse, c as oneOrMore, l as predicate, u as sequence, d as toRdf, f as toSparql, p as zeroOrMore, m as zeroOrOne } from "../Path-B20Yp8KE.mjs";
@@ -0,0 +1,2 @@
1
+ import { _ as parse, a as NodeShape, b as usesSparql, c as ShapeId, f as SparqlConstraint, g as isShapesGraph, h as get, i as NodeKind, l as ShapesGraph, m as componentOf, n as Constraint, o as PropertyShape, p as Target, r as ConstraintTag, s as Shape, t as ComponentConstraint, u as ShapesGraphError, v as parseResult, y as targetedShapes } from "../Shapes-BQFDFc4Q.mjs";
2
+ export { ComponentConstraint, Constraint, ConstraintTag, NodeKind, NodeShape, PropertyShape, Shape, ShapeId, ShapesGraph, ShapesGraphError, SparqlConstraint, Target, componentOf, get, isShapesGraph, parse, parseResult, targetedShapes, usesSparql };
@@ -0,0 +1 @@
1
+ export { t as ShapesGraphError, r as componentOf, i as get, a as isShapesGraph, o as parse, s as parseResult, c as targetedShapes, l as usesSparql } from "../Shapes-18GjfyBV.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as TargetInput, n as SparqlConstraintEvaluator, o as Violation, r as SparqlEvaluationError, t as ConstraintInput } from "../Sparql-DecpWTPh.mjs";
2
+ export { ConstraintInput, SparqlConstraintEvaluator, SparqlEvaluationError, TargetInput, Violation };
@@ -0,0 +1 @@
1
+ export { t as SparqlConstraintEvaluator, n as SparqlEvaluationError } from "../Sparql-BiYFMSpl.mjs";
@@ -0,0 +1,2 @@
1
+ import { _ as violations, a as ValidationReportSchema, c as format, d as hasNoViolations, f as isValidationReport, g as toRdf, h as toDataset, i as ValidationReport, l as formatResult, m as makeResult, n as ReportSyntaxError, p as make, r as ToDatasetOptions, s as ValidationResult, t as ReportRdf, u as fromDataset, v as withSeverity } from "../ValidationReport-Dx3WxY0h.mjs";
2
+ export { ReportRdf, ReportSyntaxError, ToDatasetOptions, ValidationReport, ValidationReportSchema, ValidationResult, format, formatResult, fromDataset, hasNoViolations, isValidationReport, make, makeResult, toDataset, toRdf, violations, withSeverity };
@@ -0,0 +1 @@
1
+ export { t as ReportSyntaxError, n as ValidationReportSchema, i as format, a as formatResult, o as fromDataset, s as hasNoViolations, c as isValidationReport, l as make, u as makeResult, d as toDataset, f as toRdf, p as violations, m as withSeverity } from "../ValidationReport-DBdJshW5.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as ValidateOptions, d as layer, f as make, g as validateNode, h as validate, i as UnsupportedFeatureError, l as assertConforms, m as severities, n as RecursiveShapeError, o as ValidationError, p as schema, r as SchemaOptions, s as Validator, t as ConformanceError, u as conforms } from "../Validator-Dl8cih5V.mjs";
2
+ export { ConformanceError, RecursiveShapeError, SchemaOptions, UnsupportedFeatureError, ValidateOptions, ValidationError, Validator, assertConforms, conforms, layer, make, schema, severities, validate, validateNode };
@@ -0,0 +1 @@
1
+ export { t as ConformanceError, n as RecursiveShapeError, r as UnsupportedFeatureError, i as Validator, o as assertConforms, s as conforms, c as layer, l as make, u as schema, d as severities, f as validate, p as validateNode } from "../Validator-DmUfMbpL.mjs";
@@ -0,0 +1,2 @@
1
+ import { r as sh, t as SH } from "../Vocabulary-C6-GPOy4.mjs";
2
+ export { SH, sh };
@@ -0,0 +1 @@
1
+ export { t as SH, r as sh } from "../Vocabulary-CnQl-_Z4.mjs";
@@ -0,0 +1,9 @@
1
+ import { t as Message_d_exports } from "../Message-fIvTJSXM.mjs";
2
+ import { s as Path_d_exports } from "../Path-DRB8e-Zn.mjs";
3
+ import { d as Shapes_d_exports } from "../Shapes-BQFDFc4Q.mjs";
4
+ import { i as Sparql_d_exports } from "../Sparql-DecpWTPh.mjs";
5
+ import { o as ValidationReport_d_exports } from "../ValidationReport-Dx3WxY0h.mjs";
6
+ import { c as Validator_d_exports } from "../Validator-Dl8cih5V.mjs";
7
+ import { n as Vocabulary_d_exports } from "../Vocabulary-C6-GPOy4.mjs";
8
+ import "../index-Ct8xFmRs.mjs";
9
+ export { Message_d_exports as Message, Path_d_exports as Path, Shapes_d_exports as Shapes, Sparql_d_exports as Sparql, ValidationReport_d_exports as ValidationReport, Validator_d_exports as Validator, Vocabulary_d_exports as Vocabulary };
@@ -0,0 +1,8 @@
1
+ import { t as Message_exports } from "../Message-CK_DGQuu.mjs";
2
+ import { n as Vocabulary_exports } from "../Vocabulary-CnQl-_Z4.mjs";
3
+ import { n as Path_exports } from "../Path-B20Yp8KE.mjs";
4
+ import { n as Shapes_exports } from "../Shapes-18GjfyBV.mjs";
5
+ import { r as Sparql_exports } from "../Sparql-BiYFMSpl.mjs";
6
+ import { r as ValidationReport_exports } from "../ValidationReport-DBdJshW5.mjs";
7
+ import { a as Validator_exports } from "../Validator-DmUfMbpL.mjs";
8
+ export { Message_exports as Message, Path_exports as Path, Shapes_exports as Shapes, Sparql_exports as Sparql, ValidationReport_exports as ValidationReport, Validator_exports as Validator, Vocabulary_exports as Vocabulary };
@@ -0,0 +1,2 @@
1
+ import { c as make, d as withExternalCode, i as SemActSite, l as testExtension, n as SemActContext, o as combine, r as SemActHandler, s as layer, t as Handler, u as testExtensionIri } from "../SemAct-CDchtk49.mjs";
2
+ export { Handler, SemActContext, SemActHandler, SemActSite, combine, layer, make, testExtension, testExtensionIri, withExternalCode };
@@ -0,0 +1 @@
1
+ export { t as SemActHandler, r as combine, i as layer, a as make, o as testExtension, s as testExtensionIri, c as withExternalCode } from "../SemAct-CmyT4yI8.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as parse, n as ParseResult, o as parseWithMetadata, r as PrintOptions, s as print, t as ParseOptions } from "../ShExC-Ctf-06CL.mjs";
2
+ export { ParseOptions, ParseResult, PrintOptions, parse, parseWithMetadata, print };
@@ -0,0 +1 @@
1
+ export { n as parse, r as parseWithMetadata, i as print } from "../ShExC-DJbB19i3.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as ShExStructureError, i as ShExRError, n as ShExImportError, o as ShExValidationError, r as ShExJError } from "../ShExError-BeYFD9rv.mjs";
2
+ export { ShExImportError, ShExJError, ShExRError, ShExStructureError, ShExValidationError };
@@ -0,0 +1 @@
1
+ export { n as ShExImportError, r as ShExJError, i as ShExRError, a as ShExStructureError, o as ShExValidationError } from "../ShExError-CVtq2NnM.mjs";
@@ -0,0 +1,2 @@
1
+ import { $ as TripleConstraint, A as OneOf, B as ShapeDecl, C as NodeConstraint, D as ObjectLiteralSchema, E as ObjectLiteral, F as SemActSchema, G as ShapeExprSchema, H as ShapeExpr, J as ShapeNot, K as ShapeExternal, L as Shape, M as Schema, N as SchemaSchema, O as ObjectValue, P as SemAct, Q as ShapeSchema, R as ShapeAnd, S as LiteralStemSchema, T as NodeKind, U as ShapeExprOrRef, V as ShapeDeclSchema, W as ShapeExprOrRefSchema, X as ShapeOr, Y as ShapeNotSchema, Z as ShapeOrSchema, _ as LanguageStemRangeSchema, _t as stringify, a as EachOf, at as ValueSetValue, b as LiteralStemRange, c as IriStem, ct as WildcardSchema, d as IriStemSchema, dt as decode, et as TripleConstraintSchema, f as Label, ft as isBlankLabel, g as LanguageStemRange, gt as resolveIris, h as LanguageStem, ht as parse, i as Cardinality, it as TripleExprSchema, j as OneOfSchema, k as ObjectValueSchema, l as IriStemRange, lt as cardinality, m as LanguageSchema, mt as mapIris, n as AnnotationSchema, nt as TripleExprOrRef, o as EachOfSchema, ot as ValueSetValueSchema, p as Language, pt as isObjectLiteral, q as ShapeExternalSchema, r as Bounds, rt as TripleExprOrRefSchema, s as Facets, st as Wildcard, t as Annotation, tt as TripleExpr, u as IriStemRangeSchema, ut as context, v as LanguageStemSchema, vt as toJson, w as NodeConstraintSchema, x as LiteralStemRangeSchema, y as LiteralStem, z as ShapeAndSchema } from "../ShExJ-C1u_wgyD.mjs";
2
+ export { Annotation, AnnotationSchema, Bounds, Cardinality, EachOf, EachOfSchema, Facets, IriStem, IriStemRange, IriStemRangeSchema, IriStemSchema, Label, Language, LanguageSchema, LanguageStem, LanguageStemRange, LanguageStemRangeSchema, LanguageStemSchema, LiteralStem, LiteralStemRange, LiteralStemRangeSchema, LiteralStemSchema, NodeConstraint, NodeConstraintSchema, NodeKind, ObjectLiteral, ObjectLiteralSchema, ObjectValue, ObjectValueSchema, OneOf, OneOfSchema, Schema, SchemaSchema, SemAct, SemActSchema, Shape, ShapeAnd, ShapeAndSchema, ShapeDecl, ShapeDeclSchema, ShapeExpr, ShapeExprOrRef, ShapeExprOrRefSchema, ShapeExprSchema, ShapeExternal, ShapeExternalSchema, ShapeNot, ShapeNotSchema, ShapeOr, ShapeOrSchema, ShapeSchema, TripleConstraint, TripleConstraintSchema, TripleExpr, TripleExprOrRef, TripleExprOrRefSchema, TripleExprSchema, ValueSetValue, ValueSetValueSchema, Wildcard, WildcardSchema, cardinality, context, decode, isBlankLabel, isObjectLiteral, mapIris, parse, resolveIris, stringify, toJson };
@@ -0,0 +1,2 @@
1
+ import "../ShExError-CVtq2NnM.mjs";
2
+ export { t as AnnotationSchema, n as EachOfSchema, r as IriStemRangeSchema, i as IriStemSchema, a as LanguageSchema, o as LanguageStemRangeSchema, s as LanguageStemSchema, c as LiteralStemRangeSchema, l as LiteralStemSchema, u as NodeConstraintSchema, d as ObjectLiteralSchema, f as ObjectValueSchema, p as OneOfSchema, m as SchemaSchema, h as SemActSchema, _ as ShapeAndSchema, v as ShapeDeclSchema, y as ShapeExprOrRefSchema, b as ShapeExprSchema, x as ShapeExternalSchema, S as ShapeNotSchema, C as ShapeOrSchema, w as ShapeSchema, T as TripleConstraintSchema, E as TripleExprOrRefSchema, D as TripleExprSchema, O as ValueSetValueSchema, k as WildcardSchema, A as cardinality, j as context, M as decode, N as isBlankLabel, P as isObjectLiteral, F as mapIris, I as parse, L as resolveIris, R as stringify, z as toJson } from "../ShExJ-COiPd9Xw.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as toQuads, i as toDataset, r as fromDataset, t as SX } from "../ShExR-CqONNNBz.mjs";
2
+ export { SX, fromDataset, toDataset, toQuads };
@@ -0,0 +1 @@
1
+ export { t as SX, r as fromDataset, i as toDataset, a as toQuads } from "../ShExR-ByR4mCh-.mjs";
@@ -0,0 +1,2 @@
1
+ import { _ as resolve, a as QueryAssociation, c as ShapeSelector, d as format, f as formatShape, g as parseTerm, h as parse, i as ParseOptions, l as Start, m as isStart, n as FixedShapeMap, o as QueryShapeMap, p as fromJson, r as NodeSelector, t as Association, u as TriplePattern, v as start } from "../ShapeMap-C422pxKl.mjs";
2
+ export { Association, FixedShapeMap, NodeSelector, ParseOptions, QueryAssociation, QueryShapeMap, ShapeSelector, Start, TriplePattern, format, formatShape, fromJson, isStart, parse, parseTerm, resolve, start };
@@ -0,0 +1 @@
1
+ export { n as format, r as formatShape, i as fromJson, a as isStart, o as parse, s as parseTerm, c as resolve, l as start } from "../ShapeMap-CsgKxB2G.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as nestedShapes, i as makeIndex, o as problems, r as check, t as SchemaIndex } from "../Structure-n4CmDiab.mjs";
2
+ export { SchemaIndex, check, makeIndex, nestedShapes, problems };
@@ -0,0 +1,2 @@
1
+ import "../ShExError-CVtq2NnM.mjs";
2
+ export { n as check, r as makeIndex, i as nestedShapes, a as problems } from "../Structure-BjMo4Bkc.mjs";
@@ -0,0 +1,2 @@
1
+ import { a as ValidationReport, c as formatResult, d as make, f as resolveImports, h as validateNode, i as ShapeResult, l as loaderFromRecord, m as validate, n as Options, o as Validator, p as schema, r as SchemaLoader, t as Loader, u as loaderLayer } from "../Validator-227ff9Rn.mjs";
2
+ export { Loader, Options, SchemaLoader, ShapeResult, ValidationReport, Validator, formatResult, loaderFromRecord, loaderLayer, make, resolveImports, schema, validate, validateNode };
@@ -0,0 +1,4 @@
1
+ import "../SemAct-CmyT4yI8.mjs";
2
+ import "../ShExError-CVtq2NnM.mjs";
3
+ import "../ShapeMap-CsgKxB2G.mjs";
4
+ export { t as SchemaLoader, r as formatResult, i as loaderFromRecord, a as loaderLayer, o as make, s as resolveImports, c as schema, l as validate, u as validateNode } from "../Validator-BzXMKDeJ.mjs";
@@ -0,0 +1,9 @@
1
+ import { t as ShExError_d_exports } from "../ShExError-BeYFD9rv.mjs";
2
+ import { I as ShExJ_d_exports } from "../ShExJ-C1u_wgyD.mjs";
3
+ import { a as SemAct_d_exports } from "../SemAct-CDchtk49.mjs";
4
+ import { i as ShExC_d_exports } from "../ShExC-Ctf-06CL.mjs";
5
+ import { n as ShExR_d_exports } from "../ShExR-CqONNNBz.mjs";
6
+ import { s as ShapeMap_d_exports } from "../ShapeMap-C422pxKl.mjs";
7
+ import { n as Structure_d_exports } from "../Structure-n4CmDiab.mjs";
8
+ import { s as Validator_d_exports } from "../Validator-227ff9Rn.mjs";
9
+ export { SemAct_d_exports as SemAct, ShExC_d_exports as ShExC, ShExError_d_exports as ShExError, ShExJ_d_exports as ShExJ, ShExR_d_exports as ShExR, ShapeMap_d_exports as ShapeMap, Structure_d_exports as Structure, Validator_d_exports as Validator };
@@ -0,0 +1,9 @@
1
+ import { n as SemAct_exports } from "../SemAct-CmyT4yI8.mjs";
2
+ import { t as ShExC_exports } from "../ShExC-DJbB19i3.mjs";
3
+ import { t as ShExError_exports } from "../ShExError-CVtq2NnM.mjs";
4
+ import { g as ShExJ_exports } from "../ShExJ-COiPd9Xw.mjs";
5
+ import { n as ShExR_exports } from "../ShExR-ByR4mCh-.mjs";
6
+ import { t as ShapeMap_exports } from "../ShapeMap-CsgKxB2G.mjs";
7
+ import { t as Structure_exports } from "../Structure-BjMo4Bkc.mjs";
8
+ import { n as Validator_exports } from "../Validator-BzXMKDeJ.mjs";
9
+ export { SemAct_exports as SemAct, ShExC_exports as ShExC, ShExError_exports as ShExError, ShExJ_exports as ShExJ, ShExR_exports as ShExR, ShapeMap_exports as ShapeMap, Structure_exports as Structure, Validator_exports as Validator };
@@ -0,0 +1,2 @@
1
+ import { A as containsExists, B as mapChildren, C as Reduced, D as Values, E as Union, F as formatExpression, G as transform, H as minus, I as internalVariable, J as variables, K as union, L as isInternalVariable, M as extend, N as filter, O as bgp, P as format, R as join, S as Query, T as Slice, U as prebind, V as mapExpressionPatterns, W as project, _ as OperationExpression, a as ExistsExpression, b as Path, c as Filter, d as Group, f as GroupKey, g as Operation, h as Minus, i as Distinct, j as expressionVariables, k as certainVariables, l as FunctionCallExpression, m as LeftJoin, o as Expression, p as Join, q as unit, r as Bgp, s as Extend, t as Aggregate, u as Graph, v as OrderBy, w as Service, x as Project, y as OrderCondition, z as leftJoin } from "../Algebra-uGsIEOUA.mjs";
2
+ export { Aggregate, Bgp, Distinct, ExistsExpression, Expression, Extend, Filter, FunctionCallExpression, Graph, Group, GroupKey, Join, LeftJoin, Minus, Operation, OperationExpression, OrderBy, OrderCondition, Path, Project, Query, Reduced, Service, Slice, Union, Values, bgp, certainVariables, containsExists, expressionVariables, extend, filter, format, formatExpression, internalVariable, isInternalVariable, join, leftJoin, mapChildren, mapExpressionPatterns, minus, prebind, project, transform, union, unit, variables };
@@ -0,0 +1 @@
1
+ export { n as bgp, r as certainVariables, i as containsExists, a as expressionVariables, o as extend, s as filter, c as format, l as formatExpression, u as internalVariable, d as isInternalVariable, f as join, p as leftJoin, m as mapChildren, h as mapExpressionPatterns, g as minus, _ as prebind, v as project, y as transform, b as union, x as unit, S as variables } from "../Algebra-CGG4oae3.mjs";
@@ -0,0 +1,2 @@
1
+ import { $ as TransferOperation, A as Operator, At as negated, B as PathSequence, Bt as service, C as GroupCondition, Ct as inverse, D as MinusPattern, Dt as isUpdate, E as LoadOperation, Et as isQuery, F as PathInverse, Ft as projectedVariables, G as Prologue, Gt as values, H as PathZeroOrOne, Ht as triplePattern, I as PathLink, It as projection, J as QueryBase, K as QuadPattern, Kt as zeroOrMore, L as PathNegated, Lt as quadPattern, M as OrderCondition, Mt as operation, N as Path, Nt as optional, O as ModifyOperation, Ot as link, P as PathAlternative, Pt as pathPattern, Q as TermPattern, R as PathOneOrMore, Rt as select, S as GraphTarget, St as inScopeVariables, T as InsertDataOperation, Tt as isPath, U as Pattern, Ut as union, V as PathZeroOrMore, Vt as subSelect, W as Projection, Wt as update, X as ServicePattern, Y as SelectQuery, Z as SubSelectPattern, _ as Expression, _t as expressionVariables, a as BgpPattern, at as VarOrIri, b as GraphOrDefault, bt as graph, c as ClearOperation, ct as ask, d as DatasetClause, dt as builtInArity, et as TriplePattern, f as DeleteDataOperation, ft as construct, g as ExistsExpression, gt as exists, h as DropOperation, ht as emptyPrologue, it as ValuesPattern, j as OptionalPattern, jt as oneOrMore, k as OperationExpression, kt as minus, l as ConstructQuery, lt as bgp, m as DescribeQuery, mt as describe, n as AggregateName, nt as Update, o as BindPattern, ot as aggregate, p as DeleteWhereOperation, pt as containsAggregate, q as Query, qt as zeroOrOne, r as AskQuery, rt as UpdateOperation, s as BuiltInName, st as alternative, t as AggregateExpression, tt as UnionPattern, u as CreateOperation, ut as bind, v as FilterPattern, vt as filter, w as GroupPattern, wt as isBuiltInName, x as GraphPattern, xt as group, y as FunctionCallExpression, yt as functionCall, z as PathPattern, zt as sequence } from "../Ast-vcw2W-lf.mjs";
2
+ export { AggregateExpression, AggregateName, AskQuery, BgpPattern, BindPattern, BuiltInName, ClearOperation, ConstructQuery, CreateOperation, DatasetClause, DeleteDataOperation, DeleteWhereOperation, DescribeQuery, DropOperation, ExistsExpression, Expression, FilterPattern, FunctionCallExpression, GraphOrDefault, GraphPattern, GraphTarget, GroupCondition, GroupPattern, InsertDataOperation, LoadOperation, MinusPattern, ModifyOperation, OperationExpression, Operator, OptionalPattern, OrderCondition, Path, PathAlternative, PathInverse, PathLink, PathNegated, PathOneOrMore, PathPattern, PathSequence, PathZeroOrMore, PathZeroOrOne, Pattern, Projection, Prologue, QuadPattern, Query, QueryBase, SelectQuery, ServicePattern, SubSelectPattern, TermPattern, TransferOperation, TriplePattern, UnionPattern, Update, UpdateOperation, ValuesPattern, VarOrIri, aggregate, alternative, ask, bgp, bind, builtInArity, construct, containsAggregate, describe, emptyPrologue, exists, expressionVariables, filter, functionCall, graph, group, inScopeVariables, inverse, isBuiltInName, isPath, isQuery, isUpdate, link, minus, negated, oneOrMore, operation, optional, pathPattern, projectedVariables, projection, quadPattern, select, sequence, service, subSelect, triplePattern, union, update, values, zeroOrMore, zeroOrOne };
@@ -0,0 +1 @@
1
+ export { n as aggregate, r as alternative, i as ask, a as bgp, o as bind, s as builtInArity, c as construct, l as containsAggregate, u as describe, d as emptyPrologue, f as exists, p as expressionVariables, m as filter, h as functionCall, g as graph, _ as group, v as inScopeVariables, y as inverse, b as isBuiltInName, x as isPath, S as isQuery, C as isUpdate, w as link, T as minus, E as negated, D as oneOrMore, O as operation, k as optional, A as pathPattern, j as projectedVariables, M as projection, N as quadPattern, P as select, F as sequence, I as service, L as subSelect, R as triplePattern, z as union, B as update, V as values, H as zeroOrMore, U as zeroOrOne } from "../Ast-CPRZmBvk.mjs";
@@ -0,0 +1,2 @@
1
+ import { _ as toRecord, a as empty, c as getUndefined, d as make, f as merge, g as sharesVariable, h as set, i as compatible, l as has, m as remove, o as fromEntries, p as project, r as TypeId, s as get, t as Bindings, u as isBindings, v as variables } from "../Bindings-DiKpBd7f.mjs";
2
+ export { Bindings, TypeId, compatible, empty, fromEntries, get, getUndefined, has, isBindings, make, merge, project, remove, set, sharesVariable, toRecord, variables };
@@ -0,0 +1 @@
1
+ export { t as Bindings, r as TypeId, i as compatible, a as empty, o as fromEntries, s as get, c as getUndefined, l as has, u as isBindings, d as make, f as merge, p as project, m as remove, h as set, g as sharesVariable, _ as toRecord, v as variables } from "../Bindings-Ck3m7JRC.mjs";