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,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as N}from"./chunk-26Q3PZQ6.js";import{a as A,b as z}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";function x(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=x(e.expr,s);return{matches:!t.matches,pruned:t.pruned,printed:!1}}case"and":{let t=x(e.left,s);if(!t.matches)return{matches:!1,pruned:t.pruned,printed:!1};let r=x(e.right,s);return{matches:r.matches,pruned:t.pruned||r.pruned,printed:t.printed||r.printed}}case"or":{let t=x(e.left,s);if(t.matches)return t;let r=x(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}
|
|
3
|
-
`,actions:[]}}else if(l==="-empty")t.push({type:"expr",expr:{type:"empty"}});else if(l==="-mtime"&&n+1<e.length){let i=e[++n],p="exact",f=i;i.startsWith("+")?(p="more",f=i.slice(1)):i.startsWith("-")&&(p="less",f=i.slice(1));let u=parseInt(f,10);Number.isNaN(u)||t.push({type:"expr",expr:{type:"mtime",days:u,comparison:p}})}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],p="exact",f=i;i.startsWith("+")?(p="more",f=i.slice(1)):i.startsWith("-")&&(p="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:p}})}}else if(l==="-perm"&&n+1<e.length){let i=e[++n],p="exact",f=i;i.startsWith("-")?(p="all",f=i.slice(1)):i.startsWith("/")&&(p="any",f=i.slice(1));let u=parseInt(f,8);Number.isNaN(u)||t.push({type:"expr",expr:{type:"perm",mode:u,matchType:p}})}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 p=e[n]==="+";r.push({type:"exec",command:i,batchMode:p})}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}'
|
|
4
|
-
`,actions:[]};if(t.length===0){n++;continue}break}n++}if(t.length===0)return{expr:null,pathIndex:n,actions:r};let g=S(t);return g.error?{expr:null,pathIndex:n,error:g.error,actions:r}:{expr:g.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 p=e[s];if(p.type==="op"&&p.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 p=e[s];if(p.type==="op"&&p.op==="and"){s++;let f=n();if(!f)return i;i={type:"and",left:i,right:f}}else if(p.type==="expr"||p.type==="not"||p.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 g()}function g(){if(s>=e.length)return null;let i=e[s];if(i.type==="lparen"){s++;let p=t();return s<e.length&&e[s].type==="rparen"&&s++,p}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 o=e[a];if(o==="-maxdepth"&&a+1<e.length)r=parseInt(e[++a],10);else if(o==="-mindepth"&&a+1<e.length)n=parseInt(e[++a],10);else if(o==="-exec")for(a++;a<e.length&&e[a]!==";"&&e[a]!=="+";)a++;else!o.startsWith("-")&&o!==";"&&o!=="+"&&o!=="("&&o!==")"&&o!=="\\("&&o!=="\\)"?t=o:L.has(o)&&a++}let{expr:g,error:l,actions:i}=$(e,0);if(l)return{stdout:"",stderr:l,exitCode:1};let p=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
|
|
5
|
-
`,exitCode:1}}let m=[],v=I(g),C=new Map;for(let a of v){let o=s.fs.resolvePath(s.cwd,a);try{let c=await s.fs.stat(o);C.set(a,c.mtime?.getTime()??Date.now())}catch{}}async function R(a,o){if(r!==null&&o>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||o>=n,k=!1,D=!1;if(P&&g!==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=x(g,M);P=E.matches,k=E.pruned,p?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,o+1)}}await R(u,0);let w="",b="",T=0;if(i.length>0)for(let a of i)switch(a.type){case"print":w+=m.length>0?`${m.join(`
|
|
6
|
-
`)}
|
|
7
|
-
`:"";break;case"print0":w+=m.length>0?`${m.join("\0")}\0`:"";break;case"delete":{let o=[...m].sort((c,d)=>d.length-c.length);for(let c of o){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}
|
|
8
|
-
`,T=1}}break}case"exec":if(!s.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
9
|
-
`,exitCode:1};if(a.batchMode){let o=[];for(let h of a.command)h==="{}"?o.push(...m):o.push(h);let c=o.map(h=>`"${h}"`).join(" "),d=await s.exec(c);w+=d.stdout,b+=d.stderr,d.exitCode!==0&&(T=d.exitCode)}else for(let o of m){let d=a.command.map(y=>y==="{}"?o:y).map(y=>`"${y}"`).join(" "),h=await s.exec(d);w+=h.stdout,b+=h.stderr,h.exitCode!==0&&(T=h.exitCode)}break}else f&&(w=m.length>0?`${m.join(`
|
|
10
|
-
`)}
|
|
11
|
-
`:"");return{stdout:w,stderr:b,exitCode:T}}};export{K as findCommand};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as N}from"./chunk-26Q3PZQ6.js";import{a as q,b as G,c as O}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var j={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},k={name:"grep",async execute(s,e){if(G(s))return q(j);let o=!1,r=!1,f=!1,u=!1,w=!1,p=!1,h=!1,d=!1,g=!1,m=!1,y=!1,L=!1,x=!1,v=0,l=0,C=[],i=[],n=[],I=null,P=[];for(let a=0;a<s.length;a++){let c=s[a];if(c.startsWith("-")&&c!=="-"){if(c==="-e"&&a+1<s.length){I=s[++a];continue}if(c.startsWith("--include=")){C.push(c.slice(10));continue}if(c.startsWith("--exclude=")){i.push(c.slice(10));continue}if(c.startsWith("--exclude-dir=")){n.push(c.slice(14));continue}let $=c.match(/^-([ABC])(\d+)$/);if($){let t=parseInt($[2],10);$[1]==="A"?l=t:$[1]==="B"?v=t:$[1]==="C"&&(v=t,l=t);continue}if((c==="-A"||c==="-B"||c==="-C")&&a+1<s.length){let t=parseInt(s[++a],10);c==="-A"?l=t:c==="-B"?v=t:(v=t,l=t);continue}let A=c.startsWith("--")?[c]:c.slice(1).split("");for(let t of A)if(t==="i"||t==="--ignore-case")o=!0;else if(t==="n"||t==="--line-number")r=!0;else if(t==="v"||t==="--invert-match")f=!0;else if(t==="c"||t==="--count")u=!0;else if(t==="l"||t==="--files-with-matches")w=!0;else if(t==="L"||t==="--files-without-match")p=!0;else if(t==="r"||t==="R"||t==="--recursive")h=!0;else if(t==="w"||t==="--word-regexp")d=!0;else if(t==="E"||t==="--extended-regexp")g=!0;else if(t==="F"||t==="--fixed-strings")m=!0;else if(t==="o"||t==="--only-matching")y=!0;else if(t==="h"||t==="--no-filename")L=!0;else if(t==="q"||t==="--quiet"||t==="--silent")x=!0;else{if(t.startsWith("--"))return O("grep",t);if(t.length===1)return O("grep",`-${t}`)}}else I===null?I=c:P.push(c)}if(I===null)return{stdout:"",stderr:`grep: missing pattern
|
|
3
|
-
`,exitCode:2};let R;m?R=I.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):g?R=I:R=z(I),d&&(R=`\\b${R}\\b`);let B;try{B=new RegExp(R,o?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${I}
|
|
4
|
-
`,exitCode:2}}if(P.length===0&&e.stdin){let a=b(e.stdin,B,f,r,u,"",y,v,l);return x?{stdout:"",stderr:"",exitCode:a.matched?0:1}:{stdout:a.output,stderr:"",exitCode:a.matched?0:1}}if(P.length===0)return{stdout:"",stderr:`grep: no input files
|
|
5
|
-
`,exitCode:2};let E="",W="",Q=!1,U=!1,M=[];for(let a of P)if(a.includes("*")||a.includes("?")||a.includes("[")){let c=await J(a,e);if(h)for(let $ of c){let A=await S($,e,C,i,n);M.push(...A)}else M.push(...c)}else if(h){let c=await S(a,e,C,i,n);M.push(...c)}else M.push(a);let H=(M.length>1||h)&&!L;for(let a of M){let c=a.split("/").pop()||a;if(!(i.length>0&&!h&&i.some($=>N(c,$,{stripQuotes:!0})))&&!(C.length>0&&!h&&!C.some($=>N(c,$,{stripQuotes:!0}))))try{let $=e.fs.resolvePath(e.cwd,a);if((await e.fs.stat($)).isDirectory){h||(W+=`grep: ${a}: Is a directory
|
|
6
|
-
`);continue}let t=await e.fs.readFile($),F=b(t,B,f,r,u,H?a:"",y,v,l);if(F.matched){if(Q=!0,x)return{stdout:"",stderr:"",exitCode:0};w?E+=`${a}
|
|
7
|
-
`:p||(E+=F.output)}else p?E+=`${a}
|
|
8
|
-
`:u&&!w&&(E+=F.output)}catch{W+=`grep: ${a}: No such file or directory
|
|
9
|
-
`,U=!0}}let T;return U?T=2:p?T=E.length>0?0:1:T=Q?0:1,x?{stdout:"",stderr:"",exitCode:T}:{stdout:E,stderr:W,exitCode:T}}};function z(s){let e="",o=0;for(;o<s.length;){let r=s[o];if(r==="\\"&&o+1<s.length){let f=s[o+1];if(f==="|"||f==="("||f===")"){e+=f,o+=2;continue}else if(f==="{"||f==="}"){e+=`\\${f}`,o+=2;continue}}r==="+"||r==="?"||r==="|"||r==="("||r===")"||r==="{"||r==="}"?e+=`\\${r}`:e+=r,o++}return e}function b(s,e,o,r,f,u,w=!1,p=0,h=0){let d=s.split(`
|
|
10
|
-
`),g=d.length,m=g>0&&d[g-1]===""?g-1:g;if(f){let l=0;for(let i=0;i<m;i++)e.lastIndex=0,e.test(d[i])!==o&&l++;return{output:`${u?`${u}:${l}`:String(l)}
|
|
11
|
-
`,matched:l>0}}if(p===0&&h===0){let l=[],C=!1;for(let i=0;i<m;i++){let n=d[i];if(e.lastIndex=0,e.test(n)!==o)if(C=!0,w){e.lastIndex=0;for(let P=e.exec(n);P!==null;P=e.exec(n))l.push(u?`${u}:${P[0]}`:P[0]),P[0].length===0&&e.lastIndex++}else r?l.push(u?`${u}:${i+1}:${n}`:`${i+1}:${n}`):l.push(u?`${u}:${n}`:n)}return{output:l.length>0?`${l.join(`
|
|
12
|
-
`)}
|
|
13
|
-
`:"",matched:C}}let y=[],L=0,x=new Set,v=[];for(let l=0;l<m;l++)e.lastIndex=0,e.test(d[l])!==o&&(v.push(l),L++);for(let l of v){for(let i=Math.max(0,l-p);i<l;i++)if(!x.has(i)){x.add(i);let n=d[i];r&&(n=`${i+1}-${n}`),u&&(n=`${u}-${n}`),y.push(n)}if(!x.has(l)){x.add(l);let i=d[l];if(w){e.lastIndex=0;for(let n=e.exec(i);n!==null;n=e.exec(i))y.push(u?`${u}:${n[0]}`:n[0]),n[0].length===0&&e.lastIndex++}else{let n=i;r&&(n=`${l+1}:${n}`),u&&(n=`${u}:${n}`),y.push(n)}}let C=Math.min(m-1,l+h);for(let i=l+1;i<=C;i++)if(!x.has(i)){x.add(i);let n=d[i];r&&(n=`${i+1}-${n}`),u&&(n=`${u}-${n}`),y.push(n)}}return{output:y.length>0?`${y.join(`
|
|
14
|
-
`)}
|
|
15
|
-
`:"",matched:L>0}}async function S(s,e,o=[],r=[],f=[]){let u=e.fs.resolvePath(e.cwd,s),w=[];try{if(!(await e.fs.stat(u)).isDirectory){let g=s.split("/").pop()||s;return r.length>0&&r.some(m=>N(g,m,{stripQuotes:!0}))?[]:o.length>0&&!o.some(m=>N(g,m,{stripQuotes:!0}))?[]:[s]}let h=s.split("/").pop()||s;if(f.length>0&&f.some(g=>N(h,g,{stripQuotes:!0})))return[];let d=await e.fs.readdir(u);for(let g of d){if(g.startsWith("."))continue;let m=s==="."?g:`${s}/${g}`,y=await S(m,e,o,r,f);w.push(...y)}}catch{}return w}async function J(s,e){let o=[],r=s.lastIndexOf("/"),f,u;if(r===-1?(f=e.cwd,u=s):(f=s.slice(0,r)||"/",u=s.slice(r+1)),s.includes("**")){let p=s.split("**"),h=p[0].replace(/\/$/,"")||".",d=p[1]||"";return await D(h,d,e,o),o}let w=e.fs.resolvePath(e.cwd,f);try{let p=await e.fs.readdir(w);for(let h of p)if(N(h,u,{stripQuotes:!0})){let d=r===-1?h:`${f}/${h}`;o.push(d)}}catch{}return o.sort()}async function D(s,e,o,r){let f=o.fs.resolvePath(o.cwd,s);try{if(!(await o.fs.stat(f)).isDirectory){let p=s.split("/").pop()||"";if(e){let h=e.replace(/^\//,"");N(p,h,{stripQuotes:!0})&&r.push(s)}return}let w=await o.fs.readdir(f);for(let p of w){let h=s==="."?p:`${s}/${p}`,d=o.fs.resolvePath(o.cwd,h);if((await o.fs.stat(d)).isDirectory)await D(h,e,o,r);else if(e){let m=e.replace(/^\//,"");N(p,m,{stripQuotes:!0})&&r.push(h)}}}catch{}}var X={name:"fgrep",async execute(s,e){return k.execute(["-F",...s],e)}},Y={name:"egrep",async execute(s,e){return k.execute(["-E",...s],e)}};export{Y as egrepCommand,X as fgrepCommand,k as grepCommand};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as v}from"./chunk-26Q3PZQ6.js";import{a as q,b as G,c as U}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var J={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-x, --line-regexp match only whole lines","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-m NUM, --max-count=NUM stop after NUM matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},H={name:"grep",async execute(s,e){if(G(s))return q(J);let i=!1,o=!1,f=!1,a=!1,$=!1,d=!1,h=!1,m=!1,p=!1,g=!1,M=!1,P=!1,T=!1,y=!1,R=0,l=0,w=0,c=[],n=[],x=[],N=null,I=[];for(let u=0;u<s.length;u++){let r=s[u];if(r.startsWith("-")&&r!=="-"){if(r==="-e"&&u+1<s.length){N=s[++u];continue}if(r.startsWith("--include=")){c.push(r.slice(10));continue}if(r.startsWith("--exclude=")){n.push(r.slice(10));continue}if(r.startsWith("--exclude-dir=")){x.push(r.slice(14));continue}if(r.startsWith("--max-count=")){R=parseInt(r.slice(12),10);continue}let C=r.match(/^-m(\d+)$/);if(C){R=parseInt(C[1],10);continue}if(r==="-m"&&u+1<s.length){R=parseInt(s[++u],10);continue}let L=r.match(/^-([ABC])(\d+)$/);if(L){let t=parseInt(L[2],10);L[1]==="A"?w=t:L[1]==="B"?l=t:L[1]==="C"&&(l=t,w=t);continue}if((r==="-A"||r==="-B"||r==="-C")&&u+1<s.length){let t=parseInt(s[++u],10);r==="-A"?w=t:r==="-B"?l=t:(l=t,w=t);continue}let S=r.startsWith("--")?[r]:r.slice(1).split("");for(let t of S)if(t==="i"||t==="--ignore-case")i=!0;else if(t==="n"||t==="--line-number")o=!0;else if(t==="v"||t==="--invert-match")f=!0;else if(t==="c"||t==="--count")a=!0;else if(t==="l"||t==="--files-with-matches")$=!0;else if(t==="L"||t==="--files-without-match")d=!0;else if(t==="r"||t==="R"||t==="--recursive")h=!0;else if(t==="w"||t==="--word-regexp")m=!0;else if(t==="x"||t==="--line-regexp")p=!0;else if(t==="E"||t==="--extended-regexp")g=!0;else if(t==="F"||t==="--fixed-strings")M=!0;else if(t==="o"||t==="--only-matching")P=!0;else if(t==="h"||t==="--no-filename")T=!0;else if(t==="q"||t==="--quiet"||t==="--silent")y=!0;else{if(t.startsWith("--"))return U("grep",t);if(t.length===1)return U("grep",`-${t}`)}}else N===null?N=r:I.push(r)}if(N===null)return{stdout:"",stderr:`grep: missing pattern
|
|
3
|
-
`,exitCode:2};let E;M?E=N.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):g?E=N:E=K(N),m&&(E=`\\b${E}\\b`),p&&(E=`^${E}$`);let F;try{F=new RegExp(E,i?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${N}
|
|
4
|
-
`,exitCode:2}}if(I.length===0&&e.stdin){let u=D(e.stdin,F,f,o,a,"",P,l,w,R);return y?{stdout:"",stderr:"",exitCode:u.matched?0:1}:{stdout:u.output,stderr:"",exitCode:u.matched?0:1}}if(I.length===0)return{stdout:"",stderr:`grep: no input files
|
|
5
|
-
`,exitCode:2};let A="",O="",b=!1,k=!1,B=[];for(let u of I)if(u.includes("*")||u.includes("?")||u.includes("[")){let r=await V(u,e);if(h)for(let C of r){let L=await Q(C,e,c,n,x);B.push(...L)}else B.push(...r)}else if(h){let r=await Q(u,e,c,n,x);B.push(...r)}else B.push(u);let z=(B.length>1||h)&&!T;for(let u of B){let r=u.split("/").pop()||u;if(!(n.length>0&&!h&&n.some(C=>v(r,C,{stripQuotes:!0})))&&!(c.length>0&&!h&&!c.some(C=>v(r,C,{stripQuotes:!0}))))try{let C=e.fs.resolvePath(e.cwd,u);if((await e.fs.stat(C)).isDirectory){h||(O+=`grep: ${u}: Is a directory
|
|
6
|
-
`);continue}let S=await e.fs.readFile(C),t=D(S,F,f,o,a,z?u:"",P,l,w,R);if(t.matched){if(b=!0,y)return{stdout:"",stderr:"",exitCode:0};$?A+=`${u}
|
|
7
|
-
`:d||(A+=t.output)}else d?A+=`${u}
|
|
8
|
-
`:a&&!$&&(A+=t.output)}catch{O+=`grep: ${u}: No such file or directory
|
|
9
|
-
`,k=!0}}let W;return k?W=2:d?W=A.length>0?0:1:W=b?0:1,y?{stdout:"",stderr:"",exitCode:W}:{stdout:A,stderr:O,exitCode:W}}};function K(s){let e="",i=0;for(;i<s.length;){let o=s[i];if(o==="\\"&&i+1<s.length){let f=s[i+1];if(f==="|"||f==="("||f===")"){e+=f,i+=2;continue}else if(f==="{"||f==="}"){e+=`\\${f}`,i+=2;continue}}o==="+"||o==="?"||o==="|"||o==="("||o===")"||o==="{"||o==="}"?e+=`\\${o}`:e+=o,i++}return e}function D(s,e,i,o,f,a,$=!1,d=0,h=0,m=0){let p=s.split(`
|
|
10
|
-
`),g=p.length,M=g>0&&p[g-1]===""?g-1:g;if(f){let l=0;for(let c=0;c<M;c++)e.lastIndex=0,e.test(p[c])!==i&&l++;return{output:`${a?`${a}:${l}`:String(l)}
|
|
11
|
-
`,matched:l>0}}if(d===0&&h===0){let l=[],w=!1,c=0;for(let n=0;n<M&&!(m>0&&c>=m);n++){let x=p[n];if(e.lastIndex=0,e.test(x)!==i)if(w=!0,c++,$){e.lastIndex=0;for(let I=e.exec(x);I!==null;I=e.exec(x))l.push(a?`${a}:${I[0]}`:I[0]),I[0].length===0&&e.lastIndex++}else o?l.push(a?`${a}:${n+1}:${x}`:`${n+1}:${x}`):l.push(a?`${a}:${x}`:x)}return{output:l.length>0?`${l.join(`
|
|
12
|
-
`)}
|
|
13
|
-
`:"",matched:w}}let P=[],T=0,y=new Set,R=[];for(let l=0;l<M&&!(m>0&&T>=m);l++)e.lastIndex=0,e.test(p[l])!==i&&(R.push(l),T++);for(let l of R){for(let c=Math.max(0,l-d);c<l;c++)if(!y.has(c)){y.add(c);let n=p[c];o&&(n=`${c+1}-${n}`),a&&(n=`${a}-${n}`),P.push(n)}if(!y.has(l)){y.add(l);let c=p[l];if($){e.lastIndex=0;for(let n=e.exec(c);n!==null;n=e.exec(c))P.push(a?`${a}:${n[0]}`:n[0]),n[0].length===0&&e.lastIndex++}else{let n=c;o&&(n=`${l+1}:${n}`),a&&(n=`${a}:${n}`),P.push(n)}}let w=Math.min(M-1,l+h);for(let c=l+1;c<=w;c++)if(!y.has(c)){y.add(c);let n=p[c];o&&(n=`${c+1}-${n}`),a&&(n=`${a}-${n}`),P.push(n)}}return{output:P.length>0?`${P.join(`
|
|
14
|
-
`)}
|
|
15
|
-
`:"",matched:T>0}}async function Q(s,e,i=[],o=[],f=[]){let a=e.fs.resolvePath(e.cwd,s),$=[];try{if(!(await e.fs.stat(a)).isDirectory){let p=s.split("/").pop()||s;return o.length>0&&o.some(g=>v(p,g,{stripQuotes:!0}))?[]:i.length>0&&!i.some(g=>v(p,g,{stripQuotes:!0}))?[]:[s]}let h=s.split("/").pop()||s;if(f.length>0&&f.some(p=>v(h,p,{stripQuotes:!0})))return[];let m=await e.fs.readdir(a);for(let p of m){if(p.startsWith("."))continue;let g=s==="."?p:`${s}/${p}`,M=await Q(g,e,i,o,f);$.push(...M)}}catch{}return $}async function V(s,e){let i=[],o=s.lastIndexOf("/"),f,a;if(o===-1?(f=e.cwd,a=s):(f=s.slice(0,o)||"/",a=s.slice(o+1)),s.includes("**")){let d=s.split("**"),h=d[0].replace(/\/$/,"")||".",m=d[1]||"";return await j(h,m,e,i),i}let $=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readdir($);for(let h of d)if(v(h,a,{stripQuotes:!0})){let m=o===-1?h:`${f}/${h}`;i.push(m)}}catch{}return i.sort()}async function j(s,e,i,o){let f=i.fs.resolvePath(i.cwd,s);try{if(!(await i.fs.stat(f)).isDirectory){let d=s.split("/").pop()||"";if(e){let h=e.replace(/^\//,"");v(d,h,{stripQuotes:!0})&&o.push(s)}return}let $=await i.fs.readdir(f);for(let d of $){let h=s==="."?d:`${s}/${d}`,m=i.fs.resolvePath(i.cwd,h);if((await i.fs.stat(m)).isDirectory)await j(h,e,i,o);else if(e){let g=e.replace(/^\//,"");v(d,g,{stripQuotes:!0})&&o.push(h)}}}catch{}}var Z={name:"fgrep",async execute(s,e){return H.execute(["-F",...s],e)}},_={name:"egrep",async execute(s,e){return H.execute(["-E",...s],e)}};export{_ as egrepCommand,Z as fgrepCommand,H as grepCommand};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as b,b as $,c as d}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var O={name:"jq",summary:"command-line JSON processor",usage:"jq [OPTIONS] FILTER [FILE]",options:["-r, --raw-output output strings without quotes","-c, --compact compact output (no pretty printing)","-e, --exit-status set exit status based on output","-s, --slurp read entire input into array","-n, --null-input don't read any input"," --help display this help and exit"]};function g(r,f,t,e=0){if(r===null||r===void 0)return"null";if(typeof r=="boolean"||typeof r=="number")return String(r);if(typeof r=="string")return t?r:JSON.stringify(r);if(Array.isArray(r))return r.length===0?"[]":f?`[${r.map(l=>g(l,!0,!1)).join(",")}]`:`[
|
|
3
|
-
${r.map(l=>" ".repeat(e+1)+g(l,!1,!1,e+1)).join(`,
|
|
4
|
-
`)}
|
|
5
|
-
${" ".repeat(e)}]`;if(typeof r=="object"){let s=Object.keys(r);return s.length===0?"{}":f?`{${s.map(i=>`${JSON.stringify(i)}:${g(r[i],!0,!1)}`).join(",")}}`:`{
|
|
6
|
-
${s.map(i=>{let n=g(r[i],!1,!1,e+1);return`${" ".repeat(e+1)}${JSON.stringify(i)}: ${n}`}).join(`,
|
|
7
|
-
`)}
|
|
8
|
-
${" ".repeat(e)}}`}return String(r)}function m(r,f){if(f===""||f===".")return[r];let t=f.startsWith(".")?f.slice(1):f;if(t==="")return[r];if(t.startsWith("[]")){let i=t.slice(2);return Array.isArray(r)?r.flatMap(n=>m(n,`.${i}`)):r&&typeof r=="object"?Object.values(r).flatMap(n=>m(n,`.${i}`)):[]}let e=t.match(/^\[(-?\d+)\](.*)/);if(e){let i=Number.parseInt(e[1],10),n=e[2];if(Array.isArray(r)){let h=i<0?r.length+i:i;if(h>=0&&h<r.length)return m(r[h],`.${n}`)}return[null]}let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)(.*)/);if(s){let i=s[1],n=s[2];if(r&&typeof r=="object"&&!Array.isArray(r)){let o=r[i];if(n.startsWith("[]"))return n=n.slice(2),Array.isArray(o)?o.flatMap(c=>m(c,`.${n}`)):o&&typeof o=="object"?Object.values(o).flatMap(c=>m(c,`.${n}`)):[];if(n.startsWith(".")||n.startsWith("[")||n==="")return m(o,n||".")}return[null]}let l=t.match(/^\["([^"]+)"\](.*)/);if(l){let i=l[1],n=l[2];return r&&typeof r=="object"&&!Array.isArray(r)?m(r[i],`.${n}`):[null]}return[null]}function j(r,f){let t=f.trim();if(t.includes("|")){let e=t.split("|").map(l=>l.trim()),s=[r];for(let l of e)s=s.flatMap(i=>j(i,l));return s}return t==="keys"?Array.isArray(r)?[r.map((e,s)=>s)]:r&&typeof r=="object"?[Object.keys(r)]:[null]:t==="values"?Array.isArray(r)?[r]:r&&typeof r=="object"?[Object.values(r)]:[null]:t==="length"?typeof r=="string"?[r.length]:Array.isArray(r)?[r.length]:r&&typeof r=="object"?[Object.keys(r).length]:r===null?[0]:[null]:t==="type"?r===null?["null"]:Array.isArray(r)?["array"]:[typeof r]:t==="first"?Array.isArray(r)&&r.length>0?[r[0]]:[null]:t==="last"?Array.isArray(r)&&r.length>0?[r[r.length-1]]:[null]:t==="reverse"?Array.isArray(r)?[[...r].reverse()]:typeof r=="string"?[r.split("").reverse().join("")]:[null]:t==="sort"?Array.isArray(r)?[[...r].sort()]:[null]:t==="unique"?Array.isArray(r)?[[...new Set(r.map(e=>JSON.stringify(e)))].map(e=>JSON.parse(e))]:[null]:t==="flatten"?Array.isArray(r)?[r.flat()]:[null]:t==="add"?Array.isArray(r)?r.length===0?[null]:r.every(e=>typeof e=="number")?[r.reduce((e,s)=>e+s,0)]:r.every(e=>typeof e=="string")?[r.join("")]:r.every(e=>Array.isArray(e))?[r.flat()]:[null]:[null]:t==="min"?Array.isArray(r)&&r.length>0?[Math.min(...r)]:[null]:t==="max"?Array.isArray(r)&&r.length>0?[Math.max(...r)]:[null]:t==="empty"?[]:t==="not"?[!r]:m(r,t)}var x={name:"jq",async execute(r,f){if($(r))return b(O);let t=!1,e=!1,s=!1,l=!1,i=!1,n=".",h=!1,o=[];for(let a=0;a<r.length;a++){let u=r[a];if(u==="-r"||u==="--raw-output")t=!0;else if(u==="-c"||u==="--compact-output")e=!0;else if(u==="-e"||u==="--exit-status")s=!0;else if(u==="-s"||u==="--slurp")l=!0;else if(u==="-n"||u==="--null-input")i=!0;else if(u==="-")o.push("-");else{if(u.startsWith("--"))return d("jq",u);if(u.startsWith("-"))for(let p of u.slice(1))if(p==="r")t=!0;else if(p==="c")e=!0;else if(p==="e")s=!0;else if(p==="s")l=!0;else if(p==="n")i=!0;else return d("jq",`-${p}`);else h?o.push(u):(n=u,h=!0)}}let c;if(i)c="";else if(o.length===0||o.length===1&&o[0]==="-")c=f.stdin;else try{let a=f.fs.resolvePath(f.cwd,o[0]);c=await f.fs.readFile(a)}catch{return{stdout:"",stderr:`jq: ${o[0]}: No such file or directory
|
|
9
|
-
`,exitCode:2}}try{let a;if(i)a=j(null,n);else if(l){let y=[];for(let A of c.trim().split(`
|
|
10
|
-
`))A.trim()&&y.push(JSON.parse(A));a=j(y,n)}else{let y=c.trim();if(y.startsWith("{")||y.startsWith("["))a=j(JSON.parse(y),n);else{a=[];for(let A of y.split(`
|
|
11
|
-
`))A.trim()&&a.push(...j(JSON.parse(A),n))}}let u=a.map(y=>g(y,e,t)).join(`
|
|
12
|
-
`),p=s&&(a.length===0||a.every(y=>y==null||y===!1))?1:0;return{stdout:u?`${u}
|
|
13
|
-
`:"",stderr:"",exitCode:p}}catch(a){return{stdout:"",stderr:`jq: parse error: ${a.message}
|
|
14
|
-
`,exitCode:5}}}};export{x as jqCommand};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as C,c as F}from"./chunk-6QUZ7QML.js";import{a as $}from"./chunk-4VDEBYW7.js";import{a as E,b as I}from"./chunk-GTNBSMZR.js";import{a as M,b as j}from"./chunk-5KNEBKYN.js";var A=M(S=>{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(l){return n(i(l),arguments)}function t(l,a){return o.apply(null,[l].concat(a||[]))}function n(l,a){var f=1,p=l.length,s,h="",d,u,c,m,v,w,y,b;for(d=0;d<p;d++)if(typeof l[d]=="string")h+=l[d];else if(typeof l[d]=="object"){if(c=l[d],c.keys)for(s=a[f],u=0;u<c.keys.length;u++){if(s==null)throw new Error(o('[sprintf] Cannot access property "%s" of undefined value "%s"',c.keys[u],c.keys[u-1]));s=s[c.keys[u]]}else c.param_no?s=a[c.param_no]:s=a[f++];if(e.not_type.test(c.type)&&e.not_primitive.test(c.type)&&s instanceof Function&&(s=s()),e.numeric_arg.test(c.type)&&typeof s!="number"&&isNaN(s))throw new TypeError(o("[sprintf] expecting number but found %T",s));switch(e.number.test(c.type)&&(y=s>=0),c.type){case"b":s=parseInt(s,10).toString(2);break;case"c":s=String.fromCharCode(parseInt(s,10));break;case"d":case"i":s=parseInt(s,10);break;case"j":s=JSON.stringify(s,null,c.width?parseInt(c.width):0);break;case"e":s=c.precision?parseFloat(s).toExponential(c.precision):parseFloat(s).toExponential();break;case"f":s=c.precision?parseFloat(s).toFixed(c.precision):parseFloat(s);break;case"g":s=c.precision?String(Number(s.toPrecision(c.precision))):parseFloat(s);break;case"o":s=(parseInt(s,10)>>>0).toString(8);break;case"s":s=String(s),s=c.precision?s.substring(0,c.precision):s;break;case"t":s=String(!!s),s=c.precision?s.substring(0,c.precision):s;break;case"T":s=Object.prototype.toString.call(s).slice(8,-1).toLowerCase(),s=c.precision?s.substring(0,c.precision):s;break;case"u":s=parseInt(s,10)>>>0;break;case"v":s=s.valueOf(),s=c.precision?s.substring(0,c.precision):s;break;case"x":s=(parseInt(s,10)>>>0).toString(16);break;case"X":s=(parseInt(s,10)>>>0).toString(16).toUpperCase();break}e.json.test(c.type)?h+=s:(e.number.test(c.type)&&(!y||c.sign)?(b=y?"+":"-",s=s.toString().replace(e.sign,"")):b="",v=c.pad_char?c.pad_char==="0"?"0":c.pad_char.charAt(1):" ",w=c.width-(b+s).length,m=c.width&&w>0?v.repeat(w):"",h+=c.align?b+s+m:v==="0"?b+m+s:m+b+s)}return h}var r=Object.create(null);function i(l){if(r[l])return r[l];for(var a=l,f,p=[],s=0;a;){if((f=e.text.exec(a))!==null)p.push(f[0]);else if((f=e.modulo.exec(a))!==null)p.push("%");else if((f=e.placeholder.exec(a))!==null){if(f[2]){s|=1;var h=[],d=f[2],u=[];if((u=e.key.exec(d))!==null)for(h.push(u[1]);(d=d.substring(u[0].length))!=="";)if((u=e.key_access.exec(d))!==null)h.push(u[1]);else if((u=e.index_access.exec(d))!==null)h.push(u[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=h}else s|=2;if(s===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");p.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");a=a.substring(f[0].length)}return r[l]=p}typeof S<"u"&&(S.sprintf=o,S.vsprintf=t),typeof window<"u"&&(window.sprintf=o,window.vsprintf=t,typeof define=="function"&&define.amd&&define(function(){return{sprintf:o,vsprintf:t}}))})()});var x=j(A(),1);var N={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},J={name:"printf",async execute(e,o){if(I(e))return E(N);if(e.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
3
|
-
`,exitCode:2};let t=null,n=0;for(;n<e.length;){let l=e[n];if(l==="--"){n++;break}if(l==="-v"){if(n+1>=e.length)return{stdout:"",stderr:`printf: -v: option requires an argument
|
|
4
|
-
`,exitCode:1};if(t=e[n+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?$/.test(t))return{stdout:"",stderr:`printf: \`${t}': not a valid identifier
|
|
5
|
-
`,exitCode:2};n+=2}else{if(l.startsWith("-")&&l!=="-")break;break}}if(n>=e.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
6
|
-
`,exitCode:1};let r=e[n],i=e.slice(n+1);try{let l=F(r),a="",f=0,p=!1,s="";do{let{result:h,argsConsumed:d,error:u,errMsg:c,stopped:m}=W(l,i,f);if(a+=h,f+=d,u&&(p=!0,c&&(s=c)),m)break}while(f<i.length&&f>0);return f===0&&i.length>0,t?(o.env[t]=a,{stdout:"",stderr:s,exitCode:p?1:0}):{stdout:a,stderr:s,exitCode:p?1:0}}catch(l){return{stdout:"",stderr:`printf: ${$(l)}
|
|
7
|
-
`,exitCode:1}}}};function W(e,o,t){let n="",r=0,i=0,l=!1,a="";for(;r<e.length;)if(e[r]==="%"&&r+1<e.length){let f=r;if(r++,e[r]==="%"){n+="%",r++;continue}for(;r<e.length&&"+-0 #'".includes(e[r]);)r++;let p=!1;if(e[r]==="*")p=!0,r++;else for(;r<e.length&&/\d/.test(e[r]);)r++;let s=!1;if(e[r]===".")if(r++,e[r]==="*")s=!0,r++;else for(;r<e.length&&/\d/.test(e[r]);)r++;r<e.length&&"hlL".includes(e[r])&&r++;let h=e[r]||"";r++;let u=e.slice(f,r);if(p){let b=parseInt(o[t+i]||"0",10);i++,u=u.replace("*",String(b))}if(s){let b=parseInt(o[t+i]||"0",10);i++,u=u.replace(".*",`.${b}`)}let c=o[t+i]||"";i++;let{value:m,parseError:v,parseErrMsg:w,stopped:y}=z(u,h,c);if(n+=m,v&&(l=!0,w&&(a=w)),y)return{result:n,argsConsumed:i,error:l,errMsg:a,stopped:!0}}else n+=e[r],r++;return{result:n,argsConsumed:i,error:l,errMsg:a,stopped:!1}}function z(e,o,t){let n=!1,r="";switch(o){case"d":case"i":{let i=k(t);return n=g,n&&(r=`printf: ${t}: invalid number
|
|
8
|
-
`),{value:_(e,i),parseError:n,parseErrMsg:r}}case"o":{let i=k(t);return n=g,n&&(r=`printf: ${t}: invalid number
|
|
9
|
-
`),{value:T(e,i),parseError:n,parseErrMsg:r}}case"u":{let i=k(t);n=g,n&&(r=`printf: ${t}: invalid number
|
|
10
|
-
`);let l=i<0?i>>>0:i;return{value:_(e.replace("u","d"),l),parseError:n,parseErrMsg:r}}case"x":case"X":{let i=k(t);return n=g,n&&(r=`printf: ${t}: invalid number
|
|
11
|
-
`),{value:O(e,i),parseError:n,parseErrMsg:r}}case"e":case"E":case"f":case"F":case"g":case"G":{let i=parseFloat(t)||0;return{value:P(e,o,i),parseError:!1,parseErrMsg:""}}case"c":return{value:t.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:U(e,t),parseError:!1,parseErrMsg:""};case"q":return{value:q(e,t),parseError:!1,parseErrMsg:""};case"b":{let i=R(t);return{value:i.value,parseError:!1,parseErrMsg:"",stopped:i.stopped}}default:try{return{value:(0,x.sprintf)(e,t),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
|
|
12
|
-
`}}}}var g=!1;function k(e){g=!1;let o=e.trimStart(),t=o!==o.trimEnd();if(e=o.trimEnd(),e.startsWith("'")&&e.length>=2||e.startsWith('"')&&e.length>=2)return e.charCodeAt(1);if(e.startsWith("\\'")&&e.length>=3||e.startsWith('\\"')&&e.length>=3)return e.charCodeAt(2);if(e.startsWith("+")&&(e=e.slice(1)),e.startsWith("0x")||e.startsWith("0X")){let n=parseInt(e,16);return Number.isNaN(n)?(g=!0,0):(t&&(g=!0),n)}if(e.startsWith("0")&&e.length>1&&/^-?0[0-7]+$/.test(e))return t&&(g=!0),parseInt(e,8)||0;if(/^\d+#/.test(e)){g=!0;let n=e.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(e!==""&&!/^-?\d+$/.test(e)){g=!0;let n=parseInt(e,10);return Number.isNaN(n)?0:n}return t&&(g=!0),parseInt(e,10)||0}function _(e,o){let t=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!t)return(0,x.sprintf)(e.replace(/\.\d*/,""),o);let n=t[1]||"",r=t[2]?parseInt(t[2],10):0,i=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,l=o<0,a=Math.abs(o),f=String(a);i>=0&&(f=f.padStart(i,"0"));let p="";l?p="-":n.includes("+")?p="+":n.includes(" ")&&(p=" ");let s=p+f;return r>s.length&&(n.includes("-")?s=s.padEnd(r," "):n.includes("0")&&i<0?s=p+f.padStart(r-p.length,"0"):s=s.padStart(r," ")),s}function T(e,o){let t=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!t)return(0,x.sprintf)(e,o);let n=t[1]||"",r=t[2]?parseInt(t[2],10):0,i=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,l=Math.abs(o).toString(8);i>=0&&(l=l.padStart(i,"0")),n.includes("#")&&!l.startsWith("0")&&(l=`0${l}`);let a=l;return r>a.length&&(n.includes("-")?a=a.padEnd(r," "):n.includes("0")&&i<0?a=a.padStart(r,"0"):a=a.padStart(r," ")),a}function O(e,o){let t=e.includes("X"),n=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return(0,x.sprintf)(e,o);let r=n[1]||"",i=n[2]?parseInt(n[2],10):0,l=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(o).toString(16);t&&(a=a.toUpperCase()),l>=0&&(a=a.padStart(l,"0"));let f="";r.includes("#")&&o!==0&&(f=t?"0X":"0x");let p=f+a;return i>p.length&&(r.includes("-")?p=p.padEnd(i," "):r.includes("0")&&l<0?p=f+a.padStart(i-f.length,"0"):p=p.padStart(i," ")),p}function X(e){if(e==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(e))return e;if(/[\x00-\x1f\x7f]/.test(e)){let n="$'";for(let r of e){let i=r.charCodeAt(0);r==="'"?n+="\\'":r==="\\"?n+="\\\\":r===`
|
|
13
|
-
`?n+="\\n":r===" "?n+="\\t":r==="\r"?n+="\\r":r==="\x07"?n+="\\a":r==="\b"?n+="\\b":r==="\f"?n+="\\f":r==="\v"?n+="\\v":r==="\x1B"?n+="\\E":i<32||i>126?n+=`\\x${i.toString(16).padStart(2,"0")}`:r==='"'?n+='\\"':n+=r}return n+="'",n}let t="";for(let n of e)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?t+=`\\${n}`:t+=n;return t}function U(e,o){let t=e.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!t)return(0,x.sprintf)(e.replace(/0+(?=\d)/,""),o);let n=t[1]==="-",r=t[2]?parseInt(t[2],10):0,i=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,l=n?-r:r;return C(o,l,i)}function q(e,o){let t=X(o),n=e.match(/^%(-?)(\d*)q$/);if(!n)return t;let r=n[1]==="-",i=n[2]?parseInt(n[2],10):0,l=t;return i>l.length&&(r?l=l.padEnd(i," "):l=l.padStart(i," ")),l}function P(e,o,t){let n=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return(0,x.sprintf)(e,t);let r=n[1]||"",i=n[2]?parseInt(n[2],10):0,l=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,f=o.toLowerCase();if(f==="e"?(a=t.toExponential(l),a=a.replace(/e([+-])(\d)$/,"e$10$2"),o==="E"&&(a=a.toUpperCase())):f==="f"?(a=t.toFixed(l),r.includes("#")&&l===0&&!a.includes(".")&&(a+=".")):f==="g"?(a=t.toPrecision(l||1),r.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),o==="G"&&(a=a.toUpperCase())):a=t.toString(),t>=0&&(r.includes("+")?a=`+${a}`:r.includes(" ")&&(a=` ${a}`)),i>a.length)if(r.includes("-"))a=a.padEnd(i," ");else if(r.includes("0")){let p=a.match(/^[+ -]/)?.[0]||"",s=p?a.slice(1):a;a=p+s.padStart(i-p.length,"0")}else a=a.padStart(i," ");return a}function R(e){let o="",t=0;for(;t<e.length;)if(e[t]==="\\"&&t+1<e.length)switch(e[t+1]){case"n":o+=`
|
|
14
|
-
`,t+=2;break;case"t":o+=" ",t+=2;break;case"r":o+="\r",t+=2;break;case"\\":o+="\\",t+=2;break;case"a":o+="\x07",t+=2;break;case"b":o+="\b",t+=2;break;case"f":o+="\f",t+=2;break;case"v":o+="\v",t+=2;break;case"c":return{value:o,stopped:!0};case"x":{let r="",i=t+2;for(;i<e.length&&i<t+4&&/[0-9a-fA-F]/.test(e[i]);)r+=e[i],i++;r?(o+=String.fromCharCode(parseInt(r,16)),t=i):(o+="\\x",t+=2);break}case"u":{let r="",i=t+2;for(;i<e.length&&i<t+6&&/[0-9a-fA-F]/.test(e[i]);)r+=e[i],i++;r?(o+=String.fromCodePoint(parseInt(r,16)),t=i):(o+="\\u",t+=2);break}case"0":{let r="",i=t+2;for(;i<e.length&&i<t+5&&/[0-7]/.test(e[i]);)r+=e[i],i++;r?o+=String.fromCharCode(parseInt(r,8)):o+="\0",t=i;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let r="",i=t+1;for(;i<e.length&&i<t+4&&/[0-7]/.test(e[i]);)r+=e[i],i++;o+=String.fromCharCode(parseInt(r,8)),t=i;break}default:o+=e[t],t++}else o+=e[t],t++;return{value:o,stopped:!1}}export{J as printfCommand};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{a as I}from"./chunk-4VDEBYW7.js";import{a as E,b as C}from"./chunk-GTNBSMZR.js";import{a as A,b as _}from"./chunk-5KNEBKYN.js";var $=A(S=>{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(o){return s(n(o),arguments)}function t(o,l){return a.apply(null,[o].concat(l||[]))}function s(o,l){var f=1,u=o.length,i,h="",d,p,c,m,k,w,v,b;for(d=0;d<u;d++)if(typeof o[d]=="string")h+=o[d];else if(typeof o[d]=="object"){if(c=o[d],c.keys)for(i=l[f],p=0;p<c.keys.length;p++){if(i==null)throw new Error(a('[sprintf] Cannot access property "%s" of undefined value "%s"',c.keys[p],c.keys[p-1]));i=i[c.keys[p]]}else c.param_no?i=l[c.param_no]:i=l[f++];if(e.not_type.test(c.type)&&e.not_primitive.test(c.type)&&i instanceof Function&&(i=i()),e.numeric_arg.test(c.type)&&typeof i!="number"&&isNaN(i))throw new TypeError(a("[sprintf] expecting number but found %T",i));switch(e.number.test(c.type)&&(v=i>=0),c.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,c.width?parseInt(c.width):0);break;case"e":i=c.precision?parseFloat(i).toExponential(c.precision):parseFloat(i).toExponential();break;case"f":i=c.precision?parseFloat(i).toFixed(c.precision):parseFloat(i);break;case"g":i=c.precision?String(Number(i.toPrecision(c.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=c.precision?i.substring(0,c.precision):i;break;case"t":i=String(!!i),i=c.precision?i.substring(0,c.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=c.precision?i.substring(0,c.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=c.precision?i.substring(0,c.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase();break}e.json.test(c.type)?h+=i:(e.number.test(c.type)&&(!v||c.sign)?(b=v?"+":"-",i=i.toString().replace(e.sign,"")):b="",k=c.pad_char?c.pad_char==="0"?"0":c.pad_char.charAt(1):" ",w=c.width-(b+i).length,m=c.width&&w>0?k.repeat(w):"",h+=c.align?b+i+m:k==="0"?b+m+i:m+b+i)}return h}var r=Object.create(null);function n(o){if(r[o])return r[o];for(var l=o,f,u=[],i=0;l;){if((f=e.text.exec(l))!==null)u.push(f[0]);else if((f=e.modulo.exec(l))!==null)u.push("%");else if((f=e.placeholder.exec(l))!==null){if(f[2]){i|=1;var h=[],d=f[2],p=[];if((p=e.key.exec(d))!==null)for(h.push(p[1]);(d=d.substring(p[0].length))!=="";)if((p=e.key_access.exec(d))!==null)h.push(p[1]);else if((p=e.index_access.exec(d))!==null)h.push(p[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=h}else i|=2;if(i===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");u.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");l=l.substring(f[0].length)}return r[o]=u}typeof S<"u"&&(S.sprintf=a,S.vsprintf=t),typeof window<"u"&&(window.sprintf=a,window.vsprintf=t,typeof define=="function"&&define.amd&&define(function(){return{sprintf:a,vsprintf:t}}))})()});var x=_($(),1);var M={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},Q={name:"printf",async execute(e,a){if(C(e))return E(M);if(e.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
3
|
-
`,exitCode:2};let t=null,s=0;for(;s<e.length;){let o=e[s];if(o==="--"){s++;break}if(o==="-v"){if(s+1>=e.length)return{stdout:"",stderr:`printf: -v: option requires an argument
|
|
4
|
-
`,exitCode:1};if(t=e[s+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?$/.test(t))return{stdout:"",stderr:`printf: \`${t}': not a valid identifier
|
|
5
|
-
`,exitCode:2};s+=2}else{if(o.startsWith("-")&&o!=="-")break;break}}if(s>=e.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
6
|
-
`,exitCode:1};let r=e[s],n=e.slice(s+1);try{let o=j(r),l="",f=0,u=!1,i="";do{let{result:h,argsConsumed:d,error:p,errMsg:c,stopped:m}=N(o,n,f);if(l+=h,f+=d,p&&(u=!0,c&&(i=c)),m)break}while(f<n.length&&f>0);return f===0&&n.length>0,t?(a.env[t]=l,{stdout:"",stderr:i,exitCode:u?1:0}):{stdout:l,stderr:i,exitCode:u?1:0}}catch(o){return{stdout:"",stderr:`printf: ${I(o)}
|
|
7
|
-
`,exitCode:1}}}};function j(e){let a="",t=0;for(;t<e.length;)if(e[t]==="\\"&&t+1<e.length)switch(e[t+1]){case"n":a+=`
|
|
8
|
-
`,t+=2;break;case"t":a+=" ",t+=2;break;case"r":a+="\r",t+=2;break;case"\\":a+="\\",t+=2;break;case"a":a+="\x07",t+=2;break;case"b":a+="\b",t+=2;break;case"f":a+="\f",t+=2;break;case"v":a+="\v",t+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let r="",n=t+1;for(;n<e.length&&n<t+4&&/[0-7]/.test(e[n]);)r+=e[n],n++;a+=String.fromCharCode(parseInt(r,8)),t=n;break}case"x":t+3<e.length&&/[0-9a-fA-F]{2}/.test(e.slice(t+2,t+4))?(a+=String.fromCharCode(parseInt(e.slice(t+2,t+4),16)),t+=4):(a+=e[t],t++);break;default:a+=e[t],t++}else a+=e[t],t++;return a}function N(e,a,t){let s="",r=0,n=0,o=!1,l="";for(;r<e.length;)if(e[r]==="%"&&r+1<e.length){let f=r;if(r++,e[r]==="%"){s+="%",r++;continue}for(;r<e.length&&"+-0 #'".includes(e[r]);)r++;let u=!1;if(e[r]==="*")u=!0,r++;else for(;r<e.length&&/\d/.test(e[r]);)r++;let i=!1;if(e[r]===".")if(r++,e[r]==="*")i=!0,r++;else for(;r<e.length&&/\d/.test(e[r]);)r++;r<e.length&&"hlL".includes(e[r])&&r++;let h=e[r]||"";r++;let p=e.slice(f,r);if(u){let b=parseInt(a[t+n]||"0",10);n++,p=p.replace("*",String(b))}if(i){let b=parseInt(a[t+n]||"0",10);n++,p=p.replace(".*",`.${b}`)}let c=a[t+n]||"";n++;let{value:m,parseError:k,parseErrMsg:w,stopped:v}=W(p,h,c);if(s+=m,k&&(o=!0,w&&(l=w)),v)return{result:s,argsConsumed:n,error:o,errMsg:l,stopped:!0}}else s+=e[r],r++;return{result:s,argsConsumed:n,error:o,errMsg:l,stopped:!1}}function W(e,a,t){let s=!1,r="";switch(a){case"d":case"i":{let n=y(t);return s=g,s&&(r=`printf: ${t}: invalid number
|
|
9
|
-
`),{value:F(e,n),parseError:s,parseErrMsg:r}}case"o":{let n=y(t);return s=g,s&&(r=`printf: ${t}: invalid number
|
|
10
|
-
`),{value:z(e,n),parseError:s,parseErrMsg:r}}case"u":{let n=y(t);s=g,s&&(r=`printf: ${t}: invalid number
|
|
11
|
-
`);let o=n<0?n>>>0:n;return{value:F(e.replace("u","d"),o),parseError:s,parseErrMsg:r}}case"x":case"X":{let n=y(t);return s=g,s&&(r=`printf: ${t}: invalid number
|
|
12
|
-
`),{value:T(e,n),parseError:s,parseErrMsg:r}}case"e":case"E":case"f":case"F":case"g":case"G":{let n=parseFloat(t)||0;return{value:q(e,a,n),parseError:!1,parseErrMsg:""}}case"c":return{value:t.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:X(e,t),parseError:!1,parseErrMsg:""};case"q":return{value:U(e,t),parseError:!1,parseErrMsg:""};case"b":{let n=P(t);return{value:n.value,parseError:!1,parseErrMsg:"",stopped:n.stopped}}default:try{return{value:(0,x.sprintf)(e,t),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
|
|
13
|
-
`}}}}var g=!1;function y(e){g=!1;let a=e.trimStart(),t=a!==a.trimEnd();if(e=a.trimEnd(),e.startsWith("'")&&e.length>=2||e.startsWith('"')&&e.length>=2)return e.charCodeAt(1);if(e.startsWith("\\'")&&e.length>=3||e.startsWith('\\"')&&e.length>=3)return e.charCodeAt(2);if(e.startsWith("+")&&(e=e.slice(1)),e.startsWith("0x")||e.startsWith("0X")){let s=parseInt(e,16);return Number.isNaN(s)?(g=!0,0):(t&&(g=!0),s)}if(e.startsWith("0")&&e.length>1&&/^-?0[0-7]+$/.test(e))return t&&(g=!0),parseInt(e,8)||0;if(/^\d+#/.test(e)){g=!0;let s=e.match(/^(\d+)#/);return s?parseInt(s[1],10):0}if(e!==""&&!/^-?\d+$/.test(e)){g=!0;let s=parseInt(e,10);return Number.isNaN(s)?0:s}return t&&(g=!0),parseInt(e,10)||0}function F(e,a){let t=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!t)return(0,x.sprintf)(e.replace(/\.\d*/,""),a);let s=t[1]||"",r=t[2]?parseInt(t[2],10):0,n=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,o=a<0,l=Math.abs(a),f=String(l);n>=0&&(f=f.padStart(n,"0"));let u="";o?u="-":s.includes("+")?u="+":s.includes(" ")&&(u=" ");let i=u+f;return r>i.length&&(s.includes("-")?i=i.padEnd(r," "):s.includes("0")&&n<0?i=u+f.padStart(r-u.length,"0"):i=i.padStart(r," ")),i}function z(e,a){let t=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!t)return(0,x.sprintf)(e,a);let s=t[1]||"",r=t[2]?parseInt(t[2],10):0,n=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,o=Math.abs(a).toString(8);n>=0&&(o=o.padStart(n,"0")),s.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let l=o;return r>l.length&&(s.includes("-")?l=l.padEnd(r," "):s.includes("0")&&n<0?l=l.padStart(r,"0"):l=l.padStart(r," ")),l}function T(e,a){let t=e.includes("X"),s=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!s)return(0,x.sprintf)(e,a);let r=s[1]||"",n=s[2]?parseInt(s[2],10):0,o=s[3]!==void 0?s[4]?parseInt(s[4],10):0:-1,l=Math.abs(a).toString(16);t&&(l=l.toUpperCase()),o>=0&&(l=l.padStart(o,"0"));let f="";r.includes("#")&&a!==0&&(f=t?"0X":"0x");let u=f+l;return n>u.length&&(r.includes("-")?u=u.padEnd(n," "):r.includes("0")&&o<0?u=f+l.padStart(n-f.length,"0"):u=u.padStart(n," ")),u}function O(e){if(e==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(e))return e;if(/[\x00-\x1f\x7f]/.test(e)){let s="$'";for(let r of e){let n=r.charCodeAt(0);r==="'"?s+="\\'":r==="\\"?s+="\\\\":r===`
|
|
14
|
-
`?s+="\\n":r===" "?s+="\\t":r==="\r"?s+="\\r":r==="\x07"?s+="\\a":r==="\b"?s+="\\b":r==="\f"?s+="\\f":r==="\v"?s+="\\v":r==="\x1B"?s+="\\E":n<32||n>126?s+=`\\x${n.toString(16).padStart(2,"0")}`:r==='"'?s+='\\"':s+=r}return s+="'",s}let t="";for(let s of e)" |&;<>()$`\\\"'*?[#~=%!{}".includes(s)?t+=`\\${s}`:t+=s;return t}function X(e,a){let t=e.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!t)return(0,x.sprintf)(e.replace(/0+(?=\d)/,""),a);let s=t[1]==="-",r=t[2]?parseInt(t[2],10):0,n=t[3]!==void 0?t[4]?parseInt(t[4],10):0:-1,o=a;return n>=0&&o.length>n&&(o=o.slice(0,n)),r>o.length&&(s?o=o.padEnd(r," "):o=o.padStart(r," ")),o}function U(e,a){let t=O(a),s=e.match(/^%(-?)(\d*)q$/);if(!s)return t;let r=s[1]==="-",n=s[2]?parseInt(s[2],10):0,o=t;return n>o.length&&(r?o=o.padEnd(n," "):o=o.padStart(n," ")),o}function q(e,a,t){let s=e.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!s)return(0,x.sprintf)(e,t);let r=s[1]||"",n=s[2]?parseInt(s[2],10):0,o=s[3]!==void 0?s[4]?parseInt(s[4],10):0:6,l,f=a.toLowerCase();if(f==="e"?(l=t.toExponential(o),l=l.replace(/e([+-])(\d)$/,"e$10$2"),a==="E"&&(l=l.toUpperCase())):f==="f"?(l=t.toFixed(o),r.includes("#")&&o===0&&!l.includes(".")&&(l+=".")):f==="g"?(l=t.toPrecision(o||1),r.includes("#")||(l=l.replace(/\.?0+$/,""),l=l.replace(/\.?0+e/,"e")),l=l.replace(/e([+-])(\d)$/,"e$10$2"),a==="G"&&(l=l.toUpperCase())):l=t.toString(),t>=0&&(r.includes("+")?l=`+${l}`:r.includes(" ")&&(l=` ${l}`)),n>l.length)if(r.includes("-"))l=l.padEnd(n," ");else if(r.includes("0")){let u=l.match(/^[+ -]/)?.[0]||"",i=u?l.slice(1):l;l=u+i.padStart(n-u.length,"0")}else l=l.padStart(n," ");return l}function P(e){let a="",t=0;for(;t<e.length;)if(e[t]==="\\"&&t+1<e.length)switch(e[t+1]){case"n":a+=`
|
|
15
|
-
`,t+=2;break;case"t":a+=" ",t+=2;break;case"r":a+="\r",t+=2;break;case"\\":a+="\\",t+=2;break;case"a":a+="\x07",t+=2;break;case"b":a+="\b",t+=2;break;case"f":a+="\f",t+=2;break;case"v":a+="\v",t+=2;break;case"c":return{value:a,stopped:!0};case"x":{let r="",n=t+2;for(;n<e.length&&n<t+4&&/[0-9a-fA-F]/.test(e[n]);)r+=e[n],n++;r?(a+=String.fromCharCode(parseInt(r,16)),t=n):(a+="\\x",t+=2);break}case"u":{let r="",n=t+2;for(;n<e.length&&n<t+6&&/[0-9a-fA-F]/.test(e[n]);)r+=e[n],n++;r?(a+=String.fromCodePoint(parseInt(r,16)),t=n):(a+="\\u",t+=2);break}case"0":{let r="",n=t+2;for(;n<e.length&&n<t+5&&/[0-7]/.test(e[n]);)r+=e[n],n++;r?a+=String.fromCharCode(parseInt(r,8)):a+="\0",t=n;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let r="",n=t+1;for(;n<e.length&&n<t+4&&/[0-7]/.test(e[n]);)r+=e[n],n++;a+=String.fromCharCode(parseInt(r,8)),t=n;break}default:a+=e[t],t++}else a+=e[t],t++;return{value:a,stopped:!1}}export{Q as printfCommand};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{i as $}from"./chunk-LV662IGP.js";import{a as I,b as N,c as S}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var R=1e4;function W(t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1}}function _(t){return typeof t=="object"&&"first"in t&&"step"in t}function M(t,e,i,s){if(t==="$")return e===i;if(typeof t=="number")return e===t;if(_(t)){let{first:n,step:a}=t;return a===0?e===n:(e-n)%a===0&&e>=n}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(s)}catch{return!1}return!1}function x(t,e,i,s){if(!t||!t.start&&!t.end)return!0;let n=t.start,a=t.end;if(n!==void 0&&a===void 0)return M(n,e,i,s);if(n!==void 0&&a!==void 0){let r=typeof n=="number"?n:n==="$"?i:1,o=typeof a=="number"?a:i;return typeof n=="object"&&"pattern"in n&&M(n,e,i,s)?!0:e>=r&&e<=o}return!0}function O(t,e,i){let s="",n=0;for(;n<t.length;){if(t[n]==="\\"&&n+1<t.length){let a=t[n+1];if(a==="&"){s+="&",n+=2;continue}if(a==="n"){s+=`
|
|
3
|
-
`,n+=2;continue}if(a==="t"){s+=" ",n+=2;continue}let r=parseInt(a,10);if(r>=1&&r<=9){s+=i[r-1]||"",n+=2;continue}s+=a,n+=2;continue}if(t[n]==="&"){s+=e,n++;continue}s+=t[n],n++}return s}function v(t,e){let{lineNumber:i,totalLines:s,patternSpace:n}=e;if(t.type!=="label"&&x(t.address,i,s,n))switch(t.type){case"substitute":{let a=t,r="";a.global&&(r+="g"),a.ignoreCase&&(r+="i");try{let o=new RegExp(a.pattern,r),u=e.patternSpace;if(a.nthOccurrence&&a.nthOccurrence>0&&!a.global){let l=0,p=a.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a.pattern,`g${a.ignoreCase?"i":""}`),(d,...c)=>{if(l++,l===p){let h=c.slice(0,-2);return O(a.replacement,d,h)}return d})}else e.patternSpace=e.patternSpace.replace(o,(l,...p)=>{let d=p.slice(0,-2);return O(a.replacement,l,d)});u!==e.patternSpace&&(e.substitutionMade=!0,a.printOnMatch&&(e.printed=!0))}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let a=e.patternSpace.indexOf(`
|
|
4
|
-
`);a!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,a)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let a=e.patternSpace.indexOf(`
|
|
5
|
-
`);a!==-1?(e.patternSpace=e.patternSpace.slice(a+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(t.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${t.text}`);break;case"change":e.patternSpace=t.text,e.deleted=!0,e.appendBuffer.push(t.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
|
|
6
|
-
${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
|
|
7
|
-
${e.holdSpace}`;break;case"exchange":{let a=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=a;break}case"next":e.printed=!0;break;case"quit":e.quit=!0;break;case"transliterate":e.patternSpace=P(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function P(t,e){let i="";for(let s of t){let n=e.source.indexOf(s);n!==-1?i+=e.dest[n]:i+=s}return i}function y(t,e,i,s){let n=new Map;for(let f=0;f<t.length;f++){let l=t[f];l.type==="label"&&n.set(l.name,f)}let a=s?.maxIterations??R,r=0,o=0,u=0;for(;u<t.length;){if(r++,r>a)throw new $(`sed: command execution exceeded maximum iterations (${a})`,"iterations");if(e.deleted||e.quit||e.restartCycle)break;let f=t[u];if(f.type==="nextAppend"){if(x(f.address,e.lineNumber,e.totalLines,e.patternSpace))if(i&&i.currentLineIndex+o+1<i.lines.length){o++;let l=i.lines[i.currentLineIndex+o];e.patternSpace+=`
|
|
8
|
-
${l}`,e.lineNumber=i.currentLineIndex+o+1}else{e.quit=!0,e.deleted=!0;break}u++;continue}if(f.type==="branch"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)){if(l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="branchOnSubst"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&e.substitutionMade){if(e.substitutionMade=!1,l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="branchOnNoSubst"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&!e.substitutionMade){if(l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="group"){let l=f;x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&y(l.commands,e,i,s),u++;continue}v(f,e),u++}return o}var A={r:"r (read file) - file operations not supported",R:"R (read line from file) - file operations not supported",w:"w (write to file) - file operations not supported",W:"W (write first line to file) - file operations not supported",e:"e (execute shell command) - shell execution not supported",l:"l (list/escape special chars) - not implemented",F:"F (print filename) - not implemented",Q:"Q (quit without printing) - use 'q' instead",v:"v (version check) - not implemented"};function C(t){if(t==="$")return"$";let e=t.match(/^(\d+)~(\d+)$/);if(e)return{first:parseInt(e[1],10),step:parseInt(e[2],10)};let i=parseInt(t,10);if(!Number.isNaN(i))return i;if(t.startsWith("/")&&t.endsWith("/"))return{pattern:t.slice(1,-1)}}function T(t){let e=t,i,s,n=e.match(/^(\d+)~(\d+)/);if(n)return i={first:parseInt(n[1],10),step:parseInt(n[2],10)},e=e.slice(n[0].length),{range:{start:i,end:void 0},rest:e};if(e.startsWith("$")){if(i="$",e=e.slice(1),e.startsWith(",")){e=e.slice(1);let r=e.match(/^(\d+|\$)/);r&&(s=C(r[1]),e=e.slice(r[0].length))}return{range:{start:i,end:s},rest:e}}let a=e.match(/^(\d+)/);if(a){if(i=parseInt(a[1],10),e=e.slice(a[0].length),e.startsWith(",")){e=e.slice(1);let r=e.match(/^(\d+|\$)/);r&&(s=C(r[1]),e=e.slice(r[0].length))}return{range:{start:i,end:s},rest:e}}if(e.startsWith("/")){let r=1;for(;r<e.length&&e[r]!=="/";)e[r]==="\\"&&r+1<e.length?r+=2:r++;if(r<e.length){if(i={pattern:e.slice(1,r)},e=e.slice(r+1),e.startsWith(","))if(e=e.slice(1),e.startsWith("/")){let o=1;for(;o<e.length&&e[o]!=="/";)e[o]==="\\"&&o+1<e.length?o+=2:o++;o<e.length&&(s={pattern:e.slice(1,o)},e=e.slice(o+1))}else{let o=e.match(/^(\d+|\$)/);o&&(s=C(o[1]),e=e.slice(o[0].length))}return{range:{start:i,end:s},rest:e}}}return{rest:e}}function q(t){let e=t.trim();if(!e)return{command:null};let{range:i,rest:s}=T(e),n=s.trim();if(!n&&i)return{command:{type:"print",address:i}};let a=n[0];switch(a){case"p":return{command:{type:"print",address:i}};case"d":return{command:{type:"delete",address:i}};case"h":return{command:{type:"hold",address:i}};case"H":return{command:{type:"holdAppend",address:i}};case"g":if(n.length===1||/^\s/.test(n[1]))return{command:{type:"get",address:i}};break;case"G":return{command:{type:"getAppend",address:i}};case"x":return{command:{type:"exchange",address:i}};case"n":return{command:{type:"next",address:i}};case"N":return{command:{type:"nextAppend",address:i}};case"P":return{command:{type:"printFirstLine",address:i}};case"D":return{command:{type:"deleteFirstLine",address:i}};case"q":return{command:{type:"quit",address:i}};case"z":return{command:{type:"zap",address:i}};case"=":return{command:{type:"lineNumber",address:i}};case"y":return D(n,i);case"b":{let r=n.slice(1).trim();return{command:{type:"branch",address:i,label:r||void 0}}}case"t":{let r=n.slice(1).trim();return{command:{type:"branchOnSubst",address:i,label:r||void 0}}}case"T":{let r=n.slice(1).trim();return{command:{type:"branchOnNoSubst",address:i,label:r||void 0}}}case"{":return B(n,i);case":":{let r=n.slice(1).trim();return r?{command:{type:"label",name:r}}:{command:null,error:"missing label name"}}case"a":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"append",address:i,text:r}}}break;case"i":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"insert",address:i,text:r}}}break;case"c":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"change",address:i,text:r}}}break;case"s":return L(n,i)}return n.startsWith("s")?L(n,i):a&&A[a]?{command:null,error:`unsupported command: ${A[a]}`}:{command:null,error:`invalid command: ${t}`}}function D(t,e){if(!t.startsWith("y")||t.length<4)return{command:null,error:"invalid transliteration"};let i=t[1],s=2,n="",a="";for(;s<t.length&&t[s]!==i;)if(t[s]==="\\"&&s+1<t.length){let r=t[s+1];r==="n"?n+=`
|
|
9
|
-
`:r==="t"?n+=" ":n+=r,s+=2}else n+=t[s],s++;if(s>=t.length)return{command:null,error:"unterminated transliteration source"};for(s++;s<t.length&&t[s]!==i;)if(t[s]==="\\"&&s+1<t.length){let r=t[s+1];r==="n"?a+=`
|
|
10
|
-
`:r==="t"?a+=" ":a+=r,s+=2}else a+=t[s],s++;return n.length!==a.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:e,source:n,dest:a}}}function L(t,e){if(!t.startsWith("s")||t.length<4)return{command:null,error:"invalid substitution"};let i=t[1],s="",n="",a="",r=2;for(;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length?(s+=t[r]+t[r+1],r+=2):(s+=t[r],r++);if(r>=t.length)return{command:null,error:"unterminated substitution pattern"};for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length?(n+=t[r]+t[r+1],r+=2):(n+=t[r],r++);r<t.length&&(r++,a=t.slice(r));let o,u=a.match(/(\d+)/);return u&&(o=parseInt(u[1],10)),{command:{type:"substitute",address:e,pattern:s,replacement:n,global:a.includes("g"),ignoreCase:a.includes("i"),printOnMatch:a.includes("p"),nthOccurrence:o}}}function B(t,e){let i=1,s=1,n=!1,a="",r=0;for(;s<t.length&&i>0;){let l=t[s];if(l==="\\"&&s+1<t.length){s+=2;continue}if(!n&&l==="s"&&s+1<t.length&&/[^a-zA-Z0-9]/.test(t[s+1])){n=!0,a=t[s+1],r=0,s++;continue}if(n&&l===a){r++,r>=3&&(n=!1),s++;continue}n||(l==="{"?i++:l==="}"&&i--),s++}if(i!==0)return{command:null,error:"unmatched brace in grouped commands"};let o=t.slice(1,s-1).trim(),u=F(o),f=[];for(let l of u){let p=q(l);if(p.error)return{command:null,error:p.error};p.command&&f.push(p.command)}return{command:{type:"group",address:e,commands:f}}}function E(t,e=!1){let i=[];for(let s of t){let n=F(s);for(let a of n){let r=q(a);if(r.error)return{commands:[],error:r.error};r.command&&(r.command.type==="substitute"&&e&&(r.command.extendedRegex=!0),i.push(r.command))}}return{commands:i}}function F(t){let e=[],i="",s=!1,n="",a=0,r=0,o=0;for(;o<t.length;){let u=t[o];if(u==="\\"&&o+1<t.length){i+=u+t[o+1],o+=2;continue}if(!s){if(u==="{"){r++,i+=u,o++;continue}if(u==="}"){r--,i+=u,o++;continue}}if(!s&&u==="s"&&o+1<t.length&&/[^a-zA-Z0-9]/.test(t[o+1])){n=t[o+1],a=0,s=!0,i+=u,o++;continue}if(s&&u===n){a++,i+=u,a>=3&&(s=!1),o++;continue}if(!s&&r===0&&u===";"){i.trim()&&e.push(i.trim()),i="",o++;continue}i+=u,o++}return i.trim()&&e.push(i.trim()),e}var z={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
|
|
11
|
-
s/regexp/replacement/[flags] substitute
|
|
12
|
-
d delete pattern space
|
|
13
|
-
p print pattern space
|
|
14
|
-
a\\ text append text after line
|
|
15
|
-
i\\ text insert text before line
|
|
16
|
-
c\\ text change (replace) line with text
|
|
17
|
-
h copy pattern space to hold space
|
|
18
|
-
H append pattern space to hold space
|
|
19
|
-
g copy hold space to pattern space
|
|
20
|
-
G append hold space to pattern space
|
|
21
|
-
x exchange pattern and hold spaces
|
|
22
|
-
n read next line into pattern space
|
|
23
|
-
N append next line to pattern space
|
|
24
|
-
y/source/dest/ transliterate characters
|
|
25
|
-
= print line number
|
|
26
|
-
b [label] branch to label
|
|
27
|
-
t [label] branch on substitution
|
|
28
|
-
:label define label
|
|
29
|
-
q quit
|
|
30
|
-
|
|
31
|
-
Addresses:
|
|
32
|
-
N line number
|
|
33
|
-
$ last line
|
|
34
|
-
/regexp/ lines matching regexp
|
|
35
|
-
N,M range from line N to M`};function w(t,e,i,s){let n=t.split(`
|
|
36
|
-
`);n.length>0&&n[n.length-1]===""&&n.pop();let a=n.length,r="",o="",u=!1,f=s?{maxIterations:s.maxSedIterations}:void 0;for(let l=0;l<n.length;l++){let p={...W(a),patternSpace:n[l],holdSpace:o,lineNumber:l+1,totalLines:a,substitutionMade:!1},d={lines:n,currentLineIndex:l},c=0,h=1e4,b=0;do{if(c++,c>h)break;p.restartCycle=!1;let m=y(e,p,d,f);b+=m,d.currentLineIndex+=m}while(p.restartCycle&&!p.deleted&&!p.quit);l+=b,o=p.holdSpace,u=p.substitutionMade;for(let m of p.lineNumberOutput)r+=`${m}
|
|
37
|
-
`;let g=[],k=[];for(let m of p.appendBuffer)m.startsWith("__INSERT__")?g.push(m.slice(10)):k.push(m);for(let m of g)r+=`${m}
|
|
38
|
-
`;p.deleted||(i?p.printed&&(r+=`${p.patternSpace}
|
|
39
|
-
`):r+=`${p.patternSpace}
|
|
40
|
-
`);for(let m of k)r+=`${m}
|
|
41
|
-
`;if(p.quit)break}return r}var X={name:"sed",async execute(t,e){if(N(t))return I(z);let i=[],s=[],n=!1,a=!1,r=!1,o=[];for(let d=0;d<t.length;d++){let c=t[d];if(c==="-n"||c==="--quiet"||c==="--silent")n=!0;else if(c==="-i"||c==="--in-place")a=!0;else if(c.startsWith("-i"))a=!0;else if(c==="-E"||c==="-r"||c==="--regexp-extended")r=!0;else if(c==="-e")d+1<t.length&&i.push(t[++d]);else if(c==="-f")d+1<t.length&&s.push(t[++d]);else{if(c.startsWith("--"))return S("sed",c);if(c.startsWith("-")&&c.length>1){for(let h of c.slice(1))if(h!=="n"&&h!=="e"&&h!=="f"&&h!=="i"&&h!=="E"&&h!=="r")return S("sed",`-${h}`);c.includes("n")&&(n=!0),c.includes("i")&&(a=!0),(c.includes("E")||c.includes("r"))&&(r=!0),c.includes("e")&&!c.includes("n")&&!c.includes("i")&&d+1<t.length&&i.push(t[++d]),c.includes("f")&&!c.includes("e")&&d+1<t.length&&s.push(t[++d])}else!c.startsWith("-")&&i.length===0&&s.length===0?i.push(c):c.startsWith("-")||o.push(c)}}for(let d of s){let c=e.fs.resolvePath(e.cwd,d);try{let h=await e.fs.readFile(c);for(let b of h.split(`
|
|
42
|
-
`)){let g=b.trim();g&&!g.startsWith("#")&&i.push(g)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${d}: No such file or directory
|
|
43
|
-
`,exitCode:1}}}if(i.length===0)return{stdout:"",stderr:`sed: no script specified
|
|
44
|
-
`,exitCode:1};let{commands:u,error:f}=E(i,r);if(f)return{stdout:"",stderr:`sed: ${f}
|
|
45
|
-
`,exitCode:1};if(u.length===0)return{stdout:"",stderr:`sed: no valid commands
|
|
46
|
-
`,exitCode:1};let l="";if(o.length===0)return l=e.stdin,{stdout:w(l,u,n,e.limits),stderr:"",exitCode:0};if(a){for(let d of o){let c=e.fs.resolvePath(e.cwd,d);try{let h=await e.fs.readFile(c),b=w(h,u,n,e.limits);await e.fs.writeFile(c,b)}catch{return{stdout:"",stderr:`sed: ${d}: No such file or directory
|
|
47
|
-
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let d of o){let c=e.fs.resolvePath(e.cwd,d);try{l+=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`sed: ${d}: No such file or directory
|
|
48
|
-
`,exitCode:1}}}return{stdout:w(l,u,n,e.limits),stderr:"",exitCode:0}}};export{X as sedCommand};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{i as W}from"./chunk-LV662IGP.js";import{a as T,b as D,c as I}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var G=1e4;function U(i,e,t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:i,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:t||new Map}}function j(i){return typeof i=="object"&&"first"in i&&"step"in i}function N(i,e,t,n){if(i==="$")return e===t;if(typeof i=="number")return e===i;if(j(i)){let{first:r,step:s}=i;return s===0?e===r:(e-r)%s===0&&e>=r}if(typeof i=="object"&&"pattern"in i)try{return new RegExp(i.pattern).test(n)}catch{return!1}return!1}function Q(i){let e=t=>t===void 0?"undefined":t==="$"?"$":typeof t=="number"?String(t):"pattern"in t?`/${t.pattern}/`:"first"in t?`${t.first}~${t.step}`:"unknown";return`${e(i.start)},${e(i.end)}`}function k(i,e,t,n,r){if(!i||!i.start&&!i.end)return!0;let s=i.start,c=i.end;if(s!==void 0&&c===void 0)return N(s,e,t,n);if(s!==void 0&&c!==void 0){let d=typeof s=="object"&&"pattern"in s,h=typeof c=="object"&&"pattern"in c;if(!d&&!h){let l=typeof s=="number"?s:s==="$"?t:1,u=typeof c=="number"?c:t;return e>=l&&e<=u}if(r){let l=Q(i),u=r.get(l);return u||(u={active:!1},r.set(l,u)),u.active?(N(c,e,t,n)&&(u.active=!1,r.set(l,u)),!0):N(s,e,t,n)?(u.active=!0,u.startLine=e,r.set(l,u),N(c,e,t,n)&&(u.active=!1,r.set(l,u)),!0):!1}return N(s,e,t,n)}return!0}function K(i){let e="",t=0;for(;t<i.length;){if(i[t]==="\\"&&t+1<i.length){let n=i[t+1];if(n==="+"||n==="?"||n==="|"){e+=n,t+=2;continue}if(n==="("||n===")"){e+=n,t+=2;continue}if(n==="{"||n==="}"){e+=n,t+=2;continue}e+=i[t]+n,t+=2;continue}if(i[t]==="+"||i[t]==="?"||i[t]==="|"||i[t]==="("||i[t]===")"){e+=`\\${i[t]}`,t++;continue}e+=i[t],t++}return e}function J(i){let e="";for(let t=0;t<i.length;t++){let n=i[t],r=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
|
|
3
|
-
`?e+=`$
|
|
4
|
-
`:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":r<32||r>=127?e+=`\\${r.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function P(i,e,t){let n="",r=0;for(;r<i.length;){if(i[r]==="\\"&&r+1<i.length){let s=i[r+1];if(s==="&"){n+="&",r+=2;continue}if(s==="n"){n+=`
|
|
5
|
-
`,r+=2;continue}if(s==="t"){n+=" ",r+=2;continue}let c=parseInt(s,10);if(c>=1&&c<=9){n+=t[c-1]||"",r+=2;continue}n+=s,r+=2;continue}if(i[r]==="&"){n+=e,r++;continue}n+=i[r],r++}return n}function V(i,e){let{lineNumber:t,totalLines:n,patternSpace:r}=e;if(i.type!=="label"&&k(i.address,t,n,r,e.rangeStates))switch(i.type){case"substitute":{let s=i,c="";s.global&&(c+="g"),s.ignoreCase&&(c+="i");let d=s.extendedRegex?s.pattern:K(s.pattern);try{let h=new RegExp(d,c),m=h.test(e.patternSpace);if(h.lastIndex=0,m){if(e.substitutionMade=!0,s.nthOccurrence&&s.nthOccurrence>0&&!s.global){let l=0,u=s.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(d,`g${s.ignoreCase?"i":""}`),(p,...o)=>{if(l++,l===u){let b=o.slice(0,-2);return P(s.replacement,p,b)}return p})}else e.patternSpace=e.patternSpace.replace(h,(l,...u)=>{let p=u.slice(0,-2);return P(s.replacement,l,p)});s.printOnMatch&&(e.printed=!0)}}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let s=e.patternSpace.indexOf(`
|
|
6
|
-
`);s!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,s)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let s=e.patternSpace.indexOf(`
|
|
7
|
-
`);s!==-1?(e.patternSpace=e.patternSpace.slice(s+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(i.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${i.text}`);break;case"change":e.patternSpace=i.text,e.deleted=!0,e.appendBuffer.push(i.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
|
|
8
|
-
${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
|
|
9
|
-
${e.holdSpace}`;break;case"exchange":{let s=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=s;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"list":{let s=J(e.patternSpace);e.lineNumberOutput.push(s);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:i.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:i.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:i.filename,content:`${e.patternSpace}
|
|
10
|
-
`});break;case"writeFirstLine":{let s=e.patternSpace.indexOf(`
|
|
11
|
-
`),c=s!==-1?e.patternSpace.slice(0,s):e.patternSpace;e.pendingFileWrites.push({filename:i.filename,content:`${c}
|
|
12
|
-
`});break}case"execute":i.command?e.pendingExecute={command:i.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=Y(e.patternSpace,i);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function Y(i,e){let t="";for(let n of i){let r=e.source.indexOf(n);r!==-1?t+=e.dest[r]:t+=n}return t}function y(i,e,t,n){let r=new Map;for(let m=0;m<i.length;m++){let l=i[m];l.type==="label"&&r.set(l.name,m)}let s=n?.maxIterations??G,c=0,d=0,h=0;for(;h<i.length;){if(c++,c>s)throw new W(`sed: command execution exceeded maximum iterations (${s})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let m=i[h];if(m.type==="nextAppend"){if(k(m.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates))if(t&&t.currentLineIndex+d+1<t.lines.length){d++;let l=t.lines[t.currentLineIndex+d];e.patternSpace+=`
|
|
13
|
-
${l}`,e.lineNumber=t.currentLineIndex+d+1}else{e.quit=!0,e.deleted=!0;break}h++;continue}if(m.type==="branch"){let l=m;if(k(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)){if(l.label){let u=r.get(l.label);if(u!==void 0){h=u;continue}}break}h++;continue}if(m.type==="branchOnSubst"){let l=m;if(k(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&e.substitutionMade){if(e.substitutionMade=!1,l.label){let u=r.get(l.label);if(u!==void 0){h=u;continue}}break}h++;continue}if(m.type==="branchOnNoSubst"){let l=m;if(k(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&!e.substitutionMade){if(l.label){let u=r.get(l.label);if(u!==void 0){h=u;continue}}break}h++;continue}if(m.type==="group"){let l=m;k(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&y(l.commands,e,t,n),h++;continue}V(m,e),h++}return d}var a;(function(i){i.NUMBER="NUMBER",i.DOLLAR="DOLLAR",i.PATTERN="PATTERN",i.STEP="STEP",i.LBRACE="LBRACE",i.RBRACE="RBRACE",i.SEMICOLON="SEMICOLON",i.NEWLINE="NEWLINE",i.COMMA="COMMA",i.COMMAND="COMMAND",i.SUBSTITUTE="SUBSTITUTE",i.TRANSLITERATE="TRANSLITERATE",i.LABEL_DEF="LABEL_DEF",i.BRANCH="BRANCH",i.BRANCH_ON_SUBST="BRANCH_ON_SUBST",i.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",i.TEXT_CMD="TEXT_CMD",i.FILE_READ="FILE_READ",i.FILE_READ_LINE="FILE_READ_LINE",i.FILE_WRITE="FILE_WRITE",i.FILE_WRITE_LINE="FILE_WRITE_LINE",i.EXECUTE="EXECUTE",i.EOF="EOF",i.ERROR="ERROR"})(a||(a={}));var L=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&e.push(t)}return e.push(this.makeToken(a.EOF,"")),e}makeToken(e,t,n){return{type:e,value:t,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
|
|
14
|
-
`?(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==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
15
|
-
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,t=this.column,n=this.peek();return n===`
|
|
16
|
-
`?(this.advance(),{type:a.NEWLINE,value:`
|
|
17
|
-
`,line:e,column:t}):n===";"?(this.advance(),{type:a.SEMICOLON,value:";",line:e,column:t}):n==="{"?(this.advance(),{type:a.LBRACE,value:"{",line:e,column:t}):n==="}"?(this.advance(),{type:a.RBRACE,value:"}",line:e,column:t}):n===","?(this.advance(),{type:a.COMMA,value:",",line:e,column:t}):n==="$"?(this.advance(),{type:a.DOLLAR,value:"$",line:e,column:t}):this.isDigit(n)?this.readNumber():n==="/"?this.readPattern():n===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,t=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="~"){this.advance();let r="";for(;this.isDigit(this.peek());)r+=this.advance();let s=parseInt(n,10),c=parseInt(r,10)||0;return{type:a.STEP,value:`${s}~${c}`,first:s,step:c,line:e,column:t}}return{type:a.NUMBER,value:parseInt(n,10),line:e,column:t}}readPattern(){let e=this.line,t=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()===`
|
|
18
|
-
`)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),{type:a.PATTERN,value:n,pattern:n,line:e,column:t}}readLabelDef(){let e=this.line,t=this.column;this.advance();let n="";for(;this.pos<this.input.length;){let r=this.peek();if(r===" "||r===" "||r===`
|
|
19
|
-
`||r===";"||r==="}"||r==="{")break;n+=this.advance()}return{type:a.LABEL_DEF,value:n,label:n,line:e,column:t}}readCommand(){let e=this.line,t=this.column,n=this.advance();switch(n){case"s":return this.readSubstitute(e,t);case"y":return this.readTransliterate(e,t);case"a":case"i":case"c":return this.readTextCommand(n,e,t);case"b":return this.readBranch(a.BRANCH,"b",e,t);case"t":return this.readBranch(a.BRANCH_ON_SUBST,"t",e,t);case"T":return this.readBranch(a.BRANCH_ON_NO_SUBST,"T",e,t);case"r":return this.readFileCommand(a.FILE_READ,"r",e,t);case"R":return this.readFileCommand(a.FILE_READ_LINE,"R",e,t);case"w":return this.readFileCommand(a.FILE_WRITE,"w",e,t);case"W":return this.readFileCommand(a.FILE_WRITE_LINE,"W",e,t);case"e":return this.readExecute(e,t);case"p":case"P":case"d":case"D":case"h":case"H":case"g":case"G":case"x":case"n":case"N":case"q":case"Q":case"z":case"=":case"l":case"F":case"v":return{type:a.COMMAND,value:n,line:e,column:t};default:return{type:a.ERROR,value:n,line:e,column:t}}}readSubstitute(e,t){let n=this.advance();if(!n||n===`
|
|
20
|
-
`)return{type:a.ERROR,value:"s",line:e,column:t};let r="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")r+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
21
|
-
`&&(r+=this.advance());else{if(this.peek()===`
|
|
22
|
-
`)break;r+=this.advance()}if(this.peek()!==n)return{type:a.ERROR,value:"unterminated substitution pattern",line:e,column:t};this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")s+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
23
|
-
`&&(s+=this.advance());else{if(this.peek()===`
|
|
24
|
-
`)break;s+=this.advance()}this.peek()===n&&this.advance();let c="";for(;this.pos<this.input.length;){let d=this.peek();if(d==="g"||d==="i"||d==="p"||d==="I"||this.isDigit(d))c+=this.advance();else break}return{type:a.SUBSTITUTE,value:`s${n}${r}${n}${s}${n}${c}`,pattern:r,replacement:s,flags:c,line:e,column:t}}readTransliterate(e,t){let n=this.advance();if(!n||n===`
|
|
25
|
-
`)return{type:a.ERROR,value:"y",line:e,column:t};let r="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let c=this.advance();c==="n"?r+=`
|
|
26
|
-
`:c==="t"?r+=" ":r+=c}else{if(this.peek()===`
|
|
27
|
-
`)break;r+=this.advance()}if(this.peek()!==n)return{type:a.ERROR,value:"unterminated transliteration source",line:e,column:t};this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let c=this.advance();c==="n"?s+=`
|
|
28
|
-
`:c==="t"?s+=" ":s+=c}else{if(this.peek()===`
|
|
29
|
-
`)break;s+=this.advance()}return this.peek()===n&&this.advance(),{type:a.TRANSLITERATE,value:`y${n}${r}${n}${s}${n}`,source:r,dest:s,line:e,column:t}}readTextCommand(e,t,n){this.peek()==="\\"&&this.advance(),this.peek()===" "&&this.advance();let r="";for(;this.pos<this.input.length&&this.peek()!==`
|
|
30
|
-
`;)r+=this.advance();return{type:a.TEXT_CMD,value:e,text:r.trim(),line:t,column:n}}readBranch(e,t,n,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let s="";for(;this.pos<this.input.length;){let c=this.peek();if(c===" "||c===" "||c===`
|
|
31
|
-
`||c===";"||c==="}"||c==="{")break;s+=this.advance()}return{type:e,value:t,label:s||void 0,line:n,column:r}}readFileCommand(e,t,n,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let s="";for(;this.pos<this.input.length;){let c=this.peek();if(c===`
|
|
32
|
-
`||c===";")break;s+=this.advance()}return{type:e,value:t,filename:s.trim(),line:n,column:r}}readExecute(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
|
|
33
|
-
`||r===";")break;n+=this.advance()}return{type:a.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var A=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,t=!1){this.scripts=e,this.extendedRegex=t}parse(){let e=[];for(let t of this.scripts){let n=new L(t);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(a.NEWLINE)||this.check(a.SEMICOLON)){this.advance();continue}let r=this.parseCommand();if(r.error)return{commands:[],error:r.error};r.command&&e.push(r.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(a.NEWLINE)||this.check(a.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let t=this.peek();switch(t.type){case a.COMMAND:return this.parseSimpleCommand(t,e);case a.SUBSTITUTE:return this.parseSubstituteFromToken(t,e);case a.TRANSLITERATE:return this.parseTransliterateFromToken(t,e);case a.LABEL_DEF:return this.advance(),{command:{type:"label",name:t.label||""}};case a.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:t.label}};case a.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:t.label}};case a.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:t.label}};case a.TEXT_CMD:return this.advance(),this.parseTextCommand(t,e);case a.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:t.filename||""}};case a.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:t.filename||""}};case a.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:t.filename||""}};case a.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:t.filename||""}};case a.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:t.command}};case a.LBRACE:return this.parseGroup(e);case a.RBRACE:return{command:null};case a.ERROR:return{command:null,error:`invalid command: ${t.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,t){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:t}};case"P":return{command:{type:"printFirstLine",address:t}};case"d":return{command:{type:"delete",address:t}};case"D":return{command:{type:"deleteFirstLine",address:t}};case"h":return{command:{type:"hold",address:t}};case"H":return{command:{type:"holdAppend",address:t}};case"g":return{command:{type:"get",address:t}};case"G":return{command:{type:"getAppend",address:t}};case"x":return{command:{type:"exchange",address:t}};case"n":return{command:{type:"next",address:t}};case"N":return{command:{type:"nextAppend",address:t}};case"q":return{command:{type:"quit",address:t}};case"Q":return{command:{type:"quitSilent",address:t}};case"z":return{command:{type:"zap",address:t}};case"=":return{command:{type:"lineNumber",address:t}};case"l":return{command:{type:"list",address:t}};case"F":return{command:{type:"printFilename",address:t}};case"v":return{command:{type:"version",address:t}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,t){this.advance();let n=e.flags||"",r,s=n.match(/(\d+)/);return s&&(r=parseInt(s[1],10)),{command:{type:"substitute",address:t,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:r,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,t){this.advance();let n=e.source||"",r=e.dest||"";return n.length!==r.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:t,source:n,dest:r}}}parseTextCommand(e,t){let n=e.value,r=e.text||"";switch(n){case"a":return{command:{type:"append",address:t,text:r}};case"i":return{command:{type:"insert",address:t,text:r}};case"c":return{command:{type:"change",address:t,text:r}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let t=[];for(;!this.isAtEnd()&&!this.check(a.RBRACE);){if(this.check(a.NEWLINE)||this.check(a.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&t.push(n.command)}return this.check(a.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:t}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let t;return this.check(a.COMMA)&&(this.advance(),t=this.parseAddress()),{start:e,end:t}}parseAddress(){let e=this.peek();switch(e.type){case a.NUMBER:return this.advance(),e.value;case a.DOLLAR:return this.advance(),"$";case a.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case a.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:a.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===a.EOF}};function q(i,e=!1){return new A(i,e).parse()}var Z={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
|
|
34
|
-
s/regexp/replacement/[flags] substitute
|
|
35
|
-
d delete pattern space
|
|
36
|
-
p print pattern space
|
|
37
|
-
a\\ text append text after line
|
|
38
|
-
i\\ text insert text before line
|
|
39
|
-
c\\ text change (replace) line with text
|
|
40
|
-
h copy pattern space to hold space
|
|
41
|
-
H append pattern space to hold space
|
|
42
|
-
g copy hold space to pattern space
|
|
43
|
-
G append hold space to pattern space
|
|
44
|
-
x exchange pattern and hold spaces
|
|
45
|
-
n read next line into pattern space
|
|
46
|
-
N append next line to pattern space
|
|
47
|
-
y/source/dest/ transliterate characters
|
|
48
|
-
= print line number
|
|
49
|
-
l list pattern space (escape special chars)
|
|
50
|
-
b [label] branch to label
|
|
51
|
-
t [label] branch on substitution
|
|
52
|
-
T [label] branch if no substitution
|
|
53
|
-
:label define label
|
|
54
|
-
q quit
|
|
55
|
-
Q quit without printing
|
|
56
|
-
|
|
57
|
-
Addresses:
|
|
58
|
-
N line number
|
|
59
|
-
$ last line
|
|
60
|
-
/regexp/ lines matching regexp
|
|
61
|
-
N,M range from line N to M
|
|
62
|
-
first~step every step-th line starting at first`};async function F(i,e,t,n={}){let{limits:r,filename:s,fs:c,cwd:d}=n,h=i.split(`
|
|
63
|
-
`);h.length>0&&h[h.length-1]===""&&h.pop();let m=h.length,l="",u,p="",o=new Map,b=new Map,C=new Map,R=new Map,H=r?{maxIterations:r.maxSedIterations}:void 0;for(let v=0;v<h.length;v++){let f={...U(m,s,o),patternSpace:h[v],holdSpace:p,lineNumber:v+1,totalLines:m,substitutionMade:!1},O={lines:h,currentLineIndex:v},_=0,X=1e4,$=0;do{if(_++,_>X)break;f.restartCycle=!1,f.pendingFileReads=[],f.pendingFileWrites=[];let E=y(e,f,O,H);if($+=E,c&&d){for(let S of f.pendingFileReads){let g=c.resolvePath(d,S.filename);try{if(S.wholeFile){let x=await c.readFile(g);f.appendBuffer.push(x.replace(/\n$/,""))}else{if(!b.has(g)){let z=await c.readFile(g);b.set(g,z.split(`
|
|
64
|
-
`)),C.set(g,0)}let x=b.get(g),w=C.get(g);x&&w!==void 0&&w<x.length&&(f.appendBuffer.push(x[w]),C.set(g,w+1))}}catch{}}for(let S of f.pendingFileWrites){let g=c.resolvePath(d,S.filename),x=R.get(g)||"";R.set(g,x+S.content)}}O.currentLineIndex+=E}while(f.restartCycle&&!f.deleted&&!f.quit&&!f.quitSilent);v+=$,p=f.holdSpace;for(let E of f.lineNumberOutput)l+=`${E}
|
|
65
|
-
`;let B=[],M=[];for(let E of f.appendBuffer)E.startsWith("__INSERT__")?B.push(E.slice(10)):M.push(E);for(let E of B)l+=`${E}
|
|
66
|
-
`;!f.deleted&&!f.quitSilent&&(t?f.printed&&(l+=`${f.patternSpace}
|
|
67
|
-
`):l+=`${f.patternSpace}
|
|
68
|
-
`);for(let E of M)l+=`${E}
|
|
69
|
-
`;if(f.quit||f.quitSilent){f.exitCode!==void 0&&(u=f.exitCode);break}}if(c&&d)for(let[v,f]of R)try{await c.writeFile(v,f)}catch{}return{output:l,exitCode:u}}var le={name:"sed",async execute(i,e){if(D(i))return T(Z);let t=[],n=[],r=!1,s=!1,c=!1,d=[];for(let p=0;p<i.length;p++){let o=i[p];if(o==="-n"||o==="--quiet"||o==="--silent")r=!0;else if(o==="-i"||o==="--in-place")s=!0;else if(o.startsWith("-i"))s=!0;else if(o==="-E"||o==="-r"||o==="--regexp-extended")c=!0;else if(o==="-e")p+1<i.length&&t.push(i[++p]);else if(o==="-f")p+1<i.length&&n.push(i[++p]);else{if(o.startsWith("--"))return I("sed",o);if(o.startsWith("-")&&o.length>1){for(let b of o.slice(1))if(b!=="n"&&b!=="e"&&b!=="f"&&b!=="i"&&b!=="E"&&b!=="r")return I("sed",`-${b}`);o.includes("n")&&(r=!0),o.includes("i")&&(s=!0),(o.includes("E")||o.includes("r"))&&(c=!0),o.includes("e")&&!o.includes("n")&&!o.includes("i")&&p+1<i.length&&t.push(i[++p]),o.includes("f")&&!o.includes("e")&&p+1<i.length&&n.push(i[++p])}else!o.startsWith("-")&&t.length===0&&n.length===0?t.push(o):o.startsWith("-")||d.push(o)}}for(let p of n){let o=e.fs.resolvePath(e.cwd,p);try{let b=await e.fs.readFile(o);for(let C of b.split(`
|
|
70
|
-
`)){let R=C.trim();R&&!R.startsWith("#")&&t.push(R)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${p}: No such file or directory
|
|
71
|
-
`,exitCode:1}}}if(t.length===0)return{stdout:"",stderr:`sed: no script specified
|
|
72
|
-
`,exitCode:1};let{commands:h,error:m}=q(t,c);if(m)return{stdout:"",stderr:`sed: ${m}
|
|
73
|
-
`,exitCode:1};if(h.length===0)return{stdout:"",stderr:`sed: no valid commands
|
|
74
|
-
`,exitCode:1};let l="";if(d.length===0){l=e.stdin;let p=await F(l,h,r,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:p.output,stderr:"",exitCode:p.exitCode??0}}if(s){for(let p of d){let o=e.fs.resolvePath(e.cwd,p);try{let b=await e.fs.readFile(o),C=await F(b,h,r,{limits:e.limits,filename:p,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(o,C.output)}catch{return{stdout:"",stderr:`sed: ${p}: No such file or directory
|
|
75
|
-
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let p of d){let o=e.fs.resolvePath(e.cwd,p);try{l+=await e.fs.readFile(o)}catch{return{stdout:"",stderr:`sed: ${p}: No such file or directory
|
|
76
|
-
`,exitCode:1}}}let u=await F(l,h,r,{limits:e.limits,filename:d.length===1?d[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:u.output,stderr:"",exitCode:u.exitCode??0}}};export{le as sedCommand};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{i as O}from"./chunk-LV662IGP.js";import{a as A,b as y,c as k}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";var M=1e4;function _(i,e){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:i,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0}}function T(i){return typeof i=="object"&&"first"in i&&"step"in i}function w(i,e,t,n){if(i==="$")return e===t;if(typeof i=="number")return e===i;if(T(i)){let{first:r,step:s}=i;return s===0?e===r:(e-r)%s===0&&e>=r}if(typeof i=="object"&&"pattern"in i)try{return new RegExp(i.pattern).test(n)}catch{return!1}return!1}function g(i,e,t,n){if(!i||!i.start&&!i.end)return!0;let r=i.start,s=i.end;if(r!==void 0&&s===void 0)return w(r,e,t,n);if(r!==void 0&&s!==void 0){let l=typeof r=="number"?r:r==="$"?t:1,h=typeof s=="number"?s:t;return typeof r=="object"&&"pattern"in r&&w(r,e,t,n)?!0:e>=l&&e<=h}return!0}function $(i){let e="";for(let t=0;t<i.length;t++){let n=i[t],r=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
|
|
3
|
-
`?e+=`$
|
|
4
|
-
`:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":r<32||r>=127?e+=`\\${r.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function F(i,e,t){let n="",r=0;for(;r<i.length;){if(i[r]==="\\"&&r+1<i.length){let s=i[r+1];if(s==="&"){n+="&",r+=2;continue}if(s==="n"){n+=`
|
|
5
|
-
`,r+=2;continue}if(s==="t"){n+=" ",r+=2;continue}let l=parseInt(s,10);if(l>=1&&l<=9){n+=t[l-1]||"",r+=2;continue}n+=s,r+=2;continue}if(i[r]==="&"){n+=e,r++;continue}n+=i[r],r++}return n}function D(i,e){let{lineNumber:t,totalLines:n,patternSpace:r}=e;if(i.type!=="label"&&g(i.address,t,n,r))switch(i.type){case"substitute":{let s=i,l="";s.global&&(l+="g"),s.ignoreCase&&(l+="i");try{let h=new RegExp(s.pattern,l),p=e.patternSpace;if(s.nthOccurrence&&s.nthOccurrence>0&&!s.global){let o=0,f=s.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(s.pattern,`g${s.ignoreCase?"i":""}`),(u,...c)=>{if(o++,o===f){let m=c.slice(0,-2);return F(s.replacement,u,m)}return u})}else e.patternSpace=e.patternSpace.replace(h,(o,...f)=>{let u=f.slice(0,-2);return F(s.replacement,o,u)});p!==e.patternSpace&&(e.substitutionMade=!0,s.printOnMatch&&(e.printed=!0))}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let s=e.patternSpace.indexOf(`
|
|
6
|
-
`);s!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,s)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let s=e.patternSpace.indexOf(`
|
|
7
|
-
`);s!==-1?(e.patternSpace=e.patternSpace.slice(s+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(i.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${i.text}`);break;case"change":e.patternSpace=i.text,e.deleted=!0,e.appendBuffer.push(i.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
|
|
8
|
-
${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
|
|
9
|
-
${e.holdSpace}`;break;case"exchange":{let s=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=s;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,i.exitCode!==void 0&&(e.exitCode=i.exitCode);break;case"list":{let s=$(e.patternSpace);e.lineNumberOutput.push(s);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:i.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:i.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:i.filename,content:`${e.patternSpace}
|
|
10
|
-
`});break;case"writeFirstLine":{let s=e.patternSpace.indexOf(`
|
|
11
|
-
`),l=s!==-1?e.patternSpace.slice(0,s):e.patternSpace;e.pendingFileWrites.push({filename:i.filename,content:`${l}
|
|
12
|
-
`});break}case"execute":i.command?e.pendingExecute={command:i.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=W(e.patternSpace,i);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function W(i,e){let t="";for(let n of i){let r=e.source.indexOf(n);r!==-1?t+=e.dest[r]:t+=n}return t}function R(i,e,t,n){let r=new Map;for(let d=0;d<i.length;d++){let o=i[d];o.type==="label"&&r.set(o.name,d)}let s=n?.maxIterations??M,l=0,h=0,p=0;for(;p<i.length;){if(l++,l>s)throw new O(`sed: command execution exceeded maximum iterations (${s})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let d=i[p];if(d.type==="nextAppend"){if(g(d.address,e.lineNumber,e.totalLines,e.patternSpace))if(t&&t.currentLineIndex+h+1<t.lines.length){h++;let o=t.lines[t.currentLineIndex+h];e.patternSpace+=`
|
|
13
|
-
${o}`,e.lineNumber=t.currentLineIndex+h+1}else{e.quit=!0,e.deleted=!0;break}p++;continue}if(d.type==="branch"){let o=d;if(g(o.address,e.lineNumber,e.totalLines,e.patternSpace)){if(o.label){let f=r.get(o.label);if(f!==void 0){p=f;continue}}break}p++;continue}if(d.type==="branchOnSubst"){let o=d;if(g(o.address,e.lineNumber,e.totalLines,e.patternSpace)&&e.substitutionMade){if(e.substitutionMade=!1,o.label){let f=r.get(o.label);if(f!==void 0){p=f;continue}}break}p++;continue}if(d.type==="branchOnNoSubst"){let o=d;if(g(o.address,e.lineNumber,e.totalLines,e.patternSpace)&&!e.substitutionMade){if(o.label){let f=r.get(o.label);if(f!==void 0){p=f;continue}}break}p++;continue}if(d.type==="group"){let o=d;g(o.address,e.lineNumber,e.totalLines,e.patternSpace)&&R(o.commands,e,t,n),p++;continue}D(d,e),p++}return h}var a;(function(i){i.NUMBER="NUMBER",i.DOLLAR="DOLLAR",i.PATTERN="PATTERN",i.STEP="STEP",i.LBRACE="LBRACE",i.RBRACE="RBRACE",i.SEMICOLON="SEMICOLON",i.NEWLINE="NEWLINE",i.COMMA="COMMA",i.COMMAND="COMMAND",i.SUBSTITUTE="SUBSTITUTE",i.TRANSLITERATE="TRANSLITERATE",i.LABEL_DEF="LABEL_DEF",i.BRANCH="BRANCH",i.BRANCH_ON_SUBST="BRANCH_ON_SUBST",i.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",i.TEXT_CMD="TEXT_CMD",i.FILE_READ="FILE_READ",i.FILE_READ_LINE="FILE_READ_LINE",i.FILE_WRITE="FILE_WRITE",i.FILE_WRITE_LINE="FILE_WRITE_LINE",i.EXECUTE="EXECUTE",i.EOF="EOF",i.ERROR="ERROR"})(a||(a={}));var C=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&e.push(t)}return e.push(this.makeToken(a.EOF,"")),e}makeToken(e,t,n){return{type:e,value:t,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
|
|
14
|
-
`?(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==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
15
|
-
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,t=this.column,n=this.peek();return n===`
|
|
16
|
-
`?(this.advance(),{type:a.NEWLINE,value:`
|
|
17
|
-
`,line:e,column:t}):n===";"?(this.advance(),{type:a.SEMICOLON,value:";",line:e,column:t}):n==="{"?(this.advance(),{type:a.LBRACE,value:"{",line:e,column:t}):n==="}"?(this.advance(),{type:a.RBRACE,value:"}",line:e,column:t}):n===","?(this.advance(),{type:a.COMMA,value:",",line:e,column:t}):n==="$"?(this.advance(),{type:a.DOLLAR,value:"$",line:e,column:t}):this.isDigit(n)?this.readNumber():n==="/"?this.readPattern():n===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,t=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="~"){this.advance();let r="";for(;this.isDigit(this.peek());)r+=this.advance();let s=parseInt(n,10),l=parseInt(r,10)||0;return{type:a.STEP,value:`${s}~${l}`,first:s,step:l,line:e,column:t}}return{type:a.NUMBER,value:parseInt(n,10),line:e,column:t}}readPattern(){let e=this.line,t=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()===`
|
|
18
|
-
`)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),{type:a.PATTERN,value:n,pattern:n,line:e,column:t}}readLabelDef(){let e=this.line,t=this.column;this.advance();let n="";for(;this.pos<this.input.length;){let r=this.peek();if(r===" "||r===" "||r===`
|
|
19
|
-
`||r===";"||r==="}"||r==="{")break;n+=this.advance()}return{type:a.LABEL_DEF,value:n,label:n,line:e,column:t}}readCommand(){let e=this.line,t=this.column,n=this.advance();switch(n){case"s":return this.readSubstitute(e,t);case"y":return this.readTransliterate(e,t);case"a":case"i":case"c":return this.readTextCommand(n,e,t);case"b":return this.readBranch(a.BRANCH,"b",e,t);case"t":return this.readBranch(a.BRANCH_ON_SUBST,"t",e,t);case"T":return this.readBranch(a.BRANCH_ON_NO_SUBST,"T",e,t);case"r":return this.readFileCommand(a.FILE_READ,"r",e,t);case"R":return this.readFileCommand(a.FILE_READ_LINE,"R",e,t);case"w":return this.readFileCommand(a.FILE_WRITE,"w",e,t);case"W":return this.readFileCommand(a.FILE_WRITE_LINE,"W",e,t);case"e":return this.readExecute(e,t);case"p":case"P":case"d":case"D":case"h":case"H":case"g":case"G":case"x":case"n":case"N":case"q":case"Q":case"z":case"=":case"l":case"F":case"v":return{type:a.COMMAND,value:n,line:e,column:t};default:return{type:a.ERROR,value:n,line:e,column:t}}}readSubstitute(e,t){let n=this.advance();if(!n||n===`
|
|
20
|
-
`)return{type:a.ERROR,value:"s",line:e,column:t};let r="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")r+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
21
|
-
`&&(r+=this.advance());else{if(this.peek()===`
|
|
22
|
-
`)break;r+=this.advance()}if(this.peek()!==n)return{type:a.ERROR,value:"unterminated substitution pattern",line:e,column:t};this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\")s+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
23
|
-
`&&(s+=this.advance());else{if(this.peek()===`
|
|
24
|
-
`)break;s+=this.advance()}this.peek()===n&&this.advance();let l="";for(;this.pos<this.input.length;){let h=this.peek();if(h==="g"||h==="i"||h==="p"||h==="I"||this.isDigit(h))l+=this.advance();else break}return{type:a.SUBSTITUTE,value:`s${n}${r}${n}${s}${n}${l}`,pattern:r,replacement:s,flags:l,line:e,column:t}}readTransliterate(e,t){let n=this.advance();if(!n||n===`
|
|
25
|
-
`)return{type:a.ERROR,value:"y",line:e,column:t};let r="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let l=this.advance();l==="n"?r+=`
|
|
26
|
-
`:l==="t"?r+=" ":r+=l}else{if(this.peek()===`
|
|
27
|
-
`)break;r+=this.advance()}if(this.peek()!==n)return{type:a.ERROR,value:"unterminated transliteration source",line:e,column:t};this.advance();let s="";for(;this.pos<this.input.length&&this.peek()!==n;)if(this.peek()==="\\"){this.advance();let l=this.advance();l==="n"?s+=`
|
|
28
|
-
`:l==="t"?s+=" ":s+=l}else{if(this.peek()===`
|
|
29
|
-
`)break;s+=this.advance()}return this.peek()===n&&this.advance(),{type:a.TRANSLITERATE,value:`y${n}${r}${n}${s}${n}`,source:r,dest:s,line:e,column:t}}readTextCommand(e,t,n){this.peek()==="\\"&&this.advance(),this.peek()===" "&&this.advance();let r="";for(;this.pos<this.input.length&&this.peek()!==`
|
|
30
|
-
`;)r+=this.advance();return{type:a.TEXT_CMD,value:e,text:r.trim(),line:t,column:n}}readBranch(e,t,n,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let s="";for(;this.pos<this.input.length;){let l=this.peek();if(l===" "||l===" "||l===`
|
|
31
|
-
`||l===";"||l==="}"||l==="{")break;s+=this.advance()}return{type:e,value:t,label:s||void 0,line:n,column:r}}readFileCommand(e,t,n,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let s="";for(;this.pos<this.input.length;){let l=this.peek();if(l===`
|
|
32
|
-
`||l===";")break;s+=this.advance()}return{type:e,value:t,filename:s.trim(),line:n,column:r}}readExecute(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
|
|
33
|
-
`||r===";")break;n+=this.advance()}return{type:a.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var x=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,t=!1){this.scripts=e,this.extendedRegex=t}parse(){let e=[];for(let t of this.scripts){let n=new C(t);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(a.NEWLINE)||this.check(a.SEMICOLON)){this.advance();continue}let r=this.parseCommand();if(r.error)return{commands:[],error:r.error};r.command&&e.push(r.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(a.NEWLINE)||this.check(a.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let t=this.peek();switch(t.type){case a.COMMAND:return this.parseSimpleCommand(t,e);case a.SUBSTITUTE:return this.parseSubstituteFromToken(t,e);case a.TRANSLITERATE:return this.parseTransliterateFromToken(t,e);case a.LABEL_DEF:return this.advance(),{command:{type:"label",name:t.label||""}};case a.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:t.label}};case a.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:t.label}};case a.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:t.label}};case a.TEXT_CMD:return this.advance(),this.parseTextCommand(t,e);case a.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:t.filename||""}};case a.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:t.filename||""}};case a.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:t.filename||""}};case a.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:t.filename||""}};case a.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:t.command}};case a.LBRACE:return this.parseGroup(e);case a.RBRACE:return{command:null};case a.ERROR:return{command:null,error:`invalid command: ${t.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,t){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:t}};case"P":return{command:{type:"printFirstLine",address:t}};case"d":return{command:{type:"delete",address:t}};case"D":return{command:{type:"deleteFirstLine",address:t}};case"h":return{command:{type:"hold",address:t}};case"H":return{command:{type:"holdAppend",address:t}};case"g":return{command:{type:"get",address:t}};case"G":return{command:{type:"getAppend",address:t}};case"x":return{command:{type:"exchange",address:t}};case"n":return{command:{type:"next",address:t}};case"N":return{command:{type:"nextAppend",address:t}};case"q":return{command:{type:"quit",address:t}};case"Q":return{command:{type:"quitSilent",address:t}};case"z":return{command:{type:"zap",address:t}};case"=":return{command:{type:"lineNumber",address:t}};case"l":return{command:{type:"list",address:t}};case"F":return{command:{type:"printFilename",address:t}};case"v":return{command:{type:"version",address:t}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,t){this.advance();let n=e.flags||"",r,s=n.match(/(\d+)/);return s&&(r=parseInt(s[1],10)),{command:{type:"substitute",address:t,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:r,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,t){this.advance();let n=e.source||"",r=e.dest||"";return n.length!==r.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:t,source:n,dest:r}}}parseTextCommand(e,t){let n=e.value,r=e.text||"";switch(n){case"a":return{command:{type:"append",address:t,text:r}};case"i":return{command:{type:"insert",address:t,text:r}};case"c":return{command:{type:"change",address:t,text:r}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let t=[];for(;!this.isAtEnd()&&!this.check(a.RBRACE);){if(this.check(a.NEWLINE)||this.check(a.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&t.push(n.command)}return this.check(a.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:t}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let t;return this.check(a.COMMA)&&(this.advance(),t=this.parseAddress()),{start:e,end:t}}parseAddress(){let e=this.peek();switch(e.type){case a.NUMBER:return this.advance(),e.value;case a.DOLLAR:return this.advance(),"$";case a.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case a.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:a.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===a.EOF}};function B(i,e=!1){return new x(i,e).parse()}var U={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
|
|
34
|
-
s/regexp/replacement/[flags] substitute
|
|
35
|
-
d delete pattern space
|
|
36
|
-
p print pattern space
|
|
37
|
-
a\\ text append text after line
|
|
38
|
-
i\\ text insert text before line
|
|
39
|
-
c\\ text change (replace) line with text
|
|
40
|
-
h copy pattern space to hold space
|
|
41
|
-
H append pattern space to hold space
|
|
42
|
-
g copy hold space to pattern space
|
|
43
|
-
G append hold space to pattern space
|
|
44
|
-
x exchange pattern and hold spaces
|
|
45
|
-
n read next line into pattern space
|
|
46
|
-
N append next line to pattern space
|
|
47
|
-
y/source/dest/ transliterate characters
|
|
48
|
-
= print line number
|
|
49
|
-
l list pattern space (escape special chars)
|
|
50
|
-
b [label] branch to label
|
|
51
|
-
t [label] branch on substitution
|
|
52
|
-
T [label] branch if no substitution
|
|
53
|
-
:label define label
|
|
54
|
-
q quit
|
|
55
|
-
Q quit without printing
|
|
56
|
-
|
|
57
|
-
Addresses:
|
|
58
|
-
N line number
|
|
59
|
-
$ last line
|
|
60
|
-
/regexp/ lines matching regexp
|
|
61
|
-
N,M range from line N to M
|
|
62
|
-
first~step every step-th line starting at first`};async function S(i,e,t,n={}){let{limits:r,filename:s}=n,l=i.split(`
|
|
63
|
-
`);l.length>0&&l[l.length-1]===""&&l.pop();let h=l.length,p="",d,o="",f=r?{maxIterations:r.maxSedIterations}:void 0;for(let u=0;u<l.length;u++){let c={..._(h,s),patternSpace:l[u],holdSpace:o,lineNumber:u+1,totalLines:h,substitutionMade:!1},m={lines:l,currentLineIndex:u},E=0,v=1e4,N=0;do{if(E++,E>v)break;c.restartCycle=!1;let b=R(e,c,m,f);N+=b,m.currentLineIndex+=b}while(c.restartCycle&&!c.deleted&&!c.quit&&!c.quitSilent);u+=N,o=c.holdSpace;for(let b of c.lineNumberOutput)p+=`${b}
|
|
64
|
-
`;let L=[],I=[];for(let b of c.appendBuffer)b.startsWith("__INSERT__")?L.push(b.slice(10)):I.push(b);for(let b of L)p+=`${b}
|
|
65
|
-
`;!c.deleted&&!c.quitSilent&&(t?c.printed&&(p+=`${c.patternSpace}
|
|
66
|
-
`):p+=`${c.patternSpace}
|
|
67
|
-
`);for(let b of I)p+=`${b}
|
|
68
|
-
`;if(c.quit||c.quitSilent){c.exitCode!==void 0&&(d=c.exitCode);break}}return{output:p,exitCode:d}}var J={name:"sed",async execute(i,e){if(y(i))return A(U);let t=[],n=[],r=!1,s=!1,l=!1,h=[];for(let u=0;u<i.length;u++){let c=i[u];if(c==="-n"||c==="--quiet"||c==="--silent")r=!0;else if(c==="-i"||c==="--in-place")s=!0;else if(c.startsWith("-i"))s=!0;else if(c==="-E"||c==="-r"||c==="--regexp-extended")l=!0;else if(c==="-e")u+1<i.length&&t.push(i[++u]);else if(c==="-f")u+1<i.length&&n.push(i[++u]);else{if(c.startsWith("--"))return k("sed",c);if(c.startsWith("-")&&c.length>1){for(let m of c.slice(1))if(m!=="n"&&m!=="e"&&m!=="f"&&m!=="i"&&m!=="E"&&m!=="r")return k("sed",`-${m}`);c.includes("n")&&(r=!0),c.includes("i")&&(s=!0),(c.includes("E")||c.includes("r"))&&(l=!0),c.includes("e")&&!c.includes("n")&&!c.includes("i")&&u+1<i.length&&t.push(i[++u]),c.includes("f")&&!c.includes("e")&&u+1<i.length&&n.push(i[++u])}else!c.startsWith("-")&&t.length===0&&n.length===0?t.push(c):c.startsWith("-")||h.push(c)}}for(let u of n){let c=e.fs.resolvePath(e.cwd,u);try{let m=await e.fs.readFile(c);for(let E of m.split(`
|
|
69
|
-
`)){let v=E.trim();v&&!v.startsWith("#")&&t.push(v)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${u}: No such file or directory
|
|
70
|
-
`,exitCode:1}}}if(t.length===0)return{stdout:"",stderr:`sed: no script specified
|
|
71
|
-
`,exitCode:1};let{commands:p,error:d}=B(t,l);if(d)return{stdout:"",stderr:`sed: ${d}
|
|
72
|
-
`,exitCode:1};if(p.length===0)return{stdout:"",stderr:`sed: no valid commands
|
|
73
|
-
`,exitCode:1};let o="";if(h.length===0){o=e.stdin;let u=await S(o,p,r,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:u.output,stderr:"",exitCode:u.exitCode??0}}if(s){for(let u of h){let c=e.fs.resolvePath(e.cwd,u);try{let m=await e.fs.readFile(c),E=await S(m,p,r,{limits:e.limits,filename:u,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(c,E.output)}catch{return{stdout:"",stderr:`sed: ${u}: No such file or directory
|
|
74
|
-
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let u of h){let c=e.fs.resolvePath(e.cwd,u);try{o+=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`sed: ${u}: No such file or directory
|
|
75
|
-
`,exitCode:1}}}let f=await S(o,p,r,{limits:e.limits,filename:h.length===1?h[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}};export{J as sedCommand};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{b as F}from"./chunk-J7MJV6WO.js";import{a as v,b as y,c as C}from"./chunk-GTNBSMZR.js";import"./chunk-5KNEBKYN.js";function k(u,t,r){let f=r!==null?r:/\s+/,a=u.split(f),s=t.startField-1;if(s>=a.length)return"";if(t.endField===void 0){let i=a[s]||"";return t.startChar!==void 0&&(i=i.slice(t.startChar-1)),t.ignoreLeading&&(i=i.trimStart()),i}let l=Math.min(t.endField-1,a.length-1),c="";for(let i=s;i<=l&&i<a.length;i++){let o=a[i]||"";if(i===s&&t.startChar!==void 0&&(o=o.slice(t.startChar-1)),i===l&&t.endChar!==void 0){let e=i===s&&t.startChar!==void 0?t.endChar-t.startChar+1:t.endChar;o=o.slice(0,e)}i>s&&(c+=r||" "),c+=o}return t.ignoreLeading&&(c=c.trimStart()),c}function S(u,t,r,f){if(r){let l=parseFloat(u)||0,c=parseFloat(t)||0;return l-c}let a=u,s=t;return f&&(a=a.toLowerCase(),s=s.toLowerCase()),a.localeCompare(s)}function b(u){let{keys:t,fieldDelimiter:r,numeric:f,ignoreCase:a,reverse:s}=u;return(l,c)=>{if(t.length===0){let o=l,e=c;a&&(o=o.toLowerCase(),e=e.toLowerCase());let n;if(f){let d=parseFloat(o)||0,h=parseFloat(e)||0;if(n=d-h,n===0){let p=o.localeCompare(e);return s?-p:p}}else n=o.localeCompare(e);return s?-n:n}for(let o of t){let e=k(l,o,r),n=k(c,o,r),d=o.numeric??f,h=o.ignoreCase??a,p=o.reverse??s,g=S(e,n,d,h);if(g!==0)return p?-g:g}let i=l.localeCompare(c);return s?-i:i}}function w(u,t){if(t.keys.length===0){if(t.ignoreCase){let a=new Set;return u.filter(s=>{let l=s.toLowerCase();return a.has(l)?!1:(a.add(l),!0)})}return[...new Set(u)]}let r=t.keys[0],f=new Set;return u.filter(a=>{let s=k(a,r,t.fieldDelimiter);return(r.ignoreCase??t.ignoreCase)&&(s=s.toLowerCase()),f.has(s)?!1:(f.add(s),!0)})}function m(u){let t={startField:1},r="",f=u,a=f.match(/([nrfb]+)$/i);a&&(r=a[1].toLowerCase(),f=f.slice(0,-r.length)),r.includes("n")&&(t.numeric=!0),r.includes("r")&&(t.reverse=!0),r.includes("f")&&(t.ignoreCase=!0),r.includes("b")&&(t.ignoreLeading=!0);let s=f.split(",");if(s.length===0||s[0]==="")return null;let l=s[0].split("."),c=parseInt(l[0],10);if(Number.isNaN(c)||c<1)return null;if(t.startField=c,l.length>1&&l[1]){let i=parseInt(l[1],10);!Number.isNaN(i)&&i>=1&&(t.startChar=i)}if(s.length>1&&s[1]){let i=s[1],o=i.match(/([nrfb]+)$/i);if(o){let n=o[1].toLowerCase();n.includes("n")&&(t.numeric=!0),n.includes("r")&&(t.reverse=!0),n.includes("f")&&(t.ignoreCase=!0),n.includes("b")&&(t.ignoreLeading=!0),i=i.slice(0,-n.length)}let e=i.split(".");if(e[0]){let n=parseInt(e[0],10);if(!Number.isNaN(n)&&n>=1&&(t.endField=n),e.length>1&&e[1]){let d=parseInt(e[1],10);!Number.isNaN(d)&&d>=1&&(t.endChar=d)}}}return t}var N={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-f, --ignore-case fold lower case to upper case characters","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
|
|
3
|
-
F is a field number (1-indexed)
|
|
4
|
-
C is a character position within the field (1-indexed)
|
|
5
|
-
OPTS can be: n (numeric), r (reverse), f (fold case), b (ignore blanks)
|
|
6
|
-
|
|
7
|
-
Examples:
|
|
8
|
-
-k1 sort by first field
|
|
9
|
-
-k2,2 sort by second field only
|
|
10
|
-
-k1.3 sort by first field starting at 3rd character
|
|
11
|
-
-k1,2n sort by fields 1-2 numerically
|
|
12
|
-
-k2 -k1 sort by field 2, then by field 1`},D={name:"sort",async execute(u,t){if(y(u))return v(N);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,keys:[],fieldDelimiter:null},f=[];for(let o=0;o<u.length;o++){let e=u[o];if(e==="-r"||e==="--reverse")r.reverse=!0;else if(e==="-n"||e==="--numeric-sort")r.numeric=!0;else if(e==="-u"||e==="--unique")r.unique=!0;else if(e==="-f"||e==="--ignore-case")r.ignoreCase=!0;else if(e==="-t"||e==="--field-separator")r.fieldDelimiter=u[++o]||null;else if(e.startsWith("-t"))r.fieldDelimiter=e.slice(2)||null;else if(e.startsWith("--field-separator="))r.fieldDelimiter=e.slice(18)||null;else if(e==="-k"||e==="--key"){let n=u[++o];if(n){let d=m(n);d&&r.keys.push(d)}}else if(e.startsWith("-k")){let n=m(e.slice(2));n&&r.keys.push(n)}else if(e.startsWith("--key=")){let n=m(e.slice(6));n&&r.keys.push(n)}else{if(e.startsWith("--"))return C("sort",e);if(e.startsWith("-")&&!e.startsWith("--")){let n=!1;for(let d of e.slice(1))if(d==="r")r.reverse=!0;else if(d==="n")r.numeric=!0;else if(d==="u")r.unique=!0;else if(d==="f")r.ignoreCase=!0;else{n=!0;break}if(n)return C("sort",e)}else f.push(e)}}let a=await F(t,f,{cmdName:"sort"});if(!a.ok)return a.error;let l=a.content.split(`
|
|
13
|
-
`);l.length>0&&l[l.length-1]===""&&l.pop();let c=b(r);return l.sort(c),r.unique&&(l=w(l,r)),{stdout:l.length>0?`${l.join(`
|
|
14
|
-
`)}
|
|
15
|
-
`:"",stderr:"",exitCode:0}}};export{D as sortCommand};
|