@jerryan/just-bash 3.9.0 → 3.10.0

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.
Files changed (144) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/bin/chunks/builtin-manifest-ORBIZM7I.js +3 -0
  3. package/dist/bin/chunks/{chmod-GX5SYTRL.js → chmod-S4ARARR4.js} +1 -1
  4. package/dist/bin/chunks/{chunk-GBKR5KTT.js → chunk-3ASHUC7C.js} +13 -13
  5. package/dist/bin/chunks/{chunk-3ROYEBJI.js → chunk-4JPWP5WS.js} +1 -1
  6. package/dist/bin/{shell/chunks/chunk-DRPHNXG7.js → chunks/chunk-7LGT4LHQ.js} +1 -1
  7. package/dist/bin/{shell/chunks/chunk-MBREBDZQ.js → chunks/chunk-AIWBN36Z.js} +1 -1
  8. package/dist/bin/chunks/chunk-AQKIHX3Q.js +3 -0
  9. package/dist/bin/chunks/chunk-E2O6S35K.js +10 -0
  10. package/dist/bin/chunks/{chunk-F2PYTUMR.js → chunk-F4ACJZIY.js} +7 -6
  11. package/dist/bin/{shell/chunks/chunk-6JEDM6CZ.js → chunks/chunk-GKJD4ULC.js} +1 -1
  12. package/dist/bin/{shell/chunks/chunk-QJWFCA7P.js → chunks/chunk-HARVZWUX.js} +1 -1
  13. package/dist/bin/chunks/chunk-IRCAXXH6.js +14 -0
  14. package/dist/bin/chunks/{chunk-T6OIISUC.js → chunk-K65FCSAT.js} +1 -1
  15. package/dist/bin/{shell/chunks/chunk-6FGMEZZP.js → chunks/chunk-MWQMHODV.js} +1 -1
  16. package/dist/bin/chunks/{chunk-BB5VTPMQ.js → chunk-NSI6LMDS.js} +1 -1
  17. package/dist/bin/{shell/chunks/chunk-ABP4OLJV.js → chunks/chunk-OXEDIWNZ.js} +1 -1
  18. package/dist/bin/chunks/{chunk-KMYJMEON.js → chunk-R7THHH4J.js} +1 -1
  19. package/dist/bin/chunks/chunk-UBA7DOWE.js +3 -0
  20. package/dist/bin/{shell/chunks/chunk-VPSBWWXM.js → chunks/chunk-UNCYBFWT.js} +7 -6
  21. package/dist/bin/chunks/chunk-VMVXACZ5.js +6 -0
  22. package/dist/bin/chunks/chunk-Z3TCELKN.js +12 -0
  23. package/dist/bin/chunks/{cp-YLP7ULVT.js → cp-WRBRHVVD.js} +1 -1
  24. package/dist/bin/{shell/chunks/diff-DM47S5PT.js → chunks/diff-YLVT27CZ.js} +1 -1
  25. package/dist/bin/{shell/chunks/du-DH76GZJ3.js → chunks/du-YNAJTGCR.js} +1 -1
  26. package/dist/bin/{shell/chunks/find-MHC4QV6H.js → chunks/find-T3JZPTUX.js} +1 -1
  27. package/dist/bin/chunks/{flag-coverage-LLAQBVIG.js → flag-coverage-LVKHEUTL.js} +1 -1
  28. package/dist/bin/chunks/{gzip-UQZL4R74.js → gzip-EXJSFNCU.js} +1 -1
  29. package/dist/bin/{shell/chunks/js-exec-ZAAIZQWI.js → chunks/js-exec-PLUMFEX6.js} +1 -1
  30. package/dist/bin/chunks/{ls-5Z45FV4U.js → ls-LOCOWLZ3.js} +1 -1
  31. package/dist/bin/chunks/{mkdir-YJ3SOVRP.js → mkdir-VHLJ3E65.js} +1 -1
  32. package/dist/bin/chunks/{mv-EOOP2TO3.js → mv-NAMOL2HF.js} +1 -1
  33. package/dist/bin/chunks/{python3-TJ6DCPIA.js → python3-J5GXF27H.js} +5 -5
  34. package/dist/bin/{shell/chunks/readlink-EJ3IKLWW.js → chunks/readlink-BF435HNQ.js} +1 -1
  35. package/dist/bin/chunks/{rg-WHVR3YDT.js → rg-XF5U7GS2.js} +1 -1
  36. package/dist/bin/{shell/chunks/rm-B4LVIG7A.js → chunks/rm-L4RHENMV.js} +1 -1
  37. package/dist/bin/{shell/chunks/rmdir-PRNISPBA.js → chunks/rmdir-W73C4GEA.js} +1 -1
  38. package/dist/bin/{shell/chunks/split-HIFKSV2A.js → chunks/split-2VXPZJJ4.js} +1 -1
  39. package/dist/bin/chunks/{sqlite3-CXQTZRPZ.js → sqlite3-3S5HIA5W.js} +1 -1
  40. package/dist/bin/chunks/{which-4TPGVSBZ.js → which-G7X54RZL.js} +1 -1
  41. package/dist/bin/just-bash.js +243 -242
  42. package/dist/bin/shell/chunks/builtin-manifest-ORBIZM7I.js +3 -0
  43. package/dist/bin/shell/chunks/{chmod-GX5SYTRL.js → chmod-S4ARARR4.js} +1 -1
  44. package/dist/bin/shell/chunks/{chunk-GBKR5KTT.js → chunk-3ASHUC7C.js} +13 -13
  45. package/dist/bin/shell/chunks/{chunk-3ROYEBJI.js → chunk-4JPWP5WS.js} +1 -1
  46. package/dist/bin/{chunks/chunk-DRPHNXG7.js → shell/chunks/chunk-7LGT4LHQ.js} +1 -1
  47. package/dist/bin/{chunks/chunk-MBREBDZQ.js → shell/chunks/chunk-AIWBN36Z.js} +1 -1
  48. package/dist/bin/shell/chunks/chunk-AQKIHX3Q.js +3 -0
  49. package/dist/bin/shell/chunks/chunk-E2O6S35K.js +10 -0
  50. package/dist/bin/shell/chunks/{chunk-F2PYTUMR.js → chunk-F4ACJZIY.js} +7 -6
  51. package/dist/bin/{chunks/chunk-6JEDM6CZ.js → shell/chunks/chunk-GKJD4ULC.js} +1 -1
  52. package/dist/bin/{chunks/chunk-QJWFCA7P.js → shell/chunks/chunk-HARVZWUX.js} +1 -1
  53. package/dist/bin/shell/chunks/chunk-IRCAXXH6.js +14 -0
  54. package/dist/bin/shell/chunks/{chunk-T6OIISUC.js → chunk-K65FCSAT.js} +1 -1
  55. package/dist/bin/{chunks/chunk-6FGMEZZP.js → shell/chunks/chunk-MWQMHODV.js} +1 -1
  56. package/dist/bin/shell/chunks/{chunk-BB5VTPMQ.js → chunk-NSI6LMDS.js} +1 -1
  57. package/dist/bin/{chunks/chunk-ABP4OLJV.js → shell/chunks/chunk-OXEDIWNZ.js} +1 -1
  58. package/dist/bin/shell/chunks/{chunk-KMYJMEON.js → chunk-R7THHH4J.js} +1 -1
  59. package/dist/bin/shell/chunks/chunk-UBA7DOWE.js +3 -0
  60. package/dist/bin/{chunks/chunk-VPSBWWXM.js → shell/chunks/chunk-UNCYBFWT.js} +7 -6
  61. package/dist/bin/shell/chunks/chunk-VMVXACZ5.js +6 -0
  62. package/dist/bin/shell/chunks/chunk-Z3TCELKN.js +12 -0
  63. package/dist/bin/shell/chunks/{cp-YLP7ULVT.js → cp-WRBRHVVD.js} +1 -1
  64. package/dist/bin/{chunks/diff-DM47S5PT.js → shell/chunks/diff-YLVT27CZ.js} +1 -1
  65. package/dist/bin/{chunks/du-DH76GZJ3.js → shell/chunks/du-YNAJTGCR.js} +1 -1
  66. package/dist/bin/{chunks/find-MHC4QV6H.js → shell/chunks/find-T3JZPTUX.js} +1 -1
  67. package/dist/bin/shell/chunks/{flag-coverage-LLAQBVIG.js → flag-coverage-LVKHEUTL.js} +1 -1
  68. package/dist/bin/shell/chunks/{gzip-UQZL4R74.js → gzip-EXJSFNCU.js} +1 -1
  69. package/dist/bin/{chunks/js-exec-ZAAIZQWI.js → shell/chunks/js-exec-PLUMFEX6.js} +1 -1
  70. package/dist/bin/shell/chunks/{ls-5Z45FV4U.js → ls-LOCOWLZ3.js} +1 -1
  71. package/dist/bin/shell/chunks/{mkdir-YJ3SOVRP.js → mkdir-VHLJ3E65.js} +1 -1
  72. package/dist/bin/shell/chunks/{mv-EOOP2TO3.js → mv-NAMOL2HF.js} +1 -1
  73. package/dist/bin/shell/chunks/{python3-TJ6DCPIA.js → python3-J5GXF27H.js} +5 -5
  74. package/dist/bin/{chunks/readlink-EJ3IKLWW.js → shell/chunks/readlink-BF435HNQ.js} +1 -1
  75. package/dist/bin/shell/chunks/{rg-WHVR3YDT.js → rg-XF5U7GS2.js} +1 -1
  76. package/dist/bin/{chunks/rm-B4LVIG7A.js → shell/chunks/rm-L4RHENMV.js} +1 -1
  77. package/dist/bin/{chunks/rmdir-PRNISPBA.js → shell/chunks/rmdir-W73C4GEA.js} +1 -1
  78. package/dist/bin/{chunks/split-HIFKSV2A.js → shell/chunks/split-2VXPZJJ4.js} +1 -1
  79. package/dist/bin/shell/chunks/{sqlite3-CXQTZRPZ.js → sqlite3-3S5HIA5W.js} +1 -1
  80. package/dist/bin/shell/chunks/{which-4TPGVSBZ.js → which-G7X54RZL.js} +1 -1
  81. package/dist/bin/shell/shell.js +305 -304
  82. package/dist/bundle/browser.js +571 -562
  83. package/dist/bundle/chunks/builtin-manifest-7MJJDZ2T.js +2 -0
  84. package/dist/bundle/chunks/{chmod-TEY5MD2W.js → chmod-KMFNCMRX.js} +1 -1
  85. package/dist/bundle/chunks/{chunk-E2F4A3CM.js → chunk-2A4OZBCS.js} +5 -5
  86. package/dist/bundle/chunks/{chunk-SE23TEGG.js → chunk-4CDTAUYP.js} +1 -1
  87. package/dist/bundle/chunks/chunk-4OKRFRMS.js +13 -0
  88. package/dist/bundle/chunks/{chunk-ATGOUOX2.js → chunk-4WRO2G22.js} +1 -1
  89. package/dist/bundle/chunks/{chunk-45QZRGYF.js → chunk-5KOWUQOZ.js} +7 -6
  90. package/dist/bundle/chunks/{chunk-6HO6HX7V.js → chunk-5NUTFEEG.js} +1 -1
  91. package/dist/bundle/chunks/{chunk-WE7BJ7YU.js → chunk-6IFH67ZB.js} +1 -1
  92. package/dist/bundle/chunks/chunk-6L6OYVLY.js +2 -0
  93. package/dist/bundle/chunks/chunk-BMBITA6Y.js +2 -0
  94. package/dist/bundle/chunks/{chunk-S6DNKKUL.js → chunk-CM4T4GB4.js} +1 -1
  95. package/dist/bundle/chunks/{chunk-MWL2I5BV.js → chunk-FXAKF2QS.js} +1 -1
  96. package/dist/bundle/chunks/chunk-H4AFUSSQ.js +9 -0
  97. package/dist/bundle/chunks/{chunk-H3A45X3W.js → chunk-MMXJJCAE.js} +1 -1
  98. package/dist/bundle/chunks/{chunk-6QAM55HM.js → chunk-NFODJFHN.js} +1 -1
  99. package/dist/bundle/chunks/{chunk-LRFR25IP.js → chunk-O5OYOY3C.js} +7 -6
  100. package/dist/bundle/chunks/{chunk-HCKTU6IR.js → chunk-PASYAXFP.js} +1 -1
  101. package/dist/bundle/chunks/chunk-THDUQVY3.js +11 -0
  102. package/dist/bundle/chunks/{chunk-FSKXIFYT.js → chunk-Y6UHNLT5.js} +1 -1
  103. package/dist/bundle/chunks/chunk-ZIQS5QAW.js +5 -0
  104. package/dist/bundle/chunks/{cp-UR762VVT.js → cp-P2D2L6PC.js} +1 -1
  105. package/dist/bundle/chunks/{diff-R7TXVVLN.js → diff-Z3XOLW44.js} +1 -1
  106. package/dist/bundle/chunks/{du-EQKH3UNA.js → du-YBSJVBXP.js} +1 -1
  107. package/dist/bundle/chunks/{find-RLKBCGJR.js → find-IUWEB4XQ.js} +1 -1
  108. package/dist/bundle/chunks/{flag-coverage-YQGACUSN.js → flag-coverage-SZ4AUPRQ.js} +1 -1
  109. package/dist/bundle/chunks/{gzip-KC5ENBD2.js → gzip-VUJBDHZ5.js} +1 -1
  110. package/dist/bundle/chunks/{js-exec-MUZRDUJ3.js → js-exec-6RW7WZCG.js} +1 -1
  111. package/dist/bundle/chunks/{ls-WH5S4PPL.js → ls-ECKG2XHZ.js} +1 -1
  112. package/dist/bundle/chunks/{mkdir-Z6MMWH3D.js → mkdir-YL7XGMD7.js} +1 -1
  113. package/dist/bundle/chunks/{mv-WE7DBLEK.js → mv-IF55A2UD.js} +1 -1
  114. package/dist/bundle/chunks/{python3-W4UMQJAQ.js → python3-XHTOW7VA.js} +5 -5
  115. package/dist/bundle/chunks/{readlink-JSRKXLLQ.js → readlink-7XGQ3PL7.js} +1 -1
  116. package/dist/bundle/chunks/{rg-JKB7DR66.js → rg-E6H2HACA.js} +1 -1
  117. package/dist/bundle/chunks/{rm-IGPLE632.js → rm-CWLMERIO.js} +1 -1
  118. package/dist/bundle/chunks/{rmdir-3WTXMVKI.js → rmdir-WKKBLZ54.js} +1 -1
  119. package/dist/bundle/chunks/{split-HUKVGJTW.js → split-NEU2K2YN.js} +1 -1
  120. package/dist/bundle/chunks/{sqlite3-DQNCWDG5.js → sqlite3-KJ5NMKBM.js} +1 -1
  121. package/dist/bundle/chunks/{which-UWVKETYW.js → which-BP5YY5BR.js} +1 -1
  122. package/dist/bundle/index.cjs +744 -735
  123. package/dist/bundle/index.js +210 -209
  124. package/dist/commands/which/which.d.ts +10 -0
  125. package/dist/custom-commands.d.ts +5 -0
  126. package/dist/fs/path-utils.d.ts +0 -4
  127. package/dist/limits.d.ts +0 -3
  128. package/dist/types.d.ts +6 -0
  129. package/package.json +1 -1
  130. package/dist/bin/chunks/chunk-6JUPBMCR.js +0 -13
  131. package/dist/bin/chunks/chunk-CN4JKMTR.js +0 -8
  132. package/dist/bin/chunks/chunk-HWK7KFGB.js +0 -3
  133. package/dist/bin/chunks/chunk-RTN6X652.js +0 -11
  134. package/dist/bin/chunks/chunk-RVPTAYDS.js +0 -4
  135. package/dist/bin/shell/chunks/chunk-6JUPBMCR.js +0 -13
  136. package/dist/bin/shell/chunks/chunk-CN4JKMTR.js +0 -8
  137. package/dist/bin/shell/chunks/chunk-HWK7KFGB.js +0 -3
  138. package/dist/bin/shell/chunks/chunk-RTN6X652.js +0 -11
  139. package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +0 -4
  140. package/dist/bundle/chunks/chunk-2SMD2AUA.js +0 -3
  141. package/dist/bundle/chunks/chunk-3OBCZP7T.js +0 -12
  142. package/dist/bundle/chunks/chunk-4CC3OZPU.js +0 -2
  143. package/dist/bundle/chunks/chunk-A257L6QO.js +0 -7
  144. package/dist/bundle/chunks/chunk-RWQWFXMH.js +0 -10
