just-bash 2.11.13 → 2.11.15
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/dist/bin/{shell/chunks/chunk-7ECKLAVW.js → chunks/chunk-5UH3Q7QT.js} +1 -1
- package/dist/bin/chunks/chunk-5UHJVSR5.js +10 -0
- package/dist/bin/chunks/chunk-AHMZLMTU.js +100 -0
- package/dist/bin/chunks/{chunk-A4442AOC.js → chunk-BWWPUUC5.js} +3 -3
- package/dist/bin/chunks/{chunk-Q4QFIAHB.js → chunk-D2VMRCQU.js} +1 -1
- package/dist/bin/chunks/chunk-F3LGZXLQ.js +9 -0
- package/dist/bin/chunks/chunk-GA6KXSOC.js +9 -0
- package/dist/bin/{shell/chunks/chunk-TIDZOIPX.js → chunks/chunk-IDGH4PGU.js} +2 -2
- package/dist/bin/chunks/chunk-KPWFKFSD.js +21 -0
- package/dist/bin/{shell/chunks/chunk-QXB5WI2V.js → chunks/chunk-LGJM5YFT.js} +6 -5
- package/dist/bin/chunks/{chunk-X2I3PJTX.js → chunk-LW7FS3EH.js} +4 -4
- package/dist/bin/{shell/chunks/chunk-MNNOATCV.js → chunks/chunk-V4CRXAQO.js} +1 -1
- package/dist/bin/chunks/{chunk-CHB75QIN.js → chunk-XB2MDT3B.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-QEBPVWVB.js → chunks/chunk-XORPAMNK.js} +1 -1
- package/dist/bin/chunks/chunk-XY5HGZW5.js +8 -0
- package/dist/bin/chunks/{du-66BNA4IN.js → du-LDAPXSGF.js} +1 -1
- package/dist/bin/{shell/chunks/find-K777TRNA.js → chunks/find-PHHSZYDL.js} +1 -1
- package/dist/bin/{shell/chunks/flag-coverage-CVSXSL4T.js → chunks/flag-coverage-KFNWHFPU.js} +1 -1
- package/dist/bin/{shell/chunks/grep-FRIPZKKT.js → chunks/grep-F3GT2VPG.js} +1 -1
- package/dist/bin/{shell/chunks/jq-CXQ33VMW.js → chunks/jq-TIHNHMOR.js} +1 -1
- package/dist/bin/{shell/chunks/printf-TZC5BRAY.js → chunks/printf-4NJFGX3O.js} +1 -1
- package/dist/bin/chunks/{rg-3R5G2XL4.js → rg-EJJ3ILD5.js} +1 -1
- package/dist/bin/{shell/chunks/sed-PHQQJ4SI.js → chunks/sed-3DO5EXEU.js} +1 -1
- package/dist/bin/chunks/{sleep-PICQVS6Q.js → sleep-3QRDZXBH.js} +1 -1
- package/dist/bin/{shell/chunks/split-NOZ7FFXW.js → chunks/split-YWV64TJH.js} +1 -1
- package/dist/bin/chunks/tac-T42SKDDI.js +2 -0
- package/dist/bin/chunks/{tr-GDDRKGRB.js → tr-4V5A3V2C.js} +1 -1
- package/dist/bin/chunks/{which-67WZ6OMV.js → which-5PO4LAOG.js} +1 -1
- package/dist/bin/chunks/worker.js +5 -2
- package/dist/bin/chunks/{xan-FMSZPFX4.js → xan-3IA4WP2G.js} +1 -1
- package/dist/bin/chunks/{yq-WUJ5JNDT.js → yq-OUNV2BWM.js} +1 -1
- package/dist/bin/just-bash.js +39 -39
- package/dist/bin/{chunks/chunk-7ECKLAVW.js → shell/chunks/chunk-5UH3Q7QT.js} +1 -1
- package/dist/bin/shell/chunks/chunk-5UHJVSR5.js +10 -0
- package/dist/bin/shell/chunks/chunk-AHMZLMTU.js +100 -0
- package/dist/bin/shell/chunks/{chunk-A4442AOC.js → chunk-BWWPUUC5.js} +3 -3
- package/dist/bin/shell/chunks/{chunk-Q4QFIAHB.js → chunk-D2VMRCQU.js} +1 -1
- package/dist/bin/shell/chunks/chunk-F3LGZXLQ.js +9 -0
- package/dist/bin/shell/chunks/chunk-GA6KXSOC.js +9 -0
- package/dist/bin/{chunks/chunk-TIDZOIPX.js → shell/chunks/chunk-IDGH4PGU.js} +2 -2
- package/dist/bin/shell/chunks/chunk-KPWFKFSD.js +21 -0
- package/dist/bin/{chunks/chunk-QXB5WI2V.js → shell/chunks/chunk-LGJM5YFT.js} +6 -5
- package/dist/bin/shell/chunks/{chunk-X2I3PJTX.js → chunk-LW7FS3EH.js} +4 -4
- package/dist/bin/{chunks/chunk-MNNOATCV.js → shell/chunks/chunk-V4CRXAQO.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-CHB75QIN.js → chunk-XB2MDT3B.js} +1 -1
- package/dist/bin/{chunks/chunk-QEBPVWVB.js → shell/chunks/chunk-XORPAMNK.js} +1 -1
- package/dist/bin/shell/chunks/chunk-XY5HGZW5.js +8 -0
- package/dist/bin/shell/chunks/{du-66BNA4IN.js → du-LDAPXSGF.js} +1 -1
- package/dist/bin/{chunks/find-K777TRNA.js → shell/chunks/find-PHHSZYDL.js} +1 -1
- package/dist/bin/{chunks/flag-coverage-CVSXSL4T.js → shell/chunks/flag-coverage-KFNWHFPU.js} +1 -1
- package/dist/bin/{chunks/grep-FRIPZKKT.js → shell/chunks/grep-F3GT2VPG.js} +1 -1
- package/dist/bin/{chunks/jq-CXQ33VMW.js → shell/chunks/jq-TIHNHMOR.js} +1 -1
- package/dist/bin/{chunks/printf-TZC5BRAY.js → shell/chunks/printf-4NJFGX3O.js} +1 -1
- package/dist/bin/shell/chunks/{rg-3R5G2XL4.js → rg-EJJ3ILD5.js} +1 -1
- package/dist/bin/{chunks/sed-PHQQJ4SI.js → shell/chunks/sed-3DO5EXEU.js} +1 -1
- package/dist/bin/shell/chunks/{sleep-PICQVS6Q.js → sleep-3QRDZXBH.js} +1 -1
- package/dist/bin/{chunks/split-NOZ7FFXW.js → shell/chunks/split-YWV64TJH.js} +1 -1
- package/dist/bin/shell/chunks/tac-T42SKDDI.js +2 -0
- package/dist/bin/shell/chunks/{tr-GDDRKGRB.js → tr-4V5A3V2C.js} +1 -1
- package/dist/bin/shell/chunks/{which-67WZ6OMV.js → which-5PO4LAOG.js} +1 -1
- package/dist/bin/shell/chunks/{xan-FMSZPFX4.js → xan-3IA4WP2G.js} +1 -1
- package/dist/bin/shell/chunks/{yq-WUJ5JNDT.js → yq-OUNV2BWM.js} +1 -1
- package/dist/bin/shell/shell.js +39 -39
- package/dist/bundle/browser.js +384 -382
- package/dist/bundle/chunks/{chunk-FRDGR5VK.js → chunk-3JDQKHMS.js} +3 -3
- package/dist/bundle/chunks/chunk-5BFLZVGH.js +20 -0
- package/dist/bundle/chunks/{chunk-YYB54I7F.js → chunk-73RYQHTW.js} +1 -1
- package/dist/bundle/chunks/chunk-7WX4V2UH.js +9 -0
- package/dist/bundle/chunks/{chunk-UYGR3CFC.js → chunk-A65PWWJC.js} +2 -2
- package/dist/bundle/chunks/chunk-CYTBPLPE.js +8 -0
- package/dist/bundle/chunks/{chunk-QOENL5UZ.js → chunk-FJNVFD75.js} +1 -1
- package/dist/bundle/chunks/{chunk-2OCD45J4.js → chunk-FWYCF7NE.js} +1 -1
- package/dist/bundle/chunks/chunk-IBG6HR7V.js +99 -0
- package/dist/bundle/chunks/{chunk-L4KW73FJ.js → chunk-M2LI252W.js} +4 -4
- package/dist/bundle/chunks/chunk-MHTUABJP.js +8 -0
- package/dist/bundle/chunks/{chunk-KTGH7NTP.js → chunk-MYE6AGBJ.js} +6 -5
- package/dist/bundle/chunks/{chunk-JI3KJ32H.js → chunk-OAOCWUTE.js} +1 -1
- package/dist/bundle/chunks/chunk-RPNGRAAP.js +7 -0
- package/dist/bundle/chunks/{chunk-XMDVFEVC.js → chunk-U5TNQJ3C.js} +1 -1
- package/dist/bundle/chunks/{du-DM4QX4XA.js → du-WO2ENHXQ.js} +1 -1
- package/dist/bundle/chunks/{find-74OP3M7S.js → find-6U6YYAEP.js} +1 -1
- package/dist/bundle/chunks/{flag-coverage-KCADAH3N.js → flag-coverage-ZCNVOYRY.js} +1 -1
- package/dist/bundle/chunks/{grep-BPEMMINR.js → grep-LXKUQUAE.js} +1 -1
- package/dist/bundle/chunks/{jq-OJYNICKX.js → jq-YDGLHC7M.js} +1 -1
- package/dist/bundle/chunks/{printf-KGN6BDCY.js → printf-IO3EBW5H.js} +1 -1
- package/dist/bundle/chunks/{rg-ORQK4GVH.js → rg-4YNHHQAE.js} +1 -1
- package/dist/bundle/chunks/{sed-7HX4RAZG.js → sed-2K6ULZ6P.js} +1 -1
- package/dist/bundle/chunks/{sleep-JHK4I472.js → sleep-U2ORRQJB.js} +1 -1
- package/dist/bundle/chunks/{split-EZOC5IIZ.js → split-SITCSYCZ.js} +1 -1
- package/dist/bundle/chunks/tac-SJGXQ4T2.js +1 -0
- package/dist/bundle/chunks/{tr-RYO2EDCA.js → tr-2N7Q3KKJ.js} +1 -1
- package/dist/bundle/chunks/{which-NCIYTMAT.js → which-XZHEH76L.js} +1 -1
- package/dist/bundle/chunks/worker.js +5 -2
- package/dist/bundle/chunks/{xan-Z6KVJKEE.js → xan-Y62IEVU4.js} +1 -1
- package/dist/bundle/chunks/{yq-FD5F3WOJ.js → yq-CESEW5B3.js} +1 -1
- package/dist/bundle/index.cjs +603 -601
- package/dist/bundle/index.js +40 -40
- package/dist/commands/sed/types.d.ts +1 -0
- package/package.json +1 -1
- package/dist/bin/chunks/chunk-4PS5JJDT.js +0 -8
- package/dist/bin/chunks/chunk-4U7XM2O3.js +0 -100
- package/dist/bin/chunks/chunk-6VUEI2GS.js +0 -9
- package/dist/bin/chunks/chunk-BDSRLH5T.js +0 -20
- package/dist/bin/chunks/chunk-NFZDITRV.js +0 -10
- package/dist/bin/chunks/chunk-WT2HWDDA.js +0 -9
- package/dist/bin/chunks/tac-TZBNTR4K.js +0 -2
- package/dist/bin/shell/chunks/chunk-4PS5JJDT.js +0 -8
- package/dist/bin/shell/chunks/chunk-4U7XM2O3.js +0 -100
- package/dist/bin/shell/chunks/chunk-6VUEI2GS.js +0 -9
- package/dist/bin/shell/chunks/chunk-BDSRLH5T.js +0 -20
- package/dist/bin/shell/chunks/chunk-NFZDITRV.js +0 -10
- package/dist/bin/shell/chunks/chunk-WT2HWDDA.js +0 -9
- package/dist/bin/shell/chunks/tac-TZBNTR4K.js +0 -2
- package/dist/bundle/chunks/chunk-K3PAWJ7V.js +0 -7
- package/dist/bundle/chunks/chunk-MZLOTDD7.js +0 -99
- package/dist/bundle/chunks/chunk-NQOQ2Q77.js +0 -8
- package/dist/bundle/chunks/chunk-S6BBC45K.js +0 -8
- package/dist/bundle/chunks/chunk-WMLBQOWO.js +0 -9
- package/dist/bundle/chunks/chunk-X6JMGGW2.js +0 -19
- package/dist/bundle/chunks/tac-T7YAU2Y6.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import{a as Z}from"./chunk-GIFF636B.js";import{a as te}from"./chunk-SE4C7FJY.js";import{a as le,b as oe,c as ce}from"./chunk-D5WP4CKS.js";import{a as ae,b as ie}from"./chunk-GTNBSMZR.js";function N(e,t){switch(e.type){case"name":{let n=e.pattern,r=n.match(/^\*(\.[a-zA-Z0-9]+)$/);if(r){let s=r[1],o=t.name;if(e.ignoreCase){if(!o.toLowerCase().endsWith(s.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!o.endsWith(s))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:Z(t.name,n,e.ignoreCase),pruned:!1,printed:!1}}case"path":{let n=e.pattern,r=t.relativePath,s=n.split("/");for(let i=0;i<s.length-1;i++){let a=s[i];if(a&&a!=="."&&a!==".."&&!a.includes("*")&&!a.includes("?")&&!a.includes("[")){let c=`/${a}/`;if(e.ignoreCase){if(!r.toLowerCase().includes(c.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.includes(c))return{matches:!1,pruned:!1,printed:!1}}}let o=n.match(/\*(\.[a-zA-Z0-9]+)$/);if(o){let i=o[1];if(e.ignoreCase){if(!r.toLowerCase().endsWith(i.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.endsWith(i))return{matches:!1,pruned:!1,printed:!1}}return{matches:Z(r,n,e.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let n=e.ignoreCase?"i":"";return{matches:te(e.pattern,n).test(t.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return e.fileType==="f"?{matches:t.isFile,pruned:!1,printed:!1}:e.fileType==="d"?{matches:t.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:t.isEmpty,pruned:!1,printed:!1};case"mtime":{let r=(Date.now()-t.mtime)/(1e3*60*60*24),s;return e.comparison==="more"?s=r>e.days:e.comparison==="less"?s=r<e.days:s=Math.floor(r)===e.days,{matches:s,pruned:!1,printed:!1}}case"newer":{let n=t.newerRefTimes.get(e.refPath);return n===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:t.mtime>n,pruned:!1,printed:!1}}case"size":{let n=e.value;switch(e.unit){case"c":n=e.value;break;case"k":n=e.value*1024;break;case"M":n=e.value*1024*1024;break;case"G":n=e.value*1024*1024*1024;break;case"b":n=e.value*512;break}let r;return e.comparison==="more"?r=t.size>n:e.comparison==="less"?r=t.size<n:e.unit==="b"?r=Math.ceil(t.size/512)===e.value:r=t.size===n,{matches:r,pruned:!1,printed:!1}}case"perm":{let n=t.mode&511,r=e.mode&511,s;return e.matchType==="exact"?s=n===r:e.matchType==="all"?s=(n&r)===r:s=(n&r)!==0,{matches:s,pruned:!1,printed:!1}}case"prune":return{matches:!0,pruned:!0,printed:!1};case"print":return{matches:!0,pruned:!1,printed:!0};case"not":{let n=N(e.expr,t);return{matches:!n.matches,pruned:n.pruned,printed:!1}}case"and":{let n=N(e.left,t);if(!n.matches)return{matches:!1,pruned:n.pruned,printed:!1};let r=N(e.right,t);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:n.printed||r.printed}}case"or":{let n=N(e.left,t);if(n.matches)return n;let r=N(e.right,t);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:r.printed}}}}function Y(e){if(!e)return!1;switch(e.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!1;case"empty":case"mtime":case"newer":case"size":case"perm":return!0;case"not":return Y(e.expr);case"and":case"or":return Y(e.left)||Y(e.right)}}function _(e){if(!e)return!1;switch(e.type){case"empty":return!0;case"not":return _(e.expr);case"and":case"or":return _(e.left)||_(e.right);default:return!1}}function pe(e){let t={terminalDirName:null,requiredExtension:null};if(!e)return t;let n=be(e);if(ve(e)&&n.length===1){let o=n[0].split("/").filter(i=>i.length>0);if(o.length>=2)for(let i=o.length-2;i>=0;i--){let a=o[i];if(!a.includes("*")&&!a.includes("?")&&!a.includes("[")&&a!=="."&&a!==".."){let c=o[i+1];if(c&&(c.includes("*")||c.includes("?"))){t.terminalDirName=a;let l=c.match(/^\*(\.[a-zA-Z0-9]+)$/);l&&(t.requiredExtension=l[1])}break}}}return t}function be(e){let t=[],n=r=>{r.type==="path"?t.push(r.pattern):r.type==="not"?n(r.expr):(r.type==="and"||r.type==="or")&&(n(r.left),n(r.right))};return n(e),t}function ve(e){let t=n=>n.type==="type"&&n.fileType==="f"?!0:n.type==="not"?t(n.expr):n.type==="and"||n.type==="or"?t(n.left)||t(n.right):!1;return t(e)}function fe(e){let t=[],n=r=>{r&&(r.type==="newer"?t.push(r.refPath):r.type==="not"?n(r.expr):(r.type==="and"||r.type==="or")&&(n(r.left),n(r.right)))};return n(e),t}function V(e){if(!e)return!0;switch(e.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!0;case"empty":case"mtime":case"newer":case"size":case"perm":return!1;case"not":return V(e.expr);case"and":case"or":return V(e.left)&&V(e.right)}}function H(e,t,n,r,s){switch(e.type){case"name":{let o=e.pattern,i=o.match(/^\*(\.[a-zA-Z0-9]+)$/);if(i){let a=i[1];if(e.ignoreCase){if(!t.toLowerCase().endsWith(a.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!t.endsWith(a))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:Z(t,o,e.ignoreCase),pruned:!1,printed:!1}}case"path":{let o=e.pattern,i=o.split("/");for(let c=0;c<i.length-1;c++){let l=i[c];if(l&&l!=="."&&l!==".."&&!l.includes("*")&&!l.includes("?")&&!l.includes("[")){let d=`/${l}/`;if(e.ignoreCase){if(!n.toLowerCase().includes(d.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.includes(d))return{matches:!1,pruned:!1,printed:!1}}}let a=o.match(/\*(\.[a-zA-Z0-9]+)$/);if(a){let c=a[1];if(e.ignoreCase){if(!n.toLowerCase().endsWith(c.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.endsWith(c))return{matches:!1,pruned:!1,printed:!1}}return{matches:Z(n,o,e.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let o=e.ignoreCase?"i":"";return{matches:te(e.pattern,o).test(n),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return e.fileType==="f"?{matches:r,pruned:!1,printed:!1}:e.fileType==="d"?{matches:s,pruned:!1,printed:!1}:{matches:!1,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 o=H(e.expr,t,n,r,s);return{matches:!o.matches,pruned:o.pruned,printed:!1}}case"and":{let o=H(e.left,t,n,r,s);if(!o.matches)return{matches:!1,pruned:o.pruned,printed:!1};let i=H(e.right,t,n,r,s);return{matches:i.matches,pruned:o.pruned||i.pruned,printed:o.printed||i.printed}}case"or":{let o=H(e.left,t,n,r,s);if(o.matches)return o;let i=H(e.right,t,n,r,s);return{matches:i.matches,pruned:o.pruned||i.pruned,printed:i.printed}}default:return{matches:!1,pruned:!1,printed:!1}}}function J(e){if(!e)return!1;switch(e.type){case"prune":return!0;case"not":return J(e.expr);case"and":case"or":return J(e.left)||J(e.right);default:return!1}}function z(e){switch(e.type){case"name":case"path":case"regex":case"type":case"prune":case"print":return!0;case"empty":case"mtime":case"newer":case"size":case"perm":return!1;case"not":return z(e.expr);case"and":case"or":return z(e.left)&&z(e.right)}}function ue(e,t){if(!e||!t.isDirectory)return{shouldPrune:!1};if(!z(e))return ne(e,t);let n={name:t.name,relativePath:t.relativePath,isFile:t.isFile,isDirectory:t.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return{shouldPrune:N(e,n).pruned}}function ne(e,t){switch(e.type){case"or":{if(z(e.left)){let n={name:t.name,relativePath:t.relativePath,isFile:t.isFile,isDirectory:t.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};if(N(e.left,n).pruned)return{shouldPrune:!0}}return ne(e.right,t)}case"and":{if(z(e.left)&&z(e.right)){let n={name:t.name,relativePath:t.relativePath,isFile:t.isFile,isDirectory:t.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return{shouldPrune:N(e,n).pruned}}if(z(e.left)){let n={name:t.name,relativePath:t.relativePath,isFile:t.isFile,isDirectory:t.isDirectory,isEmpty:!1,mtime:0,size:0,mode:0,newerRefTimes:new Map};return N(e.left,n).matches?ne(e.right,t):{shouldPrune:!1}}return{shouldPrune:!1}}case"not":return{shouldPrune:!1};default:return{shouldPrune:!1}}}function he(e,t){let n=[],r=[],s=t;for(;s<e.length;){let i=e[s];if(i==="("||i==="\\("){n.push({type:"lparen"}),s++;continue}if(i===")"||i==="\\)"){n.push({type:"rparen"}),s++;continue}if(i==="-name"&&s+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++s]}});else if(i==="-iname"&&s+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++s],ignoreCase:!0}});else if(i==="-path"&&s+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++s]}});else if(i==="-ipath"&&s+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++s],ignoreCase:!0}});else if(i==="-regex"&&s+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++s]}});else if(i==="-iregex"&&s+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++s],ignoreCase:!0}});else if(i==="-type"&&s+1<e.length){let a=e[++s];if(a==="f"||a==="d")n.push({type:"expr",expr:{type:"type",fileType:a}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${a}
|
|
3
3
|
`,actions:[]}}else if(i==="-empty")n.push({type:"expr",expr:{type:"empty"}});else if(i==="-mtime"&&s+1<e.length){let a=e[++s],c="exact",l=a;a.startsWith("+")?(c="more",l=a.slice(1)):a.startsWith("-")&&(c="less",l=a.slice(1));let d=parseInt(l,10);Number.isNaN(d)||n.push({type:"expr",expr:{type:"mtime",days:d,comparison:c}})}else if(i==="-newer"&&s+1<e.length){let a=e[++s];n.push({type:"expr",expr:{type:"newer",refPath:a}})}else if(i==="-size"&&s+1<e.length){let a=e[++s],c="exact",l=a;a.startsWith("+")?(c="more",l=a.slice(1)):a.startsWith("-")&&(c="less",l=a.slice(1));let d=l.match(/^(\d+)([ckMGb])?$/);if(d){let B=parseInt(d[1],10),I=d[2]||"b";n.push({type:"expr",expr:{type:"size",value:B,unit:I,comparison:c}})}}else if(i==="-perm"&&s+1<e.length){let a=e[++s],c="exact",l=a;a.startsWith("-")?(c="all",l=a.slice(1)):a.startsWith("/")&&(c="any",l=a.slice(1));let d=parseInt(l,8);Number.isNaN(d)||n.push({type:"expr",expr:{type:"perm",mode:d,matchType:c}})}else if(i==="-prune")n.push({type:"expr",expr:{type:"prune"}});else if(i==="-not"||i==="!")n.push({type:"not"});else if(i==="-o"||i==="-or")n.push({type:"op",op:"or"});else if(i==="-a"||i==="-and")n.push({type:"op",op:"and"});else if(i==="-maxdepth"||i==="-mindepth")s++;else if(i!=="-depth")if(i==="-exec"){let a=[];for(s++;s<e.length&&e[s]!==";"&&e[s]!=="+";)a.push(e[s]),s++;if(s>=e.length)return{expr:null,pathIndex:s,error:"find: missing argument to `-exec'\n",actions:[]};let c=e[s]==="+";r.push({type:"exec",command:a,batchMode:c})}else if(i==="-print")n.push({type:"expr",expr:{type:"print"}}),r.push({type:"print"});else if(i==="-print0")r.push({type:"print0"});else if(i==="-printf"&&s+1<e.length){let a=e[++s];r.push({type:"printf",format:a})}else if(i==="-delete")r.push({type:"delete"});else{if(i.startsWith("-"))return{expr:null,pathIndex:s,error:`find: unknown predicate '${i}'
|
|
4
4
|
`,actions:[]};if(n.length===0){s++;continue}break}s++}if(n.length===0)return{expr:null,pathIndex:s,actions:r};let o=Ee(n);return o.error?{expr:null,pathIndex:s,error:o.error,actions:r}:{expr:o.expr,pathIndex:s,actions:r}}function Ee(e){let t=0;function n(){let a=r();if(!a)return null;for(;t<e.length;){let c=e[t];if(c.type==="op"&&c.op==="or"){t++;let l=r();if(!l)return a;a={type:"or",left:a,right:l}}else break}return a}function r(){let a=s();if(!a)return null;for(;t<e.length;){let c=e[t];if(c.type==="op"&&c.op==="and"){t++;let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else if(c.type==="expr"||c.type==="not"||c.type==="lparen"){let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else break}return a}function s(){if(t<e.length&&e[t].type==="not"){t++;let a=s();return a?{type:"not",expr:a}:null}return o()}function o(){if(t>=e.length)return null;let a=e[t];if(a.type==="lparen"){t++;let c=n();return t<e.length&&e[t].type==="rparen"&&t++,c}return a.type==="expr"?(t++,a.expr):(a.type==="rparen",null)}return{expr:n()}}var de=500;function Me(){return{readdirCalls:0,readdirTime:0,statCalls:0,statTime:0,evalCalls:0,evalTime:0,nodeCount:0,batchCount:0,batchTime:0,earlyPrunes:0}}function xe(e,t,n){e({category:"find",name:"summary",durationMs:n,details:{readdirCalls:t.readdirCalls,readdirTimeMs:t.readdirTime,statCalls:t.statCalls,statTimeMs:t.statTime,evalCalls:t.evalCalls,evalTimeMs:t.evalTime,nodeCount:t.nodeCount,batchCount:t.batchCount,batchTimeMs:t.batchTime,earlyPrunes:t.earlyPrunes,otherTimeMs:n-t.readdirTime-t.statTime-t.evalTime-t.batchTime}})}var Fe={name:"find",summary:"search for files in a directory hierarchy",usage:"find [path...] [expression]",options:["-name PATTERN file name matches shell pattern PATTERN","-iname PATTERN like -name but case insensitive","-path PATTERN file path matches shell pattern PATTERN","-ipath PATTERN like -path but case insensitive","-regex PATTERN file path matches regular expression PATTERN","-iregex PATTERN like -regex but case insensitive","-type TYPE file is of type: f (regular file), d (directory)","-empty file is empty or directory is empty","-mtime N file's data was modified N*24 hours ago","-newer FILE file was modified more recently than FILE","-size N[ckMGb] file uses N units of space (c=bytes, k=KB, M=MB, G=GB, b=512B blocks)","-perm MODE file's permission bits are exactly MODE (octal)","-perm -MODE all permission bits MODE are set","-perm /MODE any permission bits MODE are set","-maxdepth LEVELS descend at most LEVELS directories","-mindepth LEVELS do not apply tests at levels less than LEVELS","-depth process directory contents before directory itself","-prune do not descend into this directory","-not, ! negate the following expression","-a, -and logical AND (default)","-o, -or logical OR","-exec CMD {} ; execute CMD on each file ({} is replaced by filename)","-exec CMD {} + execute CMD with multiple files at once","-print print the full file name (default action)","-print0 print the full file name followed by a null character","-printf FORMAT print FORMAT with directives: %f %h %p %P %s %d %m %M %t","-delete delete found files/directories"," --help display this help and exit"]},Ie=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),je={name:"find",async execute(e,t){if(ie(e))return ae(Fe);let n=[],r=null,s=null,o=!1,i=!1;for(let p=0;p<e.length;p++){let f=e[p];if(f==="-maxdepth"&&p+1<e.length)i=!0,r=parseInt(e[++p],10);else if(f==="-mindepth"&&p+1<e.length)i=!0,s=parseInt(e[++p],10);else if(f==="-depth")i=!0,o=!0;else if(f==="-exec")for(i=!0,p++;p<e.length&&e[p]!==";"&&e[p]!=="+";)p++;else!f.startsWith("-")&&f!==";"&&f!=="+"&&f!=="("&&f!==")"&&f!=="\\("&&f!=="\\)"&&f!=="!"?i||n.push(f):Ie.has(f)?(i=!0,p++):(f.startsWith("-")||f==="("||f==="\\("||f==="!")&&(i=!0)}n.length===0&&n.push(".");let{expr:a,error:c,actions:l}=he(e,0);if(c)return{stdout:"",stderr:c,exitCode:1};let d=l.some(p=>p.type==="print"),B=l.length===0,I=[],me=l.some(p=>p.type==="printf"),se=[],q="",G=0,ye=fe(a),U=new Map;for(let p of ye){let f=t.fs.resolvePath(t.cwd,p);try{let h=await t.fs.stat(f);U.set(p,h.mtime?.getTime()??Date.now())}catch{}}let ge=l.some(p=>{if(p.type!=="printf")return!1;let f=p.format.replace(/%%/g,"");return/%[-+]?[0-9]*\.?[0-9]*(s|m|M|t|T)/.test(f)}),we=Y(a)||ge,De=_(a),K=pe(a),re=J(a),Te=V(a),Ce=typeof t.fs.readdirWithFileTypes=="function";for(let p of n){let W=function(u){let R=s===null||u.depth>=s,P=!1;if(R&&a!==null){let S=Date.now(),y;if(Te)y=H(a,u.name,u.relativePath,u.isFile,u.isDirectory);else{let m={name:u.name,relativePath:u.relativePath,isFile:u.isFile,isDirectory:u.isDirectory,isEmpty:u.isEmpty,mtime:u.stat?.mtime?.getTime()??Date.now(),size:u.stat?.size??0,mode:u.stat?.mode??420,newerRefTimes:U};y=N(a,m)}R=y.matches,P=d?y.printed:R,h.evalCalls++,h.evalTime+=Date.now()-S}else R&&(P=!0);return P?{print:!0,printfData:me?{path:u.relativePath,name:u.name,size:u.stat?.size??0,mtime:u.stat?.mtime?.getTime()??Date.now(),mode:u.stat?.mode??420,isDirectory:u.isDirectory,depth:u.depth,startingPoint:p}:null}:{print:!1,printfData:null}};var We=W;p.length>1&&p.endsWith("/")&&(p=p.slice(0,-1));let f=t.fs.resolvePath(t.cwd,p);try{await t.fs.stat(f)}catch{q+=`find: ${p}: No such file or directory
|
|
5
|
-
`,G=1;continue}let h=Me(),$=Date.now();async function b(u){let{path:v,depth:R,typeInfo:P}=u;if(h.nodeCount++,
|
|
5
|
+
`,G=1;continue}let h=Me(),$=Date.now();async function b(u){let{path:v,depth:R,typeInfo:P}=u;if(h.nodeCount++,R>(r??256))return null;let E,S,y;if(P&&!we)E=P.isFile,S=P.isDirectory;else{try{let L=Date.now();y=await t.fs.stat(v),h.statCalls++,h.statTime+=Date.now()-L}catch{return null}if(!y)return null;E=y.isFile,S=y.isDirectory}let m;v===f?m=p.split("/").pop()||p:m=v.split("/").pop()||"";let g=v===f?p:p==="."?`./${v.slice(f==="/"?f.length:f.length+1)}`:p+v.slice(f.length),T=[],C=null,w=null,D=!1;S&&re&&!o&&(D=ue(a,{name:m,relativePath:g,isFile:E,isDirectory:S}).shouldPrune,D&&h.earlyPrunes++);let x=R>=(r??256),F=K.terminalDirName!==null&&m===K.terminalDirName,j=!x&&!F&&!D;if(S&&((j||De||F)&&!D)){let L=Date.now();if(Ce&&t.fs.readdirWithFileTypes){if(C=await t.fs.readdirWithFileTypes(v),w=C.map(M=>M.name),h.readdirCalls++,h.readdirTime+=Date.now()-L,j)T=C.map((M,k)=>({path:v==="/"?`/${M.name}`:`${v}/${M.name}`,depth:R+1,typeInfo:{isFile:M.isFile,isDirectory:M.isDirectory},resultIndex:k}));else if(F){let M=K.requiredExtension;T=C.filter(k=>k.isFile&&(!M||k.name.endsWith(M))).map((k,Se)=>({path:v==="/"?`/${k.name}`:`${v}/${k.name}`,depth:R+1,typeInfo:{isFile:k.isFile,isDirectory:k.isDirectory},resultIndex:Se}))}}else w=await t.fs.readdir(v),h.readdirCalls++,h.readdirTime+=Date.now()-L,j&&(T=w.map((M,k)=>({path:v==="/"?`/${M}`:`${v}/${M}`,depth:R+1,resultIndex:k})))}let Q=E?(y?.size??0)===0:w!==null&&w.length===0,O=D;if(!o&&a!==null&&!D&&re){let L=Date.now(),M={name:m,relativePath:g,isFile:E,isDirectory:S,isEmpty:Q,mtime:y?.mtime?.getTime()??Date.now(),size:y?.size??0,mode:y?.mode??420,newerRefTimes:U};O=N(a,M).pruned,h.evalCalls++,h.evalTime+=Date.now()-L}return{relativePath:g,name:m,isFile:E,isDirectory:S,isEmpty:Q,stat:y,depth:R,children:O?[]:T,pruned:O}}async function Pe(){let u={paths:[],printfData:[]};if(o){let y=function(m){let g={paths:[],printfData:[]},T=P[m];if(!T)return g;for(let D of T.childIndices){let x=y(D);g.paths.push(...x.paths),g.printfData.push(...x.printfData)}let{print:C,printfData:w}=W(T.node);return C&&(g.paths.push(T.node.relativePath),w&&g.printfData.push(w)),g};var v=y;let P=[],E=[{item:{path:f,depth:0,resultIndex:0},parentIndex:-1,childOrderInParent:0}],S=new Map;for(;E.length>0;){let m=Date.now(),g=E.splice(0,de),T=await Promise.all(g.map(C=>b(C.item)));h.batchCount++,h.batchTime+=Date.now()-m;for(let C=0;C<g.length;C++){let w=T[C],D=g[C];if(!w)continue;let x=P.length;if(D.parentIndex>=0){let F=S.get(D.parentIndex)||[];F.push(x),S.set(D.parentIndex,F)}P.push({node:w,parentIndex:D.parentIndex,childIndices:[]});for(let F=0;F<w.children.length;F++)E.push({item:w.children[F],parentIndex:x,childOrderInParent:F})}}for(let[m,g]of S)m>=0&&m<P.length&&(P[m].childIndices=g);if(P.length>0){let m=y(0);u.paths.push(...m.paths),u.printfData.push(...m.printfData)}}else{let m=function(g){let T=P.get(g);T&&(u.paths.push(T.path),T.printfData&&u.printfData.push(T.printfData));let C=y.get(g);if(C)for(let w of C)m(w)};var R=m;let P=new Map,E=0,S=[{item:{path:f,depth:0,resultIndex:0},orderIndex:E++}],y=new Map;for(;S.length>0;){let g=Date.now(),T=S.splice(0,de),C=await Promise.all(T.map(async({item:w,orderIndex:D})=>{let x=await b(w);return x?{node:x,orderIndex:D}:null}));h.batchCount++,h.batchTime+=Date.now()-g;for(let w of C){if(!w)continue;let{node:D,orderIndex:x}=w,{print:F,printfData:j}=W(D);if(F&&P.set(x,{path:D.relativePath,printfData:j}),D.children.length>0){let ee=[];for(let Q of D.children){let O=E++;ee.push(O),S.push({item:Q,orderIndex:O})}y.set(x,ee)}}}m(0)}return u}let X=await Pe();if(I.push(...X.paths),se.push(...X.printfData),t.trace){let u=Date.now()-$;xe(t.trace,h,u),t.trace({category:"find",name:"searchPath",durationMs:u,details:{path:p,resultsFound:X.paths.length}})}}let A="";if(l.length>0)for(let p of l)switch(p.type){case"print":A+=I.length>0?`${I.join(`
|
|
6
6
|
`)}
|
|
7
7
|
`:"";break;case"print0":A+=I.length>0?`${I.join("\0")}\0`:"";break;case"delete":{let f=[...I].sort((h,$)=>$.length-h.length);for(let h of f){let $=t.fs.resolvePath(t.cwd,h);try{await t.fs.rm($,{recursive:!1})}catch(b){let W=b instanceof Error?b.message:String(b);q+=`find: cannot delete '${h}': ${W}
|
|
8
8
|
`,G=1}}break}case"printf":for(let f of se)A+=$e(p.format,f);break;case"exec":if(!t.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{a,b as o}from"./chunk-GTNBSMZR.js";var l={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
|
|
3
|
+
s - seconds (default)
|
|
4
|
+
m - minutes
|
|
5
|
+
h - hours
|
|
6
|
+
d - days
|
|
7
|
+
|
|
8
|
+
NUMBER may be a decimal number.`,options:[" --help display this help and exit"]},i=36e5;function u(t){let s=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!s)return null;let e=parseFloat(s[1]);switch(s[2]||"s"){case"s":return e*1e3;case"m":return e*60*1e3;case"h":return e*60*60*1e3;case"d":return e*24*60*60*1e3;default:return null}}var m={name:"sleep",async execute(t,s){if(o(t))return a(l);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
|
|
9
|
+
`,exitCode:1};let e=0;for(let n of t){let r=u(n);if(r===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
|
|
10
|
+
`,exitCode:1};e+=r}return e>i&&(e=i),s.sleep?await s.sleep(e):await new Promise(n=>setTimeout(n,e)),{stdout:"",stderr:"",exitCode:0}}},p={name:"sleep",flags:[],needsArgs:!0};export{m as a,p as b};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{a as N}from"./chunk-SE4C7FJY.js";import{k as C}from"./chunk-K5IXNHO5.js";import{a as G,b as j,c as T}from"./chunk-GTNBSMZR.js";var B=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]);function P(n){let e="",t=0,i=!1;for(;t<n.length;){if(n[t]==="["&&!i){if(n[t+1]==="["&&n[t+2]===":"){let s=n.indexOf(":]]",t+3);if(s!==-1){let a=n.slice(t+3,s),r=B.get(a);if(r){e+=`[${r}]`,t=s+3;continue}}}if(n[t+1]==="^"&&n[t+2]==="["&&n[t+3]===":"){let s=n.indexOf(":]]",t+4);if(s!==-1){let a=n.slice(t+4,s),r=B.get(a);if(r){e+=`[^${r}]`,t=s+3;continue}}}e+="[",t++,i=!0,t<n.length&&n[t]==="^"&&(e+="^",t++),t<n.length&&n[t]==="]"&&(e+="\\]",t++);continue}if(i){if(n[t]==="]"){e+="]",t++,i=!1;continue}if(n[t]==="["&&n[t+1]===":"){let s=n.indexOf(":]",t+2);if(s!==-1){let a=n.slice(t+2,s),r=B.get(a);if(r){e+=r,t=s+2;continue}}}if(n[t]==="\\"&&t+1<n.length){e+=n[t]+n[t+1],t+=2;continue}e+=n[t],t++;continue}if(n[t]==="\\"&&t+1<n.length){let s=n[t+1];if(s==="+"||s==="?"||s==="|"){e+=s,t+=2;continue}if(s==="("||s===")"){e+=s,t+=2;continue}if(s==="{"||s==="}"){e+=s,t+=2;continue}if(s==="t"){e+=" ",t+=2;continue}if(s==="n"){e+=`
|
|
3
|
+
`,t+=2;continue}if(s==="r"){e+="\r",t+=2;continue}e+=n[t]+s,t+=2;continue}if(n[t]==="+"||n[t]==="?"||n[t]==="|"||n[t]==="("||n[t]===")"){e+=`\\${n[t]}`,t++;continue}if(n[t]==="^"&&!(e===""||e.endsWith("("))){e+="\\^",t++;continue}if(n[t]==="$"){let s=t===n.length-1,a=t+2<n.length&&n[t+1]==="\\"&&n[t+2]===")";if(!s&&!a){e+="\\$",t++;continue}}e+=n[t],t++}return e}function D(n){let e="",t=!1;for(let i=0;i<n.length;i++)n[i]==="["&&!t?(t=!0,e+="[",i++,i<n.length&&n[i]==="^"&&(e+="^",i++),i<n.length&&n[i]==="]"&&(e+="]",i++),i--):n[i]==="]"&&t?(t=!1,e+="]"):!t&&n[i]==="{"&&n[i+1]===","?(e+="{0,",i++):e+=n[i];return e}function Z(n){let e="";for(let t=0;t<n.length;t++){let i=n[t],s=i.charCodeAt(0);i==="\\"?e+="\\\\":i===" "?e+="\\t":i===`
|
|
4
|
+
`?e+=`$
|
|
5
|
+
`:i==="\r"?e+="\\r":i==="\x07"?e+="\\a":i==="\b"?e+="\\b":i==="\f"?e+="\\f":i==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=i}return`${e}$`}var ce=1e4;function Q(n,e,t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:n,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,errorMessage:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],nCommandOutput:[],restartCycle:!1,inDRestartedCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:t||new Map,linesConsumedInCycle:0}}function le(n){return typeof n=="object"&&"first"in n&&"step"in n}function oe(n){return typeof n=="object"&&"offset"in n}function O(n,e,t,i,s){if(n==="$")return e===t;if(typeof n=="number")return e===n;if(le(n)){let{first:a,step:r}=n;return r===0?e===a:(e-a)%r===0&&e>=a}if(typeof n=="object"&&"pattern"in n)try{let a=n.pattern;a===""&&s?.lastPattern?a=s.lastPattern:a!==""&&s&&(s.lastPattern=a);let r=D(P(a));return N(r).test(i)}catch{return!1}return!1}function W(n){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(n.start)},${e(n.end)}`}function ue(n,e,t,i,s,a){if(!n||!n.start&&!n.end)return!0;let r=n.start,l=n.end;if(r!==void 0&&l===void 0)return O(r,e,t,i,a);if(r!==void 0&&l!==void 0){let o=typeof r=="object"&&"pattern"in r,d=typeof l=="object"&&"pattern"in l,f=oe(l);if(f&&s){let m=W(n),p=s.get(m);if(p||(p={active:!1},s.set(m,p)),p.active){let u=p.startLine||e;return e>=u+l.offset&&(p.active=!1,s.set(m,p)),!0}else return O(r,e,t,i,a)?(p.active=!0,p.startLine=e,s.set(m,p),l.offset===0&&(p.active=!1,s.set(m,p)),!0):!1}if(!o&&!d&&!f){let m=typeof r=="number"?r:r==="$"?t:1,p=typeof l=="number"?l:t;if(m<=p)return e>=m&&e<=p;if(s){let u=W(n),h=s.get(u);return h||(h={active:!1},s.set(u,h)),!h.completed&&e>=m?(h.completed=!0,s.set(u,h),!0):!1}return!1}if(s){let m=W(n),p=s.get(m);if(p||(p={active:!1},s.set(m,p)),p.active)return O(l,e,t,i,a)&&(p.active=!1,typeof r=="number"&&(p.completed=!0),s.set(m,p)),!0;{if(p.completed)return!1;let u=!1;return typeof r=="number"?u=e>=r:u=O(r,e,t,i,a),u?(p.active=!0,p.startLine=e,s.set(m,p),O(l,e,t,i,a)&&(p.active=!1,typeof r=="number"&&(p.completed=!0),s.set(m,p)),!0):!1}}return O(r,e,t,i,a)}return!0}function I(n,e,t,i,s,a){let r=ue(n,e,t,i,s,a);return n?.negated?!r:r}function he(n,e,t,i){let s="",a=0,r=!1;for(;a<=n.length;){e.lastIndex=a;let l=e.exec(n);if(!l){s+=n.slice(a);break}if(l.index!==a){s+=n.slice(a,l.index),a=l.index,r=!1;continue}let o=l[0],d=l.slice(1);if(r&&o.length===0){if(a<n.length)s+=n[a],a++;else break;r=!1;continue}if(s+=i(o,d),r=!1,o.length===0)if(a<n.length)s+=n[a],a++;else break;else a+=o.length,r=!0}return s}function q(n,e,t){let i="",s=0;for(;s<n.length;){if(n[s]==="\\"&&s+1<n.length){let a=n[s+1];if(a==="&"){i+="&",s+=2;continue}if(a==="n"){i+=`
|
|
6
|
+
`,s+=2;continue}if(a==="t"){i+=" ",s+=2;continue}if(a==="r"){i+="\r",s+=2;continue}let r=parseInt(a,10);if(r===0){i+=e,s+=2;continue}if(r>=1&&r<=9){i+=t[r-1]||"",s+=2;continue}i+=a,s+=2;continue}if(n[s]==="&"){i+=e,s++;continue}i+=n[s],s++}return i}function K(n,e,t){if(e>0&&n.length>e)throw new C(`sed: ${t} size limit exceeded (${e} bytes)`,"string_length")}function de(n,e,t){let{lineNumber:i,totalLines:s,patternSpace:a}=e;if(n.type==="label"){e.coverage?.hit(`sed:cmd:${n.type}`);return}if(I(n.address,i,s,a,e.rangeStates,e))switch(e.coverage?.hit(`sed:cmd:${n.type}`),n.type){case"substitute":{let r=n,l="";r.global&&(l+="g"),r.ignoreCase&&(l+="i");let o=r.pattern;o===""&&e.lastPattern?o=e.lastPattern:o!==""&&(e.lastPattern=o);let d=D(r.extendedRegex?o:P(o));try{let f=N(d,l),v=f.test(e.patternSpace);if(f.lastIndex=0,v){if(e.substitutionMade=!0,r.nthOccurrence&&r.nthOccurrence>0&&!r.global){let m=0,p=r.nthOccurrence,u=N(d,`g${r.ignoreCase?"i":""}`);e.patternSpace=u.replace(e.patternSpace,(h,...b)=>{if(m++,m===p){let x=b.slice(0,-2);return q(r.replacement,h,x)}return h})}else if(r.global){let m=N(d,`g${r.ignoreCase?"i":""}`);e.patternSpace=he(e.patternSpace,m,r.replacement,(p,u)=>q(r.replacement,p,u))}else e.patternSpace=f.replace(e.patternSpace,(m,...p)=>{let u=p.slice(0,-2);return q(r.replacement,m,u)});r.printOnMatch&&e.lineNumberOutput.push(e.patternSpace)}}catch{}break}case"print":e.lineNumberOutput.push(e.patternSpace);break;case"printFirstLine":{let r=e.patternSpace.indexOf(`
|
|
7
|
+
`);r!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,r)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let r=e.patternSpace.indexOf(`
|
|
8
|
+
`);r!==-1?(e.patternSpace=e.patternSpace.slice(r+1),e.restartCycle=!0,e.inDRestartedCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(n.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${n.text}`);break;case"change":e.deleted=!0,e.changedText=n.text;break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
|
|
9
|
+
${e.patternSpace}`:e.holdSpace=e.patternSpace,K(e.holdSpace,t?.maxStringLength??0,"hold space");break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
|
|
10
|
+
${e.holdSpace}`,K(e.patternSpace,t?.maxStringLength??0,"pattern space");break;case"exchange":{let r=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=r;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,n.exitCode!==void 0&&(e.exitCode=n.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,n.exitCode!==void 0&&(e.exitCode=n.exitCode);break;case"list":{let r=Z(e.patternSpace);e.lineNumberOutput.push(r);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":{let r=[4,8,0];if(n.minVersion){let l=n.minVersion.split("."),o=[],d=!1;for(let f of l){let v=parseInt(f,10);if(Number.isNaN(v)||v<0){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: invalid version string: ${n.minVersion}`,d=!0;break}o.push(v)}if(!d){for(;o.length<3;)o.push(0);for(let f=0;f<3;f++){if(o[f]>r[f]){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: this is not GNU sed version ${n.minVersion}`;break}if(o[f]<r[f])break}}}break}case"readFile":e.pendingFileReads.push({filename:n.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:n.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:n.filename,content:`${e.patternSpace}
|
|
11
|
+
`});break;case"writeFirstLine":{let r=e.patternSpace.indexOf(`
|
|
12
|
+
`),l=r!==-1?e.patternSpace.slice(0,r):e.patternSpace;e.pendingFileWrites.push({filename:n.filename,content:`${l}
|
|
13
|
+
`});break}case"execute":n.command?e.pendingExecute={command:n.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=fe(e.patternSpace,n);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function fe(n,e){let t="";for(let i of n){let s=e.source.indexOf(i);s!==-1?t+=e.dest[s]:t+=i}return t}function U(n,e,t,i){let s=new Map;for(let o=0;o<n.length;o++){let d=n[o];d.type==="label"&&s.set(d.name,o)}let a=i?.maxIterations??ce,r=0,l=0;for(;l<n.length;){if(r++,r>a)throw new C(`sed: command execution exceeded maximum iterations (${a})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let o=n[l];if(o.type==="next"){if(I(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(e.coverage?.hit("sed:cmd:next"),e.nCommandOutput.push(e.patternSpace),t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let d=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace=d,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1,e.substitutionMade=!1}else{e.quit=!0,e.deleted=!0;break}l++;continue}if(o.type==="nextAppend"){if(I(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(e.coverage?.hit("sed:cmd:nextAppend"),t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let d=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace+=`
|
|
14
|
+
${d}`,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1}else{e.quit=!0;break}l++;continue}if(o.type==="branch"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)){if(e.coverage?.hit("sed:cmd:branch"),d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="branchOnSubst"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:branchOnSubst"),e.substitutionMade)){if(e.substitutionMade=!1,d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="branchOnNoSubst"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:branchOnNoSubst"),!e.substitutionMade)){if(d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="group"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:group"),U(d.commands,e,t,i),e.branchRequest)){let f=s.get(e.branchRequest);if(f!==void 0){e.branchRequest=void 0,l=f;continue}break}l++;continue}de(o,e,i),l++}return e.linesConsumedInCycle}var c;(function(n){n.NUMBER="NUMBER",n.DOLLAR="DOLLAR",n.PATTERN="PATTERN",n.STEP="STEP",n.RELATIVE_OFFSET="RELATIVE_OFFSET",n.LBRACE="LBRACE",n.RBRACE="RBRACE",n.SEMICOLON="SEMICOLON",n.NEWLINE="NEWLINE",n.COMMA="COMMA",n.NEGATION="NEGATION",n.COMMAND="COMMAND",n.SUBSTITUTE="SUBSTITUTE",n.TRANSLITERATE="TRANSLITERATE",n.LABEL_DEF="LABEL_DEF",n.BRANCH="BRANCH",n.BRANCH_ON_SUBST="BRANCH_ON_SUBST",n.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",n.TEXT_CMD="TEXT_CMD",n.FILE_READ="FILE_READ",n.FILE_READ_LINE="FILE_READ_LINE",n.FILE_WRITE="FILE_WRITE",n.FILE_WRITE_LINE="FILE_WRITE_LINE",n.EXECUTE="EXECUTE",n.VERSION="VERSION",n.EOF="EOF",n.ERROR="ERROR"})(c||(c={}));var A=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(c.EOF,"")),e}makeToken(e,t,i){return{type:e,value:t,line:this.line,column:this.column,...i}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
|
|
15
|
+
`?(this.line++,this.column=1):this.column++,e}readEscapedString(e){let t="";for(;this.pos<this.input.length&&this.peek()!==e;)if(this.peek()==="\\"){this.advance();let i=this.advance();i==="n"?t+=`
|
|
16
|
+
`:i==="t"?t+=" ":t+=i}else{if(this.peek()===`
|
|
17
|
+
`)return null;t+=this.advance()}return t}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()!==`
|
|
18
|
+
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,t=this.column,i=this.peek();return i===`
|
|
19
|
+
`?(this.advance(),{type:c.NEWLINE,value:`
|
|
20
|
+
`,line:e,column:t}):i===";"?(this.advance(),{type:c.SEMICOLON,value:";",line:e,column:t}):i==="{"?(this.advance(),{type:c.LBRACE,value:"{",line:e,column:t}):i==="}"?(this.advance(),{type:c.RBRACE,value:"}",line:e,column:t}):i===","?(this.advance(),{type:c.COMMA,value:",",line:e,column:t}):i==="!"?(this.advance(),{type:c.NEGATION,value:"!",line:e,column:t}):i==="$"?(this.advance(),{type:c.DOLLAR,value:"$",line:e,column:t}):this.isDigit(i)?this.readNumber():i==="+"&&this.isDigit(this.input[this.pos+1]||"")?this.readRelativeOffset():i==="/"?this.readPattern():i===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,t=this.column,i="";for(;this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="~"){this.advance();let s="";for(;this.isDigit(this.peek());)s+=this.advance();let a=parseInt(i,10),r=parseInt(s,10)||0;return{type:c.STEP,value:`${a}~${r}`,first:a,step:r,line:e,column:t}}return{type:c.NUMBER,value:parseInt(i,10),line:e,column:t}}readRelativeOffset(){let e=this.line,t=this.column;this.advance();let i="";for(;this.isDigit(this.peek());)i+=this.advance();let s=parseInt(i,10)||0;return{type:c.RELATIVE_OFFSET,value:`+${s}`,offset:s,line:e,column:t}}readPattern(){let e=this.line,t=this.column;this.advance();let i="",s=!1;for(;this.pos<this.input.length;){let a=this.peek();if(a==="/"&&!s)break;if(a==="\\")i+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
21
|
+
`&&(i+=this.advance());else{if(a===`
|
|
22
|
+
`)break;a==="["&&!s?(s=!0,i+=this.advance(),this.peek()==="^"&&(i+=this.advance()),this.peek()==="]"&&(i+=this.advance())):a==="]"&&s?(s=!1,i+=this.advance()):i+=this.advance()}}return this.peek()==="/"&&this.advance(),{type:c.PATTERN,value:i,pattern:i,line:e,column:t}}readLabelDef(){let e=this.line,t=this.column;for(this.advance();this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
|
|
23
|
+
`||s===";"||s==="}"||s==="{")break;i+=this.advance()}return{type:c.LABEL_DEF,value:i,label:i,line:e,column:t}}readCommand(){let e=this.line,t=this.column,i=this.advance();switch(i){case"s":return this.readSubstitute(e,t);case"y":return this.readTransliterate(e,t);case"a":case"i":case"c":return this.readTextCommand(i,e,t);case"b":return this.readBranch(c.BRANCH,"b",e,t);case"t":return this.readBranch(c.BRANCH_ON_SUBST,"t",e,t);case"T":return this.readBranch(c.BRANCH_ON_NO_SUBST,"T",e,t);case"r":return this.readFileCommand(c.FILE_READ,"r",e,t);case"R":return this.readFileCommand(c.FILE_READ_LINE,"R",e,t);case"w":return this.readFileCommand(c.FILE_WRITE,"w",e,t);case"W":return this.readFileCommand(c.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":return{type:c.COMMAND,value:i,line:e,column:t};case"v":return this.readVersion(e,t);default:return{type:c.ERROR,value:i,line:e,column:t}}}readSubstitute(e,t){let i=this.advance();if(!i||i===`
|
|
24
|
+
`)return{type:c.ERROR,value:"s",line:e,column:t};let s="",a=!1;for(;this.pos<this.input.length;){let o=this.peek();if(o===i&&!a)break;if(o==="\\")this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
25
|
+
`?this.peek()===i&&!a?s+=this.advance():(s+="\\",s+=this.advance()):s+="\\";else{if(o===`
|
|
26
|
+
`)break;o==="["&&!a?(a=!0,s+=this.advance(),this.peek()==="^"&&(s+=this.advance()),this.peek()==="]"&&(s+=this.advance())):o==="]"&&a?(a=!1,s+=this.advance()):s+=this.advance()}}if(this.peek()!==i)return{type:c.ERROR,value:"unterminated substitution pattern",line:e,column:t};this.advance();let r="";for(;this.pos<this.input.length&&this.peek()!==i;)if(this.peek()==="\\")if(this.advance(),this.pos<this.input.length){let o=this.peek();o==="\\"?(this.advance(),this.pos<this.input.length&&this.peek()===`
|
|
27
|
+
`?(r+=`
|
|
28
|
+
`,this.advance()):r+="\\"):o===`
|
|
29
|
+
`?(r+=`
|
|
30
|
+
`,this.advance()):r+=`\\${this.advance()}`}else r+="\\";else{if(this.peek()===`
|
|
31
|
+
`)break;r+=this.advance()}this.peek()===i&&this.advance();let l="";for(;this.pos<this.input.length;){let o=this.peek();if(o==="g"||o==="i"||o==="p"||o==="I"||this.isDigit(o))l+=this.advance();else break}return{type:c.SUBSTITUTE,value:`s${i}${s}${i}${r}${i}${l}`,pattern:s,replacement:r,flags:l,line:e,column:t}}readTransliterate(e,t){let i=this.advance();if(!i||i===`
|
|
32
|
+
`)return{type:c.ERROR,value:"y",line:e,column:t};let s=this.readEscapedString(i);if(s===null||this.peek()!==i)return{type:c.ERROR,value:"unterminated transliteration source",line:e,column:t};this.advance();let a=this.readEscapedString(i);if(a===null||this.peek()!==i)return{type:c.ERROR,value:"unterminated transliteration dest",line:e,column:t};this.advance();let r=this.peek();for(;r===" "||r===" ";)this.advance(),r=this.peek();return r!==""&&r!==";"&&r!==`
|
|
33
|
+
`&&r!=="}"?{type:c.ERROR,value:"extra text at the end of a transform command",line:e,column:t}:{type:c.TRANSLITERATE,value:`y${i}${s}${i}${a}${i}`,source:s,dest:a,line:e,column:t}}readTextCommand(e,t,i){let s=!1;this.peek()==="\\"&&this.pos+1<this.input.length&&(this.input[this.pos+1]===`
|
|
34
|
+
`||this.input[this.pos+1]===" "||this.input[this.pos+1]===" ")&&(s=!0,this.advance()),(this.peek()===" "||this.peek()===" ")&&this.advance(),this.peek()==="\\"&&this.pos+1<this.input.length&&(this.input[this.pos+1]===" "||this.input[this.pos+1]===" ")&&this.advance(),s&&this.peek()===`
|
|
35
|
+
`&&this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
|
|
36
|
+
`){if(a.endsWith("\\")){a=`${a.slice(0,-1)}
|
|
37
|
+
`,this.advance();continue}break}if(r==="\\"&&this.pos+1<this.input.length){let l=this.input[this.pos+1];if(l==="n"){a+=`
|
|
38
|
+
`,this.advance(),this.advance();continue}if(l==="t"){a+=" ",this.advance(),this.advance();continue}if(l==="r"){a+="\r",this.advance(),this.advance();continue}}a+=this.advance()}return{type:c.TEXT_CMD,value:e,text:a,line:t,column:i}}readBranch(e,t,i,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===" "||r===" "||r===`
|
|
39
|
+
`||r===";"||r==="}"||r==="{")break;a+=this.advance()}return{type:e,value:t,label:a||void 0,line:i,column:s}}readVersion(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
|
|
40
|
+
`||s===";"||s==="}"||s==="{")break;i+=this.advance()}return{type:c.VERSION,value:"v",label:i||void 0,line:e,column:t}}readFileCommand(e,t,i,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
|
|
41
|
+
`||r===";")break;a+=this.advance()}return{type:e,value:t,filename:a.trim(),line:i,column:s}}readExecute(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
|
|
42
|
+
`||s===";")break;i+=this.advance()}return{type:c.EXECUTE,value:"e",command:i.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var z=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 i=new A(t);for(this.tokens=i.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(c.NEWLINE)||this.check(c.SEMICOLON)){this.advance();continue}let s=this.pos,a=this.parseCommand();if(a.error)return{commands:[],error:a.error};if(a.command&&e.push(a.command),this.pos===s&&!this.isAtEnd())return{commands:[],error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();if(e?.error)return{command:null,error:e.error};let t=e?.address;for(this.check(c.NEGATION)&&(this.advance(),t&&(t.negated=!0));this.check(c.NEWLINE)||this.check(c.SEMICOLON);)this.advance();if(this.isAtEnd())return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null};let i=this.peek();switch(i.type){case c.COMMAND:return this.parseSimpleCommand(i,t);case c.SUBSTITUTE:return this.parseSubstituteFromToken(i,t);case c.TRANSLITERATE:return this.parseTransliterateFromToken(i,t);case c.LABEL_DEF:return this.advance(),{command:{type:"label",name:i.label||""}};case c.BRANCH:return this.advance(),{command:{type:"branch",address:t,label:i.label}};case c.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:t,label:i.label}};case c.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:t,label:i.label}};case c.TEXT_CMD:return this.advance(),this.parseTextCommand(i,t);case c.FILE_READ:return this.advance(),{command:{type:"readFile",address:t,filename:i.filename||""}};case c.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:t,filename:i.filename||""}};case c.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:t,filename:i.filename||""}};case c.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:t,filename:i.filename||""}};case c.EXECUTE:return this.advance(),{command:{type:"execute",address:t,command:i.command}};case c.VERSION:return this.advance(),{command:{type:"version",address:t,minVersion:i.label}};case c.LBRACE:return this.parseGroup(t);case c.RBRACE:return{command:null};case c.ERROR:return{command:null,error:`invalid command: ${i.value}`};default:return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null}}}parseSimpleCommand(e,t){this.advance();let i=e.value;switch(i){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}};default:return{command:null,error:`unknown command: ${i}`}}}parseSubstituteFromToken(e,t){this.advance();let i=e.flags||"",s,a=i.match(/(\d+)/);return a&&(s=parseInt(a[1],10)),{command:{type:"substitute",address:t,pattern:e.pattern||"",replacement:e.replacement||"",global:i.includes("g"),ignoreCase:i.includes("i")||i.includes("I"),printOnMatch:i.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,t){this.advance();let i=e.source||"",s=e.dest||"";return i.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:t,source:i,dest:s}}}parseTextCommand(e,t){let i=e.value,s=e.text||"";switch(i){case"a":return{command:{type:"append",address:t,text:s}};case"i":return{command:{type:"insert",address:t,text:s}};case"c":return{command:{type:"change",address:t,text:s}};default:return{command:null,error:`unknown text command: ${i}`}}}parseGroup(e){this.advance();let t=[];for(;!this.isAtEnd()&&!this.check(c.RBRACE);){if(this.check(c.NEWLINE)||this.check(c.SEMICOLON)){this.advance();continue}let i=this.pos,s=this.parseCommand();if(s.error)return{command:null,error:s.error};if(s.command&&t.push(s.command),this.pos===i&&!this.isAtEnd())return{command:null,error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}return this.check(c.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:t}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){if(this.check(c.COMMA))return{error:"expected context address"};let e=this.parseAddress();if(e===void 0)return;let t;if(this.check(c.RELATIVE_OFFSET))t={offset:this.advance().offset||0};else if(this.check(c.COMMA)&&(this.advance(),t=this.parseAddress(),t===void 0))return{error:"expected context address"};return{address:{start:e,end:t}}}parseAddress(){let e=this.peek();switch(e.type){case c.NUMBER:return this.advance(),e.value;case c.DOLLAR:return this.advance(),"$";case c.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case c.STEP:return this.advance(),{first:e.first||0,step:e.step||0};case c.RELATIVE_OFFSET:return this.advance(),{offset:e.offset||0};default:return}}peek(){return this.tokens[this.pos]||{type:c.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===c.EOF}};function J(n,e=!1){let t=!1,i=!1,s=[];for(let o=0;o<n.length;o++){let d=n[o];if(s.length===0&&o===0){let f=d.match(/^#([nr]+)\s*(?:\n|$)/i);if(f){let v=f[1].toLowerCase();v.includes("n")&&(t=!0),v.includes("r")&&(i=!0),d=d.slice(f[0].length)}}if(s.length>0&&s[s.length-1].endsWith("\\")){let f=s[s.length-1];s[s.length-1]=`${f}
|
|
43
|
+
${d}`}else s.push(d)}let a=s.join(`
|
|
44
|
+
`),l=new z([a],e||i).parse();if(!l.error&&l.commands.length>0){let o=pe(l.commands);if(o)return{commands:[],error:o,silentMode:t,extendedRegexMode:i}}return{...l,silentMode:t,extendedRegexMode:i}}function pe(n){let e=new Set;Y(n,e);let t=ee(n,e);if(t)return`undefined label '${t}'`}function Y(n,e){for(let t of n)t.type==="label"?e.add(t.name):t.type==="group"&&Y(t.commands,e)}function ee(n,e){for(let t of n){if((t.type==="branch"||t.type==="branchOnSubst"||t.type==="branchOnNoSubst")&&t.label&&!e.has(t.label))return t.label;if(t.type==="group"){let i=ee(t.commands,e);if(i)return i}}}var me={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:
|
|
45
|
+
s/regexp/replacement/[flags] substitute
|
|
46
|
+
d delete pattern space
|
|
47
|
+
p print pattern space
|
|
48
|
+
a\\ text append text after line
|
|
49
|
+
i\\ text insert text before line
|
|
50
|
+
c\\ text change (replace) line with text
|
|
51
|
+
h copy pattern space to hold space
|
|
52
|
+
H append pattern space to hold space
|
|
53
|
+
g copy hold space to pattern space
|
|
54
|
+
G append hold space to pattern space
|
|
55
|
+
x exchange pattern and hold spaces
|
|
56
|
+
n read next line into pattern space
|
|
57
|
+
N append next line to pattern space
|
|
58
|
+
y/source/dest/ transliterate characters
|
|
59
|
+
= print line number
|
|
60
|
+
l list pattern space (escape special chars)
|
|
61
|
+
b [label] branch to label
|
|
62
|
+
t [label] branch on substitution
|
|
63
|
+
T [label] branch if no substitution
|
|
64
|
+
:label define label
|
|
65
|
+
q quit
|
|
66
|
+
Q quit without printing
|
|
67
|
+
|
|
68
|
+
Addresses:
|
|
69
|
+
N line number
|
|
70
|
+
$ last line
|
|
71
|
+
/regexp/ lines matching regexp
|
|
72
|
+
N,M range from line N to M
|
|
73
|
+
first~step every step-th line starting at first`};async function H(n,e,t,i={}){let{limits:s,filename:a,fs:r,cwd:l,coverage:o}=i,d=n.endsWith(`
|
|
74
|
+
`),f=n.split(`
|
|
75
|
+
`);f.length>0&&f[f.length-1]===""&&f.pop();let v=f.length,m="",p,u=!1,h=s?.maxStringLength??0,b=R=>{if(m+=R,h>0&&m.length>h)throw new C(`sed: output size limit exceeded (${h} bytes)`,"string_length")},x="",y,te=new Map,F=new Map,$=new Map,_=new Map,ne=s?{maxIterations:s.maxSedIterations,maxStringLength:h}:void 0;for(let R=0;R<f.length;R++){let g={...Q(v,a,te),patternSpace:f[R],holdSpace:x,lastPattern:y,lineNumber:R+1,totalLines:v,substitutionMade:!1,coverage:o},ie={lines:f,currentLineIndex:R},V=0,se=1e4;g.linesConsumedInCycle=0;do{if(V++,V>se)break;if(g.restartCycle=!1,g.pendingFileReads=[],g.pendingFileWrites=[],U(e,g,ie,ne),r&&l){for(let E of g.pendingFileReads){let k=r.resolvePath(l,E.filename);try{if(E.wholeFile){let S=await r.readFile(k);g.appendBuffer.push(S.replace(/\n$/,""))}else{if(!F.has(k)){let ae=await r.readFile(k);F.set(k,ae.split(`
|
|
76
|
+
`)),$.set(k,0)}let S=F.get(k),w=$.get(k);S&&w!==void 0&&w<S.length&&(g.appendBuffer.push(S[w]),$.set(k,w+1))}}catch{}}for(let E of g.pendingFileWrites){let k=r.resolvePath(l,E.filename),S=_.get(k)||"";_.set(k,S+E.content)}}}while(g.restartCycle&&!g.deleted&&!g.quit&&!g.quitSilent);if(R+=g.linesConsumedInCycle,x=g.holdSpace,y=g.lastPattern,!t)for(let E of g.nCommandOutput)b(`${E}
|
|
77
|
+
`);let re=g.lineNumberOutput.length>0;for(let E of g.lineNumberOutput)b(`${E}
|
|
78
|
+
`);let X=[],M=[];for(let E of g.appendBuffer)E.startsWith("__INSERT__")?X.push(E.slice(10)):M.push(E);for(let E of X)b(`${E}
|
|
79
|
+
`);let L=!1;!g.deleted&&!g.quitSilent?t?g.printed&&(b(`${g.patternSpace}
|
|
80
|
+
`),L=!0):(b(`${g.patternSpace}
|
|
81
|
+
`),L=!0):g.changedText!==void 0&&(b(`${g.changedText}
|
|
82
|
+
`),L=!0);for(let E of M)b(`${E}
|
|
83
|
+
`);if(u=(re||L)&&M.length===0,g.quit||g.quitSilent){if(g.exitCode!==void 0&&(p=g.exitCode),g.errorMessage)return{output:"",exitCode:p||1,errorMessage:g.errorMessage};break}}if(r&&l)for(let[R,g]of _)try{await r.writeFile(R,g)}catch{}return!d&&u&&m.endsWith(`
|
|
84
|
+
`)&&(m=m.slice(0,-1)),{output:m,exitCode:p}}var Le={name:"sed",async execute(n,e){if(j(n))return G(me);let t=[],i=[],s=!1,a=!1,r=!1,l=[];for(let u=0;u<n.length;u++){let h=n[u];if(h==="-n"||h==="--quiet"||h==="--silent")s=!0;else if(h==="-i"||h==="--in-place")a=!0;else if(h.startsWith("-i"))a=!0;else if(h==="-E"||h==="-r"||h==="--regexp-extended")r=!0;else if(h==="-e")u+1<n.length&&t.push(n[++u]);else if(h==="-f")u+1<n.length&&i.push(n[++u]);else{if(h.startsWith("--"))return T("sed",h);if(h==="-")l.push(h);else if(h.startsWith("-")&&h.length>1){for(let b of h.slice(1))if(b!=="n"&&b!=="e"&&b!=="f"&&b!=="i"&&b!=="E"&&b!=="r")return T("sed",`-${b}`);h.includes("n")&&(s=!0),h.includes("i")&&(a=!0),(h.includes("E")||h.includes("r"))&&(r=!0),h.includes("e")&&!h.includes("n")&&!h.includes("i")&&u+1<n.length&&t.push(n[++u]),h.includes("f")&&!h.includes("e")&&u+1<n.length&&i.push(n[++u])}else!h.startsWith("-")&&t.length===0&&i.length===0?t.push(h):h.startsWith("-")||l.push(h)}}for(let u of i){let h=e.fs.resolvePath(e.cwd,u);try{let b=await e.fs.readFile(h);for(let x of b.split(`
|
|
85
|
+
`)){let y=x.trim();y&&!y.startsWith("#")&&t.push(y)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${u}: No such file or directory
|
|
86
|
+
`,exitCode:1}}}if(t.length===0)return{stdout:"",stderr:`sed: no script specified
|
|
87
|
+
`,exitCode:1};let{commands:o,error:d,silentMode:f}=J(t,r);if(d)return{stdout:"",stderr:`sed: ${d}
|
|
88
|
+
`,exitCode:1};let v=!!(s||f);if(a){if(l.length===0)return{stdout:"",stderr:`sed: -i requires at least one file argument
|
|
89
|
+
`,exitCode:1};for(let u of l){if(u==="-")continue;let h=e.fs.resolvePath(e.cwd,u);try{let b=await e.fs.readFile(h),x=await H(b,o,v,{limits:e.limits,filename:u,fs:e.fs,cwd:e.cwd,coverage:e.coverage});if(x.errorMessage)return{stdout:"",stderr:`${x.errorMessage}
|
|
90
|
+
`,exitCode:x.exitCode??1};await e.fs.writeFile(h,x.output)}catch(b){return b instanceof C?{stdout:"",stderr:`sed: ${b.message}
|
|
91
|
+
`,exitCode:C.EXIT_CODE}:{stdout:"",stderr:`sed: ${u}: No such file or directory
|
|
92
|
+
`,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}let m="";if(l.length===0){m=e.stdin;try{let u=await H(m,o,v,{limits:e.limits,fs:e.fs,cwd:e.cwd,coverage:e.coverage});return{stdout:u.output,stderr:u.errorMessage?`${u.errorMessage}
|
|
93
|
+
`:"",exitCode:u.exitCode??0}}catch(u){if(u instanceof C)return{stdout:"",stderr:`sed: ${u.message}
|
|
94
|
+
`,exitCode:C.EXIT_CODE};throw u}}let p=!1;for(let u of l){let h;if(u==="-")p?h="":(h=e.stdin,p=!0);else{let b=e.fs.resolvePath(e.cwd,u);try{h=await e.fs.readFile(b)}catch(x){return x instanceof C?{stdout:"",stderr:`sed: ${x.message}
|
|
95
|
+
`,exitCode:C.EXIT_CODE}:{stdout:"",stderr:`sed: ${u}: No such file or directory
|
|
96
|
+
`,exitCode:1}}}m.length>0&&h.length>0&&!m.endsWith(`
|
|
97
|
+
`)&&(m+=`
|
|
98
|
+
`),m+=h}try{let u=await H(m,o,v,{limits:e.limits,filename:l.length===1?l[0]:void 0,fs:e.fs,cwd:e.cwd,coverage:e.coverage});return{stdout:u.output,stderr:u.errorMessage?`${u.errorMessage}
|
|
99
|
+
`:"",exitCode:u.exitCode??0}}catch(u){if(u instanceof C)return{stdout:"",stderr:`sed: ${u.message}
|
|
100
|
+
`,exitCode:C.EXIT_CODE};throw u}}},we={name:"sed",flags:[{flag:"-n",type:"boolean"},{flag:"-i",type:"boolean"},{flag:"-E",type:"boolean"},{flag:"-r",type:"boolean"},{flag:"-e",type:"value",valueHint:"string"}],stdinType:"text",needsArgs:!0};export{Le as a,we as b};
|