just-bash 2.10.2 → 2.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/chunks/{chunk-FEBB4TFH.js → chunk-4U7XM2O3.js} +6 -6
- package/dist/bin/{shell/chunks/flag-coverage-SFRIE2LL.js → chunks/flag-coverage-WM63KT7D.js} +1 -1
- package/dist/bin/{shell/chunks/sed-WNL6TIIN.js → chunks/sed-PHQQJ4SI.js} +1 -1
- package/dist/bin/just-bash.js +205 -205
- package/dist/bin/shell/chunks/{chunk-FEBB4TFH.js → chunk-4U7XM2O3.js} +6 -6
- package/dist/bin/{chunks/flag-coverage-SFRIE2LL.js → shell/chunks/flag-coverage-WM63KT7D.js} +1 -1
- package/dist/bin/{chunks/sed-WNL6TIIN.js → shell/chunks/sed-PHQQJ4SI.js} +1 -1
- package/dist/bin/shell/shell.js +216 -216
- package/dist/bundle/browser.js +24 -24
- package/dist/bundle/chunks/{chunk-WACZHM4L.js → chunk-MZLOTDD7.js} +6 -6
- package/dist/bundle/chunks/{flag-coverage-MX32DFGQ.js → flag-coverage-H2IQM6DS.js} +1 -1
- package/dist/bundle/chunks/{sed-RXIECPPB.js → sed-7HX4RAZG.js} +1 -1
- package/dist/bundle/index.js +213 -213
- package/dist/fs/overlay-fs/overlay-fs.d.ts +13 -0
- package/dist/fs/read-write-fs/read-write-fs.d.ts +12 -0
- package/package.json +1 -1
package/dist/bundle/browser.js
CHANGED
|
@@ -174,11 +174,11 @@ Options:
|
|
|
174
174
|
`),D.CODES.get(`
|
|
175
175
|
`)));let a=!0;for(;!t.more()||t.peek()!==D.CODES.get("]")||a;){if(t.more()&&t.lookingAt("-")&&(this.flags&Q.PERL_X)===0&&!a){let u=t.rest();if(u==="-"||!u.startsWith("-]"))throw t.rewindTo(n),new De(e.ERR_INVALID_CHAR_RANGE,t.rest())}a=!1;let o=t.pos();if(t.lookingAt("[:")){if(this.parseNamedClass(t,s))continue;t.rewindTo(o)}if(this.parseUnicodeClass(t,s)||this.parsePerlClassEscape(t,s))continue;t.rewindTo(o);let l=e.parseClassChar(t,n),c=l;if(t.more()&&t.lookingAt("-")){if(t.skip(1),t.more()&&t.lookingAt("]"))t.skip(-1);else if(c=e.parseClassChar(t,n),c<l)throw new De(e.ERR_INVALID_CHAR_RANGE,t.from(o))}(this.flags&Q.FOLD_CASE)===0?s.appendRange(l,c):s.appendFoldedRange(l,c)}t.skip(1),s.cleanClass(),i<0&&s.negateClass(),r.runes=s.toArray(),this.push(r)}},to=class{constructor(t){this.value=t}get(){return this.value}set(t){this.value=t}compareAndSet(t,n){return this.value===t?(this.value=n,!0):!1}},no=class e{static initTest(t){let n=e.compile(t),r=new e(n.expr,n.prog,n.numSubexp,n.longest);return r.cond=n.cond,r.prefix=n.prefix,r.prefixUTF8=n.prefixUTF8,r.prefixComplete=n.prefixComplete,r.prefixRune=n.prefixRune,r}static compile(t){return e.compileImpl(t,Q.PERL,!1)}static compilePOSIX(t){return e.compileImpl(t,Q.POSIX,!0)}static compileImpl(t,n,r){let s=eo.parse(t,n),i=s.maxCap();s=Ya.simplify(s);let a=Xa.compileRegexp(s),o=new e(t,a,i,r),[l,c]=a.prefix();return o.prefixComplete=l,o.prefix=c,o.prefixUTF8=Ne.stringToUtf8ByteArray(o.prefix),o.prefix.length>0&&(o.prefixRune=o.prefix.codePointAt(0)),o.namedGroups=s.namedGroups,o}static match(t,n){return e.compile(t).match(n)}constructor(t,n,r=0,s=0){this.expr=t,this.prog=n,this.numSubexp=r,this.longest=s,this.cond=n.startCond(),this.prefix=null,this.prefixUTF8=null,this.prefixComplete=!1,this.prefixRune=0,this.pooled=new to}numberOfCapturingGroups(){return this.numSubexp}numberOfInstructions(){return this.prog.numInst()}get(){let t;do t=this.pooled.get();while(t&&!this.pooled.compareAndSet(t,t.next));return t}reset(){this.pooled.set(null)}put(t,n){let r=this.pooled.get();do r=this.pooled.get(),!n&&r&&(t=rs.fromMachine(t),n=!0),t.next!==r&&(t.next=r);while(!this.pooled.compareAndSet(r,t))}toString(){return this.expr}doExecute(t,n,r,s){let i=this.get(),a=!1;i?i.next!==null&&(i=rs.fromMachine(i),a=!0):(i=rs.fromRE2(this),a=!0),i.init(s);let o=i.match(t,n,r)?i.submatches():null;return this.put(i,a),o}match(t){return this.doExecute(Ve.fromUTF16(t),0,Q.UNANCHORED,0)!==null}matchWithGroup(t,n,r,s,i){return t instanceof Rn||(t=xr.utf16(t)),this.matchMachineInput(t,n,r,s,i)}matchMachineInput(t,n,r,s,i){if(n>r)return[!1,null];let a=t.isUTF16Encoding()?Ve.fromUTF16(t.asCharSequence(),0,r):Ve.fromUTF8(t.asBytes(),0,r),o=this.doExecute(a,n,s,2*i);return o===null?[!1,null]:[!0,o]}matchUTF8(t){return this.doExecute(Ve.fromUTF8(t),0,Q.UNANCHORED,0)!==null}replaceAll(t,n){return this.replaceAllFunc(t,()=>n,2*t.length+1)}replaceFirst(t,n){return this.replaceAllFunc(t,()=>n,1)}replaceAllFunc(t,n,r){let s=0,i=0,a="",o=Ve.fromUTF16(t),l=0;for(;i<=t.length;){let c=this.doExecute(o,i,Q.UNANCHORED,2);if(c===null||c.length===0)break;a+=t.substring(s,c[0]),(c[1]>s||c[0]===0)&&(a+=n(t.substring(c[0],c[1])),l++),s=c[1];let u=o.step(i)&7;if(i+u>c[1]?i+=u:i+1>c[1]?i++:i=c[1],l>=r)break}return a+=t.substring(s),a}pad(t){if(t===null)return null;let n=(1+this.numSubexp)*2;if(t.length<n){let r=new Array(n).fill(-1);for(let s=0;s<t.length;s++)r[s]=t[s];t=r}return t}allMatches(t,n,r=s=>s){let s=[],i=t.endPos();n<0&&(n=i+1);let a=0,o=0,l=-1;for(;o<n&&a<=i;){let c=this.doExecute(t,a,Q.UNANCHORED,this.prog.numCap);if(c===null||c.length===0)break;let u=!0;if(c[1]===a){c[0]===l&&(u=!1);let f=t.step(a);f<0?a=i+1:a+=f&7}else a=c[1];l=c[1],u&&(s.push(r(this.pad(c))),o++)}return s}findUTF8(t){let n=this.doExecute(Ve.fromUTF8(t),0,Q.UNANCHORED,2);return n===null?null:t.slice(n[0],n[1])}findUTF8Index(t){let n=this.doExecute(Ve.fromUTF8(t),0,Q.UNANCHORED,2);return n===null?null:n.slice(0,2)}find(t){let n=this.doExecute(Ve.fromUTF16(t),0,Q.UNANCHORED,2);return n===null?"":t.substring(n[0],n[1])}findIndex(t){return this.doExecute(Ve.fromUTF16(t),0,Q.UNANCHORED,2)}findUTF8Submatch(t){let n=this.doExecute(Ve.fromUTF8(t),0,Q.UNANCHORED,this.prog.numCap);if(n===null)return null;let r=new Array(1+this.numSubexp).fill(null);for(let s=0;s<r.length;s++)2*s<n.length&&n[2*s]>=0&&(r[s]=t.slice(n[2*s],n[2*s+1]));return r}findUTF8SubmatchIndex(t){return this.pad(this.doExecute(Ve.fromUTF8(t),0,Q.UNANCHORED,this.prog.numCap))}findSubmatch(t){let n=this.doExecute(Ve.fromUTF16(t),0,Q.UNANCHORED,this.prog.numCap);if(n===null)return null;let r=new Array(1+this.numSubexp).fill(null);for(let s=0;s<r.length;s++)2*s<n.length&&n[2*s]>=0&&(r[s]=t.substring(n[2*s],n[2*s+1]));return r}findSubmatchIndex(t){return this.pad(this.doExecute(Ve.fromUTF16(t),0,Q.UNANCHORED,this.prog.numCap))}findAllUTF8(t,n){let r=this.allMatches(Ve.fromUTF8(t),n,s=>t.slice(s[0],s[1]));return r.length===0?null:r}findAllUTF8Index(t,n){let r=this.allMatches(Ve.fromUTF8(t),n,s=>s.slice(0,2));return r.length===0?null:r}findAll(t,n){let r=this.allMatches(Ve.fromUTF16(t),n,s=>t.substring(s[0],s[1]));return r.length===0?null:r}findAllIndex(t,n){let r=this.allMatches(Ve.fromUTF16(t),n,s=>s.slice(0,2));return r.length===0?null:r}findAllUTF8Submatch(t,n){let r=this.allMatches(Ve.fromUTF8(t),n,s=>{let i=new Array(s.length/2|0).fill(null);for(let a=0;a<i.length;a++)s[2*a]>=0&&(i[a]=t.slice(s[2*a],s[2*a+1]));return i});return r.length===0?null:r}findAllUTF8SubmatchIndex(t,n){let r=this.allMatches(Ve.fromUTF8(t),n);return r.length===0?null:r}findAllSubmatch(t,n){let r=this.allMatches(Ve.fromUTF16(t),n,s=>{let i=new Array(s.length/2|0).fill(null);for(let a=0;a<i.length;a++)s[2*a]>=0&&(i[a]=t.substring(s[2*a],s[2*a+1]));return i});return r.length===0?null:r}findAllSubmatchIndex(t,n){let r=this.allMatches(Ve.fromUTF16(t),n);return r.length===0?null:r}},ro=class e{static isUpperCaseAlpha(t){return"A"<=t&&t<="Z"}static isHexadecimal(t){return"0"<=t&&t<="9"||"A"<=t&&t<="F"||"a"<=t&&t<="f"}static getUtf8CharSize(t){let n=t.charCodeAt(0);return n<128?1:n<2048?2:n<65536?3:4}static translate(t){if(typeof t!="string")return t;let n="",r=!1,s=t.length;s===0&&(n="(?:)",r=!0);let i=0;for(;i<s;){let a=t[i];if(a==="\\"){if(i+1<s)switch(a=t[i+1],a){case"\\":{n+="\\\\",i+=2;continue}case"c":{if(i+2<s){let l=t[i+2];if(e.isUpperCaseAlpha(l)){n+="\\x",n+=(l.charCodeAt(0)-64>>4).toString(16).toUpperCase(),n+=(l.charCodeAt(0)-64&15).toString(16).toUpperCase(),i+=3,r=!0;continue}}n+="\\c",i+=2;continue}case"u":{if(i+2<s){let l=t[i+2];if(e.isHexadecimal(l)){n+="\\x{"+l,i+=3;for(let c=0;c<3&&i<s&&(l=t[i],!!e.isHexadecimal(l));++i,++c)n+=l;n+="}",r=!0;continue}else if(l==="{"){n+="\\x",i+=2,r=!0;continue}}n+="\\u",i+=2;continue}default:{n+="\\";let l=e.getUtf8CharSize(a);n+=t.substring(i+1,i+1+l),i+=l+1;continue}}}else if(a==="/"){n+="\\/",i+=1,r=!0;continue}else if(a==="("&&i+2<s&&t[i+1]==="?"&&t[i+2]==="<"&&(i+3>=s||t[i+3]!=="="&&t[i+3]!=="!")){n+="(?P<",i+=3,r=!0;continue}let o=e.getUtf8CharSize(a);n+=t.substring(i,i+o),i+=o}return r?n:t}},Tn=class e{static CASE_INSENSITIVE=1;static DOTALL=2;static MULTILINE=4;static DISABLE_UNICODE_GROUPS=8;static LONGEST_MATCH=16;static quote(t){return Ne.quoteMeta(t)}static translateRegExp(t){return ro.translate(t)}static compile(t,n=0){let r=t;if((n&e.CASE_INSENSITIVE)!==0&&(r=`(?i)${r}`),(n&e.DOTALL)!==0&&(r=`(?s)${r}`),(n&e.MULTILINE)!==0&&(r=`(?m)${r}`),(n&~(e.MULTILINE|e.DOTALL|e.CASE_INSENSITIVE|e.DISABLE_UNICODE_GROUPS|e.LONGEST_MATCH))!==0)throw new Va("Flags should only be a combination of MULTILINE, DOTALL, CASE_INSENSITIVE, DISABLE_UNICODE_GROUPS, LONGEST_MATCH");let s=Q.PERL;(n&e.DISABLE_UNICODE_GROUPS)!==0&&(s&=-129);let i=new e(t,n);return i.re2Input=no.compileImpl(r,s,(n&e.LONGEST_MATCH)!==0),i}static matches(t,n){return e.compile(t).matcher(n).matches()}static initTest(t,n,r){if(t==null)throw new Error("pattern is null");if(r==null)throw new Error("re2 is null");let s=new e(t,n);return s.re2Input=r,s}constructor(t,n){this.patternInput=t,this.flagsInput=n}reset(){this.re2Input.reset()}flags(){return this.flagsInput}pattern(){return this.patternInput}re2(){return this.re2Input}matches(t){return this.matcher(t).matches()}matcher(t){return Array.isArray(t)&&(t=xr.utf8(t)),new Ga(this,t)}split(t,n=0){let r=this.matcher(t),s=[],i=0,a=0;for(;r.find();){if(a===0&&r.end()===0){a=r.end();continue}if(n>0&&s.length===n-1)break;if(a===r.start()){if(n===0){i+=1,a=r.end();continue}}else for(;i>0;)s.push(""),i-=1;s.push(r.substring(a,r.start())),a=r.end()}if(n===0&&a!==r.inputLength()){for(;i>0;)s.push(""),i-=1;s.push(r.substring(a,r.inputLength()))}return(n!==0||s.length===0)&&s.push(r.substring(a,r.inputLength())),s}toString(){return this.patternInput}programSize(){return this.re2Input.numberOfInstructions()}groupCount(){return this.re2Input.numberOfCapturingGroups()}namedGroups(){return this.re2Input.namedGroups}equals(t){return this===t?!0:t===null||this.constructor!==t.constructor?!1:this.flagsInput===t.flagsInput&&this.patternInput===t.patternInput}}});function xy(e){let t=0;return e.includes("i")&&(t|=Tn.CASE_INSENSITIVE),e.includes("m")&&(t|=Tn.MULTILINE),e.includes("s")&&(t|=Tn.DOTALL),t}function Ey(e){return Tn.translateRegExp(e)}function G(e,t=""){return new ti(e,t)}var ti,Cn,Mf=I(()=>{"use strict";Ff();ti=class{_re2;_pattern;_flags;_global;_ignoreCase;_multiline;_lastIndex=0;_nativeRegex=null;constructor(t,n=""){this._pattern=t,this._flags=n,this._global=n.includes("g"),this._ignoreCase=n.includes("i"),this._multiline=n.includes("m");try{let r=Ey(t),s=xy(n);this._re2=Tn.compile(r,s)}catch(r){if(r instanceof De){let s=r.message||"",i="";throw s.includes("(?=")||s.includes("(?!")||s.includes("(?<")||s.includes("(?<!")||t.includes("(?=")||t.includes("(?!")||t.includes("(?<=")||t.includes("(?<!")?i=" Lookahead (?=, ?!) and lookbehind (?<=, ?<!) assertions are not supported in this environment because the regex engine uses RE2 for ReDoS protection. RE2 guarantees linear-time matching but cannot support these features.":(s.includes("backreference")||/\\[1-9]/.test(t))&&(i=" Backreferences (\\1, \\2, etc.) are not supported in this environment because the regex engine uses RE2 for ReDoS protection. RE2 guarantees linear-time matching but cannot support backreferences."),new SyntaxError(`Invalid regular expression: /${t}/: ${s}${i}`)}throw r}}test(t){return this._global&&(this._lastIndex=0),this._re2.matcher(t).find()}exec(t){let n=this._re2.matcher(t),r=this._global?this._lastIndex:0;if(!n.find(r))return this._global&&(this._lastIndex=0),null;let s=this._re2.groupCount(),i=[];i.push(n.group(0)??"");for(let l=1;l<=s;l++){let c=n.group(l);i.push(c)}let a=i;a.index=n.start(0),a.input=t;let o=this._re2.namedGroups();if(o&&Object.keys(o).length>0){let l=Object.create(null);for(let[c,u]of Object.entries(o)){let f=n.group(u);f!==null&&(l[c]=f)}a.groups=l}return this._global&&(this._lastIndex=n.end(0),n.start(0)===n.end(0)&&this._lastIndex++),a}match(t){if(this._global&&(this._lastIndex=0),!this._global)return this.exec(t);let n=[],r=this._re2.matcher(t),s=0;for(;r.find(s);){let i=r.group(0)??"";if(n.push(i),s=r.end(0),r.start(0)===r.end(0)&&s++,s>t.length)break}return n.length>0?n:null}replace(t,n){if(this._global&&(this._lastIndex=0),typeof n=="string"){let c=this._re2.matcher(t);return this._global?c.replaceAll(n,!0):c.replaceFirst(n,!0)}let r=[],s=this._re2.matcher(t),i=0,a=0,o=this._re2.groupCount(),l=this._re2.namedGroups();for(;s.find(a);){r.push(t.slice(i,s.start(0)));let c=[],u=s.group(0)??"";for(let f=1;f<=o;f++)c.push(s.group(f));if(c.push(s.start(0)),c.push(t),l&&Object.keys(l).length>0){let f=Object.create(null);for(let[p,h]of Object.entries(l))f[p]=s.group(h)??"";c.push(f)}if(r.push(n(u,...c)),i=s.end(0),a=i,s.start(0)===s.end(0)&&a++,!this._global||a>t.length)break}return r.push(t.slice(i)),r.join("")}split(t,n){return n===void 0||n<0?this._re2.split(t,-1):n===0?[]:this._re2.split(t,-1).slice(0,n)}search(t){let n=this._re2.matcher(t);return n.find()?n.start(0):-1}*matchAll(t){if(!this._global)throw new Error("matchAll requires global flag");this._lastIndex=0;let n=this._re2.matcher(t),r=this._re2.groupCount(),s=this._re2.namedGroups(),i=0;for(;n.find(i);){let a=[];a.push(n.group(0)??"");for(let l=1;l<=r;l++)a.push(n.group(l));let o=a;if(o.index=n.start(0),o.input=t,s&&Object.keys(s).length>0){let l=Object.create(null);for(let[c,u]of Object.entries(s)){let f=n.group(u);f!==null&&(l[c]=f)}o.groups=l}if(yield o,i=n.end(0),n.start(0)===n.end(0)&&i++,i>t.length)break}}get native(){if(!this._nativeRegex)try{this._nativeRegex=new RegExp(this._pattern,this._flags)}catch{this._nativeRegex=new RegExp("",this._flags),Object.defineProperty(this._nativeRegex,"source",{value:this._pattern,writable:!1})}return this._nativeRegex}get source(){return this._pattern}get flags(){return this._flags}get global(){return this._global}get ignoreCase(){return this._ignoreCase}get multiline(){return this._multiline}get lastIndex(){return this._lastIndex}set lastIndex(t){this._lastIndex=t}};Cn=class{_regex;constructor(t){this._regex=t}test(t){return this._regex.global&&(this._regex.lastIndex=0),this._regex.test(t)}exec(t){return this._regex.exec(t)}match(t){return this._regex.global&&(this._regex.lastIndex=0),t.match(this._regex)}replace(t,n){return this._regex.global&&(this._regex.lastIndex=0),t.replace(this._regex,n)}split(t,n){return t.split(this._regex,n)}search(t){return t.search(this._regex)}*matchAll(t){if(!this._regex.global)throw new Error("matchAll requires global flag");this._regex.lastIndex=0;let n=this._regex.exec(t);for(;n!==null;)yield n,n[0].length===0&&this._regex.lastIndex++,n=this._regex.exec(t)}get native(){return this._regex}get source(){return this._regex.source}get flags(){return this._regex.flags}get global(){return this._regex.global}get ignoreCase(){return this._regex.ignoreCase}get multiline(){return this._regex.multiline}get lastIndex(){return this._regex.lastIndex}set lastIndex(t){this._regex.lastIndex=t}}});var Me=I(()=>{"use strict";Mf()});function xt(e,t,n){let r=typeof n=="boolean"?{ignoreCase:n}:n??{},s=t;r.stripQuotes&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1));let i=r.ignoreCase?`i:${s}`:s,a=Uf.get(i);return a||(a=Ay(s,r.ignoreCase),Uf.set(i,a)),a.test(e)}function Ay(e,t){let n="^";for(let r=0;r<e.length;r++){let s=e[r];if(s==="*")n+=".*";else if(s==="?")n+=".";else if(s==="["){let i=r+1;for(;i<e.length&&e[i]!=="]";)i++;n+=e.slice(r,i+1),r=i}else s==="."||s==="+"||s==="^"||s==="$"||s==="{"||s==="}"||s==="("||s===")"||s==="|"||s==="\\"?n+=`\\${s}`:n+=s}return n+="$",G(n,t?"i":"")}var Uf,so=I(()=>{"use strict";Me();Uf=new Map});function Wf(e,t){return e.replace(/\$(&|\d+|<([^>]+)>)/g,(n,r,s)=>{if(r==="&")return t[0];if(s!==void 0)return t.groups?.[s]??"";let i=parseInt(r,10);return t[i]??""})}function Ar(e,t,n={}){let{invertMatch:r=!1,showLineNumbers:s=!1,countOnly:i=!1,countMatches:a=!1,filename:o="",onlyMatching:l=!1,beforeContext:c=0,afterContext:u=0,maxCount:f=0,contextSeparator:p="--",showColumn:h=!1,vimgrep:m=!1,showByteOffset:d=!1,replace:g=null,passthru:w=!1,multiline:y=!1,kResetGroup:b}=n;if(y)return Sy(e,t,{invertMatch:r,showLineNumbers:s,countOnly:i,countMatches:a,filename:o,onlyMatching:l,beforeContext:c,afterContext:u,maxCount:f,contextSeparator:p,showColumn:h,showByteOffset:d,replace:g,kResetGroup:b});let x=e.split(`
|
|
176
176
|
`),S=x.length,$=S>0&&x[S-1]===""?S-1:S;if(i||a){let N=0,P=(a||l)&&!r;for(let T=0;T<$;T++)if(t.lastIndex=0,P)for(let L=t.exec(x[T]);L!==null;L=t.exec(x[T]))N++,L[0].length===0&&t.lastIndex++;else t.test(x[T])!==r&&N++;return{output:`${o?`${o}:${N}`:String(N)}
|
|
177
|
-
`,matched:N>0,matchCount:N}}if(c===0&&u===0&&!w){let N=[],P=!1,v=0,T=0;for(let L=0;L<$&&!(f>0&&v>=f);L++){let ue=x[L];if(t.lastIndex=0,t.test(ue)!==r)if(P=!0,v++,l){t.lastIndex=0;for(let
|
|
177
|
+
`,matched:N>0,matchCount:N}}if(c===0&&u===0&&!w){let N=[],P=!1,v=0,T=0;for(let L=0;L<$&&!(f>0&&v>=f);L++){let ue=x[L];if(t.lastIndex=0,t.test(ue)!==r)if(P=!0,v++,l){t.lastIndex=0;for(let ee=t.exec(ue);ee!==null;ee=t.exec(ue)){let H=b!==void 0?ee[b]??"":ee[0],X=g!==null?Wf(g,ee):H,Ee=o?`${o}:`:"";d&&(Ee+=`${T+ee.index}:`),s&&(Ee+=`${L+1}:`),h&&(Ee+=`${ee.index+1}:`),N.push(Ee+X),ee[0].length===0&&t.lastIndex++}}else if(m){t.lastIndex=0;for(let ee=t.exec(ue);ee!==null;ee=t.exec(ue)){let H=o?`${o}:`:"";d&&(H+=`${T+ee.index}:`),s&&(H+=`${L+1}:`),h&&(H+=`${ee.index+1}:`),N.push(H+ue),ee[0].length===0&&t.lastIndex++}}else{t.lastIndex=0;let ee=t.exec(ue),H=ee?ee.index+1:1,X=ue;g!==null&&(t.lastIndex=0,X=t.replace(ue,(...ae)=>{if(ae[0].length===0)return"";let j=ae,ve=ae[ae.length-1];return typeof ve=="object"&&ve!==null?(j.groups=ve,j.input=ae[ae.length-2],j.index=ae[ae.length-3]):(j.input=ae[ae.length-1],j.index=ae[ae.length-2]),Wf(g,j)}));let Ee=o?`${o}:`:"";d&&(Ee+=`${T+(ee?ee.index:0)}:`),s&&(Ee+=`${L+1}:`),h&&(Ee+=`${H}:`),N.push(Ee+X)}T+=ue.length+1}return{output:N.length>0?`${N.join(`
|
|
178
178
|
`)}
|
|
179
|
-
`:"",matched:P,matchCount:v}}if(w){let N=[],P=!1,v=0;for(let T=0;T<$;T++){let L=x[T];t.lastIndex=0;let re=t.test(L)!==r;re&&(P=!0,v++);let
|
|
179
|
+
`:"",matched:P,matchCount:v}}if(w){let N=[],P=!1,v=0;for(let T=0;T<$;T++){let L=x[T];t.lastIndex=0;let re=t.test(L)!==r;re&&(P=!0,v++);let ee=re?":":"-",H=o?`${o}${ee}`:"";s&&(H+=`${T+1}${ee}`),N.push(H+L)}return{output:N.length>0?`${N.join(`
|
|
180
180
|
`)}
|
|
181
|
-
`:"",matched:P,matchCount:v}}let O=[],F=0,R=new Set,z=-1,k=[];for(let N=0;N<$&&!(f>0&&F>=f);N++)t.lastIndex=0,t.test(x[N])!==r&&(k.push(N),F++);for(let N of k){let P=Math.max(0,N-c);z>=0&&P>z+1&&O.push(p);for(let T=P;T<N;T++)if(!R.has(T)){R.add(T),z=T;let L=x[T];s&&(L=`${T+1}-${L}`),o&&(L=`${o}-${L}`),O.push(L)}if(!R.has(N)){R.add(N),z=N;let T=x[N];if(l){t.lastIndex=0;for(let L=t.exec(T);L!==null;L=t.exec(T)){let ue=b!==void 0?L[b]??"":L[0],re=g!==null?g:ue,
|
|
181
|
+
`:"",matched:P,matchCount:v}}let O=[],F=0,R=new Set,z=-1,k=[];for(let N=0;N<$&&!(f>0&&F>=f);N++)t.lastIndex=0,t.test(x[N])!==r&&(k.push(N),F++);for(let N of k){let P=Math.max(0,N-c);z>=0&&P>z+1&&O.push(p);for(let T=P;T<N;T++)if(!R.has(T)){R.add(T),z=T;let L=x[T];s&&(L=`${T+1}-${L}`),o&&(L=`${o}-${L}`),O.push(L)}if(!R.has(N)){R.add(N),z=N;let T=x[N];if(l){t.lastIndex=0;for(let L=t.exec(T);L!==null;L=t.exec(T)){let ue=b!==void 0?L[b]??"":L[0],re=g!==null?g:ue,ee=o?`${o}:`:"";s&&(ee+=`${N+1}:`),h&&(ee+=`${L.index+1}:`),O.push(ee+re),L[0].length===0&&t.lastIndex++}}else{let L=T;s&&(L=`${N+1}:${L}`),o&&(L=`${o}:${L}`),O.push(L)}}let v=Math.min($-1,N+u);for(let T=N+1;T<=v;T++)if(!R.has(T)){R.add(T),z=T;let L=x[T];s&&(L=`${T+1}-${L}`),o&&(L=`${o}-${L}`),O.push(L)}}return{output:O.length>0?`${O.join(`
|
|
182
182
|
`)}
|
|
183
183
|
`:"",matched:F>0,matchCount:F}}function Sy(e,t,n){let{invertMatch:r,showLineNumbers:s,countOnly:i,countMatches:a,filename:o,onlyMatching:l,beforeContext:c,afterContext:u,maxCount:f,contextSeparator:p,showColumn:h,showByteOffset:m,replace:d,kResetGroup:g}=n,w=e.split(`
|
|
184
184
|
`),y=w.length,b=y>0&&w[y-1]===""?y-1:y,x=[0];for(let k=0;k<e.length;k++)e[k]===`
|
|
@@ -194,7 +194,7 @@ Options:
|
|
|
194
194
|
`};let je=await t.fs.readFile(ve),et=Ar(je,z,{invertMatch:s,showLineNumbers:r,countOnly:i,filename:ue?ke:"",onlyMatching:m,beforeContext:y,afterContext:b,maxCount:w,kResetGroup:k});return{file:ke,result:et}}catch{return{error:`grep: ${ke}: No such file or directory
|
|
195
195
|
`}}}));for(let ae of Ee){if(ae===null)continue;if("error"in ae&&ae.error){P+=ae.error,ae.error.includes("Is a directory")||(T=!0);continue}if(!("file"in ae)||!ae.result)continue;let{file:ke,result:j}=ae;if(j.matched){if(v=!0,g)return{stdout:"",stderr:"",exitCode:0};a?N+=`${ke}
|
|
196
196
|
`:o||(N+=j.output)}else o?N+=`${ke}
|
|
197
|
-
`:i&&!a&&(N+=j.output)}}let
|
|
197
|
+
`:i&&!a&&(N+=j.output)}}let ee;return T?ee=2:o?ee=N.length>0?0:1:ee=v?0:1,g?{stdout:"",stderr:"",exitCode:ee}:{stdout:N,stderr:P,exitCode:ee}}};Fy={name:"fgrep",async execute(e,t){return oo.execute(["-F",...e],t)}},My={name:"egrep",async execute(e,t){return oo.execute(["-E",...e],t)}},Uy={name:"grep",flags:[{flag:"-E",type:"boolean"},{flag:"-F",type:"boolean"},{flag:"-P",type:"boolean"},{flag:"-i",type:"boolean"},{flag:"-v",type:"boolean"},{flag:"-w",type:"boolean"},{flag:"-x",type:"boolean"},{flag:"-c",type:"boolean"},{flag:"-l",type:"boolean"},{flag:"-L",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-h",type:"boolean"},{flag:"-o",type:"boolean"},{flag:"-q",type:"boolean"},{flag:"-r",type:"boolean"},{flag:"-m",type:"value",valueHint:"number"},{flag:"-A",type:"value",valueHint:"number"},{flag:"-B",type:"value",valueHint:"number"},{flag:"-C",type:"value",valueHint:"number"},{flag:"-e",type:"value",valueHint:"pattern"}],stdinType:"text",needsArgs:!0},Wy={name:"fgrep",flags:[],stdinType:"text",needsArgs:!0},By={name:"egrep",flags:[],stdinType:"text",needsArgs:!0}});function Gf(){let e=[];for(let[t,n]of Object.entries(Vf).sort()){let r=[];for(let s of n.extensions)r.push(`*${s}`);for(let s of n.globs)r.push(s);e.push(`${t}: ${r.join(", ")}`)}return`${e.join(`
|
|
198
198
|
`)}
|
|
199
199
|
`}var Vf,as,lo=I(()=>{"use strict";Me();Vf={js:{extensions:[".js",".mjs",".cjs",".jsx"],globs:[]},ts:{extensions:[".ts",".tsx",".mts",".cts"],globs:[]},html:{extensions:[".html",".htm",".xhtml"],globs:[]},css:{extensions:[".css",".scss",".sass",".less"],globs:[]},json:{extensions:[".json",".jsonc",".json5"],globs:[]},xml:{extensions:[".xml",".xsl",".xslt"],globs:[]},c:{extensions:[".c",".h"],globs:[]},cpp:{extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx",".h"],globs:[]},rust:{extensions:[".rs"],globs:[]},go:{extensions:[".go"],globs:[]},zig:{extensions:[".zig"],globs:[]},java:{extensions:[".java"],globs:[]},kotlin:{extensions:[".kt",".kts"],globs:[]},scala:{extensions:[".scala",".sc"],globs:[]},clojure:{extensions:[".clj",".cljc",".cljs",".edn"],globs:[]},py:{extensions:[".py",".pyi",".pyw"],globs:[]},rb:{extensions:[".rb",".rake",".gemspec"],globs:["Rakefile","Gemfile"]},php:{extensions:[".php",".phtml",".php3",".php4",".php5"],globs:[]},perl:{extensions:[".pl",".pm",".pod",".t"],globs:[]},lua:{extensions:[".lua"],globs:[]},sh:{extensions:[".sh",".bash",".zsh",".fish"],globs:[".bashrc",".zshrc",".profile"]},bat:{extensions:[".bat",".cmd"],globs:[]},ps:{extensions:[".ps1",".psm1",".psd1"],globs:[]},yaml:{extensions:[".yaml",".yml"],globs:[]},toml:{extensions:[".toml"],globs:["Cargo.toml","pyproject.toml"]},ini:{extensions:[".ini",".cfg",".conf"],globs:[]},csv:{extensions:[".csv",".tsv"],globs:[]},md:{extensions:[".md",".mdx",".markdown",".mdown",".mkd"],globs:[]},markdown:{extensions:[".md",".mdx",".markdown",".mdown",".mkd"],globs:[]},rst:{extensions:[".rst"],globs:[]},txt:{extensions:[".txt",".text"],globs:[]},tex:{extensions:[".tex",".ltx",".sty",".cls"],globs:[]},sql:{extensions:[".sql"],globs:[]},graphql:{extensions:[".graphql",".gql"],globs:[]},proto:{extensions:[".proto"],globs:[]},make:{extensions:[".mk",".mak"],globs:["Makefile","GNUmakefile","makefile"]},docker:{extensions:[],globs:["Dockerfile","Dockerfile.*","*.dockerfile"]},tf:{extensions:[".tf",".tfvars"],globs:[]}},as=class{types;constructor(){this.types=new Map(Object.entries(Vf).map(([t,n])=>[t,{extensions:[...n.extensions],globs:[...n.globs]}]))}addType(t){let n=t.indexOf(":");if(n===-1)return;let r=t.slice(0,n),s=t.slice(n+1);if(s.startsWith("include:")){let i=s.slice(8),a=this.types.get(i);if(a){let o=this.types.get(r)||{extensions:[],globs:[]};o.extensions.push(...a.extensions),o.globs.push(...a.globs),this.types.set(r,o)}}else{let i=this.types.get(r)||{extensions:[],globs:[]};if(s.startsWith("*.")&&!s.slice(2).includes("*")){let a=s.slice(1);i.extensions.includes(a)||i.extensions.push(a)}else i.globs.includes(s)||i.globs.push(s);this.types.set(r,i)}}clearType(t){let n=this.types.get(t);n&&(n.extensions=[],n.globs=[])}getType(t){return this.types.get(t)}getAllTypes(){return this.types}matchesType(t,n){let r=t.toLowerCase();for(let s of n){if(s==="all"){if(this.matchesAnyType(t))return!0;continue}let i=this.types.get(s);if(i){for(let a of i.extensions)if(r.endsWith(a))return!0;for(let a of i.globs)if(a.includes("*")){let o=a.replace(/\./g,"\\.").replace(/\*/g,".*");if(G(`^${o}$`,"i").test(t))return!0}else if(r===a.toLowerCase())return!0}}return!1}matchesAnyType(t){let n=t.toLowerCase();for(let r of this.types.values()){for(let s of r.extensions)if(n.endsWith(s))return!0;for(let s of r.globs)if(s.includes("*")){let i=s.replace(/\./g,"\\.").replace(/\*/g,".*");if(G(`^${i}$`,"i").test(t))return!0}else if(n===s.toLowerCase())return!0}return!1}}});function qf(){return{ignoreCase:!1,caseSensitive:!1,smartCase:!0,fixedStrings:!1,wordRegexp:!1,lineRegexp:!1,invertMatch:!1,multiline:!1,multilineDotall:!1,patterns:[],patternFiles:[],count:!1,countMatches:!1,files:!1,filesWithMatches:!1,filesWithoutMatch:!1,stats:!1,onlyMatching:!1,maxCount:0,lineNumber:!0,noFilename:!1,withFilename:!1,nullSeparator:!1,byteOffset:!1,column:!1,vimgrep:!1,replace:null,afterContext:0,beforeContext:0,contextSeparator:"--",quiet:!1,heading:!1,passthru:!1,includeZero:!1,sort:"path",json:!1,globs:[],iglobs:[],globCaseInsensitive:!1,types:[],typesNot:[],typeAdd:[],typeClear:[],hidden:!1,noIgnore:!1,noIgnoreDot:!1,noIgnoreVcs:!1,ignoreFiles:[],maxDepth:1/0,maxFilesize:0,followSymlinks:!1,searchZip:!1,searchBinary:!1,preprocessor:null,preprocessorGlobs:[]}}var Zf=I(()=>{"use strict"});function zy(e){let t=e.match(/^(\d+)([KMG])?$/i);if(!t)return 0;let n=parseInt(t[1],10);switch((t[2]||"").toUpperCase()){case"K":return n*1024;case"M":return n*1024*1024;case"G":return n*1024*1024*1024;default:return n}}function Hy(e){return/^\d+[KMG]?$/i.test(e)?null:{stdout:"",stderr:`rg: invalid --max-filesize value: ${e}
|
|
200
200
|
`,exitCode:1}}function Kf(e){return null}function Gy(e){e.hidden?e.searchBinary=!0:e.noIgnore?e.hidden=!0:e.noIgnore=!0}function qy(e,t,n){let r=e[t];for(let s of Qf){if(r.startsWith(`--${s.long}=`)){let i=r.slice(`--${s.long}=`.length),a=ii(n,s,i);return a?{newIndex:t,error:a}:{newIndex:t}}if(s.short&&r.startsWith(`-${s.short}`)&&r.length>2){let i=r.slice(2),a=ii(n,s,i);return a?{newIndex:t,error:a}:{newIndex:t}}if(s.short&&r===`-${s.short}`||r===`--${s.long}`){if(t+1>=e.length)return null;let i=e[t+1],a=ii(n,s,i);return a?{newIndex:t+1,error:a}:{newIndex:t+1}}}return null}function Zy(e){return Qf.find(t=>t.short===e)}function ii(e,t,n){if(t.validate){let s=t.validate(n);if(s)return s}let r=t.parse?t.parse(n):n;t.multi?e[t.target].push(r):e[t.target]=r}function Ky(e,t){let n=e[t];if(n==="--sort"&&t+1<e.length){let r=e[t+1];if(r==="path"||r==="none")return{value:r,newIndex:t+1}}if(n.startsWith("--sort=")){let r=n.slice(7);if(r==="path"||r==="none")return{value:r,newIndex:t}}return null}function Qy(e,t){let n=e[t],r=n.match(/^-([ABC])(\d+)$/);return r?{flag:r[1],value:parseInt(r[2],10),newIndex:t}:(n==="-A"||n==="-B"||n==="-C")&&t+1<e.length?{flag:n[1],value:parseInt(e[t+1],10),newIndex:t+1}:null}function Xy(e){let t=e.match(/^-m(\d+)$/);return t?parseInt(t[1],10):null}function Xf(e){let t=qf(),n=null,r=[],s=-1,i=-1,a=-1,o=!1;for(let l=0;l<e.length;l++){let c=e[l];if(c.startsWith("-")&&c!=="-"){let u=Qy(e,l);if(u){let{flag:g,value:w,newIndex:y}=u;g==="A"?s=Math.max(s,w):g==="B"?i=Math.max(i,w):a=w,l=y;continue}let f=Xy(c);if(f!==null){t.maxCount=f;continue}let p=qy(e,l,t);if(p){if(p.error)return{success:!1,error:p.error};l=p.newIndex;continue}let h=Ky(e,l);if(h){t.sort=h.value,l=h.newIndex;continue}let m=c.startsWith("--")?[c]:c.slice(1).split(""),d=!1;for(let g of m){if(Vy.has(g)){t.lineNumber=!0,o=!0;continue}if(g==="u"||g==="--unrestricted"){Gy(t);continue}if(g==="P"||g==="--pcre2")return{success:!1,error:{stdout:"",stderr:`rg: PCRE2 is not supported. Use standard regex syntax instead.
|
|
@@ -237,40 +237,40 @@ ${t.holdSpace}`;break;case"exchange":{let i=t.patternSpace;t.patternSpace=t.hold
|
|
|
237
237
|
`});break;case"writeFirstLine":{let i=t.patternSpace.indexOf(`
|
|
238
238
|
`),a=i!==-1?t.patternSpace.slice(0,i):t.patternSpace;t.pendingFileWrites.push({filename:e.filename,content:`${a}
|
|
239
239
|
`});break}case"execute":e.command?t.pendingExecute={command:e.command,replacePattern:!1}:t.pendingExecute={command:t.patternSpace,replacePattern:!0};break;case"transliterate":t.patternSpace=g4(t.patternSpace,e);break;case"lineNumber":t.lineNumberOutput.push(String(t.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function g4(e,t){let n="";for(let r of e){let s=t.source.indexOf(r);s!==-1?n+=t.dest[s]:n+=r}return n}function go(e,t,n,r){let s=new Map;for(let l=0;l<e.length;l++){let c=e[l];c.type==="label"&&s.set(c.name,l)}let i=r?.maxIterations??u4,a=0,o=0;for(;o<e.length;){if(a++,a>i)throw new te(`sed: command execution exceeded maximum iterations (${i})`,"iterations");if(t.deleted||t.quit||t.quitSilent||t.restartCycle)break;let l=e[o];if(l.type==="next"){if(Kn(l.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t))if(t.coverage?.hit("sed:cmd:next"),t.nCommandOutput.push(t.patternSpace),n&&n.currentLineIndex+t.linesConsumedInCycle+1<n.lines.length){t.linesConsumedInCycle++;let c=n.lines[n.currentLineIndex+t.linesConsumedInCycle];t.patternSpace=c,t.lineNumber=n.currentLineIndex+t.linesConsumedInCycle+1,t.substitutionMade=!1}else{t.quit=!0,t.deleted=!0;break}o++;continue}if(l.type==="nextAppend"){if(Kn(l.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t))if(t.coverage?.hit("sed:cmd:nextAppend"),n&&n.currentLineIndex+t.linesConsumedInCycle+1<n.lines.length){t.linesConsumedInCycle++;let c=n.lines[n.currentLineIndex+t.linesConsumedInCycle];t.patternSpace+=`
|
|
240
|
-
${c}`,t.lineNumber=n.currentLineIndex+t.linesConsumedInCycle+1}else{t.quit=!0;break}o++;continue}if(l.type==="branch"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)){if(t.coverage?.hit("sed:cmd:branch"),c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="branchOnSubst"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:branchOnSubst"),t.substitutionMade)){if(t.substitutionMade=!1,c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="branchOnNoSubst"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:branchOnNoSubst"),!t.substitutionMade)){if(c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="group"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:group"),go(c.commands,t,n,r),t.branchRequest)){let u=s.get(t.branchRequest);if(u!==void 0){t.branchRequest=void 0,o=u;continue}break}o++;continue}m4(l,t),o++}return t.linesConsumedInCycle}var u4,u1=I(()=>{"use strict";ye();Me();l1();u4=1e4});var
|
|
240
|
+
${c}`,t.lineNumber=n.currentLineIndex+t.linesConsumedInCycle+1}else{t.quit=!0;break}o++;continue}if(l.type==="branch"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)){if(t.coverage?.hit("sed:cmd:branch"),c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="branchOnSubst"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:branchOnSubst"),t.substitutionMade)){if(t.substitutionMade=!1,c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="branchOnNoSubst"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:branchOnNoSubst"),!t.substitutionMade)){if(c.label){let u=s.get(c.label);if(u!==void 0){o=u;continue}t.branchRequest=c.label;break}break}o++;continue}if(l.type==="group"){let c=l;if(Kn(c.address,t.lineNumber,t.totalLines,t.patternSpace,t.rangeStates,t)&&(t.coverage?.hit("sed:cmd:group"),go(c.commands,t,n,r),t.branchRequest)){let u=s.get(t.branchRequest);if(u!==void 0){t.branchRequest=void 0,o=u;continue}break}o++;continue}m4(l,t),o++}return t.linesConsumedInCycle}var u4,u1=I(()=>{"use strict";ye();Me();l1();u4=1e4});var J,ai,f1=I(()=>{"use strict";(function(e){e.NUMBER="NUMBER",e.DOLLAR="DOLLAR",e.PATTERN="PATTERN",e.STEP="STEP",e.RELATIVE_OFFSET="RELATIVE_OFFSET",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.SEMICOLON="SEMICOLON",e.NEWLINE="NEWLINE",e.COMMA="COMMA",e.NEGATION="NEGATION",e.COMMAND="COMMAND",e.SUBSTITUTE="SUBSTITUTE",e.TRANSLITERATE="TRANSLITERATE",e.LABEL_DEF="LABEL_DEF",e.BRANCH="BRANCH",e.BRANCH_ON_SUBST="BRANCH_ON_SUBST",e.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",e.TEXT_CMD="TEXT_CMD",e.FILE_READ="FILE_READ",e.FILE_READ_LINE="FILE_READ_LINE",e.FILE_WRITE="FILE_WRITE",e.FILE_WRITE_LINE="FILE_WRITE_LINE",e.EXECUTE="EXECUTE",e.VERSION="VERSION",e.EOF="EOF",e.ERROR="ERROR"})(J||(J={}));ai=class{input;pos=0;line=1;column=1;constructor(t){this.input=t}tokenize(){let t=[];for(;this.pos<this.input.length;){let n=this.nextToken();n&&t.push(n)}return t.push(this.makeToken(J.EOF,"")),t}makeToken(t,n,r){return{type:t,value:n,line:this.line,column:this.column,...r}}peek(t=0){return this.input[this.pos+t]||""}advance(){let t=this.input[this.pos++]||"";return t===`
|
|
241
241
|
`?(this.line++,this.column=1):this.column++,t}readEscapedString(t){let n="";for(;this.pos<this.input.length&&this.peek()!==t;)if(this.peek()==="\\"){this.advance();let r=this.advance();r==="n"?n+=`
|
|
242
242
|
`:r==="t"?n+=" ":n+=r}else{if(this.peek()===`
|
|
243
243
|
`)return null;n+=this.advance()}return n}skipWhitespace(){for(;this.pos<this.input.length;){let t=this.peek();if(t===" "||t===" "||t==="\r")this.advance();else if(t==="#")for(;this.pos<this.input.length&&this.peek()!==`
|
|
244
244
|
`;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let t=this.line,n=this.column,r=this.peek();return r===`
|
|
245
|
-
`?(this.advance(),{type:
|
|
246
|
-
`,line:t,column:n}):r===";"?(this.advance(),{type:
|
|
245
|
+
`?(this.advance(),{type:J.NEWLINE,value:`
|
|
246
|
+
`,line:t,column:n}):r===";"?(this.advance(),{type:J.SEMICOLON,value:";",line:t,column:n}):r==="{"?(this.advance(),{type:J.LBRACE,value:"{",line:t,column:n}):r==="}"?(this.advance(),{type:J.RBRACE,value:"}",line:t,column:n}):r===","?(this.advance(),{type:J.COMMA,value:",",line:t,column:n}):r==="!"?(this.advance(),{type:J.NEGATION,value:"!",line:t,column:n}):r==="$"?(this.advance(),{type:J.DOLLAR,value:"$",line:t,column:n}):this.isDigit(r)?this.readNumber():r==="+"&&this.isDigit(this.input[this.pos+1]||"")?this.readRelativeOffset():r==="/"?this.readPattern():r===":"?this.readLabelDef():this.readCommand()}readNumber(){let t=this.line,n=this.column,r="";for(;this.isDigit(this.peek());)r+=this.advance();if(this.peek()==="~"){this.advance();let s="";for(;this.isDigit(this.peek());)s+=this.advance();let i=parseInt(r,10),a=parseInt(s,10)||0;return{type:J.STEP,value:`${i}~${a}`,first:i,step:a,line:t,column:n}}return{type:J.NUMBER,value:parseInt(r,10),line:t,column:n}}readRelativeOffset(){let t=this.line,n=this.column;this.advance();let r="";for(;this.isDigit(this.peek());)r+=this.advance();let s=parseInt(r,10)||0;return{type:J.RELATIVE_OFFSET,value:`+${s}`,offset:s,line:t,column:n}}readPattern(){let t=this.line,n=this.column;this.advance();let r="",s=!1;for(;this.pos<this.input.length;){let i=this.peek();if(i==="/"&&!s)break;if(i==="\\")r+=this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
247
247
|
`&&(r+=this.advance());else{if(i===`
|
|
248
|
-
`)break;i==="["&&!s?(s=!0,r+=this.advance(),this.peek()==="^"&&(r+=this.advance()),this.peek()==="]"&&(r+=this.advance())):i==="]"&&s?(s=!1,r+=this.advance()):r+=this.advance()}}return this.peek()==="/"&&this.advance(),{type:
|
|
249
|
-
`||s===";"||s==="}"||s==="{")break;r+=this.advance()}return{type:
|
|
250
|
-
`)return{type:
|
|
248
|
+
`)break;i==="["&&!s?(s=!0,r+=this.advance(),this.peek()==="^"&&(r+=this.advance()),this.peek()==="]"&&(r+=this.advance())):i==="]"&&s?(s=!1,r+=this.advance()):r+=this.advance()}}return this.peek()==="/"&&this.advance(),{type:J.PATTERN,value:r,pattern:r,line:t,column:n}}readLabelDef(){let t=this.line,n=this.column;for(this.advance();this.peek()===" "||this.peek()===" ";)this.advance();let r="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
|
|
249
|
+
`||s===";"||s==="}"||s==="{")break;r+=this.advance()}return{type:J.LABEL_DEF,value:r,label:r,line:t,column:n}}readCommand(){let t=this.line,n=this.column,r=this.advance();switch(r){case"s":return this.readSubstitute(t,n);case"y":return this.readTransliterate(t,n);case"a":case"i":case"c":return this.readTextCommand(r,t,n);case"b":return this.readBranch(J.BRANCH,"b",t,n);case"t":return this.readBranch(J.BRANCH_ON_SUBST,"t",t,n);case"T":return this.readBranch(J.BRANCH_ON_NO_SUBST,"T",t,n);case"r":return this.readFileCommand(J.FILE_READ,"r",t,n);case"R":return this.readFileCommand(J.FILE_READ_LINE,"R",t,n);case"w":return this.readFileCommand(J.FILE_WRITE,"w",t,n);case"W":return this.readFileCommand(J.FILE_WRITE_LINE,"W",t,n);case"e":return this.readExecute(t,n);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:J.COMMAND,value:r,line:t,column:n};case"v":return this.readVersion(t,n);default:return{type:J.ERROR,value:r,line:t,column:n}}}readSubstitute(t,n){let r=this.advance();if(!r||r===`
|
|
250
|
+
`)return{type:J.ERROR,value:"s",line:t,column:n};let s="",i=!1;for(;this.pos<this.input.length;){let l=this.peek();if(l===r&&!i)break;if(l==="\\")this.advance(),this.pos<this.input.length&&this.peek()!==`
|
|
251
251
|
`?this.peek()===r&&!i?s+=this.advance():(s+="\\",s+=this.advance()):s+="\\";else{if(l===`
|
|
252
|
-
`)break;l==="["&&!i?(i=!0,s+=this.advance(),this.peek()==="^"&&(s+=this.advance()),this.peek()==="]"&&(s+=this.advance())):l==="]"&&i?(i=!1,s+=this.advance()):s+=this.advance()}}if(this.peek()!==r)return{type:
|
|
252
|
+
`)break;l==="["&&!i?(i=!0,s+=this.advance(),this.peek()==="^"&&(s+=this.advance()),this.peek()==="]"&&(s+=this.advance())):l==="]"&&i?(i=!1,s+=this.advance()):s+=this.advance()}}if(this.peek()!==r)return{type:J.ERROR,value:"unterminated substitution pattern",line:t,column:n};this.advance();let a="";for(;this.pos<this.input.length&&this.peek()!==r;)if(this.peek()==="\\")if(this.advance(),this.pos<this.input.length){let l=this.peek();l==="\\"?(this.advance(),this.pos<this.input.length&&this.peek()===`
|
|
253
253
|
`?(a+=`
|
|
254
254
|
`,this.advance()):a+="\\"):l===`
|
|
255
255
|
`?(a+=`
|
|
256
256
|
`,this.advance()):a+=`\\${this.advance()}`}else a+="\\";else{if(this.peek()===`
|
|
257
|
-
`)break;a+=this.advance()}this.peek()===r&&this.advance();let o="";for(;this.pos<this.input.length;){let l=this.peek();if(l==="g"||l==="i"||l==="p"||l==="I"||this.isDigit(l))o+=this.advance();else break}return{type:
|
|
258
|
-
`)return{type:
|
|
259
|
-
`&&a!=="}"?{type:
|
|
257
|
+
`)break;a+=this.advance()}this.peek()===r&&this.advance();let o="";for(;this.pos<this.input.length;){let l=this.peek();if(l==="g"||l==="i"||l==="p"||l==="I"||this.isDigit(l))o+=this.advance();else break}return{type:J.SUBSTITUTE,value:`s${r}${s}${r}${a}${r}${o}`,pattern:s,replacement:a,flags:o,line:t,column:n}}readTransliterate(t,n){let r=this.advance();if(!r||r===`
|
|
258
|
+
`)return{type:J.ERROR,value:"y",line:t,column:n};let s=this.readEscapedString(r);if(s===null||this.peek()!==r)return{type:J.ERROR,value:"unterminated transliteration source",line:t,column:n};this.advance();let i=this.readEscapedString(r);if(i===null||this.peek()!==r)return{type:J.ERROR,value:"unterminated transliteration dest",line:t,column:n};this.advance();let a=this.peek();for(;a===" "||a===" ";)this.advance(),a=this.peek();return a!==""&&a!==";"&&a!==`
|
|
259
|
+
`&&a!=="}"?{type:J.ERROR,value:"extra text at the end of a transform command",line:t,column:n}:{type:J.TRANSLITERATE,value:`y${r}${s}${r}${i}${r}`,source:s,dest:i,line:t,column:n}}readTextCommand(t,n,r){let s=!1;this.peek()==="\\"&&this.pos+1<this.input.length&&(this.input[this.pos+1]===`
|
|
260
260
|
`||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()===`
|
|
261
261
|
`&&this.advance();let i="";for(;this.pos<this.input.length;){let a=this.peek();if(a===`
|
|
262
262
|
`){if(i.endsWith("\\")){i=`${i.slice(0,-1)}
|
|
263
263
|
`,this.advance();continue}break}if(a==="\\"&&this.pos+1<this.input.length){let o=this.input[this.pos+1];if(o==="n"){i+=`
|
|
264
|
-
`,this.advance(),this.advance();continue}if(o==="t"){i+=" ",this.advance(),this.advance();continue}if(o==="r"){i+="\r",this.advance(),this.advance();continue}}i+=this.advance()}return{type:
|
|
264
|
+
`,this.advance(),this.advance();continue}if(o==="t"){i+=" ",this.advance(),this.advance();continue}if(o==="r"){i+="\r",this.advance(),this.advance();continue}}i+=this.advance()}return{type:J.TEXT_CMD,value:t,text:i,line:n,column:r}}readBranch(t,n,r,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let a=this.peek();if(a===" "||a===" "||a===`
|
|
265
265
|
`||a===";"||a==="}"||a==="{")break;i+=this.advance()}return{type:t,value:n,label:i||void 0,line:r,column:s}}readVersion(t,n){for(;this.peek()===" "||this.peek()===" ";)this.advance();let r="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
|
|
266
|
-
`||s===";"||s==="}"||s==="{")break;r+=this.advance()}return{type:
|
|
266
|
+
`||s===";"||s==="}"||s==="{")break;r+=this.advance()}return{type:J.VERSION,value:"v",label:r||void 0,line:t,column:n}}readFileCommand(t,n,r,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let a=this.peek();if(a===`
|
|
267
267
|
`||a===";")break;i+=this.advance()}return{type:t,value:n,filename:i.trim(),line:r,column:s}}readExecute(t,n){for(;this.peek()===" "||this.peek()===" ";)this.advance();let r="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
|
|
268
|
-
`||s===";")break;r+=this.advance()}return{type:
|
|
268
|
+
`||s===";")break;r+=this.advance()}return{type:J.EXECUTE,value:"e",command:r.trim()||void 0,line:t,column:n}}isDigit(t){return t>="0"&&t<="9"}}});function p1(e,t=!1){let n=!1,r=!1,s=[];for(let l=0;l<e.length;l++){let c=e[l];if(s.length===0&&l===0){let u=c.match(/^#([nr]+)\s*(?:\n|$)/i);if(u){let f=u[1].toLowerCase();f.includes("n")&&(n=!0),f.includes("r")&&(r=!0),c=c.slice(u[0].length)}}if(s.length>0&&s[s.length-1].endsWith("\\")){let u=s[s.length-1];s[s.length-1]=`${u}
|
|
269
269
|
${c}`}else s.push(c)}let i=s.join(`
|
|
270
|
-
`),o=new yo([i],t||r).parse();if(!o.error&&o.commands.length>0){let l=y4(o.commands);if(l)return{commands:[],error:l,silentMode:n,extendedRegexMode:r}}return{...o,silentMode:n,extendedRegexMode:r}}function y4(e){let t=new Set;h1(e,t);let n=d1(e,t);if(n)return`undefined label '${n}'`}function h1(e,t){for(let n of e)n.type==="label"?t.add(n.name):n.type==="group"&&h1(n.commands,t)}function d1(e,t){for(let n of e){if((n.type==="branch"||n.type==="branchOnSubst"||n.type==="branchOnNoSubst")&&n.label&&!t.has(n.label))return n.label;if(n.type==="group"){let r=d1(n.commands,t);if(r)return r}}}var yo,m1=I(()=>{"use strict";f1();yo=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(t,n=!1){this.scripts=t,this.extendedRegex=n}parse(){let t=[];for(let n of this.scripts){let r=new ai(n);for(this.tokens=r.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(
|
|
270
|
+
`),o=new yo([i],t||r).parse();if(!o.error&&o.commands.length>0){let l=y4(o.commands);if(l)return{commands:[],error:l,silentMode:n,extendedRegexMode:r}}return{...o,silentMode:n,extendedRegexMode:r}}function y4(e){let t=new Set;h1(e,t);let n=d1(e,t);if(n)return`undefined label '${n}'`}function h1(e,t){for(let n of e)n.type==="label"?t.add(n.name):n.type==="group"&&h1(n.commands,t)}function d1(e,t){for(let n of e){if((n.type==="branch"||n.type==="branchOnSubst"||n.type==="branchOnNoSubst")&&n.label&&!t.has(n.label))return n.label;if(n.type==="group"){let r=d1(n.commands,t);if(r)return r}}}var yo,m1=I(()=>{"use strict";f1();yo=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(t,n=!1){this.scripts=t,this.extendedRegex=n}parse(){let t=[];for(let n of this.scripts){let r=new ai(n);for(this.tokens=r.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(J.NEWLINE)||this.check(J.SEMICOLON)){this.advance();continue}let s=this.pos,i=this.parseCommand();if(i.error)return{commands:[],error:i.error};if(i.command&&t.push(i.command),this.pos===s&&!this.isAtEnd())return{commands:[],error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}}return{commands:t}}parseCommand(){let t=this.parseAddressRange();if(t?.error)return{command:null,error:t.error};let n=t?.address;for(this.check(J.NEGATION)&&(this.advance(),n&&(n.negated=!0));this.check(J.NEWLINE)||this.check(J.SEMICOLON);)this.advance();if(this.isAtEnd())return n&&(n.start!==void 0||n.end!==void 0)?{command:null,error:"command expected"}:{command:null};let r=this.peek();switch(r.type){case J.COMMAND:return this.parseSimpleCommand(r,n);case J.SUBSTITUTE:return this.parseSubstituteFromToken(r,n);case J.TRANSLITERATE:return this.parseTransliterateFromToken(r,n);case J.LABEL_DEF:return this.advance(),{command:{type:"label",name:r.label||""}};case J.BRANCH:return this.advance(),{command:{type:"branch",address:n,label:r.label}};case J.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:n,label:r.label}};case J.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:n,label:r.label}};case J.TEXT_CMD:return this.advance(),this.parseTextCommand(r,n);case J.FILE_READ:return this.advance(),{command:{type:"readFile",address:n,filename:r.filename||""}};case J.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:n,filename:r.filename||""}};case J.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:n,filename:r.filename||""}};case J.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:n,filename:r.filename||""}};case J.EXECUTE:return this.advance(),{command:{type:"execute",address:n,command:r.command}};case J.VERSION:return this.advance(),{command:{type:"version",address:n,minVersion:r.label}};case J.LBRACE:return this.parseGroup(n);case J.RBRACE:return{command:null};case J.ERROR:return{command:null,error:`invalid command: ${r.value}`};default:return n&&(n.start!==void 0||n.end!==void 0)?{command:null,error:"command expected"}:{command:null}}}parseSimpleCommand(t,n){this.advance();let r=t.value;switch(r){case"p":return{command:{type:"print",address:n}};case"P":return{command:{type:"printFirstLine",address:n}};case"d":return{command:{type:"delete",address:n}};case"D":return{command:{type:"deleteFirstLine",address:n}};case"h":return{command:{type:"hold",address:n}};case"H":return{command:{type:"holdAppend",address:n}};case"g":return{command:{type:"get",address:n}};case"G":return{command:{type:"getAppend",address:n}};case"x":return{command:{type:"exchange",address:n}};case"n":return{command:{type:"next",address:n}};case"N":return{command:{type:"nextAppend",address:n}};case"q":return{command:{type:"quit",address:n}};case"Q":return{command:{type:"quitSilent",address:n}};case"z":return{command:{type:"zap",address:n}};case"=":return{command:{type:"lineNumber",address:n}};case"l":return{command:{type:"list",address:n}};case"F":return{command:{type:"printFilename",address:n}};default:return{command:null,error:`unknown command: ${r}`}}}parseSubstituteFromToken(t,n){this.advance();let r=t.flags||"",s,i=r.match(/(\d+)/);return i&&(s=parseInt(i[1],10)),{command:{type:"substitute",address:n,pattern:t.pattern||"",replacement:t.replacement||"",global:r.includes("g"),ignoreCase:r.includes("i")||r.includes("I"),printOnMatch:r.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(t,n){this.advance();let r=t.source||"",s=t.dest||"";return r.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:n,source:r,dest:s}}}parseTextCommand(t,n){let r=t.value,s=t.text||"";switch(r){case"a":return{command:{type:"append",address:n,text:s}};case"i":return{command:{type:"insert",address:n,text:s}};case"c":return{command:{type:"change",address:n,text:s}};default:return{command:null,error:`unknown text command: ${r}`}}}parseGroup(t){this.advance();let n=[];for(;!this.isAtEnd()&&!this.check(J.RBRACE);){if(this.check(J.NEWLINE)||this.check(J.SEMICOLON)){this.advance();continue}let r=this.pos,s=this.parseCommand();if(s.error)return{command:null,error:s.error};if(s.command&&n.push(s.command),this.pos===r&&!this.isAtEnd())return{command:null,error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}return this.check(J.RBRACE)?(this.advance(),{command:{type:"group",address:t,commands:n}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){if(this.check(J.COMMA))return{error:"expected context address"};let t=this.parseAddress();if(t===void 0)return;let n;if(this.check(J.RELATIVE_OFFSET))n={offset:this.advance().offset||0};else if(this.check(J.COMMA)&&(this.advance(),n=this.parseAddress(),n===void 0))return{error:"expected context address"};return{address:{start:t,end:n}}}parseAddress(){let t=this.peek();switch(t.type){case J.NUMBER:return this.advance(),t.value;case J.DOLLAR:return this.advance(),"$";case J.PATTERN:return this.advance(),{pattern:t.pattern||t.value};case J.STEP:return this.advance(),{first:t.first||0,step:t.step||0};case J.RELATIVE_OFFSET:return this.advance(),{offset:t.offset||0};default:return}}peek(){return this.tokens[this.pos]||{type:J.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(t){return this.peek().type===t}isAtEnd(){return this.peek().type===J.EOF}}});var g1={};K(g1,{flagsForFuzzing:()=>x4,sedCommand:()=>b4});async function wo(e,t,n,r={}){let{limits:s,filename:i,fs:a,cwd:o,coverage:l}=r,c=e.endsWith(`
|
|
271
271
|
`),u=e.split(`
|
|
272
|
-
`);u.length>0&&u[u.length-1]===""&&u.pop();let f=u.length,p="",h,m=!1,d=s?.maxStringLength??0,g=F=>{if(p+=F,d>0&&p.length>d)throw new te(`sed: output size limit exceeded (${d} bytes)`,"string_length")},w="",y,b=new Map,x=new Map,S=new Map,$=new Map,O=s?{maxIterations:s.maxSedIterations}:void 0;for(let F=0;F<u.length;F++){let R={...c1(f,i,b),patternSpace:u[F],holdSpace:w,lastPattern:y,lineNumber:F+1,totalLines:f,substitutionMade:!1,coverage:l},z={lines:u,currentLineIndex:F},k=0,N=1e4;R.linesConsumedInCycle=0;do{if(k++,k>N)break;if(R.restartCycle=!1,R.pendingFileReads=[],R.pendingFileWrites=[],go(t,R,z,O),a&&o){for(let re of R.pendingFileReads){let
|
|
273
|
-
`)),S.set(
|
|
272
|
+
`);u.length>0&&u[u.length-1]===""&&u.pop();let f=u.length,p="",h,m=!1,d=s?.maxStringLength??0,g=F=>{if(p+=F,d>0&&p.length>d)throw new te(`sed: output size limit exceeded (${d} bytes)`,"string_length")},w="",y,b=new Map,x=new Map,S=new Map,$=new Map,O=s?{maxIterations:s.maxSedIterations}:void 0;for(let F=0;F<u.length;F++){let R={...c1(f,i,b),patternSpace:u[F],holdSpace:w,lastPattern:y,lineNumber:F+1,totalLines:f,substitutionMade:!1,coverage:l},z={lines:u,currentLineIndex:F},k=0,N=1e4;R.linesConsumedInCycle=0;do{if(k++,k>N)break;if(R.restartCycle=!1,R.pendingFileReads=[],R.pendingFileWrites=[],go(t,R,z,O),a&&o){for(let re of R.pendingFileReads){let ee=a.resolvePath(o,re.filename);try{if(re.wholeFile){let H=await a.readFile(ee);R.appendBuffer.push(H.replace(/\n$/,""))}else{if(!x.has(ee)){let Ee=await a.readFile(ee);x.set(ee,Ee.split(`
|
|
273
|
+
`)),S.set(ee,0)}let H=x.get(ee),X=S.get(ee);H&&X!==void 0&&X<H.length&&(R.appendBuffer.push(H[X]),S.set(ee,X+1))}}catch{}}for(let re of R.pendingFileWrites){let ee=a.resolvePath(o,re.filename),H=$.get(ee)||"";$.set(ee,H+re.content)}}}while(R.restartCycle&&!R.deleted&&!R.quit&&!R.quitSilent);if(F+=R.linesConsumedInCycle,w=R.holdSpace,y=R.lastPattern,!n)for(let re of R.nCommandOutput)g(`${re}
|
|
274
274
|
`);let P=R.lineNumberOutput.length>0;for(let re of R.lineNumberOutput)g(`${re}
|
|
275
275
|
`);let v=[],T=[];for(let re of R.appendBuffer)re.startsWith("__INSERT__")?v.push(re.slice(10)):T.push(re);for(let re of v)g(`${re}
|
|
276
276
|
`);let L=!1;!R.deleted&&!R.quitSilent?n?R.printed&&(g(`${R.patternSpace}
|
|
@@ -494,7 +494,7 @@ Try 'comm --help' for more information.
|
|
|
494
494
|
`,o=1}return{stdout:i,stderr:a,exitCode:o}}},X8={name:"tee",flags:[{flag:"-a",type:"boolean"}],stdinType:"text",needsArgs:!0}});function Kt(e,t){switch(e.type){case"name":{let n=e.pattern,r=n.match(/^\*(\.[a-zA-Z0-9]+)$/);if(r){let s=r[1],i=t.name;if(e.ignoreCase){if(!i.toLowerCase().endsWith(s.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!i.endsWith(s))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:xt(t.name,n,e.ignoreCase),pruned:!1,printed:!1}}case"path":{let n=e.pattern,r=t.relativePath,s=n.split("/");for(let a=0;a<s.length-1;a++){let o=s[a];if(o&&o!=="."&&o!==".."&&!o.includes("*")&&!o.includes("?")&&!o.includes("[")){let l=`/${o}/`;if(e.ignoreCase){if(!r.toLowerCase().includes(l.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.includes(l))return{matches:!1,pruned:!1,printed:!1}}}let i=n.match(/\*(\.[a-zA-Z0-9]+)$/);if(i){let a=i[1];if(e.ignoreCase){if(!r.toLowerCase().endsWith(a.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!r.endsWith(a))return{matches:!1,pruned:!1,printed:!1}}return{matches:xt(r,n,e.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let n=e.ignoreCase?"i":"";return{matches:G(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=Kt(e.expr,t);return{matches:!n.matches,pruned:n.pruned,printed:!1}}case"and":{let n=Kt(e.left,t);if(!n.matches)return{matches:!1,pruned:n.pruned,printed:!1};let r=Kt(e.right,t);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:n.printed||r.printed}}case"or":{let n=Kt(e.left,t);if(n.matches)return n;let r=Kt(e.right,t);return{matches:r.matches,pruned:n.pruned||r.pruned,printed:r.printed}}}}function ps(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 ps(e.expr);case"and":case"or":return ps(e.left)||ps(e.right)}}function hs(e){if(!e)return!1;switch(e.type){case"empty":return!0;case"not":return hs(e.expr);case"and":case"or":return hs(e.left)||hs(e.right);default:return!1}}function qp(e){let t={terminalDirName:null,requiredExtension:null};if(!e)return t;let n=Y8(e);if(J8(e)&&n.length===1){let i=n[0].split("/").filter(a=>a.length>0);if(i.length>=2)for(let a=i.length-2;a>=0;a--){let o=i[a];if(!o.includes("*")&&!o.includes("?")&&!o.includes("[")&&o!=="."&&o!==".."){let l=i[a+1];if(l&&(l.includes("*")||l.includes("?"))){t.terminalDirName=o;let c=l.match(/^\*(\.[a-zA-Z0-9]+)$/);c&&(t.requiredExtension=c[1])}break}}}return t}function Y8(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 J8(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 Zp(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 ds(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 ds(e.expr);case"and":case"or":return ds(e.left)&&ds(e.right)}}function Yn(e,t,n,r,s){switch(e.type){case"name":{let i=e.pattern,a=i.match(/^\*(\.[a-zA-Z0-9]+)$/);if(a){let o=a[1];if(e.ignoreCase){if(!t.toLowerCase().endsWith(o.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!t.endsWith(o))return{matches:!1,pruned:!1,printed:!1};return{matches:!0,pruned:!1,printed:!1}}return{matches:xt(t,i,e.ignoreCase),pruned:!1,printed:!1}}case"path":{let i=e.pattern,a=i.split("/");for(let l=0;l<a.length-1;l++){let c=a[l];if(c&&c!=="."&&c!==".."&&!c.includes("*")&&!c.includes("?")&&!c.includes("[")){let u=`/${c}/`;if(e.ignoreCase){if(!n.toLowerCase().includes(u.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.includes(u))return{matches:!1,pruned:!1,printed:!1}}}let o=i.match(/\*(\.[a-zA-Z0-9]+)$/);if(o){let l=o[1];if(e.ignoreCase){if(!n.toLowerCase().endsWith(l.toLowerCase()))return{matches:!1,pruned:!1,printed:!1}}else if(!n.endsWith(l))return{matches:!1,pruned:!1,printed:!1}}return{matches:xt(n,i,e.ignoreCase),pruned:!1,printed:!1}}case"regex":try{let i=e.ignoreCase?"i":"";return{matches:G(e.pattern,i).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 i=Yn(e.expr,t,n,r,s);return{matches:!i.matches,pruned:i.pruned,printed:!1}}case"and":{let i=Yn(e.left,t,n,r,s);if(!i.matches)return{matches:!1,pruned:i.pruned,printed:!1};let a=Yn(e.right,t,n,r,s);return{matches:a.matches,pruned:i.pruned||a.pruned,printed:i.printed||a.printed}}case"or":{let i=Yn(e.left,t,n,r,s);if(i.matches)return i;let a=Yn(e.right,t,n,r,s);return{matches:a.matches,pruned:i.pruned||a.pruned,printed:a.printed}}default:return{matches:!1,pruned:!1,printed:!1}}}function ms(e){if(!e)return!1;switch(e.type){case"prune":return!0;case"not":return ms(e.expr);case"and":case"or":return ms(e.left)||ms(e.right);default:return!1}}function Dn(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 Dn(e.expr);case"and":case"or":return Dn(e.left)&&Dn(e.right)}}function Kp(e,t){if(!e||!t.isDirectory)return{shouldPrune:!1};if(!Dn(e))return Po(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:Kt(e,n).pruned}}function Po(e,t){switch(e.type){case"or":{if(Dn(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(Kt(e.left,n).pruned)return{shouldPrune:!0}}return Po(e.right,t)}case"and":{if(Dn(e.left)&&Dn(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:Kt(e,n).pruned}}if(Dn(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 Kt(e.left,n).matches?Po(e.right,t):{shouldPrune:!1}}return{shouldPrune:!1}}case"not":return{shouldPrune:!1};default:return{shouldPrune:!1}}}var Qp=I(()=>{"use strict";Me();so()});function Xp(e,t){let n=[],r=[],s=t;for(;s<e.length;){let a=e[s];if(a==="("||a==="\\("){n.push({type:"lparen"}),s++;continue}if(a===")"||a==="\\)"){n.push({type:"rparen"}),s++;continue}if(a==="-name"&&s+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++s]}});else if(a==="-iname"&&s+1<e.length)n.push({type:"expr",expr:{type:"name",pattern:e[++s],ignoreCase:!0}});else if(a==="-path"&&s+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++s]}});else if(a==="-ipath"&&s+1<e.length)n.push({type:"expr",expr:{type:"path",pattern:e[++s],ignoreCase:!0}});else if(a==="-regex"&&s+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++s]}});else if(a==="-iregex"&&s+1<e.length)n.push({type:"expr",expr:{type:"regex",pattern:e[++s],ignoreCase:!0}});else if(a==="-type"&&s+1<e.length){let o=e[++s];if(o==="f"||o==="d")n.push({type:"expr",expr:{type:"type",fileType:o}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${o}
|
|
495
495
|
`,actions:[]}}else if(a==="-empty")n.push({type:"expr",expr:{type:"empty"}});else if(a==="-mtime"&&s+1<e.length){let o=e[++s],l="exact",c=o;o.startsWith("+")?(l="more",c=o.slice(1)):o.startsWith("-")&&(l="less",c=o.slice(1));let u=parseInt(c,10);Number.isNaN(u)||n.push({type:"expr",expr:{type:"mtime",days:u,comparison:l}})}else if(a==="-newer"&&s+1<e.length){let o=e[++s];n.push({type:"expr",expr:{type:"newer",refPath:o}})}else if(a==="-size"&&s+1<e.length){let o=e[++s],l="exact",c=o;o.startsWith("+")?(l="more",c=o.slice(1)):o.startsWith("-")&&(l="less",c=o.slice(1));let u=c.match(/^(\d+)([ckMGb])?$/);if(u){let f=parseInt(u[1],10),p=u[2]||"b";n.push({type:"expr",expr:{type:"size",value:f,unit:p,comparison:l}})}}else if(a==="-perm"&&s+1<e.length){let o=e[++s],l="exact",c=o;o.startsWith("-")?(l="all",c=o.slice(1)):o.startsWith("/")&&(l="any",c=o.slice(1));let u=parseInt(c,8);Number.isNaN(u)||n.push({type:"expr",expr:{type:"perm",mode:u,matchType:l}})}else if(a==="-prune")n.push({type:"expr",expr:{type:"prune"}});else if(a==="-not"||a==="!")n.push({type:"not"});else if(a==="-o"||a==="-or")n.push({type:"op",op:"or"});else if(a==="-a"||a==="-and")n.push({type:"op",op:"and"});else if(a==="-maxdepth"||a==="-mindepth")s++;else if(a!=="-depth")if(a==="-exec"){let o=[];for(s++;s<e.length&&e[s]!==";"&&e[s]!=="+";)o.push(e[s]),s++;if(s>=e.length)return{expr:null,pathIndex:s,error:"find: missing argument to `-exec'\n",actions:[]};let l=e[s]==="+";r.push({type:"exec",command:o,batchMode:l})}else if(a==="-print")n.push({type:"expr",expr:{type:"print"}}),r.push({type:"print"});else if(a==="-print0")r.push({type:"print0"});else if(a==="-printf"&&s+1<e.length){let o=e[++s];r.push({type:"printf",format:o})}else if(a==="-delete")r.push({type:"delete"});else{if(a.startsWith("-"))return{expr:null,pathIndex:s,error:`find: unknown predicate '${a}'
|
|
496
496
|
`,actions:[]};if(n.length===0){s++;continue}break}s++}if(n.length===0)return{expr:null,pathIndex:s,actions:r};let i=e9(n);return i.error?{expr:null,pathIndex:s,error:i.error,actions:r}:{expr:i.expr,pathIndex:s,actions:r}}function e9(e){let t=0;function n(){let o=r();if(!o)return null;for(;t<e.length;){let l=e[t];if(l.type==="op"&&l.op==="or"){t++;let c=r();if(!c)return o;o={type:"or",left:o,right:c}}else break}return o}function r(){let o=s();if(!o)return null;for(;t<e.length;){let l=e[t];if(l.type==="op"&&l.op==="and"){t++;let c=s();if(!c)return o;o={type:"and",left:o,right:c}}else if(l.type==="expr"||l.type==="not"||l.type==="lparen"){let c=s();if(!c)return o;o={type:"and",left:o,right:c}}else break}return o}function s(){if(t<e.length&&e[t].type==="not"){t++;let o=s();return o?{type:"not",expr:o}:null}return i()}function i(){if(t>=e.length)return null;let o=e[t];if(o.type==="lparen"){t++;let l=n();return t<e.length&&e[t].type==="rparen"&&t++,l}return o.type==="expr"?(t++,o.expr):(o.type==="rparen",null)}return{expr:n()}}var Yp=I(()=>{"use strict"});var eh={};K(eh,{findCommand:()=>i9,flagsForFuzzing:()=>u9});function t9(){return{readdirCalls:0,readdirTime:0,statCalls:0,statTime:0,evalCalls:0,evalTime:0,nodeCount:0,batchCount:0,batchTime:0,earlyPrunes:0}}function n9(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}})}function a9(e,t){let n=qs(e),r="",s=0;for(;s<n.length;)if(n[s]==="%"&&s+1<n.length){if(s++,n[s]==="%"){r+="%",s++;continue}let[i,a,o]=Au(n,s);if(s+=o,s>=n.length){r+="%";break}let l=n[s],c;switch(l){case"f":c=t.name,s++;break;case"h":{let u=t.path.lastIndexOf("/");c=u>0?t.path.slice(0,u):".",s++;break}case"p":c=t.path,s++;break;case"P":{let u=t.startingPoint;t.path===u?c="":t.path.startsWith(`${u}/`)?c=t.path.slice(u.length+1):u==="."&&t.path.startsWith("./")?c=t.path.slice(2):c=t.path,s++;break}case"s":c=String(t.size),s++;break;case"d":c=String(t.depth),s++;break;case"m":c=(t.mode&511).toString(8),s++;break;case"M":c=o9(t.mode,t.isDirectory),s++;break;case"t":{let u=new Date(t.mtime);c=l9(u),s++;break}case"T":{if(s+1<n.length){let u=n[s+1],f=new Date(t.mtime);c=c9(f,u),s+=2}else c="%T",s++;break}default:r+=`%${i!==0||a!==-1?`${i}.${a}`:""}${l}`,s++;continue}r+=Gs(c,i,a)}else r+=n[s],s++;return r}function o9(e,t){let n=e&511,r=t?"d":"-";return r+=n&256?"r":"-",r+=n&128?"w":"-",r+=n&64?"x":"-",r+=n&32?"r":"-",r+=n&16?"w":"-",r+=n&8?"x":"-",r+=n&4?"r":"-",r+=n&2?"w":"-",r+=n&1?"x":"-",r}function l9(e){let t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=t[e.getDay()],s=n[e.getMonth()],i=String(e.getDate()).padStart(2," "),a=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0"),l=String(e.getSeconds()).padStart(2,"0"),c=e.getFullYear();return`${r} ${s} ${i} ${a}:${o}:${l} ${c}`}function c9(e,t){switch(t){case"@":return String(e.getTime()/1e3);case"Y":return String(e.getFullYear());case"m":return String(e.getMonth()+1).padStart(2,"0");case"d":return String(e.getDate()).padStart(2,"0");case"H":return String(e.getHours()).padStart(2,"0");case"M":return String(e.getMinutes()).padStart(2,"0");case"S":return String(e.getSeconds()).padStart(2,"0");case"T":return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`;case"F":return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;default:return`%T${t}`}}var Jp,r9,s9,i9,u9,th=I(()=>{"use strict";se();Ua();Qp();Yp();Jp=500;r9={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"]},s9=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),i9={name:"find",async execute(e,t){if(U(e))return M(r9);let n=[],r=null,s=null,i=!1,a=!1;for(let N=0;N<e.length;N++){let P=e[N];if(P==="-maxdepth"&&N+1<e.length)a=!0,r=parseInt(e[++N],10);else if(P==="-mindepth"&&N+1<e.length)a=!0,s=parseInt(e[++N],10);else if(P==="-depth")a=!0,i=!0;else if(P==="-exec")for(a=!0,N++;N<e.length&&e[N]!==";"&&e[N]!=="+";)N++;else!P.startsWith("-")&&P!==";"&&P!=="+"&&P!=="("&&P!==")"&&P!=="\\("&&P!=="\\)"&&P!=="!"?a||n.push(P):s9.has(P)?(a=!0,N++):(P.startsWith("-")||P==="("||P==="\\("||P==="!")&&(a=!0)}n.length===0&&n.push(".");let{expr:o,error:l,actions:c}=Xp(e,0);if(l)return{stdout:"",stderr:l,exitCode:1};let u=c.some(N=>N.type==="print"),f=c.length===0,p=[],h=c.some(N=>N.type==="printf"),m=[],d="",g=0,w=Zp(o),y=new Map;for(let N of w){let P=t.fs.resolvePath(t.cwd,N);try{let v=await t.fs.stat(P);y.set(N,v.mtime?.getTime()??Date.now())}catch{}}let b=c.some(N=>{if(N.type!=="printf")return!1;let P=N.format.replace(/%%/g,"");return/%[-+]?[0-9]*\.?[0-9]*(s|m|M|t|T)/.test(P)}),x=ps(o)||b,S=hs(o),$=qp(o),O=ms(o),F=ds(o),R=typeof t.fs.readdirWithFileTypes=="function";for(let N of n){let ue=function(H){let Ee=s===null||H.depth>=s,ae=!1;if(Ee&&o!==null){let j=Date.now(),ve;if(F)ve=Yn(o,H.name,H.relativePath,H.isFile,H.isDirectory);else{let Fe={name:H.name,relativePath:H.relativePath,isFile:H.isFile,isDirectory:H.isDirectory,isEmpty:H.isEmpty,mtime:H.stat?.mtime?.getTime()??Date.now(),size:H.stat?.size??0,mode:H.stat?.mode??420,newerRefTimes:y};ve=Kt(o,Fe)}Ee=ve.matches,ae=u?ve.printed:Ee,v.evalCalls++,v.evalTime+=Date.now()-j}else Ee&&(ae=!0);return ae?{print:!0,printfData:h?{path:H.relativePath,name:H.name,size:H.stat?.size??0,mtime:H.stat?.mtime?.getTime()??Date.now(),mode:H.stat?.mode??420,isDirectory:H.isDirectory,depth:H.depth,startingPoint:N}:null}:{print:!1,printfData:null}};var k=ue;N.length>1&&N.endsWith("/")&&(N=N.slice(0,-1));let P=t.fs.resolvePath(t.cwd,N);try{await t.fs.stat(P)}catch{d+=`find: ${N}: No such file or directory
|
|
497
|
-
`,g=1;continue}let v=t9(),T=Date.now();async function L(H){let{path:X,depth:Ee,typeInfo:ae}=H;if(v.nodeCount++,r!==null&&Ee>r)return null;let ke,j,ve;if(ae&&!x)ke=ae.isFile,j=ae.isDirectory;else{try{let Gn=Date.now();ve=await t.fs.stat(X),v.statCalls++,v.statTime+=Date.now()-Gn}catch{return null}if(!ve)return null;ke=ve.isFile,j=ve.isDirectory}let Fe;X===P?Fe=N.split("/").pop()||N:Fe=X.split("/").pop()||"";let je=X===P?N:N==="."?`./${X.slice(P==="/"?P.length:P.length+1)}`:N+X.slice(P.length),et=[],st=null,tt=null,nt=!1;j&&O&&!i&&(nt=Kp(o,{name:Fe,relativePath:je,isFile:ke,isDirectory:j}).shouldPrune,nt&&v.earlyPrunes++);let Ut=r!==null&&Ee>=r,Wt=$.terminalDirName!==null&&Fe===$.terminalDirName,ns=!Ut&&!Wt&&!nt;if(j&&((ns||S||Wt)&&!nt)){let Gn=Date.now();if(R&&t.fs.readdirWithFileTypes){if(st=await t.fs.readdirWithFileTypes(X),tt=st.map(vt=>vt.name),v.readdirCalls++,v.readdirTime+=Date.now()-Gn,ns)et=st.map((vt,Gt)=>({path:X==="/"?`/${vt.name}`:`${X}/${vt.name}`,depth:Ee+1,typeInfo:{isFile:vt.isFile,isDirectory:vt.isDirectory},resultIndex:Gt}));else if(Wt){let vt=$.requiredExtension;et=st.filter(Gt=>Gt.isFile&&(!vt||Gt.name.endsWith(vt))).map((Gt,H6)=>({path:X==="/"?`/${Gt.name}`:`${X}/${Gt.name}`,depth:Ee+1,typeInfo:{isFile:Gt.isFile,isDirectory:Gt.isDirectory},resultIndex:H6}))}}else tt=await t.fs.readdir(X),v.readdirCalls++,v.readdirTime+=Date.now()-Gn,ns&&(et=tt.map((vt,Gt)=>({path:X==="/"?`/${vt}`:`${X}/${vt}`,depth:Ee+1,resultIndex:Gt})))}let zs=ke?(ve?.size??0)===0:tt!==null&&tt.length===0,dr=nt;if(!i&&o!==null&&!nt&&O){let Gn=Date.now(),vt={name:Fe,relativePath:je,isFile:ke,isDirectory:j,isEmpty:zs,mtime:ve?.mtime?.getTime()??Date.now(),size:ve?.size??0,mode:ve?.mode??420,newerRefTimes:y};dr=Kt(o,vt).pruned,v.evalCalls++,v.evalTime+=Date.now()-Gn}return{relativePath:je,name:Fe,isFile:ke,isDirectory:j,isEmpty:zs,stat:ve,depth:Ee,children:dr?[]:et,pruned:dr}}async function re(){let H={paths:[],printfData:[]};if(i){let ve=function(Fe){let je={paths:[],printfData:[]},et=ae[Fe];if(!et)return je;for(let nt of et.childIndices){let Ut=ve(nt);je.paths.push(...Ut.paths),je.printfData.push(...Ut.printfData)}let{print:st,printfData:tt}=ue(et.node);return st&&(je.paths.push(et.node.relativePath),tt&&je.printfData.push(tt)),je};var X=ve;let ae=[],ke=[{item:{path:P,depth:0,resultIndex:0},parentIndex:-1,childOrderInParent:0}],j=new Map;for(;ke.length>0;){let Fe=Date.now(),je=ke.splice(0,Jp),et=await Promise.all(je.map(st=>L(st.item)));v.batchCount++,v.batchTime+=Date.now()-Fe;for(let st=0;st<je.length;st++){let tt=et[st],nt=je[st];if(!tt)continue;let Ut=ae.length;if(nt.parentIndex>=0){let Wt=j.get(nt.parentIndex)||[];Wt.push(Ut),j.set(nt.parentIndex,Wt)}ae.push({node:tt,parentIndex:nt.parentIndex,childIndices:[]});for(let Wt=0;Wt<tt.children.length;Wt++)ke.push({item:tt.children[Wt],parentIndex:Ut,childOrderInParent:Wt})}}for(let[Fe,je]of j)Fe>=0&&Fe<ae.length&&(ae[Fe].childIndices=je);if(ae.length>0){let Fe=ve(0);H.paths.push(...Fe.paths),H.printfData.push(...Fe.printfData)}}else{let Fe=function(je){let et=ae.get(je);et&&(H.paths.push(et.path),et.printfData&&H.printfData.push(et.printfData));let st=ve.get(je);if(st)for(let tt of st)Fe(tt)};var Ee=Fe;let ae=new Map,ke=0,j=[{item:{path:P,depth:0,resultIndex:0},orderIndex:ke++}],ve=new Map;for(;j.length>0;){let je=Date.now(),et=j.splice(0,Jp),st=await Promise.all(et.map(async({item:tt,orderIndex:nt})=>{let Ut=await L(tt);return Ut?{node:Ut,orderIndex:nt}:null}));v.batchCount++,v.batchTime+=Date.now()-je;for(let tt of st){if(!tt)continue;let{node:nt,orderIndex:Ut}=tt,{print:Wt,printfData:ns}=ue(nt);if(Wt&&ae.set(Ut,{path:nt.relativePath,printfData:ns}),nt.children.length>0){let Fa=[];for(let zs of nt.children){let dr=ke++;Fa.push(dr),j.push({item:zs,orderIndex:dr})}ve.set(Ut,Fa)}}}Fe(0)}return H}let
|
|
497
|
+
`,g=1;continue}let v=t9(),T=Date.now();async function L(H){let{path:X,depth:Ee,typeInfo:ae}=H;if(v.nodeCount++,r!==null&&Ee>r)return null;let ke,j,ve;if(ae&&!x)ke=ae.isFile,j=ae.isDirectory;else{try{let Gn=Date.now();ve=await t.fs.stat(X),v.statCalls++,v.statTime+=Date.now()-Gn}catch{return null}if(!ve)return null;ke=ve.isFile,j=ve.isDirectory}let Fe;X===P?Fe=N.split("/").pop()||N:Fe=X.split("/").pop()||"";let je=X===P?N:N==="."?`./${X.slice(P==="/"?P.length:P.length+1)}`:N+X.slice(P.length),et=[],st=null,tt=null,nt=!1;j&&O&&!i&&(nt=Kp(o,{name:Fe,relativePath:je,isFile:ke,isDirectory:j}).shouldPrune,nt&&v.earlyPrunes++);let Ut=r!==null&&Ee>=r,Wt=$.terminalDirName!==null&&Fe===$.terminalDirName,ns=!Ut&&!Wt&&!nt;if(j&&((ns||S||Wt)&&!nt)){let Gn=Date.now();if(R&&t.fs.readdirWithFileTypes){if(st=await t.fs.readdirWithFileTypes(X),tt=st.map(vt=>vt.name),v.readdirCalls++,v.readdirTime+=Date.now()-Gn,ns)et=st.map((vt,Gt)=>({path:X==="/"?`/${vt.name}`:`${X}/${vt.name}`,depth:Ee+1,typeInfo:{isFile:vt.isFile,isDirectory:vt.isDirectory},resultIndex:Gt}));else if(Wt){let vt=$.requiredExtension;et=st.filter(Gt=>Gt.isFile&&(!vt||Gt.name.endsWith(vt))).map((Gt,H6)=>({path:X==="/"?`/${Gt.name}`:`${X}/${Gt.name}`,depth:Ee+1,typeInfo:{isFile:Gt.isFile,isDirectory:Gt.isDirectory},resultIndex:H6}))}}else tt=await t.fs.readdir(X),v.readdirCalls++,v.readdirTime+=Date.now()-Gn,ns&&(et=tt.map((vt,Gt)=>({path:X==="/"?`/${vt}`:`${X}/${vt}`,depth:Ee+1,resultIndex:Gt})))}let zs=ke?(ve?.size??0)===0:tt!==null&&tt.length===0,dr=nt;if(!i&&o!==null&&!nt&&O){let Gn=Date.now(),vt={name:Fe,relativePath:je,isFile:ke,isDirectory:j,isEmpty:zs,mtime:ve?.mtime?.getTime()??Date.now(),size:ve?.size??0,mode:ve?.mode??420,newerRefTimes:y};dr=Kt(o,vt).pruned,v.evalCalls++,v.evalTime+=Date.now()-Gn}return{relativePath:je,name:Fe,isFile:ke,isDirectory:j,isEmpty:zs,stat:ve,depth:Ee,children:dr?[]:et,pruned:dr}}async function re(){let H={paths:[],printfData:[]};if(i){let ve=function(Fe){let je={paths:[],printfData:[]},et=ae[Fe];if(!et)return je;for(let nt of et.childIndices){let Ut=ve(nt);je.paths.push(...Ut.paths),je.printfData.push(...Ut.printfData)}let{print:st,printfData:tt}=ue(et.node);return st&&(je.paths.push(et.node.relativePath),tt&&je.printfData.push(tt)),je};var X=ve;let ae=[],ke=[{item:{path:P,depth:0,resultIndex:0},parentIndex:-1,childOrderInParent:0}],j=new Map;for(;ke.length>0;){let Fe=Date.now(),je=ke.splice(0,Jp),et=await Promise.all(je.map(st=>L(st.item)));v.batchCount++,v.batchTime+=Date.now()-Fe;for(let st=0;st<je.length;st++){let tt=et[st],nt=je[st];if(!tt)continue;let Ut=ae.length;if(nt.parentIndex>=0){let Wt=j.get(nt.parentIndex)||[];Wt.push(Ut),j.set(nt.parentIndex,Wt)}ae.push({node:tt,parentIndex:nt.parentIndex,childIndices:[]});for(let Wt=0;Wt<tt.children.length;Wt++)ke.push({item:tt.children[Wt],parentIndex:Ut,childOrderInParent:Wt})}}for(let[Fe,je]of j)Fe>=0&&Fe<ae.length&&(ae[Fe].childIndices=je);if(ae.length>0){let Fe=ve(0);H.paths.push(...Fe.paths),H.printfData.push(...Fe.printfData)}}else{let Fe=function(je){let et=ae.get(je);et&&(H.paths.push(et.path),et.printfData&&H.printfData.push(et.printfData));let st=ve.get(je);if(st)for(let tt of st)Fe(tt)};var Ee=Fe;let ae=new Map,ke=0,j=[{item:{path:P,depth:0,resultIndex:0},orderIndex:ke++}],ve=new Map;for(;j.length>0;){let je=Date.now(),et=j.splice(0,Jp),st=await Promise.all(et.map(async({item:tt,orderIndex:nt})=>{let Ut=await L(tt);return Ut?{node:Ut,orderIndex:nt}:null}));v.batchCount++,v.batchTime+=Date.now()-je;for(let tt of st){if(!tt)continue;let{node:nt,orderIndex:Ut}=tt,{print:Wt,printfData:ns}=ue(nt);if(Wt&&ae.set(Ut,{path:nt.relativePath,printfData:ns}),nt.children.length>0){let Fa=[];for(let zs of nt.children){let dr=ke++;Fa.push(dr),j.push({item:zs,orderIndex:dr})}ve.set(Ut,Fa)}}}Fe(0)}return H}let ee=await re();if(p.push(...ee.paths),m.push(...ee.printfData),t.trace){let H=Date.now()-T;n9(t.trace,v,H),t.trace({category:"find",name:"searchPath",durationMs:H,details:{path:N,resultsFound:ee.paths.length}})}}let z="";if(c.length>0)for(let N of c)switch(N.type){case"print":z+=p.length>0?`${p.join(`
|
|
498
498
|
`)}
|
|
499
499
|
`:"";break;case"print0":z+=p.length>0?`${p.join("\0")}\0`:"";break;case"delete":{let P=[...p].sort((v,T)=>T.length-v.length);for(let v of P){let T=t.fs.resolvePath(t.cwd,v);try{await t.fs.rm(T,{recursive:!1})}catch(L){let ue=L instanceof Error?L.message:String(L);d+=`find: cannot delete '${v}': ${ue}
|
|
500
500
|
`,g=1}}break}case"printf":for(let P of m)z+=a9(N.format,P);break;case"exec":if(!t.exec)return{stdout:"",stderr:`find: -exec not supported in this context
|
|
@@ -783,14 +783,14 @@ Gid: ${r} ${r} ${r} ${r}
|
|
|
783
783
|
`}:{target:s}:u.length===1?{target:u[0]}:{error:`bash: ${s}: ambiguous redirect
|
|
784
784
|
`}}async function yc(e,t){let n=t.parts,r=n.length;if(r===1){let a=await Vt(e,n[0]);return Os(a,e.limits.maxStringLength,"word expansion"),a}let s=[];for(let a=0;a<r;a++)s.push(await Vt(e,n[a]));let i=s.join("");return Os(i,e.limits.maxStringLength,"word expansion"),i}async function Vt(e,t,n=!1){if(t.type==="ParameterExpansion")return la(e,t,n);let r=Vx(e,t,n);if(r!==null)return r;switch(t.type){case"DoubleQuoted":{let s=[];for(let i of t.parts)s.push(await Vt(e,i,!0));return s.join("")}case"CommandSubstitution":{let s=n2(t.body);if(s)try{let p=await ie(e,s.target),h=p.startsWith("/")?p:`${e.state.cwd}/${p}`,m=await e.fs.readFile(h);e.state.lastExitCode=0,e.state.env.set("?","0");let d=m.replace(/\n+$/,"");return Os(d,e.limits.maxStringLength,"command substitution"),d}catch(p){if(p instanceof te)throw p;return e.state.lastExitCode=1,e.state.env.set("?","1"),""}let i=e.substitutionDepth??0,a=e.limits.maxSubstitutionDepth;if(i>=a)throw new te(`Command substitution nesting limit exceeded (${a})`,"substitution_depth");let o=e.substitutionDepth;e.substitutionDepth=i+1;let l=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let c=new Map(e.state.env),u=e.state.cwd,f=e.state.suppressVerbose;e.state.suppressVerbose=!0;try{let p=await e.executeScript(t.body),h=p.exitCode;e.state.env=c,e.state.cwd=u,e.state.suppressVerbose=f,e.state.lastExitCode=h,e.state.env.set("?",String(h)),p.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+p.stderr),e.state.bashPid=l,e.substitutionDepth=o;let m=p.stdout.replace(/\n+$/,"");return Os(m,e.limits.maxStringLength,"command substitution"),m}catch(p){if(e.state.env=c,e.state.cwd=u,e.state.bashPid=l,e.substitutionDepth=o,e.state.suppressVerbose=f,p instanceof te)throw p;if(p instanceof pe){e.state.lastExitCode=p.exitCode,e.state.env.set("?",String(p.exitCode)),p.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+p.stderr);let h=p.stdout.replace(/\n+$/,"");return Os(h,e.limits.maxStringLength,"command substitution"),h}throw p}}case"ArithmeticExpansion":{let s=t.expression.originalText;if(s&&/\$[a-zA-Z_][a-zA-Z0-9_]*(?![{[(])/.test(s)){let a=await Jm(e,s),o=new ce,l=Ae(o,a);return String(await ne(e,l.expression,!0))}return String(await ne(e,t.expression.expression,!0))}case"BraceExpansion":{let s=[];for(let i of t.items)if(i.type==="Range"){let a=lc(i.start,i.end,i.step,i.startStr,i.endStr);if(a.expanded)s.push(...a.expanded);else return a.literal}else s.push(await ie(e,i.word));return s.join(" ")}default:return""}}async function la(e,t,n=!1){let{parameter:r}=t,{operation:s}=t,i=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(i){let[,p,h]=i;if(e.state.associativeArrays?.has(p)||h.includes("$(")||h.includes("`")||h.includes("${")){let d=await oc(e,h);r=`${p}[${d}]`}}else if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)&&Te(e,r)){let p=St(e,r);if(p&&p!==r){let h=p.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(h){let[,m,d]=h;if(e.state.associativeArrays?.has(m)||d.includes("$(")||d.includes("`")||d.includes("${")){let w=await oc(e,d);r=`${m}[${w}]`}}}}let a=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=await Se(e,r,!a);if(!s)return o;let l=!await bn(e,r),{isEmpty:c,effectiveValue:u}=y2(e,r,o,n),f={value:o,isUnset:l,isEmpty:c,effectiveValue:u,inDoubleQuotes:n};switch(s.type){case"DefaultValue":return s2(e,s,f,ln);case"AssignDefault":return i2(e,r,s,f,ln);case"ErrorIfUnset":return a2(e,r,s,f,ln);case"UseAlternative":return o2(e,s,f,ln);case"PatternRemoval":return l2(e,o,s,ln,Vt);case"PatternReplacement":return c2(e,o,s,ln,Vt);case"Length":return u2(e,r,o);case"LengthSliceError":throw new bt(r);case"BadSubstitution":throw new bt(s.text);case"Substring":return f2(e,r,o,s);case"CaseModification":return p2(e,o,s,ln,la);case"Transform":return h2(e,r,o,l,s);case"Indirection":return d2(e,r,o,l,s,la,n);case"ArrayKeys":return m2(e,s);case"VarNamePrefix":return g2(e,s);default:return o}}var Gx,hc,Nt=I(()=>{"use strict";mt();Xe();Qi();Ct();ye();Xi();e2();t2();r2();Hr();w2();A2();C2();Dt();og();fg();jt();an();dg();Hr();Dt();Gx=1e4,hc=1e5});function Kx(e,t,n){switch(n){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":if(t===0)throw new Re("division by 0");return Math.trunc(e/t);case"%":if(t===0)throw new Re("division by 0");return e%t;case"**":if(t<0)throw new Re("exponent less than 0");return e**t;case"<<":return e<<t;case">>":return e>>t;case"<":return e<t?1:0;case"<=":return e<=t?1:0;case">":return e>t?1:0;case">=":return e>=t?1:0;case"==":return e===t?1:0;case"!=":return e!==t?1:0;case"&":return e&t;case"|":return e|t;case"^":return e^t;case",":return t;default:return 0}}function wg(e,t,n){switch(n){case"=":return t;case"+=":return e+t;case"-=":return e-t;case"*=":return e*t;case"/=":return t!==0?Math.trunc(e/t):0;case"%=":return t!==0?e%t:0;case"<<=":return e<<t;case">>=":return e>>t;case"&=":return e&t;case"|=":return e|t;case"^=":return e^t;default:return t}}function Qx(e,t){switch(t){case"-":return-e;case"+":return+e;case"!":return e===0?1:0;case"~":return~e;default:return e}}async function Xx(e,t){let n=e.state.env.get(t);if(n!==void 0)return n;let r=e.state.env.get(`${t}_0`);return r!==void 0?r:await Se(e,t)}function Yx(e){if(!e)return 0;let t=Number.parseInt(e,10);if(!Number.isNaN(t)&&/^-?\d+$/.test(e.trim()))return t;let n=e.trim();if(!n)return 0;try{let r=new ce,{expr:s,pos:i}=Ht(r,n,0);if(i<n.length){let a=n.slice(i).trim().split(/\s+/)[0];throw new Re(`${n}: syntax error in expression (error token is "${a}")`)}return s.type==="ArithNumber"?s.value:t||0}catch(r){if(r instanceof Re)throw r;let s=n.split(/\s+/).slice(1)[0]||n;throw new Re(`${n}: syntax error in expression (error token is "${s}")`)}}async function bc(e,t){if(!t)return 0;let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&/^-?\d+$/.test(t.trim()))return n;let r=t.trim();if(!r)return 0;let s=new ce,{expr:i,pos:a}=Ht(s,r,0);if(a<r.length){let o=r.slice(a).trim(),l=o.split(/\s+/)[0]||o;throw new Re(`syntax error in expression (error token is "${l}")`,"","")}return await ne(e,i)}async function xc(e,t,n=new Set){if(n.has(t))return 0;n.add(t);let r=await Xx(e,t);if(!r)return 0;let s=Number.parseInt(r,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(r.trim()))return s;let i=r.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return await xc(e,i,n);let a=new ce,{expr:o,pos:l}=Ht(a,i,0);if(l<i.length){let c=i.slice(l).trim(),u=c.split(/\s+/)[0]||c;throw new Re(`${i}: syntax error in expression (error token is "${u}")`)}return await ne(e,o)}async function ua(e,t){if(t.startsWith("#")){let f=t.slice(1),p=f.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(p){let m=p[1],d=oe(e,m);return String(d.length)}let h=e.state.env.get(f)||"";return String(h.length)}if(t.startsWith("!")){let f=t.slice(1),p=e.state.env.get(f)||"";return e.state.env.get(p)||""}let n=[":-",":=",":?",":+","-","=","?","+"],r=-1,s="";for(let f of n){let p=t.indexOf(f);p>0&&(r===-1||p<r)&&(r=p,s=f)}if(r===-1)return await Se(e,t);let i=t.slice(0,r),a=t.slice(r+s.length),o=e.state.env.get(i),l=o===void 0,c=o==="",u=s.startsWith(":");switch(s){case":-":case"-":return l||u&&c?a:o||"";case":=":case"=":return l||u&&c?(e.state.env.set(i,a),a):o||"";case":+":case"+":return!(l||u&&c)?a:"";case":?":case"?":{if(l||u&&c)throw new Error(a||`${i}: parameter null or not set`);return o||""}default:return o||""}}async function ne(e,t,n=!1){switch(t.type){case"ArithNumber":if(Number.isNaN(t.value))throw new Re("value too great for base");return t.value;case"ArithVariable":return await xc(e,t.name);case"ArithSpecialVar":{let s=(await Se(e,t.name)).trim();if(!s)return 0;let i=Number.parseInt(s,10);if(!Number.isNaN(i)&&/^-?\d+$/.test(s))return i;let a=new ce,{expr:o}=Ht(a,s,0);return await ne(e,o)}case"ArithNested":return await ne(e,t.expression);case"ArithCommandSubst":{if(e.execFn){let r=await e.execFn(t.command);r.stderr&&(e.state.expansionStderr=(e.state.expansionStderr||"")+r.stderr);let s=r.stdout.trim();return Number.parseInt(s,10)||0}return 0}case"ArithBracedExpansion":{let r=await ua(e,t.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=await ua(e,t.baseExpr),s=Number.parseInt(r,10);if(s<2||s>64)return 0;let i=`${s}#${t.value}`;return ks(i)}case"ArithDynamicNumber":{let s=await ua(e,t.prefix)+t.suffix;return ks(s)}case"ArithArrayElement":{let r=e.state.associativeArrays?.has(t.array),s=async i=>{let a=e.state.env.get(i);return a!==void 0?await bc(e,a):0};if(t.stringKey!==void 0)return await s(`${t.array}_${t.stringKey}`);if(r&&t.index?.type==="ArithVariable"&&!t.index.hasDollarPrefix)return await s(`${t.array}_${t.index.name}`);if(r&&t.index?.type==="ArithVariable"&&t.index.hasDollarPrefix){let i=await Se(e,t.index.name);return await s(`${t.array}_${i}`)}if(t.index){let i=await ne(e,t.index,n);if(i<0){let l=oe(e,t.array),c=e.state.currentLine;if(l.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${c}: ${t.array}: bad array subscript
|
|
785
785
|
`,0;let f=Math.max(...l.map(([p])=>typeof p=="number"?p:0))+1+i;if(f<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${c}: ${t.array}: bad array subscript
|
|
786
|
-
`,0;i=f}let a=`${t.array}_${i}`,o=e.state.env.get(a);if(o!==void 0)return bc(e,o);if(i===0){let l=e.state.env.get(t.array);if(l!==void 0)return bc(e,l)}if(e.state.options.nounset&&!Array.from(e.state.env.keys()).some(c=>c===t.array||c.startsWith(`${t.array}_`)))throw new wt(`${t.array}[${i}]`);return 0}return 0}case"ArithDoubleSubscript":throw new Re("double subscript","","");case"ArithNumberSubscript":throw new Re(`${t.number}${t.errorToken}: syntax error: invalid arithmetic operator (error token is "${t.errorToken}")`);case"ArithSyntaxError":throw new Re(t.message,"","",!0);case"ArithSingleQuote":{if(n)throw new Re(`syntax error: operand expected (error token is "'${t.content}'")`);return t.value}case"ArithBinary":{if(t.operator==="||")return await ne(e,t.left,n)||await ne(e,t.right,n)?1:0;if(t.operator==="&&")return await ne(e,t.left,n)&&await ne(e,t.right,n)?1:0;let r=await ne(e,t.left,n),s=await ne(e,t.right,n);return Kx(r,s,t.operator)}case"ArithUnary":{let r=await ne(e,t.operand,n);if(t.operator==="++"||t.operator==="--"){if(t.operand.type==="ArithVariable"){let s=t.operand.name,i=Number.parseInt(await Se(e,s),10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(s,String(a)),t.prefix?a:i}if(t.operand.type==="ArithArrayElement"){let s=t.operand.array,i=e.state.associativeArrays?.has(s),a;if(t.operand.stringKey!==void 0)a=`${s}_${t.operand.stringKey}`;else if(i&&t.operand.index?.type==="ArithVariable"&&!t.operand.index.hasDollarPrefix)a=`${s}_${t.operand.index.name}`;else if(i&&t.operand.index?.type==="ArithVariable"&&t.operand.index.hasDollarPrefix){let c=await Se(e,t.operand.index.name);a=`${s}_${c}`}else if(t.operand.index){let c=await ne(e,t.operand.index,n);a=`${s}_${c}`}else return r;let o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}if(t.operand.type==="ArithConcat"){let s="";for(let i of t.operand.parts)s+=await qr(e,i,n);if(s&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)){let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(s,String(a)),t.prefix?a:i}}if(t.operand.type==="ArithDynamicElement"){let s="";if(t.operand.nameExpr.type==="ArithConcat")for(let i of t.operand.nameExpr.parts)s+=await qr(e,i,n);else t.operand.nameExpr.type==="ArithVariable"&&(s=t.operand.nameExpr.hasDollarPrefix?await Se(e,t.operand.nameExpr.name):t.operand.nameExpr.name);if(s&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)){let i=await ne(e,t.operand.subscript,n),a=`${s}_${i}`,o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}}return r}return Qx(r,t.operator)}case"ArithTernary":return await ne(e,t.condition,n)?await ne(e,t.consequent,n):await ne(e,t.alternate,n);case"ArithAssignment":{let r=t.variable,s=r;if(t.stringKey!==void 0)s=`${r}_${t.stringKey}`;else if(t.subscript){let l=e.state.associativeArrays?.has(r);if(l&&t.subscript.type==="ArithVariable"&&!t.subscript.hasDollarPrefix)s=`${r}_${t.subscript.name}`;else if(l&&t.subscript.type==="ArithVariable"&&t.subscript.hasDollarPrefix){let c=await Se(e,t.subscript.name);s=`${r}_${c||"\\"}`}else if(l){let c=await ne(e,t.subscript,n);s=`${r}_${c}`}else{let c=await ne(e,t.subscript,n);if(c<0){let u=oe(e,r);u.length>0&&(c=Math.max(...u.map(([p])=>typeof p=="number"?p:0))+1+c)}s=`${r}_${c}`}}let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=await ne(e,t.value,n),o=wg(i,a,t.operator);return e.state.env.set(s,String(o)),o}case"ArithGroup":return await ne(e,t.expression,n);case"ArithConcat":{let r="";for(let s of t.parts)r+=await qr(e,s,n);return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)?await xc(e,r):Number.parseInt(r,10)||0}case"ArithDynamicAssignment":{let r="";if(t.target.type==="ArithConcat")for(let l of t.target.parts)r+=await qr(e,l,n);else t.target.type==="ArithVariable"&&(r=t.target.hasDollarPrefix?await Se(e,t.target.name):t.target.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let s=r;if(t.subscript){let l=await ne(e,t.subscript,n);s=`${r}_${l}`}let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=await ne(e,t.value,n),o=wg(i,a,t.operator);return e.state.env.set(s,String(o)),o}case"ArithDynamicElement":{let r="";if(t.nameExpr.type==="ArithConcat")for(let o of t.nameExpr.parts)r+=await qr(e,o,n);else t.nameExpr.type==="ArithVariable"&&(r=t.nameExpr.hasDollarPrefix?await Se(e,t.nameExpr.name):t.nameExpr.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let s=await ne(e,t.subscript,n),i=`${r}_${s}`,a=e.state.env.get(i);return a!==void 0?Yx(a):0}default:return 0}}async function qr(e,t,n=!1){switch(t.type){case"ArithNumber":return String(t.value);case"ArithSingleQuote":return String(await ne(e,t,n));case"ArithVariable":return t.hasDollarPrefix?await Se(e,t.name):t.name;case"ArithSpecialVar":return await Se(e,t.name);case"ArithBracedExpansion":return await ua(e,t.content);case"ArithCommandSubst":return e.execFn?(await e.execFn(t.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let s of t.parts)r+=await qr(e,s,n);return r}default:return String(await ne(e,t,n))}}var Ct=I(()=>{"use strict";mt();Xe();ye();Nt()});var Sl=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>(bu(),wu))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(Eu(),xu))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>(Ou(),$u))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(Du(),Pu))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(Lu(),_u))).mkdirCommand},{name:"rmdir",load:async()=>(await Promise.resolve().then(()=>(Wu(),Uu))).rmdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(zu(),Bu))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(ju(),Hu))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(Gu(),Vu))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(Zu(),qu))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(Qu(),Ku))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(Ju(),Yu))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(tf(),ef))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>(rf(),nf))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(lf(),of))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(uf(),cf))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(hf(),pf))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(gf(),mf))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).egrepCommand},{name:"rg",load:async()=>(await Promise.resolve().then(()=>(a1(),i1))).rgCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(y1(),g1))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(K1(),Z1))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(ip(),sp))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(op(),ap))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(cp(),lp))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(fp(),up))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(dp(),hp))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(yp(),gp))).trCommand},{name:"rev",load:async()=>(await Promise.resolve().then(()=>(bp(),wp))).rev},{name:"nl",load:async()=>(await Promise.resolve().then(()=>(Ap(),Ep))).nl},{name:"fold",load:async()=>(await Promise.resolve().then(()=>(Np(),Cp))).fold},{name:"expand",load:async()=>(await Promise.resolve().then(()=>(Ip(),vp))).expand},{name:"unexpand",load:async()=>(await Promise.resolve().then(()=>(Tp(),Rp))).unexpand},{name:"strings",load:async()=>(await Promise.resolve().then(()=>(Lp(),_p))).strings},{name:"split",load:async()=>(await Promise.resolve().then(()=>(Up(),Mp))).split},{name:"column",load:async()=>(await Promise.resolve().then(()=>(zp(),Bp))).column},{name:"join",load:async()=>(await Promise.resolve().then(()=>(jp(),Hp))).join},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(Gp(),Vp))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(th(),eh))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>(rh(),nh))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(ih(),sh))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(lh(),oh))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(fh(),uh))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(_o(),Do))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(_o(),Do))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(Fo(),Lo))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(Fo(),Lo))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(dh(),hh))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(gh(),mh))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(Uo(),Mo))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(Uo(),Mo))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(wh(),yh))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(Bo(),Wo))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(Bo(),Wo))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(qh(),Gh))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(Qh(),Kh))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(Jh(),Yh))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(td(),ed))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(rd(),nd))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(id(),sd))).timeoutCommand},{name:"time",load:async()=>(await Promise.resolve().then(()=>(od(),ad))).timeCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(cd(),ld))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(fd(),ud))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(dd(),hd))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(gd(),md))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(wd(),yd))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(c0(),l0))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(f0(),u0))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(h0(),p0))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(m0(),d0))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(y0(),g0))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(b0(),w0))).hostname},{name:"whoami",load:async()=>(await Promise.resolve().then(()=>(E0(),x0))).whoami},{name:"od",load:async()=>(await Promise.resolve().then(()=>(S0(),A0))).od},{name:"gzip",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).gzipCommand},{name:"gunzip",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).gunzipCommand},{name:"zcat",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).zcatCommand}],xb=[],U0=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(F0(),L0))).curlCommand}],M0=new Map;function Cl(e){return{name:e.name,async execute(t,n){let r=M0.get(e.name);return r||(r=await e.load(),M0.set(e.name,r)),n.coverage,r.execute(t,n)}}}function Eb(){return Sl.map(e=>e.name)}function Ab(){return U0.map(e=>e.name)}function W0(e){return(e?Sl.filter(n=>e.includes(n.name)):Sl).map(Cl)}function B0(){return U0.map(Cl)}function z0(){return xb.map(Cl)}function H0(e){return"load"in e&&typeof e.load=="function"}function Sb(e,t){return{name:e,execute:t}}function j0(e){let t=null;return{name:e.name,async execute(n,r){return t||(t=await e.load()),t.execute(n,r)}}}var Cb=new TextEncoder,Nb=new TextDecoder;function Nl(e,t){if(e instanceof Uint8Array)return e;if(t==="base64")return Uint8Array.from(atob(e),n=>n.charCodeAt(0));if(t==="hex"){let n=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)n[r/2]=parseInt(e.slice(r,r+2),16);return n}if(t==="binary"||t==="latin1"){if(e.length<=65536)return Uint8Array.from(e,s=>s.charCodeAt(0));let r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r}return Cb.encode(e)}function V0(e,t){if(t==="base64")return btoa(String.fromCharCode(...e));if(t==="hex")return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="binary"||t==="latin1"){if(typeof Buffer<"u")return Buffer.from(e).toString(t);let n=65536;if(e.length<=n)return String.fromCharCode(...e);let r="";for(let s=0;s<e.length;s+=n){let i=e.subarray(s,s+n);r+=String.fromCharCode(...i)}return r}return Nb.decode(e)}function ji(e){if(e!=null)return typeof e=="string"?e:e.encoding??void 0}var Ur=new TextEncoder;function kb(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}function ot(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}var sr=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[n,r]of Object.entries(t))typeof r=="function"?this.writeFileLazy(n,r):kb(r)?this.writeFileSync(n,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(n,r)}normalizePath(t){if(!t||t==="/")return"/";let n=t.endsWith("/")&&t!=="/"?t.slice(0,-1):t;n.startsWith("/")||(n=`/${n}`);let r=n.split("/").filter(i=>i&&i!=="."),s=[];for(let i of r)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.lastIndexOf("/");return r===0?"/":n.slice(0,r)}ensureParentDirs(t){let n=this.dirname(t);n!=="/"&&(this.data.has(n)||(this.ensureParentDirs(n),this.data.set(n,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,n,r,s){ot(t,"write");let i=this.normalizePath(t);this.ensureParentDirs(i);let a=ji(r),o=Nl(n,a);this.data.set(i,{type:"file",content:o,mode:s?.mode??420,mtime:s?.mtime??new Date})}writeFileLazy(t,n,r){ot(t,"write");let s=this.normalizePath(t);this.ensureParentDirs(s),this.data.set(s,{type:"file",lazy:n,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,n){let r=await n.lazy(),i={type:"file",content:typeof r=="string"?Ur.encode(r):r,mode:n.mode,mtime:n.mtime};return this.data.set(t,i),i}async readFile(t,n){let r=await this.readFileBuffer(t),s=ji(n);return V0(r,s)}async readFileBuffer(t){ot(t,"open");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in r){let s=await this.materializeLazy(n,r);return s.content instanceof Uint8Array?s.content:Ur.encode(s.content)}return r.content instanceof Uint8Array?r.content:Ur.encode(r.content)}async writeFile(t,n,r){this.writeFileSync(t,n,r)}async appendFile(t,n,r){ot(t,"append");let s=this.normalizePath(t),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let a=ji(r),o=Nl(n,a);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(s,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:Ur.encode("content"in l?l.content:""),u=new Uint8Array(c.length+o.length);u.set(c),u.set(o,c.length),this.data.set(s,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,n,r)}async exists(t){if(t.includes("\0"))return!1;try{let n=this.resolvePathWithSymlinks(t);return this.data.has(n)}catch{return!1}}async stat(t){ot(t,"stat");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ur.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date}}async lstat(t){ot(t,"lstat");let n=this.resolveIntermediateSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ur.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date}}resolveSymlink(t,n){if(n.startsWith("/"))return this.normalizePath(n);let r=this.dirname(t);return this.normalizePath(r==="/"?`/${n}`:`${r}/${n}`)}resolveIntermediateSymlinks(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let s="",i=new Set;for(let a=0;a<r.length-1;a++){let o=r[a];s=`${s}/${o}`;let l=this.data.get(s),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(s),s=this.resolveSymlink(s,l.target),l=this.data.get(s),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${s}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.slice(1).split("/"),s="",i=new Set;for(let a of r){s=`${s}/${a}`;let o=this.data.get(s),l=0,c=40;for(;o&&o.type==="symlink"&&l<c;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(s),s=this.resolveSymlink(s,o.target),o=this.data.get(s),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return s}async mkdir(t,n){this.mkdirSync(t,n)}mkdirSync(t,n){ot(t,"mkdir");let r=this.normalizePath(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let s=this.dirname(r);if(s!=="/"&&!this.data.has(s))if(n?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){ot(t,"scandir");let n=this.normalizePath(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let s=new Set;for(;r&&r.type==="symlink";){if(s.has(n))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);s.add(n),n=this.resolveSymlink(n,r.target),r=this.data.get(n)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=n==="/"?"/":`${n}/`,a=new Map;for(let[o,l]of this.data.entries())if(o!==n&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!a.has(u)&&a.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(a.values()).sort((o,l)=>o.name<l.name?-1:o.name>l.name?1:0)}async rm(t,n){ot(t,"rm");let r=this.normalizePath(t),s=this.data.get(r);if(!s){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(s.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!n?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of i){let o=r==="/"?`/${a}`:`${r}/${a}`;await this.rm(o,n)}}}this.data.delete(r)}async cp(t,n,r){ot(t,"cp"),ot(n,"cp");let s=this.normalizePath(t),i=this.normalizePath(n),a=this.data.get(s);if(!a)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(a.type==="file")this.ensureParentDirs(i),this.data.set(i,{...a});else if(a.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let o=await this.readdir(s);for(let l of o){let c=s==="/"?`/${l}`:`${s}/${l}`,u=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(c,u,r)}}}async mv(t,n){await this.cp(t,n,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,n){if(n.startsWith("/"))return this.normalizePath(n);let r=t==="/"?`/${n}`:`${t}/${n}`;return this.normalizePath(r)}async chmod(t,n){ot(t,"chmod");let r=this.normalizePath(t),s=this.data.get(r);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);s.mode=n}async symlink(t,n){ot(n,"symlink");let r=this.normalizePath(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,n){ot(t,"link"),ot(n,"link");let r=this.normalizePath(t),s=this.normalizePath(n),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${n}'`);let a=i;"lazy"in a&&(a=await this.materializeLazy(r,a)),this.ensureParentDirs(s),this.data.set(s,{type:"file",content:a.content,mode:a.mode,mtime:a.mtime})}async readlink(t){ot(t,"readlink");let n=this.normalizePath(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){ot(t,"realpath");let n=this.resolvePathWithSymlinks(t);if(!this.data.has(n))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return n}async utimes(t,n,r){ot(t,"utimes");let s=this.normalizePath(t),i=this.resolvePathWithSymlinks(s),a=this.data.get(i);if(!a)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);a.mtime=r}};vl();function vb(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Ib(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function $b(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Ob(e){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${q0}
|
|
786
|
+
`,0;i=f}let a=`${t.array}_${i}`,o=e.state.env.get(a);if(o!==void 0)return bc(e,o);if(i===0){let l=e.state.env.get(t.array);if(l!==void 0)return bc(e,l)}if(e.state.options.nounset&&!Array.from(e.state.env.keys()).some(c=>c===t.array||c.startsWith(`${t.array}_`)))throw new wt(`${t.array}[${i}]`);return 0}return 0}case"ArithDoubleSubscript":throw new Re("double subscript","","");case"ArithNumberSubscript":throw new Re(`${t.number}${t.errorToken}: syntax error: invalid arithmetic operator (error token is "${t.errorToken}")`);case"ArithSyntaxError":throw new Re(t.message,"","",!0);case"ArithSingleQuote":{if(n)throw new Re(`syntax error: operand expected (error token is "'${t.content}'")`);return t.value}case"ArithBinary":{if(t.operator==="||")return await ne(e,t.left,n)||await ne(e,t.right,n)?1:0;if(t.operator==="&&")return await ne(e,t.left,n)&&await ne(e,t.right,n)?1:0;let r=await ne(e,t.left,n),s=await ne(e,t.right,n);return Kx(r,s,t.operator)}case"ArithUnary":{let r=await ne(e,t.operand,n);if(t.operator==="++"||t.operator==="--"){if(t.operand.type==="ArithVariable"){let s=t.operand.name,i=Number.parseInt(await Se(e,s),10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(s,String(a)),t.prefix?a:i}if(t.operand.type==="ArithArrayElement"){let s=t.operand.array,i=e.state.associativeArrays?.has(s),a;if(t.operand.stringKey!==void 0)a=`${s}_${t.operand.stringKey}`;else if(i&&t.operand.index?.type==="ArithVariable"&&!t.operand.index.hasDollarPrefix)a=`${s}_${t.operand.index.name}`;else if(i&&t.operand.index?.type==="ArithVariable"&&t.operand.index.hasDollarPrefix){let c=await Se(e,t.operand.index.name);a=`${s}_${c}`}else if(t.operand.index){let c=await ne(e,t.operand.index,n);a=`${s}_${c}`}else return r;let o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}if(t.operand.type==="ArithConcat"){let s="";for(let i of t.operand.parts)s+=await qr(e,i,n);if(s&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)){let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=t.operator==="++"?i+1:i-1;return e.state.env.set(s,String(a)),t.prefix?a:i}}if(t.operand.type==="ArithDynamicElement"){let s="";if(t.operand.nameExpr.type==="ArithConcat")for(let i of t.operand.nameExpr.parts)s+=await qr(e,i,n);else t.operand.nameExpr.type==="ArithVariable"&&(s=t.operand.nameExpr.hasDollarPrefix?await Se(e,t.operand.nameExpr.name):t.operand.nameExpr.name);if(s&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)){let i=await ne(e,t.operand.subscript,n),a=`${s}_${i}`,o=Number.parseInt(e.state.env.get(a)||"0",10)||0,l=t.operator==="++"?o+1:o-1;return e.state.env.set(a,String(l)),t.prefix?l:o}}return r}return Qx(r,t.operator)}case"ArithTernary":return await ne(e,t.condition,n)?await ne(e,t.consequent,n):await ne(e,t.alternate,n);case"ArithAssignment":{let r=t.variable,s=r;if(t.stringKey!==void 0)s=`${r}_${t.stringKey}`;else if(t.subscript){let l=e.state.associativeArrays?.has(r);if(l&&t.subscript.type==="ArithVariable"&&!t.subscript.hasDollarPrefix)s=`${r}_${t.subscript.name}`;else if(l&&t.subscript.type==="ArithVariable"&&t.subscript.hasDollarPrefix){let c=await Se(e,t.subscript.name);s=`${r}_${c||"\\"}`}else if(l){let c=await ne(e,t.subscript,n);s=`${r}_${c}`}else{let c=await ne(e,t.subscript,n);if(c<0){let u=oe(e,r);u.length>0&&(c=Math.max(...u.map(([p])=>typeof p=="number"?p:0))+1+c)}s=`${r}_${c}`}}let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=await ne(e,t.value,n),o=wg(i,a,t.operator);return e.state.env.set(s,String(o)),o}case"ArithGroup":return await ne(e,t.expression,n);case"ArithConcat":{let r="";for(let s of t.parts)r+=await qr(e,s,n);return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)?await xc(e,r):Number.parseInt(r,10)||0}case"ArithDynamicAssignment":{let r="";if(t.target.type==="ArithConcat")for(let l of t.target.parts)r+=await qr(e,l,n);else t.target.type==="ArithVariable"&&(r=t.target.hasDollarPrefix?await Se(e,t.target.name):t.target.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let s=r;if(t.subscript){let l=await ne(e,t.subscript,n);s=`${r}_${l}`}let i=Number.parseInt(e.state.env.get(s)||"0",10)||0,a=await ne(e,t.value,n),o=wg(i,a,t.operator);return e.state.env.set(s,String(o)),o}case"ArithDynamicElement":{let r="";if(t.nameExpr.type==="ArithConcat")for(let o of t.nameExpr.parts)r+=await qr(e,o,n);else t.nameExpr.type==="ArithVariable"&&(r=t.nameExpr.hasDollarPrefix?await Se(e,t.nameExpr.name):t.nameExpr.name);if(!r||!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r))return 0;let s=await ne(e,t.subscript,n),i=`${r}_${s}`,a=e.state.env.get(i);return a!==void 0?Yx(a):0}default:return 0}}async function qr(e,t,n=!1){switch(t.type){case"ArithNumber":return String(t.value);case"ArithSingleQuote":return String(await ne(e,t,n));case"ArithVariable":return t.hasDollarPrefix?await Se(e,t.name):t.name;case"ArithSpecialVar":return await Se(e,t.name);case"ArithBracedExpansion":return await ua(e,t.content);case"ArithCommandSubst":return e.execFn?(await e.execFn(t.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let s of t.parts)r+=await qr(e,s,n);return r}default:return String(await ne(e,t,n))}}var Ct=I(()=>{"use strict";mt();Xe();ye();Nt()});var Sl=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>(bu(),wu))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(Eu(),xu))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>(Ou(),$u))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(Du(),Pu))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(Lu(),_u))).mkdirCommand},{name:"rmdir",load:async()=>(await Promise.resolve().then(()=>(Wu(),Uu))).rmdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(zu(),Bu))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(ju(),Hu))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(Gu(),Vu))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(Zu(),qu))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(Qu(),Ku))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(Ju(),Yu))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(tf(),ef))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>(rf(),nf))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(lf(),of))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(uf(),cf))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(hf(),pf))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(gf(),mf))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(si(),ri))).egrepCommand},{name:"rg",load:async()=>(await Promise.resolve().then(()=>(a1(),i1))).rgCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(y1(),g1))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(K1(),Z1))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(ip(),sp))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(op(),ap))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(cp(),lp))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(fp(),up))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(dp(),hp))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(yp(),gp))).trCommand},{name:"rev",load:async()=>(await Promise.resolve().then(()=>(bp(),wp))).rev},{name:"nl",load:async()=>(await Promise.resolve().then(()=>(Ap(),Ep))).nl},{name:"fold",load:async()=>(await Promise.resolve().then(()=>(Np(),Cp))).fold},{name:"expand",load:async()=>(await Promise.resolve().then(()=>(Ip(),vp))).expand},{name:"unexpand",load:async()=>(await Promise.resolve().then(()=>(Tp(),Rp))).unexpand},{name:"strings",load:async()=>(await Promise.resolve().then(()=>(Lp(),_p))).strings},{name:"split",load:async()=>(await Promise.resolve().then(()=>(Up(),Mp))).split},{name:"column",load:async()=>(await Promise.resolve().then(()=>(zp(),Bp))).column},{name:"join",load:async()=>(await Promise.resolve().then(()=>(jp(),Hp))).join},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(Gp(),Vp))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(th(),eh))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>(rh(),nh))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(ih(),sh))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(lh(),oh))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(fh(),uh))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(_o(),Do))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(_o(),Do))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(Fo(),Lo))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(Fo(),Lo))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(dh(),hh))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(gh(),mh))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(Uo(),Mo))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(Uo(),Mo))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(wh(),yh))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(Bo(),Wo))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(Bo(),Wo))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(qh(),Gh))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(Qh(),Kh))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(Jh(),Yh))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(td(),ed))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(rd(),nd))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(id(),sd))).timeoutCommand},{name:"time",load:async()=>(await Promise.resolve().then(()=>(od(),ad))).timeCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(cd(),ld))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(fd(),ud))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(dd(),hd))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(gd(),md))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(wd(),yd))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(c0(),l0))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(f0(),u0))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(h0(),p0))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(m0(),d0))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(y0(),g0))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(b0(),w0))).hostname},{name:"whoami",load:async()=>(await Promise.resolve().then(()=>(E0(),x0))).whoami},{name:"od",load:async()=>(await Promise.resolve().then(()=>(S0(),A0))).od},{name:"gzip",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).gzipCommand},{name:"gunzip",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).gunzipCommand},{name:"zcat",load:async()=>(await Promise.resolve().then(()=>(Hi(),zi))).zcatCommand}],xb=[],U0=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(F0(),L0))).curlCommand}],M0=new Map;function Cl(e){return{name:e.name,async execute(t,n){let r=M0.get(e.name);return r||(r=await e.load(),M0.set(e.name,r)),n.coverage,r.execute(t,n)}}}function Eb(){return Sl.map(e=>e.name)}function Ab(){return U0.map(e=>e.name)}function W0(e){return(e?Sl.filter(n=>e.includes(n.name)):Sl).map(Cl)}function B0(){return U0.map(Cl)}function z0(){return xb.map(Cl)}function H0(e){return"load"in e&&typeof e.load=="function"}function Sb(e,t){return{name:e,execute:t}}function j0(e){let t=null;return{name:e.name,async execute(n,r){return t||(t=await e.load()),t.execute(n,r)}}}var Cb=new TextEncoder,Nb=new TextDecoder;function Nl(e,t){if(e instanceof Uint8Array)return e;if(t==="base64")return Uint8Array.from(atob(e),n=>n.charCodeAt(0));if(t==="hex"){let n=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)n[r/2]=parseInt(e.slice(r,r+2),16);return n}if(t==="binary"||t==="latin1"){if(e.length<=65536)return Uint8Array.from(e,s=>s.charCodeAt(0));let r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r}return Cb.encode(e)}function V0(e,t){if(t==="base64"){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let n=65536,r="";for(let s=0;s<e.length;s+=n){let i=e.subarray(s,s+n);r+=String.fromCharCode(...i)}return btoa(r)}if(t==="hex")return Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="binary"||t==="latin1"){if(typeof Buffer<"u")return Buffer.from(e).toString(t);let n=65536;if(e.length<=n)return String.fromCharCode(...e);let r="";for(let s=0;s<e.length;s+=n){let i=e.subarray(s,s+n);r+=String.fromCharCode(...i)}return r}return Nb.decode(e)}function ji(e){if(e!=null)return typeof e=="string"?e:e.encoding??void 0}var Ur=new TextEncoder;function kb(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}function ot(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}var sr=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[n,r]of Object.entries(t))typeof r=="function"?this.writeFileLazy(n,r):kb(r)?this.writeFileSync(n,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(n,r)}normalizePath(t){if(!t||t==="/")return"/";let n=t.endsWith("/")&&t!=="/"?t.slice(0,-1):t;n.startsWith("/")||(n=`/${n}`);let r=n.split("/").filter(i=>i&&i!=="."),s=[];for(let i of r)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.lastIndexOf("/");return r===0?"/":n.slice(0,r)}ensureParentDirs(t){let n=this.dirname(t);n!=="/"&&(this.data.has(n)||(this.ensureParentDirs(n),this.data.set(n,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,n,r,s){ot(t,"write");let i=this.normalizePath(t);this.ensureParentDirs(i);let a=ji(r),o=Nl(n,a);this.data.set(i,{type:"file",content:o,mode:s?.mode??420,mtime:s?.mtime??new Date})}writeFileLazy(t,n,r){ot(t,"write");let s=this.normalizePath(t);this.ensureParentDirs(s),this.data.set(s,{type:"file",lazy:n,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,n){let r=await n.lazy(),i={type:"file",content:typeof r=="string"?Ur.encode(r):r,mode:n.mode,mtime:n.mtime};return this.data.set(t,i),i}async readFile(t,n){let r=await this.readFileBuffer(t),s=ji(n);return V0(r,s)}async readFileBuffer(t){ot(t,"open");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in r){let s=await this.materializeLazy(n,r);return s.content instanceof Uint8Array?s.content:Ur.encode(s.content)}return r.content instanceof Uint8Array?r.content:Ur.encode(r.content)}async writeFile(t,n,r){this.writeFileSync(t,n,r)}async appendFile(t,n,r){ot(t,"append");let s=this.normalizePath(t),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let a=ji(r),o=Nl(n,a);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(s,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:Ur.encode("content"in l?l.content:""),u=new Uint8Array(c.length+o.length);u.set(c),u.set(o,c.length),this.data.set(s,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,n,r)}async exists(t){if(t.includes("\0"))return!1;try{let n=this.resolvePathWithSymlinks(t);return this.data.has(n)}catch{return!1}}async stat(t){ot(t,"stat");let n=this.resolvePathWithSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ur.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date}}async lstat(t){ot(t,"lstat");let n=this.resolveIntermediateSymlinks(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(n,r));let s=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?s=r.content.length:s=Ur.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:s,mtime:r.mtime||new Date}}resolveSymlink(t,n){if(n.startsWith("/"))return this.normalizePath(n);let r=this.dirname(t);return this.normalizePath(r==="/"?`/${n}`:`${r}/${n}`)}resolveIntermediateSymlinks(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let s="",i=new Set;for(let a=0;a<r.length-1;a++){let o=r[a];s=`${s}/${o}`;let l=this.data.get(s),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(s),s=this.resolveSymlink(s,l.target),l=this.data.get(s),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${s}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let n=this.normalizePath(t);if(n==="/")return"/";let r=n.slice(1).split("/"),s="",i=new Set;for(let a of r){s=`${s}/${a}`;let o=this.data.get(s),l=0,c=40;for(;o&&o.type==="symlink"&&l<c;){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(s),s=this.resolveSymlink(s,o.target),o=this.data.get(s),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return s}async mkdir(t,n){this.mkdirSync(t,n)}mkdirSync(t,n){ot(t,"mkdir");let r=this.normalizePath(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let s=this.dirname(r);if(s!=="/"&&!this.data.has(s))if(n?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){ot(t,"scandir");let n=this.normalizePath(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let s=new Set;for(;r&&r.type==="symlink";){if(s.has(n))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);s.add(n),n=this.resolveSymlink(n,r.target),r=this.data.get(n)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=n==="/"?"/":`${n}/`,a=new Map;for(let[o,l]of this.data.entries())if(o!==n&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!a.has(u)&&a.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(a.values()).sort((o,l)=>o.name<l.name?-1:o.name>l.name?1:0)}async rm(t,n){ot(t,"rm");let r=this.normalizePath(t),s=this.data.get(r);if(!s){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(s.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!n?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of i){let o=r==="/"?`/${a}`:`${r}/${a}`;await this.rm(o,n)}}}this.data.delete(r)}async cp(t,n,r){ot(t,"cp"),ot(n,"cp");let s=this.normalizePath(t),i=this.normalizePath(n),a=this.data.get(s);if(!a)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(a.type==="file")if(this.ensureParentDirs(i),"content"in a){let o=a.content instanceof Uint8Array?new Uint8Array(a.content):a.content;this.data.set(i,{...a,content:o})}else this.data.set(i,{...a});else if(a.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...a});else if(a.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let o=await this.readdir(s);for(let l of o){let c=s==="/"?`/${l}`:`${s}/${l}`,u=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(c,u,r)}}}async mv(t,n){await this.cp(t,n,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,n){if(n.startsWith("/"))return this.normalizePath(n);let r=t==="/"?`/${n}`:`${t}/${n}`;return this.normalizePath(r)}async chmod(t,n){ot(t,"chmod");let r=this.normalizePath(t),s=this.data.get(r);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);s.mode=n}async symlink(t,n){ot(n,"symlink");let r=this.normalizePath(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,n){ot(t,"link"),ot(n,"link");let r=this.normalizePath(t),s=this.normalizePath(n),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${n}'`);let a=i;"lazy"in a&&(a=await this.materializeLazy(r,a)),this.ensureParentDirs(s),this.data.set(s,{type:"file",content:a.content,mode:a.mode,mtime:a.mtime})}async readlink(t){ot(t,"readlink");let n=this.normalizePath(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){ot(t,"realpath");let n=this.resolvePathWithSymlinks(t);if(!this.data.has(n))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return n}async utimes(t,n,r){ot(t,"utimes");let s=this.normalizePath(t),i=this.resolvePathWithSymlinks(s),a=this.data.get(i);if(!a)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);a.mtime=r}};vl();function vb(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Ib(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function $b(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Ob(e){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${q0}
|
|
787
787
|
`),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
|
|
788
788
|
`),e.writeFileLazy?e.writeFileLazy("/proc/self/status",kl):e.writeFileSync("/proc/self/status",kl()),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function Z0(e,t){vb(e)&&(Ib(e,t),$b(e),Ob(e))}Pn();ye();var Rb=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],Tb=["braceexpand","hashall","interactive-comments"];function Il(e){let t=[],n=[...Tb.map(r=>({name:r,enabled:!0})),...Rb.map(r=>({name:r,enabled:e[r]}))].sort((r,s)=>r.name.localeCompare(s.name));for(let r of n)r.enabled&&t.push(r.name);return t.join(":")}function Wr(e){e.state.env.set("SHELLOPTS",Il(e.state.options))}var Pb=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function $l(e){let t=[];for(let n of Pb)e[n]&&t.push(n);return t.join(":")}function Ol(e){e.state.env.set("BASHOPTS",$l(e.state.shoptOptions))}Pn();ir();Xe();ir();var cx="BASH_ALIAS_";function Mm(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function Um(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function Wm(e,t){return e.env.get(`${cx}${t}`)}function Yl(e,t,n){if(!t.name||!Mm(t.name))return t;let r=Um(t.name);if(!r)return t;let s=Wm(e,r);if(!s||n.has(r))return t;try{n.add(r);let i=new ce,a=s,o=s.endsWith(" ");if(!o)for(let f of t.args){let p=zm(f);a+=` ${p}`}let l;try{l=i.parse(a)}catch(f){if(f instanceof lt)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return Bm(t,s);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return Bm(t,s);let u={...c,assignments:[...t.assignments,...c.assignments],redirections:[...c.redirections,...t.redirections],line:t.line};if(o&&t.args.length>0&&(u={...u,args:[...u.args,...t.args]},u.args.length>0)){let f=u.args[0];if(Mm(f)){let p=Um(f);if(p&&Wm(e,p)){let h={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},m=Yl(e,h,n);m!==h&&(u={...u,name:m.name,args:[...m.args]})}}}return u}catch(i){throw n.delete(r),i}}function Bm(e,t){let n=t;for(let a of e.args){let o=zm(a);n+=` ${o}`}let r=new ce,s=r.parseWordFromString("eval",!1,!1),i=r.parseWordFromString(`'${n.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:s,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function zm(e){let t="";for(let n of e.parts)switch(n.type){case"Literal":t+=n.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${n.value}'`;break;case"DoubleQuoted":t+=`"${n.parts.map(r=>r.type==="Literal"?r.value:`$${r.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${n.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${n.expression}))`;break;case"Glob":t+=n.pattern;break;default:break}return t}Ct();Nt();Xt();async function bg(e,t){let n=t.parts.map(u=>u.type==="Literal"?u.value:"\0").join(""),r=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!r||!n.endsWith(")"))return null;let s=r[1],i=[],a=!1,o="",l=!1;for(let u of t.parts)if(u.type==="Literal"){let f=u.value;if(!a){let p=f.indexOf("=(");p!==-1&&(a=!0,f=f.slice(p+2))}if(a){f.endsWith(")")&&(f=f.slice(0,-1));let p=f.split(/(\s+)/);for(let h of p)/^\s+$/.test(h)?(o||l)&&(i.push(o),o="",l=!1):h&&(o+=h)}}else if(a)if(u.type==="BraceExpansion")if(/^\[.+\]=/.test(o))o+=Br({type:"Word",parts:[u]});else{(o||l)&&(i.push(o),o="",l=!1);let p=await cn(e,{type:"Word",parts:[u]});i.push(...p.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await ie(e,{type:"Word",parts:[u]});o+=f}(o||l)&&i.push(o);let c=i.map(u=>/^\[.+\]=/.test(u)?u:u===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(u)&&!u.startsWith("'")&&!u.startsWith('"')?`'${u.replace(/'/g,"'\\''")}'`:u);return`${s}=(${c.join(" ")})`}async function xg(e,t){let n=-1,r=-1,s=!1;for(let d=0;d<t.parts.length;d++){let g=t.parts[d];if(g.type==="Literal"){let w=g.value.indexOf("+=");if(w!==-1){let b=g.value.slice(0,w);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(b)){n=d,r=w,s=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(b)){n=d,r=w,s=!0;break}}let y=g.value.indexOf("=");if(y!==-1&&(y===0||g.value[y-1]!=="+")){let b=g.value.slice(0,y);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(b)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(b)){n=d,r=y;break}}}}if(n===-1)return null;let i=t.parts.slice(0,n),a=t.parts[n];if(a.type!=="Literal")return null;let o=s?2:1,l=a.value.slice(0,r),c=a.value.slice(r+o),u=t.parts.slice(n+1),f="";for(let d of i)f+=await ie(e,{type:"Word",parts:[d]});f+=l;let p={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},h=p.parts.length>0?await ie(e,p):"";return`${f}${s?"+=":"="}${h}`}var Jx=["tar","yq","xan","sqlite3","python3","python"];function Eg(e){return Jx.includes(e)}ye();ye();var de=Object.freeze({stdout:"",stderr:"",exitCode:0});function ge(e=""){return{stdout:e,stderr:"",exitCode:0}}function W(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function B(e,t,n){return{stdout:e,stderr:t,exitCode:n}}function Je(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function On(e,t,n="",r=""){throw new te(e,t,n,r)}function Ec(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new pn;return de}if(t.length>1)throw new pe(1,"",`bash: break: too many arguments
|
|
789
789
|
`);let n=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new pe(128,"",`bash: break: ${t[0]}: numeric argument required
|
|
790
790
|
`);n=r}throw new pt(n)}async function Ac(e,t){let n,r=!1,s=!1,i=0;for(;i<t.length;)if(t[i]==="--"){i++;break}else if(t[i]==="-L")s=!1,i++;else if(t[i]==="-P")s=!0,i++;else if(t[i].startsWith("-")&&t[i]!=="-")i++;else break;let a=t.slice(i);if(a.length===0||a[0]==="~"?n=e.state.env.get("HOME")||"/":a[0]==="-"?(n=e.state.previousDir,r=!0):n=a[0],!n.startsWith("/")&&!n.startsWith("./")&&!n.startsWith("../")&&n!=="."&&n!==".."){let f=e.state.env.get("CDPATH");if(f){let p=f.split(":").filter(h=>h);for(let h of p){let m=h.startsWith("/")?`${h}/${n}`:`${e.state.cwd}/${h}/${n}`;try{if((await e.fs.stat(m)).isDirectory){n=m,r=!0;break}}catch{}}}}let l=(n.startsWith("/")?n:`${e.state.cwd}/${n}`).split("/").filter(f=>f&&f!=="."),c="";for(let f of l)if(f==="..")c=c.split("/").slice(0,-1).join("/")||"/";else{c=c?`${c}/${f}`:`/${f}`;try{if(!(await e.fs.stat(c)).isDirectory)return W(`bash: cd: ${n}: Not a directory
|
|
791
791
|
`)}catch{return W(`bash: cd: ${n}: No such file or directory
|
|
792
792
|
`)}}let u=c||"/";if(s)try{u=await e.fs.realpath(u)}catch{}return e.state.previousDir=e.state.cwd,e.state.cwd=u,e.state.env.set("PWD",e.state.cwd),e.state.env.set("OLDPWD",e.state.previousDir),ge(r?`${u}
|
|
793
|
-
`:"")}Xe();mt();Xe();Me();Ct();Nt();Xt();function Sc(e,t){return e.fs.resolvePath(e.state.cwd,t)}var eE=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function fa(e){return eE.includes(e)}async function pa(e,t,n){let r=Sc(e,n);switch(t){case"-e":case"-a":return e.fs.exists(r);case"-f":return await e.fs.exists(r)?(await e.fs.stat(r)).isFile:!1;case"-d":return await e.fs.exists(r)?(await e.fs.stat(r)).isDirectory:!1;case"-r":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&256)!==0:!1;case"-w":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&128)!==0:!1;case"-x":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&64)!==0:!1;case"-s":return await e.fs.exists(r)?(await e.fs.stat(r)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(r)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&512)!==0:!1;case"-g":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(r);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].
|
|
793
|
+
`:"")}Xe();mt();Xe();Me();Ct();Nt();Xt();function Sc(e,t){return e.fs.resolvePath(e.state.cwd,t)}var eE=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function fa(e){return eE.includes(e)}async function pa(e,t,n){let r=Sc(e,n);switch(t){case"-e":case"-a":return e.fs.exists(r);case"-f":return await e.fs.exists(r)?(await e.fs.stat(r)).isFile:!1;case"-d":return await e.fs.exists(r)?(await e.fs.stat(r)).isDirectory:!1;case"-r":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&256)!==0:!1;case"-w":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&128)!==0:!1;case"-x":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&64)!==0:!1;case"-s":return await e.fs.exists(r)?(await e.fs.stat(r)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(r)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&512)!==0:!1;case"-g":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(r);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].includes(r);case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return e.fs.exists(r);default:return!1}}var tE=["-nt","-ot","-ef"];function ha(e){return tE.includes(e)}async function da(e,t,n,r){let s=Sc(e,n),i=Sc(e,r);switch(t){case"-nt":try{let a=await e.fs.stat(s),o=await e.fs.stat(i);return a.mtime>o.mtime}catch{return!1}case"-ot":try{let a=await e.fs.stat(s),o=await e.fs.stat(i);return a.mtime<o.mtime}catch{return!1}case"-ef":try{if(!await e.fs.exists(s)||!await e.fs.exists(i))return!1;let a=e.fs.resolvePath(e.state.cwd,s),o=e.fs.resolvePath(e.state.cwd,i);return a===o}catch{return!1}default:return!1}}var nE=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function ma(e){return nE.has(e)}function ga(e,t,n){switch(e){case"-eq":return t===n;case"-ne":return t!==n;case"-lt":return t<n;case"-le":return t<=n;case"-gt":return t>n;case"-ge":return t>=n}}function Ps(e){return e==="="||e==="=="||e==="!="}function ya(e,t,n,r=!1,s=!1,i=!1){if(r){let o=Zr(t,n,s,i);return e==="!="?!o:o}if(s){let o=t.toLowerCase()===n.toLowerCase();return e==="!="?!o:o}let a=t===n;return e==="!="?!a:a}var rE=new Set(["-z","-n"]);function wa(e){return rE.has(e)}function ba(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}mt();Xe();Ct();Xt();async function xa(e,t){let n=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(n){let r=n[1],s=n[2];if(e.state.associativeArrays?.has(r)){let o=s;return(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),o=o.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(l,c)=>e.state.env.get(c)||""),e.state.env.has(`${r}_${o}`)}let a;try{let o=new ce,l=Ae(o,s);a=await ne(e,l.expression)}catch{if(/^-?\d+$/.test(s))a=Number.parseInt(s,10);else{let o=e.state.env.get(s);a=o?Number.parseInt(o,10):0}}if(a<0){let o=Ye(e,r),l=e.state.currentLine;if(o.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
|
|
794
794
|
`,!1;if(a=Math.max(...o)+1+a,a<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
|
|
795
795
|
`,!1}return e.state.env.has(`${r}_${a}`)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?sn(e,t).length>0:Ye(e,t).length>0}async function Hn(e,t){switch(t.type){case"CondBinary":{let n=await ie(e,t.left),r=t.right.parts.length>0&&t.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped"&&t.operator!=="=~"),s;if(t.operator==="=~")if(r){let i=await ie(e,t.right);s=zr(i)}else s=await mc(e,t.right);else Ps(t.operator)&&!r?s=await gc(e,t.right):s=await ie(e,t.right);if(Ps(t.operator)){let i=e.state.shoptOptions.nocasematch;return ya(t.operator,n,s,!r,i,!0)}if(ma(t.operator))return ga(t.operator,await Sg(e,n),await Sg(e,s));if(ha(t.operator))return da(e,t.operator,n,s);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,a=oE(s),l=G(a,i?"i":"").match(n);if(wn(e,"BASH_REMATCH"),l)for(let c=0;c<l.length;c++)e.state.env.set(`BASH_REMATCH_${c}`,l[c]||"");return l!==null}catch{throw new Error("syntax error in regular expression")}case"<":return n<s;case">":return n>s;default:return!1}}case"CondUnary":{let n=await ie(e,t.operand);return fa(t.operator)?pa(e,t.operator,n):wa(t.operator)?ba(t.operator,n):t.operator==="-v"?await xa(e,n):t.operator==="-o"?Nc(e,n):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await ie(e,t.operand.expression.word)})`!=="":!await Hn(e,t.operand);case"CondAnd":return await Hn(e,t.left)?await Hn(e,t.right):!1;case"CondOr":return await Hn(e,t.left)?!0:await Hn(e,t.right);case"CondGroup":return await Hn(e,t.expression);case"CondWord":return await ie(e,t.word)!=="";default:return!1}}async function Ds(e,t){if(t.length===0)return B("","",1);if(t.length===1)return Je(!!t[0]);if(t.length===2){let r=t[0],s=t[1];return r==="("?W(`test: '(' without matching ')'
|
|
796
796
|
`,2):fa(r)?Je(await pa(e,r,s)):wa(r)?Je(ba(r,s)):r==="!"?Je(!s):r==="-v"?Je(await xa(e,s)):r==="-o"?Je(Nc(e,s)):r==="="||r==="=="||r==="!="||r==="<"||r===">"||r==="-eq"||r==="-ne"||r==="-lt"||r==="-le"||r==="-gt"||r==="-ge"||r==="-nt"||r==="-ot"||r==="-ef"?W(`test: ${r}: unary operator expected
|
|
@@ -887,7 +887,7 @@ Gid: ${r} ${r} ${r} ${r}
|
|
|
887
887
|
}
|
|
888
888
|
`;return ge(z)}let R=!0;for(let z of w)e.state.functions.has(z)||(R=!1);return B("","",R?0:1)}if(a&&w.length>0)return Bg(e,w);if(a&&w.length===0)return zg(e,{filterExport:i,filterReadonly:s,filterNameref:o,filterIndexedArray:n,filterAssocArray:r});if(w.length===0&&r&&!a)return Hg(e);if(w.length===0&&n&&!a)return jg(e);if(w.length===0&&!a)return Vg(e);let O="",F=0;for(let R of w){let z=R.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(z&&!c){let v=z[1],T=z[2];if(r&&Ye(e,v).length>0){O+=`bash: declare: ${v}: cannot convert indexed to associative array
|
|
889
889
|
`,F=1;continue}if((n||!r&&!n)&&e.state.associativeArrays?.has(v)){O+=`bash: declare: ${v}: cannot convert associative to indexed array
|
|
890
|
-
`,F=1;continue}if(S(v),r&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(v)),wn(e,v),e.state.env.delete(v),e.state.env.delete(`${v}__length`),r&&T.includes("[")){let L=Aa(T);for(let[ue,re]of L){let
|
|
890
|
+
`,F=1;continue}if(S(v),r&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(v)),wn(e,v),e.state.env.delete(v),e.state.env.delete(`${v}__length`),r&&T.includes("[")){let L=Aa(T);for(let[ue,re]of L){let ee=qe(e,re);e.state.env.set(`${v}_${ue}`,ee)}}else if(r){let L=An(T);for(let ue=0;ue<L.length;ue+=2){let re=L[ue],ee=ue+1<L.length?qe(e,L[ue+1]):"";e.state.env.set(`${v}_${re}`,ee)}}else{let L=An(T);if(L.some(re=>/^\[[^\]]+\]=/.test(re))){let re=0;for(let ee of L){let H=ee.match(/^\[([^\]]+)\]=(.*)$/);if(H){let X=H[1],Ee=H[2],ae=qe(e,Ee),ke;if(/^-?\d+$/.test(X))ke=Number.parseInt(X,10);else try{let j=new ce,ve=Ae(j,X);ke=await ne(e,ve.expression)}catch{ke=0}e.state.env.set(`${v}_${ke}`,ae),re=ke+1}else{let X=qe(e,ee);e.state.env.set(`${v}_${re}`,X),re++}}}else{for(let re=0;re<L.length;re++)e.state.env.set(`${v}_${re}`,L[re]);e.state.env.set(`${v}__length`,String(L.length))}}$(v),s&&Lt(e,v),i&&on(e,v);continue}if(l){let v=R.includes("=")?R.slice(0,R.indexOf("=")):R;if(Km(e,v),!R.includes("="))continue}if(u){let v=R.includes("=")?R.slice(0,R.indexOf("=")):R;if(ra(e,v),!R.includes("="))continue}let k=TE(R);if(k){let{name:v,indexExpr:T,value:L}=k,ue=it(e,v);if(ue)return ue;S(v);let re;try{let H=new ce,X=Ae(H,T);re=await ne(e,X.expression)}catch{let H=parseInt(T,10);re=Number.isNaN(H)?0:H}e.state.env.set(`${v}_${re}`,L);let ee=parseInt(e.state.env.get(`${v}__length`)??"0",10);re>=ee&&e.state.env.set(`${v}__length`,String(re+1)),$(v),s&&Lt(e,v),i&&on(e,v);continue}let N=R.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(N&&!c){let v=N[1],T=N[2],L=it(e,v);if(L)return L;S(v);let ue=An(T);if(e.state.associativeArrays?.has(v)){let re=Aa(T);for(let[ee,H]of re){let X=qe(e,H);e.state.env.set(`${v}_${ee}`,X)}}else{let re=Ye(e,v),ee=0,H=e.state.env.get(v);re.length===0&&H!==void 0?(e.state.env.set(`${v}_0`,H),e.state.env.delete(v),ee=1):re.length>0&&(ee=Math.max(...re)+1);for(let Ee=0;Ee<ue.length;Ee++)e.state.env.set(`${v}_${ee+Ee}`,qe(e,ue[Ee]));let X=ee+ue.length;e.state.env.set(`${v}__length`,String(X))}$(v),s&&Lt(e,v),i&&on(e,v);continue}let P=R.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(P){let v=P[1],T=qe(e,P[2]),L=it(e,v);if(L)return L;x(v),f&&Uc(e,v),p&&Wc(e,v),h&&Bc(e,v);let re=Ye(e,v).length>0||e.state.associativeArrays?.has(v);if(_s(e,v)){let ee=e.state.env.get(v)??"0",H=parseInt(ee,10)||0,X=parseInt(await Gg(e,T),10)||0;T=String(H+X),e.state.env.set(v,T)}else if(re){T=Yr(e,v,T);let ee=`${v}_0`,H=e.state.env.get(ee)??"";e.state.env.set(ee,H+T)}else{T=Yr(e,v,T);let ee=e.state.env.get(v)??"";e.state.env.set(v,ee+T)}$(v),s&&Lt(e,v),i&&on(e,v),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(v));continue}if(R.includes("=")){let v=R.indexOf("="),T=R.slice(0,v),L=R.slice(v+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(T)){O+=`bash: typeset: \`${T}': not a valid identifier
|
|
891
891
|
`,F=1;continue}let ue=it(e,T);if(ue)return ue;if(x(T),o){if(L!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(L)){O+=`bash: declare: \`${L}': invalid variable name for name reference
|
|
892
892
|
`,F=1;continue}e.state.env.set(T,L),vn(e,T),L!==""&&ta(e,L)&&ac(e,T),$(T),s&&Lt(e,T),i&&on(e,T);continue}if(f&&Uc(e,T),p&&Wc(e,T),h&&Bc(e,T),_s(e,T)&&(L=await Gg(e,L)),L=Yr(e,T,L),Te(e,T)){let re=St(e,T);re&&re!==T?e.state.env.set(re,L):e.state.env.set(T,L)}else e.state.env.set(T,L);$(T),s&&Lt(e,T),i&&on(e,T),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(T))}else{let v=R;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(v)){O+=`bash: typeset: \`${v}': not a valid identifier
|
|
893
893
|
`,F=1;continue}if(n||r?S(v):x(v),o){vn(e,v);let L=e.state.env.get(v);L!==void 0&&L!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(L)?Qm(e,v):L&&ta(e,L)&&ac(e,v),$(v),s&&Lt(e,v),i&&on(e,v);continue}if(f&&Uc(e,v),p&&Wc(e,v),h&&Bc(e,v),r){if(Ye(e,v).length>0){O+=`bash: declare: ${v}: cannot convert indexed to associative array
|