@qitqode/qitqode-android-arm64 0.1.22 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/{chunk-mbmc1mg0.js → chunk-0136n3jt.js} +1 -1
- package/bundle/{chunk-wm3b050v.js → chunk-05badzhy.js} +1 -1
- package/bundle/{chunk-p64fb4rm.js → chunk-07szgr15.js} +1 -1
- package/bundle/{chunk-jtbf88gw.js → chunk-0svy8w30.js} +2 -2
- package/bundle/{chunk-c88rh38d.js → chunk-0vhsc0yh.js} +1 -1
- package/bundle/{chunk-y0fxwgrv.js → chunk-101y7ce2.js} +1 -1
- package/bundle/{chunk-x6gzygc3.js → chunk-12cd1yj9.js} +1 -1
- package/bundle/chunk-1by6y9tm.js +2 -0
- package/bundle/{chunk-fkdbba26.js → chunk-1eg8mr1q.js} +1 -1
- package/bundle/{chunk-cx0z3mm3.js → chunk-1gg4c0pq.js} +1 -1
- package/bundle/{chunk-cckshvkb.js → chunk-1gjh45v5.js} +1 -1
- package/bundle/chunk-1p7wqmxp.js +2 -0
- package/bundle/{chunk-th189x63.js → chunk-1v47v7vm.js} +1 -1
- package/bundle/{chunk-zt8kghd2.js → chunk-1vx26nt2.js} +1 -1
- package/bundle/{chunk-ee5r4h0v.js → chunk-1w8b88y5.js} +1 -1
- package/bundle/{chunk-mt8zem33.js → chunk-21hnx8rx.js} +1 -1
- package/bundle/chunk-22pvftx8.js +2 -0
- package/bundle/{chunk-j2k4wxsk.js → chunk-22tf95dw.js} +1 -1
- package/bundle/{chunk-hrnx60em.js → chunk-22vvjp4g.js} +2 -2
- package/bundle/{chunk-3nc9wy1m.js → chunk-24r5h0fx.js} +2 -2
- package/bundle/{chunk-kywg73qz.js → chunk-26m5yn5d.js} +1 -1
- package/bundle/{chunk-n4spe0sv.js → chunk-26mt118z.js} +1 -1
- package/bundle/{chunk-t2n6fmpy.js → chunk-29hmwttd.js} +2 -2
- package/bundle/{chunk-abc7ccfd.js → chunk-2adsn1ca.js} +1 -1
- package/bundle/chunk-2bce1njy.js +2 -0
- package/bundle/{chunk-6hkv9411.js → chunk-2e76kpa6.js} +1 -1
- package/bundle/{chunk-7276th89.js → chunk-2e9a9brg.js} +1 -1
- package/bundle/{chunk-ne8ftsv3.js → chunk-2es79khv.js} +3 -3
- package/bundle/{chunk-6v4mhtha.js → chunk-2qj66wf5.js} +1 -1
- package/bundle/{chunk-x1naayst.js → chunk-2qy760rf.js} +1 -1
- package/bundle/{chunk-3f6t3wde.js → chunk-2wcwbp3t.js} +152 -152
- package/bundle/{chunk-6pe3xzkk.js → chunk-338hbnza.js} +1 -1
- package/bundle/{chunk-5a80qybt.js → chunk-36c2avm4.js} +1 -1
- package/bundle/{chunk-9fdv5d8a.js → chunk-381j1hqf.js} +1 -1
- package/bundle/{chunk-y2tnzn1y.js → chunk-3cpqdake.js} +1 -1
- package/bundle/chunk-3gsvbfqz.js +2 -0
- package/bundle/chunk-3j6nrrva.js +4 -0
- package/bundle/{chunk-9g05wsae.js → chunk-3ne6j2h5.js} +1 -1
- package/bundle/{chunk-b5h8vd5n.js → chunk-3sem578c.js} +1 -1
- package/bundle/{chunk-cm31dbwq.js → chunk-3vgnqaem.js} +1 -1
- package/bundle/{chunk-c9afcdba.js → chunk-3w9k7yxx.js} +1 -1
- package/bundle/{chunk-xtjsfqam.js → chunk-3wzpdvpg.js} +1 -1
- package/bundle/{chunk-fyd31m33.js → chunk-3xf7q4ww.js} +1 -1
- package/bundle/chunk-3xrhxyz9.js +2 -0
- package/bundle/chunk-3zdyrnvp.js +2 -0
- package/bundle/{chunk-73d0dy03.js → chunk-44amvtcs.js} +1 -1
- package/bundle/chunk-4nhbgva1.js +2 -0
- package/bundle/{chunk-1zb95qfx.js → chunk-576zfh1s.js} +1 -1
- package/bundle/{chunk-n1wawwry.js → chunk-58w4dhb6.js} +1 -1
- package/bundle/chunk-5ch23jj3.js +2 -0
- package/bundle/{chunk-rvz05kxy.js → chunk-5d18fd4p.js} +1 -1
- package/bundle/{chunk-8x6x3g16.js → chunk-5dpev64z.js} +1 -1
- package/bundle/chunk-5hzkd9te.js +2 -0
- package/bundle/{chunk-t813v629.js → chunk-5vwhfa42.js} +1 -1
- package/bundle/{chunk-gzwcj7c9.js → chunk-5vyper2h.js} +1 -1
- package/bundle/{chunk-bjw39da9.js → chunk-5wr5gpaa.js} +1 -1
- package/bundle/{chunk-xjdxyeja.js → chunk-5x19yah0.js} +1 -1
- package/bundle/{chunk-zfw873yt.js → chunk-62yja34m.js} +1 -1
- package/bundle/{chunk-h9ftcgs2.js → chunk-63pvqy8n.js} +3 -3
- package/bundle/chunk-662x3gq6.js +2 -0
- package/bundle/{chunk-xa0f5g9z.js → chunk-6an0pk19.js} +1 -1
- package/bundle/{chunk-4gfryje2.js → chunk-6j07cgna.js} +1 -1
- package/bundle/chunk-6ybqwnp7.js +2 -0
- package/bundle/{chunk-4se8cbmb.js → chunk-70gfpkxv.js} +1 -1
- package/bundle/chunk-7365jzj1.js +2 -0
- package/bundle/{chunk-x1dfc7qd.js → chunk-799c17nk.js} +1 -1
- package/bundle/chunk-7amvpgng.js +2 -0
- package/bundle/{chunk-68jsyydc.js → chunk-7bxe5s20.js} +1 -1
- package/bundle/chunk-7dcz5ytp.js +2 -0
- package/bundle/chunk-7h7bwjmm.js +2 -0
- package/bundle/{chunk-ck65rcxb.js → chunk-7m4camry.js} +1 -1
- package/bundle/{chunk-vpp88hhd.js → chunk-7n994qss.js} +209 -209
- package/bundle/{chunk-s1mx3bkw.js → chunk-7pr4jxkn.js} +1 -1
- package/bundle/{chunk-98nh88th.js → chunk-7tb9fjvq.js} +2 -2
- package/bundle/{chunk-dgsg31vm.js → chunk-7tthc48p.js} +1 -1
- package/bundle/chunk-7vk5fhhv.js +2 -0
- package/bundle/chunk-7vqw9wge.js +2 -0
- package/bundle/chunk-7vxk5t11.js +2 -0
- package/bundle/{chunk-xz7dccwp.js → chunk-83fm5xcn.js} +1 -1
- package/bundle/{chunk-awdpkgxf.js → chunk-863s0tqa.js} +1 -1
- package/bundle/{chunk-3degq6rv.js → chunk-87pzwjjj.js} +3 -3
- package/bundle/{chunk-78wt9ad8.js → chunk-88kt6qmd.js} +1 -1
- package/bundle/chunk-8b644ae2.js +2 -0
- package/bundle/{chunk-mbkw9s6e.js → chunk-8e2wwdgb.js} +1 -1
- package/bundle/{chunk-hmm1m733.js → chunk-8hh5ejmr.js} +2 -2
- package/bundle/{chunk-y3x5m3e8.js → chunk-8k4mkrdw.js} +1 -1
- package/bundle/{chunk-j6cpsxva.js → chunk-9jjjzmvn.js} +1 -1
- package/bundle/{chunk-8r4xs1q9.js → chunk-9n6f9n1c.js} +1 -1
- package/bundle/{chunk-pp44xnd7.js → chunk-9tq5yt3t.js} +1 -1
- package/bundle/{chunk-qq9pvscd.js → chunk-9y65kbcf.js} +2 -2
- package/bundle/{chunk-vqxyph4q.js → chunk-9yaw0hbp.js} +1 -1
- package/bundle/{chunk-18xhxdsh.js → chunk-9zg3y89v.js} +1 -1
- package/bundle/{chunk-bbznk59q.js → chunk-a3te67a5.js} +2 -2
- package/bundle/{chunk-h7rxnbf0.js → chunk-ac69b9tm.js} +1 -1
- package/bundle/{chunk-50aznc8e.js → chunk-afpwjn78.js} +2 -2
- package/bundle/{chunk-6r4gn18m.js → chunk-agx5m1ev.js} +1 -1
- package/bundle/{chunk-en7nxqvn.js → chunk-agyxa9nj.js} +1 -1
- package/bundle/{chunk-61ndvjmm.js → chunk-an5sr6gw.js} +1 -1
- package/bundle/{chunk-2p6w3w8f.js → chunk-apv1v4tk.js} +2 -2
- package/bundle/{chunk-n9gzj085.js → chunk-ar1by07g.js} +1 -1
- package/bundle/chunk-av2q0ffj.js +2 -0
- package/bundle/{chunk-bn6mg34g.js → chunk-avk3wfch.js} +2 -2
- package/bundle/{chunk-n68xjm4p.js → chunk-ax9yyznf.js} +1 -1
- package/bundle/chunk-azna4wdf.js +2 -0
- package/bundle/chunk-b192q4m0.js +2 -0
- package/bundle/{chunk-b5x3zghc.js → chunk-b2k9yafd.js} +2 -2
- package/bundle/{chunk-fjtq8164.js → chunk-b8z4hgq0.js} +1 -1
- package/bundle/chunk-bh46627y.js +2 -0
- package/bundle/{chunk-6w15nfph.js → chunk-bkaprkf6.js} +1 -1
- package/bundle/{chunk-0ddhkapd.js → chunk-bqeyh2gx.js} +2 -2
- package/bundle/{chunk-tcp31yv0.js → chunk-brrtcqrc.js} +1 -1
- package/bundle/{chunk-m79gd4yt.js → chunk-bwgnmy92.js} +1 -1
- package/bundle/{chunk-1eqcgkyq.js → chunk-bwvjft74.js} +1 -1
- package/bundle/chunk-c267ggx2.js +2 -0
- package/bundle/{chunk-60dxyp37.js → chunk-c38ppnm8.js} +1 -1
- package/bundle/{chunk-4xpfmpjf.js → chunk-c546xxjk.js} +1 -1
- package/bundle/chunk-c6kxegws.js +2 -0
- package/bundle/{chunk-w8xaw2dv.js → chunk-c7dt464m.js} +1 -1
- package/bundle/{chunk-ha5qct06.js → chunk-cbfjjbfd.js} +1 -1
- package/bundle/chunk-cek3cfz4.js +2 -0
- package/bundle/{chunk-x8w2xgx6.js → chunk-cwkdc1cc.js} +1 -1
- package/bundle/{chunk-jrwfx6d8.js → chunk-cz8nnm2a.js} +1 -1
- package/bundle/{chunk-z9b0ydw1.js → chunk-dn1jryxz.js} +1 -1
- package/bundle/{chunk-s4epqtge.js → chunk-dq1wprmb.js} +1 -1
- package/bundle/{chunk-dhvwrrqx.js → chunk-dsny9dh8.js} +2 -2
- package/bundle/{chunk-db7hykjs.js → chunk-ecczet3b.js} +1 -1
- package/bundle/{chunk-qryeqw9s.js → chunk-ejy5404v.js} +1 -1
- package/bundle/{chunk-qwf258sw.js → chunk-eqed7tvt.js} +1 -1
- package/bundle/{chunk-ht1hqsaa.js → chunk-erh9y0sx.js} +1 -1
- package/bundle/{chunk-skjx57kv.js → chunk-ete0y35c.js} +1 -1
- package/bundle/{chunk-qe8zp79w.js → chunk-f1mmzzsn.js} +1 -1
- package/bundle/chunk-f66cvq2q.js +2 -0
- package/bundle/{chunk-bdzgtazc.js → chunk-f958hsha.js} +1 -1
- package/bundle/{chunk-2bbvvh0d.js → chunk-febbrhev.js} +1 -1
- package/bundle/{chunk-j1kqhxnq.js → chunk-fhjpfzjc.js} +1 -1
- package/bundle/{chunk-c2w3bqsa.js → chunk-fnect0ny.js} +1 -1
- package/bundle/{chunk-t7v8wzr9.js → chunk-fp5mvrrx.js} +2 -2
- package/bundle/chunk-fq4v97xn.js +2 -0
- package/bundle/{chunk-6nhgkw5r.js → chunk-fvwys8ej.js} +1 -1
- package/bundle/{chunk-dcyzpkww.js → chunk-fw1f6br4.js} +1 -1
- package/bundle/{chunk-jee9y4t0.js → chunk-fzzze6zd.js} +1 -1
- package/bundle/{chunk-8wzc27e3.js → chunk-g0vzdt58.js} +1 -1
- package/bundle/{chunk-hf0gny5t.js → chunk-g2ec45xj.js} +1 -1
- package/bundle/chunk-g3pb8rad.js +2 -0
- package/bundle/{chunk-3xbtg0hn.js → chunk-g5g9r3v5.js} +1 -1
- package/bundle/{chunk-yy91rm3y.js → chunk-g6gs7cc6.js} +1 -1
- package/bundle/{chunk-h5wh2d49.js → chunk-g6tw5dvr.js} +1 -1
- package/bundle/{chunk-b3x13ndd.js → chunk-g7742sqm.js} +1 -1
- package/bundle/{chunk-btjcs9ee.js → chunk-g7g3zm4v.js} +1 -1
- package/bundle/{chunk-ymv05pbt.js → chunk-g8zrn0at.js} +1 -1
- package/bundle/chunk-gc1yetqd.js +2 -0
- package/bundle/{chunk-67wvdfs5.js → chunk-gjsaw7wm.js} +1 -1
- package/bundle/chunk-gtckkn15.js +2 -0
- package/bundle/chunk-gtzreftf.js +2 -0
- package/bundle/{chunk-tepesp0b.js → chunk-gz8x3915.js} +1 -1
- package/bundle/{chunk-zy0zn8yx.js → chunk-gzse9pab.js} +1 -1
- package/bundle/{chunk-40vz0fhv.js → chunk-hg7kfd0t.js} +1 -1
- package/bundle/{chunk-43xq4p51.js → chunk-hk1ha5fj.js} +1 -1
- package/bundle/{chunk-jfy6bfvv.js → chunk-hqv0s6sw.js} +1 -1
- package/bundle/{chunk-xce77xex.js → chunk-hs8qwx4n.js} +1 -1
- package/bundle/{chunk-k19zvbzh.js → chunk-hvcdemxe.js} +1 -1
- package/bundle/chunk-j5vahbw1.js +2 -0
- package/bundle/{chunk-tq258v8s.js → chunk-jazpapb9.js} +1 -1
- package/bundle/chunk-jek1cnfk.js +3 -0
- package/bundle/chunk-jevrajsx.js +2 -0
- package/bundle/{chunk-m9bc5csy.js → chunk-jge74hh4.js} +1 -1
- package/bundle/{chunk-rpy4rgmm.js → chunk-jq6y56m5.js} +1 -1
- package/bundle/{chunk-6emme4kp.js → chunk-jvkqvgae.js} +1 -1
- package/bundle/chunk-jzdks7bv.js +2 -0
- package/bundle/{chunk-hzexvrnj.js → chunk-k0arcqnt.js} +1 -1
- package/bundle/{chunk-f72j5yx8.js → chunk-k0v37hc6.js} +1 -1
- package/bundle/chunk-k1e7w7w5.js +2 -0
- package/bundle/{chunk-5z8gpy3x.js → chunk-k1ht1sjr.js} +1 -1
- package/bundle/{chunk-thbjhgw0.js → chunk-k33xx2z9.js} +1 -1
- package/bundle/{chunk-496rb1e4.js → chunk-k3pvgwgc.js} +1 -1
- package/bundle/{chunk-1123xk5a.js → chunk-k5294ajv.js} +1 -1
- package/bundle/chunk-k6vf6vq6.js +2 -0
- package/bundle/{chunk-ah9cm91p.js → chunk-kbhby60s.js} +1 -1
- package/bundle/{chunk-01gtn79f.js → chunk-kdr6nxmk.js} +2 -2
- package/bundle/{chunk-ng85b73s.js → chunk-kfdqfha0.js} +1 -1
- package/bundle/{chunk-msqx5bb0.js → chunk-kktcccep.js} +1 -1
- package/bundle/chunk-kn391hb2.js +2 -0
- package/bundle/{chunk-aznbvrbm.js → chunk-kn9skc0g.js} +1 -1
- package/bundle/{chunk-q2weasmk.js → chunk-knmba0q6.js} +1 -1
- package/bundle/chunk-knnemqfm.js +3 -0
- package/bundle/{chunk-gvj8qg7x.js → chunk-kpkbyek5.js} +2 -2
- package/bundle/chunk-kx4b39v6.js +2 -0
- package/bundle/{chunk-qafcfb4x.js → chunk-ky840wjj.js} +1 -1
- package/bundle/{chunk-7yw60h8j.js → chunk-m34zrf70.js} +1 -1
- package/bundle/{chunk-pcctf3gs.js → chunk-m3gsrb1x.js} +1 -1
- package/bundle/{chunk-a3a9bbk7.js → chunk-m81z3zgm.js} +1 -1
- package/bundle/{chunk-30233h8f.js → chunk-m8njvpb8.js} +1 -1
- package/bundle/{chunk-x4c8drpe.js → chunk-m8tfv36b.js} +1 -1
- package/bundle/chunk-mah572rs.js +2 -0
- package/bundle/{chunk-0qmaxpkv.js → chunk-mg03szpz.js} +1 -1
- package/bundle/chunk-mg6nwfw3.js +2 -0
- package/bundle/{chunk-30p5pm3w.js → chunk-mj7rk4xs.js} +1 -1
- package/bundle/{chunk-jatba8z8.js → chunk-mt8btwrv.js} +1 -1
- package/bundle/{chunk-2bxy8zm1.js → chunk-mwbcmvmh.js} +2 -2
- package/bundle/{chunk-pqyds00j.js → chunk-mwjhyj53.js} +1 -1
- package/bundle/{chunk-0jv8r99k.js → chunk-my0kzcby.js} +6 -6
- package/bundle/{chunk-1d6ret10.js → chunk-n889mwgv.js} +1 -1
- package/bundle/{chunk-fa03gsff.js → chunk-naq602da.js} +1 -1
- package/bundle/{chunk-fssgbz70.js → chunk-nb0gc3sx.js} +1 -1
- package/bundle/{chunk-prrrw8t8.js → chunk-ntfh16rj.js} +1 -1
- package/bundle/{chunk-x4b0ywbs.js → chunk-p33fchnf.js} +1 -1
- package/bundle/chunk-pdgrang4.js +2 -0
- package/bundle/{chunk-cpkega70.js → chunk-px15ev1g.js} +1 -1
- package/bundle/{chunk-t4c0zy2s.js → chunk-q1472d56.js} +1 -1
- package/bundle/{chunk-f8xnn26j.js → chunk-q1nvfmrm.js} +1 -1
- package/bundle/{chunk-0vw5a7m9.js → chunk-qkn4039t.js} +1 -1
- package/bundle/{chunk-10qkxzhh.js → chunk-qr2ave8f.js} +1 -1
- package/bundle/{chunk-mqt5qh3t.js → chunk-qx9j6nz1.js} +1 -1
- package/bundle/{chunk-bwyf1bvf.js → chunk-qzd0q1jg.js} +1 -1
- package/bundle/{chunk-7hx0pza2.js → chunk-r0sjwtfc.js} +2 -2
- package/bundle/chunk-r3q82hz3.js +2 -0
- package/bundle/chunk-r4ygs0jv.js +2 -0
- package/bundle/chunk-r6xhxvjv.js +2 -0
- package/bundle/{chunk-djcsvcby.js → chunk-r79mz5kd.js} +1 -1
- package/bundle/chunk-r99pnfra.js +2 -0
- package/bundle/{chunk-qxrjbw22.js → chunk-rjjgnvdk.js} +1 -1
- package/bundle/{chunk-9hrpcnt8.js → chunk-rmmyjyr9.js} +1 -1
- package/bundle/chunk-rq4xdyst.js +2 -0
- package/bundle/chunk-rsd3v7cg.js +2 -0
- package/bundle/{chunk-n39gqxkz.js → chunk-rwanncah.js} +2 -2
- package/bundle/chunk-rxsgbdv0.js +2 -0
- package/bundle/chunk-s4x1jhj3.js +2 -0
- package/bundle/{chunk-ntmn6epc.js → chunk-s75chpxq.js} +1 -1
- package/bundle/{chunk-pkdk0ppc.js → chunk-s7sksztt.js} +2 -2
- package/bundle/{chunk-56cty7nr.js → chunk-scb48j07.js} +2 -2
- package/bundle/{chunk-fgtyrvan.js → chunk-sgq94p3x.js} +1 -1
- package/bundle/{chunk-meaa7wrs.js → chunk-shav33fq.js} +2 -2
- package/bundle/{chunk-zz192a31.js → chunk-shxny9x9.js} +1 -1
- package/bundle/{chunk-t1f7jeat.js → chunk-sjqgmp12.js} +2 -2
- package/bundle/chunk-sx760d9d.js +2 -0
- package/bundle/{chunk-351wfvhp.js → chunk-t42kh492.js} +2 -2
- package/bundle/{chunk-07b36w5g.js → chunk-t66hycva.js} +1 -1
- package/bundle/{chunk-1kje2a6g.js → chunk-t86vj45b.js} +1 -1
- package/bundle/{chunk-fzhgxcej.js → chunk-tfpwfczs.js} +1 -1
- package/bundle/chunk-tmjd3evp.js +8 -0
- package/bundle/chunk-tp1d856p.js +2 -0
- package/bundle/chunk-tpxs00p5.js +2 -0
- package/bundle/chunk-tqk12r89.js +2 -0
- package/bundle/chunk-tycgrqgq.js +2 -0
- package/bundle/{chunk-p20ft5mj.js → chunk-tydvpy1s.js} +2 -2
- package/bundle/{chunk-rry321tn.js → chunk-v1hvnq7y.js} +1 -1
- package/bundle/{chunk-khkv9s5c.js → chunk-v1y3pbfv.js} +1 -1
- package/bundle/chunk-v32cyrg2.js +2 -0
- package/bundle/chunk-v7pypmvk.js +2 -0
- package/bundle/{chunk-mgp034y0.js → chunk-vay29sqp.js} +1 -1
- package/bundle/chunk-vbqyddy8.js +2 -0
- package/bundle/chunk-vgx86f2r.js +2 -0
- package/bundle/{chunk-r8ddb02d.js → chunk-vxc5q0wk.js} +2 -2
- package/bundle/chunk-w0jvqdez.js +2 -0
- package/bundle/{chunk-2qy62cv4.js → chunk-w32tj884.js} +2 -2
- package/bundle/{chunk-8t1whx0k.js → chunk-w6t1qmeg.js} +1 -1
- package/bundle/{chunk-aftpj9fe.js → chunk-w6zgm4vn.js} +1 -1
- package/bundle/chunk-w79yek40.js +2 -0
- package/bundle/chunk-w7nxsfbd.js +3 -0
- package/bundle/{chunk-wfb9dwmc.js → chunk-w8r4gjea.js} +1 -1
- package/bundle/chunk-w9vv1whr.js +2 -0
- package/bundle/chunk-wcea06cr.js +2 -0
- package/bundle/chunk-wcx4bbvn.js +2 -0
- package/bundle/chunk-wdw183vh.js +2 -0
- package/bundle/{chunk-hkmx6w54.js → chunk-wf2mj6de.js} +1 -1
- package/bundle/{chunk-jyh2g13j.js → chunk-wk11xsdh.js} +1 -1
- package/bundle/chunk-wqd3svh6.js +2 -0
- package/bundle/chunk-wqe5spdq.js +2 -0
- package/bundle/chunk-wqww2byk.js +2 -0
- package/bundle/chunk-wybd806z.js +2 -0
- package/bundle/chunk-x1vb00hr.js +2 -0
- package/bundle/chunk-xafh07r3.js +2 -0
- package/bundle/chunk-xgzjcsad.js +2 -0
- package/bundle/{chunk-t8365msg.js → chunk-xjr0xy58.js} +1 -1
- package/bundle/{chunk-zbvf09bm.js → chunk-xn0xhd0w.js} +1 -1
- package/bundle/chunk-xnbfy5jy.js +2 -0
- package/bundle/{chunk-2epf5806.js → chunk-xqzbcs8x.js} +1 -1
- package/bundle/{chunk-h6htvj2y.js → chunk-xtj5qqsw.js} +1 -1
- package/bundle/chunk-xxed39zx.js +3 -0
- package/bundle/{chunk-7w01dxp9.js → chunk-y0qaz8db.js} +1 -1
- package/bundle/{chunk-s6qdtfty.js → chunk-y2h0adg5.js} +2 -2
- package/bundle/{chunk-adgrn60n.js → chunk-y3qf1kg9.js} +1 -1
- package/bundle/{chunk-h725tttx.js → chunk-y62tnk9q.js} +1 -1
- package/bundle/{chunk-4qegdkss.js → chunk-y68fp4kt.js} +1 -1
- package/bundle/chunk-y6pzag4n.js +2 -0
- package/bundle/chunk-y7w6fjwt.js +2 -0
- package/bundle/{chunk-a2ty2e0g.js → chunk-yccm7cfm.js} +2 -2
- package/bundle/{chunk-5mrjxapq.js → chunk-yffkcska.js} +1 -1
- package/bundle/{chunk-mr7ya5kc.js → chunk-ypff4a5n.js} +1 -1
- package/bundle/{chunk-anqjy235.js → chunk-yr4evt94.js} +1 -1
- package/bundle/{chunk-b1t8d1s8.js → chunk-yyarzhw3.js} +1 -1
- package/bundle/chunk-z195gv71.js +2 -0
- package/bundle/{chunk-v9sfzkg5.js → chunk-z1hd38wp.js} +1 -1
- package/bundle/{chunk-8rcpj28e.js → chunk-z65snfyw.js} +1 -1
- package/bundle/{chunk-h99n5rv7.js → chunk-zx90w4mt.js} +1 -1
- package/bundle/{chunk-er5q8nhp.js → chunk-zzdbrxkh.js} +1 -1
- package/bundle/index.js +3 -3
- package/bundle/parser.worker.js +2 -2
- package/bundle/worker.js +1 -1
- package/package.json +1 -1
- package/bundle/chunk-04ezvjjf.js +0 -2
- package/bundle/chunk-0msr85tj.js +0 -2
- package/bundle/chunk-0qrpg3n8.js +0 -2
- package/bundle/chunk-0w8ztgmg.js +0 -2
- package/bundle/chunk-0y2nwncb.js +0 -2
- package/bundle/chunk-0zh8tykf.js +0 -2
- package/bundle/chunk-21z1vfgm.js +0 -2
- package/bundle/chunk-2ec8msmq.js +0 -2
- package/bundle/chunk-2n5m61m9.js +0 -2
- package/bundle/chunk-362z696e.js +0 -2
- package/bundle/chunk-367rm03h.js +0 -2
- package/bundle/chunk-43k17qzb.js +0 -2
- package/bundle/chunk-4r574drd.js +0 -2
- package/bundle/chunk-6c2xn1ab.js +0 -2
- package/bundle/chunk-6rak9ez9.js +0 -2
- package/bundle/chunk-71dbq1d0.js +0 -2
- package/bundle/chunk-73r1zvgw.js +0 -2
- package/bundle/chunk-7az1bpy8.js +0 -2
- package/bundle/chunk-7bm1t462.js +0 -2
- package/bundle/chunk-7nq8126b.js +0 -2
- package/bundle/chunk-80a0d0js.js +0 -2
- package/bundle/chunk-9ac4h2d9.js +0 -2
- package/bundle/chunk-9zp746aj.js +0 -2
- package/bundle/chunk-a0vpemkf.js +0 -2
- package/bundle/chunk-atjzxp7b.js +0 -2
- package/bundle/chunk-ax4f4fbm.js +0 -2
- package/bundle/chunk-aybmm0jf.js +0 -2
- package/bundle/chunk-b2scgkye.js +0 -2
- package/bundle/chunk-bbpze4hq.js +0 -2
- package/bundle/chunk-c6wrjyep.js +0 -2
- package/bundle/chunk-ce3c03mh.js +0 -2
- package/bundle/chunk-cqaw6hka.js +0 -2
- package/bundle/chunk-cxbkhs5y.js +0 -2
- package/bundle/chunk-d9vs6zd0.js +0 -2
- package/bundle/chunk-dj3rct8v.js +0 -2
- package/bundle/chunk-ds162xgb.js +0 -3
- package/bundle/chunk-e1zv873k.js +0 -2
- package/bundle/chunk-eb0ksh4x.js +0 -2
- package/bundle/chunk-efxshjyz.js +0 -2
- package/bundle/chunk-enry018j.js +0 -2
- package/bundle/chunk-f03yje8k.js +0 -3
- package/bundle/chunk-fydd2nmw.js +0 -2
- package/bundle/chunk-g2bw2qf5.js +0 -2
- package/bundle/chunk-h9a4zzr4.js +0 -2
- package/bundle/chunk-hkqcpdmt.js +0 -3
- package/bundle/chunk-jx3kvzka.js +0 -2
- package/bundle/chunk-k6eyc1wv.js +0 -8
- package/bundle/chunk-k9m536te.js +0 -2
- package/bundle/chunk-kv58j3yk.js +0 -2
- package/bundle/chunk-m3sr6xdg.js +0 -2
- package/bundle/chunk-mmyhzhzt.js +0 -2
- package/bundle/chunk-mw60bmaf.js +0 -2
- package/bundle/chunk-nk42gy65.js +0 -2
- package/bundle/chunk-ps8xnz0h.js +0 -2
- package/bundle/chunk-pvn4dz8e.js +0 -2
- package/bundle/chunk-pw3tnt2j.js +0 -2
- package/bundle/chunk-pzajshbc.js +0 -2
- package/bundle/chunk-qvcnvqvf.js +0 -2
- package/bundle/chunk-qy9s3nmy.js +0 -2
- package/bundle/chunk-r0zsgad8.js +0 -4
- package/bundle/chunk-r4hkkcj4.js +0 -2
- package/bundle/chunk-r50kjthp.js +0 -2
- package/bundle/chunk-rbrkvj3x.js +0 -2
- package/bundle/chunk-rhgfyvth.js +0 -2
- package/bundle/chunk-rjdpw6at.js +0 -2
- package/bundle/chunk-s6c5c940.js +0 -2
- package/bundle/chunk-s79zd152.js +0 -2
- package/bundle/chunk-ssfgge5z.js +0 -2
- package/bundle/chunk-tdqbsbyb.js +0 -2
- package/bundle/chunk-tk6gjy9d.js +0 -3
- package/bundle/chunk-tsfpkwvr.js +0 -2
- package/bundle/chunk-v07wtbmt.js +0 -2
- package/bundle/chunk-v6kenrks.js +0 -2
- package/bundle/chunk-v7dfqwxx.js +0 -2
- package/bundle/chunk-vf7hhxsa.js +0 -2
- package/bundle/chunk-vmhq6cyz.js +0 -2
- package/bundle/chunk-vvs87e61.js +0 -2
- package/bundle/chunk-w6z123g2.js +0 -2
- package/bundle/chunk-wg0849tq.js +0 -2
- package/bundle/chunk-xj0ba60b.js +0 -2
- package/bundle/chunk-xtfcdgwe.js +0 -2
- package/bundle/chunk-ye6j8k26.js +0 -2
- package/bundle/chunk-zmqmccbc.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{$u as
|
|
2
|
+
import{$u as v,$v as va,$w as vb,$x as uc,$y as ud,Av as W,Aw as Wa,Ax as Vb,Ay as Vc,Bv as X,Bw as Xa,Bx as Wb,By as Wc,Cv as Y,Cw as Ya,Cx as Xb,Cy as Xc,Dv as Z,Dw as Za,Dx as Yb,Dy as Yc,Ev as _,Ew as _a,Ex as Zb,Ey as Zc,Fu as a,Fv as $,Fw as $a,Fx as _b,Fy as _c,Gu as b,Gv as aa,Gw as ab,Gx as $b,Gy as $c,Hu as c,Hv as ba,Hw as bb,Hx as ac,Hy as ad,Iu as d,Iv as ca,Iw as cb,Ix as bc,Iy as bd,Ju as e,Jv as da,Jw as db,Jx as cc,Jy as cd,Ku as f,Kv as ea,Kw as eb,Kx as dc,Ky as dd,Lu as g,Lv as fa,Lw as fb,Lx as ec,Ly as ed,Mv as ga,Mw as gb,Mx as fc,My as fd,Nu as h,Nv as ha,Nw as hb,Nx as gc,Ny as gd,Ou as i,Ov as ia,Ow as ib,Ox as hc,Oy as hd,Pu as j,Pv as ja,Pw as jb,Px as ic,Py as id,Qu as k,Qv as ka,Qw as kb,Qx as jc,Qy as jd,Ru as l,Rv as la,Rw as lb,Rx as kc,Ry as kd,Su as m,Sv as ma,Sw as mb,Sx as lc,Sy as ld,Tu as n,Tv as na,Tw as nb,Tx as mc,Ty as md,Uu as o,Uv as oa,Uw as ob,Ux as nc,Uy as nd,Vu as p,Vv as pa,Vw as pb,Vx as oc,Vy as od,Wu as q,Wv as qa,Ww as qb,Wx as pc,Wy as pd,Xu as r,Xv as ra,Xw as rb,Xx as qc,Xy as qd,Yu as s,Yv as sa,Yw as sb,Yx as rc,Yy as rd,Zu as t,Zv as ta,Zw as tb,Zx as sc,Zy as sd,_u as u,_v as ua,_w as ub,_x as tc,_y as td,av as w,aw as wa,ax as wb,ay as vc,az as vd,bv as x,bw as xa,bx as xb,by as wc,bz as wd,cv as y,cw as ya,cx as yb,cy as xc,cz as xd,dv as z,dw as za,dx as zb,dy as yc,dz as yd,ev as A,ew as Aa,ex as Ab,ey as zc,ez as zd,fv as B,fw as Ba,fx as Bb,fy as Ac,fz as Ad,gv as C,gw as Ca,gx as Cb,gy as Bc,gz as Bd,hv as D,hw as Da,hx as Db,hy as Cc,hz as Cd,iv as E,iw as Ea,iy as Dc,iz as Dd,jv as F,jw as Fa,jx as Eb,jy as Ec,jz as Ed,kv as G,kw as Ga,kx as Fb,ky as Fc,kz as Fd,lv as H,lw as Ha,lx as Gb,ly as Gc,lz as Gd,mv as I,mw as Ia,mx as Hb,my as Hc,mz as Hd,nv as J,nw as Ja,nx as Ib,ny as Ic,nz as Id,ov as K,ow as Ka,ox as Jb,oy as Jc,oz as Jd,pv as L,pw as La,px as Kb,py as Kc,pz as Kd,qv as M,qw as Ma,qx as Lb,qy as Lc,qz as Ld,rv as N,rw as Na,rx as Mb,ry as Mc,rz as Md,sv as O,sw as Oa,sx as Nb,sy as Nc,sz as Nd,tv as P,tw as Pa,tx as Ob,ty as Oc,tz as Od,uv as Q,uw as Qa,ux as Pb,uy as Pc,vv as R,vw as Ra,vx as Qb,vy as Qc,wv as S,ww as Sa,wx as Rb,wy as Rc,xv as T,xw as Ta,xx as Sb,xy as Sc,yv as U,yw as Ua,yx as Tb,yy as Tc,zv as V,zw as Va,zx as Ub,zy as Uc}from"./chunk-a3te67a5.js";import"./chunk-naq602da.js";export{ka as version,i as util,n as treeifyError,Nd as toJSONSchema,o as toDotPath,x as safeParseAsync,v as safeParse,L as safeEncodeAsync,H as safeEncode,N as safeDecodeAsync,J as safeDecode,Ib as registry,O as regexes,p as prettifyError,t as parseAsync,r as parse,Eb as locales,Ma as isValidJWT,Ja as isValidBase64URL,Ha as isValidBase64,Jb as globalRegistry,f as globalConfig,m as formatError,l as flattenError,D as encodeAsync,z as encode,F as decodeAsync,B as decode,g as config,h as clone,Yb as _xid,Ec as _void,Rb as _uuidv7,Qb as _uuidv6,Pb as _uuidv4,Ob as _uuid,Sb as _url,Zc as _uppercase,Cc as _unknown,jd as _union,zc as _undefined,Xb as _ulid,xc as _uint64,rc as _uint32,md as _tuple,fd as _trim,ud as _transform,hd as _toUpperCase,gd as _toLowerCase,Dd as _templateLiteral,yc as _symbol,Id as _superRefine,zd as _success,Kd as _stringbool,Ld as _stringFormat,Kb as _string,$c as _startsWith,Tc as _size,pd as _set,w as _safeParseAsync,u as _safeParse,K as _safeEncodeAsync,G as _safeEncode,M as _safeDecodeAsync,I as _safeDecode,Xc as _regex,Hd as _refine,nd as _record,Cd as _readonly,bd as _property,Fd as _promise,Mc as _positive,Bd as _pipe,s as _parseAsync,q as _parse,dd as _overwrite,vd as _optional,lc as _number,wd as _nullable,Ac as _null,ed as _normalize,Oc as _nonpositive,yd as _nonoptional,Pc as _nonnegative,Dc as _never,Nc as _negative,rd as _nativeEnum,Ub as _nanoid,Hc as _nan,Qc as _multipleOf,Sc as _minSize,Vc as _minLength,Lc as _min,cd as _mime,Rc as _maxSize,Uc as _maxLength,Jc as _max,od as _map,Jc as _lte,Ic as _lt,Yc as _lowercase,sd as _literal,Wc as _length,Ed as _lazy,Zb as _ksuid,fc as _jwt,jc as _isoTime,kc as _isoDuration,hc as _isoDateTime,ic as _isoDate,$b as _ipv6,_b as _ipv4,ld as _intersection,wc as _int64,qc as _int32,nc as _int,_c as _includes,Nb as _guid,Lc as _gte,Kc as _gt,pc as _float64,oc as _float32,td as _file,qd as _enum,ad as _endsWith,C as _encodeAsync,y as _encode,Tb as _emoji,Mb as _email,ec as _e164,kd as _discriminatedUnion,xd as _default,E as _decodeAsync,A as _decode,Fc as _date,Gd as _custom,Wb as _cuid2,Vb as _cuid,Lb as _coercedString,mc as _coercedNumber,Gc as _coercedDate,tc as _coercedBoolean,vc as _coercedBigint,bc as _cidrv6,ac as _cidrv4,Jd as _check,Ad as _catch,sc as _boolean,uc as _bigint,dc as _base64url,cc as _base64,id as _array,Bc as _any,gc as TimePrecision,a as NEVER,Md as JSONSchemaGenerator,Od as JSONSchema,ja as Doc,Fb as $output,Gb as $input,b as $constructor,c as $brand,xa as $ZodXID,_a as $ZodVoid,Ya as $ZodUnknown,db as $ZodUnion,Va as $ZodUndefined,pa as $ZodUUID,ra as $ZodURL,wa as $ZodULID,la as $ZodType,gb as $ZodTuple,nb as $ZodTransform,zb as $ZodTemplateLiteral,Ua as $ZodSymbol,tb as $ZodSuccess,na as $ZodStringFormat,ma as $ZodString,jb as $ZodSet,Hb as $ZodRegistry,hb as $ZodRecord,k as $ZodRealError,yb as $ZodReadonly,Bb as $ZodPromise,rb as $ZodPrefault,wb as $ZodPipe,ob as $ZodOptional,cb as $ZodObjectJIT,bb as $ZodObject,Qa as $ZodNumberFormat,Pa as $ZodNumber,pb as $ZodNullable,Wa as $ZodNull,sb as $ZodNonOptional,Za as $ZodNever,ta as $ZodNanoID,vb as $ZodNaN,ib as $ZodMap,lb as $ZodLiteral,Cb as $ZodLazy,ya as $ZodKSUID,Na as $ZodJWT,fb as $ZodIntersection,Ba as $ZodISOTime,Ca as $ZodISODuration,za as $ZodISODateTime,Aa as $ZodISODate,Ea as $ZodIPv6,Da as $ZodIPv4,oa as $ZodGUID,Ab as $ZodFunction,mb as $ZodFile,j as $ZodError,kb as $ZodEnum,e as $ZodEncodeError,sa as $ZodEmoji,qa as $ZodEmail,La as $ZodE164,eb as $ZodDiscriminatedUnion,qb as $ZodDefault,$a as $ZodDate,Oa as $ZodCustomStringFormat,Db as $ZodCustom,xb as $ZodCodec,ca as $ZodCheckUpperCase,$ as $ZodCheckStringFormat,ea as $ZodCheckStartsWith,X as $ZodCheckSizeEquals,aa as $ZodCheckRegex,ga as $ZodCheckProperty,ia as $ZodCheckOverwrite,T as $ZodCheckNumberFormat,S as $ZodCheckMultipleOf,W as $ZodCheckMinSize,Z as $ZodCheckMinLength,ha as $ZodCheckMimeType,V as $ZodCheckMaxSize,Y as $ZodCheckMaxLength,ba as $ZodCheckLowerCase,Q as $ZodCheckLessThan,_ as $ZodCheckLengthEquals,da as $ZodCheckIncludes,R as $ZodCheckGreaterThan,fa as $ZodCheckEndsWith,U as $ZodCheckBigIntFormat,P as $ZodCheck,ub as $ZodCatch,va as $ZodCUID2,ua as $ZodCUID,Ga as $ZodCIDRv6,Fa as $ZodCIDRv4,Ra as $ZodBoolean,Ta as $ZodBigIntFormat,Sa as $ZodBigInt,Ka as $ZodBase64URL,Ia as $ZodBase64,d as $ZodAsyncError,ab as $ZodArray,Xa as $ZodAny};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{g as G}from"./chunk-
|
|
2
|
+
import{g as G}from"./chunk-febbrhev.js";import{D as x,E as F,F as Z}from"./chunk-xn0xhd0w.js";import{Od as P}from"./chunk-wmmck56g.js";import{Sf as j}from"./chunk-s75chpxq.js";import{wg as v}from"./chunk-1gjh45v5.js";import{qh as X}from"./chunk-my0kzcby.js";import"./chunk-1v47v7vm.js";import"./chunk-tmjd3evp.js";import"./chunk-q6x5bmc3.js";import"./chunk-n1m5qdf5.js";import"./chunk-zeh3mjgp.js";import"./chunk-ntfh16rj.js";import"./chunk-tz8qhbk9.js";import"./chunk-hvcdemxe.js";import{Dj as $}from"./chunk-2wcwbp3t.js";import"./chunk-3sem578c.js";import"./chunk-fzzze6zd.js";import"./chunk-afpwjn78.js";import"./chunk-c4x99ayd.js";import"./chunk-44amvtcs.js";import"./chunk-cbfjjbfd.js";import"./chunk-c7dt464m.js";import"./chunk-jazpapb9.js";import"./chunk-knnemqfm.js";import"./chunk-hqv0s6sw.js";import"./chunk-apv1v4tk.js";import"./chunk-7tb9fjvq.js";import"./chunk-fp5mvrrx.js";import"./chunk-zzdbrxkh.js";import"./chunk-cqtkxwd8.js";import"./chunk-xtj5qqsw.js";import"./chunk-w32tj884.js";import"./chunk-29hmwttd.js";import"./chunk-2qy760rf.js";import"./chunk-kfdqfha0.js";import"./chunk-t42kh492.js";import"./chunk-8hh5ejmr.js";import"./chunk-mwbcmvmh.js";import"./chunk-9y65kbcf.js";import"./chunk-24r5h0fx.js";import"./chunk-vxc5q0wk.js";import"./chunk-dsny9dh8.js";import"./chunk-scb48j07.js";import"./chunk-k33xx2z9.js";import"./chunk-tydvpy1s.js";import"./chunk-b2k9yafd.js";import"./chunk-sjqgmp12.js";import"./chunk-jek1cnfk.js";import"./chunk-s7sksztt.js";import"./chunk-22vvjp4g.js";import"./chunk-a3te67a5.js";import"./chunk-kdr6nxmk.js";import{bI as D}from"./chunk-shav33fq.js";import"./chunk-bqeyh2gx.js";import"./chunk-kpkbyek5.js";import"./chunk-naq602da.js";var Y="forgewise";function _(J){return D.gen(function*(){let z=yield*J.get(Y);if(!z||z.type!=="api")return null;let M=(z.metadata??{}).sub,V=z.key;if(!M)return null;return{sub:M,accessToken:V}})}var H=()=>D.gen(function*(){if((yield*G())==="revoked")return null;let J=yield*$.Service,z=yield*_(J);if(!z)return yield*D.sync(()=>j.println(j.Style.TEXT_DANGER+"Not signed in to Forgewise. Run `qitqode auth login` first."+j.Style.TEXT_NORMAL)),null;return z}),k=()=>D.gen(function*(){let J=yield*H();if(!J)return;let z=yield*D.tryPromise({try:()=>v(J.accessToken),catch:()=>null}).pipe(D.orElseSucceed(()=>null));if(!z){yield*D.sync(()=>j.println(j.Style.TEXT_DANGER+"Could not fetch balance."+j.Style.TEXT_NORMAL));return}yield*D.sync(()=>j.println(j.Style.TEXT_SUCCESS+"Qredits balance: "+j.Style.TEXT_NORMAL+j.Style.TEXT_HIGHLIGHT_BOLD+Z(z.balance)+j.Style.TEXT_NORMAL))}).pipe(D.withSpan("qredits.balance")),w=()=>D.gen(function*(){let J=yield*H();if(!J)return;let z=yield*D.tryPromise({try:()=>F({userId:J.sub,accessToken:J.accessToken,limit:20}),catch:(L)=>L});if(z instanceof Error){let L=z instanceof x?z.message:String(z);yield*D.sync(()=>j.println(j.Style.TEXT_DANGER+"Could not fetch history: "+L+j.Style.TEXT_NORMAL));return}if(z.length===0){yield*D.sync(()=>j.println("No spend history yet."));return}let N=j.Style.TEXT_DIM,M=j.Style.TEXT_NORMAL,V=j.Style.TEXT_DANGER;yield*D.sync(()=>{j.println(N+" Date Description Amount"+M),j.println(N+" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500"+M);for(let L of z){let K=(L.date||"").slice(0,10).padEnd(18),O=(L.description||"").slice(0,32).padEnd(32),T=(L.amount<0?"-":" ")+Z(Math.abs(L.amount)),W=L.amount<0?V:M;j.println(` ${N}${K}${M} ${O} ${W}${T}${M}`)}})}).pipe(D.withSpan("qredits.history")),g=P({command:"qredits <command>",describe:"Check Qredits balance and spend history",builder:(J)=>J.command(P({command:"balance",describe:"Show current Qredits balance",builder:(z)=>z,async handler(){j.empty(),await X.runPromise(k())}})).command(P({command:"history",describe:"Show recent Qredit spend history",builder:(z)=>z,async handler(){j.empty(),await X.runPromise(w())}})).demandCommand(),async handler(){}});export{w as historyEffect,k as balanceEffect,g as QreditsCommand};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{$l as Qi,Vl as no,Wl as Vi,Xl as oo,Yl as ci,_l as $i}from"./chunk-50aznc8e.js";import{$m as yt,$n as Zt,Am as Er,An as Nt,Bm as Wr,Bn as Tt,Cm as Pr,Cn as lt,Dm as Ur,Dn as At,Em as Zr,En as Ot,Eo as Zi,Fm as vr,Fn as dt,Gm as Xr,Gn as Lo,Hm as Yr,Hn as Go,Im as H,In as $t,Jm as zr,Jn as Qt,Km as kr,Kn as Bt,Lm as Vr,Ln as Dt,Mm as cr,Mn as It,Nm as wr,Nn as Lt,Om as qr,On as Gt,Pm as Fr,Pn as Mt,Qm as ar,Qn as xt,Rm as jr,Rn as Ct,Sm as br,Sn as Jt,Tm as hr,Tn as Ht,Um as nt,Un as Kt,Vm as ot,Vn as Rt,Wm as rt,Wn as St,Xm as tt,Xn as Et,Ym as it,Yn as Wt,Zm as et,Zn as Pt,_m as mt,_n as Ut,am as pr,an as ft,ao as vt,bm as _r,bn as gt,bo as Xt,cm as En,cn as a,co as Yt,dm as Wn,dn as Q,do as zt,em as Nr,en as fn,eo as kt,fm as Tr,fn as yn,fo as Vt,gm as lr,gn as Yo,go as ct,hn as ut,ho as wt,im as Ar,in as X,io as qt,jm as Or,jn as so,jo as Ft,km as dr,kn as Pn,ko as at,lm as $r,ln as po,lo as jt,mm as Qr,mn as _o,mo as bt,nm as Br,nn as No,no as ht,om as Dr,on as To,oo as ni,pm as Ir,pn as lo,po as oi,qm as Lr,qn as Ao,qo as ri,rm as Gr,rn as Oo,ro as ti,sm as Mr,sn as st,so as ii,tm as xr,tn as $o,to as ei,um as Cr,un as Qo,uo as mi,vm as Jr,vn as Bo,vo as yi,wm as Hr,wn as pt,wo as ao,xm as Kr,xn as Do,xo as fi,ym as Rr,yn as _t,yo as gi,zm as Sr,zn as Io,zo as ui}from"./chunk-c4x99ayd.js";import{ip as bn,mp as hn}from"./chunk-tq258v8s.js";import{rp as Yi}from"./chunk-jfy6bfvv.js";import{sp as Jo}from"./chunk-2p6w3w8f.js";import{qr as Xn,rr as ro,sr as Nn,tr as Hi,ur as Wi,wr as Ki}from"./chunk-2bxy8zm1.js";import{xr as Si}from"./chunk-qq9pvscd.js";import{Ds as eo}from"./chunk-56cty7nr.js";import{Hs as Wo,Us as un,ct as dn,dt as nn,mt as V}from"./chunk-p20ft5mj.js";import{Bt as wo,Ct as c,Gt as go,yt as di}from"./chunk-b5x3zghc.js";import{It as j}from"./chunk-tk6gjy9d.js";import{Vz as Tn,bA as Cn,pA as Kn}from"./chunk-01gtn79f.js";import{$H as r,BN as N,GE as Eo,MO as Oi,NE as kn,NN as vo,UE as sn,eC as wn,iF as Ai,jD as Qn,oJ as Ln,yF as h}from"./chunk-meaa7wrs.js";import{nP as On}from"./chunk-fa03gsff.js";var qo={};On(qo,{run:()=>ji});var mn={time_created:a().notNull().$default(()=>Date.now()),time_updated:a().notNull().$onUpdate(()=>Date.now())};var x=yn("project",{id:Q().$type().primaryKey(),worktree:Q().notNull(),vcs:Q(),name:Q(),icon_url:Q(),icon_color:Q(),...mn,time_initialized:a(),sandboxes:Q({mode:"json"}).notNull().$type(),commands:Q({mode:"json"}).$type()});var gn=yn("session",{id:Q().$type().primaryKey(),project_id:Q().$type().notNull().references(()=>x.id,{onDelete:"cascade"}),workspace_id:Q().$type(),parent_id:Q().$type(),context_from:Q().$type(),context_watermark:Q().$type(),slug:Q().notNull(),directory:Q().notNull(),title:Q().notNull(),version:Q().notNull(),share_url:Q(),summary_additions:a(),summary_deletions:a(),summary_files:a(),summary_diffs:Q({mode:"json"}).$type(),revert:Q({mode:"json"}).$type(),permission:Q({mode:"json"}).$type(),...mn,time_compacting:a(),time_archived:a(),last_checkpoint_message_id:Q().$type()},(n)=>[fn("session_project_idx").on(n.project_id),fn("session_workspace_idx").on(n.workspace_id),fn("session_parent_idx").on(n.parent_id),fn("session_context_from_idx").on(n.context_from)]),fo=yn("message",{id:Q().$type().primaryKey(),session_id:Q().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),agent_id:Q().notNull().default("main"),...mn,data:Q({mode:"json"}).notNull().$type()},(n)=>[fn("message_session_time_created_id_idx").on(n.session_id,n.time_created,n.id),fn("message_session_agent_idx").on(n.session_id,n.agent_id,n.id)]),zo=yn("part",{id:Q().$type().primaryKey(),message_id:Q().$type().notNull().references(()=>fo.id,{onDelete:"cascade"}),session_id:Q().$type().notNull(),...mn,data:Q({mode:"json"}).notNull().$type()},(n)=>[fn("part_message_id_id_idx").on(n.message_id,n.id),fn("part_session_idx").on(n.session_id)]),ko=yn("todo",{session_id:Q().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),content:Q().notNull(),status:Q().notNull(),position:a().notNull(),...mn},(n)=>[Yo({columns:[n.session_id,n.position]}),fn("todo_session_idx").on(n.session_id)]),Vo=yn("permission",{project_id:Q().primaryKey().references(()=>x.id,{onDelete:"cascade"}),...mn,data:Q({mode:"json"}).notNull().$type()});var co=yn("session_share",{session_id:Q().primaryKey().references(()=>gn.id,{onDelete:"cascade"}),id:Q().notNull(),secret:Q().notNull(),url:Q().notNull(),...mn});import k from"path";var v=V.create({service:"json-migration"});async function ji(n,o){let t=k.join(dn.Path.data,"storage");if(!await go.exists(t))return v.info("storage directory does not exist, skipping migration"),{projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]};v.info("starting json to sqlite migration",{storageDir:t});let s=performance.now();n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = OFF"),n.run("PRAGMA cache_size = 10000"),n.run("PRAGMA temp_store = MEMORY");let e={projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]},l={sessions:0,todos:0,permissions:0,shares:0},_=e.errors,A=1000,C=Date.now();async function S(g){return wo.scan(g,{cwd:t,absolute:!0})}async function K(g,G,J){let B=J-G,T=Array(B);for(let P=0;P<B;P++)T[P]=go.readJson(g[G+P]);let M=await Promise.allSettled(T),Z=Array(B);for(let P=0;P<M.length;P++){let w=M[P];if(w.status==="fulfilled"){Z[P]=w.value;continue}_.push(`failed to read ${g[G+P]}: ${w.reason}`)}return Z}function R(g,G,J){if(g.length===0)return 0;try{return n.insert(G).values(g).onConflictDoNothing().run(),g.length}catch(B){return _.push(`failed to migrate ${J} batch: ${B}`),0}}v.info("scanning files...");let[E,d,D,L,u,p,m]=await Promise.all([S("project/*.json"),S("session/*/*.json"),S("message/*/*.json"),S("part/*/*.json"),S("todo/*.json"),S("permission/*.json"),S("session_share/*.json")]);v.info("file scan complete",{projects:E.length,sessions:d.length,messages:D.length,parts:L.length,todos:u.length,permissions:p.length,shares:m.length});let f=Math.max(1,E.length+d.length+D.length+L.length+u.length+p.length+m.length),i=o?.progress,y=0,$=(g,G)=>{y=Math.min(f,y+G),i?.({current:y,total:f,label:g})};i?.({current:y,total:f,label:"starting"}),n.run("BEGIN TRANSACTION");let I=new Set,O=[];for(let g=0;g<E.length;g+=A){let G=Math.min(g+A,E.length),J=await K(E,g,G);O.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=k.basename(E[g+B],".json");I.add(M),O.push({id:M,worktree:T.worktree??"/",vcs:T.vcs,name:T.name??void 0,icon_url:T.icon?.url,icon_color:T.icon?.color,time_created:T.time?.created??C,time_updated:T.time?.updated??C,time_initialized:T.time?.initialized,sandboxes:T.sandboxes??[],commands:T.commands})}e.projects+=R(O,x,"project"),$("projects",G-g)}v.info("migrated projects",{count:e.projects,duration:Math.round(performance.now()-s)});let U=d.map((g)=>k.basename(k.dirname(g))),z=new Set,en=[];for(let g=0;g<d.length;g+=A){let G=Math.min(g+A,d.length),J=await K(d,g,G);en.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=k.basename(d[g+B],".json"),Z=U[g+B];if(!I.has(Z)){l.sessions++;continue}z.add(M),en.push({id:M,project_id:Z,parent_id:T.parentID??null,slug:T.slug??"",directory:T.directory??"",title:T.title??"",version:T.version??"",share_url:T.share?.url??null,summary_additions:T.summary?.additions??null,summary_deletions:T.summary?.deletions??null,summary_files:T.summary?.files??null,summary_diffs:T.summary?.diffs??null,revert:T.revert??null,permission:T.permission??null,time_created:T.time?.created??C,time_updated:T.time?.updated??C,time_compacting:T.time?.compacting??null,time_archived:T.time?.archived??null})}e.sessions+=R(en,gn,"session"),$("sessions",G-g)}if(v.info("migrated sessions",{count:e.sessions}),l.sessions>0)v.warn("skipped orphaned sessions",{count:l.sessions});let pn=[],W=[],qn=new Map;for(let g of D){let G=k.basename(k.dirname(g));if(!z.has(G))continue;pn.push(g),W.push(G)}for(let g=0;g<pn.length;g+=A){let G=Math.min(g+A,pn.length),J=await K(pn,g,G),B=Array(J.length),T=0;for(let M=0;M<J.length;M++){let Z=J[M];if(!Z)continue;let P=pn[g+M],w=k.basename(P,".json"),Sn=W[g+M];qn.set(w,Sn);let Bn=Z;delete Bn.id,delete Bn.sessionID,B[T++]={id:w,session_id:Sn,time_created:Z.time?.created??C,time_updated:Z.time?.updated??C,data:Bn}}B.length=T,e.messages+=R(B,fo,"message"),$("messages",G-g)}v.info("migrated messages",{count:e.messages});for(let g=0;g<L.length;g+=A){let G=Math.min(g+A,L.length),J=await K(L,g,G),B=Array(J.length),T=0;for(let M=0;M<J.length;M++){let Z=J[M];if(!Z)continue;let P=L[g+M],w=k.basename(P,".json"),Sn=k.basename(k.dirname(P)),Bn=qn.get(Sn);if(!Bn){_.push(`part missing message session: ${P}`);continue}if(!z.has(Bn))continue;let jn=Z;delete jn.id,delete jn.messageID,delete jn.sessionID,B[T++]={id:w,message_id:Sn,session_id:Bn,time_created:Z.time?.created??C,time_updated:Z.time?.updated??C,data:jn}}B.length=T,e.parts+=R(B,zo,"part"),$("parts",G-g)}v.info("migrated parts",{count:e.parts});let An=u.map((g)=>k.basename(g,".json"));for(let g=0;g<u.length;g+=A){let G=Math.min(g+A,u.length),J=await K(u,g,G),B=[];for(let T=0;T<J.length;T++){let M=J[T];if(!M)continue;let Z=An[g+T];if(!z.has(Z)){l.todos++;continue}if(!Array.isArray(M)){_.push(`todo not an array: ${u[g+T]}`);continue}for(let P=0;P<M.length;P++){let w=M[P];if(!w?.content||!w?.status)continue;B.push({session_id:Z,content:w.content,status:w.status,position:P,time_created:C,time_updated:C})}}e.todos+=R(B,ko,"todo"),$("todos",G-g)}if(v.info("migrated todos",{count:e.todos}),l.todos>0)v.warn("skipped orphaned todos",{count:l.todos});let Fn=p.map((g)=>k.basename(g,".json")),Rn=[];for(let g=0;g<p.length;g+=A){let G=Math.min(g+A,p.length),J=await K(p,g,G);Rn.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=Fn[g+B];if(!I.has(M)){l.permissions++;continue}Rn.push({project_id:M,data:T})}e.permissions+=R(Rn,Vo,"permission"),$("permissions",G-g)}if(v.info("migrated permissions",{count:e.permissions}),l.permissions>0)v.warn("skipped orphaned permissions",{count:l.permissions});let an=m.map((g)=>k.basename(g,".json")),Gn=[];for(let g=0;g<m.length;g+=A){let G=Math.min(g+A,m.length),J=await K(m,g,G);Gn.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=an[g+B];if(!z.has(M)){l.shares++;continue}if(!T?.id||!T?.secret||!T?.url){_.push(`session_share missing id/secret/url: ${m[g+B]}`);continue}Gn.push({session_id:M,id:T.id,secret:T.secret,url:T.url})}e.shares+=R(Gn,co,"session_share"),$("shares",G-g)}if(v.info("migrated session shares",{count:e.shares}),l.shares>0)v.warn("skipped orphaned session shares",{count:l.shares});if(n.run("COMMIT"),v.info("json migration complete",{projects:e.projects,sessions:e.sessions,messages:e.messages,parts:e.parts,todos:e.todos,permissions:e.permissions,shares:e.shares,errorCount:e.errors.length,duration:Math.round(performance.now()-s)}),e.errors.length>0)v.warn("migration errors",{errors:e.errors.slice(0,20)});return i?.({current:f,total:f,label:"complete"}),e}var In={};On(In,{use:()=>Je,transaction:()=>Ke,textDecoder:()=>mt,sumDistinct:()=>tr,sum:()=>rr,sql:()=>H,relationsOrderToSQL:()=>ii,relationsFilterToSQL:()=>ti,relationToSQL:()=>mi,relationExtrasToSQL:()=>ei,processRelations:()=>Wt,placeholder:()=>kr,param:()=>Yr,orderSelectedFields:()=>ar,orderByOperators:()=>Vt,or:()=>po,operators:()=>kt,notLike:()=>Nt,notInArray:()=>st,notIlike:()=>lt,notExists:()=>pt,notBetween:()=>_t,not:()=>_o,noopMapper:()=>vr,noopEncoder:()=>Zr,noopDecoder:()=>Ur,ne:()=>so,name:()=>Wr,min:()=>er,max:()=>ir,mapUpdateSet:()=>br,mapResultRow:()=>Fr,mapRelationalRow:()=>wt,mapColumnsInSQLToAlias:()=>Ht,mapColumnsInAliasedSQLToAlias:()=>Jt,lte:()=>Ao,lt:()=>lo,like:()=>Io,l2Distance:()=>mr,l1Distance:()=>yr,jaccardDistance:()=>sr,isWithEnum:()=>ft,isView:()=>wr,isTable:()=>Lr,isSQLWrapper:()=>Kr,isNull:()=>$o,isNotNull:()=>Qo,isDriverValueEncoder:()=>Pr,isConfig:()=>et,is:()=>En,innerProduct:()=>fr,inArray:()=>Oo,ilike:()=>Tt,haveSameKeys:()=>jr,hasOwnEntityKind:()=>_r,hammingDistance:()=>ur,gte:()=>To,gt:()=>No,getViewSelectedFields:()=>ot,getViewName:()=>qr,getTableUniqueName:()=>Mr,getTableName:()=>Gr,getTableLikeName:()=>tt,getTableColumns:()=>nt,getTableAsAliasSQL:()=>yi,getOriginalColumnFromAlias:()=>Kt,getOrderByOperators:()=>ct,getColumns:()=>rt,getColumnTable:()=>Nr,getColumnNameAndConfig:()=>it,getChannelPath:()=>zi,fillPlaceholders:()=>Vr,fieldSelectionToSQL:()=>ri,extractTablesFromSchema:()=>ht,extractExtendedColumnType:()=>Tr,exists:()=>Bo,eq:()=>X,entityKind:()=>pr,effect:()=>He,desc:()=>Go,defineRelationsPart:()=>oi,defineRelations:()=>ni,createRelationsHelper:()=>bt,countDistinct:()=>ho,count:()=>uo,cosineDistance:()=>gr,close:()=>Ce,buildRelationsParts:()=>Ut,buildRelations:()=>Pt,bindIfParam:()=>ut,between:()=>Do,avgDistinct:()=>or,avg:()=>nr,assertUnreachable:()=>yt,asc:()=>Lo,arrayOverlaps:()=>dt,arrayContains:()=>At,arrayContained:()=>Ot,applyMixins:()=>hr,and:()=>Pn,aliasedTableColumn:()=>Ct,aliasedTable:()=>Gt,aliasedRelation:()=>xt,aliasedColumn:()=>Mt,WithSubquery:()=>Cr,ViewSelectionAliasProxyHandler:()=>Bt,ViewBaseConfig:()=>Jr,View:()=>cr,TransactionRollbackError:()=>Et,TableSchema:()=>Ar,TableColumns:()=>Or,TableAliasProxyHandler:()=>Dt,Table:()=>Ir,Subquery:()=>xr,StringChunk:()=>Rr,SQL:()=>Sr,RelationsHelperStatic:()=>jt,RelationsBuilderTable:()=>qt,RelationsBuilderJunctionColumn:()=>at,RelationsBuilderColumn:()=>Ft,RelationTableAliasProxyHandler:()=>Lt,Relation:()=>Zt,QueryPromise:()=>$t,Placeholder:()=>zr,Path:()=>Po,Param:()=>Xr,OriginalName:()=>$r,One:()=>vt,NotFoundError:()=>xe,NoopLogger:()=>ui,Name:()=>Er,Many:()=>Xt,IsAlias:()=>Br,FakePrimitiveParam:()=>Hr,ExtraConfigColumns:()=>dr,ExtraConfigBuilder:()=>Dr,DrizzleQueryError:()=>St,DrizzleError:()=>Rt,DefaultLogger:()=>gi,Count:()=>zt,ConsoleLogWriter:()=>fi,ColumnTableAliasProxyHandler:()=>Qt,ColumnBuilder:()=>lr,ColumnAliasProxyHandler:()=>It,Column:()=>Wn,Client:()=>Jn,CONSTANTS:()=>gt,BaseName:()=>Qr,AggregatedField:()=>Yt});import bi from"crypto";import Fo,{existsSync as hi,readdirSync as ne}from"fs";import{join as oe}from"path";function jo(n){if(Fo.existsSync(`${n.migrationsFolder}/meta/_journal.json`))throw Error('We detected that you have old drizzle-kit migration folders. You must upgrade drizzle-kit and run "drizzle-kit up"');let o=n.migrationsFolder,t=[],s=ne(o).map((e)=>({path:oe(o,e,"migration.sql"),name:e})).filter((e)=>hi(e.path));s.sort((e,l)=>e.name.localeCompare(l.name));for(let e of s){let l=e.path,_=e.name.slice(0,14),A=Fo.readFileSync(l).toString(),C=A.split("--> statement-breakpoint").map((K)=>{return K}),S=ao(_);t.push({sql:C,bps:!0,folderMillis:S,hash:bi.createHash("sha256").update(A).digest("hex"),name:e.name})}return t}function bo(n,o){if(Array.isArray(o)||"migrationsJournal"in o){let s=Array.isArray(o)?o:o.migrationsJournal,e=Array.isArray(o)?void 0:o.migrationsTable,l=s.map((_)=>({sql:_.sql.split("--> statement-breakpoint"),folderMillis:_.timestamp,hash:"",bps:!0,name:_.name}));return n.dialect.migrate(l,n.session,{migrationsTable:e})}let t=jo(o);return n.dialect.migrate(t,n.session,o)}function uo(n){return H`count(${n||H.raw("*")})`.mapWith(Number)}function ho(n){return H`count(distinct ${n})`.mapWith(Number)}function nr(n){return H`avg(${n})`.mapWith(String)}function or(n){return H`avg(distinct ${n})`.mapWith(String)}function rr(n){return H`sum(${n})`.mapWith(String)}function tr(n){return H`sum(distinct ${n})`.mapWith(String)}function ir(n){return H`max(${n})`.mapWith(En(n,Wn)?n:String)}function er(n){return H`min(${n})`.mapWith(En(n,Wn)?n:String)}function Mn(n){return JSON.stringify(n)}function mr(n,o){if(Array.isArray(o))return H`${n} <-> ${Mn(o)}`;return H`${n} <-> ${o}`}function yr(n,o){if(Array.isArray(o))return H`${n} <+> ${Mn(o)}`;return H`${n} <+> ${o}`}function fr(n,o){if(Array.isArray(o))return H`${n} <#> ${Mn(o)}`;return H`${n} <#> ${o}`}function gr(n,o){if(Array.isArray(o))return H`${n} <=> ${Mn(o)}`;return H`${n} <=> ${o}`}function ur(n,o){if(Array.isArray(o))return H`${n} <~> ${Mn(o)}`;return H`${n} <~> ${o}`}function sr(n,o){if(Array.isArray(o))return H`${n} <%> ${Mn(o)}`;return H`${n} <%> ${o}`}import io from"path";var Yn={};On(Yn,{workspaceID:()=>de,useEffect:()=>Be,use:()=>Qe,make:()=>$e,invalidate:()=>Ie,has:()=>De,get:()=>So,directory:()=>to,context:()=>Ro,bind:()=>Oe});import{EventEmitter as re}from"events";var Un=new re;var Mo=new Set;function si(n){return Mo.add(n),()=>{Mo.delete(n)}}async function xo(n){await Promise.allSettled([...Mo].map((o)=>o(n)))}function Zn(n){return n()}var xi={};On(xi,{setInitialized:()=>se,list:()=>ge,layer:()=>Mi,get:()=>ue,fromRow:()=>_n,defaultLayer:()=>Ko,UpdateInput:()=>fe,Service:()=>xn,Info:()=>Li,Event:()=>Gi});import*as F from"fs/promises";import*as Bi from"os";import*as $n from"path";var te=N.String.pipe(N.brand("ProjectID")),q=te.pipe(bn((n)=>({global:n.make("global"),zod:j.string().pipe(j.custom())})));import*as Dn from"fs/promises";import*as b from"path";import*as Ni from"crypto";async function Co(n){let o=b.resolve(n);while(!0){let t=b.join(o,".git"),s=await Dn.stat(t).catch(()=>null);if(s){if(s.isDirectory())return t;let _=(await Dn.readFile(t,"utf-8")).trim().match(/^gitdir:\s*(.+)$/);if(!_)return null;let A=b.isAbsolute(_[1])?_[1]:b.resolve(o,_[1]);return b.resolve(A,"../..")}let e=b.dirname(o);if(e===o)return null;o=e}}async function pi(n){let o=await Dn.readFile(n,"utf-8").catch(()=>null);if(o===null)return null;return o.trim()||null}async function _i(n){let o=await pi(n);if(o)return o;let t=Ni.randomUUID();try{return await Dn.writeFile(n,t,{flag:"wx"}),t}catch(s){if(s.code!=="EEXIST")throw s;let e=await pi(n);if(e)return e;throw Error(`Project ID file was concurrently created but is empty: ${n}`)}}async function Ti(n){let o=await Co(n);if(o){let s=b.join(o,"qitqode-project-id");return q.make(await _i(s))}let t=b.join(n,".qitqode-project-id");return q.make(await _i(t))}async function ee(n){let o=await Co(n);if(!o)return;let t=$n.join(n,".qitqode-project-id"),s=$n.join(o,"qitqode-project-id"),e=(A)=>F.access(A).then(()=>!0).catch(()=>!1);if(await e(t)){if(!await e(s)){let A=await F.readFile(t,"utf-8");await F.writeFile(s,A)}await F.unlink(t).catch(()=>{})}let l=$n.join(o,"info","exclude");if(await F.mkdir($n.dirname(l),{recursive:!0}),!(await F.readFile(l,"utf-8").catch(()=>"")).includes(".qitqode-project-id"))await F.appendFile(l,`
|
|
2
|
+
import{$l as Qi,Vl as no,Wl as Vi,Xl as oo,Yl as ci,_l as $i}from"./chunk-afpwjn78.js";import{$m as yt,$n as Zt,Am as Er,An as Nt,Bm as Wr,Bn as Tt,Cm as Pr,Cn as lt,Dm as Ur,Dn as At,Em as Zr,En as Ot,Eo as Zi,Fm as vr,Fn as dt,Gm as Xr,Gn as Lo,Hm as Yr,Hn as Go,Im as H,In as $t,Jm as zr,Jn as Qt,Km as kr,Kn as Bt,Lm as Vr,Ln as Dt,Mm as cr,Mn as It,Nm as wr,Nn as Lt,Om as qr,On as Gt,Pm as Fr,Pn as Mt,Qm as ar,Qn as xt,Rm as jr,Rn as Ct,Sm as br,Sn as Jt,Tm as hr,Tn as Ht,Um as nt,Un as Kt,Vm as ot,Vn as Rt,Wm as rt,Wn as St,Xm as tt,Xn as Et,Ym as it,Yn as Wt,Zm as et,Zn as Pt,_m as mt,_n as Ut,am as pr,an as ft,ao as vt,bm as _r,bn as gt,bo as Xt,cm as En,cn as a,co as Yt,dm as Wn,dn as Q,do as zt,em as Nr,en as fn,eo as kt,fm as Tr,fn as yn,fo as Vt,gm as lr,gn as Yo,go as ct,hn as ut,ho as wt,im as Ar,in as X,io as qt,jm as Or,jn as so,jo as Ft,km as dr,kn as Pn,ko as at,lm as $r,ln as po,lo as jt,mm as Qr,mn as _o,mo as bt,nm as Br,nn as No,no as ht,om as Dr,on as To,oo as ni,pm as Ir,pn as lo,po as oi,qm as Lr,qn as Ao,qo as ri,rm as Gr,rn as Oo,ro as ti,sm as Mr,sn as st,so as ii,tm as xr,tn as $o,to as ei,um as Cr,un as Qo,uo as mi,vm as Jr,vn as Bo,vo as yi,wm as Hr,wn as pt,wo as ao,xm as Kr,xn as Do,xo as fi,ym as Rr,yn as _t,yo as gi,zm as Sr,zn as Io,zo as ui}from"./chunk-c4x99ayd.js";import{ip as bn,mp as hn}from"./chunk-jazpapb9.js";import{tp as Yi}from"./chunk-hqv0s6sw.js";import{up as Jo}from"./chunk-apv1v4tk.js";import{sr as Xn,tr as ro,ur as Nn,vr as Hi,wr as Wi,yr as Ki}from"./chunk-mwbcmvmh.js";import{zr as Si}from"./chunk-9y65kbcf.js";import{Fs as eo}from"./chunk-scb48j07.js";import{Js as Wo,Ws as un,et as dn,ft as nn,ot as V}from"./chunk-tydvpy1s.js";import{At as di,Dt as wo,Et as c,It as go}from"./chunk-b2k9yafd.js";import{Kt as j}from"./chunk-jek1cnfk.js";import{Xz as Tn,dA as Cn,rA as Kn}from"./chunk-kdr6nxmk.js";import{AF as h,DN as N,IE as Eo,OO as Oi,PE as kn,PN as vo,WE as sn,bI as r,gC as wn,kF as Ai,lD as Qn,qJ as Ln}from"./chunk-shav33fq.js";import{pP as On}from"./chunk-naq602da.js";var qo={};On(qo,{run:()=>ji});var mn={time_created:a().notNull().$default(()=>Date.now()),time_updated:a().notNull().$onUpdate(()=>Date.now())};var x=yn("project",{id:Q().$type().primaryKey(),worktree:Q().notNull(),vcs:Q(),name:Q(),icon_url:Q(),icon_color:Q(),...mn,time_initialized:a(),sandboxes:Q({mode:"json"}).notNull().$type(),commands:Q({mode:"json"}).$type()});var gn=yn("session",{id:Q().$type().primaryKey(),project_id:Q().$type().notNull().references(()=>x.id,{onDelete:"cascade"}),workspace_id:Q().$type(),parent_id:Q().$type(),context_from:Q().$type(),context_watermark:Q().$type(),slug:Q().notNull(),directory:Q().notNull(),title:Q().notNull(),version:Q().notNull(),share_url:Q(),summary_additions:a(),summary_deletions:a(),summary_files:a(),summary_diffs:Q({mode:"json"}).$type(),revert:Q({mode:"json"}).$type(),permission:Q({mode:"json"}).$type(),...mn,time_compacting:a(),time_archived:a(),last_checkpoint_message_id:Q().$type()},(n)=>[fn("session_project_idx").on(n.project_id),fn("session_workspace_idx").on(n.workspace_id),fn("session_parent_idx").on(n.parent_id),fn("session_context_from_idx").on(n.context_from)]),fo=yn("message",{id:Q().$type().primaryKey(),session_id:Q().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),agent_id:Q().notNull().default("main"),...mn,data:Q({mode:"json"}).notNull().$type()},(n)=>[fn("message_session_time_created_id_idx").on(n.session_id,n.time_created,n.id),fn("message_session_agent_idx").on(n.session_id,n.agent_id,n.id)]),zo=yn("part",{id:Q().$type().primaryKey(),message_id:Q().$type().notNull().references(()=>fo.id,{onDelete:"cascade"}),session_id:Q().$type().notNull(),...mn,data:Q({mode:"json"}).notNull().$type()},(n)=>[fn("part_message_id_id_idx").on(n.message_id,n.id),fn("part_session_idx").on(n.session_id)]),ko=yn("todo",{session_id:Q().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),content:Q().notNull(),status:Q().notNull(),position:a().notNull(),...mn},(n)=>[Yo({columns:[n.session_id,n.position]}),fn("todo_session_idx").on(n.session_id)]),Vo=yn("permission",{project_id:Q().primaryKey().references(()=>x.id,{onDelete:"cascade"}),...mn,data:Q({mode:"json"}).notNull().$type()});var co=yn("session_share",{session_id:Q().primaryKey().references(()=>gn.id,{onDelete:"cascade"}),id:Q().notNull(),secret:Q().notNull(),url:Q().notNull(),...mn});import k from"path";var v=V.create({service:"json-migration"});async function ji(n,o){let t=k.join(dn.Path.data,"storage");if(!await go.exists(t))return v.info("storage directory does not exist, skipping migration"),{projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]};v.info("starting json to sqlite migration",{storageDir:t});let s=performance.now();n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = OFF"),n.run("PRAGMA cache_size = 10000"),n.run("PRAGMA temp_store = MEMORY");let e={projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]},l={sessions:0,todos:0,permissions:0,shares:0},_=e.errors,A=1000,C=Date.now();async function S(g){return wo.scan(g,{cwd:t,absolute:!0})}async function K(g,G,J){let B=J-G,T=Array(B);for(let P=0;P<B;P++)T[P]=go.readJson(g[G+P]);let M=await Promise.allSettled(T),Z=Array(B);for(let P=0;P<M.length;P++){let w=M[P];if(w.status==="fulfilled"){Z[P]=w.value;continue}_.push(`failed to read ${g[G+P]}: ${w.reason}`)}return Z}function R(g,G,J){if(g.length===0)return 0;try{return n.insert(G).values(g).onConflictDoNothing().run(),g.length}catch(B){return _.push(`failed to migrate ${J} batch: ${B}`),0}}v.info("scanning files...");let[E,d,D,L,u,p,m]=await Promise.all([S("project/*.json"),S("session/*/*.json"),S("message/*/*.json"),S("part/*/*.json"),S("todo/*.json"),S("permission/*.json"),S("session_share/*.json")]);v.info("file scan complete",{projects:E.length,sessions:d.length,messages:D.length,parts:L.length,todos:u.length,permissions:p.length,shares:m.length});let f=Math.max(1,E.length+d.length+D.length+L.length+u.length+p.length+m.length),i=o?.progress,y=0,$=(g,G)=>{y=Math.min(f,y+G),i?.({current:y,total:f,label:g})};i?.({current:y,total:f,label:"starting"}),n.run("BEGIN TRANSACTION");let I=new Set,O=[];for(let g=0;g<E.length;g+=A){let G=Math.min(g+A,E.length),J=await K(E,g,G);O.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=k.basename(E[g+B],".json");I.add(M),O.push({id:M,worktree:T.worktree??"/",vcs:T.vcs,name:T.name??void 0,icon_url:T.icon?.url,icon_color:T.icon?.color,time_created:T.time?.created??C,time_updated:T.time?.updated??C,time_initialized:T.time?.initialized,sandboxes:T.sandboxes??[],commands:T.commands})}e.projects+=R(O,x,"project"),$("projects",G-g)}v.info("migrated projects",{count:e.projects,duration:Math.round(performance.now()-s)});let U=d.map((g)=>k.basename(k.dirname(g))),z=new Set,en=[];for(let g=0;g<d.length;g+=A){let G=Math.min(g+A,d.length),J=await K(d,g,G);en.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=k.basename(d[g+B],".json"),Z=U[g+B];if(!I.has(Z)){l.sessions++;continue}z.add(M),en.push({id:M,project_id:Z,parent_id:T.parentID??null,slug:T.slug??"",directory:T.directory??"",title:T.title??"",version:T.version??"",share_url:T.share?.url??null,summary_additions:T.summary?.additions??null,summary_deletions:T.summary?.deletions??null,summary_files:T.summary?.files??null,summary_diffs:T.summary?.diffs??null,revert:T.revert??null,permission:T.permission??null,time_created:T.time?.created??C,time_updated:T.time?.updated??C,time_compacting:T.time?.compacting??null,time_archived:T.time?.archived??null})}e.sessions+=R(en,gn,"session"),$("sessions",G-g)}if(v.info("migrated sessions",{count:e.sessions}),l.sessions>0)v.warn("skipped orphaned sessions",{count:l.sessions});let pn=[],W=[],qn=new Map;for(let g of D){let G=k.basename(k.dirname(g));if(!z.has(G))continue;pn.push(g),W.push(G)}for(let g=0;g<pn.length;g+=A){let G=Math.min(g+A,pn.length),J=await K(pn,g,G),B=Array(J.length),T=0;for(let M=0;M<J.length;M++){let Z=J[M];if(!Z)continue;let P=pn[g+M],w=k.basename(P,".json"),Sn=W[g+M];qn.set(w,Sn);let Bn=Z;delete Bn.id,delete Bn.sessionID,B[T++]={id:w,session_id:Sn,time_created:Z.time?.created??C,time_updated:Z.time?.updated??C,data:Bn}}B.length=T,e.messages+=R(B,fo,"message"),$("messages",G-g)}v.info("migrated messages",{count:e.messages});for(let g=0;g<L.length;g+=A){let G=Math.min(g+A,L.length),J=await K(L,g,G),B=Array(J.length),T=0;for(let M=0;M<J.length;M++){let Z=J[M];if(!Z)continue;let P=L[g+M],w=k.basename(P,".json"),Sn=k.basename(k.dirname(P)),Bn=qn.get(Sn);if(!Bn){_.push(`part missing message session: ${P}`);continue}if(!z.has(Bn))continue;let jn=Z;delete jn.id,delete jn.messageID,delete jn.sessionID,B[T++]={id:w,message_id:Sn,session_id:Bn,time_created:Z.time?.created??C,time_updated:Z.time?.updated??C,data:jn}}B.length=T,e.parts+=R(B,zo,"part"),$("parts",G-g)}v.info("migrated parts",{count:e.parts});let An=u.map((g)=>k.basename(g,".json"));for(let g=0;g<u.length;g+=A){let G=Math.min(g+A,u.length),J=await K(u,g,G),B=[];for(let T=0;T<J.length;T++){let M=J[T];if(!M)continue;let Z=An[g+T];if(!z.has(Z)){l.todos++;continue}if(!Array.isArray(M)){_.push(`todo not an array: ${u[g+T]}`);continue}for(let P=0;P<M.length;P++){let w=M[P];if(!w?.content||!w?.status)continue;B.push({session_id:Z,content:w.content,status:w.status,position:P,time_created:C,time_updated:C})}}e.todos+=R(B,ko,"todo"),$("todos",G-g)}if(v.info("migrated todos",{count:e.todos}),l.todos>0)v.warn("skipped orphaned todos",{count:l.todos});let Fn=p.map((g)=>k.basename(g,".json")),Rn=[];for(let g=0;g<p.length;g+=A){let G=Math.min(g+A,p.length),J=await K(p,g,G);Rn.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=Fn[g+B];if(!I.has(M)){l.permissions++;continue}Rn.push({project_id:M,data:T})}e.permissions+=R(Rn,Vo,"permission"),$("permissions",G-g)}if(v.info("migrated permissions",{count:e.permissions}),l.permissions>0)v.warn("skipped orphaned permissions",{count:l.permissions});let an=m.map((g)=>k.basename(g,".json")),Gn=[];for(let g=0;g<m.length;g+=A){let G=Math.min(g+A,m.length),J=await K(m,g,G);Gn.length=0;for(let B=0;B<J.length;B++){let T=J[B];if(!T)continue;let M=an[g+B];if(!z.has(M)){l.shares++;continue}if(!T?.id||!T?.secret||!T?.url){_.push(`session_share missing id/secret/url: ${m[g+B]}`);continue}Gn.push({session_id:M,id:T.id,secret:T.secret,url:T.url})}e.shares+=R(Gn,co,"session_share"),$("shares",G-g)}if(v.info("migrated session shares",{count:e.shares}),l.shares>0)v.warn("skipped orphaned session shares",{count:l.shares});if(n.run("COMMIT"),v.info("json migration complete",{projects:e.projects,sessions:e.sessions,messages:e.messages,parts:e.parts,todos:e.todos,permissions:e.permissions,shares:e.shares,errorCount:e.errors.length,duration:Math.round(performance.now()-s)}),e.errors.length>0)v.warn("migration errors",{errors:e.errors.slice(0,20)});return i?.({current:f,total:f,label:"complete"}),e}var In={};On(In,{use:()=>Je,transaction:()=>Ke,textDecoder:()=>mt,sumDistinct:()=>tr,sum:()=>rr,sql:()=>H,relationsOrderToSQL:()=>ii,relationsFilterToSQL:()=>ti,relationToSQL:()=>mi,relationExtrasToSQL:()=>ei,processRelations:()=>Wt,placeholder:()=>kr,param:()=>Yr,orderSelectedFields:()=>ar,orderByOperators:()=>Vt,or:()=>po,operators:()=>kt,notLike:()=>Nt,notInArray:()=>st,notIlike:()=>lt,notExists:()=>pt,notBetween:()=>_t,not:()=>_o,noopMapper:()=>vr,noopEncoder:()=>Zr,noopDecoder:()=>Ur,ne:()=>so,name:()=>Wr,min:()=>er,max:()=>ir,mapUpdateSet:()=>br,mapResultRow:()=>Fr,mapRelationalRow:()=>wt,mapColumnsInSQLToAlias:()=>Ht,mapColumnsInAliasedSQLToAlias:()=>Jt,lte:()=>Ao,lt:()=>lo,like:()=>Io,l2Distance:()=>mr,l1Distance:()=>yr,jaccardDistance:()=>sr,isWithEnum:()=>ft,isView:()=>wr,isTable:()=>Lr,isSQLWrapper:()=>Kr,isNull:()=>$o,isNotNull:()=>Qo,isDriverValueEncoder:()=>Pr,isConfig:()=>et,is:()=>En,innerProduct:()=>fr,inArray:()=>Oo,ilike:()=>Tt,haveSameKeys:()=>jr,hasOwnEntityKind:()=>_r,hammingDistance:()=>ur,gte:()=>To,gt:()=>No,getViewSelectedFields:()=>ot,getViewName:()=>qr,getTableUniqueName:()=>Mr,getTableName:()=>Gr,getTableLikeName:()=>tt,getTableColumns:()=>nt,getTableAsAliasSQL:()=>yi,getOriginalColumnFromAlias:()=>Kt,getOrderByOperators:()=>ct,getColumns:()=>rt,getColumnTable:()=>Nr,getColumnNameAndConfig:()=>it,getChannelPath:()=>zi,fillPlaceholders:()=>Vr,fieldSelectionToSQL:()=>ri,extractTablesFromSchema:()=>ht,extractExtendedColumnType:()=>Tr,exists:()=>Bo,eq:()=>X,entityKind:()=>pr,effect:()=>He,desc:()=>Go,defineRelationsPart:()=>oi,defineRelations:()=>ni,createRelationsHelper:()=>bt,countDistinct:()=>ho,count:()=>uo,cosineDistance:()=>gr,close:()=>Ce,buildRelationsParts:()=>Ut,buildRelations:()=>Pt,bindIfParam:()=>ut,between:()=>Do,avgDistinct:()=>or,avg:()=>nr,assertUnreachable:()=>yt,asc:()=>Lo,arrayOverlaps:()=>dt,arrayContains:()=>At,arrayContained:()=>Ot,applyMixins:()=>hr,and:()=>Pn,aliasedTableColumn:()=>Ct,aliasedTable:()=>Gt,aliasedRelation:()=>xt,aliasedColumn:()=>Mt,WithSubquery:()=>Cr,ViewSelectionAliasProxyHandler:()=>Bt,ViewBaseConfig:()=>Jr,View:()=>cr,TransactionRollbackError:()=>Et,TableSchema:()=>Ar,TableColumns:()=>Or,TableAliasProxyHandler:()=>Dt,Table:()=>Ir,Subquery:()=>xr,StringChunk:()=>Rr,SQL:()=>Sr,RelationsHelperStatic:()=>jt,RelationsBuilderTable:()=>qt,RelationsBuilderJunctionColumn:()=>at,RelationsBuilderColumn:()=>Ft,RelationTableAliasProxyHandler:()=>Lt,Relation:()=>Zt,QueryPromise:()=>$t,Placeholder:()=>zr,Path:()=>Po,Param:()=>Xr,OriginalName:()=>$r,One:()=>vt,NotFoundError:()=>xe,NoopLogger:()=>ui,Name:()=>Er,Many:()=>Xt,IsAlias:()=>Br,FakePrimitiveParam:()=>Hr,ExtraConfigColumns:()=>dr,ExtraConfigBuilder:()=>Dr,DrizzleQueryError:()=>St,DrizzleError:()=>Rt,DefaultLogger:()=>gi,Count:()=>zt,ConsoleLogWriter:()=>fi,ColumnTableAliasProxyHandler:()=>Qt,ColumnBuilder:()=>lr,ColumnAliasProxyHandler:()=>It,Column:()=>Wn,Client:()=>Jn,CONSTANTS:()=>gt,BaseName:()=>Qr,AggregatedField:()=>Yt});import bi from"crypto";import Fo,{existsSync as hi,readdirSync as ne}from"fs";import{join as oe}from"path";function jo(n){if(Fo.existsSync(`${n.migrationsFolder}/meta/_journal.json`))throw Error('We detected that you have old drizzle-kit migration folders. You must upgrade drizzle-kit and run "drizzle-kit up"');let o=n.migrationsFolder,t=[],s=ne(o).map((e)=>({path:oe(o,e,"migration.sql"),name:e})).filter((e)=>hi(e.path));s.sort((e,l)=>e.name.localeCompare(l.name));for(let e of s){let l=e.path,_=e.name.slice(0,14),A=Fo.readFileSync(l).toString(),C=A.split("--> statement-breakpoint").map((K)=>{return K}),S=ao(_);t.push({sql:C,bps:!0,folderMillis:S,hash:bi.createHash("sha256").update(A).digest("hex"),name:e.name})}return t}function bo(n,o){if(Array.isArray(o)||"migrationsJournal"in o){let s=Array.isArray(o)?o:o.migrationsJournal,e=Array.isArray(o)?void 0:o.migrationsTable,l=s.map((_)=>({sql:_.sql.split("--> statement-breakpoint"),folderMillis:_.timestamp,hash:"",bps:!0,name:_.name}));return n.dialect.migrate(l,n.session,{migrationsTable:e})}let t=jo(o);return n.dialect.migrate(t,n.session,o)}function uo(n){return H`count(${n||H.raw("*")})`.mapWith(Number)}function ho(n){return H`count(distinct ${n})`.mapWith(Number)}function nr(n){return H`avg(${n})`.mapWith(String)}function or(n){return H`avg(distinct ${n})`.mapWith(String)}function rr(n){return H`sum(${n})`.mapWith(String)}function tr(n){return H`sum(distinct ${n})`.mapWith(String)}function ir(n){return H`max(${n})`.mapWith(En(n,Wn)?n:String)}function er(n){return H`min(${n})`.mapWith(En(n,Wn)?n:String)}function Mn(n){return JSON.stringify(n)}function mr(n,o){if(Array.isArray(o))return H`${n} <-> ${Mn(o)}`;return H`${n} <-> ${o}`}function yr(n,o){if(Array.isArray(o))return H`${n} <+> ${Mn(o)}`;return H`${n} <+> ${o}`}function fr(n,o){if(Array.isArray(o))return H`${n} <#> ${Mn(o)}`;return H`${n} <#> ${o}`}function gr(n,o){if(Array.isArray(o))return H`${n} <=> ${Mn(o)}`;return H`${n} <=> ${o}`}function ur(n,o){if(Array.isArray(o))return H`${n} <~> ${Mn(o)}`;return H`${n} <~> ${o}`}function sr(n,o){if(Array.isArray(o))return H`${n} <%> ${Mn(o)}`;return H`${n} <%> ${o}`}import io from"path";var Yn={};On(Yn,{workspaceID:()=>de,useEffect:()=>Be,use:()=>Qe,make:()=>$e,invalidate:()=>Ie,has:()=>De,get:()=>So,directory:()=>to,context:()=>Ro,bind:()=>Oe});import{EventEmitter as re}from"events";var Un=new re;var Mo=new Set;function si(n){return Mo.add(n),()=>{Mo.delete(n)}}async function xo(n){await Promise.allSettled([...Mo].map((o)=>o(n)))}function Zn(n){return n()}var xi={};On(xi,{setInitialized:()=>se,list:()=>ge,layer:()=>Mi,get:()=>ue,fromRow:()=>_n,defaultLayer:()=>Ko,UpdateInput:()=>fe,Service:()=>xn,Info:()=>Li,Event:()=>Gi});import*as F from"fs/promises";import*as Bi from"os";import*as $n from"path";var te=N.String.pipe(N.brand("ProjectID")),q=te.pipe(bn((n)=>({global:n.make("global"),zod:j.string().pipe(j.custom())})));import*as Dn from"fs/promises";import*as b from"path";import*as Ni from"crypto";async function Co(n){let o=b.resolve(n);while(!0){let t=b.join(o,".git"),s=await Dn.stat(t).catch(()=>null);if(s){if(s.isDirectory())return t;let _=(await Dn.readFile(t,"utf-8")).trim().match(/^gitdir:\s*(.+)$/);if(!_)return null;let A=b.isAbsolute(_[1])?_[1]:b.resolve(o,_[1]);return b.resolve(A,"../..")}let e=b.dirname(o);if(e===o)return null;o=e}}async function pi(n){let o=await Dn.readFile(n,"utf-8").catch(()=>null);if(o===null)return null;return o.trim()||null}async function _i(n){let o=await pi(n);if(o)return o;let t=Ni.randomUUID();try{return await Dn.writeFile(n,t,{flag:"wx"}),t}catch(s){if(s.code!=="EEXIST")throw s;let e=await pi(n);if(e)return e;throw Error(`Project ID file was concurrently created but is empty: ${n}`)}}async function Ti(n){let o=await Co(n);if(o){let s=b.join(o,"qitqode-project-id");return q.make(await _i(s))}let t=b.join(n,".qitqode-project-id");return q.make(await _i(t))}async function ee(n){let o=await Co(n);if(!o)return;let t=$n.join(n,".qitqode-project-id"),s=$n.join(o,"qitqode-project-id"),e=(A)=>F.access(A).then(()=>!0).catch(()=>!1);if(await e(t)){if(!await e(s)){let A=await F.readFile(t,"utf-8");await F.writeFile(s,A)}await F.unlink(t).catch(()=>{})}let l=$n.join(o,"info","exclude");if(await F.mkdir($n.dirname(l),{recursive:!0}),!(await F.readFile(l,"utf-8").catch(()=>"")).includes(".qitqode-project-id"))await F.appendFile(l,`
|
|
3
3
|
.qitqode-project-id
|
|
4
4
|
`)}var li=V.create({service:"project"}),me=262144,Ho=N.Literal("git"),Di=N.Struct({url:N.optional(N.String),override:N.optional(N.String),color:N.optional(N.String)}),Ii=N.Struct({start:N.optional(N.String.annotate({description:"Startup script to run when creating a new workspace (worktree)"}))}),ye=N.Struct({created:N.Number,updated:N.Number,initialized:N.optional(N.Number)}),Li=N.Struct({id:q,worktree:N.String,vcs:N.optional(Ho),name:N.optional(N.String),icon:N.optional(Di),commands:N.optional(Ii),time:ye,sandboxes:N.Array(N.String)}).annotate({identifier:"Project"}).pipe(bn((n)=>({zod:hn(n)}))),Gi={Updated:Qi.define("project.updated",Li.zod)};function _n(n){let o=n.icon_url||n.icon_color?{url:n.icon_url??void 0,color:n.icon_color??void 0}:void 0;return{id:n.id,worktree:n.worktree,vcs:n.vcs?N.decodeUnknownSync(Ho)(n.vcs):void 0,name:n.name??void 0,icon:o,time:{created:n.time_created,updated:n.time_updated,initialized:n.time_initialized??void 0},sandboxes:n.sandboxes,commands:n.commands??void 0}}var fe=j.object({projectID:q.zod,name:j.string().optional(),icon:hn(Di).optional(),commands:hn(Ii).optional()});class xn extends Qn.Service()("@qitqode/Project"){}var Mi=h.effect(xn,r.gen(function*(){let n=yield*c.Service,o=yield*Oi.Path,t=yield*no.ChildProcessSpawner,s=r.fnUntraced(function*(i,y){return yield*$i(t,i,y)},r.catch(()=>r.succeed({code:1,text:"",stderr:""}))),e=(i)=>r.sync(()=>In.use(i)),l=(i)=>r.sync(()=>Un.emit("event",{directory:"global",project:i.id,payload:{type:Gi.Updated.type,properties:i}})),_=N.decodeUnknownSync(N.optional(Ho))(nn.QITQODE_FAKE_VCS),A=(i,y)=>{if(!y)return i;if(y=y.replace(/[\r\n]+$/,""),!y)return i;if(y=c.windowsPath(y),o.isAbsolute(y))return o.normalize(y);return o.resolve(i,y)},C=yield*Ai.Scope,S=r.fn("Project.fromDirectory")(function*(i){li.info("fromDirectory",{directory:i});let y=yield*r.gen(function*(){if(nn.QITQODE_DISABLE_GIT)return{id:q.global,worktree:i,sandbox:i,vcs:_};let z=(yield*n.up({targets:[".git"],start:i}).pipe(r.orDie))[0];if(!z)return{id:q.global,worktree:"/",sandbox:"/",vcs:_};let en=o.dirname(z),pn=process.env.HOME??process.env.USERPROFILE??Bi.homedir();if(en===pn||$n.parse(en).root===en)return li.warn("ignoring .git at home or filesystem root, snapshots disabled",{dotgit:z}),{id:q.global,worktree:i,sandbox:i,vcs:_};let W=en,qn=yield*r.sync(()=>Jo("git")),An;if(!qn)return{id:An??q.global,worktree:W,sandbox:W,vcs:_};let Fn=yield*s(["rev-parse","--git-common-dir"],{cwd:W});if(Fn.code!==0)return{id:An??q.global,worktree:W,sandbox:W,vcs:_};let Rn=(()=>{let Gn=A(W,Fn.text.trim());return Gn===W?W:o.dirname(Gn)})();if(An==null)yield*r.promise(()=>ee(W)),An=yield*r.promise(()=>Ti(W));let an=yield*s(["rev-parse","--show-toplevel"],{cwd:W});if(an.code!==0)return{id:An,worktree:W,sandbox:W,vcs:_};return W=A(W,an.text.trim()),{id:An,sandbox:W,worktree:Rn,vcs:"git"}}),$=yield*e((U)=>U.select().from(x).where(X(x.id,y.id)).get()),I=$?_n($):{id:y.id,worktree:y.worktree,vcs:y.vcs,sandboxes:[],time:{created:Date.now(),updated:Date.now()}};if(nn.QITQODE_EXPERIMENTAL_ICON_DISCOVERY)yield*K(I).pipe(r.ignore,r.forkIn(C));let O={...I,worktree:y.worktree,vcs:y.vcs,time:{...I.time,updated:Date.now()}};if(y.sandbox!==O.worktree&&!O.sandboxes.includes(y.sandbox))O.sandboxes.push(y.sandbox);if(O.sandboxes=yield*r.forEach(O.sandboxes,(U)=>n.exists(U).pipe(r.orDie,r.map((z)=>z?U:void 0)),{concurrency:16}).pipe(r.map((U)=>U.filter((z)=>z!==void 0))),yield*e((U)=>U.insert(x).values({id:O.id,worktree:O.worktree,vcs:O.vcs??null,name:O.name,icon_url:O.icon?.url,icon_color:O.icon?.color,time_created:O.time.created,time_updated:O.time.updated,time_initialized:O.time.initialized,sandboxes:O.sandboxes,commands:O.commands}).onConflictDoUpdate({target:x.id,set:{worktree:O.worktree,vcs:O.vcs??null,name:O.name,icon_url:O.icon?.url,icon_color:O.icon?.color,time_updated:O.time.updated,time_initialized:O.time.initialized,sandboxes:O.sandboxes,commands:O.commands}}).run()),y.id!==q.global)yield*e((U)=>U.update(gn).set({project_id:y.id}).where(Pn(X(gn.project_id,q.global),X(gn.directory,y.worktree))).run());return yield*l(O),{project:O,sandbox:y.sandbox}}),K=r.fn("Project.discover")(function*(i){if(i.vcs!=="git")return;if(i.icon?.override)return;if(i.icon?.url)return;let $=(yield*n.glob("**/favicon.{ico,png,svg,jpg,jpeg,webp}",{cwd:i.worktree,absolute:!0,include:"file"}).pipe(r.orDie)).sort((pn,W)=>pn.length-W.length)[0];if(!$)return;let I=yield*n.stat($).pipe(r.orDie);if(Number(I.size)>me)return;let O=yield*n.readFile($).pipe(r.orDie),U=Buffer.from(O).toString("base64"),en=`data:${c.mimeType($)};base64,${U}`;yield*d({projectID:i.id,icon:{url:en}})}),R=r.fn("Project.list")(function*(){return yield*e((i)=>i.select().from(x).all().map(_n))}),E=r.fn("Project.get")(function*(i){let y=yield*e(($)=>$.select().from(x).where(X(x.id,i)).get());return y?_n(y):void 0}),d=r.fn("Project.update")(function*(i){let y=yield*e((I)=>I.update(x).set({name:i.name,icon_url:i.icon?.url,icon_color:i.icon?.color,commands:i.commands,time_updated:Date.now()}).where(X(x.id,i.projectID)).returning().get());if(!y)throw Error(`Project not found: ${i.projectID}`);let $=_n(y);return yield*l($),$}),D=r.fn("Project.initGit")(function*(i){if(i.project.vcs==="git")return i.project;if(!(yield*r.sync(()=>Jo("git"))))throw Error("Git is not installed");let y=yield*s(["init","--quiet"],{cwd:i.directory});if(y.code!==0)throw Error(y.stderr.trim()||y.text.trim()||"Failed to initialize git repository");let{project:$}=yield*S(i.directory);return $}),L=r.fn("Project.setInitialized")(function*(i){yield*e((y)=>y.update(x).set({time_initialized:Date.now()}).where(X(x.id,i)).run())}),u=r.fn("Project.sandboxes")(function*(i){let y=yield*e((I)=>I.select().from(x).where(X(x.id,i)).get());if(!y)return[];let $=_n(y);return yield*r.forEach($.sandboxes,(I)=>n.isDir(I).pipe(r.orDie,r.map((O)=>O?I:void 0)),{concurrency:16}).pipe(r.map((I)=>I.filter((O)=>O!==void 0)))}),p=r.fnUntraced(function*(i,y){let $=yield*e((I)=>I.update(x).set({sandboxes:y,time_updated:Date.now()}).where(X(x.id,i)).returning().get());if(!$)throw Error(`Project not found: ${i}`);yield*l(_n($))}),m=r.fn("Project.addSandbox")(function*(i,y){let $=yield*e((O)=>O.select().from(x).where(X(x.id,i)).get());if(!$)throw Error(`Project not found: ${i}`);let I=[...$.sandboxes];if(!I.includes(y))I.push(y);yield*p(i,I)}),f=r.fn("Project.removeSandbox")(function*(i,y){let $=yield*e((O)=>O.select().from(x).where(X(x.id,i)).get());if(!$)throw Error(`Project not found: ${i}`);let I=$.sandboxes.filter((O)=>O!==y);yield*p(i,I)});return xn.of({fromDirectory:S,discover:K,list:R,get:E,update:d,initGit:D,setInitialized:L,sandboxes:u,addSandbox:m,removeSandbox:f})})),Ko=Mi.pipe(h.provide(oo),h.provide(c.defaultLayer),h.provide(di.layer));function ge(){return In.use((n)=>n.select().from(x).all().map((o)=>_n(o)))}function ue(n){let o=In.use((t)=>t.select().from(x).where(X(x.id,n)).get());if(!o)return;return _n(o)}function se(n){In.use((o)=>o.update(x).set({time_initialized:Date.now()}).where(X(x.id,n)).run())}import{parse as pe}from"path";var rn=un.create("instance");Hi(()=>rn.use());var tn=new Map,_e=Ki(xn,Ko),Ne=new Set(["/etc","/proc","/sys","/dev","/boot","/root","/var","/private/etc","/private/var"]);function Te(n){if(n===pe(n).root)return"filesystem root is not a valid project directory";for(let o of Ne)if(n===o||c.contains(o,n))return"target is a protected system directory";return null}function le(n){let o=Te(n);if(o)throw Error("Access denied: "+o)}var vn={all:void 0};function Ci(n){return Zn(async()=>{let o=n.project&&n.worktree?{directory:n.directory,worktree:n.worktree,project:n.project}:await _e.runPromise((t)=>t.fromDirectory(n.directory)).then(({project:t,sandbox:s})=>({directory:n.directory,worktree:s,project:t}));return await rn.provide(o,async()=>{await n.init?.()}),o})}function Ji(n,o){let t=o.catch((s)=>{if(tn.get(n)===t)tn.delete(n);throw s});return tn.set(n,t),t}var on={async provide(n){let o=c.resolve(n.directory);le(o);let t=tn.get(o);if(!t)V.Default.info("creating instance",{directory:o}),t=Ji(o,Ci({directory:o,init:n.init}));let s=await t;return rn.provide(s,async()=>{return n.fn()})},get current(){return rn.use()},get directory(){return rn.use().directory},get worktree(){return rn.use().worktree},get project(){return rn.use().project},containsPath(n,o){let t=o??on;if(c.contains(t.directory,n))return!0;if(t.worktree==="/")return!1;return c.contains(t.worktree,n)},bind(n){let o=rn.use();return(...t)=>rn.provide(o,()=>n(...t))},restore(n,o){return rn.provide(n,o)},async reload(n){let o=c.resolve(n.directory);V.Default.info("reloading instance",{directory:o}),await xo(o),tn.delete(o);let t=Ji(o,Ci({...n,directory:o}));return Un.emit("event",{directory:o,project:n.project?.id,workspace:Nn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:o}}}),await t},async dispose(){let{directory:n,project:o}=on;V.Default.info("disposing instance",{directory:n}),await xo(n),tn.delete(n),Un.emit("event",{directory:n,project:o.id,workspace:Nn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:n}}})},async disposeAll(){if(vn.all)return vn.all;return vn.all=Zn(async()=>{V.Default.info("disposing all instances");let n=[...tn.entries()];for(let[o,t]of n){if(tn.get(o)!==t)continue;let s=await t.catch((e)=>{V.Default.warn("instance dispose failed",{key:o,error:e});return});if(!s){if(tn.get(o)===t)tn.delete(o);continue}if(tn.get(o)!==t)continue;await rn.provide(s,async()=>{await on.dispose()})}}).finally(()=>{vn.all=void 0}),vn.all}};var Ri="~qitqode/InstanceState",Oe=(n)=>{try{return on.bind(n)}catch(s){if(!(s instanceof un.NotFound))throw s}let o=Ln.getCurrent(),t=o?Qn.getReferenceUnsafe(o.context,Xn):void 0;if(!t)return n;return(...s)=>on.restore(t,()=>n(...s))},Ro=r.gen(function*(){return(yield*Xn)??on.current}),de=r.gen(function*(){return(yield*ro)??Nn.workspaceID}),to=r.map(Ro,(n)=>n.directory),$e=(n)=>r.gen(function*(){let o=yield*Cn.make({capacity:Number.POSITIVE_INFINITY,lookup:()=>r.gen(function*(){return yield*n(yield*Ro)})}),t=si((s)=>r.runPromise(Cn.invalidate(o,s).pipe(r.provide(Si))));return yield*r.addFinalizer(()=>r.sync(t)),{[Ri]:Ri,cache:o}}),So=(n)=>r.gen(function*(){return yield*Cn.get(n.cache,yield*to)}),Qe=(n,o)=>r.map(So(n),o),Be=(n,o)=>r.flatMap(So(n),o),De=(n)=>r.gen(function*(){return yield*Cn.has(n.cache,yield*to)}),Ie=(n)=>r.gen(function*(){return yield*Cn.invalidate(n.cache,yield*to)});var Pi={};On(Pi,{make:()=>Le});function Ei(n,o,t){if(n&&o!==void 0)return Nn.restore(o,()=>on.restore(n,t));if(n)return on.restore(n,t);if(o!==void 0)return Nn.restore(o,t);return t()}function Le(){return r.gen(function*(){let n=yield*r.context(),t=(yield*Xn)??(()=>{try{return on.current}catch(_){if(!(_ instanceof un.NotFound))throw _}})(),s=(yield*ro)??Nn.workspaceID,e=(_)=>Wi(_,{instance:t,workspace:s}),l=(_)=>e(_).pipe(r.provide(n));return{promise:(_)=>Ei(t,s,()=>r.runPromise(l(_))),fork:(_)=>Ei(t,s,()=>r.runFork(l(_)))}})}var Ui={};On(Ui,{make:()=>Ge,Cancelled:()=>zn});class zn extends N.TaggedErrorClass()("RunnerCancelled",{}){}var Ge=(n,o)=>{let t=Tn.makeUnsafe({_tag:"Idle"}),s=o?.onIdle??r.void,e=o?.onBusy??r.void,l=o?.onInterrupt,_=0,A=()=>Tn.getUnsafe(t),C=()=>{return _+=1,_},S=(m,f)=>kn.isFailure(f)&&Eo.hasInterruptsOnly(f.cause)?sn.fail(m,new zn).pipe(r.asVoid):sn.done(m,f).pipe(r.asVoid),K=()=>Tn.modify(t,(m)=>[m._tag==="Idle"?s:r.void,m]).pipe(r.flatten),R=(m,f,i)=>Tn.modify(t,(y)=>[r.gen(function*(){if(y._tag==="Running"&&y.run.id===m)yield*s;yield*S(f,i)}),y._tag==="Running"&&y.run.id===m?{_tag:"Idle"}:y]).pipe(r.flatten),E=(m,f)=>r.gen(function*(){let i=C(),y=yield*m.pipe(r.onExit(($)=>R(i,f,$)),r.forkIn(n));return{id:i,done:f,fiber:y}}),d=(m)=>Tn.modifyEffect(t,r.fnUntraced(function*(f){if(f._tag==="Shell"&&f.shell.id===m)return[s,{_tag:"Idle"}];if(f._tag==="ShellThenRun"&&f.shell.id===m){let i=yield*E(f.run.work,f.run.done);return[r.void,{_tag:"Running",run:i}]}return[r.void,f]})).pipe(r.flatten),D=(m)=>Ln.interrupt(m.fiber),L=(m)=>Tn.modifyEffect(t,r.fnUntraced(function*(f){switch(f._tag){case"Running":case"ShellThenRun":if(o?.onReentryWarn)yield*o.onReentryWarn({label:o.label??"(unlabeled)",existingRunId:f.run.id});return[sn.await(f.run.done),f];case"Shell":{let i={id:C(),done:yield*sn.make(),work:m};return[sn.await(i.done),{_tag:"ShellThenRun",shell:f.shell,run:i}]}case"Idle":{let i=yield*sn.make(),y=yield*E(m,i);return[sn.await(i),{_tag:"Running",run:y}]}}})).pipe(r.flatten,r.catch((f)=>f instanceof zn?l??r.die(f):r.fail(f))),u=(m)=>Tn.modifyEffect(t,r.fnUntraced(function*(f){if(f._tag!=="Idle")return[r.sync(()=>{if(o?.busy)o.busy();throw Error("Runner is busy")}),f];yield*e;let i=C(),y=yield*m.pipe(r.ensuring(d(i)),r.forkChild),$={id:i,fiber:y};return[r.gen(function*(){let I=yield*Ln.await(y);if(kn.isSuccess(I))return I.value;if(Eo.hasInterruptsOnly(I.cause)&&l)return yield*l;return yield*r.failCause(I.cause)}),{_tag:"Shell",shell:$}]})).pipe(r.flatten),p=Tn.modify(t,(m)=>{switch(m._tag){case"Idle":return[r.void,m];case"Running":return[r.gen(function*(){yield*Ln.interrupt(m.run.fiber);let f=yield*Ln.await(m.run.fiber);yield*S(m.run.done,f),yield*sn.await(m.run.done).pipe(r.exit,r.asVoid),yield*K()}),{_tag:"Idle"}];case"Shell":return[r.gen(function*(){yield*D(m.shell),yield*K()}),{_tag:"Idle"}];case"ShellThenRun":return[r.gen(function*(){yield*sn.fail(m.run.done,new zn).pipe(r.asVoid),yield*D(m.shell),yield*K()}),{_tag:"Idle"}]}}).pipe(r.flatten);return{get state(){return A()},get busy(){return A()._tag!=="Idle"},ensureRunning:L,startShell:u,cancel:p}};import{Database as Me}from"bun:sqlite";function vi(n){let o=new Me(n,{create:!0});return Zi({client:o})}var xe=eo.create("NotFoundError",j.object({message:j.string()})),Xi=V.create({service:"db"});function zi(){if(["latest","beta","prod"].includes(Wo)||nn.QITQODE_DISABLE_CHANNEL_DB)return io.join(dn.Path.data,"qitqode.db");let n=Wo.replace(/[^a-zA-Z0-9._-]/g,"-");return io.join(dn.Path.data,`qitqode-${n}.db`)}var Po=Zn(()=>{if(nn.QITQODE_DB){if(nn.QITQODE_DB===":memory:"||io.isAbsolute(nn.QITQODE_DB))return nn.QITQODE_DB;return io.join(dn.Path.data,nn.QITQODE_DB)}return zi()}),Jn=Yi(()=>{Xi.info("opening database",{path:Po});let n=vi(Po);n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = NORMAL"),n.run("PRAGMA busy_timeout = 5000"),n.run("PRAGMA cache_size = -64000"),n.run("PRAGMA foreign_keys = ON"),n.run("PRAGMA wal_checkpoint(PASSIVE)");let o=[{sql:"CREATE TABLE `project` (\n\t`id` text PRIMARY KEY,\n\t`worktree` text NOT NULL,\n\t`vcs` text,\n\t`name` text,\n\t`icon_url` text,\n\t`icon_color` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_initialized` integer,\n\t`sandboxes` text NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `message` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_message_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `part` (\n\t`id` text PRIMARY KEY,\n\t`message_id` text NOT NULL,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_part_message_id_message_id_fk` FOREIGN KEY (`message_id`) REFERENCES `message`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `permission` (\n\t`project_id` text PRIMARY KEY,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_permission_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session` (\n\t`id` text PRIMARY KEY,\n\t`project_id` text NOT NULL,\n\t`parent_id` text,\n\t`slug` text NOT NULL,\n\t`directory` text NOT NULL,\n\t`title` text NOT NULL,\n\t`version` text NOT NULL,\n\t`share_url` text,\n\t`summary_additions` integer,\n\t`summary_deletions` integer,\n\t`summary_files` integer,\n\t`summary_diffs` text,\n\t`revert` text,\n\t`permission` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_compacting` integer,\n\t`time_archived` integer,\n\tCONSTRAINT `fk_session_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `todo` (\n\t`session_id` text NOT NULL,\n\t`content` text NOT NULL,\n\t`status` text NOT NULL,\n\t`priority` text NOT NULL,\n\t`position` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `todo_pk` PRIMARY KEY(`session_id`, `position`),\n\tCONSTRAINT `fk_todo_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session_share` (\n\t`session_id` text PRIMARY KEY,\n\t`id` text NOT NULL,\n\t`secret` text NOT NULL,\n\t`url` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `fk_session_share_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `message_session_idx` ON `message` (`session_id`);--> statement-breakpoint\nCREATE INDEX `part_message_idx` ON `part` (`message_id`);--> statement-breakpoint\nCREATE INDEX `part_session_idx` ON `part` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_project_idx` ON `session` (`project_id`);--> statement-breakpoint\nCREATE INDEX `session_parent_idx` ON `session` (`parent_id`);--> statement-breakpoint\nCREATE INDEX `todo_session_idx` ON `todo` (`session_id`);",timestamp:1769552633000,name:"20260127222353_familiar_lady_ursula"},{sql:"ALTER TABLE `project` ADD `commands` text;",timestamp:1770830228000,name:"20260211171708_add_project_commands"},{sql:"CREATE TABLE `control_account` (\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`active` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `control_account_pk` PRIMARY KEY(`email`, `url`)\n);\n",timestamp:1770993676000,name:"20260213144116_wakeful_the_professor"},{sql:"CREATE TABLE `workspace` (\n\t`id` text PRIMARY KEY,\n\t`branch` text,\n\t`project_id` text NOT NULL,\n\t`config` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n",timestamp:1772056728000,name:"20260225215848_workspace"},{sql:"ALTER TABLE `session` ADD `workspace_id` text;--> statement-breakpoint\nCREATE INDEX `session_workspace_idx` ON `session` (`workspace_id`);",timestamp:1772228279000,name:"20260227213759_add_session_workspace_id"},{sql:"CREATE TABLE `account` (\n\t`id` text PRIMARY KEY,\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`selected_org_id` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `account_state` (\n\t`id` integer PRIMARY KEY NOT NULL,\n\t`active_account_id` text,\n\tFOREIGN KEY (`active_account_id`) REFERENCES `account`(`id`) ON UPDATE no action ON DELETE set null\n);\n",timestamp:1772310750000,name:"20260228203230_blue_harpoon"},{sql:"ALTER TABLE `workspace` ADD `type` text NOT NULL;--> statement-breakpoint\nALTER TABLE `workspace` ADD `name` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `directory` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `extra` text;--> statement-breakpoint\nALTER TABLE `workspace` DROP COLUMN `config`;",timestamp:1772579546000,name:"20260303231226_add_workspace_fields"},{sql:"ALTER TABLE `account_state` ADD `active_org_id` text;--> statement-breakpoint\nUPDATE `account_state` SET `active_org_id` = (SELECT `selected_org_id` FROM `account` WHERE `account`.`id` = `account_state`.`active_account_id`);--> statement-breakpoint\nALTER TABLE `account` DROP COLUMN `selected_org_id`;\n",timestamp:1773097200000,name:"20260309230000_move_org_to_state"},{sql:"DROP INDEX IF EXISTS `message_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `part_message_idx`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `part_message_id_id_idx` ON `part` (`message_id`,`id`);",timestamp:1773290071000,name:"20260312043431_session_message_cursor"},{sql:"CREATE TABLE `event_sequence` (\n\t`aggregate_id` text PRIMARY KEY,\n\t`seq` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `event` (\n\t`id` text PRIMARY KEY,\n\t`aggregate_id` text NOT NULL,\n\t`seq` integer NOT NULL,\n\t`type` text NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_event_aggregate_id_event_sequence_aggregate_id_fk` FOREIGN KEY (`aggregate_id`) REFERENCES `event_sequence`(`aggregate_id`) ON DELETE CASCADE\n);\n",timestamp:1774309702000,name:"20260323234822_events"},{sql:"PRAGMA foreign_keys=OFF;--> statement-breakpoint\nCREATE TABLE `__new_workspace` (\n\t`id` text PRIMARY KEY,\n\t`type` text NOT NULL,\n\t`name` text DEFAULT '' NOT NULL,\n\t`branch` text,\n\t`directory` text,\n\t`extra` text,\n\t`project_id` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nINSERT INTO `__new_workspace`(`id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id`) SELECT `id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id` FROM `workspace`;--> statement-breakpoint\nDROP TABLE `workspace`;--> statement-breakpoint\nALTER TABLE `__new_workspace` RENAME TO `workspace`;--> statement-breakpoint\nPRAGMA foreign_keys=ON;",timestamp:1775843113000,name:"20260410174513_workspace-name"},{sql:"CREATE TABLE `session_entry` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`type` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_session_entry_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `session_entry_session_idx` ON `session_entry` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_entry_session_type_idx` ON `session_entry` (`session_id`,`type`);--> statement-breakpoint\nCREATE INDEX `session_entry_time_created_idx` ON `session_entry` (`time_created`);",timestamp:1776103196000,name:"20260413175956_chief_energizer"},{sql:"ALTER TABLE `session` ADD `context_from` text;--> statement-breakpoint\nALTER TABLE `session` ADD `context_watermark` text;--> statement-breakpoint\nCREATE INDEX `session_context_from_idx` ON `session` (`context_from`);\n",timestamp:1776873600000,name:"20260422160000_context_inheritance"},{sql:"CREATE TABLE `task_registry` (\n `id` text PRIMARY KEY,\n `parent_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `background` integer NOT NULL,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `task_registry_parent_idx` ON `task_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_idx` ON `task_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_last_turn_idx` ON `task_registry` (`status`, `last_turn_time`);\n",timestamp:1776877200000,name:"20260422170000_task_registry"},{sql:"DROP INDEX IF EXISTS `session_entry_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_session_type_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_time_created_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `session_entry`;\n",timestamp:1776956061000,name:"20260423145421_remove_session_entry"},{sql:"DROP INDEX IF EXISTS `task_registry_parent_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_last_turn_idx`;--> statement-breakpoint\nALTER TABLE `task_registry` RENAME TO `actor_registry`;--> statement-breakpoint\nCREATE INDEX `actor_registry_parent_idx` ON `actor_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1778803200000,name:"20260515000000_actor_rename"},{sql:"CREATE TABLE `memory_fts` (\n `path` text PRIMARY KEY NOT NULL,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);\n--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1778806800000,name:"20260515010000_memory_fts"},{sql:"CREATE TABLE `task` (\n `id` text NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `parent_task_id` text,\n `kind` text NOT NULL DEFAULT 'user',\n `status` text NOT NULL,\n `focus` integer NOT NULL DEFAULT 0,\n `summary` text NOT NULL,\n `created_at` integer NOT NULL,\n `last_event_at` integer NOT NULL,\n `ended_at` integer,\n `cleanup_after` integer,\n PRIMARY KEY (`session_id`, `id`)\n);--> statement-breakpoint\nCREATE INDEX `task_session_idx` ON `task` (`session_id`);--> statement-breakpoint\nCREATE INDEX `task_parent_idx` ON `task` (`session_id`, `parent_task_id`);--> statement-breakpoint\nCREATE INDEX `task_status_idx` ON `task` (`status`);--> statement-breakpoint\nCREATE INDEX `task_kind_idx` ON `task` (`kind`);--> statement-breakpoint\nCREATE UNIQUE INDEX `task_focus_per_session_idx` ON `task` (`session_id`) WHERE focus = 1;--> statement-breakpoint\nCREATE TABLE `task_event` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `task_id` text NOT NULL,\n `at` integer NOT NULL,\n `kind` text NOT NULL,\n `summary` text,\n FOREIGN KEY (`session_id`, `task_id`) REFERENCES `task`(`session_id`, `id`) ON DELETE CASCADE\n);--> statement-breakpoint\nCREATE INDEX `task_event_task_idx` ON `task_event` (`session_id`, `task_id`, `at`);\n",timestamp:1778810400000,name:"20260515020000_user_task"},{sql:"ALTER TABLE `session` ADD `last_checkpoint_message_id` text;\n",timestamp:1779148800000,name:"20260519000000_last_checkpoint_message_id"},{sql:"ALTER TABLE `message` ADD `agent_id` text;--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779321600000,name:"20260521000000_message_agent_id"},{sql:"DROP TABLE `actor_registry`;--> statement-breakpoint\nCREATE TABLE `actor_registry` (\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `actor_id` text NOT NULL,\n `mode` text NOT NULL,\n `parent_actor_id` text,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `context_watermark` text,\n `background` integer NOT NULL,\n `tools` text,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n PRIMARY KEY (`session_id`, `actor_id`)\n);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_agent_idx` ON `actor_registry` (`session_id`, `agent`);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_parent_idx` ON `actor_registry` (`session_id`, `parent_actor_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1779321660000,name:"20260521000100_actor_registry_v6"},{sql:"DROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts`;--> statement-breakpoint\nCREATE TABLE `memory_fts` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `path` text NOT NULL UNIQUE,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='id',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779325200000,name:"20260521010000_memory_fts_v6"},{sql:"-- Fix v6.1 trigger pattern: external content FTS5 vtab requires the 'delete'\n-- magic command to remove OLD body's tokens, NOT a plain DELETE FROM the vtab.\n-- The previous DELETE FROM pattern was contentless-mode syntax misapplied to\n-- external-content mode, leaving stale tokens accumulating until vtab corrupts.\nDROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779328800000,name:"20260521020000_memory_fts_triggers"},{sql:"UPDATE `message` SET `agent_id` = 'main' WHERE `agent_id` IS NULL;--> statement-breakpoint\nCREATE TABLE `message_new` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `agent_id` text NOT NULL DEFAULT 'main',\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n `data` text NOT NULL\n);--> statement-breakpoint\nINSERT INTO `message_new` SELECT `id`, `session_id`, COALESCE(`agent_id`, 'main'), `time_created`, `time_updated`, `data` FROM `message`;--> statement-breakpoint\nDROP TABLE `message`;--> statement-breakpoint\nALTER TABLE `message_new` RENAME TO `message`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779753600000,name:"20260526000000_agent_id_main"},{sql:"ALTER TABLE `actor_registry` ADD COLUMN `last_outcome` text;--> statement-breakpoint\nALTER TABLE `actor_registry` ADD COLUMN `lifecycle` text NOT NULL DEFAULT 'ephemeral';--> statement-breakpoint\nALTER TABLE `actor_registry` RENAME COLUMN `error` TO `last_error`;--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'success' WHERE `status` = 'completed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'failure' WHERE `status` = 'failed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'cancelled' WHERE `status` = 'cancelled';--> statement-breakpoint\nUPDATE `actor_registry` SET `status` = 'idle' WHERE `status` IN ('completed','failed','cancelled');--> statement-breakpoint\nUPDATE `actor_registry` SET `lifecycle` = CASE `mode` WHEN 'peer' THEN 'persistent' WHEN 'main' THEN 'persistent' ELSE 'ephemeral' END;\n",timestamp:1779840000000,name:"20260527000000_actor_lifecycle"},{sql:"CREATE TABLE `inbox` (\n `id` text PRIMARY KEY NOT NULL,\n `receiver_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `receiver_actor_id` text NOT NULL,\n `sender_session_id` text,\n `sender_actor_id` text,\n `type` text NOT NULL DEFAULT 'text',\n `content` text NOT NULL,\n `created_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `inbox_receiver_idx` ON `inbox` (`receiver_session_id`,`receiver_actor_id`,`id`);--> statement-breakpoint\nCREATE INDEX `inbox_created_idx` ON `inbox` (`created_at`);\n",timestamp:1779840060000,name:"20260527000100_inbox"},{sql:"-- todo: drop priority column\nALTER TABLE `todo` DROP COLUMN `priority`;\n--> statement-breakpoint\n\n-- task: drop focus-dependent index before dropping its column\nDROP INDEX `task_focus_per_session_idx`;\n--> statement-breakpoint\nDROP INDEX `task_kind_idx`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `focus`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `kind`;\n--> statement-breakpoint\n\n-- migrate status values: proposed/active -> open\nUPDATE `task` SET `status` = 'open' WHERE `status` IN ('proposed', 'active');\n",timestamp:1780012800000,name:"20260529000000_task_todo_redesign"},{sql:"ALTER TABLE `task` ADD COLUMN `owner` text;\n",timestamp:1780444800000,name:"20260603000000_task_in_progress_owner"},{sql:"CREATE TABLE `workflow_run` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `name` text NOT NULL,\n `status` text NOT NULL,\n `running` integer NOT NULL DEFAULT 0,\n `succeeded` integer NOT NULL DEFAULT 0,\n `failed` integer NOT NULL DEFAULT 0,\n `current_phase` text,\n `parent_actor_id` text,\n `args` text,\n `error` text,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `workflow_run_session_idx` ON `workflow_run` (`session_id`);--> statement-breakpoint\nCREATE INDEX `workflow_run_status_idx` ON `workflow_run` (`status`);\n",timestamp:1780444800000,name:"20260603000000_workflow_run"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `script_sha` text;\n",timestamp:1780531200000,name:"20260604000000_workflow_script_sha"},{sql:"CREATE TABLE `claude_import` (\n `source_uuid` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL\n);\n",timestamp:1780876800000,name:"20260608000000_claude_import"},{sql:"ALTER TABLE `claude_import` ADD `message_ids` text;\n",timestamp:1780880400000,name:"20260608010000_claude_import_message_ids"},{sql:"CREATE TABLE `history_fts` (\n `part_id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `message_id` text NOT NULL,\n `project_id` text NOT NULL,\n `kind` text NOT NULL,\n `tool_name` text,\n `body` text NOT NULL,\n `time_created` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `history_fts_session_idx` ON `history_fts` (`session_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_project_idx` ON `history_fts` (`project_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_message_idx` ON `history_fts` (`message_id`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `history_fts_idx` USING fts5(\n body,\n content='history_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `history_fts_ai` AFTER INSERT ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_ad` AFTER DELETE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_au` AFTER UPDATE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1780963200000,name:"20260609000000_history_fts"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `agent_timeout_ms` integer;\n",timestamp:1781046000000,name:"20260609230000_workflow_agent_timeout"},{sql:"CREATE TABLE `external_import` (\n `source` text NOT NULL,\n `source_key` text NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL,\n `message_ids` text,\n PRIMARY KEY (`source`, `source_key`)\n);\n\nINSERT INTO `external_import` (`source`, `source_key`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`)\nSELECT 'cc', `source_uuid`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`\nFROM `claude_import`;\n\nDROP TABLE `claude_import`;\n",timestamp:1781222400000,name:"20260612000000_external_import"}];if(o.length>0){if(Xi.info("applying migrations",{count:o.length,mode:"bundled"}),nn.QITQODE_SKIP_MIGRATIONS)for(let t of o)t.sql="select 1;";bo(n,o)}return n});function Ce(){Jn().$client.close(),Jn.reset()}var Vn=un.create("database");function Je(n){try{return n(Vn.use().tx)}catch(o){if(o instanceof un.NotFound){let t=[],s=Vn.provide({effects:t,tx:Jn()},()=>n(Jn()));for(let e of t)e();return s}throw o}}function He(n){let o=Yn.bind(n);try{Vn.use().effects.push(o)}catch{o()}}function Ke(n,o){try{return n(Vn.use().tx)}catch(t){if(t instanceof un.NotFound){let s=[],e=Yn.bind((_)=>Vn.provide({tx:_,effects:s},()=>n(_))),l=Jn().transaction(e,{behavior:o?.behavior});for(let _ of s)_();return l}throw t}}var ai={};On(ai,{layer:()=>Fi,defaultLayer:()=>we,Service:()=>yo,NotFoundError:()=>Xo});import Y from"path";var Hn={};On(Hn,{layer:()=>wi,defaultLayer:()=>Ee,Service:()=>mo,Git:()=>Hn});var Re=["--no-optional-locks","-c","core.autocrlf=false","-c","core.fsmonitor=false","-c","core.longpaths=true","-c","core.symlinks=true","-c","core.quotepath=false"],cn=(n)=>n.text().trim(),Uo=(n)=>n.split("\x00").filter(Boolean),Se=(n)=>({exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:Buffer.from(n instanceof Error?n.message:String(n))}),ki=(n)=>{if(n==="??")return"added";if(n.includes("U"))return"modified";if(n.includes("A")&&!n.includes("D"))return"added";if(n.includes("D")&&!n.includes("A"))return"deleted";return"modified"};class mo extends Qn.Service()("@qitqode/Git"){}var wi=h.effect(mo,r.gen(function*(){let n=yield*no.ChildProcessSpawner,o=r.fn("Git.run")(function*(u,p){let m=Vi.make("git",[...Re,...u],{cwd:p.cwd,env:p.env,extendEnv:!0,stdin:"ignore",stdout:"pipe",stderr:"pipe"}),f=yield*ci(n,m);return{exitCode:f.code,text:()=>f.text,stdout:Buffer.from(f.text),stderr:Buffer.from(f.stderr)}},r.scoped,r.catch((u)=>r.succeed(Se(u)))),t=r.fn("Git.text")(function*(u,p){return(yield*o(u,p)).text()}),s=r.fn("Git.lines")(function*(u,p){return(yield*t(u,p)).split(/\r?\n/).map((m)=>m.trim()).filter(Boolean)}),e=r.fnUntraced(function*(u){return yield*s(["for-each-ref","--format=%(refname:short)","refs/heads"],{cwd:u})}),l=r.fnUntraced(function*(u,p){let m=yield*o(["config","init.defaultBranch"],{cwd:u}),f=cn(m);if(!f||!p.includes(f))return;return{name:f,ref:f}}),_=r.fnUntraced(function*(u){let p=yield*s(["remote"],{cwd:u});if(p.includes("origin"))return"origin";if(p.length===1)return p[0];if(p.includes("upstream"))return"upstream";return p[0]}),A=r.fn("Git.branch")(function*(u){let p=yield*o(["symbolic-ref","--quiet","--short","HEAD"],{cwd:u});if(p.exitCode!==0)return;return cn(p)||void 0}),C=r.fn("Git.prefix")(function*(u){let p=yield*o(["rev-parse","--show-prefix"],{cwd:u});if(p.exitCode!==0)return"";return cn(p)}),S=r.fn("Git.defaultBranch")(function*(u){let p=yield*_(u);if(p){let i=yield*o(["symbolic-ref",`refs/remotes/${p}/HEAD`],{cwd:u});if(i.exitCode===0){let y=cn(i).replace(/^refs\/remotes\//,""),$=y.startsWith(`${p}/`)?y.slice(`${p}/`.length):"";if($)return{name:$,ref:y}}}let m=yield*e(u),f=yield*l(u,m);if(f)return f;if(m.includes("main"))return{name:"main",ref:"main"};if(m.includes("master"))return{name:"master",ref:"master"}}),K=r.fn("Git.hasHead")(function*(u){return(yield*o(["rev-parse","--verify","HEAD"],{cwd:u})).exitCode===0}),R=r.fn("Git.mergeBase")(function*(u,p,m="HEAD"){let f=yield*o(["merge-base",p,m],{cwd:u});if(f.exitCode!==0)return;return cn(f)||void 0}),E=r.fn("Git.show")(function*(u,p,m,f=""){let i=f?`${f}${m}`:m,y=yield*o(["show",`${p}:${i}`],{cwd:u});if(y.exitCode!==0)return"";if(y.stdout.includes(0))return"";return y.text()}),d=r.fn("Git.status")(function*(u){return Uo(yield*t(["status","--porcelain=v1","--untracked-files=all","--no-renames","-z","--","."],{cwd:u})).flatMap((p)=>{let m=p.slice(3);if(!m)return[];let f=p.slice(0,2);return[{file:m,code:f,status:ki(f)}]})}),D=r.fn("Git.diff")(function*(u,p){let m=Uo(yield*t(["diff","--no-ext-diff","--no-renames","--name-status","-z",p,"--","."],{cwd:u}));return m.flatMap((f,i)=>{if(i%2!==0)return[];let y=m[i+1];if(!f||!y)return[];return[{file:y,code:f,status:ki(f)}]})}),L=r.fn("Git.stats")(function*(u,p){return Uo(yield*t(["diff","--no-ext-diff","--no-renames","--numstat","-z",p,"--","."],{cwd:u})).flatMap((m)=>{let f=m.indexOf("\t"),i=m.indexOf("\t",f+1);if(f===-1||i===-1)return[];let y=m.slice(i+1);if(!y)return[];let $=m.slice(0,f),I=m.slice(f+1,i),O=$==="-"?0:Number.parseInt($||"0",10),U=I==="-"?0:Number.parseInt(I||"0",10);return[{file:y,additions:Number.isFinite(O)?O:0,deletions:Number.isFinite(U)?U:0}]})});return mo.of({run:o,branch:A,prefix:C,defaultBranch:S,hasHead:K,mergeBase:R,show:E,status:d,diff:D,stats:L})})),Ee=wi.pipe(h.provide(oo));var ln=V.create({service:"storage"}),Xo=eo.create("NotFoundError",j.object({message:j.string()})),We=N.Struct({path:N.optional(N.Struct({root:N.optional(N.String)}))}),Pe=N.Struct({id:N.String}),Ue=N.Struct({id:N.String}),Ze=N.Struct({additions:N.Number,deletions:N.Number}),ve=N.Struct({id:N.String,projectID:N.String,summary:N.Struct({diffs:N.Array(Ze)})}),Xe=N.decodeUnknownOption(We),Ye=N.decodeUnknownOption(Pe),ze=N.decodeUnknownOption(Ue),ke=N.decodeUnknownOption(ve);class yo extends Qn.Service()("@qitqode/Storage"){}function Ve(n,o){return Y.join(n,...o)+".json"}function Zo(n){if(!n||typeof n!=="object")return!1;if("code"in n&&n.code==="ENOENT")return!0;if("reason"in n&&n.reason&&typeof n.reason==="object"&&"_tag"in n.reason)return n.reason._tag==="NotFound";return!1}function ce(n){let o=Number.parseInt(n,10);return Number.isNaN(o)?0:o}var qi=[r.fn("Storage.migration.1")(function*(n,o,t){let s=Y.resolve(n,"../project");if(!(yield*o.isDir(s)))return;let e=yield*o.glob("*",{cwd:s,include:"all"});for(let l of e){let _=Y.join(s,l);if(!(yield*o.isDir(_)))continue;ln.info(`migrating project ${l}`);let A=l,C="/";if(A!=="global"){for(let R of yield*o.glob("storage/session/message/*/*.json",{cwd:_,absolute:!0})){let E=Xe(yield*o.readJson(R),{onExcessProperty:"preserve"}),d=wn.isSome(E)?E.value.path?.root:void 0;if(!d)continue;C=d;break}if(!C)continue;if(!(yield*o.isDir(C)))continue;let S=yield*t.run(["rev-list","--max-parents=0","--all"],{cwd:C}),[K]=S.text().split(`
|
|
5
5
|
`).filter(Boolean).map((R)=>R.trim()).toSorted();if(!K)continue;A=K,yield*o.writeWithDirs(Y.join(n,"project",A+".json"),JSON.stringify({id:K,vcs:"git",worktree:C,time:{created:Date.now(),initialized:Date.now()}},null,2)),ln.info(`migrating sessions for project ${A}`);for(let R of yield*o.glob("storage/session/info/*.json",{cwd:_,absolute:!0})){let E=Y.join(n,"session",A,Y.basename(R));ln.info("copying",{sessionFile:R,dest:E});let d=yield*o.readJson(R),D=Ye(d,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(E,JSON.stringify(d,null,2)),wn.isNone(D))continue;ln.info(`migrating messages for session ${D.value.id}`);for(let L of yield*o.glob(`storage/session/message/${D.value.id}/*.json`,{cwd:_,absolute:!0})){let u=Y.join(n,"message",D.value.id,Y.basename(L));ln.info("copying",{msgFile:L,dest:u});let p=yield*o.readJson(L),m=ze(p,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(u,JSON.stringify(p,null,2)),wn.isNone(m))continue;ln.info(`migrating parts for message ${m.value.id}`);for(let f of yield*o.glob(`storage/session/part/${D.value.id}/${m.value.id}/*.json`,{cwd:_,absolute:!0})){let i=Y.join(n,"part",m.value.id,Y.basename(f)),y=yield*o.readJson(f);ln.info("copying",{partFile:f,dest:i}),yield*o.writeWithDirs(i,JSON.stringify(y,null,2))}}}}}}),r.fn("Storage.migration.2")(function*(n,o){for(let t of yield*o.glob("session/*/*.json",{cwd:n,absolute:!0})){let s=yield*o.readJson(t),e=ke(s,{onExcessProperty:"preserve"});if(wn.isNone(e))continue;let l=e.value.summary.diffs;yield*o.writeWithDirs(Y.join(n,"session_diff",e.value.id+".json"),JSON.stringify(l,null,2)),yield*o.writeWithDirs(Y.join(n,"session",e.value.projectID,e.value.id+".json"),JSON.stringify({...s,summary:{additions:l.reduce((_,A)=>_+A.additions,0),deletions:l.reduce((_,A)=>_+A.deletions,0)}},null,2))}})],Fi=h.effect(yo,r.gen(function*(){let n=yield*c.Service,o=yield*Hn.Service,t=yield*vo.make({lookup:()=>Kn.make(),idleTimeToLive:0}),s=yield*r.cached(r.gen(function*(){let d=Y.join(dn.Path.data,"storage"),D=Y.join(d,"migration"),L=yield*n.readFileString(D).pipe(r.map(ce),r.catchIf(Zo,()=>r.succeed(0)),r.orElseSucceed(()=>0));for(let u=L;u<qi.length;u++){ln.info("running migration",{index:u});let p=qi[u],m=yield*r.exit(p(d,n,o));if(kn.isFailure(m)){ln.error("failed to run migration",{index:u,cause:m.cause});break}yield*n.writeWithDirs(D,String(u+1))}return{dir:d}})),e=(d)=>r.fail(new Xo({message:`Resource not found: ${d}`})),l=(d,D)=>D.pipe(r.catchIf(Zo,()=>e(d))),_=r.fnUntraced(function*(d,D){yield*n.writeWithDirs(d,JSON.stringify(D,null,2))}),A=(d,D)=>r.scoped(r.gen(function*(){let L=Ve((yield*s).dir,d);return yield*D(L,yield*vo.get(t,L))})),C=r.fn("Storage.remove")(function*(d){yield*A(d,(D,L)=>Kn.withWriteLock(L,n.remove(D).pipe(r.catchIf(Zo,()=>r.void))))}),S=(d)=>r.gen(function*(){return yield*A(d,(L,u)=>Kn.withReadLock(u,l(L,n.readJson(L))))}),K=(d,D)=>r.gen(function*(){return yield*A(d,(u,p)=>Kn.withWriteLock(p,r.gen(function*(){let m=yield*l(u,n.readJson(u));return D(m),yield*_(u,m),m})))}),R=(d,D)=>r.gen(function*(){yield*A(d,(L,u)=>Kn.withWriteLock(u,_(L,D)))}),E=r.fn("Storage.list")(function*(d){let D=(yield*s).dir,L=Y.join(D,...d);return(yield*n.glob("**/*",{cwd:L,include:"file"}).pipe(r.catch(()=>r.succeed([])))).map((p)=>[...d,...p.slice(0,-5).split(Y.sep)]).toSorted((p,m)=>p.join("/").localeCompare(m.join("/")))});return yo.of({remove:C,read:S,update:K,write:R,list:E})})),we=Fi.pipe(h.provide(c.defaultLayer),h.provide(Hn.defaultLayer));export{Un as sl,si as tl,Zn as ul,mn as vl,x as wl,gn as xl,fo as yl,zo as zl,ko as Al,Vo as Bl,co as Cl,qo as Dl,uo as El,In as Fl,Hn as Gl,Xo as Hl,ai as Il,q as Jl,Co as Kl,Ti as Ll,se as Ml,xi as Nl,Te as Ol,on as Pl,Yn as Ql,Le as Rl,Pi as Sl,Ui as Tl};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{oP as K}from"./chunk-fa03gsff.js";var H,$,z,k,Z;var J=K(()=>{H={AmazonBot:"amazonbot","Amazon Silk":"amazon_silk","Android Browser":"android",BaiduSpider:"baiduspider",Bada:"bada",BingCrawler:"bingcrawler",Brave:"brave",BlackBerry:"blackberry","ChatGPT-User":"chatgpt_user",Chrome:"chrome",ClaudeBot:"claudebot",Chromium:"chromium",Diffbot:"diffbot",DuckDuckBot:"duckduckbot",DuckDuckGo:"duckduckgo",Electron:"electron",Epiphany:"epiphany",FacebookExternalHit:"facebookexternalhit",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot",GPTBot:"gptbot","Internet Explorer":"ie",InternetArchiveCrawler:"internetarchivecrawler","K-Meleon":"k_meleon",LibreWolf:"librewolf",Linespider:"linespider",Maxthon:"maxthon","Meta-ExternalAds":"meta_externalads","Meta-ExternalAgent":"meta_externalagent","Meta-ExternalFetcher":"meta_externalfetcher","Meta-WebIndexer":"meta_webindexer","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver","OAI-SearchBot":"oai_searchbot",Omgilibot:"omgilibot",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PerplexityBot:"perplexitybot","Perplexity-User":"perplexity_user",PhantomJS:"phantomjs",PingdomBot:"pingdombot",Puffin:"puffin",QQ:"qq",QQLite:"qqlite",QupZilla:"qupzilla",Roku:"roku",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SlackBot:"slackbot",SeaMonkey:"seamonkey",Sleipnir:"sleipnir","Sogou Browser":"sogou",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat",YahooSlurp:"yahooslurp","Yandex Browser":"yandex",YandexBot:"yandexbot",YouBot:"youbot"},$={amazonbot:"AmazonBot",amazon_silk:"Amazon Silk",android:"Android Browser",baiduspider:"BaiduSpider",bada:"Bada",bingcrawler:"BingCrawler",blackberry:"BlackBerry",brave:"Brave",chatgpt_user:"ChatGPT-User",chrome:"Chrome",claudebot:"ClaudeBot",chromium:"Chromium",diffbot:"Diffbot",duckduckbot:"DuckDuckBot",duckduckgo:"DuckDuckGo",edge:"Microsoft Edge",electron:"Electron",epiphany:"Epiphany",facebookexternalhit:"FacebookExternalHit",firefox:"Firefox",focus:"Focus",generic:"Generic",google_search:"Google Search",googlebot:"Googlebot",gptbot:"GPTBot",ie:"Internet Explorer",internetarchivecrawler:"InternetArchiveCrawler",k_meleon:"K-Meleon",librewolf:"LibreWolf",linespider:"Linespider",maxthon:"Maxthon",meta_externalads:"Meta-ExternalAds",meta_externalagent:"Meta-ExternalAgent",meta_externalfetcher:"Meta-ExternalFetcher",meta_webindexer:"Meta-WebIndexer",mz:"MZ Browser",naver:"NAVER Whale Browser",oai_searchbot:"OAI-SearchBot",omgilibot:"Omgilibot",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",perplexitybot:"PerplexityBot",perplexity_user:"Perplexity-User",phantomjs:"PhantomJS",pingdombot:"PingdomBot",puffin:"Puffin",qq:"QQ Browser",qqlite:"QQ Browser Lite",qupzilla:"QupZilla",roku:"Roku",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",slackbot:"SlackBot",sleipnir:"Sleipnir",sogou:"Sogou Browser",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yahooslurp:"YahooSlurp",yandex:"Yandex Browser",yandexbot:"YandexBot",youbot:"YouBot"},z={bot:"bot",desktop:"desktop",mobile:"mobile",tablet:"tablet",tv:"tv"},k={Android:"Android",Bada:"Bada",BlackBerry:"BlackBerry",ChromeOS:"Chrome OS",HarmonyOS:"HarmonyOS",iOS:"iOS",Linux:"Linux",MacOS:"macOS",PlayStation4:"PlayStation 4",Roku:"Roku",Tizen:"Tizen",WebOS:"WebOS",Windows:"Windows",WindowsPhone:"Windows Phone"},Z={Blink:"Blink",EdgeHTML:"EdgeHTML",Gecko:"Gecko",Presto:"Presto",Trident:"Trident",WebKit:"WebKit"}});class h{static getFirstMatch(B,d){let x=d.match(B);return x&&x.length>0&&x[1]||""}static getSecondMatch(B,d){let x=d.match(B);return x&&x.length>1&&x[2]||""}static matchAndReturnConst(B,d,x){if(B.test(d))return x;return}static getWindowsVersionName(B){switch(B){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(B){let d=B.split(".").splice(0,2).map((Q)=>parseInt(Q,10)||0);d.push(0);let x=d[0],W=d[1];if(x===10)switch(W){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}switch(x){case 11:return"Big Sur";case 12:return"Monterey";case 13:return"Ventura";case 14:return"Sonoma";case 15:return"Sequoia";default:return}}static getAndroidVersionName(B){let d=B.split(".").splice(0,2).map((x)=>parseInt(x,10)||0);if(d.push(0),d[0]===1&&d[1]<5)return;if(d[0]===1&&d[1]<6)return"Cupcake";if(d[0]===1&&d[1]>=6)return"Donut";if(d[0]===2&&d[1]<2)return"Eclair";if(d[0]===2&&d[1]===2)return"Froyo";if(d[0]===2&&d[1]>2)return"Gingerbread";if(d[0]===3)return"Honeycomb";if(d[0]===4&&d[1]<1)return"Ice Cream Sandwich";if(d[0]===4&&d[1]<4)return"Jelly Bean";if(d[0]===4&&d[1]>=4)return"KitKat";if(d[0]===5)return"Lollipop";if(d[0]===6)return"Marshmallow";if(d[0]===7)return"Nougat";if(d[0]===8)return"Oreo";if(d[0]===9)return"Pie";return}static getVersionPrecision(B){return B.split(".").length}static compareVersions(B,d,x=!1){let W=h.getVersionPrecision(B),Q=h.getVersionPrecision(d),y=Math.max(W,Q),C=0,Y=h.map([B,d],(G)=>{let E=y-h.getVersionPrecision(G),_=G+Array(E+1).join(".0");return h.map(_.split("."),(S)=>Array(20-S.length).join("0")+S).reverse()});if(x)C=y-Math.min(W,Q);y-=1;while(y>=C){if(Y[0][y]>Y[1][y])return 1;if(Y[0][y]===Y[1][y]){if(y===C)return 0;y-=1}else if(Y[0][y]<Y[1][y])return-1}return}static map(B,d){let x=[],W;if(Array.prototype.map)return Array.prototype.map.call(B,d);for(W=0;W<B.length;W+=1)x.push(d(B[W]));return x}static find(B,d){let x,W;if(Array.prototype.find)return Array.prototype.find.call(B,d);for(x=0,W=B.length;x<W;x+=1){let Q=B[x];if(d(Q,x))return Q}return}static assign(B,...d){let x=B,W,Q;if(Object.assign)return Object.assign(B,...d);for(W=0,Q=d.length;W<Q;W+=1){let y=d[W];if(typeof y==="object"&&y!==null)Object.keys(y).forEach((Y)=>{x[Y]=y[Y]})}return B}static getBrowserAlias(B){return H[B]}static getBrowserTypeByAlias(B){return $[B]||""}}var X=K(()=>{J()});var q,L,c;var j=K(()=>{X();q=/version\/(\d+(\.?_?\d+)+)/i,L=[{test:[/gptbot/i],describe(B){let d={name:"GPTBot"},x=h.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/chatgpt-user/i],describe(B){let d={name:"ChatGPT-User"},x=h.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/oai-searchbot/i],describe(B){let d={name:"OAI-SearchBot"},x=h.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe(B){let d={name:"ClaudeBot"},x=h.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/omgilibot/i,/webzio-extended/i],describe(B){let d={name:"Omgilibot"},x=h.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/diffbot/i],describe(B){let d={name:"Diffbot"},x=h.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/perplexitybot/i],describe(B){let d={name:"PerplexityBot"},x=h.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/perplexity-user/i],describe(B){let d={name:"Perplexity-User"},x=h.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/youbot/i],describe(B){let d={name:"YouBot"},x=h.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-webindexer/i],describe(B){let d={name:"Meta-WebIndexer"},x=h.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalads/i],describe(B){let d={name:"Meta-ExternalAds"},x=h.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalagent/i],describe(B){let d={name:"Meta-ExternalAgent"},x=h.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalfetcher/i],describe(B){let d={name:"Meta-ExternalFetcher"},x=h.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/googlebot/i],describe(B){let d={name:"Googlebot"},x=h.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/linespider/i],describe(B){let d={name:"Linespider"},x=h.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/amazonbot/i],describe(B){let d={name:"AmazonBot"},x=h.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/bingbot/i],describe(B){let d={name:"BingCrawler"},x=h.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/baiduspider/i],describe(B){let d={name:"BaiduSpider"},x=h.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/duckduckbot/i],describe(B){let d={name:"DuckDuckBot"},x=h.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/ia_archiver/i],describe(B){let d={name:"InternetArchiveCrawler"},x=h.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe(){return{name:"FacebookExternalHit"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe(B){let d={name:"SlackBot"},x=h.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/yahoo!?[\s/]*slurp/i],describe(){return{name:"YahooSlurp"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe(){return{name:"YandexBot"}}},{test:[/pingdom/i],describe(){return{name:"PingdomBot"}}},{test:[/opera/i],describe(B){let d={name:"Opera"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/opr\/|opios/i],describe(B){let d={name:"Opera"},x=h.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/SamsungBrowser/i],describe(B){let d={name:"Samsung Internet for Android"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/Whale/i],describe(B){let d={name:"NAVER Whale Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/PaleMoon/i],describe(B){let d={name:"Pale Moon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/MZBrowser/i],describe(B){let d={name:"MZ Browser"},x=h.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/focus/i],describe(B){let d={name:"Focus"},x=h.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/swing/i],describe(B){let d={name:"Swing"},x=h.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/coast/i],describe(B){let d={name:"Opera Coast"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(B){let d={name:"Opera Touch"},x=h.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/yabrowser/i],describe(B){let d={name:"Yandex Browser"},x=h.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/ucbrowser/i],describe(B){let d={name:"UC Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/Maxthon|mxios/i],describe(B){let d={name:"Maxthon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/epiphany/i],describe(B){let d={name:"Epiphany"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/puffin/i],describe(B){let d={name:"Puffin"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sleipnir/i],describe(B){let d={name:"Sleipnir"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/k-meleon/i],describe(B){let d={name:"K-Meleon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/micromessenger/i],describe(B){let d={name:"WeChat"},x=h.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/qqbrowser/i],describe(B){let d={name:/qqbrowserlite/i.test(B)?"QQ Browser Lite":"QQ Browser"},x=h.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/msie|trident/i],describe(B){let d={name:"Internet Explorer"},x=h.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/\sedg\//i],describe(B){let d={name:"Microsoft Edge"},x=h.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/edg([ea]|ios)/i],describe(B){let d={name:"Microsoft Edge"},x=h.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/vivaldi/i],describe(B){let d={name:"Vivaldi"},x=h.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/seamonkey/i],describe(B){let d={name:"SeaMonkey"},x=h.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sailfish/i],describe(B){let d={name:"Sailfish"},x=h.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,B);if(x)d.version=x;return d}},{test:[/silk/i],describe(B){let d={name:"Amazon Silk"},x=h.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/phantom/i],describe(B){let d={name:"PhantomJS"},x=h.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/slimerjs/i],describe(B){let d={name:"SlimerJS"},x=h.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(B){let d={name:"BlackBerry"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/(web|hpw)[o0]s/i],describe(B){let d={name:"WebOS Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/bada/i],describe(B){let d={name:"Bada"},x=h.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/tizen/i],describe(B){let d={name:"Tizen"},x=h.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/qupzilla/i],describe(B){let d={name:"QupZilla"},x=h.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/librewolf/i],describe(B){let d={name:"LibreWolf"},x=h.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/firefox|iceweasel|fxios/i],describe(B){let d={name:"Firefox"},x=h.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/electron/i],describe(B){let d={name:"Electron"},x=h.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\.[x]/i],describe(B){let d={name:"Sogou Browser"},x=h.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i,B),W=h.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,B),Q=h.getFirstMatch(/se ([\d.]+)x/i,B),y=x||W||Q;if(y)d.version=y;return d}},{test:[/MiuiBrowser/i],describe(B){let d={name:"Miui"},x=h.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){if(B.hasBrand("DuckDuckGo"))return!0;return B.test(/\sDdg\/[\d.]+$/i)},describe(B,d){let x={name:"DuckDuckGo"};if(d){let Q=d.getBrandVersion("DuckDuckGo");if(Q)return x.version=Q,x}let W=h.getFirstMatch(/\sDdg\/([\d.]+)$/i,B);if(W)x.version=W;return x}},{test(B){return B.hasBrand("Brave")},describe(B,d){let x={name:"Brave"};if(d){let W=d.getBrandVersion("Brave");if(W)return x.version=W,x}return x}},{test:[/chromium/i],describe(B){let d={name:"Chromium"},x=h.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/chrome|crios|crmo/i],describe(B){let d={name:"Chrome"},x=h.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/GSA/i],describe(B){let d={name:"Google Search"},x=h.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){let d=!B.test(/like android/i),x=B.test(/android/i);return d&&x},describe(B){let d={name:"Android Browser"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/playstation 4/i],describe(B){let d={name:"PlayStation 4"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/safari|applewebkit/i],describe(B){let d={name:"Safari"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/.*/i],describe(B){let d=/^(.*)\/(.*) /,x=/^(.*)\/(.*)[ \t]\((.*)/,Q=B.search("\\(")!==-1?x:d;return{name:h.getFirstMatch(Q,B),version:h.getSecondMatch(Q,B)}}}],c=L});var N;var F=K(()=>{X();J();N=[{test:[/Roku\/DVP/],describe(B){let d=h.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,B);return{name:k.Roku,version:d}}},{test:[/windows phone/i],describe(B){let d=h.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,B);return{name:k.WindowsPhone,version:d}}},{test:[/windows /i],describe(B){let d=h.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,B),x=h.getWindowsVersionName(d);return{name:k.Windows,version:d,versionName:x}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(B){let d={name:k.iOS},x=h.getSecondMatch(/(Version\/)(\d[\d.]+)/,B);if(x)d.version=x;return d}},{test:[/macintosh/i],describe(B){let d=h.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,B).replace(/[_\s]/g,"."),x=h.getMacOSVersionName(d),W={name:k.MacOS,version:d};if(x)W.versionName=x;return W}},{test:[/(ipod|iphone|ipad)/i],describe(B){let d=h.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,B).replace(/[_\s]/g,".");return{name:k.iOS,version:d}}},{test:[/OpenHarmony/i],describe(B){let d=h.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i,B);return{name:k.HarmonyOS,version:d}}},{test(B){let d=!B.test(/like android/i),x=B.test(/android/i);return d&&x},describe(B){let d=h.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,B),x=h.getAndroidVersionName(d),W={name:k.Android,version:d};if(x)W.versionName=x;return W}},{test:[/(web|hpw)[o0]s/i],describe(B){let d=h.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,B),x={name:k.WebOS};if(d&&d.length)x.version=d;return x}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(B){let d=h.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,B)||h.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,B)||h.getFirstMatch(/\bbb(\d+)/i,B);return{name:k.BlackBerry,version:d}}},{test:[/bada/i],describe(B){let d=h.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,B);return{name:k.Bada,version:d}}},{test:[/tizen/i],describe(B){let d=h.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,B);return{name:k.Tizen,version:d}}},{test:[/linux/i],describe(){return{name:k.Linux}}},{test:[/CrOS/],describe(){return{name:k.ChromeOS}}},{test:[/PlayStation 4/],describe(B){let d=h.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,B);return{name:k.PlayStation4,version:d}}}]});var g;var O=K(()=>{X();J();g=[{test:[/googlebot/i],describe(){return{type:z.bot,vendor:"Google"}}},{test:[/linespider/i],describe(){return{type:z.bot,vendor:"Line"}}},{test:[/amazonbot/i],describe(){return{type:z.bot,vendor:"Amazon"}}},{test:[/gptbot/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/chatgpt-user/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/oai-searchbot/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/baiduspider/i],describe(){return{type:z.bot,vendor:"Baidu"}}},{test:[/bingbot/i],describe(){return{type:z.bot,vendor:"Bing"}}},{test:[/duckduckbot/i],describe(){return{type:z.bot,vendor:"DuckDuckGo"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe(){return{type:z.bot,vendor:"Anthropic"}}},{test:[/omgilibot/i,/webzio-extended/i],describe(){return{type:z.bot,vendor:"Webz.io"}}},{test:[/diffbot/i],describe(){return{type:z.bot,vendor:"Diffbot"}}},{test:[/perplexitybot/i],describe(){return{type:z.bot,vendor:"Perplexity AI"}}},{test:[/perplexity-user/i],describe(){return{type:z.bot,vendor:"Perplexity AI"}}},{test:[/youbot/i],describe(){return{type:z.bot,vendor:"You.com"}}},{test:[/ia_archiver/i],describe(){return{type:z.bot,vendor:"Internet Archive"}}},{test:[/meta-webindexer/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalads/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalagent/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalfetcher/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe(){return{type:z.bot,vendor:"Slack"}}},{test:[/yahoo/i],describe(){return{type:z.bot,vendor:"Yahoo"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe(){return{type:z.bot,vendor:"Yandex"}}},{test:[/pingdom/i],describe(){return{type:z.bot,vendor:"Pingdom"}}},{test:[/huawei/i],describe(B){let d=h.getFirstMatch(/(can-l01)/i,B)&&"Nova",x={type:z.mobile,vendor:"Huawei"};if(d)x.model=d;return x}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:z.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:z.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:z.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:z.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:z.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:z.tablet}}},{test(B){let d=B.test(/ipod|iphone/i),x=B.test(/like (ipod|iphone)/i);return d&&!x},describe(B){let d=h.getFirstMatch(/(ipod|iphone)/i,B);return{type:z.mobile,vendor:"Apple",model:d}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:z.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe(B){let d=h.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,B),x={type:z.mobile,vendor:"Nokia"};if(d)x.model=d;return x}},{test:[/[^-]mobi/i],describe(){return{type:z.mobile}}},{test(B){return B.getBrowserName(!0)==="blackberry"},describe(){return{type:z.mobile,vendor:"BlackBerry"}}},{test(B){return B.getBrowserName(!0)==="bada"},describe(){return{type:z.mobile}}},{test(B){return B.getBrowserName()==="windows phone"},describe(){return{type:z.mobile,vendor:"Microsoft"}}},{test(B){let d=Number(String(B.getOSVersion()).split(".")[0]);return B.getOSName(!0)==="android"&&d>=3},describe(){return{type:z.tablet}}},{test(B){return B.getOSName(!0)==="android"},describe(){return{type:z.mobile}}},{test:[/smart-?tv|smarttv/i],describe(){return{type:z.tv}}},{test:[/netcast/i],describe(){return{type:z.tv}}},{test(B){return B.getOSName(!0)==="macos"},describe(){return{type:z.desktop,vendor:"Apple"}}},{test(B){return B.getOSName(!0)==="windows"},describe(){return{type:z.desktop}}},{test(B){return B.getOSName(!0)==="linux"},describe(){return{type:z.desktop}}},{test(B){return B.getOSName(!0)==="playstation 4"},describe(){return{type:z.tv}}},{test(B){return B.getOSName(!0)==="roku"},describe(){return{type:z.tv}}}]});var f;var I=K(()=>{X();J();f=[{test(B){return B.getBrowserName(!0)==="microsoft edge"},describe(B){if(/\sedg\//i.test(B))return{name:Z.Blink};let x=h.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,B);return{name:Z.EdgeHTML,version:x}}},{test:[/trident/i],describe(B){let d={name:Z.Trident},x=h.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){return B.test(/presto/i)},describe(B){let d={name:Z.Presto},x=h.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){let d=B.test(/gecko/i),x=B.test(/like gecko/i);return d&&!x},describe(B){let d={name:Z.Gecko},x=h.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:Z.Blink}}},{test:[/(apple)?webkit/i],describe(B){let d={name:Z.WebKit},x=h.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}}]});class T{constructor(B,d=!1,x=null){if(B===void 0||B===null||B==="")throw Error("UserAgent parameter can't be empty");this._ua=B;let W=!1;if(typeof d==="boolean")W=d,this._hints=x;else if(d!=null&&typeof d==="object")this._hints=d;else this._hints=null;if(this.parsedResult={},W!==!0)this.parse()}getHints(){return this._hints}hasBrand(B){if(!this._hints||!Array.isArray(this._hints.brands))return!1;let d=B.toLowerCase();return this._hints.brands.some((x)=>x.brand&&x.brand.toLowerCase()===d)}getBrandVersion(B){if(!this._hints||!Array.isArray(this._hints.brands))return;let d=B.toLowerCase(),x=this._hints.brands.find((W)=>W.brand&&W.brand.toLowerCase()===d);return x?x.version:void 0}getUA(){return this._ua}test(B){return B.test(this._ua)}parseBrowser(){this.parsedResult.browser={};let B=h.find(c,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.browser=B.describe(this.getUA(),this);return this.parsedResult.browser}getBrowser(){if(this.parsedResult.browser)return this.parsedResult.browser;return this.parseBrowser()}getBrowserName(B){if(B)return String(this.getBrowser().name).toLowerCase()||"";return this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){if(this.parsedResult.os)return this.parsedResult.os;return this.parseOS()}parseOS(){this.parsedResult.os={};let B=h.find(N,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.os=B.describe(this.getUA());return this.parsedResult.os}getOSName(B){let{name:d}=this.getOS();if(B)return String(d).toLowerCase()||"";return d||""}getOSVersion(){return this.getOS().version}getPlatform(){if(this.parsedResult.platform)return this.parsedResult.platform;return this.parsePlatform()}getPlatformType(B=!1){let{type:d}=this.getPlatform();if(B)return String(d).toLowerCase()||"";return d||""}parsePlatform(){this.parsedResult.platform={};let B=h.find(g,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.platform=B.describe(this.getUA());return this.parsedResult.platform}getEngine(){if(this.parsedResult.engine)return this.parsedResult.engine;return this.parseEngine()}getEngineName(B){if(B)return String(this.getEngine().name).toLowerCase()||"";return this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};let B=h.find(f,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.engine=B.describe(this.getUA());return this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return h.assign({},this.parsedResult)}satisfies(B){let d={},x=0,W={},Q=0;if(Object.keys(B).forEach((C)=>{let Y=B[C];if(typeof Y==="string")W[C]=Y,Q+=1;else if(typeof Y==="object")d[C]=Y,x+=1}),x>0){let C=Object.keys(d),Y=h.find(C,(E)=>this.isOS(E));if(Y){let E=this.satisfies(d[Y]);if(E!==void 0)return E}let G=h.find(C,(E)=>this.isPlatform(E));if(G){let E=this.satisfies(d[G]);if(E!==void 0)return E}}if(Q>0){let C=Object.keys(W),Y=h.find(C,(G)=>this.isBrowser(G,!0));if(Y!==void 0)return this.compareVersion(W[Y])}return}isBrowser(B,d=!1){let x=this.getBrowserName().toLowerCase(),W=B.toLowerCase(),Q=h.getBrowserTypeByAlias(W);if(d&&Q)W=Q.toLowerCase();return W===x}compareVersion(B){let d=[0],x=B,W=!1,Q=this.getBrowserVersion();if(typeof Q!=="string")return;if(B[0]===">"||B[0]==="<"){if(x=B.substr(1),B[1]==="=")W=!0,x=B.substr(2);else d=[];if(B[0]===">")d.push(1);else d.push(-1)}else if(B[0]==="=")x=B.substr(1);else if(B[0]==="~")W=!0,x=B.substr(1);return d.indexOf(h.compareVersions(Q,x,W))>-1}isOS(B){return this.getOSName(!0)===String(B).toLowerCase()}isPlatform(B){return this.getPlatformType(!0)===String(B).toLowerCase()}isEngine(B){return this.getEngineName(!0)===String(B).toLowerCase()}is(B,d=!1){return this.isBrowser(B,d)||this.isOS(B)||this.isPlatform(B)}some(B=[]){return B.some((d)=>this.is(d))}}var D;var R=K(()=>{j();F();O();I();X();D=T});class V{static getParser(B,d=!1,x=null){if(typeof B!=="string")throw Error("UserAgent should be a string");return new D(B,d,x)}static parse(B,d=null){return new D(B,d).getResult()}static get BROWSER_MAP(){return $}static get ENGINE_MAP(){return Z}static get OS_MAP(){return k}static get PLATFORMS_MAP(){return z}}var Wd;var M=K(()=>{R();J();/*!
|
|
2
|
+
import{qP as K}from"./chunk-naq602da.js";var H,$,z,k,Z;var J=K(()=>{H={AmazonBot:"amazonbot","Amazon Silk":"amazon_silk","Android Browser":"android",BaiduSpider:"baiduspider",Bada:"bada",BingCrawler:"bingcrawler",Brave:"brave",BlackBerry:"blackberry","ChatGPT-User":"chatgpt_user",Chrome:"chrome",ClaudeBot:"claudebot",Chromium:"chromium",Diffbot:"diffbot",DuckDuckBot:"duckduckbot",DuckDuckGo:"duckduckgo",Electron:"electron",Epiphany:"epiphany",FacebookExternalHit:"facebookexternalhit",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot",GPTBot:"gptbot","Internet Explorer":"ie",InternetArchiveCrawler:"internetarchivecrawler","K-Meleon":"k_meleon",LibreWolf:"librewolf",Linespider:"linespider",Maxthon:"maxthon","Meta-ExternalAds":"meta_externalads","Meta-ExternalAgent":"meta_externalagent","Meta-ExternalFetcher":"meta_externalfetcher","Meta-WebIndexer":"meta_webindexer","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver","OAI-SearchBot":"oai_searchbot",Omgilibot:"omgilibot",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PerplexityBot:"perplexitybot","Perplexity-User":"perplexity_user",PhantomJS:"phantomjs",PingdomBot:"pingdombot",Puffin:"puffin",QQ:"qq",QQLite:"qqlite",QupZilla:"qupzilla",Roku:"roku",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SlackBot:"slackbot",SeaMonkey:"seamonkey",Sleipnir:"sleipnir","Sogou Browser":"sogou",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat",YahooSlurp:"yahooslurp","Yandex Browser":"yandex",YandexBot:"yandexbot",YouBot:"youbot"},$={amazonbot:"AmazonBot",amazon_silk:"Amazon Silk",android:"Android Browser",baiduspider:"BaiduSpider",bada:"Bada",bingcrawler:"BingCrawler",blackberry:"BlackBerry",brave:"Brave",chatgpt_user:"ChatGPT-User",chrome:"Chrome",claudebot:"ClaudeBot",chromium:"Chromium",diffbot:"Diffbot",duckduckbot:"DuckDuckBot",duckduckgo:"DuckDuckGo",edge:"Microsoft Edge",electron:"Electron",epiphany:"Epiphany",facebookexternalhit:"FacebookExternalHit",firefox:"Firefox",focus:"Focus",generic:"Generic",google_search:"Google Search",googlebot:"Googlebot",gptbot:"GPTBot",ie:"Internet Explorer",internetarchivecrawler:"InternetArchiveCrawler",k_meleon:"K-Meleon",librewolf:"LibreWolf",linespider:"Linespider",maxthon:"Maxthon",meta_externalads:"Meta-ExternalAds",meta_externalagent:"Meta-ExternalAgent",meta_externalfetcher:"Meta-ExternalFetcher",meta_webindexer:"Meta-WebIndexer",mz:"MZ Browser",naver:"NAVER Whale Browser",oai_searchbot:"OAI-SearchBot",omgilibot:"Omgilibot",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",perplexitybot:"PerplexityBot",perplexity_user:"Perplexity-User",phantomjs:"PhantomJS",pingdombot:"PingdomBot",puffin:"Puffin",qq:"QQ Browser",qqlite:"QQ Browser Lite",qupzilla:"QupZilla",roku:"Roku",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",slackbot:"SlackBot",sleipnir:"Sleipnir",sogou:"Sogou Browser",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yahooslurp:"YahooSlurp",yandex:"Yandex Browser",yandexbot:"YandexBot",youbot:"YouBot"},z={bot:"bot",desktop:"desktop",mobile:"mobile",tablet:"tablet",tv:"tv"},k={Android:"Android",Bada:"Bada",BlackBerry:"BlackBerry",ChromeOS:"Chrome OS",HarmonyOS:"HarmonyOS",iOS:"iOS",Linux:"Linux",MacOS:"macOS",PlayStation4:"PlayStation 4",Roku:"Roku",Tizen:"Tizen",WebOS:"WebOS",Windows:"Windows",WindowsPhone:"Windows Phone"},Z={Blink:"Blink",EdgeHTML:"EdgeHTML",Gecko:"Gecko",Presto:"Presto",Trident:"Trident",WebKit:"WebKit"}});class h{static getFirstMatch(B,d){let x=d.match(B);return x&&x.length>0&&x[1]||""}static getSecondMatch(B,d){let x=d.match(B);return x&&x.length>1&&x[2]||""}static matchAndReturnConst(B,d,x){if(B.test(d))return x;return}static getWindowsVersionName(B){switch(B){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(B){let d=B.split(".").splice(0,2).map((Q)=>parseInt(Q,10)||0);d.push(0);let x=d[0],W=d[1];if(x===10)switch(W){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}switch(x){case 11:return"Big Sur";case 12:return"Monterey";case 13:return"Ventura";case 14:return"Sonoma";case 15:return"Sequoia";default:return}}static getAndroidVersionName(B){let d=B.split(".").splice(0,2).map((x)=>parseInt(x,10)||0);if(d.push(0),d[0]===1&&d[1]<5)return;if(d[0]===1&&d[1]<6)return"Cupcake";if(d[0]===1&&d[1]>=6)return"Donut";if(d[0]===2&&d[1]<2)return"Eclair";if(d[0]===2&&d[1]===2)return"Froyo";if(d[0]===2&&d[1]>2)return"Gingerbread";if(d[0]===3)return"Honeycomb";if(d[0]===4&&d[1]<1)return"Ice Cream Sandwich";if(d[0]===4&&d[1]<4)return"Jelly Bean";if(d[0]===4&&d[1]>=4)return"KitKat";if(d[0]===5)return"Lollipop";if(d[0]===6)return"Marshmallow";if(d[0]===7)return"Nougat";if(d[0]===8)return"Oreo";if(d[0]===9)return"Pie";return}static getVersionPrecision(B){return B.split(".").length}static compareVersions(B,d,x=!1){let W=h.getVersionPrecision(B),Q=h.getVersionPrecision(d),y=Math.max(W,Q),C=0,Y=h.map([B,d],(G)=>{let E=y-h.getVersionPrecision(G),_=G+Array(E+1).join(".0");return h.map(_.split("."),(S)=>Array(20-S.length).join("0")+S).reverse()});if(x)C=y-Math.min(W,Q);y-=1;while(y>=C){if(Y[0][y]>Y[1][y])return 1;if(Y[0][y]===Y[1][y]){if(y===C)return 0;y-=1}else if(Y[0][y]<Y[1][y])return-1}return}static map(B,d){let x=[],W;if(Array.prototype.map)return Array.prototype.map.call(B,d);for(W=0;W<B.length;W+=1)x.push(d(B[W]));return x}static find(B,d){let x,W;if(Array.prototype.find)return Array.prototype.find.call(B,d);for(x=0,W=B.length;x<W;x+=1){let Q=B[x];if(d(Q,x))return Q}return}static assign(B,...d){let x=B,W,Q;if(Object.assign)return Object.assign(B,...d);for(W=0,Q=d.length;W<Q;W+=1){let y=d[W];if(typeof y==="object"&&y!==null)Object.keys(y).forEach((Y)=>{x[Y]=y[Y]})}return B}static getBrowserAlias(B){return H[B]}static getBrowserTypeByAlias(B){return $[B]||""}}var X=K(()=>{J()});var q,L,c;var j=K(()=>{X();q=/version\/(\d+(\.?_?\d+)+)/i,L=[{test:[/gptbot/i],describe(B){let d={name:"GPTBot"},x=h.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/chatgpt-user/i],describe(B){let d={name:"ChatGPT-User"},x=h.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/oai-searchbot/i],describe(B){let d={name:"OAI-SearchBot"},x=h.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe(B){let d={name:"ClaudeBot"},x=h.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/omgilibot/i,/webzio-extended/i],describe(B){let d={name:"Omgilibot"},x=h.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/diffbot/i],describe(B){let d={name:"Diffbot"},x=h.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/perplexitybot/i],describe(B){let d={name:"PerplexityBot"},x=h.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/perplexity-user/i],describe(B){let d={name:"Perplexity-User"},x=h.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/youbot/i],describe(B){let d={name:"YouBot"},x=h.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-webindexer/i],describe(B){let d={name:"Meta-WebIndexer"},x=h.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalads/i],describe(B){let d={name:"Meta-ExternalAds"},x=h.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalagent/i],describe(B){let d={name:"Meta-ExternalAgent"},x=h.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/meta-externalfetcher/i],describe(B){let d={name:"Meta-ExternalFetcher"},x=h.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/googlebot/i],describe(B){let d={name:"Googlebot"},x=h.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/linespider/i],describe(B){let d={name:"Linespider"},x=h.getFirstMatch(/(?:linespider)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/amazonbot/i],describe(B){let d={name:"AmazonBot"},x=h.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/bingbot/i],describe(B){let d={name:"BingCrawler"},x=h.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/baiduspider/i],describe(B){let d={name:"BaiduSpider"},x=h.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/duckduckbot/i],describe(B){let d={name:"DuckDuckBot"},x=h.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/ia_archiver/i],describe(B){let d={name:"InternetArchiveCrawler"},x=h.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe(){return{name:"FacebookExternalHit"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe(B){let d={name:"SlackBot"},x=h.getFirstMatch(/(?:slackbot|slack-imgproxy)(?:-[-\w]+)?[\s/](\d+(\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/yahoo!?[\s/]*slurp/i],describe(){return{name:"YahooSlurp"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe(){return{name:"YandexBot"}}},{test:[/pingdom/i],describe(){return{name:"PingdomBot"}}},{test:[/opera/i],describe(B){let d={name:"Opera"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/opr\/|opios/i],describe(B){let d={name:"Opera"},x=h.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/SamsungBrowser/i],describe(B){let d={name:"Samsung Internet for Android"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/Whale/i],describe(B){let d={name:"NAVER Whale Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/PaleMoon/i],describe(B){let d={name:"Pale Moon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/MZBrowser/i],describe(B){let d={name:"MZ Browser"},x=h.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/focus/i],describe(B){let d={name:"Focus"},x=h.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/swing/i],describe(B){let d={name:"Swing"},x=h.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/coast/i],describe(B){let d={name:"Opera Coast"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(B){let d={name:"Opera Touch"},x=h.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/yabrowser/i],describe(B){let d={name:"Yandex Browser"},x=h.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/ucbrowser/i],describe(B){let d={name:"UC Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/Maxthon|mxios/i],describe(B){let d={name:"Maxthon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/epiphany/i],describe(B){let d={name:"Epiphany"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/puffin/i],describe(B){let d={name:"Puffin"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sleipnir/i],describe(B){let d={name:"Sleipnir"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/k-meleon/i],describe(B){let d={name:"K-Meleon"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/micromessenger/i],describe(B){let d={name:"WeChat"},x=h.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/qqbrowser/i],describe(B){let d={name:/qqbrowserlite/i.test(B)?"QQ Browser Lite":"QQ Browser"},x=h.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/msie|trident/i],describe(B){let d={name:"Internet Explorer"},x=h.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/\sedg\//i],describe(B){let d={name:"Microsoft Edge"},x=h.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/edg([ea]|ios)/i],describe(B){let d={name:"Microsoft Edge"},x=h.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/vivaldi/i],describe(B){let d={name:"Vivaldi"},x=h.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/seamonkey/i],describe(B){let d={name:"SeaMonkey"},x=h.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sailfish/i],describe(B){let d={name:"Sailfish"},x=h.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,B);if(x)d.version=x;return d}},{test:[/silk/i],describe(B){let d={name:"Amazon Silk"},x=h.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/phantom/i],describe(B){let d={name:"PhantomJS"},x=h.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/slimerjs/i],describe(B){let d={name:"SlimerJS"},x=h.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(B){let d={name:"BlackBerry"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/(web|hpw)[o0]s/i],describe(B){let d={name:"WebOS Browser"},x=h.getFirstMatch(q,B)||h.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/bada/i],describe(B){let d={name:"Bada"},x=h.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/tizen/i],describe(B){let d={name:"Tizen"},x=h.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/qupzilla/i],describe(B){let d={name:"QupZilla"},x=h.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/librewolf/i],describe(B){let d={name:"LibreWolf"},x=h.getFirstMatch(/(?:librewolf)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/firefox|iceweasel|fxios/i],describe(B){let d={name:"Firefox"},x=h.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/electron/i],describe(B){let d={name:"Electron"},x=h.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\.[x]/i],describe(B){let d={name:"Sogou Browser"},x=h.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i,B),W=h.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,B),Q=h.getFirstMatch(/se ([\d.]+)x/i,B),y=x||W||Q;if(y)d.version=y;return d}},{test:[/MiuiBrowser/i],describe(B){let d={name:"Miui"},x=h.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){if(B.hasBrand("DuckDuckGo"))return!0;return B.test(/\sDdg\/[\d.]+$/i)},describe(B,d){let x={name:"DuckDuckGo"};if(d){let Q=d.getBrandVersion("DuckDuckGo");if(Q)return x.version=Q,x}let W=h.getFirstMatch(/\sDdg\/([\d.]+)$/i,B);if(W)x.version=W;return x}},{test(B){return B.hasBrand("Brave")},describe(B,d){let x={name:"Brave"};if(d){let W=d.getBrandVersion("Brave");if(W)return x.version=W,x}return x}},{test:[/chromium/i],describe(B){let d={name:"Chromium"},x=h.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,B)||h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/chrome|crios|crmo/i],describe(B){let d={name:"Chrome"},x=h.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/GSA/i],describe(B){let d={name:"Google Search"},x=h.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){let d=!B.test(/like android/i),x=B.test(/android/i);return d&&x},describe(B){let d={name:"Android Browser"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/playstation 4/i],describe(B){let d={name:"PlayStation 4"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/safari|applewebkit/i],describe(B){let d={name:"Safari"},x=h.getFirstMatch(q,B);if(x)d.version=x;return d}},{test:[/.*/i],describe(B){let d=/^(.*)\/(.*) /,x=/^(.*)\/(.*)[ \t]\((.*)/,Q=B.search("\\(")!==-1?x:d;return{name:h.getFirstMatch(Q,B),version:h.getSecondMatch(Q,B)}}}],c=L});var N;var F=K(()=>{X();J();N=[{test:[/Roku\/DVP/],describe(B){let d=h.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,B);return{name:k.Roku,version:d}}},{test:[/windows phone/i],describe(B){let d=h.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,B);return{name:k.WindowsPhone,version:d}}},{test:[/windows /i],describe(B){let d=h.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,B),x=h.getWindowsVersionName(d);return{name:k.Windows,version:d,versionName:x}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(B){let d={name:k.iOS},x=h.getSecondMatch(/(Version\/)(\d[\d.]+)/,B);if(x)d.version=x;return d}},{test:[/macintosh/i],describe(B){let d=h.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,B).replace(/[_\s]/g,"."),x=h.getMacOSVersionName(d),W={name:k.MacOS,version:d};if(x)W.versionName=x;return W}},{test:[/(ipod|iphone|ipad)/i],describe(B){let d=h.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,B).replace(/[_\s]/g,".");return{name:k.iOS,version:d}}},{test:[/OpenHarmony/i],describe(B){let d=h.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i,B);return{name:k.HarmonyOS,version:d}}},{test(B){let d=!B.test(/like android/i),x=B.test(/android/i);return d&&x},describe(B){let d=h.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,B),x=h.getAndroidVersionName(d),W={name:k.Android,version:d};if(x)W.versionName=x;return W}},{test:[/(web|hpw)[o0]s/i],describe(B){let d=h.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,B),x={name:k.WebOS};if(d&&d.length)x.version=d;return x}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(B){let d=h.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,B)||h.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,B)||h.getFirstMatch(/\bbb(\d+)/i,B);return{name:k.BlackBerry,version:d}}},{test:[/bada/i],describe(B){let d=h.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,B);return{name:k.Bada,version:d}}},{test:[/tizen/i],describe(B){let d=h.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,B);return{name:k.Tizen,version:d}}},{test:[/linux/i],describe(){return{name:k.Linux}}},{test:[/CrOS/],describe(){return{name:k.ChromeOS}}},{test:[/PlayStation 4/],describe(B){let d=h.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,B);return{name:k.PlayStation4,version:d}}}]});var g;var O=K(()=>{X();J();g=[{test:[/googlebot/i],describe(){return{type:z.bot,vendor:"Google"}}},{test:[/linespider/i],describe(){return{type:z.bot,vendor:"Line"}}},{test:[/amazonbot/i],describe(){return{type:z.bot,vendor:"Amazon"}}},{test:[/gptbot/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/chatgpt-user/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/oai-searchbot/i],describe(){return{type:z.bot,vendor:"OpenAI"}}},{test:[/baiduspider/i],describe(){return{type:z.bot,vendor:"Baidu"}}},{test:[/bingbot/i],describe(){return{type:z.bot,vendor:"Bing"}}},{test:[/duckduckbot/i],describe(){return{type:z.bot,vendor:"DuckDuckGo"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe(){return{type:z.bot,vendor:"Anthropic"}}},{test:[/omgilibot/i,/webzio-extended/i],describe(){return{type:z.bot,vendor:"Webz.io"}}},{test:[/diffbot/i],describe(){return{type:z.bot,vendor:"Diffbot"}}},{test:[/perplexitybot/i],describe(){return{type:z.bot,vendor:"Perplexity AI"}}},{test:[/perplexity-user/i],describe(){return{type:z.bot,vendor:"Perplexity AI"}}},{test:[/youbot/i],describe(){return{type:z.bot,vendor:"You.com"}}},{test:[/ia_archiver/i],describe(){return{type:z.bot,vendor:"Internet Archive"}}},{test:[/meta-webindexer/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalads/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalagent/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/meta-externalfetcher/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe(){return{type:z.bot,vendor:"Meta"}}},{test:[/slackbot/i,/slack-imgProxy/i],describe(){return{type:z.bot,vendor:"Slack"}}},{test:[/yahoo/i],describe(){return{type:z.bot,vendor:"Yahoo"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe(){return{type:z.bot,vendor:"Yandex"}}},{test:[/pingdom/i],describe(){return{type:z.bot,vendor:"Pingdom"}}},{test:[/huawei/i],describe(B){let d=h.getFirstMatch(/(can-l01)/i,B)&&"Nova",x={type:z.mobile,vendor:"Huawei"};if(d)x.model=d;return x}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:z.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:z.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:z.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:z.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:z.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:z.tablet}}},{test(B){let d=B.test(/ipod|iphone/i),x=B.test(/like (ipod|iphone)/i);return d&&!x},describe(B){let d=h.getFirstMatch(/(ipod|iphone)/i,B);return{type:z.mobile,vendor:"Apple",model:d}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:z.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe(B){let d=h.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,B),x={type:z.mobile,vendor:"Nokia"};if(d)x.model=d;return x}},{test:[/[^-]mobi/i],describe(){return{type:z.mobile}}},{test(B){return B.getBrowserName(!0)==="blackberry"},describe(){return{type:z.mobile,vendor:"BlackBerry"}}},{test(B){return B.getBrowserName(!0)==="bada"},describe(){return{type:z.mobile}}},{test(B){return B.getBrowserName()==="windows phone"},describe(){return{type:z.mobile,vendor:"Microsoft"}}},{test(B){let d=Number(String(B.getOSVersion()).split(".")[0]);return B.getOSName(!0)==="android"&&d>=3},describe(){return{type:z.tablet}}},{test(B){return B.getOSName(!0)==="android"},describe(){return{type:z.mobile}}},{test:[/smart-?tv|smarttv/i],describe(){return{type:z.tv}}},{test:[/netcast/i],describe(){return{type:z.tv}}},{test(B){return B.getOSName(!0)==="macos"},describe(){return{type:z.desktop,vendor:"Apple"}}},{test(B){return B.getOSName(!0)==="windows"},describe(){return{type:z.desktop}}},{test(B){return B.getOSName(!0)==="linux"},describe(){return{type:z.desktop}}},{test(B){return B.getOSName(!0)==="playstation 4"},describe(){return{type:z.tv}}},{test(B){return B.getOSName(!0)==="roku"},describe(){return{type:z.tv}}}]});var f;var I=K(()=>{X();J();f=[{test(B){return B.getBrowserName(!0)==="microsoft edge"},describe(B){if(/\sedg\//i.test(B))return{name:Z.Blink};let x=h.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,B);return{name:Z.EdgeHTML,version:x}}},{test:[/trident/i],describe(B){let d={name:Z.Trident},x=h.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){return B.test(/presto/i)},describe(B){let d={name:Z.Presto},x=h.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test(B){let d=B.test(/gecko/i),x=B.test(/like gecko/i);return d&&!x},describe(B){let d={name:Z.Gecko},x=h.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:Z.Blink}}},{test:[/(apple)?webkit/i],describe(B){let d={name:Z.WebKit},x=h.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,B);if(x)d.version=x;return d}}]});class T{constructor(B,d=!1,x=null){if(B===void 0||B===null||B==="")throw Error("UserAgent parameter can't be empty");this._ua=B;let W=!1;if(typeof d==="boolean")W=d,this._hints=x;else if(d!=null&&typeof d==="object")this._hints=d;else this._hints=null;if(this.parsedResult={},W!==!0)this.parse()}getHints(){return this._hints}hasBrand(B){if(!this._hints||!Array.isArray(this._hints.brands))return!1;let d=B.toLowerCase();return this._hints.brands.some((x)=>x.brand&&x.brand.toLowerCase()===d)}getBrandVersion(B){if(!this._hints||!Array.isArray(this._hints.brands))return;let d=B.toLowerCase(),x=this._hints.brands.find((W)=>W.brand&&W.brand.toLowerCase()===d);return x?x.version:void 0}getUA(){return this._ua}test(B){return B.test(this._ua)}parseBrowser(){this.parsedResult.browser={};let B=h.find(c,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.browser=B.describe(this.getUA(),this);return this.parsedResult.browser}getBrowser(){if(this.parsedResult.browser)return this.parsedResult.browser;return this.parseBrowser()}getBrowserName(B){if(B)return String(this.getBrowser().name).toLowerCase()||"";return this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){if(this.parsedResult.os)return this.parsedResult.os;return this.parseOS()}parseOS(){this.parsedResult.os={};let B=h.find(N,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.os=B.describe(this.getUA());return this.parsedResult.os}getOSName(B){let{name:d}=this.getOS();if(B)return String(d).toLowerCase()||"";return d||""}getOSVersion(){return this.getOS().version}getPlatform(){if(this.parsedResult.platform)return this.parsedResult.platform;return this.parsePlatform()}getPlatformType(B=!1){let{type:d}=this.getPlatform();if(B)return String(d).toLowerCase()||"";return d||""}parsePlatform(){this.parsedResult.platform={};let B=h.find(g,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.platform=B.describe(this.getUA());return this.parsedResult.platform}getEngine(){if(this.parsedResult.engine)return this.parsedResult.engine;return this.parseEngine()}getEngineName(B){if(B)return String(this.getEngine().name).toLowerCase()||"";return this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};let B=h.find(f,(d)=>{if(typeof d.test==="function")return d.test(this);if(Array.isArray(d.test))return d.test.some((x)=>this.test(x));throw Error("Browser's test function is not valid")});if(B)this.parsedResult.engine=B.describe(this.getUA());return this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return h.assign({},this.parsedResult)}satisfies(B){let d={},x=0,W={},Q=0;if(Object.keys(B).forEach((C)=>{let Y=B[C];if(typeof Y==="string")W[C]=Y,Q+=1;else if(typeof Y==="object")d[C]=Y,x+=1}),x>0){let C=Object.keys(d),Y=h.find(C,(E)=>this.isOS(E));if(Y){let E=this.satisfies(d[Y]);if(E!==void 0)return E}let G=h.find(C,(E)=>this.isPlatform(E));if(G){let E=this.satisfies(d[G]);if(E!==void 0)return E}}if(Q>0){let C=Object.keys(W),Y=h.find(C,(G)=>this.isBrowser(G,!0));if(Y!==void 0)return this.compareVersion(W[Y])}return}isBrowser(B,d=!1){let x=this.getBrowserName().toLowerCase(),W=B.toLowerCase(),Q=h.getBrowserTypeByAlias(W);if(d&&Q)W=Q.toLowerCase();return W===x}compareVersion(B){let d=[0],x=B,W=!1,Q=this.getBrowserVersion();if(typeof Q!=="string")return;if(B[0]===">"||B[0]==="<"){if(x=B.substr(1),B[1]==="=")W=!0,x=B.substr(2);else d=[];if(B[0]===">")d.push(1);else d.push(-1)}else if(B[0]==="=")x=B.substr(1);else if(B[0]==="~")W=!0,x=B.substr(1);return d.indexOf(h.compareVersions(Q,x,W))>-1}isOS(B){return this.getOSName(!0)===String(B).toLowerCase()}isPlatform(B){return this.getPlatformType(!0)===String(B).toLowerCase()}isEngine(B){return this.getEngineName(!0)===String(B).toLowerCase()}is(B,d=!1){return this.isBrowser(B,d)||this.isOS(B)||this.isPlatform(B)}some(B=[]){return B.some((d)=>this.is(d))}}var D;var R=K(()=>{j();F();O();I();X();D=T});class V{static getParser(B,d=!1,x=null){if(typeof B!=="string")throw Error("UserAgent should be a string");return new D(B,d,x)}static parse(B,d=null){return new D(B,d).getResult()}static get BROWSER_MAP(){return $}static get ENGINE_MAP(){return Z}static get OS_MAP(){return k}static get PLATFORMS_MAP(){return z}}var Wd;var M=K(()=>{R();J();/*!
|
|
3
3
|
* Bowser - a browser detector
|
|
4
4
|
* https://github.com/bowser-js/bowser
|
|
5
5
|
* MIT License | (c) Dustin Diaz 2012-2015
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{tp as J}from"./chunk-hqv0s6sw.js";import{Gt as Q,ut as H,vt as I,wt as N}from"./chunk-b2k9yafd.js";import{rP as L}from"./chunk-naq602da.js";import{platform as R,release as U}from"os";import{tmpdir as V}from"os";import X from"path";import Y from"fs/promises";var Z=J(async()=>{let{which:D}=await import("./chunk-5hzkd9te.js");return D}),T=J(async()=>{let{default:D}=await import("./chunk-qkn4039t.js");return D});function _(D){if(!process.stdout.isTTY)return;let A=`\x1B]52;c;${Buffer.from(D).toString("base64")}\x07`,E=process.env.TMUX||process.env.STY?`\x1BPtmux;\x1B${A}\x1B\\`:A;process.stdout.write(E)}async function $(){let D=R();if(D==="darwin"){let k=X.join(V(),"qitqode-clipboard.png");try{return await I(["osascript","-e",'set imageData to the clipboard as "PNGf"',"-e",`set fileRef to open for access POSIX file "${k}" with write permission`,"-e","set eof fileRef to 0","-e","write imageData to fileRef","-e","close access fileRef"],{nothrow:!0}),{data:(await Q(k)).toString("base64"),mime:"image/png"}}catch{}finally{await Y.rm(k,{force:!0}).catch(()=>{})}}if(D==="win32"||U().includes("WSL")){let E=await N(["powershell.exe","-NonInteractive","-NoProfile","-command","Add-Type -AssemblyName System.Windows.Forms; $img = [System.Windows.Forms.Clipboard]::GetImage(); if ($img) { $ms = New-Object System.IO.MemoryStream; $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png); [System.Convert]::ToBase64String($ms.ToArray()) }"],{nothrow:!0});if(E.text){let K=Buffer.from(E.text.trim(),"base64");if(K.length>0)return{data:K.toString("base64"),mime:"image/png"}}}if(D==="linux"){let k=await I(["wl-paste","-t","image/png"],{nothrow:!0});if(k.stdout.byteLength>0)return{data:Buffer.from(k.stdout).toString("base64"),mime:"image/png"};let E=await I(["xclip","-selection","clipboard","-t","image/png","-o"],{nothrow:!0});if(E.stdout.byteLength>0)return{data:Buffer.from(E.stdout).toString("base64"),mime:"image/png"}}let A=await(await T()).read().catch(()=>{});if(A)return{data:A,mime:"text/plain"}}var j=J(async()=>{let D=R(),G=await Z();if(D==="darwin"&&G("osascript"))return console.log("clipboard: using osascript"),async(A)=>{let k=A.replace(/\\/g,"\\\\").replace(/"/g,"\\\"");await I(["osascript","-e",`set the clipboard to "${k}"`],{nothrow:!0})};if(D==="linux"){if(process.env.WAYLAND_DISPLAY&&G("wl-copy"))return console.log("clipboard: using wl-copy"),async(A)=>{let k=H(["wl-copy"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};if(G("xclip"))return console.log("clipboard: using xclip"),async(A)=>{let k=H(["xclip","-selection","clipboard"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};if(G("xsel"))return console.log("clipboard: using xsel"),async(A)=>{let k=H(["xsel","--clipboard","--input"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})}}if(D==="win32")return console.log("clipboard: using powershell"),async(A)=>{let k=H(["powershell.exe","-NonInteractive","-NoProfile","-Command","[Console]::InputEncoding = [System.Text.Encoding]::UTF8; Set-Clipboard -Value ([Console]::In.ReadToEnd())"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};return console.log("clipboard: no native support"),async(A)=>{await(await T()).write(A).catch(()=>{})}});async function v(D){_(D),await(await j())(D)}
|
|
3
3
|
export{$ as rd,v as sd};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ae as F}from"./chunk-
|
|
2
|
+
import{Ae as F}from"./chunk-05badzhy.js";import{Me as z,Pe as B,ef as D}from"./chunk-m8tfv36b.js";import{Pq as x}from"./chunk-zzdbrxkh.js";import"./chunk-cqtkxwd8.js";import"./chunk-xtj5qqsw.js";import{Eu as q}from"./chunk-22vvjp4g.js";import"./chunk-a3te67a5.js";import"./chunk-naq602da.js";var N="2.0.41",P=q.object({message:q.string(),type:q.string(),param:q.string(),code:q.string()}),Q={errorSchema:P,errorToMessage:(k)=>k.message};function T(k={}){var y;let G=D((y=k.baseURL)!=null?y:"https://api.cerebras.ai/v1"),J=()=>z({Authorization:`Bearer ${B({apiKey:k.apiKey,environmentVariableName:"CEREBRAS_API_KEY",description:"Cerebras API key"})}`,...k.headers},`ai-sdk/cerebras/${N}`),w=(j)=>{return new F(j,{provider:"cerebras.chat",url:({path:K})=>`${G}${K}`,headers:J,fetch:k.fetch,errorStructure:Q,supportsStructuredOutputs:!0})},f=(j)=>w(j);return f.specificationVersion="v3",f.languageModel=w,f.chat=w,f.embeddingModel=(j)=>{throw new x({modelId:j,modelType:"embeddingModel"})},f.textEmbeddingModel=f.embeddingModel,f.imageModel=(j)=>{throw new x({modelId:j,modelType:"imageModel"})},f}var Z=T();export{T as createCerebras,Z as cerebras,N as VERSION};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{lP as D}from"./chunk-r0sjwtfc.js";import{mP as C}from"./chunk-kpkbyek5.js";import{oP as B}from"./chunk-naq602da.js";var H=B((q)=>{Object.defineProperty(q,"__esModule",{value:!0});q.getMachineId=void 0;var E=D(),F=C();async function G(){try{let f=(await(0,E.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(`
|
|
3
3
|
`).find((z)=>z.includes("IOPlatformUUID"));if(!f)return;let k=f.split('" = "');if(k.length===2)return k[1].slice(0,-1)}catch(b){F.diag.debug(`error reading machine id: ${b}`)}return}q.getMachineId=G});export default H();
|