import{createRequire} from"node:module";const require=createRequire(import.meta.url); import{a as g}from"./chunk-QIQMJJZ4.js";import{a as D,b as $}from"./chunk-QAYAQNCG.js";var P={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},b={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},O={name:"tree",async execute(i,o){if($(i))return D(P);let s=g("tree",i,b);if(!s.ok)return s.error;let f={showHidden:s.result.flags.showHidden,directoriesOnly:s.result.flags.directoriesOnly,maxDepth:s.result.flags.maxDepth??null,fullPath:s.result.flags.fullPath},d=s.result.positional;d.length===0&&d.push(".");let e="",l="",a=0,n=0;for(let t of d){let r=await T(o,t,f,"",0);e+=r.output,l+=r.stderr,a+=r.dirCount,n+=r.fileCount}return e+=` ${a} director${a===1?"y":"ies"}`,f.directoriesOnly||(e+=`, ${n} file${n===1?"":"s"}`),e+=` `,{stdout:e,stderr:l,exitCode:l?1:0}}};async function T(i,o,s,f,d){let e={output:"",stderr:"",dirCount:0,fileCount:0},l=i.fs.resolvePath(i.cwd,o);try{if(!(await i.fs.stat(l)).isDirectory)return e.output=`${o} `,e.fileCount=1,e}catch{return e.stderr=`tree: ${o}: No such file or directory `,e}if(e.output=`${o} `,s.maxDepth!==null&&d>=s.maxDepth)return e;try{let a=[];if(i.fs.readdirWithFileTypes)a=(await i.fs.readdirWithFileTypes(l)).map(r=>({name:r.name,isDirectory:r.isDirectory}));else{let t=await i.fs.readdir(l);for(let r=0;r{let y=l==="/"?`/${c}`:`${l}/${c}`;try{let h=await i.fs.stat(y);return{name:c,isDirectory:h.isDirectory}}catch{return null}}));a.push(...u.filter(c=>c!==null))}}let n=a.filter(t=>!(!s.showHidden&&t.name.startsWith(".")||s.directoriesOnly&&!t.isDirectory));n.sort((t,r)=>t.name.localeCompare(r.name));for(let t=0;t=s.maxDepth)return e;try{let l=[];if(i.fs.readdirWithFileTypes)l=(await i.fs.readdirWithFileTypes(o)).map(t=>({name:t.name,isDirectory:t.isDirectory}));else{let n=await i.fs.readdir(o);for(let t=0;t{let c=o==="/"?`/${u}`:`${o}/${u}`;try{let y=await i.fs.stat(c);return{name:u,isDirectory:y.isDirectory}}catch{return null}}));l.push(...m.filter(u=>u!==null))}}let a=l.filter(n=>!(!s.showHidden&&n.name.startsWith(".")||s.directoriesOnly&&!n.isDirectory));a.sort((n,t)=>n.name.localeCompare(t.name));for(let n=0;n