just-binary 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/chunks/{chunk-FZXGAGSU.js → chunk-4Y3GINAY.js} +10 -10
- package/dist/bin/{shell/chunks/chunk-PYIWPSII.js → chunks/chunk-ASU2EQWZ.js} +18 -18
- package/dist/bin/{shell/chunks/flag-coverage-7AQE3UPG.js → chunks/flag-coverage-JBJRZ3PO.js} +1 -1
- package/dist/bin/{shell/chunks/gzip-PT23FGTW.js → chunks/gzip-AKQBQW7Y.js} +1 -1
- package/dist/bin/chunks/{rg-D5WXPSFJ.js → rg-LTQYHOCO.js} +1 -1
- package/dist/bin/chunks/worker.js +5 -1
- package/dist/bin/just-bash.js +2 -2
- package/dist/bin/shell/chunks/{chunk-FZXGAGSU.js → chunk-4Y3GINAY.js} +10 -10
- package/dist/bin/{chunks/chunk-PYIWPSII.js → shell/chunks/chunk-ASU2EQWZ.js} +18 -18
- package/dist/bin/{chunks/flag-coverage-7AQE3UPG.js → shell/chunks/flag-coverage-JBJRZ3PO.js} +1 -1
- package/dist/bin/{chunks/gzip-PT23FGTW.js → shell/chunks/gzip-AKQBQW7Y.js} +1 -1
- package/dist/bin/shell/chunks/{rg-D5WXPSFJ.js → rg-LTQYHOCO.js} +1 -1
- package/dist/bin/shell/shell.js +216 -216
- package/dist/browser.d.ts +4 -0
- package/dist/bundle/browser.js +486 -486
- package/dist/bundle/chunks/{chunk-YANZPHZ3.js → chunk-M5Z2PSET.js} +18 -18
- package/dist/bundle/chunks/{chunk-E7BAZEZG.js → chunk-NDPSDM3Q.js} +10 -10
- package/dist/bundle/chunks/{flag-coverage-VMMEL7EH.js → flag-coverage-FK7Z2EY4.js} +1 -1
- package/dist/bundle/chunks/{gzip-OUHELY5D.js → gzip-BYGAV4XY.js} +1 -1
- package/dist/bundle/chunks/{rg-PML6WNNK.js → rg-RA3U4BVJ.js} +1 -1
- package/dist/bundle/chunks/worker.js +5 -1
- package/dist/bundle/index.js +2 -2
- package/package.json +1 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import{a as P}from"./chunk-GQSJJXDG.js";import{a as q,b as I}from"./chunk-PQPG4QOY.js";import{c as v,e as
|
|
1
|
+
import{a as P}from"./chunk-GQSJJXDG.js";import{a as q,b as I}from"./chunk-PQPG4QOY.js";import{c as v,e as z,f as b}from"./chunk-7USKQKOT.js";import{g as s,h as S,j as x,k}from"./chunk-DEQBZDPB.js";var C=null;async function w(){return C||(C=await import("node:zlib"),C)}var W=9,U=1,_=-1,H={name:"gzip",summary:"compress or expand files",usage:"gzip [OPTION]... [FILE]...",description:`Compress FILEs (by default, in-place).
|
|
2
2
|
|
|
3
3
|
When no FILE is given, or when FILE is -, read from standard input.
|
|
4
4
|
|
|
5
|
-
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"]},
|
|
5
|
+
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"]},B={name:"gunzip",summary:"decompress files",usage:"gunzip [OPTION]... [FILE]...",description:`Decompress FILEs (by default, in-place).
|
|
6
6
|
|
|
7
|
-
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"]},
|
|
7
|
+
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"]},Z={name:"zcat",summary:"decompress files to stdout",usage:"zcat [OPTION]... [FILE]...",description:`Decompress FILEs to standard output.
|
|
8
8
|
|
|
9
|
-
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"]},
|
|
10
|
-
`,exitCode:1};try{return{stdout:
|
|
11
|
-
`,exitCode:1}}}else{let d=
|
|
9
|
+
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"]},A={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"}};function L(e){return e.best?W:e.level8?8:e.level7?7:e.level6?6:e.level5?5:e.level4?4:e.level3?3:e.level2?2:e.fast?U:_}function D(e){if(e.length<10)return{originalName:null,mtime:null,headerSize:0};if(e[0]!==31||e[1]!==139)return{originalName:null,mtime:null,headerSize:0};let t=e[3],o=e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r=10;if(t&4){if(r+2>e.length)return{originalName:null,mtime:null,headerSize:0};let a=e[r]|e[r+1]<<8;r+=2+a}let l=null;if(t&8){let a=r;for(;r<e.length&&e[r]!==0;)r++;r<e.length&&(l=new TextDecoder().decode(e.slice(a,r)),r++)}if(t&16){for(;r<e.length&&e[r]!==0;)r++;r++}return t&2&&(r+=2),{originalName:l,mtime:o>0?new Date(o*1e3):null,headerSize:r}}function G(e){if(e.length<4)return 0;let t=e.length;return e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24}function $(e){return e.length>=2&&e[0]===31&&e[1]===139}async function O(e,t,o,r,l,a){let u=o.suffix,n,f,p;if(t==="-"||t==="")if(p=await b(e.stdin),l){if(!$(p))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: stdin: not in gzip format
|
|
10
|
+
`,exitCode:1};try{return{stdout:(await w()).gunzipSync(p),stderr:"",exitCode:0}}catch(d){let i=d instanceof Error?d.message:"unknown error";return{stdout:s,stderr:`${r}: stdin: ${i}
|
|
11
|
+
`,exitCode:1}}}else{let d=L(o);return{stdout:(await w()).gzipSync(p,{level:d}),stderr:"",exitCode:0}}n=e.fs.resolvePath(e.cwd,t);try{if((await e.fs.stat(n)).isDirectory)return o.recursive?await T(e,n,o,r,l,a):o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t}: is a directory -- ignored
|
|
12
12
|
`,exitCode:1}}catch{return{stdout:s,stderr:`${r}: ${t}: No such file or directory
|
|
13
13
|
`,exitCode:1}}try{p=await b(await e.fs.readFile(n))}catch{return{stdout:s,stderr:`${r}: ${t}: No such file or directory
|
|
14
14
|
`,exitCode:1}}if(l){if(!t.endsWith(u))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t}: unknown suffix -- ignored
|
|
15
|
-
`,exitCode:1};if(
|
|
16
|
-
`,exitCode:1};let d;try{d=
|
|
17
|
-
`,exitCode:1}}if(a)return{stdout:d,stderr:"",exitCode:0};if(o.name){let i=
|
|
15
|
+
`,exitCode:1};if(!$(p))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t}: not in gzip format
|
|
16
|
+
`,exitCode:1};let d;try{d=(await w()).gunzipSync(p)}catch(i){let g=i instanceof Error?i.message:"unknown error";return{stdout:s,stderr:`${r}: ${t}: ${g}
|
|
17
|
+
`,exitCode:1}}if(a)return{stdout:d,stderr:"",exitCode:0};if(o.name){let i=D(p);i.originalName?f=e.fs.resolvePath(e.cwd,i.originalName):f=n.slice(0,-u.length)}else f=n.slice(0,-u.length);if(!o.force)try{return await e.fs.stat(f),{stdout:s,stderr:`${r}: ${f} already exists; not overwritten
|
|
18
18
|
`,exitCode:1}}catch{}if(await e.fs.writeFile(f,d),!o.keep&&!a&&await e.fs.rm(n),o.verbose){let i=p.length>0?((1-p.length/d.length)*100).toFixed(1):"0.0";return{stdout:s,stderr:`${t}: ${i}% -- replaced with ${f.split("/").pop()}
|
|
19
19
|
`,exitCode:0}}return{stdout:s,stderr:"",exitCode:0}}else{if(t.endsWith(u))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t} already has ${u} suffix -- unchanged
|
|
20
|
-
`,exitCode:1};let d=
|
|
20
|
+
`,exitCode:1};let d=L(o),i;try{i=(await w()).gzipSync(p,{level:d})}catch(g){let c=g instanceof Error?g.message:"unknown error";return{stdout:s,stderr:`${r}: ${t}: ${c}
|
|
21
21
|
`,exitCode:1}}if(a)return{stdout:i,stderr:"",exitCode:0};if(f=n+u,!o.force)try{return await e.fs.stat(f),{stdout:s,stderr:`${r}: ${f} already exists; not overwritten
|
|
22
22
|
`,exitCode:1}}catch{}if(await e.fs.writeFile(f,i),!o.keep&&!a&&await e.fs.rm(n),o.verbose){let g=p.length>0?((1-i.length/p.length)*100).toFixed(1):"0.0";return{stdout:s,stderr:`${t}: ${g}% -- replaced with ${f.split("/").pop()}
|
|
23
|
-
`,exitCode:0}}return{stdout:s,stderr:"",exitCode:0}}}async function
|
|
24
|
-
`,exitCode:1}}}if(
|
|
25
|
-
`,exitCode:1};let a=l.length,u=
|
|
26
|
-
`;return{stdout
|
|
27
|
-
`,exitCode:1}}}if(
|
|
28
|
-
`,exitCode:1};try{return
|
|
23
|
+
`,exitCode:0}}return{stdout:s,stderr:"",exitCode:0}}}async function T(e,t,o,r,l,a){let u=await e.fs.readdir(t),n=s,f="",p=0;for(let d of u){let i=e.fs.resolvePath(t,d),g=await e.fs.stat(i);if(g.isDirectory){let c=await T(e,i,o,r,l,a);n=x(n,c.stdout),f+=c.stderr,c.exitCode!==0&&(p=c.exitCode)}else if(g.isFile){let c=o.suffix;if(l&&!d.endsWith(c)||!l&&d.endsWith(c))continue;let h=i.startsWith(`${e.cwd}/`)?i.slice(e.cwd.length+1):i,y=await O(e,h,o,r,l,a);n=x(n,y.stdout),f+=y.stderr,y.exitCode!==0&&(p=y.exitCode)}}return{stdout:n,stderr:f,exitCode:p}}async function M(e,t,o,r){let l;if(t==="-"||t==="")l=await b(e.stdin);else{let i=e.fs.resolvePath(e.cwd,t);try{l=await b(await e.fs.readFile(i))}catch{return{stdout:s,stderr:`${r}: ${t}: No such file or directory
|
|
24
|
+
`,exitCode:1}}}if(!$(l))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t}: not in gzip format
|
|
25
|
+
`,exitCode:1};let a=l.length,u=G(l),n=u>0?((1-a/u)*100).toFixed(1):"0.0",p=D(l).originalName||(t==="-"?"":t.replace(/\.gz$/,"")),d=`${a.toString().padStart(10)} ${u.toString().padStart(10)} ${n.padStart(5)}% ${p}
|
|
26
|
+
`;return{stdout:S(d),stderr:"",exitCode:0}}async function R(e,t,o,r){let l;if(t==="-"||t==="")l=await b(e.stdin);else{let a=e.fs.resolvePath(e.cwd,t);try{l=await b(await e.fs.readFile(a))}catch{return{stdout:s,stderr:`${r}: ${t}: No such file or directory
|
|
27
|
+
`,exitCode:1}}}if(!$(l))return o.quiet?{stdout:s,stderr:"",exitCode:1}:{stdout:s,stderr:`${r}: ${t}: not in gzip format
|
|
28
|
+
`,exitCode:1};try{return(await w()).gunzipSync(l),o.verbose?{stdout:s,stderr:`${t}: OK
|
|
29
29
|
`,exitCode:0}:{stdout:s,stderr:"",exitCode:0}}catch(a){let u=a instanceof Error?a.message:"invalid";return{stdout:s,stderr:`${r}: ${t}: ${u}
|
|
30
|
-
`,exitCode:1}}}async function E(e,t,o){let r=k(e),l=o==="zcat"?
|
|
31
|
-
`),h="",y=0;for(let
|
|
30
|
+
`,exitCode:1}}}async function E(e,t,o){let r=k(e),l=o==="zcat"?Z:o==="gunzip"?B:H;if(I(r))return q(l);let a=P(o,r,A);if(!a.ok)return a.error;let u=a.result.flags,n=a.result.positional,f=o==="gunzip"||o==="zcat"||u.decompress||u.uncompress,p=o==="zcat"||u.stdout||u.toStdout;if(u.list){n.length===0&&(n=["-"]);let c=S(` compressed uncompressed ratio uncompressed_name
|
|
31
|
+
`),h="",y=0;for(let F of n){let m=await M(t,F,u,o);c=x(c,m.stdout),h+=m.stderr,m.exitCode!==0&&(y=m.exitCode)}return{stdout:v(c),stderr:z(h),exitCode:y}}if(u.test){n.length===0&&(n=["-"]);let c=s,h="",y=0;for(let F of n){let m=await R(t,F,u,o);c=x(c,m.stdout),h+=m.stderr,m.exitCode!==0&&(y=m.exitCode)}return{stdout:v(c),stderr:z(h),exitCode:y}}n.length===0&&(n=["-"]);let d=s,i="",g=0;for(let c of n){let h=await O(t,c,u,o,f,p);d=x(d,h.stdout),i+=h.stderr,h.exitCode!==0&&(g=h.exitCode)}return{stdout:v(d),stderr:z(i),exitCode:g}}var J={name:"gzip",async execute(e,t){return E(e,t,"gzip")}},Q={name:"gunzip",async execute(e,t){return E(e,t,"gunzip")}},V={name:"zcat",async execute(e,t){return E(e,t,"zcat")}},N={name:"gzip",flags:[{flag:"-c",type:"boolean"},{flag:"-d",type:"boolean"},{flag:"-f",type:"boolean"},{flag:"-k",type:"boolean"},{flag:"-l",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-q",type:"boolean"},{flag:"-r",type:"boolean"},{flag:"-t",type:"boolean"},{flag:"-v",type:"boolean"},{flag:"-1",type:"boolean"},{flag:"-9",type:"boolean"}],stdinType:"binary",needsFiles:!0},ee={name:"gunzip",flags:[{flag:"-c",type:"boolean"},{flag:"-f",type:"boolean"},{flag:"-k",type:"boolean"},{flag:"-q",type:"boolean"},{flag:"-v",type:"boolean"}],stdinType:"binary",needsFiles:!0},te={name:"zcat",flags:[{flag:"-f",type:"boolean"},{flag:"-q",type:"boolean"},{flag:"-v",type:"boolean"}],stdinType:"binary",needsFiles:!0};export{J as a,Q as b,V as c,N as d,ee as e,te as f};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import{a as q,b as H,c as V}from"./chunk-D3IE6KOV.js";import{a as M}from"./chunk-YNYSPYQ5.js";import{a as G,b as U,c as
|
|
1
|
+
import{a as q,b as H,c as V}from"./chunk-D3IE6KOV.js";import{a as M}from"./chunk-YNYSPYQ5.js";import{a as G,b as U,c as O}from"./chunk-PQPG4QOY.js";import{b as g,e as v,f as E,g as L}from"./chunk-7USKQKOT.js";import{k as B}from"./chunk-DEQBZDPB.js";var Z={js:{extensions:[".js",".mjs",".cjs",".jsx"],globs:[]},ts:{extensions:[".ts",".tsx",".mts",".cts"],globs:[]},html:{extensions:[".html",".htm",".xhtml"],globs:[]},css:{extensions:[".css",".scss",".sass",".less"],globs:[]},json:{extensions:[".json",".jsonc",".json5"],globs:[]},xml:{extensions:[".xml",".xsl",".xslt"],globs:[]},c:{extensions:[".c",".h"],globs:[]},cpp:{extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx",".h"],globs:[]},rust:{extensions:[".rs"],globs:[]},go:{extensions:[".go"],globs:[]},zig:{extensions:[".zig"],globs:[]},java:{extensions:[".java"],globs:[]},kotlin:{extensions:[".kt",".kts"],globs:[]},scala:{extensions:[".scala",".sc"],globs:[]},clojure:{extensions:[".clj",".cljc",".cljs",".edn"],globs:[]},py:{extensions:[".py",".pyi",".pyw"],globs:[]},rb:{extensions:[".rb",".rake",".gemspec"],globs:["Rakefile","Gemfile"]},php:{extensions:[".php",".phtml",".php3",".php4",".php5"],globs:[]},perl:{extensions:[".pl",".pm",".pod",".t"],globs:[]},lua:{extensions:[".lua"],globs:[]},sh:{extensions:[".sh",".bash",".zsh",".fish"],globs:[".bashrc",".zshrc",".profile"]},bat:{extensions:[".bat",".cmd"],globs:[]},ps:{extensions:[".ps1",".psm1",".psd1"],globs:[]},yaml:{extensions:[".yaml",".yml"],globs:[]},toml:{extensions:[".toml"],globs:["Cargo.toml","pyproject.toml"]},ini:{extensions:[".ini",".cfg",".conf"],globs:[]},csv:{extensions:[".csv",".tsv"],globs:[]},md:{extensions:[".md",".mdx",".markdown",".mdown",".mkd"],globs:[]},markdown:{extensions:[".md",".mdx",".markdown",".mdown",".mkd"],globs:[]},rst:{extensions:[".rst"],globs:[]},txt:{extensions:[".txt",".text"],globs:[]},tex:{extensions:[".tex",".ltx",".sty",".cls"],globs:[]},sql:{extensions:[".sql"],globs:[]},graphql:{extensions:[".graphql",".gql"],globs:[]},proto:{extensions:[".proto"],globs:[]},make:{extensions:[".mk",".mak"],globs:["Makefile","GNUmakefile","makefile"]},docker:{extensions:[],globs:["Dockerfile","Dockerfile.*","*.dockerfile"]},tf:{extensions:[".tf",".tfvars"],globs:[]}},k=class{types;constructor(){this.types=new Map(Object.entries(Z).map(([t,n])=>[t,{extensions:[...n.extensions],globs:[...n.globs]}]))}addType(t){let n=t.indexOf(":");if(n===-1)return;let s=t.slice(0,n),r=t.slice(n+1);if(r.startsWith("include:")){let l=r.slice(8),i=this.types.get(l);if(i){let a=this.types.get(s)||{extensions:[],globs:[]};a.extensions.push(...i.extensions),a.globs.push(...i.globs),this.types.set(s,a)}}else{let l=this.types.get(s)||{extensions:[],globs:[]};if(r.startsWith("*.")&&!r.slice(2).includes("*")){let i=r.slice(1);l.extensions.includes(i)||l.extensions.push(i)}else l.globs.includes(r)||l.globs.push(r);this.types.set(s,l)}}clearType(t){let n=this.types.get(t);n&&(n.extensions=[],n.globs=[])}getType(t){return this.types.get(t)}getAllTypes(){return this.types}matchesType(t,n){let s=t.toLowerCase();for(let r of n){if(r==="all"){if(this.matchesAnyType(t))return!0;continue}let l=this.types.get(r);if(l){for(let i of l.extensions)if(s.endsWith(i))return!0;for(let i of l.globs)if(i.includes("*")){let a=i.replace(/\./g,"\\.").replace(/\*/g,".*");if(M(`^${a}$`,"i").test(t))return!0}else if(s===i.toLowerCase())return!0}}return!1}matchesAnyType(t){let n=t.toLowerCase();for(let s of this.types.values()){for(let r of s.extensions)if(n.endsWith(r))return!0;for(let r of s.globs)if(r.includes("*")){let l=r.replace(/\./g,"\\.").replace(/\*/g,".*");if(M(`^${l}$`,"i").test(t))return!0}else if(n===r.toLowerCase())return!0}return!1}};function J(){let e=[];for(let[t,n]of Object.entries(Z).sort()){let s=[];for(let r of n.extensions)s.push(`*${r}`);for(let r of n.globs)s.push(r);e.push(`${t}: ${s.join(", ")}`)}return`${e.join(`
|
|
2
2
|
`)}
|
|
3
3
|
`}function Y(){return{ignoreCase:!1,caseSensitive:!1,smartCase:!0,fixedStrings:!1,wordRegexp:!1,lineRegexp:!1,invertMatch:!1,multiline:!1,multilineDotall:!1,patterns:[],patternFiles:[],count:!1,countMatches:!1,files:!1,filesWithMatches:!1,filesWithoutMatch:!1,stats:!1,onlyMatching:!1,maxCount:0,lineNumber:!0,noFilename:!1,withFilename:!1,nullSeparator:!1,byteOffset:!1,column:!1,vimgrep:!1,replace:null,afterContext:0,beforeContext:0,contextSeparator:"--",quiet:!1,heading:!1,passthru:!1,includeZero:!1,sort:"path",json:!1,globs:[],iglobs:[],globCaseInsensitive:!1,types:[],typesNot:[],typeAdd:[],typeClear:[],hidden:!1,noIgnore:!1,noIgnoreDot:!1,noIgnoreVcs:!1,ignoreFiles:[],maxDepth:1/0,maxFilesize:0,followSymlinks:!1,searchZip:!1,searchBinary:!1,preprocessor:null,preprocessorGlobs:[]}}function re(e){let t=e.match(/^(\d+)([KMG])?$/i);if(!t)return 0;let n=parseInt(t[1],10);switch((t[2]||"").toUpperCase()){case"K":return n*1024;case"M":return n*1024*1024;case"G":return n*1024*1024*1024;default:return n}}function ie(e){return/^\d+[KMG]?$/i.test(e)?null:{stdout:g(),stderr:v(`rg: invalid --max-filesize value: ${e}
|
|
4
|
-
`),exitCode:1}}function K(e){return null}var X=[{short:"g",long:"glob",target:"globs",multi:!0},{long:"iglob",target:"iglobs",multi:!0},{short:"t",long:"type",target:"types",multi:!0,validate:K},{short:"T",long:"type-not",target:"typesNot",multi:!0,validate:K},{long:"type-add",target:"typeAdd",multi:!0},{long:"type-clear",target:"typeClear",multi:!0},{short:"m",long:"max-count",target:"maxCount",parse:parseInt},{short:"e",long:"regexp",target:"patterns",multi:!0},{short:"f",long:"file",target:"patternFiles",multi:!0},{short:"r",long:"replace",target:"replace"},{short:"d",long:"max-depth",target:"maxDepth",parse:parseInt},{long:"max-filesize",target:"maxFilesize",parse:re,validate:ie},{long:"context-separator",target:"contextSeparator"},{short:"j",long:"threads",target:"maxDepth",parse:()=>1/0},{long:"ignore-file",target:"ignoreFiles",multi:!0},{long:"pre",target:"preprocessor"},{long:"pre-glob",target:"preprocessorGlobs",multi:!0}],le=new Map([["i",e=>{e.ignoreCase=!0,e.caseSensitive=!1,e.smartCase=!1}],["--ignore-case",e=>{e.ignoreCase=!0,e.caseSensitive=!1,e.smartCase=!1}],["s",e=>{e.caseSensitive=!0,e.ignoreCase=!1,e.smartCase=!1}],["--case-sensitive",e=>{e.caseSensitive=!0,e.ignoreCase=!1,e.smartCase=!1}],["S",e=>{e.smartCase=!0,e.ignoreCase=!1,e.caseSensitive=!1}],["--smart-case",e=>{e.smartCase=!0,e.ignoreCase=!1,e.caseSensitive=!1}],["F",e=>{e.fixedStrings=!0}],["--fixed-strings",e=>{e.fixedStrings=!0}],["w",e=>{e.wordRegexp=!0}],["--word-regexp",e=>{e.wordRegexp=!0}],["x",e=>{e.lineRegexp=!0}],["--line-regexp",e=>{e.lineRegexp=!0}],["v",e=>{e.invertMatch=!0}],["--invert-match",e=>{e.invertMatch=!0}],["U",e=>{e.multiline=!0}],["--multiline",e=>{e.multiline=!0}],["--multiline-dotall",e=>{e.multilineDotall=!0,e.multiline=!0}],["c",e=>{e.count=!0}],["--count",e=>{e.count=!0}],["--count-matches",e=>{e.countMatches=!0}],["l",e=>{e.filesWithMatches=!0}],["--files",e=>{e.files=!0}],["--files-with-matches",e=>{e.filesWithMatches=!0}],["--files-without-match",e=>{e.filesWithoutMatch=!0}],["--stats",e=>{e.stats=!0}],["o",e=>{e.onlyMatching=!0}],["--only-matching",e=>{e.onlyMatching=!0}],["q",e=>{e.quiet=!0}],["--quiet",e=>{e.quiet=!0}],["N",e=>{e.lineNumber=!1}],["--no-line-number",e=>{e.lineNumber=!1}],["H",e=>{e.withFilename=!0}],["--with-filename",e=>{e.withFilename=!0}],["I",e=>{e.noFilename=!0}],["--no-filename",e=>{e.noFilename=!0}],["0",e=>{e.nullSeparator=!0}],["--null",e=>{e.nullSeparator=!0}],["b",e=>{e.byteOffset=!0}],["--byte-offset",e=>{e.byteOffset=!0}],["--column",e=>{e.column=!0,e.lineNumber=!0}],["--no-column",e=>{e.column=!1}],["--vimgrep",e=>{e.vimgrep=!0,e.column=!0,e.lineNumber=!0}],["--json",e=>{e.json=!0}],["--hidden",e=>{e.hidden=!0}],["--no-ignore",e=>{e.noIgnore=!0}],["--no-ignore-dot",e=>{e.noIgnoreDot=!0}],["--no-ignore-vcs",e=>{e.noIgnoreVcs=!0}],["L",e=>{e.followSymlinks=!0}],["--follow",e=>{e.followSymlinks=!0}],["z",e=>{e.searchZip=!0}],["--search-zip",e=>{e.searchZip=!0}],["a",e=>{e.searchBinary=!0}],["--text",e=>{e.searchBinary=!0}],["--heading",e=>{e.heading=!0}],["--passthru",e=>{e.passthru=!0}],["--include-zero",e=>{e.includeZero=!0}],["--glob-case-insensitive",e=>{e.globCaseInsensitive=!0}]]),oe=new Set(["n","--line-number"]);function ae(e){e.hidden?e.searchBinary=!0:e.noIgnore?e.hidden=!0:e.noIgnore=!0}function ce(e,t,n){let s=e[t];for(let r of X){if(s.startsWith(`--${r.long}=`)){let l=s.slice(`--${r.long}=`.length),i=
|
|
5
|
-
`),exitCode:1}};if(f.length===1){let w=fe(f);if(w){if(c+1>=e.length)return{success:!1,error:
|
|
6
|
-
`);for(let s of n){let r=s.replace(/\s+$/,"");if(!r||r.startsWith("#"))continue;let l=!1;r.startsWith("!")&&(l=!0,r=r.slice(1));let i=!1;r.endsWith("/")&&(i=!0,r=r.slice(0,-1));let a=!1;r.startsWith("/")?(a=!0,r=r.slice(1)):r.includes("/")&&!r.startsWith("**/")&&(a=!0);let c=this.patternToRegex(r,a);this.patterns.push({pattern:s,regex:c,negated:l,directoryOnly:i,rooted:a})}}patternToRegex(t,n){let s="";n?s="^":s="(?:^|/)";let r=0;for(;r<t.length;){let l=t[r];if(l==="*")t[r+1]==="*"?t[r+2]==="/"?(s+="(?:.*/)?",r+=3):(r+2>=t.length,s+=".*",r+=2):(s+="[^/]*",r++);else if(l==="?")s+="[^/]",r++;else if(l==="["){let i=r+1;for(i<t.length&&t[i]==="!"&&i++,i<t.length&&t[i]==="]"&&i++;i<t.length&&t[i]!=="]";)i++;if(i<t.length){let a=t.slice(r,i+1);a.startsWith("[!")&&(a=`[^${a.slice(2)}`),s+=a,r=i+1}else s+="\\[",r++}else l==="/"?(s+="/",r++):(s+=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r++)}return s+="(?:/.*)?$",M(s)}matches(t,n){let s=t.replace(/^\.\//,"");s=s.replace(/^\//,"");let r=!1;for(let l of this.patterns)l.directoryOnly&&!n||l.regex.test(s)&&(r=!l.negated);return r}isWhitelisted(t,n){let s=t.replace(/^\.\//,"");s=s.replace(/^\//,"");for(let r of this.patterns)if(!(r.directoryOnly&&!n)&&r.negated&&r.regex.test(s))return!0;return!1}getBasePath(){return this.basePath}},W=class{parsers=[];fs;skipDotIgnore;skipVcsIgnore;loadedDirs=new Set;constructor(t,n,s=!1,r=!1){this.fs=t,this.skipDotIgnore=s,this.skipVcsIgnore=r}async load(t){let n=[],s=t;for(;;){n.unshift(s);let l=this.fs.resolvePath(s,"..");if(l===s)break;s=l}let r=[];this.skipVcsIgnore||r.push(".gitignore"),this.skipDotIgnore||r.push(".rgignore",".ignore");for(let l of n){this.loadedDirs.add(l);for(let i of r){let a=this.fs.resolvePath(l,i);try{let c=await this.fs.readFileText(a),o=new N(l);o.parse(c),this.parsers.push(o)}catch{}}}}async loadForDirectory(t){if(this.loadedDirs.has(t))return;this.loadedDirs.add(t);let n=[];this.skipVcsIgnore||n.push(".gitignore"),this.skipDotIgnore||n.push(".rgignore",".ignore");for(let s of n){let r=this.fs.resolvePath(t,s);try{let l=await this.fs.readFileText(r),i=new N(t);i.parse(l),this.parsers.push(i)}catch{}}}addPatternsFromContent(t,n){let s=new N(n);s.parse(t),this.parsers.push(s)}matches(t,n){for(let s of this.parsers){let r=s.getBasePath();if(!t.startsWith(r))continue;let l=t.slice(r.length).replace(/^\//,"");if(s.matches(l,n))return!0}return!1}isWhitelisted(t,n){for(let s of this.parsers){let r=s.getBasePath();if(!t.startsWith(r))continue;let l=t.slice(r.length).replace(/^\//,"");if(s.isWhitelisted(l,n))return!0}return!1}static isCommonIgnored(t){return new Set(["node_modules",".git",".svn",".hg","__pycache__",".pytest_cache",".mypy_cache","venv",".venv",".next",".nuxt",".cargo"]).has(t)}};async function
|
|
7
|
-
`),exitCode:1}}if(n.files){let f=[...n.patterns,...s];return be(t,f,n)}let l=[...n.patterns];for(let f of n.patternFiles)try{let y;if(f==="-")y=await
|
|
4
|
+
`),exitCode:1}}function K(e){return null}var X=[{short:"g",long:"glob",target:"globs",multi:!0},{long:"iglob",target:"iglobs",multi:!0},{short:"t",long:"type",target:"types",multi:!0,validate:K},{short:"T",long:"type-not",target:"typesNot",multi:!0,validate:K},{long:"type-add",target:"typeAdd",multi:!0},{long:"type-clear",target:"typeClear",multi:!0},{short:"m",long:"max-count",target:"maxCount",parse:parseInt},{short:"e",long:"regexp",target:"patterns",multi:!0},{short:"f",long:"file",target:"patternFiles",multi:!0},{short:"r",long:"replace",target:"replace"},{short:"d",long:"max-depth",target:"maxDepth",parse:parseInt},{long:"max-filesize",target:"maxFilesize",parse:re,validate:ie},{long:"context-separator",target:"contextSeparator"},{short:"j",long:"threads",target:"maxDepth",parse:()=>1/0},{long:"ignore-file",target:"ignoreFiles",multi:!0},{long:"pre",target:"preprocessor"},{long:"pre-glob",target:"preprocessorGlobs",multi:!0}],le=new Map([["i",e=>{e.ignoreCase=!0,e.caseSensitive=!1,e.smartCase=!1}],["--ignore-case",e=>{e.ignoreCase=!0,e.caseSensitive=!1,e.smartCase=!1}],["s",e=>{e.caseSensitive=!0,e.ignoreCase=!1,e.smartCase=!1}],["--case-sensitive",e=>{e.caseSensitive=!0,e.ignoreCase=!1,e.smartCase=!1}],["S",e=>{e.smartCase=!0,e.ignoreCase=!1,e.caseSensitive=!1}],["--smart-case",e=>{e.smartCase=!0,e.ignoreCase=!1,e.caseSensitive=!1}],["F",e=>{e.fixedStrings=!0}],["--fixed-strings",e=>{e.fixedStrings=!0}],["w",e=>{e.wordRegexp=!0}],["--word-regexp",e=>{e.wordRegexp=!0}],["x",e=>{e.lineRegexp=!0}],["--line-regexp",e=>{e.lineRegexp=!0}],["v",e=>{e.invertMatch=!0}],["--invert-match",e=>{e.invertMatch=!0}],["U",e=>{e.multiline=!0}],["--multiline",e=>{e.multiline=!0}],["--multiline-dotall",e=>{e.multilineDotall=!0,e.multiline=!0}],["c",e=>{e.count=!0}],["--count",e=>{e.count=!0}],["--count-matches",e=>{e.countMatches=!0}],["l",e=>{e.filesWithMatches=!0}],["--files",e=>{e.files=!0}],["--files-with-matches",e=>{e.filesWithMatches=!0}],["--files-without-match",e=>{e.filesWithoutMatch=!0}],["--stats",e=>{e.stats=!0}],["o",e=>{e.onlyMatching=!0}],["--only-matching",e=>{e.onlyMatching=!0}],["q",e=>{e.quiet=!0}],["--quiet",e=>{e.quiet=!0}],["N",e=>{e.lineNumber=!1}],["--no-line-number",e=>{e.lineNumber=!1}],["H",e=>{e.withFilename=!0}],["--with-filename",e=>{e.withFilename=!0}],["I",e=>{e.noFilename=!0}],["--no-filename",e=>{e.noFilename=!0}],["0",e=>{e.nullSeparator=!0}],["--null",e=>{e.nullSeparator=!0}],["b",e=>{e.byteOffset=!0}],["--byte-offset",e=>{e.byteOffset=!0}],["--column",e=>{e.column=!0,e.lineNumber=!0}],["--no-column",e=>{e.column=!1}],["--vimgrep",e=>{e.vimgrep=!0,e.column=!0,e.lineNumber=!0}],["--json",e=>{e.json=!0}],["--hidden",e=>{e.hidden=!0}],["--no-ignore",e=>{e.noIgnore=!0}],["--no-ignore-dot",e=>{e.noIgnoreDot=!0}],["--no-ignore-vcs",e=>{e.noIgnoreVcs=!0}],["L",e=>{e.followSymlinks=!0}],["--follow",e=>{e.followSymlinks=!0}],["z",e=>{e.searchZip=!0}],["--search-zip",e=>{e.searchZip=!0}],["a",e=>{e.searchBinary=!0}],["--text",e=>{e.searchBinary=!0}],["--heading",e=>{e.heading=!0}],["--passthru",e=>{e.passthru=!0}],["--include-zero",e=>{e.includeZero=!0}],["--glob-case-insensitive",e=>{e.globCaseInsensitive=!0}]]),oe=new Set(["n","--line-number"]);function ae(e){e.hidden?e.searchBinary=!0:e.noIgnore?e.hidden=!0:e.noIgnore=!0}function ce(e,t,n){let s=e[t];for(let r of X){if(s.startsWith(`--${r.long}=`)){let l=s.slice(`--${r.long}=`.length),i=P(n,r,l);return i?{newIndex:t,error:i}:{newIndex:t}}if(r.short&&s.startsWith(`-${r.short}`)&&s.length>2){let l=s.slice(2),i=P(n,r,l);return i?{newIndex:t,error:i}:{newIndex:t}}if(r.short&&s===`-${r.short}`||s===`--${r.long}`){if(t+1>=e.length)return null;let l=e[t+1],i=P(n,r,l);return i?{newIndex:t+1,error:i}:{newIndex:t+1}}}return null}function fe(e){return X.find(t=>t.short===e)}function P(e,t,n){if(t.validate){let r=t.validate(n);if(r)return r}let s=t.parse?t.parse(n):n;t.multi?e[t.target].push(s):e[t.target]=s}function ue(e,t){let n=e[t];if(n==="--sort"&&t+1<e.length){let s=e[t+1];if(s==="path"||s==="none")return{value:s,newIndex:t+1}}if(n.startsWith("--sort=")){let s=n.slice(7);if(s==="path"||s==="none")return{value:s,newIndex:t}}return null}function he(e,t){let n=e[t],s=n.match(/^-([ABC])(\d+)$/);return s?{flag:s[1],value:parseInt(s[2],10),newIndex:t}:(n==="-A"||n==="-B"||n==="-C")&&t+1<e.length?{flag:n[1],value:parseInt(e[t+1],10),newIndex:t+1}:null}function ge(e){let t=e.match(/^-m(\d+)$/);return t?parseInt(t[1],10):null}function Q(e){let t=Y(),n=null,s=[],r=-1,l=-1,i=-1,a=!1;for(let c=0;c<e.length;c++){let o=e[c];if(o.startsWith("-")&&o!=="-"){let u=he(e,c);if(u){let{flag:f,value:y,newIndex:w}=u;f==="A"?r=Math.max(r,y):f==="B"?l=Math.max(l,y):i=y,c=w;continue}let x=ge(o);if(x!==null){t.maxCount=x;continue}let m=ce(e,c,t);if(m){if(m.error)return{success:!1,error:m.error};c=m.newIndex;continue}let p=ue(e,c);if(p){t.sort=p.value,c=p.newIndex;continue}let C=o.startsWith("--")?[o]:o.slice(1).split(""),d=!1;for(let f of C){if(oe.has(f)){t.lineNumber=!0,a=!0;continue}if(f==="u"||f==="--unrestricted"){ae(t);continue}if(f==="P"||f==="--pcre2")return{success:!1,error:{stdout:g(),stderr:v(`rg: PCRE2 is not supported. Use standard regex syntax instead.
|
|
5
|
+
`),exitCode:1}};if(f.length===1){let w=fe(f);if(w){if(c+1>=e.length)return{success:!1,error:O("rg",`-${f}`)};let h=P(t,w,e[c+1]);if(h)return{success:!1,error:h};c++,d=!0;continue}}let y=le.get(f);if(y){y(t);continue}if(f.startsWith("--"))return{success:!1,error:O("rg",f)};if(f.length===1)return{success:!1,error:O("rg",`-${f}`)}}}else n===null&&t.patterns.length===0&&t.patternFiles.length===0?n=o:s.push(o)}return(r>=0||i>=0)&&(t.afterContext=Math.max(r>=0?r:0,i>=0?i:0)),(l>=0||i>=0)&&(t.beforeContext=Math.max(l>=0?l:0,i>=0?i:0)),n!==null&&t.patterns.push(n),(t.column||t.vimgrep)&&(a=!0),{success:!0,options:t,paths:s,explicitLineNumbers:a}}var N=class{patterns=[];basePath;constructor(t="/"){this.basePath=t}parse(t){let n=t.split(`
|
|
6
|
+
`);for(let s of n){let r=s.replace(/\s+$/,"");if(!r||r.startsWith("#"))continue;let l=!1;r.startsWith("!")&&(l=!0,r=r.slice(1));let i=!1;r.endsWith("/")&&(i=!0,r=r.slice(0,-1));let a=!1;r.startsWith("/")?(a=!0,r=r.slice(1)):r.includes("/")&&!r.startsWith("**/")&&(a=!0);let c=this.patternToRegex(r,a);this.patterns.push({pattern:s,regex:c,negated:l,directoryOnly:i,rooted:a})}}patternToRegex(t,n){let s="";n?s="^":s="(?:^|/)";let r=0;for(;r<t.length;){let l=t[r];if(l==="*")t[r+1]==="*"?t[r+2]==="/"?(s+="(?:.*/)?",r+=3):(r+2>=t.length,s+=".*",r+=2):(s+="[^/]*",r++);else if(l==="?")s+="[^/]",r++;else if(l==="["){let i=r+1;for(i<t.length&&t[i]==="!"&&i++,i<t.length&&t[i]==="]"&&i++;i<t.length&&t[i]!=="]";)i++;if(i<t.length){let a=t.slice(r,i+1);a.startsWith("[!")&&(a=`[^${a.slice(2)}`),s+=a,r=i+1}else s+="\\[",r++}else l==="/"?(s+="/",r++):(s+=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r++)}return s+="(?:/.*)?$",M(s)}matches(t,n){let s=t.replace(/^\.\//,"");s=s.replace(/^\//,"");let r=!1;for(let l of this.patterns)l.directoryOnly&&!n||l.regex.test(s)&&(r=!l.negated);return r}isWhitelisted(t,n){let s=t.replace(/^\.\//,"");s=s.replace(/^\//,"");for(let r of this.patterns)if(!(r.directoryOnly&&!n)&&r.negated&&r.regex.test(s))return!0;return!1}getBasePath(){return this.basePath}},W=class{parsers=[];fs;skipDotIgnore;skipVcsIgnore;loadedDirs=new Set;constructor(t,n,s=!1,r=!1){this.fs=t,this.skipDotIgnore=s,this.skipVcsIgnore=r}async load(t){let n=[],s=t;for(;;){n.unshift(s);let l=this.fs.resolvePath(s,"..");if(l===s)break;s=l}let r=[];this.skipVcsIgnore||r.push(".gitignore"),this.skipDotIgnore||r.push(".rgignore",".ignore");for(let l of n){this.loadedDirs.add(l);for(let i of r){let a=this.fs.resolvePath(l,i);try{let c=await this.fs.readFileText(a),o=new N(l);o.parse(c),this.parsers.push(o)}catch{}}}}async loadForDirectory(t){if(this.loadedDirs.has(t))return;this.loadedDirs.add(t);let n=[];this.skipVcsIgnore||n.push(".gitignore"),this.skipDotIgnore||n.push(".rgignore",".ignore");for(let s of n){let r=this.fs.resolvePath(t,s);try{let l=await this.fs.readFileText(r),i=new N(t);i.parse(l),this.parsers.push(i)}catch{}}}addPatternsFromContent(t,n){let s=new N(n);s.parse(t),this.parsers.push(s)}matches(t,n){for(let s of this.parsers){let r=s.getBasePath();if(!t.startsWith(r))continue;let l=t.slice(r.length).replace(/^\//,"");if(s.matches(l,n))return!0}return!1}isWhitelisted(t,n){for(let s of this.parsers){let r=s.getBasePath();if(!t.startsWith(r))continue;let l=t.slice(r.length).replace(/^\//,"");if(s.isWhitelisted(l,n))return!0}return!1}static isCommonIgnored(t){return new Set(["node_modules",".git",".svn",".hg","__pycache__",".pytest_cache",".mypy_cache","venv",".venv",".next",".nuxt",".cargo"]).has(t)}};async function R(e,t,n=!1,s=!1,r=[]){let l=new W(e,t,n,s);await l.load(t);for(let i of r)try{let a=e.resolvePath(t,i),c=await e.readFileText(a);l.addPatternsFromContent(c,t)}catch{}return l}async function pe(e){return(await import("node:zlib")).gunzipSync(e)}function me(e){return e.length>=2&&e[0]===31&&e[1]===139}function de(e){let t=!1;for(let n=0;n<e.length;n++){let s=e[n];s==="["&&!t?t=!0:s==="]"&&t&&(t=!1)}return t?`rg: glob '${e}' has an unclosed character class`:null}async function ee(e){let{ctx:t,options:n,paths:s,explicitLineNumbers:r}=e;for(let f of n.globs){let y=f.startsWith("!")?f.slice(1):f,w=de(y);if(w)return{stdout:g(),stderr:v(`${w}
|
|
7
|
+
`),exitCode:1}}if(n.files){let f=[...n.patterns,...s];return be(t,f,n)}let l=[...n.patterns];for(let f of n.patternFiles)try{let y;if(f==="-")y=await L(t.stdin);else{let h=t.fs.resolvePath(t.cwd,f);y=await t.fs.readFileText(h)}let w=y.split(`
|
|
8
8
|
`).filter(h=>h.length>0);l.push(...w)}catch{return{stdout:g(),stderr:v(`rg: ${f}: No such file or directory
|
|
9
9
|
`),exitCode:2}}if(l.length===0)return n.patternFiles.length>0?{stdout:g(),stderr:g(),exitCode:1}:{stdout:g(),stderr:v(`rg: no pattern given
|
|
10
10
|
`),exitCode:2};let i=s.length===0?["."]:s,a=xe(n,l),c,o;try{let f=ye(l,n,a);c=f.regex,o=f.kResetGroup}catch{return{stdout:g(),stderr:v(`rg: invalid regex: ${l.join(", ")}
|
|
11
|
-
`),exitCode:2}}let u=null;n.noIgnore||(u=await
|
|
12
|
-
`,c=i.map(o=>o+a).join("");return{stdout:v(c),stderr:g(),exitCode:0}}function we(e,t){if(t.length===0)return!0;for(let n of t)if(S(e,n,!1))return!0;return!1}async function ve(e,t,n,s){try{if(s.preprocessor&&e.exec){let i=n.split("/").pop()||n;if(we(i,s.preprocessorGlobs)){let a=await e.exec(`${s.preprocessor} "${t}"`,{cwd:e.cwd});if(a.exitCode===0){let c=await
|
|
13
|
-
`);n.lastIndex=0;let D=0;for(let T=0;T<j.length;T++){let
|
|
14
|
-
`},line_number:T+1,absolute_offset:D,submatches:
|
|
11
|
+
`),exitCode:2}}let u=null;n.noIgnore||(u=await R(t.fs,t.cwd,n.noIgnoreDot,n.noIgnoreVcs,n.ignoreFiles));let x=new k;for(let f of n.typeClear)x.clearType(f);for(let f of n.typeAdd)x.addType(f);let{files:m,singleExplicitFile:p}=await te(t,i,n,u,x);if(m.length===0)return{stdout:g(),stderr:g(),exitCode:1};let C=!n.noFilename&&(n.withFilename||!p||m.length>1),d=n.lineNumber;return r||(p&&m.length===1&&(d=!1),n.onlyMatching&&(d=!1)),Ce(t,m,c,n,C,d,o)}function xe(e,t){return e.caseSensitive?!1:e.ignoreCase?!0:e.smartCase?!t.some(n=>/[A-Z]/.test(n)):!1}function ye(e,t,n){let s;return e.length===1?s=e[0]:s=e.map(r=>t.fixedStrings?r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):`(?:${r})`).join("|"),H(s,{mode:t.fixedStrings&&e.length===1?"fixed":"perl",ignoreCase:n,wholeWord:t.wordRegexp,lineRegexp:t.lineRegexp,multiline:t.multiline,multilineDotall:t.multilineDotall})}async function te(e,t,n,s,r){let l=[],i=0,a=0;for(let o of t){let u=e.fs.resolvePath(e.cwd,o);try{let x=await e.fs.stat(u);if(x.isFile){if(i++,n.maxFilesize>0&&x.size>n.maxFilesize)continue;ne(o,n,s,u,r)&&l.push(o)}else x.isDirectory&&(a++,await se(e,o,u,0,n,s,r,l))}catch{}}return{files:n.sort==="path"?l.sort():l,singleExplicitFile:i===1&&a===0}}async function se(e,t,n,s,r,l,i,a){if(!(s>=r.maxDepth)){l&&await l.loadForDirectory(n);try{let c=e.fs.readdirWithFileTypes?await e.fs.readdirWithFileTypes(n):(await e.fs.readdir(n)).map(o=>({name:o,isFile:void 0}));for(let o of c){let u=o.name;if(!r.noIgnore&&W.isCommonIgnored(u))continue;let x=u.startsWith("."),m=t==="."?u:t==="./"?`./${u}`:t.endsWith("/")?`${t}${u}`:`${t}/${u}`,p=e.fs.resolvePath(n,u),C,d,f=!1;if(o.isFile!==void 0&&"isDirectory"in o){let h=o;if(f=h.isSymbolicLink===!0,f&&!r.followSymlinks)continue;if(f&&r.followSymlinks)try{let b=await e.fs.stat(p);C=b.isFile,d=b.isDirectory}catch{continue}else C=h.isFile,d=h.isDirectory}else try{let h=e.fs.lstat?await e.fs.lstat(p):await e.fs.stat(p);if(f=h.isSymbolicLink===!0,f&&!r.followSymlinks)continue;let b=f&&r.followSymlinks?await e.fs.stat(p):h;C=b.isFile,d=b.isDirectory}catch{continue}if(!l?.matches(p,d)&&!(x&&!r.hidden&&!l?.isWhitelisted(p,d))){if(d)await se(e,m,p,s+1,r,l,i,a);else if(C){if(r.maxFilesize>0)try{if((await e.fs.stat(p)).size>r.maxFilesize)continue}catch{continue}ne(m,r,l,p,i)&&a.push(m)}}}}catch{}}}function ne(e,t,n,s,r){let l=e.split("/").pop()||e;if(n?.matches(s,!1)||t.types.length>0&&!r.matchesType(l,t.types)||t.typesNot.length>0&&r.matchesType(l,t.typesNot))return!1;if(t.globs.length>0){let i=t.globCaseInsensitive,a=t.globs.filter(o=>!o.startsWith("!")),c=t.globs.filter(o=>o.startsWith("!")).map(o=>o.slice(1));if(a.length>0){let o=!1;for(let u of a)if(S(l,u,i)||S(e,u,i)){o=!0;break}if(!o)return!1}for(let o of c)if(o.startsWith("/")){let u=o.slice(1);if(S(e,u,i))return!1}else if(S(l,o,i)||S(e,o,i))return!1}if(t.iglobs.length>0){let i=t.iglobs.filter(c=>!c.startsWith("!")),a=t.iglobs.filter(c=>c.startsWith("!")).map(c=>c.slice(1));if(i.length>0){let c=!1;for(let o of i)if(S(l,o,!0)||S(e,o,!0)){c=!0;break}if(!c)return!1}for(let c of a)if(c.startsWith("/")){let o=c.slice(1);if(S(e,o,!0))return!1}else if(S(l,c,!0)||S(e,c,!0))return!1}return!0}function S(e,t,n=!1){let s="^";for(let r=0;r<t.length;r++){let l=t[r];if(l==="*")t[r+1]==="*"?(s+=".*",r++):s+="[^/]*";else if(l==="?")s+="[^/]";else if(l==="["){let i=r+1;for(i<t.length&&t[i]==="!"&&i++,i<t.length&&t[i]==="]"&&i++;i<t.length&&t[i]!=="]";)i++;if(i<t.length){let a=t.slice(r,i+1);a.startsWith("[!")&&(a=`[^${a.slice(2)}`),s+=a,r=i}else s+="\\["}else s+=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}return s+="$",M(s,n?"i":"").test(e)}async function be(e,t,n){let s=null;n.noIgnore||(s=await R(e.fs,e.cwd,n.noIgnoreDot,n.noIgnoreVcs,n.ignoreFiles));let r=new k;for(let o of n.typeClear)r.clearType(o);for(let o of n.typeAdd)r.addType(o);let l=t.length===0?["."]:t,{files:i}=await te(e,l,n,s,r);if(i.length===0)return{stdout:g(),stderr:g(),exitCode:1};if(n.quiet)return{stdout:g(),stderr:g(),exitCode:0};let a=n.nullSeparator?"\0":`
|
|
12
|
+
`,c=i.map(o=>o+a).join("");return{stdout:v(c),stderr:g(),exitCode:0}}function we(e,t){if(t.length===0)return!0;for(let n of t)if(S(e,n,!1))return!0;return!1}async function ve(e,t,n,s){try{if(s.preprocessor&&e.exec){let i=n.split("/").pop()||n;if(we(i,s.preprocessorGlobs)){let a=await e.exec(`${s.preprocessor} "${t}"`,{cwd:e.cwd});if(a.exitCode===0){let c=await L(a.stdout);if(c.length>0){let o=c.slice(0,8192);return{content:c,isBinary:o.includes("\0")}}}}}if(s.searchZip&&n.endsWith(".gz")){let i=await E(await e.fs.readFile(t));if(me(i))try{let a=await pe(i),c=new TextDecoder().decode(a),o=c.slice(0,8192);return{content:c,isBinary:o.includes("\0")}}catch{return null}}let r=await e.fs.readFileText(t),l=r.slice(0,8192);return{content:r,isBinary:l.includes("\0")}}catch{return null}}async function Ce(e,t,n,s,r,l,i){let a="",c=!1,o=[],u=0,x=0,m=0,p=50;e:for(let f=0;f<t.length;f+=p){let y=t.slice(f,f+p),w=await Promise.all(y.map(async h=>{let b=e.fs.resolvePath(e.cwd,h),I=await ve(e,b,h,s);if(!I)return null;let{content:F,isBinary:j}=I;if(m+=F.length,j&&!s.searchBinary)return null;let D=r&&!s.heading?h:"",T=q(F,n,{invertMatch:s.invertMatch,showLineNumbers:l,countOnly:s.count,countMatches:s.countMatches,filename:D,onlyMatching:s.onlyMatching,beforeContext:s.beforeContext,afterContext:s.afterContext,maxCount:s.maxCount,contextSeparator:s.contextSeparator,showColumn:s.column,vimgrep:s.vimgrep,showByteOffset:s.byteOffset,replace:s.replace!==null?V(s.replace):null,passthru:s.passthru,multiline:s.multiline,kResetGroup:i});return s.json&&T.matched?{file:h,result:T,content:F,isBinary:!1}:{file:h,result:T}}));for(let h of w){if(!h)continue;let{file:b,result:I}=h;if(I.matched){if(c=!0,x++,u+=I.matchCount,s.quiet&&!s.json)break e;if(s.json&&!s.quiet){let F=h.content||"";o.push(JSON.stringify({type:"begin",data:{path:{text:b}}}));let j=F.split(`
|
|
13
|
+
`);n.lastIndex=0;let D=0;for(let T=0;T<j.length;T++){let z=j[T];n.lastIndex=0;let A=[];for(let $=n.exec(z);$!==null;$=n.exec(z)){let _={match:{text:$[0]},start:$.index,end:$.index+$[0].length};s.replace!==null&&(_.replacement={text:s.replace}),A.push(_),$[0].length===0&&n.lastIndex++}if(A.length>0){let $={type:"match",data:{path:{text:b},lines:{text:`${z}
|
|
14
|
+
`},line_number:T+1,absolute_offset:D,submatches:A}};o.push(JSON.stringify($))}D+=z.length+1}o.push(JSON.stringify({type:"end",data:{path:{text:b},binary_offset:null,stats:{elapsed:{secs:0,nanos:0,human:"0s"},searches:1,searches_with_match:1,bytes_searched:F.length,bytes_printed:0,matched_lines:I.matchCount,matches:I.matchCount}}}))}else if(s.filesWithMatches){let F=s.nullSeparator?"\0":`
|
|
15
15
|
`;a+=`${b}${F}`}else s.filesWithoutMatch||(s.heading&&!s.noFilename&&(a+=`${b}
|
|
16
16
|
`),a+=I.output)}else if(s.filesWithoutMatch){let F=s.nullSeparator?"\0":`
|
|
17
17
|
`;a+=`${b}${F}`}else s.includeZero&&(s.count||s.countMatches)&&(a+=I.output)}}s.json&&(o.push(JSON.stringify({type:"summary",data:{elapsed_total:{secs:0,nanos:0,human:"0s"},stats:{elapsed:{secs:0,nanos:0,human:"0s"},searches:t.length,searches_with_match:x,bytes_searched:m,bytes_printed:0,matched_lines:u,matches:u}}})),a=`${o.join(`
|
|
@@ -29,4 +29,4 @@ EXAMPLES:
|
|
|
29
29
|
rg -t js foo Search only JavaScript files
|
|
30
30
|
rg -g '*.ts' foo Search files matching glob
|
|
31
31
|
rg --hidden foo Include hidden files
|
|
32
|
-
rg -l foo List files with matches only`,options:["-e, --regexp PATTERN search for PATTERN (can be used multiple times)","-f, --file FILE read patterns from FILE, one per line","-i, --ignore-case case-insensitive search","-s, --case-sensitive case-sensitive search (overrides smart-case)","-S, --smart-case smart case (default: case-insensitive unless pattern has uppercase)","-F, --fixed-strings treat pattern as literal string","-w, --word-regexp match whole words only","-x, --line-regexp match whole lines only","-v, --invert-match select non-matching lines","-r, --replace TEXT replace matches with TEXT","-c, --count print count of matching lines per file"," --count-matches print count of individual matches per file","-l, --files-with-matches print only file names with matches"," --files-without-match print file names without matches"," --files list files that would be searched","-o, --only-matching print only matching parts","-m, --max-count NUM stop after NUM matches per file","-q, --quiet suppress output, exit 0 on match"," --stats print search statistics","-n, --line-number print line numbers (default: on)","-N, --no-line-number do not print line numbers","-I, --no-filename suppress the prefixing of file names","-0, --null use NUL as filename separator","-b, --byte-offset show byte offset of each match"," --column show column number of first match"," --vimgrep show results in vimgrep format"," --json show results in JSON Lines format","-A NUM print NUM lines after each match","-B NUM print NUM lines before each match","-C NUM print NUM lines before and after each match"," --context-separator SEP separator for context groups (default: --)","-U, --multiline match patterns across lines","-z, --search-zip search in compressed files (gzip only)","-g, --glob GLOB include files matching GLOB","-t, --type TYPE only search files of TYPE (e.g., js, py, ts)","-T, --type-not TYPE exclude files of TYPE","-L, --follow follow symbolic links","-u, --unrestricted reduce filtering (-u: no ignore, -uu: +hidden, -uuu: +binary)","-a, --text search binary files as text"," --hidden search hidden files and directories"," --no-ignore don't respect .gitignore/.ignore files","-d, --max-depth NUM maximum search depth"," --sort TYPE sort files (path, none)"," --heading show file path above matches"," --passthru print all lines (non-matches use - separator)"," --include-zero include files with 0 matches in count output"," --type-list list all available file types"," --help display this help and exit"]},
|
|
32
|
+
rg -l foo List files with matches only`,options:["-e, --regexp PATTERN search for PATTERN (can be used multiple times)","-f, --file FILE read patterns from FILE, one per line","-i, --ignore-case case-insensitive search","-s, --case-sensitive case-sensitive search (overrides smart-case)","-S, --smart-case smart case (default: case-insensitive unless pattern has uppercase)","-F, --fixed-strings treat pattern as literal string","-w, --word-regexp match whole words only","-x, --line-regexp match whole lines only","-v, --invert-match select non-matching lines","-r, --replace TEXT replace matches with TEXT","-c, --count print count of matching lines per file"," --count-matches print count of individual matches per file","-l, --files-with-matches print only file names with matches"," --files-without-match print file names without matches"," --files list files that would be searched","-o, --only-matching print only matching parts","-m, --max-count NUM stop after NUM matches per file","-q, --quiet suppress output, exit 0 on match"," --stats print search statistics","-n, --line-number print line numbers (default: on)","-N, --no-line-number do not print line numbers","-I, --no-filename suppress the prefixing of file names","-0, --null use NUL as filename separator","-b, --byte-offset show byte offset of each match"," --column show column number of first match"," --vimgrep show results in vimgrep format"," --json show results in JSON Lines format","-A NUM print NUM lines after each match","-B NUM print NUM lines before each match","-C NUM print NUM lines before and after each match"," --context-separator SEP separator for context groups (default: --)","-U, --multiline match patterns across lines","-z, --search-zip search in compressed files (gzip only)","-g, --glob GLOB include files matching GLOB","-t, --type TYPE only search files of TYPE (e.g., js, py, ts)","-T, --type-not TYPE exclude files of TYPE","-L, --follow follow symbolic links","-u, --unrestricted reduce filtering (-u: no ignore, -uu: +hidden, -uuu: +binary)","-a, --text search binary files as text"," --hidden search hidden files and directories"," --no-ignore don't respect .gitignore/.ignore files","-d, --max-depth NUM maximum search depth"," --sort TYPE sort files (path, none)"," --heading show file path above matches"," --passthru print all lines (non-matches use - separator)"," --include-zero include files with 0 matches in count output"," --type-list list all available file types"," --help display this help and exit"]},Ue={name:"rg",async execute(e,t){let n=B(e);if(U(n))return G(Se);if(n.includes("--type-list"))return{stdout:v(J()),stderr:g(),exitCode:0};let s=Q(n);return s.success?ee({ctx:t,options:s.options,paths:s.paths,explicitLineNumbers:s.explicitLineNumbers}):s.error}},He={name:"rg",flags:[{flag:"-i",type:"boolean"},{flag:"-s",type:"boolean"},{flag:"-S",type:"boolean"},{flag:"-F",type:"boolean"},{flag:"-w",type:"boolean"},{flag:"-x",type:"boolean"},{flag:"-v",type:"boolean"},{flag:"-c",type:"boolean"},{flag:"-l",type:"boolean"},{flag:"-o",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-N",type:"boolean"},{flag:"--hidden",type:"boolean"},{flag:"--no-ignore",type:"boolean"},{flag:"-m",type:"value",valueHint:"number"},{flag:"-A",type:"value",valueHint:"number"},{flag:"-B",type:"value",valueHint:"number"},{flag:"-C",type:"value",valueHint:"number"},{flag:"-g",type:"value",valueHint:"pattern"},{flag:"-t",type:"value",valueHint:"string"},{flag:"-T",type:"value",valueHint:"string"}],needsArgs:!0};export{Ue as a,He as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as Ir,e as Mr,f as jr}from"./chunk-
|
|
1
|
+
import{d as Ir,e as Mr,f as jr}from"./chunk-M5Z2PSET.js";import{b as yr}from"./chunk-MOCB6GPI.js";import{b as Ar}from"./chunk-BXVXYDEI.js";import{b as $r}from"./chunk-YZPQ2W3A.js";import"./chunk-53I2XH4A.js";import"./chunk-SPETXYUM.js";import{b as Sr}from"./chunk-W4YQKIRV.js";import{b as hr}from"./chunk-BJQMZYH3.js";import{b as wr}from"./chunk-KRXVUD4L.js";import{b as xr}from"./chunk-2WN53CVO.js";import{b as vr}from"./chunk-ZEHOKNGQ.js";import{b as kr}from"./chunk-WMCZEPWH.js";import{b as qr}from"./chunk-PEPBD26Q.js";import{b as Cr}from"./chunk-C44B5265.js";import{b as br}from"./chunk-VKPVP3LD.js";import{b as nr}from"./chunk-IAFRFK2O.js";import{b as tr}from"./chunk-2AMXQD57.js";import{b as lr}from"./chunk-5PIFIDMP.js";import{b as ur}from"./chunk-OYIATQ5V.js";import{b as pr}from"./chunk-ZILSBZZ6.js";import{b as er}from"./chunk-5BF5Z7CI.js";import{b as dr}from"./chunk-YR4NQYT4.js";import{b as cr}from"./chunk-GNXHG75U.js";import"./chunk-K374E7Q4.js";import{b as rr}from"./chunk-5J57FRET.js";import{c as or,d as ar}from"./chunk-SMOO4IXI.js";import{b as sr}from"./chunk-6V537K6X.js";import{c as ir,d as gr}from"./chunk-INJTM5VR.js";import{b as mr}from"./chunk-PLMPLLOW.js";import"./chunk-3ANOKDIL.js";import"./chunk-7MKBHGLS.js";import{b as Fr}from"./chunk-5PV2QBWC.js";import{b as zr}from"./chunk-LBJIRX7Z.js";import{b as fr}from"./chunk-KM46TYGR.js";import{b as Q}from"./chunk-WVUVOYGQ.js";import{b as R}from"./chunk-72YPFG2Z.js";import{b as U}from"./chunk-QOFUETQV.js";import{b as V}from"./chunk-QPHABKP3.js";import{b as W}from"./chunk-ULK572PS.js";import{c as X,d as Y}from"./chunk-ATPJVO6F.js";import{c as Z,d as _}from"./chunk-D4LWWAJ2.js";import{b as N}from"./chunk-DNPCEBCN.js";import{b as E}from"./chunk-U5Z7TJRO.js";import{b as G}from"./chunk-2OIUNVMP.js";import{b as H}from"./chunk-OZ76IUC5.js";import{b as J}from"./chunk-TOK4OQFP.js";import{b as K}from"./chunk-PES2WOIM.js";import{b as L}from"./chunk-C325X4RB.js";import{b as O}from"./chunk-JJ5E4XJI.js";import{b as P}from"./chunk-SF2462OV.js";import{b as j}from"./chunk-XZZ3XIZH.js";import{b as y}from"./chunk-KBCEHRTU.js";import{b as A}from"./chunk-Z6DABRIE.js";import{b as $}from"./chunk-URMOT4S7.js";import{b as S}from"./chunk-RZ4GSKWY.js";import{b as T}from"./chunk-2V4QPJXQ.js";import{b as B}from"./chunk-SJ7F47VW.js";import{b as D}from"./chunk-GMCBEP44.js";import{b as h}from"./chunk-BTTTDUMD.js";import{b as w}from"./chunk-JMFP263D.js";import"./chunk-YJHMB6QD.js";import{b as x}from"./chunk-SYTEZ2Y4.js";import{b as v}from"./chunk-EHY6GWKP.js";import{d as k,e as q,f as C}from"./chunk-GET3OC3O.js";import"./chunk-IJXFPKNC.js";import{b}from"./chunk-NDPSDM3Q.js";import"./chunk-D3IE6KOV.js";import{b as I}from"./chunk-BQFHZOZH.js";import{b as M}from"./chunk-WTT2UCIA.js";import{b as n}from"./chunk-H5X25CTO.js";import{b as t}from"./chunk-F77E6PCM.js";import{b as l}from"./chunk-XZMBEDQL.js";import{b as u}from"./chunk-26VNLF3H.js";import{b as p}from"./chunk-PUUP54QP.js";import{b as e}from"./chunk-4PFDHMBC.js";import{b as d}from"./chunk-USGCTFXK.js";import{b as c}from"./chunk-K7ZRPFN6.js";import"./chunk-MIFIRXNI.js";import"./chunk-UBLR5ACC.js";import"./chunk-YNYSPYQ5.js";import{b as i}from"./chunk-3P5XOPF6.js";import{b as g}from"./chunk-Q5XZ24VX.js";import"./chunk-J7YL5K5B.js";import{b as m}from"./chunk-XXS34VJC.js";import"./chunk-BMKJMOWP.js";import"./chunk-JSLN56GJ.js";import{b as F}from"./chunk-26DNZXYZ.js";import"./chunk-NUFRM6SI.js";import{b as z}from"./chunk-RTGKIAVM.js";import{b as f}from"./chunk-EHRCEDXN.js";import"./chunk-44UOCSGV.js";import"./chunk-GQSJJXDG.js";import"./chunk-PQPG4QOY.js";import"./chunk-7USKQKOT.js";import"./chunk-DEQBZDPB.js";var Er=[i,g,m,F,z,f,n,t,l,u,p,e,d,c,h,w,x,v,k,q,C,b,I,M,j,y,A,$,S,T,B,D,E,G,H,J,K,L,O,P,Q,R,U,V,W,X,Y,Z,_,N,rr,or,ar,sr,ir,gr,mr,Fr,zr,fr,nr,tr,lr,ur,pr,er,dr,cr,hr,wr,xr,vr,kr,qr,Cr,br,Ir,Mr,jr,yr,Ar,$r,Sr];function Tr(){return Er}var Br=new Map;for(let r of Tr())Br.set(r.name,new Set(r.flags.map(o=>o.flag)));function Fa(r,o,Dr){let a=Br.get(o);if(!(!a||a.size===0))for(let s of Dr)a.has(s)&&r.hit(`cmd:flag:${o}:${s}`)}export{Fa as emitFlagCoverage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f}from"./chunk-M5Z2PSET.js";import"./chunk-GQSJJXDG.js";import"./chunk-PQPG4QOY.js";import"./chunk-7USKQKOT.js";import"./chunk-DEQBZDPB.js";export{d as flagsForFuzzing,b as gunzipCommand,e as gunzipFlagsForFuzzing,a as gzipCommand,c as zcatCommand,f as zcatFlagsForFuzzing};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-NDPSDM3Q.js";import"./chunk-D3IE6KOV.js";import"./chunk-YNYSPYQ5.js";import"./chunk-PQPG4QOY.js";import"./chunk-7USKQKOT.js";import"./chunk-DEQBZDPB.js";export{b as flagsForFuzzing,a as rgCommand};
|
|
@@ -210,7 +210,11 @@ var IS_BROWSER = typeof __BROWSER__ !== "undefined" && __BROWSER__;
|
|
|
210
210
|
var AsyncLocalStorageClass = null;
|
|
211
211
|
if (!IS_BROWSER) {
|
|
212
212
|
try {
|
|
213
|
-
const
|
|
213
|
+
const moduleSpec = "node:module";
|
|
214
|
+
const { createRequire: createRequire2 } = await import(
|
|
215
|
+
/* @vite-ignore */
|
|
216
|
+
moduleSpec
|
|
217
|
+
);
|
|
214
218
|
const require3 = createRequire2(import.meta.url);
|
|
215
219
|
const asyncHooks = require3("node:async_hooks");
|
|
216
220
|
AsyncLocalStorageClass = asyncHooks.AsyncLocalStorage;
|
package/dist/bundle/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as bs,C as Fr,D as Lr,E as ge,F as Ze,G as oe,H as xe,I as Mt,J as zr,K as V,L as Wr,M as Vr,N as Ie,O as Es,P as Ft,Q as tt,R as K,a as Cr,b as ms,c as xr,d as Tr,e as It,f as re,g as q,h as Ne,i as le,j as Oe,k as je,l as ys,m as Rt,n as Nr,o as gs,p as Or,q as ye,r as Le,s as Dr,t as Ir,u as ws,v as vs,w as De,x as Rr,y as Mr,z as Ce}from"./chunks/chunk-U6GF4IJH.js";import{a as _r}from"./chunks/chunk-MIFIRXNI.js";import{a as Be,b as _e}from"./chunks/chunk-UBLR5ACC.js";import{a as vt}from"./chunks/chunk-YNYSPYQ5.js";import{a as Ee,b as Se,c as me,d as Ae,e as Ar,f as X,g as qe,h as Nt,i as Ot,j as kr,k as de,l as Ve,m as Dt,n as ke}from"./chunks/chunk-JSLN56GJ.js";import"./chunks/chunk-NUFRM6SI.js";import{a as Fe}from"./chunks/chunk-44UOCSGV.js";import{a as et,b as w,c as te,d as he,e as C,f as U,g as Ge,h as O,i as Tt,j as ps,k as Pi,l as Ai,m as ki}from"./chunks/chunk-7USKQKOT.js";import{a as wt,g as F,h as B,i as j,j as $r,k as Je,l as N,m as g,n as Pr}from"./chunks/chunk-DEQBZDPB.js";var Xe=[{name:"echo",load:async()=>(await import("./chunks/echo-ZPFMTGPQ.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-KHANCARN.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-223LFYZL.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-JAO4QNWZ.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-O74MZREV.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-LGJXG7S3.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-7BNOFP74.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-NIZVTCU7.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-FD6I3O6B.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-66ALAQRO.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-N3OWFM3J.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-A3HCFC4L.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-BP6H5JPD.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-JL7TKP5U.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-CIKXFGO5.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-GJ536HFQ.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-PWYVRT3X.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-2CKLARLN.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-PML6WNNK.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-JJ3WRWYT.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-LA5EZ6UJ.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-BNPU2P3T.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-ZHYLWEFM.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-47FVEMHB.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-LQZW2NZP.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-Y7CG4TKC.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-TB6CSIUV.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-UN4ZHPP5.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-JSPXHHOM.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-6O4H3AW4.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-Y7EMR5BJ.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-LDC3OTY4.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-LG7URPXR.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-SVMZIFGF.js")).split},{name:"column",load:async()=>(await import("./chunks/column-OUJRIWLX.js")).column},{name:"join",load:async()=>(await import("./chunks/join-CFMKSF44.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-PJ6B6JJF.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-BYG3GTNV.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-NCIQLNXY.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-IVA4YYRE.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-4XRVONUX.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-H4GJHM4R.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-ZCKP6263.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-ZCKP6263.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-JHV3WNPA.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-JHV3WNPA.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-N2VRLHEO.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-CB3LOKW5.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-4UI5ZW75.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-4UI5ZW75.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-7SIFUXVD.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-CN3UUJ3N.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-CN3UUJ3N.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-BE76GAFF.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-DP3BVL7J.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-7ZYMEVUP.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-MHLQVLQZ.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-YQMDXMVK.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-SXUKTL7R.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-IENYNVU4.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-UCWX6HDA.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-WDFXVU43.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-ZK2D5HMO.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-BB464H3H.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-PPJUHZ6A.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-7WSECN2B.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-ZDG5GHHM.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-B2UCSYQN.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-EIT2IJGG.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-NXGTFB5T.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-W7U3GOEK.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-QZJHAL2R.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-NUINXLUX.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-OUHELY5D.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-OUHELY5D.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-OUHELY5D.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Xe.push({name:"tar",load:async()=>(await import("./chunks/tar-3KCFO6WZ.js")).tarCommand}),Xe.push({name:"yq",load:async()=>(await import("./chunks/yq-JFXSVU6G.js")).yqCommand}),Xe.push({name:"xan",load:async()=>(await import("./chunks/xan-JDD2TEQH.js")).xanCommand}),Xe.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-PZGLI6XB.js")).sqlite3Command}));var Lt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Lt.push({name:"python3",load:async()=>(await import("./chunks/python3-2KEMASKS.js")).python3Command}),Lt.push({name:"python",load:async()=>(await import("./chunks/python3-2KEMASKS.js")).pythonCommand}));var jr=[{name:"curl",load:async()=>(await import("./chunks/curl-3MHMRKXA.js")).curlCommand}],Br=new Map;function Ss(e){return{name:e.name,async execute(t,s){let r=Br.get(e.name);if(r||(r=await e.load(),Br.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-VMMEL7EH.js"),{decodeArgs:i}=await import("./chunks/bytes-JUNATFIO.js");n(s.coverage,e.name,i(t))}return r.execute(t,s)}}}function _i(){return Xe.map(e=>e.name)}function Ci(){return jr.map(e=>e.name)}function Hr(e){return(e?Xe.filter(s=>e.includes(s.name)):Xe).map(Ss)}function Ur(){return jr.map(Ss)}function xi(){return Lt.map(e=>e.name)}function Gr(){return Lt.map(Ss)}function qr(e){return"load"in e&&typeof e.load=="function"}function Ti(e,t){return{name:e,async execute(s,r){let n={...r,env:Pr(r.env)},i=await t(Je(s),n);return typeof i.stdout=="string"?{stdout:C(i.stdout),stderr:C(i.stderr),exitCode:i.exitCode}:i}}}function Zr(e){let t=null;return{name:e.name,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}var Ni=new TextEncoder;function Oi(e){return typeof e=="object"&&e!==null&&typeof e.getReader=="function"}function Di(e,t){if(e instanceof Uint8Array)return e;if(t==="base64")return Uint8Array.from(atob(e),s=>s.charCodeAt(0));if(t==="hex"){let s=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)s[r/2]=parseInt(e.slice(r,r+2),16);return s}if(t==="binary"||t==="latin1"){if(e.length<=65536)return Uint8Array.from(e,n=>n.charCodeAt(0));let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}return Ni.encode(e)}function Yr(e){if(e.length===0)return[];if(e.length<=et)return[e];let t=[];for(let s=0;s<e.length;s+=et)t.push(e.subarray(s,Math.min(s+et,e.length)));return t}function st(e,t){let s=Di(e,t);return{chunks:Yr(s),size:s.length}}async function ze(e,t){if(Oi(e)){let s=[],r=0;for await(let n of ps(e))if(n.length<=et)s.push(n),r+=n.length;else for(let i of Yr(n))s.push(i),r+=i.length;return{chunks:s,size:r}}return st(e,t)}function zt(e,t){if(t==="base64")return btoa(_r(Xr(e)));if(t==="hex"){let n="";for(let i of e)for(let o=0;o<i.length;o++)n+=i[o].toString(16).padStart(2,"0");return n}if(t==="binary"||t==="latin1"){if(typeof Buffer<"u")return Buffer.from(Xr(e)).toString(t);let n=65536,i="";for(let o of e)if(o.length<=n)i+=String.fromCharCode(...o);else for(let a=0;a<o.length;a+=n){let l=o.subarray(a,a+n);i+=String.fromCharCode(...l)}return i}let s=new TextDecoder,r="";for(let n of e)n.length>0&&(r+=s.decode(n,{stream:!0}));return r+=s.decode(),r}function Xr(e){let t=0;for(let n of e)t+=n.length;if(t===0)return new Uint8Array(0);if(e.length===1)return e[0];let s=new Uint8Array(t),r=0;for(let n of e)s.set(n,r),r+=n.length;return s}function $e(e){if(e!=null)return typeof e=="string"?e:e.encoding??void 0}function Ii(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&!(e instanceof ReadableStream)&&"content"in e}function ae(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}var We=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,r]of Object.entries(t))if(Ii(r)){if(r.content instanceof ReadableStream)throw new Error("InMemoryFs: streams not supported in InitialFiles; use writeFile() after construction");this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime})}else{if(r instanceof ReadableStream)throw new Error("InMemoryFs: streams not supported in InitialFiles; use writeFile() after construction");this.writeFileSync(s,r)}}normalizePath(t){if(!t||t==="/")return"/";let s=t.endsWith("/")&&t!=="/"?t.slice(0,-1):t;s.startsWith("/")||(s=`/${s}`);let r=s.split("/").filter(i=>i&&i!=="."),n=[];for(let i of r)i===".."?n.pop():n.push(i);return`/${n.join("/")}`||"/"}dirname(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.lastIndexOf("/");return r===0?"/":s.slice(0,r)}ensureParentDirs(t){let s=this.dirname(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,r,n){ae(t,"write");let i=this.normalizePath(t);this.ensureParentDirs(i);let o=$e(r),{chunks:a,size:l}=st(s,o);this.data.set(i,{type:"file",chunks:a,size:l,mode:n?.mode??420,mtime:n?.mtime??new Date})}async readFile(t){ae(t,"open");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return he(r.chunks)}async readFileText(t,s){ae(t,"open");let r=this.resolvePathWithSymlinks(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);let i=$e(s);return zt(n.chunks,i)}async writeFile(t,s,r){ae(t,"write");let n=this.normalizePath(t);this.ensureParentDirs(n);let i=$e(r),{chunks:o,size:a}=await ze(s,i);this.data.set(n,{type:"file",chunks:o,size:a,mode:420,mtime:new Date})}async appendFile(t,s,r){ae(t,"append");let n=this.normalizePath(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=$e(r),{chunks:a,size:l}=await ze(s,o);i?.type==="file"?this.data.set(n,{type:"file",chunks:[...i.chunks,...a],size:i.size+l,mode:i.mode,mtime:new Date}):(this.ensureParentDirs(n),this.data.set(n,{type:"file",chunks:a,size:l,mode:420,mtime:new Date}))}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){ae(t,"stat");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let n=0;return r.type==="file"&&(n=r.size),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){ae(t,"lstat");let s=this.resolveIntermediateSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};let n=0;return r.type==="file"&&(n=r.size),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveSymlink(t,s){if(s.startsWith("/"))return this.normalizePath(s);let r=this.dirname(t);return this.normalizePath(r==="/"?`/${s}`:`${r}/${s}`)}resolveIntermediateSymlinks(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.slice(1).split("/");if(r.length<=1)return s;let n="",i=new Set;for(let o=0;o<r.length-1;o++){let a=r[o];n=`${n}/${a}`;let l=this.data.get(n),u=0,c=40;for(;l&&l.type==="symlink"&&u<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=this.resolveSymlink(n,l.target),l=this.data.get(n),u++}if(u>=c)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.slice(1).split("/"),n="",i=new Set;for(let o of r){n=`${n}/${o}`;let a=this.data.get(n),l=0,u=40;for(;a&&a.type==="symlink"&&l<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=this.resolveSymlink(n,a.target),a=this.data.get(n),l++}if(l>=u)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return n}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){ae(t,"mkdir");let r=this.normalizePath(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let n=this.dirname(r);if(n!=="/"&&!this.data.has(n))if(s?.recursive)this.mkdirSync(n,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){ae(t,"scandir");let s=this.normalizePath(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let n=new Set;for(;r&&r.type==="symlink";){if(n.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(s),s=this.resolveSymlink(s,r.target),r=this.data.get(s)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,o=new Map;for(let[a,l]of this.data.entries())if(a!==s&&a.startsWith(i)){let u=a.slice(i.length),c=u.split("/")[0];c&&!u.includes("/",c.length)&&!o.has(c)&&o.set(c,{name:c,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(o.values()).sort((a,l)=>a.name<l.name?-1:a.name>l.name?1:0)}async rm(t,s){ae(t,"rm");let r=this.normalizePath(t),n=this.data.get(r);if(!n){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(n.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of i){let a=r==="/"?`/${o}`:`${r}/${o}`;await this.rm(a,s)}}}this.data.delete(r)}async cp(t,s,r){ae(t,"cp"),ae(s,"cp");let n=this.normalizePath(t),i=this.normalizePath(s),o=this.data.get(n);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{type:"file",chunks:[...o.chunks],size:o.size,mode:o.mode,mtime:o.mtime});else if(o.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(n);for(let l of a){let u=n==="/"?`/${l}`:`${n}/${l}`,c=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(u,c,r)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){if(s.startsWith("/"))return this.normalizePath(s);let r=t==="/"?`/${s}`:`${t}/${s}`;return this.normalizePath(r)}async chmod(t,s){ae(t,"chmod");let r=this.normalizePath(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);n.mode=s}async symlink(t,s){ae(s,"symlink");let r=this.normalizePath(s);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){ae(t,"link"),ae(s,"link");let r=this.normalizePath(t),n=this.normalizePath(s),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(n))throw new Error(`EEXIST: file already exists, link '${s}'`);this.ensureParentDirs(n),this.data.set(n,{type:"file",chunks:[...i.chunks],size:i.size,mode:i.mode,mtime:i.mtime})}async readlink(t){ae(t,"readlink");let s=this.normalizePath(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){ae(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,r){ae(t,"utimes");let n=this.normalizePath(t),i=this.resolvePathWithSymlinks(n),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);o.mtime=r}};function Ri(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Mi(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Fi(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Li(e){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Cr}
|
|
1
|
+
import{A as bs,C as Fr,D as Lr,E as ge,F as Ze,G as oe,H as xe,I as Mt,J as zr,K as V,L as Wr,M as Vr,N as Ie,O as Es,P as Ft,Q as tt,R as K,a as Cr,b as ms,c as xr,d as Tr,e as It,f as re,g as q,h as Ne,i as le,j as Oe,k as je,l as ys,m as Rt,n as Nr,o as gs,p as Or,q as ye,r as Le,s as Dr,t as Ir,u as ws,v as vs,w as De,x as Rr,y as Mr,z as Ce}from"./chunks/chunk-U6GF4IJH.js";import{a as _r}from"./chunks/chunk-MIFIRXNI.js";import{a as Be,b as _e}from"./chunks/chunk-UBLR5ACC.js";import{a as vt}from"./chunks/chunk-YNYSPYQ5.js";import{a as Ee,b as Se,c as me,d as Ae,e as Ar,f as X,g as qe,h as Nt,i as Ot,j as kr,k as de,l as Ve,m as Dt,n as ke}from"./chunks/chunk-JSLN56GJ.js";import"./chunks/chunk-NUFRM6SI.js";import{a as Fe}from"./chunks/chunk-44UOCSGV.js";import{a as et,b as w,c as te,d as he,e as C,f as U,g as Ge,h as O,i as Tt,j as ps,k as Pi,l as Ai,m as ki}from"./chunks/chunk-7USKQKOT.js";import{a as wt,g as F,h as B,i as j,j as $r,k as Je,l as N,m as g,n as Pr}from"./chunks/chunk-DEQBZDPB.js";var Xe=[{name:"echo",load:async()=>(await import("./chunks/echo-ZPFMTGPQ.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-KHANCARN.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-223LFYZL.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-JAO4QNWZ.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-O74MZREV.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-LGJXG7S3.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-7BNOFP74.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-NIZVTCU7.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-FD6I3O6B.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-66ALAQRO.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-N3OWFM3J.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-A3HCFC4L.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-BP6H5JPD.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-JL7TKP5U.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-CIKXFGO5.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-GJ536HFQ.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-PWYVRT3X.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-2CKLARLN.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-KLQ4A2OH.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-RA3U4BVJ.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-JJ3WRWYT.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-LA5EZ6UJ.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-BNPU2P3T.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-ZHYLWEFM.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-47FVEMHB.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-LQZW2NZP.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-Y7CG4TKC.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-TB6CSIUV.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-UN4ZHPP5.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-JSPXHHOM.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-6O4H3AW4.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-Y7EMR5BJ.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-LDC3OTY4.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-LG7URPXR.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-SVMZIFGF.js")).split},{name:"column",load:async()=>(await import("./chunks/column-OUJRIWLX.js")).column},{name:"join",load:async()=>(await import("./chunks/join-CFMKSF44.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-PJ6B6JJF.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-BYG3GTNV.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-NCIQLNXY.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-IVA4YYRE.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-4XRVONUX.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-H4GJHM4R.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-ZCKP6263.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-ZCKP6263.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-JHV3WNPA.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-JHV3WNPA.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-N2VRLHEO.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-CB3LOKW5.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-4UI5ZW75.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-4UI5ZW75.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-7SIFUXVD.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-CN3UUJ3N.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-CN3UUJ3N.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-BE76GAFF.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-DP3BVL7J.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-7ZYMEVUP.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-MHLQVLQZ.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-YQMDXMVK.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-SXUKTL7R.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-IENYNVU4.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-UCWX6HDA.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-WDFXVU43.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-ZK2D5HMO.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-BB464H3H.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-PPJUHZ6A.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-7WSECN2B.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-ZDG5GHHM.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-B2UCSYQN.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-EIT2IJGG.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-NXGTFB5T.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-W7U3GOEK.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-QZJHAL2R.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-NUINXLUX.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-BYGAV4XY.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-BYGAV4XY.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-BYGAV4XY.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Xe.push({name:"tar",load:async()=>(await import("./chunks/tar-3KCFO6WZ.js")).tarCommand}),Xe.push({name:"yq",load:async()=>(await import("./chunks/yq-JFXSVU6G.js")).yqCommand}),Xe.push({name:"xan",load:async()=>(await import("./chunks/xan-JDD2TEQH.js")).xanCommand}),Xe.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-PZGLI6XB.js")).sqlite3Command}));var Lt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Lt.push({name:"python3",load:async()=>(await import("./chunks/python3-2KEMASKS.js")).python3Command}),Lt.push({name:"python",load:async()=>(await import("./chunks/python3-2KEMASKS.js")).pythonCommand}));var jr=[{name:"curl",load:async()=>(await import("./chunks/curl-3MHMRKXA.js")).curlCommand}],Br=new Map;function Ss(e){return{name:e.name,async execute(t,s){let r=Br.get(e.name);if(r||(r=await e.load(),Br.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-FK7Z2EY4.js"),{decodeArgs:i}=await import("./chunks/bytes-JUNATFIO.js");n(s.coverage,e.name,i(t))}return r.execute(t,s)}}}function _i(){return Xe.map(e=>e.name)}function Ci(){return jr.map(e=>e.name)}function Hr(e){return(e?Xe.filter(s=>e.includes(s.name)):Xe).map(Ss)}function Ur(){return jr.map(Ss)}function xi(){return Lt.map(e=>e.name)}function Gr(){return Lt.map(Ss)}function qr(e){return"load"in e&&typeof e.load=="function"}function Ti(e,t){return{name:e,async execute(s,r){let n={...r,env:Pr(r.env)},i=await t(Je(s),n);return typeof i.stdout=="string"?{stdout:C(i.stdout),stderr:C(i.stderr),exitCode:i.exitCode}:i}}}function Zr(e){let t=null;return{name:e.name,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}var Ni=new TextEncoder;function Oi(e){return typeof e=="object"&&e!==null&&typeof e.getReader=="function"}function Di(e,t){if(e instanceof Uint8Array)return e;if(t==="base64")return Uint8Array.from(atob(e),s=>s.charCodeAt(0));if(t==="hex"){let s=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)s[r/2]=parseInt(e.slice(r,r+2),16);return s}if(t==="binary"||t==="latin1"){if(e.length<=65536)return Uint8Array.from(e,n=>n.charCodeAt(0));let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r}return Ni.encode(e)}function Yr(e){if(e.length===0)return[];if(e.length<=et)return[e];let t=[];for(let s=0;s<e.length;s+=et)t.push(e.subarray(s,Math.min(s+et,e.length)));return t}function st(e,t){let s=Di(e,t);return{chunks:Yr(s),size:s.length}}async function ze(e,t){if(Oi(e)){let s=[],r=0;for await(let n of ps(e))if(n.length<=et)s.push(n),r+=n.length;else for(let i of Yr(n))s.push(i),r+=i.length;return{chunks:s,size:r}}return st(e,t)}function zt(e,t){if(t==="base64")return btoa(_r(Xr(e)));if(t==="hex"){let n="";for(let i of e)for(let o=0;o<i.length;o++)n+=i[o].toString(16).padStart(2,"0");return n}if(t==="binary"||t==="latin1"){if(typeof Buffer<"u")return Buffer.from(Xr(e)).toString(t);let n=65536,i="";for(let o of e)if(o.length<=n)i+=String.fromCharCode(...o);else for(let a=0;a<o.length;a+=n){let l=o.subarray(a,a+n);i+=String.fromCharCode(...l)}return i}let s=new TextDecoder,r="";for(let n of e)n.length>0&&(r+=s.decode(n,{stream:!0}));return r+=s.decode(),r}function Xr(e){let t=0;for(let n of e)t+=n.length;if(t===0)return new Uint8Array(0);if(e.length===1)return e[0];let s=new Uint8Array(t),r=0;for(let n of e)s.set(n,r),r+=n.length;return s}function $e(e){if(e!=null)return typeof e=="string"?e:e.encoding??void 0}function Ii(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&!(e instanceof ReadableStream)&&"content"in e}function ae(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}var We=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,r]of Object.entries(t))if(Ii(r)){if(r.content instanceof ReadableStream)throw new Error("InMemoryFs: streams not supported in InitialFiles; use writeFile() after construction");this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime})}else{if(r instanceof ReadableStream)throw new Error("InMemoryFs: streams not supported in InitialFiles; use writeFile() after construction");this.writeFileSync(s,r)}}normalizePath(t){if(!t||t==="/")return"/";let s=t.endsWith("/")&&t!=="/"?t.slice(0,-1):t;s.startsWith("/")||(s=`/${s}`);let r=s.split("/").filter(i=>i&&i!=="."),n=[];for(let i of r)i===".."?n.pop():n.push(i);return`/${n.join("/")}`||"/"}dirname(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.lastIndexOf("/");return r===0?"/":s.slice(0,r)}ensureParentDirs(t){let s=this.dirname(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,r,n){ae(t,"write");let i=this.normalizePath(t);this.ensureParentDirs(i);let o=$e(r),{chunks:a,size:l}=st(s,o);this.data.set(i,{type:"file",chunks:a,size:l,mode:n?.mode??420,mtime:n?.mtime??new Date})}async readFile(t){ae(t,"open");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return he(r.chunks)}async readFileText(t,s){ae(t,"open");let r=this.resolvePathWithSymlinks(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);let i=$e(s);return zt(n.chunks,i)}async writeFile(t,s,r){ae(t,"write");let n=this.normalizePath(t);this.ensureParentDirs(n);let i=$e(r),{chunks:o,size:a}=await ze(s,i);this.data.set(n,{type:"file",chunks:o,size:a,mode:420,mtime:new Date})}async appendFile(t,s,r){ae(t,"append");let n=this.normalizePath(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=$e(r),{chunks:a,size:l}=await ze(s,o);i?.type==="file"?this.data.set(n,{type:"file",chunks:[...i.chunks,...a],size:i.size+l,mode:i.mode,mtime:new Date}):(this.ensureParentDirs(n),this.data.set(n,{type:"file",chunks:a,size:l,mode:420,mtime:new Date}))}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){ae(t,"stat");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let n=0;return r.type==="file"&&(n=r.size),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){ae(t,"lstat");let s=this.resolveIntermediateSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};let n=0;return r.type==="file"&&(n=r.size),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveSymlink(t,s){if(s.startsWith("/"))return this.normalizePath(s);let r=this.dirname(t);return this.normalizePath(r==="/"?`/${s}`:`${r}/${s}`)}resolveIntermediateSymlinks(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.slice(1).split("/");if(r.length<=1)return s;let n="",i=new Set;for(let o=0;o<r.length-1;o++){let a=r[o];n=`${n}/${a}`;let l=this.data.get(n),u=0,c=40;for(;l&&l.type==="symlink"&&u<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=this.resolveSymlink(n,l.target),l=this.data.get(n),u++}if(u>=c)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=this.normalizePath(t);if(s==="/")return"/";let r=s.slice(1).split("/"),n="",i=new Set;for(let o of r){n=`${n}/${o}`;let a=this.data.get(n),l=0,u=40;for(;a&&a.type==="symlink"&&l<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=this.resolveSymlink(n,a.target),a=this.data.get(n),l++}if(l>=u)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return n}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){ae(t,"mkdir");let r=this.normalizePath(t);if(this.data.has(r)){if(this.data.get(r)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let n=this.dirname(r);if(n!=="/"&&!this.data.has(n))if(s?.recursive)this.mkdirSync(n,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){ae(t,"scandir");let s=this.normalizePath(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let n=new Set;for(;r&&r.type==="symlink";){if(n.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(s),s=this.resolveSymlink(s,r.target),r=this.data.get(s)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,o=new Map;for(let[a,l]of this.data.entries())if(a!==s&&a.startsWith(i)){let u=a.slice(i.length),c=u.split("/")[0];c&&!u.includes("/",c.length)&&!o.has(c)&&o.set(c,{name:c,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(o.values()).sort((a,l)=>a.name<l.name?-1:a.name>l.name?1:0)}async rm(t,s){ae(t,"rm");let r=this.normalizePath(t),n=this.data.get(r);if(!n){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(n.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of i){let a=r==="/"?`/${o}`:`${r}/${o}`;await this.rm(a,s)}}}this.data.delete(r)}async cp(t,s,r){ae(t,"cp"),ae(s,"cp");let n=this.normalizePath(t),i=this.normalizePath(s),o=this.data.get(n);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")this.ensureParentDirs(i),this.data.set(i,{type:"file",chunks:[...o.chunks],size:o.size,mode:o.mode,mtime:o.mtime});else if(o.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(n);for(let l of a){let u=n==="/"?`/${l}`:`${n}/${l}`,c=i==="/"?`/${l}`:`${i}/${l}`;await this.cp(u,c,r)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){if(s.startsWith("/"))return this.normalizePath(s);let r=t==="/"?`/${s}`:`${t}/${s}`;return this.normalizePath(r)}async chmod(t,s){ae(t,"chmod");let r=this.normalizePath(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);n.mode=s}async symlink(t,s){ae(s,"symlink");let r=this.normalizePath(s);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){ae(t,"link"),ae(s,"link");let r=this.normalizePath(t),n=this.normalizePath(s),i=this.data.get(r);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(n))throw new Error(`EEXIST: file already exists, link '${s}'`);this.ensureParentDirs(n),this.data.set(n,{type:"file",chunks:[...i.chunks],size:i.size,mode:i.mode,mtime:i.mtime})}async readlink(t){ae(t,"readlink");let s=this.normalizePath(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){ae(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,r){ae(t,"utimes");let n=this.normalizePath(t),i=this.resolvePathWithSymlinks(n),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);o.mtime=r}};function Ri(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Mi(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Fi(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function Li(e){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Cr}
|
|
2
2
|
`),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
|
|
3
3
|
`),e.writeFileSync("/proc/self/status",xr()),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function Kr(e,t){Ri(e)&&(Mi(e,t),Fi(e),Li(e))}var zi=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],Wi=["braceexpand","hashall","interactive-comments"];function $s(e){let t=[],s=[...Wi.map(r=>({name:r,enabled:!0})),...zi.map(r=>({name:r,enabled:e[r]}))].sort((r,n)=>r.name.localeCompare(n.name));for(let r of s)r.enabled&&t.push(r.name);return t.join(":")}function rt(e){g(e.state.env,"SHELLOPTS",$s(e.state.options))}var Vi=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Ps(e){let t=[];for(let s of Vi)e[s]&&t.push(s);return t.join(":")}function As(e){g(e.state.env,"BASHOPTS",Ps(e.state.shoptOptions))}var Bi="BASH_ALIAS_";function Qr(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function Jr(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function en(e,t){let s=e.env.get(`${Bi}${t}`);return s!==void 0?j(s):void 0}function ks(e,t,s){if(!t.name||!Qr(t.name))return t;let r=Jr(t.name);if(!r)return t;let n=en(e,r);if(!n||s.has(r))return t;try{s.add(r);let i=new q,o=n,a=n.endsWith(" ");if(!a)for(let f of t.args){let h=sn(f);o+=` ${h}`}let l;try{l=i.parse(o)}catch(f){if(f instanceof It)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return tn(t,n);let u=l.statements[0].pipelines[0].commands[0];if(u.type!=="SimpleCommand")return tn(t,n);let c={...u,assignments:[...t.assignments,...u.assignments],redirections:[...u.redirections,...t.redirections],line:t.line};if(a&&t.args.length>0&&(c={...c,args:[...c.args,...t.args]},c.args.length>0)){let f=c.args[0];if(Qr(f)){let h=Jr(f);if(h&&en(e,h)){let d={type:"SimpleCommand",name:f,args:c.args.slice(1),assignments:[],redirections:[]},m=ks(e,d,s);m!==d&&(c={...c,name:m.name,args:[...m.args]})}}}return c}catch(i){throw s.delete(r),i}}function tn(e,t){let s=t;for(let o of e.args){let a=sn(o);s+=` ${a}`}let r=new q,n=r.parseWordFromString("eval",!1,!1),i=r.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:n,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function sn(e){let t="";for(let s of e.parts)switch(s.type){case"Literal":t+=s.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${s.value}'`;break;case"DoubleQuoted":t+=`"${s.parts.map(r=>r.type==="Literal"?r.value:`$${r.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${s.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${s.expression}))`;break;case"Glob":t+=s.pattern;break;default:break}return t}async function rn(e,t){let s=t.parts.map(c=>c.type==="Literal"?c.value:"\0").join(""),r=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!r||!s.endsWith(")"))return null;let n=r[1],i=[],o=!1,a="",l=!1;for(let c of t.parts)if(c.type==="Literal"){let f=c.value;if(!o){let h=f.indexOf("=(");h!==-1&&(o=!0,f=f.slice(h+2))}if(o){f.endsWith(")")&&(f=f.slice(0,-1));let h=f.split(/(\s+)/);for(let d of h)/^\s+$/.test(d)?(a||l)&&(i.push(a),a="",l=!1):d&&(a+=d)}}else if(o)if(c.type==="BraceExpansion")if(/^\[.+\]=/.test(a))a+=Rt({type:"Word",parts:[c]});else{(a||l)&&(i.push(a),a="",l=!1);let h=await Ie(e,{type:"Word",parts:[c]});i.push(...h.values)}else{(c.type==="SingleQuoted"||c.type==="DoubleQuoted"||c.type==="Escaped")&&(l=!0);let f=await V(e,{type:"Word",parts:[c]});a+=f}(a||l)&&i.push(a);let u=i.map(c=>/^\[.+\]=/.test(c)?c:c===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(c)&&!c.startsWith("'")&&!c.startsWith('"')?`'${c.replace(/'/g,"'\\''")}'`:c);return`${n}=(${u.join(" ")})`}async function nn(e,t){let s=-1,r=-1,n=!1;for(let p=0;p<t.parts.length;p++){let v=t.parts[p];if(v.type==="Literal"){let y=v.value.indexOf("+=");if(y!==-1){let A=v.value.slice(0,y);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(A)){s=p,r=y,n=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(A)){s=p,r=y,n=!0;break}}let S=v.value.indexOf("=");if(S!==-1&&(S===0||v.value[S-1]!=="+")){let A=v.value.slice(0,S);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(A)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(A)){s=p,r=S;break}}}}if(s===-1)return null;let i=t.parts.slice(0,s),o=t.parts[s];if(o.type!=="Literal")return null;let a=n?2:1,l=o.value.slice(0,r),u=o.value.slice(r+a),c=t.parts.slice(s+1),f="";for(let p of i)f+=await V(e,{type:"Word",parts:[p]});f+=l;let h={type:"Word",parts:u!==""?[{type:"Literal",value:u},...c]:c},d=h.parts.length>0?await V(e,h):"";return`${f}${n?"+=":"="}${d}`}var ji=["tar","yq","xan","sqlite3","python3","python"];function on(e){return ji.includes(e)}function H(){return{stdout:w(),stderr:w(),exitCode:0}}var nt={get stdout(){return w()},get stderr(){return w()},exitCode:0};function Pe(e=w()){return{stdout:e,stderr:w(),exitCode:0}}function Z(e){return{stdout:C(e),stderr:w(),exitCode:0}}function k(e,t=1){return{stdout:w(),stderr:C(e),exitCode:t}}function R(e,t,s){return{stdout:e instanceof Uint8Array?te(e):e,stderr:t instanceof Uint8Array?te(t):t,exitCode:s}}function se(e){return{stdout:w(),stderr:w(),exitCode:e?0:1}}function Te(e,t,s,r){let n=s===void 0?w():s instanceof Uint8Array?te(s):s,i=r===void 0?void 0:r instanceof Uint8Array?te(r):r;throw new de(e,t,n,i)}function _s(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Ve;return H()}if(t.length>1)throw new X(1,w(),C(`bash: break: too many arguments
|
|
4
4
|
`));let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new X(128,w(),C(`bash: break: ${t[0]}: numeric argument required
|
|
@@ -669,7 +669,7 @@ sys 0m0.000s
|
|
|
669
669
|
`,127)}if(d==="exec"&&(m.length===0||j(m[0])==="--")){for(let $ of t.redirections){if($.target.type==="HereDoc"||$.fdVariable)continue;let P=await V(this.ctx,$.target),T=$.fd??($.operator==="<"||$.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),$.operator){case">":case">|":{let x=this.ctx.fs.resolvePath(this.ctx.state.cwd,P);await this.ctx.fs.writeFile(x,"","utf8"),this.ctx.state.fileDescriptors.set(T,`__file__:${x}`);break}case">>":{let x=this.ctx.fs.resolvePath(this.ctx.state.cwd,P);this.ctx.state.fileDescriptors.set(T,`__file_append__:${x}`);break}case"<":{let x=this.ctx.fs.resolvePath(this.ctx.state.cwd,P);try{let z=await this.ctx.fs.readFileText(x);this.ctx.state.fileDescriptors.set(T,z)}catch{return k(`bash: ${P}: No such file or directory
|
|
670
670
|
`)}break}case"<>":{let x=this.ctx.fs.resolvePath(this.ctx.state.cwd,P);try{let z=await this.ctx.fs.readFileText(x);this.ctx.state.fileDescriptors.set(T,`__rw__:${x.length}:${x}:0:${z}`)}catch{await this.ctx.fs.writeFile(x,"","utf8"),this.ctx.state.fileDescriptors.set(T,`__rw__:${x.length}:${x}:0:`)}break}case">&":{if(P==="-")this.ctx.state.fileDescriptors.delete(T);else if(P.endsWith("-")){let x=P.slice(0,-1),z=Number.parseInt(x,10);if(!Number.isNaN(z)){let I=this.ctx.state.fileDescriptors.get(z);I!==void 0?this.ctx.state.fileDescriptors.set(T,I):this.ctx.state.fileDescriptors.set(T,`__dupout__:${z}`),this.ctx.state.fileDescriptors.delete(z)}}else{let x=Number.parseInt(P,10);Number.isNaN(x)||this.ctx.state.fileDescriptors.set(T,`__dupout__:${x}`)}break}case"<&":{if(P==="-")this.ctx.state.fileDescriptors.delete(T);else if(P.endsWith("-")){let x=P.slice(0,-1),z=Number.parseInt(x,10);if(!Number.isNaN(z)){let I=this.ctx.state.fileDescriptors.get(z);I!==void 0?this.ctx.state.fileDescriptors.set(T,I):this.ctx.state.fileDescriptors.set(T,`__dupin__:${z}`),this.ctx.state.fileDescriptors.delete(z)}}else{let x=Number.parseInt(P,10);Number.isNaN(x)||this.ctx.state.fileDescriptors.set(T,`__dupin__:${x}`)}break}}}for(let[$,P]of n)P===void 0?this.ctx.state.env.delete($):this.ctx.state.env.set($,P);if(this.ctx.state.tempExportedVars)for(let $ of n.keys())this.ctx.state.tempExportedVars.delete($);return H()}let y=await li(this.ctx,d,m.map($=>j($)));n.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(n)));let S,A=null;try{S=await this.runCommand(d,m,p,f??te(h),!1,!1,u)}catch($){if($ instanceof Ee||$ instanceof Se)A=$,S=H();else throw $}let b=i+y;if(b&&(S={...S,stderr:O(C(b),S.stderr)}),S=await Q(this.ctx,S,t.redirections),A)throw A;if(m.length>0){let $=j(m[m.length-1]);if((d==="declare"||d==="local"||d==="typeset")&&/^[a-zA-Z_][a-zA-Z0-9_]*=\(/.test($)){let P=$.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);P&&($=P[1])}this.ctx.state.lastArg=B($)}else this.ctx.state.lastArg=B(d);let _=vn(d)&&d!=="unset"&&d!=="eval";if(!this.ctx.state.options.posix||!_)for(let[$,P]of n)this.ctx.state.fullyUnsetLocals?.has($)||(P===void 0?this.ctx.state.env.delete($):this.ctx.state.env.set($,P));if(this.ctx.state.tempExportedVars)for(let $ of n.keys())this.ctx.state.tempExportedVars.delete($);return n.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(S={...S,stderr:O(C(this.ctx.state.expansionStderr),S.stderr)},this.ctx.state.expansionStderr=""),S}async runCommand(t,s,r,n,i=!1,o=!1,a=-1){let l={ctx:this.ctx,runCommand:(c,f,h,d,m,p,v)=>this.runCommand(c,f,h,d,m,p,v),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(c,f,h)=>this.executeUserScript(c,f,h??w())},u=await Kn(l,t,s,r,n,i,o,a);return u!==null?u:Qn(l,t,s,n,o)}aliasExpansionStack=new Set;expandAlias(t){return ks(this.ctx.state,t,this.aliasExpansionStack)}async findCommandInPath(t){return as(this.ctx,t)}async executeSubshell(t,s=w()){return hi(this.ctx,t,s,r=>this.executeStatement(r))}async executeGroup(t,s=w()){return pi(this.ctx,t,s,r=>this.executeStatement(r))}async executeArithmeticCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Me(this.ctx,t.redirections);if(s)return s;try{let r=await K(this.ctx,t.expression.expression),n=se(r!==0);return this.ctx.state.expansionStderr&&(n={...n,stderr:O(C(this.ctx.state.expansionStderr),n.stderr)},this.ctx.state.expansionStderr=""),Q(this.ctx,n,t.redirections)}catch(r){let n=k(`bash: arithmetic expression: ${r.message}
|
|
671
671
|
`);return Q(this.ctx,n,t.redirections)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Me(this.ctx,t.redirections);if(s)return s;try{let r=await He(this.ctx,t.expression),n=se(r);return this.ctx.state.expansionStderr&&(n={...n,stderr:O(C(this.ctx.state.expansionStderr),n.stderr)},this.ctx.state.expansionStderr=""),Q(this.ctx,n,t.redirections)}catch(r){let n=r instanceof qe?1:2,i=k(`bash: conditional expression: ${r.message}
|
|
672
|
-
`,n);return Q(this.ctx,i,t.redirections)}}};var we={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3,maxPythonTimeoutMs:3e4,maxGlobOperations:1e5,maxStringLength:10485760,maxArrayElements:1e5,maxHeredocSize:10485760,maxSubstitutionDepth:50};function yi(e){return e?{maxCallDepth:e.maxCallDepth??we.maxCallDepth,maxCommandCount:e.maxCommandCount??we.maxCommandCount,maxLoopIterations:e.maxLoopIterations??we.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??we.maxAwkIterations,maxSedIterations:e.maxSedIterations??we.maxSedIterations,maxJqIterations:e.maxJqIterations??we.maxJqIterations,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??we.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??we.maxPythonTimeoutMs,maxGlobOperations:e.maxGlobOperations??we.maxGlobOperations,maxStringLength:e.maxStringLength??we.maxStringLength,maxArrayElements:e.maxArrayElements??we.maxArrayElements,maxHeredocSize:e.maxHeredocSize??we.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??we.maxSubstitutionDepth}:{...we}}function gi(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function ta(e){let t=gi(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function sa(e,t){let s=gi(e);if(!s)return!1;let r=ta(t);return!r||s.origin!==r.origin?!1:r.pathPrefix==="/"||r.pathPrefix===""?!0:s.pathname.startsWith(r.pathPrefix)}function wr(e,t){return!t||t.length===0?!1:t.some(s=>sa(e,s))}var ut=class extends Error{constructor(t){super(`Network access denied: URL not in allow-list: ${t}`),this.name="NetworkAccessDeniedError"}},ft=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},dt=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},cs=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},_t=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};var ra=20,na=3e4,ia=10485760,oa=["GET","HEAD"],aa=new Set(["GET","HEAD","OPTIONS"]),la=new Set([301,302,303,307,308]);function vr(e){let t=e.maxRedirects??ra,s=e.timeoutMs??na,r=e.maxResponseSize??ia,n=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??oa;function i(l){if(!e.dangerouslyAllowFullInternetAccess&&!wr(l,e.allowedUrlPrefixes??[]))throw new ut(l)}function o(l){if(e.dangerouslyAllowFullInternetAccess)return;let u=l.toUpperCase();if(!n.includes(u))throw new cs(u,n)}async function a(l,u={}){let c=u.method?.toUpperCase()??"GET";i(l),o(c);let f=l,h=0,d=u.followRedirects??!0,m=u.timeoutMs!==void 0?Math.min(u.timeoutMs,s):s;for(;;){let p=new AbortController,v=setTimeout(()=>p.abort(),m);try{let y={method:c,headers:u.headers,signal:p.signal,redirect:"manual"};u.body&&!aa.has(c)&&(y.body=u.body);let S=await fetch(f,y);if(la.has(S.status)&&d){let A=S.headers.get("location");if(!A)return await wi(S,f,r);let b=new URL(A,f).href;if(!e.dangerouslyAllowFullInternetAccess&&!wr(b,e.allowedUrlPrefixes??[]))throw new dt(b);if(h++,h>t)throw new ft(t);f=b;continue}return await wi(S,f,r)}finally{clearTimeout(v)}}}return a}async function wi(e,t,s){let r=Object.create(null);if(e.headers.forEach((i,o)=>{r[o.toLowerCase()]=i}),s>0){let i=e.headers.get("content-length");if(i){let o=parseInt(i,10);if(!Number.isNaN(o)&&o>s)throw new _t(s)}}let n;if(s>0&&e.body){let i=e.body.getReader(),o=new TextDecoder,a=[],l=0;for(;;){let{done:u,value:c}=await i.read();if(u)break;if(l+=c.byteLength,l>s)throw i.cancel(),new _t(s);a.push(o.decode(c,{stream:!0}))}a.push(o.decode()),n=a.join("")}else n=await e.text();return{status:e.status,statusText:e.statusText,headers:r,body:n,url:t}}function br(){let e=[{prop:"Function",target:globalThis,violationType:"function_constructor",strategy:"throw",reason:"Function constructor allows arbitrary code execution"},{prop:"eval",target:globalThis,violationType:"eval",strategy:"throw",reason:"eval() allows arbitrary code execution"},{prop:"setTimeout",target:globalThis,violationType:"setTimeout",strategy:"throw",reason:"setTimeout with string argument allows code execution"},{prop:"setInterval",target:globalThis,violationType:"setInterval",strategy:"throw",reason:"setInterval with string argument allows code execution"},{prop:"setImmediate",target:globalThis,violationType:"setImmediate",strategy:"throw",reason:"setImmediate could be used to escape sandbox context"},{prop:"env",target:process,violationType:"process_env",strategy:"throw",reason:"process.env could leak sensitive environment variables"},{prop:"binding",target:process,violationType:"process_binding",strategy:"throw",reason:"process.binding provides access to native Node.js modules"},{prop:"_linkedBinding",target:process,violationType:"process_binding",strategy:"throw",reason:"process._linkedBinding provides access to native Node.js modules"},{prop:"dlopen",target:process,violationType:"process_dlopen",strategy:"throw",reason:"process.dlopen allows loading native addons"},{prop:"WeakRef",target:globalThis,violationType:"weak_ref",strategy:"throw",reason:"WeakRef could be used to leak references outside sandbox"},{prop:"FinalizationRegistry",target:globalThis,violationType:"finalization_registry",strategy:"throw",reason:"FinalizationRegistry could be used to leak references outside sandbox"},{prop:"Reflect",target:globalThis,violationType:"reflect",strategy:"freeze",reason:"Reflect provides introspection capabilities"},{prop:"Proxy",target:globalThis,violationType:"proxy",strategy:"throw",reason:"Proxy allows intercepting and modifying object behavior"},{prop:"WebAssembly",target:globalThis,violationType:"webassembly",strategy:"throw",reason:"WebAssembly allows executing arbitrary compiled code"},{prop:"SharedArrayBuffer",target:globalThis,violationType:"shared_array_buffer",strategy:"throw",reason:"SharedArrayBuffer could enable side-channel communication or timing attacks"},{prop:"Atomics",target:globalThis,violationType:"atomics",strategy:"throw",reason:"Atomics could enable side-channel communication or timing attacks"}];try{let t=Object.getPrototypeOf(async()=>{}).constructor;t&&t!==Function&&e.push({prop:"constructor",target:Object.getPrototypeOf(async()=>{}),violationType:"async_function_constructor",strategy:"throw",reason:"AsyncFunction constructor allows arbitrary async code execution"})}catch{}try{let t=Object.getPrototypeOf(function*(){}).constructor;t&&t!==Function&&e.push({prop:"constructor",target:Object.getPrototypeOf(function*(){}),violationType:"generator_function_constructor",strategy:"throw",reason:"GeneratorFunction constructor allows arbitrary generator code execution"})}catch{}try{let t=Object.getPrototypeOf(async function*(){}).constructor;t&&t!==Function&&t!==Object.getPrototypeOf(async()=>{}).constructor&&e.push({prop:"constructor",target:Object.getPrototypeOf(async function*(){}),violationType:"async_generator_function_constructor",strategy:"throw",reason:"AsyncGeneratorFunction constructor allows arbitrary async generator code execution"})}catch{}return e.filter(t=>{try{return t.target[t.prop]!==void 0}catch{return!1}})}var Ct=typeof __BROWSER__<"u"&&__BROWSER__;function vi(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Sr=null;if(!Ct)try{let{createRequire:
|
|
672
|
+
`,n);return Q(this.ctx,i,t.redirections)}}};var we={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3,maxPythonTimeoutMs:3e4,maxGlobOperations:1e5,maxStringLength:10485760,maxArrayElements:1e5,maxHeredocSize:10485760,maxSubstitutionDepth:50};function yi(e){return e?{maxCallDepth:e.maxCallDepth??we.maxCallDepth,maxCommandCount:e.maxCommandCount??we.maxCommandCount,maxLoopIterations:e.maxLoopIterations??we.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??we.maxAwkIterations,maxSedIterations:e.maxSedIterations??we.maxSedIterations,maxJqIterations:e.maxJqIterations??we.maxJqIterations,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??we.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??we.maxPythonTimeoutMs,maxGlobOperations:e.maxGlobOperations??we.maxGlobOperations,maxStringLength:e.maxStringLength??we.maxStringLength,maxArrayElements:e.maxArrayElements??we.maxArrayElements,maxHeredocSize:e.maxHeredocSize??we.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??we.maxSubstitutionDepth}:{...we}}function gi(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function ta(e){let t=gi(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function sa(e,t){let s=gi(e);if(!s)return!1;let r=ta(t);return!r||s.origin!==r.origin?!1:r.pathPrefix==="/"||r.pathPrefix===""?!0:s.pathname.startsWith(r.pathPrefix)}function wr(e,t){return!t||t.length===0?!1:t.some(s=>sa(e,s))}var ut=class extends Error{constructor(t){super(`Network access denied: URL not in allow-list: ${t}`),this.name="NetworkAccessDeniedError"}},ft=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},dt=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},cs=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},_t=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};var ra=20,na=3e4,ia=10485760,oa=["GET","HEAD"],aa=new Set(["GET","HEAD","OPTIONS"]),la=new Set([301,302,303,307,308]);function vr(e){let t=e.maxRedirects??ra,s=e.timeoutMs??na,r=e.maxResponseSize??ia,n=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??oa;function i(l){if(!e.dangerouslyAllowFullInternetAccess&&!wr(l,e.allowedUrlPrefixes??[]))throw new ut(l)}function o(l){if(e.dangerouslyAllowFullInternetAccess)return;let u=l.toUpperCase();if(!n.includes(u))throw new cs(u,n)}async function a(l,u={}){let c=u.method?.toUpperCase()??"GET";i(l),o(c);let f=l,h=0,d=u.followRedirects??!0,m=u.timeoutMs!==void 0?Math.min(u.timeoutMs,s):s;for(;;){let p=new AbortController,v=setTimeout(()=>p.abort(),m);try{let y={method:c,headers:u.headers,signal:p.signal,redirect:"manual"};u.body&&!aa.has(c)&&(y.body=u.body);let S=await fetch(f,y);if(la.has(S.status)&&d){let A=S.headers.get("location");if(!A)return await wi(S,f,r);let b=new URL(A,f).href;if(!e.dangerouslyAllowFullInternetAccess&&!wr(b,e.allowedUrlPrefixes??[]))throw new dt(b);if(h++,h>t)throw new ft(t);f=b;continue}return await wi(S,f,r)}finally{clearTimeout(v)}}}return a}async function wi(e,t,s){let r=Object.create(null);if(e.headers.forEach((i,o)=>{r[o.toLowerCase()]=i}),s>0){let i=e.headers.get("content-length");if(i){let o=parseInt(i,10);if(!Number.isNaN(o)&&o>s)throw new _t(s)}}let n;if(s>0&&e.body){let i=e.body.getReader(),o=new TextDecoder,a=[],l=0;for(;;){let{done:u,value:c}=await i.read();if(u)break;if(l+=c.byteLength,l>s)throw i.cancel(),new _t(s);a.push(o.decode(c,{stream:!0}))}a.push(o.decode()),n=a.join("")}else n=await e.text();return{status:e.status,statusText:e.statusText,headers:r,body:n,url:t}}function br(){let e=[{prop:"Function",target:globalThis,violationType:"function_constructor",strategy:"throw",reason:"Function constructor allows arbitrary code execution"},{prop:"eval",target:globalThis,violationType:"eval",strategy:"throw",reason:"eval() allows arbitrary code execution"},{prop:"setTimeout",target:globalThis,violationType:"setTimeout",strategy:"throw",reason:"setTimeout with string argument allows code execution"},{prop:"setInterval",target:globalThis,violationType:"setInterval",strategy:"throw",reason:"setInterval with string argument allows code execution"},{prop:"setImmediate",target:globalThis,violationType:"setImmediate",strategy:"throw",reason:"setImmediate could be used to escape sandbox context"},{prop:"env",target:process,violationType:"process_env",strategy:"throw",reason:"process.env could leak sensitive environment variables"},{prop:"binding",target:process,violationType:"process_binding",strategy:"throw",reason:"process.binding provides access to native Node.js modules"},{prop:"_linkedBinding",target:process,violationType:"process_binding",strategy:"throw",reason:"process._linkedBinding provides access to native Node.js modules"},{prop:"dlopen",target:process,violationType:"process_dlopen",strategy:"throw",reason:"process.dlopen allows loading native addons"},{prop:"WeakRef",target:globalThis,violationType:"weak_ref",strategy:"throw",reason:"WeakRef could be used to leak references outside sandbox"},{prop:"FinalizationRegistry",target:globalThis,violationType:"finalization_registry",strategy:"throw",reason:"FinalizationRegistry could be used to leak references outside sandbox"},{prop:"Reflect",target:globalThis,violationType:"reflect",strategy:"freeze",reason:"Reflect provides introspection capabilities"},{prop:"Proxy",target:globalThis,violationType:"proxy",strategy:"throw",reason:"Proxy allows intercepting and modifying object behavior"},{prop:"WebAssembly",target:globalThis,violationType:"webassembly",strategy:"throw",reason:"WebAssembly allows executing arbitrary compiled code"},{prop:"SharedArrayBuffer",target:globalThis,violationType:"shared_array_buffer",strategy:"throw",reason:"SharedArrayBuffer could enable side-channel communication or timing attacks"},{prop:"Atomics",target:globalThis,violationType:"atomics",strategy:"throw",reason:"Atomics could enable side-channel communication or timing attacks"}];try{let t=Object.getPrototypeOf(async()=>{}).constructor;t&&t!==Function&&e.push({prop:"constructor",target:Object.getPrototypeOf(async()=>{}),violationType:"async_function_constructor",strategy:"throw",reason:"AsyncFunction constructor allows arbitrary async code execution"})}catch{}try{let t=Object.getPrototypeOf(function*(){}).constructor;t&&t!==Function&&e.push({prop:"constructor",target:Object.getPrototypeOf(function*(){}),violationType:"generator_function_constructor",strategy:"throw",reason:"GeneratorFunction constructor allows arbitrary generator code execution"})}catch{}try{let t=Object.getPrototypeOf(async function*(){}).constructor;t&&t!==Function&&t!==Object.getPrototypeOf(async()=>{}).constructor&&e.push({prop:"constructor",target:Object.getPrototypeOf(async function*(){}),violationType:"async_generator_function_constructor",strategy:"throw",reason:"AsyncGeneratorFunction constructor allows arbitrary async generator code execution"})}catch{}return e.filter(t=>{try{return t.target[t.prop]!==void 0}catch{return!1}})}var Ct=typeof __BROWSER__<"u"&&__BROWSER__;function vi(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Sr=null;if(!Ct)try{let e="node:module",{createRequire:t}=await import(e);Sr=t(import.meta.url)("node:async_hooks").AsyncLocalStorage}catch(e){console.debug("[DefenseInDepthBox] AsyncLocalStorage not available, defense-in-depth disabled:",e instanceof Error?e.message:e)}var ca=`
|
|
673
673
|
|
|
674
674
|
This is a defense-in-depth measure and indicates a bug in just-bash. Please report this at security@vercel.com`,ce=class extends Error{violation;constructor(t,s){super(t+ca),this.violation=s,this.name="SecurityViolationError"}},ve=!Ct&&Sr?new Sr:null,ua=1e3,Er={enabled:!0,auditMode:!1};function fa(e){return e===void 0?{...Er,enabled:!1}:typeof e=="boolean"?{...Er,enabled:e}:{...Er,...e}}var ht=class e{static instance=null;config;refCount=0;originalDescriptors=[];violations=[];activationTime=0;totalActiveTimeMs=0;constructor(t){this.config=t}static getInstance(t){return e.instance||(e.instance=new e(fa(t))),e.instance}static resetInstance(){e.instance&&(e.instance.forceDeactivate(),e.instance=null)}static isInSandboxedContext(){return ve?ve?.getStore()?.sandboxActive===!0:!1}static getCurrentExecutionId(){if(ve)return ve?.getStore()?.executionId}updateConfig(t){this.config={...this.config,...t}}activate(){if(Ct||!this.config.enabled){let s=vi();return{run:r=>r(),deactivate:()=>{},executionId:s}}this.refCount++,this.refCount===1&&(this.applyPatches(),this.activationTime=Date.now());let t=vi();return{run:s=>ve.run({sandboxActive:!0,executionId:t},s),deactivate:()=>{this.refCount--,this.refCount===0&&(this.restorePatches(),this.totalActiveTimeMs+=Date.now()-this.activationTime),this.refCount<0&&(this.refCount=0)},executionId:t}}forceDeactivate(){this.refCount>0&&(this.restorePatches(),this.totalActiveTimeMs+=Date.now()-this.activationTime),this.refCount=0}isActive(){return this.refCount>0}getStats(){return{violationsBlocked:this.violations.length,violations:[...this.violations],activeTimeMs:this.totalActiveTimeMs+(this.refCount>0?Date.now()-this.activationTime:0),refCount:this.refCount}}clearViolations(){this.violations=[]}getPathForTarget(t,s){return t===globalThis?`globalThis.${s}`:t===process?`process.${s}`:t===Error?`Error.${s}`:t===Function.prototype?`Function.prototype.${s}`:t===Object.prototype?`Object.prototype.${s}`:`<object>.${s}`}shouldBlock(){return Ct||this.config.auditMode||!ve?!1:ve?.getStore()?.sandboxActive===!0}recordViolation(t,s,r){let n={timestamp:Date.now(),type:t,message:r,path:s,stack:new Error().stack,executionId:ve?.getStore()?.executionId};if(this.violations.length<ua&&this.violations.push(n),this.config.onViolation)try{this.config.onViolation(n)}catch(i){console.debug("[DefenseInDepthBox] onViolation callback threw:",i instanceof Error?i.message:i)}return n}createBlockingProxy(t,s,r){let n=this;return new Proxy(t,{apply(i,o,a){if(n.shouldBlock()){let l=`${s} is blocked during script execution`,u=n.recordViolation(r,s,l);throw new ce(l,u)}return n.config.auditMode&&ve?.getStore()?.sandboxActive===!0&&n.recordViolation(r,s,`${s} called (audit mode)`),Reflect.apply(i,o,a)},construct(i,o,a){if(n.shouldBlock()){let l=`${s} constructor is blocked during script execution`,u=n.recordViolation(r,s,l);throw new ce(l,u)}return n.config.auditMode&&ve?.getStore()?.sandboxActive===!0&&n.recordViolation(r,s,`${s} constructor called (audit mode)`),Reflect.construct(i,o,a)}})}createBlockingObjectProxy(t,s,r){let n=this;return new Proxy(t,{get(i,o,a){if(n.shouldBlock()){let l=`${s}.${String(o)}`,u=`${l} is blocked during script execution`,c=n.recordViolation(r,l,u);throw new ce(u,c)}if(n.config.auditMode&&ve?.getStore()?.sandboxActive===!0){let l=`${s}.${String(o)}`;n.recordViolation(r,l,`${l} accessed (audit mode)`)}return Reflect.get(i,o,a)},set(i,o,a,l){if(n.shouldBlock()){let u=`${s}.${String(o)}`,c=`${u} modification is blocked during script execution`,f=n.recordViolation(r,u,c);throw new ce(c,f)}return Reflect.set(i,o,a,l)},ownKeys(i){if(n.shouldBlock()){let o=`${s} enumeration is blocked during script execution`,a=n.recordViolation(r,s,o);throw new ce(o,a)}return Reflect.ownKeys(i)},getOwnPropertyDescriptor(i,o){if(n.shouldBlock()){let a=`${s}.${String(o)}`,l=`${a} descriptor access is blocked during script execution`,u=n.recordViolation(r,a,l);throw new ce(l,u)}return Reflect.getOwnPropertyDescriptor(i,o)},has(i,o){if(n.shouldBlock()){let a=`${s}.${String(o)}`,l=`${a} existence check is blocked during script execution`,u=n.recordViolation(r,a,l);throw new ce(l,u)}return Reflect.has(i,o)}})}applyPatches(){let t=br();for(let s of t)this.applyPatch(s);this.protectConstructorChain(),this.protectErrorPrepareStackTrace(),this.protectModuleLoad(),this.protectProcessMainModule()}protectConstructorChain(){this.patchPrototypeConstructor(Function.prototype,"Function.prototype.constructor","function_constructor");try{let t=Object.getPrototypeOf(async()=>{}).constructor;t&&t!==Function&&this.patchPrototypeConstructor(t.prototype,"AsyncFunction.prototype.constructor","async_function_constructor")}catch(t){console.debug("[DefenseInDepthBox] Could not patch AsyncFunction.prototype.constructor:",t instanceof Error?t.message:t)}try{let t=Object.getPrototypeOf(function*(){}).constructor;t&&t!==Function&&this.patchPrototypeConstructor(t.prototype,"GeneratorFunction.prototype.constructor","generator_function_constructor")}catch(t){console.debug("[DefenseInDepthBox] Could not patch GeneratorFunction.prototype.constructor:",t instanceof Error?t.message:t)}try{let t=Object.getPrototypeOf(async function*(){}).constructor,s=Object.getPrototypeOf(async()=>{}).constructor;t&&t!==Function&&t!==s&&this.patchPrototypeConstructor(t.prototype,"AsyncGeneratorFunction.prototype.constructor","async_generator_function_constructor")}catch(t){console.debug("[DefenseInDepthBox] Could not patch AsyncGeneratorFunction.prototype.constructor:",t instanceof Error?t.message:t)}}protectErrorPrepareStackTrace(){let t=this;try{let s=Object.getOwnPropertyDescriptor(Error,"prepareStackTrace");this.originalDescriptors.push({target:Error,prop:"prepareStackTrace",descriptor:s});let r=s?.value;Object.defineProperty(Error,"prepareStackTrace",{get(){return r},set(n){if(t.shouldBlock()){let i="Error.prepareStackTrace modification is blocked during script execution",o=t.recordViolation("error_prepare_stack_trace","Error.prepareStackTrace",i);throw new ce(i,o)}t.config.auditMode&&ve?.getStore()?.sandboxActive===!0&&t.recordViolation("error_prepare_stack_trace","Error.prepareStackTrace","Error.prepareStackTrace set (audit mode)"),r=n},configurable:!0})}catch(s){console.debug("[DefenseInDepthBox] Could not protect Error.prepareStackTrace:",s instanceof Error?s.message:s)}}patchPrototypeConstructor(t,s,r){let n=this;try{let i=Object.getOwnPropertyDescriptor(t,"constructor");this.originalDescriptors.push({target:t,prop:"constructor",descriptor:i});let o=i?.value;Object.defineProperty(t,"constructor",{get(){if(n.shouldBlock()){let a=`${s} access is blocked during script execution`,l=n.recordViolation(r,s,a);throw new ce(a,l)}return n.config.auditMode&&ve?.getStore()?.sandboxActive===!0&&n.recordViolation(r,s,`${s} accessed (audit mode)`),o},set(a){if(n.shouldBlock()){let l=`${s} modification is blocked during script execution`,u=n.recordViolation(r,s,l);throw new ce(l,u)}Object.defineProperty(this,"constructor",{value:a,writable:!0,configurable:!0})},configurable:!0})}catch(i){console.debug(`[DefenseInDepthBox] Could not patch ${s}:`,i instanceof Error?i.message:i)}}protectProcessMainModule(){if(typeof process>"u")return;let t=this;try{let s=Object.getOwnPropertyDescriptor(process,"mainModule");this.originalDescriptors.push({target:process,prop:"mainModule",descriptor:s});let r=s?.value;r!==void 0&&Object.defineProperty(process,"mainModule",{get(){if(t.shouldBlock()){let n="process.mainModule access is blocked during script execution",i=t.recordViolation("process_main_module","process.mainModule",n);throw new ce(n,i)}return t.config.auditMode&&ve?.getStore()?.sandboxActive===!0&&t.recordViolation("process_main_module","process.mainModule","process.mainModule accessed (audit mode)"),r},set(n){if(t.shouldBlock()){let i="process.mainModule modification is blocked during script execution",o=t.recordViolation("process_main_module","process.mainModule",i);throw new ce(i,o)}Object.defineProperty(process,"mainModule",{value:n,writable:!0,configurable:!0})},configurable:!0})}catch(s){console.debug("[DefenseInDepthBox] Could not protect process.mainModule:",s instanceof Error?s.message:s)}}protectModuleLoad(){if(!Ct)try{let t=null;if(typeof process<"u"){let o=process.mainModule;o&&typeof o=="object"&&(t=o.constructor)}if(!t&&typeof wt<"u"&&typeof wt.main<"u"&&(t=wt.main.constructor),!t||typeof t._load!="function")return;let s=t._load,r=Object.getOwnPropertyDescriptor(t,"_load");this.originalDescriptors.push({target:t,prop:"_load",descriptor:r});let i=this.createBlockingProxy(s,"Module._load","module_load");Object.defineProperty(t,"_load",{value:i,writable:!0,configurable:!0})}catch(t){console.debug("[DefenseInDepthBox] Could not protect Module._load:",t instanceof Error?t.message:t)}}applyPatch(t){let{target:s,prop:r,violationType:n,strategy:i}=t;try{let o=s[r];if(o===void 0)return;let a=Object.getOwnPropertyDescriptor(s,r);if(this.originalDescriptors.push({target:s,prop:r,descriptor:a}),i==="freeze")typeof o=="object"&&o!==null&&Object.freeze(o);else{let l=this.getPathForTarget(s,r),u=typeof o=="function"?this.createBlockingProxy(o,l,n):this.createBlockingObjectProxy(o,l,n);Object.defineProperty(s,r,{value:u,writable:!0,configurable:!0})}}catch(o){let a=this.getPathForTarget(s,r);console.debug(`[DefenseInDepthBox] Could not patch ${a}:`,o instanceof Error?o.message:o)}}restorePatches(){for(let t=this.originalDescriptors.length-1;t>=0;t--){let{target:s,prop:r,descriptor:n}=this.originalDescriptors[t];try{n?Object.defineProperty(s,r,n):delete s[r]}catch(i){let o=this.getPathForTarget(s,r);console.debug(`[DefenseInDepthBox] Could not restore ${o}:`,i instanceof Error?i.message:i)}}this.originalDescriptors=[]}};var xt=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;defenseInDepthConfig;coverageWriter;state;constructor(t={}){let s=t.fs??new We(t.files);this.fs=s,this.useDefaultLayout=!t.cwd&&!t.files;let r=t.cwd||(this.useDefaultLayout?"/home/user":"/"),n=new Map,i=[["HOME",this.useDefaultLayout?"/home/user":"/"],["PATH","/usr/bin:/bin"],["IFS",`
|
|
675
675
|
`],["OSTYPE","linux-gnu"],["MACHTYPE","x86_64-pc-linux-gnu"],["HOSTTYPE","x86_64"],["HOSTNAME","localhost"],["PWD",r],["OLDPWD",r],["OPTIND","1"]];for(let[o,a]of i)g(n,o,a);for(let[o,a]of Object.entries(t.env??{}))g(n,o,a);if(this.limits=yi({...t.executionLimits,...t.maxCallDepth!==void 0&&{maxCallDepth:t.maxCallDepth},...t.maxCommandCount!==void 0&&{maxCommandCount:t.maxCommandCount},...t.maxLoopIterations!==void 0&&{maxLoopIterations:t.maxLoopIterations}}),t.network&&(this.secureFetch=vr(t.network)),this.sleepFn=t.sleep,this.traceFn=t.trace,this.logger=t.logger,this.defenseInDepthConfig=t.defenseInDepth,this.coverageWriter=t.coverage,this.state={env:n,cwd:r,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:F,startTime:Date.now(),lastBackgroundPid:0,bashPid:ms().pid,nextVirtualPid:ms().pid+1,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1,posix:!1,allexport:!1,noclobber:!1,noglob:!1,noexec:!1,vi:!1,emacs:!1},shoptOptions:{extglob:!1,dotglob:!1,nullglob:!1,failglob:!1,globstar:!1,globskipdots:!0,nocaseglob:!1,nocasematch:!1,expand_aliases:!1,lastpipe:!1,xpg_echo:!1},inCondition:!1,loopDepth:0,exportedVars:new Set(["HOME","PATH","PWD","OLDPWD",...Object.keys(t.env||{})]),readonlyVars:new Set(["SHELLOPTS","BASHOPTS"]),hashTable:new Map},g(this.state.env,"SHELLOPTS",$s(this.state.options)),g(this.state.env,"BASHOPTS",Ps(this.state.shoptOptions)),Kr(s,this.useDefaultLayout),r!=="/"&&s instanceof We)try{s.mkdirSync(r,{recursive:!0})}catch{}for(let o of Hr(t.commands))this.registerCommand(o);if(t.network)for(let o of Ur())this.registerCommand(o);if(t.python)for(let o of Gr())this.registerCommand(o);if(t.customCommands)for(let o of t.customCommands)qr(o)?this.registerCommand(Zr(o)):this.registerCommand(o)}registerCommand(t){this.commands.set(t.name,t);let s=this.fs;if(typeof s.writeFileSync=="function"){let r=`#!/bin/bash
|