@jerryan/just-bash 3.5.0
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 +308 -0
- package/LICENSE +201 -0
- package/README.md +827 -0
- package/dist/AGENTS.md +383 -0
- package/dist/Bash.d.ts +317 -0
- package/dist/abort-signals.d.ts +10 -0
- package/dist/agent-sandbox.d.ts +104 -0
- package/dist/ast/types.d.ts +612 -0
- package/dist/banned-patterns-test.d.ts +1 -0
- package/dist/bin/chunks/alias-3R4G6HQY.js +3 -0
- package/dist/bin/chunks/awk2-KO7ZE3P7.js +3 -0
- package/dist/bin/chunks/base64-TQ5KOCNW.js +3 -0
- package/dist/bin/chunks/basename-C4CRGDXP.js +3 -0
- package/dist/bin/chunks/bash-CFCBBWVH.js +3 -0
- package/dist/bin/chunks/cat-BQ7FQTN5.js +3 -0
- package/dist/bin/chunks/chmod-WYYTXGVB.js +3 -0
- package/dist/bin/chunks/chunk-23OI2XDJ.js +20 -0
- package/dist/bin/chunks/chunk-2ETT4ELS.js +4 -0
- package/dist/bin/chunks/chunk-2UV6ZFHK.js +4 -0
- package/dist/bin/chunks/chunk-2YLY6FJA.js +10 -0
- package/dist/bin/chunks/chunk-3FQBUEB6.js +3 -0
- package/dist/bin/chunks/chunk-3MRB66F4.js +3 -0
- package/dist/bin/chunks/chunk-3PCPQIUD.js +3 -0
- package/dist/bin/chunks/chunk-42AMF6EE.js +3 -0
- package/dist/bin/chunks/chunk-43E7AR6A.js +3 -0
- package/dist/bin/chunks/chunk-45DUHCXR.js +7 -0
- package/dist/bin/chunks/chunk-472JZJ2D.js +22 -0
- package/dist/bin/chunks/chunk-47IFMQYS.js +3 -0
- package/dist/bin/chunks/chunk-4JF56A3P.js +15 -0
- package/dist/bin/chunks/chunk-5SKEZPTU.js +12 -0
- package/dist/bin/chunks/chunk-67XYNGRV.js +9 -0
- package/dist/bin/chunks/chunk-6ESRNSO7.js +7 -0
- package/dist/bin/chunks/chunk-6KHZX4HU.js +12 -0
- package/dist/bin/chunks/chunk-7FGDUBSN.js +14 -0
- package/dist/bin/chunks/chunk-7JZKVC3F.js +2 -0
- package/dist/bin/chunks/chunk-7PPAWLUI.js +12 -0
- package/dist/bin/chunks/chunk-7PUOS2OO.js +143 -0
- package/dist/bin/chunks/chunk-7VWOECJ3.js +101 -0
- package/dist/bin/chunks/chunk-7WBCA2BB.js +3 -0
- package/dist/bin/chunks/chunk-AGKL4LDL.js +4 -0
- package/dist/bin/chunks/chunk-AI7JUA46.js +13 -0
- package/dist/bin/chunks/chunk-AJF3OBTR.js +4 -0
- package/dist/bin/chunks/chunk-B2DRBHGQ.js +3 -0
- package/dist/bin/chunks/chunk-B2GCIQI2.js +16 -0
- package/dist/bin/chunks/chunk-B6WWC6K3.js +9 -0
- package/dist/bin/chunks/chunk-BIJXTWZ4.js +3 -0
- package/dist/bin/chunks/chunk-CC2AQ6B7.js +15 -0
- package/dist/bin/chunks/chunk-CL7IYCGG.js +20 -0
- package/dist/bin/chunks/chunk-CMTQFWZK.js +5 -0
- package/dist/bin/chunks/chunk-CPKBPQ2C.js +3 -0
- package/dist/bin/chunks/chunk-DJAX3ZRG.js +8 -0
- package/dist/bin/chunks/chunk-DN2YCFOR.js +3 -0
- package/dist/bin/chunks/chunk-DYIBFLS3.js +17 -0
- package/dist/bin/chunks/chunk-DZAFUADN.js +36 -0
- package/dist/bin/chunks/chunk-F3UDTTI7.js +13 -0
- package/dist/bin/chunks/chunk-FHMIEBRM.js +6 -0
- package/dist/bin/chunks/chunk-FONAGXRJ.js +17 -0
- package/dist/bin/chunks/chunk-FPWHWWXO.js +8 -0
- package/dist/bin/chunks/chunk-FUT3X2GJ.js +9 -0
- package/dist/bin/chunks/chunk-G4AUMZUY.js +4 -0
- package/dist/bin/chunks/chunk-GA5TPRMF.js +34 -0
- package/dist/bin/chunks/chunk-GOWX7VPU.js +7 -0
- package/dist/bin/chunks/chunk-GQKQEK5N.js +11 -0
- package/dist/bin/chunks/chunk-GR4ZHKXI.js +3 -0
- package/dist/bin/chunks/chunk-HDWHYM2T.js +18 -0
- package/dist/bin/chunks/chunk-HQ63MFHG.js +34 -0
- package/dist/bin/chunks/chunk-HW2VJKFH.js +4 -0
- package/dist/bin/chunks/chunk-HWI42GQO.js +7 -0
- package/dist/bin/chunks/chunk-HZGHQZSY.js +10 -0
- package/dist/bin/chunks/chunk-I4IRHQDW.js +3 -0
- package/dist/bin/chunks/chunk-I57EACSL.js +3 -0
- package/dist/bin/chunks/chunk-JELR4642.js +21 -0
- package/dist/bin/chunks/chunk-JQM3DKCH.js +12 -0
- package/dist/bin/chunks/chunk-K27FY3ES.js +3 -0
- package/dist/bin/chunks/chunk-KG2KXL4Y.js +3 -0
- package/dist/bin/chunks/chunk-KI54R2QB.js +3 -0
- package/dist/bin/chunks/chunk-KP2UH5CJ.js +22 -0
- package/dist/bin/chunks/chunk-KUMHQGUR.js +3 -0
- package/dist/bin/chunks/chunk-LE2XKKGQ.js +7 -0
- package/dist/bin/chunks/chunk-LJQIAFWS.js +5 -0
- package/dist/bin/chunks/chunk-LXFMIXGA.js +3 -0
- package/dist/bin/chunks/chunk-M7SIPZZZ.js +22 -0
- package/dist/bin/chunks/chunk-MF3GVFLC.js +11 -0
- package/dist/bin/chunks/chunk-MROECM42.js +3 -0
- package/dist/bin/chunks/chunk-MUFNRCMY.js +24 -0
- package/dist/bin/chunks/chunk-MVBK66TR.js +22 -0
- package/dist/bin/chunks/chunk-MYTNZ7MA.js +7 -0
- package/dist/bin/chunks/chunk-N26Y42L6.js +10 -0
- package/dist/bin/chunks/chunk-NE4R2FVV.js +5 -0
- package/dist/bin/chunks/chunk-NLU5LALY.js +37 -0
- package/dist/bin/chunks/chunk-NXUXZWS5.js +7 -0
- package/dist/bin/chunks/chunk-O2BCKSMK.js +3 -0
- package/dist/bin/chunks/chunk-OLEQNRKX.js +8 -0
- package/dist/bin/chunks/chunk-OUQKFRVR.js +6 -0
- package/dist/bin/chunks/chunk-OXLC2WWX.js +26 -0
- package/dist/bin/chunks/chunk-OYXHOZZ4.js +15 -0
- package/dist/bin/chunks/chunk-PBOVSFTJ.js +3 -0
- package/dist/bin/chunks/chunk-PPVF2N6C.js +3 -0
- package/dist/bin/chunks/chunk-PQ2INDRF.js +87 -0
- package/dist/bin/chunks/chunk-PXP4YYZA.js +13 -0
- package/dist/bin/chunks/chunk-PZQVSQX6.js +4 -0
- package/dist/bin/chunks/chunk-Q2GOPGDA.js +6 -0
- package/dist/bin/chunks/chunk-Q3LE3Y66.js +13 -0
- package/dist/bin/chunks/chunk-QES5OSUC.js +3 -0
- package/dist/bin/chunks/chunk-QFTZKD5O.js +13 -0
- package/dist/bin/chunks/chunk-QL33F2W6.js +8 -0
- package/dist/bin/chunks/chunk-QMPZXXEK.js +8 -0
- package/dist/bin/chunks/chunk-QYZN33JA.js +3 -0
- package/dist/bin/chunks/chunk-R2J5MJOM.js +20 -0
- package/dist/bin/chunks/chunk-RPUFEP5O.js +65 -0
- package/dist/bin/chunks/chunk-RVPTAYDS.js +4 -0
- package/dist/bin/chunks/chunk-SC5TEGMM.js +12 -0
- package/dist/bin/chunks/chunk-SDGPS6XI.js +10 -0
- package/dist/bin/chunks/chunk-TW2IJRUF.js +3 -0
- package/dist/bin/chunks/chunk-TYBXHT6W.js +10 -0
- package/dist/bin/chunks/chunk-V2XF3TTW.js +276 -0
- package/dist/bin/chunks/chunk-V4U26ZWL.js +16 -0
- package/dist/bin/chunks/chunk-VTAMGD42.js +3 -0
- package/dist/bin/chunks/chunk-WAJVRK5B.js +16 -0
- package/dist/bin/chunks/chunk-WEHA3JFD.js +3 -0
- package/dist/bin/chunks/chunk-WFHYGSLJ.js +6 -0
- package/dist/bin/chunks/chunk-WFVCEB5T.js +3 -0
- package/dist/bin/chunks/chunk-YERKK5B3.js +4 -0
- package/dist/bin/chunks/chunk-YIANER7Y.js +8 -0
- package/dist/bin/chunks/chunk-YJ5OCPSK.js +7 -0
- package/dist/bin/chunks/chunk-YOIFOOGX.js +9 -0
- package/dist/bin/chunks/chunk-YQEKKZTU.js +12 -0
- package/dist/bin/chunks/chunk-YUZRUF5F.js +10 -0
- package/dist/bin/chunks/chunk-ZMGLTHSU.js +15 -0
- package/dist/bin/chunks/clear-OE52K3TM.js +3 -0
- package/dist/bin/chunks/column-AJFK3TWF.js +3 -0
- package/dist/bin/chunks/comm-URDMZCXL.js +3 -0
- package/dist/bin/chunks/cp-OMVKM35F.js +3 -0
- package/dist/bin/chunks/curl-NHNZ46BU.js +31 -0
- package/dist/bin/chunks/cut-42X6363P.js +3 -0
- package/dist/bin/chunks/date-6MQGVWDY.js +3 -0
- package/dist/bin/chunks/diff-YXZZCUSQ.js +3 -0
- package/dist/bin/chunks/dirname-TPUFCYF6.js +3 -0
- package/dist/bin/chunks/dist-5MWO25Y4.js +141 -0
- package/dist/bin/chunks/du-LUFPVLNW.js +3 -0
- package/dist/bin/chunks/echo-NYDCCFWB.js +3 -0
- package/dist/bin/chunks/env-2TSVF4W7.js +3 -0
- package/dist/bin/chunks/expand-IQRKKT7D.js +3 -0
- package/dist/bin/chunks/expr-NNMDHOCN.js +3 -0
- package/dist/bin/chunks/file-4T64QNLS.js +3 -0
- package/dist/bin/chunks/find-AWH2KOY7.js +3 -0
- package/dist/bin/chunks/flag-coverage-J2ZHA465.js +3 -0
- package/dist/bin/chunks/fold-YEY7X54W.js +3 -0
- package/dist/bin/chunks/grep-CVU5V66H.js +3 -0
- package/dist/bin/chunks/gzip-FDPA6EKG.js +3 -0
- package/dist/bin/chunks/head-QKVY3SIO.js +3 -0
- package/dist/bin/chunks/help-HVIDHJ6M.js +3 -0
- package/dist/bin/chunks/history-3HAU45KT.js +3 -0
- package/dist/bin/chunks/hostname-2I76DUQL.js +3 -0
- package/dist/bin/chunks/html-to-markdown-XUMA42ZC.js +3 -0
- package/dist/bin/chunks/join-34DX7YK5.js +3 -0
- package/dist/bin/chunks/jq-V7OTAVU5.js +3 -0
- package/dist/bin/chunks/js-exec-DJQLXWCS.js +99 -0
- package/dist/bin/chunks/js-exec-worker.js +4809 -0
- package/dist/bin/chunks/ln-B35EKC2Q.js +3 -0
- package/dist/bin/chunks/ls-Q6ZZ6SQ2.js +3 -0
- package/dist/bin/chunks/md5sum-Z6KAYGDK.js +3 -0
- package/dist/bin/chunks/mkdir-74BP5NTG.js +3 -0
- package/dist/bin/chunks/mv-76LAHXFR.js +3 -0
- package/dist/bin/chunks/nl-4IZRRT7U.js +3 -0
- package/dist/bin/chunks/od-2GXD4D5K.js +3 -0
- package/dist/bin/chunks/paste-DWWA3JTW.js +3 -0
- package/dist/bin/chunks/printf-YXCSED2H.js +3 -0
- package/dist/bin/chunks/pwd-YKLNXWZI.js +3 -0
- package/dist/bin/chunks/python3-JCJHSX4Z.js +14 -0
- package/dist/bin/chunks/readlink-EHXJNW62.js +3 -0
- package/dist/bin/chunks/rev-CZTQCNOZ.js +3 -0
- package/dist/bin/chunks/rg-PXNKNIMY.js +3 -0
- package/dist/bin/chunks/rm-3PLW4O4B.js +3 -0
- package/dist/bin/chunks/rmdir-7ZIVFZJX.js +3 -0
- package/dist/bin/chunks/sed-4LVDFHIJ.js +3 -0
- package/dist/bin/chunks/seq-X2EAOGV5.js +3 -0
- package/dist/bin/chunks/sha1sum-CATBXX76.js +3 -0
- package/dist/bin/chunks/sha256sum-YGSNBVY3.js +3 -0
- package/dist/bin/chunks/sleep-DVFE2GSF.js +3 -0
- package/dist/bin/chunks/sort-HBOCBBJQ.js +3 -0
- package/dist/bin/chunks/split-ZNNNHKSP.js +3 -0
- package/dist/bin/chunks/sqlite3-KP42NNIY.js +3 -0
- package/dist/bin/chunks/sqlite3-worker.js +1928 -0
- package/dist/bin/chunks/stat-LROLDXHH.js +3 -0
- package/dist/bin/chunks/strings-CNUK76JL.js +3 -0
- package/dist/bin/chunks/tac-DG4BMYM5.js +3 -0
- package/dist/bin/chunks/tail-UOTUV25D.js +3 -0
- package/dist/bin/chunks/tar-7HGZIMZD.js +3 -0
- package/dist/bin/chunks/tee-L4HKV5PD.js +3 -0
- package/dist/bin/chunks/time-LF7BTSK5.js +3 -0
- package/dist/bin/chunks/timeout-YGFHQJKX.js +3 -0
- package/dist/bin/chunks/touch-TVQAUQOG.js +3 -0
- package/dist/bin/chunks/tr-PVFO6FRY.js +3 -0
- package/dist/bin/chunks/tree-ZGP6NPGS.js +3 -0
- package/dist/bin/chunks/true-KFTJGQLQ.js +3 -0
- package/dist/bin/chunks/unexpand-JPOQORZF.js +3 -0
- package/dist/bin/chunks/uniq-JMHDIJXT.js +3 -0
- package/dist/bin/chunks/wc-3KLVOCI2.js +3 -0
- package/dist/bin/chunks/which-4TPGVSBZ.js +3 -0
- package/dist/bin/chunks/whoami-B5HDVKW6.js +3 -0
- package/dist/bin/chunks/worker.js +3330 -0
- package/dist/bin/chunks/xan-WW53ETXT.js +3 -0
- package/dist/bin/chunks/xan-view-PD26QEFN.js +3 -0
- package/dist/bin/chunks/xargs-4AMMXFXL.js +3 -0
- package/dist/bin/chunks/yq-MYZOS2WN.js +3 -0
- package/dist/bin/just-bash.js +858 -0
- package/dist/bin/shell/chunks/alias-3R4G6HQY.js +3 -0
- package/dist/bin/shell/chunks/awk2-KO7ZE3P7.js +3 -0
- package/dist/bin/shell/chunks/base64-TQ5KOCNW.js +3 -0
- package/dist/bin/shell/chunks/basename-C4CRGDXP.js +3 -0
- package/dist/bin/shell/chunks/bash-CFCBBWVH.js +3 -0
- package/dist/bin/shell/chunks/cat-BQ7FQTN5.js +3 -0
- package/dist/bin/shell/chunks/chmod-WYYTXGVB.js +3 -0
- package/dist/bin/shell/chunks/chunk-23OI2XDJ.js +20 -0
- package/dist/bin/shell/chunks/chunk-2ETT4ELS.js +4 -0
- package/dist/bin/shell/chunks/chunk-2UV6ZFHK.js +4 -0
- package/dist/bin/shell/chunks/chunk-2YLY6FJA.js +10 -0
- package/dist/bin/shell/chunks/chunk-3FQBUEB6.js +3 -0
- package/dist/bin/shell/chunks/chunk-3MRB66F4.js +3 -0
- package/dist/bin/shell/chunks/chunk-3PCPQIUD.js +3 -0
- package/dist/bin/shell/chunks/chunk-42AMF6EE.js +3 -0
- package/dist/bin/shell/chunks/chunk-43E7AR6A.js +3 -0
- package/dist/bin/shell/chunks/chunk-45DUHCXR.js +7 -0
- package/dist/bin/shell/chunks/chunk-472JZJ2D.js +22 -0
- package/dist/bin/shell/chunks/chunk-47IFMQYS.js +3 -0
- package/dist/bin/shell/chunks/chunk-4JF56A3P.js +15 -0
- package/dist/bin/shell/chunks/chunk-5SKEZPTU.js +12 -0
- package/dist/bin/shell/chunks/chunk-67XYNGRV.js +9 -0
- package/dist/bin/shell/chunks/chunk-6ESRNSO7.js +7 -0
- package/dist/bin/shell/chunks/chunk-6KHZX4HU.js +12 -0
- package/dist/bin/shell/chunks/chunk-7FGDUBSN.js +14 -0
- package/dist/bin/shell/chunks/chunk-7JZKVC3F.js +2 -0
- package/dist/bin/shell/chunks/chunk-7PPAWLUI.js +12 -0
- package/dist/bin/shell/chunks/chunk-7PUOS2OO.js +143 -0
- package/dist/bin/shell/chunks/chunk-7VWOECJ3.js +101 -0
- package/dist/bin/shell/chunks/chunk-7WBCA2BB.js +3 -0
- package/dist/bin/shell/chunks/chunk-AGKL4LDL.js +4 -0
- package/dist/bin/shell/chunks/chunk-AI7JUA46.js +13 -0
- package/dist/bin/shell/chunks/chunk-AJF3OBTR.js +4 -0
- package/dist/bin/shell/chunks/chunk-B2DRBHGQ.js +3 -0
- package/dist/bin/shell/chunks/chunk-B2GCIQI2.js +16 -0
- package/dist/bin/shell/chunks/chunk-B6WWC6K3.js +9 -0
- package/dist/bin/shell/chunks/chunk-BIJXTWZ4.js +3 -0
- package/dist/bin/shell/chunks/chunk-CC2AQ6B7.js +15 -0
- package/dist/bin/shell/chunks/chunk-CL7IYCGG.js +20 -0
- package/dist/bin/shell/chunks/chunk-CMTQFWZK.js +5 -0
- package/dist/bin/shell/chunks/chunk-CPKBPQ2C.js +3 -0
- package/dist/bin/shell/chunks/chunk-DJAX3ZRG.js +8 -0
- package/dist/bin/shell/chunks/chunk-DN2YCFOR.js +3 -0
- package/dist/bin/shell/chunks/chunk-DYIBFLS3.js +17 -0
- package/dist/bin/shell/chunks/chunk-DZAFUADN.js +36 -0
- package/dist/bin/shell/chunks/chunk-F3UDTTI7.js +13 -0
- package/dist/bin/shell/chunks/chunk-FHMIEBRM.js +6 -0
- package/dist/bin/shell/chunks/chunk-FONAGXRJ.js +17 -0
- package/dist/bin/shell/chunks/chunk-FPWHWWXO.js +8 -0
- package/dist/bin/shell/chunks/chunk-FUT3X2GJ.js +9 -0
- package/dist/bin/shell/chunks/chunk-G4AUMZUY.js +4 -0
- package/dist/bin/shell/chunks/chunk-GA5TPRMF.js +34 -0
- package/dist/bin/shell/chunks/chunk-GOWX7VPU.js +7 -0
- package/dist/bin/shell/chunks/chunk-GQKQEK5N.js +11 -0
- package/dist/bin/shell/chunks/chunk-GR4ZHKXI.js +3 -0
- package/dist/bin/shell/chunks/chunk-HDWHYM2T.js +18 -0
- package/dist/bin/shell/chunks/chunk-HQ63MFHG.js +34 -0
- package/dist/bin/shell/chunks/chunk-HW2VJKFH.js +4 -0
- package/dist/bin/shell/chunks/chunk-HWI42GQO.js +7 -0
- package/dist/bin/shell/chunks/chunk-HZGHQZSY.js +10 -0
- package/dist/bin/shell/chunks/chunk-I4IRHQDW.js +3 -0
- package/dist/bin/shell/chunks/chunk-I57EACSL.js +3 -0
- package/dist/bin/shell/chunks/chunk-JELR4642.js +21 -0
- package/dist/bin/shell/chunks/chunk-JQM3DKCH.js +12 -0
- package/dist/bin/shell/chunks/chunk-K27FY3ES.js +3 -0
- package/dist/bin/shell/chunks/chunk-KG2KXL4Y.js +3 -0
- package/dist/bin/shell/chunks/chunk-KI54R2QB.js +3 -0
- package/dist/bin/shell/chunks/chunk-KP2UH5CJ.js +22 -0
- package/dist/bin/shell/chunks/chunk-KUMHQGUR.js +3 -0
- package/dist/bin/shell/chunks/chunk-LE2XKKGQ.js +7 -0
- package/dist/bin/shell/chunks/chunk-LJQIAFWS.js +5 -0
- package/dist/bin/shell/chunks/chunk-LXFMIXGA.js +3 -0
- package/dist/bin/shell/chunks/chunk-M7SIPZZZ.js +22 -0
- package/dist/bin/shell/chunks/chunk-MF3GVFLC.js +11 -0
- package/dist/bin/shell/chunks/chunk-MROECM42.js +3 -0
- package/dist/bin/shell/chunks/chunk-MUFNRCMY.js +24 -0
- package/dist/bin/shell/chunks/chunk-MVBK66TR.js +22 -0
- package/dist/bin/shell/chunks/chunk-MYTNZ7MA.js +7 -0
- package/dist/bin/shell/chunks/chunk-N26Y42L6.js +10 -0
- package/dist/bin/shell/chunks/chunk-NE4R2FVV.js +5 -0
- package/dist/bin/shell/chunks/chunk-NLU5LALY.js +37 -0
- package/dist/bin/shell/chunks/chunk-NXUXZWS5.js +7 -0
- package/dist/bin/shell/chunks/chunk-O2BCKSMK.js +3 -0
- package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +8 -0
- package/dist/bin/shell/chunks/chunk-OUQKFRVR.js +6 -0
- package/dist/bin/shell/chunks/chunk-OXLC2WWX.js +26 -0
- package/dist/bin/shell/chunks/chunk-OYXHOZZ4.js +15 -0
- package/dist/bin/shell/chunks/chunk-PBOVSFTJ.js +3 -0
- package/dist/bin/shell/chunks/chunk-PPVF2N6C.js +3 -0
- package/dist/bin/shell/chunks/chunk-PQ2INDRF.js +87 -0
- package/dist/bin/shell/chunks/chunk-PXP4YYZA.js +13 -0
- package/dist/bin/shell/chunks/chunk-PZQVSQX6.js +4 -0
- package/dist/bin/shell/chunks/chunk-Q2GOPGDA.js +6 -0
- package/dist/bin/shell/chunks/chunk-Q3LE3Y66.js +13 -0
- package/dist/bin/shell/chunks/chunk-QES5OSUC.js +3 -0
- package/dist/bin/shell/chunks/chunk-QFTZKD5O.js +13 -0
- package/dist/bin/shell/chunks/chunk-QL33F2W6.js +8 -0
- package/dist/bin/shell/chunks/chunk-QMPZXXEK.js +8 -0
- package/dist/bin/shell/chunks/chunk-QYZN33JA.js +3 -0
- package/dist/bin/shell/chunks/chunk-R2J5MJOM.js +20 -0
- package/dist/bin/shell/chunks/chunk-RPUFEP5O.js +65 -0
- package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +4 -0
- package/dist/bin/shell/chunks/chunk-SC5TEGMM.js +12 -0
- package/dist/bin/shell/chunks/chunk-SDGPS6XI.js +10 -0
- package/dist/bin/shell/chunks/chunk-TW2IJRUF.js +3 -0
- package/dist/bin/shell/chunks/chunk-TYBXHT6W.js +10 -0
- package/dist/bin/shell/chunks/chunk-V2XF3TTW.js +276 -0
- package/dist/bin/shell/chunks/chunk-V4U26ZWL.js +16 -0
- package/dist/bin/shell/chunks/chunk-VTAMGD42.js +3 -0
- package/dist/bin/shell/chunks/chunk-WAJVRK5B.js +16 -0
- package/dist/bin/shell/chunks/chunk-WEHA3JFD.js +3 -0
- package/dist/bin/shell/chunks/chunk-WFHYGSLJ.js +6 -0
- package/dist/bin/shell/chunks/chunk-WFVCEB5T.js +3 -0
- package/dist/bin/shell/chunks/chunk-YERKK5B3.js +4 -0
- package/dist/bin/shell/chunks/chunk-YIANER7Y.js +8 -0
- package/dist/bin/shell/chunks/chunk-YJ5OCPSK.js +7 -0
- package/dist/bin/shell/chunks/chunk-YOIFOOGX.js +9 -0
- package/dist/bin/shell/chunks/chunk-YQEKKZTU.js +12 -0
- package/dist/bin/shell/chunks/chunk-YUZRUF5F.js +10 -0
- package/dist/bin/shell/chunks/chunk-ZMGLTHSU.js +15 -0
- package/dist/bin/shell/chunks/clear-OE52K3TM.js +3 -0
- package/dist/bin/shell/chunks/column-AJFK3TWF.js +3 -0
- package/dist/bin/shell/chunks/comm-URDMZCXL.js +3 -0
- package/dist/bin/shell/chunks/cp-OMVKM35F.js +3 -0
- package/dist/bin/shell/chunks/curl-NHNZ46BU.js +31 -0
- package/dist/bin/shell/chunks/cut-42X6363P.js +3 -0
- package/dist/bin/shell/chunks/date-6MQGVWDY.js +3 -0
- package/dist/bin/shell/chunks/diff-YXZZCUSQ.js +3 -0
- package/dist/bin/shell/chunks/dirname-TPUFCYF6.js +3 -0
- package/dist/bin/shell/chunks/dist-5MWO25Y4.js +141 -0
- package/dist/bin/shell/chunks/du-LUFPVLNW.js +3 -0
- package/dist/bin/shell/chunks/echo-NYDCCFWB.js +3 -0
- package/dist/bin/shell/chunks/env-2TSVF4W7.js +3 -0
- package/dist/bin/shell/chunks/expand-IQRKKT7D.js +3 -0
- package/dist/bin/shell/chunks/expr-NNMDHOCN.js +3 -0
- package/dist/bin/shell/chunks/file-4T64QNLS.js +3 -0
- package/dist/bin/shell/chunks/find-AWH2KOY7.js +3 -0
- package/dist/bin/shell/chunks/flag-coverage-J2ZHA465.js +3 -0
- package/dist/bin/shell/chunks/fold-YEY7X54W.js +3 -0
- package/dist/bin/shell/chunks/grep-CVU5V66H.js +3 -0
- package/dist/bin/shell/chunks/gzip-FDPA6EKG.js +3 -0
- package/dist/bin/shell/chunks/head-QKVY3SIO.js +3 -0
- package/dist/bin/shell/chunks/help-HVIDHJ6M.js +3 -0
- package/dist/bin/shell/chunks/history-3HAU45KT.js +3 -0
- package/dist/bin/shell/chunks/hostname-2I76DUQL.js +3 -0
- package/dist/bin/shell/chunks/html-to-markdown-XUMA42ZC.js +3 -0
- package/dist/bin/shell/chunks/join-34DX7YK5.js +3 -0
- package/dist/bin/shell/chunks/jq-V7OTAVU5.js +3 -0
- package/dist/bin/shell/chunks/js-exec-DJQLXWCS.js +99 -0
- package/dist/bin/shell/chunks/ln-B35EKC2Q.js +3 -0
- package/dist/bin/shell/chunks/ls-Q6ZZ6SQ2.js +3 -0
- package/dist/bin/shell/chunks/md5sum-Z6KAYGDK.js +3 -0
- package/dist/bin/shell/chunks/mkdir-74BP5NTG.js +3 -0
- package/dist/bin/shell/chunks/mv-76LAHXFR.js +3 -0
- package/dist/bin/shell/chunks/nl-4IZRRT7U.js +3 -0
- package/dist/bin/shell/chunks/od-2GXD4D5K.js +3 -0
- package/dist/bin/shell/chunks/paste-DWWA3JTW.js +3 -0
- package/dist/bin/shell/chunks/printf-YXCSED2H.js +3 -0
- package/dist/bin/shell/chunks/pwd-YKLNXWZI.js +3 -0
- package/dist/bin/shell/chunks/python3-JCJHSX4Z.js +14 -0
- package/dist/bin/shell/chunks/readlink-EHXJNW62.js +3 -0
- package/dist/bin/shell/chunks/rev-CZTQCNOZ.js +3 -0
- package/dist/bin/shell/chunks/rg-PXNKNIMY.js +3 -0
- package/dist/bin/shell/chunks/rm-3PLW4O4B.js +3 -0
- package/dist/bin/shell/chunks/rmdir-7ZIVFZJX.js +3 -0
- package/dist/bin/shell/chunks/sed-4LVDFHIJ.js +3 -0
- package/dist/bin/shell/chunks/seq-X2EAOGV5.js +3 -0
- package/dist/bin/shell/chunks/sha1sum-CATBXX76.js +3 -0
- package/dist/bin/shell/chunks/sha256sum-YGSNBVY3.js +3 -0
- package/dist/bin/shell/chunks/sleep-DVFE2GSF.js +3 -0
- package/dist/bin/shell/chunks/sort-HBOCBBJQ.js +3 -0
- package/dist/bin/shell/chunks/split-ZNNNHKSP.js +3 -0
- package/dist/bin/shell/chunks/sqlite3-KP42NNIY.js +3 -0
- package/dist/bin/shell/chunks/stat-LROLDXHH.js +3 -0
- package/dist/bin/shell/chunks/strings-CNUK76JL.js +3 -0
- package/dist/bin/shell/chunks/tac-DG4BMYM5.js +3 -0
- package/dist/bin/shell/chunks/tail-UOTUV25D.js +3 -0
- package/dist/bin/shell/chunks/tar-7HGZIMZD.js +3 -0
- package/dist/bin/shell/chunks/tee-L4HKV5PD.js +3 -0
- package/dist/bin/shell/chunks/time-LF7BTSK5.js +3 -0
- package/dist/bin/shell/chunks/timeout-YGFHQJKX.js +3 -0
- package/dist/bin/shell/chunks/touch-TVQAUQOG.js +3 -0
- package/dist/bin/shell/chunks/tr-PVFO6FRY.js +3 -0
- package/dist/bin/shell/chunks/tree-ZGP6NPGS.js +3 -0
- package/dist/bin/shell/chunks/true-KFTJGQLQ.js +3 -0
- package/dist/bin/shell/chunks/unexpand-JPOQORZF.js +3 -0
- package/dist/bin/shell/chunks/uniq-JMHDIJXT.js +3 -0
- package/dist/bin/shell/chunks/wc-3KLVOCI2.js +3 -0
- package/dist/bin/shell/chunks/which-4TPGVSBZ.js +3 -0
- package/dist/bin/shell/chunks/whoami-B5HDVKW6.js +3 -0
- package/dist/bin/shell/chunks/xan-WW53ETXT.js +3 -0
- package/dist/bin/shell/chunks/xan-view-PD26QEFN.js +3 -0
- package/dist/bin/shell/chunks/xargs-4AMMXFXL.js +3 -0
- package/dist/bin/shell/chunks/yq-MYZOS2WN.js +3 -0
- package/dist/bin/shell/shell.js +834 -0
- package/dist/bounded-builder.d.ts +37 -0
- package/dist/browser.d.ts +23 -0
- package/dist/bundle/browser.js +1576 -0
- package/dist/bundle/chunks/alias-T5TO5GWK.js +2 -0
- package/dist/bundle/chunks/awk2-W6BNZEJN.js +2 -0
- package/dist/bundle/chunks/base64-MHVQ5XHI.js +2 -0
- package/dist/bundle/chunks/basename-SJZQ5W65.js +2 -0
- package/dist/bundle/chunks/bash-HIEWVHJ2.js +2 -0
- package/dist/bundle/chunks/cat-VZBWBIJB.js +2 -0
- package/dist/bundle/chunks/chmod-WM2JFFQC.js +2 -0
- package/dist/bundle/chunks/chunk-24NLAR7R.js +36 -0
- package/dist/bundle/chunks/chunk-26GP3ACY.js +12 -0
- package/dist/bundle/chunks/chunk-2KNTH3KH.js +9 -0
- package/dist/bundle/chunks/chunk-2SMD2AUA.js +3 -0
- package/dist/bundle/chunks/chunk-2TSZPVPI.js +21 -0
- package/dist/bundle/chunks/chunk-2VWG4LDT.js +11 -0
- package/dist/bundle/chunks/chunk-3WASQYTF.js +11 -0
- package/dist/bundle/chunks/chunk-44YCJWNC.js +6 -0
- package/dist/bundle/chunks/chunk-4EDQZIAN.js +5 -0
- package/dist/bundle/chunks/chunk-4MJ7VJG4.js +21 -0
- package/dist/bundle/chunks/chunk-4MZPEZTU.js +3 -0
- package/dist/bundle/chunks/chunk-57LGFT4S.js +3 -0
- package/dist/bundle/chunks/chunk-5I5U6IYI.js +142 -0
- package/dist/bundle/chunks/chunk-6DDRR56B.js +33 -0
- package/dist/bundle/chunks/chunk-6QF3PCMO.js +8 -0
- package/dist/bundle/chunks/chunk-6RK4AAB7.js +21 -0
- package/dist/bundle/chunks/chunk-6WGIZV3E.js +13 -0
- package/dist/bundle/chunks/chunk-73JQKNZT.js +33 -0
- package/dist/bundle/chunks/chunk-7AISL3XV.js +12 -0
- package/dist/bundle/chunks/chunk-7EUWTCWK.js +2 -0
- package/dist/bundle/chunks/chunk-7IJWBG4I.js +2 -0
- package/dist/bundle/chunks/chunk-7O2RDO2R.js +14 -0
- package/dist/bundle/chunks/chunk-A4R2GWRF.js +9 -0
- package/dist/bundle/chunks/chunk-AGH5UJJI.js +4 -0
- package/dist/bundle/chunks/chunk-ANCQ4SCV.js +2 -0
- package/dist/bundle/chunks/chunk-ASE6AYV3.js +17 -0
- package/dist/bundle/chunks/chunk-AYSZ5MAE.js +2 -0
- package/dist/bundle/chunks/chunk-BKUWXPEM.js +2 -0
- package/dist/bundle/chunks/chunk-BRJERIF4.js +2 -0
- package/dist/bundle/chunks/chunk-DAKEIWT3.js +21 -0
- package/dist/bundle/chunks/chunk-DLL7UR66.js +2 -0
- package/dist/bundle/chunks/chunk-DMWNBCXJ.js +10 -0
- package/dist/bundle/chunks/chunk-DVSA72LH.js +2 -0
- package/dist/bundle/chunks/chunk-EJFBIRMD.js +6 -0
- package/dist/bundle/chunks/chunk-EZNS4GF7.js +9 -0
- package/dist/bundle/chunks/chunk-F6XU52K3.js +35 -0
- package/dist/bundle/chunks/chunk-FHC24QSK.js +7 -0
- package/dist/bundle/chunks/chunk-FIMF2TLE.js +20 -0
- package/dist/bundle/chunks/chunk-FOCWZZDE.js +2 -0
- package/dist/bundle/chunks/chunk-FQUVK4Q5.js +11 -0
- package/dist/bundle/chunks/chunk-FSJ6TTCC.js +19 -0
- package/dist/bundle/chunks/chunk-FT6ODGOU.js +2 -0
- package/dist/bundle/chunks/chunk-FTET43KM.js +2 -0
- package/dist/bundle/chunks/chunk-FX4RBUYU.js +5 -0
- package/dist/bundle/chunks/chunk-FZRQOL3C.js +7 -0
- package/dist/bundle/chunks/chunk-FZZL53S2.js +275 -0
- package/dist/bundle/chunks/chunk-GN6CQ3J4.js +2 -0
- package/dist/bundle/chunks/chunk-HDRAUQK2.js +2 -0
- package/dist/bundle/chunks/chunk-HP7HWZ2S.js +15 -0
- package/dist/bundle/chunks/chunk-HRIJVWZS.js +14 -0
- package/dist/bundle/chunks/chunk-HXWB4Z5X.js +7 -0
- package/dist/bundle/chunks/chunk-ICLA3MUR.js +3 -0
- package/dist/bundle/chunks/chunk-IXFQXNL4.js +7 -0
- package/dist/bundle/chunks/chunk-KIGPB52X.js +2 -0
- package/dist/bundle/chunks/chunk-L2UW7DWF.js +2 -0
- package/dist/bundle/chunks/chunk-LI6PTSPD.js +9 -0
- package/dist/bundle/chunks/chunk-LPJEKUCB.js +8 -0
- package/dist/bundle/chunks/chunk-LSLPJOYM.js +3 -0
- package/dist/bundle/chunks/chunk-LVDUF74R.js +7 -0
- package/dist/bundle/chunks/chunk-MLIO3BK2.js +7 -0
- package/dist/bundle/chunks/chunk-MQKGGNPS.js +16 -0
- package/dist/bundle/chunks/chunk-N3A4JVFJ.js +2 -0
- package/dist/bundle/chunks/chunk-NBNI7G66.js +8 -0
- package/dist/bundle/chunks/chunk-NCUTH6QL.js +2 -0
- package/dist/bundle/chunks/chunk-OQ7C4FYO.js +2 -0
- package/dist/bundle/chunks/chunk-P57S6Z6R.js +6 -0
- package/dist/bundle/chunks/chunk-PCPW54JH.js +7 -0
- package/dist/bundle/chunks/chunk-PJM5C3HZ.js +25 -0
- package/dist/bundle/chunks/chunk-PPEXVPHR.js +19 -0
- package/dist/bundle/chunks/chunk-Q4JSJ3KQ.js +4 -0
- package/dist/bundle/chunks/chunk-QAYAQNCG.js +23 -0
- package/dist/bundle/chunks/chunk-QHDBQA5N.js +9 -0
- package/dist/bundle/chunks/chunk-QIQMJJZ4.js +4 -0
- package/dist/bundle/chunks/chunk-QJ7OXJAZ.js +6 -0
- package/dist/bundle/chunks/chunk-QJFYYEFV.js +11 -0
- package/dist/bundle/chunks/chunk-R2FBRMDU.js +14 -0
- package/dist/bundle/chunks/chunk-ROAWFE6V.js +5 -0
- package/dist/bundle/chunks/chunk-RPKJJFGZ.js +14 -0
- package/dist/bundle/chunks/chunk-S3ENGQML.js +15 -0
- package/dist/bundle/chunks/chunk-SBBYKIYU.js +3 -0
- package/dist/bundle/chunks/chunk-SGX4WOAM.js +2 -0
- package/dist/bundle/chunks/chunk-SHKOQWO4.js +3 -0
- package/dist/bundle/chunks/chunk-SIOONII3.js +2 -0
- package/dist/bundle/chunks/chunk-STHBFACM.js +1 -0
- package/dist/bundle/chunks/chunk-SX2HC7SO.js +2 -0
- package/dist/bundle/chunks/chunk-T6DNSPYO.js +100 -0
- package/dist/bundle/chunks/chunk-TBVD66LC.js +10 -0
- package/dist/bundle/chunks/chunk-TDD4NFYE.js +2 -0
- package/dist/bundle/chunks/chunk-TVCZIH6M.js +8 -0
- package/dist/bundle/chunks/chunk-U4K5ZDWK.js +9 -0
- package/dist/bundle/chunks/chunk-UC76ZOWM.js +15 -0
- package/dist/bundle/chunks/chunk-UIJUTQPH.js +3 -0
- package/dist/bundle/chunks/chunk-ULXTDFQC.js +2 -0
- package/dist/bundle/chunks/chunk-UTKGYVUZ.js +7 -0
- package/dist/bundle/chunks/chunk-UUIYAOD4.js +2 -0
- package/dist/bundle/chunks/chunk-VJ6UXG2R.js +64 -0
- package/dist/bundle/chunks/chunk-W2Z6LYL6.js +11 -0
- package/dist/bundle/chunks/chunk-W5DWRFSU.js +2 -0
- package/dist/bundle/chunks/chunk-WN54B5NQ.js +12 -0
- package/dist/bundle/chunks/chunk-WNH3HOQA.js +2 -0
- package/dist/bundle/chunks/chunk-WXPNKIIH.js +2 -0
- package/dist/bundle/chunks/chunk-WZQNMEQW.js +2 -0
- package/dist/bundle/chunks/chunk-XV2V56NQ.js +12 -0
- package/dist/bundle/chunks/chunk-XVSR5HHH.js +6 -0
- package/dist/bundle/chunks/chunk-XXBIOG4R.js +5 -0
- package/dist/bundle/chunks/chunk-Y62SXZKJ.js +12 -0
- package/dist/bundle/chunks/chunk-YEYSCLSJ.js +3 -0
- package/dist/bundle/chunks/chunk-YJKHREBZ.js +11 -0
- package/dist/bundle/chunks/chunk-YUSFCOM7.js +2 -0
- package/dist/bundle/chunks/chunk-ZBUZKIPX.js +6 -0
- package/dist/bundle/chunks/chunk-ZDPFA4L3.js +6 -0
- package/dist/bundle/chunks/chunk-ZT3WF5R7.js +16 -0
- package/dist/bundle/chunks/chunk-ZXFELXJH.js +6 -0
- package/dist/bundle/chunks/clear-KPIUNI6K.js +2 -0
- package/dist/bundle/chunks/column-QJI65SH2.js +2 -0
- package/dist/bundle/chunks/comm-DTWKU2MC.js +2 -0
- package/dist/bundle/chunks/cp-2KZIPZJS.js +2 -0
- package/dist/bundle/chunks/curl-K4WT7UPN.js +30 -0
- package/dist/bundle/chunks/cut-FMDNVWQN.js +2 -0
- package/dist/bundle/chunks/date-7OEDRA27.js +2 -0
- package/dist/bundle/chunks/diff-CSARC7WF.js +2 -0
- package/dist/bundle/chunks/dirname-Z2ZMOOW2.js +2 -0
- package/dist/bundle/chunks/du-7AZCLKR6.js +2 -0
- package/dist/bundle/chunks/echo-PLLZYM2L.js +2 -0
- package/dist/bundle/chunks/env-VUUMB47B.js +2 -0
- package/dist/bundle/chunks/expand-J3VOSOMK.js +2 -0
- package/dist/bundle/chunks/expr-XSBELPAC.js +2 -0
- package/dist/bundle/chunks/file-URNAD6FQ.js +2 -0
- package/dist/bundle/chunks/find-END3EAHV.js +2 -0
- package/dist/bundle/chunks/flag-coverage-DPSAPFXA.js +2 -0
- package/dist/bundle/chunks/fold-QJBPHRFJ.js +2 -0
- package/dist/bundle/chunks/grep-4AYF3A5J.js +2 -0
- package/dist/bundle/chunks/gzip-RQOBR22H.js +2 -0
- package/dist/bundle/chunks/head-6UIPFWVJ.js +2 -0
- package/dist/bundle/chunks/help-QDDMBDU7.js +2 -0
- package/dist/bundle/chunks/history-3N762S3K.js +2 -0
- package/dist/bundle/chunks/hostname-CESD3CQR.js +2 -0
- package/dist/bundle/chunks/html-to-markdown-PE6BPRPA.js +2 -0
- package/dist/bundle/chunks/join-C2B6NGXH.js +2 -0
- package/dist/bundle/chunks/jq-NY7PCVMH.js +2 -0
- package/dist/bundle/chunks/js-exec-XKF2B7C3.js +98 -0
- package/dist/bundle/chunks/js-exec-worker.js +4809 -0
- package/dist/bundle/chunks/ln-OPY2ZVGQ.js +2 -0
- package/dist/bundle/chunks/ls-ZPXGZX63.js +2 -0
- package/dist/bundle/chunks/md5sum-JEDX55KS.js +2 -0
- package/dist/bundle/chunks/mkdir-WDDKK2P3.js +2 -0
- package/dist/bundle/chunks/mv-ZF6UBVRB.js +2 -0
- package/dist/bundle/chunks/nl-IELOWYJG.js +2 -0
- package/dist/bundle/chunks/od-Z4AIL3P4.js +2 -0
- package/dist/bundle/chunks/paste-ZNHNSRBW.js +2 -0
- package/dist/bundle/chunks/printf-B2NSYQ3N.js +2 -0
- package/dist/bundle/chunks/pwd-76BPYV5F.js +2 -0
- package/dist/bundle/chunks/python3-F5S5TYGS.js +13 -0
- package/dist/bundle/chunks/readlink-U5OM5A3M.js +2 -0
- package/dist/bundle/chunks/rev-EPOS3MFH.js +2 -0
- package/dist/bundle/chunks/rg-NAMXBYKS.js +2 -0
- package/dist/bundle/chunks/rm-JQ4GDKDD.js +2 -0
- package/dist/bundle/chunks/rmdir-YJKPQVCK.js +2 -0
- package/dist/bundle/chunks/sed-LIRH26EA.js +2 -0
- package/dist/bundle/chunks/seq-B6KDLMYQ.js +2 -0
- package/dist/bundle/chunks/sha1sum-BLPZJ6MP.js +2 -0
- package/dist/bundle/chunks/sha256sum-VJZ4PHQ4.js +2 -0
- package/dist/bundle/chunks/sleep-PPRBTSVR.js +2 -0
- package/dist/bundle/chunks/sort-CB5GO7XH.js +2 -0
- package/dist/bundle/chunks/split-JICLAMP6.js +2 -0
- package/dist/bundle/chunks/sqlite3-4EZ4GXVD.js +2 -0
- package/dist/bundle/chunks/sqlite3-worker.js +1928 -0
- package/dist/bundle/chunks/stat-LXFZND2P.js +2 -0
- package/dist/bundle/chunks/strings-VLFTYX2Z.js +2 -0
- package/dist/bundle/chunks/tac-YXC4HBTR.js +2 -0
- package/dist/bundle/chunks/tail-UBGSN4JF.js +2 -0
- package/dist/bundle/chunks/tar-B72KU357.js +2 -0
- package/dist/bundle/chunks/tee-OOWSWHRQ.js +2 -0
- package/dist/bundle/chunks/time-NERE2JJ2.js +2 -0
- package/dist/bundle/chunks/timeout-C6WDYPLV.js +2 -0
- package/dist/bundle/chunks/touch-W4DF6Z4T.js +2 -0
- package/dist/bundle/chunks/tr-UI2LA3GA.js +2 -0
- package/dist/bundle/chunks/tree-7OOL2MH6.js +2 -0
- package/dist/bundle/chunks/true-QUBPEGGU.js +2 -0
- package/dist/bundle/chunks/unexpand-YD5BWFH4.js +2 -0
- package/dist/bundle/chunks/uniq-PAEPA27E.js +2 -0
- package/dist/bundle/chunks/wc-7WVM7GV4.js +2 -0
- package/dist/bundle/chunks/which-UWVKETYW.js +2 -0
- package/dist/bundle/chunks/whoami-KR6E7UIR.js +2 -0
- package/dist/bundle/chunks/worker.js +3330 -0
- package/dist/bundle/chunks/xan-UIGVJCMA.js +2 -0
- package/dist/bundle/chunks/xan-view-FOCYCKZQ.js +2 -0
- package/dist/bundle/chunks/xargs-VQEXRD3C.js +2 -0
- package/dist/bundle/chunks/yq-FGNXZCGX.js +2 -0
- package/dist/bundle/index.cjs +2237 -0
- package/dist/bundle/index.js +809 -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 +88 -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 +101 -0
- package/dist/commands/awk/parser2-print.d.ts +38 -0
- package/dist/commands/awk/parser2.d.ts +96 -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/compression/codec-budget.d.ts +35 -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 +23 -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 +70 -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 +53 -0
- package/dist/commands/find/parser.d.ts +2 -0
- package/dist/commands/find/types.d.ts +89 -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 +33 -0
- package/dist/commands/js-exec/js-exec.d.ts +13 -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 +27 -0
- package/dist/commands/printf/printf.d.ts +4 -0
- package/dist/commands/printf/strftime.d.ts +14 -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 +31 -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 +62 -0
- package/dist/commands/query-engine/index.d.ts +8 -0
- package/dist/commands/query-engine/json-output.d.ts +11 -0
- package/dist/commands/query-engine/parser-types.d.ts +171 -0
- package/dist/commands/query-engine/parser.d.ts +14 -0
- package/dist/commands/query-engine/path-operations.d.ts +15 -0
- package/dist/commands/query-engine/safe-object.d.ts +84 -0
- package/dist/commands/query-engine/value-operations.d.ts +44 -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 +72 -0
- package/dist/commands/search-engine/regex.d.ts +46 -0
- package/dist/commands/sed/executor.d.ts +7 -0
- package/dist/commands/sed/lexer.d.ts +88 -0
- package/dist/commands/sed/parser.d.ts +21 -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 +17 -0
- package/dist/commands/sqlite3/sqlite3.d.ts +24 -0
- package/dist/commands/sqlite3/worker.d.ts +50 -0
- package/dist/commands/sqlite3/worker.js +1928 -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 +150 -0
- package/dist/commands/tar/bzip2-compress.d.ts +18 -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 +73 -0
- package/dist/commands/worker-bridge/protocol.d.ts +141 -0
- package/dist/commands/worker-bridge/sync-backend.d.ts +86 -0
- package/dist/commands/worker-request-controller.d.ts +36 -0
- package/dist/commands/xan/aggregation.d.ts +30 -0
- package/dist/commands/xan/bounded-output.d.ts +4 -0
- package/dist/commands/xan/column-selection.d.ts +20 -0
- package/dist/commands/xan/csv.d.ts +62 -0
- package/dist/commands/xan/moonblade-parser.d.ts +89 -0
- package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
- package/dist/commands/xan/moonblade-tokenizer.d.ts +32 -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 +65 -0
- package/dist/commands/yq/yq.d.ts +13 -0
- package/dist/custom-commands.d.ts +65 -0
- package/dist/encoding.d.ts +131 -0
- package/dist/execution-output.d.ts +28 -0
- package/dist/execution-scope.d.ts +110 -0
- package/dist/fatal-execution-error.d.ts +27 -0
- package/dist/fs/encoding.d.ts +17 -0
- package/dist/fs/identity.d.ts +9 -0
- package/dist/fs/in-memory-fs/in-memory-fs.d.ts +98 -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 +255 -0
- package/dist/fs/mountable-fs/index.d.ts +1 -0
- package/dist/fs/mountable-fs/mountable-fs.d.ts +118 -0
- package/dist/fs/overlay-fs/apply.d.ts +22 -0
- package/dist/fs/overlay-fs/index.d.ts +1 -0
- package/dist/fs/overlay-fs/overlay-fs.d.ts +360 -0
- package/dist/fs/overlay-fs/overlay-tree.d.ts +188 -0
- package/dist/fs/path-utils.d.ts +48 -0
- package/dist/fs/read-write-fs/index.d.ts +1 -0
- package/dist/fs/read-write-fs/read-write-fs.d.ts +150 -0
- package/dist/fs/real-fs-utils.d.ts +90 -0
- package/dist/fs/sanitize-error.d.ts +19 -0
- package/dist/fs/traversal.d.ts +98 -0
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/interpreter/alias-expansion.d.ts +27 -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 +46 -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 +18 -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 +15 -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 +44 -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 +69 -0
- package/dist/interpreter/command-analysis.d.ts +30 -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 +161 -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 +24 -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 +17 -0
- package/dist/interpreter/expansion/pattern-replacement.d.ts +4 -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 +14 -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/fd-table.d.ts +130 -0
- package/dist/interpreter/functions.d.ts +14 -0
- package/dist/interpreter/helpers/array.d.ts +56 -0
- package/dist/interpreter/helpers/bounded-array.d.ts +2 -0
- package/dist/interpreter/helpers/condition.d.ts +19 -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 +26 -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 +41 -0
- package/dist/interpreter/helpers/shellopts.d.ts +28 -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/variable-tests.d.ts +9 -0
- package/dist/interpreter/helpers/word-matching.d.ts +16 -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 +82 -0
- package/dist/interpreter/numeric-fd-redirects.d.ts +8 -0
- package/dist/interpreter/pipeline-execution.d.ts +16 -0
- package/dist/interpreter/process-substitution.d.ts +62 -0
- package/dist/interpreter/redirections.d.ts +50 -0
- package/dist/interpreter/simple-command-assignments.d.ts +36 -0
- package/dist/interpreter/state-transaction.d.ts +7 -0
- package/dist/interpreter/subshell-group.d.ts +40 -0
- package/dist/interpreter/type-command.d.ts +37 -0
- package/dist/interpreter/types.d.ts +402 -0
- package/dist/limits.d.ts +111 -0
- package/dist/network/allow-list/shared.d.ts +49 -0
- package/dist/network/allow-list.d.ts +59 -0
- package/dist/network/dns-pin.d.ts +42 -0
- package/dist/network/fetch.d.ts +27 -0
- package/dist/network/index.d.ts +7 -0
- package/dist/network/types.d.ts +182 -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 +18 -0
- package/dist/parser/lexer.d.ts +195 -0
- package/dist/parser/parser-substitution.d.ts +85 -0
- package/dist/parser/parser.d.ts +152 -0
- package/dist/parser/types.d.ts +40 -0
- package/dist/parser/word-parser.d.ts +35 -0
- package/dist/sandbox/Command.d.ts +35 -0
- package/dist/sandbox/Sandbox.d.ts +121 -0
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/security/blocked-globals.d.ts +60 -0
- package/dist/security/defense-context.d.ts +13 -0
- package/dist/security/defense-in-depth-box.d.ts +354 -0
- package/dist/security/index.d.ts +33 -0
- package/dist/security/safe-timestamp.d.ts +1 -0
- package/dist/security/security-violation-logger.d.ts +99 -0
- package/dist/security/trusted-globals.d.ts +17 -0
- package/dist/security/types.d.ts +151 -0
- package/dist/security/violation-error-message.d.ts +3 -0
- package/dist/security/wasm-callback.d.ts +6 -0
- package/dist/security/worker-defense-in-depth.d.ts +228 -0
- package/dist/shell-metadata.d.ts +25 -0
- package/dist/source-limit.d.ts +2 -0
- package/dist/timers.d.ts +16 -0
- package/dist/transform/pipeline.d.ts +8 -0
- package/dist/transform/plugins/command-collector.d.ts +8 -0
- package/dist/transform/plugins/tee-plugin.d.ts +40 -0
- package/dist/transform/serialize.d.ts +4 -0
- package/dist/transform/types.d.ts +18 -0
- package/dist/types.d.ts +319 -0
- package/dist/utils/args.d.ts +55 -0
- package/dist/utils/constants.d.ts +15 -0
- package/dist/utils/file-reader.d.ts +76 -0
- package/dist/utils/glob.d.ts +25 -0
- package/dist/vitest-setup.d.ts +1 -0
- package/package.json +136 -0
- package/vendor/cpython-emscripten/python.cjs +2 -0
- package/vendor/cpython-emscripten/python.wasm +0 -0
- package/vendor/cpython-emscripten/python313.zip +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Matching
|
|
3
|
+
*
|
|
4
|
+
* Converts shell glob patterns to regex equivalents for pattern matching
|
|
5
|
+
* in parameter expansion (${var%pattern}, ${var/pattern/replacement}, etc.)
|
|
6
|
+
* and case statements.
|
|
7
|
+
*
|
|
8
|
+
* ## Error Handling
|
|
9
|
+
*
|
|
10
|
+
* This module follows bash's behavior for invalid patterns:
|
|
11
|
+
* - Invalid character ranges (e.g., `[z-a]`) result in regex compilation failure
|
|
12
|
+
* - Unknown POSIX classes (e.g., `[:foo:]`) produce empty match groups
|
|
13
|
+
* - Unclosed character classes (`[abc`) are treated as literal `[`
|
|
14
|
+
*
|
|
15
|
+
* Callers should wrap regex compilation in try/catch to handle invalid patterns.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Convert a shell glob pattern to a regex string.
|
|
19
|
+
* @param pattern - The glob pattern (*, ?, [...])
|
|
20
|
+
* @param greedy - Whether * should be greedy (true for suffix matching, false for prefix)
|
|
21
|
+
* @param extglob - Whether to support extended glob patterns (@(...), *(...), +(...), ?(...), !(...))
|
|
22
|
+
*/
|
|
23
|
+
export declare function patternToRegex(pattern: string, greedy: boolean, extglob?: boolean): string;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Positional Parameter Expansion Handlers
|
|
3
|
+
*
|
|
4
|
+
* Handles $@ and $* expansion with various operations:
|
|
5
|
+
* - "${@:offset}" and "${*:offset}" - slicing
|
|
6
|
+
* - "${@/pattern/replacement}" - pattern replacement
|
|
7
|
+
* - "${@#pattern}" - pattern removal (strip)
|
|
8
|
+
* - "$@" and "$*" with adjacent text
|
|
9
|
+
*/
|
|
10
|
+
import type { WordPart } from "../../ast/types.js";
|
|
11
|
+
import type { InterpreterContext } from "../types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Result type for positional parameter expansion handlers.
|
|
14
|
+
* `null` means the handler doesn't apply to this case.
|
|
15
|
+
*/
|
|
16
|
+
export type PositionalExpansionResult = {
|
|
17
|
+
values: string[];
|
|
18
|
+
quoted: boolean;
|
|
19
|
+
} | null;
|
|
20
|
+
import type { ArithExpr } from "../../ast/types.js";
|
|
21
|
+
/**
|
|
22
|
+
* Type for evaluateArithmetic function
|
|
23
|
+
*/
|
|
24
|
+
export type EvaluateArithmeticFn = (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
|
|
25
|
+
/**
|
|
26
|
+
* Type for expandPart function
|
|
27
|
+
*/
|
|
28
|
+
export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Type for expandWordPartsAsync function
|
|
31
|
+
*/
|
|
32
|
+
export type ExpandWordPartsAsyncFn = (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Handle "${@:offset}" and "${*:offset}" with Substring operations inside double quotes
|
|
35
|
+
* "${@:offset}": Each sliced positional parameter becomes a separate word
|
|
36
|
+
* "${*:offset}": All sliced params joined with IFS as ONE word
|
|
37
|
+
*/
|
|
38
|
+
export declare function handlePositionalSlicing(ctx: InterpreterContext, wordParts: WordPart[], evaluateArithmetic: EvaluateArithmeticFn, expandPart: ExpandPartFn): Promise<PositionalExpansionResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Handle "${@/pattern/replacement}" and "${* /pattern/replacement}" with PatternReplacement inside double quotes
|
|
41
|
+
* "${@/pattern/replacement}": Each positional parameter has pattern replaced, each becomes a separate word
|
|
42
|
+
* "${* /pattern/replacement}": All params joined with IFS, pattern replaced, becomes ONE word
|
|
43
|
+
*/
|
|
44
|
+
export declare function handlePositionalPatternReplacement(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn, expandWordPartsAsync: ExpandWordPartsAsyncFn): Promise<PositionalExpansionResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Handle "${@#pattern}" and "${*#pattern}" - positional parameter pattern removal (strip)
|
|
47
|
+
* "${@#pattern}": Remove shortest matching prefix from each parameter, each becomes a separate word
|
|
48
|
+
* "${@##pattern}": Remove longest matching prefix from each parameter
|
|
49
|
+
* "${@%pattern}": Remove shortest matching suffix from each parameter
|
|
50
|
+
* "${@%%pattern}": Remove longest matching suffix from each parameter
|
|
51
|
+
*/
|
|
52
|
+
export declare function handlePositionalPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn, expandWordPartsAsync: ExpandWordPartsAsyncFn): Promise<PositionalExpansionResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Handle "$@" and "$*" with adjacent text inside double quotes, e.g., "-$@-"
|
|
55
|
+
* "$@": Each positional parameter becomes a separate word, with prefix joined to first
|
|
56
|
+
* and suffix joined to last. If no params, produces nothing (or just prefix+suffix if present)
|
|
57
|
+
* "$*": All params joined with IFS as ONE word. If no params, produces one empty word.
|
|
58
|
+
*/
|
|
59
|
+
export declare function handleSimplePositionalExpansion(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn): Promise<PositionalExpansionResult>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt expansion
|
|
3
|
+
*
|
|
4
|
+
* Handles prompt escape sequences for ${var@P} transformation and PS1/PS2/PS3/PS4.
|
|
5
|
+
*/
|
|
6
|
+
import type { InterpreterContext } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Expand prompt escape sequences (${var@P} transformation)
|
|
9
|
+
* Interprets backslash escapes used in PS1, PS2, PS3, PS4 prompt strings.
|
|
10
|
+
*
|
|
11
|
+
* Supported escapes:
|
|
12
|
+
* - \a - bell (ASCII 07)
|
|
13
|
+
* - \e - escape (ASCII 033)
|
|
14
|
+
* - \n - newline
|
|
15
|
+
* - \r - carriage return
|
|
16
|
+
* - \\ - literal backslash
|
|
17
|
+
* - \$ - $ for regular user, # for root (always $ here)
|
|
18
|
+
* - \[ and \] - non-printing sequence delimiters (removed)
|
|
19
|
+
* - \u - username
|
|
20
|
+
* - \h - short hostname (up to first .)
|
|
21
|
+
* - \H - full hostname
|
|
22
|
+
* - \w - current working directory
|
|
23
|
+
* - \W - basename of current working directory
|
|
24
|
+
* - \d - date (Weekday Month Day format)
|
|
25
|
+
* - \t - time HH:MM:SS (24-hour)
|
|
26
|
+
* - \T - time HH:MM:SS (12-hour)
|
|
27
|
+
* - \@ - time HH:MM AM/PM (12-hour)
|
|
28
|
+
* - \A - time HH:MM (24-hour)
|
|
29
|
+
* - \D{format} - strftime format
|
|
30
|
+
* - \s - shell name
|
|
31
|
+
* - \v - bash version (major.minor)
|
|
32
|
+
* - \V - bash version (major.minor.patch)
|
|
33
|
+
* - \j - number of jobs
|
|
34
|
+
* - \l - terminal device basename
|
|
35
|
+
* - \# - command number
|
|
36
|
+
* - \! - history number
|
|
37
|
+
* - \NNN - octal character code
|
|
38
|
+
*/
|
|
39
|
+
export declare function expandPrompt(ctx: InterpreterContext, value: string): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quoting helpers for word expansion
|
|
3
|
+
*
|
|
4
|
+
* Handles quoting values for shell reuse (${var@Q} transformation).
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Quote a value for safe reuse as shell input (${var@Q} transformation)
|
|
8
|
+
* Uses single quotes with proper escaping for special characters.
|
|
9
|
+
* Follows bash's quoting behavior:
|
|
10
|
+
* - Simple strings without quotes: 'value'
|
|
11
|
+
* - Strings with single quotes or control characters: $'value' with \' escaping
|
|
12
|
+
*/
|
|
13
|
+
export declare function quoteValue(value: string): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tilde Expansion
|
|
3
|
+
*
|
|
4
|
+
* Functions for handling tilde (~) expansion in word expansion.
|
|
5
|
+
*/
|
|
6
|
+
import type { InterpreterContext } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Apply tilde expansion to a string.
|
|
9
|
+
* Used after brace expansion to handle cases like ~{/src,root} -> ~/src ~root -> /home/user/src /root
|
|
10
|
+
* Only expands ~ at the start of the string followed by / or end of string.
|
|
11
|
+
*/
|
|
12
|
+
export declare function applyTildeExpansion(ctx: InterpreterContext, value: string): string;
|
|
13
|
+
/** Apply assignment-context tilde expansion at the start and after each `:`. */
|
|
14
|
+
export declare function applyAssignmentTildeExpansion(ctx: InterpreterContext, value: string): string;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unquoted Expansion Handlers
|
|
3
|
+
*
|
|
4
|
+
* Handles unquoted positional parameter and array expansions:
|
|
5
|
+
* - Unquoted $@ and $* (with and without prefix/suffix)
|
|
6
|
+
* - Unquoted ${arr[@]} and ${arr[*]}
|
|
7
|
+
* - Unquoted ${@:offset} and ${*:offset} slicing
|
|
8
|
+
* - Unquoted ${@#pattern} and ${*#pattern} pattern removal
|
|
9
|
+
* - Unquoted ${arr[@]/pattern/replacement} pattern replacement
|
|
10
|
+
* - Unquoted ${arr[@]#pattern} pattern removal
|
|
11
|
+
* - Unquoted ${!prefix@} and ${!prefix*} variable name prefix expansion
|
|
12
|
+
* - Unquoted ${!arr[@]} and ${!arr[*]} array keys expansion
|
|
13
|
+
*/
|
|
14
|
+
import type { ArithExpr, WordPart } from "../../ast/types.js";
|
|
15
|
+
import type { InterpreterContext } from "../types.js";
|
|
16
|
+
/**
|
|
17
|
+
* Result type for unquoted expansion handlers.
|
|
18
|
+
* `null` means the handler doesn't apply to this case.
|
|
19
|
+
*/
|
|
20
|
+
export type UnquotedExpansionResult = {
|
|
21
|
+
values: string[];
|
|
22
|
+
quoted: boolean;
|
|
23
|
+
} | null;
|
|
24
|
+
/**
|
|
25
|
+
* Type for expandPart function reference
|
|
26
|
+
*/
|
|
27
|
+
export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Type for expandWordPartsAsync function reference
|
|
30
|
+
*/
|
|
31
|
+
export type ExpandWordPartsAsyncFn = (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
|
|
32
|
+
/**
|
|
33
|
+
* Type for evaluateArithmetic function
|
|
34
|
+
*/
|
|
35
|
+
export type EvaluateArithmeticFn = (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
|
|
36
|
+
/**
|
|
37
|
+
* Handle unquoted ${array[@]/pattern/replacement} - apply to each element
|
|
38
|
+
* This handles ${array[@]/#/prefix} (prepend) and ${array[@]/%/suffix} (append)
|
|
39
|
+
*/
|
|
40
|
+
export declare function handleUnquotedArrayPatternReplacement(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Handle unquoted ${array[@]#pattern} - apply pattern removal to each element
|
|
43
|
+
* This handles ${array[@]#pattern} (strip shortest prefix), ${array[@]##pattern} (strip longest prefix)
|
|
44
|
+
* ${array[@]%pattern} (strip shortest suffix), ${array[@]%%pattern} (strip longest suffix)
|
|
45
|
+
*/
|
|
46
|
+
export declare function handleUnquotedArrayPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Handle unquoted ${@#pattern} and ${*#pattern} - apply pattern removal to each positional parameter
|
|
49
|
+
* This handles ${@#pattern} (strip shortest prefix), ${@##pattern} (strip longest prefix)
|
|
50
|
+
* ${@%pattern} (strip shortest suffix), ${@%%pattern} (strip longest suffix)
|
|
51
|
+
*/
|
|
52
|
+
export declare function handleUnquotedPositionalPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Handle unquoted ${@:offset} and ${*:offset} (with potential prefix/suffix)
|
|
55
|
+
*/
|
|
56
|
+
export declare function handleUnquotedPositionalSlicing(ctx: InterpreterContext, wordParts: WordPart[], evaluateArithmetic: EvaluateArithmeticFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Handle unquoted $@ and $* (simple, without operations)
|
|
59
|
+
*/
|
|
60
|
+
export declare function handleUnquotedSimplePositional(ctx: InterpreterContext, wordParts: WordPart[]): Promise<UnquotedExpansionResult>;
|
|
61
|
+
/**
|
|
62
|
+
* Handle unquoted ${arr[@]} and ${arr[*]} (without operations)
|
|
63
|
+
*/
|
|
64
|
+
export declare function handleUnquotedSimpleArray(ctx: InterpreterContext, wordParts: WordPart[]): Promise<UnquotedExpansionResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Handle unquoted ${!prefix@} and ${!prefix*} (variable name prefix expansion)
|
|
67
|
+
*/
|
|
68
|
+
export declare function handleUnquotedVarNamePrefix(ctx: InterpreterContext, wordParts: WordPart[]): UnquotedExpansionResult;
|
|
69
|
+
/**
|
|
70
|
+
* Handle unquoted ${!arr[@]} and ${!arr[*]} (array keys/indices expansion)
|
|
71
|
+
*/
|
|
72
|
+
export declare function handleUnquotedArrayKeys(ctx: InterpreterContext, wordParts: WordPart[]): UnquotedExpansionResult;
|
|
73
|
+
/**
|
|
74
|
+
* Handle unquoted $@ or $* with prefix/suffix (e.g., =$@= or =$*=)
|
|
75
|
+
*/
|
|
76
|
+
export declare function handleUnquotedPositionalWithPrefixSuffix(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
|
|
@@ -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,36 @@
|
|
|
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
|
+
* Check if a variable is set (exists in the environment).
|
|
32
|
+
* Properly handles array subscripts (e.g., arr[0] -> arr_0).
|
|
33
|
+
* @param ctx - The interpreter context
|
|
34
|
+
* @param name - The variable name (possibly with array subscript)
|
|
35
|
+
*/
|
|
36
|
+
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,53 @@
|
|
|
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
|
+
}>;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Descriptor Table
|
|
3
|
+
*
|
|
4
|
+
* One typed view over `ctx.state.fileDescriptors`, the shell's descriptor
|
|
5
|
+
* table. The table itself stays a `Map<number, string>` because it is part
|
|
6
|
+
* of the public `CommandContext` surface — extensions read fd values as
|
|
7
|
+
* content — so this module owns the string encoding instead.
|
|
8
|
+
*
|
|
9
|
+
* Entry kinds:
|
|
10
|
+
* - `input` readable content (`N< file`, `N<<EOF`, `N<<<word`). Reading
|
|
11
|
+
* is destructive: the remaining content is written back, so
|
|
12
|
+
* successive `read -u N` calls advance a shared position.
|
|
13
|
+
* - `output` a file opened for writing (`N> file`, `N>> file`).
|
|
14
|
+
* - `readwrite` `N<> file` — content plus an explicit read position.
|
|
15
|
+
* - `dup-out` fd duplicated from stdout/stderr (`N>&1`).
|
|
16
|
+
* - `dup-in` fd duplicated from stdin (`N<&0`).
|
|
17
|
+
*
|
|
18
|
+
* An `input` entry is stored verbatim, so its content can look exactly like
|
|
19
|
+
* one of the marker encodings (a file whose first line is `__file__:/x`).
|
|
20
|
+
* `inputFds` records which descriptors hold content, so the markers are
|
|
21
|
+
* never guessed at for a descriptor this module opened; the prefix sniffing
|
|
22
|
+
* in {@link decodeFdEntry} is only a fallback for descriptors written by
|
|
23
|
+
* older code paths.
|
|
24
|
+
*/
|
|
25
|
+
import type { InterpreterContext } from "./types.js";
|
|
26
|
+
/** Lowest descriptor a script may open by number. 0/1/2 are the std streams. */
|
|
27
|
+
export declare const FIRST_USER_FD = 3;
|
|
28
|
+
export type FdEntry = {
|
|
29
|
+
kind: "input";
|
|
30
|
+
content: string;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "output";
|
|
33
|
+
path: string;
|
|
34
|
+
append: boolean;
|
|
35
|
+
} | {
|
|
36
|
+
kind: "readwrite";
|
|
37
|
+
path: string;
|
|
38
|
+
position: number;
|
|
39
|
+
content: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "dup-out";
|
|
42
|
+
sourceFd: number;
|
|
43
|
+
} | {
|
|
44
|
+
kind: "dup-in";
|
|
45
|
+
sourceFd: number;
|
|
46
|
+
} | {
|
|
47
|
+
kind: "closed";
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* A descriptor's raw value, whether it is known to hold content, and which
|
|
51
|
+
* other descriptors shared its open file description.
|
|
52
|
+
*/
|
|
53
|
+
interface FdSnapshotEntry {
|
|
54
|
+
raw: string | undefined;
|
|
55
|
+
isInput: boolean;
|
|
56
|
+
aliases: number[];
|
|
57
|
+
}
|
|
58
|
+
/** Descriptor state captured by {@link rememberFd}, replayed by
|
|
59
|
+
* {@link restoreFds}. */
|
|
60
|
+
export type FdSnapshot = Map<number, FdSnapshotEntry>;
|
|
61
|
+
/**
|
|
62
|
+
* Decode a raw table value into a typed entry.
|
|
63
|
+
* Callers that know the descriptor holds content should go through
|
|
64
|
+
* {@link getFdEntry}, which consults `inputFds` first and never guesses.
|
|
65
|
+
*/
|
|
66
|
+
export declare function decodeFdEntry(raw: string): FdEntry;
|
|
67
|
+
/** Encode a typed entry back into its raw table value. */
|
|
68
|
+
export declare function encodeFdEntry(entry: FdEntry): string;
|
|
69
|
+
export declare function getFdAliasMembers(ctx: InterpreterContext, fd: number): number[];
|
|
70
|
+
/** Raw table value for `fd`, or undefined when the fd is not open. */
|
|
71
|
+
export declare function getRawFd(ctx: InterpreterContext, fd: number): string | undefined;
|
|
72
|
+
/** Typed entry for `fd`, or undefined when the fd is not open. */
|
|
73
|
+
export declare function getFdEntry(ctx: InterpreterContext, fd: number): FdEntry | undefined;
|
|
74
|
+
export declare function isFdOpen(ctx: InterpreterContext, fd: number): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Store a raw value, charging the descriptor limit for newly opened fds.
|
|
77
|
+
* Opening a descriptor gives it a NEW open file description, so it stops
|
|
78
|
+
* sharing an offset with anything it was previously duplicated from —
|
|
79
|
+
* `exec 4<&3; exec 4< other` leaves fd 3 alone.
|
|
80
|
+
*/
|
|
81
|
+
export declare function setRawFd(ctx: InterpreterContext, fd: number, raw: string, isInput?: boolean): void;
|
|
82
|
+
export declare function setFdEntry(ctx: InterpreterContext, fd: number, entry: FdEntry): void;
|
|
83
|
+
export declare function closeFd(ctx: InterpreterContext, fd: number): void;
|
|
84
|
+
/**
|
|
85
|
+
* Point `fd` at whatever `sourceFd` refers to, the way `dup2()` does: the raw
|
|
86
|
+
* value and its content/marker classification are copied, and the two
|
|
87
|
+
* descriptors join one alias group so they share a read offset from here on.
|
|
88
|
+
* Returns false when `sourceFd` is not open.
|
|
89
|
+
*/
|
|
90
|
+
export declare function dupFd(ctx: InterpreterContext, fd: number, sourceFd: number): boolean;
|
|
91
|
+
export declare function moveFd(ctx: InterpreterContext, fd: number, sourceFd: number): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Readable bytes remaining on `fd`.
|
|
94
|
+
* Returns a reason instead of content when the fd cannot be read from, so
|
|
95
|
+
* callers can pick the diagnostic bash uses for their context.
|
|
96
|
+
*/
|
|
97
|
+
export declare function readFd(ctx: InterpreterContext, fd: number): {
|
|
98
|
+
content: string;
|
|
99
|
+
} | {
|
|
100
|
+
error: "not-open" | "write-only";
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Advance the read position of `fd` by `count` characters.
|
|
104
|
+
* `input` entries keep only the unread remainder, matching bash's single
|
|
105
|
+
* shared file offset: every later read continues where this one stopped —
|
|
106
|
+
* including reads through a descriptor duplicated from this one, which
|
|
107
|
+
* shares the same open file description.
|
|
108
|
+
*/
|
|
109
|
+
export declare function advanceFd(ctx: InterpreterContext, fd: number, count: number): void;
|
|
110
|
+
export declare function writeFdEntry(ctx: InterpreterContext, entry: FdEntry, descriptors: number[], content: string, encoding: "binary" | "utf8"): Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Record `fd`'s current state into `snapshot`, unless it is already there —
|
|
113
|
+
* the FIRST value seen is the one a later {@link restoreFds} puts back.
|
|
114
|
+
* A `raw` of `undefined` records "was not open".
|
|
115
|
+
*/
|
|
116
|
+
export declare function rememberFd(ctx: InterpreterContext, snapshot: FdSnapshot, fd: number): void;
|
|
117
|
+
/**
|
|
118
|
+
* Snapshot the given descriptors so a scoped redirection can put the table
|
|
119
|
+
* back the way it found it.
|
|
120
|
+
*/
|
|
121
|
+
export declare function snapshotFds(ctx: InterpreterContext, fds: Iterable<number>): FdSnapshot;
|
|
122
|
+
/**
|
|
123
|
+
* Undo the descriptor changes recorded by {@link rememberFd}.
|
|
124
|
+
*
|
|
125
|
+
* Only the descriptor is restored, never the file offset behind it: a
|
|
126
|
+
* command that read through `4<&3` has moved the shared description, and
|
|
127
|
+
* bash leaves fd 3 where that read left it once fd 4 is taken back down.
|
|
128
|
+
*/
|
|
129
|
+
export declare function restoreFds(ctx: InterpreterContext, snapshot: FdSnapshot): void;
|
|
130
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
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?: string, callLine?: number,
|
|
13
|
+
/** A redirection on the call site (`f < file`) gave the function its own fd 0. */
|
|
14
|
+
stdinRedirected?: boolean): Promise<ExecResult>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array helper functions for the interpreter.
|
|
3
|
+
*/
|
|
4
|
+
import type { WordNode } from "../../ast/types.js";
|
|
5
|
+
import type { InterpreterContext, ShellArray } from "../types.js";
|
|
6
|
+
export declare function cloneArray(array: ShellArray): ShellArray;
|
|
7
|
+
export declare function cloneArrays(arrays: Map<string, ShellArray> | undefined): Map<string, ShellArray>;
|
|
8
|
+
export declare function getArray(ctx: InterpreterContext, arrayName: string): ShellArray | undefined;
|
|
9
|
+
export declare function ensureArray(ctx: InterpreterContext, arrayName: string, kind?: "indexed" | "associative"): ShellArray;
|
|
10
|
+
export declare function setArrayKind(ctx: InterpreterContext, arrayName: string, kind: "indexed" | "associative"): ShellArray;
|
|
11
|
+
export declare function hasArray(ctx: InterpreterContext, arrayName: string): boolean;
|
|
12
|
+
export declare function getArrayElement(ctx: InterpreterContext, arrayName: string, key: string | number): string | undefined;
|
|
13
|
+
export declare function hasArrayElement(ctx: InterpreterContext, arrayName: string, key: string | number): boolean;
|
|
14
|
+
export declare function setArrayElement(ctx: InterpreterContext, arrayName: string, key: string | number, value: string, kind?: "indexed" | "associative"): void;
|
|
15
|
+
/** Prove a batch of distinct keys fits before any persistent mutation. */
|
|
16
|
+
export declare function assertArrayKeysFit(ctx: InterpreterContext, arrayName: string, keys: Iterable<string | number>, replace?: boolean): void;
|
|
17
|
+
export declare function deleteArrayElement(ctx: InterpreterContext, arrayName: string, key: string | number): boolean;
|
|
18
|
+
export declare function deleteArray(ctx: InterpreterContext, arrayName: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get all indices of an array, sorted in ascending order.
|
|
21
|
+
* Indexed arrays are held in dedicated structured interpreter state.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getArrayIndices(ctx: InterpreterContext, arrayName: string): number[];
|
|
24
|
+
/**
|
|
25
|
+
* Clear all elements of an array from the environment.
|
|
26
|
+
*/
|
|
27
|
+
export declare function clearArray(ctx: InterpreterContext, arrayName: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get all keys of an associative array.
|
|
30
|
+
* Associative keys are retained exactly in the array element map.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAssocArrayKeys(ctx: InterpreterContext, arrayName: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Remove surrounding quotes from a key string.
|
|
35
|
+
* Handles 'key' and "key" → key
|
|
36
|
+
*/
|
|
37
|
+
export declare function unquoteKey(key: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Parse a keyed array element from an AST WordNode like [key]=value or [key]+=value.
|
|
40
|
+
* Returns { key, valueParts, append } where valueParts are the AST parts for the value.
|
|
41
|
+
* Returns null if not a keyed element pattern.
|
|
42
|
+
*
|
|
43
|
+
* This is used to properly expand variables in the value part of keyed elements.
|
|
44
|
+
*/
|
|
45
|
+
export interface ParsedKeyedElement {
|
|
46
|
+
key: string;
|
|
47
|
+
valueParts: WordNode["parts"];
|
|
48
|
+
append: boolean;
|
|
49
|
+
}
|
|
50
|
+
export declare function parseKeyedElementFromWord(word: WordNode): ParsedKeyedElement | null;
|
|
51
|
+
/**
|
|
52
|
+
* Extract literal string content from a Word node (without expansion).
|
|
53
|
+
* This is used for parsing associative array element syntax like [key]=value
|
|
54
|
+
* where the [key] part may be parsed as a Glob.
|
|
55
|
+
*/
|
|
56
|
+
export declare function wordToLiteralString(word: WordNode): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
export type ConditionResult = Pick<ExecResult, "stdout" | "stderr" | "exitCode" | "internalOutputAccounting">;
|
|
11
|
+
/**
|
|
12
|
+
* Execute condition statements with inCondition flag set.
|
|
13
|
+
* This prevents errexit from triggering during condition evaluation.
|
|
14
|
+
*
|
|
15
|
+
* @param ctx - Interpreter context
|
|
16
|
+
* @param statements - Condition statements to execute
|
|
17
|
+
* @returns Accumulated stdout, stderr, and final exit code
|
|
18
|
+
*/
|
|
19
|
+
export declare function executeCondition(ctx: InterpreterContext, statements: StatementNode[]): Promise<ConditionResult>;
|