@poe-platform/safe-bash 0.1.798 → 0.1.800
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 +34 -18
- package/dist/image-ast/index.browser.js +1384 -23
- package/dist/image-ast/index.js +1384 -23
- package/dist/mp4-ast/types.d.ts +1 -0
- package/dist/office-package/zip.d.ts +2 -0
- package/dist/office-package/zip.js +1 -1
- package/dist/pdf-ast/index.js +1 -1
- package/dist/safe-bash/chunks/{chunk-IUTD5FH5.js → chunk-46UISJCK.js} +1 -6
- package/dist/safe-bash/chunks/chunk-4SEW2Q6H.js +26 -0
- package/dist/safe-bash/chunks/{chunk-AKC46AF6.js → chunk-7YSRXFEG.js} +7 -40
- package/dist/safe-bash/chunks/{chunk-KTGR4U57.js → chunk-BHJE5LPZ.js} +1 -2
- package/dist/safe-bash/chunks/{chunk-AMTCC256.js → chunk-HHW7MGS2.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-ZNAFMYIA.js → chunk-I7L3G3NX.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KMH2DF3I.js → chunk-JJSTTIEZ.js} +6 -1
- package/dist/safe-bash/chunks/{chunk-6IBTC4YL.js → chunk-JTLSUJ7V.js} +57 -20
- package/dist/safe-bash/chunks/chunk-K2VCOJ2B.js +111 -0
- package/dist/safe-bash/chunks/chunk-K4YMYFRJ.js +9802 -0
- package/dist/safe-bash/chunks/{chunk-CSNXID73.js → chunk-KW24TAIU.js} +446 -5543
- package/dist/safe-bash/chunks/{chunk-ENR3HB2B.js → chunk-NLAW7KDI.js} +0 -1
- package/dist/safe-bash/chunks/{chunk-B3DDEDH2.js → chunk-PPYM75Z3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-NX2SQVON.js → chunk-RKKRJ54E.js} +19 -7
- package/dist/safe-bash/chunks/{chunk-V3VEATEA.js → chunk-RMWLWH7Q.js} +870 -953
- package/dist/safe-bash/chunks/{chunk-JSVX4VIA.js → chunk-TFGRKY43.js} +2 -1
- package/dist/safe-bash/chunks/{chunk-T5KKDMYB.js → chunk-TYD7EVUJ.js} +6 -0
- package/dist/safe-bash/chunks/{csvkit-W2UEKH6P.js → csvkit-QGP3GAOB.js} +1 -1
- package/dist/safe-bash/chunks/{ffmpeg-42CGASMV.js → ffmpeg-JTVH26MK.js} +1 -1
- package/dist/safe-bash/chunks/{gh-26GYLH6D.js → gh-I7QX7N5C.js} +1 -1
- package/dist/safe-bash/chunks/{git-YREKMUVD.js → git-MA7NKYVP.js} +1 -1
- package/dist/safe-bash/chunks/{imagemagick-3YIX4XO2.js → imagemagick-Y4NPWX2Q.js} +1 -1
- package/dist/safe-bash/chunks/{implementation-E3YMKU3Z.js → implementation-BWDKOVQJ.js} +1 -1
- package/dist/safe-bash/chunks/mmdc-44PELHDG.js +118 -0
- package/dist/safe-bash/chunks/{pdfimages-UE2UISP2.js → pdfimages-635TRW4Q.js} +1 -1
- package/dist/safe-bash/chunks/{pdfinfo-RGARKLI5.js → pdfinfo-FSDAA2KY.js} +3 -11
- package/dist/safe-bash/chunks/{pdftk-JY3WVCCC.js → pdftk-GQ5UH3VG.js} +1 -1
- package/dist/safe-bash/chunks/{pdftoppm-GPD3BMPY.js → pdftoppm-YTXQCAYT.js} +1 -1
- package/dist/safe-bash/chunks/{pdftotext-K7GQ2QJZ.js → pdftotext-CVA2G7FY.js} +1 -1
- package/dist/safe-bash/chunks/{qpdf-F4U7WUSU.js → qpdf-HZMIFG4A.js} +1 -1
- package/dist/safe-bash/chunks/{sips-RWENS7X5.js → sips-E7UBDP33.js} +1 -1
- package/dist/safe-bash/chunks/{soffice-IT6W2C5F.js → soffice-ELASUWUK.js} +1 -1
- package/dist/safe-bash/chunks/{wkhtmltopdf-JYNDAHIZ.js → wkhtmltopdf-EPO6YCMG.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-2FGJYFWZ.js +44 -0
- package/dist/safe-bash/command-chunks/chunk-2H4JTFIL.js +53 -0
- package/dist/safe-bash/command-chunks/{chunk-THS4YAKG.js → chunk-2QHG43WJ.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-364TMWBT.js +946 -0
- package/dist/safe-bash/command-chunks/{chunk-JEPY4UY4.js → chunk-3DT2YOGW.js} +11 -6
- package/dist/safe-bash/command-chunks/chunk-3E2OIS2J.js +7037 -0
- package/dist/safe-bash/command-chunks/{chunk-AIRGA2SU.js → chunk-3HXDA5PT.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-3LSOYLNV.js +1091 -0
- package/dist/safe-bash/command-chunks/{chunk-OAJUAAWH.js → chunk-464RVBGB.js} +3 -3
- package/dist/safe-bash/command-chunks/chunk-4B7Y7S6E.js +61 -0
- package/dist/safe-bash/command-chunks/{chunk-HRLIAMXC.js → chunk-4C6QI5BQ.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-25BLI6S6.js → chunk-4Y3WVMK4.js} +1 -14
- package/dist/safe-bash/command-chunks/chunk-4ZHMW6F5.js +104 -0
- package/dist/safe-bash/command-chunks/{chunk-YMQKVEIF.js → chunk-52PCQXD2.js} +2 -13
- package/dist/safe-bash/command-chunks/{chunk-SSBFTMVI.js → chunk-53P53XFM.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ZCKDQGKY.js → chunk-5HDSFHGW.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-5LSGEIZY.js +379 -0
- package/dist/safe-bash/command-chunks/{chunk-MKQVQMXO.js → chunk-5LU4UCBR.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-5T7CRJHW.js +560 -0
- package/dist/safe-bash/command-chunks/chunk-5TBUOBDE.js +346 -0
- package/dist/safe-bash/command-chunks/{chunk-AUAF5YBT.js → chunk-5WPI42ZW.js} +0 -7
- package/dist/safe-bash/command-chunks/chunk-5XY4DTNG.js +34 -0
- package/dist/safe-bash/command-chunks/chunk-5ZMZ573Q.js +140 -0
- package/dist/safe-bash/command-chunks/{chunk-2Q7UQ7R4.js → chunk-67IQF5GC.js} +200 -66
- package/dist/safe-bash/command-chunks/chunk-67QKREJK.js +347 -0
- package/dist/safe-bash/command-chunks/chunk-6EPHJGGF.js +23 -0
- package/dist/safe-bash/command-chunks/chunk-6F4XCVON.js +266 -0
- package/dist/safe-bash/command-chunks/{chunk-ESMCX3YV.js → chunk-6HMX4CQS.js} +669 -130
- package/dist/safe-bash/command-chunks/{chunk-RECJB2BO.js → chunk-7BS66BXN.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GRWOVSFK.js → chunk-7D7JRRML.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-7K6JYKPJ.js +422 -0
- package/dist/safe-bash/command-chunks/{chunk-E6IYUYVA.js → chunk-7L24L4UO.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-7N2LI2KO.js +206 -0
- package/dist/safe-bash/command-chunks/chunk-7RGB363W.js +362 -0
- package/dist/safe-bash/command-chunks/{chunk-HBXQWTJR.js → chunk-A5ZAV6DO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LW34AKDM.js → chunk-AB4MXHVS.js} +4 -14
- package/dist/safe-bash/command-chunks/{pptx-GBPNWNEP-7EQEVXV5.js → chunk-AI5JAXQF.js} +34820 -18029
- package/dist/safe-bash/command-chunks/chunk-AMO3THU4.js +105 -0
- package/dist/safe-bash/command-chunks/{chunk-EELNLEEP.js → chunk-AXK3H4PX.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-Y55OCH37.js → chunk-AYUTO323.js} +3 -10
- package/dist/safe-bash/command-chunks/{chunk-DY36FDDC.js → chunk-B5TAOCKD.js} +6 -6
- package/dist/safe-bash/command-chunks/chunk-BAGCY35S.js +231 -0
- package/dist/safe-bash/command-chunks/chunk-BAXU7B5Z.js +101 -0
- package/dist/safe-bash/command-chunks/{chunk-YB6KVU6H.js → chunk-BDBVVZY6.js} +4 -14
- package/dist/safe-bash/command-chunks/{chunk-2HOESGFJ.js → chunk-BKCNF5U3.js} +68 -7
- package/dist/safe-bash/command-chunks/chunk-BNOU5YQS.js +182 -0
- package/dist/safe-bash/command-chunks/{chunk-QAN7KKDZ.js → chunk-BZDDAPSV.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-HZCPWYWA.js → chunk-BZPAWTUL.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-C7I25AAL.js +25 -0
- package/dist/safe-bash/command-chunks/chunk-CKXV2CLD.js +65 -0
- package/dist/safe-bash/command-chunks/{chunk-RT2J5ATD.js → chunk-CPPGTBZF.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-CQ5YGOGB.js +150 -0
- package/dist/safe-bash/command-chunks/{chunk-5UA3BEGA.js → chunk-D4OP2BR3.js} +72 -24
- package/dist/safe-bash/command-chunks/chunk-DB453IE6.js +122 -0
- package/dist/safe-bash/command-chunks/chunk-DOKKNRRM.js +87 -0
- package/dist/safe-bash/command-chunks/{chunk-2PX5B7T5.js → chunk-DQAVUDDX.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-DT7BCTWY.js +249 -0
- package/dist/safe-bash/command-chunks/chunk-E2LB7FRT.js +42 -0
- package/dist/safe-bash/command-chunks/chunk-EK6YNAXT.js +343 -0
- package/dist/safe-bash/command-chunks/chunk-EQ4HV54N.js +22 -0
- package/dist/safe-bash/command-chunks/chunk-ERYJLO6G.js +293 -0
- package/dist/safe-bash/command-chunks/{chunk-4ONEXMD3.js → chunk-EUSPTFAX.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-FKKB5X5V.js +97 -0
- package/dist/safe-bash/command-chunks/chunk-FXELCPFX.js +195 -0
- package/dist/safe-bash/command-chunks/{chunk-HLMUPSM6.js → chunk-GI4CJED2.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-CU5RLO62.js → chunk-GLOZX57Y.js} +92 -18
- package/dist/safe-bash/command-chunks/chunk-GMIHJYDG.js +331 -0
- package/dist/safe-bash/command-chunks/chunk-H622NS6Z.js +11 -0
- package/dist/safe-bash/command-chunks/{chunk-QGVOS3EY.js → chunk-HFII3QYO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5EWTQJSC.js → chunk-HHP343KT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WBJKOTSP.js → chunk-HMOZ6XVJ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AVSPNLWV.js → chunk-I237SNW5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4MS5WZJC.js → chunk-IKS2YXZQ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-CZVBYCB5.js → chunk-IL53SJL4.js} +2 -12
- package/dist/safe-bash/command-chunks/{chunk-VZ64JXHC.js → chunk-IR2BY7EL.js} +21 -6
- package/dist/safe-bash/command-chunks/chunk-IYPAQ7PH.js +42 -0
- package/dist/safe-bash/command-chunks/chunk-JN7WIP6S.js +94 -0
- package/dist/safe-bash/command-chunks/chunk-JNZ3CVAE.js +147 -0
- package/dist/safe-bash/command-chunks/{chunk-HLBX5IRS.js → chunk-JQ74HC37.js} +24 -32
- package/dist/safe-bash/command-chunks/{chunk-2LLZBNLL.js → chunk-JWE54GHQ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QLDIP3OP.js → chunk-JZSNU2MY.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-KFVV7ZJO.js +216 -0
- package/dist/safe-bash/command-chunks/{chunk-G4PNVO6Z.js → chunk-KP7AO66M.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-KWESKQHR.js +25 -0
- package/dist/safe-bash/command-chunks/chunk-KYSPGS33.js +41 -0
- package/dist/safe-bash/command-chunks/{chunk-C7IHMJEW.js → chunk-KZC5UWFF.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-L6DVEBW3.js +553 -0
- package/dist/safe-bash/command-chunks/chunk-LC2MFKT4.js +2489 -0
- package/dist/safe-bash/command-chunks/chunk-LE5LZNHE.js +204 -0
- package/dist/safe-bash/command-chunks/chunk-MDH5T4OS.js +41 -0
- package/dist/safe-bash/command-chunks/chunk-MM6HU6CX.js +20 -0
- package/dist/safe-bash/command-chunks/{chunk-MYJAZ3U2.js → chunk-MPL2466A.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-3TANKHBX.js → chunk-MRW5HD2D.js} +1 -6
- package/dist/safe-bash/command-chunks/{chunk-3WKA57FA.js → chunk-N5FGCXQJ.js} +1 -9
- package/dist/safe-bash/command-chunks/{chunk-VZHRZMS7.js → chunk-NAY27PXB.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-NCD7PEWH.js +298 -0
- package/dist/safe-bash/command-chunks/chunk-NFGI5IGF.js +266 -0
- package/dist/safe-bash/command-chunks/{chunk-U3ONEICA.js → chunk-NXEQ3ESQ.js} +7 -11
- package/dist/safe-bash/command-chunks/{chunk-3VGGYEDH.js → chunk-ORYGZYKW.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-OLQG7ZCN.js → chunk-PEF7K3UQ.js} +136 -75
- package/dist/safe-bash/command-chunks/{chunk-HVI6ALJF.js → chunk-PFAADCB5.js} +2 -4
- package/dist/safe-bash/command-chunks/chunk-PII4YEZW.js +123 -0
- package/dist/safe-bash/command-chunks/{chunk-JG5W2ENK.js → chunk-PJJUYO3R.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-VKQCNX32.js → chunk-PTT3I223.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-Q3DII3Q7.js +174 -0
- package/dist/safe-bash/command-chunks/chunk-Q3EWDEUQ.js +185 -0
- package/dist/safe-bash/command-chunks/{chunk-JXU2N6GN.js → chunk-Q7Q5GM5S.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-Z5TFSVNU.js → chunk-QAKKSRNV.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2FUAW6GO.js → chunk-QI7LGHJJ.js} +58 -9
- package/dist/safe-bash/command-chunks/{chunk-6BETHLXZ.js → chunk-QJAFJP2G.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-QNIMV57G.js +63 -0
- package/dist/safe-bash/command-chunks/{chunk-KAHH4XOU.js → chunk-QNXI2UP6.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AC6X7Q4I.js → chunk-QP4R6GLA.js} +6 -9
- package/dist/safe-bash/command-chunks/{chunk-LPORMIZS.js → chunk-QWIDNAAK.js} +8 -8
- package/dist/safe-bash/command-chunks/chunk-RVLO4DYT.js +35 -0
- package/dist/safe-bash/command-chunks/{chunk-X2YQLGKS.js → chunk-SAMH7SQE.js} +4 -4
- package/dist/safe-bash/command-chunks/chunk-SEM36PG5.js +11 -0
- package/dist/safe-bash/command-chunks/chunk-STC3LEWJ.js +634 -0
- package/dist/safe-bash/command-chunks/chunk-SVULUDOP.js +331 -0
- package/dist/safe-bash/command-chunks/{chunk-WYOL5JNT.js → chunk-SX2X3IH4.js} +4 -4
- package/dist/safe-bash/command-chunks/chunk-TEVJJPTC.js +1392 -0
- package/dist/safe-bash/command-chunks/{chunk-6N5V4VBN.js → chunk-TYCGMRLM.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-UG7SMZFF.js +178 -0
- package/dist/safe-bash/command-chunks/{chunk-PRCT7FKJ.js → chunk-UMDIOL3O.js} +3 -3
- package/dist/safe-bash/command-chunks/chunk-UXSR5BZH.js +136 -0
- package/dist/safe-bash/command-chunks/chunk-V6BEDRMQ.js +112 -0
- package/dist/safe-bash/command-chunks/chunk-V6MSPQLA.js +362 -0
- package/dist/safe-bash/command-chunks/{chunk-J4PEQWSF.js → chunk-VGG2DL5Q.js} +0 -1
- package/dist/safe-bash/command-chunks/{chunk-SG424QWS.js → chunk-VL67NWNS.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-WB5SVIG7.js +1034 -0
- package/dist/safe-bash/command-chunks/{src-UJOWAS2S.js → chunk-WD3ERGRY.js} +77 -277
- package/dist/safe-bash/command-chunks/{chunk-YFSDDFGV.js → chunk-WH627NJL.js} +446 -53
- package/dist/safe-bash/command-chunks/chunk-WNE7FPVR.js +236 -0
- package/dist/safe-bash/command-chunks/{chunk-UKS2XJZI.js → chunk-WPYIOKE3.js} +4 -4
- package/dist/safe-bash/command-chunks/chunk-XETLEHZP.js +1227 -0
- package/dist/safe-bash/command-chunks/chunk-XIIBTGC5.js +580 -0
- package/dist/safe-bash/command-chunks/chunk-XJXU3VVH.js +737 -0
- package/dist/safe-bash/command-chunks/{chunk-JCVXAX2G.js → chunk-XWZBMJ5B.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-Y5INTD6S.js +220 -0
- package/dist/safe-bash/command-chunks/{chunk-23XLM73P.js → chunk-YEOPI5SK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-PPOIPMY4.js → chunk-YGC6OS5O.js} +3 -56
- package/dist/safe-bash/command-chunks/chunk-YJDV76GL.js +262 -0
- package/dist/safe-bash/command-chunks/chunk-YOF7R4OY.js +80 -0
- package/dist/safe-bash/command-chunks/chunk-Z7RVSD5K.js +594 -0
- package/dist/safe-bash/command-chunks/chunk-ZHUWOUWB.js +618 -0
- package/dist/safe-bash/command-chunks/{chunk-OGUMMTTD.js → chunk-ZJBR5Q5I.js} +4 -4
- package/dist/safe-bash/command-chunks/{model-store-L35QTZMJ.js → model-store-WPKMRPV4.js} +2 -2
- package/dist/safe-bash/command-chunks/pptx-7G52EJ6L-4JACH5FB.js +625 -0
- package/dist/safe-bash/command-chunks/python-worker-source-TYOFJMCW.js +4 -0
- package/dist/safe-bash/command-chunks/src-ICMQISAA.js +501 -0
- package/dist/safe-bash/commands/archive/create.d.ts +1 -17
- package/dist/safe-bash/commands/archive/create.js +1 -252
- package/dist/safe-bash/commands/archive/extract.d.ts +1 -11
- package/dist/safe-bash/commands/archive/extract.js +1 -640
- package/dist/safe-bash/commands/archive/format.d.ts +1 -32
- package/dist/safe-bash/commands/archive/format.js +1 -225
- package/dist/safe-bash/commands/archive/index.d.ts +5 -10
- package/dist/safe-bash/commands/archive/index.js +6 -931
- package/dist/safe-bash/commands/archive/listing.d.ts +1 -2
- package/dist/safe-bash/commands/archive/listing.js +1 -21
- package/dist/safe-bash/commands/archive/modes.d.ts +1 -5
- package/dist/safe-bash/commands/archive/modes.js +1 -182
- package/dist/safe-bash/commands/archive/options.d.ts +1 -53
- package/dist/safe-bash/commands/archive/options.js +1 -462
- package/dist/safe-bash/commands/archive/stream.d.ts +1 -22
- package/dist/safe-bash/commands/archive/stream.js +1 -188
- package/dist/safe-bash/commands/archive/transform.d.ts +1 -16
- package/dist/safe-bash/commands/archive/transform.js +1 -85
- package/dist/safe-bash/commands/archive/unzip/arguments.d.ts +1 -53
- package/dist/safe-bash/commands/archive/unzip/arguments.js +1 -322
- package/dist/safe-bash/commands/archive/unzip/safety.d.ts +1 -32
- package/dist/safe-bash/commands/archive/unzip/safety.js +1 -295
- package/dist/safe-bash/commands/archive/unzip.d.ts +1 -3
- package/dist/safe-bash/commands/archive/unzip.js +1 -398
- package/dist/safe-bash/commands/archive/zip/aes.d.ts +1 -17
- package/dist/safe-bash/commands/archive/zip/aes.js +1 -156
- package/dist/safe-bash/commands/archive/zip/comments.d.ts +1 -17
- package/dist/safe-bash/commands/archive/zip/comments.js +1 -83
- package/dist/safe-bash/commands/archive/zip/crc.d.ts +1 -1
- package/dist/safe-bash/commands/archive/zip/crc.js +1 -1
- package/dist/safe-bash/commands/archive/zip/crypto.d.ts +1 -19
- package/dist/safe-bash/commands/archive/zip/crypto.js +1 -118
- package/dist/safe-bash/commands/archive/zip/dates.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/dates.js +1 -66
- package/dist/safe-bash/commands/archive/zip/environment.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/environment.js +1 -62
- package/dist/safe-bash/commands/archive/zip/grow.d.ts +1 -3
- package/dist/safe-bash/commands/archive/zip/grow.js +1 -2
- package/dist/safe-bash/commands/archive/zip/help.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/help.js +1 -182
- package/dist/safe-bash/commands/archive/zip/line-endings.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/line-endings.js +1 -194
- package/dist/safe-bash/commands/archive/zip/log.d.ts +1 -22
- package/dist/safe-bash/commands/archive/zip/log.js +1 -159
- package/dist/safe-bash/commands/archive/zip/lzma.d.ts +1 -9
- package/dist/safe-bash/commands/archive/zip/lzma.js +1 -40
- package/dist/safe-bash/commands/archive/zip/move.d.ts +1 -11
- package/dist/safe-bash/commands/archive/zip/move.js +1 -59
- package/dist/safe-bash/commands/archive/zip/names.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/names.js +1 -33
- package/dist/safe-bash/commands/archive/zip/options.d.ts +1 -13
- package/dist/safe-bash/commands/archive/zip/options.js +1 -124
- package/dist/safe-bash/commands/archive/zip/repair.d.ts +1 -10
- package/dist/safe-bash/commands/archive/zip/repair.js +1 -392
- package/dist/safe-bash/commands/archive/zip/safety.d.ts +1 -54
- package/dist/safe-bash/commands/archive/zip/safety.js +1 -360
- package/dist/safe-bash/commands/archive/zip/sfx.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/sfx.js +1 -52
- package/dist/safe-bash/commands/archive/zip/test-command.d.ts +1 -5
- package/dist/safe-bash/commands/archive/zip/test-command.js +1 -101
- package/dist/safe-bash/commands/archive/zip/volumes.d.ts +1 -21
- package/dist/safe-bash/commands/archive/zip/volumes.js +1 -281
- package/dist/safe-bash/commands/archive/zip/zip64.d.ts +1 -30
- package/dist/safe-bash/commands/archive/zip/zip64.js +1 -227
- package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -68
- package/dist/safe-bash/commands/archive/zip-format.js +1 -1075
- package/dist/safe-bash/commands/archive/zip.d.ts +1 -3
- package/dist/safe-bash/commands/archive/zip.js +1 -1523
- package/dist/safe-bash/commands/awk/index.d.ts +2 -0
- package/dist/safe-bash/commands/awk/index.js +2 -0
- package/dist/safe-bash/commands/bytes/compression/index.js +2 -1
- package/dist/safe-bash/commands/curl/index.d.ts +2 -0
- package/dist/safe-bash/commands/curl/index.js +2 -0
- package/dist/safe-bash/commands/diff/index.d.ts +2 -0
- package/dist/safe-bash/commands/diff/index.js +2 -0
- package/dist/safe-bash/commands/diff-patch/diff-format.d.ts +1 -10
- package/dist/safe-bash/commands/diff-patch/diff-format.js +1 -237
- package/dist/safe-bash/commands/diff-patch/diff-options.d.ts +1 -38
- package/dist/safe-bash/commands/diff-patch/diff-options.js +1 -261
- package/dist/safe-bash/commands/diff-patch/diff-output.d.ts +1 -20
- package/dist/safe-bash/commands/diff-patch/diff-output.js +1 -290
- package/dist/safe-bash/commands/diff-patch/diff.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/diff.js +1 -656
- package/dist/safe-bash/commands/diff-patch/index.d.ts +4 -5
- package/dist/safe-bash/commands/diff-patch/index.js +8 -333
- package/dist/safe-bash/commands/diff-patch/patch-envelope.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/patch-envelope.js +1 -63
- package/dist/safe-bash/commands/diff-patch/patch-formats.d.ts +1 -7
- package/dist/safe-bash/commands/diff-patch/patch-formats.js +1 -264
- package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.d.ts +1 -41
- package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.js +1 -263
- package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.d.ts +1 -3
- package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.js +1 -100
- package/dist/safe-bash/commands/diff-patch/patch-path.d.ts +1 -3
- package/dist/safe-bash/commands/diff-patch/patch-path.js +1 -91
- package/dist/safe-bash/commands/diff-patch/patch-publication.d.ts +1 -13
- package/dist/safe-bash/commands/diff-patch/patch-publication.js +1 -107
- package/dist/safe-bash/commands/diff-patch/patch.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/patch.js +1 -653
- package/dist/safe-bash/commands/diff-patch/shared.d.ts +1 -55
- package/dist/safe-bash/commands/diff-patch/shared.js +1 -276
- package/dist/safe-bash/commands/diff-patch/unified.d.ts +1 -52
- package/dist/safe-bash/commands/diff-patch/unified.js +1 -385
- package/dist/safe-bash/commands/directory-admission.d.ts +1 -3
- package/dist/safe-bash/commands/directory-admission.js +1 -26
- package/dist/safe-bash/commands/find/index.d.ts +2 -0
- package/dist/safe-bash/commands/find/index.js +2 -0
- package/dist/safe-bash/commands/find-format.d.ts +1 -20
- package/dist/safe-bash/commands/find-format.js +1 -161
- package/dist/safe-bash/commands/find.d.ts +2 -18
- package/dist/safe-bash/commands/find.js +2 -1236
- package/dist/safe-bash/commands/gzip/index.d.ts +2 -0
- package/dist/safe-bash/commands/gzip/index.js +2 -0
- package/dist/safe-bash/commands/line-endings/index.browser.js +1 -1
- package/dist/safe-bash/commands/line-endings/index.d.ts +1 -1
- package/dist/safe-bash/commands/line-endings/index.js +1 -262
- package/dist/safe-bash/commands/llm/index.browser.js +3 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +2 -2
- package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -4
- package/dist/safe-bash/commands/metadata/chmod.js +2 -63
- package/dist/safe-bash/commands/network/aggregate.d.ts +1 -4
- package/dist/safe-bash/commands/network/aggregate.js +1 -23
- package/dist/safe-bash/commands/network/args.d.ts +1 -68
- package/dist/safe-bash/commands/network/args.js +1 -321
- package/dist/safe-bash/commands/network/authorizer.d.ts +1 -6
- package/dist/safe-bash/commands/network/authorizer.js +1 -33
- package/dist/safe-bash/commands/network/body.d.ts +1 -9
- package/dist/safe-bash/commands/network/body.js +1 -393
- package/dist/safe-bash/commands/network/curl.d.ts +3 -13
- package/dist/safe-bash/commands/network/curl.js +6 -693
- package/dist/safe-bash/commands/network/deadline.d.ts +1 -2
- package/dist/safe-bash/commands/network/deadline.js +1 -14
- package/dist/safe-bash/commands/network/decode.d.ts +1 -2
- package/dist/safe-bash/commands/network/decode.js +1 -79
- package/dist/safe-bash/commands/network/fetch-transport.d.ts +1 -7
- package/dist/safe-bash/commands/network/fetch-transport.js +1 -94
- package/dist/safe-bash/commands/network/form-content-type.d.ts +1 -5
- package/dist/safe-bash/commands/network/form-content-type.js +1 -63
- package/dist/safe-bash/commands/network/form-headers.d.ts +1 -2
- package/dist/safe-bash/commands/network/form-headers.js +1 -35
- package/dist/safe-bash/commands/network/glob.d.ts +1 -7
- package/dist/safe-bash/commands/network/glob.js +1 -134
- package/dist/safe-bash/commands/network/index.browser.js +2 -10
- package/dist/safe-bash/commands/network/input.d.ts +1 -5
- package/dist/safe-bash/commands/network/input.js +1 -276
- package/dist/safe-bash/commands/network/output.d.ts +1 -6
- package/dist/safe-bash/commands/network/output.js +1 -131
- package/dist/safe-bash/commands/network/private-address.d.ts +1 -1
- package/dist/safe-bash/commands/network/private-address.js +1 -44
- package/dist/safe-bash/commands/network/shared.d.ts +1 -14
- package/dist/safe-bash/commands/network/shared.js +1 -71
- package/dist/safe-bash/commands/network/types.d.ts +1 -37
- package/dist/safe-bash/commands/network/types.js +1 -31
- package/dist/safe-bash/commands/network/url.d.ts +1 -2
- package/dist/safe-bash/commands/network/url.js +1 -30
- package/dist/safe-bash/commands/network/wget.d.ts +3 -3
- package/dist/safe-bash/commands/network/wget.js +10 -331
- package/dist/safe-bash/commands/node/index.browser.js +4 -5
- package/dist/safe-bash/commands/node/index.d.ts +3 -3
- package/dist/safe-bash/commands/node/index.js +5 -0
- package/dist/safe-bash/commands/node/safejs.d.ts +3 -3
- package/dist/safe-bash/commands/node/safejs.js +6 -1
- package/dist/safe-bash/commands/node/types.d.ts +1 -1
- package/dist/safe-bash/commands/node/unconfigured.d.ts +3 -0
- package/dist/safe-bash/commands/node/unconfigured.js +10 -0
- package/dist/safe-bash/commands/op/index.browser.js +2 -2
- package/dist/safe-bash/commands/patch/index.d.ts +2 -0
- package/dist/safe-bash/commands/patch/index.js +2 -0
- package/dist/safe-bash/commands/pdfinfo/index.js +2 -1
- package/dist/safe-bash/commands/predicates.js +3 -4
- package/dist/safe-bash/commands/python/index.browser.js +5 -5
- package/dist/safe-bash/commands/python/llm-capability.d.ts +1 -0
- package/dist/safe-bash/commands/python/llm-capability.js +27 -7
- package/dist/safe-bash/commands/python/llm-module.js +11 -0
- package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
- package/dist/safe-bash/commands/python/manifest.js +9 -5
- package/dist/safe-bash/commands/python/provisioning.js +1 -1
- package/dist/safe-bash/commands/regex-execution/matching.js +1 -2
- package/dist/safe-bash/commands/regex-execution/public.browser.js +5 -5
- package/dist/safe-bash/commands/search/index.d.ts +1 -1
- package/dist/safe-bash/commands/search/index.js +1 -347
- package/dist/safe-bash/commands/search/portable.d.ts +2 -2
- package/dist/safe-bash/commands/search/portable.js +3 -2
- package/dist/safe-bash/commands/sed/index.d.ts +2 -0
- package/dist/safe-bash/commands/sed/index.js +2 -0
- package/dist/safe-bash/commands/tar/index.d.ts +2 -0
- package/dist/safe-bash/commands/tar/index.js +2 -0
- package/dist/safe-bash/commands/text-programs/awk-inspection.d.ts +1 -19
- package/dist/safe-bash/commands/text-programs/awk-inspection.js +1 -50
- package/dist/safe-bash/commands/text-programs/awk-pipes.d.ts +2 -0
- package/dist/safe-bash/commands/text-programs/awk-pipes.js +2 -0
- package/dist/safe-bash/commands/text-programs/awk-pretty.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/awk-pretty.js +1 -197
- package/dist/safe-bash/commands/text-programs/awk-quote.d.ts +1 -2
- package/dist/safe-bash/commands/text-programs/awk-quote.js +1 -15
- package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -42
- package/dist/safe-bash/commands/text-programs/awk-reader.js +1 -449
- package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -13
- package/dist/safe-bash/commands/text-programs/awk-retention.js +1 -51
- package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +1 -150
- package/dist/safe-bash/commands/text-programs/awk-runtime.js +1 -2627
- package/dist/safe-bash/commands/text-programs/awk-syntax.d.ts +1 -142
- package/dist/safe-bash/commands/text-programs/awk-syntax.js +1 -509
- package/dist/safe-bash/commands/text-programs/awk-values.d.ts +1 -32
- package/dist/safe-bash/commands/text-programs/awk-values.js +1 -386
- package/dist/safe-bash/commands/text-programs/awk.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/awk.js +1 -361
- package/dist/safe-bash/commands/text-programs/inplace.d.ts +1 -16
- package/dist/safe-bash/commands/text-programs/inplace.js +1 -155
- package/dist/safe-bash/commands/text-programs/sed.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/sed.js +1 -1647
- package/dist/safe-bash/commands/text.js +1 -25
- package/dist/safe-bash/commands/unzip/index.d.ts +2 -0
- package/dist/safe-bash/commands/unzip/index.js +2 -0
- package/dist/safe-bash/commands/wget/index.d.ts +2 -0
- package/dist/safe-bash/commands/wget/index.js +2 -0
- package/dist/safe-bash/commands/yq/index.browser.js +7 -2
- package/dist/safe-bash/commands/yq/index.d.ts +1 -6
- package/dist/safe-bash/commands/yq/index.js +1 -36
- package/dist/safe-bash/commands/zip/index.d.ts +2 -0
- package/dist/safe-bash/commands/zip/index.js +2 -0
- package/dist/safe-bash/core.browser.js +1 -1
- package/dist/safe-bash/core.d.ts +8 -1
- package/dist/safe-bash/core.js +7 -1
- package/dist/safe-bash/fs/s3/index.d.ts +2 -2
- package/dist/safe-bash/fs/s3/index.js +1 -1
- package/dist/safe-bash/full-core.browser.js +254 -223
- package/dist/safe-bash/jobs.browser.js +2 -2
- package/dist/safe-bash/lazy-mmdc.d.ts +6 -0
- package/dist/safe-bash/lazy-mmdc.js +23 -0
- package/dist/safe-bash/opt-in/commands/dd/index.js +4 -13
- package/dist/safe-bash/opt-in/commands/yq/mike.js +6 -13
- package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +1 -0
- package/dist/safe-bash/opt-in/commands/yq/native-work.js +19 -1
- package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +3 -21
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -27
- package/dist/safe-bash/optional-host.browser.js +8 -4
- package/dist/safe-bash/optional-host.d.ts +1 -1
- package/dist/safe-bash/optional-host.js +1 -1
- package/dist/safe-bash/playwright/ability-execution.js +3 -2
- package/dist/safe-bash/playwright/adapter.js +1 -1
- package/dist/safe-bash/playwright/controller.js +9 -8
- package/dist/safe-bash/playwright/modal-capabilities.js +2 -1
- package/dist/safe-bash/playwright/native-json-snapshot.js +4 -3
- package/dist/safe-bash/playwright/native-snapshot.js +5 -4
- package/dist/safe-bash/playwright/open-options.js +3 -3
- package/dist/safe-bash/playwright/resource-limit.d.ts +2 -0
- package/dist/safe-bash/playwright/resource-limit.js +4 -0
- package/dist/safe-bash/playwright/session-configuration.js +8 -3
- package/dist/safe-bash/playwright/snapshot.js +8 -7
- package/dist/safe-bash/playwright/standard-capabilities.js +5 -4
- package/dist/safe-bash/plugins/index.browser.js +14 -16
- package/dist/safe-bash/registry-entry.browser.js +14 -16
- package/dist/safe-bash/shell/arrays/bindings.d.ts +3 -5
- package/dist/safe-bash/shell/arrays/bindings.js +6 -2
- package/dist/safe-bash/shell/input.js +16 -14
- package/dist/safe-bash/shell/runtime.d.ts +3 -0
- package/dist/safe-bash/shell/runtime.js +316 -64
- package/dist/safe-bash/shell/types.d.ts +2 -0
- package/dist/safe-bash/shell/value-state.js +17 -2
- package/dist/safe-bash/shell/worker-limits.js +1 -0
- package/dist/safe-bash/shell-entry.browser.js +13 -15
- package/dist/safe-bash/trap.browser.d.ts +3 -0
- package/dist/safe-bash/trap.browser.js +14 -0
- package/dist/safe-bash/worker/host.js +1 -1
- package/dist/safe-bash-command-apply-patch/apply.js +2 -2
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-awk/LICENSE +21 -0
- package/dist/safe-bash-command-awk/awk-inspection.d.ts +19 -0
- package/dist/safe-bash-command-awk/awk-inspection.js +9 -0
- package/dist/safe-bash-command-awk/awk-pipes.d.ts +19 -0
- package/dist/safe-bash-command-awk/awk-pipes.js +8 -0
- package/dist/safe-bash-command-awk/awk-pretty.d.ts +3 -0
- package/dist/safe-bash-command-awk/awk-pretty.js +8 -0
- package/dist/safe-bash-command-awk/awk-quote.d.ts +2 -0
- package/dist/safe-bash-command-awk/awk-quote.js +7 -0
- package/dist/safe-bash-command-awk/awk-reader.d.ts +42 -0
- package/dist/safe-bash-command-awk/awk-reader.js +9 -0
- package/dist/safe-bash-command-awk/awk-retention.d.ts +13 -0
- package/dist/safe-bash-command-awk/awk-retention.js +7 -0
- package/dist/safe-bash-command-awk/awk-runtime.d.ts +151 -0
- package/dist/safe-bash-command-awk/awk-runtime.js +11 -0
- package/dist/safe-bash-command-awk/awk-syntax.d.ts +144 -0
- package/dist/safe-bash-command-awk/awk-syntax.js +14 -0
- package/dist/safe-bash-command-awk/awk-values.d.ts +32 -0
- package/dist/safe-bash-command-awk/awk-values.js +35 -0
- package/dist/safe-bash-command-awk/awk.d.ts +3 -0
- package/dist/safe-bash-command-awk/awk.js +16 -0
- package/dist/safe-bash-command-awk/index.d.ts +7 -0
- package/dist/safe-bash-command-awk/index.js +36 -0
- package/dist/safe-bash-command-bc/index.d.ts +4 -0
- package/dist/safe-bash-command-bc/index.js +15 -176
- package/dist/safe-bash-command-column/column.js +3 -3
- package/dist/safe-bash-command-column/index.js +3 -3
- package/dist/safe-bash-command-column/layout.js +2 -2
- package/dist/safe-bash-command-csplit/command.js +2 -2
- package/dist/safe-bash-command-csplit/index.js +2 -2
- package/dist/safe-bash-command-csvkit/contracts.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/csvpy-interpreter.d.ts +2 -1
- package/dist/safe-bash-command-csvkit/default-csvpy.d.ts +11 -0
- package/dist/safe-bash-command-csvkit/errors.js +22 -0
- package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/index.js +172 -4
- package/dist/safe-bash-command-csvkit/python-worker-browser.d.ts +3 -0
- package/dist/safe-bash-command-csvkit/python-worker-browser.js +16 -0
- package/dist/safe-bash-command-csvkit/python-worker-contract.d.ts +20 -0
- package/dist/safe-bash-command-csvkit/python-worker-node.d.ts +3 -0
- package/dist/safe-bash-command-csvkit/python-worker-node.js +9 -0
- package/dist/safe-bash-command-csvkit/runtime.d.ts +1 -0
- package/dist/safe-bash-command-curl/LICENSE +21 -0
- package/dist/safe-bash-command-curl/curl.d.ts +13 -0
- package/dist/safe-bash-command-curl/curl.js +9 -0
- package/dist/safe-bash-command-curl/index.d.ts +6 -0
- package/dist/safe-bash-command-curl/index.js +26 -0
- package/dist/safe-bash-command-dd/index.js +4 -13
- package/dist/safe-bash-command-diff/LICENSE +21 -0
- package/dist/safe-bash-command-diff/diff-format.d.ts +10 -0
- package/dist/safe-bash-command-diff/diff-format.js +10 -0
- package/dist/safe-bash-command-diff/diff-options.d.ts +38 -0
- package/dist/safe-bash-command-diff/diff-options.js +7 -0
- package/dist/safe-bash-command-diff/diff-output.d.ts +20 -0
- package/dist/safe-bash-command-diff/diff-output.js +19 -0
- package/dist/safe-bash-command-diff/diff.d.ts +2 -0
- package/dist/safe-bash-command-diff/diff.js +10 -0
- package/dist/safe-bash-command-diff/index.d.ts +8 -0
- package/dist/safe-bash-command-diff/index.js +34 -0
- package/dist/safe-bash-command-diff/sync.d.ts +2 -0
- package/dist/safe-bash-command-diff/sync.js +9 -0
- package/dist/safe-bash-command-diff3/index.js +5 -5
- package/dist/safe-bash-command-docx/index.d.ts +4 -4
- package/dist/safe-bash-command-docx/index.js +12 -5
- package/dist/safe-bash-command-dos2unix/index.d.ts +1 -0
- package/dist/safe-bash-command-dos2unix/index.js +225 -1
- package/dist/safe-bash-command-dos2unix/sync.d.ts +1 -0
- package/dist/safe-bash-command-du/budget.d.ts +0 -2
- package/dist/safe-bash-command-du/budget.js +1 -1
- package/dist/safe-bash-command-du/du.js +2 -2
- package/dist/safe-bash-command-du/index.js +2 -2
- package/dist/safe-bash-command-exiftool/index.js +2 -2
- package/dist/safe-bash-command-factor/command.js +2 -2
- package/dist/safe-bash-command-factor/index.js +2 -2
- package/dist/safe-bash-command-ffmpeg/index.js +86 -94
- package/dist/safe-bash-command-file/index.js +4 -4
- package/dist/safe-bash-command-file/shared.d.ts +0 -2
- package/dist/safe-bash-command-file/shared.js +1 -1
- package/dist/safe-bash-command-find/LICENSE +21 -0
- package/dist/safe-bash-command-find/find-format.d.ts +20 -0
- package/dist/safe-bash-command-find/find-format.js +9 -0
- package/dist/safe-bash-command-find/find.d.ts +18 -0
- package/dist/safe-bash-command-find/find.js +10 -0
- package/dist/safe-bash-command-find/index.d.ts +13 -0
- package/dist/safe-bash-command-find/index.js +45 -0
- package/dist/safe-bash-command-fmt/index.js +10 -19
- package/dist/safe-bash-command-git/git_rust.wasm +0 -0
- package/dist/safe-bash-command-git/index.js +5 -7
- package/dist/safe-bash-command-git/wasm.generated.js +1 -1
- package/dist/safe-bash-command-gzip/LICENSE +21 -0
- package/dist/safe-bash-command-gzip/index.d.ts +11 -0
- package/dist/safe-bash-command-gzip/index.js +94 -0
- package/dist/safe-bash-command-html-to-markdown/budget.d.ts +0 -3
- 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 +11 -11
- package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
- 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.js +12 -8
- package/dist/safe-bash-command-iconv/command.js +5 -5
- package/dist/safe-bash-command-iconv/index.js +5 -5
- package/dist/safe-bash-command-iconv/internal.d.ts +0 -2
- package/dist/safe-bash-command-iconv/internal.js +1 -1
- package/dist/safe-bash-command-iconv/lifecycle.js +2 -2
- package/dist/safe-bash-command-iconv/options.js +2 -2
- package/dist/safe-bash-command-iconv/reader.js +2 -2
- package/dist/safe-bash-command-imagemagick/index.js +22 -30
- 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-llm/command.js +1 -1
- package/dist/safe-bash-command-llm/index.d.ts +1 -0
- package/dist/safe-bash-command-llm/index.js +16 -14
- package/dist/safe-bash-command-llm/openai.js +3 -3
- package/dist/safe-bash-command-llm/providers/index.js +3 -3
- package/dist/safe-bash-command-llm/providers/openai.js +3 -3
- package/dist/safe-bash-command-llm/stored-schema.d.ts +10 -0
- package/dist/safe-bash-command-mmdc/index.js +13 -604
- package/dist/safe-bash-command-mmdc/settings.d.ts +2 -0
- package/dist/safe-bash-command-mmdc/settings.js +7 -0
- package/dist/safe-bash-command-numfmt/index.js +4 -18
- package/dist/safe-bash-command-pandoc/command.js +4 -3
- package/dist/safe-bash-command-pandoc/defaults.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/index.js +4 -3
- package/dist/safe-bash-command-pandoc/lua-filters.js +1 -1
- package/dist/safe-bash-command-pandoc/types.d.ts +3 -1
- package/dist/safe-bash-command-patch/LICENSE +21 -0
- package/dist/safe-bash-command-patch/index.d.ts +8 -0
- package/dist/safe-bash-command-patch/index.js +38 -0
- package/dist/safe-bash-command-patch/patch-envelope.d.ts +2 -0
- package/dist/safe-bash-command-patch/patch-envelope.js +7 -0
- package/dist/safe-bash-command-patch/patch-formats.d.ts +7 -0
- package/dist/safe-bash-command-patch/patch-formats.js +9 -0
- package/dist/safe-bash-command-patch/patch-gnu-paths.d.ts +41 -0
- package/dist/safe-bash-command-patch/patch-gnu-paths.js +26 -0
- package/dist/safe-bash-command-patch/patch-gnu-reject.d.ts +3 -0
- package/dist/safe-bash-command-patch/patch-gnu-reject.js +7 -0
- package/dist/safe-bash-command-patch/patch-path.d.ts +3 -0
- package/dist/safe-bash-command-patch/patch-path.js +11 -0
- package/dist/safe-bash-command-patch/patch-publication.d.ts +13 -0
- package/dist/safe-bash-command-patch/patch-publication.js +7 -0
- package/dist/safe-bash-command-patch/patch.d.ts +2 -0
- package/dist/safe-bash-command-patch/patch.js +14 -0
- package/dist/safe-bash-command-patch/sync.d.ts +2 -0
- package/dist/safe-bash-command-patch/sync.js +7 -0
- package/dist/safe-bash-command-patch/unified.d.ts +52 -0
- package/dist/safe-bash-command-patch/unified.js +16 -0
- package/dist/safe-bash-command-pdfimages/index.js +37 -16
- package/dist/safe-bash-command-pdfinfo/index.d.ts +0 -23
- package/dist/safe-bash-command-pdfinfo/index.js +20 -772
- package/dist/safe-bash-command-pdftk/index.js +37 -9
- package/dist/safe-bash-command-pdftoppm/index.js +50 -20
- package/dist/safe-bash-command-pdftotext/index.js +10 -2
- package/dist/safe-bash-command-pptx/index.d.ts +4 -4
- package/dist/safe-bash-command-pptx/index.js +11 -5
- package/dist/safe-bash-command-pr/command.js +5 -5
- package/dist/safe-bash-command-pr/format.js +2 -2
- package/dist/safe-bash-command-pr/index.js +7 -7
- package/dist/safe-bash-command-pr/internal.d.ts +0 -2
- package/dist/safe-bash-command-pr/internal.js +1 -1
- package/dist/safe-bash-command-pr/io.js +2 -2
- package/dist/safe-bash-command-pr/options.js +2 -2
- package/dist/safe-bash-command-qpdf/index.js +26 -13
- package/dist/safe-bash-command-rg/index.d.ts +1 -0
- package/dist/safe-bash-command-rg/index.js +222 -1
- package/dist/safe-bash-command-rg/rg-command.js +1 -1
- package/dist/safe-bash-command-rg/sync.d.ts +1 -0
- package/dist/safe-bash-command-sed/LICENSE +21 -0
- package/dist/safe-bash-command-sed/index.d.ts +7 -0
- package/dist/safe-bash-command-sed/index.js +28 -0
- package/dist/safe-bash-command-sed/inplace.d.ts +16 -0
- package/dist/safe-bash-command-sed/inplace.js +9 -0
- package/dist/safe-bash-command-sed/sed.d.ts +3 -0
- package/dist/safe-bash-command-sed/sed.js +8 -0
- package/dist/safe-bash-command-shuf/input.js +3 -21
- package/dist/safe-bash-command-shuf/shuf.js +4 -27
- package/dist/safe-bash-command-sips/index.js +111 -35
- package/dist/safe-bash-command-soffice/index.js +4 -4
- package/dist/safe-bash-command-split/index.js +3 -3
- package/dist/safe-bash-command-split/io.d.ts +0 -2
- 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/engine.d.ts +1 -2
- package/dist/safe-bash-command-sqlite3/index.js +152 -452
- package/dist/safe-bash-command-ssconvert/commands.js +1 -1
- package/dist/safe-bash-command-ssconvert/formats/ods.js +2 -2
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +3 -3
- package/dist/safe-bash-command-ssconvert/index.js +5 -5
- package/dist/safe-bash-command-tar/LICENSE +21 -0
- package/dist/safe-bash-command-tar/create.d.ts +17 -0
- package/dist/safe-bash-command-tar/create.js +14 -0
- package/dist/safe-bash-command-tar/extract.d.ts +11 -0
- package/dist/safe-bash-command-tar/extract.js +14 -0
- package/dist/safe-bash-command-tar/format.d.ts +32 -0
- package/dist/safe-bash-command-tar/format.js +19 -0
- package/dist/safe-bash-command-tar/index.d.ts +8 -0
- package/dist/safe-bash-command-tar/index.js +550 -0
- package/dist/safe-bash-command-tar/listing.d.ts +2 -0
- package/dist/safe-bash-command-tar/listing.js +7 -0
- package/dist/safe-bash-command-tar/modes.d.ts +5 -0
- package/dist/safe-bash-command-tar/modes.js +16 -0
- package/dist/safe-bash-command-tar/options.d.ts +53 -0
- package/dist/safe-bash-command-tar/options.js +10 -0
- package/dist/safe-bash-command-tar/stream.d.ts +22 -0
- package/dist/safe-bash-command-tar/stream.js +15 -0
- package/dist/safe-bash-command-tar/transform.d.ts +16 -0
- package/dist/safe-bash-command-tar/transform.js +9 -0
- 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.d.ts +0 -1
- 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-tsort/command.js +4 -4
- package/dist/safe-bash-command-tsort/graph.js +2 -2
- package/dist/safe-bash-command-tsort/index.js +4 -4
- package/dist/safe-bash-command-tsort/internal.d.ts +0 -2
- package/dist/safe-bash-command-tsort/internal.js +1 -1
- package/dist/safe-bash-command-tsort/io.js +2 -2
- package/dist/safe-bash-command-unzip/LICENSE +21 -0
- package/dist/safe-bash-command-unzip/index.d.ts +7 -0
- package/dist/safe-bash-command-unzip/index.js +39 -0
- package/dist/safe-bash-command-unzip/sync.d.ts +3 -0
- package/dist/safe-bash-command-unzip/sync.js +9 -0
- package/dist/safe-bash-command-unzip/unzip/safety.d.ts +32 -0
- package/dist/safe-bash-command-unzip/unzip/safety.js +7 -0
- package/dist/safe-bash-command-unzip/unzip.d.ts +3 -0
- package/dist/safe-bash-command-unzip/unzip.js +8 -0
- package/dist/safe-bash-command-wget/LICENSE +21 -0
- package/dist/safe-bash-command-wget/index.d.ts +6 -0
- package/dist/safe-bash-command-wget/index.js +26 -0
- package/dist/safe-bash-command-wget/wget.d.ts +3 -0
- package/dist/safe-bash-command-wget/wget.js +7 -0
- package/dist/safe-bash-command-xan/argv.d.ts +4 -1
- package/dist/safe-bash-command-xan/argv.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +4 -3
- package/dist/safe-bash-command-xan/index.js +15 -14
- package/dist/safe-bash-command-xan/io.js +2 -2
- package/dist/safe-bash-command-xmllint/index.js +189 -49
- package/dist/safe-bash-command-xz/index.js +3 -2
- package/dist/safe-bash-command-xz/options.d.ts +9 -1
- package/dist/safe-bash-command-xz/options.js +3 -1
- package/dist/safe-bash-command-yq/index.d.ts +4 -11
- package/dist/safe-bash-command-yq/index.js +3367 -670
- package/dist/safe-bash-command-yq/mike.js +6 -13
- package/dist/safe-bash-command-yq/native-work.d.ts +1 -0
- package/dist/safe-bash-command-yq/native-work.js +19 -1
- package/dist/safe-bash-command-yq/query.d.ts +11 -0
- package/dist/safe-bash-command-yq/query.js +735 -0
- package/dist/safe-bash-command-zip/LICENSE +21 -0
- package/dist/safe-bash-command-zip/index.d.ts +7 -0
- package/dist/safe-bash-command-zip/index.js +38 -0
- package/dist/safe-bash-command-zip/sync.d.ts +3 -0
- package/dist/safe-bash-command-zip/sync.js +9 -0
- package/dist/safe-bash-command-zip/zip.d.ts +3 -0
- package/dist/safe-bash-command-zip/zip.js +7 -0
- package/dist/safe-bash-compression-engine/files.js +4 -4
- package/dist/safe-bash-compression-engine/index.js +2 -2
- package/dist/safe-bash-compression-engine/operand.js +6 -6
- package/dist/safe-bash-compression-engine/stream.js +2 -2
- package/dist/safe-bash-compression-engine/zstd-decode.js +1 -1
- package/dist/safe-bash-contracts/command.js +1 -1
- package/dist/safe-bash-contracts/diagnostics.js +4 -4
- package/dist/safe-bash-contracts/escaping.js +11 -11
- package/dist/safe-bash-contracts/filesystem-descriptor.js +1 -1
- package/dist/safe-bash-contracts/filesystem-output.js +8 -8
- package/dist/safe-bash-contracts/index.js +34 -34
- package/dist/safe-bash-contracts/io.js +2 -2
- package/dist/safe-bash-contracts/output.js +3 -3
- package/dist/safe-bash-diff-engine/LICENSE +21 -0
- package/dist/safe-bash-diff-engine/index.d.ts +1 -0
- package/dist/safe-bash-diff-engine/index.js +24 -0
- package/dist/safe-bash-diff-engine/shared.d.ts +53 -0
- package/dist/safe-bash-diff-engine/shared.js +19 -0
- package/dist/safe-bash-io-engine/commands/archive/internal.d.ts +0 -1
- package/dist/safe-bash-io-engine/commands/archive/internal.js +3 -7
- package/dist/safe-bash-io-engine/commands/directory-admission.d.ts +3 -0
- package/dist/safe-bash-io-engine/commands/directory-admission.js +34 -0
- package/dist/safe-bash-io-engine/commands/mode-change.d.ts +4 -0
- package/dist/safe-bash-io-engine/commands/mode-change.js +60 -0
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +20 -31
- package/dist/safe-bash-io-engine/shell/pattern.js +8 -13
- package/dist/safe-bash-io-engine/shell/string-operations.d.ts +0 -2
- package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
- package/dist/safe-bash-line-ending-engine/internal.d.ts +0 -2
- package/dist/safe-bash-line-ending-engine/internal.js +1 -9
- package/dist/safe-bash-markdown-engine/commonmark-blocks.js +4 -4
- package/dist/safe-bash-markdown-engine/commonmark-inlines.js +4 -4
- package/dist/safe-bash-markdown-engine/commonmark-syntax.js +2 -2
- package/dist/safe-bash-markdown-engine/gfm-syntax.js +3 -3
- package/dist/safe-bash-markdown-engine/index.js +7 -7
- package/dist/safe-bash-mcp/index.browser.d.ts +6 -0
- package/dist/safe-bash-mcp/index.browser.js +1 -0
- package/dist/safe-bash-mcp/index.d.ts +12 -0
- package/dist/safe-bash-mcp/index.js +1558 -36
- package/dist/safe-bash-network-engine/LICENSE +21 -0
- package/dist/safe-bash-network-engine/aggregate.d.ts +4 -0
- package/dist/safe-bash-network-engine/aggregate.js +37 -0
- package/dist/safe-bash-network-engine/args.d.ts +68 -0
- package/dist/safe-bash-network-engine/args.js +19 -0
- package/dist/safe-bash-network-engine/authorizer.d.ts +6 -0
- package/dist/safe-bash-network-engine/authorizer.js +8 -0
- package/dist/safe-bash-network-engine/body.d.ts +9 -0
- package/dist/safe-bash-network-engine/body.js +374 -0
- package/dist/safe-bash-network-engine/deadline.d.ts +2 -0
- package/dist/safe-bash-network-engine/deadline.js +7 -0
- package/dist/safe-bash-network-engine/decode.d.ts +2 -0
- package/dist/safe-bash-network-engine/decode.js +81 -0
- package/dist/safe-bash-network-engine/fetch-transport.d.ts +7 -0
- package/dist/safe-bash-network-engine/fetch-transport.js +9 -0
- package/dist/safe-bash-network-engine/form-content-type.d.ts +5 -0
- package/dist/safe-bash-network-engine/form-content-type.js +8 -0
- package/dist/safe-bash-network-engine/form-headers.d.ts +2 -0
- package/dist/safe-bash-network-engine/form-headers.js +10 -0
- package/dist/safe-bash-network-engine/glob.d.ts +7 -0
- package/dist/safe-bash-network-engine/glob.js +124 -0
- package/dist/safe-bash-network-engine/index.d.ts +3 -0
- package/dist/safe-bash-network-engine/index.js +26 -0
- package/dist/safe-bash-network-engine/input.d.ts +5 -0
- package/dist/safe-bash-network-engine/input.js +255 -0
- package/dist/safe-bash-network-engine/output.d.ts +6 -0
- package/dist/safe-bash-network-engine/output.js +132 -0
- package/dist/safe-bash-network-engine/platform-portable.d.ts +5 -0
- package/dist/safe-bash-network-engine/platform-portable.js +19 -0
- package/dist/safe-bash-network-engine/private-address.d.ts +1 -0
- package/dist/safe-bash-network-engine/private-address.js +7 -0
- package/dist/safe-bash-network-engine/shared.d.ts +14 -0
- package/dist/safe-bash-network-engine/shared.js +23 -0
- package/dist/safe-bash-network-engine/types.d.ts +37 -0
- package/dist/safe-bash-network-engine/types.js +11 -0
- package/dist/safe-bash-network-engine/url.d.ts +2 -0
- package/dist/safe-bash-network-engine/url.js +8 -0
- package/dist/safe-bash-query-engine/capture.d.ts +1 -0
- package/dist/safe-bash-query-engine/capture.js +9 -7
- package/dist/safe-bash-query-engine/dates.d.ts +5 -1
- package/dist/safe-bash-query-engine/dates.js +10 -2
- package/dist/safe-bash-query-engine/delpaths.js +5 -5
- package/dist/safe-bash-query-engine/formats.js +3 -3
- package/dist/safe-bash-query-engine/index.js +15 -15
- package/dist/safe-bash-query-engine/indices.js +5 -5
- package/dist/safe-bash-query-engine/input.d.ts +1 -2
- package/dist/safe-bash-query-engine/input.js +2 -4
- package/dist/safe-bash-query-engine/interpreter.d.ts +5 -0
- package/dist/safe-bash-query-engine/interpreter.js +13 -13
- package/dist/safe-bash-query-engine/limits.js +1 -1
- package/dist/safe-bash-query-engine/parser.d.ts +8 -1
- package/dist/safe-bash-query-engine/parser.js +2 -2
- package/dist/safe-bash-query-engine/query-core.js +15 -15
- package/dist/safe-bash-query-engine/recurse.js +2 -2
- package/dist/safe-bash-query-engine/regex.d.ts +4 -2
- package/dist/safe-bash-query-engine/regex.js +10 -5
- package/dist/safe-bash-query-engine/split.js +2 -2
- package/dist/safe-bash-query-engine/splits.d.ts +1 -1
- package/dist/safe-bash-query-engine/splits.js +7 -6
- package/dist/safe-bash-query-engine/values.js +4 -4
- package/dist/safe-bash-regex-engine/ere/limits.d.ts +0 -1
- package/dist/safe-bash-regex-engine/ere/limits.js +1 -1
- package/dist/safe-bash-regex-engine/ere/matcher.js +9 -9
- package/dist/safe-bash-regex-engine/ere/syntax.js +2 -2
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +2 -4
- package/dist/safe-bash-regex-engine/index.js +2 -2
- package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -0
- package/dist/safe-bash-regex-engine/text/regex.js +2 -2
- package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +12 -2
- package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
- package/dist/safe-bash-search-engine/glob.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +2 -2
- package/dist/safe-bash-search-engine/matcher.d.ts +6 -2
- package/dist/safe-bash-search-engine/matcher.js +30 -8
- package/dist/safe-bash-search-engine/options.js +1 -1
- package/dist/safe-bash-search-engine/output.d.ts +3 -2
- package/dist/safe-bash-search-engine/output.js +111 -30
- package/dist/safe-bash-search-engine/shared.d.ts +2 -0
- package/dist/safe-bash-search-engine/shared.js +2 -2
- package/dist/safe-bash-search-engine/walk.js +11 -10
- package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +0 -2
- package/dist/safe-bash-text-stream-engine/stream-format/shared.js +1 -9
- package/dist/safe-bash-xml-engine/document.d.ts +1 -1
- package/dist/safe-bash-xml-engine/document.js +3 -3
- package/dist/safe-bash-xml-engine/evaluate.d.ts +1 -0
- package/dist/safe-bash-xml-engine/evaluate.js +4 -1
- package/dist/safe-bash-xml-engine/index.js +8 -6
- package/dist/safe-bash-xml-engine/io.js +1 -1
- package/dist/safe-bash-xml-engine/limits.d.ts +2 -2
- package/dist/safe-bash-xml-engine/limits.js +1 -1
- package/dist/safe-bash-xml-engine/predicate.d.ts +57 -0
- package/dist/safe-bash-xml-engine/query.d.ts +3 -15
- package/dist/safe-bash-xml-engine/query.js +3 -2
- package/dist/safe-bash-zip-engine/LICENSE +21 -0
- package/dist/safe-bash-zip-engine/index.d.ts +1 -0
- package/dist/safe-bash-zip-engine/index.js +32 -0
- package/dist/safe-bash-zip-engine/unzip/arguments.d.ts +53 -0
- package/dist/safe-bash-zip-engine/unzip/arguments.js +270 -0
- package/dist/safe-bash-zip-engine/zip/aes.d.ts +17 -0
- package/dist/safe-bash-zip-engine/zip/aes.js +15 -0
- package/dist/safe-bash-zip-engine/zip/comments.d.ts +17 -0
- package/dist/safe-bash-zip-engine/zip/comments.js +77 -0
- package/dist/safe-bash-zip-engine/zip/crc.d.ts +1 -0
- package/dist/safe-bash-zip-engine/zip/crc.js +7 -0
- package/dist/safe-bash-zip-engine/zip/crypto.d.ts +19 -0
- package/dist/safe-bash-zip-engine/zip/crypto.js +16 -0
- package/dist/safe-bash-zip-engine/zip/dates.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/dates.js +68 -0
- package/dist/safe-bash-zip-engine/zip/environment.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/environment.js +60 -0
- package/dist/safe-bash-zip-engine/zip/grow.d.ts +3 -0
- package/dist/safe-bash-zip-engine/zip/grow.js +7 -0
- package/dist/safe-bash-zip-engine/zip/help.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/help.js +194 -0
- package/dist/safe-bash-zip-engine/zip/line-endings.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/line-endings.js +165 -0
- package/dist/safe-bash-zip-engine/zip/log.d.ts +22 -0
- package/dist/safe-bash-zip-engine/zip/log.js +153 -0
- package/dist/safe-bash-zip-engine/zip/lzma.d.ts +9 -0
- package/dist/safe-bash-zip-engine/zip/lzma.js +7 -0
- package/dist/safe-bash-zip-engine/zip/move.d.ts +11 -0
- package/dist/safe-bash-zip-engine/zip/move.js +57 -0
- package/dist/safe-bash-zip-engine/zip/names.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/names.js +37 -0
- package/dist/safe-bash-zip-engine/zip/options.d.ts +13 -0
- package/dist/safe-bash-zip-engine/zip/options.js +23 -0
- package/dist/safe-bash-zip-engine/zip/repair.d.ts +10 -0
- package/dist/safe-bash-zip-engine/zip/repair.js +348 -0
- package/dist/safe-bash-zip-engine/zip/safety.d.ts +54 -0
- package/dist/safe-bash-zip-engine/zip/safety.js +19 -0
- package/dist/safe-bash-zip-engine/zip/sfx.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/sfx.js +58 -0
- package/dist/safe-bash-zip-engine/zip/test-command.d.ts +5 -0
- package/dist/safe-bash-zip-engine/zip/test-command.js +98 -0
- package/dist/safe-bash-zip-engine/zip/volumes.d.ts +21 -0
- package/dist/safe-bash-zip-engine/zip/volumes.js +255 -0
- package/dist/safe-bash-zip-engine/zip/zip64.d.ts +30 -0
- package/dist/safe-bash-zip-engine/zip/zip64.js +25 -0
- package/dist/safe-bash-zip-engine/zip-format.d.ts +68 -0
- package/dist/safe-bash-zip-engine/zip-format.js +27 -0
- package/dist/safe-playwright-cloudflare/browser-codegen.generated.d.ts +7 -7
- package/dist/safe-playwright-cloudflare/browser-codegen.generated.js +866 -8069
- package/dist/safe-playwright-cloudflare/browser-run-code-budget.d.ts +0 -1
- package/dist/safe-playwright-cloudflare/browser-run-code-budget.js +0 -2
- package/dist/safe-playwright-cloudflare/browser-trace-archive.d.ts +5 -1
- package/dist/safe-playwright-cloudflare/browser-trace-archive.js +2 -1
- package/dist/safe-playwright-cloudflare/browser-trace-budget.js +2 -2
- package/dist/safe-playwright-cloudflare/shell-browser-resource.d.ts +2 -0
- package/dist/safe-playwright-cloudflare/shell-browser-resource.js +3 -11
- package/dist/safe-playwright-cloudflare/shell-playwright.d.ts +2 -0
- package/dist/safe-playwright-cloudflare/shell-playwright.js +1 -1
- package/dist/spreadsheet-engine/io/publication.d.ts +1 -0
- package/package.json +163 -14
- package/dist/safe-bash/chunks/chunk-O4ZUCRGN.js +0 -13
- package/dist/safe-bash/chunks/chunk-S264DZO2.js +0 -243
- package/dist/safe-bash/chunks/chunk-WVG5SHHQ.js +0 -12
- package/dist/safe-bash/chunks/chunk-XH26YVGW.js +0 -23027
- package/dist/safe-bash/chunks/chunk-ZW6K2J7P.js +0 -2652
- package/dist/safe-bash/command-chunks/chunk-BIXLZ3OG.js +0 -14342
- package/dist/safe-bash/command-chunks/chunk-DUYJE2HY.js +0 -14
- package/dist/safe-bash/command-chunks/chunk-JHVZYB4R.js +0 -181
- package/dist/safe-bash/command-chunks/chunk-ULZ7HIZP.js +0 -40
- package/dist/safe-bash/command-chunks/chunk-XS3PGJU2.js +0 -343
- package/dist/safe-bash/command-chunks/chunk-XTZALMLR.js +0 -488
- package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.d.ts +0 -2
- package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.js +0 -3
- package/dist/safe-bash/commands/archive/zip/aes-primitives.d.ts +0 -2
- package/dist/safe-bash/commands/archive/zip/aes-primitives.js +0 -3
- package/dist/safe-bash/commands/xml/document.d.ts +0 -2
- package/dist/safe-bash/commands/xml/document.js +0 -2
- package/dist/safe-bash/commands/xml/evaluate.d.ts +0 -2
- package/dist/safe-bash/commands/xml/evaluate.js +0 -2
- package/dist/safe-bash/commands/xml/json.d.ts +0 -2
- package/dist/safe-bash/commands/xml/json.js +0 -2
- package/dist/safe-bash/commands/xml/limits.d.ts +0 -2
- package/dist/safe-bash/commands/xml/limits.js +0 -2
- package/dist/safe-bash/commands/xml/query.d.ts +0 -2
- package/dist/safe-bash/commands/xml/query.js +0 -2
- package/dist/safe-bash/chunks/{chunk-NHOXKQNE.js → chunk-QVSRRNZT.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-FIUFIDAO.js → chunk-2JRBIDAD.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-TYVCKQDH.js → chunk-J5SN3PZ3.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2ENZ6JGA.js → chunk-KEV7C3KH.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-S62HELHU.js → chunk-PL6O4K6W.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2WRTLCGK.js → chunk-QZF3SINC.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-X7TM3AKW.js → chunk-U6G67N23.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-DDLQ5YDB.js → chunk-YHFXOX6U.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-DQMOM72Z.js → chunk-ZRRBXU3M.js} +4 -4
|
@@ -133,6 +133,7 @@ function hasActiveExtensions(state) {
|
|
|
133
133
|
}
|
|
134
134
|
const memberPatternOperators = ["#", "##", "%", "%%", "/", "//", "/#", "/%", "^", "^^", ",", ",,"];
|
|
135
135
|
const defaultParameterOperators = ["-", "+", "=", "?", ":-", ":+", ":=", ":?"];
|
|
136
|
+
const printfSlowTargets = new Set([...controlNames, "FUNCNAME", "RANDOM", "SECONDS", "PIPESTATUS", "_"]);
|
|
136
137
|
async function signedLong(argument, budget, signal) {
|
|
137
138
|
const checkpoint = async () => {
|
|
138
139
|
budget.cpuCheckpoint();
|
|
@@ -184,6 +185,7 @@ export const defaultLimits = {
|
|
|
184
185
|
maxPipelineStages: Infinity,
|
|
185
186
|
maxLoopIterations: Infinity,
|
|
186
187
|
maxSubstitutionDepth: Infinity,
|
|
188
|
+
maxFunctionDepth: Infinity,
|
|
187
189
|
maxSourceBytes: Infinity,
|
|
188
190
|
maxExpansionFields: Infinity,
|
|
189
191
|
maxExpansionBytes: Infinity,
|
|
@@ -2088,7 +2090,7 @@ async function cloneState(state, signal, scope, inheritLocals = true) {
|
|
|
2088
2090
|
const token = await textToken(savedOwner, name, signal);
|
|
2089
2091
|
const admission = savedOwner.reserve({ slots: 1, metadata: 32, work: 5 });
|
|
2090
2092
|
binding = typed.binding?.retain();
|
|
2091
|
-
typedSavedVariables.set(copied, { owner: savedOwner, binding, tickets, prepared: { name: token, admission }, watch, scalarLegacy: typed.scalarLegacy });
|
|
2093
|
+
typedSavedVariables.set(copied, { owner: savedOwner, binding, tickets, prepared: { ...typed.prepared, name: token, admission }, watch, scalarLegacy: typed.scalarLegacy });
|
|
2092
2094
|
tickets.cleanup = () => {
|
|
2093
2095
|
if (typedSavedVariables.delete(copied) && scope)
|
|
2094
2096
|
releaseBinding = scope.cleanup(async () => { await binding?.release(); });
|
|
@@ -3541,6 +3543,10 @@ function resolveSimpleArithOperand(tok, rawState, monitor, activeArrayStore, syn
|
|
|
3541
3543
|
return Number(elemVal);
|
|
3542
3544
|
}
|
|
3543
3545
|
tok = resolveSyncNameref(rawState, tok);
|
|
3546
|
+
// These values come from execution context or lazy shell bindings, not raw variables.
|
|
3547
|
+
// Decline after resolving namerefs so aliases use the same full evaluator.
|
|
3548
|
+
if (tok === "LINENO" || tok === "_" || tok === "FUNCNAME" || tok === "PIPESTATUS")
|
|
3549
|
+
return undefined;
|
|
3544
3550
|
if (rawState.nounset || activeArrayStore?.bindings.has(tok) || monitor?.hasOverlay(tok) || activeArrayStore?.watches.has(tok))
|
|
3545
3551
|
return undefined;
|
|
3546
3552
|
const raw = rawState.variables[tok];
|
|
@@ -3737,6 +3743,7 @@ export class Runtime {
|
|
|
3737
3743
|
_syncPendingEvalResume;
|
|
3738
3744
|
_syncReadOnlyArithRefs;
|
|
3739
3745
|
_activeSyncLoopAssignedVars;
|
|
3746
|
+
_activeSyncArrayLoopWords;
|
|
3740
3747
|
_activeSyncLoopHasFileMutations = false;
|
|
3741
3748
|
_inSyncLoopPreflight = false;
|
|
3742
3749
|
_activeSyncLoopIO;
|
|
@@ -4543,16 +4550,18 @@ export class Runtime {
|
|
|
4543
4550
|
const rawSub = this._syncArithRawVars[subVar];
|
|
4544
4551
|
if (typeof rawSub !== "string" || rawSub.length === 0)
|
|
4545
4552
|
throw new ArrayFailure("empty var subscript in sync arithmetic");
|
|
4546
|
-
resolvedSub =
|
|
4553
|
+
resolvedSub = this._syncArithRawWriteOnly && this._syncArithTouched?.has(subVar)
|
|
4554
|
+
? rawSub
|
|
4555
|
+
: shellValueText(stateMonitor(st)?.values.get(subVar, rawSub) ?? rawSub);
|
|
4547
4556
|
}
|
|
4548
4557
|
else if (/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(resolvedSub)) {
|
|
4549
4558
|
const st = this._syncArithState;
|
|
4550
4559
|
const binding = arrayStore(st)?.get(variable);
|
|
4551
4560
|
if (!binding || !binding.associative) {
|
|
4552
|
-
|
|
4561
|
+
const index = resolveSimpleArithOperand(resolvedSub, st, stateMonitor(st), arrayStore(st), this._syncArithRawWriteOnly ? this._syncArithTouched : undefined);
|
|
4562
|
+
if (index === undefined)
|
|
4553
4563
|
throw new ArrayFailure("complex indexed ident subscript in sync arithmetic");
|
|
4554
|
-
|
|
4555
|
-
resolvedSub = rawSub === undefined || rawSub === "" ? "0" : shellValueText(stateMonitor(st)?.values.get(resolvedSub, rawSub) ?? rawSub);
|
|
4564
|
+
resolvedSub = String(index);
|
|
4556
4565
|
}
|
|
4557
4566
|
}
|
|
4558
4567
|
else {
|
|
@@ -5062,6 +5071,8 @@ export class Runtime {
|
|
|
5062
5071
|
return binding.get(binding.associative ? binding.keys.get("30")?.index ?? -1 : 0);
|
|
5063
5072
|
if (name === "DIRSTACK")
|
|
5064
5073
|
return state.cwd;
|
|
5074
|
+
if (name === "BASH_SUBSHELL")
|
|
5075
|
+
return state.variables.BASH_SUBSHELL ?? "0";
|
|
5065
5076
|
if (name === "FUNCNAME" && state.variables.FUNCNAME === undefined)
|
|
5066
5077
|
return state.functionNames?.[0];
|
|
5067
5078
|
if (name === "_" && state.variables._ === undefined)
|
|
@@ -5193,7 +5204,7 @@ export class Runtime {
|
|
|
5193
5204
|
if (!watch.valid())
|
|
5194
5205
|
throw new ArrayFailure("stale binding");
|
|
5195
5206
|
binding = scalarLegacy ? undefined : store.get(name)?.retain();
|
|
5196
|
-
typedSavedVariables.set(saved, { owner, binding, tickets, prepared: { name: token, admission }, watch, scalarLegacy });
|
|
5207
|
+
typedSavedVariables.set(saved, { owner, binding, tickets, prepared: { name: token, admission, identity: store.bindings.get(name)?.identity }, watch, scalarLegacy });
|
|
5197
5208
|
tickets.cleanup = () => { typedSavedVariables.delete(saved); };
|
|
5198
5209
|
}
|
|
5199
5210
|
catch (error) {
|
|
@@ -5889,6 +5900,22 @@ export class Runtime {
|
|
|
5889
5900
|
}
|
|
5890
5901
|
return p0.operator !== undefined ? this.applySyncArrayMemberOperator(out, p0, rawState) : out;
|
|
5891
5902
|
}
|
|
5903
|
+
syncArraySubscriptWord(index, state) {
|
|
5904
|
+
if (byteLocale(state.variables) || state.depth >= 24)
|
|
5905
|
+
return undefined;
|
|
5906
|
+
const cached = index;
|
|
5907
|
+
const word = index.word ?? (cached._cachedSyntax === state.extensions?.syntax ? cached._cachedWord : undefined);
|
|
5908
|
+
if (word)
|
|
5909
|
+
return word;
|
|
5910
|
+
try {
|
|
5911
|
+
cached._cachedWord = parseArraySubscript(index.source ?? index.decimal, this.budget.parsing, false, state.depth, false, state.extensions?.syntax);
|
|
5912
|
+
cached._cachedSyntax = state.extensions?.syntax;
|
|
5913
|
+
return cached._cachedWord;
|
|
5914
|
+
}
|
|
5915
|
+
catch {
|
|
5916
|
+
return undefined;
|
|
5917
|
+
}
|
|
5918
|
+
}
|
|
5892
5919
|
tryFastArrayAssignmentSync(assignment, state, io, diagnosticLine, declaration, associative, ignoreYield = false) {
|
|
5893
5920
|
if (!ignoreYield && hasYieldCheckpoint(this.signal))
|
|
5894
5921
|
return false;
|
|
@@ -6198,20 +6225,9 @@ export class Runtime {
|
|
|
6198
6225
|
return false;
|
|
6199
6226
|
}
|
|
6200
6227
|
if (assignment.kind === "element" && current?.associative) {
|
|
6201
|
-
const
|
|
6202
|
-
|
|
6203
|
-
|
|
6204
|
-
if (byteLocale(rawState.variables) || rawState.depth >= 24)
|
|
6205
|
-
return false;
|
|
6206
|
-
try {
|
|
6207
|
-
word = parseArraySubscript(assignment.index.source ?? assignment.index.decimal, this.budget.parsing, false, rawState.depth, false, rawState.extensions?.syntax);
|
|
6208
|
-
cachedIdx._cachedWord = word;
|
|
6209
|
-
cachedIdx._cachedSyntax = rawState.extensions?.syntax;
|
|
6210
|
-
}
|
|
6211
|
-
catch {
|
|
6212
|
-
return false;
|
|
6213
|
-
}
|
|
6214
|
-
}
|
|
6228
|
+
const word = this.syncArraySubscriptWord(assignment.index, rawState);
|
|
6229
|
+
if (!word)
|
|
6230
|
+
return false;
|
|
6215
6231
|
let keyVal;
|
|
6216
6232
|
let val;
|
|
6217
6233
|
try {
|
|
@@ -6977,7 +6993,7 @@ export class Runtime {
|
|
|
6977
6993
|
if (closed)
|
|
6978
6994
|
throw new ArrayFailure("indexed writer is closed");
|
|
6979
6995
|
owner.assertOpen();
|
|
6980
|
-
if (arrayStore(state) !== store || store.owner !== owner || identity !== undefined && store.bindings.get(name) !== identity)
|
|
6996
|
+
if (arrayStore(state) !== store || store.owner !== owner || identity !== undefined && store.bindings.get(name)?.identity !== identity)
|
|
6981
6997
|
throw new ArrayFailure("incremental target identity changed");
|
|
6982
6998
|
if (localIdentity() !== admittedLocal)
|
|
6983
6999
|
throw new ArrayFailure("incremental target local identity changed");
|
|
@@ -7032,8 +7048,8 @@ export class Runtime {
|
|
|
7032
7048
|
await prepared.close();
|
|
7033
7049
|
}
|
|
7034
7050
|
}
|
|
7035
|
-
identity = store.bindings.get(name);
|
|
7036
|
-
if (
|
|
7051
|
+
identity = store.bindings.get(name)?.identity;
|
|
7052
|
+
if (identity === undefined)
|
|
7037
7053
|
throw new ArrayFailure("incremental target is not indexed");
|
|
7038
7054
|
validate();
|
|
7039
7055
|
}
|
|
@@ -9342,7 +9358,7 @@ export class Runtime {
|
|
|
9342
9358
|
targetOk = true;
|
|
9343
9359
|
}
|
|
9344
9360
|
}
|
|
9345
|
-
else if (isShellIdentifier(w2Plain) && !
|
|
9361
|
+
else if (isShellIdentifier(w2Plain) && !printfSlowTargets.has(w2Plain) && !rawState.readonlyVariables?.has(w2Plain) && !rawState.variableAttributes?.get(w2Plain) && !st?.get(w2Plain) && !mon.hasOverlay(w2Plain)) {
|
|
9346
9362
|
targetOk = true;
|
|
9347
9363
|
}
|
|
9348
9364
|
}
|
|
@@ -11260,7 +11276,7 @@ export class Runtime {
|
|
|
11260
11276
|
const isSubTarget = openBr > 0 && targetSpec.endsWith("]") && targetSpec.length > openBr + 2;
|
|
11261
11277
|
const rawTargetVar = isSubTarget ? targetSpec.slice(0, openBr) : targetSpec;
|
|
11262
11278
|
const targetVar = isShellIdentifier(rawTargetVar) ? resolveSyncNameref(rawState, rawTargetVar) : "";
|
|
11263
|
-
if (targetVar && isShellIdentifier(targetVar) && targetVar
|
|
11279
|
+
if (targetVar && isShellIdentifier(targetVar) && !printfSlowTargets.has(targetVar) && !rawState.readonlyVariables?.has(targetVar) && !rawState.variableAttributes?.get(targetVar) && !monitor.hasOverlay(targetVar) && (isSubTarget ? Boolean(store?.get(targetVar)) : !store?.get(targetVar))) {
|
|
11264
11280
|
fastSubScratchArgs.length = 0;
|
|
11265
11281
|
let allStrings = true;
|
|
11266
11282
|
try {
|
|
@@ -12151,6 +12167,7 @@ export class Runtime {
|
|
|
12151
12167
|
let simpleRead = true;
|
|
12152
12168
|
let readDelim = 10;
|
|
12153
12169
|
let arrayTarget;
|
|
12170
|
+
let readLastArgument = command.words[command.words.length - 1].plain;
|
|
12154
12171
|
while (readWordIdx < command.words.length) {
|
|
12155
12172
|
const p = command.words[readWordIdx].plain;
|
|
12156
12173
|
if (p === undefined) {
|
|
@@ -12184,6 +12201,8 @@ export class Runtime {
|
|
|
12184
12201
|
delimStr = undefined;
|
|
12185
12202
|
}
|
|
12186
12203
|
}
|
|
12204
|
+
if (readWordIdx === command.words.length - 1)
|
|
12205
|
+
readLastArgument = delimStr;
|
|
12187
12206
|
}
|
|
12188
12207
|
if (delimStr !== undefined && delimStr.length >= 1 && delimStr.charCodeAt(0) > 0 && delimStr.charCodeAt(0) < 128) {
|
|
12189
12208
|
readDelim = delimStr.charCodeAt(0);
|
|
@@ -12449,7 +12468,7 @@ export class Runtime {
|
|
|
12449
12468
|
rawState.substitutionStatus = 0;
|
|
12450
12469
|
if (rawState.variables._ !== undefined)
|
|
12451
12470
|
delete rawState.variables._;
|
|
12452
|
-
rawState.lastArgument =
|
|
12471
|
+
rawState.lastArgument = readLastArgument;
|
|
12453
12472
|
if (io.assignmentDiagnosticContext)
|
|
12454
12473
|
io.assignmentDiagnosticContext.name = undefined;
|
|
12455
12474
|
if (!existing) {
|
|
@@ -13156,6 +13175,8 @@ export class Runtime {
|
|
|
13156
13175
|
}
|
|
13157
13176
|
}
|
|
13158
13177
|
if (canSyncFn) {
|
|
13178
|
+
if (rawState.functionDepth >= this.budget.limits.maxFunctionDepth)
|
|
13179
|
+
this.budget.fail("maxFunctionDepth");
|
|
13159
13180
|
const prevCommands = this.budget.commands;
|
|
13160
13181
|
this.budget.tick();
|
|
13161
13182
|
rawState.substitutionStatus = 0;
|
|
@@ -13507,12 +13528,12 @@ export class Runtime {
|
|
|
13507
13528
|
return undefined;
|
|
13508
13529
|
}
|
|
13509
13530
|
const def = this.commands.get("printf");
|
|
13510
|
-
const isPlainTargetId = targetSpec !== undefined &&
|
|
13531
|
+
const isPlainTargetId = targetSpec !== undefined && isShellIdentifier(targetSpec) && !printfSlowTargets.has(targetSpec);
|
|
13511
13532
|
const isScalarTarget = isPlainTargetId && !store?.get(targetSpec);
|
|
13512
13533
|
const brkIdx = targetSpec !== undefined && !isPlainTargetId && targetSpec.endsWith("]") ? targetSpec.indexOf("[") : -1;
|
|
13513
13534
|
const arrName = isPlainTargetId && !isScalarTarget ? targetSpec : (brkIdx > 0 ? targetSpec.slice(0, brkIdx) : undefined);
|
|
13514
13535
|
const subExpr = isPlainTargetId && !isScalarTarget ? "0" : (brkIdx > 0 ? targetSpec.slice(brkIdx + 1, -1) : undefined);
|
|
13515
|
-
const isArrayTarget = arrName !== undefined &&
|
|
13536
|
+
const isArrayTarget = arrName !== undefined && isShellIdentifier(arrName) && !printfSlowTargets.has(arrName) && subExpr !== undefined && subExpr.length > 0 && !subExpr.includes("$") && !subExpr.includes("\x60");
|
|
13516
13537
|
if (def?.execute === printfCommand.execute && (isScalarTarget || isArrayTarget) && command.words.length <= this.budget.maxExpansionFieldsSmi) {
|
|
13517
13538
|
fastSubScratchArgs.length = 0;
|
|
13518
13539
|
let allStrings = true;
|
|
@@ -13973,7 +13994,201 @@ export class Runtime {
|
|
|
13973
13994
|
this._syncLoopInvariantSubMap.set(part, { text: res, outBytes, exitStatus: 0, dynamic: usesInduction });
|
|
13974
13995
|
return true;
|
|
13975
13996
|
}
|
|
13997
|
+
admitSyncArrayLoop(command, state) {
|
|
13998
|
+
const monitor = stateMonitor(state);
|
|
13999
|
+
const store = monitor?.store;
|
|
14000
|
+
if (!store || store.watches.size || hasUnpreparedLocals(state) || state.depth >= 24 || byteLocale(state.variables) || state.nounset || hasActiveVariableAttributes(state) || this.budget.limits.maxExpansionBytes !== Infinity || this.budget.limits.maxExpansionFields !== Infinity)
|
|
14001
|
+
return undefined;
|
|
14002
|
+
const initializer = command.expressions[0]?.tree;
|
|
14003
|
+
if (initializer?.kind !== "binary" || initializer.operator !== "=" || initializer.left.kind !== "name")
|
|
14004
|
+
return undefined;
|
|
14005
|
+
const induction = initializer.left.name;
|
|
14006
|
+
const dynamicNames = new Set(["PIPESTATUS", "LINENO", "_", "FUNCNAME", "DIRSTACK", "BASH_SUBSHELL"]);
|
|
14007
|
+
const assignments = [];
|
|
14008
|
+
const appends = new Map();
|
|
14009
|
+
for (const list of command.body.lists) {
|
|
14010
|
+
if (list.terminator || list.pipelines.length !== 1)
|
|
14011
|
+
return undefined;
|
|
14012
|
+
const pipeline = list.pipelines[0];
|
|
14013
|
+
const cmd = pipeline.commands[0];
|
|
14014
|
+
if (pipeline.negate || pipeline.commands.length !== 1 || cmd?.kind !== "simple" || cmd.redirects.length || cmd.words.length !== 1)
|
|
14015
|
+
return undefined;
|
|
14016
|
+
const assignment = getArrayAssignment(cmd.words[0]) ?? this.assignment(cmd.words[0]);
|
|
14017
|
+
if (!assignment || assignment.name === induction || controlNames.has(assignment.name) || dynamicNames.has(assignment.name) || monitor.hasOverlay(assignment.name) || state.readonlyVariables?.has(assignment.name))
|
|
14018
|
+
return undefined;
|
|
14019
|
+
if ("kind" in assignment) {
|
|
14020
|
+
const binding = store.get(assignment.name);
|
|
14021
|
+
if (!binding || binding.references !== 1 || state.exported.has(assignment.name))
|
|
14022
|
+
return undefined;
|
|
14023
|
+
if (assignment.kind === "element") {
|
|
14024
|
+
if (!binding.associative || assignment.append)
|
|
14025
|
+
return undefined;
|
|
14026
|
+
}
|
|
14027
|
+
else {
|
|
14028
|
+
if (binding.associative || !assignment.append || assignment.entries.some(entry => entry.index || entry.append))
|
|
14029
|
+
return undefined;
|
|
14030
|
+
appends.set(assignment.name, (appends.get(assignment.name) ?? 0) + assignment.entries.length);
|
|
14031
|
+
}
|
|
14032
|
+
}
|
|
14033
|
+
else if (assignment.append || store.get(assignment.name) || ["IFS", "LC_ALL", "LC_CTYPE", "LC_COLLATE", "LANG"].includes(assignment.name))
|
|
14034
|
+
return undefined;
|
|
14035
|
+
assignments.push(assignment);
|
|
14036
|
+
}
|
|
14037
|
+
if (assignments.length > 30 || !assignments.some(assignment => "kind" in assignment && assignment.kind === "element"))
|
|
14038
|
+
return undefined;
|
|
14039
|
+
const integer = { min: 1, max: 20, integer: true }; // Signed shell arithmetic is 64 bit.
|
|
14040
|
+
const decimal = (value) => {
|
|
14041
|
+
if (value === "")
|
|
14042
|
+
return true; // Unset/empty arithmetic operands are zero.
|
|
14043
|
+
let i = value[0] === "-" ? 1 : 0;
|
|
14044
|
+
if (i === value.length || value.length > 20 || (value[i] === "0" && i + 1 !== value.length))
|
|
14045
|
+
return false;
|
|
14046
|
+
for (; i < value.length; i++)
|
|
14047
|
+
if (value[i] < "0" || value[i] > "9")
|
|
14048
|
+
return false;
|
|
14049
|
+
return true;
|
|
14050
|
+
};
|
|
14051
|
+
const literalShape = (value) => {
|
|
14052
|
+
if (typeof value !== "string")
|
|
14053
|
+
return undefined;
|
|
14054
|
+
for (let i = 0; i < value.length; i++)
|
|
14055
|
+
if (value.charCodeAt(i) >= 128)
|
|
14056
|
+
return undefined;
|
|
14057
|
+
return { min: value.length, max: value.length, integer: decimal(value) };
|
|
14058
|
+
};
|
|
14059
|
+
const integerArrays = new Set();
|
|
14060
|
+
for (const [name, { binding }] of store.bindings) {
|
|
14061
|
+
if (!binding.associative)
|
|
14062
|
+
continue;
|
|
14063
|
+
if (![...binding.values.values()].every(slot => typeof slot.text.shellValue === "string" && decimal(slot.text.shellValue)))
|
|
14064
|
+
continue;
|
|
14065
|
+
const writesInteger = assignments.every(assignment => {
|
|
14066
|
+
if (assignment.name !== name || !("kind" in assignment) || assignment.kind !== "element")
|
|
14067
|
+
return true;
|
|
14068
|
+
const parts = assignment.value.parts.filter(part => part.kind !== "text" || part.value !== "");
|
|
14069
|
+
return parts.length === 1 && parts[0].kind === "arithmetic" || parts.every(part => part.kind === "text") && decimal(parts.map(part => part.value).join(""));
|
|
14070
|
+
});
|
|
14071
|
+
if (writesInteger)
|
|
14072
|
+
integerArrays.add(name);
|
|
14073
|
+
}
|
|
14074
|
+
const entry = new Map();
|
|
14075
|
+
for (const assignment of assignments) {
|
|
14076
|
+
if ("kind" in assignment)
|
|
14077
|
+
continue;
|
|
14078
|
+
const raw = state.variables[assignment.name];
|
|
14079
|
+
const shape = literalShape(raw === undefined ? "" : monitor.values.get(assignment.name, raw) ?? raw);
|
|
14080
|
+
if (!shape)
|
|
14081
|
+
return undefined;
|
|
14082
|
+
entry.set(assignment.name, shape);
|
|
14083
|
+
}
|
|
14084
|
+
// Find an invariant over successive iterations. Growing strings or unknown
|
|
14085
|
+
// key bounds decline before execution; no speculative writes or replay.
|
|
14086
|
+
for (let pass = 0; pass < 32; pass++) {
|
|
14087
|
+
const values = new Map(entry);
|
|
14088
|
+
values.set(induction, integer);
|
|
14089
|
+
const words = new WeakSet();
|
|
14090
|
+
const integerWords = new WeakSet();
|
|
14091
|
+
const scalar = (name) => {
|
|
14092
|
+
if (!isShellIdentifier(name) || controlNames.has(name) || dynamicNames.has(name) || store.get(name) || monitor.hasOverlay(name) || hasUnpreparedLocal(state, name))
|
|
14093
|
+
return undefined;
|
|
14094
|
+
const known = values.get(name);
|
|
14095
|
+
if (known)
|
|
14096
|
+
return known;
|
|
14097
|
+
const raw = state.variables[name];
|
|
14098
|
+
return literalShape(raw === undefined ? "" : monitor.values.get(name, raw) ?? raw);
|
|
14099
|
+
};
|
|
14100
|
+
const shapeWord = (word, key = false) => {
|
|
14101
|
+
if (!word.parts.length)
|
|
14102
|
+
return undefined;
|
|
14103
|
+
const shapes = [];
|
|
14104
|
+
for (const part of word.parts) {
|
|
14105
|
+
let shape;
|
|
14106
|
+
if (part.kind === "text") {
|
|
14107
|
+
if (part.byteValue || invokedValues.has(part) || !part.quoted && part.value.includes("~"))
|
|
14108
|
+
return undefined;
|
|
14109
|
+
shape = literalShape(part.value);
|
|
14110
|
+
}
|
|
14111
|
+
else if (part.kind === "arithmetic") {
|
|
14112
|
+
const names = new Set();
|
|
14113
|
+
if (!collectPureReadOnlySmiNames(part.expression, names) || [...names].some(name => !scalar(name)?.integer))
|
|
14114
|
+
return undefined;
|
|
14115
|
+
shape = integer;
|
|
14116
|
+
}
|
|
14117
|
+
else if (part.kind === "variable") {
|
|
14118
|
+
if (part.indirect || part.specialParameter || part.prefixNames || part.length || part.substring || part.transform || part.keys || dynamicNames.has(part.name))
|
|
14119
|
+
return undefined;
|
|
14120
|
+
const selector = getArraySelector(part);
|
|
14121
|
+
if (selector) {
|
|
14122
|
+
if (key || selector.kind !== "element" || !store.get(part.name)?.associative || monitor.hasOverlay(part.name) || controlNames.has(part.name))
|
|
14123
|
+
return undefined;
|
|
14124
|
+
const index = this.syncArraySubscriptWord(selector.index, state);
|
|
14125
|
+
if (!index || !shapeWord(index, true))
|
|
14126
|
+
return undefined;
|
|
14127
|
+
shape = { min: 0, max: integerArrays.has(part.name) ? 20 : Infinity, integer: integerArrays.has(part.name) };
|
|
14128
|
+
if (part.operator !== undefined) {
|
|
14129
|
+
if ((part.operator !== "-" && part.operator !== ":-") || !part.alternate || !part.alternate.parts.every(p => p.kind === "text"))
|
|
14130
|
+
return undefined;
|
|
14131
|
+
const alternate = shapeWord(part.alternate);
|
|
14132
|
+
if (!alternate)
|
|
14133
|
+
return undefined;
|
|
14134
|
+
shape = { min: part.operator === ":-" ? Math.min(1, alternate.min) : 0, max: Math.max(shape.max, alternate.max), integer: shape.integer && alternate.integer };
|
|
14135
|
+
}
|
|
14136
|
+
}
|
|
14137
|
+
else {
|
|
14138
|
+
if (part.operator !== undefined)
|
|
14139
|
+
return undefined;
|
|
14140
|
+
shape = scalar(part.name);
|
|
14141
|
+
}
|
|
14142
|
+
}
|
|
14143
|
+
else
|
|
14144
|
+
return undefined;
|
|
14145
|
+
if (!shape)
|
|
14146
|
+
return undefined;
|
|
14147
|
+
shapes.push(shape);
|
|
14148
|
+
}
|
|
14149
|
+
const nonempty = shapes.filter(shape => shape.max !== 0);
|
|
14150
|
+
const result = { min: shapes.reduce((sum, shape) => sum + shape.min, 0), max: shapes.reduce((sum, shape) => sum + shape.max, 0), integer: nonempty.length === 0 || nonempty.length === 1 && nonempty[0].integer };
|
|
14151
|
+
if (key && (result.min === 0 || result.max > 4096))
|
|
14152
|
+
return undefined;
|
|
14153
|
+
words.add(word);
|
|
14154
|
+
if (result.integer)
|
|
14155
|
+
integerWords.add(word);
|
|
14156
|
+
return result;
|
|
14157
|
+
};
|
|
14158
|
+
for (const assignment of assignments) {
|
|
14159
|
+
if ("kind" in assignment && assignment.kind === "compound") {
|
|
14160
|
+
if (assignment.entries.some(entry => !entry.value.parts.every(part => part.quoted) || !shapeWord(entry.value)))
|
|
14161
|
+
return undefined;
|
|
14162
|
+
}
|
|
14163
|
+
else {
|
|
14164
|
+
if ("kind" in assignment) {
|
|
14165
|
+
const index = this.syncArraySubscriptWord(assignment.index, state);
|
|
14166
|
+
if (!index || !shapeWord(index, true))
|
|
14167
|
+
return undefined;
|
|
14168
|
+
}
|
|
14169
|
+
const shape = shapeWord(assignment.value);
|
|
14170
|
+
if (!shape)
|
|
14171
|
+
return undefined;
|
|
14172
|
+
if (!("kind" in assignment))
|
|
14173
|
+
values.set(assignment.name, shape);
|
|
14174
|
+
}
|
|
14175
|
+
}
|
|
14176
|
+
let stable = true;
|
|
14177
|
+
for (const [name, before] of entry) {
|
|
14178
|
+
const after = values.get(name);
|
|
14179
|
+
const merged = { min: Math.min(before.min, after.min), max: Math.max(before.max, after.max), integer: before.integer && after.integer };
|
|
14180
|
+
if (merged.min !== before.min || merged.max !== before.max || merged.integer !== before.integer)
|
|
14181
|
+
stable = false;
|
|
14182
|
+
entry.set(name, merged);
|
|
14183
|
+
}
|
|
14184
|
+
if (stable)
|
|
14185
|
+
return { words, integerWords, appends };
|
|
14186
|
+
}
|
|
14187
|
+
return undefined;
|
|
14188
|
+
}
|
|
13976
14189
|
isPureSyncValueWord(word, rawState, allowAt = false) {
|
|
14190
|
+
if (this._activeSyncArrayLoopWords?.has(word))
|
|
14191
|
+
return true;
|
|
13977
14192
|
if (word.parts.length === 0)
|
|
13978
14193
|
return false;
|
|
13979
14194
|
for (let i = 0; i < word.parts.length; i++) {
|
|
@@ -15080,8 +15295,7 @@ export class Runtime {
|
|
|
15080
15295
|
if (!hasActiveVariableAttributes(rawState) &&
|
|
15081
15296
|
vName !== undefined &&
|
|
15082
15297
|
isShellIdentifier(vName) &&
|
|
15083
|
-
!
|
|
15084
|
-
vName !== "OPTIND" &&
|
|
15298
|
+
!printfSlowTargets.has(vName) &&
|
|
15085
15299
|
!rawState.readonlyVariables?.has(vName) &&
|
|
15086
15300
|
!rawState.variableAttributes?.get(vName) &&
|
|
15087
15301
|
!store?.get(vName) &&
|
|
@@ -15129,14 +15343,19 @@ export class Runtime {
|
|
|
15129
15343
|
if (hasUnpreparedLocals(rawState))
|
|
15130
15344
|
return false;
|
|
15131
15345
|
// Eligibility checks must not create bindings: the loop may never run.
|
|
15132
|
-
// Element subscripts need the normal arithmetic and relative-index evaluator.
|
|
15133
|
-
if (arrAssign.kind === "element")
|
|
15134
|
-
return false;
|
|
15135
15346
|
const curArr = store?.get(arrAssign.name);
|
|
15136
15347
|
const activeArrStore = store ?? stateMonitor(rawState)?.store;
|
|
15137
|
-
if (!curArr || curArr.references !== 1 || activeArrStore?.watches.has(arrAssign.name) || rawState.readonlyVariables?.has(arrAssign.name) || rawState.exported.has(arrAssign.name) || controlNames.has(arrAssign.name)) {
|
|
15348
|
+
if (!curArr || curArr.references !== 1 || activeArrStore?.watches.has(arrAssign.name) || rawState.readonlyVariables?.has(arrAssign.name) || rawState.variableAttributes?.has(arrAssign.name) || rawState.exported.has(arrAssign.name) || controlNames.has(arrAssign.name)) {
|
|
15138
15349
|
return false;
|
|
15139
15350
|
}
|
|
15351
|
+
if (arrAssign.kind === "element") {
|
|
15352
|
+
// Only the whole-loop proof can admit associative keys. Indexed
|
|
15353
|
+
// arithmetic and relative subscripts retain normal evaluation.
|
|
15354
|
+
const index = curArr.associative ? this.syncArraySubscriptWord(arrAssign.index, rawState) : undefined;
|
|
15355
|
+
if (!index || !this._activeSyncArrayLoopWords?.has(index) || !this.isPureSyncValueWord(index, rawState) || !this.isPureSyncValueWord(arrAssign.value, rawState))
|
|
15356
|
+
return false;
|
|
15357
|
+
continue;
|
|
15358
|
+
}
|
|
15140
15359
|
if (arrAssign.kind === "compound" && arrAssign.entries.length <= 16 && arrAssign.entries.every(e => !e.append)) {
|
|
15141
15360
|
let allEntriesOk = true;
|
|
15142
15361
|
for (let ei = 0; ei < arrAssign.entries.length; ei++) {
|
|
@@ -15554,7 +15773,7 @@ export class Runtime {
|
|
|
15554
15773
|
}
|
|
15555
15774
|
return res;
|
|
15556
15775
|
}
|
|
15557
|
-
syncLoopArithmeticReadsRemainInteger(steps, rawState) {
|
|
15776
|
+
syncLoopArithmeticReadsRemainInteger(steps, rawState, integerWords) {
|
|
15558
15777
|
const reads = new Set();
|
|
15559
15778
|
const seen = new WeakSet();
|
|
15560
15779
|
// Inspect words in commands, conditions, substitutions, and inlined functions.
|
|
@@ -15577,7 +15796,7 @@ export class Runtime {
|
|
|
15577
15796
|
const safeWrites = (items) => items.every(step => {
|
|
15578
15797
|
if (step.name && reads.has(step.name)) {
|
|
15579
15798
|
const literal = step.value?.plain;
|
|
15580
|
-
if (step.append || (!this.extractIntLoopStep(step, rawState) && (literal === undefined || !/^-?[0-9]+$/.test(literal))))
|
|
15799
|
+
if (step.append || (!integerWords?.has(step.value) && !this.extractIntLoopStep(step, rawState) && (literal === undefined || !/^-?[0-9]+$/.test(literal))))
|
|
15581
15800
|
return false;
|
|
15582
15801
|
}
|
|
15583
15802
|
if (step.readHereString?.varNames.some(name => reads.has(name)) || (step.readHereString?.arrayTarget && reads.has(step.readHereString.arrayTarget)))
|
|
@@ -15736,6 +15955,9 @@ export class Runtime {
|
|
|
15736
15955
|
const prevAssignedVars = this._activeSyncLoopAssignedVars;
|
|
15737
15956
|
const prevLoopIO = this._activeSyncLoopIO;
|
|
15738
15957
|
const prevInvMap = this._syncLoopInvariantSubMap;
|
|
15958
|
+
const prevArrayWords = this._activeSyncArrayLoopWords;
|
|
15959
|
+
const arrayLoop = command.kind === "arithmetic-for" ? this.admitSyncArrayLoop(command, rawState) : undefined;
|
|
15960
|
+
this._activeSyncArrayLoopWords = arrayLoop?.words;
|
|
15739
15961
|
this._activePrintfInductionName = printfInductionName;
|
|
15740
15962
|
this._activeSyncLoopAssignedVars = this.collectSyncLoopAssignedVars(command, rawState);
|
|
15741
15963
|
this._activeSyncLoopIO = io;
|
|
@@ -15750,6 +15972,7 @@ export class Runtime {
|
|
|
15750
15972
|
this._activeSyncLoopAssignedVars = prevAssignedVars;
|
|
15751
15973
|
this._activeSyncLoopIO = prevLoopIO;
|
|
15752
15974
|
this._syncLoopInvariantSubMap = prevInvMap;
|
|
15975
|
+
this._activeSyncArrayLoopWords = prevArrayWords;
|
|
15753
15976
|
}
|
|
15754
15977
|
if (!bodySyncOk) {
|
|
15755
15978
|
command._skipTrySyncLoop = true;
|
|
@@ -15788,7 +16011,7 @@ export class Runtime {
|
|
|
15788
16011
|
this._syncLoopInvariantSubMap = localInvMap;
|
|
15789
16012
|
try {
|
|
15790
16013
|
const { steps: bodyAssignments, redirectCount } = this.buildSyncLoopBody(command, rawState, io);
|
|
15791
|
-
if (bodyAssignments.length > 30 || !this.syncLoopArithmeticReadsRemainInteger(bodyAssignments, rawState))
|
|
16014
|
+
if (bodyAssignments.length > 30 || !this.syncLoopArithmeticReadsRemainInteger(bodyAssignments, rawState, arrayLoop?.integerWords))
|
|
15792
16015
|
return undefined;
|
|
15793
16016
|
const touched = this._syncArithRawWriteOnly ? new Set() : sharedSyncLoopTouched;
|
|
15794
16017
|
touched.clear();
|
|
@@ -15940,6 +16163,10 @@ export class Runtime {
|
|
|
15940
16163
|
: step.value ? [step.value] : [];
|
|
15941
16164
|
for (let wIdx = 0; wIdx < wordsToScan.length; wIdx++) {
|
|
15942
16165
|
const wVal = wordsToScan[wIdx];
|
|
16166
|
+
// The array-loop proof tracks integer values at each statement,
|
|
16167
|
+
// including scalars loaded from arrays earlier in the same iteration.
|
|
16168
|
+
if (arrayLoop?.words.has(wVal))
|
|
16169
|
+
continue;
|
|
15943
16170
|
for (let i = 0; i < wVal.parts.length; i++) {
|
|
15944
16171
|
const part = wVal.parts[i];
|
|
15945
16172
|
if (part.kind === "text" || part.kind === "variable")
|
|
@@ -16028,6 +16255,14 @@ export class Runtime {
|
|
|
16028
16255
|
return undefined;
|
|
16029
16256
|
}
|
|
16030
16257
|
const { e0, e1, e2, iterations, inductionName, startVal, limitVal, isLe, isSimpleLiteralAsc, arithNamesList, intSteps, allIntStepsReady, hasSubIntStep, hasDeferredSteps, deferredMask, touchedIntNamesList, } = plan;
|
|
16258
|
+
if (arrayLoop?.appends.size) {
|
|
16259
|
+
if (!isSimpleLiteralAsc)
|
|
16260
|
+
return undefined;
|
|
16261
|
+
for (const [name, count] of arrayLoop.appends) {
|
|
16262
|
+
if (store.get(name).maximum + iterations * count > 2147483647)
|
|
16263
|
+
return undefined;
|
|
16264
|
+
}
|
|
16265
|
+
}
|
|
16031
16266
|
if (inductionName === "OPTIND" || controlNames.has(inductionName) || monitor.hasOverlay(inductionName) || hasUnpreparedLocal(rawState, inductionName) || store?.get(inductionName) || rawState.readonlyVariables?.has(inductionName) || rawState.variableAttributes?.get(inductionName))
|
|
16032
16267
|
return undefined;
|
|
16033
16268
|
if (!isSimpleLiteralAsc && (!this.canSyncArithmeticWithoutFault(e0.tree, rawState, diagnosticLine) || !this.canSyncArithmeticWithoutFault(e1.tree, rawState, diagnosticLine) || !this.canSyncArithmeticWithoutFault(e2.tree, rawState, diagnosticLine)))
|
|
@@ -16035,6 +16270,8 @@ export class Runtime {
|
|
|
16035
16270
|
if (arithNamesList.length > 0) {
|
|
16036
16271
|
for (let a = 0; a < arithNamesList.length; a++) {
|
|
16037
16272
|
const refName = arithNamesList[a];
|
|
16273
|
+
if (store?.get(refName))
|
|
16274
|
+
return undefined;
|
|
16038
16275
|
if (refName === inductionName)
|
|
16039
16276
|
continue;
|
|
16040
16277
|
const initial = rawState.variables[refName];
|
|
@@ -18711,6 +18948,7 @@ export class Runtime {
|
|
|
18711
18948
|
signal.throwIfAborted();
|
|
18712
18949
|
child.extensions = forkExtensions(state.extensions, "subshell");
|
|
18713
18950
|
child.isolated = true;
|
|
18951
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
18714
18952
|
child.depth++;
|
|
18715
18953
|
const allocation = this.budget.values.scope();
|
|
18716
18954
|
scope.register(() => allocation.close());
|
|
@@ -18905,6 +19143,9 @@ export class Runtime {
|
|
|
18905
19143
|
})
|
|
18906
19144
|
: (tryCloneStateSync(state) ?? await cloneState(state, this.signal));
|
|
18907
19145
|
preparedChild = child;
|
|
19146
|
+
if (child._readOnlyStage)
|
|
19147
|
+
child.variables = { ...child.variables };
|
|
19148
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
18908
19149
|
if (!child._readOnlyStage) {
|
|
18909
19150
|
child.extensions = undefined;
|
|
18910
19151
|
child.extensions = forkExtensions(state.extensions, "pipeline");
|
|
@@ -19841,6 +20082,7 @@ export class Runtime {
|
|
|
19841
20082
|
try {
|
|
19842
20083
|
child.extensions = forkExtensions(state.extensions, "subshell");
|
|
19843
20084
|
child.isolated = true;
|
|
20085
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
19844
20086
|
child.loopDepth = 0;
|
|
19845
20087
|
if (state.extensions?.checkpoints.length)
|
|
19846
20088
|
await this.extensionCheckpoint("child-job-install", state, io);
|
|
@@ -21188,6 +21430,8 @@ export class Runtime {
|
|
|
21188
21430
|
async dispatchFastFunction(name, body, args, state, io, pendingResume) {
|
|
21189
21431
|
if (!pendingResume && state.depth >= this.budget.limits.maxSubstitutionDepth)
|
|
21190
21432
|
this.budget.fail("maxSubstitutionDepth");
|
|
21433
|
+
if (!pendingResume && state.functionDepth >= this.budget.limits.maxFunctionDepth)
|
|
21434
|
+
this.budget.fail("maxFunctionDepth");
|
|
21191
21435
|
const scope = io[invocationScope].child();
|
|
21192
21436
|
try {
|
|
21193
21437
|
const monitor = stateMonitor(state);
|
|
@@ -21700,6 +21944,8 @@ export class Runtime {
|
|
|
21700
21944
|
ensureRuntimeContext();
|
|
21701
21945
|
if (state.depth >= this.budget.limits.maxSubstitutionDepth)
|
|
21702
21946
|
this.budget.fail("maxSubstitutionDepth");
|
|
21947
|
+
if (state.functionDepth >= this.budget.limits.maxFunctionDepth)
|
|
21948
|
+
this.budget.fail("maxFunctionDepth");
|
|
21703
21949
|
const positional = state.positional;
|
|
21704
21950
|
const savedPositionals = stateMonitor(state).positionals.clone();
|
|
21705
21951
|
const positionalSetVersion = state.positionalSetVersion ?? 0;
|
|
@@ -22267,13 +22513,20 @@ export class Runtime {
|
|
|
22267
22513
|
const option = args.shift();
|
|
22268
22514
|
if (option === "--" || option === "-")
|
|
22269
22515
|
break;
|
|
22516
|
+
if (option === "--version") {
|
|
22517
|
+
await writeDiagnostic(context.stdout, "safe-bash (poe-code)\n");
|
|
22518
|
+
return 0;
|
|
22519
|
+
}
|
|
22520
|
+
if (option === "--login" || option === "--norc" || option === "--noprofile" || option === "--posix") {
|
|
22521
|
+
continue;
|
|
22522
|
+
}
|
|
22270
22523
|
const enabled = option[0] === "-";
|
|
22271
22524
|
if ((option === "-o" || option === "+o") && Object.hasOwn(options, args[0] ?? "")) {
|
|
22272
22525
|
options[args.shift()] = enabled;
|
|
22273
22526
|
continue;
|
|
22274
22527
|
}
|
|
22275
22528
|
const flags = option.slice(1);
|
|
22276
|
-
if (!flags.length || [...flags].some(flag => !Object.hasOwn(flagsByName, flag) && !(enabled && (flag === "c" || flag === "s")))) {
|
|
22529
|
+
if (!flags.length || [...flags].some(flag => !Object.hasOwn(flagsByName, flag) && !(enabled && (flag === "c" || flag === "s" || flag === "l" || flag === "i")))) {
|
|
22277
22530
|
await writeDiagnostic(context.stderr, `${context.command}: ${option}: unsupported option; supported flags are -c, -s, +/-a, +/-e, +/-u, +/-n, +/-B, +/-f, +/-C and +/-o ${Object.keys(options).join(", ")}\n`);
|
|
22278
22531
|
return 2;
|
|
22279
22532
|
}
|
|
@@ -23796,6 +24049,9 @@ export class Runtime {
|
|
|
23796
24049
|
await writeDiagnostic(context.stderr, `printf: ${name}: readonly variable\n`);
|
|
23797
24050
|
return 1;
|
|
23798
24051
|
}
|
|
24052
|
+
// Bash ignores assignments to its function-stack variable.
|
|
24053
|
+
if (name === "FUNCNAME")
|
|
24054
|
+
return status;
|
|
23799
24055
|
if (index || arrayStore(state)?.get(name)) {
|
|
23800
24056
|
const decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
|
|
23801
24057
|
const decode = (bytes) => {
|
|
@@ -24722,7 +24978,8 @@ export class Runtime {
|
|
|
24722
24978
|
let shadow;
|
|
24723
24979
|
try {
|
|
24724
24980
|
const tickets = operation.reserve({ generation: true, version: true, epoch: true, work: 8 });
|
|
24725
|
-
|
|
24981
|
+
if (enabled.has("I"))
|
|
24982
|
+
shadow = await store.get(name).copy(this.signal);
|
|
24726
24983
|
this.signal.throwIfAborted();
|
|
24727
24984
|
if (state.readonlyVariables?.has(name))
|
|
24728
24985
|
throw new ArrayFailure("readonly binding");
|
|
@@ -24731,7 +24988,7 @@ export class Runtime {
|
|
|
24731
24988
|
let released;
|
|
24732
24989
|
stateMonitor(state).publish(tickets, name, () => {
|
|
24733
24990
|
locals.set(name, saved);
|
|
24734
|
-
released = store.publish(name, shadow, tickets);
|
|
24991
|
+
released = shadow ? store.publish(name, shadow, tickets) : store.remove(name, tickets);
|
|
24735
24992
|
});
|
|
24736
24993
|
shadow = undefined;
|
|
24737
24994
|
await released;
|
|
@@ -25627,6 +25884,7 @@ export class Runtime {
|
|
|
25627
25884
|
const capture = new Capture();
|
|
25628
25885
|
const child = await cloneState(state, this.signal);
|
|
25629
25886
|
child.isolated = true;
|
|
25887
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
25630
25888
|
child.extensions = forkExtensions(state.extensions, "substitution");
|
|
25631
25889
|
if (state.profile !== "sh")
|
|
25632
25890
|
child.errexit = false;
|
|
@@ -25680,6 +25938,7 @@ export class Runtime {
|
|
|
25680
25938
|
}
|
|
25681
25939
|
const child = await cloneState(state, this.signal);
|
|
25682
25940
|
child.isolated = true;
|
|
25941
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
25683
25942
|
child.extensions = forkExtensions(state.extensions, "substitution");
|
|
25684
25943
|
if (state.profile !== "sh")
|
|
25685
25944
|
child.errexit = false;
|
|
@@ -25733,6 +25992,7 @@ export class Runtime {
|
|
|
25733
25992
|
const capture = new Capture();
|
|
25734
25993
|
const child = await cloneState(state, this.signal);
|
|
25735
25994
|
child.isolated = true;
|
|
25995
|
+
child.variables.BASH_SUBSHELL = String(Number(state.variables.BASH_SUBSHELL ?? 0) + 1);
|
|
25736
25996
|
child.extensions = forkExtensions(state.extensions, "substitution");
|
|
25737
25997
|
if (state.profile !== "sh")
|
|
25738
25998
|
child.errexit = false;
|
|
@@ -25835,7 +26095,7 @@ export class Runtime {
|
|
|
25835
26095
|
if (part.length)
|
|
25836
26096
|
return String(binding?.values.size ?? (part.name === "FUNCNAME" && state.variables.FUNCNAME === undefined ? state.functionNames?.length ?? 0 : state.variables[part.name] === undefined ? 0 : 1));
|
|
25837
26097
|
const values = await this.arrayMembers(part.name, state, io, selector.kind === "keys" || part.keys === true, part.substring);
|
|
25838
|
-
const space = (selector.kind === "keys" || part.keys === true) ? Boolean(hereDocument || (selector.separator === "@" ? !part.quoted && !split || state.variables.IFS === "" : !part.quoted && split && state.variables.IFS === "")) : (!split && selector.separator === "@");
|
|
26098
|
+
const space = (selector.kind === "keys" || part.keys === true) ? Boolean(hereDocument || (selector.separator === "@" ? !part.quoted && !split || state.variables.IFS === "" : !part.quoted && split && state.variables.IFS === "")) : (!split && selector.separator === "@" && (!part.substring || !part.quoted || state.variables.IFS === ""));
|
|
25839
26099
|
return this.arrayJoin(store.owner, values, space ? " " : this.ifsSeparator(state, io));
|
|
25840
26100
|
}
|
|
25841
26101
|
if (part.substring && (part.name === "@" || part.name === "*")) {
|
|
@@ -26477,7 +26737,7 @@ export class Runtime {
|
|
|
26477
26737
|
}
|
|
26478
26738
|
if (part.indirect || part.specialParameter)
|
|
26479
26739
|
return undefined;
|
|
26480
|
-
if (part.name === "@" || part.name === "*" || part.name === "PIPESTATUS" || part.name === "LINENO" || part.name === "_" || part.name === "FUNCNAME" || part.name === "DIRSTACK")
|
|
26740
|
+
if (part.name === "@" || part.name === "*" || part.name === "PIPESTATUS" || part.name === "LINENO" || part.name === "BASH_SUBSHELL" || part.name === "_" || part.name === "FUNCNAME" || part.name === "DIRSTACK")
|
|
26481
26741
|
return undefined;
|
|
26482
26742
|
if (!isShellIdentifier(part.name))
|
|
26483
26743
|
return undefined;
|
|
@@ -26558,7 +26818,7 @@ export class Runtime {
|
|
|
26558
26818
|
}
|
|
26559
26819
|
const ifsVal = monitor?.values.get("IFS", rawVars.IFS ?? " ") ?? rawVars.IFS ?? " ";
|
|
26560
26820
|
if (validElemOp && typeof ifsVal === "string" && (ifsVal.length === 0 || ifsVal.charCodeAt(0) < 128)) {
|
|
26561
|
-
const sep = selector.separator === "@" && (ifsVal.length === 0 || !isKeys && part.operator === undefined) ? " " : ifsVal.length > 0 ? ifsVal[0] : "";
|
|
26821
|
+
const sep = selector.separator === "@" && (ifsVal.length === 0 || !isKeys && part.operator === undefined && !part.substring) ? " " : ifsVal.length > 0 ? ifsVal[0] : "";
|
|
26562
26822
|
const parameterLine = part.line ?? overrideDiagnosticLine;
|
|
26563
26823
|
const evalSliceInt = (w) => {
|
|
26564
26824
|
if (w.parts.length === 0)
|
|
@@ -26673,20 +26933,9 @@ export class Runtime {
|
|
|
26673
26933
|
return undefined;
|
|
26674
26934
|
}
|
|
26675
26935
|
if (selector.kind === "element") {
|
|
26676
|
-
const
|
|
26677
|
-
|
|
26678
|
-
|
|
26679
|
-
if (byteLocale(rawVars) || rawState.depth >= 24)
|
|
26680
|
-
return undefined;
|
|
26681
|
-
try {
|
|
26682
|
-
subWord = parseArraySubscript(selector.index.source ?? selector.index.decimal, this.budget.parsing, false, rawState.depth, false, rawState.extensions?.syntax);
|
|
26683
|
-
cachedSub._cachedWord = subWord;
|
|
26684
|
-
cachedSub._cachedSyntax = rawState.extensions?.syntax;
|
|
26685
|
-
}
|
|
26686
|
-
catch {
|
|
26687
|
-
return undefined;
|
|
26688
|
-
}
|
|
26689
|
-
}
|
|
26936
|
+
const subWord = this.syncArraySubscriptWord(selector.index, rawState);
|
|
26937
|
+
if (!subWord)
|
|
26938
|
+
return undefined;
|
|
26690
26939
|
const subVal = this.fastValueWord(subWord, rawState, io, false, false, false, false, undefined, part.line ?? overrideDiagnosticLine);
|
|
26691
26940
|
if (typeof subVal !== "string")
|
|
26692
26941
|
return undefined;
|
|
@@ -26861,6 +27110,14 @@ export class Runtime {
|
|
|
26861
27110
|
if (part.length || part.operator !== undefined || this.budget.limits.maxExpansionBytes !== Infinity || rawState.depth + (io.parameterDepth ?? 0) >= 60 || !part.substring.offset.parts.every(p => p.kind === "text" || p.kind === "arithmetic" || (p.kind === "variable" && !p.operator && !p.substring)) || (part.substring.length && !part.substring.length.parts.every(p => p.kind === "text" || p.kind === "arithmetic" || (p.kind === "variable" && !p.operator && !p.substring))) || ValueScope.prototype.reserve !== defaultValueScopeReserve || String.prototype.codePointAt !== defaultStringCodePointAt || globalThis.Float64Array !== defaultFloat64Array || (!part.substring.offset.parts.length && !part.substring.length)) {
|
|
26862
27111
|
return undefined;
|
|
26863
27112
|
}
|
|
27113
|
+
// Resolve the parameter before expanding either arithmetic operand.
|
|
27114
|
+
const raw = rawVars[part.name];
|
|
27115
|
+
this.requireParameter(raw, part.name, state, io, part.line ?? overrideDiagnosticLine);
|
|
27116
|
+
if (raw === undefined) {
|
|
27117
|
+
if (split && !part.quoted)
|
|
27118
|
+
return undefined;
|
|
27119
|
+
continue;
|
|
27120
|
+
}
|
|
26864
27121
|
const parameterLine = part.line ?? overrideDiagnosticLine;
|
|
26865
27122
|
const evalSubInt = (w) => {
|
|
26866
27123
|
if (w.parts.length === 0)
|
|
@@ -26886,13 +27143,6 @@ export class Runtime {
|
|
|
26886
27143
|
const lenNum = part.substring.length ? evalSubInt(part.substring.length) : undefined;
|
|
26887
27144
|
if (part.substring.length && lenNum === undefined)
|
|
26888
27145
|
return undefined;
|
|
26889
|
-
const raw = rawVars[part.name];
|
|
26890
|
-
this.requireParameter(raw, part.name, state, io, part.line ?? overrideDiagnosticLine);
|
|
26891
|
-
if (raw === undefined) {
|
|
26892
|
-
if (split && !part.quoted)
|
|
26893
|
-
return undefined;
|
|
26894
|
-
continue;
|
|
26895
|
-
}
|
|
26896
27146
|
const val = this._syncArithRawWriteOnly && this._syncArithTouched?.has(part.name) ? raw : (monitor?.values.get(part.name, raw) ?? raw);
|
|
26897
27147
|
if (typeof val !== "string" || val.length > this.budget.limits.maxExpansionBytes)
|
|
26898
27148
|
return undefined;
|
|
@@ -35921,6 +36171,8 @@ export class Runtime {
|
|
|
35921
36171
|
if (p.kind === "text")
|
|
35922
36172
|
continue;
|
|
35923
36173
|
if (p.kind === "variable") {
|
|
36174
|
+
if (p.name === "BASH_SUBSHELL")
|
|
36175
|
+
return false;
|
|
35924
36176
|
if (!p.indirect && !p.prefixNames && !p.length && !p.substring && !p.transform && p.operator === undefined && getArraySelector(p) === undefined && (p.name === "?" || p.name === "#" || (p.name.length === 1 && p.name >= "1" && p.name <= "9"))) {
|
|
35925
36177
|
const activePos = this._fastSubPositional ?? rawState.positional;
|
|
35926
36178
|
if (rawState.nounset && p.name >= "1" && p.name <= "9" && activePos[p.name.charCodeAt(0) - 49] === undefined)
|