@@ -1,3 +1,13 @@
1
+ /**
2
+ * which - Locate a command
3
+ *
4
+ * Resolution order:
5
+ * 1. VFS PATH search (sandboxed filesystem)
6
+ * 2. Shell builtins (echo, cd, etc.) — only when no file found
7
+ *
8
+ * On miss, prints a helpful message to stderr explaining that the
9
+ * command is not available in this sandboxed bash environment.
10
+ */
1
11
  import type { RuntimeCommand } from "../../types.js";
2
12
  export declare const whichCommand: RuntimeCommand;
3
13
  import type { CommandFuzzInfo } from "../fuzz-flags-types.js";
@@ -21,6 +21,11 @@ export interface LazyCommand {
21
21
  * trusted by default for compatibility with existing host integrations.
22
22
  */
23
23
  trusted?: boolean;
24
+ /**
25
+ * Set to true when the command handles --version itself. When unset,
26
+ * the dispatch intercepts --version and returns "<cmd> (just-bash)".
27
+ */
28
+ handlesOwnVersion?: boolean;
24
29
  load: () => Promise<Command>;
25
30
  }
26
31
  /** Inputs for a complete standalone command context, primarily for tests. */
@@ -30,10 +30,6 @@ export declare function validatePath(path: string, operation: string): void;
30
30
  * Get the directory name of a normalized virtual path.
