@eidos.space/just-bash 3.0.2 → 3.0.3
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/{curl-PLHETP4J.js → curl-DCSPNPEW.js} +1 -1
- package/dist/bin/just-bash.js +1 -1
- package/dist/bin/shell/chunks/{curl-PLHETP4J.js → curl-DCSPNPEW.js} +1 -1
- package/dist/bin/shell/shell.js +1 -1
- package/dist/bundle/browser.js +655 -583
- package/dist/bundle/chunks/chunk-LXDNRKHV.js +28 -0
- package/dist/bundle/chunks/chunk-MUGJLS3O.js +15 -0
- package/dist/bundle/chunks/chunk-RLAAFSP3.js +19 -0
- package/dist/bundle/chunks/chunk-UZR7BRBM.js +84 -0
- package/dist/bundle/chunks/{curl-GRYA74XW.js → curl-PAWGO3EH.js} +1 -1
- package/dist/bundle/chunks/{diff-MWJFIG7X.js → diff-5MIVVRRQ.js} +1 -1
- package/dist/bundle/chunks/{flag-coverage-XWSYNE72.js → flag-coverage-YKB23BRI.js} +1 -1
- package/dist/bundle/chunks/{html-to-markdown-JW4MSQZO.js → html-to-markdown-WGBAMDHY.js} +1 -1
- package/dist/bundle/chunks/{ls-ZJGQER7M.js → ls-GFWJAGZ5.js} +1 -1
- package/dist/bundle/chunks/{printf-TWGXF445.js → printf-H2KM2USM.js} +1 -1
- package/dist/bundle/index.cjs +1287 -1198
- package/dist/bundle/index.js +1 -1
- package/package.json +4 -4
- package/dist/bundle/chunks/chunk-CBJVD2XA.js +0 -7
- package/dist/bundle/chunks/chunk-GIUR5SNU.js +0 -15
- package/dist/bundle/chunks/chunk-R4IFXNY5.js +0 -28
- package/dist/bundle/chunks/chunk-R74UQCKX.js +0 -5
package/dist/bundle/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{B as an,C as ln,D as de,E as et,F as se,G as ke,H as Kt,I as cn,J as L,K as un,L as fn,M as xe,N as Hs,O as Xt,P as H,a as Qr,b as Ws,c as Jr,d as qt,e as ee,f as B,g as fe,h as ne,i as Oe,j as He,k as zs,l as Gt,m as en,n as Vs,o as tn,p as Ee,q as We,r as sn,s as rn,t as Bs,u as js,v as Ze,w as nn,x as on,y as Ae,z as Us}from"./chunks/chunk-G5EVRAOO.js";import{a as Fe,b as Me,c as be}from"./chunks/chunk-WNH3HOQA.js";import{c as Ms}from"./chunks/chunk-HBVMHTO5.js";import{a as Mt,b as Wt}from"./chunks/chunk-XRFHFXFP.js";import{a as Fs}from"./chunks/chunk-L2UW7DWF.js";import{a as Ue,b as ve,c as Ct}from"./chunks/chunk-DLL7UR66.js";import{a as _t,b as Yr}from"./chunks/chunk-L64BMZUV.js";import{a as Ve,b as me}from"./chunks/chunk-TN7HHBQW.js";import{a as kt}from"./chunks/chunk-4RUAZWKT.js";import{a as At,b as zt,c as Ls,d as Be,e as oo,f as Vt,g as ao,h as Bt,i as lo,j as co}from"./chunks/chunk-NRSASXYY.js";import{a as ye,b as ge,c as ue,d as we,e as Kr,f as j,g as Je,h as jt,i as Ut,j as Xr,k as J,l as Ht,m as je,n as Zt,o as Pe}from"./chunks/chunk-SAI2SPQQ.js";import"./chunks/chunk-STHBFACM.js";import{a as Le}from"./chunks/chunk-FOCWZZDE.js";import{a as Ie}from"./chunks/chunk-W5DWRFSU.js";import{a as Is}from"./chunks/chunk-BZUGFHVS.js";var tt=[{name:"echo",load:async()=>(await import("./chunks/echo-NDWZZHPO.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-TSFMZVYS.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-TWGXF445.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-ZJGQER7M.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-MEPGZOB6.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-OC4ZLPYA.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-UA33VN3N.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-SSGETQVQ.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-BISAAS7A.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-W5BIQ646.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-4LGSXXGD.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-TFEPA42X.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-WE6EN5AV.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-OPJF4DL5.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-442HYESI.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-R4PCA2C4.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-LF7NU4LA.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-CD34IZ4P.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-S4FXYXWB.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-S5UIK574.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-LA3USKJP.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-SW2YEO5B.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-XSIZR6PB.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-VV2LDX2J.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-OKARJCCV.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-7JC6S4DX.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-36LHWFRQ.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-5EHFX4EJ.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-WSDW7I4O.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-4TQNYMSW.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-JSPG6VOP.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-CADSA4VO.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-6WDHLGMX.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-4KKZZXXE.js")).split},{name:"column",load:async()=>(await import("./chunks/column-XT6UFXNQ.js")).column},{name:"join",load:async()=>(await import("./chunks/join-TBRGI3LQ.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-YUZ2FKCJ.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-INTH3OLC.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-UB3CIYNI.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-MPHRFUTI.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-YLD52CNT.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-572XNP42.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-36M5BO7M.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-36M5BO7M.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-WYYKSLSZ.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-MGZPH7AX.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-HKGFEOF6.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-4XLYLOS5.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-C2AIWVNC.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-MWJFIG7X.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-UUUPW43J.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-X22JJINO.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-YDCRSLPQ.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-D4LNBSWX.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-M5EC7Q57.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-5JAACS4X.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-SPU24VSG.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-2PTOAFR6.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-NS7D3IXX.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-IPZJC3FQ.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-JW4MSQZO.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-HZ6M2CKN.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-XEM24D5D.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-2STMMJYW.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-C4HQXXUP.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-XMTX52VE.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-WOKFDJTP.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(tt.push({name:"tar",load:async()=>(await import("./chunks/tar-STHHZTZ6.js")).tarCommand}),tt.push({name:"yq",load:async()=>(await import("./chunks/yq-4QJW3EQG.js")).yqCommand}),tt.push({name:"xan",load:async()=>(await import("./chunks/xan-Y6WF3IRG.js")).xanCommand}),tt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-CGOEFJAO.js")).sqlite3Command}));var Yt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Yt.push({name:"python3",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).python3Command}),Yt.push({name:"python",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).pythonCommand}));var Qt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Qt.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).jsExecCommand}),Qt.push({name:"node",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).nodeStubCommand}));var hn=[{name:"curl",load:async()=>(await import("./chunks/curl-GRYA74XW.js")).curlCommand}],dn=new Map;function Jt(e){return{name:e.name,async execute(t,s){let r=dn.get(e.name);if(r||(r=await me.runTrustedAsync(()=>e.load()),dn.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-XWSYNE72.js");n(s.coverage,e.name,t)}return r.execute(t,s)}}}function uo(){return tt.map(e=>e.name)}function fo(){return hn.map(e=>e.name)}function pn(e){return(e?tt.filter(s=>e.includes(s.name)):tt).map(Jt)}function mn(){return hn.map(Jt)}function ho(){return Yt.map(e=>e.name)}function yn(){return Yt.map(Jt)}function po(){return Qt.map(e=>e.name)}function gn(){return Qt.map(Jt)}function wn(e){return"load"in e&&typeof e.load=="function"}function mo(e,t){return{name:e,trusted:!0,execute:t}}function vn(e){let t=null;return{name:e.name,trusted:!0,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}function O(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(n=>n&&n!=="."),r=[];for(let n of s)n===".."?r.pop():r.push(n);return`/${r.join("/")}`||"/"}function x(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function st(e){let t=O(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function qe(e,t){if(t.startsWith("/"))return O(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return O(s)}function Ge(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function ct(e,t){if(t.startsWith("/"))return O(t);let s=st(e);return O(Ge(s,t))}var ut=new TextEncoder;function yo(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var ze=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))typeof r=="function"?this.writeFileLazy(s,r):yo(r)?this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(s,r)}ensureParentDirs(t){let s=st(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){x(t,"write");let i=O(t);this.ensureParentDirs(i);let o=be(r),a=Fe(s,o);this.data.set(i,{type:"file",content:a,mode:n?.mode??420,mtime:n?.mtime??new Date})}writeFileLazy(t,s,r){x(t,"write");let n=O(t);this.ensureParentDirs(n),this.data.set(n,{type:"file",lazy:s,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,s){let r=await s.lazy(),i={type:"file",content:typeof r=="string"?ut.encode(r):r,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let r=await this.readFileBuffer(t),n=be(s);return Me(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return Me(s,"binary")}async readFileBuffer(t){x(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}'`);if("lazy"in r){let n=await this.materializeLazy(s,r);return n.content instanceof Uint8Array?n.content:ut.encode(n.content)}return r.content instanceof Uint8Array?r.content:ut.encode(r.content)}async writeFile(t,s,r){this.writeFileSync(t,s,r)}async appendFile(t,s,r){x(t,"append");let n=O(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=be(r),a=Fe(s,o);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(n,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:ut.encode("content"in l?l.content:""),u=new Uint8Array(c.length+a.length);u.set(c),u.set(a,c.length),this.data.set(n,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,r)}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){x(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}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){x(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};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveIntermediateSymlinks(t){let s=O(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),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=ct(n,l.target),l=this.data.get(n),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=O(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,c=40;for(;a&&a.type==="symlink"&&l<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=ct(n,a.target),a=this.data.get(n),l++}if(l>=c)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){x(t,"mkdir");let r=O(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=st(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){x(t,"scandir");let s=O(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=ct(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 c=a.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!o.has(u)&&o.set(u,{name:u,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){x(t,"rm");let r=O(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=Ge(r,o);await this.rm(a,s)}}}this.data.delete(r)}async cp(t,s,r){x(t,"cp"),x(s,"cp");let n=O(t),i=O(s),o=this.data.get(n);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")if(this.ensureParentDirs(i),"content"in o){let a=o.content instanceof Uint8Array?new Uint8Array(o.content):o.content;this.data.set(i,{...o,content:a})}else this.data.set(i,{...o});else if(o.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...o});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 c=Ge(n,l),u=Ge(i,l);await this.cp(c,u,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){return qe(t,s)}async chmod(t,s){x(t,"chmod");let r=O(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){x(s,"symlink");let r=O(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){x(t,"link"),x(s,"link");let r=O(t),n=O(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}'`);let o=i;"lazy"in o&&(o=await this.materializeLazy(r,o)),this.ensureParentDirs(n),this.data.set(n,{type:"file",content:o.content,mode:o.mode,mtime:o.mtime})}async readlink(t){x(t,"readlink");let s=O(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){x(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){x(t,"utimes");let n=O(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 go(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function wo(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 vo(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 bo(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Qr}
|
|
2
|
+
import{B as an,C as ln,D as de,E as et,F as se,G as ke,H as Kt,I as cn,J as L,K as un,L as fn,M as xe,N as Hs,O as Xt,P as H,a as Qr,b as Ws,c as Jr,d as qt,e as ee,f as B,g as fe,h as ne,i as Oe,j as He,k as zs,l as Gt,m as en,n as Vs,o as tn,p as Ee,q as We,r as sn,s as rn,t as Bs,u as js,v as Ze,w as nn,x as on,y as Ae,z as Us}from"./chunks/chunk-G5EVRAOO.js";import{a as Fe,b as Me,c as be}from"./chunks/chunk-WNH3HOQA.js";import{c as Ms}from"./chunks/chunk-HBVMHTO5.js";import{a as Mt,b as Wt}from"./chunks/chunk-XRFHFXFP.js";import{a as Fs}from"./chunks/chunk-L2UW7DWF.js";import{a as Ue,b as ve,c as Ct}from"./chunks/chunk-DLL7UR66.js";import{a as _t,b as Yr}from"./chunks/chunk-L64BMZUV.js";import{a as Ve,b as me}from"./chunks/chunk-TN7HHBQW.js";import{a as kt}from"./chunks/chunk-4RUAZWKT.js";import{a as At,b as zt,c as Ls,d as Be,e as oo,f as Vt,g as ao,h as Bt,i as lo,j as co}from"./chunks/chunk-NRSASXYY.js";import{a as ye,b as ge,c as ue,d as we,e as Kr,f as j,g as Je,h as jt,i as Ut,j as Xr,k as J,l as Ht,m as je,n as Zt,o as Pe}from"./chunks/chunk-SAI2SPQQ.js";import"./chunks/chunk-STHBFACM.js";import{a as Le}from"./chunks/chunk-FOCWZZDE.js";import{a as Ie}from"./chunks/chunk-W5DWRFSU.js";import{a as Is}from"./chunks/chunk-BZUGFHVS.js";var tt=[{name:"echo",load:async()=>(await import("./chunks/echo-NDWZZHPO.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-TSFMZVYS.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-H2KM2USM.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-GFWJAGZ5.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-MEPGZOB6.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-OC4ZLPYA.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-UA33VN3N.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-SSGETQVQ.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-BISAAS7A.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-W5BIQ646.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-4LGSXXGD.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-TFEPA42X.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-WE6EN5AV.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-OPJF4DL5.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-442HYESI.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-R4PCA2C4.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-LF7NU4LA.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-CD34IZ4P.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-V3LQVMRQ.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-S4FXYXWB.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-S5UIK574.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-LA3USKJP.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-SW2YEO5B.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-XSIZR6PB.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-VV2LDX2J.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-OKARJCCV.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-7JC6S4DX.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-36LHWFRQ.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-5EHFX4EJ.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-WSDW7I4O.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-4TQNYMSW.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-JSPG6VOP.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-CADSA4VO.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-6WDHLGMX.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-4KKZZXXE.js")).split},{name:"column",load:async()=>(await import("./chunks/column-XT6UFXNQ.js")).column},{name:"join",load:async()=>(await import("./chunks/join-TBRGI3LQ.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-YUZ2FKCJ.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-INTH3OLC.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-UB3CIYNI.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-MPHRFUTI.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-YLD52CNT.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-572XNP42.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-36M5BO7M.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-36M5BO7M.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-WYYKSLSZ.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-MGZPH7AX.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-HKGFEOF6.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-4XLYLOS5.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-C2AIWVNC.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-5MIVVRRQ.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-UUUPW43J.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-X22JJINO.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-YDCRSLPQ.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-D4LNBSWX.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-M5EC7Q57.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-5JAACS4X.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-SPU24VSG.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-2PTOAFR6.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-NS7D3IXX.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-IPZJC3FQ.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-WGBAMDHY.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-HZ6M2CKN.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-XEM24D5D.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-2STMMJYW.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-C4HQXXUP.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-XMTX52VE.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-WOKFDJTP.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(tt.push({name:"tar",load:async()=>(await import("./chunks/tar-STHHZTZ6.js")).tarCommand}),tt.push({name:"yq",load:async()=>(await import("./chunks/yq-4QJW3EQG.js")).yqCommand}),tt.push({name:"xan",load:async()=>(await import("./chunks/xan-Y6WF3IRG.js")).xanCommand}),tt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-CGOEFJAO.js")).sqlite3Command}));var Yt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Yt.push({name:"python3",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).python3Command}),Yt.push({name:"python",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).pythonCommand}));var Qt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Qt.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).jsExecCommand}),Qt.push({name:"node",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).nodeStubCommand}));var hn=[{name:"curl",load:async()=>(await import("./chunks/curl-PAWGO3EH.js")).curlCommand}],dn=new Map;function Jt(e){return{name:e.name,async execute(t,s){let r=dn.get(e.name);if(r||(r=await me.runTrustedAsync(()=>e.load()),dn.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-YKB23BRI.js");n(s.coverage,e.name,t)}return r.execute(t,s)}}}function uo(){return tt.map(e=>e.name)}function fo(){return hn.map(e=>e.name)}function pn(e){return(e?tt.filter(s=>e.includes(s.name)):tt).map(Jt)}function mn(){return hn.map(Jt)}function ho(){return Yt.map(e=>e.name)}function yn(){return Yt.map(Jt)}function po(){return Qt.map(e=>e.name)}function gn(){return Qt.map(Jt)}function wn(e){return"load"in e&&typeof e.load=="function"}function mo(e,t){return{name:e,trusted:!0,execute:t}}function vn(e){let t=null;return{name:e.name,trusted:!0,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}function O(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(n=>n&&n!=="."),r=[];for(let n of s)n===".."?r.pop():r.push(n);return`/${r.join("/")}`||"/"}function x(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function st(e){let t=O(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function qe(e,t){if(t.startsWith("/"))return O(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return O(s)}function Ge(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function ct(e,t){if(t.startsWith("/"))return O(t);let s=st(e);return O(Ge(s,t))}var ut=new TextEncoder;function yo(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var ze=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))typeof r=="function"?this.writeFileLazy(s,r):yo(r)?this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(s,r)}ensureParentDirs(t){let s=st(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){x(t,"write");let i=O(t);this.ensureParentDirs(i);let o=be(r),a=Fe(s,o);this.data.set(i,{type:"file",content:a,mode:n?.mode??420,mtime:n?.mtime??new Date})}writeFileLazy(t,s,r){x(t,"write");let n=O(t);this.ensureParentDirs(n),this.data.set(n,{type:"file",lazy:s,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,s){let r=await s.lazy(),i={type:"file",content:typeof r=="string"?ut.encode(r):r,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let r=await this.readFileBuffer(t),n=be(s);return Me(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return Me(s,"binary")}async readFileBuffer(t){x(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}'`);if("lazy"in r){let n=await this.materializeLazy(s,r);return n.content instanceof Uint8Array?n.content:ut.encode(n.content)}return r.content instanceof Uint8Array?r.content:ut.encode(r.content)}async writeFile(t,s,r){this.writeFileSync(t,s,r)}async appendFile(t,s,r){x(t,"append");let n=O(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=be(r),a=Fe(s,o);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(n,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:ut.encode("content"in l?l.content:""),u=new Uint8Array(c.length+a.length);u.set(c),u.set(a,c.length),this.data.set(n,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,r)}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){x(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}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){x(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};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=ut.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveIntermediateSymlinks(t){let s=O(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),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=ct(n,l.target),l=this.data.get(n),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=O(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,c=40;for(;a&&a.type==="symlink"&&l<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=ct(n,a.target),a=this.data.get(n),l++}if(l>=c)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){x(t,"mkdir");let r=O(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=st(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){x(t,"scandir");let s=O(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=ct(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 c=a.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!o.has(u)&&o.set(u,{name:u,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){x(t,"rm");let r=O(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=Ge(r,o);await this.rm(a,s)}}}this.data.delete(r)}async cp(t,s,r){x(t,"cp"),x(s,"cp");let n=O(t),i=O(s),o=this.data.get(n);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")if(this.ensureParentDirs(i),"content"in o){let a=o.content instanceof Uint8Array?new Uint8Array(o.content):o.content;this.data.set(i,{...o,content:a})}else this.data.set(i,{...o});else if(o.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...o});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 c=Ge(n,l),u=Ge(i,l);await this.cp(c,u,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){return qe(t,s)}async chmod(t,s){x(t,"chmod");let r=O(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){x(s,"symlink");let r=O(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){x(t,"link"),x(s,"link");let r=O(t),n=O(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}'`);let o=i;"lazy"in o&&(o=await this.materializeLazy(r,o)),this.ensureParentDirs(n),this.data.set(n,{type:"file",content:o.content,mode:o.mode,mtime:o.mtime})}async readlink(t){x(t,"readlink");let s=O(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){x(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){x(t,"utimes");let n=O(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 go(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function wo(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 vo(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 bo(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Qr}
|
|
3
3
|
`),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
|
|
4
4
|
`),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>Ws(t)):e.writeFileSync("/proc/self/status",Ws(t)),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 bn(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){go(e)&&(wo(e,t),vo(e),bo(e,s))}var Eo=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],$o=["braceexpand","hashall","interactive-comments"];function qs(e){let t=[],s=[...$o.map(r=>({name:r,enabled:!0})),...Eo.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 dt(e){e.state.env.set("SHELLOPTS",qs(e.state.options))}var So=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Gs(e){let t=[];for(let s of So)e[s]&&t.push(s);return t.join(":")}function Ks(e){e.state.env.set("BASHOPTS",Gs(e.state.shoptOptions))}var Po="BASH_ALIAS_";function En(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function $n(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function Sn(e,t){return e.env.get(`${Po}${t}`)}function Xs(e,t,s){if(!t.name||!En(t.name))return t;let r=$n(t.name);if(!r)return t;let n=Sn(e,r);if(!n||s.has(r))return t;try{s.add(r);let i=new B,o=n,a=n.endsWith(" ");if(!a)for(let f of t.args){let d=An(f);o+=` ${d}`}let l;try{l=i.parse(o)}catch(f){if(f instanceof qt)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return Pn(t,n);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return Pn(t,n);let u={...c,assignments:[...t.assignments,...c.assignments],redirections:[...c.redirections,...t.redirections],line:t.line};if(a&&t.args.length>0&&(u={...u,args:[...u.args,...t.args]},u.args.length>0)){let f=u.args[0];if(En(f)){let d=$n(f);if(d&&Sn(e,d)){let p={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},y=Xs(e,p,s);y!==p&&(u={...u,name:y.name,args:[...y.args]})}}}return u}catch(i){throw s.delete(r),i}}function Pn(e,t){let s=t;for(let o of e.args){let a=An(o);s+=` ${a}`}let r=new B,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 An(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 kn(e,t){let s=t.parts.map(u=>u.type==="Literal"?u.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 u of t.parts)if(u.type==="Literal"){let f=u.value;if(!o){let d=f.indexOf("=(");d!==-1&&(o=!0,f=f.slice(d+2))}if(o){f.endsWith(")")&&(f=f.slice(0,-1));let d=f.split(/(\s+)/);for(let p of d)/^\s+$/.test(p)?(a||l)&&(i.push(a),a="",l=!1):p&&(a+=p)}}else if(o)if(u.type==="BraceExpansion")if(/^\[.+\]=/.test(a))a+=Gt({type:"Word",parts:[u]});else{(a||l)&&(i.push(a),a="",l=!1);let d=await xe(e,{type:"Word",parts:[u]});i.push(...d.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await L(e,{type:"Word",parts:[u]});a+=f}(a||l)&&i.push(a);let c=i.map(u=>/^\[.+\]=/.test(u)?u:u===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(u)&&!u.startsWith("'")&&!u.startsWith('"')?`'${u.replace(/'/g,"'\\''")}'`:u);return`${n}=(${c.join(" ")})`}async function _n(e,t){let s=-1,r=-1,n=!1;for(let h=0;h<t.parts.length;h++){let v=t.parts[h];if(v.type==="Literal"){let b=v.value.indexOf("+=");if(b!==-1){let E=v.value.slice(0,b);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(E)){s=h,r=b,n=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(E)){s=h,r=b,n=!0;break}}let g=v.value.indexOf("=");if(g!==-1&&(g===0||v.value[g-1]!=="+")){let E=v.value.slice(0,g);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(E)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(E)){s=h,r=g;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),c=o.value.slice(r+a),u=t.parts.slice(s+1),f="";for(let h of i)f+=await L(e,{type:"Word",parts:[h]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},p=d.parts.length>0?await L(e,d):"";return`${f}${n?"+=":"="}${p}`}var Ao=["tar","yq","xan","sqlite3","python3","python"];function Cn(e){return Ao.includes(e)}var W=Object.freeze({stdout:"",stderr:"",exitCode:0});function z(e=""){return{stdout:e,stderr:"",exitCode:0}}function A(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function _(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function Q(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function Te(e,t,s="",r=""){throw new J(e,t,s,r)}function le(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new J(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function Ys(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new je;return W}if(t.length>1)throw new j(1,"",`bash: break: too many arguments
|
|
5
5
|
`);let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r)||r<1)throw new j(128,"",`bash: break: ${t[0]}: numeric argument required
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eidos.space/just-bash",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "A simulated bash environment with virtual filesystem",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -98,9 +98,9 @@
|
|
|
98
98
|
"build": "rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md",
|
|
99
99
|
"build:clean": "find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete",
|
|
100
100
|
"build:worker": "esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js && esbuild src/commands/sqlite3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/sqlite3/worker.js --external:sql.js && mkdir -p dist/commands/sqlite3 && cp src/commands/sqlite3/worker.js dist/commands/sqlite3/worker.js && cp src/commands/sqlite3/worker.js dist/bin/chunks/sqlite3-worker.js && cp src/commands/sqlite3/worker.js dist/bundle/chunks/sqlite3-worker.js",
|
|
101
|
-
"build:lib": "esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --banner:js='import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:
|
|
102
|
-
"build:lib:cjs": "esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:
|
|
103
|
-
"build:browser": "esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:
|
|
101
|
+
"build:lib": "esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --banner:js='import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
|
|
102
|
+
"build:lib:cjs": "esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
|
|
103
|
+
"build:browser": "esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js",
|
|
104
104
|
"build:cli": "esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node\nimport{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
|
|
105
105
|
"build:shell": "esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node\nimport{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
|
|
106
106
|
"validate": "pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{c as a}from"./chunk-NRSASXYY.js";import{a as c}from"./chunk-QIQMJJZ4.js";import{a as u,b as p}from"./chunk-QAYAQNCG.js";import*as g from"diff";var b={name:"diff",summary:"compare files line by line",usage:"diff [OPTION]... FILE1 FILE2",options:["-u, --unified output unified diff format (default)","-q, --brief report only whether files differ","-s, --report-identical-files report when files are the same","-i, --ignore-case ignore case differences"," --help display this help and exit"]},C={unified:{short:"u",long:"unified",type:"boolean"},brief:{short:"q",long:"brief",type:"boolean"},reportSame:{short:"s",long:"report-identical-files",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},L={name:"diff",async execute(d,e){if(p(d))return u(b);let t=c("diff",d,C);if(!t.ok)return t.error;let m=t.result.flags.brief,h=t.result.flags.reportSame,y=t.result.flags.ignoreCase,l=t.result.positional;if(t.result.flags.unified,l.length<2)return{stdout:"",stderr:`diff: missing operand
|
|
3
|
-
`,exitCode:2};let i,s,[r,o]=l;try{i=r==="-"?a(e.stdin):await e.fs.readFile(e.fs.resolvePath(e.cwd,r))}catch{return{stdout:"",stderr:`diff: ${r}: No such file or directory
|
|
4
|
-
`,exitCode:2}}try{s=o==="-"?a(e.stdin):await e.fs.readFile(e.fs.resolvePath(e.cwd,o))}catch{return{stdout:"",stderr:`diff: ${o}: No such file or directory
|
|
5
|
-
`,exitCode:2}}let f=i,n=s;return y&&(f=f.toLowerCase(),n=n.toLowerCase()),f===n?h?{stdout:`Files ${r} and ${o} are identical
|
|
6
|
-
`,stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0}:m?{stdout:`Files ${r} and ${o} differ
|
|
7
|
-
`,stderr:"",exitCode:1}:{stdout:g.createTwoFilesPatch(r,o,i,s,"","",{context:3}),stderr:"",exitCode:1}}},P={name:"diff",flags:[{flag:"-u",type:"boolean"},{flag:"-q",type:"boolean"},{flag:"-s",type:"boolean"},{flag:"-i",type:"boolean"}],needsArgs:!0,minArgs:2};export{L as a,P as b};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{a as A,c as N}from"./chunk-27JIFWUR.js";import{k as E}from"./chunk-SAI2SPQQ.js";import{a as D}from"./chunk-W5DWRFSU.js";import{a as T,b as F}from"./chunk-QAYAQNCG.js";import{sprintf as S}from"sprintf-js";function P(t,s,r){let e=new Date(s*1e3),a="",n=0;for(;n<t.length;)if(t[n]==="%"&&n+1<t.length){let o=t[n+1],i=H(e,o,r);i!==null?(a+=i,n+=2):(a+=t[n],n++)}else a+=t[n],n++;return a}function _(t,s){let r={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short",hour12:!1,timeZone:s};try{let a=new Intl.DateTimeFormat("en-US",r).formatToParts(t),n=u=>a.find(c=>c.type===u)?.value??"",o=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),i=n("weekday");return{year:Number.parseInt(n("year"),10)||t.getFullYear(),month:Number.parseInt(n("month"),10)||t.getMonth()+1,day:Number.parseInt(n("day"),10)||t.getDate(),hour:Number.parseInt(n("hour"),10)||t.getHours(),minute:Number.parseInt(n("minute"),10)||t.getMinutes(),second:Number.parseInt(n("second"),10)||t.getSeconds(),weekday:o.get(i)??t.getDay()}}catch{return{year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate(),hour:t.getHours(),minute:t.getMinutes(),second:t.getSeconds(),weekday:t.getDay()}}}function H(t,s,r){let e=_(t,r),a=(u,c=2)=>String(u).padStart(c,"0"),n=O(e.year,e.month,e.day),o=W(e.year,e.month,e.day,e.weekday,0),i=W(e.year,e.month,e.day,e.weekday,1);switch(s){case"a":return["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][e.weekday];case"A":return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][e.weekday];case"b":case"h":return["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][e.month-1];case"B":return["January","February","March","April","May","June","July","August","September","October","November","December"][e.month-1];case"c":return`${["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][e.weekday]} ${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][e.month-1]} ${String(e.day).padStart(2," ")} ${a(e.hour)}:${a(e.minute)}:${a(e.second)} ${e.year}`;case"C":return a(Math.floor(e.year/100));case"d":return a(e.day);case"D":return`${a(e.month)}/${a(e.day)}/${a(e.year%100)}`;case"e":return String(e.day).padStart(2," ");case"F":return`${e.year}-${a(e.month)}-${a(e.day)}`;case"g":return a(z(e.year,e.month,e.day)%100);case"G":return String(z(e.year,e.month,e.day));case"H":return a(e.hour);case"I":return a(e.hour%12||12);case"j":return String(n).padStart(3,"0");case"k":return String(e.hour).padStart(2," ");case"l":return String(e.hour%12||12).padStart(2," ");case"m":return a(e.month);case"M":return a(e.minute);case"n":return`
|
|
3
|
-
`;case"N":return"000000000";case"p":return e.hour<12?"AM":"PM";case"P":return e.hour<12?"am":"pm";case"r":return`${a(e.hour%12||12)}:${a(e.minute)}:${a(e.second)} ${e.hour<12?"AM":"PM"}`;case"R":return`${a(e.hour)}:${a(e.minute)}`;case"s":return String(Math.floor(t.getTime()/1e3));case"S":return a(e.second);case"t":return" ";case"T":return`${a(e.hour)}:${a(e.minute)}:${a(e.second)}`;case"u":return String(e.weekday===0?7:e.weekday);case"U":return a(o);case"V":return a(R(e.year,e.month,e.day));case"w":return String(e.weekday);case"W":return a(i);case"x":return`${a(e.month)}/${a(e.day)}/${a(e.year%100)}`;case"X":return`${a(e.hour)}:${a(e.minute)}:${a(e.second)}`;case"y":return a(e.year%100);case"Y":return String(e.year);case"z":return G(t,r);case"Z":return L(t,r);case"%":return"%";default:return null}}function G(t,s){if(!s){let o=-t.getTimezoneOffset(),i=o>=0?"+":"-",u=Math.floor(Math.abs(o)/60),c=Math.abs(o)%60;return`${i}${String(u).padStart(2,"0")}${String(c).padStart(2,"0")}`}try{let u=new Intl.DateTimeFormat("en-US",{timeZone:s,timeZoneName:"longOffset"}).formatToParts(t).find(c=>c.type==="timeZoneName");if(u){let c=u.value.match(/GMT([+-])(\d{2}):(\d{2})/);if(c)return`${c[1]}${c[2]}${c[3]}`;if(u.value==="GMT"||u.value==="UTC")return"+0000"}}catch{}let r=-t.getTimezoneOffset(),e=r>=0?"+":"-",a=Math.floor(Math.abs(r)/60),n=Math.abs(r)%60;return`${e}${String(a).padStart(2,"0")}${String(n).padStart(2,"0")}`}function L(t,s){try{return new Intl.DateTimeFormat("en-US",{timeZone:s,timeZoneName:"short"}).formatToParts(t).find(n=>n.type==="timeZoneName")?.value??"UTC"}catch{return"UTC"}}function O(t,s,r){let e=[31,28,31,30,31,30,31,31,30,31,30,31];(t%4===0&&t%100!==0||t%400===0)&&(e[1]=29);let n=r;for(let o=0;o<s-1;o++)n+=e[o];return n}function W(t,s,r,e,a){let n=O(t,s,r),u=(new Date(t,0,1).getDay()-a+7)%7,c=(e-a+7)%7,l=n-1+u;return Math.floor((l-c+7)/7)}function R(t,s,r){let e=new Date(t,s-1,r,12,0,0);e.setDate(e.getDate()+3-(e.getDay()+6)%7);let a=new Date(e.getFullYear(),0,4);a.setDate(a.getDate()+3-(a.getDay()+6)%7);let n=e.getTime()-a.getTime();return 1+Math.round(n/(10080*60*1e3))}function z(t,s,r){let e=new Date(t,s-1,r,12,0,0);return e.setDate(e.getDate()+3-(e.getDay()+6)%7),e.getFullYear()}function V(t){let s="",r=0;for(;r<t.length;){let e=t[r];if(e<128){s+=String.fromCharCode(e),r++;continue}if((e&224)===192){if(r+1<t.length&&(t[r+1]&192)===128&&e>=194){let a=(e&31)<<6|t[r+1]&63;s+=String.fromCharCode(a),r+=2;continue}s+=String.fromCharCode(e),r++;continue}if((e&240)===224){if(r+2<t.length&&(t[r+1]&192)===128&&(t[r+2]&192)===128){if(e===224&&t[r+1]<160){s+=String.fromCharCode(e),r++;continue}let a=(e&15)<<12|(t[r+1]&63)<<6|t[r+2]&63;if(a>=55296&&a<=57343){s+=String.fromCharCode(e),r++;continue}s+=String.fromCharCode(a),r+=3;continue}s+=String.fromCharCode(e),r++;continue}if((e&248)===240&&e<=244){if(r+3<t.length&&(t[r+1]&192)===128&&(t[r+2]&192)===128&&(t[r+3]&192)===128){if(e===240&&t[r+1]<144){s+=String.fromCharCode(e),r++;continue}let a=(e&7)<<18|(t[r+1]&63)<<12|(t[r+2]&63)<<6|t[r+3]&63;if(a>1114111){s+=String.fromCharCode(e),r++;continue}s+=String.fromCodePoint(a),r+=4;continue}s+=String.fromCharCode(e),r++;continue}s+=String.fromCharCode(e),r++}return s}var X={name:"printf",summary:"format and print data",usage:"printf [-v var] FORMAT [ARGUMENT...]",options:[" -v var assign the output to shell variable VAR rather than display it"," --help display this help and exit"],notes:["FORMAT controls the output like in C printf.","Escape sequences: \\n (newline), \\t (tab), \\\\ (backslash)","Format specifiers: %s (string), %d (integer), %f (float), %x (hex), %o (octal), %% (literal %)","Width and precision: %10s (width 10), %.2f (2 decimal places), %010d (zero-padded)","Flags: %- (left-justify), %+ (show sign), %0 (zero-pad)"]},de={name:"printf",async execute(t,s){if(F(t))return T(X);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
4
|
-
`,exitCode:2};let r=null,e=0;for(;e<t.length;){let o=t[e];if(o==="--"){e++;break}if(o==="-v"){if(e+1>=t.length)return{stdout:"",stderr:`printf: -v: option requires an argument
|
|
5
|
-
`,exitCode:1};if(r=t[e+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[a-zA-Z0-9_@*"'$]+\])?$/.test(r))return{stdout:"",stderr:`printf: \`${r}': not a valid identifier
|
|
6
|
-
`,exitCode:2};e+=2}else{if(o.startsWith("-")&&o!=="-")break;break}}if(e>=t.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
|
|
7
|
-
`,exitCode:1};let a=t[e],n=t.slice(e+1);try{let o=N(a),i="",u=0,c=!1,l="",y=s.env.get("TZ"),p=s.limits?.maxStringLength;do{let{result:m,argsConsumed:w,error:f,errMsg:x,stopped:$}=q(o,n,u,y);if(i+=m,p!==void 0&&p>0&&i.length>p)throw new E(`printf: output size limit exceeded (${p} bytes)`,"string_length");if(u+=w,f&&(c=!0,x&&(l=x)),$)break}while(u<n.length&&u>0);if(u===0&&n.length>0,r){let m=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(['"]?)(.+?)\2\]$/);if(m){let w=m[1],f=m[3];f=f.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(x,$)=>s.env.get($)??""),s.env.set(`${w}_${f}`,i)}else s.env.set(r,i);return{stdout:"",stderr:l,exitCode:c?1:0}}return{stdout:i,stderr:l,exitCode:c?1:0}}catch(o){if(o instanceof E)throw o;return{stdout:"",stderr:`printf: ${D(o)}
|
|
8
|
-
`,exitCode:1}}}};function q(t,s,r,e){let a="",n=0,o=0,i=!1,u="";for(;n<t.length;)if(t[n]==="%"&&n+1<t.length){let c=n;if(n++,t[n]==="%"){a+="%",n++;continue}let l=t.slice(c).match(/^%(-?\d*)(?:\.(\d+))?\(([^)]*)\)T/);if(l){let g=l[1]?parseInt(l[1],10):0,b=l[2]?parseInt(l[2],10):-1,J=l[3],Y=l[0],M=s[r+o]||"";o++;let C;M===""||M==="-1"||M==="-2"?C=Math.floor(Date.now()/1e3):C=parseInt(M,10)||0;let h=P(J,C,e);if(b>=0&&h.length>b&&(h=h.slice(0,b)),g!==0){let k=Math.abs(g);h.length<k&&(g<0?h=h.padEnd(k," "):h=h.padStart(k," "))}a+=h,n=c+Y.length;continue}for(;n<t.length&&"+-0 #'".includes(t[n]);)n++;let y=!1;if(t[n]==="*")y=!0,n++;else for(;n<t.length&&/\d/.test(t[n]);)n++;let p=!1;if(t[n]===".")if(n++,t[n]==="*")p=!0,n++;else for(;n<t.length&&/\d/.test(t[n]);)n++;n<t.length&&"hlL".includes(t[n])&&n++;let m=t[n]||"";n++;let f=t.slice(c,n);if(y){let g=parseInt(s[r+o]||"0",10);o++,f=f.replace("*",String(g))}if(p){let g=parseInt(s[r+o]||"0",10);o++,f=f.replace(".*",`.${g}`)}let x=s[r+o]||"";o++;let{value:$,parseError:j,parseErrMsg:I,stopped:U}=Q(f,m,x);if(a+=$,j&&(i=!0,I&&(u=I)),U)return{result:a,argsConsumed:o,error:i,errMsg:u,stopped:!0}}else a+=t[n],n++;return{result:a,argsConsumed:o,error:i,errMsg:u,stopped:!1}}function Q(t,s,r){let e=!1,a="";switch(s){case"d":case"i":{let n=v(r);return e=d,e&&(a=`printf: ${r}: invalid number
|
|
9
|
-
`),{value:Z(t,n),parseError:e,parseErrMsg:a}}case"o":{let n=v(r);return e=d,e&&(a=`printf: ${r}: invalid number
|
|
10
|
-
`),{value:B(t,n),parseError:e,parseErrMsg:a}}case"u":{let n=v(r);e=d,e&&(a=`printf: ${r}: invalid number
|
|
11
|
-
`);let o=n<0?n>>>0:n;return{value:Z(t.replace("u","d"),o),parseError:e,parseErrMsg:a}}case"x":case"X":{let n=v(r);return e=d,e&&(a=`printf: ${r}: invalid number
|
|
12
|
-
`),{value:K(t,n),parseError:e,parseErrMsg:a}}case"e":case"E":case"f":case"F":case"g":case"G":{let n=parseFloat(r)||0;return{value:ne(t,s,n),parseError:!1,parseErrMsg:""}}case"c":{if(r==="")return{value:"",parseError:!1,parseErrMsg:""};let i=new TextEncoder().encode(r)[0];return{value:String.fromCharCode(i),parseError:!1,parseErrMsg:""}}case"s":return{value:te(t,r),parseError:!1,parseErrMsg:""};case"q":return{value:re(t,r),parseError:!1,parseErrMsg:""};case"b":{let n=ae(r);return{value:n.value,parseError:!1,parseErrMsg:"",stopped:n.stopped}}default:try{return{value:S(t,r),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
|
|
13
|
-
`}}}}var d=!1;function v(t){d=!1;let s=t.trimStart(),r=s!==s.trimEnd();if(t=s.trimEnd(),t.startsWith("'")&&t.length>=2||t.startsWith('"')&&t.length>=2)return t.charCodeAt(1);if(t.startsWith("\\'")&&t.length>=3||t.startsWith('\\"')&&t.length>=3)return t.charCodeAt(2);if(t.startsWith("+")&&(t=t.slice(1)),t.startsWith("0x")||t.startsWith("0X")){let e=parseInt(t,16);return Number.isNaN(e)?(d=!0,0):(r&&(d=!0),e)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return r&&(d=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){d=!0;let e=t.match(/^(\d+)#/);return e?parseInt(e[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){d=!0;let e=parseInt(t,10);return Number.isNaN(e)?0:e}return r&&(d=!0),parseInt(t,10)||0}function Z(t,s){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!r)return S(t.replace(/\.\d*/,""),s);let e=r[1]||"",a=r[2]?parseInt(r[2],10):0,n=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=s<0,i=Math.abs(s),u=String(i);n>=0&&(u=u.padStart(n,"0"));let c="";o?c="-":e.includes("+")?c="+":e.includes(" ")&&(c=" ");let l=c+u;return a>l.length&&(e.includes("-")?l=l.padEnd(a," "):e.includes("0")&&n<0?l=c+u.padStart(a-c.length,"0"):l=l.padStart(a," ")),l}function B(t,s){let r=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!r)return S(t,s);let e=r[1]||"",a=r[2]?parseInt(r[2],10):0,n=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=Math.abs(s).toString(8);n>=0&&(o=o.padStart(n,"0")),e.includes("#")&&!o.startsWith("0")&&(o=`0${o}`);let i=o;return a>i.length&&(e.includes("-")?i=i.padEnd(a," "):e.includes("0")&&n<0?i=i.padStart(a,"0"):i=i.padStart(a," ")),i}function K(t,s){let r=t.includes("X"),e=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!e)return S(t,s);let a=e[1]||"",n=e[2]?parseInt(e[2],10):0,o=e[3]!==void 0?e[4]?parseInt(e[4],10):0:-1,i=Math.abs(s).toString(16);r&&(i=i.toUpperCase()),o>=0&&(i=i.padStart(o,"0"));let u="";a.includes("#")&&s!==0&&(u=r?"0X":"0x");let c=u+i;return n>c.length&&(a.includes("-")?c=c.padEnd(n," "):a.includes("0")&&o<0?c=u+i.padStart(n-u.length,"0"):c=c.padStart(n," ")),c}function ee(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f-\xff]/.test(t)){let e="$'";for(let a of t){let n=a.charCodeAt(0);a==="'"?e+="\\'":a==="\\"?e+="\\\\":a===`
|
|
14
|
-
`?e+="\\n":a===" "?e+="\\t":a==="\r"?e+="\\r":a==="\x07"?e+="\\a":a==="\b"?e+="\\b":a==="\f"?e+="\\f":a==="\v"?e+="\\v":a==="\x1B"?e+="\\E":n<32||n>=127&&n<=255?e+=`\\${n.toString(8).padStart(3,"0")}`:a==='"'?e+='\\"':e+=a}return e+="'",e}let r="";for(let e of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(e)?r+=`\\${e}`:r+=e;return r}function te(t,s){let r=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!r)return S(t.replace(/0+(?=\d)/,""),s);let e=r[1]==="-",a=r[2]?parseInt(r[2],10):0,n=r[3]!==void 0?r[4]?parseInt(r[4],10):0:-1,o=e?-a:a;return A(s,o,n)}function re(t,s){let r=ee(s),e=t.match(/^%(-?)(\d*)q$/);if(!e)return r;let a=e[1]==="-",n=e[2]?parseInt(e[2],10):0,o=r;return n>o.length&&(a?o=o.padEnd(n," "):o=o.padStart(n," ")),o}function ne(t,s,r){let e=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!e)return S(t,r);let a=e[1]||"",n=e[2]?parseInt(e[2],10):0,o=e[3]!==void 0?e[4]?parseInt(e[4],10):0:6,i,u=s.toLowerCase();if(u==="e"?(i=r.toExponential(o),i=i.replace(/e([+-])(\d)$/,"e$10$2"),s==="E"&&(i=i.toUpperCase())):u==="f"?(i=r.toFixed(o),a.includes("#")&&o===0&&!i.includes(".")&&(i+=".")):u==="g"?(i=r.toPrecision(o||1),a.includes("#")||(i=i.replace(/\.?0+$/,""),i=i.replace(/\.?0+e/,"e")),i=i.replace(/e([+-])(\d)$/,"e$10$2"),s==="G"&&(i=i.toUpperCase())):i=r.toString(),r>=0&&(a.includes("+")?i=`+${i}`:a.includes(" ")&&(i=` ${i}`)),n>i.length)if(a.includes("-"))i=i.padEnd(n," ");else if(a.includes("0")){let c=i.match(/^[+ -]/)?.[0]||"",l=c?i.slice(1):i;i=c+l.padStart(n-c.length,"0")}else i=i.padStart(n," ");return i}function ae(t){let s="",r=0;for(;r<t.length;)if(t[r]==="\\"&&r+1<t.length)switch(t[r+1]){case"n":s+=`
|
|
15
|
-
`,r+=2;break;case"t":s+=" ",r+=2;break;case"r":s+="\r",r+=2;break;case"\\":s+="\\",r+=2;break;case"a":s+="\x07",r+=2;break;case"b":s+="\b",r+=2;break;case"f":s+="\f",r+=2;break;case"v":s+="\v",r+=2;break;case"c":return{value:s,stopped:!0};case"x":{let a=[],n=r;for(;n+1<t.length&&t[n]==="\\"&&t[n+1]==="x";){let o="",i=n+2;for(;i<t.length&&i<n+4&&/[0-9a-fA-F]/.test(t[i]);)o+=t[i],i++;if(o)a.push(parseInt(o,16)),n=i;else break}a.length>0?(s+=V(a),r=n):(s+="\\x",r+=2);break}case"u":{let a="",n=r+2;for(;n<t.length&&n<r+6&&/[0-9a-fA-F]/.test(t[n]);)a+=t[n],n++;a?(s+=String.fromCodePoint(parseInt(a,16)),r=n):(s+="\\u",r+=2);break}case"0":{let a="",n=r+2;for(;n<t.length&&n<r+5&&/[0-7]/.test(t[n]);)a+=t[n],n++;a?s+=String.fromCharCode(parseInt(a,8)):s+="\0",r=n;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let a="",n=r+1;for(;n<t.length&&n<r+4&&/[0-7]/.test(t[n]);)a+=t[n],n++;s+=String.fromCharCode(parseInt(a,8)),r=n;break}default:s+=t[r],r++}else s+=t[r],r++;return{value:s,stopped:!1}}var he={name:"printf",flags:[{flag:"-v",type:"value",valueHint:"string"}],stdinType:"none",needsArgs:!0};export{de as a,he as b};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{a as H}from"./chunk-QIQMJJZ4.js";import{a as x,b as E}from"./chunk-QAYAQNCG.js";import{minimatch as R}from"minimatch";function M(n){if(n<1024)return String(n);if(n<1024*1024){let c=n/1024;return c<10?`${c.toFixed(1)}K`:`${Math.round(c)}K`}if(n<1024*1024*1024){let c=n/1048576;return c<10?`${c.toFixed(1)}M`:`${Math.round(c)}M`}let s=n/(1024*1024*1024);return s<10?`${s.toFixed(1)}G`:`${Math.round(s)}G`}function T(n){let c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getMonth()],w=String(n.getDate()).padStart(2," "),S=new Date,y=new Date(S.getTime()-4320*60*60*1e3);if(n>y){let b=String(n.getHours()).padStart(2,"0"),g=String(n.getMinutes()).padStart(2,"0");return`${c} ${w} ${b}:${g}`}let P=n.getFullYear();return`${c} ${w} ${P}`}function C(n){return n.isDirectory?"/":n.isSymbolicLink?"@":(n.mode&73)!==0?"*":""}var k={name:"ls",summary:"list directory contents",usage:"ls [OPTION]... [FILE]...",options:["-a, --all do not ignore entries starting with .","-A, --almost-all do not list . and ..","-d, --directory list directories themselves, not their contents","-F, --classify append indicator (one of */=>@) to entries","-h, --human-readable with -l, print sizes like 1K 234M 2G etc.","-l use a long listing format","-r, --reverse reverse order while sorting","-R, --recursive list subdirectories recursively","-S sort by file size, largest first","-t sort by time, newest first","-1 list one file per line"," --help display this help and exit"]},G={showAll:{short:"a",long:"all",type:"boolean"},showAlmostAll:{short:"A",long:"almost-all",type:"boolean"},longFormat:{short:"l",type:"boolean"},humanReadable:{short:"h",long:"human-readable",type:"boolean"},recursive:{short:"R",long:"recursive",type:"boolean"},reverse:{short:"r",long:"reverse",type:"boolean"},sortBySize:{short:"S",type:"boolean"},classifyFiles:{short:"F",long:"classify",type:"boolean"},directoryOnly:{short:"d",long:"directory",type:"boolean"},sortByTime:{short:"t",type:"boolean"},onePerLine:{short:"1",type:"boolean"}},Z={name:"ls",async execute(n,s){if(E(n))return x(k);let c=H("ls",n,G);if(!c.ok)return c.error;let w=c.result.flags.showAll,S=c.result.flags.showAlmostAll,y=c.result.flags.longFormat,P=c.result.flags.humanReadable,b=c.result.flags.recursive,g=c.result.flags.reverse,v=c.result.flags.sortBySize,$=c.result.flags.classifyFiles,A=c.result.flags.directoryOnly,p=c.result.flags.sortByTime;c.result.flags.onePerLine;let r=c.result.positional;r.length===0&&r.push(".");let a="",l="",u=0;for(let f=0;f<r.length;f++){let o=r[f];if(f>0&&a&&!a.endsWith(`
|
|
3
|
-
|
|
4
|
-
`)&&(a+=`
|
|
5
|
-
`),A){let i=s.fs.resolvePath(s.cwd,o);try{let t=await s.fs.stat(i);if(y){let e=t.isDirectory?"drwxr-xr-x":"-rw-r--r--",d=$?C(await s.fs.lstat(i)):t.isDirectory?"/":"",h=t.size??0,m=P?M(h).padStart(5):String(h).padStart(5),z=t.mtime??new Date(0),F=T(z);a+=`${e} 1 user user ${m} ${F} ${o}${d}
|
|
6
|
-
`}else{let e=$?C(await s.fs.lstat(i)):"";a+=`${o}${e}
|
|
7
|
-
`}}catch{l+=`ls: cannot access '${o}': No such file or directory
|
|
8
|
-
`,u=2}continue}if(o.includes("*")||o.includes("?")||o.includes("[")){let i=await _(o,s,w,S,y,g,P,v,$);a+=i.stdout,l+=i.stderr,i.exitCode!==0&&(u=i.exitCode)}else{let i=await O(o,s,w,S,y,b,r.length>1,g,P,v,$);a+=i.stdout,l+=i.stderr,i.exitCode!==0&&(u=i.exitCode)}}return{stdout:a,stderr:l,exitCode:u}}};async function _(n,s,c,w,S,y=!1,P=!1,b=!1,g=!1){let v=c||w,$=s.fs.getAllPaths(),A=s.fs.resolvePath(s.cwd,"."),p=[];for(let r of $){let a=r.startsWith(A)&&r.slice(A.length+1)||r;if(R(a,n)||R(r,n)){let l=a.split("/").pop()||a;if(!v&&l.startsWith("."))continue;p.push(a||r)}}if(p.length===0)return{stdout:"",stderr:`ls: ${n}: No such file or directory
|
|
9
|
-
`,exitCode:2};if(b){let r=[];for(let a of p){let l=s.fs.resolvePath(s.cwd,a);try{let u=await s.fs.stat(l);r.push({path:a,size:u.size??0})}catch{r.push({path:a,size:0})}}r.sort((a,l)=>l.size-a.size),p.length=0,p.push(...r.map(a=>a.path))}else p.sort();if(y&&p.reverse(),S){let r=[];for(let a of p){let l=s.fs.resolvePath(s.cwd,a);try{let u=await s.fs.stat(l),f=u.isDirectory?"drwxr-xr-x":"-rw-r--r--",o=g?C(await s.fs.lstat(l)):u.isDirectory?"/":"",i=u.size??0,t=P?M(i).padStart(5):String(i).padStart(5),e=u.mtime??new Date(0),d=T(e);r.push(`${f} 1 user user ${t} ${d} ${a}${o}`)}catch{r.push(`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${a}`)}}return{stdout:`${r.join(`
|
|
10
|
-
`)}
|
|
11
|
-
`,stderr:"",exitCode:0}}if(g){let r=[];for(let a of p){let l=s.fs.resolvePath(s.cwd,a);try{let u=await s.fs.lstat(l);r.push(`${a}${C(u)}`)}catch{r.push(a)}}return{stdout:`${r.join(`
|
|
12
|
-
`)}
|
|
13
|
-
`,stderr:"",exitCode:0}}return{stdout:`${p.join(`
|
|
14
|
-
`)}
|
|
15
|
-
`,stderr:"",exitCode:0}}async function O(n,s,c,w,S,y,P,b=!1,g=!1,v=!1,$=!1,A=!1){let p=c||w,r=s.fs.resolvePath(s.cwd,n);try{let a=await s.fs.stat(r);if(!a.isDirectory){let f=$?C(await s.fs.lstat(r)):"";if(S){let o=a.size??0,i=g?M(o).padStart(5):String(o).padStart(5),t=a.mtime??new Date(0),e=T(t);return{stdout:`-rw-r--r-- 1 user user ${i} ${e} ${n}${f}
|
|
16
|
-
`,stderr:"",exitCode:0}}return{stdout:`${n}${f}
|
|
17
|
-
`,stderr:"",exitCode:0}}let l=await s.fs.readdir(r);if(p||(l=l.filter(f=>!f.startsWith("."))),v){let f=[];for(let o of l){let i=r==="/"?`/${o}`:`${r}/${o}`;try{let t=await s.fs.stat(i);f.push({name:o,size:t.size??0})}catch{f.push({name:o,size:0})}}f.sort((o,i)=>i.size-o.size),l=f.map(o=>o.name)}else l.sort();c&&(l=[".","..",...l]),b&&l.reverse();let u="";if((y||P)&&(u+=`${n}:
|
|
18
|
-
`),S){u+=`total ${l.length}
|
|
19
|
-
`;let f=l.filter(e=>e==="."||e===".."),o=l.filter(e=>e!=="."&&e!=="..");for(let e of f)u+=`drwxr-xr-x 1 user user 0 Jan 1 00:00 ${e}
|
|
20
|
-
`;let i=[];for(let e=0;e<o.length;e+=100){let d=o.slice(e,e+100),h=await Promise.all(d.map(async m=>{let z=r==="/"?`/${m}`:`${r}/${m}`;try{let F=await s.fs.stat(z),B=F.isDirectory?"drwxr-xr-x":"-rw-r--r--",J=$?C(await s.fs.lstat(z)):F.isDirectory?"/":"",W=F.size??0,j=g?M(W).padStart(5):String(W).padStart(5),L=F.mtime??new Date(0),N=T(L);return{name:m,line:`${B} 1 user user ${j} ${N} ${m}${J}
|
|
21
|
-
`}}catch{return{name:m,line:`-rw-r--r-- 1 user user 0 Jan 1 00:00 ${m}
|
|
22
|
-
`}}}));i.push(...h)}let t=new Map(o.map((e,d)=>[e,d]));i.sort((e,d)=>(t.get(e.name)??0)-(t.get(d.name)??0));for(let{line:e}of i)u+=e}else if($){let f=[],o=l.filter(t=>t!=="."&&t!==".."),i=l.filter(t=>t==="."||t==="..");for(let t of i)f.push(`${t}/`);for(let t=0;t<o.length;t+=100){let e=o.slice(t,t+100),d=await Promise.all(e.map(async h=>{let m=r==="/"?`/${h}`:`${r}/${h}`;try{let z=await s.fs.lstat(m);return`${h}${C(z)}`}catch{return h}}));f.push(...d)}u+=f.join(`
|
|
23
|
-
`)+(f.length?`
|
|
24
|
-
`:"")}else u+=l.join(`
|
|
25
|
-
`)+(l.length?`
|
|
26
|
-
`:"");if(y){let f=l.filter(t=>t!=="."&&t!==".."),o=[];if(s.fs.readdirWithFileTypes)o=(await s.fs.readdirWithFileTypes(r)).filter(e=>e.isDirectory&&f.includes(e.name)).map(e=>({name:e.name,isDirectory:!0}));else for(let t=0;t<f.length;t+=100){let e=f.slice(t,t+100),d=await Promise.all(e.map(async h=>{let m=r==="/"?`/${h}`:`${r}/${h}`;try{let z=await s.fs.stat(m);return{name:h,isDirectory:z.isDirectory}}catch{return{name:h,isDirectory:!1}}}));o.push(...d.filter(h=>h.isDirectory))}o.sort((t,e)=>t.name.localeCompare(e.name)),b&&o.reverse();let i=[];for(let t=0;t<o.length;t+=100){let e=o.slice(t,t+100),d=await Promise.all(e.map(async h=>{let m=n==="."?`./${h.name}`:`${n}/${h.name}`,z=await O(m,s,c,w,S,y,!1,b,g,v,$,!0);return{name:h.name,result:z}}));i.push(...d)}i.sort((t,e)=>t.name.localeCompare(e.name)),b&&i.reverse();for(let{result:t}of i)u+=`
|
|
27
|
-
`,u+=t.stdout}return{stdout:u,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`ls: ${n}: No such file or directory
|
|
28
|
-
`,exitCode:2}}}var q={name:"ls",flags:[{flag:"-a",type:"boolean"},{flag:"-A",type:"boolean"},{flag:"-l",type:"boolean"},{flag:"-h",type:"boolean"},{flag:"-R",type:"boolean"},{flag:"-r",type:"boolean"},{flag:"-S",type:"boolean"},{flag:"-F",type:"boolean"},{flag:"-d",type:"boolean"},{flag:"-t",type:"boolean"},{flag:"-1",type:"boolean"}],needsFiles:!0};export{Z as a,q as b};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{c}from"./chunk-NRSASXYY.js";import{a as u,b as f,c as h}from"./chunk-QAYAQNCG.js";import p from"turndown";var w={name:"html-to-markdown",summary:"convert HTML to Markdown (BashEnv extension)",usage:"html-to-markdown [OPTION]... [FILE]",description:["Convert HTML content to Markdown format using the turndown library.","This is a non-standard BashEnv extension command, not available in regular bash.","","Read HTML from FILE or standard input and output Markdown to standard output.","Commonly used with curl to convert web pages:"," curl -s https://example.com | html-to-markdown","","Supported HTML elements:"," - Headings (h1-h6) \u2192 # Markdown headings"," - Paragraphs (p) \u2192 Plain text with blank lines"," - Links (a) \u2192 [text](url)"," - Images (img) \u2192 "," - Bold/Strong \u2192 **text**"," - Italic/Em \u2192 _text_"," - Code (code, pre) \u2192 `inline` or fenced blocks"," - Lists (ul, ol, li) \u2192 - or 1. items"," - Blockquotes \u2192 > quoted text"," - Horizontal rules (hr) \u2192 ---"],options:["-b, --bullet=CHAR bullet character for unordered lists (-, +, or *)","-c, --code=FENCE fence style for code blocks (``` or ~~~)","-r, --hr=STRING string for horizontal rules (default: ---)"," --heading-style=STYLE"," heading style: 'atx' for # headings (default),"," 'setext' for underlined headings (h1/h2 only)"," --help display this help and exit"],examples:["echo '<h1>Hello</h1><p>World</p>' | html-to-markdown","html-to-markdown page.html","curl -s https://example.com | html-to-markdown > page.md"]},y={name:"html-to-markdown",async execute(r,n){if(f(r))return u(w);let s="-",a="```",i="---",m="atx",o=[];for(let e=0;e<r.length;e++){let t=r[e];if(t==="-b"||t==="--bullet")s=r[++e]??"-";else if(t.startsWith("--bullet="))s=t.slice(9);else if(t==="-c"||t==="--code")a=r[++e]??"```";else if(t.startsWith("--code="))a=t.slice(7);else if(t==="-r"||t==="--hr")i=r[++e]??"---";else if(t.startsWith("--hr="))i=t.slice(5);else if(t.startsWith("--heading-style=")){let d=t.slice(16);(d==="setext"||d==="atx")&&(m=d)}else if(t==="-")o.push("-");else{if(t.startsWith("--"))return h("html-to-markdown",t);if(t.startsWith("-"))return h("html-to-markdown",t);o.push(t)}}let l;if(o.length===0||o.length===1&&o[0]==="-")l=c(n.stdin);else try{let e=n.fs.resolvePath(n.cwd,o[0]);l=await n.fs.readFile(e)}catch{return{stdout:"",stderr:`html-to-markdown: ${o[0]}: No such file or directory
|
|
3
|
-
`,exitCode:1}}if(!l.trim())return{stdout:"",stderr:"",exitCode:0};try{let e=new p({bulletListMarker:s,codeBlockStyle:"fenced",fence:a,hr:i,headingStyle:m});return e.remove(["script","style","footer"]),{stdout:`${e.turndown(l).trim()}
|
|
4
|
-
`,stderr:"",exitCode:0}}catch(e){return{stdout:"",stderr:`html-to-markdown: conversion error: ${e.message}
|
|
5
|
-
`,exitCode:1}}}},b={name:"html-to-markdown",flags:[],stdinType:"text"};export{y as a,b};
|