just-bash 1.2.5 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ast/types.d.ts +2 -0
- package/dist/bin/chunks/{alias-74DFXE2E.js → alias-ZAQAKC5X.js} +1 -1
- package/dist/bin/chunks/{awk2-4DKPX43H.js → awk2-A73ZNFXJ.js} +1 -1
- package/dist/bin/chunks/base64-JPITV4MD.js +6 -0
- package/dist/bin/chunks/{basename-Y7JDBYHN.js → basename-IYEP3AMY.js} +1 -1
- package/dist/bin/{shell/chunks/bash-5IWSVGHN.js → chunks/bash-WZYHIZP6.js} +1 -1
- package/dist/bin/{shell/chunks/cat-YZXBF5YF.js → chunks/cat-XILYL7NW.js} +1 -1
- package/dist/bin/chunks/{chmod-3G4LK462.js → chmod-EXWX4N7Y.js} +1 -1
- package/dist/bin/chunks/chunk-GX4MPCG6.js +9 -0
- package/dist/bin/chunks/chunk-SJXDWN5X.js +2 -0
- package/dist/bin/{shell/chunks/clear-GTCFHSB2.js → chunks/clear-2APRIRCF.js} +1 -1
- package/dist/bin/chunks/comm-KY3COLF5.js +13 -0
- package/dist/bin/{shell/chunks/cp-77UY7PGN.js → chunks/cp-HES4UN7K.js} +1 -1
- package/dist/bin/chunks/{curl-NE7XEWMN.js → curl-BN5M3BUX.js} +1 -1
- package/dist/bin/chunks/{cut-UYV3FM7R.js → cut-JSIPAKOX.js} +1 -1
- package/dist/bin/chunks/{date-7NBRXV2Z.js → date-CU4J7GHI.js} +1 -1
- package/dist/bin/chunks/{diff-TG2NXCX2.js → diff-W4JRNHXW.js} +1 -1
- package/dist/bin/chunks/{dirname-VLHP44TU.js → dirname-UTCUUILN.js} +1 -1
- package/dist/bin/chunks/{du-4FZ7WF2P.js → du-2JU3PUTM.js} +1 -1
- package/dist/bin/chunks/{echo-DEUIS5JO.js → echo-HKLPYMNC.js} +1 -1
- package/dist/bin/chunks/{env-AKGX6HSG.js → env-2SBJNP7X.js} +1 -1
- package/dist/bin/chunks/{expr-HA2ZNL6S.js → expr-M74QZQ6C.js} +1 -1
- package/dist/bin/chunks/file-QPD3U2H7.js +23 -0
- package/dist/bin/{shell/chunks/find-JADNFF7V.js → chunks/find-D3ZC5DXH.js} +1 -1
- package/dist/bin/chunks/grep-BEZRXAWL.js +15 -0
- package/dist/bin/{shell/chunks/head-VGXR3WWL.js → chunks/head-YGMY3DHE.js} +1 -1
- package/dist/bin/chunks/{help-YQGNAT2T.js → help-UEF7LW7F.js} +1 -1
- package/dist/bin/{shell/chunks/history-PRQ4B6N2.js → chunks/history-OGBCIAR5.js} +1 -1
- package/dist/bin/chunks/{html-to-markdown-L4UWMK4S.js → html-to-markdown-HTGML4TH.js} +1 -1
- package/dist/bin/chunks/jq-ME57VHK6.js +14 -0
- package/dist/bin/chunks/{ln-DB7J2W5X.js → ln-RUR4ALOJ.js} +1 -1
- package/dist/bin/{shell/chunks/ls-C4MPAF3H.js → chunks/ls-GU5227KE.js} +1 -1
- package/dist/bin/chunks/md5sum-C7WDEYN5.js +2 -0
- package/dist/bin/chunks/{mkdir-LWULWDHP.js → mkdir-4OYU22AA.js} +1 -1
- package/dist/bin/chunks/{mv-TDYCNSIQ.js → mv-H3S4FEWR.js} +1 -1
- package/dist/bin/chunks/{paste-R36J3G4K.js → paste-HHCFASL4.js} +1 -1
- package/dist/bin/chunks/{printf-WM4X6IZ6.js → printf-2JFCUFOA.js} +1 -1
- package/dist/bin/chunks/{pwd-X4MWD4JP.js → pwd-T5Q3JEBO.js} +1 -1
- package/dist/bin/chunks/{readlink-DPNOQY67.js → readlink-M44TLMFS.js} +1 -1
- package/dist/bin/chunks/{rm-W6CCBEMG.js → rm-R4M647EC.js} +1 -1
- package/dist/bin/chunks/{sed-LTCVBSRV.js → sed-QLLAZYHH.js} +1 -1
- package/dist/bin/chunks/{seq-DGJILX2Q.js → seq-GJMQM7SP.js} +1 -1
- package/dist/bin/chunks/sha1sum-WKCGV66X.js +2 -0
- package/dist/bin/chunks/sha256sum-3ZDGP5WC.js +2 -0
- package/dist/bin/chunks/{sleep-E4DIYGTT.js → sleep-OJPODQGM.js} +1 -1
- package/dist/bin/chunks/sort-JL33INQB.js +16 -0
- package/dist/bin/{shell/chunks/stat-3PHITCPO.js → chunks/stat-CR2INBC2.js} +1 -1
- package/dist/bin/chunks/{tail-YSVKBQ77.js → tail-BYPLMYMZ.js} +1 -1
- package/dist/bin/chunks/{tee-UU2VS3OM.js → tee-HOMRRC3X.js} +1 -1
- package/dist/bin/chunks/{timeout-RP2AJGMV.js → timeout-MYKG34DQ.js} +1 -1
- package/dist/bin/{shell/chunks/touch-XCIAYF5I.js → chunks/touch-3ZANYAXI.js} +1 -1
- package/dist/bin/chunks/{tr-2EEKHHO6.js → tr-E66N7IS2.js} +1 -1
- package/dist/bin/chunks/{tree-4247W67O.js → tree-EE2PYIMV.js} +1 -1
- package/dist/bin/chunks/{true-JCX733LK.js → true-OWPVS7U4.js} +1 -1
- package/dist/bin/chunks/{uniq-W4HF6YSB.js → uniq-F5NP3LLU.js} +1 -1
- package/dist/bin/chunks/{wc-CNJ3QDRA.js → wc-NBMNJDZL.js} +1 -1
- package/dist/bin/chunks/{which-HX2NMOP3.js → which-6MRG2UCF.js} +1 -1
- package/dist/bin/chunks/xargs-EMY5BOJ2.js +4 -0
- package/dist/bin/just-bash.js +124 -116
- package/dist/bin/shell/chunks/{alias-74DFXE2E.js → alias-ZAQAKC5X.js} +1 -1
- package/dist/bin/shell/chunks/{awk2-4DKPX43H.js → awk2-A73ZNFXJ.js} +1 -1
- package/dist/bin/shell/chunks/base64-JPITV4MD.js +6 -0
- package/dist/bin/shell/chunks/{basename-Y7JDBYHN.js → basename-IYEP3AMY.js} +1 -1
- package/dist/bin/{chunks/bash-5IWSVGHN.js → shell/chunks/bash-WZYHIZP6.js} +1 -1
- package/dist/bin/{chunks/cat-YZXBF5YF.js → shell/chunks/cat-XILYL7NW.js} +1 -1
- package/dist/bin/shell/chunks/{chmod-3G4LK462.js → chmod-EXWX4N7Y.js} +1 -1
- package/dist/bin/shell/chunks/chunk-GX4MPCG6.js +9 -0
- package/dist/bin/shell/chunks/chunk-SJXDWN5X.js +2 -0
- package/dist/bin/{chunks/clear-GTCFHSB2.js → shell/chunks/clear-2APRIRCF.js} +1 -1
- package/dist/bin/shell/chunks/comm-KY3COLF5.js +13 -0
- package/dist/bin/{chunks/cp-77UY7PGN.js → shell/chunks/cp-HES4UN7K.js} +1 -1
- package/dist/bin/shell/chunks/{curl-NE7XEWMN.js → curl-BN5M3BUX.js} +1 -1
- package/dist/bin/shell/chunks/{cut-UYV3FM7R.js → cut-JSIPAKOX.js} +1 -1
- package/dist/bin/shell/chunks/{date-7NBRXV2Z.js → date-CU4J7GHI.js} +1 -1
- package/dist/bin/shell/chunks/{diff-TG2NXCX2.js → diff-W4JRNHXW.js} +1 -1
- package/dist/bin/shell/chunks/{dirname-VLHP44TU.js → dirname-UTCUUILN.js} +1 -1
- package/dist/bin/shell/chunks/{du-4FZ7WF2P.js → du-2JU3PUTM.js} +1 -1
- package/dist/bin/shell/chunks/{echo-DEUIS5JO.js → echo-HKLPYMNC.js} +1 -1
- package/dist/bin/shell/chunks/{env-AKGX6HSG.js → env-2SBJNP7X.js} +1 -1
- package/dist/bin/shell/chunks/{expr-HA2ZNL6S.js → expr-M74QZQ6C.js} +1 -1
- package/dist/bin/shell/chunks/file-QPD3U2H7.js +23 -0
- package/dist/bin/{chunks/find-JADNFF7V.js → shell/chunks/find-D3ZC5DXH.js} +1 -1
- package/dist/bin/shell/chunks/grep-BEZRXAWL.js +15 -0
- package/dist/bin/{chunks/head-VGXR3WWL.js → shell/chunks/head-YGMY3DHE.js} +1 -1
- package/dist/bin/shell/chunks/{help-YQGNAT2T.js → help-UEF7LW7F.js} +1 -1
- package/dist/bin/{chunks/history-PRQ4B6N2.js → shell/chunks/history-OGBCIAR5.js} +1 -1
- package/dist/bin/shell/chunks/{html-to-markdown-L4UWMK4S.js → html-to-markdown-HTGML4TH.js} +1 -1
- package/dist/bin/shell/chunks/jq-ME57VHK6.js +14 -0
- package/dist/bin/shell/chunks/{ln-DB7J2W5X.js → ln-RUR4ALOJ.js} +1 -1
- package/dist/bin/{chunks/ls-C4MPAF3H.js → shell/chunks/ls-GU5227KE.js} +1 -1
- package/dist/bin/shell/chunks/md5sum-C7WDEYN5.js +2 -0
- package/dist/bin/shell/chunks/{mkdir-LWULWDHP.js → mkdir-4OYU22AA.js} +1 -1
- package/dist/bin/shell/chunks/{mv-TDYCNSIQ.js → mv-H3S4FEWR.js} +1 -1
- package/dist/bin/shell/chunks/{paste-R36J3G4K.js → paste-HHCFASL4.js} +1 -1
- package/dist/bin/shell/chunks/{printf-WM4X6IZ6.js → printf-2JFCUFOA.js} +1 -1
- package/dist/bin/shell/chunks/{pwd-X4MWD4JP.js → pwd-T5Q3JEBO.js} +1 -1
- package/dist/bin/shell/chunks/{readlink-DPNOQY67.js → readlink-M44TLMFS.js} +1 -1
- package/dist/bin/shell/chunks/{rm-W6CCBEMG.js → rm-R4M647EC.js} +1 -1
- package/dist/bin/shell/chunks/{sed-LTCVBSRV.js → sed-QLLAZYHH.js} +1 -1
- package/dist/bin/shell/chunks/{seq-DGJILX2Q.js → seq-GJMQM7SP.js} +1 -1
- package/dist/bin/shell/chunks/sha1sum-WKCGV66X.js +2 -0
- package/dist/bin/shell/chunks/sha256sum-3ZDGP5WC.js +2 -0
- package/dist/bin/shell/chunks/{sleep-E4DIYGTT.js → sleep-OJPODQGM.js} +1 -1
- package/dist/bin/shell/chunks/sort-JL33INQB.js +16 -0
- package/dist/bin/{chunks/stat-3PHITCPO.js → shell/chunks/stat-CR2INBC2.js} +1 -1
- package/dist/bin/shell/chunks/{tail-YSVKBQ77.js → tail-BYPLMYMZ.js} +1 -1
- package/dist/bin/shell/chunks/{tee-UU2VS3OM.js → tee-HOMRRC3X.js} +1 -1
- package/dist/bin/shell/chunks/{timeout-RP2AJGMV.js → timeout-MYKG34DQ.js} +1 -1
- package/dist/bin/{chunks/touch-XCIAYF5I.js → shell/chunks/touch-3ZANYAXI.js} +1 -1
- package/dist/bin/shell/chunks/{tr-2EEKHHO6.js → tr-E66N7IS2.js} +1 -1
- package/dist/bin/shell/chunks/{tree-4247W67O.js → tree-EE2PYIMV.js} +1 -1
- package/dist/bin/shell/chunks/{true-JCX733LK.js → true-OWPVS7U4.js} +1 -1
- package/dist/bin/shell/chunks/{uniq-W4HF6YSB.js → uniq-F5NP3LLU.js} +1 -1
- package/dist/bin/shell/chunks/{wc-CNJ3QDRA.js → wc-NBMNJDZL.js} +1 -1
- package/dist/bin/shell/chunks/{which-HX2NMOP3.js → which-6MRG2UCF.js} +1 -1
- package/dist/bin/shell/chunks/xargs-EMY5BOJ2.js +4 -0
- package/dist/bin/shell/shell.js +107 -99
- package/dist/bundle/ai/index.js +442 -393
- package/dist/bundle/chunks/{alias-7ZSTROM7.js → alias-JFIUWFGE.js} +1 -1
- package/dist/{bin/chunks/awk2-UYU2UYZ2.js → bundle/chunks/awk2-QWBT4IFJ.js} +1 -2
- package/dist/bundle/chunks/base64-TUA2XORD.js +5 -0
- package/dist/bundle/chunks/{basename-SB5JXIY3.js → basename-5UVU5RXR.js} +1 -1
- package/dist/bundle/chunks/{bash-5WG5RD6L.js → bash-BASUPKHJ.js} +1 -1
- package/dist/bundle/chunks/cat-47EP4IAV.js +5 -0
- package/dist/bundle/chunks/{chmod-VLKWIL3N.js → chmod-XJXFAD4M.js} +1 -1
- package/dist/bundle/chunks/chunk-2RUN43TJ.js +1 -0
- package/dist/bundle/chunks/chunk-46TSKXFW.js +8 -0
- package/dist/bundle/chunks/clear-XD3TJRVQ.js +1 -0
- package/dist/bundle/chunks/comm-KSJ4BBRQ.js +12 -0
- package/dist/bundle/chunks/cp-37OVLNLD.js +7 -0
- package/dist/bundle/chunks/{curl-PA2MWGKN.js → curl-C43O5WQS.js} +1 -1
- package/dist/bundle/chunks/cut-FIZRELKC.js +5 -0
- package/dist/bundle/chunks/{date-YOOSNZVA.js → date-NN5C354M.js} +1 -1
- package/dist/bundle/chunks/diff-GLRVCAKJ.js +6 -0
- package/dist/bundle/chunks/dirname-U2KVUSQY.js +4 -0
- package/dist/bundle/chunks/du-KRAFOIQK.js +7 -0
- package/dist/bundle/chunks/{echo-W2TA2N7Y.js → echo-WUKBESC7.js} +1 -1
- package/dist/bundle/chunks/env-MSPSPGCD.js +8 -0
- package/dist/bundle/chunks/{expr-A4LJAGVP.js → expr-HYOCSWK6.js} +1 -1
- package/dist/bundle/chunks/file-LQXX6P4Y.js +22 -0
- package/dist/{bin/shell/chunks/find-NCI6KGUI.js → bundle/chunks/find-R6LJIRBI.js} +1 -2
- package/dist/bundle/chunks/grep-ZJVDG3FA.js +14 -0
- package/dist/bundle/chunks/head-6PAUYCDP.js +1 -0
- package/dist/{bin/shell/chunks/help-5V3MPCYQ.js → bundle/chunks/help-5E6PYJWQ.js} +3 -4
- package/dist/bundle/chunks/history-SG6VRATI.js +2 -0
- package/dist/bundle/chunks/html-to-markdown-ZSZ34PAN.js +4 -0
- package/dist/bundle/chunks/jq-ABWUP4LV.js +13 -0
- package/dist/bundle/chunks/ln-XFYHBIFL.js +9 -0
- package/dist/bundle/chunks/{ls-B7C35UDO.js → ls-JGYJQA2Y.js} +1 -1
- package/dist/bundle/chunks/md5sum-PIH6F3O3.js +1 -0
- package/dist/bundle/chunks/{mkdir-WYI2LJ6H.js → mkdir-HA2FJX4O.js} +1 -1
- package/dist/bundle/chunks/mv-7I62SB3I.js +6 -0
- package/dist/bundle/chunks/paste-QBGVCQFT.js +7 -0
- package/dist/bundle/chunks/{printf-O2UW73XK.js → printf-HBP44PXI.js} +1 -1
- package/dist/bundle/chunks/pwd-CEF235GL.js +2 -0
- package/dist/bundle/chunks/readlink-MQIMKDSA.js +6 -0
- package/dist/bundle/chunks/{rm-5X2XSQQ6.js → rm-NF3FNLAY.js} +1 -1
- package/dist/{bin/shell/chunks/sed-B6FXUN7R.js → bundle/chunks/sed-H2RWPMTM.js} +1 -2
- package/dist/bundle/chunks/{seq-TFPZQZPJ.js → seq-VKYIUOPJ.js} +1 -1
- package/dist/bundle/chunks/sha1sum-HVHNZSEC.js +1 -0
- package/dist/bundle/chunks/sha256sum-REOOJORK.js +1 -0
- package/dist/bundle/chunks/{sleep-QJBQD6VS.js → sleep-AFN3PHJW.js} +1 -1
- package/dist/bundle/chunks/sort-XODGFZC4.js +15 -0
- package/dist/bundle/chunks/{stat-TM5F5YO4.js → stat-FVFLDQGP.js} +1 -1
- package/dist/bundle/chunks/tail-QXKYHAML.js +1 -0
- package/dist/bundle/chunks/tee-W5HCCBPO.js +2 -0
- package/dist/bundle/chunks/{timeout-VG2N46UR.js → timeout-XAA3N7CF.js} +1 -1
- package/dist/bundle/chunks/{touch-Z5XRYFYY.js → touch-FOE745V2.js} +1 -1
- package/dist/bundle/chunks/{tr-UV4V27RJ.js → tr-LMLGE4IE.js} +1 -1
- package/dist/bundle/chunks/{tree-75UXQ4XJ.js → tree-WBUGLVP5.js} +1 -1
- package/dist/bundle/chunks/true-6LGCG4EY.js +1 -0
- package/dist/bundle/chunks/uniq-7PFWPNWK.js +4 -0
- package/dist/bundle/chunks/wc-GV5WUREX.js +5 -0
- package/dist/bundle/chunks/which-KHFYPBWW.js +2 -0
- package/dist/bundle/chunks/xargs-NQBNFMCT.js +3 -0
- package/dist/bundle/index.js +120 -112
- package/dist/commands/comm/comm.d.ts +10 -0
- package/dist/commands/file/file.d.ts +7 -0
- package/dist/commands/md5sum/checksum.d.ts +7 -0
- package/dist/commands/{awk/awk.d.ts → md5sum/md5sum.d.ts} +1 -1
- package/dist/commands/md5sum/sha1sum.d.ts +2 -0
- package/dist/commands/md5sum/sha256sum.d.ts +2 -0
- package/dist/commands/registry.d.ts +1 -1
- package/dist/commands/sort/types.d.ts +12 -0
- package/dist/interpreter/types.d.ts +6 -0
- package/dist/shell-metadata.d.ts +28 -0
- package/package.json +2 -1
- package/dist/bin/chunks/awk-S63F6IYK.js +0 -15
- package/dist/bin/chunks/awk2-6XCE67AX.js +0 -20
- package/dist/bin/chunks/awk2-DKAZ7LPG.js +0 -20
- package/dist/bin/chunks/awk2-GAJ72X3Z.js +0 -20
- package/dist/bin/chunks/awk2-HJAPWU2N.js +0 -18
- package/dist/bin/chunks/awk2-LVXC5OAC.js +0 -20
- package/dist/bin/chunks/awk2-T6HR4EYO.js +0 -20
- package/dist/bin/chunks/awk2-W64AZN7P.js +0 -20
- package/dist/bin/chunks/base64-NC7HTKLZ.js +0 -5
- package/dist/bin/chunks/bash-TQGTNXAE.js +0 -7
- package/dist/bin/chunks/chunk-5KNEBKYN.js +0 -2
- package/dist/bin/chunks/chunk-6QUZ7QML.js +0 -3
- package/dist/bin/chunks/chunk-LV662IGP.js +0 -6
- package/dist/bin/chunks/env-FVITWNHG.js +0 -9
- package/dist/bin/chunks/find-4B67H4RP.js +0 -11
- package/dist/bin/chunks/find-7BUNQZX4.js +0 -11
- package/dist/bin/chunks/find-AMA6ABN5.js +0 -11
- package/dist/bin/chunks/find-HW2TUO6B.js +0 -11
- package/dist/bin/chunks/find-NCI6KGUI.js +0 -11
- package/dist/bin/chunks/find-QEYP42JQ.js +0 -11
- package/dist/bin/chunks/find-WJV3FM6L.js +0 -11
- package/dist/bin/chunks/find-YATLECXJ.js +0 -11
- package/dist/bin/chunks/grep-OVWU4WCZ.js +0 -15
- package/dist/bin/chunks/grep-PHBFGJCV.js +0 -15
- package/dist/bin/chunks/help-5V3MPCYQ.js +0 -16
- package/dist/bin/chunks/jq-EYSXBSCP.js +0 -14
- package/dist/bin/chunks/printf-ASOYDPIK.js +0 -14
- package/dist/bin/chunks/printf-BOFQVMMK.js +0 -15
- package/dist/bin/chunks/sed-7IS44XON.js +0 -48
- package/dist/bin/chunks/sed-B6FXUN7R.js +0 -80
- package/dist/bin/chunks/sed-RHLDIXPL.js +0 -76
- package/dist/bin/chunks/sed-SYSATJXR.js +0 -75
- package/dist/bin/chunks/sort-UJP353TM.js +0 -15
- package/dist/bin/chunks/timeout-OZVAGW2H.js +0 -12
- package/dist/bin/chunks/xargs-DKUAYNEK.js +0 -4
- package/dist/bin/chunks/xargs-YNLVLPOF.js +0 -4
- package/dist/bin/shell/chunks/awk-S63F6IYK.js +0 -15
- package/dist/bin/shell/chunks/awk2-6XCE67AX.js +0 -20
- package/dist/bin/shell/chunks/awk2-DKAZ7LPG.js +0 -20
- package/dist/bin/shell/chunks/awk2-GAJ72X3Z.js +0 -20
- package/dist/bin/shell/chunks/awk2-HJAPWU2N.js +0 -18
- package/dist/bin/shell/chunks/awk2-LVXC5OAC.js +0 -20
- package/dist/bin/shell/chunks/awk2-T6HR4EYO.js +0 -20
- package/dist/bin/shell/chunks/awk2-UYU2UYZ2.js +0 -20
- package/dist/bin/shell/chunks/awk2-W64AZN7P.js +0 -20
- package/dist/bin/shell/chunks/base64-NC7HTKLZ.js +0 -5
- package/dist/bin/shell/chunks/bash-TQGTNXAE.js +0 -7
- package/dist/bin/shell/chunks/chunk-5KNEBKYN.js +0 -2
- package/dist/bin/shell/chunks/chunk-6QUZ7QML.js +0 -3
- package/dist/bin/shell/chunks/chunk-LV662IGP.js +0 -6
- package/dist/bin/shell/chunks/env-FVITWNHG.js +0 -9
- package/dist/bin/shell/chunks/find-4B67H4RP.js +0 -11
- package/dist/bin/shell/chunks/find-7BUNQZX4.js +0 -11
- package/dist/bin/shell/chunks/find-AMA6ABN5.js +0 -11
- package/dist/bin/shell/chunks/find-HW2TUO6B.js +0 -11
- package/dist/bin/shell/chunks/find-QEYP42JQ.js +0 -11
- package/dist/bin/shell/chunks/find-WJV3FM6L.js +0 -11
- package/dist/bin/shell/chunks/find-YATLECXJ.js +0 -11
- package/dist/bin/shell/chunks/grep-OVWU4WCZ.js +0 -15
- package/dist/bin/shell/chunks/grep-PHBFGJCV.js +0 -15
- package/dist/bin/shell/chunks/jq-EYSXBSCP.js +0 -14
- package/dist/bin/shell/chunks/printf-ASOYDPIK.js +0 -14
- package/dist/bin/shell/chunks/printf-BOFQVMMK.js +0 -15
- package/dist/bin/shell/chunks/sed-7IS44XON.js +0 -48
- package/dist/bin/shell/chunks/sed-RHLDIXPL.js +0 -76
- package/dist/bin/shell/chunks/sed-SYSATJXR.js +0 -75
- package/dist/bin/shell/chunks/sort-UJP353TM.js +0 -15
- package/dist/bin/shell/chunks/timeout-OZVAGW2H.js +0 -12
- package/dist/bin/shell/chunks/xargs-DKUAYNEK.js +0 -4
- package/dist/bin/shell/chunks/xargs-YNLVLPOF.js +0 -4
- package/dist/bundle/chunks/awk-V4C3GTJI.js +0 -14
- package/dist/bundle/chunks/awk2-365HINHI.js +0 -19
- package/dist/bundle/chunks/awk2-4YCQ6UCB.js +0 -19
- package/dist/bundle/chunks/awk2-7YCFY7D2.js +0 -19
- package/dist/bundle/chunks/awk2-7YL3P4KU.js +0 -19
- package/dist/bundle/chunks/awk2-ETXZHQQ4.js +0 -19
- package/dist/bundle/chunks/awk2-FMEL7ESV.js +0 -19
- package/dist/bundle/chunks/awk2-LE4QUFGK.js +0 -19
- package/dist/bundle/chunks/awk2-MGHA6JPJ.js +0 -17
- package/dist/bundle/chunks/awk2-XEAK5PBN.js +0 -19
- package/dist/bundle/chunks/base64-WATI5PWI.js +0 -4
- package/dist/bundle/chunks/bash-T4PXVRYX.js +0 -6
- package/dist/bundle/chunks/cat-5KESXK2M.js +0 -5
- package/dist/bundle/chunks/chunk-JYYFSUWP.js +0 -5
- package/dist/bundle/chunks/chunk-TDJNT32M.js +0 -2
- package/dist/bundle/chunks/clear-ZBD2DMXN.js +0 -1
- package/dist/bundle/chunks/cp-BLHAPLQZ.js +0 -7
- package/dist/bundle/chunks/cut-7RHEYJ7Y.js +0 -5
- package/dist/bundle/chunks/diff-IVJFQANX.js +0 -6
- package/dist/bundle/chunks/dirname-Q5HDZLH2.js +0 -4
- package/dist/bundle/chunks/du-I5HYAKTQ.js +0 -7
- package/dist/bundle/chunks/env-2F2VHNYS.js +0 -8
- package/dist/bundle/chunks/env-OORA5GFS.js +0 -8
- package/dist/bundle/chunks/find-3O5V74IR.js +0 -10
- package/dist/bundle/chunks/find-4QUN2ATO.js +0 -10
- package/dist/bundle/chunks/find-522XP4ZY.js +0 -10
- package/dist/bundle/chunks/find-5UN24ZV7.js +0 -10
- package/dist/bundle/chunks/find-JXG2HF6L.js +0 -10
- package/dist/bundle/chunks/find-K3NO35MZ.js +0 -10
- package/dist/bundle/chunks/find-K7D4PKHS.js +0 -10
- package/dist/bundle/chunks/find-KP4M5DWC.js +0 -10
- package/dist/bundle/chunks/find-WM6ZETA7.js +0 -10
- package/dist/bundle/chunks/grep-3D2INI4S.js +0 -14
- package/dist/bundle/chunks/grep-CZTYKNEE.js +0 -14
- package/dist/bundle/chunks/head-7H5R4WKO.js +0 -1
- package/dist/bundle/chunks/help-SDCRRU2F.js +0 -15
- package/dist/bundle/chunks/help-XHGUXTV3.js +0 -15
- package/dist/bundle/chunks/history-7Z2STZ6Y.js +0 -2
- package/dist/bundle/chunks/html-to-markdown-XMBYO6FD.js +0 -4
- package/dist/bundle/chunks/jq-7R2XGLLH.js +0 -13
- package/dist/bundle/chunks/ln-UTUVIAFP.js +0 -9
- package/dist/bundle/chunks/mv-GN23UIZU.js +0 -6
- package/dist/bundle/chunks/paste-L4TYPVSP.js +0 -7
- package/dist/bundle/chunks/printf-3ZT5XOIZ.js +0 -14
- package/dist/bundle/chunks/printf-G2SBUNW3.js +0 -13
- package/dist/bundle/chunks/pwd-ZVX5RTL4.js +0 -2
- package/dist/bundle/chunks/readlink-HHC33N5C.js +0 -6
- package/dist/bundle/chunks/sed-2WWCANZT.js +0 -79
- package/dist/bundle/chunks/sed-5LZHAGFR.js +0 -74
- package/dist/bundle/chunks/sed-IGVS3UIY.js +0 -79
- package/dist/bundle/chunks/sed-UZJSXYQZ.js +0 -47
- package/dist/bundle/chunks/sed-V7XSBPTD.js +0 -75
- package/dist/bundle/chunks/sort-LHMQWYH2.js +0 -14
- package/dist/bundle/chunks/tail-BLGGG2VX.js +0 -1
- package/dist/bundle/chunks/tee-VCNOG5VI.js +0 -2
- package/dist/bundle/chunks/timeout-THAT7IOO.js +0 -11
- package/dist/bundle/chunks/true-OD7ZXH3O.js +0 -1
- package/dist/bundle/chunks/uniq-IIOQKNTS.js +0 -4
- package/dist/bundle/chunks/wc-OXLYBRUE.js +0 -5
- package/dist/bundle/chunks/which-ONWH3TNF.js +0 -2
- package/dist/bundle/chunks/xargs-752VENJT.js +0 -3
- package/dist/bundle/chunks/xargs-E5JPQL24.js +0 -3
- package/dist/commands/awk/executor.d.ts +0 -3
- package/dist/commands/awk/expressions.d.ts +0 -3
- package/dist/commands/awk/functions.d.ts +0 -12
- package/dist/commands/awk/interpreter2.d.ts +0 -90
- package/dist/commands/awk/parser.d.ts +0 -3
- package/dist/commands/awk/types.d.ts +0 -44
- package/dist/fs-interface.d.ts +0 -186
- package/dist/fs.d.ts +0 -39
- package/dist/overlay-fs/OverlayFs.d.ts +0 -87
- package/dist/overlay-fs/index.d.ts +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{i as S}from"./chunk-JYYFSUWP.js";import{a as I,b,c as R}from"./chunk-74CEPOFO.js";function w(r,e,t){switch(t){case"+":return r+e;case"-":return r-e;case"*":return r*e;case"/":return e!==0?r/e:0;case"%":return e!==0?r%e:0;case"^":case"**":return r**e;default:return 0}}function D(r,e,t){return r.length===0?e.line.length:t.toString(t.evalExpr(r[0])).length}function B(r,e,t){if(r.length<2)return"";let i=t.toString(t.evalExpr(r[0])),n=Math.floor(t.toNumber(t.evalExpr(r[1])))-1;if(r.length>=3){let a=Math.floor(t.toNumber(t.evalExpr(r[2])));return i.substr(Math.max(0,n),a)}return i.substr(Math.max(0,n))}function U(r,e,t){if(r.length<2)return 0;let i=t.toString(t.evalExpr(r[0])),n=t.toString(t.evalExpr(r[1])),a=i.indexOf(n);return a===-1?0:a+1}function H(r,e,t){if(r.length<2)return 0;let i=t.toString(t.evalExpr(r[0])),n=r[1];if(n.type!=="variable")return 0;let a=n.name,h=e.FS;if(r.length>=3){let u=t.toString(t.evalExpr(r[2]));h=u===" "?/\s+/:u}else e.FS===" "&&(h=/\s+/);let c=i.split(h);e.arrays[a]={};for(let u=0;u<c.length;u++)e.arrays[a][String(u+1)]=c[u];return c.length}function W(r,e,t){if(r.length<2)return 0;let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a="$0";if(r.length>=3){let c=r[2];c.type==="variable"?a=c.name:c.type==="field"&&(a=`$${Math.floor(t.toNumber(t.evalExpr(c.index)))}`)}let h;if(a==="$0")h=e.line;else if(a.startsWith("$")){let c=parseInt(a.slice(1),10)-1;h=e.fields[c]||""}else h=t.toString(e.vars[a]??"");try{let c=new RegExp(i),u=h.replace(c,L(n)),x=u!==h?1:0;if(a==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(a.startsWith("$")){let p=parseInt(a.slice(1),10)-1;for(;e.fields.length<=p;)e.fields.push("");e.fields[p]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[a]=u;return x}catch{return 0}}function $(r,e,t){if(r.length<2)return 0;let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a="$0";if(r.length>=3){let c=r[2];c.type==="variable"?a=c.name:c.type==="field"&&(a=`$${Math.floor(t.toNumber(t.evalExpr(c.index)))}`)}let h;if(a==="$0")h=e.line;else if(a.startsWith("$")){let c=parseInt(a.slice(1),10)-1;h=e.fields[c]||""}else h=t.toString(e.vars[a]??"");try{let c=new RegExp(i,"g"),u=h.match(c),x=u?u.length:0,p=h.replace(c,L(n));if(a==="$0")e.line=p,e.fields=e.FS===" "?p.trim().split(/\s+/).filter(Boolean):p.split(e.fieldSep),e.NF=e.fields.length;else if(a.startsWith("$")){let o=parseInt(a.slice(1),10)-1;for(;e.fields.length<=o;)e.fields.push("");e.fields[o]=p,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[a]=p;return x}catch{return 0}}function L(r){return e=>{let t="",i=0;for(;i<r.length;)if(r[i]==="\\"&&i+1<r.length){let n=r[i+1];n==="&"?(t+="&",i+=2):n==="\\"?(t+="\\",i+=2):(t+=r[i+1],i+=2)}else r[i]==="&"?(t+=e,i++):(t+=r[i],i++);return t}}function V(r,e,t){if(r.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let i=t.toString(t.evalExpr(r[0])),n;r[1].type==="regex"?n=r[1].pattern:(n=t.toString(t.evalExpr(r[1])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));try{let h=new RegExp(n).exec(i);if(h)return e.RSTART=h.index+1,e.RLENGTH=h[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}function X(r,e,t){if(r.length<3)return"";let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a=t.toString(t.evalExpr(r[2])),h=r.length>=4?t.toString(t.evalExpr(r[3])):e.line;try{let c=a.toLowerCase()==="g",u=c?0:parseInt(a,10)||1;if(c){let x=new RegExp(i,"g");return h.replace(x,(p,...o)=>C(n,p,o.slice(0,-2)))}else{let x=0,p=new RegExp(i,"g");return h.replace(p,(o,...f)=>(x++,x===u?C(n,o,f.slice(0,-2)):o))}}catch{return h}}function C(r,e,t){let i="",n=0;for(;n<r.length;)if(r[n]==="\\"&&n+1<r.length){let a=r[n+1];if(a==="&")i+="&",n+=2;else if(a==="0")i+=e,n+=2;else if(a>="1"&&a<="9"){let h=parseInt(a,10)-1;i+=t[h]||"",n+=2}else a==="n"?(i+=`
|
|
2
|
-
`,n+=2):a==="t"?(i+=" ",n+=2):(i+=a,n+=2)}else r[n]==="&"?(i+=e,n++):(i+=r[n],n++);return i}function K(r,e,t){return r.length===0?"":t.toString(t.evalExpr(r[0])).toLowerCase()}function Q(r,e,t){return r.length===0?"":t.toString(t.evalExpr(r[0])).toUpperCase()}function j(r,e,t){if(r.length===0)return"";let i=t.toString(t.evalExpr(r[0])),n=r.slice(1).map(a=>t.evalExpr(a));return A(i,n)}function q(r,e,t){return r.length===0?0:Math.floor(t.toNumber(t.evalExpr(r[0])))}function z(r,e,t){return r.length===0?0:Math.sqrt(t.toNumber(t.evalExpr(r[0])))}function Z(r,e,t){return r.length===0?0:Math.sin(t.toNumber(t.evalExpr(r[0])))}function Y(r,e,t){return r.length===0?0:Math.cos(t.toNumber(t.evalExpr(r[0])))}function J(r,e,t){let i=r.length>0?t.toNumber(t.evalExpr(r[0])):0,n=r.length>1?t.toNumber(t.evalExpr(r[1])):0;return Math.atan2(i,n)}function ee(r,e,t){return r.length===0?0:Math.log(t.toNumber(t.evalExpr(r[0])))}function te(r,e,t){return r.length===0?1:Math.exp(t.toNumber(t.evalExpr(r[0])))}function se(r,e,t){return e.random?e.random():Math.random()}function ie(r,e,t){let i=r.length>0?t.toNumber(t.evalExpr(r[0])):Date.now();return e.vars._srand_seed=i,i}function y(r,e){return()=>{throw new Error(`${r}() is not supported - ${e}`)}}function k(r){return()=>{throw new Error(`function '${r}()' is not implemented`)}}function A(r,e){let t=0,i="",n=0;for(;n<r.length;)if(r[n]==="%"&&n+1<r.length){let a=n+1,h="",c="",u="";for(;a<r.length&&/[-+ #0]/.test(r[a]);)h+=r[a++];for(;a<r.length&&/\d/.test(r[a]);)c+=r[a++];if(r[a]===".")for(a++;a<r.length&&/\d/.test(r[a]);)u+=r[a++];let x=r[a],p=e[t];switch(x){case"s":{let o=p!==void 0?String(p):"";if(u&&(o=o.substring(0,parseInt(u,10))),c){let f=parseInt(c,10);h.includes("-")?o=o.padEnd(f):o=o.padStart(f)}i+=o,t++;break}case"d":case"i":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=String(o);if(c){let l=parseInt(c,10);if(h.includes("-"))f=f.padEnd(l);else if(h.includes("0")&&!h.includes("-")){let E=o<0?"-":"";f=E+Math.abs(o).toString().padStart(l-E.length,"0")}else f=f.padStart(l)}i+=f,t++;break}case"f":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o.toFixed(f);if(c){let E=parseInt(c,10);h.includes("-")?l=l.padEnd(E):l=l.padStart(E)}i+=l,t++;break}case"e":case"E":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o.toExponential(f);if(x==="E"&&(l=l.toUpperCase()),c){let E=parseInt(c,10);h.includes("-")?l=l.padEnd(E):l=l.padStart(E)}i+=l,t++;break}case"g":case"G":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o!==0?Math.floor(Math.log10(Math.abs(o))):0,E;if(o===0?E="0":l<-4||l>=f?(E=o.toExponential(f-1),x==="G"&&(E=E.toUpperCase())):E=o.toPrecision(f),E=E.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),c){let d=parseInt(c,10);h.includes("-")?E=E.padEnd(d):E=E.padStart(d)}i+=E,t++;break}case"x":case"X":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=Math.abs(o).toString(16);if(x==="X"&&(f=f.toUpperCase()),c){let l=parseInt(c,10);h.includes("0")?f=f.padStart(l,"0"):h.includes("-")?f=f.padEnd(l):f=f.padStart(l)}i+=o<0?`-${f}`:f,t++;break}case"o":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=Math.abs(o).toString(8);if(c){let l=parseInt(c,10);h.includes("0")?f=f.padStart(l,"0"):h.includes("-")?f=f.padEnd(l):f=f.padStart(l)}i+=o<0?`-${f}`:f,t++;break}case"c":{typeof p=="number"?i+=String.fromCharCode(p):i+=String(p??"").charAt(0)||"",t++;break}case"%":i+="%";break;default:i+=r.substring(n,a+1)}n=a+1}else if(r[n]==="\\"&&n+1<r.length){let a=r[n+1];switch(a){case"n":i+=`
|
|
3
|
-
`;break;case"t":i+=" ";break;case"r":i+="\r";break;case"\\":i+="\\";break;default:i+=a}n+=2}else i+=r[n++];return i}var O={length:D,substr:B,index:U,split:H,sub:W,gsub:$,match:V,gensub:X,tolower:K,toupper:Q,sprintf:j,int:q,sqrt:z,sin:Z,cos:Y,atan2:J,log:ee,exp:te,rand:se,srand:ie,system:y("system","shell execution not allowed in sandboxed environment"),close:y("close","file operations not allowed"),fflush:y("fflush","file operations not allowed"),systime:k("systime"),mktime:k("mktime"),strftime:k("strftime")};var re=1e4,ne=1e3;function M(r=/\s+/,e=re){return{FS:" ",OFS:" ",ORS:`
|
|
4
|
-
`,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},functions:new Map,fieldSep:r,maxIterations:e,maxRecursionDepth:ne,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:""}}var m=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let t of e.functions)this.ctx.functions.set(t.name,t);return this.rangeStates=e.rules.map(()=>!1),this.ctx.output}executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(this.executeBlock(e.action),this.ctx.shouldExit))break}}executeLine(e){if(!(!this.program||this.ctx.shouldExit)){this.ctx.line=e,this.ctx.NR++,this.ctx.FNR++,this.ctx.fields=this.splitFields(e),this.ctx.NF=this.ctx.fields.length,this.ctx.shouldNext=!1;for(let t=0;t<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext);t++){let i=this.program.rules[t];i.pattern?.type==="begin"||i.pattern?.type==="end"||this.matchesRule(i,t)&&this.executeBlock(i.action)}}}executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(this.executeBlock(e.action),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}splitFields(e){return this.ctx.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(this.ctx.fieldSep)}matchesRule(e,t){let i=e.pattern;if(!i)return!0;switch(i.type){case"begin":case"end":return!1;case"regex_pattern":return this.matchRegex(i.pattern,this.ctx.line);case"expr_pattern":return this.isTruthy(this.evalExpr(i.expression));case"range":{let n=this.matchPattern(i.start),a=this.matchPattern(i.end);return this.rangeStates[t]?(a&&(this.rangeStates[t]=!1),!0):n?(this.rangeStates[t]=!0,a&&(this.rangeStates[t]=!1),!0):!1}default:return!1}}matchPattern(e){switch(e.type){case"regex_pattern":return this.matchRegex(e.pattern,this.ctx.line);case"expr_pattern":return this.isTruthy(this.evalExpr(e.expression));default:return!1}}matchRegex(e,t){try{return new RegExp(e).test(t)}catch{return!1}}executeBlock(e){for(let t of e.statements)if(this.executeStmt(t),this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.loopBreak||this.ctx.loopContinue||this.ctx.hasReturn)break}executeStmt(e){switch(e.type){case"block":this.executeBlock(e);break;case"expr_stmt":this.evalExpr(e.expression);break;case"print":this.executePrint(e.args,e.output);break;case"printf":this.executePrintf(e.format,e.args,e.output);break;case"if":this.executeIf(e);break;case"while":this.executeWhile(e);break;case"do_while":this.executeDoWhile(e);break;case"for":this.executeFor(e);break;case"for_in":this.executeForIn(e);break;case"break":this.ctx.loopBreak=!0;break;case"continue":this.ctx.loopContinue=!0;break;case"next":this.ctx.shouldNext=!0;break;case"exit":this.ctx.shouldExit=!0,this.ctx.exitCode=e.code?Math.floor(this.toNumber(this.evalExpr(e.code))):0;break;case"return":this.ctx.hasReturn=!0,this.ctx.returnValue=e.value?this.evalExpr(e.value):"";break;case"delete":this.executeDelete(e.target);break}}executePrint(e,t){let n=e.map(a=>this.toString(this.evalExpr(a))).join(this.ctx.OFS)+this.ctx.ORS;t?this.ctx.output+=n:this.ctx.output+=n}executePrintf(e,t,i){let n=this.toString(this.evalExpr(e)),a=t.map(c=>this.evalExpr(c)),h=A(n,a);i?this.ctx.output+=h:this.ctx.output+=h}executeIf(e){this.isTruthy(this.evalExpr(e.condition))?this.executeStmt(e.consequent):e.alternate&&this.executeStmt(e.alternate)}executeWhile(e){let t=0;for(;this.isTruthy(this.evalExpr(e.condition));){if(t++,t>this.ctx.maxIterations)throw new S(`awk: while loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}}executeDoWhile(e){let t=0;do{if(t++,t>this.ctx.maxIterations)throw new S(`awk: do-while loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}while(this.isTruthy(this.evalExpr(e.condition)))}executeFor(e){e.init&&this.evalExpr(e.init);let t=0;for(;!e.condition||this.isTruthy(this.evalExpr(e.condition));){if(t++,t>this.ctx.maxIterations)throw new S(`awk: for loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break;e.update&&this.evalExpr(e.update)}}executeForIn(e){let t=this.ctx.arrays[e.array];if(t)for(let i of Object.keys(t)){if(this.ctx.vars[e.variable]=i,this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}}executeDelete(e){if(e.type==="array_access"){let t=this.ctx.arrays[e.array];if(t){let i=this.toString(this.evalExpr(e.key));delete t[i]}}else e.type==="variable"&&delete this.ctx.arrays[e.name]}evalExpr(e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return this.matchRegex(e.pattern,this.ctx.line)?1:0;case"field":return this.getField(e);case"variable":return this.getVariable(e.name);case"array_access":return this.getArrayElement(e.array,e.key);case"binary":return this.evalBinaryOp(e);case"unary":return this.evalUnaryOp(e);case"ternary":return this.isTruthy(this.evalExpr(e.condition))?this.evalExpr(e.consequent):this.evalExpr(e.alternate);case"call":return this.evalFunctionCall(e.name,e.args);case"assignment":return this.evalAssignment(e);case"pre_increment":return this.evalPreIncrement(e.operand);case"pre_decrement":return this.evalPreDecrement(e.operand);case"post_increment":return this.evalPostIncrement(e.operand);case"post_decrement":return this.evalPostDecrement(e.operand);case"in":return this.evalInExpr(e.key,e.array);case"getline":return this.evalGetline(e.variable,e.file);case"tuple":if(e.elements.length===0)return"";for(let t=0;t<e.elements.length-1;t++)this.evalExpr(e.elements[t]);return this.evalExpr(e.elements[e.elements.length-1]);default:return""}}getField(e){let t=Math.floor(this.toNumber(this.evalExpr(e.index)));return t===0?this.ctx.line:t<0||t>this.ctx.fields.length?"":this.ctx.fields[t-1]??""}setField(e,t){if(e===0)this.ctx.line=this.toString(t),this.ctx.fields=this.splitFields(this.ctx.line),this.ctx.NF=this.ctx.fields.length;else if(e>0){for(;this.ctx.fields.length<e;)this.ctx.fields.push("");this.ctx.fields[e-1]=this.toString(t),this.ctx.NF=this.ctx.fields.length,this.ctx.line=this.ctx.fields.join(this.ctx.OFS)}}getVariable(e){switch(e){case"FS":return this.ctx.FS;case"OFS":return this.ctx.OFS;case"ORS":return this.ctx.ORS;case"NR":return this.ctx.NR;case"NF":return this.ctx.NF;case"FNR":return this.ctx.FNR;case"FILENAME":return this.ctx.FILENAME;case"RSTART":return this.ctx.RSTART;case"RLENGTH":return this.ctx.RLENGTH;case"SUBSEP":return this.ctx.SUBSEP}return this.ctx.vars[e]??""}setVariable(e,t){switch(e){case"FS":if(this.ctx.FS=this.toString(t),this.ctx.FS===" ")this.ctx.fieldSep=/\s+/;else try{this.ctx.fieldSep=new RegExp(this.ctx.FS)}catch{this.ctx.fieldSep=new RegExp(this.ctx.FS.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}return;case"OFS":this.ctx.OFS=this.toString(t);return;case"ORS":this.ctx.ORS=this.toString(t);return;case"NR":this.ctx.NR=Math.floor(this.toNumber(t));return;case"NF":{let i=Math.floor(this.toNumber(t));if(i<this.ctx.NF)this.ctx.fields=this.ctx.fields.slice(0,i),this.ctx.line=this.ctx.fields.join(this.ctx.OFS);else if(i>this.ctx.NF){for(;this.ctx.fields.length<i;)this.ctx.fields.push("");this.ctx.line=this.ctx.fields.join(this.ctx.OFS)}this.ctx.NF=i;return}case"FNR":this.ctx.FNR=Math.floor(this.toNumber(t));return;case"FILENAME":this.ctx.FILENAME=this.toString(t);return;case"RSTART":this.ctx.RSTART=Math.floor(this.toNumber(t));return;case"RLENGTH":this.ctx.RLENGTH=Math.floor(this.toNumber(t));return;case"SUBSEP":this.ctx.SUBSEP=this.toString(t);return}this.ctx.vars[e]=t}getArrayElement(e,t){let i=this.toString(this.evalExpr(t));return this.ctx.arrays[e]?.[i]??""}setArrayElement(e,t,i){this.ctx.arrays[e]||(this.ctx.arrays[e]={}),this.ctx.arrays[e][t]=i}evalBinaryOp(e){let t=e.operator;if(t==="||")return this.isTruthy(this.evalExpr(e.left))||this.isTruthy(this.evalExpr(e.right))?1:0;if(t==="&&")return this.isTruthy(this.evalExpr(e.left))&&this.isTruthy(this.evalExpr(e.right))?1:0;if(t==="~"){let c=this.evalExpr(e.left),u=e.right.type==="regex"?e.right.pattern:this.toString(this.evalExpr(e.right));try{return new RegExp(u).test(this.toString(c))?1:0}catch{return 0}}if(t==="!~"){let c=this.evalExpr(e.left),u=e.right.type==="regex"?e.right.pattern:this.toString(this.evalExpr(e.right));try{return new RegExp(u).test(this.toString(c))?0:1}catch{return 1}}let i=this.evalExpr(e.left),n=this.evalExpr(e.right);if(t===" ")return this.toString(i)+this.toString(n);if(this.isComparisonOp(t))return this.evalComparison(i,n,t);let a=this.toNumber(i),h=this.toNumber(n);return w(a,h,t)}isComparisonOp(e){return["<","<=",">",">=","==","!="].includes(e)}evalComparison(e,t,i){let n=this.looksLikeNumber(e),a=this.looksLikeNumber(t);if(n&&a){let u=this.toNumber(e),x=this.toNumber(t);switch(i){case"<":return u<x?1:0;case"<=":return u<=x?1:0;case">":return u>x?1:0;case">=":return u>=x?1:0;case"==":return u===x?1:0;case"!=":return u!==x?1:0}}let h=this.toString(e),c=this.toString(t);switch(i){case"<":return h<c?1:0;case"<=":return h<=c?1:0;case">":return h>c?1:0;case">=":return h>=c?1:0;case"==":return h===c?1:0;case"!=":return h!==c?1:0}return 0}looksLikeNumber(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}evalUnaryOp(e){let t=this.evalExpr(e.operand);switch(e.operator){case"!":return this.isTruthy(t)?0:1;case"-":return-this.toNumber(t);case"+":return+this.toNumber(t);default:return t}}evalFunctionCall(e,t){let i=O[e];if(i)return i(t,this.ctx,this);let n=this.ctx.functions.get(e);return n?this.callUserFunction(n,t):""}callUserFunction(e,t){if(this.ctx.currentRecursionDepth++,this.ctx.currentRecursionDepth>this.ctx.maxRecursionDepth)throw this.ctx.currentRecursionDepth--,new S(`awk: recursion depth exceeded maximum (${this.ctx.maxRecursionDepth})`,"recursion",this.ctx.output);let i={...this.ctx.vars};for(let a=0;a<e.params.length;a++){let h=e.params[a],c=a<t.length?this.evalExpr(t[a]):"";this.ctx.vars[h]=c}this.ctx.hasReturn=!1,this.ctx.returnValue=void 0,this.executeBlock(e.body);let n=this.ctx.returnValue??"";return this.ctx.vars=i,this.ctx.hasReturn=!1,this.ctx.returnValue=void 0,this.ctx.currentRecursionDepth--,n}evalAssignment(e){let t=this.evalExpr(e.value),i=e.target,n=e.operator,a;if(n==="=")a=t;else{let h;i.type==="field"?h=this.getField(i):i.type==="variable"?h=this.getVariable(i.name):h=this.getArrayElement(i.array,i.key);let c=this.toNumber(h),u=this.toNumber(t);switch(n){case"+=":a=c+u;break;case"-=":a=c-u;break;case"*=":a=c*u;break;case"/=":a=u!==0?c/u:0;break;case"%=":a=u!==0?c%u:0;break;case"^=":a=c**u;break;default:a=t}}if(i.type==="field"){let h=Math.floor(this.toNumber(this.evalExpr(i.index)));this.setField(h,a)}else if(i.type==="variable")this.setVariable(i.name,a);else{let h=this.toString(this.evalExpr(i.key));this.setArrayElement(i.array,h,a)}return a}evalPreIncrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e))+1;let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name))+1,this.setVariable(e.name,t);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0)+1,this.setArrayElement(e.array,i,t)}return t}evalPreDecrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e))-1;let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name))-1,this.setVariable(e.name,t);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0)-1,this.setArrayElement(e.array,i,t)}return t}evalPostIncrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e));let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t+1)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name)),this.setVariable(e.name,t+1);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0),this.setArrayElement(e.array,i,t+1)}return t}evalPostDecrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e));let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t-1)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name)),this.setVariable(e.name,t-1);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0),this.setArrayElement(e.array,i,t-1)}return t}evalInExpr(e,t){let i;return e.type==="tuple"?i=e.elements.map(n=>this.toString(this.evalExpr(n))).join(this.ctx.SUBSEP):i=this.toString(this.evalExpr(e)),this.ctx.arrays[t]?.[i]!==void 0?1:0}evalGetline(e,t){if(!this.ctx.lines||this.ctx.lineIndex===void 0)return-1;let i=this.ctx.lineIndex+1;if(i>=this.ctx.lines.length)return 0;let n=this.ctx.lines[i];return e?this.setVariable(e,n):(this.ctx.line=n,this.ctx.fields=this.splitFields(n),this.ctx.NF=this.ctx.fields.length),this.ctx.NR++,this.ctx.lineIndex=i,1}isTruthy(e){return typeof e=="number"?e!==0:e!==""}toNumber(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}toString(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}};var s;(function(r){r.NUMBER="NUMBER",r.STRING="STRING",r.REGEX="REGEX",r.IDENT="IDENT",r.BEGIN="BEGIN",r.END="END",r.IF="IF",r.ELSE="ELSE",r.WHILE="WHILE",r.DO="DO",r.FOR="FOR",r.IN="IN",r.BREAK="BREAK",r.CONTINUE="CONTINUE",r.NEXT="NEXT",r.EXIT="EXIT",r.RETURN="RETURN",r.DELETE="DELETE",r.FUNCTION="FUNCTION",r.PRINT="PRINT",r.PRINTF="PRINTF",r.GETLINE="GETLINE",r.PLUS="PLUS",r.MINUS="MINUS",r.STAR="STAR",r.SLASH="SLASH",r.PERCENT="PERCENT",r.CARET="CARET",r.EQ="EQ",r.NE="NE",r.LT="LT",r.GT="GT",r.LE="LE",r.GE="GE",r.MATCH="MATCH",r.NOT_MATCH="NOT_MATCH",r.AND="AND",r.OR="OR",r.NOT="NOT",r.ASSIGN="ASSIGN",r.PLUS_ASSIGN="PLUS_ASSIGN",r.MINUS_ASSIGN="MINUS_ASSIGN",r.STAR_ASSIGN="STAR_ASSIGN",r.SLASH_ASSIGN="SLASH_ASSIGN",r.PERCENT_ASSIGN="PERCENT_ASSIGN",r.CARET_ASSIGN="CARET_ASSIGN",r.INCREMENT="INCREMENT",r.DECREMENT="DECREMENT",r.QUESTION="QUESTION",r.COLON="COLON",r.COMMA="COMMA",r.SEMICOLON="SEMICOLON",r.NEWLINE="NEWLINE",r.LPAREN="LPAREN",r.RPAREN="RPAREN",r.LBRACE="LBRACE",r.RBRACE="RBRACE",r.LBRACKET="LBRACKET",r.RBRACKET="RBRACKET",r.DOLLAR="DOLLAR",r.APPEND="APPEND",r.PIPE="PIPE",r.EOF="EOF"})(s||(s={}));var ae={BEGIN:s.BEGIN,END:s.END,if:s.IF,else:s.ELSE,while:s.WHILE,do:s.DO,for:s.FOR,in:s.IN,break:s.BREAK,continue:s.CONTINUE,next:s.NEXT,exit:s.EXIT,return:s.RETURN,delete:s.DELETE,function:s.FUNCTION,print:s.PRINT,printf:s.PRINTF,getline:s.GETLINE};function ce(r){return r.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var v=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&(e.push(t),this.lastTokenType=t.type)}return e.push(this.makeToken(s.EOF,"")),e}makeToken(e,t){return{type:e,value:t,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
|
|
5
|
-
`?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="\\")if(this.peek(1)===`
|
|
6
|
-
`)this.advance(),this.advance();else break;else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
7
|
-
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,t=this.column,i=this.peek();return i===`
|
|
8
|
-
`?(this.advance(),{type:s.NEWLINE,value:`
|
|
9
|
-
`,line:e,column:t}):i==='"'?this.readString():i==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(i)||i==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(i)||i==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,s.NEWLINE,s.SEMICOLON,s.LBRACE,s.RBRACE,s.LPAREN,s.LBRACKET,s.COMMA,s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN,s.AND,s.OR,s.NOT,s.MATCH,s.NOT_MATCH,s.QUESTION,s.COLON,s.LT,s.GT,s.LE,s.GE,s.EQ,s.NE,s.PLUS,s.MINUS,s.STAR,s.PERCENT,s.CARET,s.PRINT,s.PRINTF,s.IF,s.WHILE,s.DO,s.FOR,s.RETURN]).has(this.lastTokenType)}readString(){let e=this.line,t=this.column;this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let n=this.advance();switch(n){case"n":i+=`
|
|
10
|
-
`;break;case"t":i+=" ";break;case"r":i+="\r";break;case"\\":i+="\\";break;case'"':i+='"';break;case"/":i+="/";break;default:i+=n}}else i+=this.advance();return this.peek()==='"'&&this.advance(),{type:s.STRING,value:i,line:e,column:t}}readRegex(){let e=this.line,t=this.column;this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")i+=this.advance(),this.pos<this.input.length&&(i+=this.advance());else{if(this.peek()===`
|
|
11
|
-
`)break;i+=this.advance()}return this.peek()==="/"&&this.advance(),i=ce(i),{type:s.REGEX,value:i,line:e,column:t}}readNumber(){let e=this.line,t=this.column,i="";for(;this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(i+=this.advance();this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(i+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(i+=this.advance());this.isDigit(this.peek());)i+=this.advance();return{type:s.NUMBER,value:parseFloat(i),line:e,column:t}}readIdentifier(){let e=this.line,t=this.column,i="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)i+=this.advance();let n=ae[i];return n?{type:n,value:i,line:e,column:t}:{type:s.IDENT,value:i,line:e,column:t}}readOperator(){let e=this.line,t=this.column,i=this.advance(),n=this.peek();switch(i){case"+":return n==="+"?(this.advance(),{type:s.INCREMENT,value:"++",line:e,column:t}):n==="="?(this.advance(),{type:s.PLUS_ASSIGN,value:"+=",line:e,column:t}):{type:s.PLUS,value:"+",line:e,column:t};case"-":return n==="-"?(this.advance(),{type:s.DECREMENT,value:"--",line:e,column:t}):n==="="?(this.advance(),{type:s.MINUS_ASSIGN,value:"-=",line:e,column:t}):{type:s.MINUS,value:"-",line:e,column:t};case"*":return n==="*"?(this.advance(),{type:s.CARET,value:"**",line:e,column:t}):n==="="?(this.advance(),{type:s.STAR_ASSIGN,value:"*=",line:e,column:t}):{type:s.STAR,value:"*",line:e,column:t};case"/":return n==="="?(this.advance(),{type:s.SLASH_ASSIGN,value:"/=",line:e,column:t}):{type:s.SLASH,value:"/",line:e,column:t};case"%":return n==="="?(this.advance(),{type:s.PERCENT_ASSIGN,value:"%=",line:e,column:t}):{type:s.PERCENT,value:"%",line:e,column:t};case"^":return n==="="?(this.advance(),{type:s.CARET_ASSIGN,value:"^=",line:e,column:t}):{type:s.CARET,value:"^",line:e,column:t};case"=":return n==="="?(this.advance(),{type:s.EQ,value:"==",line:e,column:t}):{type:s.ASSIGN,value:"=",line:e,column:t};case"!":return n==="="?(this.advance(),{type:s.NE,value:"!=",line:e,column:t}):n==="~"?(this.advance(),{type:s.NOT_MATCH,value:"!~",line:e,column:t}):{type:s.NOT,value:"!",line:e,column:t};case"<":return n==="="?(this.advance(),{type:s.LE,value:"<=",line:e,column:t}):{type:s.LT,value:"<",line:e,column:t};case">":return n==="="?(this.advance(),{type:s.GE,value:">=",line:e,column:t}):n===">"?(this.advance(),{type:s.APPEND,value:">>",line:e,column:t}):{type:s.GT,value:">",line:e,column:t};case"&":return n==="&"?(this.advance(),{type:s.AND,value:"&&",line:e,column:t}):{type:s.IDENT,value:"&",line:e,column:t};case"|":return n==="|"?(this.advance(),{type:s.OR,value:"||",line:e,column:t}):{type:s.PIPE,value:"|",line:e,column:t};case"~":return{type:s.MATCH,value:"~",line:e,column:t};case"?":return{type:s.QUESTION,value:"?",line:e,column:t};case":":return{type:s.COLON,value:":",line:e,column:t};case",":return{type:s.COMMA,value:",",line:e,column:t};case";":return{type:s.SEMICOLON,value:";",line:e,column:t};case"(":return{type:s.LPAREN,value:"(",line:e,column:t};case")":return{type:s.RPAREN,value:")",line:e,column:t};case"{":return{type:s.LBRACE,value:"{",line:e,column:t};case"}":return{type:s.RBRACE,value:"}",line:e,column:t};case"[":return{type:s.LBRACKET,value:"[",line:e,column:t};case"]":return{type:s.RBRACKET,value:"]",line:e,column:t};case"$":return{type:s.DOLLAR,value:"$",line:e,column:t};default:return{type:s.IDENT,value:i,line:e,column:t}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}};var g=class{tokens=[];pos=0;parse(e){let t=new v(e);return this.tokens=t.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:s.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,t){if(!this.check(e)){let i=this.current();throw new Error(t||`Expected ${e}, got ${i.type} at line ${i.line}:${i.column}`)}return this.advance()}skipNewlines(){for(;this.check(s.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(s.NEWLINE)||this.check(s.SEMICOLON);)this.advance()}parseProgram(){let e=[],t=[];for(this.skipNewlines();!this.check(s.EOF)&&(this.skipNewlines(),!this.check(s.EOF));)this.check(s.FUNCTION)?e.push(this.parseFunction()):t.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:t}}parseFunction(){this.expect(s.FUNCTION);let e=this.expect(s.IDENT).value;this.expect(s.LPAREN);let t=[];if(!this.check(s.RPAREN))for(t.push(this.expect(s.IDENT).value);this.check(s.COMMA);)this.advance(),t.push(this.expect(s.IDENT).value);this.expect(s.RPAREN),this.skipNewlines();let i=this.parseBlock();return{name:e,params:t,body:i}}parseRule(){let e;if(this.check(s.BEGIN))this.advance(),e={type:"begin"};else if(this.check(s.END))this.advance(),e={type:"end"};else if(this.check(s.LBRACE))e=void 0;else if(this.check(s.REGEX)){let n={type:"regex_pattern",pattern:this.advance().value};if(this.check(s.COMMA)){this.advance();let a;this.check(s.REGEX)?a={type:"regex_pattern",pattern:this.advance().value}:a={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:n,end:a}}else e=n}else{let n={type:"expr_pattern",expression:this.parseExpression()};if(this.check(s.COMMA)){this.advance();let a;this.check(s.REGEX)?a={type:"regex_pattern",pattern:this.advance().value}:a={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:n,end:a}}else e=n}this.skipNewlines();let t;return this.check(s.LBRACE)?t=this.parseBlock():t={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:t}}parseBlock(){this.expect(s.LBRACE),this.skipNewlines();let e=[];for(;!this.check(s.RBRACE)&&!this.check(s.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(s.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(s.LBRACE))return this.parseBlock();if(this.check(s.IF))return this.parseIf();if(this.check(s.WHILE))return this.parseWhile();if(this.check(s.DO))return this.parseDoWhile();if(this.check(s.FOR))return this.parseFor();if(this.check(s.BREAK))return this.advance(),{type:"break"};if(this.check(s.CONTINUE))return this.advance(),{type:"continue"};if(this.check(s.NEXT))return this.advance(),{type:"next"};if(this.check(s.EXIT)){this.advance();let t;return!this.check(s.NEWLINE)&&!this.check(s.SEMICOLON)&&!this.check(s.RBRACE)&&!this.check(s.EOF)&&(t=this.parseExpression()),{type:"exit",code:t}}if(this.check(s.RETURN)){this.advance();let t;return!this.check(s.NEWLINE)&&!this.check(s.SEMICOLON)&&!this.check(s.RBRACE)&&!this.check(s.EOF)&&(t=this.parseExpression()),{type:"return",value:t}}if(this.check(s.DELETE)){this.advance();let t=this.parsePrimary();if(t.type!=="array_access"&&t.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:t}}return this.check(s.PRINT)?this.parsePrint():this.check(s.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(s.IF),this.expect(s.LPAREN);let e=this.parseExpression();this.expect(s.RPAREN),this.skipNewlines();let t=this.parseStatement();this.skipTerminators();let i;return this.check(s.ELSE)&&(this.advance(),this.skipNewlines(),i=this.parseStatement()),{type:"if",condition:e,consequent:t,alternate:i}}parseWhile(){this.expect(s.WHILE),this.expect(s.LPAREN);let e=this.parseExpression();this.expect(s.RPAREN),this.skipNewlines();let t=this.parseStatement();return{type:"while",condition:e,body:t}}parseDoWhile(){this.expect(s.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(s.WHILE),this.expect(s.LPAREN);let t=this.parseExpression();return this.expect(s.RPAREN),{type:"do_while",body:e,condition:t}}parseFor(){if(this.expect(s.FOR),this.expect(s.LPAREN),this.check(s.IDENT)){let a=this.advance();if(this.check(s.IN)){this.advance();let h=this.expect(s.IDENT).value;this.expect(s.RPAREN),this.skipNewlines();let c=this.parseStatement();return{type:"for_in",variable:a.value,array:h,body:c}}this.pos--}let e;this.check(s.SEMICOLON)||(e=this.parseExpression()),this.expect(s.SEMICOLON);let t;this.check(s.SEMICOLON)||(t=this.parseExpression()),this.expect(s.SEMICOLON);let i;this.check(s.RPAREN)||(i=this.parseExpression()),this.expect(s.RPAREN),this.skipNewlines();let n=this.parseStatement();return{type:"for",init:e,condition:t,update:i,body:n}}parsePrint(){this.expect(s.PRINT);let e=[];if(this.check(s.NEWLINE)||this.check(s.SEMICOLON)||this.check(s.RBRACE)||this.check(s.PIPE)||this.check(s.GT)||this.check(s.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parseTernary());this.check(s.COMMA);)this.advance(),e.push(this.parseTernary());let t;return this.check(s.GT)?(this.advance(),t={redirect:">",file:this.parsePrimary()}):this.check(s.APPEND)&&(this.advance(),t={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:t}}parsePrintf(){this.expect(s.PRINTF);let e=this.parseExpression(),t=[];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());let i;return this.check(s.GT)?(this.advance(),i={redirect:">",file:this.parsePrimary()}):this.check(s.APPEND)&&(this.advance(),i={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:t,output:i}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN)){let t=this.advance(),i=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[t.value],target:e,value:i}}return e}parseTernary(){let e=this.parseOr();if(this.check(s.QUESTION)){this.advance();let t=this.parseExpression();this.expect(s.COLON);let i=this.parseExpression();e={type:"ternary",condition:e,consequent:t,alternate:i}}return e}parseOr(){let e=this.parseAnd();for(;this.check(s.OR);){this.advance();let t=this.parseAnd();e={type:"binary",operator:"||",left:e,right:t}}return e}parseAnd(){let e=this.parseIn();for(;this.check(s.AND);){this.advance();let t=this.parseIn();e={type:"binary",operator:"&&",left:e,right:t}}return e}parseIn(){let e=this.parseMatch();if(this.check(s.IN)){this.advance();let t=this.expect(s.IDENT).value;return{type:"in",key:e,array:t}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(s.MATCH,s.NOT_MATCH);){let t=this.advance().type===s.MATCH?"~":"!~",i=this.parseComparison();e={type:"binary",operator:t,left:e,right:i}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(s.LT,s.LE,s.GT,s.GE,s.EQ,s.NE);){let t=this.advance(),i=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[t.value],left:e,right:i}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let t=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:t}}return e}canStartExpression(){return this.match(s.NUMBER,s.STRING,s.IDENT,s.DOLLAR,s.LPAREN,s.NOT,s.MINUS,s.PLUS,s.INCREMENT,s.DECREMENT)}isComparisonOrHigherOp(){return this.match(s.LT,s.LE,s.GT,s.GE,s.EQ,s.NE,s.AND,s.OR,s.QUESTION,s.MATCH,s.NOT_MATCH,s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN,s.COMMA,s.SEMICOLON,s.NEWLINE,s.RBRACE,s.RPAREN,s.RBRACKET,s.COLON,s.PIPE,s.APPEND,s.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(s.PLUS,s.MINUS);){let t=this.advance().value,i=this.parseMulDiv();e={type:"binary",operator:t,left:e,right:i}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(s.STAR,s.SLASH,s.PERCENT);){let t=this.advance(),i=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[t.value],left:e,right:i}}return e}parseUnary(){if(this.check(s.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(s.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(s.NOT,s.MINUS,s.PLUS)){let e=this.advance().value,t=this.parseUnary();return{type:"unary",operator:e,operand:t}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(s.CARET)){this.advance();let t=this.parsePower();e={type:"binary",operator:"^",left:e,right:t}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(s.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(s.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(s.NUMBER))return{type:"number",value:this.advance().value};if(this.check(s.STRING))return{type:"string",value:this.advance().value};if(this.check(s.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(s.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(s.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(s.COMMA)){let t=[e];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());return this.expect(s.RPAREN),{type:"tuple",elements:t}}return this.expect(s.RPAREN),e}if(this.check(s.GETLINE)){this.advance();let e,t;return this.check(s.IDENT)&&(e=this.advance().value),this.check(s.LT)&&(this.advance(),t=this.parsePrimary()),{type:"getline",variable:e,file:t}}if(this.check(s.IDENT)){let e=this.advance().value;if(this.check(s.LPAREN)){this.advance();let t=[];if(!this.check(s.RPAREN))for(t.push(this.parseExpression());this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());return this.expect(s.RPAREN),{type:"call",name:e,args:t}}if(this.check(s.LBRACKET)){this.advance();let t=[this.parseExpression()];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());this.expect(s.RBRACKET);let i;if(t.length===1)i=t[0];else{i=t[0];for(let n=1;n<t.length;n++)i={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:i,right:{type:"variable",name:"SUBSEP"}},right:t[n]}}return{type:"array_access",array:e,key:i}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var he={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},ge={name:"awk",async execute(r,e){if(b(r))return I(he);let t=/\s+/,i=" ",n={},a=0;for(let l=0;l<r.length;l++){let E=r[l];if(E==="-F"&&l+1<r.length)i=P(r[++l]),t=F(i),a=l+1;else if(E.startsWith("-F"))i=P(E.slice(2)),t=F(i),a=l+1;else if(E==="-v"&&l+1<r.length){let d=r[++l],N=d.indexOf("=");if(N>0){let _=d.slice(0,N),G=d.slice(N+1);n[_]=G}a=l+1}else{if(E.startsWith("--"))return R("awk",E);if(E.startsWith("-")&&E.length>1){let d=E[1];if(d!=="F"&&d!=="v")return R("awk",`-${d}`);a=l+1}else if(!E.startsWith("-")){a=l;break}}}if(a>=r.length)return{stdout:"",stderr:`awk: missing program
|
|
12
|
-
`,exitCode:1};let h=r[a],c=r.slice(a+1),u=new g,x;try{x=u.parse(h)}catch(l){return{stdout:"",stderr:`awk: ${l instanceof Error?l.message:String(l)}
|
|
13
|
-
`,exitCode:1}}let p=M(t,e.limits?.maxAwkIterations);p.FS=i,p.vars={...n};let o=new m(p);if(o.execute(x),o.executeBegin(),p.shouldExit)return{stdout:o.getOutput(),stderr:"",exitCode:o.getExitCode()};let f=[];if(c.length>0)for(let l of c)try{let E=e.fs.resolvePath(e.cwd,l),N=(await e.fs.readFile(E)).split(`
|
|
14
|
-
`);N.length>0&&N[N.length-1]===""&&N.pop(),f.push({filename:l,lines:N})}catch{return{stdout:"",stderr:`awk: ${l}: No such file or directory
|
|
15
|
-
`,exitCode:1}}else{let l=e.stdin.split(`
|
|
16
|
-
`);l.length>0&&l[l.length-1]===""&&l.pop(),f.push({filename:"",lines:l})}for(let l of f){for(p.FILENAME=l.filename,p.FNR=0,p.lines=l.lines,p.lineIndex=-1;p.lineIndex<l.lines.length-1&&(p.lineIndex++,o.executeLine(l.lines[p.lineIndex]),!p.shouldExit););if(p.shouldExit)break}return p.shouldExit||o.executeEnd(),{stdout:o.getOutput(),stderr:"",exitCode:o.getExitCode()}}};function P(r){return r.replace(/\\t/g," ").replace(/\\n/g,`
|
|
17
|
-
`).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function F(r){if(r===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(r))try{return new RegExp(r)}catch{return new RegExp(T(r))}return new RegExp(T(r))}function T(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{ge as awkCommand2};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{i as P}from"./chunk-JYYFSUWP.js";import{a as K,b as Q,c as x}from"./chunk-74CEPOFO.js";function j(e,t,r){switch(r){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return t!==0?e/t:0;case"%":return t!==0?e%t:0;case"^":case"**":return e**t;default:return 0}}function g(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function w(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}async function ce(e,t,r){return e.length===0?t.line.length:w(await r.evalExpr(e[0])).length}async function he(e,t,r){if(e.length<2)return"";let n=w(await r.evalExpr(e[0])),a=Math.floor(g(await r.evalExpr(e[1])))-1;if(e.length>=3){let s=Math.floor(g(await r.evalExpr(e[2])));return n.substr(Math.max(0,a),s)}return n.substr(Math.max(0,a))}async function ue(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=w(await r.evalExpr(e[1])),s=n.indexOf(a);return s===-1?0:s+1}async function pe(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=e[1];if(a.type!=="variable")return 0;let s=a.name,o=t.FS;if(e.length>=3){let u=w(await r.evalExpr(e[2]));o=u===" "?/\s+/:u}else t.FS===" "&&(o=/\s+/);let l=n.split(o);t.arrays[s]={};for(let u=0;u<l.length;u++)t.arrays[s][String(u+1)]=l[u];return l.length}async function fe(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(g(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n),u=o.replace(l,z(a)),m=u!==o?1:0;if(s==="$0")t.line=u,t.fields=t.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let N=parseInt(s.slice(1),10)-1;for(;t.fields.length<=N;)t.fields.push("");t.fields[N]=u,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=u;return m}catch{return 0}}async function de(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(g(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n,"g"),u=o.match(l),m=u?u.length:0,N=o.replace(l,z(a));if(s==="$0")t.line=N,t.fields=t.FS===" "?N.trim().split(/\s+/).filter(Boolean):N.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let c=parseInt(s.slice(1),10)-1;for(;t.fields.length<=c;)t.fields.push("");t.fields[c]=N,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=N;return m}catch{return 0}}function z(e){return t=>{let r="",n=0;for(;n<e.length;)if(e[n]==="\\"&&n+1<e.length){let a=e[n+1];a==="&"?(r+="&",n+=2):a==="\\"?(r+="\\",n+=2):(r+=e[n+1],n+=2)}else e[n]==="&"?(r+=t,n++):(r+=e[n],n++);return r}}async function Ee(e,t,r){if(e.length<2)return t.RSTART=0,t.RLENGTH=-1,0;let n=w(await r.evalExpr(e[0])),a;e[1].type==="regex"?a=e[1].pattern:(a=w(await r.evalExpr(e[1])),a.startsWith("/")&&a.endsWith("/")&&(a=a.slice(1,-1)));try{let o=new RegExp(a).exec(n);if(o)return t.RSTART=o.index+1,t.RLENGTH=o[0].length,t.RSTART}catch{}return t.RSTART=0,t.RLENGTH=-1,0}async function Ne(e,t,r){if(e.length<3)return"";let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s=w(await r.evalExpr(e[2])),o=e.length>=4?w(await r.evalExpr(e[3])):t.line;try{let l=s.toLowerCase()==="g",u=l?0:parseInt(s,10)||1;if(l){let m=new RegExp(n,"g");return o.replace(m,(N,...c)=>q(a,N,c.slice(0,-2)))}else{let m=0,N=new RegExp(n,"g");return o.replace(N,(c,...d)=>(m++,m===u?q(a,c,d.slice(0,-2)):c))}}catch{return o}}function q(e,t,r){let n="",a=0;for(;a<e.length;)if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];if(s==="&")n+="&",a+=2;else if(s==="0")n+=t,a+=2;else if(s>="1"&&s<="9"){let o=parseInt(s,10)-1;n+=r[o]||"",a+=2}else s==="n"?(n+=`
|
|
2
|
-
`,a+=2):s==="t"?(n+=" ",a+=2):(n+=s,a+=2)}else e[a]==="&"?(n+=t,a++):(n+=e[a],a++);return n}async function ye(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toLowerCase()}async function me(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toUpperCase()}async function we(e,t,r){if(e.length===0)return"";let n=w(await r.evalExpr(e[0])),a=[];for(let s=1;s<e.length;s++)a.push(await r.evalExpr(e[s]));return W(n,a)}async function Re(e,t,r){return e.length===0?0:Math.floor(g(await r.evalExpr(e[0])))}async function Se(e,t,r){return e.length===0?0:Math.sqrt(g(await r.evalExpr(e[0])))}async function ge(e,t,r){return e.length===0?0:Math.sin(g(await r.evalExpr(e[0])))}async function Ae(e,t,r){return e.length===0?0:Math.cos(g(await r.evalExpr(e[0])))}async function ve(e,t,r){let n=e.length>0?g(await r.evalExpr(e[0])):0,a=e.length>1?g(await r.evalExpr(e[1])):0;return Math.atan2(n,a)}async function ke(e,t,r){return e.length===0?0:Math.log(g(await r.evalExpr(e[0])))}async function Ie(e,t,r){return e.length===0?1:Math.exp(g(await r.evalExpr(e[0])))}function Ce(e,t,r){return t.random?t.random():Math.random()}async function be(e,t,r){let n=e.length>0?g(await r.evalExpr(e[0])):Date.now();return t.vars._srand_seed=n,n}function H(e,t){return()=>{throw new Error(`${e}() is not supported - ${t}`)}}function $(e){return()=>{throw new Error(`function '${e}()' is not implemented`)}}function W(e,t){let r=0,n="",a=0;for(;a<e.length;)if(e[a]==="%"&&a+1<e.length){let s=a+1,o="",l="",u="";for(;s<e.length&&/[-+ #0]/.test(e[s]);)o+=e[s++];for(;s<e.length&&/\d/.test(e[s]);)l+=e[s++];if(e[s]===".")for(s++;s<e.length&&/\d/.test(e[s]);)u+=e[s++];let m=e[s],N=t[r];switch(m){case"s":{let c=N!==void 0?String(N):"";if(u&&(c=c.substring(0,parseInt(u,10))),l){let d=parseInt(l,10);o.includes("-")?c=c.padEnd(d):c=c.padStart(d)}n+=c,r++;break}case"d":case"i":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=String(c);if(l){let h=parseInt(l,10);if(o.includes("-"))d=d.padEnd(h);else if(o.includes("0")&&!o.includes("-")){let f=c<0?"-":"";d=f+Math.abs(c).toString().padStart(h-f.length,"0")}else d=d.padStart(h)}n+=d,r++;break}case"f":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toFixed(d);if(l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"e":case"E":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toExponential(d);if(m==="E"&&(h=h.toUpperCase()),l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"g":case"G":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c!==0?Math.floor(Math.log10(Math.abs(c))):0,f;if(c===0?f="0":h<-4||h>=d?(f=c.toExponential(d-1),m==="G"&&(f=f.toUpperCase())):f=c.toPrecision(d),f=f.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),l){let S=parseInt(l,10);o.includes("-")?f=f.padEnd(S):f=f.padStart(S)}n+=f,r++;break}case"x":case"X":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(16);if(m==="X"&&(d=d.toUpperCase()),l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"o":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(8);if(l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"c":{typeof N=="number"?n+=String.fromCharCode(N):n+=String(N??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=e.substring(a,s+1)}a=s+1}else if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];switch(s){case"n":n+=`
|
|
3
|
-
`;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=s}a+=2}else n+=e[a++];return n}var Z={length:ce,substr:he,index:ue,split:pe,sub:fe,gsub:de,match:Ee,gensub:Ne,tolower:ye,toupper:me,sprintf:we,int:Re,sqrt:Se,sin:ge,cos:Ae,atan2:ve,log:ke,exp:Ie,rand:Ce,srand:be,system:H("system","shell execution not allowed in sandboxed environment"),close:H("close","file operations not allowed"),fflush:H("fflush","file operations not allowed"),systime:$("systime"),mktime:$("mktime"),strftime:$("strftime")};function R(e){return typeof e=="number"?e!==0:e!==""}function E(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function y(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}function D(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}function O(e,t){try{return new RegExp(e).test(t)}catch{return!1}}function J(e,t){return e.FS===" "?t.trim().split(/\s+/).filter(Boolean):t.split(e.fieldSep)}function I(e,t){return t===0?e.line:t<0||t>e.fields.length?"":e.fields[t-1]??""}function M(e,t,r){if(t===0)e.line=y(r),e.fields=J(e,e.line),e.NF=e.fields.length;else if(t>0){for(;e.fields.length<t;)e.fields.push("");e.fields[t-1]=y(r),e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}}function T(e,t){e.line=t,e.fields=J(e,t),e.NF=e.fields.length}function Y(e,t){if(e.FS=t,t===" ")e.fieldSep=/\s+/;else try{e.fieldSep=new RegExp(t)}catch{e.fieldSep=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}function C(e,t){switch(t){case"FS":return e.FS;case"OFS":return e.OFS;case"ORS":return e.ORS;case"NR":return e.NR;case"NF":return e.NF;case"FNR":return e.FNR;case"FILENAME":return e.FILENAME;case"RSTART":return e.RSTART;case"RLENGTH":return e.RLENGTH;case"SUBSEP":return e.SUBSEP;case"ARGC":return e.ARGC}return e.vars[t]??""}function A(e,t,r){switch(t){case"FS":Y(e,y(r));return;case"OFS":e.OFS=y(r);return;case"ORS":e.ORS=y(r);return;case"NR":e.NR=Math.floor(E(r));return;case"NF":{let n=Math.floor(E(r));if(n<e.NF)e.fields=e.fields.slice(0,n),e.line=e.fields.join(e.OFS);else if(n>e.NF){for(;e.fields.length<n;)e.fields.push("");e.line=e.fields.join(e.OFS)}e.NF=n;return}case"FNR":e.FNR=Math.floor(E(r));return;case"FILENAME":e.FILENAME=y(r);return;case"RSTART":e.RSTART=Math.floor(E(r));return;case"RLENGTH":e.RLENGTH=Math.floor(E(r));return;case"SUBSEP":e.SUBSEP=y(r);return}e.vars[t]=r}function b(e,t,r){return t==="ARGV"?e.ARGV[r]??"":e.arrays[t]?.[r]??""}function F(e,t,r,n){e.arrays[t]||(e.arrays[t]={}),e.arrays[t][r]=n}function ee(e,t,r){return t==="ARGV"?e.ARGV[r]!==void 0:e.arrays[t]?.[r]!==void 0}function te(e,t,r){e.arrays[t]&&delete e.arrays[t][r]}function re(e,t){delete e.arrays[t]}var X=null;function ie(e){X=e}async function p(e,t){switch(t.type){case"number":return t.value;case"string":return t.value;case"regex":return O(t.pattern,e.line)?1:0;case"field":return Le(e,t);case"variable":return C(e,t.name);case"array_access":return Pe(e,t);case"binary":return Oe(e,t);case"unary":return Te(e,t);case"ternary":return R(await p(e,t.condition))?p(e,t.consequent):p(e,t.alternate);case"call":return _e(e,t.name,t.args);case"assignment":return De(e,t);case"pre_increment":return Be(e,t.operand);case"pre_decrement":return Ue(e,t.operand);case"post_increment":return xe(e,t.operand);case"post_decrement":return He(e,t.operand);case"in":return $e(e,t.key,t.array);case"getline":return We(e,t.variable,t.file);case"tuple":return Ve(e,t.elements);default:return""}}async function Le(e,t){let r=Math.floor(E(await p(e,t.index)));return I(e,r)}async function Pe(e,t){let r=y(await p(e,t.key));return b(e,t.array,r)}async function Oe(e,t){let r=t.operator;if(r==="||")return R(await p(e,t.left))||R(await p(e,t.right))?1:0;if(r==="&&")return R(await p(e,t.left))&&R(await p(e,t.right))?1:0;if(r==="~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?1:0}catch{return 0}}if(r==="!~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?0:1}catch{return 1}}let n=await p(e,t.left),a=await p(e,t.right);if(r===" ")return y(n)+y(a);if(Me(r))return Fe(n,a,r);let s=E(n),o=E(a);return j(s,o,r)}function Me(e){return["<","<=",">",">=","==","!="].includes(e)}function Fe(e,t,r){let n=D(e),a=D(t);if(n&&a){let l=E(e),u=E(t);switch(r){case"<":return l<u?1:0;case"<=":return l<=u?1:0;case">":return l>u?1:0;case">=":return l>=u?1:0;case"==":return l===u?1:0;case"!=":return l!==u?1:0}}let s=y(e),o=y(t);switch(r){case"<":return s<o?1:0;case"<=":return s<=o?1:0;case">":return s>o?1:0;case">=":return s>=o?1:0;case"==":return s===o?1:0;case"!=":return s!==o?1:0}return 0}async function Te(e,t){let r=await p(e,t.operand);switch(t.operator){case"!":return R(r)?0:1;case"-":return-E(r);case"+":return+E(r);default:return r}}async function _e(e,t,r){let n=Z[t];if(n)return n(r,e,{evalExpr:s=>p(e,s)});let a=e.functions.get(t);return a?Ge(e,a,r):""}async function Ge(e,t,r){if(e.currentRecursionDepth++,e.currentRecursionDepth>e.maxRecursionDepth)throw e.currentRecursionDepth--,new P(`awk: recursion depth exceeded maximum (${e.maxRecursionDepth})`,"recursion",e.output);let n={};for(let s of t.params)n[s]=e.vars[s];for(let s=0;s<t.params.length;s++){let o=t.params[s],l=s<r.length?await p(e,r[s]):"";e.vars[o]=l}e.hasReturn=!1,e.returnValue=void 0,X&&await X(e,t.body.statements);let a=e.returnValue??"";for(let s of t.params)n[s]!==void 0?e.vars[s]=n[s]:delete e.vars[s];return e.hasReturn=!1,e.returnValue=void 0,e.currentRecursionDepth--,a}async function De(e,t){let r=await p(e,t.value),n=t.target,a=t.operator,s;if(a==="=")s=r;else{let o;if(n.type==="field"){let m=Math.floor(E(await p(e,n.index)));o=I(e,m)}else if(n.type==="variable")o=C(e,n.name);else{let m=y(await p(e,n.key));o=b(e,n.array,m)}let l=E(o),u=E(r);switch(a){case"+=":s=l+u;break;case"-=":s=l-u;break;case"*=":s=l*u;break;case"/=":s=u!==0?l/u:0;break;case"%=":s=u!==0?l%u:0;break;case"^=":s=l**u;break;default:s=r}}if(n.type==="field"){let o=Math.floor(E(await p(e,n.index)));M(e,o,s)}else if(n.type==="variable")A(e,n.name,s);else{let o=y(await p(e,n.key));F(e,n.array,o,s)}return s}async function Be(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n))+1,M(e,n,r)}else if(t.type==="variable")r=E(C(e,t.name))+1,A(e,t.name,r);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n))+1,F(e,t.array,n,r)}return r}async function Ue(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n))-1,M(e,n,r)}else if(t.type==="variable")r=E(C(e,t.name))-1,A(e,t.name,r);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n))-1,F(e,t.array,n,r)}return r}async function xe(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n)),M(e,n,r+1)}else if(t.type==="variable")r=E(C(e,t.name)),A(e,t.name,r+1);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n)),F(e,t.array,n,r+1)}return r}async function He(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n)),M(e,n,r-1)}else if(t.type==="variable")r=E(C(e,t.name)),A(e,t.name,r-1);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n)),F(e,t.array,n,r-1)}return r}async function $e(e,t,r){let n;if(t.type==="tuple"){let a=[];for(let s of t.elements)a.push(y(await p(e,s)));n=a.join(e.SUBSEP)}else n=y(await p(e,t));return ee(e,r,n)?1:0}async function We(e,t,r){if(r)return Xe(e,t,r);if(!e.lines||e.lineIndex===void 0)return-1;let n=e.lineIndex+1;if(n>=e.lines.length)return 0;let a=e.lines[n];return t?A(e,t,a):T(e,a),e.NR++,e.lineIndex=n,1}async function Xe(e,t,r){if(!e.fs||!e.cwd)return-1;let n=y(await p(e,r)),a=e.fs.resolvePath(e.cwd,n);e.arrays.__file_cache__||(e.arrays.__file_cache__={});let s=`__fc_${a}`,o=`__fi_${a}`,l,u;if(e.vars[s]===void 0)try{l=(await e.fs.readFile(a)).split(`
|
|
4
|
-
`),l.length>0&&l[l.length-1]===""&&l.pop(),e.vars[s]=JSON.stringify(l),e.vars[o]=-1,u=-1}catch{return-1}else l=JSON.parse(e.vars[s]),u=e.vars[o];let m=u+1;if(m>=l.length)return 0;let N=l[m];return e.vars[o]=m,t?A(e,t,N):T(e,N),1}async function Ve(e,t){if(t.length===0)return"";for(let r=0;r<t.length-1;r++)await p(e,t[r]);return p(e,t[t.length-1])}ie(L);async function L(e,t){for(let r of t)if(await v(e,r),Ke(e))break}function Ke(e){return e.shouldExit||e.shouldNext||e.shouldNextFile||e.loopBreak||e.loopContinue||e.hasReturn}async function v(e,t){switch(t.type){case"block":await L(e,t.statements);break;case"expr_stmt":await p(e,t.expression);break;case"print":await Qe(e,t.args,t.output);break;case"printf":await je(e,t.format,t.args,t.output);break;case"if":await qe(e,t);break;case"while":await ze(e,t);break;case"do_while":await Ze(e,t);break;case"for":await Je(e,t);break;case"for_in":await Ye(e,t);break;case"break":e.loopBreak=!0;break;case"continue":e.loopContinue=!0;break;case"next":e.shouldNext=!0;break;case"nextfile":e.shouldNextFile=!0;break;case"exit":e.shouldExit=!0,e.exitCode=t.code?Math.floor(E(await p(e,t.code))):0;break;case"return":e.hasReturn=!0,e.returnValue=t.value?await p(e,t.value):"";break;case"delete":await et(e,t.target);break}}async function Qe(e,t,r){let n=[];for(let s of t)n.push(y(await p(e,s)));let a=n.join(e.OFS)+e.ORS;r?await ne(e,r.redirect,r.file,a):e.output+=a}async function je(e,t,r,n){let a=y(await p(e,t)),s=[];for(let l of r)s.push(await p(e,l));let o=W(a,s);n?await ne(e,n.redirect,n.file,o):e.output+=o}async function ne(e,t,r,n){if(!e.fs||!e.cwd){e.output+=n;return}let a=y(await p(e,r)),s=e.fs.resolvePath(e.cwd,a);t===">"?e.openedFiles.has(s)?await e.fs.appendFile(s,n):(await e.fs.writeFile(s,n),e.openedFiles.add(s)):(e.openedFiles.has(s)||e.openedFiles.add(s),await e.fs.appendFile(s,n))}async function qe(e,t){R(await p(e,t.condition))?await v(e,t.consequent):t.alternate&&await v(e,t.alternate)}async function ze(e,t){let r=0;for(;R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new P(`awk: while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function Ze(e,t){let r=0;do{if(r++,r>e.maxIterations)throw new P(`awk: do-while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}while(R(await p(e,t.condition)))}async function Je(e,t){t.init&&await p(e,t.init);let r=0;for(;!t.condition||R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new P(`awk: for loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break;t.update&&await p(e,t.update)}}async function Ye(e,t){let r=e.arrays[t.array];if(r)for(let n of Object.keys(r)){if(e.vars[t.variable]=n,e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function et(e,t){if(t.type==="array_access"){let r=y(await p(e,t.key));te(e,t.array,r)}else t.type==="variable"&&re(e,t.name)}var _=class{ctx;program=null;rangeStates=[];constructor(t){this.ctx=t}execute(t){this.program=t,this.ctx.output="";for(let r of t.functions)this.ctx.functions.set(r.name,r);this.rangeStates=t.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let t of this.program.rules)if(t.pattern?.type==="begin"&&(await L(this.ctx,t.action.statements),this.ctx.shouldExit))break}}async executeLine(t){if(!(!this.program||this.ctx.shouldExit)){T(this.ctx,t),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await L(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let t of this.program.rules)if(t.pattern?.type==="end"&&(await L(this.ctx,t.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(t,r){let n=t.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return O(n.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,n.expression));case"range":{let a=await this.matchPattern(n.start),s=await this.matchPattern(n.end);return this.rangeStates[r]?(s&&(this.rangeStates[r]=!1),!0):a?(this.rangeStates[r]=!0,s&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(t){switch(t.type){case"regex_pattern":return O(t.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,t.expression));default:return!1}}};function V(e={}){let{fieldSep:t=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=1e3,fs:a,cwd:s}=e;return{FS:" ",OFS:" ",ORS:`
|
|
5
|
-
`,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:t,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:a,cwd:s}}var i;(function(e){e.NUMBER="NUMBER",e.STRING="STRING",e.REGEX="REGEX",e.IDENT="IDENT",e.BEGIN="BEGIN",e.END="END",e.IF="IF",e.ELSE="ELSE",e.WHILE="WHILE",e.DO="DO",e.FOR="FOR",e.IN="IN",e.BREAK="BREAK",e.CONTINUE="CONTINUE",e.NEXT="NEXT",e.NEXTFILE="NEXTFILE",e.EXIT="EXIT",e.RETURN="RETURN",e.DELETE="DELETE",e.FUNCTION="FUNCTION",e.PRINT="PRINT",e.PRINTF="PRINTF",e.GETLINE="GETLINE",e.PLUS="PLUS",e.MINUS="MINUS",e.STAR="STAR",e.SLASH="SLASH",e.PERCENT="PERCENT",e.CARET="CARET",e.EQ="EQ",e.NE="NE",e.LT="LT",e.GT="GT",e.LE="LE",e.GE="GE",e.MATCH="MATCH",e.NOT_MATCH="NOT_MATCH",e.AND="AND",e.OR="OR",e.NOT="NOT",e.ASSIGN="ASSIGN",e.PLUS_ASSIGN="PLUS_ASSIGN",e.MINUS_ASSIGN="MINUS_ASSIGN",e.STAR_ASSIGN="STAR_ASSIGN",e.SLASH_ASSIGN="SLASH_ASSIGN",e.PERCENT_ASSIGN="PERCENT_ASSIGN",e.CARET_ASSIGN="CARET_ASSIGN",e.INCREMENT="INCREMENT",e.DECREMENT="DECREMENT",e.QUESTION="QUESTION",e.COLON="COLON",e.COMMA="COMMA",e.SEMICOLON="SEMICOLON",e.NEWLINE="NEWLINE",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.LBRACKET="LBRACKET",e.RBRACKET="RBRACKET",e.DOLLAR="DOLLAR",e.APPEND="APPEND",e.PIPE="PIPE",e.EOF="EOF"})(i||(i={}));var tt={BEGIN:i.BEGIN,END:i.END,if:i.IF,else:i.ELSE,while:i.WHILE,do:i.DO,for:i.FOR,in:i.IN,break:i.BREAK,continue:i.CONTINUE,next:i.NEXT,nextfile:i.NEXTFILE,exit:i.EXIT,return:i.RETURN,delete:i.DELETE,function:i.FUNCTION,print:i.PRINT,printf:i.PRINTF,getline:i.GETLINE};function rt(e){return e.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var B=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(t){this.input=t}tokenize(){let t=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(t.push(r),this.lastTokenType=r.type)}return t.push(this.makeToken(i.EOF,"")),t}makeToken(t,r){return{type:t,value:r,line:this.line,column:this.column}}peek(t=0){return this.input[this.pos+t]||""}advance(){let t=this.input[this.pos++]||"";return t===`
|
|
6
|
-
`?(this.line++,this.column=1):this.column++,t}skipWhitespace(){for(;this.pos<this.input.length;){let t=this.peek();if(t===" "||t===" "||t==="\r")this.advance();else if(t==="\\")if(this.peek(1)===`
|
|
7
|
-
`)this.advance(),this.advance();else break;else if(t==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
8
|
-
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let t=this.line,r=this.column,n=this.peek();return n===`
|
|
9
|
-
`?(this.advance(),{type:i.NEWLINE,value:`
|
|
10
|
-
`,line:t,column:r}):n==='"'?this.readString():n==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(n)||n==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(n)||n==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,i.NEWLINE,i.SEMICOLON,i.LBRACE,i.RBRACE,i.LPAREN,i.LBRACKET,i.COMMA,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.AND,i.OR,i.NOT,i.MATCH,i.NOT_MATCH,i.QUESTION,i.COLON,i.LT,i.GT,i.LE,i.GE,i.EQ,i.NE,i.PLUS,i.MINUS,i.STAR,i.PERCENT,i.CARET,i.PRINT,i.PRINTF,i.IF,i.WHILE,i.DO,i.FOR,i.RETURN]).has(this.lastTokenType)}readString(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let a=this.advance();switch(a){case"n":n+=`
|
|
11
|
-
`;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;default:n+=a}}else n+=this.advance();return this.peek()==='"'&&this.advance(),{type:i.STRING,value:n,line:t,column:r}}readRegex(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
|
|
12
|
-
`)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=rt(n),{type:i.REGEX,value:n,line:t,column:r}}readNumber(){let t=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:i.NUMBER,value:parseFloat(n),line:t,column:r}}readIdentifier(){let t=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let a=tt[n];return a?{type:a,value:n,line:t,column:r}:{type:i.IDENT,value:n,line:t,column:r}}readOperator(){let t=this.line,r=this.column,n=this.advance(),a=this.peek();switch(n){case"+":return a==="+"?(this.advance(),{type:i.INCREMENT,value:"++",line:t,column:r}):a==="="?(this.advance(),{type:i.PLUS_ASSIGN,value:"+=",line:t,column:r}):{type:i.PLUS,value:"+",line:t,column:r};case"-":return a==="-"?(this.advance(),{type:i.DECREMENT,value:"--",line:t,column:r}):a==="="?(this.advance(),{type:i.MINUS_ASSIGN,value:"-=",line:t,column:r}):{type:i.MINUS,value:"-",line:t,column:r};case"*":return a==="*"?(this.advance(),{type:i.CARET,value:"**",line:t,column:r}):a==="="?(this.advance(),{type:i.STAR_ASSIGN,value:"*=",line:t,column:r}):{type:i.STAR,value:"*",line:t,column:r};case"/":return a==="="?(this.advance(),{type:i.SLASH_ASSIGN,value:"/=",line:t,column:r}):{type:i.SLASH,value:"/",line:t,column:r};case"%":return a==="="?(this.advance(),{type:i.PERCENT_ASSIGN,value:"%=",line:t,column:r}):{type:i.PERCENT,value:"%",line:t,column:r};case"^":return a==="="?(this.advance(),{type:i.CARET_ASSIGN,value:"^=",line:t,column:r}):{type:i.CARET,value:"^",line:t,column:r};case"=":return a==="="?(this.advance(),{type:i.EQ,value:"==",line:t,column:r}):{type:i.ASSIGN,value:"=",line:t,column:r};case"!":return a==="="?(this.advance(),{type:i.NE,value:"!=",line:t,column:r}):a==="~"?(this.advance(),{type:i.NOT_MATCH,value:"!~",line:t,column:r}):{type:i.NOT,value:"!",line:t,column:r};case"<":return a==="="?(this.advance(),{type:i.LE,value:"<=",line:t,column:r}):{type:i.LT,value:"<",line:t,column:r};case">":return a==="="?(this.advance(),{type:i.GE,value:">=",line:t,column:r}):a===">"?(this.advance(),{type:i.APPEND,value:">>",line:t,column:r}):{type:i.GT,value:">",line:t,column:r};case"&":return a==="&"?(this.advance(),{type:i.AND,value:"&&",line:t,column:r}):{type:i.IDENT,value:"&",line:t,column:r};case"|":return a==="|"?(this.advance(),{type:i.OR,value:"||",line:t,column:r}):{type:i.PIPE,value:"|",line:t,column:r};case"~":return{type:i.MATCH,value:"~",line:t,column:r};case"?":return{type:i.QUESTION,value:"?",line:t,column:r};case":":return{type:i.COLON,value:":",line:t,column:r};case",":return{type:i.COMMA,value:",",line:t,column:r};case";":return{type:i.SEMICOLON,value:";",line:t,column:r};case"(":return{type:i.LPAREN,value:"(",line:t,column:r};case")":return{type:i.RPAREN,value:")",line:t,column:r};case"{":return{type:i.LBRACE,value:"{",line:t,column:r};case"}":return{type:i.RBRACE,value:"}",line:t,column:r};case"[":return{type:i.LBRACKET,value:"[",line:t,column:r};case"]":return{type:i.RBRACKET,value:"]",line:t,column:r};case"$":return{type:i.DOLLAR,value:"$",line:t,column:r};default:return{type:i.IDENT,value:n,line:t,column:r}}}isDigit(t){return t>="0"&&t<="9"}isAlpha(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isAlphaNumeric(t){return this.isDigit(t)||this.isAlpha(t)}};var U=class{tokens=[];pos=0;parse(t){let r=new B(t);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:i.EOF,value:"",line:0,column:0}}advance(){let t=this.current();return this.pos<this.tokens.length&&this.pos++,t}match(...t){return t.includes(this.current().type)}check(t){return this.current().type===t}expect(t,r){if(!this.check(t)){let n=this.current();throw new Error(r||`Expected ${t}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(i.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(i.NEWLINE)||this.check(i.SEMICOLON);)this.advance()}parseProgram(){let t=[],r=[];for(this.skipNewlines();!this.check(i.EOF)&&(this.skipNewlines(),!this.check(i.EOF));)this.check(i.FUNCTION)?t.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:t,rules:r}}parseFunction(){this.expect(i.FUNCTION);let t=this.expect(i.IDENT).value;this.expect(i.LPAREN);let r=[];if(!this.check(i.RPAREN))for(r.push(this.expect(i.IDENT).value);this.check(i.COMMA);)this.advance(),r.push(this.expect(i.IDENT).value);this.expect(i.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:t,params:r,body:n}}parseRule(){let t;if(this.check(i.BEGIN))this.advance(),t={type:"begin"};else if(this.check(i.END))this.advance(),t={type:"end"};else if(this.check(i.LBRACE))t=void 0;else if(this.check(i.REGEX)){let a={type:"regex_pattern",pattern:this.advance().value};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}else{let a={type:"expr_pattern",expression:this.parseExpression()};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}this.skipNewlines();let r;return this.check(i.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:t,action:r}}parseBlock(){this.expect(i.LBRACE),this.skipNewlines();let t=[];for(;!this.check(i.RBRACE)&&!this.check(i.EOF);)t.push(this.parseStatement()),this.skipTerminators();return this.expect(i.RBRACE),{type:"block",statements:t}}parseStatement(){if(this.check(i.LBRACE))return this.parseBlock();if(this.check(i.IF))return this.parseIf();if(this.check(i.WHILE))return this.parseWhile();if(this.check(i.DO))return this.parseDoWhile();if(this.check(i.FOR))return this.parseFor();if(this.check(i.BREAK))return this.advance(),{type:"break"};if(this.check(i.CONTINUE))return this.advance(),{type:"continue"};if(this.check(i.NEXT))return this.advance(),{type:"next"};if(this.check(i.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(i.EXIT)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(i.RETURN)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(i.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(i.PRINT)?this.parsePrint():this.check(i.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(i.IF),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(i.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:t,consequent:r,alternate:n}}parseWhile(){this.expect(i.WHILE),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:t,body:r}}parseDoWhile(){this.expect(i.DO),this.skipNewlines();let t=this.parseStatement();this.skipNewlines(),this.expect(i.WHILE),this.expect(i.LPAREN);let r=this.parseExpression();return this.expect(i.RPAREN),{type:"do_while",body:t,condition:r}}parseFor(){if(this.expect(i.FOR),this.expect(i.LPAREN),this.check(i.IDENT)){let s=this.advance();if(this.check(i.IN)){this.advance();let o=this.expect(i.IDENT).value;this.expect(i.RPAREN),this.skipNewlines();let l=this.parseStatement();return{type:"for_in",variable:s.value,array:o,body:l}}this.pos--}let t;this.check(i.SEMICOLON)||(t=this.parseExpression()),this.expect(i.SEMICOLON);let r;this.check(i.SEMICOLON)||(r=this.parseExpression()),this.expect(i.SEMICOLON);let n;this.check(i.RPAREN)||(n=this.parseExpression()),this.expect(i.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for",init:t,condition:r,update:n,body:a}}parsePrint(){this.expect(i.PRINT);let t=[];if(this.check(i.NEWLINE)||this.check(i.SEMICOLON)||this.check(i.RBRACE)||this.check(i.PIPE)||this.check(i.GT)||this.check(i.APPEND))t.push({type:"field",index:{type:"number",value:0}});else for(t.push(this.parsePrintArg());this.check(i.COMMA);)this.advance(),t.push(this.parsePrintArg());let r;return this.check(i.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:t,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let t=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===i.LPAREN&&t++,n.type===i.RPAREN&&t--,n.type===i.QUESTION&&t===0)return!0;if(n.type===i.NEWLINE||n.type===i.SEMICOLON||n.type===i.RBRACE||n.type===i.COMMA||n.type===i.PIPE||(n.type===i.GT||n.type===i.APPEND)&&t===0)return!1;r++}return!1}parsePrintOr(){let t=this.parsePrintAnd();for(;this.check(i.OR);){this.advance();let r=this.parsePrintAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parsePrintAnd(){let t=this.parsePrintIn();for(;this.check(i.AND);){this.advance();let r=this.parsePrintIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parsePrintIn(){let t=this.parsePrintMatch();if(this.check(i.IN)){this.advance();let r=String(this.expect(i.IDENT).value);return{type:"in",key:t,array:r}}return t}parsePrintMatch(){let t=this.parsePrintComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parsePrintComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parsePrintComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parsePrintf(){this.expect(i.PRINTF);let t=this.parsePrintArg(),r=[];for(;this.check(i.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(i.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:t,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let t=this.parseTernary();if(this.match(i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:t,value:n}}return t}parseTernary(){let t=this.parseOr();if(this.check(i.QUESTION)){this.advance();let r=this.parseExpression();this.expect(i.COLON);let n=this.parseExpression();t={type:"ternary",condition:t,consequent:r,alternate:n}}return t}parseOr(){let t=this.parseAnd();for(;this.check(i.OR);){this.advance();let r=this.parseAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parseAnd(){let t=this.parseIn();for(;this.check(i.AND);){this.advance();let r=this.parseIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parseIn(){let t=this.parseMatch();if(this.check(i.IN)){this.advance();let r=this.expect(i.IDENT).value;return{type:"in",key:t,array:r}}return t}parseMatch(){let t=this.parseComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parseComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parseComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parseConcatenation(){let t=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();t={type:"binary",operator:" ",left:t,right:r}}return t}canStartExpression(){return this.match(i.NUMBER,i.STRING,i.IDENT,i.DOLLAR,i.LPAREN,i.NOT,i.MINUS,i.PLUS,i.INCREMENT,i.DECREMENT)}isComparisonOrHigherOp(){return this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE,i.AND,i.OR,i.QUESTION,i.MATCH,i.NOT_MATCH,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.COMMA,i.SEMICOLON,i.NEWLINE,i.RBRACE,i.RPAREN,i.RBRACKET,i.COLON,i.PIPE,i.APPEND,i.IN)}parseAddSub(){let t=this.parseMulDiv();for(;this.match(i.PLUS,i.MINUS);){let r=this.advance().value,n=this.parseMulDiv();t={type:"binary",operator:r,left:t,right:n}}return t}parseMulDiv(){let t=this.parseUnary();for(;this.match(i.STAR,i.SLASH,i.PERCENT);){let r=this.advance(),n=this.parseUnary();t={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:t,right:n}}return t}parseUnary(){if(this.check(i.INCREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:t}}:{type:"pre_increment",operand:t}}if(this.check(i.DECREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:t}}:{type:"pre_decrement",operand:t}}if(this.match(i.NOT,i.MINUS,i.PLUS)){let t=this.advance().value,r=this.parseUnary();return{type:"unary",operator:t,operand:r}}return this.parsePower()}parsePower(){let t=this.parsePostfix();if(this.check(i.CARET)){this.advance();let r=this.parsePower();t={type:"binary",operator:"^",left:t,right:r}}return t}parsePostfix(){let t=this.parsePrimary();if(this.check(i.INCREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:t}}if(this.check(i.DECREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:t}}return t}parsePrimary(){if(this.check(i.NUMBER))return{type:"number",value:this.advance().value};if(this.check(i.STRING))return{type:"string",value:this.advance().value};if(this.check(i.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(i.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(i.LPAREN)){this.advance();let t=this.parseExpression();if(this.check(i.COMMA)){let r=[t];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"tuple",elements:r}}return this.expect(i.RPAREN),t}if(this.check(i.GETLINE)){this.advance();let t,r;return this.check(i.IDENT)&&(t=this.advance().value),this.check(i.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:t,file:r}}if(this.check(i.IDENT)){let t=this.advance().value;if(this.check(i.LPAREN)){this.advance();let r=[];if(!this.check(i.RPAREN))for(r.push(this.parseExpression());this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"call",name:t,args:r}}if(this.check(i.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(i.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let a=1;a<r.length;a++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[a]}}return{type:"array_access",array:t,key:n}}return{type:"variable",name:t}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var it={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},Wt={name:"awk",async execute(e,t){if(Q(e))return K(it);let r=/\s+/,n=" ",a={},s=0;for(let h=0;h<e.length;h++){let f=e[h];if(f==="-F"&&h+1<e.length)n=se(e[++h]),r=ae(n),s=h+1;else if(f.startsWith("-F"))n=se(f.slice(2)),r=ae(n),s=h+1;else if(f==="-v"&&h+1<e.length){let S=e[++h],G=S.indexOf("=");if(G>0){let k=S.slice(0,G),oe=S.slice(G+1);a[k]=oe}s=h+1}else{if(f.startsWith("--"))return x("awk",f);if(f.startsWith("-")&&f.length>1){let S=f[1];if(S!=="F"&&S!=="v")return x("awk",`-${S}`);s=h+1}else if(!f.startsWith("-")){s=h;break}}}if(s>=e.length)return{stdout:"",stderr:`awk: missing program
|
|
13
|
-
`,exitCode:1};let o=e[s],l=e.slice(s+1),u=new U,m;try{m=u.parse(o)}catch(h){return{stdout:"",stderr:`awk: ${h instanceof Error?h.message:String(h)}
|
|
14
|
-
`,exitCode:1}}let N={readFile:t.fs.readFile.bind(t.fs),writeFile:t.fs.writeFile.bind(t.fs),appendFile:async(h,f)=>{try{let S=await t.fs.readFile(h);await t.fs.writeFile(h,S+f)}catch{await t.fs.writeFile(h,f)}},resolvePath:t.fs.resolvePath.bind(t.fs)},c=V({fieldSep:r,maxIterations:t.limits?.maxAwkIterations,fs:N,cwd:t.cwd});c.FS=n,c.vars={...a},c.ARGC=l.length+1,c.ARGV={0:"awk"};for(let h=0;h<l.length;h++)c.ARGV[String(h+1)]=l[h];let d=new _(c);d.execute(m);try{if(await d.executeBegin(),c.shouldExit)return{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()};let h=[];if(l.length>0)for(let f of l)try{let S=t.fs.resolvePath(t.cwd,f),k=(await t.fs.readFile(S)).split(`
|
|
15
|
-
`);k.length>0&&k[k.length-1]===""&&k.pop(),h.push({filename:f,lines:k})}catch{return{stdout:"",stderr:`awk: ${f}: No such file or directory
|
|
16
|
-
`,exitCode:1}}else{let f=t.stdin.split(`
|
|
17
|
-
`);f.length>0&&f[f.length-1]===""&&f.pop(),h.push({filename:"",lines:f})}for(let f of h){for(c.FILENAME=f.filename,c.FNR=0,c.lines=f.lines,c.lineIndex=-1,c.shouldNextFile=!1;c.lineIndex<f.lines.length-1&&(c.lineIndex++,await d.executeLine(f.lines[c.lineIndex]),!(c.shouldExit||c.shouldNextFile)););if(c.shouldExit)break}return c.shouldExit||await d.executeEnd(),{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()}}catch(h){let f=h instanceof Error?h.message:String(h);return{stdout:d.getOutput(),stderr:`awk: ${f}
|
|
18
|
-
`,exitCode:2}}}};function se(e){return e.replace(/\\t/g," ").replace(/\\n/g,`
|
|
19
|
-
`).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function ae(e){if(e===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(e))try{return new RegExp(e)}catch{return new RegExp(le(e))}return new RegExp(le(e))}function le(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{Wt as awkCommand2};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{b as p}from"./chunk-3YNHMZ5M.js";import{a as l}from"./chunk-ZVV5VXYZ.js";import{a as c,b as i}from"./chunk-74CEPOFO.js";var b={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},g={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}},x={name:"base64",async execute(d,u){if(i(d))return c(b);let e=l("base64",d,g);if(!e.ok)return e.error;let f=e.result.flags.decode,s=e.result.flags.wrap,m=e.result.positional,a=await p(u,m,{cmdName:"base64"});if(!a.ok)return a.error;let n=a.content;try{if(f){let r=n.replace(/\s/g,"");return{stdout:Buffer.from(r,"base64").toString("utf-8"),stderr:"",exitCode:0}}let t=Buffer.from(n).toString("base64");if(s>0){let r=[];for(let o=0;o<t.length;o+=s)r.push(t.slice(o,o+s));t=r.join(`
|
|
2
|
-
`)+(t.length>0?`
|
|
3
|
-
`:"")}return{stdout:t,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`base64: invalid input
|
|
4
|
-
`,exitCode:1}}}};export{x as base64Command};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as l,b as u}from"./chunk-74CEPOFO.js";var m={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},b={name:"bash",async execute(t,e){if(u(t))return l(m);if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"bash",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],r=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,r,e)}catch{return{stdout:"",stderr:`bash: ${n}: No such file or directory
|
|
2
|
-
`,exitCode:127}}}},x={name:"sh",async execute(t,e){if(u(t))return l({...m,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"sh",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],r=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,r,e)}catch{return{stdout:"",stderr:`sh: ${n}: No such file or directory
|
|
3
|
-
`,exitCode:127}}}};async function h(t,e,n,r){if(!r.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
|
|
4
|
-
`,exitCode:1};let o={0:e,"#":String(n.length),"@":n.join(" "),"*":n.join(" ")};n.forEach((c,a)=>{o[String(a+1)]=c});let s=t;if(s.startsWith("#!")){let c=s.indexOf(`
|
|
5
|
-
`);c!==-1&&(s=s.slice(c+1))}let i=s.split(`
|
|
6
|
-
`),d=[];for(let c of i){let a=c.trim();a&&!a.startsWith("#")&&d.push(a)}let f=d.join("; ");return await r.exec(f,{env:o})}export{b as bashCommand,x as shCommand};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{a as p}from"./chunk-3YNHMZ5M.js";import{a as d}from"./chunk-ZVV5VXYZ.js";import{a as c,b as m}from"./chunk-74CEPOFO.js";var f={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},b={number:{short:"n",long:"number",type:"boolean"}},w={name:"cat",async execute(t,r){if(m(t))return c(f);let e=d("cat",t,b);if(!e.ok)return e.error;let s=e.result.flags.number,o=e.result.positional,a=await p(r,o,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),n="",i=1;for(let{content:l}of a.files)if(s){let u=h(l,i);n+=u.content,i=u.nextLineNumber}else n+=l;return{stdout:n,stderr:a.stderr,exitCode:a.exitCode}}};function h(t,r){let e=t.split(`
|
|
2
|
-
`),s=t.endsWith(`
|
|
3
|
-
`),o=s?e.slice(0,-1):e;return{content:o.map((n,i)=>`${String(r+i).padStart(6," ")} ${n}`).join(`
|
|
4
|
-
`)+(s?`
|
|
5
|
-
`:""),nextLineNumber:r+o.length}}export{w as catCommand};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
var n=class extends Error{stdout;stderr;constructor(t,s="",e=""){super(t),this.stdout=s,this.stderr=e}prependOutput(t,s){this.stdout=t+this.stdout,this.stderr=s+this.stderr}},o=class extends n{levels;name="BreakError";constructor(t=1,s="",e=""){super("break",s,e),this.levels=t}},i=class extends n{levels;name="ContinueError";constructor(t=1,s="",e=""){super("continue",s,e),this.levels=t}},c=class extends n{exitCode;name="ReturnError";constructor(t=0,s="",e=""){super("return",s,e),this.exitCode=t}},a=class extends n{exitCode;name="ErrexitError";constructor(t,s="",e=""){super(`errexit: command exited with status ${t}`,s,e),this.exitCode=t}},d=class extends n{varName;name="NounsetError";constructor(t,s=""){super(`${t}: unbound variable`,s,`bash: ${t}: unbound variable
|
|
2
|
-
`),this.varName=t}},x=class extends n{exitCode;name="ExitError";constructor(t,s="",e=""){super("exit",s,e),this.exitCode=t}},p=class extends n{name="ArithmeticError";constructor(t,s="",e=""){super(t,s,e),this.stderr=e||`bash: ${t}
|
|
3
|
-
`}},h=class extends n{name="BadSubstitutionError";constructor(t,s="",e=""){super(t,s,e),this.stderr=e||`bash: ${t}: bad substitution
|
|
4
|
-
`}},l=class extends n{limitType;name="ExecutionLimitError";static EXIT_CODE=126;constructor(t,s,e="",u=""){super(t,e,u),this.limitType=s,this.stderr=u||`bash: ${t}
|
|
5
|
-
`}};function b(r){return r instanceof o||r instanceof i||r instanceof c}export{o as a,i as b,c,a as d,d as e,x as f,p as g,h,l as i,b as j};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function c(t,a,e){let l=t;e>=0&&l.length>e&&(l=l.slice(0,e));let s=Math.abs(a);return s>l.length&&(a<0?l=l.padEnd(s," "):l=l.padStart(s," ")),l}function i(t,a){let e=a,l=0,s=-1,n=!1;for(e<t.length&&t[e]==="-"&&(n=!0,e++);e<t.length&&/\d/.test(t[e]);)l=l*10+parseInt(t[e],10),e++;if(e<t.length&&t[e]===".")for(e++,s=0;e<t.length&&/\d/.test(t[e]);)s=s*10+parseInt(t[e],10),e++;return n&&l>0&&(l=-l),[l,s,e-a]}function h(t){let a="",e=0;for(;e<t.length;)if(t[e]==="\\"&&e+1<t.length)switch(t[e+1]){case"n":a+=`
|
|
2
|
-
`,e+=2;break;case"t":a+=" ",e+=2;break;case"r":a+="\r",e+=2;break;case"\\":a+="\\",e+=2;break;case"a":a+="\x07",e+=2;break;case"b":a+="\b",e+=2;break;case"f":a+="\f",e+=2;break;case"v":a+="\v",e+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",n=e+1;for(;n<t.length&&n<e+4&&/[0-7]/.test(t[n]);)s+=t[n],n++;a+=String.fromCharCode(parseInt(s,8)),e=n;break}case"x":e+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(e+2,e+4))?(a+=String.fromCharCode(parseInt(t.slice(e+2,e+4),16)),e+=4):(a+=t[e],e++);break;default:a+=t[e],e++}else a+=t[e],e++;return a}export{c as a,i as b,h as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,b as r}from"./chunk-74CEPOFO.js";var t={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},s={name:"clear",async execute(a,c){return r(a)?e(t):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}};export{s as clearCommand};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{a as m}from"./chunk-ZVV5VXYZ.js";import{a as $}from"./chunk-44UOCSGV.js";import{a as g,b as y}from"./chunk-74CEPOFO.js";var D={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},E={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},R={name:"cp",async execute(f,e){if(y(f))return g(D);let t=m("cp",f,E);if(!t.ok)return t.error;let u=t.result.flags.recursive||t.result.flags.recursiveUpper,w=t.result.flags.noClobber,C=t.result.flags.preserve,P=t.result.flags.verbose,a=t.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
|
|
2
|
-
`,exitCode:1};let d=a.pop()??"",h=a,o=e.fs.resolvePath(e.cwd,d),v="",n="",l=0,p=!1;try{p=(await e.fs.stat(o)).isDirectory}catch{}if(h.length>1&&!p)return{stdout:"",stderr:`cp: target '${d}' is not a directory
|
|
3
|
-
`,exitCode:1};for(let r of h)try{let i=e.fs.resolvePath(e.cwd,r),s=await e.fs.stat(i),c=o;if(p){let b=r.split("/").pop()||r;c=o==="/"?`/${b}`:`${o}/${b}`}if(s.isDirectory&&!u){n+=`cp: -r not specified; omitting directory '${r}'
|
|
4
|
-
`,l=1;continue}if(w)try{await e.fs.stat(c);continue}catch{}await e.fs.cp(i,c,{recursive:u}),P&&(v+=`'${r}' -> '${c}'
|
|
5
|
-
`)}catch(i){let s=$(i);s.includes("ENOENT")||s.includes("no such file")?n+=`cp: cannot stat '${r}': No such file or directory
|
|
6
|
-
`:n+=`cp: cannot copy '${r}': ${s}
|
|
7
|
-
`,l=1}return{stdout:v,stderr:n,exitCode:l}}};export{R as cpCommand};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{b as x}from"./chunk-3YNHMZ5M.js";import{a as y,b as I,c as m}from"./chunk-74CEPOFO.js";var W={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST select only these characters","-d DELIM use DELIM instead of TAB for field delimiter","-f LIST select only these fields","-s, --only-delimited do not print lines without delimiters"," --help display this help and exit"]};function k(t){let c=[],l=t.split(",");for(let n of l)if(n.includes("-")){let[s,r]=n.split("-");c.push({start:s?parseInt(s,10):1,end:r?parseInt(r,10):null})}else{let s=parseInt(n,10);c.push({start:s,end:s})}return c}function C(t,c){let l=[];for(let n of c){let s=n.start-1,r=n.end===null?t.length:n.end;for(let i=s;i<r&&i<t.length;i++)i>=0&&!l.includes(t[i])&&l.push(t[i])}return l}var E={name:"cut",async execute(t,c){if(I(t))return y(W);let l=" ",n=null,s=null,r=!1,i=[];for(let o=0;o<t.length;o++){let e=t[o];if(e==="-d")l=t[++o]||" ";else if(e.startsWith("-d"))l=e.slice(2);else if(e==="-f")n=t[++o];else if(e.startsWith("-f"))n=e.slice(2);else if(e==="-c")s=t[++o];else if(e.startsWith("-c"))s=e.slice(2);else if(e==="-s"||e==="--only-delimited")r=!0;else{if(e.startsWith("--"))return m("cut",e);if(e.startsWith("-")){let f=!1;for(let u of e.slice(1))if(u==="s")r=!0;else if(!"dfc".includes(u)){f=!0;break}if(f)return m("cut",e)}else i.push(e)}}if(!n&&!s)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
|
|
2
|
-
`,exitCode:1};let p=await x(c,i,{cmdName:"cut"});if(!p.ok)return p.error;let a=p.content.split(`
|
|
3
|
-
`);a.length>0&&a[a.length-1]===""&&a.pop();let g=k(n||s||"1"),h="";for(let o of a)if(s){let e=o.split(""),f=[];for(let u of g){let w=u.start-1,L=u.end===null?e.length:u.end;for(let d=w;d<L&&d<e.length;d++)d>=0&&f.push(e[d])}h+=`${f.join("")}
|
|
4
|
-
`}else{if(r&&!o.includes(l))continue;let e=o.split(l),f=C(e,g);h+=`${f.join(l)}
|
|
5
|
-
`}return{stdout:h,stderr:"",exitCode:0}}};export{E as cutCommand};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as p}from"./chunk-ZVV5VXYZ.js";import{a as l,b as u}from"./chunk-74CEPOFO.js";import*as c from"diff";var y={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},C={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},$={name:"diff",async execute(d,e){if(u(d))return l(y);let t=p("diff",d,C);if(!t.ok)return t.error;let h=t.result.flags.brief,g=t.result.flags.reportSame,m=t.result.flags.ignoreCase,a=t.result.positional;if(t.result.flags.unified,a.length<2)return{stdout:"",stderr:`diff: missing operand
|
|
2
|
-
`,exitCode:2};let o,s,[r,i]=a;try{o=r==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,r))}catch{return{stdout:"",stderr:`diff: ${r}: No such file or directory
|
|
3
|
-
`,exitCode:2}}try{s=i==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,i))}catch{return{stdout:"",stderr:`diff: ${i}: No such file or directory
|
|
4
|
-
`,exitCode:2}}let f=o,n=s;return m&&(f=f.toLowerCase(),n=n.toLowerCase()),f===n?g?{stdout:`Files ${r} and ${i} are identical
|
|
5
|
-
`,stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0}:h?{stdout:`Files ${r} and ${i} differ
|
|
6
|
-
`,stderr:"",exitCode:1}:{stdout:c.createTwoFilesPatch(r,i,o,s,"","",{context:3}),stderr:"",exitCode:1}}};export{$ as diffCommand};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as i,b as o}from"./chunk-74CEPOFO.js";var m={name:"dirname",summary:"strip last component from file name",usage:"dirname [OPTION] NAME...",options:[" --help display this help and exit"]},p={name:"dirname",async execute(t,l){if(o(t))return i(m);let a=t.filter(n=>!n.startsWith("-"));if(a.length===0)return{stdout:"",stderr:`dirname: missing operand
|
|
2
|
-
`,exitCode:1};let e=[];for(let n of a){let r=n.replace(/\/+$/,""),s=r.lastIndexOf("/");s===-1?e.push("."):s===0?e.push("/"):e.push(r.slice(0,s))}return{stdout:`${e.join(`
|
|
3
|
-
`)}
|
|
4
|
-
`,stderr:"",exitCode:0}}};export{p as dirnameCommand};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{a as z}from"./chunk-ZVV5VXYZ.js";import{a as p,b as g}from"./chunk-74CEPOFO.js";var $={name:"du",summary:"estimate file space usage",usage:"du [OPTION]... [FILE]...",options:["-a write counts for all files, not just directories","-h print sizes in human readable format","-s display only a total for each argument","-c produce a grand total","--max-depth=N print total for directory only if N or fewer levels deep"," --help display this help and exit"]},D={allFiles:{short:"a",type:"boolean"},humanReadable:{short:"h",type:"boolean"},summarize:{short:"s",type:"boolean"},grandTotal:{short:"c",type:"boolean"},maxDepth:{long:"max-depth",type:"number"}},F={name:"du",async execute(t,l){if(g(t))return p($);let a=z("du",t,D);if(!a.ok)return a.error;let e={allFiles:a.result.flags.allFiles,humanReadable:a.result.flags.humanReadable,summarize:a.result.flags.summarize,grandTotal:a.result.flags.grandTotal,maxDepth:a.result.flags.maxDepth??null},s=a.result.positional;s.length===0&&s.push(".");let r="",n="",m=0;for(let o of s){let i=l.fs.resolvePath(l.cwd,o);try{await l.fs.stat(i);let u=await y(l,i,o,e,0);r+=u.output,m+=u.totalSize,n+=u.stderr}catch{n+=`du: cannot access '${o}': No such file or directory
|
|
2
|
-
`}}return e.grandTotal&&s.length>0&&(r+=`${d(m,e.humanReadable)} total
|
|
3
|
-
`),{stdout:r,stderr:n,exitCode:n?1:0}}};async function y(t,l,a,e,s){let r={output:"",totalSize:0,stderr:""};try{let n=await t.fs.stat(l);if(!n.isDirectory)return r.totalSize=n.size,(e.allFiles||s===0)&&(r.output=d(n.size,e.humanReadable)+" "+a+`
|
|
4
|
-
`),r;let m=await t.fs.readdir(l),o=0;for(let i of m){let u=l==="/"?`/${i}`:`${l}/${i}`,f=a==="."?i:`${a}/${i}`;try{let c=await t.fs.stat(u);if(c.isDirectory){let h=await y(t,u,f,e,s+1);o+=h.totalSize,e.summarize||(e.maxDepth===null||s+1<=e.maxDepth?r.output+=h.output:o+=0)}else o+=c.size,e.allFiles&&!e.summarize&&(r.output+=d(c.size,e.humanReadable)+" "+f+`
|
|
5
|
-
`)}catch{}}r.totalSize=o,(e.summarize||e.maxDepth===null||s<=e.maxDepth)&&(r.output+=`${d(o,e.humanReadable)} ${a}
|
|
6
|
-
`)}catch{r.stderr=`du: cannot read directory '${a}': Permission denied
|
|
7
|
-
`}return r}function d(t,l){return l?t<1024?`${t}`:t<1024*1024?`${(t/1024).toFixed(1)}K`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)}M`:`${(t/(1024*1024*1024)).toFixed(1)}G`:String(Math.ceil(t/1024)||1)}export{F as duCommand};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{a as m,b as f,c as p}from"./chunk-74CEPOFO.js";var O={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},y={name:"env",async execute(s,i){if(f(s))return m(O);let u=!1,o=[],l={},t=-1;for(let n=0;n<s.length;n++){let e=s[n];if(e==="-i"||e==="--ignore-environment")u=!0;else if(e==="-u"&&n+1<s.length)o.push(s[++n]);else if(e.startsWith("-u"))o.push(e.slice(2));else if(e.startsWith("--unset="))o.push(e.slice(8));else{if(e.startsWith("--")&&e!=="--")return p("env",e);if(e.startsWith("-")&&e!=="-"){for(let r of e.slice(1))if(r!=="i"&&r!=="u")return p("env",`-${r}`);e.includes("i")&&(u=!0)}else if(e.includes("=")&&t===-1){let r=e.indexOf("="),h=e.slice(0,r),x=e.slice(r+1);l[h]=x}else{t=n;break}}}let a;if(u)a={...l};else{a={...i.env};for(let n of o)delete a[n];Object.assign(a,l)}if(t===-1){let n=[];for(let[e,r]of Object.entries(a))n.push(`${e}=${r}`);return{stdout:n.join(`
|
|
2
|
-
`)+(n.length>0?`
|
|
3
|
-
`:""),stderr:"",exitCode:0}}if(!i.exec)return{stdout:"",stderr:`env: command execution not supported in this context
|
|
4
|
-
`,exitCode:1};let c=s.slice(t).join(" "),d=Object.entries(l).map(([n,e])=>`${n}="${e}"`).join(" "),v=d?`${d} ${c}`:c;return i.exec(v,{cwd:i.cwd})}},g={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},A={name:"printenv",async execute(s,i){if(f(s))return m(g);let u=s.filter(t=>!t.startsWith("-"));if(u.length===0){let t=[];for(let[a,c]of Object.entries(i.env))t.push(`${a}=${c}`);return{stdout:t.join(`
|
|
5
|
-
`)+(t.length>0?`
|
|
6
|
-
`:""),stderr:"",exitCode:0}}let o=[],l=0;for(let t of u)t in i.env?o.push(i.env[t]):l=1;return{stdout:o.join(`
|
|
7
|
-
`)+(o.length>0?`
|
|
8
|
-
`:""),stderr:"",exitCode:l}}};export{y as envCommand,A as printenvCommand};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{a as m,b as f,c as p}from"./chunk-74CEPOFO.js";var O={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},y={name:"env",async execute(s,r){if(f(s))return m(O);let u=!1,i=[],l={},t=-1;for(let n=0;n<s.length;n++){let e=s[n];if(e==="-i"||e==="--ignore-environment")u=!0;else if(e==="-u"&&n+1<s.length)i.push(s[++n]);else if(e.startsWith("-u"))i.push(e.slice(2));else if(e.startsWith("--unset="))i.push(e.slice(8));else{if(e.startsWith("--")&&e!=="--")return p("env",e);if(e.startsWith("-")&&e!=="-"){for(let o of e.slice(1))if(o!=="i"&&o!=="u")return p("env",`-${o}`);e.includes("i")&&(u=!0)}else if(e.includes("=")&&t===-1){let o=e.indexOf("="),h=e.slice(0,o),x=e.slice(o+1);l[h]=x}else{t=n;break}}}let a;if(u)a={...l};else{a={...r.env};for(let n of i)delete a[n];Object.assign(a,l)}if(t===-1){let n=[];for(let[e,o]of Object.entries(a))n.push(`${e}=${o}`);return{stdout:n.join(`
|
|
2
|
-
`)+(n.length>0?`
|
|
3
|
-
`:""),stderr:"",exitCode:0}}if(!r.exec)return{stdout:"",stderr:`env: command execution not supported in this context
|
|
4
|
-
`,exitCode:1};let c=s.slice(t).join(" "),v=Object.entries(l).map(([n,e])=>`${n}="${e}"`).join(" "),d=v?`${v} ${c}`:c;return r.exec(d)}},g={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},A={name:"printenv",async execute(s,r){if(f(s))return m(g);let u=s.filter(t=>!t.startsWith("-"));if(u.length===0){let t=[];for(let[a,c]of Object.entries(r.env))t.push(`${a}=${c}`);return{stdout:t.join(`
|
|
5
|
-
`)+(t.length>0?`
|
|
6
|
-
`:""),stderr:"",exitCode:0}}let i=[],l=0;for(let t of u)t in r.env?i.push(r.env[t]):l=1;return{stdout:i.join(`
|
|
7
|
-
`)+(i.length>0?`
|
|
8
|
-
`:""),stderr:"",exitCode:l}}};export{y as envCommand,A as printenvCommand};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{a as N}from"./chunk-UJMN5NLH.js";import{a as L,b as B,c as H}from"./chunk-TDJNT32M.js";import{a as I,b as O}from"./chunk-74CEPOFO.js";function w(e,s){switch(e.type){case"name":return{matches:N(s.name,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:N(s.relativePath,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"regex":try{let n=e.ignoreCase?"i":"";return{matches:new RegExp(e.pattern,n).test(s.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return e.fileType==="f"?{matches:s.isFile,pruned:!1,printed:!1}:e.fileType==="d"?{matches:s.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:s.isEmpty,pruned:!1,printed:!1};case"mtime":{let r=(Date.now()-s.mtime)/(1e3*60*60*24),t;return e.comparison==="more"?t=r>e.days:e.comparison==="less"?t=r<e.days:t=Math.floor(r)===e.days,{matches:t,pruned:!1,printed:!1}}case"newer":{let n=s.newerRefTimes.get(e.refPath);return n===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:s.mtime>n,pruned:!1,printed:!1}}case"size":{let n=e.value;switch(e.unit){case"c":n=e.value;break;case"k":n=e.value*1024;break;case"M":n=e.value*1024*1024;break;case"G":n=e.value*1024*1024*1024;break;case"b":n=e.value*512;break}let r;return e.comparison==="more"?r=s.size>n:e.comparison==="less"?r=s.size<n:e.unit==="b"?r=Math.ceil(s.size/512)===e.value:r=s.size===n,{matches:r,pruned:!1,printed:!1}}case"perm":{let n=s.mode&511,r=e.mode&511,t;return e.matchType==="exact"?t=n===r:e.matchType==="all"?t=(n&r)===r:t=(n&r)!==0,{matches:t,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let n=w(e.expr,s);return{matches:!n.matches,pruned:n.pruned,printed:!1}}case"and":{let n=w(e.left,s);if(!n.matches)return{matches:!1,pruned:n.pruned,printed:!1};let r=w(e.right,s);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:n.printed||r.printed}}case"or":{let n=w(e.left,s);if(n.matches)return n;let r=w(e.right,s);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:r.printed}}}}function G(e){let s=[],n=r=>{r&&(r.type==="newer"?s.push(r.refPath):r.type==="not"?n(r.expr):(r.type==="and"||r.type==="or")&&(n(r.left),n(r.right)))};return n(e),s}function j(e,s){let n=[],r=[],t=s;for(;t<e.length;){let a=e[t];if(a==="("||a==="\\("){n.push({type:"lparen"}),t++;continue}if(a===")"||a==="\\)"){n.push({type:"rparen"}),t++;continue}if(a==="-name"&&t+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++t]}});else if(a==="-iname"&&t+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++t],ignoreCase:!0}});else if(a==="-path"&&t+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++t]}});else if(a==="-ipath"&&t+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++t],ignoreCase:!0}});else if(a==="-regex"&&t+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++t]}});else if(a==="-iregex"&&t+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++t],ignoreCase:!0}});else if(a==="-type"&&t+1<e.length){let i=e[++t];if(i==="f"||i==="d")n.push({type:"expr",expr:{type:"type",fileType:i}});else return{expr:null,pathIndex:t,error:`find: Unknown argument to -type: ${i}
|
|
2
|
-
`,actions:[]}}else if(a==="-empty")n.push({type:"expr",expr:{type:"empty"}});else if(a==="-mtime"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("+")?(c="more",o=i.slice(1)):i.startsWith("-")&&(c="less",o=i.slice(1));let h=parseInt(o,10);Number.isNaN(h)||n.push({type:"expr",expr:{type:"mtime",days:h,comparison:c}})}else if(a==="-newer"&&t+1<e.length){let i=e[++t];n.push({type:"expr",expr:{type:"newer",refPath:i}})}else if(a==="-size"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("+")?(c="more",o=i.slice(1)):i.startsWith("-")&&(c="less",o=i.slice(1));let h=o.match(/^(\d+)([ckMGb])?$/);if(h){let b=parseInt(h[1],10),y=h[2]||"b";n.push({type:"expr",expr:{type:"size",value:b,unit:y,comparison:c}})}}else if(a==="-perm"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("-")?(c="all",o=i.slice(1)):i.startsWith("/")&&(c="any",o=i.slice(1));let h=parseInt(o,8);Number.isNaN(h)||n.push({type:"expr",expr:{type:"perm",mode:h,matchType:c}})}else if(a==="-prune")n.push({type:"expr",expr:{type:"prune"}});else if(a==="-not"||a==="!")n.push({type:"not"});else if(a==="-o"||a==="-or")n.push({type:"op",op:"or"});else if(a==="-a"||a==="-and")n.push({type:"op",op:"and"});else if(a==="-maxdepth"||a==="-mindepth")t++;else if(a!=="-depth")if(a==="-exec"){let i=[];for(t++;t<e.length&&e[t]!==";"&&e[t]!=="+";)i.push(e[t]),t++;if(t>=e.length)return{expr:null,pathIndex:t,error:"find: missing argument to `-exec'\n",actions:[]};let c=e[t]==="+";r.push({type:"exec",command:i,batchMode:c})}else if(a==="-print")n.push({type:"expr",expr:{type:"print"}}),r.push({type:"print"});else if(a==="-print0")r.push({type:"print0"});else if(a==="-printf"&&t+1<e.length){let i=e[++t];r.push({type:"printf",format:i})}else if(a==="-delete")r.push({type:"delete"});else{if(a.startsWith("-"))return{expr:null,pathIndex:t,error:`find: unknown predicate '${a}'
|
|
3
|
-
`,actions:[]};if(n.length===0){t++;continue}break}t++}if(n.length===0)return{expr:null,pathIndex:t,actions:r};let m=_(n);return m.error?{expr:null,pathIndex:t,error:m.error,actions:r}:{expr:m.expr,pathIndex:t,actions:r}}function _(e){let s=0;function n(){let i=r();if(!i)return null;for(;s<e.length;){let c=e[s];if(c.type==="op"&&c.op==="or"){s++;let o=r();if(!o)return i;i={type:"or",left:i,right:o}}else break}return i}function r(){let i=t();if(!i)return null;for(;s<e.length;){let c=e[s];if(c.type==="op"&&c.op==="and"){s++;let o=t();if(!o)return i;i={type:"and",left:i,right:o}}else if(c.type==="expr"||c.type==="not"||c.type==="lparen"){let o=t();if(!o)return i;i={type:"and",left:i,right:o}}else break}return i}function t(){if(s<e.length&&e[s].type==="not"){s++;let i=t();return i?{type:"not",expr:i}:null}return m()}function m(){if(s>=e.length)return null;let i=e[s];if(i.type==="lparen"){s++;let c=n();return s<e.length&&e[s].type==="rparen"&&s++,c}return i.type==="expr"?(s++,i.expr):(i.type==="rparen",null)}return{expr:n()}}var K={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-depth process directory contents before directory itself","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-printf FORMAT print FORMAT with directives: %f %h %p %P %s %d %m %M %t","-delete delete found files/directories"," --help display this help and exit"]},U=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),oe={name:"find",async execute(e,s){if(O(e))return I(K);let n=[],r=null,t=null,m=!1,a=!1;for(let p=0;p<e.length;p++){let l=e[p];if(l==="-maxdepth"&&p+1<e.length)a=!0,r=parseInt(e[++p],10);else if(l==="-mindepth"&&p+1<e.length)a=!0,t=parseInt(e[++p],10);else if(l==="-depth")a=!0,m=!0;else if(l==="-exec")for(a=!0,p++;p<e.length&&e[p]!==";"&&e[p]!=="+";)p++;else!l.startsWith("-")&&l!==";"&&l!=="+"&&l!=="("&&l!==")"&&l!=="\\("&&l!=="\\)"&&l!=="!"?a||n.push(l):U.has(l)?(a=!0,p++):(l.startsWith("-")||l==="("||l==="\\("||l==="!")&&(a=!0)}n.length===0&&n.push(".");let{expr:i,error:c,actions:o}=j(e,0);if(c)return{stdout:"",stderr:c,exitCode:1};let h=o.some(p=>p.type==="print"),b=o.length===0,y=[],Y=o.some(p=>p.type==="printf"),F=[],T="",D=0,V=G(i),k=new Map;for(let p of V){let l=s.fs.resolvePath(s.cwd,p);try{let g=await s.fs.stat(l);k.set(p,g.mtime?.getTime()??Date.now())}catch{}}for(let p of n){let l=s.fs.resolvePath(s.cwd,p);try{await s.fs.stat(l)}catch{T+=`find: ${p}: No such file or directory
|
|
4
|
-
`,D=1;continue}async function g(u,d){if(r!==null&&d>r)return;let f;try{f=await s.fs.stat(u)}catch{return}if(!f)return;let E;u===l?E=p.split("/").pop()||p:E=u.split("/").pop()||"";let v=u===l?p:p==="."?`./${u.slice(l.length+1)}`:p+u.slice(l.length),M=null;f.isDirectory&&(M=await s.fs.readdir(u));let R=f.isFile?f.size===0:M!==null&&M.length===0,C=()=>{let x=t===null||d>=t,$=!1;if(x&&i!==null){let J={name:E,relativePath:v,isFile:f.isFile,isDirectory:f.isDirectory,isEmpty:R,mtime:f.mtime?.getTime()??Date.now(),size:f.size??0,mode:f.mode??420,newerRefTimes:k},W=w(i,J);x=W.matches,h?$=W.printed:$=x}else x&&($=!0);$&&(y.push(v),Y&&F.push({path:v,name:E,size:f.size??0,mtime:f.mtime?.getTime()??Date.now(),mode:f.mode??420,isDirectory:f.isDirectory,depth:d,startingPoint:p}))},A=async()=>{if(M!==null)for(let P of M){let x=u==="/"?`/${P}`:`${u}/${P}`;await g(x,d+1)}},z=!1;if(!m&&i!==null){let P={name:E,relativePath:v,isFile:f.isFile,isDirectory:f.isDirectory,isEmpty:R,mtime:f.mtime?.getTime()??Date.now(),size:f.size??0,mode:f.mode??420,newerRefTimes:k};z=w(i,P).pruned}m?(await A(),C()):(C(),z||await A())}await g(l,0)}let S="";if(o.length>0)for(let p of o)switch(p.type){case"print":S+=y.length>0?`${y.join(`
|
|
5
|
-
`)}
|
|
6
|
-
`:"";break;case"print0":S+=y.length>0?`${y.join("\0")}\0`:"";break;case"delete":{let l=[...y].sort((g,u)=>u.length-g.length);for(let g of l){let u=s.fs.resolvePath(s.cwd,g);try{await s.fs.rm(u,{recursive:!1})}catch(d){let f=d instanceof Error?d.message:String(d);T+=`find: cannot delete '${g}': ${f}
|
|
7
|
-
`,D=1}}break}case"printf":for(let l of F)S+=q(p.format,l);break;case"exec":if(!s.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
8
|
-
`,exitCode:1};if(p.batchMode){let l=[];for(let d of p.command)d==="{}"?l.push(...y):l.push(d);let g=l.map(d=>`"${d}"`).join(" "),u=await s.exec(g,{cwd:s.cwd});S+=u.stdout,T+=u.stderr,u.exitCode!==0&&(D=u.exitCode)}else for(let l of y){let u=p.command.map(f=>f==="{}"?l:f).map(f=>`"${f}"`).join(" "),d=await s.exec(u,{cwd:s.cwd});S+=d.stdout,T+=d.stderr,d.exitCode!==0&&(D=d.exitCode)}break}else b&&(S=y.length>0?`${y.join(`
|
|
9
|
-
`)}
|
|
10
|
-
`:"");return{stdout:S,stderr:T,exitCode:D}}};function q(e,s){let n=H(e),r="",t=0;for(;t<n.length;)if(n[t]==="%"&&t+1<n.length){if(t++,n[t]==="%"){r+="%",t++;continue}let[m,a,i]=B(n,t);if(t+=i,t>=n.length){r+="%";break}let c=n[t],o;switch(c){case"f":o=s.name,t++;break;case"h":{let h=s.path.lastIndexOf("/");o=h>0?s.path.slice(0,h):".",t++;break}case"p":o=s.path,t++;break;case"P":{let h=s.startingPoint;s.path===h?o="":s.path.startsWith(`${h}/`)?o=s.path.slice(h.length+1):h==="."&&s.path.startsWith("./")?o=s.path.slice(2):o=s.path,t++;break}case"s":o=String(s.size),t++;break;case"d":o=String(s.depth),t++;break;case"m":o=(s.mode&511).toString(8),t++;break;case"M":o=Q(s.mode,s.isDirectory),t++;break;case"t":{let h=new Date(s.mtime);o=X(h),t++;break}case"T":{if(t+1<n.length){let h=n[t+1],b=new Date(s.mtime);o=Z(b,h),t+=2}else o="%T",t++;break}default:r+="%"+(m!==0||a!==-1?`${m}.${a}`:"")+c,t++;continue}r+=L(o,m,a)}else r+=n[t],t++;return r}function Q(e,s){let n=e&511,r=s?"d":"-";return r+=n&256?"r":"-",r+=n&128?"w":"-",r+=n&64?"x":"-",r+=n&32?"r":"-",r+=n&16?"w":"-",r+=n&8?"x":"-",r+=n&4?"r":"-",r+=n&2?"w":"-",r+=n&1?"x":"-",r}function X(e){let s=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=s[e.getDay()],t=n[e.getMonth()],m=String(e.getDate()).padStart(2," "),a=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0"),o=e.getFullYear();return`${r} ${t} ${m} ${a}:${i}:${c} ${o}`}function Z(e,s){switch(s){case"@":return String(e.getTime()/1e3);case"Y":return String(e.getFullYear());case"m":return String(e.getMonth()+1).padStart(2,"0");case"d":return String(e.getDate()).padStart(2,"0");case"H":return String(e.getHours()).padStart(2,"0");case"M":return String(e.getMinutes()).padStart(2,"0");case"S":return String(e.getSeconds()).padStart(2,"0");case"T":return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`;case"F":return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;default:return`%T${s}`}}export{oe as findCommand};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{a as N}from"./chunk-UJMN5NLH.js";import{a as A,b as z}from"./chunk-74CEPOFO.js";function g(e,s){switch(e.type){case"name":return{matches:N(s.name,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:N(s.relativePath,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"regex":try{let t=e.ignoreCase?"i":"";return{matches:new RegExp(e.pattern,t).test(s.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return e.fileType==="f"?{matches:s.isFile,pruned:!1,printed:!1}:e.fileType==="d"?{matches:s.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:s.isEmpty,pruned:!1,printed:!1};case"mtime":{let r=(Date.now()-s.mtime)/(1e3*60*60*24),n;return e.comparison==="more"?n=r>e.days:e.comparison==="less"?n=r<e.days:n=Math.floor(r)===e.days,{matches:n,pruned:!1,printed:!1}}case"newer":{let t=s.newerRefTimes.get(e.refPath);return t===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:s.mtime>t,pruned:!1,printed:!1}}case"size":{let t=e.value;switch(e.unit){case"c":t=e.value;break;case"k":t=e.value*1024;break;case"M":t=e.value*1024*1024;break;case"G":t=e.value*1024*1024*1024;break;case"b":t=e.value*512;break}let r;return e.comparison==="more"?r=s.size>t:e.comparison==="less"?r=s.size<t:e.unit==="b"?r=Math.ceil(s.size/512)===e.value:r=s.size===t,{matches:r,pruned:!1,printed:!1}}case"perm":{let t=s.mode&511,r=e.mode&511,n;return e.matchType==="exact"?n=t===r:e.matchType==="all"?n=(t&r)===r:n=(t&r)!==0,{matches:n,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let t=g(e.expr,s);return{matches:!t.matches,pruned:t.pruned,printed:!1}}case"and":{let t=g(e.left,s);if(!t.matches)return{matches:!1,pruned:t.pruned,printed:!1};let r=g(e.right,s);return{matches:r.matches,pruned:t.pruned||r.pruned,printed:t.printed||r.printed}}case"or":{let t=g(e.left,s);if(t.matches)return t;let r=g(e.right,s);return{matches:r.matches,pruned:t.pruned||r.pruned,printed:r.printed}}}}function I(e){let s=[],t=r=>{r&&(r.type==="newer"?s.push(r.refPath):r.type==="not"?t(r.expr):(r.type==="and"||r.type==="or")&&(t(r.left),t(r.right)))};return t(e),s}function $(e,s){let t=[],r=[],n=s;for(;n<e.length;){let l=e[n];if(l==="("||l==="\\("){t.push({type:"lparen"}),n++;continue}if(l===")"||l==="\\)"){t.push({type:"rparen"}),n++;continue}if(l==="-name"&&n+1<e.length)t.push({type:"expr",expr:{type:"name",pattern:e[++n]}});else if(l==="-iname"&&n+1<e.length)t.push({type:"expr",expr:{type:"name",pattern:e[++n],ignoreCase:!0}});else if(l==="-path"&&n+1<e.length)t.push({type:"expr",expr:{type:"path",pattern:e[++n]}});else if(l==="-ipath"&&n+1<e.length)t.push({type:"expr",expr:{type:"path",pattern:e[++n],ignoreCase:!0}});else if(l==="-regex"&&n+1<e.length)t.push({type:"expr",expr:{type:"regex",pattern:e[++n]}});else if(l==="-iregex"&&n+1<e.length)t.push({type:"expr",expr:{type:"regex",pattern:e[++n],ignoreCase:!0}});else if(l==="-type"&&n+1<e.length){let i=e[++n];if(i==="f"||i==="d")t.push({type:"expr",expr:{type:"type",fileType:i}});else return{expr:null,pathIndex:n,error:`find: Unknown argument to -type: ${i}
|
|
2
|
-
`,actions:[]}}else if(l==="-empty")t.push({type:"expr",expr:{type:"empty"}});else if(l==="-mtime"&&n+1<e.length){let i=e[++n],o="exact",f=i;i.startsWith("+")?(o="more",f=i.slice(1)):i.startsWith("-")&&(o="less",f=i.slice(1));let u=parseInt(f,10);Number.isNaN(u)||t.push({type:"expr",expr:{type:"mtime",days:u,comparison:o}})}else if(l==="-newer"&&n+1<e.length){let i=e[++n];t.push({type:"expr",expr:{type:"newer",refPath:i}})}else if(l==="-size"&&n+1<e.length){let i=e[++n],o="exact",f=i;i.startsWith("+")?(o="more",f=i.slice(1)):i.startsWith("-")&&(o="less",f=i.slice(1));let u=f.match(/^(\d+)([ckMGb])?$/);if(u){let m=parseInt(u[1],10),v=u[2]||"b";t.push({type:"expr",expr:{type:"size",value:m,unit:v,comparison:o}})}}else if(l==="-perm"&&n+1<e.length){let i=e[++n],o="exact",f=i;i.startsWith("-")?(o="all",f=i.slice(1)):i.startsWith("/")&&(o="any",f=i.slice(1));let u=parseInt(f,8);Number.isNaN(u)||t.push({type:"expr",expr:{type:"perm",mode:u,matchType:o}})}else if(l==="-prune")t.push({type:"expr",expr:{type:"prune"}});else if(l==="-not"||l==="!")t.push({type:"not"});else if(l==="-o"||l==="-or")t.push({type:"op",op:"or"});else if(l==="-a"||l==="-and")t.push({type:"op",op:"and"});else if(l==="-maxdepth"||l==="-mindepth")n++;else if(l==="-exec"){let i=[];for(n++;n<e.length&&e[n]!==";"&&e[n]!=="+";)i.push(e[n]),n++;if(n>=e.length)return{expr:null,pathIndex:n,error:"find: missing argument to `-exec'\n",actions:[]};let o=e[n]==="+";r.push({type:"exec",command:i,batchMode:o})}else if(l==="-print")t.push({type:"expr",expr:{type:"print"}}),r.push({type:"print"});else if(l==="-print0")r.push({type:"print0"});else if(l==="-delete")r.push({type:"delete"});else{if(l.startsWith("-"))return{expr:null,pathIndex:n,error:`find: unknown predicate '${l}'
|
|
3
|
-
`,actions:[]};if(t.length===0){n++;continue}break}n++}if(t.length===0)return{expr:null,pathIndex:n,actions:r};let w=S(t);return w.error?{expr:null,pathIndex:n,error:w.error,actions:r}:{expr:w.expr,pathIndex:n,actions:r}}function S(e){let s=0;function t(){let i=r();if(!i)return null;for(;s<e.length;){let o=e[s];if(o.type==="op"&&o.op==="or"){s++;let f=r();if(!f)return i;i={type:"or",left:i,right:f}}else break}return i}function r(){let i=n();if(!i)return null;for(;s<e.length;){let o=e[s];if(o.type==="op"&&o.op==="and"){s++;let f=n();if(!f)return i;i={type:"and",left:i,right:f}}else if(o.type==="expr"||o.type==="not"||o.type==="lparen"){let f=n();if(!f)return i;i={type:"and",left:i,right:f}}else break}return i}function n(){if(s<e.length&&e[s].type==="not"){s++;let i=n();return i?{type:"not",expr:i}:null}return w()}function w(){if(s>=e.length)return null;let i=e[s];if(i.type==="lparen"){s++;let o=t();return s<e.length&&e[s].type==="rparen"&&s++,o}return i.type==="expr"?(s++,i.expr):(i.type==="rparen",null)}return{expr:t()}}var F={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-delete delete found files/directories"," --help display this help and exit"]},L=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),K={name:"find",async execute(e,s){if(z(e))return A(F);let t=".",r=null,n=null;for(let a=0;a<e.length;a++){let p=e[a];if(p==="-maxdepth"&&a+1<e.length)r=parseInt(e[++a],10);else if(p==="-mindepth"&&a+1<e.length)n=parseInt(e[++a],10);else if(p==="-exec")for(a++;a<e.length&&e[a]!==";"&&e[a]!=="+";)a++;else!p.startsWith("-")&&p!==";"&&p!=="+"&&p!=="("&&p!==")"&&p!=="\\("&&p!=="\\)"&&p!=="!"?t=p:L.has(p)&&a++}let{expr:w,error:l,actions:i}=$(e,0);if(l)return{stdout:"",stderr:l,exitCode:1};let o=i.some(a=>a.type==="print"),f=i.length===0,u=s.fs.resolvePath(s.cwd,t);try{await s.fs.stat(u)}catch{return{stdout:"",stderr:`find: ${t}: No such file or directory
|
|
4
|
-
`,exitCode:1}}let m=[],v=I(w),C=new Map;for(let a of v){let p=s.fs.resolvePath(s.cwd,a);try{let c=await s.fs.stat(p);C.set(a,c.mtime?.getTime()??Date.now())}catch{}}async function R(a,p){if(r!==null&&p>r)return;let c;try{c=await s.fs.stat(a)}catch{return}if(!c)return;let d;a===u?d=t.split("/").pop()||t:d=a.split("/").pop()||"";let h=a===u?t:t==="."?`./${a.slice(u.length+1)}`:t+a.slice(u.length),y=null;c.isDirectory&&(y=await s.fs.readdir(a));let W=c.isFile?c.size===0:y!==null&&y.length===0,P=n===null||p>=n,k=!1,D=!1;if(P&&w!==null){let M={name:d,relativePath:h,isFile:c.isFile,isDirectory:c.isDirectory,isEmpty:W,mtime:c.mtime?.getTime()??Date.now(),size:c.size??0,mode:c.mode??420,newerRefTimes:C},E=g(w,M);P=E.matches,k=E.pruned,o?D=E.printed:D=P}else P&&(D=!0);if(D&&m.push(h),y!==null&&!k)for(let M of y){let E=a==="/"?`/${M}`:`${a}/${M}`;await R(E,p+1)}}await R(u,0);let x="",b="",T=0;if(i.length>0)for(let a of i)switch(a.type){case"print":x+=m.length>0?`${m.join(`
|
|
5
|
-
`)}
|
|
6
|
-
`:"";break;case"print0":x+=m.length>0?`${m.join("\0")}\0`:"";break;case"delete":{let p=[...m].sort((c,d)=>d.length-c.length);for(let c of p){let d=s.fs.resolvePath(s.cwd,c);try{await s.fs.rm(d,{recursive:!1})}catch(h){let y=h instanceof Error?h.message:String(h);b+=`find: cannot delete '${c}': ${y}
|
|
7
|
-
`,T=1}}break}case"exec":if(!s.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
8
|
-
`,exitCode:1};if(a.batchMode){let p=[];for(let h of a.command)h==="{}"?p.push(...m):p.push(h);let c=p.map(h=>`"${h}"`).join(" "),d=await s.exec(c,{cwd:s.cwd});x+=d.stdout,b+=d.stderr,d.exitCode!==0&&(T=d.exitCode)}else for(let p of m){let d=a.command.map(y=>y==="{}"?p:y).map(y=>`"${y}"`).join(" "),h=await s.exec(d,{cwd:s.cwd});x+=h.stdout,b+=h.stderr,h.exitCode!==0&&(T=h.exitCode)}break}else f&&(x=m.length>0?`${m.join(`
|
|
9
|
-
`)}
|
|
10
|
-
`:"");return{stdout:x,stderr:b,exitCode:T}}};export{K as findCommand};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{a as N}from"./chunk-UJMN5NLH.js";import{a as L,b as B,c as H}from"./chunk-TDJNT32M.js";import{a as I,b as O}from"./chunk-74CEPOFO.js";function w(e,s){switch(e.type){case"name":return{matches:N(s.name,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:N(s.relativePath,e.pattern,e.ignoreCase),pruned:!1,printed:!1};case"regex":try{let n=e.ignoreCase?"i":"";return{matches:new RegExp(e.pattern,n).test(s.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return e.fileType==="f"?{matches:s.isFile,pruned:!1,printed:!1}:e.fileType==="d"?{matches:s.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:s.isEmpty,pruned:!1,printed:!1};case"mtime":{let r=(Date.now()-s.mtime)/(1e3*60*60*24),t;return e.comparison==="more"?t=r>e.days:e.comparison==="less"?t=r<e.days:t=Math.floor(r)===e.days,{matches:t,pruned:!1,printed:!1}}case"newer":{let n=s.newerRefTimes.get(e.refPath);return n===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:s.mtime>n,pruned:!1,printed:!1}}case"size":{let n=e.value;switch(e.unit){case"c":n=e.value;break;case"k":n=e.value*1024;break;case"M":n=e.value*1024*1024;break;case"G":n=e.value*1024*1024*1024;break;case"b":n=e.value*512;break}let r;return e.comparison==="more"?r=s.size>n:e.comparison==="less"?r=s.size<n:e.unit==="b"?r=Math.ceil(s.size/512)===e.value:r=s.size===n,{matches:r,pruned:!1,printed:!1}}case"perm":{let n=s.mode&511,r=e.mode&511,t;return e.matchType==="exact"?t=n===r:e.matchType==="all"?t=(n&r)===r:t=(n&r)!==0,{matches:t,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let n=w(e.expr,s);return{matches:!n.matches,pruned:n.pruned,printed:!1}}case"and":{let n=w(e.left,s);if(!n.matches)return{matches:!1,pruned:n.pruned,printed:!1};let r=w(e.right,s);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:n.printed||r.printed}}case"or":{let n=w(e.left,s);if(n.matches)return n;let r=w(e.right,s);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:r.printed}}}}function G(e){let s=[],n=r=>{r&&(r.type==="newer"?s.push(r.refPath):r.type==="not"?n(r.expr):(r.type==="and"||r.type==="or")&&(n(r.left),n(r.right)))};return n(e),s}function j(e,s){let n=[],r=[],t=s;for(;t<e.length;){let a=e[t];if(a==="("||a==="\\("){n.push({type:"lparen"}),t++;continue}if(a===")"||a==="\\)"){n.push({type:"rparen"}),t++;continue}if(a==="-name"&&t+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++t]}});else if(a==="-iname"&&t+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++t],ignoreCase:!0}});else if(a==="-path"&&t+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++t]}});else if(a==="-ipath"&&t+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++t],ignoreCase:!0}});else if(a==="-regex"&&t+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++t]}});else if(a==="-iregex"&&t+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++t],ignoreCase:!0}});else if(a==="-type"&&t+1<e.length){let i=e[++t];if(i==="f"||i==="d")n.push({type:"expr",expr:{type:"type",fileType:i}});else return{expr:null,pathIndex:t,error:`find: Unknown argument to -type: ${i}
|
|
2
|
-
`,actions:[]}}else if(a==="-empty")n.push({type:"expr",expr:{type:"empty"}});else if(a==="-mtime"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("+")?(c="more",o=i.slice(1)):i.startsWith("-")&&(c="less",o=i.slice(1));let h=parseInt(o,10);Number.isNaN(h)||n.push({type:"expr",expr:{type:"mtime",days:h,comparison:c}})}else if(a==="-newer"&&t+1<e.length){let i=e[++t];n.push({type:"expr",expr:{type:"newer",refPath:i}})}else if(a==="-size"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("+")?(c="more",o=i.slice(1)):i.startsWith("-")&&(c="less",o=i.slice(1));let h=o.match(/^(\d+)([ckMGb])?$/);if(h){let b=parseInt(h[1],10),y=h[2]||"b";n.push({type:"expr",expr:{type:"size",value:b,unit:y,comparison:c}})}}else if(a==="-perm"&&t+1<e.length){let i=e[++t],c="exact",o=i;i.startsWith("-")?(c="all",o=i.slice(1)):i.startsWith("/")&&(c="any",o=i.slice(1));let h=parseInt(o,8);Number.isNaN(h)||n.push({type:"expr",expr:{type:"perm",mode:h,matchType:c}})}else if(a==="-prune")n.push({type:"expr",expr:{type:"prune"}});else if(a==="-not"||a==="!")n.push({type:"not"});else if(a==="-o"||a==="-or")n.push({type:"op",op:"or"});else if(a==="-a"||a==="-and")n.push({type:"op",op:"and"});else if(a==="-maxdepth"||a==="-mindepth")t++;else if(a!=="-depth")if(a==="-exec"){let i=[];for(t++;t<e.length&&e[t]!==";"&&e[t]!=="+";)i.push(e[t]),t++;if(t>=e.length)return{expr:null,pathIndex:t,error:"find: missing argument to `-exec'\n",actions:[]};let c=e[t]==="+";r.push({type:"exec",command:i,batchMode:c})}else if(a==="-print")n.push({type:"expr",expr:{type:"print"}}),r.push({type:"print"});else if(a==="-print0")r.push({type:"print0"});else if(a==="-printf"&&t+1<e.length){let i=e[++t];r.push({type:"printf",format:i})}else if(a==="-delete")r.push({type:"delete"});else{if(a.startsWith("-"))return{expr:null,pathIndex:t,error:`find: unknown predicate '${a}'
|
|
3
|
-
`,actions:[]};if(n.length===0){t++;continue}break}t++}if(n.length===0)return{expr:null,pathIndex:t,actions:r};let m=_(n);return m.error?{expr:null,pathIndex:t,error:m.error,actions:r}:{expr:m.expr,pathIndex:t,actions:r}}function _(e){let s=0;function n(){let i=r();if(!i)return null;for(;s<e.length;){let c=e[s];if(c.type==="op"&&c.op==="or"){s++;let o=r();if(!o)return i;i={type:"or",left:i,right:o}}else break}return i}function r(){let i=t();if(!i)return null;for(;s<e.length;){let c=e[s];if(c.type==="op"&&c.op==="and"){s++;let o=t();if(!o)return i;i={type:"and",left:i,right:o}}else if(c.type==="expr"||c.type==="not"||c.type==="lparen"){let o=t();if(!o)return i;i={type:"and",left:i,right:o}}else break}return i}function t(){if(s<e.length&&e[s].type==="not"){s++;let i=t();return i?{type:"not",expr:i}:null}return m()}function m(){if(s>=e.length)return null;let i=e[s];if(i.type==="lparen"){s++;let c=n();return s<e.length&&e[s].type==="rparen"&&s++,c}return i.type==="expr"?(s++,i.expr):(i.type==="rparen",null)}return{expr:n()}}var K={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-depth process directory contents before directory itself","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-printf FORMAT print FORMAT with directives: %f %h %p %P %s %d %m %M %t","-delete delete found files/directories"," --help display this help and exit"]},U=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),oe={name:"find",async execute(e,s){if(O(e))return I(K);let n=[],r=null,t=null,m=!1,a=!1;for(let p=0;p<e.length;p++){let l=e[p];if(l==="-maxdepth"&&p+1<e.length)a=!0,r=parseInt(e[++p],10);else if(l==="-mindepth"&&p+1<e.length)a=!0,t=parseInt(e[++p],10);else if(l==="-depth")a=!0,m=!0;else if(l==="-exec")for(a=!0,p++;p<e.length&&e[p]!==";"&&e[p]!=="+";)p++;else!l.startsWith("-")&&l!==";"&&l!=="+"&&l!=="("&&l!==")"&&l!=="\\("&&l!=="\\)"&&l!=="!"?a||n.push(l):U.has(l)?(a=!0,p++):(l.startsWith("-")||l==="("||l==="\\("||l==="!")&&(a=!0)}n.length===0&&n.push(".");let{expr:i,error:c,actions:o}=j(e,0);if(c)return{stdout:"",stderr:c,exitCode:1};let h=o.some(p=>p.type==="print"),b=o.length===0,y=[],Y=o.some(p=>p.type==="printf"),F=[],T="",D=0,V=G(i),k=new Map;for(let p of V){let l=s.fs.resolvePath(s.cwd,p);try{let g=await s.fs.stat(l);k.set(p,g.mtime?.getTime()??Date.now())}catch{}}for(let p of n){let l=s.fs.resolvePath(s.cwd,p);try{await s.fs.stat(l)}catch{T+=`find: ${p}: No such file or directory
|
|
4
|
-
`,D=1;continue}async function g(u,d){if(r!==null&&d>r)return;let f;try{f=await s.fs.stat(u)}catch{return}if(!f)return;let E;u===l?E=p.split("/").pop()||p:E=u.split("/").pop()||"";let $=u===l?p:p==="."?`./${u.slice(l.length+1)}`:p+u.slice(l.length),M=null;f.isDirectory&&(M=await s.fs.readdir(u));let R=f.isFile?f.size===0:M!==null&&M.length===0,C=()=>{let x=t===null||d>=t,v=!1;if(x&&i!==null){let J={name:E,relativePath:$,isFile:f.isFile,isDirectory:f.isDirectory,isEmpty:R,mtime:f.mtime?.getTime()??Date.now(),size:f.size??0,mode:f.mode??420,newerRefTimes:k},W=w(i,J);x=W.matches,h?v=W.printed:v=x}else x&&(v=!0);v&&(y.push($),Y&&F.push({path:$,name:E,size:f.size??0,mtime:f.mtime?.getTime()??Date.now(),mode:f.mode??420,isDirectory:f.isDirectory,depth:d,startingPoint:p}))},A=async()=>{if(M!==null)for(let P of M){let x=u==="/"?`/${P}`:`${u}/${P}`;await g(x,d+1)}},z=!1;if(!m&&i!==null){let P={name:E,relativePath:$,isFile:f.isFile,isDirectory:f.isDirectory,isEmpty:R,mtime:f.mtime?.getTime()??Date.now(),size:f.size??0,mode:f.mode??420,newerRefTimes:k};z=w(i,P).pruned}m?(await A(),C()):(C(),z||await A())}await g(l,0)}let S="";if(o.length>0)for(let p of o)switch(p.type){case"print":S+=y.length>0?`${y.join(`
|
|
5
|
-
`)}
|
|
6
|
-
`:"";break;case"print0":S+=y.length>0?`${y.join("\0")}\0`:"";break;case"delete":{let l=[...y].sort((g,u)=>u.length-g.length);for(let g of l){let u=s.fs.resolvePath(s.cwd,g);try{await s.fs.rm(u,{recursive:!1})}catch(d){let f=d instanceof Error?d.message:String(d);T+=`find: cannot delete '${g}': ${f}
|
|
7
|
-
`,D=1}}break}case"printf":for(let l of F)S+=q(p.format,l);break;case"exec":if(!s.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
8
|
-
`,exitCode:1};if(p.batchMode){let l=[];for(let d of p.command)d==="{}"?l.push(...y):l.push(d);let g=l.map(d=>`"${d}"`).join(" "),u=await s.exec(g,{cwd:s.cwd});S+=u.stdout,T+=u.stderr,u.exitCode!==0&&(D=u.exitCode)}else for(let l of y){let u=p.command.map(f=>f==="{}"?l:f).map(f=>`"${f}"`).join(" "),d=await s.exec(u,{cwd:s.cwd});S+=d.stdout,T+=d.stderr,d.exitCode!==0&&(D=d.exitCode)}break}else b&&(S=y.length>0?`${y.join(`
|
|
9
|
-
`)}
|
|
10
|
-
`:"");return{stdout:S,stderr:T,exitCode:D}}};function q(e,s){let n=H(e),r="",t=0;for(;t<n.length;)if(n[t]==="%"&&t+1<n.length){if(t++,n[t]==="%"){r+="%",t++;continue}let[m,a,i]=B(n,t);if(t+=i,t>=n.length){r+="%";break}let c=n[t],o;switch(c){case"f":o=s.name,t++;break;case"h":{let h=s.path.lastIndexOf("/");o=h>0?s.path.slice(0,h):".",t++;break}case"p":o=s.path,t++;break;case"P":{let h=s.startingPoint;s.path===h?o="":s.path.startsWith(`${h}/`)?o=s.path.slice(h.length+1):h==="."&&s.path.startsWith("./")?o=s.path.slice(2):o=s.path,t++;break}case"s":o=String(s.size),t++;break;case"d":o=String(s.depth),t++;break;case"m":o=(s.mode&511).toString(8),t++;break;case"M":o=Q(s.mode,s.isDirectory),t++;break;case"t":{let h=new Date(s.mtime);o=X(h),t++;break}case"T":{if(t+1<n.length){let h=n[t+1],b=new Date(s.mtime);o=Z(b,h),t+=2}else o="%T",t++;break}default:r+=`%${m!==0||a!==-1?`${m}.${a}`:""}${c}`,t++;continue}r+=L(o,m,a)}else r+=n[t],t++;return r}function Q(e,s){let n=e&511,r=s?"d":"-";return r+=n&256?"r":"-",r+=n&128?"w":"-",r+=n&64?"x":"-",r+=n&32?"r":"-",r+=n&16?"w":"-",r+=n&8?"x":"-",r+=n&4?"r":"-",r+=n&2?"w":"-",r+=n&1?"x":"-",r}function X(e){let s=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=s[e.getDay()],t=n[e.getMonth()],m=String(e.getDate()).padStart(2," "),a=String(e.getHours()).padStart(2,"0"),i=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0"),o=e.getFullYear();return`${r} ${t} ${m} ${a}:${i}:${c} ${o}`}function Z(e,s){switch(s){case"@":return String(e.getTime()/1e3);case"Y":return String(e.getFullYear());case"m":return String(e.getMonth()+1).padStart(2,"0");case"d":return String(e.getDate()).padStart(2,"0");case"H":return String(e.getHours()).padStart(2,"0");case"M":return String(e.getMinutes()).padStart(2,"0");case"S":return String(e.getSeconds()).padStart(2,"0");case"T":return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`;case"F":return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;default:return`%T${s}`}}export{oe as findCommand};
|