31
31
  */
32
32
  export declare function dirname(path: string): string;
33
- /**
34
- * Resolve a relative path against a base directory.
35
- * If `path` is absolute, it is normalized and returned directly.
36
- */
37
33
  export declare function resolvePath(base: string, path: string): string;
38
34
  /**
39
35
  * Join a parent path with a child name.
package/dist/limits.d.ts CHANGED
@@ -107,7 +107,4 @@ export interface ExecutionLimits {
107
107
  export type ExecutionLimitProfile = "normal" | "hardened";
108
108
  /** Liberal default shared by shell and standalone transform entry points. */
109
109
  export declare const DEFAULT_MAX_SOURCE_BYTES: number;
110
- /**
111
- * Resolve execution limits by merging user-provided limits with defaults.
112
- */
113
110
  export declare function resolveLimits(userLimits?: ExecutionLimits, profile?: ExecutionLimitProfile): Required<ExecutionLimits>;
package/dist/types.d.ts CHANGED
@@ -308,6 +308,12 @@ export interface Command {
308
308
  trusted?: boolean;
309
309
  /** @internal Marks host extensions that receive a least-authority budget. */
310
310
  internalIsExtension?: boolean;
311
+ /**
312
+ * Set to true when the command handles --version itself (e.g. python3
313
+ * shows Python's version, not just-bash's). When unset, the dispatch
314
+ * intercepts --version and returns "<cmd> (just-bash)".
315
+ */
316
+ handlesOwnVersion?: boolean;
311
317
  execute(args: string[], ctx: ResolvedCommandContext): Promise<ExecResult>;
312
318
  }
