just-bash-nx 2.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE +201 -0
- package/README.md +573 -0
- package/dist/AGENTS.md +325 -0
- package/dist/Bash.d.ts +229 -0
- package/dist/ast/types.d.ts +609 -0
- package/dist/banned-patterns-test.d.ts +1 -0
- package/dist/bin/chunks/alias-3GODYSFD.js +2 -0
- package/dist/bin/chunks/awk2-RSUCURL4.js +2 -0
- package/dist/bin/chunks/base64-43M2R3GA.js +2 -0
- package/dist/bin/chunks/basename-KBUKWB2E.js +2 -0
- package/dist/bin/chunks/bash-6ZHZ6BX7.js +2 -0
- package/dist/bin/chunks/cat-XZIJZXKP.js +2 -0
- package/dist/bin/chunks/chmod-N5CQATDW.js +2 -0
- package/dist/bin/chunks/chunk-22NDZXS5.js +33 -0
- package/dist/bin/chunks/chunk-26NO42TF.js +14 -0
- package/dist/bin/chunks/chunk-2W2SCVT6.js +140 -0
- package/dist/bin/chunks/chunk-3MBAUIBB.js +7 -0
- package/dist/bin/chunks/chunk-3Y32LPNT.js +2 -0
- package/dist/bin/chunks/chunk-4CFAYBLV.js +21 -0
- package/dist/bin/chunks/chunk-4OALHZXB.js +2 -0
- package/dist/bin/chunks/chunk-4PRVMER6.js +2 -0
- package/dist/bin/chunks/chunk-4VDEBYW7.js +2 -0
- package/dist/bin/chunks/chunk-54G6AE72.js +32 -0
- package/dist/bin/chunks/chunk-5G2VOPPJ.js +7 -0
- package/dist/bin/chunks/chunk-5WFYIUU2.js +3 -0
- package/dist/bin/chunks/chunk-6KZRLMG3.js +8 -0
- package/dist/bin/chunks/chunk-7ADG3DNO.js +8 -0
- package/dist/bin/chunks/chunk-7BORMNPQ.js +2 -0
- package/dist/bin/chunks/chunk-7G3MC56B.js +7 -0
- package/dist/bin/chunks/chunk-AAW7UMPO.js +9 -0
- package/dist/bin/chunks/chunk-AXWFPG37.js +10 -0
- package/dist/bin/chunks/chunk-AZ3RUDR2.js +9 -0
- package/dist/bin/chunks/chunk-BGGF3ELU.js +5 -0
- package/dist/bin/chunks/chunk-BYDV4VEF.js +3 -0
- package/dist/bin/chunks/chunk-CGE2EHYP.js +5 -0
- package/dist/bin/chunks/chunk-CM4532DS.js +36 -0
- package/dist/bin/chunks/chunk-CQG2HEAL.js +5 -0
- package/dist/bin/chunks/chunk-D5WP4CKS.js +3 -0
- package/dist/bin/chunks/chunk-DOXYBGNA.js +12 -0
- package/dist/bin/chunks/chunk-E5BDLLK6.js +15 -0
- package/dist/bin/chunks/chunk-EJQKHROT.js +14 -0
- package/dist/bin/chunks/chunk-EONWONZV.js +2 -0
- package/dist/bin/chunks/chunk-EPPBDXOG.js +8 -0
- package/dist/bin/chunks/chunk-EUXCM6C4.js +12 -0
- package/dist/bin/chunks/chunk-EWDHVLQL.js +21 -0
- package/dist/bin/chunks/chunk-F3LGZXLQ.js +9 -0
- package/dist/bin/chunks/chunk-FA2CHD73.js +16 -0
- package/dist/bin/chunks/chunk-FIHFXGT6.js +287 -0
- package/dist/bin/chunks/chunk-FLPVVSN5.js +5 -0
- package/dist/bin/chunks/chunk-FSZWFMB4.js +16 -0
- package/dist/bin/chunks/chunk-GO6FXSC4.js +6 -0
- package/dist/bin/chunks/chunk-GOJZHH3L.js +6 -0
- package/dist/bin/chunks/chunk-GTNBSMZR.js +23 -0
- package/dist/bin/chunks/chunk-IDGH4PGU.js +3 -0
- package/dist/bin/chunks/chunk-IO2FYBEM.js +6 -0
- package/dist/bin/chunks/chunk-ITA43A73.js +7 -0
- package/dist/bin/chunks/chunk-JBABAK44.js +4 -0
- package/dist/bin/chunks/chunk-JDNI5HBX.js +33 -0
- package/dist/bin/chunks/chunk-JLX6YWGA.js +3 -0
- package/dist/bin/chunks/chunk-JQBC3FXE.js +8 -0
- package/dist/bin/chunks/chunk-JTF74J6E.js +2 -0
- package/dist/bin/chunks/chunk-KCMUAACL.js +19 -0
- package/dist/bin/chunks/chunk-KGOUQS5A.js +2 -0
- package/dist/bin/chunks/chunk-L6XUBS6H.js +84 -0
- package/dist/bin/chunks/chunk-LCDPWJBA.js +15 -0
- package/dist/bin/chunks/chunk-LGJM5YFT.js +17 -0
- package/dist/bin/chunks/chunk-LIYVQA3X.js +2 -0
- package/dist/bin/chunks/chunk-LJKIWB5F.js +4 -0
- package/dist/bin/chunks/chunk-LMK6G2HH.js +8 -0
- package/dist/bin/chunks/chunk-LOJMXC4F.js +5 -0
- package/dist/bin/chunks/chunk-MAVV76T4.js +2 -0
- package/dist/bin/chunks/chunk-MO4RPBN2.js +2 -0
- package/dist/bin/chunks/chunk-MRP4ZCD7.js +6 -0
- package/dist/bin/chunks/chunk-N43DJTSI.js +2 -0
- package/dist/bin/chunks/chunk-NAX7MTAR.js +21 -0
- package/dist/bin/chunks/chunk-NSUMEERA.js +12 -0
- package/dist/bin/chunks/chunk-NTW6IA45.js +2 -0
- package/dist/bin/chunks/chunk-OBH7XN5N.js +1 -0
- package/dist/bin/chunks/chunk-OBI37ZY4.js +9 -0
- package/dist/bin/chunks/chunk-OOJCYVYF.js +2 -0
- package/dist/bin/chunks/chunk-ORUYSLP4.js +16 -0
- package/dist/bin/chunks/chunk-OXHVTSNH.js +74 -0
- package/dist/bin/chunks/chunk-PNI5NMXP.js +100 -0
- package/dist/bin/chunks/chunk-PPBQJBC2.js +5 -0
- package/dist/bin/chunks/chunk-PQNTKMH3.js +6 -0
- package/dist/bin/chunks/chunk-PS4LOXE5.js +8 -0
- package/dist/bin/chunks/chunk-PXVBSPBE.js +2 -0
- package/dist/bin/chunks/chunk-RA3TG4UK.js +9 -0
- package/dist/bin/chunks/chunk-RBQGQWGV.js +10 -0
- package/dist/bin/chunks/chunk-RJSAGJQJ.js +11 -0
- package/dist/bin/chunks/chunk-RLNOQILG.js +2 -0
- package/dist/bin/chunks/chunk-ROJPSS6N.js +3 -0
- package/dist/bin/chunks/chunk-RT7TRQVZ.js +3 -0
- package/dist/bin/chunks/chunk-S3QAKT3R.js +11 -0
- package/dist/bin/chunks/chunk-S7OHMN3F.js +6 -0
- package/dist/bin/chunks/chunk-SGA7Y45Z.js +17 -0
- package/dist/bin/chunks/chunk-SXRVLCZ4.js +2 -0
- package/dist/bin/chunks/chunk-TEFXEYX3.js +3 -0
- package/dist/bin/chunks/chunk-THALLNXT.js +7 -0
- package/dist/bin/chunks/chunk-TTNNO45C.js +17 -0
- package/dist/bin/chunks/chunk-UFJFAFSS.js +28 -0
- package/dist/bin/chunks/chunk-V7ZOPVQS.js +2 -0
- package/dist/bin/chunks/chunk-VNER2XXL.js +7 -0
- package/dist/bin/chunks/chunk-WLBA7L7U.js +23 -0
- package/dist/bin/chunks/chunk-WWZVR5NN.js +6 -0
- package/dist/bin/chunks/chunk-WXMBDX4P.js +14 -0
- package/dist/bin/chunks/chunk-XXCTETRW.js +11 -0
- package/dist/bin/chunks/chunk-XY5HGZW5.js +8 -0
- package/dist/bin/chunks/chunk-YEKSVVRC.js +11 -0
- package/dist/bin/chunks/chunk-YLE2OYY6.js +2 -0
- package/dist/bin/chunks/chunk-YMMJLYIX.js +2 -0
- package/dist/bin/chunks/chunk-YTIURC67.js +2 -0
- package/dist/bin/chunks/chunk-YU6OGPZR.js +5 -0
- package/dist/bin/chunks/chunk-YWZOGBFE.js +9 -0
- package/dist/bin/chunks/chunk-ZA4HUKJ3.js +13 -0
- package/dist/bin/chunks/chunk-ZKC5HQYO.js +14 -0
- package/dist/bin/chunks/chunk-ZSVBYEY4.js +6 -0
- package/dist/bin/chunks/chunk-ZUDPEMHG.js +63 -0
- package/dist/bin/chunks/clear-KRGKPFOI.js +2 -0
- package/dist/bin/chunks/column-XGV32UPN.js +2 -0
- package/dist/bin/chunks/comm-R3F3Z5DX.js +2 -0
- package/dist/bin/chunks/cp-XH2ZB7WT.js +2 -0
- package/dist/bin/chunks/curl-2DCNBIKJ.js +26 -0
- package/dist/bin/chunks/cut-5EY2XPXX.js +2 -0
- package/dist/bin/chunks/date-WUPBL2TL.js +2 -0
- package/dist/bin/chunks/diff-5NUI5BHG.js +2 -0
- package/dist/bin/chunks/dirname-5FAOMLBL.js +2 -0
- package/dist/bin/chunks/du-LDAPXSGF.js +2 -0
- package/dist/bin/chunks/echo-2MUAOGUE.js +2 -0
- package/dist/bin/chunks/env-NTPN5QYM.js +2 -0
- package/dist/bin/chunks/expand-26XPP5KB.js +2 -0
- package/dist/bin/chunks/expansion-QUT3FT7V.js +2 -0
- package/dist/bin/chunks/expr-G4EF4POQ.js +2 -0
- package/dist/bin/chunks/file-MMSHRWCJ.js +2 -0
- package/dist/bin/chunks/find-7CVMEZBO.js +2 -0
- package/dist/bin/chunks/flag-coverage-UJISFT4M.js +2 -0
- package/dist/bin/chunks/fold-XSVNTAWH.js +2 -0
- package/dist/bin/chunks/grep-7BJ7HFBM.js +2 -0
- package/dist/bin/chunks/gzip-LHOO65AN.js +2 -0
- package/dist/bin/chunks/head-YMNRW3F3.js +2 -0
- package/dist/bin/chunks/help-DVG4AAGE.js +2 -0
- package/dist/bin/chunks/history-UUKG55YW.js +2 -0
- package/dist/bin/chunks/hostname-WY6RKE32.js +2 -0
- package/dist/bin/chunks/html-to-markdown-V6PK6S5U.js +2 -0
- package/dist/bin/chunks/join-Y4Q5WVVE.js +2 -0
- package/dist/bin/chunks/jq-4JWOFG7X.js +2 -0
- package/dist/bin/chunks/js-exec-RWEELTC2.js +97 -0
- package/dist/bin/chunks/js-exec-worker.js +4380 -0
- package/dist/bin/chunks/ln-EGC4HRXZ.js +2 -0
- package/dist/bin/chunks/ls-WONXDVOX.js +2 -0
- package/dist/bin/chunks/md5sum-NCLXV2S3.js +2 -0
- package/dist/bin/chunks/mkdir-Z47OISSR.js +2 -0
- package/dist/bin/chunks/mv-OY7X62QC.js +2 -0
- package/dist/bin/chunks/nl-XH3L75DR.js +2 -0
- package/dist/bin/chunks/od-52FBC34W.js +2 -0
- package/dist/bin/chunks/paste-3UVLMQ2K.js +2 -0
- package/dist/bin/chunks/printf-NA7DYZBO.js +2 -0
- package/dist/bin/chunks/pwd-6VBAPL3Y.js +2 -0
- package/dist/bin/chunks/python3-JUJKPBFB.js +12 -0
- package/dist/bin/chunks/readlink-BD5VFOC5.js +2 -0
- package/dist/bin/chunks/rev-UHEPS2UL.js +2 -0
- package/dist/bin/chunks/rg-DK6FRF6Q.js +2 -0
- package/dist/bin/chunks/rm-L3NZOLLG.js +2 -0
- package/dist/bin/chunks/rmdir-5KLM4EA6.js +2 -0
- package/dist/bin/chunks/sed-WWXBUNG3.js +2 -0
- package/dist/bin/chunks/seq-V7KBLSQ7.js +2 -0
- package/dist/bin/chunks/sha1sum-BHNJ5ALF.js +2 -0
- package/dist/bin/chunks/sha256sum-HJJ3NJ5L.js +2 -0
- package/dist/bin/chunks/sleep-ND6FZRZ4.js +2 -0
- package/dist/bin/chunks/sort-7GENYU2I.js +2 -0
- package/dist/bin/chunks/split-YWV64TJH.js +2 -0
- package/dist/bin/chunks/sqlite3-CVNFMP3Z.js +2 -0
- package/dist/bin/chunks/stat-XS2LXYS2.js +2 -0
- package/dist/bin/chunks/strings-XXKZCWY5.js +2 -0
- package/dist/bin/chunks/tac-T42SKDDI.js +2 -0
- package/dist/bin/chunks/tail-V537TDFR.js +2 -0
- package/dist/bin/chunks/tar-GTGFEWDS.js +2 -0
- package/dist/bin/chunks/tee-HK2SYCAR.js +2 -0
- package/dist/bin/chunks/time-5R4QWCYF.js +2 -0
- package/dist/bin/chunks/timeout-Z24MNWOP.js +2 -0
- package/dist/bin/chunks/touch-DWKSZGOQ.js +2 -0
- package/dist/bin/chunks/tr-4FPGAEVB.js +2 -0
- package/dist/bin/chunks/tree-HEKABARE.js +2 -0
- package/dist/bin/chunks/true-DP5UZP52.js +2 -0
- package/dist/bin/chunks/unexpand-OYZ7KOYR.js +2 -0
- package/dist/bin/chunks/uniq-TMSAIZM3.js +2 -0
- package/dist/bin/chunks/wc-ZIV3TFVG.js +2 -0
- package/dist/bin/chunks/which-5PO4LAOG.js +2 -0
- package/dist/bin/chunks/whoami-E7PN2UWC.js +2 -0
- package/dist/bin/chunks/worker.js +3136 -0
- package/dist/bin/chunks/xan-FKXPSPE5.js +2 -0
- package/dist/bin/chunks/xan-view-6J5MMMQB.js +2 -0
- package/dist/bin/chunks/xargs-SCYIFXOW.js +2 -0
- package/dist/bin/chunks/yq-RGXFWYJN.js +2 -0
- package/dist/bin/just-bash.js +754 -0
- package/dist/bin/shell/chunks/alias-3GODYSFD.js +2 -0
- package/dist/bin/shell/chunks/awk2-RSUCURL4.js +2 -0
- package/dist/bin/shell/chunks/base64-43M2R3GA.js +2 -0
- package/dist/bin/shell/chunks/basename-KBUKWB2E.js +2 -0
- package/dist/bin/shell/chunks/bash-6ZHZ6BX7.js +2 -0
- package/dist/bin/shell/chunks/cat-XZIJZXKP.js +2 -0
- package/dist/bin/shell/chunks/chmod-N5CQATDW.js +2 -0
- package/dist/bin/shell/chunks/chunk-22NDZXS5.js +33 -0
- package/dist/bin/shell/chunks/chunk-26NO42TF.js +14 -0
- package/dist/bin/shell/chunks/chunk-2W2SCVT6.js +140 -0
- package/dist/bin/shell/chunks/chunk-3MBAUIBB.js +7 -0
- package/dist/bin/shell/chunks/chunk-3Y32LPNT.js +2 -0
- package/dist/bin/shell/chunks/chunk-4CFAYBLV.js +21 -0
- package/dist/bin/shell/chunks/chunk-4OALHZXB.js +2 -0
- package/dist/bin/shell/chunks/chunk-4PRVMER6.js +2 -0
- package/dist/bin/shell/chunks/chunk-4VDEBYW7.js +2 -0
- package/dist/bin/shell/chunks/chunk-54G6AE72.js +32 -0
- package/dist/bin/shell/chunks/chunk-5G2VOPPJ.js +7 -0
- package/dist/bin/shell/chunks/chunk-5WFYIUU2.js +3 -0
- package/dist/bin/shell/chunks/chunk-6KZRLMG3.js +8 -0
- package/dist/bin/shell/chunks/chunk-7ADG3DNO.js +8 -0
- package/dist/bin/shell/chunks/chunk-7BORMNPQ.js +2 -0
- package/dist/bin/shell/chunks/chunk-7G3MC56B.js +7 -0
- package/dist/bin/shell/chunks/chunk-AAW7UMPO.js +9 -0
- package/dist/bin/shell/chunks/chunk-AXWFPG37.js +10 -0
- package/dist/bin/shell/chunks/chunk-AZ3RUDR2.js +9 -0
- package/dist/bin/shell/chunks/chunk-BGGF3ELU.js +5 -0
- package/dist/bin/shell/chunks/chunk-BYDV4VEF.js +3 -0
- package/dist/bin/shell/chunks/chunk-CGE2EHYP.js +5 -0
- package/dist/bin/shell/chunks/chunk-CM4532DS.js +36 -0
- package/dist/bin/shell/chunks/chunk-CQG2HEAL.js +5 -0
- package/dist/bin/shell/chunks/chunk-D5WP4CKS.js +3 -0
- package/dist/bin/shell/chunks/chunk-DOXYBGNA.js +12 -0
- package/dist/bin/shell/chunks/chunk-E5BDLLK6.js +15 -0
- package/dist/bin/shell/chunks/chunk-EJQKHROT.js +14 -0
- package/dist/bin/shell/chunks/chunk-EONWONZV.js +2 -0
- package/dist/bin/shell/chunks/chunk-EPPBDXOG.js +8 -0
- package/dist/bin/shell/chunks/chunk-EUXCM6C4.js +12 -0
- package/dist/bin/shell/chunks/chunk-EWDHVLQL.js +21 -0
- package/dist/bin/shell/chunks/chunk-F3LGZXLQ.js +9 -0
- package/dist/bin/shell/chunks/chunk-FA2CHD73.js +16 -0
- package/dist/bin/shell/chunks/chunk-FIHFXGT6.js +287 -0
- package/dist/bin/shell/chunks/chunk-FLPVVSN5.js +5 -0
- package/dist/bin/shell/chunks/chunk-FSZWFMB4.js +16 -0
- package/dist/bin/shell/chunks/chunk-GO6FXSC4.js +6 -0
- package/dist/bin/shell/chunks/chunk-GOJZHH3L.js +6 -0
- package/dist/bin/shell/chunks/chunk-GTNBSMZR.js +23 -0
- package/dist/bin/shell/chunks/chunk-HC7WB764.js +2 -0
- package/dist/bin/shell/chunks/chunk-IDGH4PGU.js +3 -0
- package/dist/bin/shell/chunks/chunk-IO2FYBEM.js +6 -0
- package/dist/bin/shell/chunks/chunk-ITA43A73.js +7 -0
- package/dist/bin/shell/chunks/chunk-JBABAK44.js +4 -0
- package/dist/bin/shell/chunks/chunk-JDNI5HBX.js +33 -0
- package/dist/bin/shell/chunks/chunk-JLX6YWGA.js +3 -0
- package/dist/bin/shell/chunks/chunk-JQBC3FXE.js +8 -0
- package/dist/bin/shell/chunks/chunk-JTF74J6E.js +2 -0
- package/dist/bin/shell/chunks/chunk-KCMUAACL.js +19 -0
- package/dist/bin/shell/chunks/chunk-KGOUQS5A.js +2 -0
- package/dist/bin/shell/chunks/chunk-L6XUBS6H.js +84 -0
- package/dist/bin/shell/chunks/chunk-LCDPWJBA.js +15 -0
- package/dist/bin/shell/chunks/chunk-LGJM5YFT.js +17 -0
- package/dist/bin/shell/chunks/chunk-LIYVQA3X.js +2 -0
- package/dist/bin/shell/chunks/chunk-LJKIWB5F.js +4 -0
- package/dist/bin/shell/chunks/chunk-LMK6G2HH.js +8 -0
- package/dist/bin/shell/chunks/chunk-LOJMXC4F.js +5 -0
- package/dist/bin/shell/chunks/chunk-MAVV76T4.js +2 -0
- package/dist/bin/shell/chunks/chunk-MO4RPBN2.js +2 -0
- package/dist/bin/shell/chunks/chunk-MRP4ZCD7.js +6 -0
- package/dist/bin/shell/chunks/chunk-N43DJTSI.js +2 -0
- package/dist/bin/shell/chunks/chunk-NAX7MTAR.js +21 -0
- package/dist/bin/shell/chunks/chunk-NSUMEERA.js +12 -0
- package/dist/bin/shell/chunks/chunk-NTW6IA45.js +2 -0
- package/dist/bin/shell/chunks/chunk-OBH7XN5N.js +1 -0
- package/dist/bin/shell/chunks/chunk-OBI37ZY4.js +9 -0
- package/dist/bin/shell/chunks/chunk-OOJCYVYF.js +2 -0
- package/dist/bin/shell/chunks/chunk-ORUYSLP4.js +16 -0
- package/dist/bin/shell/chunks/chunk-OXHVTSNH.js +74 -0
- package/dist/bin/shell/chunks/chunk-PNI5NMXP.js +100 -0
- package/dist/bin/shell/chunks/chunk-PPBQJBC2.js +5 -0
- package/dist/bin/shell/chunks/chunk-PQNTKMH3.js +6 -0
- package/dist/bin/shell/chunks/chunk-PS4LOXE5.js +8 -0
- package/dist/bin/shell/chunks/chunk-RA3TG4UK.js +9 -0
- package/dist/bin/shell/chunks/chunk-RBQGQWGV.js +10 -0
- package/dist/bin/shell/chunks/chunk-RJSAGJQJ.js +11 -0
- package/dist/bin/shell/chunks/chunk-RLNOQILG.js +2 -0
- package/dist/bin/shell/chunks/chunk-ROJPSS6N.js +3 -0
- package/dist/bin/shell/chunks/chunk-RT7TRQVZ.js +3 -0
- package/dist/bin/shell/chunks/chunk-S3QAKT3R.js +11 -0
- package/dist/bin/shell/chunks/chunk-S7OHMN3F.js +6 -0
- package/dist/bin/shell/chunks/chunk-SGA7Y45Z.js +17 -0
- package/dist/bin/shell/chunks/chunk-SXRVLCZ4.js +2 -0
- package/dist/bin/shell/chunks/chunk-TEFXEYX3.js +3 -0
- package/dist/bin/shell/chunks/chunk-THALLNXT.js +7 -0
- package/dist/bin/shell/chunks/chunk-TTNNO45C.js +17 -0
- package/dist/bin/shell/chunks/chunk-UFJFAFSS.js +28 -0
- package/dist/bin/shell/chunks/chunk-V7ZOPVQS.js +2 -0
- package/dist/bin/shell/chunks/chunk-VNER2XXL.js +7 -0
- package/dist/bin/shell/chunks/chunk-WLBA7L7U.js +23 -0
- package/dist/bin/shell/chunks/chunk-WWZVR5NN.js +6 -0
- package/dist/bin/shell/chunks/chunk-WXMBDX4P.js +14 -0
- package/dist/bin/shell/chunks/chunk-XXCTETRW.js +11 -0
- package/dist/bin/shell/chunks/chunk-XY5HGZW5.js +8 -0
- package/dist/bin/shell/chunks/chunk-YEKSVVRC.js +11 -0
- package/dist/bin/shell/chunks/chunk-YLE2OYY6.js +2 -0
- package/dist/bin/shell/chunks/chunk-YMMJLYIX.js +2 -0
- package/dist/bin/shell/chunks/chunk-YTIURC67.js +2 -0
- package/dist/bin/shell/chunks/chunk-YU6OGPZR.js +5 -0
- package/dist/bin/shell/chunks/chunk-YWZOGBFE.js +9 -0
- package/dist/bin/shell/chunks/chunk-ZA4HUKJ3.js +13 -0
- package/dist/bin/shell/chunks/chunk-ZKC5HQYO.js +14 -0
- package/dist/bin/shell/chunks/chunk-ZSVBYEY4.js +6 -0
- package/dist/bin/shell/chunks/chunk-ZUDPEMHG.js +63 -0
- package/dist/bin/shell/chunks/clear-KRGKPFOI.js +2 -0
- package/dist/bin/shell/chunks/column-XGV32UPN.js +2 -0
- package/dist/bin/shell/chunks/comm-R3F3Z5DX.js +2 -0
- package/dist/bin/shell/chunks/cp-XH2ZB7WT.js +2 -0
- package/dist/bin/shell/chunks/curl-2DCNBIKJ.js +26 -0
- package/dist/bin/shell/chunks/cut-5EY2XPXX.js +2 -0
- package/dist/bin/shell/chunks/date-WUPBL2TL.js +2 -0
- package/dist/bin/shell/chunks/diff-5NUI5BHG.js +2 -0
- package/dist/bin/shell/chunks/dirname-5FAOMLBL.js +2 -0
- package/dist/bin/shell/chunks/du-LDAPXSGF.js +2 -0
- package/dist/bin/shell/chunks/echo-2MUAOGUE.js +2 -0
- package/dist/bin/shell/chunks/env-NTPN5QYM.js +2 -0
- package/dist/bin/shell/chunks/expand-26XPP5KB.js +2 -0
- package/dist/bin/shell/chunks/expansion-QUT3FT7V.js +2 -0
- package/dist/bin/shell/chunks/expr-G4EF4POQ.js +2 -0
- package/dist/bin/shell/chunks/file-MMSHRWCJ.js +2 -0
- package/dist/bin/shell/chunks/find-7CVMEZBO.js +2 -0
- package/dist/bin/shell/chunks/flag-coverage-UJISFT4M.js +2 -0
- package/dist/bin/shell/chunks/fold-XSVNTAWH.js +2 -0
- package/dist/bin/shell/chunks/grep-7BJ7HFBM.js +2 -0
- package/dist/bin/shell/chunks/gzip-LHOO65AN.js +2 -0
- package/dist/bin/shell/chunks/head-YMNRW3F3.js +2 -0
- package/dist/bin/shell/chunks/help-DVG4AAGE.js +2 -0
- package/dist/bin/shell/chunks/history-UUKG55YW.js +2 -0
- package/dist/bin/shell/chunks/hostname-WY6RKE32.js +2 -0
- package/dist/bin/shell/chunks/html-to-markdown-V6PK6S5U.js +2 -0
- package/dist/bin/shell/chunks/join-Y4Q5WVVE.js +2 -0
- package/dist/bin/shell/chunks/jq-4JWOFG7X.js +2 -0
- package/dist/bin/shell/chunks/js-exec-AKWY6BP5.js +97 -0
- package/dist/bin/shell/chunks/ln-EGC4HRXZ.js +2 -0
- package/dist/bin/shell/chunks/ls-WONXDVOX.js +2 -0
- package/dist/bin/shell/chunks/md5sum-NCLXV2S3.js +2 -0
- package/dist/bin/shell/chunks/mkdir-Z47OISSR.js +2 -0
- package/dist/bin/shell/chunks/mv-OY7X62QC.js +2 -0
- package/dist/bin/shell/chunks/nl-XH3L75DR.js +2 -0
- package/dist/bin/shell/chunks/od-52FBC34W.js +2 -0
- package/dist/bin/shell/chunks/paste-3UVLMQ2K.js +2 -0
- package/dist/bin/shell/chunks/printf-NA7DYZBO.js +2 -0
- package/dist/bin/shell/chunks/pwd-6VBAPL3Y.js +2 -0
- package/dist/bin/shell/chunks/python3-RRCCYJKA.js +12 -0
- package/dist/bin/shell/chunks/readlink-BD5VFOC5.js +2 -0
- package/dist/bin/shell/chunks/rev-UHEPS2UL.js +2 -0
- package/dist/bin/shell/chunks/rg-DK6FRF6Q.js +2 -0
- package/dist/bin/shell/chunks/rm-L3NZOLLG.js +2 -0
- package/dist/bin/shell/chunks/rmdir-5KLM4EA6.js +2 -0
- package/dist/bin/shell/chunks/sed-WWXBUNG3.js +2 -0
- package/dist/bin/shell/chunks/seq-V7KBLSQ7.js +2 -0
- package/dist/bin/shell/chunks/sha1sum-BHNJ5ALF.js +2 -0
- package/dist/bin/shell/chunks/sha256sum-HJJ3NJ5L.js +2 -0
- package/dist/bin/shell/chunks/sleep-ND6FZRZ4.js +2 -0
- package/dist/bin/shell/chunks/sort-7GENYU2I.js +2 -0
- package/dist/bin/shell/chunks/split-YWV64TJH.js +2 -0
- package/dist/bin/shell/chunks/sqlite3-CVNFMP3Z.js +2 -0
- package/dist/bin/shell/chunks/stat-XS2LXYS2.js +2 -0
- package/dist/bin/shell/chunks/strings-XXKZCWY5.js +2 -0
- package/dist/bin/shell/chunks/tac-T42SKDDI.js +2 -0
- package/dist/bin/shell/chunks/tail-V537TDFR.js +2 -0
- package/dist/bin/shell/chunks/tar-GTGFEWDS.js +2 -0
- package/dist/bin/shell/chunks/tee-HK2SYCAR.js +2 -0
- package/dist/bin/shell/chunks/time-5R4QWCYF.js +2 -0
- package/dist/bin/shell/chunks/timeout-Z24MNWOP.js +2 -0
- package/dist/bin/shell/chunks/touch-DWKSZGOQ.js +2 -0
- package/dist/bin/shell/chunks/tr-4FPGAEVB.js +2 -0
- package/dist/bin/shell/chunks/tree-HEKABARE.js +2 -0
- package/dist/bin/shell/chunks/true-DP5UZP52.js +2 -0
- package/dist/bin/shell/chunks/unexpand-OYZ7KOYR.js +2 -0
- package/dist/bin/shell/chunks/uniq-TMSAIZM3.js +2 -0
- package/dist/bin/shell/chunks/wc-ZIV3TFVG.js +2 -0
- package/dist/bin/shell/chunks/which-5PO4LAOG.js +2 -0
- package/dist/bin/shell/chunks/whoami-E7PN2UWC.js +2 -0
- package/dist/bin/shell/chunks/xan-FKXPSPE5.js +2 -0
- package/dist/bin/shell/chunks/xan-view-6J5MMMQB.js +2 -0
- package/dist/bin/shell/chunks/xargs-SCYIFXOW.js +2 -0
- package/dist/bin/shell/chunks/yq-RGXFWYJN.js +2 -0
- package/dist/bin/shell/shell.js +733 -0
- package/dist/browser.d.ts +23 -0
- package/dist/bundle/browser.js +1515 -0
- package/dist/bundle/chunks/alias-JE7RI5QX.js +1 -0
- package/dist/bundle/chunks/awk2-JFGEGLFP.js +1 -0
- package/dist/bundle/chunks/base64-4YMZCVJ5.js +1 -0
- package/dist/bundle/chunks/basename-AA2KJYZQ.js +1 -0
- package/dist/bundle/chunks/bash-IJWYRKFO.js +1 -0
- package/dist/bundle/chunks/cat-RDUMLXKC.js +1 -0
- package/dist/bundle/chunks/chmod-SYMGL4JA.js +1 -0
- package/dist/bundle/chunks/chunk-24IMIIXA.js +1 -0
- package/dist/bundle/chunks/chunk-3THT3N7L.js +1 -0
- package/dist/bundle/chunks/chunk-3ZUFRYJ4.js +1 -0
- package/dist/bundle/chunks/chunk-43RSSTFA.js +73 -0
- package/dist/bundle/chunks/chunk-44UOCSGV.js +1 -0
- package/dist/bundle/chunks/chunk-4GTNDTRF.js +7 -0
- package/dist/bundle/chunks/chunk-4HHKTUW3.js +2 -0
- package/dist/bundle/chunks/chunk-4Q4SM6WR.js +4 -0
- package/dist/bundle/chunks/chunk-55VFSPNA.js +2 -0
- package/dist/bundle/chunks/chunk-5PYKJV42.js +4 -0
- package/dist/bundle/chunks/chunk-5QMZ5MUS.js +4 -0
- package/dist/bundle/chunks/chunk-5QVNJEHU.js +8 -0
- package/dist/bundle/chunks/chunk-5V6VZH6T.js +1 -0
- package/dist/bundle/chunks/chunk-62RKD26F.js +20 -0
- package/dist/bundle/chunks/chunk-64BAICW3.js +1 -0
- package/dist/bundle/chunks/chunk-74CEPOFO.js +22 -0
- package/dist/bundle/chunks/chunk-7ESWU5HP.js +14 -0
- package/dist/bundle/chunks/chunk-7L36YK2X.js +2 -0
- package/dist/bundle/chunks/chunk-7TSDKFEO.js +1 -0
- package/dist/bundle/chunks/chunk-A4HU7SVR.js +2 -0
- package/dist/bundle/chunks/chunk-A4JSPFCI.js +6 -0
- package/dist/bundle/chunks/chunk-A5O5YHGN.js +1 -0
- package/dist/bundle/chunks/chunk-A65PWWJC.js +2 -0
- package/dist/bundle/chunks/chunk-A7A2DBEE.js +6 -0
- package/dist/bundle/chunks/chunk-A7ICOL4V.js +13 -0
- package/dist/bundle/chunks/chunk-ALLTKNUZ.js +5 -0
- package/dist/bundle/chunks/chunk-APT7OOP2.js +1 -0
- package/dist/bundle/chunks/chunk-B53Y5JFV.js +8 -0
- package/dist/bundle/chunks/chunk-BAQA74XA.js +1 -0
- package/dist/bundle/chunks/chunk-CWQS3NFK.js +1 -0
- package/dist/bundle/chunks/chunk-D4J545R4.js +11 -0
- package/dist/bundle/chunks/chunk-D6CWQ5DW.js +5 -0
- package/dist/bundle/chunks/chunk-D6EWIDSU.js +20 -0
- package/dist/bundle/chunks/chunk-D7MEQ3VN.js +4 -0
- package/dist/bundle/chunks/chunk-DBKNVD4L.js +9 -0
- package/dist/bundle/chunks/chunk-DCAAORBQ.js +1 -0
- package/dist/bundle/chunks/chunk-DXB73IDG.js +1 -0
- package/dist/bundle/chunks/chunk-EEXR5ZDP.js +2 -0
- package/dist/bundle/chunks/chunk-EIZGF4BS.js +8 -0
- package/dist/bundle/chunks/chunk-F23WWYKW.js +16 -0
- package/dist/bundle/chunks/chunk-GCTKCWKD.js +3 -0
- package/dist/bundle/chunks/chunk-GFQRA5P5.js +7 -0
- package/dist/bundle/chunks/chunk-GJTDUJ5Q.js +10 -0
- package/dist/bundle/chunks/chunk-GOV5EKKI.js +9 -0
- package/dist/bundle/chunks/chunk-GXVXFKBA.js +5 -0
- package/dist/bundle/chunks/chunk-HDQ56CKY.js +15 -0
- package/dist/bundle/chunks/chunk-HJQJAYMS.js +2 -0
- package/dist/bundle/chunks/chunk-HJWBQKYG.js +5 -0
- package/dist/bundle/chunks/chunk-HL6NGDO2.js +22 -0
- package/dist/bundle/chunks/chunk-HWBSOZZR.js +35 -0
- package/dist/bundle/chunks/chunk-HWKDQ44K.js +3 -0
- package/dist/bundle/chunks/chunk-I57KEIP3.js +10 -0
- package/dist/bundle/chunks/chunk-IPJHKYVM.js +1 -0
- package/dist/bundle/chunks/chunk-IVYA2HK4.js +286 -0
- package/dist/bundle/chunks/chunk-JVPRLUMK.js +7 -0
- package/dist/bundle/chunks/chunk-KMEYNNUA.js +15 -0
- package/dist/bundle/chunks/chunk-KX3P26DQ.js +1 -0
- package/dist/bundle/chunks/chunk-LL3S3NLB.js +1 -0
- package/dist/bundle/chunks/chunk-LTZRCH7N.js +31 -0
- package/dist/bundle/chunks/chunk-LWEGUNWT.js +7 -0
- package/dist/bundle/chunks/chunk-MDDMCKUK.js +6 -0
- package/dist/bundle/chunks/chunk-MDLLFABN.js +4 -0
- package/dist/bundle/chunks/chunk-MHTUABJP.js +8 -0
- package/dist/bundle/chunks/chunk-MIZPJHVH.js +7 -0
- package/dist/bundle/chunks/chunk-MLXIYONF.js +15 -0
- package/dist/bundle/chunks/chunk-MYE6AGBJ.js +16 -0
- package/dist/bundle/chunks/chunk-NAERJDUW.js +8 -0
- package/dist/bundle/chunks/chunk-NCNPKYJZ.js +2 -0
- package/dist/bundle/chunks/chunk-NUFRM6SI.js +0 -0
- package/dist/bundle/chunks/chunk-NUYSJFDK.js +7 -0
- package/dist/bundle/chunks/chunk-OCLXQMOG.js +6 -0
- package/dist/bundle/chunks/chunk-OCS6LSEM.js +13 -0
- package/dist/bundle/chunks/chunk-OJDRYQWQ.js +1 -0
- package/dist/bundle/chunks/chunk-P7UWRQ44.js +139 -0
- package/dist/bundle/chunks/chunk-PBXLG62G.js +8 -0
- package/dist/bundle/chunks/chunk-PP6PSHAB.js +4 -0
- package/dist/bundle/chunks/chunk-PXTK5WE2.js +20 -0
- package/dist/bundle/chunks/chunk-PYDZ2LCK.js +16 -0
- package/dist/bundle/chunks/chunk-PYSFUGCK.js +10 -0
- package/dist/bundle/chunks/chunk-QCDB2VPH.js +6 -0
- package/dist/bundle/chunks/chunk-QJ7O6ZN3.js +5 -0
- package/dist/bundle/chunks/chunk-R6QSAL5T.js +1 -0
- package/dist/bundle/chunks/chunk-R6VWJ2ZL.js +1 -0
- package/dist/bundle/chunks/chunk-RPNGRAAP.js +7 -0
- package/dist/bundle/chunks/chunk-SDNKECQQ.js +5 -0
- package/dist/bundle/chunks/chunk-T56QNPHK.js +14 -0
- package/dist/bundle/chunks/chunk-TLSUDHID.js +6 -0
- package/dist/bundle/chunks/chunk-TOMNU26N.js +4 -0
- package/dist/bundle/chunks/chunk-TXBZCHCQ.js +5 -0
- package/dist/bundle/chunks/chunk-U6NMAV24.js +32 -0
- package/dist/bundle/chunks/chunk-V7TAPXDL.js +27 -0
- package/dist/bundle/chunks/chunk-VBEY5J6R.js +99 -0
- package/dist/bundle/chunks/chunk-VJFXDYWH.js +10 -0
- package/dist/bundle/chunks/chunk-VOBGTVA6.js +6 -0
- package/dist/bundle/chunks/chunk-VXBA5RYO.js +5 -0
- package/dist/bundle/chunks/chunk-VYOJP4TV.js +13 -0
- package/dist/bundle/chunks/chunk-WKFATFPP.js +4 -0
- package/dist/bundle/chunks/chunk-X2AJGDEF.js +1 -0
- package/dist/bundle/chunks/chunk-XIZSGUXJ.js +62 -0
- package/dist/bundle/chunks/chunk-XKQRETAK.js +1 -0
- package/dist/bundle/chunks/chunk-XVDPCNWR.js +11 -0
- package/dist/bundle/chunks/chunk-YSHZL3MF.js +32 -0
- package/dist/bundle/chunks/chunk-YTNYSM6T.js +11 -0
- package/dist/bundle/chunks/chunk-Z6LRHWXI.js +13 -0
- package/dist/bundle/chunks/chunk-Z7JVV2SM.js +12 -0
- package/dist/bundle/chunks/clear-5CZ5X4YR.js +1 -0
- package/dist/bundle/chunks/column-WLPMMSTS.js +1 -0
- package/dist/bundle/chunks/comm-5SLSESQG.js +1 -0
- package/dist/bundle/chunks/cp-XOYR4ABJ.js +1 -0
- package/dist/bundle/chunks/curl-47BFPSFW.js +25 -0
- package/dist/bundle/chunks/cut-OPC3VAGB.js +1 -0
- package/dist/bundle/chunks/date-DD7FVA2V.js +1 -0
- package/dist/bundle/chunks/diff-HJF2MPDN.js +1 -0
- package/dist/bundle/chunks/dirname-LEMTZZFS.js +1 -0
- package/dist/bundle/chunks/du-WO2ENHXQ.js +1 -0
- package/dist/bundle/chunks/echo-O45JWWI2.js +1 -0
- package/dist/bundle/chunks/env-5EPCWSXR.js +1 -0
- package/dist/bundle/chunks/expand-DTNXU4LQ.js +1 -0
- package/dist/bundle/chunks/expansion-UGGADTZC.js +1 -0
- package/dist/bundle/chunks/expr-DNFUYZGY.js +1 -0
- package/dist/bundle/chunks/file-IGDTDPLG.js +1 -0
- package/dist/bundle/chunks/find-KNMMLVJD.js +1 -0
- package/dist/bundle/chunks/flag-coverage-B26Z36PC.js +1 -0
- package/dist/bundle/chunks/fold-LDSORVYE.js +1 -0
- package/dist/bundle/chunks/grep-2UMHPO7Y.js +1 -0
- package/dist/bundle/chunks/gzip-AQXSGOVS.js +1 -0
- package/dist/bundle/chunks/head-HT2B6D2J.js +1 -0
- package/dist/bundle/chunks/help-VVWX7SA5.js +1 -0
- package/dist/bundle/chunks/history-J4QRNGRO.js +1 -0
- package/dist/bundle/chunks/hostname-BK6HG2DE.js +1 -0
- package/dist/bundle/chunks/html-to-markdown-TFCECAGV.js +1 -0
- package/dist/bundle/chunks/join-GG2LDHE5.js +1 -0
- package/dist/bundle/chunks/jq-CRLZNLQG.js +1 -0
- package/dist/bundle/chunks/js-exec-VXN6TZ7U.js +96 -0
- package/dist/bundle/chunks/js-exec-worker.js +4380 -0
- package/dist/bundle/chunks/ln-4TRFBYAT.js +1 -0
- package/dist/bundle/chunks/ls-KSXFZCWH.js +1 -0
- package/dist/bundle/chunks/md5sum-INMIK4DX.js +1 -0
- package/dist/bundle/chunks/mkdir-TDEMSB6C.js +1 -0
- package/dist/bundle/chunks/mv-Z6MORUFL.js +1 -0
- package/dist/bundle/chunks/nl-U5YJDM32.js +1 -0
- package/dist/bundle/chunks/od-VJEF2UR5.js +1 -0
- package/dist/bundle/chunks/paste-7N6AFSDS.js +1 -0
- package/dist/bundle/chunks/printf-CX64KX2P.js +1 -0
- package/dist/bundle/chunks/pwd-D4OZ7N27.js +1 -0
- package/dist/bundle/chunks/python3-BFV3N3GY.js +11 -0
- package/dist/bundle/chunks/readlink-MI4GCHJF.js +1 -0
- package/dist/bundle/chunks/rev-XOSYPP45.js +1 -0
- package/dist/bundle/chunks/rg-KYSTAD4Q.js +1 -0
- package/dist/bundle/chunks/rm-RTZG23RL.js +1 -0
- package/dist/bundle/chunks/rmdir-XTQXT7RK.js +1 -0
- package/dist/bundle/chunks/sed-OFX3F4FE.js +1 -0
- package/dist/bundle/chunks/seq-RN5ZUASB.js +1 -0
- package/dist/bundle/chunks/sha1sum-VJPNLNU6.js +1 -0
- package/dist/bundle/chunks/sha256sum-PI32XWXY.js +1 -0
- package/dist/bundle/chunks/sleep-VZFPZFWA.js +1 -0
- package/dist/bundle/chunks/sort-DCNRDA7U.js +1 -0
- package/dist/bundle/chunks/split-SITCSYCZ.js +1 -0
- package/dist/bundle/chunks/sqlite3-56UMWEY3.js +1 -0
- package/dist/bundle/chunks/stat-BT5A227F.js +1 -0
- package/dist/bundle/chunks/strings-7PLOGTPD.js +1 -0
- package/dist/bundle/chunks/tac-SJGXQ4T2.js +1 -0
- package/dist/bundle/chunks/tail-S5ULNTJU.js +1 -0
- package/dist/bundle/chunks/tar-LYLTEJV3.js +1 -0
- package/dist/bundle/chunks/tee-O7VXZDCO.js +1 -0
- package/dist/bundle/chunks/time-DEUO3QV2.js +1 -0
- package/dist/bundle/chunks/timeout-VRKMCG72.js +1 -0
- package/dist/bundle/chunks/touch-DX2IJOQ4.js +1 -0
- package/dist/bundle/chunks/tr-2HXZRDSW.js +1 -0
- package/dist/bundle/chunks/tree-LYXBS7DC.js +1 -0
- package/dist/bundle/chunks/true-WHJNXCHG.js +1 -0
- package/dist/bundle/chunks/unexpand-RGTMIGZM.js +1 -0
- package/dist/bundle/chunks/uniq-SUNANL47.js +1 -0
- package/dist/bundle/chunks/wc-TQB3VNOX.js +1 -0
- package/dist/bundle/chunks/which-XZHEH76L.js +1 -0
- package/dist/bundle/chunks/whoami-DGKU3D2X.js +1 -0
- package/dist/bundle/chunks/worker.js +3136 -0
- package/dist/bundle/chunks/xan-DHUKCGIW.js +1 -0
- package/dist/bundle/chunks/xan-view-OW2TB7Z3.js +1 -0
- package/dist/bundle/chunks/xargs-I6EZUCYF.js +1 -0
- package/dist/bundle/chunks/yq-NDDDSAXH.js +1 -0
- package/dist/bundle/index.cjs +2178 -0
- package/dist/bundle/index.js +709 -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 +75 -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 +54 -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/duration.d.ts +5 -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/format-mode.d.ts +4 -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/js-exec/fetch-polyfill.d.ts +6 -0
- package/dist/commands/js-exec/js-exec-worker.d.ts +30 -0
- package/dist/commands/js-exec/js-exec.d.ts +11 -0
- package/dist/commands/js-exec/module-shims.d.ts +29 -0
- package/dist/commands/js-exec/path-polyfill.d.ts +6 -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 +25 -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/python3.d.ts +16 -0
- package/dist/commands/python3/worker.d.ts +28 -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 +41 -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 +83 -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 +56 -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 +216 -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 +22 -0
- package/dist/commands/sqlite3/worker.d.ts +45 -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 +135 -0
- package/dist/commands/tar/bzip2-compress.d.ts +17 -0
- package/dist/commands/tar/tar-options.d.ts +37 -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/worker-bridge/bridge-handler.d.ts +71 -0
- package/dist/commands/worker-bridge/protocol.d.ts +140 -0
- package/dist/commands/worker-bridge/sync-backend.d.ts +81 -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 +42 -0
- package/dist/fs/encoding.d.ts +17 -0
- package/dist/fs/in-memory-fs/in-memory-fs.d.ts +73 -0
- package/dist/fs/in-memory-fs/index.d.ts +1 -0
- package/dist/fs/init.d.ts +22 -0
- package/dist/fs/interface.d.ts +229 -0
- package/dist/fs/mountable-fs/index.d.ts +1 -0
- package/dist/fs/mountable-fs/mountable-fs.d.ts +116 -0
- package/dist/fs/overlay-fs/index.d.ts +1 -0
- package/dist/fs/overlay-fs/overlay-fs.d.ts +163 -0
- package/dist/fs/path-utils.d.ts +46 -0
- package/dist/fs/read-write-fs/index.d.ts +1 -0
- package/dist/fs/read-write-fs/read-write-fs.d.ts +96 -0
- package/dist/fs/real-fs-utils.d.ts +90 -0
- package/dist/fs/sanitize-error.d.ts +19 -0
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +27 -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/defense-aware-command-context.d.ts +6 -0
- package/dist/interpreter/errors.d.ts +158 -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 +36 -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 +53 -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 +22 -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 +60 -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 +22 -0
- package/dist/interpreter/helpers/xtrace.d.ts +18 -0
- package/dist/interpreter/index.d.ts +3 -0
- package/dist/interpreter/interpreter.d.ts +77 -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 +344 -0
- package/dist/limits.d.ts +52 -0
- package/dist/network/allow-list/shared.d.ts +57 -0
- package/dist/network/allow-list.d.ts +59 -0
- package/dist/network/fetch.d.ts +25 -0
- package/dist/network/index.d.ts +7 -0
- package/dist/network/types.d.ts +155 -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 +197 -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 +35 -0
- package/dist/sandbox/Sandbox.d.ts +90 -0
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/shell-metadata.d.ts +25 -0
- package/dist/timers.d.ts +4 -0
- package/dist/types.d.ts +198 -0
- package/dist/utils/args.d.ts +55 -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/dist/vitest-setup.d.ts +1 -0
- package/package.json +127 -0
- package/vendor/cpython-emscripten/python.cjs +2 -0
- package/vendor/cpython-emscripten/python.wasm +3 -0
- package/vendor/cpython-emscripten/python313.zip +0 -0
|
@@ -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,60 @@
|
|
|
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
|
+
import type { InterpreterContext } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* A successful result with no output.
|
|
11
|
+
* Use this for commands that succeed silently.
|
|
12
|
+
*/
|
|
13
|
+
export declare const OK: ExecResult;
|
|
14
|
+
/**
|
|
15
|
+
* Create a successful result with optional stdout.
|
|
16
|
+
*
|
|
17
|
+
* @param stdout - Output to include (default: "")
|
|
18
|
+
* @returns ExecResult with exitCode 0
|
|
19
|
+
*/
|
|
20
|
+
export declare function success(stdout?: string): ExecResult;
|
|
21
|
+
/**
|
|
22
|
+
* Create a failure result with stderr message.
|
|
23
|
+
*
|
|
24
|
+
* @param stderr - Error message to include
|
|
25
|
+
* @param exitCode - Exit code (default: 1)
|
|
26
|
+
* @returns ExecResult with the specified exitCode
|
|
27
|
+
*/
|
|
28
|
+
export declare function failure(stderr: string, exitCode?: number): ExecResult;
|
|
29
|
+
/**
|
|
30
|
+
* Create a result with all fields specified.
|
|
31
|
+
*
|
|
32
|
+
* @param stdout - Standard output
|
|
33
|
+
* @param stderr - Standard error
|
|
34
|
+
* @param exitCode - Exit code
|
|
35
|
+
* @returns ExecResult with all fields
|
|
36
|
+
*/
|
|
37
|
+
export declare function result(stdout: string, stderr: string, exitCode: number): ExecResult;
|
|
38
|
+
/**
|
|
39
|
+
* Convert a boolean test result to an ExecResult.
|
|
40
|
+
* Useful for test/conditional commands where true = exit 0, false = exit 1.
|
|
41
|
+
*
|
|
42
|
+
* @param passed - Boolean test result
|
|
43
|
+
* @returns ExecResult with exitCode 0 if passed, 1 otherwise
|
|
44
|
+
*/
|
|
45
|
+
export declare function testResult(passed: boolean): ExecResult;
|
|
46
|
+
/**
|
|
47
|
+
* Throw an ExecutionLimitError for execution limits (recursion, iterations, commands).
|
|
48
|
+
*
|
|
49
|
+
* @param message - Error message describing the limit exceeded
|
|
50
|
+
* @param limitType - Type of limit exceeded
|
|
51
|
+
* @param stdout - Accumulated stdout to include
|
|
52
|
+
* @param stderr - Accumulated stderr to include
|
|
53
|
+
* @throws ExecutionLimitError always
|
|
54
|
+
*/
|
|
55
|
+
export declare function throwExecutionLimit(message: string, limitType: "recursion" | "iterations" | "commands" | "string_length" | "glob_operations" | "substitution_depth" | "output_size" | "file_descriptors", stdout?: string, stderr?: string): never;
|
|
56
|
+
/**
|
|
57
|
+
* Check file descriptor count against the limit before adding a new one.
|
|
58
|
+
* Throws ExecutionLimitError if the limit would be exceeded.
|
|
59
|
+
*/
|
|
60
|
+
export declare function checkFdLimit(ctx: InterpreterContext): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell Constants
|
|
3
|
+
*
|
|
4
|
+
* Constants for shell builtins, keywords, and POSIX special builtins.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* POSIX special built-in commands.
|
|
8
|
+
* In POSIX mode, these have special behaviors:
|
|
9
|
+
* - Prefix assignments persist after the command
|
|
10
|
+
* - Cannot be redefined as functions
|
|
11
|
+
* - Errors may be fatal
|
|
12
|
+
*/
|
|
13
|
+
export declare const POSIX_SPECIAL_BUILTINS: Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Check if a command name is a POSIX special built-in
|
|
16
|
+
*/
|
|
17
|
+
export declare function isPosixSpecialBuiltin(name: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Shell keywords (for type, command -v, etc.)
|
|
20
|
+
*/
|
|
21
|
+
export declare const SHELL_KEYWORDS: Set<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Shell builtins (for type, command -v, builtin, etc.)
|
|
24
|
+
*/
|
|
25
|
+
export declare const SHELL_BUILTINS: Set<string>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SHELLOPTS and BASHOPTS variable helpers.
|
|
3
|
+
*
|
|
4
|
+
* SHELLOPTS is a colon-separated list of enabled shell options from `set -o`.
|
|
5
|
+
* BASHOPTS is a colon-separated list of enabled bash-specific options from `shopt`.
|
|
6
|
+
*/
|
|
7
|
+
import type { InterpreterContext, ShellOptions, ShoptOptions } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Build the SHELLOPTS string from current shell options.
|
|
10
|
+
* Returns a colon-separated list of enabled options (alphabetically sorted).
|
|
11
|
+
* Includes always-on options like braceexpand, hashall, interactive-comments.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildShellopts(options: ShellOptions): string;
|
|
14
|
+
/**
|
|
15
|
+
* Update the SHELLOPTS environment variable to reflect current shell options.
|
|
16
|
+
* Should be called whenever shell options change (via set -o or shopt -o).
|
|
17
|
+
*/
|
|
18
|
+
export declare function updateShellopts(ctx: InterpreterContext): void;
|
|
19
|
+
/**
|
|
20
|
+
* Build the BASHOPTS string from current shopt options.
|
|
21
|
+
* Returns a colon-separated list of enabled options (alphabetically sorted).
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildBashopts(shoptOptions: ShoptOptions): string;
|
|
24
|
+
/**
|
|
25
|
+
* Update the BASHOPTS environment variable to reflect current shopt options.
|
|
26
|
+
* Should be called whenever shopt options change.
|
|
27
|
+
*/
|
|
28
|
+
export declare function updateBashopts(ctx: InterpreterContext): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Statement execution helpers for the interpreter.
|
|
3
|
+
*
|
|
4
|
+
* Consolidates the common pattern of executing a list of statements
|
|
5
|
+
* and accumulating their output.
|
|
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 a list of statements and accumulate their output.
|
|
12
|
+
* Handles scope exit errors (break, continue, return) and errexit properly.
|
|
13
|
+
*
|
|
14
|
+
* @param ctx - Interpreter context
|
|
15
|
+
* @param statements - Statements to execute
|
|
16
|
+
* @param initialStdout - Initial stdout to prepend (default "")
|
|
17
|
+
* @param initialStderr - Initial stderr to prepend (default "")
|
|
18
|
+
* @returns Accumulated stdout, stderr, and final exit code
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeStatements(ctx: InterpreterContext, statements: StatementNode[], initialStdout?: string, initialStderr?: string): Promise<ExecResult>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String comparison helpers for conditionals.
|
|
3
|
+
*
|
|
4
|
+
* Consolidates string comparison logic (=, ==, !=) used in:
|
|
5
|
+
* - [[ ]] conditional expressions (with optional pattern matching)
|
|
6
|
+
* - test/[ ] command (literal comparison only)
|
|
7
|
+
*/
|
|
8
|
+
export type StringCompareOp = "=" | "==" | "!=";
|
|
9
|
+
/**
|
|
10
|
+
* Check if an operator is a string comparison operator.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isStringCompareOp(op: string): op is StringCompareOp;
|
|
13
|
+
/**
|
|
14
|
+
* Compare two strings using the specified operator.
|
|
15
|
+
*
|
|
16
|
+
* @param op - The comparison operator (=, ==, !=)
|
|
17
|
+
* @param left - Left operand
|
|
18
|
+
* @param right - Right operand
|
|
19
|
+
* @param usePattern - If true, use glob pattern matching for equality (default: false)
|
|
20
|
+
* @param nocasematch - If true, use case-insensitive comparison (default: false)
|
|
21
|
+
* @param extglob - If true, enable extended glob patterns @(), *(), +(), ?(), !() (default: false)
|
|
22
|
+
* @returns True if the comparison succeeds
|
|
23
|
+
*/
|
|
24
|
+
export declare function compareStrings(op: StringCompareOp, left: string, right: string, usePattern?: boolean, nocasematch?: boolean, extglob?: boolean): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String test helper for conditionals.
|
|
3
|
+
* Handles -z (empty) and -n (non-empty) operators.
|
|
4
|
+
*/
|
|
5
|
+
export type StringTestOp = "-z" | "-n";
|
|
6
|
+
/**
|
|
7
|
+
* Check if an operator is a string test operator.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isStringTestOp(op: string): op is StringTestOp;
|
|
10
|
+
/**
|
|
11
|
+
* Evaluate a string test operator.
|
|
12
|
+
*/
|
|
13
|
+
export declare function evaluateStringTest(op: StringTestOp, value: string): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tilde expansion helper functions.
|
|
3
|
+
*
|
|
4
|
+
* Handles ~ expansion in assignment contexts.
|
|
5
|
+
*/
|
|
6
|
+
import type { InterpreterContext } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Expand tildes in assignment values (PATH-like expansion)
|
|
9
|
+
* - ~ at start expands to HOME
|
|
10
|
+
* - ~ after : expands to HOME (for PATH-like values)
|
|
11
|
+
* - ~username expands to user's home (only root supported)
|
|
12
|
+
*/
|
|
13
|
+
export declare function expandTildesInValue(ctx: InterpreterContext, value: string): string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InterpreterContext } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Evaluates the -v (variable is set) test.
|
|
4
|
+
* Handles both simple variables and array element access with negative indices.
|
|
5
|
+
*
|
|
6
|
+
* @param ctx - Interpreter context with environment variables
|
|
7
|
+
* @param operand - The variable name to test, may include array subscript (e.g., "arr[0]", "arr[-1]")
|
|
8
|
+
*/
|
|
9
|
+
export declare function evaluateVariableTest(ctx: InterpreterContext, operand: string): Promise<boolean>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interpreter Utility Functions
|
|
3
|
+
*
|
|
4
|
+
* Standalone helper functions used by the interpreter.
|
|
5
|
+
*/
|
|
6
|
+
import type { WordNode } from "../../ast/types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Check if a WordNode is a literal match for any of the given strings.
|
|
9
|
+
* Returns true only if the word is a single literal (no expansions, no quoting)
|
|
10
|
+
* that matches one of the target strings.
|
|
11
|
+
*
|
|
12
|
+
* This is used to detect assignment builtins at "parse time" - bash determines
|
|
13
|
+
* whether a command is export/declare/etc based on the literal token, not the
|
|
14
|
+
* runtime value after expansion.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isWordLiteralMatch(word: WordNode, targets: string[]): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Parse the content of a read-write file descriptor.
|
|
19
|
+
* Format: __rw__:pathLength:path:position:content
|
|
20
|
+
* @returns The parsed components, or null if format is invalid
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseRwFdContent(fdContent: string): {
|
|
23
|
+
path: string;
|
|
24
|
+
position: number;
|
|
25
|
+
content: string;
|
|
26
|
+
} | null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Word Part Helper Functions
|
|
3
|
+
*
|
|
4
|
+
* Provides common operations on WordPart types to eliminate duplication
|
|
5
|
+
* across expansion.ts and word-parser.ts.
|
|
6
|
+
*/
|
|
7
|
+
import type { WordPart } from "../../ast/types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Get the literal string value from a word part.
|
|
10
|
+
* Returns the value for Literal, SingleQuoted, and Escaped parts.
|
|
11
|
+
* Returns null for complex parts that require expansion.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getLiteralValue(part: WordPart): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Check if a word part is "quoted" - meaning glob characters should be treated literally.
|
|
16
|
+
* A part is quoted if it is:
|
|
17
|
+
* - SingleQuoted
|
|
18
|
+
* - Escaped
|
|
19
|
+
* - DoubleQuoted (entirely quoted)
|
|
20
|
+
* - Literal with empty value (doesn't affect quoting)
|
|
21
|
+
*/
|
|
22
|
+
export declare function isQuotedPart(part: WordPart): boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xtrace (set -x) helper functions
|
|
3
|
+
*
|
|
4
|
+
* Handles trace output generation when xtrace option is enabled.
|
|
5
|
+
* PS4 variable controls the prefix (default "+ ").
|
|
6
|
+
* PS4 is expanded (variable substitution) before each trace line.
|
|
7
|
+
*/
|
|
8
|
+
import type { InterpreterContext } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Generate xtrace output for a simple command.
|
|
11
|
+
* Returns the trace line to be added to stderr.
|
|
12
|
+
*/
|
|
13
|
+
export declare function traceSimpleCommand(ctx: InterpreterContext, commandName: string, args: string[]): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Generate xtrace output for an assignment.
|
|
16
|
+
* Returns the trace line to be added to stderr.
|
|
17
|
+
*/
|
|
18
|
+
export declare function traceAssignment(ctx: InterpreterContext, name: string, value: string): Promise<string>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interpreter - AST Execution Engine
|
|
3
|
+
*
|
|
4
|
+
* Main interpreter class that executes bash AST nodes.
|
|
5
|
+
* Delegates to specialized modules for:
|
|
6
|
+
* - Word expansion (expansion.ts)
|
|
7
|
+
* - Arithmetic evaluation (arithmetic.ts)
|
|
8
|
+
* - Conditional evaluation (conditionals.ts)
|
|
9
|
+
* - Built-in commands (builtins.ts)
|
|
10
|
+
* - Redirections (redirections.ts)
|
|
11
|
+
*/
|
|
12
|
+
import type { ScriptNode } from "../ast/types.js";
|
|
13
|
+
import type { IFileSystem } from "../fs/interface.js";
|
|
14
|
+
import type { ExecutionLimits } from "../limits.js";
|
|
15
|
+
import type { SecureFetch } from "../network/index.js";
|
|
16
|
+
import type { CommandRegistry, ExecResult, FeatureCoverageWriter, TraceCallback } from "../types.js";
|
|
17
|
+
import type { InterpreterState } from "./types.js";
|
|
18
|
+
export type { InterpreterContext, InterpreterState } from "./types.js";
|
|
19
|
+
export interface InterpreterOptions {
|
|
20
|
+
fs: IFileSystem;
|
|
21
|
+
commands: CommandRegistry;
|
|
22
|
+
limits: Required<ExecutionLimits>;
|
|
23
|
+
exec: (script: string, options?: {
|
|
24
|
+
env?: Record<string, string>;
|
|
25
|
+
cwd?: string;
|
|
26
|
+
replaceEnv?: boolean;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
args?: string[];
|
|
29
|
+
}) => Promise<ExecResult>;
|
|
30
|
+
/** Optional secure fetch function for network-enabled commands */
|
|
31
|
+
fetch?: SecureFetch;
|
|
32
|
+
/** Optional sleep function for testing with mock clocks */
|
|
33
|
+
sleep?: (ms: number) => Promise<void>;
|
|
34
|
+
/** Optional trace callback for performance profiling */
|
|
35
|
+
trace?: TraceCallback;
|
|
36
|
+
/** Optional feature coverage writer for fuzzing instrumentation */
|
|
37
|
+
coverage?: FeatureCoverageWriter;
|
|
38
|
+
/**
|
|
39
|
+
* When true, fail closed if execution occurs outside defense async context.
|
|
40
|
+
*/
|
|
41
|
+
requireDefenseContext?: boolean;
|
|
42
|
+
/** Bootstrap JavaScript code for js-exec */
|
|
43
|
+
jsBootstrapCode?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare class Interpreter {
|
|
46
|
+
private ctx;
|
|
47
|
+
constructor(options: InterpreterOptions, state: InterpreterState);
|
|
48
|
+
/**
|
|
49
|
+
* Fail closed if defense is expected but async context is missing.
|
|
50
|
+
*/
|
|
51
|
+
private assertDefenseContext;
|
|
52
|
+
/**
|
|
53
|
+
* Build environment record containing only exported variables.
|
|
54
|
+
* In bash, only exported variables are passed to child processes.
|
|
55
|
+
* This includes both permanently exported variables (via export/declare -x)
|
|
56
|
+
* and temporarily exported variables (prefix assignments like FOO=bar cmd).
|
|
57
|
+
*/
|
|
58
|
+
private buildExportedEnv;
|
|
59
|
+
executeScript(node: ScriptNode): Promise<ExecResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Execute a user script file found in PATH.
|
|
62
|
+
*/
|
|
63
|
+
private executeUserScript;
|
|
64
|
+
private executeStatement;
|
|
65
|
+
private executePipeline;
|
|
66
|
+
private executeCommand;
|
|
67
|
+
private executeSimpleCommand;
|
|
68
|
+
private executeSimpleCommandInner;
|
|
69
|
+
private runCommand;
|
|
70
|
+
private aliasExpansionStack;
|
|
71
|
+
private expandAlias;
|
|
72
|
+
findCommandInPath(commandName: string): Promise<string[]>;
|
|
73
|
+
private executeSubshell;
|
|
74
|
+
private executeGroup;
|
|
75
|
+
private executeArithmeticCommand;
|
|
76
|
+
private executeConditionalCommand;
|
|
77
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Execution
|
|
3
|
+
*
|
|
4
|
+
* Handles execution of command pipelines (cmd1 | cmd2 | cmd3).
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandNode, PipelineNode } from "../ast/types.js";
|
|
7
|
+
import type { ExecResult } from "../types.js";
|
|
8
|
+
import type { InterpreterContext } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Type for executeCommand callback
|
|
11
|
+
*/
|
|
12
|
+
export type ExecuteCommandFn = (node: CommandNode, stdin: string) => Promise<ExecResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Execute a pipeline node (command or sequence of piped commands).
|
|
15
|
+
*/
|
|
16
|
+
export declare function executePipeline(ctx: InterpreterContext, node: PipelineNode, executeCommand: ExecuteCommandFn): Promise<ExecResult>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redirection Handling
|
|
3
|
+
*
|
|
4
|
+
* Handles output redirections:
|
|
5
|
+
* - > : Write stdout to file
|
|
6
|
+
* - >> : Append stdout to file
|
|
7
|
+
* - 2> : Write stderr to file
|
|
8
|
+
* - &> : Write both stdout and stderr to file
|
|
9
|
+
* - >& : Redirect fd to another fd
|
|
10
|
+
* - {fd}>file : Allocate FD and store in variable
|
|
11
|
+
*/
|
|
12
|
+
import type { RedirectionNode } from "../ast/types.js";
|
|
13
|
+
import type { ExecResult } from "../types.js";
|
|
14
|
+
import type { InterpreterContext } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Pre-expanded redirect targets, keyed by index into the redirections array.
|
|
17
|
+
* This allows us to expand redirect targets (including side effects) before
|
|
18
|
+
* executing a function body, then apply the redirections after.
|
|
19
|
+
*/
|
|
20
|
+
export type ExpandedRedirectTargets = Map<number, string>;
|
|
21
|
+
/**
|
|
22
|
+
* Pre-expand redirect targets for function definitions.
|
|
23
|
+
* This is needed because redirections on function definitions are evaluated
|
|
24
|
+
* each time the function is called, and any side effects (like $((i++)))
|
|
25
|
+
* must occur BEFORE the function body executes.
|
|
26
|
+
*/
|
|
27
|
+
export declare function preExpandRedirectTargets(ctx: InterpreterContext, redirections: RedirectionNode[]): Promise<{
|
|
28
|
+
targets: ExpandedRedirectTargets;
|
|
29
|
+
error?: string;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Process FD variable redirections ({varname}>file syntax).
|
|
33
|
+
* This allocates FDs and sets variables before command execution.
|
|
34
|
+
* Returns an error result if there's an issue, or null if successful.
|
|
35
|
+
*/
|
|
36
|
+
export declare function processFdVariableRedirections(ctx: InterpreterContext, redirections: RedirectionNode[]): Promise<ExecResult | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Pre-open (truncate) output redirect files before command execution.
|
|
39
|
+
* This is needed for compound commands (subshell, for, case, [[) where
|
|
40
|
+
* bash opens/truncates the redirect file BEFORE evaluating any words in
|
|
41
|
+
* the command body (including command substitutions).
|
|
42
|
+
*
|
|
43
|
+
* Example: `(echo \`cat FILE\`) > FILE`
|
|
44
|
+
* - Bash first truncates FILE (making it empty)
|
|
45
|
+
* - Then executes the subshell, where `cat FILE` returns empty string
|
|
46
|
+
*
|
|
47
|
+
* Returns an error result if there's an issue (like directory or noclobber),
|
|
48
|
+
* or null if pre-opening succeeded.
|
|
49
|
+
*/
|
|
50
|
+
export declare function preOpenOutputRedirects(ctx: InterpreterContext, redirections: RedirectionNode[]): Promise<ExecResult | null>;
|
|
51
|
+
export declare function applyRedirections(ctx: InterpreterContext, result: ExecResult, redirections: RedirectionNode[], preExpandedTargets?: ExpandedRedirectTargets): Promise<ExecResult>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Command Assignment Handling
|
|
3
|
+
*
|
|
4
|
+
* Handles variable assignments in simple commands:
|
|
5
|
+
* - Array assignments: VAR=(a b c)
|
|
6
|
+
* - Subscript assignments: VAR[idx]=value
|
|
7
|
+
* - Scalar assignments with nameref resolution
|
|
8
|
+
*/
|
|
9
|
+
import type { SimpleCommandNode } from "../ast/types.js";
|
|
10
|
+
import type { ExecResult } from "../types.js";
|
|
11
|
+
import type { InterpreterContext } from "./types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Result of processing assignments in a simple command
|
|
14
|
+
*/
|
|
15
|
+
export interface AssignmentResult {
|
|
16
|
+
/** Whether to continue to the next statement (skip command execution) */
|
|
17
|
+
continueToNext: boolean;
|
|
18
|
+
/** Accumulated xtrace output for assignments */
|
|
19
|
+
xtraceOutput: string;
|
|
20
|
+
/** Temporary assignments for prefix bindings (FOO=bar cmd) */
|
|
21
|
+
tempAssignments: Map<string, string | undefined>;
|
|
22
|
+
/** Error result if assignment failed */
|
|
23
|
+
error?: ExecResult;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Process all assignments in a simple command.
|
|
27
|
+
* Returns assignment results including temp bindings and any errors.
|
|
28
|
+
*/
|
|
29
|
+
export declare function processAssignments(ctx: InterpreterContext, node: SimpleCommandNode): Promise<AssignmentResult>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subshell, Group, and Script Execution
|
|
3
|
+
*
|
|
4
|
+
* Handles execution of subshells (...), groups { ...; }, and user scripts
|
|
5
|
+
*/
|
|
6
|
+
import type { GroupNode, ScriptNode, StatementNode, SubshellNode } from "../ast/types.js";
|
|
7
|
+
import type { ExecResult } from "../types.js";
|
|
8
|
+
import type { InterpreterContext } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Type for executeStatement callback
|
|
11
|
+
*/
|
|
12
|
+
export type ExecuteStatementFn = (stmt: StatementNode) => Promise<ExecResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Execute a subshell node (...).
|
|
15
|
+
* Creates an isolated execution environment that doesn't affect the parent.
|
|
16
|
+
*/
|
|
17
|
+
export declare function executeSubshell(ctx: InterpreterContext, node: SubshellNode, stdin: string, executeStatement: ExecuteStatementFn): Promise<ExecResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Execute a group node { ...; }.
|
|
20
|
+
* Runs commands in the current execution environment.
|
|
21
|
+
*/
|
|
22
|
+
export declare function executeGroup(ctx: InterpreterContext, node: GroupNode, stdin: string, executeStatement: ExecuteStatementFn): Promise<ExecResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Type for executeScript callback
|
|
25
|
+
*/
|
|
26
|
+
export type ExecuteScriptFn = (node: ScriptNode) => Promise<ExecResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Execute a user script file found in PATH.
|
|
29
|
+
* This handles executable files that don't have registered command handlers.
|
|
30
|
+
* The script runs in a subshell-like environment with its own positional parameters.
|
|
31
|
+
*/
|
|
32
|
+
export declare function executeUserScript(ctx: InterpreterContext, scriptPath: string, args: string[], stdin: string, executeScript: ExecuteScriptFn): Promise<ExecResult>;
|