@poe-platform/safe-bash 0.1.800 → 0.1.802
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -5
- package/dist/image-ast/index.browser.js +122 -76
- package/dist/image-ast/index.js +122 -76
- package/dist/pdf-ast/index.js +4 -3
- package/dist/safe-bash/chunks/chunk-3HQU4OJO.js +13 -0
- package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-44ALJ4QG.js} +5809 -7424
- package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
- package/dist/safe-bash/chunks/chunk-4BSJLKNM.js +14 -0
- package/dist/safe-bash/chunks/chunk-4D4N7IU2.js +47 -0
- package/dist/safe-bash/chunks/chunk-55YJASTN.js +14 -0
- package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
- package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
- package/dist/safe-bash/chunks/chunk-7ZBU7KYV.js +14 -0
- package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
- package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-BJA5XNP6.js} +6 -6
- package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
- package/dist/safe-bash/chunks/chunk-DQP3VHSB.js +15 -0
- package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
- package/dist/safe-bash/chunks/chunk-FZE4HW6G.js +11 -0
- package/dist/safe-bash/chunks/chunk-GEG3BWGE.js +14 -0
- package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-GETUOD5D.js} +4 -4
- package/dist/safe-bash/chunks/chunk-HBCN24ZA.js +50 -0
- package/dist/safe-bash/chunks/chunk-HZ7BWKQ3.js +13 -0
- package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-HZAMGT5I.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
- package/dist/safe-bash/chunks/chunk-KDNSPLII.js +83 -0
- package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-NQCM3TYR.js} +922 -658
- package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-PH63PLPZ.js} +8 -8
- package/dist/safe-bash/chunks/chunk-QGUV42T5.js +44 -0
- package/dist/safe-bash/chunks/chunk-R3NAKOED.js +51 -0
- package/dist/safe-bash/chunks/chunk-RRR7AQ24.js +38 -0
- package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-RSTHLAF3.js} +30 -23
- package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-SHEMU2Z7.js} +378 -1148
- package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-VKNVHEX3.js} +2 -7
- package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +962 -0
- package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-WDLGKIHD.js} +56 -39
- package/dist/safe-bash/chunks/chunk-XAQMU6OY.js +14 -0
- package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
- package/dist/safe-bash/chunks/chunk-ZVD5IS4V.js +49 -0
- package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
- package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
- package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
- package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
- package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
- package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
- package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
- package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
- package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
- package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
- package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
- package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
- package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
- package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
- package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
- package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-6GWJUQAV.js} +237 -145
- package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
- package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
- package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
- package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
- package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
- package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
- package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
- package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
- package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
- package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
- package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
- package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-EFANWIHL.js → chunk-GY3BWK7K.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
- package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
- package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
- package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
- package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
- package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WBNZ4PRE.js → chunk-NGG2XL56.js} +7 -4
- package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
- package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GLOZX57Y.js → chunk-OQKC5ZU2.js} +23 -114
- package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
- package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
- package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
- package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
- package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
- package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
- package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
- package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-VT6MJBEI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
- package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
- package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
- package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-X54L3DBL.js} +6 -9
- package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
- package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
- package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-YVNGTIJO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
- package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
- package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
- package/dist/safe-bash/commands/apply-patch/index.browser.js +14 -0
- package/dist/safe-bash/commands/archive/index.browser.js +36 -0
- package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
- package/dist/safe-bash/commands/column/index.browser.js +12 -0
- package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/docx/index.browser.js +1 -1
- package/dist/safe-bash/commands/du/index.browser.js +14 -0
- package/dist/safe-bash/commands/execution.js +19 -13
- package/dist/safe-bash/commands/expr/index.browser.js +12 -0
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/file/index.browser.js +14 -0
- package/dist/safe-bash/commands/filesystem.d.ts +1 -1
- package/dist/safe-bash/commands/filesystem.js +26 -15
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/grep-aliases/index.browser.js +14 -0
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/html-to-markdown/index.browser.js +16 -0
- package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
- package/dist/safe-bash/commands/media/index.browser.js +1 -1
- package/dist/safe-bash/commands/metadata/index.browser.js +21 -0
- package/dist/safe-bash/commands/network/curl.d.ts +1 -1
- package/dist/safe-bash/commands/network/curl.js +1 -3
- package/dist/safe-bash/commands/network/index.browser.js +4 -4
- package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
- package/dist/safe-bash/commands/network/platform-portable.js +1 -26
- package/dist/safe-bash/commands/network/public.d.ts +2 -2
- package/dist/safe-bash/commands/network/public.js +2 -2
- package/dist/safe-bash/commands/network/transport.js +2 -2
- package/dist/safe-bash/commands/network/wget.d.ts +1 -1
- package/dist/safe-bash/commands/network/wget.js +1 -3
- package/dist/safe-bash/commands/node/filesystem.js +3 -2
- package/dist/safe-bash/commands/node/index.browser.js +8 -8
- package/dist/safe-bash/commands/node/types.js +1 -1
- package/dist/safe-bash/commands/op/index.browser.js +3 -3
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
- package/dist/safe-bash/commands/python/index.browser.js +11 -11
- package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
- package/dist/safe-bash/commands/python/manifest.js +6 -3
- package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
- package/dist/safe-bash/commands/python/shell-capability.js +3 -2
- package/dist/safe-bash/commands/python/worker.browser.js +3 -3
- package/dist/safe-bash/commands/regex-execution/public.browser.js +8 -6
- package/dist/safe-bash/commands/safejs/runtime.js +16 -7
- package/dist/safe-bash/commands/split/index.browser.js +14 -0
- package/dist/safe-bash/commands/standard.d.ts +1 -0
- package/dist/safe-bash/commands/standard.js +2 -1
- package/dist/safe-bash/commands/stream-format/index.browser.js +11 -0
- package/dist/safe-bash/commands/stream-inspection/index.browser.js +11 -0
- package/dist/safe-bash/commands/streams.js +11 -29
- package/dist/safe-bash/commands/table-text/index.browser.js +11 -0
- package/dist/safe-bash/commands/text.js +269 -496
- package/dist/safe-bash/commands/time-env/index.browser.js +15 -0
- package/dist/safe-bash/commands/tree/index.browser.js +14 -0
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/xml/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/core.browser.js +1 -1
- package/dist/safe-bash/core.d.ts +6 -1
- package/dist/safe-bash/core.js +1 -1
- package/dist/safe-bash/full-core.browser.js +308 -295
- package/dist/safe-bash/jobs.browser.js +5 -5
- package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
- package/dist/safe-bash/optional-host.browser.js +15 -15
- package/dist/safe-bash/plugins/composition.d.ts +1 -0
- package/dist/safe-bash/plugins/composition.js +3 -8
- package/dist/safe-bash/plugins/index.browser.js +41 -27
- package/dist/safe-bash/registry-entry.browser.js +42 -28
- package/dist/safe-bash/search.browser.js +48 -0
- package/dist/safe-bash/shell/arrays/bindings.js +1 -1
- package/dist/safe-bash/shell/arrays/state.js +4 -0
- package/dist/safe-bash/shell/brace-expansion.js +1 -1
- package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
- package/dist/safe-bash/shell/dynamic-variables.js +25 -0
- package/dist/safe-bash/shell/parser.js +8 -1
- package/dist/safe-bash/shell/runtime.d.ts +4 -13
- package/dist/safe-bash/shell/runtime.js +334 -1049
- package/dist/safe-bash/shell/shell.js +2 -54
- package/dist/safe-bash/shell-entry.browser.js +35 -26
- package/dist/safe-bash/trap.browser.js +4 -4
- package/dist/safe-bash/yq-browser/index.js +1 -1
- package/dist/safe-bash-base-encoding-engine/base.js +2 -2
- package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
- package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
- package/dist/safe-bash-byte-input-engine/index.js +4 -1
- package/dist/safe-bash-checksum-engine/index.js +13 -6
- package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
- package/dist/safe-bash-command-apply-patch/apply.js +4 -3
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
- package/dist/safe-bash-command-apply-patch/parser.js +1 -1
- package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
- package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
- package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
- package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
- package/dist/safe-bash-command-awk/awk-values.js +1 -1
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-bc/index.d.ts +2 -0
- package/dist/safe-bash-command-bc/index.js +123 -92
- package/dist/safe-bash-command-column/column.js +5 -5
- package/dist/safe-bash-command-column/display.d.ts +1 -1
- package/dist/safe-bash-command-column/display.js +1 -1
- package/dist/safe-bash-command-column/index.js +5 -5
- package/dist/safe-bash-command-column/internal.d.ts +0 -2
- package/dist/safe-bash-command-column/internal.js +1 -1
- package/dist/safe-bash-command-column/layout.js +4 -4
- package/dist/safe-bash-command-column/table.js +2 -2
- package/dist/safe-bash-command-comm/comm.js +1 -1
- package/dist/safe-bash-command-comm/index.js +1 -1
- package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
- package/dist/safe-bash-command-csvcut/index.js +1 -0
- package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
- package/dist/safe-bash-command-csvgrep/index.js +2 -2
- package/dist/safe-bash-command-csvkit/index.js +9 -9
- package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
- package/dist/safe-bash-command-curl/curl.js +1 -1
- package/dist/safe-bash-command-curl/index.js +1 -1
- package/dist/safe-bash-command-dd/index.js +2 -0
- package/dist/safe-bash-command-diff/diff.js +1 -1
- package/dist/safe-bash-command-diff/index.js +1 -1
- package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
- package/dist/safe-bash-command-fd/index.js +9 -9
- package/dist/safe-bash-command-ffmpeg/index.js +31 -8
- package/dist/safe-bash-command-file/index.js +1 -1
- package/dist/safe-bash-command-file/shared.js +1 -1
- package/dist/safe-bash-command-find/find.js +1 -1
- package/dist/safe-bash-command-find/index.js +1 -1
- package/dist/safe-bash-command-gzip/index.js +3 -2
- package/dist/safe-bash-command-hexdump/command.js +4 -4
- package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
- package/dist/safe-bash-command-hexdump/index.js +4 -4
- package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
- package/dist/safe-bash-command-hexdump/internal.js +1 -1
- package/dist/safe-bash-command-hexdump/io.js +2 -2
- package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
- package/dist/safe-bash-command-hexdump/options.js +2 -2
- package/dist/safe-bash-command-hostname/index.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
- package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
- package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
- package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
- package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
- package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
- package/dist/safe-bash-command-htmlq/index.js +27 -9
- package/dist/safe-bash-command-iconv/codec.js +1 -1
- package/dist/safe-bash-command-iconv/command.js +2 -2
- package/dist/safe-bash-command-iconv/index.js +2 -2
- package/dist/safe-bash-command-imagemagick/index.js +24 -6
- package/dist/safe-bash-command-join/index.js +1 -1
- package/dist/safe-bash-command-join/join.js +1 -1
- package/dist/safe-bash-command-jq/index.js +1 -1
- package/dist/safe-bash-command-jq/jq.js +1 -1
- package/dist/safe-bash-command-less/index.js +43 -28
- package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
- package/dist/safe-bash-command-nl/index.js +1 -1
- package/dist/safe-bash-command-nl/nl.js +1 -1
- package/dist/safe-bash-command-numfmt/index.js +0 -11
- package/dist/safe-bash-command-od/index.js +101 -68
- package/dist/safe-bash-command-pandoc/command.js +1 -1
- package/dist/safe-bash-command-pandoc/index.js +1 -1
- package/dist/safe-bash-command-paste/index.js +1 -1
- package/dist/safe-bash-command-paste/paste.js +1 -1
- package/dist/safe-bash-command-pathchk/index.js +3 -13
- package/dist/safe-bash-command-pdfimages/index.js +27 -11
- package/dist/safe-bash-command-pdfinfo/index.js +19 -10
- package/dist/safe-bash-command-pdftk/index.js +3 -3
- package/dist/safe-bash-command-pdftoppm/index.js +26 -10
- package/dist/safe-bash-command-pdftotext/index.js +27 -13
- package/dist/safe-bash-command-qpdf/index.js +5 -5
- package/dist/safe-bash-command-rg/index.js +1 -1
- package/dist/safe-bash-command-rg/rg-command.d.ts +0 -1
- package/dist/safe-bash-command-rg/rg-command.js +3 -5
- package/dist/safe-bash-command-sed/index.js +1 -1
- package/dist/safe-bash-command-sed/sed.js +1 -1
- package/dist/safe-bash-command-shuf/options.d.ts +1 -0
- package/dist/safe-bash-command-shuf/options.js +2 -4
- package/dist/safe-bash-command-shuf/shuf.js +2 -1
- package/dist/safe-bash-command-soffice/index.js +20 -16
- package/dist/safe-bash-command-split/index.js +3 -3
- package/dist/safe-bash-command-split/io.js +1 -1
- package/dist/safe-bash-command-split/outputs.js +2 -2
- package/dist/safe-bash-command-split/split.js +3 -3
- package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
- package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
- package/dist/safe-bash-command-sqlite3/index.js +284 -85
- package/dist/safe-bash-command-ssconvert/commands.js +9 -9
- package/dist/safe-bash-command-ssconvert/core.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
- package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
- package/dist/safe-bash-command-ssconvert/index.js +20 -20
- package/dist/safe-bash-command-tar/extract.js +1 -1
- package/dist/safe-bash-command-tar/index.js +5 -4
- package/dist/safe-bash-command-tar/modes.js +2 -2
- package/dist/safe-bash-command-tree/arguments.js +3 -3
- package/dist/safe-bash-command-tree/charset.js +1 -1
- package/dist/safe-bash-command-tree/index.js +4 -4
- package/dist/safe-bash-command-tree/io.js +1 -1
- package/dist/safe-bash-command-tree/pattern.js +2 -2
- package/dist/safe-bash-command-tree/tree.js +4 -4
- package/dist/safe-bash-command-unexpand/index.js +1 -1
- package/dist/safe-bash-command-unexpand/unexpand.js +1 -1
- package/dist/safe-bash-command-unrtf/index.js +14 -7
- package/dist/safe-bash-command-unzip/index.js +1 -1
- package/dist/safe-bash-command-unzip/unzip.js +1 -1
- package/dist/safe-bash-command-wget/index.js +1 -1
- package/dist/safe-bash-command-wget/wget.js +1 -1
- package/dist/safe-bash-command-xan/argv.d.ts +1 -1
- package/dist/safe-bash-command-xan/argv.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +5 -3
- package/dist/safe-bash-command-xan/csv.d.ts +1 -1
- package/dist/safe-bash-command-xan/csv.js +1 -1
- package/dist/safe-bash-command-xan/index.js +7 -7
- package/dist/safe-bash-command-xan/io.js +3 -3
- package/dist/safe-bash-command-xmllint/index.js +1 -1
- package/dist/safe-bash-command-xxd/index.js +105 -91
- package/dist/safe-bash-command-xz/command.d.ts +2 -0
- package/dist/safe-bash-command-xz/index.d.ts +1 -1
- package/dist/safe-bash-command-xz/index.js +8 -0
- package/dist/safe-bash-command-yq/query.js +1 -1
- package/dist/safe-bash-command-zip/index.js +1 -1
- package/dist/safe-bash-command-zip/zip.js +1 -1
- package/dist/safe-bash-contracts/escaping.js +3 -3
- package/dist/safe-bash-contracts/filesystem-output.js +2 -2
- package/dist/safe-bash-contracts/index.d.ts +1 -0
- package/dist/safe-bash-contracts/index.js +7 -3
- package/dist/safe-bash-contracts/io.d.ts +4 -1
- package/dist/safe-bash-contracts/io.js +3 -1
- package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
- package/dist/safe-bash-contracts/output.js +2 -2
- package/dist/safe-bash-diff-engine/index.js +1 -1
- package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
- package/dist/safe-bash-diff-engine/shared.js +1 -1
- package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
- package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
- package/dist/safe-bash-io-engine/internal.js +1 -1
- package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
- package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
- package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
- package/dist/safe-bash-mcp/index.browser.js +416 -0
- package/dist/safe-bash-mcp/index.d.ts +54 -2
- package/dist/safe-bash-mcp/index.js +286 -90
- package/dist/safe-bash-network-engine/aggregate.js +2 -2
- package/dist/safe-bash-network-engine/args.js +4 -4
- package/dist/safe-bash-network-engine/authorizer.js +1 -1
- package/dist/safe-bash-network-engine/body.js +6 -6
- package/dist/safe-bash-network-engine/decode.d.ts +1 -1
- package/dist/safe-bash-network-engine/decode.js +3 -4
- package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
- package/dist/safe-bash-network-engine/form-content-type.js +2 -2
- package/dist/safe-bash-network-engine/form-headers.js +2 -2
- package/dist/safe-bash-network-engine/glob.js +1 -1
- package/dist/safe-bash-network-engine/index.js +4 -4
- package/dist/safe-bash-network-engine/input.js +6 -6
- package/dist/safe-bash-network-engine/output.js +2 -2
- package/dist/safe-bash-network-engine/platform-portable.js +3 -3
- package/dist/safe-bash-network-engine/shared.js +2 -2
- package/dist/safe-bash-network-engine/types.d.ts +7 -2
- package/dist/safe-bash-network-engine/types.js +1 -1
- package/dist/safe-bash-network-engine/url.js +2 -2
- package/dist/safe-bash-query-engine/capture.js +3 -3
- package/dist/safe-bash-query-engine/delpaths.js +3 -3
- package/dist/safe-bash-query-engine/formats.js +2 -2
- package/dist/safe-bash-query-engine/index.js +11 -11
- package/dist/safe-bash-query-engine/indices.js +3 -3
- package/dist/safe-bash-query-engine/input.js +1 -1
- package/dist/safe-bash-query-engine/interpreter.js +9 -9
- package/dist/safe-bash-query-engine/parser.js +1 -1
- package/dist/safe-bash-query-engine/query-core.js +11 -11
- package/dist/safe-bash-query-engine/regex.js +4 -4
- package/dist/safe-bash-query-engine/splits.js +5 -5
- package/dist/safe-bash-query-engine/values.js +2 -2
- package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
- package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
- package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
- package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
- package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
- package/dist/safe-bash-regex-engine/index.js +6 -4
- package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -1
- package/dist/safe-bash-regex-engine/text/budget.js +1 -1
- package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
- package/dist/safe-bash-regex-engine/text/regex.js +6 -4
- package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
- package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +189 -227
- package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
- package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
- package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
- package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
- package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
- package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
- package/dist/spreadsheet-engine/formulas/parser.js +3 -1
- package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
- package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
- package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
- package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
- package/dist/spreadsheet-format-xls/biff.js +1 -1
- package/dist/xlsx-ast/xlsx.js +8 -5
- package/package.json +68 -12
- package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
- /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
|
@@ -245,6 +245,17 @@ function input(context, name = "-") {
|
|
|
245
245
|
}
|
|
246
246
|
return readBytes(context.stdin, context.signal);
|
|
247
247
|
}
|
|
248
|
+
const budget = context.inputBudget;
|
|
249
|
+
if (budget && Number.isFinite(budget.maxBytes)) {
|
|
250
|
+
return (async function* () {
|
|
251
|
+
let total = 0;
|
|
252
|
+
for await (const bytes of inputFileSlow(context, name)) {
|
|
253
|
+
total += bytes.byteLength;
|
|
254
|
+
budget.check(total);
|
|
255
|
+
yield bytes;
|
|
256
|
+
}
|
|
257
|
+
})();
|
|
258
|
+
}
|
|
248
259
|
const backing = getRuntimeBackingFileSystem(context.fs);
|
|
249
260
|
if (!context.signal.aborted && backing !== void 0 && backing.capabilitiesFor === void 0 && context.fs.readStream && context.fs.capabilities.streamingRead !== false && context.fs.capabilities.read !== false && Object.getPrototypeOf(backing)?.constructor?.name === "MemoryFileSystem" && !Object.prototype.hasOwnProperty.call(backing, "readStream")) {
|
|
250
261
|
const resolvedPath = pathOf(context, name);
|
|
@@ -27,6 +27,8 @@ function createOriginAuthorizer(allowlist = "*", options = {}) {
|
|
|
27
27
|
}
|
|
28
28
|
return (request) => {
|
|
29
29
|
const url = new URL(request.url);
|
|
30
|
+
const hostHeaders = request.headers?.filter(([name]) => name.toLowerCase() === "host") ?? [];
|
|
31
|
+
if (hostHeaders.length > 1 || hostHeaders.some(([, value]) => value.toLowerCase() !== url.host.toLowerCase())) return false;
|
|
30
32
|
const hostname = url.hostname.toLowerCase().replace(/\.$/u, "");
|
|
31
33
|
if (denyPrivateNetworks) {
|
|
32
34
|
request.requirePrivateNetworkDeny?.();
|
|
@@ -51,6 +51,11 @@ function inferDelimiter(path) {
|
|
|
51
51
|
var shortOptions = { B: "byte-offset", S: "start-condition", E: "end-condition", H: "human-readable", c: "check-alignment", a: "approx", p: "parallel", t: "threads", h: "help", o: "output", d: "delimiter", n: "no-headers", j: "just-names", s: "start", e: "end", l: "len", i: "index", I: "indices", L: "last" };
|
|
52
52
|
var switches = /* @__PURE__ */ new Set(["help", "no-headers", "just-names", "csv", "human-readable", "check-alignment", "approx", "parallel", "raw", "evaluate", "evaluate-file"]);
|
|
53
53
|
var extraShort = {
|
|
54
|
+
dedup: { s: "select", l: "keep-last", S: "sorted" },
|
|
55
|
+
enum: { c: "column-name", S: "start" },
|
|
56
|
+
from: { f: "format" },
|
|
57
|
+
cat: { p: "pad" },
|
|
58
|
+
split: { S: "size", O: "out-dir", f: "filename", c: "chunks" },
|
|
54
59
|
head: { l: "limit" },
|
|
55
60
|
tail: { l: "limit" },
|
|
56
61
|
sort: { s: "select", N: "numeric", R: "reverse", u: "uniq" },
|
|
@@ -61,9 +66,18 @@ var extraShort = {
|
|
|
61
66
|
freq: { s: "select", l: "limit", A: "all", N: "no-extra" },
|
|
62
67
|
join: { i: "ignore-case" }
|
|
63
68
|
};
|
|
64
|
-
for (const name of ["numeric", "reverse", "uniq", "exact", "ignore-case", "invert-match", "every-column", "all", "no-extra", "inner", "left", "right", "full", "semi", "anti", "cross", "nulls"]) switches.add(name);
|
|
69
|
+
for (const name of ["keep-last", "sorted", "keep-duplicates", "pad", "sort-keys", "single-object", "omit", "numeric", "reverse", "uniq", "exact", "ignore-case", "invert-match", "every-column", "all", "no-extra", "inner", "left", "right", "full", "semi", "anti", "cross", "nulls"]) switches.add(name);
|
|
65
70
|
var common = ["help", "output", "delimiter"];
|
|
66
71
|
var allowed = {
|
|
72
|
+
dedup: /* @__PURE__ */ new Set([...common, "no-headers", "select", "keep-last", "sorted", "keep-duplicates"]),
|
|
73
|
+
enum: /* @__PURE__ */ new Set([...common, "no-headers", "column-name", "start"]),
|
|
74
|
+
transpose: new Set(common),
|
|
75
|
+
agg: /* @__PURE__ */ new Set([...common, "no-headers"]),
|
|
76
|
+
groupby: /* @__PURE__ */ new Set([...common, "no-headers"]),
|
|
77
|
+
to: /* @__PURE__ */ new Set([...common, "no-headers", "nulls", "omit"]),
|
|
78
|
+
from: /* @__PURE__ */ new Set([...common, "format", "sort-keys", "single-object", "column-name"]),
|
|
79
|
+
cat: /* @__PURE__ */ new Set([...common, "no-headers", "pad"]),
|
|
80
|
+
split: /* @__PURE__ */ new Set(["help", "delimiter", "no-headers", "size", "out-dir", "filename", "chunks"]),
|
|
67
81
|
head: /* @__PURE__ */ new Set([...common, "no-headers", "limit"]),
|
|
68
82
|
tail: /* @__PURE__ */ new Set([...common, "no-headers", "limit"]),
|
|
69
83
|
sort: /* @__PURE__ */ new Set([...common, "no-headers", "select", "numeric", "reverse", "uniq"]),
|
|
@@ -149,7 +163,8 @@ async function parseArguments(args, cwd, budget) {
|
|
|
149
163
|
if (values.has("evaluate") && values.has("evaluate-file")) throw new XanError("conflicting expression modes");
|
|
150
164
|
let rightSelection;
|
|
151
165
|
let operand;
|
|
152
|
-
if (
|
|
166
|
+
if (command === "groupby") rightSelection = operands.shift();
|
|
167
|
+
if (["search", "filter", "rename", "agg", "groupby", "to", "cat"].includes(command)) {
|
|
153
168
|
operand = operands.shift();
|
|
154
169
|
if (operand === void 0 && !help) throw new XanError(`${command} requires an argument`);
|
|
155
170
|
}
|
|
@@ -168,16 +183,16 @@ async function parseArguments(args, cwd, budget) {
|
|
|
168
183
|
}
|
|
169
184
|
if (values.has("limit")) await unsigned(values.get("limit"), "--limit", budget);
|
|
170
185
|
if (selection === void 0 && !help) throw new UsageError("Usage:\n xan select [options] [--] <selection> [<input>]\n xan select --help\n\nInvalid subcommand or arguments! Use the -h/--help flag for more information.");
|
|
171
|
-
if (command !== "headers" && command !== "join" && operands.length > 1) throw new XanError("too many input files");
|
|
186
|
+
if (command !== "headers" && command !== "join" && command !== "cat" && operands.length > 1) throw new XanError("too many input files");
|
|
172
187
|
if (operands.filter((path2) => path2 === "-").length > 1) throw new XanError("stdin may appear only once");
|
|
173
188
|
if (!operands.length) operands.push("-");
|
|
174
189
|
budget.bound("maxInputFiles", operands.length);
|
|
175
|
-
const path = (value) => {
|
|
190
|
+
const path = (value, input = false) => {
|
|
176
191
|
if (!value || value.includes("\0")) throw new XanError("invalid path");
|
|
177
|
-
if (/\.(gz|zst|cdx|ndjson|jsonl|vcf|gtf|gff2|sam|bed)$/u.test(value)) throw new XanError(`unsupported in bounded CSV profile: format ${value}`);
|
|
192
|
+
if (input && command !== "from" && /\.(gz|zst|cdx|ndjson|jsonl|vcf|gtf|gff2|sam|bed)$/u.test(value)) throw new XanError(`unsupported in bounded CSV profile: format ${value}`);
|
|
178
193
|
return value === "-" ? value : resolvePath(cwd, value);
|
|
179
194
|
};
|
|
180
|
-
for (const operand2 of operands) path(operand2);
|
|
195
|
+
for (const operand2 of operands) path(operand2, true);
|
|
181
196
|
const output = values.get("output");
|
|
182
197
|
if (output !== void 0) path(output);
|
|
183
198
|
let delimiter;
|
|
@@ -3,21 +3,21 @@ import {
|
|
|
3
3
|
} from "./chunk-PTT3I223.js";
|
|
4
4
|
import {
|
|
5
5
|
splitRegex
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VSRGNQCP.js";
|
|
7
7
|
import {
|
|
8
8
|
matchRegex,
|
|
9
9
|
scanRegex,
|
|
10
10
|
substituteRegex
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KQLD3AED.js";
|
|
12
12
|
import {
|
|
13
13
|
formatValue
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BPE5INLI.js";
|
|
15
15
|
import {
|
|
16
16
|
indices
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4BB2SWJ5.js";
|
|
18
18
|
import {
|
|
19
19
|
capture
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CQTRW45K.js";
|
|
21
21
|
import {
|
|
22
22
|
fromDateIso8601,
|
|
23
23
|
gmtime,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from "./chunk-GMIHJYDG.js";
|
|
29
29
|
import {
|
|
30
30
|
delpaths
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-OYYV7ZAF.js";
|
|
32
32
|
import {
|
|
33
33
|
binary,
|
|
34
34
|
compare,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
sortedKeys,
|
|
43
43
|
stableSort,
|
|
44
44
|
type
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-KXU3IRUO.js";
|
|
46
46
|
import {
|
|
47
47
|
splitString
|
|
48
48
|
} from "./chunk-HMOZ6XVJ.js";
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
measureValue,
|
|
52
52
|
parseJson,
|
|
53
53
|
stringify
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-WECIOOQB.js";
|
|
55
55
|
import {
|
|
56
56
|
JqError,
|
|
57
57
|
JqHalt,
|
|
@@ -1810,7 +1810,21 @@ var Interpreter = class _Interpreter {
|
|
|
1810
1810
|
}
|
|
1811
1811
|
if (name === "split") {
|
|
1812
1812
|
for await (const separator of this.run(args[0], input)) {
|
|
1813
|
-
|
|
1813
|
+
if (!args[1]) {
|
|
1814
|
+
yield await splitString(input, separator, budget);
|
|
1815
|
+
continue;
|
|
1816
|
+
}
|
|
1817
|
+
for await (const flags of this.run(args[1], input)) {
|
|
1818
|
+
const parts = [];
|
|
1819
|
+
let bytes = 2;
|
|
1820
|
+
for await (const part of splitRegex(input, separator, budget, flags)) {
|
|
1821
|
+
budget.collection(parts.length + 1);
|
|
1822
|
+
bytes += budget.value(part) + (parts.length ? 1 : 0);
|
|
1823
|
+
if (bytes > budget.limits.maxValueBytes) throw new JqLimitError("maxValueBytes");
|
|
1824
|
+
parts.push(part);
|
|
1825
|
+
}
|
|
1826
|
+
yield parts;
|
|
1827
|
+
}
|
|
1814
1828
|
}
|
|
1815
1829
|
return;
|
|
1816
1830
|
}
|
|
@@ -67,7 +67,8 @@ function parseUrl(text, redirect = false) {
|
|
|
67
67
|
function requestHeaders(args, contentType, user, scoped, maxBytes, previous) {
|
|
68
68
|
const json = args.data[0]?.kind === "json";
|
|
69
69
|
if (json) contentType = "application/json";
|
|
70
|
-
const defaults = [["Accept", json ? "application/json" : "*/*"]
|
|
70
|
+
const defaults = [["Accept", json ? "application/json" : "*/*"]];
|
|
71
|
+
if (args.agent !== "") defaults.push(["User-Agent", args.agent ?? "virtual-bash-curl/0.0"]);
|
|
71
72
|
if (contentType !== void 0) defaults.push(["Content-Type", contentType]);
|
|
72
73
|
if (args.compressed) defaults.push(["Accept-Encoding", "gzip, deflate"]);
|
|
73
74
|
const referer = args.autoReferer && previous !== void 0 ? previous : args.referer;
|
|
@@ -372,10 +373,12 @@ async function transfer(context, args, input, limits, transport, authorize, star
|
|
|
372
373
|
values.method = method;
|
|
373
374
|
let denyPrivateNetworks = false;
|
|
374
375
|
let allowed;
|
|
376
|
+
const headers = requestHeaders(resumeOffset ? { ...args, range: `${resumeOffset}-` } : args, currentBody?.contentType, args.user ?? parsed.user, credentialsInScope, limits.maxHeaderBytes, previous);
|
|
375
377
|
try {
|
|
376
378
|
allowed = await withSignal(() => authorize({
|
|
377
379
|
url: currentUrl,
|
|
378
380
|
method,
|
|
381
|
+
headers,
|
|
379
382
|
attempt,
|
|
380
383
|
signal,
|
|
381
384
|
requirePrivateNetworkDeny() {
|
|
@@ -393,7 +396,6 @@ async function transfer(context, args, input, limits, transport, authorize, star
|
|
|
393
396
|
if (policy.denyPrivateNetworks && transport.supportsPrivateNetworkDeny !== true) {
|
|
394
397
|
throw new CurlError(7, "Transport cannot enforce private network policy");
|
|
395
398
|
}
|
|
396
|
-
const headers = requestHeaders(resumeOffset ? { ...args, range: `${resumeOffset}-` } : args, currentBody?.contentType, args.user ?? parsed.user, credentialsInScope, limits.maxHeaderBytes, previous);
|
|
397
399
|
if (args.verbose) await writeBytes(context.stderr, encode(`> ${method} ${current.origin}
|
|
398
400
|
${headers.map(([name]) => `> ${name}: [redacted]
|
|
399
401
|
`).join("")}`), signal);
|
|
@@ -545,7 +547,7 @@ ${headers.map(([name]) => `> ${name}: [redacted]
|
|
|
545
547
|
}
|
|
546
548
|
if (!final.contentDecoded && length && /^\d+$/.test(length) && downloaded !== Number(length)) throw new CurlError(18, "Partial HTTP response body");
|
|
547
549
|
})();
|
|
548
|
-
const decoded = args.compressed && !args.raw && !final.contentDecoded && encoding ? decodeContent(encoded, encoding, bodySignal, args.maxFileSize) : encoded;
|
|
550
|
+
const decoded = args.compressed && !args.raw && !final.contentDecoded && encoding ? decodeContent(encoded, encoding, bodySignal, args.maxFileSize, limits.maxEncodingLayers) : encoded;
|
|
549
551
|
let outputBytes = 0;
|
|
550
552
|
try {
|
|
551
553
|
for await (const chunk of decoded) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
applyPatchCommands,
|
|
3
|
+
createApplyPatchCommand,
|
|
4
|
+
createApplyPatchCommands,
|
|
5
|
+
evalSyncApplyPatch
|
|
6
|
+
} from "../../chunks/chunk-XAQMU6OY.js";
|
|
7
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
8
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
9
|
+
export {
|
|
10
|
+
applyPatchCommands,
|
|
11
|
+
createApplyPatchCommand,
|
|
12
|
+
createApplyPatchCommands,
|
|
13
|
+
evalSyncApplyPatch
|
|
14
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_ARCHIVE_LIMITS,
|
|
3
|
+
archiveCommands,
|
|
4
|
+
createArchiveCommands,
|
|
5
|
+
createTarCommand,
|
|
6
|
+
createTarCommands,
|
|
7
|
+
createUnzipCommand,
|
|
8
|
+
createUnzipCommands,
|
|
9
|
+
createZipCommand,
|
|
10
|
+
createZipCommands,
|
|
11
|
+
evalSyncTar,
|
|
12
|
+
evalSyncUnzip,
|
|
13
|
+
evalSyncZip,
|
|
14
|
+
tarCommands,
|
|
15
|
+
unzipCommands,
|
|
16
|
+
zipCommands
|
|
17
|
+
} from "../../chunks/chunk-QGUV42T5.js";
|
|
18
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
19
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
20
|
+
export {
|
|
21
|
+
DEFAULT_ARCHIVE_LIMITS,
|
|
22
|
+
archiveCommands,
|
|
23
|
+
createArchiveCommands,
|
|
24
|
+
createTarCommand,
|
|
25
|
+
createTarCommands,
|
|
26
|
+
createUnzipCommand,
|
|
27
|
+
createUnzipCommands,
|
|
28
|
+
createZipCommand,
|
|
29
|
+
createZipCommands,
|
|
30
|
+
evalSyncTar,
|
|
31
|
+
evalSyncUnzip,
|
|
32
|
+
evalSyncZip,
|
|
33
|
+
tarCommands,
|
|
34
|
+
unzipCommands,
|
|
35
|
+
zipCommands
|
|
36
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withInputByteBudget } from "../../../../safe-bash-contracts/index.js";
|
|
1
2
|
import { createGzipCommands } from "../../../../safe-bash-command-gzip/index.js";
|
|
2
3
|
import { gzip as pakoGzip, ungzip as pakoUngzip } from "pako";
|
|
3
4
|
import bz2Factory from "../../../../safe-bash-compression-engine/native/bz2.js";
|
|
@@ -22,7 +23,7 @@ export function createCompressionCommands(config = {}) {
|
|
|
22
23
|
if (maxDecodedBytes !== undefined && maxDecodedBytes !== Infinity && (!Number.isSafeInteger(maxDecodedBytes) || maxDecodedBytes < 0)) {
|
|
23
24
|
throw new RangeError("maxDecodedBytes must be a nonnegative safe integer or Infinity");
|
|
24
25
|
}
|
|
25
|
-
const commands = profiles.flatMap(profile => profile.format === "gzip" ? createGzipCommands(config) : profile.format === "bzip2" ? createBzip2Commands(config) : profile.names.map((name) => define(name, async (context) => {
|
|
26
|
+
const commands = profiles.flatMap(profile => profile.format === "gzip" ? createGzipCommands(config) : profile.format === "bzip2" ? createBzip2Commands(config) : profile.names.map((name) => define(name, withInputByteBudget(async (context) => {
|
|
26
27
|
const options = parseOptions(name, context.args);
|
|
27
28
|
if (options.help) {
|
|
28
29
|
await output(context, `Usage: ${name} [OPTION]... [FILE]...\n-c, --stdout, --to-stdout\n-d, --decompress, --uncompress\n-k, --keep\n-f, --force\n-t, --test\n${options.format === "zstd" ? "-1..-9, --best\nHigher levels and --fast[=NUM] are unsupported by the bounded codec.\n" : "-1..-9, --fast, --best\n"}${options.format === "zstd" ? "-q, --quiet (repeat to suppress errors)\n" : ""}${options.format === "gzip" ? "-q, --quiet (suppress warnings)\n-r, --recursive (traverse directories without following symlinks)\n-n, --no-name (always enabled)\n" : `Default compression level: ${options.level}.\n`}-h, --help\nNo FILE or FILE '-' uses stdin; file output uses private VFS staging.\n`);
|
|
@@ -80,7 +81,7 @@ export function createCompressionCommands(config = {}) {
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
return { exitCode };
|
|
83
|
-
})));
|
|
84
|
+
}))));
|
|
84
85
|
const xzCmds = createXzCommands(config);
|
|
85
86
|
if (maxDecodedBytes === undefined || maxDecodedBytes === Infinity) {
|
|
86
87
|
for (const c of [...commands, ...xzCmds])
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
columnCommands,
|
|
3
|
+
createColumnCommand,
|
|
4
|
+
createColumnCommands
|
|
5
|
+
} from "../../chunks/chunk-3HQU4OJO.js";
|
|
6
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
7
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
8
|
+
export {
|
|
9
|
+
columnCommands,
|
|
10
|
+
createColumnCommand,
|
|
11
|
+
createColumnCommands
|
|
12
|
+
};
|
|
@@ -2,6 +2,7 @@ import { type CommandContext, type FileStat } from "../contracts/index.js";
|
|
|
2
2
|
import type { copyOptions } from "./copy-backup.js";
|
|
3
3
|
export type CopyAttribute = "mode" | "ownership" | "timestamps" | "links";
|
|
4
4
|
export type CopyOptions = ReturnType<typeof copyOptions> & {
|
|
5
|
+
readonly maxRecursiveDirectoryDepth?: number;
|
|
5
6
|
readonly confirmOverwrite?: (operand: string) => Promise<boolean>;
|
|
6
7
|
};
|
|
7
8
|
export declare function admitCopyPreservation(context: CommandContext, preserve: ReadonlySet<CopyAttribute>, source: FileStat, target: string, existing?: FileStat): Promise<void>;
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
createCsplitCommands,
|
|
4
4
|
csplitCommands,
|
|
5
5
|
evalSyncCsplit
|
|
6
|
-
} from "../../chunks/chunk-
|
|
7
|
-
import "../../chunks/chunk-
|
|
6
|
+
} from "../../chunks/chunk-UTBUUFDM.js";
|
|
7
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
8
8
|
export {
|
|
9
9
|
createCsplitCommand,
|
|
10
10
|
createCsplitCommands,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createDuCommand,
|
|
3
|
+
createDuCommands,
|
|
4
|
+
duCommands,
|
|
5
|
+
evalSyncDu
|
|
6
|
+
} from "../../chunks/chunk-GEG3BWGE.js";
|
|
7
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
8
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
9
|
+
export {
|
|
10
|
+
createDuCommand,
|
|
11
|
+
createDuCommands,
|
|
12
|
+
duCommands,
|
|
13
|
+
evalSyncDu
|
|
14
|
+
};
|
|
@@ -166,8 +166,8 @@ export function executionCommands(execute, configuration = {}) {
|
|
|
166
166
|
let lastDelimMode;
|
|
167
167
|
const longOptions = { "arg-file": "a", "max-lines": "L", null: "0", "no-run-if-empty": "r", "max-args": "n", "max-chars": "s", replace: "I", delimiter: "d", verbose: "t", "max-procs": "P", exit: "x", eof: "E", "process-slot-var": "process-slot-var:" };
|
|
168
168
|
const parsed = options(argumentValues.args, shortOptions, longOptions, true, index => { operandIndices.push(index); }, (key, index, offset) => { if (key === "I")
|
|
169
|
-
replacementOrigin = { index, offset }; }, key => {
|
|
170
|
-
if (key === "I" || key === "L" || key === "n")
|
|
169
|
+
replacementOrigin = { index, offset }; }, (key, optionValue) => {
|
|
170
|
+
if (key === "I" || key === "L" || key === "n" && !(batching === "I" && integer(optionValue, 1) === 1))
|
|
171
171
|
batching = key;
|
|
172
172
|
if (key === "0" || key === "d")
|
|
173
173
|
lastDelimMode = key;
|
|
@@ -189,7 +189,7 @@ export function executionCommands(execute, configuration = {}) {
|
|
|
189
189
|
const argumentFile = value(parsed, "a");
|
|
190
190
|
const childInput = argumentFile === undefined ? emptyInput() : context.stdin;
|
|
191
191
|
const childInputIsDefault = argumentFile === undefined ? true : context.stdinIsDefault;
|
|
192
|
-
const maxArgs = replacement
|
|
192
|
+
const maxArgs = replacement !== undefined ? 1 : batching === "n" ? integer(value(parsed, "n"), 1) : Infinity;
|
|
193
193
|
const size = value(parsed, "s");
|
|
194
194
|
const maxBytes = size === undefined || size === "Infinity" ? Infinity : integer(size, 1);
|
|
195
195
|
let delimiter = parsed.flags.has("0") ? "\0" : undefined;
|
|
@@ -703,9 +703,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
|
|
|
703
703
|
const v = a.slice(11);
|
|
704
704
|
if (!/^[1-9][0-9]*$/.test(v))
|
|
705
705
|
return undefined;
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
706
|
+
if (replaceStr === undefined || Number(v) !== 1) {
|
|
707
|
+
maxArgs = Number(v);
|
|
708
|
+
replaceStr = undefined;
|
|
709
|
+
maxLines = undefined;
|
|
710
|
+
}
|
|
709
711
|
i++;
|
|
710
712
|
continue;
|
|
711
713
|
}
|
|
@@ -733,9 +735,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
|
|
|
733
735
|
const v = a.startsWith("-n") && a.length > 2 ? a.slice(2) : opArgs[++i];
|
|
734
736
|
if (!v || !/^[1-9][0-9]*$/.test(v))
|
|
735
737
|
return undefined;
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
738
|
+
if (replaceStr === undefined || Number(v) !== 1) {
|
|
739
|
+
maxArgs = Number(v);
|
|
740
|
+
replaceStr = undefined;
|
|
741
|
+
maxLines = undefined;
|
|
742
|
+
}
|
|
739
743
|
i++;
|
|
740
744
|
continue;
|
|
741
745
|
}
|
|
@@ -796,9 +800,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
|
|
|
796
800
|
ok = false;
|
|
797
801
|
break;
|
|
798
802
|
}
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
803
|
+
if (replaceStr === undefined || Number(v) !== 1) {
|
|
804
|
+
maxArgs = Number(v);
|
|
805
|
+
replaceStr = undefined;
|
|
806
|
+
maxLines = undefined;
|
|
807
|
+
}
|
|
802
808
|
break;
|
|
803
809
|
}
|
|
804
810
|
else if (ch === "L") {
|
|
@@ -1120,7 +1126,7 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
|
|
|
1120
1126
|
runEcho(batch);
|
|
1121
1127
|
}
|
|
1122
1128
|
else {
|
|
1123
|
-
const limit = maxArgs ??
|
|
1129
|
+
const limit = maxArgs ?? Infinity;
|
|
1124
1130
|
for (let k = 0; k < tokens.length; k += limit) {
|
|
1125
1131
|
runEcho(tokens.slice(k, k + limit));
|
|
1126
1132
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createExprCommand,
|
|
3
|
+
createExprCommands,
|
|
4
|
+
exprCommands
|
|
5
|
+
} from "../../chunks/chunk-HZ7BWKQ3.js";
|
|
6
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
7
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
8
|
+
export {
|
|
9
|
+
createExprCommand,
|
|
10
|
+
createExprCommands,
|
|
11
|
+
exprCommands
|
|
12
|
+
};
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
createFactorCommand,
|
|
3
3
|
createFactorCommands,
|
|
4
4
|
factorCommands
|
|
5
|
-
} from "../../chunks/chunk-
|
|
6
|
-
import "../../chunks/chunk-
|
|
5
|
+
} from "../../chunks/chunk-AM5ESLPH.js";
|
|
6
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
7
7
|
export {
|
|
8
8
|
createFactorCommand,
|
|
9
9
|
createFactorCommands,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createFileCommand,
|
|
3
|
+
createFileCommands,
|
|
4
|
+
evalSyncFile,
|
|
5
|
+
fileCommands
|
|
6
|
+
} from "../../chunks/chunk-4BSJLKNM.js";
|
|
7
|
+
import "../../chunks/chunk-IWDICZVK.js";
|
|
8
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
9
|
+
export {
|
|
10
|
+
createFileCommand,
|
|
11
|
+
createFileCommands,
|
|
12
|
+
evalSyncFile,
|
|
13
|
+
fileCommands
|
|
14
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CommandDefinition, type CommandHandler } from "../contracts/index.js";
|
|
2
2
|
export declare const defaultMkdirExecutors: WeakSet<CommandHandler>;
|
|
3
3
|
export declare const defaultRmExecutors: WeakSet<CommandHandler>;
|
|
4
|
-
export declare function filesystemCommands(maxDirectoryEntries?: number): CommandDefinition[];
|
|
4
|
+
export declare function filesystemCommands(maxDirectoryEntries?: number, maxRecursiveDirectoryDepth?: number): CommandDefinition[];
|
|
5
5
|
export interface SyncFsStatNode {
|
|
6
6
|
readonly type: "file" | "directory" | "symlink";
|
|
7
7
|
readonly size: number;
|
|
@@ -27,7 +27,6 @@ import { backupCopyTarget, copyOptions, matchBackupMode, normalizeBackupSuffix }
|
|
|
27
27
|
import { admitCopyPreservation, preserveCopyMetadata } from "./copy-preserve.js";
|
|
28
28
|
// Operand directories start at depth zero; files inside the last admitted
|
|
29
29
|
// directory do not consume another directory-recursion level.
|
|
30
|
-
const MAX_RECURSIVE_DIRECTORY_DEPTH = 1024;
|
|
31
30
|
const MKDIR_LONG_OPTIONS = Object.freeze({ parents: "p", mode: "m", verbose: "v" });
|
|
32
31
|
const TOUCH_LONG_OPTIONS = Object.freeze({ "no-create": "c", "no-dereference": "h", reference: "r", date: "d", time: "time:" });
|
|
33
32
|
const MV_LONG_OPTIONS = Object.freeze({
|
|
@@ -312,8 +311,8 @@ async function copy(context, source, target, settings, readDirectory, top = true
|
|
|
312
311
|
if (targetStat && targetStat.type !== "directory")
|
|
313
312
|
throw new FsError("ENOTDIR", { path: target });
|
|
314
313
|
context.signal.throwIfAborted();
|
|
315
|
-
if (ancestors.size >
|
|
316
|
-
throw new FsError("ELOOP", { path: source, message: `cp directory depth limit exceeded (${
|
|
314
|
+
if (ancestors.size > (settings.maxRecursiveDirectoryDepth ?? Infinity)) {
|
|
315
|
+
throw new FsError("ELOOP", { path: source, message: `cp directory depth limit exceeded (${settings.maxRecursiveDirectoryDepth})` });
|
|
317
316
|
}
|
|
318
317
|
await admitFilesystemModes(context, "cp", [attributesOnly ? "attributes-recursive" : "recursive"], [target]);
|
|
319
318
|
const capabilities = await context.fs.capabilitiesFor?.(target, { signal: context.signal }) ?? context.fs.capabilities;
|
|
@@ -511,7 +510,10 @@ function modeText(stat) {
|
|
|
511
510
|
}
|
|
512
511
|
export const defaultMkdirExecutors = new WeakSet();
|
|
513
512
|
export const defaultRmExecutors = new WeakSet();
|
|
514
|
-
export function filesystemCommands(maxDirectoryEntries) {
|
|
513
|
+
export function filesystemCommands(maxDirectoryEntries, maxRecursiveDirectoryDepth = Infinity) {
|
|
514
|
+
if (maxRecursiveDirectoryDepth !== Infinity && (!Number.isSafeInteger(maxRecursiveDirectoryDepth) || maxRecursiveDirectoryDepth < 0)) {
|
|
515
|
+
throw new RangeError("maxRecursiveDirectoryDepth must be a nonnegative safe integer or Infinity");
|
|
516
|
+
}
|
|
515
517
|
const readDirectory = createDirectoryReader(maxDirectoryEntries);
|
|
516
518
|
const commands = [
|
|
517
519
|
define("mkdir", context => {
|
|
@@ -575,10 +577,17 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
575
577
|
if (admitted) {
|
|
576
578
|
const effectiveMode = backingMem.capabilities.permissions !== false ? 0o777 & ~umask : undefined;
|
|
577
579
|
let allCreated = true;
|
|
580
|
+
ended = false;
|
|
578
581
|
for (let i = 0; i < rawArgs.length; i++) {
|
|
579
582
|
const a = rawArgs[i];
|
|
580
|
-
if (
|
|
581
|
-
|
|
583
|
+
if (!ended) {
|
|
584
|
+
if (a === "--") {
|
|
585
|
+
ended = true;
|
|
586
|
+
continue;
|
|
587
|
+
}
|
|
588
|
+
if (a === "-p" || a === "--parents")
|
|
589
|
+
continue;
|
|
590
|
+
}
|
|
582
591
|
if (!backingMem.tryMkdirFastSync(pathOf(context, a), recursive, effectiveMode)) {
|
|
583
592
|
allCreated = false;
|
|
584
593
|
break;
|
|
@@ -702,7 +711,7 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
702
711
|
}),
|
|
703
712
|
createTouchCommand(),
|
|
704
713
|
define("cp", async (context) => {
|
|
705
|
-
const parsed = copyOptions(context);
|
|
714
|
+
const parsed = { ...copyOptions(context), maxRecursiveDirectoryDepth };
|
|
706
715
|
if ((parsed.values.get("t")?.length ?? 0) > 1)
|
|
707
716
|
throw new UsageError("multiple target directories specified");
|
|
708
717
|
const destination = await destinations(context, parsed.operands, value(parsed, "t"), parsed.flags.has("T"));
|
|
@@ -1044,9 +1053,11 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
1044
1053
|
if (!parsed.flags.has("f"))
|
|
1045
1054
|
requireOperands(parsed.operands);
|
|
1046
1055
|
const recursive = parsed.flags.has("r") || parsed.flags.has("R");
|
|
1056
|
+
const recursiveTraversal = recursive && (interactive === "always" || maxRecursiveDirectoryDepth !== Infinity);
|
|
1047
1057
|
const backingMem = getRuntimeBackingFileSystem(context.fs);
|
|
1048
1058
|
const caps = context.fs.capabilities;
|
|
1049
1059
|
const fastStockMemory = interactive === "never" &&
|
|
1060
|
+
!recursiveTraversal &&
|
|
1050
1061
|
backingMem !== undefined &&
|
|
1051
1062
|
backingMem.capabilitiesFor === undefined &&
|
|
1052
1063
|
backingMem.symlinkCount === 0 &&
|
|
@@ -1132,14 +1143,14 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
1132
1143
|
}
|
|
1133
1144
|
if (stat.type === "directory" && !recursive && !parsed.flags.has("d"))
|
|
1134
1145
|
throw new FsError("EISDIR", { path });
|
|
1135
|
-
if (interactive === "always") {
|
|
1146
|
+
if (interactive === "always" || recursiveTraversal) {
|
|
1136
1147
|
const display = escapeText(operand, "display");
|
|
1137
1148
|
if (stat.type === "directory" && recursive) {
|
|
1138
|
-
if (depth >
|
|
1149
|
+
if (depth > maxRecursiveDirectoryDepth)
|
|
1139
1150
|
throw new FsError("ELOOP", { path });
|
|
1140
1151
|
const entries = await readDirectory(context, path, true);
|
|
1141
1152
|
if (entries.length) {
|
|
1142
|
-
if (!await confirm(`descend into directory '${display}'`))
|
|
1153
|
+
if (interactive === "always" && !await confirm(`descend into directory '${display}'`))
|
|
1143
1154
|
return false;
|
|
1144
1155
|
let removed = true;
|
|
1145
1156
|
for (const entry of entries)
|
|
@@ -1150,10 +1161,10 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
1150
1161
|
}
|
|
1151
1162
|
}
|
|
1152
1163
|
const type = stat.type === "file" ? stat.size === 0 ? "regular empty file" : "regular file" : stat.type === "symlink" ? "symbolic link" : "directory";
|
|
1153
|
-
if (!await confirm(`remove ${type} '${display}'`))
|
|
1164
|
+
if (interactive === "always" && !await confirm(`remove ${type} '${display}'`))
|
|
1154
1165
|
return false;
|
|
1155
1166
|
}
|
|
1156
|
-
if (stat.type === "directory" && (!recursive ||
|
|
1167
|
+
if (stat.type === "directory" && (!recursive || recursiveTraversal)) {
|
|
1157
1168
|
try {
|
|
1158
1169
|
await removeEmptyDirectory(context, path, readDirectory);
|
|
1159
1170
|
}
|
|
@@ -1633,8 +1644,8 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
1633
1644
|
if (ancestors.has(physical))
|
|
1634
1645
|
throw new FsError("ELOOP", { path });
|
|
1635
1646
|
context.signal.throwIfAborted();
|
|
1636
|
-
if (ancestors.size >
|
|
1637
|
-
throw new FsError("ELOOP", { path, message: `ls directory depth limit exceeded (${
|
|
1647
|
+
if (ancestors.size > maxRecursiveDirectoryDepth) {
|
|
1648
|
+
throw new FsError("ELOOP", { path, message: `ls directory depth limit exceeded (${maxRecursiveDirectoryDepth})` });
|
|
1638
1649
|
}
|
|
1639
1650
|
ancestors.add(physical);
|
|
1640
1651
|
try {
|
|
@@ -1712,7 +1723,7 @@ export function filesystemCommands(maxDirectoryEntries) {
|
|
|
1712
1723
|
for (const command of commands) {
|
|
1713
1724
|
if (command.name === "mkdir")
|
|
1714
1725
|
defaultMkdirExecutors.add(command.execute);
|
|
1715
|
-
else if (command.name === "rm")
|
|
1726
|
+
else if (command.name === "rm" && maxRecursiveDirectoryDepth === Infinity)
|
|
1716
1727
|
defaultRmExecutors.add(command.execute);
|
|
1717
1728
|
}
|
|
1718
1729
|
return commands;
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
createGetoptCommands,
|
|
4
4
|
evalSyncGetopt,
|
|
5
5
|
getoptCommands
|
|
6
|
-
} from "../../chunks/chunk-
|
|
7
|
-
import "../../chunks/chunk-
|
|
6
|
+
} from "../../chunks/chunk-AUSNDQTJ.js";
|
|
7
|
+
import "../../chunks/chunk-B7TAL7S5.js";
|
|
8
8
|
export {
|
|
9
9
|
createGetoptCommand,
|
|
10
10
|
createGetoptCommands,
|