just-binary 2.9.8
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/LICENSE +201 -0
- package/README.md +458 -0
- package/dist/AGENTS.md +323 -0
- package/dist/Bash.d.ts +179 -0
- package/dist/ast/types.d.ts +615 -0
- package/dist/banned-patterns-test.d.ts +8 -0
- package/dist/bin/chunks/alias-23G4Q2RS.js +2 -0
- package/dist/bin/chunks/awk2-Z6VRXKAK.js +2 -0
- package/dist/bin/chunks/base64-DNX4WCIO.js +2 -0
- package/dist/bin/chunks/basename-MPQ7M4RF.js +2 -0
- package/dist/bin/chunks/bash-OQ32Y5I6.js +2 -0
- package/dist/bin/chunks/bytes-6YUZMX3P.js +2 -0
- package/dist/bin/chunks/cat-CL5ISR5P.js +2 -0
- package/dist/bin/chunks/chmod-R6IWRSKZ.js +2 -0
- package/dist/bin/chunks/chunk-227L3ACM.js +23 -0
- package/dist/bin/chunks/chunk-2QA4P6HI.js +12 -0
- package/dist/bin/chunks/chunk-3MFM4GSH.js +36 -0
- package/dist/bin/chunks/chunk-3UP5LXDO.js +3 -0
- package/dist/bin/chunks/chunk-47P7JSQI.js +2 -0
- package/dist/bin/chunks/chunk-4KBTPDQB.js +3 -0
- package/dist/bin/chunks/chunk-4UK2MV3F.js +13 -0
- package/dist/bin/chunks/chunk-4VDEBYW7.js +2 -0
- package/dist/bin/chunks/chunk-563AO4OL.js +7 -0
- package/dist/bin/chunks/chunk-5HDWUXRX.js +7 -0
- package/dist/bin/chunks/chunk-5MCFI6LE.js +5 -0
- package/dist/bin/chunks/chunk-6CZOPIZD.js +6 -0
- package/dist/bin/chunks/chunk-6FNFX5GG.js +5 -0
- package/dist/bin/chunks/chunk-6NYIHYDY.js +7 -0
- package/dist/bin/chunks/chunk-6Y4TKR73.js +16 -0
- package/dist/bin/chunks/chunk-7C7WEK46.js +23 -0
- package/dist/bin/chunks/chunk-7TNGQWY6.js +6 -0
- package/dist/bin/chunks/chunk-7UAWRBQS.js +9 -0
- package/dist/bin/chunks/chunk-ARGU3OIG.js +17 -0
- package/dist/bin/chunks/chunk-BA3A5BYZ.js +3 -0
- package/dist/bin/chunks/chunk-BB7T22CF.js +140 -0
- package/dist/bin/chunks/chunk-BY24LKGP.js +8 -0
- package/dist/bin/chunks/chunk-CRHN4WNQ.js +63 -0
- package/dist/bin/chunks/chunk-ELZHJGI7.js +10 -0
- package/dist/bin/chunks/chunk-F46CSMUF.js +2 -0
- package/dist/bin/chunks/chunk-FQX4G5RH.js +7 -0
- package/dist/bin/chunks/chunk-G43H2WGH.js +17 -0
- package/dist/bin/chunks/chunk-GIFF636B.js +2 -0
- package/dist/bin/chunks/chunk-GMJWC3MC.js +12 -0
- package/dist/bin/chunks/chunk-HVDU57EV.js +16 -0
- package/dist/bin/chunks/chunk-HWGK3XW7.js +6 -0
- package/dist/bin/chunks/chunk-HYR7G7KS.js +3 -0
- package/dist/bin/chunks/chunk-I2225JSU.js +14 -0
- package/dist/bin/chunks/chunk-I2FUQZXU.js +11 -0
- package/dist/bin/chunks/chunk-IBHPKKIT.js +10 -0
- package/dist/bin/chunks/chunk-IKNNFJNZ.js +14 -0
- package/dist/bin/chunks/chunk-INPUJM7Y.js +8 -0
- package/dist/bin/chunks/chunk-IOBKPMWJ.js +9 -0
- package/dist/bin/chunks/chunk-IYSA2L6A.js +13 -0
- package/dist/bin/chunks/chunk-JMLNX7GE.js +287 -0
- package/dist/bin/chunks/chunk-K2K4KPOQ.js +3 -0
- package/dist/bin/chunks/chunk-K6DD7NH3.js +9 -0
- package/dist/bin/chunks/chunk-KFLJ4EMB.js +4 -0
- package/dist/bin/chunks/chunk-KOMDAXHM.js +7 -0
- package/dist/bin/chunks/chunk-KV7ZTM2R.js +11 -0
- package/dist/bin/chunks/chunk-LCCVVEJA.js +10 -0
- package/dist/bin/chunks/chunk-LUPJK5US.js +84 -0
- package/dist/bin/chunks/chunk-LWF3XDOC.js +32 -0
- package/dist/bin/chunks/chunk-LXNARM2C.js +9 -0
- package/dist/bin/chunks/chunk-LXZS3X5T.js +9 -0
- package/dist/bin/chunks/chunk-M4ICSCXT.js +100 -0
- package/dist/bin/chunks/chunk-MEBZXRGE.js +5 -0
- package/dist/bin/chunks/chunk-MSPSS36S.js +16 -0
- package/dist/bin/chunks/chunk-N335RIGZ.js +20 -0
- package/dist/bin/chunks/chunk-N5KGQWJH.js +5 -0
- package/dist/bin/chunks/chunk-NDHTQE5T.js +8 -0
- package/dist/bin/chunks/chunk-NF5G7X3O.js +7 -0
- package/dist/bin/chunks/chunk-NGKNJ6V2.js +11 -0
- package/dist/bin/chunks/chunk-OBH7XN5N.js +1 -0
- package/dist/bin/chunks/chunk-OKQ6RACF.js +73 -0
- package/dist/bin/chunks/chunk-PBY7XGZ6.js +8 -0
- package/dist/bin/chunks/chunk-PHHNNFRS.js +6 -0
- package/dist/bin/chunks/chunk-PO6Y7TWQ.js +6 -0
- package/dist/bin/chunks/chunk-Q4TLKLIZ.js +12 -0
- package/dist/bin/chunks/chunk-QS6LP3E3.js +6 -0
- package/dist/bin/chunks/chunk-QT2GMJRJ.js +8 -0
- package/dist/bin/chunks/chunk-QUVW3R4I.js +5 -0
- package/dist/bin/chunks/chunk-QUYWT2TY.js +21 -0
- package/dist/bin/chunks/chunk-QWUII542.js +2 -0
- package/dist/bin/chunks/chunk-R5EQDD5Y.js +13 -0
- package/dist/bin/chunks/chunk-RQSPCXDR.js +2 -0
- package/dist/bin/chunks/chunk-RTC6C5QW.js +2 -0
- package/dist/bin/chunks/chunk-S5W2KVHC.js +2 -0
- package/dist/bin/chunks/chunk-SDXDICI4.js +2 -0
- package/dist/bin/chunks/chunk-SE4C7FJY.js +33 -0
- package/dist/bin/chunks/chunk-SX7TI7Q2.js +3 -0
- package/dist/bin/chunks/chunk-TDJ55L4A.js +16 -0
- package/dist/bin/chunks/chunk-TNPUAMV3.js +8 -0
- package/dist/bin/chunks/chunk-TSGSFBQI.js +14 -0
- package/dist/bin/chunks/chunk-U5ZE562V.js +2 -0
- package/dist/bin/chunks/chunk-UIMH6I3G.js +33 -0
- package/dist/bin/chunks/chunk-UXPY5T2P.js +9 -0
- package/dist/bin/chunks/chunk-UYBH3FNE.js +2 -0
- package/dist/bin/chunks/chunk-V5I6PHN2.js +14 -0
- package/dist/bin/chunks/chunk-VOTJNR36.js +5 -0
- package/dist/bin/chunks/chunk-W5XFREQC.js +3 -0
- package/dist/bin/chunks/chunk-X2MOXVGO.js +26 -0
- package/dist/bin/chunks/chunk-XOGQUO62.js +2 -0
- package/dist/bin/chunks/chunk-Y57BDPQ5.js +6 -0
- package/dist/bin/chunks/chunk-YE6KXFFU.js +2 -0
- package/dist/bin/chunks/chunk-YEPWKN4F.js +3 -0
- package/dist/bin/chunks/chunk-ZEDWVSUZ.js +19 -0
- package/dist/bin/chunks/chunk-ZI4TTZL5.js +21 -0
- package/dist/bin/chunks/chunk-ZZVIGHYS.js +7 -0
- package/dist/bin/chunks/clear-27OP2FQZ.js +2 -0
- package/dist/bin/chunks/column-FJNKONCJ.js +2 -0
- package/dist/bin/chunks/comm-5FNEJE7X.js +2 -0
- package/dist/bin/chunks/cp-LVKHKFHQ.js +2 -0
- package/dist/bin/chunks/curl-S4FJSZA5.js +26 -0
- package/dist/bin/chunks/cut-UXU6PNTT.js +2 -0
- package/dist/bin/chunks/date-GGPTXVUT.js +2 -0
- package/dist/bin/chunks/diff-3V3FOITV.js +2 -0
- package/dist/bin/chunks/dirname-455JDV2M.js +2 -0
- package/dist/bin/chunks/du-WUEAQO2W.js +2 -0
- package/dist/bin/chunks/echo-HBXOI5TQ.js +2 -0
- package/dist/bin/chunks/env-MXFHTVHS.js +2 -0
- package/dist/bin/chunks/expand-F4FM4ML2.js +2 -0
- package/dist/bin/chunks/expansion-7AYBVOIQ.js +2 -0
- package/dist/bin/chunks/expr-5ZKR5ER5.js +2 -0
- package/dist/bin/chunks/file-BFN7BKUR.js +2 -0
- package/dist/bin/chunks/find-W4BCEJEC.js +2 -0
- package/dist/bin/chunks/flag-coverage-DBKGNLJO.js +2 -0
- package/dist/bin/chunks/fold-AE57YLOS.js +2 -0
- package/dist/bin/chunks/grep-I63BWUKL.js +2 -0
- package/dist/bin/chunks/gzip-X5IDXWZE.js +2 -0
- package/dist/bin/chunks/head-TBQETLQX.js +2 -0
- package/dist/bin/chunks/help-HGMKZ2GW.js +2 -0
- package/dist/bin/chunks/history-2DYRIL3U.js +2 -0
- package/dist/bin/chunks/hostname-RWEPTCXH.js +2 -0
- package/dist/bin/chunks/html-to-markdown-2VQWCEKU.js +2 -0
- package/dist/bin/chunks/join-TRRWQBEU.js +2 -0
- package/dist/bin/chunks/jq-NFKKH27D.js +2 -0
- package/dist/bin/chunks/ln-BSEVUP2J.js +2 -0
- package/dist/bin/chunks/ls-IJLTWVOI.js +2 -0
- package/dist/bin/chunks/md5sum-ZIQHOC4K.js +2 -0
- package/dist/bin/chunks/mkdir-KYFAO2SF.js +2 -0
- package/dist/bin/chunks/mv-TWM2PA7Q.js +2 -0
- package/dist/bin/chunks/nl-XLF2HFST.js +2 -0
- package/dist/bin/chunks/od-BOM6JPTH.js +2 -0
- package/dist/bin/chunks/paste-FUGXVGJX.js +2 -0
- package/dist/bin/chunks/printf-XUGNJ3QM.js +2 -0
- package/dist/bin/chunks/pwd-RZG6GZEU.js +2 -0
- package/dist/bin/chunks/python3-PIXJS3YM.js +14 -0
- package/dist/bin/chunks/readlink-4SOSIDHE.js +2 -0
- package/dist/bin/chunks/rev-5E5UGSUZ.js +2 -0
- package/dist/bin/chunks/rg-4YJSQZN7.js +2 -0
- package/dist/bin/chunks/rm-3PFOF4E3.js +2 -0
- package/dist/bin/chunks/rmdir-CSK7CGH5.js +2 -0
- package/dist/bin/chunks/sed-XBCUZMEP.js +2 -0
- package/dist/bin/chunks/seq-H7ID4VMK.js +2 -0
- package/dist/bin/chunks/sha1sum-EDQNYXXH.js +2 -0
- package/dist/bin/chunks/sha256sum-APTG6DO2.js +2 -0
- package/dist/bin/chunks/sleep-PNT7KILS.js +2 -0
- package/dist/bin/chunks/sort-ELAGZUES.js +2 -0
- package/dist/bin/chunks/split-QGXYUWBC.js +2 -0
- package/dist/bin/chunks/sqlite3-ELLMKNNJ.js +2 -0
- package/dist/bin/chunks/stat-Q2TZRKO3.js +2 -0
- package/dist/bin/chunks/strings-IGEGP5QX.js +2 -0
- package/dist/bin/chunks/tac-VOEDJLLG.js +2 -0
- package/dist/bin/chunks/tail-JOQASWMV.js +2 -0
- package/dist/bin/chunks/tar-2UVSVD3P.js +2 -0
- package/dist/bin/chunks/tee-IQLEDZOQ.js +2 -0
- package/dist/bin/chunks/time-VRCJK2LI.js +2 -0
- package/dist/bin/chunks/timeout-A36YWZWR.js +2 -0
- package/dist/bin/chunks/touch-5ECNQNBP.js +2 -0
- package/dist/bin/chunks/tr-AVALLN54.js +2 -0
- package/dist/bin/chunks/tree-UFM5EDXS.js +2 -0
- package/dist/bin/chunks/true-BU5JSAAW.js +2 -0
- package/dist/bin/chunks/unexpand-TDRWZW5F.js +2 -0
- package/dist/bin/chunks/uniq-IKBUNAMN.js +2 -0
- package/dist/bin/chunks/wc-2R4RS2SX.js +2 -0
- package/dist/bin/chunks/which-6UVGMXDF.js +2 -0
- package/dist/bin/chunks/whoami-N6TLTETT.js +2 -0
- package/dist/bin/chunks/worker.js +2260 -0
- package/dist/bin/chunks/xan-JX5QUK32.js +2 -0
- package/dist/bin/chunks/xan-view-NFMUMJ7Z.js +2 -0
- package/dist/bin/chunks/xargs-4MYN4U3C.js +2 -0
- package/dist/bin/chunks/yq-EHDQVD7S.js +2 -0
- package/dist/bin/just-bash.js +732 -0
- package/dist/bin/shell/chunks/alias-23G4Q2RS.js +2 -0
- package/dist/bin/shell/chunks/awk2-Z6VRXKAK.js +2 -0
- package/dist/bin/shell/chunks/base64-DNX4WCIO.js +2 -0
- package/dist/bin/shell/chunks/basename-MPQ7M4RF.js +2 -0
- package/dist/bin/shell/chunks/bash-OQ32Y5I6.js +2 -0
- package/dist/bin/shell/chunks/bytes-6YUZMX3P.js +2 -0
- package/dist/bin/shell/chunks/cat-CL5ISR5P.js +2 -0
- package/dist/bin/shell/chunks/chmod-R6IWRSKZ.js +2 -0
- package/dist/bin/shell/chunks/chunk-227L3ACM.js +23 -0
- package/dist/bin/shell/chunks/chunk-2QA4P6HI.js +12 -0
- package/dist/bin/shell/chunks/chunk-3MFM4GSH.js +36 -0
- package/dist/bin/shell/chunks/chunk-3UP5LXDO.js +3 -0
- package/dist/bin/shell/chunks/chunk-47P7JSQI.js +2 -0
- package/dist/bin/shell/chunks/chunk-4KBTPDQB.js +3 -0
- package/dist/bin/shell/chunks/chunk-4UK2MV3F.js +13 -0
- package/dist/bin/shell/chunks/chunk-4VDEBYW7.js +2 -0
- package/dist/bin/shell/chunks/chunk-563AO4OL.js +7 -0
- package/dist/bin/shell/chunks/chunk-5HDWUXRX.js +7 -0
- package/dist/bin/shell/chunks/chunk-5MCFI6LE.js +5 -0
- package/dist/bin/shell/chunks/chunk-6CZOPIZD.js +6 -0
- package/dist/bin/shell/chunks/chunk-6FNFX5GG.js +5 -0
- package/dist/bin/shell/chunks/chunk-6NYIHYDY.js +7 -0
- package/dist/bin/shell/chunks/chunk-6Y4TKR73.js +16 -0
- package/dist/bin/shell/chunks/chunk-7C7WEK46.js +23 -0
- package/dist/bin/shell/chunks/chunk-7TNGQWY6.js +6 -0
- package/dist/bin/shell/chunks/chunk-7UAWRBQS.js +9 -0
- package/dist/bin/shell/chunks/chunk-ARGU3OIG.js +17 -0
- package/dist/bin/shell/chunks/chunk-BA3A5BYZ.js +3 -0
- package/dist/bin/shell/chunks/chunk-BB7T22CF.js +140 -0
- package/dist/bin/shell/chunks/chunk-BY24LKGP.js +8 -0
- package/dist/bin/shell/chunks/chunk-CRHN4WNQ.js +63 -0
- package/dist/bin/shell/chunks/chunk-ELZHJGI7.js +10 -0
- package/dist/bin/shell/chunks/chunk-F46CSMUF.js +2 -0
- package/dist/bin/shell/chunks/chunk-FQX4G5RH.js +7 -0
- package/dist/bin/shell/chunks/chunk-G43H2WGH.js +17 -0
- package/dist/bin/shell/chunks/chunk-GIFF636B.js +2 -0
- package/dist/bin/shell/chunks/chunk-GMJWC3MC.js +12 -0
- package/dist/bin/shell/chunks/chunk-HVDU57EV.js +16 -0
- package/dist/bin/shell/chunks/chunk-HWGK3XW7.js +6 -0
- package/dist/bin/shell/chunks/chunk-HYR7G7KS.js +3 -0
- package/dist/bin/shell/chunks/chunk-I2225JSU.js +14 -0
- package/dist/bin/shell/chunks/chunk-I2FUQZXU.js +11 -0
- package/dist/bin/shell/chunks/chunk-IBHPKKIT.js +10 -0
- package/dist/bin/shell/chunks/chunk-IKNNFJNZ.js +14 -0
- package/dist/bin/shell/chunks/chunk-INPUJM7Y.js +8 -0
- package/dist/bin/shell/chunks/chunk-IOBKPMWJ.js +9 -0
- package/dist/bin/shell/chunks/chunk-IYSA2L6A.js +13 -0
- package/dist/bin/shell/chunks/chunk-JMLNX7GE.js +287 -0
- package/dist/bin/shell/chunks/chunk-K2K4KPOQ.js +3 -0
- package/dist/bin/shell/chunks/chunk-K6DD7NH3.js +9 -0
- package/dist/bin/shell/chunks/chunk-KFLJ4EMB.js +4 -0
- package/dist/bin/shell/chunks/chunk-KOMDAXHM.js +7 -0
- package/dist/bin/shell/chunks/chunk-KV7ZTM2R.js +11 -0
- package/dist/bin/shell/chunks/chunk-LCCVVEJA.js +10 -0
- package/dist/bin/shell/chunks/chunk-LUPJK5US.js +84 -0
- package/dist/bin/shell/chunks/chunk-LWF3XDOC.js +32 -0
- package/dist/bin/shell/chunks/chunk-LXNARM2C.js +9 -0
- package/dist/bin/shell/chunks/chunk-LXZS3X5T.js +9 -0
- package/dist/bin/shell/chunks/chunk-M4ICSCXT.js +100 -0
- package/dist/bin/shell/chunks/chunk-MEBZXRGE.js +5 -0
- package/dist/bin/shell/chunks/chunk-MSPSS36S.js +16 -0
- package/dist/bin/shell/chunks/chunk-N335RIGZ.js +20 -0
- package/dist/bin/shell/chunks/chunk-N5KGQWJH.js +5 -0
- package/dist/bin/shell/chunks/chunk-NDHTQE5T.js +8 -0
- package/dist/bin/shell/chunks/chunk-NF5G7X3O.js +7 -0
- package/dist/bin/shell/chunks/chunk-NGKNJ6V2.js +11 -0
- package/dist/bin/shell/chunks/chunk-OBH7XN5N.js +1 -0
- package/dist/bin/shell/chunks/chunk-OKQ6RACF.js +73 -0
- package/dist/bin/shell/chunks/chunk-PBY7XGZ6.js +8 -0
- package/dist/bin/shell/chunks/chunk-PHHNNFRS.js +6 -0
- package/dist/bin/shell/chunks/chunk-PO6Y7TWQ.js +6 -0
- package/dist/bin/shell/chunks/chunk-Q4TLKLIZ.js +12 -0
- package/dist/bin/shell/chunks/chunk-QS6LP3E3.js +6 -0
- package/dist/bin/shell/chunks/chunk-QT2GMJRJ.js +8 -0
- package/dist/bin/shell/chunks/chunk-QUVW3R4I.js +5 -0
- package/dist/bin/shell/chunks/chunk-QUYWT2TY.js +21 -0
- package/dist/bin/shell/chunks/chunk-QWUII542.js +2 -0
- package/dist/bin/shell/chunks/chunk-R5EQDD5Y.js +13 -0
- package/dist/bin/shell/chunks/chunk-RQSPCXDR.js +2 -0
- package/dist/bin/shell/chunks/chunk-RTC6C5QW.js +2 -0
- package/dist/bin/shell/chunks/chunk-S5W2KVHC.js +2 -0
- package/dist/bin/shell/chunks/chunk-SDXDICI4.js +2 -0
- package/dist/bin/shell/chunks/chunk-SE4C7FJY.js +33 -0
- package/dist/bin/shell/chunks/chunk-SX7TI7Q2.js +3 -0
- package/dist/bin/shell/chunks/chunk-TDJ55L4A.js +16 -0
- package/dist/bin/shell/chunks/chunk-TNPUAMV3.js +8 -0
- package/dist/bin/shell/chunks/chunk-TSGSFBQI.js +14 -0
- package/dist/bin/shell/chunks/chunk-U5ZE562V.js +2 -0
- package/dist/bin/shell/chunks/chunk-UIMH6I3G.js +33 -0
- package/dist/bin/shell/chunks/chunk-UXPY5T2P.js +9 -0
- package/dist/bin/shell/chunks/chunk-UYBH3FNE.js +2 -0
- package/dist/bin/shell/chunks/chunk-V5I6PHN2.js +14 -0
- package/dist/bin/shell/chunks/chunk-VOTJNR36.js +5 -0
- package/dist/bin/shell/chunks/chunk-W5XFREQC.js +3 -0
- package/dist/bin/shell/chunks/chunk-X2MOXVGO.js +26 -0
- package/dist/bin/shell/chunks/chunk-XOGQUO62.js +2 -0
- package/dist/bin/shell/chunks/chunk-Y57BDPQ5.js +6 -0
- package/dist/bin/shell/chunks/chunk-YE6KXFFU.js +2 -0
- package/dist/bin/shell/chunks/chunk-YEPWKN4F.js +3 -0
- package/dist/bin/shell/chunks/chunk-ZEDWVSUZ.js +19 -0
- package/dist/bin/shell/chunks/chunk-ZI4TTZL5.js +21 -0
- package/dist/bin/shell/chunks/chunk-ZZVIGHYS.js +7 -0
- package/dist/bin/shell/chunks/clear-27OP2FQZ.js +2 -0
- package/dist/bin/shell/chunks/column-FJNKONCJ.js +2 -0
- package/dist/bin/shell/chunks/comm-5FNEJE7X.js +2 -0
- package/dist/bin/shell/chunks/cp-LVKHKFHQ.js +2 -0
- package/dist/bin/shell/chunks/curl-S4FJSZA5.js +26 -0
- package/dist/bin/shell/chunks/cut-UXU6PNTT.js +2 -0
- package/dist/bin/shell/chunks/date-GGPTXVUT.js +2 -0
- package/dist/bin/shell/chunks/diff-3V3FOITV.js +2 -0
- package/dist/bin/shell/chunks/dirname-455JDV2M.js +2 -0
- package/dist/bin/shell/chunks/du-WUEAQO2W.js +2 -0
- package/dist/bin/shell/chunks/echo-HBXOI5TQ.js +2 -0
- package/dist/bin/shell/chunks/env-MXFHTVHS.js +2 -0
- package/dist/bin/shell/chunks/expand-F4FM4ML2.js +2 -0
- package/dist/bin/shell/chunks/expansion-7AYBVOIQ.js +2 -0
- package/dist/bin/shell/chunks/expr-5ZKR5ER5.js +2 -0
- package/dist/bin/shell/chunks/file-BFN7BKUR.js +2 -0
- package/dist/bin/shell/chunks/find-W4BCEJEC.js +2 -0
- package/dist/bin/shell/chunks/flag-coverage-DBKGNLJO.js +2 -0
- package/dist/bin/shell/chunks/fold-AE57YLOS.js +2 -0
- package/dist/bin/shell/chunks/grep-I63BWUKL.js +2 -0
- package/dist/bin/shell/chunks/gzip-X5IDXWZE.js +2 -0
- package/dist/bin/shell/chunks/head-TBQETLQX.js +2 -0
- package/dist/bin/shell/chunks/help-HGMKZ2GW.js +2 -0
- package/dist/bin/shell/chunks/history-2DYRIL3U.js +2 -0
- package/dist/bin/shell/chunks/hostname-RWEPTCXH.js +2 -0
- package/dist/bin/shell/chunks/html-to-markdown-2VQWCEKU.js +2 -0
- package/dist/bin/shell/chunks/join-TRRWQBEU.js +2 -0
- package/dist/bin/shell/chunks/jq-NFKKH27D.js +2 -0
- package/dist/bin/shell/chunks/ln-BSEVUP2J.js +2 -0
- package/dist/bin/shell/chunks/ls-IJLTWVOI.js +2 -0
- package/dist/bin/shell/chunks/md5sum-ZIQHOC4K.js +2 -0
- package/dist/bin/shell/chunks/mkdir-KYFAO2SF.js +2 -0
- package/dist/bin/shell/chunks/mv-TWM2PA7Q.js +2 -0
- package/dist/bin/shell/chunks/nl-XLF2HFST.js +2 -0
- package/dist/bin/shell/chunks/od-BOM6JPTH.js +2 -0
- package/dist/bin/shell/chunks/paste-FUGXVGJX.js +2 -0
- package/dist/bin/shell/chunks/printf-XUGNJ3QM.js +2 -0
- package/dist/bin/shell/chunks/pwd-RZG6GZEU.js +2 -0
- package/dist/bin/shell/chunks/python3-PIXJS3YM.js +14 -0
- package/dist/bin/shell/chunks/readlink-4SOSIDHE.js +2 -0
- package/dist/bin/shell/chunks/rev-5E5UGSUZ.js +2 -0
- package/dist/bin/shell/chunks/rg-4YJSQZN7.js +2 -0
- package/dist/bin/shell/chunks/rm-3PFOF4E3.js +2 -0
- package/dist/bin/shell/chunks/rmdir-CSK7CGH5.js +2 -0
- package/dist/bin/shell/chunks/sed-XBCUZMEP.js +2 -0
- package/dist/bin/shell/chunks/seq-H7ID4VMK.js +2 -0
- package/dist/bin/shell/chunks/sha1sum-EDQNYXXH.js +2 -0
- package/dist/bin/shell/chunks/sha256sum-APTG6DO2.js +2 -0
- package/dist/bin/shell/chunks/sleep-PNT7KILS.js +2 -0
- package/dist/bin/shell/chunks/sort-ELAGZUES.js +2 -0
- package/dist/bin/shell/chunks/split-QGXYUWBC.js +2 -0
- package/dist/bin/shell/chunks/sqlite3-ELLMKNNJ.js +2 -0
- package/dist/bin/shell/chunks/stat-Q2TZRKO3.js +2 -0
- package/dist/bin/shell/chunks/strings-IGEGP5QX.js +2 -0
- package/dist/bin/shell/chunks/tac-VOEDJLLG.js +2 -0
- package/dist/bin/shell/chunks/tail-JOQASWMV.js +2 -0
- package/dist/bin/shell/chunks/tar-2UVSVD3P.js +2 -0
- package/dist/bin/shell/chunks/tee-IQLEDZOQ.js +2 -0
- package/dist/bin/shell/chunks/time-VRCJK2LI.js +2 -0
- package/dist/bin/shell/chunks/timeout-A36YWZWR.js +2 -0
- package/dist/bin/shell/chunks/touch-5ECNQNBP.js +2 -0
- package/dist/bin/shell/chunks/tr-AVALLN54.js +2 -0
- package/dist/bin/shell/chunks/tree-UFM5EDXS.js +2 -0
- package/dist/bin/shell/chunks/true-BU5JSAAW.js +2 -0
- package/dist/bin/shell/chunks/unexpand-TDRWZW5F.js +2 -0
- package/dist/bin/shell/chunks/uniq-IKBUNAMN.js +2 -0
- package/dist/bin/shell/chunks/wc-2R4RS2SX.js +2 -0
- package/dist/bin/shell/chunks/which-6UVGMXDF.js +2 -0
- package/dist/bin/shell/chunks/whoami-N6TLTETT.js +2 -0
- package/dist/bin/shell/chunks/xan-JX5QUK32.js +2 -0
- package/dist/bin/shell/chunks/xan-view-NFMUMJ7Z.js +2 -0
- package/dist/bin/shell/chunks/xargs-4MYN4U3C.js +2 -0
- package/dist/bin/shell/chunks/yq-EHDQVD7S.js +2 -0
- package/dist/bin/shell/shell.js +711 -0
- package/dist/browser.d.ts +22 -0
- package/dist/bundle/browser.js +1481 -0
- package/dist/bundle/chunks/alias-T2KDAHDL.js +1 -0
- package/dist/bundle/chunks/awk2-UIH6CPHX.js +1 -0
- package/dist/bundle/chunks/base64-RY5JPAQL.js +1 -0
- package/dist/bundle/chunks/basename-QT55QR7O.js +1 -0
- package/dist/bundle/chunks/bash-BZZ6TUGW.js +1 -0
- package/dist/bundle/chunks/bytes-W6ESHQ7F.js +1 -0
- package/dist/bundle/chunks/cat-WUR2OJUG.js +1 -0
- package/dist/bundle/chunks/chmod-LTQYKUUW.js +1 -0
- package/dist/bundle/chunks/chunk-24BT6QUB.js +11 -0
- package/dist/bundle/chunks/chunk-274QVGRQ.js +2 -0
- package/dist/bundle/chunks/chunk-2IKXAFP4.js +11 -0
- package/dist/bundle/chunks/chunk-2IO54DPD.js +1 -0
- package/dist/bundle/chunks/chunk-2VAJD54D.js +13 -0
- package/dist/bundle/chunks/chunk-34P4G5H7.js +5 -0
- package/dist/bundle/chunks/chunk-3OY3UJDR.js +62 -0
- package/dist/bundle/chunks/chunk-3R6EWKMD.js +13 -0
- package/dist/bundle/chunks/chunk-3SPSXVPQ.js +2 -0
- package/dist/bundle/chunks/chunk-43RXAZRC.js +7 -0
- package/dist/bundle/chunks/chunk-44UOCSGV.js +1 -0
- package/dist/bundle/chunks/chunk-47LWQIG6.js +15 -0
- package/dist/bundle/chunks/chunk-4L3Y4LKT.js +5 -0
- package/dist/bundle/chunks/chunk-4LYDOEQ6.js +4 -0
- package/dist/bundle/chunks/chunk-4Q5DFBVQ.js +6 -0
- package/dist/bundle/chunks/chunk-4R5AUIZ4.js +6 -0
- package/dist/bundle/chunks/chunk-4UTZCT3W.js +2 -0
- package/dist/bundle/chunks/chunk-5FDLF2FN.js +5 -0
- package/dist/bundle/chunks/chunk-5HJSZMTG.js +1 -0
- package/dist/bundle/chunks/chunk-5NR6JZM4.js +12 -0
- package/dist/bundle/chunks/chunk-5PL72KVW.js +7 -0
- package/dist/bundle/chunks/chunk-6BM2WKUH.js +23 -0
- package/dist/bundle/chunks/chunk-6HLDZZOT.js +4 -0
- package/dist/bundle/chunks/chunk-7MKBHGLS.js +1 -0
- package/dist/bundle/chunks/chunk-7VHVF5PX.js +20 -0
- package/dist/bundle/chunks/chunk-A3YV3X3J.js +6 -0
- package/dist/bundle/chunks/chunk-AJNR4FJT.js +8 -0
- package/dist/bundle/chunks/chunk-AMQM5ZPF.js +1 -0
- package/dist/bundle/chunks/chunk-BCDE2QUY.js +1 -0
- package/dist/bundle/chunks/chunk-BMKJMOWP.js +2 -0
- package/dist/bundle/chunks/chunk-BVFIC7R6.js +4 -0
- package/dist/bundle/chunks/chunk-CC4HUWHZ.js +4 -0
- package/dist/bundle/chunks/chunk-CNCKROJZ.js +10 -0
- package/dist/bundle/chunks/chunk-CSFZQCAK.js +139 -0
- package/dist/bundle/chunks/chunk-CU7G2LMR.js +1 -0
- package/dist/bundle/chunks/chunk-CZP7PMAG.js +4 -0
- package/dist/bundle/chunks/chunk-D2OUCFAU.js +8 -0
- package/dist/bundle/chunks/chunk-DQXLKPVQ.js +7 -0
- package/dist/bundle/chunks/chunk-E6IR6BWV.js +286 -0
- package/dist/bundle/chunks/chunk-ELZ2RVIZ.js +11 -0
- package/dist/bundle/chunks/chunk-EVNUXIEZ.js +2 -0
- package/dist/bundle/chunks/chunk-F6FQRFZU.js +6 -0
- package/dist/bundle/chunks/chunk-FAECBHMR.js +2 -0
- package/dist/bundle/chunks/chunk-FBOLGXN4.js +16 -0
- package/dist/bundle/chunks/chunk-FNIOXBJW.js +9 -0
- package/dist/bundle/chunks/chunk-GD5SDRL7.js +5 -0
- package/dist/bundle/chunks/chunk-GEAGCSIY.js +31 -0
- package/dist/bundle/chunks/chunk-GI2KN5IL.js +22 -0
- package/dist/bundle/chunks/chunk-GOG2LNAH.js +9 -0
- package/dist/bundle/chunks/chunk-H2ENJVUI.js +10 -0
- package/dist/bundle/chunks/chunk-HDNR2KMO.js +13 -0
- package/dist/bundle/chunks/chunk-HJ37IXKX.js +12 -0
- package/dist/bundle/chunks/chunk-I36BZMR3.js +1 -0
- package/dist/bundle/chunks/chunk-I6YSZMB6.js +15 -0
- package/dist/bundle/chunks/chunk-IJXFPKNC.js +1 -0
- package/dist/bundle/chunks/chunk-IXD4Z54Z.js +8 -0
- package/dist/bundle/chunks/chunk-J44PYBAW.js +2 -0
- package/dist/bundle/chunks/chunk-JDREUEBG.js +9 -0
- package/dist/bundle/chunks/chunk-KA244HSE.js +5 -0
- package/dist/bundle/chunks/chunk-KKZJ6K7R.js +8 -0
- package/dist/bundle/chunks/chunk-KZ3P3SVS.js +22 -0
- package/dist/bundle/chunks/chunk-LIVSDOY2.js +1 -0
- package/dist/bundle/chunks/chunk-LX7SQKLW.js +15 -0
- package/dist/bundle/chunks/chunk-M5O5DYR7.js +1 -0
- package/dist/bundle/chunks/chunk-MML7K3J2.js +6 -0
- package/dist/bundle/chunks/chunk-N4GRDEVJ.js +5 -0
- package/dist/bundle/chunks/chunk-NPZMNEW5.js +6 -0
- package/dist/bundle/chunks/chunk-NUFRM6SI.js +0 -0
- package/dist/bundle/chunks/chunk-O7N2RCS7.js +1 -0
- package/dist/bundle/chunks/chunk-OSYLT4VG.js +4 -0
- package/dist/bundle/chunks/chunk-OXRHP7HO.js +3 -0
- package/dist/bundle/chunks/chunk-OZOS3R6K.js +99 -0
- package/dist/bundle/chunks/chunk-OZQ4AW5X.js +8 -0
- package/dist/bundle/chunks/chunk-PNGAWBIZ.js +10 -0
- package/dist/bundle/chunks/chunk-PPUKM2B7.js +13 -0
- package/dist/bundle/chunks/chunk-PTELGM2J.js +7 -0
- package/dist/bundle/chunks/chunk-Q3TLRYBC.js +72 -0
- package/dist/bundle/chunks/chunk-Q5AOYNOX.js +6 -0
- package/dist/bundle/chunks/chunk-QEKGAAIL.js +1 -0
- package/dist/bundle/chunks/chunk-QIL3FXIC.js +6 -0
- package/dist/bundle/chunks/chunk-QNZEO23C.js +8 -0
- package/dist/bundle/chunks/chunk-R4IVADTA.js +7 -0
- package/dist/bundle/chunks/chunk-RK57WTFF.js +12 -0
- package/dist/bundle/chunks/chunk-RU5M6ZRS.js +4 -0
- package/dist/bundle/chunks/chunk-SBVBPPEQ.js +5 -0
- package/dist/bundle/chunks/chunk-SP22LBKJ.js +20 -0
- package/dist/bundle/chunks/chunk-UKS3AEEA.js +32 -0
- package/dist/bundle/chunks/chunk-UYR5HJI6.js +7 -0
- package/dist/bundle/chunks/chunk-V6ANTLBA.js +15 -0
- package/dist/bundle/chunks/chunk-VLGZJRPG.js +16 -0
- package/dist/bundle/chunks/chunk-VZUQMDOT.js +2 -0
- package/dist/bundle/chunks/chunk-XDQU6V6S.js +19 -0
- package/dist/bundle/chunks/chunk-XRVUJRYI.js +35 -0
- package/dist/bundle/chunks/chunk-YNYSPYQ5.js +32 -0
- package/dist/bundle/chunks/clear-NLKZY76S.js +1 -0
- package/dist/bundle/chunks/column-S7P64XRJ.js +1 -0
- package/dist/bundle/chunks/comm-FPLN4BYY.js +1 -0
- package/dist/bundle/chunks/cp-W5HXJH5J.js +1 -0
- package/dist/bundle/chunks/curl-UFR6W4B6.js +25 -0
- package/dist/bundle/chunks/cut-VNFQFCA7.js +1 -0
- package/dist/bundle/chunks/date-EDSSFONA.js +1 -0
- package/dist/bundle/chunks/diff-RR5VJXIT.js +1 -0
- package/dist/bundle/chunks/dirname-V7Z24BGZ.js +1 -0
- package/dist/bundle/chunks/du-QKRPQIMY.js +1 -0
- package/dist/bundle/chunks/echo-TR3BM2AJ.js +1 -0
- package/dist/bundle/chunks/env-SVQBHVZF.js +1 -0
- package/dist/bundle/chunks/expand-ZVCJ72RF.js +1 -0
- package/dist/bundle/chunks/expansion-OBOJBZTH.js +1 -0
- package/dist/bundle/chunks/expr-QRA5KFYV.js +1 -0
- package/dist/bundle/chunks/file-TORG4IVZ.js +1 -0
- package/dist/bundle/chunks/find-NAGPRRQ7.js +1 -0
- package/dist/bundle/chunks/flag-coverage-FMTW4YWD.js +1 -0
- package/dist/bundle/chunks/fold-L4U6GS2N.js +1 -0
- package/dist/bundle/chunks/grep-D6AI423Z.js +1 -0
- package/dist/bundle/chunks/gzip-4EFUBHN7.js +1 -0
- package/dist/bundle/chunks/head-KBQT2JAC.js +1 -0
- package/dist/bundle/chunks/help-F3TJS3LS.js +1 -0
- package/dist/bundle/chunks/history-OKEAINJD.js +1 -0
- package/dist/bundle/chunks/hostname-AGIPNJOC.js +1 -0
- package/dist/bundle/chunks/html-to-markdown-P2LSCPVF.js +1 -0
- package/dist/bundle/chunks/join-FTSZAZYU.js +1 -0
- package/dist/bundle/chunks/jq-TNIKCGGT.js +1 -0
- package/dist/bundle/chunks/ln-BWYUCELO.js +1 -0
- package/dist/bundle/chunks/ls-6BM6G675.js +1 -0
- package/dist/bundle/chunks/md5sum-ALFVDB3W.js +1 -0
- package/dist/bundle/chunks/mkdir-I3BZBLTZ.js +1 -0
- package/dist/bundle/chunks/mv-76WRD5SE.js +1 -0
- package/dist/bundle/chunks/nl-77Q7V2GV.js +1 -0
- package/dist/bundle/chunks/od-AA6TIC6A.js +1 -0
- package/dist/bundle/chunks/paste-C6JKQOHO.js +1 -0
- package/dist/bundle/chunks/printf-WOYMDX2I.js +1 -0
- package/dist/bundle/chunks/pwd-BE3B3ZPG.js +1 -0
- package/dist/bundle/chunks/python3-QFUFNW7I.js +13 -0
- package/dist/bundle/chunks/readlink-QI6K7ZZX.js +1 -0
- package/dist/bundle/chunks/rev-2FZQEIQG.js +1 -0
- package/dist/bundle/chunks/rg-CNS6SD3V.js +1 -0
- package/dist/bundle/chunks/rm-JMWEKCU4.js +1 -0
- package/dist/bundle/chunks/rmdir-5HDB4IQ7.js +1 -0
- package/dist/bundle/chunks/sed-CSUGXVBJ.js +1 -0
- package/dist/bundle/chunks/seq-UP62NDEL.js +1 -0
- package/dist/bundle/chunks/sha1sum-XXYTWQIW.js +1 -0
- package/dist/bundle/chunks/sha256sum-GD6AFWG3.js +1 -0
- package/dist/bundle/chunks/sleep-225KIGXI.js +1 -0
- package/dist/bundle/chunks/sort-BIWEEIVX.js +1 -0
- package/dist/bundle/chunks/split-QUFGLTTX.js +1 -0
- package/dist/bundle/chunks/sqlite3-3ZFEGTQ7.js +1 -0
- package/dist/bundle/chunks/stat-DIMPSC6S.js +1 -0
- package/dist/bundle/chunks/strings-LECMRXOT.js +1 -0
- package/dist/bundle/chunks/tac-A6JKZKWL.js +1 -0
- package/dist/bundle/chunks/tail-YGDXZZGG.js +1 -0
- package/dist/bundle/chunks/tar-7KN7KZ6S.js +1 -0
- package/dist/bundle/chunks/tee-J4MBDQJZ.js +1 -0
- package/dist/bundle/chunks/time-CVS7ESWV.js +1 -0
- package/dist/bundle/chunks/timeout-UX2PSLYJ.js +1 -0
- package/dist/bundle/chunks/touch-ATQADRUQ.js +1 -0
- package/dist/bundle/chunks/tr-QVFN4YWH.js +1 -0
- package/dist/bundle/chunks/tree-IY7WNFVF.js +1 -0
- package/dist/bundle/chunks/true-AKKYE7WM.js +1 -0
- package/dist/bundle/chunks/unexpand-2WTX7UPB.js +1 -0
- package/dist/bundle/chunks/uniq-XS6VGRO2.js +1 -0
- package/dist/bundle/chunks/wc-22EISCPD.js +1 -0
- package/dist/bundle/chunks/which-IWHCX6SW.js +1 -0
- package/dist/bundle/chunks/whoami-HCON4D7C.js +1 -0
- package/dist/bundle/chunks/worker.js +2260 -0
- package/dist/bundle/chunks/xan-XDECJHII.js +1 -0
- package/dist/bundle/chunks/xan-view-IJ4EABH7.js +1 -0
- package/dist/bundle/chunks/xargs-5MMN7C6P.js +1 -0
- package/dist/bundle/chunks/yq-LQX5YIGM.js +1 -0
- package/dist/bundle/index.js +688 -0
- package/dist/commands/alias/alias.d.ts +6 -0
- package/dist/commands/awk/ast.d.ts +202 -0
- package/dist/commands/awk/awk2.d.ts +9 -0
- package/dist/commands/awk/builtins.d.ts +17 -0
- package/dist/commands/awk/interpreter/context.d.ts +73 -0
- package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
- package/dist/commands/awk/interpreter/fields.d.ts +25 -0
- package/dist/commands/awk/interpreter/index.d.ts +8 -0
- package/dist/commands/awk/interpreter/interpreter.d.ts +52 -0
- package/dist/commands/awk/interpreter/statements.d.ts +11 -0
- package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
- package/dist/commands/awk/interpreter/types.d.ts +13 -0
- package/dist/commands/awk/interpreter/variables.d.ts +35 -0
- package/dist/commands/awk/lexer.d.ts +100 -0
- package/dist/commands/awk/parser2-print.d.ts +35 -0
- package/dist/commands/awk/parser2.d.ts +81 -0
- package/dist/commands/base64/base64.d.ts +7 -0
- package/dist/commands/basename/basename.d.ts +4 -0
- package/dist/commands/bash/bash.d.ts +6 -0
- package/dist/commands/browser-excluded.d.ts +16 -0
- package/dist/commands/cat/cat.d.ts +4 -0
- package/dist/commands/chmod/chmod.d.ts +4 -0
- package/dist/commands/clear/clear.d.ts +4 -0
- package/dist/commands/column/column.d.ts +11 -0
- package/dist/commands/comm/comm.d.ts +12 -0
- package/dist/commands/cp/cp.d.ts +4 -0
- package/dist/commands/curl/curl.d.ts +8 -0
- package/dist/commands/curl/form.d.ts +21 -0
- package/dist/commands/curl/help.d.ts +9 -0
- package/dist/commands/curl/parse.d.ts +9 -0
- package/dist/commands/curl/response-formatting.d.ts +20 -0
- package/dist/commands/curl/types.d.ts +31 -0
- package/dist/commands/cut/cut.d.ts +4 -0
- package/dist/commands/date/date.d.ts +7 -0
- package/dist/commands/diff/diff.d.ts +7 -0
- package/dist/commands/dirname/dirname.d.ts +4 -0
- package/dist/commands/du/du.d.ts +4 -0
- package/dist/commands/echo/echo.d.ts +4 -0
- package/dist/commands/env/env.d.ts +6 -0
- package/dist/commands/expand/expand.d.ts +12 -0
- package/dist/commands/expand/unexpand.d.ts +12 -0
- package/dist/commands/expr/expr.d.ts +9 -0
- package/dist/commands/file/file.d.ts +9 -0
- package/dist/commands/find/find.d.ts +4 -0
- package/dist/commands/find/matcher.d.ts +69 -0
- package/dist/commands/find/parser.d.ts +2 -0
- package/dist/commands/find/types.d.ts +88 -0
- package/dist/commands/flag-coverage.d.ts +2 -0
- package/dist/commands/fold/fold.d.ts +12 -0
- package/dist/commands/fuzz-flags-types.d.ts +17 -0
- package/dist/commands/fuzz-flags.d.ts +8 -0
- package/dist/commands/grep/grep.d.ts +8 -0
- package/dist/commands/gzip/gzip.d.ts +13 -0
- package/dist/commands/head/head-tail-shared.d.ts +38 -0
- package/dist/commands/head/head.d.ts +4 -0
- package/dist/commands/help/help.d.ts +4 -0
- package/dist/commands/help.d.ts +16 -0
- package/dist/commands/history/history.d.ts +4 -0
- package/dist/commands/hostname/hostname.d.ts +11 -0
- package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
- package/dist/commands/join/join.d.ts +12 -0
- package/dist/commands/jq/jq.d.ts +9 -0
- package/dist/commands/ln/ln.d.ts +4 -0
- package/dist/commands/ls/ls.d.ts +4 -0
- package/dist/commands/md5sum/checksum.d.ts +7 -0
- package/dist/commands/md5sum/md5sum.d.ts +4 -0
- package/dist/commands/md5sum/sha1sum.d.ts +4 -0
- package/dist/commands/md5sum/sha256sum.d.ts +4 -0
- package/dist/commands/mkdir/mkdir.d.ts +4 -0
- package/dist/commands/mv/mv.d.ts +4 -0
- package/dist/commands/nl/nl.d.ts +12 -0
- package/dist/commands/od/od.d.ts +12 -0
- package/dist/commands/paste/paste.d.ts +4 -0
- package/dist/commands/printf/escapes.d.ts +31 -0
- package/dist/commands/printf/printf.d.ts +4 -0
- package/dist/commands/printf/strftime.d.ts +9 -0
- package/dist/commands/pwd/pwd.d.ts +4 -0
- package/dist/commands/python3/fs-bridge-handler.d.ts +50 -0
- package/dist/commands/python3/protocol.d.ts +138 -0
- package/dist/commands/python3/python3.d.ts +11 -0
- package/dist/commands/python3/sync-fs-backend.d.ts +59 -0
- package/dist/commands/python3/worker.d.ts +22 -0
- package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
- package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
- package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
- package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
- package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
- package/dist/commands/query-engine/builtins/index.d.ts +17 -0
- package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
- package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
- package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
- package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
- package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
- package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
- package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
- package/dist/commands/query-engine/evaluator.d.ts +37 -0
- package/dist/commands/query-engine/index.d.ts +8 -0
- package/dist/commands/query-engine/parser-types.d.ts +171 -0
- package/dist/commands/query-engine/parser.d.ts +9 -0
- package/dist/commands/query-engine/path-operations.d.ts +15 -0
- package/dist/commands/query-engine/safe-object.d.ts +59 -0
- package/dist/commands/query-engine/value-operations.d.ts +41 -0
- package/dist/commands/readlink/readlink.d.ts +4 -0
- package/dist/commands/registry.d.ts +45 -0
- package/dist/commands/rev/rev.d.ts +13 -0
- package/dist/commands/rg/file-types.d.ts +49 -0
- package/dist/commands/rg/gitignore.d.ts +98 -0
- package/dist/commands/rg/rg-options.d.ts +61 -0
- package/dist/commands/rg/rg-parser.d.ts +20 -0
- package/dist/commands/rg/rg-search.d.ts +15 -0
- package/dist/commands/rg/rg.d.ts +14 -0
- package/dist/commands/rm/rm.d.ts +4 -0
- package/dist/commands/rmdir/rmdir.d.ts +4 -0
- package/dist/commands/search-engine/index.d.ts +10 -0
- package/dist/commands/search-engine/matcher.d.ts +60 -0
- package/dist/commands/search-engine/regex.d.ts +33 -0
- package/dist/commands/sed/executor.d.ts +7 -0
- package/dist/commands/sed/lexer.d.ts +86 -0
- package/dist/commands/sed/parser.d.ts +18 -0
- package/dist/commands/sed/sed-regex.d.ts +23 -0
- package/dist/commands/sed/sed.d.ts +4 -0
- package/dist/commands/sed/types.d.ts +219 -0
- package/dist/commands/seq/seq.d.ts +16 -0
- package/dist/commands/sleep/sleep.d.ts +4 -0
- package/dist/commands/sort/comparator.d.ts +9 -0
- package/dist/commands/sort/parser.d.ts +11 -0
- package/dist/commands/sort/sort.d.ts +4 -0
- package/dist/commands/sort/types.d.ts +30 -0
- package/dist/commands/split/split.d.ts +12 -0
- package/dist/commands/sqlite3/formatters.d.ts +15 -0
- package/dist/commands/sqlite3/sqlite3.d.ts +16 -0
- package/dist/commands/sqlite3/worker.d.ts +44 -0
- package/dist/commands/stat/stat.d.ts +4 -0
- package/dist/commands/strings/strings.d.ts +12 -0
- package/dist/commands/tac/tac.d.ts +11 -0
- package/dist/commands/tail/tail.d.ts +4 -0
- package/dist/commands/tar/archive.d.ts +107 -0
- package/dist/commands/tar/tar-options.d.ts +36 -0
- package/dist/commands/tar/tar.d.ts +10 -0
- package/dist/commands/tee/tee.d.ts +4 -0
- package/dist/commands/time/time.d.ts +27 -0
- package/dist/commands/timeout/timeout.d.ts +4 -0
- package/dist/commands/touch/touch.d.ts +4 -0
- package/dist/commands/tr/tr.d.ts +4 -0
- package/dist/commands/tree/tree.d.ts +4 -0
- package/dist/commands/true/true.d.ts +6 -0
- package/dist/commands/uniq/uniq.d.ts +4 -0
- package/dist/commands/wc/wc.d.ts +4 -0
- package/dist/commands/which/which.d.ts +4 -0
- package/dist/commands/whoami/whoami.d.ts +11 -0
- package/dist/commands/xan/aggregation.d.ts +20 -0
- package/dist/commands/xan/column-selection.d.ts +19 -0
- package/dist/commands/xan/csv.d.ts +37 -0
- package/dist/commands/xan/moonblade-parser.d.ts +80 -0
- package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
- package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
- package/dist/commands/xan/subcommands.d.ts +15 -0
- package/dist/commands/xan/xan-agg.d.ts +8 -0
- package/dist/commands/xan/xan-columns.d.ts +8 -0
- package/dist/commands/xan/xan-core.d.ts +10 -0
- package/dist/commands/xan/xan-data.d.ts +52 -0
- package/dist/commands/xan/xan-filter.d.ts +8 -0
- package/dist/commands/xan/xan-map.d.ts +11 -0
- package/dist/commands/xan/xan-reshape.d.ts +40 -0
- package/dist/commands/xan/xan-simple.d.ts +40 -0
- package/dist/commands/xan/xan-view.d.ts +12 -0
- package/dist/commands/xan/xan.d.ts +10 -0
- package/dist/commands/xargs/xargs.d.ts +4 -0
- package/dist/commands/yq/formats.d.ts +64 -0
- package/dist/commands/yq/yq.d.ts +13 -0
- package/dist/custom-commands.d.ts +61 -0
- package/dist/fs/encoding.d.ts +17 -0
- package/dist/fs/in-memory-fs/in-memory-fs.d.ts +63 -0
- package/dist/fs/in-memory-fs/index.d.ts +1 -0
- package/dist/fs/init.d.ts +12 -0
- package/dist/fs/interface.d.ts +219 -0
- package/dist/fs/mountable-fs/index.d.ts +1 -0
- package/dist/fs/mountable-fs/mountable-fs.d.ts +120 -0
- package/dist/fs/overlay-fs/index.d.ts +1 -0
- package/dist/fs/overlay-fs/overlay-fs.d.ts +126 -0
- package/dist/fs/read-write-fs/index.d.ts +1 -0
- package/dist/fs/read-write-fs/read-write-fs.d.ts +69 -0
- package/dist/index.d.ts +19 -0
- package/dist/interpreter/alias-expansion.d.ts +23 -0
- package/dist/interpreter/arithmetic.d.ts +24 -0
- package/dist/interpreter/assignment-expansion.d.ts +24 -0
- package/dist/interpreter/builtin-dispatch.d.ts +39 -0
- package/dist/interpreter/builtins/break.d.ts +6 -0
- package/dist/interpreter/builtins/cd.d.ts +6 -0
- package/dist/interpreter/builtins/compgen.d.ts +26 -0
- package/dist/interpreter/builtins/complete.d.ts +17 -0
- package/dist/interpreter/builtins/compopt.d.ts +28 -0
- package/dist/interpreter/builtins/continue.d.ts +6 -0
- package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
- package/dist/interpreter/builtins/declare-print.d.ts +39 -0
- package/dist/interpreter/builtins/declare.d.ts +35 -0
- package/dist/interpreter/builtins/dirs.d.ts +29 -0
- package/dist/interpreter/builtins/eval.d.ts +9 -0
- package/dist/interpreter/builtins/exit.d.ts +5 -0
- package/dist/interpreter/builtins/export.d.ts +14 -0
- package/dist/interpreter/builtins/getopts.d.ts +18 -0
- package/dist/interpreter/builtins/hash.d.ts +19 -0
- package/dist/interpreter/builtins/help.d.ts +12 -0
- package/dist/interpreter/builtins/index.d.ts +45 -0
- package/dist/interpreter/builtins/let.d.ts +18 -0
- package/dist/interpreter/builtins/local.d.ts +6 -0
- package/dist/interpreter/builtins/mapfile.d.ts +17 -0
- package/dist/interpreter/builtins/read.d.ts +6 -0
- package/dist/interpreter/builtins/return.d.ts +6 -0
- package/dist/interpreter/builtins/set.d.ts +9 -0
- package/dist/interpreter/builtins/shift.d.ts +15 -0
- package/dist/interpreter/builtins/shopt.d.ts +7 -0
- package/dist/interpreter/builtins/source.d.ts +6 -0
- package/dist/interpreter/builtins/unset.d.ts +16 -0
- package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
- package/dist/interpreter/command-resolution.d.ts +43 -0
- package/dist/interpreter/conditionals.d.ts +17 -0
- package/dist/interpreter/control-flow.d.ts +21 -0
- package/dist/interpreter/errors.d.ts +150 -0
- package/dist/interpreter/expansion/analysis.d.ts +37 -0
- package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
- package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
- package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
- package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
- package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
- package/dist/interpreter/expansion/brace-range.d.ts +20 -0
- package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
- package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
- package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
- package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
- package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
- package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
- package/dist/interpreter/expansion/pattern.d.ts +23 -0
- package/dist/interpreter/expansion/positional-params.d.ts +59 -0
- package/dist/interpreter/expansion/prompt.d.ts +39 -0
- package/dist/interpreter/expansion/quoting.d.ts +13 -0
- package/dist/interpreter/expansion/tilde.d.ts +12 -0
- package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
- package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
- package/dist/interpreter/expansion/variable.d.ts +43 -0
- package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
- package/dist/interpreter/expansion/word-split.d.ts +29 -0
- package/dist/interpreter/expansion.d.ts +57 -0
- package/dist/interpreter/functions.d.ts +12 -0
- package/dist/interpreter/helpers/array.d.ts +43 -0
- package/dist/interpreter/helpers/condition.d.ts +18 -0
- package/dist/interpreter/helpers/errors.d.ts +8 -0
- package/dist/interpreter/helpers/file-tests.d.ts +33 -0
- package/dist/interpreter/helpers/ifs.d.ts +104 -0
- package/dist/interpreter/helpers/loop.d.ts +24 -0
- package/dist/interpreter/helpers/nameref.d.ts +65 -0
- package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
- package/dist/interpreter/helpers/quoting.d.ts +24 -0
- package/dist/interpreter/helpers/readonly.d.ts +45 -0
- package/dist/interpreter/helpers/regex.d.ts +8 -0
- package/dist/interpreter/helpers/result.d.ts +62 -0
- package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
- package/dist/interpreter/helpers/shellopts.d.ts +28 -0
- package/dist/interpreter/helpers/statements.d.ts +20 -0
- package/dist/interpreter/helpers/string-compare.d.ts +24 -0
- package/dist/interpreter/helpers/string-tests.d.ts +13 -0
- package/dist/interpreter/helpers/tilde.d.ts +13 -0
- package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
- package/dist/interpreter/helpers/word-matching.d.ts +26 -0
- package/dist/interpreter/helpers/word-parts.d.ts +29 -0
- package/dist/interpreter/helpers/xtrace.d.ts +18 -0
- package/dist/interpreter/index.d.ts +3 -0
- package/dist/interpreter/interpreter.d.ts +65 -0
- package/dist/interpreter/pipeline-execution.d.ts +16 -0
- package/dist/interpreter/redirections.d.ts +51 -0
- package/dist/interpreter/simple-command-assignments.d.ts +29 -0
- package/dist/interpreter/subshell-group.d.ts +32 -0
- package/dist/interpreter/type-command.d.ts +37 -0
- package/dist/interpreter/types.d.ts +317 -0
- package/dist/limits.d.ts +42 -0
- package/dist/network/allow-list/shared.d.ts +45 -0
- package/dist/network/allow-list.d.ts +51 -0
- package/dist/network/fetch.d.ts +25 -0
- package/dist/network/index.d.ts +7 -0
- package/dist/network/types.d.ts +96 -0
- package/dist/parser/arithmetic-parser.d.ts +23 -0
- package/dist/parser/arithmetic-primaries.d.ts +45 -0
- package/dist/parser/command-parser.d.ts +10 -0
- package/dist/parser/compound-parser.d.ts +28 -0
- package/dist/parser/conditional-parser.d.ts +8 -0
- package/dist/parser/expansion-parser.d.ts +16 -0
- package/dist/parser/lexer.d.ts +192 -0
- package/dist/parser/parser-substitution.d.ts +62 -0
- package/dist/parser/parser.d.ts +135 -0
- package/dist/parser/types.d.ts +25 -0
- package/dist/parser/word-parser.d.ts +33 -0
- package/dist/sandbox/Command.d.ts +28 -0
- package/dist/sandbox/Sandbox.d.ts +60 -0
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/shell-metadata.d.ts +28 -0
- package/dist/test-utils.d.ts +15 -0
- package/dist/types.d.ts +148 -0
- package/dist/utils/args.d.ts +55 -0
- package/dist/utils/bytes.d.ts +39 -0
- package/dist/utils/constants.d.ts +15 -0
- package/dist/utils/file-reader.d.ts +67 -0
- package/dist/utils/glob.d.ts +25 -0
- package/package.json +115 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable Attributes
|
|
3
|
+
*
|
|
4
|
+
* Functions for getting variable attributes (${var@a} transformation).
|
|
5
|
+
*/
|
|
6
|
+
import type { InterpreterContext } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Get the attributes of a variable for ${var@a} transformation.
|
|
9
|
+
* Returns a string with attribute flags (e.g., "ar" for readonly array).
|
|
10
|
+
*
|
|
11
|
+
* Attribute flags (in order):
|
|
12
|
+
* - a: indexed array
|
|
13
|
+
* - A: associative array
|
|
14
|
+
* - i: integer
|
|
15
|
+
* - n: nameref
|
|
16
|
+
* - r: readonly
|
|
17
|
+
* - x: exported
|
|
18
|
+
*/
|
|
19
|
+
export declare function getVariableAttributes(ctx: InterpreterContext, name: string): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variable Access
|
|
3
|
+
*
|
|
4
|
+
* Handles variable value retrieval, including:
|
|
5
|
+
* - Special variables ($?, $$, $#, $@, $*, $0)
|
|
6
|
+
* - Array access (${arr[0]}, ${arr[@]}, ${arr[*]})
|
|
7
|
+
* - Positional parameters ($1, $2, ...)
|
|
8
|
+
* - Regular variables
|
|
9
|
+
* - Nameref resolution
|
|
10
|
+
*/
|
|
11
|
+
import type { InterpreterContext } from "../types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Get all elements of an array stored as arrayName_0, arrayName_1, etc.
|
|
14
|
+
* Returns an array of [index/key, value] tuples, sorted by index/key.
|
|
15
|
+
* For associative arrays, uses string keys.
|
|
16
|
+
* Special arrays FUNCNAME, BASH_LINENO, and BASH_SOURCE are handled dynamically from call stack.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getArrayElements(ctx: InterpreterContext, arrayName: string): Array<[number | string, string]>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a variable is an array (has elements stored as name_0, name_1, etc.)
|
|
21
|
+
*/
|
|
22
|
+
export declare function isArray(ctx: InterpreterContext, name: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Get the value of a variable, optionally checking nounset.
|
|
25
|
+
* @param ctx - The interpreter context
|
|
26
|
+
* @param name - The variable name
|
|
27
|
+
* @param checkNounset - Whether to check for nounset (default true)
|
|
28
|
+
*/
|
|
29
|
+
export declare function getVariable(ctx: InterpreterContext, name: string, checkNounset?: boolean, _insideDoubleQuotes?: boolean): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Get raw bytes for a simple variable lookup ($x, ${x}) without decoding.
|
|
32
|
+
* Only handles the simple case: no operations, no array subscripts beyond [0].
|
|
33
|
+
* Returns null for complex cases (special variables, namerefs, arrays),
|
|
34
|
+
* signaling the caller to fall back to the string path.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getVariableBytes(ctx: InterpreterContext, name: string): Uint8Array | null;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a variable is set (exists in the environment).
|
|
39
|
+
* Properly handles array subscripts (e.g., arr[0] -> arr_0).
|
|
40
|
+
* @param ctx - The interpreter context
|
|
41
|
+
* @param name - The variable name (possibly with array subscript)
|
|
42
|
+
*/
|
|
43
|
+
export declare function isVariableSet(ctx: InterpreterContext, name: string): Promise<boolean>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Word Expansion with Glob Handling
|
|
3
|
+
*
|
|
4
|
+
* Handles the main word expansion flow including:
|
|
5
|
+
* - Brace expansion
|
|
6
|
+
* - Array and positional parameter expansion
|
|
7
|
+
* - Word splitting
|
|
8
|
+
* - Glob/pathname expansion
|
|
9
|
+
*/
|
|
10
|
+
import type { ArithExpr, ParameterExpansionPart, WordNode, WordPart } from "../../ast/types.js";
|
|
11
|
+
import type { InterpreterContext } from "../types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Dependencies injected to avoid circular imports
|
|
14
|
+
*/
|
|
15
|
+
export interface WordGlobExpansionDeps {
|
|
16
|
+
expandWordAsync: (ctx: InterpreterContext, word: WordNode) => Promise<string>;
|
|
17
|
+
expandWordForGlobbing: (ctx: InterpreterContext, word: WordNode) => Promise<string>;
|
|
18
|
+
expandWordWithBracesAsync: (ctx: InterpreterContext, word: WordNode) => Promise<string[] | null>;
|
|
19
|
+
expandWordPartsAsync: (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
|
|
20
|
+
expandPart: (ctx: InterpreterContext, part: WordPart, inDoubleQuotes?: boolean) => Promise<string>;
|
|
21
|
+
expandParameterAsync: (ctx: InterpreterContext, part: ParameterExpansionPart, inDoubleQuotes?: boolean) => Promise<string>;
|
|
22
|
+
hasBraceExpansion: (parts: WordPart[]) => boolean;
|
|
23
|
+
evaluateArithmetic: (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
|
|
24
|
+
buildIfsCharClassPattern: (ifsChars: string) => string;
|
|
25
|
+
smartWordSplit: (ctx: InterpreterContext, wordParts: WordPart[], ifsChars: string, ifsPattern: string, expandPart: (ctx: InterpreterContext, part: WordPart) => Promise<string>) => Promise<string[]>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Main word expansion function that handles all expansion types and glob matching.
|
|
29
|
+
*/
|
|
30
|
+
export declare function expandWordWithGlobImpl(ctx: InterpreterContext, word: WordNode, deps: WordGlobExpansionDeps): Promise<{
|
|
31
|
+
values: string[];
|
|
32
|
+
quoted: boolean;
|
|
33
|
+
}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Word Splitting
|
|
3
|
+
*
|
|
4
|
+
* IFS-based word splitting for unquoted expansions.
|
|
5
|
+
*/
|
|
6
|
+
import type { WordPart } from "../../ast/types.js";
|
|
7
|
+
import type { InterpreterContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Type for the expandPart function that will be injected
|
|
10
|
+
*/
|
|
11
|
+
export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Smart word splitting for words containing expansions.
|
|
14
|
+
*
|
|
15
|
+
* In bash, word splitting respects quoted parts. When you have:
|
|
16
|
+
* - $a"$b" where a="1 2" and b="3 4"
|
|
17
|
+
* - The unquoted $a gets split by IFS: "1 2" -> ["1", "2"]
|
|
18
|
+
* - The quoted "$b" does NOT get split, it joins with the last field from $a
|
|
19
|
+
* - Result: ["1", "23 4"] (the "2" joins with "3 4")
|
|
20
|
+
*
|
|
21
|
+
* This differs from pure literal words which are never IFS-split.
|
|
22
|
+
*
|
|
23
|
+
* @param ctx - Interpreter context
|
|
24
|
+
* @param wordParts - Word parts to expand and split
|
|
25
|
+
* @param ifsChars - IFS characters for proper whitespace/non-whitespace handling
|
|
26
|
+
* @param ifsPattern - Regex-escaped IFS pattern for checking if splitting is needed
|
|
27
|
+
* @param expandPartFn - Function to expand individual parts (injected to avoid circular deps)
|
|
28
|
+
*/
|
|
29
|
+
export declare function smartWordSplit(ctx: InterpreterContext, wordParts: WordPart[], ifsChars: string, _ifsPattern: string, expandPartFn: ExpandPartFn): Promise<string[]>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Word Expansion
|
|
3
|
+
*
|
|
4
|
+
* Handles shell word expansion including:
|
|
5
|
+
* - Variable expansion ($VAR, ${VAR})
|
|
6
|
+
* - Command substitution $(...)
|
|
7
|
+
* - Arithmetic expansion $((...))
|
|
8
|
+
* - Tilde expansion (~)
|
|
9
|
+
* - Brace expansion {a,b,c}
|
|
10
|
+
* - Glob expansion (*, ?, [...])
|
|
11
|
+
*/
|
|
12
|
+
import type { WordNode } from "../ast/types.js";
|
|
13
|
+
import type { InterpreterContext } from "./types.js";
|
|
14
|
+
export { escapeGlobChars, escapeRegexChars } from "./expansion/glob-escape.js";
|
|
15
|
+
export { getArrayElements, getVariable, isArray, } from "./expansion/variable.js";
|
|
16
|
+
/**
|
|
17
|
+
* Check if an entire word is fully quoted
|
|
18
|
+
*/
|
|
19
|
+
export declare function isWordFullyQuoted(word: WordNode): boolean;
|
|
20
|
+
export declare function expandWord(ctx: InterpreterContext, word: WordNode): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Expand a word for use as a regex pattern (in [[ =~ ]]).
|
|
23
|
+
* Preserves backslash escapes so they're passed to the regex engine.
|
|
24
|
+
* For example, \[\] becomes \[\] in the regex (matching literal [ and ]).
|
|
25
|
+
*/
|
|
26
|
+
export declare function expandWordForRegex(ctx: InterpreterContext, word: WordNode): Promise<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Expand a word for use as a pattern (e.g., in [[ == ]] or case).
|
|
29
|
+
* Preserves backslash escapes for pattern metacharacters so they're treated literally.
|
|
30
|
+
* This prevents `*\(\)` from being interpreted as an extglob pattern.
|
|
31
|
+
*/
|
|
32
|
+
export declare function expandWordForPattern(ctx: InterpreterContext, word: WordNode): Promise<string>;
|
|
33
|
+
export declare function expandWordWithGlob(ctx: InterpreterContext, word: WordNode): Promise<{
|
|
34
|
+
values: string[];
|
|
35
|
+
quoted: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
export declare function hasQuotedMultiValueAt(ctx: InterpreterContext, word: WordNode): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Expand a redirect target with glob handling.
|
|
40
|
+
*
|
|
41
|
+
* For redirects:
|
|
42
|
+
* - If glob matches 0 files with failglob → error (returns { error: ... })
|
|
43
|
+
* - If glob matches 0 files without failglob → use literal pattern
|
|
44
|
+
* - If glob matches 1 file → use that file
|
|
45
|
+
* - If glob matches 2+ files → "ambiguous redirect" error
|
|
46
|
+
*
|
|
47
|
+
* Returns { target: string } on success or { error: string } on failure.
|
|
48
|
+
*/
|
|
49
|
+
export declare function expandRedirectTarget(ctx: InterpreterContext, word: WordNode): Promise<{
|
|
50
|
+
target: string;
|
|
51
|
+
} | {
|
|
52
|
+
error: string;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Expand a word to raw bytes. Uses the bytes-canonical path for all parts.
|
|
56
|
+
*/
|
|
57
|
+
export declare function expandWordToBytes(ctx: InterpreterContext, word: WordNode): Promise<Uint8Array>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Function Handling
|
|
3
|
+
*
|
|
4
|
+
* Handles shell function definition and invocation:
|
|
5
|
+
* - Function definition (adding to function table)
|
|
6
|
+
* - Function calls (with positional parameters and local scopes)
|
|
7
|
+
*/
|
|
8
|
+
import type { FunctionDefNode } from "../ast/types.js";
|
|
9
|
+
import type { ExecResult } from "../types.js";
|
|
10
|
+
import type { InterpreterContext } from "./types.js";
|
|
11
|
+
export declare function executeFunctionDef(ctx: InterpreterContext, node: FunctionDefNode): ExecResult;
|
|
12
|
+
export declare function callFunction(ctx: InterpreterContext, func: FunctionDefNode, args: string[], stdin?: Uint8Array, callLine?: number): Promise<ExecResult>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array helper functions for the interpreter.
|
|
3
|
+
*/
|
|
4
|
+
import type { WordNode } from "../../ast/types.js";
|
|
5
|
+
import type { InterpreterContext } from "../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Get all indices of an array, sorted in ascending order.
|
|
8
|
+
* Arrays are stored as `name_0`, `name_1`, etc. in the environment.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getArrayIndices(ctx: InterpreterContext, arrayName: string): number[];
|
|
11
|
+
/**
|
|
12
|
+
* Clear all elements of an array from the environment.
|
|
13
|
+
*/
|
|
14
|
+
export declare function clearArray(ctx: InterpreterContext, arrayName: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Get all keys of an associative array.
|
|
17
|
+
* For associative arrays, keys are stored as `name_key` where key is a string.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getAssocArrayKeys(ctx: InterpreterContext, arrayName: string): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Remove surrounding quotes from a key string.
|
|
22
|
+
* Handles 'key' and "key" → key
|
|
23
|
+
*/
|
|
24
|
+
export declare function unquoteKey(key: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a keyed array element from an AST WordNode like [key]=value or [key]+=value.
|
|
27
|
+
* Returns { key, valueParts, append } where valueParts are the AST parts for the value.
|
|
28
|
+
* Returns null if not a keyed element pattern.
|
|
29
|
+
*
|
|
30
|
+
* This is used to properly expand variables in the value part of keyed elements.
|
|
31
|
+
*/
|
|
32
|
+
export interface ParsedKeyedElement {
|
|
33
|
+
key: string;
|
|
34
|
+
valueParts: WordNode["parts"];
|
|
35
|
+
append: boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare function parseKeyedElementFromWord(word: WordNode): ParsedKeyedElement | null;
|
|
38
|
+
/**
|
|
39
|
+
* Extract literal string content from a Word node (without expansion).
|
|
40
|
+
* This is used for parsing associative array element syntax like [key]=value
|
|
41
|
+
* where the [key] part may be parsed as a Glob.
|
|
42
|
+
*/
|
|
43
|
+
export declare function wordToLiteralString(word: WordNode): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Condition execution helper for the interpreter.
|
|
3
|
+
*
|
|
4
|
+
* Handles executing condition statements with proper inCondition state management.
|
|
5
|
+
* Used by if, while, and until loops.
|
|
6
|
+
*/
|
|
7
|
+
import type { StatementNode } from "../../ast/types.js";
|
|
8
|
+
import type { ExecResult } from "../../types.js";
|
|
9
|
+
import type { InterpreterContext } from "../types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Execute condition statements with inCondition flag set.
|
|
12
|
+
* This prevents errexit from triggering during condition evaluation.
|
|
13
|
+
*
|
|
14
|
+
* @param ctx - Interpreter context
|
|
15
|
+
* @param statements - Condition statements to execute
|
|
16
|
+
* @returns Accumulated stdout, stderr, and final exit code
|
|
17
|
+
*/
|
|
18
|
+
export declare function executeCondition(ctx: InterpreterContext, statements: StatementNode[]): Promise<ExecResult>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { InterpreterContext } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* File test operators supported by bash
|
|
4
|
+
* Unary operators that test file properties
|
|
5
|
+
*/
|
|
6
|
+
declare const FILE_TEST_OPERATORS: readonly ["-e", "-a", "-f", "-d", "-r", "-w", "-x", "-s", "-L", "-h", "-k", "-g", "-u", "-G", "-O", "-b", "-c", "-p", "-S", "-t", "-N"];
|
|
7
|
+
export type FileTestOperator = (typeof FILE_TEST_OPERATORS)[number];
|
|
8
|
+
export declare function isFileTestOperator(op: string): op is FileTestOperator;
|
|
9
|
+
/**
|
|
10
|
+
* Evaluates a file test operator (-e, -f, -d, etc.) against a path.
|
|
11
|
+
* Returns a boolean result.
|
|
12
|
+
*
|
|
13
|
+
* @param ctx - Interpreter context with filesystem access
|
|
14
|
+
* @param operator - The file test operator (e.g., "-f", "-d", "-e")
|
|
15
|
+
* @param operand - The path to test (will be resolved relative to cwd)
|
|
16
|
+
*/
|
|
17
|
+
export declare function evaluateFileTest(ctx: InterpreterContext, operator: string, operand: string): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Binary file test operators for comparing two files
|
|
20
|
+
*/
|
|
21
|
+
declare const BINARY_FILE_TEST_OPERATORS: readonly ["-nt", "-ot", "-ef"];
|
|
22
|
+
export type BinaryFileTestOperator = (typeof BINARY_FILE_TEST_OPERATORS)[number];
|
|
23
|
+
export declare function isBinaryFileTestOperator(op: string): op is BinaryFileTestOperator;
|
|
24
|
+
/**
|
|
25
|
+
* Evaluates a binary file test operator (-nt, -ot, -ef) comparing two files.
|
|
26
|
+
*
|
|
27
|
+
* @param ctx - Interpreter context with filesystem access
|
|
28
|
+
* @param operator - The operator (-nt, -ot, -ef)
|
|
29
|
+
* @param left - Left operand (file path)
|
|
30
|
+
* @param right - Right operand (file path)
|
|
31
|
+
*/
|
|
32
|
+
export declare function evaluateBinaryFileTest(ctx: InterpreterContext, operator: string, left: string, right: string): Promise<boolean>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IFS (Internal Field Separator) Handling
|
|
3
|
+
*
|
|
4
|
+
* Centralized utilities for IFS-based word splitting used by:
|
|
5
|
+
* - Word expansion (unquoted variable expansion)
|
|
6
|
+
* - read builtin
|
|
7
|
+
* - ${!prefix*} and ${!arr[*]} expansions
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Get the effective IFS value from environment.
|
|
11
|
+
* Returns DEFAULT_IFS if IFS is undefined, or the actual value (including empty string).
|
|
12
|
+
*/
|
|
13
|
+
export declare function getIfs(env: Map<string, Uint8Array>): string;
|
|
14
|
+
/**
|
|
15
|
+
* Check if IFS is set to empty string (disables word splitting).
|
|
16
|
+
*/
|
|
17
|
+
export declare function isIfsEmpty(env: Map<string, Uint8Array>): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if IFS contains only whitespace characters (space, tab, newline).
|
|
20
|
+
* This affects how empty fields are handled in $@ and $* expansion.
|
|
21
|
+
* When IFS has non-whitespace chars, empty params are preserved.
|
|
22
|
+
* When IFS has only whitespace, empty params are dropped.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isIfsWhitespaceOnly(env: Map<string, Uint8Array>): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Build a regex-safe pattern from IFS characters for use in character classes.
|
|
27
|
+
* E.g., for IFS=" \t\n", returns " \\t\\n" (escaped for [pattern] use)
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildIfsCharClassPattern(ifs: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Get the first character of IFS (used for joining with $* and ${!prefix*}).
|
|
32
|
+
* Returns space if IFS is undefined, empty string if IFS is empty.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getIfsSeparator(env: Map<string, Uint8Array>): string;
|
|
35
|
+
/**
|
|
36
|
+
* Advanced IFS splitting for the read builtin with proper whitespace/non-whitespace handling.
|
|
37
|
+
*
|
|
38
|
+
* IFS has two types of characters:
|
|
39
|
+
* - Whitespace (space, tab, newline): Multiple consecutive ones are collapsed,
|
|
40
|
+
* leading/trailing are stripped
|
|
41
|
+
* - Non-whitespace (like 'x', ':'): Create empty fields when consecutive,
|
|
42
|
+
* trailing ones preserved (except the final delimiter)
|
|
43
|
+
*
|
|
44
|
+
* @param value - String to split
|
|
45
|
+
* @param ifs - IFS characters to split on
|
|
46
|
+
* @param maxSplit - Maximum number of splits (for read with multiple vars, the last gets the rest)
|
|
47
|
+
* @param raw - If true, backslash escaping is disabled (like read -r)
|
|
48
|
+
* @returns Object with words array and wordStarts array
|
|
49
|
+
*/
|
|
50
|
+
export declare function splitByIfsForRead(value: string, ifs: string, maxSplit?: number, raw?: boolean): {
|
|
51
|
+
words: string[];
|
|
52
|
+
wordStarts: number[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* IFS splitting for word expansion (unquoted $VAR, $*, etc.).
|
|
56
|
+
*
|
|
57
|
+
* Key differences from splitByIfsForRead:
|
|
58
|
+
* - Trailing non-whitespace delimiter does NOT create an empty field
|
|
59
|
+
* - No maxSplit concept (always splits fully)
|
|
60
|
+
* - No backslash escape handling
|
|
61
|
+
*
|
|
62
|
+
* @param value - String to split
|
|
63
|
+
* @param ifs - IFS characters to split on
|
|
64
|
+
* @returns Array of words after splitting
|
|
65
|
+
*/
|
|
66
|
+
/**
|
|
67
|
+
* Result of splitByIfsForExpansionEx with leading/trailing delimiter info.
|
|
68
|
+
*/
|
|
69
|
+
export interface IfsExpansionSplitResult {
|
|
70
|
+
words: string[];
|
|
71
|
+
/** True if the value started with an IFS whitespace delimiter (affects joining with preceding text) */
|
|
72
|
+
hadLeadingDelimiter: boolean;
|
|
73
|
+
/** True if the value ended with an IFS delimiter (affects joining with subsequent text) */
|
|
74
|
+
hadTrailingDelimiter: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Extended IFS splitting that tracks trailing delimiters.
|
|
78
|
+
* This is needed for proper word boundary handling when literal text follows an expansion.
|
|
79
|
+
* For example, in `-$x-` where `x='a b c '`, the trailing space means the final `-`
|
|
80
|
+
* should become a separate word, not join with `c`.
|
|
81
|
+
*/
|
|
82
|
+
export declare function splitByIfsForExpansionEx(value: string, ifs: string): IfsExpansionSplitResult;
|
|
83
|
+
export declare function splitByIfsForExpansion(value: string, ifs: string): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Strip trailing IFS from the last variable in read builtin.
|
|
86
|
+
*
|
|
87
|
+
* Bash behavior:
|
|
88
|
+
* 1. Strip trailing IFS whitespace characters (but NOT if they're escaped by backslash)
|
|
89
|
+
* 2. If there's a single trailing IFS non-whitespace character, strip it ONLY IF
|
|
90
|
+
* there are no other non-ws IFS chars in the content (excluding the trailing one)
|
|
91
|
+
*
|
|
92
|
+
* Examples with IFS="x ":
|
|
93
|
+
* - "ax " -> "a" (trailing spaces stripped, then trailing single x stripped because no other x)
|
|
94
|
+
* - "ax" -> "a" (trailing single x stripped because no other x in remaining content)
|
|
95
|
+
* - "axx" -> "axx" (two trailing x's, so don't strip - there's another x)
|
|
96
|
+
* - "ax x" -> "ax x" (trailing x NOT stripped because there's an x earlier)
|
|
97
|
+
* - "bx" -> "b" (trailing x stripped, no other x)
|
|
98
|
+
* - "a\ " -> "a " (backslash-escaped space is NOT stripped)
|
|
99
|
+
*
|
|
100
|
+
* @param value - String to strip (raw, before backslash processing)
|
|
101
|
+
* @param ifs - IFS characters
|
|
102
|
+
* @param raw - If true, backslash escaping is disabled
|
|
103
|
+
*/
|
|
104
|
+
export declare function stripTrailingIfsWhitespace(value: string, ifs: string, raw?: boolean): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop Error Handling Helpers
|
|
3
|
+
*
|
|
4
|
+
* Consolidates the repeated error handling logic used in all loop constructs
|
|
5
|
+
* (for, c-style for, while, until).
|
|
6
|
+
*/
|
|
7
|
+
export type LoopAction = "break" | "continue" | "rethrow" | "error";
|
|
8
|
+
export interface LoopErrorResult {
|
|
9
|
+
action: LoopAction;
|
|
10
|
+
stdout: Uint8Array;
|
|
11
|
+
stderr: Uint8Array;
|
|
12
|
+
exitCode?: number;
|
|
13
|
+
error?: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Handle errors thrown during loop body execution.
|
|
17
|
+
*
|
|
18
|
+
* @param error - The caught error
|
|
19
|
+
* @param stdout - Current accumulated stdout
|
|
20
|
+
* @param stderr - Current accumulated stderr
|
|
21
|
+
* @param loopDepth - Current loop nesting depth from ctx.state.loopDepth
|
|
22
|
+
* @returns Result indicating what action the loop should take
|
|
23
|
+
*/
|
|
24
|
+
export declare function handleLoopError(error: unknown, stdout: Uint8Array, stderr: Uint8Array, loopDepth: number): LoopErrorResult;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nameref (declare -n) support
|
|
3
|
+
*
|
|
4
|
+
* Namerefs are variables that reference other variables by name.
|
|
5
|
+
* When a nameref is accessed, it transparently dereferences to the target variable.
|
|
6
|
+
*/
|
|
7
|
+
import type { InterpreterContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Check if a variable is a nameref
|
|
10
|
+
*/
|
|
11
|
+
export declare function isNameref(ctx: InterpreterContext, name: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Mark a variable as a nameref
|
|
14
|
+
*/
|
|
15
|
+
export declare function markNameref(ctx: InterpreterContext, name: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Remove the nameref attribute from a variable
|
|
18
|
+
*/
|
|
19
|
+
export declare function unmarkNameref(ctx: InterpreterContext, name: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Mark a nameref as having an "invalid" target at creation time.
|
|
22
|
+
* Invalid namerefs always read/write their value directly, never resolving.
|
|
23
|
+
*/
|
|
24
|
+
export declare function markNamerefInvalid(ctx: InterpreterContext, name: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Mark a nameref as "bound" - meaning its target existed at creation time.
|
|
27
|
+
* This is kept for tracking purposes but is currently not used in resolution.
|
|
28
|
+
*/
|
|
29
|
+
export declare function markNamerefBound(ctx: InterpreterContext, name: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a name refers to a valid, existing variable or array element.
|
|
32
|
+
* Used to determine if a nameref target is "real" or just a stored value.
|
|
33
|
+
*/
|
|
34
|
+
export declare function targetExists(ctx: InterpreterContext, target: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a nameref chain to the final variable name.
|
|
37
|
+
* Returns the original name if it's not a nameref.
|
|
38
|
+
* Detects circular references and returns undefined.
|
|
39
|
+
*
|
|
40
|
+
* @param ctx - The interpreter context
|
|
41
|
+
* @param name - The variable name to resolve
|
|
42
|
+
* @param maxDepth - Maximum chain depth to prevent infinite loops (default 100)
|
|
43
|
+
* @returns The resolved variable name, or undefined if circular reference detected
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveNameref(ctx: InterpreterContext, name: string, maxDepth?: number): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Get the target name of a nameref (what it points to).
|
|
48
|
+
* Returns the variable's value if it's a nameref, undefined otherwise.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getNamerefTarget(ctx: InterpreterContext, name: string): string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a nameref for assignment purposes.
|
|
53
|
+
* Unlike resolveNameref, this will resolve to the target variable name
|
|
54
|
+
* even if the target doesn't exist yet (allowing creation).
|
|
55
|
+
*
|
|
56
|
+
* @param ctx - The interpreter context
|
|
57
|
+
* @param name - The variable name to resolve
|
|
58
|
+
* @param valueBeingAssigned - The value being assigned (needed for empty nameref handling)
|
|
59
|
+
* @param maxDepth - Maximum chain depth to prevent infinite loops
|
|
60
|
+
* @returns
|
|
61
|
+
* - undefined if circular reference detected
|
|
62
|
+
* - null if the nameref is empty and value is not an existing variable (skip assignment)
|
|
63
|
+
* - The resolved target name otherwise (may be the nameref itself if target is invalid)
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveNamerefForAssignment(ctx: InterpreterContext, name: string, valueBeingAssigned?: string, maxDepth?: number): string | null | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric comparison helper for conditionals.
|
|
3
|
+
* Handles -eq, -ne, -lt, -le, -gt, -ge operators.
|
|
4
|
+
*/
|
|
5
|
+
export type NumericOp = "-eq" | "-ne" | "-lt" | "-le" | "-gt" | "-ge";
|
|
6
|
+
/**
|
|
7
|
+
* Check if an operator is a numeric comparison operator.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isNumericOp(op: string): op is NumericOp;
|
|
10
|
+
/**
|
|
11
|
+
* Compare two numbers using a numeric comparison operator.
|
|
12
|
+
*/
|
|
13
|
+
export declare function compareNumeric(op: NumericOp, left: number, right: number): boolean;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell value quoting utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for quoting values in shell output format,
|
|
5
|
+
* used by both `set` and `declare/typeset` builtins.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Quote a value for shell output (used by 'set' and 'typeset' with no args)
|
|
9
|
+
* Matches bash's output format:
|
|
10
|
+
* - No quotes for simple alphanumeric values
|
|
11
|
+
* - Single quotes for values with spaces or shell metacharacters
|
|
12
|
+
* - $'...' quoting for values with control characters
|
|
13
|
+
*/
|
|
14
|
+
export declare function quoteValue(value: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Quote a value for array element output
|
|
17
|
+
* Uses $'...' for control characters, double quotes otherwise
|
|
18
|
+
*/
|
|
19
|
+
export declare function quoteArrayValue(value: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Quote a value for declare -p output
|
|
22
|
+
* Uses $'...' for control characters, double quotes otherwise
|
|
23
|
+
*/
|
|
24
|
+
export declare function quoteDeclareValue(value: string): string;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Readonly and export variable helpers.
|
|
3
|
+
*
|
|
4
|
+
* Consolidates readonly and export variable logic used in declare, export, local, etc.
|
|
5
|
+
*/
|
|
6
|
+
import type { ExecResult } from "../../types.js";
|
|
7
|
+
import type { InterpreterContext } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Mark a variable as readonly.
|
|
10
|
+
*/
|
|
11
|
+
export declare function markReadonly(ctx: InterpreterContext, name: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Check if a variable is readonly.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isReadonly(ctx: InterpreterContext, name: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Check if a variable is readonly and throw an error if so.
|
|
18
|
+
* Returns null if the variable is not readonly (can be modified).
|
|
19
|
+
*
|
|
20
|
+
* Assigning to a readonly variable is a fatal error that stops script execution.
|
|
21
|
+
* This matches the behavior of dash, mksh, ash, and bash in POSIX mode.
|
|
22
|
+
* (Note: bash in non-POSIX mode has a bug where multi-line readonly assignment
|
|
23
|
+
* continues execution, but one-line still stops. We always stop.)
|
|
24
|
+
*
|
|
25
|
+
* @param ctx - Interpreter context
|
|
26
|
+
* @param name - Variable name
|
|
27
|
+
* @param command - Command name for error message (default: "bash")
|
|
28
|
+
* @returns null if variable is not readonly (can be modified)
|
|
29
|
+
* @throws ExitError if variable is readonly
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkReadonlyError(ctx: InterpreterContext, name: string, command?: string): ExecResult | null;
|
|
32
|
+
/**
|
|
33
|
+
* Mark a variable as exported.
|
|
34
|
+
*
|
|
35
|
+
* If we're inside a local scope and the variable is local (exists in the
|
|
36
|
+
* current scope), track it as a locally-exported variable. When the scope
|
|
37
|
+
* is popped, the export attribute will be removed if it wasn't exported
|
|
38
|
+
* before entering the function.
|
|
39
|
+
*/
|
|
40
|
+
export declare function markExported(ctx: InterpreterContext, name: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Remove the export attribute from a variable.
|
|
43
|
+
* The variable value is preserved, just no longer exported to child processes.
|
|
44
|
+
*/
|
|
45
|
+
export declare function unmarkExported(ctx: InterpreterContext, name: string): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecResult factory functions for cleaner code.
|
|
3
|
+
*
|
|
4
|
+
* These helpers reduce verbosity and improve readability when
|
|
5
|
+
* constructing ExecResult objects throughout the interpreter.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExecResult } from "../../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* A successful result with no output.
|
|
10
|
+
* Use this for commands that succeed silently.
|
|
11
|
+
*/
|
|
12
|
+
export declare const OK: ExecResult;
|
|
13
|
+
/**
|
|
14
|
+
* Create a successful result with optional stdout bytes.
|
|
15
|
+
*
|
|
16
|
+
* @param stdout - Output bytes to include (default: EMPTY)
|
|
17
|
+
* @returns ExecResult with exitCode 0
|
|
18
|
+
*/
|
|
19
|
+
export declare function success(stdout?: Uint8Array): ExecResult;
|
|
20
|
+
/**
|
|
21
|
+
* Create a successful result from a text string.
|
|
22
|
+
* Convenience wrapper that encodes the string to UTF-8.
|
|
23
|
+
*
|
|
24
|
+
* @param stdout - Text output to include
|
|
25
|
+
* @returns ExecResult with exitCode 0
|
|
26
|
+
*/
|
|
27
|
+
export declare function successText(stdout: string): ExecResult;
|
|
28
|
+
/**
|
|
29
|
+
* Create a failure result with stderr message.
|
|
30
|
+
*
|
|
31
|
+
* @param stderr - Error message to include
|
|
32
|
+
* @param exitCode - Exit code (default: 1)
|
|
33
|
+
* @returns ExecResult with the specified exitCode
|
|
34
|
+
*/
|
|
35
|
+
export declare function failure(stderr: string, exitCode?: number): ExecResult;
|
|
36
|
+
/**
|
|
37
|
+
* Create a result with all fields specified.
|
|
38
|
+
*
|
|
39
|
+
* @param stdout - Standard output bytes
|
|
40
|
+
* @param stderr - Standard error bytes
|
|
41
|
+
* @param exitCode - Exit code
|
|
42
|
+
* @returns ExecResult with all fields
|
|
43
|
+
*/
|
|
44
|
+
export declare function result(stdout: Uint8Array, stderr: Uint8Array, exitCode: number): ExecResult;
|
|
45
|
+
/**
|
|
46
|
+
* Convert a boolean test result to an ExecResult.
|
|
47
|
+
* Useful for test/conditional commands where true = exit 0, false = exit 1.
|
|
48
|
+
*
|
|
49
|
+
* @param passed - Boolean test result
|
|
50
|
+
* @returns ExecResult with exitCode 0 if passed, 1 otherwise
|
|
51
|
+
*/
|
|
52
|
+
export declare function testResult(passed: boolean): ExecResult;
|
|
53
|
+
/**
|
|
54
|
+
* Throw an ExecutionLimitError for execution limits (recursion, iterations, commands).
|
|
55
|
+
*
|
|
56
|
+
* @param message - Error message describing the limit exceeded
|
|
57
|
+
* @param limitType - Type of limit exceeded
|
|
58
|
+
* @param stdout - Accumulated stdout to include
|
|
59
|
+
* @param stderr - Accumulated stderr to include
|
|
60
|
+
* @throws ExecutionLimitError always
|
|
61
|
+
*/
|
|
62
|
+
export declare function throwExecutionLimit(message: string, limitType: "recursion" | "iterations" | "commands", stdout?: Uint8Array, stderr?: Uint8Array): never;
|