313
319
  export interface RuntimeCommand extends Omit<Command, "execute"> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jerryan/just-bash",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "A simulated bash environment with virtual filesystem",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{b as P,c as O,d as T,e as k}from"./chunk-MBREBDZQ.js";import{f as F}from"./chunk-HWK7KFGB.js";import{l as v,m as w}from"./chunk-FUT3X2GJ.js";import{c as S}from"./chunk-OHFB3M3X.js";import{a as E}from"./chunk-NE4R2FVV.js";import{a as D}from"./chunk-I4IRHQDW.js";import{a as $,b as C}from"./chunk-MUFNRCMY.js";var H={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},I={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},q={name:"cp",async execute(u,e){if(C(u))return $(H);let s=E("cp",u,I);if(!s.ok)return s.error;let d=s.result.flags.recursive||s.result.flags.recursiveUpper,A=s.result.flags.noClobber,N=s.result.flags.preserve,R=s.result.flags.verbose,p=s.result.positional;if(p.length<2)return{stdout:"",stderr:`cp: missing destination file operand
4
- `,exitCode:1};let m=p.pop()??"",g=p,l=e.fs.resolvePath(e.cwd,m),y="",n="",i=0,h=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp"}),f=!1;try{f=(await e.fs.stat(l)).isDirectory}catch{}if(g.length>1&&!f)return{stdout:"",stderr:`cp: target '${m}' is not a directory
5
- `,exitCode:1};for(let t of g)try{let o=e.fs.resolvePath(e.cwd,t),a=await e.fs.stat(o),r=l;if(f){let c=t.split("/").pop()||t;r=l==="/"?`/${c}`:`${l}/${c}`}if(a.isDirectory&&!d){n+=`cp: -r not specified; omitting directory '${t}'
6
- `,i=1;continue}if(a.isDirectory){let c=await O(e.fs,o,r,h);if(F(o,r)||c==="inside"){n+=`cp: cannot copy '${t}' into itself, '${r}'
7
- `,i=1;continue}if(c==="unknown"){n+=`cp: cannot safely determine whether '${r}' is inside '${t}'
8
- `,i=1;continue}}if(A)try{await e.fs.stat(r);continue}catch{}let b=await P(e.fs,o,r);if(b==="same"){n+=`cp: '${t}' and '${r}' are the same file
9
- `,i=1;continue}if(b==="unknown"){n+=`cp: cannot safely determine whether '${t}' and '${r}' are the same file
10
- `,i=1;continue}a.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp",symlinks:"never",budget:h},()=>{}),await e.fs.cp(o,r,{recursive:d}),R&&(y+=`'${t}' -> '${r}'
11
- `)}catch(o){if(o instanceof v||o instanceof w)throw o;let a=D(o);S(o,"ENOENT")?n+=`cp: cannot stat '${t}': No such file or directory
12
- `:n+=`cp: cannot copy '${t}': ${a}
13
- `,i=1}return{stdout:y,stderr:n,exitCode:i}}},J={name:"cp",flags:[{flag:"-r",type:"boolean"},{flag:"-R",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{q as a,J as b};
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{c as i}from"./chunk-OHFB3M3X.js";import{a as m}from"./chunk-PBOVSFTJ.js";import{a as c}from"./chunk-NE4R2FVV.js";import{a as l}from"./chunk-I4IRHQDW.js";var k={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},h={name:"mkdir",async execute(f,s){let r=c("mkdir",f,k);if(!r.ok)return r.error;let g=r.result.flags.recursive,p=r.result.flags.verbose,n=r.result.positional;if(n.length===0)return{stdout:"",stderr:`mkdir: missing operand
4
- `,exitCode:1};let a="",t="",d=0;for(let e of n)try{let o=s.fs.resolvePath(s.cwd,e);await s.fs.mkdir(o,{recursive:g}),p&&(a+=`mkdir: created directory '${e}'
5
- `)}catch(o){let u=l(o);i(o,"ENOENT")?t+=`mkdir: cannot create directory '${e}': No such file or directory
6
- `:i(o,"EEXIST")?t+=`mkdir: cannot create directory '${e}': File exists
7
- `:t+=`mkdir: cannot create directory '${e}': ${m(u)}
8
- `,d=1}return{stdout:a,stderr:t,exitCode:d}}},$={name:"mkdir",flags:[{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0};export{h as a,$ as b};
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a as s}from"./chunk-OHFB3M3X.js";var a=40,f=493,d=420,x=511;function o(n){if(!n||n==="/")return"/";let t=n.endsWith("/")&&n!=="/"?n.slice(0,-1):n;t.startsWith("/")||(t=`/${t}`);let r=t.split("/").filter(i=>i&&i!=="."),e=[];for(let i of r)i===".."?e.pop():e.push(i);return`/${e.join("/")}`||"/"}function m(n,t){let r=o(n),e=o(t);return e===r||r==="/"||e.startsWith(`${r}/`)}function $(n,t){if(n.includes("\0"))throw new s("ENOENT",`path contains null byte, ${t} '${n}'`)}function c(n){let t=o(n);if(t==="/")return"/";let r=t.lastIndexOf("/");return r===0?"/":t.slice(0,r)}function p(n,t){if(t.startsWith("/"))return o(t);let r=n==="/"?`/${t}`:`${n}/${t}`;return o(r)}function E(n){return n.replace(/\\/g,"/")}function l(n,t){return n==="/"?`/${t}`:`${n}/${t}`}function D(n,t){if(t.startsWith("/"))return o(t);let r=c(n);return o(l(r,t))}export{a,f as b,d as c,x as d,o as e,m as f,$ as g,c as h,p as i,E as j,l as k,D as l};
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{b as N,c as O,d as T,e as k}from"./chunk-MBREBDZQ.js";import{f as P}from"./chunk-HWK7KFGB.js";import{l as w,m as $}from"./chunk-FUT3X2GJ.js";import{c as F}from"./chunk-OHFB3M3X.js";import{a as S}from"./chunk-NE4R2FVV.js";import{a as D}from"./chunk-I4IRHQDW.js";import{a as C,b as E}from"./chunk-MUFNRCMY.js";var H={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},I={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},j={name:"mv",async execute(d,e){if(E(d))return C(H);let r=S("mv",d,I);if(!r.ok)return r.error;let v=r.result.flags.force,g=r.result.flags.noClobber,A=r.result.flags.verbose,p=r.result.positional;if(g&&(v=!1),p.length<2)return{stdout:"",stderr:`mv: missing destination file operand
4
- `,exitCode:1};let l=p.pop()??"",u=p,f=e.fs.resolvePath(e.cwd,l),h="",i="",a=0,b=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv"}),m=!1;try{m=(await e.fs.stat(f)).isDirectory}catch{}if(u.length>1&&!m)return{stdout:"",stderr:`mv: target '${l}' is not a directory
5
- `,exitCode:1};for(let t of u)try{let o=e.fs.resolvePath(e.cwd,t),c=await e.fs.stat(o),n=f;if(m){let s=t.split("/").pop()||t;n=f==="/"?`/${s}`:`${f}/${s}`}if(c.isDirectory){let s=await O(e.fs,o,n,b);if(P(o,n)||s==="inside"){i+=`mv: cannot move '${t}' into itself, '${n}'
6
- `,a=1;continue}if(s==="unknown"){i+=`mv: cannot safely determine whether '${n}' is inside '${t}'
7
- `,a=1;continue}}if(g)try{await e.fs.stat(n);continue}catch{}let y=await N(e.fs,o,n);if(y==="same")continue;if(y==="unknown"){i+=`mv: cannot safely determine whether '${t}' and '${n}' are the same file
8
- `,a=1;continue}if(c.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv",symlinks:"never",budget:b},()=>{}),await e.fs.mv(o,n),A){let s=m?`${l}/${t.split("/").pop()||t}`:l;h+=`renamed '${t}' -> '${s}'
9
- `}}catch(o){if(o instanceof w||o instanceof $)throw o;let c=D(o);F(o,"ENOENT")?i+=`mv: cannot stat '${t}': No such file or directory
10
- `:i+=`mv: cannot move '${t}': ${c}
11
- `,a=1}return{stdout:h,stderr:i,exitCode:a}}},G={name:"mv",flags:[{flag:"-f",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{j as a,G as b};
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a as u}from"./chunk-NE4R2FVV.js";import{a as f,b as h}from"./chunk-MUFNRCMY.js";var g={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},w={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},A={name:"which",async execute(s,e){if(h(s))return f(g);let t=u("which",s,w);if(!t.ok)return t.error;let c=t.result.flags.showAll,p=t.result.flags.silent,o=t.result.positional;if(o.length===0)return{stdout:"",stderr:"",exitCode:1};let d=(e.env.get("PATH")||"/usr/bin:/bin").split(":"),n="",a=!0;for(let m of o){let l=!1;for(let r of d){if(!r)continue;let i=e.fs.resolvePath(r,m);if(await e.fs.exists(i)&&(l=!0,p||(n+=`${i}
4
- `),!c))break}l||(a=!1)}return{stdout:n,stderr:"",exitCode:a?0:1}}},v={name:"which",flags:[{flag:"-a",type:"boolean"},{flag:"-s",type:"boolean"}],needsArgs:!0};export{A as a,v as b};
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{b as P,c as O,d as T,e as k}from"./chunk-MBREBDZQ.js";import{f as F}from"./chunk-HWK7KFGB.js";import{l as v,m as w}from"./chunk-FUT3X2GJ.js";import{c as S}from"./chunk-OHFB3M3X.js";import{a as E}from"./chunk-NE4R2FVV.js";import{a as D}from"./chunk-I4IRHQDW.js";import{a as $,b as C}from"./chunk-MUFNRCMY.js";var H={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},I={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},q={name:"cp",async execute(u,e){if(C(u))return $(H);let s=E("cp",u,I);if(!s.ok)return s.error;let d=s.result.flags.recursive||s.result.flags.recursiveUpper,A=s.result.flags.noClobber,N=s.result.flags.preserve,R=s.result.flags.verbose,p=s.result.positional;if(p.length<2)return{stdout:"",stderr:`cp: missing destination file operand
4
- `,exitCode:1};let m=p.pop()??"",g=p,l=e.fs.resolvePath(e.cwd,m),y="",n="",i=0,h=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp"}),f=!1;try{f=(await e.fs.stat(l)).isDirectory}catch{}if(g.length>1&&!f)return{stdout:"",stderr:`cp: target '${m}' is not a directory
5
- `,exitCode:1};for(let t of g)try{let o=e.fs.resolvePath(e.cwd,t),a=await e.fs.stat(o),r=l;if(f){let c=t.split("/").pop()||t;r=l==="/"?`/${c}`:`${l}/${c}`}if(a.isDirectory&&!d){n+=`cp: -r not specified; omitting directory '${t}'
6
- `,i=1;continue}if(a.isDirectory){let c=await O(e.fs,o,r,h);if(F(o,r)||c==="inside"){n+=`cp: cannot copy '${t}' into itself, '${r}'
7
- `,i=1;continue}if(c==="unknown"){n+=`cp: cannot safely determine whether '${r}' is inside '${t}'
8
- `,i=1;continue}}if(A)try{await e.fs.stat(r);continue}catch{}let b=await P(e.fs,o,r);if(b==="same"){n+=`cp: '${t}' and '${r}' are the same file
9
- `,i=1;continue}if(b==="unknown"){n+=`cp: cannot safely determine whether '${t}' and '${r}' are the same file
10
- `,i=1;continue}a.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp",symlinks:"never",budget:h},()=>{}),await e.fs.cp(o,r,{recursive:d}),R&&(y+=`'${t}' -> '${r}'
11
- `)}catch(o){if(o instanceof v||o instanceof w)throw o;let a=D(o);S(o,"ENOENT")?n+=`cp: cannot stat '${t}': No such file or directory
12
- `:n+=`cp: cannot copy '${t}': ${a}
13
- `,i=1}return{stdout:y,stderr:n,exitCode:i}}},J={name:"cp",flags:[{flag:"-r",type:"boolean"},{flag:"-R",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{q as a,J as b};
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{c as i}from"./chunk-OHFB3M3X.js";import{a as m}from"./chunk-PBOVSFTJ.js";import{a as c}from"./chunk-NE4R2FVV.js";import{a as l}from"./chunk-I4IRHQDW.js";var k={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},h={name:"mkdir",async execute(f,s){let r=c("mkdir",f,k);if(!r.ok)return r.error;let g=r.result.flags.recursive,p=r.result.flags.verbose,n=r.result.positional;if(n.length===0)return{stdout:"",stderr:`mkdir: missing operand
4
- `,exitCode:1};let a="",t="",d=0;for(let e of n)try{let o=s.fs.resolvePath(s.cwd,e);await s.fs.mkdir(o,{recursive:g}),p&&(a+=`mkdir: created directory '${e}'
5
- `)}catch(o){let u=l(o);i(o,"ENOENT")?t+=`mkdir: cannot create directory '${e}': No such file or directory
6
- `:i(o,"EEXIST")?t+=`mkdir: cannot create directory '${e}': File exists
7
- `:t+=`mkdir: cannot create directory '${e}': ${m(u)}
8
- `,d=1}return{stdout:a,stderr:t,exitCode:d}}},$={name:"mkdir",flags:[{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0};export{h as a,$ as b};
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a as s}from"./chunk-OHFB3M3X.js";var a=40,f=493,d=420,x=511;function o(n){if(!n||n==="/")return"/";let t=n.endsWith("/")&&n!=="/"?n.slice(0,-1):n;t.startsWith("/")||(t=`/${t}`);let r=t.split("/").filter(i=>i&&i!=="."),e=[];for(let i of r)i===".."?e.pop():e.push(i);return`/${e.join("/")}`||"/"}function m(n,t){let r=o(n),e=o(t);return e===r||r==="/"||e.startsWith(`${r}/`)}function $(n,t){if(n.includes("\0"))throw new s("ENOENT",`path contains null byte, ${t} '${n}'`)}function c(n){let t=o(n);if(t==="/")return"/";let r=t.lastIndexOf("/");return r===0?"/":t.slice(0,r)}function p(n,t){if(t.startsWith("/"))return o(t);let r=n==="/"?`/${t}`:`${n}/${t}`;return o(r)}function E(n){return n.replace(/\\/g,"/")}function l(n,t){return n==="/"?`/${t}`:`${n}/${t}`}function D(n,t){if(t.startsWith("/"))return o(t);let r=c(n);return o(l(r,t))}export{a,f as b,d as c,x as d,o as e,m as f,$ as g,c as h,p as i,E as j,l as k,D as l};
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{b as N,c as O,d as T,e as k}from"./chunk-MBREBDZQ.js";import{f as P}from"./chunk-HWK7KFGB.js";import{l as w,m as $}from"./chunk-FUT3X2GJ.js";import{c as F}from"./chunk-OHFB3M3X.js";import{a as S}from"./chunk-NE4R2FVV.js";import{a as D}from"./chunk-I4IRHQDW.js";import{a as C,b as E}from"./chunk-MUFNRCMY.js";var H={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},I={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},j={name:"mv",async execute(d,e){if(E(d))return C(H);let r=S("mv",d,I);if(!r.ok)return r.error;let v=r.result.flags.force,g=r.result.flags.noClobber,A=r.result.flags.verbose,p=r.result.positional;if(g&&(v=!1),p.length<2)return{stdout:"",stderr:`mv: missing destination file operand
4
- `,exitCode:1};let l=p.pop()??"",u=p,f=e.fs.resolvePath(e.cwd,l),h="",i="",a=0,b=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv"}),m=!1;try{m=(await e.fs.stat(f)).isDirectory}catch{}if(u.length>1&&!m)return{stdout:"",stderr:`mv: target '${l}' is not a directory
5
- `,exitCode:1};for(let t of u)try{let o=e.fs.resolvePath(e.cwd,t),c=await e.fs.stat(o),n=f;if(m){let s=t.split("/").pop()||t;n=f==="/"?`/${s}`:`${f}/${s}`}if(c.isDirectory){let s=await O(e.fs,o,n,b);if(P(o,n)||s==="inside"){i+=`mv: cannot move '${t}' into itself, '${n}'
6
- `,a=1;continue}if(s==="unknown"){i+=`mv: cannot safely determine whether '${n}' is inside '${t}'
7
- `,a=1;continue}}if(g)try{await e.fs.stat(n);continue}catch{}let y=await N(e.fs,o,n);if(y==="same")continue;if(y==="unknown"){i+=`mv: cannot safely determine whether '${t}' and '${n}' are the same file
8
- `,a=1;continue}if(c.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv",symlinks:"never",budget:b},()=>{}),await e.fs.mv(o,n),A){let s=m?`${l}/${t.split("/").pop()||t}`:l;h+=`renamed '${t}' -> '${s}'
9
- `}}catch(o){if(o instanceof w||o instanceof $)throw o;let c=D(o);F(o,"ENOENT")?i+=`mv: cannot stat '${t}': No such file or directory
10
- `:i+=`mv: cannot move '${t}': ${c}
11
- `,a=1}return{stdout:h,stderr:i,exitCode:a}}},G={name:"mv",flags:[{flag:"-f",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{j as a,G as b};
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a as u}from"./chunk-NE4R2FVV.js";import{a as f,b as h}from"./chunk-MUFNRCMY.js";var g={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},w={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},A={name:"which",async execute(s,e){if(h(s))return f(g);let t=u("which",s,w);if(!t.ok)return t.error;let c=t.result.flags.showAll,p=t.result.flags.silent,o=t.result.positional;if(o.length===0)return{stdout:"",stderr:"",exitCode:1};let d=(e.env.get("PATH")||"/usr/bin:/bin").split(":"),n="",a=!0;for(let m of o){let l=!1;for(let r of d){if(!r)continue;let i=e.fs.resolvePath(r,m);if(await e.fs.exists(i)&&(l=!0,p||(n+=`${i}
4
- `),!c))break}l||(a=!1)}return{stdout:n,stderr:"",exitCode:a?0:1}}},v={name:"which",flags:[{flag:"-a",type:"boolean"},{flag:"-s",type:"boolean"}],needsArgs:!0};export{A as a,v as b};
@@ -1,3 +0,0 @@
1
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
- import{a as u}from"./chunk-QIQMJJZ4.js";import{a as f,b as h}from"./chunk-QAYAQNCG.js";var g={name:"which",summary:"locate a command",usage:"which [-as] program ...",options:["-a List all instances of executables found","-s No output, just return 0 if found, 1 if not","--help display this help and exit"]},w={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},A={name:"which",async execute(s,e){if(h(s))return f(g);let t=u("which",s,w);if(!t.ok)return t.error;let c=t.result.flags.showAll,p=t.result.flags.silent,o=t.result.positional;if(o.length===0)return{stdout:"",stderr:"",exitCode:1};let d=(e.env.get("PATH")||"/usr/bin:/bin").split(":"),n="",a=!0;for(let m of o){let l=!1;for(let r of d){if(!r)continue;let i=e.fs.resolvePath(r,m);if(await e.fs.exists(i)&&(l=!0,p||(n+=`${i}
3
- `),!c))break}l||(a=!1)}return{stdout:n,stderr:"",exitCode:a?0:1}}},v={name:"which",flags:[{flag:"-a",type:"boolean"},{flag:"-s",type:"boolean"}],needsArgs:!0};export{A as a,v as b};
@@ -1,12 +0,0 @@
1
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
- import{b as P,c as O,d as T,e as k}from"./chunk-S6DNKKUL.js";import{f as F}from"./chunk-4CC3OZPU.js";import{l as v,m as w}from"./chunk-TVCZIH6M.js";import{c as S}from"./chunk-T5ZEIOJ3.js";import{a as E}from"./chunk-QIQMJJZ4.js";import{a as D}from"./chunk-W5DWRFSU.js";import{a as $,b as C}from"./chunk-QAYAQNCG.js";var H={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},I={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},q={name:"cp",async execute(u,e){if(C(u))return $(H);let s=E("cp",u,I);if(!s.ok)return s.error;let d=s.result.flags.recursive||s.result.flags.recursiveUpper,A=s.result.flags.noClobber,N=s.result.flags.preserve,R=s.result.flags.verbose,p=s.result.positional;if(p.length<2)return{stdout:"",stderr:`cp: missing destination file operand
3
- `,exitCode:1};let m=p.pop()??"",g=p,l=e.fs.resolvePath(e.cwd,m),y="",n="",i=0,h=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp"}),f=!1;try{f=(await e.fs.stat(l)).isDirectory}catch{}if(g.length>1&&!f)return{stdout:"",stderr:`cp: target '${m}' is not a directory
4
- `,exitCode:1};for(let t of g)try{let o=e.fs.resolvePath(e.cwd,t),a=await e.fs.stat(o),r=l;if(f){let c=t.split("/").pop()||t;r=l==="/"?`/${c}`:`${l}/${c}`}if(a.isDirectory&&!d){n+=`cp: -r not specified; omitting directory '${t}'
5
- `,i=1;continue}if(a.isDirectory){let c=await O(e.fs,o,r,h);if(F(o,r)||c==="inside"){n+=`cp: cannot copy '${t}' into itself, '${r}'
6
- `,i=1;continue}if(c==="unknown"){n+=`cp: cannot safely determine whether '${r}' is inside '${t}'
7
- `,i=1;continue}}if(A)try{await e.fs.stat(r);continue}catch{}let b=await P(e.fs,o,r);if(b==="same"){n+=`cp: '${t}' and '${r}' are the same file
8
- `,i=1;continue}if(b==="unknown"){n+=`cp: cannot safely determine whether '${t}' and '${r}' are the same file
9
- `,i=1;continue}a.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"cp",symlinks:"never",budget:h},()=>{}),await e.fs.cp(o,r,{recursive:d}),R&&(y+=`'${t}' -> '${r}'
10
- `)}catch(o){if(o instanceof v||o instanceof w)throw o;let a=D(o);S(o,"ENOENT")?n+=`cp: cannot stat '${t}': No such file or directory
11
- `:n+=`cp: cannot copy '${t}': ${a}
12
- `,i=1}return{stdout:y,stderr:n,exitCode:i}}},J={name:"cp",flags:[{flag:"-r",type:"boolean"},{flag:"-R",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{q as a,J as b};
@@ -1,2 +0,0 @@
1
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
- import{a as s}from"./chunk-T5ZEIOJ3.js";var a=40,f=493,d=420,x=511;function o(n){if(!n||n==="/")return"/";let t=n.endsWith("/")&&n!=="/"?n.slice(0,-1):n;t.startsWith("/")||(t=`/${t}`);let r=t.split("/").filter(i=>i&&i!=="."),e=[];for(let i of r)i===".."?e.pop():e.push(i);return`/${e.join("/")}`||"/"}function m(n,t){let r=o(n),e=o(t);return e===r||r==="/"||e.startsWith(`${r}/`)}function $(n,t){if(n.includes("\0"))throw new s("ENOENT",`path contains null byte, ${t} '${n}'`)}function c(n){let t=o(n);if(t==="/")return"/";let r=t.lastIndexOf("/");return r===0?"/":t.slice(0,r)}function p(n,t){if(t.startsWith("/"))return o(t);let r=n==="/"?`/${t}`:`${n}/${t}`;return o(r)}function E(n){return n.replace(/\\/g,"/")}function l(n,t){return n==="/"?`/${t}`:`${n}/${t}`}function D(n,t){if(t.startsWith("/"))return o(t);let r=c(n);return o(l(r,t))}export{a,f as b,d as c,x as d,o as e,m as f,$ as g,c as h,p as i,E as j,l as k,D as l};
@@ -1,7 +0,0 @@
1
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
- import{c as i}from"./chunk-T5ZEIOJ3.js";import{a as m}from"./chunk-FOCWZZDE.js";import{a as c}from"./chunk-QIQMJJZ4.js";import{a as l}from"./chunk-W5DWRFSU.js";var k={recursive:{short:"p",long:"parents",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},h={name:"mkdir",async execute(f,s){let r=c("mkdir",f,k);if(!r.ok)return r.error;let g=r.result.flags.recursive,p=r.result.flags.verbose,n=r.result.positional;if(n.length===0)return{stdout:"",stderr:`mkdir: missing operand
3
- `,exitCode:1};let a="",t="",d=0;for(let e of n)try{let o=s.fs.resolvePath(s.cwd,e);await s.fs.mkdir(o,{recursive:g}),p&&(a+=`mkdir: created directory '${e}'
4
- `)}catch(o){let u=l(o);i(o,"ENOENT")?t+=`mkdir: cannot create directory '${e}': No such file or directory
5
- `:i(o,"EEXIST")?t+=`mkdir: cannot create directory '${e}': File exists
6
- `:t+=`mkdir: cannot create directory '${e}': ${m(u)}
7
- `,d=1}return{stdout:a,stderr:t,exitCode:d}}},$={name:"mkdir",flags:[{flag:"-p",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0};export{h as a,$ as b};
@@ -1,10 +0,0 @@
1
- import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
- import{b as N,c as O,d as T,e as k}from"./chunk-S6DNKKUL.js";import{f as P}from"./chunk-4CC3OZPU.js";import{l as w,m as $}from"./chunk-TVCZIH6M.js";import{c as F}from"./chunk-T5ZEIOJ3.js";import{a as S}from"./chunk-QIQMJJZ4.js";import{a as D}from"./chunk-W5DWRFSU.js";import{a as C,b as E}from"./chunk-QAYAQNCG.js";var H={name:"mv",summary:"move (rename) files",usage:"mv [OPTION]... SOURCE... DEST",options:["-f, --force do not prompt before overwriting","-n, --no-clobber do not overwrite an existing file","-v, --verbose explain what is being done"," --help display this help and exit"]},I={force:{short:"f",long:"force",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},j={name:"mv",async execute(d,e){if(E(d))return C(H);let r=S("mv",d,I);if(!r.ok)return r.error;let v=r.result.flags.force,g=r.result.flags.noClobber,A=r.result.flags.verbose,p=r.result.positional;if(g&&(v=!1),p.length<2)return{stdout:"",stderr:`mv: missing destination file operand
3
- `,exitCode:1};let l=p.pop()??"",u=p,f=e.fs.resolvePath(e.cwd,l),h="",i="",a=0,b=new T({limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv"}),m=!1;try{m=(await e.fs.stat(f)).isDirectory}catch{}if(u.length>1&&!m)return{stdout:"",stderr:`mv: target '${l}' is not a directory
4
- `,exitCode:1};for(let t of u)try{let o=e.fs.resolvePath(e.cwd,t),c=await e.fs.stat(o),n=f;if(m){let s=t.split("/").pop()||t;n=f==="/"?`/${s}`:`${f}/${s}`}if(c.isDirectory){let s=await O(e.fs,o,n,b);if(P(o,n)||s==="inside"){i+=`mv: cannot move '${t}' into itself, '${n}'
5
- `,a=1;continue}if(s==="unknown"){i+=`mv: cannot safely determine whether '${n}' is inside '${t}'
6
- `,a=1;continue}}if(g)try{await e.fs.stat(n);continue}catch{}let y=await N(e.fs,o,n);if(y==="same")continue;if(y==="unknown"){i+=`mv: cannot safely determine whether '${t}' and '${n}' are the same file
7
- `,a=1;continue}if(c.isDirectory&&await k({fs:e.fs,root:o,limits:e.limits,signal:e.signal,executionScope:e.executionScope,site:"mv",symlinks:"never",budget:b},()=>{}),await e.fs.mv(o,n),A){let s=m?`${l}/${t.split("/").pop()||t}`:l;h+=`renamed '${t}' -> '${s}'
8
- `}}catch(o){if(o instanceof w||o instanceof $)throw o;let c=D(o);F(o,"ENOENT")?i+=`mv: cannot stat '${t}': No such file or directory
9
- `:i+=`mv: cannot move '${t}': ${c}
10
- `,a=1}return{stdout:h,stderr:i,exitCode:a}}},G={name:"mv",flags:[{flag:"-f",type:"boolean"},{flag:"-n",type:"boolean"},{flag:"-v",type:"boolean"}],needsArgs:!0,minArgs:2};export{j as a,G as b};