@poe-platform/safe-bash 0.1.800 → 0.1.802
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/README.md +16 -5
- package/dist/image-ast/index.browser.js +122 -76
- package/dist/image-ast/index.js +122 -76
- package/dist/pdf-ast/index.js +4 -3
- package/dist/safe-bash/chunks/chunk-3HQU4OJO.js +13 -0
- package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-44ALJ4QG.js} +5809 -7424
- package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
- package/dist/safe-bash/chunks/chunk-4BSJLKNM.js +14 -0
- package/dist/safe-bash/chunks/chunk-4D4N7IU2.js +47 -0
- package/dist/safe-bash/chunks/chunk-55YJASTN.js +14 -0
- package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
- package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
- package/dist/safe-bash/chunks/chunk-7ZBU7KYV.js +14 -0
- package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
- package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-BJA5XNP6.js} +6 -6
- package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
- package/dist/safe-bash/chunks/chunk-DQP3VHSB.js +15 -0
- package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
- package/dist/safe-bash/chunks/chunk-FZE4HW6G.js +11 -0
- package/dist/safe-bash/chunks/chunk-GEG3BWGE.js +14 -0
- package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-GETUOD5D.js} +4 -4
- package/dist/safe-bash/chunks/chunk-HBCN24ZA.js +50 -0
- package/dist/safe-bash/chunks/chunk-HZ7BWKQ3.js +13 -0
- package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-HZAMGT5I.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
- package/dist/safe-bash/chunks/chunk-KDNSPLII.js +83 -0
- package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-NQCM3TYR.js} +922 -658
- package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-PH63PLPZ.js} +8 -8
- package/dist/safe-bash/chunks/chunk-QGUV42T5.js +44 -0
- package/dist/safe-bash/chunks/chunk-R3NAKOED.js +51 -0
- package/dist/safe-bash/chunks/chunk-RRR7AQ24.js +38 -0
- package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-RSTHLAF3.js} +30 -23
- package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-SHEMU2Z7.js} +378 -1148
- package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-VKNVHEX3.js} +2 -7
- package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +962 -0
- package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-WDLGKIHD.js} +56 -39
- package/dist/safe-bash/chunks/chunk-XAQMU6OY.js +14 -0
- package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
- package/dist/safe-bash/chunks/chunk-ZVD5IS4V.js +49 -0
- package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
- package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
- package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
- package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
- package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
- package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
- package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
- package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
- package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
- package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
- package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
- package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
- package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
- package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
- package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
- package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-6GWJUQAV.js} +237 -145
- package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
- package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
- package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
- package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
- package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
- package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
- package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
- package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
- package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
- package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
- package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
- package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-EFANWIHL.js → chunk-GY3BWK7K.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
- package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
- package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
- package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
- package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
- package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WBNZ4PRE.js → chunk-NGG2XL56.js} +7 -4
- package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
- package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GLOZX57Y.js → chunk-OQKC5ZU2.js} +23 -114
- package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
- package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
- package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
- package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
- package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
- package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
- package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
- package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-VT6MJBEI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
- package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
- package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
- package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-X54L3DBL.js} +6 -9
- package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
- package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
- package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-YVNGTIJO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
- package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
- package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
- package/dist/safe-bash/commands/apply-patch/index.browser.js +14 -0
- package/dist/safe-bash/commands/archive/index.browser.js +36 -0
- package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
- package/dist/safe-bash/commands/column/index.browser.js +12 -0
- package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/docx/index.browser.js +1 -1
- package/dist/safe-bash/commands/du/index.browser.js +14 -0
- package/dist/safe-bash/commands/execution.js +19 -13
- package/dist/safe-bash/commands/expr/index.browser.js +12 -0
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/file/index.browser.js +14 -0
- package/dist/safe-bash/commands/filesystem.d.ts +1 -1
- package/dist/safe-bash/commands/filesystem.js +26 -15
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/grep-aliases/index.browser.js +14 -0
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/html-to-markdown/index.browser.js +16 -0
- package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
- package/dist/safe-bash/commands/media/index.browser.js +1 -1
- package/dist/safe-bash/commands/metadata/index.browser.js +21 -0
- package/dist/safe-bash/commands/network/curl.d.ts +1 -1
- package/dist/safe-bash/commands/network/curl.js +1 -3
- package/dist/safe-bash/commands/network/index.browser.js +4 -4
- package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
- package/dist/safe-bash/commands/network/platform-portable.js +1 -26
- package/dist/safe-bash/commands/network/public.d.ts +2 -2
- package/dist/safe-bash/commands/network/public.js +2 -2
- package/dist/safe-bash/commands/network/transport.js +2 -2
- package/dist/safe-bash/commands/network/wget.d.ts +1 -1
- package/dist/safe-bash/commands/network/wget.js +1 -3
- package/dist/safe-bash/commands/node/filesystem.js +3 -2
- package/dist/safe-bash/commands/node/index.browser.js +8 -8
- package/dist/safe-bash/commands/node/types.js +1 -1
- package/dist/safe-bash/commands/op/index.browser.js +3 -3
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
- package/dist/safe-bash/commands/python/index.browser.js +11 -11
- package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
- package/dist/safe-bash/commands/python/manifest.js +6 -3
- package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
- package/dist/safe-bash/commands/python/shell-capability.js +3 -2
- package/dist/safe-bash/commands/python/worker.browser.js +3 -3
- package/dist/safe-bash/commands/regex-execution/public.browser.js +8 -6
- package/dist/safe-bash/commands/safejs/runtime.js +16 -7
- package/dist/safe-bash/commands/split/index.browser.js +14 -0
- package/dist/safe-bash/commands/standard.d.ts +1 -0
- package/dist/safe-bash/commands/standard.js +2 -1
- package/dist/safe-bash/commands/stream-format/index.browser.js +11 -0
- package/dist/safe-bash/commands/stream-inspection/index.browser.js +11 -0
- package/dist/safe-bash/commands/streams.js +11 -29
- package/dist/safe-bash/commands/table-text/index.browser.js +11 -0
- package/dist/safe-bash/commands/text.js +269 -496
- package/dist/safe-bash/commands/time-env/index.browser.js +15 -0
- package/dist/safe-bash/commands/tree/index.browser.js +14 -0
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/xml/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/core.browser.js +1 -1
- package/dist/safe-bash/core.d.ts +6 -1
- package/dist/safe-bash/core.js +1 -1
- package/dist/safe-bash/full-core.browser.js +308 -295
- package/dist/safe-bash/jobs.browser.js +5 -5
- package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
- package/dist/safe-bash/optional-host.browser.js +15 -15
- package/dist/safe-bash/plugins/composition.d.ts +1 -0
- package/dist/safe-bash/plugins/composition.js +3 -8
- package/dist/safe-bash/plugins/index.browser.js +41 -27
- package/dist/safe-bash/registry-entry.browser.js +42 -28
- package/dist/safe-bash/search.browser.js +48 -0
- package/dist/safe-bash/shell/arrays/bindings.js +1 -1
- package/dist/safe-bash/shell/arrays/state.js +4 -0
- package/dist/safe-bash/shell/brace-expansion.js +1 -1
- package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
- package/dist/safe-bash/shell/dynamic-variables.js +25 -0
- package/dist/safe-bash/shell/parser.js +8 -1
- package/dist/safe-bash/shell/runtime.d.ts +4 -13
- package/dist/safe-bash/shell/runtime.js +334 -1049
- package/dist/safe-bash/shell/shell.js +2 -54
- package/dist/safe-bash/shell-entry.browser.js +35 -26
- package/dist/safe-bash/trap.browser.js +4 -4
- package/dist/safe-bash/yq-browser/index.js +1 -1
- package/dist/safe-bash-base-encoding-engine/base.js +2 -2
- package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
- package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
- package/dist/safe-bash-byte-input-engine/index.js +4 -1
- package/dist/safe-bash-checksum-engine/index.js +13 -6
- package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
- package/dist/safe-bash-command-apply-patch/apply.js +4 -3
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
- package/dist/safe-bash-command-apply-patch/parser.js +1 -1
- package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
- package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
- package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
- package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
- package/dist/safe-bash-command-awk/awk-values.js +1 -1
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-bc/index.d.ts +2 -0
- package/dist/safe-bash-command-bc/index.js +123 -92
- package/dist/safe-bash-command-column/column.js +5 -5
- package/dist/safe-bash-command-column/display.d.ts +1 -1
- package/dist/safe-bash-command-column/display.js +1 -1
- package/dist/safe-bash-command-column/index.js +5 -5
- package/dist/safe-bash-command-column/internal.d.ts +0 -2
- package/dist/safe-bash-command-column/internal.js +1 -1
- package/dist/safe-bash-command-column/layout.js +4 -4
- package/dist/safe-bash-command-column/table.js +2 -2
- package/dist/safe-bash-command-comm/comm.js +1 -1
- package/dist/safe-bash-command-comm/index.js +1 -1
- package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
- package/dist/safe-bash-command-csvcut/index.js +1 -0
- package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
- package/dist/safe-bash-command-csvgrep/index.js +2 -2
- package/dist/safe-bash-command-csvkit/index.js +9 -9
- package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
- package/dist/safe-bash-command-curl/curl.js +1 -1
- package/dist/safe-bash-command-curl/index.js +1 -1
- package/dist/safe-bash-command-dd/index.js +2 -0
- package/dist/safe-bash-command-diff/diff.js +1 -1
- package/dist/safe-bash-command-diff/index.js +1 -1
- package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
- package/dist/safe-bash-command-fd/index.js +9 -9
- package/dist/safe-bash-command-ffmpeg/index.js +31 -8
- package/dist/safe-bash-command-file/index.js +1 -1
- package/dist/safe-bash-command-file/shared.js +1 -1
- package/dist/safe-bash-command-find/find.js +1 -1
- package/dist/safe-bash-command-find/index.js +1 -1
- package/dist/safe-bash-command-gzip/index.js +3 -2
- package/dist/safe-bash-command-hexdump/command.js +4 -4
- package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
- package/dist/safe-bash-command-hexdump/index.js +4 -4
- package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
- package/dist/safe-bash-command-hexdump/internal.js +1 -1
- package/dist/safe-bash-command-hexdump/io.js +2 -2
- package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
- package/dist/safe-bash-command-hexdump/options.js +2 -2
- package/dist/safe-bash-command-hostname/index.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
- package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
- package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
- package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
- package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
- package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
- package/dist/safe-bash-command-htmlq/index.js +27 -9
- package/dist/safe-bash-command-iconv/codec.js +1 -1
- package/dist/safe-bash-command-iconv/command.js +2 -2
- package/dist/safe-bash-command-iconv/index.js +2 -2
- package/dist/safe-bash-command-imagemagick/index.js +24 -6
- package/dist/safe-bash-command-join/index.js +1 -1
- package/dist/safe-bash-command-join/join.js +1 -1
- package/dist/safe-bash-command-jq/index.js +1 -1
- package/dist/safe-bash-command-jq/jq.js +1 -1
- package/dist/safe-bash-command-less/index.js +43 -28
- package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
- package/dist/safe-bash-command-nl/index.js +1 -1
- package/dist/safe-bash-command-nl/nl.js +1 -1
- package/dist/safe-bash-command-numfmt/index.js +0 -11
- package/dist/safe-bash-command-od/index.js +101 -68
- package/dist/safe-bash-command-pandoc/command.js +1 -1
- package/dist/safe-bash-command-pandoc/index.js +1 -1
- package/dist/safe-bash-command-paste/index.js +1 -1
- package/dist/safe-bash-command-paste/paste.js +1 -1
- package/dist/safe-bash-command-pathchk/index.js +3 -13
- package/dist/safe-bash-command-pdfimages/index.js +27 -11
- package/dist/safe-bash-command-pdfinfo/index.js +19 -10
- package/dist/safe-bash-command-pdftk/index.js +3 -3
- package/dist/safe-bash-command-pdftoppm/index.js +26 -10
- package/dist/safe-bash-command-pdftotext/index.js +27 -13
- package/dist/safe-bash-command-qpdf/index.js +5 -5
- package/dist/safe-bash-command-rg/index.js +1 -1
- package/dist/safe-bash-command-rg/rg-command.d.ts +0 -1
- package/dist/safe-bash-command-rg/rg-command.js +3 -5
- package/dist/safe-bash-command-sed/index.js +1 -1
- package/dist/safe-bash-command-sed/sed.js +1 -1
- package/dist/safe-bash-command-shuf/options.d.ts +1 -0
- package/dist/safe-bash-command-shuf/options.js +2 -4
- package/dist/safe-bash-command-shuf/shuf.js +2 -1
- package/dist/safe-bash-command-soffice/index.js +20 -16
- package/dist/safe-bash-command-split/index.js +3 -3
- package/dist/safe-bash-command-split/io.js +1 -1
- package/dist/safe-bash-command-split/outputs.js +2 -2
- package/dist/safe-bash-command-split/split.js +3 -3
- package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
- package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
- package/dist/safe-bash-command-sqlite3/index.js +284 -85
- package/dist/safe-bash-command-ssconvert/commands.js +9 -9
- package/dist/safe-bash-command-ssconvert/core.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
- package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
- package/dist/safe-bash-command-ssconvert/index.js +20 -20
- package/dist/safe-bash-command-tar/extract.js +1 -1
- package/dist/safe-bash-command-tar/index.js +5 -4
- package/dist/safe-bash-command-tar/modes.js +2 -2
- package/dist/safe-bash-command-tree/arguments.js +3 -3
- package/dist/safe-bash-command-tree/charset.js +1 -1
- package/dist/safe-bash-command-tree/index.js +4 -4
- package/dist/safe-bash-command-tree/io.js +1 -1
- package/dist/safe-bash-command-tree/pattern.js +2 -2
- package/dist/safe-bash-command-tree/tree.js +4 -4
- package/dist/safe-bash-command-unexpand/index.js +1 -1
- package/dist/safe-bash-command-unexpand/unexpand.js +1 -1
- package/dist/safe-bash-command-unrtf/index.js +14 -7
- package/dist/safe-bash-command-unzip/index.js +1 -1
- package/dist/safe-bash-command-unzip/unzip.js +1 -1
- package/dist/safe-bash-command-wget/index.js +1 -1
- package/dist/safe-bash-command-wget/wget.js +1 -1
- package/dist/safe-bash-command-xan/argv.d.ts +1 -1
- package/dist/safe-bash-command-xan/argv.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +5 -3
- package/dist/safe-bash-command-xan/csv.d.ts +1 -1
- package/dist/safe-bash-command-xan/csv.js +1 -1
- package/dist/safe-bash-command-xan/index.js +7 -7
- package/dist/safe-bash-command-xan/io.js +3 -3
- package/dist/safe-bash-command-xmllint/index.js +1 -1
- package/dist/safe-bash-command-xxd/index.js +105 -91
- package/dist/safe-bash-command-xz/command.d.ts +2 -0
- package/dist/safe-bash-command-xz/index.d.ts +1 -1
- package/dist/safe-bash-command-xz/index.js +8 -0
- package/dist/safe-bash-command-yq/query.js +1 -1
- package/dist/safe-bash-command-zip/index.js +1 -1
- package/dist/safe-bash-command-zip/zip.js +1 -1
- package/dist/safe-bash-contracts/escaping.js +3 -3
- package/dist/safe-bash-contracts/filesystem-output.js +2 -2
- package/dist/safe-bash-contracts/index.d.ts +1 -0
- package/dist/safe-bash-contracts/index.js +7 -3
- package/dist/safe-bash-contracts/io.d.ts +4 -1
- package/dist/safe-bash-contracts/io.js +3 -1
- package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
- package/dist/safe-bash-contracts/output.js +2 -2
- package/dist/safe-bash-diff-engine/index.js +1 -1
- package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
- package/dist/safe-bash-diff-engine/shared.js +1 -1
- package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
- package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
- package/dist/safe-bash-io-engine/internal.js +1 -1
- package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
- package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
- package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
- package/dist/safe-bash-mcp/index.browser.js +416 -0
- package/dist/safe-bash-mcp/index.d.ts +54 -2
- package/dist/safe-bash-mcp/index.js +286 -90
- package/dist/safe-bash-network-engine/aggregate.js +2 -2
- package/dist/safe-bash-network-engine/args.js +4 -4
- package/dist/safe-bash-network-engine/authorizer.js +1 -1
- package/dist/safe-bash-network-engine/body.js +6 -6
- package/dist/safe-bash-network-engine/decode.d.ts +1 -1
- package/dist/safe-bash-network-engine/decode.js +3 -4
- package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
- package/dist/safe-bash-network-engine/form-content-type.js +2 -2
- package/dist/safe-bash-network-engine/form-headers.js +2 -2
- package/dist/safe-bash-network-engine/glob.js +1 -1
- package/dist/safe-bash-network-engine/index.js +4 -4
- package/dist/safe-bash-network-engine/input.js +6 -6
- package/dist/safe-bash-network-engine/output.js +2 -2
- package/dist/safe-bash-network-engine/platform-portable.js +3 -3
- package/dist/safe-bash-network-engine/shared.js +2 -2
- package/dist/safe-bash-network-engine/types.d.ts +7 -2
- package/dist/safe-bash-network-engine/types.js +1 -1
- package/dist/safe-bash-network-engine/url.js +2 -2
- package/dist/safe-bash-query-engine/capture.js +3 -3
- package/dist/safe-bash-query-engine/delpaths.js +3 -3
- package/dist/safe-bash-query-engine/formats.js +2 -2
- package/dist/safe-bash-query-engine/index.js +11 -11
- package/dist/safe-bash-query-engine/indices.js +3 -3
- package/dist/safe-bash-query-engine/input.js +1 -1
- package/dist/safe-bash-query-engine/interpreter.js +9 -9
- package/dist/safe-bash-query-engine/parser.js +1 -1
- package/dist/safe-bash-query-engine/query-core.js +11 -11
- package/dist/safe-bash-query-engine/regex.js +4 -4
- package/dist/safe-bash-query-engine/splits.js +5 -5
- package/dist/safe-bash-query-engine/values.js +2 -2
- package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
- package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
- package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
- package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
- package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
- package/dist/safe-bash-regex-engine/index.js +6 -4
- package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -1
- package/dist/safe-bash-regex-engine/text/budget.js +1 -1
- package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
- package/dist/safe-bash-regex-engine/text/regex.js +6 -4
- package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
- package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +189 -227
- package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
- package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
- package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
- package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
- package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
- package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
- package/dist/spreadsheet-engine/formulas/parser.js +3 -1
- package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
- package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
- package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
- package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
- package/dist/spreadsheet-format-xls/biff.js +1 -1
- package/dist/xlsx-ast/xlsx.js +8 -5
- package/package.json +68 -12
- package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
- /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
|
@@ -1,18 +1,77 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ReplacementBuffer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VT6MJBEI.js";
|
|
4
4
|
import {
|
|
5
5
|
parseRustPattern
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YVNGTIJO.js";
|
|
7
7
|
import {
|
|
8
8
|
ProgramError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X54L3DBL.js";
|
|
10
10
|
import {
|
|
11
11
|
init_buffer
|
|
12
12
|
} from "./chunk-HX3SHTCE.js";
|
|
13
13
|
|
|
14
14
|
// packages/safe-bash-regex-engine/src/text/regex.ts
|
|
15
15
|
init_buffer();
|
|
16
|
+
|
|
17
|
+
// packages/safe-bash-regex-engine/src/text/byte-text.ts
|
|
18
|
+
init_buffer();
|
|
19
|
+
function decodeByteText(input, budget) {
|
|
20
|
+
budget?.step(input.length);
|
|
21
|
+
let ascii = true;
|
|
22
|
+
for (let i = 0; i < input.length; i++) if (input.charCodeAt(i) >= 128) {
|
|
23
|
+
ascii = false;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
if (ascii) return { text: input };
|
|
27
|
+
if (budget && (input.length + 1) * 6 > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
|
|
28
|
+
const offsets = new Uint32Array(input.length + 1);
|
|
29
|
+
let text = "";
|
|
30
|
+
for (let index = 0; index < input.length; ) {
|
|
31
|
+
const first = input.charCodeAt(index);
|
|
32
|
+
let width = first < 128 ? 1 : first >= 194 && first <= 223 ? 2 : first >= 224 && first <= 239 ? 3 : first >= 240 && first <= 244 ? 4 : 0;
|
|
33
|
+
if (index + width > input.length) width = 0;
|
|
34
|
+
for (let next = 1; next < width; next++) {
|
|
35
|
+
const byte = input.charCodeAt(index + next);
|
|
36
|
+
if (byte < 128 || byte > 191 || next === 1 && (first === 224 && byte < 160 || first === 237 && byte > 159 || first === 240 && byte < 144 || first === 244 && byte > 143)) {
|
|
37
|
+
width = 0;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
let code = width === 0 ? 56320 + first : width === 1 ? first : first & 127 >> width;
|
|
42
|
+
for (let next = 1; next < width; next++) code = code * 64 + (input.charCodeAt(index + next) & 63);
|
|
43
|
+
const character = String.fromCodePoint(code);
|
|
44
|
+
if (character.length === 2) offsets[text.length + 1] = index;
|
|
45
|
+
index += width || 1;
|
|
46
|
+
text += character;
|
|
47
|
+
offsets[text.length] = index;
|
|
48
|
+
}
|
|
49
|
+
return { text, offsets: offsets.subarray(0, text.length + 1) };
|
|
50
|
+
}
|
|
51
|
+
function byteTextPosition(decoded, byteOffset) {
|
|
52
|
+
if (!decoded.offsets) return byteOffset;
|
|
53
|
+
let low = 0, high = decoded.offsets.length;
|
|
54
|
+
while (low < high) {
|
|
55
|
+
const mid = low + Math.floor((high - low) / 2);
|
|
56
|
+
if (decoded.offsets[mid] < byteOffset) low = mid + 1;
|
|
57
|
+
else high = mid;
|
|
58
|
+
}
|
|
59
|
+
return low;
|
|
60
|
+
}
|
|
61
|
+
function encodeByteText(text) {
|
|
62
|
+
let bytes = "";
|
|
63
|
+
for (const character of text) {
|
|
64
|
+
const code = character.codePointAt(0);
|
|
65
|
+
if (code < 128) bytes += character;
|
|
66
|
+
else if (code >= 56448 && code <= 56575) bytes += String.fromCharCode(code - 56320);
|
|
67
|
+
else if (code < 2048) bytes += String.fromCharCode(192 | code >> 6, 128 | code & 63);
|
|
68
|
+
else if (code < 65536) bytes += String.fromCharCode(224 | code >> 12, 128 | code >> 6 & 63, 128 | code & 63);
|
|
69
|
+
else bytes += String.fromCharCode(240 | code >> 18, 128 | code >> 12 & 63, 128 | code >> 6 & 63, 128 | code & 63);
|
|
70
|
+
}
|
|
71
|
+
return bytes;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// packages/safe-bash-regex-engine/src/text/regex.ts
|
|
16
75
|
function isWordChar(ch) {
|
|
17
76
|
if (ch === void 0) return false;
|
|
18
77
|
const code = ch.charCodeAt(0);
|
|
@@ -307,16 +366,18 @@ function matchChainAt(steps, prefixLen, anchoredEnd, text, startPos, outOffsets,
|
|
|
307
366
|
cursor += val.length;
|
|
308
367
|
} else if (step.kind === "char") {
|
|
309
368
|
if (cursor >= textEnd) return -1;
|
|
310
|
-
const code = text.
|
|
311
|
-
if (code < 128 ? step.ascii[code] === 0 : !step.accepts(
|
|
312
|
-
cursor
|
|
369
|
+
const code = text.codePointAt(cursor);
|
|
370
|
+
if (code < 128 ? step.ascii[code] === 0 : !step.accepts(String.fromCodePoint(code))) return -1;
|
|
371
|
+
cursor += code > 65535 ? 2 : 1;
|
|
313
372
|
} else {
|
|
373
|
+
let count = 0;
|
|
314
374
|
while (cursor < textEnd) {
|
|
315
|
-
const code = text.
|
|
316
|
-
if (code < 128 ? step.ascii[code] === 0 : !step.accepts(
|
|
317
|
-
cursor
|
|
375
|
+
const code = text.codePointAt(cursor);
|
|
376
|
+
if (code < 128 ? step.ascii[code] === 0 : !step.accepts(String.fromCodePoint(code))) break;
|
|
377
|
+
cursor += code > 65535 ? 2 : 1;
|
|
378
|
+
count++;
|
|
318
379
|
}
|
|
319
|
-
if (
|
|
380
|
+
if (count < step.minimum) return -1;
|
|
320
381
|
}
|
|
321
382
|
if (step.group > 0) {
|
|
322
383
|
outOffsets[step.group * 2] = stepStart;
|
|
@@ -380,7 +441,8 @@ var Pattern = class {
|
|
|
380
441
|
accepts: (candidate) => ignoreCase ? candidate.toLowerCase() === character.toLowerCase() : candidate === character
|
|
381
442
|
});
|
|
382
443
|
const escaped = () => {
|
|
383
|
-
const character = source
|
|
444
|
+
const character = offset < source.length ? String.fromCodePoint(source.codePointAt(offset)) : void 0;
|
|
445
|
+
offset += character?.length ?? 1;
|
|
384
446
|
if (character === void 0) throw new ProgramError("trailing backslash in regular expression");
|
|
385
447
|
if (dialect === "awk") {
|
|
386
448
|
const octal = "01234567".includes(character);
|
|
@@ -413,7 +475,8 @@ var Pattern = class {
|
|
|
413
475
|
}
|
|
414
476
|
if (source.startsWith("[.", offset) || source.startsWith("[=", offset)) throw new ProgramError("collating and equivalence classes are not supported");
|
|
415
477
|
const readBracketChar = () => {
|
|
416
|
-
const ch = source
|
|
478
|
+
const ch = String.fromCodePoint(source.codePointAt(offset));
|
|
479
|
+
offset += ch.length;
|
|
417
480
|
if (ch !== "\\") return ch;
|
|
418
481
|
if (dialect === "sed") {
|
|
419
482
|
const next = source[offset];
|
|
@@ -440,7 +503,7 @@ var Pattern = class {
|
|
|
440
503
|
} };
|
|
441
504
|
};
|
|
442
505
|
const atom = (atStart, afterBegin) => {
|
|
443
|
-
const token =
|
|
506
|
+
const token = offset < source.length ? String.fromCodePoint(source.codePointAt(offset)) : source[offset];
|
|
444
507
|
offset += token?.length ?? 1;
|
|
445
508
|
if (token === "[") return bracket();
|
|
446
509
|
if (token === "\\") {
|
|
@@ -872,18 +935,20 @@ var Pattern = class {
|
|
|
872
935
|
let searchFrom = from;
|
|
873
936
|
while (searchFrom < textEnd) {
|
|
874
937
|
while (searchFrom < textEnd) {
|
|
875
|
-
const c = text.
|
|
876
|
-
if (c < 128 ? headAscii[c] !== 0 : headAccepts(
|
|
877
|
-
searchFrom
|
|
938
|
+
const c = text.codePointAt(searchFrom);
|
|
939
|
+
if (c < 128 ? headAscii[c] !== 0 : headAccepts(String.fromCodePoint(c))) break;
|
|
940
|
+
searchFrom += c > 65535 ? 2 : 1;
|
|
878
941
|
}
|
|
879
942
|
if (searchFrom >= textEnd) break;
|
|
880
|
-
let runEnd = searchFrom + 1;
|
|
943
|
+
let runEnd = searchFrom + (text.codePointAt(searchFrom) > 65535 ? 2 : 1);
|
|
944
|
+
let count = 1;
|
|
881
945
|
while (runEnd < textEnd) {
|
|
882
|
-
const c = text.
|
|
883
|
-
if (c < 128 ? headAscii[c] === 0 : !headAccepts(
|
|
884
|
-
runEnd
|
|
946
|
+
const c = text.codePointAt(runEnd);
|
|
947
|
+
if (c < 128 ? headAscii[c] === 0 : !headAccepts(String.fromCodePoint(c))) break;
|
|
948
|
+
runEnd += c > 65535 ? 2 : 1;
|
|
949
|
+
count++;
|
|
885
950
|
}
|
|
886
|
-
if (
|
|
951
|
+
if (count >= headMin) {
|
|
887
952
|
const end = matchChainAt(steps, 0, anchoredEnd2, text, searchFrom, outOffsets, this.groupCount, textEnd, 0);
|
|
888
953
|
if (end >= 0) {
|
|
889
954
|
found2 = searchFrom;
|
|
@@ -891,7 +956,7 @@ var Pattern = class {
|
|
|
891
956
|
break;
|
|
892
957
|
}
|
|
893
958
|
}
|
|
894
|
-
searchFrom = runEnd + 1;
|
|
959
|
+
searchFrom = runEnd + ((text.codePointAt(runEnd) ?? 0) > 65535 ? 2 : 1);
|
|
895
960
|
}
|
|
896
961
|
}
|
|
897
962
|
const positionsTried2 = anchoredStart2 ? 1 : found2 >= 0 ? found2 - from + 1 : textEnd - from + 1;
|
|
@@ -912,12 +977,14 @@ var Pattern = class {
|
|
|
912
977
|
if (textStart + prefix.length <= textEnd && text.startsWith(prefix, textStart)) {
|
|
913
978
|
const pos = textStart + prefix.length;
|
|
914
979
|
let cursor = pos;
|
|
980
|
+
let count = 0;
|
|
915
981
|
while (cursor < textEnd) {
|
|
916
|
-
const code = text.
|
|
917
|
-
if (code < 128 ? ascii[code] === 0 : !accepts(
|
|
918
|
-
cursor
|
|
982
|
+
const code = text.codePointAt(cursor);
|
|
983
|
+
if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
|
|
984
|
+
cursor += code > 65535 ? 2 : 1;
|
|
985
|
+
count++;
|
|
919
986
|
}
|
|
920
|
-
if (
|
|
987
|
+
if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
|
|
921
988
|
found2 = textStart;
|
|
922
989
|
matchEnd = cursor;
|
|
923
990
|
groupStart = pos;
|
|
@@ -928,26 +995,28 @@ var Pattern = class {
|
|
|
928
995
|
let searchFrom = from;
|
|
929
996
|
const maxStart = textEnd - minimum;
|
|
930
997
|
while (searchFrom <= maxStart) {
|
|
931
|
-
const c0 = text.
|
|
932
|
-
if (c0 < 128 ? ascii[c0] === 0 : !accepts(
|
|
933
|
-
searchFrom
|
|
998
|
+
const c0 = text.codePointAt(searchFrom);
|
|
999
|
+
if (c0 < 128 ? ascii[c0] === 0 : !accepts(String.fromCodePoint(c0))) {
|
|
1000
|
+
searchFrom += c0 > 65535 ? 2 : 1;
|
|
934
1001
|
continue;
|
|
935
1002
|
}
|
|
936
1003
|
const idx = searchFrom;
|
|
937
|
-
let cursor = idx + 1;
|
|
1004
|
+
let cursor = idx + (c0 > 65535 ? 2 : 1);
|
|
1005
|
+
let count = 1;
|
|
938
1006
|
while (cursor < textEnd) {
|
|
939
|
-
const code = text.
|
|
940
|
-
if (code < 128 ? ascii[code] === 0 : !accepts(
|
|
941
|
-
cursor
|
|
1007
|
+
const code = text.codePointAt(cursor);
|
|
1008
|
+
if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
|
|
1009
|
+
cursor += code > 65535 ? 2 : 1;
|
|
1010
|
+
count++;
|
|
942
1011
|
}
|
|
943
|
-
if (
|
|
1012
|
+
if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
|
|
944
1013
|
found2 = idx;
|
|
945
1014
|
matchEnd = cursor;
|
|
946
1015
|
groupStart = idx;
|
|
947
1016
|
groupEnd = cursor;
|
|
948
1017
|
break;
|
|
949
1018
|
}
|
|
950
|
-
searchFrom = cursor + 1;
|
|
1019
|
+
searchFrom = cursor + ((text.codePointAt(cursor) ?? 0) > 65535 ? 2 : 1);
|
|
951
1020
|
}
|
|
952
1021
|
} else {
|
|
953
1022
|
let searchFrom = from;
|
|
@@ -956,12 +1025,14 @@ var Pattern = class {
|
|
|
956
1025
|
if (idx < 0 || idx > textEnd - prefix.length) break;
|
|
957
1026
|
const pos = idx + prefix.length;
|
|
958
1027
|
let cursor = pos;
|
|
1028
|
+
let count = 0;
|
|
959
1029
|
while (cursor < textEnd) {
|
|
960
|
-
const code = text.
|
|
961
|
-
if (code < 128 ? ascii[code] === 0 : !accepts(
|
|
962
|
-
cursor
|
|
1030
|
+
const code = text.codePointAt(cursor);
|
|
1031
|
+
if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
|
|
1032
|
+
cursor += code > 65535 ? 2 : 1;
|
|
1033
|
+
count++;
|
|
963
1034
|
}
|
|
964
|
-
if (
|
|
1035
|
+
if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
|
|
965
1036
|
found2 = idx;
|
|
966
1037
|
matchEnd = cursor;
|
|
967
1038
|
groupStart = pos;
|
|
@@ -1107,12 +1178,14 @@ var Pattern = class {
|
|
|
1107
1178
|
if (text.startsWith(prefix)) {
|
|
1108
1179
|
const pos = prefix.length;
|
|
1109
1180
|
let cursor = pos;
|
|
1181
|
+
let count = 0;
|
|
1110
1182
|
while (cursor < text.length) {
|
|
1111
|
-
const code = text.
|
|
1112
|
-
if (code < 128 ? ascii[code] === 0 : !accepts(
|
|
1113
|
-
cursor
|
|
1183
|
+
const code = text.codePointAt(cursor);
|
|
1184
|
+
if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
|
|
1185
|
+
cursor += code > 65535 ? 2 : 1;
|
|
1186
|
+
count++;
|
|
1114
1187
|
}
|
|
1115
|
-
if (
|
|
1188
|
+
if (count >= minimum && (!anchoredEnd || cursor === text.length)) {
|
|
1116
1189
|
found = 0;
|
|
1117
1190
|
matchEnd = cursor;
|
|
1118
1191
|
groupStart = pos;
|
|
@@ -1126,19 +1199,21 @@ var Pattern = class {
|
|
|
1126
1199
|
if (idx < 0) break;
|
|
1127
1200
|
const pos = idx + prefix.length;
|
|
1128
1201
|
let cursor = pos;
|
|
1202
|
+
let count = 0;
|
|
1129
1203
|
while (cursor < text.length) {
|
|
1130
|
-
const code = text.
|
|
1131
|
-
if (code < 128 ? ascii[code] === 0 : !accepts(
|
|
1132
|
-
cursor
|
|
1204
|
+
const code = text.codePointAt(cursor);
|
|
1205
|
+
if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
|
|
1206
|
+
cursor += code > 65535 ? 2 : 1;
|
|
1207
|
+
count++;
|
|
1133
1208
|
}
|
|
1134
|
-
if (
|
|
1209
|
+
if (count >= minimum && (!anchoredEnd || cursor === text.length)) {
|
|
1135
1210
|
found = idx;
|
|
1136
1211
|
matchEnd = cursor;
|
|
1137
1212
|
groupStart = pos;
|
|
1138
1213
|
groupEnd = cursor;
|
|
1139
1214
|
break;
|
|
1140
1215
|
}
|
|
1141
|
-
searchFrom = idx + 1;
|
|
1216
|
+
searchFrom = idx + ((text.codePointAt(idx) ?? 0) > 65535 ? 2 : 1);
|
|
1142
1217
|
}
|
|
1143
1218
|
}
|
|
1144
1219
|
const positionsTried = anchoredStart ? 1 : found >= 0 ? found - from + 1 : text.length - from + 1;
|
|
@@ -1211,14 +1286,16 @@ var Pattern = class {
|
|
|
1211
1286
|
return budget.checkpointSync ? budget.checkpointSync() : budget.checkpoint();
|
|
1212
1287
|
};
|
|
1213
1288
|
if (this.linear) {
|
|
1214
|
-
for (let start = from; start <= text.length && (!this.anchored || start === 0); start
|
|
1289
|
+
for (let start = from; start <= text.length && (!this.anchored || start === 0); start += (text.codePointAt(start) ?? 0) > 65535 ? 2 : 1) {
|
|
1215
1290
|
let position = start;
|
|
1216
1291
|
for (const instruction of this.code) {
|
|
1217
1292
|
const paused = work(2);
|
|
1218
1293
|
if (paused) await paused;
|
|
1219
1294
|
if (instruction.kind === "character") {
|
|
1220
|
-
if (position >= text.length
|
|
1221
|
-
position
|
|
1295
|
+
if (position >= text.length) break;
|
|
1296
|
+
const character = String.fromCodePoint(text.codePointAt(position));
|
|
1297
|
+
if (!instruction.accepts(character)) break;
|
|
1298
|
+
position += character.length;
|
|
1222
1299
|
} else if (instruction.kind === "begin" && position !== 0 || instruction.kind === "end" && position !== text.length) break;
|
|
1223
1300
|
else if (instruction.kind === "match") {
|
|
1224
1301
|
if (position - start > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
|
|
@@ -1261,7 +1338,7 @@ var Pattern = class {
|
|
|
1261
1338
|
}
|
|
1262
1339
|
if (!pending && !positions.size) break;
|
|
1263
1340
|
if (!pending) {
|
|
1264
|
-
position
|
|
1341
|
+
position += (text.codePointAt(position) ?? 0) > 65535 ? 2 : 1;
|
|
1265
1342
|
continue;
|
|
1266
1343
|
}
|
|
1267
1344
|
const reversed = work(pending.length);
|
|
@@ -1320,7 +1397,10 @@ var Pattern = class {
|
|
|
1320
1397
|
visited.set(state, thread.start);
|
|
1321
1398
|
const instruction = this.code[thread.pc];
|
|
1322
1399
|
if (instruction.kind === "character") {
|
|
1323
|
-
if (position < text.length
|
|
1400
|
+
if (position < text.length) {
|
|
1401
|
+
const character = String.fromCodePoint(text.codePointAt(position));
|
|
1402
|
+
if (instruction.accepts(character)) enqueue(position + character.length, thread.pc + 1, thread.start, thread.captures);
|
|
1403
|
+
}
|
|
1324
1404
|
} else if (instruction.kind === "backreference") {
|
|
1325
1405
|
const begin = thread.captures[instruction.index * 2];
|
|
1326
1406
|
const end = thread.captures[instruction.index * 2 + 1];
|
|
@@ -1382,8 +1462,9 @@ var Pattern = class {
|
|
|
1382
1462
|
storage.release(stateBytes + 64);
|
|
1383
1463
|
if (this.backreferences && !positions.size) {
|
|
1384
1464
|
if (bestStart !== void 0 || this.anchored) break;
|
|
1385
|
-
|
|
1386
|
-
|
|
1465
|
+
nextStart += (text.codePointAt(nextStart) ?? 0) > 65535 ? 2 : 1;
|
|
1466
|
+
position = nextStart;
|
|
1467
|
+
} else position += (text.codePointAt(position) ?? 0) > 65535 ? 2 : 1;
|
|
1387
1468
|
}
|
|
1388
1469
|
if (bestStart !== void 0 && bestEnd !== void 0) {
|
|
1389
1470
|
let characters = bestEnd - bestStart;
|
|
@@ -1530,7 +1611,7 @@ function getSimpleReplacement(replacement, syntax) {
|
|
|
1530
1611
|
SIMPLE_REPLACEMENT_CACHE.set(key, null);
|
|
1531
1612
|
return null;
|
|
1532
1613
|
}
|
|
1533
|
-
function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, matchEnd, group1Start, group1End, budget, maxBufferBytes, syntax, simpleRep = getSimpleReplacement(replacement, syntax)) {
|
|
1614
|
+
function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, matchEnd, group1Start, group1End, budget, maxBufferBytes, syntax, simpleRep = getSimpleReplacement(replacement, syntax), offsets = FAST_MATCH_OFFSETS) {
|
|
1534
1615
|
if (simpleRep !== null) {
|
|
1535
1616
|
if (simpleRep.kind === "literal") {
|
|
1536
1617
|
budget.step(simpleRep.stepsPerExpansion);
|
|
@@ -1538,10 +1619,10 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
|
|
|
1538
1619
|
return out ? out + simpleRep.prefix : simpleRep.prefix;
|
|
1539
1620
|
}
|
|
1540
1621
|
if (simpleRep.kind === "twoRefs") {
|
|
1541
|
-
const g1Start = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start :
|
|
1542
|
-
const g1End = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End :
|
|
1543
|
-
const g2Start = simpleRep.group2 === 0 ? matchStart : simpleRep.group2 === 1 ? group1Start :
|
|
1544
|
-
const g2End = simpleRep.group2 === 0 ? matchEnd : simpleRep.group2 === 1 ? group1End :
|
|
1622
|
+
const g1Start = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : offsets[simpleRep.group * 2];
|
|
1623
|
+
const g1End = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : offsets[simpleRep.group * 2 + 1];
|
|
1624
|
+
const g2Start = simpleRep.group2 === 0 ? matchStart : simpleRep.group2 === 1 ? group1Start : offsets[simpleRep.group2 * 2];
|
|
1625
|
+
const g2End = simpleRep.group2 === 0 ? matchEnd : simpleRep.group2 === 1 ? group1End : offsets[simpleRep.group2 * 2 + 1];
|
|
1545
1626
|
const g1Len = g1Start >= 0 && g1End > g1Start ? g1End - g1Start : 0;
|
|
1546
1627
|
const g2Len = g2Start >= 0 && g2End > g2Start ? g2End - g2Start : 0;
|
|
1547
1628
|
const addedLen2 = simpleRep.prefix.length + g1Len + simpleRep.mid.length + g2Len + simpleRep.suffix.length;
|
|
@@ -1552,8 +1633,8 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
|
|
|
1552
1633
|
const expanded2 = simpleRep.suffix ? simpleRep.prefix + g1Str + simpleRep.mid + g2Str + simpleRep.suffix : simpleRep.prefix + g1Str + simpleRep.mid + g2Str;
|
|
1553
1634
|
return out ? out + expanded2 : expanded2;
|
|
1554
1635
|
}
|
|
1555
|
-
const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start :
|
|
1556
|
-
const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End :
|
|
1636
|
+
const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : offsets[simpleRep.group * 2];
|
|
1637
|
+
const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : offsets[simpleRep.group * 2 + 1];
|
|
1557
1638
|
const gLen = gStart >= 0 && gEnd > gStart ? gEnd - gStart : 0;
|
|
1558
1639
|
const addedLen = simpleRep.prefix.length + gLen + simpleRep.suffix.length;
|
|
1559
1640
|
budget.step(simpleRep.stepsPerExpansion + gLen);
|
|
@@ -1605,8 +1686,8 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
|
|
|
1605
1686
|
if (g === 0) piece = matchEnd > matchStart ? text.slice(matchStart, matchEnd) : "";
|
|
1606
1687
|
else if (g === 1 && group1Start >= 0) piece = group1End > group1Start ? text.slice(group1Start, group1End) : "";
|
|
1607
1688
|
else if (g > 1) {
|
|
1608
|
-
const gs =
|
|
1609
|
-
const ge =
|
|
1689
|
+
const gs = offsets[g * 2];
|
|
1690
|
+
const ge = offsets[g * 2 + 1];
|
|
1610
1691
|
if (gs >= 0 && ge > gs) piece = text.slice(gs, ge);
|
|
1611
1692
|
}
|
|
1612
1693
|
} else {
|
|
@@ -1769,34 +1850,9 @@ async function substitute(text, pattern, replacement, budget, global, occurrence
|
|
|
1769
1850
|
result.clear();
|
|
1770
1851
|
}
|
|
1771
1852
|
}
|
|
1772
|
-
var PAIR_OFFSETS_1 = new Int32Array(
|
|
1773
|
-
var PAIR_OFFSETS_2 = new Int32Array(
|
|
1853
|
+
var PAIR_OFFSETS_1 = new Int32Array(20);
|
|
1854
|
+
var PAIR_OFFSETS_2 = new Int32Array(20);
|
|
1774
1855
|
var SYNC_PAIR_RESULT = { text: "", substituted: false };
|
|
1775
|
-
function expandSimpleFromOffsets(simpleRep, text, matchStart, matchEnd, group1Start, group1End, budget) {
|
|
1776
|
-
if (simpleRep.kind === "literal") {
|
|
1777
|
-
budget.step(simpleRep.stepsPerExpansion);
|
|
1778
|
-
return simpleRep.prefix;
|
|
1779
|
-
}
|
|
1780
|
-
const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : -1;
|
|
1781
|
-
const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : -1;
|
|
1782
|
-
const gLen = gStart >= 0 && gEnd > gStart ? gEnd - gStart : 0;
|
|
1783
|
-
budget.step(simpleRep.stepsPerExpansion + gLen);
|
|
1784
|
-
if (gLen === 1) {
|
|
1785
|
-
const c0 = text.charCodeAt(gStart) - 48;
|
|
1786
|
-
if (c0 >= 0 && c0 <= 9) {
|
|
1787
|
-
return simpleRep.smallInts[c0] ??= simpleRep.suffix ? simpleRep.prefix + String.fromCharCode(c0 + 48) + simpleRep.suffix : simpleRep.prefix + String.fromCharCode(c0 + 48);
|
|
1788
|
-
}
|
|
1789
|
-
} else if (gLen === 2) {
|
|
1790
|
-
const c0 = text.charCodeAt(gStart) - 48;
|
|
1791
|
-
const c1 = text.charCodeAt(gStart + 1) - 48;
|
|
1792
|
-
if (c0 >= 1 && c0 <= 9 && c1 >= 0 && c1 <= 9) {
|
|
1793
|
-
const num = c0 * 10 + c1;
|
|
1794
|
-
return simpleRep.smallInts[num] ??= simpleRep.suffix ? simpleRep.prefix + String(num) + simpleRep.suffix : simpleRep.prefix + String(num);
|
|
1795
|
-
}
|
|
1796
|
-
}
|
|
1797
|
-
const gStr = gLen > 0 ? text.slice(gStart, gEnd) : "";
|
|
1798
|
-
return simpleRep.suffix ? simpleRep.prefix + gStr + simpleRep.suffix : simpleRep.prefix + gStr;
|
|
1799
|
-
}
|
|
1800
1856
|
function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, global2, occ2, budget) {
|
|
1801
1857
|
if (occ1 !== 1 || occ2 !== 1 || text.length > 4096) return void 0;
|
|
1802
1858
|
if (!pat1.canFindSync() || !pat2.canFindSync()) return void 0;
|
|
@@ -1815,7 +1871,7 @@ function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, glob
|
|
|
1815
1871
|
const e1 = PAIR_OFFSETS_1[1];
|
|
1816
1872
|
if (e1 === 0) return void 0;
|
|
1817
1873
|
matched1 = true;
|
|
1818
|
-
exp1 =
|
|
1874
|
+
exp1 = appendReplacementFromOffsetsSync("", rep1, text, 0, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
|
|
1819
1875
|
let commonSuffix = 0;
|
|
1820
1876
|
const maxSuffix = Math.min(exp1.length, e1);
|
|
1821
1877
|
while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === text.charCodeAt(e1 - 1 - commonSuffix)) {
|
|
@@ -1852,7 +1908,7 @@ function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, glob
|
|
|
1852
1908
|
budget.step();
|
|
1853
1909
|
if (pat2.findSyncFastInto(text, budget, e2, PAIR_OFFSETS_1)) return void 0;
|
|
1854
1910
|
}
|
|
1855
|
-
const exp2 =
|
|
1911
|
+
const exp2 = appendReplacementFromOffsetsSync("", rep2, text, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
|
|
1856
1912
|
const midLen = s2 - effectiveE1;
|
|
1857
1913
|
const tailLen = text.length - e2;
|
|
1858
1914
|
const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
|
|
@@ -1882,7 +1938,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
|
|
|
1882
1938
|
if (pat1.findSyncFastInto(text, budget, lineStart, PAIR_OFFSETS_1, lineEnd, lineStart)) {
|
|
1883
1939
|
const e1 = PAIR_OFFSETS_1[1];
|
|
1884
1940
|
if (e1 === lineStart) return -1;
|
|
1885
|
-
exp1 =
|
|
1941
|
+
exp1 = appendReplacementFromOffsetsSync("", rep1, text, lineStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
|
|
1886
1942
|
let commonSuffix = 0;
|
|
1887
1943
|
const maxSuffix = Math.min(exp1.length, e1 - lineStart);
|
|
1888
1944
|
while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === text.charCodeAt(e1 - 1 - commonSuffix)) {
|
|
@@ -1916,7 +1972,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
|
|
|
1916
1972
|
budget.step();
|
|
1917
1973
|
if (pat2.findSyncFastInto(text, budget, e2, PAIR_OFFSETS_1, lineEnd, lineStart)) return -1;
|
|
1918
1974
|
}
|
|
1919
|
-
const exp2 =
|
|
1975
|
+
const exp2 = appendReplacementFromOffsetsSync("", rep2, text, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
|
|
1920
1976
|
const midLen = s2 - effectiveE1;
|
|
1921
1977
|
const tailLen = lineEnd - e2;
|
|
1922
1978
|
const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
|
|
@@ -1931,35 +1987,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
|
|
|
1931
1987
|
outBuf[pos++] = sepCode;
|
|
1932
1988
|
return pos;
|
|
1933
1989
|
}
|
|
1934
|
-
var cachedPairOutBuf = new Uint8Array(65536);
|
|
1935
|
-
var cachedPairOutView = cachedPairOutBuf.subarray(0, 0);
|
|
1936
|
-
var lastPairBatchText = "";
|
|
1937
|
-
var lastPairBatchEnds;
|
|
1938
|
-
var lastPairEndsLen = -1;
|
|
1939
|
-
var lastPairPat1;
|
|
1940
|
-
var lastPairRep1 = "";
|
|
1941
|
-
var lastPairG1 = false;
|
|
1942
|
-
var lastPairPat2;
|
|
1943
|
-
var lastPairRep2 = "";
|
|
1944
|
-
var lastPairG2 = false;
|
|
1945
|
-
var lastPairSepCode = -1;
|
|
1946
|
-
var lastPairMaxLine = 0;
|
|
1947
|
-
var lastPairStepsCharged = 0;
|
|
1948
|
-
var lastPairOutPos = -1;
|
|
1949
1990
|
function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1, rep1, global1, occ1, pat2, rep2, global2, occ2, budget, outBuf, sepCode, maxOutLen) {
|
|
1950
|
-
if (lastPairOutPos >= 0 && batchText === lastPairBatchText && batchEnds === lastPairBatchEnds && endsLen === lastPairEndsLen && pat1 === lastPairPat1 && rep1 === lastPairRep1 && global1 === lastPairG1 && pat2 === lastPairPat2 && rep2 === lastPairRep2 && global2 === lastPairG2 && sepCode === lastPairSepCode && occ1 === 1 && occ2 === 1 && lastPairMaxLine <= budget.maxBufferBytes && lastPairOutPos <= maxOutLen && (budget.options.maxSteps ?? Infinity) >= budget.stepsUsed + lastPairStepsCharged) {
|
|
1951
|
-
const pending = budget.checkpointSync ? budget.checkpointSync() : void 0;
|
|
1952
|
-
if (pending) {
|
|
1953
|
-
pending.catch(() => {
|
|
1954
|
-
});
|
|
1955
|
-
return -1;
|
|
1956
|
-
}
|
|
1957
|
-
budget.step(lastPairStepsCharged);
|
|
1958
|
-
outBuf.set(cachedPairOutView, 0);
|
|
1959
|
-
return lastPairOutPos;
|
|
1960
|
-
}
|
|
1961
|
-
const initialSteps = budget.stepsUsed;
|
|
1962
|
-
let maxSeenLine = 0;
|
|
1963
1991
|
if (occ1 !== 1 || occ2 !== 1) return -1;
|
|
1964
1992
|
if (!pat1.canFindSync() || !pat2.canFindSync()) return -1;
|
|
1965
1993
|
const info1 = pat1.getFastPrefixInfo();
|
|
@@ -2017,7 +2045,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2017
2045
|
if (s2 < 0) {
|
|
2018
2046
|
const restLen = lEnd - effectiveE1;
|
|
2019
2047
|
const outLen = exp1Len + restLen;
|
|
2020
|
-
if (outLen > maxSeenLine) maxSeenLine = outLen;
|
|
2021
2048
|
if (outLen > maxBuf) throw new ProgramError("text buffer limit exceeded");
|
|
2022
2049
|
if (outPos2 + outLen + 1 >= maxOutLen) return -2;
|
|
2023
2050
|
for (let i = 0; i < exp1Len; i++) outBuf[outPos2++] = r1Val.charCodeAt(i);
|
|
@@ -2036,7 +2063,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2036
2063
|
const midLen = s2 - effectiveE1;
|
|
2037
2064
|
const tailLen = lEnd - e2;
|
|
2038
2065
|
const totalLen = exp1Len + midLen + r2Len + tailLen;
|
|
2039
|
-
if (totalLen > maxSeenLine) maxSeenLine = totalLen;
|
|
2040
2066
|
if (totalLen > maxBuf) throw new ProgramError("text buffer limit exceeded");
|
|
2041
2067
|
if (outPos2 + totalLen + 1 >= maxOutLen) return -2;
|
|
2042
2068
|
for (let i = 0; i < exp1Len; i++) outBuf[outPos2++] = r1Val.charCodeAt(i);
|
|
@@ -2056,23 +2082,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2056
2082
|
}
|
|
2057
2083
|
lStart2 = lEnd + 1;
|
|
2058
2084
|
}
|
|
2059
|
-
if (outPos2 <= 65536) {
|
|
2060
|
-
lastPairBatchText = batchText;
|
|
2061
|
-
lastPairBatchEnds = batchEnds;
|
|
2062
|
-
lastPairEndsLen = endsLen;
|
|
2063
|
-
lastPairPat1 = pat1;
|
|
2064
|
-
lastPairRep1 = rep1;
|
|
2065
|
-
lastPairG1 = global1;
|
|
2066
|
-
lastPairPat2 = pat2;
|
|
2067
|
-
lastPairRep2 = rep2;
|
|
2068
|
-
lastPairG2 = global2;
|
|
2069
|
-
lastPairSepCode = sepCode;
|
|
2070
|
-
lastPairMaxLine = maxSeenLine;
|
|
2071
|
-
lastPairStepsCharged = budget.stepsUsed - initialSteps;
|
|
2072
|
-
lastPairOutPos = outPos2;
|
|
2073
|
-
cachedPairOutBuf.set(outBuf.subarray(0, outPos2));
|
|
2074
|
-
cachedPairOutView = cachedPairOutBuf.subarray(0, outPos2);
|
|
2075
|
-
}
|
|
2076
2085
|
return outPos2;
|
|
2077
2086
|
}
|
|
2078
2087
|
let outPos = 0;
|
|
@@ -2088,7 +2097,7 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2088
2097
|
if (pat1.findSyncFastInto(batchText, budget, lStart, PAIR_OFFSETS_1, lEnd, lStart)) {
|
|
2089
2098
|
const e1 = PAIR_OFFSETS_1[1];
|
|
2090
2099
|
if (e1 === lStart) return -1;
|
|
2091
|
-
exp1 =
|
|
2100
|
+
exp1 = appendReplacementFromOffsetsSync("", rep1, batchText, lStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
|
|
2092
2101
|
let commonSuffix = 0;
|
|
2093
2102
|
const maxSuffix = Math.min(exp1.length, e1 - lStart);
|
|
2094
2103
|
while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === batchText.charCodeAt(e1 - 1 - commonSuffix)) {
|
|
@@ -2119,7 +2128,7 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2119
2128
|
budget.step();
|
|
2120
2129
|
if (pat2.findSyncFastInto(batchText, budget, e2, PAIR_OFFSETS_1, lEnd, lStart)) return -1;
|
|
2121
2130
|
}
|
|
2122
|
-
const exp2 =
|
|
2131
|
+
const exp2 = appendReplacementFromOffsetsSync("", rep2, batchText, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
|
|
2123
2132
|
const midLen = s2 - effectiveE1;
|
|
2124
2133
|
const tailLen = lEnd - e2;
|
|
2125
2134
|
const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
|
|
@@ -2144,6 +2153,88 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
|
|
|
2144
2153
|
}
|
|
2145
2154
|
return outPos;
|
|
2146
2155
|
}
|
|
2156
|
+
var decodedByteSubjects = /* @__PURE__ */ new WeakMap();
|
|
2157
|
+
var BytePattern = class extends Pattern {
|
|
2158
|
+
unicode;
|
|
2159
|
+
constructor(...args) {
|
|
2160
|
+
super(...args);
|
|
2161
|
+
const [source, ...settings] = args;
|
|
2162
|
+
this.unicode = new Pattern(decodeByteText(source).text, ...settings);
|
|
2163
|
+
}
|
|
2164
|
+
usesUnicode(budget) {
|
|
2165
|
+
const owner = budget;
|
|
2166
|
+
if (owner.regexByteMode) return false;
|
|
2167
|
+
const env = owner.context?.env;
|
|
2168
|
+
const locale = env?.LC_ALL || env?.LC_CTYPE || env?.LANG;
|
|
2169
|
+
return locale !== "C" && locale !== "POSIX";
|
|
2170
|
+
}
|
|
2171
|
+
input(text, budget) {
|
|
2172
|
+
const key = budget.context ?? budget;
|
|
2173
|
+
const cached = decodedByteSubjects.get(key);
|
|
2174
|
+
if (cached?.source === text) {
|
|
2175
|
+
budget.step(0);
|
|
2176
|
+
if (cached.value.offsets && (text.length + 1) * 6 > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
|
|
2177
|
+
return cached.value;
|
|
2178
|
+
}
|
|
2179
|
+
const value = decodeByteText(text, budget);
|
|
2180
|
+
decodedByteSubjects.set(key, { source: text, value });
|
|
2181
|
+
return value;
|
|
2182
|
+
}
|
|
2183
|
+
byteMatch(match, decoded, budget) {
|
|
2184
|
+
if (!match || !decoded.offsets) return match;
|
|
2185
|
+
budget.step(match.groups.reduce((count, group) => count + (group?.length ?? 0), 0));
|
|
2186
|
+
return {
|
|
2187
|
+
start: decoded.offsets[match.start],
|
|
2188
|
+
end: decoded.offsets[match.end],
|
|
2189
|
+
groups: match.groups.map((group) => group === void 0 ? void 0 : encodeByteText(group)),
|
|
2190
|
+
...match.captureOffsets ? { captureOffsets: match.captureOffsets.map((offset) => offset === void 0 || offset < 0 ? offset : decoded.offsets[offset]) } : {}
|
|
2191
|
+
};
|
|
2192
|
+
}
|
|
2193
|
+
async prepare(budget) {
|
|
2194
|
+
if (this.usesUnicode(budget)) await this.unicode.prepare(budget);
|
|
2195
|
+
else await super.prepare(budget);
|
|
2196
|
+
}
|
|
2197
|
+
canFindSync() {
|
|
2198
|
+
return super.canFindSync() && this.unicode.canFindSync();
|
|
2199
|
+
}
|
|
2200
|
+
getFastPrefixInfo() {
|
|
2201
|
+
return void 0;
|
|
2202
|
+
}
|
|
2203
|
+
findSyncFastInto(text, budget, from, outOffsets, textEnd = text.length, textStart = 0) {
|
|
2204
|
+
if (!this.usesUnicode(budget)) return super.findSyncFastInto(text, budget, from, outOffsets, textEnd, textStart);
|
|
2205
|
+
const segment = textStart === 0 && textEnd === text.length ? text : text.slice(textStart, textEnd);
|
|
2206
|
+
const decoded = this.input(segment, budget);
|
|
2207
|
+
const found = this.unicode.findSyncFastInto(
|
|
2208
|
+
decoded.text,
|
|
2209
|
+
budget,
|
|
2210
|
+
byteTextPosition(decoded, from - textStart),
|
|
2211
|
+
outOffsets,
|
|
2212
|
+
decoded.text.length,
|
|
2213
|
+
0
|
|
2214
|
+
);
|
|
2215
|
+
if (found) {
|
|
2216
|
+
for (let i = 0; i < (this.groupCount + 1) * 2; i++)
|
|
2217
|
+
if (outOffsets[i] >= 0) outOffsets[i] = (decoded.offsets?.[outOffsets[i]] ?? outOffsets[i]) + textStart;
|
|
2218
|
+
}
|
|
2219
|
+
return found;
|
|
2220
|
+
}
|
|
2221
|
+
tryFindSync(text, budget, from = 0) {
|
|
2222
|
+
if (!this.usesUnicode(budget)) return super.tryFindSync(text, budget, from);
|
|
2223
|
+
const decoded = this.input(text, budget);
|
|
2224
|
+
const result = this.unicode.tryFindSync(decoded.text, budget, byteTextPosition(decoded, from));
|
|
2225
|
+
return result instanceof Promise ? result.then((match) => this.byteMatch(match, decoded, budget)) : this.byteMatch(result, decoded, budget);
|
|
2226
|
+
}
|
|
2227
|
+
async find(text, budget, from = 0, continuation = from) {
|
|
2228
|
+
if (!this.usesUnicode(budget)) return super.find(text, budget, from, continuation);
|
|
2229
|
+
const decoded = this.input(text, budget);
|
|
2230
|
+
return this.byteMatch(await this.unicode.find(
|
|
2231
|
+
decoded.text,
|
|
2232
|
+
budget,
|
|
2233
|
+
byteTextPosition(decoded, from),
|
|
2234
|
+
byteTextPosition(decoded, continuation)
|
|
2235
|
+
), decoded, budget);
|
|
2236
|
+
}
|
|
2237
|
+
};
|
|
2147
2238
|
|
|
2148
2239
|
export {
|
|
2149
2240
|
Pattern,
|
|
@@ -2151,5 +2242,6 @@ export {
|
|
|
2151
2242
|
substitute,
|
|
2152
2243
|
trySubstitutePairSync,
|
|
2153
2244
|
trySubstitutePairToBufferSync,
|
|
2154
|
-
trySubstitutePairBatchToBufferSync
|
|
2245
|
+
trySubstitutePairBatchToBufferSync,
|
|
2246
|
+
BytePattern
|
|
2155
2247
|
};
|