@qitqode/qitqode-android-arm64 0.1.30 → 0.1.32

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 (417) hide show
  1. package/bundle/{chunk-37n34pzd.js → chunk-01my2y0c.js} +1 -1
  2. package/bundle/{chunk-ejjea8hh.js → chunk-02jtpxe0.js} +1 -1
  3. package/bundle/{chunk-6qy1ghrx.js → chunk-05mce0j3.js} +1 -1
  4. package/bundle/chunk-096pd6c4.js +2 -0
  5. package/bundle/{chunk-g1dwbvkg.js → chunk-0bbs01f0.js} +1 -1
  6. package/bundle/chunk-0c2p3a6v.js +2 -0
  7. package/bundle/chunk-0c5rxty9.js +2 -0
  8. package/bundle/{chunk-j6emx6jn.js → chunk-0dt0bxz6.js} +2 -2
  9. package/bundle/chunk-0e86gt9r.js +2 -0
  10. package/bundle/{chunk-mskwkcgj.js → chunk-0mx2psfc.js} +1 -1
  11. package/bundle/chunk-0p27fvfr.js +2 -0
  12. package/bundle/chunk-0qs1vx97.js +2 -0
  13. package/bundle/{chunk-f45tp3e3.js → chunk-0v0vqbn5.js} +1 -1
  14. package/bundle/{chunk-be216spx.js → chunk-10bjs581.js} +2 -2
  15. package/bundle/{chunk-bss414qz.js → chunk-12vef2pr.js} +1 -1
  16. package/bundle/{chunk-jm1ptn8n.js → chunk-15hw2z9t.js} +1 -1
  17. package/bundle/chunk-15j5cn4t.js +2 -0
  18. package/bundle/{chunk-srh4xvsj.js → chunk-1gx18dm5.js} +1 -1
  19. package/bundle/chunk-1r95p0tp.js +2 -0
  20. package/bundle/chunk-1rhhhm88.js +2 -0
  21. package/bundle/{chunk-b0syck9r.js → chunk-1sgahe1s.js} +1 -1
  22. package/bundle/{chunk-26nfphsg.js → chunk-1vb79bw1.js} +1 -1
  23. package/bundle/chunk-1wbjh23g.js +2 -0
  24. package/bundle/chunk-20702epe.js +2 -0
  25. package/bundle/{chunk-371r2111.js → chunk-24jg9d61.js} +1 -1
  26. package/bundle/chunk-257me4z3.js +800 -0
  27. package/bundle/{chunk-1sgby720.js → chunk-2hc5z7b5.js} +1 -1
  28. package/bundle/{chunk-yq3m8190.js → chunk-2maqde7w.js} +2 -2
  29. package/bundle/{chunk-mrw279k3.js → chunk-2phz0bn9.js} +1 -1
  30. package/bundle/{chunk-b8tw709r.js → chunk-2vn41ecx.js} +1 -1
  31. package/bundle/chunk-2wajs9xv.js +2 -0
  32. package/bundle/{chunk-w87a3mzm.js → chunk-2zq4k837.js} +1 -1
  33. package/bundle/{chunk-1bhvt33f.js → chunk-31qrzrwy.js} +1 -1
  34. package/bundle/{chunk-d5bxan80.js → chunk-326p5b10.js} +2 -2
  35. package/bundle/{chunk-0df4kede.js → chunk-33e9y2aw.js} +1 -1
  36. package/bundle/{chunk-zcm2jdr5.js → chunk-35xk4g91.js} +1 -1
  37. package/bundle/{chunk-5fz8tph5.js → chunk-3632wgg1.js} +1 -1
  38. package/bundle/{chunk-1ngtxja9.js → chunk-3bxg5bta.js} +1 -1
  39. package/bundle/{chunk-mgk9sh16.js → chunk-3c6p8tm3.js} +1 -1
  40. package/bundle/{chunk-fqw4y7x0.js → chunk-3nx7112w.js} +2 -2
  41. package/bundle/{chunk-n26yf3he.js → chunk-3wetyrjs.js} +1 -1
  42. package/bundle/{chunk-2jmxt3fb.js → chunk-40efytmk.js} +1 -1
  43. package/bundle/chunk-42p59wm4.js +2 -0
  44. package/bundle/chunk-4512pvca.js +2 -0
  45. package/bundle/chunk-456bmaww.js +2 -0
  46. package/bundle/{chunk-c5e6sk9c.js → chunk-48ge2ryx.js} +1 -1
  47. package/bundle/chunk-48pajrnt.js +2 -0
  48. package/bundle/{chunk-12bssxd4.js → chunk-4cnwn1rh.js} +2 -2
  49. package/bundle/chunk-4fy9c54h.js +2 -0
  50. package/bundle/{chunk-4tbwha3m.js → chunk-4jtxtkj7.js} +2 -2
  51. package/bundle/chunk-4sc82a27.js +2 -0
  52. package/bundle/chunk-52bam8g7.js +2 -0
  53. package/bundle/{chunk-6fp8a9ek.js → chunk-53bqcctj.js} +1 -1
  54. package/bundle/{chunk-hwbyqezq.js → chunk-56z7x7h4.js} +2 -2
  55. package/bundle/chunk-59y8q9m5.js +2 -0
  56. package/bundle/chunk-59yqvk48.js +3 -0
  57. package/bundle/{chunk-a1pw9r6f.js → chunk-5hw6xa49.js} +2 -2
  58. package/bundle/{chunk-8qkhddq3.js → chunk-5jx0yadh.js} +2 -2
  59. package/bundle/chunk-5pb551dx.js +2 -0
  60. package/bundle/{chunk-qrey2gwb.js → chunk-5q4harvc.js} +2 -2
  61. package/bundle/chunk-5tray1fw.js +3 -0
  62. package/bundle/{chunk-my6sz5d6.js → chunk-60v5jvgt.js} +1 -1
  63. package/bundle/chunk-634pnryq.js +2 -0
  64. package/bundle/chunk-64ezpbwt.js +2 -0
  65. package/bundle/{chunk-5fgx6fa4.js → chunk-69nzndk7.js} +1 -1
  66. package/bundle/{chunk-k8ss3135.js → chunk-6aqyhfag.js} +218 -218
  67. package/bundle/{chunk-chmrvbbj.js → chunk-6d5rrre9.js} +1 -1
  68. package/bundle/{chunk-g3dhsmbt.js → chunk-6hpgb8h4.js} +3 -3
  69. package/bundle/{chunk-drs1gv2b.js → chunk-6kp07m7p.js} +1 -1
  70. package/bundle/{chunk-wy46mbwt.js → chunk-6phh70sp.js} +1 -1
  71. package/bundle/{chunk-v2zp22r3.js → chunk-70ck4v3t.js} +1 -1
  72. package/bundle/{chunk-2tnarng3.js → chunk-71sjjjr8.js} +1 -1
  73. package/bundle/{chunk-ds69qc8b.js → chunk-71xz70r9.js} +1 -1
  74. package/bundle/{chunk-2dzk5txw.js → chunk-73e409hd.js} +1 -1
  75. package/bundle/chunk-764fksh3.js +2 -0
  76. package/bundle/{chunk-g7rjtehn.js → chunk-78ymd20x.js} +1 -1
  77. package/bundle/{chunk-szr0f7k2.js → chunk-7avcnwv8.js} +1 -1
  78. package/bundle/{chunk-z8v2tsz2.js → chunk-7hm0c2yg.js} +1 -1
  79. package/bundle/chunk-7mke41x0.js +2 -0
  80. package/bundle/chunk-7ry9cvby.js +2 -0
  81. package/bundle/chunk-7tr9ejyk.js +7 -0
  82. package/bundle/chunk-7wczs9mx.js +2 -0
  83. package/bundle/{chunk-aztre27e.js → chunk-7xm75w1e.js} +1 -1
  84. package/bundle/{chunk-s3yna2wm.js → chunk-7z5jh4ra.js} +1 -1
  85. package/bundle/chunk-7z777y9k.js +2 -0
  86. package/bundle/{chunk-vj62pc0h.js → chunk-81qwdg5s.js} +1 -1
  87. package/bundle/chunk-85wcc1tp.js +3 -0
  88. package/bundle/chunk-89w3yhf8.js +2 -0
  89. package/bundle/chunk-8dwq41q1.js +28 -0
  90. package/bundle/{chunk-6hv59ere.js → chunk-8hytwgwf.js} +1 -1
  91. package/bundle/{chunk-wz0zcddf.js → chunk-8n20thvd.js} +2 -2
  92. package/bundle/{chunk-s07j8hfy.js → chunk-8qswepp2.js} +1 -1
  93. package/bundle/{chunk-bpbptx89.js → chunk-8r6ht39z.js} +1 -1
  94. package/bundle/chunk-8v96pmqn.js +2 -0
  95. package/bundle/chunk-8y2scz6z.js +2 -0
  96. package/bundle/chunk-8zx7vnx6.js +2 -0
  97. package/bundle/{chunk-qhc90p4a.js → chunk-93p131d5.js} +1 -1
  98. package/bundle/chunk-94a76f8w.js +2 -0
  99. package/bundle/{chunk-ppfjf7qx.js → chunk-9emq67vc.js} +1 -1
  100. package/bundle/{chunk-bvkq0a5q.js → chunk-9f1z9xce.js} +1 -1
  101. package/bundle/{chunk-dcvatax2.js → chunk-9gazyynx.js} +2 -2
  102. package/bundle/chunk-9ng7jjp7.js +2 -0
  103. package/bundle/chunk-9tpgnjy8.js +2 -0
  104. package/bundle/{chunk-mk6cddvd.js → chunk-a1wdeapb.js} +1 -1
  105. package/bundle/{chunk-qjn86fc0.js → chunk-a7amey9s.js} +1 -1
  106. package/bundle/chunk-a7ym9f0v.js +2 -0
  107. package/bundle/chunk-a8f2xvy3.js +2 -0
  108. package/bundle/chunk-a99cvwta.js +2 -0
  109. package/bundle/{chunk-42f7p0hq.js → chunk-ad72gb5f.js} +2 -2
  110. package/bundle/{chunk-89v6dgpp.js → chunk-ag8kz1e7.js} +2 -2
  111. package/bundle/{chunk-zv6pjtz1.js → chunk-avf8v3hb.js} +1 -1
  112. package/bundle/chunk-avys5mnz.js +2 -0
  113. package/bundle/chunk-axvjd10y.js +2 -0
  114. package/bundle/{chunk-m612agnk.js → chunk-ay8emwym.js} +1 -1
  115. package/bundle/chunk-b4pphqab.js +2 -0
  116. package/bundle/chunk-b6087ak4.js +2 -0
  117. package/bundle/{chunk-msegx0t7.js → chunk-b8gjz6bk.js} +1 -1
  118. package/bundle/{chunk-gf0pdgjs.js → chunk-bh53dz71.js} +1 -1
  119. package/bundle/chunk-bn0h9dny.js +10 -0
  120. package/bundle/chunk-brkqxbjy.js +2 -0
  121. package/bundle/{chunk-09kba1hg.js → chunk-c11d28qn.js} +2 -2
  122. package/bundle/chunk-c26qxt5g.js +2 -0
  123. package/bundle/chunk-c6zscb38.js +2 -0
  124. package/bundle/{chunk-ddnpx1yx.js → chunk-caj1b9y7.js} +5 -5
  125. package/bundle/{chunk-pekm54ce.js → chunk-cfgvm15x.js} +1 -1
  126. package/bundle/{chunk-v4xcysh0.js → chunk-chpr8ekb.js} +1 -1
  127. package/bundle/chunk-cjww2jmv.js +3 -0
  128. package/bundle/{chunk-m67tcnk4.js → chunk-ck2gfaba.js} +1 -1
  129. package/bundle/{chunk-9j1qqdr2.js → chunk-cphrgyp6.js} +1 -1
  130. package/bundle/{chunk-eb9mytjq.js → chunk-ctaze2hn.js} +1 -1
  131. package/bundle/{chunk-5qam3c8r.js → chunk-cxnfy6qk.js} +1 -1
  132. package/bundle/{chunk-cafzcmrg.js → chunk-d07p6fpk.js} +2 -2
  133. package/bundle/chunk-d0damw6y.js +2 -0
  134. package/bundle/{chunk-b8bytvka.js → chunk-d3ermm6d.js} +2 -2
  135. package/bundle/{chunk-4qqkqrn9.js → chunk-d6ry9418.js} +2 -2
  136. package/bundle/{chunk-sn4nez18.js → chunk-d9hbhkbq.js} +2 -2
  137. package/bundle/{chunk-ztc3gm8y.js → chunk-dactgryw.js} +1 -1
  138. package/bundle/chunk-dafmkrhn.js +2 -0
  139. package/bundle/{chunk-dfnv7vkn.js → chunk-db405hjg.js} +1 -1
  140. package/bundle/chunk-dgprdym0.js +2 -0
  141. package/bundle/{chunk-7yrhe3xq.js → chunk-dnwefyhv.js} +1 -1
  142. package/bundle/chunk-dryzt12j.js +2 -0
  143. package/bundle/chunk-dsamees2.js +2 -0
  144. package/bundle/{chunk-xpc2zgj7.js → chunk-dxpj0cxh.js} +2 -2
  145. package/bundle/{chunk-yjtdgcq5.js → chunk-dynv30gm.js} +1 -1
  146. package/bundle/chunk-dyqpxx3b.js +2 -0
  147. package/bundle/{chunk-2rs39vj2.js → chunk-e01wnqvc.js} +1 -1
  148. package/bundle/{chunk-2vepzgek.js → chunk-e10py6yr.js} +1 -1
  149. package/bundle/chunk-e5mv5wnt.js +2 -0
  150. package/bundle/{chunk-qv2s39dv.js → chunk-e7ny0b3x.js} +1 -1
  151. package/bundle/{chunk-n8h6x2en.js → chunk-ejrhvy38.js} +1 -1
  152. package/bundle/{chunk-dq9kpj4a.js → chunk-enpzvmtc.js} +1 -1
  153. package/bundle/chunk-ew9pdrp9.js +3 -0
  154. package/bundle/{chunk-gj3hzx3d.js → chunk-ezfy0b6q.js} +2 -2
  155. package/bundle/{chunk-2km50rd3.js → chunk-fgg9txzb.js} +1 -1
  156. package/bundle/{chunk-b9za12y1.js → chunk-fn9h4ync.js} +1 -1
  157. package/bundle/{chunk-ngchsw2g.js → chunk-fvzwbjh8.js} +1 -1
  158. package/bundle/{chunk-nzehfpxp.js → chunk-g10d6x57.js} +1 -1
  159. package/bundle/{chunk-zyhdxggp.js → chunk-g5rabwre.js} +2 -2
  160. package/bundle/{chunk-kfsb2stm.js → chunk-g7ccdh7r.js} +1 -1
  161. package/bundle/{chunk-phxrg7aw.js → chunk-gagtmjmp.js} +2 -2
  162. package/bundle/{chunk-yp0a8q29.js → chunk-gb00fh4z.js} +3 -3
  163. package/bundle/{chunk-hw1dmx28.js → chunk-gbpvs0fx.js} +1 -1
  164. package/bundle/{chunk-j8efst22.js → chunk-gj0wt0cy.js} +1 -1
  165. package/bundle/{chunk-2q96x1t5.js → chunk-gsar6xda.js} +1 -1
  166. package/bundle/{chunk-xs3xtz6x.js → chunk-gt31468k.js} +1 -1
  167. package/bundle/{chunk-ecn8gbtz.js → chunk-gwp17r03.js} +1 -1
  168. package/bundle/chunk-gwzw92jt.js +2 -0
  169. package/bundle/chunk-gz8sz7z1.js +9 -0
  170. package/bundle/{chunk-2bn4b42t.js → chunk-h2afsbm1.js} +1 -1
  171. package/bundle/{chunk-tj78jsp9.js → chunk-h4j5xzc8.js} +1 -1
  172. package/bundle/chunk-h6f3kbz2.js +2 -0
  173. package/bundle/{chunk-b3dqcbsc.js → chunk-hbbsbyyq.js} +1 -1
  174. package/bundle/{chunk-2gerf08b.js → chunk-hnvn2c25.js} +2 -2
  175. package/bundle/{chunk-vn7nkrqb.js → chunk-hnzegjgv.js} +1 -1
  176. package/bundle/chunk-hp7tssgv.js +2 -0
  177. package/bundle/chunk-ht0hbdmx.js +2 -0
  178. package/bundle/{chunk-j9pcnkkq.js → chunk-ht5w06x7.js} +2 -2
  179. package/bundle/{chunk-a1p2f16h.js → chunk-htz93dsd.js} +2 -2
  180. package/bundle/{chunk-q6ztpfcs.js → chunk-jbx3s7nw.js} +2 -2
  181. package/bundle/{chunk-hxz2rdjq.js → chunk-jdynx7m6.js} +1 -1
  182. package/bundle/{chunk-h9pvnp5c.js → chunk-jef04wyf.js} +1 -1
  183. package/bundle/{chunk-ct48575c.js → chunk-jh0bw59r.js} +1 -1
  184. package/bundle/{chunk-knpt9n8f.js → chunk-jrqb0jwy.js} +1 -1
  185. package/bundle/{chunk-1dwcga8g.js → chunk-js1n8tgv.js} +1 -1
  186. package/bundle/chunk-k1txw65h.js +2 -0
  187. package/bundle/chunk-k5atbdbm.js +2 -0
  188. package/bundle/chunk-k75jqg60.js +3 -0
  189. package/bundle/{chunk-yn6sbycg.js → chunk-k7aenxan.js} +2 -2
  190. package/bundle/{chunk-1rp1cvmc.js → chunk-kf167jw7.js} +1 -1
  191. package/bundle/{chunk-wsy0m70r.js → chunk-kfxv5rfg.js} +1 -1
  192. package/bundle/{chunk-btz9jvec.js → chunk-kj20f048.js} +1 -1
  193. package/bundle/{chunk-j5kb0y1m.js → chunk-kq6b222y.js} +1 -1
  194. package/bundle/{chunk-1t9jne14.js → chunk-ktzq4ha1.js} +1 -1
  195. package/bundle/{chunk-5v4py9p2.js → chunk-m2q317gh.js} +1 -1
  196. package/bundle/chunk-mahgmbt9.js +2 -0
  197. package/bundle/{chunk-1qshjfzm.js → chunk-mk1bfzg5.js} +1 -1
  198. package/bundle/{chunk-2y90ad1v.js → chunk-mqd1jsg2.js} +1 -1
  199. package/bundle/{chunk-t12xrrfr.js → chunk-mzs2pjyc.js} +2 -2
  200. package/bundle/{chunk-m02zt1a3.js → chunk-n9xns8by.js} +2 -2
  201. package/bundle/chunk-ngm6pqyt.js +2 -0
  202. package/bundle/chunk-ngtavamt.js +2 -0
  203. package/bundle/chunk-nkhc32s3.js +2 -0
  204. package/bundle/{chunk-wpajh5s5.js → chunk-nkkch4h7.js} +1 -1
  205. package/bundle/chunk-npse2xrd.js +2 -0
  206. package/bundle/{chunk-k7gq9bra.js → chunk-nv3eyyaj.js} +1 -1
  207. package/bundle/{chunk-ab6cabxh.js → chunk-p18axz0m.js} +1 -1
  208. package/bundle/{chunk-jje0srjq.js → chunk-p62gb4wj.js} +1 -1
  209. package/bundle/chunk-p6e4vqy7.js +2 -0
  210. package/bundle/{chunk-m1h5a4vg.js → chunk-p9qfbr02.js} +1 -1
  211. package/bundle/{chunk-ggqst87g.js → chunk-pe29yy6s.js} +1 -1
  212. package/bundle/{chunk-yy526n9c.js → chunk-pje60pj2.js} +1 -1
  213. package/bundle/{chunk-3n1324bt.js → chunk-pp2eqkse.js} +1 -1
  214. package/bundle/{chunk-x067eetw.js → chunk-pp6vhqrr.js} +1 -1
  215. package/bundle/chunk-pqkjhn8h.js +2 -0
  216. package/bundle/{chunk-ezja6njs.js → chunk-pv67gwce.js} +1 -1
  217. package/bundle/{chunk-b3rpzkcb.js → chunk-q7vasbxn.js} +1 -1
  218. package/bundle/chunk-qadw6j20.js +2 -0
  219. package/bundle/{chunk-89q1y7tc.js → chunk-qc8rsn4v.js} +1 -1
  220. package/bundle/chunk-qd8w2gkd.js +2 -0
  221. package/bundle/chunk-qggcszs2.js +2 -0
  222. package/bundle/{chunk-q1v2pytx.js → chunk-qrsveve6.js} +1 -1
  223. package/bundle/chunk-r7sqdfad.js +2 -0
  224. package/bundle/chunk-r8m7rtfc.js +2 -0
  225. package/bundle/{chunk-7ppd2phw.js → chunk-rbk8seme.js} +1 -1
  226. package/bundle/chunk-rf12t4n5.js +2 -0
  227. package/bundle/{chunk-04tw0r4s.js → chunk-rg0mrprz.js} +1 -1
  228. package/bundle/{chunk-cdhmc0t0.js → chunk-rjd8gbs5.js} +1 -1
  229. package/bundle/chunk-rkyf0cp8.js +2 -0
  230. package/bundle/chunk-rpgne7xh.js +2 -0
  231. package/bundle/chunk-rvgj1vky.js +2 -0
  232. package/bundle/{chunk-c01z3cvg.js → chunk-rvkrgkeq.js} +1 -1
  233. package/bundle/chunk-rza530gm.js +5 -0
  234. package/bundle/{chunk-2ahqhh4z.js → chunk-rzhdkkpz.js} +1 -1
  235. package/bundle/chunk-s3mnrhbx.js +5 -0
  236. package/bundle/chunk-s6ktx2sx.js +2 -0
  237. package/bundle/{chunk-kqn9h2gk.js → chunk-skqbaadf.js} +1 -1
  238. package/bundle/chunk-ss2jvqrg.js +2 -0
  239. package/bundle/{chunk-ydp0q1hk.js → chunk-ss2ms1r3.js} +1 -1
  240. package/bundle/{chunk-1fbeendk.js → chunk-t56r99hp.js} +1 -1
  241. package/bundle/{chunk-xc5044tm.js → chunk-t8m74g39.js} +1 -1
  242. package/bundle/{chunk-s6bar2f9.js → chunk-t9mz17gb.js} +2 -2
  243. package/bundle/{chunk-cvdxgsq1.js → chunk-tq0239xp.js} +1 -1
  244. package/bundle/{chunk-whxjkz9a.js → chunk-tqj69nh6.js} +2 -2
  245. package/bundle/{chunk-hj5y7fvk.js → chunk-tt30dybd.js} +1 -1
  246. package/bundle/{chunk-5a5t01ka.js → chunk-tvdmnee6.js} +1 -1
  247. package/bundle/chunk-tvwwq4b3.js +2 -0
  248. package/bundle/{chunk-dhjp0zx2.js → chunk-v1xjc3s8.js} +1 -1
  249. package/bundle/chunk-v2n26eg4.js +2 -0
  250. package/bundle/chunk-vcw00k0n.js +3 -0
  251. package/bundle/{chunk-7jbz3dgt.js → chunk-vhe0tth1.js} +1 -1
  252. package/bundle/{chunk-yfkvjphe.js → chunk-vvxmwyrw.js} +1 -1
  253. package/bundle/{chunk-p68rwmhc.js → chunk-vxyy2dp3.js} +2 -2
  254. package/bundle/{chunk-y2v09y71.js → chunk-vywnd5sf.js} +1 -1
  255. package/bundle/{chunk-0jgsp4c2.js → chunk-w18xs2h5.js} +1 -1
  256. package/bundle/{chunk-fjgyrsbw.js → chunk-w7vh8cxt.js} +1 -1
  257. package/bundle/chunk-w8saweey.js +2 -0
  258. package/bundle/chunk-we9cv8we.js +8 -0
  259. package/bundle/chunk-wezarrvy.js +2 -0
  260. package/bundle/{chunk-d6r4xwtg.js → chunk-wfb608qf.js} +3 -3
  261. package/bundle/{chunk-3g1yz39h.js → chunk-whe7h2mj.js} +1 -1
  262. package/bundle/chunk-wmqsdt2c.js +3 -0
  263. package/bundle/chunk-wqj0xasg.js +2 -0
  264. package/bundle/chunk-wr42tphe.js +2 -0
  265. package/bundle/chunk-x24y7qyd.js +2 -0
  266. package/bundle/{chunk-07g7cybt.js → chunk-x25zkrz7.js} +1 -1
  267. package/bundle/{chunk-tr8sf0dk.js → chunk-x3y2xzhn.js} +1 -1
  268. package/bundle/{chunk-27yxgy03.js → chunk-x4sp99g6.js} +1 -1
  269. package/bundle/{chunk-3nwve06r.js → chunk-x562b0xk.js} +1 -1
  270. package/bundle/{chunk-61c62e5s.js → chunk-x7k5yeey.js} +1 -1
  271. package/bundle/{chunk-fkgv2hqd.js → chunk-x9rbv6p6.js} +1 -1
  272. package/bundle/{chunk-wnqwb6fd.js → chunk-xcmgkc57.js} +1 -1
  273. package/bundle/chunk-xj765svc.js +3 -0
  274. package/bundle/{chunk-gm85xefs.js → chunk-xm7wascx.js} +1 -1
  275. package/bundle/{chunk-whcg14sc.js → chunk-xrs18kzn.js} +1 -1
  276. package/bundle/{chunk-6nbzdb0r.js → chunk-xthkjax9.js} +1 -1
  277. package/bundle/{chunk-scnz207s.js → chunk-xvwvd4kq.js} +2 -2
  278. package/bundle/{chunk-zb0me4kk.js → chunk-xzrb857v.js} +1 -1
  279. package/bundle/chunk-y2d0w09y.js +2 -0
  280. package/bundle/{chunk-3nyqh1d6.js → chunk-y3b4k38p.js} +1 -1
  281. package/bundle/{chunk-svvgv1s0.js → chunk-y6123zvq.js} +1 -1
  282. package/bundle/chunk-y7sy3w6z.js +2 -0
  283. package/bundle/{chunk-vg2fmyje.js → chunk-y9q0hb7b.js} +2 -2
  284. package/bundle/chunk-yb79f79m.js +2 -0
  285. package/bundle/{chunk-fnbpap62.js → chunk-yek0sk2q.js} +1 -1
  286. package/bundle/{chunk-wfs4pcwa.js → chunk-ygs5pzk7.js} +4 -4
  287. package/bundle/{chunk-3bmzjznz.js → chunk-yhbcbjfk.js} +1 -1
  288. package/bundle/{chunk-sermjas1.js → chunk-yjf3kyej.js} +1 -1
  289. package/bundle/chunk-yjnyzpmt.js +2 -0
  290. package/bundle/{chunk-0a0vat1h.js → chunk-yp5bypsp.js} +2 -2
  291. package/bundle/{chunk-h0rpmne5.js → chunk-yp8wyzzm.js} +1 -1
  292. package/bundle/chunk-yqbcnsa1.js +2 -0
  293. package/bundle/{chunk-4xh1qm90.js → chunk-yv0xrnn9.js} +1 -1
  294. package/bundle/chunk-z3mra3nm.js +2 -0
  295. package/bundle/chunk-za7mwbye.js +2 -0
  296. package/bundle/chunk-zaks8cae.js +11 -0
  297. package/bundle/{chunk-0fmbz83g.js → chunk-zcsgqk9f.js} +1 -1
  298. package/bundle/chunk-zqqx96jx.js +3 -0
  299. package/bundle/{chunk-snm5q21k.js → chunk-zs8kqdsf.js} +2 -2
  300. package/bundle/{chunk-y062spw2.js → chunk-zscer8rc.js} +1 -1
  301. package/bundle/{chunk-qjjch1zt.js → chunk-zw815d68.js} +2 -2
  302. package/bundle/chunk-zy9w1vkc.js +2 -0
  303. package/bundle/index.js +3 -3
  304. package/bundle/parser.worker.js +2 -2
  305. package/bundle/worker.js +1 -1
  306. package/package.json +1 -1
  307. package/bundle/chunk-07ws99b1.js +0 -2
  308. package/bundle/chunk-09c4ngag.js +0 -2
  309. package/bundle/chunk-0ch32p4c.js +0 -3
  310. package/bundle/chunk-0jgst767.js +0 -2
  311. package/bundle/chunk-0psrr9vp.js +0 -2
  312. package/bundle/chunk-1j73cnvz.js +0 -2
  313. package/bundle/chunk-1yddn03z.js +0 -2
  314. package/bundle/chunk-27dgtm8r.js +0 -2
  315. package/bundle/chunk-2ec6ps8r.js +0 -5
  316. package/bundle/chunk-38g8yzw0.js +0 -2
  317. package/bundle/chunk-3bkd0ar3.js +0 -2
  318. package/bundle/chunk-3f4zht9e.js +0 -2
  319. package/bundle/chunk-3pxnp6jb.js +0 -2
  320. package/bundle/chunk-3szwfy7w.js +0 -3
  321. package/bundle/chunk-426dt7be.js +0 -2
  322. package/bundle/chunk-4amgp4yd.js +0 -3
  323. package/bundle/chunk-4p5e5tsz.js +0 -28
  324. package/bundle/chunk-4pjm21a5.js +0 -2
  325. package/bundle/chunk-4sz3jbc5.js +0 -2
  326. package/bundle/chunk-58x5seqn.js +0 -2
  327. package/bundle/chunk-5xe6x2rt.js +0 -2
  328. package/bundle/chunk-618tmyx9.js +0 -2
  329. package/bundle/chunk-6d9wsjxm.js +0 -2
  330. package/bundle/chunk-730a2d1k.js +0 -2
  331. package/bundle/chunk-76wrw0cs.js +0 -2
  332. package/bundle/chunk-7bd0x9vf.js +0 -2
  333. package/bundle/chunk-7czkntef.js +0 -2
  334. package/bundle/chunk-7ex57nyh.js +0 -2
  335. package/bundle/chunk-7gpczxbh.js +0 -2
  336. package/bundle/chunk-7j0bgeh2.js +0 -2
  337. package/bundle/chunk-7py443fe.js +0 -2
  338. package/bundle/chunk-90q5sae0.js +0 -2
  339. package/bundle/chunk-9amwe0ed.js +0 -2
  340. package/bundle/chunk-9grvepmd.js +0 -2
  341. package/bundle/chunk-9hrh15p2.js +0 -2
  342. package/bundle/chunk-a0v55ywn.js +0 -8
  343. package/bundle/chunk-a2qz9m10.js +0 -2
  344. package/bundle/chunk-av6ezvxm.js +0 -2
  345. package/bundle/chunk-beksar7w.js +0 -2
  346. package/bundle/chunk-bg66rqrx.js +0 -2
  347. package/bundle/chunk-bn15mzd7.js +0 -2
  348. package/bundle/chunk-bt6yw07v.js +0 -2
  349. package/bundle/chunk-cy9s1ma5.js +0 -2
  350. package/bundle/chunk-d0nkvp57.js +0 -2
  351. package/bundle/chunk-dvk2wwjj.js +0 -2
  352. package/bundle/chunk-dxe29jj6.js +0 -2
  353. package/bundle/chunk-e0jy9qxd.js +0 -2
  354. package/bundle/chunk-eercqt72.js +0 -2
  355. package/bundle/chunk-efxd6b2k.js +0 -2
  356. package/bundle/chunk-eneawsj8.js +0 -2
  357. package/bundle/chunk-f72pppr7.js +0 -2
  358. package/bundle/chunk-feyphhxd.js +0 -2
  359. package/bundle/chunk-fnnch1e9.js +0 -2
  360. package/bundle/chunk-ft93f33g.js +0 -3
  361. package/bundle/chunk-gk34kh8p.js +0 -2
  362. package/bundle/chunk-gn50xqbd.js +0 -2
  363. package/bundle/chunk-h6rv626m.js +0 -2
  364. package/bundle/chunk-h7s2w1e2.js +0 -2
  365. package/bundle/chunk-hmv2cdnz.js +0 -2
  366. package/bundle/chunk-ht81ensf.js +0 -2
  367. package/bundle/chunk-hxpgs78j.js +0 -5
  368. package/bundle/chunk-j59ktwny.js +0 -2
  369. package/bundle/chunk-jmz2mq3t.js +0 -2
  370. package/bundle/chunk-jvqbvgjy.js +0 -11
  371. package/bundle/chunk-k309zez0.js +0 -3
  372. package/bundle/chunk-k3fn3yed.js +0 -2
  373. package/bundle/chunk-kpw6nghv.js +0 -2
  374. package/bundle/chunk-m5ghbt5y.js +0 -2
  375. package/bundle/chunk-mj4bepvj.js +0 -2
  376. package/bundle/chunk-mn41f9qv.js +0 -2
  377. package/bundle/chunk-mqjf9sbm.js +0 -2
  378. package/bundle/chunk-n5gwrrbb.js +0 -2
  379. package/bundle/chunk-nfjhem1c.js +0 -2
  380. package/bundle/chunk-ngytjdg2.js +0 -3
  381. package/bundle/chunk-nj4d554m.js +0 -11
  382. package/bundle/chunk-nrc3bj9p.js +0 -2
  383. package/bundle/chunk-nt4e3em9.js +0 -3
  384. package/bundle/chunk-nxyyn2ra.js +0 -2
  385. package/bundle/chunk-p5tceb4k.js +0 -2
  386. package/bundle/chunk-pvpy9kq1.js +0 -800
  387. package/bundle/chunk-qjgm3e2p.js +0 -2
  388. package/bundle/chunk-qt80mhdn.js +0 -2
  389. package/bundle/chunk-qtw5nrr4.js +0 -2
  390. package/bundle/chunk-rc9ex3vt.js +0 -2
  391. package/bundle/chunk-s9672vvv.js +0 -2
  392. package/bundle/chunk-sbyey0qb.js +0 -2
  393. package/bundle/chunk-shpq6es1.js +0 -3
  394. package/bundle/chunk-sj5v361q.js +0 -2
  395. package/bundle/chunk-ta3k9syc.js +0 -2
  396. package/bundle/chunk-tk5afan4.js +0 -2
  397. package/bundle/chunk-tpndnprb.js +0 -2
  398. package/bundle/chunk-v965rsr8.js +0 -3
  399. package/bundle/chunk-vcmrrt8b.js +0 -3
  400. package/bundle/chunk-vcrn3v70.js +0 -2
  401. package/bundle/chunk-vwxfgea7.js +0 -2
  402. package/bundle/chunk-w0kgcz1t.js +0 -2
  403. package/bundle/chunk-wgpsmxqx.js +0 -7
  404. package/bundle/chunk-wksczmes.js +0 -2
  405. package/bundle/chunk-wsxta33r.js +0 -2
  406. package/bundle/chunk-xck0sq3k.js +0 -2
  407. package/bundle/chunk-xjyhtm8r.js +0 -2
  408. package/bundle/chunk-xm08fc2q.js +0 -3
  409. package/bundle/chunk-ygc5qegv.js +0 -2
  410. package/bundle/chunk-yjqmzm51.js +0 -2
  411. package/bundle/chunk-yzc53n88.js +0 -2
  412. package/bundle/chunk-yzjc15vp.js +0 -9
  413. package/bundle/chunk-z7y9pdj7.js +0 -2
  414. package/bundle/chunk-z8g819cz.js +0 -2
  415. package/bundle/chunk-z8r65yw3.js +0 -2
  416. package/bundle/chunk-zt1nbwmm.js +0 -2
  417. package/bundle/chunk-zz36xg2n.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{bg as In,cg as a2,dg as d2,eg as o2,fg as x2,gg as t2,hg as b2,ig as e2,jg as s2,kg as f2,lg as k2,og as nA}from"./chunk-bpbptx89.js";import{pg as Er,qg as R2}from"./chunk-2y90ad1v.js";import{Cg as P2,zg as U2}from"./chunk-yzjc15vp.js";import{Ig as Sc}from"./chunk-4amgp4yd.js";import{Kg as Ey}from"./chunk-scnz207s.js";import{Lg as fj}from"./chunk-b8bytvka.js";import{$g as gl,Mg as _n,Tg as Xr,Ug as Km,Wg as Hm,Xg as xi,Yg as ai,Zg as im,_g as Ll,ah as b0,bh as Zm,ch as S2,dh as Dr,eh as jn,fh as Wr,hh as e}from"./chunk-ddnpx1yx.js";import{Ah as bc,Ih as y2,Jh as ql,Qh as tc,Rh as _l,Uh as Ml,Vh as yn,ih as Tl,jh as zl,kh as ui,oh as hl,vh as mm,yh as _r}from"./chunk-wfs4pcwa.js";import{$j as f0,Cl as J,Dl as mr,Wk as Pn,Xj as wr,Xk as Qr,Yj as Y2,Zj as J2,ak as qn,bk as K2,fk as sj,fl as qr,gk as tr,gl as _i,hk as Zr,hl as jA,ik as Q1,jk as yr,kk as br,lk as Si,mk as pi,ml as c2,pk as Ym,rl as ir,sl as Cr,tl as vr,vl as w1,wl as j0,xk as A2,yk as lr,zk as er}from"./chunk-pvpy9kq1.js";import{Fl as ul,Pl as uI}from"./chunk-wpajh5s5.js";import{Ql as Lr,Ul as tj,Vl as nr,Wl as Xi,Xl as Ki,am as iA,bm as b,dm as Ci,fm as l0,jm as Gr,lm as M}from"./chunk-2ec6ps8r.js";import{xm as yi}from"./chunk-gj3hzx3d.js";import{Bn as Li,Dn as dj,Gn as d,In as nm,Jn as g2,Kn as z2,On as M2,Pn as fn,co as c0}from"./chunk-nj4d554m.js";import{Jp as rm,Op as D2}from"./chunk-a0v55ywn.js";import{aq as F}from"./chunk-1sgby720.js";import{ds as tI,es as bI,fs as Dn}from"./chunk-sn4nez18.js";import{os as sI,ps as fI}from"./chunk-42f7p0hq.js";import{$s as eI,Ks as B0,Ls as Pr,Ms as CI,Ns as o0,Os as WI,Ps as XI,Qs as KI,Rs as HI,Ss as zr,Ts as Ql,Us as x0,Vs as ZI,Ws as VI,Xs as YI,Ys as JI,Zs as k0,_s as RI,at as OI,bt as LI,ct as qI,dt as q1,et as Im,vs as PI,ys as Wn}from"./chunk-4qqkqrn9.js";import{qt as En}from"./chunk-12bssxd4.js";import{Ft as pI,ou as Vi,pu as k,tt as mA,yu as _}from"./chunk-3szwfy7w.js";import{Cu as m0,Nu as kl,Ou as yA,Su as Wi}from"./chunk-whxjkz9a.js";import{Uu as I}from"./chunk-k309zez0.js";import{NA as mI,OA as cI,mA as ji}from"./chunk-phxrg7aw.js";import{$I as EI,$L as ml,AL as Nl,BI as Pl,BM as Zn,EL as f1,FD as u1,FM as Cn,HH as Gl,HM as Fr,IB as gi,JC as Dl,LC as x1,MD as $r,MG as J0,MH as $m,ML as rI,ND as V0,NH as wI,OF as Sm,OH as Ul,OL as iI,PD as or,PI as C,PL as nI,QD as Ai,RC as k1,RD as O0,RH as z1,SC as p1,SG as t,TD as Um,TI as $I,TL as W0,UC as Qm,UD as Il,VD as vl,VI as GI,VL as X0,WD as Mr,WI as Ln,XD as Am,XI as Cl,XL as Pm,YD as a1,ZD as Zi,ZG as vm,ZL as El,_C as II,_G as wm,_I as NI,aH as AI,aK as DI,cG as g1,dM as X1,eH as Ti,eJ as QI,eP as UI,fJ as S0,gG as Y0,hJ as d1,iB as Ii,iH as SI,iJ as A0,iO as gr,jJ as t1,kB as Xl,kH as h0,kJ as Al,kO as cl,lB as Fi,lJ as Sl,lO as H0,mD as MI,mG as T,mJ as b1,mM as Dm,nJ as e1,oD as Mi,oH as R0,oJ as W1,pB as o1,pJ as ec,pO as g,qJ as wl,rB as P1,rJ as s1,rM as sc,uH as hi,uM as jm,wD as O1,xD as L1,zD as K0,zH as vI,zL as T0}from"./chunk-snm5q21k.js";import{$P as jv,aQ as rr,bQ as Nr,dQ as bi}from"./chunk-aztre27e.js";var pm=rr((By)=>{Object.defineProperty(By,"__esModule",{value:!0});By.default=aA;var Ty=/[A-Z]/g;function hy(r){return r.toLowerCase()}function aA(r,i){let n=r.replace(Ty,hy),m=i.replace(Ty,hy);return n===m}});var Zc=rr((oy)=>{Object.defineProperty(oy,"__esModule",{value:!0});oy.DnsTxt=void 0;class Hc{constructor(r={}){this.binary=r?r.binary:!1}encode(r={}){return Object.entries(r).map(([i,n])=>{let m=`${i}=${n}`;return Buffer.from(m)})}decode(r){var i={};try{let m=r.toString().split(/=(.+)/),c=m[0],l=m[1];i[c]=l}catch(n){}return i}decodeAll(r){return r.filter((i)=>i.length>1).map((i)=>this.decode(i)).reduce((i,n)=>{var m=i;let[c]=Object.keys(n),[l]=Object.values(n);return m[c]=l,m},{})}}oy.DnsTxt=Hc;oy.default=Hc});var Vc=rr((py)=>{Object.defineProperty(py,"__esModule",{value:!0});py.toType=py.toString=void 0;var ky=(r)=>{return"_"+r},bA=(r)=>{return["name","protocol","subtype"].includes(r)},eA=(r)=>{let i={name:r.name,protocol:r.protocol,subtype:r.subtype};return Object.entries(i).filter(([m,c])=>bA(m)&&c!==void 0).reduce((m,[c,l])=>{switch(typeof l){case"object":l.map((y)=>m.push(ky(y)));break;default:m.push(ky(l));break}return m},[]).join(".")};py.toString=eA;var sA=(r)=>{let i=r.split("."),n;for(let m in i){if(i[m][0]!=="_")continue;i[m]=i[m].slice(1)}if(i.includes("sub"))n=i.shift(),i.shift();return{name:i.shift(),protocol:i.shift()||null,subtype:n}};py.toType=sA});var Jc=rr((ti)=>{var dy=ti&&ti.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ti,"__esModule",{value:!0});ti.Service=void 0;var ay=dy(bi("os")),rS=dy(Zc()),iS=bi("events"),nS=Vc(),um=".local";class Yc extends iS.EventEmitter{constructor(r){super();if(this.probe=!0,this.published=!1,this.activated=!1,this.destroyed=!1,this.txtService=new rS.default,!r.name)throw Error("ServiceConfig requires `name` property to be set");if(!r.type)throw Error("ServiceConfig requires `type` property to be set");if(!r.port)throw Error("ServiceConfig requires `port` property to be set");this.name=r.name.split(".").join("-"),this.protocol=r.protocol||"tcp",this.type=(0,nS.toString)({name:r.type,protocol:this.protocol}),this.port=r.port,this.host=r.host||ay.default.hostname(),this.fqdn=`${this.name}.${this.type}${um}`,this.txt=r.txt,this.subtypes=r.subtypes,this.disableIPv6=!!r.disableIPv6}records(){var r=[this.RecordPTR(this),this.RecordSRV(this),this.RecordTXT(this)];for(let n of this.subtypes||[])r.push(this.RecordSubtypePTR(this,n));let i=Object.values(ay.default.networkInterfaces());for(let n of i){let m=n;for(let c of m){if(c.internal||c.mac==="00:00:00:00:00:00")continue;switch(c.family){case"IPv4":r.push(this.RecordA(this,c.address));break;case"IPv6":if(this.disableIPv6)break;r.push(this.RecordAAAA(this,c.address));break}}}return r}RecordPTR(r){return{name:`${r.type}${um}`,type:"PTR",ttl:28800,data:r.fqdn}}RecordSubtypePTR(r,i){return{name:`_${i}._sub.${r.type}${um}`,type:"PTR",ttl:28800,data:`${r.name}.${r.type}${um}`}}RecordSRV(r){return{name:r.fqdn,type:"SRV",ttl:120,data:{port:r.port,target:r.host}}}RecordTXT(r){return{name:r.fqdn,type:"TXT",ttl:4500,data:this.txtService.encode(r.txt)}}RecordA(r,i){return{name:r.host,type:"A",ttl:120,data:i}}RecordAAAA(r,i){return{name:r.host,type:"AAAA",ttl:120,data:i}}}ti.Service=Yc;ti.default=Yc});var by=rr((ei)=>{var ty=ei&&ei.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ei,"__esModule",{value:!0});ei.Registry=void 0;var mS=ty(pm()),Rc=ty(Jc()),cS=3600000,lS=3,yS=function(){};class Oc{constructor(r){this.services=[],this.server=r}publish(r){function i(c,l,y){if(c.activated)return;if(c.activated=!0,l.services.push(c),!(c instanceof Rc.default))return;if(y===null||y===void 0?void 0:y.probe)l.probe(l.server.mdns,c,(j)=>{if(j){if(c.stop!==void 0)c.stop();console.log(Error("Service name is already in use on the network"));return}l.announce(l.server,c)});else l.announce(l.server,c)}function n(c,l,y){if(!y)y=yS;if(!c.activated)return process.nextTick(y);if(!(c instanceof Rc.default))return process.nextTick(y);l.teardown(l.server,c,y);let j=l.services.indexOf(c);if(j!==-1)l.services.splice(j,1)}let m=new Rc.default(r);return m.start=i.bind(null,m,this),m.stop=n.bind(null,m,this),m.start({probe:r.probe!==!1}),m}unpublishAll(r){this.teardown(this.server,this.services,r),this.services=[]}destroy(){this.services.map((r)=>r.destroyed=!0)}probe(r,i,n){var m=!1,c=0,l;let y=()=>{if(!i.activated||i.destroyed)return;r.query(i.fqdn,"ANY",function(){m=!0,l=setTimeout(++c<3?y:S,250),l.unref()})},j=(v)=>{if(!m)return;if(v.answers.some(A)||v.additionals.some(A))S(!0)},A=(v)=>{return(0,mS.default)(v.name,i.fqdn)},S=(v)=>{r.removeListener("response",j),clearTimeout(l),n(!!v)};r.on("response",j),setTimeout(y,Math.random()*250)}announce(r,i){var n=1000,m=i.records();r.register(m);let c=()=>{if(!i.activated||i.destroyed)return;r.mdns.respond(m,function(){if(!i.published)i.activated=!0,i.published=!0,i.emit("up");if(n=n*lS,n<cS&&!i.destroyed)setTimeout(c,n).unref()})};c()}teardown(r,i,n){if(!Array.isArray(i))i=[i];i=i.filter((c)=>c.activated);var m=i.flatMap(function(c){c.activated=!1;var l=c.records();return l.forEach((y)=>{y.ttl=0}),l});if(m.length===0)return n&&process.nextTick(n);r.unregister(m),r.mdns.respond(m,function(){if(i.forEach(function(c){c.published=!1}),typeof n==="function")n.apply(null,arguments)})}}ei.Registry=Oc;ei.default=Oc});var ey=rr((jS)=>{jS.toString=function(r){switch(r){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+r};jS.toType=function(r){switch(r.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(r.toUpperCase().startsWith("UNKNOWN_"))return parseInt(r.slice(8));return 0}});var sy=rr((SS)=>{SS.toString=function(r){switch(r){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+r};SS.toRcode=function(r){switch(r.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var fy=rr(($S)=>{$S.toString=function(r){switch(r){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+r};$S.toOpcode=function(r){switch(r.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var rj=rr((ES)=>{ES.toString=function(r){switch(r){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+r};ES.toClass=function(r){switch(r.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var ij=rr((US)=>{US.toString=function(r){switch(r){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(r<0)return null;return`OPTION_${r}`};US.toCode=function(r){if(typeof r==="number")return r;if(!r)return-1;switch(r.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let i=r.match(/_(\d+)$/);if(i)return parseInt(i[1],10);return-1}});var cj=rr((mj,Lc)=>{var nj=function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.decode=w,r.encode=v,r.familyOf=S,r.name=void 0,r.sizeOf=A,r.v6=r.v4=void 0;let i=/^(\d{1,3}\.){3,3}\d{1,3}$/,n=4,m=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,c=16,l={name:"v4",size:n,isFormat:(N)=>i.test(N),encode(N,E,Q){Q=~~Q,E=E||new Uint8Array(Q+n);let W=N.length,Z=0;for(let X=0;X<W;){let K=N.charCodeAt(X++);if(K===46)E[Q++]=Z,Z=0;else Z=Z*10+(K-48)}return E[Q]=Z,E},decode(N,E){return E=~~E,`${N[E++]}.${N[E++]}.${N[E++]}.${N[E]}`}};r.v4=l;let y={name:"v6",size:c,isFormat:(N)=>N.length>0&&m.test(N),encode(N,E,Q){Q=~~Q;let W=Q+c,Z=-1,X=0,K=0,R=!0,q=!1;E=E||new Uint8Array(Q+c);for(let z=0;z<N.length;z++){let L=N.charCodeAt(z);if(L===58){if(R){if(Z!==-1){if(Q<W)E[Q]=0;if(Q<W-1)E[Q+1]=0;Q+=2}else if(Q<W)Z=Q}else{if(q===!0){if(Q<W)E[Q]=K;Q++}else{if(Q<W)E[Q]=X>>8;if(Q<W-1)E[Q+1]=X&255;Q+=2}X=0,K=0}R=!0,q=!1}else if(L===46){if(Q<W)E[Q]=K;Q++,K=0,X=0,R=!1,q=!0}else{if(R=!1,L>=97)L-=87;else if(L>=65)L-=55;else L-=48,K=K*10+L;X=(X<<4)+L}}if(R===!1)if(q===!0){if(Q<W)E[Q]=K;Q++}else{if(Q<W)E[Q]=X>>8;if(Q<W-1)E[Q+1]=X&255;Q+=2}else if(Z===0){if(Q<W)E[Q]=0;if(Q<W-1)E[Q+1]=0;Q+=2}else if(Z!==-1){Q+=2;for(let z=Math.min(Q-1,W-1);z>=Z+2;z--)E[z]=E[z-2];E[Z]=0,E[Z+1]=0,Z=Q}if(Z!==Q&&Z!==-1){if(Q>W-2)Q=W-2;while(W>Z)E[--W]=Q<W&&Q>Z?E[--Q]:0}else while(Q<W)E[Q++]=0;return E},decode(N,E){E=~~E;let Q="";for(let W=0;W<c;W+=2){if(W!==0)Q+=":";Q+=(N[E+W]<<8|N[E+W+1]).toString(16)}return Q.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};r.v6=y;let j="ip";r.name=j;function A(N){if(l.isFormat(N))return l.size;if(y.isFormat(N))return y.size;throw Error(`Invalid ip address: ${N}`)}function S(N){return A(N)===l.size?1:2}function v(N,E,Q){Q=~~Q;let W=A(N);if(typeof E==="function")E=E(Q+W);if(W===l.size)return l.encode(N,E,Q);return y.encode(N,E,Q)}function w(N,E,Q){if(E=~~E,Q=Q||N.length-E,Q===l.size)return l.decode(N,E,Q);if(Q===y.size)return y.decode(N,E,Q);throw Error(`Invalid buffer size needs to be ${l.size} for v4 or ${y.size} for v6.`)}return"default"in r?r.default:r}({});if(typeof define==="function"&&define.amd)define([],function(){return nj});else if(typeof Lc==="object"&&typeof mj==="object")Lc.exports=nj});var lj=rr((ZS)=>{var Y=bi("buffer").Buffer,Pi=ey(),WS=sy(),XS=fy(),dm=rj(),Fc=ij(),si=cj(),H=ZS.name={};H.encode=function(r,i,n,{mail:m=!1}={}){if(!i)i=Y.alloc(H.encodingLength(r));if(!n)n=0;let c=n,l=r.replace(/^\.|\.$/gm,"");if(l.length){let y=[];if(m){let j="";l.split(".").forEach((A)=>{if(A.endsWith("\\"))j+=(j.length?".":"")+A.slice(0,-1);else if(y.length===0&&j.length)y.push(j+"."+A);else y.push(A)})}else y=l.split(".");for(let j=0;j<y.length;j++){let A=i.write(y[j],n+1);i[n]=A,n+=A+1}}return i[n++]=0,H.encode.bytes=n-c,i};H.encode.bytes=0;H.decode=function(r,i,{mail:n=!1}={}){if(!i)i=0;let m=[],c=i,l=0,y=0,j=!1;while(!0){if(i>=r.length)throw Error("Cannot decode name (buffer overflow)");let A=r[i++];if(y+=j?0:1,A===0)break;else if((A&192)===0){if(i+A>r.length)throw Error("Cannot decode name (buffer overflow)");if(l+=A+1,l>254)throw Error("Cannot decode name (name too long)");let S=r.toString("utf-8",i,i+A);if(n)S=S.replace(/\./g,"\\.");m.push(S),i+=A,y+=j?0:A}else if((A&192)===192){if(i+1>r.length)throw Error("Cannot decode name (buffer overflow)");let S=r.readUInt16BE(i-1)-49152;if(S>=c)throw Error("Cannot decode name (bad pointer)");i=S,c=S,y+=j?0:1,j=!0}else throw Error("Cannot decode name (bad label)")}return H.decode.bytes=y,m.length===0?".":m.join(".")};H.decode.bytes=0;H.encodingLength=function(r){if(r==="."||r==="..")return 1;return Y.byteLength(r.replace(/^\.|\.$/gm,""))+2};var O={};O.encode=function(r,i,n){if(!i)i=Y.alloc(O.encodingLength(r));if(!n)n=0;let m=i.write(r,n+1);return i[n]=m,O.encode.bytes=m+1,i};O.encode.bytes=0;O.decode=function(r,i){if(!i)i=0;let n=r[i],m=r.toString("utf-8",i+1,i+1+n);return O.decode.bytes=n+1,m};O.decode.bytes=0;O.encodingLength=function(r){return Y.byteLength(r)+1};var ar={};ar.encode=function(r,i,n){if(!i)i=ar.encodingLength(r);if(!n)n=0;let m=(r.flags||0)&32767,c=r.type==="response"?32768:0;return i.writeUInt16BE(r.id||0,n),i.writeUInt16BE(m|c,n+2),i.writeUInt16BE(r.questions.length,n+4),i.writeUInt16BE(r.answers.length,n+6),i.writeUInt16BE(r.authorities.length,n+8),i.writeUInt16BE(r.additionals.length,n+10),i};ar.encode.bytes=12;ar.decode=function(r,i){if(!i)i=0;if(r.length<12)throw Error("Header must be 12 bytes");let n=r.readUInt16BE(i+2);return{id:r.readUInt16BE(i),type:n&32768?"response":"query",flags:n&32767,flag_qr:(n>>15&1)===1,opcode:XS.toString(n>>11&15),flag_aa:(n>>10&1)===1,flag_tc:(n>>9&1)===1,flag_rd:(n>>8&1)===1,flag_ra:(n>>7&1)===1,flag_z:(n>>6&1)===1,flag_ad:(n>>5&1)===1,flag_cd:(n>>4&1)===1,rcode:WS.toString(n&15),questions:Array(r.readUInt16BE(i+4)),answers:Array(r.readUInt16BE(i+6)),authorities:Array(r.readUInt16BE(i+8)),additionals:Array(r.readUInt16BE(i+10))}};ar.decode.bytes=12;ar.encodingLength=function(){return 12};var vi=ZS.unknown={};vi.encode=function(r,i,n){if(!i)i=Y.alloc(vi.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(r.length,n),r.copy(i,n+2),vi.encode.bytes=r.length+2,i};vi.encode.bytes=0;vi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m=r.slice(i+2,i+2+n);return vi.decode.bytes=n+2,m};vi.decode.bytes=0;vi.encodingLength=function(r){return r.length+2};var wi=ZS.ns={};wi.encode=function(r,i,n){if(!i)i=Y.alloc(wi.encodingLength(r));if(!n)n=0;return H.encode(r,i,n+2),i.writeUInt16BE(H.encode.bytes,n),wi.encode.bytes=H.encode.bytes+2,i};wi.encode.bytes=0;wi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m=H.decode(r,i+2);return wi.decode.bytes=n+2,m};wi.decode.bytes=0;wi.encodingLength=function(r){return H.encodingLength(r)+2};var $i=ZS.soa={};$i.encode=function(r,i,n){if(!i)i=Y.alloc($i.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.mname,i,n),n+=H.encode.bytes,H.encode(r.rname,i,n,{mail:!0}),n+=H.encode.bytes,i.writeUInt32BE(r.serial||0,n),n+=4,i.writeUInt32BE(r.refresh||0,n),n+=4,i.writeUInt32BE(r.retry||0,n),n+=4,i.writeUInt32BE(r.expire||0,n),n+=4,i.writeUInt32BE(r.minimum||0,n),n+=4,i.writeUInt16BE(n-m-2,m),$i.encode.bytes=n-m,i};$i.encode.bytes=0;$i.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.mname=H.decode(r,i),i+=H.decode.bytes,m.rname=H.decode(r,i,{mail:!0}),i+=H.decode.bytes,m.serial=r.readUInt32BE(i),i+=4,m.refresh=r.readUInt32BE(i),i+=4,m.retry=r.readUInt32BE(i),i+=4,m.expire=r.readUInt32BE(i),i+=4,m.minimum=r.readUInt32BE(i),i+=4,$i.decode.bytes=i-n,m};$i.decode.bytes=0;$i.encodingLength=function(r){return 22+H.encodingLength(r.mname)+H.encodingLength(r.rname)};var Gi=ZS.txt={};Gi.encode=function(r,i,n){if(!Array.isArray(r))r=[r];for(let c=0;c<r.length;c++){if(typeof r[c]==="string")r[c]=Y.from(r[c]);if(!Y.isBuffer(r[c]))throw Error("Must be a Buffer")}if(!i)i=Y.alloc(Gi.encodingLength(r));if(!n)n=0;let m=n;return n+=2,r.forEach(function(c){i[n++]=c.length,c.copy(i,n,0,c.length),n+=c.length}),i.writeUInt16BE(n-m-2,m),Gi.encode.bytes=n-m,i};Gi.encode.bytes=0;Gi.decode=function(r,i){if(!i)i=0;let n=i,m=r.readUInt16BE(i);i+=2;let c=[];while(m>0){let l=r[i++];if(--m,m<l)throw Error("Buffer overflow");c.push(r.slice(i,i+l)),i+=l,m-=l}return Gi.decode.bytes=i-n,c};Gi.decode.bytes=0;Gi.encodingLength=function(r){if(!Array.isArray(r))r=[r];let i=2;return r.forEach(function(n){if(typeof n==="string")i+=Y.byteLength(n)+1;else i+=n.length+1}),i};var Ni=ZS.null={};Ni.encode=function(r,i,n){if(!i)i=Y.alloc(Ni.encodingLength(r));if(!n)n=0;if(typeof r==="string")r=Y.from(r);if(!r)r=Y.alloc(0);let m=n;n+=2;let c=r.length;return r.copy(i,n,0,c),n+=c,i.writeUInt16BE(n-m-2,m),Ni.encode.bytes=n-m,i};Ni.encode.bytes=0;Ni.decode=function(r,i){if(!i)i=0;let n=i,m=r.readUInt16BE(i);i+=2;let c=r.slice(i,i+m);return i+=m,Ni.decode.bytes=i-n,c};Ni.decode.bytes=0;Ni.encodingLength=function(r){if(!r)return 2;return(Y.isBuffer(r)?r.length:Y.byteLength(r))+2};var Ei=ZS.hinfo={};Ei.encode=function(r,i,n){if(!i)i=Y.alloc(Ei.encodingLength(r));if(!n)n=0;let m=n;return n+=2,O.encode(r.cpu,i,n),n+=O.encode.bytes,O.encode(r.os,i,n),n+=O.encode.bytes,i.writeUInt16BE(n-m-2,m),Ei.encode.bytes=n-m,i};Ei.encode.bytes=0;Ei.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.cpu=O.decode(r,i),i+=O.decode.bytes,m.os=O.decode(r,i),i+=O.decode.bytes,Ei.decode.bytes=i-n,m};Ei.decode.bytes=0;Ei.encodingLength=function(r){return O.encodingLength(r.cpu)+O.encodingLength(r.os)+2};var pr=ZS.ptr={},KS=ZS.cname=pr,HS=ZS.dname=pr;pr.encode=function(r,i,n){if(!i)i=Y.alloc(pr.encodingLength(r));if(!n)n=0;return H.encode(r,i,n+2),i.writeUInt16BE(H.encode.bytes,n),pr.encode.bytes=H.encode.bytes+2,i};pr.encode.bytes=0;pr.decode=function(r,i){if(!i)i=0;let n=H.decode(r,i+2);return pr.decode.bytes=H.decode.bytes+2,n};pr.decode.bytes=0;pr.encodingLength=function(r){return H.encodingLength(r)+2};var Qi=ZS.srv={};Qi.encode=function(r,i,n){if(!i)i=Y.alloc(Qi.encodingLength(r));if(!n)n=0;i.writeUInt16BE(r.priority||0,n+2),i.writeUInt16BE(r.weight||0,n+4),i.writeUInt16BE(r.port||0,n+6),H.encode(r.target,i,n+8);let m=H.encode.bytes+6;return i.writeUInt16BE(m,n),Qi.encode.bytes=m+2,i};Qi.encode.bytes=0;Qi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m={};return m.priority=r.readUInt16BE(i+2),m.weight=r.readUInt16BE(i+4),m.port=r.readUInt16BE(i+6),m.target=H.decode(r,i+8),Qi.decode.bytes=n+2,m};Qi.decode.bytes=0;Qi.encodingLength=function(r){return 8+H.encodingLength(r.target)};var Jr=ZS.caa={};Jr.ISSUER_CRITICAL=128;Jr.encode=function(r,i,n){let m=Jr.encodingLength(r);if(!i)i=Y.alloc(Jr.encodingLength(r));if(!n)n=0;if(r.issuerCritical)r.flags=Jr.ISSUER_CRITICAL;return i.writeUInt16BE(m-2,n),n+=2,i.writeUInt8(r.flags||0,n),n+=1,O.encode(r.tag,i,n),n+=O.encode.bytes,i.write(r.value,n),n+=Y.byteLength(r.value),Jr.encode.bytes=m,i};Jr.encode.bytes=0;Jr.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i);i+=2;let m=i,c={};return c.flags=r.readUInt8(i),i+=1,c.tag=O.decode(r,i),i+=O.decode.bytes,c.value=r.toString("utf-8",i,m+n),c.issuerCritical=!!(c.flags&Jr.ISSUER_CRITICAL),Jr.decode.bytes=n+2,c};Jr.decode.bytes=0;Jr.encodingLength=function(r){return O.encodingLength(r.tag)+O.encodingLength(r.value)+2};var Ri=ZS.mx={};Ri.encode=function(r,i,n){if(!i)i=Y.alloc(Ri.encodingLength(r));if(!n)n=0;let m=n;return n+=2,i.writeUInt16BE(r.preference||0,n),n+=2,H.encode(r.exchange,i,n),n+=H.encode.bytes,i.writeUInt16BE(n-m-2,m),Ri.encode.bytes=n-m,i};Ri.encode.bytes=0;Ri.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.preference=r.readUInt16BE(i),i+=2,m.exchange=H.decode(r,i),i+=H.decode.bytes,Ri.decode.bytes=i-n,m};Ri.encodingLength=function(r){return 4+H.encodingLength(r.exchange)};var Di=ZS.a={};Di.encode=function(r,i,n){if(!i)i=Y.alloc(Di.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(4,n),n+=2,si.v4.encode(r,i,n),Di.encode.bytes=6,i};Di.encode.bytes=0;Di.decode=function(r,i){if(!i)i=0;i+=2;let n=si.v4.decode(r,i);return Di.decode.bytes=6,n};Di.decode.bytes=0;Di.encodingLength=function(){return 6};var Ui=ZS.aaaa={};Ui.encode=function(r,i,n){if(!i)i=Y.alloc(Ui.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(16,n),n+=2,si.v6.encode(r,i,n),Ui.encode.bytes=18,i};Ui.encode.bytes=0;Ui.decode=function(r,i){if(!i)i=0;i+=2;let n=si.v6.decode(r,i);return Ui.decode.bytes=18,n};Ui.decode.bytes=0;Ui.encodingLength=function(){return 18};var Kr=ZS.option={};Kr.encode=function(r,i,n){if(!i)i=Y.alloc(Kr.encodingLength(r));if(!n)n=0;let m=n,c=Fc.toCode(r.code);if(i.writeUInt16BE(c,n),n+=2,r.data)i.writeUInt16BE(r.data.length,n),n+=2,r.data.copy(i,n),n+=r.data.length;else switch(c){case 8:let l=r.sourcePrefixLength||0,y=r.family||si.familyOf(r.ip),j=si.encode(r.ip,Y.alloc),A=Math.ceil(l/8);i.writeUInt16BE(A+4,n),n+=2,i.writeUInt16BE(y,n),n+=2,i.writeUInt8(l,n++),i.writeUInt8(r.scopePrefixLength||0,n++),j.copy(i,n,0,A),n+=A;break;case 11:if(r.timeout)i.writeUInt16BE(2,n),n+=2,i.writeUInt16BE(r.timeout,n),n+=2;else i.writeUInt16BE(0,n),n+=2;break;case 12:let S=r.length||0;i.writeUInt16BE(S,n),n+=2,i.fill(0,n,n+S),n+=S;break;case 14:let v=r.tags.length*2;i.writeUInt16BE(v,n),n+=2;for(let w of r.tags)i.writeUInt16BE(w,n),n+=2;break;default:throw Error(`Unknown roption code: ${r.code}`)}return Kr.encode.bytes=n-m,i};Kr.encode.bytes=0;Kr.decode=function(r,i){if(!i)i=0;let n={};n.code=r.readUInt16BE(i),n.type=Fc.toString(n.code),i+=2;let m=r.readUInt16BE(i);switch(i+=2,n.data=r.slice(i,i+m),n.code){case 8:n.family=r.readUInt16BE(i),i+=2,n.sourcePrefixLength=r.readUInt8(i++),n.scopePrefixLength=r.readUInt8(i++);let c=Y.alloc(n.family===1?4:16);r.copy(c,0,i,i+m-4),n.ip=si.decode(c);break;case 11:if(m>0)n.timeout=r.readUInt16BE(i),i+=2;break;case 14:n.tags=[];for(let l=0;l<m;l+=2)n.tags.push(r.readUInt16BE(i)),i+=2}return Kr.decode.bytes=m+4,n};Kr.decode.bytes=0;Kr.encodingLength=function(r){if(r.data)return r.data.length+4;switch(Fc.toCode(r.code)){case 8:let n=r.sourcePrefixLength||0;return Math.ceil(n/8)+8;case 11:return typeof r.timeout==="number"?6:4;case 12:return r.length+4;case 14:return 4+r.tags.length*2}throw Error(`Unknown roption code: ${r.code}`)};var Or=ZS.opt={};Or.encode=function(r,i,n){if(!i)i=Y.alloc(Or.encodingLength(r));if(!n)n=0;let m=n,c=$n(r,Kr);return i.writeUInt16BE(c,n),n=pn(r,Kr,i,n+2),Or.encode.bytes=n-m,i};Or.encode.bytes=0;Or.decode=function(r,i){if(!i)i=0;let n=i,m=[],c=r.readUInt16BE(i);i+=2;let l=0;while(c>0)m[l++]=Kr.decode(r,i),i+=Kr.decode.bytes,c-=Kr.decode.bytes;return Or.decode.bytes=i-n,m};Or.decode.bytes=0;Or.encodingLength=function(r){return 2+$n(r||[],Kr)};var Ur=ZS.dnskey={};Ur.PROTOCOL_DNSSEC=3;Ur.ZONE_KEY=128;Ur.SECURE_ENTRYPOINT=32768;Ur.encode=function(r,i,n){if(!i)i=Y.alloc(Ur.encodingLength(r));if(!n)n=0;let m=n,c=r.key;if(!Y.isBuffer(c))throw Error("Key must be a Buffer");return n+=2,i.writeUInt16BE(r.flags,n),n+=2,i.writeUInt8(Ur.PROTOCOL_DNSSEC,n),n+=1,i.writeUInt8(r.algorithm,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,Ur.encode.bytes=n-m,i.writeUInt16BE(Ur.encode.bytes-2,m),i};Ur.encode.bytes=0;Ur.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);if(i+=2,m.flags=r.readUInt16BE(i),i+=2,r.readUInt8(i)!==Ur.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return i+=1,m.algorithm=r.readUInt8(i),i+=1,m.key=r.slice(i,n+c+2),i+=m.key.length,Ur.decode.bytes=i-n,m};Ur.decode.bytes=0;Ur.encodingLength=function(r){return 6+Y.byteLength(r.key)};var sr=ZS.rrsig={};sr.encode=function(r,i,n){if(!i)i=Y.alloc(sr.encodingLength(r));if(!n)n=0;let m=n,c=r.signature;if(!Y.isBuffer(c))throw Error("Signature must be a Buffer");return n+=2,i.writeUInt16BE(Pi.toType(r.typeCovered),n),n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.labels,n),n+=1,i.writeUInt32BE(r.originalTTL,n),n+=4,i.writeUInt32BE(r.expiration,n),n+=4,i.writeUInt32BE(r.inception,n),n+=4,i.writeUInt16BE(r.keyTag,n),n+=2,H.encode(r.signersName,i,n),n+=H.encode.bytes,c.copy(i,n,0,c.length),n+=c.length,sr.encode.bytes=n-m,i.writeUInt16BE(sr.encode.bytes-2,m),i};sr.encode.bytes=0;sr.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.typeCovered=Pi.toString(r.readUInt16BE(i)),i+=2,m.algorithm=r.readUInt8(i),i+=1,m.labels=r.readUInt8(i),i+=1,m.originalTTL=r.readUInt32BE(i),i+=4,m.expiration=r.readUInt32BE(i),i+=4,m.inception=r.readUInt32BE(i),i+=4,m.keyTag=r.readUInt16BE(i),i+=2,m.signersName=H.decode(r,i),i+=H.decode.bytes,m.signature=r.slice(i,n+c+2),i+=m.signature.length,sr.decode.bytes=i-n,m};sr.decode.bytes=0;sr.encodingLength=function(r){return 20+H.encodingLength(r.signersName)+Y.byteLength(r.signature)};var fr=ZS.rp={};fr.encode=function(r,i,n){if(!i)i=Y.alloc(fr.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.mbox||".",i,n,{mail:!0}),n+=H.encode.bytes,H.encode(r.txt||".",i,n),n+=H.encode.bytes,fr.encode.bytes=n-m,i.writeUInt16BE(fr.encode.bytes-2,m),i};fr.encode.bytes=0;fr.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.mbox=H.decode(r,i,{mail:!0})||".",i+=H.decode.bytes,m.txt=H.decode(r,i)||".",i+=H.decode.bytes,fr.decode.bytes=i-n,m};fr.decode.bytes=0;fr.encodingLength=function(r){return 2+H.encodingLength(r.mbox||".")+H.encodingLength(r.txt||".")};var jr={};jr.encode=function(r,i,n){if(!i)i=Y.alloc(jr.encodingLength(r));if(!n)n=0;let m=n;var c=[];for(var l=0;l<r.length;l++){var y=Pi.toType(r[l]);if(c[y>>8]===void 0)c[y>>8]=[];c[y>>8][y>>3&31]|=1<<7-(y&7)}for(l=0;l<c.length;l++)if(c[l]!==void 0){var j=Y.from(c[l]);i.writeUInt8(l,n),n+=1,i.writeUInt8(j.length,n),n+=1,j.copy(i,n),n+=j.length}return jr.encode.bytes=n-m,i};jr.encode.bytes=0;jr.decode=function(r,i,n){if(!i)i=0;let m=i;var c=[];while(i-m<n){var l=r.readUInt8(i);i+=1;var y=r.readUInt8(i);i+=1;for(var j=0;j<y;j++){var A=r.readUInt8(i+j);for(var S=0;S<8;S++)if(A&1<<7-S){var v=Pi.toString(l<<8|j<<3|S);c.push(v)}}i+=y}return jr.decode.bytes=i-m,c};jr.decode.bytes=0;jr.encodingLength=function(r){var i=[];for(var n=0;n<r.length;n++){var m=Pi.toType(r[n]);i[m>>8]=Math.max(i[m>>8]||0,m&255)}var c=0;for(n=0;n<i.length;n++)if(i[n]!==void 0)c+=2+Math.ceil((i[n]+1)/8);return c};var ri=ZS.nsec={};ri.encode=function(r,i,n){if(!i)i=Y.alloc(ri.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.nextDomain,i,n),n+=H.encode.bytes,jr.encode(r.rrtypes,i,n),n+=jr.encode.bytes,ri.encode.bytes=n-m,i.writeUInt16BE(ri.encode.bytes-2,m),i};ri.encode.bytes=0;ri.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.nextDomain=H.decode(r,i),i+=H.decode.bytes,m.rrtypes=jr.decode(r,i,c-(i-n)),i+=jr.decode.bytes,ri.decode.bytes=i-n,m};ri.decode.bytes=0;ri.encodingLength=function(r){return 2+H.encodingLength(r.nextDomain)+jr.encodingLength(r.rrtypes)};var ii=ZS.nsec3={};ii.encode=function(r,i,n){if(!i)i=Y.alloc(ii.encodingLength(r));if(!n)n=0;let m=n,c=r.salt;if(!Y.isBuffer(c))throw Error("salt must be a Buffer");let l=r.nextDomain;if(!Y.isBuffer(l))throw Error("nextDomain must be a Buffer");return n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.flags,n),n+=1,i.writeUInt16BE(r.iterations,n),n+=2,i.writeUInt8(c.length,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,i.writeUInt8(l.length,n),n+=1,l.copy(i,n,0,l.length),n+=l.length,jr.encode(r.rrtypes,i,n),n+=jr.encode.bytes,ii.encode.bytes=n-m,i.writeUInt16BE(ii.encode.bytes-2,m),i};ii.encode.bytes=0;ii.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);i+=2,m.algorithm=r.readUInt8(i),i+=1,m.flags=r.readUInt8(i),i+=1,m.iterations=r.readUInt16BE(i),i+=2;let l=r.readUInt8(i);i+=1,m.salt=r.slice(i,i+l),i+=l;let y=r.readUInt8(i);return i+=1,m.nextDomain=r.slice(i,i+y),i+=y,m.rrtypes=jr.decode(r,i,c-(i-n)),i+=jr.decode.bytes,ii.decode.bytes=i-n,m};ii.decode.bytes=0;ii.encodingLength=function(r){return 8+r.salt.length+r.nextDomain.length+jr.encodingLength(r.rrtypes)};var ni=ZS.ds={};ni.encode=function(r,i,n){if(!i)i=Y.alloc(ni.encodingLength(r));if(!n)n=0;let m=n,c=r.digest;if(!Y.isBuffer(c))throw Error("Digest must be a Buffer");return n+=2,i.writeUInt16BE(r.keyTag,n),n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.digestType,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,ni.encode.bytes=n-m,i.writeUInt16BE(ni.encode.bytes-2,m),i};ni.encode.bytes=0;ni.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.keyTag=r.readUInt16BE(i),i+=2,m.algorithm=r.readUInt8(i),i+=1,m.digestType=r.readUInt8(i),i+=1,m.digest=r.slice(i,n+c+2),i+=m.digest.length,ni.decode.bytes=i-n,m};ni.decode.bytes=0;ni.encodingLength=function(r){return 6+Y.byteLength(r.digest)};var Rr=ZS.sshfp={};Rr.getFingerprintLengthForHashType=function(i){switch(i){case 1:return 20;case 2:return 32}};Rr.encode=function(i,n,m){if(!n)n=Y.alloc(Rr.encodingLength(i));if(!m)m=0;let c=m;m+=2,n[m]=i.algorithm,m+=1,n[m]=i.hash,m+=1;let l=Y.from(i.fingerprint.toUpperCase(),"hex");if(l.length!==Rr.getFingerprintLengthForHashType(i.hash))throw Error("Invalid fingerprint length");return l.copy(n,m),m+=l.byteLength,Rr.encode.bytes=m-c,n.writeUInt16BE(Rr.encode.bytes-2,c),n};Rr.encode.bytes=0;Rr.decode=function(i,n){if(!n)n=0;let m=n,c={};n+=2,c.algorithm=i[n],n+=1,c.hash=i[n],n+=1;let l=Rr.getFingerprintLengthForHashType(c.hash);return c.fingerprint=i.slice(n,n+l).toString("hex").toUpperCase(),n+=l,Rr.decode.bytes=n-m,c};Rr.decode.bytes=0;Rr.encodingLength=function(r){return 4+Y.from(r.fingerprint,"hex").byteLength};var mi=ZS.naptr={};mi.encode=function(r,i,n){if(!i)i=Y.alloc(mi.encodingLength(r));if(!n)n=0;let m=n;return n+=2,i.writeUInt16BE(r.order||0,n),n+=2,i.writeUInt16BE(r.preference||0,n),n+=2,O.encode(r.flags,i,n),n+=O.encode.bytes,O.encode(r.services,i,n),n+=O.encode.bytes,O.encode(r.regexp,i,n),n+=O.encode.bytes,H.encode(r.replacement,i,n),n+=H.encode.bytes,mi.encode.bytes=n-m,i.writeUInt16BE(mi.encode.bytes-2,m),i};mi.encode.bytes=0;mi.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.order=r.readUInt16BE(i),i+=2,m.preference=r.readUInt16BE(i),i+=2,m.flags=O.decode(r,i),i+=O.decode.bytes,m.services=O.decode(r,i),i+=O.decode.bytes,m.regexp=O.decode(r,i),i+=O.decode.bytes,m.replacement=H.decode(r,i),i+=H.decode.bytes,mi.decode.bytes=i-n,m};mi.decode.bytes=0;mi.encodingLength=function(r){return O.encodingLength(r.flags)+O.encodingLength(r.services)+O.encodingLength(r.regexp)+H.encodingLength(r.replacement)+6};var ci=ZS.tlsa={};ci.encode=function(r,i,n){if(!i)i=Y.alloc(ci.encodingLength(r));if(!n)n=0;let m=n,c=r.certificate;if(!Y.isBuffer(c))throw Error("Certificate must be a Buffer");return n+=2,i.writeUInt8(r.usage,n),n+=1,i.writeUInt8(r.selector,n),n+=1,i.writeUInt8(r.matchingType,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,ci.encode.bytes=n-m,i.writeUInt16BE(ci.encode.bytes-2,m),i};ci.encode.bytes=0;ci.decode=function(r,i){if(!i)i=0;let n=i,m={},c=r.readUInt16BE(i);return i+=2,m.usage=r.readUInt8(i),i+=1,m.selector=r.readUInt8(i),i+=1,m.matchingType=r.readUInt8(i),i+=1,m.certificate=r.slice(i,n+c+2),i+=m.certificate.length,ci.decode.bytes=i-n,m};ci.decode.bytes=0;ci.encodingLength=function(r){return 5+Y.byteLength(r.certificate)};var gc=ZS.record=function(r){switch(r.toUpperCase()){case"A":return Di;case"PTR":return pr;case"CNAME":return KS;case"DNAME":return HS;case"TXT":return Gi;case"NULL":return Ni;case"AAAA":return Ui;case"SRV":return Qi;case"HINFO":return Ei;case"CAA":return Jr;case"NS":return wi;case"SOA":return $i;case"MX":return Ri;case"OPT":return Or;case"DNSKEY":return Ur;case"RRSIG":return sr;case"RP":return fr;case"NSEC":return ri;case"NSEC3":return ii;case"SSHFP":return Rr;case"DS":return ni;case"NAPTR":return mi;case"TLSA":return ci}return vi},Sr=ZS.answer={};Sr.encode=function(r,i,n){if(!i)i=Y.alloc(Sr.encodingLength(r));if(!n)n=0;let m=n;if(H.encode(r.name,i,n),n+=H.encode.bytes,i.writeUInt16BE(Pi.toType(r.type),n),r.type.toUpperCase()==="OPT"){if(r.name!==".")throw Error("OPT name must be root.");i.writeUInt16BE(r.udpPayloadSize||4096,n+2),i.writeUInt8(r.extendedRcode||0,n+4),i.writeUInt8(r.ednsVersion||0,n+5),i.writeUInt16BE(r.flags||0,n+6),n+=8,Or.encode(r.options||[],i,n),n+=Or.encode.bytes}else{let c=dm.toClass(r.class===void 0?"IN":r.class);if(r.flush)c|=32768;i.writeUInt16BE(c,n+2),i.writeUInt32BE(r.ttl||0,n+4),n+=8;let l=gc(r.type);l.encode(r.data,i,n),n+=l.encode.bytes}return Sr.encode.bytes=n-m,i};Sr.encode.bytes=0;Sr.decode=function(r,i){if(!i)i=0;let n={},m=i;if(n.name=H.decode(r,i),i+=H.decode.bytes,n.type=Pi.toString(r.readUInt16BE(i)),n.type==="OPT")n.udpPayloadSize=r.readUInt16BE(i+2),n.extendedRcode=r.readUInt8(i+4),n.ednsVersion=r.readUInt8(i+5),n.flags=r.readUInt16BE(i+6),n.flag_do=(n.flags>>15&1)===1,n.options=Or.decode(r,i+8),i+=8+Or.decode.bytes;else{let c=r.readUInt16BE(i+2);n.ttl=r.readUInt32BE(i+4),n.class=dm.toString(c&-32769),n.flush=!!(c&32768);let l=gc(n.type);n.data=l.decode(r,i+8),i+=8+l.decode.bytes}return Sr.decode.bytes=i-m,n};Sr.decode.bytes=0;Sr.encodingLength=function(r){let i=r.data!==null&&r.data!==void 0?r.data:r.options;return H.encodingLength(r.name)+8+gc(r.type).encodingLength(i)};var ur=ZS.question={};ur.encode=function(r,i,n){if(!i)i=Y.alloc(ur.encodingLength(r));if(!n)n=0;let m=n;return H.encode(r.name,i,n),n+=H.encode.bytes,i.writeUInt16BE(Pi.toType(r.type),n),n+=2,i.writeUInt16BE(dm.toClass(r.class===void 0?"IN":r.class),n),n+=2,ur.encode.bytes=n-m,r};ur.encode.bytes=0;ur.decode=function(r,i){if(!i)i=0;let n=i,m={};if(m.name=H.decode(r,i),i+=H.decode.bytes,m.type=Pi.toString(r.readUInt16BE(i)),i+=2,m.class=dm.toString(r.readUInt16BE(i)),i+=2,!!(m.class&32768))m.class&=-32769;return ur.decode.bytes=i-n,m};ur.decode.bytes=0;ur.encodingLength=function(r){return H.encodingLength(r.name)+4};ZS.AUTHORITATIVE_ANSWER=1024;ZS.TRUNCATED_RESPONSE=512;ZS.RECURSION_DESIRED=256;ZS.RECURSION_AVAILABLE=128;ZS.AUTHENTIC_DATA=32;ZS.CHECKING_DISABLED=16;ZS.DNSSEC_OK=32768;ZS.encode=function(r,i,n){let m=!i;if(m)i=Y.alloc(ZS.encodingLength(r));if(!n)n=0;let c=n;if(!r.questions)r.questions=[];if(!r.answers)r.answers=[];if(!r.authorities)r.authorities=[];if(!r.additionals)r.additionals=[];if(ar.encode(r,i,n),n+=ar.encode.bytes,n=pn(r.questions,ur,i,n),n=pn(r.answers,Sr,i,n),n=pn(r.authorities,Sr,i,n),n=pn(r.additionals,Sr,i,n),ZS.encode.bytes=n-c,m&&ZS.encode.bytes!==i.length)return i.slice(0,ZS.encode.bytes);return i};ZS.encode.bytes=0;ZS.decode=function(r,i){if(!i)i=0;let n=i,m=ar.decode(r,i);return i+=ar.decode.bytes,i=am(m.questions,ur,r,i),i=am(m.answers,Sr,r,i),i=am(m.authorities,Sr,r,i),i=am(m.additionals,Sr,r,i),ZS.decode.bytes=i-n,m};ZS.decode.bytes=0;ZS.encodingLength=function(r){return ar.encodingLength(r)+$n(r.questions||[],ur)+$n(r.answers||[],Sr)+$n(r.authorities||[],Sr)+$n(r.additionals||[],Sr)};ZS.streamEncode=function(r){let i=ZS.encode(r),n=Y.alloc(2);n.writeUInt16BE(i.byteLength);let m=Y.concat([n,i]);return ZS.streamEncode.bytes=m.byteLength,m};ZS.streamEncode.bytes=0;ZS.streamDecode=function(r){let i=r.readUInt16BE(0);if(r.byteLength<i+2)return null;let n=ZS.decode(r.slice(2));return ZS.streamDecode.bytes=ZS.decode.bytes,n};ZS.streamDecode.bytes=0;function $n(r,i){let n=0;for(let m=0;m<r.length;m++)n+=i.encodingLength(r[m]);return n}function pn(r,i,n,m){for(let c=0;c<r.length;c++)i.encode(r[c],n,m),m+=i.encode.bytes;return m}function am(r,i,n,m){for(let c=0;c<r.length;c++)r[c]=i.decode(n,m),m+=i.decode.bytes;return m}});var Ij=rr((eQ,jj)=>{var yj=hS;process.nextTick(TS,42);jj.exports=FS;function FS(r){var i=m;return n;function n(c){i(c||zS)}function m(c){var l=[c];i=y,r(j);function y(A){l.push(A)}function j(A){var S=arguments;i=gS(A)?m:v;while(l.length)v(l.shift());function v(w){yj(MS,w,S)}}}}function gS(r){return Object.prototype.toString.call(r)==="[object Error]"}function zS(){}function MS(r,i){r.apply(null,i)}function TS(r){if(r===42)yj=process.nextTick}function hS(r,i,n){process.nextTick(function(){r(i,n)})}});var vj=rr((sQ,Sj)=>{var zc=lj(),BS=bi("dgram"),oS=Ij(),xS=bi("events"),Tc=bi("os"),Mc=function(){};Sj.exports=function(r){if(!r)r={};var i=new xS.EventEmitter,n=typeof r.port==="number"?r.port:5353,m=r.type||"udp4",c=r.ip||r.host||(m==="udp4"?"224.0.0.251":null),l={address:c,port:n},y={},j=!1,A=null;if(m==="udp6"&&(!c||!r.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var S=r.socket||BS.createSocket({type:m,reuseAddr:r.reuseAddr!==!1,toString:function(){return m}});S.on("error",function(w){if(w.code==="EACCES"||w.code==="EADDRINUSE")i.emit("error",w);else i.emit("warning",w)}),S.on("message",function(w,N){try{w=zc.decode(w)}catch(E){i.emit("warning",E);return}if(i.emit("packet",w,N),w.type==="query")i.emit("query",w,N);if(w.type==="response")i.emit("response",w,N)}),S.on("listening",function(){if(!n)n=l.port=S.address().port;if(r.multicast!==!1)i.update(),A=setInterval(i.update,5000),S.setMulticastTTL(r.ttl||255),S.setMulticastLoopback(r.loopback!==!1)});var v=oS(function(w){if(!n||r.bind===!1)return w(null);S.once("error",w),S.bind(n,r.bind||r.interface,function(){S.removeListener("error",w),w(null)})});return v(function(w){if(w)return i.emit("error",w);i.emit("ready")}),i.send=function(w,N,E){if(typeof N==="function")return i.send(w,null,N);if(!E)E=Mc;if(!N)N=l;else if(!N.host&&!N.address)N.address=l.address;v(Q);function Q(W){if(j)return E();if(W)return E(W);var Z=zc.encode(w);S.send(Z,0,Z.length,N.port,N.address||N.host,E)}},i.response=i.respond=function(w,N,E){if(Array.isArray(w))w={answers:w};w.type="response",w.flags=(w.flags||0)|zc.AUTHORITATIVE_ANSWER,i.send(w,N,E)},i.query=function(w,N,E,Q){if(typeof N==="function")return i.query(w,null,null,N);if(typeof N==="object"&&N&&N.port)return i.query(w,null,N,E);if(typeof E==="function")return i.query(w,N,null,E);if(!Q)Q=Mc;if(typeof w==="string")w=[{name:w,type:N||"ANY"}];if(Array.isArray(w))w={type:"query",questions:w};w.type="query",i.send(w,E,Q)},i.destroy=function(w){if(!w)w=Mc;if(j)return process.nextTick(w);j=!0,clearInterval(A);for(var N in y)try{S.dropMembership(c,N)}catch(E){}y={},S.close(w)},i.update=function(){var w=r.interface?[].concat(r.interface):pS(),N=!1;for(var E=0;E<w.length;E++){var Q=w[E];if(y[Q])continue;try{S.addMembership(c,Q),y[Q]=!0,N=!0}catch(W){i.emit("warning",W)}}if(N){if(S.setMulticastInterface)try{S.setMulticastInterface(r.interface||kS())}catch(W){i.emit("warning",W)}i.emit("networkInterface")}},i};function kS(){var r=Tc.networkInterfaces(),i=Object.keys(r);for(var n=0;n<i.length;n++){var m=r[i[n]];for(var c=0;c<m.length;c++){var l=m[c];if(Aj(l.family)&&!l.internal){if(Tc.platform()==="darwin"&&i[n]==="en0")return l.address;return"0.0.0.0"}}}return"127.0.0.1"}function pS(){var r=Tc.networkInterfaces(),i=Object.keys(r),n=[];for(var m=0;m<i.length;m++){var c=r[i[m]];for(var l=0;l<c.length;l++){var y=c[l];if(Aj(y.family)){n.push(y.address);break}}}return n}function Aj(r){return r===4||r==="IPv4"}});var $j=rr((fQ,wj)=>{wj.exports=function r(i,n){if(i===n)return!0;if(i&&n&&typeof i=="object"&&typeof n=="object"){if(i.constructor!==n.constructor)return!1;var m,c,l;if(Array.isArray(i)){if(m=i.length,m!=n.length)return!1;for(c=m;c--!==0;)if(!r(i[c],n[c]))return!1;return!0}if(i instanceof Map&&n instanceof Map){if(i.size!==n.size)return!1;for(c of i.entries())if(!n.has(c[0]))return!1;for(c of i.entries())if(!r(c[1],n.get(c[0])))return!1;return!0}if(i instanceof Set&&n instanceof Set){if(i.size!==n.size)return!1;for(c of i.entries())if(!n.has(c[0]))return!1;return!0}if(ArrayBuffer.isView(i)&&ArrayBuffer.isView(n)){if(m=i.length,m!=n.length)return!1;for(c=m;c--!==0;)if(i[c]!==n[c])return!1;return!0}if(i.constructor===RegExp)return i.source===n.source&&i.flags===n.flags;if(i.valueOf!==Object.prototype.valueOf)return i.valueOf()===n.valueOf();if(i.toString!==Object.prototype.toString)return i.toString()===n.toString();if(l=Object.keys(i),m=l.length,m!==Object.keys(n).length)return!1;for(c=m;c--!==0;)if(!Object.prototype.hasOwnProperty.call(n,l[c]))return!1;for(c=m;c--!==0;){var y=l[c];if(!r(i[y],n[y]))return!1}return!0}return i!==i&&n!==n}});var Gj=rr((fi)=>{var hc=fi&&fi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(fi,"__esModule",{value:!0});fi.Server=void 0;var uS=hc(vj()),aS=hc($j()),dS=hc(pm());class Bc{constructor(r,i){this.registry={},this.mdns=(0,uS.default)(r),this.mdns.setMaxListeners(0),this.mdns.on("query",this.respondToQuery.bind(this)),this.errorCallback=i!==null&&i!==void 0?i:function(n){throw n}}register(r){let i=(n)=>{var m=this.registry[n.type];if(!m)m=this.registry[n.type]=[];else if(m.some(this.isDuplicateRecord(n)))return;m.push(n)};if(Array.isArray(r))r.forEach(i);else i(r)}unregister(r){let i=(n)=>{let m=n.type;if(!(m in this.registry))return;this.registry[m]=this.registry[m].filter((c)=>c.name!==n.name)};if(Array.isArray(r))r.forEach(i);else i(r)}respondToQuery(r){let i=this;r.questions.forEach((n)=>{var{type:m,name:c}=n,l=m==="ANY"?Object.keys(i.registry).map(i.recordsFor.bind(i,c)).flat(1):i.recordsFor(c,m);if(l.length===0)return;var y=[];if(m!=="ANY")l.forEach((j)=>{if(j.type!=="PTR")return;y=y.concat(i.recordsFor(j.data,"SRV")).concat(i.recordsFor(j.data,"TXT"))}),y.filter(function(j){return j.type==="SRV"}).map(function(j){return j.data.target}).filter(this.unique()).forEach(function(j){y=y.concat(i.recordsFor(j,"A")).concat(i.recordsFor(j,"AAAA"))});i.mdns.respond({answers:l,additionals:y},(j)=>{if(j)this.errorCallback(j)})})}recordsFor(r,i){if(!(i in this.registry))return[];return this.registry[i].filter((n)=>{var m=~r.indexOf(".")?n.name:n.name.split(".")[0];return(0,dS.default)(m,r)})}isDuplicateRecord(r){return(i)=>{return r.type===i.type&&r.name===i.name&&(0,aS.default)(r.data,i.data)}}unique(){var r=[];return(i)=>{if(~r.indexOf(i))return!1;return r.push(i),!0}}}fi.Server=Bc;fi.default=Bc});var Ej=rr((Nj)=>{Object.defineProperty(Nj,"__esModule",{value:!0});Nj.default=(r,i)=>{if(i===void 0)return!0;let n=r.txt,m=Object.entries(i).map(([c,l])=>{let y=n[c];if(y===void 0)return!1;if(l!=y)return!1;return!0});if(m.length==0)return!0;if(m.includes(!1))return!1;return!0}});var Dj=rr((Qj)=>{Object.defineProperty(Qj,"__esModule",{value:!0});Qj.default=(r)=>Object.keys(r).filter((i)=>!i.includes("binary")).reduce((i,n)=>{return Object.assign(i,{[n]:r[n]})},{})});var Pj=rr((Uj)=>{Object.defineProperty(Uj,"__esModule",{value:!0});Uj.default=eS;function eS(r,i){if(r===void 0||i===void 0)return!1;let n=Object.keys(r),m=Object.keys(i);if(n.length!=m.length)return!1;for(let c of n)if(r[c]!=i[c])return!1;return!0}});var Xj=rr((rn)=>{var an=rn&&rn.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(rn,"__esModule",{value:!0});rn.Browser=void 0;var fS=an(Zc()),Oi=an(pm()),rv=bi("events"),oc=Vc(),Cj=an(Ej()),iv=an(Dj()),nv=an(Pj()),Wj=".local",mv="_services._dns-sd._udp"+Wj;class tm extends rv.EventEmitter{constructor(r,i,n){super();if(this.onresponse=void 0,this.serviceMap={},this.wildcard=!1,this._services=[],typeof i==="function")return new tm(r,null,i);if(this.mdns=r,this.txt=new fS.default(i!==null&&i.txt!=null?i.txt:void 0),i===null||i.type===void 0)this.name=mv,this.wildcard=!0;else{if(this.name=(0,oc.toString)({name:i.type,protocol:i.protocol||"tcp"})+Wj,i.name)this.name=i.name+"."+this.name;this.wildcard=!1}if(i!=null&&i.txt!==void 0)this.txtQuery=(0,iv.default)(i.txt);if(n)this.on("up",n);this.start()}start(){if(this.onresponse||this.name===void 0)return;var r=this,i={};if(!this.wildcard)i[this.name]=!0;this.onresponse=(n,m)=>{if(r.wildcard)n.answers.forEach((c)=>{if(c.type!=="PTR"||c.name!==r.name||c.name in i)return;i[c.data]=!0,r.mdns.query(c.data,"PTR")});Object.keys(i).forEach(function(c){r.goodbyes(c,n).forEach(r.removeService.bind(r));var l=r.buildServicesFor(c,n,r.txt,m);if(l.length===0)return;l.forEach((y)=>{if(r.serviceMap[y.fqdn]){r.updateService(y);return}r.addService(y)})})},this.mdns.on("response",this.onresponse),this.update()}stop(){if(!this.onresponse)return;this.mdns.removeListener("response",this.onresponse),this.onresponse=void 0}update(){this.mdns.query(this.name,"PTR")}get services(){return this._services}addService(r){if((0,Cj.default)(r,this.txtQuery)===!1)return;this._services.push(r),this.serviceMap[r.fqdn]=!0,this.emit("up",r)}updateService(r){var i;if((0,nv.default)(r.txt,((i=this._services.find((n)=>(0,Oi.default)(n.fqdn,r.fqdn)))===null||i===void 0?void 0:i.txt)||{}))return;if(!(0,Cj.default)(r,this.txtQuery)){this.removeService(r.fqdn);return}this._services=this._services.map(function(n){if(!(0,Oi.default)(n.fqdn,r.fqdn))return n;return r}),this.emit("txt-update",r)}removeService(r){var i,n;if(this._services.some(function(m,c){if((0,Oi.default)(m.fqdn,r))return i=m,n=c,!0}),!i||n===void 0)return;this._services.splice(n,1),delete this.serviceMap[r],this.emit("down",i)}goodbyes(r,i){return i.answers.concat(i.additionals).filter((n)=>n.type==="PTR"&&n.ttl===0&&(0,Oi.default)(n.name,r)).map((n)=>n.data)}buildServicesFor(r,i,n,m){var c=i.answers.concat(i.additionals).filter((l)=>l.ttl>0);return c.filter((l)=>l.type==="PTR"&&(0,Oi.default)(l.name,r)).map((l)=>{let y={addresses:[],subtypes:[]};if(c.filter((j)=>{return j.type==="PTR"&&(0,Oi.default)(j.data,l.data)&&j.name.includes("._sub")}).forEach((j)=>{let A=(0,oc.toType)(j.name);y.subtypes.push(A.subtype)}),c.filter((j)=>{return(j.type==="SRV"||j.type==="TXT")&&(0,Oi.default)(j.name,l.data)}).forEach((j)=>{if(j.type==="SRV"){var A=j.name.split("."),S=A[0],v=(0,oc.toType)(A.slice(1,-1).join("."));y.name=S,y.fqdn=j.name,y.host=j.data.target,y.referer=m,y.port=j.data.port,y.type=v.name,y.protocol=v.protocol}else if(j.type==="TXT")y.rawTxt=j.data,y.txt=this.txt.decodeAll(j.data)}),!y.name)return;return c.filter((j)=>(j.type==="A"||j.type==="AAAA")&&(0,Oi.default)(j.name,y.host)).forEach((j)=>y.addresses.push(j.data)),y}).filter((l)=>!!l)}}rn.Browser=tm;rn.default=tm});var Kj=rr((dr)=>{var bm=dr&&dr.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(dr,"__esModule",{value:!0});dr.Browser=dr.Service=dr.Bonjour=void 0;var cv=bm(by()),lv=bm(Gj()),xc=bm(Xj());dr.Browser=xc.default;var yv=bm(Jc());dr.Service=yv.default;class kc{constructor(r={},i){this.server=new lv.default(r,i),this.registry=new cv.default(this.server)}publish(r){return this.registry.publish(r)}unpublishAll(r){return this.registry.unpublishAll(r)}find(r=null,i){return new xc.default(this.server.mdns,r,i)}findOne(r=null,i=1e4,n){let m=new xc.default(this.server.mdns,r);var c;return m.once("up",(l)=>{if(c!==void 0)clearTimeout(c);if(m.stop(),n)n(l)}),c=setTimeout(()=>{if(m.stop(),n)n(null)},i),m}destroy(r){this.registry.destroy(),this.server.mdns.destroy(r)}}dr.Bonjour=kc;dr.default=kc});var bl={};Nr(bl,{url:()=>AA,openapi:()=>B$,listen:()=>o$,Server:()=>bl,Default:()=>T$});var cc=(r)=>{let i=r.split("/");if(i[0]==="")i.shift();return i},el=(r)=>{let{groups:i,path:n}=SA(r),m=cc(n);return vA(m,i)},SA=(r)=>{let i=[];return r=r.replace(/\{[^}]+\}/g,(n,m)=>{let c=`@${m}`;return i.push([c,n]),c}),{groups:i,path:r}},vA=(r,i)=>{for(let n=i.length-1;n>=0;n--){let[m]=i[n];for(let c=r.length-1;c>=0;c--)if(r[c].includes(m)){r[c]=r[c].replace(m,i[n][1]);break}}return r},Fm={},sl=(r,i)=>{if(r==="*")return"*";let n=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(n){let m=`${r}#${i}`;if(!Fm[m])if(n[2])Fm[m]=i&&i[0]!==":"&&i[0]!=="*"?[m,n[1],new RegExp(`^${n[2]}(?=/${i})`)]:[r,n[1],new RegExp(`^${n[2]}$`)];else Fm[m]=[r,n[1],!0];return Fm[m]}return null},Sn=(r,i)=>{try{return i(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,(n)=>{try{return i(n)}catch{return n}})}},fl=(r)=>Sn(r,decodeURI),lc=(r)=>{let i=r.url,n=i.indexOf("/",i.indexOf(":")+4),m=n;for(;m<i.length;m++){let c=i.charCodeAt(m);if(c===37){let l=i.indexOf("?",m),y=i.indexOf("#",m),j=l===-1?y===-1?void 0:y:y===-1?l:Math.min(l,y),A=i.slice(n,j);return fl(A.includes("%25")?A.replace(/%25/g,"%2525"):A)}else if(c===63||c===35)break}return i.slice(n,m)};var ry=(r)=>{let i=lc(r);return i.length>1&&i.at(-1)==="/"?i.slice(0,-1):i},Ji=(r,i,...n)=>{if(n.length)i=Ji(i,...n);return`${r?.[0]==="/"?"":"/"}${r}${i==="/"?"":`${r?.at(-1)==="/"?"":"/"}${i?.[0]==="/"?i.slice(1):i}`}`},gm=(r)=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let i=r.split("/"),n=[],m="";return i.forEach((c)=>{if(c!==""&&!/\:/.test(c))m+="/"+c;else if(/\:/.test(c))if(/\?/.test(c)){if(n.length===0&&m==="")n.push("/");else n.push(m);let l=c.replace("?","");m+="/"+l,n.push(m)}else m+="/"+c}),n.filter((c,l,y)=>y.indexOf(c)===l)},mc=(r)=>{if(!/[%+]/.test(r))return r;if(r.indexOf("+")!==-1)r=r.replace(/\+/g," ");return r.indexOf("%")!==-1?Sn(r,Mn):r},iy=(r,i,n)=>{let m;if(!n&&i&&!/[%+]/.test(i)){let y=r.indexOf("?",8);if(y===-1)return;if(!r.startsWith(i,y+1))y=r.indexOf(`&${i}`,y+1);while(y!==-1){let j=r.charCodeAt(y+i.length+1);if(j===61){let A=y+i.length+2,S=r.indexOf("&",A);return mc(r.slice(A,S===-1?void 0:S))}else if(j==38||isNaN(j))return"";y=r.indexOf(`&${i}`,y+1)}if(m=/[%+]/.test(r),!m)return}let c={};m??=/[%+]/.test(r);let l=r.indexOf("?",8);while(l!==-1){let y=r.indexOf("&",l+1),j=r.indexOf("=",l);if(j>y&&y!==-1)j=-1;let A=r.slice(l+1,j===-1?y===-1?void 0:y:j);if(m)A=mc(A);if(l=y,A==="")continue;let S;if(j===-1)S="";else if(S=r.slice(j+1,y===-1?void 0:y),m)S=mc(S);if(n){if(!(c[A]&&Array.isArray(c[A])))c[A]=[];c[A].push(S)}else c[A]??=S}return i?c[i]:c},ny=iy,my=(r,i)=>{return iy(r,i,!0)},Mn=decodeURIComponent;var wA=/^[\w!#$%&'*.^`|~+-]+$/,$A=/^[ !#-:<-[\]-~]*$/,cy=(r)=>{let i=0,n=r.length;while(i<n){let m=r.charCodeAt(i);if(m!==32&&m!==9)break;i++}while(n>i){let m=r.charCodeAt(n-1);if(m!==32&&m!==9)break;n--}return i===0&&n===r.length?r:r.slice(i,n)},yc=(r,i)=>{if(i&&r.indexOf(i)===-1)return{};let n=r.split(";"),m=Object.create(null);for(let c of n){let l=c.indexOf("=");if(l===-1)continue;let y=cy(c.substring(0,l));if(i&&i!==y||!wA.test(y)||y in m)continue;let j=cy(c.substring(l+1));if(j.startsWith('"')&&j.endsWith('"'))j=j.slice(1,-1);if($A.test(j)){if(m[y]=j.indexOf("%")!==-1?Sn(j,Mn):j,i)break}}return m};var ly=(r,i,n)=>{let m=r.req.raw.headers.get("Cookie");if(typeof i==="string"){if(!m)return;let l=i;if(n==="secure")l="__Secure-"+i;else if(n==="host")l="__Host-"+i;return yc(m,l)[l]}if(!m)return{};return yc(m)};var kr=class extends Error{res;status;constructor(r=500,i){super(i?.message,{cause:i?.cause});this.res=i?.res,this.status=r}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var jc=async(r)=>{return await GA(r,{name:"SHA-256",alias:"sha256"})};var GA=async(r,i)=>{let n;if(ArrayBuffer.isView(r)||r instanceof ArrayBuffer)n=r;else{if(typeof r==="object")r=JSON.stringify(r);n=new TextEncoder().encode(String(r))}if(crypto&&crypto.subtle){let m=await crypto.subtle.digest({name:i.name},n);return Array.prototype.map.call(new Uint8Array(m),(l)=>("00"+l.toString(16)).slice(-2)).join("")}return null};var yy=(r,i)=>{let n=r.length,m=i.length,c=Math.max(n,m),l=n^m;for(let y=0;y<c;y++){let j=y<n?r.charCodeAt(y):0,A=y<m?i.charCodeAt(y):0;l|=j^A}return l===0},jy=async(r,i,n)=>{if(!n)n=jc;let[m,c]=await Promise.all([n(r),n(i)]);if(m==null||c==null||typeof m!=="string"||typeof c!=="string")return!1;let l=yy(m,c),y=yy(r,i);return l&&y},Ic=async(r,i,n)=>{if(typeof r==="string"&&typeof i==="string")return jy(r,i,n);if(!n)n=jc;let[m,c]=await Promise.all([n(r),n(i)]);if(!m||!c||typeof m!=="string"||typeof c!=="string")return!1;return jy(m,c)};var zm=(r,i)=>{return new Response(r,{headers:{"Content-Type":i.replace(/^[^;]+/,(m)=>m.toLowerCase())}}).formData()};var NA=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i,EA=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/i,QA=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i,Ac=(r,i)=>{return async(n,m)=>{let c={},l=n.req.header("Content-Type");switch(r){case"json":if(!l||!NA.test(l))break;try{c=await n.req.json()}catch{throw new kr(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!l||!(EA.test(l)||QA.test(l)))break;let j;if(n.req.bodyCache.formData)j=await n.req.bodyCache.formData;else try{let S=await n.req.arrayBuffer();j=await zm(S,l),n.req.bodyCache.formData=j}catch(S){let v="Malformed FormData request.";throw v+=S instanceof Error?` ${S.message}`:` ${String(S)}`,new kr(400,{message:v})}let A=Object.create(null);j.forEach((S,v)=>{if(v.endsWith("[]"))(A[v]??=[]).push(S);else if(Array.isArray(A[v]))A[v].push(S);else if(Object.hasOwn(A,v))A[v]=[A[v],S];else A[v]=S}),c=A;break}case"query":c=Object.fromEntries(Object.entries(n.req.queries()).map(([j,A])=>{return A.length===1?[j,A[0]]:[j,A]}));break;case"param":c=n.req.param();break;case"header":c=n.req.header();break;case"cookie":c=ly(n);break}let y=await i(c,n);if(y instanceof Response)return y;return n.req.addValidatedData(r,y),await m()}};var Iy={header:["cookie"]};function DA(r,i,n){if(!(n in Iy))return r;let m=Iy[n]||[];if(i==="arktype")return UA(r,m);if(i==="valibot")return PA(r,m);return r}function UA(r,i){return r.map((n)=>{if(n&&typeof n==="object"&&"data"in n&&typeof n.data==="object"&&n.data!==null&&!Array.isArray(n.data)){let m={...n.data};for(let l of i)delete m[l];let c=Object.create(Object.getPrototypeOf(n));return Object.assign(c,n,{data:m}),c}return n})}function PA(r,i){return r.map((n)=>{if(n&&typeof n==="object"&&"path"in n&&Array.isArray(n.path)){for(let m of n.path)if(typeof m==="object"&&"input"in m&&typeof m.input==="object"&&m.input!==null&&!Array.isArray(m.input))for(let c of i)delete m.input[c]}return n})}var Ay=(r,i,n)=>Ac(r,async(m,c)=>{let l=await i["~standard"].validate(m);if(n){let y=await n(l.issues?{data:m,error:l.issues,success:!1,target:r}:{data:m,success:!0,target:r},c);if(y){if(y instanceof Response)return y;if("response"in y)return y.response}}if(l.issues){let y=DA(l.issues,i["~standard"].vendor,r);return c.json({data:m,error:y,success:!1},400)}return l.value});var vc=Symbol("openapi"),WA=["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],XA=(r)=>r.split("/").map((i)=>{let n=i;if(n.startsWith(":")){let m=n.match(/^:([^{?]+)(?:{(.+)})?(\?)?$/);if(m)n=`{${m[1]}}`;else{if(n=n.slice(1,n.length),n.endsWith("?"))n=n.slice(0,-1);n=`{${n}}`}}return n}).join("/"),Sy=(r)=>r.charAt(0).toUpperCase()+r.slice(1),KA=(r)=>{let i=r.method.toLowerCase();if(r.path==="/")return`${i}Index`;for(let n of r.path.split("/"))if(n.charCodeAt(0)===123)i+=`By${Sy(n.slice(1,-1))}`;else i+=Sy(n);return i},HA=(r)=>("$ref"in r)?r.$ref:`${r.in} ${r.name}`;function vy(...r){let i=r.flatMap((n)=>n??[]).reduce((n,m)=>{return n.set(HA(m),m),n},new Map);return Array.from(i.values())}var vn=new Map;function ZA(r){let i=[];for(let[n,m]of vn)if(m&&r.match(n))i.push(m);return i}function VA(){vn.clear()}function wy(r,...i){return i.reduce((n,m)=>{if(!m||!n)return n;for(let[c,l]of Object.entries(m)){if(l==null)continue;if(c in n&&(typeof l==="object"||typeof l==="function"&&c==="operationId"))if(Array.isArray(l)){let y=[...n[c]??[],...l];if(c==="tags")n[c]=Array.from(new Set(y));else if(c==="parameters")n[c]=vy(y);else n[c]=y}else if(typeof l==="function")n[c]=l(r);else if(c==="parameters")n[c]=vy(n[c],l);else n[c]={...n[c],...l};else n[c]=l}return n},{operationId:KA(r)})}function $y({route:r,specs:i,paths:n}){let m=XA(r.path),c=r.method.toLowerCase();if(c==="all"){if(!i)return;if(vn.has(m)){let l=vn.get(m)??{};vn.set(m,wy(r,l,i))}else vn.set(m,i)}else{let l=ZA(m);if(!(m in n))n[m]={};if(n[m])n[m][c]=wy(r,...l,n[m]?.[c],i)}}function YA(r,i){let{exclude:n,excludeStaticFile:m}=i.options,c={},l=Array.isArray(n)?n:[n];for(let[y,j]of Object.entries(r)){if(j==null)continue;if(l.some((v)=>{if(typeof v==="string")return y===v;return v.test(y)}))continue;if(y.includes("*")&&!y.includes("{"))continue;if(m){let v=y.includes("{"),N=(y.split("/").pop()||"").includes(".");if(!v&&N)continue}for(let v of Object.keys(j)){let w=j[v];if(w==null)continue;if(y.includes("{")){w.parameters=w.parameters?[...w.parameters]:[];let N=y.split("/").filter((E)=>E.startsWith("{")&&!w.parameters.find((Q)=>Q.in==="path"&&Q.name===E.slice(1,E.length-1)));for(let E of N){let Q=E.slice(1,E.length-1);if(w.parameters.findIndex((Z)=>{if("$ref"in Z){let X=Z.$ref.split("/").pop();if(X){let K=i.components.parameters?.[X];if(K&&!("$ref"in K))return K.in==="path"&&K.name===Q}return!1}return Z.in==="path"&&Z.name===Q})===-1)w.parameters.push({schema:{type:"string"},in:"path",name:Q,required:!0})}}if(!w.responses)w.responses={200:{}}}c[y]=j}return c}var Gy={documentation:{},excludeStaticFile:!0,exclude:[],excludeMethods:["OPTIONS"],excludeTags:[]};function Qy(r,i){let n;return async(m)=>{if(n)return m.json(n);return n=await wc(r,i,m),m.json(n)}}async function wc(r,i=Gy,n){let m={components:{},options:{...Gy,...i}},c=m.options.documentation??{};VA();let l=await JA(r,m);for(let j in l)for(let A in l[j])if(RA({valueOrFunc:l[j][A]?.hide,method:A,path:j,c:n}))l[j][A]=void 0;let y=$c(c.components,m.components);return{openapi:"3.1.0",...c,tags:c.tags?.filter((j)=>!m.options.excludeTags?.includes(j?.name)),info:{title:"Hono Documentation",description:"Development documentation",version:"0.0.0",...c.info},paths:{...YA(l,m),...c.paths},components:y}}async function JA(r,i){let n={};for(let m of r.routes){let c=m.handler[vc];if(!c){if(i.options.includeEmptyPaths)$y({route:m,paths:n});continue}let l=m.method;if(l!=="ALL"){if(i.options.excludeMethods?.includes(l))continue;if(!WA.includes(l))continue}let y=i.options.defaultOptions?.[l],{schema:j,components:A={}}=await OA(c,y);i.components=$c(i.components,A),$y({route:m,specs:j,paths:n})}return n}function RA(r){let{valueOrFunc:i,c:n,method:m,path:c}=r;if(i!=null){if(typeof i==="boolean")return i;if(typeof i==="function")return i({c:n,method:m,path:c})}return!1}async function OA(r,i){if("spec"in r){let c={},l={...i,...r.spec,responses:{...i?.responses,...r.spec.responses}};if(l.responses)for(let y of Object.keys(l.responses)){let j=l.responses[y];if(!j||!("content"in j))continue;for(let A of Object.keys(j.content??{})){let S=j.content?.[A];if(!S)continue;if(S.schema&&"toOpenAPISchema"in S.schema){let v=await S.schema.toOpenAPISchema();if(S.schema=v.schema,v.components)c=$c(c,v.components)}}}return{schema:l,components:c}}let n=await r.toOpenAPISchema(),m=i??{};if(r.target==="form"||r.target==="json"){let c=r.options?.media??r.target==="json"?"application/json":"multipart/form-data";if(!m.requestBody||!("content"in m.requestBody)||!m.requestBody.content)m.requestBody={content:{[c]:{schema:n.schema}}};else m.requestBody.content[c]={schema:n.schema}}else{let c=[];if("$ref"in n.schema){let y=n.schema.$ref.split("/").pop();if(y&&n.components?.schemas?.[y]){let j=n.components.schemas[y],A=Ny(r.target,j)[0];if(!n.components.parameters)n.components.parameters={};n.components.parameters[y]=A,delete n.components.schemas[y],c.push({$ref:`#/components/parameters/${y}`})}}else c=Ny(r.target,n.schema);m.parameters=c}return{schema:m,components:n.components}}function Ny(r,i){let n=[];for(let[m,c]of Object.entries(i.properties??{})){let l={in:r==="param"?"path":r,name:m,schema:c};if(i.required?.includes(m))l.required=!0;if(l.schema&&"description"in l.schema&&l.schema.description)l.description=l.schema.description,l.schema.description=void 0;n.push(l)}return n}function $c(...r){return r.reduce((i,n,m)=>{if(n==null||m===0)return i;if(i.schemas&&Object.keys(i.schemas).length>0||n.schemas&&Object.keys(n.schemas).length>0)i.schemas={...i.schemas,...n.schemas};if(i.parameters&&Object.keys(i.parameters).length>0||n.parameters&&Object.keys(n.parameters).length>0)i.parameters={...i.parameters,...n.parameters};return i},r[0]??{})}function $(r,i){return{vendor:r["~standard"].vendor,validate:r["~standard"].validate,toJSONSchema:(n)=>Ey(r,{...i,...n}),toOpenAPISchema:(n)=>Sc(r,{...i,...n})}}function D(r,i,n,m){let c=Ay(r,i,n);return Object.assign(c,{[vc]:{target:r,...$(i,m),options:m}})}function G(r){return Object.assign(async(n,m)=>{await m()},{[vc]:{spec:r}})}var Gc=(r,i,n)=>{return(m,c)=>{let l=-1;return y(0);async function y(j){if(j<=l)throw Error("next() called multiple times");l=j;let A,S=!1,v;if(r[j])v=r[j][0][0],m.req.routeIndex=j;else v=j===r.length&&c||void 0;if(v)try{A=await v(m,()=>y(j+1))}catch(w){if(w instanceof Error&&i)m.error=w,A=await i(w,m),S=!0;else throw w}else if(m.finalized===!1&&n)A=await n(m);if(A&&(m.finalized===!1||S))m.res=A;return m}}};var Dy=Symbol();var Nc=(r)=>("headers"in r),Uy=async(r,i=Object.create(null))=>{let{all:n=!1,dot:m=!1}=i,y=(Nc(r)?r.headers:r.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();if(y==="multipart/form-data"||y==="application/x-www-form-urlencoded")return LA(r,{all:n,dot:m});return{}};async function LA(r,i){let n=Nc(r)?r.headers:r.raw.headers,m=await r.arrayBuffer(),c=zm(m,n.get("Content-Type")||"");if(!Nc(r))r.bodyCache.formData=c;let l=await c;if(l)return qA(l,i);return{}}function qA(r,i){let n=Object.create(null);if(r.forEach((m,c)=>{if(!(i.all||c.endsWith("[]")))n[c]=m;else _A(n,c,m)}),i.dot)Object.entries(n).forEach(([m,c])=>{if(m.includes("."))FA(n,m,c),delete n[m]});return n}var _A=(r,i,n)=>{if(r[i]!==void 0)if(Array.isArray(r[i]))r[i].push(n);else r[i]=[r[i],n];else if(!i.endsWith("[]"))r[i]=n;else r[i]=[n]},FA=(r,i,n)=>{if(/(?:^|\.)__proto__\./.test(i))return;let m=r,c=i.split(".");c.forEach((l,y)=>{if(y===c.length-1)m[l]=n;else{if(!m[l]||typeof m[l]!=="object"||Array.isArray(m[l])||m[l]instanceof File)m[l]=Object.create(null);m=m[l]}})};var Py=(r)=>Sn(r,Mn),Cy=class{raw;#r;#i;routeIndex=0;path;bodyCache={};constructor(r,i="/",n=[[]]){this.raw=r,this.path=i,this.#i=n,this.#r={}}param(r){return r?this.#n(r):this.#l()}#n(r){let i=this.#i[0][this.routeIndex][1][r],n=this.#c(i);return n&&/\%/.test(n)?Py(n):n}#l(){let r={},i=Object.keys(this.#i[0][this.routeIndex][1]);for(let n of i){let m=this.#c(this.#i[0][this.routeIndex][1][n]);if(m!==void 0)r[n]=/\%/.test(m)?Py(m):m}return r}#c(r){return this.#i[1]?this.#i[1][r]:r}query(r){return ny(this.url,r)}queries(r){return my(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let i={};return this.raw.headers.forEach((n,m)=>{i[m]=n}),i}async parseBody(r){return Uy(this,r)}#m=(r)=>{let{bodyCache:i,raw:n}=this,m=i[r];if(m)return m;let c=Object.keys(i)[0];if(c)return i[c].then((l)=>{if(c==="json")l=JSON.stringify(l);return new Response(l)[r]()});return i[r]=n[r]()};json(){return this.#m("text").then((r)=>JSON.parse(r))}text(){return this.#m("text")}arrayBuffer(){return this.#m("arrayBuffer")}bytes(){return this.#m("arrayBuffer").then((r)=>new Uint8Array(r))}blob(){return this.#m("blob")}formData(){return this.#m("formData")}addValidatedData(r,i){this.#r[r]=i}valid(r){return this.#r[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[Dy](){return this.#i}get matchedRoutes(){return this.#i[0].map(([[,r]])=>r)}get routePath(){return this.#i[0].map(([[,r]])=>r)[this.routeIndex].path}};var Mm={Stringify:1,BeforeStream:2,Stream:3},Wy=(r,i)=>{let n=new String(r);return n.isEscaped=!0,n.callbacks=i,n};var Tn=async(r,i,n,m,c)=>{if(typeof r==="object"&&!(r instanceof String)){if(!(r instanceof Promise))r=r.toString();if(r instanceof Promise)r=await r}let l=r.callbacks;if(!l?.length)return Promise.resolve(r);if(c)c[0]+=r;else c=[r];let y=Promise.all(l.map((j)=>j({phase:i,buffer:c,context:m}))).then((j)=>Promise.all(j.filter(Boolean).map((A)=>Tn(A,i,!1,m,c))).then(()=>c[0]));if(n)return Wy(await y,l);else return y};var Xy="text/plain; charset=UTF-8",Ec=(r,i)=>{return{"Content-Type":r,...i}},hn=(r,i)=>new Response(r,i),Qc=class{#r;#i;env={};#n;finalized=!1;error;#l;#c;#m;#S;#I;#A;#j;#v;#w;constructor(r,i){if(this.#r=r,i)this.#c=i.executionCtx,this.env=i.env,this.#A=i.notFoundHandler,this.#w=i.path,this.#v=i.matchResult}get req(){return this.#i??=new Cy(this.#r,this.#w,this.#v),this.#i}get event(){if(this.#c&&"respondWith"in this.#c)return this.#c;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#c)return this.#c;else throw Error("This context has no ExecutionContext")}get res(){return this.#m||=hn(null,{headers:this.#j??=new Headers})}set res(r){if(this.#m&&r){r=hn(r.body,r);for(let[i,n]of this.#m.headers.entries()){if(i==="content-type")continue;if(i==="set-cookie"){let m=this.#m.headers.getSetCookie();r.headers.delete("set-cookie");for(let c of m)r.headers.append("set-cookie",c)}else r.headers.set(i,n)}}this.#m=r,this.finalized=!0}render=(...r)=>{return this.#I??=(i)=>this.html(i),this.#I(...r)};setLayout=(r)=>this.#S=r;getLayout=()=>this.#S;setRenderer=(r)=>{this.#I=r};header=(r,i,n)=>{if(this.finalized)this.#m=hn(this.#m.body,this.#m);let m=this.#m?this.#m.headers:this.#j??=new Headers;if(i===void 0)m.delete(r);else if(n?.append)m.append(r,i);else m.set(r,i)};status=(r)=>{this.#l=r};set=(r,i)=>{this.#n??=new Map,this.#n.set(r,i)};get=(r)=>{return this.#n?this.#n.get(r):void 0};get var(){if(!this.#n)return{};return Object.fromEntries(this.#n)}#y(r,i,n){let m=this.#m?new Headers(this.#m.headers):this.#j??new Headers;if(typeof i==="object"&&"headers"in i){let l=i.headers instanceof Headers?i.headers:new Headers(i.headers);for(let[y,j]of l)if(y.toLowerCase()==="set-cookie")m.append(y,j);else m.set(y,j)}if(n)for(let[l,y]of Object.entries(n))if(typeof y==="string")m.set(l,y);else{m.delete(l);for(let j of y)m.append(l,j)}let c=typeof i==="number"?i:i?.status??this.#l;return hn(r,{status:c,headers:m})}newResponse=(...r)=>this.#y(...r);body=(r,i,n)=>this.#y(r,i,n);text=(r,i,n)=>{return!this.#j&&!this.#l&&!i&&!n&&!this.finalized?new Response(r):this.#y(r,i,Ec(Xy,n))};json=(r,i,n)=>{return this.#y(JSON.stringify(r),i,Ec("application/json",n))};html=(r,i,n)=>{let m=(c)=>this.#y(c,i,Ec("text/html; charset=UTF-8",n));return typeof r==="object"?Tn(r,Mm.Stringify,!1,{}).then(m):m(r)};redirect=(r,i)=>{let n=String(r);return this.header("Location",!/[^\x00-\xFF]/.test(n)?n:encodeURI(n)),this.newResponse(null,i??302)};notFound=()=>{return this.#A??=()=>hn(),this.#A(this)}};var o="ALL",Ky="all",Hy=["get","post","put","delete","options","patch"],Tm="Can not add a route since the matcher is already built.",hm=class extends Error{};var Dc="__COMPOSED_HANDLER";var gA=(r)=>{return r.text("404 Not Found",404)},Zy=(r,i)=>{if("getResponse"in r){let n=r.getResponse();return i.newResponse(n.body,n)}return console.error(r),i.text("Internal Server Error",500)},Vy=class r{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#r="/";routes=[];constructor(i={}){[...Hy,Ky].forEach((l)=>{this[l]=(y,...j)=>{if(typeof y==="string")this.#r=y;else this.#l(l,this.#r,y);return j.forEach((A)=>{this.#l(l,this.#r,A)}),this}}),this.on=(l,y,...j)=>{for(let A of[y].flat()){this.#r=A;for(let S of[l].flat())j.map((v)=>{this.#l(S.toUpperCase(),this.#r,v)})}return this},this.use=(l,...y)=>{if(typeof l==="string")this.#r=l;else this.#r="*",y.unshift(l);return y.forEach((j)=>{this.#l(o,this.#r,j)}),this};let{strict:m,...c}=i;Object.assign(this,c),this.getPath=m??!0?i.getPath??lc:ry}#i(){let i=new r({router:this.router,getPath:this.getPath});return i.errorHandler=this.errorHandler,i.#n=this.#n,i.routes=this.routes,i}#n=gA;errorHandler=Zy;route(i,n){let m=this.basePath(i);return n.routes.map((c)=>{let l;if(n.errorHandler===Zy)l=c.handler;else l=async(y,j)=>(await Gc([],n.errorHandler)(y,()=>c.handler(y,j))).res,l[Dc]=c.handler;m.#l(c.method,c.path,l,c.basePath)}),this}basePath(i){let n=this.#i();return n._basePath=Ji(this._basePath,i),n}onError=(i)=>{return this.errorHandler=i,this};notFound=(i)=>{return this.#n=i,this};mount(i,n,m){let c,l;if(m)if(typeof m==="function")l=m;else if(l=m.optionHandler,m.replaceRequest===!1)c=(A)=>A;else c=m.replaceRequest;let y=l?(A)=>{let S=l(A);return Array.isArray(S)?S:[S]}:(A)=>{let S=void 0;try{S=A.executionCtx}catch{}return[A.env,S]};c||=(()=>{let A=Ji(this._basePath,i),S=A==="/"?0:A.length;return(v)=>{let w=new URL(v.url);return w.pathname=this.getPath(v).slice(S)||"/",new Request(w,v)}})();let j=async(A,S)=>{let v=await n(c(A.req.raw),...y(A));if(v)return v;await S()};return this.#l(o,Ji(i,"*"),j),this}#l(i,n,m,c){i=i.toUpperCase(),n=Ji(this._basePath,n);let l={basePath:c!==void 0?Ji(this._basePath,c):this._basePath,path:n,method:i,handler:m};this.router.add(i,n,[m,l]),this.routes.push(l)}#c(i,n){if(i instanceof Error)return this.errorHandler(i,n);throw i}#m(i,n,m,c){if(c==="HEAD")return(async()=>new Response(null,await this.#m(i,n,m,"GET")))();let l=this.getPath(i,{env:m}),y=this.router.match(c,l),j=new Qc(i,{path:l,matchResult:y,env:m,executionCtx:n,notFoundHandler:this.#n});if(y[0].length===1){let S;try{S=y[0][0][0][0](j,async()=>{j.res=await this.#n(j)})}catch(v){return this.#c(v,j)}return S instanceof Promise?S.then((v)=>v||(j.finalized?j.res:this.#n(j))).catch((v)=>this.#c(v,j)):S??this.#n(j)}let A=Gc(y[0],this.errorHandler,this.#n);return(async()=>{try{let S=await A(j);if(!S.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return S.res}catch(S){return this.#c(S,j)}})()}fetch=(i,...n)=>{return this.#m(i,n[1],n[0],i.method)};request=(i,n,m,c)=>{if(i instanceof Request)return this.fetch(n?new Request(i,n):i,m,c);return i=i.toString(),this.fetch(new Request(/^https?:\/\//.test(i)?i:`http://localhost${Ji("/",i)}`,n),m,c)};fire=()=>{addEventListener("fetch",(i)=>{i.respondWith(this.#m(i.request,i,void 0,i.request.method))})}};var Bn=[];function Bm(r,i){let n=this.buildAllMatchers(),m=(c,l)=>{let y=n[c]||n[o],j=y[2][l];if(j)return j;let A=l.match(y[0]);if(!A)return[[],Bn];let S=A.indexOf("",1);return[y[1][S],A]};return this.match=m,m(r,i)}var om="[^/]+",on=".*",xn="(?:|/.*)",di=Symbol(),zA=new Set(".\\+*[^]$()");function MA(r,i){if(r.length===1)return i.length===1?r<i?-1:1:-1;if(i.length===1)return 1;if(r===on||r===xn)return 1;else if(i===on||i===xn)return-1;if(r===om)return 1;else if(i===om)return-1;return r.length===i.length?r<i?-1:1:i.length-r.length}var Yy=class r{#r;#i;#n=Object.create(null);insert(i,n,m,c,l){if(i.length===0){if(this.#r!==void 0)throw di;if(l)return;this.#r=n;return}let[y,...j]=i,A=y==="*"?j.length===0?["","",on]:["","",om]:y==="/*"?["","",xn]:y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),S;if(A){let v=A[1],w=A[2]||om;if(v&&A[2]){if(w===".*")throw di;if(w=w.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(w))throw di}if(S=this.#n[w],!S){if(Object.keys(this.#n).some((N)=>N!==on&&N!==xn))throw di;if(l)return;if(S=this.#n[w]=new r,v!=="")S.#i=c.varIndex++}if(!l&&v!=="")m.push([v,S.#i])}else if(S=this.#n[y],!S){if(Object.keys(this.#n).some((v)=>v.length>1&&v!==on&&v!==xn))throw di;if(l)return;S=this.#n[y]=new r}S.insert(j,n,m,c,l)}buildRegExpStr(){let n=Object.keys(this.#n).sort(MA).map((m)=>{let c=this.#n[m];return(typeof c.#i==="number"?`(${m})@${c.#i}`:zA.has(m)?`\\${m}`:m)+c.buildRegExpStr()});if(typeof this.#r==="number")n.unshift(`#${this.#r}`);if(n.length===0)return"";if(n.length===1)return n[0];return"(?:"+n.join("|")+")"}};var Jy=class{#r={varIndex:0};#i=new Yy;insert(r,i,n){let m=[],c=[];for(let y=0;;){let j=!1;if(r=r.replace(/\{[^}]+\}/g,(A)=>{let S=`@\\${y}`;return c[y]=[S,A],y++,j=!0,S}),!j)break}let l=r.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let y=c.length-1;y>=0;y--){let[j]=c[y];for(let A=l.length-1;A>=0;A--)if(l[A].indexOf(j)!==-1){l[A]=l[A].replace(j,c[y][1]);break}}return this.#i.insert(l,i,m,this.#r,n),m}buildRegExp(){let r=this.#i.buildRegExpStr();if(r==="")return[/^$/,[],[]];let i=0,n=[],m=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(c,l,y)=>{if(l!==void 0)return n[++i]=Number(l),"$()";if(y!==void 0)return m[Number(y)]=++i,"";return""}),[new RegExp(`^${r}`),n,m]}};var TA=[/^$/,[],Object.create(null)],Ry=Object.create(null);function Oy(r){return Ry[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(i,n)=>n?`\\${n}`:"(?:|/.*)")}$`)}function hA(){Ry=Object.create(null)}function BA(r){let i=new Jy,n=[];if(r.length===0)return TA;let m=r.map((S)=>[!/\*|\/:/.test(S[0]),...S]).sort(([S,v],[w,N])=>S?1:w?-1:v.length-N.length),c=Object.create(null);for(let S=0,v=-1,w=m.length;S<w;S++){let[N,E,Q]=m[S];if(N)c[E]=[Q.map(([Z])=>[Z,Object.create(null)]),Bn];else v++;let W;try{W=i.insert(E,v,N)}catch(Z){throw Z===di?new hm(E):Z}if(N)continue;n[v]=Q.map(([Z,X])=>{let K=Object.create(null);X-=1;for(;X>=0;X--){let[R,q]=W[X];K[R]=q}return[Z,K]})}let[l,y,j]=i.buildRegExp();for(let S=0,v=n.length;S<v;S++)for(let w=0,N=n[S].length;w<N;w++){let E=n[S][w]?.[1];if(!E)continue;let Q=Object.keys(E);for(let W=0,Z=Q.length;W<Z;W++)E[Q[W]]=j[E[Q[W]]]}let A=[];for(let S in y)A[S]=n[y[S]];return[l,A,c]}function wn(r,i){if(!r)return;for(let n of Object.keys(r).sort((m,c)=>c.length-m.length))if(Oy(n).test(i))return[...r[n]];return}var xm=class{name="RegExpRouter";#r;#i;constructor(){this.#r={[o]:Object.create(null)},this.#i={[o]:Object.create(null)}}add(r,i,n){let m=this.#r,c=this.#i;if(!m||!c)throw Error(Tm);if(!m[r])[m,c].forEach((j)=>{j[r]=Object.create(null),Object.keys(j[o]).forEach((A)=>{j[r][A]=[...j[o][A]]})});if(i==="/*")i="*";let l=(i.match(/\/:/g)||[]).length;if(/\*$/.test(i)){let j=Oy(i);if(r===o)Object.keys(m).forEach((A)=>{m[A][i]||=wn(m[A],i)||wn(m[o],i)||[]});else m[r][i]||=wn(m[r],i)||wn(m[o],i)||[];Object.keys(m).forEach((A)=>{if(r===o||r===A)Object.keys(m[A]).forEach((S)=>{j.test(S)&&m[A][S].push([n,l])})}),Object.keys(c).forEach((A)=>{if(r===o||r===A)Object.keys(c[A]).forEach((S)=>j.test(S)&&c[A][S].push([n,l]))});return}let y=gm(i)||[i];for(let j=0,A=y.length;j<A;j++){let S=y[j];Object.keys(c).forEach((v)=>{if(r===o||r===v)c[v][S]||=[...wn(m[v],S)||wn(m[o],S)||[]],c[v][S].push([n,l-A+j+1])})}}match=Bm;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#i).concat(Object.keys(this.#r)).forEach((i)=>{r[i]||=this.#n(i)}),this.#r=this.#i=void 0,hA(),r}#n(r){let i=[],n=r===o;if([this.#r,this.#i].forEach((m)=>{let c=m[r]?Object.keys(m[r]).map((l)=>[l,m[r][l]]):[];if(c.length!==0)n||=!0,i.push(...c);else if(r!==o)i.push(...Object.keys(m[o]).map((l)=>[l,m[o][l]]))}),!n)return null;else return BA(i)}};var oA=class{name="PreparedRegExpRouter";#r;#i;constructor(r,i){this.#r=r,this.#i=i}#n(r,i){let n=this.#r[r];n[1].forEach((m)=>m&&m.push(i)),Object.values(n[2]).forEach((m)=>m[0].push(i))}#l(r,i,n,m,c){let l=this.#r[r];if(!c)l[2][i][0].push([n,{}]);else m.forEach((y)=>{if(typeof y==="number")l[1][y].push([n,c]);else l[2][y||i][0].push([n,c])})}add(r,i,n){if(!this.#r[r]){let c=this.#r[o],l={};for(let y in c[2])l[y]=[c[2][y][0].slice(),Bn];this.#r[r]=[c[0],c[1].map((y)=>Array.isArray(y)?y.slice():0),l]}if(i==="/*"||i==="*"){let c=[n,{}];if(r===o)for(let l in this.#r)this.#n(l,c);else this.#n(r,c);return}let m=this.#i[i];if(!m)throw Error(`Path ${i} is not registered`);for(let[c,l]of m)if(r===o)for(let y in this.#r)this.#l(y,i,n,c,l);else this.#l(r,i,n,c,l)}buildAllMatchers(){return this.#r}match=Bm};var Uc=class{name="SmartRouter";#r=[];#i=[];constructor(r){this.#r=r.routers}add(r,i,n){if(!this.#i)throw Error(Tm);this.#i.push([r,i,n])}match(r,i){if(!this.#i)throw Error("Fatal error");let n=this.#r,m=this.#i,c=n.length,l=0,y;for(;l<c;l++){let j=n[l];try{for(let A=0,S=m.length;A<S;A++)j.add(...m[A]);y=j.match(r,i)}catch(A){if(A instanceof hm)continue;throw A}this.match=j.match.bind(j),this.#r=[j],this.#i=void 0;break}if(l===c)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,y}get activeRouter(){if(this.#i||this.#r.length!==1)throw Error("No active router has been determined yet.");return this.#r[0]}};var kn=Object.create(null),xA=(r)=>{for(let i in r)return!0;return!1},Ly=class r{#r;#i;#n;#l=0;#c=kn;constructor(i,n,m){if(this.#i=m||Object.create(null),this.#r=[],i&&n){let c=Object.create(null);c[i]={handler:n,possibleKeys:[],score:0},this.#r=[c]}this.#n=[]}insert(i,n,m){this.#l=++this.#l;let c=this,l=el(n),y=[];for(let j=0,A=l.length;j<A;j++){let S=l[j],v=l[j+1],w=sl(S,v),N=Array.isArray(w)?w[0]:S;if(N in c.#i){if(c=c.#i[N],w)y.push(w[1]);continue}if(c.#i[N]=new r,w)c.#n.push(w),y.push(w[1]);c=c.#i[N]}return c.#r.push({[i]:{handler:m,possibleKeys:y.filter((j,A,S)=>S.indexOf(j)===A),score:this.#l}}),c}#m(i,n,m,c,l){for(let y=0,j=n.#r.length;y<j;y++){let A=n.#r[y],S=A[m]||A[o],v={};if(S!==void 0){if(S.params=Object.create(null),i.push(S),c!==kn||l&&l!==kn)for(let w=0,N=S.possibleKeys.length;w<N;w++){let E=S.possibleKeys[w],Q=v[S.score];S.params[E]=l?.[E]&&!Q?l[E]:c[E]??l?.[E],v[S.score]=!0}}}}search(i,n){let m=[];this.#c=kn;let l=[this],y=cc(n),j=[],A=y.length,S=null;for(let v=0;v<A;v++){let w=y[v],N=v===A-1,E=[];for(let W=0,Z=l.length;W<Z;W++){let X=l[W],K=X.#i[w];if(K)if(K.#c=X.#c,N){if(K.#i["*"])this.#m(m,K.#i["*"],i,X.#c);this.#m(m,K,i,X.#c)}else E.push(K);for(let R=0,q=X.#n.length;R<q;R++){let z=X.#n[R],L=X.#c===kn?{}:{...X.#c};if(z==="*"){let Br=X.#i["*"];if(Br)this.#m(m,Br,i,X.#c),Br.#c=L,E.push(Br);continue}let[f,hr,Yr]=z;if(!w&&!(Yr instanceof RegExp))continue;let x=X.#i[f];if(Yr instanceof RegExp){if(S===null){S=Array(A);let An=n[0]==="/"?1:0;for(let zn=0;zn<A;zn++)S[zn]=An,An+=y[zn].length+1}let Br=n.substring(S[v]),Yi=Yr.exec(Br);if(Yi){if(L[hr]=Yi[0],this.#m(m,x,i,X.#c,L),Yi[0].length===Br.length&&x.#i["*"])this.#m(m,x.#i["*"],i,X.#c,L);if(xA(x.#i)){x.#c=L;let An=Yi[0].match(/\//)?.length??0;(j[An]||=[]).push(x)}continue}}if(Yr===!0||Yr.test(w))if(L[hr]=w,N){if(this.#m(m,x,i,L,X.#c),x.#i["*"])this.#m(m,x.#i["*"],i,L,X.#c)}else x.#c=L,E.push(x)}}let Q=j.shift();l=Q?E.concat(Q):E}if(m.length>1)m.sort((v,w)=>{return v.score-w.score});return[m.map(({handler:v,params:w})=>[v,w])]}};var Pc=class{name="TrieRouter";#r;constructor(){this.#r=new Ly}add(r,i,n){let m=gm(i);if(m){for(let c=0,l=m.length;c<l;c++)this.#r.insert(r,m[c],n);return}this.#r.insert(r,i,n)}match(r,i){return this.#r.search(r,i)}};var V=class extends Vy{constructor(r={}){super(r);this.router=r.router??new Uc({routers:[new xm,new Pc]})}};var Cc=/^\s*(?:text\/(?!event-stream(?:[;\s]|$))[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|msgpack|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|vnd\.msgpack|wasm|x-httpd-php|x-javascript|x-msgpack|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml|msgpack))(?:[;\s]|$)/i;var kA={br:".br",zstd:".zst",gzip:".gz"},oN=Object.keys(kA);var Wc="x-hono-disable-ssg",jE=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Wc]:"true"}})}catch{return null}})();var{write:xE}=Bun;var qy=class{#r;constructor(r){this.#r=r,this.raw=r.raw,this.url=r.url?new URL(r.url):null,this.protocol=r.protocol??null}send(r,i){this.#r.send(r,i??{})}raw;binaryType="arraybuffer";get readyState(){return this.#r.readyState}url;protocol;close(r,i){this.#r.close(r,i)}},_y=(r)=>{return new MessageEvent("message",{data:r})},Fy=(r)=>{return(...i)=>{if(typeof i[0]==="function"){let[n,m]=i;return async function(l,y){let j=await n(l),A=await r(l,j,m);if(A)return A;await y()}}else{let[n,m,c]=i;return(async()=>{let l=await r(n,m,c);if(!l)throw Error("Failed to upgrade WebSocket");return l})()}}};var km=(r)=>("server"in r.env)?r.env.server:r.env;var Xc=(r)=>{return new qy({send:(i,n)=>{r.send(i,n?.compress)},raw:r,readyState:r.readyState,url:r.data.url,protocol:r.data.protocol,close(i,n){r.close(i,n)}})},gy=Fy((r,i)=>{let n=km(r);if(!n)throw TypeError("env has to include the 2nd argument of fetch.");if(n.upgrade(r.req.raw,{data:{events:i,url:new URL(r.req.url),protocol:r.req.header("sec-websocket-protocol")?.split(",")[0]?.trim()??""}}))return new Response(null);return}),zy={open(r){let i=r.data.events;if(i.onOpen)i.onOpen(new Event("open"),Xc(r))},close(r,i,n){let m=r.data.events;if(m.onClose)m.onClose(new CloseEvent("close",{code:i,reason:n}),Xc(r))},message(r,i){let n=r.data.events;if(n.onMessage){let m=typeof i==="string"?i:i.buffer;n.onMessage(_y(m),Xc(r))}}},Kc=()=>({upgradeWebSocket:gy,websocket:zy});var My={create(r){let i=Kc();return{upgradeWebSocket:i.upgradeWebSocket,async listen(n){let m={fetch:r.fetch,hostname:n.hostname,idleTimeout:0,websocket:i.websocket},c=(y)=>{try{return Bun.serve({...m,port:y})}catch{return}},l=n.port===0?c(4096)??c(0):c(n.port);if(!l)throw Error(`Failed to start server on port ${n.port}`);if(!l.port)throw Error(`Failed to resolve server address for port ${n.port}`);return{port:l.port,stop(y){return Promise.resolve(l.stop(y))}}}}}};var Nn={};Nr(Nn,{unpublish:()=>Zj,publish:()=>Iv,MDNS:()=>Nn});var Hj=jv(Kj(),1),dn=_.create({service:"mdns"}),li,em;function Iv(r,i){if(em===r)return;if(li)Zj();try{let n=i??"qitqode.local",m=`qitqode-${r}`;li=new Hj.Bonjour;let c=li.publish({name:m,type:"http",host:n,port:r,txt:{path:"/"}});c.on("up",()=>{dn.info("mDNS service published",{name:m,port:r})}),c.on("error",(l)=>{dn.error("mDNS service error",{error:l})}),em=r}catch(n){if(dn.error("mDNS publish failed",{error:n}),li)try{li.destroy()}catch{}li=void 0,em=void 0}}function Zj(){if(li){try{li.unpublishAll(),li.destroy()}catch(r){dn.error("mDNS unpublish failed",{error:r})}li=void 0,em=void 0,dn.info("mDNS service unpublished")}}var Vj=(r)=>{let i=atob(r),n=new Uint8Array(new ArrayBuffer(i.length)),m=i.length/2;for(let c=0,l=i.length-1;c<=m;c++,l--)n[c]=i.charCodeAt(c),n[l]=i.charCodeAt(l);return n};var Av=/^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/,Sv=/^([^:]*):(.*)$/,vv=new TextDecoder,Yj=(r)=>{let i=Av.exec(r.headers.get("Authorization")||"");if(!i)return;let n=void 0;try{n=Sv.exec(vv.decode(Vj(i[1])))}catch{}if(!n)return;return{username:n[1],password:n[2]}};var Jj=(r,...i)=>{let n="username"in r&&"password"in r,m="verifyUser"in r;if(!(n||m))throw Error('basic auth middleware requires options for "username and password" or "verifyUser"');if(!r.realm)r.realm="Secure Area";if(!r.invalidUserMessage)r.invalidUserMessage="Unauthorized";if(n)i.unshift({username:r.username,password:r.password});return async function(l,y){let j=Yj(l.req.raw);if(j)if(m){if(await r.verifyUser(j.username,j.password,l)){if(r.onAuthSuccess)await r.onAuthSuccess(l,j.username);await y();return}}else for(let N of i){let[E,Q]=await Promise.all([Ic(N.username,j.username,r.hashFunction),Ic(N.password,j.password,r.hashFunction)]);if(E&&Q){if(r.onAuthSuccess)await r.onAuthSuccess(l,j.username);await y();return}}let A=401,S={"WWW-Authenticate":'Basic realm="'+r.realm?.replace(/"/g,"\\\"")+'"'},v=typeof r.invalidUserMessage==="function"?await r.invalidUserMessage(l):r.invalidUserMessage,w=typeof v==="string"?new Response(v,{status:A,headers:S}):new Response(JSON.stringify(v),{status:A,headers:{...S,"content-type":"application/json"}});throw new kr(A,{res:w})}};var Rj=(r)=>{let i={origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[],...r},n=((c)=>{if(typeof c==="string")if(c==="*")return()=>c;else return(l)=>c===l?l:null;else if(typeof c==="function")return c;else return(l)=>c.includes(l)?l:null})(i.origin),m=((c)=>{if(typeof c==="function")return c;else if(Array.isArray(c))return()=>c;else return()=>[]})(i.allowMethods);return async function(l,y){function j(S,v){l.res.headers.set(S,v)}let A=await n(l.req.header("origin")||"",l);if(A)j("Access-Control-Allow-Origin",A);if(i.credentials)j("Access-Control-Allow-Credentials","true");if(i.exposeHeaders?.length)j("Access-Control-Expose-Headers",i.exposeHeaders.join(","));if(l.req.method==="OPTIONS"){if(i.origin!=="*")j("Vary","Origin");if(i.maxAge!=null)j("Access-Control-Max-Age",i.maxAge.toString());let S=await m(l.req.header("origin")||"",l);if(S.length)j("Access-Control-Allow-Methods",S.join(","));let v=i.allowHeaders;if(!v?.length){let w=l.req.header("Access-Control-Request-Headers");if(w)v=w.split(/\s*,\s*/)}if(v?.length)j("Access-Control-Allow-Headers",v.join(",")),l.res.headers.append("Vary","Access-Control-Request-Headers");return l.res.headers.delete("Content-Length"),l.res.headers.delete("Content-Type"),new Response(null,{headers:l.res.headers,status:204,statusText:"No Content"})}if(await y(),i.origin!=="*")l.header("Vary","Origin",{append:!0})}};var Lj=(r)=>r===32||r===9||r===10||r===13,sm=(r,i)=>{while(i<r.length){if(!Lj(r.charCodeAt(i)))break;i++}return i},tn=(r,i)=>{while(i>0){if(!Lj(r.charCodeAt(i-1)))break;i--}return i},Oj=(r,i)=>{while(i<r.length){let n=r.charCodeAt(i);if(n===59)return[i+1,!0];if(n===44)return[i+1,!1];i++}return[i,!1]},wv=(r,i)=>{let n=i,m=!1;while(n<r.length){let c=r.charCodeAt(n);if(m&&c===92)n++;else if(c===34)m=!m;else if(!m&&c===44)return n+1;n++}return n},$v=(r,i)=>{i=sm(r,i);let n=i,m,c,l=!1;while(n<r.length){let A=r.charCodeAt(n);if(A===61){m=r.slice(i,tn(r,n)),n++;break}if(A===59)return[n+1,void 0,void 0,!0];if(A===44)return[n+1,void 0,void 0,!1];n++}if(m===void 0)return[n,void 0,void 0,!1];if(n=sm(r,n),r.charCodeAt(n)===61){let A=Oj(r,n+1);return[A[0],m,void 0,A[1]]}let y=!1,j=n;while(n<r.length){let A=r.charCodeAt(n);if(y&&A===92)n++;else if(A===34){if(y){let S=sm(r,n+1),v=r.charCodeAt(S);if(S<r.length&&!(v===59||v===44)){let w=Oj(r,S);return[w[0],m,void 0,w[1]]}if(c=r.slice(j+1,n),c.includes("\\"))c=c.replace(/\\(.)/g,"$1");if(v===44)return[S+1,m,c,!1];if(v===59)l=!0,S++;n=S;break}y=!0}else if(!y&&(A===59||A===44)){if(c=r.slice(j,tn(r,n)),A===59)l=!0;n++;break}n++}return[n,m,c??r.slice(j,tn(r,n)),l]},Gv=(r,i)=>{let n={type:"",params:{},q:1};i=sm(r,i);let m=i;while(m<r.length){let j=r.charCodeAt(m);if(j===59||j===44){if(n.type=r.slice(i,tn(r,m)),m++,j===44)return[m,n.type?n:void 0];if(!n.type)return[wv(r,m),void 0];break}m++}if(!n.type)return n.type=r.slice(i,tn(r,r.length)),[r.length,n.type?n:void 0];let c,l,y;while(m<r.length){if([m,c,l,y]=$v(r,m),c&&l)n.params[c]=l;if(!y)break}return[m,n]},qj=(r)=>{if(!r)return[];let i=[],n=0,m,c=!1,l;while(n<r.length)if([n,m]=Gv(r,n),m){if(m.q=Nv(m.params.q),i.push(m),l&&l.q<m.q)c=!0;l=m}if(c)i.sort((y,j)=>j.q-y.q);return i},Nv=(r)=>{if(r===void 0)return 1;if(r==="")return 1;if(r==="NaN")return 0;let i=Number(r);if(i===1/0)return 1;if(i===-1/0)return 0;if(Number.isNaN(i))return 1;if(i<0||i>1)return 1;return i};var Ev=["gzip","deflate"],Qv=/(?:^|,)\s*?no-transform\s*?(?:,|$)/i,Dv=(r,i)=>{if(r===void 0)return;let n=qj(r),m=n.find((l)=>l.type==="*")?.q,c;for(let l of i){let y=n.find((A)=>A.type.toLowerCase()===l),j=y?y.q:m??0;if(j===1)return l;else if(j>0&&(!c||j>c.q))c={encoding:l,q:j}}return c?.encoding},_j=(r)=>{let i=r?.threshold??1024,n=r?.encoding?[r.encoding]:Ev,m=r?.contentTypeFilter??Cc,c=typeof m==="function"?(l)=>{let y=l.headers.get("Content-Type");return y&&m(y)}:(l)=>{let y=l.headers.get("Content-Type");return y&&m.test(y)};return async function(y,j){await j();let A=y.res.headers.get("Content-Length");if(y.res.status===206||y.res.headers.has("Content-Encoding")||y.res.headers.has("Transfer-Encoding")||y.req.method==="HEAD"||A&&Number(A)<i||!c(y.res)||!Uv(y.res))return;let S=y.req.header("Accept-Encoding"),v=Dv(S,n);if(!v||!y.res.body)return;let w=new CompressionStream(v);y.res=new Response(y.res.body.pipeThrough(w),y.res),y.res.headers.delete("Content-Length"),y.res.headers.set("Content-Encoding",v);let N=y.res.headers.get("ETag");if(N&&!N.startsWith("W/"))y.res.headers.set("ETag",`W/${N}`)}},Uv=(r)=>{let i=r.headers.get("Cache-Control");return!i||!Qv.test(i)};import{randomUUID as Pv}from"crypto";var fm="ticket",Fj="x-qitqode-ticket",gj="1",Cv=/^\/pty\/[^/]+\/connect$/,Wv=60000,bn=new Map;function Xv(){let r=Date.now();for(let[i,n]of bn)if(n.expiresAt<=r)bn.delete(i)}function zj(r){return Cv.test(r)}function Mj(r,i=Wv){Xv();let n=Pv();return bn.set(n,{ptyID:r,expiresAt:Date.now()+i}),{ticket:n,expires_in:Math.round(i/1000)}}function Tj(r,i){let n=bn.get(r);if(!n)return!1;if(bn.delete(r),n.expiresAt<=Date.now())return!1;return n.ptyID===i}var r0=_.create({service:"server"}),hj=(r,i)=>{let n=crypto.randomUUID();r0.error("failed",{error_id:n,error:r});let m=()=>i.json(new En.Unknown({message:"Internal server error"}).toObject(),{status:500,headers:{"x-qitqode-error-id":n}});if(r instanceof En){let c;if(r instanceof Ci)c=404;else if(r instanceof ir.ModelNotFoundError)c=400;else if(r.name==="ProviderAuthValidationFailed")c=400;else if(r.name.startsWith("Worktree"))c=400;else c=500;if(c===500)return m();return i.json(r.toObject(),{status:c})}if(r instanceof J.BusyError)return i.json(new En.Unknown({message:r.message}).toObject(),{status:409});if(r instanceof kr)return r.getResponse();return m()},Bj=(r,i)=>{if(r.req.method==="OPTIONS")return i();let n=k.QITQODE_SERVER_PASSWORD;if(!n)return i();let m=new URL(r.req.url).pathname;if(zj(m)&&r.req.query(fm))return i();let c=k.QITQODE_SERVER_USERNAME??"qitqode";return Jj({username:c,password:n})(r,i)},oj=async(r,i)=>{let n=r.req.path==="/log";if(!n)r0.info("request",{method:r.req.method,path:r.req.path});let m=r0.time("request",{method:r.req.method,path:r.req.path});if(await i(),!n)m.stop()};function xj(r){return Rj({maxAge:86400,origin(i){if(!i)return;if(r?.cors?.includes(i))return i}})}function Kv(r){return r==="localhost"||r==="::1"||/^127(\.\d{1,3}){3}$/.test(r)||r==="127.0.0.1"}function Hv(r){if(r.startsWith("[")){let i=r.indexOf("]");return i===-1?r:r.slice(1,i)}return r.split(":")[0]}function kj(r){let i=r.hostname===void 0,n=r.hostname==="0.0.0.0"||r.hostname==="::";return(m,c)=>{if(i||n)return c();let l=m.req.header("host");if(!l)return c();let y=Hv(l);if(Kv(y))return c();if(r.hostname&&y===r.hostname)return c();if(r.mdnsDomain&&y===r.mdnsDomain)return c();if(r.allowedHosts?.includes(y))return c();throw r0.warn("rejected request with unexpected Host header",{host:y}),new kr(403,{message:`Forbidden: unexpected Host header "${y}"`})}}var Zv=_j(),pj=(r,i)=>{let n=r.req.path,m=r.req.method;if(n==="/event"||n==="/global/event")return i();if(m==="POST"&&/\/session\/[^/]+\/(message|prompt_async)$/.test(n))return i();return Zv(r,i)};var p={};Nr(p,{waitForSync:()=>Tv,status:()=>zv,startWorkspaceSyncing:()=>uc,sessionRestore:()=>qv,remove:()=>Fv,list:()=>_v,isSyncing:()=>Mv,get:()=>i1,create:()=>Ov,Workspace:()=>p,Info:()=>i0,Event:()=>sn,ConnectionStatus:()=>r1});var uj=["forgewise"];var Vv=new TextEncoder;function Yv(r){return Vv.encode(r).byteLength}function aj(r,i=16384){let n=[...uj.filter((l)=>(l in r)),...Object.keys(r).filter((l)=>!uj.includes(l))],m={},c=0;for(let l of n){let y={...m,[l]:r[l]},j=JSON.stringify(y);if(Yv(j)>i)continue;m[l]=r[l],c+=1}if(c===0)return;return JSON.stringify(m)}var Hr=dj("workspace",{id:Li().$type().primaryKey(),type:Li().notNull(),name:Li().notNull().default(""),branch:Li(),directory:Li(),extra:Li({mode:"json"}),project_id:Li().$type().notNull().references(()=>tj.id,{onDelete:"cascade"})});async function bj(r,i,n){let m=r.getReader(),c=new TextDecoder,l="",y="",j=1000,A=()=>{m.cancel().catch(()=>{return})};if(i.addEventListener("abort",A),i.aborted)A();try{while(!i.aborted){let S=await m.read().catch(()=>({done:!0,value:void 0}));if(S.done)break;l+=c.decode(S.value,{stream:!0}),l=l.replace(/\r\n/g,`
2
+ import{bg as In,cg as a2,dg as d2,eg as o2,fg as x2,gg as t2,hg as b2,ig as e2,jg as s2,kg as f2,lg as k2,og as nA}from"./chunk-8r6ht39z.js";import{pg as Er,qg as R2}from"./chunk-mqd1jsg2.js";import{zg as P2}from"./chunk-gz8sz7z1.js";import{Hg as Sc}from"./chunk-cjww2jmv.js";import{Jg as Ey}from"./chunk-xvwvd4kq.js";import{Kg as fj}from"./chunk-d3ermm6d.js";import{$g as b0,Lg as _n,Sg as Xr,Tg as Km,Vg as Hm,Wg as xi,Xg as ai,Yg as im,Zg as Ll,_g as gl,ah as Zm,bh as S2,ch as Dr,dh as jn,eh as Wr,gh as e}from"./chunk-caj1b9y7.js";import{Hh as y2,Ih as ql,Ph as tc,Qh as _l,Th as Ml,Uh as yn,hh as Tl,ih as zl,jh as ui,nh as hl,uh as mm,xh as _r,zh as bc}from"./chunk-ygs5pzk7.js";import{$j as f0,Cl as J,Dl as mr,Wj as wr,Wk as Pn,Xj as rm,Xk as Qr,Yj as Y2,Zj as J2,ak as qn,bk as K2,fk as sj,fl as qr,gk as tr,gl as _i,hk as Zr,hl as jA,ik as Q1,jk as yr,kk as br,lk as Si,mk as pi,ml as c2,pk as Ym,rl as ir,sl as Cr,tl as vr,vl as w1,wl as j0,xk as A2,yk as lr,zk as er}from"./chunk-257me4z3.js";import{Fl as ul,Pl as uI}from"./chunk-nkkch4h7.js";import{Ql as Lr,Ul as tj,Vl as nr,Wl as Xi,Xl as Ki,am as iA,bm as b,dm as Ci,fm as l0,jm as Gr,lm as M}from"./chunk-s3mnrhbx.js";import{xm as yi}from"./chunk-ezfy0b6q.js";import{Vm as Li,Xm as dj,_m as d,an as nm,bn as g2,cn as z2,gn as M2,hn as fn,wn as c0}from"./chunk-bn0h9dny.js";import{qo as D2,vo as U2}from"./chunk-we9cv8we.js";import{Co as F}from"./chunk-2hc5z7b5.js";import{Fq as tI,Gq as bI,Hq as Dn}from"./chunk-d9hbhkbq.js";import{Qq as sI,Rq as fI}from"./chunk-ad72gb5f.js";import{Ar as RI,Br as eI,Cr as OI,Dr as LI,Er as qI,Fr as q1,Gr as Im,Xq as PI,_q as Wn,kr as B0,lr as Pr,mr as CI,nr as o0,or as WI,pr as XI,qr as KI,rr as HI,sr as zr,tr as Ql,ur as x0,vr as ZI,wr as VI,xr as YI,yr as JI,zr as k0}from"./chunk-d6ry9418.js";import{Sr as En}from"./chunk-4cnwn1rh.js";import{Qs as Vi,Rs as k,Vr as mA,_s as _,fs as pI}from"./chunk-xj765svc.js";import{ct as m0,nt as kl,ot as yA,st as Wi}from"./chunk-tqj69nh6.js";import{ut as I}from"./chunk-5tray1fw.js";import{Oy as ji,nz as mI,oz as cI}from"./chunk-gagtmjmp.js";import{$B as K0,$F as vI,$J as T0,AB as II,AF as wm,AH as NI,BH as EI,BK as ml,CF as AI,CI as DI,EE as g1,FK as X1,GF as Ti,GH as QI,GN as UI,HH as S0,IE as Y0,JH as d1,KF as SI,KH as A0,KM as gr,Kz as Ii,LH as t1,MF as h0,MH as Al,MM as cl,Mz as Xl,NH as Sl,NM as H0,Nz as Fi,OB as MI,OE as T,OH as b1,OK as Dm,PH as e1,QB as Mi,QF as R0,QH as W1,RH as ec,RM as g,Rz as o1,SH as wl,TH as s1,TK as sc,Tz as P1,WF as hi,WK as jm,YB as O1,ZB as L1,aK as Nl,bH as Pl,bL as Zn,eK as f1,fC as u1,fL as Cn,hG as Gl,hL as Fr,iA as gi,jB as Dl,lB as x1,mC as $r,mF as J0,mG as $m,mK as rI,nC as V0,nG as wI,oE as Sm,oG as Ul,oK as iI,pC as or,pH as C,pK as nI,qC as Ai,rB as k1,rC as O0,rG as z1,sB as p1,sF as t,tC as Um,tH as $I,tK as W0,uB as Qm,uC as Il,vC as vl,vH as GI,vK as X0,wC as Mr,wH as Ln,xC as Am,xH as Cl,xK as Pm,yC as a1,zC as Zi,zF as vm,zK as El}from"./chunk-zs8kqdsf.js";import{BO as jv,CO as rr,DO as Nr,FO as bi}from"./chunk-7xm75w1e.js";var pm=rr((By)=>{Object.defineProperty(By,"__esModule",{value:!0});By.default=aA;var Ty=/[A-Z]/g;function hy(r){return r.toLowerCase()}function aA(r,i){let n=r.replace(Ty,hy),m=i.replace(Ty,hy);return n===m}});var Zc=rr((oy)=>{Object.defineProperty(oy,"__esModule",{value:!0});oy.DnsTxt=void 0;class Hc{constructor(r={}){this.binary=r?r.binary:!1}encode(r={}){return Object.entries(r).map(([i,n])=>{let m=`${i}=${n}`;return Buffer.from(m)})}decode(r){var i={};try{let m=r.toString().split(/=(.+)/),c=m[0],l=m[1];i[c]=l}catch(n){}return i}decodeAll(r){return r.filter((i)=>i.length>1).map((i)=>this.decode(i)).reduce((i,n)=>{var m=i;let[c]=Object.keys(n),[l]=Object.values(n);return m[c]=l,m},{})}}oy.DnsTxt=Hc;oy.default=Hc});var Vc=rr((py)=>{Object.defineProperty(py,"__esModule",{value:!0});py.toType=py.toString=void 0;var ky=(r)=>{return"_"+r},bA=(r)=>{return["name","protocol","subtype"].includes(r)},eA=(r)=>{let i={name:r.name,protocol:r.protocol,subtype:r.subtype};return Object.entries(i).filter(([m,c])=>bA(m)&&c!==void 0).reduce((m,[c,l])=>{switch(typeof l){case"object":l.map((y)=>m.push(ky(y)));break;default:m.push(ky(l));break}return m},[]).join(".")};py.toString=eA;var sA=(r)=>{let i=r.split("."),n;for(let m in i){if(i[m][0]!=="_")continue;i[m]=i[m].slice(1)}if(i.includes("sub"))n=i.shift(),i.shift();return{name:i.shift(),protocol:i.shift()||null,subtype:n}};py.toType=sA});var Jc=rr((ti)=>{var dy=ti&&ti.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ti,"__esModule",{value:!0});ti.Service=void 0;var ay=dy(bi("os")),rS=dy(Zc()),iS=bi("events"),nS=Vc(),um=".local";class Yc extends iS.EventEmitter{constructor(r){super();if(this.probe=!0,this.published=!1,this.activated=!1,this.destroyed=!1,this.txtService=new rS.default,!r.name)throw Error("ServiceConfig requires `name` property to be set");if(!r.type)throw Error("ServiceConfig requires `type` property to be set");if(!r.port)throw Error("ServiceConfig requires `port` property to be set");this.name=r.name.split(".").join("-"),this.protocol=r.protocol||"tcp",this.type=(0,nS.toString)({name:r.type,protocol:this.protocol}),this.port=r.port,this.host=r.host||ay.default.hostname(),this.fqdn=`${this.name}.${this.type}${um}`,this.txt=r.txt,this.subtypes=r.subtypes,this.disableIPv6=!!r.disableIPv6}records(){var r=[this.RecordPTR(this),this.RecordSRV(this),this.RecordTXT(this)];for(let n of this.subtypes||[])r.push(this.RecordSubtypePTR(this,n));let i=Object.values(ay.default.networkInterfaces());for(let n of i){let m=n;for(let c of m){if(c.internal||c.mac==="00:00:00:00:00:00")continue;switch(c.family){case"IPv4":r.push(this.RecordA(this,c.address));break;case"IPv6":if(this.disableIPv6)break;r.push(this.RecordAAAA(this,c.address));break}}}return r}RecordPTR(r){return{name:`${r.type}${um}`,type:"PTR",ttl:28800,data:r.fqdn}}RecordSubtypePTR(r,i){return{name:`_${i}._sub.${r.type}${um}`,type:"PTR",ttl:28800,data:`${r.name}.${r.type}${um}`}}RecordSRV(r){return{name:r.fqdn,type:"SRV",ttl:120,data:{port:r.port,target:r.host}}}RecordTXT(r){return{name:r.fqdn,type:"TXT",ttl:4500,data:this.txtService.encode(r.txt)}}RecordA(r,i){return{name:r.host,type:"A",ttl:120,data:i}}RecordAAAA(r,i){return{name:r.host,type:"AAAA",ttl:120,data:i}}}ti.Service=Yc;ti.default=Yc});var by=rr((ei)=>{var ty=ei&&ei.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ei,"__esModule",{value:!0});ei.Registry=void 0;var mS=ty(pm()),Rc=ty(Jc()),cS=3600000,lS=3,yS=function(){};class Oc{constructor(r){this.services=[],this.server=r}publish(r){function i(c,l,y){if(c.activated)return;if(c.activated=!0,l.services.push(c),!(c instanceof Rc.default))return;if(y===null||y===void 0?void 0:y.probe)l.probe(l.server.mdns,c,(j)=>{if(j){if(c.stop!==void 0)c.stop();console.log(Error("Service name is already in use on the network"));return}l.announce(l.server,c)});else l.announce(l.server,c)}function n(c,l,y){if(!y)y=yS;if(!c.activated)return process.nextTick(y);if(!(c instanceof Rc.default))return process.nextTick(y);l.teardown(l.server,c,y);let j=l.services.indexOf(c);if(j!==-1)l.services.splice(j,1)}let m=new Rc.default(r);return m.start=i.bind(null,m,this),m.stop=n.bind(null,m,this),m.start({probe:r.probe!==!1}),m}unpublishAll(r){this.teardown(this.server,this.services,r),this.services=[]}destroy(){this.services.map((r)=>r.destroyed=!0)}probe(r,i,n){var m=!1,c=0,l;let y=()=>{if(!i.activated||i.destroyed)return;r.query(i.fqdn,"ANY",function(){m=!0,l=setTimeout(++c<3?y:S,250),l.unref()})},j=(v)=>{if(!m)return;if(v.answers.some(A)||v.additionals.some(A))S(!0)},A=(v)=>{return(0,mS.default)(v.name,i.fqdn)},S=(v)=>{r.removeListener("response",j),clearTimeout(l),n(!!v)};r.on("response",j),setTimeout(y,Math.random()*250)}announce(r,i){var n=1000,m=i.records();r.register(m);let c=()=>{if(!i.activated||i.destroyed)return;r.mdns.respond(m,function(){if(!i.published)i.activated=!0,i.published=!0,i.emit("up");if(n=n*lS,n<cS&&!i.destroyed)setTimeout(c,n).unref()})};c()}teardown(r,i,n){if(!Array.isArray(i))i=[i];i=i.filter((c)=>c.activated);var m=i.flatMap(function(c){c.activated=!1;var l=c.records();return l.forEach((y)=>{y.ttl=0}),l});if(m.length===0)return n&&process.nextTick(n);r.unregister(m),r.mdns.respond(m,function(){if(i.forEach(function(c){c.published=!1}),typeof n==="function")n.apply(null,arguments)})}}ei.Registry=Oc;ei.default=Oc});var ey=rr((jS)=>{jS.toString=function(r){switch(r){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+r};jS.toType=function(r){switch(r.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(r.toUpperCase().startsWith("UNKNOWN_"))return parseInt(r.slice(8));return 0}});var sy=rr((SS)=>{SS.toString=function(r){switch(r){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+r};SS.toRcode=function(r){switch(r.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var fy=rr(($S)=>{$S.toString=function(r){switch(r){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+r};$S.toOpcode=function(r){switch(r.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var rj=rr((ES)=>{ES.toString=function(r){switch(r){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+r};ES.toClass=function(r){switch(r.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var ij=rr((US)=>{US.toString=function(r){switch(r){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(r<0)return null;return`OPTION_${r}`};US.toCode=function(r){if(typeof r==="number")return r;if(!r)return-1;switch(r.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let i=r.match(/_(\d+)$/);if(i)return parseInt(i[1],10);return-1}});var cj=rr((mj,Lc)=>{var nj=function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.decode=w,r.encode=v,r.familyOf=S,r.name=void 0,r.sizeOf=A,r.v6=r.v4=void 0;let i=/^(\d{1,3}\.){3,3}\d{1,3}$/,n=4,m=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,c=16,l={name:"v4",size:n,isFormat:(N)=>i.test(N),encode(N,E,Q){Q=~~Q,E=E||new Uint8Array(Q+n);let W=N.length,Z=0;for(let X=0;X<W;){let K=N.charCodeAt(X++);if(K===46)E[Q++]=Z,Z=0;else Z=Z*10+(K-48)}return E[Q]=Z,E},decode(N,E){return E=~~E,`${N[E++]}.${N[E++]}.${N[E++]}.${N[E]}`}};r.v4=l;let y={name:"v6",size:c,isFormat:(N)=>N.length>0&&m.test(N),encode(N,E,Q){Q=~~Q;let W=Q+c,Z=-1,X=0,K=0,R=!0,q=!1;E=E||new Uint8Array(Q+c);for(let z=0;z<N.length;z++){let L=N.charCodeAt(z);if(L===58){if(R){if(Z!==-1){if(Q<W)E[Q]=0;if(Q<W-1)E[Q+1]=0;Q+=2}else if(Q<W)Z=Q}else{if(q===!0){if(Q<W)E[Q]=K;Q++}else{if(Q<W)E[Q]=X>>8;if(Q<W-1)E[Q+1]=X&255;Q+=2}X=0,K=0}R=!0,q=!1}else if(L===46){if(Q<W)E[Q]=K;Q++,K=0,X=0,R=!1,q=!0}else{if(R=!1,L>=97)L-=87;else if(L>=65)L-=55;else L-=48,K=K*10+L;X=(X<<4)+L}}if(R===!1)if(q===!0){if(Q<W)E[Q]=K;Q++}else{if(Q<W)E[Q]=X>>8;if(Q<W-1)E[Q+1]=X&255;Q+=2}else if(Z===0){if(Q<W)E[Q]=0;if(Q<W-1)E[Q+1]=0;Q+=2}else if(Z!==-1){Q+=2;for(let z=Math.min(Q-1,W-1);z>=Z+2;z--)E[z]=E[z-2];E[Z]=0,E[Z+1]=0,Z=Q}if(Z!==Q&&Z!==-1){if(Q>W-2)Q=W-2;while(W>Z)E[--W]=Q<W&&Q>Z?E[--Q]:0}else while(Q<W)E[Q++]=0;return E},decode(N,E){E=~~E;let Q="";for(let W=0;W<c;W+=2){if(W!==0)Q+=":";Q+=(N[E+W]<<8|N[E+W+1]).toString(16)}return Q.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};r.v6=y;let j="ip";r.name=j;function A(N){if(l.isFormat(N))return l.size;if(y.isFormat(N))return y.size;throw Error(`Invalid ip address: ${N}`)}function S(N){return A(N)===l.size?1:2}function v(N,E,Q){Q=~~Q;let W=A(N);if(typeof E==="function")E=E(Q+W);if(W===l.size)return l.encode(N,E,Q);return y.encode(N,E,Q)}function w(N,E,Q){if(E=~~E,Q=Q||N.length-E,Q===l.size)return l.decode(N,E,Q);if(Q===y.size)return y.decode(N,E,Q);throw Error(`Invalid buffer size needs to be ${l.size} for v4 or ${y.size} for v6.`)}return"default"in r?r.default:r}({});if(typeof define==="function"&&define.amd)define([],function(){return nj});else if(typeof Lc==="object"&&typeof mj==="object")Lc.exports=nj});var lj=rr((ZS)=>{var Y=bi("buffer").Buffer,Pi=ey(),WS=sy(),XS=fy(),dm=rj(),Fc=ij(),si=cj(),H=ZS.name={};H.encode=function(r,i,n,{mail:m=!1}={}){if(!i)i=Y.alloc(H.encodingLength(r));if(!n)n=0;let c=n,l=r.replace(/^\.|\.$/gm,"");if(l.length){let y=[];if(m){let j="";l.split(".").forEach((A)=>{if(A.endsWith("\\"))j+=(j.length?".":"")+A.slice(0,-1);else if(y.length===0&&j.length)y.push(j+"."+A);else y.push(A)})}else y=l.split(".");for(let j=0;j<y.length;j++){let A=i.write(y[j],n+1);i[n]=A,n+=A+1}}return i[n++]=0,H.encode.bytes=n-c,i};H.encode.bytes=0;H.decode=function(r,i,{mail:n=!1}={}){if(!i)i=0;let m=[],c=i,l=0,y=0,j=!1;while(!0){if(i>=r.length)throw Error("Cannot decode name (buffer overflow)");let A=r[i++];if(y+=j?0:1,A===0)break;else if((A&192)===0){if(i+A>r.length)throw Error("Cannot decode name (buffer overflow)");if(l+=A+1,l>254)throw Error("Cannot decode name (name too long)");let S=r.toString("utf-8",i,i+A);if(n)S=S.replace(/\./g,"\\.");m.push(S),i+=A,y+=j?0:A}else if((A&192)===192){if(i+1>r.length)throw Error("Cannot decode name (buffer overflow)");let S=r.readUInt16BE(i-1)-49152;if(S>=c)throw Error("Cannot decode name (bad pointer)");i=S,c=S,y+=j?0:1,j=!0}else throw Error("Cannot decode name (bad label)")}return H.decode.bytes=y,m.length===0?".":m.join(".")};H.decode.bytes=0;H.encodingLength=function(r){if(r==="."||r==="..")return 1;return Y.byteLength(r.replace(/^\.|\.$/gm,""))+2};var O={};O.encode=function(r,i,n){if(!i)i=Y.alloc(O.encodingLength(r));if(!n)n=0;let m=i.write(r,n+1);return i[n]=m,O.encode.bytes=m+1,i};O.encode.bytes=0;O.decode=function(r,i){if(!i)i=0;let n=r[i],m=r.toString("utf-8",i+1,i+1+n);return O.decode.bytes=n+1,m};O.decode.bytes=0;O.encodingLength=function(r){return Y.byteLength(r)+1};var ar={};ar.encode=function(r,i,n){if(!i)i=ar.encodingLength(r);if(!n)n=0;let m=(r.flags||0)&32767,c=r.type==="response"?32768:0;return i.writeUInt16BE(r.id||0,n),i.writeUInt16BE(m|c,n+2),i.writeUInt16BE(r.questions.length,n+4),i.writeUInt16BE(r.answers.length,n+6),i.writeUInt16BE(r.authorities.length,n+8),i.writeUInt16BE(r.additionals.length,n+10),i};ar.encode.bytes=12;ar.decode=function(r,i){if(!i)i=0;if(r.length<12)throw Error("Header must be 12 bytes");let n=r.readUInt16BE(i+2);return{id:r.readUInt16BE(i),type:n&32768?"response":"query",flags:n&32767,flag_qr:(n>>15&1)===1,opcode:XS.toString(n>>11&15),flag_aa:(n>>10&1)===1,flag_tc:(n>>9&1)===1,flag_rd:(n>>8&1)===1,flag_ra:(n>>7&1)===1,flag_z:(n>>6&1)===1,flag_ad:(n>>5&1)===1,flag_cd:(n>>4&1)===1,rcode:WS.toString(n&15),questions:Array(r.readUInt16BE(i+4)),answers:Array(r.readUInt16BE(i+6)),authorities:Array(r.readUInt16BE(i+8)),additionals:Array(r.readUInt16BE(i+10))}};ar.decode.bytes=12;ar.encodingLength=function(){return 12};var vi=ZS.unknown={};vi.encode=function(r,i,n){if(!i)i=Y.alloc(vi.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(r.length,n),r.copy(i,n+2),vi.encode.bytes=r.length+2,i};vi.encode.bytes=0;vi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m=r.slice(i+2,i+2+n);return vi.decode.bytes=n+2,m};vi.decode.bytes=0;vi.encodingLength=function(r){return r.length+2};var wi=ZS.ns={};wi.encode=function(r,i,n){if(!i)i=Y.alloc(wi.encodingLength(r));if(!n)n=0;return H.encode(r,i,n+2),i.writeUInt16BE(H.encode.bytes,n),wi.encode.bytes=H.encode.bytes+2,i};wi.encode.bytes=0;wi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m=H.decode(r,i+2);return wi.decode.bytes=n+2,m};wi.decode.bytes=0;wi.encodingLength=function(r){return H.encodingLength(r)+2};var $i=ZS.soa={};$i.encode=function(r,i,n){if(!i)i=Y.alloc($i.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.mname,i,n),n+=H.encode.bytes,H.encode(r.rname,i,n,{mail:!0}),n+=H.encode.bytes,i.writeUInt32BE(r.serial||0,n),n+=4,i.writeUInt32BE(r.refresh||0,n),n+=4,i.writeUInt32BE(r.retry||0,n),n+=4,i.writeUInt32BE(r.expire||0,n),n+=4,i.writeUInt32BE(r.minimum||0,n),n+=4,i.writeUInt16BE(n-m-2,m),$i.encode.bytes=n-m,i};$i.encode.bytes=0;$i.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.mname=H.decode(r,i),i+=H.decode.bytes,m.rname=H.decode(r,i,{mail:!0}),i+=H.decode.bytes,m.serial=r.readUInt32BE(i),i+=4,m.refresh=r.readUInt32BE(i),i+=4,m.retry=r.readUInt32BE(i),i+=4,m.expire=r.readUInt32BE(i),i+=4,m.minimum=r.readUInt32BE(i),i+=4,$i.decode.bytes=i-n,m};$i.decode.bytes=0;$i.encodingLength=function(r){return 22+H.encodingLength(r.mname)+H.encodingLength(r.rname)};var Gi=ZS.txt={};Gi.encode=function(r,i,n){if(!Array.isArray(r))r=[r];for(let c=0;c<r.length;c++){if(typeof r[c]==="string")r[c]=Y.from(r[c]);if(!Y.isBuffer(r[c]))throw Error("Must be a Buffer")}if(!i)i=Y.alloc(Gi.encodingLength(r));if(!n)n=0;let m=n;return n+=2,r.forEach(function(c){i[n++]=c.length,c.copy(i,n,0,c.length),n+=c.length}),i.writeUInt16BE(n-m-2,m),Gi.encode.bytes=n-m,i};Gi.encode.bytes=0;Gi.decode=function(r,i){if(!i)i=0;let n=i,m=r.readUInt16BE(i);i+=2;let c=[];while(m>0){let l=r[i++];if(--m,m<l)throw Error("Buffer overflow");c.push(r.slice(i,i+l)),i+=l,m-=l}return Gi.decode.bytes=i-n,c};Gi.decode.bytes=0;Gi.encodingLength=function(r){if(!Array.isArray(r))r=[r];let i=2;return r.forEach(function(n){if(typeof n==="string")i+=Y.byteLength(n)+1;else i+=n.length+1}),i};var Ni=ZS.null={};Ni.encode=function(r,i,n){if(!i)i=Y.alloc(Ni.encodingLength(r));if(!n)n=0;if(typeof r==="string")r=Y.from(r);if(!r)r=Y.alloc(0);let m=n;n+=2;let c=r.length;return r.copy(i,n,0,c),n+=c,i.writeUInt16BE(n-m-2,m),Ni.encode.bytes=n-m,i};Ni.encode.bytes=0;Ni.decode=function(r,i){if(!i)i=0;let n=i,m=r.readUInt16BE(i);i+=2;let c=r.slice(i,i+m);return i+=m,Ni.decode.bytes=i-n,c};Ni.decode.bytes=0;Ni.encodingLength=function(r){if(!r)return 2;return(Y.isBuffer(r)?r.length:Y.byteLength(r))+2};var Ei=ZS.hinfo={};Ei.encode=function(r,i,n){if(!i)i=Y.alloc(Ei.encodingLength(r));if(!n)n=0;let m=n;return n+=2,O.encode(r.cpu,i,n),n+=O.encode.bytes,O.encode(r.os,i,n),n+=O.encode.bytes,i.writeUInt16BE(n-m-2,m),Ei.encode.bytes=n-m,i};Ei.encode.bytes=0;Ei.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.cpu=O.decode(r,i),i+=O.decode.bytes,m.os=O.decode(r,i),i+=O.decode.bytes,Ei.decode.bytes=i-n,m};Ei.decode.bytes=0;Ei.encodingLength=function(r){return O.encodingLength(r.cpu)+O.encodingLength(r.os)+2};var pr=ZS.ptr={},KS=ZS.cname=pr,HS=ZS.dname=pr;pr.encode=function(r,i,n){if(!i)i=Y.alloc(pr.encodingLength(r));if(!n)n=0;return H.encode(r,i,n+2),i.writeUInt16BE(H.encode.bytes,n),pr.encode.bytes=H.encode.bytes+2,i};pr.encode.bytes=0;pr.decode=function(r,i){if(!i)i=0;let n=H.decode(r,i+2);return pr.decode.bytes=H.decode.bytes+2,n};pr.decode.bytes=0;pr.encodingLength=function(r){return H.encodingLength(r)+2};var Qi=ZS.srv={};Qi.encode=function(r,i,n){if(!i)i=Y.alloc(Qi.encodingLength(r));if(!n)n=0;i.writeUInt16BE(r.priority||0,n+2),i.writeUInt16BE(r.weight||0,n+4),i.writeUInt16BE(r.port||0,n+6),H.encode(r.target,i,n+8);let m=H.encode.bytes+6;return i.writeUInt16BE(m,n),Qi.encode.bytes=m+2,i};Qi.encode.bytes=0;Qi.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i),m={};return m.priority=r.readUInt16BE(i+2),m.weight=r.readUInt16BE(i+4),m.port=r.readUInt16BE(i+6),m.target=H.decode(r,i+8),Qi.decode.bytes=n+2,m};Qi.decode.bytes=0;Qi.encodingLength=function(r){return 8+H.encodingLength(r.target)};var Jr=ZS.caa={};Jr.ISSUER_CRITICAL=128;Jr.encode=function(r,i,n){let m=Jr.encodingLength(r);if(!i)i=Y.alloc(Jr.encodingLength(r));if(!n)n=0;if(r.issuerCritical)r.flags=Jr.ISSUER_CRITICAL;return i.writeUInt16BE(m-2,n),n+=2,i.writeUInt8(r.flags||0,n),n+=1,O.encode(r.tag,i,n),n+=O.encode.bytes,i.write(r.value,n),n+=Y.byteLength(r.value),Jr.encode.bytes=m,i};Jr.encode.bytes=0;Jr.decode=function(r,i){if(!i)i=0;let n=r.readUInt16BE(i);i+=2;let m=i,c={};return c.flags=r.readUInt8(i),i+=1,c.tag=O.decode(r,i),i+=O.decode.bytes,c.value=r.toString("utf-8",i,m+n),c.issuerCritical=!!(c.flags&Jr.ISSUER_CRITICAL),Jr.decode.bytes=n+2,c};Jr.decode.bytes=0;Jr.encodingLength=function(r){return O.encodingLength(r.tag)+O.encodingLength(r.value)+2};var Ri=ZS.mx={};Ri.encode=function(r,i,n){if(!i)i=Y.alloc(Ri.encodingLength(r));if(!n)n=0;let m=n;return n+=2,i.writeUInt16BE(r.preference||0,n),n+=2,H.encode(r.exchange,i,n),n+=H.encode.bytes,i.writeUInt16BE(n-m-2,m),Ri.encode.bytes=n-m,i};Ri.encode.bytes=0;Ri.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.preference=r.readUInt16BE(i),i+=2,m.exchange=H.decode(r,i),i+=H.decode.bytes,Ri.decode.bytes=i-n,m};Ri.encodingLength=function(r){return 4+H.encodingLength(r.exchange)};var Di=ZS.a={};Di.encode=function(r,i,n){if(!i)i=Y.alloc(Di.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(4,n),n+=2,si.v4.encode(r,i,n),Di.encode.bytes=6,i};Di.encode.bytes=0;Di.decode=function(r,i){if(!i)i=0;i+=2;let n=si.v4.decode(r,i);return Di.decode.bytes=6,n};Di.decode.bytes=0;Di.encodingLength=function(){return 6};var Ui=ZS.aaaa={};Ui.encode=function(r,i,n){if(!i)i=Y.alloc(Ui.encodingLength(r));if(!n)n=0;return i.writeUInt16BE(16,n),n+=2,si.v6.encode(r,i,n),Ui.encode.bytes=18,i};Ui.encode.bytes=0;Ui.decode=function(r,i){if(!i)i=0;i+=2;let n=si.v6.decode(r,i);return Ui.decode.bytes=18,n};Ui.decode.bytes=0;Ui.encodingLength=function(){return 18};var Kr=ZS.option={};Kr.encode=function(r,i,n){if(!i)i=Y.alloc(Kr.encodingLength(r));if(!n)n=0;let m=n,c=Fc.toCode(r.code);if(i.writeUInt16BE(c,n),n+=2,r.data)i.writeUInt16BE(r.data.length,n),n+=2,r.data.copy(i,n),n+=r.data.length;else switch(c){case 8:let l=r.sourcePrefixLength||0,y=r.family||si.familyOf(r.ip),j=si.encode(r.ip,Y.alloc),A=Math.ceil(l/8);i.writeUInt16BE(A+4,n),n+=2,i.writeUInt16BE(y,n),n+=2,i.writeUInt8(l,n++),i.writeUInt8(r.scopePrefixLength||0,n++),j.copy(i,n,0,A),n+=A;break;case 11:if(r.timeout)i.writeUInt16BE(2,n),n+=2,i.writeUInt16BE(r.timeout,n),n+=2;else i.writeUInt16BE(0,n),n+=2;break;case 12:let S=r.length||0;i.writeUInt16BE(S,n),n+=2,i.fill(0,n,n+S),n+=S;break;case 14:let v=r.tags.length*2;i.writeUInt16BE(v,n),n+=2;for(let w of r.tags)i.writeUInt16BE(w,n),n+=2;break;default:throw Error(`Unknown roption code: ${r.code}`)}return Kr.encode.bytes=n-m,i};Kr.encode.bytes=0;Kr.decode=function(r,i){if(!i)i=0;let n={};n.code=r.readUInt16BE(i),n.type=Fc.toString(n.code),i+=2;let m=r.readUInt16BE(i);switch(i+=2,n.data=r.slice(i,i+m),n.code){case 8:n.family=r.readUInt16BE(i),i+=2,n.sourcePrefixLength=r.readUInt8(i++),n.scopePrefixLength=r.readUInt8(i++);let c=Y.alloc(n.family===1?4:16);r.copy(c,0,i,i+m-4),n.ip=si.decode(c);break;case 11:if(m>0)n.timeout=r.readUInt16BE(i),i+=2;break;case 14:n.tags=[];for(let l=0;l<m;l+=2)n.tags.push(r.readUInt16BE(i)),i+=2}return Kr.decode.bytes=m+4,n};Kr.decode.bytes=0;Kr.encodingLength=function(r){if(r.data)return r.data.length+4;switch(Fc.toCode(r.code)){case 8:let n=r.sourcePrefixLength||0;return Math.ceil(n/8)+8;case 11:return typeof r.timeout==="number"?6:4;case 12:return r.length+4;case 14:return 4+r.tags.length*2}throw Error(`Unknown roption code: ${r.code}`)};var Or=ZS.opt={};Or.encode=function(r,i,n){if(!i)i=Y.alloc(Or.encodingLength(r));if(!n)n=0;let m=n,c=$n(r,Kr);return i.writeUInt16BE(c,n),n=pn(r,Kr,i,n+2),Or.encode.bytes=n-m,i};Or.encode.bytes=0;Or.decode=function(r,i){if(!i)i=0;let n=i,m=[],c=r.readUInt16BE(i);i+=2;let l=0;while(c>0)m[l++]=Kr.decode(r,i),i+=Kr.decode.bytes,c-=Kr.decode.bytes;return Or.decode.bytes=i-n,m};Or.decode.bytes=0;Or.encodingLength=function(r){return 2+$n(r||[],Kr)};var Ur=ZS.dnskey={};Ur.PROTOCOL_DNSSEC=3;Ur.ZONE_KEY=128;Ur.SECURE_ENTRYPOINT=32768;Ur.encode=function(r,i,n){if(!i)i=Y.alloc(Ur.encodingLength(r));if(!n)n=0;let m=n,c=r.key;if(!Y.isBuffer(c))throw Error("Key must be a Buffer");return n+=2,i.writeUInt16BE(r.flags,n),n+=2,i.writeUInt8(Ur.PROTOCOL_DNSSEC,n),n+=1,i.writeUInt8(r.algorithm,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,Ur.encode.bytes=n-m,i.writeUInt16BE(Ur.encode.bytes-2,m),i};Ur.encode.bytes=0;Ur.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);if(i+=2,m.flags=r.readUInt16BE(i),i+=2,r.readUInt8(i)!==Ur.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return i+=1,m.algorithm=r.readUInt8(i),i+=1,m.key=r.slice(i,n+c+2),i+=m.key.length,Ur.decode.bytes=i-n,m};Ur.decode.bytes=0;Ur.encodingLength=function(r){return 6+Y.byteLength(r.key)};var sr=ZS.rrsig={};sr.encode=function(r,i,n){if(!i)i=Y.alloc(sr.encodingLength(r));if(!n)n=0;let m=n,c=r.signature;if(!Y.isBuffer(c))throw Error("Signature must be a Buffer");return n+=2,i.writeUInt16BE(Pi.toType(r.typeCovered),n),n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.labels,n),n+=1,i.writeUInt32BE(r.originalTTL,n),n+=4,i.writeUInt32BE(r.expiration,n),n+=4,i.writeUInt32BE(r.inception,n),n+=4,i.writeUInt16BE(r.keyTag,n),n+=2,H.encode(r.signersName,i,n),n+=H.encode.bytes,c.copy(i,n,0,c.length),n+=c.length,sr.encode.bytes=n-m,i.writeUInt16BE(sr.encode.bytes-2,m),i};sr.encode.bytes=0;sr.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.typeCovered=Pi.toString(r.readUInt16BE(i)),i+=2,m.algorithm=r.readUInt8(i),i+=1,m.labels=r.readUInt8(i),i+=1,m.originalTTL=r.readUInt32BE(i),i+=4,m.expiration=r.readUInt32BE(i),i+=4,m.inception=r.readUInt32BE(i),i+=4,m.keyTag=r.readUInt16BE(i),i+=2,m.signersName=H.decode(r,i),i+=H.decode.bytes,m.signature=r.slice(i,n+c+2),i+=m.signature.length,sr.decode.bytes=i-n,m};sr.decode.bytes=0;sr.encodingLength=function(r){return 20+H.encodingLength(r.signersName)+Y.byteLength(r.signature)};var fr=ZS.rp={};fr.encode=function(r,i,n){if(!i)i=Y.alloc(fr.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.mbox||".",i,n,{mail:!0}),n+=H.encode.bytes,H.encode(r.txt||".",i,n),n+=H.encode.bytes,fr.encode.bytes=n-m,i.writeUInt16BE(fr.encode.bytes-2,m),i};fr.encode.bytes=0;fr.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.mbox=H.decode(r,i,{mail:!0})||".",i+=H.decode.bytes,m.txt=H.decode(r,i)||".",i+=H.decode.bytes,fr.decode.bytes=i-n,m};fr.decode.bytes=0;fr.encodingLength=function(r){return 2+H.encodingLength(r.mbox||".")+H.encodingLength(r.txt||".")};var jr={};jr.encode=function(r,i,n){if(!i)i=Y.alloc(jr.encodingLength(r));if(!n)n=0;let m=n;var c=[];for(var l=0;l<r.length;l++){var y=Pi.toType(r[l]);if(c[y>>8]===void 0)c[y>>8]=[];c[y>>8][y>>3&31]|=1<<7-(y&7)}for(l=0;l<c.length;l++)if(c[l]!==void 0){var j=Y.from(c[l]);i.writeUInt8(l,n),n+=1,i.writeUInt8(j.length,n),n+=1,j.copy(i,n),n+=j.length}return jr.encode.bytes=n-m,i};jr.encode.bytes=0;jr.decode=function(r,i,n){if(!i)i=0;let m=i;var c=[];while(i-m<n){var l=r.readUInt8(i);i+=1;var y=r.readUInt8(i);i+=1;for(var j=0;j<y;j++){var A=r.readUInt8(i+j);for(var S=0;S<8;S++)if(A&1<<7-S){var v=Pi.toString(l<<8|j<<3|S);c.push(v)}}i+=y}return jr.decode.bytes=i-m,c};jr.decode.bytes=0;jr.encodingLength=function(r){var i=[];for(var n=0;n<r.length;n++){var m=Pi.toType(r[n]);i[m>>8]=Math.max(i[m>>8]||0,m&255)}var c=0;for(n=0;n<i.length;n++)if(i[n]!==void 0)c+=2+Math.ceil((i[n]+1)/8);return c};var ri=ZS.nsec={};ri.encode=function(r,i,n){if(!i)i=Y.alloc(ri.encodingLength(r));if(!n)n=0;let m=n;return n+=2,H.encode(r.nextDomain,i,n),n+=H.encode.bytes,jr.encode(r.rrtypes,i,n),n+=jr.encode.bytes,ri.encode.bytes=n-m,i.writeUInt16BE(ri.encode.bytes-2,m),i};ri.encode.bytes=0;ri.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.nextDomain=H.decode(r,i),i+=H.decode.bytes,m.rrtypes=jr.decode(r,i,c-(i-n)),i+=jr.decode.bytes,ri.decode.bytes=i-n,m};ri.decode.bytes=0;ri.encodingLength=function(r){return 2+H.encodingLength(r.nextDomain)+jr.encodingLength(r.rrtypes)};var ii=ZS.nsec3={};ii.encode=function(r,i,n){if(!i)i=Y.alloc(ii.encodingLength(r));if(!n)n=0;let m=n,c=r.salt;if(!Y.isBuffer(c))throw Error("salt must be a Buffer");let l=r.nextDomain;if(!Y.isBuffer(l))throw Error("nextDomain must be a Buffer");return n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.flags,n),n+=1,i.writeUInt16BE(r.iterations,n),n+=2,i.writeUInt8(c.length,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,i.writeUInt8(l.length,n),n+=1,l.copy(i,n,0,l.length),n+=l.length,jr.encode(r.rrtypes,i,n),n+=jr.encode.bytes,ii.encode.bytes=n-m,i.writeUInt16BE(ii.encode.bytes-2,m),i};ii.encode.bytes=0;ii.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);i+=2,m.algorithm=r.readUInt8(i),i+=1,m.flags=r.readUInt8(i),i+=1,m.iterations=r.readUInt16BE(i),i+=2;let l=r.readUInt8(i);i+=1,m.salt=r.slice(i,i+l),i+=l;let y=r.readUInt8(i);return i+=1,m.nextDomain=r.slice(i,i+y),i+=y,m.rrtypes=jr.decode(r,i,c-(i-n)),i+=jr.decode.bytes,ii.decode.bytes=i-n,m};ii.decode.bytes=0;ii.encodingLength=function(r){return 8+r.salt.length+r.nextDomain.length+jr.encodingLength(r.rrtypes)};var ni=ZS.ds={};ni.encode=function(r,i,n){if(!i)i=Y.alloc(ni.encodingLength(r));if(!n)n=0;let m=n,c=r.digest;if(!Y.isBuffer(c))throw Error("Digest must be a Buffer");return n+=2,i.writeUInt16BE(r.keyTag,n),n+=2,i.writeUInt8(r.algorithm,n),n+=1,i.writeUInt8(r.digestType,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,ni.encode.bytes=n-m,i.writeUInt16BE(ni.encode.bytes-2,m),i};ni.encode.bytes=0;ni.decode=function(r,i){if(!i)i=0;let n=i;var m={},c=r.readUInt16BE(i);return i+=2,m.keyTag=r.readUInt16BE(i),i+=2,m.algorithm=r.readUInt8(i),i+=1,m.digestType=r.readUInt8(i),i+=1,m.digest=r.slice(i,n+c+2),i+=m.digest.length,ni.decode.bytes=i-n,m};ni.decode.bytes=0;ni.encodingLength=function(r){return 6+Y.byteLength(r.digest)};var Rr=ZS.sshfp={};Rr.getFingerprintLengthForHashType=function(i){switch(i){case 1:return 20;case 2:return 32}};Rr.encode=function(i,n,m){if(!n)n=Y.alloc(Rr.encodingLength(i));if(!m)m=0;let c=m;m+=2,n[m]=i.algorithm,m+=1,n[m]=i.hash,m+=1;let l=Y.from(i.fingerprint.toUpperCase(),"hex");if(l.length!==Rr.getFingerprintLengthForHashType(i.hash))throw Error("Invalid fingerprint length");return l.copy(n,m),m+=l.byteLength,Rr.encode.bytes=m-c,n.writeUInt16BE(Rr.encode.bytes-2,c),n};Rr.encode.bytes=0;Rr.decode=function(i,n){if(!n)n=0;let m=n,c={};n+=2,c.algorithm=i[n],n+=1,c.hash=i[n],n+=1;let l=Rr.getFingerprintLengthForHashType(c.hash);return c.fingerprint=i.slice(n,n+l).toString("hex").toUpperCase(),n+=l,Rr.decode.bytes=n-m,c};Rr.decode.bytes=0;Rr.encodingLength=function(r){return 4+Y.from(r.fingerprint,"hex").byteLength};var mi=ZS.naptr={};mi.encode=function(r,i,n){if(!i)i=Y.alloc(mi.encodingLength(r));if(!n)n=0;let m=n;return n+=2,i.writeUInt16BE(r.order||0,n),n+=2,i.writeUInt16BE(r.preference||0,n),n+=2,O.encode(r.flags,i,n),n+=O.encode.bytes,O.encode(r.services,i,n),n+=O.encode.bytes,O.encode(r.regexp,i,n),n+=O.encode.bytes,H.encode(r.replacement,i,n),n+=H.encode.bytes,mi.encode.bytes=n-m,i.writeUInt16BE(mi.encode.bytes-2,m),i};mi.encode.bytes=0;mi.decode=function(r,i){if(!i)i=0;let n=i,m={};return i+=2,m.order=r.readUInt16BE(i),i+=2,m.preference=r.readUInt16BE(i),i+=2,m.flags=O.decode(r,i),i+=O.decode.bytes,m.services=O.decode(r,i),i+=O.decode.bytes,m.regexp=O.decode(r,i),i+=O.decode.bytes,m.replacement=H.decode(r,i),i+=H.decode.bytes,mi.decode.bytes=i-n,m};mi.decode.bytes=0;mi.encodingLength=function(r){return O.encodingLength(r.flags)+O.encodingLength(r.services)+O.encodingLength(r.regexp)+H.encodingLength(r.replacement)+6};var ci=ZS.tlsa={};ci.encode=function(r,i,n){if(!i)i=Y.alloc(ci.encodingLength(r));if(!n)n=0;let m=n,c=r.certificate;if(!Y.isBuffer(c))throw Error("Certificate must be a Buffer");return n+=2,i.writeUInt8(r.usage,n),n+=1,i.writeUInt8(r.selector,n),n+=1,i.writeUInt8(r.matchingType,n),n+=1,c.copy(i,n,0,c.length),n+=c.length,ci.encode.bytes=n-m,i.writeUInt16BE(ci.encode.bytes-2,m),i};ci.encode.bytes=0;ci.decode=function(r,i){if(!i)i=0;let n=i,m={},c=r.readUInt16BE(i);return i+=2,m.usage=r.readUInt8(i),i+=1,m.selector=r.readUInt8(i),i+=1,m.matchingType=r.readUInt8(i),i+=1,m.certificate=r.slice(i,n+c+2),i+=m.certificate.length,ci.decode.bytes=i-n,m};ci.decode.bytes=0;ci.encodingLength=function(r){return 5+Y.byteLength(r.certificate)};var gc=ZS.record=function(r){switch(r.toUpperCase()){case"A":return Di;case"PTR":return pr;case"CNAME":return KS;case"DNAME":return HS;case"TXT":return Gi;case"NULL":return Ni;case"AAAA":return Ui;case"SRV":return Qi;case"HINFO":return Ei;case"CAA":return Jr;case"NS":return wi;case"SOA":return $i;case"MX":return Ri;case"OPT":return Or;case"DNSKEY":return Ur;case"RRSIG":return sr;case"RP":return fr;case"NSEC":return ri;case"NSEC3":return ii;case"SSHFP":return Rr;case"DS":return ni;case"NAPTR":return mi;case"TLSA":return ci}return vi},Sr=ZS.answer={};Sr.encode=function(r,i,n){if(!i)i=Y.alloc(Sr.encodingLength(r));if(!n)n=0;let m=n;if(H.encode(r.name,i,n),n+=H.encode.bytes,i.writeUInt16BE(Pi.toType(r.type),n),r.type.toUpperCase()==="OPT"){if(r.name!==".")throw Error("OPT name must be root.");i.writeUInt16BE(r.udpPayloadSize||4096,n+2),i.writeUInt8(r.extendedRcode||0,n+4),i.writeUInt8(r.ednsVersion||0,n+5),i.writeUInt16BE(r.flags||0,n+6),n+=8,Or.encode(r.options||[],i,n),n+=Or.encode.bytes}else{let c=dm.toClass(r.class===void 0?"IN":r.class);if(r.flush)c|=32768;i.writeUInt16BE(c,n+2),i.writeUInt32BE(r.ttl||0,n+4),n+=8;let l=gc(r.type);l.encode(r.data,i,n),n+=l.encode.bytes}return Sr.encode.bytes=n-m,i};Sr.encode.bytes=0;Sr.decode=function(r,i){if(!i)i=0;let n={},m=i;if(n.name=H.decode(r,i),i+=H.decode.bytes,n.type=Pi.toString(r.readUInt16BE(i)),n.type==="OPT")n.udpPayloadSize=r.readUInt16BE(i+2),n.extendedRcode=r.readUInt8(i+4),n.ednsVersion=r.readUInt8(i+5),n.flags=r.readUInt16BE(i+6),n.flag_do=(n.flags>>15&1)===1,n.options=Or.decode(r,i+8),i+=8+Or.decode.bytes;else{let c=r.readUInt16BE(i+2);n.ttl=r.readUInt32BE(i+4),n.class=dm.toString(c&-32769),n.flush=!!(c&32768);let l=gc(n.type);n.data=l.decode(r,i+8),i+=8+l.decode.bytes}return Sr.decode.bytes=i-m,n};Sr.decode.bytes=0;Sr.encodingLength=function(r){let i=r.data!==null&&r.data!==void 0?r.data:r.options;return H.encodingLength(r.name)+8+gc(r.type).encodingLength(i)};var ur=ZS.question={};ur.encode=function(r,i,n){if(!i)i=Y.alloc(ur.encodingLength(r));if(!n)n=0;let m=n;return H.encode(r.name,i,n),n+=H.encode.bytes,i.writeUInt16BE(Pi.toType(r.type),n),n+=2,i.writeUInt16BE(dm.toClass(r.class===void 0?"IN":r.class),n),n+=2,ur.encode.bytes=n-m,r};ur.encode.bytes=0;ur.decode=function(r,i){if(!i)i=0;let n=i,m={};if(m.name=H.decode(r,i),i+=H.decode.bytes,m.type=Pi.toString(r.readUInt16BE(i)),i+=2,m.class=dm.toString(r.readUInt16BE(i)),i+=2,!!(m.class&32768))m.class&=-32769;return ur.decode.bytes=i-n,m};ur.decode.bytes=0;ur.encodingLength=function(r){return H.encodingLength(r.name)+4};ZS.AUTHORITATIVE_ANSWER=1024;ZS.TRUNCATED_RESPONSE=512;ZS.RECURSION_DESIRED=256;ZS.RECURSION_AVAILABLE=128;ZS.AUTHENTIC_DATA=32;ZS.CHECKING_DISABLED=16;ZS.DNSSEC_OK=32768;ZS.encode=function(r,i,n){let m=!i;if(m)i=Y.alloc(ZS.encodingLength(r));if(!n)n=0;let c=n;if(!r.questions)r.questions=[];if(!r.answers)r.answers=[];if(!r.authorities)r.authorities=[];if(!r.additionals)r.additionals=[];if(ar.encode(r,i,n),n+=ar.encode.bytes,n=pn(r.questions,ur,i,n),n=pn(r.answers,Sr,i,n),n=pn(r.authorities,Sr,i,n),n=pn(r.additionals,Sr,i,n),ZS.encode.bytes=n-c,m&&ZS.encode.bytes!==i.length)return i.slice(0,ZS.encode.bytes);return i};ZS.encode.bytes=0;ZS.decode=function(r,i){if(!i)i=0;let n=i,m=ar.decode(r,i);return i+=ar.decode.bytes,i=am(m.questions,ur,r,i),i=am(m.answers,Sr,r,i),i=am(m.authorities,Sr,r,i),i=am(m.additionals,Sr,r,i),ZS.decode.bytes=i-n,m};ZS.decode.bytes=0;ZS.encodingLength=function(r){return ar.encodingLength(r)+$n(r.questions||[],ur)+$n(r.answers||[],Sr)+$n(r.authorities||[],Sr)+$n(r.additionals||[],Sr)};ZS.streamEncode=function(r){let i=ZS.encode(r),n=Y.alloc(2);n.writeUInt16BE(i.byteLength);let m=Y.concat([n,i]);return ZS.streamEncode.bytes=m.byteLength,m};ZS.streamEncode.bytes=0;ZS.streamDecode=function(r){let i=r.readUInt16BE(0);if(r.byteLength<i+2)return null;let n=ZS.decode(r.slice(2));return ZS.streamDecode.bytes=ZS.decode.bytes,n};ZS.streamDecode.bytes=0;function $n(r,i){let n=0;for(let m=0;m<r.length;m++)n+=i.encodingLength(r[m]);return n}function pn(r,i,n,m){for(let c=0;c<r.length;c++)i.encode(r[c],n,m),m+=i.encode.bytes;return m}function am(r,i,n,m){for(let c=0;c<r.length;c++)r[c]=i.decode(n,m),m+=i.decode.bytes;return m}});var Ij=rr((eQ,jj)=>{var yj=hS;process.nextTick(TS,42);jj.exports=FS;function FS(r){var i=m;return n;function n(c){i(c||zS)}function m(c){var l=[c];i=y,r(j);function y(A){l.push(A)}function j(A){var S=arguments;i=gS(A)?m:v;while(l.length)v(l.shift());function v(w){yj(MS,w,S)}}}}function gS(r){return Object.prototype.toString.call(r)==="[object Error]"}function zS(){}function MS(r,i){r.apply(null,i)}function TS(r){if(r===42)yj=process.nextTick}function hS(r,i,n){process.nextTick(function(){r(i,n)})}});var vj=rr((sQ,Sj)=>{var zc=lj(),BS=bi("dgram"),oS=Ij(),xS=bi("events"),Tc=bi("os"),Mc=function(){};Sj.exports=function(r){if(!r)r={};var i=new xS.EventEmitter,n=typeof r.port==="number"?r.port:5353,m=r.type||"udp4",c=r.ip||r.host||(m==="udp4"?"224.0.0.251":null),l={address:c,port:n},y={},j=!1,A=null;if(m==="udp6"&&(!c||!r.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var S=r.socket||BS.createSocket({type:m,reuseAddr:r.reuseAddr!==!1,toString:function(){return m}});S.on("error",function(w){if(w.code==="EACCES"||w.code==="EADDRINUSE")i.emit("error",w);else i.emit("warning",w)}),S.on("message",function(w,N){try{w=zc.decode(w)}catch(E){i.emit("warning",E);return}if(i.emit("packet",w,N),w.type==="query")i.emit("query",w,N);if(w.type==="response")i.emit("response",w,N)}),S.on("listening",function(){if(!n)n=l.port=S.address().port;if(r.multicast!==!1)i.update(),A=setInterval(i.update,5000),S.setMulticastTTL(r.ttl||255),S.setMulticastLoopback(r.loopback!==!1)});var v=oS(function(w){if(!n||r.bind===!1)return w(null);S.once("error",w),S.bind(n,r.bind||r.interface,function(){S.removeListener("error",w),w(null)})});return v(function(w){if(w)return i.emit("error",w);i.emit("ready")}),i.send=function(w,N,E){if(typeof N==="function")return i.send(w,null,N);if(!E)E=Mc;if(!N)N=l;else if(!N.host&&!N.address)N.address=l.address;v(Q);function Q(W){if(j)return E();if(W)return E(W);var Z=zc.encode(w);S.send(Z,0,Z.length,N.port,N.address||N.host,E)}},i.response=i.respond=function(w,N,E){if(Array.isArray(w))w={answers:w};w.type="response",w.flags=(w.flags||0)|zc.AUTHORITATIVE_ANSWER,i.send(w,N,E)},i.query=function(w,N,E,Q){if(typeof N==="function")return i.query(w,null,null,N);if(typeof N==="object"&&N&&N.port)return i.query(w,null,N,E);if(typeof E==="function")return i.query(w,N,null,E);if(!Q)Q=Mc;if(typeof w==="string")w=[{name:w,type:N||"ANY"}];if(Array.isArray(w))w={type:"query",questions:w};w.type="query",i.send(w,E,Q)},i.destroy=function(w){if(!w)w=Mc;if(j)return process.nextTick(w);j=!0,clearInterval(A);for(var N in y)try{S.dropMembership(c,N)}catch(E){}y={},S.close(w)},i.update=function(){var w=r.interface?[].concat(r.interface):pS(),N=!1;for(var E=0;E<w.length;E++){var Q=w[E];if(y[Q])continue;try{S.addMembership(c,Q),y[Q]=!0,N=!0}catch(W){i.emit("warning",W)}}if(N){if(S.setMulticastInterface)try{S.setMulticastInterface(r.interface||kS())}catch(W){i.emit("warning",W)}i.emit("networkInterface")}},i};function kS(){var r=Tc.networkInterfaces(),i=Object.keys(r);for(var n=0;n<i.length;n++){var m=r[i[n]];for(var c=0;c<m.length;c++){var l=m[c];if(Aj(l.family)&&!l.internal){if(Tc.platform()==="darwin"&&i[n]==="en0")return l.address;return"0.0.0.0"}}}return"127.0.0.1"}function pS(){var r=Tc.networkInterfaces(),i=Object.keys(r),n=[];for(var m=0;m<i.length;m++){var c=r[i[m]];for(var l=0;l<c.length;l++){var y=c[l];if(Aj(y.family)){n.push(y.address);break}}}return n}function Aj(r){return r===4||r==="IPv4"}});var $j=rr((fQ,wj)=>{wj.exports=function r(i,n){if(i===n)return!0;if(i&&n&&typeof i=="object"&&typeof n=="object"){if(i.constructor!==n.constructor)return!1;var m,c,l;if(Array.isArray(i)){if(m=i.length,m!=n.length)return!1;for(c=m;c--!==0;)if(!r(i[c],n[c]))return!1;return!0}if(i instanceof Map&&n instanceof Map){if(i.size!==n.size)return!1;for(c of i.entries())if(!n.has(c[0]))return!1;for(c of i.entries())if(!r(c[1],n.get(c[0])))return!1;return!0}if(i instanceof Set&&n instanceof Set){if(i.size!==n.size)return!1;for(c of i.entries())if(!n.has(c[0]))return!1;return!0}if(ArrayBuffer.isView(i)&&ArrayBuffer.isView(n)){if(m=i.length,m!=n.length)return!1;for(c=m;c--!==0;)if(i[c]!==n[c])return!1;return!0}if(i.constructor===RegExp)return i.source===n.source&&i.flags===n.flags;if(i.valueOf!==Object.prototype.valueOf)return i.valueOf()===n.valueOf();if(i.toString!==Object.prototype.toString)return i.toString()===n.toString();if(l=Object.keys(i),m=l.length,m!==Object.keys(n).length)return!1;for(c=m;c--!==0;)if(!Object.prototype.hasOwnProperty.call(n,l[c]))return!1;for(c=m;c--!==0;){var y=l[c];if(!r(i[y],n[y]))return!1}return!0}return i!==i&&n!==n}});var Gj=rr((fi)=>{var hc=fi&&fi.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(fi,"__esModule",{value:!0});fi.Server=void 0;var uS=hc(vj()),aS=hc($j()),dS=hc(pm());class Bc{constructor(r,i){this.registry={},this.mdns=(0,uS.default)(r),this.mdns.setMaxListeners(0),this.mdns.on("query",this.respondToQuery.bind(this)),this.errorCallback=i!==null&&i!==void 0?i:function(n){throw n}}register(r){let i=(n)=>{var m=this.registry[n.type];if(!m)m=this.registry[n.type]=[];else if(m.some(this.isDuplicateRecord(n)))return;m.push(n)};if(Array.isArray(r))r.forEach(i);else i(r)}unregister(r){let i=(n)=>{let m=n.type;if(!(m in this.registry))return;this.registry[m]=this.registry[m].filter((c)=>c.name!==n.name)};if(Array.isArray(r))r.forEach(i);else i(r)}respondToQuery(r){let i=this;r.questions.forEach((n)=>{var{type:m,name:c}=n,l=m==="ANY"?Object.keys(i.registry).map(i.recordsFor.bind(i,c)).flat(1):i.recordsFor(c,m);if(l.length===0)return;var y=[];if(m!=="ANY")l.forEach((j)=>{if(j.type!=="PTR")return;y=y.concat(i.recordsFor(j.data,"SRV")).concat(i.recordsFor(j.data,"TXT"))}),y.filter(function(j){return j.type==="SRV"}).map(function(j){return j.data.target}).filter(this.unique()).forEach(function(j){y=y.concat(i.recordsFor(j,"A")).concat(i.recordsFor(j,"AAAA"))});i.mdns.respond({answers:l,additionals:y},(j)=>{if(j)this.errorCallback(j)})})}recordsFor(r,i){if(!(i in this.registry))return[];return this.registry[i].filter((n)=>{var m=~r.indexOf(".")?n.name:n.name.split(".")[0];return(0,dS.default)(m,r)})}isDuplicateRecord(r){return(i)=>{return r.type===i.type&&r.name===i.name&&(0,aS.default)(r.data,i.data)}}unique(){var r=[];return(i)=>{if(~r.indexOf(i))return!1;return r.push(i),!0}}}fi.Server=Bc;fi.default=Bc});var Ej=rr((Nj)=>{Object.defineProperty(Nj,"__esModule",{value:!0});Nj.default=(r,i)=>{if(i===void 0)return!0;let n=r.txt,m=Object.entries(i).map(([c,l])=>{let y=n[c];if(y===void 0)return!1;if(l!=y)return!1;return!0});if(m.length==0)return!0;if(m.includes(!1))return!1;return!0}});var Dj=rr((Qj)=>{Object.defineProperty(Qj,"__esModule",{value:!0});Qj.default=(r)=>Object.keys(r).filter((i)=>!i.includes("binary")).reduce((i,n)=>{return Object.assign(i,{[n]:r[n]})},{})});var Pj=rr((Uj)=>{Object.defineProperty(Uj,"__esModule",{value:!0});Uj.default=eS;function eS(r,i){if(r===void 0||i===void 0)return!1;let n=Object.keys(r),m=Object.keys(i);if(n.length!=m.length)return!1;for(let c of n)if(r[c]!=i[c])return!1;return!0}});var Xj=rr((rn)=>{var an=rn&&rn.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(rn,"__esModule",{value:!0});rn.Browser=void 0;var fS=an(Zc()),Oi=an(pm()),rv=bi("events"),oc=Vc(),Cj=an(Ej()),iv=an(Dj()),nv=an(Pj()),Wj=".local",mv="_services._dns-sd._udp"+Wj;class tm extends rv.EventEmitter{constructor(r,i,n){super();if(this.onresponse=void 0,this.serviceMap={},this.wildcard=!1,this._services=[],typeof i==="function")return new tm(r,null,i);if(this.mdns=r,this.txt=new fS.default(i!==null&&i.txt!=null?i.txt:void 0),i===null||i.type===void 0)this.name=mv,this.wildcard=!0;else{if(this.name=(0,oc.toString)({name:i.type,protocol:i.protocol||"tcp"})+Wj,i.name)this.name=i.name+"."+this.name;this.wildcard=!1}if(i!=null&&i.txt!==void 0)this.txtQuery=(0,iv.default)(i.txt);if(n)this.on("up",n);this.start()}start(){if(this.onresponse||this.name===void 0)return;var r=this,i={};if(!this.wildcard)i[this.name]=!0;this.onresponse=(n,m)=>{if(r.wildcard)n.answers.forEach((c)=>{if(c.type!=="PTR"||c.name!==r.name||c.name in i)return;i[c.data]=!0,r.mdns.query(c.data,"PTR")});Object.keys(i).forEach(function(c){r.goodbyes(c,n).forEach(r.removeService.bind(r));var l=r.buildServicesFor(c,n,r.txt,m);if(l.length===0)return;l.forEach((y)=>{if(r.serviceMap[y.fqdn]){r.updateService(y);return}r.addService(y)})})},this.mdns.on("response",this.onresponse),this.update()}stop(){if(!this.onresponse)return;this.mdns.removeListener("response",this.onresponse),this.onresponse=void 0}update(){this.mdns.query(this.name,"PTR")}get services(){return this._services}addService(r){if((0,Cj.default)(r,this.txtQuery)===!1)return;this._services.push(r),this.serviceMap[r.fqdn]=!0,this.emit("up",r)}updateService(r){var i;if((0,nv.default)(r.txt,((i=this._services.find((n)=>(0,Oi.default)(n.fqdn,r.fqdn)))===null||i===void 0?void 0:i.txt)||{}))return;if(!(0,Cj.default)(r,this.txtQuery)){this.removeService(r.fqdn);return}this._services=this._services.map(function(n){if(!(0,Oi.default)(n.fqdn,r.fqdn))return n;return r}),this.emit("txt-update",r)}removeService(r){var i,n;if(this._services.some(function(m,c){if((0,Oi.default)(m.fqdn,r))return i=m,n=c,!0}),!i||n===void 0)return;this._services.splice(n,1),delete this.serviceMap[r],this.emit("down",i)}goodbyes(r,i){return i.answers.concat(i.additionals).filter((n)=>n.type==="PTR"&&n.ttl===0&&(0,Oi.default)(n.name,r)).map((n)=>n.data)}buildServicesFor(r,i,n,m){var c=i.answers.concat(i.additionals).filter((l)=>l.ttl>0);return c.filter((l)=>l.type==="PTR"&&(0,Oi.default)(l.name,r)).map((l)=>{let y={addresses:[],subtypes:[]};if(c.filter((j)=>{return j.type==="PTR"&&(0,Oi.default)(j.data,l.data)&&j.name.includes("._sub")}).forEach((j)=>{let A=(0,oc.toType)(j.name);y.subtypes.push(A.subtype)}),c.filter((j)=>{return(j.type==="SRV"||j.type==="TXT")&&(0,Oi.default)(j.name,l.data)}).forEach((j)=>{if(j.type==="SRV"){var A=j.name.split("."),S=A[0],v=(0,oc.toType)(A.slice(1,-1).join("."));y.name=S,y.fqdn=j.name,y.host=j.data.target,y.referer=m,y.port=j.data.port,y.type=v.name,y.protocol=v.protocol}else if(j.type==="TXT")y.rawTxt=j.data,y.txt=this.txt.decodeAll(j.data)}),!y.name)return;return c.filter((j)=>(j.type==="A"||j.type==="AAAA")&&(0,Oi.default)(j.name,y.host)).forEach((j)=>y.addresses.push(j.data)),y}).filter((l)=>!!l)}}rn.Browser=tm;rn.default=tm});var Kj=rr((dr)=>{var bm=dr&&dr.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(dr,"__esModule",{value:!0});dr.Browser=dr.Service=dr.Bonjour=void 0;var cv=bm(by()),lv=bm(Gj()),xc=bm(Xj());dr.Browser=xc.default;var yv=bm(Jc());dr.Service=yv.default;class kc{constructor(r={},i){this.server=new lv.default(r,i),this.registry=new cv.default(this.server)}publish(r){return this.registry.publish(r)}unpublishAll(r){return this.registry.unpublishAll(r)}find(r=null,i){return new xc.default(this.server.mdns,r,i)}findOne(r=null,i=1e4,n){let m=new xc.default(this.server.mdns,r);var c;return m.once("up",(l)=>{if(c!==void 0)clearTimeout(c);if(m.stop(),n)n(l)}),c=setTimeout(()=>{if(m.stop(),n)n(null)},i),m}destroy(r){this.registry.destroy(),this.server.mdns.destroy(r)}}dr.Bonjour=kc;dr.default=kc});var bl={};Nr(bl,{url:()=>AA,openapi:()=>B$,listen:()=>o$,Server:()=>bl,Default:()=>T$});var cc=(r)=>{let i=r.split("/");if(i[0]==="")i.shift();return i},el=(r)=>{let{groups:i,path:n}=SA(r),m=cc(n);return vA(m,i)},SA=(r)=>{let i=[];return r=r.replace(/\{[^}]+\}/g,(n,m)=>{let c=`@${m}`;return i.push([c,n]),c}),{groups:i,path:r}},vA=(r,i)=>{for(let n=i.length-1;n>=0;n--){let[m]=i[n];for(let c=r.length-1;c>=0;c--)if(r[c].includes(m)){r[c]=r[c].replace(m,i[n][1]);break}}return r},Fm={},sl=(r,i)=>{if(r==="*")return"*";let n=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(n){let m=`${r}#${i}`;if(!Fm[m])if(n[2])Fm[m]=i&&i[0]!==":"&&i[0]!=="*"?[m,n[1],new RegExp(`^${n[2]}(?=/${i})`)]:[r,n[1],new RegExp(`^${n[2]}$`)];else Fm[m]=[r,n[1],!0];return Fm[m]}return null},Sn=(r,i)=>{try{return i(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,(n)=>{try{return i(n)}catch{return n}})}},fl=(r)=>Sn(r,decodeURI),lc=(r)=>{let i=r.url,n=i.indexOf("/",i.indexOf(":")+4),m=n;for(;m<i.length;m++){let c=i.charCodeAt(m);if(c===37){let l=i.indexOf("?",m),y=i.indexOf("#",m),j=l===-1?y===-1?void 0:y:y===-1?l:Math.min(l,y),A=i.slice(n,j);return fl(A.includes("%25")?A.replace(/%25/g,"%2525"):A)}else if(c===63||c===35)break}return i.slice(n,m)};var ry=(r)=>{let i=lc(r);return i.length>1&&i.at(-1)==="/"?i.slice(0,-1):i},Ji=(r,i,...n)=>{if(n.length)i=Ji(i,...n);return`${r?.[0]==="/"?"":"/"}${r}${i==="/"?"":`${r?.at(-1)==="/"?"":"/"}${i?.[0]==="/"?i.slice(1):i}`}`},gm=(r)=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let i=r.split("/"),n=[],m="";return i.forEach((c)=>{if(c!==""&&!/\:/.test(c))m+="/"+c;else if(/\:/.test(c))if(/\?/.test(c)){if(n.length===0&&m==="")n.push("/");else n.push(m);let l=c.replace("?","");m+="/"+l,n.push(m)}else m+="/"+c}),n.filter((c,l,y)=>y.indexOf(c)===l)},mc=(r)=>{if(!/[%+]/.test(r))return r;if(r.indexOf("+")!==-1)r=r.replace(/\+/g," ");return r.indexOf("%")!==-1?Sn(r,Mn):r},iy=(r,i,n)=>{let m;if(!n&&i&&!/[%+]/.test(i)){let y=r.indexOf("?",8);if(y===-1)return;if(!r.startsWith(i,y+1))y=r.indexOf(`&${i}`,y+1);while(y!==-1){let j=r.charCodeAt(y+i.length+1);if(j===61){let A=y+i.length+2,S=r.indexOf("&",A);return mc(r.slice(A,S===-1?void 0:S))}else if(j==38||isNaN(j))return"";y=r.indexOf(`&${i}`,y+1)}if(m=/[%+]/.test(r),!m)return}let c={};m??=/[%+]/.test(r);let l=r.indexOf("?",8);while(l!==-1){let y=r.indexOf("&",l+1),j=r.indexOf("=",l);if(j>y&&y!==-1)j=-1;let A=r.slice(l+1,j===-1?y===-1?void 0:y:j);if(m)A=mc(A);if(l=y,A==="")continue;let S;if(j===-1)S="";else if(S=r.slice(j+1,y===-1?void 0:y),m)S=mc(S);if(n){if(!(c[A]&&Array.isArray(c[A])))c[A]=[];c[A].push(S)}else c[A]??=S}return i?c[i]:c},ny=iy,my=(r,i)=>{return iy(r,i,!0)},Mn=decodeURIComponent;var wA=/^[\w!#$%&'*.^`|~+-]+$/,$A=/^[ !#-:<-[\]-~]*$/,cy=(r)=>{let i=0,n=r.length;while(i<n){let m=r.charCodeAt(i);if(m!==32&&m!==9)break;i++}while(n>i){let m=r.charCodeAt(n-1);if(m!==32&&m!==9)break;n--}return i===0&&n===r.length?r:r.slice(i,n)},yc=(r,i)=>{if(i&&r.indexOf(i)===-1)return{};let n=r.split(";"),m=Object.create(null);for(let c of n){let l=c.indexOf("=");if(l===-1)continue;let y=cy(c.substring(0,l));if(i&&i!==y||!wA.test(y)||y in m)continue;let j=cy(c.substring(l+1));if(j.startsWith('"')&&j.endsWith('"'))j=j.slice(1,-1);if($A.test(j)){if(m[y]=j.indexOf("%")!==-1?Sn(j,Mn):j,i)break}}return m};var ly=(r,i,n)=>{let m=r.req.raw.headers.get("Cookie");if(typeof i==="string"){if(!m)return;let l=i;if(n==="secure")l="__Secure-"+i;else if(n==="host")l="__Host-"+i;return yc(m,l)[l]}if(!m)return{};return yc(m)};var kr=class extends Error{res;status;constructor(r=500,i){super(i?.message,{cause:i?.cause});this.res=i?.res,this.status=r}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var jc=async(r)=>{return await GA(r,{name:"SHA-256",alias:"sha256"})};var GA=async(r,i)=>{let n;if(ArrayBuffer.isView(r)||r instanceof ArrayBuffer)n=r;else{if(typeof r==="object")r=JSON.stringify(r);n=new TextEncoder().encode(String(r))}if(crypto&&crypto.subtle){let m=await crypto.subtle.digest({name:i.name},n);return Array.prototype.map.call(new Uint8Array(m),(l)=>("00"+l.toString(16)).slice(-2)).join("")}return null};var yy=(r,i)=>{let n=r.length,m=i.length,c=Math.max(n,m),l=n^m;for(let y=0;y<c;y++){let j=y<n?r.charCodeAt(y):0,A=y<m?i.charCodeAt(y):0;l|=j^A}return l===0},jy=async(r,i,n)=>{if(!n)n=jc;let[m,c]=await Promise.all([n(r),n(i)]);if(m==null||c==null||typeof m!=="string"||typeof c!=="string")return!1;let l=yy(m,c),y=yy(r,i);return l&&y},Ic=async(r,i,n)=>{if(typeof r==="string"&&typeof i==="string")return jy(r,i,n);if(!n)n=jc;let[m,c]=await Promise.all([n(r),n(i)]);if(!m||!c||typeof m!=="string"||typeof c!=="string")return!1;return jy(m,c)};var zm=(r,i)=>{return new Response(r,{headers:{"Content-Type":i.replace(/^[^;]+/,(m)=>m.toLowerCase())}}).formData()};var NA=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i,EA=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/i,QA=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i,Ac=(r,i)=>{return async(n,m)=>{let c={},l=n.req.header("Content-Type");switch(r){case"json":if(!l||!NA.test(l))break;try{c=await n.req.json()}catch{throw new kr(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!l||!(EA.test(l)||QA.test(l)))break;let j;if(n.req.bodyCache.formData)j=await n.req.bodyCache.formData;else try{let S=await n.req.arrayBuffer();j=await zm(S,l),n.req.bodyCache.formData=j}catch(S){let v="Malformed FormData request.";throw v+=S instanceof Error?` ${S.message}`:` ${String(S)}`,new kr(400,{message:v})}let A=Object.create(null);j.forEach((S,v)=>{if(v.endsWith("[]"))(A[v]??=[]).push(S);else if(Array.isArray(A[v]))A[v].push(S);else if(Object.hasOwn(A,v))A[v]=[A[v],S];else A[v]=S}),c=A;break}case"query":c=Object.fromEntries(Object.entries(n.req.queries()).map(([j,A])=>{return A.length===1?[j,A[0]]:[j,A]}));break;case"param":c=n.req.param();break;case"header":c=n.req.header();break;case"cookie":c=ly(n);break}let y=await i(c,n);if(y instanceof Response)return y;return n.req.addValidatedData(r,y),await m()}};var Iy={header:["cookie"]};function DA(r,i,n){if(!(n in Iy))return r;let m=Iy[n]||[];if(i==="arktype")return UA(r,m);if(i==="valibot")return PA(r,m);return r}function UA(r,i){return r.map((n)=>{if(n&&typeof n==="object"&&"data"in n&&typeof n.data==="object"&&n.data!==null&&!Array.isArray(n.data)){let m={...n.data};for(let l of i)delete m[l];let c=Object.create(Object.getPrototypeOf(n));return Object.assign(c,n,{data:m}),c}return n})}function PA(r,i){return r.map((n)=>{if(n&&typeof n==="object"&&"path"in n&&Array.isArray(n.path)){for(let m of n.path)if(typeof m==="object"&&"input"in m&&typeof m.input==="object"&&m.input!==null&&!Array.isArray(m.input))for(let c of i)delete m.input[c]}return n})}var Ay=(r,i,n)=>Ac(r,async(m,c)=>{let l=await i["~standard"].validate(m);if(n){let y=await n(l.issues?{data:m,error:l.issues,success:!1,target:r}:{data:m,success:!0,target:r},c);if(y){if(y instanceof Response)return y;if("response"in y)return y.response}}if(l.issues){let y=DA(l.issues,i["~standard"].vendor,r);return c.json({data:m,error:y,success:!1},400)}return l.value});var vc=Symbol("openapi"),WA=["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],XA=(r)=>r.split("/").map((i)=>{let n=i;if(n.startsWith(":")){let m=n.match(/^:([^{?]+)(?:{(.+)})?(\?)?$/);if(m)n=`{${m[1]}}`;else{if(n=n.slice(1,n.length),n.endsWith("?"))n=n.slice(0,-1);n=`{${n}}`}}return n}).join("/"),Sy=(r)=>r.charAt(0).toUpperCase()+r.slice(1),KA=(r)=>{let i=r.method.toLowerCase();if(r.path==="/")return`${i}Index`;for(let n of r.path.split("/"))if(n.charCodeAt(0)===123)i+=`By${Sy(n.slice(1,-1))}`;else i+=Sy(n);return i},HA=(r)=>("$ref"in r)?r.$ref:`${r.in} ${r.name}`;function vy(...r){let i=r.flatMap((n)=>n??[]).reduce((n,m)=>{return n.set(HA(m),m),n},new Map);return Array.from(i.values())}var vn=new Map;function ZA(r){let i=[];for(let[n,m]of vn)if(m&&r.match(n))i.push(m);return i}function VA(){vn.clear()}function wy(r,...i){return i.reduce((n,m)=>{if(!m||!n)return n;for(let[c,l]of Object.entries(m)){if(l==null)continue;if(c in n&&(typeof l==="object"||typeof l==="function"&&c==="operationId"))if(Array.isArray(l)){let y=[...n[c]??[],...l];if(c==="tags")n[c]=Array.from(new Set(y));else if(c==="parameters")n[c]=vy(y);else n[c]=y}else if(typeof l==="function")n[c]=l(r);else if(c==="parameters")n[c]=vy(n[c],l);else n[c]={...n[c],...l};else n[c]=l}return n},{operationId:KA(r)})}function $y({route:r,specs:i,paths:n}){let m=XA(r.path),c=r.method.toLowerCase();if(c==="all"){if(!i)return;if(vn.has(m)){let l=vn.get(m)??{};vn.set(m,wy(r,l,i))}else vn.set(m,i)}else{let l=ZA(m);if(!(m in n))n[m]={};if(n[m])n[m][c]=wy(r,...l,n[m]?.[c],i)}}function YA(r,i){let{exclude:n,excludeStaticFile:m}=i.options,c={},l=Array.isArray(n)?n:[n];for(let[y,j]of Object.entries(r)){if(j==null)continue;if(l.some((v)=>{if(typeof v==="string")return y===v;return v.test(y)}))continue;if(y.includes("*")&&!y.includes("{"))continue;if(m){let v=y.includes("{"),N=(y.split("/").pop()||"").includes(".");if(!v&&N)continue}for(let v of Object.keys(j)){let w=j[v];if(w==null)continue;if(y.includes("{")){w.parameters=w.parameters?[...w.parameters]:[];let N=y.split("/").filter((E)=>E.startsWith("{")&&!w.parameters.find((Q)=>Q.in==="path"&&Q.name===E.slice(1,E.length-1)));for(let E of N){let Q=E.slice(1,E.length-1);if(w.parameters.findIndex((Z)=>{if("$ref"in Z){let X=Z.$ref.split("/").pop();if(X){let K=i.components.parameters?.[X];if(K&&!("$ref"in K))return K.in==="path"&&K.name===Q}return!1}return Z.in==="path"&&Z.name===Q})===-1)w.parameters.push({schema:{type:"string"},in:"path",name:Q,required:!0})}}if(!w.responses)w.responses={200:{}}}c[y]=j}return c}var Gy={documentation:{},excludeStaticFile:!0,exclude:[],excludeMethods:["OPTIONS"],excludeTags:[]};function Qy(r,i){let n;return async(m)=>{if(n)return m.json(n);return n=await wc(r,i,m),m.json(n)}}async function wc(r,i=Gy,n){let m={components:{},options:{...Gy,...i}},c=m.options.documentation??{};VA();let l=await JA(r,m);for(let j in l)for(let A in l[j])if(RA({valueOrFunc:l[j][A]?.hide,method:A,path:j,c:n}))l[j][A]=void 0;let y=$c(c.components,m.components);return{openapi:"3.1.0",...c,tags:c.tags?.filter((j)=>!m.options.excludeTags?.includes(j?.name)),info:{title:"Hono Documentation",description:"Development documentation",version:"0.0.0",...c.info},paths:{...YA(l,m),...c.paths},components:y}}async function JA(r,i){let n={};for(let m of r.routes){let c=m.handler[vc];if(!c){if(i.options.includeEmptyPaths)$y({route:m,paths:n});continue}let l=m.method;if(l!=="ALL"){if(i.options.excludeMethods?.includes(l))continue;if(!WA.includes(l))continue}let y=i.options.defaultOptions?.[l],{schema:j,components:A={}}=await OA(c,y);i.components=$c(i.components,A),$y({route:m,specs:j,paths:n})}return n}function RA(r){let{valueOrFunc:i,c:n,method:m,path:c}=r;if(i!=null){if(typeof i==="boolean")return i;if(typeof i==="function")return i({c:n,method:m,path:c})}return!1}async function OA(r,i){if("spec"in r){let c={},l={...i,...r.spec,responses:{...i?.responses,...r.spec.responses}};if(l.responses)for(let y of Object.keys(l.responses)){let j=l.responses[y];if(!j||!("content"in j))continue;for(let A of Object.keys(j.content??{})){let S=j.content?.[A];if(!S)continue;if(S.schema&&"toOpenAPISchema"in S.schema){let v=await S.schema.toOpenAPISchema();if(S.schema=v.schema,v.components)c=$c(c,v.components)}}}return{schema:l,components:c}}let n=await r.toOpenAPISchema(),m=i??{};if(r.target==="form"||r.target==="json"){let c=r.options?.media??r.target==="json"?"application/json":"multipart/form-data";if(!m.requestBody||!("content"in m.requestBody)||!m.requestBody.content)m.requestBody={content:{[c]:{schema:n.schema}}};else m.requestBody.content[c]={schema:n.schema}}else{let c=[];if("$ref"in n.schema){let y=n.schema.$ref.split("/").pop();if(y&&n.components?.schemas?.[y]){let j=n.components.schemas[y],A=Ny(r.target,j)[0];if(!n.components.parameters)n.components.parameters={};n.components.parameters[y]=A,delete n.components.schemas[y],c.push({$ref:`#/components/parameters/${y}`})}}else c=Ny(r.target,n.schema);m.parameters=c}return{schema:m,components:n.components}}function Ny(r,i){let n=[];for(let[m,c]of Object.entries(i.properties??{})){let l={in:r==="param"?"path":r,name:m,schema:c};if(i.required?.includes(m))l.required=!0;if(l.schema&&"description"in l.schema&&l.schema.description)l.description=l.schema.description,l.schema.description=void 0;n.push(l)}return n}function $c(...r){return r.reduce((i,n,m)=>{if(n==null||m===0)return i;if(i.schemas&&Object.keys(i.schemas).length>0||n.schemas&&Object.keys(n.schemas).length>0)i.schemas={...i.schemas,...n.schemas};if(i.parameters&&Object.keys(i.parameters).length>0||n.parameters&&Object.keys(n.parameters).length>0)i.parameters={...i.parameters,...n.parameters};return i},r[0]??{})}function $(r,i){return{vendor:r["~standard"].vendor,validate:r["~standard"].validate,toJSONSchema:(n)=>Ey(r,{...i,...n}),toOpenAPISchema:(n)=>Sc(r,{...i,...n})}}function D(r,i,n,m){let c=Ay(r,i,n);return Object.assign(c,{[vc]:{target:r,...$(i,m),options:m}})}function G(r){return Object.assign(async(n,m)=>{await m()},{[vc]:{spec:r}})}var Gc=(r,i,n)=>{return(m,c)=>{let l=-1;return y(0);async function y(j){if(j<=l)throw Error("next() called multiple times");l=j;let A,S=!1,v;if(r[j])v=r[j][0][0],m.req.routeIndex=j;else v=j===r.length&&c||void 0;if(v)try{A=await v(m,()=>y(j+1))}catch(w){if(w instanceof Error&&i)m.error=w,A=await i(w,m),S=!0;else throw w}else if(m.finalized===!1&&n)A=await n(m);if(A&&(m.finalized===!1||S))m.res=A;return m}}};var Dy=Symbol();var Nc=(r)=>("headers"in r),Uy=async(r,i=Object.create(null))=>{let{all:n=!1,dot:m=!1}=i,y=(Nc(r)?r.headers:r.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();if(y==="multipart/form-data"||y==="application/x-www-form-urlencoded")return LA(r,{all:n,dot:m});return{}};async function LA(r,i){let n=Nc(r)?r.headers:r.raw.headers,m=await r.arrayBuffer(),c=zm(m,n.get("Content-Type")||"");if(!Nc(r))r.bodyCache.formData=c;let l=await c;if(l)return qA(l,i);return{}}function qA(r,i){let n=Object.create(null);if(r.forEach((m,c)=>{if(!(i.all||c.endsWith("[]")))n[c]=m;else _A(n,c,m)}),i.dot)Object.entries(n).forEach(([m,c])=>{if(m.includes("."))FA(n,m,c),delete n[m]});return n}var _A=(r,i,n)=>{if(r[i]!==void 0)if(Array.isArray(r[i]))r[i].push(n);else r[i]=[r[i],n];else if(!i.endsWith("[]"))r[i]=n;else r[i]=[n]},FA=(r,i,n)=>{if(/(?:^|\.)__proto__\./.test(i))return;let m=r,c=i.split(".");c.forEach((l,y)=>{if(y===c.length-1)m[l]=n;else{if(!m[l]||typeof m[l]!=="object"||Array.isArray(m[l])||m[l]instanceof File)m[l]=Object.create(null);m=m[l]}})};var Py=(r)=>Sn(r,Mn),Cy=class{raw;#r;#i;routeIndex=0;path;bodyCache={};constructor(r,i="/",n=[[]]){this.raw=r,this.path=i,this.#i=n,this.#r={}}param(r){return r?this.#n(r):this.#l()}#n(r){let i=this.#i[0][this.routeIndex][1][r],n=this.#c(i);return n&&/\%/.test(n)?Py(n):n}#l(){let r={},i=Object.keys(this.#i[0][this.routeIndex][1]);for(let n of i){let m=this.#c(this.#i[0][this.routeIndex][1][n]);if(m!==void 0)r[n]=/\%/.test(m)?Py(m):m}return r}#c(r){return this.#i[1]?this.#i[1][r]:r}query(r){return ny(this.url,r)}queries(r){return my(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let i={};return this.raw.headers.forEach((n,m)=>{i[m]=n}),i}async parseBody(r){return Uy(this,r)}#m=(r)=>{let{bodyCache:i,raw:n}=this,m=i[r];if(m)return m;let c=Object.keys(i)[0];if(c)return i[c].then((l)=>{if(c==="json")l=JSON.stringify(l);return new Response(l)[r]()});return i[r]=n[r]()};json(){return this.#m("text").then((r)=>JSON.parse(r))}text(){return this.#m("text")}arrayBuffer(){return this.#m("arrayBuffer")}bytes(){return this.#m("arrayBuffer").then((r)=>new Uint8Array(r))}blob(){return this.#m("blob")}formData(){return this.#m("formData")}addValidatedData(r,i){this.#r[r]=i}valid(r){return this.#r[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[Dy](){return this.#i}get matchedRoutes(){return this.#i[0].map(([[,r]])=>r)}get routePath(){return this.#i[0].map(([[,r]])=>r)[this.routeIndex].path}};var Mm={Stringify:1,BeforeStream:2,Stream:3},Wy=(r,i)=>{let n=new String(r);return n.isEscaped=!0,n.callbacks=i,n};var Tn=async(r,i,n,m,c)=>{if(typeof r==="object"&&!(r instanceof String)){if(!(r instanceof Promise))r=r.toString();if(r instanceof Promise)r=await r}let l=r.callbacks;if(!l?.length)return Promise.resolve(r);if(c)c[0]+=r;else c=[r];let y=Promise.all(l.map((j)=>j({phase:i,buffer:c,context:m}))).then((j)=>Promise.all(j.filter(Boolean).map((A)=>Tn(A,i,!1,m,c))).then(()=>c[0]));if(n)return Wy(await y,l);else return y};var Xy="text/plain; charset=UTF-8",Ec=(r,i)=>{return{"Content-Type":r,...i}},hn=(r,i)=>new Response(r,i),Qc=class{#r;#i;env={};#n;finalized=!1;error;#l;#c;#m;#S;#I;#A;#j;#v;#w;constructor(r,i){if(this.#r=r,i)this.#c=i.executionCtx,this.env=i.env,this.#A=i.notFoundHandler,this.#w=i.path,this.#v=i.matchResult}get req(){return this.#i??=new Cy(this.#r,this.#w,this.#v),this.#i}get event(){if(this.#c&&"respondWith"in this.#c)return this.#c;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#c)return this.#c;else throw Error("This context has no ExecutionContext")}get res(){return this.#m||=hn(null,{headers:this.#j??=new Headers})}set res(r){if(this.#m&&r){r=hn(r.body,r);for(let[i,n]of this.#m.headers.entries()){if(i==="content-type")continue;if(i==="set-cookie"){let m=this.#m.headers.getSetCookie();r.headers.delete("set-cookie");for(let c of m)r.headers.append("set-cookie",c)}else r.headers.set(i,n)}}this.#m=r,this.finalized=!0}render=(...r)=>{return this.#I??=(i)=>this.html(i),this.#I(...r)};setLayout=(r)=>this.#S=r;getLayout=()=>this.#S;setRenderer=(r)=>{this.#I=r};header=(r,i,n)=>{if(this.finalized)this.#m=hn(this.#m.body,this.#m);let m=this.#m?this.#m.headers:this.#j??=new Headers;if(i===void 0)m.delete(r);else if(n?.append)m.append(r,i);else m.set(r,i)};status=(r)=>{this.#l=r};set=(r,i)=>{this.#n??=new Map,this.#n.set(r,i)};get=(r)=>{return this.#n?this.#n.get(r):void 0};get var(){if(!this.#n)return{};return Object.fromEntries(this.#n)}#y(r,i,n){let m=this.#m?new Headers(this.#m.headers):this.#j??new Headers;if(typeof i==="object"&&"headers"in i){let l=i.headers instanceof Headers?i.headers:new Headers(i.headers);for(let[y,j]of l)if(y.toLowerCase()==="set-cookie")m.append(y,j);else m.set(y,j)}if(n)for(let[l,y]of Object.entries(n))if(typeof y==="string")m.set(l,y);else{m.delete(l);for(let j of y)m.append(l,j)}let c=typeof i==="number"?i:i?.status??this.#l;return hn(r,{status:c,headers:m})}newResponse=(...r)=>this.#y(...r);body=(r,i,n)=>this.#y(r,i,n);text=(r,i,n)=>{return!this.#j&&!this.#l&&!i&&!n&&!this.finalized?new Response(r):this.#y(r,i,Ec(Xy,n))};json=(r,i,n)=>{return this.#y(JSON.stringify(r),i,Ec("application/json",n))};html=(r,i,n)=>{let m=(c)=>this.#y(c,i,Ec("text/html; charset=UTF-8",n));return typeof r==="object"?Tn(r,Mm.Stringify,!1,{}).then(m):m(r)};redirect=(r,i)=>{let n=String(r);return this.header("Location",!/[^\x00-\xFF]/.test(n)?n:encodeURI(n)),this.newResponse(null,i??302)};notFound=()=>{return this.#A??=()=>hn(),this.#A(this)}};var o="ALL",Ky="all",Hy=["get","post","put","delete","options","patch"],Tm="Can not add a route since the matcher is already built.",hm=class extends Error{};var Dc="__COMPOSED_HANDLER";var gA=(r)=>{return r.text("404 Not Found",404)},Zy=(r,i)=>{if("getResponse"in r){let n=r.getResponse();return i.newResponse(n.body,n)}return console.error(r),i.text("Internal Server Error",500)},Vy=class r{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#r="/";routes=[];constructor(i={}){[...Hy,Ky].forEach((l)=>{this[l]=(y,...j)=>{if(typeof y==="string")this.#r=y;else this.#l(l,this.#r,y);return j.forEach((A)=>{this.#l(l,this.#r,A)}),this}}),this.on=(l,y,...j)=>{for(let A of[y].flat()){this.#r=A;for(let S of[l].flat())j.map((v)=>{this.#l(S.toUpperCase(),this.#r,v)})}return this},this.use=(l,...y)=>{if(typeof l==="string")this.#r=l;else this.#r="*",y.unshift(l);return y.forEach((j)=>{this.#l(o,this.#r,j)}),this};let{strict:m,...c}=i;Object.assign(this,c),this.getPath=m??!0?i.getPath??lc:ry}#i(){let i=new r({router:this.router,getPath:this.getPath});return i.errorHandler=this.errorHandler,i.#n=this.#n,i.routes=this.routes,i}#n=gA;errorHandler=Zy;route(i,n){let m=this.basePath(i);return n.routes.map((c)=>{let l;if(n.errorHandler===Zy)l=c.handler;else l=async(y,j)=>(await Gc([],n.errorHandler)(y,()=>c.handler(y,j))).res,l[Dc]=c.handler;m.#l(c.method,c.path,l,c.basePath)}),this}basePath(i){let n=this.#i();return n._basePath=Ji(this._basePath,i),n}onError=(i)=>{return this.errorHandler=i,this};notFound=(i)=>{return this.#n=i,this};mount(i,n,m){let c,l;if(m)if(typeof m==="function")l=m;else if(l=m.optionHandler,m.replaceRequest===!1)c=(A)=>A;else c=m.replaceRequest;let y=l?(A)=>{let S=l(A);return Array.isArray(S)?S:[S]}:(A)=>{let S=void 0;try{S=A.executionCtx}catch{}return[A.env,S]};c||=(()=>{let A=Ji(this._basePath,i),S=A==="/"?0:A.length;return(v)=>{let w=new URL(v.url);return w.pathname=this.getPath(v).slice(S)||"/",new Request(w,v)}})();let j=async(A,S)=>{let v=await n(c(A.req.raw),...y(A));if(v)return v;await S()};return this.#l(o,Ji(i,"*"),j),this}#l(i,n,m,c){i=i.toUpperCase(),n=Ji(this._basePath,n);let l={basePath:c!==void 0?Ji(this._basePath,c):this._basePath,path:n,method:i,handler:m};this.router.add(i,n,[m,l]),this.routes.push(l)}#c(i,n){if(i instanceof Error)return this.errorHandler(i,n);throw i}#m(i,n,m,c){if(c==="HEAD")return(async()=>new Response(null,await this.#m(i,n,m,"GET")))();let l=this.getPath(i,{env:m}),y=this.router.match(c,l),j=new Qc(i,{path:l,matchResult:y,env:m,executionCtx:n,notFoundHandler:this.#n});if(y[0].length===1){let S;try{S=y[0][0][0][0](j,async()=>{j.res=await this.#n(j)})}catch(v){return this.#c(v,j)}return S instanceof Promise?S.then((v)=>v||(j.finalized?j.res:this.#n(j))).catch((v)=>this.#c(v,j)):S??this.#n(j)}let A=Gc(y[0],this.errorHandler,this.#n);return(async()=>{try{let S=await A(j);if(!S.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return S.res}catch(S){return this.#c(S,j)}})()}fetch=(i,...n)=>{return this.#m(i,n[1],n[0],i.method)};request=(i,n,m,c)=>{if(i instanceof Request)return this.fetch(n?new Request(i,n):i,m,c);return i=i.toString(),this.fetch(new Request(/^https?:\/\//.test(i)?i:`http://localhost${Ji("/",i)}`,n),m,c)};fire=()=>{addEventListener("fetch",(i)=>{i.respondWith(this.#m(i.request,i,void 0,i.request.method))})}};var Bn=[];function Bm(r,i){let n=this.buildAllMatchers(),m=(c,l)=>{let y=n[c]||n[o],j=y[2][l];if(j)return j;let A=l.match(y[0]);if(!A)return[[],Bn];let S=A.indexOf("",1);return[y[1][S],A]};return this.match=m,m(r,i)}var om="[^/]+",on=".*",xn="(?:|/.*)",di=Symbol(),zA=new Set(".\\+*[^]$()");function MA(r,i){if(r.length===1)return i.length===1?r<i?-1:1:-1;if(i.length===1)return 1;if(r===on||r===xn)return 1;else if(i===on||i===xn)return-1;if(r===om)return 1;else if(i===om)return-1;return r.length===i.length?r<i?-1:1:i.length-r.length}var Yy=class r{#r;#i;#n=Object.create(null);insert(i,n,m,c,l){if(i.length===0){if(this.#r!==void 0)throw di;if(l)return;this.#r=n;return}let[y,...j]=i,A=y==="*"?j.length===0?["","",on]:["","",om]:y==="/*"?["","",xn]:y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),S;if(A){let v=A[1],w=A[2]||om;if(v&&A[2]){if(w===".*")throw di;if(w=w.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(w))throw di}if(S=this.#n[w],!S){if(Object.keys(this.#n).some((N)=>N!==on&&N!==xn))throw di;if(l)return;if(S=this.#n[w]=new r,v!=="")S.#i=c.varIndex++}if(!l&&v!=="")m.push([v,S.#i])}else if(S=this.#n[y],!S){if(Object.keys(this.#n).some((v)=>v.length>1&&v!==on&&v!==xn))throw di;if(l)return;S=this.#n[y]=new r}S.insert(j,n,m,c,l)}buildRegExpStr(){let n=Object.keys(this.#n).sort(MA).map((m)=>{let c=this.#n[m];return(typeof c.#i==="number"?`(${m})@${c.#i}`:zA.has(m)?`\\${m}`:m)+c.buildRegExpStr()});if(typeof this.#r==="number")n.unshift(`#${this.#r}`);if(n.length===0)return"";if(n.length===1)return n[0];return"(?:"+n.join("|")+")"}};var Jy=class{#r={varIndex:0};#i=new Yy;insert(r,i,n){let m=[],c=[];for(let y=0;;){let j=!1;if(r=r.replace(/\{[^}]+\}/g,(A)=>{let S=`@\\${y}`;return c[y]=[S,A],y++,j=!0,S}),!j)break}let l=r.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let y=c.length-1;y>=0;y--){let[j]=c[y];for(let A=l.length-1;A>=0;A--)if(l[A].indexOf(j)!==-1){l[A]=l[A].replace(j,c[y][1]);break}}return this.#i.insert(l,i,m,this.#r,n),m}buildRegExp(){let r=this.#i.buildRegExpStr();if(r==="")return[/^$/,[],[]];let i=0,n=[],m=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(c,l,y)=>{if(l!==void 0)return n[++i]=Number(l),"$()";if(y!==void 0)return m[Number(y)]=++i,"";return""}),[new RegExp(`^${r}`),n,m]}};var TA=[/^$/,[],Object.create(null)],Ry=Object.create(null);function Oy(r){return Ry[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(i,n)=>n?`\\${n}`:"(?:|/.*)")}$`)}function hA(){Ry=Object.create(null)}function BA(r){let i=new Jy,n=[];if(r.length===0)return TA;let m=r.map((S)=>[!/\*|\/:/.test(S[0]),...S]).sort(([S,v],[w,N])=>S?1:w?-1:v.length-N.length),c=Object.create(null);for(let S=0,v=-1,w=m.length;S<w;S++){let[N,E,Q]=m[S];if(N)c[E]=[Q.map(([Z])=>[Z,Object.create(null)]),Bn];else v++;let W;try{W=i.insert(E,v,N)}catch(Z){throw Z===di?new hm(E):Z}if(N)continue;n[v]=Q.map(([Z,X])=>{let K=Object.create(null);X-=1;for(;X>=0;X--){let[R,q]=W[X];K[R]=q}return[Z,K]})}let[l,y,j]=i.buildRegExp();for(let S=0,v=n.length;S<v;S++)for(let w=0,N=n[S].length;w<N;w++){let E=n[S][w]?.[1];if(!E)continue;let Q=Object.keys(E);for(let W=0,Z=Q.length;W<Z;W++)E[Q[W]]=j[E[Q[W]]]}let A=[];for(let S in y)A[S]=n[y[S]];return[l,A,c]}function wn(r,i){if(!r)return;for(let n of Object.keys(r).sort((m,c)=>c.length-m.length))if(Oy(n).test(i))return[...r[n]];return}var xm=class{name="RegExpRouter";#r;#i;constructor(){this.#r={[o]:Object.create(null)},this.#i={[o]:Object.create(null)}}add(r,i,n){let m=this.#r,c=this.#i;if(!m||!c)throw Error(Tm);if(!m[r])[m,c].forEach((j)=>{j[r]=Object.create(null),Object.keys(j[o]).forEach((A)=>{j[r][A]=[...j[o][A]]})});if(i==="/*")i="*";let l=(i.match(/\/:/g)||[]).length;if(/\*$/.test(i)){let j=Oy(i);if(r===o)Object.keys(m).forEach((A)=>{m[A][i]||=wn(m[A],i)||wn(m[o],i)||[]});else m[r][i]||=wn(m[r],i)||wn(m[o],i)||[];Object.keys(m).forEach((A)=>{if(r===o||r===A)Object.keys(m[A]).forEach((S)=>{j.test(S)&&m[A][S].push([n,l])})}),Object.keys(c).forEach((A)=>{if(r===o||r===A)Object.keys(c[A]).forEach((S)=>j.test(S)&&c[A][S].push([n,l]))});return}let y=gm(i)||[i];for(let j=0,A=y.length;j<A;j++){let S=y[j];Object.keys(c).forEach((v)=>{if(r===o||r===v)c[v][S]||=[...wn(m[v],S)||wn(m[o],S)||[]],c[v][S].push([n,l-A+j+1])})}}match=Bm;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#i).concat(Object.keys(this.#r)).forEach((i)=>{r[i]||=this.#n(i)}),this.#r=this.#i=void 0,hA(),r}#n(r){let i=[],n=r===o;if([this.#r,this.#i].forEach((m)=>{let c=m[r]?Object.keys(m[r]).map((l)=>[l,m[r][l]]):[];if(c.length!==0)n||=!0,i.push(...c);else if(r!==o)i.push(...Object.keys(m[o]).map((l)=>[l,m[o][l]]))}),!n)return null;else return BA(i)}};var oA=class{name="PreparedRegExpRouter";#r;#i;constructor(r,i){this.#r=r,this.#i=i}#n(r,i){let n=this.#r[r];n[1].forEach((m)=>m&&m.push(i)),Object.values(n[2]).forEach((m)=>m[0].push(i))}#l(r,i,n,m,c){let l=this.#r[r];if(!c)l[2][i][0].push([n,{}]);else m.forEach((y)=>{if(typeof y==="number")l[1][y].push([n,c]);else l[2][y||i][0].push([n,c])})}add(r,i,n){if(!this.#r[r]){let c=this.#r[o],l={};for(let y in c[2])l[y]=[c[2][y][0].slice(),Bn];this.#r[r]=[c[0],c[1].map((y)=>Array.isArray(y)?y.slice():0),l]}if(i==="/*"||i==="*"){let c=[n,{}];if(r===o)for(let l in this.#r)this.#n(l,c);else this.#n(r,c);return}let m=this.#i[i];if(!m)throw Error(`Path ${i} is not registered`);for(let[c,l]of m)if(r===o)for(let y in this.#r)this.#l(y,i,n,c,l);else this.#l(r,i,n,c,l)}buildAllMatchers(){return this.#r}match=Bm};var Uc=class{name="SmartRouter";#r=[];#i=[];constructor(r){this.#r=r.routers}add(r,i,n){if(!this.#i)throw Error(Tm);this.#i.push([r,i,n])}match(r,i){if(!this.#i)throw Error("Fatal error");let n=this.#r,m=this.#i,c=n.length,l=0,y;for(;l<c;l++){let j=n[l];try{for(let A=0,S=m.length;A<S;A++)j.add(...m[A]);y=j.match(r,i)}catch(A){if(A instanceof hm)continue;throw A}this.match=j.match.bind(j),this.#r=[j],this.#i=void 0;break}if(l===c)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,y}get activeRouter(){if(this.#i||this.#r.length!==1)throw Error("No active router has been determined yet.");return this.#r[0]}};var kn=Object.create(null),xA=(r)=>{for(let i in r)return!0;return!1},Ly=class r{#r;#i;#n;#l=0;#c=kn;constructor(i,n,m){if(this.#i=m||Object.create(null),this.#r=[],i&&n){let c=Object.create(null);c[i]={handler:n,possibleKeys:[],score:0},this.#r=[c]}this.#n=[]}insert(i,n,m){this.#l=++this.#l;let c=this,l=el(n),y=[];for(let j=0,A=l.length;j<A;j++){let S=l[j],v=l[j+1],w=sl(S,v),N=Array.isArray(w)?w[0]:S;if(N in c.#i){if(c=c.#i[N],w)y.push(w[1]);continue}if(c.#i[N]=new r,w)c.#n.push(w),y.push(w[1]);c=c.#i[N]}return c.#r.push({[i]:{handler:m,possibleKeys:y.filter((j,A,S)=>S.indexOf(j)===A),score:this.#l}}),c}#m(i,n,m,c,l){for(let y=0,j=n.#r.length;y<j;y++){let A=n.#r[y],S=A[m]||A[o],v={};if(S!==void 0){if(S.params=Object.create(null),i.push(S),c!==kn||l&&l!==kn)for(let w=0,N=S.possibleKeys.length;w<N;w++){let E=S.possibleKeys[w],Q=v[S.score];S.params[E]=l?.[E]&&!Q?l[E]:c[E]??l?.[E],v[S.score]=!0}}}}search(i,n){let m=[];this.#c=kn;let l=[this],y=cc(n),j=[],A=y.length,S=null;for(let v=0;v<A;v++){let w=y[v],N=v===A-1,E=[];for(let W=0,Z=l.length;W<Z;W++){let X=l[W],K=X.#i[w];if(K)if(K.#c=X.#c,N){if(K.#i["*"])this.#m(m,K.#i["*"],i,X.#c);this.#m(m,K,i,X.#c)}else E.push(K);for(let R=0,q=X.#n.length;R<q;R++){let z=X.#n[R],L=X.#c===kn?{}:{...X.#c};if(z==="*"){let Br=X.#i["*"];if(Br)this.#m(m,Br,i,X.#c),Br.#c=L,E.push(Br);continue}let[f,hr,Yr]=z;if(!w&&!(Yr instanceof RegExp))continue;let x=X.#i[f];if(Yr instanceof RegExp){if(S===null){S=Array(A);let An=n[0]==="/"?1:0;for(let zn=0;zn<A;zn++)S[zn]=An,An+=y[zn].length+1}let Br=n.substring(S[v]),Yi=Yr.exec(Br);if(Yi){if(L[hr]=Yi[0],this.#m(m,x,i,X.#c,L),Yi[0].length===Br.length&&x.#i["*"])this.#m(m,x.#i["*"],i,X.#c,L);if(xA(x.#i)){x.#c=L;let An=Yi[0].match(/\//)?.length??0;(j[An]||=[]).push(x)}continue}}if(Yr===!0||Yr.test(w))if(L[hr]=w,N){if(this.#m(m,x,i,L,X.#c),x.#i["*"])this.#m(m,x.#i["*"],i,L,X.#c)}else x.#c=L,E.push(x)}}let Q=j.shift();l=Q?E.concat(Q):E}if(m.length>1)m.sort((v,w)=>{return v.score-w.score});return[m.map(({handler:v,params:w})=>[v,w])]}};var Pc=class{name="TrieRouter";#r;constructor(){this.#r=new Ly}add(r,i,n){let m=gm(i);if(m){for(let c=0,l=m.length;c<l;c++)this.#r.insert(r,m[c],n);return}this.#r.insert(r,i,n)}match(r,i){return this.#r.search(r,i)}};var V=class extends Vy{constructor(r={}){super(r);this.router=r.router??new Uc({routers:[new xm,new Pc]})}};var Cc=/^\s*(?:text\/(?!event-stream(?:[;\s]|$))[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|msgpack|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|vnd\.msgpack|wasm|x-httpd-php|x-javascript|x-msgpack|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml|msgpack))(?:[;\s]|$)/i;var kA={br:".br",zstd:".zst",gzip:".gz"},oN=Object.keys(kA);var Wc="x-hono-disable-ssg",jE=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Wc]:"true"}})}catch{return null}})();var{write:xE}=Bun;var qy=class{#r;constructor(r){this.#r=r,this.raw=r.raw,this.url=r.url?new URL(r.url):null,this.protocol=r.protocol??null}send(r,i){this.#r.send(r,i??{})}raw;binaryType="arraybuffer";get readyState(){return this.#r.readyState}url;protocol;close(r,i){this.#r.close(r,i)}},_y=(r)=>{return new MessageEvent("message",{data:r})},Fy=(r)=>{return(...i)=>{if(typeof i[0]==="function"){let[n,m]=i;return async function(l,y){let j=await n(l),A=await r(l,j,m);if(A)return A;await y()}}else{let[n,m,c]=i;return(async()=>{let l=await r(n,m,c);if(!l)throw Error("Failed to upgrade WebSocket");return l})()}}};var km=(r)=>("server"in r.env)?r.env.server:r.env;var Xc=(r)=>{return new qy({send:(i,n)=>{r.send(i,n?.compress)},raw:r,readyState:r.readyState,url:r.data.url,protocol:r.data.protocol,close(i,n){r.close(i,n)}})},gy=Fy((r,i)=>{let n=km(r);if(!n)throw TypeError("env has to include the 2nd argument of fetch.");if(n.upgrade(r.req.raw,{data:{events:i,url:new URL(r.req.url),protocol:r.req.header("sec-websocket-protocol")?.split(",")[0]?.trim()??""}}))return new Response(null);return}),zy={open(r){let i=r.data.events;if(i.onOpen)i.onOpen(new Event("open"),Xc(r))},close(r,i,n){let m=r.data.events;if(m.onClose)m.onClose(new CloseEvent("close",{code:i,reason:n}),Xc(r))},message(r,i){let n=r.data.events;if(n.onMessage){let m=typeof i==="string"?i:i.buffer;n.onMessage(_y(m),Xc(r))}}},Kc=()=>({upgradeWebSocket:gy,websocket:zy});var My={create(r){let i=Kc();return{upgradeWebSocket:i.upgradeWebSocket,async listen(n){let m={fetch:r.fetch,hostname:n.hostname,idleTimeout:0,websocket:i.websocket},c=(y)=>{try{return Bun.serve({...m,port:y})}catch{return}},l=n.port===0?c(4096)??c(0):c(n.port);if(!l)throw Error(`Failed to start server on port ${n.port}`);if(!l.port)throw Error(`Failed to resolve server address for port ${n.port}`);return{port:l.port,stop(y){return Promise.resolve(l.stop(y))}}}}}};var Nn={};Nr(Nn,{unpublish:()=>Zj,publish:()=>Iv,MDNS:()=>Nn});var Hj=jv(Kj(),1),dn=_.create({service:"mdns"}),li,em;function Iv(r,i){if(em===r)return;if(li)Zj();try{let n=i??"qitqode.local",m=`qitqode-${r}`;li=new Hj.Bonjour;let c=li.publish({name:m,type:"http",host:n,port:r,txt:{path:"/"}});c.on("up",()=>{dn.info("mDNS service published",{name:m,port:r})}),c.on("error",(l)=>{dn.error("mDNS service error",{error:l})}),em=r}catch(n){if(dn.error("mDNS publish failed",{error:n}),li)try{li.destroy()}catch{}li=void 0,em=void 0}}function Zj(){if(li){try{li.unpublishAll(),li.destroy()}catch(r){dn.error("mDNS unpublish failed",{error:r})}li=void 0,em=void 0,dn.info("mDNS service unpublished")}}var Vj=(r)=>{let i=atob(r),n=new Uint8Array(new ArrayBuffer(i.length)),m=i.length/2;for(let c=0,l=i.length-1;c<=m;c++,l--)n[c]=i.charCodeAt(c),n[l]=i.charCodeAt(l);return n};var Av=/^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/,Sv=/^([^:]*):(.*)$/,vv=new TextDecoder,Yj=(r)=>{let i=Av.exec(r.headers.get("Authorization")||"");if(!i)return;let n=void 0;try{n=Sv.exec(vv.decode(Vj(i[1])))}catch{}if(!n)return;return{username:n[1],password:n[2]}};var Jj=(r,...i)=>{let n="username"in r&&"password"in r,m="verifyUser"in r;if(!(n||m))throw Error('basic auth middleware requires options for "username and password" or "verifyUser"');if(!r.realm)r.realm="Secure Area";if(!r.invalidUserMessage)r.invalidUserMessage="Unauthorized";if(n)i.unshift({username:r.username,password:r.password});return async function(l,y){let j=Yj(l.req.raw);if(j)if(m){if(await r.verifyUser(j.username,j.password,l)){if(r.onAuthSuccess)await r.onAuthSuccess(l,j.username);await y();return}}else for(let N of i){let[E,Q]=await Promise.all([Ic(N.username,j.username,r.hashFunction),Ic(N.password,j.password,r.hashFunction)]);if(E&&Q){if(r.onAuthSuccess)await r.onAuthSuccess(l,j.username);await y();return}}let A=401,S={"WWW-Authenticate":'Basic realm="'+r.realm?.replace(/"/g,"\\\"")+'"'},v=typeof r.invalidUserMessage==="function"?await r.invalidUserMessage(l):r.invalidUserMessage,w=typeof v==="string"?new Response(v,{status:A,headers:S}):new Response(JSON.stringify(v),{status:A,headers:{...S,"content-type":"application/json"}});throw new kr(A,{res:w})}};var Rj=(r)=>{let i={origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[],...r},n=((c)=>{if(typeof c==="string")if(c==="*")return()=>c;else return(l)=>c===l?l:null;else if(typeof c==="function")return c;else return(l)=>c.includes(l)?l:null})(i.origin),m=((c)=>{if(typeof c==="function")return c;else if(Array.isArray(c))return()=>c;else return()=>[]})(i.allowMethods);return async function(l,y){function j(S,v){l.res.headers.set(S,v)}let A=await n(l.req.header("origin")||"",l);if(A)j("Access-Control-Allow-Origin",A);if(i.credentials)j("Access-Control-Allow-Credentials","true");if(i.exposeHeaders?.length)j("Access-Control-Expose-Headers",i.exposeHeaders.join(","));if(l.req.method==="OPTIONS"){if(i.origin!=="*")j("Vary","Origin");if(i.maxAge!=null)j("Access-Control-Max-Age",i.maxAge.toString());let S=await m(l.req.header("origin")||"",l);if(S.length)j("Access-Control-Allow-Methods",S.join(","));let v=i.allowHeaders;if(!v?.length){let w=l.req.header("Access-Control-Request-Headers");if(w)v=w.split(/\s*,\s*/)}if(v?.length)j("Access-Control-Allow-Headers",v.join(",")),l.res.headers.append("Vary","Access-Control-Request-Headers");return l.res.headers.delete("Content-Length"),l.res.headers.delete("Content-Type"),new Response(null,{headers:l.res.headers,status:204,statusText:"No Content"})}if(await y(),i.origin!=="*")l.header("Vary","Origin",{append:!0})}};var Lj=(r)=>r===32||r===9||r===10||r===13,sm=(r,i)=>{while(i<r.length){if(!Lj(r.charCodeAt(i)))break;i++}return i},tn=(r,i)=>{while(i>0){if(!Lj(r.charCodeAt(i-1)))break;i--}return i},Oj=(r,i)=>{while(i<r.length){let n=r.charCodeAt(i);if(n===59)return[i+1,!0];if(n===44)return[i+1,!1];i++}return[i,!1]},wv=(r,i)=>{let n=i,m=!1;while(n<r.length){let c=r.charCodeAt(n);if(m&&c===92)n++;else if(c===34)m=!m;else if(!m&&c===44)return n+1;n++}return n},$v=(r,i)=>{i=sm(r,i);let n=i,m,c,l=!1;while(n<r.length){let A=r.charCodeAt(n);if(A===61){m=r.slice(i,tn(r,n)),n++;break}if(A===59)return[n+1,void 0,void 0,!0];if(A===44)return[n+1,void 0,void 0,!1];n++}if(m===void 0)return[n,void 0,void 0,!1];if(n=sm(r,n),r.charCodeAt(n)===61){let A=Oj(r,n+1);return[A[0],m,void 0,A[1]]}let y=!1,j=n;while(n<r.length){let A=r.charCodeAt(n);if(y&&A===92)n++;else if(A===34){if(y){let S=sm(r,n+1),v=r.charCodeAt(S);if(S<r.length&&!(v===59||v===44)){let w=Oj(r,S);return[w[0],m,void 0,w[1]]}if(c=r.slice(j+1,n),c.includes("\\"))c=c.replace(/\\(.)/g,"$1");if(v===44)return[S+1,m,c,!1];if(v===59)l=!0,S++;n=S;break}y=!0}else if(!y&&(A===59||A===44)){if(c=r.slice(j,tn(r,n)),A===59)l=!0;n++;break}n++}return[n,m,c??r.slice(j,tn(r,n)),l]},Gv=(r,i)=>{let n={type:"",params:{},q:1};i=sm(r,i);let m=i;while(m<r.length){let j=r.charCodeAt(m);if(j===59||j===44){if(n.type=r.slice(i,tn(r,m)),m++,j===44)return[m,n.type?n:void 0];if(!n.type)return[wv(r,m),void 0];break}m++}if(!n.type)return n.type=r.slice(i,tn(r,r.length)),[r.length,n.type?n:void 0];let c,l,y;while(m<r.length){if([m,c,l,y]=$v(r,m),c&&l)n.params[c]=l;if(!y)break}return[m,n]},qj=(r)=>{if(!r)return[];let i=[],n=0,m,c=!1,l;while(n<r.length)if([n,m]=Gv(r,n),m){if(m.q=Nv(m.params.q),i.push(m),l&&l.q<m.q)c=!0;l=m}if(c)i.sort((y,j)=>j.q-y.q);return i},Nv=(r)=>{if(r===void 0)return 1;if(r==="")return 1;if(r==="NaN")return 0;let i=Number(r);if(i===1/0)return 1;if(i===-1/0)return 0;if(Number.isNaN(i))return 1;if(i<0||i>1)return 1;return i};var Ev=["gzip","deflate"],Qv=/(?:^|,)\s*?no-transform\s*?(?:,|$)/i,Dv=(r,i)=>{if(r===void 0)return;let n=qj(r),m=n.find((l)=>l.type==="*")?.q,c;for(let l of i){let y=n.find((A)=>A.type.toLowerCase()===l),j=y?y.q:m??0;if(j===1)return l;else if(j>0&&(!c||j>c.q))c={encoding:l,q:j}}return c?.encoding},_j=(r)=>{let i=r?.threshold??1024,n=r?.encoding?[r.encoding]:Ev,m=r?.contentTypeFilter??Cc,c=typeof m==="function"?(l)=>{let y=l.headers.get("Content-Type");return y&&m(y)}:(l)=>{let y=l.headers.get("Content-Type");return y&&m.test(y)};return async function(y,j){await j();let A=y.res.headers.get("Content-Length");if(y.res.status===206||y.res.headers.has("Content-Encoding")||y.res.headers.has("Transfer-Encoding")||y.req.method==="HEAD"||A&&Number(A)<i||!c(y.res)||!Uv(y.res))return;let S=y.req.header("Accept-Encoding"),v=Dv(S,n);if(!v||!y.res.body)return;let w=new CompressionStream(v);y.res=new Response(y.res.body.pipeThrough(w),y.res),y.res.headers.delete("Content-Length"),y.res.headers.set("Content-Encoding",v);let N=y.res.headers.get("ETag");if(N&&!N.startsWith("W/"))y.res.headers.set("ETag",`W/${N}`)}},Uv=(r)=>{let i=r.headers.get("Cache-Control");return!i||!Qv.test(i)};import{randomUUID as Pv}from"crypto";var fm="ticket",Fj="x-qitqode-ticket",gj="1",Cv=/^\/pty\/[^/]+\/connect$/,Wv=60000,bn=new Map;function Xv(){let r=Date.now();for(let[i,n]of bn)if(n.expiresAt<=r)bn.delete(i)}function zj(r){return Cv.test(r)}function Mj(r,i=Wv){Xv();let n=Pv();return bn.set(n,{ptyID:r,expiresAt:Date.now()+i}),{ticket:n,expires_in:Math.round(i/1000)}}function Tj(r,i){let n=bn.get(r);if(!n)return!1;if(bn.delete(r),n.expiresAt<=Date.now())return!1;return n.ptyID===i}var r0=_.create({service:"server"}),hj=(r,i)=>{let n=crypto.randomUUID();r0.error("failed",{error_id:n,error:r});let m=()=>i.json(new En.Unknown({message:"Internal server error"}).toObject(),{status:500,headers:{"x-qitqode-error-id":n}});if(r instanceof En){let c;if(r instanceof Ci)c=404;else if(r instanceof ir.ModelNotFoundError)c=400;else if(r.name==="ProviderAuthValidationFailed")c=400;else if(r.name.startsWith("Worktree"))c=400;else c=500;if(c===500)return m();return i.json(r.toObject(),{status:c})}if(r instanceof J.BusyError)return i.json(new En.Unknown({message:r.message}).toObject(),{status:409});if(r instanceof kr)return r.getResponse();return m()},Bj=(r,i)=>{if(r.req.method==="OPTIONS")return i();let n=k.QITQODE_SERVER_PASSWORD;if(!n)return i();let m=new URL(r.req.url).pathname;if(zj(m)&&r.req.query(fm))return i();let c=k.QITQODE_SERVER_USERNAME??"qitqode";return Jj({username:c,password:n})(r,i)},oj=async(r,i)=>{let n=r.req.path==="/log";if(!n)r0.info("request",{method:r.req.method,path:r.req.path});let m=r0.time("request",{method:r.req.method,path:r.req.path});if(await i(),!n)m.stop()};function xj(r){return Rj({maxAge:86400,origin(i){if(!i)return;if(r?.cors?.includes(i))return i}})}function Kv(r){return r==="localhost"||r==="::1"||/^127(\.\d{1,3}){3}$/.test(r)||r==="127.0.0.1"}function Hv(r){if(r.startsWith("[")){let i=r.indexOf("]");return i===-1?r:r.slice(1,i)}return r.split(":")[0]}function kj(r){let i=r.hostname===void 0,n=r.hostname==="0.0.0.0"||r.hostname==="::";return(m,c)=>{if(i||n)return c();let l=m.req.header("host");if(!l)return c();let y=Hv(l);if(Kv(y))return c();if(r.hostname&&y===r.hostname)return c();if(r.mdnsDomain&&y===r.mdnsDomain)return c();if(r.allowedHosts?.includes(y))return c();throw r0.warn("rejected request with unexpected Host header",{host:y}),new kr(403,{message:`Forbidden: unexpected Host header "${y}"`})}}var Zv=_j(),pj=(r,i)=>{let n=r.req.path,m=r.req.method;if(n==="/event"||n==="/global/event")return i();if(m==="POST"&&/\/session\/[^/]+\/(message|prompt_async)$/.test(n))return i();return Zv(r,i)};var p={};Nr(p,{waitForSync:()=>Tv,status:()=>zv,startWorkspaceSyncing:()=>uc,sessionRestore:()=>qv,remove:()=>Fv,list:()=>_v,isSyncing:()=>Mv,get:()=>i1,create:()=>Ov,Workspace:()=>p,Info:()=>i0,Event:()=>sn,ConnectionStatus:()=>r1});var uj=["forgewise"];var Vv=new TextEncoder;function Yv(r){return Vv.encode(r).byteLength}function aj(r,i=16384){let n=[...uj.filter((l)=>(l in r)),...Object.keys(r).filter((l)=>!uj.includes(l))],m={},c=0;for(let l of n){let y={...m,[l]:r[l]},j=JSON.stringify(y);if(Yv(j)>i)continue;m[l]=r[l],c+=1}if(c===0)return;return JSON.stringify(m)}var Hr=dj("workspace",{id:Li().$type().primaryKey(),type:Li().notNull(),name:Li().notNull().default(""),branch:Li(),directory:Li(),extra:Li({mode:"json"}),project_id:Li().$type().notNull().references(()=>tj.id,{onDelete:"cascade"})});async function bj(r,i,n){let m=r.getReader(),c=new TextDecoder,l="",y="",j=1000,A=()=>{m.cancel().catch(()=>{return})};if(i.addEventListener("abort",A),i.aborted)A();try{while(!i.aborted){let S=await m.read().catch(()=>({done:!0,value:void 0}));if(S.done)break;l+=c.decode(S.value,{stream:!0}),l=l.replace(/\r\n/g,`
3
3
  `).replace(/\r/g,`
4
4
  `);let v=l.split(`
5
5
 
@@ -10,5 +10,5 @@ import{bg as In,cg as a2,dg as d2,eg as o2,fg as x2,gg as t2,hg as b2,ig as e2,j
10
10
  `);for(let c of["event","id","retry"])if(r[c]&&/[\r\n]/.test(r[c]))throw Error(`${c} must not contain "\\r" or "\\n"`);let m=[r.event&&`event: ${r.event}`,n,r.id&&`id: ${r.id}`,r.retry&&`retry: ${r.retry}`].filter(Boolean).join(`
11
11
  `)+`
12
12
 
13
- `;await this.write(m)}},t4=async(r,i,n)=>{try{await i(r)}catch(m){if(m instanceof Error&&n)await n(m,r),await r.writeSSE({event:"error",data:m.message});else console.error(m)}finally{r.close()}},b4=new WeakMap,Fl=(r,i,n)=>{let{readable:m,writable:c}=new TransformStream,l=new w2(c,m);if(Vm())r.req.raw.signal.addEventListener("abort",()=>{if(!l.closed)l.abort()});return b4.set(l.responseReadable,r),r.header("Transfer-Encoding","chunked"),r.header("Content-Type","text/event-stream"),r.header("Cache-Control","no-cache"),r.header("Connection","keep-alive"),t4(l,i,n),r.newResponse(l.responseReadable)};var $2=I.object({info:vr.Assistant,parts:vr.Part.array()});function G2(){return new V().get("/:sessionID/message",G({summary:"Get session messages",description:"Retrieve all messages in a session, including user prompts and AI responses.",operationId:"session.messages",responses:{200:{description:"List of messages",content:{"application/json":{schema:$(vr.WithParts.array())}}},...P(400,404)}}),s(),D("query",I.object({limit:I.coerce.number().int().min(0).optional().meta({description:"Maximum number of messages to return"}),before:I.string().optional().meta({description:"Opaque cursor for loading older messages"}).refine((r)=>{if(!r)return!0;try{return vr.cursor.decode(r),!0}catch{return!1}},{message:"Invalid cursor"}),agent_id:I.string().optional().meta({description:"Filter by message slice. Omitted = main-agent slice only (default). Pass a subagent's actor id to fetch its slice. Pass `*` to return every message regardless of slice."})}).refine((r)=>!r.before||r.limit!==void 0,{message:"before requires limit",path:["before"]})),async(r)=>{let i=r.req.valid("query"),n=r.req.valid("param").sessionID,m=i.agent_id??"main";if(i.limit===void 0||i.limit===0){let l=await u("SessionRoutes.messages",r,C.gen(function*(){let y=yield*J.Service;return yield*y.get(n),yield*y.messages({sessionID:n,agentID:m})}));return r.json(l)}let c=await vr.page({sessionID:n,limit:i.limit,before:i.before,agentID:m});if(c.cursor){let l=new URL(r.req.url);l.searchParams.set("limit",i.limit.toString()),l.searchParams.set("before",c.cursor),r.header("Access-Control-Expose-Headers","Link, X-Next-Cursor"),r.header("Link",`<${l.toString()}>; rel="next"`),r.header("X-Next-Cursor",c.cursor)}return r.json(c.items)}).get("/:sessionID/message/:messageID",G({summary:"Get message",description:"Retrieve a specific message from a session by its message ID.",operationId:"session.message",responses:{200:{description:"Message",content:{"application/json":{schema:$(I.object({info:vr.Info,parts:vr.Part.array()}))}}},...P(400,404)}}),Jl(),async(r)=>{let i=r.req.valid("param"),n=await vr.get({sessionID:i.sessionID,messageID:i.messageID});return r.json(n)}).delete("/:sessionID/message/:messageID",G({summary:"Delete message",description:"Permanently delete a specific message (and all of its parts) from a session. This does not revert any file changes that may have been made while processing the message.",operationId:"session.deleteMessage",responses:{200:{description:"Successfully deleted message",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),Jl(),async(r)=>U("SessionRoutes.deleteMessage",r,function*(){let i=r.req.valid("param"),n=yield*gl.Service,m=yield*J.Service;return yield*n.assertNotBusy(i.sessionID),yield*m.removeMessage({sessionID:i.sessionID,messageID:i.messageID}),!0})).delete("/:sessionID/message/:messageID/part/:partID",G({description:"Delete a part from a message",operationId:"part.delete",responses:{200:{description:"Successfully deleted part",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),Rl(),async(r)=>U("SessionRoutes.deletePart",r,function*(){let i=r.req.valid("param");return yield*(yield*J.Service).removePart({sessionID:i.sessionID,messageID:i.messageID,partID:i.partID}),!0})).patch("/:sessionID/message/:messageID/part/:partID",G({description:"Update a part in a message",operationId:"part.update",responses:{200:{description:"Successfully updated part",content:{"application/json":{schema:$(vr.Part)}}},...P(400,404)}}),Rl(),D("json",vr.Part),async(r)=>{let i=r.req.valid("param"),n=r.req.valid("json");if(n.id!==i.partID||n.messageID!==i.messageID||n.sessionID!==i.sessionID)throw Error(`Part mismatch: body.id='${n.id}' vs partID='${i.partID}', body.messageID='${n.messageID}' vs messageID='${i.messageID}', body.sessionID='${n.sessionID}' vs sessionID='${i.sessionID}'`);return U("SessionRoutes.updatePart",r,function*(){return yield*(yield*J.Service).updatePart(n)})}).post("/:sessionID/message",G({summary:"Send message",description:"Create and send a new message to a session, streaming the AI response.",operationId:"session.prompt",responses:{200:{description:"Created message",content:{"application/json":{schema:$($2)}}},...P(400,404,409)}}),s(),D("json",Dr.PromptInput.omit({sessionID:!0})),async(r)=>{let i=r.req.valid("param").sessionID;return await u("SessionRoutes.prompt.assertNotBusy",r,gl.Service.use((n)=>n.assertNotBusy(i))),r.status(200),r.header("Content-Type","application/json"),s0(r,async(n)=>{let m=r.req.valid("json"),c=r.req.raw.signal,l=()=>{u("SessionRoutes.prompt.disconnect",r,Dr.Service.use((y)=>y.cancel(i))).catch(()=>{})};if(c.aborted){l();return}c.addEventListener("abort",l,{once:!0});try{let y=await u("SessionRoutes.prompt",r,Dr.Service.use((j)=>j.prompt({...m,sessionID:i})));n.write(JSON.stringify(y))}finally{c.removeEventListener("abort",l)}})}).post("/:sessionID/prompt_async",G({summary:"Send async message",description:"Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.",operationId:"session.prompt_async",responses:{204:{description:"Prompt accepted"},...P(400,404)}}),s(),D("json",Dr.PromptInput.omit({sessionID:!0})),async(r)=>{let i=r.req.valid("param").sessionID,n=r.req.valid("json");return u("SessionRoutes.prompt_async",r,Dr.Service.use((m)=>m.prompt({...n,sessionID:i}))).catch((m)=>{t0.error("prompt_async failed",{sessionID:i,error:m}),wr.publish(J.Event.Error,{sessionID:i,error:new En.Unknown({message:m instanceof Error?m.message:String(m)}).toObject()})}),r.body(null,204)}).post("/:sessionID/command",G({summary:"Send command",description:"Send a new command to a session for execution by the AI assistant.",operationId:"session.command",responses:{200:{description:"Created message",content:{"application/json":{schema:$($2)}}},...P(400,404)}}),s(),D("json",Dr.CommandInput.omit({sessionID:!0})),async(r)=>U("SessionRoutes.command",r,function*(){let i=r.req.valid("param").sessionID,n=r.req.valid("json");return yield*(yield*Dr.Service).command({...n,sessionID:i})})).post("/:sessionID/predict",G({summary:"Predict next prompt",description:"Predict the user's most likely next prompt based on the latest user message and the assistant's result. Returns an empty string when disabled or unavailable.",operationId:"session.predict",responses:{200:{description:"Predicted next prompt",content:{"application/json":{schema:$(I.object({prediction:I.string()}))}}},...P(400,404)}}),s(),async(r)=>U("SessionRoutes.predict",r,function*(){let i=r.req.valid("param").sessionID;return{prediction:yield*(yield*Dr.Service).predict({sessionID:i})}})).post("/:sessionID/shell",G({summary:"Run shell command",description:"Execute a shell command within the session context and return the AI's response.",operationId:"session.shell",responses:{200:{description:"Created message",content:{"application/json":{schema:$(vr.WithParts)}}},...P(400,404)}}),s(),D("json",Dr.ShellInput.omit({sessionID:!0})),async(r)=>U("SessionRoutes.shell",r,function*(){let i=r.req.valid("param").sessionID,n=r.req.valid("json");return yield*(yield*Dr.Service).shell({...n,sessionID:i})}))}function N2(){return new V().post("/:sessionID/permissions/:permissionID",G({summary:"Respond to permission",deprecated:!0,description:"Approve or deny a permission request from the AI assistant.",operationId:"permission.respond",responses:{200:{description:"Permission processed successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),D("param",I.object({sessionID:br.zod,permissionID:Pn.zod})),D("json",I.object({response:Qr.Reply.zod})),async(r)=>U("SessionRoutes.permissionRespond",r,function*(){let i=r.req.valid("param");return yield*I0({requestID:i.permissionID,reply:r.req.valid("json").response})}))}var E2=F(()=>{let r=new V;return r.route("/",l2()),r.route("/",j2()),r.route("/",I2()),r.route("/",v2()),r.route("/",G2()),r.route("/",N2()),r});var Q2=_.create({service:"server.qredits"}),e4=I.object({balance:I.number().nullable(),status:I.enum(["signed_out","available","unavailable","reauth_required"])}),C2=F(()=>new V().get("/balance",G({summary:"Get Qredits balance",description:"Retrieve the current Qredits balance for the signed-in Forgewise user. The response status distinguishes signed-out users from temporary billing-service outages.",operationId:"qredits.balance",responses:{200:{description:"Qredits balance",content:{"application/json":{schema:$(e4)}}}}}),async(r)=>U("QreditsRoutes.balance",r,function*(){let i=yield*C.promise(()=>D2());if(!i)return{balance:null,status:"signed_out"};let n=yield*P2(i);if(!n.accessToken)return Q2.warn("no relayable Forgewise token; balance needs an account sign-in",{method:i.method}),{balance:null,status:"reauth_required"};let m=yield*C.tryPromise({try:()=>U2(n),catch:(c)=>{return Q2.warn("qredits balance read failed; reporting unavailable",{method:i.method,error:c instanceof Error?c.message:String(c)}),null}}).pipe(C.orElseSucceed(()=>null));if(!m)return{balance:null,status:"unavailable"};return{balance:m.balance,status:"available"}})));function W2(r){return new V().get("/",G({summary:"List PTY sessions",description:"Get a list of all active pseudo-terminal (PTY) sessions managed by QitQode.",operationId:"pty.list",responses:{200:{description:"List of sessions",content:{"application/json":{schema:$(Wr.Info.array())}}}}}),async(i)=>U("PtyRoutes.list",i,function*(){return yield*(yield*Wr.Service).list()})).post("/",G({summary:"Create PTY session",description:"Create a new pseudo-terminal (PTY) session for running shell commands and processes.",operationId:"pty.create",responses:{200:{description:"Created session",content:{"application/json":{schema:$(Wr.Info)}}},...P(400)}}),D("json",Wr.CreateInput),async(i)=>U("PtyRoutes.create",i,function*(){return yield*(yield*Wr.Service).create(i.req.valid("json"))})).get("/:ptyID",G({summary:"Get PTY session",description:"Retrieve detailed information about a specific pseudo-terminal (PTY) session.",operationId:"pty.get",responses:{200:{description:"Session info",content:{"application/json":{schema:$(Wr.Info)}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>{let n=await u("PtyRoutes.get",i,C.gen(function*(){return yield*(yield*Wr.Service).get(i.req.valid("param").ptyID)}));if(!n)throw new Ci({message:"Session not found"});return i.json(n)}).put("/:ptyID",G({summary:"Update PTY session",description:"Update properties of an existing pseudo-terminal (PTY) session.",operationId:"pty.update",responses:{200:{description:"Updated session",content:{"application/json":{schema:$(Wr.Info)}}},...P(400)}}),D("param",I.object({ptyID:jn.zod})),D("json",Wr.UpdateInput),async(i)=>U("PtyRoutes.update",i,function*(){return yield*(yield*Wr.Service).update(i.req.valid("param").ptyID,i.req.valid("json"))})).delete("/:ptyID",G({summary:"Remove PTY session",description:"Remove and terminate a specific pseudo-terminal (PTY) session.",operationId:"pty.remove",responses:{200:{description:"Session removed",content:{"application/json":{schema:$(I.boolean())}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>U("PtyRoutes.remove",i,function*(){return yield*(yield*Wr.Service).remove(i.req.valid("param").ptyID),!0})).post("/:ptyID/connect-token",G({summary:"Issue PTY connect ticket",description:"Issue a one-time ticket for authenticating a WebSocket connection to a PTY session. The ticket must be passed as the 'ticket' query parameter on the /connect WebSocket URL.",operationId:"pty.connectToken",responses:{200:{description:"Issued ticket",content:{"application/json":{schema:$(I.object({ticket:I.string(),expires_in:I.number()}))}}},403:{description:"Forbidden \u2014 missing required header or invalid origin"},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>{if(i.req.header(Fj)!==gj)return i.json({error:"Forbidden"},403);let n=i.req.valid("param").ptyID;if(!await u("PtyRoutes.connectToken",i,C.gen(function*(){return yield*(yield*Wr.Service).get(n)})))throw new Ci({message:"Session not found"});return i.json(Mj(n))}).get("/:ptyID/connect",G({summary:"Connect to PTY session",description:"Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.",operationId:"pty.connect",responses:{200:{description:"Connected session",content:{"application/json":{schema:$(I.boolean())}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),r(async(i)=>{let n=jn.zod.parse(i.req.param("ptyID")),m=i.req.query(fm);if(!m||!Tj(m,n))throw new kr(401,{message:"Invalid or expired ticket"});let c=(()=>{let S=i.req.query("cursor");if(!S)return;let v=Number(S);if(!Number.isSafeInteger(v)||v<-1)return;return v})(),l;if(!await u("PtyRoutes.connect",i,C.gen(function*(){return yield*(yield*Wr.Service).get(n)})))throw Error("Session not found");let y=(S)=>{if(!S||typeof S!=="object")return!1;if(!("readyState"in S))return!1;if(!("send"in S)||typeof S.send!=="function")return!1;if(!("close"in S)||typeof S.close!=="function")return!1;return typeof S.readyState==="number"},j=[],A=!1;return{async onOpen(S,v){let w=v.raw;if(!y(w)){v.close();return}l=await e.runPromise(C.gen(function*(){return yield*(yield*Wr.Service).connect(n,w,c)}).pipe(C.withSpan("PtyRoutes.connect.open"))),A=!0;for(let N of j)l?.onMessage(N);j.length=0},onMessage(S){if(typeof S.data!=="string")return;if(!A){j.push(S.data);return}l?.onMessage(S.data)},onClose(){l?.onClose()},onError(){l?.onClose()}}}))}var X2=(r,i)=>C.gen(function*(){let n=yield*Xr.Service;if(i==="connect")yield*n.connect(r);else yield*n.disconnect(r);return!0}),H2=F(()=>new V().get("/",G({summary:"Get MCP status",description:"Get the status of all Model Context Protocol (MCP) servers.",operationId:"mcp.status",responses:{200:{description:"MCP server status",content:{"application/json":{schema:$(I.record(I.string(),Xr.Status))}}}}}),async(r)=>U("McpRoutes.status",r,function*(){return yield*(yield*Xr.Service).status()})).post("/",G({summary:"Add MCP server",description:"Dynamically add a new Model Context Protocol (MCP) server to the system.",operationId:"mcp.add",responses:{200:{description:"MCP server added successfully",content:{"application/json":{schema:$(I.record(I.string(),Xr.Status))}}},...P(400)}}),D("json",I.object({name:I.string(),config:K2.Info.zod})),async(r)=>{if(!k.QITQODE_SERVER_PASSWORD)return r.json({error:"Forbidden: QITQODE_SERVER_PASSWORD must be set to add MCP servers via API"},403);return U("McpRoutes.add",r,function*(){let{name:i,config:n}=r.req.valid("json");return(yield*(yield*Xr.Service).add(i,n)).status})}).post("/:name/auth",G({summary:"Start MCP OAuth",description:"Start OAuth authentication flow for a Model Context Protocol (MCP) server.",operationId:"mcp.auth.start",responses:{200:{description:"OAuth flow started",content:{"application/json":{schema:$(I.object({authorizationUrl:I.string().describe("URL to open in browser for authorization")}))}}},...P(400,404)}}),async(r)=>{let i=r.req.param("name"),n=await u("McpRoutes.auth.start",r,C.gen(function*(){let m=yield*Xr.Service,c=yield*m.supportsOAuth(i);if(!c)return{supports:c};return{supports:c,auth:yield*m.startAuth(i)}}));if(!n.supports)return r.json({error:`MCP server ${i} does not support OAuth`},400);return r.json(n.auth)}).post("/:name/auth/callback",G({summary:"Complete MCP OAuth",description:"Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.",operationId:"mcp.auth.callback",responses:{200:{description:"OAuth authentication completed",content:{"application/json":{schema:$(Xr.Status)}}},...P(400,404)}}),D("json",I.object({code:I.string().describe("Authorization code from OAuth callback")})),async(r)=>U("McpRoutes.auth.callback",r,function*(){let i=r.req.param("name"),{code:n}=r.req.valid("json");return yield*(yield*Xr.Service).finishAuth(i,n)})).post("/:name/auth/authenticate",G({summary:"Authenticate MCP OAuth",description:"Start OAuth flow and wait for callback (opens browser)",operationId:"mcp.auth.authenticate",responses:{200:{description:"OAuth authentication completed",content:{"application/json":{schema:$(Xr.Status)}}},...P(400,404)}}),async(r)=>{let i=r.req.param("name"),n=await u("McpRoutes.auth.authenticate",r,C.gen(function*(){let m=yield*Xr.Service,c=yield*m.supportsOAuth(i);if(!c)return{supports:c};return{supports:c,status:yield*m.authenticate(i)}}));if(!n.supports)return r.json({error:`MCP server ${i} does not support OAuth`},400);return r.json(n.status)}).delete("/:name/auth",G({summary:"Remove MCP OAuth",description:"Remove OAuth credentials for an MCP server",operationId:"mcp.auth.remove",responses:{200:{description:"OAuth credentials removed",content:{"application/json":{schema:$(I.object({success:I.literal(!0)}))}}},...P(404)}}),async(r)=>U("McpRoutes.auth.remove",r,function*(){let i=r.req.param("name");return yield*(yield*Xr.Service).removeAuth(i),{success:!0}})).post("/:name/connect",G({description:"Connect an MCP server",operationId:"mcp.connect",responses:{200:{description:"MCP server connected successfully",content:{"application/json":{schema:$(I.boolean())}}}}}),D("param",I.object({name:I.string()})),async(r)=>U("McpRoutes.connect",r,function*(){return yield*X2(r.req.valid("param").name,"connect")})).post("/:name/disconnect",G({description:"Disconnect an MCP server",operationId:"mcp.disconnect",responses:{200:{description:"MCP server disconnected successfully",content:{"application/json":{schema:$(I.boolean())}}}}}),D("param",I.object({name:I.string()})),async(r)=>U("McpRoutes.disconnect",r,function*(){return yield*X2(r.req.valid("param").name,"disconnect")})));var Z2=F(()=>new V().get("/find",G({summary:"Find text",description:"Search for text patterns across files in the project using ripgrep.",operationId:"find.text",responses:{200:{description:"Matches",content:{"application/json":{schema:$(zl.Match.shape.data.array())}}}}}),D("query",I.object({pattern:I.string()})),async(r)=>U("FileRoutes.findText",r,function*(){let i=r.req.valid("query").pattern;return(yield*(yield*zl.Service).search({cwd:M.directory,pattern:i,limit:10})).items})).get("/find/file",G({summary:"Find files",description:"Search for files or directories by name or pattern in the project directory.",operationId:"find.files",responses:{200:{description:"File paths",content:{"application/json":{schema:$(I.string().array())}}}}}),D("query",I.object({query:I.string(),dirs:I.enum(["true","false"]).optional(),type:I.enum(["file","directory"]).optional(),limit:I.coerce.number().int().min(1).max(200).optional()})),async(r)=>U("FileRoutes.findFile",r,function*(){let i=r.req.valid("query");return yield*(yield*ui.Service).search({query:i.query,limit:i.limit??10,dirs:i.dirs!=="false",type:i.type})})).get("/find/symbol",G({summary:"Find symbols",description:"Search for workspace symbols like functions, classes, and variables using LSP.",operationId:"find.symbols",responses:{200:{description:"Symbols",content:{"application/json":{schema:$(Ym.Symbol.array())}}}}}),D("query",I.object({query:I.string()})),async(r)=>{return r.json([])}).get("/file",G({summary:"List files",description:"List files and directories in a specified path.",operationId:"file.list",responses:{200:{description:"Files and directories",content:{"application/json":{schema:$(ui.Node.array())}}}}}),D("query",I.object({path:I.string()})),async(r)=>U("FileRoutes.list",r,function*(){return yield*(yield*ui.Service).list(r.req.valid("query").path)})).get("/file/content",G({summary:"Read file",description:"Read the content of a specified file.",operationId:"file.read",responses:{200:{description:"File content",content:{"application/json":{schema:$(ui.Content)}}}}}),D("query",I.object({path:I.string()})),async(r)=>U("FileRoutes.read",r,function*(){return yield*(yield*ui.Service).read(r.req.valid("query").path)})).get("/file/status",G({summary:"Get file status",description:"Get the git status of all files in the project.",operationId:"file.status",responses:{200:{description:"File status",content:{"application/json":{schema:$(ui.Info.array())}}}}}),async(r)=>U("FileRoutes.status",r,function*(){return yield*(yield*ui.Service).status()})));var V2=F(()=>new V().get("/",G({summary:"Get configuration",description:"Retrieve the current QitQode configuration settings and preferences.",operationId:"config.get",responses:{200:{description:"Get config info",content:{"application/json":{schema:$(mr.Info)}}}}}),async(r)=>U("ConfigRoutes.get",r,function*(){return yield*(yield*mr.Service).get()})).patch("/",G({summary:"Update configuration",description:"Update QitQode configuration settings and preferences.",operationId:"config.update",responses:{200:{description:"Successfully updated config",content:{"application/json":{schema:$(mr.Info)}}},...P(400)}}),D("json",mr.Info),async(r)=>U("ConfigRoutes.update",r,function*(){let i=r.req.valid("json");return yield*(yield*mr.Service).update(i),i})).get("/providers",G({summary:"List config providers",description:"Get a list of all configured AI providers and their default models.",operationId:"config.providers",responses:{200:{description:"List of providers",content:{"application/json":{schema:$(ir.ConfigProvidersResult.zod)}}}}}),async(r)=>U("ConfigRoutes.providers",r,function*(){let n=yield*(yield*ir.Service).list();return{providers:Object.values(n),default:ir.defaultModelIDs(n)}})));var s4=I.object({accountID:I.string(),accountEmail:I.string(),accountUrl:I.string(),orgID:I.string(),orgName:I.string(),active:I.boolean()}),f4=I.object({orgs:I.array(s4)}),r$=I.object({accountID:I.string(),orgID:I.string()}),O2=F(()=>new V().get("/console",G({summary:"Get active Console provider metadata",description:"Get the active Console org name and the set of provider IDs managed by that Console org.",operationId:"experimental.console.get",responses:{200:{description:"Active Console provider metadata",content:{"application/json":{schema:$(R2.zod)}}}}}),async(r)=>U("ExperimentalRoutes.console.get",r,function*(){let i=yield*mr.Service,n=yield*f0.Service,[m,c]=yield*C.all([i.getConsoleState(),n.orgsByAccount()],{concurrency:"unbounded"});return{...m,switchableOrgCount:c.reduce((l,y)=>l+y.orgs.length,0)}})).get("/console/orgs",G({summary:"List switchable Console orgs",description:"Get the available Console orgs across logged-in accounts, including the current active org.",operationId:"experimental.console.listOrgs",responses:{200:{description:"Switchable Console orgs",content:{"application/json":{schema:$(f4)}}}}}),async(r)=>U("ExperimentalRoutes.console.listOrgs",r,function*(){let i=yield*f0.Service,[n,m]=yield*C.all([i.orgsByAccount(),i.active()],{concurrency:"unbounded"}),c=Qm.getOrUndefined(m);return{orgs:n.flatMap((y)=>y.orgs.map((j)=>({accountID:y.account.id,accountEmail:y.account.email,accountUrl:y.account.url,orgID:j.id,orgName:j.name,active:!!c&&c.id===y.account.id&&c.active_org_id===j.id})))}})).post("/console/switch",G({summary:"Switch active Console org",description:"Persist a new active Console account/org selection for the current local QitQode state.",operationId:"experimental.console.switchOrg",responses:{200:{description:"Switch success",content:{"application/json":{schema:$(I.boolean())}}}}}),D("json",r$),async(r)=>U("ExperimentalRoutes.console.switchOrg",r,function*(){let i=r.req.valid("json");return yield*(yield*f0.Service).use(Y2.make(i.accountID),Qm.some(J2.make(i.orgID))),!0})).get("/tool/ids",G({summary:"List tool IDs",description:"Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.",operationId:"tool.ids",responses:{200:{description:"Tool IDs",content:{"application/json":{schema:$(I.array(I.string()).meta({ref:"ToolIDs"}))}}},...P(400)}}),async(r)=>U("ExperimentalRoutes.tool.ids",r,function*(){return yield*(yield*Ml.Service).ids()})).get("/tool",G({summary:"List tools",description:"Get a list of available tools with their JSON schema parameters for a specific provider and model combination.",operationId:"tool.list",responses:{200:{description:"Tools",content:{"application/json":{schema:$(I.array(I.object({id:I.string(),description:I.string(),parameters:I.any()}).meta({ref:"ToolListItem"})).meta({ref:"ToolList"}))}}},...P(400)}}),D("query",I.object({provider:I.string(),model:I.string()})),async(r)=>{let{provider:i,model:n}=r.req.valid("query"),m=await u("ExperimentalRoutes.tool.list",r,C.gen(function*(){let c=yield*yn.Service;return yield*(yield*Ml.Service).tools({providerID:lr.make(i),modelID:er.make(n),agent:yield*c.get(yield*c.defaultAgent())})}));return r.json(m.map((c)=>({id:c.id,description:c.description,parameters:I.toJSONSchema(c.parameters)})))}).post("/worktree",G({summary:"Create worktree",description:"Create a new git worktree for the current project and run any configured startup scripts.",operationId:"worktree.create",responses:{200:{description:"Worktree created",content:{"application/json":{schema:$(ai.Info)}}},...P(400)}}),D("json",ai.CreateInput.optional()),async(r)=>U("ExperimentalRoutes.worktree.create",r,function*(){let i=r.req.valid("json"),n=i?{...i,startCommand:k.QITQODE_SERVER_PASSWORD?i.startCommand:void 0}:i;return yield*(yield*ai.Service).create(n)})).get("/worktree",G({summary:"List worktrees",description:"List all sandbox worktrees for the current project.",operationId:"worktree.list",responses:{200:{description:"List of worktree directories",content:{"application/json":{schema:$(I.array(I.string()))}}}}}),async(r)=>U("ExperimentalRoutes.worktree.list",r,function*(){return yield*(yield*Gr.Service).sandboxes(M.project.id)})).delete("/worktree",G({summary:"Remove worktree",description:"Remove a git worktree and delete its branch.",operationId:"worktree.remove",responses:{200:{description:"Worktree removed",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",ai.RemoveInput),async(r)=>U("ExperimentalRoutes.worktree.remove",r,function*(){let i=r.req.valid("json"),n=yield*ai.Service,m=yield*Gr.Service;return yield*n.remove(i),yield*m.removeSandbox(M.project.id,i.directory),!0})).post("/worktree/reset",G({summary:"Reset worktree",description:"Reset a worktree branch to the primary default branch.",operationId:"worktree.reset",responses:{200:{description:"Worktree reset",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",ai.ResetInput),async(r)=>U("ExperimentalRoutes.worktree.reset",r,function*(){let i=r.req.valid("json");return yield*(yield*ai.Service).reset(i),!0})).get("/session",G({summary:"List sessions",description:"Get a list of all QitQode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.",operationId:"experimental.session.list",responses:{200:{description:"List of sessions",content:{"application/json":{schema:$(J.GlobalInfo.array())}}}}}),D("query",I.object({directory:ki.directory,roots:ki.roots,start:ki.start,cursor:I.coerce.number().optional().meta({description:"Return sessions updated before this timestamp (milliseconds since epoch)"}),search:ki.search,limit:ki.limit,archived:I.coerce.boolean().optional().meta({description:"Include archived sessions (default false)"})})),async(r)=>{let i=r.req.valid("query"),n=i.limit??100,m=[];for await(let y of J.listGlobal({directory:i.directory,roots:i.roots,start:i.start,cursor:i.cursor,search:i.search,limit:n+1,archived:i.archived}))m.push(y);let c=m.length>n,l=c?m.slice(0,n):m;if(c&&l.length>0)r.header("x-next-cursor",String(l[l.length-1].time.updated));return r.json(l)}).get("/resource",G({summary:"Get MCP resources",description:"Get all available MCP resources from connected servers. Optionally filter by name.",operationId:"experimental.resource.list",responses:{200:{description:"MCP resources",content:{"application/json":{schema:$(I.record(I.string(),Xr.Resource))}}}}}),async(r)=>U("ExperimentalRoutes.resource.list",r,function*(){return yield*(yield*Xr.Service).resources()})));var L2=F(()=>new V().get("/",G({summary:"List providers",description:"Get a list of all available AI providers, including both available and connected ones.",operationId:"provider.list",responses:{200:{description:"List of providers",content:{"application/json":{schema:$(ir.ListResult.zod)}}}}}),async(r)=>U("ProviderRoutes.list",r,function*(){let i=yield*ir.Service,m=yield*(yield*mr.Service).get(),c=yield*i.list();return yield*u0(m,c)})).get("/auth",G({summary:"Get provider auth methods",description:"Retrieve available authentication methods for all AI providers.",operationId:"provider.auth",responses:{200:{description:"Provider auth methods",content:{"application/json":{schema:$(Cr.Methods.zod)}}}}}),async(r)=>U("ProviderRoutes.auth",r,function*(){return yield*(yield*Cr.Service).methods()})).post("/:providerID/oauth/authorize",G({summary:"OAuth authorize",description:"Initiate OAuth authorization for a specific AI provider to get an authorization URL.",operationId:"provider.oauth.authorize",responses:{200:{description:"Authorization URL and method",content:{"application/json":{schema:$(Cr.Authorization.zod.optional())}}},...P(400)}}),D("param",I.object({providerID:lr.zod.meta({description:"Provider ID"})})),D("json",Cr.AuthorizeInput.zod),async(r)=>U("ProviderRoutes.oauth.authorize",r,function*(){let i=r.req.valid("param").providerID,{method:n,inputs:m}=r.req.valid("json");return yield*(yield*Cr.Service).authorize({providerID:i,method:n,inputs:m})})).post("/:providerID/oauth/callback",G({summary:"OAuth callback",description:"Handle the OAuth callback from a provider after user authorization.",operationId:"provider.oauth.callback",responses:{200:{description:"OAuth callback processed successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod.meta({description:"Provider ID"})})),D("json",Cr.CallbackInput.zod),async(r)=>U("ProviderRoutes.oauth.callback",r,function*(){let i=r.req.valid("param").providerID,{method:n,code:m}=r.req.valid("json");return yield*(yield*Cr.Service).callback({providerID:i,method:n,code:m}),!0})));var i$=1e4,n$=1e5,m$=8388608,c$=67108864,l$=2097152,y$=8388608;function j$(r=process.env.QITQODE_EVENT_QUEUE_CAPACITY){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>n$)return i$;return i}var I$=j$();function A$(r=process.env.QITQODE_EVENT_QUEUE_BYTES){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>c$)return m$;return i}function S$(r=process.env.QITQODE_EVENT_MAX_BYTES){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>y$)return l$;return i}var q2=A$(),v$=Math.min(S$(),q2);function w$(r,i=v$){let n=JSON.stringify(r);if(n===void 0||Buffer.byteLength(n)>i)return;return n}function rc(r,i){return Fl(r,async(n)=>{let m=new Un({capacity:I$,maxWeight:q2,weight:(v)=>v===null?0:Buffer.byteLength(v)}),c=!1,l=0,y=()=>{},j=(v)=>{let w=w$(v);if(w===void 0){l++;return}m.push(w)};j(i.connected);let A=setInterval(()=>j(i.heartbeat),1e4),S=()=>{if(c)return;if(c=!0,clearInterval(A),y(),m.push(null),m.dropped+l>0)i.onDrop?.(m.dropped+l);i.onDisconnect?.(m.size,m.bufferedWeight)};try{let v=i.subscribe(j,S);if(c)v();else y=v;n.onAbort(S);for await(let w of m){if(w===null)return;await n.writeSSE({data:w})}}finally{S()}})}class Jm{limit;windowMs;buckets=new Map;pruneKeys=[];pruneIndex=0;sweeping=!1;nextSweepAt=0;constructor(r,i){this.limit=r;this.windowMs=i}check(r,i=Date.now()){if(this.sweeping||this.buckets.size>1024||this.buckets.size>0&&i>=this.nextSweepAt)this.pruneSome(i);let n=i-this.windowMs,m=(this.buckets.get(r)??[]).filter((c)=>c>n);if(m.length>=this.limit){this.buckets.set(r,m);let c=m[0]??i;return{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((c+this.windowMs-i)/1000))}}return m.push(i),this.buckets.set(r,m),{allowed:!0}}pruneSome(r,i=64){if(!this.sweeping)this.pruneKeys=[...this.buckets.keys()],this.pruneIndex=0,this.sweeping=!0,this.nextSweepAt=r+this.windowMs;let n=r-this.windowMs,m=Math.min(this.pruneIndex+i,this.pruneKeys.length);for(;this.pruneIndex<m;this.pruneIndex++){let c=this.pruneKeys[this.pruneIndex],l=this.buckets.get(c);if(!l)continue;let y=l.filter((j)=>j>n);if(y.length===0)this.buckets.delete(c);else this.buckets.set(c,y)}if(this.pruneIndex>=this.pruneKeys.length)this.sweeping=!1,this.pruneKeys=[],this.pruneIndex=0}}var ic=_.create({service:"server"}),_2=()=>{let r=Number(process.env.QITQODE_EVENT_CONNECT_LIMIT)||60,i=Number(process.env.QITQODE_EVENT_CONNECT_WINDOW_MS)||60000,n=new Jm(r,i);return new V().get("/event",G({summary:"Subscribe to events",description:"Get events",operationId:"event.subscribe",responses:{200:{description:"Event stream",content:{"text/event-stream":{schema:$(I.union(yi.payloads()).meta({ref:"Event"}))}}}}}),async(m)=>{let c=m.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"local",l=n.check(c);if(!l.allowed)return ic.warn("event connection rate limited",{key:c,retryAfterSeconds:l.retryAfterSeconds}),m.header("Retry-After",String(l.retryAfterSeconds)),m.json({error:"Too many reconnect attempts, slow down"},429);return ic.info("event connected"),m.header("Cache-Control","no-cache, no-transform"),m.header("X-Accel-Buffering","no"),m.header("X-Content-Type-Options","nosniff"),rc(m,{connected:{type:qn.Connected.type,properties:{}},heartbeat:{type:qn.Heartbeat.type,properties:{}},subscribe(y,j){return wr.subscribeAll((A)=>{if(y(A),A.type===wr.InstanceDisposed.type)j()})},onDrop(y){ic.warn("event dropped under backpressure",{dropped:y})},onDisconnect(y,j){ic.info("event disconnected",{buffered:y,bufferedBytes:j})}})})};var $$=I.object({id:I.string(),aggregateID:I.string(),seq:I.number().int().min(0),type:I.string(),data:I.record(I.string(),I.unknown())}),F2=_.create({service:"server.sync"}),T2=F(()=>new V().post("/start",G({summary:"Start workspace sync",description:"Start sync loops for workspaces in the current project that have active sessions.",operationId:"sync.start",responses:{200:{description:"Workspace sync started",content:{"application/json":{schema:$(I.boolean())}}}}}),async(r)=>{return uc(M.project.id),r.json(!0)}).post("/replay",G({summary:"Replay sync events",description:"Validate and replay a complete sync event history.",operationId:"sync.replay",responses:{200:{description:"Replayed sync events",content:{"application/json":{schema:$(I.object({sessionID:I.string()}))}}},...P(400)}}),D("json",I.object({directory:I.string(),events:I.array($$).min(1)})),async(r)=>{let i=r.req.valid("json"),n=i.events,m=n[0].aggregateID;return F2.info("sync replay requested",{sessionID:m,events:n.length,first:n[0]?.seq,last:n.at(-1)?.seq,directory:i.directory}),yr.replayAll(n),F2.info("sync replay complete",{sessionID:m,events:n.length,first:n[0]?.seq,last:n.at(-1)?.seq}),r.json({sessionID:m})}).post("/history",G({summary:"List sync events",description:"List sync events for all aggregates. Keys are aggregate IDs the client already knows about, values are the last known sequence ID. Events with seq > value are returned for those aggregates. Aggregates not listed in the input get their full history.",operationId:"sync.history.list",responses:{200:{description:"Sync events",content:{"application/json":{schema:$(I.array(I.object({id:I.string(),aggregate_id:I.string(),seq:I.number(),type:I.string(),data:I.record(I.string(),I.unknown())})))}}},...P(400)}}),D("json",I.record(I.string(),I.number().int().min(0))),async(r)=>{let i=r.req.valid("json"),n=Object.entries(i),m=n.length>0?z2(g2(...n.map(([l,y])=>nm(d(Zr.aggregate_id,l),M2(Zr.seq,y))))):void 0,c=b.use((l)=>l.select().from(Zr).where(m).orderBy(c0(Zr.seq)).all());return r.json(c)}));var Bl=(r)=>{let i=new V;if(k.QITQODE_EXPERIMENTAL_HTTPAPI){let n=Xm.webHandler().handler,m=Zi.empty();i.get("/question",(c)=>n(c.req.raw,m)),i.post("/question/:requestID/reply",(c)=>n(c.req.raw,m)),i.post("/question/:requestID/reject",(c)=>n(c.req.raw,m)),i.get("/permission",(c)=>n(c.req.raw,m)),i.post("/permission/:requestID/reply",(c)=>n(c.req.raw,m)),i.get("/config/providers",(c)=>n(c.req.raw,m)),i.get("/provider",(c)=>n(c.req.raw,m)),i.get("/provider/auth",(c)=>n(c.req.raw,m)),i.post("/provider/:providerID/oauth/authorize",(c)=>n(c.req.raw,m)),i.post("/provider/:providerID/oauth/callback",(c)=>n(c.req.raw,m)),i.get("/project",(c)=>n(c.req.raw,m)),i.get("/project/current",(c)=>n(c.req.raw,m))}return i.route("/project",n2()).route("/pty",W2(r)).route("/config",V2()).route("/experimental",O2()).route("/session",E2()).route("/qredits",C2()).route("/permission",E1()).route("/workflows",D1()).route("/question",N1()).route("/bash-interactive",U1()).route("/provider",L2()).route("/sync",T2()).route("/",Z2()).route("/",_2()).route("/mcp",H2()).route("/tui",$1()).post("/instance/dispose",G({summary:"Dispose instance",description:"Clean up and dispose the current QitQode instance, releasing all resources.",operationId:"instance.dispose",responses:{200:{description:"Instance disposed",content:{"application/json":{schema:$(I.boolean())}}}}}),async(n)=>{return await M.dispose(),n.json(!0)}).get("/path",G({summary:"Get paths",description:"Retrieve the current working directory and related path information for the QitQode instance.",operationId:"path.get",responses:{200:{description:"Path",content:{"application/json":{schema:$(I.object({home:I.string(),state:I.string(),config:I.string(),worktree:I.string(),directory:I.string()}).meta({ref:"Path"}))}}}}}),async(n)=>{return n.json({home:Vi.Path.home,state:Vi.Path.state,config:Vi.Path.config,worktree:M.worktree,directory:M.directory})}).get("/vcs",G({summary:"Get VCS info",description:"Retrieve version control system (VCS) information for the current project, such as git branch.",operationId:"vcs.get",responses:{200:{description:"VCS info",content:{"application/json":{schema:$(_n.Info)}}}}}),async(n)=>U("InstanceRoutes.vcs.get",n,function*(){let m=yield*_n.Service,[c,l]=yield*C.all([m.branch(),m.defaultBranch()],{concurrency:2});return{branch:c,default_branch:l}})).get("/vcs/diff",G({summary:"Get VCS diff",description:"Retrieve the current git diff for the working tree or against the default branch.",operationId:"vcs.diff",responses:{200:{description:"VCS diff",content:{"application/json":{schema:$(_n.FileDiff.array())}}}}}),D("query",I.object({mode:_n.Mode})),async(n)=>U("InstanceRoutes.vcs.diff",n,function*(){return yield*(yield*_n.Service).diff(n.req.valid("query").mode)})).get("/command",G({summary:"List commands",description:"Get a list of all available commands in the QitQode system.",operationId:"command.list",responses:{200:{description:"List of commands",content:{"application/json":{schema:$(Km.Info.array())}}}}}),async(n)=>U("InstanceRoutes.command.list",n,function*(){return yield*(yield*Km.Service).list()})).get("/agent",G({summary:"List agents",description:"Get a list of all available AI agents in the QitQode system.",operationId:"app.agents",responses:{200:{description:"List of agents",content:{"application/json":{schema:$(yn.Info.array())}}}}}),async(n)=>U("InstanceRoutes.agent.list",n,function*(){return yield*(yield*yn.Service).list()})).get("/skill",G({summary:"List skills",description:"Get a list of all available skills in the QitQode system.",operationId:"app.skills",responses:{200:{description:"List of skills",content:{"application/json":{schema:$(hl.Info.array())}}}}}),async(n)=>U("InstanceRoutes.skill.list",n,function*(){return yield*(yield*hl.Service).all()})).get("/lsp",G({summary:"Get LSP status",description:"Get LSP server status",operationId:"lsp.status",responses:{200:{description:"LSP server status",content:{"application/json":{schema:$(Ym.Status.array())}}}}}),async(n)=>U("InstanceRoutes.lsp.status",n,function*(){return yield*(yield*Ym.Service).status()})).get("/formatter",G({summary:"Get formatter status",description:"Get formatter status",operationId:"formatter.status",responses:{200:{description:"Formatter status",content:{"application/json":{schema:$(Tl.Status.array())}}}}}),async(n)=>U("InstanceRoutes.formatter.status",n,function*(){return yield*(yield*Tl.Service).status()}))};function h2(){let r=new V,i=(n,m)=>e.runPromise(C.gen(function*(){let c=yield*rm.Service;if(m)yield*c.set(n,m);else yield*c.remove(n)}));return r.put("/auth/:providerID",G({summary:"Set auth credentials",description:"Set authentication credentials",operationId:"auth.set",responses:{200:{description:"Successfully set authentication credentials",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod})),D("json",rm.Info.zod),async(n)=>{let m=n.req.valid("param").providerID,c=n.req.valid("json");return await i(m,c),n.json(!0)}).delete("/auth/:providerID",G({summary:"Remove auth credentials",description:"Remove authentication credentials",operationId:"auth.remove",responses:{200:{description:"Successfully removed authentication credentials",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod})),async(n)=>{let m=n.req.valid("param").providerID;return await i(m),n.json(!0)}).get("/doc",Qy(r,{documentation:{info:{title:"qitqode",version:"0.0.3",description:"qitqode api"},openapi:"3.1.1"}})).use(D("query",I.object({directory:I.string().optional(),workspace:I.string().optional()}))).post("/log",G({summary:"Write log",description:"Write a log entry to the server logs with specified level and metadata.",operationId:"app.log",responses:{200:{description:"Log entry written successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",I.object({service:I.string().meta({description:"Service name for the log entry"}),level:I.enum(["debug","info","error","warn"]).meta({description:"Log level"}),message:I.string().meta({description:"Log message"}),extra:I.record(I.string(),I.any()).optional().meta({description:"Additional metadata for the log entry"})})),async(n)=>{let{service:m,level:c,message:l,extra:y}=n.req.valid("json"),j=_.create({service:m});switch(c){case"debug":j.debug(l,y);break;case"info":j.info(l,y);break;case"error":j.error(l,y);break;case"warn":j.warn(l,y);break}return n.json(!0)})}var Fn={};Nr(Fn,{scan:()=>W$,runAll:()=>X$,ExternalImport:()=>Fn,ALL_SOURCES:()=>pl});import rA from"path";import{access as ol}from"fs/promises";import{Database as G$}from"bun:sqlite";function Rm(r){let i=new G$(r,{readonly:!0});return{all:(n,...m)=>i.query(n).all(...m),get:(n,...m)=>i.query(n).get(...m)??null,close:()=>i.close()}}var Om={};Nr(Om,{run:()=>D$,parse:()=>p2,CodexImport:()=>Om});import N$ from"path";var E$=_.create({service:"codex-import"});function B2(r){if(!r)return Date.now();let i=Date.parse(r);return Number.isNaN(i)?Date.now():i}function Q$(r){if(typeof r==="string")try{return JSON.parse(r)}catch{return{raw:r}}if(r&&typeof r==="object")return r;return{}}function p2(r,i){let n=o2(r);if(n.length===0)return;let m,c,l,y,j=0,A,S=[],v=new Map,w=null,N=null,E=()=>{if(w)S.push(w);w=null},Q=(W)=>{if(!N){let Z=Si.ascending();S.push({info:{id:Z,sessionID:i,role:"user",agent:"main",time:{created:W},model:{providerID:lr.make("openai"),modelID:er.make("unknown")}},parts:[]}),N=Z}if(!w||w.info.role!=="assistant")E(),w={info:{id:Si.ascending(),sessionID:i,role:"assistant",time:{created:W,completed:W},parentID:N,modelID:er.make("unknown"),providerID:lr.make("openai"),mode:"build",agent:"main",path:{cwd:m??"",root:m??""},cost:0,tokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}}},parts:[]};return w.info.time.completed=W,w};for(let W of n){let{type:Z,payload:X}=W,K=B2(W.timestamp);if(y===void 0)y=K;if(j=Math.max(j,K),Z==="session_meta"&&X){m=X.cwd,c=`codex-${X.cli_version??"unknown"}`,l=X.id;let q=B2(X.timestamp);if(y===void 0||q<y)y=q;continue}if(Z!=="response_item"||!X)continue;let R=X.type;if(R==="message"){let q=X.role,z=X.content??[];if(q==="user"||q==="developer"){let L=z.filter((x)=>(x.type==="input_text"||x.type==="text")&&typeof x.text==="string"&&x.text.trim()).map((x)=>x.text);if(L.length===0)continue;E();let f=Si.ascending(),hr=L.map((x)=>({part:{id:pi.ascending(),sessionID:i,messageID:f,type:"text",text:x},time:K})),Yr={id:f,sessionID:i,role:"user",agent:"main",time:{created:K},model:{providerID:lr.make("openai"),modelID:er.make("unknown")}};if(S.push({info:Yr,parts:hr}),N=f,!A)A=x2(L);continue}if(q==="assistant"){let L=Q(K);for(let f of z)if((f.type==="output_text"||f.type==="text")&&typeof f.text==="string"&&f.text.trim())L.parts.push({part:{id:pi.ascending(),sessionID:i,messageID:L.info.id,type:"text",text:f.text},time:K});continue}continue}if(R==="reasoning"){let q=Q(K),L=X.summary?.map((f)=>f.text??"").join("")??"";if(L.trim())q.parts.push({part:{id:pi.ascending(),sessionID:i,messageID:q.info.id,type:"reasoning",text:L,time:{start:K,end:K}},time:K});continue}if(R==="function_call"||R==="custom_tool_call"){let q=Q(K),z=X.call_id??pi.ascending(),L=X.name??"unknown",f=R==="function_call"?Q$(X.arguments):{raw:X.input??""},hr={id:pi.ascending(),sessionID:i,messageID:q.info.id,type:"tool",callID:z,tool:L,state:{status:"pending",input:f,raw:JSON.stringify(f)}};q.parts.push({part:hr,time:K}),v.set(z,{part:hr,start:K});continue}if(R==="function_call_output"||R==="custom_tool_call_output"){let q=X.call_id,z=q?v.get(q):void 0;if(!z)continue;let L=typeof X.output==="string"?X.output:JSON.stringify(X.output??"");z.part.state={status:"completed",input:z.part.state.input??{},output:L,title:z.part.tool,metadata:{},time:{start:z.start,end:K}};continue}}if(E(),S.length===0)return;return{cwd:m??"",version:c??"codex",sessionUuid:l,title:A??"Codex session",timeCreated:y??Date.now(),timeUpdated:j||y||Date.now(),messages:S}}var D$=k2({source:"codex",root:N$.join(Vi.Path.home,".codex","sessions"),pattern:"**/*.jsonl",log:E$,logMessage:"codex import",parse:p2});var qm={};Nr(qm,{run:()=>C$,OpencodeImport:()=>qm,DEFAULT_DB_PATH:()=>Lm});import{access as U$}from"fs/promises";var P$=_.create({service:"opencode-import"}),Lm=(()=>{return`${process.env.XDG_DATA_HOME||`${process.env.HOME||process.env.USERPROFILE}/.local/share`}/opencode/opencode.db`})(),u2=200;async function C$(r){let i=r?.dbPath??Lm,n=a2();if(!await U$(i).then(()=>!0).catch(()=>!1))return n;let m;try{m=Rm(i)}catch(c){return n.errors.push(`failed to open ${i}: ${c}`),n}try{if(!m.get("SELECT name FROM sqlite_master WHERE type='table' AND name='session'"))return n.errors.push(`${i}: missing 'session' table`),n;let l=m.all("SELECT * FROM session ORDER BY time_created DESC");for(let y of l){n.scanned++;try{let j=y.id,A=t2("opencode",j);if(A&&A.source_mtime===y.time_updated&&!r?.force){n.skipped++;continue}let S=b2("opencode",A);A=S.existing;let v=S.existingUpdated,w=await d2(y.directory),N=Date.now(),E=m.all("SELECT * FROM message WHERE session_id = ? ORDER BY id",y.id);if(E.length===0){n.skipped++;continue}let Q=E.map((Z)=>Z.id),W=[];for(let Z=0;Z<Q.length;Z+=u2){let X=Q.slice(Z,Z+u2),K=X.map(()=>"?").join(","),R=m.all(`SELECT * FROM part WHERE session_id = ? AND message_id IN (${K}) ORDER BY id`,y.id,...X);W.push(...R)}if(b.transaction((Z)=>{if(e2(Z,w,y.time_created,y.time_updated),A)s2(Z,A,y.id),f2(Z,y.id,{projectId:w.id,directory:y.directory,version:y.version,existingUpdated:v,timeUpdated:y.time_updated});else Z.insert(nr).values({id:y.id,project_id:w.id,parent_id:y.parent_id,slug:y.slug,directory:y.directory,title:y.title,version:y.version,time_created:y.time_created,time_updated:y.time_updated}).onConflictDoUpdate({target:nr.id,set:{project_id:w.id,directory:y.directory,time_updated:y.time_updated}}).run();for(let X of E){let K=typeof X.data==="string"?JSON.parse(X.data):X.data;Z.insert(Xi).values({id:X.id,session_id:y.id,agent_id:"main",time_created:X.time_created,data:K}).onConflictDoUpdate({target:Xi.id,set:{data:K,time_created:X.time_created}}).run()}for(let X of W){let K=typeof X.data==="string"?JSON.parse(X.data):X.data;Z.insert(Ki).values({id:X.id,message_id:X.message_id,session_id:y.id,time_created:X.time_created,data:K}).onConflictDoUpdate({target:Ki.id,set:{data:K,time_created:X.time_created}}).run()}Z.insert(In).values({source:"opencode",source_key:j,session_id:y.id,source_path:i,source_mtime:y.time_updated,time_imported:N,message_ids:Q}).onConflictDoUpdate({target:[In.source,In.source_key],set:{source_mtime:y.time_updated,time_imported:N,message_ids:Q}}).run()}),A)n.resynced++;else n.imported++}catch(j){n.errors.push(`session ${y.id}: ${j}`)}}}finally{m.close()}if(n.imported+n.resynced>0||n.errors.length>0)P$.info("opencode import",{...n,errors:n.errors.length});return n}var _m=_.create({service:"external-import"}),pl=["cc","codex","opencode"];async function W$(){let r=(c)=>b.use((l)=>l.select({n:iA()}).from(In).where(d(In.source,c)).get())?.n??0,i={cc:{available:!1,sessions:0,imported:0},codex:{available:!1,sessions:0,imported:0},opencode:{available:!1,sessions:0,imported:0}},n=rA.join(Vi.Path.home,".claude","projects");if(await ol(n).then(()=>!0).catch(()=>!1))try{let c=await kl.scan("*/*.jsonl",{cwd:n,absolute:!1});i.cc={available:!0,sessions:c.length,imported:r("cc")}}catch(c){_m.warn("cc scan failed",{error:String(c)})}let m=rA.join(Vi.Path.home,".codex","sessions");if(await ol(m).then(()=>!0).catch(()=>!1))try{let c=await kl.scan("**/*.jsonl",{cwd:m,absolute:!1});i.codex={available:!0,sessions:c.length,imported:r("codex")}}catch(c){_m.warn("codex scan failed",{error:String(c)})}if(await ol(Lm).then(()=>!0).catch(()=>!1))try{let c=Rm(Lm);try{let l=c.get("SELECT count(*) AS n FROM session");i.opencode={available:!0,sessions:l?.n??0,imported:r("opencode")}}finally{c.close()}}catch(c){_m.warn("opencode scan failed",{error:String(c)})}return i}function xl(){return{scanned:0,imported:0,resynced:0,skipped:0,errors:[]}}async function X$(r){let i=new Set(r?.sources??pl),n={cc:xl(),codex:xl(),opencode:xl()};for(let c of pl){if(!i.has(c))continue;try{if(c==="cc")n.cc=await nA.run({force:r?.force});else if(c==="codex")n.codex=await Om.run({force:r?.force});else n.opencode=await qm.run({force:r?.force})}catch(l){_m.warn(`${c} import failed`,{error:String(l)}),n[c].errors.push(String(l))}}let m={scanned:n.cc.scanned+n.codex.scanned+n.opencode.scanned,imported:n.cc.imported+n.codex.imported+n.opencode.imported,resynced:n.cc.resynced+n.codex.resynced+n.opencode.resynced,errors:n.cc.errors.length+n.codex.errors.length+n.opencode.errors.length};if(m.imported+m.resynced>0||m.errors>0)_m.info("external import",m);return n}var nc=_.create({service:"server"}),K$=yi.define("global.disposed",I.object({})),cA=F(()=>{let r=Number(process.env.QITQODE_GLOBAL_EVENT_CONNECT_LIMIT)||60,i=Number(process.env.QITQODE_GLOBAL_EVENT_CONNECT_WINDOW_MS)||60000,n=new Jm(r,i);return new V().get("/health",G({summary:"Get health",description:"Get health information about the QitQode server.",operationId:"global.health",responses:{200:{description:"Health information",content:{"application/json":{schema:$(I.object({healthy:I.literal(!0),version:I.string()}))}}}}}),async(m)=>{return m.json({healthy:!0,version:mA})}).get("/event",G({summary:"Get global events",description:"Subscribe to global events from the QitQode system using server-sent events.",operationId:"global.event",responses:{200:{description:"Event stream",content:{"text/event-stream":{schema:$(I.object({directory:I.string(),project:I.string().optional(),workspace:I.string().optional(),payload:I.union([...yi.payloads(),...yr.payloads()])}).meta({ref:"GlobalEvent"}))}}}}}),async(m)=>{let c=m.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"local",l=n.check(c);if(!l.allowed)return nc.warn("global event connection rate limited",{key:c,retryAfterSeconds:l.retryAfterSeconds}),m.header("Retry-After",String(l.retryAfterSeconds)),m.json({error:"Too many reconnect attempts, slow down"},429);return nc.info("global event connected"),m.header("Cache-Control","no-cache, no-transform"),m.header("X-Accel-Buffering","no"),m.header("X-Content-Type-Options","nosniff"),rc(m,{connected:{directory:"global",payload:{type:qn.Connected.type,properties:{}}},heartbeat:{directory:"global",payload:{type:qn.Heartbeat.type,properties:{}}},subscribe(y){function j(A){y(A)}return Lr.on("event",j),()=>Lr.off("event",j)},onDrop(y){nc.warn("global event dropped under backpressure",{dropped:y})},onDisconnect(y,j){nc.info("global event disconnected",{buffered:y,bufferedBytes:j})}})}).get("/config",G({summary:"Get global configuration",description:"Retrieve the current global QitQode configuration settings and preferences.",operationId:"global.config.get",responses:{200:{description:"Get global config info",content:{"application/json":{schema:$(mr.Info)}}}}}),async(m)=>{return m.json(await e.runPromise(mr.Service.use((c)=>c.getGlobal())))}).patch("/config",G({summary:"Update global configuration",description:"Update global QitQode configuration settings and preferences.",operationId:"global.config.update",responses:{200:{description:"Successfully updated global config",content:{"application/json":{schema:$(mr.Info)}}},...P(400)}}),D("json",mr.Info),async(m)=>{let c=m.req.valid("json"),l=await e.runPromise(mr.Service.use((y)=>y.updateGlobal(c)));return m.json(l)}).post("/dispose",G({summary:"Dispose instance",description:"Clean up and dispose all QitQode instances, releasing all resources.",operationId:"global.dispose",responses:{200:{description:"Global disposed",content:{"application/json":{schema:$(I.boolean())}}}}}),async(m)=>{return await M.disposeAll(),Lr.emit("event",{directory:"global",payload:{type:K$.type,properties:{}}}),m.json(!0)}).post("/upgrade",G({summary:"Upgrade qitqode",description:"Upgrade qitqode to the specified version or latest if not specified.",operationId:"global.upgrade",responses:{200:{description:"Upgrade result",content:{"application/json":{schema:$(I.union([I.object({success:I.literal(!0),version:I.string()}),I.object({success:I.literal(!1),error:I.string()})]))}}},...P(400)}}),D("json",I.object({target:I.string().optional()})),async(m)=>{let c=await e.runPromise(ul.Service.use((y)=>C.gen(function*(){let j=yield*y.method();if(j==="unknown")return{success:!1,status:400,error:"Unknown installation method"};let A=m.req.valid("json").target||(yield*y.latest(j)),S=yield*C.catch(y.upgrade(j,A).pipe(C.as({success:!0,version:A})),(v)=>C.succeed({success:!1,status:500,error:v instanceof Error?v.message:String(v)}));if(!S.success)return S;return{...S,status:200}})));if(!c.success)return m.json({success:!1,error:c.error},c.status);let l=c.version;return Lr.emit("event",{directory:"global",payload:{type:ul.Event.Updated.type,properties:{version:l}}}),m.json({success:!0,version:l})}).get("/import/scan",G({summary:"Scan external session sources",description:"Detect availability and session counts of external AI tool session stores (Claude Code, Codex, opencode). Read-only.",operationId:"global.import.scan",responses:{200:{description:"Per-source availability and counts",content:{"application/json":{schema:$(I.record(I.enum(["cc","codex","opencode"]),I.object({available:I.boolean(),sessions:I.number(),imported:I.number()})))}}}}}),async(m)=>{return m.json(await Fn.scan())}).post("/import/run",G({summary:"Import external sessions",description:"Import sessions from external AI tools (Claude Code, Codex, opencode) into qitqode. Idempotent; pass force to re-sync. Per-source failures are not thrown as HTTP errors \u2014 they are collected into the corresponding stats.errors[] while other sources continue.",operationId:"global.import.run",responses:{200:{description:"Per-source import stats",content:{"application/json":{schema:$(I.record(I.enum(["cc","codex","opencode"]),I.object({scanned:I.number(),imported:I.number(),resynced:I.number(),skipped:I.number(),errors:I.array(I.string())})))}}},...P(400)}}),D("json",I.object({sources:I.array(I.enum(["cc","codex","opencode"])).optional(),force:I.boolean().optional()})),async(m)=>{let{sources:c,force:l}=m.req.valid("json");return m.json(await Fn.runAll({sources:c,force:l}))})});var gn={};Nr(gn,{websocket:()=>q$,http:()=>L$,ServerProxy:()=>gn});var H$=new Set(["connection","keep-alive","proxy-authenticate","proxy-authorization","proxy-connection","te","trailer","transfer-encoding","upgrade","host","authorization"]);function Z$(r,i){let n=new Headers(r.headers);for(let m of H$)n.delete(m);if(n.delete("accept-encoding"),n.delete("x-qitqode-directory"),n.delete("x-qitqode-workspace"),!i)return n;for(let[m,c]of new Headers(i).entries())n.set(m,c);return n}function V$(r){let i=r.headers.get("sec-websocket-protocol");if(!i)return[];return i.split(",").map((n)=>n.trim()).filter(Boolean)}function Y$(r){let i=new URL(r);if(i.protocol==="http:")i.protocol="ws:";if(i.protocol==="https:")i.protocol="wss:";return i.toString()}function J$(r,i){if(i instanceof Blob)return i.arrayBuffer().then((n)=>r.send(n));return r.send(i)}var R$=(r)=>new V().get("/__workspace_ws",r((i)=>{let n=i.req.header("x-qitqode-proxy-url"),m=[],c;return{onOpen(l,y){if(!n){y.close(1011,"missing proxy target");return}c=new WebSocket(n,V$(i.req.raw)),c.binaryType="arraybuffer",c.onopen=()=>{for(let j of m)c?.send(j);m.length=0},c.onmessage=(j)=>{J$(y,j.data)},c.onerror=()=>{y.close(1011,"proxy error")},c.onclose=(j)=>{y.close(j.code,j.reason)}},onMessage(l){let y=l.data;if(typeof y!=="string"&&!(y instanceof Uint8Array)&&!(y instanceof ArrayBuffer))return;if(c?.readyState===WebSocket.OPEN){c.send(y);return}m.push(y)},onClose(l){c?.close(l.code,l.reason)}}})),O$=_.Default.clone().tag("service","server-proxy");async function L$(r,i,n,m){if(!p.isSyncing(m))return new Response(`broken sync connection for workspace: ${m}`,{status:503,headers:{"content-type":"text/plain; charset=utf-8"}});return fetch(new Request(r,{method:n.method,headers:Z$(n,i),body:n.method==="GET"||n.method==="HEAD"?void 0:n.body,redirect:"manual",signal:n.signal})).then((c)=>{let l=y1(c.headers),y=new Headers(c.headers);return y.delete("content-encoding"),y.delete("content-length"),(l?j1(m,l,n.signal):Promise.resolve()).then(async()=>{return new Response(c.body,{status:c.status,statusText:c.statusText,headers:y})})})}function q$(r,i,n,m,c){let l=new URL(m.url);l.pathname="/__workspace_ws",l.search="";let y=new Headers(m.headers);y.set("x-qitqode-proxy-url",Y$(i));for(let[j,A]of new Headers(n).entries())y.set(j,A);return O$.info("proxy websocket",{request:m.url,target:String(i)}),R$(r).fetch(new Request(l,{method:m.method,headers:y,signal:m.signal}),c)}var _$=[{path:"/session/status",action:"forward"},{method:"GET",path:"/session",action:"local"}];function F$(r,i){for(let n of _$){if(n.method&&n.method!==r)continue;if(n.exact?i===n.path:i===n.path||i.startsWith(n.path+"/"))return n.action==="local"}return!1}function g$(r){if(r.pathname==="/session/status")return null;let i=r.pathname.match(/^\/session\/([^/]+)(?:\/|$)/)?.[1];if(!i)return null;return br.make(i)}async function z$(r){let i=g$(r);if(!i)return null;return(await e.runPromise(J.Service.use((m)=>m.get(i)).pipe(C.withSpan("WorkspaceRouter.lookup"))).catch(()=>{return}))?.workspaceID}function lA(r){let i=_.create({service:"workspace-router"});return async(n,m)=>{let c=new URL(n.req.url),y=await z$(c)||c.searchParams.get("workspace");if(!y||c.pathname.startsWith("/console")||k.QITQODE_WORKSPACE_ID)return m();let j=await p.get(qr.make(y));if(!j)return new Response(`Workspace not found: ${y}`,{status:500,headers:{"content-type":"text/plain; charset=utf-8"}});if(F$(n.req.method,c.pathname))return m();let S=await(await _i(j.projectID,j.type)).target(j);if(S.type==="local")return Dn.provide({workspaceID:qr.make(y),fn:()=>M.provide({directory:S.directory,init:()=>e.runPromise(xi),async fn(){return m()}})});let v=new URL(S.url);if(v.pathname=`${v.pathname.replace(/\/$/,"")}${c.pathname}`,v.search=c.search,v.hash=c.hash,v.searchParams.delete("workspace"),v.searchParams.delete("auth_token"),i.info("workspace proxy forwarding",{workspaceID:y,request:c.toString(),target:String(S.url),proxy:v.toString()}),n.req.header("upgrade")?.toLowerCase()==="websocket")return gn.websocket(r,v,S.headers,n.req.raw,n.env);let w=new Headers(n.req.raw.headers);w.delete("x-qitqode-workspace");let N=new Request(n.req.raw,{headers:w});return gn.http(v,S.headers,N,j.id)}}function al(r){return async(i,n)=>{let m=i.req.query("directory")||i.req.header("x-qitqode-directory")||process.cwd(),c=yA.resolve((()=>{try{return decodeURIComponent(m)}catch{return m}})());if(!k.QITQODE_SERVER_PASSWORD){let l=Wi.resolve(process.cwd());if(!Wi.contains(l,c))return i.json({error:"Access denied: directory must be within the server's working directory"},403)}return Dn.provide({workspaceID:r,async fn(){return M.provide({directory:c,init:()=>e.runPromise(xi),async fn(){return n()}})}})}}var dl=_.create({service:"server.workspace"}),IA=F(()=>new V().get("/adaptor",G({summary:"List workspace adaptors",description:"List all available workspace adaptors for the current project.",operationId:"experimental.workspace.adaptor.list",responses:{200:{description:"Workspace adaptors",content:{"application/json":{schema:$(I.array(I.object({type:I.string(),name:I.string(),description:I.string()})))}}}}}),async(r)=>{return r.json(await jA(M.project.id))}).post("/",G({summary:"Create workspace",description:"Create a workspace for the current project.",operationId:"experimental.workspace.create",responses:{200:{description:"Workspace created",content:{"application/json":{schema:$(p.Info)}}},...P(400)}}),D("json",p.create.schema.omit({projectID:!0})),async(r)=>{let i=r.req.valid("json"),n=await p.create({projectID:M.project.id,...i});return r.json(n)}).get("/",G({summary:"List workspaces",description:"List all workspaces.",operationId:"experimental.workspace.list",responses:{200:{description:"Workspaces",content:{"application/json":{schema:$(I.array(p.Info))}}}}}),async(r)=>{return r.json(p.list(M.project))}).get("/status",G({summary:"Workspace status",description:"Get connection status for workspaces in the current project.",operationId:"experimental.workspace.status",responses:{200:{description:"Workspace status",content:{"application/json":{schema:$(I.array(p.ConnectionStatus))}}}}}),async(r)=>{let i=new Set(p.list(M.project).map((n)=>n.id));return r.json(p.status().filter((n)=>i.has(n.workspaceID)))}).delete("/:id",G({summary:"Remove workspace",description:"Remove an existing workspace.",operationId:"experimental.workspace.remove",responses:{200:{description:"Workspace removed",content:{"application/json":{schema:$(p.Info.optional())}}},...P(400)}}),D("param",I.object({id:p.Info.shape.id})),async(r)=>{let{id:i}=r.req.valid("param");return r.json(await p.remove(i))}).post("/:id/session-restore",G({summary:"Restore session into workspace",description:"Replay a session's sync events into the target workspace in batches.",operationId:"experimental.workspace.sessionRestore",responses:{200:{description:"Session replay started",content:{"application/json":{schema:$(I.object({total:I.number().int().min(0)}))}}},...P(400)}}),D("param",I.object({id:p.Info.shape.id})),D("json",p.sessionRestore.schema.omit({workspaceID:!0})),async(r)=>{let{id:i}=r.req.valid("param"),n=r.req.valid("json");dl.info("session restore route requested",{workspaceID:i,sessionID:n.sessionID,directory:M.directory});try{let m=await p.sessionRestore({workspaceID:i,...n});return dl.info("session restore route complete",{workspaceID:i,sessionID:n.sessionID,total:m.total}),r.json(m)}catch(m){throw dl.error("session restore route failed",{workspaceID:i,sessionID:n.sessionID,error:m0(m)}),m}}));globalThis.AI_SDK_LOG_WARNINGS=!1;dc();var M$=_.create({service:"server"}),T$=F(()=>tl({}));function h$(r){try{return new URL(r).hostname}catch{return}}function tl(r){let i=new V().onError(hj).use(kj({hostname:r.hostname,mdnsDomain:r.mdnsDomain,allowedHosts:r.cors?.map(h$).filter((m)=>!!m)})).use(xj(r)).use(oj).use(Bj).use(pj).route("/global",cA()),n=My.create(i);if(k.QITQODE_WORKSPACE_ID)return{app:i.use(al(k.QITQODE_WORKSPACE_ID?qr.make(k.QITQODE_WORKSPACE_ID):void 0)).use(I1).route("/",Bl(n.upgradeWebSocket)),runtime:n};return{app:i.route("/",h2()).route("/",new V().use(al()).route("/experimental/workspace",IA()).use(lA(n.upgradeWebSocket)).route("/",Bl(n.upgradeWebSocket))),runtime:n}}async function B$(){let{app:r}=tl({});return await wc(r,{documentation:{info:{title:"qitqode",version:"1.0.0",description:"qitqode api"},openapi:"3.1.1"}})}var AA;async function o$(r){let n=await tl(r).runtime.listen(r),m=new URL("http://localhost");m.hostname=r.hostname,m.port=String(n.port),AA=m;let c=r.mdns&&n.port&&r.hostname!=="127.0.0.1"&&r.hostname!=="localhost"&&r.hostname!=="::1";if(c)Nn.publish(n.port,r.mdnsDomain);else if(r.mdns)M$.warn("mDNS enabled but hostname is loopback; skipping mDNS publish");let l;return{hostname:r.hostname,port:n.port,url:m,stop(y){return l??=(async()=>{if(c)Nn.unpublish();await n.stop(y)})(),l}}}
13
+ `;await this.write(m)}},t4=async(r,i,n)=>{try{await i(r)}catch(m){if(m instanceof Error&&n)await n(m,r),await r.writeSSE({event:"error",data:m.message});else console.error(m)}finally{r.close()}},b4=new WeakMap,Fl=(r,i,n)=>{let{readable:m,writable:c}=new TransformStream,l=new w2(c,m);if(Vm())r.req.raw.signal.addEventListener("abort",()=>{if(!l.closed)l.abort()});return b4.set(l.responseReadable,r),r.header("Transfer-Encoding","chunked"),r.header("Content-Type","text/event-stream"),r.header("Cache-Control","no-cache"),r.header("Connection","keep-alive"),t4(l,i,n),r.newResponse(l.responseReadable)};var $2=I.object({info:vr.Assistant,parts:vr.Part.array()});function G2(){return new V().get("/:sessionID/message",G({summary:"Get session messages",description:"Retrieve all messages in a session, including user prompts and AI responses.",operationId:"session.messages",responses:{200:{description:"List of messages",content:{"application/json":{schema:$(vr.WithParts.array())}}},...P(400,404)}}),s(),D("query",I.object({limit:I.coerce.number().int().min(0).optional().meta({description:"Maximum number of messages to return"}),before:I.string().optional().meta({description:"Opaque cursor for loading older messages"}).refine((r)=>{if(!r)return!0;try{return vr.cursor.decode(r),!0}catch{return!1}},{message:"Invalid cursor"}),agent_id:I.string().optional().meta({description:"Filter by message slice. Omitted = main-agent slice only (default). Pass a subagent's actor id to fetch its slice. Pass `*` to return every message regardless of slice."})}).refine((r)=>!r.before||r.limit!==void 0,{message:"before requires limit",path:["before"]})),async(r)=>{let i=r.req.valid("query"),n=r.req.valid("param").sessionID,m=i.agent_id??"main";if(i.limit===void 0||i.limit===0){let l=await u("SessionRoutes.messages",r,C.gen(function*(){let y=yield*J.Service;return yield*y.get(n),yield*y.messages({sessionID:n,agentID:m})}));return r.json(l)}let c=await vr.page({sessionID:n,limit:i.limit,before:i.before,agentID:m});if(c.cursor){let l=new URL(r.req.url);l.searchParams.set("limit",i.limit.toString()),l.searchParams.set("before",c.cursor),r.header("Access-Control-Expose-Headers","Link, X-Next-Cursor"),r.header("Link",`<${l.toString()}>; rel="next"`),r.header("X-Next-Cursor",c.cursor)}return r.json(c.items)}).get("/:sessionID/message/:messageID",G({summary:"Get message",description:"Retrieve a specific message from a session by its message ID.",operationId:"session.message",responses:{200:{description:"Message",content:{"application/json":{schema:$(I.object({info:vr.Info,parts:vr.Part.array()}))}}},...P(400,404)}}),Jl(),async(r)=>{let i=r.req.valid("param"),n=await vr.get({sessionID:i.sessionID,messageID:i.messageID});return r.json(n)}).delete("/:sessionID/message/:messageID",G({summary:"Delete message",description:"Permanently delete a specific message (and all of its parts) from a session. This does not revert any file changes that may have been made while processing the message.",operationId:"session.deleteMessage",responses:{200:{description:"Successfully deleted message",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),Jl(),async(r)=>U("SessionRoutes.deleteMessage",r,function*(){let i=r.req.valid("param"),n=yield*gl.Service,m=yield*J.Service;return yield*n.assertNotBusy(i.sessionID),yield*m.removeMessage({sessionID:i.sessionID,messageID:i.messageID}),!0})).delete("/:sessionID/message/:messageID/part/:partID",G({description:"Delete a part from a message",operationId:"part.delete",responses:{200:{description:"Successfully deleted part",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),Rl(),async(r)=>U("SessionRoutes.deletePart",r,function*(){let i=r.req.valid("param");return yield*(yield*J.Service).removePart({sessionID:i.sessionID,messageID:i.messageID,partID:i.partID}),!0})).patch("/:sessionID/message/:messageID/part/:partID",G({description:"Update a part in a message",operationId:"part.update",responses:{200:{description:"Successfully updated part",content:{"application/json":{schema:$(vr.Part)}}},...P(400,404)}}),Rl(),D("json",vr.Part),async(r)=>{let i=r.req.valid("param"),n=r.req.valid("json");if(n.id!==i.partID||n.messageID!==i.messageID||n.sessionID!==i.sessionID)throw Error(`Part mismatch: body.id='${n.id}' vs partID='${i.partID}', body.messageID='${n.messageID}' vs messageID='${i.messageID}', body.sessionID='${n.sessionID}' vs sessionID='${i.sessionID}'`);return U("SessionRoutes.updatePart",r,function*(){return yield*(yield*J.Service).updatePart(n)})}).post("/:sessionID/message",G({summary:"Send message",description:"Create and send a new message to a session, streaming the AI response.",operationId:"session.prompt",responses:{200:{description:"Created message",content:{"application/json":{schema:$($2)}}},...P(400,404,409)}}),s(),D("json",Dr.PromptInput.omit({sessionID:!0})),async(r)=>{let i=r.req.valid("param").sessionID;return await u("SessionRoutes.prompt.assertNotBusy",r,gl.Service.use((n)=>n.assertNotBusy(i))),r.status(200),r.header("Content-Type","application/json"),s0(r,async(n)=>{let m=r.req.valid("json"),c=r.req.raw.signal,l=()=>{u("SessionRoutes.prompt.disconnect",r,Dr.Service.use((y)=>y.cancel(i))).catch(()=>{})};if(c.aborted){l();return}c.addEventListener("abort",l,{once:!0});try{let y=await u("SessionRoutes.prompt",r,Dr.Service.use((j)=>j.prompt({...m,sessionID:i})));n.write(JSON.stringify(y))}finally{c.removeEventListener("abort",l)}})}).post("/:sessionID/prompt_async",G({summary:"Send async message",description:"Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.",operationId:"session.prompt_async",responses:{204:{description:"Prompt accepted"},...P(400,404)}}),s(),D("json",Dr.PromptInput.omit({sessionID:!0})),async(r)=>{let i=r.req.valid("param").sessionID,n=r.req.valid("json");return u("SessionRoutes.prompt_async",r,Dr.Service.use((m)=>m.prompt({...n,sessionID:i}))).catch((m)=>{t0.error("prompt_async failed",{sessionID:i,error:m}),wr.publish(J.Event.Error,{sessionID:i,error:new En.Unknown({message:m instanceof Error?m.message:String(m)}).toObject()})}),r.body(null,204)}).post("/:sessionID/command",G({summary:"Send command",description:"Send a new command to a session for execution by the AI assistant.",operationId:"session.command",responses:{200:{description:"Created message",content:{"application/json":{schema:$($2)}}},...P(400,404)}}),s(),D("json",Dr.CommandInput.omit({sessionID:!0})),async(r)=>U("SessionRoutes.command",r,function*(){let i=r.req.valid("param").sessionID,n=r.req.valid("json");return yield*(yield*Dr.Service).command({...n,sessionID:i})})).post("/:sessionID/predict",G({summary:"Predict next prompt",description:"Predict the user's most likely next prompt based on the latest user message and the assistant's result. Returns an empty string when disabled or unavailable.",operationId:"session.predict",responses:{200:{description:"Predicted next prompt",content:{"application/json":{schema:$(I.object({prediction:I.string()}))}}},...P(400,404)}}),s(),async(r)=>U("SessionRoutes.predict",r,function*(){let i=r.req.valid("param").sessionID;return{prediction:yield*(yield*Dr.Service).predict({sessionID:i})}})).post("/:sessionID/shell",G({summary:"Run shell command",description:"Execute a shell command within the session context and return the AI's response.",operationId:"session.shell",responses:{200:{description:"Created message",content:{"application/json":{schema:$(vr.WithParts)}}},...P(400,404)}}),s(),D("json",Dr.ShellInput.omit({sessionID:!0})),async(r)=>U("SessionRoutes.shell",r,function*(){let i=r.req.valid("param").sessionID,n=r.req.valid("json");return yield*(yield*Dr.Service).shell({...n,sessionID:i})}))}function N2(){return new V().post("/:sessionID/permissions/:permissionID",G({summary:"Respond to permission",deprecated:!0,description:"Approve or deny a permission request from the AI assistant.",operationId:"permission.respond",responses:{200:{description:"Permission processed successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400,404)}}),D("param",I.object({sessionID:br.zod,permissionID:Pn.zod})),D("json",I.object({response:Qr.Reply.zod})),async(r)=>U("SessionRoutes.permissionRespond",r,function*(){let i=r.req.valid("param");return yield*I0({requestID:i.permissionID,reply:r.req.valid("json").response})}))}var E2=F(()=>{let r=new V;return r.route("/",l2()),r.route("/",j2()),r.route("/",I2()),r.route("/",v2()),r.route("/",G2()),r.route("/",N2()),r});var Q2=_.create({service:"server.qredits"}),e4=I.object({balance:I.number().nullable(),status:I.enum(["signed_out","available","unavailable","not_linked"])}),C2=F(()=>new V().get("/balance",G({summary:"Get Qredits balance",description:"Retrieve the current Qredits balance for the account behind the active credential. The response status distinguishes signed-out users, credentials with no linked account, and temporary billing-service outages.",operationId:"qredits.balance",responses:{200:{description:"Qredits balance",content:{"application/json":{schema:$(e4)}}}}}),async(r)=>U("QreditsRoutes.balance",r,function*(){let i=yield*C.promise(()=>D2());if(!i)return{balance:null,status:"signed_out"};let n=yield*C.tryPromise({try:()=>P2(i),catch:(m)=>m}).pipe(C.map((m)=>m?{kind:"ok",balance:m.balance}:{kind:"failed"}),C.catch((m)=>C.sync(()=>{if(m instanceof U2)return Q2.warn("credential has no linked account; no wallet to read",{method:i.method}),{kind:"not_linked"};return Q2.warn("qredits balance read failed; reporting unavailable",{method:i.method,error:m instanceof Error?m.message:String(m)}),{kind:"failed"}})));if(n.kind==="not_linked")return{balance:null,status:"not_linked"};if(n.kind==="failed")return{balance:null,status:"unavailable"};return{balance:n.balance,status:"available"}})));function W2(r){return new V().get("/",G({summary:"List PTY sessions",description:"Get a list of all active pseudo-terminal (PTY) sessions managed by QitQode.",operationId:"pty.list",responses:{200:{description:"List of sessions",content:{"application/json":{schema:$(Wr.Info.array())}}}}}),async(i)=>U("PtyRoutes.list",i,function*(){return yield*(yield*Wr.Service).list()})).post("/",G({summary:"Create PTY session",description:"Create a new pseudo-terminal (PTY) session for running shell commands and processes.",operationId:"pty.create",responses:{200:{description:"Created session",content:{"application/json":{schema:$(Wr.Info)}}},...P(400)}}),D("json",Wr.CreateInput),async(i)=>U("PtyRoutes.create",i,function*(){return yield*(yield*Wr.Service).create(i.req.valid("json"))})).get("/:ptyID",G({summary:"Get PTY session",description:"Retrieve detailed information about a specific pseudo-terminal (PTY) session.",operationId:"pty.get",responses:{200:{description:"Session info",content:{"application/json":{schema:$(Wr.Info)}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>{let n=await u("PtyRoutes.get",i,C.gen(function*(){return yield*(yield*Wr.Service).get(i.req.valid("param").ptyID)}));if(!n)throw new Ci({message:"Session not found"});return i.json(n)}).put("/:ptyID",G({summary:"Update PTY session",description:"Update properties of an existing pseudo-terminal (PTY) session.",operationId:"pty.update",responses:{200:{description:"Updated session",content:{"application/json":{schema:$(Wr.Info)}}},...P(400)}}),D("param",I.object({ptyID:jn.zod})),D("json",Wr.UpdateInput),async(i)=>U("PtyRoutes.update",i,function*(){return yield*(yield*Wr.Service).update(i.req.valid("param").ptyID,i.req.valid("json"))})).delete("/:ptyID",G({summary:"Remove PTY session",description:"Remove and terminate a specific pseudo-terminal (PTY) session.",operationId:"pty.remove",responses:{200:{description:"Session removed",content:{"application/json":{schema:$(I.boolean())}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>U("PtyRoutes.remove",i,function*(){return yield*(yield*Wr.Service).remove(i.req.valid("param").ptyID),!0})).post("/:ptyID/connect-token",G({summary:"Issue PTY connect ticket",description:"Issue a one-time ticket for authenticating a WebSocket connection to a PTY session. The ticket must be passed as the 'ticket' query parameter on the /connect WebSocket URL.",operationId:"pty.connectToken",responses:{200:{description:"Issued ticket",content:{"application/json":{schema:$(I.object({ticket:I.string(),expires_in:I.number()}))}}},403:{description:"Forbidden \u2014 missing required header or invalid origin"},...P(404)}}),D("param",I.object({ptyID:jn.zod})),async(i)=>{if(i.req.header(Fj)!==gj)return i.json({error:"Forbidden"},403);let n=i.req.valid("param").ptyID;if(!await u("PtyRoutes.connectToken",i,C.gen(function*(){return yield*(yield*Wr.Service).get(n)})))throw new Ci({message:"Session not found"});return i.json(Mj(n))}).get("/:ptyID/connect",G({summary:"Connect to PTY session",description:"Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.",operationId:"pty.connect",responses:{200:{description:"Connected session",content:{"application/json":{schema:$(I.boolean())}}},...P(404)}}),D("param",I.object({ptyID:jn.zod})),r(async(i)=>{let n=jn.zod.parse(i.req.param("ptyID")),m=i.req.query(fm);if(!m||!Tj(m,n))throw new kr(401,{message:"Invalid or expired ticket"});let c=(()=>{let S=i.req.query("cursor");if(!S)return;let v=Number(S);if(!Number.isSafeInteger(v)||v<-1)return;return v})(),l;if(!await u("PtyRoutes.connect",i,C.gen(function*(){return yield*(yield*Wr.Service).get(n)})))throw Error("Session not found");let y=(S)=>{if(!S||typeof S!=="object")return!1;if(!("readyState"in S))return!1;if(!("send"in S)||typeof S.send!=="function")return!1;if(!("close"in S)||typeof S.close!=="function")return!1;return typeof S.readyState==="number"},j=[],A=!1;return{async onOpen(S,v){let w=v.raw;if(!y(w)){v.close();return}l=await e.runPromise(C.gen(function*(){return yield*(yield*Wr.Service).connect(n,w,c)}).pipe(C.withSpan("PtyRoutes.connect.open"))),A=!0;for(let N of j)l?.onMessage(N);j.length=0},onMessage(S){if(typeof S.data!=="string")return;if(!A){j.push(S.data);return}l?.onMessage(S.data)},onClose(){l?.onClose()},onError(){l?.onClose()}}}))}var X2=(r,i)=>C.gen(function*(){let n=yield*Xr.Service;if(i==="connect")yield*n.connect(r);else yield*n.disconnect(r);return!0}),H2=F(()=>new V().get("/",G({summary:"Get MCP status",description:"Get the status of all Model Context Protocol (MCP) servers.",operationId:"mcp.status",responses:{200:{description:"MCP server status",content:{"application/json":{schema:$(I.record(I.string(),Xr.Status))}}}}}),async(r)=>U("McpRoutes.status",r,function*(){return yield*(yield*Xr.Service).status()})).post("/",G({summary:"Add MCP server",description:"Dynamically add a new Model Context Protocol (MCP) server to the system.",operationId:"mcp.add",responses:{200:{description:"MCP server added successfully",content:{"application/json":{schema:$(I.record(I.string(),Xr.Status))}}},...P(400)}}),D("json",I.object({name:I.string(),config:K2.Info.zod})),async(r)=>{if(!k.QITQODE_SERVER_PASSWORD)return r.json({error:"Forbidden: QITQODE_SERVER_PASSWORD must be set to add MCP servers via API"},403);return U("McpRoutes.add",r,function*(){let{name:i,config:n}=r.req.valid("json");return(yield*(yield*Xr.Service).add(i,n)).status})}).post("/:name/auth",G({summary:"Start MCP OAuth",description:"Start OAuth authentication flow for a Model Context Protocol (MCP) server.",operationId:"mcp.auth.start",responses:{200:{description:"OAuth flow started",content:{"application/json":{schema:$(I.object({authorizationUrl:I.string().describe("URL to open in browser for authorization")}))}}},...P(400,404)}}),async(r)=>{let i=r.req.param("name"),n=await u("McpRoutes.auth.start",r,C.gen(function*(){let m=yield*Xr.Service,c=yield*m.supportsOAuth(i);if(!c)return{supports:c};return{supports:c,auth:yield*m.startAuth(i)}}));if(!n.supports)return r.json({error:`MCP server ${i} does not support OAuth`},400);return r.json(n.auth)}).post("/:name/auth/callback",G({summary:"Complete MCP OAuth",description:"Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.",operationId:"mcp.auth.callback",responses:{200:{description:"OAuth authentication completed",content:{"application/json":{schema:$(Xr.Status)}}},...P(400,404)}}),D("json",I.object({code:I.string().describe("Authorization code from OAuth callback")})),async(r)=>U("McpRoutes.auth.callback",r,function*(){let i=r.req.param("name"),{code:n}=r.req.valid("json");return yield*(yield*Xr.Service).finishAuth(i,n)})).post("/:name/auth/authenticate",G({summary:"Authenticate MCP OAuth",description:"Start OAuth flow and wait for callback (opens browser)",operationId:"mcp.auth.authenticate",responses:{200:{description:"OAuth authentication completed",content:{"application/json":{schema:$(Xr.Status)}}},...P(400,404)}}),async(r)=>{let i=r.req.param("name"),n=await u("McpRoutes.auth.authenticate",r,C.gen(function*(){let m=yield*Xr.Service,c=yield*m.supportsOAuth(i);if(!c)return{supports:c};return{supports:c,status:yield*m.authenticate(i)}}));if(!n.supports)return r.json({error:`MCP server ${i} does not support OAuth`},400);return r.json(n.status)}).delete("/:name/auth",G({summary:"Remove MCP OAuth",description:"Remove OAuth credentials for an MCP server",operationId:"mcp.auth.remove",responses:{200:{description:"OAuth credentials removed",content:{"application/json":{schema:$(I.object({success:I.literal(!0)}))}}},...P(404)}}),async(r)=>U("McpRoutes.auth.remove",r,function*(){let i=r.req.param("name");return yield*(yield*Xr.Service).removeAuth(i),{success:!0}})).post("/:name/connect",G({description:"Connect an MCP server",operationId:"mcp.connect",responses:{200:{description:"MCP server connected successfully",content:{"application/json":{schema:$(I.boolean())}}}}}),D("param",I.object({name:I.string()})),async(r)=>U("McpRoutes.connect",r,function*(){return yield*X2(r.req.valid("param").name,"connect")})).post("/:name/disconnect",G({description:"Disconnect an MCP server",operationId:"mcp.disconnect",responses:{200:{description:"MCP server disconnected successfully",content:{"application/json":{schema:$(I.boolean())}}}}}),D("param",I.object({name:I.string()})),async(r)=>U("McpRoutes.disconnect",r,function*(){return yield*X2(r.req.valid("param").name,"disconnect")})));var Z2=F(()=>new V().get("/find",G({summary:"Find text",description:"Search for text patterns across files in the project using ripgrep.",operationId:"find.text",responses:{200:{description:"Matches",content:{"application/json":{schema:$(zl.Match.shape.data.array())}}}}}),D("query",I.object({pattern:I.string()})),async(r)=>U("FileRoutes.findText",r,function*(){let i=r.req.valid("query").pattern;return(yield*(yield*zl.Service).search({cwd:M.directory,pattern:i,limit:10})).items})).get("/find/file",G({summary:"Find files",description:"Search for files or directories by name or pattern in the project directory.",operationId:"find.files",responses:{200:{description:"File paths",content:{"application/json":{schema:$(I.string().array())}}}}}),D("query",I.object({query:I.string(),dirs:I.enum(["true","false"]).optional(),type:I.enum(["file","directory"]).optional(),limit:I.coerce.number().int().min(1).max(200).optional()})),async(r)=>U("FileRoutes.findFile",r,function*(){let i=r.req.valid("query");return yield*(yield*ui.Service).search({query:i.query,limit:i.limit??10,dirs:i.dirs!=="false",type:i.type})})).get("/find/symbol",G({summary:"Find symbols",description:"Search for workspace symbols like functions, classes, and variables using LSP.",operationId:"find.symbols",responses:{200:{description:"Symbols",content:{"application/json":{schema:$(Ym.Symbol.array())}}}}}),D("query",I.object({query:I.string()})),async(r)=>{return r.json([])}).get("/file",G({summary:"List files",description:"List files and directories in a specified path.",operationId:"file.list",responses:{200:{description:"Files and directories",content:{"application/json":{schema:$(ui.Node.array())}}}}}),D("query",I.object({path:I.string()})),async(r)=>U("FileRoutes.list",r,function*(){return yield*(yield*ui.Service).list(r.req.valid("query").path)})).get("/file/content",G({summary:"Read file",description:"Read the content of a specified file.",operationId:"file.read",responses:{200:{description:"File content",content:{"application/json":{schema:$(ui.Content)}}}}}),D("query",I.object({path:I.string()})),async(r)=>U("FileRoutes.read",r,function*(){return yield*(yield*ui.Service).read(r.req.valid("query").path)})).get("/file/status",G({summary:"Get file status",description:"Get the git status of all files in the project.",operationId:"file.status",responses:{200:{description:"File status",content:{"application/json":{schema:$(ui.Info.array())}}}}}),async(r)=>U("FileRoutes.status",r,function*(){return yield*(yield*ui.Service).status()})));var V2=F(()=>new V().get("/",G({summary:"Get configuration",description:"Retrieve the current QitQode configuration settings and preferences.",operationId:"config.get",responses:{200:{description:"Get config info",content:{"application/json":{schema:$(mr.Info)}}}}}),async(r)=>U("ConfigRoutes.get",r,function*(){return yield*(yield*mr.Service).get()})).patch("/",G({summary:"Update configuration",description:"Update QitQode configuration settings and preferences.",operationId:"config.update",responses:{200:{description:"Successfully updated config",content:{"application/json":{schema:$(mr.Info)}}},...P(400)}}),D("json",mr.Info),async(r)=>U("ConfigRoutes.update",r,function*(){let i=r.req.valid("json");return yield*(yield*mr.Service).update(i),i})).get("/providers",G({summary:"List config providers",description:"Get a list of all configured AI providers and their default models.",operationId:"config.providers",responses:{200:{description:"List of providers",content:{"application/json":{schema:$(ir.ConfigProvidersResult.zod)}}}}}),async(r)=>U("ConfigRoutes.providers",r,function*(){let n=yield*(yield*ir.Service).list();return{providers:Object.values(n),default:ir.defaultModelIDs(n)}})));var s4=I.object({accountID:I.string(),accountEmail:I.string(),accountUrl:I.string(),orgID:I.string(),orgName:I.string(),active:I.boolean()}),f4=I.object({orgs:I.array(s4)}),r$=I.object({accountID:I.string(),orgID:I.string()}),O2=F(()=>new V().get("/console",G({summary:"Get active Console provider metadata",description:"Get the active Console org name and the set of provider IDs managed by that Console org.",operationId:"experimental.console.get",responses:{200:{description:"Active Console provider metadata",content:{"application/json":{schema:$(R2.zod)}}}}}),async(r)=>U("ExperimentalRoutes.console.get",r,function*(){let i=yield*mr.Service,n=yield*f0.Service,[m,c]=yield*C.all([i.getConsoleState(),n.orgsByAccount()],{concurrency:"unbounded"});return{...m,switchableOrgCount:c.reduce((l,y)=>l+y.orgs.length,0)}})).get("/console/orgs",G({summary:"List switchable Console orgs",description:"Get the available Console orgs across logged-in accounts, including the current active org.",operationId:"experimental.console.listOrgs",responses:{200:{description:"Switchable Console orgs",content:{"application/json":{schema:$(f4)}}}}}),async(r)=>U("ExperimentalRoutes.console.listOrgs",r,function*(){let i=yield*f0.Service,[n,m]=yield*C.all([i.orgsByAccount(),i.active()],{concurrency:"unbounded"}),c=Qm.getOrUndefined(m);return{orgs:n.flatMap((y)=>y.orgs.map((j)=>({accountID:y.account.id,accountEmail:y.account.email,accountUrl:y.account.url,orgID:j.id,orgName:j.name,active:!!c&&c.id===y.account.id&&c.active_org_id===j.id})))}})).post("/console/switch",G({summary:"Switch active Console org",description:"Persist a new active Console account/org selection for the current local QitQode state.",operationId:"experimental.console.switchOrg",responses:{200:{description:"Switch success",content:{"application/json":{schema:$(I.boolean())}}}}}),D("json",r$),async(r)=>U("ExperimentalRoutes.console.switchOrg",r,function*(){let i=r.req.valid("json");return yield*(yield*f0.Service).use(Y2.make(i.accountID),Qm.some(J2.make(i.orgID))),!0})).get("/tool/ids",G({summary:"List tool IDs",description:"Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.",operationId:"tool.ids",responses:{200:{description:"Tool IDs",content:{"application/json":{schema:$(I.array(I.string()).meta({ref:"ToolIDs"}))}}},...P(400)}}),async(r)=>U("ExperimentalRoutes.tool.ids",r,function*(){return yield*(yield*Ml.Service).ids()})).get("/tool",G({summary:"List tools",description:"Get a list of available tools with their JSON schema parameters for a specific provider and model combination.",operationId:"tool.list",responses:{200:{description:"Tools",content:{"application/json":{schema:$(I.array(I.object({id:I.string(),description:I.string(),parameters:I.any()}).meta({ref:"ToolListItem"})).meta({ref:"ToolList"}))}}},...P(400)}}),D("query",I.object({provider:I.string(),model:I.string()})),async(r)=>{let{provider:i,model:n}=r.req.valid("query"),m=await u("ExperimentalRoutes.tool.list",r,C.gen(function*(){let c=yield*yn.Service;return yield*(yield*Ml.Service).tools({providerID:lr.make(i),modelID:er.make(n),agent:yield*c.get(yield*c.defaultAgent())})}));return r.json(m.map((c)=>({id:c.id,description:c.description,parameters:I.toJSONSchema(c.parameters)})))}).post("/worktree",G({summary:"Create worktree",description:"Create a new git worktree for the current project and run any configured startup scripts.",operationId:"worktree.create",responses:{200:{description:"Worktree created",content:{"application/json":{schema:$(ai.Info)}}},...P(400)}}),D("json",ai.CreateInput.optional()),async(r)=>U("ExperimentalRoutes.worktree.create",r,function*(){let i=r.req.valid("json"),n=i?{...i,startCommand:k.QITQODE_SERVER_PASSWORD?i.startCommand:void 0}:i;return yield*(yield*ai.Service).create(n)})).get("/worktree",G({summary:"List worktrees",description:"List all sandbox worktrees for the current project.",operationId:"worktree.list",responses:{200:{description:"List of worktree directories",content:{"application/json":{schema:$(I.array(I.string()))}}}}}),async(r)=>U("ExperimentalRoutes.worktree.list",r,function*(){return yield*(yield*Gr.Service).sandboxes(M.project.id)})).delete("/worktree",G({summary:"Remove worktree",description:"Remove a git worktree and delete its branch.",operationId:"worktree.remove",responses:{200:{description:"Worktree removed",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",ai.RemoveInput),async(r)=>U("ExperimentalRoutes.worktree.remove",r,function*(){let i=r.req.valid("json"),n=yield*ai.Service,m=yield*Gr.Service;return yield*n.remove(i),yield*m.removeSandbox(M.project.id,i.directory),!0})).post("/worktree/reset",G({summary:"Reset worktree",description:"Reset a worktree branch to the primary default branch.",operationId:"worktree.reset",responses:{200:{description:"Worktree reset",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",ai.ResetInput),async(r)=>U("ExperimentalRoutes.worktree.reset",r,function*(){let i=r.req.valid("json");return yield*(yield*ai.Service).reset(i),!0})).get("/session",G({summary:"List sessions",description:"Get a list of all QitQode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.",operationId:"experimental.session.list",responses:{200:{description:"List of sessions",content:{"application/json":{schema:$(J.GlobalInfo.array())}}}}}),D("query",I.object({directory:ki.directory,roots:ki.roots,start:ki.start,cursor:I.coerce.number().optional().meta({description:"Return sessions updated before this timestamp (milliseconds since epoch)"}),search:ki.search,limit:ki.limit,archived:I.coerce.boolean().optional().meta({description:"Include archived sessions (default false)"})})),async(r)=>{let i=r.req.valid("query"),n=i.limit??100,m=[];for await(let y of J.listGlobal({directory:i.directory,roots:i.roots,start:i.start,cursor:i.cursor,search:i.search,limit:n+1,archived:i.archived}))m.push(y);let c=m.length>n,l=c?m.slice(0,n):m;if(c&&l.length>0)r.header("x-next-cursor",String(l[l.length-1].time.updated));return r.json(l)}).get("/resource",G({summary:"Get MCP resources",description:"Get all available MCP resources from connected servers. Optionally filter by name.",operationId:"experimental.resource.list",responses:{200:{description:"MCP resources",content:{"application/json":{schema:$(I.record(I.string(),Xr.Resource))}}}}}),async(r)=>U("ExperimentalRoutes.resource.list",r,function*(){return yield*(yield*Xr.Service).resources()})));var L2=F(()=>new V().get("/",G({summary:"List providers",description:"Get a list of all available AI providers, including both available and connected ones.",operationId:"provider.list",responses:{200:{description:"List of providers",content:{"application/json":{schema:$(ir.ListResult.zod)}}}}}),async(r)=>U("ProviderRoutes.list",r,function*(){let i=yield*ir.Service,m=yield*(yield*mr.Service).get(),c=yield*i.list();return yield*u0(m,c)})).get("/auth",G({summary:"Get provider auth methods",description:"Retrieve available authentication methods for all AI providers.",operationId:"provider.auth",responses:{200:{description:"Provider auth methods",content:{"application/json":{schema:$(Cr.Methods.zod)}}}}}),async(r)=>U("ProviderRoutes.auth",r,function*(){return yield*(yield*Cr.Service).methods()})).post("/:providerID/oauth/authorize",G({summary:"OAuth authorize",description:"Initiate OAuth authorization for a specific AI provider to get an authorization URL.",operationId:"provider.oauth.authorize",responses:{200:{description:"Authorization URL and method",content:{"application/json":{schema:$(Cr.Authorization.zod.optional())}}},...P(400)}}),D("param",I.object({providerID:lr.zod.meta({description:"Provider ID"})})),D("json",Cr.AuthorizeInput.zod),async(r)=>U("ProviderRoutes.oauth.authorize",r,function*(){let i=r.req.valid("param").providerID,{method:n,inputs:m}=r.req.valid("json");return yield*(yield*Cr.Service).authorize({providerID:i,method:n,inputs:m})})).post("/:providerID/oauth/callback",G({summary:"OAuth callback",description:"Handle the OAuth callback from a provider after user authorization.",operationId:"provider.oauth.callback",responses:{200:{description:"OAuth callback processed successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod.meta({description:"Provider ID"})})),D("json",Cr.CallbackInput.zod),async(r)=>U("ProviderRoutes.oauth.callback",r,function*(){let i=r.req.valid("param").providerID,{method:n,code:m}=r.req.valid("json");return yield*(yield*Cr.Service).callback({providerID:i,method:n,code:m}),!0})));var i$=1e4,n$=1e5,m$=8388608,c$=67108864,l$=2097152,y$=8388608;function j$(r=process.env.QITQODE_EVENT_QUEUE_CAPACITY){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>n$)return i$;return i}var I$=j$();function A$(r=process.env.QITQODE_EVENT_QUEUE_BYTES){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>c$)return m$;return i}function S$(r=process.env.QITQODE_EVENT_MAX_BYTES){let i=Number(r);if(!Number.isSafeInteger(i)||i<1||i>y$)return l$;return i}var q2=A$(),v$=Math.min(S$(),q2);function w$(r,i=v$){let n=JSON.stringify(r);if(n===void 0||Buffer.byteLength(n)>i)return;return n}function rc(r,i){return Fl(r,async(n)=>{let m=new Un({capacity:I$,maxWeight:q2,weight:(v)=>v===null?0:Buffer.byteLength(v)}),c=!1,l=0,y=()=>{},j=(v)=>{let w=w$(v);if(w===void 0){l++;return}m.push(w)};j(i.connected);let A=setInterval(()=>j(i.heartbeat),1e4),S=()=>{if(c)return;if(c=!0,clearInterval(A),y(),m.push(null),m.dropped+l>0)i.onDrop?.(m.dropped+l);i.onDisconnect?.(m.size,m.bufferedWeight)};try{let v=i.subscribe(j,S);if(c)v();else y=v;n.onAbort(S);for await(let w of m){if(w===null)return;await n.writeSSE({data:w})}}finally{S()}})}class Jm{limit;windowMs;buckets=new Map;pruneKeys=[];pruneIndex=0;sweeping=!1;nextSweepAt=0;constructor(r,i){this.limit=r;this.windowMs=i}check(r,i=Date.now()){if(this.sweeping||this.buckets.size>1024||this.buckets.size>0&&i>=this.nextSweepAt)this.pruneSome(i);let n=i-this.windowMs,m=(this.buckets.get(r)??[]).filter((c)=>c>n);if(m.length>=this.limit){this.buckets.set(r,m);let c=m[0]??i;return{allowed:!1,retryAfterSeconds:Math.max(1,Math.ceil((c+this.windowMs-i)/1000))}}return m.push(i),this.buckets.set(r,m),{allowed:!0}}pruneSome(r,i=64){if(!this.sweeping)this.pruneKeys=[...this.buckets.keys()],this.pruneIndex=0,this.sweeping=!0,this.nextSweepAt=r+this.windowMs;let n=r-this.windowMs,m=Math.min(this.pruneIndex+i,this.pruneKeys.length);for(;this.pruneIndex<m;this.pruneIndex++){let c=this.pruneKeys[this.pruneIndex],l=this.buckets.get(c);if(!l)continue;let y=l.filter((j)=>j>n);if(y.length===0)this.buckets.delete(c);else this.buckets.set(c,y)}if(this.pruneIndex>=this.pruneKeys.length)this.sweeping=!1,this.pruneKeys=[],this.pruneIndex=0}}var ic=_.create({service:"server"}),_2=()=>{let r=Number(process.env.QITQODE_EVENT_CONNECT_LIMIT)||60,i=Number(process.env.QITQODE_EVENT_CONNECT_WINDOW_MS)||60000,n=new Jm(r,i);return new V().get("/event",G({summary:"Subscribe to events",description:"Get events",operationId:"event.subscribe",responses:{200:{description:"Event stream",content:{"text/event-stream":{schema:$(I.union(yi.payloads()).meta({ref:"Event"}))}}}}}),async(m)=>{let c=m.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"local",l=n.check(c);if(!l.allowed)return ic.warn("event connection rate limited",{key:c,retryAfterSeconds:l.retryAfterSeconds}),m.header("Retry-After",String(l.retryAfterSeconds)),m.json({error:"Too many reconnect attempts, slow down"},429);return ic.info("event connected"),m.header("Cache-Control","no-cache, no-transform"),m.header("X-Accel-Buffering","no"),m.header("X-Content-Type-Options","nosniff"),rc(m,{connected:{type:qn.Connected.type,properties:{}},heartbeat:{type:qn.Heartbeat.type,properties:{}},subscribe(y,j){return wr.subscribeAll((A)=>{if(y(A),A.type===wr.InstanceDisposed.type)j()})},onDrop(y){ic.warn("event dropped under backpressure",{dropped:y})},onDisconnect(y,j){ic.info("event disconnected",{buffered:y,bufferedBytes:j})}})})};var $$=I.object({id:I.string(),aggregateID:I.string(),seq:I.number().int().min(0),type:I.string(),data:I.record(I.string(),I.unknown())}),F2=_.create({service:"server.sync"}),T2=F(()=>new V().post("/start",G({summary:"Start workspace sync",description:"Start sync loops for workspaces in the current project that have active sessions.",operationId:"sync.start",responses:{200:{description:"Workspace sync started",content:{"application/json":{schema:$(I.boolean())}}}}}),async(r)=>{return uc(M.project.id),r.json(!0)}).post("/replay",G({summary:"Replay sync events",description:"Validate and replay a complete sync event history.",operationId:"sync.replay",responses:{200:{description:"Replayed sync events",content:{"application/json":{schema:$(I.object({sessionID:I.string()}))}}},...P(400)}}),D("json",I.object({directory:I.string(),events:I.array($$).min(1)})),async(r)=>{let i=r.req.valid("json"),n=i.events,m=n[0].aggregateID;return F2.info("sync replay requested",{sessionID:m,events:n.length,first:n[0]?.seq,last:n.at(-1)?.seq,directory:i.directory}),yr.replayAll(n),F2.info("sync replay complete",{sessionID:m,events:n.length,first:n[0]?.seq,last:n.at(-1)?.seq}),r.json({sessionID:m})}).post("/history",G({summary:"List sync events",description:"List sync events for all aggregates. Keys are aggregate IDs the client already knows about, values are the last known sequence ID. Events with seq > value are returned for those aggregates. Aggregates not listed in the input get their full history.",operationId:"sync.history.list",responses:{200:{description:"Sync events",content:{"application/json":{schema:$(I.array(I.object({id:I.string(),aggregate_id:I.string(),seq:I.number(),type:I.string(),data:I.record(I.string(),I.unknown())})))}}},...P(400)}}),D("json",I.record(I.string(),I.number().int().min(0))),async(r)=>{let i=r.req.valid("json"),n=Object.entries(i),m=n.length>0?z2(g2(...n.map(([l,y])=>nm(d(Zr.aggregate_id,l),M2(Zr.seq,y))))):void 0,c=b.use((l)=>l.select().from(Zr).where(m).orderBy(c0(Zr.seq)).all());return r.json(c)}));var Bl=(r)=>{let i=new V;if(k.QITQODE_EXPERIMENTAL_HTTPAPI){let n=Xm.webHandler().handler,m=Zi.empty();i.get("/question",(c)=>n(c.req.raw,m)),i.post("/question/:requestID/reply",(c)=>n(c.req.raw,m)),i.post("/question/:requestID/reject",(c)=>n(c.req.raw,m)),i.get("/permission",(c)=>n(c.req.raw,m)),i.post("/permission/:requestID/reply",(c)=>n(c.req.raw,m)),i.get("/config/providers",(c)=>n(c.req.raw,m)),i.get("/provider",(c)=>n(c.req.raw,m)),i.get("/provider/auth",(c)=>n(c.req.raw,m)),i.post("/provider/:providerID/oauth/authorize",(c)=>n(c.req.raw,m)),i.post("/provider/:providerID/oauth/callback",(c)=>n(c.req.raw,m)),i.get("/project",(c)=>n(c.req.raw,m)),i.get("/project/current",(c)=>n(c.req.raw,m))}return i.route("/project",n2()).route("/pty",W2(r)).route("/config",V2()).route("/experimental",O2()).route("/session",E2()).route("/qredits",C2()).route("/permission",E1()).route("/workflows",D1()).route("/question",N1()).route("/bash-interactive",U1()).route("/provider",L2()).route("/sync",T2()).route("/",Z2()).route("/",_2()).route("/mcp",H2()).route("/tui",$1()).post("/instance/dispose",G({summary:"Dispose instance",description:"Clean up and dispose the current QitQode instance, releasing all resources.",operationId:"instance.dispose",responses:{200:{description:"Instance disposed",content:{"application/json":{schema:$(I.boolean())}}}}}),async(n)=>{return await M.dispose(),n.json(!0)}).get("/path",G({summary:"Get paths",description:"Retrieve the current working directory and related path information for the QitQode instance.",operationId:"path.get",responses:{200:{description:"Path",content:{"application/json":{schema:$(I.object({home:I.string(),state:I.string(),config:I.string(),worktree:I.string(),directory:I.string()}).meta({ref:"Path"}))}}}}}),async(n)=>{return n.json({home:Vi.Path.home,state:Vi.Path.state,config:Vi.Path.config,worktree:M.worktree,directory:M.directory})}).get("/vcs",G({summary:"Get VCS info",description:"Retrieve version control system (VCS) information for the current project, such as git branch.",operationId:"vcs.get",responses:{200:{description:"VCS info",content:{"application/json":{schema:$(_n.Info)}}}}}),async(n)=>U("InstanceRoutes.vcs.get",n,function*(){let m=yield*_n.Service,[c,l]=yield*C.all([m.branch(),m.defaultBranch()],{concurrency:2});return{branch:c,default_branch:l}})).get("/vcs/diff",G({summary:"Get VCS diff",description:"Retrieve the current git diff for the working tree or against the default branch.",operationId:"vcs.diff",responses:{200:{description:"VCS diff",content:{"application/json":{schema:$(_n.FileDiff.array())}}}}}),D("query",I.object({mode:_n.Mode})),async(n)=>U("InstanceRoutes.vcs.diff",n,function*(){return yield*(yield*_n.Service).diff(n.req.valid("query").mode)})).get("/command",G({summary:"List commands",description:"Get a list of all available commands in the QitQode system.",operationId:"command.list",responses:{200:{description:"List of commands",content:{"application/json":{schema:$(Km.Info.array())}}}}}),async(n)=>U("InstanceRoutes.command.list",n,function*(){return yield*(yield*Km.Service).list()})).get("/agent",G({summary:"List agents",description:"Get a list of all available AI agents in the QitQode system.",operationId:"app.agents",responses:{200:{description:"List of agents",content:{"application/json":{schema:$(yn.Info.array())}}}}}),async(n)=>U("InstanceRoutes.agent.list",n,function*(){return yield*(yield*yn.Service).list()})).get("/skill",G({summary:"List skills",description:"Get a list of all available skills in the QitQode system.",operationId:"app.skills",responses:{200:{description:"List of skills",content:{"application/json":{schema:$(hl.Info.array())}}}}}),async(n)=>U("InstanceRoutes.skill.list",n,function*(){return yield*(yield*hl.Service).all()})).get("/lsp",G({summary:"Get LSP status",description:"Get LSP server status",operationId:"lsp.status",responses:{200:{description:"LSP server status",content:{"application/json":{schema:$(Ym.Status.array())}}}}}),async(n)=>U("InstanceRoutes.lsp.status",n,function*(){return yield*(yield*Ym.Service).status()})).get("/formatter",G({summary:"Get formatter status",description:"Get formatter status",operationId:"formatter.status",responses:{200:{description:"Formatter status",content:{"application/json":{schema:$(Tl.Status.array())}}}}}),async(n)=>U("InstanceRoutes.formatter.status",n,function*(){return yield*(yield*Tl.Service).status()}))};function h2(){let r=new V,i=(n,m)=>e.runPromise(C.gen(function*(){let c=yield*rm.Service;if(m)yield*c.set(n,m);else yield*c.remove(n)}));return r.put("/auth/:providerID",G({summary:"Set auth credentials",description:"Set authentication credentials",operationId:"auth.set",responses:{200:{description:"Successfully set authentication credentials",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod})),D("json",rm.Info.zod),async(n)=>{let m=n.req.valid("param").providerID,c=n.req.valid("json");return await i(m,c),n.json(!0)}).delete("/auth/:providerID",G({summary:"Remove auth credentials",description:"Remove authentication credentials",operationId:"auth.remove",responses:{200:{description:"Successfully removed authentication credentials",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("param",I.object({providerID:lr.zod})),async(n)=>{let m=n.req.valid("param").providerID;return await i(m),n.json(!0)}).get("/doc",Qy(r,{documentation:{info:{title:"qitqode",version:"0.0.3",description:"qitqode api"},openapi:"3.1.1"}})).use(D("query",I.object({directory:I.string().optional(),workspace:I.string().optional()}))).post("/log",G({summary:"Write log",description:"Write a log entry to the server logs with specified level and metadata.",operationId:"app.log",responses:{200:{description:"Log entry written successfully",content:{"application/json":{schema:$(I.boolean())}}},...P(400)}}),D("json",I.object({service:I.string().meta({description:"Service name for the log entry"}),level:I.enum(["debug","info","error","warn"]).meta({description:"Log level"}),message:I.string().meta({description:"Log message"}),extra:I.record(I.string(),I.any()).optional().meta({description:"Additional metadata for the log entry"})})),async(n)=>{let{service:m,level:c,message:l,extra:y}=n.req.valid("json"),j=_.create({service:m});switch(c){case"debug":j.debug(l,y);break;case"info":j.info(l,y);break;case"error":j.error(l,y);break;case"warn":j.warn(l,y);break}return n.json(!0)})}var Fn={};Nr(Fn,{scan:()=>W$,runAll:()=>X$,ExternalImport:()=>Fn,ALL_SOURCES:()=>pl});import rA from"path";import{access as ol}from"fs/promises";import{Database as G$}from"bun:sqlite";function Rm(r){let i=new G$(r,{readonly:!0});return{all:(n,...m)=>i.query(n).all(...m),get:(n,...m)=>i.query(n).get(...m)??null,close:()=>i.close()}}var Om={};Nr(Om,{run:()=>D$,parse:()=>p2,CodexImport:()=>Om});import N$ from"path";var E$=_.create({service:"codex-import"});function B2(r){if(!r)return Date.now();let i=Date.parse(r);return Number.isNaN(i)?Date.now():i}function Q$(r){if(typeof r==="string")try{return JSON.parse(r)}catch{return{raw:r}}if(r&&typeof r==="object")return r;return{}}function p2(r,i){let n=o2(r);if(n.length===0)return;let m,c,l,y,j=0,A,S=[],v=new Map,w=null,N=null,E=()=>{if(w)S.push(w);w=null},Q=(W)=>{if(!N){let Z=Si.ascending();S.push({info:{id:Z,sessionID:i,role:"user",agent:"main",time:{created:W},model:{providerID:lr.make("openai"),modelID:er.make("unknown")}},parts:[]}),N=Z}if(!w||w.info.role!=="assistant")E(),w={info:{id:Si.ascending(),sessionID:i,role:"assistant",time:{created:W,completed:W},parentID:N,modelID:er.make("unknown"),providerID:lr.make("openai"),mode:"build",agent:"main",path:{cwd:m??"",root:m??""},cost:0,tokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}}},parts:[]};return w.info.time.completed=W,w};for(let W of n){let{type:Z,payload:X}=W,K=B2(W.timestamp);if(y===void 0)y=K;if(j=Math.max(j,K),Z==="session_meta"&&X){m=X.cwd,c=`codex-${X.cli_version??"unknown"}`,l=X.id;let q=B2(X.timestamp);if(y===void 0||q<y)y=q;continue}if(Z!=="response_item"||!X)continue;let R=X.type;if(R==="message"){let q=X.role,z=X.content??[];if(q==="user"||q==="developer"){let L=z.filter((x)=>(x.type==="input_text"||x.type==="text")&&typeof x.text==="string"&&x.text.trim()).map((x)=>x.text);if(L.length===0)continue;E();let f=Si.ascending(),hr=L.map((x)=>({part:{id:pi.ascending(),sessionID:i,messageID:f,type:"text",text:x},time:K})),Yr={id:f,sessionID:i,role:"user",agent:"main",time:{created:K},model:{providerID:lr.make("openai"),modelID:er.make("unknown")}};if(S.push({info:Yr,parts:hr}),N=f,!A)A=x2(L);continue}if(q==="assistant"){let L=Q(K);for(let f of z)if((f.type==="output_text"||f.type==="text")&&typeof f.text==="string"&&f.text.trim())L.parts.push({part:{id:pi.ascending(),sessionID:i,messageID:L.info.id,type:"text",text:f.text},time:K});continue}continue}if(R==="reasoning"){let q=Q(K),L=X.summary?.map((f)=>f.text??"").join("")??"";if(L.trim())q.parts.push({part:{id:pi.ascending(),sessionID:i,messageID:q.info.id,type:"reasoning",text:L,time:{start:K,end:K}},time:K});continue}if(R==="function_call"||R==="custom_tool_call"){let q=Q(K),z=X.call_id??pi.ascending(),L=X.name??"unknown",f=R==="function_call"?Q$(X.arguments):{raw:X.input??""},hr={id:pi.ascending(),sessionID:i,messageID:q.info.id,type:"tool",callID:z,tool:L,state:{status:"pending",input:f,raw:JSON.stringify(f)}};q.parts.push({part:hr,time:K}),v.set(z,{part:hr,start:K});continue}if(R==="function_call_output"||R==="custom_tool_call_output"){let q=X.call_id,z=q?v.get(q):void 0;if(!z)continue;let L=typeof X.output==="string"?X.output:JSON.stringify(X.output??"");z.part.state={status:"completed",input:z.part.state.input??{},output:L,title:z.part.tool,metadata:{},time:{start:z.start,end:K}};continue}}if(E(),S.length===0)return;return{cwd:m??"",version:c??"codex",sessionUuid:l,title:A??"Codex session",timeCreated:y??Date.now(),timeUpdated:j||y||Date.now(),messages:S}}var D$=k2({source:"codex",root:N$.join(Vi.Path.home,".codex","sessions"),pattern:"**/*.jsonl",log:E$,logMessage:"codex import",parse:p2});var qm={};Nr(qm,{run:()=>C$,OpencodeImport:()=>qm,DEFAULT_DB_PATH:()=>Lm});import{access as U$}from"fs/promises";var P$=_.create({service:"opencode-import"}),Lm=(()=>{return`${process.env.XDG_DATA_HOME||`${process.env.HOME||process.env.USERPROFILE}/.local/share`}/opencode/opencode.db`})(),u2=200;async function C$(r){let i=r?.dbPath??Lm,n=a2();if(!await U$(i).then(()=>!0).catch(()=>!1))return n;let m;try{m=Rm(i)}catch(c){return n.errors.push(`failed to open ${i}: ${c}`),n}try{if(!m.get("SELECT name FROM sqlite_master WHERE type='table' AND name='session'"))return n.errors.push(`${i}: missing 'session' table`),n;let l=m.all("SELECT * FROM session ORDER BY time_created DESC");for(let y of l){n.scanned++;try{let j=y.id,A=t2("opencode",j);if(A&&A.source_mtime===y.time_updated&&!r?.force){n.skipped++;continue}let S=b2("opencode",A);A=S.existing;let v=S.existingUpdated,w=await d2(y.directory),N=Date.now(),E=m.all("SELECT * FROM message WHERE session_id = ? ORDER BY id",y.id);if(E.length===0){n.skipped++;continue}let Q=E.map((Z)=>Z.id),W=[];for(let Z=0;Z<Q.length;Z+=u2){let X=Q.slice(Z,Z+u2),K=X.map(()=>"?").join(","),R=m.all(`SELECT * FROM part WHERE session_id = ? AND message_id IN (${K}) ORDER BY id`,y.id,...X);W.push(...R)}if(b.transaction((Z)=>{if(e2(Z,w,y.time_created,y.time_updated),A)s2(Z,A,y.id),f2(Z,y.id,{projectId:w.id,directory:y.directory,version:y.version,existingUpdated:v,timeUpdated:y.time_updated});else Z.insert(nr).values({id:y.id,project_id:w.id,parent_id:y.parent_id,slug:y.slug,directory:y.directory,title:y.title,version:y.version,time_created:y.time_created,time_updated:y.time_updated}).onConflictDoUpdate({target:nr.id,set:{project_id:w.id,directory:y.directory,time_updated:y.time_updated}}).run();for(let X of E){let K=typeof X.data==="string"?JSON.parse(X.data):X.data;Z.insert(Xi).values({id:X.id,session_id:y.id,agent_id:"main",time_created:X.time_created,data:K}).onConflictDoUpdate({target:Xi.id,set:{data:K,time_created:X.time_created}}).run()}for(let X of W){let K=typeof X.data==="string"?JSON.parse(X.data):X.data;Z.insert(Ki).values({id:X.id,message_id:X.message_id,session_id:y.id,time_created:X.time_created,data:K}).onConflictDoUpdate({target:Ki.id,set:{data:K,time_created:X.time_created}}).run()}Z.insert(In).values({source:"opencode",source_key:j,session_id:y.id,source_path:i,source_mtime:y.time_updated,time_imported:N,message_ids:Q}).onConflictDoUpdate({target:[In.source,In.source_key],set:{source_mtime:y.time_updated,time_imported:N,message_ids:Q}}).run()}),A)n.resynced++;else n.imported++}catch(j){n.errors.push(`session ${y.id}: ${j}`)}}}finally{m.close()}if(n.imported+n.resynced>0||n.errors.length>0)P$.info("opencode import",{...n,errors:n.errors.length});return n}var _m=_.create({service:"external-import"}),pl=["cc","codex","opencode"];async function W$(){let r=(c)=>b.use((l)=>l.select({n:iA()}).from(In).where(d(In.source,c)).get())?.n??0,i={cc:{available:!1,sessions:0,imported:0},codex:{available:!1,sessions:0,imported:0},opencode:{available:!1,sessions:0,imported:0}},n=rA.join(Vi.Path.home,".claude","projects");if(await ol(n).then(()=>!0).catch(()=>!1))try{let c=await kl.scan("*/*.jsonl",{cwd:n,absolute:!1});i.cc={available:!0,sessions:c.length,imported:r("cc")}}catch(c){_m.warn("cc scan failed",{error:String(c)})}let m=rA.join(Vi.Path.home,".codex","sessions");if(await ol(m).then(()=>!0).catch(()=>!1))try{let c=await kl.scan("**/*.jsonl",{cwd:m,absolute:!1});i.codex={available:!0,sessions:c.length,imported:r("codex")}}catch(c){_m.warn("codex scan failed",{error:String(c)})}if(await ol(Lm).then(()=>!0).catch(()=>!1))try{let c=Rm(Lm);try{let l=c.get("SELECT count(*) AS n FROM session");i.opencode={available:!0,sessions:l?.n??0,imported:r("opencode")}}finally{c.close()}}catch(c){_m.warn("opencode scan failed",{error:String(c)})}return i}function xl(){return{scanned:0,imported:0,resynced:0,skipped:0,errors:[]}}async function X$(r){let i=new Set(r?.sources??pl),n={cc:xl(),codex:xl(),opencode:xl()};for(let c of pl){if(!i.has(c))continue;try{if(c==="cc")n.cc=await nA.run({force:r?.force});else if(c==="codex")n.codex=await Om.run({force:r?.force});else n.opencode=await qm.run({force:r?.force})}catch(l){_m.warn(`${c} import failed`,{error:String(l)}),n[c].errors.push(String(l))}}let m={scanned:n.cc.scanned+n.codex.scanned+n.opencode.scanned,imported:n.cc.imported+n.codex.imported+n.opencode.imported,resynced:n.cc.resynced+n.codex.resynced+n.opencode.resynced,errors:n.cc.errors.length+n.codex.errors.length+n.opencode.errors.length};if(m.imported+m.resynced>0||m.errors>0)_m.info("external import",m);return n}var nc=_.create({service:"server"}),K$=yi.define("global.disposed",I.object({})),cA=F(()=>{let r=Number(process.env.QITQODE_GLOBAL_EVENT_CONNECT_LIMIT)||60,i=Number(process.env.QITQODE_GLOBAL_EVENT_CONNECT_WINDOW_MS)||60000,n=new Jm(r,i);return new V().get("/health",G({summary:"Get health",description:"Get health information about the QitQode server.",operationId:"global.health",responses:{200:{description:"Health information",content:{"application/json":{schema:$(I.object({healthy:I.literal(!0),version:I.string()}))}}}}}),async(m)=>{return m.json({healthy:!0,version:mA})}).get("/event",G({summary:"Get global events",description:"Subscribe to global events from the QitQode system using server-sent events.",operationId:"global.event",responses:{200:{description:"Event stream",content:{"text/event-stream":{schema:$(I.object({directory:I.string(),project:I.string().optional(),workspace:I.string().optional(),payload:I.union([...yi.payloads(),...yr.payloads()])}).meta({ref:"GlobalEvent"}))}}}}}),async(m)=>{let c=m.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"local",l=n.check(c);if(!l.allowed)return nc.warn("global event connection rate limited",{key:c,retryAfterSeconds:l.retryAfterSeconds}),m.header("Retry-After",String(l.retryAfterSeconds)),m.json({error:"Too many reconnect attempts, slow down"},429);return nc.info("global event connected"),m.header("Cache-Control","no-cache, no-transform"),m.header("X-Accel-Buffering","no"),m.header("X-Content-Type-Options","nosniff"),rc(m,{connected:{directory:"global",payload:{type:qn.Connected.type,properties:{}}},heartbeat:{directory:"global",payload:{type:qn.Heartbeat.type,properties:{}}},subscribe(y){function j(A){y(A)}return Lr.on("event",j),()=>Lr.off("event",j)},onDrop(y){nc.warn("global event dropped under backpressure",{dropped:y})},onDisconnect(y,j){nc.info("global event disconnected",{buffered:y,bufferedBytes:j})}})}).get("/config",G({summary:"Get global configuration",description:"Retrieve the current global QitQode configuration settings and preferences.",operationId:"global.config.get",responses:{200:{description:"Get global config info",content:{"application/json":{schema:$(mr.Info)}}}}}),async(m)=>{return m.json(await e.runPromise(mr.Service.use((c)=>c.getGlobal())))}).patch("/config",G({summary:"Update global configuration",description:"Update global QitQode configuration settings and preferences.",operationId:"global.config.update",responses:{200:{description:"Successfully updated global config",content:{"application/json":{schema:$(mr.Info)}}},...P(400)}}),D("json",mr.Info),async(m)=>{let c=m.req.valid("json"),l=await e.runPromise(mr.Service.use((y)=>y.updateGlobal(c)));return m.json(l)}).post("/dispose",G({summary:"Dispose instance",description:"Clean up and dispose all QitQode instances, releasing all resources.",operationId:"global.dispose",responses:{200:{description:"Global disposed",content:{"application/json":{schema:$(I.boolean())}}}}}),async(m)=>{return await M.disposeAll(),Lr.emit("event",{directory:"global",payload:{type:K$.type,properties:{}}}),m.json(!0)}).post("/upgrade",G({summary:"Upgrade qitqode",description:"Upgrade qitqode to the specified version or latest if not specified.",operationId:"global.upgrade",responses:{200:{description:"Upgrade result",content:{"application/json":{schema:$(I.union([I.object({success:I.literal(!0),version:I.string()}),I.object({success:I.literal(!1),error:I.string()})]))}}},...P(400)}}),D("json",I.object({target:I.string().optional()})),async(m)=>{let c=await e.runPromise(ul.Service.use((y)=>C.gen(function*(){let j=yield*y.method();if(j==="unknown")return{success:!1,status:400,error:"Unknown installation method"};let A=m.req.valid("json").target||(yield*y.latest(j)),S=yield*C.catch(y.upgrade(j,A).pipe(C.as({success:!0,version:A})),(v)=>C.succeed({success:!1,status:500,error:v instanceof Error?v.message:String(v)}));if(!S.success)return S;return{...S,status:200}})));if(!c.success)return m.json({success:!1,error:c.error},c.status);let l=c.version;return Lr.emit("event",{directory:"global",payload:{type:ul.Event.Updated.type,properties:{version:l}}}),m.json({success:!0,version:l})}).get("/import/scan",G({summary:"Scan external session sources",description:"Detect availability and session counts of external AI tool session stores (Claude Code, Codex, opencode). Read-only.",operationId:"global.import.scan",responses:{200:{description:"Per-source availability and counts",content:{"application/json":{schema:$(I.record(I.enum(["cc","codex","opencode"]),I.object({available:I.boolean(),sessions:I.number(),imported:I.number()})))}}}}}),async(m)=>{return m.json(await Fn.scan())}).post("/import/run",G({summary:"Import external sessions",description:"Import sessions from external AI tools (Claude Code, Codex, opencode) into qitqode. Idempotent; pass force to re-sync. Per-source failures are not thrown as HTTP errors \u2014 they are collected into the corresponding stats.errors[] while other sources continue.",operationId:"global.import.run",responses:{200:{description:"Per-source import stats",content:{"application/json":{schema:$(I.record(I.enum(["cc","codex","opencode"]),I.object({scanned:I.number(),imported:I.number(),resynced:I.number(),skipped:I.number(),errors:I.array(I.string())})))}}},...P(400)}}),D("json",I.object({sources:I.array(I.enum(["cc","codex","opencode"])).optional(),force:I.boolean().optional()})),async(m)=>{let{sources:c,force:l}=m.req.valid("json");return m.json(await Fn.runAll({sources:c,force:l}))})});var gn={};Nr(gn,{websocket:()=>q$,http:()=>L$,ServerProxy:()=>gn});var H$=new Set(["connection","keep-alive","proxy-authenticate","proxy-authorization","proxy-connection","te","trailer","transfer-encoding","upgrade","host","authorization"]);function Z$(r,i){let n=new Headers(r.headers);for(let m of H$)n.delete(m);if(n.delete("accept-encoding"),n.delete("x-qitqode-directory"),n.delete("x-qitqode-workspace"),!i)return n;for(let[m,c]of new Headers(i).entries())n.set(m,c);return n}function V$(r){let i=r.headers.get("sec-websocket-protocol");if(!i)return[];return i.split(",").map((n)=>n.trim()).filter(Boolean)}function Y$(r){let i=new URL(r);if(i.protocol==="http:")i.protocol="ws:";if(i.protocol==="https:")i.protocol="wss:";return i.toString()}function J$(r,i){if(i instanceof Blob)return i.arrayBuffer().then((n)=>r.send(n));return r.send(i)}var R$=(r)=>new V().get("/__workspace_ws",r((i)=>{let n=i.req.header("x-qitqode-proxy-url"),m=[],c;return{onOpen(l,y){if(!n){y.close(1011,"missing proxy target");return}c=new WebSocket(n,V$(i.req.raw)),c.binaryType="arraybuffer",c.onopen=()=>{for(let j of m)c?.send(j);m.length=0},c.onmessage=(j)=>{J$(y,j.data)},c.onerror=()=>{y.close(1011,"proxy error")},c.onclose=(j)=>{y.close(j.code,j.reason)}},onMessage(l){let y=l.data;if(typeof y!=="string"&&!(y instanceof Uint8Array)&&!(y instanceof ArrayBuffer))return;if(c?.readyState===WebSocket.OPEN){c.send(y);return}m.push(y)},onClose(l){c?.close(l.code,l.reason)}}})),O$=_.Default.clone().tag("service","server-proxy");async function L$(r,i,n,m){if(!p.isSyncing(m))return new Response(`broken sync connection for workspace: ${m}`,{status:503,headers:{"content-type":"text/plain; charset=utf-8"}});return fetch(new Request(r,{method:n.method,headers:Z$(n,i),body:n.method==="GET"||n.method==="HEAD"?void 0:n.body,redirect:"manual",signal:n.signal})).then((c)=>{let l=y1(c.headers),y=new Headers(c.headers);return y.delete("content-encoding"),y.delete("content-length"),(l?j1(m,l,n.signal):Promise.resolve()).then(async()=>{return new Response(c.body,{status:c.status,statusText:c.statusText,headers:y})})})}function q$(r,i,n,m,c){let l=new URL(m.url);l.pathname="/__workspace_ws",l.search="";let y=new Headers(m.headers);y.set("x-qitqode-proxy-url",Y$(i));for(let[j,A]of new Headers(n).entries())y.set(j,A);return O$.info("proxy websocket",{request:m.url,target:String(i)}),R$(r).fetch(new Request(l,{method:m.method,headers:y,signal:m.signal}),c)}var _$=[{path:"/session/status",action:"forward"},{method:"GET",path:"/session",action:"local"}];function F$(r,i){for(let n of _$){if(n.method&&n.method!==r)continue;if(n.exact?i===n.path:i===n.path||i.startsWith(n.path+"/"))return n.action==="local"}return!1}function g$(r){if(r.pathname==="/session/status")return null;let i=r.pathname.match(/^\/session\/([^/]+)(?:\/|$)/)?.[1];if(!i)return null;return br.make(i)}async function z$(r){let i=g$(r);if(!i)return null;return(await e.runPromise(J.Service.use((m)=>m.get(i)).pipe(C.withSpan("WorkspaceRouter.lookup"))).catch(()=>{return}))?.workspaceID}function lA(r){let i=_.create({service:"workspace-router"});return async(n,m)=>{let c=new URL(n.req.url),y=await z$(c)||c.searchParams.get("workspace");if(!y||c.pathname.startsWith("/console")||k.QITQODE_WORKSPACE_ID)return m();let j=await p.get(qr.make(y));if(!j)return new Response(`Workspace not found: ${y}`,{status:500,headers:{"content-type":"text/plain; charset=utf-8"}});if(F$(n.req.method,c.pathname))return m();let S=await(await _i(j.projectID,j.type)).target(j);if(S.type==="local")return Dn.provide({workspaceID:qr.make(y),fn:()=>M.provide({directory:S.directory,init:()=>e.runPromise(xi),async fn(){return m()}})});let v=new URL(S.url);if(v.pathname=`${v.pathname.replace(/\/$/,"")}${c.pathname}`,v.search=c.search,v.hash=c.hash,v.searchParams.delete("workspace"),v.searchParams.delete("auth_token"),i.info("workspace proxy forwarding",{workspaceID:y,request:c.toString(),target:String(S.url),proxy:v.toString()}),n.req.header("upgrade")?.toLowerCase()==="websocket")return gn.websocket(r,v,S.headers,n.req.raw,n.env);let w=new Headers(n.req.raw.headers);w.delete("x-qitqode-workspace");let N=new Request(n.req.raw,{headers:w});return gn.http(v,S.headers,N,j.id)}}function al(r){return async(i,n)=>{let m=i.req.query("directory")||i.req.header("x-qitqode-directory")||process.cwd(),c=yA.resolve((()=>{try{return decodeURIComponent(m)}catch{return m}})());if(!k.QITQODE_SERVER_PASSWORD){let l=Wi.resolve(process.cwd());if(!Wi.contains(l,c))return i.json({error:"Access denied: directory must be within the server's working directory"},403)}return Dn.provide({workspaceID:r,async fn(){return M.provide({directory:c,init:()=>e.runPromise(xi),async fn(){return n()}})}})}}var dl=_.create({service:"server.workspace"}),IA=F(()=>new V().get("/adaptor",G({summary:"List workspace adaptors",description:"List all available workspace adaptors for the current project.",operationId:"experimental.workspace.adaptor.list",responses:{200:{description:"Workspace adaptors",content:{"application/json":{schema:$(I.array(I.object({type:I.string(),name:I.string(),description:I.string()})))}}}}}),async(r)=>{return r.json(await jA(M.project.id))}).post("/",G({summary:"Create workspace",description:"Create a workspace for the current project.",operationId:"experimental.workspace.create",responses:{200:{description:"Workspace created",content:{"application/json":{schema:$(p.Info)}}},...P(400)}}),D("json",p.create.schema.omit({projectID:!0})),async(r)=>{let i=r.req.valid("json"),n=await p.create({projectID:M.project.id,...i});return r.json(n)}).get("/",G({summary:"List workspaces",description:"List all workspaces.",operationId:"experimental.workspace.list",responses:{200:{description:"Workspaces",content:{"application/json":{schema:$(I.array(p.Info))}}}}}),async(r)=>{return r.json(p.list(M.project))}).get("/status",G({summary:"Workspace status",description:"Get connection status for workspaces in the current project.",operationId:"experimental.workspace.status",responses:{200:{description:"Workspace status",content:{"application/json":{schema:$(I.array(p.ConnectionStatus))}}}}}),async(r)=>{let i=new Set(p.list(M.project).map((n)=>n.id));return r.json(p.status().filter((n)=>i.has(n.workspaceID)))}).delete("/:id",G({summary:"Remove workspace",description:"Remove an existing workspace.",operationId:"experimental.workspace.remove",responses:{200:{description:"Workspace removed",content:{"application/json":{schema:$(p.Info.optional())}}},...P(400)}}),D("param",I.object({id:p.Info.shape.id})),async(r)=>{let{id:i}=r.req.valid("param");return r.json(await p.remove(i))}).post("/:id/session-restore",G({summary:"Restore session into workspace",description:"Replay a session's sync events into the target workspace in batches.",operationId:"experimental.workspace.sessionRestore",responses:{200:{description:"Session replay started",content:{"application/json":{schema:$(I.object({total:I.number().int().min(0)}))}}},...P(400)}}),D("param",I.object({id:p.Info.shape.id})),D("json",p.sessionRestore.schema.omit({workspaceID:!0})),async(r)=>{let{id:i}=r.req.valid("param"),n=r.req.valid("json");dl.info("session restore route requested",{workspaceID:i,sessionID:n.sessionID,directory:M.directory});try{let m=await p.sessionRestore({workspaceID:i,...n});return dl.info("session restore route complete",{workspaceID:i,sessionID:n.sessionID,total:m.total}),r.json(m)}catch(m){throw dl.error("session restore route failed",{workspaceID:i,sessionID:n.sessionID,error:m0(m)}),m}}));globalThis.AI_SDK_LOG_WARNINGS=!1;dc();var M$=_.create({service:"server"}),T$=F(()=>tl({}));function h$(r){try{return new URL(r).hostname}catch{return}}function tl(r){let i=new V().onError(hj).use(kj({hostname:r.hostname,mdnsDomain:r.mdnsDomain,allowedHosts:r.cors?.map(h$).filter((m)=>!!m)})).use(xj(r)).use(oj).use(Bj).use(pj).route("/global",cA()),n=My.create(i);if(k.QITQODE_WORKSPACE_ID)return{app:i.use(al(k.QITQODE_WORKSPACE_ID?qr.make(k.QITQODE_WORKSPACE_ID):void 0)).use(I1).route("/",Bl(n.upgradeWebSocket)),runtime:n};return{app:i.route("/",h2()).route("/",new V().use(al()).route("/experimental/workspace",IA()).use(lA(n.upgradeWebSocket)).route("/",Bl(n.upgradeWebSocket))),runtime:n}}async function B$(){let{app:r}=tl({});return await wc(r,{documentation:{info:{title:"qitqode",version:"1.0.0",description:"qitqode api"},openapi:"3.1.1"}})}var AA;async function o$(r){let n=await tl(r).runtime.listen(r),m=new URL("http://localhost");m.hostname=r.hostname,m.port=String(n.port),AA=m;let c=r.mdns&&n.port&&r.hostname!=="127.0.0.1"&&r.hostname!=="localhost"&&r.hostname!=="::1";if(c)Nn.publish(n.port,r.mdnsDomain);else if(r.mdns)M$.warn("mDNS enabled but hostname is loopback; skipping mDNS publish");let l;return{hostname:r.hostname,port:n.port,url:m,stop(y){return l??=(async()=>{if(c)Nn.unpublish();await n.stop(y)})(),l}}}
14
14
  export{T$ as Yf,B$ as Zf,AA as _f,o$ as $f,bl as ag};