just-bash 1.4.2 → 1.5.2

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.
@@ -1,5 +1,5 @@
1
- var cf=Object.create;var In=Object.defineProperty;var lf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var ff=Object.getPrototypeOf,pf=Object.prototype.hasOwnProperty;var vn=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var A=(t,e)=>()=>(t&&(e=t(t=0)),e);var St=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),$=(t,e)=>{for(var r in e)In(t,r,{get:e[r],enumerable:!0})},df=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of uf(e))!pf.call(t,s)&&s!==r&&In(t,s,{get:()=>e[s],enumerable:!(n=lf(e,s))||n.enumerable});return t};var Si=(t,e,r)=>(r=t!=null?cf(ff(t)):{},df(e||!t||!t.__esModule?In(r,"default",{value:t,enumerable:!0}):r,t));var Ai={};$(Ai,{echoCommand:()=>mf});function hf(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"){if(r+1>=t.length){e+="\\";break}let n=t[r+1];switch(n){case"\\":e+="\\",r+=2;break;case"n":e+=`
2
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"c":return{output:e,stop:!0};case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\0";else{let o=parseInt(s,8)%256;e+=String.fromCharCode(o)}r=i;break}case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\x",r+=2;else{let o=parseInt(s,16);e+=String.fromCharCode(o),r=i}break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\u",r+=2;else{let o=parseInt(s,16);e+=String.fromCodePoint(o),r=i}break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\U",r+=2;else{let o=parseInt(s,16);try{e+=String.fromCodePoint(o)}catch{e+=`\\U${s}`}r=i}break}default:e+=`\\${n}`,r+=2}}else e+=t[r],r++;return{output:e,stop:!1}}var mf,Ci=A(()=>{"use strict";mf={name:"echo",async execute(t,e){let r=!1,n=!1,s=0;for(;s<t.length;){let o=t[s];if(o==="-n")r=!0,s++;else if(o==="-e")n=!0,s++;else if(o==="-E")n=!1,s++;else if(o==="-ne"||o==="-en")r=!0,n=!0,s++;else break}let i=t.slice(s).join(" ");if(n){let o=hf(i);if(i=o.output,o.stop)return{stdout:i,stderr:"",exitCode:0}}return r||(i+=`
1
+ var wf=Object.create;var $n=Object.defineProperty;var Ef=Object.getOwnPropertyDescriptor;var bf=Object.getOwnPropertyNames;var Sf=Object.getPrototypeOf,Af=Object.prototype.hasOwnProperty;var On=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var A=(t,e)=>()=>(t&&(e=t(t=0)),e);var St=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),$=(t,e)=>{for(var r in e)$n(t,r,{get:e[r],enumerable:!0})},Cf=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of bf(e))!Af.call(t,s)&&s!==r&&$n(t,s,{get:()=>e[s],enumerable:!(n=Ef(e,s))||n.enumerable});return t};var vi=(t,e,r)=>(r=t!=null?wf(Sf(t)):{},Cf(e||!t||!t.__esModule?$n(r,"default",{value:t,enumerable:!0}):r,t));var Ri={};$(Ri,{echoCommand:()=>Nf});function kf(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"){if(r+1>=t.length){e+="\\";break}let n=t[r+1];switch(n){case"\\":e+="\\",r+=2;break;case"n":e+=`
2
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"c":return{output:e,stop:!0};case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\0";else{let o=parseInt(s,8)%256;e+=String.fromCharCode(o)}r=i;break}case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\x",r+=2;else{let o=parseInt(s,16);e+=String.fromCharCode(o),r=i}break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\u",r+=2;else{let o=parseInt(s,16);e+=String.fromCodePoint(o),r=i}break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;if(s.length===0)e+="\\U",r+=2;else{let o=parseInt(s,16);try{e+=String.fromCodePoint(o)}catch{e+=`\\U${s}`}r=i}break}default:e+=`\\${n}`,r+=2}}else e+=t[r],r++;return{output:e,stop:!1}}var Nf,$i=A(()=>{"use strict";Nf={name:"echo",async execute(t,e){let r=!1,n=!1,s=0;for(;s<t.length;){let o=t[s];if(o==="-n")r=!0,s++;else if(o==="-e")n=!0,s++;else if(o==="-E")n=!1,s++;else if(o==="-ne"||o==="-en")r=!0,n=!0,s++;else break}let i=t.slice(s).join(" ");if(n){let o=kf(i);if(i=o.output,o.stop)return{stdout:i,stderr:"",exitCode:0}}return r||(i+=`
3
3
  `),{stdout:i,stderr:"",exitCode:0}}}});function N(t){let e=`${t.name} - ${t.summary}
4
4
 
5
5
  `;if(e+=`Usage: ${t.usage}
@@ -21,73 +21,73 @@ Notes:
21
21
  `;for(let r of t.notes)e+=` ${r}
22
22
  `}return{stdout:e,stderr:"",exitCode:0}}function I(t){return t.includes("--help")}function L(t,e){return{stdout:"",stderr:e.startsWith("--")?`${t}: unrecognized option '${e}'
23
23
  `:`${t}: invalid option -- '${e.replace(/^-/,"")}'
24
- `,exitCode:1}}var _=A(()=>{"use strict"});function G(t,e,r){let n=new Map,s=new Map;for(let[c,l]of Object.entries(r)){let u={name:c,type:l.type};l.short&&n.set(l.short,u),l.long&&s.set(l.long,u)}let i={};for(let[c,l]of Object.entries(r))l.default!==void 0?i[c]=l.default:l.type==="boolean"&&(i[c]=!1);let o=[],a=!1;for(let c=0;c<e.length;c++){let l=e[c];if(a||!l.startsWith("-")||l==="-"){o.push(l);continue}if(l==="--"){a=!0;continue}if(l.startsWith("--")){let u=l.indexOf("="),f,p;u!==-1?(f=l.slice(2,u),p=l.slice(u+1)):f=l.slice(2);let d=s.get(f);if(!d)return{ok:!1,error:L(t,l)};let{name:h,type:g}=d;if(g==="boolean")i[h]=!0;else{if(p===void 0){if(c+1>=e.length)return{ok:!1,error:{stdout:"",stderr:`${t}: option '--${f}' requires an argument
25
- `,exitCode:1}};p=e[++c]}i[h]=g==="number"?parseInt(p,10):p}}else{let u=l.slice(1);for(let f=0;f<u.length;f++){let p=u[f],d=n.get(p);if(!d)return{ok:!1,error:L(t,`-${p}`)};let{name:h,type:g}=d;if(g==="boolean")i[h]=!0;else{let y;if(f+1<u.length)y=u.slice(f+1);else if(c+1<e.length)y=e[++c];else return{ok:!1,error:{stdout:"",stderr:`${t}: option requires an argument -- '${p}'
26
- `,exitCode:1}};i[h]=g==="number"?parseInt(y,10):y;break}}}}return{ok:!0,result:{flags:i,positional:o}}}var fe=A(()=>{"use strict";_()});async function qt(t,e,r){let{cmdName:n,allowStdinMarker:s=!0,stopOnError:i=!1}=r;if(e.length===0)return{files:[{filename:"",content:t.stdin}],stderr:"",exitCode:0};let o=[],a="",c=0;for(let l of e){if(s&&l==="-"){o.push({filename:"-",content:t.stdin});continue}try{let u=t.fs.resolvePath(t.cwd,l),f=await t.fs.readFile(u);o.push({filename:l,content:f})}catch{if(a+=`${n}: ${l}: No such file or directory
27
- `,c=1,i)return{files:o,stderr:a,exitCode:c}}}return{files:o,stderr:a,exitCode:c}}async function At(t,e,r){let n=await qt(t,e,{...r,stopOnError:!0});return n.exitCode!==0?{ok:!1,error:{stdout:"",stderr:n.stderr,exitCode:n.exitCode}}:{ok:!0,content:n.files.map(i=>i.content).join("")}}var Ct=A(()=>{"use strict"});var ki={};$(ki,{catCommand:()=>xf});function wf(t,e){let r=t.split(`
24
+ `,exitCode:1}}var _=A(()=>{"use strict"});function j(t,e,r){let n=new Map,s=new Map;for(let[c,l]of Object.entries(r)){let u={name:c,type:l.type};l.short&&n.set(l.short,u),l.long&&s.set(l.long,u)}let i={};for(let[c,l]of Object.entries(r))l.default!==void 0?i[c]=l.default:l.type==="boolean"&&(i[c]=!1);let o=[],a=!1;for(let c=0;c<e.length;c++){let l=e[c];if(a||!l.startsWith("-")||l==="-"){o.push(l);continue}if(l==="--"){a=!0;continue}if(l.startsWith("--")){let u=l.indexOf("="),f,p;u!==-1?(f=l.slice(2,u),p=l.slice(u+1)):f=l.slice(2);let d=s.get(f);if(!d)return{ok:!1,error:L(t,l)};let{name:h,type:g}=d;if(g==="boolean")i[h]=!0;else{if(p===void 0){if(c+1>=e.length)return{ok:!1,error:{stdout:"",stderr:`${t}: option '--${f}' requires an argument
25
+ `,exitCode:1}};p=e[++c]}i[h]=g==="number"?parseInt(p,10):p}}else{let u=l.slice(1);for(let f=0;f<u.length;f++){let p=u[f],d=n.get(p);if(!d)return{ok:!1,error:L(t,`-${p}`)};let{name:h,type:g}=d;if(g==="boolean")i[h]=!0;else{let m;if(f+1<u.length)m=u.slice(f+1);else if(c+1<e.length)m=e[++c];else return{ok:!1,error:{stdout:"",stderr:`${t}: option requires an argument -- '${p}'
26
+ `,exitCode:1}};i[h]=g==="number"?parseInt(m,10):m;break}}}}return{ok:!0,result:{flags:i,positional:o}}}var le=A(()=>{"use strict";_()});async function qt(t,e,r){let{cmdName:n,allowStdinMarker:s=!0,stopOnError:i=!1}=r;if(e.length===0)return{files:[{filename:"",content:t.stdin}],stderr:"",exitCode:0};let o=[],a="",c=0;for(let l of e){if(s&&l==="-"){o.push({filename:"-",content:t.stdin});continue}try{let u=t.fs.resolvePath(t.cwd,l),f=await t.fs.readFile(u);o.push({filename:l,content:f})}catch{if(a+=`${n}: ${l}: No such file or directory
27
+ `,c=1,i)return{files:o,stderr:a,exitCode:c}}}return{files:o,stderr:a,exitCode:c}}async function At(t,e,r){let n=await qt(t,e,{...r,stopOnError:!0});return n.exitCode!==0?{ok:!1,error:{stdout:"",stderr:n.stderr,exitCode:n.exitCode}}:{ok:!0,content:n.files.map(i=>i.content).join("")}}var Ct=A(()=>{"use strict"});var Oi={};$(Oi,{catCommand:()=>Rf});function $f(t,e){let r=t.split(`
28
28
  `),n=t.endsWith(`
29
29
  `),s=n?r.slice(0,-1):r;return{content:s.map((o,a)=>`${String(e+a).padStart(6," ")} ${o}`).join(`
30
30
  `)+(n?`
31
- `:""),nextLineNumber:e+s.length}}var yf,gf,xf,Ni=A(()=>{"use strict";fe();Ct();_();yf={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},gf={number:{short:"n",long:"number",type:"boolean"}},xf={name:"cat",async execute(t,e){if(I(t))return N(yf);let r=G("cat",t,gf);if(!r.ok)return r.error;let n=r.result.flags.number,s=r.result.positional,i=await qt(e,s,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),o="",a=1;for(let{content:c}of i.files)if(n){let l=wf(c,a);o+=l.content,a=l.nextLineNumber}else o+=c;return{stdout:o,stderr:i.stderr,exitCode:i.exitCode}}}});function re(t){return t instanceof Error?t.message:String(t)}var We=A(()=>{"use strict"});function gr(t,e,r){let n=t;r>=0&&n.length>r&&(n=n.slice(0,r));let s=Math.abs(e);return s>n.length&&(e<0?n=n.padEnd(s," "):n=n.padStart(s," ")),n}function Ii(t,e){let r=e,n=0,s=-1,i=!1;for(r<t.length&&t[r]==="-"&&(i=!0,r++);r<t.length&&/\d/.test(t[r]);)n=n*10+parseInt(t[r],10),r++;if(r<t.length&&t[r]===".")for(r++,s=0;r<t.length&&/\d/.test(t[r]);)s=s*10+parseInt(t[r],10),r++;return i&&n>0&&(n=-n),[n,s,r-e]}function xr(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
32
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}case"x":r+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(r+2,r+4))?(e+=String.fromCharCode(parseInt(t.slice(r+2,r+4),16)),r+=4):(e+=t[r],r++);break;case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\U",r+=2);break}default:e+=t[r],r++}else e+=t[r],r++;return e}var Rn=A(()=>{"use strict"});var Ri={};$(Ri,{printfCommand:()=>bf});import{sprintf as kt}from"sprintf-js";function Sf(t,e,r){let n="",s=0,i=0,o=!1,a="";for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let c=s;if(s++,t[s]==="%"){n+="%",s++;continue}for(;s<t.length&&"+-0 #'".includes(t[s]);)s++;let l=!1;if(t[s]==="*")l=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;let u=!1;if(t[s]===".")if(s++,t[s]==="*")u=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;s<t.length&&"hlL".includes(t[s])&&s++;let f=t[s]||"";s++;let d=t.slice(c,s);if(l){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace("*",String(b))}if(u){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace(".*",`.${b}`)}let h=e[r+i]||"";i++;let{value:g,parseError:y,parseErrMsg:w,stopped:E}=Af(d,f,h);if(n+=g,y&&(o=!0,w&&(a=w)),E)return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!0}}else n+=t[s],s++;return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!1}}function Af(t,e,r){let n=!1,s="";switch(e){case"d":case"i":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
33
- `),{value:vi(t,i),parseError:n,parseErrMsg:s}}case"o":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
34
- `),{value:Cf(t,i),parseError:n,parseErrMsg:s}}case"u":{let i=wr(r);n=Ue,n&&(s=`printf: ${r}: invalid number
35
- `);let o=i<0?i>>>0:i;return{value:vi(t.replace("u","d"),o),parseError:n,parseErrMsg:s}}case"x":case"X":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
36
- `),{value:kf(t,i),parseError:n,parseErrMsg:s}}case"e":case"E":case"f":case"F":case"g":case"G":{let i=parseFloat(r)||0;return{value:Rf(t,e,i),parseError:!1,parseErrMsg:""}}case"c":return{value:r.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:If(t,r),parseError:!1,parseErrMsg:""};case"q":return{value:vf(t,r),parseError:!1,parseErrMsg:""};case"b":{let i=$f(r);return{value:i.value,parseError:!1,parseErrMsg:"",stopped:i.stopped}}default:try{return{value:kt(t,r),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
37
- `}}}}function wr(t){Ue=!1;let e=t.trimStart(),r=e!==e.trimEnd();if(t=e.trimEnd(),t.startsWith("'")&&t.length>=2||t.startsWith('"')&&t.length>=2)return t.charCodeAt(1);if(t.startsWith("\\'")&&t.length>=3||t.startsWith('\\"')&&t.length>=3)return t.charCodeAt(2);if(t.startsWith("+")&&(t=t.slice(1)),t.startsWith("0x")||t.startsWith("0X")){let n=parseInt(t,16);return Number.isNaN(n)?(Ue=!0,0):(r&&(Ue=!0),n)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return r&&(Ue=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){Ue=!0;let n=t.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){Ue=!0;let n=parseInt(t,10);return Number.isNaN(n)?0:n}return r&&(Ue=!0),parseInt(t,10)||0}function vi(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!r)return kt(t.replace(/\.\d*/,""),e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=e<0,a=Math.abs(e),c=String(a);i>=0&&(c=c.padStart(i,"0"));let l="";o?l="-":n.includes("+")?l="+":n.includes(" ")&&(l=" ");let u=l+c;return s>u.length&&(n.includes("-")?u=u.padEnd(s," "):n.includes("0")&&i<0?u=l+c.padStart(s-l.length,"0"):u=u.padStart(s," ")),u}function Cf(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!r)return kt(t,e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=Math.abs(e).toString(8);i>=0&&(o=o.padStart(i,"0")),n.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let a=o;return s>a.length&&(n.includes("-")?a=a.padEnd(s," "):n.includes("0")&&i<0?a=a.padStart(s,"0"):a=a.padStart(s," ")),a}function kf(t,e){let r=t.includes("X"),n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return kt(t,e);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(e).toString(16);r&&(a=a.toUpperCase()),o>=0&&(a=a.padStart(o,"0"));let c="";s.includes("#")&&e!==0&&(c=r?"0X":"0x");let l=c+a;return i>l.length&&(s.includes("-")?l=l.padEnd(i," "):s.includes("0")&&o<0?l=c+a.padStart(i-c.length,"0"):l=l.padStart(i," ")),l}function Nf(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f]/.test(t)){let n="$'";for(let s of t){let i=s.charCodeAt(0);s==="'"?n+="\\'":s==="\\"?n+="\\\\":s===`
38
- `?n+="\\n":s===" "?n+="\\t":s==="\r"?n+="\\r":s==="\x07"?n+="\\a":s==="\b"?n+="\\b":s==="\f"?n+="\\f":s==="\v"?n+="\\v":s==="\x1B"?n+="\\E":i<32||i>126?n+=`\\x${i.toString(16).padStart(2,"0")}`:s==='"'?n+='\\"':n+=s}return n+="'",n}let r="";for(let n of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?r+=`\\${n}`:r+=n;return r}function If(t,e){let r=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!r)return kt(t.replace(/0+(?=\d)/,""),e);let n=r[1]==="-",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=n?-s:s;return gr(e,o,i)}function vf(t,e){let r=Nf(e),n=t.match(/^%(-?)(\d*)q$/);if(!n)return r;let s=n[1]==="-",i=n[2]?parseInt(n[2],10):0,o=r;return i>o.length&&(s?o=o.padEnd(i," "):o=o.padStart(i," ")),o}function Rf(t,e,r){let n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return kt(t,r);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,c=e.toLowerCase();if(c==="e"?(a=r.toExponential(o),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="E"&&(a=a.toUpperCase())):c==="f"?(a=r.toFixed(o),s.includes("#")&&o===0&&!a.includes(".")&&(a+=".")):c==="g"?(a=r.toPrecision(o||1),s.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="G"&&(a=a.toUpperCase())):a=r.toString(),r>=0&&(s.includes("+")?a=`+${a}`:s.includes(" ")&&(a=` ${a}`)),i>a.length)if(s.includes("-"))a=a.padEnd(i," ");else if(s.includes("0")){let l=a.match(/^[+ -]/)?.[0]||"",u=l?a.slice(1):a;a=l+u.padStart(i-l.length,"0")}else a=a.padStart(i," ");return a}function $f(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
39
- `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"c":return{value:e,stopped:!0};case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCharCode(parseInt(s,16)),r=i):(e+="\\x",r+=2);break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;s?e+=String.fromCharCode(parseInt(s,8)):e+="\0",r=i;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}default:e+=t[r],r++}else e+=t[r],r++;return{value:e,stopped:!1}}var Ef,bf,Ue,$i=A(()=>{"use strict";We();_();Rn();Ef={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},bf={name:"printf",async execute(t,e){if(I(t))return N(Ef);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
31
+ `:""),nextLineNumber:e+s.length}}var If,vf,Rf,Pi=A(()=>{"use strict";le();Ct();_();If={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},vf={number:{short:"n",long:"number",type:"boolean"}},Rf={name:"cat",async execute(t,e){if(I(t))return N(If);let r=j("cat",t,vf);if(!r.ok)return r.error;let n=r.result.flags.number,s=r.result.positional,i=await qt(e,s,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),o="",a=1;for(let{content:c}of i.files)if(n){let l=$f(c,a);o+=l.content,a=l.nextLineNumber}else o+=c;return{stdout:o,stderr:i.stderr,exitCode:i.exitCode}}}});function re(t){return t instanceof Error?t.message:String(t)}var We=A(()=>{"use strict"});function gr(t,e,r){let n=t;r>=0&&n.length>r&&(n=n.slice(0,r));let s=Math.abs(e);return s>n.length&&(e<0?n=n.padEnd(s," "):n=n.padStart(s," ")),n}function Ti(t,e){let r=e,n=0,s=-1,i=!1;for(r<t.length&&t[r]==="-"&&(i=!0,r++);r<t.length&&/\d/.test(t[r]);)n=n*10+parseInt(t[r],10),r++;if(r<t.length&&t[r]===".")for(r++,s=0;r<t.length&&/\d/.test(t[r]);)s=s*10+parseInt(t[r],10),r++;return i&&n>0&&(n=-n),[n,s,r-e]}function xr(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
32
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"e":case"E":e+="\x1B",r+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}case"x":r+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(r+2,r+4))?(e+=String.fromCharCode(parseInt(t.slice(r+2,r+4),16)),r+=4):(e+=t[r],r++);break;case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"U":{let s="",i=r+2;for(;i<t.length&&i<r+10&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\U",r+=2);break}default:e+=t[r],r++}else e+=t[r],r++;return e}var Pn=A(()=>{"use strict"});var Di={};$(Di,{printfCommand:()=>Pf});import{sprintf as kt}from"sprintf-js";function Tf(t,e,r){let n="",s=0,i=0,o=!1,a="";for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let c=s;if(s++,t[s]==="%"){n+="%",s++;continue}for(;s<t.length&&"+-0 #'".includes(t[s]);)s++;let l=!1;if(t[s]==="*")l=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;let u=!1;if(t[s]===".")if(s++,t[s]==="*")u=!0,s++;else for(;s<t.length&&/\d/.test(t[s]);)s++;s<t.length&&"hlL".includes(t[s])&&s++;let f=t[s]||"";s++;let d=t.slice(c,s);if(l){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace("*",String(b))}if(u){let b=parseInt(e[r+i]||"0",10);i++,d=d.replace(".*",`.${b}`)}let h=e[r+i]||"";i++;let{value:g,parseError:m,parseErrMsg:w,stopped:E}=Ff(d,f,h);if(n+=g,m&&(o=!0,w&&(a=w)),E)return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!0}}else n+=t[s],s++;return{result:n,argsConsumed:i,error:o,errMsg:a,stopped:!1}}function Ff(t,e,r){let n=!1,s="";switch(e){case"d":case"i":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
33
+ `),{value:Fi(t,i),parseError:n,parseErrMsg:s}}case"o":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
34
+ `),{value:Df(t,i),parseError:n,parseErrMsg:s}}case"u":{let i=wr(r);n=Ue,n&&(s=`printf: ${r}: invalid number
35
+ `);let o=i<0?i>>>0:i;return{value:Fi(t.replace("u","d"),o),parseError:n,parseErrMsg:s}}case"x":case"X":{let i=wr(r);return n=Ue,n&&(s=`printf: ${r}: invalid number
36
+ `),{value:Lf(t,i),parseError:n,parseErrMsg:s}}case"e":case"E":case"f":case"F":case"g":case"G":{let i=parseFloat(r)||0;return{value:Wf(t,e,i),parseError:!1,parseErrMsg:""}}case"c":return{value:r.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:_f(t,r),parseError:!1,parseErrMsg:""};case"q":return{value:Bf(t,r),parseError:!1,parseErrMsg:""};case"b":{let i=Uf(r);return{value:i.value,parseError:!1,parseErrMsg:"",stopped:i.stopped}}default:try{return{value:kt(t,r),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
37
+ `}}}}function wr(t){Ue=!1;let e=t.trimStart(),r=e!==e.trimEnd();if(t=e.trimEnd(),t.startsWith("'")&&t.length>=2||t.startsWith('"')&&t.length>=2)return t.charCodeAt(1);if(t.startsWith("\\'")&&t.length>=3||t.startsWith('\\"')&&t.length>=3)return t.charCodeAt(2);if(t.startsWith("+")&&(t=t.slice(1)),t.startsWith("0x")||t.startsWith("0X")){let n=parseInt(t,16);return Number.isNaN(n)?(Ue=!0,0):(r&&(Ue=!0),n)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return r&&(Ue=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){Ue=!0;let n=t.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){Ue=!0;let n=parseInt(t,10);return Number.isNaN(n)?0:n}return r&&(Ue=!0),parseInt(t,10)||0}function Fi(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!r)return kt(t.replace(/\.\d*/,""),e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=e<0,a=Math.abs(e),c=String(a);i>=0&&(c=c.padStart(i,"0"));let l="";o?l="-":n.includes("+")?l="+":n.includes(" ")&&(l=" ");let u=l+c;return s>u.length&&(n.includes("-")?u=u.padEnd(s," "):n.includes("0")&&i<0?u=l+c.padStart(s-l.length,"0"):u=u.padStart(s," ")),u}function Df(t,e){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!r)return kt(t,e);let n=r[1]||"",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=Math.abs(e).toString(8);i>=0&&(o=o.padStart(i,"0")),n.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let a=o;return s>a.length&&(n.includes("-")?a=a.padEnd(s," "):n.includes("0")&&i<0?a=a.padStart(s,"0"):a=a.padStart(s," ")),a}function Lf(t,e){let r=t.includes("X"),n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return kt(t,e);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(e).toString(16);r&&(a=a.toUpperCase()),o>=0&&(a=a.padStart(o,"0"));let c="";s.includes("#")&&e!==0&&(c=r?"0X":"0x");let l=c+a;return i>l.length&&(s.includes("-")?l=l.padEnd(i," "):s.includes("0")&&o<0?l=c+a.padStart(i-c.length,"0"):l=l.padStart(i," ")),l}function Mf(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f]/.test(t)){let n="$'";for(let s of t){let i=s.charCodeAt(0);s==="'"?n+="\\'":s==="\\"?n+="\\\\":s===`
38
+ `?n+="\\n":s===" "?n+="\\t":s==="\r"?n+="\\r":s==="\x07"?n+="\\a":s==="\b"?n+="\\b":s==="\f"?n+="\\f":s==="\v"?n+="\\v":s==="\x1B"?n+="\\E":i<32||i>126?n+=`\\x${i.toString(16).padStart(2,"0")}`:s==='"'?n+='\\"':n+=s}return n+="'",n}let r="";for(let n of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?r+=`\\${n}`:r+=n;return r}function _f(t,e){let r=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!r)return kt(t.replace(/0+(?=\d)/,""),e);let n=r[1]==="-",s=r[2]?parseInt(r[2],10):0,i=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=n?-s:s;return gr(e,o,i)}function Bf(t,e){let r=Mf(e),n=t.match(/^%(-?)(\d*)q$/);if(!n)return r;let s=n[1]==="-",i=n[2]?parseInt(n[2],10):0,o=r;return i>o.length&&(s?o=o.padEnd(i," "):o=o.padStart(i," ")),o}function Wf(t,e,r){let n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return kt(t,r);let s=n[1]||"",i=n[2]?parseInt(n[2],10):0,o=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,c=e.toLowerCase();if(c==="e"?(a=r.toExponential(o),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="E"&&(a=a.toUpperCase())):c==="f"?(a=r.toFixed(o),s.includes("#")&&o===0&&!a.includes(".")&&(a+=".")):c==="g"?(a=r.toPrecision(o||1),s.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),e==="G"&&(a=a.toUpperCase())):a=r.toString(),r>=0&&(s.includes("+")?a=`+${a}`:s.includes(" ")&&(a=` ${a}`)),i>a.length)if(s.includes("-"))a=a.padEnd(i," ");else if(s.includes("0")){let l=a.match(/^[+ -]/)?.[0]||"",u=l?a.slice(1):a;a=l+u.padStart(i-l.length,"0")}else a=a.padStart(i," ");return a}function Uf(t){let e="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":e+=`
39
+ `,r+=2;break;case"t":e+=" ",r+=2;break;case"r":e+="\r",r+=2;break;case"\\":e+="\\",r+=2;break;case"a":e+="\x07",r+=2;break;case"b":e+="\b",r+=2;break;case"f":e+="\f",r+=2;break;case"v":e+="\v",r+=2;break;case"c":return{value:e,stopped:!0};case"x":{let s="",i=r+2;for(;i<t.length&&i<r+4&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCharCode(parseInt(s,16)),r=i):(e+="\\x",r+=2);break}case"u":{let s="",i=r+2;for(;i<t.length&&i<r+6&&/[0-9a-fA-F]/.test(t[i]);)s+=t[i],i++;s?(e+=String.fromCodePoint(parseInt(s,16)),r=i):(e+="\\u",r+=2);break}case"0":{let s="",i=r+2;for(;i<t.length&&i<r+5&&/[0-7]/.test(t[i]);)s+=t[i],i++;s?e+=String.fromCharCode(parseInt(s,8)):e+="\0",r=i;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",i=r+1;for(;i<t.length&&i<r+4&&/[0-7]/.test(t[i]);)s+=t[i],i++;e+=String.fromCharCode(parseInt(s,8)),r=i;break}default:e+=t[r],r++}else e+=t[r],r++;return{value:e,stopped:!1}}var Of,Pf,Ue,Li=A(()=>{"use strict";We();_();Pn();Of={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},Pf={name:"printf",async execute(t,e){if(I(t))return N(Of);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
40
40
  `,exitCode:2};let r=null,n=0;for(;n<t.length;){let o=t[n];if(o==="--"){n++;break}if(o==="-v"){if(n+1>=t.length)return{stdout:"",stderr:`printf: -v: option requires an argument
41
41
  `,exitCode:1};if(r=t[n+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?$/.test(r))return{stdout:"",stderr:`printf: \`${r}': not a valid identifier
42
42
  `,exitCode:2};n+=2}else{if(o.startsWith("-")&&o!=="-")break;break}}if(n>=t.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
43
- `,exitCode:1};let s=t[n],i=t.slice(n+1);try{let o=xr(s),a="",c=0,l=!1,u="";do{let{result:f,argsConsumed:p,error:d,errMsg:h,stopped:g}=Sf(o,i,c);if(a+=f,c+=p,d&&(l=!0,h&&(u=h)),g)break}while(c<i.length&&c>0);return c===0&&i.length>0,r?(e.env[r]=a,{stdout:"",stderr:u,exitCode:l?1:0}):{stdout:a,stderr:u,exitCode:l?1:0}}catch(o){return{stdout:"",stderr:`printf: ${re(o)}
44
- `,exitCode:1}}}};Ue=!1});var Ti={};$(Ti,{lsCommand:()=>Tf});import{minimatch as Oi}from"minimatch";function Er(t){if(t<1024)return String(t);if(t<1024*1024){let r=t/1024;return r<10?`${r.toFixed(1)}K`:`${Math.round(r)}K`}if(t<1024*1024*1024){let r=t/1048576;return r<10?`${r.toFixed(1)}M`:`${Math.round(r)}M`}let e=t/(1024*1024*1024);return e<10?`${e.toFixed(1)}G`:`${Math.round(e)}G`}function br(t){let r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],n=String(t.getDate()).padStart(2," "),s=new Date,i=new Date(s.getTime()-4320*60*60*1e3);if(t>i){let a=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${r} ${n} ${a}:${c}`}let o=t.getFullYear();return`${r} ${n} ${o}`}async function Ff(t,e,r,n,s,i=!1,o=!1,a=!1){let c=r||n,l=e.fs.getAllPaths(),u=e.fs.resolvePath(e.cwd,"."),f=[];for(let p of l){let d=p.startsWith(u)&&p.slice(u.length+1)||p;if(Oi(d,t)||Oi(p,t)){let h=d.split("/").pop()||d;if(!c&&h.startsWith("."))continue;f.push(d||p)}}if(f.length===0)return{stdout:"",stderr:`ls: ${t}: No such file or directory
45
- `,exitCode:2};if(a){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let g=await e.fs.stat(h);p.push({path:d,size:g.size??0})}catch{p.push({path:d,size:0})}}p.sort((d,h)=>h.size-d.size),f.length=0,f.push(...p.map(d=>d.path))}else f.sort();if(i&&f.reverse(),s){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let g=await e.fs.stat(h),y=g.isDirectory?"drwxr-xr-x":"-rw-r--r--",w=g.isDirectory?"/":"",E=g.size??0,b=o?Er(E).padStart(5):String(E).padStart(5),S=g.mtime??new Date(0),C=br(S);p.push(`${y} 1 user user ${b} ${C} ${d}${w}`)}catch{p.push(`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${d}`)}}return{stdout:`${p.join(`
43
+ `,exitCode:1};let s=t[n],i=t.slice(n+1);try{let o=xr(s),a="",c=0,l=!1,u="";do{let{result:f,argsConsumed:p,error:d,errMsg:h,stopped:g}=Tf(o,i,c);if(a+=f,c+=p,d&&(l=!0,h&&(u=h)),g)break}while(c<i.length&&c>0);return c===0&&i.length>0,r?(e.env[r]=a,{stdout:"",stderr:u,exitCode:l?1:0}):{stdout:a,stderr:u,exitCode:l?1:0}}catch(o){return{stdout:"",stderr:`printf: ${re(o)}
44
+ `,exitCode:1}}}};Ue=!1});var Bi={};$(Bi,{lsCommand:()=>jf});import{minimatch as Mi}from"minimatch";function Er(t){if(t<1024)return String(t);if(t<1024*1024){let r=t/1024;return r<10?`${r.toFixed(1)}K`:`${Math.round(r)}K`}if(t<1024*1024*1024){let r=t/1048576;return r<10?`${r.toFixed(1)}M`:`${Math.round(r)}M`}let e=t/(1024*1024*1024);return e<10?`${e.toFixed(1)}G`:`${Math.round(e)}G`}function br(t){let r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],n=String(t.getDate()).padStart(2," "),s=new Date,i=new Date(s.getTime()-4320*60*60*1e3);if(t>i){let a=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${r} ${n} ${a}:${c}`}let o=t.getFullYear();return`${r} ${n} ${o}`}async function Gf(t,e,r,n,s,i=!1,o=!1,a=!1){let c=r||n,l=e.fs.getAllPaths(),u=e.fs.resolvePath(e.cwd,"."),f=[];for(let p of l){let d=p.startsWith(u)&&p.slice(u.length+1)||p;if(Mi(d,t)||Mi(p,t)){let h=d.split("/").pop()||d;if(!c&&h.startsWith("."))continue;f.push(d||p)}}if(f.length===0)return{stdout:"",stderr:`ls: ${t}: No such file or directory
45
+ `,exitCode:2};if(a){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let g=await e.fs.stat(h);p.push({path:d,size:g.size??0})}catch{p.push({path:d,size:0})}}p.sort((d,h)=>h.size-d.size),f.length=0,f.push(...p.map(d=>d.path))}else f.sort();if(i&&f.reverse(),s){let p=[];for(let d of f){let h=e.fs.resolvePath(e.cwd,d);try{let g=await e.fs.stat(h),m=g.isDirectory?"drwxr-xr-x":"-rw-r--r--",w=g.isDirectory?"/":"",E=g.size??0,b=o?Er(E).padStart(5):String(E).padStart(5),S=g.mtime??new Date(0),C=br(S);p.push(`${m} 1 user user ${b} ${C} ${d}${w}`)}catch{p.push(`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${d}`)}}return{stdout:`${p.join(`
46
46
  `)}
47
47
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
48
48
  `)}
49
- `,stderr:"",exitCode:0}}async function Pi(t,e,r,n,s,i,o,a=!1,c=!1,l=!1,u=!1){let f=r||n,p=e.fs.resolvePath(e.cwd,t);try{let d=await e.fs.stat(p);if(!d.isDirectory){if(s){let y=d.size??0,w=c?Er(y).padStart(5):String(y).padStart(5),E=d.mtime??new Date(0),b=br(E);return{stdout:`-rw-r--r-- 1 user user ${w} ${b} ${t}
49
+ `,stderr:"",exitCode:0}}async function _i(t,e,r,n,s,i,o,a=!1,c=!1,l=!1,u=!1){let f=r||n,p=e.fs.resolvePath(e.cwd,t);try{let d=await e.fs.stat(p);if(!d.isDirectory){if(s){let m=d.size??0,w=c?Er(m).padStart(5):String(m).padStart(5),E=d.mtime??new Date(0),b=br(E);return{stdout:`-rw-r--r-- 1 user user ${w} ${b} ${t}
50
50
  `,stderr:"",exitCode:0}}return{stdout:`${t}
51
- `,stderr:"",exitCode:0}}let h=await e.fs.readdir(p);if(f||(h=h.filter(y=>!y.startsWith("."))),l){let y=[];for(let w of h){let E=p==="/"?`/${w}`:`${p}/${w}`;try{let b=await e.fs.stat(E);y.push({name:w,size:b.size??0})}catch{y.push({name:w,size:0})}}y.sort((w,E)=>E.size-w.size),h=y.map(w=>w.name)}else h.sort();r&&(h=[".","..",...h]),a&&h.reverse();let g="";if((i||o)&&(g+=`${t}:
51
+ `,stderr:"",exitCode:0}}let h=await e.fs.readdir(p);if(f||(h=h.filter(m=>!m.startsWith("."))),l){let m=[];for(let w of h){let E=p==="/"?`/${w}`:`${p}/${w}`;try{let b=await e.fs.stat(E);m.push({name:w,size:b.size??0})}catch{m.push({name:w,size:0})}}m.sort((w,E)=>E.size-w.size),h=m.map(w=>w.name)}else h.sort();r&&(h=[".","..",...h]),a&&h.reverse();let g="";if((i||o)&&(g+=`${t}:
52
52
  `),s){g+=`total ${h.length}
53
- `;for(let y of h){if(y==="."||y===".."){g+=`drwxr-xr-x 1 user user 0 Jan 1 00:00 ${y}
54
- `;continue}let w=p==="/"?`/${y}`:`${p}/${y}`;try{let E=await e.fs.stat(w),b=E.isDirectory?"drwxr-xr-x":"-rw-r--r--",S=E.isDirectory?"/":"",C=E.size??0,O=c?Er(C).padStart(5):String(C).padStart(5),D=E.mtime??new Date(0),F=br(D);g+=`${b} 1 user user ${O} ${F} ${y}${S}
55
- `}catch{g+=`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${y}
53
+ `;for(let m of h){if(m==="."||m===".."){g+=`drwxr-xr-x 1 user user 0 Jan 1 00:00 ${m}
54
+ `;continue}let w=p==="/"?`/${m}`:`${p}/${m}`;try{let E=await e.fs.stat(w),b=E.isDirectory?"drwxr-xr-x":"-rw-r--r--",S=E.isDirectory?"/":"",C=E.size??0,O=c?Er(C).padStart(5):String(C).padStart(5),D=E.mtime??new Date(0),F=br(D);g+=`${b} 1 user user ${O} ${F} ${m}${S}
55
+ `}catch{g+=`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${m}
56
56
  `}}}else g+=h.join(`
57
57
  `)+(h.length?`
58
- `:"");if(i)for(let y of h){if(y==="."||y==="..")continue;let w=p==="/"?`/${y}`:`${p}/${y}`;try{if((await e.fs.stat(w)).isDirectory){g+=`
59
- `;let b=t==="."?`./${y}`:`${t}/${y}`,S=await Pi(b,e,r,n,s,i,!1,a,c,l,!0);g+=S.stdout}}catch{}}return{stdout:g,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`ls: ${t}: No such file or directory
60
- `,exitCode:2}}}var Of,Pf,Tf,Fi=A(()=>{"use strict";fe();_();Of={name:"ls",summary:"list directory contents",usage:"ls [OPTION]... [FILE]...",options:["-a, --all do not ignore entries starting with .","-A, --almost-all do not list . and ..","-d, --directory list directories themselves, not their contents","-h, --human-readable with -l, print sizes like 1K 234M 2G etc.","-l use a long listing format","-r, --reverse reverse order while sorting","-R, --recursive list subdirectories recursively","-S sort by file size, largest first","-t sort by time, newest first","-1 list one file per line"," --help display this help and exit"]},Pf={showAll:{short:"a",long:"all",type:"boolean"},showAlmostAll:{short:"A",long:"almost-all",type:"boolean"},longFormat:{short:"l",type:"boolean"},humanReadable:{short:"h",long:"human-readable",type:"boolean"},recursive:{short:"R",long:"recursive",type:"boolean"},reverse:{short:"r",long:"reverse",type:"boolean"},sortBySize:{short:"S",type:"boolean"},directoryOnly:{short:"d",long:"directory",type:"boolean"},sortByTime:{short:"t",type:"boolean"},onePerLine:{short:"1",type:"boolean"}},Tf={name:"ls",async execute(t,e){if(I(t))return N(Of);let r=G("ls",t,Pf);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.showAlmostAll,i=r.result.flags.longFormat,o=r.result.flags.humanReadable,a=r.result.flags.recursive,c=r.result.flags.reverse,l=r.result.flags.sortBySize,u=r.result.flags.directoryOnly,f=r.result.flags.sortByTime;r.result.flags.onePerLine;let p=r.result.positional;p.length===0&&p.push(".");let d="",h="",g=0;for(let y=0;y<p.length;y++){let w=p[y];if(y>0&&d&&!d.endsWith(`
58
+ `:"");if(i)for(let m of h){if(m==="."||m==="..")continue;let w=p==="/"?`/${m}`:`${p}/${m}`;try{if((await e.fs.stat(w)).isDirectory){g+=`
59
+ `;let b=t==="."?`./${m}`:`${t}/${m}`,S=await _i(b,e,r,n,s,i,!1,a,c,l,!0);g+=S.stdout}}catch{}}return{stdout:g,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`ls: ${t}: No such file or directory
60
+ `,exitCode:2}}}var zf,Hf,jf,Wi=A(()=>{"use strict";le();_();zf={name:"ls",summary:"list directory contents",usage:"ls [OPTION]... [FILE]...",options:["-a, --all do not ignore entries starting with .","-A, --almost-all do not list . and ..","-d, --directory list directories themselves, not their contents","-h, --human-readable with -l, print sizes like 1K 234M 2G etc.","-l use a long listing format","-r, --reverse reverse order while sorting","-R, --recursive list subdirectories recursively","-S sort by file size, largest first","-t sort by time, newest first","-1 list one file per line"," --help display this help and exit"]},Hf={showAll:{short:"a",long:"all",type:"boolean"},showAlmostAll:{short:"A",long:"almost-all",type:"boolean"},longFormat:{short:"l",type:"boolean"},humanReadable:{short:"h",long:"human-readable",type:"boolean"},recursive:{short:"R",long:"recursive",type:"boolean"},reverse:{short:"r",long:"reverse",type:"boolean"},sortBySize:{short:"S",type:"boolean"},directoryOnly:{short:"d",long:"directory",type:"boolean"},sortByTime:{short:"t",type:"boolean"},onePerLine:{short:"1",type:"boolean"}},jf={name:"ls",async execute(t,e){if(I(t))return N(zf);let r=j("ls",t,Hf);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.showAlmostAll,i=r.result.flags.longFormat,o=r.result.flags.humanReadable,a=r.result.flags.recursive,c=r.result.flags.reverse,l=r.result.flags.sortBySize,u=r.result.flags.directoryOnly,f=r.result.flags.sortByTime;r.result.flags.onePerLine;let p=r.result.positional;p.length===0&&p.push(".");let d="",h="",g=0;for(let m=0;m<p.length;m++){let w=p[m];if(m>0&&d&&!d.endsWith(`
61
61
 
62
62
  `)&&(d+=`
63
63
  `),u){let E=e.fs.resolvePath(e.cwd,w);try{let b=await e.fs.stat(E);if(i){let S=b.isDirectory?"drwxr-xr-x":"-rw-r--r--",C=b.isDirectory?"/":"",O=b.size??0,D=o?Er(O).padStart(5):String(O).padStart(5),F=b.mtime??new Date(0),U=br(F);d+=`${S} 1 user user ${D} ${U} ${w}${C}
64
64
  `}else d+=`${w}
65
65
  `}catch{h+=`ls: cannot access '${w}': No such file or directory
66
- `,g=2}continue}if(w.includes("*")||w.includes("?")||w.includes("[")){let E=await Ff(w,e,n,s,i,c,o,l);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(g=E.exitCode)}else{let E=await Pi(w,e,n,s,i,a,p.length>1,c,o,l);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(g=E.exitCode)}}return{stdout:d,stderr:h,exitCode:g}}}});var Di={};$(Di,{mkdirCommand:()=>Lf});var Df,Lf,Li=A(()=>{"use strict";We();fe();Df={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Lf={name:"mkdir",async execute(t,e){let r=G("mkdir",t,Df);if(!r.ok)return r.error;let n=r.result.flags.recursive,s=r.result.flags.verbose,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`mkdir: missing operand
66
+ `,g=2}continue}if(w.includes("*")||w.includes("?")||w.includes("[")){let E=await Gf(w,e,n,s,i,c,o,l);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(g=E.exitCode)}else{let E=await _i(w,e,n,s,i,a,p.length>1,c,o,l);d+=E.stdout,h+=E.stderr,E.exitCode!==0&&(g=E.exitCode)}}return{stdout:d,stderr:h,exitCode:g}}}});var Ui={};$(Ui,{mkdirCommand:()=>Vf});var qf,Vf,zi=A(()=>{"use strict";We();le();qf={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Vf={name:"mkdir",async execute(t,e){let r=j("mkdir",t,qf);if(!r.ok)return r.error;let n=r.result.flags.recursive,s=r.result.flags.verbose,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`mkdir: missing operand
67
67
  `,exitCode:1};let o="",a="",c=0;for(let l of i)try{let u=e.fs.resolvePath(e.cwd,l);await e.fs.mkdir(u,{recursive:n}),s&&(o+=`mkdir: created directory '${l}'
68
68
  `)}catch(u){let f=re(u);f.includes("ENOENT")||f.includes("no such file")?a+=`mkdir: cannot create directory '${l}': No such file or directory
69
69
  `:f.includes("EEXIST")||f.includes("already exists")?a+=`mkdir: cannot create directory '${l}': File exists
70
70
  `:a+=`mkdir: cannot create directory '${l}': ${f}
71
- `,c=1}return{stdout:o,stderr:a,exitCode:c}}}});var Mi={};$(Mi,{touchCommand:()=>Mf});var Mf,_i=A(()=>{"use strict";We();_();Mf={name:"touch",async execute(t,e){let r=[];for(let i of t){if(i.startsWith("--"))return L("touch",i);if(i.startsWith("-")&&i.length>1)return L("touch",i);r.push(i)}if(r.length===0)return{stdout:"",stderr:`touch: missing file operand
71
+ `,c=1}return{stdout:o,stderr:a,exitCode:c}}}});var Hi={};$(Hi,{touchCommand:()=>Kf});var Kf,ji=A(()=>{"use strict";We();_();Kf={name:"touch",async execute(t,e){let r=[];for(let i of t){if(i.startsWith("--"))return L("touch",i);if(i.startsWith("-")&&i.length>1)return L("touch",i);r.push(i)}if(r.length===0)return{stdout:"",stderr:`touch: missing file operand
72
72
  `,exitCode:1};let n="",s=0;for(let i of r)try{let o=e.fs.resolvePath(e.cwd,i);await e.fs.exists(o)||await e.fs.writeFile(o,"")}catch(o){n+=`touch: cannot touch '${i}': ${re(o)}
73
- `,s=1}return{stdout:"",stderr:n,exitCode:s}}}});var Bi={};$(Bi,{rmCommand:()=>Bf});var _f,Bf,Wi=A(()=>{"use strict";We();fe();_f={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Bf={name:"rm",async execute(t,e){let r=G("rm",t,_f);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.force,i=r.result.flags.verbose,o=r.result.positional;if(o.length===0)return s?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:`rm: missing operand
73
+ `,s=1}return{stdout:"",stderr:n,exitCode:s}}}});var Gi={};$(Gi,{rmCommand:()=>Qf});var Zf,Qf,qi=A(()=>{"use strict";We();le();Zf={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Qf={name:"rm",async execute(t,e){let r=j("rm",t,Zf);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.force,i=r.result.flags.verbose,o=r.result.positional;if(o.length===0)return s?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:`rm: missing operand
74
74
  `,exitCode:1};let a="",c="",l=0;for(let u of o)try{let f=e.fs.resolvePath(e.cwd,u);if((await e.fs.stat(f)).isDirectory&&!n){c+=`rm: cannot remove '${u}': Is a directory
75
75
  `,l=1;continue}await e.fs.rm(f,{recursive:n,force:s}),i&&(a+=`removed '${u}'
76
76
  `)}catch(f){if(!s){let p=re(f);p.includes("ENOENT")||p.includes("no such file")?c+=`rm: cannot remove '${u}': No such file or directory
77
77
  `:p.includes("ENOTEMPTY")||p.includes("not empty")?c+=`rm: cannot remove '${u}': Directory not empty
78
78
  `:c+=`rm: cannot remove '${u}': ${p}
79
- `,l=1}}return{stdout:a,stderr:c,exitCode:l}}}});var Ui={};$(Ui,{cpCommand:()=>Hf});var Wf,Uf,Hf,Hi=A(()=>{"use strict";We();fe();_();Wf={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},Uf={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Hf={name:"cp",async execute(t,e){if(I(t))return N(Wf);let r=G("cp",t,Uf);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.noClobber,i=r.result.flags.preserve,o=r.result.flags.verbose,a=r.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
79
+ `,l=1}}return{stdout:a,stderr:c,exitCode:l}}}});var Vi={};$(Vi,{cpCommand:()=>Yf});var Xf,Jf,Yf,Ki=A(()=>{"use strict";We();le();_();Xf={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},Jf={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Yf={name:"cp",async execute(t,e){if(I(t))return N(Xf);let r=j("cp",t,Jf);if(!r.ok)return r.error;let n=r.result.flags.recursive||r.result.flags.recursiveUpper,s=r.result.flags.noClobber,i=r.result.flags.preserve,o=r.result.flags.verbose,a=r.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
80
80
  `,exitCode:1};let c=a.pop()??"",l=a,u=e.fs.resolvePath(e.cwd,c),f="",p="",d=0,h=!1;try{h=(await e.fs.stat(u)).isDirectory}catch{}if(l.length>1&&!h)return{stdout:"",stderr:`cp: target '${c}' is not a directory
81
- `,exitCode:1};for(let g of l)try{let y=e.fs.resolvePath(e.cwd,g),w=await e.fs.stat(y),E=u;if(h){let b=g.split("/").pop()||g;E=u==="/"?`/${b}`:`${u}/${b}`}if(w.isDirectory&&!n){p+=`cp: -r not specified; omitting directory '${g}'
82
- `,d=1;continue}if(s)try{await e.fs.stat(E);continue}catch{}await e.fs.cp(y,E,{recursive:n}),o&&(f+=`'${g}' -> '${E}'
83
- `)}catch(y){let w=re(y);w.includes("ENOENT")||w.includes("no such file")?p+=`cp: cannot stat '${g}': No such file or directory
81
+ `,exitCode:1};for(let g of l)try{let m=e.fs.resolvePath(e.cwd,g),w=await e.fs.stat(m),E=u;if(h){let b=g.split("/").pop()||g;E=u==="/"?`/${b}`:`${u}/${b}`}if(w.isDirectory&&!n){p+=`cp: -r not specified; omitting directory '${g}'
82
+ `,d=1;continue}if(s)try{await e.fs.stat(E);continue}catch{}await e.fs.cp(m,E,{recursive:n}),o&&(f+=`'${g}' -> '${E}'
83
+ `)}catch(m){let w=re(m);w.includes("ENOENT")||w.includes("no such file")?p+=`cp: cannot stat '${g}': No such file or directory
84
84
  `:p+=`cp: cannot copy '${g}': ${w}
85
- `,d=1}return{stdout:f,stderr:p,exitCode:d}}}});var ji={};$(ji,{mvCommand:()=>Gf});var jf,zf,Gf,zi=A(()=>{"use strict";We();fe();_();jf={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},zf={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},Gf={name:"mv",async execute(t,e){if(I(t))return N(jf);let r=G("mv",t,zf);if(!r.ok)return r.error;let n=r.result.flags.force,s=r.result.flags.noClobber,i=r.result.flags.verbose,o=r.result.positional;if(s&&(n=!1),o.length<2)return{stdout:"",stderr:`mv: missing destination file operand
85
+ `,d=1}return{stdout:f,stderr:p,exitCode:d}}}});var Zi={};$(Zi,{mvCommand:()=>rp});var ep,tp,rp,Qi=A(()=>{"use strict";We();le();_();ep={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},tp={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},rp={name:"mv",async execute(t,e){if(I(t))return N(ep);let r=j("mv",t,tp);if(!r.ok)return r.error;let n=r.result.flags.force,s=r.result.flags.noClobber,i=r.result.flags.verbose,o=r.result.positional;if(s&&(n=!1),o.length<2)return{stdout:"",stderr:`mv: missing destination file operand
86
86
  `,exitCode:1};let a=o.pop()??"",c=o,l=e.fs.resolvePath(e.cwd,a),u="",f="",p=0,d=!1;try{d=(await e.fs.stat(l)).isDirectory}catch{}if(c.length>1&&!d)return{stdout:"",stderr:`mv: target '${a}' is not a directory
87
- `,exitCode:1};for(let h of c)try{let g=e.fs.resolvePath(e.cwd,h),y=l;if(d){let w=h.split("/").pop()||h;y=l==="/"?`/${w}`:`${l}/${w}`}if(s)try{await e.fs.stat(y);continue}catch{}if(await e.fs.mv(g,y),i){let w=d?`${a}/${h.split("/").pop()||h}`:a;u+=`renamed '${h}' -> '${w}'
88
- `}}catch(g){let y=re(g);y.includes("ENOENT")||y.includes("no such file")?f+=`mv: cannot stat '${h}': No such file or directory
89
- `:f+=`mv: cannot move '${h}': ${y}
90
- `,p=1}return{stdout:u,stderr:f,exitCode:p}}}});var Gi={};$(Gi,{lnCommand:()=>Vf});var qf,Vf,qi=A(()=>{"use strict";_();qf={name:"ln",summary:"make links between files",usage:"ln [OPTIONS] TARGET LINK_NAME",options:["-s create a symbolic link instead of a hard link","-f remove existing destination files","-n treat LINK_NAME as a normal file if it is a symbolic link to a directory","-v print name of each linked file"," --help display this help and exit"]},Vf={name:"ln",async execute(t,e){if(I(t))return N(qf);let r=!1,n=!1,s=!1,i=0;for(;i<t.length&&t[i].startsWith("-");){let f=t[i];if(f==="-s"||f==="--symbolic")r=!0,i++;else if(f==="-f"||f==="--force")n=!0,i++;else if(f==="-v"||f==="--verbose")s=!0,i++;else if(f==="-n"||f==="--no-dereference")i++;else if(/^-[sfvn]+$/.test(f))f.includes("s")&&(r=!0),f.includes("f")&&(n=!0),f.includes("v")&&(s=!0),i++;else if(f==="--"){i++;break}else return{stdout:"",stderr:`ln: invalid option -- '${f.slice(1)}'
87
+ `,exitCode:1};for(let h of c)try{let g=e.fs.resolvePath(e.cwd,h),m=l;if(d){let w=h.split("/").pop()||h;m=l==="/"?`/${w}`:`${l}/${w}`}if(s)try{await e.fs.stat(m);continue}catch{}if(await e.fs.mv(g,m),i){let w=d?`${a}/${h.split("/").pop()||h}`:a;u+=`renamed '${h}' -> '${w}'
88
+ `}}catch(g){let m=re(g);m.includes("ENOENT")||m.includes("no such file")?f+=`mv: cannot stat '${h}': No such file or directory
89
+ `:f+=`mv: cannot move '${h}': ${m}
90
+ `,p=1}return{stdout:u,stderr:f,exitCode:p}}}});var Xi={};$(Xi,{lnCommand:()=>sp});var np,sp,Ji=A(()=>{"use strict";_();np={name:"ln",summary:"make links between files",usage:"ln [OPTIONS] TARGET LINK_NAME",options:["-s create a symbolic link instead of a hard link","-f remove existing destination files","-n treat LINK_NAME as a normal file if it is a symbolic link to a directory","-v print name of each linked file"," --help display this help and exit"]},sp={name:"ln",async execute(t,e){if(I(t))return N(np);let r=!1,n=!1,s=!1,i=0;for(;i<t.length&&t[i].startsWith("-");){let f=t[i];if(f==="-s"||f==="--symbolic")r=!0,i++;else if(f==="-f"||f==="--force")n=!0,i++;else if(f==="-v"||f==="--verbose")s=!0,i++;else if(f==="-n"||f==="--no-dereference")i++;else if(/^-[sfvn]+$/.test(f))f.includes("s")&&(r=!0),f.includes("f")&&(n=!0),f.includes("v")&&(s=!0),i++;else if(f==="--"){i++;break}else return{stdout:"",stderr:`ln: invalid option -- '${f.slice(1)}'
91
91
  `,exitCode:1}}let o=t.slice(i);if(o.length<2)return{stdout:"",stderr:`ln: missing file operand
92
92
  `,exitCode:1};let a=o[0],c=o[1],l=e.fs.resolvePath(e.cwd,c);if(await e.fs.exists(l))if(n)try{await e.fs.rm(l,{force:!0})}catch{return{stdout:"",stderr:`ln: cannot remove '${c}': Permission denied
93
93
  `,exitCode:1}}else return{stdout:"",stderr:`ln: failed to create ${r?"symbolic ":""}link '${c}': File exists
@@ -95,15 +95,15 @@ Notes:
95
95
  `,exitCode:1};await e.fs.link(f,l)}}catch(f){let p=f;return p.message.includes("EPERM")?{stdout:"",stderr:`ln: '${a}': hard link not allowed for directory
96
96
  `,exitCode:1}:{stdout:"",stderr:`ln: ${p.message}
97
97
  `,exitCode:1}}let u="";return s&&(u=`'${c}' -> '${a}'
98
- `),{stdout:u,stderr:"",exitCode:0}}}});var Ki={};$(Ki,{chmodCommand:()=>Zf});async function Vi(t,e,r,n){let s="",i=await t.fs.readdir(e);for(let o of i){let a=e==="/"?`/${o}`:`${e}/${o}`;await t.fs.chmod(a,r),n&&(s+=`mode of '${a}' changed to ${r.toString(8).padStart(4,"0")}
99
- `),(await t.fs.stat(a)).isDirectory&&(s+=await Vi(t,a,r,n))}return s}function Qf(t){if(/^[0-7]+$/.test(t))return parseInt(t,8);let e=420,r=t.split(",");for(let n of r){let s=n.match(/^([ugoa]*)([+\-=])([rwxXst]*)$/);if(!s)throw new Error(`Invalid mode: ${t}`);let i=s[1]||"a",o=s[2],a=s[3];(i==="a"||i==="")&&(i="ugo");let c=0;a.includes("r")&&(c|=4),a.includes("w")&&(c|=2),(a.includes("x")||a.includes("X"))&&(c|=1);for(let l of i){let u=0;l==="u"?u=6:l==="g"?u=3:l==="o"&&(u=0);let f=c<<u;o==="+"?e|=f:o==="-"?e&=~f:o==="="&&(e&=~(7<<u),e|=f)}}return e}var Kf,Zf,Zi=A(()=>{"use strict";_();Kf={name:"chmod",summary:"change file mode bits",usage:"chmod [OPTIONS] MODE FILE...",options:["-R change files recursively","-v output a diagnostic for every file processed"," --help display this help and exit"]},Zf={name:"chmod",async execute(t,e){if(I(t))return N(Kf);if(t.length<2)return{stdout:"",stderr:`chmod: missing operand
98
+ `),{stdout:u,stderr:"",exitCode:0}}}});var eo={};$(eo,{chmodCommand:()=>op});async function Yi(t,e,r,n){let s="",i=await t.fs.readdir(e);for(let o of i){let a=e==="/"?`/${o}`:`${e}/${o}`;await t.fs.chmod(a,r),n&&(s+=`mode of '${a}' changed to ${r.toString(8).padStart(4,"0")}
99
+ `),(await t.fs.stat(a)).isDirectory&&(s+=await Yi(t,a,r,n))}return s}function ap(t){if(/^[0-7]+$/.test(t))return parseInt(t,8);let e=420,r=t.split(",");for(let n of r){let s=n.match(/^([ugoa]*)([+\-=])([rwxXst]*)$/);if(!s)throw new Error(`Invalid mode: ${t}`);let i=s[1]||"a",o=s[2],a=s[3];(i==="a"||i==="")&&(i="ugo");let c=0;a.includes("r")&&(c|=4),a.includes("w")&&(c|=2),(a.includes("x")||a.includes("X"))&&(c|=1);for(let l of i){let u=0;l==="u"?u=6:l==="g"?u=3:l==="o"&&(u=0);let f=c<<u;o==="+"?e|=f:o==="-"?e&=~f:o==="="&&(e&=~(7<<u),e|=f)}}return e}var ip,op,to=A(()=>{"use strict";_();ip={name:"chmod",summary:"change file mode bits",usage:"chmod [OPTIONS] MODE FILE...",options:["-R change files recursively","-v output a diagnostic for every file processed"," --help display this help and exit"]},op={name:"chmod",async execute(t,e){if(I(t))return N(ip);if(t.length<2)return{stdout:"",stderr:`chmod: missing operand
100
100
  `,exitCode:1};let r=!1,n=!1,s=0;for(;s<t.length&&t[s].startsWith("-");){let f=t[s];if(f==="-R"||f==="--recursive")r=!0,s++;else if(f==="-v"||f==="--verbose")n=!0,s++;else if(f==="--"){s++;break}else{if(/^[+-]?[rwxugo]+/.test(f)||/^\d+$/.test(f))break;if(/^-[Rv]+$/.test(f)){f.includes("R")&&(r=!0),f.includes("v")&&(n=!0),s++;continue}return{stdout:"",stderr:`chmod: invalid option -- '${f.slice(1)}'
101
101
  `,exitCode:1}}}if(t.length-s<2)return{stdout:"",stderr:`chmod: missing operand
102
- `,exitCode:1};let i=t[s],o=t.slice(s+1),a;try{a=Qf(i)}catch{return{stdout:"",stderr:`chmod: invalid mode: '${i}'
102
+ `,exitCode:1};let i=t[s],o=t.slice(s+1),a;try{a=ap(i)}catch{return{stdout:"",stderr:`chmod: invalid mode: '${i}'
103
103
  `,exitCode:1}}let c="",l="",u=!1;for(let f of o){let p=e.fs.resolvePath(e.cwd,f);try{if(await e.fs.chmod(p,a),n&&(c+=`mode of '${f}' changed to ${a.toString(8).padStart(4,"0")}
104
- `),r&&(await e.fs.stat(p)).isDirectory){let h=await Vi(e,p,a,n);c+=h}}catch{l+=`chmod: cannot access '${f}': No such file or directory
105
- `,u=!0}}return{stdout:c,stderr:l,exitCode:u?1:0}}}});var Qi={};$(Qi,{pwdCommand:()=>Xf});var Xf,Xi=A(()=>{"use strict";Xf={name:"pwd",async execute(t,e){return{stdout:`${e.cwd}
106
- `,stderr:"",exitCode:0}}}});var Ji={};$(Ji,{readlinkCommand:()=>Yf});var Jf,Yf,Yi=A(()=>{"use strict";_();Jf={name:"readlink",summary:"print resolved symbolic links or canonical file names",usage:"readlink [OPTIONS] FILE...",options:["-f canonicalize by following every symlink in every component of the given name recursively"," --help display this help and exit"]},Yf={name:"readlink",async execute(t,e){if(I(t))return N(Jf);let r=!1,n=0;for(;n<t.length&&t[n].startsWith("-");){let a=t[n];if(a==="-f"||a==="--canonicalize")r=!0,n++;else if(a==="--"){n++;break}else return{stdout:"",stderr:`readlink: invalid option -- '${a.slice(1)}'
104
+ `),r&&(await e.fs.stat(p)).isDirectory){let h=await Yi(e,p,a,n);c+=h}}catch{l+=`chmod: cannot access '${f}': No such file or directory
105
+ `,u=!0}}return{stdout:c,stderr:l,exitCode:u?1:0}}}});var ro={};$(ro,{pwdCommand:()=>cp});var cp,no=A(()=>{"use strict";cp={name:"pwd",async execute(t,e){return{stdout:`${e.cwd}
106
+ `,stderr:"",exitCode:0}}}});var so={};$(so,{readlinkCommand:()=>up});var lp,up,io=A(()=>{"use strict";_();lp={name:"readlink",summary:"print resolved symbolic links or canonical file names",usage:"readlink [OPTIONS] FILE...",options:["-f canonicalize by following every symlink in every component of the given name recursively"," --help display this help and exit"]},up={name:"readlink",async execute(t,e){if(I(t))return N(lp);let r=!1,n=0;for(;n<t.length&&t[n].startsWith("-");){let a=t[n];if(a==="-f"||a==="--canonicalize")r=!0,n++;else if(a==="--"){n++;break}else return{stdout:"",stderr:`readlink: invalid option -- '${a.slice(1)}'
107
107
  `,exitCode:1}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`readlink: missing operand
108
108
  `,exitCode:1};let i="",o=!1;for(let a of s){let c=e.fs.resolvePath(e.cwd,a);try{if(r){let l=c,u=new Set;for(;!u.has(l);){u.add(l);try{let f=await e.fs.readlink(l);if(f.startsWith("/"))l=f;else{let p=l.substring(0,l.lastIndexOf("/"))||"/";l=e.fs.resolvePath(p,f)}}catch{break}}i+=`${l}
109
109
  `}else{let l=await e.fs.readlink(c);i+=`${l}
@@ -113,55 +113,55 @@ Notes:
113
113
  `,exitCode:1}}:{ok:!0,options:{lines:r,bytes:n,quiet:s,verbose:i,files:a,fromLine:o}}}async function Ar(t,e,r,n){let{quiet:s,verbose:i,files:o}=e;if(o.length===0)return{stdout:n(t.stdin),stderr:"",exitCode:0};let a="",c="",l=0,u=i||!s&&o.length>1;for(let f=0;f<o.length;f++){let p=o[f];u&&(f>0&&(a+=`
114
114
  `),a+=`==> ${p} <==
115
115
  `);try{let d=t.fs.resolvePath(t.cwd,p),h=await t.fs.readFile(d);a+=n(h)}catch{c+=`${r}: ${p}: No such file or directory
116
- `,l=1}}return{stdout:a,stderr:c,exitCode:l}}function eo(t,e,r){if(r!==null)return t.slice(0,r);if(e===0)return"";let n=0,s=0,i=t.length;for(;n<i&&s<e;){let o=t.indexOf(`
116
+ `,l=1}}return{stdout:a,stderr:c,exitCode:l}}function oo(t,e,r){if(r!==null)return t.slice(0,r);if(e===0)return"";let n=0,s=0,i=t.length;for(;n<i&&s<e;){let o=t.indexOf(`
117
117
  `,n);if(o===-1)return`${t}
118
- `;s++,n=o+1}return n>0?t.slice(0,n):""}function to(t,e,r,n){if(r!==null)return t.slice(-r);let s=t.length;if(s===0)return"";if(n){let c=0,l=1;for(;c<s&&l<e;){let f=t.indexOf(`
118
+ `;s++,n=o+1}return n>0?t.slice(0,n):""}function ao(t,e,r,n){if(r!==null)return t.slice(-r);let s=t.length;if(s===0)return"";if(n){let c=0,l=1;for(;c<s&&l<e;){let f=t.indexOf(`
119
119
  `,c);if(f===-1)break;l++,c=f+1}let u=t.slice(c);return u.endsWith(`
120
120
  `)?u:`${u}
121
121
  `}if(e===0)return"";let i=s-1;t[i]===`
122
122
  `&&i--;let o=0;for(;i>=0&&o<e;){if(t[i]===`
123
123
  `&&(o++,o===e)){i++;break}i--}i<0&&(i=0);let a=t.slice(i);return t[s-1]===`
124
124
  `?a:`${a}
125
- `}var $n=A(()=>{"use strict";_()});var ro={};$(ro,{headCommand:()=>tp});var ep,tp,no=A(()=>{"use strict";_();$n();ep={name:"head",summary:"output the first part of files",usage:"head [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the first NUM bytes","-n, --lines=NUM print the first NUM lines (default 10)","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},tp={name:"head",async execute(t,e){if(I(t))return N(ep);let r=Sr(t,"head");if(!r.ok)return r.error;let{lines:n,bytes:s}=r.options;return Ar(e,r.options,"head",i=>eo(i,n,s))}}});var so={};$(so,{tailCommand:()=>np});var rp,np,io=A(()=>{"use strict";$n();_();rp={name:"tail",summary:"output the last part of files",usage:"tail [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the last NUM bytes","-n, --lines=NUM print the last NUM lines (default 10)","-n +NUM print starting from line NUM","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},np={name:"tail",async execute(t,e){if(I(t))return N(rp);let r=Sr(t,"tail");if(!r.ok)return r.error;let{lines:n,bytes:s,fromLine:i}=r.options;return Ar(e,r.options,"tail",o=>to(o,n,s,i??!1))}}});var ao={};$(ao,{wcCommand:()=>op});function oo(t){let e=t.length,r=0,n=0,s=!1;for(let i=0;i<e;i++){let o=t[i];o===`
126
- `?(r++,s&&(n++,s=!1)):o===" "||o===" "||o==="\r"?s&&(n++,s=!1):s=!0}return s&&n++,{lines:r,words:n,chars:e}}function On(t,e,r,n,s){let i=[];e&&i.push(String(t.lines)),r&&i.push(String(t.words)),n&&i.push(String(t.chars));let o=i.join(" ");return s&&(o+=` ${s}`),o}var sp,ip,op,co=A(()=>{"use strict";fe();Ct();_();sp={name:"wc",summary:"print newline, word, and byte counts for each file",usage:"wc [OPTION]... [FILE]...",options:["-c, --bytes print the byte counts","-m, --chars print the character counts","-l, --lines print the newline counts","-w, --words print the word counts"," --help display this help and exit"]},ip={lines:{short:"l",long:"lines",type:"boolean"},words:{short:"w",long:"words",type:"boolean"},bytes:{short:"c",long:"bytes",type:"boolean"},chars:{short:"m",long:"chars",type:"boolean"}},op={name:"wc",async execute(t,e){if(I(t))return N(sp);let r=G("wc",t,ip);if(!r.ok)return r.error;let{lines:n,words:s}=r.result.flags,i=r.result.flags.bytes||r.result.flags.chars,o=r.result.positional;!n&&!s&&!i&&(n=s=i=!0);let a=await qt(e,o,{cmdName:"wc",stopOnError:!1});if(o.length===0){let p=oo(a.files[0].content);return{stdout:`${On(p,n,s,i,"")}
127
- `,stderr:"",exitCode:0}}let c="",l=0,u=0,f=0;for(let{filename:p,content:d}of a.files){let h=oo(d);l+=h.lines,u+=h.words,f+=h.chars,c+=`${On(h,n,s,i,p)}
128
- `}return o.length>1&&(c+=`${On({lines:l,words:u,chars:f},n,s,i,"total")}
129
- `),{stdout:c,stderr:a.stderr,exitCode:a.exitCode}}}});var uo={};$(uo,{statCommand:()=>lp});function lo(t,e){let r=e?"d":"-",n=[t&256?"r":"-",t&128?"w":"-",t&64?"x":"-",t&32?"r":"-",t&16?"w":"-",t&8?"x":"-",t&4?"r":"-",t&2?"w":"-",t&1?"x":"-"];return r+n.join("")}var ap,cp,lp,fo=A(()=>{"use strict";fe();_();ap={name:"stat",summary:"display file or file system status",usage:"stat [OPTION]... FILE...",options:["-c FORMAT use the specified FORMAT instead of the default"," --help display this help and exit"]},cp={format:{short:"c",type:"string"}},lp={name:"stat",async execute(t,e){if(I(t))return N(ap);let r=G("stat",t,cp);if(!r.ok)return r.error;let n=r.result.flags.format??null,s=r.result.positional;if(s.length===0)return{stdout:"",stderr:`stat: missing operand
130
- `,exitCode:1};let i="",o="",a=!1;for(let c of s){let l=e.fs.resolvePath(e.cwd,c);try{let u=await e.fs.stat(l);if(n){let f=n,p=u.mode.toString(8),d=lo(u.mode,u.isDirectory);f=f.replace(/%n/g,c),f=f.replace(/%N/g,`'${c}'`),f=f.replace(/%s/g,String(u.size)),f=f.replace(/%F/g,u.isDirectory?"directory":"regular file"),f=f.replace(/%a/g,p),f=f.replace(/%A/g,d),f=f.replace(/%u/g,"1000"),f=f.replace(/%U/g,"user"),f=f.replace(/%g/g,"1000"),f=f.replace(/%G/g,"group"),i+=`${f}
131
- `}else{let f=u.mode.toString(8).padStart(4,"0"),p=lo(u.mode,u.isDirectory);i+=` File: ${c}
125
+ `}var Tn=A(()=>{"use strict";_()});var co={};$(co,{headCommand:()=>pp});var fp,pp,lo=A(()=>{"use strict";_();Tn();fp={name:"head",summary:"output the first part of files",usage:"head [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the first NUM bytes","-n, --lines=NUM print the first NUM lines (default 10)","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},pp={name:"head",async execute(t,e){if(I(t))return N(fp);let r=Sr(t,"head");if(!r.ok)return r.error;let{lines:n,bytes:s}=r.options;return Ar(e,r.options,"head",i=>oo(i,n,s))}}});var uo={};$(uo,{tailCommand:()=>hp});var dp,hp,fo=A(()=>{"use strict";Tn();_();dp={name:"tail",summary:"output the last part of files",usage:"tail [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the last NUM bytes","-n, --lines=NUM print the last NUM lines (default 10)","-n +NUM print starting from line NUM","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},hp={name:"tail",async execute(t,e){if(I(t))return N(dp);let r=Sr(t,"tail");if(!r.ok)return r.error;let{lines:n,bytes:s,fromLine:i}=r.options;return Ar(e,r.options,"tail",o=>ao(o,n,s,i??!1))}}});var ho={};$(ho,{wcCommand:()=>gp});function po(t){let e=t.length,r=0,n=0,s=!1;for(let i=0;i<e;i++){let o=t[i];o===`
126
+ `?(r++,s&&(n++,s=!1)):o===" "||o===" "||o==="\r"?s&&(n++,s=!1):s=!0}return s&&n++,{lines:r,words:n,chars:e}}function Fn(t,e,r,n,s){let i=[];e&&i.push(String(t.lines)),r&&i.push(String(t.words)),n&&i.push(String(t.chars));let o=i.join(" ");return s&&(o+=` ${s}`),o}var mp,yp,gp,mo=A(()=>{"use strict";le();Ct();_();mp={name:"wc",summary:"print newline, word, and byte counts for each file",usage:"wc [OPTION]... [FILE]...",options:["-c, --bytes print the byte counts","-m, --chars print the character counts","-l, --lines print the newline counts","-w, --words print the word counts"," --help display this help and exit"]},yp={lines:{short:"l",long:"lines",type:"boolean"},words:{short:"w",long:"words",type:"boolean"},bytes:{short:"c",long:"bytes",type:"boolean"},chars:{short:"m",long:"chars",type:"boolean"}},gp={name:"wc",async execute(t,e){if(I(t))return N(mp);let r=j("wc",t,yp);if(!r.ok)return r.error;let{lines:n,words:s}=r.result.flags,i=r.result.flags.bytes||r.result.flags.chars,o=r.result.positional;!n&&!s&&!i&&(n=s=i=!0);let a=await qt(e,o,{cmdName:"wc",stopOnError:!1});if(o.length===0){let p=po(a.files[0].content);return{stdout:`${Fn(p,n,s,i,"")}
127
+ `,stderr:"",exitCode:0}}let c="",l=0,u=0,f=0;for(let{filename:p,content:d}of a.files){let h=po(d);l+=h.lines,u+=h.words,f+=h.chars,c+=`${Fn(h,n,s,i,p)}
128
+ `}return o.length>1&&(c+=`${Fn({lines:l,words:u,chars:f},n,s,i,"total")}
129
+ `),{stdout:c,stderr:a.stderr,exitCode:a.exitCode}}}});var go={};$(go,{statCommand:()=>Ep});function yo(t,e){let r=e?"d":"-",n=[t&256?"r":"-",t&128?"w":"-",t&64?"x":"-",t&32?"r":"-",t&16?"w":"-",t&8?"x":"-",t&4?"r":"-",t&2?"w":"-",t&1?"x":"-"];return r+n.join("")}var xp,wp,Ep,xo=A(()=>{"use strict";le();_();xp={name:"stat",summary:"display file or file system status",usage:"stat [OPTION]... FILE...",options:["-c FORMAT use the specified FORMAT instead of the default"," --help display this help and exit"]},wp={format:{short:"c",type:"string"}},Ep={name:"stat",async execute(t,e){if(I(t))return N(xp);let r=j("stat",t,wp);if(!r.ok)return r.error;let n=r.result.flags.format??null,s=r.result.positional;if(s.length===0)return{stdout:"",stderr:`stat: missing operand
130
+ `,exitCode:1};let i="",o="",a=!1;for(let c of s){let l=e.fs.resolvePath(e.cwd,c);try{let u=await e.fs.stat(l);if(n){let f=n,p=u.mode.toString(8),d=yo(u.mode,u.isDirectory);f=f.replace(/%n/g,c),f=f.replace(/%N/g,`'${c}'`),f=f.replace(/%s/g,String(u.size)),f=f.replace(/%F/g,u.isDirectory?"directory":"regular file"),f=f.replace(/%a/g,p),f=f.replace(/%A/g,d),f=f.replace(/%u/g,"1000"),f=f.replace(/%U/g,"user"),f=f.replace(/%g/g,"1000"),f=f.replace(/%G/g,"group"),i+=`${f}
131
+ `}else{let f=u.mode.toString(8).padStart(4,"0"),p=yo(u.mode,u.isDirectory);i+=` File: ${c}
132
132
  `,i+=` Size: ${u.size} Blocks: ${Math.ceil(u.size/512)}
133
133
  `,i+=`Access: (${f}/${p})
134
134
  `,i+=`Modify: ${u.mtime.toISOString()}
135
135
  `}}catch{o+=`stat: cannot stat '${c}': No such file or directory
136
- `,a=!0}}return{stdout:i,stderr:o,exitCode:a?1:0}}}});function $e(t,e,r){let n=typeof r=="boolean"?{ignoreCase:r}:r??{},s=e;n.stripQuotes&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1));let i=n.ignoreCase?`i:${s}`:s,o=po.get(i);return o||(o=up(s,n.ignoreCase),po.set(i,o)),o.test(t)}function up(t,e){let r="^";for(let n=0;n<t.length;n++){let s=t[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1;for(;i<t.length&&t[i]!=="]";)i++;r+=t.slice(n,i+1),n=i}else s==="."||s==="+"||s==="^"||s==="$"||s==="{"||s==="}"||s==="("||s===")"||s==="|"||s==="\\"?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r,e?"i":"")}var po,Pn=A(()=>{"use strict";po=new Map});var Cr={};$(Cr,{egrepCommand:()=>mp,fgrepCommand:()=>hp,grepCommand:()=>Fn});function pp(t){let e="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let s=t[r+1];if(s==="|"||s==="("||s===")"){e+=s,r+=2;continue}else if(s==="{"||s==="}"){e+=`\\${s}`,r+=2;continue}}n==="+"||n==="?"||n==="|"||n==="("||n===")"||n==="{"||n==="}"?e+=`\\${n}`:e+=n,r++}return e}function ho(t,e,r,n,s,i,o=!1,a=0,c=0,l=0){let u=t.split(`
136
+ `,a=!0}}return{stdout:i,stderr:o,exitCode:a?1:0}}}});function $e(t,e,r){let n=typeof r=="boolean"?{ignoreCase:r}:r??{},s=e;n.stripQuotes&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1));let i=n.ignoreCase?`i:${s}`:s,o=wo.get(i);return o||(o=bp(s,n.ignoreCase),wo.set(i,o)),o.test(t)}function bp(t,e){let r="^";for(let n=0;n<t.length;n++){let s=t[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1;for(;i<t.length&&t[i]!=="]";)i++;r+=t.slice(n,i+1),n=i}else s==="."||s==="+"||s==="^"||s==="$"||s==="{"||s==="}"||s==="("||s===")"||s==="|"||s==="\\"?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r,e?"i":"")}var wo,Dn=A(()=>{"use strict";wo=new Map});var Cr={};$(Cr,{egrepCommand:()=>Np,fgrepCommand:()=>kp,grepCommand:()=>Mn});function Ap(t){let e="",r=0;for(;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){let s=t[r+1];if(s==="|"||s==="("||s===")"){e+=s,r+=2;continue}else if(s==="{"||s==="}"){e+=`\\${s}`,r+=2;continue}}n==="+"||n==="?"||n==="|"||n==="("||n===")"||n==="{"||n==="}"?e+=`\\${n}`:e+=n,r++}return e}function Eo(t,e,r,n,s,i,o=!1,a=0,c=0,l=0){let u=t.split(`
137
137
  `),f=u.length,p=f>0&&u[f-1]===""?f-1:f;if(s){let w=0;for(let b=0;b<p;b++)e.lastIndex=0,e.test(u[b])!==r&&w++;return{output:`${i?`${i}:${w}`:String(w)}
138
138
  `,matched:w>0}}if(a===0&&c===0){let w=[],E=!1,b=0;for(let S=0;S<p&&!(l>0&&b>=l);S++){let C=u[S];if(e.lastIndex=0,e.test(C)!==r)if(E=!0,b++,o){e.lastIndex=0;for(let D=e.exec(C);D!==null;D=e.exec(C))w.push(i?`${i}:${D[0]}`:D[0]),D[0].length===0&&e.lastIndex++}else n?w.push(i?`${i}:${S+1}:${C}`:`${S+1}:${C}`):w.push(i?`${i}:${C}`:C)}return{output:w.length>0?`${w.join(`
139
139
  `)}
140
- `:"",matched:E}}let d=[],h=0,g=new Set,y=[];for(let w=0;w<p&&!(l>0&&h>=l);w++)e.lastIndex=0,e.test(u[w])!==r&&(y.push(w),h++);for(let w of y){for(let b=Math.max(0,w-a);b<w;b++)if(!g.has(b)){g.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}if(!g.has(w)){g.add(w);let b=u[w];if(o){e.lastIndex=0;for(let S=e.exec(b);S!==null;S=e.exec(b))d.push(i?`${i}:${S[0]}`:S[0]),S[0].length===0&&e.lastIndex++}else{let S=b;n&&(S=`${w+1}:${S}`),i&&(S=`${i}:${S}`),d.push(S)}}let E=Math.min(p-1,w+c);for(let b=w+1;b<=E;b++)if(!g.has(b)){g.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}}return{output:d.length>0?`${d.join(`
140
+ `:"",matched:E}}let d=[],h=0,g=new Set,m=[];for(let w=0;w<p&&!(l>0&&h>=l);w++)e.lastIndex=0,e.test(u[w])!==r&&(m.push(w),h++);for(let w of m){for(let b=Math.max(0,w-a);b<w;b++)if(!g.has(b)){g.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}if(!g.has(w)){g.add(w);let b=u[w];if(o){e.lastIndex=0;for(let S=e.exec(b);S!==null;S=e.exec(b))d.push(i?`${i}:${S[0]}`:S[0]),S[0].length===0&&e.lastIndex++}else{let S=b;n&&(S=`${w+1}:${S}`),i&&(S=`${i}:${S}`),d.push(S)}}let E=Math.min(p-1,w+c);for(let b=w+1;b<=E;b++)if(!g.has(b)){g.add(b);let S=u[b];n&&(S=`${b+1}-${S}`),i&&(S=`${i}-${S}`),d.push(S)}}return{output:d.length>0?`${d.join(`
141
141
  `)}
142
- `:"",matched:h>0}}async function Tn(t,e,r=[],n=[],s=[]){let i=e.fs.resolvePath(e.cwd,t),o=[];try{if(!(await e.fs.stat(i)).isDirectory){let u=t.split("/").pop()||t;return n.length>0&&n.some(f=>$e(u,f,{stripQuotes:!0}))?[]:r.length>0&&!r.some(f=>$e(u,f,{stripQuotes:!0}))?[]:[t]}let c=t.split("/").pop()||t;if(s.length>0&&s.some(u=>$e(c,u,{stripQuotes:!0})))return[];let l=await e.fs.readdir(i);for(let u of l){if(u.startsWith("."))continue;let f=t==="."?u:`${t}/${u}`,p=await Tn(f,e,r,n,s);o.push(...p)}}catch{}return o}async function dp(t,e){let r=[],n=t.lastIndexOf("/"),s,i;if(n===-1?(s=e.cwd,i=t):(s=t.slice(0,n)||"/",i=t.slice(n+1)),t.includes("**")){let a=t.split("**"),c=a[0].replace(/\/$/,"")||".",l=a[1]||"";return await mo(c,l,e,r),r}let o=e.fs.resolvePath(e.cwd,s);try{let a=await e.fs.readdir(o);for(let c of a)if($e(c,i,{stripQuotes:!0})){let l=n===-1?c:`${s}/${c}`;r.push(l)}}catch{}return r.sort()}async function mo(t,e,r,n){let s=r.fs.resolvePath(r.cwd,t);try{if(!(await r.fs.stat(s)).isDirectory){let a=t.split("/").pop()||"";if(e){let c=e.replace(/^\//,"");$e(a,c,{stripQuotes:!0})&&n.push(t)}return}let o=await r.fs.readdir(s);for(let a of o){let c=t==="."?a:`${t}/${a}`,l=r.fs.resolvePath(r.cwd,c);if((await r.fs.stat(l)).isDirectory)await mo(c,e,r,n);else if(e){let f=e.replace(/^\//,"");$e(a,f,{stripQuotes:!0})&&n.push(c)}}}catch{}}var fp,Fn,hp,mp,kr=A(()=>{"use strict";Pn();_();fp={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-P, --perl-regexp PATTERN is a Perl regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-x, --line-regexp match only whole lines","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-m NUM, --max-count=NUM stop after NUM matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},Fn={name:"grep",async execute(t,e){if(I(t))return N(fp);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,c=!1,l=!1,u=!1,f=!1,p=!1,d=!1,h=!1,g=!1,y=!1,w=0,E=0,b=0,S=[],C=[],O=[],D=null,F=[];for(let H=0;H<t.length;H++){let j=t[H];if(j.startsWith("-")&&j!=="-"){if(j==="-e"&&H+1<t.length){D=t[++H];continue}if(j.startsWith("--include=")){S.push(j.slice(10));continue}if(j.startsWith("--exclude=")){C.push(j.slice(10));continue}if(j.startsWith("--exclude-dir=")){O.push(j.slice(14));continue}if(j.startsWith("--max-count=")){w=parseInt(j.slice(12),10);continue}let ke=j.match(/^-m(\d+)$/);if(ke){w=parseInt(ke[1],10);continue}if(j==="-m"&&H+1<t.length){w=parseInt(t[++H],10);continue}let Be=j.match(/^-([ABC])(\d+)$/);if(Be){let M=parseInt(Be[2],10);Be[1]==="A"?b=M:Be[1]==="B"?E=M:Be[1]==="C"&&(E=M,b=M);continue}if((j==="-A"||j==="-B"||j==="-C")&&H+1<t.length){let M=parseInt(t[++H],10);j==="-A"?b=M:j==="-B"?E=M:(E=M,b=M);continue}let Nn=j.startsWith("--")?[j]:j.slice(1).split("");for(let M of Nn)if(M==="i"||M==="--ignore-case")r=!0;else if(M==="n"||M==="--line-number")n=!0;else if(M==="v"||M==="--invert-match")s=!0;else if(M==="c"||M==="--count")i=!0;else if(M==="l"||M==="--files-with-matches")o=!0;else if(M==="L"||M==="--files-without-match")a=!0;else if(M==="r"||M==="R"||M==="--recursive")c=!0;else if(M==="w"||M==="--word-regexp")l=!0;else if(M==="x"||M==="--line-regexp")u=!0;else if(M==="E"||M==="--extended-regexp")f=!0;else if(M==="P"||M==="--perl-regexp")p=!0;else if(M==="F"||M==="--fixed-strings")d=!0;else if(M==="o"||M==="--only-matching")h=!0;else if(M==="h"||M==="--no-filename")g=!0;else if(M==="q"||M==="--quiet"||M==="--silent")y=!0;else{if(M.startsWith("--"))return L("grep",M);if(M.length===1)return L("grep",`-${M}`)}}else D===null?D=j:F.push(j)}if(D===null)return{stdout:"",stderr:`grep: missing pattern
143
- `,exitCode:2};let U;d?U=D.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):f||p?U=D:U=pp(D),l&&(U=`\\b${U}\\b`),u&&(U=`^${U}$`);let te;try{te=new RegExp(U,r?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${D}
144
- `,exitCode:2}}if(F.length===0&&e.stdin){let H=ho(e.stdin,te,s,n,i,"",h,E,b,w);return y?{stdout:"",stderr:"",exitCode:H.matched?0:1}:{stdout:H.output,stderr:"",exitCode:H.matched?0:1}}if(F.length===0)return{stdout:"",stderr:`grep: no input files
145
- `,exitCode:2};let de="",se="",Ce=!1,ze=!1,Me=[];for(let H of F)if(H.includes("*")||H.includes("?")||H.includes("[")){let j=await dp(H,e);if(c)for(let ke of j){let Be=await Tn(ke,e,S,C,O);Me.push(...Be)}else Me.push(...j)}else if(c){let j=await Tn(H,e,S,C,O);Me.push(...j)}else Me.push(H);let yr=(Me.length>1||c)&&!g;for(let H of Me){let j=H.split("/").pop()||H;if(!(C.length>0&&!c&&C.some(ke=>$e(j,ke,{stripQuotes:!0})))&&!(S.length>0&&!c&&!S.some(ke=>$e(j,ke,{stripQuotes:!0}))))try{let ke=e.fs.resolvePath(e.cwd,H);if((await e.fs.stat(ke)).isDirectory){c||(se+=`grep: ${H}: Is a directory
146
- `);continue}let Nn=await e.fs.readFile(ke),M=ho(Nn,te,s,n,i,yr?H:"",h,E,b,w);if(M.matched){if(Ce=!0,y)return{stdout:"",stderr:"",exitCode:0};o?de+=`${H}
147
- `:a||(de+=M.output)}else a?de+=`${H}
148
- `:i&&!o&&(de+=M.output)}catch{se+=`grep: ${H}: No such file or directory
149
- `,ze=!0}}let _e;return ze?_e=2:a?_e=de.length>0?0:1:_e=Ce?0:1,y?{stdout:"",stderr:"",exitCode:_e}:{stdout:de,stderr:se,exitCode:_e}}};hp={name:"fgrep",async execute(t,e){return Fn.execute(["-F",...t],e)}},mp={name:"egrep",async execute(t,e){return Fn.execute(["-E",...t],e)}}});function Nr(t){return t instanceof me||t instanceof Ee||t instanceof ye}var Oe,me,Ee,ye,He,Pe,X,ae,Ke,W,Ge,J=A(()=>{"use strict";Oe=class extends Error{stdout;stderr;constructor(e,r="",n=""){super(e),this.stdout=r,this.stderr=n}prependOutput(e,r){this.stdout=e+this.stdout,this.stderr=r+this.stderr}},me=class extends Oe{levels;name="BreakError";constructor(e=1,r="",n=""){super("break",r,n),this.levels=e}},Ee=class extends Oe{levels;name="ContinueError";constructor(e=1,r="",n=""){super("continue",r,n),this.levels=e}},ye=class extends Oe{exitCode;name="ReturnError";constructor(e=0,r="",n=""){super("return",r,n),this.exitCode=e}},He=class extends Oe{exitCode;name="ErrexitError";constructor(e,r="",n=""){super(`errexit: command exited with status ${e}`,r,n),this.exitCode=e}},Pe=class extends Oe{varName;name="NounsetError";constructor(e,r=""){super(`${e}: unbound variable`,r,`bash: ${e}: unbound variable
142
+ `:"",matched:h>0}}async function Ln(t,e,r=[],n=[],s=[]){let i=e.fs.resolvePath(e.cwd,t),o=[];try{if(!(await e.fs.stat(i)).isDirectory){let u=t.split("/").pop()||t;return n.length>0&&n.some(f=>$e(u,f,{stripQuotes:!0}))?[]:r.length>0&&!r.some(f=>$e(u,f,{stripQuotes:!0}))?[]:[t]}let c=t.split("/").pop()||t;if(s.length>0&&s.some(u=>$e(c,u,{stripQuotes:!0})))return[];let l=await e.fs.readdir(i);for(let u of l){if(u.startsWith("."))continue;let f=t==="."?u:`${t}/${u}`,p=await Ln(f,e,r,n,s);o.push(...p)}}catch{}return o}async function Cp(t,e){let r=[],n=t.lastIndexOf("/"),s,i;if(n===-1?(s=e.cwd,i=t):(s=t.slice(0,n)||"/",i=t.slice(n+1)),t.includes("**")){let a=t.split("**"),c=a[0].replace(/\/$/,"")||".",l=a[1]||"";return await bo(c,l,e,r),r}let o=e.fs.resolvePath(e.cwd,s);try{let a=await e.fs.readdir(o);for(let c of a)if($e(c,i,{stripQuotes:!0})){let l=n===-1?c:`${s}/${c}`;r.push(l)}}catch{}return r.sort()}async function bo(t,e,r,n){let s=r.fs.resolvePath(r.cwd,t);try{if(!(await r.fs.stat(s)).isDirectory){let a=t.split("/").pop()||"";if(e){let c=e.replace(/^\//,"");$e(a,c,{stripQuotes:!0})&&n.push(t)}return}let o=await r.fs.readdir(s);for(let a of o){let c=t==="."?a:`${t}/${a}`,l=r.fs.resolvePath(r.cwd,c);if((await r.fs.stat(l)).isDirectory)await bo(c,e,r,n);else if(e){let f=e.replace(/^\//,"");$e(a,f,{stripQuotes:!0})&&n.push(c)}}}catch{}}var Sp,Mn,kp,Np,kr=A(()=>{"use strict";Dn();_();Sp={name:"grep",summary:"print lines that match patterns",usage:"grep [OPTION]... PATTERN [FILE]...",options:["-E, --extended-regexp PATTERN is an extended regular expression","-P, --perl-regexp PATTERN is a Perl regular expression","-F, --fixed-strings PATTERN is a set of newline-separated strings","-i, --ignore-case ignore case distinctions","-v, --invert-match select non-matching lines","-w, --word-regexp match only whole words","-x, --line-regexp match only whole lines","-c, --count print only a count of matching lines","-l, --files-with-matches print only names of files with matches","-L, --files-without-match print names of files with no matches","-m NUM, --max-count=NUM stop after NUM matches","-n, --line-number print line number with output lines","-h, --no-filename suppress the file name prefix on output","-o, --only-matching show only nonempty parts of lines that match","-q, --quiet, --silent suppress all normal output","-r, -R, --recursive search directories recursively","-A NUM print NUM lines of trailing context","-B NUM print NUM lines of leading context","-C NUM print NUM lines of context","-e PATTERN use PATTERN for matching"," --include=GLOB search only files matching GLOB"," --exclude=GLOB skip files matching GLOB"," --exclude-dir=DIR skip directories matching DIR"," --help display this help and exit"]},Mn={name:"grep",async execute(t,e){if(I(t))return N(Sp);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,c=!1,l=!1,u=!1,f=!1,p=!1,d=!1,h=!1,g=!1,m=!1,w=0,E=0,b=0,S=[],C=[],O=[],D=null,F=[];for(let z=0;z<t.length;z++){let H=t[z];if(H.startsWith("-")&&H!=="-"){if(H==="-e"&&z+1<t.length){D=t[++z];continue}if(H.startsWith("--include=")){S.push(H.slice(10));continue}if(H.startsWith("--exclude=")){C.push(H.slice(10));continue}if(H.startsWith("--exclude-dir=")){O.push(H.slice(14));continue}if(H.startsWith("--max-count=")){w=parseInt(H.slice(12),10);continue}let ke=H.match(/^-m(\d+)$/);if(ke){w=parseInt(ke[1],10);continue}if(H==="-m"&&z+1<t.length){w=parseInt(t[++z],10);continue}let Be=H.match(/^-([ABC])(\d+)$/);if(Be){let M=parseInt(Be[2],10);Be[1]==="A"?b=M:Be[1]==="B"?E=M:Be[1]==="C"&&(E=M,b=M);continue}if((H==="-A"||H==="-B"||H==="-C")&&z+1<t.length){let M=parseInt(t[++z],10);H==="-A"?b=M:H==="-B"?E=M:(E=M,b=M);continue}let Rn=H.startsWith("--")?[H]:H.slice(1).split("");for(let M of Rn)if(M==="i"||M==="--ignore-case")r=!0;else if(M==="n"||M==="--line-number")n=!0;else if(M==="v"||M==="--invert-match")s=!0;else if(M==="c"||M==="--count")i=!0;else if(M==="l"||M==="--files-with-matches")o=!0;else if(M==="L"||M==="--files-without-match")a=!0;else if(M==="r"||M==="R"||M==="--recursive")c=!0;else if(M==="w"||M==="--word-regexp")l=!0;else if(M==="x"||M==="--line-regexp")u=!0;else if(M==="E"||M==="--extended-regexp")f=!0;else if(M==="P"||M==="--perl-regexp")p=!0;else if(M==="F"||M==="--fixed-strings")d=!0;else if(M==="o"||M==="--only-matching")h=!0;else if(M==="h"||M==="--no-filename")g=!0;else if(M==="q"||M==="--quiet"||M==="--silent")m=!0;else{if(M.startsWith("--"))return L("grep",M);if(M.length===1)return L("grep",`-${M}`)}}else D===null?D=H:F.push(H)}if(D===null)return{stdout:"",stderr:`grep: missing pattern
143
+ `,exitCode:2};let U;d?U=D.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):f||p?U=D:U=Ap(D),l&&(U=`\\b${U}\\b`),u&&(U=`^${U}$`);let te;try{te=new RegExp(U,r?"gi":"g")}catch{return{stdout:"",stderr:`grep: invalid regular expression: ${D}
144
+ `,exitCode:2}}if(F.length===0&&e.stdin){let z=Eo(e.stdin,te,s,n,i,"",h,E,b,w);return m?{stdout:"",stderr:"",exitCode:z.matched?0:1}:{stdout:z.output,stderr:"",exitCode:z.matched?0:1}}if(F.length===0)return{stdout:"",stderr:`grep: no input files
145
+ `,exitCode:2};let de="",se="",Ce=!1,je=!1,Me=[];for(let z of F)if(z.includes("*")||z.includes("?")||z.includes("[")){let H=await Cp(z,e);if(c)for(let ke of H){let Be=await Ln(ke,e,S,C,O);Me.push(...Be)}else Me.push(...H)}else if(c){let H=await Ln(z,e,S,C,O);Me.push(...H)}else Me.push(z);let yr=(Me.length>1||c)&&!g;for(let z of Me){let H=z.split("/").pop()||z;if(!(C.length>0&&!c&&C.some(ke=>$e(H,ke,{stripQuotes:!0})))&&!(S.length>0&&!c&&!S.some(ke=>$e(H,ke,{stripQuotes:!0}))))try{let ke=e.fs.resolvePath(e.cwd,z);if((await e.fs.stat(ke)).isDirectory){c||(se+=`grep: ${z}: Is a directory
146
+ `);continue}let Rn=await e.fs.readFile(ke),M=Eo(Rn,te,s,n,i,yr?z:"",h,E,b,w);if(M.matched){if(Ce=!0,m)return{stdout:"",stderr:"",exitCode:0};o?de+=`${z}
147
+ `:a||(de+=M.output)}else a?de+=`${z}
148
+ `:i&&!o&&(de+=M.output)}catch{se+=`grep: ${z}: No such file or directory
149
+ `,je=!0}}let _e;return je?_e=2:a?_e=de.length>0?0:1:_e=Ce?0:1,m?{stdout:"",stderr:"",exitCode:_e}:{stdout:de,stderr:se,exitCode:_e}}};kp={name:"fgrep",async execute(t,e){return Mn.execute(["-F",...t],e)}},Np={name:"egrep",async execute(t,e){return Mn.execute(["-E",...t],e)}}});function Nr(t){return t instanceof me||t instanceof Ee||t instanceof ye}var Oe,me,Ee,ye,ze,Pe,X,ae,Ke,W,Ge,J=A(()=>{"use strict";Oe=class extends Error{stdout;stderr;constructor(e,r="",n=""){super(e),this.stdout=r,this.stderr=n}prependOutput(e,r){this.stdout=e+this.stdout,this.stderr=r+this.stderr}},me=class extends Oe{levels;name="BreakError";constructor(e=1,r="",n=""){super("break",r,n),this.levels=e}},Ee=class extends Oe{levels;name="ContinueError";constructor(e=1,r="",n=""){super("continue",r,n),this.levels=e}},ye=class extends Oe{exitCode;name="ReturnError";constructor(e=0,r="",n=""){super("return",r,n),this.exitCode=e}},ze=class extends Oe{exitCode;name="ErrexitError";constructor(e,r="",n=""){super(`errexit: command exited with status ${e}`,r,n),this.exitCode=e}},Pe=class extends Oe{varName;name="NounsetError";constructor(e,r=""){super(`${e}: unbound variable`,r,`bash: ${e}: unbound variable
150
150
  `),this.varName=e}},X=class extends Oe{exitCode;name="ExitError";constructor(e,r="",n=""){super("exit",r,n),this.exitCode=e}},ae=class extends Oe{name="ArithmeticError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}
151
151
  `}},Ke=class extends Oe{name="BadSubstitutionError";constructor(e,r="",n=""){super(e,r,n),this.stderr=n||`bash: ${e}: bad substitution
152
152
  `}},W=class extends Oe{limitType;name="ExecutionLimitError";static EXIT_CODE=126;constructor(e,r,n="",s=""){super(e,n,s),this.limitType=r,this.stderr=s||`bash: ${e}
153
- `}},Ge=class extends Oe{name="SubshellExitError";constructor(e="",r=""){super("subshell exit",e,r)}}});function go(t,e,r){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:r||new Map}}function gp(t){return typeof t=="object"&&"first"in t&&"step"in t}function Vt(t,e,r,n){if(t==="$")return e===r;if(typeof t=="number")return e===t;if(gp(t)){let{first:s,step:i}=t;return i===0?e===s:(e-s)%i===0&&e>=s}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(n)}catch{return!1}return!1}function xp(t){let e=r=>r===void 0?"undefined":r==="$"?"$":typeof r=="number"?String(r):"pattern"in r?`/${r.pattern}/`:"first"in r?`${r.first}~${r.step}`:"unknown";return`${e(t.start)},${e(t.end)}`}function Nt(t,e,r,n,s){if(!t||!t.start&&!t.end)return!0;let i=t.start,o=t.end;if(i!==void 0&&o===void 0)return Vt(i,e,r,n);if(i!==void 0&&o!==void 0){let a=typeof i=="object"&&"pattern"in i,c=typeof o=="object"&&"pattern"in o;if(!a&&!c){let u=typeof i=="number"?i:i==="$"?r:1,f=typeof o=="number"?o:r;return e>=u&&e<=f}if(s){let u=xp(t),f=s.get(u);return f||(f={active:!1},s.set(u,f)),f.active?(Vt(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):Vt(i,e,r,n)?(f.active=!0,f.startLine=e,s.set(u,f),Vt(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):!1}return Vt(i,e,r,n)}return!0}function wp(t){let e="",r=0;for(;r<t.length;){if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];if(n==="+"||n==="?"||n==="|"){e+=n,r+=2;continue}if(n==="("||n===")"){e+=n,r+=2;continue}if(n==="{"||n==="}"){e+=n,r+=2;continue}e+=t[r]+n,r+=2;continue}if(t[r]==="+"||t[r]==="?"||t[r]==="|"||t[r]==="("||t[r]===")"){e+=`\\${t[r]}`,r++;continue}e+=t[r],r++}return e}function Ep(t){let e="";for(let r=0;r<t.length;r++){let n=t[r],s=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
153
+ `}},Ge=class extends Oe{name="SubshellExitError";constructor(e="",r=""){super("subshell exit",e,r)}}});function Ao(t,e,r){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:r||new Map}}function vp(t){return typeof t=="object"&&"first"in t&&"step"in t}function Vt(t,e,r,n){if(t==="$")return e===r;if(typeof t=="number")return e===t;if(vp(t)){let{first:s,step:i}=t;return i===0?e===s:(e-s)%i===0&&e>=s}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(n)}catch{return!1}return!1}function Rp(t){let e=r=>r===void 0?"undefined":r==="$"?"$":typeof r=="number"?String(r):"pattern"in r?`/${r.pattern}/`:"first"in r?`${r.first}~${r.step}`:"unknown";return`${e(t.start)},${e(t.end)}`}function Nt(t,e,r,n,s){if(!t||!t.start&&!t.end)return!0;let i=t.start,o=t.end;if(i!==void 0&&o===void 0)return Vt(i,e,r,n);if(i!==void 0&&o!==void 0){let a=typeof i=="object"&&"pattern"in i,c=typeof o=="object"&&"pattern"in o;if(!a&&!c){let u=typeof i=="number"?i:i==="$"?r:1,f=typeof o=="number"?o:r;return e>=u&&e<=f}if(s){let u=Rp(t),f=s.get(u);return f||(f={active:!1},s.set(u,f)),f.active?(Vt(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):Vt(i,e,r,n)?(f.active=!0,f.startLine=e,s.set(u,f),Vt(o,e,r,n)&&(f.active=!1,s.set(u,f)),!0):!1}return Vt(i,e,r,n)}return!0}function $p(t){let e="",r=0;for(;r<t.length;){if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];if(n==="+"||n==="?"||n==="|"){e+=n,r+=2;continue}if(n==="("||n===")"){e+=n,r+=2;continue}if(n==="{"||n==="}"){e+=n,r+=2;continue}e+=t[r]+n,r+=2;continue}if(t[r]==="+"||t[r]==="?"||t[r]==="|"||t[r]==="("||t[r]===")"){e+=`\\${t[r]}`,r++;continue}e+=t[r],r++}return e}function Op(t){let e="";for(let r=0;r<t.length;r++){let n=t[r],s=n.charCodeAt(0);n==="\\"?e+="\\\\":n===" "?e+="\\t":n===`
154
154
  `?e+=`$
155
- `:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function yo(t,e,r){let n="",s=0;for(;s<t.length;){if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&"){n+="&",s+=2;continue}if(i==="n"){n+=`
156
- `,s+=2;continue}if(i==="t"){n+=" ",s+=2;continue}let o=parseInt(i,10);if(o>=1&&o<=9){n+=r[o-1]||"",s+=2;continue}n+=i,s+=2;continue}if(t[s]==="&"){n+=e,s++;continue}n+=t[s],s++}return n}function bp(t,e){let{lineNumber:r,totalLines:n,patternSpace:s}=e;if(t.type!=="label"&&Nt(t.address,r,n,s,e.rangeStates))switch(t.type){case"substitute":{let i=t,o="";i.global&&(o+="g"),i.ignoreCase&&(o+="i");let a=i.extendedRegex?i.pattern:wp(i.pattern);try{let c=new RegExp(a,o),l=c.test(e.patternSpace);if(c.lastIndex=0,l){if(e.substitutionMade=!0,i.nthOccurrence&&i.nthOccurrence>0&&!i.global){let u=0,f=i.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a,`g${i.ignoreCase?"i":""}`),(p,...d)=>{if(u++,u===f){let h=d.slice(0,-2);return yo(i.replacement,p,h)}return p})}else e.patternSpace=e.patternSpace.replace(c,(u,...f)=>{let p=f.slice(0,-2);return yo(i.replacement,u,p)});i.printOnMatch&&(e.printed=!0)}}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let i=e.patternSpace.indexOf(`
155
+ `:n==="\r"?e+="\\r":n==="\x07"?e+="\\a":n==="\b"?e+="\\b":n==="\f"?e+="\\f":n==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=n}return`${e}$`}function So(t,e,r){let n="",s=0;for(;s<t.length;){if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&"){n+="&",s+=2;continue}if(i==="n"){n+=`
156
+ `,s+=2;continue}if(i==="t"){n+=" ",s+=2;continue}let o=parseInt(i,10);if(o>=1&&o<=9){n+=r[o-1]||"",s+=2;continue}n+=i,s+=2;continue}if(t[s]==="&"){n+=e,s++;continue}n+=t[s],s++}return n}function Pp(t,e){let{lineNumber:r,totalLines:n,patternSpace:s}=e;if(t.type!=="label"&&Nt(t.address,r,n,s,e.rangeStates))switch(t.type){case"substitute":{let i=t,o="";i.global&&(o+="g"),i.ignoreCase&&(o+="i");let a=i.extendedRegex?i.pattern:$p(i.pattern);try{let c=new RegExp(a,o),l=c.test(e.patternSpace);if(c.lastIndex=0,l){if(e.substitutionMade=!0,i.nthOccurrence&&i.nthOccurrence>0&&!i.global){let u=0,f=i.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a,`g${i.ignoreCase?"i":""}`),(p,...d)=>{if(u++,u===f){let h=d.slice(0,-2);return So(i.replacement,p,h)}return p})}else e.patternSpace=e.patternSpace.replace(c,(u,...f)=>{let p=f.slice(0,-2);return So(i.replacement,u,p)});i.printOnMatch&&(e.printed=!0)}}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let i=e.patternSpace.indexOf(`
157
157
  `);i!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,i)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let i=e.patternSpace.indexOf(`
158
158
  `);i!==-1?(e.patternSpace=e.patternSpace.slice(i+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(t.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${t.text}`);break;case"change":e.patternSpace=t.text,e.deleted=!0,e.appendBuffer.push(t.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
159
159
  ${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
160
- ${e.holdSpace}`;break;case"exchange":{let i=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=i;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"list":{let i=Ep(e.patternSpace);e.lineNumberOutput.push(i);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:t.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:t.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:t.filename,content:`${e.patternSpace}
160
+ ${e.holdSpace}`;break;case"exchange":{let i=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=i;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,t.exitCode!==void 0&&(e.exitCode=t.exitCode);break;case"list":{let i=Op(e.patternSpace);e.lineNumberOutput.push(i);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":break;case"readFile":e.pendingFileReads.push({filename:t.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:t.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:t.filename,content:`${e.patternSpace}
161
161
  `});break;case"writeFirstLine":{let i=e.patternSpace.indexOf(`
162
162
  `),o=i!==-1?e.patternSpace.slice(0,i):e.patternSpace;e.pendingFileWrites.push({filename:t.filename,content:`${o}
163
- `});break}case"execute":t.command?e.pendingExecute={command:t.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=Sp(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function Sp(t,e){let r="";for(let n of t){let s=e.source.indexOf(n);s!==-1?r+=e.dest[s]:r+=n}return r}function Dn(t,e,r,n){let s=new Map;for(let l=0;l<t.length;l++){let u=t[l];u.type==="label"&&s.set(u.name,l)}let i=n?.maxIterations??yp,o=0,a=0,c=0;for(;c<t.length;){if(o++,o>i)throw new W(`sed: command execution exceeded maximum iterations (${i})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let l=t[c];if(l.type==="nextAppend"){if(Nt(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates))if(r&&r.currentLineIndex+a+1<r.lines.length){a++;let u=r.lines[r.currentLineIndex+a];e.patternSpace+=`
164
- ${u}`,e.lineNumber=r.currentLineIndex+a+1}else{e.quit=!0,e.deleted=!0;break}c++;continue}if(l.type==="branch"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)){if(u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="branchOnSubst"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="branchOnNoSubst"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&!e.substitutionMade){if(u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="group"){let u=l;Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&Dn(u.commands,e,r,n),c++;continue}bp(l,e),c++}return a}var yp,xo=A(()=>{"use strict";J();yp=1e4});var R,Ir,wo=A(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.DOLLAR="DOLLAR",t.PATTERN="PATTERN",t.STEP="STEP",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.COMMA="COMMA",t.COMMAND="COMMAND",t.SUBSTITUTE="SUBSTITUTE",t.TRANSLITERATE="TRANSLITERATE",t.LABEL_DEF="LABEL_DEF",t.BRANCH="BRANCH",t.BRANCH_ON_SUBST="BRANCH_ON_SUBST",t.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",t.TEXT_CMD="TEXT_CMD",t.FILE_READ="FILE_READ",t.FILE_READ_LINE="FILE_READ_LINE",t.FILE_WRITE="FILE_WRITE",t.FILE_WRITE_LINE="FILE_WRITE_LINE",t.EXECUTE="EXECUTE",t.EOF="EOF",t.ERROR="ERROR"})(R||(R={}));Ir=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&e.push(r)}return e.push(this.makeToken(R.EOF,"")),e}makeToken(e,r,n){return{type:e,value:r,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
163
+ `});break}case"execute":t.command?e.pendingExecute={command:t.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=Tp(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function Tp(t,e){let r="";for(let n of t){let s=e.source.indexOf(n);s!==-1?r+=e.dest[s]:r+=n}return r}function _n(t,e,r,n){let s=new Map;for(let l=0;l<t.length;l++){let u=t[l];u.type==="label"&&s.set(u.name,l)}let i=n?.maxIterations??Ip,o=0,a=0,c=0;for(;c<t.length;){if(o++,o>i)throw new W(`sed: command execution exceeded maximum iterations (${i})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let l=t[c];if(l.type==="nextAppend"){if(Nt(l.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates))if(r&&r.currentLineIndex+a+1<r.lines.length){a++;let u=r.lines[r.currentLineIndex+a];e.patternSpace+=`
164
+ ${u}`,e.lineNumber=r.currentLineIndex+a+1}else{e.quit=!0,e.deleted=!0;break}c++;continue}if(l.type==="branch"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)){if(u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="branchOnSubst"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&e.substitutionMade){if(e.substitutionMade=!1,u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="branchOnNoSubst"){let u=l;if(Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&!e.substitutionMade){if(u.label){let f=s.get(u.label);if(f!==void 0){c=f;continue}}break}c++;continue}if(l.type==="group"){let u=l;Nt(u.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates)&&_n(u.commands,e,r,n),c++;continue}Pp(l,e),c++}return a}var Ip,Co=A(()=>{"use strict";J();Ip=1e4});var R,Ir,ko=A(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.DOLLAR="DOLLAR",t.PATTERN="PATTERN",t.STEP="STEP",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.COMMA="COMMA",t.COMMAND="COMMAND",t.SUBSTITUTE="SUBSTITUTE",t.TRANSLITERATE="TRANSLITERATE",t.LABEL_DEF="LABEL_DEF",t.BRANCH="BRANCH",t.BRANCH_ON_SUBST="BRANCH_ON_SUBST",t.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",t.TEXT_CMD="TEXT_CMD",t.FILE_READ="FILE_READ",t.FILE_READ_LINE="FILE_READ_LINE",t.FILE_WRITE="FILE_WRITE",t.FILE_WRITE_LINE="FILE_WRITE_LINE",t.EXECUTE="EXECUTE",t.EOF="EOF",t.ERROR="ERROR"})(R||(R={}));Ir=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&e.push(r)}return e.push(this.makeToken(R.EOF,"")),e}makeToken(e,r,n){return{type:e,value:r,line:this.line,column:this.column,...n}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
165
165
  `?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
166
166
  `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,r=this.column,n=this.peek();return n===`
167
167
  `?(this.advance(),{type:R.NEWLINE,value:`
@@ -181,14 +181,14 @@ ${u}`,e.lineNumber=r.currentLineIndex+a+1}else{e.quit=!0,e.deleted=!0;break}c++;
181
181
  `;)s+=this.advance();return{type:R.TEXT_CMD,value:e,text:s.trim(),line:r,column:n}}readBranch(e,r,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let o=this.peek();if(o===" "||o===" "||o===`
182
182
  `||o===";"||o==="}"||o==="{")break;i+=this.advance()}return{type:e,value:r,label:i||void 0,line:n,column:s}}readFileCommand(e,r,n,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let o=this.peek();if(o===`
183
183
  `||o===";")break;i+=this.advance()}return{type:e,value:r,filename:i.trim(),line:n,column:s}}readExecute(e,r){for(;this.peek()===" "||this.peek()===" ";)this.advance();let n="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
184
- `||s===";")break;n+=this.advance()}return{type:R.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:r}}isDigit(e){return e>="0"&&e<="9"}}});function Eo(t,e=!1){return new Ln(t,e).parse()}var Ln,bo=A(()=>{"use strict";wo();Ln=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,r=!1){this.scripts=e,this.extendedRegex=r}parse(){let e=[];for(let r of this.scripts){let n=new Ir(r);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(R.NEWLINE)||this.check(R.SEMICOLON)){this.advance();continue}let s=this.parseCommand();if(s.error)return{commands:[],error:s.error};s.command&&e.push(s.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(R.NEWLINE)||this.check(R.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let r=this.peek();switch(r.type){case R.COMMAND:return this.parseSimpleCommand(r,e);case R.SUBSTITUTE:return this.parseSubstituteFromToken(r,e);case R.TRANSLITERATE:return this.parseTransliterateFromToken(r,e);case R.LABEL_DEF:return this.advance(),{command:{type:"label",name:r.label||""}};case R.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:r.label}};case R.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:r.label}};case R.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:r.label}};case R.TEXT_CMD:return this.advance(),this.parseTextCommand(r,e);case R.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:r.filename||""}};case R.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:r.filename||""}};case R.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:r.filename||""}};case R.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:r.filename||""}};case R.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:r.command}};case R.LBRACE:return this.parseGroup(e);case R.RBRACE:return{command:null};case R.ERROR:return{command:null,error:`invalid command: ${r.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,r){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:r}};case"P":return{command:{type:"printFirstLine",address:r}};case"d":return{command:{type:"delete",address:r}};case"D":return{command:{type:"deleteFirstLine",address:r}};case"h":return{command:{type:"hold",address:r}};case"H":return{command:{type:"holdAppend",address:r}};case"g":return{command:{type:"get",address:r}};case"G":return{command:{type:"getAppend",address:r}};case"x":return{command:{type:"exchange",address:r}};case"n":return{command:{type:"next",address:r}};case"N":return{command:{type:"nextAppend",address:r}};case"q":return{command:{type:"quit",address:r}};case"Q":return{command:{type:"quitSilent",address:r}};case"z":return{command:{type:"zap",address:r}};case"=":return{command:{type:"lineNumber",address:r}};case"l":return{command:{type:"list",address:r}};case"F":return{command:{type:"printFilename",address:r}};case"v":return{command:{type:"version",address:r}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,r){this.advance();let n=e.flags||"",s,i=n.match(/(\d+)/);return i&&(s=parseInt(i[1],10)),{command:{type:"substitute",address:r,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,r){this.advance();let n=e.source||"",s=e.dest||"";return n.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:r,source:n,dest:s}}}parseTextCommand(e,r){let n=e.value,s=e.text||"";switch(n){case"a":return{command:{type:"append",address:r,text:s}};case"i":return{command:{type:"insert",address:r,text:s}};case"c":return{command:{type:"change",address:r,text:s}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let r=[];for(;!this.isAtEnd()&&!this.check(R.RBRACE);){if(this.check(R.NEWLINE)||this.check(R.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&r.push(n.command)}return this.check(R.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:r}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let r;return this.check(R.COMMA)&&(this.advance(),r=this.parseAddress()),{start:e,end:r}}parseAddress(){let e=this.peek();switch(e.type){case R.NUMBER:return this.advance(),e.value;case R.DOLLAR:return this.advance(),"$";case R.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case R.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:R.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===R.EOF}}});var So={};$(So,{sedCommand:()=>Cp});async function Mn(t,e,r,n={}){let{limits:s,filename:i,fs:o,cwd:a}=n,c=t.split(`
185
- `);c.length>0&&c[c.length-1]===""&&c.pop();let l=c.length,u="",f,p="",d=new Map,h=new Map,g=new Map,y=new Map,w=s?{maxIterations:s.maxSedIterations}:void 0;for(let E=0;E<c.length;E++){let b={...go(l,i,d),patternSpace:c[E],holdSpace:p,lineNumber:E+1,totalLines:l,substitutionMade:!1},S={lines:c,currentLineIndex:E},C=0,O=1e4,D=0;do{if(C++,C>O)break;b.restartCycle=!1,b.pendingFileReads=[],b.pendingFileWrites=[];let te=Dn(e,b,S,w);if(D+=te,o&&a){for(let de of b.pendingFileReads){let se=o.resolvePath(a,de.filename);try{if(de.wholeFile){let Ce=await o.readFile(se);b.appendBuffer.push(Ce.replace(/\n$/,""))}else{if(!h.has(se)){let Me=await o.readFile(se);h.set(se,Me.split(`
186
- `)),g.set(se,0)}let Ce=h.get(se),ze=g.get(se);Ce&&ze!==void 0&&ze<Ce.length&&(b.appendBuffer.push(Ce[ze]),g.set(se,ze+1))}}catch{}}for(let de of b.pendingFileWrites){let se=o.resolvePath(a,de.filename),Ce=y.get(se)||"";y.set(se,Ce+de.content)}}S.currentLineIndex+=te}while(b.restartCycle&&!b.deleted&&!b.quit&&!b.quitSilent);E+=D,p=b.holdSpace;for(let te of b.lineNumberOutput)u+=`${te}
184
+ `||s===";")break;n+=this.advance()}return{type:R.EXECUTE,value:"e",command:n.trim()||void 0,line:e,column:r}}isDigit(e){return e>="0"&&e<="9"}}});function No(t,e=!1){return new Bn(t,e).parse()}var Bn,Io=A(()=>{"use strict";ko();Bn=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,r=!1){this.scripts=e,this.extendedRegex=r}parse(){let e=[];for(let r of this.scripts){let n=new Ir(r);for(this.tokens=n.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(R.NEWLINE)||this.check(R.SEMICOLON)){this.advance();continue}let s=this.parseCommand();if(s.error)return{commands:[],error:s.error};s.command&&e.push(s.command)}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();for(;this.check(R.NEWLINE)||this.check(R.SEMICOLON);)this.advance();if(this.isAtEnd())return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null};let r=this.peek();switch(r.type){case R.COMMAND:return this.parseSimpleCommand(r,e);case R.SUBSTITUTE:return this.parseSubstituteFromToken(r,e);case R.TRANSLITERATE:return this.parseTransliterateFromToken(r,e);case R.LABEL_DEF:return this.advance(),{command:{type:"label",name:r.label||""}};case R.BRANCH:return this.advance(),{command:{type:"branch",address:e,label:r.label}};case R.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:e,label:r.label}};case R.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:e,label:r.label}};case R.TEXT_CMD:return this.advance(),this.parseTextCommand(r,e);case R.FILE_READ:return this.advance(),{command:{type:"readFile",address:e,filename:r.filename||""}};case R.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:e,filename:r.filename||""}};case R.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:e,filename:r.filename||""}};case R.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:e,filename:r.filename||""}};case R.EXECUTE:return this.advance(),{command:{type:"execute",address:e,command:r.command}};case R.LBRACE:return this.parseGroup(e);case R.RBRACE:return{command:null};case R.ERROR:return{command:null,error:`invalid command: ${r.value}`};default:return e&&(e.start!==void 0||e.end!==void 0)?{command:{type:"print",address:e}}:{command:null}}}parseSimpleCommand(e,r){this.advance();let n=e.value;switch(n){case"p":return{command:{type:"print",address:r}};case"P":return{command:{type:"printFirstLine",address:r}};case"d":return{command:{type:"delete",address:r}};case"D":return{command:{type:"deleteFirstLine",address:r}};case"h":return{command:{type:"hold",address:r}};case"H":return{command:{type:"holdAppend",address:r}};case"g":return{command:{type:"get",address:r}};case"G":return{command:{type:"getAppend",address:r}};case"x":return{command:{type:"exchange",address:r}};case"n":return{command:{type:"next",address:r}};case"N":return{command:{type:"nextAppend",address:r}};case"q":return{command:{type:"quit",address:r}};case"Q":return{command:{type:"quitSilent",address:r}};case"z":return{command:{type:"zap",address:r}};case"=":return{command:{type:"lineNumber",address:r}};case"l":return{command:{type:"list",address:r}};case"F":return{command:{type:"printFilename",address:r}};case"v":return{command:{type:"version",address:r}};default:return{command:null,error:`unknown command: ${n}`}}}parseSubstituteFromToken(e,r){this.advance();let n=e.flags||"",s,i=n.match(/(\d+)/);return i&&(s=parseInt(i[1],10)),{command:{type:"substitute",address:r,pattern:e.pattern||"",replacement:e.replacement||"",global:n.includes("g"),ignoreCase:n.includes("i")||n.includes("I"),printOnMatch:n.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,r){this.advance();let n=e.source||"",s=e.dest||"";return n.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:r,source:n,dest:s}}}parseTextCommand(e,r){let n=e.value,s=e.text||"";switch(n){case"a":return{command:{type:"append",address:r,text:s}};case"i":return{command:{type:"insert",address:r,text:s}};case"c":return{command:{type:"change",address:r,text:s}};default:return{command:null,error:`unknown text command: ${n}`}}}parseGroup(e){this.advance();let r=[];for(;!this.isAtEnd()&&!this.check(R.RBRACE);){if(this.check(R.NEWLINE)||this.check(R.SEMICOLON)){this.advance();continue}let n=this.parseCommand();if(n.error)return{command:null,error:n.error};n.command&&r.push(n.command)}return this.check(R.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:r}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){let e=this.parseAddress();if(e===void 0)return;let r;return this.check(R.COMMA)&&(this.advance(),r=this.parseAddress()),{start:e,end:r}}parseAddress(){let e=this.peek();switch(e.type){case R.NUMBER:return this.advance(),e.value;case R.DOLLAR:return this.advance(),"$";case R.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case R.STEP:return this.advance(),{first:e.first||0,step:e.step||0};default:return}}peek(){return this.tokens[this.pos]||{type:R.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===R.EOF}}});var vo={};$(vo,{sedCommand:()=>Dp});async function Wn(t,e,r,n={}){let{limits:s,filename:i,fs:o,cwd:a}=n,c=t.split(`
185
+ `);c.length>0&&c[c.length-1]===""&&c.pop();let l=c.length,u="",f,p="",d=new Map,h=new Map,g=new Map,m=new Map,w=s?{maxIterations:s.maxSedIterations}:void 0;for(let E=0;E<c.length;E++){let b={...Ao(l,i,d),patternSpace:c[E],holdSpace:p,lineNumber:E+1,totalLines:l,substitutionMade:!1},S={lines:c,currentLineIndex:E},C=0,O=1e4,D=0;do{if(C++,C>O)break;b.restartCycle=!1,b.pendingFileReads=[],b.pendingFileWrites=[];let te=_n(e,b,S,w);if(D+=te,o&&a){for(let de of b.pendingFileReads){let se=o.resolvePath(a,de.filename);try{if(de.wholeFile){let Ce=await o.readFile(se);b.appendBuffer.push(Ce.replace(/\n$/,""))}else{if(!h.has(se)){let Me=await o.readFile(se);h.set(se,Me.split(`
186
+ `)),g.set(se,0)}let Ce=h.get(se),je=g.get(se);Ce&&je!==void 0&&je<Ce.length&&(b.appendBuffer.push(Ce[je]),g.set(se,je+1))}}catch{}}for(let de of b.pendingFileWrites){let se=o.resolvePath(a,de.filename),Ce=m.get(se)||"";m.set(se,Ce+de.content)}}S.currentLineIndex+=te}while(b.restartCycle&&!b.deleted&&!b.quit&&!b.quitSilent);E+=D,p=b.holdSpace;for(let te of b.lineNumberOutput)u+=`${te}
187
187
  `;let F=[],U=[];for(let te of b.appendBuffer)te.startsWith("__INSERT__")?F.push(te.slice(10)):U.push(te);for(let te of F)u+=`${te}
188
188
  `;!b.deleted&&!b.quitSilent&&(r?b.printed&&(u+=`${b.patternSpace}
189
189
  `):u+=`${b.patternSpace}
190
190
  `);for(let te of U)u+=`${te}
191
- `;if(b.quit||b.quitSilent){b.exitCode!==void 0&&(f=b.exitCode);break}}if(o&&a)for(let[E,b]of y)try{await o.writeFile(E,b)}catch{}return{output:u,exitCode:f}}var Ap,Cp,Ao=A(()=>{"use strict";J();_();xo();bo();Ap={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
191
+ `;if(b.quit||b.quitSilent){b.exitCode!==void 0&&(f=b.exitCode);break}}if(o&&a)for(let[E,b]of m)try{await o.writeFile(E,b)}catch{}return{output:u,exitCode:f}}var Fp,Dp,Ro=A(()=>{"use strict";J();_();Co();Io();Fp={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
192
192
  s/regexp/replacement/[flags] substitute
193
193
  d delete pattern space
194
194
  p print pattern space
@@ -217,36 +217,36 @@ Addresses:
217
217
  $ last line
218
218
  /regexp/ lines matching regexp
219
219
  N,M range from line N to M
220
- first~step every step-th line starting at first`};Cp={name:"sed",async execute(t,e){if(I(t))return N(Ap);let r=[],n=[],s=!1,i=!1,o=!1,a=[];for(let f=0;f<t.length;f++){let p=t[f];if(p==="-n"||p==="--quiet"||p==="--silent")s=!0;else if(p==="-i"||p==="--in-place")i=!0;else if(p.startsWith("-i"))i=!0;else if(p==="-E"||p==="-r"||p==="--regexp-extended")o=!0;else if(p==="-e")f+1<t.length&&r.push(t[++f]);else if(p==="-f")f+1<t.length&&n.push(t[++f]);else{if(p.startsWith("--"))return L("sed",p);if(p.startsWith("-")&&p.length>1){for(let d of p.slice(1))if(d!=="n"&&d!=="e"&&d!=="f"&&d!=="i"&&d!=="E"&&d!=="r")return L("sed",`-${d}`);p.includes("n")&&(s=!0),p.includes("i")&&(i=!0),(p.includes("E")||p.includes("r"))&&(o=!0),p.includes("e")&&!p.includes("n")&&!p.includes("i")&&f+1<t.length&&r.push(t[++f]),p.includes("f")&&!p.includes("e")&&f+1<t.length&&n.push(t[++f])}else!p.startsWith("-")&&r.length===0&&n.length===0?r.push(p):p.startsWith("-")||a.push(p)}}for(let f of n){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p);for(let h of d.split(`
220
+ first~step every step-th line starting at first`};Dp={name:"sed",async execute(t,e){if(I(t))return N(Fp);let r=[],n=[],s=!1,i=!1,o=!1,a=[];for(let f=0;f<t.length;f++){let p=t[f];if(p==="-n"||p==="--quiet"||p==="--silent")s=!0;else if(p==="-i"||p==="--in-place")i=!0;else if(p.startsWith("-i"))i=!0;else if(p==="-E"||p==="-r"||p==="--regexp-extended")o=!0;else if(p==="-e")f+1<t.length&&r.push(t[++f]);else if(p==="-f")f+1<t.length&&n.push(t[++f]);else{if(p.startsWith("--"))return L("sed",p);if(p.startsWith("-")&&p.length>1){for(let d of p.slice(1))if(d!=="n"&&d!=="e"&&d!=="f"&&d!=="i"&&d!=="E"&&d!=="r")return L("sed",`-${d}`);p.includes("n")&&(s=!0),p.includes("i")&&(i=!0),(p.includes("E")||p.includes("r"))&&(o=!0),p.includes("e")&&!p.includes("n")&&!p.includes("i")&&f+1<t.length&&r.push(t[++f]),p.includes("f")&&!p.includes("e")&&f+1<t.length&&n.push(t[++f])}else!p.startsWith("-")&&r.length===0&&n.length===0?r.push(p):p.startsWith("-")||a.push(p)}}for(let f of n){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p);for(let h of d.split(`
221
221
  `)){let g=h.trim();g&&!g.startsWith("#")&&r.push(g)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${f}: No such file or directory
222
222
  `,exitCode:1}}}if(r.length===0)return{stdout:"",stderr:`sed: no script specified
223
- `,exitCode:1};let{commands:c,error:l}=Eo(r,o);if(l)return{stdout:"",stderr:`sed: ${l}
223
+ `,exitCode:1};let{commands:c,error:l}=No(r,o);if(l)return{stdout:"",stderr:`sed: ${l}
224
224
  `,exitCode:1};if(c.length===0)return{stdout:"",stderr:`sed: no valid commands
225
- `,exitCode:1};let u="";if(a.length===0){u=e.stdin;try{let f=await Mn(u,c,s,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof W)return{stdout:"",stderr:`sed: ${f.message}
226
- `,exitCode:W.EXIT_CODE};throw f}}if(i){for(let f of a){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p),h=await Mn(d,c,s,{limits:e.limits,filename:f,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(p,h.output)}catch(d){return d instanceof W?{stdout:"",stderr:`sed: ${d.message}
225
+ `,exitCode:1};let u="";if(a.length===0){u=e.stdin;try{let f=await Wn(u,c,s,{limits:e.limits,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof W)return{stdout:"",stderr:`sed: ${f.message}
226
+ `,exitCode:W.EXIT_CODE};throw f}}if(i){for(let f of a){let p=e.fs.resolvePath(e.cwd,f);try{let d=await e.fs.readFile(p),h=await Wn(d,c,s,{limits:e.limits,filename:f,fs:e.fs,cwd:e.cwd});await e.fs.writeFile(p,h.output)}catch(d){return d instanceof W?{stdout:"",stderr:`sed: ${d.message}
227
227
  `,exitCode:W.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
228
228
  `,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let f of a){let p=e.fs.resolvePath(e.cwd,f);try{u+=await e.fs.readFile(p)}catch(d){return d instanceof W?{stdout:"",stderr:`sed: ${d.message}
229
229
  `,exitCode:W.EXIT_CODE}:{stdout:"",stderr:`sed: ${f}: No such file or directory
230
- `,exitCode:1}}}try{let f=await Mn(u,c,s,{limits:e.limits,filename:a.length===1?a[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof W)return{stdout:"",stderr:`sed: ${f.message}
231
- `,exitCode:W.EXIT_CODE};throw f}}}});function _n(t={}){let{fieldSep:e=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=100,fs:s,cwd:i}=t;return{FS:" ",OFS:" ",ORS:`
232
- `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:e,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:s,cwd:i}}var Co=A(()=>{"use strict"});function ko(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?t/e:0;case"%":return e!==0?t%e:0;case"^":case"**":return t**e;default:return 0}}var No=A(()=>{"use strict"});function Ne(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function ie(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}async function kp(t,e,r){return t.length===0?e.line.length:ie(await r.evalExpr(t[0])).length}async function Np(t,e,r){if(t.length<2)return"";let n=ie(await r.evalExpr(t[0])),s=Math.floor(Ne(await r.evalExpr(t[1])))-1;if(t.length>=3){let i=Math.floor(Ne(await r.evalExpr(t[2])));return n.substr(Math.max(0,s),i)}return n.substr(Math.max(0,s))}async function Ip(t,e,r){if(t.length<2)return 0;let n=ie(await r.evalExpr(t[0])),s=ie(await r.evalExpr(t[1])),i=n.indexOf(s);return i===-1?0:i+1}async function vp(t,e,r){if(t.length<2)return 0;let n=ie(await r.evalExpr(t[0])),s=t[1];if(s.type!=="variable")return 0;let i=s.name,o=e.FS;if(t.length>=3){let c=ie(await r.evalExpr(t[2]));o=c===" "?/\s+/:c}else e.FS===" "&&(o=/\s+/);let a=n.split(o);e.arrays[i]={};for(let c=0;c<a.length;c++)e.arrays[i][String(c+1)]=a[c];return a.length}async function Rp(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Ne(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ie(e.vars[i]??"");try{let a=new RegExp(n),c=o.replace(a,vo(s)),l=c!==o?1:0;if(i==="$0")e.line=c,e.fields=e.FS===" "?c.trim().split(/\s+/).filter(Boolean):c.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let u=parseInt(i.slice(1),10)-1;for(;e.fields.length<=u;)e.fields.push("");e.fields[u]=c,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=c;return l}catch{return 0}}async function $p(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Ne(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ie(e.vars[i]??"");try{let a=new RegExp(n,"g"),c=o.match(a),l=c?c.length:0,u=o.replace(a,vo(s));if(i==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let f=parseInt(i.slice(1),10)-1;for(;e.fields.length<=f;)e.fields.push("");e.fields[f]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=u;return l}catch{return 0}}function vo(t){return e=>{let r="",n=0;for(;n<t.length;)if(t[n]==="\\"&&n+1<t.length){let s=t[n+1];s==="&"?(r+="&",n+=2):s==="\\"?(r+="\\",n+=2):(r+=t[n+1],n+=2)}else t[n]==="&"?(r+=e,n++):(r+=t[n],n++);return r}}async function Op(t,e,r){if(t.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let n=ie(await r.evalExpr(t[0])),s;t[1].type==="regex"?s=t[1].pattern:(s=ie(await r.evalExpr(t[1])),s.startsWith("/")&&s.endsWith("/")&&(s=s.slice(1,-1)));try{let o=new RegExp(s).exec(n);if(o)return e.RSTART=o.index+1,e.RLENGTH=o[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}async function Pp(t,e,r){if(t.length<3)return"";let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i=ie(await r.evalExpr(t[2])),o=t.length>=4?ie(await r.evalExpr(t[3])):e.line;try{let a=i.toLowerCase()==="g",c=a?0:parseInt(i,10)||1;if(a){let l=new RegExp(n,"g");return o.replace(l,(u,...f)=>Io(s,u,f.slice(0,-2)))}else{let l=0,u=new RegExp(n,"g");return o.replace(u,(f,...p)=>(l++,l===c?Io(s,f,p.slice(0,-2)):f))}}catch{return o}}function Io(t,e,r){let n="",s=0;for(;s<t.length;)if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&")n+="&",s+=2;else if(i==="0")n+=e,s+=2;else if(i>="1"&&i<="9"){let o=parseInt(i,10)-1;n+=r[o]||"",s+=2}else i==="n"?(n+=`
233
- `,s+=2):i==="t"?(n+=" ",s+=2):(n+=i,s+=2)}else t[s]==="&"?(n+=e,s++):(n+=t[s],s++);return n}async function Tp(t,e,r){return t.length===0?"":ie(await r.evalExpr(t[0])).toLowerCase()}async function Fp(t,e,r){return t.length===0?"":ie(await r.evalExpr(t[0])).toUpperCase()}async function Dp(t,e,r){if(t.length===0)return"";let n=ie(await r.evalExpr(t[0])),s=[];for(let i=1;i<t.length;i++)s.push(await r.evalExpr(t[i]));return Un(n,s)}async function Lp(t,e,r){return t.length===0?0:Math.floor(Ne(await r.evalExpr(t[0])))}async function Mp(t,e,r){return t.length===0?0:Math.sqrt(Ne(await r.evalExpr(t[0])))}async function _p(t,e,r){return t.length===0?0:Math.sin(Ne(await r.evalExpr(t[0])))}async function Bp(t,e,r){return t.length===0?0:Math.cos(Ne(await r.evalExpr(t[0])))}async function Wp(t,e,r){let n=t.length>0?Ne(await r.evalExpr(t[0])):0,s=t.length>1?Ne(await r.evalExpr(t[1])):0;return Math.atan2(n,s)}async function Up(t,e,r){return t.length===0?0:Math.log(Ne(await r.evalExpr(t[0])))}async function Hp(t,e,r){return t.length===0?1:Math.exp(Ne(await r.evalExpr(t[0])))}function jp(t,e,r){return e.random?e.random():Math.random()}async function zp(t,e,r){let n=t.length>0?Ne(await r.evalExpr(t[0])):Date.now();return e.vars._srand_seed=n,n}function Bn(t,e){return()=>{throw new Error(`${t}() is not supported - ${e}`)}}function Wn(t){return()=>{throw new Error(`function '${t}()' is not implemented`)}}function Un(t,e){let r=0,n="",s=0;for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let i=s+1,o="",a="",c="";for(;i<t.length&&/[-+ #0]/.test(t[i]);)o+=t[i++];for(;i<t.length&&/\d/.test(t[i]);)a+=t[i++];if(t[i]===".")for(i++;i<t.length&&/\d/.test(t[i]);)c+=t[i++];let l=t[i],u=e[r];switch(l){case"s":{let f=u!==void 0?String(u):"";if(c&&(f=f.substring(0,parseInt(c,10))),a){let p=parseInt(a,10);o.includes("-")?f=f.padEnd(p):f=f.padStart(p)}n+=f,r++;break}case"d":case"i":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=String(f);if(a){let d=parseInt(a,10);if(o.includes("-"))p=p.padEnd(d);else if(o.includes("0")&&!o.includes("-")){let h=f<0?"-":"";p=h+Math.abs(f).toString().padStart(d-h.length,"0")}else p=p.padStart(d)}n+=p,r++;break}case"f":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f.toFixed(p);if(a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"e":case"E":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f.toExponential(p);if(l==="E"&&(d=d.toUpperCase()),a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"g":case"G":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f!==0?Math.floor(Math.log10(Math.abs(f))):0,h;if(f===0?h="0":d<-4||d>=p?(h=f.toExponential(p-1),l==="G"&&(h=h.toUpperCase())):h=f.toPrecision(p),h=h.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),a){let g=parseInt(a,10);o.includes("-")?h=h.padEnd(g):h=h.padStart(g)}n+=h,r++;break}case"x":case"X":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(16);if(l==="X"&&(p=p.toUpperCase()),a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"o":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(8);if(a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"c":{typeof u=="number"?n+=String.fromCharCode(u):n+=String(u??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=t.substring(s,i+1)}s=i+1}else if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];switch(i){case"n":n+=`
234
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=i}s+=2}else n+=t[s++];return n}var Ro,Hn=A(()=>{"use strict";Ro={length:kp,substr:Np,index:Ip,split:vp,sub:Rp,gsub:$p,match:Op,gensub:Pp,tolower:Tp,toupper:Fp,sprintf:Dp,int:Lp,sqrt:Mp,sin:_p,cos:Bp,atan2:Wp,log:Up,exp:Hp,rand:jp,srand:zp,system:Bn("system","shell execution not allowed in sandboxed environment"),close:Bn("close","file operations not allowed"),fflush:Bn("fflush","file operations not allowed"),systime:Wn("systime"),mktime:Wn("mktime"),strftime:Wn("strftime")}});function we(t){return typeof t=="number"?t!==0:t!==""}function z(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function q(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}function jn(t){if(typeof t=="number")return!0;let e=String(t).trim();return e===""?!1:!Number.isNaN(Number(e))}function Kt(t,e){try{return new RegExp(t).test(e)}catch{return!1}}var It=A(()=>{"use strict"});function $o(t,e){return t.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(t.fieldSep)}function ct(t,e){return e===0?t.line:e<0||e>t.fields.length?"":t.fields[e-1]??""}function vt(t,e,r){if(e===0)t.line=q(r),t.fields=$o(t,t.line),t.NF=t.fields.length;else if(e>0){for(;t.fields.length<e;)t.fields.push("");t.fields[e-1]=q(r),t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}}function Zt(t,e){t.line=e,t.fields=$o(t,e),t.NF=t.fields.length}function Oo(t,e){if(t.FS=e,e===" ")t.fieldSep=/\s+/;else try{t.fieldSep=new RegExp(e)}catch{t.fieldSep=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}var vr=A(()=>{"use strict";It()});function lt(t,e){switch(e){case"FS":return t.FS;case"OFS":return t.OFS;case"ORS":return t.ORS;case"NR":return t.NR;case"NF":return t.NF;case"FNR":return t.FNR;case"FILENAME":return t.FILENAME;case"RSTART":return t.RSTART;case"RLENGTH":return t.RLENGTH;case"SUBSEP":return t.SUBSEP;case"ARGC":return t.ARGC}return t.vars[e]??""}function et(t,e,r){switch(e){case"FS":Oo(t,q(r));return;case"OFS":t.OFS=q(r);return;case"ORS":t.ORS=q(r);return;case"NR":t.NR=Math.floor(z(r));return;case"NF":{let n=Math.floor(z(r));if(n<t.NF)t.fields=t.fields.slice(0,n),t.line=t.fields.join(t.OFS);else if(n>t.NF){for(;t.fields.length<n;)t.fields.push("");t.line=t.fields.join(t.OFS)}t.NF=n;return}case"FNR":t.FNR=Math.floor(z(r));return;case"FILENAME":t.FILENAME=q(r);return;case"RSTART":t.RSTART=Math.floor(z(r));return;case"RLENGTH":t.RLENGTH=Math.floor(z(r));return;case"SUBSEP":t.SUBSEP=q(r);return}t.vars[e]=r}function ut(t,e,r){return e==="ARGV"?t.ARGV[r]??"":t.arrays[e]?.[r]??""}function Rt(t,e,r,n){t.arrays[e]||(t.arrays[e]={}),t.arrays[e][r]=n}function Po(t,e,r){return e==="ARGV"?t.ARGV[r]!==void 0:t.arrays[e]?.[r]!==void 0}function To(t,e,r){t.arrays[e]&&delete t.arrays[e][r]}function Fo(t,e){delete t.arrays[e]}var zn=A(()=>{"use strict";vr();It()});function Do(t){Gn=t}async function T(t,e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return Kt(e.pattern,t.line)?1:0;case"field":return Gp(t,e);case"variable":return lt(t,e.name);case"array_access":return qp(t,e);case"binary":return Vp(t,e);case"unary":return Qp(t,e);case"ternary":return we(await T(t,e.condition))?T(t,e.consequent):T(t,e.alternate);case"call":return Xp(t,e.name,e.args);case"assignment":return Yp(t,e);case"pre_increment":return ed(t,e.operand);case"pre_decrement":return td(t,e.operand);case"post_increment":return rd(t,e.operand);case"post_decrement":return nd(t,e.operand);case"in":return sd(t,e.key,e.array);case"getline":return id(t,e.variable,e.file);case"tuple":return ad(t,e.elements);default:return""}}async function Gp(t,e){let r=Math.floor(z(await T(t,e.index)));return ct(t,r)}async function qp(t,e){let r=q(await T(t,e.key));return ut(t,e.array,r)}async function Vp(t,e){let r=e.operator;if(r==="||")return we(await T(t,e.left))||we(await T(t,e.right))?1:0;if(r==="&&")return we(await T(t,e.left))&&we(await T(t,e.right))?1:0;if(r==="~"){let a=await T(t,e.left),c=e.right.type==="regex"?e.right.pattern:q(await T(t,e.right));try{return new RegExp(c).test(q(a))?1:0}catch{return 0}}if(r==="!~"){let a=await T(t,e.left),c=e.right.type==="regex"?e.right.pattern:q(await T(t,e.right));try{return new RegExp(c).test(q(a))?0:1}catch{return 1}}let n=await T(t,e.left),s=await T(t,e.right);if(r===" ")return q(n)+q(s);if(Kp(r))return Zp(n,s,r);let i=z(n),o=z(s);return ko(i,o,r)}function Kp(t){return["<","<=",">",">=","==","!="].includes(t)}function Zp(t,e,r){let n=jn(t),s=jn(e);if(n&&s){let a=z(t),c=z(e);switch(r){case"<":return a<c?1:0;case"<=":return a<=c?1:0;case">":return a>c?1:0;case">=":return a>=c?1:0;case"==":return a===c?1:0;case"!=":return a!==c?1:0}}let i=q(t),o=q(e);switch(r){case"<":return i<o?1:0;case"<=":return i<=o?1:0;case">":return i>o?1:0;case">=":return i>=o?1:0;case"==":return i===o?1:0;case"!=":return i!==o?1:0}return 0}async function Qp(t,e){let r=await T(t,e.operand);switch(e.operator){case"!":return we(r)?0:1;case"-":return-z(r);case"+":return+z(r);default:return r}}async function Xp(t,e,r){let n=Ro[e];if(n)return n(r,t,{evalExpr:i=>T(t,i)});let s=t.functions.get(e);return s?Jp(t,s,r):""}async function Jp(t,e,r){if(t.currentRecursionDepth++,t.currentRecursionDepth>t.maxRecursionDepth)throw t.currentRecursionDepth--,new W(`awk: recursion depth exceeded maximum (${t.maxRecursionDepth})`,"recursion",t.output);let n={};for(let i of e.params)n[i]=t.vars[i];for(let i=0;i<e.params.length;i++){let o=e.params[i],a=i<r.length?await T(t,r[i]):"";t.vars[o]=a}t.hasReturn=!1,t.returnValue=void 0,Gn&&await Gn(t,e.body.statements);let s=t.returnValue??"";for(let i of e.params)n[i]!==void 0?t.vars[i]=n[i]:delete t.vars[i];return t.hasReturn=!1,t.returnValue=void 0,t.currentRecursionDepth--,s}async function Yp(t,e){let r=await T(t,e.value),n=e.target,s=e.operator,i;if(s==="=")i=r;else{let o;if(n.type==="field"){let l=Math.floor(z(await T(t,n.index)));o=ct(t,l)}else if(n.type==="variable")o=lt(t,n.name);else{let l=q(await T(t,n.key));o=ut(t,n.array,l)}let a=z(o),c=z(r);switch(s){case"+=":i=a+c;break;case"-=":i=a-c;break;case"*=":i=a*c;break;case"/=":i=c!==0?a/c:0;break;case"%=":i=c!==0?a%c:0;break;case"^=":i=a**c;break;default:i=r}}if(n.type==="field"){let o=Math.floor(z(await T(t,n.index)));vt(t,o,i)}else if(n.type==="variable")et(t,n.name,i);else{let o=q(await T(t,n.key));Rt(t,n.array,o,i)}return i}async function ed(t,e){let r;if(e.type==="field"){let n=Math.floor(z(await T(t,e.index)));r=z(ct(t,n))+1,vt(t,n,r)}else if(e.type==="variable")r=z(lt(t,e.name))+1,et(t,e.name,r);else{let n=q(await T(t,e.key));r=z(ut(t,e.array,n))+1,Rt(t,e.array,n,r)}return r}async function td(t,e){let r;if(e.type==="field"){let n=Math.floor(z(await T(t,e.index)));r=z(ct(t,n))-1,vt(t,n,r)}else if(e.type==="variable")r=z(lt(t,e.name))-1,et(t,e.name,r);else{let n=q(await T(t,e.key));r=z(ut(t,e.array,n))-1,Rt(t,e.array,n,r)}return r}async function rd(t,e){let r;if(e.type==="field"){let n=Math.floor(z(await T(t,e.index)));r=z(ct(t,n)),vt(t,n,r+1)}else if(e.type==="variable")r=z(lt(t,e.name)),et(t,e.name,r+1);else{let n=q(await T(t,e.key));r=z(ut(t,e.array,n)),Rt(t,e.array,n,r+1)}return r}async function nd(t,e){let r;if(e.type==="field"){let n=Math.floor(z(await T(t,e.index)));r=z(ct(t,n)),vt(t,n,r-1)}else if(e.type==="variable")r=z(lt(t,e.name)),et(t,e.name,r-1);else{let n=q(await T(t,e.key));r=z(ut(t,e.array,n)),Rt(t,e.array,n,r-1)}return r}async function sd(t,e,r){let n;if(e.type==="tuple"){let s=[];for(let i of e.elements)s.push(q(await T(t,i)));n=s.join(t.SUBSEP)}else n=q(await T(t,e));return Po(t,r,n)?1:0}async function id(t,e,r){if(r)return od(t,e,r);if(!t.lines||t.lineIndex===void 0)return-1;let n=t.lineIndex+1;if(n>=t.lines.length)return 0;let s=t.lines[n];return e?et(t,e,s):Zt(t,s),t.NR++,t.lineIndex=n,1}async function od(t,e,r){if(!t.fs||!t.cwd)return-1;let n=q(await T(t,r)),s=t.fs.resolvePath(t.cwd,n),i=`__fc_${s}`,o=`__fi_${s}`,a,c;if(t.vars[i]===void 0)try{a=(await t.fs.readFile(s)).split(`
235
- `),a.length>0&&a[a.length-1]===""&&a.pop(),t.vars[i]=JSON.stringify(a),t.vars[o]=-1,c=-1}catch{return-1}else a=JSON.parse(t.vars[i]),c=t.vars[o];let l=c+1;if(l>=a.length)return 0;let u=a[l];return t.vars[o]=l,e?et(t,e,u):Zt(t,u),1}async function ad(t,e){if(e.length===0)return"";for(let r=0;r<e.length-1;r++)await T(t,e[r]);return T(t,e[e.length-1])}var Gn,qn=A(()=>{"use strict";J();No();Hn();vr();It();zn();Gn=null});async function $t(t,e){for(let r of e)if(await ft(t,r),cd(t))break}function cd(t){return t.shouldExit||t.shouldNext||t.shouldNextFile||t.loopBreak||t.loopContinue||t.hasReturn}async function ft(t,e){switch(e.type){case"block":await $t(t,e.statements);break;case"expr_stmt":await T(t,e.expression);break;case"print":await ld(t,e.args,e.output);break;case"printf":await ud(t,e.format,e.args,e.output);break;case"if":await fd(t,e);break;case"while":await pd(t,e);break;case"do_while":await dd(t,e);break;case"for":await hd(t,e);break;case"for_in":await md(t,e);break;case"break":t.loopBreak=!0;break;case"continue":t.loopContinue=!0;break;case"next":t.shouldNext=!0;break;case"nextfile":t.shouldNextFile=!0;break;case"exit":t.shouldExit=!0,t.exitCode=e.code?Math.floor(z(await T(t,e.code))):0;break;case"return":t.hasReturn=!0,t.returnValue=e.value?await T(t,e.value):"";break;case"delete":await yd(t,e.target);break}}async function ld(t,e,r){let n=[];for(let i of e)n.push(q(await T(t,i)));let s=n.join(t.OFS)+t.ORS;r?await Lo(t,r.redirect,r.file,s):t.output+=s}async function ud(t,e,r,n){let s=q(await T(t,e)),i=[];for(let a of r)i.push(await T(t,a));let o=Un(s,i);n?await Lo(t,n.redirect,n.file,o):t.output+=o}async function Lo(t,e,r,n){if(!t.fs||!t.cwd){t.output+=n;return}let s=q(await T(t,r)),i=t.fs.resolvePath(t.cwd,s);e===">"?t.openedFiles.has(i)?await t.fs.appendFile(i,n):(await t.fs.writeFile(i,n),t.openedFiles.add(i)):(t.openedFiles.has(i)||t.openedFiles.add(i),await t.fs.appendFile(i,n))}async function fd(t,e){we(await T(t,e.condition))?await ft(t,e.consequent):e.alternate&&await ft(t,e.alternate)}async function pd(t,e){let r=0;for(;we(await T(t,e.condition));){if(r++,r>t.maxIterations)throw new W(`awk: while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function dd(t,e){let r=0;do{if(r++,r>t.maxIterations)throw new W(`awk: do-while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}while(we(await T(t,e.condition)))}async function hd(t,e){e.init&&await T(t,e.init);let r=0;for(;!e.condition||we(await T(t,e.condition));){if(r++,r>t.maxIterations)throw new W(`awk: for loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break;e.update&&await T(t,e.update)}}async function md(t,e){let r=t.arrays[e.array];if(r)for(let n of Object.keys(r)){if(t.vars[e.variable]=n,t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function yd(t,e){if(e.type==="array_access"){let r=q(await T(t,e.key));To(t,e.array,r)}else e.type==="variable"&&Fo(t,e.name)}var Mo=A(()=>{"use strict";J();Hn();qn();It();zn();Do($t)});var Qt,_o=A(()=>{"use strict";qn();vr();It();Mo();Qt=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let r of e.functions)this.ctx.functions.set(r.name,r);this.rangeStates=e.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(await $t(this.ctx,e.action.statements),this.ctx.shouldExit))break}}async executeLine(e){if(!(!this.program||this.ctx.shouldExit)){Zt(this.ctx,e),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await $t(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(await $t(this.ctx,e.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(e,r){let n=e.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return Kt(n.pattern,this.ctx.line);case"expr_pattern":return we(await T(this.ctx,n.expression));case"range":{let s=await this.matchPattern(n.start),i=await this.matchPattern(n.end);return this.rangeStates[r]?(i&&(this.rangeStates[r]=!1),!0):s?(this.rangeStates[r]=!0,i&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(e){switch(e.type){case"regex_pattern":return Kt(e.pattern,this.ctx.line);case"expr_pattern":return we(await T(this.ctx,e.expression));default:return!1}}}});var Bo=A(()=>{"use strict";Co();_o()});function xd(t){return t.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var x,gd,Rr,Wo=A(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.STRING="STRING",t.REGEX="REGEX",t.IDENT="IDENT",t.BEGIN="BEGIN",t.END="END",t.IF="IF",t.ELSE="ELSE",t.WHILE="WHILE",t.DO="DO",t.FOR="FOR",t.IN="IN",t.BREAK="BREAK",t.CONTINUE="CONTINUE",t.NEXT="NEXT",t.NEXTFILE="NEXTFILE",t.EXIT="EXIT",t.RETURN="RETURN",t.DELETE="DELETE",t.FUNCTION="FUNCTION",t.PRINT="PRINT",t.PRINTF="PRINTF",t.GETLINE="GETLINE",t.PLUS="PLUS",t.MINUS="MINUS",t.STAR="STAR",t.SLASH="SLASH",t.PERCENT="PERCENT",t.CARET="CARET",t.EQ="EQ",t.NE="NE",t.LT="LT",t.GT="GT",t.LE="LE",t.GE="GE",t.MATCH="MATCH",t.NOT_MATCH="NOT_MATCH",t.AND="AND",t.OR="OR",t.NOT="NOT",t.ASSIGN="ASSIGN",t.PLUS_ASSIGN="PLUS_ASSIGN",t.MINUS_ASSIGN="MINUS_ASSIGN",t.STAR_ASSIGN="STAR_ASSIGN",t.SLASH_ASSIGN="SLASH_ASSIGN",t.PERCENT_ASSIGN="PERCENT_ASSIGN",t.CARET_ASSIGN="CARET_ASSIGN",t.INCREMENT="INCREMENT",t.DECREMENT="DECREMENT",t.QUESTION="QUESTION",t.COLON="COLON",t.COMMA="COMMA",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.LBRACKET="LBRACKET",t.RBRACKET="RBRACKET",t.DOLLAR="DOLLAR",t.APPEND="APPEND",t.PIPE="PIPE",t.EOF="EOF"})(x||(x={}));gd={BEGIN:x.BEGIN,END:x.END,if:x.IF,else:x.ELSE,while:x.WHILE,do:x.DO,for:x.FOR,in:x.IN,break:x.BREAK,continue:x.CONTINUE,next:x.NEXT,nextfile:x.NEXTFILE,exit:x.EXIT,return:x.RETURN,delete:x.DELETE,function:x.FUNCTION,print:x.PRINT,printf:x.PRINTF,getline:x.GETLINE};Rr=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(e.push(r),this.lastTokenType=r.type)}return e.push(this.makeToken(x.EOF,"")),e}makeToken(e,r){return{type:e,value:r,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
230
+ `,exitCode:1}}}try{let f=await Wn(u,c,s,{limits:e.limits,filename:a.length===1?a[0]:void 0,fs:e.fs,cwd:e.cwd});return{stdout:f.output,stderr:"",exitCode:f.exitCode??0}}catch(f){if(f instanceof W)return{stdout:"",stderr:`sed: ${f.message}
231
+ `,exitCode:W.EXIT_CODE};throw f}}}});function Un(t={}){let{fieldSep:e=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=100,fs:s,cwd:i}=t;return{FS:" ",OFS:" ",ORS:`
232
+ `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:e,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:s,cwd:i}}var $o=A(()=>{"use strict"});function Oo(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?t/e:0;case"%":return e!==0?t%e:0;case"^":case"**":return t**e;default:return 0}}var Po=A(()=>{"use strict"});function Ne(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function ie(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}async function Lp(t,e,r){return t.length===0?e.line.length:ie(await r.evalExpr(t[0])).length}async function Mp(t,e,r){if(t.length<2)return"";let n=ie(await r.evalExpr(t[0])),s=Math.floor(Ne(await r.evalExpr(t[1])))-1;if(t.length>=3){let i=Math.floor(Ne(await r.evalExpr(t[2])));return n.substr(Math.max(0,s),i)}return n.substr(Math.max(0,s))}async function _p(t,e,r){if(t.length<2)return 0;let n=ie(await r.evalExpr(t[0])),s=ie(await r.evalExpr(t[1])),i=n.indexOf(s);return i===-1?0:i+1}async function Bp(t,e,r){if(t.length<2)return 0;let n=ie(await r.evalExpr(t[0])),s=t[1];if(s.type!=="variable")return 0;let i=s.name,o=e.FS;if(t.length>=3){let c=ie(await r.evalExpr(t[2]));o=c===" "?/\s+/:c}else e.FS===" "&&(o=/\s+/);let a=n.split(o);e.arrays[i]={};for(let c=0;c<a.length;c++)e.arrays[i][String(c+1)]=a[c];return a.length}async function Wp(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Ne(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ie(e.vars[i]??"");try{let a=new RegExp(n),c=o.replace(a,Fo(s)),l=c!==o?1:0;if(i==="$0")e.line=c,e.fields=e.FS===" "?c.trim().split(/\s+/).filter(Boolean):c.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let u=parseInt(i.slice(1),10)-1;for(;e.fields.length<=u;)e.fields.push("");e.fields[u]=c,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=c;return l}catch{return 0}}async function Up(t,e,r){if(t.length<2)return 0;let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i="$0";if(t.length>=3){let a=t[2];a.type==="variable"?i=a.name:a.type==="field"&&(i=`$${Math.floor(Ne(await r.evalExpr(a.index)))}`)}let o;if(i==="$0")o=e.line;else if(i.startsWith("$")){let a=parseInt(i.slice(1),10)-1;o=e.fields[a]||""}else o=ie(e.vars[i]??"");try{let a=new RegExp(n,"g"),c=o.match(a),l=c?c.length:0,u=o.replace(a,Fo(s));if(i==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(i.startsWith("$")){let f=parseInt(i.slice(1),10)-1;for(;e.fields.length<=f;)e.fields.push("");e.fields[f]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[i]=u;return l}catch{return 0}}function Fo(t){return e=>{let r="",n=0;for(;n<t.length;)if(t[n]==="\\"&&n+1<t.length){let s=t[n+1];s==="&"?(r+="&",n+=2):s==="\\"?(r+="\\",n+=2):(r+=t[n+1],n+=2)}else t[n]==="&"?(r+=e,n++):(r+=t[n],n++);return r}}async function zp(t,e,r){if(t.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let n=ie(await r.evalExpr(t[0])),s;t[1].type==="regex"?s=t[1].pattern:(s=ie(await r.evalExpr(t[1])),s.startsWith("/")&&s.endsWith("/")&&(s=s.slice(1,-1)));try{let o=new RegExp(s).exec(n);if(o)return e.RSTART=o.index+1,e.RLENGTH=o[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}async function Hp(t,e,r){if(t.length<3)return"";let n;t[0].type==="regex"?n=t[0].pattern:(n=ie(await r.evalExpr(t[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let s=ie(await r.evalExpr(t[1])),i=ie(await r.evalExpr(t[2])),o=t.length>=4?ie(await r.evalExpr(t[3])):e.line;try{let a=i.toLowerCase()==="g",c=a?0:parseInt(i,10)||1;if(a){let l=new RegExp(n,"g");return o.replace(l,(u,...f)=>To(s,u,f.slice(0,-2)))}else{let l=0,u=new RegExp(n,"g");return o.replace(u,(f,...p)=>(l++,l===c?To(s,f,p.slice(0,-2)):f))}}catch{return o}}function To(t,e,r){let n="",s=0;for(;s<t.length;)if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];if(i==="&")n+="&",s+=2;else if(i==="0")n+=e,s+=2;else if(i>="1"&&i<="9"){let o=parseInt(i,10)-1;n+=r[o]||"",s+=2}else i==="n"?(n+=`
233
+ `,s+=2):i==="t"?(n+=" ",s+=2):(n+=i,s+=2)}else t[s]==="&"?(n+=e,s++):(n+=t[s],s++);return n}async function jp(t,e,r){return t.length===0?"":ie(await r.evalExpr(t[0])).toLowerCase()}async function Gp(t,e,r){return t.length===0?"":ie(await r.evalExpr(t[0])).toUpperCase()}async function qp(t,e,r){if(t.length===0)return"";let n=ie(await r.evalExpr(t[0])),s=[];for(let i=1;i<t.length;i++)s.push(await r.evalExpr(t[i]));return jn(n,s)}async function Vp(t,e,r){return t.length===0?0:Math.floor(Ne(await r.evalExpr(t[0])))}async function Kp(t,e,r){return t.length===0?0:Math.sqrt(Ne(await r.evalExpr(t[0])))}async function Zp(t,e,r){return t.length===0?0:Math.sin(Ne(await r.evalExpr(t[0])))}async function Qp(t,e,r){return t.length===0?0:Math.cos(Ne(await r.evalExpr(t[0])))}async function Xp(t,e,r){let n=t.length>0?Ne(await r.evalExpr(t[0])):0,s=t.length>1?Ne(await r.evalExpr(t[1])):0;return Math.atan2(n,s)}async function Jp(t,e,r){return t.length===0?0:Math.log(Ne(await r.evalExpr(t[0])))}async function Yp(t,e,r){return t.length===0?1:Math.exp(Ne(await r.evalExpr(t[0])))}function ed(t,e,r){return e.random?e.random():Math.random()}async function td(t,e,r){let n=t.length>0?Ne(await r.evalExpr(t[0])):Date.now();return e.vars._srand_seed=n,n}function zn(t,e){return()=>{throw new Error(`${t}() is not supported - ${e}`)}}function Hn(t){return()=>{throw new Error(`function '${t}()' is not implemented`)}}function jn(t,e){let r=0,n="",s=0;for(;s<t.length;)if(t[s]==="%"&&s+1<t.length){let i=s+1,o="",a="",c="";for(;i<t.length&&/[-+ #0]/.test(t[i]);)o+=t[i++];for(;i<t.length&&/\d/.test(t[i]);)a+=t[i++];if(t[i]===".")for(i++;i<t.length&&/\d/.test(t[i]);)c+=t[i++];let l=t[i],u=e[r];switch(l){case"s":{let f=u!==void 0?String(u):"";if(c&&(f=f.substring(0,parseInt(c,10))),a){let p=parseInt(a,10);o.includes("-")?f=f.padEnd(p):f=f.padStart(p)}n+=f,r++;break}case"d":case"i":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=String(f);if(a){let d=parseInt(a,10);if(o.includes("-"))p=p.padEnd(d);else if(o.includes("0")&&!o.includes("-")){let h=f<0?"-":"";p=h+Math.abs(f).toString().padStart(d-h.length,"0")}else p=p.padStart(d)}n+=p,r++;break}case"f":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f.toFixed(p);if(a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"e":case"E":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f.toExponential(p);if(l==="E"&&(d=d.toUpperCase()),a){let h=parseInt(a,10);o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=d,r++;break}case"g":case"G":{let f=u!==void 0?Number(u):0;Number.isNaN(f)&&(f=0);let p=c?parseInt(c,10):6,d=f!==0?Math.floor(Math.log10(Math.abs(f))):0,h;if(f===0?h="0":d<-4||d>=p?(h=f.toExponential(p-1),l==="G"&&(h=h.toUpperCase())):h=f.toPrecision(p),h=h.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),a){let g=parseInt(a,10);o.includes("-")?h=h.padEnd(g):h=h.padStart(g)}n+=h,r++;break}case"x":case"X":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(16);if(l==="X"&&(p=p.toUpperCase()),a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"o":{let f=u!==void 0?Math.floor(Number(u)):0;Number.isNaN(f)&&(f=0);let p=Math.abs(f).toString(8);if(a){let d=parseInt(a,10);o.includes("0")?p=p.padStart(d,"0"):o.includes("-")?p=p.padEnd(d):p=p.padStart(d)}n+=f<0?`-${p}`:p,r++;break}case"c":{typeof u=="number"?n+=String.fromCharCode(u):n+=String(u??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=t.substring(s,i+1)}s=i+1}else if(t[s]==="\\"&&s+1<t.length){let i=t[s+1];switch(i){case"n":n+=`
234
+ `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=i}s+=2}else n+=t[s++];return n}var Do,Gn=A(()=>{"use strict";Do={length:Lp,substr:Mp,index:_p,split:Bp,sub:Wp,gsub:Up,match:zp,gensub:Hp,tolower:jp,toupper:Gp,sprintf:qp,int:Vp,sqrt:Kp,sin:Zp,cos:Qp,atan2:Xp,log:Jp,exp:Yp,rand:ed,srand:td,system:zn("system","shell execution not allowed in sandboxed environment"),close:zn("close","file operations not allowed"),fflush:zn("fflush","file operations not allowed"),systime:Hn("systime"),mktime:Hn("mktime"),strftime:Hn("strftime")}});function we(t){return typeof t=="number"?t!==0:t!==""}function G(t){if(typeof t=="number")return t;let e=parseFloat(t);return Number.isNaN(e)?0:e}function q(t){return typeof t=="string"?t:(Number.isInteger(t),String(t))}function qn(t){if(typeof t=="number")return!0;let e=String(t).trim();return e===""?!1:!Number.isNaN(Number(e))}function Kt(t,e){try{return new RegExp(t).test(e)}catch{return!1}}var It=A(()=>{"use strict"});function Lo(t,e){return t.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(t.fieldSep)}function ct(t,e){return e===0?t.line:e<0||e>t.fields.length?"":t.fields[e-1]??""}function vt(t,e,r){if(e===0)t.line=q(r),t.fields=Lo(t,t.line),t.NF=t.fields.length;else if(e>0){for(;t.fields.length<e;)t.fields.push("");t.fields[e-1]=q(r),t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}}function Zt(t,e){t.line=e,t.fields=Lo(t,e),t.NF=t.fields.length}function Mo(t,e){if(t.FS=e,e===" ")t.fieldSep=/\s+/;else try{t.fieldSep=new RegExp(e)}catch{t.fieldSep=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}var vr=A(()=>{"use strict";It()});function lt(t,e){switch(e){case"FS":return t.FS;case"OFS":return t.OFS;case"ORS":return t.ORS;case"NR":return t.NR;case"NF":return t.NF;case"FNR":return t.FNR;case"FILENAME":return t.FILENAME;case"RSTART":return t.RSTART;case"RLENGTH":return t.RLENGTH;case"SUBSEP":return t.SUBSEP;case"ARGC":return t.ARGC}return t.vars[e]??""}function et(t,e,r){switch(e){case"FS":Mo(t,q(r));return;case"OFS":t.OFS=q(r);return;case"ORS":t.ORS=q(r);return;case"NR":t.NR=Math.floor(G(r));return;case"NF":{let n=Math.floor(G(r));if(n<t.NF)t.fields=t.fields.slice(0,n),t.line=t.fields.join(t.OFS);else if(n>t.NF){for(;t.fields.length<n;)t.fields.push("");t.line=t.fields.join(t.OFS)}t.NF=n;return}case"FNR":t.FNR=Math.floor(G(r));return;case"FILENAME":t.FILENAME=q(r);return;case"RSTART":t.RSTART=Math.floor(G(r));return;case"RLENGTH":t.RLENGTH=Math.floor(G(r));return;case"SUBSEP":t.SUBSEP=q(r);return}t.vars[e]=r}function ut(t,e,r){return e==="ARGV"?t.ARGV[r]??"":t.arrays[e]?.[r]??""}function Rt(t,e,r,n){t.arrays[e]||(t.arrays[e]={}),t.arrays[e][r]=n}function _o(t,e,r){return e==="ARGV"?t.ARGV[r]!==void 0:t.arrays[e]?.[r]!==void 0}function Bo(t,e,r){t.arrays[e]&&delete t.arrays[e][r]}function Wo(t,e){delete t.arrays[e]}var Vn=A(()=>{"use strict";vr();It()});function Uo(t){Kn=t}async function T(t,e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return Kt(e.pattern,t.line)?1:0;case"field":return rd(t,e);case"variable":return lt(t,e.name);case"array_access":return nd(t,e);case"binary":return sd(t,e);case"unary":return ad(t,e);case"ternary":return we(await T(t,e.condition))?T(t,e.consequent):T(t,e.alternate);case"call":return cd(t,e.name,e.args);case"assignment":return ud(t,e);case"pre_increment":return fd(t,e.operand);case"pre_decrement":return pd(t,e.operand);case"post_increment":return dd(t,e.operand);case"post_decrement":return hd(t,e.operand);case"in":return md(t,e.key,e.array);case"getline":return yd(t,e.variable,e.file);case"tuple":return xd(t,e.elements);default:return""}}async function rd(t,e){let r=Math.floor(G(await T(t,e.index)));return ct(t,r)}async function nd(t,e){let r=q(await T(t,e.key));return ut(t,e.array,r)}async function sd(t,e){let r=e.operator;if(r==="||")return we(await T(t,e.left))||we(await T(t,e.right))?1:0;if(r==="&&")return we(await T(t,e.left))&&we(await T(t,e.right))?1:0;if(r==="~"){let a=await T(t,e.left),c=e.right.type==="regex"?e.right.pattern:q(await T(t,e.right));try{return new RegExp(c).test(q(a))?1:0}catch{return 0}}if(r==="!~"){let a=await T(t,e.left),c=e.right.type==="regex"?e.right.pattern:q(await T(t,e.right));try{return new RegExp(c).test(q(a))?0:1}catch{return 1}}let n=await T(t,e.left),s=await T(t,e.right);if(r===" ")return q(n)+q(s);if(id(r))return od(n,s,r);let i=G(n),o=G(s);return Oo(i,o,r)}function id(t){return["<","<=",">",">=","==","!="].includes(t)}function od(t,e,r){let n=qn(t),s=qn(e);if(n&&s){let a=G(t),c=G(e);switch(r){case"<":return a<c?1:0;case"<=":return a<=c?1:0;case">":return a>c?1:0;case">=":return a>=c?1:0;case"==":return a===c?1:0;case"!=":return a!==c?1:0}}let i=q(t),o=q(e);switch(r){case"<":return i<o?1:0;case"<=":return i<=o?1:0;case">":return i>o?1:0;case">=":return i>=o?1:0;case"==":return i===o?1:0;case"!=":return i!==o?1:0}return 0}async function ad(t,e){let r=await T(t,e.operand);switch(e.operator){case"!":return we(r)?0:1;case"-":return-G(r);case"+":return+G(r);default:return r}}async function cd(t,e,r){let n=Do[e];if(n)return n(r,t,{evalExpr:i=>T(t,i)});let s=t.functions.get(e);return s?ld(t,s,r):""}async function ld(t,e,r){if(t.currentRecursionDepth++,t.currentRecursionDepth>t.maxRecursionDepth)throw t.currentRecursionDepth--,new W(`awk: recursion depth exceeded maximum (${t.maxRecursionDepth})`,"recursion",t.output);let n={};for(let i of e.params)n[i]=t.vars[i];for(let i=0;i<e.params.length;i++){let o=e.params[i],a=i<r.length?await T(t,r[i]):"";t.vars[o]=a}t.hasReturn=!1,t.returnValue=void 0,Kn&&await Kn(t,e.body.statements);let s=t.returnValue??"";for(let i of e.params)n[i]!==void 0?t.vars[i]=n[i]:delete t.vars[i];return t.hasReturn=!1,t.returnValue=void 0,t.currentRecursionDepth--,s}async function ud(t,e){let r=await T(t,e.value),n=e.target,s=e.operator,i;if(s==="=")i=r;else{let o;if(n.type==="field"){let l=Math.floor(G(await T(t,n.index)));o=ct(t,l)}else if(n.type==="variable")o=lt(t,n.name);else{let l=q(await T(t,n.key));o=ut(t,n.array,l)}let a=G(o),c=G(r);switch(s){case"+=":i=a+c;break;case"-=":i=a-c;break;case"*=":i=a*c;break;case"/=":i=c!==0?a/c:0;break;case"%=":i=c!==0?a%c:0;break;case"^=":i=a**c;break;default:i=r}}if(n.type==="field"){let o=Math.floor(G(await T(t,n.index)));vt(t,o,i)}else if(n.type==="variable")et(t,n.name,i);else{let o=q(await T(t,n.key));Rt(t,n.array,o,i)}return i}async function fd(t,e){let r;if(e.type==="field"){let n=Math.floor(G(await T(t,e.index)));r=G(ct(t,n))+1,vt(t,n,r)}else if(e.type==="variable")r=G(lt(t,e.name))+1,et(t,e.name,r);else{let n=q(await T(t,e.key));r=G(ut(t,e.array,n))+1,Rt(t,e.array,n,r)}return r}async function pd(t,e){let r;if(e.type==="field"){let n=Math.floor(G(await T(t,e.index)));r=G(ct(t,n))-1,vt(t,n,r)}else if(e.type==="variable")r=G(lt(t,e.name))-1,et(t,e.name,r);else{let n=q(await T(t,e.key));r=G(ut(t,e.array,n))-1,Rt(t,e.array,n,r)}return r}async function dd(t,e){let r;if(e.type==="field"){let n=Math.floor(G(await T(t,e.index)));r=G(ct(t,n)),vt(t,n,r+1)}else if(e.type==="variable")r=G(lt(t,e.name)),et(t,e.name,r+1);else{let n=q(await T(t,e.key));r=G(ut(t,e.array,n)),Rt(t,e.array,n,r+1)}return r}async function hd(t,e){let r;if(e.type==="field"){let n=Math.floor(G(await T(t,e.index)));r=G(ct(t,n)),vt(t,n,r-1)}else if(e.type==="variable")r=G(lt(t,e.name)),et(t,e.name,r-1);else{let n=q(await T(t,e.key));r=G(ut(t,e.array,n)),Rt(t,e.array,n,r-1)}return r}async function md(t,e,r){let n;if(e.type==="tuple"){let s=[];for(let i of e.elements)s.push(q(await T(t,i)));n=s.join(t.SUBSEP)}else n=q(await T(t,e));return _o(t,r,n)?1:0}async function yd(t,e,r){if(r)return gd(t,e,r);if(!t.lines||t.lineIndex===void 0)return-1;let n=t.lineIndex+1;if(n>=t.lines.length)return 0;let s=t.lines[n];return e?et(t,e,s):Zt(t,s),t.NR++,t.lineIndex=n,1}async function gd(t,e,r){if(!t.fs||!t.cwd)return-1;let n=q(await T(t,r)),s=t.fs.resolvePath(t.cwd,n),i=`__fc_${s}`,o=`__fi_${s}`,a,c;if(t.vars[i]===void 0)try{a=(await t.fs.readFile(s)).split(`
235
+ `),a.length>0&&a[a.length-1]===""&&a.pop(),t.vars[i]=JSON.stringify(a),t.vars[o]=-1,c=-1}catch{return-1}else a=JSON.parse(t.vars[i]),c=t.vars[o];let l=c+1;if(l>=a.length)return 0;let u=a[l];return t.vars[o]=l,e?et(t,e,u):Zt(t,u),1}async function xd(t,e){if(e.length===0)return"";for(let r=0;r<e.length-1;r++)await T(t,e[r]);return T(t,e[e.length-1])}var Kn,Zn=A(()=>{"use strict";J();Po();Gn();vr();It();Vn();Kn=null});async function $t(t,e){for(let r of e)if(await ft(t,r),wd(t))break}function wd(t){return t.shouldExit||t.shouldNext||t.shouldNextFile||t.loopBreak||t.loopContinue||t.hasReturn}async function ft(t,e){switch(e.type){case"block":await $t(t,e.statements);break;case"expr_stmt":await T(t,e.expression);break;case"print":await Ed(t,e.args,e.output);break;case"printf":await bd(t,e.format,e.args,e.output);break;case"if":await Sd(t,e);break;case"while":await Ad(t,e);break;case"do_while":await Cd(t,e);break;case"for":await kd(t,e);break;case"for_in":await Nd(t,e);break;case"break":t.loopBreak=!0;break;case"continue":t.loopContinue=!0;break;case"next":t.shouldNext=!0;break;case"nextfile":t.shouldNextFile=!0;break;case"exit":t.shouldExit=!0,t.exitCode=e.code?Math.floor(G(await T(t,e.code))):0;break;case"return":t.hasReturn=!0,t.returnValue=e.value?await T(t,e.value):"";break;case"delete":await Id(t,e.target);break}}async function Ed(t,e,r){let n=[];for(let i of e)n.push(q(await T(t,i)));let s=n.join(t.OFS)+t.ORS;r?await zo(t,r.redirect,r.file,s):t.output+=s}async function bd(t,e,r,n){let s=q(await T(t,e)),i=[];for(let a of r)i.push(await T(t,a));let o=jn(s,i);n?await zo(t,n.redirect,n.file,o):t.output+=o}async function zo(t,e,r,n){if(!t.fs||!t.cwd){t.output+=n;return}let s=q(await T(t,r)),i=t.fs.resolvePath(t.cwd,s);e===">"?t.openedFiles.has(i)?await t.fs.appendFile(i,n):(await t.fs.writeFile(i,n),t.openedFiles.add(i)):(t.openedFiles.has(i)||t.openedFiles.add(i),await t.fs.appendFile(i,n))}async function Sd(t,e){we(await T(t,e.condition))?await ft(t,e.consequent):e.alternate&&await ft(t,e.alternate)}async function Ad(t,e){let r=0;for(;we(await T(t,e.condition));){if(r++,r>t.maxIterations)throw new W(`awk: while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function Cd(t,e){let r=0;do{if(r++,r>t.maxIterations)throw new W(`awk: do-while loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}while(we(await T(t,e.condition)))}async function kd(t,e){e.init&&await T(t,e.init);let r=0;for(;!e.condition||we(await T(t,e.condition));){if(r++,r>t.maxIterations)throw new W(`awk: for loop exceeded maximum iterations (${t.maxIterations})`,"iterations",t.output);if(t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break;e.update&&await T(t,e.update)}}async function Nd(t,e){let r=t.arrays[e.array];if(r)for(let n of Object.keys(r)){if(t.vars[e.variable]=n,t.loopContinue=!1,await ft(t,e.body),t.loopBreak){t.loopBreak=!1;break}if(t.shouldExit||t.shouldNext||t.hasReturn)break}}async function Id(t,e){if(e.type==="array_access"){let r=q(await T(t,e.key));Bo(t,e.array,r)}else e.type==="variable"&&Wo(t,e.name)}var Ho=A(()=>{"use strict";J();Gn();Zn();It();Vn();Uo($t)});var Qt,jo=A(()=>{"use strict";Zn();vr();It();Ho();Qt=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let r of e.functions)this.ctx.functions.set(r.name,r);this.rangeStates=e.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(await $t(this.ctx,e.action.statements),this.ctx.shouldExit))break}}async executeLine(e){if(!(!this.program||this.ctx.shouldExit)){Zt(this.ctx,e),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await $t(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(await $t(this.ctx,e.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(e,r){let n=e.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return Kt(n.pattern,this.ctx.line);case"expr_pattern":return we(await T(this.ctx,n.expression));case"range":{let s=await this.matchPattern(n.start),i=await this.matchPattern(n.end);return this.rangeStates[r]?(i&&(this.rangeStates[r]=!1),!0):s?(this.rangeStates[r]=!0,i&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(e){switch(e.type){case"regex_pattern":return Kt(e.pattern,this.ctx.line);case"expr_pattern":return we(await T(this.ctx,e.expression));default:return!1}}}});var Go=A(()=>{"use strict";$o();jo()});function Rd(t){return t.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var x,vd,Rr,qo=A(()=>{"use strict";(function(t){t.NUMBER="NUMBER",t.STRING="STRING",t.REGEX="REGEX",t.IDENT="IDENT",t.BEGIN="BEGIN",t.END="END",t.IF="IF",t.ELSE="ELSE",t.WHILE="WHILE",t.DO="DO",t.FOR="FOR",t.IN="IN",t.BREAK="BREAK",t.CONTINUE="CONTINUE",t.NEXT="NEXT",t.NEXTFILE="NEXTFILE",t.EXIT="EXIT",t.RETURN="RETURN",t.DELETE="DELETE",t.FUNCTION="FUNCTION",t.PRINT="PRINT",t.PRINTF="PRINTF",t.GETLINE="GETLINE",t.PLUS="PLUS",t.MINUS="MINUS",t.STAR="STAR",t.SLASH="SLASH",t.PERCENT="PERCENT",t.CARET="CARET",t.EQ="EQ",t.NE="NE",t.LT="LT",t.GT="GT",t.LE="LE",t.GE="GE",t.MATCH="MATCH",t.NOT_MATCH="NOT_MATCH",t.AND="AND",t.OR="OR",t.NOT="NOT",t.ASSIGN="ASSIGN",t.PLUS_ASSIGN="PLUS_ASSIGN",t.MINUS_ASSIGN="MINUS_ASSIGN",t.STAR_ASSIGN="STAR_ASSIGN",t.SLASH_ASSIGN="SLASH_ASSIGN",t.PERCENT_ASSIGN="PERCENT_ASSIGN",t.CARET_ASSIGN="CARET_ASSIGN",t.INCREMENT="INCREMENT",t.DECREMENT="DECREMENT",t.QUESTION="QUESTION",t.COLON="COLON",t.COMMA="COMMA",t.SEMICOLON="SEMICOLON",t.NEWLINE="NEWLINE",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.LBRACKET="LBRACKET",t.RBRACKET="RBRACKET",t.DOLLAR="DOLLAR",t.APPEND="APPEND",t.PIPE="PIPE",t.EOF="EOF"})(x||(x={}));vd={BEGIN:x.BEGIN,END:x.END,if:x.IF,else:x.ELSE,while:x.WHILE,do:x.DO,for:x.FOR,in:x.IN,break:x.BREAK,continue:x.CONTINUE,next:x.NEXT,nextfile:x.NEXTFILE,exit:x.EXIT,return:x.RETURN,delete:x.DELETE,function:x.FUNCTION,print:x.PRINT,printf:x.PRINTF,getline:x.GETLINE};Rr=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(e.push(r),this.lastTokenType=r.type)}return e.push(this.makeToken(x.EOF,"")),e}makeToken(e,r){return{type:e,value:r,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
236
236
  `?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="\\")if(this.peek(1)===`
237
237
  `)this.advance(),this.advance();else break;else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
238
238
  `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,r=this.column,n=this.peek();return n===`
239
239
  `?(this.advance(),{type:x.NEWLINE,value:`
240
240
  `,line:e,column:r}):n==='"'?this.readString():n==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(n)||n==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(n)||n==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,x.NEWLINE,x.SEMICOLON,x.LBRACE,x.RBRACE,x.LPAREN,x.LBRACKET,x.COMMA,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.AND,x.OR,x.NOT,x.MATCH,x.NOT_MATCH,x.QUESTION,x.COLON,x.LT,x.GT,x.LE,x.GE,x.EQ,x.NE,x.PLUS,x.MINUS,x.STAR,x.PERCENT,x.CARET,x.PRINT,x.PRINTF,x.IF,x.WHILE,x.DO,x.FOR,x.RETURN]).has(this.lastTokenType)}readString(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let s=this.advance();switch(s){case"n":n+=`
241
241
  `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;default:n+=s}}else n+=this.advance();return this.peek()==='"'&&this.advance(),{type:x.STRING,value:n,line:e,column:r}}readRegex(){let e=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
242
- `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=xd(n),{type:x.REGEX,value:n,line:e,column:r}}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:x.NUMBER,value:parseFloat(n),line:e,column:r}}readIdentifier(){let e=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let s=gd[n];return s?{type:s,value:n,line:e,column:r}:{type:x.IDENT,value:n,line:e,column:r}}readOperator(){let e=this.line,r=this.column,n=this.advance(),s=this.peek();switch(n){case"+":return s==="+"?(this.advance(),{type:x.INCREMENT,value:"++",line:e,column:r}):s==="="?(this.advance(),{type:x.PLUS_ASSIGN,value:"+=",line:e,column:r}):{type:x.PLUS,value:"+",line:e,column:r};case"-":return s==="-"?(this.advance(),{type:x.DECREMENT,value:"--",line:e,column:r}):s==="="?(this.advance(),{type:x.MINUS_ASSIGN,value:"-=",line:e,column:r}):{type:x.MINUS,value:"-",line:e,column:r};case"*":return s==="*"?(this.advance(),{type:x.CARET,value:"**",line:e,column:r}):s==="="?(this.advance(),{type:x.STAR_ASSIGN,value:"*=",line:e,column:r}):{type:x.STAR,value:"*",line:e,column:r};case"/":return s==="="?(this.advance(),{type:x.SLASH_ASSIGN,value:"/=",line:e,column:r}):{type:x.SLASH,value:"/",line:e,column:r};case"%":return s==="="?(this.advance(),{type:x.PERCENT_ASSIGN,value:"%=",line:e,column:r}):{type:x.PERCENT,value:"%",line:e,column:r};case"^":return s==="="?(this.advance(),{type:x.CARET_ASSIGN,value:"^=",line:e,column:r}):{type:x.CARET,value:"^",line:e,column:r};case"=":return s==="="?(this.advance(),{type:x.EQ,value:"==",line:e,column:r}):{type:x.ASSIGN,value:"=",line:e,column:r};case"!":return s==="="?(this.advance(),{type:x.NE,value:"!=",line:e,column:r}):s==="~"?(this.advance(),{type:x.NOT_MATCH,value:"!~",line:e,column:r}):{type:x.NOT,value:"!",line:e,column:r};case"<":return s==="="?(this.advance(),{type:x.LE,value:"<=",line:e,column:r}):{type:x.LT,value:"<",line:e,column:r};case">":return s==="="?(this.advance(),{type:x.GE,value:">=",line:e,column:r}):s===">"?(this.advance(),{type:x.APPEND,value:">>",line:e,column:r}):{type:x.GT,value:">",line:e,column:r};case"&":return s==="&"?(this.advance(),{type:x.AND,value:"&&",line:e,column:r}):{type:x.IDENT,value:"&",line:e,column:r};case"|":return s==="|"?(this.advance(),{type:x.OR,value:"||",line:e,column:r}):{type:x.PIPE,value:"|",line:e,column:r};case"~":return{type:x.MATCH,value:"~",line:e,column:r};case"?":return{type:x.QUESTION,value:"?",line:e,column:r};case":":return{type:x.COLON,value:":",line:e,column:r};case",":return{type:x.COMMA,value:",",line:e,column:r};case";":return{type:x.SEMICOLON,value:";",line:e,column:r};case"(":return{type:x.LPAREN,value:"(",line:e,column:r};case")":return{type:x.RPAREN,value:")",line:e,column:r};case"{":return{type:x.LBRACE,value:"{",line:e,column:r};case"}":return{type:x.RBRACE,value:"}",line:e,column:r};case"[":return{type:x.LBRACKET,value:"[",line:e,column:r};case"]":return{type:x.RBRACKET,value:"]",line:e,column:r};case"$":return{type:x.DOLLAR,value:"$",line:e,column:r};default:return{type:x.IDENT,value:n,line:e,column:r}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}}});var $r,Uo=A(()=>{"use strict";Wo();$r=class{tokens=[];pos=0;parse(e){let r=new Rr(e);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:x.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,r){if(!this.check(e)){let n=this.current();throw new Error(r||`Expected ${e}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(x.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(x.NEWLINE)||this.check(x.SEMICOLON);)this.advance()}parseProgram(){let e=[],r=[];for(this.skipNewlines();!this.check(x.EOF)&&(this.skipNewlines(),!this.check(x.EOF));)this.check(x.FUNCTION)?e.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:r}}parseFunction(){this.expect(x.FUNCTION);let e=this.expect(x.IDENT).value;this.expect(x.LPAREN);let r=[];if(!this.check(x.RPAREN))for(r.push(this.expect(x.IDENT).value);this.check(x.COMMA);)this.advance(),r.push(this.expect(x.IDENT).value);this.expect(x.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:e,params:r,body:n}}parseRule(){let e;if(this.check(x.BEGIN))this.advance(),e={type:"begin"};else if(this.check(x.END))this.advance(),e={type:"end"};else if(this.check(x.LBRACE))e=void 0;else if(this.check(x.REGEX)){let n=this.advance();if(this.check(x.AND)||this.check(x.OR)){let s={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:n.value}};e={type:"expr_pattern",expression:this.parseLogicalOrRest(s)}}else{let s={type:"regex_pattern",pattern:n.value};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}}else{let s={type:"expr_pattern",expression:this.parseExpression()};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}this.skipNewlines();let r;return this.check(x.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:r}}parseBlock(){this.expect(x.LBRACE),this.skipNewlines();let e=[];for(;!this.check(x.RBRACE)&&!this.check(x.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(x.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(x.LBRACE))return this.parseBlock();if(this.check(x.IF))return this.parseIf();if(this.check(x.WHILE))return this.parseWhile();if(this.check(x.DO))return this.parseDoWhile();if(this.check(x.FOR))return this.parseFor();if(this.check(x.BREAK))return this.advance(),{type:"break"};if(this.check(x.CONTINUE))return this.advance(),{type:"continue"};if(this.check(x.NEXT))return this.advance(),{type:"next"};if(this.check(x.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(x.EXIT)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(x.RETURN)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(x.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(x.PRINT)?this.parsePrint():this.check(x.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(x.IF),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(x.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:e,consequent:r,alternate:n}}parseWhile(){this.expect(x.WHILE),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:e,body:r}}parseDoWhile(){this.expect(x.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(x.WHILE),this.expect(x.LPAREN);let r=this.parseExpression();return this.expect(x.RPAREN),{type:"do_while",body:e,condition:r}}parseFor(){if(this.expect(x.FOR),this.expect(x.LPAREN),this.check(x.IDENT)){let i=this.advance();if(this.check(x.IN)){this.advance();let o=this.expect(x.IDENT).value;this.expect(x.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for_in",variable:i.value,array:o,body:a}}this.pos--}let e;this.check(x.SEMICOLON)||(e=this.parseExpression()),this.expect(x.SEMICOLON);let r;this.check(x.SEMICOLON)||(r=this.parseExpression()),this.expect(x.SEMICOLON);let n;this.check(x.RPAREN)||(n=this.parseExpression()),this.expect(x.RPAREN),this.skipNewlines();let s=this.parseStatement();return{type:"for",init:e,condition:r,update:n,body:s}}parsePrint(){this.expect(x.PRINT);let e=[];if(this.check(x.NEWLINE)||this.check(x.SEMICOLON)||this.check(x.RBRACE)||this.check(x.PIPE)||this.check(x.GT)||this.check(x.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parsePrintArg());this.check(x.COMMA);)this.advance(),e.push(this.parsePrintArg());let r;return this.check(x.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let e=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===x.LPAREN&&e++,n.type===x.RPAREN&&e--,n.type===x.QUESTION&&e===0)return!0;if(n.type===x.NEWLINE||n.type===x.SEMICOLON||n.type===x.RBRACE||n.type===x.COMMA||n.type===x.PIPE)return!1;r++}return!1}parsePrintOr(){let e=this.parsePrintAnd();for(;this.check(x.OR);){this.advance();let r=this.parsePrintAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parsePrintAnd(){let e=this.parsePrintIn();for(;this.check(x.AND);){this.advance();let r=this.parsePrintIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parsePrintIn(){let e=this.parsePrintMatch();if(this.check(x.IN)){this.advance();let r=String(this.expect(x.IDENT).value);return{type:"in",key:e,array:r}}return e}parsePrintMatch(){let e=this.parsePrintComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parsePrintComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parsePrintComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parsePrintf(){this.expect(x.PRINTF);let e=this.parsePrintArg(),r=[];for(;this.check(x.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(x.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:e,value:n}}return e}parseTernary(){let e=this.parseOr();if(this.check(x.QUESTION)){this.advance();let r=this.parseExpression();this.expect(x.COLON);let n=this.parseExpression();e={type:"ternary",condition:e,consequent:r,alternate:n}}return e}parseOr(){let e=this.parseAnd();for(;this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalOrRest(e){for(e=this.parseLogicalAndRest(e);this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalAndRest(e){for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseAnd(){let e=this.parseIn();for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseIn(){let e=this.parseMatch();if(this.check(x.IN)){this.advance();let r=this.expect(x.IDENT).value;return{type:"in",key:e,array:r}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parseComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:r}}return e}canStartExpression(){return this.match(x.NUMBER,x.STRING,x.IDENT,x.DOLLAR,x.LPAREN,x.NOT,x.MINUS,x.PLUS,x.INCREMENT,x.DECREMENT)}isComparisonOrHigherOp(){return this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE,x.AND,x.OR,x.QUESTION,x.MATCH,x.NOT_MATCH,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.COMMA,x.SEMICOLON,x.NEWLINE,x.RBRACE,x.RPAREN,x.RBRACKET,x.COLON,x.PIPE,x.APPEND,x.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(x.PLUS,x.MINUS);){let r=this.advance().value,n=this.parseMulDiv();e={type:"binary",operator:r,left:e,right:n}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(x.STAR,x.SLASH,x.PERCENT);){let r=this.advance(),n=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:e,right:n}}return e}parseUnary(){if(this.check(x.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(x.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(x.NOT,x.MINUS,x.PLUS)){let e=this.advance().value,r=this.parseUnary();return{type:"unary",operator:e,operand:r}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(x.CARET)){this.advance();let r=this.parsePower();e={type:"binary",operator:"^",left:e,right:r}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(x.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(x.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(x.NUMBER))return{type:"number",value:this.advance().value};if(this.check(x.STRING))return{type:"string",value:this.advance().value};if(this.check(x.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(x.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(x.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(x.COMMA)){let r=[e];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"tuple",elements:r}}return this.expect(x.RPAREN),e}if(this.check(x.GETLINE)){this.advance();let e,r;return this.check(x.IDENT)&&(e=this.advance().value),this.check(x.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:e,file:r}}if(this.check(x.IDENT)){let e=this.advance().value;if(this.check(x.LPAREN)){this.advance();let r=[];if(!this.check(x.RPAREN))for(r.push(this.parseExpression());this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"call",name:e,args:r}}if(this.check(x.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(x.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let s=1;s<r.length;s++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[s]}}return{type:"array_access",array:e,key:n}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}}});var Go={};$(Go,{awkCommand2:()=>Ed});function Ho(t){return t.replace(/\\t/g," ").replace(/\\n/g,`
243
- `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function jo(t){if(t===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(t))try{return new RegExp(t)}catch{return new RegExp(zo(t))}return new RegExp(zo(t))}function zo(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var wd,Ed,qo=A(()=>{"use strict";J();_();Bo();Uo();wd={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},Ed={name:"awk",async execute(t,e){if(I(t))return N(wd);let r=/\s+/,n=" ",s={},i=0;for(let d=0;d<t.length;d++){let h=t[d];if(h==="-F"&&d+1<t.length)n=Ho(t[++d]),r=jo(n),i=d+1;else if(h.startsWith("-F"))n=Ho(h.slice(2)),r=jo(n),i=d+1;else if(h==="-v"&&d+1<t.length){let g=t[++d],y=g.indexOf("=");if(y>0){let w=g.slice(0,y),E=g.slice(y+1);s[w]=E}i=d+1}else{if(h.startsWith("--"))return L("awk",h);if(h.startsWith("-")&&h.length>1){let g=h[1];if(g!=="F"&&g!=="v")return L("awk",`-${g}`);i=d+1}else if(!h.startsWith("-")){i=d;break}}}if(i>=t.length)return{stdout:"",stderr:`awk: missing program
242
+ `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=Rd(n),{type:x.REGEX,value:n,line:e,column:r}}readNumber(){let e=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:x.NUMBER,value:parseFloat(n),line:e,column:r}}readIdentifier(){let e=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let s=vd[n];return s?{type:s,value:n,line:e,column:r}:{type:x.IDENT,value:n,line:e,column:r}}readOperator(){let e=this.line,r=this.column,n=this.advance(),s=this.peek();switch(n){case"+":return s==="+"?(this.advance(),{type:x.INCREMENT,value:"++",line:e,column:r}):s==="="?(this.advance(),{type:x.PLUS_ASSIGN,value:"+=",line:e,column:r}):{type:x.PLUS,value:"+",line:e,column:r};case"-":return s==="-"?(this.advance(),{type:x.DECREMENT,value:"--",line:e,column:r}):s==="="?(this.advance(),{type:x.MINUS_ASSIGN,value:"-=",line:e,column:r}):{type:x.MINUS,value:"-",line:e,column:r};case"*":return s==="*"?(this.advance(),{type:x.CARET,value:"**",line:e,column:r}):s==="="?(this.advance(),{type:x.STAR_ASSIGN,value:"*=",line:e,column:r}):{type:x.STAR,value:"*",line:e,column:r};case"/":return s==="="?(this.advance(),{type:x.SLASH_ASSIGN,value:"/=",line:e,column:r}):{type:x.SLASH,value:"/",line:e,column:r};case"%":return s==="="?(this.advance(),{type:x.PERCENT_ASSIGN,value:"%=",line:e,column:r}):{type:x.PERCENT,value:"%",line:e,column:r};case"^":return s==="="?(this.advance(),{type:x.CARET_ASSIGN,value:"^=",line:e,column:r}):{type:x.CARET,value:"^",line:e,column:r};case"=":return s==="="?(this.advance(),{type:x.EQ,value:"==",line:e,column:r}):{type:x.ASSIGN,value:"=",line:e,column:r};case"!":return s==="="?(this.advance(),{type:x.NE,value:"!=",line:e,column:r}):s==="~"?(this.advance(),{type:x.NOT_MATCH,value:"!~",line:e,column:r}):{type:x.NOT,value:"!",line:e,column:r};case"<":return s==="="?(this.advance(),{type:x.LE,value:"<=",line:e,column:r}):{type:x.LT,value:"<",line:e,column:r};case">":return s==="="?(this.advance(),{type:x.GE,value:">=",line:e,column:r}):s===">"?(this.advance(),{type:x.APPEND,value:">>",line:e,column:r}):{type:x.GT,value:">",line:e,column:r};case"&":return s==="&"?(this.advance(),{type:x.AND,value:"&&",line:e,column:r}):{type:x.IDENT,value:"&",line:e,column:r};case"|":return s==="|"?(this.advance(),{type:x.OR,value:"||",line:e,column:r}):{type:x.PIPE,value:"|",line:e,column:r};case"~":return{type:x.MATCH,value:"~",line:e,column:r};case"?":return{type:x.QUESTION,value:"?",line:e,column:r};case":":return{type:x.COLON,value:":",line:e,column:r};case",":return{type:x.COMMA,value:",",line:e,column:r};case";":return{type:x.SEMICOLON,value:";",line:e,column:r};case"(":return{type:x.LPAREN,value:"(",line:e,column:r};case")":return{type:x.RPAREN,value:")",line:e,column:r};case"{":return{type:x.LBRACE,value:"{",line:e,column:r};case"}":return{type:x.RBRACE,value:"}",line:e,column:r};case"[":return{type:x.LBRACKET,value:"[",line:e,column:r};case"]":return{type:x.RBRACKET,value:"]",line:e,column:r};case"$":return{type:x.DOLLAR,value:"$",line:e,column:r};default:return{type:x.IDENT,value:n,line:e,column:r}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}}});var $r,Vo=A(()=>{"use strict";qo();$r=class{tokens=[];pos=0;parse(e){let r=new Rr(e);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:x.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,r){if(!this.check(e)){let n=this.current();throw new Error(r||`Expected ${e}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(x.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(x.NEWLINE)||this.check(x.SEMICOLON);)this.advance()}parseProgram(){let e=[],r=[];for(this.skipNewlines();!this.check(x.EOF)&&(this.skipNewlines(),!this.check(x.EOF));)this.check(x.FUNCTION)?e.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:r}}parseFunction(){this.expect(x.FUNCTION);let e=this.expect(x.IDENT).value;this.expect(x.LPAREN);let r=[];if(!this.check(x.RPAREN))for(r.push(this.expect(x.IDENT).value);this.check(x.COMMA);)this.advance(),r.push(this.expect(x.IDENT).value);this.expect(x.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:e,params:r,body:n}}parseRule(){let e;if(this.check(x.BEGIN))this.advance(),e={type:"begin"};else if(this.check(x.END))this.advance(),e={type:"end"};else if(this.check(x.LBRACE))e=void 0;else if(this.check(x.REGEX)){let n=this.advance();if(this.check(x.AND)||this.check(x.OR)){let s={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:n.value}};e={type:"expr_pattern",expression:this.parseLogicalOrRest(s)}}else{let s={type:"regex_pattern",pattern:n.value};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}}else{let s={type:"expr_pattern",expression:this.parseExpression()};if(this.check(x.COMMA)){this.advance();let i;this.check(x.REGEX)?i={type:"regex_pattern",pattern:this.advance().value}:i={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:s,end:i}}else e=s}this.skipNewlines();let r;return this.check(x.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:r}}parseBlock(){this.expect(x.LBRACE),this.skipNewlines();let e=[];for(;!this.check(x.RBRACE)&&!this.check(x.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(x.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(x.LBRACE))return this.parseBlock();if(this.check(x.IF))return this.parseIf();if(this.check(x.WHILE))return this.parseWhile();if(this.check(x.DO))return this.parseDoWhile();if(this.check(x.FOR))return this.parseFor();if(this.check(x.BREAK))return this.advance(),{type:"break"};if(this.check(x.CONTINUE))return this.advance(),{type:"continue"};if(this.check(x.NEXT))return this.advance(),{type:"next"};if(this.check(x.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(x.EXIT)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(x.RETURN)){this.advance();let r;return!this.check(x.NEWLINE)&&!this.check(x.SEMICOLON)&&!this.check(x.RBRACE)&&!this.check(x.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(x.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(x.PRINT)?this.parsePrint():this.check(x.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(x.IF),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(x.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:e,consequent:r,alternate:n}}parseWhile(){this.expect(x.WHILE),this.expect(x.LPAREN);let e=this.parseExpression();this.expect(x.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:e,body:r}}parseDoWhile(){this.expect(x.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(x.WHILE),this.expect(x.LPAREN);let r=this.parseExpression();return this.expect(x.RPAREN),{type:"do_while",body:e,condition:r}}parseFor(){if(this.expect(x.FOR),this.expect(x.LPAREN),this.check(x.IDENT)){let i=this.advance();if(this.check(x.IN)){this.advance();let o=this.expect(x.IDENT).value;this.expect(x.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for_in",variable:i.value,array:o,body:a}}this.pos--}let e;this.check(x.SEMICOLON)||(e=this.parseExpression()),this.expect(x.SEMICOLON);let r;this.check(x.SEMICOLON)||(r=this.parseExpression()),this.expect(x.SEMICOLON);let n;this.check(x.RPAREN)||(n=this.parseExpression()),this.expect(x.RPAREN),this.skipNewlines();let s=this.parseStatement();return{type:"for",init:e,condition:r,update:n,body:s}}parsePrint(){this.expect(x.PRINT);let e=[];if(this.check(x.NEWLINE)||this.check(x.SEMICOLON)||this.check(x.RBRACE)||this.check(x.PIPE)||this.check(x.GT)||this.check(x.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parsePrintArg());this.check(x.COMMA);)this.advance(),e.push(this.parsePrintArg());let r;return this.check(x.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let e=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===x.LPAREN&&e++,n.type===x.RPAREN&&e--,n.type===x.QUESTION&&e===0)return!0;if(n.type===x.NEWLINE||n.type===x.SEMICOLON||n.type===x.RBRACE||n.type===x.COMMA||n.type===x.PIPE)return!1;r++}return!1}parsePrintOr(){let e=this.parsePrintAnd();for(;this.check(x.OR);){this.advance();let r=this.parsePrintAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parsePrintAnd(){let e=this.parsePrintIn();for(;this.check(x.AND);){this.advance();let r=this.parsePrintIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parsePrintIn(){let e=this.parsePrintMatch();if(this.check(x.IN)){this.advance();let r=String(this.expect(x.IDENT).value);return{type:"in",key:e,array:r}}return e}parsePrintMatch(){let e=this.parsePrintComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parsePrintComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parsePrintComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parsePrintf(){this.expect(x.PRINTF);let e=this.parsePrintArg(),r=[];for(;this.check(x.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(x.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(x.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:e,value:n}}return e}parseTernary(){let e=this.parseOr();if(this.check(x.QUESTION)){this.advance();let r=this.parseExpression();this.expect(x.COLON);let n=this.parseExpression();e={type:"ternary",condition:e,consequent:r,alternate:n}}return e}parseOr(){let e=this.parseAnd();for(;this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalOrRest(e){for(e=this.parseLogicalAndRest(e);this.check(x.OR);){this.advance();let r=this.parseAnd();e={type:"binary",operator:"||",left:e,right:r}}return e}parseLogicalAndRest(e){for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseAnd(){let e=this.parseIn();for(;this.check(x.AND);){this.advance();let r=this.parseIn();e={type:"binary",operator:"&&",left:e,right:r}}return e}parseIn(){let e=this.parseMatch();if(this.check(x.IN)){this.advance();let r=this.expect(x.IDENT).value;return{type:"in",key:e,array:r}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(x.MATCH,x.NOT_MATCH);){let r=this.advance().type===x.MATCH?"~":"!~",n=this.parseComparison();e={type:"binary",operator:r,left:e,right:n}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE);){let r=this.advance(),n=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:e,right:n}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:r}}return e}canStartExpression(){return this.match(x.NUMBER,x.STRING,x.IDENT,x.DOLLAR,x.LPAREN,x.NOT,x.MINUS,x.PLUS,x.INCREMENT,x.DECREMENT)}isComparisonOrHigherOp(){return this.match(x.LT,x.LE,x.GT,x.GE,x.EQ,x.NE,x.AND,x.OR,x.QUESTION,x.MATCH,x.NOT_MATCH,x.ASSIGN,x.PLUS_ASSIGN,x.MINUS_ASSIGN,x.STAR_ASSIGN,x.SLASH_ASSIGN,x.PERCENT_ASSIGN,x.CARET_ASSIGN,x.COMMA,x.SEMICOLON,x.NEWLINE,x.RBRACE,x.RPAREN,x.RBRACKET,x.COLON,x.PIPE,x.APPEND,x.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(x.PLUS,x.MINUS);){let r=this.advance().value,n=this.parseMulDiv();e={type:"binary",operator:r,left:e,right:n}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(x.STAR,x.SLASH,x.PERCENT);){let r=this.advance(),n=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:e,right:n}}return e}parseUnary(){if(this.check(x.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(x.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(x.NOT,x.MINUS,x.PLUS)){let e=this.advance().value,r=this.parseUnary();return{type:"unary",operator:e,operand:r}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(x.CARET)){this.advance();let r=this.parsePower();e={type:"binary",operator:"^",left:e,right:r}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(x.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(x.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(x.NUMBER))return{type:"number",value:this.advance().value};if(this.check(x.STRING))return{type:"string",value:this.advance().value};if(this.check(x.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(x.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(x.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(x.COMMA)){let r=[e];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"tuple",elements:r}}return this.expect(x.RPAREN),e}if(this.check(x.GETLINE)){this.advance();let e,r;return this.check(x.IDENT)&&(e=this.advance().value),this.check(x.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:e,file:r}}if(this.check(x.IDENT)){let e=this.advance().value;if(this.check(x.LPAREN)){this.advance();let r=[];if(!this.check(x.RPAREN))for(r.push(this.parseExpression());this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(x.RPAREN),{type:"call",name:e,args:r}}if(this.check(x.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(x.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(x.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let s=1;s<r.length;s++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[s]}}return{type:"array_access",array:e,key:n}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}}});var Xo={};$(Xo,{awkCommand2:()=>Od});function Ko(t){return t.replace(/\\t/g," ").replace(/\\n/g,`
243
+ `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function Zo(t){if(t===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(t))try{return new RegExp(t)}catch{return new RegExp(Qo(t))}return new RegExp(Qo(t))}function Qo(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var $d,Od,Jo=A(()=>{"use strict";J();_();Go();Vo();$d={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},Od={name:"awk",async execute(t,e){if(I(t))return N($d);let r=/\s+/,n=" ",s={},i=0;for(let d=0;d<t.length;d++){let h=t[d];if(h==="-F"&&d+1<t.length)n=Ko(t[++d]),r=Zo(n),i=d+1;else if(h.startsWith("-F"))n=Ko(h.slice(2)),r=Zo(n),i=d+1;else if(h==="-v"&&d+1<t.length){let g=t[++d],m=g.indexOf("=");if(m>0){let w=g.slice(0,m),E=g.slice(m+1);s[w]=E}i=d+1}else{if(h.startsWith("--"))return L("awk",h);if(h.startsWith("-")&&h.length>1){let g=h[1];if(g!=="F"&&g!=="v")return L("awk",`-${g}`);i=d+1}else if(!h.startsWith("-")){i=d;break}}}if(i>=t.length)return{stdout:"",stderr:`awk: missing program
244
244
  `,exitCode:1};let o=t[i],a=t.slice(i+1),c=new $r,l;try{l=c.parse(o)}catch(d){return{stdout:"",stderr:`awk: ${d instanceof Error?d.message:String(d)}
245
- `,exitCode:1}}let u={readFile:e.fs.readFile.bind(e.fs),writeFile:e.fs.writeFile.bind(e.fs),appendFile:async(d,h)=>{try{let g=await e.fs.readFile(d);await e.fs.writeFile(d,g+h)}catch{await e.fs.writeFile(d,h)}},resolvePath:e.fs.resolvePath.bind(e.fs)},f=_n({fieldSep:r,maxIterations:e.limits?.maxAwkIterations,fs:u,cwd:e.cwd});f.FS=n,f.vars={...s},f.ARGC=a.length+1,f.ARGV={0:"awk"};for(let d=0;d<a.length;d++)f.ARGV[String(d+1)]=a[d];let p=new Qt(f);p.execute(l);try{if(await p.executeBegin(),f.shouldExit)return{stdout:p.getOutput(),stderr:"",exitCode:p.getExitCode()};let d=[];if(a.length>0)for(let h of a)try{let g=e.fs.resolvePath(e.cwd,h),w=(await e.fs.readFile(g)).split(`
245
+ `,exitCode:1}}let u={readFile:e.fs.readFile.bind(e.fs),writeFile:e.fs.writeFile.bind(e.fs),appendFile:async(d,h)=>{try{let g=await e.fs.readFile(d);await e.fs.writeFile(d,g+h)}catch{await e.fs.writeFile(d,h)}},resolvePath:e.fs.resolvePath.bind(e.fs)},f=Un({fieldSep:r,maxIterations:e.limits?.maxAwkIterations,fs:u,cwd:e.cwd});f.FS=n,f.vars={...s},f.ARGC=a.length+1,f.ARGV={0:"awk"};for(let d=0;d<a.length;d++)f.ARGV[String(d+1)]=a[d];let p=new Qt(f);p.execute(l);try{if(await p.executeBegin(),f.shouldExit)return{stdout:p.getOutput(),stderr:"",exitCode:p.getExitCode()};let d=[];if(a.length>0)for(let h of a)try{let g=e.fs.resolvePath(e.cwd,h),w=(await e.fs.readFile(g)).split(`
246
246
  `);w.length>0&&w[w.length-1]===""&&w.pop(),d.push({filename:h,lines:w})}catch{return{stdout:"",stderr:`awk: ${h}: No such file or directory
247
247
  `,exitCode:1}}else{let h=e.stdin.split(`
248
248
  `);h.length>0&&h[h.length-1]===""&&h.pop(),d.push({filename:"",lines:h})}for(let h of d){for(f.FILENAME=h.filename,f.FNR=0,f.lines=h.lines,f.lineIndex=-1,f.shouldNextFile=!1;f.lineIndex<h.lines.length-1&&(f.lineIndex++,await p.executeLine(h.lines[f.lineIndex]),!(f.shouldExit||f.shouldNextFile)););if(f.shouldExit)break}return f.shouldExit||await p.executeEnd(),{stdout:p.getOutput(),stderr:"",exitCode:p.getExitCode()}}catch(d){let h=d instanceof Error?d.message:String(d),g=d instanceof W?W.EXIT_CODE:2;return{stdout:p.getOutput(),stderr:`awk: ${h}
249
- `,exitCode:g}}}}});function Vo(t){let e=t.trim(),r=e.match(/^([+-]?\d*\.?\d+)\s*([kmgtpeKMGTPE])?[iI]?[bB]?$/);if(!r){let o=parseFloat(e);return Number.isNaN(o)?0:o}let n=parseFloat(r[1]),s=(r[2]||"").toLowerCase(),i=bd[s]||1;return n*i}function Ko(t){let e=t.trim().toLowerCase().slice(0,3);return Sd[e]||0}function Ad(t,e){let r=t.split(/(\d+)/),n=e.split(/(\d+)/),s=Math.max(r.length,n.length);for(let i=0;i<s;i++){let o=r[i]||"",a=n[i]||"",c=/^\d+$/.test(o)?parseInt(o,10):null,l=/^\d+$/.test(a)?parseInt(a,10):null;if(c!==null&&l!==null){if(c!==l)return c-l}else if(o!==a)return o.localeCompare(a)}return 0}function Zo(t){return t.replace(/[^a-zA-Z0-9\s]/g,"")}function Vn(t,e,r){let n=r!==null?r:/\s+/,s=t.split(n),i=e.startField-1;if(i>=s.length)return"";if(e.endField===void 0){let c=s[i]||"";return e.startChar!==void 0&&(c=c.slice(e.startChar-1)),e.ignoreLeading&&(c=c.trimStart()),c}let o=Math.min(e.endField-1,s.length-1),a="";for(let c=i;c<=o&&c<s.length;c++){let l=s[c]||"";if(c===i&&e.startChar!==void 0&&(l=l.slice(e.startChar-1)),c===o&&e.endChar!==void 0){let u=c===i&&e.startChar!==void 0?e.endChar-e.startChar+1:e.endChar;l=l.slice(0,u)}c>i&&(a+=r||" "),a+=l}return e.ignoreLeading&&(a=a.trimStart()),a}function Qo(t,e,r){let n=t,s=e;if(r.dictionaryOrder&&(n=Zo(n),s=Zo(s)),r.ignoreCase&&(n=n.toLowerCase(),s=s.toLowerCase()),r.monthSort){let i=Ko(n),o=Ko(s);return i-o}if(r.humanNumeric){let i=Vo(n),o=Vo(s);return i-o}if(r.versionSort)return Ad(n,s);if(r.numeric){let i=parseFloat(n)||0,o=parseFloat(s)||0;return i-o}return n.localeCompare(s)}function Xo(t){let{keys:e,fieldDelimiter:r,numeric:n,ignoreCase:s,reverse:i,humanNumeric:o,versionSort:a,dictionaryOrder:c,monthSort:l,ignoreLeadingBlanks:u,stable:f}=t;return(p,d)=>{let h=p,g=d;if(u&&(h=h.trimStart(),g=g.trimStart()),e.length===0){let w=Qo(h,g,{numeric:n,ignoreCase:s,humanNumeric:o,versionSort:a,dictionaryOrder:c,monthSort:l});if(w!==0)return i?-w:w;if(!f){let E=p.localeCompare(d);return i?-E:E}return 0}for(let y of e){let w=Vn(h,y,r),E=Vn(g,y,r);y.ignoreLeading&&(w=w.trimStart(),E=E.trimStart());let b={numeric:y.numeric??n,ignoreCase:y.ignoreCase??s,humanNumeric:y.humanNumeric??o,versionSort:y.versionSort??a,dictionaryOrder:y.dictionaryOrder??c,monthSort:y.monthSort??l},S=y.reverse??i,C=Qo(w,E,b);if(C!==0)return S?-C:C}if(!f){let y=p.localeCompare(d);return i?-y:y}return 0}}function Jo(t,e){if(e.keys.length===0){if(e.ignoreCase){let s=new Set;return t.filter(i=>{let o=i.toLowerCase();return s.has(o)?!1:(s.add(o),!0)})}return[...new Set(t)]}let r=e.keys[0],n=new Set;return t.filter(s=>{let i=Vn(s,r,e.fieldDelimiter);return(r.ignoreCase??e.ignoreCase)&&(i=i.toLowerCase()),n.has(i)?!1:(n.add(i),!0)})}var bd,Sd,Yo=A(()=>{"use strict";bd={"":1,k:1024,m:1048576,g:1073741824,t:1099511627776,p:0x4000000000000,e:1152921504606847e3},Sd={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}});function Or(t){let e={startField:1},r="",n=t,s=n.match(/([bdfhMnrV]+)$/);s&&(r=s[1],n=n.slice(0,-r.length)),r.includes("n")&&(e.numeric=!0),r.includes("r")&&(e.reverse=!0),r.includes("f")&&(e.ignoreCase=!0),r.includes("b")&&(e.ignoreLeading=!0),r.includes("h")&&(e.humanNumeric=!0),r.includes("V")&&(e.versionSort=!0),r.includes("d")&&(e.dictionaryOrder=!0),r.includes("M")&&(e.monthSort=!0);let i=n.split(",");if(i.length===0||i[0]==="")return null;let o=i[0].split("."),a=parseInt(o[0],10);if(Number.isNaN(a)||a<1)return null;if(e.startField=a,o.length>1&&o[1]){let c=parseInt(o[1],10);!Number.isNaN(c)&&c>=1&&(e.startChar=c)}if(i.length>1&&i[1]){let c=i[1],l=c.match(/([bdfhMnrV]+)$/);if(l){let f=l[1];f.includes("n")&&(e.numeric=!0),f.includes("r")&&(e.reverse=!0),f.includes("f")&&(e.ignoreCase=!0),f.includes("b")&&(e.ignoreLeading=!0),f.includes("h")&&(e.humanNumeric=!0),f.includes("V")&&(e.versionSort=!0),f.includes("d")&&(e.dictionaryOrder=!0),f.includes("M")&&(e.monthSort=!0),c=c.slice(0,-f.length)}let u=c.split(".");if(u[0]){let f=parseInt(u[0],10);if(!Number.isNaN(f)&&f>=1&&(e.endField=f),u.length>1&&u[1]){let p=parseInt(u[1],10);!Number.isNaN(p)&&p>=1&&(e.endChar=p)}}}return e}var ea=A(()=>{"use strict"});var ta={};$(ta,{sortCommand:()=>kd});var Cd,kd,ra=A(()=>{"use strict";Ct();_();Yo();ea();Cd={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-b, --ignore-leading-blanks ignore leading blanks","-d, --dictionary-order consider only blanks and alphanumeric characters","-f, --ignore-case fold lower case to upper case characters","-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)","-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-V, --version-sort natural sort of (version) numbers within text","-c, --check check for sorted input; do not sort","-o, --output=FILE write result to FILE instead of stdout","-s, --stable stabilize sort by disabling last-resort comparison","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
249
+ `,exitCode:g}}}}});function Yo(t){let e=t.trim(),r=e.match(/^([+-]?\d*\.?\d+)\s*([kmgtpeKMGTPE])?[iI]?[bB]?$/);if(!r){let o=parseFloat(e);return Number.isNaN(o)?0:o}let n=parseFloat(r[1]),s=(r[2]||"").toLowerCase(),i=Pd[s]||1;return n*i}function ea(t){let e=t.trim().toLowerCase().slice(0,3);return Td[e]||0}function Fd(t,e){let r=t.split(/(\d+)/),n=e.split(/(\d+)/),s=Math.max(r.length,n.length);for(let i=0;i<s;i++){let o=r[i]||"",a=n[i]||"",c=/^\d+$/.test(o)?parseInt(o,10):null,l=/^\d+$/.test(a)?parseInt(a,10):null;if(c!==null&&l!==null){if(c!==l)return c-l}else if(o!==a)return o.localeCompare(a)}return 0}function ta(t){return t.replace(/[^a-zA-Z0-9\s]/g,"")}function Qn(t,e,r){let n=r!==null?r:/\s+/,s=t.split(n),i=e.startField-1;if(i>=s.length)return"";if(e.endField===void 0){let c=s[i]||"";return e.startChar!==void 0&&(c=c.slice(e.startChar-1)),e.ignoreLeading&&(c=c.trimStart()),c}let o=Math.min(e.endField-1,s.length-1),a="";for(let c=i;c<=o&&c<s.length;c++){let l=s[c]||"";if(c===i&&e.startChar!==void 0&&(l=l.slice(e.startChar-1)),c===o&&e.endChar!==void 0){let u=c===i&&e.startChar!==void 0?e.endChar-e.startChar+1:e.endChar;l=l.slice(0,u)}c>i&&(a+=r||" "),a+=l}return e.ignoreLeading&&(a=a.trimStart()),a}function ra(t,e,r){let n=t,s=e;if(r.dictionaryOrder&&(n=ta(n),s=ta(s)),r.ignoreCase&&(n=n.toLowerCase(),s=s.toLowerCase()),r.monthSort){let i=ea(n),o=ea(s);return i-o}if(r.humanNumeric){let i=Yo(n),o=Yo(s);return i-o}if(r.versionSort)return Fd(n,s);if(r.numeric){let i=parseFloat(n)||0,o=parseFloat(s)||0;return i-o}return n.localeCompare(s)}function na(t){let{keys:e,fieldDelimiter:r,numeric:n,ignoreCase:s,reverse:i,humanNumeric:o,versionSort:a,dictionaryOrder:c,monthSort:l,ignoreLeadingBlanks:u,stable:f}=t;return(p,d)=>{let h=p,g=d;if(u&&(h=h.trimStart(),g=g.trimStart()),e.length===0){let w=ra(h,g,{numeric:n,ignoreCase:s,humanNumeric:o,versionSort:a,dictionaryOrder:c,monthSort:l});if(w!==0)return i?-w:w;if(!f){let E=p.localeCompare(d);return i?-E:E}return 0}for(let m of e){let w=Qn(h,m,r),E=Qn(g,m,r);m.ignoreLeading&&(w=w.trimStart(),E=E.trimStart());let b={numeric:m.numeric??n,ignoreCase:m.ignoreCase??s,humanNumeric:m.humanNumeric??o,versionSort:m.versionSort??a,dictionaryOrder:m.dictionaryOrder??c,monthSort:m.monthSort??l},S=m.reverse??i,C=ra(w,E,b);if(C!==0)return S?-C:C}if(!f){let m=p.localeCompare(d);return i?-m:m}return 0}}function sa(t,e){if(e.keys.length===0){if(e.ignoreCase){let s=new Set;return t.filter(i=>{let o=i.toLowerCase();return s.has(o)?!1:(s.add(o),!0)})}return[...new Set(t)]}let r=e.keys[0],n=new Set;return t.filter(s=>{let i=Qn(s,r,e.fieldDelimiter);return(r.ignoreCase??e.ignoreCase)&&(i=i.toLowerCase()),n.has(i)?!1:(n.add(i),!0)})}var Pd,Td,ia=A(()=>{"use strict";Pd={"":1,k:1024,m:1048576,g:1073741824,t:1099511627776,p:0x4000000000000,e:1152921504606847e3},Td={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}});function Or(t){let e={startField:1},r="",n=t,s=n.match(/([bdfhMnrV]+)$/);s&&(r=s[1],n=n.slice(0,-r.length)),r.includes("n")&&(e.numeric=!0),r.includes("r")&&(e.reverse=!0),r.includes("f")&&(e.ignoreCase=!0),r.includes("b")&&(e.ignoreLeading=!0),r.includes("h")&&(e.humanNumeric=!0),r.includes("V")&&(e.versionSort=!0),r.includes("d")&&(e.dictionaryOrder=!0),r.includes("M")&&(e.monthSort=!0);let i=n.split(",");if(i.length===0||i[0]==="")return null;let o=i[0].split("."),a=parseInt(o[0],10);if(Number.isNaN(a)||a<1)return null;if(e.startField=a,o.length>1&&o[1]){let c=parseInt(o[1],10);!Number.isNaN(c)&&c>=1&&(e.startChar=c)}if(i.length>1&&i[1]){let c=i[1],l=c.match(/([bdfhMnrV]+)$/);if(l){let f=l[1];f.includes("n")&&(e.numeric=!0),f.includes("r")&&(e.reverse=!0),f.includes("f")&&(e.ignoreCase=!0),f.includes("b")&&(e.ignoreLeading=!0),f.includes("h")&&(e.humanNumeric=!0),f.includes("V")&&(e.versionSort=!0),f.includes("d")&&(e.dictionaryOrder=!0),f.includes("M")&&(e.monthSort=!0),c=c.slice(0,-f.length)}let u=c.split(".");if(u[0]){let f=parseInt(u[0],10);if(!Number.isNaN(f)&&f>=1&&(e.endField=f),u.length>1&&u[1]){let p=parseInt(u[1],10);!Number.isNaN(p)&&p>=1&&(e.endChar=p)}}}return e}var oa=A(()=>{"use strict"});var aa={};$(aa,{sortCommand:()=>Ld});var Dd,Ld,ca=A(()=>{"use strict";Ct();_();ia();oa();Dd={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-b, --ignore-leading-blanks ignore leading blanks","-d, --dictionary-order consider only blanks and alphanumeric characters","-f, --ignore-case fold lower case to upper case characters","-h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)","-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-V, --version-sort natural sort of (version) numbers within text","-c, --check check for sorted input; do not sort","-o, --output=FILE write result to FILE instead of stdout","-s, --stable stabilize sort by disabling last-resort comparison","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
250
250
  F is a field number (1-indexed)
251
251
  C is a character position within the field (1-indexed)
252
252
  OPTS can be: b d f h M n r V (per-key modifiers)
@@ -256,16 +256,16 @@ Examples:
256
256
  -k2,2 sort by second field only
257
257
  -k1.3 sort by first field starting at 3rd character
258
258
  -k1,2n sort by fields 1-2 numerically
259
- -k2 -k1 sort by field 2, then by field 1`},kd={name:"sort",async execute(t,e){if(I(t))return N(Cd);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,humanNumeric:!1,versionSort:!1,dictionaryOrder:!1,monthSort:!1,ignoreLeadingBlanks:!1,stable:!1,checkOnly:!1,outputFile:null,keys:[],fieldDelimiter:null},n=[];for(let l=0;l<t.length;l++){let u=t[l];if(u==="-r"||u==="--reverse")r.reverse=!0;else if(u==="-n"||u==="--numeric-sort")r.numeric=!0;else if(u==="-u"||u==="--unique")r.unique=!0;else if(u==="-f"||u==="--ignore-case")r.ignoreCase=!0;else if(u==="-h"||u==="--human-numeric-sort")r.humanNumeric=!0;else if(u==="-V"||u==="--version-sort")r.versionSort=!0;else if(u==="-d"||u==="--dictionary-order")r.dictionaryOrder=!0;else if(u==="-M"||u==="--month-sort")r.monthSort=!0;else if(u==="-b"||u==="--ignore-leading-blanks")r.ignoreLeadingBlanks=!0;else if(u==="-s"||u==="--stable")r.stable=!0;else if(u==="-c"||u==="--check")r.checkOnly=!0;else if(u==="-o"||u==="--output")r.outputFile=t[++l]||null;else if(u.startsWith("-o"))r.outputFile=u.slice(2)||null;else if(u.startsWith("--output="))r.outputFile=u.slice(9)||null;else if(u==="-t"||u==="--field-separator")r.fieldDelimiter=t[++l]||null;else if(u.startsWith("-t"))r.fieldDelimiter=u.slice(2)||null;else if(u.startsWith("--field-separator="))r.fieldDelimiter=u.slice(18)||null;else if(u==="-k"||u==="--key"){let f=t[++l];if(f){let p=Or(f);p&&r.keys.push(p)}}else if(u.startsWith("-k")){let f=Or(u.slice(2));f&&r.keys.push(f)}else if(u.startsWith("--key=")){let f=Or(u.slice(6));f&&r.keys.push(f)}else{if(u.startsWith("--"))return L("sort",u);if(u.startsWith("-")&&!u.startsWith("--")){let f=!1;for(let p of u.slice(1))if(p==="r")r.reverse=!0;else if(p==="n")r.numeric=!0;else if(p==="u")r.unique=!0;else if(p==="f")r.ignoreCase=!0;else if(p==="h")r.humanNumeric=!0;else if(p==="V")r.versionSort=!0;else if(p==="d")r.dictionaryOrder=!0;else if(p==="M")r.monthSort=!0;else if(p==="b")r.ignoreLeadingBlanks=!0;else if(p==="s")r.stable=!0;else if(p==="c")r.checkOnly=!0;else{f=!0;break}if(f)return L("sort",u)}else n.push(u)}}let s=await At(e,n,{cmdName:"sort"});if(!s.ok)return s.error;let o=s.content.split(`
260
- `);o.length>0&&o[o.length-1]===""&&o.pop();let a=Xo(r);if(r.checkOnly){let l=n.length>0?n[0]:"-";for(let u=1;u<o.length;u++)if(a(o[u-1],o[u])>0)return{stdout:"",stderr:`sort: ${l}:${u+1}: disorder: ${o[u]}
261
- `,exitCode:1};return{stdout:"",stderr:"",exitCode:0}}o.sort(a),r.unique&&(o=Jo(o,r));let c=o.length>0?`${o.join(`
259
+ -k2 -k1 sort by field 2, then by field 1`},Ld={name:"sort",async execute(t,e){if(I(t))return N(Dd);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,humanNumeric:!1,versionSort:!1,dictionaryOrder:!1,monthSort:!1,ignoreLeadingBlanks:!1,stable:!1,checkOnly:!1,outputFile:null,keys:[],fieldDelimiter:null},n=[];for(let l=0;l<t.length;l++){let u=t[l];if(u==="-r"||u==="--reverse")r.reverse=!0;else if(u==="-n"||u==="--numeric-sort")r.numeric=!0;else if(u==="-u"||u==="--unique")r.unique=!0;else if(u==="-f"||u==="--ignore-case")r.ignoreCase=!0;else if(u==="-h"||u==="--human-numeric-sort")r.humanNumeric=!0;else if(u==="-V"||u==="--version-sort")r.versionSort=!0;else if(u==="-d"||u==="--dictionary-order")r.dictionaryOrder=!0;else if(u==="-M"||u==="--month-sort")r.monthSort=!0;else if(u==="-b"||u==="--ignore-leading-blanks")r.ignoreLeadingBlanks=!0;else if(u==="-s"||u==="--stable")r.stable=!0;else if(u==="-c"||u==="--check")r.checkOnly=!0;else if(u==="-o"||u==="--output")r.outputFile=t[++l]||null;else if(u.startsWith("-o"))r.outputFile=u.slice(2)||null;else if(u.startsWith("--output="))r.outputFile=u.slice(9)||null;else if(u==="-t"||u==="--field-separator")r.fieldDelimiter=t[++l]||null;else if(u.startsWith("-t"))r.fieldDelimiter=u.slice(2)||null;else if(u.startsWith("--field-separator="))r.fieldDelimiter=u.slice(18)||null;else if(u==="-k"||u==="--key"){let f=t[++l];if(f){let p=Or(f);p&&r.keys.push(p)}}else if(u.startsWith("-k")){let f=Or(u.slice(2));f&&r.keys.push(f)}else if(u.startsWith("--key=")){let f=Or(u.slice(6));f&&r.keys.push(f)}else{if(u.startsWith("--"))return L("sort",u);if(u.startsWith("-")&&!u.startsWith("--")){let f=!1;for(let p of u.slice(1))if(p==="r")r.reverse=!0;else if(p==="n")r.numeric=!0;else if(p==="u")r.unique=!0;else if(p==="f")r.ignoreCase=!0;else if(p==="h")r.humanNumeric=!0;else if(p==="V")r.versionSort=!0;else if(p==="d")r.dictionaryOrder=!0;else if(p==="M")r.monthSort=!0;else if(p==="b")r.ignoreLeadingBlanks=!0;else if(p==="s")r.stable=!0;else if(p==="c")r.checkOnly=!0;else{f=!0;break}if(f)return L("sort",u)}else n.push(u)}}let s=await At(e,n,{cmdName:"sort"});if(!s.ok)return s.error;let o=s.content.split(`
260
+ `);o.length>0&&o[o.length-1]===""&&o.pop();let a=na(r);if(r.checkOnly){let l=n.length>0?n[0]:"-";for(let u=1;u<o.length;u++)if(a(o[u-1],o[u])>0)return{stdout:"",stderr:`sort: ${l}:${u+1}: disorder: ${o[u]}
261
+ `,exitCode:1};return{stdout:"",stderr:"",exitCode:0}}o.sort(a),r.unique&&(o=sa(o,r));let c=o.length>0?`${o.join(`
262
262
  `)}
263
- `:"";if(r.outputFile){let l=e.fs.resolvePath(e.cwd,r.outputFile);return await e.fs.writeFile(l,c),{stdout:"",stderr:"",exitCode:0}}return{stdout:c,stderr:"",exitCode:0}}}});var na={};$(na,{uniqCommand:()=>vd});var Nd,Id,vd,sa=A(()=>{"use strict";fe();Ct();_();Nd={name:"uniq",summary:"report or omit repeated lines",usage:"uniq [OPTION]... [INPUT [OUTPUT]]",options:["-c, --count prefix lines by the number of occurrences","-d, --repeated only print duplicate lines","-i, --ignore-case ignore case when comparing","-u, --unique only print unique lines"," --help display this help and exit"]},Id={count:{short:"c",long:"count",type:"boolean"},duplicatesOnly:{short:"d",long:"repeated",type:"boolean"},uniqueOnly:{short:"u",long:"unique",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},vd={name:"uniq",async execute(t,e){if(I(t))return N(Nd);let r=G("uniq",t,Id);if(!r.ok)return r.error;let{count:n,duplicatesOnly:s,uniqueOnly:i,ignoreCase:o}=r.result.flags,a=r.result.positional,c=await At(e,a,{cmdName:"uniq"});if(!c.ok)return c.error;let u=c.content.split(`
264
- `);if(u.length>0&&u[u.length-1]===""&&u.pop(),u.length===0)return{stdout:"",stderr:"",exitCode:0};let f=[],p=u[0],d=1,h=(w,E)=>o?w.toLowerCase()===E.toLowerCase():w===E;for(let w=1;w<u.length;w++)h(u[w],p)?d++:(f.push({line:p,count:d}),p=u[w],d=1);f.push({line:p,count:d});let g=f;s?g=f.filter(w=>w.count>1):i&&(g=f.filter(w=>w.count===1));let y="";for(let{line:w,count:E}of g)n?y+=`${String(E).padStart(4)} ${w}
265
- `:y+=`${w}
266
- `;return{stdout:y,stderr:"",exitCode:0}}}});var ia={};$(ia,{commCommand:()=>$d});var Rd,$d,oa=A(()=>{"use strict";_();Rd={name:"comm",summary:"compare two sorted files line by line",usage:"comm [OPTION]... FILE1 FILE2",options:["-1 suppress column 1 (lines unique to FILE1)","-2 suppress column 2 (lines unique to FILE2)","-3 suppress column 3 (lines that appear in both files)"," --help display this help and exit"]},$d={name:"comm",async execute(t,e){if(I(t))return N(Rd);let r=!1,n=!1,s=!1,i=[];for(let y of t)if(y==="-1")r=!0;else if(y==="-2")n=!0;else if(y==="-3")s=!0;else if(y==="-12"||y==="-21")r=!0,n=!0;else if(y==="-13"||y==="-31")r=!0,s=!0;else if(y==="-23"||y==="-32")n=!0,s=!0;else if(y==="-123"||y==="-132"||y==="-213"||y==="-231"||y==="-312"||y==="-321")r=!0,n=!0,s=!0;else{if(y.startsWith("-")&&y!=="-")return L("comm",y);i.push(y)}if(i.length!==2)return{stdout:"",stderr:`comm: missing operand
263
+ `:"";if(r.outputFile){let l=e.fs.resolvePath(e.cwd,r.outputFile);return await e.fs.writeFile(l,c),{stdout:"",stderr:"",exitCode:0}}return{stdout:c,stderr:"",exitCode:0}}}});var la={};$(la,{uniqCommand:()=>Bd});var Md,_d,Bd,ua=A(()=>{"use strict";le();Ct();_();Md={name:"uniq",summary:"report or omit repeated lines",usage:"uniq [OPTION]... [INPUT [OUTPUT]]",options:["-c, --count prefix lines by the number of occurrences","-d, --repeated only print duplicate lines","-i, --ignore-case ignore case when comparing","-u, --unique only print unique lines"," --help display this help and exit"]},_d={count:{short:"c",long:"count",type:"boolean"},duplicatesOnly:{short:"d",long:"repeated",type:"boolean"},uniqueOnly:{short:"u",long:"unique",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},Bd={name:"uniq",async execute(t,e){if(I(t))return N(Md);let r=j("uniq",t,_d);if(!r.ok)return r.error;let{count:n,duplicatesOnly:s,uniqueOnly:i,ignoreCase:o}=r.result.flags,a=r.result.positional,c=await At(e,a,{cmdName:"uniq"});if(!c.ok)return c.error;let u=c.content.split(`
264
+ `);if(u.length>0&&u[u.length-1]===""&&u.pop(),u.length===0)return{stdout:"",stderr:"",exitCode:0};let f=[],p=u[0],d=1,h=(w,E)=>o?w.toLowerCase()===E.toLowerCase():w===E;for(let w=1;w<u.length;w++)h(u[w],p)?d++:(f.push({line:p,count:d}),p=u[w],d=1);f.push({line:p,count:d});let g=f;s?g=f.filter(w=>w.count>1):i&&(g=f.filter(w=>w.count===1));let m="";for(let{line:w,count:E}of g)n?m+=`${String(E).padStart(4)} ${w}
265
+ `:m+=`${w}
266
+ `;return{stdout:m,stderr:"",exitCode:0}}}});var fa={};$(fa,{commCommand:()=>Ud});var Wd,Ud,pa=A(()=>{"use strict";_();Wd={name:"comm",summary:"compare two sorted files line by line",usage:"comm [OPTION]... FILE1 FILE2",options:["-1 suppress column 1 (lines unique to FILE1)","-2 suppress column 2 (lines unique to FILE2)","-3 suppress column 3 (lines that appear in both files)"," --help display this help and exit"]},Ud={name:"comm",async execute(t,e){if(I(t))return N(Wd);let r=!1,n=!1,s=!1,i=[];for(let m of t)if(m==="-1")r=!0;else if(m==="-2")n=!0;else if(m==="-3")s=!0;else if(m==="-12"||m==="-21")r=!0,n=!0;else if(m==="-13"||m==="-31")r=!0,s=!0;else if(m==="-23"||m==="-32")n=!0,s=!0;else if(m==="-123"||m==="-132"||m==="-213"||m==="-231"||m==="-312"||m==="-321")r=!0,n=!0,s=!0;else{if(m.startsWith("-")&&m!=="-")return L("comm",m);i.push(m)}if(i.length!==2)return{stdout:"",stderr:`comm: missing operand
267
267
  Try 'comm --help' for more information.
268
- `,exitCode:1};let o=async y=>{if(y==="-")return e.stdin;try{let w=e.fs.resolvePath(e.cwd,y);return await e.fs.readFile(w)}catch{return null}},a=await o(i[0]);if(a===null)return{stdout:"",stderr:`comm: ${i[0]}: No such file or directory
268
+ `,exitCode:1};let o=async m=>{if(m==="-")return e.stdin;try{let w=e.fs.resolvePath(e.cwd,m);return await e.fs.readFile(w)}catch{return null}},a=await o(i[0]);if(a===null)return{stdout:"",stderr:`comm: ${i[0]}: No such file or directory
269
269
  `,exitCode:1};let c=await o(i[1]);if(c===null)return{stdout:"",stderr:`comm: ${i[1]}: No such file or directory
270
270
  `,exitCode:1};let l=a.split(`
271
271
  `),u=c.split(`
@@ -274,18 +274,18 @@ Try 'comm --help' for more information.
274
274
  `),f++):l[f]<u[p]?(r||(d+=`${l[f]}
275
275
  `),f++):l[f]>u[p]?(n||(d+=`${h}${u[p]}
276
276
  `),p++):(s||(d+=`${g}${l[f]}
277
- `),f++,p++);return{stdout:d,stderr:"",exitCode:0}}}});var aa={};$(aa,{cutCommand:()=>Fd});function Pd(t){let e=[],r=t.split(",");for(let n of r)if(n.includes("-")){let[s,i]=n.split("-");e.push({start:s?parseInt(s,10):1,end:i?parseInt(i,10):null})}else{let s=parseInt(n,10);e.push({start:s,end:s})}return e}function Td(t,e){let r=[];for(let n of e){let s=n.start-1,i=n.end===null?t.length:n.end;for(let o=s;o<i&&o<t.length;o++)o>=0&&!r.includes(t[o])&&r.push(t[o])}return r}var Od,Fd,ca=A(()=>{"use strict";Ct();_();Od={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST select only these characters","-d DELIM use DELIM instead of TAB for field delimiter","-f LIST select only these fields","-s, --only-delimited do not print lines without delimiters"," --help display this help and exit"]};Fd={name:"cut",async execute(t,e){if(I(t))return N(Od);let r=" ",n=null,s=null,i=!1,o=[];for(let p=0;p<t.length;p++){let d=t[p];if(d==="-d")r=t[++p]||" ";else if(d.startsWith("-d"))r=d.slice(2);else if(d==="-f")n=t[++p];else if(d.startsWith("-f"))n=d.slice(2);else if(d==="-c")s=t[++p];else if(d.startsWith("-c"))s=d.slice(2);else if(d==="-s"||d==="--only-delimited")i=!0;else{if(d.startsWith("--"))return L("cut",d);if(d.startsWith("-")){let h=!1;for(let g of d.slice(1))if(g==="s")i=!0;else if(!"dfc".includes(g)){h=!0;break}if(h)return L("cut",d)}else o.push(d)}}if(!n&&!s)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
277
+ `),f++,p++);return{stdout:d,stderr:"",exitCode:0}}}});var da={};$(da,{cutCommand:()=>Gd});function Hd(t){let e=[],r=t.split(",");for(let n of r)if(n.includes("-")){let[s,i]=n.split("-");e.push({start:s?parseInt(s,10):1,end:i?parseInt(i,10):null})}else{let s=parseInt(n,10);e.push({start:s,end:s})}return e}function jd(t,e){let r=[];for(let n of e){let s=n.start-1,i=n.end===null?t.length:n.end;for(let o=s;o<i&&o<t.length;o++)o>=0&&!r.includes(t[o])&&r.push(t[o])}return r}var zd,Gd,ha=A(()=>{"use strict";Ct();_();zd={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST select only these characters","-d DELIM use DELIM instead of TAB for field delimiter","-f LIST select only these fields","-s, --only-delimited do not print lines without delimiters"," --help display this help and exit"]};Gd={name:"cut",async execute(t,e){if(I(t))return N(zd);let r=" ",n=null,s=null,i=!1,o=[];for(let p=0;p<t.length;p++){let d=t[p];if(d==="-d")r=t[++p]||" ";else if(d.startsWith("-d"))r=d.slice(2);else if(d==="-f")n=t[++p];else if(d.startsWith("-f"))n=d.slice(2);else if(d==="-c")s=t[++p];else if(d.startsWith("-c"))s=d.slice(2);else if(d==="-s"||d==="--only-delimited")i=!0;else{if(d.startsWith("--"))return L("cut",d);if(d.startsWith("-")){let h=!1;for(let g of d.slice(1))if(g==="s")i=!0;else if(!"dfc".includes(g)){h=!0;break}if(h)return L("cut",d)}else o.push(d)}}if(!n&&!s)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
278
278
  `,exitCode:1};let a=await At(e,o,{cmdName:"cut"});if(!a.ok)return a.error;let l=a.content.split(`
279
- `);l.length>0&&l[l.length-1]===""&&l.pop();let u=Pd(n||s||"1"),f="";for(let p of l)if(s){let d=p.split(""),h=[];for(let g of u){let y=g.start-1,w=g.end===null?d.length:g.end;for(let E=y;E<w&&E<d.length;E++)E>=0&&h.push(d[E])}f+=`${h.join("")}
280
- `}else{if(i&&!p.includes(r))continue;let d=p.split(r),h=Td(d,u);f+=`${h.join(r)}
281
- `}return{stdout:f,stderr:"",exitCode:0}}}});var ua={};$(ua,{pasteCommand:()=>Md});function la(t,e){if(t.length===0)return"";if(t.length===1)return t[0];let r=t[0];for(let n=1;n<t.length;n++){let s=(n-1)%e.length;r+=e[s]+t[n]}return r}var Dd,Ld,Md,fa=A(()=>{"use strict";fe();_();Dd={name:"paste",summary:"merge lines of files",usage:"paste [OPTION]... [FILE]...",description:["Write lines consisting of the sequentially corresponding lines from","each FILE, separated by TABs, to standard output.","","With no FILE, or when FILE is -, read standard input."],options:["-d, --delimiters=LIST reuse characters from LIST instead of TABs","-s, --serial paste one file at a time instead of in parallel"," --help display this help and exit"],examples:["paste file1 file2 Merge file1 and file2 side by side","paste -d, file1 file2 Use comma as delimiter","paste -s file1 Paste all lines of file1 on one line","paste - - < file Paste pairs of lines from file"]},Ld={delimiter:{short:"d",long:"delimiters",type:"string",default:" "},serial:{short:"s",long:"serial",type:"boolean"}},Md={name:"paste",async execute(t,e){if(I(t))return N(Dd);let r=G("paste",t,Ld);if(!r.ok)return r.error;let n=r.result.flags.delimiter,s=r.result.flags.serial,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`usage: paste [-s] [-d delimiters] file ...
279
+ `);l.length>0&&l[l.length-1]===""&&l.pop();let u=Hd(n||s||"1"),f="";for(let p of l)if(s){let d=p.split(""),h=[];for(let g of u){let m=g.start-1,w=g.end===null?d.length:g.end;for(let E=m;E<w&&E<d.length;E++)E>=0&&h.push(d[E])}f+=`${h.join("")}
280
+ `}else{if(i&&!p.includes(r))continue;let d=p.split(r),h=jd(d,u);f+=`${h.join(r)}
281
+ `}return{stdout:f,stderr:"",exitCode:0}}}});var ya={};$(ya,{pasteCommand:()=>Kd});function ma(t,e){if(t.length===0)return"";if(t.length===1)return t[0];let r=t[0];for(let n=1;n<t.length;n++){let s=(n-1)%e.length;r+=e[s]+t[n]}return r}var qd,Vd,Kd,ga=A(()=>{"use strict";le();_();qd={name:"paste",summary:"merge lines of files",usage:"paste [OPTION]... [FILE]...",description:["Write lines consisting of the sequentially corresponding lines from","each FILE, separated by TABs, to standard output.","","With no FILE, or when FILE is -, read standard input."],options:["-d, --delimiters=LIST reuse characters from LIST instead of TABs","-s, --serial paste one file at a time instead of in parallel"," --help display this help and exit"],examples:["paste file1 file2 Merge file1 and file2 side by side","paste -d, file1 file2 Use comma as delimiter","paste -s file1 Paste all lines of file1 on one line","paste - - < file Paste pairs of lines from file"]},Vd={delimiter:{short:"d",long:"delimiters",type:"string",default:" "},serial:{short:"s",long:"serial",type:"boolean"}},Kd={name:"paste",async execute(t,e){if(I(t))return N(qd);let r=j("paste",t,Vd);if(!r.ok)return r.error;let n=r.result.flags.delimiter,s=r.result.flags.serial,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:`usage: paste [-s] [-d delimiters] file ...
282
282
  `,exitCode:1};let o=e.stdin?e.stdin.split(`
283
283
  `):[""];o.length>0&&o[o.length-1]===""&&o.pop();let a=i.filter(f=>f==="-").length,c=[],l=0;for(let f of i)if(f==="-"){let p=[];for(let d=l;d<o.length;d+=a)p.push(o[d]);c.push(p),l++}else{let p=e.fs.resolvePath(e.cwd,f);try{let h=(await e.fs.readFile(p)).split(`
284
284
  `);h.length>0&&h[h.length-1]===""&&h.pop(),c.push(h)}catch{return{stdout:"",stderr:`paste: ${f}: No such file or directory
285
- `,exitCode:1}}}let u="";if(s)for(let f of c)f&&(u+=`${la(f,n)}
286
- `);else{let f=Math.max(...c.map(p=>p?.length??0));for(let p=0;p<f;p++){let d=[];for(let h of c)d.push(h?.[p]??"");u+=`${la(d,n)}
287
- `}}return{stdout:u,stderr:"",exitCode:0}}}});var da={};$(da,{trCommand:()=>Ud});function pa(t){let e="",r=0;for(;r<t.length;){if(t[r]==="["&&t[r+1]===":"){let n=!1;for(let[s,i]of Object.entries(Bd))if(t.slice(r).startsWith(s)){e+=i,r+=s.length,n=!0;break}if(n)continue}if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];n==="n"?e+=`
288
- `:n==="t"?e+=" ":n==="r"?e+="\r":e+=n,r+=2;continue}if(r+2<t.length&&t[r+1]==="-"){let n=t.charCodeAt(r),s=t.charCodeAt(r+2);for(let i=n;i<=s;i++)e+=String.fromCharCode(i);r+=3;continue}e+=t[r],r++}return e}var _d,Bd,Wd,Ud,ha=A(()=>{"use strict";fe();_();_d={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
285
+ `,exitCode:1}}}let u="";if(s)for(let f of c)f&&(u+=`${ma(f,n)}
286
+ `);else{let f=Math.max(...c.map(p=>p?.length??0));for(let p=0;p<f;p++){let d=[];for(let h of c)d.push(h?.[p]??"");u+=`${ma(d,n)}
287
+ `}}return{stdout:u,stderr:"",exitCode:0}}}});var wa={};$(wa,{trCommand:()=>Jd});function xa(t){let e="",r=0;for(;r<t.length;){if(t[r]==="["&&t[r+1]===":"){let n=!1;for(let[s,i]of Object.entries(Qd))if(t.slice(r).startsWith(s)){e+=i,r+=s.length,n=!0;break}if(n)continue}if(t[r]==="\\"&&r+1<t.length){let n=t[r+1];n==="n"?e+=`
288
+ `:n==="t"?e+=" ":n==="r"?e+="\r":e+=n,r+=2;continue}if(r+2<t.length&&t[r+1]==="-"){let n=t.charCodeAt(r),s=t.charCodeAt(r+2);for(let i=n;i<=s;i++)e+=String.fromCharCode(i);r+=3;continue}e+=t[r],r++}return e}var Zd,Qd,Xd,Jd,Ea=A(()=>{"use strict";le();_();Zd={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
289
289
  a-z character range
290
290
  [:alnum:] all letters and digits
291
291
  [:alpha:] all letters
@@ -299,149 +299,149 @@ Try 'comm --help' for more information.
299
299
  [:graph:] all printable characters except space
300
300
  [:cntrl:] all control characters
301
301
  [:xdigit:] all hexadecimal digits
302
- \\n, \\t, \\r escape sequences`},Bd={"[:alnum:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","[:alpha:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","[:blank:]":" ","[:cntrl:]":Array.from({length:32},(t,e)=>String.fromCharCode(e)).join("").concat("\x7F"),"[:digit:]":"0123456789","[:graph:]":Array.from({length:94},(t,e)=>String.fromCharCode(33+e)).join(""),"[:lower:]":"abcdefghijklmnopqrstuvwxyz","[:print:]":Array.from({length:95},(t,e)=>String.fromCharCode(32+e)).join(""),"[:punct:]":"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~","[:space:]":`
303
- \r\f\v`,"[:upper:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","[:xdigit:]":"0123456789ABCDEFabcdef"};Wd={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},Ud={name:"tr",async execute(t,e){if(I(t))return N(_d);let r=G("tr",t,Wd);if(!r.ok)return r.error;let n=r.result.flags.complement||r.result.flags.complementUpper,s=r.result.flags.delete,i=r.result.flags.squeeze,o=r.result.positional;if(o.length<1)return{stdout:"",stderr:`tr: missing operand
302
+ \\n, \\t, \\r escape sequences`},Qd={"[:alnum:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","[:alpha:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","[:blank:]":" ","[:cntrl:]":Array.from({length:32},(t,e)=>String.fromCharCode(e)).join("").concat("\x7F"),"[:digit:]":"0123456789","[:graph:]":Array.from({length:94},(t,e)=>String.fromCharCode(33+e)).join(""),"[:lower:]":"abcdefghijklmnopqrstuvwxyz","[:print:]":Array.from({length:95},(t,e)=>String.fromCharCode(32+e)).join(""),"[:punct:]":"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~","[:space:]":`
303
+ \r\f\v`,"[:upper:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","[:xdigit:]":"0123456789ABCDEFabcdef"};Xd={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},Jd={name:"tr",async execute(t,e){if(I(t))return N(Zd);let r=j("tr",t,Xd);if(!r.ok)return r.error;let n=r.result.flags.complement||r.result.flags.complementUpper,s=r.result.flags.delete,i=r.result.flags.squeeze,o=r.result.positional;if(o.length<1)return{stdout:"",stderr:`tr: missing operand
304
304
  `,exitCode:1};if(!s&&!i&&o.length<2)return{stdout:"",stderr:`tr: missing operand after SET1
305
- `,exitCode:1};let a=pa(o[0]),c=o.length>1?pa(o[1]):"",l=e.stdin,u=p=>{let d=a.includes(p);return n?!d:d},f="";if(s)for(let p of l)u(p)||(f+=p);else if(i&&o.length===1){let p="";for(let d of l)u(d)&&d===p||(f+=d,p=d)}else{if(n){let p=c.length>0?c[c.length-1]:"";for(let d of l)a.includes(d)?f+=d:f+=p}else{let p=new Map;for(let d=0;d<a.length;d++){let h=d<c.length?c[d]:c[c.length-1];p.set(a[d],h)}for(let d of l)f+=p.get(d)??d}if(i){let p="",d="";for(let h of f)c.includes(h)&&h===d||(p+=h,d=h);f=p}}return{stdout:f,stderr:"",exitCode:0}}}});var ma={};$(ma,{teeCommand:()=>zd});var Hd,jd,zd,ya=A(()=>{"use strict";fe();_();Hd={name:"tee",summary:"read from stdin and write to stdout and files",usage:"tee [OPTION]... [FILE]...",options:["-a, --append append to the given FILEs, do not overwrite"," --help display this help and exit"]},jd={append:{short:"a",long:"append",type:"boolean"}},zd={name:"tee",async execute(t,e){if(I(t))return N(Hd);let r=G("tee",t,jd);if(!r.ok)return r.error;let{append:n}=r.result.flags,s=r.result.positional,i=e.stdin,o="",a=0;for(let c of s)try{let l=e.fs.resolvePath(e.cwd,c);n?await e.fs.appendFile(l,i):await e.fs.writeFile(l,i)}catch{o+=`tee: ${c}: No such file or directory
306
- `,a=1}return{stdout:i,stderr:o,exitCode:a}}}});function tt(t,e){switch(t.type){case"name":return{matches:$e(e.name,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:$e(e.relativePath,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"regex":try{let r=t.ignoreCase?"i":"";return{matches:new RegExp(t.pattern,r).test(e.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return t.fileType==="f"?{matches:e.isFile,pruned:!1,printed:!1}:t.fileType==="d"?{matches:e.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:e.isEmpty,pruned:!1,printed:!1};case"mtime":{let n=(Date.now()-e.mtime)/(1e3*60*60*24),s;return t.comparison==="more"?s=n>t.days:t.comparison==="less"?s=n<t.days:s=Math.floor(n)===t.days,{matches:s,pruned:!1,printed:!1}}case"newer":{let r=e.newerRefTimes.get(t.refPath);return r===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:e.mtime>r,pruned:!1,printed:!1}}case"size":{let r=t.value;switch(t.unit){case"c":r=t.value;break;case"k":r=t.value*1024;break;case"M":r=t.value*1024*1024;break;case"G":r=t.value*1024*1024*1024;break;case"b":r=t.value*512;break}let n;return t.comparison==="more"?n=e.size>r:t.comparison==="less"?n=e.size<r:t.unit==="b"?n=Math.ceil(e.size/512)===t.value:n=e.size===r,{matches:n,pruned:!1,printed:!1}}case"perm":{let r=e.mode&511,n=t.mode&511,s;return t.matchType==="exact"?s=r===n:t.matchType==="all"?s=(r&n)===n:s=(r&n)!==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 r=tt(t.expr,e);return{matches:!r.matches,pruned:r.pruned,printed:!1}}case"and":{let r=tt(t.left,e);if(!r.matches)return{matches:!1,pruned:r.pruned,printed:!1};let n=tt(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:r.printed||n.printed}}case"or":{let r=tt(t.left,e);if(r.matches)return r;let n=tt(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:n.printed}}}}function ga(t){let e=[],r=n=>{n&&(n.type==="newer"?e.push(n.refPath):n.type==="not"?r(n.expr):(n.type==="and"||n.type==="or")&&(r(n.left),r(n.right)))};return r(t),e}var xa=A(()=>{"use strict";Pn()});function wa(t,e){let r=[],n=[],s=e;for(;s<t.length;){let o=t[s];if(o==="("||o==="\\("){r.push({type:"lparen"}),s++;continue}if(o===")"||o==="\\)"){r.push({type:"rparen"}),s++;continue}if(o==="-name"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s]}});else if(o==="-iname"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s],ignoreCase:!0}});else if(o==="-path"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s]}});else if(o==="-ipath"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s],ignoreCase:!0}});else if(o==="-regex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s]}});else if(o==="-iregex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s],ignoreCase:!0}});else if(o==="-type"&&s+1<t.length){let a=t[++s];if(a==="f"||a==="d")r.push({type:"expr",expr:{type:"type",fileType:a}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${a}
305
+ `,exitCode:1};let a=xa(o[0]),c=o.length>1?xa(o[1]):"",l=e.stdin,u=p=>{let d=a.includes(p);return n?!d:d},f="";if(s)for(let p of l)u(p)||(f+=p);else if(i&&o.length===1){let p="";for(let d of l)u(d)&&d===p||(f+=d,p=d)}else{if(n){let p=c.length>0?c[c.length-1]:"";for(let d of l)a.includes(d)?f+=d:f+=p}else{let p=new Map;for(let d=0;d<a.length;d++){let h=d<c.length?c[d]:c[c.length-1];p.set(a[d],h)}for(let d of l)f+=p.get(d)??d}if(i){let p="",d="";for(let h of f)c.includes(h)&&h===d||(p+=h,d=h);f=p}}return{stdout:f,stderr:"",exitCode:0}}}});var ba={};$(ba,{teeCommand:()=>th});var Yd,eh,th,Sa=A(()=>{"use strict";le();_();Yd={name:"tee",summary:"read from stdin and write to stdout and files",usage:"tee [OPTION]... [FILE]...",options:["-a, --append append to the given FILEs, do not overwrite"," --help display this help and exit"]},eh={append:{short:"a",long:"append",type:"boolean"}},th={name:"tee",async execute(t,e){if(I(t))return N(Yd);let r=j("tee",t,eh);if(!r.ok)return r.error;let{append:n}=r.result.flags,s=r.result.positional,i=e.stdin,o="",a=0;for(let c of s)try{let l=e.fs.resolvePath(e.cwd,c);n?await e.fs.appendFile(l,i):await e.fs.writeFile(l,i)}catch{o+=`tee: ${c}: No such file or directory
306
+ `,a=1}return{stdout:i,stderr:o,exitCode:a}}}});function tt(t,e){switch(t.type){case"name":return{matches:$e(e.name,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"path":return{matches:$e(e.relativePath,t.pattern,t.ignoreCase),pruned:!1,printed:!1};case"regex":try{let r=t.ignoreCase?"i":"";return{matches:new RegExp(t.pattern,r).test(e.relativePath),pruned:!1,printed:!1}}catch{return{matches:!1,pruned:!1,printed:!1}}case"type":return t.fileType==="f"?{matches:e.isFile,pruned:!1,printed:!1}:t.fileType==="d"?{matches:e.isDirectory,pruned:!1,printed:!1}:{matches:!1,pruned:!1,printed:!1};case"empty":return{matches:e.isEmpty,pruned:!1,printed:!1};case"mtime":{let n=(Date.now()-e.mtime)/(1e3*60*60*24),s;return t.comparison==="more"?s=n>t.days:t.comparison==="less"?s=n<t.days:s=Math.floor(n)===t.days,{matches:s,pruned:!1,printed:!1}}case"newer":{let r=e.newerRefTimes.get(t.refPath);return r===void 0?{matches:!1,pruned:!1,printed:!1}:{matches:e.mtime>r,pruned:!1,printed:!1}}case"size":{let r=t.value;switch(t.unit){case"c":r=t.value;break;case"k":r=t.value*1024;break;case"M":r=t.value*1024*1024;break;case"G":r=t.value*1024*1024*1024;break;case"b":r=t.value*512;break}let n;return t.comparison==="more"?n=e.size>r:t.comparison==="less"?n=e.size<r:t.unit==="b"?n=Math.ceil(e.size/512)===t.value:n=e.size===r,{matches:n,pruned:!1,printed:!1}}case"perm":{let r=e.mode&511,n=t.mode&511,s;return t.matchType==="exact"?s=r===n:t.matchType==="all"?s=(r&n)===n:s=(r&n)!==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 r=tt(t.expr,e);return{matches:!r.matches,pruned:r.pruned,printed:!1}}case"and":{let r=tt(t.left,e);if(!r.matches)return{matches:!1,pruned:r.pruned,printed:!1};let n=tt(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:r.printed||n.printed}}case"or":{let r=tt(t.left,e);if(r.matches)return r;let n=tt(t.right,e);return{matches:n.matches,pruned:r.pruned||n.pruned,printed:n.printed}}}}function Aa(t){let e=[],r=n=>{n&&(n.type==="newer"?e.push(n.refPath):n.type==="not"?r(n.expr):(n.type==="and"||n.type==="or")&&(r(n.left),r(n.right)))};return r(t),e}var Ca=A(()=>{"use strict";Dn()});function ka(t,e){let r=[],n=[],s=e;for(;s<t.length;){let o=t[s];if(o==="("||o==="\\("){r.push({type:"lparen"}),s++;continue}if(o===")"||o==="\\)"){r.push({type:"rparen"}),s++;continue}if(o==="-name"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s]}});else if(o==="-iname"&&s+1<t.length)r.push({type:"expr",expr:{type:"name",pattern:t[++s],ignoreCase:!0}});else if(o==="-path"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s]}});else if(o==="-ipath"&&s+1<t.length)r.push({type:"expr",expr:{type:"path",pattern:t[++s],ignoreCase:!0}});else if(o==="-regex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s]}});else if(o==="-iregex"&&s+1<t.length)r.push({type:"expr",expr:{type:"regex",pattern:t[++s],ignoreCase:!0}});else if(o==="-type"&&s+1<t.length){let a=t[++s];if(a==="f"||a==="d")r.push({type:"expr",expr:{type:"type",fileType:a}});else return{expr:null,pathIndex:s,error:`find: Unknown argument to -type: ${a}
307
307
  `,actions:[]}}else if(o==="-empty")r.push({type:"expr",expr:{type:"empty"}});else if(o==="-mtime"&&s+1<t.length){let a=t[++s],c="exact",l=a;a.startsWith("+")?(c="more",l=a.slice(1)):a.startsWith("-")&&(c="less",l=a.slice(1));let u=parseInt(l,10);Number.isNaN(u)||r.push({type:"expr",expr:{type:"mtime",days:u,comparison:c}})}else if(o==="-newer"&&s+1<t.length){let a=t[++s];r.push({type:"expr",expr:{type:"newer",refPath:a}})}else if(o==="-size"&&s+1<t.length){let a=t[++s],c="exact",l=a;a.startsWith("+")?(c="more",l=a.slice(1)):a.startsWith("-")&&(c="less",l=a.slice(1));let u=l.match(/^(\d+)([ckMGb])?$/);if(u){let f=parseInt(u[1],10),p=u[2]||"b";r.push({type:"expr",expr:{type:"size",value:f,unit:p,comparison:c}})}}else if(o==="-perm"&&s+1<t.length){let a=t[++s],c="exact",l=a;a.startsWith("-")?(c="all",l=a.slice(1)):a.startsWith("/")&&(c="any",l=a.slice(1));let u=parseInt(l,8);Number.isNaN(u)||r.push({type:"expr",expr:{type:"perm",mode:u,matchType:c}})}else if(o==="-prune")r.push({type:"expr",expr:{type:"prune"}});else if(o==="-not"||o==="!")r.push({type:"not"});else if(o==="-o"||o==="-or")r.push({type:"op",op:"or"});else if(o==="-a"||o==="-and")r.push({type:"op",op:"and"});else if(o==="-maxdepth"||o==="-mindepth")s++;else if(o!=="-depth")if(o==="-exec"){let a=[];for(s++;s<t.length&&t[s]!==";"&&t[s]!=="+";)a.push(t[s]),s++;if(s>=t.length)return{expr:null,pathIndex:s,error:"find: missing argument to `-exec'\n",actions:[]};let c=t[s]==="+";n.push({type:"exec",command:a,batchMode:c})}else if(o==="-print")r.push({type:"expr",expr:{type:"print"}}),n.push({type:"print"});else if(o==="-print0")n.push({type:"print0"});else if(o==="-printf"&&s+1<t.length){let a=t[++s];n.push({type:"printf",format:a})}else if(o==="-delete")n.push({type:"delete"});else{if(o.startsWith("-"))return{expr:null,pathIndex:s,error:`find: unknown predicate '${o}'
308
- `,actions:[]};if(r.length===0){s++;continue}break}s++}if(r.length===0)return{expr:null,pathIndex:s,actions:n};let i=Gd(r);return i.error?{expr:null,pathIndex:s,error:i.error,actions:n}:{expr:i.expr,pathIndex:s,actions:n}}function Gd(t){let e=0;function r(){let a=n();if(!a)return null;for(;e<t.length;){let c=t[e];if(c.type==="op"&&c.op==="or"){e++;let l=n();if(!l)return a;a={type:"or",left:a,right:l}}else break}return a}function n(){let a=s();if(!a)return null;for(;e<t.length;){let c=t[e];if(c.type==="op"&&c.op==="and"){e++;let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else if(c.type==="expr"||c.type==="not"||c.type==="lparen"){let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else break}return a}function s(){if(e<t.length&&t[e].type==="not"){e++;let a=s();return a?{type:"not",expr:a}:null}return i()}function i(){if(e>=t.length)return null;let a=t[e];if(a.type==="lparen"){e++;let c=r();return e<t.length&&t[e].type==="rparen"&&e++,c}return a.type==="expr"?(e++,a.expr):(a.type==="rparen",null)}return{expr:r()}}var Ea=A(()=>{"use strict"});var ba={};$(ba,{findCommand:()=>Kd});function Zd(t,e){let r=xr(t),n="",s=0;for(;s<r.length;)if(r[s]==="%"&&s+1<r.length){if(s++,r[s]==="%"){n+="%",s++;continue}let[i,o,a]=Ii(r,s);if(s+=a,s>=r.length){n+="%";break}let c=r[s],l;switch(c){case"f":l=e.name,s++;break;case"h":{let u=e.path.lastIndexOf("/");l=u>0?e.path.slice(0,u):".",s++;break}case"p":l=e.path,s++;break;case"P":{let u=e.startingPoint;e.path===u?l="":e.path.startsWith(`${u}/`)?l=e.path.slice(u.length+1):u==="."&&e.path.startsWith("./")?l=e.path.slice(2):l=e.path,s++;break}case"s":l=String(e.size),s++;break;case"d":l=String(e.depth),s++;break;case"m":l=(e.mode&511).toString(8),s++;break;case"M":l=Qd(e.mode,e.isDirectory),s++;break;case"t":{let u=new Date(e.mtime);l=Xd(u),s++;break}case"T":{if(s+1<r.length){let u=r[s+1],f=new Date(e.mtime);l=Jd(f,u),s+=2}else l="%T",s++;break}default:n+=`%${i!==0||o!==-1?`${i}.${o}`:""}${c}`,s++;continue}n+=gr(l,i,o)}else n+=r[s],s++;return n}function Qd(t,e){let r=t&511,n=e?"d":"-";return n+=r&256?"r":"-",n+=r&128?"w":"-",n+=r&64?"x":"-",n+=r&32?"r":"-",n+=r&16?"w":"-",n+=r&8?"x":"-",n+=r&4?"r":"-",n+=r&2?"w":"-",n+=r&1?"x":"-",n}function Xd(t){let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=e[t.getDay()],s=r[t.getMonth()],i=String(t.getDate()).padStart(2," "),o=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0"),l=t.getFullYear();return`${n} ${s} ${i} ${o}:${a}:${c} ${l}`}function Jd(t,e){switch(e){case"@":return String(t.getTime()/1e3);case"Y":return String(t.getFullYear());case"m":return String(t.getMonth()+1).padStart(2,"0");case"d":return String(t.getDate()).padStart(2,"0");case"H":return String(t.getHours()).padStart(2,"0");case"M":return String(t.getMinutes()).padStart(2,"0");case"S":return String(t.getSeconds()).padStart(2,"0");case"T":return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;case"F":return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;default:return`%T${e}`}}var qd,Vd,Kd,Sa=A(()=>{"use strict";_();Rn();xa();Ea();qd={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"]},Vd=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),Kd={name:"find",async execute(t,e){if(I(t))return N(qd);let r=[],n=null,s=null,i=!1,o=!1;for(let S=0;S<t.length;S++){let C=t[S];if(C==="-maxdepth"&&S+1<t.length)o=!0,n=parseInt(t[++S],10);else if(C==="-mindepth"&&S+1<t.length)o=!0,s=parseInt(t[++S],10);else if(C==="-depth")o=!0,i=!0;else if(C==="-exec")for(o=!0,S++;S<t.length&&t[S]!==";"&&t[S]!=="+";)S++;else!C.startsWith("-")&&C!==";"&&C!=="+"&&C!=="("&&C!==")"&&C!=="\\("&&C!=="\\)"&&C!=="!"?o||r.push(C):Vd.has(C)?(o=!0,S++):(C.startsWith("-")||C==="("||C==="\\("||C==="!")&&(o=!0)}r.length===0&&r.push(".");let{expr:a,error:c,actions:l}=wa(t,0);if(c)return{stdout:"",stderr:c,exitCode:1};let u=l.some(S=>S.type==="print"),f=l.length===0,p=[],d=l.some(S=>S.type==="printf"),h=[],g="",y=0,w=ga(a),E=new Map;for(let S of w){let C=e.fs.resolvePath(e.cwd,S);try{let O=await e.fs.stat(C);E.set(S,O.mtime?.getTime()??Date.now())}catch{}}for(let S of r){S.length>1&&S.endsWith("/")&&(S=S.slice(0,-1));let C=e.fs.resolvePath(e.cwd,S);try{await e.fs.stat(C)}catch{g+=`find: ${S}: No such file or directory
309
- `,y=1;continue}async function O(D,F){if(n!==null&&F>n)return;let U;try{U=await e.fs.stat(D)}catch{return}if(!U)return;let te;D===C?te=S.split("/").pop()||S:te=D.split("/").pop()||"";let de=D===C?S:S==="."?`./${D.slice(C==="/"?C.length:C.length+1)}`:S+D.slice(C.length),se=null;U.isDirectory&&(se=await e.fs.readdir(D));let Ce=U.isFile?U.size===0:se!==null&&se.length===0,ze=()=>{let H=s===null||F>=s,j=!1;if(H&&a!==null){let ke={name:te,relativePath:de,isFile:U.isFile,isDirectory:U.isDirectory,isEmpty:Ce,mtime:U.mtime?.getTime()??Date.now(),size:U.size??0,mode:U.mode??420,newerRefTimes:E},Be=tt(a,ke);H=Be.matches,u?j=Be.printed:j=H}else H&&(j=!0);j&&(p.push(de),d&&h.push({path:de,name:te,size:U.size??0,mtime:U.mtime?.getTime()??Date.now(),mode:U.mode??420,isDirectory:U.isDirectory,depth:F,startingPoint:S}))},Me=async()=>{if(se!==null)for(let _e of se){let H=D==="/"?`/${_e}`:`${D}/${_e}`;await O(H,F+1)}},yr=!1;if(!i&&a!==null){let _e={name:te,relativePath:de,isFile:U.isFile,isDirectory:U.isDirectory,isEmpty:Ce,mtime:U.mtime?.getTime()??Date.now(),size:U.size??0,mode:U.mode??420,newerRefTimes:E};yr=tt(a,_e).pruned}i?(await Me(),ze()):(ze(),yr||await Me())}await O(C,0)}let b="";if(l.length>0)for(let S of l)switch(S.type){case"print":b+=p.length>0?`${p.join(`
308
+ `,actions:[]};if(r.length===0){s++;continue}break}s++}if(r.length===0)return{expr:null,pathIndex:s,actions:n};let i=rh(r);return i.error?{expr:null,pathIndex:s,error:i.error,actions:n}:{expr:i.expr,pathIndex:s,actions:n}}function rh(t){let e=0;function r(){let a=n();if(!a)return null;for(;e<t.length;){let c=t[e];if(c.type==="op"&&c.op==="or"){e++;let l=n();if(!l)return a;a={type:"or",left:a,right:l}}else break}return a}function n(){let a=s();if(!a)return null;for(;e<t.length;){let c=t[e];if(c.type==="op"&&c.op==="and"){e++;let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else if(c.type==="expr"||c.type==="not"||c.type==="lparen"){let l=s();if(!l)return a;a={type:"and",left:a,right:l}}else break}return a}function s(){if(e<t.length&&t[e].type==="not"){e++;let a=s();return a?{type:"not",expr:a}:null}return i()}function i(){if(e>=t.length)return null;let a=t[e];if(a.type==="lparen"){e++;let c=r();return e<t.length&&t[e].type==="rparen"&&e++,c}return a.type==="expr"?(e++,a.expr):(a.type==="rparen",null)}return{expr:r()}}var Na=A(()=>{"use strict"});var Ia={};$(Ia,{findCommand:()=>ih});function oh(t,e){let r=xr(t),n="",s=0;for(;s<r.length;)if(r[s]==="%"&&s+1<r.length){if(s++,r[s]==="%"){n+="%",s++;continue}let[i,o,a]=Ti(r,s);if(s+=a,s>=r.length){n+="%";break}let c=r[s],l;switch(c){case"f":l=e.name,s++;break;case"h":{let u=e.path.lastIndexOf("/");l=u>0?e.path.slice(0,u):".",s++;break}case"p":l=e.path,s++;break;case"P":{let u=e.startingPoint;e.path===u?l="":e.path.startsWith(`${u}/`)?l=e.path.slice(u.length+1):u==="."&&e.path.startsWith("./")?l=e.path.slice(2):l=e.path,s++;break}case"s":l=String(e.size),s++;break;case"d":l=String(e.depth),s++;break;case"m":l=(e.mode&511).toString(8),s++;break;case"M":l=ah(e.mode,e.isDirectory),s++;break;case"t":{let u=new Date(e.mtime);l=ch(u),s++;break}case"T":{if(s+1<r.length){let u=r[s+1],f=new Date(e.mtime);l=lh(f,u),s+=2}else l="%T",s++;break}default:n+=`%${i!==0||o!==-1?`${i}.${o}`:""}${c}`,s++;continue}n+=gr(l,i,o)}else n+=r[s],s++;return n}function ah(t,e){let r=t&511,n=e?"d":"-";return n+=r&256?"r":"-",n+=r&128?"w":"-",n+=r&64?"x":"-",n+=r&32?"r":"-",n+=r&16?"w":"-",n+=r&8?"x":"-",n+=r&4?"r":"-",n+=r&2?"w":"-",n+=r&1?"x":"-",n}function ch(t){let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=e[t.getDay()],s=r[t.getMonth()],i=String(t.getDate()).padStart(2," "),o=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0"),l=t.getFullYear();return`${n} ${s} ${i} ${o}:${a}:${c} ${l}`}function lh(t,e){switch(e){case"@":return String(t.getTime()/1e3);case"Y":return String(t.getFullYear());case"m":return String(t.getMonth()+1).padStart(2,"0");case"d":return String(t.getDate()).padStart(2,"0");case"H":return String(t.getHours()).padStart(2,"0");case"M":return String(t.getMinutes()).padStart(2,"0");case"S":return String(t.getSeconds()).padStart(2,"0");case"T":return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;case"F":return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;default:return`%T${e}`}}var nh,sh,ih,va=A(()=>{"use strict";_();Pn();Ca();Na();nh={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"]},sh=new Set(["-name","-iname","-path","-ipath","-regex","-iregex","-type","-maxdepth","-mindepth","-mtime","-newer","-size","-perm"]),ih={name:"find",async execute(t,e){if(I(t))return N(nh);let r=[],n=null,s=null,i=!1,o=!1;for(let S=0;S<t.length;S++){let C=t[S];if(C==="-maxdepth"&&S+1<t.length)o=!0,n=parseInt(t[++S],10);else if(C==="-mindepth"&&S+1<t.length)o=!0,s=parseInt(t[++S],10);else if(C==="-depth")o=!0,i=!0;else if(C==="-exec")for(o=!0,S++;S<t.length&&t[S]!==";"&&t[S]!=="+";)S++;else!C.startsWith("-")&&C!==";"&&C!=="+"&&C!=="("&&C!==")"&&C!=="\\("&&C!=="\\)"&&C!=="!"?o||r.push(C):sh.has(C)?(o=!0,S++):(C.startsWith("-")||C==="("||C==="\\("||C==="!")&&(o=!0)}r.length===0&&r.push(".");let{expr:a,error:c,actions:l}=ka(t,0);if(c)return{stdout:"",stderr:c,exitCode:1};let u=l.some(S=>S.type==="print"),f=l.length===0,p=[],d=l.some(S=>S.type==="printf"),h=[],g="",m=0,w=Aa(a),E=new Map;for(let S of w){let C=e.fs.resolvePath(e.cwd,S);try{let O=await e.fs.stat(C);E.set(S,O.mtime?.getTime()??Date.now())}catch{}}for(let S of r){S.length>1&&S.endsWith("/")&&(S=S.slice(0,-1));let C=e.fs.resolvePath(e.cwd,S);try{await e.fs.stat(C)}catch{g+=`find: ${S}: No such file or directory
309
+ `,m=1;continue}async function O(D,F){if(n!==null&&F>n)return;let U;try{U=await e.fs.stat(D)}catch{return}if(!U)return;let te;D===C?te=S.split("/").pop()||S:te=D.split("/").pop()||"";let de=D===C?S:S==="."?`./${D.slice(C==="/"?C.length:C.length+1)}`:S+D.slice(C.length),se=null;U.isDirectory&&(se=await e.fs.readdir(D));let Ce=U.isFile?U.size===0:se!==null&&se.length===0,je=()=>{let z=s===null||F>=s,H=!1;if(z&&a!==null){let ke={name:te,relativePath:de,isFile:U.isFile,isDirectory:U.isDirectory,isEmpty:Ce,mtime:U.mtime?.getTime()??Date.now(),size:U.size??0,mode:U.mode??420,newerRefTimes:E},Be=tt(a,ke);z=Be.matches,u?H=Be.printed:H=z}else z&&(H=!0);H&&(p.push(de),d&&h.push({path:de,name:te,size:U.size??0,mtime:U.mtime?.getTime()??Date.now(),mode:U.mode??420,isDirectory:U.isDirectory,depth:F,startingPoint:S}))},Me=async()=>{if(se!==null)for(let _e of se){let z=D==="/"?`/${_e}`:`${D}/${_e}`;await O(z,F+1)}},yr=!1;if(!i&&a!==null){let _e={name:te,relativePath:de,isFile:U.isFile,isDirectory:U.isDirectory,isEmpty:Ce,mtime:U.mtime?.getTime()??Date.now(),size:U.size??0,mode:U.mode??420,newerRefTimes:E};yr=tt(a,_e).pruned}i?(await Me(),je()):(je(),yr||await Me())}await O(C,0)}let b="";if(l.length>0)for(let S of l)switch(S.type){case"print":b+=p.length>0?`${p.join(`
310
310
  `)}
311
311
  `:"";break;case"print0":b+=p.length>0?`${p.join("\0")}\0`:"";break;case"delete":{let C=[...p].sort((O,D)=>D.length-O.length);for(let O of C){let D=e.fs.resolvePath(e.cwd,O);try{await e.fs.rm(D,{recursive:!1})}catch(F){let U=F instanceof Error?F.message:String(F);g+=`find: cannot delete '${O}': ${U}
312
- `,y=1}}break}case"printf":for(let C of h)b+=Zd(S.format,C);break;case"exec":if(!e.exec)return{stdout:"",stderr:`find: -exec not supported in this context
313
- `,exitCode:1};if(S.batchMode){let C=[];for(let F of S.command)F==="{}"?C.push(...p):C.push(F);let O=C.map(F=>`"${F}"`).join(" "),D=await e.exec(O,{cwd:e.cwd});b+=D.stdout,g+=D.stderr,D.exitCode!==0&&(y=D.exitCode)}else for(let C of p){let D=S.command.map(U=>U==="{}"?C:U).map(U=>`"${U}"`).join(" "),F=await e.exec(D,{cwd:e.cwd});b+=F.stdout,g+=F.stderr,F.exitCode!==0&&(y=F.exitCode)}break}else f&&(b=p.length>0?`${p.join(`
312
+ `,m=1}}break}case"printf":for(let C of h)b+=oh(S.format,C);break;case"exec":if(!e.exec)return{stdout:"",stderr:`find: -exec not supported in this context
313
+ `,exitCode:1};if(S.batchMode){let C=[];for(let F of S.command)F==="{}"?C.push(...p):C.push(F);let O=C.map(F=>`"${F}"`).join(" "),D=await e.exec(O,{cwd:e.cwd});b+=D.stdout,g+=D.stderr,D.exitCode!==0&&(m=D.exitCode)}else for(let C of p){let D=S.command.map(U=>U==="{}"?C:U).map(U=>`"${U}"`).join(" "),F=await e.exec(D,{cwd:e.cwd});b+=F.stdout,g+=F.stderr,F.exitCode!==0&&(m=F.exitCode)}break}else f&&(b=p.length>0?`${p.join(`
314
314
  `)}
315
- `:"");return{stdout:b,stderr:g,exitCode:y}}}});var Aa={};$(Aa,{basenameCommand:()=>eh});var Yd,eh,Ca=A(()=>{"use strict";_();Yd={name:"basename",summary:"strip directory and suffix from filenames",usage:`basename NAME [SUFFIX]
316
- basename OPTION... NAME...`,options:["-a, --multiple support multiple arguments","-s, --suffix=SUFFIX remove a trailing SUFFIX"," --help display this help and exit"]},eh={name:"basename",async execute(t,e){if(I(t))return N(Yd);let r=!1,n="",s=[];for(let o=0;o<t.length;o++){let a=t[o];a==="-a"||a==="--multiple"?r=!0:a==="-s"&&o+1<t.length?(n=t[++o],r=!0):a.startsWith("--suffix=")?(n=a.slice(9),r=!0):a.startsWith("-")||s.push(a)}if(s.length===0)return{stdout:"",stderr:`basename: missing operand
315
+ `:"");return{stdout:b,stderr:g,exitCode:m}}}});var Ra={};$(Ra,{basenameCommand:()=>fh});var uh,fh,$a=A(()=>{"use strict";_();uh={name:"basename",summary:"strip directory and suffix from filenames",usage:`basename NAME [SUFFIX]
316
+ basename OPTION... NAME...`,options:["-a, --multiple support multiple arguments","-s, --suffix=SUFFIX remove a trailing SUFFIX"," --help display this help and exit"]},fh={name:"basename",async execute(t,e){if(I(t))return N(uh);let r=!1,n="",s=[];for(let o=0;o<t.length;o++){let a=t[o];a==="-a"||a==="--multiple"?r=!0:a==="-s"&&o+1<t.length?(n=t[++o],r=!0):a.startsWith("--suffix=")?(n=a.slice(9),r=!0):a.startsWith("-")||s.push(a)}if(s.length===0)return{stdout:"",stderr:`basename: missing operand
317
317
  `,exitCode:1};!r&&s.length>=2&&(n=s.pop()??"");let i=[];for(let o of s){let a=o.replace(/\/+$/,""),c=a.split("/").pop()||a;n&&c.endsWith(n)&&(c=c.slice(0,-n.length)),i.push(c)}return{stdout:`${i.join(`
318
318
  `)}
319
- `,stderr:"",exitCode:0}}}});var ka={};$(ka,{dirnameCommand:()=>rh});var th,rh,Na=A(()=>{"use strict";_();th={name:"dirname",summary:"strip last component from file name",usage:"dirname [OPTION] NAME...",options:[" --help display this help and exit"]},rh={name:"dirname",async execute(t,e){if(I(t))return N(th);let r=t.filter(s=>!s.startsWith("-"));if(r.length===0)return{stdout:"",stderr:`dirname: missing operand
319
+ `,stderr:"",exitCode:0}}}});var Oa={};$(Oa,{dirnameCommand:()=>dh});var ph,dh,Pa=A(()=>{"use strict";_();ph={name:"dirname",summary:"strip last component from file name",usage:"dirname [OPTION] NAME...",options:[" --help display this help and exit"]},dh={name:"dirname",async execute(t,e){if(I(t))return N(ph);let r=t.filter(s=>!s.startsWith("-"));if(r.length===0)return{stdout:"",stderr:`dirname: missing operand
320
320
  `,exitCode:1};let n=[];for(let s of r){let i=s.replace(/\/+$/,""),o=i.lastIndexOf("/");o===-1?n.push("."):o===0?n.push("/"):n.push(i.slice(0,o))}return{stdout:`${n.join(`
321
321
  `)}
322
- `,stderr:"",exitCode:0}}}});var va={};$(va,{treeCommand:()=>ih});async function oh(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0},o=t.fs.resolvePath(t.cwd,e);try{if(!(await t.fs.stat(o)).isDirectory)return i.output=`${e}
322
+ `,stderr:"",exitCode:0}}}});var Fa={};$(Fa,{treeCommand:()=>yh});async function gh(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0},o=t.fs.resolvePath(t.cwd,e);try{if(!(await t.fs.stat(o)).isDirectory)return i.output=`${e}
323
323
  `,i.fileCount=1,i}catch{return i.stderr=`tree: ${e}: No such file or directory
324
324
  `,i}if(i.output=`${e}
325
- `,r.maxDepth!==null&&s>=r.maxDepth)return i;try{let c=(await t.fs.readdir(o)).filter(l=>!(!r.showHidden&&l.startsWith(".")));c.sort();for(let l=0;l<c.length;l++){let u=c[l],f=o==="/"?`/${u}`:`${o}/${u}`,p=l===c.length-1,d=p?"`-- ":"|-- ",h=n+(p?" ":"| ");try{if((await t.fs.stat(f)).isDirectory){i.dirCount++;let y=r.fullPath?f:u;if(i.output+=`${n+d+y}
326
- `,r.maxDepth===null||s+1<r.maxDepth){let w=await Ia(t,f,r,h,s+1);i.output+=w.output,i.dirCount+=w.dirCount,i.fileCount+=w.fileCount}}else if(!r.directoriesOnly){i.fileCount++;let y=r.fullPath?f:u;i.output+=`${n+d+y}
325
+ `,r.maxDepth!==null&&s>=r.maxDepth)return i;try{let c=(await t.fs.readdir(o)).filter(l=>!(!r.showHidden&&l.startsWith(".")));c.sort();for(let l=0;l<c.length;l++){let u=c[l],f=o==="/"?`/${u}`:`${o}/${u}`,p=l===c.length-1,d=p?"`-- ":"|-- ",h=n+(p?" ":"| ");try{if((await t.fs.stat(f)).isDirectory){i.dirCount++;let m=r.fullPath?f:u;if(i.output+=`${n+d+m}
326
+ `,r.maxDepth===null||s+1<r.maxDepth){let w=await Ta(t,f,r,h,s+1);i.output+=w.output,i.dirCount+=w.dirCount,i.fileCount+=w.fileCount}}else if(!r.directoriesOnly){i.fileCount++;let m=r.fullPath?f:u;i.output+=`${n+d+m}
327
327
  `}}catch{}}}catch{i.stderr=`tree: ${e}: Permission denied
328
- `}return i}async function Ia(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0};if(r.maxDepth!==null&&s>=r.maxDepth)return i;try{let a=(await t.fs.readdir(e)).filter(c=>!(!r.showHidden&&c.startsWith(".")));a.sort();for(let c=0;c<a.length;c++){let l=a[c],u=e==="/"?`/${l}`:`${e}/${l}`,f=c===a.length-1,p=f?"`-- ":"|-- ",d=n+(f?" ":"| ");try{if((await t.fs.stat(u)).isDirectory){i.dirCount++;let g=r.fullPath?u:l;i.output+=`${n+p+g}
329
- `;let y=await Ia(t,u,r,d,s+1);i.output+=y.output,i.dirCount+=y.dirCount,i.fileCount+=y.fileCount}else if(!r.directoriesOnly){i.fileCount++;let g=r.fullPath?u:l;i.output+=`${n+p+g}
330
- `}}catch{}}}catch{}return i}var nh,sh,ih,Ra=A(()=>{"use strict";fe();_();nh={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},sh={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},ih={name:"tree",async execute(t,e){if(I(t))return N(nh);let r=G("tree",t,sh);if(!r.ok)return r.error;let n={showHidden:r.result.flags.showHidden,directoriesOnly:r.result.flags.directoriesOnly,maxDepth:r.result.flags.maxDepth??null,fullPath:r.result.flags.fullPath},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0,c=0;for(let l of s){let u=await oh(e,l,n,"",0);i+=u.output,o+=u.stderr,a+=u.dirCount,c+=u.fileCount}return i+=`
328
+ `}return i}async function Ta(t,e,r,n,s){let i={output:"",stderr:"",dirCount:0,fileCount:0};if(r.maxDepth!==null&&s>=r.maxDepth)return i;try{let a=(await t.fs.readdir(e)).filter(c=>!(!r.showHidden&&c.startsWith(".")));a.sort();for(let c=0;c<a.length;c++){let l=a[c],u=e==="/"?`/${l}`:`${e}/${l}`,f=c===a.length-1,p=f?"`-- ":"|-- ",d=n+(f?" ":"| ");try{if((await t.fs.stat(u)).isDirectory){i.dirCount++;let g=r.fullPath?u:l;i.output+=`${n+p+g}
329
+ `;let m=await Ta(t,u,r,d,s+1);i.output+=m.output,i.dirCount+=m.dirCount,i.fileCount+=m.fileCount}else if(!r.directoriesOnly){i.fileCount++;let g=r.fullPath?u:l;i.output+=`${n+p+g}
330
+ `}}catch{}}}catch{}return i}var hh,mh,yh,Da=A(()=>{"use strict";le();_();hh={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},mh={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},yh={name:"tree",async execute(t,e){if(I(t))return N(hh);let r=j("tree",t,mh);if(!r.ok)return r.error;let n={showHidden:r.result.flags.showHidden,directoriesOnly:r.result.flags.directoriesOnly,maxDepth:r.result.flags.maxDepth??null,fullPath:r.result.flags.fullPath},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0,c=0;for(let l of s){let u=await gh(e,l,n,"",0);i+=u.output,o+=u.stderr,a+=u.dirCount,c+=u.fileCount}return i+=`
331
331
  ${a} director${a===1?"y":"ies"}`,n.directoriesOnly||(i+=`, ${c} file${c===1?"":"s"}`),i+=`
332
- `,{stdout:i,stderr:o,exitCode:o?1:0}}}});var Oa={};$(Oa,{duCommand:()=>lh});async function $a(t,e,r,n,s){let i={output:"",totalSize:0,stderr:""};try{let o=await t.fs.stat(e);if(!o.isDirectory)return i.totalSize=o.size,(n.allFiles||s===0)&&(i.output=Pr(o.size,n.humanReadable)+" "+r+`
333
- `),i;let a=await t.fs.readdir(e),c=0;for(let l of a){let u=e==="/"?`/${l}`:`${e}/${l}`,f=r==="."?l:`${r}/${l}`;try{let p=await t.fs.stat(u);if(p.isDirectory){let d=await $a(t,u,f,n,s+1);c+=d.totalSize,n.summarize||(n.maxDepth===null||s+1<=n.maxDepth?i.output+=d.output:c+=0)}else c+=p.size,n.allFiles&&!n.summarize&&(i.output+=Pr(p.size,n.humanReadable)+" "+f+`
332
+ `,{stdout:i,stderr:o,exitCode:o?1:0}}}});var Ma={};$(Ma,{duCommand:()=>Eh});async function La(t,e,r,n,s){let i={output:"",totalSize:0,stderr:""};try{let o=await t.fs.stat(e);if(!o.isDirectory)return i.totalSize=o.size,(n.allFiles||s===0)&&(i.output=Pr(o.size,n.humanReadable)+" "+r+`
333
+ `),i;let a=await t.fs.readdir(e),c=0;for(let l of a){let u=e==="/"?`/${l}`:`${e}/${l}`,f=r==="."?l:`${r}/${l}`;try{let p=await t.fs.stat(u);if(p.isDirectory){let d=await La(t,u,f,n,s+1);c+=d.totalSize,n.summarize||(n.maxDepth===null||s+1<=n.maxDepth?i.output+=d.output:c+=0)}else c+=p.size,n.allFiles&&!n.summarize&&(i.output+=Pr(p.size,n.humanReadable)+" "+f+`
334
334
  `)}catch{}}i.totalSize=c,(n.summarize||n.maxDepth===null||s<=n.maxDepth)&&(i.output+=`${Pr(c,n.humanReadable)} ${r}
335
335
  `)}catch{i.stderr=`du: cannot read directory '${r}': Permission denied
336
- `}return i}function Pr(t,e){return e?t<1024?`${t}`:t<1024*1024?`${(t/1024).toFixed(1)}K`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)}M`:`${(t/(1024*1024*1024)).toFixed(1)}G`:String(Math.ceil(t/1024)||1)}var ah,ch,lh,Pa=A(()=>{"use strict";fe();_();ah={name:"du",summary:"estimate file space usage",usage:"du [OPTION]... [FILE]...",options:["-a write counts for all files, not just directories","-h print sizes in human readable format","-s display only a total for each argument","-c produce a grand total","--max-depth=N print total for directory only if N or fewer levels deep"," --help display this help and exit"]},ch={allFiles:{short:"a",type:"boolean"},humanReadable:{short:"h",type:"boolean"},summarize:{short:"s",type:"boolean"},grandTotal:{short:"c",type:"boolean"},maxDepth:{long:"max-depth",type:"number"}},lh={name:"du",async execute(t,e){if(I(t))return N(ah);let r=G("du",t,ch);if(!r.ok)return r.error;let n={allFiles:r.result.flags.allFiles,humanReadable:r.result.flags.humanReadable,summarize:r.result.flags.summarize,grandTotal:r.result.flags.grandTotal,maxDepth:r.result.flags.maxDepth??null},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0;for(let c of s){let l=e.fs.resolvePath(e.cwd,c);try{await e.fs.stat(l);let u=await $a(e,l,c,n,0);i+=u.output,a+=u.totalSize,o+=u.stderr}catch{o+=`du: cannot access '${c}': No such file or directory
336
+ `}return i}function Pr(t,e){return e?t<1024?`${t}`:t<1024*1024?`${(t/1024).toFixed(1)}K`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)}M`:`${(t/(1024*1024*1024)).toFixed(1)}G`:String(Math.ceil(t/1024)||1)}var xh,wh,Eh,_a=A(()=>{"use strict";le();_();xh={name:"du",summary:"estimate file space usage",usage:"du [OPTION]... [FILE]...",options:["-a write counts for all files, not just directories","-h print sizes in human readable format","-s display only a total for each argument","-c produce a grand total","--max-depth=N print total for directory only if N or fewer levels deep"," --help display this help and exit"]},wh={allFiles:{short:"a",type:"boolean"},humanReadable:{short:"h",type:"boolean"},summarize:{short:"s",type:"boolean"},grandTotal:{short:"c",type:"boolean"},maxDepth:{long:"max-depth",type:"number"}},Eh={name:"du",async execute(t,e){if(I(t))return N(xh);let r=j("du",t,wh);if(!r.ok)return r.error;let n={allFiles:r.result.flags.allFiles,humanReadable:r.result.flags.humanReadable,summarize:r.result.flags.summarize,grandTotal:r.result.flags.grandTotal,maxDepth:r.result.flags.maxDepth??null},s=r.result.positional;s.length===0&&s.push(".");let i="",o="",a=0;for(let c of s){let l=e.fs.resolvePath(e.cwd,c);try{await e.fs.stat(l);let u=await La(e,l,c,n,0);i+=u.output,a+=u.totalSize,o+=u.stderr}catch{o+=`du: cannot access '${c}': No such file or directory
337
337
  `}}return n.grandTotal&&s.length>0&&(i+=`${Pr(a,n.humanReadable)} total
338
- `),{stdout:i,stderr:o,exitCode:o?1:0}}}});var Kn={};$(Kn,{envCommand:()=>fh,printenvCommand:()=>dh});var uh,fh,ph,dh,Zn=A(()=>{"use strict";_();uh={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},fh={name:"env",async execute(t,e){if(I(t))return N(uh);let r=!1,n=[],s={},i=-1;for(let u=0;u<t.length;u++){let f=t[u];if(f==="-i"||f==="--ignore-environment")r=!0;else if(f==="-u"&&u+1<t.length)n.push(t[++u]);else if(f.startsWith("-u"))n.push(f.slice(2));else if(f.startsWith("--unset="))n.push(f.slice(8));else{if(f.startsWith("--")&&f!=="--")return L("env",f);if(f.startsWith("-")&&f!=="-"){for(let p of f.slice(1))if(p!=="i"&&p!=="u")return L("env",`-${p}`);f.includes("i")&&(r=!0)}else if(f.includes("=")&&i===-1){let p=f.indexOf("="),d=f.slice(0,p),h=f.slice(p+1);s[d]=h}else{i=u;break}}}let o;if(r)o={...s};else{o={...e.env};for(let u of n)delete o[u];Object.assign(o,s)}if(i===-1){let u=[];for(let[f,p]of Object.entries(o))u.push(`${f}=${p}`);return{stdout:u.join(`
338
+ `),{stdout:i,stderr:o,exitCode:o?1:0}}}});var Xn={};$(Xn,{envCommand:()=>Sh,printenvCommand:()=>Ch});var bh,Sh,Ah,Ch,Jn=A(()=>{"use strict";_();bh={name:"env",summary:"run a program in a modified environment",usage:"env [OPTION]... [NAME=VALUE]... [COMMAND [ARG]...]",options:["-i, --ignore-environment start with an empty environment","-u NAME, --unset=NAME remove NAME from the environment"," --help display this help and exit"]},Sh={name:"env",async execute(t,e){if(I(t))return N(bh);let r=!1,n=[],s={},i=-1;for(let u=0;u<t.length;u++){let f=t[u];if(f==="-i"||f==="--ignore-environment")r=!0;else if(f==="-u"&&u+1<t.length)n.push(t[++u]);else if(f.startsWith("-u"))n.push(f.slice(2));else if(f.startsWith("--unset="))n.push(f.slice(8));else{if(f.startsWith("--")&&f!=="--")return L("env",f);if(f.startsWith("-")&&f!=="-"){for(let p of f.slice(1))if(p!=="i"&&p!=="u")return L("env",`-${p}`);f.includes("i")&&(r=!0)}else if(f.includes("=")&&i===-1){let p=f.indexOf("="),d=f.slice(0,p),h=f.slice(p+1);s[d]=h}else{i=u;break}}}let o;if(r)o={...s};else{o={...e.env};for(let u of n)delete o[u];Object.assign(o,s)}if(i===-1){let u=[];for(let[f,p]of Object.entries(o))u.push(`${f}=${p}`);return{stdout:u.join(`
339
339
  `)+(u.length>0?`
340
340
  `:""),stderr:"",exitCode:0}}if(!e.exec)return{stdout:"",stderr:`env: command execution not supported in this context
341
- `,exitCode:1};let a=t.slice(i).join(" "),c=Object.entries(s).map(([u,f])=>`${u}="${f}"`).join(" "),l=c?`${c} ${a}`:a;return e.exec(l,{cwd:e.cwd})}},ph={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},dh={name:"printenv",async execute(t,e){if(I(t))return N(ph);let r=t.filter(i=>!i.startsWith("-"));if(r.length===0){let i=[];for(let[o,a]of Object.entries(e.env))i.push(`${o}=${a}`);return{stdout:i.join(`
341
+ `,exitCode:1};let a=t.slice(i).join(" "),c=Object.entries(s).map(([u,f])=>`${u}="${f}"`).join(" "),l=c?`${c} ${a}`:a;return e.exec(l,{cwd:e.cwd})}},Ah={name:"printenv",summary:"print all or part of environment",usage:"printenv [OPTION]... [VARIABLE]...",options:[" --help display this help and exit"]},Ch={name:"printenv",async execute(t,e){if(I(t))return N(Ah);let r=t.filter(i=>!i.startsWith("-"));if(r.length===0){let i=[];for(let[o,a]of Object.entries(e.env))i.push(`${o}=${a}`);return{stdout:i.join(`
342
342
  `)+(i.length>0?`
343
343
  `:""),stderr:"",exitCode:0}}let n=[],s=0;for(let i of r)i in e.env?n.push(e.env[i]):s=1;return{stdout:n.join(`
344
344
  `)+(n.length>0?`
345
- `:""),stderr:"",exitCode:s}}}});var Qn={};$(Qn,{aliasCommand:()=>mh,unaliasCommand:()=>yh});var hh,Ot,mh,yh,Xn=A(()=>{"use strict";_();hh={name:"alias",summary:"define or display aliases",usage:"alias [name[=value] ...]",options:[" --help display this help and exit"]},Ot="BASH_ALIAS_",mh={name:"alias",async execute(t,e){if(I(t))return N(hh);if(t.length===0){let r="";for(let[n,s]of Object.entries(e.env))if(n.startsWith(Ot)){let i=n.slice(Ot.length);r+=`alias ${i}='${s}'
345
+ `:""),stderr:"",exitCode:s}}}});var Yn={};$(Yn,{aliasCommand:()=>Nh,unaliasCommand:()=>Ih});var kh,Ot,Nh,Ih,es=A(()=>{"use strict";_();kh={name:"alias",summary:"define or display aliases",usage:"alias [name[=value] ...]",options:[" --help display this help and exit"]},Ot="BASH_ALIAS_",Nh={name:"alias",async execute(t,e){if(I(t))return N(kh);if(t.length===0){let r="";for(let[n,s]of Object.entries(e.env))if(n.startsWith(Ot)){let i=n.slice(Ot.length);r+=`alias ${i}='${s}'
346
346
  `}return{stdout:r,stderr:"",exitCode:0}}for(let r of t){let n=r.indexOf("=");if(n===-1){let s=Ot+r;return e.env[s]?{stdout:`alias ${r}='${e.env[s]}'
347
347
  `,stderr:"",exitCode:0}:{stdout:"",stderr:`alias: ${r}: not found
348
- `,exitCode:1}}else{let s=r.slice(0,n),i=r.slice(n+1);(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),e.env[Ot+s]=i}}return{stdout:"",stderr:"",exitCode:0}}},yh={name:"unalias",async execute(t,e){if(I(t))return N({name:"unalias",summary:"remove alias definitions",usage:"unalias name [name ...]",options:["-a remove all aliases"," --help display this help and exit"]});if(t.length===0)return{stdout:"",stderr:`unalias: usage: unalias [-a] name [name ...]
348
+ `,exitCode:1}}else{let s=r.slice(0,n),i=r.slice(n+1);(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),e.env[Ot+s]=i}}return{stdout:"",stderr:"",exitCode:0}}},Ih={name:"unalias",async execute(t,e){if(I(t))return N({name:"unalias",summary:"remove alias definitions",usage:"unalias name [name ...]",options:["-a remove all aliases"," --help display this help and exit"]});if(t.length===0)return{stdout:"",stderr:`unalias: usage: unalias [-a] name [name ...]
349
349
  `,exitCode:1};if(t[0]==="-a"){for(let s of Object.keys(e.env))s.startsWith(Ot)&&delete e.env[s];return{stdout:"",stderr:"",exitCode:0}}let r=!1,n="";for(let s of t){let i=Ot+s;e.env[i]?delete e.env[i]:(n+=`unalias: ${s}: not found
350
- `,r=!0)}return{stdout:"",stderr:n,exitCode:r?1:0}}}});var Fa={};$(Fa,{historyCommand:()=>xh});var gh,Ta,xh,Da=A(()=>{"use strict";_();gh={name:"history",summary:"display command history",usage:"history [n]",options:["-c clear the history list"," --help display this help and exit"]},Ta="BASH_HISTORY",xh={name:"history",async execute(t,e){if(I(t))return N(gh);let r=e.env[Ta]||"[]",n;try{n=JSON.parse(r)}catch{n=[]}if(t[0]==="-c")return e.env[Ta]="[]",{stdout:"",stderr:"",exitCode:0};let s=n.length;t[0]&&/^\d+$/.test(t[0])&&(s=Math.min(parseInt(t[0],10),n.length));let i=n.length-s,o="";for(let a=i;a<n.length;a++){let c=(a+1).toString().padStart(5," ");o+=`${c} ${n[a]}
351
- `}return{stdout:o,stderr:"",exitCode:0}}}});var La={};$(La,{xargsCommand:()=>Eh});var wh,Eh,Ma=A(()=>{"use strict";_();wh={name:"xargs",summary:"build and execute command lines from standard input",usage:"xargs [OPTION]... [COMMAND [INITIAL-ARGS]]",options:["-I REPLACE replace occurrences of REPLACE with input","-n NUM use at most NUM arguments per command line","-P NUM run at most NUM processes at a time","-0, --null items are separated by null, not whitespace","-t, --verbose print commands before executing","-r, --no-run-if-empty do not run command if input is empty"," --help display this help and exit"]},Eh={name:"xargs",async execute(t,e){if(I(t))return N(wh);let r=null,n=null,s=null,i=!1,o=!1,a=!1,c=0;for(let w=0;w<t.length;w++){let E=t[w];if(E==="-I"&&w+1<t.length)r=t[++w],c=w+1;else if(E==="-n"&&w+1<t.length)n=parseInt(t[++w],10),c=w+1;else if(E==="-P"&&w+1<t.length)s=parseInt(t[++w],10),c=w+1;else if(E==="-0"||E==="--null")i=!0,c=w+1;else if(E==="-t"||E==="--verbose")o=!0,c=w+1;else if(E==="-r"||E==="--no-run-if-empty")a=!0,c=w+1;else{if(E.startsWith("--"))return L("xargs",E);if(E.startsWith("-")&&E.length>1){for(let b of E.slice(1))if(!"0tr".includes(b))return L("xargs",`-${b}`);E.includes("0")&&(i=!0),E.includes("t")&&(o=!0),E.includes("r")&&(a=!0),c=w+1}else if(!E.startsWith("-")){c=w;break}}}let l=t.slice(c);l.length===0&&l.push("echo");let u=i?"\0":/\s+/,f=e.stdin.split(u).map(w=>w.trim()).filter(w=>w.length>0);if(f.length===0)return a?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0};let p="",d="",h=0,g=async w=>{let E=w.join(" ");return o&&(d+=`${E}
350
+ `,r=!0)}return{stdout:"",stderr:n,exitCode:r?1:0}}}});var Wa={};$(Wa,{historyCommand:()=>Rh});var vh,Ba,Rh,Ua=A(()=>{"use strict";_();vh={name:"history",summary:"display command history",usage:"history [n]",options:["-c clear the history list"," --help display this help and exit"]},Ba="BASH_HISTORY",Rh={name:"history",async execute(t,e){if(I(t))return N(vh);let r=e.env[Ba]||"[]",n;try{n=JSON.parse(r)}catch{n=[]}if(t[0]==="-c")return e.env[Ba]="[]",{stdout:"",stderr:"",exitCode:0};let s=n.length;t[0]&&/^\d+$/.test(t[0])&&(s=Math.min(parseInt(t[0],10),n.length));let i=n.length-s,o="";for(let a=i;a<n.length;a++){let c=(a+1).toString().padStart(5," ");o+=`${c} ${n[a]}
351
+ `}return{stdout:o,stderr:"",exitCode:0}}}});var za={};$(za,{xargsCommand:()=>Oh});var $h,Oh,Ha=A(()=>{"use strict";_();$h={name:"xargs",summary:"build and execute command lines from standard input",usage:"xargs [OPTION]... [COMMAND [INITIAL-ARGS]]",options:["-I REPLACE replace occurrences of REPLACE with input","-n NUM use at most NUM arguments per command line","-P NUM run at most NUM processes at a time","-0, --null items are separated by null, not whitespace","-t, --verbose print commands before executing","-r, --no-run-if-empty do not run command if input is empty"," --help display this help and exit"]},Oh={name:"xargs",async execute(t,e){if(I(t))return N($h);let r=null,n=null,s=null,i=!1,o=!1,a=!1,c=0;for(let w=0;w<t.length;w++){let E=t[w];if(E==="-I"&&w+1<t.length)r=t[++w],c=w+1;else if(E==="-n"&&w+1<t.length)n=parseInt(t[++w],10),c=w+1;else if(E==="-P"&&w+1<t.length)s=parseInt(t[++w],10),c=w+1;else if(E==="-0"||E==="--null")i=!0,c=w+1;else if(E==="-t"||E==="--verbose")o=!0,c=w+1;else if(E==="-r"||E==="--no-run-if-empty")a=!0,c=w+1;else{if(E.startsWith("--"))return L("xargs",E);if(E.startsWith("-")&&E.length>1){for(let b of E.slice(1))if(!"0tr".includes(b))return L("xargs",`-${b}`);E.includes("0")&&(i=!0),E.includes("t")&&(o=!0),E.includes("r")&&(a=!0),c=w+1}else if(!E.startsWith("-")){c=w;break}}}let l=t.slice(c);l.length===0&&l.push("echo");let u=i?"\0":/\s+/,f=e.stdin.split(u).map(w=>w.trim()).filter(w=>w.length>0);if(f.length===0)return a?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0};let p="",d="",h=0,g=async w=>{let E=w.join(" ");return o&&(d+=`${E}
352
352
  `),e.exec?e.exec(E,{cwd:e.cwd}):{stdout:`${E}
353
- `,stderr:"",exitCode:0}},y=async w=>{if(s!==null&&s>1)for(let E=0;E<w.length;E+=s){let b=w.slice(E,E+s),S=await Promise.all(b.map(g));for(let C of S)p+=C.stdout,d+=C.stderr,C.exitCode!==0&&(h=C.exitCode)}else for(let E of w){let b=await g(E);p+=b.stdout,d+=b.stderr,b.exitCode!==0&&(h=b.exitCode)}};if(r!==null){let w=f.map(E=>l.map(b=>b.replaceAll(r,E)));await y(w)}else if(n!==null){let w=[];for(let E=0;E<f.length;E+=n){let b=f.slice(E,E+n);w.push([...l,...b])}await y(w)}else{let w=[...l,...f],E=await g(w);p+=E.stdout,d+=E.stderr,h=E.exitCode}return{stdout:p,stderr:d,exitCode:h}}}});var Jn={};$(Jn,{falseCommand:()=>Sh,trueCommand:()=>bh});var bh,Sh,Yn=A(()=>{"use strict";bh={name:"true",async execute(){return{stdout:"",stderr:"",exitCode:0}}},Sh={name:"false",async execute(){return{stdout:"",stderr:"",exitCode:1}}}});var _a={};$(_a,{clearCommand:()=>Ch});var Ah,Ch,Ba=A(()=>{"use strict";_();Ah={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},Ch={name:"clear",async execute(t,e){return I(t)?N(Ah):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}}});var es={};$(es,{bashCommand:()=>kh,shCommand:()=>Nh});async function Tr(t,e,r,n){if(!n.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
353
+ `,stderr:"",exitCode:0}},m=async w=>{if(s!==null&&s>1)for(let E=0;E<w.length;E+=s){let b=w.slice(E,E+s),S=await Promise.all(b.map(g));for(let C of S)p+=C.stdout,d+=C.stderr,C.exitCode!==0&&(h=C.exitCode)}else for(let E of w){let b=await g(E);p+=b.stdout,d+=b.stderr,b.exitCode!==0&&(h=b.exitCode)}};if(r!==null){let w=f.map(E=>l.map(b=>b.replaceAll(r,E)));await m(w)}else if(n!==null){let w=[];for(let E=0;E<f.length;E+=n){let b=f.slice(E,E+n);w.push([...l,...b])}await m(w)}else{let w=[...l,...f],E=await g(w);p+=E.stdout,d+=E.stderr,h=E.exitCode}return{stdout:p,stderr:d,exitCode:h}}}});var ts={};$(ts,{falseCommand:()=>Th,trueCommand:()=>Ph});var Ph,Th,rs=A(()=>{"use strict";Ph={name:"true",async execute(){return{stdout:"",stderr:"",exitCode:0}}},Th={name:"false",async execute(){return{stdout:"",stderr:"",exitCode:1}}}});var ja={};$(ja,{clearCommand:()=>Dh});var Fh,Dh,Ga=A(()=>{"use strict";_();Fh={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},Dh={name:"clear",async execute(t,e){return I(t)?N(Fh):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}}});var ns={};$(ns,{bashCommand:()=>Lh,shCommand:()=>Mh});async function Tr(t,e,r,n){if(!n.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
354
354
  `,exitCode:1};let s={0:e,"#":String(r.length),"@":r.join(" "),"*":r.join(" ")};r.forEach((u,f)=>{s[String(f+1)]=u});let i=t;if(i.startsWith("#!")){let u=i.indexOf(`
355
355
  `);u!==-1&&(i=i.slice(u+1))}let o=i.split(`
356
- `),a=[];for(let u of o){let f=u.trim();f&&!f.startsWith("#")&&a.push(f)}let c=a.join("; ");return await n.exec(c,{env:s,cwd:n.cwd})}var Wa,kh,Nh,ts=A(()=>{"use strict";_();Wa={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},kh={name:"bash",async execute(t,e){if(I(t))return N(Wa);if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"bash",o=t.slice(3);return Tr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Tr(i,r,n,e)}catch{return{stdout:"",stderr:`bash: ${r}: No such file or directory
357
- `,exitCode:127}}}},Nh={name:"sh",async execute(t,e){if(I(t))return N({...Wa,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"sh",o=t.slice(3);return Tr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Tr(i,r,n,e)}catch{return{stdout:"",stderr:`sh: ${r}: No such file or directory
358
- `,exitCode:127}}}}});function vh(t){return{vars:new Map,limits:{maxIterations:t?.maxIterations??Ih}}}function rs(t,e,r){let n=new Map(t.vars);return n.set(e,r),{vars:n,limits:t.limits}}function k(t,e,r){let n=r&&"vars"in r?r:vh(r?.limits);switch(e.type){case"Identity":return[t];case"Field":return(e.base?k(t,e.base,n):[t]).flatMap(i=>i&&typeof i=="object"&&!Array.isArray(i)?[i[e.name]]:[null]);case"Index":return(e.base?k(t,e.base,n):[t]).flatMap(i=>k(i,e.index,n).flatMap(a=>{if(typeof a=="number"&&Array.isArray(i)){let c=a<0?i.length+a:a;return c>=0&&c<i.length?[i[c]]:[null]}return typeof a=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?[i[a]]:[null]}));case"Slice":return(e.base?k(t,e.base,n):[t]).flatMap(i=>{if(!Array.isArray(i)&&typeof i!="string")return[null];let o=i.length,a=e.start?k(t,e.start,n):[0],c=e.end?k(t,e.end,n):[o];return a.flatMap(l=>c.map(u=>{let f=Ua(l,o),p=Ua(u,o);return Array.isArray(i),i.slice(f,p)}))});case"Iterate":return(e.base?k(t,e.base,n):[t]).flatMap(i=>Array.isArray(i)?i:i&&typeof i=="object"?Object.values(i):[]);case"Pipe":return k(t,e.left,n).flatMap(i=>k(i,e.right,n));case"Comma":{let s=k(t,e.left,n),i=k(t,e.right,n);return[...s,...i]}case"Literal":return[e.value];case"Array":return e.elements?[k(t,e.elements,n)]:[[]];case"Object":{let s=[{}];for(let i of e.entries){let o=typeof i.key=="string"?[i.key]:k(t,i.key,n),a=k(t,i.value,n),c=[];for(let l of s)for(let u of o)for(let f of a)c.push({...l,[String(u)]:f});s.length=0,s.push(...c)}return s}case"Paren":return k(t,e.expr,n);case"BinaryOp":return Oh(t,e.op,e.left,e.right,n);case"UnaryOp":return k(t,e.operand,n).map(i=>e.op==="-"?typeof i=="number"?-i:null:e.op==="not"?!ge(i):null);case"Cond":return k(t,e.cond,n).flatMap(i=>{if(ge(i))return k(t,e.then,n);for(let o of e.elifs)if(k(t,o.cond,n).some(ge))return k(t,o.then,n);return e.else?k(t,e.else,n):[null]});case"Try":try{return k(t,e.body,n)}catch{return e.catch?k(t,e.catch,n):[]}case"Call":return ja(t,e.name,e.args,n);case"VarBind":return k(t,e.value,n).flatMap(i=>{let o=rs(n,e.name,i);return k(t,e.body,o)});case"VarRef":{let s=n.vars.get(e.name);return s!==void 0?[s]:[null]}case"Recurse":{let s=[],i=new WeakSet,o=a=>{if(a&&typeof a=="object"){if(i.has(a))return;i.add(a)}if(s.push(a),Array.isArray(a))for(let c of a)o(c);else if(a&&typeof a=="object")for(let c of Object.keys(a))o(a[c])};return o(t),s}case"Optional":try{return k(t,e.expr,n)}catch{return[]}case"StringInterp":return[e.parts.map(i=>typeof i=="string"?i:k(t,i,n).map(a=>typeof a=="string"?a:JSON.stringify(a)).join("")).join("")];case"UpdateOp":return[Rh(t,e.path,e.op,e.value,n)];case"Reduce":{let s=k(t,e.expr,n),i=k(t,e.init,n)[0];for(let o of s){let a=rs(n,e.varName,o);i=k(i,e.update,a)[0]}return[i]}case"Foreach":{let s=k(t,e.expr,n),i=k(t,e.init,n)[0],o=[];for(let a of s){let c=rs(n,e.varName,a);if(i=k(i,e.update,c)[0],e.extract){let l=k(i,e.extract,c);o.push(...l)}else o.push(i)}return o}default:{let s=e;throw new Error(`Unknown AST node type: ${s.type}`)}}}function Ua(t,e){return t<0?Math.max(0,e+t):Math.min(t,e)}function Rh(t,e,r,n,s){function i(c,l){switch(r){case"=":return l;case"|=":return k(c,n,s)[0]??null;case"+=":return typeof c=="number"&&typeof l=="number"||typeof c=="string"&&typeof l=="string"?c+l:Array.isArray(c)&&Array.isArray(l)?[...c,...l]:c&&l&&typeof c=="object"&&typeof l=="object"?{...c,...l}:l;case"-=":return typeof c=="number"&&typeof l=="number"?c-l:c;case"*=":return typeof c=="number"&&typeof l=="number"?c*l:c;case"/=":return typeof c=="number"&&typeof l=="number"?c/l:c;case"%=":return typeof c=="number"&&typeof l=="number"?c%l:c;case"//=":return c===null||c===!1?l:c;default:return l}}function o(c,l,u){switch(l.type){case"Identity":return u(c);case"Field":{if(l.base)return o(c,l.base,f=>{if(f&&typeof f=="object"&&!Array.isArray(f)){let p={...f};return p[l.name]=u(p[l.name]),p}return f});if(c&&typeof c=="object"&&!Array.isArray(c)){let f={...c};return f[l.name]=u(f[l.name]),f}return c}case"Index":{let p=k(t,l.index,s)[0];if(l.base)return o(c,l.base,d=>{if(typeof p=="number"&&Array.isArray(d)){let h=[...d],g=p<0?h.length+p:p;return g>=0&&g<h.length&&(h[g]=u(h[g])),h}if(typeof p=="string"&&d&&typeof d=="object"&&!Array.isArray(d)){let h={...d};return h[p]=u(h[p]),h}return d});if(typeof p=="number"&&Array.isArray(c)){let d=[...c],h=p<0?d.length+p:p;return h>=0&&h<d.length&&(d[h]=u(d[h])),d}if(typeof p=="string"&&c&&typeof c=="object"&&!Array.isArray(c)){let d={...c};return d[p]=u(d[p]),d}return c}case"Iterate":{let f=p=>{if(Array.isArray(p))return p.map(d=>u(d));if(p&&typeof p=="object"){let d={};for(let[h,g]of Object.entries(p))d[h]=u(g);return d}return p};return l.base?o(c,l.base,f):f(c)}case"Pipe":{let f=o(c,l.left,p=>p);return o(f,l.right,u)}default:return u(c)}}return o(t,e,c=>{if(r==="|=")return i(c,c);let l=k(t,n,s);return i(c,l[0]??null)})}function $h(t,e,r){function n(s,i){switch(i.type){case"Identity":return null;case"Field":{if(s&&typeof s=="object"&&!Array.isArray(s)){let o={...s};return delete o[i.name],o}return s}case"Index":{let a=k(t,i.index,r)[0];if(typeof a=="number"&&Array.isArray(s)){let c=[...s],l=a<0?c.length+a:a;return l>=0&&l<c.length&&c.splice(l,1),c}if(typeof a=="string"&&s&&typeof s=="object"&&!Array.isArray(s)){let c={...s};return delete c[a],c}return s}case"Iterate":return Array.isArray(s)?[]:s&&typeof s=="object"?{}:s;default:return s}}return n(t,e)}function ge(t){return t!==null&&t!==!1}function Oh(t,e,r,n,s){if(e==="and")return k(t,r,s).flatMap(c=>ge(c)?k(t,n,s).map(u=>ge(u)):[!1]);if(e==="or")return k(t,r,s).flatMap(c=>ge(c)?[!0]:k(t,n,s).map(u=>ge(u)));if(e==="//"){let c=k(t,r,s).filter(l=>l!=null&&l!==!1);return c.length>0?c:k(t,n,s)}let i=k(t,r,s),o=k(t,n,s);return i.flatMap(a=>o.map(c=>{switch(e){case"+":return typeof a=="number"&&typeof c=="number"||typeof a=="string"&&typeof c=="string"?a+c:Array.isArray(a)&&Array.isArray(c)?[...a,...c]:a&&c&&typeof a=="object"&&typeof c=="object"&&!Array.isArray(a)&&!Array.isArray(c)?{...a,...c}:null;case"-":if(typeof a=="number"&&typeof c=="number")return a-c;if(Array.isArray(a)&&Array.isArray(c)){let l=new Set(c.map(u=>JSON.stringify(u)));return a.filter(u=>!l.has(JSON.stringify(u)))}return null;case"*":return typeof a=="number"&&typeof c=="number"?a*c:typeof a=="string"&&typeof c=="number"?a.repeat(c):a&&c&&typeof a=="object"&&typeof c=="object"&&!Array.isArray(a)&&!Array.isArray(c)?Ha(a,c):null;case"/":return typeof a=="number"&&typeof c=="number"?a/c:typeof a=="string"&&typeof c=="string"?a.split(c):null;case"%":return typeof a=="number"&&typeof c=="number"?a%c:null;case"==":return Pt(a,c);case"!=":return!Pt(a,c);case"<":return Fr(a,c)<0;case"<=":return Fr(a,c)<=0;case">":return Fr(a,c)>0;case">=":return Fr(a,c)>=0;default:return null}}))}function Pt(t,e){return JSON.stringify(t)===JSON.stringify(e)}function Fr(t,e){return typeof t=="number"&&typeof e=="number"?t-e:typeof t=="string"&&typeof e=="string"?t.localeCompare(e):0}function Ha(t,e){let r={...t};for(let n of Object.keys(e))n in r&&r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])?r[n]=Ha(r[n],e[n]):r[n]=e[n];return r}function ja(t,e,r,n){switch(e){case"keys":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t).sort()]:[null];case"keys_unsorted":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t)]:[null];case"values":return Array.isArray(t)?[t]:t&&typeof t=="object"?[Object.values(t)]:[null];case"length":return typeof t=="string"?[t.length]:Array.isArray(t)?[t.length]:t&&typeof t=="object"?[Object.keys(t).length]:t===null?[0]:[null];case"utf8bytelength":return typeof t=="string"?[new TextEncoder().encode(t).length]:[null];case"type":return t===null?["null"]:Array.isArray(t)?["array"]:typeof t=="boolean"?["boolean"]:typeof t=="number"?["number"]:typeof t=="string"?["string"]:typeof t=="object"?["object"]:["null"];case"empty":return[];case"error":{let s=r.length>0?k(t,r[0],n)[0]:t;throw new Error(String(s))}case"not":return[!ge(t)];case"null":return[null];case"true":return[!0];case"false":return[!1];case"first":if(r.length>0){let s=k(t,r[0],n);return s.length>0?[s[0]]:[]}return Array.isArray(t)&&t.length>0?[t[0]]:[null];case"last":if(r.length>0){let s=k(t,r[0],n);return s.length>0?[s[s.length-1]]:[]}return Array.isArray(t)&&t.length>0?[t[t.length-1]]:[null];case"nth":{if(r.length<1)return[null];let i=k(t,r[0],n)[0];if(r.length>1){let o=k(t,r[1],n);return i>=0&&i<o.length?[o[i]]:[]}return Array.isArray(t)?i>=0&&i<t.length?[t[i]]:[null]:[null]}case"range":{if(r.length===0)return[];let s=k(t,r[0],n);if(r.length===1){let l=s[0];return Array.from({length:l},(u,f)=>f)}let i=k(t,r[1],n),o=s[0],a=i[0],c=[];for(let l=o;l<a;l++)c.push(l);return c}case"reverse":return Array.isArray(t)?[[...t].reverse()]:typeof t=="string"?[t.split("").reverse().join("")]:[null];case"sort":return Array.isArray(t)?[[...t].sort(pt)]:[null];case"sort_by":return!Array.isArray(t)||r.length===0?[null]:[[...t].sort((i,o)=>{let a=k(i,r[0],n)[0],c=k(o,r[0],n)[0];return pt(a,c)})];case"unique":if(Array.isArray(t)){let s=new Set,i=[];for(let o of t){let a=JSON.stringify(o);s.has(a)||(s.add(a),i.push(o))}return[i]}return[null];case"unique_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Set,i=[];for(let o of t){let a=JSON.stringify(k(o,r[0],n)[0]);s.has(a)||(s.add(a),i.push(o))}return[i]}case"group_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Map;for(let i of t){let o=JSON.stringify(k(i,r[0],n)[0]);s.has(o)||s.set(o,[]),s.get(o)?.push(i)}return[[...s.values()]]}case"max":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>pt(s,i)>0?s:i)]:[null];case"max_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=k(s,r[0],n)[0],a=k(i,r[0],n)[0];return pt(o,a)>0?s:i})];case"min":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>pt(s,i)<0?s:i)]:[null];case"min_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=k(s,r[0],n)[0],a=k(i,r[0],n)[0];return pt(o,a)<0?s:i})];case"flatten":{if(!Array.isArray(t))return[null];let s=r.length>0?k(t,r[0],n)[0]:Number.POSITIVE_INFINITY;return[t.flat(s)]}case"add":if(Array.isArray(t)){if(t.length===0)return[null];if(t.every(s=>typeof s=="number"))return[t.reduce((s,i)=>s+i,0)];if(t.every(s=>typeof s=="string"))return[t.join("")];if(t.every(s=>Array.isArray(s)))return[t.flat()];if(t.every(s=>s&&typeof s=="object"&&!Array.isArray(s)))return[Object.assign({},...t)]}return[null];case"any":return r.length>0?Array.isArray(t)?[t.some(s=>ge(k(s,r[0],n)[0]))]:[!1]:Array.isArray(t)?[t.some(ge)]:[!1];case"all":return r.length>0?Array.isArray(t)?[t.every(s=>ge(k(s,r[0],n)[0]))]:[!0]:Array.isArray(t)?[t.every(ge)]:[!0];case"select":return r.length===0?[t]:k(t,r[0],n).some(ge)?[t]:[];case"map":return r.length===0||!Array.isArray(t)?[null]:[t.flatMap(i=>k(i,r[0],n))];case"map_values":{if(r.length===0)return[null];if(Array.isArray(t))return[t.flatMap(s=>k(s,r[0],n))];if(t&&typeof t=="object"){let s={};for(let[i,o]of Object.entries(t)){let a=k(o,r[0],n);a.length>0&&(s[i]=a[0])}return[s]}return[null]}case"has":{if(r.length===0)return[!1];let i=k(t,r[0],n)[0];return Array.isArray(t)&&typeof i=="number"?[i>=0&&i<t.length]:t&&typeof t=="object"&&typeof i=="string"?[i in t]:[!1]}case"in":{if(r.length===0)return[!1];let i=k(t,r[0],n)[0];return Array.isArray(i)&&typeof t=="number"?[t>=0&&t<i.length]:i&&typeof i=="object"&&typeof t=="string"?[t in i]:[!1]}case"contains":{if(r.length===0)return[!1];let s=k(t,r[0],n);return[Dr(t,s[0])]}case"inside":{if(r.length===0)return[!1];let s=k(t,r[0],n);return[Dr(s[0],t)]}case"getpath":{if(r.length===0)return[null];let i=k(t,r[0],n)[0],o=t;for(let a of i){if(o==null)return[null];if(Array.isArray(o)&&typeof a=="number")o=o[a];else if(typeof o=="object"&&typeof a=="string")o=o[a];else return[null]}return[o]}case"setpath":{if(r.length<2)return[null];let i=k(t,r[0],n)[0],a=k(t,r[1],n)[0];return[ns(t,i,a)]}case"delpaths":{if(r.length===0)return[t];let i=k(t,r[0],n)[0],o=t;for(let a of i.sort((c,l)=>l.length-c.length))o=ss(o,a);return[o]}case"path":{if(r.length===0)return[[]];let s=[];return Ph(t,r[0],n,[],s),s}case"del":return r.length===0?[t]:[$h(t,r[0],n)];case"paths":{let s=[],i=(o,a)=>{if(o&&typeof o=="object")if(Array.isArray(o))for(let c=0;c<o.length;c++)s.push([...a,c]),i(o[c],[...a,c]);else for(let c of Object.keys(o))s.push([...a,c]),i(o[c],[...a,c])};return i(t,[]),r.length>0?s.filter(o=>{let a=t;for(let l of o)if(Array.isArray(a)&&typeof l=="number")a=a[l];else if(a&&typeof a=="object"&&typeof l=="string")a=a[l];else return!1;return k(a,r[0],n).some(ge)}):s}case"leaf_paths":{let s=[],i=(o,a)=>{if(o===null||typeof o!="object")s.push(a);else if(Array.isArray(o))for(let c=0;c<o.length;c++)i(o[c],[...a,c]);else for(let c of Object.keys(o))i(o[c],[...a,c])};return i(t,[]),[s]}case"to_entries":return t&&typeof t=="object"&&!Array.isArray(t)?[Object.entries(t).map(([s,i])=>({key:s,value:i}))]:[null];case"from_entries":if(Array.isArray(t)){let s={};for(let i of t)if(i&&typeof i=="object"){let o=i,a=o.key??o.name??o.k,c=o.value??o.v;a!==void 0&&(s[String(a)]=c)}return[s]}return[null];case"with_entries":{if(r.length===0)return[t];if(t&&typeof t=="object"&&!Array.isArray(t)){let i=Object.entries(t).map(([a,c])=>({key:a,value:c})).flatMap(a=>k(a,r[0],n)),o={};for(let a of i)if(a&&typeof a=="object"){let c=a,l=c.key??c.name??c.k,u=c.value??c.v;l!==void 0&&(o[String(l)]=u)}return[o]}return[null]}case"join":{if(!Array.isArray(t))return[null];let s=r.length>0?k(t,r[0],n):[""],i=String(s[0]);return[t.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(i)]}case"split":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);return[t.split(i)]}case"test":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"";return[new RegExp(i,o).test(t)]}catch{return[!1]}}case"match":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"",c=new RegExp(i,`${o}d`).exec(t);if(!c)return[];let l=c.indices;return[{offset:c.index,length:c[0].length,string:c[0],captures:c.slice(1).map((u,f)=>({offset:l?.[f+1]?.[0]??null,length:u?.length??0,string:u??"",name:null}))}]}catch{return[null]}}case"capture":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"",a=new RegExp(i,o),c=t.match(a);return!c||!c.groups?[{}]:[c.groups]}catch{return[null]}}case"sub":{if(typeof t!="string"||r.length<2)return[null];let s=k(t,r[0],n),i=k(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let c=r.length>2?String(k(t,r[2],n)[0]):"";return[t.replace(new RegExp(o,c),a)]}catch{return[t]}}case"gsub":{if(typeof t!="string"||r.length<2)return[null];let s=k(t,r[0],n),i=k(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let c=r.length>2?String(k(t,r[2],n)[0]):"g",l=c.includes("g")?c:`${c}g`;return[t.replace(new RegExp(o,l),a)]}catch{return[t]}}case"ascii_downcase":return typeof t=="string"?[t.toLowerCase()]:[null];case"ascii_upcase":return typeof t=="string"?[t.toUpperCase()]:[null];case"ltrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=k(t,r[0],n),i=String(s[0]);return[t.startsWith(i)?t.slice(i.length):t]}case"rtrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=k(t,r[0],n),i=String(s[0]);return[t.endsWith(i)?t.slice(0,-i.length):t]}case"startswith":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n);return[t.startsWith(String(s[0]))]}case"endswith":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n);return[t.endsWith(String(s[0]))]}case"index":{if(r.length===0)return[null];let i=k(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.indexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){let o=t.findIndex(a=>Pt(a,i));return[o>=0?o:null]}return[null]}case"rindex":{if(r.length===0)return[null];let i=k(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.lastIndexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){for(let o=t.length-1;o>=0;o--)if(Pt(t[o],i))return[o];return[null]}return[null]}case"indices":{if(r.length===0)return[[]];let i=k(t,r[0],n)[0],o=[];if(typeof t=="string"&&typeof i=="string"){let a=t.indexOf(i);for(;a!==-1;)o.push(a),a=t.indexOf(i,a+1)}else if(Array.isArray(t))for(let a=0;a<t.length;a++)Pt(t[a],i)&&o.push(a);return[o]}case"floor":return typeof t=="number"?[Math.floor(t)]:[null];case"ceil":return typeof t=="number"?[Math.ceil(t)]:[null];case"round":return typeof t=="number"?[Math.round(t)]:[null];case"sqrt":return typeof t=="number"?[Math.sqrt(t)]:[null];case"fabs":case"abs":return typeof t=="number"?[Math.abs(t)]:[null];case"log":return typeof t=="number"?[Math.log(t)]:[null];case"log10":return typeof t=="number"?[Math.log10(t)]:[null];case"log2":return typeof t=="number"?[Math.log2(t)]:[null];case"exp":return typeof t=="number"?[Math.exp(t)]:[null];case"exp10":return typeof t=="number"?[10**t]:[null];case"exp2":return typeof t=="number"?[2**t]:[null];case"pow":{if(typeof t!="number"||r.length===0)return[null];let i=k(t,r[0],n)[0];return[t**i]}case"sin":return typeof t=="number"?[Math.sin(t)]:[null];case"cos":return typeof t=="number"?[Math.cos(t)]:[null];case"tan":return typeof t=="number"?[Math.tan(t)]:[null];case"asin":return typeof t=="number"?[Math.asin(t)]:[null];case"acos":return typeof t=="number"?[Math.acos(t)]:[null];case"atan":return typeof t=="number"?[Math.atan(t)]:[null];case"tostring":return typeof t=="string"?[t]:[JSON.stringify(t)];case"tonumber":if(typeof t=="number")return[t];if(typeof t=="string"){let s=Number(t);return[Number.isNaN(s)?null:s]}return[null];case"infinite":return[!Number.isFinite(t)];case"nan":return[Number.isNaN(t)];case"isinfinite":return[typeof t=="number"&&!Number.isFinite(t)];case"isnan":return[typeof t=="number"&&Number.isNaN(t)];case"isnormal":return[typeof t=="number"&&Number.isFinite(t)&&t!==0];case"isfinite":return[typeof t=="number"&&Number.isFinite(t)];case"numbers":return typeof t=="number"?[t]:[];case"strings":return typeof t=="string"?[t]:[];case"booleans":return typeof t=="boolean"?[t]:[];case"nulls":return t===null?[t]:[];case"arrays":return Array.isArray(t)?[t]:[];case"objects":return t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"iterables":return Array.isArray(t)||t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"scalars":return!Array.isArray(t)&&!(t&&typeof t=="object")?[t]:[];case"now":return[Date.now()/1e3];case"env":return[{}];case"recurse":{if(r.length===0){let a=[],c=l=>{if(a.push(l),Array.isArray(l))for(let u of l)c(u);else if(l&&typeof l=="object")for(let u of Object.keys(l))c(l[u])};return c(t),a}let s=[],i=new Set,o=a=>{let c=JSON.stringify(a);if(i.has(c))return;i.add(c),s.push(a);let l=k(a,r[0],n);for(let u of l)u!=null&&o(u)};return o(t),s}case"recurse_down":return ja(t,"recurse",r,n);case"walk":{if(r.length===0)return[t];let s=new WeakSet,i=o=>{if(o&&typeof o=="object"){if(s.has(o))return o;s.add(o)}let a;if(Array.isArray(o))a=o.map(i);else if(o&&typeof o=="object"){let l={};for(let[u,f]of Object.entries(o))l[u]=i(f);a=l}else a=o;return k(a,r[0],n)[0]};return[i(t)]}case"transpose":{if(!Array.isArray(t))return[null];if(t.length===0)return[[]];let s=Math.max(...t.map(o=>Array.isArray(o)?o.length:0)),i=[];for(let o=0;o<s;o++)i.push(t.map(a=>Array.isArray(a)?a[o]:null));return[i]}case"ascii":return typeof t=="string"&&t.length>0?[t.charCodeAt(0)]:[null];case"explode":return typeof t=="string"?[Array.from(t).map(s=>s.codePointAt(0))]:[null];case"implode":return Array.isArray(t)?[String.fromCodePoint(...t)]:[null];case"tojson":case"tojsonstream":return[JSON.stringify(t)];case"fromjson":{if(typeof t=="string")try{return[JSON.parse(t)]}catch{return[null]}return[null]}case"limit":{if(r.length<2)return[];let i=k(t,r[0],n)[0];return k(t,r[1],n).slice(0,i)}case"until":{if(r.length<2)return[t];let s=t,i=n.limits.maxIterations;for(let o=0;o<i;o++){if(k(s,r[0],n).some(ge))return[s];let c=k(s,r[1],n);if(c.length===0)return[s];s=c[0]}throw new W(`jq until: too many iterations (${i}), increase executionLimits.maxJqIterations`,"iterations")}case"while":{if(r.length<2)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o&&k(i,r[0],n).some(ge);a++){s.push(i);let l=k(i,r[1],n);if(l.length===0)break;i=l[0]}if(s.length>=o)throw new W(`jq while: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"repeat":{if(r.length===0)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o;a++){s.push(i);let c=k(i,r[0],n);if(c.length===0)break;i=c[0]}if(s.length>=o)throw new W(`jq repeat: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"debug":return[t];case"input_line_number":return[1];default:throw new Error(`Unknown function: ${e}`)}}function pt(t,e){let r=i=>i===null?0:typeof i=="boolean"?1:typeof i=="number"?2:typeof i=="string"?3:Array.isArray(i)?4:typeof i=="object"?5:6,n=r(t),s=r(e);if(n!==s)return n-s;if(typeof t=="number"&&typeof e=="number")return t-e;if(typeof t=="string"&&typeof e=="string")return t.localeCompare(e);if(typeof t=="boolean"&&typeof e=="boolean")return(t?1:0)-(e?1:0);if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<Math.min(t.length,e.length);i++){let o=pt(t[i],e[i]);if(o!==0)return o}return t.length-e.length}return 0}function Dr(t,e){if(Pt(t,e))return!0;if(Array.isArray(t)&&Array.isArray(e))return e.every(r=>t.some(n=>Dr(n,r)));if(t&&e&&typeof t=="object"&&typeof e=="object"&&!Array.isArray(t)&&!Array.isArray(e)){let r=t,n=e;return Object.keys(n).every(s=>s in r&&Dr(r[s],n[s]))}return!1}function ns(t,e,r){if(e.length===0)return r;let[n,...s]=e;if(typeof n=="number"){let o=Array.isArray(t)?[...t]:[];for(;o.length<=n;)o.push(null);return o[n]=ns(o[n],s,r),o}let i=t&&typeof t=="object"&&!Array.isArray(t)?{...t}:{};return i[n]=ns(i[n],s,r),i}function ss(t,e){if(e.length===0)return null;if(e.length===1){let s=e[0];if(Array.isArray(t)&&typeof s=="number"){let i=[...t];return i.splice(s,1),i}if(t&&typeof t=="object"&&!Array.isArray(t)){let i={...t};return delete i[String(s)],i}return t}let[r,...n]=e;if(Array.isArray(t)&&typeof r=="number"){let s=[...t];return s[r]=ss(s[r],n),s}if(t&&typeof t=="object"&&!Array.isArray(t)){let s={...t};return s[String(r)]=ss(s[String(r)],n),s}return t}function Ph(t,e,r,n,s){k(t,e,r).length>0&&s.push(n)}var Ih,za=A(()=>{"use strict";J();Ih=1e4});function Ga(t){let e=[],r=0,n=(l=0)=>t[r+l],s=()=>t[r++],i=()=>r>=t.length,o=l=>l>="0"&&l<="9",a=l=>l>="a"&&l<="z"||l>="A"&&l<="Z"||l==="_",c=l=>a(l)||o(l);for(;!i();){let l=r,u=s();if(!(u===" "||u===" "||u===`
356
+ `),a=[];for(let u of o){let f=u.trim();f&&!f.startsWith("#")&&a.push(f)}let c=a.join("; ");return await n.exec(c,{env:s,cwd:n.cwd})}var qa,Lh,Mh,ss=A(()=>{"use strict";_();qa={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},Lh={name:"bash",async execute(t,e){if(I(t))return N(qa);if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"bash",o=t.slice(3);return Tr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Tr(i,r,n,e)}catch{return{stdout:"",stderr:`bash: ${r}: No such file or directory
357
+ `,exitCode:127}}}},Mh={name:"sh",async execute(t,e){if(I(t))return N({...qa,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let s=t[1],i=t[2]||"sh",o=t.slice(3);return Tr(s,i,o,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let r=t[0],n=t.slice(1);try{let s=e.fs.resolvePath(e.cwd,r),i=await e.fs.readFile(s);return Tr(i,r,n,e)}catch{return{stdout:"",stderr:`sh: ${r}: No such file or directory
358
+ `,exitCode:127}}}}});function Bh(t){return{vars:new Map,limits:{maxIterations:t?.maxIterations??_h}}}function is(t,e,r){let n=new Map(t.vars);return n.set(e,r),{vars:n,limits:t.limits}}function k(t,e,r){let n=r&&"vars"in r?r:Bh(r?.limits);switch(e.type){case"Identity":return[t];case"Field":return(e.base?k(t,e.base,n):[t]).flatMap(i=>i&&typeof i=="object"&&!Array.isArray(i)?[i[e.name]]:[null]);case"Index":return(e.base?k(t,e.base,n):[t]).flatMap(i=>k(i,e.index,n).flatMap(a=>{if(typeof a=="number"&&Array.isArray(i)){let c=a<0?i.length+a:a;return c>=0&&c<i.length?[i[c]]:[null]}return typeof a=="string"&&i&&typeof i=="object"&&!Array.isArray(i)?[i[a]]:[null]}));case"Slice":return(e.base?k(t,e.base,n):[t]).flatMap(i=>{if(!Array.isArray(i)&&typeof i!="string")return[null];let o=i.length,a=e.start?k(t,e.start,n):[0],c=e.end?k(t,e.end,n):[o];return a.flatMap(l=>c.map(u=>{let f=Va(l,o),p=Va(u,o);return Array.isArray(i),i.slice(f,p)}))});case"Iterate":return(e.base?k(t,e.base,n):[t]).flatMap(i=>Array.isArray(i)?i:i&&typeof i=="object"?Object.values(i):[]);case"Pipe":return k(t,e.left,n).flatMap(i=>k(i,e.right,n));case"Comma":{let s=k(t,e.left,n),i=k(t,e.right,n);return[...s,...i]}case"Literal":return[e.value];case"Array":return e.elements?[k(t,e.elements,n)]:[[]];case"Object":{let s=[{}];for(let i of e.entries){let o=typeof i.key=="string"?[i.key]:k(t,i.key,n),a=k(t,i.value,n),c=[];for(let l of s)for(let u of o)for(let f of a)c.push({...l,[String(u)]:f});s.length=0,s.push(...c)}return s}case"Paren":return k(t,e.expr,n);case"BinaryOp":return zh(t,e.op,e.left,e.right,n);case"UnaryOp":return k(t,e.operand,n).map(i=>e.op==="-"?typeof i=="number"?-i:null:e.op==="not"?!ge(i):null);case"Cond":return k(t,e.cond,n).flatMap(i=>{if(ge(i))return k(t,e.then,n);for(let o of e.elifs)if(k(t,o.cond,n).some(ge))return k(t,o.then,n);return e.else?k(t,e.else,n):[null]});case"Try":try{return k(t,e.body,n)}catch{return e.catch?k(t,e.catch,n):[]}case"Call":return Za(t,e.name,e.args,n);case"VarBind":return k(t,e.value,n).flatMap(i=>{let o=is(n,e.name,i);return k(t,e.body,o)});case"VarRef":{let s=n.vars.get(e.name);return s!==void 0?[s]:[null]}case"Recurse":{let s=[],i=new WeakSet,o=a=>{if(a&&typeof a=="object"){if(i.has(a))return;i.add(a)}if(s.push(a),Array.isArray(a))for(let c of a)o(c);else if(a&&typeof a=="object")for(let c of Object.keys(a))o(a[c])};return o(t),s}case"Optional":try{return k(t,e.expr,n)}catch{return[]}case"StringInterp":return[e.parts.map(i=>typeof i=="string"?i:k(t,i,n).map(a=>typeof a=="string"?a:JSON.stringify(a)).join("")).join("")];case"UpdateOp":return[Wh(t,e.path,e.op,e.value,n)];case"Reduce":{let s=k(t,e.expr,n),i=k(t,e.init,n)[0];for(let o of s){let a=is(n,e.varName,o);i=k(i,e.update,a)[0]}return[i]}case"Foreach":{let s=k(t,e.expr,n),i=k(t,e.init,n)[0],o=[];for(let a of s){let c=is(n,e.varName,a);if(i=k(i,e.update,c)[0],e.extract){let l=k(i,e.extract,c);o.push(...l)}else o.push(i)}return o}default:{let s=e;throw new Error(`Unknown AST node type: ${s.type}`)}}}function Va(t,e){return t<0?Math.max(0,e+t):Math.min(t,e)}function Wh(t,e,r,n,s){function i(c,l){switch(r){case"=":return l;case"|=":return k(c,n,s)[0]??null;case"+=":return typeof c=="number"&&typeof l=="number"||typeof c=="string"&&typeof l=="string"?c+l:Array.isArray(c)&&Array.isArray(l)?[...c,...l]:c&&l&&typeof c=="object"&&typeof l=="object"?{...c,...l}:l;case"-=":return typeof c=="number"&&typeof l=="number"?c-l:c;case"*=":return typeof c=="number"&&typeof l=="number"?c*l:c;case"/=":return typeof c=="number"&&typeof l=="number"?c/l:c;case"%=":return typeof c=="number"&&typeof l=="number"?c%l:c;case"//=":return c===null||c===!1?l:c;default:return l}}function o(c,l,u){switch(l.type){case"Identity":return u(c);case"Field":{if(l.base)return o(c,l.base,f=>{if(f&&typeof f=="object"&&!Array.isArray(f)){let p={...f};return p[l.name]=u(p[l.name]),p}return f});if(c&&typeof c=="object"&&!Array.isArray(c)){let f={...c};return f[l.name]=u(f[l.name]),f}return c}case"Index":{let p=k(t,l.index,s)[0];if(l.base)return o(c,l.base,d=>{if(typeof p=="number"&&Array.isArray(d)){let h=[...d],g=p<0?h.length+p:p;return g>=0&&g<h.length&&(h[g]=u(h[g])),h}if(typeof p=="string"&&d&&typeof d=="object"&&!Array.isArray(d)){let h={...d};return h[p]=u(h[p]),h}return d});if(typeof p=="number"&&Array.isArray(c)){let d=[...c],h=p<0?d.length+p:p;return h>=0&&h<d.length&&(d[h]=u(d[h])),d}if(typeof p=="string"&&c&&typeof c=="object"&&!Array.isArray(c)){let d={...c};return d[p]=u(d[p]),d}return c}case"Iterate":{let f=p=>{if(Array.isArray(p))return p.map(d=>u(d));if(p&&typeof p=="object"){let d={};for(let[h,g]of Object.entries(p))d[h]=u(g);return d}return p};return l.base?o(c,l.base,f):f(c)}case"Pipe":{let f=o(c,l.left,p=>p);return o(f,l.right,u)}default:return u(c)}}return o(t,e,c=>{if(r==="|=")return i(c,c);let l=k(t,n,s);return i(c,l[0]??null)})}function Uh(t,e,r){function n(s,i){switch(i.type){case"Identity":return null;case"Field":{if(s&&typeof s=="object"&&!Array.isArray(s)){let o={...s};return delete o[i.name],o}return s}case"Index":{let a=k(t,i.index,r)[0];if(typeof a=="number"&&Array.isArray(s)){let c=[...s],l=a<0?c.length+a:a;return l>=0&&l<c.length&&c.splice(l,1),c}if(typeof a=="string"&&s&&typeof s=="object"&&!Array.isArray(s)){let c={...s};return delete c[a],c}return s}case"Iterate":return Array.isArray(s)?[]:s&&typeof s=="object"?{}:s;default:return s}}return n(t,e)}function ge(t){return t!==null&&t!==!1}function zh(t,e,r,n,s){if(e==="and")return k(t,r,s).flatMap(c=>ge(c)?k(t,n,s).map(u=>ge(u)):[!1]);if(e==="or")return k(t,r,s).flatMap(c=>ge(c)?[!0]:k(t,n,s).map(u=>ge(u)));if(e==="//"){let c=k(t,r,s).filter(l=>l!=null&&l!==!1);return c.length>0?c:k(t,n,s)}let i=k(t,r,s),o=k(t,n,s);return i.flatMap(a=>o.map(c=>{switch(e){case"+":return typeof a=="number"&&typeof c=="number"||typeof a=="string"&&typeof c=="string"?a+c:Array.isArray(a)&&Array.isArray(c)?[...a,...c]:a&&c&&typeof a=="object"&&typeof c=="object"&&!Array.isArray(a)&&!Array.isArray(c)?{...a,...c}:null;case"-":if(typeof a=="number"&&typeof c=="number")return a-c;if(Array.isArray(a)&&Array.isArray(c)){let l=new Set(c.map(u=>JSON.stringify(u)));return a.filter(u=>!l.has(JSON.stringify(u)))}return null;case"*":return typeof a=="number"&&typeof c=="number"?a*c:typeof a=="string"&&typeof c=="number"?a.repeat(c):a&&c&&typeof a=="object"&&typeof c=="object"&&!Array.isArray(a)&&!Array.isArray(c)?Ka(a,c):null;case"/":return typeof a=="number"&&typeof c=="number"?a/c:typeof a=="string"&&typeof c=="string"?a.split(c):null;case"%":return typeof a=="number"&&typeof c=="number"?a%c:null;case"==":return Pt(a,c);case"!=":return!Pt(a,c);case"<":return Fr(a,c)<0;case"<=":return Fr(a,c)<=0;case">":return Fr(a,c)>0;case">=":return Fr(a,c)>=0;default:return null}}))}function Pt(t,e){return JSON.stringify(t)===JSON.stringify(e)}function Fr(t,e){return typeof t=="number"&&typeof e=="number"?t-e:typeof t=="string"&&typeof e=="string"?t.localeCompare(e):0}function Ka(t,e){let r={...t};for(let n of Object.keys(e))n in r&&r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])?r[n]=Ka(r[n],e[n]):r[n]=e[n];return r}function Za(t,e,r,n){switch(e){case"keys":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t).sort()]:[null];case"keys_unsorted":return Array.isArray(t)?[t.map((s,i)=>i)]:t&&typeof t=="object"?[Object.keys(t)]:[null];case"values":return Array.isArray(t)?[t]:t&&typeof t=="object"?[Object.values(t)]:[null];case"length":return typeof t=="string"?[t.length]:Array.isArray(t)?[t.length]:t&&typeof t=="object"?[Object.keys(t).length]:t===null?[0]:[null];case"utf8bytelength":return typeof t=="string"?[new TextEncoder().encode(t).length]:[null];case"type":return t===null?["null"]:Array.isArray(t)?["array"]:typeof t=="boolean"?["boolean"]:typeof t=="number"?["number"]:typeof t=="string"?["string"]:typeof t=="object"?["object"]:["null"];case"empty":return[];case"error":{let s=r.length>0?k(t,r[0],n)[0]:t;throw new Error(String(s))}case"not":return[!ge(t)];case"null":return[null];case"true":return[!0];case"false":return[!1];case"first":if(r.length>0){let s=k(t,r[0],n);return s.length>0?[s[0]]:[]}return Array.isArray(t)&&t.length>0?[t[0]]:[null];case"last":if(r.length>0){let s=k(t,r[0],n);return s.length>0?[s[s.length-1]]:[]}return Array.isArray(t)&&t.length>0?[t[t.length-1]]:[null];case"nth":{if(r.length<1)return[null];let i=k(t,r[0],n)[0];if(r.length>1){let o=k(t,r[1],n);return i>=0&&i<o.length?[o[i]]:[]}return Array.isArray(t)?i>=0&&i<t.length?[t[i]]:[null]:[null]}case"range":{if(r.length===0)return[];let s=k(t,r[0],n);if(r.length===1){let l=s[0];return Array.from({length:l},(u,f)=>f)}let i=k(t,r[1],n),o=s[0],a=i[0],c=[];for(let l=o;l<a;l++)c.push(l);return c}case"reverse":return Array.isArray(t)?[[...t].reverse()]:typeof t=="string"?[t.split("").reverse().join("")]:[null];case"sort":return Array.isArray(t)?[[...t].sort(pt)]:[null];case"sort_by":return!Array.isArray(t)||r.length===0?[null]:[[...t].sort((i,o)=>{let a=k(i,r[0],n)[0],c=k(o,r[0],n)[0];return pt(a,c)})];case"unique":if(Array.isArray(t)){let s=new Set,i=[];for(let o of t){let a=JSON.stringify(o);s.has(a)||(s.add(a),i.push(o))}return[i]}return[null];case"unique_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Set,i=[];for(let o of t){let a=JSON.stringify(k(o,r[0],n)[0]);s.has(a)||(s.add(a),i.push(o))}return[i]}case"group_by":{if(!Array.isArray(t)||r.length===0)return[null];let s=new Map;for(let i of t){let o=JSON.stringify(k(i,r[0],n)[0]);s.has(o)||s.set(o,[]),s.get(o)?.push(i)}return[[...s.values()]]}case"max":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>pt(s,i)>0?s:i)]:[null];case"max_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=k(s,r[0],n)[0],a=k(i,r[0],n)[0];return pt(o,a)>0?s:i})];case"min":return Array.isArray(t)&&t.length>0?[t.reduce((s,i)=>pt(s,i)<0?s:i)]:[null];case"min_by":return!Array.isArray(t)||t.length===0||r.length===0?[null]:[t.reduce((s,i)=>{let o=k(s,r[0],n)[0],a=k(i,r[0],n)[0];return pt(o,a)<0?s:i})];case"flatten":{if(!Array.isArray(t))return[null];let s=r.length>0?k(t,r[0],n)[0]:Number.POSITIVE_INFINITY;return[t.flat(s)]}case"add":if(Array.isArray(t)){if(t.length===0)return[null];if(t.every(s=>typeof s=="number"))return[t.reduce((s,i)=>s+i,0)];if(t.every(s=>typeof s=="string"))return[t.join("")];if(t.every(s=>Array.isArray(s)))return[t.flat()];if(t.every(s=>s&&typeof s=="object"&&!Array.isArray(s)))return[Object.assign({},...t)]}return[null];case"any":return r.length>0?Array.isArray(t)?[t.some(s=>ge(k(s,r[0],n)[0]))]:[!1]:Array.isArray(t)?[t.some(ge)]:[!1];case"all":return r.length>0?Array.isArray(t)?[t.every(s=>ge(k(s,r[0],n)[0]))]:[!0]:Array.isArray(t)?[t.every(ge)]:[!0];case"select":return r.length===0?[t]:k(t,r[0],n).some(ge)?[t]:[];case"map":return r.length===0||!Array.isArray(t)?[null]:[t.flatMap(i=>k(i,r[0],n))];case"map_values":{if(r.length===0)return[null];if(Array.isArray(t))return[t.flatMap(s=>k(s,r[0],n))];if(t&&typeof t=="object"){let s={};for(let[i,o]of Object.entries(t)){let a=k(o,r[0],n);a.length>0&&(s[i]=a[0])}return[s]}return[null]}case"has":{if(r.length===0)return[!1];let i=k(t,r[0],n)[0];return Array.isArray(t)&&typeof i=="number"?[i>=0&&i<t.length]:t&&typeof t=="object"&&typeof i=="string"?[i in t]:[!1]}case"in":{if(r.length===0)return[!1];let i=k(t,r[0],n)[0];return Array.isArray(i)&&typeof t=="number"?[t>=0&&t<i.length]:i&&typeof i=="object"&&typeof t=="string"?[t in i]:[!1]}case"contains":{if(r.length===0)return[!1];let s=k(t,r[0],n);return[Dr(t,s[0])]}case"inside":{if(r.length===0)return[!1];let s=k(t,r[0],n);return[Dr(s[0],t)]}case"getpath":{if(r.length===0)return[null];let i=k(t,r[0],n)[0],o=t;for(let a of i){if(o==null)return[null];if(Array.isArray(o)&&typeof a=="number")o=o[a];else if(typeof o=="object"&&typeof a=="string")o=o[a];else return[null]}return[o]}case"setpath":{if(r.length<2)return[null];let i=k(t,r[0],n)[0],a=k(t,r[1],n)[0];return[os(t,i,a)]}case"delpaths":{if(r.length===0)return[t];let i=k(t,r[0],n)[0],o=t;for(let a of i.sort((c,l)=>l.length-c.length))o=as(o,a);return[o]}case"path":{if(r.length===0)return[[]];let s=[];return Hh(t,r[0],n,[],s),s}case"del":return r.length===0?[t]:[Uh(t,r[0],n)];case"paths":{let s=[],i=(o,a)=>{if(o&&typeof o=="object")if(Array.isArray(o))for(let c=0;c<o.length;c++)s.push([...a,c]),i(o[c],[...a,c]);else for(let c of Object.keys(o))s.push([...a,c]),i(o[c],[...a,c])};return i(t,[]),r.length>0?s.filter(o=>{let a=t;for(let l of o)if(Array.isArray(a)&&typeof l=="number")a=a[l];else if(a&&typeof a=="object"&&typeof l=="string")a=a[l];else return!1;return k(a,r[0],n).some(ge)}):s}case"leaf_paths":{let s=[],i=(o,a)=>{if(o===null||typeof o!="object")s.push(a);else if(Array.isArray(o))for(let c=0;c<o.length;c++)i(o[c],[...a,c]);else for(let c of Object.keys(o))i(o[c],[...a,c])};return i(t,[]),[s]}case"to_entries":return t&&typeof t=="object"&&!Array.isArray(t)?[Object.entries(t).map(([s,i])=>({key:s,value:i}))]:[null];case"from_entries":if(Array.isArray(t)){let s={};for(let i of t)if(i&&typeof i=="object"){let o=i,a=o.key??o.name??o.k,c=o.value??o.v;a!==void 0&&(s[String(a)]=c)}return[s]}return[null];case"with_entries":{if(r.length===0)return[t];if(t&&typeof t=="object"&&!Array.isArray(t)){let i=Object.entries(t).map(([a,c])=>({key:a,value:c})).flatMap(a=>k(a,r[0],n)),o={};for(let a of i)if(a&&typeof a=="object"){let c=a,l=c.key??c.name??c.k,u=c.value??c.v;l!==void 0&&(o[String(l)]=u)}return[o]}return[null]}case"join":{if(!Array.isArray(t))return[null];let s=r.length>0?k(t,r[0],n):[""],i=String(s[0]);return[t.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(i)]}case"split":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);return[t.split(i)]}case"test":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"";return[new RegExp(i,o).test(t)]}catch{return[!1]}}case"match":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"",c=new RegExp(i,`${o}d`).exec(t);if(!c)return[];let l=c.indices;return[{offset:c.index,length:c[0].length,string:c[0],captures:c.slice(1).map((u,f)=>({offset:l?.[f+1]?.[0]??null,length:u?.length??0,string:u??"",name:null}))}]}catch{return[null]}}case"capture":{if(typeof t!="string"||r.length===0)return[null];let s=k(t,r[0],n),i=String(s[0]);try{let o=r.length>1?String(k(t,r[1],n)[0]):"",a=new RegExp(i,o),c=t.match(a);return!c||!c.groups?[{}]:[c.groups]}catch{return[null]}}case"sub":{if(typeof t!="string"||r.length<2)return[null];let s=k(t,r[0],n),i=k(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let c=r.length>2?String(k(t,r[2],n)[0]):"";return[t.replace(new RegExp(o,c),a)]}catch{return[t]}}case"gsub":{if(typeof t!="string"||r.length<2)return[null];let s=k(t,r[0],n),i=k(t,r[1],n),o=String(s[0]),a=String(i[0]);try{let c=r.length>2?String(k(t,r[2],n)[0]):"g",l=c.includes("g")?c:`${c}g`;return[t.replace(new RegExp(o,l),a)]}catch{return[t]}}case"ascii_downcase":return typeof t=="string"?[t.toLowerCase()]:[null];case"ascii_upcase":return typeof t=="string"?[t.toUpperCase()]:[null];case"ltrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=k(t,r[0],n),i=String(s[0]);return[t.startsWith(i)?t.slice(i.length):t]}case"rtrimstr":{if(typeof t!="string"||r.length===0)return[t];let s=k(t,r[0],n),i=String(s[0]);return[t.endsWith(i)?t.slice(0,-i.length):t]}case"startswith":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n);return[t.startsWith(String(s[0]))]}case"endswith":{if(typeof t!="string"||r.length===0)return[!1];let s=k(t,r[0],n);return[t.endsWith(String(s[0]))]}case"index":{if(r.length===0)return[null];let i=k(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.indexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){let o=t.findIndex(a=>Pt(a,i));return[o>=0?o:null]}return[null]}case"rindex":{if(r.length===0)return[null];let i=k(t,r[0],n)[0];if(typeof t=="string"&&typeof i=="string"){let o=t.lastIndexOf(i);return[o>=0?o:null]}if(Array.isArray(t)){for(let o=t.length-1;o>=0;o--)if(Pt(t[o],i))return[o];return[null]}return[null]}case"indices":{if(r.length===0)return[[]];let i=k(t,r[0],n)[0],o=[];if(typeof t=="string"&&typeof i=="string"){let a=t.indexOf(i);for(;a!==-1;)o.push(a),a=t.indexOf(i,a+1)}else if(Array.isArray(t))for(let a=0;a<t.length;a++)Pt(t[a],i)&&o.push(a);return[o]}case"floor":return typeof t=="number"?[Math.floor(t)]:[null];case"ceil":return typeof t=="number"?[Math.ceil(t)]:[null];case"round":return typeof t=="number"?[Math.round(t)]:[null];case"sqrt":return typeof t=="number"?[Math.sqrt(t)]:[null];case"fabs":case"abs":return typeof t=="number"?[Math.abs(t)]:[null];case"log":return typeof t=="number"?[Math.log(t)]:[null];case"log10":return typeof t=="number"?[Math.log10(t)]:[null];case"log2":return typeof t=="number"?[Math.log2(t)]:[null];case"exp":return typeof t=="number"?[Math.exp(t)]:[null];case"exp10":return typeof t=="number"?[10**t]:[null];case"exp2":return typeof t=="number"?[2**t]:[null];case"pow":{if(typeof t!="number"||r.length===0)return[null];let i=k(t,r[0],n)[0];return[t**i]}case"sin":return typeof t=="number"?[Math.sin(t)]:[null];case"cos":return typeof t=="number"?[Math.cos(t)]:[null];case"tan":return typeof t=="number"?[Math.tan(t)]:[null];case"asin":return typeof t=="number"?[Math.asin(t)]:[null];case"acos":return typeof t=="number"?[Math.acos(t)]:[null];case"atan":return typeof t=="number"?[Math.atan(t)]:[null];case"tostring":return typeof t=="string"?[t]:[JSON.stringify(t)];case"tonumber":if(typeof t=="number")return[t];if(typeof t=="string"){let s=Number(t);return[Number.isNaN(s)?null:s]}return[null];case"infinite":return[!Number.isFinite(t)];case"nan":return[Number.isNaN(t)];case"isinfinite":return[typeof t=="number"&&!Number.isFinite(t)];case"isnan":return[typeof t=="number"&&Number.isNaN(t)];case"isnormal":return[typeof t=="number"&&Number.isFinite(t)&&t!==0];case"isfinite":return[typeof t=="number"&&Number.isFinite(t)];case"numbers":return typeof t=="number"?[t]:[];case"strings":return typeof t=="string"?[t]:[];case"booleans":return typeof t=="boolean"?[t]:[];case"nulls":return t===null?[t]:[];case"arrays":return Array.isArray(t)?[t]:[];case"objects":return t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"iterables":return Array.isArray(t)||t&&typeof t=="object"&&!Array.isArray(t)?[t]:[];case"scalars":return!Array.isArray(t)&&!(t&&typeof t=="object")?[t]:[];case"now":return[Date.now()/1e3];case"env":return[{}];case"recurse":{if(r.length===0){let a=[],c=l=>{if(a.push(l),Array.isArray(l))for(let u of l)c(u);else if(l&&typeof l=="object")for(let u of Object.keys(l))c(l[u])};return c(t),a}let s=[],i=new Set,o=a=>{let c=JSON.stringify(a);if(i.has(c))return;i.add(c),s.push(a);let l=k(a,r[0],n);for(let u of l)u!=null&&o(u)};return o(t),s}case"recurse_down":return Za(t,"recurse",r,n);case"walk":{if(r.length===0)return[t];let s=new WeakSet,i=o=>{if(o&&typeof o=="object"){if(s.has(o))return o;s.add(o)}let a;if(Array.isArray(o))a=o.map(i);else if(o&&typeof o=="object"){let l={};for(let[u,f]of Object.entries(o))l[u]=i(f);a=l}else a=o;return k(a,r[0],n)[0]};return[i(t)]}case"transpose":{if(!Array.isArray(t))return[null];if(t.length===0)return[[]];let s=Math.max(...t.map(o=>Array.isArray(o)?o.length:0)),i=[];for(let o=0;o<s;o++)i.push(t.map(a=>Array.isArray(a)?a[o]:null));return[i]}case"ascii":return typeof t=="string"&&t.length>0?[t.charCodeAt(0)]:[null];case"explode":return typeof t=="string"?[Array.from(t).map(s=>s.codePointAt(0))]:[null];case"implode":return Array.isArray(t)?[String.fromCodePoint(...t)]:[null];case"tojson":case"tojsonstream":return[JSON.stringify(t)];case"fromjson":{if(typeof t=="string")try{return[JSON.parse(t)]}catch{return[null]}return[null]}case"limit":{if(r.length<2)return[];let i=k(t,r[0],n)[0];return k(t,r[1],n).slice(0,i)}case"until":{if(r.length<2)return[t];let s=t,i=n.limits.maxIterations;for(let o=0;o<i;o++){if(k(s,r[0],n).some(ge))return[s];let c=k(s,r[1],n);if(c.length===0)return[s];s=c[0]}throw new W(`jq until: too many iterations (${i}), increase executionLimits.maxJqIterations`,"iterations")}case"while":{if(r.length<2)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o&&k(i,r[0],n).some(ge);a++){s.push(i);let l=k(i,r[1],n);if(l.length===0)break;i=l[0]}if(s.length>=o)throw new W(`jq while: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"repeat":{if(r.length===0)return[t];let s=[],i=t,o=n.limits.maxIterations;for(let a=0;a<o;a++){s.push(i);let c=k(i,r[0],n);if(c.length===0)break;i=c[0]}if(s.length>=o)throw new W(`jq repeat: too many iterations (${o}), increase executionLimits.maxJqIterations`,"iterations");return s}case"debug":return[t];case"input_line_number":return[1];default:throw new Error(`Unknown function: ${e}`)}}function pt(t,e){let r=i=>i===null?0:typeof i=="boolean"?1:typeof i=="number"?2:typeof i=="string"?3:Array.isArray(i)?4:typeof i=="object"?5:6,n=r(t),s=r(e);if(n!==s)return n-s;if(typeof t=="number"&&typeof e=="number")return t-e;if(typeof t=="string"&&typeof e=="string")return t.localeCompare(e);if(typeof t=="boolean"&&typeof e=="boolean")return(t?1:0)-(e?1:0);if(Array.isArray(t)&&Array.isArray(e)){for(let i=0;i<Math.min(t.length,e.length);i++){let o=pt(t[i],e[i]);if(o!==0)return o}return t.length-e.length}return 0}function Dr(t,e){if(Pt(t,e))return!0;if(Array.isArray(t)&&Array.isArray(e))return e.every(r=>t.some(n=>Dr(n,r)));if(t&&e&&typeof t=="object"&&typeof e=="object"&&!Array.isArray(t)&&!Array.isArray(e)){let r=t,n=e;return Object.keys(n).every(s=>s in r&&Dr(r[s],n[s]))}return!1}function os(t,e,r){if(e.length===0)return r;let[n,...s]=e;if(typeof n=="number"){let o=Array.isArray(t)?[...t]:[];for(;o.length<=n;)o.push(null);return o[n]=os(o[n],s,r),o}let i=t&&typeof t=="object"&&!Array.isArray(t)?{...t}:{};return i[n]=os(i[n],s,r),i}function as(t,e){if(e.length===0)return null;if(e.length===1){let s=e[0];if(Array.isArray(t)&&typeof s=="number"){let i=[...t];return i.splice(s,1),i}if(t&&typeof t=="object"&&!Array.isArray(t)){let i={...t};return delete i[String(s)],i}return t}let[r,...n]=e;if(Array.isArray(t)&&typeof r=="number"){let s=[...t];return s[r]=as(s[r],n),s}if(t&&typeof t=="object"&&!Array.isArray(t)){let s={...t};return s[String(r)]=as(s[String(r)],n),s}return t}function Hh(t,e,r,n,s){k(t,e,r).length>0&&s.push(n)}var _h,Qa=A(()=>{"use strict";J();_h=1e4});function Xa(t){let e=[],r=0,n=(l=0)=>t[r+l],s=()=>t[r++],i=()=>r>=t.length,o=l=>l>="0"&&l<="9",a=l=>l>="a"&&l<="z"||l>="A"&&l<="Z"||l==="_",c=l=>a(l)||o(l);for(;!i();){let l=r,u=s();if(!(u===" "||u===" "||u===`
359
359
  `||u==="\r")){if(u==="#"){for(;!i()&&n()!==`
360
360
  `;)s();continue}if(u==="."&&n()==="."){s(),e.push({type:"DOTDOT",pos:l});continue}if(u==="="&&n()==="="){s(),e.push({type:"EQ",pos:l});continue}if(u==="!"&&n()==="="){s(),e.push({type:"NE",pos:l});continue}if(u==="<"&&n()==="="){s(),e.push({type:"LE",pos:l});continue}if(u===">"&&n()==="="){s(),e.push({type:"GE",pos:l});continue}if(u==="/"&&n()==="/"){s(),n()==="="?(s(),e.push({type:"UPDATE_ALT",pos:l})):e.push({type:"ALT",pos:l});continue}if(u==="+"&&n()==="="){s(),e.push({type:"UPDATE_ADD",pos:l});continue}if(u==="-"&&n()==="="){s(),e.push({type:"UPDATE_SUB",pos:l});continue}if(u==="*"&&n()==="="){s(),e.push({type:"UPDATE_MUL",pos:l});continue}if(u==="/"&&n()==="="){s(),e.push({type:"UPDATE_DIV",pos:l});continue}if(u==="%"&&n()==="="){s(),e.push({type:"UPDATE_MOD",pos:l});continue}if(u==="="&&n()!=="="){e.push({type:"ASSIGN",pos:l});continue}if(u==="."){e.push({type:"DOT",pos:l});continue}if(u==="|"){n()==="="?(s(),e.push({type:"UPDATE_PIPE",pos:l})):e.push({type:"PIPE",pos:l});continue}if(u===","){e.push({type:"COMMA",pos:l});continue}if(u===":"){e.push({type:"COLON",pos:l});continue}if(u===";"){e.push({type:"SEMICOLON",pos:l});continue}if(u==="("){e.push({type:"LPAREN",pos:l});continue}if(u===")"){e.push({type:"RPAREN",pos:l});continue}if(u==="["){e.push({type:"LBRACKET",pos:l});continue}if(u==="]"){e.push({type:"RBRACKET",pos:l});continue}if(u==="{"){e.push({type:"LBRACE",pos:l});continue}if(u==="}"){e.push({type:"RBRACE",pos:l});continue}if(u==="?"){e.push({type:"QUESTION",pos:l});continue}if(u==="+"){e.push({type:"PLUS",pos:l});continue}if(u==="-"){if(o(n())){let f=u;for(;!i()&&(o(n())||n()===".");)f+=s();e.push({type:"NUMBER",value:Number(f),pos:l});continue}e.push({type:"MINUS",pos:l});continue}if(u==="*"){e.push({type:"STAR",pos:l});continue}if(u==="/"){e.push({type:"SLASH",pos:l});continue}if(u==="%"){e.push({type:"PERCENT",pos:l});continue}if(u==="<"){e.push({type:"LT",pos:l});continue}if(u===">"){e.push({type:"GT",pos:l});continue}if(o(u)){let f=u;for(;!i()&&(o(n())||n()==="."||n()==="e"||n()==="E");)(n()==="e"||n()==="E")&&(t[r+1]==="+"||t[r+1]==="-")&&(f+=s()),f+=s();e.push({type:"NUMBER",value:Number(f),pos:l});continue}if(u==='"'){let f="";for(;!i()&&n()!=='"';)if(n()==="\\"){if(s(),i())break;let p=s();switch(p){case"n":f+=`
361
- `;break;case"r":f+="\r";break;case"t":f+=" ";break;case"\\":f+="\\";break;case'"':f+='"';break;case"(":f+="\\(";break;default:f+=p}}else f+=s();i()||s(),e.push({type:"STRING",value:f,pos:l});continue}if(a(u)||u==="$"||u==="@"){let f=u;for(;!i()&&c(n());)f+=s();let p=Th[f];p?e.push({type:p,pos:l}):e.push({type:"IDENT",value:f,pos:l});continue}throw new Error(`Unexpected character '${u}' at position ${l}`)}}return e.push({type:"EOF",pos:r}),e}function qa(t){let e=Ga(t);return new is(e).parse()}var Th,is,Va=A(()=>{"use strict";Th={and:"AND",or:"OR",not:"NOT",if:"IF",then:"THEN",elif:"ELIF",else:"ELSE",end:"END",as:"AS",try:"TRY",catch:"CATCH",true:"TRUE",false:"FALSE",null:"NULL",reduce:"REDUCE",foreach:"FOREACH"};is=class t{tokens;pos=0;constructor(e){this.tokens=e}peek(e=0){return this.tokens[this.pos+e]??{type:"EOF",pos:-1}}advance(){return this.tokens[this.pos++]}check(e){return this.peek().type===e}match(...e){for(let r of e)if(this.check(r))return this.advance();return null}expect(e,r){if(!this.check(e))throw new Error(`${r} at position ${this.peek().pos}, got ${this.peek().type}`);return this.advance()}parse(){let e=this.parseExpr();if(!this.check("EOF"))throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`);return e}parseExpr(){return this.parsePipe()}parsePipe(){let e=this.parseComma();for(;this.match("PIPE");){let r=this.parseComma();e={type:"Pipe",left:e,right:r}}return e}parseComma(){let e=this.parseVarBind();for(;this.match("COMMA");){let r=this.parseVarBind();e={type:"Comma",left:e,right:r}}return e}parseVarBind(){let e=this.parseUpdate();if(this.match("AS")){let r=this.expect("IDENT","Expected variable name after 'as'"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("PIPE","Expected '|' after variable binding");let s=this.parseExpr();return{type:"VarBind",name:n,value:e,body:s}}return e}parseUpdate(){let e=this.parseAlt(),r={ASSIGN:"=",UPDATE_ADD:"+=",UPDATE_SUB:"-=",UPDATE_MUL:"*=",UPDATE_DIV:"/=",UPDATE_MOD:"%=",UPDATE_ALT:"//=",UPDATE_PIPE:"|="},n=this.match("ASSIGN","UPDATE_ADD","UPDATE_SUB","UPDATE_MUL","UPDATE_DIV","UPDATE_MOD","UPDATE_ALT","UPDATE_PIPE");if(n){let s=this.parseVarBind();return{type:"UpdateOp",op:r[n.type],path:e,value:s}}return e}parseAlt(){let e=this.parseOr();for(;this.match("ALT");){let r=this.parseOr();e={type:"BinaryOp",op:"//",left:e,right:r}}return e}parseOr(){let e=this.parseAnd();for(;this.match("OR");){let r=this.parseAnd();e={type:"BinaryOp",op:"or",left:e,right:r}}return e}parseAnd(){let e=this.parseNot();for(;this.match("AND");){let r=this.parseNot();e={type:"BinaryOp",op:"and",left:e,right:r}}return e}parseNot(){return this.parseComparison()}parseComparison(){let e=this.parseAddSub(),r={EQ:"==",NE:"!=",LT:"<",LE:"<=",GT:">",GE:">="},n=this.match("EQ","NE","LT","LE","GT","GE");if(n){let s=this.parseAddSub();e={type:"BinaryOp",op:r[n.type],left:e,right:s}}return e}parseAddSub(){let e=this.parseMulDiv();for(;;)if(this.match("PLUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"+",left:e,right:r}}else if(this.match("MINUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"-",left:e,right:r}}else break;return e}parseMulDiv(){let e=this.parseUnary();for(;;)if(this.match("STAR")){let r=this.parseUnary();e={type:"BinaryOp",op:"*",left:e,right:r}}else if(this.match("SLASH")){let r=this.parseUnary();e={type:"BinaryOp",op:"/",left:e,right:r}}else if(this.match("PERCENT")){let r=this.parseUnary();e={type:"BinaryOp",op:"%",left:e,right:r}}else break;return e}parseUnary(){return this.match("MINUS")?{type:"UnaryOp",op:"-",operand:this.parseUnary()}:this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("QUESTION"))e={type:"Optional",expr:e};else if(this.check("DOT")&&this.peek(1).type==="IDENT")this.advance(),e={type:"Field",name:this.expect("IDENT","Expected field name").value,base:e};else if(this.check("LBRACKET"))if(this.advance(),this.match("RBRACKET"))e={type:"Iterate",base:e};else if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",end:r,base:e}}else{let r=this.parseExpr();if(this.match("COLON")){let n=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",start:r,end:n,base:e}}else this.expect("RBRACKET","Expected ']'"),e={type:"Index",index:r,base:e}}else break;return e}parsePrimary(){if(this.match("DOTDOT"))return{type:"Recurse"};if(this.match("DOT")){if(this.check("LBRACKET")){if(this.advance(),this.match("RBRACKET"))return{type:"Iterate"};if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",end:r}}let e=this.parseExpr();if(this.match("COLON")){let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",start:e,end:r}}return this.expect("RBRACKET","Expected ']'"),{type:"Index",index:e}}return this.check("IDENT")?{type:"Field",name:this.advance().value}:{type:"Identity"}}if(this.match("TRUE"))return{type:"Literal",value:!0};if(this.match("FALSE"))return{type:"Literal",value:!1};if(this.match("NULL"))return{type:"Literal",value:null};if(this.check("NUMBER"))return{type:"Literal",value:this.advance().value};if(this.check("STRING")){let r=this.advance().value;return r.includes("\\(")?this.parseStringInterpolation(r):{type:"Literal",value:r}}if(this.match("LBRACKET")){if(this.match("RBRACKET"))return{type:"Array"};let e=this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Array",elements:e}}if(this.match("LBRACE"))return this.parseObjectConstruction();if(this.match("LPAREN")){let e=this.parseExpr();return this.expect("RPAREN","Expected ')'"),{type:"Paren",expr:e}}if(this.match("IF"))return this.parseIf();if(this.match("TRY")){let e=this.parsePostfix(),r;return this.match("CATCH")&&(r=this.parsePostfix()),{type:"Try",body:e,catch:r}}if(this.match("REDUCE")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after reduce expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr();return this.expect("RPAREN","Expected ')' after update expression"),{type:"Reduce",expr:e,varName:n,init:s,update:i}}if(this.match("FOREACH")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after foreach expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr(),o;return this.match("SEMICOLON")&&(o=this.parseExpr()),this.expect("RPAREN","Expected ')' after expressions"),{type:"Foreach",expr:e,varName:n,init:s,update:i,extract:o}}if(this.match("NOT"))return{type:"Call",name:"not",args:[]};if(this.check("IDENT")){let r=this.advance().value;if(r.startsWith("$"))return{type:"VarRef",name:r};if(this.match("LPAREN")){let n=[];if(!this.check("RPAREN"))for(n.push(this.parseExpr());this.match("SEMICOLON");)n.push(this.parseExpr());return this.expect("RPAREN","Expected ')'"),{type:"Call",name:r,args:n}}return{type:"Call",name:r,args:[]}}throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`)}parseObjectConstruction(){let e=[];if(!this.check("RBRACE"))do{let r,n;if(this.match("LPAREN"))r=this.parseExpr(),this.expect("RPAREN","Expected ')'"),this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else if(this.check("IDENT")){let s=this.advance().value;this.match("COLON")?(r=s,n=this.parseObjectValue()):(r=s,n={type:"Field",name:s})}else if(this.check("STRING"))r=this.advance().value,this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else throw new Error(`Expected object key at position ${this.peek().pos}`);e.push({key:r,value:n})}while(this.match("COMMA"));return this.expect("RBRACE","Expected '}'"),{type:"Object",entries:e}}parseObjectValue(){let e=this.parseVarBind();for(;this.match("PIPE");){let r=this.parseVarBind();e={type:"Pipe",left:e,right:r}}return e}parseIf(){let e=this.parseExpr();this.expect("THEN","Expected 'then'");let r=this.parseExpr(),n=[];for(;this.match("ELIF");){let i=this.parseExpr();this.expect("THEN","Expected 'then' after elif");let o=this.parseExpr();n.push({cond:i,then:o})}let s;return this.match("ELSE")&&(s=this.parseExpr()),this.expect("END","Expected 'end'"),{type:"Cond",cond:e,then:r,elifs:n,else:s}}parseStringInterpolation(e){let r=[],n="",s=0;for(;s<e.length;)if(e[s]==="\\"&&e[s+1]==="("){n&&(r.push(n),n=""),s+=2;let i=1,o="";for(;s<e.length&&i>0;)e[s]==="("?i++:e[s]===")"&&i--,i>0&&(o+=e[s]),s++;let a=Ga(o),c=new t(a);r.push(c.parse())}else n+=e[s],s++;return n&&r.push(n),{type:"StringInterp",parts:r}}}});var Ka={};$(Ka,{jqCommand:()=>Dh});function Xt(t,e,r,n,s,i=0){if(t===null||t===void 0)return"null";if(typeof t=="boolean")return String(t);if(typeof t=="number")return Number.isFinite(t)?String(t):"null";if(typeof t=="string")return r?t:JSON.stringify(t);let o=s?" ":" ";if(Array.isArray(t))return t.length===0?"[]":e?`[${t.map(c=>Xt(c,!0,!1,n,s)).join(",")}]`:`[
361
+ `;break;case"r":f+="\r";break;case"t":f+=" ";break;case"\\":f+="\\";break;case'"':f+='"';break;case"(":f+="\\(";break;default:f+=p}}else f+=s();i()||s(),e.push({type:"STRING",value:f,pos:l});continue}if(a(u)||u==="$"||u==="@"){let f=u;for(;!i()&&c(n());)f+=s();let p=jh[f];p?e.push({type:p,pos:l}):e.push({type:"IDENT",value:f,pos:l});continue}throw new Error(`Unexpected character '${u}' at position ${l}`)}}return e.push({type:"EOF",pos:r}),e}function Ja(t){let e=Xa(t);return new cs(e).parse()}var jh,cs,Ya=A(()=>{"use strict";jh={and:"AND",or:"OR",not:"NOT",if:"IF",then:"THEN",elif:"ELIF",else:"ELSE",end:"END",as:"AS",try:"TRY",catch:"CATCH",true:"TRUE",false:"FALSE",null:"NULL",reduce:"REDUCE",foreach:"FOREACH"};cs=class t{tokens;pos=0;constructor(e){this.tokens=e}peek(e=0){return this.tokens[this.pos+e]??{type:"EOF",pos:-1}}advance(){return this.tokens[this.pos++]}check(e){return this.peek().type===e}match(...e){for(let r of e)if(this.check(r))return this.advance();return null}expect(e,r){if(!this.check(e))throw new Error(`${r} at position ${this.peek().pos}, got ${this.peek().type}`);return this.advance()}parse(){let e=this.parseExpr();if(!this.check("EOF"))throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`);return e}parseExpr(){return this.parsePipe()}parsePipe(){let e=this.parseComma();for(;this.match("PIPE");){let r=this.parseComma();e={type:"Pipe",left:e,right:r}}return e}parseComma(){let e=this.parseVarBind();for(;this.match("COMMA");){let r=this.parseVarBind();e={type:"Comma",left:e,right:r}}return e}parseVarBind(){let e=this.parseUpdate();if(this.match("AS")){let r=this.expect("IDENT","Expected variable name after 'as'"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("PIPE","Expected '|' after variable binding");let s=this.parseExpr();return{type:"VarBind",name:n,value:e,body:s}}return e}parseUpdate(){let e=this.parseAlt(),r={ASSIGN:"=",UPDATE_ADD:"+=",UPDATE_SUB:"-=",UPDATE_MUL:"*=",UPDATE_DIV:"/=",UPDATE_MOD:"%=",UPDATE_ALT:"//=",UPDATE_PIPE:"|="},n=this.match("ASSIGN","UPDATE_ADD","UPDATE_SUB","UPDATE_MUL","UPDATE_DIV","UPDATE_MOD","UPDATE_ALT","UPDATE_PIPE");if(n){let s=this.parseVarBind();return{type:"UpdateOp",op:r[n.type],path:e,value:s}}return e}parseAlt(){let e=this.parseOr();for(;this.match("ALT");){let r=this.parseOr();e={type:"BinaryOp",op:"//",left:e,right:r}}return e}parseOr(){let e=this.parseAnd();for(;this.match("OR");){let r=this.parseAnd();e={type:"BinaryOp",op:"or",left:e,right:r}}return e}parseAnd(){let e=this.parseNot();for(;this.match("AND");){let r=this.parseNot();e={type:"BinaryOp",op:"and",left:e,right:r}}return e}parseNot(){return this.parseComparison()}parseComparison(){let e=this.parseAddSub(),r={EQ:"==",NE:"!=",LT:"<",LE:"<=",GT:">",GE:">="},n=this.match("EQ","NE","LT","LE","GT","GE");if(n){let s=this.parseAddSub();e={type:"BinaryOp",op:r[n.type],left:e,right:s}}return e}parseAddSub(){let e=this.parseMulDiv();for(;;)if(this.match("PLUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"+",left:e,right:r}}else if(this.match("MINUS")){let r=this.parseMulDiv();e={type:"BinaryOp",op:"-",left:e,right:r}}else break;return e}parseMulDiv(){let e=this.parseUnary();for(;;)if(this.match("STAR")){let r=this.parseUnary();e={type:"BinaryOp",op:"*",left:e,right:r}}else if(this.match("SLASH")){let r=this.parseUnary();e={type:"BinaryOp",op:"/",left:e,right:r}}else if(this.match("PERCENT")){let r=this.parseUnary();e={type:"BinaryOp",op:"%",left:e,right:r}}else break;return e}parseUnary(){return this.match("MINUS")?{type:"UnaryOp",op:"-",operand:this.parseUnary()}:this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("QUESTION"))e={type:"Optional",expr:e};else if(this.check("DOT")&&this.peek(1).type==="IDENT")this.advance(),e={type:"Field",name:this.expect("IDENT","Expected field name").value,base:e};else if(this.check("LBRACKET"))if(this.advance(),this.match("RBRACKET"))e={type:"Iterate",base:e};else if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",end:r,base:e}}else{let r=this.parseExpr();if(this.match("COLON")){let n=this.check("RBRACKET")?void 0:this.parseExpr();this.expect("RBRACKET","Expected ']'"),e={type:"Slice",start:r,end:n,base:e}}else this.expect("RBRACKET","Expected ']'"),e={type:"Index",index:r,base:e}}else break;return e}parsePrimary(){if(this.match("DOTDOT"))return{type:"Recurse"};if(this.match("DOT")){if(this.check("LBRACKET")){if(this.advance(),this.match("RBRACKET"))return{type:"Iterate"};if(this.check("COLON")){this.advance();let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",end:r}}let e=this.parseExpr();if(this.match("COLON")){let r=this.check("RBRACKET")?void 0:this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Slice",start:e,end:r}}return this.expect("RBRACKET","Expected ']'"),{type:"Index",index:e}}return this.check("IDENT")?{type:"Field",name:this.advance().value}:{type:"Identity"}}if(this.match("TRUE"))return{type:"Literal",value:!0};if(this.match("FALSE"))return{type:"Literal",value:!1};if(this.match("NULL"))return{type:"Literal",value:null};if(this.check("NUMBER"))return{type:"Literal",value:this.advance().value};if(this.check("STRING")){let r=this.advance().value;return r.includes("\\(")?this.parseStringInterpolation(r):{type:"Literal",value:r}}if(this.match("LBRACKET")){if(this.match("RBRACKET"))return{type:"Array"};let e=this.parseExpr();return this.expect("RBRACKET","Expected ']'"),{type:"Array",elements:e}}if(this.match("LBRACE"))return this.parseObjectConstruction();if(this.match("LPAREN")){let e=this.parseExpr();return this.expect("RPAREN","Expected ')'"),{type:"Paren",expr:e}}if(this.match("IF"))return this.parseIf();if(this.match("TRY")){let e=this.parsePostfix(),r;return this.match("CATCH")&&(r=this.parsePostfix()),{type:"Try",body:e,catch:r}}if(this.match("REDUCE")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after reduce expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr();return this.expect("RPAREN","Expected ')' after update expression"),{type:"Reduce",expr:e,varName:n,init:s,update:i}}if(this.match("FOREACH")){let e=this.parsePostfix();this.expect("AS","Expected 'as' after foreach expression");let r=this.expect("IDENT","Expected variable name"),n=r.value;if(!n.startsWith("$"))throw new Error(`Variable name must start with $ at position ${r.pos}`);this.expect("LPAREN","Expected '(' after variable");let s=this.parseExpr();this.expect("SEMICOLON","Expected ';' after init expression");let i=this.parseExpr(),o;return this.match("SEMICOLON")&&(o=this.parseExpr()),this.expect("RPAREN","Expected ')' after expressions"),{type:"Foreach",expr:e,varName:n,init:s,update:i,extract:o}}if(this.match("NOT"))return{type:"Call",name:"not",args:[]};if(this.check("IDENT")){let r=this.advance().value;if(r.startsWith("$"))return{type:"VarRef",name:r};if(this.match("LPAREN")){let n=[];if(!this.check("RPAREN"))for(n.push(this.parseExpr());this.match("SEMICOLON");)n.push(this.parseExpr());return this.expect("RPAREN","Expected ')'"),{type:"Call",name:r,args:n}}return{type:"Call",name:r,args:[]}}throw new Error(`Unexpected token ${this.peek().type} at position ${this.peek().pos}`)}parseObjectConstruction(){let e=[];if(!this.check("RBRACE"))do{let r,n;if(this.match("LPAREN"))r=this.parseExpr(),this.expect("RPAREN","Expected ')'"),this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else if(this.check("IDENT")){let s=this.advance().value;this.match("COLON")?(r=s,n=this.parseObjectValue()):(r=s,n={type:"Field",name:s})}else if(this.check("STRING"))r=this.advance().value,this.expect("COLON","Expected ':'"),n=this.parseObjectValue();else throw new Error(`Expected object key at position ${this.peek().pos}`);e.push({key:r,value:n})}while(this.match("COMMA"));return this.expect("RBRACE","Expected '}'"),{type:"Object",entries:e}}parseObjectValue(){let e=this.parseVarBind();for(;this.match("PIPE");){let r=this.parseVarBind();e={type:"Pipe",left:e,right:r}}return e}parseIf(){let e=this.parseExpr();this.expect("THEN","Expected 'then'");let r=this.parseExpr(),n=[];for(;this.match("ELIF");){let i=this.parseExpr();this.expect("THEN","Expected 'then' after elif");let o=this.parseExpr();n.push({cond:i,then:o})}let s;return this.match("ELSE")&&(s=this.parseExpr()),this.expect("END","Expected 'end'"),{type:"Cond",cond:e,then:r,elifs:n,else:s}}parseStringInterpolation(e){let r=[],n="",s=0;for(;s<e.length;)if(e[s]==="\\"&&e[s+1]==="("){n&&(r.push(n),n=""),s+=2;let i=1,o="";for(;s<e.length&&i>0;)e[s]==="("?i++:e[s]===")"&&i--,i>0&&(o+=e[s]),s++;let a=Xa(o),c=new t(a);r.push(c.parse())}else n+=e[s],s++;return n&&r.push(n),{type:"StringInterp",parts:r}}}});var ec={};$(ec,{jqCommand:()=>qh});function Xt(t,e,r,n,s,i=0){if(t===null||t===void 0)return"null";if(typeof t=="boolean")return String(t);if(typeof t=="number")return Number.isFinite(t)?String(t):"null";if(typeof t=="string")return r?t:JSON.stringify(t);let o=s?" ":" ";if(Array.isArray(t))return t.length===0?"[]":e?`[${t.map(c=>Xt(c,!0,!1,n,s)).join(",")}]`:`[
362
362
  ${t.map(c=>o.repeat(i+1)+Xt(c,!1,!1,n,s,i+1)).join(`,
363
363
  `)}
364
364
  ${o.repeat(i)}]`;if(typeof t=="object"){let a=Object.keys(t);return n&&(a=a.sort()),a.length===0?"{}":e?`{${a.map(l=>`${JSON.stringify(l)}:${Xt(t[l],!0,!1,n,s)}`).join(",")}}`:`{
365
365
  ${a.map(l=>{let u=Xt(t[l],!1,!1,n,s,i+1);return`${o.repeat(i+1)}${JSON.stringify(l)}: ${u}`}).join(`,
366
366
  `)}
367
- ${o.repeat(i)}}`}return String(t)}var Fh,Dh,Za=A(()=>{"use strict";J();_();za();Va();Fh={name:"jq",summary:"command-line JSON processor",usage:"jq [OPTIONS] FILTER [FILE]",options:["-r, --raw-output output strings without quotes","-c, --compact compact output (no pretty printing)","-e, --exit-status set exit status based on output","-s, --slurp read entire input into array","-n, --null-input don't read any input","-j, --join-output don't print newlines after each output","-a, --ascii force ASCII output","-S, --sort-keys sort object keys","-C, --color colorize output (ignored)","-M, --monochrome monochrome output (ignored)"," --tab use tabs for indentation"," --help display this help and exit"]};Dh={name:"jq",async execute(t,e){if(I(t))return N(Fh);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,c=!1,l=!1,u=".",f=!1,p=[];for(let h=0;h<t.length;h++){let g=t[h];if(g==="-r"||g==="--raw-output")r=!0;else if(g==="-c"||g==="--compact-output")n=!0;else if(g==="-e"||g==="--exit-status")s=!0;else if(g==="-s"||g==="--slurp")i=!0;else if(g==="-n"||g==="--null-input")o=!0;else if(g==="-j"||g==="--join-output")a=!0;else if(!(g==="-a"||g==="--ascii")){if(g==="-S"||g==="--sort-keys")c=!0;else if(!(g==="-C"||g==="--color")){if(!(g==="-M"||g==="--monochrome"))if(g==="--tab")l=!0;else if(g==="-")p.push("-");else{if(g.startsWith("--"))return L("jq",g);if(g.startsWith("-")){for(let y of g.slice(1))if(y==="r")r=!0;else if(y==="c")n=!0;else if(y==="e")s=!0;else if(y==="s")i=!0;else if(y==="n")o=!0;else if(y==="j")a=!0;else if(y!=="a"){if(y==="S")c=!0;else if(y!=="C"){if(y!=="M")return L("jq",`-${y}`)}}}else f?p.push(g):(u=g,f=!0)}}}}let d;if(o)d="";else if(p.length===0||p.length===1&&p[0]==="-")d=e.stdin;else try{let h=e.fs.resolvePath(e.cwd,p[0]);d=await e.fs.readFile(h)}catch{return{stdout:"",stderr:`jq: ${p[0]}: No such file or directory
368
- `,exitCode:2}}try{let h=qa(u),g,y={limits:e.limits?{maxIterations:e.limits.maxJqIterations}:void 0};if(o)g=k(null,h,y);else if(i){let C=[];for(let O of d.trim().split(`
369
- `))O.trim()&&C.push(JSON.parse(O));g=k(C,h,y)}else{let C=d.trim();if(C.startsWith("{")||C.startsWith("["))g=k(JSON.parse(C),h,y);else{g=[];for(let O of C.split(`
370
- `))O.trim()&&g.push(...k(JSON.parse(O),h,y))}}let w=g.map(C=>Xt(C,n,r,c,l)),E=a?"":`
367
+ ${o.repeat(i)}}`}return String(t)}var Gh,qh,tc=A(()=>{"use strict";J();_();Qa();Ya();Gh={name:"jq",summary:"command-line JSON processor",usage:"jq [OPTIONS] FILTER [FILE]",options:["-r, --raw-output output strings without quotes","-c, --compact compact output (no pretty printing)","-e, --exit-status set exit status based on output","-s, --slurp read entire input into array","-n, --null-input don't read any input","-j, --join-output don't print newlines after each output","-a, --ascii force ASCII output","-S, --sort-keys sort object keys","-C, --color colorize output (ignored)","-M, --monochrome monochrome output (ignored)"," --tab use tabs for indentation"," --help display this help and exit"]};qh={name:"jq",async execute(t,e){if(I(t))return N(Gh);let r=!1,n=!1,s=!1,i=!1,o=!1,a=!1,c=!1,l=!1,u=".",f=!1,p=[];for(let h=0;h<t.length;h++){let g=t[h];if(g==="-r"||g==="--raw-output")r=!0;else if(g==="-c"||g==="--compact-output")n=!0;else if(g==="-e"||g==="--exit-status")s=!0;else if(g==="-s"||g==="--slurp")i=!0;else if(g==="-n"||g==="--null-input")o=!0;else if(g==="-j"||g==="--join-output")a=!0;else if(!(g==="-a"||g==="--ascii")){if(g==="-S"||g==="--sort-keys")c=!0;else if(!(g==="-C"||g==="--color")){if(!(g==="-M"||g==="--monochrome"))if(g==="--tab")l=!0;else if(g==="-")p.push("-");else{if(g.startsWith("--"))return L("jq",g);if(g.startsWith("-")){for(let m of g.slice(1))if(m==="r")r=!0;else if(m==="c")n=!0;else if(m==="e")s=!0;else if(m==="s")i=!0;else if(m==="n")o=!0;else if(m==="j")a=!0;else if(m!=="a"){if(m==="S")c=!0;else if(m!=="C"){if(m!=="M")return L("jq",`-${m}`)}}}else f?p.push(g):(u=g,f=!0)}}}}let d;if(o)d="";else if(p.length===0||p.length===1&&p[0]==="-")d=e.stdin;else try{let h=e.fs.resolvePath(e.cwd,p[0]);d=await e.fs.readFile(h)}catch{return{stdout:"",stderr:`jq: ${p[0]}: No such file or directory
368
+ `,exitCode:2}}try{let h=Ja(u),g,m={limits:e.limits?{maxIterations:e.limits.maxJqIterations}:void 0};if(o)g=k(null,h,m);else if(i){let C=[];for(let O of d.trim().split(`
369
+ `))O.trim()&&C.push(JSON.parse(O));g=k(C,h,m)}else{let C=d.trim();if(C.startsWith("{")||C.startsWith("["))g=k(JSON.parse(C),h,m);else{g=[];for(let O of C.split(`
370
+ `))O.trim()&&g.push(...k(JSON.parse(O),h,m))}}let w=g.map(C=>Xt(C,n,r,c,l)),E=a?"":`
371
371
  `,b=w.join(E),S=s&&(g.length===0||g.every(C=>C==null||C===!1))?1:0;return{stdout:b?a?b:`${b}
372
372
  `:"",stderr:"",exitCode:S}}catch(h){if(h instanceof W)return{stdout:"",stderr:`jq: ${h.message}
373
373
  `,exitCode:W.EXIT_CODE};let g=h.message;return g.includes("Unknown function")?{stdout:"",stderr:`jq: error: ${g}
374
374
  `,exitCode:3}:{stdout:"",stderr:`jq: parse error: ${g}
375
- `,exitCode:5}}}}});var Xa={};$(Xa,{base64Command:()=>_h});async function Qa(t,e,r){if(e.length===0||e.length===1&&e[0]==="-")return{ok:!0,data:new TextEncoder().encode(t.stdin)};let n=[];for(let a of e){if(a==="-"){n.push(new TextEncoder().encode(t.stdin));continue}try{let c=t.fs.resolvePath(t.cwd,a),l=await t.fs.readFileBuffer(c);n.push(l)}catch{return{ok:!1,error:{stdout:"",stderr:`${r}: ${a}: No such file or directory
376
- `,exitCode:1}}}}let s=n.reduce((a,c)=>a+c.length,0),i=new Uint8Array(s),o=0;for(let a of n)i.set(a,o),o+=a.length;return{ok:!0,data:i}}var Lh,Mh,_h,Ja=A(()=>{"use strict";fe();_();Lh={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},Mh={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}};_h={name:"base64",async execute(t,e){if(I(t))return N(Lh);let r=G("base64",t,Mh);if(!r.ok)return r.error;let n=r.result.flags.decode,s=r.result.flags.wrap,i=r.result.positional;try{if(n){let c=await Qa(e,i,"base64");if(!c.ok)return c.error;let u=new TextDecoder().decode(c.data).replace(/\s/g,""),f=Uint8Array.from(atob(u),d=>d.charCodeAt(0));return{stdout:new TextDecoder().decode(f),stderr:"",exitCode:0}}let o=await Qa(e,i,"base64");if(!o.ok)return o.error;let a=btoa(String.fromCharCode(...o.data));if(s>0){let c=[];for(let l=0;l<a.length;l+=s)c.push(a.slice(l,l+s));a=c.join(`
375
+ `,exitCode:5}}}}});var nc={};$(nc,{base64Command:()=>Zh});async function rc(t,e,r){if(e.length===0||e.length===1&&e[0]==="-")return{ok:!0,data:new TextEncoder().encode(t.stdin)};let n=[];for(let a of e){if(a==="-"){n.push(new TextEncoder().encode(t.stdin));continue}try{let c=t.fs.resolvePath(t.cwd,a),l=await t.fs.readFileBuffer(c);n.push(l)}catch{return{ok:!1,error:{stdout:"",stderr:`${r}: ${a}: No such file or directory
376
+ `,exitCode:1}}}}let s=n.reduce((a,c)=>a+c.length,0),i=new Uint8Array(s),o=0;for(let a of n)i.set(a,o),o+=a.length;return{ok:!0,data:i}}var Vh,Kh,Zh,sc=A(()=>{"use strict";le();_();Vh={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},Kh={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}};Zh={name:"base64",async execute(t,e){if(I(t))return N(Vh);let r=j("base64",t,Kh);if(!r.ok)return r.error;let n=r.result.flags.decode,s=r.result.flags.wrap,i=r.result.positional;try{if(n){let c=await rc(e,i,"base64");if(!c.ok)return c.error;let u=new TextDecoder().decode(c.data).replace(/\s/g,""),f=Uint8Array.from(atob(u),d=>d.charCodeAt(0));return{stdout:new TextDecoder().decode(f),stderr:"",exitCode:0}}let o=await rc(e,i,"base64");if(!o.ok)return o.error;let a=btoa(String.fromCharCode(...o.data));if(s>0){let c=[];for(let l=0;l<a.length;l+=s)c.push(a.slice(l,l+s));a=c.join(`
377
377
  `)+(a.length>0?`
378
378
  `:"")}return{stdout:a,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`base64: invalid input
379
- `,exitCode:1}}}}});var ec={};$(ec,{diffCommand:()=>Uh});import*as Ya from"diff";var Bh,Wh,Uh,tc=A(()=>{"use strict";fe();_();Bh={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},Wh={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},Uh={name:"diff",async execute(t,e){if(I(t))return N(Bh);let r=G("diff",t,Wh);if(!r.ok)return r.error;let n=r.result.flags.brief,s=r.result.flags.reportSame,i=r.result.flags.ignoreCase,o=r.result.positional;if(r.result.flags.unified,o.length<2)return{stdout:"",stderr:`diff: missing operand
379
+ `,exitCode:1}}}}});var oc={};$(oc,{diffCommand:()=>Jh});import*as ic from"diff";var Qh,Xh,Jh,ac=A(()=>{"use strict";le();_();Qh={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},Xh={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},Jh={name:"diff",async execute(t,e){if(I(t))return N(Qh);let r=j("diff",t,Xh);if(!r.ok)return r.error;let n=r.result.flags.brief,s=r.result.flags.reportSame,i=r.result.flags.ignoreCase,o=r.result.positional;if(r.result.flags.unified,o.length<2)return{stdout:"",stderr:`diff: missing operand
380
380
  `,exitCode:2};let a,c,[l,u]=o;try{a=l==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,l))}catch{return{stdout:"",stderr:`diff: ${l}: No such file or directory
381
381
  `,exitCode:2}}try{c=u==="-"?e.stdin:await e.fs.readFile(e.fs.resolvePath(e.cwd,u))}catch{return{stdout:"",stderr:`diff: ${u}: No such file or directory
382
382
  `,exitCode:2}}let f=a,p=c;return i&&(f=f.toLowerCase(),p=p.toLowerCase()),f===p?s?{stdout:`Files ${l} and ${u} are identical
383
383
  `,stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0}:n?{stdout:`Files ${l} and ${u} differ
384
- `,stderr:"",exitCode:1}:{stdout:Ya.createTwoFilesPatch(l,u,a,c,"","",{context:3}),stderr:"",exitCode:1}}}});var rc={};$(rc,{dateCommand:()=>Vh});function xe(t,e=2){return String(t).padStart(e,"0")}function Gh(t){let e=-t.getTimezoneOffset();return`${e>=0?"+":"-"}${xe(Math.floor(Math.abs(e)/60))}${xe(Math.abs(e)%60)}`}function Lr(t,e,r){let n=r?{Y:t.getUTCFullYear(),m:t.getUTCMonth(),D:t.getUTCDate(),H:t.getUTCHours(),M:t.getUTCMinutes(),S:t.getUTCSeconds(),w:t.getUTCDay()}:{Y:t.getFullYear(),m:t.getMonth(),D:t.getDate(),H:t.getHours(),M:t.getMinutes(),S:t.getSeconds(),w:t.getDay()},s="",i=0;for(;i<e.length;){if(e[i]==="%"&&i+1<e.length){let o=e[++i];switch(o){case"%":s+="%";break;case"a":s+=jh[n.w];break;case"b":case"h":s+=zh[n.m];break;case"d":s+=xe(n.D);break;case"e":s+=String(n.D).padStart(2," ");break;case"F":s+=`${n.Y}-${xe(n.m+1)}-${xe(n.D)}`;break;case"H":s+=xe(n.H);break;case"I":s+=xe(n.H%12||12);break;case"m":s+=xe(n.m+1);break;case"M":s+=xe(n.M);break;case"n":s+=`
385
- `;break;case"p":s+=n.H<12?"AM":"PM";break;case"P":s+=n.H<12?"am":"pm";break;case"R":s+=`${xe(n.H)}:${xe(n.M)}`;break;case"s":s+=Math.floor(t.getTime()/1e3);break;case"S":s+=xe(n.S);break;case"t":s+=" ";break;case"T":s+=`${xe(n.H)}:${xe(n.M)}:${xe(n.S)}`;break;case"u":s+=n.w||7;break;case"w":s+=n.w;break;case"y":s+=xe(n.Y%100);break;case"Y":s+=n.Y;break;case"z":s+=r?"+0000":Gh(t);break;case"Z":s+=r?"UTC":Intl.DateTimeFormat().resolvedOptions().timeZone;break;default:s+=`%${o}`}}else s+=e[i];i++}return s}function qh(t){let e=new Date(t);if(!Number.isNaN(e.getTime()))return e;if(/^\d+$/.test(t))return new Date(Number.parseInt(t,10)*1e3);let r=t.toLowerCase();return r==="now"||r==="today"?new Date:r==="yesterday"?new Date(Date.now()-864e5):r==="tomorrow"?new Date(Date.now()+864e5):null}var Hh,jh,zh,Vh,nc=A(()=>{"use strict";_();Hh={name:"date",summary:"display the current time in the given FORMAT",usage:"date [OPTION]... [+FORMAT]",options:["-d, --date=STRING display time described by STRING","-u, --utc print Coordinated Universal Time (UTC)","-I, --iso-8601 output date/time in ISO 8601 format","-R, --rfc-email output RFC 5322 date format"," --help display this help and exit"]},jh=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],zh=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Vh={name:"date",async execute(t,e){if(I(t))return N(Hh);let r=!1,n=null,s=null,i=!1,o=!1;for(let l=0;l<t.length;l++){let u=t[l];if(u==="-u"||u==="--utc")r=!0;else if(u==="-d"||u==="--date")n=t[++l]??"";else if(u.startsWith("--date="))n=u.slice(7);else if(u==="-I"||u==="--iso-8601")i=!0;else if(u==="-R"||u==="--rfc-email")o=!0;else if(u.startsWith("+"))s=u.slice(1);else{if(u.startsWith("--"))return L("date",u);if(u.startsWith("-"))for(let f of u.slice(1))if(f==="u")r=!0;else if(f==="I")i=!0;else if(f==="R")o=!0;else return L("date",`-${f}`)}}let a=n!==null?qh(n):new Date;if(!a)return{stdout:"",stderr:`date: invalid date '${n}'
384
+ `,stderr:"",exitCode:1}:{stdout:ic.createTwoFilesPatch(l,u,a,c,"","",{context:3}),stderr:"",exitCode:1}}}});var cc={};$(cc,{dateCommand:()=>sm});function xe(t,e=2){return String(t).padStart(e,"0")}function rm(t){let e=-t.getTimezoneOffset();return`${e>=0?"+":"-"}${xe(Math.floor(Math.abs(e)/60))}${xe(Math.abs(e)%60)}`}function Lr(t,e,r){let n=r?{Y:t.getUTCFullYear(),m:t.getUTCMonth(),D:t.getUTCDate(),H:t.getUTCHours(),M:t.getUTCMinutes(),S:t.getUTCSeconds(),w:t.getUTCDay()}:{Y:t.getFullYear(),m:t.getMonth(),D:t.getDate(),H:t.getHours(),M:t.getMinutes(),S:t.getSeconds(),w:t.getDay()},s="",i=0;for(;i<e.length;){if(e[i]==="%"&&i+1<e.length){let o=e[++i];switch(o){case"%":s+="%";break;case"a":s+=em[n.w];break;case"b":case"h":s+=tm[n.m];break;case"d":s+=xe(n.D);break;case"e":s+=String(n.D).padStart(2," ");break;case"F":s+=`${n.Y}-${xe(n.m+1)}-${xe(n.D)}`;break;case"H":s+=xe(n.H);break;case"I":s+=xe(n.H%12||12);break;case"m":s+=xe(n.m+1);break;case"M":s+=xe(n.M);break;case"n":s+=`
385
+ `;break;case"p":s+=n.H<12?"AM":"PM";break;case"P":s+=n.H<12?"am":"pm";break;case"R":s+=`${xe(n.H)}:${xe(n.M)}`;break;case"s":s+=Math.floor(t.getTime()/1e3);break;case"S":s+=xe(n.S);break;case"t":s+=" ";break;case"T":s+=`${xe(n.H)}:${xe(n.M)}:${xe(n.S)}`;break;case"u":s+=n.w||7;break;case"w":s+=n.w;break;case"y":s+=xe(n.Y%100);break;case"Y":s+=n.Y;break;case"z":s+=r?"+0000":rm(t);break;case"Z":s+=r?"UTC":Intl.DateTimeFormat().resolvedOptions().timeZone;break;default:s+=`%${o}`}}else s+=e[i];i++}return s}function nm(t){let e=new Date(t);if(!Number.isNaN(e.getTime()))return e;if(/^\d+$/.test(t))return new Date(Number.parseInt(t,10)*1e3);let r=t.toLowerCase();return r==="now"||r==="today"?new Date:r==="yesterday"?new Date(Date.now()-864e5):r==="tomorrow"?new Date(Date.now()+864e5):null}var Yh,em,tm,sm,lc=A(()=>{"use strict";_();Yh={name:"date",summary:"display the current time in the given FORMAT",usage:"date [OPTION]... [+FORMAT]",options:["-d, --date=STRING display time described by STRING","-u, --utc print Coordinated Universal Time (UTC)","-I, --iso-8601 output date/time in ISO 8601 format","-R, --rfc-email output RFC 5322 date format"," --help display this help and exit"]},em=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],tm=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];sm={name:"date",async execute(t,e){if(I(t))return N(Yh);let r=!1,n=null,s=null,i=!1,o=!1;for(let l=0;l<t.length;l++){let u=t[l];if(u==="-u"||u==="--utc")r=!0;else if(u==="-d"||u==="--date")n=t[++l]??"";else if(u.startsWith("--date="))n=u.slice(7);else if(u==="-I"||u==="--iso-8601")i=!0;else if(u==="-R"||u==="--rfc-email")o=!0;else if(u.startsWith("+"))s=u.slice(1);else{if(u.startsWith("--"))return L("date",u);if(u.startsWith("-"))for(let f of u.slice(1))if(f==="u")r=!0;else if(f==="I")i=!0;else if(f==="R")o=!0;else return L("date",`-${f}`)}}let a=n!==null?nm(n):new Date;if(!a)return{stdout:"",stderr:`date: invalid date '${n}'
386
386
  `,exitCode:1};let c;return s?c=Lr(a,s,r):i?c=Lr(a,"%Y-%m-%dT%H:%M:%S%z",r):o?c=Lr(a,"%a, %d %b %Y %H:%M:%S %z",r):c=Lr(a,"%a %b %e %H:%M:%S %Z %Y",r),{stdout:`${c}
387
- `,stderr:"",exitCode:0}}}});var sc={};$(sc,{sleepCommand:()=>Qh});function Zh(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var Kh,Qh,ic=A(()=>{"use strict";_();Kh={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
387
+ `,stderr:"",exitCode:0}}}});var uc={};$(uc,{sleepCommand:()=>am});function om(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var im,am,fc=A(()=>{"use strict";_();im={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
388
388
  s - seconds (default)
389
389
  m - minutes
390
390
  h - hours
391
391
  d - days
392
392
 
393
- NUMBER may be a decimal number.`,options:[" --help display this help and exit"]};Qh={name:"sleep",async execute(t,e){if(I(t))return N(Kh);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
394
- `,exitCode:1};let r=0;for(let n of t){let s=Zh(n);if(s===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
395
- `,exitCode:1};r+=s}return e.sleep?await e.sleep(r):await new Promise(n=>setTimeout(n,r)),{stdout:"",stderr:"",exitCode:0}}}});var oc={};$(oc,{timeoutCommand:()=>Yh});function Jh(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var Xh,Yh,ac=A(()=>{"use strict";_();Xh={name:"timeout",summary:"run a command with a time limit",usage:"timeout [OPTION] DURATION COMMAND [ARG]...",description:`Start COMMAND, and kill it if still running after DURATION.
393
+ NUMBER may be a decimal number.`,options:[" --help display this help and exit"]};am={name:"sleep",async execute(t,e){if(I(t))return N(im);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
394
+ `,exitCode:1};let r=0;for(let n of t){let s=om(n);if(s===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
395
+ `,exitCode:1};r+=s}return e.sleep?await e.sleep(r):await new Promise(n=>setTimeout(n,r)),{stdout:"",stderr:"",exitCode:0}}}});var pc={};$(pc,{timeoutCommand:()=>um});function lm(t){let e=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!e)return null;let r=parseFloat(e[1]);switch(e[2]||"s"){case"s":return r*1e3;case"m":return r*60*1e3;case"h":return r*60*60*1e3;case"d":return r*24*60*60*1e3;default:return null}}var cm,um,dc=A(()=>{"use strict";_();cm={name:"timeout",summary:"run a command with a time limit",usage:"timeout [OPTION] DURATION COMMAND [ARG]...",description:`Start COMMAND, and kill it if still running after DURATION.
396
396
 
397
397
  DURATION is a number with optional suffix:
398
398
  s - seconds (default)
399
399
  m - minutes
400
400
  h - hours
401
- d - days`,options:["-k, --kill-after=DURATION send KILL signal after DURATION if still running","-s, --signal=SIGNAL specify signal to send (default: TERM)"," --preserve-status exit with same status as COMMAND, even on timeout"," --foreground run command in foreground"," --help display this help and exit"]};Yh={name:"timeout",async execute(t,e){if(I(t))return N(Xh);let r=!1,n=0;for(let p=0;p<t.length;p++){let d=t[p];if(d==="--preserve-status")r=!0,n=p+1;else if(d==="--foreground")n=p+1;else if(d==="-k"||d==="--kill-after")p++,n=p+1;else if(d.startsWith("--kill-after="))n=p+1;else if(d==="-s"||d==="--signal")p++,n=p+1;else if(d.startsWith("--signal="))n=p+1;else{if(d.startsWith("--")&&d!=="--")return L("timeout",d);if(d.startsWith("-")&&d.length>1&&d!=="--")if(d.startsWith("-k"))n=p+1;else if(d.startsWith("-s"))n=p+1;else return L("timeout",d);else{n=p;break}}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`timeout: missing operand
402
- `,exitCode:1};let i=s[0],o=Jh(i);if(o===null)return{stdout:"",stderr:`timeout: invalid time interval '${i}'
401
+ d - days`,options:["-k, --kill-after=DURATION send KILL signal after DURATION if still running","-s, --signal=SIGNAL specify signal to send (default: TERM)"," --preserve-status exit with same status as COMMAND, even on timeout"," --foreground run command in foreground"," --help display this help and exit"]};um={name:"timeout",async execute(t,e){if(I(t))return N(cm);let r=!1,n=0;for(let p=0;p<t.length;p++){let d=t[p];if(d==="--preserve-status")r=!0,n=p+1;else if(d==="--foreground")n=p+1;else if(d==="-k"||d==="--kill-after")p++,n=p+1;else if(d.startsWith("--kill-after="))n=p+1;else if(d==="-s"||d==="--signal")p++,n=p+1;else if(d.startsWith("--signal="))n=p+1;else{if(d.startsWith("--")&&d!=="--")return L("timeout",d);if(d.startsWith("-")&&d.length>1&&d!=="--")if(d.startsWith("-k"))n=p+1;else if(d.startsWith("-s"))n=p+1;else return L("timeout",d);else{n=p;break}}}let s=t.slice(n);if(s.length===0)return{stdout:"",stderr:`timeout: missing operand
402
+ `,exitCode:1};let i=s[0],o=lm(i);if(o===null)return{stdout:"",stderr:`timeout: invalid time interval '${i}'
403
403
  `,exitCode:1};let a=s.slice(1);if(a.length===0)return{stdout:"",stderr:`timeout: missing operand
404
404
  `,exitCode:1};if(!e.exec)return{stdout:"",stderr:`timeout: exec not available
405
- `,exitCode:1};let c=a.map(p=>p.includes(" ")||p.includes(" ")?`'${p.replace(/'/g,"'\\''")}'`:p).join(" "),l=new Promise(p=>{setTimeout(()=>p({timedOut:!0}),o)}),u=e.exec(c,{cwd:e.cwd}).then(p=>({timedOut:!1,result:p})),f=await Promise.race([l,u]);return f.timedOut?{stdout:"",stderr:"",exitCode:124}:f.result}}});var cc={};$(cc,{seqCommand:()=>em});var em,lc=A(()=>{"use strict";em={name:"seq",async execute(t){let e=`
405
+ `,exitCode:1};let c=a.map(p=>p.includes(" ")||p.includes(" ")?`'${p.replace(/'/g,"'\\''")}'`:p).join(" "),l=new Promise(p=>{setTimeout(()=>p({timedOut:!0}),o)}),u=e.exec(c,{cwd:e.cwd}).then(p=>({timedOut:!1,result:p})),f=await Promise.race([l,u]);return f.timedOut?{stdout:"",stderr:"",exitCode:124}:f.result}}});var hc={};$(hc,{seqCommand:()=>fm});var fm,mc=A(()=>{"use strict";fm={name:"seq",async execute(t){let e=`
406
406
  `,r=!1,n=[],s=0;for(;s<t.length;){let h=t[s];if(h==="-s"&&s+1<t.length){e=t[s+1],s+=2;continue}if(h==="-w"){r=!0,s++;continue}if(h==="--"){s++;break}if(h.startsWith("-")&&h!=="-"){if(h.startsWith("-s")&&h.length>2){e=h.slice(2),s++;continue}if((h==="-ws"||h==="-sw")&&(r=!0,s+1<t.length)){e=t[s+1],s+=2;continue}}n.push(h),s++}for(;s<t.length;)n.push(t[s]),s++;if(n.length===0)return{stdout:"",stderr:`seq: missing operand
407
407
  `,exitCode:1};let i=1,o=1,a;if(n.length===1?a=parseFloat(n[0]):n.length===2?(i=parseFloat(n[0]),a=parseFloat(n[1])):(i=parseFloat(n[0]),o=parseFloat(n[1]),a=parseFloat(n[2])),Number.isNaN(i)||Number.isNaN(o)||Number.isNaN(a))return{stdout:"",stderr:`seq: invalid floating point argument: '${n.find(g=>Number.isNaN(parseFloat(g)))}'
408
408
  `,exitCode:1};if(o===0)return{stdout:"",stderr:`seq: invalid Zero increment value: '0'
409
- `,exitCode:1};let c=[],l=h=>{let g=String(h),y=g.indexOf(".");return y===-1?0:g.length-y-1},u=Math.max(l(i),l(o),l(a)),f=1e5,p=0;if(o>0)for(let h=i;h<=a+1e-10&&!(p++>f);h+=o)c.push(u>0?h.toFixed(u):String(Math.round(h)));else for(let h=i;h>=a-1e-10&&!(p++>f);h+=o)c.push(u>0?h.toFixed(u):String(Math.round(h)));if(r&&c.length>0){let h=Math.max(...c.map(g=>g.replace("-","").length));for(let g=0;g<c.length;g++){let y=c[g].startsWith("-"),E=(y?c[g].slice(1):c[g]).padStart(h,"0");c[g]=y?`-${E}`:E}}let d=c.join(e);return{stdout:d?`${d}
410
- `:"",stderr:"",exitCode:0}}}});var uc={};$(uc,{exprCommand:()=>tm});function rm(t){if(t.length===1)return t[0];let e=0;function r(){let l=n();for(;e<t.length&&t[e]==="|";){e++;let u=n();if(l!=="0"&&l!=="")return l;l=u}return l}function n(){let l=s();for(;e<t.length&&t[e]==="&";){e++;let u=s();(l==="0"||l===""||u==="0"||u==="")&&(l="0")}return l}function s(){let l=i();for(;e<t.length;){let u=t[e];if(["=","!=","<",">","<=",">="].includes(u)){e++;let f=i(),p=parseInt(l,10),d=parseInt(f,10),h=!Number.isNaN(p)&&!Number.isNaN(d),g;u==="="?g=h?p===d:l===f:u==="!="?g=h?p!==d:l!==f:u==="<"?g=h?p<d:l<f:u===">"?g=h?p>d:l>f:u==="<="?g=h?p<=d:l<=f:g=h?p>=d:l>=f,l=g?"1":"0"}else break}return l}function i(){let l=o();for(;e<t.length;){let u=t[e];if(u==="+"||u==="-"){e++;let f=o(),p=parseInt(l,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");l=String(u==="+"?p+d:p-d)}else break}return l}function o(){let l=a();for(;e<t.length;){let u=t[e];if(u==="*"||u==="/"||u==="%"){e++;let f=a(),p=parseInt(l,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");if((u==="/"||u==="%")&&d===0)throw new Error("division by zero");u==="*"?l=String(p*d):u==="/"?l=String(Math.trunc(p/d)):l=String(p%d)}else break}return l}function a(){let l=c();for(;e<t.length&&t[e]===":";){e++;let u=c(),f=new RegExp(`^${u}`),p=l.match(f);p?l=p[1]!==void 0?p[1]:String(p[0].length):l="0"}return l}function c(){if(e>=t.length)throw new Error("syntax error");let l=t[e];if(l==="match"){e++;let u=c(),f=c(),p=new RegExp(f),d=u.match(p);return d?d[1]!==void 0?d[1]:String(d[0].length):"0"}if(l==="substr"){e++;let u=c(),f=parseInt(c(),10),p=parseInt(c(),10);if(Number.isNaN(f)||Number.isNaN(p))throw new Error("non-integer argument");return u.substring(f-1,f-1+p)}if(l==="index"){e++;let u=c(),f=c();for(let p=0;p<u.length;p++)if(f.includes(u[p]))return String(p+1);return"0"}if(l==="length"){e++;let u=c();return String(u.length)}if(l==="("){e++;let u=r();if(e>=t.length||t[e]!==")")throw new Error("syntax error");return e++,u}return e++,l}return r()}var tm,fc=A(()=>{"use strict";tm={name:"expr",async execute(t,e){if(t.length===0)return{stdout:"",stderr:`expr: missing operand
411
- `,exitCode:2};try{let r=rm(t),n=r==="0"||r===""?1:0;return{stdout:`${r}
409
+ `,exitCode:1};let c=[],l=h=>{let g=String(h),m=g.indexOf(".");return m===-1?0:g.length-m-1},u=Math.max(l(i),l(o),l(a)),f=1e5,p=0;if(o>0)for(let h=i;h<=a+1e-10&&!(p++>f);h+=o)c.push(u>0?h.toFixed(u):String(Math.round(h)));else for(let h=i;h>=a-1e-10&&!(p++>f);h+=o)c.push(u>0?h.toFixed(u):String(Math.round(h)));if(r&&c.length>0){let h=Math.max(...c.map(g=>g.replace("-","").length));for(let g=0;g<c.length;g++){let m=c[g].startsWith("-"),E=(m?c[g].slice(1):c[g]).padStart(h,"0");c[g]=m?`-${E}`:E}}let d=c.join(e);return{stdout:d?`${d}
410
+ `:"",stderr:"",exitCode:0}}}});var yc={};$(yc,{exprCommand:()=>pm});function dm(t){if(t.length===1)return t[0];let e=0;function r(){let l=n();for(;e<t.length&&t[e]==="|";){e++;let u=n();if(l!=="0"&&l!=="")return l;l=u}return l}function n(){let l=s();for(;e<t.length&&t[e]==="&";){e++;let u=s();(l==="0"||l===""||u==="0"||u==="")&&(l="0")}return l}function s(){let l=i();for(;e<t.length;){let u=t[e];if(["=","!=","<",">","<=",">="].includes(u)){e++;let f=i(),p=parseInt(l,10),d=parseInt(f,10),h=!Number.isNaN(p)&&!Number.isNaN(d),g;u==="="?g=h?p===d:l===f:u==="!="?g=h?p!==d:l!==f:u==="<"?g=h?p<d:l<f:u===">"?g=h?p>d:l>f:u==="<="?g=h?p<=d:l<=f:g=h?p>=d:l>=f,l=g?"1":"0"}else break}return l}function i(){let l=o();for(;e<t.length;){let u=t[e];if(u==="+"||u==="-"){e++;let f=o(),p=parseInt(l,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");l=String(u==="+"?p+d:p-d)}else break}return l}function o(){let l=a();for(;e<t.length;){let u=t[e];if(u==="*"||u==="/"||u==="%"){e++;let f=a(),p=parseInt(l,10),d=parseInt(f,10);if(Number.isNaN(p)||Number.isNaN(d))throw new Error("non-integer argument");if((u==="/"||u==="%")&&d===0)throw new Error("division by zero");u==="*"?l=String(p*d):u==="/"?l=String(Math.trunc(p/d)):l=String(p%d)}else break}return l}function a(){let l=c();for(;e<t.length&&t[e]===":";){e++;let u=c(),f=new RegExp(`^${u}`),p=l.match(f);p?l=p[1]!==void 0?p[1]:String(p[0].length):l="0"}return l}function c(){if(e>=t.length)throw new Error("syntax error");let l=t[e];if(l==="match"){e++;let u=c(),f=c(),p=new RegExp(f),d=u.match(p);return d?d[1]!==void 0?d[1]:String(d[0].length):"0"}if(l==="substr"){e++;let u=c(),f=parseInt(c(),10),p=parseInt(c(),10);if(Number.isNaN(f)||Number.isNaN(p))throw new Error("non-integer argument");return u.substring(f-1,f-1+p)}if(l==="index"){e++;let u=c(),f=c();for(let p=0;p<u.length;p++)if(f.includes(u[p]))return String(p+1);return"0"}if(l==="length"){e++;let u=c();return String(u.length)}if(l==="("){e++;let u=r();if(e>=t.length||t[e]!==")")throw new Error("syntax error");return e++,u}return e++,l}return r()}var pm,gc=A(()=>{"use strict";pm={name:"expr",async execute(t,e){if(t.length===0)return{stdout:"",stderr:`expr: missing operand
411
+ `,exitCode:2};try{let r=dm(t),n=r==="0"||r===""?1:0;return{stdout:`${r}
412
412
  `,stderr:"",exitCode:n}}catch(r){return{stdout:"",stderr:`expr: ${r.message}
413
- `,exitCode:2}}}}});function sm(t){function e(d,h){return d<<h|d>>>32-h}let r=new Uint32Array([3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745]),n=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],s=t.length*8,i=(t.length%64<56?56:120)-t.length%64,o=new Uint8Array(t.length+i+8);o.set(t),o[t.length]=128;let a=new DataView(o.buffer);a.setUint32(o.length-8,s>>>0,!0),a.setUint32(o.length-4,Math.floor(s/4294967296),!0);let c=1732584193,l=4023233417,u=2562383102,f=271733878;for(let d=0;d<o.length;d+=64){let h=new Uint32Array(16);for(let b=0;b<16;b++)h[b]=a.getUint32(d+b*4,!0);let g=c,y=l,w=u,E=f;for(let b=0;b<64;b++){let S,C;b<16?(S=y&w|~y&E,C=b):b<32?(S=E&y|~E&w,C=(5*b+1)%16):b<48?(S=y^w^E,C=(3*b+5)%16):(S=w^(y|~E),C=7*b%16),S=S+g+r[b]+h[C]>>>0,g=E,E=w,w=y,y=y+e(S,n[b])>>>0}c=c+g>>>0,l=l+y>>>0,u=u+w>>>0,f=f+E>>>0}let p=new Uint8Array(16);return new DataView(p.buffer).setUint32(0,c,!0),new DataView(p.buffer).setUint32(4,l,!0),new DataView(p.buffer).setUint32(8,u,!0),new DataView(p.buffer).setUint32(12,f,!0),Array.from(p).map(d=>d.toString(16).padStart(2,"0")).join("")}async function pc(t,e){if(t==="md5")return sm(e);let r=await globalThis.crypto.subtle.digest(nm[t],new Uint8Array(e).buffer);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")}function Tt(t,e,r){let n={name:t,summary:r,usage:`${t} [OPTION]... [FILE]...`,options:["-c, --check read checksums from FILEs and check them"," --help display this help and exit"]};return{name:t,async execute(s,i){if(I(s))return N(n);let o=!1,a=[];for(let f of s)if(f==="-c"||f==="--check")o=!0;else if(!(f==="-b"||f==="-t"||f==="--binary"||f==="--text")){if(f.startsWith("-")&&f!=="-")return L(t,f);a.push(f)}a.length===0&&a.push("-");let c=async f=>{if(f==="-")return new TextEncoder().encode(i.stdin);try{return await i.fs.readFileBuffer(i.fs.resolvePath(i.cwd,f))}catch{return null}};if(o){let f=0,p="";for(let d of a){let h=d==="-"?i.stdin:await i.fs.readFile(i.fs.resolvePath(i.cwd,d)).catch(()=>null);if(h===null)return{stdout:"",stderr:`${t}: ${d}: No such file or directory
413
+ `,exitCode:2}}}}});function mm(t){function e(d,h){return d<<h|d>>>32-h}let r=new Uint32Array([3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745]),n=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],s=t.length*8,i=(t.length%64<56?56:120)-t.length%64,o=new Uint8Array(t.length+i+8);o.set(t),o[t.length]=128;let a=new DataView(o.buffer);a.setUint32(o.length-8,s>>>0,!0),a.setUint32(o.length-4,Math.floor(s/4294967296),!0);let c=1732584193,l=4023233417,u=2562383102,f=271733878;for(let d=0;d<o.length;d+=64){let h=new Uint32Array(16);for(let b=0;b<16;b++)h[b]=a.getUint32(d+b*4,!0);let g=c,m=l,w=u,E=f;for(let b=0;b<64;b++){let S,C;b<16?(S=m&w|~m&E,C=b):b<32?(S=E&m|~E&w,C=(5*b+1)%16):b<48?(S=m^w^E,C=(3*b+5)%16):(S=w^(m|~E),C=7*b%16),S=S+g+r[b]+h[C]>>>0,g=E,E=w,w=m,m=m+e(S,n[b])>>>0}c=c+g>>>0,l=l+m>>>0,u=u+w>>>0,f=f+E>>>0}let p=new Uint8Array(16);return new DataView(p.buffer).setUint32(0,c,!0),new DataView(p.buffer).setUint32(4,l,!0),new DataView(p.buffer).setUint32(8,u,!0),new DataView(p.buffer).setUint32(12,f,!0),Array.from(p).map(d=>d.toString(16).padStart(2,"0")).join("")}async function xc(t,e){if(t==="md5")return mm(e);let r=await globalThis.crypto.subtle.digest(hm[t],new Uint8Array(e).buffer);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")}function Tt(t,e,r){let n={name:t,summary:r,usage:`${t} [OPTION]... [FILE]...`,options:["-c, --check read checksums from FILEs and check them"," --help display this help and exit"]};return{name:t,async execute(s,i){if(I(s))return N(n);let o=!1,a=[];for(let f of s)if(f==="-c"||f==="--check")o=!0;else if(!(f==="-b"||f==="-t"||f==="--binary"||f==="--text")){if(f.startsWith("-")&&f!=="-")return L(t,f);a.push(f)}a.length===0&&a.push("-");let c=async f=>{if(f==="-")return new TextEncoder().encode(i.stdin);try{return await i.fs.readFileBuffer(i.fs.resolvePath(i.cwd,f))}catch{return null}};if(o){let f=0,p="";for(let d of a){let h=d==="-"?i.stdin:await i.fs.readFile(i.fs.resolvePath(i.cwd,d)).catch(()=>null);if(h===null)return{stdout:"",stderr:`${t}: ${d}: No such file or directory
414
414
  `,exitCode:1};for(let g of h.split(`
415
- `)){let y=g.match(/^([a-fA-F0-9]+)\s+[* ]?(.+)$/);if(!y)continue;let[,w,E]=y,b=await c(E);if(b===null){p+=`${E}: FAILED open or read
416
- `,f++;continue}let S=await pc(e,b)===w.toLowerCase();p+=`${E}: ${S?"OK":"FAILED"}
415
+ `)){let m=g.match(/^([a-fA-F0-9]+)\s+[* ]?(.+)$/);if(!m)continue;let[,w,E]=m,b=await c(E);if(b===null){p+=`${E}: FAILED open or read
416
+ `,f++;continue}let S=await xc(e,b)===w.toLowerCase();p+=`${E}: ${S?"OK":"FAILED"}
417
417
  `,S||f++}}return f>0&&(p+=`${t}: WARNING: ${f} computed checksum${f>1?"s":""} did NOT match
418
418
  `),{stdout:p,stderr:"",exitCode:f>0?1:0}}let l="",u=0;for(let f of a){let p=await c(f);if(p===null){l+=`${t}: ${f}: No such file or directory
419
- `,u=1;continue}l+=`${await pc(e,p)} ${f}
420
- `}return{stdout:l,stderr:"",exitCode:u}}}}var nm,Mr=A(()=>{"use strict";_();nm={sha1:"SHA-1",sha256:"SHA-256"}});var dc={};$(dc,{md5sumCommand:()=>im});var im,hc=A(()=>{"use strict";Mr();im=Tt("md5sum","md5","compute MD5 message digest")});var mc={};$(mc,{sha1sumCommand:()=>om});var om,yc=A(()=>{"use strict";Mr();om=Tt("sha1sum","sha1","compute SHA1 message digest")});var gc={};$(gc,{sha256sumCommand:()=>am});var am,xc=A(()=>{"use strict";Mr();am=Tt("sha256sum","sha256","compute SHA256 message digest")});var cm,Q,dt,Jt=A(()=>{cm="End-Of-Stream",Q=class extends Error{constructor(){super(cm),this.name="EndOfStreamError"}},dt=class extends Error{constructor(e="The operation was aborted"){super(e),this.name="AbortError"}}});var wc=A(()=>{});var ht,_r=A(()=>{Jt();ht=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(e,r=!1){let n=await this.read(e,r);return this.peekQueue.push(e.subarray(0,n)),n}async read(e,r=!1){if(e.length===0)return 0;let n=this.readFromPeekBuffer(e);if(this.endOfStream||(n+=await this.readRemainderFromStream(e.subarray(n),r)),n===0&&!r)throw new Q;return n}readFromPeekBuffer(e){let r=e.length,n=0;for(;this.peekQueue.length>0&&r>0;){let s=this.peekQueue.pop();if(!s)throw new Error("peekData should be defined");let i=Math.min(s.length,r);e.set(s.subarray(0,i),n),n+=i,r-=i,i<s.length&&this.peekQueue.push(s.subarray(i))}return n}async readRemainderFromStream(e,r){let n=0;for(;n<e.length&&!this.endOfStream;){if(this.interrupted)throw new dt;let s=await this.readFromStream(e.subarray(n),r);if(s===0)break;n+=s}if(!r&&n<e.length)throw new Q;return n}}});var Ec=A(()=>{Jt();wc();_r()});var Br,bc=A(()=>{_r();Br=class extends ht{constructor(e){super(),this.reader=e}async abort(){return this.close()}async close(){this.reader.releaseLock()}}});var Yt,os=A(()=>{bc();Yt=class extends Br{async readFromStream(e,r){if(e.length===0)return 0;let n=await this.reader.read(new Uint8Array(e.length),{min:r?void 0:e.length});return n.done&&(this.endOfStream=n.done),n.value?(e.set(n.value),n.value.length):0}}});var Ft,as=A(()=>{Jt();_r();Ft=class extends ht{constructor(e){super(),this.reader=e,this.buffer=null}writeChunk(e,r){let n=Math.min(r.length,e.length);return e.set(r.subarray(0,n)),n<r.length?this.buffer=r.subarray(n):this.buffer=null,n}async readFromStream(e,r){if(e.length===0)return 0;let n=0;for(this.buffer&&(n+=this.writeChunk(e,this.buffer));n<e.length&&!this.endOfStream;){let s=await this.reader.read();if(s.done){this.endOfStream=!0;break}s.value&&(n+=this.writeChunk(e.subarray(n),s.value))}if(!r&&n===0&&this.endOfStream)throw new Q;return n}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}}});function cs(t){try{let e=t.getReader({mode:"byob"});return e instanceof ReadableStreamDefaultReader?new Ft(e):new Yt(e)}catch(e){if(e instanceof TypeError)return new Ft(t.getReader());throw e}}var Sc=A(()=>{os();as()});var rt=A(()=>{Jt();Ec();os();as();Sc()});var je,Dt=A(()=>{rt();je=class{constructor(e){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=e?.onClose,e?.abortSignal&&e.abortSignal.addEventListener("abort",()=>{this.abort()})}async readToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.readBuffer(n,{position:r})<e.len)throw new Q;return e.get(n,0)}async peekToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.peekBuffer(n,{position:r})<e.len)throw new Q;return e.get(n,0)}async readNumber(e){if(await this.readBuffer(this.numBuffer,{length:e.len})<e.len)throw new Q;return e.get(this.numBuffer,0)}async peekNumber(e){if(await this.peekBuffer(this.numBuffer,{length:e.len})<e.len)throw new Q;return e.get(this.numBuffer,0)}async ignore(e){if(this.fileInfo.size!==void 0){let r=this.fileInfo.size-this.position;if(e>r)return this.position+=r,r}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,r){if(!this.supportsRandomAccess()&&r&&r.position!==void 0&&r.position<this.position)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:e.length,position:this.position,...r}}abort(){return Promise.resolve()}}});var um,Wr,Ac=A(()=>{Dt();rt();um=256e3,Wr=class extends je{constructor(e,r){super(r),this.streamReader=e,this.fileInfo=r?.fileInfo??{}}async readBuffer(e,r){let n=this.normalizeOptions(e,r),s=n.position-this.position;if(s>0)return await this.ignore(s),this.readBuffer(e,r);if(s<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(n.length===0)return 0;let i=await this.streamReader.read(e.subarray(0,n.length),n.mayBeLess);if(this.position+=i,(!r||!r.mayBeLess)&&i<n.length)throw new Q;return i}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=0;if(n.position){let i=n.position-this.position;if(i>0){let o=new Uint8Array(n.length+i);return s=await this.peekBuffer(o,{mayBeLess:n.mayBeLess}),e.set(o.subarray(i)),s-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}if(n.length>0){try{s=await this.streamReader.peek(e.subarray(0,n.length),n.mayBeLess)}catch(i){if(r?.mayBeLess&&i instanceof Q)return 0;throw i}if(!n.mayBeLess&&s<n.length)throw new Q}return s}async ignore(e){let r=Math.min(um,e),n=new Uint8Array(r),s=0;for(;s<e;){let i=e-s,o=await this.readBuffer(n,{length:Math.min(r,i)});if(o<0)return o;s+=o}return s}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}}});var Ur,Cc=A(()=>{rt();Dt();Ur=class extends je{constructor(e,r){super(r),this.uint8Array=e,this.fileInfo={...r?.fileInfo??{},size:e.length}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.uint8Array.length-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new Q;return e.set(this.uint8Array.subarray(n.position,n.position+s)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});var Hr,kc=A(()=>{rt();Dt();Hr=class extends je{constructor(e,r){super(r),this.blob=e,this.fileInfo={...r?.fileInfo??{},size:e.size,mimeType:e.type}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.blob.size-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new Q;let i=await this.blob.slice(n.position,n.position+s).arrayBuffer();return e.set(new Uint8Array(i)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});function ls(t,e){let r=cs(t),n=e??{},s=n.onClose;return n.onClose=async()=>{if(await r.close(),s)return s()},new Wr(r,n)}function Nc(t,e){return new Ur(t,e)}function Ic(t,e){return new Hr(t,e)}var jr=A(()=>{rt();Ac();Cc();kc();rt();Dt()});import{open as pm}from"node:fs/promises";var er,us=A(()=>{Dt();rt();er=class t extends je{static async fromFile(e){let r=await pm(e,"r"),n=await r.stat();return new t(r,{fileInfo:{path:e,size:n.size}})}constructor(e,r){super(r),this.fileHandle=e,this.fileInfo=r.fileInfo}async readBuffer(e,r){let n=this.normalizeOptions(e,r);if(this.position=n.position,n.length===0)return 0;let s=await this.fileHandle.read(e,0,n.length,n.position);if(this.position+=s.bytesRead,s.bytesRead<n.length&&(!r||!r.mayBeLess))throw new Q;return s.bytesRead}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=await this.fileHandle.read(e,0,n.length,n.position);if(!n.mayBeLess&&s.bytesRead<n.length)throw new Q;return s.bytesRead}async close(){return await this.fileHandle.close(),super.close()}setPosition(e){this.position=e}supportsRandomAccess(){return!0}}});var dm,vc=A(()=>{jr();us();us();jr();dm=er.fromFile});var Rc=St(fs=>{fs.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,c=(1<<a)-1,l=c>>1,u=-7,f=r?s-1:0,p=r?-1:1,d=t[e+f];for(f+=p,i=d&(1<<-u)-1,d>>=-u,u+=a;u>0;i=i*256+t[e+f],f+=p,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=n;u>0;o=o*256+t[e+f],f+=p,u-=8);if(i===0)i=1-l;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-l}return(d?-1:1)*o*Math.pow(2,i-n)};fs.write=function(t,e,r,n,s,i){var o,a,c,l=i*8-s-1,u=(1<<l)-1,f=u>>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,h=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+f>=1?e+=p/c:e+=p*Math.pow(2,1-f),e*c>=2&&(o++,c/=2),o+f>=u?(a=0,o=u):o+f>=1?(a=(e*c-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=h,a/=256,s-=8);for(o=o<<s|a,l+=s;l>0;t[r+d]=o&255,d+=h,o/=256,l-=8);t[r+d-h]|=g*128}});function $c(t,e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":return typeof globalThis.TextDecoder<"u"?new globalThis.TextDecoder("utf-8").decode(t):ym(t);case"utf-16le":return gm(t);case"ascii":return xm(t);case"latin1":case"iso-8859-1":return wm(t);case"windows-1252":return Em(t);default:throw new RangeError(`Encoding '${e}' not supported`)}}function ym(t){let e="",r=0;for(;r<t.length;){let n=t[r++];if(n<128)e+=String.fromCharCode(n);else if(n<224){let s=t[r++]&63;e+=String.fromCharCode((n&31)<<6|s)}else if(n<240){let s=t[r++]&63,i=t[r++]&63;e+=String.fromCharCode((n&15)<<12|s<<6|i)}else{let s=t[r++]&63,i=t[r++]&63,o=t[r++]&63,a=(n&7)<<18|s<<12|i<<6|o;a-=65536,e+=String.fromCharCode(55296+(a>>10&1023),56320+(a&1023))}}return e}function gm(t){let e="";for(let r=0;r<t.length;r+=2)e+=String.fromCharCode(t[r]|t[r+1]<<8);return e}function xm(t){return String.fromCharCode(...t.map(e=>e&127))}function wm(t){return String.fromCharCode(...t)}function Em(t){let e="";for(let r of t)r>=128&&r<=159&&ps[r]?e+=ps[r]:e+=String.fromCharCode(r);return e}var ps,mm,Oc=A(()=>{ps={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"},mm={};for(let[t,e]of Object.entries(ps))mm[e]=Number.parseInt(t)});function be(t){return new DataView(t.buffer,t.byteOffset)}var Pc,Tc,ee,Lt,oe,Fc,Dc,Lc,Se,tr=A(()=>{Pc=Si(Rc(),1);Oc();Tc={len:1,get(t,e){return be(t).getUint8(e)},put(t,e,r){return be(t).setUint8(e,r),e+1}},ee={len:2,get(t,e){return be(t).getUint16(e,!0)},put(t,e,r){return be(t).setUint16(e,r,!0),e+2}},Lt={len:2,get(t,e){return be(t).getUint16(e)},put(t,e,r){return be(t).setUint16(e,r),e+2}},oe={len:4,get(t,e){return be(t).getUint32(e,!0)},put(t,e,r){return be(t).setUint32(e,r,!0),e+4}},Fc={len:4,get(t,e){return be(t).getUint32(e)},put(t,e,r){return be(t).setUint32(e,r),e+4}},Dc={len:4,get(t,e){return be(t).getInt32(e)},put(t,e,r){return be(t).setInt32(e,r),e+4}},Lc={len:8,get(t,e){return be(t).getBigUint64(e,!0)},put(t,e,r){return be(t).setBigUint64(e,r,!0),e+8}},Se=class{constructor(e,r){this.len=e,this.encoding=r}get(e,r=0){let n=e.subarray(r,r+this.len);return $c(n,this.encoding)}}});var _c=St((kE,Mc)=>{var Mt=1e3,_t=Mt*60,Bt=_t*60,mt=Bt*24,Sm=mt*7,Am=mt*365.25;Mc.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Cm(t);if(r==="number"&&isFinite(t))return e.long?Nm(t):km(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Cm(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Am;case"weeks":case"week":case"w":return r*Sm;case"days":case"day":case"d":return r*mt;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Bt;case"minutes":case"minute":case"mins":case"min":case"m":return r*_t;case"seconds":case"second":case"secs":case"sec":case"s":return r*Mt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function km(t){var e=Math.abs(t);return e>=mt?Math.round(t/mt)+"d":e>=Bt?Math.round(t/Bt)+"h":e>=_t?Math.round(t/_t)+"m":e>=Mt?Math.round(t/Mt)+"s":t+"ms"}function Nm(t){var e=Math.abs(t);return e>=mt?zr(t,e,mt,"day"):e>=Bt?zr(t,e,Bt,"hour"):e>=_t?zr(t,e,_t,"minute"):e>=Mt?zr(t,e,Mt,"second"):t+" ms"}function zr(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var ds=St((NE,Bc)=>{function Im(t){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=s,r.enabled=a,r.humanize=_c(),r.destroy=l,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let p=0;p<u.length;p++)f=(f<<5)-f+u.charCodeAt(p),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(u){let f,p=null,d,h;function g(...y){if(!g.enabled)return;let w=g,E=Number(new Date),b=E-(f||E);w.diff=b,w.prev=f,w.curr=E,f=E,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let S=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(O,D)=>{if(O==="%%")return"%";S++;let F=r.formatters[D];if(typeof F=="function"){let U=y[S];O=F.call(w,U),y.splice(S,1),S--}return O}),r.formatArgs.call(w,y),(w.log||r.log).apply(w,y)}return g.namespace=u,g.useColors=r.useColors(),g.color=r.selectColor(u),g.extend=n,g.destroy=r.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(u)),h),set:y=>{p=y}}),typeof r.init=="function"&&r.init(g),g}function n(u,f){let p=r(this.namespace+(typeof f>"u"?":":f)+u);return p.log=this.log,p}function s(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let p of f)p[0]==="-"?r.skips.push(p.slice(1)):r.names.push(p)}function i(u,f){let p=0,d=0,h=-1,g=0;for(;p<u.length;)if(d<f.length&&(f[d]===u[p]||f[d]==="*"))f[d]==="*"?(h=d,g=p,d++):(p++,d++);else if(h!==-1)d=h+1,g++,p=g;else return!1;for(;d<f.length&&f[d]==="*";)d++;return d===f.length}function o(){let u=[...r.names,...r.skips.map(f=>"-"+f)].join(",");return r.enable(""),u}function a(u){for(let f of r.skips)if(i(u,f))return!1;for(let f of r.names)if(i(u,f))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Bc.exports=Im});var Wc=St((Ae,Gr)=>{Ae.formatArgs=Rm;Ae.save=$m;Ae.load=Om;Ae.useColors=vm;Ae.storage=Pm();Ae.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ae.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function vm(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Rm(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Gr.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(r++,s==="%c"&&(n=r))}),t.splice(n,0,e)}Ae.log=console.debug||console.log||(()=>{});function $m(t){try{t?Ae.storage.setItem("debug",t):Ae.storage.removeItem("debug")}catch{}}function Om(){let t;try{t=Ae.storage.getItem("debug")||Ae.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Pm(){try{return localStorage}catch{}}Gr.exports=ds()(Ae);var{formatters:Tm}=Gr.exports;Tm.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Hc=St((pe,Vr)=>{var Fm=vn("tty"),qr=vn("util");pe.init=Um;pe.log=_m;pe.formatArgs=Lm;pe.save=Bm;pe.load=Wm;pe.useColors=Dm;pe.destroy=qr.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");pe.colors=[6,2,3,4,5,1];try{let t=vn("supports-color");t&&(t.stderr||t).level>=2&&(pe.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}pe.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(s,i)=>i.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});function Dm(){return"colors"in pe.inspectOpts?!!pe.inspectOpts.colors:Fm.isatty(process.stderr.fd)}function Lm(t){let{namespace:e,useColors:r}=this;if(r){let n=this.color,s="\x1B[3"+(n<8?n:"8;5;"+n),i=` ${s};1m${e} \x1B[0m`;t[0]=i+t[0].split(`
419
+ `,u=1;continue}l+=`${await xc(e,p)} ${f}
420
+ `}return{stdout:l,stderr:"",exitCode:u}}}}var hm,Mr=A(()=>{"use strict";_();hm={sha1:"SHA-1",sha256:"SHA-256"}});var wc={};$(wc,{md5sumCommand:()=>ym});var ym,Ec=A(()=>{"use strict";Mr();ym=Tt("md5sum","md5","compute MD5 message digest")});var bc={};$(bc,{sha1sumCommand:()=>gm});var gm,Sc=A(()=>{"use strict";Mr();gm=Tt("sha1sum","sha1","compute SHA1 message digest")});var Ac={};$(Ac,{sha256sumCommand:()=>xm});var xm,Cc=A(()=>{"use strict";Mr();xm=Tt("sha256sum","sha256","compute SHA256 message digest")});var wm,Q,dt,Jt=A(()=>{wm="End-Of-Stream",Q=class extends Error{constructor(){super(wm),this.name="EndOfStreamError"}},dt=class extends Error{constructor(e="The operation was aborted"){super(e),this.name="AbortError"}}});var kc=A(()=>{});var ht,_r=A(()=>{Jt();ht=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(e,r=!1){let n=await this.read(e,r);return this.peekQueue.push(e.subarray(0,n)),n}async read(e,r=!1){if(e.length===0)return 0;let n=this.readFromPeekBuffer(e);if(this.endOfStream||(n+=await this.readRemainderFromStream(e.subarray(n),r)),n===0&&!r)throw new Q;return n}readFromPeekBuffer(e){let r=e.length,n=0;for(;this.peekQueue.length>0&&r>0;){let s=this.peekQueue.pop();if(!s)throw new Error("peekData should be defined");let i=Math.min(s.length,r);e.set(s.subarray(0,i),n),n+=i,r-=i,i<s.length&&this.peekQueue.push(s.subarray(i))}return n}async readRemainderFromStream(e,r){let n=0;for(;n<e.length&&!this.endOfStream;){if(this.interrupted)throw new dt;let s=await this.readFromStream(e.subarray(n),r);if(s===0)break;n+=s}if(!r&&n<e.length)throw new Q;return n}}});var Nc=A(()=>{Jt();kc();_r()});var Br,Ic=A(()=>{_r();Br=class extends ht{constructor(e){super(),this.reader=e}async abort(){return this.close()}async close(){this.reader.releaseLock()}}});var Yt,ls=A(()=>{Ic();Yt=class extends Br{async readFromStream(e,r){if(e.length===0)return 0;let n=await this.reader.read(new Uint8Array(e.length),{min:r?void 0:e.length});return n.done&&(this.endOfStream=n.done),n.value?(e.set(n.value),n.value.length):0}}});var Ft,us=A(()=>{Jt();_r();Ft=class extends ht{constructor(e){super(),this.reader=e,this.buffer=null}writeChunk(e,r){let n=Math.min(r.length,e.length);return e.set(r.subarray(0,n)),n<r.length?this.buffer=r.subarray(n):this.buffer=null,n}async readFromStream(e,r){if(e.length===0)return 0;let n=0;for(this.buffer&&(n+=this.writeChunk(e,this.buffer));n<e.length&&!this.endOfStream;){let s=await this.reader.read();if(s.done){this.endOfStream=!0;break}s.value&&(n+=this.writeChunk(e.subarray(n),s.value))}if(!r&&n===0&&this.endOfStream)throw new Q;return n}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}}});function fs(t){try{let e=t.getReader({mode:"byob"});return e instanceof ReadableStreamDefaultReader?new Ft(e):new Yt(e)}catch(e){if(e instanceof TypeError)return new Ft(t.getReader());throw e}}var vc=A(()=>{ls();us()});var rt=A(()=>{Jt();Nc();ls();us();vc()});var He,Dt=A(()=>{rt();He=class{constructor(e){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=e?.onClose,e?.abortSignal&&e.abortSignal.addEventListener("abort",()=>{this.abort()})}async readToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.readBuffer(n,{position:r})<e.len)throw new Q;return e.get(n,0)}async peekToken(e,r=this.position){let n=new Uint8Array(e.len);if(await this.peekBuffer(n,{position:r})<e.len)throw new Q;return e.get(n,0)}async readNumber(e){if(await this.readBuffer(this.numBuffer,{length:e.len})<e.len)throw new Q;return e.get(this.numBuffer,0)}async peekNumber(e){if(await this.peekBuffer(this.numBuffer,{length:e.len})<e.len)throw new Q;return e.get(this.numBuffer,0)}async ignore(e){if(this.fileInfo.size!==void 0){let r=this.fileInfo.size-this.position;if(e>r)return this.position+=r,r}return this.position+=e,e}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(e,r){if(!this.supportsRandomAccess()&&r&&r.position!==void 0&&r.position<this.position)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:e.length,position:this.position,...r}}abort(){return Promise.resolve()}}});var bm,Wr,Rc=A(()=>{Dt();rt();bm=256e3,Wr=class extends He{constructor(e,r){super(r),this.streamReader=e,this.fileInfo=r?.fileInfo??{}}async readBuffer(e,r){let n=this.normalizeOptions(e,r),s=n.position-this.position;if(s>0)return await this.ignore(s),this.readBuffer(e,r);if(s<0)throw new Error("`options.position` must be equal or greater than `tokenizer.position`");if(n.length===0)return 0;let i=await this.streamReader.read(e.subarray(0,n.length),n.mayBeLess);if(this.position+=i,(!r||!r.mayBeLess)&&i<n.length)throw new Q;return i}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=0;if(n.position){let i=n.position-this.position;if(i>0){let o=new Uint8Array(n.length+i);return s=await this.peekBuffer(o,{mayBeLess:n.mayBeLess}),e.set(o.subarray(i)),s-i}if(i<0)throw new Error("Cannot peek from a negative offset in a stream")}if(n.length>0){try{s=await this.streamReader.peek(e.subarray(0,n.length),n.mayBeLess)}catch(i){if(r?.mayBeLess&&i instanceof Q)return 0;throw i}if(!n.mayBeLess&&s<n.length)throw new Q}return s}async ignore(e){let r=Math.min(bm,e),n=new Uint8Array(r),s=0;for(;s<e;){let i=e-s,o=await this.readBuffer(n,{length:Math.min(r,i)});if(o<0)return o;s+=o}return s}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}}});var Ur,$c=A(()=>{rt();Dt();Ur=class extends He{constructor(e,r){super(r),this.uint8Array=e,this.fileInfo={...r?.fileInfo??{},size:e.length}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.uint8Array.length-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new Q;return e.set(this.uint8Array.subarray(n.position,n.position+s)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});var zr,Oc=A(()=>{rt();Dt();zr=class extends He{constructor(e,r){super(r),this.blob=e,this.fileInfo={...r?.fileInfo??{},size:e.size,mimeType:e.type}}async readBuffer(e,r){r?.position&&(this.position=r.position);let n=await this.peekBuffer(e,r);return this.position+=n,n}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=Math.min(this.blob.size-n.position,n.length);if(!n.mayBeLess&&s<n.length)throw new Q;let i=await this.blob.slice(n.position,n.position+s).arrayBuffer();return e.set(new Uint8Array(i)),s}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(e){this.position=e}}});function ps(t,e){let r=fs(t),n=e??{},s=n.onClose;return n.onClose=async()=>{if(await r.close(),s)return s()},new Wr(r,n)}function Pc(t,e){return new Ur(t,e)}function Tc(t,e){return new zr(t,e)}var Hr=A(()=>{rt();Rc();$c();Oc();rt();Dt()});import{open as Am}from"node:fs/promises";var er,ds=A(()=>{Dt();rt();er=class t extends He{static async fromFile(e){let r=await Am(e,"r"),n=await r.stat();return new t(r,{fileInfo:{path:e,size:n.size}})}constructor(e,r){super(r),this.fileHandle=e,this.fileInfo=r.fileInfo}async readBuffer(e,r){let n=this.normalizeOptions(e,r);if(this.position=n.position,n.length===0)return 0;let s=await this.fileHandle.read(e,0,n.length,n.position);if(this.position+=s.bytesRead,s.bytesRead<n.length&&(!r||!r.mayBeLess))throw new Q;return s.bytesRead}async peekBuffer(e,r){let n=this.normalizeOptions(e,r),s=await this.fileHandle.read(e,0,n.length,n.position);if(!n.mayBeLess&&s.bytesRead<n.length)throw new Q;return s.bytesRead}async close(){return await this.fileHandle.close(),super.close()}setPosition(e){this.position=e}supportsRandomAccess(){return!0}}});var Cm,Fc=A(()=>{Hr();ds();ds();Hr();Cm=er.fromFile});var Dc=St(hs=>{hs.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,c=(1<<a)-1,l=c>>1,u=-7,f=r?s-1:0,p=r?-1:1,d=t[e+f];for(f+=p,i=d&(1<<-u)-1,d>>=-u,u+=a;u>0;i=i*256+t[e+f],f+=p,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=n;u>0;o=o*256+t[e+f],f+=p,u-=8);if(i===0)i=1-l;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-l}return(d?-1:1)*o*Math.pow(2,i-n)};hs.write=function(t,e,r,n,s,i){var o,a,c,l=i*8-s-1,u=(1<<l)-1,f=u>>1,p=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,h=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+f>=1?e+=p/c:e+=p*Math.pow(2,1-f),e*c>=2&&(o++,c/=2),o+f>=u?(a=0,o=u):o+f>=1?(a=(e*c-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=h,a/=256,s-=8);for(o=o<<s|a,l+=s;l>0;t[r+d]=o&255,d+=h,o/=256,l-=8);t[r+d-h]|=g*128}});function Lc(t,e="utf-8"){switch(e.toLowerCase()){case"utf-8":case"utf8":return typeof globalThis.TextDecoder<"u"?new globalThis.TextDecoder("utf-8").decode(t):Im(t);case"utf-16le":return vm(t);case"ascii":return Rm(t);case"latin1":case"iso-8859-1":return $m(t);case"windows-1252":return Om(t);default:throw new RangeError(`Encoding '${e}' not supported`)}}function Im(t){let e="",r=0;for(;r<t.length;){let n=t[r++];if(n<128)e+=String.fromCharCode(n);else if(n<224){let s=t[r++]&63;e+=String.fromCharCode((n&31)<<6|s)}else if(n<240){let s=t[r++]&63,i=t[r++]&63;e+=String.fromCharCode((n&15)<<12|s<<6|i)}else{let s=t[r++]&63,i=t[r++]&63,o=t[r++]&63,a=(n&7)<<18|s<<12|i<<6|o;a-=65536,e+=String.fromCharCode(55296+(a>>10&1023),56320+(a&1023))}}return e}function vm(t){let e="";for(let r=0;r<t.length;r+=2)e+=String.fromCharCode(t[r]|t[r+1]<<8);return e}function Rm(t){return String.fromCharCode(...t.map(e=>e&127))}function $m(t){return String.fromCharCode(...t)}function Om(t){let e="";for(let r of t)r>=128&&r<=159&&ms[r]?e+=ms[r]:e+=String.fromCharCode(r);return e}var ms,Nm,Mc=A(()=>{ms={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"},Nm={};for(let[t,e]of Object.entries(ms))Nm[e]=Number.parseInt(t)});function be(t){return new DataView(t.buffer,t.byteOffset)}var _c,Bc,ee,Lt,oe,Wc,Uc,zc,Se,tr=A(()=>{_c=vi(Dc(),1);Mc();Bc={len:1,get(t,e){return be(t).getUint8(e)},put(t,e,r){return be(t).setUint8(e,r),e+1}},ee={len:2,get(t,e){return be(t).getUint16(e,!0)},put(t,e,r){return be(t).setUint16(e,r,!0),e+2}},Lt={len:2,get(t,e){return be(t).getUint16(e)},put(t,e,r){return be(t).setUint16(e,r),e+2}},oe={len:4,get(t,e){return be(t).getUint32(e,!0)},put(t,e,r){return be(t).setUint32(e,r,!0),e+4}},Wc={len:4,get(t,e){return be(t).getUint32(e)},put(t,e,r){return be(t).setUint32(e,r),e+4}},Uc={len:4,get(t,e){return be(t).getInt32(e)},put(t,e,r){return be(t).setInt32(e,r),e+4}},zc={len:8,get(t,e){return be(t).getBigUint64(e,!0)},put(t,e,r){return be(t).setBigUint64(e,r,!0),e+8}},Se=class{constructor(e,r){this.len=e,this.encoding=r}get(e,r=0){let n=e.subarray(r,r+this.len);return Lc(n,this.encoding)}}});var jc=St((qE,Hc)=>{var Mt=1e3,_t=Mt*60,Bt=_t*60,mt=Bt*24,Tm=mt*7,Fm=mt*365.25;Hc.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Dm(t);if(r==="number"&&isFinite(t))return e.long?Mm(t):Lm(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Dm(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Fm;case"weeks":case"week":case"w":return r*Tm;case"days":case"day":case"d":return r*mt;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Bt;case"minutes":case"minute":case"mins":case"min":case"m":return r*_t;case"seconds":case"second":case"secs":case"sec":case"s":return r*Mt;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Lm(t){var e=Math.abs(t);return e>=mt?Math.round(t/mt)+"d":e>=Bt?Math.round(t/Bt)+"h":e>=_t?Math.round(t/_t)+"m":e>=Mt?Math.round(t/Mt)+"s":t+"ms"}function Mm(t){var e=Math.abs(t);return e>=mt?jr(t,e,mt,"day"):e>=Bt?jr(t,e,Bt,"hour"):e>=_t?jr(t,e,_t,"minute"):e>=Mt?jr(t,e,Mt,"second"):t+" ms"}function jr(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var ys=St((VE,Gc)=>{function _m(t){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=s,r.enabled=a,r.humanize=jc(),r.destroy=l,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let p=0;p<u.length;p++)f=(f<<5)-f+u.charCodeAt(p),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(u){let f,p=null,d,h;function g(...m){if(!g.enabled)return;let w=g,E=Number(new Date),b=E-(f||E);w.diff=b,w.prev=f,w.curr=E,f=E,m[0]=r.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let S=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(O,D)=>{if(O==="%%")return"%";S++;let F=r.formatters[D];if(typeof F=="function"){let U=m[S];O=F.call(w,U),m.splice(S,1),S--}return O}),r.formatArgs.call(w,m),(w.log||r.log).apply(w,m)}return g.namespace=u,g.useColors=r.useColors(),g.color=r.selectColor(u),g.extend=n,g.destroy=r.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(u)),h),set:m=>{p=m}}),typeof r.init=="function"&&r.init(g),g}function n(u,f){let p=r(this.namespace+(typeof f>"u"?":":f)+u);return p.log=this.log,p}function s(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let p of f)p[0]==="-"?r.skips.push(p.slice(1)):r.names.push(p)}function i(u,f){let p=0,d=0,h=-1,g=0;for(;p<u.length;)if(d<f.length&&(f[d]===u[p]||f[d]==="*"))f[d]==="*"?(h=d,g=p,d++):(p++,d++);else if(h!==-1)d=h+1,g++,p=g;else return!1;for(;d<f.length&&f[d]==="*";)d++;return d===f.length}function o(){let u=[...r.names,...r.skips.map(f=>"-"+f)].join(",");return r.enable(""),u}function a(u){for(let f of r.skips)if(i(u,f))return!1;for(let f of r.names)if(i(u,f))return!0;return!1}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Gc.exports=_m});var qc=St((Ae,Gr)=>{Ae.formatArgs=Wm;Ae.save=Um;Ae.load=zm;Ae.useColors=Bm;Ae.storage=Hm();Ae.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ae.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Bm(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Wm(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Gr.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(r++,s==="%c"&&(n=r))}),t.splice(n,0,e)}Ae.log=console.debug||console.log||(()=>{});function Um(t){try{t?Ae.storage.setItem("debug",t):Ae.storage.removeItem("debug")}catch{}}function zm(){let t;try{t=Ae.storage.getItem("debug")||Ae.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Hm(){try{return localStorage}catch{}}Gr.exports=ys()(Ae);var{formatters:jm}=Gr.exports;jm.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Kc=St((pe,Vr)=>{var Gm=On("tty"),qr=On("util");pe.init=Jm;pe.log=Zm;pe.formatArgs=Vm;pe.save=Qm;pe.load=Xm;pe.useColors=qm;pe.destroy=qr.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");pe.colors=[6,2,3,4,5,1];try{let t=On("supports-color");t&&(t.stderr||t).level>=2&&(pe.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}pe.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(s,i)=>i.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});function qm(){return"colors"in pe.inspectOpts?!!pe.inspectOpts.colors:Gm.isatty(process.stderr.fd)}function Vm(t){let{namespace:e,useColors:r}=this;if(r){let n=this.color,s="\x1B[3"+(n<8?n:"8;5;"+n),i=` ${s};1m${e} \x1B[0m`;t[0]=i+t[0].split(`
421
421
  `).join(`
422
- `+i),t.push(s+"m+"+Vr.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=Mm()+e+" "+t[0]}function Mm(){return pe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function _m(...t){return process.stderr.write(qr.formatWithOptions(pe.inspectOpts,...t)+`
423
- `)}function Bm(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function Wm(){return process.env.DEBUG}function Um(t){t.inspectOpts={};let e=Object.keys(pe.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=pe.inspectOpts[e[r]]}Vr.exports=ds()(pe);var{formatters:Uc}=Vr.exports;Uc.o=function(t){return this.inspectOpts.colors=this.useColors,qr.inspect(t,this.inspectOpts).split(`
424
- `).map(e=>e.trim()).join(" ")};Uc.O=function(t){return this.inspectOpts.colors=this.useColors,qr.inspect(t,this.inspectOpts)}});var jc=St((IE,hs)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?hs.exports=Wc():hs.exports=Hc()});var yt,ms,zc,Gc,qc,Vc=A(()=>{tr();yt={LocalFileHeader:67324752,DataDescriptor:134695760,CentralFileHeader:33639248,EndOfCentralDirectory:101010256},ms={get(t){return{signature:oe.get(t,0),compressedSize:oe.get(t,8),uncompressedSize:oe.get(t,12)}},len:16},zc={get(t){let e=ee.get(t,6);return{signature:oe.get(t,0),minVersion:ee.get(t,4),dataDescriptor:!!(e&8),compressedMethod:ee.get(t,8),compressedSize:oe.get(t,18),uncompressedSize:oe.get(t,22),filenameLength:ee.get(t,26),extraFieldLength:ee.get(t,28),filename:null}},len:30},Gc={get(t){return{signature:oe.get(t,0),nrOfThisDisk:ee.get(t,4),nrOfThisDiskWithTheStart:ee.get(t,6),nrOfEntriesOnThisDisk:ee.get(t,8),nrOfEntriesOfSize:ee.get(t,10),sizeOfCd:oe.get(t,12),offsetOfStartOfCd:oe.get(t,16),zipFileCommentLength:ee.get(t,20)}},len:22},qc={get(t){let e=ee.get(t,8);return{signature:oe.get(t,0),minVersion:ee.get(t,6),dataDescriptor:!!(e&8),compressedMethod:ee.get(t,10),compressedSize:oe.get(t,20),uncompressedSize:oe.get(t,24),filenameLength:ee.get(t,28),extraFieldLength:ee.get(t,30),fileCommentLength:ee.get(t,32),relativeOffsetOfLocalHeader:oe.get(t,42),filename:null}},len:46}});function Zc(t){let e=new Uint8Array(oe.len);return oe.put(e,0,t),e}function jm(t,e){let r=t.length,n=e.length;if(n>r)return-1;for(let s=0;s<=r-n;s++){let i=!0;for(let o=0;o<n;o++)if(t[s+o]!==e[o]){i=!1;break}if(i)return s}return-1}function zm(t){let e=t.reduce((s,i)=>s+i.length,0),r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var Kc,qe,ys,Hm,Kr,rr,Qc=A(()=>{tr();Kc=Si(jc(),1);Vc();qe=(0,Kc.default)("tokenizer:inflate"),ys=256*1024,Hm=Zc(yt.DataDescriptor),Kr=Zc(yt.EndOfCentralDirectory),rr=class t{constructor(e){this.tokenizer=e,this.syncBuffer=new Uint8Array(ys)}async isZip(){return await this.peekSignature()===yt.LocalFileHeader}peekSignature(){return this.tokenizer.peekToken(oe)}async findEndOfCentralDirectoryLocator(){let e=this.tokenizer,r=Math.min(16*1024,e.fileInfo.size),n=this.syncBuffer.subarray(0,r);await this.tokenizer.readBuffer(n,{position:e.fileInfo.size-r});for(let s=n.length-4;s>=0;s--)if(n[s]===Kr[0]&&n[s+1]===Kr[1]&&n[s+2]===Kr[2]&&n[s+3]===Kr[3])return e.fileInfo.size-r+s;return-1}async readCentralDirectory(){if(!this.tokenizer.supportsRandomAccess()){qe("Cannot reading central-directory without random-read support");return}qe("Reading central-directory...");let e=this.tokenizer.position,r=await this.findEndOfCentralDirectoryLocator();if(r>0){qe("Central-directory 32-bit signature found");let n=await this.tokenizer.readToken(Gc,r),s=[];this.tokenizer.setPosition(n.offsetOfStartOfCd);for(let i=0;i<n.nrOfEntriesOfSize;++i){let o=await this.tokenizer.readToken(qc);if(o.signature!==yt.CentralFileHeader)throw new Error("Expected Central-File-Header signature");o.filename=await this.tokenizer.readToken(new Se(o.filenameLength,"utf-8")),await this.tokenizer.ignore(o.extraFieldLength),await this.tokenizer.ignore(o.fileCommentLength),s.push(o),qe(`Add central-directory file-entry: n=${i+1}/${s.length}: filename=${s[i].filename}`)}return this.tokenizer.setPosition(e),s}this.tokenizer.setPosition(e)}async unzip(e){let r=await this.readCentralDirectory();if(r)return this.iterateOverCentralDirectory(r,e);let n=!1;do{let s=await this.readLocalFileHeader();if(!s)break;let i=e(s);n=!!i.stop;let o;if(await this.tokenizer.ignore(s.extraFieldLength),s.dataDescriptor&&s.compressedSize===0){let a=[],c=ys;qe("Compressed-file-size unknown, scanning for next data-descriptor-signature....");let l=-1;for(;l<0&&c===ys;){c=await this.tokenizer.peekBuffer(this.syncBuffer,{mayBeLess:!0}),l=jm(this.syncBuffer.subarray(0,c),Hm);let u=l>=0?l:c;if(i.handler){let f=new Uint8Array(u);await this.tokenizer.readBuffer(f),a.push(f)}else await this.tokenizer.ignore(u)}qe(`Found data-descriptor-signature at pos=${this.tokenizer.position}`),i.handler&&await this.inflate(s,zm(a),i.handler)}else i.handler?(qe(`Reading compressed-file-data: ${s.compressedSize} bytes`),o=new Uint8Array(s.compressedSize),await this.tokenizer.readBuffer(o),await this.inflate(s,o,i.handler)):(qe(`Ignoring compressed-file-data: ${s.compressedSize} bytes`),await this.tokenizer.ignore(s.compressedSize));if(qe(`Reading data-descriptor at pos=${this.tokenizer.position}`),s.dataDescriptor&&(await this.tokenizer.readToken(ms)).signature!==134695760)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-ms.len}`)}while(!n)}async iterateOverCentralDirectory(e,r){for(let n of e){let s=r(n);if(s.handler){this.tokenizer.setPosition(n.relativeOffsetOfLocalHeader);let i=await this.readLocalFileHeader();if(i){await this.tokenizer.ignore(i.extraFieldLength);let o=new Uint8Array(n.compressedSize);await this.tokenizer.readBuffer(o),await this.inflate(i,o,s.handler)}}if(s.stop)break}}async inflate(e,r,n){if(e.compressedMethod===0)return n(r);if(e.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${e.compressedMethod}`);qe(`Decompress filename=${e.filename}, compressed-size=${r.length}`);let s=await t.decompressDeflateRaw(r);return n(s)}static async decompressDeflateRaw(e){let r=new ReadableStream({start(i){i.enqueue(e),i.close()}}),n=new DecompressionStream("deflate-raw"),s=r.pipeThrough(n);try{let o=await new Response(s).arrayBuffer();return new Uint8Array(o)}catch(i){let o=i instanceof Error?`Failed to deflate ZIP entry: ${i.message}`:"Unknown decompression error in ZIP entry";throw new TypeError(o)}}async readLocalFileHeader(){let e=await this.tokenizer.peekToken(oe);if(e===yt.LocalFileHeader){let r=await this.tokenizer.readToken(zc);return r.filename=await this.tokenizer.readToken(new Se(r.filenameLength,"utf-8")),r}if(e===yt.CentralFileHeader)return!1;throw e===3759263696?new Error("Encrypted ZIP"):new Error("Unexpected signature")}}});var nr,Xc=A(()=>{nr=class{constructor(e){this.tokenizer=e}inflate(){let e=this.tokenizer;return new ReadableStream({async pull(r){let n=new Uint8Array(1024),s=await e.readBuffer(n,{mayBeLess:!0});if(s===0){r.close();return}r.enqueue(n.subarray(0,s))}}).pipeThrough(new DecompressionStream("gzip"))}}});var Jc=A(()=>{Qc();Xc()});function gs(t){let{byteLength:e}=t;if(e===6)return t.getUint16(0)*2**32+t.getUint32(2);if(e===5)return t.getUint8(0)*2**32+t.getUint32(1);if(e===4)return t.getUint32(0);if(e===3)return t.getUint8(0)*2**16+t.getUint16(1);if(e===2)return t.getUint16(0);if(e===1)return t.getUint8(0)}var ME,_E,BE,Yc=A(()=>{ME={utf8:new globalThis.TextDecoder("utf8")},_E=new globalThis.TextEncoder,BE=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"))});function el(t,e){if(e==="utf-16le"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s&255,s>>8&255)}return r}if(e==="utf-16be"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s>>8&255,s&255)}return r}return[...t].map(r=>r.charCodeAt(0))}function tl(t,e=0){let r=Number.parseInt(new Se(6).get(t,148).replace(/\0.*$/,"").trim(),8);if(Number.isNaN(r))return!1;let n=256;for(let s=e;s<e+148;s++)n+=t[s];for(let s=e+156;s<e+512;s++)n+=t[s];return r===n}var rl,nl=A(()=>{tr();rl={get:(t,e)=>t[e+3]&127|t[e+2]<<7|t[e+1]<<14|t[e]<<21,len:4}});var sl,il,ol=A(()=>{sl=["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","elf","macho","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ttc","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","j2c","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf","jls","pst","dwg","parquet","class","arj","cpio","ace","avro","icc","fbx","vsdx","vtt","apk","drc","lz4","potx","xltx","dotx","xltm","ott","ots","otp","odg","otg","xlsm","docm","dotm","potm","pptm","jar","jmp","rm","sav","ppsm","ppsx","tar.gz","reg","dat"],il=["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.ms-powerpoint.slideshow.macroenabled.12","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/vnd.apache.arrow.file","video/mp4","audio/midi","video/matroska","video/webm","video/quicktime","video/vnd.avi","audio/wav","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","video/ogg","audio/ogg","audio/ogg; codecs=opus","application/ogg","audio/flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-elf","application/x-mach-binary","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","font/collection","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/j2c","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","text/vtt","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd","image/jls","application/vnd.ms-outlook","image/vnd.dwg","application/vnd.apache.parquet","application/java-vm","application/x-arj","application/x-cpio","application/x-ace-compressed","application/avro","application/vnd.iccprofile","application/x.autodesk.fbx","application/vnd.visio","application/vnd.android.package-archive","application/vnd.google.draco","application/x-lz4","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-excel.template.macroenabled.12","application/vnd.oasis.opendocument.text-template","application/vnd.oasis.opendocument.spreadsheet-template","application/vnd.oasis.opendocument.presentation-template","application/vnd.oasis.opendocument.graphics","application/vnd.oasis.opendocument.graphics-template","application/vnd.ms-excel.sheet.macroenabled.12","application/vnd.ms-word.document.macroenabled.12","application/vnd.ms-word.template.macroenabled.12","application/vnd.ms-powerpoint.template.macroenabled.12","application/vnd.ms-powerpoint.presentation.macroenabled.12","application/java-archive","application/vnd.rn-realmedia","application/x-spss-sav","application/x-ms-regedit","application/x-ft-windows-registry-hive","application/x-jmp-data"]});async function bs(t,e){return new Es(e).fromBuffer(t)}function ws(t){switch(t=t.toLowerCase(),t){case"application/epub+zip":return{ext:"epub",mime:t};case"application/vnd.oasis.opendocument.text":return{ext:"odt",mime:t};case"application/vnd.oasis.opendocument.text-template":return{ext:"ott",mime:t};case"application/vnd.oasis.opendocument.spreadsheet":return{ext:"ods",mime:t};case"application/vnd.oasis.opendocument.spreadsheet-template":return{ext:"ots",mime:t};case"application/vnd.oasis.opendocument.presentation":return{ext:"odp",mime:t};case"application/vnd.oasis.opendocument.presentation-template":return{ext:"otp",mime:t};case"application/vnd.oasis.opendocument.graphics":return{ext:"odg",mime:t};case"application/vnd.oasis.opendocument.graphics-template":return{ext:"otg",mime:t};case"application/vnd.openxmlformats-officedocument.presentationml.slideshow":return{ext:"ppsx",mime:t};case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return{ext:"xlsx",mime:t};case"application/vnd.ms-excel.sheet.macroenabled":return{ext:"xlsm",mime:"application/vnd.ms-excel.sheet.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.spreadsheetml.template":return{ext:"xltx",mime:t};case"application/vnd.ms-excel.template.macroenabled":return{ext:"xltm",mime:"application/vnd.ms-excel.template.macroenabled.12"};case"application/vnd.ms-powerpoint.slideshow.macroenabled":return{ext:"ppsm",mime:"application/vnd.ms-powerpoint.slideshow.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return{ext:"docx",mime:t};case"application/vnd.ms-word.document.macroenabled":return{ext:"docm",mime:"application/vnd.ms-word.document.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.template":return{ext:"dotx",mime:t};case"application/vnd.ms-word.template.macroenabledtemplate":return{ext:"dotm",mime:"application/vnd.ms-word.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.template":return{ext:"potx",mime:t};case"application/vnd.ms-powerpoint.template.macroenabled":return{ext:"potm",mime:"application/vnd.ms-powerpoint.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return{ext:"pptx",mime:t};case"application/vnd.ms-powerpoint.presentation.macroenabled":return{ext:"pptm",mime:"application/vnd.ms-powerpoint.presentation.macroenabled.12"};case"application/vnd.ms-visio.drawing":return{ext:"vsdx",mime:"application/vnd.visio"};case"application/vnd.ms-package.3dmanufacturing-3dmodel+xml":return{ext:"3mf",mime:"model/3mf"};default:}}function Ve(t,e,r){r={offset:0,...r};for(let[n,s]of e.entries())if(r.mask){if(s!==(r.mask[n]&t[n+r.offset]))return!1}else if(s!==t[n+r.offset])return!1;return!0}var xs,Es,Gm,qm,al=A(()=>{tr();jr();Jc();Yc();nl();ol();xs=4100;Es=class{constructor(e){this.options={mpegOffsetTolerance:0,...e},this.detectors=[...e?.customDetectors??[],{id:"core",detect:this.detectConfident},{id:"core.imprecise",detect:this.detectImprecise}],this.tokenizerOptions={abortSignal:e?.signal}}async fromTokenizer(e){let r=e.position;for(let n of this.detectors){let s=await n.detect(e);if(s)return s;if(r!==e.position)return}}async fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof e}\``);let r=e instanceof Uint8Array?e:new Uint8Array(e);if(r?.length>1)return this.fromTokenizer(Nc(r,this.tokenizerOptions))}async fromBlob(e){let r=Ic(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async fromStream(e){let r=ls(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async toDetectionStream(e,r){let{sampleSize:n=xs}=r,s,i,o=e.getReader({mode:"byob"});try{let{value:l,done:u}=await o.read(new Uint8Array(n));if(i=l,!u&&l)try{s=await this.fromBuffer(l.subarray(0,n))}catch(f){if(!(f instanceof Q))throw f;s=void 0}i=l}finally{o.releaseLock()}let a=new TransformStream({async start(l){l.enqueue(i)},transform(l,u){u.enqueue(l)}}),c=e.pipeThrough(a);return c.fileType=s,c}check(e,r){return Ve(this.buffer,e,r)}checkString(e,r){return this.check(el(e,r?.encoding),r)}detectConfident=async e=>{if(this.buffer=new Uint8Array(xs),e.fileInfo.size===void 0&&(e.fileInfo.size=Number.MAX_SAFE_INTEGER),this.tokenizer=e,await e.peekBuffer(this.buffer,{length:32,mayBeLess:!0}),this.check([66,77]))return{ext:"bmp",mime:"image/bmp"};if(this.check([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(this.check([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(this.check([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(this.check([37,33]))return await e.peekBuffer(this.buffer,{length:24,mayBeLess:!0}),this.checkString("PS-Adobe-",{offset:2})&&this.checkString(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(this.check([31,160])||this.check([31,157]))return{ext:"Z",mime:"application/x-compress"};if(this.check([199,113]))return{ext:"cpio",mime:"application/x-cpio"};if(this.check([96,234]))return{ext:"arj",mime:"application/x-arj"};if(this.check([239,187,191]))return this.tokenizer.ignore(3),this.detectConfident(e);if(this.check([71,73,70]))return{ext:"gif",mime:"image/gif"};if(this.check([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(this.check([31,139,8])){let n=new nr(e).inflate(),s=!0;try{let i;try{i=await this.fromStream(n)}catch{s=!1}if(i&&i.ext==="tar")return{ext:"tar.gz",mime:"application/gzip"}}finally{s&&await n.cancel()}return{ext:"gz",mime:"application/gzip"}}if(this.check([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(this.checkString("ID3")){await e.ignore(6);let r=await e.readToken(rl);return e.position+r>e.fileInfo.size?{ext:"mp3",mime:"audio/mpeg"}:(await e.ignore(r),this.fromTokenizer(e))}if(this.checkString("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((this.buffer[0]===67||this.buffer[0]===70)&&this.check([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(this.check([255,216,255]))return this.check([247],{offset:3})?{ext:"jls",mime:"image/jls"}:{ext:"jpg",mime:"image/jpeg"};if(this.check([79,98,106,1]))return{ext:"avro",mime:"application/avro"};if(this.checkString("FLIF"))return{ext:"flif",mime:"image/flif"};if(this.checkString("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(this.checkString("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(this.checkString("FORM"))return{ext:"aif",mime:"audio/aiff"};if(this.checkString("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(this.check([80,75,3,4])){let r;return await new rr(e).unzip(n=>{switch(n.filename){case"META-INF/mozilla.rsa":return r={ext:"xpi",mime:"application/x-xpinstall"},{stop:!0};case"META-INF/MANIFEST.MF":return r={ext:"jar",mime:"application/java-archive"},{stop:!0};case"mimetype":return{async handler(s){let i=new TextDecoder("utf-8").decode(s).trim();r=ws(i)},stop:!0};case"[Content_Types].xml":return{async handler(s){let i=new TextDecoder("utf-8").decode(s),o=i.indexOf('.main+xml"');if(o===-1){let a="application/vnd.ms-package.3dmanufacturing-3dmodel+xml";i.includes(`ContentType="${a}"`)&&(r=ws(a))}else{i=i.slice(0,Math.max(0,o));let a=i.lastIndexOf('"'),c=i.slice(Math.max(0,a+1));r=ws(c)}},stop:!0};default:return/classes\d*\.dex/.test(n.filename)?(r={ext:"apk",mime:"application/vnd.android.package-archive"},{stop:!0}):{}}}).catch(n=>{if(!(n instanceof Q))throw n}),r??{ext:"zip",mime:"application/zip"}}if(this.checkString("OggS")){await e.ignore(28);let r=new Uint8Array(8);return await e.readBuffer(r),Ve(r,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/ogg; codecs=opus"}:Ve(r,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:Ve(r,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:Ve(r,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:Ve(r,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:Ve(r,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(this.check([80,75])&&(this.buffer[2]===3||this.buffer[2]===5||this.buffer[2]===7)&&(this.buffer[3]===4||this.buffer[3]===6||this.buffer[3]===8))return{ext:"zip",mime:"application/zip"};if(this.checkString("MThd"))return{ext:"mid",mime:"audio/midi"};if(this.checkString("wOFF")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(this.checkString("wOF2")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(this.check([212,195,178,161])||this.check([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(this.checkString("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(this.checkString("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(this.checkString("fLaC"))return{ext:"flac",mime:"audio/flac"};if(this.check([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(this.checkString("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(this.checkString("%PDF"))return{ext:"pdf",mime:"application/pdf"};if(this.check([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(this.check([73,73])){let r=await this.readTiffHeader(!1);if(r)return r}if(this.check([77,77])){let r=await this.readTiffHeader(!0);if(r)return r}if(this.checkString("MAC "))return{ext:"ape",mime:"audio/ape"};if(this.check([26,69,223,163])){async function r(){let a=await e.peekNumber(Tc),c=128,l=0;for(;(a&c)===0&&c!==0;)++l,c>>=1;let u=new Uint8Array(l+1);return await e.readBuffer(u),u}async function n(){let a=await r(),c=await r();c[0]^=128>>c.length-1;let l=Math.min(6,c.length),u=new DataView(a.buffer),f=new DataView(c.buffer,c.length-l,l);return{id:gs(u),len:gs(f)}}async function s(a){for(;a>0;){let c=await n();if(c.id===17026)return(await e.readToken(new Se(c.len))).replaceAll(/\00.*$/g,"");await e.ignore(c.len),--a}}let i=await n();switch(await s(i.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/matroska"};default:return}}if(this.checkString("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(this.check([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(this.checkString("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(this.checkString("MSCF")||this.checkString("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(this.check([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(this.check([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(this.check([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(this.check([127,69,76,70]))return{ext:"elf",mime:"application/x-elf"};if(this.check([33,66,68,78]))return{ext:"pst",mime:"application/vnd.ms-outlook"};if(this.checkString("PAR1")||this.checkString("PARE"))return{ext:"parquet",mime:"application/vnd.apache.parquet"};if(this.checkString("ttcf"))return{ext:"ttc",mime:"font/collection"};if(this.check([207,250,237,254]))return{ext:"macho",mime:"application/x-mach-binary"};if(this.check([4,34,77,24]))return{ext:"lz4",mime:"application/x-lz4"};if(this.checkString("regf"))return{ext:"dat",mime:"application/x-ft-windows-registry-hive"};if(this.checkString("$FL2")||this.checkString("$FL3"))return{ext:"sav",mime:"application/x-spss-sav"};if(this.check([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(this.checkString("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(this.checkString("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(this.check([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(this.checkString("IMPM"))return{ext:"it",mime:"audio/x-it"};if(this.checkString("-lh0-",{offset:2})||this.checkString("-lh1-",{offset:2})||this.checkString("-lh2-",{offset:2})||this.checkString("-lh3-",{offset:2})||this.checkString("-lh4-",{offset:2})||this.checkString("-lh5-",{offset:2})||this.checkString("-lh6-",{offset:2})||this.checkString("-lh7-",{offset:2})||this.checkString("-lzs-",{offset:2})||this.checkString("-lz4-",{offset:2})||this.checkString("-lz5-",{offset:2})||this.checkString("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(this.check([0,0,1,186])){if(this.check([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(this.check([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(this.checkString("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(this.check([202,254,186,190]))return{ext:"class",mime:"application/java-vm"};if(this.checkString(".RMF"))return{ext:"rm",mime:"application/vnd.rn-realmedia"};if(this.checkString("DRACO"))return{ext:"drc",mime:"application/vnd.google.draco"};if(this.check([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(this.checkString("<?xml "))return{ext:"xml",mime:"application/xml"};if(this.check([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(this.check([82,97,114,33,26,7])&&(this.buffer[6]===0||this.buffer[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(this.checkString("solid "))return{ext:"stl",mime:"model/stl"};if(this.checkString("AC")){let r=new Se(4,"latin1").get(this.buffer,2);if(r.match("^d*")&&r>=1e3&&r<=1050)return{ext:"dwg",mime:"image/vnd.dwg"}}if(this.checkString("070707"))return{ext:"cpio",mime:"application/x-cpio"};if(this.checkString("BLENDER"))return{ext:"blend",mime:"application/x-blender"};if(this.checkString("!<arch>"))return await e.ignore(8),await e.readToken(new Se(13,"ascii"))==="debian-binary"?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(this.checkString("WEBVTT")&&[`
425
- `,"\r"," "," ","\0"].some(r=>this.checkString(r,{offset:6})))return{ext:"vtt",mime:"text/vtt"};if(this.check([137,80,78,71,13,10,26,10])){await e.ignore(8);async function r(){return{length:await e.readToken(Dc),type:await e.readToken(new Se(4,"latin1"))}}do{let n=await r();if(n.length<0)return;switch(n.type){case"IDAT":return{ext:"png",mime:"image/png"};case"acTL":return{ext:"apng",mime:"image/apng"};default:await e.ignore(n.length+4)}}while(e.position+8<e.fileInfo.size);return{ext:"png",mime:"image/png"}}if(this.check([65,82,82,79,87,49,0,0]))return{ext:"arrow",mime:"application/vnd.apache.arrow.file"};if(this.check([103,108,84,70,2,0,0,0]))return{ext:"glb",mime:"model/gltf-binary"};if(this.check([102,114,101,101],{offset:4})||this.check([109,100,97,116],{offset:4})||this.check([109,111,111,118],{offset:4})||this.check([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(this.check([73,73,82,79,8,0,0,0,24]))return{ext:"orf",mime:"image/x-olympus-orf"};if(this.checkString("gimp xcf "))return{ext:"xcf",mime:"image/x-xcf"};if(this.checkString("ftyp",{offset:4})&&(this.buffer[8]&96)!==0){let r=new Se(4,"latin1").get(this.buffer,8).replace("\0"," ").trim();switch(r){case"avif":case"avis":return{ext:"avif",mime:"image/avif"};case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt":return{ext:"mov",mime:"video/quicktime"};case"M4V":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P":return{ext:"m4p",mime:"video/mp4"};case"M4B":return{ext:"m4b",mime:"audio/mp4"};case"M4A":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V":return{ext:"f4v",mime:"video/mp4"};case"F4P":return{ext:"f4p",mime:"video/mp4"};case"F4A":return{ext:"f4a",mime:"audio/mp4"};case"F4B":return{ext:"f4b",mime:"audio/mp4"};case"crx":return{ext:"cr3",mime:"image/x-canon-cr3"};default:return r.startsWith("3g")?r.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(this.checkString(`REGEDIT4\r
426
- `))return{ext:"reg",mime:"application/x-ms-regedit"};if(this.check([82,73,70,70])){if(this.checkString("WEBP",{offset:8}))return{ext:"webp",mime:"image/webp"};if(this.check([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(this.check([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/wav"};if(this.check([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(this.check([73,73,85,0,24,0,0,0,136,231,116,216]))return{ext:"rw2",mime:"image/x-panasonic-rw2"};if(this.check([48,38,178,117,142,102,207,17,166,217])){async function r(){let n=new Uint8Array(16);return await e.readBuffer(n),{id:n,size:Number(await e.readToken(Lc))}}for(await e.ignore(30);e.position+24<e.fileInfo.size;){let n=await r(),s=n.size-24;if(Ve(n.id,[145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101])){let i=new Uint8Array(16);if(s-=await e.readBuffer(i),Ve(i,[64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"audio/x-ms-asf"};if(Ve(i,[192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"video/x-ms-asf"};break}await e.ignore(s)}return{ext:"asf",mime:"application/vnd.ms-asf"}}if(this.check([171,75,84,88,32,49,49,187,13,10,26,10]))return{ext:"ktx",mime:"image/ktx"};if((this.check([126,16,4])||this.check([126,24,4]))&&this.check([48,77,73,69],{offset:4}))return{ext:"mie",mime:"application/x-mie"};if(this.check([39,10,0,0,0,0,0,0,0,0,0,0],{offset:2}))return{ext:"shp",mime:"application/x-esri-shape"};if(this.check([255,79,255,81]))return{ext:"j2c",mime:"image/j2c"};if(this.check([0,0,0,12,106,80,32,32,13,10,135,10]))switch(await e.ignore(20),await e.readToken(new Se(4,"ascii"))){case"jp2 ":return{ext:"jp2",mime:"image/jp2"};case"jpx ":return{ext:"jpx",mime:"image/jpx"};case"jpm ":return{ext:"jpm",mime:"image/jpm"};case"mjp2":return{ext:"mj2",mime:"image/mj2"};default:return}if(this.check([255,10])||this.check([0,0,0,12,74,88,76,32,13,10,135,10]))return{ext:"jxl",mime:"image/jxl"};if(this.check([254,255]))return this.checkString("<?xml ",{offset:2,encoding:"utf-16be"})?{ext:"xml",mime:"application/xml"}:void 0;if(this.check([208,207,17,224,161,177,26,225]))return{ext:"cfb",mime:"application/x-cfb"};if(await e.peekBuffer(this.buffer,{length:Math.min(256,e.fileInfo.size),mayBeLess:!0}),this.check([97,99,115,112],{offset:36}))return{ext:"icc",mime:"application/vnd.iccprofile"};if(this.checkString("**ACE",{offset:7})&&this.checkString("**",{offset:12}))return{ext:"ace",mime:"application/x-ace-compressed"};if(this.checkString("BEGIN:")){if(this.checkString("VCARD",{offset:6}))return{ext:"vcf",mime:"text/vcard"};if(this.checkString("VCALENDAR",{offset:6}))return{ext:"ics",mime:"text/calendar"}}if(this.checkString("FUJIFILMCCD-RAW"))return{ext:"raf",mime:"image/x-fujifilm-raf"};if(this.checkString("Extended Module:"))return{ext:"xm",mime:"audio/x-xm"};if(this.checkString("Creative Voice File"))return{ext:"voc",mime:"audio/x-voc"};if(this.check([4,0,0,0])&&this.buffer.length>=16){let r=new DataView(this.buffer.buffer).getUint32(12,!0);if(r>12&&this.buffer.length>=r+16)try{let n=new TextDecoder().decode(this.buffer.subarray(16,r+16));if(JSON.parse(n).files)return{ext:"asar",mime:"application/x-asar"}}catch{}}if(this.check([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(this.checkString("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(this.check([71])&&this.check([71],{offset:188}))return{ext:"mts",mime:"video/mp2t"};if(this.check([71],{offset:4})&&this.check([71],{offset:196}))return{ext:"mts",mime:"video/mp2t"};if(this.check([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(this.check([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(this.check([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(this.check([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(this.checkString("Kaydara FBX Binary \0"))return{ext:"fbx",mime:"application/x.autodesk.fbx"};if(this.check([76,80],{offset:34})&&(this.check([0,0,1],{offset:8})||this.check([1,0,2],{offset:8})||this.check([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(this.check([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(this.check([255,255,0,0,7,0,0,0,4,0,0,0,1,0,1,0])||this.check([0,0,255,255,0,0,0,7,0,0,0,4,0,1,0,1]))return{ext:"jmp",mime:"application/x-jmp-data"};if(await e.peekBuffer(this.buffer,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),this.checkString("ustar",{offset:257})&&(this.checkString("\0",{offset:262})||this.checkString(" ",{offset:262}))||this.check([0,0,0,0,0,0],{offset:257})&&tl(this.buffer))return{ext:"tar",mime:"application/x-tar"};if(this.check([255,254])){let r="utf-16le";return this.checkString("<?xml ",{offset:2,encoding:r})?{ext:"xml",mime:"application/xml"}:this.check([255,14],{offset:2})&&this.checkString("SketchUp Model",{offset:4,encoding:r})?{ext:"skp",mime:"application/vnd.sketchup.skp"}:this.checkString(`Windows Registry Editor Version 5.00\r
427
- `,{offset:2,encoding:r})?{ext:"reg",mime:"application/x-ms-regedit"}:void 0}if(this.checkString("-----BEGIN PGP MESSAGE-----"))return{ext:"pgp",mime:"application/pgp-encrypted"}};detectImprecise=async e=>{if(this.buffer=new Uint8Array(xs),await e.peekBuffer(this.buffer,{length:Math.min(8,e.fileInfo.size),mayBeLess:!0}),this.check([0,0,1,186])||this.check([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(this.check([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(this.check([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(this.check([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(await e.peekBuffer(this.buffer,{length:Math.min(2+this.options.mpegOffsetTolerance,e.fileInfo.size),mayBeLess:!0}),this.buffer.length>=2+this.options.mpegOffsetTolerance)for(let r=0;r<=this.options.mpegOffsetTolerance;++r){let n=this.scanMpeg(r);if(n)return n}};async readTiffTag(e){let r=await this.tokenizer.readToken(e?Lt:ee);switch(this.tokenizer.ignore(10),r){case 50341:return{ext:"arw",mime:"image/x-sony-arw"};case 50706:return{ext:"dng",mime:"image/x-adobe-dng"};default:}}async readTiffIFD(e){let r=await this.tokenizer.readToken(e?Lt:ee);for(let n=0;n<r;++n){let s=await this.readTiffTag(e);if(s)return s}}async readTiffHeader(e){let r=(e?Lt:ee).get(this.buffer,2),n=(e?Fc:oe).get(this.buffer,4);if(r===42){if(n>=6){if(this.checkString("CR",{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n>=8){let i=(e?Lt:ee).get(this.buffer,8),o=(e?Lt:ee).get(this.buffer,10);if(i===28&&o===254||i===31&&o===11)return{ext:"nef",mime:"image/x-nikon-nef"}}}return await this.tokenizer.ignore(n),await this.readTiffIFD(e)??{ext:"tif",mime:"image/tiff"}}if(r===43)return{ext:"tif",mime:"image/tiff"}}scanMpeg(e){if(this.check([255,224],{offset:e,mask:[255,224]})){if(this.check([16],{offset:e+1,mask:[22]}))return this.check([8],{offset:e+1,mask:[8]})?{ext:"aac",mime:"audio/aac"}:{ext:"aac",mime:"audio/aac"};if(this.check([2],{offset:e+1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(this.check([4],{offset:e+1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(this.check([6],{offset:e+1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}},Gm=new Set(sl),qm=new Set(il)});var cl=A(()=>{vc();al()});var fl={};$(fl,{fileCommand:()=>Jm});function Km(t,e){if(ul[t])return ul[t];let[r,n]=e.split("/"),s=n?.split("+")[0]?.replace(/-/g," ")||t;switch(r){case"image":return`${s.toUpperCase()} image data`;case"audio":return`${s.toUpperCase()} audio`;case"video":return`${s.toUpperCase()} video`;case"font":return`${s} font`;case"model":return`${s} 3D model`;case"application":return n?.includes("zip")||n?.includes("compressed")?`${s} archive data`:n?.includes("executable")?`${s} executable`:`${t.toUpperCase()} data`;default:return`${t.toUpperCase()} data`}}function Zm(t){let e=t.split("/").pop()||t;if(e.startsWith(".")&&!e.includes(".",1))return e;let r=e.lastIndexOf(".");return r===-1||r===0?"":e.slice(r).toLowerCase()}function Qm(t,e){if(t.startsWith("#!")){let c=t.split(`
422
+ `+i),t.push(s+"m+"+Vr.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=Km()+e+" "+t[0]}function Km(){return pe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Zm(...t){return process.stderr.write(qr.formatWithOptions(pe.inspectOpts,...t)+`
423
+ `)}function Qm(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function Xm(){return process.env.DEBUG}function Jm(t){t.inspectOpts={};let e=Object.keys(pe.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=pe.inspectOpts[e[r]]}Vr.exports=ys()(pe);var{formatters:Vc}=Vr.exports;Vc.o=function(t){return this.inspectOpts.colors=this.useColors,qr.inspect(t,this.inspectOpts).split(`
424
+ `).map(e=>e.trim()).join(" ")};Vc.O=function(t){return this.inspectOpts.colors=this.useColors,qr.inspect(t,this.inspectOpts)}});var Zc=St((KE,gs)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?gs.exports=qc():gs.exports=Kc()});var yt,xs,Qc,Xc,Jc,Yc=A(()=>{tr();yt={LocalFileHeader:67324752,DataDescriptor:134695760,CentralFileHeader:33639248,EndOfCentralDirectory:101010256},xs={get(t){return{signature:oe.get(t,0),compressedSize:oe.get(t,8),uncompressedSize:oe.get(t,12)}},len:16},Qc={get(t){let e=ee.get(t,6);return{signature:oe.get(t,0),minVersion:ee.get(t,4),dataDescriptor:!!(e&8),compressedMethod:ee.get(t,8),compressedSize:oe.get(t,18),uncompressedSize:oe.get(t,22),filenameLength:ee.get(t,26),extraFieldLength:ee.get(t,28),filename:null}},len:30},Xc={get(t){return{signature:oe.get(t,0),nrOfThisDisk:ee.get(t,4),nrOfThisDiskWithTheStart:ee.get(t,6),nrOfEntriesOnThisDisk:ee.get(t,8),nrOfEntriesOfSize:ee.get(t,10),sizeOfCd:oe.get(t,12),offsetOfStartOfCd:oe.get(t,16),zipFileCommentLength:ee.get(t,20)}},len:22},Jc={get(t){let e=ee.get(t,8);return{signature:oe.get(t,0),minVersion:ee.get(t,6),dataDescriptor:!!(e&8),compressedMethod:ee.get(t,10),compressedSize:oe.get(t,20),uncompressedSize:oe.get(t,24),filenameLength:ee.get(t,28),extraFieldLength:ee.get(t,30),fileCommentLength:ee.get(t,32),relativeOffsetOfLocalHeader:oe.get(t,42),filename:null}},len:46}});function tl(t){let e=new Uint8Array(oe.len);return oe.put(e,0,t),e}function e0(t,e){let r=t.length,n=e.length;if(n>r)return-1;for(let s=0;s<=r-n;s++){let i=!0;for(let o=0;o<n;o++)if(t[s+o]!==e[o]){i=!1;break}if(i)return s}return-1}function t0(t){let e=t.reduce((s,i)=>s+i.length,0),r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var el,qe,ws,Ym,Kr,rr,rl=A(()=>{tr();el=vi(Zc(),1);Yc();qe=(0,el.default)("tokenizer:inflate"),ws=256*1024,Ym=tl(yt.DataDescriptor),Kr=tl(yt.EndOfCentralDirectory),rr=class t{constructor(e){this.tokenizer=e,this.syncBuffer=new Uint8Array(ws)}async isZip(){return await this.peekSignature()===yt.LocalFileHeader}peekSignature(){return this.tokenizer.peekToken(oe)}async findEndOfCentralDirectoryLocator(){let e=this.tokenizer,r=Math.min(16*1024,e.fileInfo.size),n=this.syncBuffer.subarray(0,r);await this.tokenizer.readBuffer(n,{position:e.fileInfo.size-r});for(let s=n.length-4;s>=0;s--)if(n[s]===Kr[0]&&n[s+1]===Kr[1]&&n[s+2]===Kr[2]&&n[s+3]===Kr[3])return e.fileInfo.size-r+s;return-1}async readCentralDirectory(){if(!this.tokenizer.supportsRandomAccess()){qe("Cannot reading central-directory without random-read support");return}qe("Reading central-directory...");let e=this.tokenizer.position,r=await this.findEndOfCentralDirectoryLocator();if(r>0){qe("Central-directory 32-bit signature found");let n=await this.tokenizer.readToken(Xc,r),s=[];this.tokenizer.setPosition(n.offsetOfStartOfCd);for(let i=0;i<n.nrOfEntriesOfSize;++i){let o=await this.tokenizer.readToken(Jc);if(o.signature!==yt.CentralFileHeader)throw new Error("Expected Central-File-Header signature");o.filename=await this.tokenizer.readToken(new Se(o.filenameLength,"utf-8")),await this.tokenizer.ignore(o.extraFieldLength),await this.tokenizer.ignore(o.fileCommentLength),s.push(o),qe(`Add central-directory file-entry: n=${i+1}/${s.length}: filename=${s[i].filename}`)}return this.tokenizer.setPosition(e),s}this.tokenizer.setPosition(e)}async unzip(e){let r=await this.readCentralDirectory();if(r)return this.iterateOverCentralDirectory(r,e);let n=!1;do{let s=await this.readLocalFileHeader();if(!s)break;let i=e(s);n=!!i.stop;let o;if(await this.tokenizer.ignore(s.extraFieldLength),s.dataDescriptor&&s.compressedSize===0){let a=[],c=ws;qe("Compressed-file-size unknown, scanning for next data-descriptor-signature....");let l=-1;for(;l<0&&c===ws;){c=await this.tokenizer.peekBuffer(this.syncBuffer,{mayBeLess:!0}),l=e0(this.syncBuffer.subarray(0,c),Ym);let u=l>=0?l:c;if(i.handler){let f=new Uint8Array(u);await this.tokenizer.readBuffer(f),a.push(f)}else await this.tokenizer.ignore(u)}qe(`Found data-descriptor-signature at pos=${this.tokenizer.position}`),i.handler&&await this.inflate(s,t0(a),i.handler)}else i.handler?(qe(`Reading compressed-file-data: ${s.compressedSize} bytes`),o=new Uint8Array(s.compressedSize),await this.tokenizer.readBuffer(o),await this.inflate(s,o,i.handler)):(qe(`Ignoring compressed-file-data: ${s.compressedSize} bytes`),await this.tokenizer.ignore(s.compressedSize));if(qe(`Reading data-descriptor at pos=${this.tokenizer.position}`),s.dataDescriptor&&(await this.tokenizer.readToken(xs)).signature!==134695760)throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position-xs.len}`)}while(!n)}async iterateOverCentralDirectory(e,r){for(let n of e){let s=r(n);if(s.handler){this.tokenizer.setPosition(n.relativeOffsetOfLocalHeader);let i=await this.readLocalFileHeader();if(i){await this.tokenizer.ignore(i.extraFieldLength);let o=new Uint8Array(n.compressedSize);await this.tokenizer.readBuffer(o),await this.inflate(i,o,s.handler)}}if(s.stop)break}}async inflate(e,r,n){if(e.compressedMethod===0)return n(r);if(e.compressedMethod!==8)throw new Error(`Unsupported ZIP compression method: ${e.compressedMethod}`);qe(`Decompress filename=${e.filename}, compressed-size=${r.length}`);let s=await t.decompressDeflateRaw(r);return n(s)}static async decompressDeflateRaw(e){let r=new ReadableStream({start(i){i.enqueue(e),i.close()}}),n=new DecompressionStream("deflate-raw"),s=r.pipeThrough(n);try{let o=await new Response(s).arrayBuffer();return new Uint8Array(o)}catch(i){let o=i instanceof Error?`Failed to deflate ZIP entry: ${i.message}`:"Unknown decompression error in ZIP entry";throw new TypeError(o)}}async readLocalFileHeader(){let e=await this.tokenizer.peekToken(oe);if(e===yt.LocalFileHeader){let r=await this.tokenizer.readToken(Qc);return r.filename=await this.tokenizer.readToken(new Se(r.filenameLength,"utf-8")),r}if(e===yt.CentralFileHeader)return!1;throw e===3759263696?new Error("Encrypted ZIP"):new Error("Unexpected signature")}}});var nr,nl=A(()=>{nr=class{constructor(e){this.tokenizer=e}inflate(){let e=this.tokenizer;return new ReadableStream({async pull(r){let n=new Uint8Array(1024),s=await e.readBuffer(n,{mayBeLess:!0});if(s===0){r.close();return}r.enqueue(n.subarray(0,s))}}).pipeThrough(new DecompressionStream("gzip"))}}});var sl=A(()=>{rl();nl()});function Es(t){let{byteLength:e}=t;if(e===6)return t.getUint16(0)*2**32+t.getUint32(2);if(e===5)return t.getUint8(0)*2**32+t.getUint32(1);if(e===4)return t.getUint32(0);if(e===3)return t.getUint8(0)*2**16+t.getUint16(1);if(e===2)return t.getUint16(0);if(e===1)return t.getUint8(0)}var sb,ib,ob,il=A(()=>{sb={utf8:new globalThis.TextDecoder("utf8")},ib=new globalThis.TextEncoder,ob=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"))});function ol(t,e){if(e==="utf-16le"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s&255,s>>8&255)}return r}if(e==="utf-16be"){let r=[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);r.push(s>>8&255,s&255)}return r}return[...t].map(r=>r.charCodeAt(0))}function al(t,e=0){let r=Number.parseInt(new Se(6).get(t,148).replace(/\0.*$/,"").trim(),8);if(Number.isNaN(r))return!1;let n=256;for(let s=e;s<e+148;s++)n+=t[s];for(let s=e+156;s<e+512;s++)n+=t[s];return r===n}var cl,ll=A(()=>{tr();cl={get:(t,e)=>t[e+3]&127|t[e+2]<<7|t[e+1]<<14|t[e]<<21,len:4}});var ul,fl,pl=A(()=>{ul=["jpg","png","apng","gif","webp","flif","xcf","cr2","cr3","orf","arw","dng","nef","rw2","raf","tif","bmp","icns","jxr","psd","indd","zip","tar","rar","gz","bz2","7z","dmg","mp4","mid","mkv","webm","mov","avi","mpg","mp2","mp3","m4a","oga","ogg","ogv","opus","flac","wav","spx","amr","pdf","epub","elf","macho","exe","swf","rtf","wasm","woff","woff2","eot","ttf","otf","ttc","ico","flv","ps","xz","sqlite","nes","crx","xpi","cab","deb","ar","rpm","Z","lz","cfb","mxf","mts","blend","bpg","docx","pptx","xlsx","3gp","3g2","j2c","jp2","jpm","jpx","mj2","aif","qcp","odt","ods","odp","xml","mobi","heic","cur","ktx","ape","wv","dcm","ics","glb","pcap","dsf","lnk","alias","voc","ac3","m4v","m4p","m4b","f4v","f4p","f4b","f4a","mie","asf","ogm","ogx","mpc","arrow","shp","aac","mp1","it","s3m","xm","skp","avif","eps","lzh","pgp","asar","stl","chm","3mf","zst","jxl","vcf","jls","pst","dwg","parquet","class","arj","cpio","ace","avro","icc","fbx","vsdx","vtt","apk","drc","lz4","potx","xltx","dotx","xltm","ott","ots","otp","odg","otg","xlsm","docm","dotm","potm","pptm","jar","jmp","rm","sav","ppsm","ppsx","tar.gz","reg","dat"],fl=["image/jpeg","image/png","image/gif","image/webp","image/flif","image/x-xcf","image/x-canon-cr2","image/x-canon-cr3","image/tiff","image/bmp","image/vnd.ms-photo","image/vnd.adobe.photoshop","application/x-indesign","application/epub+zip","application/x-xpinstall","application/vnd.ms-powerpoint.slideshow.macroenabled.12","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/zip","application/x-tar","application/x-rar-compressed","application/gzip","application/x-bzip2","application/x-7z-compressed","application/x-apple-diskimage","application/vnd.apache.arrow.file","video/mp4","audio/midi","video/matroska","video/webm","video/quicktime","video/vnd.avi","audio/wav","audio/qcelp","audio/x-ms-asf","video/x-ms-asf","application/vnd.ms-asf","video/mpeg","video/3gpp","audio/mpeg","audio/mp4","video/ogg","audio/ogg","audio/ogg; codecs=opus","application/ogg","audio/flac","audio/ape","audio/wavpack","audio/amr","application/pdf","application/x-elf","application/x-mach-binary","application/x-msdownload","application/x-shockwave-flash","application/rtf","application/wasm","font/woff","font/woff2","application/vnd.ms-fontobject","font/ttf","font/otf","font/collection","image/x-icon","video/x-flv","application/postscript","application/eps","application/x-xz","application/x-sqlite3","application/x-nintendo-nes-rom","application/x-google-chrome-extension","application/vnd.ms-cab-compressed","application/x-deb","application/x-unix-archive","application/x-rpm","application/x-compress","application/x-lzip","application/x-cfb","application/x-mie","application/mxf","video/mp2t","application/x-blender","image/bpg","image/j2c","image/jp2","image/jpx","image/jpm","image/mj2","audio/aiff","application/xml","application/x-mobipocket-ebook","image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/icns","image/ktx","application/dicom","audio/x-musepack","text/calendar","text/vcard","text/vtt","model/gltf-binary","application/vnd.tcpdump.pcap","audio/x-dsf","application/x.ms.shortcut","application/x.apple.alias","audio/x-voc","audio/vnd.dolby.dd-raw","audio/x-m4a","image/apng","image/x-olympus-orf","image/x-sony-arw","image/x-adobe-dng","image/x-nikon-nef","image/x-panasonic-rw2","image/x-fujifilm-raf","video/x-m4v","video/3gpp2","application/x-esri-shape","audio/aac","audio/x-it","audio/x-s3m","audio/x-xm","video/MP1S","video/MP2P","application/vnd.sketchup.skp","image/avif","application/x-lzh-compressed","application/pgp-encrypted","application/x-asar","model/stl","application/vnd.ms-htmlhelp","model/3mf","image/jxl","application/zstd","image/jls","application/vnd.ms-outlook","image/vnd.dwg","application/vnd.apache.parquet","application/java-vm","application/x-arj","application/x-cpio","application/x-ace-compressed","application/avro","application/vnd.iccprofile","application/x.autodesk.fbx","application/vnd.visio","application/vnd.android.package-archive","application/vnd.google.draco","application/x-lz4","application/vnd.openxmlformats-officedocument.presentationml.template","application/vnd.openxmlformats-officedocument.spreadsheetml.template","application/vnd.openxmlformats-officedocument.wordprocessingml.template","application/vnd.ms-excel.template.macroenabled.12","application/vnd.oasis.opendocument.text-template","application/vnd.oasis.opendocument.spreadsheet-template","application/vnd.oasis.opendocument.presentation-template","application/vnd.oasis.opendocument.graphics","application/vnd.oasis.opendocument.graphics-template","application/vnd.ms-excel.sheet.macroenabled.12","application/vnd.ms-word.document.macroenabled.12","application/vnd.ms-word.template.macroenabled.12","application/vnd.ms-powerpoint.template.macroenabled.12","application/vnd.ms-powerpoint.presentation.macroenabled.12","application/java-archive","application/vnd.rn-realmedia","application/x-spss-sav","application/x-ms-regedit","application/x-ft-windows-registry-hive","application/x-jmp-data"]});async function Cs(t,e){return new As(e).fromBuffer(t)}function Ss(t){switch(t=t.toLowerCase(),t){case"application/epub+zip":return{ext:"epub",mime:t};case"application/vnd.oasis.opendocument.text":return{ext:"odt",mime:t};case"application/vnd.oasis.opendocument.text-template":return{ext:"ott",mime:t};case"application/vnd.oasis.opendocument.spreadsheet":return{ext:"ods",mime:t};case"application/vnd.oasis.opendocument.spreadsheet-template":return{ext:"ots",mime:t};case"application/vnd.oasis.opendocument.presentation":return{ext:"odp",mime:t};case"application/vnd.oasis.opendocument.presentation-template":return{ext:"otp",mime:t};case"application/vnd.oasis.opendocument.graphics":return{ext:"odg",mime:t};case"application/vnd.oasis.opendocument.graphics-template":return{ext:"otg",mime:t};case"application/vnd.openxmlformats-officedocument.presentationml.slideshow":return{ext:"ppsx",mime:t};case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return{ext:"xlsx",mime:t};case"application/vnd.ms-excel.sheet.macroenabled":return{ext:"xlsm",mime:"application/vnd.ms-excel.sheet.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.spreadsheetml.template":return{ext:"xltx",mime:t};case"application/vnd.ms-excel.template.macroenabled":return{ext:"xltm",mime:"application/vnd.ms-excel.template.macroenabled.12"};case"application/vnd.ms-powerpoint.slideshow.macroenabled":return{ext:"ppsm",mime:"application/vnd.ms-powerpoint.slideshow.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return{ext:"docx",mime:t};case"application/vnd.ms-word.document.macroenabled":return{ext:"docm",mime:"application/vnd.ms-word.document.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.wordprocessingml.template":return{ext:"dotx",mime:t};case"application/vnd.ms-word.template.macroenabledtemplate":return{ext:"dotm",mime:"application/vnd.ms-word.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.template":return{ext:"potx",mime:t};case"application/vnd.ms-powerpoint.template.macroenabled":return{ext:"potm",mime:"application/vnd.ms-powerpoint.template.macroenabled.12"};case"application/vnd.openxmlformats-officedocument.presentationml.presentation":return{ext:"pptx",mime:t};case"application/vnd.ms-powerpoint.presentation.macroenabled":return{ext:"pptm",mime:"application/vnd.ms-powerpoint.presentation.macroenabled.12"};case"application/vnd.ms-visio.drawing":return{ext:"vsdx",mime:"application/vnd.visio"};case"application/vnd.ms-package.3dmanufacturing-3dmodel+xml":return{ext:"3mf",mime:"model/3mf"};default:}}function Ve(t,e,r){r={offset:0,...r};for(let[n,s]of e.entries())if(r.mask){if(s!==(r.mask[n]&t[n+r.offset]))return!1}else if(s!==t[n+r.offset])return!1;return!0}var bs,As,r0,n0,dl=A(()=>{tr();Hr();sl();il();ll();pl();bs=4100;As=class{constructor(e){this.options={mpegOffsetTolerance:0,...e},this.detectors=[...e?.customDetectors??[],{id:"core",detect:this.detectConfident},{id:"core.imprecise",detect:this.detectImprecise}],this.tokenizerOptions={abortSignal:e?.signal}}async fromTokenizer(e){let r=e.position;for(let n of this.detectors){let s=await n.detect(e);if(s)return s;if(r!==e.position)return}}async fromBuffer(e){if(!(e instanceof Uint8Array||e instanceof ArrayBuffer))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof e}\``);let r=e instanceof Uint8Array?e:new Uint8Array(e);if(r?.length>1)return this.fromTokenizer(Pc(r,this.tokenizerOptions))}async fromBlob(e){let r=Tc(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async fromStream(e){let r=ps(e,this.tokenizerOptions);try{return await this.fromTokenizer(r)}finally{await r.close()}}async toDetectionStream(e,r){let{sampleSize:n=bs}=r,s,i,o=e.getReader({mode:"byob"});try{let{value:l,done:u}=await o.read(new Uint8Array(n));if(i=l,!u&&l)try{s=await this.fromBuffer(l.subarray(0,n))}catch(f){if(!(f instanceof Q))throw f;s=void 0}i=l}finally{o.releaseLock()}let a=new TransformStream({async start(l){l.enqueue(i)},transform(l,u){u.enqueue(l)}}),c=e.pipeThrough(a);return c.fileType=s,c}check(e,r){return Ve(this.buffer,e,r)}checkString(e,r){return this.check(ol(e,r?.encoding),r)}detectConfident=async e=>{if(this.buffer=new Uint8Array(bs),e.fileInfo.size===void 0&&(e.fileInfo.size=Number.MAX_SAFE_INTEGER),this.tokenizer=e,await e.peekBuffer(this.buffer,{length:32,mayBeLess:!0}),this.check([66,77]))return{ext:"bmp",mime:"image/bmp"};if(this.check([11,119]))return{ext:"ac3",mime:"audio/vnd.dolby.dd-raw"};if(this.check([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(this.check([77,90]))return{ext:"exe",mime:"application/x-msdownload"};if(this.check([37,33]))return await e.peekBuffer(this.buffer,{length:24,mayBeLess:!0}),this.checkString("PS-Adobe-",{offset:2})&&this.checkString(" EPSF-",{offset:14})?{ext:"eps",mime:"application/eps"}:{ext:"ps",mime:"application/postscript"};if(this.check([31,160])||this.check([31,157]))return{ext:"Z",mime:"application/x-compress"};if(this.check([199,113]))return{ext:"cpio",mime:"application/x-cpio"};if(this.check([96,234]))return{ext:"arj",mime:"application/x-arj"};if(this.check([239,187,191]))return this.tokenizer.ignore(3),this.detectConfident(e);if(this.check([71,73,70]))return{ext:"gif",mime:"image/gif"};if(this.check([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(this.check([31,139,8])){let n=new nr(e).inflate(),s=!0;try{let i;try{i=await this.fromStream(n)}catch{s=!1}if(i&&i.ext==="tar")return{ext:"tar.gz",mime:"application/gzip"}}finally{s&&await n.cancel()}return{ext:"gz",mime:"application/gzip"}}if(this.check([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(this.checkString("ID3")){await e.ignore(6);let r=await e.readToken(cl);return e.position+r>e.fileInfo.size?{ext:"mp3",mime:"audio/mpeg"}:(await e.ignore(r),this.fromTokenizer(e))}if(this.checkString("MP+"))return{ext:"mpc",mime:"audio/x-musepack"};if((this.buffer[0]===67||this.buffer[0]===70)&&this.check([87,83],{offset:1}))return{ext:"swf",mime:"application/x-shockwave-flash"};if(this.check([255,216,255]))return this.check([247],{offset:3})?{ext:"jls",mime:"image/jls"}:{ext:"jpg",mime:"image/jpeg"};if(this.check([79,98,106,1]))return{ext:"avro",mime:"application/avro"};if(this.checkString("FLIF"))return{ext:"flif",mime:"image/flif"};if(this.checkString("8BPS"))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(this.checkString("MPCK"))return{ext:"mpc",mime:"audio/x-musepack"};if(this.checkString("FORM"))return{ext:"aif",mime:"audio/aiff"};if(this.checkString("icns",{offset:0}))return{ext:"icns",mime:"image/icns"};if(this.check([80,75,3,4])){let r;return await new rr(e).unzip(n=>{switch(n.filename){case"META-INF/mozilla.rsa":return r={ext:"xpi",mime:"application/x-xpinstall"},{stop:!0};case"META-INF/MANIFEST.MF":return r={ext:"jar",mime:"application/java-archive"},{stop:!0};case"mimetype":return{async handler(s){let i=new TextDecoder("utf-8").decode(s).trim();r=Ss(i)},stop:!0};case"[Content_Types].xml":return{async handler(s){let i=new TextDecoder("utf-8").decode(s),o=i.indexOf('.main+xml"');if(o===-1){let a="application/vnd.ms-package.3dmanufacturing-3dmodel+xml";i.includes(`ContentType="${a}"`)&&(r=Ss(a))}else{i=i.slice(0,Math.max(0,o));let a=i.lastIndexOf('"'),c=i.slice(Math.max(0,a+1));r=Ss(c)}},stop:!0};default:return/classes\d*\.dex/.test(n.filename)?(r={ext:"apk",mime:"application/vnd.android.package-archive"},{stop:!0}):{}}}).catch(n=>{if(!(n instanceof Q))throw n}),r??{ext:"zip",mime:"application/zip"}}if(this.checkString("OggS")){await e.ignore(28);let r=new Uint8Array(8);return await e.readBuffer(r),Ve(r,[79,112,117,115,72,101,97,100])?{ext:"opus",mime:"audio/ogg; codecs=opus"}:Ve(r,[128,116,104,101,111,114,97])?{ext:"ogv",mime:"video/ogg"}:Ve(r,[1,118,105,100,101,111,0])?{ext:"ogm",mime:"video/ogg"}:Ve(r,[127,70,76,65,67])?{ext:"oga",mime:"audio/ogg"}:Ve(r,[83,112,101,101,120,32,32])?{ext:"spx",mime:"audio/ogg"}:Ve(r,[1,118,111,114,98,105,115])?{ext:"ogg",mime:"audio/ogg"}:{ext:"ogx",mime:"application/ogg"}}if(this.check([80,75])&&(this.buffer[2]===3||this.buffer[2]===5||this.buffer[2]===7)&&(this.buffer[3]===4||this.buffer[3]===6||this.buffer[3]===8))return{ext:"zip",mime:"application/zip"};if(this.checkString("MThd"))return{ext:"mid",mime:"audio/midi"};if(this.checkString("wOFF")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff",mime:"font/woff"};if(this.checkString("wOF2")&&(this.check([0,1,0,0],{offset:4})||this.checkString("OTTO",{offset:4})))return{ext:"woff2",mime:"font/woff2"};if(this.check([212,195,178,161])||this.check([161,178,195,212]))return{ext:"pcap",mime:"application/vnd.tcpdump.pcap"};if(this.checkString("DSD "))return{ext:"dsf",mime:"audio/x-dsf"};if(this.checkString("LZIP"))return{ext:"lz",mime:"application/x-lzip"};if(this.checkString("fLaC"))return{ext:"flac",mime:"audio/flac"};if(this.check([66,80,71,251]))return{ext:"bpg",mime:"image/bpg"};if(this.checkString("wvpk"))return{ext:"wv",mime:"audio/wavpack"};if(this.checkString("%PDF"))return{ext:"pdf",mime:"application/pdf"};if(this.check([0,97,115,109]))return{ext:"wasm",mime:"application/wasm"};if(this.check([73,73])){let r=await this.readTiffHeader(!1);if(r)return r}if(this.check([77,77])){let r=await this.readTiffHeader(!0);if(r)return r}if(this.checkString("MAC "))return{ext:"ape",mime:"audio/ape"};if(this.check([26,69,223,163])){async function r(){let a=await e.peekNumber(Bc),c=128,l=0;for(;(a&c)===0&&c!==0;)++l,c>>=1;let u=new Uint8Array(l+1);return await e.readBuffer(u),u}async function n(){let a=await r(),c=await r();c[0]^=128>>c.length-1;let l=Math.min(6,c.length),u=new DataView(a.buffer),f=new DataView(c.buffer,c.length-l,l);return{id:Es(u),len:Es(f)}}async function s(a){for(;a>0;){let c=await n();if(c.id===17026)return(await e.readToken(new Se(c.len))).replaceAll(/\00.*$/g,"");await e.ignore(c.len),--a}}let i=await n();switch(await s(i.len)){case"webm":return{ext:"webm",mime:"video/webm"};case"matroska":return{ext:"mkv",mime:"video/matroska"};default:return}}if(this.checkString("SQLi"))return{ext:"sqlite",mime:"application/x-sqlite3"};if(this.check([78,69,83,26]))return{ext:"nes",mime:"application/x-nintendo-nes-rom"};if(this.checkString("Cr24"))return{ext:"crx",mime:"application/x-google-chrome-extension"};if(this.checkString("MSCF")||this.checkString("ISc("))return{ext:"cab",mime:"application/vnd.ms-cab-compressed"};if(this.check([237,171,238,219]))return{ext:"rpm",mime:"application/x-rpm"};if(this.check([197,208,211,198]))return{ext:"eps",mime:"application/eps"};if(this.check([40,181,47,253]))return{ext:"zst",mime:"application/zstd"};if(this.check([127,69,76,70]))return{ext:"elf",mime:"application/x-elf"};if(this.check([33,66,68,78]))return{ext:"pst",mime:"application/vnd.ms-outlook"};if(this.checkString("PAR1")||this.checkString("PARE"))return{ext:"parquet",mime:"application/vnd.apache.parquet"};if(this.checkString("ttcf"))return{ext:"ttc",mime:"font/collection"};if(this.check([207,250,237,254]))return{ext:"macho",mime:"application/x-mach-binary"};if(this.check([4,34,77,24]))return{ext:"lz4",mime:"application/x-lz4"};if(this.checkString("regf"))return{ext:"dat",mime:"application/x-ft-windows-registry-hive"};if(this.checkString("$FL2")||this.checkString("$FL3"))return{ext:"sav",mime:"application/x-spss-sav"};if(this.check([79,84,84,79,0]))return{ext:"otf",mime:"font/otf"};if(this.checkString("#!AMR"))return{ext:"amr",mime:"audio/amr"};if(this.checkString("{\\rtf"))return{ext:"rtf",mime:"application/rtf"};if(this.check([70,76,86,1]))return{ext:"flv",mime:"video/x-flv"};if(this.checkString("IMPM"))return{ext:"it",mime:"audio/x-it"};if(this.checkString("-lh0-",{offset:2})||this.checkString("-lh1-",{offset:2})||this.checkString("-lh2-",{offset:2})||this.checkString("-lh3-",{offset:2})||this.checkString("-lh4-",{offset:2})||this.checkString("-lh5-",{offset:2})||this.checkString("-lh6-",{offset:2})||this.checkString("-lh7-",{offset:2})||this.checkString("-lzs-",{offset:2})||this.checkString("-lz4-",{offset:2})||this.checkString("-lz5-",{offset:2})||this.checkString("-lhd-",{offset:2}))return{ext:"lzh",mime:"application/x-lzh-compressed"};if(this.check([0,0,1,186])){if(this.check([33],{offset:4,mask:[241]}))return{ext:"mpg",mime:"video/MP1S"};if(this.check([68],{offset:4,mask:[196]}))return{ext:"mpg",mime:"video/MP2P"}}if(this.checkString("ITSF"))return{ext:"chm",mime:"application/vnd.ms-htmlhelp"};if(this.check([202,254,186,190]))return{ext:"class",mime:"application/java-vm"};if(this.checkString(".RMF"))return{ext:"rm",mime:"application/vnd.rn-realmedia"};if(this.checkString("DRACO"))return{ext:"drc",mime:"application/vnd.google.draco"};if(this.check([253,55,122,88,90,0]))return{ext:"xz",mime:"application/x-xz"};if(this.checkString("<?xml "))return{ext:"xml",mime:"application/xml"};if(this.check([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(this.check([82,97,114,33,26,7])&&(this.buffer[6]===0||this.buffer[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(this.checkString("solid "))return{ext:"stl",mime:"model/stl"};if(this.checkString("AC")){let r=new Se(4,"latin1").get(this.buffer,2);if(r.match("^d*")&&r>=1e3&&r<=1050)return{ext:"dwg",mime:"image/vnd.dwg"}}if(this.checkString("070707"))return{ext:"cpio",mime:"application/x-cpio"};if(this.checkString("BLENDER"))return{ext:"blend",mime:"application/x-blender"};if(this.checkString("!<arch>"))return await e.ignore(8),await e.readToken(new Se(13,"ascii"))==="debian-binary"?{ext:"deb",mime:"application/x-deb"}:{ext:"ar",mime:"application/x-unix-archive"};if(this.checkString("WEBVTT")&&[`
425
+ `,"\r"," "," ","\0"].some(r=>this.checkString(r,{offset:6})))return{ext:"vtt",mime:"text/vtt"};if(this.check([137,80,78,71,13,10,26,10])){await e.ignore(8);async function r(){return{length:await e.readToken(Uc),type:await e.readToken(new Se(4,"latin1"))}}do{let n=await r();if(n.length<0)return;switch(n.type){case"IDAT":return{ext:"png",mime:"image/png"};case"acTL":return{ext:"apng",mime:"image/apng"};default:await e.ignore(n.length+4)}}while(e.position+8<e.fileInfo.size);return{ext:"png",mime:"image/png"}}if(this.check([65,82,82,79,87,49,0,0]))return{ext:"arrow",mime:"application/vnd.apache.arrow.file"};if(this.check([103,108,84,70,2,0,0,0]))return{ext:"glb",mime:"model/gltf-binary"};if(this.check([102,114,101,101],{offset:4})||this.check([109,100,97,116],{offset:4})||this.check([109,111,111,118],{offset:4})||this.check([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(this.check([73,73,82,79,8,0,0,0,24]))return{ext:"orf",mime:"image/x-olympus-orf"};if(this.checkString("gimp xcf "))return{ext:"xcf",mime:"image/x-xcf"};if(this.checkString("ftyp",{offset:4})&&(this.buffer[8]&96)!==0){let r=new Se(4,"latin1").get(this.buffer,8).replace("\0"," ").trim();switch(r){case"avif":case"avis":return{ext:"avif",mime:"image/avif"};case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt":return{ext:"mov",mime:"video/quicktime"};case"M4V":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P":return{ext:"m4p",mime:"video/mp4"};case"M4B":return{ext:"m4b",mime:"audio/mp4"};case"M4A":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V":return{ext:"f4v",mime:"video/mp4"};case"F4P":return{ext:"f4p",mime:"video/mp4"};case"F4A":return{ext:"f4a",mime:"audio/mp4"};case"F4B":return{ext:"f4b",mime:"audio/mp4"};case"crx":return{ext:"cr3",mime:"image/x-canon-cr3"};default:return r.startsWith("3g")?r.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(this.checkString(`REGEDIT4\r
426
+ `))return{ext:"reg",mime:"application/x-ms-regedit"};if(this.check([82,73,70,70])){if(this.checkString("WEBP",{offset:8}))return{ext:"webp",mime:"image/webp"};if(this.check([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(this.check([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/wav"};if(this.check([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(this.check([73,73,85,0,24,0,0,0,136,231,116,216]))return{ext:"rw2",mime:"image/x-panasonic-rw2"};if(this.check([48,38,178,117,142,102,207,17,166,217])){async function r(){let n=new Uint8Array(16);return await e.readBuffer(n),{id:n,size:Number(await e.readToken(zc))}}for(await e.ignore(30);e.position+24<e.fileInfo.size;){let n=await r(),s=n.size-24;if(Ve(n.id,[145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101])){let i=new Uint8Array(16);if(s-=await e.readBuffer(i),Ve(i,[64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"audio/x-ms-asf"};if(Ve(i,[192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43]))return{ext:"asf",mime:"video/x-ms-asf"};break}await e.ignore(s)}return{ext:"asf",mime:"application/vnd.ms-asf"}}if(this.check([171,75,84,88,32,49,49,187,13,10,26,10]))return{ext:"ktx",mime:"image/ktx"};if((this.check([126,16,4])||this.check([126,24,4]))&&this.check([48,77,73,69],{offset:4}))return{ext:"mie",mime:"application/x-mie"};if(this.check([39,10,0,0,0,0,0,0,0,0,0,0],{offset:2}))return{ext:"shp",mime:"application/x-esri-shape"};if(this.check([255,79,255,81]))return{ext:"j2c",mime:"image/j2c"};if(this.check([0,0,0,12,106,80,32,32,13,10,135,10]))switch(await e.ignore(20),await e.readToken(new Se(4,"ascii"))){case"jp2 ":return{ext:"jp2",mime:"image/jp2"};case"jpx ":return{ext:"jpx",mime:"image/jpx"};case"jpm ":return{ext:"jpm",mime:"image/jpm"};case"mjp2":return{ext:"mj2",mime:"image/mj2"};default:return}if(this.check([255,10])||this.check([0,0,0,12,74,88,76,32,13,10,135,10]))return{ext:"jxl",mime:"image/jxl"};if(this.check([254,255]))return this.checkString("<?xml ",{offset:2,encoding:"utf-16be"})?{ext:"xml",mime:"application/xml"}:void 0;if(this.check([208,207,17,224,161,177,26,225]))return{ext:"cfb",mime:"application/x-cfb"};if(await e.peekBuffer(this.buffer,{length:Math.min(256,e.fileInfo.size),mayBeLess:!0}),this.check([97,99,115,112],{offset:36}))return{ext:"icc",mime:"application/vnd.iccprofile"};if(this.checkString("**ACE",{offset:7})&&this.checkString("**",{offset:12}))return{ext:"ace",mime:"application/x-ace-compressed"};if(this.checkString("BEGIN:")){if(this.checkString("VCARD",{offset:6}))return{ext:"vcf",mime:"text/vcard"};if(this.checkString("VCALENDAR",{offset:6}))return{ext:"ics",mime:"text/calendar"}}if(this.checkString("FUJIFILMCCD-RAW"))return{ext:"raf",mime:"image/x-fujifilm-raf"};if(this.checkString("Extended Module:"))return{ext:"xm",mime:"audio/x-xm"};if(this.checkString("Creative Voice File"))return{ext:"voc",mime:"audio/x-voc"};if(this.check([4,0,0,0])&&this.buffer.length>=16){let r=new DataView(this.buffer.buffer).getUint32(12,!0);if(r>12&&this.buffer.length>=r+16)try{let n=new TextDecoder().decode(this.buffer.subarray(16,r+16));if(JSON.parse(n).files)return{ext:"asar",mime:"application/x-asar"}}catch{}}if(this.check([6,14,43,52,2,5,1,1,13,1,2,1,1,2]))return{ext:"mxf",mime:"application/mxf"};if(this.checkString("SCRM",{offset:44}))return{ext:"s3m",mime:"audio/x-s3m"};if(this.check([71])&&this.check([71],{offset:188}))return{ext:"mts",mime:"video/mp2t"};if(this.check([71],{offset:4})&&this.check([71],{offset:196}))return{ext:"mts",mime:"video/mp2t"};if(this.check([66,79,79,75,77,79,66,73],{offset:60}))return{ext:"mobi",mime:"application/x-mobipocket-ebook"};if(this.check([68,73,67,77],{offset:128}))return{ext:"dcm",mime:"application/dicom"};if(this.check([76,0,0,0,1,20,2,0,0,0,0,0,192,0,0,0,0,0,0,70]))return{ext:"lnk",mime:"application/x.ms.shortcut"};if(this.check([98,111,111,107,0,0,0,0,109,97,114,107,0,0,0,0]))return{ext:"alias",mime:"application/x.apple.alias"};if(this.checkString("Kaydara FBX Binary \0"))return{ext:"fbx",mime:"application/x.autodesk.fbx"};if(this.check([76,80],{offset:34})&&(this.check([0,0,1],{offset:8})||this.check([1,0,2],{offset:8})||this.check([2,0,2],{offset:8})))return{ext:"eot",mime:"application/vnd.ms-fontobject"};if(this.check([6,6,237,245,216,29,70,229,189,49,239,231,254,116,183,29]))return{ext:"indd",mime:"application/x-indesign"};if(this.check([255,255,0,0,7,0,0,0,4,0,0,0,1,0,1,0])||this.check([0,0,255,255,0,0,0,7,0,0,0,4,0,1,0,1]))return{ext:"jmp",mime:"application/x-jmp-data"};if(await e.peekBuffer(this.buffer,{length:Math.min(512,e.fileInfo.size),mayBeLess:!0}),this.checkString("ustar",{offset:257})&&(this.checkString("\0",{offset:262})||this.checkString(" ",{offset:262}))||this.check([0,0,0,0,0,0],{offset:257})&&al(this.buffer))return{ext:"tar",mime:"application/x-tar"};if(this.check([255,254])){let r="utf-16le";return this.checkString("<?xml ",{offset:2,encoding:r})?{ext:"xml",mime:"application/xml"}:this.check([255,14],{offset:2})&&this.checkString("SketchUp Model",{offset:4,encoding:r})?{ext:"skp",mime:"application/vnd.sketchup.skp"}:this.checkString(`Windows Registry Editor Version 5.00\r
427
+ `,{offset:2,encoding:r})?{ext:"reg",mime:"application/x-ms-regedit"}:void 0}if(this.checkString("-----BEGIN PGP MESSAGE-----"))return{ext:"pgp",mime:"application/pgp-encrypted"}};detectImprecise=async e=>{if(this.buffer=new Uint8Array(bs),await e.peekBuffer(this.buffer,{length:Math.min(8,e.fileInfo.size),mayBeLess:!0}),this.check([0,0,1,186])||this.check([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};if(this.check([0,1,0,0,0]))return{ext:"ttf",mime:"font/ttf"};if(this.check([0,0,1,0]))return{ext:"ico",mime:"image/x-icon"};if(this.check([0,0,2,0]))return{ext:"cur",mime:"image/x-icon"};if(await e.peekBuffer(this.buffer,{length:Math.min(2+this.options.mpegOffsetTolerance,e.fileInfo.size),mayBeLess:!0}),this.buffer.length>=2+this.options.mpegOffsetTolerance)for(let r=0;r<=this.options.mpegOffsetTolerance;++r){let n=this.scanMpeg(r);if(n)return n}};async readTiffTag(e){let r=await this.tokenizer.readToken(e?Lt:ee);switch(this.tokenizer.ignore(10),r){case 50341:return{ext:"arw",mime:"image/x-sony-arw"};case 50706:return{ext:"dng",mime:"image/x-adobe-dng"};default:}}async readTiffIFD(e){let r=await this.tokenizer.readToken(e?Lt:ee);for(let n=0;n<r;++n){let s=await this.readTiffTag(e);if(s)return s}}async readTiffHeader(e){let r=(e?Lt:ee).get(this.buffer,2),n=(e?Wc:oe).get(this.buffer,4);if(r===42){if(n>=6){if(this.checkString("CR",{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(n>=8){let i=(e?Lt:ee).get(this.buffer,8),o=(e?Lt:ee).get(this.buffer,10);if(i===28&&o===254||i===31&&o===11)return{ext:"nef",mime:"image/x-nikon-nef"}}}return await this.tokenizer.ignore(n),await this.readTiffIFD(e)??{ext:"tif",mime:"image/tiff"}}if(r===43)return{ext:"tif",mime:"image/tiff"}}scanMpeg(e){if(this.check([255,224],{offset:e,mask:[255,224]})){if(this.check([16],{offset:e+1,mask:[22]}))return this.check([8],{offset:e+1,mask:[8]})?{ext:"aac",mime:"audio/aac"}:{ext:"aac",mime:"audio/aac"};if(this.check([2],{offset:e+1,mask:[6]}))return{ext:"mp3",mime:"audio/mpeg"};if(this.check([4],{offset:e+1,mask:[6]}))return{ext:"mp2",mime:"audio/mpeg"};if(this.check([6],{offset:e+1,mask:[6]}))return{ext:"mp1",mime:"audio/mpeg"}}}},r0=new Set(ul),n0=new Set(fl)});var hl=A(()=>{Fc();dl()});var gl={};$(gl,{fileCommand:()=>l0});function i0(t,e){if(yl[t])return yl[t];let[r,n]=e.split("/"),s=n?.split("+")[0]?.replace(/-/g," ")||t;switch(r){case"image":return`${s.toUpperCase()} image data`;case"audio":return`${s.toUpperCase()} audio`;case"video":return`${s.toUpperCase()} video`;case"font":return`${s} font`;case"model":return`${s} 3D model`;case"application":return n?.includes("zip")||n?.includes("compressed")?`${s} archive data`:n?.includes("executable")?`${s} executable`:`${t.toUpperCase()} data`;default:return`${t.toUpperCase()} data`}}function o0(t){let e=t.split("/").pop()||t;if(e.startsWith(".")&&!e.includes(".",1))return e;let r=e.lastIndexOf(".");return r===-1||r===0?"":e.slice(r).toLowerCase()}function a0(t,e){if(t.startsWith("#!")){let c=t.split(`
428
428
  `)[0];return c.includes("python")?{description:"Python script, ASCII text executable",mime:"text/x-python"}:c.includes("node")||c.includes("bun")||c.includes("deno")?{description:"JavaScript script, ASCII text executable",mime:"text/javascript"}:c.includes("bash")?{description:"Bourne-Again shell script, ASCII text executable",mime:"text/x-shellscript"}:c.includes("sh")?{description:"POSIX shell script, ASCII text executable",mime:"text/x-shellscript"}:c.includes("ruby")?{description:"Ruby script, ASCII text executable",mime:"text/x-ruby"}:c.includes("perl")?{description:"Perl script, ASCII text executable",mime:"text/x-perl"}:{description:"script, ASCII text executable",mime:"text/plain"}}let r=t.trimStart();if(r.startsWith("<?xml"))return{description:"XML document",mime:"application/xml"};if(r.startsWith("<!DOCTYPE html")||r.toLowerCase().startsWith("<html"))return{description:"HTML document",mime:"text/html"};let n=t.includes(`\r
429
- `),s=t.includes("\r")&&!n,i="";n?i=", with CRLF line terminators":s&&(i=", with CR line terminators");let o=Zm(e);if(o&&ll[o]){let c=ll[o];return c.mime.startsWith("text/")&&i?{description:`${c.description}${i}`,mime:c.mime}:c}let a=!1;for(let c=0;c<Math.min(t.length,8192);c++)if(t.charCodeAt(c)>127){a=!0;break}return a?{description:`UTF-8 Unicode text${i}`,mime:"text/plain; charset=utf-8"}:{description:`ASCII text${i}`,mime:"text/plain"}}async function Xm(t,e){if(e.length===0)return{description:"empty",mime:"inode/x-empty"};let r=await bs(e);if(r)return{description:Km(r.ext,r.mime),mime:r.mime};let n=new TextDecoder("utf-8",{fatal:!1}).decode(e);return Qm(n,t)}var Vm,ll,ul,Jm,pl=A(()=>{"use strict";cl();_();Vm={name:"file",summary:"determine file type",usage:"file [OPTION]... FILE...",options:["-b, --brief do not prepend filenames to output","-i, --mime output MIME type strings","-L, --dereference follow symlinks"," --help display this help and exit"]},ll={".js":{description:"JavaScript source",mime:"text/javascript"},".mjs":{description:"JavaScript module",mime:"text/javascript"},".cjs":{description:"CommonJS module",mime:"text/javascript"},".ts":{description:"TypeScript source",mime:"text/typescript"},".tsx":{description:"TypeScript JSX source",mime:"text/typescript"},".jsx":{description:"JavaScript JSX source",mime:"text/javascript"},".py":{description:"Python script",mime:"text/x-python"},".rb":{description:"Ruby script",mime:"text/x-ruby"},".go":{description:"Go source",mime:"text/x-go"},".rs":{description:"Rust source",mime:"text/x-rust"},".c":{description:"C source",mime:"text/x-c"},".h":{description:"C header",mime:"text/x-c"},".cpp":{description:"C++ source",mime:"text/x-c++"},".hpp":{description:"C++ header",mime:"text/x-c++"},".java":{description:"Java source",mime:"text/x-java"},".sh":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".bash":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".zsh":{description:"Zsh shell script",mime:"text/x-shellscript"},".json":{description:"JSON data",mime:"application/json"},".yaml":{description:"YAML data",mime:"text/yaml"},".yml":{description:"YAML data",mime:"text/yaml"},".xml":{description:"XML document",mime:"application/xml"},".csv":{description:"CSV text",mime:"text/csv"},".toml":{description:"TOML data",mime:"text/toml"},".html":{description:"HTML document",mime:"text/html"},".htm":{description:"HTML document",mime:"text/html"},".css":{description:"CSS stylesheet",mime:"text/css"},".svg":{description:"SVG image",mime:"image/svg+xml"},".md":{description:"Markdown document",mime:"text/markdown"},".markdown":{description:"Markdown document",mime:"text/markdown"},".txt":{description:"ASCII text",mime:"text/plain"},".rst":{description:"reStructuredText",mime:"text/x-rst"},".env":{description:"ASCII text",mime:"text/plain"},".gitignore":{description:"ASCII text",mime:"text/plain"},".dockerignore":{description:"ASCII text",mime:"text/plain"}},ul={jpg:"JPEG image data",jpeg:"JPEG image data",png:"PNG image data",gif:"GIF image data",webp:"WebP image data",bmp:"PC bitmap",ico:"MS Windows icon resource",tif:"TIFF image data",tiff:"TIFF image data",psd:"Adobe Photoshop Document",avif:"AVIF image",heic:"HEIC image",heif:"HEIF image",jxl:"JPEG XL image",icns:"Mac OS X icon",svg:"SVG Scalable Vector Graphics image",pdf:"PDF document",epub:"EPUB document",mobi:"Mobipocket E-book",djvu:"DjVu document",zip:"Zip archive data",gz:"gzip compressed data",gzip:"gzip compressed data",bz2:"bzip2 compressed data",xz:"XZ compressed data",tar:"POSIX tar archive",rar:"RAR archive data","7z":"7-zip archive data",lz:"lzip compressed data",lzma:"LZMA compressed data",zst:"Zstandard compressed data",cab:"Microsoft Cabinet archive",ar:"Unix ar archive",rpm:"RPM package",deb:"Debian binary package",apk:"Android Package",dmg:"Apple disk image",iso:"ISO 9660 CD-ROM filesystem data",vhd:"Microsoft Virtual Hard Disk",vhdx:"Microsoft Virtual Hard Disk (new format)",qcow2:"QEMU QCOW Image",mp3:"Audio file with ID3",m4a:"MPEG-4 audio",aac:"AAC audio",wav:"RIFF (little-endian) data, WAVE audio",flac:"FLAC audio bitstream data",ogg:"Ogg data",oga:"Ogg audio",opus:"Ogg Opus audio",aiff:"AIFF audio",wma:"Windows Media Audio",amr:"AMR audio",mid:"MIDI audio",midi:"MIDI audio",ape:"Monkey's Audio",mp4:"ISO Media, MPEG-4",m4v:"MPEG-4 video",webm:"WebM",avi:"RIFF (little-endian) data, AVI",mov:"ISO Media, Apple QuickTime movie",mkv:"Matroska data",wmv:"Windows Media Video",flv:"Flash Video","3gp":"3GPP multimedia","3g2":"3GPP2 multimedia",ogv:"Ogg video",mts:"MPEG transport stream",m2ts:"MPEG transport stream",ts:"MPEG transport stream",mpg:"MPEG video",mpeg:"MPEG video",exe:"PE32 executable",dll:"PE32 DLL",elf:"ELF executable",mach:"Mach-O executable",wasm:"WebAssembly (wasm) binary module",dex:"Android Dalvik executable",class:"Java class file",swf:"Adobe Flash",doc:"Microsoft Word Document",docx:"Microsoft Word 2007+ Document",xls:"Microsoft Excel Spreadsheet",xlsx:"Microsoft Excel 2007+ Spreadsheet",ppt:"Microsoft PowerPoint Presentation",pptx:"Microsoft PowerPoint 2007+ Presentation",odt:"OpenDocument Text",ods:"OpenDocument Spreadsheet",odp:"OpenDocument Presentation",ttf:"TrueType Font",otf:"OpenType Font",woff:"Web Open Font Format",woff2:"Web Open Font Format 2",eot:"Embedded OpenType font",stl:"Stereolithography CAD",obj:"Wavefront 3D Object",gltf:"GL Transmission Format",glb:"GL Transmission Format (binary)",sqlite:"SQLite 3.x database",mdb:"Microsoft Access Database",xml:"XML document",json:"JSON data",macho:"Mach-O binary",ics:"iCalendar data",vcf:"vCard data",msi:"Microsoft Installer",ps:"PostScript",ai:"Adobe Illustrator",indd:"Adobe InDesign",sketch:"Sketch design file",fig:"Figma design file",xd:"Adobe XD",blend:"Blender",fbx:"Autodesk FBX",lnk:"MS Windows shortcut",alias:"Mac OS alias",torrent:"BitTorrent file",pcap:"pcap capture file",arrow:"Apache Arrow",parquet:"Apache Parquet"};Jm={name:"file",async execute(t,e){if(I(t))return N(Vm);let r=!1,n=!1,s=[];for(let a of t)if(a.startsWith("--")){if(a==="--brief")r=!0;else if(a==="--mime"||a==="--mime-type")n=!0;else if(a!=="--dereference")return L("file",a)}else if(a.startsWith("-")&&a!=="-"){for(let c of a.slice(1))if(c==="b")r=!0;else if(c==="i")n=!0;else if(c!=="L")return L("file",`-${c}`)}else s.push(a);if(s.length===0)return{stdout:"",stderr:`Usage: file [-bLi] FILE...
429
+ `),s=t.includes("\r")&&!n,i="";n?i=", with CRLF line terminators":s&&(i=", with CR line terminators");let o=o0(e);if(o&&ml[o]){let c=ml[o];return c.mime.startsWith("text/")&&i?{description:`${c.description}${i}`,mime:c.mime}:c}let a=!1;for(let c=0;c<Math.min(t.length,8192);c++)if(t.charCodeAt(c)>127){a=!0;break}return a?{description:`UTF-8 Unicode text${i}`,mime:"text/plain; charset=utf-8"}:{description:`ASCII text${i}`,mime:"text/plain"}}async function c0(t,e){if(e.length===0)return{description:"empty",mime:"inode/x-empty"};let r=await Cs(e);if(r)return{description:i0(r.ext,r.mime),mime:r.mime};let n=new TextDecoder("utf-8",{fatal:!1}).decode(e);return a0(n,t)}var s0,ml,yl,l0,xl=A(()=>{"use strict";hl();_();s0={name:"file",summary:"determine file type",usage:"file [OPTION]... FILE...",options:["-b, --brief do not prepend filenames to output","-i, --mime output MIME type strings","-L, --dereference follow symlinks"," --help display this help and exit"]},ml={".js":{description:"JavaScript source",mime:"text/javascript"},".mjs":{description:"JavaScript module",mime:"text/javascript"},".cjs":{description:"CommonJS module",mime:"text/javascript"},".ts":{description:"TypeScript source",mime:"text/typescript"},".tsx":{description:"TypeScript JSX source",mime:"text/typescript"},".jsx":{description:"JavaScript JSX source",mime:"text/javascript"},".py":{description:"Python script",mime:"text/x-python"},".rb":{description:"Ruby script",mime:"text/x-ruby"},".go":{description:"Go source",mime:"text/x-go"},".rs":{description:"Rust source",mime:"text/x-rust"},".c":{description:"C source",mime:"text/x-c"},".h":{description:"C header",mime:"text/x-c"},".cpp":{description:"C++ source",mime:"text/x-c++"},".hpp":{description:"C++ header",mime:"text/x-c++"},".java":{description:"Java source",mime:"text/x-java"},".sh":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".bash":{description:"Bourne-Again shell script",mime:"text/x-shellscript"},".zsh":{description:"Zsh shell script",mime:"text/x-shellscript"},".json":{description:"JSON data",mime:"application/json"},".yaml":{description:"YAML data",mime:"text/yaml"},".yml":{description:"YAML data",mime:"text/yaml"},".xml":{description:"XML document",mime:"application/xml"},".csv":{description:"CSV text",mime:"text/csv"},".toml":{description:"TOML data",mime:"text/toml"},".html":{description:"HTML document",mime:"text/html"},".htm":{description:"HTML document",mime:"text/html"},".css":{description:"CSS stylesheet",mime:"text/css"},".svg":{description:"SVG image",mime:"image/svg+xml"},".md":{description:"Markdown document",mime:"text/markdown"},".markdown":{description:"Markdown document",mime:"text/markdown"},".txt":{description:"ASCII text",mime:"text/plain"},".rst":{description:"reStructuredText",mime:"text/x-rst"},".env":{description:"ASCII text",mime:"text/plain"},".gitignore":{description:"ASCII text",mime:"text/plain"},".dockerignore":{description:"ASCII text",mime:"text/plain"}},yl={jpg:"JPEG image data",jpeg:"JPEG image data",png:"PNG image data",gif:"GIF image data",webp:"WebP image data",bmp:"PC bitmap",ico:"MS Windows icon resource",tif:"TIFF image data",tiff:"TIFF image data",psd:"Adobe Photoshop Document",avif:"AVIF image",heic:"HEIC image",heif:"HEIF image",jxl:"JPEG XL image",icns:"Mac OS X icon",svg:"SVG Scalable Vector Graphics image",pdf:"PDF document",epub:"EPUB document",mobi:"Mobipocket E-book",djvu:"DjVu document",zip:"Zip archive data",gz:"gzip compressed data",gzip:"gzip compressed data",bz2:"bzip2 compressed data",xz:"XZ compressed data",tar:"POSIX tar archive",rar:"RAR archive data","7z":"7-zip archive data",lz:"lzip compressed data",lzma:"LZMA compressed data",zst:"Zstandard compressed data",cab:"Microsoft Cabinet archive",ar:"Unix ar archive",rpm:"RPM package",deb:"Debian binary package",apk:"Android Package",dmg:"Apple disk image",iso:"ISO 9660 CD-ROM filesystem data",vhd:"Microsoft Virtual Hard Disk",vhdx:"Microsoft Virtual Hard Disk (new format)",qcow2:"QEMU QCOW Image",mp3:"Audio file with ID3",m4a:"MPEG-4 audio",aac:"AAC audio",wav:"RIFF (little-endian) data, WAVE audio",flac:"FLAC audio bitstream data",ogg:"Ogg data",oga:"Ogg audio",opus:"Ogg Opus audio",aiff:"AIFF audio",wma:"Windows Media Audio",amr:"AMR audio",mid:"MIDI audio",midi:"MIDI audio",ape:"Monkey's Audio",mp4:"ISO Media, MPEG-4",m4v:"MPEG-4 video",webm:"WebM",avi:"RIFF (little-endian) data, AVI",mov:"ISO Media, Apple QuickTime movie",mkv:"Matroska data",wmv:"Windows Media Video",flv:"Flash Video","3gp":"3GPP multimedia","3g2":"3GPP2 multimedia",ogv:"Ogg video",mts:"MPEG transport stream",m2ts:"MPEG transport stream",ts:"MPEG transport stream",mpg:"MPEG video",mpeg:"MPEG video",exe:"PE32 executable",dll:"PE32 DLL",elf:"ELF executable",mach:"Mach-O executable",wasm:"WebAssembly (wasm) binary module",dex:"Android Dalvik executable",class:"Java class file",swf:"Adobe Flash",doc:"Microsoft Word Document",docx:"Microsoft Word 2007+ Document",xls:"Microsoft Excel Spreadsheet",xlsx:"Microsoft Excel 2007+ Spreadsheet",ppt:"Microsoft PowerPoint Presentation",pptx:"Microsoft PowerPoint 2007+ Presentation",odt:"OpenDocument Text",ods:"OpenDocument Spreadsheet",odp:"OpenDocument Presentation",ttf:"TrueType Font",otf:"OpenType Font",woff:"Web Open Font Format",woff2:"Web Open Font Format 2",eot:"Embedded OpenType font",stl:"Stereolithography CAD",obj:"Wavefront 3D Object",gltf:"GL Transmission Format",glb:"GL Transmission Format (binary)",sqlite:"SQLite 3.x database",mdb:"Microsoft Access Database",xml:"XML document",json:"JSON data",macho:"Mach-O binary",ics:"iCalendar data",vcf:"vCard data",msi:"Microsoft Installer",ps:"PostScript",ai:"Adobe Illustrator",indd:"Adobe InDesign",sketch:"Sketch design file",fig:"Figma design file",xd:"Adobe XD",blend:"Blender",fbx:"Autodesk FBX",lnk:"MS Windows shortcut",alias:"Mac OS alias",torrent:"BitTorrent file",pcap:"pcap capture file",arrow:"Apache Arrow",parquet:"Apache Parquet"};l0={name:"file",async execute(t,e){if(I(t))return N(s0);let r=!1,n=!1,s=[];for(let a of t)if(a.startsWith("--")){if(a==="--brief")r=!0;else if(a==="--mime"||a==="--mime-type")n=!0;else if(a!=="--dereference")return L("file",a)}else if(a.startsWith("-")&&a!=="-"){for(let c of a.slice(1))if(c==="b")r=!0;else if(c==="i")n=!0;else if(c!=="L")return L("file",`-${c}`)}else s.push(a);if(s.length===0)return{stdout:"",stderr:`Usage: file [-bLi] FILE...
430
430
  `,exitCode:1};let i="",o=0;for(let a of s)try{let c=e.fs.resolvePath(e.cwd,a);if((await e.fs.stat(c)).isDirectory){let d=n?"inode/directory":"directory";i+=r?`${d}
431
431
  `:`${a}: ${d}
432
- `;continue}let u=await e.fs.readFileBuffer(c),f=await Xm(a,u),p=n?f.mime:f.description;i+=r?`${p}
432
+ `;continue}let u=await e.fs.readFileBuffer(c),f=await c0(a,u),p=n?f.mime:f.description;i+=r?`${p}
433
433
  `:`${a}: ${p}
434
434
  `}catch{i+=r?`cannot open
435
435
  `:`${a}: cannot open (No such file or directory)
436
- `,o=1}return{stdout:i,stderr:"",exitCode:o}}}});var dl={};$(dl,{htmlToMarkdownCommand:()=>t0});import Ym from"turndown";var e0,t0,hl=A(()=>{"use strict";_();e0={name:"html-to-markdown",summary:"convert HTML to Markdown (BashEnv extension)",usage:"html-to-markdown [OPTION]... [FILE]",description:["Convert HTML content to Markdown format using the turndown library.","This is a non-standard BashEnv extension command, not available in regular bash.","","Read HTML from FILE or standard input and output Markdown to standard output.","Commonly used with curl to convert web pages:"," curl -s https://example.com | html-to-markdown","","Supported HTML elements:"," - Headings (h1-h6) \u2192 # Markdown headings"," - Paragraphs (p) \u2192 Plain text with blank lines"," - Links (a) \u2192 [text](url)"," - Images (img) \u2192 ![alt](src)"," - Bold/Strong \u2192 **text**"," - Italic/Em \u2192 _text_"," - Code (code, pre) \u2192 `inline` or fenced blocks"," - Lists (ul, ol, li) \u2192 - or 1. items"," - Blockquotes \u2192 > quoted text"," - Horizontal rules (hr) \u2192 ---"],options:["-b, --bullet=CHAR bullet character for unordered lists (-, +, or *)","-c, --code=FENCE fence style for code blocks (``` or ~~~)","-r, --hr=STRING string for horizontal rules (default: ---)"," --heading-style=STYLE"," heading style: 'atx' for # headings (default),"," 'setext' for underlined headings (h1/h2 only)"," --help display this help and exit"],examples:["echo '<h1>Hello</h1><p>World</p>' | html-to-markdown","html-to-markdown page.html","curl -s https://example.com | html-to-markdown > page.md"]},t0={name:"html-to-markdown",async execute(t,e){if(I(t))return N(e0);let r="-",n="```",s="---",i="atx",o=[];for(let c=0;c<t.length;c++){let l=t[c];if(l==="-b"||l==="--bullet")r=t[++c]??"-";else if(l.startsWith("--bullet="))r=l.slice(9);else if(l==="-c"||l==="--code")n=t[++c]??"```";else if(l.startsWith("--code="))n=l.slice(7);else if(l==="-r"||l==="--hr")s=t[++c]??"---";else if(l.startsWith("--hr="))s=l.slice(5);else if(l.startsWith("--heading-style=")){let u=l.slice(16);(u==="setext"||u==="atx")&&(i=u)}else if(l==="-")o.push("-");else{if(l.startsWith("--"))return L("html-to-markdown",l);if(l.startsWith("-"))return L("html-to-markdown",l);o.push(l)}}let a;if(o.length===0||o.length===1&&o[0]==="-")a=e.stdin;else try{let c=e.fs.resolvePath(e.cwd,o[0]);a=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`html-to-markdown: ${o[0]}: No such file or directory
437
- `,exitCode:1}}if(!a.trim())return{stdout:"",stderr:"",exitCode:0};try{let c=new Ym({bulletListMarker:r,codeBlockStyle:"fenced",fence:n,hr:s,headingStyle:i});return c.remove(["script","style","footer"]),{stdout:`${c.turndown(a).trim()}
436
+ `,o=1}return{stdout:i,stderr:"",exitCode:o}}}});var wl={};$(wl,{htmlToMarkdownCommand:()=>p0});import u0 from"turndown";var f0,p0,El=A(()=>{"use strict";_();f0={name:"html-to-markdown",summary:"convert HTML to Markdown (BashEnv extension)",usage:"html-to-markdown [OPTION]... [FILE]",description:["Convert HTML content to Markdown format using the turndown library.","This is a non-standard BashEnv extension command, not available in regular bash.","","Read HTML from FILE or standard input and output Markdown to standard output.","Commonly used with curl to convert web pages:"," curl -s https://example.com | html-to-markdown","","Supported HTML elements:"," - Headings (h1-h6) \u2192 # Markdown headings"," - Paragraphs (p) \u2192 Plain text with blank lines"," - Links (a) \u2192 [text](url)"," - Images (img) \u2192 ![alt](src)"," - Bold/Strong \u2192 **text**"," - Italic/Em \u2192 _text_"," - Code (code, pre) \u2192 `inline` or fenced blocks"," - Lists (ul, ol, li) \u2192 - or 1. items"," - Blockquotes \u2192 > quoted text"," - Horizontal rules (hr) \u2192 ---"],options:["-b, --bullet=CHAR bullet character for unordered lists (-, +, or *)","-c, --code=FENCE fence style for code blocks (``` or ~~~)","-r, --hr=STRING string for horizontal rules (default: ---)"," --heading-style=STYLE"," heading style: 'atx' for # headings (default),"," 'setext' for underlined headings (h1/h2 only)"," --help display this help and exit"],examples:["echo '<h1>Hello</h1><p>World</p>' | html-to-markdown","html-to-markdown page.html","curl -s https://example.com | html-to-markdown > page.md"]},p0={name:"html-to-markdown",async execute(t,e){if(I(t))return N(f0);let r="-",n="```",s="---",i="atx",o=[];for(let c=0;c<t.length;c++){let l=t[c];if(l==="-b"||l==="--bullet")r=t[++c]??"-";else if(l.startsWith("--bullet="))r=l.slice(9);else if(l==="-c"||l==="--code")n=t[++c]??"```";else if(l.startsWith("--code="))n=l.slice(7);else if(l==="-r"||l==="--hr")s=t[++c]??"---";else if(l.startsWith("--hr="))s=l.slice(5);else if(l.startsWith("--heading-style=")){let u=l.slice(16);(u==="setext"||u==="atx")&&(i=u)}else if(l==="-")o.push("-");else{if(l.startsWith("--"))return L("html-to-markdown",l);if(l.startsWith("-"))return L("html-to-markdown",l);o.push(l)}}let a;if(o.length===0||o.length===1&&o[0]==="-")a=e.stdin;else try{let c=e.fs.resolvePath(e.cwd,o[0]);a=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`html-to-markdown: ${o[0]}: No such file or directory
437
+ `,exitCode:1}}if(!a.trim())return{stdout:"",stderr:"",exitCode:0};try{let c=new u0({bulletListMarker:r,codeBlockStyle:"fenced",fence:n,hr:s,headingStyle:i});return c.remove(["script","style","footer"]),{stdout:`${c.turndown(a).trim()}
438
438
  `,stderr:"",exitCode:0}}catch(c){return{stdout:"",stderr:`html-to-markdown: conversion error: ${c.message}
439
- `,exitCode:1}}}}});var ml={};$(ml,{helpCommand:()=>s0});function n0(t){let e=[],r=new Set(t);e.push(`Available commands:
440
- `);let n=[];for(let[s,i]of Object.entries(r0)){let o=i.filter(a=>r.has(a));if(o.length>0){e.push(` ${s}:`),e.push(` ${o.join(", ")}
439
+ `,exitCode:1}}}}});var bl={};$(bl,{helpCommand:()=>m0});function h0(t){let e=[],r=new Set(t);e.push(`Available commands:
440
+ `);let n=[];for(let[s,i]of Object.entries(d0)){let o=i.filter(a=>r.has(a));if(o.length>0){e.push(` ${s}:`),e.push(` ${o.join(", ")}
441
441
  `);for(let a of o)r.delete(a)}}for(let s of r)n.push(s);return n.length>0&&(e.push(" Other:"),e.push(` ${n.sort().join(", ")}
442
442
  `)),e.push("Use '<command> --help' for details on a specific command."),`${e.join(`
443
443
  `)}
444
- `}var r0,s0,yl=A(()=>{"use strict";r0={"File operations":["ls","cat","head","tail","wc","touch","mkdir","rm","cp","mv","ln","chmod","stat","readlink"],"Text processing":["grep","sed","awk","sort","uniq","cut","tr","tee","diff"],Search:["find"],"Navigation & paths":["pwd","basename","dirname","tree","du"],"Environment & shell":["echo","printf","env","printenv","export","alias","unalias","history","clear","true","false","bash","sh"],"Data processing":["xargs","jq","base64","date"],Network:["curl","html-to-markdown"]};s0={name:"help",async execute(t,e){if(t.includes("--help")||t.includes("-h"))return{stdout:`help - display available commands
444
+ `}var d0,m0,Sl=A(()=>{"use strict";d0={"File operations":["ls","cat","head","tail","wc","touch","mkdir","rm","cp","mv","ln","chmod","stat","readlink"],"Text processing":["grep","sed","awk","sort","uniq","cut","tr","tee","diff"],Search:["find"],"Navigation & paths":["pwd","basename","dirname","tree","du"],"Environment & shell":["echo","printf","env","printenv","export","alias","unalias","history","clear","true","false","bash","sh"],"Data processing":["xargs","jq","base64","date"],Network:["curl","html-to-markdown"]};m0={name:"help",async execute(t,e){if(t.includes("--help")||t.includes("-h"))return{stdout:`help - display available commands
445
445
 
446
446
  Usage: help [command]
447
447
 
@@ -450,119 +450,149 @@ Options:
450
450
 
451
451
  If a command name is provided, shows help for that command.
452
452
  Otherwise, lists all available commands.
453
- `,stderr:"",exitCode:0};if(t.length>0&&e.exec){let n=t[0];return e.exec(`${n} --help`,{cwd:e.cwd})}let r=e.getRegisteredCommands?.()??[];return{stdout:n0(r),stderr:"",exitCode:0}}}});var gl={};$(gl,{whichCommand:()=>a0});var i0,o0,a0,xl=A(()=>{"use strict";fe();_();i0={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},o0={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},a0={name:"which",async execute(t,e){if(I(t))return N(i0);let r=G("which",t,o0);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.silent,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:"",exitCode:1};let a=(e.env.PATH||"/bin:/usr/bin").split(":"),c="",l=!0;for(let u of i){let f=!1;for(let p of a){if(!p)continue;let d=`${p}/${u}`;if(await e.fs.exists(d)&&(f=!0,s||(c+=`${d}
454
- `),!n))break}f||(l=!1)}return{stdout:c,stderr:"",exitCode:l?0:1}}}});var wl={};$(wl,{tac:()=>l0});async function c0(t,e){if(t.length>0&&t[0]!=="-"){let s=t[0].startsWith("/")?t[0]:`${e.cwd}/${t[0]}`;try{let o=(await e.fs.readFile(s)).split(`
453
+ `,stderr:"",exitCode:0};if(t.length>0&&e.exec){let n=t[0];return e.exec(`${n} --help`,{cwd:e.cwd})}let r=e.getRegisteredCommands?.()??[];return{stdout:h0(r),stderr:"",exitCode:0}}}});var Al={};$(Al,{whichCommand:()=>x0});var y0,g0,x0,Cl=A(()=>{"use strict";le();_();y0={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},g0={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},x0={name:"which",async execute(t,e){if(I(t))return N(y0);let r=j("which",t,g0);if(!r.ok)return r.error;let n=r.result.flags.showAll,s=r.result.flags.silent,i=r.result.positional;if(i.length===0)return{stdout:"",stderr:"",exitCode:1};let a=(e.env.PATH||"/bin:/usr/bin").split(":"),c="",l=!0;for(let u of i){let f=!1;for(let p of a){if(!p)continue;let d=`${p}/${u}`;if(await e.fs.exists(d)&&(f=!0,s||(c+=`${d}
454
+ `),!n))break}f||(l=!1)}return{stdout:c,stderr:"",exitCode:l?0:1}}}});var kl={};$(kl,{tac:()=>E0});async function w0(t,e){if(t.length>0&&t[0]!=="-"){let s=t[0].startsWith("/")?t[0]:`${e.cwd}/${t[0]}`;try{let o=(await e.fs.readFile(s)).split(`
455
455
  `);o[o.length-1]===""&&o.pop();let a=o.reverse();return{stdout:a.length>0?`${a.join(`
456
456
  `)}
457
457
  `:"",stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`tac: ${t[0]}: No such file or directory
458
458
  `,exitCode:1}}}let r=e.stdin.split(`
459
459
  `);r[r.length-1]===""&&r.pop();let n=r.reverse();return{stdout:n.length>0?`${n.join(`
460
460
  `)}
461
- `:"",stderr:"",exitCode:0}}var l0,El=A(()=>{"use strict";l0={name:"tac",execute:c0}});var bl={};$(bl,{hostname:()=>f0});async function u0(t,e){return{stdout:`localhost
462
- `,stderr:"",exitCode:0}}var f0,Sl=A(()=>{"use strict";f0={name:"hostname",execute:u0}});var Al={};$(Al,{od:()=>d0});async function p0(t,e){let r=t.includes("-c"),n=t.includes("-An")?"none":"octal",s=e.stdin,i=t.filter(c=>!c.startsWith("-")&&c!=="-");if(i.length>0){let c=i[0].startsWith("/")?i[0]:`${e.cwd}/${i[0]}`;try{s=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`od: ${i[0]}: No such file or directory
461
+ `:"",stderr:"",exitCode:0}}var E0,Nl=A(()=>{"use strict";E0={name:"tac",execute:w0}});var Il={};$(Il,{hostname:()=>S0});async function b0(t,e){return{stdout:`localhost
462
+ `,stderr:"",exitCode:0}}var S0,vl=A(()=>{"use strict";S0={name:"hostname",execute:b0}});var Rl={};$(Rl,{od:()=>C0});async function A0(t,e){let r=t.includes("-c"),n=t.includes("-An")?"none":"octal",s=e.stdin,i=t.filter(c=>!c.startsWith("-")&&c!=="-");if(i.length>0){let c=i[0].startsWith("/")?i[0]:`${e.cwd}/${i[0]}`;try{s=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`od: ${i[0]}: No such file or directory
463
463
  `,exitCode:1}}}if(r){let c=[];for(let u of s){let f=u.charCodeAt(0);f===0?c.push("\\0"):f===9?c.push("\\t"):f===10?c.push("\\n"):f===13?c.push("\\r"):f===32?c.push(" "):f>=32&&f<127?c.push(` ${u}`):c.push(`\\${f.toString(8).padStart(3,"0")}`)}let l=[];for(let u=0;u<c.length;u+=16){let f=c.slice(u,u+16),p=n==="none"?"":`${u.toString(8).padStart(7,"0")} `;l.push(p+f.join(" "))}return n!=="none"&&l.push(s.length.toString(8).padStart(7,"0")),{stdout:`${l.join(`
464
464
  `)}
465
465
  `,stderr:"",exitCode:0}}let o=[];for(let c of s)o.push(c.charCodeAt(0).toString(8).padStart(3,"0"));let a=[];for(let c=0;c<o.length;c+=8){let l=o.slice(c,c+8),u=n==="none"?"":`${c.toString(8).padStart(7,"0")} `;a.push(u+l.join(" "))}return n!=="none"&&o.length>0&&a.push(s.length.toString(8).padStart(7,"0")),{stdout:a.length>0?`${a.join(`
466
466
  `)}
467
- `:"",stderr:"",exitCode:0}}var d0,Cl=A(()=>{"use strict";d0={name:"od",execute:p0}});function Ss(t){let e=t.indexOf("=");if(e>=0){let r=t.slice(0,e),n=t.slice(e+1);return r?`${encodeURIComponent(r)}=${encodeURIComponent(n)}`:encodeURIComponent(n)}return encodeURIComponent(t)}function As(t){let e=t.indexOf("=");if(e<0)return null;let r=t.slice(0,e),n=t.slice(e+1),s,i,o=n.match(/;type=([^;]+)$/);o&&(i=o[1],n=n.slice(0,-o[0].length));let a=n.match(/;filename=([^;]+)/);return a&&(s=a[1],n=n.replace(a[0],"")),(n.startsWith("@")||n.startsWith("<"))&&(s=s??n.slice(1).split("/").pop()),{name:r,value:n,filename:s,contentType:i}}function kl(t,e){let r=`----CurlFormBoundary${Date.now().toString(36)}`,n=[];for(let s of t){let i=s.value;if(i.startsWith("@")||i.startsWith("<")){let a=i.slice(1);i=e.get(a)??""}let o=`--${r}\r
467
+ `:"",stderr:"",exitCode:0}}var C0,$l=A(()=>{"use strict";C0={name:"od",execute:A0}});var Qr={};$(Qr,{gunzipCommand:()=>T0,gzipCommand:()=>P0,zcatCommand:()=>F0});import{constants as ks,gunzipSync as Ns,gzipSync as Ol}from"node:zlib";function Pl(t){return t.best?ks.Z_BEST_COMPRESSION:t.level8?8:t.level7?7:t.level6?6:t.level5?5:t.level4?4:t.level3?3:t.level2?2:t.fast?ks.Z_BEST_SPEED:ks.Z_DEFAULT_COMPRESSION}function Tl(t){if(t.length<10)return{originalName:null,mtime:null,headerSize:0};if(t[0]!==31||t[1]!==139)return{originalName:null,mtime:null,headerSize:0};let e=t[3],r=t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n=10;if(e&4){if(n+2>t.length)return{originalName:null,mtime:null,headerSize:0};let i=t[n]|t[n+1]<<8;n+=2+i}let s=null;if(e&8){let i=n;for(;n<t.length&&t[n]!==0;)n++;n<t.length&&(s=new TextDecoder().decode(t.slice(i,n)),n++)}if(e&16){for(;n<t.length&&t[n]!==0;)n++;n++}return e&2&&(n+=2),{originalName:s,mtime:r>0?new Date(r*1e3):null,headerSize:n}}function R0(t){if(t.length<4)return 0;let e=t.length;return t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24}function Zr(t){return t.length>=2&&t[0]===31&&t[1]===139}async function Fl(t,e,r,n,s,i){let o=r.suffix,a,c,l;if(e==="-"||e==="")if(l=new TextEncoder().encode(t.stdin),s){if(!Zr(l))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: stdin: not in gzip format
468
+ `,exitCode:1};try{let u=Ns(l);return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0}}catch(u){let f=u instanceof Error?u.message:"unknown error";return{stdout:"",stderr:`${n}: stdin: ${f}
469
+ `,exitCode:1}}}else{let u=Pl(r),f=Ol(l,{level:u});return{stdout:String.fromCharCode(...f),stderr:"",exitCode:0}}a=t.fs.resolvePath(t.cwd,e);try{if((await t.fs.stat(a)).isDirectory)return r.recursive?await Dl(t,a,r,n,s,i):r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: is a directory -- ignored
470
+ `,exitCode:1}}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
471
+ `,exitCode:1}}try{l=await t.fs.readFileBuffer(a)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
472
+ `,exitCode:1}}if(s){if(!e.endsWith(o))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: unknown suffix -- ignored
473
+ `,exitCode:1};if(!Zr(l))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
474
+ `,exitCode:1};let u;try{u=Ns(l)}catch(f){let p=f instanceof Error?f.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${p}
475
+ `,exitCode:1}}if(i)return{stdout:new TextDecoder().decode(u),stderr:"",exitCode:0};if(r.name){let f=Tl(l);f.originalName?c=t.fs.resolvePath(t.cwd,f.originalName):c=a.slice(0,-o.length)}else c=a.slice(0,-o.length);if(!r.force)try{return await t.fs.stat(c),{stdout:"",stderr:`${n}: ${c} already exists; not overwritten
476
+ `,exitCode:1}}catch{}if(await t.fs.writeFile(c,u),!r.keep&&!i&&await t.fs.rm(a),r.verbose){let f=l.length>0?((1-l.length/u.length)*100).toFixed(1):"0.0";return{stdout:"",stderr:`${e}: ${f}% -- replaced with ${c.split("/").pop()}
477
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}else{if(e.endsWith(o))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e} already has ${o} suffix -- unchanged
478
+ `,exitCode:1};let u=Pl(r),f;try{f=Ol(l,{level:u})}catch(p){let d=p instanceof Error?p.message:"unknown error";return{stdout:"",stderr:`${n}: ${e}: ${d}
479
+ `,exitCode:1}}if(i)return{stdout:String.fromCharCode(...f),stderr:"",exitCode:0};if(c=a+o,!r.force)try{return await t.fs.stat(c),{stdout:"",stderr:`${n}: ${c} already exists; not overwritten
480
+ `,exitCode:1}}catch{}if(await t.fs.writeFile(c,f),!r.keep&&!i&&await t.fs.rm(a),r.verbose){let p=l.length>0?((1-f.length/l.length)*100).toFixed(1):"0.0";return{stdout:"",stderr:`${e}: ${p}% -- replaced with ${c.split("/").pop()}
481
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}}async function Dl(t,e,r,n,s,i){let o=await t.fs.readdir(e),a="",c="",l=0;for(let u of o){let f=t.fs.resolvePath(e,u),p=await t.fs.stat(f);if(p.isDirectory){let d=await Dl(t,f,r,n,s,i);a+=d.stdout,c+=d.stderr,d.exitCode!==0&&(l=d.exitCode)}else if(p.isFile){let d=r.suffix;if(s&&!u.endsWith(d)||!s&&u.endsWith(d))continue;let h=f.startsWith(`${t.cwd}/`)?f.slice(t.cwd.length+1):f,g=await Fl(t,h,r,n,s,i);a+=g.stdout,c+=g.stderr,g.exitCode!==0&&(l=g.exitCode)}}return{stdout:a,stderr:c,exitCode:l}}async function $0(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let f=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(f)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
482
+ `,exitCode:1}}}if(!Zr(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
483
+ `,exitCode:1};let i=s.length,o=R0(s),a=o>0?((1-i/o)*100).toFixed(1):"0.0",l=Tl(s).originalName||(e==="-"?"":e.replace(/\.gz$/,""));return{stdout:`${i.toString().padStart(10)} ${o.toString().padStart(10)} ${a.padStart(5)}% ${l}
484
+ `,stderr:"",exitCode:0}}async function O0(t,e,r,n){let s;if(e==="-"||e==="")s=new TextEncoder().encode(t.stdin);else{let i=t.fs.resolvePath(t.cwd,e);try{s=await t.fs.readFileBuffer(i)}catch{return{stdout:"",stderr:`${n}: ${e}: No such file or directory
485
+ `,exitCode:1}}}if(!Zr(s))return r.quiet?{stdout:"",stderr:"",exitCode:1}:{stdout:"",stderr:`${n}: ${e}: not in gzip format
486
+ `,exitCode:1};try{return Ns(s),r.verbose?{stdout:"",stderr:`${e}: OK
487
+ `,exitCode:0}:{stdout:"",stderr:"",exitCode:0}}catch(i){let o=i instanceof Error?i.message:"invalid";return{stdout:"",stderr:`${n}: ${e}: ${o}
488
+ `,exitCode:1}}}async function Is(t,e,r){let n=r==="zcat"?I0:r==="gunzip"?N0:k0;if(I(t))return N(n);let s=j(r,t,v0);if(!s.ok)return s.error.stderr.includes("unrecognized option"),s.error;let i=s.result.flags,o=s.result.positional,a=r==="gunzip"||r==="zcat"||i.decompress||i.uncompress,c=r==="zcat"||i.stdout||i.toStdout;if(i.list){o.length===0&&(o=["-"]);let p=` compressed uncompressed ratio uncompressed_name
489
+ `,d="",h=0;for(let g of o){let m=await $0(e,g,i,r);p+=m.stdout,d+=m.stderr,m.exitCode!==0&&(h=m.exitCode)}return{stdout:p,stderr:d,exitCode:h}}if(i.test){o.length===0&&(o=["-"]);let p="",d="",h=0;for(let g of o){let m=await O0(e,g,i,r);p+=m.stdout,d+=m.stderr,m.exitCode!==0&&(h=m.exitCode)}return{stdout:p,stderr:d,exitCode:h}}o.length===0&&(o=["-"]);let l="",u="",f=0;for(let p of o){let d=await Fl(e,p,i,r,a,c);l+=d.stdout,u+=d.stderr,d.exitCode!==0&&(f=d.exitCode)}return{stdout:l,stderr:u,exitCode:f}}var k0,N0,I0,v0,P0,T0,F0,Xr=A(()=>{"use strict";le();_();k0={name:"gzip",summary:"compress or expand files",usage:"gzip [OPTION]... [FILE]...",description:`Compress FILEs (by default, in-place).
490
+
491
+ When no FILE is given, or when FILE is -, read from standard input.
492
+
493
+ With -d, decompress instead.`,options:["-c, --stdout write to standard output, keep original files","-d, --decompress decompress","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not save or restore the original name and timestamp","-N, --name save or restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode","-1, --fast compress faster","-9, --best compress better"," --help display this help and exit"]},N0={name:"gunzip",summary:"decompress files",usage:"gunzip [OPTION]... [FILE]...",description:`Decompress FILEs (by default, in-place).
494
+
495
+ When no FILE is given, or when FILE is -, read from standard input.`,options:["-c, --stdout write to standard output, keep original files","-f, --force force overwrite of output file","-k, --keep keep (don't delete) input files","-l, --list list compressed file contents","-n, --no-name do not restore the original name and timestamp","-N, --name restore the original file name and timestamp","-q, --quiet suppress all warnings","-r, --recursive operate recursively on directories","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},I0={name:"zcat",summary:"decompress files to stdout",usage:"zcat [OPTION]... [FILE]...",description:`Decompress FILEs to standard output.
496
+
497
+ When no FILE is given, or when FILE is -, read from standard input.`,options:["-f, --force force; read compressed data even from a terminal","-l, --list list compressed file contents","-q, --quiet suppress all warnings","-S, --suffix=SUF use suffix SUF on compressed files (default: .gz)","-t, --test test compressed file integrity","-v, --verbose verbose mode"," --help display this help and exit"]},v0={stdout:{short:"c",long:"stdout",type:"boolean"},toStdout:{long:"to-stdout",type:"boolean"},decompress:{short:"d",long:"decompress",type:"boolean"},uncompress:{long:"uncompress",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},keep:{short:"k",long:"keep",type:"boolean"},list:{short:"l",long:"list",type:"boolean"},noName:{short:"n",long:"no-name",type:"boolean"},name:{short:"N",long:"name",type:"boolean"},quiet:{short:"q",long:"quiet",type:"boolean"},recursive:{short:"r",long:"recursive",type:"boolean"},suffix:{short:"S",long:"suffix",type:"string",default:".gz"},test:{short:"t",long:"test",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"},fast:{short:"1",long:"fast",type:"boolean"},level2:{short:"2",type:"boolean"},level3:{short:"3",type:"boolean"},level4:{short:"4",type:"boolean"},level5:{short:"5",type:"boolean"},level6:{short:"6",type:"boolean"},level7:{short:"7",type:"boolean"},level8:{short:"8",type:"boolean"},best:{short:"9",long:"best",type:"boolean"}};P0={name:"gzip",async execute(t,e){return Is(t,e,"gzip")}},T0={name:"gunzip",async execute(t,e){return Is(t,e,"gunzip")}},F0={name:"zcat",async execute(t,e){return Is(t,e,"zcat")}}});function vs(t){let e=t.indexOf("=");if(e>=0){let r=t.slice(0,e),n=t.slice(e+1);return r?`${encodeURIComponent(r)}=${encodeURIComponent(n)}`:encodeURIComponent(n)}return encodeURIComponent(t)}function Rs(t){let e=t.indexOf("=");if(e<0)return null;let r=t.slice(0,e),n=t.slice(e+1),s,i,o=n.match(/;type=([^;]+)$/);o&&(i=o[1],n=n.slice(0,-o[0].length));let a=n.match(/;filename=([^;]+)/);return a&&(s=a[1],n=n.replace(a[0],"")),(n.startsWith("@")||n.startsWith("<"))&&(s=s??n.slice(1).split("/").pop()),{name:r,value:n,filename:s,contentType:i}}function Ll(t,e){let r=`----CurlFormBoundary${Date.now().toString(36)}`,n=[];for(let s of t){let i=s.value;if(i.startsWith("@")||i.startsWith("<")){let a=i.slice(1);i=e.get(a)??""}let o=`--${r}\r
468
498
  `;s.filename?(o+=`Content-Disposition: form-data; name="${s.name}"; filename="${s.filename}"\r
469
499
  `,s.contentType&&(o+=`Content-Type: ${s.contentType}\r
470
500
  `)):o+=`Content-Disposition: form-data; name="${s.name}"\r
471
501
  `,o+=`\r
472
502
  ${i}\r
473
503
  `,n.push(o)}return n.push(`--${r}--\r
474
- `),{body:n.join(""),boundary:r}}var Cs=A(()=>{"use strict"});var Nl,Il=A(()=>{"use strict";Nl={name:"curl",summary:"transfer a URL",usage:"curl [OPTIONS] URL",options:["-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)","-H, --header HEADER Add header (can be used multiple times)","-d, --data DATA HTTP POST data"," --data-raw DATA HTTP POST data (no @ interpretation)"," --data-binary DATA HTTP POST binary data"," --data-urlencode DATA URL-encode and POST data","-F, --form NAME=VALUE Multipart form data","-u, --user USER:PASS HTTP authentication","-A, --user-agent STR Set User-Agent header","-e, --referer URL Set Referer header","-b, --cookie DATA Send cookies (name=value or @file)","-c, --cookie-jar FILE Save cookies to file","-T, --upload-file FILE Upload file (PUT)","-o, --output FILE Write output to file","-O, --remote-name Write to file named from URL","-I, --head Show headers only (HEAD request)","-i, --include Include response headers in output","-s, --silent Silent mode (no progress)","-S, --show-error Show errors even when silent","-f, --fail Fail silently on HTTP errors (no output)","-L, --location Follow redirects (default)"," --max-redirs NUM Maximum redirects (default: 20)","-m, --max-time SECS Maximum time for request"," --connect-timeout SECS Connection timeout","-w, --write-out FMT Output format after completion","-v, --verbose Verbose output"," --help Display this help and exit","","Note: Network access must be configured via BashEnv network option."," curl is not available by default for security reasons."]}});function vl(t){let e={method:"GET",headers:{},dataBinary:!1,formFields:[],useRemoteName:!1,headOnly:!1,includeHeaders:!1,silent:!1,showError:!1,failSilently:!1,followRedirects:!0,verbose:!1};for(let r=0;r<t.length;r++){let n=t[r];if(n==="-X"||n==="--request")e.method=t[++r]??"GET";else if(n.startsWith("-X"))e.method=n.slice(2);else if(n.startsWith("--request="))e.method=n.slice(10);else if(n==="-H"||n==="--header"){let s=t[++r];if(s){let i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}}else if(n.startsWith("--header=")){let s=n.slice(9),i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}else if(n==="-d"||n==="--data"||n==="--data-raw")e.data=t[++r]??"",e.method==="GET"&&(e.method="POST");else if(n.startsWith("-d"))e.data=n.slice(2),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data="))e.data=n.slice(7),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-raw="))e.data=n.slice(11),e.method==="GET"&&(e.method="POST");else if(n==="--data-binary")e.data=t[++r]??"",e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-binary="))e.data=n.slice(14),e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n==="--data-urlencode"){let s=t[++r]??"";e.data=(e.data?`${e.data}&`:"")+Ss(s),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--data-urlencode=")){let s=n.slice(17);e.data=(e.data?`${e.data}&`:"")+Ss(s),e.method==="GET"&&(e.method="POST")}else if(n==="-F"||n==="--form"){let s=t[++r]??"",i=As(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--form=")){let s=n.slice(7),i=As(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n==="-u"||n==="--user")e.user=t[++r];else if(n.startsWith("-u"))e.user=n.slice(2);else if(n.startsWith("--user="))e.user=n.slice(7);else if(n==="-A"||n==="--user-agent")e.headers["User-Agent"]=t[++r]??"";else if(n.startsWith("-A"))e.headers["User-Agent"]=n.slice(2);else if(n.startsWith("--user-agent="))e.headers["User-Agent"]=n.slice(13);else if(n==="-e"||n==="--referer")e.headers.Referer=t[++r]??"";else if(n.startsWith("-e"))e.headers.Referer=n.slice(2);else if(n.startsWith("--referer="))e.headers.Referer=n.slice(10);else if(n==="-b"||n==="--cookie")e.headers.Cookie=t[++r]??"";else if(n.startsWith("-b"))e.headers.Cookie=n.slice(2);else if(n.startsWith("--cookie="))e.headers.Cookie=n.slice(9);else if(n==="-c"||n==="--cookie-jar")e.cookieJar=t[++r];else if(n.startsWith("--cookie-jar="))e.cookieJar=n.slice(13);else if(n==="-T"||n==="--upload-file")e.uploadFile=t[++r],e.method==="GET"&&(e.method="PUT");else if(n.startsWith("--upload-file="))e.uploadFile=n.slice(14),e.method==="GET"&&(e.method="PUT");else if(n==="-m"||n==="--max-time"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--max-time=")){let s=parseFloat(n.slice(11));!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n==="--connect-timeout"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--connect-timeout=")){let s=parseFloat(n.slice(18));!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n==="-o"||n==="--output")e.outputFile=t[++r];else if(n.startsWith("--output="))e.outputFile=n.slice(9);else if(n==="-O"||n==="--remote-name")e.useRemoteName=!0;else if(n==="-I"||n==="--head")e.headOnly=!0,e.method="HEAD";else if(n==="-i"||n==="--include")e.includeHeaders=!0;else if(n==="-s"||n==="--silent")e.silent=!0;else if(n==="-S"||n==="--show-error")e.showError=!0;else if(n==="-f"||n==="--fail")e.failSilently=!0;else if(n==="-L"||n==="--location")e.followRedirects=!0;else if(n==="--max-redirs")r++;else if(!n.startsWith("--max-redirs="))if(n==="-w"||n==="--write-out")e.writeOut=t[++r];else if(n.startsWith("--write-out="))e.writeOut=n.slice(12);else if(n==="-v"||n==="--verbose")e.verbose=!0;else{if(n.startsWith("--")&&n!=="--")return L("curl",n);if(n.startsWith("-")&&n!=="-")for(let s of n.slice(1))switch(s){case"s":e.silent=!0;break;case"S":e.showError=!0;break;case"f":e.failSilently=!0;break;case"L":e.followRedirects=!0;break;case"I":e.headOnly=!0,e.method="HEAD";break;case"i":e.includeHeaders=!0;break;case"O":e.useRemoteName=!0;break;case"v":e.verbose=!0;break;default:return L("curl",`-${s}`)}else n.startsWith("-")||(e.url=n)}}return e}var Rl=A(()=>{"use strict";_();Cs()});function ks(t){return Object.entries(t).map(([e,r])=>`${e}: ${r}`).join(`\r
475
- `)}function $l(t){try{return new URL(t).pathname.split("/").pop()||"index.html"}catch{return"index.html"}}function Ns(t,e){let r=t;return r=r.replace(/%\{http_code\}/g,String(e.status)),r=r.replace(/%\{content_type\}/g,e.headers["content-type"]||""),r=r.replace(/%\{url_effective\}/g,e.url),r=r.replace(/%\{size_download\}/g,String(e.bodyLength)),r=r.replace(/\\n/g,`
476
- `),r}var Ol=A(()=>{"use strict"});var Pl={};$(Pl,{curlCommand:()=>x0});async function h0(t,e){if(t.uploadFile){let r=e.fs.resolvePath(e.cwd,t.uploadFile);return{body:await e.fs.readFile(r)}}if(t.formFields.length>0){let r=new Map;for(let i of t.formFields)if(i.value.startsWith("@")||i.value.startsWith("<")){let o=e.fs.resolvePath(e.cwd,i.value.slice(1));try{let a=await e.fs.readFile(o);r.set(i.value.slice(1),a)}catch{r.set(i.value.slice(1),"")}}let{body:n,boundary:s}=kl(t.formFields,r);return{body:n,contentType:`multipart/form-data; boundary=${s}`}}return t.data!==void 0?{body:t.data}:{}}function m0(t,e){let r={...t.headers};if(t.user){let n=Buffer.from(t.user).toString("base64");r.Authorization=`Basic ${n}`}return e&&!r["Content-Type"]&&(r["Content-Type"]=e),r}async function y0(t,e,r){if(!t.cookieJar)return;let n=e["set-cookie"];if(!n)return;let s=r.fs.resolvePath(r.cwd,t.cookieJar);await r.fs.writeFile(s,n)}function g0(t,e,r){let n="";if(t.verbose){n+=`> ${t.method} ${r}
504
+ `),{body:n.join(""),boundary:r}}var $s=A(()=>{"use strict"});var Ml,_l=A(()=>{"use strict";Ml={name:"curl",summary:"transfer a URL",usage:"curl [OPTIONS] URL",options:["-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)","-H, --header HEADER Add header (can be used multiple times)","-d, --data DATA HTTP POST data"," --data-raw DATA HTTP POST data (no @ interpretation)"," --data-binary DATA HTTP POST binary data"," --data-urlencode DATA URL-encode and POST data","-F, --form NAME=VALUE Multipart form data","-u, --user USER:PASS HTTP authentication","-A, --user-agent STR Set User-Agent header","-e, --referer URL Set Referer header","-b, --cookie DATA Send cookies (name=value or @file)","-c, --cookie-jar FILE Save cookies to file","-T, --upload-file FILE Upload file (PUT)","-o, --output FILE Write output to file","-O, --remote-name Write to file named from URL","-I, --head Show headers only (HEAD request)","-i, --include Include response headers in output","-s, --silent Silent mode (no progress)","-S, --show-error Show errors even when silent","-f, --fail Fail silently on HTTP errors (no output)","-L, --location Follow redirects (default)"," --max-redirs NUM Maximum redirects (default: 20)","-m, --max-time SECS Maximum time for request"," --connect-timeout SECS Connection timeout","-w, --write-out FMT Output format after completion","-v, --verbose Verbose output"," --help Display this help and exit","","Note: Network access must be configured via BashEnv network option."," curl is not available by default for security reasons."]}});function Bl(t){let e={method:"GET",headers:{},dataBinary:!1,formFields:[],useRemoteName:!1,headOnly:!1,includeHeaders:!1,silent:!1,showError:!1,failSilently:!1,followRedirects:!0,verbose:!1};for(let r=0;r<t.length;r++){let n=t[r];if(n==="-X"||n==="--request")e.method=t[++r]??"GET";else if(n.startsWith("-X"))e.method=n.slice(2);else if(n.startsWith("--request="))e.method=n.slice(10);else if(n==="-H"||n==="--header"){let s=t[++r];if(s){let i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}}else if(n.startsWith("--header=")){let s=n.slice(9),i=s.indexOf(":");if(i>0){let o=s.slice(0,i).trim(),a=s.slice(i+1).trim();e.headers[o]=a}}else if(n==="-d"||n==="--data"||n==="--data-raw")e.data=t[++r]??"",e.method==="GET"&&(e.method="POST");else if(n.startsWith("-d"))e.data=n.slice(2),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data="))e.data=n.slice(7),e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-raw="))e.data=n.slice(11),e.method==="GET"&&(e.method="POST");else if(n==="--data-binary")e.data=t[++r]??"",e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n.startsWith("--data-binary="))e.data=n.slice(14),e.dataBinary=!0,e.method==="GET"&&(e.method="POST");else if(n==="--data-urlencode"){let s=t[++r]??"";e.data=(e.data?`${e.data}&`:"")+vs(s),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--data-urlencode=")){let s=n.slice(17);e.data=(e.data?`${e.data}&`:"")+vs(s),e.method==="GET"&&(e.method="POST")}else if(n==="-F"||n==="--form"){let s=t[++r]??"",i=Rs(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n.startsWith("--form=")){let s=n.slice(7),i=Rs(s);i&&e.formFields.push(i),e.method==="GET"&&(e.method="POST")}else if(n==="-u"||n==="--user")e.user=t[++r];else if(n.startsWith("-u"))e.user=n.slice(2);else if(n.startsWith("--user="))e.user=n.slice(7);else if(n==="-A"||n==="--user-agent")e.headers["User-Agent"]=t[++r]??"";else if(n.startsWith("-A"))e.headers["User-Agent"]=n.slice(2);else if(n.startsWith("--user-agent="))e.headers["User-Agent"]=n.slice(13);else if(n==="-e"||n==="--referer")e.headers.Referer=t[++r]??"";else if(n.startsWith("-e"))e.headers.Referer=n.slice(2);else if(n.startsWith("--referer="))e.headers.Referer=n.slice(10);else if(n==="-b"||n==="--cookie")e.headers.Cookie=t[++r]??"";else if(n.startsWith("-b"))e.headers.Cookie=n.slice(2);else if(n.startsWith("--cookie="))e.headers.Cookie=n.slice(9);else if(n==="-c"||n==="--cookie-jar")e.cookieJar=t[++r];else if(n.startsWith("--cookie-jar="))e.cookieJar=n.slice(13);else if(n==="-T"||n==="--upload-file")e.uploadFile=t[++r],e.method==="GET"&&(e.method="PUT");else if(n.startsWith("--upload-file="))e.uploadFile=n.slice(14),e.method==="GET"&&(e.method="PUT");else if(n==="-m"||n==="--max-time"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--max-time=")){let s=parseFloat(n.slice(11));!Number.isNaN(s)&&s>0&&(e.timeoutMs=s*1e3)}else if(n==="--connect-timeout"){let s=parseFloat(t[++r]??"0");!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n.startsWith("--connect-timeout=")){let s=parseFloat(n.slice(18));!Number.isNaN(s)&&s>0&&e.timeoutMs===void 0&&(e.timeoutMs=s*1e3)}else if(n==="-o"||n==="--output")e.outputFile=t[++r];else if(n.startsWith("--output="))e.outputFile=n.slice(9);else if(n==="-O"||n==="--remote-name")e.useRemoteName=!0;else if(n==="-I"||n==="--head")e.headOnly=!0,e.method="HEAD";else if(n==="-i"||n==="--include")e.includeHeaders=!0;else if(n==="-s"||n==="--silent")e.silent=!0;else if(n==="-S"||n==="--show-error")e.showError=!0;else if(n==="-f"||n==="--fail")e.failSilently=!0;else if(n==="-L"||n==="--location")e.followRedirects=!0;else if(n==="--max-redirs")r++;else if(!n.startsWith("--max-redirs="))if(n==="-w"||n==="--write-out")e.writeOut=t[++r];else if(n.startsWith("--write-out="))e.writeOut=n.slice(12);else if(n==="-v"||n==="--verbose")e.verbose=!0;else{if(n.startsWith("--")&&n!=="--")return L("curl",n);if(n.startsWith("-")&&n!=="-")for(let s of n.slice(1))switch(s){case"s":e.silent=!0;break;case"S":e.showError=!0;break;case"f":e.failSilently=!0;break;case"L":e.followRedirects=!0;break;case"I":e.headOnly=!0,e.method="HEAD";break;case"i":e.includeHeaders=!0;break;case"O":e.useRemoteName=!0;break;case"v":e.verbose=!0;break;default:return L("curl",`-${s}`)}else n.startsWith("-")||(e.url=n)}}return e}var Wl=A(()=>{"use strict";_();$s()});function Os(t){return Object.entries(t).map(([e,r])=>`${e}: ${r}`).join(`\r
505
+ `)}function Ul(t){try{return new URL(t).pathname.split("/").pop()||"index.html"}catch{return"index.html"}}function Ps(t,e){let r=t;return r=r.replace(/%\{http_code\}/g,String(e.status)),r=r.replace(/%\{content_type\}/g,e.headers["content-type"]||""),r=r.replace(/%\{url_effective\}/g,e.url),r=r.replace(/%\{size_download\}/g,String(e.bodyLength)),r=r.replace(/\\n/g,`
506
+ `),r}var zl=A(()=>{"use strict"});var Hl={};$(Hl,{curlCommand:()=>B0});async function D0(t,e){if(t.uploadFile){let r=e.fs.resolvePath(e.cwd,t.uploadFile);return{body:await e.fs.readFile(r)}}if(t.formFields.length>0){let r=new Map;for(let i of t.formFields)if(i.value.startsWith("@")||i.value.startsWith("<")){let o=e.fs.resolvePath(e.cwd,i.value.slice(1));try{let a=await e.fs.readFile(o);r.set(i.value.slice(1),a)}catch{r.set(i.value.slice(1),"")}}let{body:n,boundary:s}=Ll(t.formFields,r);return{body:n,contentType:`multipart/form-data; boundary=${s}`}}return t.data!==void 0?{body:t.data}:{}}function L0(t,e){let r={...t.headers};if(t.user){let n=Buffer.from(t.user).toString("base64");r.Authorization=`Basic ${n}`}return e&&!r["Content-Type"]&&(r["Content-Type"]=e),r}async function M0(t,e,r){if(!t.cookieJar)return;let n=e["set-cookie"];if(!n)return;let s=r.fs.resolvePath(r.cwd,t.cookieJar);await r.fs.writeFile(s,n)}function _0(t,e,r){let n="";if(t.verbose){n+=`> ${t.method} ${r}
477
507
  `;for(let[s,i]of Object.entries(t.headers))n+=`> ${s}: ${i}
478
508
  `;n+=`>
479
509
  `,n+=`< HTTP/1.1 ${e.status} ${e.statusText}
480
510
  `;for(let[s,i]of Object.entries(e.headers))n+=`< ${s}: ${i}
481
511
  `;n+=`<
482
512
  `}return t.includeHeaders&&!t.verbose&&(n+=`HTTP/1.1 ${e.status} ${e.statusText}\r
483
- `,n+=ks(e.headers),n+=`\r
513
+ `,n+=Os(e.headers),n+=`\r
484
514
  \r
485
515
  `),t.headOnly?t.includeHeaders||t.verbose||(n+=`HTTP/1.1 ${e.status} ${e.statusText}\r
486
- `,n+=ks(e.headers),n+=`\r
487
- `):n+=e.body,t.writeOut&&(n+=Ns(t.writeOut,{status:e.status,headers:e.headers,url:e.url,bodyLength:e.body.length})),n}var x0,Tl=A(()=>{"use strict";We();_();Cs();Il();Rl();Ol();x0={name:"curl",async execute(t,e){if(I(t))return N(Nl);let r=vl(t);if("exitCode"in r)return r;let n=r;if(!n.url)return{stdout:"",stderr:`curl: no URL specified
516
+ `,n+=Os(e.headers),n+=`\r
517
+ `):n+=e.body,t.writeOut&&(n+=Ps(t.writeOut,{status:e.status,headers:e.headers,url:e.url,bodyLength:e.body.length})),n}var B0,jl=A(()=>{"use strict";We();_();$s();_l();Wl();zl();B0={name:"curl",async execute(t,e){if(I(t))return N(Ml);let r=Bl(t);if("exitCode"in r)return r;let n=r;if(!n.url)return{stdout:"",stderr:`curl: no URL specified
488
518
  `,exitCode:2};if(!e.fetch)return{stdout:"",stderr:`curl: internal error: fetch not available
489
- `,exitCode:1};let s=n.url;s.match(/^https?:\/\//)||(s=`https://${s}`);try{let{body:i,contentType:o}=await h0(n,e),a=m0(n,o),c=await e.fetch(s,{method:n.method,headers:Object.keys(a).length>0?a:void 0,body:i,followRedirects:n.followRedirects,timeoutMs:n.timeoutMs});if(await y0(n,c.headers,e),n.failSilently&&c.status>=400)return{stdout:"",stderr:n.showError||!n.silent?`curl: (22) The requested URL returned error: ${c.status}
490
- `:"",exitCode:22};let l=g0(n,c,s);if(n.outputFile||n.useRemoteName){let u=n.outputFile||$l(s),f=e.fs.resolvePath(e.cwd,u);await e.fs.writeFile(f,n.headOnly?"":c.body),n.verbose||(l=""),n.writeOut&&(l=Ns(n.writeOut,{status:c.status,headers:c.headers,url:c.url,bodyLength:c.body.length}))}return{stdout:l,stderr:"",exitCode:0}}catch(i){let o=re(i),a=1;return o.includes("Network access denied")?a=7:o.includes("HTTP method")&&o.includes("not allowed")?a=3:o.includes("Redirect target not in allow-list")||o.includes("Too many redirects")?a=47:o.includes("aborted")&&(a=28),{stdout:"",stderr:!n.silent||n.showError?`curl: (${a}) ${o}
491
- `:"",exitCode:a}}}}});import{tool as Fy,zodSchema as Dy}from"ai";import{z as af}from"zod";var Fl=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>(Ci(),Ai))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(Ni(),ki))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>($i(),Ri))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(Fi(),Ti))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(Li(),Di))).mkdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(_i(),Mi))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(Wi(),Bi))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(Hi(),Ui))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(zi(),ji))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(qi(),Gi))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(Zi(),Ki))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(Xi(),Qi))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>(Yi(),Ji))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(no(),ro))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(io(),so))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(co(),ao))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(fo(),uo))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).egrepCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(Ao(),So))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(qo(),Go))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(ra(),ta))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(sa(),na))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(oa(),ia))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(ca(),aa))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(fa(),ua))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(ha(),da))).trCommand},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(ya(),ma))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(Sa(),ba))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>(Ca(),Aa))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(Na(),ka))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(Ra(),va))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(Pa(),Oa))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(Zn(),Kn))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(Zn(),Kn))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(Xn(),Qn))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(Xn(),Qn))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(Da(),Fa))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(Ma(),La))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(Yn(),Jn))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(Yn(),Jn))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(Ba(),_a))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(ts(),es))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(ts(),es))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(Za(),Ka))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(Ja(),Xa))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(tc(),ec))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(nc(),rc))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(ic(),sc))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(ac(),oc))).timeoutCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(lc(),cc))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(fc(),uc))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(hc(),dc))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(yc(),mc))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(xc(),gc))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(pl(),fl))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(hl(),dl))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(yl(),ml))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(xl(),gl))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(El(),wl))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(Sl(),bl))).hostname},{name:"od",load:async()=>(await Promise.resolve().then(()=>(Cl(),Al))).od}],w0=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(Tl(),Pl))).curlCommand}],Dl=new Map;function Ll(t){return{name:t.name,async execute(e,r){let n=Dl.get(t.name);return n||(n=await t.load(),Dl.set(t.name,n)),n.execute(e,r)}}}function Ml(t){return(t?Fl.filter(r=>t.includes(r.name)):Fl).map(Ll)}function _l(){return w0.map(Ll)}function Bl(t){return"load"in t&&typeof t.load=="function"}function Wl(t){let e=null;return{name:t.name,async execute(r,n){return e||(e=await t.load()),e.execute(r,n)}}}var E0=new TextEncoder,b0=new TextDecoder;function Is(t,e){if(t instanceof Uint8Array)return t;switch(e){case"base64":return Uint8Array.from(atob(t),r=>r.charCodeAt(0));case"hex":{let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=parseInt(t.slice(n,n+2),16);return r}case"binary":case"latin1":return Uint8Array.from(t,r=>r.charCodeAt(0));default:return E0.encode(t)}}function Ul(t,e){switch(e){case"base64":return btoa(String.fromCharCode(...t));case"hex":return Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");case"binary":case"latin1":return String.fromCharCode(...t);default:return b0.decode(t)}}function Zr(t){if(t!=null)return typeof t=="string"?t:t.encoding??void 0}var Qr=new TextEncoder;function S0(t){return typeof t=="object"&&t!==null&&!(t instanceof Uint8Array)&&"content"in t}var sr=class{data=new Map;constructor(e){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),e)for(let[r,n]of Object.entries(e))S0(n)?this.writeFileSync(r,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(r,n)}normalizePath(e){if(!e||e==="/")return"/";let r=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;r.startsWith("/")||(r=`/${r}`);let n=r.split("/").filter(i=>i&&i!=="."),s=[];for(let i of n)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(e){let r=this.normalizePath(e);if(r==="/")return"/";let n=r.lastIndexOf("/");return n===0?"/":r.slice(0,n)}ensureParentDirs(e){let r=this.dirname(e);r!=="/"&&(this.data.has(r)||(this.ensureParentDirs(r),this.data.set(r,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(e,r,n,s){let i=this.normalizePath(e);this.ensureParentDirs(i);let o=Zr(n),a=Is(r,o);this.data.set(i,{type:"file",content:a,mode:s?.mode??420,mtime:s?.mtime??new Date})}async readFile(e,r){let n=await this.readFileBuffer(e),s=Zr(r);return Ul(n,s)}async readFileBuffer(e){let r=this.normalizePath(e),n=this.data.get(r),s=r;if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);let i=new Set;for(;n&&n.type==="symlink";){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${e}'`);i.add(s),s=this.resolveSymlink(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${e}'`);return n.content instanceof Uint8Array?n.content:Qr.encode(n.content)}async writeFile(e,r,n){this.writeFileSync(e,r,n)}async appendFile(e,r,n){let s=this.normalizePath(e),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${e}'`);let o=Zr(n),a=Is(r,o);if(i?.type==="file"){let c=i.content instanceof Uint8Array?i.content:Qr.encode(i.content),l=new Uint8Array(c.length+a.length);l.set(c),l.set(a,c.length),this.data.set(s,{type:"file",content:l,mode:i.mode,mtime:new Date})}else this.writeFileSync(e,r,n)}async exists(e){return this.data.has(this.normalizePath(e))}async stat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);if(n.type==="symlink"){let i=this.resolveSymlink(r,n.target),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);n=o}let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=Qr.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}async lstat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=Qr.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}resolveSymlink(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=this.dirname(e);return this.normalizePath(n==="/"?`/${r}`:`${n}/${r}`)}async mkdir(e,r){this.mkdirSync(e,r)}mkdirSync(e,r){let n=this.normalizePath(e);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${e}'`);if(!r?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${e}'`);return}let s=this.dirname(n);if(s!=="/"&&!this.data.has(s))if(r?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${e}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${e}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${e}'`);let s=r==="/"?"/":`${r}/`,i=[];for(let o of this.data.keys())if(o!==r&&o.startsWith(s)){let c=o.slice(s.length).split("/")[0];c&&!i.includes(c)&&i.push(c)}return i.sort()}async rm(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s){if(r?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${e}'`)}if(s.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!r?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${e}'`);for(let o of i){let a=n==="/"?`/${o}`:`${n}/${o}`;await this.rm(a,r)}}}this.data.delete(n)}async cp(e,r,n){let s=this.normalizePath(e),i=this.normalizePath(r),o=this.data.get(s);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${e}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${e}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(s);for(let c of a){let l=s==="/"?`/${c}`:`${s}/${c}`,u=i==="/"?`/${c}`:`${i}/${c}`;await this.cp(l,u,n)}}}async mv(e,r){await this.cp(e,r,{recursive:!0}),await this.rm(e,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=e==="/"?`/${r}`:`${e}/${r}`;return this.normalizePath(n)}async chmod(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${e}'`);s.mode=r}async symlink(e,r){let n=this.normalizePath(r);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${r}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:e,mode:511,mtime:new Date})}async link(e,r){let n=this.normalizePath(e),s=this.normalizePath(r),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${e}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${e}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${r}'`);this.ensureParentDirs(s),this.data.set(s,{type:"file",content:i.content,mode:i.mode,mtime:i.mtime})}async readlink(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${e}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${e}'`);return n.target}};var Hl="5.1.0(1)-release",jl="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function ir(){return{pid:process.pid,ppid:process.ppid,uid:process.getuid?.()??1e3,gid:process.getgid?.()??1e3}}function zl(){let{pid:t,ppid:e,uid:r,gid:n}=ir();return`Name: bash
519
+ `,exitCode:1};let s=n.url;s.match(/^https?:\/\//)||(s=`https://${s}`);try{let{body:i,contentType:o}=await D0(n,e),a=L0(n,o),c=await e.fetch(s,{method:n.method,headers:Object.keys(a).length>0?a:void 0,body:i,followRedirects:n.followRedirects,timeoutMs:n.timeoutMs});if(await M0(n,c.headers,e),n.failSilently&&c.status>=400)return{stdout:"",stderr:n.showError||!n.silent?`curl: (22) The requested URL returned error: ${c.status}
520
+ `:"",exitCode:22};let l=_0(n,c,s);if(n.outputFile||n.useRemoteName){let u=n.outputFile||Ul(s),f=e.fs.resolvePath(e.cwd,u);await e.fs.writeFile(f,n.headOnly?"":c.body),n.verbose||(l=""),n.writeOut&&(l=Ps(n.writeOut,{status:c.status,headers:c.headers,url:c.url,bodyLength:c.body.length}))}return{stdout:l,stderr:"",exitCode:0}}catch(i){let o=re(i),a=1;return o.includes("Network access denied")?a=7:o.includes("HTTP method")&&o.includes("not allowed")?a=3:o.includes("Redirect target not in allow-list")||o.includes("Too many redirects")?a=47:o.includes("aborted")&&(a=28),{stdout:"",stderr:!n.silent||n.showError?`curl: (${a}) ${o}
521
+ `:"",exitCode:a}}}}});import{tool as tg,zodSchema as rg}from"ai";import{z as xf}from"zod";var Gl=[{name:"echo",load:async()=>(await Promise.resolve().then(()=>($i(),Ri))).echoCommand},{name:"cat",load:async()=>(await Promise.resolve().then(()=>(Pi(),Oi))).catCommand},{name:"printf",load:async()=>(await Promise.resolve().then(()=>(Li(),Di))).printfCommand},{name:"ls",load:async()=>(await Promise.resolve().then(()=>(Wi(),Bi))).lsCommand},{name:"mkdir",load:async()=>(await Promise.resolve().then(()=>(zi(),Ui))).mkdirCommand},{name:"touch",load:async()=>(await Promise.resolve().then(()=>(ji(),Hi))).touchCommand},{name:"rm",load:async()=>(await Promise.resolve().then(()=>(qi(),Gi))).rmCommand},{name:"cp",load:async()=>(await Promise.resolve().then(()=>(Ki(),Vi))).cpCommand},{name:"mv",load:async()=>(await Promise.resolve().then(()=>(Qi(),Zi))).mvCommand},{name:"ln",load:async()=>(await Promise.resolve().then(()=>(Ji(),Xi))).lnCommand},{name:"chmod",load:async()=>(await Promise.resolve().then(()=>(to(),eo))).chmodCommand},{name:"pwd",load:async()=>(await Promise.resolve().then(()=>(no(),ro))).pwdCommand},{name:"readlink",load:async()=>(await Promise.resolve().then(()=>(io(),so))).readlinkCommand},{name:"head",load:async()=>(await Promise.resolve().then(()=>(lo(),co))).headCommand},{name:"tail",load:async()=>(await Promise.resolve().then(()=>(fo(),uo))).tailCommand},{name:"wc",load:async()=>(await Promise.resolve().then(()=>(mo(),ho))).wcCommand},{name:"stat",load:async()=>(await Promise.resolve().then(()=>(xo(),go))).statCommand},{name:"grep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).grepCommand},{name:"fgrep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).fgrepCommand},{name:"egrep",load:async()=>(await Promise.resolve().then(()=>(kr(),Cr))).egrepCommand},{name:"sed",load:async()=>(await Promise.resolve().then(()=>(Ro(),vo))).sedCommand},{name:"awk",load:async()=>(await Promise.resolve().then(()=>(Jo(),Xo))).awkCommand2},{name:"sort",load:async()=>(await Promise.resolve().then(()=>(ca(),aa))).sortCommand},{name:"uniq",load:async()=>(await Promise.resolve().then(()=>(ua(),la))).uniqCommand},{name:"comm",load:async()=>(await Promise.resolve().then(()=>(pa(),fa))).commCommand},{name:"cut",load:async()=>(await Promise.resolve().then(()=>(ha(),da))).cutCommand},{name:"paste",load:async()=>(await Promise.resolve().then(()=>(ga(),ya))).pasteCommand},{name:"tr",load:async()=>(await Promise.resolve().then(()=>(Ea(),wa))).trCommand},{name:"tee",load:async()=>(await Promise.resolve().then(()=>(Sa(),ba))).teeCommand},{name:"find",load:async()=>(await Promise.resolve().then(()=>(va(),Ia))).findCommand},{name:"basename",load:async()=>(await Promise.resolve().then(()=>($a(),Ra))).basenameCommand},{name:"dirname",load:async()=>(await Promise.resolve().then(()=>(Pa(),Oa))).dirnameCommand},{name:"tree",load:async()=>(await Promise.resolve().then(()=>(Da(),Fa))).treeCommand},{name:"du",load:async()=>(await Promise.resolve().then(()=>(_a(),Ma))).duCommand},{name:"env",load:async()=>(await Promise.resolve().then(()=>(Jn(),Xn))).envCommand},{name:"printenv",load:async()=>(await Promise.resolve().then(()=>(Jn(),Xn))).printenvCommand},{name:"alias",load:async()=>(await Promise.resolve().then(()=>(es(),Yn))).aliasCommand},{name:"unalias",load:async()=>(await Promise.resolve().then(()=>(es(),Yn))).unaliasCommand},{name:"history",load:async()=>(await Promise.resolve().then(()=>(Ua(),Wa))).historyCommand},{name:"xargs",load:async()=>(await Promise.resolve().then(()=>(Ha(),za))).xargsCommand},{name:"true",load:async()=>(await Promise.resolve().then(()=>(rs(),ts))).trueCommand},{name:"false",load:async()=>(await Promise.resolve().then(()=>(rs(),ts))).falseCommand},{name:"clear",load:async()=>(await Promise.resolve().then(()=>(Ga(),ja))).clearCommand},{name:"bash",load:async()=>(await Promise.resolve().then(()=>(ss(),ns))).bashCommand},{name:"sh",load:async()=>(await Promise.resolve().then(()=>(ss(),ns))).shCommand},{name:"jq",load:async()=>(await Promise.resolve().then(()=>(tc(),ec))).jqCommand},{name:"base64",load:async()=>(await Promise.resolve().then(()=>(sc(),nc))).base64Command},{name:"diff",load:async()=>(await Promise.resolve().then(()=>(ac(),oc))).diffCommand},{name:"date",load:async()=>(await Promise.resolve().then(()=>(lc(),cc))).dateCommand},{name:"sleep",load:async()=>(await Promise.resolve().then(()=>(fc(),uc))).sleepCommand},{name:"timeout",load:async()=>(await Promise.resolve().then(()=>(dc(),pc))).timeoutCommand},{name:"seq",load:async()=>(await Promise.resolve().then(()=>(mc(),hc))).seqCommand},{name:"expr",load:async()=>(await Promise.resolve().then(()=>(gc(),yc))).exprCommand},{name:"md5sum",load:async()=>(await Promise.resolve().then(()=>(Ec(),wc))).md5sumCommand},{name:"sha1sum",load:async()=>(await Promise.resolve().then(()=>(Sc(),bc))).sha1sumCommand},{name:"sha256sum",load:async()=>(await Promise.resolve().then(()=>(Cc(),Ac))).sha256sumCommand},{name:"file",load:async()=>(await Promise.resolve().then(()=>(xl(),gl))).fileCommand},{name:"html-to-markdown",load:async()=>(await Promise.resolve().then(()=>(El(),wl))).htmlToMarkdownCommand},{name:"help",load:async()=>(await Promise.resolve().then(()=>(Sl(),bl))).helpCommand},{name:"which",load:async()=>(await Promise.resolve().then(()=>(Cl(),Al))).whichCommand},{name:"tac",load:async()=>(await Promise.resolve().then(()=>(Nl(),kl))).tac},{name:"hostname",load:async()=>(await Promise.resolve().then(()=>(vl(),Il))).hostname},{name:"od",load:async()=>(await Promise.resolve().then(()=>($l(),Rl))).od},{name:"gzip",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).gzipCommand},{name:"gunzip",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).gunzipCommand},{name:"zcat",load:async()=>(await Promise.resolve().then(()=>(Xr(),Qr))).zcatCommand}],W0=[{name:"curl",load:async()=>(await Promise.resolve().then(()=>(jl(),Hl))).curlCommand}],ql=new Map;function Vl(t){return{name:t.name,async execute(e,r){let n=ql.get(t.name);return n||(n=await t.load(),ql.set(t.name,n)),n.execute(e,r)}}}function Kl(t){return(t?Gl.filter(r=>t.includes(r.name)):Gl).map(Vl)}function Zl(){return W0.map(Vl)}function Ql(t){return"load"in t&&typeof t.load=="function"}function Xl(t){let e=null;return{name:t.name,async execute(r,n){return e||(e=await t.load()),e.execute(r,n)}}}var U0=new TextEncoder,z0=new TextDecoder;function Ts(t,e){if(t instanceof Uint8Array)return t;switch(e){case"base64":return Uint8Array.from(atob(t),r=>r.charCodeAt(0));case"hex":{let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=parseInt(t.slice(n,n+2),16);return r}case"binary":case"latin1":return Uint8Array.from(t,r=>r.charCodeAt(0));default:return U0.encode(t)}}function Jl(t,e){switch(e){case"base64":return btoa(String.fromCharCode(...t));case"hex":return Array.from(t).map(r=>r.toString(16).padStart(2,"0")).join("");case"binary":case"latin1":return String.fromCharCode(...t);default:return z0.decode(t)}}function Jr(t){if(t!=null)return typeof t=="string"?t:t.encoding??void 0}var Yr=new TextEncoder;function H0(t){return typeof t=="object"&&t!==null&&!(t instanceof Uint8Array)&&"content"in t}var sr=class{data=new Map;constructor(e){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),e)for(let[r,n]of Object.entries(e))H0(n)?this.writeFileSync(r,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(r,n)}normalizePath(e){if(!e||e==="/")return"/";let r=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;r.startsWith("/")||(r=`/${r}`);let n=r.split("/").filter(i=>i&&i!=="."),s=[];for(let i of n)i===".."?s.pop():s.push(i);return`/${s.join("/")}`||"/"}dirname(e){let r=this.normalizePath(e);if(r==="/")return"/";let n=r.lastIndexOf("/");return n===0?"/":r.slice(0,n)}ensureParentDirs(e){let r=this.dirname(e);r!=="/"&&(this.data.has(r)||(this.ensureParentDirs(r),this.data.set(r,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(e,r,n,s){let i=this.normalizePath(e);this.ensureParentDirs(i);let o=Jr(n),a=Ts(r,o);this.data.set(i,{type:"file",content:a,mode:s?.mode??420,mtime:s?.mtime??new Date})}async readFile(e,r){let n=await this.readFileBuffer(e),s=Jr(r);return Jl(n,s)}async readFileBuffer(e){let r=this.normalizePath(e),n=this.data.get(r),s=r;if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);let i=new Set;for(;n&&n.type==="symlink";){if(i.has(s))throw new Error(`ELOOP: too many levels of symbolic links, open '${e}'`);i.add(s),s=this.resolveSymlink(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, open '${e}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${e}'`);return n.content instanceof Uint8Array?n.content:Yr.encode(n.content)}async writeFile(e,r,n){this.writeFileSync(e,r,n)}async appendFile(e,r,n){let s=this.normalizePath(e),i=this.data.get(s);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${e}'`);let o=Jr(n),a=Ts(r,o);if(i?.type==="file"){let c=i.content instanceof Uint8Array?i.content:Yr.encode(i.content),l=new Uint8Array(c.length+a.length);l.set(c),l.set(a,c.length),this.data.set(s,{type:"file",content:l,mode:i.mode,mtime:new Date})}else this.writeFileSync(e,r,n)}async exists(e){return this.data.has(this.normalizePath(e))}async stat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);if(n.type==="symlink"){let i=this.resolveSymlink(r,n.target),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, stat '${e}'`);n=o}let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=Yr.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}async lstat(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};let s=0;return n.type==="file"&&n.content&&(n.content instanceof Uint8Array?s=n.content.length:s=Yr.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:s,mtime:n.mtime||new Date}}resolveSymlink(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=this.dirname(e);return this.normalizePath(n==="/"?`/${r}`:`${n}/${r}`)}async mkdir(e,r){this.mkdirSync(e,r)}mkdirSync(e,r){let n=this.normalizePath(e);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${e}'`);if(!r?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${e}'`);return}let s=this.dirname(n);if(s!=="/"&&!this.data.has(s))if(r?.recursive)this.mkdirSync(s,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${e}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${e}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${e}'`);let s=r==="/"?"/":`${r}/`,i=[];for(let o of this.data.keys())if(o!==r&&o.startsWith(s)){let c=o.slice(s.length).split("/")[0];c&&!i.includes(c)&&i.push(c)}return i.sort()}async rm(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s){if(r?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${e}'`)}if(s.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!r?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${e}'`);for(let o of i){let a=n==="/"?`/${o}`:`${n}/${o}`;await this.rm(a,r)}}}this.data.delete(n)}async cp(e,r,n){let s=this.normalizePath(e),i=this.normalizePath(r),o=this.data.get(s);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${e}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${e}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(s);for(let c of a){let l=s==="/"?`/${c}`:`${s}/${c}`,u=i==="/"?`/${c}`:`${i}/${c}`;await this.cp(l,u,n)}}}async mv(e,r){await this.cp(e,r,{recursive:!0}),await this.rm(e,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(e,r){if(r.startsWith("/"))return this.normalizePath(r);let n=e==="/"?`/${r}`:`${e}/${r}`;return this.normalizePath(n)}async chmod(e,r){let n=this.normalizePath(e),s=this.data.get(n);if(!s)throw new Error(`ENOENT: no such file or directory, chmod '${e}'`);s.mode=r}async symlink(e,r){let n=this.normalizePath(r);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${r}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:e,mode:511,mtime:new Date})}async link(e,r){let n=this.normalizePath(e),s=this.normalizePath(r),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${e}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${e}'`);if(this.data.has(s))throw new Error(`EEXIST: file already exists, link '${r}'`);this.ensureParentDirs(s),this.data.set(s,{type:"file",content:i.content,mode:i.mode,mtime:i.mtime})}async readlink(e){let r=this.normalizePath(e),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${e}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${e}'`);return n.target}};var Yl="5.1.0(1)-release",eu="Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";function ir(){return{pid:process.pid,ppid:process.ppid,uid:process.getuid?.()??1e3,gid:process.getgid?.()??1e3}}function tu(){let{pid:t,ppid:e,uid:r,gid:n}=ir();return`Name: bash
492
522
  State: R (running)
493
523
  Pid: ${t}
494
524
  PPid: ${e}
495
525
  Uid: ${r} ${r} ${r} ${r}
496
526
  Gid: ${n} ${n} ${n} ${n}
497
- `}function A0(t){let e=t;return typeof e.mkdirSync=="function"&&typeof e.writeFileSync=="function"}function C0(t,e){t.mkdirSync("/bin",{recursive:!0}),t.mkdirSync("/usr/bin",{recursive:!0}),e&&(t.mkdirSync("/home/user",{recursive:!0}),t.mkdirSync("/tmp",{recursive:!0}))}function k0(t){t.mkdirSync("/dev",{recursive:!0}),t.writeFileSync("/dev/null",""),t.writeFileSync("/dev/zero",new Uint8Array(0)),t.writeFileSync("/dev/stdin",""),t.writeFileSync("/dev/stdout",""),t.writeFileSync("/dev/stderr","")}function N0(t){t.mkdirSync("/proc/self/fd",{recursive:!0}),t.writeFileSync("/proc/version",`${jl}
527
+ `}function j0(t){let e=t;return typeof e.mkdirSync=="function"&&typeof e.writeFileSync=="function"}function G0(t,e){t.mkdirSync("/bin",{recursive:!0}),t.mkdirSync("/usr/bin",{recursive:!0}),e&&(t.mkdirSync("/home/user",{recursive:!0}),t.mkdirSync("/tmp",{recursive:!0}))}function q0(t){t.mkdirSync("/dev",{recursive:!0}),t.writeFileSync("/dev/null",""),t.writeFileSync("/dev/zero",new Uint8Array(0)),t.writeFileSync("/dev/stdin",""),t.writeFileSync("/dev/stdout",""),t.writeFileSync("/dev/stderr","")}function V0(t){t.mkdirSync("/proc/self/fd",{recursive:!0}),t.writeFileSync("/proc/version",`${eu}
498
528
  `),t.writeFileSync("/proc/self/exe","/bin/bash"),t.writeFileSync("/proc/self/cmdline","bash\0"),t.writeFileSync("/proc/self/comm",`bash
499
- `),t.writeFileSync("/proc/self/status",zl()),t.writeFileSync("/proc/self/fd/0","/dev/stdin"),t.writeFileSync("/proc/self/fd/1","/dev/stdout"),t.writeFileSync("/proc/self/fd/2","/dev/stderr")}function Gl(t,e){A0(t)&&(C0(t,e),k0(t),N0(t))}J();J();function le(t,e){return{type:"ArithmeticExpression",expression:Ze(t,e,0).expr}}function Ze(t,e,r){return I0(t,e,r)}function I0(t,e,r){let{expr:n,pos:s}=Jr(t,e,r);for(s=ne(e,s);e[s]===",";){s++;let{expr:i,pos:o}=Jr(t,e,s);n={type:"ArithBinary",operator:",",left:n,right:i},s=ne(e,o)}return{expr:n,pos:s}}function Jr(t,e,r){let{expr:n,pos:s}=v0(t,e,r);if(s=ne(e,s),e[s]==="?"){s++;let{expr:i,pos:o}=Ze(t,e,s);if(s=ne(e,o),e[s]===":"){s++;let{expr:a,pos:c}=Ze(t,e,s);return{expr:{type:"ArithTernary",condition:n,consequent:i,alternate:a},pos:c}}}return{expr:n,pos:s}}function v0(t,e,r){let{expr:n,pos:s}=ql(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="||";){s+=2;let{expr:i,pos:o}=ql(t,e,s);n={type:"ArithBinary",operator:"||",left:n,right:i},s=o}return{expr:n,pos:s}}function ql(t,e,r){let{expr:n,pos:s}=Vl(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="&&";){s+=2;let{expr:i,pos:o}=Vl(t,e,s);n={type:"ArithBinary",operator:"&&",left:n,right:i},s=o}return{expr:n,pos:s}}function Vl(t,e,r){let{expr:n,pos:s}=Kl(t,e,r);for(;s=ne(e,s),e[s]==="|"&&e[s+1]!=="|";){s++;let{expr:i,pos:o}=Kl(t,e,s);n={type:"ArithBinary",operator:"|",left:n,right:i},s=o}return{expr:n,pos:s}}function Kl(t,e,r){let{expr:n,pos:s}=Zl(t,e,r);for(;s=ne(e,s),e[s]==="^";){s++;let{expr:i,pos:o}=Zl(t,e,s);n={type:"ArithBinary",operator:"^",left:n,right:i},s=o}return{expr:n,pos:s}}function Zl(t,e,r){let{expr:n,pos:s}=Ql(t,e,r);for(;s=ne(e,s),e[s]==="&"&&e[s+1]!=="&";){s++;let{expr:i,pos:o}=Ql(t,e,s);n={type:"ArithBinary",operator:"&",left:n,right:i},s=o}return{expr:n,pos:s}}function Ql(t,e,r){let{expr:n,pos:s}=Xl(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="=="||e.slice(s,s+2)==="!=";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=Xl(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function Xl(t,e,r){let{expr:n,pos:s}=vs(t,e,r);for(;;)if(s=ne(e,s),e.slice(s,s+2)==="<="||e.slice(s,s+2)===">="){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=vs(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else if(e[s]==="<"||e[s]===">"){let i=e[s];s++;let{expr:o,pos:a}=vs(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function vs(t,e,r){let{expr:n,pos:s}=Jl(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="<<"||e.slice(s,s+2)===">>";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=Jl(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function Jl(t,e,r){let{expr:n,pos:s}=Yl(t,e,r);for(;s=ne(e,s),(e[s]==="+"||e[s]==="-")&&e[s+1]!==e[s];){let i=e[s];s++;let{expr:o,pos:a}=Yl(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function Yl(t,e,r){let{expr:n,pos:s}=Xr(t,e,r);for(;;)if(s=ne(e,s),e[s]==="*"&&e[s+1]!=="*"){s++;let{expr:i,pos:o}=Xr(t,e,s);n={type:"ArithBinary",operator:"*",left:n,right:i},s=o}else if(e[s]==="/"||e[s]==="%"){let i=e[s];s++;let{expr:o,pos:a}=Xr(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function Xr(t,e,r){let{expr:n,pos:s}=Rs(t,e,r),i=ne(e,s);if(e.slice(i,i+2)==="**"){i+=2;let{expr:o,pos:a}=Xr(t,e,i);return{expr:{type:"ArithBinary",operator:"**",left:n,right:o},pos:a}}return{expr:n,pos:s}}function Rs(t,e,r){let n=ne(e,r);if(e.slice(n,n+2)==="++"||e.slice(n,n+2)==="--"){let s=e.slice(n,n+2);n+=2;let{expr:i,pos:o}=Rs(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}if(e[n]==="+"||e[n]==="-"||e[n]==="!"||e[n]==="~"){let s=e[n];n++;let{expr:i,pos:o}=Rs(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}return $0(t,e,n)}function R0(t,e){let r=t[e];return r==="$"||r==="`"}function $0(t,e,r){let{expr:n,pos:s}=eu(t,e,r),i=[n];for(;R0(e,s);){let{expr:o,pos:a}=eu(t,e,s);i.push(o),s=a}if(i.length>1&&(n={type:"ArithConcat",parts:i}),s=ne(e,s),e.slice(s,s+2)==="++"||e.slice(s,s+2)==="--"){let o=e.slice(s,s+2);return s+=2,{expr:{type:"ArithUnary",operator:o,operand:n,prefix:!1},pos:s}}return{expr:n,pos:s}}function eu(t,e,r){let n=ne(e,r);if(e.slice(n,n+3)==="$(("){n+=3;let s=1,i=n;for(;n<e.length-1&&s>0;)e[n]==="("&&e[n+1]==="("?(s++,n+=2):e[n]===")"&&e[n+1]===")"?(s--,s>0&&(n+=2)):n++;let o=e.slice(i,n),{expr:a}=Ze(t,o,0);return n+=2,{expr:{type:"ArithNested",expression:a},pos:n}}if(e.slice(n,n+2)==="$("&&e[n+2]!=="("){n+=2;let s=1,i=n;for(;n<e.length&&s>0;)e[n]==="("?s++:e[n]===")"&&s--,s>0&&n++;let o=e.slice(i,n);return n++,{expr:{type:"ArithCommandSubst",command:o},pos:n}}if(e[n]==="`"){n++;let s=n;for(;n<e.length&&e[n]!=="`";)n++;let i=e.slice(s,n);return e[n]==="`"&&n++,{expr:{type:"ArithCommandSubst",command:i},pos:n}}if(e[n]==="("){n++;let{expr:s,pos:i}=Ze(t,e,n);return n=ne(e,i),e[n]===")"&&n++,{expr:{type:"ArithGroup",expression:s},pos:n}}if(/[0-9]/.test(e[n])){let s="",i=!1;for(;n<e.length;){let a=e[n];if(i)if(/[0-9a-zA-Z@_]/.test(a))s+=a,n++;else break;else if(a==="#")i=!0,s+=a,n++;else if(/[0-9a-fA-FxX]/.test(a))s+=a,n++;else break}if(e[n]==="."&&/[0-9]/.test(e[n+1]))throw new ae(`${s}.${e[n+1]}...: syntax error: invalid arithmetic operator`);if(e[n]==="["){let a=e.slice(n).trim();return{expr:{type:"ArithNumberSubscript",number:s,errorToken:a},pos:e.length}}return{expr:{type:"ArithNumber",value:Wt(s)},pos:n}}if(e[n]==="$"&&e[n+1]==="{"){let s=n+2,i=1,o=s;for(;o<e.length&&i>0;)e[o]==="{"?i++:e[o]==="}"&&i--,i>0&&o++;let a=e.slice(s,o),c=o+1;if(e[c]==="#"){let l=c+1;for(;l<e.length&&/[0-9a-zA-Z@_]/.test(e[l]);)l++;let u=e.slice(c+1,l);return{expr:{type:"ArithDynamicBase",baseExpr:a,value:u},pos:l}}if(/[0-9]/.test(e[c])||e[c]==="x"||e[c]==="X"){let l=c;if(e[c]==="x"||e[c]==="X")for(l++;l<e.length&&/[0-9a-fA-F]/.test(e[l]);)l++;else for(;l<e.length&&/[0-9]/.test(e[l]);)l++;let u=e.slice(c,l);return{expr:{type:"ArithDynamicNumber",prefix:a,suffix:u},pos:l}}return n=c,{expr:{type:"ArithBracedExpansion",content:a},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[0-9]/.test(e[n+1])){n++;let s="";for(;n<e.length&&/[0-9]/.test(e[n]);)s+=e[n],n++;return{expr:{type:"ArithVariable",name:s},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[a-zA-Z_]/.test(e[n+1])&&n++,/[a-zA-Z_]/.test(e[n])){let s="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)s+=e[n],n++;if(e[n]==="["){n++;let o;if(e[n]==="'"||e[n]==='"'){let l=e[n];for(n++,o="";n<e.length&&e[n]!==l;)o+=e[n],n++;e[n]===l&&n++,n=ne(e,n),e[n]==="]"&&n++}let a;if(o===void 0){let{expr:l,pos:u}=Ze(t,e,n);a=l,n=u,e[n]==="]"&&n++}if(n=ne(e,n),e[n]==="["&&a)return{expr:{type:"ArithDoubleSubscript",array:s,index:a},pos:n};let c=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let l of c)if(e.slice(n,n+l.length)===l&&e.slice(n,n+l.length+1)!=="=="){n+=l.length;let{expr:u,pos:f}=Jr(t,e,n);return{expr:{type:"ArithAssignment",operator:l,variable:s,subscript:a,stringKey:o,value:u},pos:f}}return{expr:{type:"ArithArrayElement",array:s,index:a,stringKey:o},pos:n}}n=ne(e,n);let i=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let o of i)if(e.slice(n,n+o.length)===o&&e.slice(n,n+o.length+1)!=="=="){n+=o.length;let{expr:a,pos:c}=Jr(t,e,n);return{expr:{type:"ArithAssignment",operator:o,variable:s,value:a},pos:c}}return{expr:{type:"ArithVariable",name:s},pos:n}}return{expr:{type:"ArithNumber",value:0},pos:n}}function Wt(t){if(t.includes("#")){let[e,r]=t.split("#"),n=Number.parseInt(e,10);if(n<2||n>64)return Number.NaN;if(n<=36)return Number.parseInt(r,n);let s=0;for(let i of r){let o;if(i>="0"&&i<="9")o=i.charCodeAt(0)-48;else if(i>="a"&&i<="z")o=i.charCodeAt(0)-97+10;else if(i>="A"&&i<="Z")o=i.charCodeAt(0)-65+36;else if(i==="@")o=62;else if(i==="_")o=63;else return Number.NaN;if(o>=n)return Number.NaN;s=s*n+o}return s}return t.startsWith("0x")||t.startsWith("0X")?Number.parseInt(t.slice(2),16):t.startsWith("0")&&t.length>1&&/^[0-9]+$/.test(t)?/[89]/.test(t)?Number.NaN:Number.parseInt(t,8):Number.parseInt(t,10)}function ne(t,e){for(;e<t.length;){if(t[e]==="\\"&&t[e+1]===`
500
- `){e+=2;continue}if(/\s/.test(t[e])){e++;continue}break}return e}var v={script(t){return{type:"Script",statements:t}},statement(t,e=[],r=!1){return{type:"Statement",pipelines:t,operators:e,background:r}},pipeline(t,e=!1){return{type:"Pipeline",commands:t,negated:e}},simpleCommand(t,e=[],r=[],n=[]){return{type:"SimpleCommand",name:t,args:e,assignments:r,redirections:n}},word(t){return{type:"Word",parts:t}},literal(t){return{type:"Literal",value:t}},singleQuoted(t){return{type:"SingleQuoted",value:t}},doubleQuoted(t){return{type:"DoubleQuoted",parts:t}},escaped(t){return{type:"Escaped",value:t}},parameterExpansion(t,e=null){return{type:"ParameterExpansion",parameter:t,operation:e}},commandSubstitution(t,e=!1){return{type:"CommandSubstitution",body:t,legacy:e}},arithmeticExpansion(t){return{type:"ArithmeticExpansion",expression:t}},assignment(t,e,r=!1,n=null){return{type:"Assignment",name:t,value:e,append:r,array:n}},redirection(t,e,r=null){return{type:"Redirection",fd:r,operator:t,target:e}},hereDoc(t,e,r=!1,n=!1){return{type:"HereDoc",delimiter:t,content:e,stripTabs:r,quoted:n}},ifNode(t,e=null,r=[]){return{type:"If",clauses:t,elseBody:e,redirections:r}},forNode(t,e,r,n=[]){return{type:"For",variable:t,words:e,body:r,redirections:n}},whileNode(t,e,r=[]){return{type:"While",condition:t,body:e,redirections:r}},untilNode(t,e,r=[]){return{type:"Until",condition:t,body:e,redirections:r}},caseNode(t,e,r=[]){return{type:"Case",word:t,items:e,redirections:r}},caseItem(t,e,r=";;"){return{type:"CaseItem",patterns:t,body:e,terminator:r}},subshell(t,e=[]){return{type:"Subshell",body:t,redirections:e}},group(t,e=[]){return{type:"Group",body:t,redirections:e}},functionDef(t,e,r=[]){return{type:"FunctionDef",name:t,body:e,redirections:r}},conditionalCommand(t,e=[]){return{type:"ConditionalCommand",expression:t,redirections:e}},arithmeticCommand(t,e=[]){return{type:"ArithmeticCommand",expression:t,redirections:e}}};var m;(function(t){t.EOF="EOF",t.NEWLINE="NEWLINE",t.SEMICOLON="SEMICOLON",t.AMP="AMP",t.PIPE="PIPE",t.PIPE_AMP="PIPE_AMP",t.AND_AND="AND_AND",t.OR_OR="OR_OR",t.BANG="BANG",t.LESS="LESS",t.GREAT="GREAT",t.DLESS="DLESS",t.DGREAT="DGREAT",t.LESSAND="LESSAND",t.GREATAND="GREATAND",t.LESSGREAT="LESSGREAT",t.DLESSDASH="DLESSDASH",t.CLOBBER="CLOBBER",t.TLESS="TLESS",t.AND_GREAT="AND_GREAT",t.AND_DGREAT="AND_DGREAT",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.DSEMI="DSEMI",t.SEMI_AND="SEMI_AND",t.SEMI_SEMI_AND="SEMI_SEMI_AND",t.DBRACK_START="DBRACK_START",t.DBRACK_END="DBRACK_END",t.DPAREN_START="DPAREN_START",t.DPAREN_END="DPAREN_END",t.IF="IF",t.THEN="THEN",t.ELSE="ELSE",t.ELIF="ELIF",t.FI="FI",t.FOR="FOR",t.WHILE="WHILE",t.UNTIL="UNTIL",t.DO="DO",t.DONE="DONE",t.CASE="CASE",t.ESAC="ESAC",t.IN="IN",t.FUNCTION="FUNCTION",t.SELECT="SELECT",t.TIME="TIME",t.COPROC="COPROC",t.WORD="WORD",t.NAME="NAME",t.NUMBER="NUMBER",t.ASSIGNMENT_WORD="ASSIGNMENT_WORD",t.COMMENT="COMMENT",t.HEREDOC_CONTENT="HEREDOC_CONTENT"})(m||(m={}));var Yr={if:m.IF,then:m.THEN,else:m.ELSE,elif:m.ELIF,fi:m.FI,for:m.FOR,while:m.WHILE,until:m.UNTIL,do:m.DO,done:m.DONE,case:m.CASE,esac:m.ESAC,in:m.IN,function:m.FUNCTION,select:m.SELECT,time:m.TIME,coproc:m.COPROC};function ru(t){let e=t.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!e)return!1;let r=t.slice(e[0].length);if(r===""||r==="+")return!0;if(r[0]==="["){let n=0,s=0;for(;s<r.length;s++)if(r[s]==="[")n++;else if(r[s]==="]"&&(n--,n===0))break;if(n!==0||s>=r.length)return!1;let i=r.slice(s+1);return i===""||i==="+"}return!1}var O0=[[";",";","&",m.SEMI_SEMI_AND],["<","<","<",m.TLESS],["&",">",">",m.AND_DGREAT]],P0=[["[","[",m.DBRACK_START],["]","]",m.DBRACK_END],["(","(",m.DPAREN_START],[")",")",m.DPAREN_END],["&","&",m.AND_AND],["|","|",m.OR_OR],[";",";",m.DSEMI],[";","&",m.SEMI_AND],["|","&",m.PIPE_AMP],[">",">",m.DGREAT],["<","&",m.LESSAND],[">","&",m.GREATAND],["<",">",m.LESSGREAT],[">","|",m.CLOBBER],["&",">",m.AND_GREAT]],T0={"|":m.PIPE,"&":m.AMP,";":m.SEMICOLON,"(":m.LPAREN,")":m.RPAREN,"<":m.LESS,">":m.GREAT};function F0(t){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)}var en=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];constructor(e){this.input=e}tokenize(){let r=this.input.length,n=this.tokens,s=this.pendingHeredocs;for(;this.pos<r&&(this.skipWhitespace(),!(this.pos>=r));){if(s.length>0&&n.length>0&&n[n.length-1].type===m.NEWLINE){this.readHeredocContent();continue}let i=this.nextToken();i&&n.push(i)}return n.push({type:m.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),n}skipWhitespace(){let e=this.input,r=e.length,n=this.pos,s=this.column,i=this.line;for(;n<r;){let o=e[n];if(o===" "||o===" ")n++,s++;else if(o==="\\"&&e[n+1]===`
529
+ `),t.writeFileSync("/proc/self/status",tu()),t.writeFileSync("/proc/self/fd/0","/dev/stdin"),t.writeFileSync("/proc/self/fd/1","/dev/stdout"),t.writeFileSync("/proc/self/fd/2","/dev/stderr")}function ru(t,e){j0(t)&&(G0(t,e),q0(t),V0(t))}J();J();function ue(t,e){return{type:"ArithmeticExpression",expression:Ze(t,e,0).expr}}function Ze(t,e,r){return K0(t,e,r)}function K0(t,e,r){let{expr:n,pos:s}=tn(t,e,r);for(s=ne(e,s);e[s]===",";){s++;let{expr:i,pos:o}=tn(t,e,s);n={type:"ArithBinary",operator:",",left:n,right:i},s=ne(e,o)}return{expr:n,pos:s}}function tn(t,e,r){let{expr:n,pos:s}=Z0(t,e,r);if(s=ne(e,s),e[s]==="?"){s++;let{expr:i,pos:o}=Ze(t,e,s);if(s=ne(e,o),e[s]===":"){s++;let{expr:a,pos:c}=Ze(t,e,s);return{expr:{type:"ArithTernary",condition:n,consequent:i,alternate:a},pos:c}}}return{expr:n,pos:s}}function Z0(t,e,r){let{expr:n,pos:s}=nu(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="||";){s+=2;let{expr:i,pos:o}=nu(t,e,s);n={type:"ArithBinary",operator:"||",left:n,right:i},s=o}return{expr:n,pos:s}}function nu(t,e,r){let{expr:n,pos:s}=su(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="&&";){s+=2;let{expr:i,pos:o}=su(t,e,s);n={type:"ArithBinary",operator:"&&",left:n,right:i},s=o}return{expr:n,pos:s}}function su(t,e,r){let{expr:n,pos:s}=iu(t,e,r);for(;s=ne(e,s),e[s]==="|"&&e[s+1]!=="|";){s++;let{expr:i,pos:o}=iu(t,e,s);n={type:"ArithBinary",operator:"|",left:n,right:i},s=o}return{expr:n,pos:s}}function iu(t,e,r){let{expr:n,pos:s}=ou(t,e,r);for(;s=ne(e,s),e[s]==="^";){s++;let{expr:i,pos:o}=ou(t,e,s);n={type:"ArithBinary",operator:"^",left:n,right:i},s=o}return{expr:n,pos:s}}function ou(t,e,r){let{expr:n,pos:s}=au(t,e,r);for(;s=ne(e,s),e[s]==="&"&&e[s+1]!=="&";){s++;let{expr:i,pos:o}=au(t,e,s);n={type:"ArithBinary",operator:"&",left:n,right:i},s=o}return{expr:n,pos:s}}function au(t,e,r){let{expr:n,pos:s}=cu(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="=="||e.slice(s,s+2)==="!=";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=cu(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function cu(t,e,r){let{expr:n,pos:s}=Fs(t,e,r);for(;;)if(s=ne(e,s),e.slice(s,s+2)==="<="||e.slice(s,s+2)===">="){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=Fs(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else if(e[s]==="<"||e[s]===">"){let i=e[s];s++;let{expr:o,pos:a}=Fs(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function Fs(t,e,r){let{expr:n,pos:s}=lu(t,e,r);for(;s=ne(e,s),e.slice(s,s+2)==="<<"||e.slice(s,s+2)===">>";){let i=e.slice(s,s+2);s+=2;let{expr:o,pos:a}=lu(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function lu(t,e,r){let{expr:n,pos:s}=uu(t,e,r);for(;s=ne(e,s),(e[s]==="+"||e[s]==="-")&&e[s+1]!==e[s];){let i=e[s];s++;let{expr:o,pos:a}=uu(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}return{expr:n,pos:s}}function uu(t,e,r){let{expr:n,pos:s}=en(t,e,r);for(;;)if(s=ne(e,s),e[s]==="*"&&e[s+1]!=="*"){s++;let{expr:i,pos:o}=en(t,e,s);n={type:"ArithBinary",operator:"*",left:n,right:i},s=o}else if(e[s]==="/"||e[s]==="%"){let i=e[s];s++;let{expr:o,pos:a}=en(t,e,s);n={type:"ArithBinary",operator:i,left:n,right:o},s=a}else break;return{expr:n,pos:s}}function en(t,e,r){let{expr:n,pos:s}=Ds(t,e,r),i=ne(e,s);if(e.slice(i,i+2)==="**"){i+=2;let{expr:o,pos:a}=en(t,e,i);return{expr:{type:"ArithBinary",operator:"**",left:n,right:o},pos:a}}return{expr:n,pos:s}}function Ds(t,e,r){let n=ne(e,r);if(e.slice(n,n+2)==="++"||e.slice(n,n+2)==="--"){let s=e.slice(n,n+2);n+=2;let{expr:i,pos:o}=Ds(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}if(e[n]==="+"||e[n]==="-"||e[n]==="!"||e[n]==="~"){let s=e[n];n++;let{expr:i,pos:o}=Ds(t,e,n);return{expr:{type:"ArithUnary",operator:s,operand:i,prefix:!0},pos:o}}return X0(t,e,n)}function Q0(t,e){let r=t[e];return r==="$"||r==="`"}function X0(t,e,r){let{expr:n,pos:s}=fu(t,e,r),i=[n];for(;Q0(e,s);){let{expr:o,pos:a}=fu(t,e,s);i.push(o),s=a}if(i.length>1&&(n={type:"ArithConcat",parts:i}),s=ne(e,s),e.slice(s,s+2)==="++"||e.slice(s,s+2)==="--"){let o=e.slice(s,s+2);return s+=2,{expr:{type:"ArithUnary",operator:o,operand:n,prefix:!1},pos:s}}return{expr:n,pos:s}}function fu(t,e,r){let n=ne(e,r);if(e.slice(n,n+3)==="$(("){n+=3;let s=1,i=n;for(;n<e.length-1&&s>0;)e[n]==="("&&e[n+1]==="("?(s++,n+=2):e[n]===")"&&e[n+1]===")"?(s--,s>0&&(n+=2)):n++;let o=e.slice(i,n),{expr:a}=Ze(t,o,0);return n+=2,{expr:{type:"ArithNested",expression:a},pos:n}}if(e.slice(n,n+2)==="$("&&e[n+2]!=="("){n+=2;let s=1,i=n;for(;n<e.length&&s>0;)e[n]==="("?s++:e[n]===")"&&s--,s>0&&n++;let o=e.slice(i,n);return n++,{expr:{type:"ArithCommandSubst",command:o},pos:n}}if(e[n]==="`"){n++;let s=n;for(;n<e.length&&e[n]!=="`";)n++;let i=e.slice(s,n);return e[n]==="`"&&n++,{expr:{type:"ArithCommandSubst",command:i},pos:n}}if(e[n]==="("){n++;let{expr:s,pos:i}=Ze(t,e,n);return n=ne(e,i),e[n]===")"&&n++,{expr:{type:"ArithGroup",expression:s},pos:n}}if(/[0-9]/.test(e[n])){let s="",i=!1;for(;n<e.length;){let a=e[n];if(i)if(/[0-9a-zA-Z@_]/.test(a))s+=a,n++;else break;else if(a==="#")i=!0,s+=a,n++;else if(/[0-9a-fA-FxX]/.test(a))s+=a,n++;else break}if(e[n]==="."&&/[0-9]/.test(e[n+1]))throw new ae(`${s}.${e[n+1]}...: syntax error: invalid arithmetic operator`);if(e[n]==="["){let a=e.slice(n).trim();return{expr:{type:"ArithNumberSubscript",number:s,errorToken:a},pos:e.length}}return{expr:{type:"ArithNumber",value:Wt(s)},pos:n}}if(e[n]==="$"&&e[n+1]==="{"){let s=n+2,i=1,o=s;for(;o<e.length&&i>0;)e[o]==="{"?i++:e[o]==="}"&&i--,i>0&&o++;let a=e.slice(s,o),c=o+1;if(e[c]==="#"){let l=c+1;for(;l<e.length&&/[0-9a-zA-Z@_]/.test(e[l]);)l++;let u=e.slice(c+1,l);return{expr:{type:"ArithDynamicBase",baseExpr:a,value:u},pos:l}}if(/[0-9]/.test(e[c])||e[c]==="x"||e[c]==="X"){let l=c;if(e[c]==="x"||e[c]==="X")for(l++;l<e.length&&/[0-9a-fA-F]/.test(e[l]);)l++;else for(;l<e.length&&/[0-9]/.test(e[l]);)l++;let u=e.slice(c,l);return{expr:{type:"ArithDynamicNumber",prefix:a,suffix:u},pos:l}}return n=c,{expr:{type:"ArithBracedExpansion",content:a},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[0-9]/.test(e[n+1])){n++;let s="";for(;n<e.length&&/[0-9]/.test(e[n]);)s+=e[n],n++;return{expr:{type:"ArithVariable",name:s},pos:n}}if(e[n]==="$"&&n+1<e.length&&/[a-zA-Z_]/.test(e[n+1])&&n++,/[a-zA-Z_]/.test(e[n])){let s="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)s+=e[n],n++;if(e[n]==="["){n++;let o;if(e[n]==="'"||e[n]==='"'){let l=e[n];for(n++,o="";n<e.length&&e[n]!==l;)o+=e[n],n++;e[n]===l&&n++,n=ne(e,n),e[n]==="]"&&n++}let a;if(o===void 0){let{expr:l,pos:u}=Ze(t,e,n);a=l,n=u,e[n]==="]"&&n++}if(n=ne(e,n),e[n]==="["&&a)return{expr:{type:"ArithDoubleSubscript",array:s,index:a},pos:n};let c=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let l of c)if(e.slice(n,n+l.length)===l&&e.slice(n,n+l.length+1)!=="=="){n+=l.length;let{expr:u,pos:f}=tn(t,e,n);return{expr:{type:"ArithAssignment",operator:l,variable:s,subscript:a,stringKey:o,value:u},pos:f}}return{expr:{type:"ArithArrayElement",array:s,index:a,stringKey:o},pos:n}}n=ne(e,n);let i=["=","+=","-=","*=","/=","%=","<<=",">>=","&=","|=","^="];for(let o of i)if(e.slice(n,n+o.length)===o&&e.slice(n,n+o.length+1)!=="=="){n+=o.length;let{expr:a,pos:c}=tn(t,e,n);return{expr:{type:"ArithAssignment",operator:o,variable:s,value:a},pos:c}}return{expr:{type:"ArithVariable",name:s},pos:n}}return{expr:{type:"ArithNumber",value:0},pos:n}}function Wt(t){if(t.includes("#")){let[e,r]=t.split("#"),n=Number.parseInt(e,10);if(n<2||n>64)return Number.NaN;if(n<=36)return Number.parseInt(r,n);let s=0;for(let i of r){let o;if(i>="0"&&i<="9")o=i.charCodeAt(0)-48;else if(i>="a"&&i<="z")o=i.charCodeAt(0)-97+10;else if(i>="A"&&i<="Z")o=i.charCodeAt(0)-65+36;else if(i==="@")o=62;else if(i==="_")o=63;else return Number.NaN;if(o>=n)return Number.NaN;s=s*n+o}return s}return t.startsWith("0x")||t.startsWith("0X")?Number.parseInt(t.slice(2),16):t.startsWith("0")&&t.length>1&&/^[0-9]+$/.test(t)?/[89]/.test(t)?Number.NaN:Number.parseInt(t,8):Number.parseInt(t,10)}function ne(t,e){for(;e<t.length;){if(t[e]==="\\"&&t[e+1]===`
530
+ `){e+=2;continue}if(/\s/.test(t[e])){e++;continue}break}return e}var v={script(t){return{type:"Script",statements:t}},statement(t,e=[],r=!1){return{type:"Statement",pipelines:t,operators:e,background:r}},pipeline(t,e=!1){return{type:"Pipeline",commands:t,negated:e}},simpleCommand(t,e=[],r=[],n=[]){return{type:"SimpleCommand",name:t,args:e,assignments:r,redirections:n}},word(t){return{type:"Word",parts:t}},literal(t){return{type:"Literal",value:t}},singleQuoted(t){return{type:"SingleQuoted",value:t}},doubleQuoted(t){return{type:"DoubleQuoted",parts:t}},escaped(t){return{type:"Escaped",value:t}},parameterExpansion(t,e=null){return{type:"ParameterExpansion",parameter:t,operation:e}},commandSubstitution(t,e=!1){return{type:"CommandSubstitution",body:t,legacy:e}},arithmeticExpansion(t){return{type:"ArithmeticExpansion",expression:t}},assignment(t,e,r=!1,n=null){return{type:"Assignment",name:t,value:e,append:r,array:n}},redirection(t,e,r=null){return{type:"Redirection",fd:r,operator:t,target:e}},hereDoc(t,e,r=!1,n=!1){return{type:"HereDoc",delimiter:t,content:e,stripTabs:r,quoted:n}},ifNode(t,e=null,r=[]){return{type:"If",clauses:t,elseBody:e,redirections:r}},forNode(t,e,r,n=[]){return{type:"For",variable:t,words:e,body:r,redirections:n}},whileNode(t,e,r=[]){return{type:"While",condition:t,body:e,redirections:r}},untilNode(t,e,r=[]){return{type:"Until",condition:t,body:e,redirections:r}},caseNode(t,e,r=[]){return{type:"Case",word:t,items:e,redirections:r}},caseItem(t,e,r=";;"){return{type:"CaseItem",patterns:t,body:e,terminator:r}},subshell(t,e=[]){return{type:"Subshell",body:t,redirections:e}},group(t,e=[]){return{type:"Group",body:t,redirections:e}},functionDef(t,e,r=[]){return{type:"FunctionDef",name:t,body:e,redirections:r}},conditionalCommand(t,e=[]){return{type:"ConditionalCommand",expression:t,redirections:e}},arithmeticCommand(t,e=[]){return{type:"ArithmeticCommand",expression:t,redirections:e}}};var y;(function(t){t.EOF="EOF",t.NEWLINE="NEWLINE",t.SEMICOLON="SEMICOLON",t.AMP="AMP",t.PIPE="PIPE",t.PIPE_AMP="PIPE_AMP",t.AND_AND="AND_AND",t.OR_OR="OR_OR",t.BANG="BANG",t.LESS="LESS",t.GREAT="GREAT",t.DLESS="DLESS",t.DGREAT="DGREAT",t.LESSAND="LESSAND",t.GREATAND="GREATAND",t.LESSGREAT="LESSGREAT",t.DLESSDASH="DLESSDASH",t.CLOBBER="CLOBBER",t.TLESS="TLESS",t.AND_GREAT="AND_GREAT",t.AND_DGREAT="AND_DGREAT",t.LPAREN="LPAREN",t.RPAREN="RPAREN",t.LBRACE="LBRACE",t.RBRACE="RBRACE",t.DSEMI="DSEMI",t.SEMI_AND="SEMI_AND",t.SEMI_SEMI_AND="SEMI_SEMI_AND",t.DBRACK_START="DBRACK_START",t.DBRACK_END="DBRACK_END",t.DPAREN_START="DPAREN_START",t.DPAREN_END="DPAREN_END",t.IF="IF",t.THEN="THEN",t.ELSE="ELSE",t.ELIF="ELIF",t.FI="FI",t.FOR="FOR",t.WHILE="WHILE",t.UNTIL="UNTIL",t.DO="DO",t.DONE="DONE",t.CASE="CASE",t.ESAC="ESAC",t.IN="IN",t.FUNCTION="FUNCTION",t.SELECT="SELECT",t.TIME="TIME",t.COPROC="COPROC",t.WORD="WORD",t.NAME="NAME",t.NUMBER="NUMBER",t.ASSIGNMENT_WORD="ASSIGNMENT_WORD",t.COMMENT="COMMENT",t.HEREDOC_CONTENT="HEREDOC_CONTENT"})(y||(y={}));var rn={if:y.IF,then:y.THEN,else:y.ELSE,elif:y.ELIF,fi:y.FI,for:y.FOR,while:y.WHILE,until:y.UNTIL,do:y.DO,done:y.DONE,case:y.CASE,esac:y.ESAC,in:y.IN,function:y.FUNCTION,select:y.SELECT,time:y.TIME,coproc:y.COPROC};function du(t){let e=t.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!e)return!1;let r=t.slice(e[0].length);if(r===""||r==="+")return!0;if(r[0]==="["){let n=0,s=0;for(;s<r.length;s++)if(r[s]==="[")n++;else if(r[s]==="]"&&(n--,n===0))break;if(n!==0||s>=r.length)return!1;let i=r.slice(s+1);return i===""||i==="+"}return!1}var J0=[[";",";","&",y.SEMI_SEMI_AND],["<","<","<",y.TLESS],["&",">",">",y.AND_DGREAT]],Y0=[["[","[",y.DBRACK_START],["]","]",y.DBRACK_END],["(","(",y.DPAREN_START],[")",")",y.DPAREN_END],["&","&",y.AND_AND],["|","|",y.OR_OR],[";",";",y.DSEMI],[";","&",y.SEMI_AND],["|","&",y.PIPE_AMP],[">",">",y.DGREAT],["<","&",y.LESSAND],[">","&",y.GREATAND],["<",">",y.LESSGREAT],[">","|",y.CLOBBER],["&",">",y.AND_GREAT]],ey={"|":y.PIPE,"&":y.AMP,";":y.SEMICOLON,"(":y.LPAREN,")":y.RPAREN,"<":y.LESS,">":y.GREAT};function ty(t){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)}var nn=class{input;pos=0;line=1;column=1;tokens=[];pendingHeredocs=[];constructor(e){this.input=e}tokenize(){let r=this.input.length,n=this.tokens,s=this.pendingHeredocs;for(;this.pos<r&&(this.skipWhitespace(),!(this.pos>=r));){if(s.length>0&&n.length>0&&n[n.length-1].type===y.NEWLINE){this.readHeredocContent();continue}let i=this.nextToken();i&&n.push(i)}return n.push({type:y.EOF,value:"",start:this.pos,end:this.pos,line:this.line,column:this.column}),n}skipWhitespace(){let e=this.input,r=e.length,n=this.pos,s=this.column,i=this.line;for(;n<r;){let o=e[n];if(o===" "||o===" ")n++,s++;else if(o==="\\"&&e[n+1]===`
501
531
  `)n+=2,i++,s=1;else break}this.pos=n,this.column=s,this.line=i}nextToken(){let e=this.input,r=this.pos,n=this.line,s=this.column,i=e[r],o=e[r+1],a=e[r+2];if(i==="#")return this.readComment(r,n,s);if(i===`
502
- `)return this.pos=r+1,this.line++,this.column=1,{type:m.NEWLINE,value:`
503
- `,start:r,end:r+1,line:n,column:s};if(i==="<"&&o==="<"&&a==="-")return this.pos=r+3,this.column=s+3,this.registerHeredocFromLookahead(!0),this.makeToken(m.DLESSDASH,"<<-",r,n,s);for(let[l,u,f,p]of O0)if(i===l&&o===u&&a===f)return this.pos=r+3,this.column=s+3,this.makeToken(p,l+u+f,r,n,s);if(i==="<"&&o==="<")return this.pos=r+2,this.column=s+2,this.registerHeredocFromLookahead(!1),this.makeToken(m.DLESS,"<<",r,n,s);for(let[l,u,f]of P0)if(i===l&&o===u)return this.pos=r+2,this.column=s+2,this.makeToken(f,l+u,r,n,s);let c=T0[i];return c?(this.pos=r+1,this.column=s+1,this.makeToken(c,i,r,n,s)):i==="{"?o==="}"?(this.pos=r+2,this.column=s+2,{type:m.WORD,value:"{}",start:r,end:r+2,line:n,column:s,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(r)!==null?this.readWordWithBraceExpansion(r,n,s):this.scanLiteralBraceWord(r)!==null?this.readWordWithBraceExpansion(r,n,s):o!==void 0&&o!==" "&&o!==" "&&o!==`
504
- `?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(m.LBRACE,"{",r,n,s)):i==="}"?this.isWordCharFollowing(r+1)?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(m.RBRACE,"}",r,n,s)):i==="!"?o==="="?(this.pos=r+2,this.column=s+2,this.makeToken(m.WORD,"!=",r,n,s)):(this.pos=r+1,this.column=s+1,this.makeToken(m.BANG,"!",r,n,s)):this.readWord(r,n,s)}makeToken(e,r,n,s,i){return{type:e,value:r,start:n,end:this.pos,line:s,column:i}}readComment(e,r,n){let s=this.input,i=s.length,o=this.pos;for(;o<i&&s[o]!==`
505
- `;)o++;let a=s.slice(e,o);return this.pos=o,this.column=n+(o-e),{type:m.COMMENT,value:a,start:e,end:o,line:r,column:n}}readWord(e,r,n){let s=this.input,i=s.length,o=this.pos,a=o;for(;o<i;){let y=s[o];if(y===" "||y===" "||y===`
506
- `||y===";"||y==="&"||y==="|"||y==="("||y===")"||y==="<"||y===">"||y==="'"||y==='"'||y==="\\"||y==="$"||y==="`"||y==="{"||y==="}"||y==="~"||y==="*"||y==="?"||y==="[")break;o++}if(o>a){let y=s[o];if(o>=i||y===" "||y===" "||y===`
507
- `||y===";"||y==="&"||y==="|"||y==="("||y===")"||y==="<"||y===">"){let w=s.slice(a,o);if(this.pos=o,this.column=n+(o-a),Yr[w])return{type:Yr[w],value:w,start:e,end:o,line:r,column:n};let E=w.indexOf("=");return E>0&&ru(w.slice(0,E))?{type:m.ASSIGNMENT_WORD,value:w,start:e,end:o,line:r,column:n}:/^[0-9]+$/.test(w)?{type:m.NUMBER,value:w,start:e,end:o,line:r,column:n}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)?{type:m.NAME,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}:{type:m.WORD,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}}o=this.pos;let c=this.column,l=this.line,u="",f=!1,p=!1,d=!1,h=!1,g=s[o]==='"'||s[o]==="'";for(;o<i;){let y=s[o];if(!d&&!h&&(y===" "||y===" "||y===`
508
- `||y===";"||y==="&"||y==="|"||y==="("||y===")"||y==="<"||y===">"))break;if(y==="$"&&o+1<i&&s[o+1]==="'"&&!d&&!h){for(u+="$'",o+=2,c+=2;o<i&&s[o]!=="'";)s[o]==="\\"&&o+1<i?(u+=s[o]+s[o+1],o+=2,c+=2):(u+=s[o],o++,c++);o<i&&(u+="'",o++,c++);continue}if(y==="$"&&o+1<i&&s[o+1]==='"'&&!d&&!h){o++,c++,h=!0,f=!0,u===""&&(g=!0),o++,c++;continue}if(y==="'"&&!h){d?(d=!1,g||(u+=y)):(d=!0,g?(p=!0,f=!0):u+=y),o++,c++;continue}if(y==='"'&&!d){h?(h=!1,g||(u+=y)):(h=!0,g?f=!0:u+=y),o++,c++;continue}if(y==="\\"&&!d&&o+1<i){let w=s[o+1];if(w===`
532
+ `)return this.pos=r+1,this.line++,this.column=1,{type:y.NEWLINE,value:`
533
+ `,start:r,end:r+1,line:n,column:s};if(i==="<"&&o==="<"&&a==="-")return this.pos=r+3,this.column=s+3,this.registerHeredocFromLookahead(!0),this.makeToken(y.DLESSDASH,"<<-",r,n,s);for(let[l,u,f,p]of J0)if(i===l&&o===u&&a===f)return this.pos=r+3,this.column=s+3,this.makeToken(p,l+u+f,r,n,s);if(i==="<"&&o==="<")return this.pos=r+2,this.column=s+2,this.registerHeredocFromLookahead(!1),this.makeToken(y.DLESS,"<<",r,n,s);for(let[l,u,f]of Y0)if(i===l&&o===u)return this.pos=r+2,this.column=s+2,this.makeToken(f,l+u,r,n,s);let c=ey[i];return c?(this.pos=r+1,this.column=s+1,this.makeToken(c,i,r,n,s)):i==="{"?o==="}"?(this.pos=r+2,this.column=s+2,{type:y.WORD,value:"{}",start:r,end:r+2,line:n,column:s,quoted:!1,singleQuoted:!1}):this.scanBraceExpansion(r)!==null?this.readWordWithBraceExpansion(r,n,s):this.scanLiteralBraceWord(r)!==null?this.readWordWithBraceExpansion(r,n,s):o!==void 0&&o!==" "&&o!==" "&&o!==`
534
+ `?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(y.LBRACE,"{",r,n,s)):i==="}"?this.isWordCharFollowing(r+1)?this.readWord(r,n,s):(this.pos=r+1,this.column=s+1,this.makeToken(y.RBRACE,"}",r,n,s)):i==="!"?o==="="?(this.pos=r+2,this.column=s+2,this.makeToken(y.WORD,"!=",r,n,s)):(this.pos=r+1,this.column=s+1,this.makeToken(y.BANG,"!",r,n,s)):this.readWord(r,n,s)}makeToken(e,r,n,s,i){return{type:e,value:r,start:n,end:this.pos,line:s,column:i}}readComment(e,r,n){let s=this.input,i=s.length,o=this.pos;for(;o<i&&s[o]!==`
535
+ `;)o++;let a=s.slice(e,o);return this.pos=o,this.column=n+(o-e),{type:y.COMMENT,value:a,start:e,end:o,line:r,column:n}}readWord(e,r,n){let s=this.input,i=s.length,o=this.pos,a=o;for(;o<i;){let m=s[o];if(m===" "||m===" "||m===`
536
+ `||m===";"||m==="&"||m==="|"||m==="("||m===")"||m==="<"||m===">"||m==="'"||m==='"'||m==="\\"||m==="$"||m==="`"||m==="{"||m==="}"||m==="~"||m==="*"||m==="?"||m==="[")break;o++}if(o>a){let m=s[o];if(o>=i||m===" "||m===" "||m===`
537
+ `||m===";"||m==="&"||m==="|"||m==="("||m===")"||m==="<"||m===">"){let w=s.slice(a,o);if(this.pos=o,this.column=n+(o-a),rn[w])return{type:rn[w],value:w,start:e,end:o,line:r,column:n};let E=w.indexOf("=");return E>0&&du(w.slice(0,E))?{type:y.ASSIGNMENT_WORD,value:w,start:e,end:o,line:r,column:n}:/^[0-9]+$/.test(w)?{type:y.NUMBER,value:w,start:e,end:o,line:r,column:n}:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(w)?{type:y.NAME,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}:{type:y.WORD,value:w,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}}o=this.pos;let c=this.column,l=this.line,u="",f=!1,p=!1,d=!1,h=!1,g=s[o]==='"'||s[o]==="'";for(;o<i;){let m=s[o];if(!d&&!h&&(m===" "||m===" "||m===`
538
+ `||m===";"||m==="&"||m==="|"||m==="("||m===")"||m==="<"||m===">"))break;if(m==="$"&&o+1<i&&s[o+1]==="'"&&!d&&!h){for(u+="$'",o+=2,c+=2;o<i&&s[o]!=="'";)s[o]==="\\"&&o+1<i?(u+=s[o]+s[o+1],o+=2,c+=2):(u+=s[o],o++,c++);o<i&&(u+="'",o++,c++);continue}if(m==="$"&&o+1<i&&s[o+1]==='"'&&!d&&!h){o++,c++,h=!0,f=!0,u===""&&(g=!0),o++,c++;continue}if(m==="'"&&!h){d?(d=!1,g||(u+=m)):(d=!0,g?(p=!0,f=!0):u+=m),o++,c++;continue}if(m==='"'&&!d){h?(h=!1,g||(u+=m)):(h=!0,g?f=!0:u+=m),o++,c++;continue}if(m==="\\"&&!d&&o+1<i){let w=s[o+1];if(w===`
509
539
  `){o+=2,l++,c=1;continue}if(h){if(w==='"'||w==="\\"||w==="$"||w==="`"||w===`
510
- `){w==="$"||w==="`"?u+=y+w:u+=w,o+=2,c+=2;continue}}else{w==='"'||w==="'"?u+=y+w:u+=w,o+=2,c+=2;continue}}if(y==="$"&&o+1<i&&s[o+1]==="("){u+=y,o++,c++,u+=s[o],o++,c++;let w=1,E=!1,b=!1,S=0,C=!1,O="",D=s[o]==="(";for(;w>0&&o<i;){let F=s[o];if(u+=F,E)F==="'"&&(E=!1);else if(b)F==="\\"&&o+1<i?(u+=s[o+1],o++,c++):F==='"'&&(b=!1);else if(F==="'")E=!0,O="";else if(F==='"')b=!0,O="";else if(F==="\\"&&o+1<i)u+=s[o+1],o++,c++,O="";else if(F==="#"&&!D&&(O===""||/\s/.test(s[o-1]||""))){for(;o+1<i&&s[o+1]!==`
540
+ `){w==="$"||w==="`"?u+=m+w:u+=w,o+=2,c+=2;continue}}else{w==='"'||w==="'"?u+=m+w:u+=w,o+=2,c+=2;continue}}if(m==="$"&&o+1<i&&s[o+1]==="("){u+=m,o++,c++,u+=s[o],o++,c++;let w=1,E=!1,b=!1,S=0,C=!1,O="",D=s[o]==="(";for(;w>0&&o<i;){let F=s[o];if(u+=F,E)F==="'"&&(E=!1);else if(b)F==="\\"&&o+1<i?(u+=s[o+1],o++,c++):F==='"'&&(b=!1);else if(F==="'")E=!0,O="";else if(F==='"')b=!0,O="";else if(F==="\\"&&o+1<i)u+=s[o+1],o++,c++,O="";else if(F==="#"&&!D&&(O===""||/\s/.test(s[o-1]||""))){for(;o+1<i&&s[o+1]!==`
511
541
  `;)o++,c++,u+=s[o];O=""}else/[a-zA-Z_]/.test(F)?O+=F:(O==="case"?(S++,C=!1):O==="in"&&S>0?C=!0:O==="esac"&&S>0&&(S--,C=!1),O="",F==="("?o>0&&s[o-1]==="$"?w++:C||w++:F===")"?C?C=!1:w--:F===";"&&S>0&&o+1<i&&s[o+1]===";"&&(C=!0));F===`
512
- `&&(l++,c=0,O=""),o++,c++}continue}if(y==="$"&&o+1<i&&s[o+1]==="["){u+=y,o++,c++,u+=s[o],o++,c++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="["?w++:E==="]"?w--:E===`
513
- `&&(l++,c=0),o++,c++}continue}if(y==="$"&&o+1<i&&s[o+1]==="{"){u+=y,o++,c++,u+=s[o],o++,c++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="{"?w++:E==="}"?w--:E===`
514
- `&&(l++,c=0),o++,c++}continue}if(y==="$"&&o+1<i){let w=s[o+1];if(w==="#"||w==="?"||w==="$"||w==="!"||w==="@"||w==="*"||w==="-"||w>="0"&&w<="9"){u+=y+w,o+=2,c+=2;continue}}if(y==="`"){for(u+=y,o++,c++;o<i&&s[o]!=="`";){let w=s[o];u+=w,w==="\\"&&o+1<i&&(u+=s[o+1],o++,c++),w===`
515
- `&&(l++,c=0),o++,c++}o<i&&(u+=s[o],o++,c++);continue}u+=y,o++,y===`
516
- `?(l++,c=1):c++}if(this.pos=o,this.column=c,this.line=l,u==="")return{type:m.WORD,value:"",start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p};if(!f&&Yr[u])return{type:Yr[u],value:u,start:e,end:o,line:r,column:n};if(!g){let y=u.indexOf("=");if(y>0&&ru(u.slice(0,y)))return{type:m.ASSIGNMENT_WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}return/^[0-9]+$/.test(u)?{type:m.NUMBER,value:u,start:e,end:o,line:r,column:n}:F0(u)?{type:m.NAME,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}:{type:m.WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let e=this.pendingHeredocs.shift();if(!e)break;let r=this.pos,n=this.line,s=this.column,i="";for(;this.pos<this.input.length;){let o=this.pos,a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
542
+ `&&(l++,c=0,O=""),o++,c++}continue}if(m==="$"&&o+1<i&&s[o+1]==="["){u+=m,o++,c++,u+=s[o],o++,c++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="["?w++:E==="]"?w--:E===`
543
+ `&&(l++,c=0),o++,c++}continue}if(m==="$"&&o+1<i&&s[o+1]==="{"){u+=m,o++,c++,u+=s[o],o++,c++;let w=1;for(;w>0&&o<i;){let E=s[o];u+=E,E==="{"?w++:E==="}"?w--:E===`
544
+ `&&(l++,c=0),o++,c++}continue}if(m==="$"&&o+1<i){let w=s[o+1];if(w==="#"||w==="?"||w==="$"||w==="!"||w==="@"||w==="*"||w==="-"||w>="0"&&w<="9"){u+=m+w,o+=2,c+=2;continue}}if(m==="`"){for(u+=m,o++,c++;o<i&&s[o]!=="`";){let w=s[o];u+=w,w==="\\"&&o+1<i&&(u+=s[o+1],o++,c++),w===`
545
+ `&&(l++,c=0),o++,c++}o<i&&(u+=s[o],o++,c++);continue}u+=m,o++,m===`
546
+ `?(l++,c=1):c++}if(this.pos=o,this.column=c,this.line=l,u==="")return{type:y.WORD,value:"",start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p};if(!f&&rn[u])return{type:rn[u],value:u,start:e,end:o,line:r,column:n};if(!g){let m=u.indexOf("=");if(m>0&&du(u.slice(0,m)))return{type:y.ASSIGNMENT_WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}return/^[0-9]+$/.test(u)?{type:y.NUMBER,value:u,start:e,end:o,line:r,column:n}:ty(u)?{type:y.NAME,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}:{type:y.WORD,value:u,start:e,end:o,line:r,column:n,quoted:f,singleQuoted:p}}readHeredocContent(){for(;this.pendingHeredocs.length>0;){let e=this.pendingHeredocs.shift();if(!e)break;let r=this.pos,n=this.line,s=this.column,i="";for(;this.pos<this.input.length;){let o=this.pos,a="";for(;this.pos<this.input.length&&this.input[this.pos]!==`
517
547
  `;)a+=this.input[this.pos],this.pos++,this.column++;if((e.stripTabs?a.replace(/^\t+/,""):a)===e.delimiter){this.pos<this.input.length&&this.input[this.pos]===`
518
548
  `&&(this.pos++,this.line++,this.column=1);break}i+=a,this.pos<this.input.length&&this.input[this.pos]===`
519
549
  `&&(i+=`
520
- `,this.pos++,this.line++,this.column=1)}this.tokens.push({type:m.HEREDOC_CONTENT,value:i,start:r,end:this.pos,line:n,column:s})}}addPendingHeredoc(e,r,n){this.pendingHeredocs.push({delimiter:e,stripTabs:r,quoted:n})}registerHeredocFromLookahead(e){let r=this.pos,n=this.column;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]===" ");)this.pos++,this.column++;let s="",i=!1,o=this.input[this.pos];if(o==="'"||o==='"'){i=!0;let a=o;for(this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]!==a;)s+=this.input[this.pos],this.pos++,this.column++}else for(;this.pos<this.input.length&&!/[\s;<>&|()]/.test(this.input[this.pos]);)s+=this.input[this.pos],this.pos++,this.column++;this.pos=r,this.column=n,s&&this.pendingHeredocs.push({delimiter:s,stripTabs:e,quoted:i})}isWordCharFollowing(e){if(e>=this.input.length)return!1;let r=this.input[e];return!(r===" "||r===" "||r===`
550
+ `,this.pos++,this.line++,this.column=1)}this.tokens.push({type:y.HEREDOC_CONTENT,value:i,start:r,end:this.pos,line:n,column:s})}}addPendingHeredoc(e,r,n){this.pendingHeredocs.push({delimiter:e,stripTabs:r,quoted:n})}registerHeredocFromLookahead(e){let r=this.pos,n=this.column;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]===" ");)this.pos++,this.column++;let s="",i=!1,o=this.input[this.pos];if(o==="'"||o==='"'){i=!0;let a=o;for(this.pos++,this.column++;this.pos<this.input.length&&this.input[this.pos]!==a;)s+=this.input[this.pos],this.pos++,this.column++}else for(;this.pos<this.input.length&&!/[\s;<>&|()]/.test(this.input[this.pos]);)s+=this.input[this.pos],this.pos++,this.column++;this.pos=r,this.column=n,s&&this.pendingHeredocs.push({delimiter:s,stripTabs:e,quoted:i})}isWordCharFollowing(e){if(e>=this.input.length)return!1;let r=this.input[e];return!(r===" "||r===" "||r===`
521
551
  `||r===";"||r==="&"||r==="|"||r==="("||r===")"||r==="<"||r===">")}readWordWithBraceExpansion(e,r,n){let s=this.input,i=s.length,o=e,a=n;for(;o<i;){let l=s[o];if(l===" "||l===" "||l===`
522
- `||l===";"||l==="&"||l==="|"||l==="("||l===")"||l==="<"||l===">")break;if(l==="{"){if(this.scanBraceExpansion(o)!==null){let f=1;for(o++,a++;o<i&&f>0;)s[o]==="{"?f++:s[o]==="}"&&f--,o++,a++;continue}o++,a++;continue}if(l==="}"){o++,a++;continue}if(l==="$"&&o+1<i&&s[o+1]==="("){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="("?u++:s[o]===")"&&u--,o++,a++;continue}if(l==="$"&&o+1<i&&s[o+1]==="{"){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="{"?u++:s[o]==="}"&&u--,o++,a++;continue}if(l==="`"){for(o++,a++;o<i&&s[o]!=="`";)s[o]==="\\"&&o+1<i?(o+=2,a+=2):(o++,a++);o<i&&(o++,a++);continue}o++,a++}let c=s.slice(e,o);return this.pos=o,this.column=a,{type:m.WORD,value:c,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}scanBraceExpansion(e){let r=this.input,n=r.length,s=e+1,i=1,o=!1,a=!1;for(;s<n&&i>0;){let c=r[s];if(c==="{")i++,s++;else if(c==="}")i--,s++;else if(c===","&&i===1)o=!0,s++;else if(c==="."&&s+1<n&&r[s+1]===".")a=!0,s+=2;else{if(c===" "||c===" "||c===`
552
+ `||l===";"||l==="&"||l==="|"||l==="("||l===")"||l==="<"||l===">")break;if(l==="{"){if(this.scanBraceExpansion(o)!==null){let f=1;for(o++,a++;o<i&&f>0;)s[o]==="{"?f++:s[o]==="}"&&f--,o++,a++;continue}o++,a++;continue}if(l==="}"){o++,a++;continue}if(l==="$"&&o+1<i&&s[o+1]==="("){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="("?u++:s[o]===")"&&u--,o++,a++;continue}if(l==="$"&&o+1<i&&s[o+1]==="{"){o++,a++,o++,a++;let u=1;for(;u>0&&o<i;)s[o]==="{"?u++:s[o]==="}"&&u--,o++,a++;continue}if(l==="`"){for(o++,a++;o<i&&s[o]!=="`";)s[o]==="\\"&&o+1<i?(o+=2,a+=2):(o++,a++);o<i&&(o++,a++);continue}o++,a++}let c=s.slice(e,o);return this.pos=o,this.column=a,{type:y.WORD,value:c,start:e,end:o,line:r,column:n,quoted:!1,singleQuoted:!1}}scanBraceExpansion(e){let r=this.input,n=r.length,s=e+1,i=1,o=!1,a=!1;for(;s<n&&i>0;){let c=r[s];if(c==="{")i++,s++;else if(c==="}")i--,s++;else if(c===","&&i===1)o=!0,s++;else if(c==="."&&s+1<n&&r[s+1]===".")a=!0,s+=2;else{if(c===" "||c===" "||c===`
523
553
  `||c===";"||c==="&"||c==="|")return null;s++}}return i===0&&(o||a)?r.slice(e,s):null}scanLiteralBraceWord(e){let r=this.input,n=r.length,s=e+1,i=1;for(;s<n&&i>0;){let o=r[s];if(o==="{")i++,s++;else if(o==="}"){if(i--,i===0)return r.slice(e,s+1);s++}else{if(o===" "||o===" "||o===`
524
- `||o===";"||o==="&"||o==="|")return null;s++}}return null}};var $s=1e6,Os=1e5,nu=1e6,su=new Set([m.LESS,m.GREAT,m.DLESS,m.DGREAT,m.LESSAND,m.GREATAND,m.LESSGREAT,m.DLESSDASH,m.CLOBBER,m.TLESS,m.AND_GREAT,m.AND_DGREAT]),iu=new Set([m.LESS,m.GREAT,m.DLESS,m.DGREAT,m.LESSAND,m.GREATAND,m.LESSGREAT,m.DLESSDASH,m.CLOBBER,m.TLESS]),Qe=class extends Error{line;column;token;constructor(e,r,n,s=void 0){super(`Parse error at ${r}:${n}: ${e}`),this.line=r,this.column=n,this.token=s,this.name="ParseException"}};function au(t,e,r){let n=r+1;for(;n<e.length&&/[a-zA-Z0-9_-]/.test(e[n]);)n++;return n}function Ps(t,e,r,n,s){let i=1,o=r+1;for(;o<e.length&&i>0;)e[o]===n?i++:e[o]===s&&i--,i>0&&o++;return i===0?o:-1}function gt(t,e,r){let n=r,s=1;for(;n<e.length&&s>0;){let i=e[n];if(i==="\\"&&n+1<e.length){n+=2;continue}if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++;continue}i==="{"?s++:i==="}"&&s--,s>0&&n++}return n}function cu(t,e,r){let n=r,s=!1;for(;n<e.length;){let i=e[n];if(i==="/"&&s||i==="}")break;if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1,s=!0;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++,s=!0;continue}i==="\\"?(n+=2,s=!0):(n++,s=!0)}return n}function lu(t,e,r){let n=r,s="";for(;n<e.length;){let i=e[n];if(i==="*"||i==="?")s+=i,n++;else if(i==="["){let o=D0(e,n);o===-1?(s+=i,n++):(s+=e.slice(n,o+1),n=o+1)}else break}return{pattern:s,endIndex:n}}function D0(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){r+=2;continue}if(n==="]")return r;if(n==='"'||n==="$"||n==="`")return-1;if(n==="'"){let s=t.indexOf("'",r+1);if(s!==-1){r=s+1;continue}}if(n==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){r=s+2;continue}}if(n==="["&&r+1<t.length&&(t[r+1]==="."||t[r+1]==="=")){let i=`${t[r+1]}]`,o=t.indexOf(i,r+2);if(o!==-1){r=o+2;continue}}r++}return-1}function uu(t,e,r){let n="",s=r;for(;s<e.length&&e[s]!=="'";){let i=e[s];if(i==="\\"&&s+1<e.length)switch(e[s+1]){case"n":n+=`
525
- `,s+=2;break;case"t":n+=" ",s+=2;break;case"r":n+="\r",s+=2;break;case"\\":n+="\\",s+=2;break;case"'":n+="'",s+=2;break;case'"':n+='"',s+=2;break;case"a":n+="\x07",s+=2;break;case"b":n+="\b",s+=2;break;case"e":case"E":n+="\x1B",s+=2;break;case"f":n+="\f",s+=2;break;case"v":n+="\v",s+=2;break;case"x":{let a=e.slice(s+2,s+4),c=parseInt(a,16);Number.isNaN(c)?(n+="\\x",s+=2):(n+=String.fromCharCode(c),s+=4);break}case"u":{let a=e.slice(s+2,s+6),c=parseInt(a,16);Number.isNaN(c)?(n+="\\u",s+=2):(n+=String.fromCharCode(c),s+=6);break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let a="",c=s+1;for(;c<e.length&&c<s+4&&/[0-7]/.test(e[c]);)a+=e[c],c++;let l=parseInt(a,8);n+=String.fromCharCode(l),s=c;break}default:n+=i,s++}else n+=i,s++}return s<e.length&&e[s]==="'"&&s++,{part:v.literal(n),endIndex:s}}function Ts(t,e){let r=e.trim();return r===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:le(t,r)}function ou(t){let e=[],r="",n=0;for(let s=0;s<t.length;s++){let i=t[s];i==="{"?(n++,r+=i):i==="}"?(n--,r+=i):i===","&&n===0?(e.push(r),r=""):r+=i}return e.push(r),e}function fu(t,e,r,n){let s=Ps(t,e,r,"{","}");if(s===-1)return null;let i=e.slice(r+1,s),o=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(o)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(o[1],10),end:Number.parseInt(o[2],10),step:o[3]?Number.parseInt(o[3],10):void 0,startStr:o[1],endStr:o[2]}]},endIndex:s+1};let a=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return a?{part:{type:"BraceExpansion",items:[{type:"Range",start:a[1],end:a[2],step:a[3]?Number.parseInt(a[3],10):void 0}]},endIndex:s+1}:i.includes(",")&&n?{part:{type:"BraceExpansion",items:ou(i).map(u=>({type:"Word",word:v.word(n(t,u,!1,!1,!1))}))},endIndex:s+1}:i.includes(",")?{part:{type:"BraceExpansion",items:ou(i).map(u=>({type:"Word",word:v.word([v.literal(u)])}))},endIndex:s+1}:null}function pu(t,e){let r="";for(let n of e.parts)switch(n.type){case"Literal":case"SingleQuoted":case"Escaped":r+=n.value;break;case"DoubleQuoted":r+='"';for(let s of n.parts)s.type==="Literal"||s.type==="Escaped"?r+=s.value:s.type==="ParameterExpansion"&&(r+=`\${${s.parameter}}`);r+='"';break;case"ParameterExpansion":r+=`\${${n.parameter}}`;break;case"Glob":r+=n.pattern;break;default:r+=n.type}return r}function du(t,e){return{[m.LESS]:"<",[m.GREAT]:">",[m.DGREAT]:">>",[m.LESSAND]:"<&",[m.GREATAND]:">&",[m.LESSGREAT]:"<>",[m.CLOBBER]:">|",[m.TLESS]:"<<<",[m.AND_GREAT]:"&>",[m.AND_DGREAT]:"&>>",[m.DLESS]:"<",[m.DLESSDASH]:"<"}[e]||">"}function tn(t){let e=t.current(),r=e.type;if(r===m.NUMBER){let n=t.peek(1);return e.end!==n.start?!1:iu.has(n.type)}return su.has(r)}function rn(t){let e=null;t.check(m.NUMBER)&&(e=Number.parseInt(t.advance().value,10));let r=t.advance(),n=du(t,r.type);if(r.type===m.DLESS||r.type===m.DLESSDASH)return L0(t,n,e,r.type===m.DLESSDASH);t.isWord()||t.error("Expected redirection target");let s=t.parseWord();return v.redirection(n,s,e)}function L0(t,e,r,n){t.isWord()||t.error("Expected here-document delimiter");let s=t.advance(),i=s.value,o=s.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let a=v.redirection(n?"<<-":"<<",v.hereDoc(i,v.word([]),n,o),r);return t.addPendingHeredoc(a,i,n,o),a}function mu(t){let e=t.current().line,r=[],n=null,s=[],i=[];for(;t.check(m.ASSIGNMENT_WORD);)t.checkIterationLimit(),r.push(M0(t));for(;tn(t);)t.checkIterationLimit(),i.push(rn(t));for(t.isWord()&&(n=t.parseWord());(!t.isStatementEnd()||t.check(m.RBRACE))&&!t.check(m.PIPE,m.PIPE_AMP);)if(t.checkIterationLimit(),tn(t))i.push(rn(t));else if(t.check(m.RBRACE)){let a=t.advance();s.push(t.parseWordFromString(a.value,!1,!1))}else if(t.isWord())s.push(t.parseWord());else if(t.check(m.ASSIGNMENT_WORD)){let a=t.advance(),c=a.value,l=c.endsWith("="),u=c.endsWith("=(");if((l||u)&&(u||t.check(m.LPAREN))){let f=u?c.slice(0,-2):c.slice(0,-1);u||t.expect(m.LPAREN);let p=Fs(t);t.expect(m.RPAREN);let d=p.map(g=>pu(t,g)),h=`${f}=(${d.join(" ")})`;s.push(t.parseWordFromString(h,!1,!1))}else s.push(t.parseWordFromString(c,a.quoted,a.singleQuoted))}else if(t.check(m.LPAREN))t.error("syntax error near unexpected token `('");else break;let o=v.simpleCommand(n,s,r,i);return o.line=e,o}function M0(t){let e=t.expect(m.ASSIGNMENT_WORD),r=e.value,n=r.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);n||t.error(`Invalid assignment: ${r}`);let s=n[0],i,o=s.length;if(r[o]==="["){let f=0,p=o+1;for(;o<r.length;o++)if(r[o]==="[")f++;else if(r[o]==="]"&&(f--,f===0))break;f!==0&&t.error(`Invalid assignment: ${r}`),i=r.slice(p,o),o++}let a=r[o]==="+";a&&o++,r[o]!=="="&&t.error(`Invalid assignment: ${r}`),o++;let c=r.slice(o);if(c==="("){let f=Fs(t);t.expect(m.RPAREN);let p=i!==void 0?`${s}[${i}]`:s;return v.assignment(p,null,a,f)}if(c===""&&t.check(m.LPAREN)){let f=t.current();if(e.end===f.start){t.advance();let p=Fs(t);t.expect(m.RPAREN);let d=i!==void 0?`${s}[${i}]`:s;return v.assignment(d,null,a,p)}}let l=c?t.parseWordFromString(c,e.quoted,e.singleQuoted,!0):null,u=i!==void 0?`${s}[${i}]`:s;return v.assignment(u,l,a,null)}function Fs(t){let e=[];for(t.skipNewlines();!t.check(m.RPAREN,m.EOF);)t.checkIterationLimit(),t.isWord()?e.push(t.parseWord()):t.advance(),t.skipNewlines();return e}function Ds(t){t.expect(m.IF);let e=[],r=t.parseCompoundList();t.expect(m.THEN);let n=t.parseCompoundList();if(n.length===0){let o=t.check(m.FI)?"fi":t.check(m.ELSE)?"else":t.check(m.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${o}'`)}for(e.push({condition:r,body:n});t.check(m.ELIF);){t.advance();let o=t.parseCompoundList();t.expect(m.THEN);let a=t.parseCompoundList();if(a.length===0){let c=t.check(m.FI)?"fi":t.check(m.ELSE)?"else":t.check(m.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${c}'`)}e.push({condition:o,body:a})}let s=null;t.check(m.ELSE)&&(t.advance(),s=t.parseCompoundList(),s.length===0&&t.error("syntax error near unexpected token `fi'")),t.expect(m.FI);let i=t.parseOptionalRedirections();return v.ifNode(e,s,i)}function Ls(t){if(t.expect(m.FOR),t.check(m.DPAREN_START))return B0(t);t.isWord()||t.error("Expected variable name in for loop");let r=t.advance().value,n=null;if(t.skipNewlines(),t.check(m.IN))for(t.advance(),n=[];!t.check(m.SEMICOLON,m.NEWLINE,m.DO,m.EOF)&&t.isWord();)n.push(t.parseWord());t.check(m.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(m.DO);let s=t.parseCompoundList();t.expect(m.DONE);let i=t.parseOptionalRedirections();return v.forNode(r,n,s,i)}function B0(t){t.expect(m.DPAREN_START);let e=null,r=null,n=null,s=["","",""],i=0,o=0;for(;!t.check(m.DPAREN_END,m.EOF);){let l=t.advance();if(l.type===m.SEMICOLON&&o===0){if(i++,i>2)break}else l.value==="("&&o++,l.value===")"&&o--,s[i]+=l.value}t.expect(m.DPAREN_END),s[0].trim()&&(e=le(t,s[0].trim())),s[1].trim()&&(r=le(t,s[1].trim())),s[2].trim()&&(n=le(t,s[2].trim())),t.skipNewlines(),t.check(m.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(m.DO);let a=t.parseCompoundList();t.expect(m.DONE);let c=t.parseOptionalRedirections();return{type:"CStyleFor",init:e,condition:r,update:n,body:a,redirections:c}}function Ms(t){t.expect(m.WHILE);let e=t.parseCompoundList();t.expect(m.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(m.DONE);let n=t.parseOptionalRedirections();return v.whileNode(e,r,n)}function _s(t){t.expect(m.UNTIL);let e=t.parseCompoundList();t.expect(m.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(m.DONE);let n=t.parseOptionalRedirections();return v.untilNode(e,r,n)}function Bs(t){t.expect(m.CASE),t.isWord()||t.error("Expected word after 'case'");let e=t.parseWord();t.skipNewlines(),t.expect(m.IN),t.skipNewlines();let r=[];for(;!t.check(m.ESAC,m.EOF);){t.checkIterationLimit();let s=t.getPos(),i=W0(t);if(i&&r.push(i),t.skipNewlines(),t.getPos()===s&&!i)break}t.expect(m.ESAC);let n=t.parseOptionalRedirections();return v.caseNode(e,r,n)}function W0(t){t.check(m.LPAREN)&&t.advance();let e=[];for(;t.isWord()&&(e.push(t.parseWord()),t.check(m.PIPE));)t.advance();if(e.length===0)return null;t.expect(m.RPAREN),t.skipNewlines();let r=[];for(;!t.check(m.DSEMI,m.SEMI_AND,m.SEMI_SEMI_AND,m.ESAC,m.EOF);){t.checkIterationLimit(),t.isWord()&&t.peek(1).type===m.RPAREN&&t.error("syntax error near unexpected token `)'"),t.check(m.LPAREN)&&t.peek(1).type===m.WORD&&t.error(`syntax error near unexpected token \`${t.peek(1).value}'`);let s=t.getPos(),i=t.parseStatement();if(i&&r.push(i),t.skipSeparators(!1),t.getPos()===s&&!i)break}let n=";;";return t.check(m.DSEMI)?(t.advance(),n=";;"):t.check(m.SEMI_AND)?(t.advance(),n=";&"):t.check(m.SEMI_SEMI_AND)&&(t.advance(),n=";;&"),v.caseItem(e,r,n)}function Ws(t){t.peek(1).type,m.LPAREN,t.expect(m.LPAREN),t.check(m.LPAREN)&&t.advance();let e=t.parseCompoundList();t.expect(m.RPAREN);let r=t.parseOptionalRedirections();return v.subshell(e,r)}function Us(t){t.expect(m.LBRACE);let e=t.parseCompoundList();t.expect(m.RBRACE);let r=t.parseOptionalRedirections();return v.group(e,r)}var H0=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],j0=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function js(t){return t.skipNewlines(),z0(t)}function z0(t){let e=yu(t);for(t.skipNewlines();t.check(m.OR_OR);){t.advance(),t.skipNewlines();let r=yu(t);e={type:"CondOr",left:e,right:r},t.skipNewlines()}return e}function yu(t){let e=Hs(t);for(t.skipNewlines();t.check(m.AND_AND);){t.advance(),t.skipNewlines();let r=Hs(t);e={type:"CondAnd",left:e,right:r},t.skipNewlines()}return e}function Hs(t){return t.skipNewlines(),t.check(m.BANG)?(t.advance(),t.skipNewlines(),{type:"CondNot",operand:Hs(t)}):G0(t)}function G0(t){if(t.check(m.LPAREN)){t.advance();let e=js(t);return t.expect(m.RPAREN),{type:"CondGroup",expression:e}}if(t.isWord()){let e=t.current(),r=e.value;if(H0.includes(r)&&!e.quoted&&(t.advance(),t.check(m.DBRACK_END)&&t.error(`Expected operand after ${r}`),t.isWord())){let s=t.parseWord();return{type:"CondUnary",operator:r,operand:s}}let n=t.parseWord();if(t.isWord()&&j0.includes(t.current().value)){let s=t.advance().value,i=t.parseWord();return{type:"CondBinary",operator:s,left:n,right:i}}if(t.check(m.LESS)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"<",left:n,right:s}}if(t.check(m.GREAT)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:">",left:n,right:s}}if(t.isWord()&&t.current().value==="="){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"==",left:n,right:s}}return{type:"CondWord",word:n}}t.error("Expected conditional expression")}function V0(t,e,r){let n=r+1,s=e[n];if("@*#?$!-0123456789".includes(s))return{part:v.parameterExpansion(s),endIndex:n+1};let i="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)i+=e[n],n++;return{part:v.parameterExpansion(i),endIndex:n}}function K0(t,e,r,n=!1){let s=r+2,i=!1;e[s]==="!"&&(i=!0,s++);let o=!1;e[s]==="#"&&!/[}:#%/^,]/.test(e[s+1]||"}")&&(o=!0,s++);let a="",c=e[s];if(/[@*#?$!-]/.test(c)&&!/[a-zA-Z0-9_]/.test(e[s+1]||""))a=c,s++;else for(;s<e.length&&/[a-zA-Z0-9_]/.test(e[s]);)a+=e[s],s++;if(e[s]==="["){let u=Ps(t,e,s,"[","]");a+=e.slice(s,u+1),s=u+1}a===""&&!i&&!o&&e[s]!=="}"&&t.error(`\${${e[s]}}: bad substitution`);let l=null;if(i){let u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(u)l={type:"ArrayKeys",array:u[1],star:u[2]==="*"},a="";else if(e[s]==="*"||e[s]==="@"){let f=e[s];s++,l={type:"VarNamePrefix",prefix:a,star:f==="*"},a=""}else l={type:"Indirection"}}else if(o)if(e[s]===":")for(l={type:"LengthSliceError"};s<e.length&&e[s]!=="}";)s++;else e[s]!=="}"&&/[-+=?]/.test(e[s])?t.error(`\${#${a}${e.slice(s,e.indexOf("}",s))}}: bad substitution`):l={type:"Length"};if(!l&&s<e.length&&e[s]!=="}"){let u=Z0(t,e,s,a,n);l=u.operation,s=u.endIndex}if(s<e.length&&e[s]!=="}"){let u=e[s];if(!/[:\-+=?#%/^,@[]/.test(u)){let f=s;for(;f<e.length&&e[f]!=="}";)f++;let p=e.slice(r,f+1);t.error(`\${${p.slice(2,-1)}}: bad substitution`)}}for(;s<e.length&&e[s]!=="}";)s++;return{part:v.parameterExpansion(a,l),endIndex:s+1}}function Z0(t,e,r,n,s=!1){let i=r,o=e[i],a=e[i+1]||"";if(o===":"){let c=a;if("-=?+".includes(c)){i+=2;let w=gt(t,e,i),E=e.slice(i,w),b=nt(t,E,!1,!1,!0,!1,s),S=v.word(b.length>0?b:[v.literal("")]);if(c==="-")return{operation:{type:"DefaultValue",word:S,checkEmpty:!0},endIndex:w};if(c==="=")return{operation:{type:"AssignDefault",word:S,checkEmpty:!0},endIndex:w};if(c==="?")return{operation:{type:"ErrorIfUnset",word:S,checkEmpty:!0},endIndex:w};if(c==="+")return{operation:{type:"UseAlternative",word:S,checkEmpty:!0},endIndex:w}}i++;let l=gt(t,e,i),u=e.slice(i,l),f=-1,p=0,d=0;for(let y=0;y<u.length;y++){let w=u[y];if(w==="("||w==="[")p++;else if(w===")"||w==="]")p--;else if(w==="?"&&p===0)d++;else if(w===":"&&p===0)if(d>0)d--;else{f=y;break}}let h=f>=0?u.slice(0,f):u,g=f>=0?u.slice(f+1):null;return{operation:{type:"Substring",offset:Ts(t,h),length:g?Ts(t,g):null},endIndex:l}}if("-=?+".includes(o)){i++;let c=gt(t,e,i),l=e.slice(i,c),u=nt(t,l,!1,!1,!0,!1,s),f=v.word(u.length>0?u:[v.literal("")]);if(o==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:c};if(o==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:c};if(o==="?")return{operation:{type:"ErrorIfUnset",word:l?f:null,checkEmpty:!1},endIndex:c};if(o==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:c}}if(o==="#"||o==="%"){let c=a===o,l=o==="#"?"prefix":"suffix";i+=c?2:1;let u=gt(t,e,i),f=e.slice(i,u),p=nt(t,f,!1,!1,!1);return{operation:{type:"PatternRemoval",pattern:v.word(p.length>0?p:[v.literal("")]),side:l,greedy:c},endIndex:u}}if(o==="/"){let c=a==="/";i+=c?2:1;let l=null;e[i]==="#"?(l="start",i++):e[i]==="%"&&(l="end",i++);let u=cu(t,e,i),f=e.slice(i,u),p=nt(t,f,!1,!1,!1),d=v.word(p.length>0?p:[v.literal("")]),h=null,g=u;if(e[u]==="/"){let y=u+1,w=gt(t,e,y),E=e.slice(y,w),b=nt(t,E,!1,!1,!1);h=v.word(b.length>0?b:[v.literal("")]),g=w}return{operation:{type:"PatternReplacement",pattern:d,replacement:h,all:c,anchor:l},endIndex:g}}if(o==="^"||o===","){let c=a===o,l=o==="^"?"upper":"lower";i+=c?2:1;let u=gt(t,e,i),f=e.slice(i,u),p=f?v.word([v.literal(f)]):null;return{operation:{type:"CaseModification",direction:l,all:c,pattern:p},endIndex:u}}return o==="@"&&/[QPaAEK]/.test(a)?{operation:{type:"Transform",operator:a},endIndex:i+2}:{operation:null,endIndex:i}}function zs(t,e,r,n=!1){let s=r+1;if(s>=e.length)return{part:v.literal("$"),endIndex:s};let i=e[s];if(i==="("&&e[s+1]==="(")return t.parseArithmeticExpansion(e,r);if(i==="["){let o=1,a=s+1;for(;a<e.length&&o>0;)e[a]==="["?o++:e[a]==="]"&&o--,o>0&&a++;if(o===0){let c=e.slice(s+1,a),l=le(t,c);return{part:v.arithmeticExpansion(l),endIndex:a+1}}}return i==="("?t.parseCommandSubstitution(e,r):i==="{"?K0(t,e,r,n):/[a-zA-Z_0-9@*#?$!-]/.test(i)?V0(t,e,r):{part:v.literal("$"),endIndex:s}}function Q0(t,e){let r=[],n=0,s="",i=()=>{s&&(r.push(v.literal(s)),s="")};for(;n<e.length;){let o=e[n];if(o==="\\"&&n+1<e.length){let a=e[n+1];if(a==="$"||a==="`"){s+=a,n+=2;continue}s+=o,n++;continue}if(o==="$"){i();let{part:a,endIndex:c}=zs(t,e,n,!0);a&&r.push(a),n=c;continue}if(o==="`"){i();let{part:a,endIndex:c}=t.parseBacktickSubstitution(e,n,!0);r.push(a),n=c;continue}s+=o,n++}return i(),r}function X0(t,e,r){let n=[],s=r,i="",o=()=>{i&&(n.push(v.literal(i)),i="")};for(;s<e.length&&e[s]!=='"';){let a=e[s];if(a==="\\"&&s+1<e.length){let c=e[s+1];if('"\\$`\n'.includes(c)){i+=c,s+=2;continue}i+=a,s++;continue}if(a==="$"){o();let{part:c,endIndex:l}=zs(t,e,s,!0);c&&n.push(c),s=l;continue}if(a==="`"){o();let{part:c,endIndex:l}=t.parseBacktickSubstitution(e,s,!0);n.push(c),s=l;continue}i+=a,s++}return o(),{part:v.doubleQuoted(n),endIndex:s}}function nt(t,e,r=!1,n=!1,s=!1,i=!1,o=!1){if(n)return[v.singleQuoted(e)];if(r){let f=Q0(t,e);return[v.doubleQuoted(f)]}let a=[],c=0,l="",u=()=>{l&&(a.push(v.literal(l)),l="")};for(;c<e.length;){let f=e[c];if(f==="\\"&&c+1<e.length){let p=e[c+1];(i?p==="$"||p==="`"||p==="\\"||p===`
554
+ `||o===";"||o==="&"||o==="|")return null;s++}}return null}};var Ls=1e6,Ms=1e5,hu=1e6,mu=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS,y.AND_GREAT,y.AND_DGREAT]),yu=new Set([y.LESS,y.GREAT,y.DLESS,y.DGREAT,y.LESSAND,y.GREATAND,y.LESSGREAT,y.DLESSDASH,y.CLOBBER,y.TLESS]),Qe=class extends Error{line;column;token;constructor(e,r,n,s=void 0){super(`Parse error at ${r}:${n}: ${e}`),this.line=r,this.column=n,this.token=s,this.name="ParseException"}};function xu(t,e,r){let n=r+1;for(;n<e.length&&/[a-zA-Z0-9_-]/.test(e[n]);)n++;return n}function _s(t,e,r,n,s){let i=1,o=r+1;for(;o<e.length&&i>0;)e[o]===n?i++:e[o]===s&&i--,i>0&&o++;return i===0?o:-1}function gt(t,e,r){let n=r,s=1;for(;n<e.length&&s>0;){let i=e[n];if(i==="\\"&&n+1<e.length){n+=2;continue}if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++;continue}i==="{"?s++:i==="}"&&s--,s>0&&n++}return n}function wu(t,e,r){let n=r,s=!1;for(;n<e.length;){let i=e[n];if(i==="/"&&s||i==="}")break;if(i==="'"){let o=e.indexOf("'",n+1);if(o!==-1){n=o+1,s=!0;continue}}if(i==='"'){for(n++;n<e.length&&e[n]!=='"';)e[n]==="\\"&&n+1<e.length?n+=2:n++;n<e.length&&n++,s=!0;continue}i==="\\"?(n+=2,s=!0):(n++,s=!0)}return n}function Eu(t,e,r){let n=r,s="";for(;n<e.length;){let i=e[n];if(i==="*"||i==="?")s+=i,n++;else if(i==="["){let o=ry(e,n);o===-1?(s+=i,n++):(s+=e.slice(n,o+1),n=o+1)}else break}return{pattern:s,endIndex:n}}function ry(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){let n=t[r];if(n==="\\"&&r+1<t.length){r+=2;continue}if(n==="]")return r;if(n==='"'||n==="$"||n==="`")return-1;if(n==="'"){let s=t.indexOf("'",r+1);if(s!==-1){r=s+1;continue}}if(n==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){r=s+2;continue}}if(n==="["&&r+1<t.length&&(t[r+1]==="."||t[r+1]==="=")){let i=`${t[r+1]}]`,o=t.indexOf(i,r+2);if(o!==-1){r=o+2;continue}}r++}return-1}function bu(t,e,r){let n="",s=r;for(;s<e.length&&e[s]!=="'";){let i=e[s];if(i==="\\"&&s+1<e.length)switch(e[s+1]){case"n":n+=`
555
+ `,s+=2;break;case"t":n+=" ",s+=2;break;case"r":n+="\r",s+=2;break;case"\\":n+="\\",s+=2;break;case"'":n+="'",s+=2;break;case'"':n+='"',s+=2;break;case"a":n+="\x07",s+=2;break;case"b":n+="\b",s+=2;break;case"e":case"E":n+="\x1B",s+=2;break;case"f":n+="\f",s+=2;break;case"v":n+="\v",s+=2;break;case"x":{let a=e.slice(s+2,s+4),c=parseInt(a,16);Number.isNaN(c)?(n+="\\x",s+=2):(n+=String.fromCharCode(c),s+=4);break}case"u":{let a=e.slice(s+2,s+6),c=parseInt(a,16);Number.isNaN(c)?(n+="\\u",s+=2):(n+=String.fromCharCode(c),s+=6);break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let a="",c=s+1;for(;c<e.length&&c<s+4&&/[0-7]/.test(e[c]);)a+=e[c],c++;let l=parseInt(a,8);n+=String.fromCharCode(l),s=c;break}default:n+=i,s++}else n+=i,s++}return s<e.length&&e[s]==="'"&&s++,{part:v.literal(n),endIndex:s}}function Bs(t,e){let r=e.trim();return r===""?{type:"ArithmeticExpression",expression:{type:"ArithNumber",value:0}}:ue(t,r)}function gu(t){let e=[],r="",n=0;for(let s=0;s<t.length;s++){let i=t[s];i==="{"?(n++,r+=i):i==="}"?(n--,r+=i):i===","&&n===0?(e.push(r),r=""):r+=i}return e.push(r),e}function Su(t,e,r,n){let s=_s(t,e,r,"{","}");if(s===-1)return null;let i=e.slice(r+1,s),o=i.match(/^(-?\d+)\.\.(-?\d+)(?:\.\.(-?\d+))?$/);if(o)return{part:{type:"BraceExpansion",items:[{type:"Range",start:Number.parseInt(o[1],10),end:Number.parseInt(o[2],10),step:o[3]?Number.parseInt(o[3],10):void 0,startStr:o[1],endStr:o[2]}]},endIndex:s+1};let a=i.match(/^([a-zA-Z])\.\.([a-zA-Z])(?:\.\.(-?\d+))?$/);return a?{part:{type:"BraceExpansion",items:[{type:"Range",start:a[1],end:a[2],step:a[3]?Number.parseInt(a[3],10):void 0}]},endIndex:s+1}:i.includes(",")&&n?{part:{type:"BraceExpansion",items:gu(i).map(u=>({type:"Word",word:v.word(n(t,u,!1,!1,!1))}))},endIndex:s+1}:i.includes(",")?{part:{type:"BraceExpansion",items:gu(i).map(u=>({type:"Word",word:v.word([v.literal(u)])}))},endIndex:s+1}:null}function Au(t,e){let r="";for(let n of e.parts)switch(n.type){case"Literal":case"SingleQuoted":case"Escaped":r+=n.value;break;case"DoubleQuoted":r+='"';for(let s of n.parts)s.type==="Literal"||s.type==="Escaped"?r+=s.value:s.type==="ParameterExpansion"&&(r+=`\${${s.parameter}}`);r+='"';break;case"ParameterExpansion":r+=`\${${n.parameter}}`;break;case"Glob":r+=n.pattern;break;default:r+=n.type}return r}function Cu(t,e){return{[y.LESS]:"<",[y.GREAT]:">",[y.DGREAT]:">>",[y.LESSAND]:"<&",[y.GREATAND]:">&",[y.LESSGREAT]:"<>",[y.CLOBBER]:">|",[y.TLESS]:"<<<",[y.AND_GREAT]:"&>",[y.AND_DGREAT]:"&>>",[y.DLESS]:"<",[y.DLESSDASH]:"<"}[e]||">"}function sn(t){let e=t.current(),r=e.type;if(r===y.NUMBER){let n=t.peek(1);return e.end!==n.start?!1:yu.has(n.type)}return mu.has(r)}function on(t){let e=null;t.check(y.NUMBER)&&(e=Number.parseInt(t.advance().value,10));let r=t.advance(),n=Cu(t,r.type);if(r.type===y.DLESS||r.type===y.DLESSDASH)return ny(t,n,e,r.type===y.DLESSDASH);t.isWord()||t.error("Expected redirection target");let s=t.parseWord();return v.redirection(n,s,e)}function ny(t,e,r,n){t.isWord()||t.error("Expected here-document delimiter");let s=t.advance(),i=s.value,o=s.quoted||!1;(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1));let a=v.redirection(n?"<<-":"<<",v.hereDoc(i,v.word([]),n,o),r);return t.addPendingHeredoc(a,i,n,o),a}function Nu(t){let e=t.current().line,r=[],n=null,s=[],i=[];for(;t.check(y.ASSIGNMENT_WORD);)t.checkIterationLimit(),r.push(sy(t));for(;sn(t);)t.checkIterationLimit(),i.push(on(t));for(t.isWord()&&(n=t.parseWord());(!t.isStatementEnd()||t.check(y.RBRACE))&&!t.check(y.PIPE,y.PIPE_AMP);)if(t.checkIterationLimit(),sn(t))i.push(on(t));else if(t.check(y.RBRACE)){let a=t.advance();s.push(t.parseWordFromString(a.value,!1,!1))}else if(t.isWord())s.push(t.parseWord());else if(t.check(y.ASSIGNMENT_WORD)){let a=t.advance(),c=a.value,l=c.endsWith("="),u=c.endsWith("=(");if((l||u)&&(u||t.check(y.LPAREN))){let f=u?c.slice(0,-2):c.slice(0,-1);u||t.expect(y.LPAREN);let p=Ws(t);t.expect(y.RPAREN);let d=p.map(g=>Au(t,g)),h=`${f}=(${d.join(" ")})`;s.push(t.parseWordFromString(h,!1,!1))}else s.push(t.parseWordFromString(c,a.quoted,a.singleQuoted))}else if(t.check(y.LPAREN))t.error("syntax error near unexpected token `('");else break;let o=v.simpleCommand(n,s,r,i);return o.line=e,o}function sy(t){let e=t.expect(y.ASSIGNMENT_WORD),r=e.value,n=r.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);n||t.error(`Invalid assignment: ${r}`);let s=n[0],i,o=s.length;if(r[o]==="["){let f=0,p=o+1;for(;o<r.length;o++)if(r[o]==="[")f++;else if(r[o]==="]"&&(f--,f===0))break;f!==0&&t.error(`Invalid assignment: ${r}`),i=r.slice(p,o),o++}let a=r[o]==="+";a&&o++,r[o]!=="="&&t.error(`Invalid assignment: ${r}`),o++;let c=r.slice(o);if(c==="("){let f=Ws(t);t.expect(y.RPAREN);let p=i!==void 0?`${s}[${i}]`:s;return v.assignment(p,null,a,f)}if(c===""&&t.check(y.LPAREN)){let f=t.current();if(e.end===f.start){t.advance();let p=Ws(t);t.expect(y.RPAREN);let d=i!==void 0?`${s}[${i}]`:s;return v.assignment(d,null,a,p)}}let l=c?t.parseWordFromString(c,e.quoted,e.singleQuoted,!0):null,u=i!==void 0?`${s}[${i}]`:s;return v.assignment(u,l,a,null)}function Ws(t){let e=[];for(t.skipNewlines();!t.check(y.RPAREN,y.EOF);)t.checkIterationLimit(),t.isWord()?e.push(t.parseWord()):t.advance(),t.skipNewlines();return e}function Us(t){t.expect(y.IF);let e=[],r=t.parseCompoundList();t.expect(y.THEN);let n=t.parseCompoundList();if(n.length===0){let o=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${o}'`)}for(e.push({condition:r,body:n});t.check(y.ELIF);){t.advance();let o=t.parseCompoundList();t.expect(y.THEN);let a=t.parseCompoundList();if(a.length===0){let c=t.check(y.FI)?"fi":t.check(y.ELSE)?"else":t.check(y.ELIF)?"elif":"fi";t.error(`syntax error near unexpected token \`${c}'`)}e.push({condition:o,body:a})}let s=null;t.check(y.ELSE)&&(t.advance(),s=t.parseCompoundList(),s.length===0&&t.error("syntax error near unexpected token `fi'")),t.expect(y.FI);let i=t.parseOptionalRedirections();return v.ifNode(e,s,i)}function zs(t){if(t.expect(y.FOR),t.check(y.DPAREN_START))return oy(t);t.isWord()||t.error("Expected variable name in for loop");let r=t.advance().value,n=null;if(t.skipNewlines(),t.check(y.IN))for(t.advance(),n=[];!t.check(y.SEMICOLON,y.NEWLINE,y.DO,y.EOF)&&t.isWord();)n.push(t.parseWord());t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let s=t.parseCompoundList();t.expect(y.DONE);let i=t.parseOptionalRedirections();return v.forNode(r,n,s,i)}function oy(t){t.expect(y.DPAREN_START);let e=null,r=null,n=null,s=["","",""],i=0,o=0;for(;!t.check(y.DPAREN_END,y.EOF);){let l=t.advance();if(l.type===y.SEMICOLON&&o===0){if(i++,i>2)break}else l.value==="("&&o++,l.value===")"&&o--,s[i]+=l.value}t.expect(y.DPAREN_END),s[0].trim()&&(e=ue(t,s[0].trim())),s[1].trim()&&(r=ue(t,s[1].trim())),s[2].trim()&&(n=ue(t,s[2].trim())),t.skipNewlines(),t.check(y.SEMICOLON)&&t.advance(),t.skipNewlines(),t.expect(y.DO);let a=t.parseCompoundList();t.expect(y.DONE);let c=t.parseOptionalRedirections();return{type:"CStyleFor",init:e,condition:r,update:n,body:a,redirections:c}}function Hs(t){t.expect(y.WHILE);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return v.whileNode(e,r,n)}function js(t){t.expect(y.UNTIL);let e=t.parseCompoundList();t.expect(y.DO);let r=t.parseCompoundList();r.length===0&&t.error("syntax error near unexpected token `done'"),t.expect(y.DONE);let n=t.parseOptionalRedirections();return v.untilNode(e,r,n)}function Gs(t){t.expect(y.CASE),t.isWord()||t.error("Expected word after 'case'");let e=t.parseWord();t.skipNewlines(),t.expect(y.IN),t.skipNewlines();let r=[];for(;!t.check(y.ESAC,y.EOF);){t.checkIterationLimit();let s=t.getPos(),i=ay(t);if(i&&r.push(i),t.skipNewlines(),t.getPos()===s&&!i)break}t.expect(y.ESAC);let n=t.parseOptionalRedirections();return v.caseNode(e,r,n)}function ay(t){t.check(y.LPAREN)&&t.advance();let e=[];for(;t.isWord()&&(e.push(t.parseWord()),t.check(y.PIPE));)t.advance();if(e.length===0)return null;t.expect(y.RPAREN),t.skipNewlines();let r=[];for(;!t.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND,y.ESAC,y.EOF);){t.checkIterationLimit(),t.isWord()&&t.peek(1).type===y.RPAREN&&t.error("syntax error near unexpected token `)'"),t.check(y.LPAREN)&&t.peek(1).type===y.WORD&&t.error(`syntax error near unexpected token \`${t.peek(1).value}'`);let s=t.getPos(),i=t.parseStatement();if(i&&r.push(i),t.skipSeparators(!1),t.getPos()===s&&!i)break}let n=";;";return t.check(y.DSEMI)?(t.advance(),n=";;"):t.check(y.SEMI_AND)?(t.advance(),n=";&"):t.check(y.SEMI_SEMI_AND)&&(t.advance(),n=";;&"),v.caseItem(e,r,n)}function qs(t){t.peek(1).type,y.LPAREN,t.expect(y.LPAREN),t.check(y.LPAREN)&&t.advance();let e=t.parseCompoundList();t.expect(y.RPAREN);let r=t.parseOptionalRedirections();return v.subshell(e,r)}function Vs(t){t.expect(y.LBRACE);let e=t.parseCompoundList();t.expect(y.RBRACE);let r=t.parseOptionalRedirections();return v.group(e,r)}var ly=["-a","-b","-c","-d","-e","-f","-g","-h","-k","-p","-r","-s","-t","-u","-w","-x","-G","-L","-N","-O","-S","-z","-n","-o","-v","-R"],uy=["==","!=","=~","<",">","-eq","-ne","-lt","-le","-gt","-ge","-nt","-ot","-ef"];function Zs(t){return t.skipNewlines(),fy(t)}function fy(t){let e=Iu(t);for(t.skipNewlines();t.check(y.OR_OR);){t.advance(),t.skipNewlines();let r=Iu(t);e={type:"CondOr",left:e,right:r},t.skipNewlines()}return e}function Iu(t){let e=Ks(t);for(t.skipNewlines();t.check(y.AND_AND);){t.advance(),t.skipNewlines();let r=Ks(t);e={type:"CondAnd",left:e,right:r},t.skipNewlines()}return e}function Ks(t){return t.skipNewlines(),t.check(y.BANG)?(t.advance(),t.skipNewlines(),{type:"CondNot",operand:Ks(t)}):py(t)}function py(t){if(t.check(y.LPAREN)){t.advance();let e=Zs(t);return t.expect(y.RPAREN),{type:"CondGroup",expression:e}}if(t.isWord()){let e=t.current(),r=e.value;if(ly.includes(r)&&!e.quoted&&(t.advance(),t.check(y.DBRACK_END)&&t.error(`Expected operand after ${r}`),t.isWord())){let s=t.parseWord();return{type:"CondUnary",operator:r,operand:s}}let n=t.parseWord();if(t.isWord()&&uy.includes(t.current().value)){let s=t.advance().value,i=t.parseWord();return{type:"CondBinary",operator:s,left:n,right:i}}if(t.check(y.LESS)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"<",left:n,right:s}}if(t.check(y.GREAT)){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:">",left:n,right:s}}if(t.isWord()&&t.current().value==="="){t.advance();let s=t.parseWord();return{type:"CondBinary",operator:"==",left:n,right:s}}return{type:"CondWord",word:n}}t.error("Expected conditional expression")}function hy(t,e,r){let n=r+1,s=e[n];if("@*#?$!-0123456789".includes(s))return{part:v.parameterExpansion(s),endIndex:n+1};let i="";for(;n<e.length&&/[a-zA-Z0-9_]/.test(e[n]);)i+=e[n],n++;return{part:v.parameterExpansion(i),endIndex:n}}function my(t,e,r,n=!1){let s=r+2,i=!1;e[s]==="!"&&(i=!0,s++);let o=!1;e[s]==="#"&&!/[}:#%/^,]/.test(e[s+1]||"}")&&(o=!0,s++);let a="",c=e[s];if(/[@*#?$!-]/.test(c)&&!/[a-zA-Z0-9_]/.test(e[s+1]||""))a=c,s++;else for(;s<e.length&&/[a-zA-Z0-9_]/.test(e[s]);)a+=e[s],s++;if(e[s]==="["){let u=_s(t,e,s,"[","]");a+=e.slice(s,u+1),s=u+1}a===""&&!i&&!o&&e[s]!=="}"&&t.error(`\${${e[s]}}: bad substitution`);let l=null;if(i){let u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([@*])\]$/);if(u)l={type:"ArrayKeys",array:u[1],star:u[2]==="*"},a="";else if(e[s]==="*"||e[s]==="@"){let f=e[s];s++,l={type:"VarNamePrefix",prefix:a,star:f==="*"},a=""}else l={type:"Indirection"}}else if(o)if(e[s]===":")for(l={type:"LengthSliceError"};s<e.length&&e[s]!=="}";)s++;else e[s]!=="}"&&/[-+=?]/.test(e[s])?t.error(`\${#${a}${e.slice(s,e.indexOf("}",s))}}: bad substitution`):l={type:"Length"};if(!l&&s<e.length&&e[s]!=="}"){let u=yy(t,e,s,a,n);l=u.operation,s=u.endIndex}if(s<e.length&&e[s]!=="}"){let u=e[s];if(!/[:\-+=?#%/^,@[]/.test(u)){let f=s;for(;f<e.length&&e[f]!=="}";)f++;let p=e.slice(r,f+1);t.error(`\${${p.slice(2,-1)}}: bad substitution`)}}for(;s<e.length&&e[s]!=="}";)s++;return{part:v.parameterExpansion(a,l),endIndex:s+1}}function yy(t,e,r,n,s=!1){let i=r,o=e[i],a=e[i+1]||"";if(o===":"){let c=a;if("-=?+".includes(c)){i+=2;let w=gt(t,e,i),E=e.slice(i,w),b=nt(t,E,!1,!1,!0,!1,s),S=v.word(b.length>0?b:[v.literal("")]);if(c==="-")return{operation:{type:"DefaultValue",word:S,checkEmpty:!0},endIndex:w};if(c==="=")return{operation:{type:"AssignDefault",word:S,checkEmpty:!0},endIndex:w};if(c==="?")return{operation:{type:"ErrorIfUnset",word:S,checkEmpty:!0},endIndex:w};if(c==="+")return{operation:{type:"UseAlternative",word:S,checkEmpty:!0},endIndex:w}}i++;let l=gt(t,e,i),u=e.slice(i,l),f=-1,p=0,d=0;for(let m=0;m<u.length;m++){let w=u[m];if(w==="("||w==="[")p++;else if(w===")"||w==="]")p--;else if(w==="?"&&p===0)d++;else if(w===":"&&p===0)if(d>0)d--;else{f=m;break}}let h=f>=0?u.slice(0,f):u,g=f>=0?u.slice(f+1):null;return{operation:{type:"Substring",offset:Bs(t,h),length:g?Bs(t,g):null},endIndex:l}}if("-=?+".includes(o)){i++;let c=gt(t,e,i),l=e.slice(i,c),u=nt(t,l,!1,!1,!0,!1,s),f=v.word(u.length>0?u:[v.literal("")]);if(o==="-")return{operation:{type:"DefaultValue",word:f,checkEmpty:!1},endIndex:c};if(o==="=")return{operation:{type:"AssignDefault",word:f,checkEmpty:!1},endIndex:c};if(o==="?")return{operation:{type:"ErrorIfUnset",word:l?f:null,checkEmpty:!1},endIndex:c};if(o==="+")return{operation:{type:"UseAlternative",word:f,checkEmpty:!1},endIndex:c}}if(o==="#"||o==="%"){let c=a===o,l=o==="#"?"prefix":"suffix";i+=c?2:1;let u=gt(t,e,i),f=e.slice(i,u),p=nt(t,f,!1,!1,!1);return{operation:{type:"PatternRemoval",pattern:v.word(p.length>0?p:[v.literal("")]),side:l,greedy:c},endIndex:u}}if(o==="/"){let c=a==="/";i+=c?2:1;let l=null;e[i]==="#"?(l="start",i++):e[i]==="%"&&(l="end",i++);let u=wu(t,e,i),f=e.slice(i,u),p=nt(t,f,!1,!1,!1),d=v.word(p.length>0?p:[v.literal("")]),h=null,g=u;if(e[u]==="/"){let m=u+1,w=gt(t,e,m),E=e.slice(m,w),b=nt(t,E,!1,!1,!1);h=v.word(b.length>0?b:[v.literal("")]),g=w}return{operation:{type:"PatternReplacement",pattern:d,replacement:h,all:c,anchor:l},endIndex:g}}if(o==="^"||o===","){let c=a===o,l=o==="^"?"upper":"lower";i+=c?2:1;let u=gt(t,e,i),f=e.slice(i,u),p=f?v.word([v.literal(f)]):null;return{operation:{type:"CaseModification",direction:l,all:c,pattern:p},endIndex:u}}return o==="@"&&/[QPaAEK]/.test(a)?{operation:{type:"Transform",operator:a},endIndex:i+2}:{operation:null,endIndex:i}}function Qs(t,e,r,n=!1){let s=r+1;if(s>=e.length)return{part:v.literal("$"),endIndex:s};let i=e[s];if(i==="("&&e[s+1]==="(")return t.parseArithmeticExpansion(e,r);if(i==="["){let o=1,a=s+1;for(;a<e.length&&o>0;)e[a]==="["?o++:e[a]==="]"&&o--,o>0&&a++;if(o===0){let c=e.slice(s+1,a),l=ue(t,c);return{part:v.arithmeticExpansion(l),endIndex:a+1}}}return i==="("?t.parseCommandSubstitution(e,r):i==="{"?my(t,e,r,n):/[a-zA-Z_0-9@*#?$!-]/.test(i)?hy(t,e,r):{part:v.literal("$"),endIndex:s}}function gy(t,e){let r=[],n=0,s="",i=()=>{s&&(r.push(v.literal(s)),s="")};for(;n<e.length;){let o=e[n];if(o==="\\"&&n+1<e.length){let a=e[n+1];if(a==="$"||a==="`"){s+=a,n+=2;continue}s+=o,n++;continue}if(o==="$"){i();let{part:a,endIndex:c}=Qs(t,e,n,!0);a&&r.push(a),n=c;continue}if(o==="`"){i();let{part:a,endIndex:c}=t.parseBacktickSubstitution(e,n,!0);r.push(a),n=c;continue}s+=o,n++}return i(),r}function xy(t,e,r){let n=[],s=r,i="",o=()=>{i&&(n.push(v.literal(i)),i="")};for(;s<e.length&&e[s]!=='"';){let a=e[s];if(a==="\\"&&s+1<e.length){let c=e[s+1];if('"\\$`\n'.includes(c)){i+=c,s+=2;continue}i+=a,s++;continue}if(a==="$"){o();let{part:c,endIndex:l}=Qs(t,e,s,!0);c&&n.push(c),s=l;continue}if(a==="`"){o();let{part:c,endIndex:l}=t.parseBacktickSubstitution(e,s,!0);n.push(c),s=l;continue}i+=a,s++}return o(),{part:v.doubleQuoted(n),endIndex:s}}function nt(t,e,r=!1,n=!1,s=!1,i=!1,o=!1){if(n)return[v.singleQuoted(e)];if(r){let f=gy(t,e);return[v.doubleQuoted(f)]}let a=[],c=0,l="",u=()=>{l&&(a.push(v.literal(l)),l="")};for(;c<e.length;){let f=e[c];if(f==="\\"&&c+1<e.length){let p=e[c+1];(i?p==="$"||p==="`"||p==="\\"||p===`
526
556
  `:p==="$"||p==="`"||p==="\\"||p==='"'||p===`
527
- `)?l+=p:l+=`\\${p}`,c+=2;continue}if(f==="'"&&!o&&!i){u();let p=e.indexOf("'",c+1);if(p===-1){l+=e.slice(c);break}a.push(v.singleQuoted(e.slice(c+1,p))),c=p+1;continue}if(f==='"'&&!i){u();let{part:p,endIndex:d}=X0(t,e,c+1);a.push(p),c=d+1;continue}if(f==="$"&&e[c+1]==="'"){u();let{part:p,endIndex:d}=uu(t,e,c+2);a.push(p),c=d;continue}if(f==="$"){u();let{part:p,endIndex:d}=zs(t,e,c);p&&a.push(p),c=d;continue}if(f==="`"){u();let{part:p,endIndex:d}=t.parseBacktickSubstitution(e,c);a.push(p),c=d;continue}if(f==="~"){let p=c>0?e[c-1]:"";if(c===0||p==="="||s&&p===":"){let h=au(t,e,c),g=e[h];if(g===void 0||g==="/"||g===":"){u();let y=e.slice(c+1,h)||null;a.push({type:"TildeExpansion",user:y}),c=h;continue}}}if(f==="*"||f==="?"||f==="["){u();let{pattern:p,endIndex:d}=lu(t,e,c);a.push({type:"Glob",pattern:p}),c=d;continue}if(f==="{"&&!s){let p=fu(t,e,c,nt);if(p){u(),a.push(p.part),c=p.endIndex;continue}}l+=f,c++}return u(),a}var he=class t{tokens=[];pos=0;pendingHeredocs=[];parseIterations=0;checkIterationLimit(){if(this.parseIterations++,this.parseIterations>nu)throw new Qe("Maximum parse iterations exceeded (possible infinite loop)",this.current().line,this.current().column)}parse(e){if(e.length>$s)throw new Qe(`Input too large: ${e.length} bytes exceeds limit of ${$s}`,1,1);let r=new en(e);if(this.tokens=r.tokenize(),this.tokens.length>Os)throw new Qe(`Too many tokens: ${this.tokens.length} exceeds limit of ${Os}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseScript()}parseTokens(e){return this.tokens=e,this.pos=0,this.pendingHeredocs=[],this.parseScript()}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){let e=this.current();return this.pos<this.tokens.length-1&&this.pos++,e}getPos(){return this.pos}check(e,r,n,s,...i){let o=this.tokens[this.pos]?.type;return o===e||r!==void 0&&o===r||n!==void 0&&o===n||s!==void 0&&o===s?!0:i.length>0?i.includes(o):!1}expect(e,r){if(this.check(e))return this.advance();let n=this.current();throw new Qe(r||`Expected ${e}, got ${n.type}`,n.line,n.column,n)}error(e){let r=this.current();throw new Qe(e,r.line,r.column,r)}skipNewlines(){for(;this.check(m.NEWLINE,m.COMMENT);)this.check(m.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(e=!0){for(;;){if(this.check(m.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(m.SEMICOLON,m.COMMENT)){this.advance();continue}if(e&&this.check(m.DSEMI,m.SEMI_AND,m.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(e,r,n,s){this.pendingHeredocs.push({redirect:e,delimiter:r,stripTabs:n,quoted:s})}processHeredocs(){for(let e of this.pendingHeredocs)if(this.check(m.HEREDOC_CONTENT)){let r=this.advance(),n;e.quoted?n=v.word([v.literal(r.value)]):n=this.parseWordFromString(r.value,!1,!1,!1,!0),e.redirect.target=v.hereDoc(e.delimiter,n,e.stripTabs,e.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(m.EOF,m.NEWLINE,m.SEMICOLON,m.AMP,m.AND_AND,m.OR_OR,m.RPAREN,m.RBRACE,m.DSEMI,m.SEMI_AND,m.SEMI_SEMI_AND)}isCommandStart(){let e=this.current().type;return e===m.WORD||e===m.NAME||e===m.NUMBER||e===m.ASSIGNMENT_WORD||e===m.IF||e===m.FOR||e===m.WHILE||e===m.UNTIL||e===m.CASE||e===m.LPAREN||e===m.LBRACE||e===m.DPAREN_START||e===m.DBRACK_START||e===m.FUNCTION||e===m.BANG||e===m.IN||e===m.LESS||e===m.GREAT||e===m.DLESS||e===m.DGREAT||e===m.LESSAND||e===m.GREATAND||e===m.LESSGREAT||e===m.DLESSDASH||e===m.CLOBBER||e===m.TLESS||e===m.AND_GREAT||e===m.AND_DGREAT}parseScript(){let e=[],n=0;for(this.skipNewlines();!this.check(m.EOF);){n++,n>1e4&&this.error("Parser stuck: too many iterations (>10000)"),this.checkUnexpectedToken();let s=this.pos,i=this.parseStatement();i&&e.push(i),this.skipSeparators(!1),this.check(m.DSEMI,m.SEMI_AND,m.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===s&&!this.check(m.EOF)&&this.advance()}return v.script(e)}checkUnexpectedToken(){let e=this.current().type,r=this.current().value;(e===m.DO||e===m.DONE||e===m.THEN||e===m.ELSE||e===m.ELIF||e===m.FI||e===m.ESAC)&&this.error(`syntax error near unexpected token \`${r}'`),(e===m.RBRACE||e===m.RPAREN)&&this.error(`syntax error near unexpected token \`${r}'`),(e===m.DSEMI||e===m.SEMI_AND||e===m.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${r}'`),e===m.SEMICOLON&&this.error(`syntax error near unexpected token \`${r}'`)}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let e=[],r=[],n=!1,s=this.parsePipeline();for(e.push(s);this.check(m.AND_AND,m.OR_OR);){let i=this.advance();r.push(i.type===m.AND_AND?"&&":"||"),this.skipNewlines();let o=this.parsePipeline();e.push(o)}return this.check(m.AMP)&&(this.advance(),n=!0),v.statement(e,r,n)}parsePipeline(){let e=0;for(;this.check(m.BANG);)this.advance(),e++;let r=e%2===1,n=[],s=this.parseCommand();for(n.push(s);this.check(m.PIPE,m.PIPE_AMP);){let i=this.advance();this.skipNewlines();let o=this.parseCommand();i.type===m.PIPE_AMP&&o.type==="SimpleCommand"&&o.redirections.unshift(v.redirection(">&",v.word([v.literal("1")]),2)),n.push(o)}return v.pipeline(n,r)}parseCommand(){return this.check(m.IF)?Ds(this):this.check(m.FOR)?Ls(this):this.check(m.WHILE)?Ms(this):this.check(m.UNTIL)?_s(this):this.check(m.CASE)?Bs(this):this.check(m.LPAREN)?Ws(this):this.check(m.LBRACE)?Us(this):this.check(m.DPAREN_START)?this.parseArithmeticCommand():this.check(m.DBRACK_START)?this.parseConditionalCommand():this.check(m.FUNCTION)?this.parseFunctionDef():this.check(m.NAME,m.WORD)&&this.peek(1).type===m.LPAREN&&this.peek(2).type===m.RPAREN?this.parseFunctionDef():mu(this)}isWord(){let e=this.current().type;return e===m.WORD||e===m.NAME||e===m.NUMBER||e===m.IF||e===m.FOR||e===m.WHILE||e===m.UNTIL||e===m.CASE||e===m.FUNCTION||e===m.ELSE||e===m.ELIF||e===m.FI||e===m.THEN||e===m.DO||e===m.DONE||e===m.ESAC||e===m.IN||e===m.BANG}parseWord(){let e=this.advance();return this.parseWordFromString(e.value,e.quoted,e.singleQuoted)}parseWordFromString(e,r=!1,n=!1,s=!1,i=!1){let o=nt(this,e,r,n,s,i);return v.word(o)}parseCommandSubstitution(e,r){let n=r+2,s=1,i=n,o=!1,a=!1,c=0,l=!1,u="";for(;i<e.length&&s>0;){let h=e[i];o?h==="'"&&(o=!1):a?h==="\\"&&i+1<e.length?i++:h==='"'&&(a=!1):h==="'"?(o=!0,u=""):h==='"'?(a=!0,u=""):h==="\\"&&i+1<e.length?(i++,u=""):/[a-zA-Z_]/.test(h)?u+=h:(u==="case"?(c++,l=!1):u==="in"&&c>0?l=!0:u==="esac"&&c>0&&(c--,l=!1),u="",h==="("?i>0&&e[i-1]==="$"?s++:l||s++:h===")"?l?l=!1:s--:h===";"&&c>0&&i+1<e.length&&e[i+1]===";"&&(l=!0)),s>0&&i++}s>0&&this.error("unexpected EOF while looking for matching `)'");let f=e.slice(n,i),d=new t().parse(f);return{part:v.commandSubstitution(d,!1),endIndex:i+1}}parseBacktickSubstitution(e,r,n=!1){let i=r+1,o="";for(;i<e.length&&e[i]!=="`";)if(e[i]==="\\"){let l=e[i+1];l==="$"||l==="`"||l==="\\"||l===`
557
+ `)?l+=p:l+=`\\${p}`,c+=2;continue}if(f==="'"&&!o&&!i){u();let p=e.indexOf("'",c+1);if(p===-1){l+=e.slice(c);break}a.push(v.singleQuoted(e.slice(c+1,p))),c=p+1;continue}if(f==='"'&&!i){u();let{part:p,endIndex:d}=xy(t,e,c+1);a.push(p),c=d+1;continue}if(f==="$"&&e[c+1]==="'"){u();let{part:p,endIndex:d}=bu(t,e,c+2);a.push(p),c=d;continue}if(f==="$"){u();let{part:p,endIndex:d}=Qs(t,e,c);p&&a.push(p),c=d;continue}if(f==="`"){u();let{part:p,endIndex:d}=t.parseBacktickSubstitution(e,c);a.push(p),c=d;continue}if(f==="~"){let p=c>0?e[c-1]:"";if(c===0||p==="="||s&&p===":"){let h=xu(t,e,c),g=e[h];if(g===void 0||g==="/"||g===":"){u();let m=e.slice(c+1,h)||null;a.push({type:"TildeExpansion",user:m}),c=h;continue}}}if(f==="*"||f==="?"||f==="["){u();let{pattern:p,endIndex:d}=Eu(t,e,c);a.push({type:"Glob",pattern:p}),c=d;continue}if(f==="{"&&!s){let p=Su(t,e,c,nt);if(p){u(),a.push(p.part),c=p.endIndex;continue}}l+=f,c++}return u(),a}var he=class t{tokens=[];pos=0;pendingHeredocs=[];parseIterations=0;checkIterationLimit(){if(this.parseIterations++,this.parseIterations>hu)throw new Qe("Maximum parse iterations exceeded (possible infinite loop)",this.current().line,this.current().column)}parse(e){if(e.length>Ls)throw new Qe(`Input too large: ${e.length} bytes exceeds limit of ${Ls}`,1,1);let r=new nn(e);if(this.tokens=r.tokenize(),this.tokens.length>Ms)throw new Qe(`Too many tokens: ${this.tokens.length} exceeds limit of ${Ms}`,1,1);return this.pos=0,this.pendingHeredocs=[],this.parseIterations=0,this.parseScript()}parseTokens(e){return this.tokens=e,this.pos=0,this.pendingHeredocs=[],this.parseScript()}current(){return this.tokens[this.pos]||this.tokens[this.tokens.length-1]}peek(e=0){return this.tokens[this.pos+e]||this.tokens[this.tokens.length-1]}advance(){let e=this.current();return this.pos<this.tokens.length-1&&this.pos++,e}getPos(){return this.pos}check(e,r,n,s,...i){let o=this.tokens[this.pos]?.type;return o===e||r!==void 0&&o===r||n!==void 0&&o===n||s!==void 0&&o===s?!0:i.length>0?i.includes(o):!1}expect(e,r){if(this.check(e))return this.advance();let n=this.current();throw new Qe(r||`Expected ${e}, got ${n.type}`,n.line,n.column,n)}error(e){let r=this.current();throw new Qe(e,r.line,r.column,r)}skipNewlines(){for(;this.check(y.NEWLINE,y.COMMENT);)this.check(y.NEWLINE)?(this.advance(),this.processHeredocs()):this.advance()}skipSeparators(e=!0){for(;;){if(this.check(y.NEWLINE)){this.advance(),this.processHeredocs();continue}if(this.check(y.SEMICOLON,y.COMMENT)){this.advance();continue}if(e&&this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)){this.advance();continue}break}}addPendingHeredoc(e,r,n,s){this.pendingHeredocs.push({redirect:e,delimiter:r,stripTabs:n,quoted:s})}processHeredocs(){for(let e of this.pendingHeredocs)if(this.check(y.HEREDOC_CONTENT)){let r=this.advance(),n;e.quoted?n=v.word([v.literal(r.value)]):n=this.parseWordFromString(r.value,!1,!1,!1,!0),e.redirect.target=v.hereDoc(e.delimiter,n,e.stripTabs,e.quoted)}this.pendingHeredocs=[]}isStatementEnd(){return this.check(y.EOF,y.NEWLINE,y.SEMICOLON,y.AMP,y.AND_AND,y.OR_OR,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)}isCommandStart(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.ASSIGNMENT_WORD||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.LPAREN||e===y.LBRACE||e===y.DPAREN_START||e===y.DBRACK_START||e===y.FUNCTION||e===y.BANG||e===y.IN||e===y.LESS||e===y.GREAT||e===y.DLESS||e===y.DGREAT||e===y.LESSAND||e===y.GREATAND||e===y.LESSGREAT||e===y.DLESSDASH||e===y.CLOBBER||e===y.TLESS||e===y.AND_GREAT||e===y.AND_DGREAT}parseScript(){let e=[],n=0;for(this.skipNewlines();!this.check(y.EOF);){n++,n>1e4&&this.error("Parser stuck: too many iterations (>10000)"),this.checkUnexpectedToken();let s=this.pos,i=this.parseStatement();i&&e.push(i),this.skipSeparators(!1),this.check(y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${this.current().value}'`),this.pos===s&&!this.check(y.EOF)&&this.advance()}return v.script(e)}checkUnexpectedToken(){let e=this.current().type,r=this.current().value;(e===y.DO||e===y.DONE||e===y.THEN||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.ESAC)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.RBRACE||e===y.RPAREN)&&this.error(`syntax error near unexpected token \`${r}'`),(e===y.DSEMI||e===y.SEMI_AND||e===y.SEMI_SEMI_AND)&&this.error(`syntax error near unexpected token \`${r}'`),e===y.SEMICOLON&&this.error(`syntax error near unexpected token \`${r}'`)}parseStatement(){if(this.skipNewlines(),!this.isCommandStart())return null;let e=[],r=[],n=!1,s=this.parsePipeline();for(e.push(s);this.check(y.AND_AND,y.OR_OR);){let i=this.advance();r.push(i.type===y.AND_AND?"&&":"||"),this.skipNewlines();let o=this.parsePipeline();e.push(o)}return this.check(y.AMP)&&(this.advance(),n=!0),v.statement(e,r,n)}parsePipeline(){let e=0;for(;this.check(y.BANG);)this.advance(),e++;let r=e%2===1,n=[],s=this.parseCommand();for(n.push(s);this.check(y.PIPE,y.PIPE_AMP);){let i=this.advance();this.skipNewlines();let o=this.parseCommand();i.type===y.PIPE_AMP&&o.type==="SimpleCommand"&&o.redirections.unshift(v.redirection(">&",v.word([v.literal("1")]),2)),n.push(o)}return v.pipeline(n,r)}parseCommand(){return this.check(y.IF)?Us(this):this.check(y.FOR)?zs(this):this.check(y.WHILE)?Hs(this):this.check(y.UNTIL)?js(this):this.check(y.CASE)?Gs(this):this.check(y.LPAREN)?qs(this):this.check(y.LBRACE)?Vs(this):this.check(y.DPAREN_START)?this.parseArithmeticCommand():this.check(y.DBRACK_START)?this.parseConditionalCommand():this.check(y.FUNCTION)?this.parseFunctionDef():this.check(y.NAME,y.WORD)&&this.peek(1).type===y.LPAREN&&this.peek(2).type===y.RPAREN?this.parseFunctionDef():Nu(this)}isWord(){let e=this.current().type;return e===y.WORD||e===y.NAME||e===y.NUMBER||e===y.IF||e===y.FOR||e===y.WHILE||e===y.UNTIL||e===y.CASE||e===y.FUNCTION||e===y.ELSE||e===y.ELIF||e===y.FI||e===y.THEN||e===y.DO||e===y.DONE||e===y.ESAC||e===y.IN||e===y.BANG}parseWord(){let e=this.advance();return this.parseWordFromString(e.value,e.quoted,e.singleQuoted)}parseWordFromString(e,r=!1,n=!1,s=!1,i=!1){let o=nt(this,e,r,n,s,i);return v.word(o)}parseCommandSubstitution(e,r){let n=r+2,s=1,i=n,o=!1,a=!1,c=0,l=!1,u="";for(;i<e.length&&s>0;){let h=e[i];o?h==="'"&&(o=!1):a?h==="\\"&&i+1<e.length?i++:h==='"'&&(a=!1):h==="'"?(o=!0,u=""):h==='"'?(a=!0,u=""):h==="\\"&&i+1<e.length?(i++,u=""):/[a-zA-Z_]/.test(h)?u+=h:(u==="case"?(c++,l=!1):u==="in"&&c>0?l=!0:u==="esac"&&c>0&&(c--,l=!1),u="",h==="("?i>0&&e[i-1]==="$"?s++:l||s++:h===")"?l?l=!1:s--:h===";"&&c>0&&i+1<e.length&&e[i+1]===";"&&(l=!0)),s>0&&i++}s>0&&this.error("unexpected EOF while looking for matching `)'");let f=e.slice(n,i),d=new t().parse(f);return{part:v.commandSubstitution(d,!1),endIndex:i+1}}parseBacktickSubstitution(e,r,n=!1){let i=r+1,o="";for(;i<e.length&&e[i]!=="`";)if(e[i]==="\\"){let l=e[i+1];l==="$"||l==="`"||l==="\\"||l===`
528
558
  `||n&&l==='"'?(l!==`
529
- `&&(o+=l),i+=2):(o+=e[i],i++)}else o+=e[i],i++;i>=e.length&&this.error("unexpected EOF while looking for matching ``'");let c=new t().parse(o);return{part:v.commandSubstitution(c,!0),endIndex:i+1}}parseArithmeticExpansion(e,r){let n=r+3,s=1,i=0,o=n;for(;o<e.length-1&&s>0;)e[o]==="$"&&e[o+1]==="("?e[o+2]==="("?(s++,o+=3):(i++,o+=2):e[o]==="("&&e[o+1]==="("?(s++,o+=2):e[o]===")"&&e[o+1]===")"?i>0?(i--,o++):(s--,s>0&&(o+=2)):e[o]==="("?(i++,o++):(e[o]===")"&&i>0&&i--,o++);let a=e.slice(n,o),c=this.parseArithmeticExpression(a);return{part:v.arithmeticExpansion(c),endIndex:o+2}}parseArithmeticCommand(){this.expect(m.DPAREN_START);let e="",r=1,n=0,s=!1,i=!1;for(;r>0&&!this.check(m.EOF);){if(s){if(s=!1,n>0){n--,e+=")";continue}if(this.check(m.RPAREN)){r--,i=!0,this.advance();continue}if(this.check(m.DPAREN_END)){r--,i=!0;continue}e+=")";continue}this.check(m.DPAREN_START)?(r++,e+="((",this.advance()):this.check(m.DPAREN_END)?n>=2?(n-=2,e+="))",this.advance()):n===1?(n--,e+=")",s=!0,this.advance()):(r--,i=!0,r>0&&(e+="))"),this.advance()):this.check(m.LPAREN)?(n++,e+="(",this.advance()):this.check(m.RPAREN)?(n>0&&n--,e+=")",this.advance()):(e+=this.current().value,this.advance())}i||this.expect(m.DPAREN_END);let o=this.parseArithmeticExpression(e.trim()),a=this.parseOptionalRedirections();return v.arithmeticCommand(o,a)}parseConditionalCommand(){this.expect(m.DBRACK_START);let e=js(this);this.expect(m.DBRACK_END);let r=this.parseOptionalRedirections();return v.conditionalCommand(e,r)}parseFunctionDef(){let e;this.check(m.FUNCTION)?(this.advance(),e=this.expect(m.NAME,"Expected function name").value,this.check(m.LPAREN)&&(this.advance(),this.expect(m.RPAREN))):(e=this.advance().value,this.expect(m.LPAREN),this.expect(m.RPAREN)),this.skipNewlines();let r=this.parseCompoundCommandBody(),n=this.parseOptionalRedirections();return v.functionDef(e,r,n)}parseCompoundCommandBody(){if(this.check(m.LBRACE))return Us(this);if(this.check(m.LPAREN))return Ws(this);if(this.check(m.IF))return Ds(this);if(this.check(m.FOR))return Ls(this);if(this.check(m.WHILE))return Ms(this);if(this.check(m.UNTIL))return _s(this);if(this.check(m.CASE))return Bs(this);this.error("Expected compound command for function body")}parseCompoundList(){let e=[];for(this.skipNewlines();!this.check(m.EOF,m.FI,m.ELSE,m.ELIF,m.THEN,m.DO,m.DONE,m.ESAC,m.RPAREN,m.RBRACE,m.DSEMI,m.SEMI_AND,m.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,n=this.parseStatement();if(n&&e.push(n),this.skipSeparators(),this.pos===r&&!n)break}return e}parseOptionalRedirections(){let e=[];for(;tn(this);){this.checkIterationLimit();let r=this.pos;if(e.push(rn(this)),this.pos===r)break}return e}parseArithmeticExpression(e){return le(this,e)}};function st(t){return new he().parse(t)}J();var Ut=class{fs;cwd;constructor(e,r){this.fs=e,this.cwd=r}isGlobPattern(e){return e.includes("*")||e.includes("?")||/\[.*\]/.test(e)}async expandArgs(e,r){let n=[];for(let s=0;s<e.length;s++){let i=e[s];if((r?.[s]??!1)||!this.isGlobPattern(i))n.push(i);else{let a=await this.expand(i);a.length>0?n.push(...a):n.push(i)}}return n}async expand(e){return e.includes("**")?this.expandRecursive(e):this.expandSimple(e)}async expandSimple(e){let r=[],n=e.lastIndexOf("/"),s,i;n===-1?(s=this.cwd,i=e):(s=e.slice(0,n)||"/",i=e.slice(n+1));let o=this.fs.resolvePath(this.cwd,s);try{let a=await this.fs.readdir(o);for(let c of a)if(this.matchPattern(c,i)){let l=n===-1?c:`${s}/${c}`;r.push(l)}}catch{}return r.sort()}async expandRecursive(e){let r=[],n=e.indexOf("**"),s=e.slice(0,n).replace(/\/$/,"")||".",o=e.slice(n+2).replace(/^\//,"");return await this.walkDirectory(s,o,r),r.sort()}async walkDirectory(e,r,n){let s=this.fs.resolvePath(this.cwd,e);try{let i=await this.fs.readdir(s);for(let o of i){let a=e==="."?o:`${e}/${o}`,c=this.fs.resolvePath(this.cwd,a);try{(await this.fs.stat(c)).isDirectory?await this.walkDirectory(a,r,n):r&&this.matchPattern(o,r)&&n.push(a)}catch{}}}catch{}}matchPattern(e,r){return this.patternToRegex(r).test(e)}patternToRegex(e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1,o="[";for(i<e.length&&(e[i]==="^"||e[i]==="!")&&(o+="^",i++),i<e.length&&e[i]==="]"&&(o+="\\]",i++);i<e.length&&e[i]!=="]";){if(e[i]==="["&&i+1<e.length&&e[i+1]===":"){let a=e.indexOf(":]",i+2);if(a!==-1){let c=e.slice(i+2,a),l=this.posixClassToRegex(c);o+=l,i=a+2;continue}}if(e[i]==="\\"&&i+1<e.length){o+=`\\${e[i+1]}`,i+=2;continue}e[i]==="-"?o+="\\-":o+=e[i],i++}o+="]",r+=o,n=i}else if(s==="\\"&&n+1<e.length){let i=e[n+1];/[.+^${}()|\\*?[\]]/.test(i)?r+=`\\${i}`:r+=i,n++}else/[.+^${}()|]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r)}posixClassToRegex(e){return{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9a-fA-F"}[e]||""}};J();function Te(t){switch(t.type){case"ArithCommandSubst":return!0;case"ArithNested":return Te(t.expression);case"ArithBinary":return Te(t.left)||Te(t.right);case"ArithUnary":return Te(t.operand);case"ArithTernary":return Te(t.condition)||Te(t.consequent)||Te(t.alternate);case"ArithAssignment":return Te(t.value);case"ArithGroup":return Te(t.expression);case"ArithArrayElement":return t.index?Te(t.index):!1;case"ArithConcat":return t.parts.some(Te);default:return!1}}function Gs(t){let e=t.operation;return e?!!("word"in e&&e.word&&Xe(e.word)||e.type==="PatternReplacement"&&(e.pattern&&Xe(e.pattern)||e.replacement&&Xe(e.replacement))||e.type==="PatternRemoval"&&e.pattern&&Xe(e.pattern)):!1}function nn(t){switch(t.type){case"CommandSubstitution":return!0;case"ArithmeticExpansion":return Te(t.expression.expression);case"DoubleQuoted":return t.parts.some(nn);case"BraceExpansion":return t.items.some(e=>e.type==="Word"&&Xe(e.word));case"ParameterExpansion":return Gs(t);default:return!1}}function Xe(t){return t.parts.some(nn)}function qs(t){if(!t.operation)return!1;let e=t.operation,r;if((e.type==="DefaultValue"||e.type==="AssignDefault"||e.type==="UseAlternative"||e.type==="ErrorIfUnset")&&(r=e.word?.parts),!r)return!1;for(let n of r)if(n.type==="DoubleQuoted"||n.type==="SingleQuoted")return!0;return!1}function gu(t){let e=!1,r=!1,n=!1,s=!1,i=!1;for(let o of t){if((o.type==="SingleQuoted"||o.type==="DoubleQuoted")&&(e=!0,o.type==="DoubleQuoted"))for(let a of o.parts)a.type==="ParameterExpansion"&&a.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&!a.operation&&(s=!0);o.type==="CommandSubstitution"&&(r=!0),o.type==="ParameterExpansion"&&(i=!0,(o.parameter==="@"||o.parameter==="*")&&(n=!0),qs(o)&&(e=!0))}return{hasQuoted:e,hasCommandSub:r,hasArrayVar:n,hasArrayAtExpansion:s,hasParamExpansion:i}}function Y0(t,e,r,n,s){let i=r??1;i===0&&(i=1);let o=Math.abs(i),a=[],c=0;n?.match(/^-?0\d/)&&(c=Math.max(c,n.replace(/^-/,"").length)),s?.match(/^-?0\d/)&&(c=Math.max(c,s.replace(/^-/,"").length));let l=u=>{if(c>0){let f=u<0,p=String(Math.abs(u)).padStart(c,"0");return f?`-${p}`:p}return String(u)};if(t<=e)for(let u=t,f=0;u<=e&&f<1e4;u+=o,f++)a.push(l(u));else for(let u=t,f=0;u>=e&&f<1e4;u-=o,f++)a.push(l(u));return a}function ey(t,e,r){let n=r??1;n===0&&(n=1);let s=t.charCodeAt(0),i=e.charCodeAt(0),o=Math.abs(n),a=t>="A"&&t<="Z",c=t>="a"&&t<="z",l=e>="A"&&e<="Z",u=e>="a"&&e<="z";if(a&&u||c&&l)return null;let f=[];if(s<=i)for(let p=s,d=0;p<=i&&d<1e4;p+=o,d++)f.push(String.fromCharCode(p));else for(let p=s,d=0;p>=i&&d<1e4;p-=o,d++)f.push(String.fromCharCode(p));return f}function or(t,e,r,n,s){let i=r!==void 0?`..${r}`:"";return typeof t=="number"&&typeof e=="number"?{expanded:Y0(t,e,r,n,s),literal:`{${t}..${e}${i}}`}:typeof t=="string"&&typeof e=="string"?{expanded:ey(t,e,r),literal:`{${t}..${e}${i}}`}:{expanded:null,literal:`{${t}..${e}${i}}`}}function Ie(t,e){let r="",n=0;for(;n<t.length;){let s=t[n];if(s==="\\")if(n+1<t.length){let i=t[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n+=2}else r+="\\\\",n++;else if(s==="*")r+=e?".*":".*?",n++;else if(s==="?")r+=".",n++;else if(s==="["){let i=ty(t,n);if(i===-1)r+="\\[",n++;else{let o=t.slice(n+1,i);r+=ry(o),n=i+1}}else/[\^$.|+(){}]/.test(s)?(r+=`\\${s}`,n++):(r+=s,n++)}return r}function ty(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){if(t[r]==="\\"&&r+1<t.length){r+=2;continue}if(t[r]==="]")return r;if(t[r]==="'"){let n=t.indexOf("'",r+1);if(n!==-1){r=n+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let n=t.indexOf(":]",r+2);if(n!==-1){r=n+2;continue}}r++}return-1}function ry(t){let e="[",r=0;for((t[0]==="^"||t[0]==="!")&&(e+="^",r++);r<t.length;){if(t[r]==="'"){let s=t.indexOf("'",r+1);if(s!==-1){let i=t.slice(r+1,s);for(let o of i)o==="\\"?e+="\\\\":o==="]"?e+="\\]":o==="^"&&e==="["?e+="\\^":e+=o;r=s+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){let i=t.slice(r+2,s);e+=sy(i),r=s+2;continue}}let n=t[r];n==="\\"?r+1<t.length?(e+=`\\${t[r+1]}`,r+=2):(e+="\\\\",r++):n==="-"&&r>0&&r<t.length-1?(e+="-",r++):n==="^"&&r===0?(e+="^",r++):(n==="]"&&r===0?e+="\\]":e+=n,r++)}return e+="]",e}var ny={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9A-Fa-f"};function sy(t){return ny[t]??""}J();function ar(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)){let i=s.slice(r.length),o=Number.parseInt(i,10);!Number.isNaN(o)&&String(o)===i&&n.push(o)}return n.sort((s,i)=>s-i)}function cr(t,e){let r=`${e}_`;for(let n of Object.keys(t.state.env))n.startsWith(r)&&delete t.state.env[n]}function Vs(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)&&!s.includes("__")){let i=s.slice(r.length);n.push(i)}return n.sort()}function xu(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function sn(t){return t.IFS??`
530
- `}function wu(t){return t.IFS===""}function lr(t){return t.split("").map(e=>/[\\^$.*+?()[\]{}|-]/.test(e)?`\\${e}`:e===" "?"\\t":e===`
531
- `?"\\n":e).join("")}function iy(t,e){let r=lr(t);return new RegExp(`[${r}]+`,e)}function oy(t){let e=lr(t);return new RegExp(`^[${e}]+`)}function ay(t){let e=lr(t);return new RegExp(`[${e}]+$`)}function Ht(t){let e=t.IFS;return e===void 0?" ":e[0]||""}function Eu(t,e){if(e==="")return{words:[t],wordStarts:[0]};let r=[],n=[],s=iy(e,"g"),i=0,o=t.match(oy(e));o&&(i=o[0].length),s.lastIndex=i;let a=s.exec(t);for(;a!==null;)a.index>i&&(n.push(i),r.push(t.substring(i,a.index))),i=s.lastIndex,a=s.exec(t);return i<t.length&&(n.push(i),r.push(t.substring(i))),{words:r,wordStarts:n}}function bu(t,e){return e===""?t:t.replace(ay(e),"")}function ue(t,e){return t.state.associativeArrays?.has(e)?Vs(t,e).map(i=>[i,t.state.env[`${e}_${i}`]]):ar(t,e).map(s=>[s,t.state.env[`${e}_${s}`]])}function Su(t,e){return t.state.associativeArrays?.has(e)?Vs(t,e).length>0:ar(t,e).length>0}function Fe(t,e,r=!0,n=!1){switch(e){case"?":return String(t.state.lastExitCode);case"$":return String(process.pid);case"#":return t.state.env["#"]||"0";case"@":return t.state.env["@"]||"";case"_":return t.state.lastArg;case"-":{let o="";return t.state.options.errexit&&(o+="e"),t.state.options.nounset&&(o+="u"),t.state.options.verbose&&(o+="v"),t.state.options.xtrace&&(o+="x"),t.state.options.pipefail&&(o+="p"),o}case"*":{let o=Number.parseInt(t.state.env["#"]||"0",10);if(o===0)return"";let a=[];for(let c=1;c<=o;c++)a.push(t.state.env[String(c)]||"");return a.join(Ht(t.state.env))}case"0":return t.state.env[0]||"bash";case"PWD":return t.state.env.PWD!==void 0?t.state.env.PWD:"";case"OLDPWD":return t.state.env.OLDPWD!==void 0?t.state.env.OLDPWD:"";case"PPID":{let{ppid:o}=ir();return String(o)}case"UID":{let{uid:o}=ir();return String(o)}case"EUID":return String(process.geteuid?.()??ir().uid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-t.state.startTime)/1e3));case"BASH_VERSION":return Hl;case"!":return String(t.state.lastBackgroundPid);case"LINENO":return String(t.state.currentLine)}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(e))throw new Ke(`\${${e}}`);let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let o=s[1],a=s[2];if(a==="@"||a==="*"){let f=ue(t,o);if(f.length>0)return f.map(([,d])=>d).join(" ");let p=t.state.env[o];return p!==void 0?p:""}if(t.state.associativeArrays?.has(o)){let f=xu(a),p=t.state.env[`${o}_${f}`];if(p===void 0&&r&&t.state.options.nounset)throw new Pe(`${o}[${a}]`);return p||""}let l;if(/^-?\d+$/.test(a))l=Number.parseInt(a,10);else try{let f=new he,p=le(f,a);l=K(t,p.expression)}catch{let f=t.state.env[a];l=f?Number.parseInt(f,10):0,Number.isNaN(l)&&(l=0)}if(l<0){let f=ue(t,o);if(f.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
559
+ `&&(o+=l),i+=2):(o+=e[i],i++)}else o+=e[i],i++;i>=e.length&&this.error("unexpected EOF while looking for matching ``'");let c=new t().parse(o);return{part:v.commandSubstitution(c,!0),endIndex:i+1}}parseArithmeticExpansion(e,r){let n=r+3,s=1,i=0,o=n;for(;o<e.length-1&&s>0;)e[o]==="$"&&e[o+1]==="("?e[o+2]==="("?(s++,o+=3):(i++,o+=2):e[o]==="("&&e[o+1]==="("?(s++,o+=2):e[o]===")"&&e[o+1]===")"?i>0?(i--,o++):(s--,s>0&&(o+=2)):e[o]==="("?(i++,o++):(e[o]===")"&&i>0&&i--,o++);let a=e.slice(n,o),c=this.parseArithmeticExpression(a);return{part:v.arithmeticExpansion(c),endIndex:o+2}}parseArithmeticCommand(){this.expect(y.DPAREN_START);let e="",r=1,n=0,s=!1,i=!1;for(;r>0&&!this.check(y.EOF);){if(s){if(s=!1,n>0){n--,e+=")";continue}if(this.check(y.RPAREN)){r--,i=!0,this.advance();continue}if(this.check(y.DPAREN_END)){r--,i=!0;continue}e+=")";continue}this.check(y.DPAREN_START)?(r++,e+="((",this.advance()):this.check(y.DPAREN_END)?n>=2?(n-=2,e+="))",this.advance()):n===1?(n--,e+=")",s=!0,this.advance()):(r--,i=!0,r>0&&(e+="))"),this.advance()):this.check(y.LPAREN)?(n++,e+="(",this.advance()):this.check(y.RPAREN)?(n>0&&n--,e+=")",this.advance()):(e+=this.current().value,this.advance())}i||this.expect(y.DPAREN_END);let o=this.parseArithmeticExpression(e.trim()),a=this.parseOptionalRedirections();return v.arithmeticCommand(o,a)}parseConditionalCommand(){this.expect(y.DBRACK_START);let e=Zs(this);this.expect(y.DBRACK_END);let r=this.parseOptionalRedirections();return v.conditionalCommand(e,r)}parseFunctionDef(){let e;this.check(y.FUNCTION)?(this.advance(),e=this.expect(y.NAME,"Expected function name").value,this.check(y.LPAREN)&&(this.advance(),this.expect(y.RPAREN))):(e=this.advance().value,this.expect(y.LPAREN),this.expect(y.RPAREN)),this.skipNewlines();let r=this.parseCompoundCommandBody(),n=this.parseOptionalRedirections();return v.functionDef(e,r,n)}parseCompoundCommandBody(){if(this.check(y.LBRACE))return Vs(this);if(this.check(y.LPAREN))return qs(this);if(this.check(y.IF))return Us(this);if(this.check(y.FOR))return zs(this);if(this.check(y.WHILE))return Hs(this);if(this.check(y.UNTIL))return js(this);if(this.check(y.CASE))return Gs(this);this.error("Expected compound command for function body")}parseCompoundList(){let e=[];for(this.skipNewlines();!this.check(y.EOF,y.FI,y.ELSE,y.ELIF,y.THEN,y.DO,y.DONE,y.ESAC,y.RPAREN,y.RBRACE,y.DSEMI,y.SEMI_AND,y.SEMI_SEMI_AND)&&this.isCommandStart();){this.checkIterationLimit();let r=this.pos,n=this.parseStatement();if(n&&e.push(n),this.skipSeparators(),this.pos===r&&!n)break}return e}parseOptionalRedirections(){let e=[];for(;sn(this);){this.checkIterationLimit();let r=this.pos;if(e.push(on(this)),this.pos===r)break}return e}parseArithmeticExpression(e){return ue(this,e)}};function st(t){return new he().parse(t)}J();var Ut=class{fs;cwd;constructor(e,r){this.fs=e,this.cwd=r}isGlobPattern(e){return e.includes("*")||e.includes("?")||/\[.*\]/.test(e)}async expandArgs(e,r){let n=[];for(let s=0;s<e.length;s++){let i=e[s];if((r?.[s]??!1)||!this.isGlobPattern(i))n.push(i);else{let a=await this.expand(i);a.length>0?n.push(...a):n.push(i)}}return n}async expand(e){return e.includes("**")?this.expandRecursive(e):this.expandSimple(e)}async expandSimple(e){let r=[],n=e.lastIndexOf("/"),s,i;n===-1?(s=this.cwd,i=e):(s=e.slice(0,n)||"/",i=e.slice(n+1));let o=this.fs.resolvePath(this.cwd,s);try{let a=await this.fs.readdir(o);for(let c of a)if(this.matchPattern(c,i)){let l=n===-1?c:`${s}/${c}`;r.push(l)}}catch{}return r.sort()}async expandRecursive(e){let r=[],n=e.indexOf("**"),s=e.slice(0,n).replace(/\/$/,"")||".",o=e.slice(n+2).replace(/^\//,"");return await this.walkDirectory(s,o,r),r.sort()}async walkDirectory(e,r,n){let s=this.fs.resolvePath(this.cwd,e);try{let i=await this.fs.readdir(s);for(let o of i){let a=e==="."?o:`${e}/${o}`,c=this.fs.resolvePath(this.cwd,a);try{(await this.fs.stat(c)).isDirectory?await this.walkDirectory(a,r,n):r&&this.matchPattern(o,r)&&n.push(a)}catch{}}}catch{}}matchPattern(e,r){return this.patternToRegex(r).test(e)}patternToRegex(e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=n+1,o="[";for(i<e.length&&(e[i]==="^"||e[i]==="!")&&(o+="^",i++),i<e.length&&e[i]==="]"&&(o+="\\]",i++);i<e.length&&e[i]!=="]";){if(e[i]==="["&&i+1<e.length&&e[i+1]===":"){let a=e.indexOf(":]",i+2);if(a!==-1){let c=e.slice(i+2,a),l=this.posixClassToRegex(c);o+=l,i=a+2;continue}}if(e[i]==="\\"&&i+1<e.length){o+=`\\${e[i+1]}`,i+=2;continue}e[i]==="-"?o+="\\-":o+=e[i],i++}o+="]",r+=o,n=i}else if(s==="\\"&&n+1<e.length){let i=e[n+1];/[.+^${}()|\\*?[\]]/.test(i)?r+=`\\${i}`:r+=i,n++}else/[.+^${}()|]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r)}posixClassToRegex(e){return{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9a-fA-F"}[e]||""}};J();function Te(t){switch(t.type){case"ArithCommandSubst":return!0;case"ArithNested":return Te(t.expression);case"ArithBinary":return Te(t.left)||Te(t.right);case"ArithUnary":return Te(t.operand);case"ArithTernary":return Te(t.condition)||Te(t.consequent)||Te(t.alternate);case"ArithAssignment":return Te(t.value);case"ArithGroup":return Te(t.expression);case"ArithArrayElement":return t.index?Te(t.index):!1;case"ArithConcat":return t.parts.some(Te);default:return!1}}function Xs(t){let e=t.operation;return e?!!("word"in e&&e.word&&Xe(e.word)||e.type==="PatternReplacement"&&(e.pattern&&Xe(e.pattern)||e.replacement&&Xe(e.replacement))||e.type==="PatternRemoval"&&e.pattern&&Xe(e.pattern)):!1}function an(t){switch(t.type){case"CommandSubstitution":return!0;case"ArithmeticExpansion":return Te(t.expression.expression);case"DoubleQuoted":return t.parts.some(an);case"BraceExpansion":return t.items.some(e=>e.type==="Word"&&Xe(e.word));case"ParameterExpansion":return Xs(t);default:return!1}}function Xe(t){return t.parts.some(an)}function Js(t){if(!t.operation)return!1;let e=t.operation,r;if((e.type==="DefaultValue"||e.type==="AssignDefault"||e.type==="UseAlternative"||e.type==="ErrorIfUnset")&&(r=e.word?.parts),!r)return!1;for(let n of r)if(n.type==="DoubleQuoted"||n.type==="SingleQuoted")return!0;return!1}function vu(t){let e=!1,r=!1,n=!1,s=!1,i=!1;for(let o of t){if((o.type==="SingleQuoted"||o.type==="DoubleQuoted")&&(e=!0,o.type==="DoubleQuoted"))for(let a of o.parts)a.type==="ParameterExpansion"&&a.parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/)&&!a.operation&&(s=!0);o.type==="CommandSubstitution"&&(r=!0),o.type==="ParameterExpansion"&&(i=!0,(o.parameter==="@"||o.parameter==="*")&&(n=!0),Js(o)&&(e=!0))}return{hasQuoted:e,hasCommandSub:r,hasArrayVar:n,hasArrayAtExpansion:s,hasParamExpansion:i}}function Ey(t,e,r,n,s){let i=r??1;i===0&&(i=1);let o=Math.abs(i),a=[],c=0;n?.match(/^-?0\d/)&&(c=Math.max(c,n.replace(/^-/,"").length)),s?.match(/^-?0\d/)&&(c=Math.max(c,s.replace(/^-/,"").length));let l=u=>{if(c>0){let f=u<0,p=String(Math.abs(u)).padStart(c,"0");return f?`-${p}`:p}return String(u)};if(t<=e)for(let u=t,f=0;u<=e&&f<1e4;u+=o,f++)a.push(l(u));else for(let u=t,f=0;u>=e&&f<1e4;u-=o,f++)a.push(l(u));return a}function by(t,e,r){let n=r??1;n===0&&(n=1);let s=t.charCodeAt(0),i=e.charCodeAt(0),o=Math.abs(n),a=t>="A"&&t<="Z",c=t>="a"&&t<="z",l=e>="A"&&e<="Z",u=e>="a"&&e<="z";if(a&&u||c&&l)return null;let f=[];if(s<=i)for(let p=s,d=0;p<=i&&d<1e4;p+=o,d++)f.push(String.fromCharCode(p));else for(let p=s,d=0;p>=i&&d<1e4;p-=o,d++)f.push(String.fromCharCode(p));return f}function or(t,e,r,n,s){let i=r!==void 0?`..${r}`:"";return typeof t=="number"&&typeof e=="number"?{expanded:Ey(t,e,r,n,s),literal:`{${t}..${e}${i}}`}:typeof t=="string"&&typeof e=="string"?{expanded:by(t,e,r),literal:`{${t}..${e}${i}}`}:{expanded:null,literal:`{${t}..${e}${i}}`}}function Ie(t,e){let r="",n=0;for(;n<t.length;){let s=t[n];if(s==="\\")if(n+1<t.length){let i=t[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n+=2}else r+="\\\\",n++;else if(s==="*")r+=e?".*":".*?",n++;else if(s==="?")r+=".",n++;else if(s==="["){let i=Sy(t,n);if(i===-1)r+="\\[",n++;else{let o=t.slice(n+1,i);r+=Ay(o),n=i+1}}else/[\^$.|+(){}]/.test(s)?(r+=`\\${s}`,n++):(r+=s,n++)}return r}function Sy(t,e){let r=e+1;for(r<t.length&&t[r]==="^"&&r++,r<t.length&&t[r]==="]"&&r++;r<t.length;){if(t[r]==="\\"&&r+1<t.length){r+=2;continue}if(t[r]==="]")return r;if(t[r]==="'"){let n=t.indexOf("'",r+1);if(n!==-1){r=n+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let n=t.indexOf(":]",r+2);if(n!==-1){r=n+2;continue}}r++}return-1}function Ay(t){let e="[",r=0;for((t[0]==="^"||t[0]==="!")&&(e+="^",r++);r<t.length;){if(t[r]==="'"){let s=t.indexOf("'",r+1);if(s!==-1){let i=t.slice(r+1,s);for(let o of i)o==="\\"?e+="\\\\":o==="]"?e+="\\]":o==="^"&&e==="["?e+="\\^":e+=o;r=s+1;continue}}if(t[r]==="["&&r+1<t.length&&t[r+1]===":"){let s=t.indexOf(":]",r+2);if(s!==-1){let i=t.slice(r+2,s);e+=ky(i),r=s+2;continue}}let n=t[r];n==="\\"?r+1<t.length?(e+=`\\${t[r+1]}`,r+=2):(e+="\\\\",r++):n==="-"&&r>0&&r<t.length-1?(e+="-",r++):n==="^"&&r===0?(e+="^",r++):(n==="]"&&r===0?e+="\\]":e+=n,r++)}return e+="]",e}var Cy={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:" \\t\\n\\r\\f\\v",upper:"A-Z",word:"a-zA-Z0-9_",xdigit:"0-9A-Fa-f"};function ky(t){return Cy[t]??""}J();function ar(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)){let i=s.slice(r.length),o=Number.parseInt(i,10);!Number.isNaN(o)&&String(o)===i&&n.push(o)}return n.sort((s,i)=>s-i)}function cr(t,e){let r=`${e}_`;for(let n of Object.keys(t.state.env))n.startsWith(r)&&delete t.state.env[n]}function Ys(t,e){let r=`${e}_`,n=[];for(let s of Object.keys(t.state.env))if(s.startsWith(r)&&!s.includes("__")){let i=s.slice(r.length);n.push(i)}return n.sort()}function Ru(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function cn(t){return t.IFS??`
560
+ `}function $u(t){return t.IFS===""}function lr(t){return t.split("").map(e=>/[\\^$.*+?()[\]{}|-]/.test(e)?`\\${e}`:e===" "?"\\t":e===`
561
+ `?"\\n":e).join("")}function Ny(t,e){let r=lr(t);return new RegExp(`[${r}]+`,e)}function Iy(t){let e=lr(t);return new RegExp(`^[${e}]+`)}function vy(t){let e=lr(t);return new RegExp(`[${e}]+$`)}function zt(t){let e=t.IFS;return e===void 0?" ":e[0]||""}function Ou(t,e){if(e==="")return{words:[t],wordStarts:[0]};let r=[],n=[],s=Ny(e,"g"),i=0,o=t.match(Iy(e));o&&(i=o[0].length),s.lastIndex=i;let a=s.exec(t);for(;a!==null;)a.index>i&&(n.push(i),r.push(t.substring(i,a.index))),i=s.lastIndex,a=s.exec(t);return i<t.length&&(n.push(i),r.push(t.substring(i))),{words:r,wordStarts:n}}function Pu(t,e){return e===""?t:t.replace(vy(e),"")}function fe(t,e){return t.state.associativeArrays?.has(e)?Ys(t,e).map(i=>[i,t.state.env[`${e}_${i}`]]):ar(t,e).map(s=>[s,t.state.env[`${e}_${s}`]])}function Tu(t,e){return t.state.associativeArrays?.has(e)?Ys(t,e).length>0:ar(t,e).length>0}function Fe(t,e,r=!0,n=!1){switch(e){case"?":return String(t.state.lastExitCode);case"$":return String(process.pid);case"#":return t.state.env["#"]||"0";case"@":return t.state.env["@"]||"";case"_":return t.state.lastArg;case"-":{let o="";return t.state.options.errexit&&(o+="e"),t.state.options.nounset&&(o+="u"),t.state.options.verbose&&(o+="v"),t.state.options.xtrace&&(o+="x"),t.state.options.pipefail&&(o+="p"),o}case"*":{let o=Number.parseInt(t.state.env["#"]||"0",10);if(o===0)return"";let a=[];for(let c=1;c<=o;c++)a.push(t.state.env[String(c)]||"");return a.join(zt(t.state.env))}case"0":return t.state.env[0]||"bash";case"PWD":return t.state.env.PWD!==void 0?t.state.env.PWD:"";case"OLDPWD":return t.state.env.OLDPWD!==void 0?t.state.env.OLDPWD:"";case"PPID":{let{ppid:o}=ir();return String(o)}case"UID":{let{uid:o}=ir();return String(o)}case"EUID":return String(process.geteuid?.()??ir().uid);case"RANDOM":return String(Math.floor(Math.random()*32768));case"SECONDS":return String(Math.floor((Date.now()-t.state.startTime)/1e3));case"BASH_VERSION":return Yl;case"!":return String(t.state.lastBackgroundPid);case"LINENO":return String(t.state.currentLine)}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[\]$/.test(e))throw new Ke(`\${${e}}`);let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let o=s[1],a=s[2];if(a==="@"||a==="*"){let f=fe(t,o);if(f.length>0)return f.map(([,d])=>d).join(" ");let p=t.state.env[o];return p!==void 0?p:""}if(t.state.associativeArrays?.has(o)){let f=Ru(a),p=t.state.env[`${o}_${f}`];if(p===void 0&&r&&t.state.options.nounset)throw new Pe(`${o}[${a}]`);return p||""}let l;if(/^-?\d+$/.test(a))l=Number.parseInt(a,10);else try{let f=new he,p=ue(f,a);l=K(t,p.expression)}catch{let f=t.state.env[a];l=f?Number.parseInt(f,10):0,Number.isNaN(l)&&(l=0)}if(l<0){let f=fe(t,o);if(f.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
532
562
  `,"";let d=Math.max(...f.map(([g])=>typeof g=="number"?g:0))+1+l;return d<0?(t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${o}: bad array subscript
533
- `,""):t.state.env[`${o}_${d}`]||""}let u=t.state.env[`${o}_${l}`];if(u===void 0&&r&&t.state.options.nounset)throw new Pe(`${o}[${l}]`);return u||""}if(/^[1-9][0-9]*$/.test(e)){let o=t.state.env[e];if(o===void 0&&r&&t.state.options.nounset)throw new Pe(e);return o||""}let i=t.state.env[e];if(i===void 0&&r&&t.state.options.nounset)throw new Pe(e);return i||""}async function Au(t,e,r,n,s){let i=[];for(let u of e){let f=u.type==="ParameterExpansion"||u.type==="CommandSubstitution"||u.type==="ArithmeticExpansion";if(u.type==="ParameterExpansion"&&qs(u)){let p=await s(t,u);i.push({value:p,splittable:!1})}else{let p=await s(t,u);i.push({value:p,splittable:f})}}if(!i.some(u=>u.splittable&&new RegExp(`[${n}]`).test(u.value))){let u=i.map(f=>f.value).join("");return u?[u]:[]}let a=new RegExp(`[${n}]+`),c=[],l="";for(let u=0;u<i.length;u++){let f=i[u];if(!f.splittable)l+=f.value;else{let p=f.value.split(a);for(let d=0;d<p.length;d++)d===0?l+=p[d]:(l!==""&&c.push(l),l=p[d])}}return l!==""&&c.push(l),c}function ve(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cu(t){switch(t.type){case"Literal":return t.value;case"SingleQuoted":return t.value;case"Escaped":return t.value;default:return null}}function ku(t){switch(t.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return t.value==="";default:return!1}}function Ks(t){if(t==="")return"''";if(!/['\\\n\r\t\x00-\x1f\x7f]/.test(t))return`'${t}'`;let e="$'";for(let r of t)switch(r){case"'":e+="\\'";break;case"\\":e+="\\\\";break;case`
534
- `:e+="\\n";break;case"\r":e+="\\r";break;case" ":e+="\\t";break;default:{let n=r.charCodeAt(0);n<32||n===127?e+=`\\x${n.toString(16).padStart(2,"0")}`:e+=r}}return`${e}'`}function xt(t,e,r=!1){return e.map(n=>Je(t,n,r)).join("")}async function wt(t,e,r=!1){let n=[];for(let s of e)n.push(await De(t,s));return n.join("")}function cy(t){return ku(t)}function Nu(t){if(t.parts.length===0)return!0;for(let e of t.parts)if(!cy(e))return!1;return!0}function Iu(t){return t.replace(/([*?[\]\\])/g,"\\$1")}function vu(t,e,r=!1){let n=Cu(e);if(n!==null)return n;switch(e.type){case"ParameterExpansion":return Tu(t,e,r);case"TildeExpansion":return r?e.user===null?"~":`~${e.user}`:e.user===null?t.state.env.HOME||"/home/user":e.user==="root"?"/root":`~${e.user}`;case"Glob":return e.pattern;default:return null}}function Je(t,e,r=!1){let n=vu(t,e,r);if(n!==null)return n;switch(e.type){case"DoubleQuoted":{let s=[];for(let i of e.parts)s.push(Je(t,i,!0));return s.join("")}case"ArithmeticExpansion":return String(K(t,e.expression.expression));case"BraceExpansion":{let s=[];for(let i of e.items)if(i.type==="Range"){let o=or(i.start,i.end,i.step,i.startStr,i.endStr);if(o.expanded)s.push(...o.expanded);else return o.literal}else s.push(on(t,i.word));return s.join(" ")}default:return""}}function on(t,e){let r=e.parts,n=r.length;if(n===1)return Je(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(Je(t,r[i]));return s.join("")}async function Y(t,e){return Xe(e)?Pu(t,e):on(t,e)}function an(t){for(let e of t)if(e.type==="BraceExpansion"||e.type==="DoubleQuoted"&&an(e.parts))return!0;return!1}function ly(t){for(let e of t){if(e.type==="BraceExpansion"){for(let r of e.items)if(r.type==="Word"&&Xe(r.word))return!0}if(nn(e))return!0}return!1}var Ru=1e4,jt=1e5;function $u(t,e,r={count:0}){if(r.count>jt)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=or(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=$u(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Ru||r.count>jt)return n;let l=[];for(let u of n)for(let f of i){if(r.count++,r.count>jt)return l.length>0?l:n;l.push([...u,f])}n=l}else{let i=Je(t,s);for(let o of n)r.count++,o.push(i)}return n}function uy(t,e){let r=e.parts;return an(r)?$u(t,r).map(s=>s.join("")):[on(t,e)]}async function Ou(t,e,r={count:0}){if(r.count>jt)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=or(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=await Ou(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Ru||r.count>jt)return n;let l=[];for(let u of n)for(let f of i){if(r.count++,r.count>jt)return l.length>0?l:n;l.push([...u,f])}n=l}else{let i=await De(t,s);for(let o of n)r.count++,o.push(i)}return n}async function fy(t,e){let r=e.parts;return an(r)?(await Ou(t,r)).map(s=>s.join("")):[await Y(t,e)]}async function ur(t,e){let r=e.parts,{hasQuoted:n,hasCommandSub:s,hasArrayVar:i,hasArrayAtExpansion:o,hasParamExpansion:a}=gu(r),l=an(r)?ly(r)?await fy(t,e):uy(t,e):null;if(l&&l.length>1){let p=[];for(let d of l)if(!n&&/[*?[]/.test(d)){let g=await new Ut(t.fs,t.state.cwd).expand(d);g.length>0?p.push(...g):p.push(d)}else p.push(d);return{values:p,quoted:!1}}if(o&&r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0];if(p.parts.length===1&&p.parts[0].type==="ParameterExpansion"){let h=p.parts[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@]\]$/);if(h){let g=h[1],y=ue(t,g);if(y.length>0)return{values:y.map(([,E])=>E),quoted:!0};let w=t.state.env[g];return w!==void 0?{values:[w],quoted:!0}:{values:[],quoted:!0}}}}if(r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0],d=-1,h=!1;for(let g=0;g<p.parts.length;g++){let y=p.parts[g];if(y.type==="ParameterExpansion"&&(y.parameter==="@"||y.parameter==="*")){d=g,h=y.parameter==="*";break}}if(d!==-1){let g=p.parts[d];g.type==="ParameterExpansion"&&g.operation&&(d=-1)}if(d!==-1){let g=Number.parseInt(t.state.env["#"]||"0",10),y="";for(let S=0;S<d;S++)y+=await De(t,p.parts[S]);let w="";for(let S=d+1;S<p.parts.length;S++)w+=await De(t,p.parts[S]);if(g===0){if(h)return{values:[y+w],quoted:!0};let S=y+w;return{values:S?[S]:[],quoted:!0}}let E=[];for(let S=1;S<=g;S++)E.push(t.state.env[String(S)]||"");if(h){let S=Ht(t.state.env);return{values:[y+E.join(S)+w],quoted:!0}}return E.length===1?{values:[y+E[0]+w],quoted:!0}:{values:[y+E[0],...E.slice(1,-1),E[E.length-1]+w],quoted:!0}}}if((s||i||a)&&!wu(t.state.env)){let p=sn(t.state.env),d=lr(p),h=await Au(t,r,p,d,De),g=[],y=new Ut(t.fs,t.state.cwd);for(let w of h)if(/[*?[]/.test(w)){let E=await y.expand(w);E.length>0?g.push(...E):g.push(w)}else g.push(w);return{values:g,quoted:!1}}let f=Xe(e)?await Pu(t,e):on(t,e);if(!n&&/[*?[]/.test(f)){let d=await new Ut(t.fs,t.state.cwd).expand(f);if(d.length>0)return{values:d,quoted:!1}}return f===""&&!n?{values:[],quoted:!1}:{values:[f],quoted:n}}async function Pu(t,e){let r=e.parts,n=r.length;if(n===1)return De(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(await De(t,r[i]));return s.join("")}async function De(t,e){if(e.type==="ParameterExpansion"&&Gs(e))return py(t,e);let r=vu(t,e);if(r!==null)return r;switch(e.type){case"DoubleQuoted":{let n=[];for(let s of e.parts)n.push(await De(t,s));return n.join("")}case"CommandSubstitution":try{let n=await t.executeScript(e.body);return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"")}catch(n){if(n instanceof W)throw n;if(n instanceof X)return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"");throw n}case"ArithmeticExpansion":return String(await Z(t,e.expression.expression));case"BraceExpansion":{let n=[];for(let s of e.items)if(s.type==="Range"){let i=or(s.start,s.end,s.step,s.startStr,s.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Y(t,s.word));return n.join(" ")}default:return""}}function Tu(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Fe(t,n,!i);if(!s)return o;let a=!(n in t.state.env),c=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&c)&&s.word?xt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&c)&&s.word){let u=xt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let y=new he,w=le(y,d);h=K(t,w.expression)}catch{let y=t.state.env[d];h=y?Number.parseInt(y,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let g=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=g&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&c){let u=s.word?xt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new X(1,"",`bash: ${u}
535
- `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&c)&&s.word?xt(t,s.word.parts,r):"";case"Length":{let l=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(l){let u=ue(t,l[1]);return String(u.length)}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)&&Su(t,n)){let u=t.state.env[`${n}_0`]||"";return String(u.length)}return String(o.length)}case"LengthSliceError":throw new Ke(n);case"Substring":{let l=s.offset?K(t,s.offset.expression):0,u=s.length?K(t,s.length.expression):void 0;if(n==="@"||n==="*"){let h=(t.state.env["@"]||"").split(" ").filter(E=>E),g=t.state.env[0]||"bash",y=l===0?[g,...h]:h,w=l===0?0:l-1;if(w<0||w>=y.length)return"";if(u!==void 0){let E=u<0?y.length+u:w+u;return y.slice(w,Math.max(w,E)).join(" ")}return y.slice(w).join(" ")}let f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(f){let g=ue(t,f[1]).map(([,w])=>w),y=l;if(y<0&&(y=g.length+y,y<0))return"";if(u!==void 0){if(u<0){let w=g.length+u;return g.slice(y,Math.max(y,w)).join(" ")}return g.slice(y,y+u).join(" ")}return g.slice(y).join(" ")}let p=[...o],d=l;if(d<0&&(d=Math.max(0,p.length+d)),u!==void 0){if(u<0){let h=p.length+u;return p.slice(d,Math.max(d,h)).join("")}return p.slice(d,d+u).join("")}return p.slice(d).join("")}case"PatternRemoval":{let l="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")l+=Ie(f.pattern,s.greedy);else if(f.type==="Literal")l+=Ie(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")l+=ve(f.value);else if(f.type==="DoubleQuoted"){let p=xt(t,f.parts);l+=ve(p)}else if(f.type==="ParameterExpansion"){let p=Je(t,f);l+=Ie(p,s.greedy)}else{let p=Je(t,f);l+=ve(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${l}`),"");let u=new RegExp(`${l}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let l="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")l+=Ie(p.pattern,!0);else if(p.type==="Literal")l+=Ie(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")l+=ve(p.value);else if(p.type==="DoubleQuoted"){let d=xt(t,p.parts);l+=ve(d)}else if(p.type==="ParameterExpansion"){let d=Je(t,p);l+=Ie(d,!0)}else{let d=Je(t,p);l+=ve(d)}let u=s.replacement?xt(t,s.replacement.parts):"";if(l==="")return o;s.anchor==="start"?l=`^${l}`:s.anchor==="end"&&(l=`${l}$`);let f=s.all?"g":"";try{let p=new RegExp(l,f);if(s.all){let d="",h=0,g=p.exec(o);for(;g!==null&&!(g[0].length===0&&g.index===o.length);)d+=o.slice(h,g.index)+u,h=g.index+g[0].length,g[0].length===0&&h++,g=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}case"CaseModification":return s.direction==="upper"?s.all?o.toUpperCase():o.charAt(0).toUpperCase()+o.slice(1):s.all?o.toLowerCase():o.charAt(0).toLowerCase()+o.slice(1);case"Transform":{let l=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(l&&s.operator==="Q")return ue(t,l[1]).map(([,p])=>Ks(p)).join(" ");switch(s.operator){case"Q":return Ks(o);case"P":return o;case"a":return"";case"A":return`${n}=${Ks(o)}`;case"E":return o.replace(/\\([\\abefnrtv'"?])/g,(u,f)=>{switch(f){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
536
- `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return f}});case"K":return"";default:return o}}case"Indirection":return Fe(t,o);case"ArrayKeys":{let u=ue(t,s.array).map(([f])=>String(f));return s.star?u.join(Ht(t.state.env)):u.join(" ")}case"VarNamePrefix":{let l=Object.keys(t.state.env).filter(u=>u.startsWith(s.prefix)&&!u.includes("__")).sort();return s.star?l.join(Ht(t.state.env)):l.join(" ")}default:return o}}async function py(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Fe(t,n,!i);if(!s)return o;let a=!(n in t.state.env),c=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&c)&&s.word?wt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&c)&&s.word){let u=await wt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let y=new he,w=le(y,d);h=await Z(t,w.expression)}catch{let y=t.state.env[d];h=y?Number.parseInt(y,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let g=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=g&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&c){let u=s.word?await wt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new X(1,"",`bash: ${u}
537
- `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&c)&&s.word?wt(t,s.word.parts,r):"";case"PatternRemoval":{let l="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")l+=Ie(f.pattern,s.greedy);else if(f.type==="Literal")l+=Ie(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")l+=ve(f.value);else if(f.type==="DoubleQuoted"){let p=await wt(t,f.parts);l+=ve(p)}else if(f.type==="ParameterExpansion"){let p=await De(t,f);l+=Ie(p,s.greedy)}else{let p=await De(t,f);l+=ve(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${l}`),"");let u=new RegExp(`${l}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let l="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")l+=Ie(p.pattern,!0);else if(p.type==="Literal")l+=Ie(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")l+=ve(p.value);else if(p.type==="DoubleQuoted"){let d=await wt(t,p.parts);l+=ve(d)}else if(p.type==="ParameterExpansion"){let d=await De(t,p);l+=Ie(d,!0)}else{let d=await De(t,p);l+=ve(d)}let u=s.replacement?await wt(t,s.replacement.parts):"";if(l==="")return o;s.anchor==="start"?l=`^${l}`:s.anchor==="end"&&(l=`${l}$`);let f=s.all?"g":"";try{let p=new RegExp(l,f);if(s.all){let d="",h=0,g=p.exec(o);for(;g!==null&&!(g[0].length===0&&g.index===o.length);)d+=o.slice(h,g.index)+u,h=g.index+g[0].length,g[0].length===0&&h++,g=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}default:return Tu(t,e,r)}}function Zs(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?Math.trunc(t/e):0;case"%":return e!==0?t%e:0;case"**":if(e<0)throw new ae("exponent less than 0");return t**e;case"<<":return t<<e;case">>":return t>>e;case"<":return t<e?1:0;case"<=":return t<=e?1:0;case">":return t>e?1:0;case">=":return t>=e?1:0;case"==":return t===e?1:0;case"!=":return t!==e?1:0;case"&":return t&e;case"|":return t|e;case"^":return t^e;case",":return e;default:return 0}}function Fu(t,e,r){switch(r){case"=":return e;case"+=":return t+e;case"-=":return t-e;case"*=":return t*e;case"/=":return e!==0?Math.trunc(t/e):0;case"%=":return e!==0?t%e:0;case"<<=":return t<<e;case">>=":return t>>e;case"&=":return t&e;case"|=":return t|e;case"^=":return t^e;default:return e}}function Qs(t,e){switch(e){case"-":return-t;case"+":return+t;case"!":return t===0?1:0;case"~":return~t;default:return t}}function dy(t,e){let r=t.state.env[e];if(r!==void 0)return r;let n=t.state.env[`${e}_0`];return n!==void 0?n:Fe(t,e)}function zt(t){if(!t)return 0;let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&/^-?\d+$/.test(t.trim()))return e;let r=t.trim();if(!r)return 0;try{let n=new he,{expr:s,pos:i}=Ze(n,r,0);if(i<r.length){let o=r.slice(i).trim().split(/\s+/)[0];throw new ae(`${r}: syntax error in expression (error token is "${o}")`)}return s.type==="ArithNumber"?s.value:e||0}catch(n){if(n instanceof ae)throw n;let s=r.split(/\s+/).slice(1)[0]||r;throw new ae(`${r}: syntax error in expression (error token is "${s}")`)}}function cn(t,e,r=new Set){if(r.has(e))return 0;r.add(e);let n=dy(t,e);if(!n)return 0;let s=Number.parseInt(n,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(n.trim()))return s;let i=n.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return cn(t,i,r);try{let o=new he,{expr:a}=Ze(o,i,0);return Le(t,a,r)}catch{return 0}}function Le(t,e,r){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return cn(t,e.name,r);case"ArithBinary":{if(e.operator==="||")return Le(t,e.left,r)||Le(t,e.right,r)?1:0;if(e.operator==="&&")return Le(t,e.left,r)&&Le(t,e.right,r)?1:0;let n=Le(t,e.left,r),s=Le(t,e.right,r);return Zs(n,s,e.operator)}case"ArithUnary":{let n=Le(t,e.operand,r);return Qs(n,e.operator)}case"ArithTernary":return Le(t,e.condition,r)?Le(t,e.consequent,r):Le(t,e.alternate,r);case"ArithGroup":return Le(t,e.expression,r);default:return K(t,e)}}function it(t,e){if(e.startsWith("#")){let f=e.slice(1),p=t.state.env[f]||"";return String(p.length)}if(e.startsWith("!")){let f=e.slice(1),p=t.state.env[f]||"";return t.state.env[p]||""}let r=[":-",":=",":?",":+","-","=","?","+"],n=-1,s="";for(let f of r){let p=e.indexOf(f);p>0&&(n===-1||p<n)&&(n=p,s=f)}if(n===-1)return Fe(t,e);let i=e.slice(0,n),o=e.slice(n+s.length),a=t.state.env[i],c=a===void 0,l=a==="",u=s.startsWith(":");switch(s){case":-":case"-":return c||u&&l?o:a||"";case":=":case"=":return c||u&&l?(t.state.env[i]=o,o):a||"";case":+":case"+":return!(c||u&&l)?o:"";case":?":case"?":{if(c||u&&l)throw new Error(o||`${i}: parameter null or not set`);return a||""}default:return a||""}}function K(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return cn(t,e.name);case"ArithNested":return K(t,e.expression);case"ArithCommandSubst":return 0;case"ArithBracedExpansion":{let r=it(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=it(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Wt(s)}case"ArithDynamicNumber":{let n=it(t,e.prefix)+e.suffix;return Wt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=K(t,e.index);if(i<0){let a=ue(t,e.array);if(a.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
563
+ `,""):t.state.env[`${o}_${d}`]||""}let u=t.state.env[`${o}_${l}`];if(u===void 0&&r&&t.state.options.nounset)throw new Pe(`${o}[${l}]`);return u||""}if(/^[1-9][0-9]*$/.test(e)){let o=t.state.env[e];if(o===void 0&&r&&t.state.options.nounset)throw new Pe(e);return o||""}let i=t.state.env[e];if(i===void 0&&r&&t.state.options.nounset)throw new Pe(e);return i||""}async function Fu(t,e,r,n,s){let i=[];for(let u of e){let f=u.type==="ParameterExpansion"||u.type==="CommandSubstitution"||u.type==="ArithmeticExpansion";if(u.type==="ParameterExpansion"&&Js(u)){let p=await s(t,u);i.push({value:p,splittable:!1})}else{let p=await s(t,u);i.push({value:p,splittable:f})}}if(!i.some(u=>u.splittable&&new RegExp(`[${n}]`).test(u.value))){let u=i.map(f=>f.value).join("");return u?[u]:[]}let a=new RegExp(`[${n}]+`),c=[],l="";for(let u=0;u<i.length;u++){let f=i[u];if(!f.splittable)l+=f.value;else{let p=f.value.split(a);for(let d=0;d<p.length;d++)d===0?l+=p[d]:(l!==""&&c.push(l),l=p[d])}}return l!==""&&c.push(l),c}function ve(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Du(t){switch(t.type){case"Literal":return t.value;case"SingleQuoted":return t.value;case"Escaped":return t.value;default:return null}}function Lu(t){switch(t.type){case"SingleQuoted":case"Escaped":case"DoubleQuoted":return!0;case"Literal":return t.value==="";default:return!1}}function ei(t){if(t==="")return"''";if(!/['\\\n\r\t\x00-\x1f\x7f]/.test(t))return`'${t}'`;let e="$'";for(let r of t)switch(r){case"'":e+="\\'";break;case"\\":e+="\\\\";break;case`
564
+ `:e+="\\n";break;case"\r":e+="\\r";break;case" ":e+="\\t";break;default:{let n=r.charCodeAt(0);n<32||n===127?e+=`\\x${n.toString(16).padStart(2,"0")}`:e+=r}}return`${e}'`}function xt(t,e,r=!1){return e.map(n=>Je(t,n,r)).join("")}async function wt(t,e,r=!1){let n=[];for(let s of e)n.push(await De(t,s));return n.join("")}function Ry(t){return Lu(t)}function Mu(t){if(t.parts.length===0)return!0;for(let e of t.parts)if(!Ry(e))return!1;return!0}function _u(t){return t.replace(/([*?[\]\\])/g,"\\$1")}function Bu(t,e,r=!1){let n=Du(e);if(n!==null)return n;switch(e.type){case"ParameterExpansion":return ju(t,e,r);case"TildeExpansion":return r?e.user===null?"~":`~${e.user}`:e.user===null?t.state.env.HOME||"/home/user":e.user==="root"?"/root":`~${e.user}`;case"Glob":return e.pattern;default:return null}}function Je(t,e,r=!1){let n=Bu(t,e,r);if(n!==null)return n;switch(e.type){case"DoubleQuoted":{let s=[];for(let i of e.parts)s.push(Je(t,i,!0));return s.join("")}case"ArithmeticExpansion":return String(K(t,e.expression.expression));case"BraceExpansion":{let s=[];for(let i of e.items)if(i.type==="Range"){let o=or(i.start,i.end,i.step,i.startStr,i.endStr);if(o.expanded)s.push(...o.expanded);else return o.literal}else s.push(ln(t,i.word));return s.join(" ")}default:return""}}function ln(t,e){let r=e.parts,n=r.length;if(n===1)return Je(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(Je(t,r[i]));return s.join("")}async function Y(t,e){return Xe(e)?Hu(t,e):ln(t,e)}function un(t){for(let e of t)if(e.type==="BraceExpansion"||e.type==="DoubleQuoted"&&un(e.parts))return!0;return!1}function $y(t){for(let e of t){if(e.type==="BraceExpansion"){for(let r of e.items)if(r.type==="Word"&&Xe(r.word))return!0}if(an(e))return!0}return!1}var Wu=1e4,Ht=1e5;function Uu(t,e,r={count:0}){if(r.count>Ht)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=or(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=Uu(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Wu||r.count>Ht)return n;let l=[];for(let u of n)for(let f of i){if(r.count++,r.count>Ht)return l.length>0?l:n;l.push([...u,f])}n=l}else{let i=Je(t,s);for(let o of n)r.count++,o.push(i)}return n}function Oy(t,e){let r=e.parts;return un(r)?Uu(t,r).map(s=>s.join("")):[ln(t,e)]}async function zu(t,e,r={count:0}){if(r.count>Ht)return[[]];let n=[[]];for(let s of e)if(s.type==="BraceExpansion"){let i=[],o=!1,a="";for(let u of s.items)if(u.type==="Range"){let f=or(u.start,u.end,u.step,u.startStr,u.endStr);if(f.expanded)for(let p of f.expanded)r.count++,i.push(p);else{o=!0,a=f.literal;break}}else{let f=await zu(t,u.word.parts,r);for(let p of f)r.count++,i.push(p.join(""))}if(o){for(let u of n)r.count++,u.push(a);continue}if(n.length*i.length>Wu||r.count>Ht)return n;let l=[];for(let u of n)for(let f of i){if(r.count++,r.count>Ht)return l.length>0?l:n;l.push([...u,f])}n=l}else{let i=await De(t,s);for(let o of n)r.count++,o.push(i)}return n}async function Py(t,e){let r=e.parts;return un(r)?(await zu(t,r)).map(s=>s.join("")):[await Y(t,e)]}async function ur(t,e){let r=e.parts,{hasQuoted:n,hasCommandSub:s,hasArrayVar:i,hasArrayAtExpansion:o,hasParamExpansion:a}=vu(r),l=un(r)?$y(r)?await Py(t,e):Oy(t,e):null;if(l&&l.length>1){let p=[];for(let d of l)if(!n&&/[*?[]/.test(d)){let g=await new Ut(t.fs,t.state.cwd).expand(d);g.length>0?p.push(...g):p.push(d)}else p.push(d);return{values:p,quoted:!1}}if(o&&r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0];if(p.parts.length===1&&p.parts[0].type==="ParameterExpansion"){let h=p.parts[0].parameter.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@]\]$/);if(h){let g=h[1],m=fe(t,g);if(m.length>0)return{values:m.map(([,E])=>E),quoted:!0};let w=t.state.env[g];return w!==void 0?{values:[w],quoted:!0}:{values:[],quoted:!0}}}}if(r.length===1&&r[0].type==="DoubleQuoted"){let p=r[0],d=-1,h=!1;for(let g=0;g<p.parts.length;g++){let m=p.parts[g];if(m.type==="ParameterExpansion"&&(m.parameter==="@"||m.parameter==="*")){d=g,h=m.parameter==="*";break}}if(d!==-1){let g=p.parts[d];g.type==="ParameterExpansion"&&g.operation&&(d=-1)}if(d!==-1){let g=Number.parseInt(t.state.env["#"]||"0",10),m="";for(let S=0;S<d;S++)m+=await De(t,p.parts[S]);let w="";for(let S=d+1;S<p.parts.length;S++)w+=await De(t,p.parts[S]);if(g===0){if(h)return{values:[m+w],quoted:!0};let S=m+w;return{values:S?[S]:[],quoted:!0}}let E=[];for(let S=1;S<=g;S++)E.push(t.state.env[String(S)]||"");if(h){let S=zt(t.state.env);return{values:[m+E.join(S)+w],quoted:!0}}return E.length===1?{values:[m+E[0]+w],quoted:!0}:{values:[m+E[0],...E.slice(1,-1),E[E.length-1]+w],quoted:!0}}}if((s||i||a)&&!$u(t.state.env)){let p=cn(t.state.env),d=lr(p),h=await Fu(t,r,p,d,De),g=[],m=new Ut(t.fs,t.state.cwd);for(let w of h)if(/[*?[]/.test(w)){let E=await m.expand(w);E.length>0?g.push(...E):g.push(w)}else g.push(w);return{values:g,quoted:!1}}let f=Xe(e)?await Hu(t,e):ln(t,e);if(!n&&/[*?[]/.test(f)){let d=await new Ut(t.fs,t.state.cwd).expand(f);if(d.length>0)return{values:d,quoted:!1}}return f===""&&!n?{values:[],quoted:!1}:{values:[f],quoted:n}}async function Hu(t,e){let r=e.parts,n=r.length;if(n===1)return De(t,r[0]);let s=[];for(let i=0;i<n;i++)s.push(await De(t,r[i]));return s.join("")}async function De(t,e){if(e.type==="ParameterExpansion"&&Xs(e))return Ty(t,e);let r=Bu(t,e);if(r!==null)return r;switch(e.type){case"DoubleQuoted":{let n=[];for(let s of e.parts)n.push(await De(t,s));return n.join("")}case"CommandSubstitution":try{let n=await t.executeScript(e.body);return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"")}catch(n){if(n instanceof W)throw n;if(n instanceof X)return t.state.lastExitCode=n.exitCode,t.state.env["?"]=String(n.exitCode),n.stdout.replace(/\n+$/,"");throw n}case"ArithmeticExpansion":return String(await Z(t,e.expression.expression));case"BraceExpansion":{let n=[];for(let s of e.items)if(s.type==="Range"){let i=or(s.start,s.end,s.step,s.startStr,s.endStr);if(i.expanded)n.push(...i.expanded);else return i.literal}else n.push(await Y(t,s.word));return n.join(" ")}default:return""}}function ju(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Fe(t,n,!i);if(!s)return o;let a=!(n in t.state.env),c=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&c)&&s.word?xt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&c)&&s.word){let u=xt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let m=new he,w=ue(m,d);h=K(t,w.expression)}catch{let m=t.state.env[d];h=m?Number.parseInt(m,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let g=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=g&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&c){let u=s.word?xt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new X(1,"",`bash: ${u}
565
+ `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&c)&&s.word?xt(t,s.word.parts,r):"";case"Length":{let l=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(l){let u=fe(t,l[1]);return String(u.length)}if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)&&Tu(t,n)){let u=t.state.env[`${n}_0`]||"";return String(u.length)}return String(o.length)}case"LengthSliceError":throw new Ke(n);case"Substring":{let l=s.offset?K(t,s.offset.expression):0,u=s.length?K(t,s.length.expression):void 0;if(n==="@"||n==="*"){let h=(t.state.env["@"]||"").split(" ").filter(E=>E),g=t.state.env[0]||"bash",m=l===0?[g,...h]:h,w=l===0?0:l-1;if(w<0||w>=m.length)return"";if(u!==void 0){let E=u<0?m.length+u:w+u;return m.slice(w,Math.max(w,E)).join(" ")}return m.slice(w).join(" ")}let f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(f){let g=fe(t,f[1]).map(([,w])=>w),m=l;if(m<0&&(m=g.length+m,m<0))return"";if(u!==void 0){if(u<0){let w=g.length+u;return g.slice(m,Math.max(m,w)).join(" ")}return g.slice(m,m+u).join(" ")}return g.slice(m).join(" ")}let p=[...o],d=l;if(d<0&&(d=Math.max(0,p.length+d)),u!==void 0){if(u<0){let h=p.length+u;return p.slice(d,Math.max(d,h)).join("")}return p.slice(d,d+u).join("")}return p.slice(d).join("")}case"PatternRemoval":{let l="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")l+=Ie(f.pattern,s.greedy);else if(f.type==="Literal")l+=Ie(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")l+=ve(f.value);else if(f.type==="DoubleQuoted"){let p=xt(t,f.parts);l+=ve(p)}else if(f.type==="ParameterExpansion"){let p=Je(t,f);l+=Ie(p,s.greedy)}else{let p=Je(t,f);l+=ve(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${l}`),"");let u=new RegExp(`${l}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let l="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")l+=Ie(p.pattern,!0);else if(p.type==="Literal")l+=Ie(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")l+=ve(p.value);else if(p.type==="DoubleQuoted"){let d=xt(t,p.parts);l+=ve(d)}else if(p.type==="ParameterExpansion"){let d=Je(t,p);l+=Ie(d,!0)}else{let d=Je(t,p);l+=ve(d)}let u=s.replacement?xt(t,s.replacement.parts):"";if(l==="")return o;s.anchor==="start"?l=`^${l}`:s.anchor==="end"&&(l=`${l}$`);let f=s.all?"g":"";try{let p=new RegExp(l,f);if(s.all){let d="",h=0,g=p.exec(o);for(;g!==null&&!(g[0].length===0&&g.index===o.length);)d+=o.slice(h,g.index)+u,h=g.index+g[0].length,g[0].length===0&&h++,g=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}case"CaseModification":return s.direction==="upper"?s.all?o.toUpperCase():o.charAt(0).toUpperCase()+o.slice(1):s.all?o.toLowerCase():o.charAt(0).toLowerCase()+o.slice(1);case"Transform":{let l=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[[@*]\]$/);if(l&&s.operator==="Q")return fe(t,l[1]).map(([,p])=>ei(p)).join(" ");switch(s.operator){case"Q":return ei(o);case"P":return o;case"a":return"";case"A":return`${n}=${ei(o)}`;case"E":return o.replace(/\\([\\abefnrtv'"?])/g,(u,f)=>{switch(f){case"\\":return"\\";case"a":return"\x07";case"b":return"\b";case"e":return"\x1B";case"f":return"\f";case"n":return`
566
+ `;case"r":return"\r";case"t":return" ";case"v":return"\v";case"'":return"'";case'"':return'"';case"?":return"?";default:return f}});case"K":return"";default:return o}}case"Indirection":return Fe(t,o);case"ArrayKeys":{let u=fe(t,s.array).map(([f])=>String(f));return s.star?u.join(zt(t.state.env)):u.join(" ")}case"VarNamePrefix":{let l=Object.keys(t.state.env).filter(u=>u.startsWith(s.prefix)&&!u.includes("__")).sort();return s.star?l.join(zt(t.state.env)):l.join(" ")}default:return o}}async function Ty(t,e,r=!1){let{parameter:n,operation:s}=e,i=s&&(s.type==="DefaultValue"||s.type==="AssignDefault"||s.type==="UseAlternative"||s.type==="ErrorIfUnset"),o=Fe(t,n,!i);if(!s)return o;let a=!(n in t.state.env),c=o==="";switch(s.type){case"DefaultValue":return(a||s.checkEmpty&&c)&&s.word?wt(t,s.word.parts,r):o;case"AssignDefault":{if((a||s.checkEmpty&&c)&&s.word){let u=await wt(t,s.word.parts,r),f=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(f){let[,p,d]=f,h;if(/^\d+$/.test(d))h=Number.parseInt(d,10);else{try{let m=new he,w=ue(m,d);h=await Z(t,w.expression)}catch{let m=t.state.env[d];h=m?Number.parseInt(m,10):0}Number.isNaN(h)&&(h=0)}t.state.env[`${p}_${h}`]=u;let g=Number.parseInt(t.state.env[`${p}__length`]||"0",10);h>=g&&(t.state.env[`${p}__length`]=String(h+1))}else t.state.env[n]=u;return u}return o}case"ErrorIfUnset":{if(a||s.checkEmpty&&c){let u=s.word?await wt(t,s.word.parts,r):`${n}: parameter null or not set`;throw new X(1,"",`bash: ${u}
567
+ `)}return o}case"UseAlternative":return!(a||s.checkEmpty&&c)&&s.word?wt(t,s.word.parts,r):"";case"PatternRemoval":{let l="";if(s.pattern)for(let f of s.pattern.parts)if(f.type==="Glob")l+=Ie(f.pattern,s.greedy);else if(f.type==="Literal")l+=Ie(f.value,s.greedy);else if(f.type==="SingleQuoted"||f.type==="Escaped")l+=ve(f.value);else if(f.type==="DoubleQuoted"){let p=await wt(t,f.parts);l+=ve(p)}else if(f.type==="ParameterExpansion"){let p=await De(t,f);l+=Ie(p,s.greedy)}else{let p=await De(t,f);l+=ve(p)}if(s.side==="prefix")return o.replace(new RegExp(`^${l}`),"");let u=new RegExp(`${l}$`);if(s.greedy)return o.replace(u,"");for(let f=o.length;f>=0;f--){let p=o.slice(f);if(u.test(p))return o.slice(0,f)}return o}case"PatternReplacement":{let l="";if(s.pattern)for(let p of s.pattern.parts)if(p.type==="Glob")l+=Ie(p.pattern,!0);else if(p.type==="Literal")l+=Ie(p.value,!0);else if(p.type==="SingleQuoted"||p.type==="Escaped")l+=ve(p.value);else if(p.type==="DoubleQuoted"){let d=await wt(t,p.parts);l+=ve(d)}else if(p.type==="ParameterExpansion"){let d=await De(t,p);l+=Ie(d,!0)}else{let d=await De(t,p);l+=ve(d)}let u=s.replacement?await wt(t,s.replacement.parts):"";if(l==="")return o;s.anchor==="start"?l=`^${l}`:s.anchor==="end"&&(l=`${l}$`);let f=s.all?"g":"";try{let p=new RegExp(l,f);if(s.all){let d="",h=0,g=p.exec(o);for(;g!==null&&!(g[0].length===0&&g.index===o.length);)d+=o.slice(h,g.index)+u,h=g.index+g[0].length,g[0].length===0&&h++,g=p.exec(o);return d+=o.slice(h),d}return o.replace(p,u)}catch{return o}}default:return ju(t,e,r)}}function ti(t,e,r){switch(r){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return e!==0?Math.trunc(t/e):0;case"%":return e!==0?t%e:0;case"**":if(e<0)throw new ae("exponent less than 0");return t**e;case"<<":return t<<e;case">>":return t>>e;case"<":return t<e?1:0;case"<=":return t<=e?1:0;case">":return t>e?1:0;case">=":return t>=e?1:0;case"==":return t===e?1:0;case"!=":return t!==e?1:0;case"&":return t&e;case"|":return t|e;case"^":return t^e;case",":return e;default:return 0}}function Gu(t,e,r){switch(r){case"=":return e;case"+=":return t+e;case"-=":return t-e;case"*=":return t*e;case"/=":return e!==0?Math.trunc(t/e):0;case"%=":return e!==0?t%e:0;case"<<=":return t<<e;case">>=":return t>>e;case"&=":return t&e;case"|=":return t|e;case"^=":return t^e;default:return e}}function ri(t,e){switch(e){case"-":return-t;case"+":return+t;case"!":return t===0?1:0;case"~":return~t;default:return t}}function Fy(t,e){let r=t.state.env[e];if(r!==void 0)return r;let n=t.state.env[`${e}_0`];return n!==void 0?n:Fe(t,e)}function jt(t){if(!t)return 0;let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&/^-?\d+$/.test(t.trim()))return e;let r=t.trim();if(!r)return 0;try{let n=new he,{expr:s,pos:i}=Ze(n,r,0);if(i<r.length){let o=r.slice(i).trim().split(/\s+/)[0];throw new ae(`${r}: syntax error in expression (error token is "${o}")`)}return s.type==="ArithNumber"?s.value:e||0}catch(n){if(n instanceof ae)throw n;let s=r.split(/\s+/).slice(1)[0]||r;throw new ae(`${r}: syntax error in expression (error token is "${s}")`)}}function fn(t,e,r=new Set){if(r.has(e))return 0;r.add(e);let n=Fy(t,e);if(!n)return 0;let s=Number.parseInt(n,10);if(!Number.isNaN(s)&&/^-?\d+$/.test(n.trim()))return s;let i=n.trim();if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i))return fn(t,i,r);try{let o=new he,{expr:a}=Ze(o,i,0);return Le(t,a,r)}catch{return 0}}function Le(t,e,r){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return fn(t,e.name,r);case"ArithBinary":{if(e.operator==="||")return Le(t,e.left,r)||Le(t,e.right,r)?1:0;if(e.operator==="&&")return Le(t,e.left,r)&&Le(t,e.right,r)?1:0;let n=Le(t,e.left,r),s=Le(t,e.right,r);return ti(n,s,e.operator)}case"ArithUnary":{let n=Le(t,e.operand,r);return ri(n,e.operator)}case"ArithTernary":return Le(t,e.condition,r)?Le(t,e.consequent,r):Le(t,e.alternate,r);case"ArithGroup":return Le(t,e.expression,r);default:return K(t,e)}}function it(t,e){if(e.startsWith("#")){let f=e.slice(1),p=t.state.env[f]||"";return String(p.length)}if(e.startsWith("!")){let f=e.slice(1),p=t.state.env[f]||"";return t.state.env[p]||""}let r=[":-",":=",":?",":+","-","=","?","+"],n=-1,s="";for(let f of r){let p=e.indexOf(f);p>0&&(n===-1||p<n)&&(n=p,s=f)}if(n===-1)return Fe(t,e);let i=e.slice(0,n),o=e.slice(n+s.length),a=t.state.env[i],c=a===void 0,l=a==="",u=s.startsWith(":");switch(s){case":-":case"-":return c||u&&l?o:a||"";case":=":case"=":return c||u&&l?(t.state.env[i]=o,o):a||"";case":+":case"+":return!(c||u&&l)?o:"";case":?":case"?":{if(c||u&&l)throw new Error(o||`${i}: parameter null or not set`);return a||""}default:return a||""}}function K(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return fn(t,e.name);case"ArithNested":return K(t,e.expression);case"ArithCommandSubst":return 0;case"ArithBracedExpansion":{let r=it(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=it(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Wt(s)}case"ArithDynamicNumber":{let n=it(t,e.prefix)+e.suffix;return Wt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=K(t,e.index);if(i<0){let a=fe(t,e.array);if(a.length===0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
538
568
  `,0;let l=Math.max(...a.map(([u])=>typeof u=="number"?u:0))+1+i;if(l<0)return t.state.expansionStderr=(t.state.expansionStderr||"")+`bash: ${e.array}: bad array subscript
539
- `,0;i=l}n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return zt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return zt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(c=>c===e.array||c.startsWith(`${e.array}_`)))throw new Pe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?zt(s):0}case"ArithDoubleSubscript":throw new ae("double subscript","","");case"ArithNumberSubscript":throw new ae(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return K(t,e.left)||K(t,e.right)?1:0;if(e.operator==="&&")return K(t,e.left)&&K(t,e.right)?1:0;let r=K(t,e.left),n=K(t,e.right);return Zs(r,n,e.operator)}case"ArithUnary":{let r=K(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Fe(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let c=K(t,e.operand.index);i=`${n}_${c}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return Qs(r,e.operator)}case"ArithTernary":return K(t,e.condition)?K(t,e.consequent):K(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let c=K(t,e.subscript);n=`${r}_${c}`}else{let c=K(t,e.subscript);if(c<0){let l=ue(t,r);l.length>0&&(c=Math.max(...l.map(([f])=>typeof f=="number"?f:0))+1+c)}n=`${r}_${c}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=K(t,e.value),o=Fu(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return K(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=Du(t,n);return Number.parseInt(r,10)||0}default:return 0}}function Du(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Fe(t,e.name);case"ArithBracedExpansion":return it(t,e.content);case"ArithCommandSubst":return"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=Du(t,n);return r}default:return String(K(t,e))}}async function Z(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return cn(t,e.name);case"ArithNested":return Z(t,e.expression);case"ArithCommandSubst":{if(t.execFn){let n=(await t.execFn(e.command)).stdout.trim();return Number.parseInt(n,10)||0}return 0}case"ArithBracedExpansion":{let r=it(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=it(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Wt(s)}case"ArithDynamicNumber":{let n=it(t,e.prefix)+e.suffix;return Wt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=await Z(t,e.index);n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return zt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return zt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(c=>c===e.array||c.startsWith(`${e.array}_`)))throw new Pe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?zt(s):0}case"ArithDoubleSubscript":throw new ae("double subscript","","");case"ArithNumberSubscript":throw new ae(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return await Z(t,e.left)||await Z(t,e.right)?1:0;if(e.operator==="&&")return await Z(t,e.left)&&await Z(t,e.right)?1:0;let r=await Z(t,e.left),n=await Z(t,e.right);return Zs(r,n,e.operator)}case"ArithUnary":{let r=await Z(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Fe(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let c=await Z(t,e.operand.index);i=`${n}_${c}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return Qs(r,e.operator)}case"ArithTernary":return await Z(t,e.condition)?await Z(t,e.consequent):await Z(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let c=await Z(t,e.subscript);n=`${r}_${c}`}else{let c=await Z(t,e.subscript);if(c<0){let l=ue(t,r);l.length>0&&(c=Math.max(...l.map(([f])=>typeof f=="number"?f:0))+1+c)}n=`${r}_${c}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=await Z(t,e.value),o=Fu(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return await Z(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=await Lu(t,n);return Number.parseInt(r,10)||0}default:return 0}}async function Lu(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Fe(t,e.name);case"ArithBracedExpansion":return it(t,e.content);case"ArithCommandSubst":return t.execFn?(await t.execFn(e.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=await Lu(t,n);return r}default:return String(await Z(t,e))}}J();J();var V=Object.freeze({stdout:"",stderr:"",exitCode:0});function Re(t=""){return{stdout:t,stderr:"",exitCode:0}}function B(t,e=1){return{stdout:"",stderr:t,exitCode:e}}function P(t,e,r){return{stdout:t,stderr:e,exitCode:r}}function ce(t){return{stdout:"",stderr:"",exitCode:t?0:1}}function Ye(t,e,r="",n=""){throw new W(t,e,r,n)}function Xs(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ge;return V}let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)throw new X(128,"",`bash: break: ${e[0]}: numeric argument required
540
- `);r=n}throw new me(r)}async function Js(t,e){let r,n=!1,s=!1,i=0;for(;i<e.length;)if(e[i]==="--"){i++;break}else if(e[i]==="-L")s=!1,i++;else if(e[i]==="-P")s=!0,i++;else if(e[i].startsWith("-")&&e[i]!=="-")i++;else break;let o=e.slice(i);if(o.length===0||o[0]==="~"?r=t.state.env.HOME||"/":o[0]==="-"?(r=t.state.previousDir,n=!0):r=o[0],!r.startsWith("/")&&!r.startsWith("./")&&!r.startsWith("../")&&r!=="."&&r!==".."){let f=t.state.env.CDPATH;if(f){let p=f.split(":").filter(d=>d);for(let d of p){let h=d.startsWith("/")?`${d}/${r}`:`${t.state.cwd}/${d}/${r}`;try{if((await t.fs.stat(h)).isDirectory){r=h,n=!0;break}}catch{}}}}let c=(r.startsWith("/")?r:`${t.state.cwd}/${r}`).split("/").filter(f=>f&&f!=="."),l="";for(let f of c)if(f==="..")l=l.split("/").slice(0,-1).join("/")||"/";else{l=l?`${l}/${f}`:`/${f}`;try{if(!(await t.fs.stat(l)).isDirectory)return B(`bash: cd: ${r}: Not a directory
569
+ `,0;i=l}n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return jt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return jt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(c=>c===e.array||c.startsWith(`${e.array}_`)))throw new Pe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?jt(s):0}case"ArithDoubleSubscript":throw new ae("double subscript","","");case"ArithNumberSubscript":throw new ae(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return K(t,e.left)||K(t,e.right)?1:0;if(e.operator==="&&")return K(t,e.left)&&K(t,e.right)?1:0;let r=K(t,e.left),n=K(t,e.right);return ti(r,n,e.operator)}case"ArithUnary":{let r=K(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Fe(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let c=K(t,e.operand.index);i=`${n}_${c}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return ri(r,e.operator)}case"ArithTernary":return K(t,e.condition)?K(t,e.consequent):K(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let c=K(t,e.subscript);n=`${r}_${c}`}else{let c=K(t,e.subscript);if(c<0){let l=fe(t,r);l.length>0&&(c=Math.max(...l.map(([f])=>typeof f=="number"?f:0))+1+c)}n=`${r}_${c}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=K(t,e.value),o=Gu(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return K(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=qu(t,n);return Number.parseInt(r,10)||0}default:return 0}}function qu(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Fe(t,e.name);case"ArithBracedExpansion":return it(t,e.content);case"ArithCommandSubst":return"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=qu(t,n);return r}default:return String(K(t,e))}}async function Z(t,e){switch(e.type){case"ArithNumber":if(Number.isNaN(e.value))throw new ae("value too great for base");return e.value;case"ArithVariable":return fn(t,e.name);case"ArithNested":return Z(t,e.expression);case"ArithCommandSubst":{if(t.execFn){let n=(await t.execFn(e.command)).stdout.trim();return Number.parseInt(n,10)||0}return 0}case"ArithBracedExpansion":{let r=it(t,e.content);return Number.parseInt(r,10)||0}case"ArithDynamicBase":{let r=it(t,e.baseExpr),n=Number.parseInt(r,10);if(n<2||n>64)return 0;let s=`${n}#${e.value}`;return Wt(s)}case"ArithDynamicNumber":{let n=it(t,e.prefix)+e.suffix;return Wt(n)}case"ArithArrayElement":{let r=t.state.associativeArrays?.has(e.array),n;if(e.stringKey!==void 0)n=`${e.array}_${e.stringKey}`;else if(r&&e.index?.type==="ArithVariable")n=`${e.array}_${e.index.name}`;else if(e.index){let i=await Z(t,e.index);n=`${e.array}_${i}`;let o=t.state.env[n];if(o!==void 0)return jt(o);if(i===0){let a=t.state.env[e.array];if(a!==void 0)return jt(a)}if(t.state.options.nounset&&!Object.keys(t.state.env).some(c=>c===e.array||c.startsWith(`${e.array}_`)))throw new Pe(`${e.array}[${i}]`);return 0}else return 0;let s=t.state.env[n];return s!==void 0?jt(s):0}case"ArithDoubleSubscript":throw new ae("double subscript","","");case"ArithNumberSubscript":throw new ae(`${e.number}${e.errorToken}: syntax error: invalid arithmetic operator (error token is "${e.errorToken}")`);case"ArithBinary":{if(e.operator==="||")return await Z(t,e.left)||await Z(t,e.right)?1:0;if(e.operator==="&&")return await Z(t,e.left)&&await Z(t,e.right)?1:0;let r=await Z(t,e.left),n=await Z(t,e.right);return ti(r,n,e.operator)}case"ArithUnary":{let r=await Z(t,e.operand);if(e.operator==="++"||e.operator==="--"){if(e.operand.type==="ArithVariable"){let n=e.operand.name,s=Number.parseInt(Fe(t,n),10)||0,i=e.operator==="++"?s+1:s-1;return t.state.env[n]=String(i),e.prefix?i:s}if(e.operand.type==="ArithArrayElement"){let n=e.operand.array,s=t.state.associativeArrays?.has(n),i;if(e.operand.stringKey!==void 0)i=`${n}_${e.operand.stringKey}`;else if(s&&e.operand.index?.type==="ArithVariable")i=`${n}_${e.operand.index.name}`;else if(e.operand.index){let c=await Z(t,e.operand.index);i=`${n}_${c}`}else return r;let o=Number.parseInt(t.state.env[i]||"0",10)||0,a=e.operator==="++"?o+1:o-1;return t.state.env[i]=String(a),e.prefix?a:o}return r}return ri(r,e.operator)}case"ArithTernary":return await Z(t,e.condition)?await Z(t,e.consequent):await Z(t,e.alternate);case"ArithAssignment":{let r=e.variable,n=r;if(e.stringKey!==void 0)n=`${r}_${e.stringKey}`;else if(e.subscript){let a=t.state.associativeArrays?.has(r);if(a&&e.subscript.type==="ArithVariable")n=`${r}_${e.subscript.name}`;else if(a){let c=await Z(t,e.subscript);n=`${r}_${c}`}else{let c=await Z(t,e.subscript);if(c<0){let l=fe(t,r);l.length>0&&(c=Math.max(...l.map(([f])=>typeof f=="number"?f:0))+1+c)}n=`${r}_${c}`}}let s=Number.parseInt(t.state.env[n]||"0",10)||0,i=await Z(t,e.value),o=Gu(s,i,e.operator);return t.state.env[n]=String(o),o}case"ArithGroup":return await Z(t,e.expression);case"ArithConcat":{let r="";for(let n of e.parts)r+=await Vu(t,n);return Number.parseInt(r,10)||0}default:return 0}}async function Vu(t,e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return Fe(t,e.name);case"ArithBracedExpansion":return it(t,e.content);case"ArithCommandSubst":return t.execFn?(await t.execFn(e.command)).stdout.trim():"0";case"ArithConcat":{let r="";for(let n of e.parts)r+=await Vu(t,n);return r}default:return String(await Z(t,e))}}J();J();var V=Object.freeze({stdout:"",stderr:"",exitCode:0});function Re(t=""){return{stdout:t,stderr:"",exitCode:0}}function B(t,e=1){return{stdout:"",stderr:t,exitCode:e}}function P(t,e,r){return{stdout:t,stderr:e,exitCode:r}}function ce(t){return{stdout:"",stderr:"",exitCode:t?0:1}}function Ye(t,e,r="",n=""){throw new W(t,e,r,n)}function ni(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ge;return V}let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)throw new X(128,"",`bash: break: ${e[0]}: numeric argument required
570
+ `);r=n}throw new me(r)}async function si(t,e){let r,n=!1,s=!1,i=0;for(;i<e.length;)if(e[i]==="--"){i++;break}else if(e[i]==="-L")s=!1,i++;else if(e[i]==="-P")s=!0,i++;else if(e[i].startsWith("-")&&e[i]!=="-")i++;else break;let o=e.slice(i);if(o.length===0||o[0]==="~"?r=t.state.env.HOME||"/":o[0]==="-"?(r=t.state.previousDir,n=!0):r=o[0],!r.startsWith("/")&&!r.startsWith("./")&&!r.startsWith("../")&&r!=="."&&r!==".."){let f=t.state.env.CDPATH;if(f){let p=f.split(":").filter(d=>d);for(let d of p){let h=d.startsWith("/")?`${d}/${r}`:`${t.state.cwd}/${d}/${r}`;try{if((await t.fs.stat(h)).isDirectory){r=h,n=!0;break}}catch{}}}}let c=(r.startsWith("/")?r:`${t.state.cwd}/${r}`).split("/").filter(f=>f&&f!=="."),l="";for(let f of c)if(f==="..")l=l.split("/").slice(0,-1).join("/")||"/";else{l=l?`${l}/${f}`:`/${f}`;try{if(!(await t.fs.stat(l)).isDirectory)return B(`bash: cd: ${r}: Not a directory
541
571
  `)}catch{return B(`bash: cd: ${r}: No such file or directory
542
572
  `)}}let u=l||"/";return t.state.previousDir=t.state.cwd,t.state.cwd=u,t.state.env.PWD=t.state.cwd,t.state.env.OLDPWD=t.state.previousDir,Re(n?`${u}
543
- `:"")}J();function Ys(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ge;return V}if(e.length>1)throw new me(1);let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)return B(`bash: continue: ${e[0]}: numeric argument required
544
- `);r=n}throw new Ee(r)}function Et(t,e){t.state.readonlyVars=t.state.readonlyVars||new Set,t.state.readonlyVars.add(e)}function hy(t,e){return t.state.readonlyVars?.has(e)??!1}function ot(t,e,r="bash"){return hy(t,e)?B(`${r}: ${e}: readonly variable
545
- `):null}function Mu(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(e)return{name:e[1],isArray:!0,arrayElements:ei(e[2])};if(t.includes("=")){let r=t.indexOf("=");return{name:t.slice(0,r),isArray:!1,value:t.slice(r+1)}}return{name:t,isArray:!1}}function _u(t,e,r={}){let{name:n,isArray:s,arrayElements:i,value:o}=e,{makeReadonly:a=!1,checkReadonly:c=!0}=r;if(c){let l=ot(t,n);if(l)return l}if(s&&i){for(let l=0;l<i.length;l++)t.state.env[`${n}_${l}`]=i[l];t.state.env[`${n}__length`]=String(i.length)}else o!==void 0&&(t.state.env[n]=o);return a&&Et(t,n),null}function ti(t,e){let r=!1,n=!1,s=!1,i=!1,o=!1,a=[];for(let c=0;c<e.length;c++){let l=e[c];if(l==="-a")r=!0;else if(l==="-A")n=!0;else if(l==="-r")s=!0;else if(l==="-x")i=!0;else if(l==="-p")o=!0;else if(l==="--"){a.push(...e.slice(c+1));break}else if(l.startsWith("-"))for(let u of l.slice(1))u==="a"?r=!0:u==="A"?n=!0:u==="r"?s=!0:u==="x"?i=!0:u==="p"&&(o=!0);else a.push(l)}if(o&&a.length>0){let c="";for(let l of a){let u=t.state.env[l];if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');c+=`declare -- ${l}="${f}"
573
+ `:"")}J();function ii(t,e){if(t.state.loopDepth===0){if(t.state.parentHasLoopContext)throw new Ge;return V}if(e.length>1)throw new me(1);let r=1;if(e.length>0){let n=Number.parseInt(e[0],10);if(Number.isNaN(n)||n<1)return B(`bash: continue: ${e[0]}: numeric argument required
574
+ `);r=n}throw new Ee(r)}function Et(t,e){t.state.readonlyVars=t.state.readonlyVars||new Set,t.state.readonlyVars.add(e)}function Dy(t,e){return t.state.readonlyVars?.has(e)??!1}function ot(t,e,r="bash"){return Dy(t,e)?B(`${r}: ${e}: readonly variable
575
+ `):null}function Ku(t){let e=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(e)return{name:e[1],isArray:!0,arrayElements:oi(e[2])};if(t.includes("=")){let r=t.indexOf("=");return{name:t.slice(0,r),isArray:!1,value:t.slice(r+1)}}return{name:t,isArray:!1}}function Zu(t,e,r={}){let{name:n,isArray:s,arrayElements:i,value:o}=e,{makeReadonly:a=!1,checkReadonly:c=!0}=r;if(c){let l=ot(t,n);if(l)return l}if(s&&i){for(let l=0;l<i.length;l++)t.state.env[`${n}_${l}`]=i[l];t.state.env[`${n}__length`]=String(i.length)}else o!==void 0&&(t.state.env[n]=o);return a&&Et(t,n),null}function ai(t,e){let r=!1,n=!1,s=!1,i=!1,o=!1,a=[];for(let c=0;c<e.length;c++){let l=e[c];if(l==="-a")r=!0;else if(l==="-A")n=!0;else if(l==="-r")s=!0;else if(l==="-x")i=!0;else if(l==="-p")o=!0;else if(l==="--"){a.push(...e.slice(c+1));break}else if(l.startsWith("-"))for(let u of l.slice(1))u==="a"?r=!0:u==="A"?n=!0:u==="r"?s=!0:u==="x"?i=!0:u==="p"&&(o=!0);else a.push(l)}if(o&&a.length>0){let c="";for(let l of a){let u=t.state.env[l];if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');c+=`declare -- ${l}="${f}"
546
576
  `}}return Re(c)}if(a.length===0&&!o){let c="",l=Object.entries(t.state.env).filter(([u])=>!u.startsWith("BASH_")).sort(([u],[f])=>u.localeCompare(f));for(let[u,f]of l){let p=f.replace(/'/g,"'\\''");c+=`declare -- ${u}='${p}'
547
- `}return Re(c)}for(let c of a){let l=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(l){let u=l[1],f=l[2];if(n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u)),n&&f.includes("[")){let p=my(f);for(let[d,h]of p)t.state.env[`${u}_${d}`]=h}else{let p=ei(f);for(let d=0;d<p.length;d++)t.state.env[`${u}_${d}`]=p[d];t.state.env[`${u}__length`]=String(p.length)}s&&Et(t,u);continue}if(c.includes("=")){let u=c.indexOf("="),f=c.slice(0,u),p=c.slice(u+1),d=ot(t,f);if(d)return d;t.state.env[f]=p,s&&Et(t,f)}else{let u=c;n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u));let f=Object.keys(t.state.env).some(p=>p.startsWith(`${u}_`)&&!p.startsWith(`${u}__length`));!(u in t.state.env)&&!f&&(r||n?t.state.env[`${u}__length`]="0":t.state.env[u]=""),s&&Et(t,u)}}return V}function ei(t){let e=[],r="",n=!1,s=!1,i=!1;for(let o of t){if(i){r+=o,i=!1;continue}if(o==="\\"){i=!0;continue}if(o==="'"&&!s){n=!n;continue}if(o==='"'&&!n){s=!s;continue}if((o===" "||o===" "||o===`
548
- `)&&!n&&!s){r&&(e.push(r),r="");continue}r+=o}return r&&e.push(r),e}function my(t){let e=[],r=0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(r>=t.length)break;if(t[r]!=="["){r++;continue}r++;let n="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)n+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&t[r]!=="]"&&t[r]!=="=";)n+=t[r],r++;for(;r<t.length&&t[r]!=="]";)r++;if(t[r]==="]"&&r++,t[r]!=="=")continue;r++;let s="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length&&r++,s+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&!/\s/.test(t[r]);)s+=t[r],r++;e.push([n,s])}return e}function ri(t,e){let r=!1,n=!1,s=[];for(let i=0;i<e.length;i++){let o=e[i];if(o==="-a")r=!0;else if(o==="-A")n=!0;else if(o==="-p"){if(e.length===1){let a="";for(let c of t.state.readonlyVars||[]){let l=t.state.env[c];l!==void 0&&(a+=`declare -r ${c}="${l}"
549
- `)}return Re(a)}}else if(o==="--"){s.push(...e.slice(i+1));break}else o.startsWith("-")||s.push(o)}for(let i of s){let o=Mu(i);if(o.value===void 0&&!o.isArray){Et(t,o.name);continue}let a=_u(t,o,{makeReadonly:!0});if(a)return a}return V}J();async function ni(t,e){let r=e;if(r.length>0){let s=r[0];if(s==="--")r=r.slice(1);else if(s.startsWith("-")&&s!=="-"&&s.length>1)return B(`bash: eval: ${s}: invalid option
577
+ `}return Re(c)}for(let c of a){let l=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(l){let u=l[1],f=l[2];if(n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u)),n&&f.includes("[")){let p=Ly(f);for(let[d,h]of p)t.state.env[`${u}_${d}`]=h}else{let p=oi(f);for(let d=0;d<p.length;d++)t.state.env[`${u}_${d}`]=p[d];t.state.env[`${u}__length`]=String(p.length)}s&&Et(t,u);continue}if(c.includes("=")){let u=c.indexOf("="),f=c.slice(0,u),p=c.slice(u+1),d=ot(t,f);if(d)return d;t.state.env[f]=p,s&&Et(t,f)}else{let u=c;n&&(t.state.associativeArrays??=new Set,t.state.associativeArrays.add(u));let f=Object.keys(t.state.env).some(p=>p.startsWith(`${u}_`)&&!p.startsWith(`${u}__length`));!(u in t.state.env)&&!f&&(r||n?t.state.env[`${u}__length`]="0":t.state.env[u]=""),s&&Et(t,u)}}return V}function oi(t){let e=[],r="",n=!1,s=!1,i=!1;for(let o of t){if(i){r+=o,i=!1;continue}if(o==="\\"){i=!0;continue}if(o==="'"&&!s){n=!n;continue}if(o==='"'&&!n){s=!s;continue}if((o===" "||o===" "||o===`
578
+ `)&&!n&&!s){r&&(e.push(r),r="");continue}r+=o}return r&&e.push(r),e}function Ly(t){let e=[],r=0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(r>=t.length)break;if(t[r]!=="["){r++;continue}r++;let n="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)n+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&t[r]!=="]"&&t[r]!=="=";)n+=t[r],r++;for(;r<t.length&&t[r]!=="]";)r++;if(t[r]==="]"&&r++,t[r]!=="=")continue;r++;let s="";if(t[r]==="'"||t[r]==='"'){let i=t[r];for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length&&r++,s+=t[r],r++;t[r]===i&&r++}else for(;r<t.length&&!/\s/.test(t[r]);)s+=t[r],r++;e.push([n,s])}return e}function ci(t,e){let r=!1,n=!1,s=[];for(let i=0;i<e.length;i++){let o=e[i];if(o==="-a")r=!0;else if(o==="-A")n=!0;else if(o==="-p"){if(e.length===1){let a="";for(let c of t.state.readonlyVars||[]){let l=t.state.env[c];l!==void 0&&(a+=`declare -r ${c}="${l}"
579
+ `)}return Re(a)}}else if(o==="--"){s.push(...e.slice(i+1));break}else o.startsWith("-")||s.push(o)}for(let i of s){let o=Ku(i);if(o.value===void 0&&!o.isArray){Et(t,o.name);continue}let a=Zu(t,o,{makeReadonly:!0});if(a)return a}return V}J();async function li(t,e){let r=e;if(r.length>0){let s=r[0];if(s==="--")r=r.slice(1);else if(s.startsWith("-")&&s!=="-"&&s.length>1)return B(`bash: eval: ${s}: invalid option
550
580
  eval: usage: eval [arg ...]
551
581
  `,2)}if(r.length===0)return V;let n=r.join(" ");if(n.trim()==="")return V;try{let s=st(n);return t.executeScript(s)}catch(s){if(s instanceof me||s instanceof Ee||s instanceof ye||s instanceof X)throw s;if(s.name==="ParseException")return B(`bash: eval: ${s.message}
552
- `);throw s}}J();function si(t,e){let r,n="";if(e.length===0)r=t.state.lastExitCode;else{let s=e[0],i=Number.parseInt(s,10);s===""||Number.isNaN(i)||!/^-?\d+$/.test(s)?(n=`bash: exit: ${s}: numeric argument required
553
- `,r=2):r=(i%256+256)%256}throw new X(r,"",n)}function ii(t,e){let r=!1,n=[];for(let o of e)o==="-n"?r=!0:o==="-p"||o==="--"||n.push(o);if(n.length===0&&!r){let o="",a=Object.entries(t.state.env).filter(([c])=>!c.startsWith("BASH_ALIAS_")).sort(([c],[l])=>c.localeCompare(l));for(let[c,l]of a){let u=l.replace(/'/g,"'\\''");o+=`declare -x ${c}='${u}'
582
+ `);throw s}}J();function ui(t,e){let r,n="";if(e.length===0)r=t.state.lastExitCode;else{let s=e[0],i=Number.parseInt(s,10);s===""||Number.isNaN(i)||!/^-?\d+$/.test(s)?(n=`bash: exit: ${s}: numeric argument required
583
+ `,r=2):r=(i%256+256)%256}throw new X(r,"",n)}function fi(t,e){let r=!1,n=[];for(let o of e)o==="-n"?r=!0:o==="-p"||o==="--"||n.push(o);if(n.length===0&&!r){let o="",a=Object.entries(t.state.env).filter(([c])=>!c.startsWith("BASH_ALIAS_")).sort(([c],[l])=>c.localeCompare(l));for(let[c,l]of a){let u=l.replace(/'/g,"'\\''");o+=`declare -x ${c}='${u}'
554
584
  `}return Re(o)}if(r){for(let o of n){let a=o.split("=")[0];delete t.state.env[a]}return V}let s="",i=0;for(let o of n){let a,c;if(o.includes("=")){let l=o.indexOf("=");a=o.slice(0,l),c=o.slice(l+1)}else a=o;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){s+=`bash: export: \`${o}': not a valid identifier
555
- `,i=1;continue}c!==void 0?t.state.env[a]=c:a in t.state.env||(t.state.env[a]="")}return P("",s,i)}function yy(t){let e=[],r="",n=0;for(let s of t){for(let i of s)i==="("?n++:i===")"&&n--;r?r+=` ${s}`:r=s,n===0&&(e.push(r),r="")}return r&&e.push(r),e}async function oi(t,e){if(e.length===0)return B(`bash: let: expression expected
556
- `);let r=yy(e),n=0;for(let s of r)try{let o=st(`(( ${s} ))`).statements[0];if(o&&o.pipelines.length>0&&o.pipelines[0].commands.length>0){let a=o.pipelines[0].commands[0];a.type==="ArithmeticCommand"&&(n=await Z(t,a.expression.expression))}}catch(i){return B(`bash: let: ${s}: ${i.message}
557
- `)}return P("","",n===0?1:0)}function gy(t,e){let r=t.state.env.HOME||"/home/user";return e.split(":").map(i=>i==="~"?r:i==="~root"?"/root":i.startsWith("~/")?r+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function ai(t,e){if(t.state.localScopes.length===0)return B(`bash: local: can only be used in a function
558
- `);let r=t.state.localScopes[t.state.localScopes.length-1],n="",s=0;for(let i of e){let o,a;if(i.includes("=")){let c=i.indexOf("=");o=i.slice(0,c),a=gy(t,i.slice(c+1))}else o=i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){n+=`bash: local: \`${i}': not a valid identifier
559
- `,s=1;continue}r.has(o)||r.set(o,t.state.env[o]),a!==void 0&&(t.state.env[o]=a)}return P("",n,s)}function ci(t,e,r){let n=`
585
+ `,i=1;continue}c!==void 0?t.state.env[a]=c:a in t.state.env||(t.state.env[a]="")}return P("",s,i)}function My(t){let e=[],r="",n=0;for(let s of t){for(let i of s)i==="("?n++:i===")"&&n--;r?r+=` ${s}`:r=s,n===0&&(e.push(r),r="")}return r&&e.push(r),e}async function pi(t,e){if(e.length===0)return B(`bash: let: expression expected
586
+ `);let r=My(e),n=0;for(let s of r)try{let o=st(`(( ${s} ))`).statements[0];if(o&&o.pipelines.length>0&&o.pipelines[0].commands.length>0){let a=o.pipelines[0].commands[0];a.type==="ArithmeticCommand"&&(n=await Z(t,a.expression.expression))}}catch(i){return B(`bash: let: ${s}: ${i.message}
587
+ `)}return P("","",n===0?1:0)}function _y(t,e){let r=t.state.env.HOME||"/home/user";return e.split(":").map(i=>i==="~"?r:i==="~root"?"/root":i.startsWith("~/")?r+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function di(t,e){if(t.state.localScopes.length===0)return B(`bash: local: can only be used in a function
588
+ `);let r=t.state.localScopes[t.state.localScopes.length-1],n="",s=0;for(let i of e){let o,a;if(i.includes("=")){let c=i.indexOf("=");o=i.slice(0,c),a=_y(t,i.slice(c+1))}else o=i;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){n+=`bash: local: \`${i}': not a valid identifier
589
+ `,s=1;continue}r.has(o)||r.set(o,t.state.env[o]),a!==void 0&&(t.state.env[o]=a)}return P("",n,s)}function hi(t,e,r){let n=`
560
590
  `,s=0,i=0,o=0,a=!1,c="MAPFILE",l=0;for(;l<e.length;){let g=e[l];g==="-d"&&l+1<e.length?(n=e[l+1]||`
561
- `,l+=2):g==="-n"&&l+1<e.length?(s=Number.parseInt(e[l+1],10)||0,l+=2):g==="-O"&&l+1<e.length?(i=Number.parseInt(e[l+1],10)||0,l+=2):g==="-s"&&l+1<e.length?(o=Number.parseInt(e[l+1],10)||0,l+=2):g==="-t"?(a=!0,l++):g==="-u"||g==="-C"||g==="-c"?l+=2:(g.startsWith("-")||(c=g),l++)}let u=r;!u&&t.state.groupStdin!==void 0&&(u=t.state.groupStdin);let f=[],p=u,d=0,h=0;for(;p.length>0;){let g=p.indexOf(n);if(g===-1){p.length>0&&(h<o?h++:(s===0||d<s)&&(f.push(p),d++));break}let y=p.substring(0,g);if(a||(y+=n),p=p.substring(g+n.length),h<o){h++;continue}if(s>0&&d>=s)break;f.push(y),d++}cr(t,c);for(let g=0;g<f.length;g++)t.state.env[`${c}_${i+g}`]=f[g];return f.length>0&&(t.state.env[`${c}__length`]=String(i+f.length)),t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=""),P("","",0)}function li(t,e,r){let n=!1,s=`
591
+ `,l+=2):g==="-n"&&l+1<e.length?(s=Number.parseInt(e[l+1],10)||0,l+=2):g==="-O"&&l+1<e.length?(i=Number.parseInt(e[l+1],10)||0,l+=2):g==="-s"&&l+1<e.length?(o=Number.parseInt(e[l+1],10)||0,l+=2):g==="-t"?(a=!0,l++):g==="-u"||g==="-C"||g==="-c"?l+=2:(g.startsWith("-")||(c=g),l++)}let u=r;!u&&t.state.groupStdin!==void 0&&(u=t.state.groupStdin);let f=[],p=u,d=0,h=0;for(;p.length>0;){let g=p.indexOf(n);if(g===-1){p.length>0&&(h<o?h++:(s===0||d<s)&&(f.push(p),d++));break}let m=p.substring(0,g);if(a||(m+=n),p=p.substring(g+n.length),h<o){h++;continue}if(s>0&&d>=s)break;f.push(m),d++}cr(t,c);for(let g=0;g<f.length;g++)t.state.env[`${c}_${i+g}`]=f[g];return f.length>0&&(t.state.env[`${c}__length`]=String(i+f.length)),t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=""),P("","",0)}function mi(t,e,r){let n=!1,s=`
562
592
  `,i="",o=-1,a=null,c=[],l=0,u=!1;for(;l<e.length;){let E=e[l];E==="-r"?n=!0:E==="-d"&&l+1<e.length?(s=e[l+1],l++):E==="-p"&&l+1<e.length?(i=e[l+1],l++):E==="-n"&&l+1<e.length?(o=Number.parseInt(e[l+1],10),(Number.isNaN(o)||o<0)&&(u=!0,o=0),l++):E==="-a"&&l+1<e.length?(a=e[l+1],l++):E==="-t"?l+1<e.length&&!e[l+1].startsWith("-")&&l++:E==="-s"||E.startsWith("-")||c.push(E),l++}if(u)return P("","",1);c.length===0&&a===null&&c.push("REPLY");let f=r;!f&&t.state.groupStdin!==void 0&&(f=t.state.groupStdin);let p="",d=0,h=!0;if(o>=0){for(let E=0;E<f.length&&E<o;E++){let b=f[E];if(b===s){d=E+1;break}p+=b,d=E+1}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(d))}else{let E=f;for(d=0;;){let b=E.indexOf(s);if(b!==-1){let S=E.substring(0,b);if(d+=b+s.length,E=E.substring(b+s.length),!n&&S.endsWith("\\")){p+=S.slice(0,-1);continue}p+=S,h=!0;break}else if(E.length>0){p+=E,d+=E.length,h=!1,E="";break}else{if(p.length===0){for(let S of c)t.state.env[S]="";return a&&cr(t,a),P("","",1)}h=!1;break}}t.state.groupStdin!==void 0&&!r&&(t.state.groupStdin=f.substring(d))}if(s===`
563
593
  `&&p.endsWith(`
564
- `)&&(p=p.slice(0,-1)),n||(p=p.replace(/\\(.)/g,"$1")),c.length===1&&c[0]==="REPLY")return t.state.env.REPLY=p,P("","",h?0:1);let g=sn(t.state.env),{words:y,wordStarts:w}=Eu(p,g);if(a){cr(t,a);for(let E=0;E<y.length;E++)t.state.env[`${a}_${E}`]=y[E];return P("","",h?0:1)}for(let E=0;E<c.length;E++){let b=c[E];if(E<c.length-1)t.state.env[b]=y[E]??"";else if(E<w.length){let S=bu(p.substring(w[E]),g);t.state.env[b]=S}else t.state.env[b]=""}return P("","",h?0:1)}J();function ui(t,e){if(t.state.callDepth===0&&t.state.sourceDepth===0)return B("bash: return: can only `return' from a function or sourced script\n");let r=t.state.lastExitCode;if(e.length>0){let n=e[0],s=Number.parseInt(n,10);if(n===""||Number.isNaN(s)||!/^-?\d+$/.test(n))return B(`bash: return: ${n}: numeric argument required
565
- `,2);r=(s%256+256)%256}throw new ye(r)}function xy(t){return/^[a-zA-Z0-9_/.:-]*$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}var ln=`set: usage: set [-eux] [+eux] [-o option] [+o option]
594
+ `)&&(p=p.slice(0,-1)),n||(p=p.replace(/\\(.)/g,"$1")),c.length===1&&c[0]==="REPLY")return t.state.env.REPLY=p,P("","",h?0:1);let g=cn(t.state.env),{words:m,wordStarts:w}=Ou(p,g);if(a){cr(t,a);for(let E=0;E<m.length;E++)t.state.env[`${a}_${E}`]=m[E];return P("","",h?0:1)}for(let E=0;E<c.length;E++){let b=c[E];if(E<c.length-1)t.state.env[b]=m[E]??"";else if(E<w.length){let S=Pu(p.substring(w[E]),g);t.state.env[b]=S}else t.state.env[b]=""}return P("","",h?0:1)}J();function yi(t,e){if(t.state.callDepth===0&&t.state.sourceDepth===0)return B("bash: return: can only `return' from a function or sourced script\n");let r=t.state.lastExitCode;if(e.length>0){let n=e[0],s=Number.parseInt(n,10);if(n===""||Number.isNaN(s)||!/^-?\d+$/.test(n))return B(`bash: return: ${n}: numeric argument required
595
+ `,2);r=(s%256+256)%256}throw new ye(r)}function By(t){return/^[a-zA-Z0-9_/.:-]*$/.test(t)?t:`'${t.replace(/'/g,"'\\''")}'`}var pn=`set: usage: set [-eux] [+eux] [-o option] [+o option]
566
596
  Options:
567
597
  -e Exit immediately if a command exits with non-zero status
568
598
  +e Disable -e
@@ -578,68 +608,68 @@ Options:
578
608
  +o pipefail Disable pipefail
579
609
  -o xtrace Same as -x
580
610
  +o xtrace Disable xtrace
581
- `,Bu={e:"errexit",u:"nounset",x:"xtrace",v:"verbose",f:null,h:null,C:null,n:null,a:null,b:null,m:null,B:null,H:null,P:null,T:null,E:null,p:null},Wu={errexit:"errexit",pipefail:"pipefail",nounset:"nounset",xtrace:"xtrace",verbose:"verbose",noclobber:null,noglob:null,noexec:null,allexport:null,notify:null,monitor:null,braceexpand:null,histexpand:null,physical:null,functrace:null,errtrace:null,privileged:null,hashall:null,posix:null,vi:null,emacs:null,ignoreeof:null,"interactive-comments":null,keyword:null,onecmd:null},Uu=["errexit","nounset","pipefail","verbose","xtrace"],Hu=["allexport","braceexpand","emacs","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","noclobber","noexec","noglob","nolog","notify","onecmd","physical","posix","privileged","vi"];function ju(t,e,r){e!==null&&(t.state.options[e]=r)}function wy(t,e){return e+1<t.length&&!t[e+1].startsWith("-")&&!t[e+1].startsWith("+")}function pi(t,e){if(e.includes("--help"))return Re(ln);if(e.length===0){let n=Object.entries(t.state.env).filter(([s])=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>`${s}=${xy(i)}`).join(`
611
+ `,Qu={e:"errexit",u:"nounset",x:"xtrace",v:"verbose",f:null,h:null,C:null,n:null,a:null,b:null,m:null,B:null,H:null,P:null,T:null,E:null,p:null},Xu={errexit:"errexit",pipefail:"pipefail",nounset:"nounset",xtrace:"xtrace",verbose:"verbose",noclobber:null,noglob:null,noexec:null,allexport:null,notify:null,monitor:null,braceexpand:null,histexpand:null,physical:null,functrace:null,errtrace:null,privileged:null,hashall:null,posix:null,vi:null,emacs:null,ignoreeof:null,"interactive-comments":null,keyword:null,onecmd:null},Ju=["errexit","nounset","pipefail","verbose","xtrace"],Yu=["allexport","braceexpand","emacs","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","noclobber","noexec","noglob","nolog","notify","onecmd","physical","posix","privileged","vi"];function ef(t,e,r){e!==null&&(t.state.options[e]=r)}function Wy(t,e){return e+1<t.length&&!t[e+1].startsWith("-")&&!t[e+1].startsWith("+")}function xi(t,e){if(e.includes("--help"))return Re(pn);if(e.length===0){let n=Object.entries(t.state.env).filter(([s])=>/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(s)).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>`${s}=${By(i)}`).join(`
582
612
  `);return Re(n?`${n}
583
- `:"")}let r=0;for(;r<e.length;){let n=e[r];if((n==="-o"||n==="+o")&&wy(e,r)){let s=e[r+1];if(!(s in Wu))return B(`bash: set: ${s}: invalid option name
584
- ${ln}`);ju(t,Wu[s],n==="-o"),r+=2;continue}if(n==="-o"){let s=Uu.map(a=>`${a.padEnd(16)}${t.state.options[a]?"on":"off"}`),i=Hu.map(a=>`${a.padEnd(16)}off`),o=[...s,...i].sort();return Re(`${o.join(`
613
+ `:"")}let r=0;for(;r<e.length;){let n=e[r];if((n==="-o"||n==="+o")&&Wy(e,r)){let s=e[r+1];if(!(s in Xu))return B(`bash: set: ${s}: invalid option name
614
+ ${pn}`);ef(t,Xu[s],n==="-o"),r+=2;continue}if(n==="-o"){let s=Ju.map(a=>`${a.padEnd(16)}${t.state.options[a]?"on":"off"}`),i=Yu.map(a=>`${a.padEnd(16)}off`),o=[...s,...i].sort();return Re(`${o.join(`
585
615
  `)}
586
- `)}if(n==="+o"){let s=Uu.map(a=>`set ${t.state.options[a]?"-o":"+o"} ${a}`),i=Hu.map(a=>`set +o ${a}`),o=[...s,...i].sort();return Re(`${o.join(`
616
+ `)}if(n==="+o"){let s=Ju.map(a=>`set ${t.state.options[a]?"-o":"+o"} ${a}`),i=Yu.map(a=>`set +o ${a}`),o=[...s,...i].sort();return Re(`${o.join(`
587
617
  `)}
588
- `)}if(n.length>1&&(n[0]==="-"||n[0]==="+")&&n[1]!=="-"){let s=n[0]==="-";for(let i=1;i<n.length;i++){let o=n[i];if(!(o in Bu))return B(`bash: set: ${n[0]}${o}: invalid option
589
- ${ln}`);ju(t,Bu[o],s)}r++;continue}if(n==="--")return fi(t,e.slice(r+1)),V;if(n==="-"){if(t.state.options.xtrace=!1,t.state.options.verbose=!1,r+1<e.length)return fi(t,e.slice(r+1)),V;r++;continue}if(n==="+"){r++;continue}return n.startsWith("-")||n.startsWith("+")?B(`bash: set: ${n}: invalid option
590
- ${ln}`):(fi(t,e.slice(r)),V)}return V}function fi(t,e){let r=1;for(;t.state.env[String(r)]!==void 0;)delete t.state.env[String(r)],r++;for(let n=0;n<e.length;n++)t.state.env[String(n+1)]=e[n];t.state.env["#"]=String(e.length),t.state.env["@"]=e.join(" "),t.state.env["*"]=e.join(" ")}function di(t,e){let r=1;if(e.length>0){let o=Number.parseInt(e[0],10);if(Number.isNaN(o)||o<0)return B(`bash: shift: ${e[0]}: numeric argument required
618
+ `)}if(n.length>1&&(n[0]==="-"||n[0]==="+")&&n[1]!=="-"){let s=n[0]==="-";for(let i=1;i<n.length;i++){let o=n[i];if(!(o in Qu))return B(`bash: set: ${n[0]}${o}: invalid option
619
+ ${pn}`);ef(t,Qu[o],s)}r++;continue}if(n==="--")return gi(t,e.slice(r+1)),V;if(n==="-"){if(t.state.options.xtrace=!1,t.state.options.verbose=!1,r+1<e.length)return gi(t,e.slice(r+1)),V;r++;continue}if(n==="+"){r++;continue}return n.startsWith("-")||n.startsWith("+")?B(`bash: set: ${n}: invalid option
620
+ ${pn}`):(gi(t,e.slice(r)),V)}return V}function gi(t,e){let r=1;for(;t.state.env[String(r)]!==void 0;)delete t.state.env[String(r)],r++;for(let n=0;n<e.length;n++)t.state.env[String(n+1)]=e[n];t.state.env["#"]=String(e.length),t.state.env["@"]=e.join(" "),t.state.env["*"]=e.join(" ")}function wi(t,e){let r=1;if(e.length>0){let o=Number.parseInt(e[0],10);if(Number.isNaN(o)||o<0)return B(`bash: shift: ${e[0]}: numeric argument required
591
621
  `);r=o}let n=Number.parseInt(t.state.env["#"]||"0",10);if(r>n)return B(`bash: shift: shift count out of range
592
- `);if(r===0)return V;let s=[];for(let o=1;o<=n;o++)s.push(t.state.env[String(o)]||"");let i=s.slice(r);for(let o=1;o<=n;o++)delete t.state.env[String(o)];for(let o=0;o<i.length;o++)t.state.env[String(o+1)]=i[o];return t.state.env["#"]=String(i.length),t.state.env["@"]=i.join(" "),V}J();async function hi(t,e){let r=e;if(r.length>0&&r[0]==="--"&&(r=r.slice(1)),r.length===0)return P("",`bash: source: filename argument required
622
+ `);if(r===0)return V;let s=[];for(let o=1;o<=n;o++)s.push(t.state.env[String(o)]||"");let i=s.slice(r);for(let o=1;o<=n;o++)delete t.state.env[String(o)];for(let o=0;o<i.length;o++)t.state.env[String(o+1)]=i[o];return t.state.env["#"]=String(i.length),t.state.env["@"]=i.join(" "),V}J();async function Ei(t,e){let r=e;if(r.length>0&&r[0]==="--"&&(r=r.slice(1)),r.length===0)return P("",`bash: source: filename argument required
593
623
  `,2);let n=r[0],s=null,i=null;if(n.includes("/")){let c=t.fs.resolvePath(t.state.cwd,n);try{i=await t.fs.readFile(c),s=c}catch{}}else{let l=(t.state.env.PATH||"").split(":").filter(u=>u);for(let u of l){let f=t.fs.resolvePath(t.state.cwd,`${u}/${n}`);try{if((await t.fs.stat(f)).isDirectory)continue;i=await t.fs.readFile(f),s=f;break}catch{}}if(i===null){let u=t.fs.resolvePath(t.state.cwd,n);try{i=await t.fs.readFile(u),s=u}catch{}}}if(i===null)return B(`bash: ${n}: No such file or directory
594
624
  `);let o={};if(r.length>1){for(let l=1;l<=9;l++)o[String(l)]=t.state.env[String(l)];o["#"]=t.state.env["#"],o["@"]=t.state.env["@"];let c=r.slice(1);t.state.env["#"]=String(c.length),t.state.env["@"]=c.join(" ");for(let l=0;l<c.length&&l<9;l++)t.state.env[String(l+1)]=c[l];for(let l=c.length+1;l<=9;l++)delete t.state.env[String(l)]}let a=()=>{if(t.state.sourceDepth--,r.length>1)for(let[c,l]of Object.entries(o))l===void 0?delete t.state.env[c]:t.state.env[c]=l};t.state.sourceDepth++;try{let c=st(i),l=await t.executeScript(c);return a(),l}catch(c){if(a(),c instanceof X)throw c;if(c instanceof ye)return P(c.stdout,c.stderr,c.exitCode);if(c.name==="ParseException")return B(`bash: ${n}: ${c.message}
595
- `);throw c}}function mi(t,e){let r="variable",n="",s=0;for(let i of e){if(i==="-v"){r="variable";continue}if(i==="-f"){r="function";continue}if(r==="function"){t.state.functions.delete(i);continue}let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let a=o[1],c=o[2];if(c==="@"||c==="*"){let u=ue(t,a);for(let[f]of u)delete t.state.env[`${a}_${f}`];delete t.state.env[a];continue}let l;if(/^-?\d+$/.test(c))l=Number.parseInt(c,10);else{let u=t.state.env[c];l=u?Number.parseInt(u,10):0,Number.isNaN(l)&&(l=0)}if(l<0){let u=ue(t,a),f=u.length;if(f===0){n+=`bash: unset: [${l}]: bad array subscript
625
+ `);throw c}}function bi(t,e){let r="variable",n="",s=0;for(let i of e){if(i==="-v"){r="variable";continue}if(i==="-f"){r="function";continue}if(r==="function"){t.state.functions.delete(i);continue}let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let a=o[1],c=o[2];if(c==="@"||c==="*"){let u=fe(t,a);for(let[f]of u)delete t.state.env[`${a}_${f}`];delete t.state.env[a];continue}let l;if(/^-?\d+$/.test(c))l=Number.parseInt(c,10);else{let u=t.state.env[c];l=u?Number.parseInt(u,10):0,Number.isNaN(l)&&(l=0)}if(l<0){let u=fe(t,a),f=u.length;if(f===0){n+=`bash: unset: [${l}]: bad array subscript
596
626
  `,s=1;continue}let p=f+l;if(p<0){n+=`bash: unset: [${l}]: bad array subscript
597
- `,s=1;continue}let d=u[p][0];delete t.state.env[`${a}_${d}`];continue}delete t.state.env[`${a}_${l}`];continue}delete t.state.env[i],t.state.functions.delete(i)}return P("",n,s)}function yi(t,e){return t.fs.resolvePath(t.state.cwd,e)}var Ey=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function un(t){return Ey.includes(t)}async function fn(t,e,r){let n=yi(t,r);switch(e){case"-e":case"-a":return t.fs.exists(n);case"-f":return await t.fs.exists(n)?(await t.fs.stat(n)).isFile:!1;case"-d":return await t.fs.exists(n)?(await t.fs.stat(n)).isDirectory:!1;case"-r":case"-w":case"-x":return t.fs.exists(n);case"-s":return await t.fs.exists(n)?(await t.fs.stat(n)).size>0:!1;case"-L":case"-h":try{return(await t.fs.lstat(n)).isSymbolicLink}catch{return!1}case"-k":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&512)!==0:!1;case"-g":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&1024)!==0:!1;case"-u":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&2048)!==0:!1;case"-G":case"-O":return t.fs.exists(n);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].some(i=>n===i||n.endsWith(i));case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return t.fs.exists(n);default:return!1}}var by=["-nt","-ot","-ef"];function pn(t){return by.includes(t)}async function dn(t,e,r,n){let s=yi(t,r),i=yi(t,n);switch(e){case"-nt":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime>a.mtime}catch{return!1}case"-ot":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime<a.mtime}catch{return!1}case"-ef":try{if(!await t.fs.exists(s)||!await t.fs.exists(i))return!1;let o=t.fs.resolvePath(t.state.cwd,s),a=t.fs.resolvePath(t.state.cwd,i);return o===a}catch{return!1}default:return!1}}var Sy=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function hn(t){return Sy.has(t)}function mn(t,e,r){switch(t){case"-eq":return e===r;case"-ne":return e!==r;case"-lt":return e<r;case"-le":return e<=r;case"-gt":return e>r;case"-ge":return e>=r}}function yn(t){return t==="="||t==="=="||t==="!="}function gn(t,e,r,n=!1){let s=n?xn(e,r):e===r;return t==="!="?!s:s}var Ay=new Set(["-z","-n"]);function wn(t){return Ay.has(t)}function En(t,e){switch(t){case"-z":return e==="";case"-n":return e!==""}}function bn(t,e){let r=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let n=r[1],s=r[2];s=s.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(o,a)=>t.state.env[a]||"");let i;if(/^-?\d+$/.test(s))i=Number.parseInt(s,10);else try{let o=Function(`"use strict"; return (${s})`)();i=typeof o=="number"?Math.floor(o):0}catch{let o=t.state.env[s];i=o?Number.parseInt(o,10):0}if(i<0){let o=ar(t,n);if(o.length===0||(i=Math.max(...o)+1+i,i<0))return!1}return`${n}_${i}`in t.state.env}return e in t.state.env}async function at(t,e){switch(e.type){case"CondBinary":{let r=await Y(t,e.left),n=await Y(t,e.right),s=e.right.parts.length>0&&e.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped");if(yn(e.operator))return gn(e.operator,r,n,!s);if(hn(e.operator))return mn(e.operator,Gu(t,r),Gu(t,n));if(pn(e.operator))return dn(t,e.operator,r,n);switch(e.operator){case"=~":try{let i=new RegExp(n),o=r.match(i);if(o){t.state.env.BASH_REMATCH=o[0];for(let a=1;a<o.length;a++)t.state.env[`BASH_REMATCH_${a}`]=o[a]||""}return o!==null}catch{throw new Error("syntax error in regular expression")}case"<":return r<n;case">":return r>n;default:return!1}}case"CondUnary":{let r=await Y(t,e.operand);return un(e.operator)?fn(t,e.operator,r):wn(e.operator)?En(e.operator,r):e.operator==="-v"?bn(t,r):e.operator==="-o"?xi(t,r):!1}case"CondNot":return!await at(t,e.operand);case"CondAnd":return await at(t,e.left)?await at(t,e.right):!1;case"CondOr":return await at(t,e.left)?!0:await at(t,e.right);case"CondGroup":return await at(t,e.expression);case"CondWord":return await Y(t,e.word)!=="";default:return!1}}async function Gt(t,e){if(e.length===0)return P("","",1);if(e.length===1)return ce(!!e[0]);if(e.length===2){let n=e[0],s=e[1];return n==="("?B(`test: '(' without matching ')'
598
- `,2):un(n)?ce(await fn(t,n,s)):wn(n)?ce(En(n,s)):n==="!"?ce(!s):n==="-v"?ce(bn(t,s)):n==="-o"?ce(xi(t,s)):n==="="||n==="=="||n==="!="||n==="<"||n===">"||n==="-eq"||n==="-ne"||n==="-lt"||n==="-le"||n==="-gt"||n==="-ge"||n==="-nt"||n==="-ot"||n==="-ef"?B(`test: ${n}: unary operator expected
599
- `,2):P("","",1)}if(e.length===3){let n=e[0],s=e[1],i=e[2];if(yn(s))return ce(gn(s,n,i));if(hn(s)){let o=Sn(n),a=Sn(i);return!o.valid||!a.valid?P("","",2):ce(mn(s,o.value,a.value))}if(pn(s))return ce(await dn(t,s,n,i));switch(s){case"-a":return ce(n!==""&&i!=="");case"-o":return ce(n!==""||i!=="");case">":return ce(n>i);case"<":return ce(n<i)}if(n==="!"){let o=await Gt(t,[s,i]);return P("",o.stderr,o.exitCode===0?1:o.exitCode===1?0:o.exitCode)}if(n==="("&&i===")")return ce(s!=="")}if(e.length===4){if(e[0]==="!"){let n=await Gt(t,e.slice(1));return P("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(e[0]==="("&&e[3]===")")return Gt(t,[e[1],e[2]])}let r=await Vu(t,e,0);return r.pos<e.length?B(`test: too many arguments
600
- `,2):ce(r.value)}async function Vu(t,e,r){return Cy(t,e,r)}async function Cy(t,e,r){let{value:n,pos:s}=await zu(t,e,r);for(;e[s]==="-o";){let i=await zu(t,e,s+1);n=n||i.value,s=i.pos}return{value:n,pos:s}}async function zu(t,e,r){let{value:n,pos:s}=await gi(t,e,r);for(;e[s]==="-a";){let i=await gi(t,e,s+1);n=n&&i.value,s=i.pos}return{value:n,pos:s}}async function gi(t,e,r){if(e[r]==="!"){let{value:n,pos:s}=await gi(t,e,r+1);return{value:!n,pos:s}}return ky(t,e,r)}async function ky(t,e,r){let n=e[r];if(n==="("){let{value:i,pos:o}=await Vu(t,e,r+1);return{value:i,pos:e[o]===")"?o+1:o}}if(un(n)){let i=e[r+1]??"";return{value:await fn(t,n,i),pos:r+2}}if(wn(n)){let i=e[r+1]??"";return{value:En(n,i),pos:r+2}}if(n==="-v"){let i=e[r+1]??"";return{value:bn(t,i),pos:r+2}}if(n==="-o"){let i=e[r+1]??"";return{value:xi(t,i),pos:r+2}}let s=e[r+1];if(yn(s)){let i=n,o=e[r+2]??"";return{value:gn(s,i,o),pos:r+3}}if(hn(s)){let i=Sn(n),o=Sn(e[r+2]??"0");return!i.valid||!o.valid?{value:!1,pos:r+3}:{value:mn(s,i.value,o.value),pos:r+3}}if(pn(s)){let i=n,o=e[r+2]??"";return{value:await dn(t,s,i,o),pos:r+3}}return{value:n!==void 0&&n!=="",pos:r+1}}function xn(t,e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="\\")if(n+1<e.length){let i=e[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n++}else r+="\\\\";else if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=e.indexOf("]",n+1);i!==-1?(r+=e.slice(n,i+1),n=i):r+="\\["}else/[\\^$.|+(){}]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r).test(t)}function xi(t,e){let n={errexit:()=>t.state.options.errexit===!0,nounset:()=>t.state.options.nounset===!0,pipefail:()=>t.state.options.pipefail===!0,xtrace:()=>t.state.options.xtrace===!0,e:()=>t.state.options.errexit===!0,u:()=>t.state.options.nounset===!0,x:()=>t.state.options.xtrace===!0}[e];return n?n():!1}function Gu(t,e){if(e=e.trim(),e==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(e))return qu(e);try{let r=new he,n=le(r,e);return K(t,n.expression)}catch{return qu(e)}}function Ny(t,e){let r=0;for(let n of t){let s;if(n>="0"&&n<="9")s=n.charCodeAt(0)-48;else if(n>="a"&&n<="z")s=n.charCodeAt(0)-97+10;else if(n>="A"&&n<="Z")s=n.charCodeAt(0)-65+36;else if(n==="@")s=62;else if(n==="_")s=63;else return Number.NaN;if(s>=e)return Number.NaN;r=r*e+s}return r}function qu(t){if(t=t.trim(),t==="")return 0;let e=!1;t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r,n=t.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(n){let s=Number.parseInt(n[1],10);s>=2&&s<=64?r=Ny(n[2],s):r=0}else/^0[xX][0-9a-fA-F]+$/.test(t)?r=Number.parseInt(t,16):/^0[0-7]+$/.test(t)?r=Number.parseInt(t,8):r=Number.parseInt(t,10);return Number.isNaN(r)&&(r=0),e?-r:r}function Sn(t){if(t=t.trim(),t==="")return{value:0,valid:!0};let e=!1;if(t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1)),!/^\d+$/.test(t))return{value:0,valid:!1};let r=Number.parseInt(t,10);return Number.isNaN(r)?{value:0,valid:!1}:{value:e?-r:r,valid:!0}}J();async function wi(t,e){let r=t.state.inCondition;t.state.inCondition=!0;let n="",s="",i=0;try{for(let o of e){let a=await t.executeStatement(o);n+=a.stdout,s+=a.stderr,i=a.exitCode}}finally{t.state.inCondition=r}return{stdout:n,stderr:s,exitCode:i}}J();We();function fr(t,e,r,n){if(t instanceof me)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"break",stdout:e,stderr:r};if(t instanceof Ee)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"continue",stdout:e,stderr:r};if(t instanceof ye||t instanceof He||t instanceof X||t instanceof W)return t.prependOutput(e,r),{action:"rethrow",stdout:e,stderr:r,error:t};let s=re(t);return{action:"error",stdout:e,stderr:`${r}${s}
601
- `,exitCode:1}}J();We();async function An(t,e,r="",n=""){let s=r,i=n,o=0;try{for(let a of e){let c=await t.executeStatement(a);s+=c.stdout,i+=c.stderr,o=c.exitCode}}catch(a){if(Nr(a)||a instanceof He||a instanceof X||a instanceof W||a instanceof Ge)throw a.prependOutput(s,i),a;return{stdout:s,stderr:`${i}${re(a)}
602
- `,exitCode:1}}return{stdout:s,stderr:i,exitCode:o}}async function Ku(t,e){let r="",n="";for(let s of e.clauses){let i=await wi(t,s.condition);if(r+=i.stdout,n+=i.stderr,i.exitCode===0)return An(t,s.body,r,n)}return e.elseBody?An(t,e.elseBody,r,n):P(r,n,0)}async function Zu(t,e){let r="",n="",s=0,i=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.variable))return B(`bash: \`${e.variable}': not a valid identifier
603
- `);let o=[];if(e.words===null)o=(t.state.env["@"]||"").split(" ").filter(Boolean);else if(e.words.length===0)o=[];else for(let a of e.words){let c=await ur(t,a);o.push(...c.values)}t.state.loopDepth++;try{for(let a of o){i++,i>t.limits.maxLoopIterations&&Ye(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),t.state.env[e.variable]=a;try{for(let c of e.body){let l=await t.executeStatement(c);r+=l.stdout,n+=l.stderr,s=l.exitCode}}catch(c){let l=fr(c,r,n,t.state.loopDepth);if(r=l.stdout,n=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return P(r,n,l.exitCode??1);throw l.error}}}finally{t.state.loopDepth--}return P(r,n,s)}async function Qu(t,e){let r="",n="",s=0,i=0;e.init&&await Z(t,e.init.expression),t.state.loopDepth++;try{for(;i++,i>t.limits.maxLoopIterations&&Ye(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),!(e.condition&&await Z(t,e.condition.expression)===0);){try{for(let o of e.body){let a=await t.executeStatement(o);r+=a.stdout,n+=a.stderr,s=a.exitCode}}catch(o){let a=fr(o,r,n,t.state.loopDepth);if(r=a.stdout,n=a.stderr,a.action==="break")break;if(a.action==="continue"){e.update&&await Z(t,e.update.expression);continue}if(a.action==="error")return P(r,n,a.exitCode??1);throw a.error}e.update&&await Z(t,e.update.expression)}}finally{t.state.loopDepth--}return P(r,n,s)}async function Xu(t,e,r=""){let n="",s="",i=0,o=0,a=r;for(let l of e.redirections)if((l.operator==="<<"||l.operator==="<<-")&&l.target.type==="HereDoc"){let u=l.target,f=await Y(t,u.content);u.stripTabs&&(f=f.split(`
627
+ `,s=1;continue}let d=u[p][0];delete t.state.env[`${a}_${d}`];continue}delete t.state.env[`${a}_${l}`];continue}delete t.state.env[i],t.state.functions.delete(i)}return P("",n,s)}function Si(t,e){return t.fs.resolvePath(t.state.cwd,e)}var Uy=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function dn(t){return Uy.includes(t)}async function hn(t,e,r){let n=Si(t,r);switch(e){case"-e":case"-a":return t.fs.exists(n);case"-f":return await t.fs.exists(n)?(await t.fs.stat(n)).isFile:!1;case"-d":return await t.fs.exists(n)?(await t.fs.stat(n)).isDirectory:!1;case"-r":case"-w":case"-x":return t.fs.exists(n);case"-s":return await t.fs.exists(n)?(await t.fs.stat(n)).size>0:!1;case"-L":case"-h":try{return(await t.fs.lstat(n)).isSymbolicLink}catch{return!1}case"-k":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&512)!==0:!1;case"-g":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&1024)!==0:!1;case"-u":return await t.fs.exists(n)?((await t.fs.stat(n)).mode&2048)!==0:!1;case"-G":case"-O":return t.fs.exists(n);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].some(i=>n===i||n.endsWith(i));case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return t.fs.exists(n);default:return!1}}var zy=["-nt","-ot","-ef"];function mn(t){return zy.includes(t)}async function yn(t,e,r,n){let s=Si(t,r),i=Si(t,n);switch(e){case"-nt":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime>a.mtime}catch{return!1}case"-ot":try{let o=await t.fs.stat(s),a=await t.fs.stat(i);return o.mtime<a.mtime}catch{return!1}case"-ef":try{if(!await t.fs.exists(s)||!await t.fs.exists(i))return!1;let o=t.fs.resolvePath(t.state.cwd,s),a=t.fs.resolvePath(t.state.cwd,i);return o===a}catch{return!1}default:return!1}}var Hy=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function gn(t){return Hy.has(t)}function xn(t,e,r){switch(t){case"-eq":return e===r;case"-ne":return e!==r;case"-lt":return e<r;case"-le":return e<=r;case"-gt":return e>r;case"-ge":return e>=r}}function wn(t){return t==="="||t==="=="||t==="!="}function En(t,e,r,n=!1){let s=n?bn(e,r):e===r;return t==="!="?!s:s}var jy=new Set(["-z","-n"]);function Sn(t){return jy.has(t)}function An(t,e){switch(t){case"-z":return e==="";case"-n":return e!==""}}function Cn(t,e){let r=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(r){let n=r[1],s=r[2];s=s.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(o,a)=>t.state.env[a]||"");let i;if(/^-?\d+$/.test(s))i=Number.parseInt(s,10);else try{let o=Function(`"use strict"; return (${s})`)();i=typeof o=="number"?Math.floor(o):0}catch{let o=t.state.env[s];i=o?Number.parseInt(o,10):0}if(i<0){let o=ar(t,n);if(o.length===0||(i=Math.max(...o)+1+i,i<0))return!1}return`${n}_${i}`in t.state.env}return e in t.state.env}async function at(t,e){switch(e.type){case"CondBinary":{let r=await Y(t,e.left),n=await Y(t,e.right),s=e.right.parts.length>0&&e.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped");if(wn(e.operator))return En(e.operator,r,n,!s);if(gn(e.operator))return xn(e.operator,rf(t,r),rf(t,n));if(mn(e.operator))return yn(t,e.operator,r,n);switch(e.operator){case"=~":try{let i=new RegExp(n),o=r.match(i);if(o){t.state.env.BASH_REMATCH=o[0];for(let a=1;a<o.length;a++)t.state.env[`BASH_REMATCH_${a}`]=o[a]||""}return o!==null}catch{throw new Error("syntax error in regular expression")}case"<":return r<n;case">":return r>n;default:return!1}}case"CondUnary":{let r=await Y(t,e.operand);return dn(e.operator)?hn(t,e.operator,r):Sn(e.operator)?An(e.operator,r):e.operator==="-v"?Cn(t,r):e.operator==="-o"?Ci(t,r):!1}case"CondNot":return!await at(t,e.operand);case"CondAnd":return await at(t,e.left)?await at(t,e.right):!1;case"CondOr":return await at(t,e.left)?!0:await at(t,e.right);case"CondGroup":return await at(t,e.expression);case"CondWord":return await Y(t,e.word)!=="";default:return!1}}async function Gt(t,e){if(e.length===0)return P("","",1);if(e.length===1)return ce(!!e[0]);if(e.length===2){let n=e[0],s=e[1];return n==="("?B(`test: '(' without matching ')'
628
+ `,2):dn(n)?ce(await hn(t,n,s)):Sn(n)?ce(An(n,s)):n==="!"?ce(!s):n==="-v"?ce(Cn(t,s)):n==="-o"?ce(Ci(t,s)):n==="="||n==="=="||n==="!="||n==="<"||n===">"||n==="-eq"||n==="-ne"||n==="-lt"||n==="-le"||n==="-gt"||n==="-ge"||n==="-nt"||n==="-ot"||n==="-ef"?B(`test: ${n}: unary operator expected
629
+ `,2):P("","",1)}if(e.length===3){let n=e[0],s=e[1],i=e[2];if(wn(s))return ce(En(s,n,i));if(gn(s)){let o=kn(n),a=kn(i);return!o.valid||!a.valid?P("","",2):ce(xn(s,o.value,a.value))}if(mn(s))return ce(await yn(t,s,n,i));switch(s){case"-a":return ce(n!==""&&i!=="");case"-o":return ce(n!==""||i!=="");case">":return ce(n>i);case"<":return ce(n<i)}if(n==="!"){let o=await Gt(t,[s,i]);return P("",o.stderr,o.exitCode===0?1:o.exitCode===1?0:o.exitCode)}if(n==="("&&i===")")return ce(s!=="")}if(e.length===4){if(e[0]==="!"){let n=await Gt(t,e.slice(1));return P("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(e[0]==="("&&e[3]===")")return Gt(t,[e[1],e[2]])}let r=await sf(t,e,0);return r.pos<e.length?B(`test: too many arguments
630
+ `,2):ce(r.value)}async function sf(t,e,r){return Gy(t,e,r)}async function Gy(t,e,r){let{value:n,pos:s}=await tf(t,e,r);for(;e[s]==="-o";){let i=await tf(t,e,s+1);n=n||i.value,s=i.pos}return{value:n,pos:s}}async function tf(t,e,r){let{value:n,pos:s}=await Ai(t,e,r);for(;e[s]==="-a";){let i=await Ai(t,e,s+1);n=n&&i.value,s=i.pos}return{value:n,pos:s}}async function Ai(t,e,r){if(e[r]==="!"){let{value:n,pos:s}=await Ai(t,e,r+1);return{value:!n,pos:s}}return qy(t,e,r)}async function qy(t,e,r){let n=e[r];if(n==="("){let{value:i,pos:o}=await sf(t,e,r+1);return{value:i,pos:e[o]===")"?o+1:o}}if(dn(n)){let i=e[r+1]??"";return{value:await hn(t,n,i),pos:r+2}}if(Sn(n)){let i=e[r+1]??"";return{value:An(n,i),pos:r+2}}if(n==="-v"){let i=e[r+1]??"";return{value:Cn(t,i),pos:r+2}}if(n==="-o"){let i=e[r+1]??"";return{value:Ci(t,i),pos:r+2}}let s=e[r+1];if(wn(s)){let i=n,o=e[r+2]??"";return{value:En(s,i,o),pos:r+3}}if(gn(s)){let i=kn(n),o=kn(e[r+2]??"0");return!i.valid||!o.valid?{value:!1,pos:r+3}:{value:xn(s,i.value,o.value),pos:r+3}}if(mn(s)){let i=n,o=e[r+2]??"";return{value:await yn(t,s,i,o),pos:r+3}}return{value:n!==void 0&&n!=="",pos:r+1}}function bn(t,e){let r="^";for(let n=0;n<e.length;n++){let s=e[n];if(s==="\\")if(n+1<e.length){let i=e[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?r+=`\\${i}`:r+=i,n++}else r+="\\\\";else if(s==="*")r+=".*";else if(s==="?")r+=".";else if(s==="["){let i=e.indexOf("]",n+1);i!==-1?(r+=e.slice(n,i+1),n=i):r+="\\["}else/[\\^$.|+(){}]/.test(s)?r+=`\\${s}`:r+=s}return r+="$",new RegExp(r).test(t)}function Ci(t,e){let n={errexit:()=>t.state.options.errexit===!0,nounset:()=>t.state.options.nounset===!0,pipefail:()=>t.state.options.pipefail===!0,xtrace:()=>t.state.options.xtrace===!0,e:()=>t.state.options.errexit===!0,u:()=>t.state.options.nounset===!0,x:()=>t.state.options.xtrace===!0}[e];return n?n():!1}function rf(t,e){if(e=e.trim(),e==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(e))return nf(e);try{let r=new he,n=ue(r,e);return K(t,n.expression)}catch{return nf(e)}}function Vy(t,e){let r=0;for(let n of t){let s;if(n>="0"&&n<="9")s=n.charCodeAt(0)-48;else if(n>="a"&&n<="z")s=n.charCodeAt(0)-97+10;else if(n>="A"&&n<="Z")s=n.charCodeAt(0)-65+36;else if(n==="@")s=62;else if(n==="_")s=63;else return Number.NaN;if(s>=e)return Number.NaN;r=r*e+s}return r}function nf(t){if(t=t.trim(),t==="")return 0;let e=!1;t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1));let r,n=t.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(n){let s=Number.parseInt(n[1],10);s>=2&&s<=64?r=Vy(n[2],s):r=0}else/^0[xX][0-9a-fA-F]+$/.test(t)?r=Number.parseInt(t,16):/^0[0-7]+$/.test(t)?r=Number.parseInt(t,8):r=Number.parseInt(t,10);return Number.isNaN(r)&&(r=0),e?-r:r}function kn(t){if(t=t.trim(),t==="")return{value:0,valid:!0};let e=!1;if(t.startsWith("-")?(e=!0,t=t.slice(1)):t.startsWith("+")&&(t=t.slice(1)),!/^\d+$/.test(t))return{value:0,valid:!1};let r=Number.parseInt(t,10);return Number.isNaN(r)?{value:0,valid:!1}:{value:e?-r:r,valid:!0}}J();async function ki(t,e){let r=t.state.inCondition;t.state.inCondition=!0;let n="",s="",i=0;try{for(let o of e){let a=await t.executeStatement(o);n+=a.stdout,s+=a.stderr,i=a.exitCode}}finally{t.state.inCondition=r}return{stdout:n,stderr:s,exitCode:i}}J();We();function fr(t,e,r,n){if(t instanceof me)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"break",stdout:e,stderr:r};if(t instanceof Ee)return e+=t.stdout,r+=t.stderr,t.levels>1&&n>1?(t.levels--,t.stdout=e,t.stderr=r,{action:"rethrow",stdout:e,stderr:r,error:t}):{action:"continue",stdout:e,stderr:r};if(t instanceof ye||t instanceof ze||t instanceof X||t instanceof W)return t.prependOutput(e,r),{action:"rethrow",stdout:e,stderr:r,error:t};let s=re(t);return{action:"error",stdout:e,stderr:`${r}${s}
631
+ `,exitCode:1}}J();We();async function Nn(t,e,r="",n=""){let s=r,i=n,o=0;try{for(let a of e){let c=await t.executeStatement(a);s+=c.stdout,i+=c.stderr,o=c.exitCode}}catch(a){if(Nr(a)||a instanceof ze||a instanceof X||a instanceof W||a instanceof Ge)throw a.prependOutput(s,i),a;return{stdout:s,stderr:`${i}${re(a)}
632
+ `,exitCode:1}}return{stdout:s,stderr:i,exitCode:o}}async function of(t,e){let r="",n="";for(let s of e.clauses){let i=await ki(t,s.condition);if(r+=i.stdout,n+=i.stderr,i.exitCode===0)return Nn(t,s.body,r,n)}return e.elseBody?Nn(t,e.elseBody,r,n):P(r,n,0)}async function af(t,e){let r="",n="",s=0,i=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.variable))return B(`bash: \`${e.variable}': not a valid identifier
633
+ `);let o=[];if(e.words===null)o=(t.state.env["@"]||"").split(" ").filter(Boolean);else if(e.words.length===0)o=[];else for(let a of e.words){let c=await ur(t,a);o.push(...c.values)}t.state.loopDepth++;try{for(let a of o){i++,i>t.limits.maxLoopIterations&&Ye(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),t.state.env[e.variable]=a;try{for(let c of e.body){let l=await t.executeStatement(c);r+=l.stdout,n+=l.stderr,s=l.exitCode}}catch(c){let l=fr(c,r,n,t.state.loopDepth);if(r=l.stdout,n=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return P(r,n,l.exitCode??1);throw l.error}}}finally{t.state.loopDepth--}return P(r,n,s)}async function cf(t,e){let r="",n="",s=0,i=0;e.init&&await Z(t,e.init.expression),t.state.loopDepth++;try{for(;i++,i>t.limits.maxLoopIterations&&Ye(`for loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),!(e.condition&&await Z(t,e.condition.expression)===0);){try{for(let o of e.body){let a=await t.executeStatement(o);r+=a.stdout,n+=a.stderr,s=a.exitCode}}catch(o){let a=fr(o,r,n,t.state.loopDepth);if(r=a.stdout,n=a.stderr,a.action==="break")break;if(a.action==="continue"){e.update&&await Z(t,e.update.expression);continue}if(a.action==="error")return P(r,n,a.exitCode??1);throw a.error}e.update&&await Z(t,e.update.expression)}}finally{t.state.loopDepth--}return P(r,n,s)}async function lf(t,e,r=""){let n="",s="",i=0,o=0,a=r;for(let l of e.redirections)if((l.operator==="<<"||l.operator==="<<-")&&l.target.type==="HereDoc"){let u=l.target,f=await Y(t,u.content);u.stripTabs&&(f=f.split(`
604
634
  `).map(p=>p.replace(/^\t+/,"")).join(`
605
635
  `)),a=f}else if(l.operator==="<<<"&&l.target.type==="Word")a=`${await Y(t,l.target)}
606
636
  `;else if(l.operator==="<"&&l.target.type==="Word")try{let u=await Y(t,l.target),f=t.fs.resolvePath(t.state.cwd,u);a=await t.fs.readFile(f)}catch{let u=await Y(t,l.target);return B(`bash: ${u}: No such file or directory
607
- `)}let c=t.state.groupStdin;a&&(t.state.groupStdin=a),t.state.loopDepth++;try{for(;;){o++,o>t.limits.maxLoopIterations&&Ye(`while loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,s);let l=0,u=!1,f=!1,p=t.state.inCondition;t.state.inCondition=!0;try{for(let d of e.condition){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,l=h.exitCode}}catch(d){if(d instanceof me){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;u=!0}else if(d instanceof Ee){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;f=!0}else throw t.state.inCondition=p,d}finally{t.state.inCondition=p}if(u)break;if(!f){if(l!==0)break;try{for(let d of e.body){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,i=h.exitCode}}catch(d){let h=fr(d,n,s,t.state.loopDepth);if(n=h.stdout,s=h.stderr,h.action==="break")break;if(h.action==="continue")continue;if(h.action==="error")return P(n,s,h.exitCode??1);throw h.error}}}}finally{t.state.loopDepth--,t.state.groupStdin=c}return P(n,s,i)}async function Ju(t,e){let r="",n="",s=0,i=0;t.state.loopDepth++;try{for(;;){i++,i>t.limits.maxLoopIterations&&Ye(`until loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let o=await wi(t,e.condition);if(r+=o.stdout,n+=o.stderr,o.exitCode===0)break;try{for(let a of e.body){let c=await t.executeStatement(a);r+=c.stdout,n+=c.stderr,s=c.exitCode}}catch(a){let c=fr(a,r,n,t.state.loopDepth);if(r=c.stdout,n=c.stderr,c.action==="break")break;if(c.action==="continue")continue;if(c.action==="error")return P(r,n,c.exitCode??1);throw c.error}}}finally{t.state.loopDepth--}return P(r,n,s)}async function Yu(t,e){let r="",n="",s=0,i=await Y(t,e.word),o=!1;for(let a=0;a<e.items.length;a++){let c=e.items[a],l=o;if(!o)for(let u of c.patterns){let f=await Y(t,u);if(Nu(u)&&(f=Iu(f)),xn(i,f)){l=!0;break}}if(l){let u=await An(t,c.body,r,n);if(r=u.stdout,n=u.stderr,s=u.exitCode,c.terminator===";;")break;c.terminator===";&"?o=!0:o=!1}else o=!1}return P(r,n,s)}J();J();function ef(t,e){return t.state.functions.set(e.name,e),V}async function tf(t,e,r){t.state.callDepth++,t.state.callDepth>t.limits.maxCallDepth&&(t.state.callDepth--,Ye(`${e.name}: maximum recursion depth (${t.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),t.state.localScopes.push(new Map);let n={};for(let i=0;i<r.length;i++)n[String(i+1)]=t.state.env[String(i+1)],t.state.env[String(i+1)]=r[i];n["@"]=t.state.env["@"],n["#"]=t.state.env["#"],t.state.env["@"]=r.join(" "),t.state.env["#"]=String(r.length);let s=()=>{let i=t.state.localScopes.pop();if(i)for(let[o,a]of i)a===void 0?delete t.state.env[o]:t.state.env[o]=a;for(let[o,a]of Object.entries(n))a===void 0?delete t.state.env[o]:t.state.env[o]=a;t.state.callDepth--};try{let i=await t.executeCommand(e.body,"");return s(),i}catch(i){if(s(),i instanceof ye)return P(i.stdout,i.stderr,i.exitCode);throw i}}We();async function rf(t,e,r){let{stdout:n,stderr:s,exitCode:i}=e;for(let o of r){if(o.target.type==="HereDoc")continue;let a=await Y(t,o.target);switch(o.operator){case">":{let c=o.fd??1;if(c===1){let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s+=`bash: ${a}: Is a directory
637
+ `)}let c=t.state.groupStdin;a&&(t.state.groupStdin=a),t.state.loopDepth++;try{for(;;){o++,o>t.limits.maxLoopIterations&&Ye(`while loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,s);let l=0,u=!1,f=!1,p=t.state.inCondition;t.state.inCondition=!0;try{for(let d of e.condition){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,l=h.exitCode}}catch(d){if(d instanceof me){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;u=!0}else if(d instanceof Ee){if(n+=d.stdout,s+=d.stderr,d.levels>1&&t.state.loopDepth>1)throw d.levels--,d.stdout=n,d.stderr=s,t.state.inCondition=p,d;f=!0}else throw t.state.inCondition=p,d}finally{t.state.inCondition=p}if(u)break;if(!f){if(l!==0)break;try{for(let d of e.body){let h=await t.executeStatement(d);n+=h.stdout,s+=h.stderr,i=h.exitCode}}catch(d){let h=fr(d,n,s,t.state.loopDepth);if(n=h.stdout,s=h.stderr,h.action==="break")break;if(h.action==="continue")continue;if(h.action==="error")return P(n,s,h.exitCode??1);throw h.error}}}}finally{t.state.loopDepth--,t.state.groupStdin=c}return P(n,s,i)}async function uf(t,e){let r="",n="",s=0,i=0;t.state.loopDepth++;try{for(;;){i++,i>t.limits.maxLoopIterations&&Ye(`until loop: too many iterations (${t.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let o=await ki(t,e.condition);if(r+=o.stdout,n+=o.stderr,o.exitCode===0)break;try{for(let a of e.body){let c=await t.executeStatement(a);r+=c.stdout,n+=c.stderr,s=c.exitCode}}catch(a){let c=fr(a,r,n,t.state.loopDepth);if(r=c.stdout,n=c.stderr,c.action==="break")break;if(c.action==="continue")continue;if(c.action==="error")return P(r,n,c.exitCode??1);throw c.error}}}finally{t.state.loopDepth--}return P(r,n,s)}async function ff(t,e){let r="",n="",s=0,i=await Y(t,e.word),o=!1;for(let a=0;a<e.items.length;a++){let c=e.items[a],l=o;if(!o)for(let u of c.patterns){let f=await Y(t,u);if(Mu(u)&&(f=_u(f)),bn(i,f)){l=!0;break}}if(l){let u=await Nn(t,c.body,r,n);if(r=u.stdout,n=u.stderr,s=u.exitCode,c.terminator===";;")break;c.terminator===";&"?o=!0:o=!1}else o=!1}return P(r,n,s)}J();J();function pf(t,e){return t.state.functions.set(e.name,e),V}async function df(t,e,r){t.state.callDepth++,t.state.callDepth>t.limits.maxCallDepth&&(t.state.callDepth--,Ye(`${e.name}: maximum recursion depth (${t.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),t.state.localScopes.push(new Map);let n={};for(let i=0;i<r.length;i++)n[String(i+1)]=t.state.env[String(i+1)],t.state.env[String(i+1)]=r[i];n["@"]=t.state.env["@"],n["#"]=t.state.env["#"],t.state.env["@"]=r.join(" "),t.state.env["#"]=String(r.length);let s=()=>{let i=t.state.localScopes.pop();if(i)for(let[o,a]of i)a===void 0?delete t.state.env[o]:t.state.env[o]=a;for(let[o,a]of Object.entries(n))a===void 0?delete t.state.env[o]:t.state.env[o]=a;t.state.callDepth--};try{let i=await t.executeCommand(e.body,"");return s(),i}catch(i){if(s(),i instanceof ye)return P(i.stdout,i.stderr,i.exitCode);throw i}}We();async function hf(t,e,r){let{stdout:n,stderr:s,exitCode:i}=e;for(let o of r){if(o.target.type==="HereDoc")continue;let a=await Y(t,o.target);switch(o.operator){case">":{let c=o.fd??1;if(c===1){let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s+=`bash: ${a}: Is a directory
608
638
  `,i=1,n="";break}}catch{}await t.fs.writeFile(l,n),n=""}else if(c===2)if(a==="/dev/null")s="";else{let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s+=`bash: ${a}: Is a directory
609
639
  `,i=1;break}}catch{}await t.fs.writeFile(l,s),s=""}break}case">>":{let c=o.fd??1;if(c===1){let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s+=`bash: ${a}: Is a directory
610
640
  `,i=1,n="";break}}catch{}await t.fs.appendFile(l,n),n=""}else if(c===2){let l=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(l)).isDirectory){s+=`bash: ${a}: Is a directory
611
641
  `,i=1;break}}catch{}await t.fs.appendFile(l,s),s=""}break}case">&":{let c=o.fd??1;a==="2"||a==="&2"?c===1&&(s+=n,n=""):(a==="1"||a==="&1")&&(n+=s,s="");break}case"&>":{let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s=`bash: ${a}: Is a directory
612
642
  `,i=1,n="";break}}catch{}await t.fs.writeFile(c,n+s),n="",s="";break}case"&>>":{let c=t.fs.resolvePath(t.state.cwd,a);try{if((await t.fs.stat(c)).isDirectory){s=`bash: ${a}: Is a directory
613
- `,i=1,n="";break}}catch{}await t.fs.appendFile(c,n+s),n="",s="";break}}}return P(n,s,i)}var pr=class{ctx;constructor(e,r){this.ctx={state:r,fs:e.fs,commands:e.commands,limits:e.limits,execFn:e.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:e.fetch,sleep:e.sleep}}async executeScript(e){let r="",n="",s=0;for(let i of e.statements)try{let o=await this.executeStatement(i);r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}catch(o){if(o instanceof X)throw o.prependOutput(r,n),o;if(o instanceof W)throw o;if(o instanceof He)return r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Pe)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Ke)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof me||o instanceof Ee){if(this.ctx.state.loopDepth>0)throw o.prependOutput(r,n),o;r+=o.stdout,n+=o.stderr;continue}throw o instanceof ye&&o.prependOutput(r,n),o}return{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}}}async executeStatement(e){this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&Ye(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands");let r="",n="",s=0,i=-1,o=!1;for(let a=0;a<e.pipelines.length;a++){let c=e.pipelines[a],l=a>0?e.operators[a-1]:null;if(l==="&&"&&s!==0||l==="||"&&s===0)continue;let u=await this.executePipeline(c);r+=u.stdout,n+=u.stderr,s=u.exitCode,i=a,o=c.negated,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}if(this.ctx.state.options.errexit&&s!==0&&i===e.pipelines.length-1&&!o&&!this.ctx.state.inCondition)throw new He(s,r,n);return P(r,n,s)}async executePipeline(e){let r="",n=V,s=0,i=[];for(let o=0;o<e.commands.length;o++){let a=e.commands[o],c=o===e.commands.length-1,l;try{l=await this.executeCommand(a,r)}catch(u){if(u instanceof Ke)l={stdout:u.stdout,stderr:u.stderr,exitCode:1};else if(u instanceof X&&e.commands.length>1)l={stdout:u.stdout,stderr:u.stderr,exitCode:u.exitCode};else throw u}i.push(l.exitCode),l.exitCode!==0&&(s=l.exitCode),c?n=l:(r=l.stdout,n={stdout:"",stderr:l.stderr,exitCode:l.exitCode})}for(let o of Object.keys(this.ctx.state.env))o.startsWith("PIPESTATUS_")&&delete this.ctx.state.env[o];for(let o=0;o<i.length;o++)this.ctx.state.env[`PIPESTATUS_${o}`]=String(i[o]);return this.ctx.state.env.PIPESTATUS__length=String(i.length),this.ctx.state.options.pipefail&&s!==0&&(n={...n,exitCode:s}),e.negated&&(n={...n,exitCode:n.exitCode===0?1:0}),n}async executeCommand(e,r){switch(e.type){case"SimpleCommand":return this.executeSimpleCommand(e,r);case"If":return Ku(this.ctx,e);case"For":return Zu(this.ctx,e);case"CStyleFor":return Qu(this.ctx,e);case"While":return Xu(this.ctx,e,r);case"Until":return Ju(this.ctx,e);case"Case":return Yu(this.ctx,e);case"Subshell":return this.executeSubshell(e,r);case"Group":return this.executeGroup(e,r);case"FunctionDef":return ef(this.ctx,e);case"ArithmeticCommand":return this.executeArithmeticCommand(e);case"ConditionalCommand":return this.executeConditionalCommand(e);default:return V}}async executeSimpleCommand(e,r){try{return await this.executeSimpleCommandInner(e,r)}catch(n){if(n instanceof ae)return B(n.stderr);throw n}}async executeSimpleCommandInner(e,r){e.line!==void 0&&(this.ctx.state.currentLine=e.line),this.ctx.state.expansionStderr="";let n={};for(let c of e.assignments){let l=c.name;if(c.array){if(/\[.+\]$/.test(l))return P("",`bash: ${l}: cannot assign list to array member
614
- `,1);let g=ot(this.ctx,l);if(g)return g;let y=[];for(let E of c.array){let b=await ur(this.ctx,E);y.push(...b.values)}let w=0;if(c.append){let E=ue(this.ctx,l);E.length>0&&(w=Math.max(...E.map(([S])=>typeof S=="number"?S:0))+1)}else{let E=`${l}_`;for(let b of Object.keys(this.ctx.state.env))b.startsWith(E)&&!b.includes("__")&&delete this.ctx.state.env[b]}for(let E=0;E<y.length;E++)this.ctx.state.env[`${l}_${w+E}`]=y[E];c.append||(this.ctx.state.env[`${l}__length`]=String(y.length));continue}let u=c.value?await Y(this.ctx,c.value):"";if(l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return P("",`bash: ${l}: bad array subscript
615
- `,1);let p=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(p){let g=p[1],y=p[2],w=ot(this.ctx,g);if(w)return w;let E=this.ctx.state.associativeArrays?.has(g),b;if(E){let C;if(y.startsWith("'")&&y.endsWith("'"))C=y.slice(1,-1);else if(y.startsWith('"')&&y.endsWith('"')){let O=y.slice(1,-1),F=new he().parseWordFromString(O,!0,!1);C=await Y(this.ctx,F)}else if(y.includes("$")){let D=new he().parseWordFromString(y,!1,!1);C=await Y(this.ctx,D)}else C=y;b=`${g}_${C}`}else{let C;if(/^-?\d+$/.test(y))C=Number.parseInt(y,10);else{try{let O=new he,D=le(O,y);C=K(this.ctx,D.expression)}catch{let O=this.ctx.state.env[y];C=O?Number.parseInt(O,10):0}Number.isNaN(C)&&(C=0)}if(C<0){let O=ue(this.ctx,g);if(O.length===0)return P("",`bash: ${g}[${y}]: bad array subscript
616
- `,1);if(C=Math.max(...O.map(([F])=>typeof F=="number"?F:0))+1+C,C<0)return P("",`bash: ${g}[${y}]: bad array subscript
643
+ `,i=1,n="";break}}catch{}await t.fs.appendFile(c,n+s),n="",s="";break}}}return P(n,s,i)}var pr=class{ctx;constructor(e,r){this.ctx={state:r,fs:e.fs,commands:e.commands,limits:e.limits,execFn:e.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:e.fetch,sleep:e.sleep}}async executeScript(e){let r="",n="",s=0;for(let i of e.statements)try{let o=await this.executeStatement(i);r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}catch(o){if(o instanceof X)throw o.prependOutput(r,n),o;if(o instanceof W)throw o;if(o instanceof ze)return r+=o.stdout,n+=o.stderr,s=o.exitCode,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Pe)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof Ke)return r+=o.stdout,n+=o.stderr,s=1,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s),{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}};if(o instanceof me||o instanceof Ee){if(this.ctx.state.loopDepth>0)throw o.prependOutput(r,n),o;r+=o.stdout,n+=o.stderr;continue}throw o instanceof ye&&o.prependOutput(r,n),o}return{stdout:r,stderr:n,exitCode:s,env:{...this.ctx.state.env}}}async executeStatement(e){this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&Ye(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands");let r="",n="",s=0,i=-1,o=!1;for(let a=0;a<e.pipelines.length;a++){let c=e.pipelines[a],l=a>0?e.operators[a-1]:null;if(l==="&&"&&s!==0||l==="||"&&s===0)continue;let u=await this.executePipeline(c);r+=u.stdout,n+=u.stderr,s=u.exitCode,i=a,o=c.negated,this.ctx.state.lastExitCode=s,this.ctx.state.env["?"]=String(s)}if(this.ctx.state.options.errexit&&s!==0&&i===e.pipelines.length-1&&!o&&!this.ctx.state.inCondition)throw new ze(s,r,n);return P(r,n,s)}async executePipeline(e){let r="",n=V,s=0,i=[];for(let o=0;o<e.commands.length;o++){let a=e.commands[o],c=o===e.commands.length-1,l;try{l=await this.executeCommand(a,r)}catch(u){if(u instanceof Ke)l={stdout:u.stdout,stderr:u.stderr,exitCode:1};else if(u instanceof X&&e.commands.length>1)l={stdout:u.stdout,stderr:u.stderr,exitCode:u.exitCode};else throw u}i.push(l.exitCode),l.exitCode!==0&&(s=l.exitCode),c?n=l:(r=l.stdout,n={stdout:"",stderr:l.stderr,exitCode:l.exitCode})}for(let o of Object.keys(this.ctx.state.env))o.startsWith("PIPESTATUS_")&&delete this.ctx.state.env[o];for(let o=0;o<i.length;o++)this.ctx.state.env[`PIPESTATUS_${o}`]=String(i[o]);return this.ctx.state.env.PIPESTATUS__length=String(i.length),this.ctx.state.options.pipefail&&s!==0&&(n={...n,exitCode:s}),e.negated&&(n={...n,exitCode:n.exitCode===0?1:0}),n}async executeCommand(e,r){switch(e.type){case"SimpleCommand":return this.executeSimpleCommand(e,r);case"If":return of(this.ctx,e);case"For":return af(this.ctx,e);case"CStyleFor":return cf(this.ctx,e);case"While":return lf(this.ctx,e,r);case"Until":return uf(this.ctx,e);case"Case":return ff(this.ctx,e);case"Subshell":return this.executeSubshell(e,r);case"Group":return this.executeGroup(e,r);case"FunctionDef":return pf(this.ctx,e);case"ArithmeticCommand":return this.executeArithmeticCommand(e);case"ConditionalCommand":return this.executeConditionalCommand(e);default:return V}}async executeSimpleCommand(e,r){try{return await this.executeSimpleCommandInner(e,r)}catch(n){if(n instanceof ae)return B(n.stderr);throw n}}async executeSimpleCommandInner(e,r){e.line!==void 0&&(this.ctx.state.currentLine=e.line),this.ctx.state.expansionStderr="";let n={};for(let c of e.assignments){let l=c.name;if(c.array){if(/\[.+\]$/.test(l))return P("",`bash: ${l}: cannot assign list to array member
644
+ `,1);let g=ot(this.ctx,l);if(g)return g;let m=[];for(let E of c.array){let b=await ur(this.ctx,E);m.push(...b.values)}let w=0;if(c.append){let E=fe(this.ctx,l);E.length>0&&(w=Math.max(...E.map(([S])=>typeof S=="number"?S:0))+1)}else{let E=`${l}_`;for(let b of Object.keys(this.ctx.state.env))b.startsWith(E)&&!b.includes("__")&&delete this.ctx.state.env[b]}for(let E=0;E<m.length;E++)this.ctx.state.env[`${l}_${w+E}`]=m[E];c.append||(this.ctx.state.env[`${l}__length`]=String(m.length));continue}let u=c.value?await Y(this.ctx,c.value):"";if(l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return P("",`bash: ${l}: bad array subscript
645
+ `,1);let p=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(p){let g=p[1],m=p[2],w=ot(this.ctx,g);if(w)return w;let E=this.ctx.state.associativeArrays?.has(g),b;if(E){let C;if(m.startsWith("'")&&m.endsWith("'"))C=m.slice(1,-1);else if(m.startsWith('"')&&m.endsWith('"')){let O=m.slice(1,-1),F=new he().parseWordFromString(O,!0,!1);C=await Y(this.ctx,F)}else if(m.includes("$")){let D=new he().parseWordFromString(m,!1,!1);C=await Y(this.ctx,D)}else C=m;b=`${g}_${C}`}else{let C;if(/^-?\d+$/.test(m))C=Number.parseInt(m,10);else{try{let O=new he,D=ue(O,m);C=K(this.ctx,D.expression)}catch{let O=this.ctx.state.env[m];C=O?Number.parseInt(O,10):0}Number.isNaN(C)&&(C=0)}if(C<0){let O=fe(this.ctx,g);if(O.length===0)return P("",`bash: ${g}[${m}]: bad array subscript
646
+ `,1);if(C=Math.max(...O.map(([F])=>typeof F=="number"?F:0))+1+C,C<0)return P("",`bash: ${g}[${m}]: bad array subscript
617
647
  `,1)}b=`${g}_${C}`}let S=c.append?(this.ctx.state.env[b]||"")+u:u;e.name?(n[b]=this.ctx.state.env[b],this.ctx.state.env[b]=S):this.ctx.state.env[b]=S;continue}let d=ot(this.ctx,l);if(d)return d;let h=c.append?(this.ctx.state.env[l]||"")+u:u;e.name?(n[l]=this.ctx.state.env[l],this.ctx.state.env[l]=h):this.ctx.state.env[l]=h}if(!e.name)return P("","",this.ctx.state.lastExitCode);for(let c of e.redirections){if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let l=c.target,u=await Y(this.ctx,l.content);l.stripTabs&&(u=u.split(`
618
648
  `).map(f=>f.replace(/^\t+/,"")).join(`
619
649
  `)),r=u;continue}if(c.operator==="<<<"&&c.target.type==="Word"){r=`${await Y(this.ctx,c.target)}
620
650
  `;continue}if(c.operator==="<"&&c.target.type==="Word")try{let l=await Y(this.ctx,c.target),u=this.ctx.fs.resolvePath(this.ctx.state.cwd,l);r=await this.ctx.fs.readFile(u)}catch{let l=await Y(this.ctx,c.target);for(let[u,f]of Object.entries(n))f===void 0?delete this.ctx.state.env[u]:this.ctx.state.env[u]=f;return B(`bash: ${l}: No such file or directory
621
651
  `)}}let s=await Y(this.ctx,e.name),i=[],o=[];for(let c of e.args){let l=await ur(this.ctx,c);for(let u of l.values)i.push(u),o.push(l.quoted)}if(!s){if(e.name.parts.every(l=>l.type==="CommandSubstitution"||l.type==="ParameterExpansion"||l.type==="ArithmeticExpansion")){if(i.length>0){let l=i.shift();return o.shift(),await this.runCommand(l,i,o,r)}return P("","",this.ctx.state.lastExitCode)}return B(`bash: : command not found
622
- `,127)}let a=await this.runCommand(s,i,o,r);a=await rf(this.ctx,a,e.redirections),this.ctx.state.lastArg=i.length>0?i[i.length-1]:s;for(let[c,l]of Object.entries(n))l===void 0?delete this.ctx.state.env[c]:this.ctx.state.env[c]=l;return this.ctx.state.expansionStderr&&(a={...a,stderr:this.ctx.state.expansionStderr+a.stderr},this.ctx.state.expansionStderr=""),a}async runCommand(e,r,n,s,i=!1){if(e==="cd")return await Js(this.ctx,r);if(e==="export")return ii(this.ctx,r);if(e==="unset")return mi(this.ctx,r);if(e==="exit")return si(this.ctx,r);if(e==="local")return ai(this.ctx,r);if(e==="set")return pi(this.ctx,r);if(e==="break")return Xs(this.ctx,r);if(e==="continue")return Ys(this.ctx,r);if(e==="return")return ui(this.ctx,r);if(e==="eval")return ni(this.ctx,r);if(e==="shift")return di(this.ctx,r);if(e==="source"||e===".")return hi(this.ctx,r);if(e==="read")return li(this.ctx,r,s);if(e==="mapfile"||e==="readarray")return ci(this.ctx,r,s);if(e==="declare"||e==="typeset")return ti(this.ctx,r);if(e==="readonly")return ri(this.ctx,r);if(!i){let u=this.ctx.state.functions.get(e);if(u)return tf(this.ctx,u,r)}if(e===":"||e==="true")return V;if(e==="false")return ce(!1);if(e==="let")return oi(this.ctx,r);if(e==="command"){if(r.length===0)return V;let u=r;for(;u.length>0&&u[0].startsWith("-");)u=u.slice(1);if(u.length===0)return V;let[f,...p]=u;return this.runCommand(f,p,[],s,!0)}if(e==="builtin"){if(r.length===0)return V;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="shopt")return V;if(e==="exec"){if(r.length===0)return V;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="wait")return V;if(e==="type")return this.handleType(r);if(e==="[["){let u=r.lastIndexOf("]]");if(u!==-1){let f=r.slice(0,u);return Gt(this.ctx,f)}return B("bash: [[: missing `]]'\n",2)}if(e==="["||e==="test"){let u=r;if(e==="["){if(r[r.length-1]!=="]")return B("[: missing `]'\n",2);u=r.slice(0,-1)}return Gt(this.ctx,u)}let o=await this.resolveCommand(e);if(!o)return B(`bash: ${e}: command not found
652
+ `,127)}let a=await this.runCommand(s,i,o,r);a=await hf(this.ctx,a,e.redirections),this.ctx.state.lastArg=i.length>0?i[i.length-1]:s;for(let[c,l]of Object.entries(n))l===void 0?delete this.ctx.state.env[c]:this.ctx.state.env[c]=l;return this.ctx.state.expansionStderr&&(a={...a,stderr:this.ctx.state.expansionStderr+a.stderr},this.ctx.state.expansionStderr=""),a}async runCommand(e,r,n,s,i=!1){if(e==="cd")return await si(this.ctx,r);if(e==="export")return fi(this.ctx,r);if(e==="unset")return bi(this.ctx,r);if(e==="exit")return ui(this.ctx,r);if(e==="local")return di(this.ctx,r);if(e==="set")return xi(this.ctx,r);if(e==="break")return ni(this.ctx,r);if(e==="continue")return ii(this.ctx,r);if(e==="return")return yi(this.ctx,r);if(e==="eval")return li(this.ctx,r);if(e==="shift")return wi(this.ctx,r);if(e==="source"||e===".")return Ei(this.ctx,r);if(e==="read")return mi(this.ctx,r,s);if(e==="mapfile"||e==="readarray")return hi(this.ctx,r,s);if(e==="declare"||e==="typeset")return ai(this.ctx,r);if(e==="readonly")return ci(this.ctx,r);if(!i){let u=this.ctx.state.functions.get(e);if(u)return df(this.ctx,u,r)}if(e===":"||e==="true")return V;if(e==="false")return ce(!1);if(e==="let")return pi(this.ctx,r);if(e==="command"){if(r.length===0)return V;let u=r;for(;u.length>0&&u[0].startsWith("-");)u=u.slice(1);if(u.length===0)return V;let[f,...p]=u;return this.runCommand(f,p,[],s,!0)}if(e==="builtin"){if(r.length===0)return V;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="shopt")return V;if(e==="exec"){if(r.length===0)return V;let[u,...f]=r;return this.runCommand(u,f,[],s)}if(e==="wait")return V;if(e==="type")return this.handleType(r);if(e==="[["){let u=r.lastIndexOf("]]");if(u!==-1){let f=r.slice(0,u);return Gt(this.ctx,f)}return B("bash: [[: missing `]]'\n",2)}if(e==="["||e==="test"){let u=r;if(e==="["){if(r[r.length-1]!=="]")return B("[: missing `]'\n",2);u=r.slice(0,-1)}return Gt(this.ctx,u)}let o=await this.resolveCommand(e);if(!o)return B(`bash: ${e}: command not found
623
653
  `,127);let{cmd:a,path:c}=o,l={fs:this.ctx.fs,cwd:this.ctx.state.cwd,env:this.ctx.state.env,stdin:s,limits:this.ctx.limits,exec:this.ctx.execFn,fetch:this.ctx.fetch,getRegisteredCommands:()=>Array.from(this.ctx.commands.keys()),sleep:this.ctx.sleep};try{return await a.execute(r,l)}catch(u){return B(`${e}: ${re(u)}
624
654
  `)}}async resolveCommand(e){if(e.includes("/")){let i=this.ctx.fs.resolvePath(this.ctx.state.cwd,e);if(!await this.ctx.fs.exists(i))return null;let o=i.split("/").pop()||e,a=this.ctx.commands.get(o);return a?{cmd:a,path:i}:null}let n=(this.ctx.state.env.PATH||"/bin:/usr/bin").split(":");for(let i of n){if(!i)continue;let o=`${i}/${e}`;if(await this.ctx.fs.exists(o)){let a=this.ctx.commands.get(e);if(a)return{cmd:a,path:o}}}if(!await this.ctx.fs.exists("/bin")){let i=this.ctx.commands.get(e);if(i)return{cmd:i,path:`/bin/${e}`}}return null}async findCommandInPath(e){let r=[],s=(this.ctx.state.env.PATH||"/bin:/usr/bin").split(":");for(let i of s){if(!i)continue;let o=`${i}/${e}`;await this.ctx.fs.exists(o)&&r.push(o)}return r}handleType(e){let r=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),n=new Set(["cd","export","unset","exit","local","set","break","continue","return","eval","shift","source",".","read","declare","typeset","readonly",":","true","false","let","command","builtin","shopt","exec","wait","type","[","test"]),s="",i="",o=0;for(let a of e)r.has(a)?s+=`${a} is a shell keyword
625
655
  `:n.has(a)?s+=`${a} is a shell builtin
626
656
  `:this.ctx.state.functions.has(a)?s+=`${a} is a function
627
657
  `:this.ctx.commands.has(a)?s+=`${a} is /bin/${a}
628
658
  `:(i+=`bash: type: ${a}: not found
629
- `,o=1);return P(s,i,o)}async executeSubshell(e,r=""){let n={...this.ctx.state.env},s=this.ctx.state.cwd,i=this.ctx.state.loopDepth,o=this.ctx.state.parentHasLoopContext;this.ctx.state.parentHasLoopContext=i>0,this.ctx.state.loopDepth=0;let a=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);let c="",l="",u=0;try{for(let f of e.body){let p=await this.executeStatement(f);c+=p.stdout,l+=p.stderr,u=p.exitCode}}catch(f){if(this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,f instanceof W)throw f;if(f instanceof Ge)return c+=f.stdout,l+=f.stderr,P(c,l,0);if(f instanceof me||f instanceof Ee)return c+=f.stdout,l+=f.stderr,P(c,l,0);if(f instanceof X)return c+=f.stdout,l+=f.stderr,P(c,l,f.exitCode);if(f instanceof ye)return c+=f.stdout,l+=f.stderr,P(c,l,f.exitCode);if(f instanceof He)throw f.stdout=c+f.stdout,f.stderr=l+f.stderr,f;return P(c,`${l}${re(f)}
630
- `,1)}return this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,P(c,l,u)}async executeGroup(e,r=""){let n="",s="",i=0,o=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);try{for(let a of e.body){let c=await this.executeStatement(a);n+=c.stdout,s+=c.stderr,i=c.exitCode}}catch(a){if(this.ctx.state.groupStdin=o,a instanceof W)throw a;if(Nr(a)||a instanceof He||a instanceof X)throw a.prependOutput(n,s),a;return P(n,`${s}${re(a)}
659
+ `,o=1);return P(s,i,o)}async executeSubshell(e,r=""){let n={...this.ctx.state.env},s=this.ctx.state.cwd,i=this.ctx.state.loopDepth,o=this.ctx.state.parentHasLoopContext;this.ctx.state.parentHasLoopContext=i>0,this.ctx.state.loopDepth=0;let a=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);let c="",l="",u=0;try{for(let f of e.body){let p=await this.executeStatement(f);c+=p.stdout,l+=p.stderr,u=p.exitCode}}catch(f){if(this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,f instanceof W)throw f;if(f instanceof Ge)return c+=f.stdout,l+=f.stderr,P(c,l,0);if(f instanceof me||f instanceof Ee)return c+=f.stdout,l+=f.stderr,P(c,l,0);if(f instanceof X)return c+=f.stdout,l+=f.stderr,P(c,l,f.exitCode);if(f instanceof ye)return c+=f.stdout,l+=f.stderr,P(c,l,f.exitCode);if(f instanceof ze)throw f.stdout=c+f.stdout,f.stderr=l+f.stderr,f;return P(c,`${l}${re(f)}
660
+ `,1)}return this.ctx.state.env=n,this.ctx.state.cwd=s,this.ctx.state.loopDepth=i,this.ctx.state.parentHasLoopContext=o,this.ctx.state.groupStdin=a,P(c,l,u)}async executeGroup(e,r=""){let n="",s="",i=0,o=this.ctx.state.groupStdin;r&&(this.ctx.state.groupStdin=r);try{for(let a of e.body){let c=await this.executeStatement(a);n+=c.stdout,s+=c.stderr,i=c.exitCode}}catch(a){if(this.ctx.state.groupStdin=o,a instanceof W)throw a;if(Nr(a)||a instanceof ze||a instanceof X)throw a.prependOutput(n,s),a;return P(n,`${s}${re(a)}
631
661
  `,1)}return this.ctx.state.groupStdin=o,P(n,s,i)}async executeArithmeticCommand(e){try{let r=await Z(this.ctx,e.expression.expression);return ce(r!==0)}catch(r){return B(`bash: arithmetic expression: ${r.message}
632
662
  `)}}async executeConditionalCommand(e){try{let r=await at(this.ctx,e.expression);return ce(r)}catch(r){return B(`bash: conditional expression: ${r.message}
633
- `,2)}}};var bt={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4};function nf(t){return t?{maxCallDepth:t.maxCallDepth??bt.maxCallDepth,maxCommandCount:t.maxCommandCount??bt.maxCommandCount,maxLoopIterations:t.maxLoopIterations??bt.maxLoopIterations,maxAwkIterations:t.maxAwkIterations??bt.maxAwkIterations,maxSedIterations:t.maxSedIterations??bt.maxSedIterations,maxJqIterations:t.maxJqIterations??bt.maxJqIterations}:{...bt}}function sf(t){try{let e=new URL(t);return{origin:e.origin,pathname:e.pathname,href:e.href}}catch{return null}}function Iy(t){let e=sf(t);return e?{origin:e.origin,pathPrefix:e.pathname}:null}function vy(t,e){let r=sf(t);if(!r)return!1;let n=Iy(e);return!n||r.origin!==n.origin?!1:n.pathPrefix==="/"||n.pathPrefix===""?!0:r.pathname.startsWith(n.pathPrefix)}function Ei(t,e){return!e||e.length===0?!1:e.some(r=>vy(t,r))}var dr=class extends Error{constructor(e){super(`Network access denied: URL not in allow-list: ${e}`),this.name="NetworkAccessDeniedError"}},hr=class extends Error{constructor(e){super(`Too many redirects (max: ${e})`),this.name="TooManyRedirectsError"}},mr=class extends Error{constructor(e){super(`Redirect target not in allow-list: ${e}`),this.name="RedirectNotAllowedError"}},Cn=class extends Error{constructor(e,r){super(`HTTP method '${e}' not allowed. Allowed methods: ${r.join(", ")}`),this.name="MethodNotAllowedError"}};var Ry=20,$y=3e4,Oy=["GET","HEAD"],Py=new Set(["GET","HEAD","OPTIONS"]),Ty=new Set([301,302,303,307,308]);function bi(t){let e=t.maxRedirects??Ry,r=t.timeoutMs??$y,n=t.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:t.allowedMethods??Oy;function s(a){if(!t.dangerouslyAllowFullInternetAccess&&!Ei(a,t.allowedUrlPrefixes??[]))throw new dr(a)}function i(a){if(t.dangerouslyAllowFullInternetAccess)return;let c=a.toUpperCase();if(!n.includes(c))throw new Cn(c,n)}async function o(a,c={}){let l=c.method?.toUpperCase()??"GET";s(a),i(l);let u=a,f=0,p=c.followRedirects??!0,d=c.timeoutMs!==void 0?Math.min(c.timeoutMs,r):r;for(;;){let h=new AbortController,g=setTimeout(()=>h.abort(),d);try{let y={method:l,headers:c.headers,signal:h.signal,redirect:"manual"};c.body&&!Py.has(l)&&(y.body=c.body);let w=await fetch(u,y);if(Ty.has(w.status)&&p){let E=w.headers.get("location");if(!E)return await of(w,u);let b=new URL(E,u).href;if(!t.dangerouslyAllowFullInternetAccess&&!Ei(b,t.allowedUrlPrefixes??[]))throw new mr(b);if(f++,f>e)throw new hr(e);u=b;continue}return await of(w,u)}finally{clearTimeout(g)}}}return o}async function of(t,e){let r={};return t.headers.forEach((n,s)=>{r[s.toLowerCase()]=n}),{status:t.status,statusText:t.statusText,headers:r,body:await t.text(),url:e}}var kn=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;logger;state;constructor(e={}){let r=e.fs??new sr(e.files);this.fs=r,this.useDefaultLayout=!e.cwd&&!e.files;let n=e.cwd||(this.useDefaultLayout?"/home/user":"/"),s={HOME:this.useDefaultLayout?"/home/user":"/",PATH:"/bin:/usr/bin",IFS:`
634
- `,OSTYPE:"linux-gnu",MACHTYPE:"x86_64-pc-linux-gnu",HOSTTYPE:"x86_64",PWD:n,OLDPWD:n,...e.env};if(this.limits=nf({...e.executionLimits,...e.maxCallDepth!==void 0&&{maxCallDepth:e.maxCallDepth},...e.maxCommandCount!==void 0&&{maxCommandCount:e.maxCommandCount},...e.maxLoopIterations!==void 0&&{maxLoopIterations:e.maxLoopIterations}}),e.network&&(this.secureFetch=bi(e.network)),this.sleepFn=e.sleep,this.logger=e.logger,this.state={env:s,cwd:n,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1},inCondition:!1,loopDepth:0},Gl(r,this.useDefaultLayout),n!=="/"&&r instanceof sr)try{r.mkdirSync(n,{recursive:!0})}catch{}for(let i of Ml(e.commands))this.registerCommand(i);if(e.network)for(let i of _l())this.registerCommand(i);if(e.customCommands)for(let i of e.customCommands)Bl(i)?this.registerCommand(Wl(i)):this.registerCommand(i)}registerCommand(e){this.commands.set(e.name,e);let r=this.fs;if(typeof r.writeFileSync=="function")try{r.writeFileSync(`/bin/${e.name}`,`#!/bin/bash
663
+ `,2)}}};var bt={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4};function mf(t){return t?{maxCallDepth:t.maxCallDepth??bt.maxCallDepth,maxCommandCount:t.maxCommandCount??bt.maxCommandCount,maxLoopIterations:t.maxLoopIterations??bt.maxLoopIterations,maxAwkIterations:t.maxAwkIterations??bt.maxAwkIterations,maxSedIterations:t.maxSedIterations??bt.maxSedIterations,maxJqIterations:t.maxJqIterations??bt.maxJqIterations}:{...bt}}function yf(t){try{let e=new URL(t);return{origin:e.origin,pathname:e.pathname,href:e.href}}catch{return null}}function Ky(t){let e=yf(t);return e?{origin:e.origin,pathPrefix:e.pathname}:null}function Zy(t,e){let r=yf(t);if(!r)return!1;let n=Ky(e);return!n||r.origin!==n.origin?!1:n.pathPrefix==="/"||n.pathPrefix===""?!0:r.pathname.startsWith(n.pathPrefix)}function Ni(t,e){return!e||e.length===0?!1:e.some(r=>Zy(t,r))}var dr=class extends Error{constructor(e){super(`Network access denied: URL not in allow-list: ${e}`),this.name="NetworkAccessDeniedError"}},hr=class extends Error{constructor(e){super(`Too many redirects (max: ${e})`),this.name="TooManyRedirectsError"}},mr=class extends Error{constructor(e){super(`Redirect target not in allow-list: ${e}`),this.name="RedirectNotAllowedError"}},In=class extends Error{constructor(e,r){super(`HTTP method '${e}' not allowed. Allowed methods: ${r.join(", ")}`),this.name="MethodNotAllowedError"}};var Qy=20,Xy=3e4,Jy=["GET","HEAD"],Yy=new Set(["GET","HEAD","OPTIONS"]),eg=new Set([301,302,303,307,308]);function Ii(t){let e=t.maxRedirects??Qy,r=t.timeoutMs??Xy,n=t.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:t.allowedMethods??Jy;function s(a){if(!t.dangerouslyAllowFullInternetAccess&&!Ni(a,t.allowedUrlPrefixes??[]))throw new dr(a)}function i(a){if(t.dangerouslyAllowFullInternetAccess)return;let c=a.toUpperCase();if(!n.includes(c))throw new In(c,n)}async function o(a,c={}){let l=c.method?.toUpperCase()??"GET";s(a),i(l);let u=a,f=0,p=c.followRedirects??!0,d=c.timeoutMs!==void 0?Math.min(c.timeoutMs,r):r;for(;;){let h=new AbortController,g=setTimeout(()=>h.abort(),d);try{let m={method:l,headers:c.headers,signal:h.signal,redirect:"manual"};c.body&&!Yy.has(l)&&(m.body=c.body);let w=await fetch(u,m);if(eg.has(w.status)&&p){let E=w.headers.get("location");if(!E)return await gf(w,u);let b=new URL(E,u).href;if(!t.dangerouslyAllowFullInternetAccess&&!Ni(b,t.allowedUrlPrefixes??[]))throw new mr(b);if(f++,f>e)throw new hr(e);u=b;continue}return await gf(w,u)}finally{clearTimeout(g)}}}return o}async function gf(t,e){let r={};return t.headers.forEach((n,s)=>{r[s.toLowerCase()]=n}),{status:t.status,statusText:t.statusText,headers:r,body:await t.text(),url:e}}var vn=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;logger;state;constructor(e={}){let r=e.fs??new sr(e.files);this.fs=r,this.useDefaultLayout=!e.cwd&&!e.files;let n=e.cwd||(this.useDefaultLayout?"/home/user":"/"),s={HOME:this.useDefaultLayout?"/home/user":"/",PATH:"/bin:/usr/bin",IFS:`
664
+ `,OSTYPE:"linux-gnu",MACHTYPE:"x86_64-pc-linux-gnu",HOSTTYPE:"x86_64",PWD:n,OLDPWD:n,...e.env};if(this.limits=mf({...e.executionLimits,...e.maxCallDepth!==void 0&&{maxCallDepth:e.maxCallDepth},...e.maxCommandCount!==void 0&&{maxCommandCount:e.maxCommandCount},...e.maxLoopIterations!==void 0&&{maxLoopIterations:e.maxLoopIterations}}),e.network&&(this.secureFetch=Ii(e.network)),this.sleepFn=e.sleep,this.logger=e.logger,this.state={env:s,cwd:n,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1},inCondition:!1,loopDepth:0},ru(r,this.useDefaultLayout),n!=="/"&&r instanceof sr)try{r.mkdirSync(n,{recursive:!0})}catch{}for(let i of Kl(e.commands))this.registerCommand(i);if(e.network)for(let i of Zl())this.registerCommand(i);if(e.customCommands)for(let i of e.customCommands)Ql(i)?this.registerCommand(Xl(i)):this.registerCommand(i)}registerCommand(e){this.commands.set(e.name,e);let r=this.fs;if(typeof r.writeFileSync=="function")try{r.writeFileSync(`/bin/${e.name}`,`#!/bin/bash
635
665
  # Built-in command: ${e.name}
636
666
  `)}catch{}}logResult(e){return this.logger&&(e.stdout&&this.logger.debug("stdout",{output:e.stdout}),e.stderr&&this.logger.info("stderr",{output:e.stderr}),this.logger.info("exit",{exitCode:e.exitCode})),e}async exec(e,r){if(this.state.callDepth===0&&(this.state.commandCount=0),this.state.commandCount++,this.state.commandCount>this.limits.maxCommandCount)return{stdout:"",stderr:`bash: maximum command count (${this.limits.maxCommandCount}) exceeded (possible infinite loop). Increase with executionLimits.maxCommandCount option.
637
667
  `,exitCode:1,env:{...this.state.env,...r?.env}};if(!e.trim())return{stdout:"",stderr:"",exitCode:0,env:{...this.state.env,...r?.env}};this.logger?.info("exec",{command:e});let n=r?.cwd??this.state.cwd,s={...this.state,env:{...this.state.env,...r?.env,...r?.cwd?{PWD:r.cwd}:{}},cwd:n,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options}},i=e;r?.rawScript||(i=e.split(`
638
668
  `).map(a=>a.trimStart()).join(`
639
669
  `));try{let o=st(i),a={fs:this.fs,commands:this.commands,limits:this.limits,exec:this.exec.bind(this),fetch:this.secureFetch,sleep:this.sleepFn},l=await new pr(a,s).executeScript(o);return this.logResult(l)}catch(o){if(o instanceof X)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:o.exitCode,env:{...this.state.env,...r?.env}});if(o instanceof ae)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:1,env:{...this.state.env,...r?.env}});if(o instanceof W)return this.logResult({stdout:o.stdout,stderr:o.stderr,exitCode:W.EXIT_CODE,env:{...this.state.env,...r?.env}});if(o.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${o.message}
640
670
  `,exitCode:2,env:{...this.state.env,...r?.env}});if(o instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${o.message}
641
- `,exitCode:1,env:{...this.state.env,...r?.env}});throw o}}async readFile(e){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,e))}async writeFile(e,r){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,e),r)}getCwd(){return this.state.cwd}getEnv(){return{...this.state.env}}};function Ly(t){let e=["Execute bash commands in a virtual environment.","","This is a simulated bash environment with a virtual filesystem. Commands run in isolation without access to the host system.",""];if(t.files&&Object.keys(t.files).length>0){let r=Object.keys(t.files),n=r.slice(0,5);e.push("Available files:");for(let s of n)e.push(` ${s}`);r.length>5&&e.push(` ... and ${r.length-5} more`),e.push(""),e.push("Common operations:"),e.push(" ls -la # List files with details"),e.push(" find . -name '*.ts' # Find files by pattern"),e.push(" grep -r 'pattern' . # Search file contents"),e.push(" cat <file> # View file contents"),e.push("")}return e.push("To discover commands and their options:"),e.push(" help # List all available commands"),e.push(" <command> --help # Show options for a specific command"),e.push(""),t.commands?.length&&(e.push(`Available commands: ${t.commands.join(", ")}`),e.push("")),t.network&&(e.push("Network access via curl is enabled for this environment."),e.push("")),t.extraInstructions&&e.push(t.extraInstructions),e.join(`
642
- `).trim()}var My=af.object({command:af.string().describe("The bash command to execute")});function xC(t={}){let e=new kn({fs:t.fs,files:t.fs?void 0:t.files,env:t.env,cwd:t.cwd,network:t.network,commands:t.commands,customCommands:t.customCommands,logger:t.logger});return Fy({description:Ly(t),inputSchema:Dy(My),execute:async({command:r})=>{t.onCall?.(r);let n=await e.exec(r);return{stdout:n.stdout,stderr:n.stderr,exitCode:n.exitCode}}})}export{xC as createBashTool};
671
+ `,exitCode:1,env:{...this.state.env,...r?.env}});throw o}}async readFile(e){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,e))}async writeFile(e,r){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,e),r)}getCwd(){return this.state.cwd}getEnv(){return{...this.state.env}}};function ng(t){let e=["Execute bash commands in a virtual environment.","","This is a simulated bash environment with a virtual filesystem. Commands run in isolation without access to the host system.",""];if(t.files&&Object.keys(t.files).length>0){let r=Object.keys(t.files),n=r.slice(0,5);e.push("Available files:");for(let s of n)e.push(` ${s}`);r.length>5&&e.push(` ... and ${r.length-5} more`),e.push(""),e.push("Common operations:"),e.push(" ls -la # List files with details"),e.push(" find . -name '*.ts' # Find files by pattern"),e.push(" grep -r 'pattern' . # Search file contents"),e.push(" cat <file> # View file contents"),e.push("")}return e.push("To discover commands and their options:"),e.push(" help # List all available commands"),e.push(" <command> --help # Show options for a specific command"),e.push(""),t.commands?.length&&(e.push(`Available commands: ${t.commands.join(", ")}`),e.push("")),t.network&&(e.push("Network access via curl is enabled for this environment."),e.push("")),t.extraInstructions&&e.push(t.extraInstructions),e.join(`
672
+ `).trim()}var sg=xf.object({command:xf.string().describe("The bash command to execute")});function zC(t={}){let e=new vn({fs:t.fs,files:t.fs?void 0:t.files,env:t.env,cwd:t.cwd,network:t.network,commands:t.commands,customCommands:t.customCommands,logger:t.logger});return tg({description:ng(t),inputSchema:rg(sg),execute:async({command:r})=>{t.onCall?.(r);let n=await e.exec(r);return{stdout:n.stdout,stderr:n.stderr,exitCode:n.exitCode}}})}export{zC as createBashTool};
643
673
  /*! Bundled license information:
644
674
 
645
675
  ieee754/index.js: