@costrict/csc 4.0.5 → 4.0.6
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/dist/{chunk-nre8a00v.js → chunk-0d8fsb3f.js} +25 -25
- package/dist/{chunk-85jw2w2x.js → chunk-14dr73nm.js} +33 -33
- package/dist/{chunk-whas4b6c.js → chunk-1654qwhg.js} +3 -3
- package/dist/{chunk-3djy352h.js → chunk-16fwkvne.js} +5 -5
- package/dist/{chunk-gqqy616g.js → chunk-18mg2jbt.js} +5 -5
- package/dist/{chunk-3rr330xr.js → chunk-1adtbsx1.js} +23 -23
- package/dist/{chunk-yq0e1vbr.js → chunk-1bj314jr.js} +25 -25
- package/dist/{chunk-s4ncrmd8.js → chunk-1enwrw4b.js} +2 -2
- package/dist/{chunk-c0cxm1jj.js → chunk-1k6m0y9e.js} +22 -22
- package/dist/{chunk-hkbjsxr5.js → chunk-1wd1tvjg.js} +9 -9
- package/dist/{chunk-zwm57zy3.js → chunk-21wj1qva.js} +22 -22
- package/dist/{chunk-4d9bywzd.js → chunk-251qz8r8.js} +1 -1
- package/dist/{chunk-yc2ay8fz.js → chunk-269w1s78.js} +1 -1
- package/dist/{chunk-nxrm815g.js → chunk-2756h9f2.js} +2 -2
- package/dist/{chunk-m4th1xcy.js → chunk-27y2r83y.js} +4 -4
- package/dist/{chunk-sekayrhn.js → chunk-2f75y8wp.js} +3 -3
- package/dist/{chunk-jh3g1h2m.js → chunk-2gd977xr.js} +2 -2
- package/dist/{chunk-f05a5t1g.js → chunk-2kffnmxg.js} +23 -23
- package/dist/{chunk-55pz9658.js → chunk-2mvhnaa0.js} +1 -1
- package/dist/{chunk-mm6hffs4.js → chunk-2p2wh0gq.js} +22 -22
- package/dist/{chunk-s1gf9fzs.js → chunk-2rbvnpnz.js} +1 -1
- package/dist/{chunk-03a7ns5s.js → chunk-2w5s1h65.js} +1 -1
- package/dist/{chunk-svyfbay6.js → chunk-30psx1ct.js} +2 -2
- package/dist/{chunk-zhmhyt38.js → chunk-360800y9.js} +36 -36
- package/dist/{chunk-bakrp6by.js → chunk-363c6n7e.js} +9 -9
- package/dist/{chunk-gckjpwer.js → chunk-39ench93.js} +24 -24
- package/dist/{chunk-g2ddxeq0.js → chunk-3dnwye6y.js} +3 -3
- package/dist/{chunk-hdkf83nm.js → chunk-3h82p22d.js} +22 -22
- package/dist/{chunk-e7x5yj2h.js → chunk-3pdjc2gm.js} +23 -23
- package/dist/{chunk-3t41eh7n.js → chunk-3q3f6ceh.js} +23 -23
- package/dist/{chunk-9svnj49d.js → chunk-3rayv603.js} +146 -134
- package/dist/{chunk-8fvt9r29.js → chunk-42k4d5a3.js} +28 -28
- package/dist/{chunk-7kdnj6r5.js → chunk-4ajqfwsx.js} +2 -2
- package/dist/{chunk-b78pzw80.js → chunk-4jy34gvq.js} +37 -37
- package/dist/{chunk-p3bcc8q8.js → chunk-4kfxavh8.js} +24 -24
- package/dist/{chunk-cj93y6v4.js → chunk-4s3bt1gn.js} +2 -2
- package/dist/{chunk-z47zsr3f.js → chunk-5ccc20mg.js} +22 -22
- package/dist/{chunk-xz775vz4.js → chunk-5g4p3z1z.js} +22 -22
- package/dist/{chunk-7pfa478f.js → chunk-5p0zbh9x.js} +16 -16
- package/dist/{chunk-c2e4y5dn.js → chunk-5t19dz73.js} +3 -3
- package/dist/{chunk-24e25s3h.js → chunk-5tyn4yss.js} +1 -1
- package/dist/{chunk-gneehjp8.js → chunk-5y2fkscj.js} +2 -2
- package/dist/{chunk-94jwb8h8.js → chunk-5yvqxwsj.js} +1 -1
- package/dist/{chunk-8kqdnkkh.js → chunk-62fx0nkf.js} +1 -1
- package/dist/{chunk-gn36711e.js → chunk-64z045xk.js} +1 -1
- package/dist/{chunk-eqrenafc.js → chunk-68d4wsvx.js} +3 -3
- package/dist/{chunk-r1zjw4gp.js → chunk-6hj56wt8.js} +1 -1
- package/dist/{chunk-mf1zbwh9.js → chunk-6mt26zv5.js} +22 -22
- package/dist/{chunk-381axhkg.js → chunk-6pgkwybc.js} +3 -3
- package/dist/{chunk-cnkwshve.js → chunk-6wv1eqyt.js} +2 -2
- package/dist/{chunk-ehvhhmg2.js → chunk-6z4p8fmn.js} +22 -22
- package/dist/{chunk-e51ayxz6.js → chunk-71ydypar.js} +2 -2
- package/dist/{chunk-k4mg16w6.js → chunk-72cgrga2.js} +9 -9
- package/dist/{chunk-cxytr6ke.js → chunk-77b6fy2b.js} +1 -1
- package/dist/{chunk-8e2v15zy.js → chunk-77fezrae.js} +1 -1
- package/dist/{chunk-1dbz25dk.js → chunk-78565eg4.js} +22 -22
- package/dist/{chunk-pj2h71rb.js → chunk-7dg4sqtf.js} +1 -1
- package/dist/{chunk-dw02dt93.js → chunk-7kg75svp.js} +25 -25
- package/dist/{chunk-7h58vakp.js → chunk-7qbqr970.js} +23 -23
- package/dist/{chunk-y7r4awy2.js → chunk-7s5qvxd6.js} +2 -2
- package/dist/{chunk-q99z5w71.js → chunk-82afh45e.js} +1 -1
- package/dist/{chunk-jcck08pa.js → chunk-82cnr1xs.js} +24 -24
- package/dist/{chunk-4grs5afv.js → chunk-86fxz5n3.js} +1 -1
- package/dist/{chunk-s7xzavdg.js → chunk-8b5knarb.js} +2 -2
- package/dist/{chunk-2hdktzjd.js → chunk-8gmx87th.js} +22 -22
- package/dist/{chunk-91fnfkf9.js → chunk-8k8n9y1g.js} +23 -23
- package/dist/{chunk-yw9303pb.js → chunk-8sg21bwx.js} +11 -11
- package/dist/{chunk-1zh5bbh0.js → chunk-906pw19y.js} +34 -34
- package/dist/{chunk-981dc4d2.js → chunk-90yj57vg.js} +4 -4
- package/dist/{chunk-8vwcxhjg.js → chunk-91f2vk1y.js} +25 -25
- package/dist/{chunk-v1mewt1d.js → chunk-99k9tpk4.js} +75 -75
- package/dist/{chunk-rs3fergy.js → chunk-9bqwkjjf.js} +1 -1
- package/dist/{chunk-txq07t1t.js → chunk-9fknjpsv.js} +22 -22
- package/dist/{chunk-sq3cem22.js → chunk-9g85xg01.js} +23 -23
- package/dist/{chunk-91wvyz0j.js → chunk-9kkw71td.js} +26 -26
- package/dist/{chunk-91scsdr2.js → chunk-9pmamqqk.js} +22 -22
- package/dist/{chunk-j3khjf4a.js → chunk-9sbzfzw2.js} +1 -1
- package/dist/{chunk-71ptxz0w.js → chunk-9w3vykg2.js} +1 -1
- package/dist/{chunk-2gdcc9xa.js → chunk-9zvdb3d8.js} +22 -22
- package/dist/{chunk-0bf745n6.js → chunk-a8j51ab7.js} +2 -2
- package/dist/{chunk-8db0c0z2.js → chunk-aw2avp5k.js} +31 -31
- package/dist/{chunk-gjkekgkm.js → chunk-b126j375.js} +25 -25
- package/dist/{chunk-mkcbbspz.js → chunk-bfpgskwt.js} +22 -22
- package/dist/{chunk-rynkredv.js → chunk-bgsv2an9.js} +47 -47
- package/dist/{chunk-6837xx50.js → chunk-bp0jn6sq.js} +15 -15
- package/dist/{chunk-b7van57x.js → chunk-brf05230.js} +2 -2
- package/dist/{chunk-deeqzmz8.js → chunk-bwymf3h1.js} +22 -22
- package/dist/{chunk-52tk9vq4.js → chunk-ccvnp4xe.js} +23 -23
- package/dist/{chunk-5pnqgsv4.js → chunk-cgn9b7k3.js} +1 -1
- package/dist/{chunk-9zjvwht8.js → chunk-chn9aptv.js} +1 -1
- package/dist/{chunk-cpmv1jg1.js → chunk-cyng1ej5.js} +1 -1
- package/dist/{chunk-7x4tde6q.js → chunk-d4h6jh9p.js} +22 -22
- package/dist/{chunk-30kmyxwn.js → chunk-d6devdrn.js} +28 -28
- package/dist/{chunk-b9mgqx58.js → chunk-d7bcc8d5.js} +1 -1
- package/dist/{chunk-thnkgdqf.js → chunk-d7nzpvf9.js} +23 -23
- package/dist/{chunk-dcy4yhmx.js → chunk-d83rzzt1.js} +3 -3
- package/dist/{chunk-bnf2s6m6.js → chunk-dct5gsjf.js} +23 -23
- package/dist/{chunk-zvffthkn.js → chunk-dfncqbd3.js} +32 -32
- package/dist/{chunk-a4wba4ee.js → chunk-dgnk59da.js} +5 -5
- package/dist/{chunk-qst4b9as.js → chunk-dmbp0195.js} +2 -2
- package/dist/{chunk-3p3r8awv.js → chunk-dmw4d03s.js} +1 -1
- package/dist/{chunk-s23ksgx0.js → chunk-dpy67k8f.js} +34 -34
- package/dist/{chunk-60fbc7y7.js → chunk-dwq1fx1w.js} +22 -22
- package/dist/{chunk-xmj20j9w.js → chunk-dxwq71j1.js} +1 -1
- package/dist/{chunk-s6rchtpq.js → chunk-e07tndac.js} +22 -22
- package/dist/{chunk-htqgje52.js → chunk-e251pggj.js} +24 -24
- package/dist/{chunk-v9mb8wyh.js → chunk-e35nt4y9.js} +76 -76
- package/dist/{chunk-t4360128.js → chunk-e570fxhf.js} +28 -28
- package/dist/{chunk-jr6arg95.js → chunk-ej6tgvz7.js} +3 -3
- package/dist/{chunk-das7sqxf.js → chunk-entvrjfx.js} +2 -2
- package/dist/{chunk-a8z3cmge.js → chunk-eq4pgt3b.js} +6 -6
- package/dist/{chunk-q17esyxh.js → chunk-ethwmdcx.js} +2 -2
- package/dist/{chunk-8nsmkgac.js → chunk-ev8y6tvw.js} +25 -25
- package/dist/{chunk-96ac88tt.js → chunk-f722swmt.js} +1 -1
- package/dist/{chunk-b183xr8z.js → chunk-f9gn8252.js} +2 -2
- package/dist/{chunk-x33anyzd.js → chunk-ff3garzw.js} +22 -22
- package/dist/{chunk-we086xcr.js → chunk-ftntazwn.js} +1 -1
- package/dist/{chunk-fnc95ck8.js → chunk-fz5xecwb.js} +1 -1
- package/dist/{chunk-06daydfw.js → chunk-g44c7m2y.js} +23 -23
- package/dist/{chunk-b66fr7fs.js → chunk-ge6pcq97.js} +2 -2
- package/dist/{chunk-fqcserhk.js → chunk-gex5891x.js} +4 -4
- package/dist/{chunk-32rcf02k.js → chunk-gn37qghw.js} +17 -17
- package/dist/{chunk-p173c51d.js → chunk-gpqc15kh.js} +2 -2
- package/dist/{chunk-36k4p0e8.js → chunk-gs991k0e.js} +1 -1
- package/dist/{chunk-d20gvf1p.js → chunk-gsgfbh3p.js} +3 -3
- package/dist/{chunk-pb5csk8f.js → chunk-gzcfpqg3.js} +22 -22
- package/dist/{chunk-jzheakwg.js → chunk-gzjartwa.js} +22 -22
- package/dist/{chunk-qc9dbg7c.js → chunk-hd2pt9sd.js} +2 -2
- package/dist/{chunk-tbrzz94r.js → chunk-hk91rtmr.js} +33 -33
- package/dist/{chunk-4g5nvh92.js → chunk-hp5wryag.js} +1 -1
- package/dist/{chunk-hsyh3ht5.js → chunk-hr26v9yf.js} +22 -22
- package/dist/{chunk-3m5d2kwd.js → chunk-hvcp3wf6.js} +24 -24
- package/dist/{chunk-c0jj717y.js → chunk-j4mj4nb7.js} +2 -2
- package/dist/{chunk-bf68vqnt.js → chunk-j4tb1czw.js} +106 -106
- package/dist/{chunk-vd2cdqer.js → chunk-j9xdz9g8.js} +5 -5
- package/dist/{chunk-2xq2cy9m.js → chunk-jaspz7vt.js} +27 -27
- package/dist/{chunk-wckky1kf.js → chunk-jgcns0rx.js} +3 -3
- package/dist/{chunk-4hwyxaeq.js → chunk-jqdvxbeh.js} +24 -24
- package/dist/{chunk-8sba81p1.js → chunk-jrjaqxqw.js} +1 -1
- package/dist/{chunk-4v0pzqmq.js → chunk-jtecjb5r.js} +2 -2
- package/dist/{chunk-xdhd191v.js → chunk-jv6panq5.js} +22 -22
- package/dist/{chunk-8fxvkn6g.js → chunk-jwajzxpb.js} +2 -2
- package/dist/{chunk-40txw5vw.js → chunk-jzj8fg4y.js} +24 -24
- package/dist/{chunk-c58vpgh1.js → chunk-k0mk0fge.js} +22 -22
- package/dist/{chunk-a8w9fre5.js → chunk-k2qebx2w.js} +2 -2
- package/dist/{chunk-b9n20qcw.js → chunk-k3zbanzd.js} +7 -7
- package/dist/{chunk-f6kfvezc.js → chunk-kapsrvxv.js} +3 -3
- package/dist/{chunk-bzm15s0d.js → chunk-karsjapd.js} +1 -1
- package/dist/{chunk-ptw6r102.js → chunk-kc5ajp0r.js} +22 -22
- package/dist/{chunk-aahtgv6t.js → chunk-kh87679f.js} +1 -1
- package/dist/{chunk-w3jk4zrh.js → chunk-ksx19gtw.js} +22 -22
- package/dist/{chunk-pa2aeq9e.js → chunk-kwk1pyqg.js} +30 -30
- package/dist/{chunk-qt8j21yc.js → chunk-kx3zdrq4.js} +29 -29
- package/dist/{chunk-67ex9rnd.js → chunk-ky407pdd.js} +23 -23
- package/dist/{chunk-ssdgf1bt.js → chunk-kyc76b98.js} +22 -22
- package/dist/{chunk-9vxn5hr7.js → chunk-m3p4yq3g.js} +4 -4
- package/dist/{chunk-d61srzjw.js → chunk-m3zrtddr.js} +52 -52
- package/dist/{chunk-jwf80scb.js → chunk-mh2gbgz1.js} +23 -23
- package/dist/{chunk-e0nvbjhe.js → chunk-mw6as61g.js} +2 -2
- package/dist/{chunk-nnw29ezr.js → chunk-n00ysbjk.js} +2 -2
- package/dist/{chunk-zn27z1n9.js → chunk-n0wf5rc1.js} +24 -24
- package/dist/{chunk-mq26zsme.js → chunk-n2ywjxvy.js} +25 -25
- package/dist/{chunk-43pqyz7x.js → chunk-n3nqafmt.js} +2 -2
- package/dist/{chunk-spb70nw0.js → chunk-n7w9g7b7.js} +4 -4
- package/dist/{chunk-k0bqymfw.js → chunk-n80mpnvm.js} +2 -2
- package/dist/{chunk-2whdc8zz.js → chunk-nhc22728.js} +1 -1
- package/dist/{chunk-wbhz1kax.js → chunk-njyvgwv2.js} +2 -2
- package/dist/{chunk-2p4eesfa.js → chunk-nq27g1x4.js} +22 -22
- package/dist/{chunk-8yhh34se.js → chunk-nqn9k4ch.js} +23 -23
- package/dist/{chunk-tx1zp6k9.js → chunk-nsks1t3y.js} +22 -22
- package/dist/{chunk-6svr4g5y.js → chunk-nwd4f9pt.js} +22 -22
- package/dist/{chunk-nwj1t73f.js → chunk-nxe60bmp.js} +23 -23
- package/dist/{chunk-pfjb68fx.js → chunk-p1enq9rv.js} +2 -2
- package/dist/{chunk-ys6ctp3c.js → chunk-p5r9ekym.js} +3 -3
- package/dist/{chunk-23mmypzf.js → chunk-pat3jc2r.js} +1 -1
- package/dist/{chunk-epkh4aat.js → chunk-pb1ed8x5.js} +4 -4
- package/dist/{chunk-q68qcqnd.js → chunk-pgrnahpx.js} +1 -1
- package/dist/{chunk-erqq5705.js → chunk-ph89yvvg.js} +2 -2
- package/dist/{chunk-g7f6rhkv.js → chunk-pm5eb1rd.js} +31 -31
- package/dist/{chunk-5s80z8bj.js → chunk-pz4sdyn3.js} +22 -22
- package/dist/{chunk-rf9vga8z.js → chunk-q52xbke2.js} +22 -22
- package/dist/{chunk-5kgmwm72.js → chunk-qmh0s34m.js} +2 -2
- package/dist/{chunk-vs0hwycc.js → chunk-qtqry91f.js} +2 -2
- package/dist/{chunk-fyq9f1r4.js → chunk-qvwhd1zq.js} +1 -1
- package/dist/{chunk-3dt68zn5.js → chunk-qwskz4wh.js} +1 -1
- package/dist/{chunk-5chc8z8n.js → chunk-qy0mpq0w.js} +1 -1
- package/dist/{chunk-xcbm675k.js → chunk-r2zbn6g1.js} +2 -2
- package/dist/{chunk-cdv319m8.js → chunk-r79ztgnm.js} +1 -1
- package/dist/{chunk-8ehhzphf.js → chunk-r90mq0xa.js} +22 -22
- package/dist/{chunk-9ks4hkyv.js → chunk-r9bp6xnx.js} +23 -23
- package/dist/{chunk-aa2jk5ec.js → chunk-r9c80bqt.js} +23 -23
- package/dist/{chunk-ke1bzwj0.js → chunk-rakma9g3.js} +22 -22
- package/dist/{chunk-7rh6ws9p.js → chunk-rcmy41rv.js} +31 -31
- package/dist/{chunk-3qksgf50.js → chunk-rczjdxy7.js} +1 -1
- package/dist/{chunk-1bbvgt3p.js → chunk-rdck682d.js} +3 -3
- package/dist/{chunk-x46veg46.js → chunk-rhzvf86a.js} +1 -1
- package/dist/{chunk-ra1n1z0c.js → chunk-rkzw2afm.js} +2 -2
- package/dist/{chunk-fps1h69y.js → chunk-rwr0phhx.js} +22 -22
- package/dist/{chunk-zd7ftnd0.js → chunk-rybpav6p.js} +4 -4
- package/dist/{chunk-4b0pe90d.js → chunk-rzf5qzjg.js} +23 -23
- package/dist/{chunk-4r7jf6h7.js → chunk-sa79mym4.js} +7 -7
- package/dist/{chunk-h50wemgt.js → chunk-sa9my7x0.js} +8 -8
- package/dist/{chunk-vdw3tpqy.js → chunk-saedf0b4.js} +26 -26
- package/dist/{chunk-cy9y3g9c.js → chunk-shee9g3q.js} +3 -3
- package/dist/{chunk-gafvwfpg.js → chunk-shq3z6zf.js} +1 -1
- package/dist/{chunk-msyn852e.js → chunk-sn1f4jf6.js} +1 -1
- package/dist/{chunk-qt0k08nw.js → chunk-spjm31gk.js} +36 -36
- package/dist/{chunk-jdabxq24.js → chunk-sqrdzbx1.js} +5 -5
- package/dist/{chunk-a5vsq9cy.js → chunk-ss6fe1yc.js} +2 -2
- package/dist/{chunk-hnfwnrdw.js → chunk-sstsq6jn.js} +22 -22
- package/dist/{chunk-ydgsnc70.js → chunk-ssyhbtz0.js} +3 -3
- package/dist/{chunk-61v89yt3.js → chunk-sz1m1r4z.js} +1 -1
- package/dist/{chunk-b3x56xw6.js → chunk-t7106an2.js} +23 -23
- package/dist/{chunk-2jx4kafd.js → chunk-tmetnk3q.js} +25 -25
- package/dist/{chunk-pgf6xysn.js → chunk-tndwzmh6.js} +2 -2
- package/dist/{chunk-jhaf8e2t.js → chunk-trmn158y.js} +22 -22
- package/dist/{chunk-9zvsj7b5.js → chunk-trv20d3g.js} +22 -22
- package/dist/{chunk-av497x84.js → chunk-tv8fzfzx.js} +2 -2
- package/dist/{chunk-e92z3mma.js → chunk-tyt849t6.js} +22 -22
- package/dist/{chunk-2y6bv8mp.js → chunk-v1nnayta.js} +23 -23
- package/dist/{chunk-ryb0h1z5.js → chunk-v42y5x9j.js} +2 -2
- package/dist/{chunk-h0p49ypw.js → chunk-v48t61wk.js} +31 -31
- package/dist/{chunk-1c3k1g6e.js → chunk-v8761015.js} +1 -1
- package/dist/{chunk-mgbjn0ry.js → chunk-vgdwtzp5.js} +1 -1
- package/dist/{chunk-f6begf39.js → chunk-vj5dnkw1.js} +23 -23
- package/dist/{chunk-g3zh09cs.js → chunk-vk6n58rj.js} +22 -22
- package/dist/{chunk-c2wjqfxa.js → chunk-vwneq75d.js} +23 -23
- package/dist/{chunk-tgmxbtrk.js → chunk-vz9sw504.js} +2 -2
- package/dist/{chunk-t6keftkw.js → chunk-w1gsypvh.js} +3 -3
- package/dist/{chunk-xvwnb277.js → chunk-w2abv4tr.js} +2 -2
- package/dist/{chunk-pzna8nzx.js → chunk-w2rtms2h.js} +22 -22
- package/dist/{chunk-5dm6af6g.js → chunk-w4e813k9.js} +1 -1
- package/dist/{chunk-dqpsg3x6.js → chunk-w5a1n0ge.js} +23 -23
- package/dist/{chunk-xyh08jpm.js → chunk-waev53yv.js} +22 -22
- package/dist/{chunk-84r7ze95.js → chunk-wcfasam4.js} +1 -1
- package/dist/{chunk-sdw4pkat.js → chunk-wcq4e4h3.js} +1 -1
- package/dist/{chunk-c7ncsekp.js → chunk-whtpjqce.js} +22 -22
- package/dist/{chunk-jytvzpqv.js → chunk-wnpxwctq.js} +2 -2
- package/dist/{chunk-872211k4.js → chunk-wshmda1z.js} +1 -1
- package/dist/{chunk-degs4pmz.js → chunk-wwfbkpx0.js} +4 -4
- package/dist/{chunk-0d4p6r24.js → chunk-x0v47v3r.js} +9 -9
- package/dist/{chunk-tvrpmrzn.js → chunk-x11xt2ew.js} +2 -2
- package/dist/{chunk-5p9szceb.js → chunk-x1cf6v9q.js} +1 -1
- package/dist/{chunk-y4b897ek.js → chunk-x1vxdmz4.js} +1 -1
- package/dist/{chunk-sca0gdmn.js → chunk-x4ny1bzq.js} +1 -1
- package/dist/{chunk-b2dttpvp.js → chunk-x5rxqd7q.js} +28 -28
- package/dist/{chunk-ysvkq1vy.js → chunk-x8hxnens.js} +4 -4
- package/dist/{chunk-s9nd7cyj.js → chunk-xa7zdfvq.js} +24 -24
- package/dist/{chunk-kvb1xp5b.js → chunk-xayjacz5.js} +22 -22
- package/dist/{chunk-q6kttwf6.js → chunk-xmj1708p.js} +2 -2
- package/dist/{chunk-v1bc0k7r.js → chunk-y5hbmmzg.js} +23 -23
- package/dist/{chunk-9nvdx365.js → chunk-y9tb3mm7.js} +22 -22
- package/dist/{chunk-r6r0heh4.js → chunk-ye2d8wer.js} +3 -3
- package/dist/{chunk-zzykgkph.js → chunk-yf49817r.js} +5 -5
- package/dist/{chunk-v890zxjh.js → chunk-yhf0cgds.js} +22 -22
- package/dist/{chunk-9962psf2.js → chunk-yhpers47.js} +25 -25
- package/dist/{chunk-89p21yqs.js → chunk-ytbef79v.js} +22 -22
- package/dist/{chunk-j3ww1b8w.js → chunk-yxxmr87x.js} +22 -22
- package/dist/{chunk-gm3xyt0n.js → chunk-z2jpj4ct.js} +7 -7
- package/dist/{chunk-3dyj1fqs.js → chunk-z7vgctp6.js} +2 -2
- package/dist/{chunk-6fecngep.js → chunk-z87y9z58.js} +1 -1
- package/dist/{chunk-srtcyav5.js → chunk-zv8b3j12.js} +22 -22
- package/dist/{chunk-bwy9pa2a.js → chunk-zxd5dsde.js} +2 -2
- package/dist/{chunk-0d43nxnk.js → chunk-zyga9mcw.js} +1 -1
- package/dist/cli-node.js +418 -10
- package/dist/cli.js +9 -9
- package/package.json +17 -12
package/dist/cli-node.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Bun API polyfill for Node.js runtime
|
|
2
|
+
// Bun API polyfill for Node.js runtime — makes target: 'bun' output runnable under Node.js
|
|
3
3
|
if (typeof globalThis.Bun === "undefined") {
|
|
4
|
-
const
|
|
4
|
+
const cp = await import("child_process");
|
|
5
5
|
const { resolve, delimiter } = await import("path");
|
|
6
|
-
const { accessSync, constants: { X_OK } } = await import("fs");
|
|
6
|
+
const { accessSync, constants: { X_OK }, statSync } = await import("fs");
|
|
7
|
+
const fsp = await import("fs/promises");
|
|
8
|
+
|
|
9
|
+
// ── Bun.which ─────────────────────────────────────────────────────────
|
|
10
|
+
// 沿 PATH 查找可执行文件路径
|
|
7
11
|
function which(bin) {
|
|
8
12
|
const isWin = process.platform === "win32";
|
|
9
13
|
const pathExt = isWin ? (process.env.PATHEXT || ".EXE").split(";") : [""];
|
|
@@ -15,13 +19,11 @@ if (typeof globalThis.Bun === "undefined") {
|
|
|
15
19
|
}
|
|
16
20
|
return null;
|
|
17
21
|
}
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
function $(parts, ...args) {
|
|
22
|
-
throw new Error("Bun.$ shell API is not available in Node.js. Use Bun runtime for this feature.");
|
|
23
|
-
}
|
|
22
|
+
|
|
23
|
+
// ── Bun.hash ──────────────────────────────────────────────────────────
|
|
24
|
+
// FNV-1a 32-bit 散列,与 Bun.hash 行为对齐
|
|
24
25
|
function hash(data, seed) {
|
|
26
|
+
if (typeof data !== "string") return 0;
|
|
25
27
|
let h = ((seed || 0) ^ 0x811c9dc5) >>> 0;
|
|
26
28
|
for (let i = 0; i < data.length; i++) {
|
|
27
29
|
h ^= data.charCodeAt(i);
|
|
@@ -29,6 +31,412 @@ if (typeof globalThis.Bun === "undefined") {
|
|
|
29
31
|
}
|
|
30
32
|
return h;
|
|
31
33
|
}
|
|
32
|
-
|
|
34
|
+
|
|
35
|
+
// ── Bun.$ ─────────────────────────────────────────────────────────────
|
|
36
|
+
// Bun shell template tag,仅在 computer-use-input/darwin 中使用
|
|
37
|
+
// 提供 stub 使顶层解构 var { $ } = globalThis.Bun 不崩溃
|
|
38
|
+
function $(parts, ...args) {
|
|
39
|
+
throw new Error("Bun.$ shell API is not available in Node.js. Use Bun runtime for this feature.");
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// ── Bun.spawn ─────────────────────────────────────────────────────────
|
|
43
|
+
// 异步子进程启动,返回与 Bun.Subprocess 兼容的对象
|
|
44
|
+
//
|
|
45
|
+
// 调用签名(本代码库实际使用的模式):
|
|
46
|
+
// Bun.spawn([cmd, ...args], { stdin, stdout, stderr, env, argv0 })
|
|
47
|
+
// Bun.spawn({ cmd: [cmd, ...args], stdin, stdout, stderr }) — 不存在,但防错
|
|
48
|
+
//
|
|
49
|
+
// 返回值需支持:
|
|
50
|
+
// proc.stdin → Writable (当 stdin: 'pipe' 时)
|
|
51
|
+
// proc.stdout → ReadableStream<Uint8Array> (当 stdout: 'pipe' 时)
|
|
52
|
+
// proc.stderr → ReadableStream<Uint8Array> (当 stderr: 'pipe' 时)
|
|
53
|
+
// proc.exited → Promise<number> (退出码)
|
|
54
|
+
// proc.kill() → 终止进程
|
|
55
|
+
// proc.pid → 进程 ID
|
|
56
|
+
function spawn(cmdOrOpts, opts) {
|
|
57
|
+
let cmd, spawnOpts;
|
|
58
|
+
if (Array.isArray(cmdOrOpts)) {
|
|
59
|
+
cmd = cmdOrOpts;
|
|
60
|
+
spawnOpts = opts || {};
|
|
61
|
+
} else {
|
|
62
|
+
const o = cmdOrOpts || {};
|
|
63
|
+
cmd = o.cmd;
|
|
64
|
+
spawnOpts = o;
|
|
65
|
+
}
|
|
66
|
+
if (!Array.isArray(cmd) || cmd.length === 0) {
|
|
67
|
+
throw new TypeError("Bun.spawn requires a non-empty command array");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// 解析 stdin/stdout/stderr 管道配置
|
|
71
|
+
const toStdio = (v) => {
|
|
72
|
+
if (v === "pipe") return "pipe";
|
|
73
|
+
if (v === "ignore") return "ignore";
|
|
74
|
+
if (v === "inherit") return "inherit";
|
|
75
|
+
return v == null ? "pipe" : "pipe";
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const nodeOpts = {
|
|
79
|
+
stdio: [toStdio(spawnOpts.stdin), toStdio(spawnOpts.stdout), toStdio(spawnOpts.stderr)],
|
|
80
|
+
env: spawnOpts.env || process.env,
|
|
81
|
+
windowsHide: true,
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// 处理 argv0:Bun 用 argv0 重命名进程,Node 中通过 spawn 的第一个参数传递
|
|
85
|
+
const executable = spawnOpts.argv0 || cmd[0];
|
|
86
|
+
const args = spawnOpts.argv0 ? cmd : cmd.slice(1);
|
|
87
|
+
|
|
88
|
+
const child = cp.spawn(executable, args, nodeOpts);
|
|
89
|
+
|
|
90
|
+
// 构建 Bun 兼容的 stdin 封装
|
|
91
|
+
let bunStdin = null;
|
|
92
|
+
if (spawnOpts.stdin === "pipe" || spawnOpts.stdin == null) {
|
|
93
|
+
bunStdin = child.stdin;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 构建 Bun 兼容的 stdout/stderr 封装
|
|
97
|
+
// Bun.spawn 返回 ReadableStream<Uint8Array>,Node 返回 Readable
|
|
98
|
+
// 需要转换以支持 .getReader() 和 new Response(stream).text()
|
|
99
|
+
function toReadableStream(nodeReadable) {
|
|
100
|
+
if (!nodeReadable) return null;
|
|
101
|
+
if (nodeReadable instanceof ReadableStream) return nodeReadable;
|
|
102
|
+
return new ReadableStream({
|
|
103
|
+
start(controller) {
|
|
104
|
+
nodeReadable.on("data", (chunk) => controller.enqueue(new Uint8Array(chunk)));
|
|
105
|
+
nodeReadable.on("end", () => controller.close());
|
|
106
|
+
nodeReadable.on("error", (err) => controller.error(err));
|
|
107
|
+
},
|
|
108
|
+
cancel() {
|
|
109
|
+
nodeReadable.destroy();
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const bunStdout = toReadableStream(child.stdout);
|
|
115
|
+
const bunStderr = toReadableStream(child.stderr);
|
|
116
|
+
|
|
117
|
+
// 构建 exited Promise
|
|
118
|
+
const exited = new Promise((resolve) => {
|
|
119
|
+
child.on("close", (code) => resolve(code ?? 0));
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
stdin: bunStdin,
|
|
124
|
+
stdout: bunStdout,
|
|
125
|
+
stderr: bunStderr,
|
|
126
|
+
exited,
|
|
127
|
+
pid: child.pid,
|
|
128
|
+
kill(sig) { child.kill(sig || "SIGTERM"); },
|
|
129
|
+
get exitCode() { return child.exitCode; },
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// ── Bun.spawnSync ─────────────────────────────────────────────────────
|
|
134
|
+
// 同步子进程执行,返回与 Bun.SpawnSyncResult 兼容的对象
|
|
135
|
+
//
|
|
136
|
+
// 调用签名(本代码库实际使用的模式):
|
|
137
|
+
// Bun.spawnSync({ cmd: [cmd, ...args], stdin, stdout, stderr, env, timeout })
|
|
138
|
+
// Bun.spawnSync({ cmd: [cmd, ...args], stdin: Buffer, stdout: 'pipe' })
|
|
139
|
+
//
|
|
140
|
+
// 返回值需支持:
|
|
141
|
+
// result.stdout → Uint8Array | null
|
|
142
|
+
// result.stderr → Uint8Array | null
|
|
143
|
+
// result.exitCode → number
|
|
144
|
+
function spawnSync(optsOrCmd) {
|
|
145
|
+
let cmd, syncOpts;
|
|
146
|
+
if (optsOrCmd && typeof optsOrCmd === "object" && !Array.isArray(optsOrCmd)) {
|
|
147
|
+
syncOpts = optsOrCmd;
|
|
148
|
+
cmd = syncOpts.cmd;
|
|
149
|
+
} else {
|
|
150
|
+
throw new TypeError("Bun.spawnSync requires an options object with 'cmd' property");
|
|
151
|
+
}
|
|
152
|
+
if (!Array.isArray(cmd) || cmd.length === 0) {
|
|
153
|
+
throw new TypeError("Bun.spawnSync requires a non-empty cmd array");
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const toStdio = (v) => {
|
|
157
|
+
if (v === "pipe") return "pipe";
|
|
158
|
+
if (v === "ignore") return "ignore";
|
|
159
|
+
if (v === "inherit") return "inherit";
|
|
160
|
+
return v == null ? "pipe" : "pipe";
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const nodeOpts = {
|
|
164
|
+
stdio: [toStdio(syncOpts.stdin), toStdio(syncOpts.stdout), toStdio(syncOpts.stderr)],
|
|
165
|
+
env: syncOpts.env || process.env,
|
|
166
|
+
windowsHide: true,
|
|
167
|
+
timeout: syncOpts.timeout,
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// 如果 stdin 是 Buffer 或 string,将其作为输入传入
|
|
171
|
+
if (Buffer.isBuffer(syncOpts.stdin) || typeof syncOpts.stdin === "string") {
|
|
172
|
+
nodeOpts.input = Buffer.from(syncOpts.stdin);
|
|
173
|
+
nodeOpts.stdio[0] = "pipe";
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const result = cp.spawnSync(cmd[0], cmd.slice(1), nodeOpts);
|
|
177
|
+
|
|
178
|
+
return {
|
|
179
|
+
stdout: result.stdout ? Uint8Array.from(Buffer.isBuffer(result.stdout) ? result.stdout : Buffer.from(result.stdout)) : null,
|
|
180
|
+
stderr: result.stderr ? Uint8Array.from(Buffer.isBuffer(result.stderr) ? result.stderr : Buffer.from(result.stderr)) : null,
|
|
181
|
+
exitCode: result.status ?? 1,
|
|
182
|
+
success: result.status === 0,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// ── Bun.file ──────────────────────────────────────────────────────────
|
|
187
|
+
// 返回类 BunFile 对象,支持 .arrayBuffer()、.text()、.json()、.exists()
|
|
188
|
+
// 本代码库中仅 linux.ts 使用:Bun.file(path).arrayBuffer()
|
|
189
|
+
function bunFile(filePath) {
|
|
190
|
+
return {
|
|
191
|
+
async arrayBuffer() {
|
|
192
|
+
const buf = await fsp.readFile(filePath);
|
|
193
|
+
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
|
|
194
|
+
},
|
|
195
|
+
async text() {
|
|
196
|
+
return await fsp.readFile(filePath, "utf-8");
|
|
197
|
+
},
|
|
198
|
+
async json() {
|
|
199
|
+
return JSON.parse(await fsp.readFile(filePath, "utf-8"));
|
|
200
|
+
},
|
|
201
|
+
async exists() {
|
|
202
|
+
try { await fsp.access(filePath); return true; } catch { return false; }
|
|
203
|
+
},
|
|
204
|
+
get size() {
|
|
205
|
+
try { return statSync(filePath).size; } catch { return 0; }
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// ── Bun.gc ────────────────────────────────────────────────────────────
|
|
211
|
+
// Node.js 的 V8 GC 是自动的,无需手动触发;暴露为 no-op
|
|
212
|
+
function gc() {}
|
|
213
|
+
|
|
214
|
+
// ── Bun.generateHeapSnapshot ──────────────────────────────────────────
|
|
215
|
+
// Node.js 用 v8.getHeapSnapshot() 替代
|
|
216
|
+
function generateHeapSnapshot() {
|
|
217
|
+
const v8 = require("v8");
|
|
218
|
+
const stream = v8.getHeapSnapshot();
|
|
219
|
+
const chunks = [];
|
|
220
|
+
for (const chunk of stream) chunks.push(chunk);
|
|
221
|
+
return Buffer.concat(chunks).toString("utf-8");
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// ── Bun.embeddedFiles ─────────────────────────────────────────────────
|
|
225
|
+
// npm 包中不存在嵌入文件
|
|
226
|
+
const embeddedFiles = [];
|
|
227
|
+
|
|
228
|
+
// ── Bun.semver ────────────────────────────────────────────────────────
|
|
229
|
+
// Bun 内置 semver 比较,产物中通过 typeof Bun 守卫调用
|
|
230
|
+
// 用 semver 包的子集实现 order 和 satisfies
|
|
231
|
+
// semver.order(a, b): 1 if a>b, 0 if a==b, -1 if a<b
|
|
232
|
+
const semver = {
|
|
233
|
+
order(a, b) {
|
|
234
|
+
const pa = parseSemver(a);
|
|
235
|
+
const pb = parseSemver(b);
|
|
236
|
+
if (!pa || !pb) return 0;
|
|
237
|
+
const cmp = pa[0] - pb[0] || pa[1] - pb[1] || pa[2] - pb[2];
|
|
238
|
+
return cmp > 0 ? 1 : cmp < 0 ? -1 : 0;
|
|
239
|
+
},
|
|
240
|
+
satisfies(version, range) {
|
|
241
|
+
// 简化的 range 解析:支持 >=x.y.z, ^x.y.z, ~x.y.z, x.y.z, >x.y.z, <x.y.z, <=x.y.z, x.y.z - a.b.c
|
|
242
|
+
const pv = parseSemver(version);
|
|
243
|
+
if (!pv) return false;
|
|
244
|
+
const r = range.trim();
|
|
245
|
+
// 范围用 || 分隔
|
|
246
|
+
const ors = r.split("||").map(s => s.trim());
|
|
247
|
+
for (const part of ors) {
|
|
248
|
+
if (satisfiesRange(pv, part)) return true;
|
|
249
|
+
}
|
|
250
|
+
return false;
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// 解析 x.y.z 为 [major, minor, patch],忽略 pre-release
|
|
255
|
+
function parseSemver(v) {
|
|
256
|
+
if (!v) return null;
|
|
257
|
+
const m = String(v).match(/(\d+)\.(\d+)\.(\d+)/);
|
|
258
|
+
if (!m) return null;
|
|
259
|
+
return [Number(m[1]), Number(m[2]), Number(m[3])];
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
function satisfiesRange(pv, range) {
|
|
263
|
+
// 空范围或 * 匹配所有
|
|
264
|
+
if (!range || range === "*") return true;
|
|
265
|
+
// 空格分隔的 AND 条件
|
|
266
|
+
const conditions = range.split(/\s+/).filter(Boolean);
|
|
267
|
+
for (const cond of conditions) {
|
|
268
|
+
if (!satisfiesCondition(pv, cond)) return false;
|
|
269
|
+
}
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
function satisfiesCondition(pv, cond) {
|
|
274
|
+
if (cond === "*") return true;
|
|
275
|
+
// ^x.y.z — 兼容 major
|
|
276
|
+
let m = cond.match(/^\^(\d+)\.(\d+)\.(\d+)/);
|
|
277
|
+
if (m) {
|
|
278
|
+
const [_, M, m2, p] = m.map(Number);
|
|
279
|
+
return pv[0] === M && (pv[0] > 0 ? pv[1] >= m2 || (pv[1] === m2 && pv[2] >= p) : pv[1] === m2 && pv[2] >= p) || pv[0] === M && pv[1] > m2;
|
|
280
|
+
}
|
|
281
|
+
// ~x.y.z — 兼容 major.minor
|
|
282
|
+
m = cond.match(/^~(>?=?(\d+)\.(\d+)\.(\d+))/);
|
|
283
|
+
if (m) {
|
|
284
|
+
const raw = m[1];
|
|
285
|
+
const cm = raw.match(/(\d+)\.(\d+)\.(\d+)/);
|
|
286
|
+
if (cm) {
|
|
287
|
+
const [_, M, m2] = cm.map(Number);
|
|
288
|
+
return pv[0] === M && pv[1] === m2 && pv[2] >= Number(cm[3]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// ~x.y
|
|
292
|
+
m = cond.match(/^~(\d+)\.(\d+)/);
|
|
293
|
+
if (m) {
|
|
294
|
+
const [_, M, m2] = m.map(Number);
|
|
295
|
+
return pv[0] === M && pv[1] === m2;
|
|
296
|
+
}
|
|
297
|
+
// >=x.y.z
|
|
298
|
+
m = cond.match(/^>=(\d+)\.(\d+)\.(\d+)/);
|
|
299
|
+
if (m) {
|
|
300
|
+
const [_, M, m2, p] = m.map(Number);
|
|
301
|
+
return pv[0] > M || (pv[0] === M && pv[1] > m2) || (pv[0] === M && pv[1] === m2 && pv[2] >= p);
|
|
302
|
+
}
|
|
303
|
+
// >x.y.z
|
|
304
|
+
m = cond.match(/^>(\d+)\.(\d+)\.(\d+)/);
|
|
305
|
+
if (m) {
|
|
306
|
+
const [_, M, m2, p] = m.map(Number);
|
|
307
|
+
return pv[0] > M || (pv[0] === M && pv[1] > m2) || (pv[0] === M && pv[1] === m2 && pv[2] > p);
|
|
308
|
+
}
|
|
309
|
+
// <=x.y.z
|
|
310
|
+
m = cond.match(/^<=(\d+)\.(\d+)\.(\d+)/);
|
|
311
|
+
if (m) {
|
|
312
|
+
const [_, M, m2, p] = m.map(Number);
|
|
313
|
+
return pv[0] < M || (pv[0] === M && pv[1] < m2) || (pv[0] === M && pv[1] === m2 && pv[2] <= p);
|
|
314
|
+
}
|
|
315
|
+
// <x.y.z
|
|
316
|
+
m = cond.match(/^<(\d+)\.(\d+)\.(\d+)/);
|
|
317
|
+
if (m) {
|
|
318
|
+
const [_, M, m2, p] = m.map(Number);
|
|
319
|
+
return pv[0] < M || (pv[0] === M && pv[1] < m2) || (pv[0] === M && pv[1] === m2 && pv[2] < p);
|
|
320
|
+
}
|
|
321
|
+
// 精确匹配 x.y.z
|
|
322
|
+
m = cond.match(/^(\d+)\.(\d+)\.(\d+)$/);
|
|
323
|
+
if (m) {
|
|
324
|
+
const [_, M, m2, p] = m.map(Number);
|
|
325
|
+
return pv[0] === M && pv[1] === m2 && pv[2] === p;
|
|
326
|
+
}
|
|
327
|
+
// x.y.z - a.b.c 范围
|
|
328
|
+
m = cond.match(/^(\d+\.\d+\.\d+)\s*-\s*(\d+\.\d+\.\d+)$/);
|
|
329
|
+
if (m) {
|
|
330
|
+
const lo = parseSemver(m[1]);
|
|
331
|
+
const hi = parseSemver(m[2]);
|
|
332
|
+
if (!lo || !hi) return false;
|
|
333
|
+
const ordLo = semver.order([pv[0], pv[1], pv[2]].join("."), lo.join(".")) >= 0;
|
|
334
|
+
const ordHi = semver.order([pv[0], pv[1], pv[2]].join("."), hi.join(".")) <= 0;
|
|
335
|
+
return ordLo && ordHi;
|
|
336
|
+
}
|
|
337
|
+
// 无法识别,宽松通过
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// ── Bun.YAML ──────────────────────────────────────────────────────────
|
|
342
|
+
// Bun 内置 YAML 解析器,产物中通过 typeof Bun 守卫调用
|
|
343
|
+
// 降级到 yaml 包(已作为依赖存在)
|
|
344
|
+
const YAML = {
|
|
345
|
+
parse(input) {
|
|
346
|
+
try {
|
|
347
|
+
const yaml = require("yaml");
|
|
348
|
+
return yaml.parse(input);
|
|
349
|
+
} catch {
|
|
350
|
+
throw new Error("Bun.YAML polyfill: 'yaml' package not available. Install it or use Bun runtime.");
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
// ── Bun.version ───────────────────────────────────────────────────────
|
|
356
|
+
// Bun 运行时版本字符串,用于 typeof 检测
|
|
357
|
+
const version = "1.2.0-polyfill";
|
|
358
|
+
|
|
359
|
+
// ── Bun.stringWidth ───────────────────────────────────────────────────
|
|
360
|
+
// 东亚宽度感知的字符串显示宽度,产物中有 typeof 守卫降级
|
|
361
|
+
// 提供基础实现,按 CJK 字符双宽计算
|
|
362
|
+
function stringWidth(str) {
|
|
363
|
+
let w = 0;
|
|
364
|
+
for (const ch of str) {
|
|
365
|
+
const code = ch.codePointAt(0);
|
|
366
|
+
if (code >= 0x1100 && (
|
|
367
|
+
code <= 0x115F ||
|
|
368
|
+
code === 0x2329 || code === 0x232A ||
|
|
369
|
+
(code >= 0x2E80 && code <= 0xA4CF && code !== 0x303F) ||
|
|
370
|
+
(code >= 0xAC00 && code <= 0xD7A3) ||
|
|
371
|
+
(code >= 0xF900 && code <= 0xFAFF) ||
|
|
372
|
+
(code >= 0xFE10 && code <= 0xFE19) ||
|
|
373
|
+
(code >= 0xFE30 && code <= 0xFE6F) ||
|
|
374
|
+
(code >= 0xFF01 && code <= 0xFF60) ||
|
|
375
|
+
(code >= 0xFFE0 && code <= 0xFFE6) ||
|
|
376
|
+
(code >= 0x1F300 && code <= 0x1F9FF) ||
|
|
377
|
+
(code >= 0x20000 && code <= 0x2FFFD) ||
|
|
378
|
+
(code >= 0x30000 && code <= 0x3FFFD)
|
|
379
|
+
)) {
|
|
380
|
+
w += 2;
|
|
381
|
+
} else if (code >= 0x20) {
|
|
382
|
+
w += 1;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
return w;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// ── Bun.wrapAnsi ──────────────────────────────────────────────────────
|
|
389
|
+
// ANSI 转义序列感知的自动换行,产物中有 typeof 守卫降级到 null
|
|
390
|
+
// 提供 stub 即可
|
|
391
|
+
const wrapAnsi = null;
|
|
392
|
+
|
|
393
|
+
// ── Bun.listen ────────────────────────────────────────────────────────
|
|
394
|
+
// Daemon 模式专用 TCP 监听,feature-gated (DAEMON)
|
|
395
|
+
// Node.js 中用 net.Server 替代
|
|
396
|
+
function listen(opts) {
|
|
397
|
+
const net = require("net");
|
|
398
|
+
const server = net.createServer((socket) => {
|
|
399
|
+
if (opts.socket && opts.socket.data) {
|
|
400
|
+
socket.data = { ...opts.socket.data() };
|
|
401
|
+
}
|
|
402
|
+
if (opts.socket && opts.socket.open) {
|
|
403
|
+
opts.socket.open(socket);
|
|
404
|
+
}
|
|
405
|
+
socket.on("data", (data) => {
|
|
406
|
+
if (opts.socket && opts.socket.data) {
|
|
407
|
+
opts.socket.data(socket, data);
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
socket.on("close", () => {
|
|
411
|
+
if (opts.socket && opts.socket.close) {
|
|
412
|
+
opts.socket.close(socket);
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
socket.on("error", () => {});
|
|
416
|
+
});
|
|
417
|
+
server.listen(opts.port || 0, opts.hostname || "0.0.0.0", () => {
|
|
418
|
+
const addr = server.address();
|
|
419
|
+
server.port = addr.port;
|
|
420
|
+
});
|
|
421
|
+
return server;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
globalThis.Bun = {
|
|
425
|
+
which,
|
|
426
|
+
$,
|
|
427
|
+
hash,
|
|
428
|
+
spawn,
|
|
429
|
+
spawnSync,
|
|
430
|
+
file: bunFile,
|
|
431
|
+
gc,
|
|
432
|
+
generateHeapSnapshot,
|
|
433
|
+
embeddedFiles,
|
|
434
|
+
semver,
|
|
435
|
+
YAML,
|
|
436
|
+
version,
|
|
437
|
+
stringWidth,
|
|
438
|
+
wrapAnsi,
|
|
439
|
+
listen,
|
|
440
|
+
};
|
|
33
441
|
}
|
|
34
442
|
import "./cli.js"
|
package/dist/cli.js
CHANGED
|
@@ -45,7 +45,7 @@ if (false) {}
|
|
|
45
45
|
async function main() {
|
|
46
46
|
const args = process.argv.slice(2);
|
|
47
47
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
48
|
-
console.log(`${"4.0.
|
|
48
|
+
console.log(`${"4.0.6"} (CoStrict)`);
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
const { profileCheckpoint } = await import("./chunk-1nmcmem8.js");
|
|
@@ -53,7 +53,7 @@ async function main() {
|
|
|
53
53
|
if (false) {}
|
|
54
54
|
if (process.argv[2] === "--claude-in-chrome-mcp") {
|
|
55
55
|
profileCheckpoint("cli_claude_in_chrome_mcp_path");
|
|
56
|
-
const { runClaudeInChromeMcpServer } = await import("./chunk-
|
|
56
|
+
const { runClaudeInChromeMcpServer } = await import("./chunk-hvcp3wf6.js");
|
|
57
57
|
await runClaudeInChromeMcpServer();
|
|
58
58
|
return;
|
|
59
59
|
} else if (process.argv[2] === "--chrome-native-host") {
|
|
@@ -63,21 +63,21 @@ async function main() {
|
|
|
63
63
|
return;
|
|
64
64
|
} else if (process.argv[2] === "--computer-use-mcp") {
|
|
65
65
|
profileCheckpoint("cli_computer_use_mcp_path");
|
|
66
|
-
const { runComputerUseMcpServer } = await import("./chunk-
|
|
66
|
+
const { runComputerUseMcpServer } = await import("./chunk-eq4pgt3b.js");
|
|
67
67
|
await runComputerUseMcpServer();
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
if (args[0] === "--daemon-worker") {
|
|
71
|
-
const { runDaemonWorker } = await import("./chunk-
|
|
71
|
+
const { runDaemonWorker } = await import("./chunk-pm5eb1rd.js");
|
|
72
72
|
await runDaemonWorker(args[1]);
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
if (false) {}
|
|
76
76
|
if (args[0] === "daemon") {
|
|
77
77
|
profileCheckpoint("cli_daemon_path");
|
|
78
|
-
const { enableConfigs } = await import("./chunk-
|
|
78
|
+
const { enableConfigs } = await import("./chunk-5yvqxwsj.js");
|
|
79
79
|
enableConfigs();
|
|
80
|
-
const { initSinks } = await import("./chunk-
|
|
80
|
+
const { initSinks } = await import("./chunk-16fwkvne.js");
|
|
81
81
|
initSinks();
|
|
82
82
|
const { daemonMain } = await import("./chunk-yj2t6a2t.js");
|
|
83
83
|
await daemonMain(args.slice(1));
|
|
@@ -98,11 +98,11 @@ async function main() {
|
|
|
98
98
|
const hasTmuxFlag = args.includes("--tmux") || args.includes("--tmux=classic");
|
|
99
99
|
if (hasTmuxFlag && (args.includes("-w") || args.includes("--worktree") || args.some((a) => a.startsWith("--worktree=")))) {
|
|
100
100
|
profileCheckpoint("cli_tmux_worktree_fast_path");
|
|
101
|
-
const { enableConfigs } = await import("./chunk-
|
|
101
|
+
const { enableConfigs } = await import("./chunk-5yvqxwsj.js");
|
|
102
102
|
enableConfigs();
|
|
103
103
|
const { isWorktreeModeEnabled } = await import("./chunk-pwwa7s62.js");
|
|
104
104
|
if (isWorktreeModeEnabled()) {
|
|
105
|
-
const { execIntoTmuxWorktree } = await import("./chunk-
|
|
105
|
+
const { execIntoTmuxWorktree } = await import("./chunk-vk6n58rj.js");
|
|
106
106
|
const result = await execIntoTmuxWorktree(args);
|
|
107
107
|
if (result.handled) {
|
|
108
108
|
return;
|
|
@@ -122,7 +122,7 @@ async function main() {
|
|
|
122
122
|
const { startCapturingEarlyInput } = await import("./chunk-qtfc6wdh.js");
|
|
123
123
|
startCapturingEarlyInput();
|
|
124
124
|
profileCheckpoint("cli_before_main_import");
|
|
125
|
-
const { main: cliMain } = await import("./chunk-
|
|
125
|
+
const { main: cliMain } = await import("./chunk-j4tb1czw.js");
|
|
126
126
|
profileCheckpoint("cli_after_main_import");
|
|
127
127
|
await cliMain();
|
|
128
128
|
profileCheckpoint("cli_after_main_complete");
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@costrict/csc",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "CSC — CoStrict多模型终端 AI 编程助手,支持 Anthropic/OpenAI/Gemini/Grok 等多种 API 端点",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "claude-code-best <claude-code-best@proton.me>",
|
|
8
8
|
"repository": {
|
|
@@ -14,21 +14,26 @@
|
|
|
14
14
|
"url": "https://github.com/y574444354/csc/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
|
-
"
|
|
18
|
-
"
|
|
17
|
+
"csc",
|
|
18
|
+
"costrict",
|
|
19
19
|
"cli",
|
|
20
20
|
"ai",
|
|
21
21
|
"coding-assistant",
|
|
22
22
|
"terminal",
|
|
23
|
-
"repl"
|
|
23
|
+
"repl",
|
|
24
|
+
"multi-model",
|
|
25
|
+
"anthropic",
|
|
26
|
+
"openai",
|
|
27
|
+
"gemini",
|
|
28
|
+
"grok"
|
|
24
29
|
],
|
|
25
30
|
"engines": {
|
|
26
|
-
"
|
|
31
|
+
"node": ">=18.0.0"
|
|
27
32
|
},
|
|
28
33
|
"bin": {
|
|
29
|
-
"csc": "dist/cli.js",
|
|
34
|
+
"csc": "dist/cli-node.js",
|
|
30
35
|
"csc-bun": "dist/cli-bun.js",
|
|
31
|
-
"claude-code-best": "dist/cli.js"
|
|
36
|
+
"claude-code-best": "dist/cli-node.js"
|
|
32
37
|
},
|
|
33
38
|
"workspaces": [
|
|
34
39
|
"packages/*",
|
|
@@ -58,7 +63,10 @@
|
|
|
58
63
|
"rcs": "bun run scripts/rcs.ts"
|
|
59
64
|
},
|
|
60
65
|
"dependencies": {
|
|
61
|
-
"@claude-code-best/mcp-chrome-bridge": "^2.0.7"
|
|
66
|
+
"@claude-code-best/mcp-chrome-bridge": "^2.0.7",
|
|
67
|
+
"undici": "^7.24.6",
|
|
68
|
+
"ws": "^8.20.0",
|
|
69
|
+
"yaml": "^2.8.3"
|
|
62
70
|
},
|
|
63
71
|
"devDependencies": {
|
|
64
72
|
"@types/he": "^1.2.3",
|
|
@@ -180,16 +188,13 @@
|
|
|
180
188
|
"turndown": "^7.2.2",
|
|
181
189
|
"type-fest": "^5.5.0",
|
|
182
190
|
"typescript": "^6.0.2",
|
|
183
|
-
"undici": "^7.24.6",
|
|
184
191
|
"url-handler-napi": "workspace:*",
|
|
185
192
|
"usehooks-ts": "^3.1.1",
|
|
186
193
|
"vscode-jsonrpc": "^8.2.1",
|
|
187
194
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
188
195
|
"vscode-languageserver-types": "^3.17.5",
|
|
189
196
|
"wrap-ansi": "^10.0.0",
|
|
190
|
-
"ws": "^8.20.0",
|
|
191
197
|
"xss": "^1.0.15",
|
|
192
|
-
"yaml": "^2.8.3",
|
|
193
198
|
"zod": "^4.3.6"
|
|
194
199
|
}
|
|
195
200
|
}
|