shell-dsl 0.0.7 → 0.0.8

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 (197) hide show
  1. package/README.md +3 -1
  2. package/dist/cjs/index.cjs +14 -4
  3. package/dist/cjs/index.cjs.map +3 -3
  4. package/dist/cjs/package.json +1 -1
  5. package/dist/cjs/src/commands/awk/awk.cjs +276 -0
  6. package/dist/cjs/src/commands/awk/awk.cjs.map +10 -0
  7. package/dist/cjs/src/commands/break-continue/break-continue.cjs +56 -0
  8. package/dist/cjs/src/commands/break-continue/break-continue.cjs.map +10 -0
  9. package/dist/cjs/src/commands/cat/cat.cjs +57 -0
  10. package/dist/cjs/src/commands/cat/cat.cjs.map +10 -0
  11. package/dist/cjs/src/commands/cp/cp.cjs +126 -0
  12. package/dist/cjs/src/commands/cp/cp.cjs.map +10 -0
  13. package/dist/cjs/src/commands/echo/echo.cjs +50 -0
  14. package/dist/cjs/src/commands/echo/echo.cjs.map +10 -0
  15. package/dist/cjs/src/commands/find/find.cjs +251 -0
  16. package/dist/cjs/src/commands/find/find.cjs.map +10 -0
  17. package/dist/cjs/src/commands/grep/grep.cjs +510 -0
  18. package/dist/cjs/src/commands/grep/grep.cjs.map +10 -0
  19. package/dist/cjs/src/commands/head/head.cjs +95 -0
  20. package/dist/cjs/src/commands/head/head.cjs.map +10 -0
  21. package/dist/cjs/src/commands/index.cjs +136 -0
  22. package/dist/cjs/src/commands/index.cjs.map +10 -0
  23. package/dist/cjs/src/commands/ls/ls.cjs +119 -0
  24. package/dist/cjs/src/commands/ls/ls.cjs.map +10 -0
  25. package/dist/cjs/src/commands/mkdir/mkdir.cjs +64 -0
  26. package/dist/cjs/src/commands/mkdir/mkdir.cjs.map +10 -0
  27. package/dist/cjs/src/commands/mv/mv.cjs +118 -0
  28. package/dist/cjs/src/commands/mv/mv.cjs.map +10 -0
  29. package/dist/cjs/src/commands/pwd/pwd.cjs +41 -0
  30. package/dist/cjs/src/commands/pwd/pwd.cjs.map +10 -0
  31. package/dist/cjs/src/commands/rm/rm.cjs +82 -0
  32. package/dist/cjs/src/commands/rm/rm.cjs.map +10 -0
  33. package/dist/cjs/src/commands/sed/sed.cjs +218 -0
  34. package/dist/cjs/src/commands/sed/sed.cjs.map +10 -0
  35. package/dist/cjs/src/commands/sort/sort.cjs +105 -0
  36. package/dist/cjs/src/commands/sort/sort.cjs.map +10 -0
  37. package/dist/cjs/src/commands/tail/tail.cjs +95 -0
  38. package/dist/cjs/src/commands/tail/tail.cjs.map +10 -0
  39. package/dist/cjs/src/commands/tee/tee.cjs +65 -0
  40. package/dist/cjs/src/commands/tee/tee.cjs.map +10 -0
  41. package/dist/cjs/src/commands/test/test.cjs +148 -0
  42. package/dist/cjs/src/commands/test/test.cjs.map +10 -0
  43. package/dist/cjs/src/commands/touch/touch.cjs +70 -0
  44. package/dist/cjs/src/commands/touch/touch.cjs.map +10 -0
  45. package/dist/cjs/src/commands/tree/tree.cjs +161 -0
  46. package/dist/cjs/src/commands/tree/tree.cjs.map +10 -0
  47. package/dist/cjs/src/commands/true-false/true-false.cjs +43 -0
  48. package/dist/cjs/src/commands/true-false/true-false.cjs.map +10 -0
  49. package/dist/cjs/src/commands/uniq/uniq.cjs +116 -0
  50. package/dist/cjs/src/commands/uniq/uniq.cjs.map +10 -0
  51. package/dist/cjs/src/commands/wc/wc.cjs +116 -0
  52. package/dist/cjs/src/commands/wc/wc.cjs.map +10 -0
  53. package/dist/cjs/src/index.cjs +10 -2
  54. package/dist/cjs/src/index.cjs.map +3 -3
  55. package/dist/cjs/src/interpreter/index.cjs +4 -2
  56. package/dist/cjs/src/interpreter/index.cjs.map +3 -3
  57. package/dist/cjs/src/interpreter/interpreter.cjs +381 -2
  58. package/dist/cjs/src/interpreter/interpreter.cjs.map +3 -3
  59. package/dist/cjs/src/lexer/index.cjs +3 -2
  60. package/dist/cjs/src/lexer/index.cjs.map +3 -3
  61. package/dist/cjs/src/lexer/lexer.cjs +202 -7
  62. package/dist/cjs/src/lexer/lexer.cjs.map +3 -3
  63. package/dist/cjs/src/lexer/tokens.cjs +31 -2
  64. package/dist/cjs/src/lexer/tokens.cjs.map +3 -3
  65. package/dist/cjs/src/parser/ast.cjs +25 -1
  66. package/dist/cjs/src/parser/ast.cjs.map +3 -3
  67. package/dist/cjs/src/parser/index.cjs +7 -1
  68. package/dist/cjs/src/parser/index.cjs.map +3 -3
  69. package/dist/cjs/src/parser/parser.cjs +211 -7
  70. package/dist/cjs/src/parser/parser.cjs.map +3 -3
  71. package/dist/cjs/src/shell-dsl.cjs +2 -2
  72. package/dist/cjs/src/shell-dsl.cjs.map +3 -3
  73. package/dist/mjs/index.mjs +25 -5
  74. package/dist/mjs/index.mjs.map +3 -3
  75. package/dist/mjs/package.json +1 -1
  76. package/dist/mjs/src/commands/awk/awk.mjs +246 -0
  77. package/dist/mjs/src/commands/awk/awk.mjs.map +10 -0
  78. package/dist/mjs/src/commands/break-continue/break-continue.mjs +26 -0
  79. package/dist/mjs/src/commands/break-continue/break-continue.mjs.map +10 -0
  80. package/dist/mjs/src/commands/cat/cat.mjs +27 -0
  81. package/dist/mjs/src/commands/cat/cat.mjs.map +10 -0
  82. package/dist/mjs/src/commands/cp/cp.mjs +96 -0
  83. package/dist/mjs/src/commands/cp/cp.mjs.map +10 -0
  84. package/dist/mjs/src/commands/echo/echo.mjs +20 -0
  85. package/dist/mjs/src/commands/echo/echo.mjs.map +10 -0
  86. package/dist/mjs/src/commands/find/find.mjs +221 -0
  87. package/dist/mjs/src/commands/find/find.mjs.map +10 -0
  88. package/dist/mjs/src/commands/grep/grep.mjs +480 -0
  89. package/dist/mjs/src/commands/grep/grep.mjs.map +10 -0
  90. package/dist/mjs/src/commands/head/head.mjs +65 -0
  91. package/dist/mjs/src/commands/head/head.mjs.map +10 -0
  92. package/dist/mjs/src/commands/index.mjs +106 -0
  93. package/dist/mjs/src/commands/index.mjs.map +10 -0
  94. package/dist/mjs/src/commands/ls/ls.mjs +89 -0
  95. package/dist/mjs/src/commands/ls/ls.mjs.map +10 -0
  96. package/dist/mjs/src/commands/mkdir/mkdir.mjs +34 -0
  97. package/dist/mjs/src/commands/mkdir/mkdir.mjs.map +10 -0
  98. package/dist/mjs/src/commands/mv/mv.mjs +88 -0
  99. package/dist/mjs/src/commands/mv/mv.mjs.map +10 -0
  100. package/dist/mjs/src/commands/pwd/pwd.mjs +11 -0
  101. package/dist/mjs/src/commands/pwd/pwd.mjs.map +10 -0
  102. package/dist/mjs/src/commands/rm/rm.mjs +52 -0
  103. package/dist/mjs/src/commands/rm/rm.mjs.map +10 -0
  104. package/dist/mjs/src/commands/sed/sed.mjs +188 -0
  105. package/dist/mjs/src/commands/sed/sed.mjs.map +10 -0
  106. package/dist/mjs/src/commands/sort/sort.mjs +75 -0
  107. package/dist/mjs/src/commands/sort/sort.mjs.map +10 -0
  108. package/dist/mjs/src/commands/tail/tail.mjs +65 -0
  109. package/dist/mjs/src/commands/tail/tail.mjs.map +10 -0
  110. package/dist/mjs/src/commands/tee/tee.mjs +35 -0
  111. package/dist/mjs/src/commands/tee/tee.mjs.map +10 -0
  112. package/dist/mjs/src/commands/test/test.mjs +118 -0
  113. package/dist/mjs/src/commands/test/test.mjs.map +10 -0
  114. package/dist/mjs/src/commands/touch/touch.mjs +40 -0
  115. package/dist/mjs/src/commands/touch/touch.mjs.map +10 -0
  116. package/dist/mjs/src/commands/tree/tree.mjs +131 -0
  117. package/dist/mjs/src/commands/tree/tree.mjs.map +10 -0
  118. package/dist/mjs/src/commands/true-false/true-false.mjs +13 -0
  119. package/dist/mjs/src/commands/true-false/true-false.mjs.map +10 -0
  120. package/dist/mjs/src/commands/uniq/uniq.mjs +86 -0
  121. package/dist/mjs/src/commands/uniq/uniq.mjs.map +10 -0
  122. package/dist/mjs/src/commands/wc/wc.mjs +86 -0
  123. package/dist/mjs/src/commands/wc/wc.mjs.map +10 -0
  124. package/dist/mjs/src/index.mjs +18 -4
  125. package/dist/mjs/src/index.mjs.map +3 -3
  126. package/dist/mjs/src/interpreter/index.mjs +5 -3
  127. package/dist/mjs/src/interpreter/index.mjs.map +2 -2
  128. package/dist/mjs/src/interpreter/interpreter.mjs +381 -2
  129. package/dist/mjs/src/interpreter/interpreter.mjs.map +3 -3
  130. package/dist/mjs/src/lexer/index.mjs +4 -3
  131. package/dist/mjs/src/lexer/index.mjs.map +2 -2
  132. package/dist/mjs/src/lexer/lexer.mjs +202 -7
  133. package/dist/mjs/src/lexer/lexer.mjs.map +3 -3
  134. package/dist/mjs/src/lexer/tokens.mjs +31 -2
  135. package/dist/mjs/src/lexer/tokens.mjs.map +3 -3
  136. package/dist/mjs/src/parser/ast.mjs +25 -1
  137. package/dist/mjs/src/parser/ast.mjs.map +3 -3
  138. package/dist/mjs/src/parser/index.mjs +14 -2
  139. package/dist/mjs/src/parser/index.mjs.map +3 -3
  140. package/dist/mjs/src/parser/parser.mjs +211 -7
  141. package/dist/mjs/src/parser/parser.mjs.map +3 -3
  142. package/dist/mjs/src/shell-dsl.mjs +2 -2
  143. package/dist/mjs/src/shell-dsl.mjs.map +3 -3
  144. package/dist/types/index.d.ts +2 -2
  145. package/dist/types/src/commands/awk/awk.d.ts +2 -0
  146. package/dist/types/src/commands/break-continue/break-continue.d.ts +3 -0
  147. package/dist/types/src/commands/cat/cat.d.ts +2 -0
  148. package/dist/types/src/commands/cp/cp.d.ts +2 -0
  149. package/dist/types/src/commands/echo/echo.d.ts +2 -0
  150. package/dist/types/src/commands/find/find.d.ts +2 -0
  151. package/dist/types/src/commands/grep/grep.d.ts +2 -0
  152. package/dist/types/src/commands/head/head.d.ts +2 -0
  153. package/dist/types/src/commands/index.d.ts +25 -0
  154. package/dist/types/src/commands/ls/ls.d.ts +2 -0
  155. package/dist/types/src/commands/mkdir/mkdir.d.ts +2 -0
  156. package/dist/types/src/commands/mv/mv.d.ts +2 -0
  157. package/dist/types/src/commands/pwd/pwd.d.ts +2 -0
  158. package/dist/types/src/commands/rm/rm.d.ts +2 -0
  159. package/dist/types/src/commands/sed/sed.d.ts +2 -0
  160. package/dist/types/src/commands/sort/sort.d.ts +2 -0
  161. package/dist/types/src/commands/tail/tail.d.ts +2 -0
  162. package/dist/types/src/commands/tee/tee.d.ts +2 -0
  163. package/dist/types/{commands → src/commands/test}/test.d.ts +1 -1
  164. package/dist/types/src/commands/touch/touch.d.ts +2 -0
  165. package/dist/types/src/commands/tree/tree.d.ts +2 -0
  166. package/dist/types/{commands → src/commands/true-false}/true-false.d.ts +1 -1
  167. package/dist/types/src/commands/uniq/uniq.d.ts +2 -0
  168. package/dist/types/src/commands/wc/wc.d.ts +2 -0
  169. package/dist/types/src/index.d.ts +3 -3
  170. package/dist/types/src/interpreter/index.d.ts +1 -1
  171. package/dist/types/src/interpreter/interpreter.d.ts +18 -0
  172. package/dist/types/src/lexer/index.d.ts +2 -2
  173. package/dist/types/src/lexer/lexer.d.ts +11 -2
  174. package/dist/types/src/lexer/tokens.d.ts +16 -0
  175. package/dist/types/src/parser/ast.d.ts +46 -1
  176. package/dist/types/src/parser/index.d.ts +2 -2
  177. package/dist/types/src/parser/parser.d.ts +14 -0
  178. package/package.json +1 -1
  179. package/dist/types/commands/cat.d.ts +0 -2
  180. package/dist/types/commands/cp.d.ts +0 -2
  181. package/dist/types/commands/echo.d.ts +0 -2
  182. package/dist/types/commands/find.d.ts +0 -2
  183. package/dist/types/commands/grep.d.ts +0 -2
  184. package/dist/types/commands/head.d.ts +0 -2
  185. package/dist/types/commands/index.d.ts +0 -22
  186. package/dist/types/commands/ls.d.ts +0 -2
  187. package/dist/types/commands/mkdir.d.ts +0 -2
  188. package/dist/types/commands/mv.d.ts +0 -2
  189. package/dist/types/commands/pwd.d.ts +0 -2
  190. package/dist/types/commands/rm.d.ts +0 -2
  191. package/dist/types/commands/sort.d.ts +0 -2
  192. package/dist/types/commands/tail.d.ts +0 -2
  193. package/dist/types/commands/tee.d.ts +0 -2
  194. package/dist/types/commands/touch.d.ts +0 -2
  195. package/dist/types/commands/tree.d.ts +0 -2
  196. package/dist/types/commands/uniq.d.ts +0 -2
  197. package/dist/types/commands/wc.d.ts +0 -2
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/commands/head/head.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../../types.cjs\";\n\nexport const head: Command = async (ctx) => {\n let numLines = 10;\n const files: string[] = [];\n\n // Parse arguments\n for (let i = 0; i < ctx.args.length; i++) {\n const arg = ctx.args[i]!;\n if (arg === \"-n\" && ctx.args[i + 1]) {\n numLines = parseInt(ctx.args[i + 1]!, 10);\n i++;\n } else if (arg.startsWith(\"-n\")) {\n numLines = parseInt(arg.slice(2), 10);\n } else if (arg.startsWith(\"-\") && /^\\d+$/.test(arg.slice(1))) {\n numLines = parseInt(arg.slice(1), 10);\n } else if (!arg.startsWith(\"-\")) {\n files.push(arg);\n }\n }\n\n if (isNaN(numLines) || numLines < 0) {\n await ctx.stderr.writeText(\"head: invalid number of lines\\n\");\n return 1;\n }\n\n const outputLines = async (content: string) => {\n const lines = content.split(\"\\n\");\n const toOutput = lines.slice(0, numLines);\n for (let i = 0; i < toOutput.length; i++) {\n await ctx.stdout.writeText(toOutput[i]!);\n if (i < toOutput.length - 1 || (lines.length > numLines)) {\n await ctx.stdout.writeText(\"\\n\");\n }\n }\n };\n\n if (files.length === 0) {\n // Read from stdin\n const content = await ctx.stdin.text();\n await outputLines(content);\n } else {\n for (let i = 0; i < files.length; i++) {\n const file = files[i]!;\n try {\n if (files.length > 1) {\n if (i > 0) await ctx.stdout.writeText(\"\\n\");\n await ctx.stdout.writeText(`==> ${file} <==\\n`);\n }\n const path = ctx.fs.resolve(ctx.cwd, file);\n const content = (await ctx.fs.readFile(path)).toString();\n await outputLines(content);\n } catch (err) {\n await ctx.stderr.writeText(`head: ${file}: No such file or directory\\n`);\n return 1;\n }\n }\n }\n\n return 0;\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,OAAgB,OAAO,QAAQ;AAAA,EAC1C,IAAI,WAAW;AAAA,EACf,MAAM,QAAkB,CAAC;AAAA,EAGzB,SAAS,IAAI,EAAG,IAAI,IAAI,KAAK,QAAQ,KAAK;AAAA,IACxC,MAAM,MAAM,IAAI,KAAK;AAAA,IACrB,IAAI,QAAQ,QAAQ,IAAI,KAAK,IAAI,IAAI;AAAA,MACnC,WAAW,SAAS,IAAI,KAAK,IAAI,IAAK,EAAE;AAAA,MACxC;AAAA,IACF,EAAO,SAAI,IAAI,WAAW,IAAI,GAAG;AAAA,MAC/B,WAAW,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE;AAAA,IACtC,EAAO,SAAI,IAAI,WAAW,GAAG,KAAK,QAAQ,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG;AAAA,MAC5D,WAAW,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE;AAAA,IACtC,EAAO,SAAI,CAAC,IAAI,WAAW,GAAG,GAAG;AAAA,MAC/B,MAAM,KAAK,GAAG;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,IAAI,MAAM,QAAQ,KAAK,WAAW,GAAG;AAAA,IACnC,MAAM,IAAI,OAAO,UAAU;AAAA,CAAiC;AAAA,IAC5D,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,OAAO,YAAoB;AAAA,IAC7C,MAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAAA,IAChC,MAAM,WAAW,MAAM,MAAM,GAAG,QAAQ;AAAA,IACxC,SAAS,IAAI,EAAG,IAAI,SAAS,QAAQ,KAAK;AAAA,MACxC,MAAM,IAAI,OAAO,UAAU,SAAS,EAAG;AAAA,MACvC,IAAI,IAAI,SAAS,SAAS,KAAM,MAAM,SAAS,UAAW;AAAA,QACxD,MAAM,IAAI,OAAO,UAAU;AAAA,CAAI;AAAA,MACjC;AAAA,IACF;AAAA;AAAA,EAGF,IAAI,MAAM,WAAW,GAAG;AAAA,IAEtB,MAAM,UAAU,MAAM,IAAI,MAAM,KAAK;AAAA,IACrC,MAAM,YAAY,OAAO;AAAA,EAC3B,EAAO;AAAA,IACL,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,MAAM,OAAO,MAAM;AAAA,MACnB,IAAI;AAAA,QACF,IAAI,MAAM,SAAS,GAAG;AAAA,UACpB,IAAI,IAAI;AAAA,YAAG,MAAM,IAAI,OAAO,UAAU;AAAA,CAAI;AAAA,UAC1C,MAAM,IAAI,OAAO,UAAU,OAAO;AAAA,CAAY;AAAA,QAChD;AAAA,QACA,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,IAAI;AAAA,QACzC,MAAM,WAAW,MAAM,IAAI,GAAG,SAAS,IAAI,GAAG,SAAS;AAAA,QACvD,MAAM,YAAY,OAAO;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,MAAM,IAAI,OAAO,UAAU,SAAS;AAAA,CAAmC;AAAA,QACvE,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,EAGF,OAAO;AAAA;",
8
+ "debugId": "3CCE7B78F55717AA64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,136 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/index.ts
30
+ var exports_commands = {};
31
+ __export(exports_commands, {
32
+ wc: () => import_wc.wc,
33
+ uniq: () => import_uniq.uniq,
34
+ trueCmd: () => import_true_false.trueCmd,
35
+ tree: () => import_tree.tree,
36
+ touch: () => import_touch.touch,
37
+ test: () => import_test.test,
38
+ tee: () => import_tee.tee,
39
+ tail: () => import_tail.tail,
40
+ sort: () => import_sort.sort,
41
+ sed: () => import_sed.sed,
42
+ rm: () => import_rm.rm,
43
+ pwd: () => import_pwd.pwd,
44
+ mv: () => import_mv.mv,
45
+ mkdir: () => import_mkdir.mkdir,
46
+ ls: () => import_ls.ls,
47
+ head: () => import_head.head,
48
+ grep: () => import_grep.grep,
49
+ find: () => import_find.find,
50
+ falseCmd: () => import_true_false.falseCmd,
51
+ echo: () => import_echo.echo,
52
+ cp: () => import_cp.cp,
53
+ continueCmd: () => import_break_continue.continueCmd,
54
+ cat: () => import_cat.cat,
55
+ builtinCommands: () => builtinCommands,
56
+ breakCmd: () => import_break_continue.breakCmd,
57
+ bracket: () => import_test.bracket,
58
+ awk: () => import_awk.awk
59
+ });
60
+ module.exports = __toCommonJS(exports_commands);
61
+ var import_echo = require("./echo/echo.cjs");
62
+ var import_cat = require("./cat/cat.cjs");
63
+ var import_grep = require("./grep/grep.cjs");
64
+ var import_wc = require("./wc/wc.cjs");
65
+ var import_head = require("./head/head.cjs");
66
+ var import_tail = require("./tail/tail.cjs");
67
+ var import_sort = require("./sort/sort.cjs");
68
+ var import_uniq = require("./uniq/uniq.cjs");
69
+ var import_pwd = require("./pwd/pwd.cjs");
70
+ var import_ls = require("./ls/ls.cjs");
71
+ var import_mkdir = require("./mkdir/mkdir.cjs");
72
+ var import_rm = require("./rm/rm.cjs");
73
+ var import_test = require("./test/test.cjs");
74
+ var import_true_false = require("./true-false/true-false.cjs");
75
+ var import_touch = require("./touch/touch.cjs");
76
+ var import_cp = require("./cp/cp.cjs");
77
+ var import_mv = require("./mv/mv.cjs");
78
+ var import_tee = require("./tee/tee.cjs");
79
+ var import_tree = require("./tree/tree.cjs");
80
+ var import_find = require("./find/find.cjs");
81
+ var import_sed = require("./sed/sed.cjs");
82
+ var import_awk = require("./awk/awk.cjs");
83
+ var import_break_continue = require("./break-continue/break-continue.cjs");
84
+ var import_echo2 = require("./echo/echo.cjs");
85
+ var import_cat2 = require("./cat/cat.cjs");
86
+ var import_grep2 = require("./grep/grep.cjs");
87
+ var import_wc2 = require("./wc/wc.cjs");
88
+ var import_head2 = require("./head/head.cjs");
89
+ var import_tail2 = require("./tail/tail.cjs");
90
+ var import_sort2 = require("./sort/sort.cjs");
91
+ var import_uniq2 = require("./uniq/uniq.cjs");
92
+ var import_pwd2 = require("./pwd/pwd.cjs");
93
+ var import_ls2 = require("./ls/ls.cjs");
94
+ var import_mkdir2 = require("./mkdir/mkdir.cjs");
95
+ var import_rm2 = require("./rm/rm.cjs");
96
+ var import_test2 = require("./test/test.cjs");
97
+ var import_true_false2 = require("./true-false/true-false.cjs");
98
+ var import_touch2 = require("./touch/touch.cjs");
99
+ var import_cp2 = require("./cp/cp.cjs");
100
+ var import_mv2 = require("./mv/mv.cjs");
101
+ var import_tee2 = require("./tee/tee.cjs");
102
+ var import_tree2 = require("./tree/tree.cjs");
103
+ var import_find2 = require("./find/find.cjs");
104
+ var import_sed2 = require("./sed/sed.cjs");
105
+ var import_awk2 = require("./awk/awk.cjs");
106
+ var import_break_continue2 = require("./break-continue/break-continue.cjs");
107
+ var builtinCommands = {
108
+ echo: import_echo2.echo,
109
+ cat: import_cat2.cat,
110
+ grep: import_grep2.grep,
111
+ wc: import_wc2.wc,
112
+ head: import_head2.head,
113
+ tail: import_tail2.tail,
114
+ sort: import_sort2.sort,
115
+ uniq: import_uniq2.uniq,
116
+ pwd: import_pwd2.pwd,
117
+ ls: import_ls2.ls,
118
+ mkdir: import_mkdir2.mkdir,
119
+ rm: import_rm2.rm,
120
+ test: import_test2.test,
121
+ "[": import_test2.bracket,
122
+ true: import_true_false2.trueCmd,
123
+ false: import_true_false2.falseCmd,
124
+ touch: import_touch2.touch,
125
+ cp: import_cp2.cp,
126
+ mv: import_mv2.mv,
127
+ tee: import_tee2.tee,
128
+ tree: import_tree2.tree,
129
+ find: import_find2.find,
130
+ sed: import_sed2.sed,
131
+ awk: import_awk2.awk,
132
+ break: import_break_continue2.breakCmd,
133
+ continue: import_break_continue2.continueCmd
134
+ };
135
+
136
+ //# debugId=F1816D58DF18154264756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/commands/index.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../types.cjs\";\n\nexport { echo } from \"./echo/echo.cjs\";\nexport { cat } from \"./cat/cat.cjs\";\nexport { grep } from \"./grep/grep.cjs\";\nexport { wc } from \"./wc/wc.cjs\";\nexport { head } from \"./head/head.cjs\";\nexport { tail } from \"./tail/tail.cjs\";\nexport { sort } from \"./sort/sort.cjs\";\nexport { uniq } from \"./uniq/uniq.cjs\";\nexport { pwd } from \"./pwd/pwd.cjs\";\nexport { ls } from \"./ls/ls.cjs\";\nexport { mkdir } from \"./mkdir/mkdir.cjs\";\nexport { rm } from \"./rm/rm.cjs\";\nexport { test, bracket } from \"./test/test.cjs\";\nexport { trueCmd, falseCmd } from \"./true-false/true-false.cjs\";\nexport { touch } from \"./touch/touch.cjs\";\nexport { cp } from \"./cp/cp.cjs\";\nexport { mv } from \"./mv/mv.cjs\";\nexport { tee } from \"./tee/tee.cjs\";\nexport { tree } from \"./tree/tree.cjs\";\nexport { find } from \"./find/find.cjs\";\nexport { sed } from \"./sed/sed.cjs\";\nexport { awk } from \"./awk/awk.cjs\";\nexport { breakCmd, continueCmd } from \"./break-continue/break-continue.cjs\";\n\n// Re-export all commands as a bundle\nimport { echo } from \"./echo/echo.cjs\";\nimport { cat } from \"./cat/cat.cjs\";\nimport { grep } from \"./grep/grep.cjs\";\nimport { wc } from \"./wc/wc.cjs\";\nimport { head } from \"./head/head.cjs\";\nimport { tail } from \"./tail/tail.cjs\";\nimport { sort } from \"./sort/sort.cjs\";\nimport { uniq } from \"./uniq/uniq.cjs\";\nimport { pwd } from \"./pwd/pwd.cjs\";\nimport { ls } from \"./ls/ls.cjs\";\nimport { mkdir } from \"./mkdir/mkdir.cjs\";\nimport { rm } from \"./rm/rm.cjs\";\nimport { test, bracket } from \"./test/test.cjs\";\nimport { trueCmd, falseCmd } from \"./true-false/true-false.cjs\";\nimport { touch } from \"./touch/touch.cjs\";\nimport { cp } from \"./cp/cp.cjs\";\nimport { mv } from \"./mv/mv.cjs\";\nimport { tee } from \"./tee/tee.cjs\";\nimport { tree } from \"./tree/tree.cjs\";\nimport { find } from \"./find/find.cjs\";\nimport { sed } from \"./sed/sed.cjs\";\nimport { awk } from \"./awk/awk.cjs\";\nimport { breakCmd, continueCmd } from \"./break-continue/break-continue.cjs\";\n\nexport const builtinCommands: Record<string, Command> = {\n echo,\n cat,\n grep,\n wc,\n head,\n tail,\n sort,\n uniq,\n pwd,\n ls,\n mkdir,\n rm,\n test,\n \"[\": bracket,\n true: trueCmd,\n false: falseCmd,\n touch,\n cp,\n mv,\n tee,\n tree,\n find,\n sed,\n awk,\n break: breakCmd,\n continue: continueCmd,\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEqB,IAArB;AACoB,IAApB;AACqB,IAArB;AACmB,IAAnB;AACqB,IAArB;AACqB,IAArB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACmB,IAAnB;AACsB,IAAtB;AACmB,IAAnB;AAC8B,IAA9B;AACkC,IAAlC;AACsB,IAAtB;AACmB,IAAnB;AACmB,IAAnB;AACoB,IAApB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACoB,IAApB;AACsC,IAAtC;AAGqB,IAArB;AACoB,IAApB;AACqB,IAArB;AACmB,IAAnB;AACqB,IAArB;AACqB,IAArB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACmB,IAAnB;AACsB,IAAtB;AACmB,IAAnB;AAC8B,IAA9B;AACkC,IAAlC;AACsB,IAAtB;AACmB,IAAnB;AACmB,IAAnB;AACoB,IAApB;AACqB,IAArB;AACqB,IAArB;AACoB,IAApB;AACoB,IAApB;AACsC,IAAtC;AAEO,IAAM,kBAA2C;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AACZ;",
8
+ "debugId": "F1816D58DF18154264756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,119 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/ls/ls.ts
30
+ var exports_ls = {};
31
+ __export(exports_ls, {
32
+ ls: () => ls
33
+ });
34
+ module.exports = __toCommonJS(exports_ls);
35
+ var ls = async (ctx) => {
36
+ let showAll = false;
37
+ let longFormat = false;
38
+ let onePerLine = false;
39
+ const paths = [];
40
+ for (const arg of ctx.args) {
41
+ if (arg === "-a" || arg === "--all") {
42
+ showAll = true;
43
+ } else if (arg === "-l") {
44
+ longFormat = true;
45
+ } else if (arg === "-1") {
46
+ onePerLine = true;
47
+ } else if (arg.startsWith("-")) {
48
+ for (const flag of arg.slice(1)) {
49
+ if (flag === "a")
50
+ showAll = true;
51
+ else if (flag === "l")
52
+ longFormat = true;
53
+ else if (flag === "1")
54
+ onePerLine = true;
55
+ }
56
+ } else {
57
+ paths.push(arg);
58
+ }
59
+ }
60
+ if (paths.length === 0) {
61
+ paths.push(".");
62
+ }
63
+ for (let i = 0;i < paths.length; i++) {
64
+ const pathArg = paths[i];
65
+ const path = ctx.fs.resolve(ctx.cwd, pathArg);
66
+ try {
67
+ const stat = await ctx.fs.stat(path);
68
+ if (stat.isFile()) {
69
+ await ctx.stdout.writeText(ctx.fs.basename(path) + `
70
+ `);
71
+ continue;
72
+ }
73
+ if (paths.length > 1) {
74
+ if (i > 0)
75
+ await ctx.stdout.writeText(`
76
+ `);
77
+ await ctx.stdout.writeText(`${pathArg}:
78
+ `);
79
+ }
80
+ let entries = await ctx.fs.readdir(path);
81
+ if (!showAll) {
82
+ entries = entries.filter((e) => !e.startsWith("."));
83
+ }
84
+ entries.sort();
85
+ if (longFormat) {
86
+ for (const entry of entries) {
87
+ const entryPath = ctx.fs.resolve(path, entry);
88
+ try {
89
+ const entryStat = await ctx.fs.stat(entryPath);
90
+ const type = entryStat.isDirectory() ? "d" : "-";
91
+ const perms = "rwxr-xr-x";
92
+ const size = String(entryStat.size).padStart(8);
93
+ const date = entryStat.mtime.toISOString().slice(0, 10);
94
+ await ctx.stdout.writeText(`${type}${perms} ${size} ${date} ${entry}
95
+ `);
96
+ } catch {
97
+ await ctx.stdout.writeText(`?????????? ${entry}
98
+ `);
99
+ }
100
+ }
101
+ } else if (onePerLine) {
102
+ for (const entry of entries) {
103
+ await ctx.stdout.writeText(entry + `
104
+ `);
105
+ }
106
+ } else {
107
+ await ctx.stdout.writeText(entries.join(" ") + `
108
+ `);
109
+ }
110
+ } catch (err) {
111
+ await ctx.stderr.writeText(`ls: cannot access '${pathArg}': No such file or directory
112
+ `);
113
+ return 1;
114
+ }
115
+ }
116
+ return 0;
117
+ };
118
+
119
+ //# debugId=89B66624CF96A45064756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/commands/ls/ls.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../../types.cjs\";\n\nexport const ls: Command = async (ctx) => {\n let showAll = false;\n let longFormat = false;\n let onePerLine = false;\n const paths: string[] = [];\n\n // Parse arguments\n for (const arg of ctx.args) {\n if (arg === \"-a\" || arg === \"--all\") {\n showAll = true;\n } else if (arg === \"-l\") {\n longFormat = true;\n } else if (arg === \"-1\") {\n onePerLine = true;\n } else if (arg.startsWith(\"-\")) {\n for (const flag of arg.slice(1)) {\n if (flag === \"a\") showAll = true;\n else if (flag === \"l\") longFormat = true;\n else if (flag === \"1\") onePerLine = true;\n }\n } else {\n paths.push(arg);\n }\n }\n\n if (paths.length === 0) {\n paths.push(\".\");\n }\n\n for (let i = 0; i < paths.length; i++) {\n const pathArg = paths[i]!;\n const path = ctx.fs.resolve(ctx.cwd, pathArg);\n\n try {\n const stat = await ctx.fs.stat(path);\n\n if (stat.isFile()) {\n // It's a file, just print the name\n await ctx.stdout.writeText(ctx.fs.basename(path) + \"\\n\");\n continue;\n }\n\n // It's a directory\n if (paths.length > 1) {\n if (i > 0) await ctx.stdout.writeText(\"\\n\");\n await ctx.stdout.writeText(`${pathArg}:\\n`);\n }\n\n let entries = await ctx.fs.readdir(path);\n\n if (!showAll) {\n entries = entries.filter((e) => !e.startsWith(\".\"));\n }\n\n entries.sort();\n\n if (longFormat) {\n for (const entry of entries) {\n const entryPath = ctx.fs.resolve(path, entry);\n try {\n const entryStat = await ctx.fs.stat(entryPath);\n const type = entryStat.isDirectory() ? \"d\" : \"-\";\n const perms = \"rwxr-xr-x\"; // Simplified permissions\n const size = String(entryStat.size).padStart(8);\n const date = entryStat.mtime.toISOString().slice(0, 10);\n await ctx.stdout.writeText(`${type}${perms} ${size} ${date} ${entry}\\n`);\n } catch {\n await ctx.stdout.writeText(`?????????? ${entry}\\n`);\n }\n }\n } else if (onePerLine) {\n for (const entry of entries) {\n await ctx.stdout.writeText(entry + \"\\n\");\n }\n } else {\n // Default: space-separated\n await ctx.stdout.writeText(entries.join(\" \") + \"\\n\");\n }\n } catch (err) {\n await ctx.stderr.writeText(`ls: cannot access '${pathArg}': No such file or directory\\n`);\n return 1;\n }\n }\n\n return 0;\n};\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "89B66624CF96A45064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,64 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/mkdir/mkdir.ts
30
+ var exports_mkdir = {};
31
+ __export(exports_mkdir, {
32
+ mkdir: () => mkdir
33
+ });
34
+ module.exports = __toCommonJS(exports_mkdir);
35
+ var mkdir = async (ctx) => {
36
+ let parents = false;
37
+ const dirs = [];
38
+ for (const arg of ctx.args) {
39
+ if (arg === "-p" || arg === "--parents") {
40
+ parents = true;
41
+ } else if (!arg.startsWith("-")) {
42
+ dirs.push(arg);
43
+ }
44
+ }
45
+ if (dirs.length === 0) {
46
+ await ctx.stderr.writeText(`mkdir: missing operand
47
+ `);
48
+ return 1;
49
+ }
50
+ for (const dir of dirs) {
51
+ const path = ctx.fs.resolve(ctx.cwd, dir);
52
+ try {
53
+ await ctx.fs.mkdir(path, { recursive: parents });
54
+ } catch (err) {
55
+ const message = err instanceof Error ? err.message : String(err);
56
+ await ctx.stderr.writeText(`mkdir: cannot create directory '${dir}': ${message}
57
+ `);
58
+ return 1;
59
+ }
60
+ }
61
+ return 0;
62
+ };
63
+
64
+ //# debugId=2AD69A2DF49B79D164756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/commands/mkdir/mkdir.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../../types.cjs\";\n\nexport const mkdir: Command = async (ctx) => {\n let parents = false;\n const dirs: string[] = [];\n\n for (const arg of ctx.args) {\n if (arg === \"-p\" || arg === \"--parents\") {\n parents = true;\n } else if (!arg.startsWith(\"-\")) {\n dirs.push(arg);\n }\n }\n\n if (dirs.length === 0) {\n await ctx.stderr.writeText(\"mkdir: missing operand\\n\");\n return 1;\n }\n\n for (const dir of dirs) {\n const path = ctx.fs.resolve(ctx.cwd, dir);\n try {\n await ctx.fs.mkdir(path, { recursive: parents });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`mkdir: cannot create directory '${dir}': ${message}\\n`);\n return 1;\n }\n }\n\n return 0;\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,QAAiB,OAAO,QAAQ;AAAA,EAC3C,IAAI,UAAU;AAAA,EACd,MAAM,OAAiB,CAAC;AAAA,EAExB,WAAW,OAAO,IAAI,MAAM;AAAA,IAC1B,IAAI,QAAQ,QAAQ,QAAQ,aAAa;AAAA,MACvC,UAAU;AAAA,IACZ,EAAO,SAAI,CAAC,IAAI,WAAW,GAAG,GAAG;AAAA,MAC/B,KAAK,KAAK,GAAG;AAAA,IACf;AAAA,EACF;AAAA,EAEA,IAAI,KAAK,WAAW,GAAG;AAAA,IACrB,MAAM,IAAI,OAAO,UAAU;AAAA,CAA0B;AAAA,IACrD,OAAO;AAAA,EACT;AAAA,EAEA,WAAW,OAAO,MAAM;AAAA,IACtB,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,GAAG;AAAA,IACxC,IAAI;AAAA,MACF,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,WAAW,QAAQ,CAAC;AAAA,MAC/C,OAAO,KAAK;AAAA,MACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MAC/D,MAAM,IAAI,OAAO,UAAU,mCAAmC,SAAS;AAAA,CAAW;AAAA,MAClF,OAAO;AAAA;AAAA,EAEX;AAAA,EAEA,OAAO;AAAA;",
8
+ "debugId": "2AD69A2DF49B79D164756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/mv/mv.ts
30
+ var exports_mv = {};
31
+ __export(exports_mv, {
32
+ mv: () => mv
33
+ });
34
+ module.exports = __toCommonJS(exports_mv);
35
+ var mv = async (ctx) => {
36
+ let noClobber = false;
37
+ const paths = [];
38
+ for (const arg of ctx.args) {
39
+ if (arg === "-n" || arg === "--no-clobber") {
40
+ noClobber = true;
41
+ } else if (arg === "-f" || arg === "--force") {} else if (arg.startsWith("-")) {
42
+ for (const flag of arg.slice(1)) {
43
+ if (flag === "n")
44
+ noClobber = true;
45
+ else if (flag === "f") {}
46
+ }
47
+ } else {
48
+ paths.push(arg);
49
+ }
50
+ }
51
+ if (paths.length < 2) {
52
+ await ctx.stderr.writeText(`mv: missing destination file operand
53
+ `);
54
+ return 1;
55
+ }
56
+ const sources = paths.slice(0, -1);
57
+ const dest = paths[paths.length - 1];
58
+ const destPath = ctx.fs.resolve(ctx.cwd, dest);
59
+ let destIsDir = false;
60
+ try {
61
+ const stat = await ctx.fs.stat(destPath);
62
+ destIsDir = stat.isDirectory();
63
+ } catch {}
64
+ if (sources.length > 1 && !destIsDir) {
65
+ await ctx.stderr.writeText(`mv: target '${dest}' is not a directory
66
+ `);
67
+ return 1;
68
+ }
69
+ for (const source of sources) {
70
+ const srcPath = ctx.fs.resolve(ctx.cwd, source);
71
+ try {
72
+ await ctx.fs.stat(srcPath);
73
+ const finalDest = destIsDir ? ctx.fs.resolve(destPath, ctx.fs.basename(srcPath)) : destPath;
74
+ if (noClobber) {
75
+ const exists = await ctx.fs.exists(finalDest);
76
+ if (exists)
77
+ continue;
78
+ }
79
+ const srcStat = await ctx.fs.stat(srcPath);
80
+ if (srcStat.isDirectory()) {
81
+ await moveDirectory(ctx, srcPath, finalDest, noClobber);
82
+ } else {
83
+ const content = await ctx.fs.readFile(srcPath);
84
+ await ctx.fs.writeFile(finalDest, content);
85
+ await ctx.fs.rm(srcPath);
86
+ }
87
+ } catch (err) {
88
+ const message = err instanceof Error ? err.message : String(err);
89
+ await ctx.stderr.writeText(`mv: cannot stat '${source}': ${message}
90
+ `);
91
+ return 1;
92
+ }
93
+ }
94
+ return 0;
95
+ };
96
+ async function moveDirectory(ctx, src, dest, noClobber) {
97
+ await ctx.fs.mkdir(dest, { recursive: true });
98
+ const entries = await ctx.fs.readdir(src);
99
+ for (const entry of entries) {
100
+ const srcPath = ctx.fs.resolve(src, entry);
101
+ const destPath = ctx.fs.resolve(dest, entry);
102
+ const stat = await ctx.fs.stat(srcPath);
103
+ if (stat.isDirectory()) {
104
+ await moveDirectory(ctx, srcPath, destPath, noClobber);
105
+ } else {
106
+ if (noClobber) {
107
+ const exists = await ctx.fs.exists(destPath);
108
+ if (exists)
109
+ continue;
110
+ }
111
+ const content = await ctx.fs.readFile(srcPath);
112
+ await ctx.fs.writeFile(destPath, content);
113
+ }
114
+ }
115
+ await ctx.fs.rm(src, { recursive: true });
116
+ }
117
+
118
+ //# debugId=0192C128C538B0F564756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/commands/mv/mv.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../../types.cjs\";\n\nexport const mv: Command = async (ctx) => {\n let noClobber = false;\n const paths: string[] = [];\n\n for (const arg of ctx.args) {\n if (arg === \"-n\" || arg === \"--no-clobber\") {\n noClobber = true;\n } else if (arg === \"-f\" || arg === \"--force\") {\n // Force is default behavior, just accept the flag\n } else if (arg.startsWith(\"-\")) {\n // Parse combined flags\n for (const flag of arg.slice(1)) {\n if (flag === \"n\") noClobber = true;\n else if (flag === \"f\") { /* force is default */ }\n }\n } else {\n paths.push(arg);\n }\n }\n\n if (paths.length < 2) {\n await ctx.stderr.writeText(\"mv: missing destination file operand\\n\");\n return 1;\n }\n\n const sources = paths.slice(0, -1);\n const dest = paths[paths.length - 1]!;\n const destPath = ctx.fs.resolve(ctx.cwd, dest);\n\n // Check if destination is a directory\n let destIsDir = false;\n try {\n const stat = await ctx.fs.stat(destPath);\n destIsDir = stat.isDirectory();\n } catch {\n // Destination doesn't exist\n }\n\n // If multiple sources, dest must be a directory\n if (sources.length > 1 && !destIsDir) {\n await ctx.stderr.writeText(`mv: target '${dest}' is not a directory\\n`);\n return 1;\n }\n\n for (const source of sources) {\n const srcPath = ctx.fs.resolve(ctx.cwd, source);\n\n try {\n // Check source exists\n await ctx.fs.stat(srcPath);\n\n // Determine final destination path\n const finalDest = destIsDir\n ? ctx.fs.resolve(destPath, ctx.fs.basename(srcPath))\n : destPath;\n\n // Check if dest exists and noClobber\n if (noClobber) {\n const exists = await ctx.fs.exists(finalDest);\n if (exists) continue; // Skip silently\n }\n\n // Move: copy then delete\n const srcStat = await ctx.fs.stat(srcPath);\n if (srcStat.isDirectory()) {\n await moveDirectory(ctx, srcPath, finalDest, noClobber);\n } else {\n const content = await ctx.fs.readFile(srcPath);\n await ctx.fs.writeFile(finalDest, content);\n await ctx.fs.rm(srcPath);\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`mv: cannot stat '${source}': ${message}\\n`);\n return 1;\n }\n }\n\n return 0;\n};\n\nasync function moveDirectory(\n ctx: Parameters<Command>[0],\n src: string,\n dest: string,\n noClobber: boolean\n): Promise<void> {\n // Create destination directory\n await ctx.fs.mkdir(dest, { recursive: true });\n\n // Read source directory contents\n const entries = await ctx.fs.readdir(src);\n\n for (const entry of entries) {\n const srcPath = ctx.fs.resolve(src, entry);\n const destPath = ctx.fs.resolve(dest, entry);\n\n const stat = await ctx.fs.stat(srcPath);\n\n if (stat.isDirectory()) {\n await moveDirectory(ctx, srcPath, destPath, noClobber);\n } else {\n if (noClobber) {\n const exists = await ctx.fs.exists(destPath);\n if (exists) continue;\n }\n const content = await ctx.fs.readFile(srcPath);\n await ctx.fs.writeFile(destPath, content);\n }\n }\n\n // Remove source directory after copying\n await ctx.fs.rm(src, { recursive: true });\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "0192C128C538B0F564756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,41 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/pwd/pwd.ts
30
+ var exports_pwd = {};
31
+ __export(exports_pwd, {
32
+ pwd: () => pwd
33
+ });
34
+ module.exports = __toCommonJS(exports_pwd);
35
+ var pwd = async (ctx) => {
36
+ await ctx.stdout.writeText(ctx.cwd + `
37
+ `);
38
+ return 0;
39
+ };
40
+
41
+ //# debugId=6FDDD73F29F478B464756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/commands/pwd/pwd.ts"],
4
+ "sourcesContent": [
5
+ "import type { Command } from \"../../types.cjs\";\n\nexport const pwd: Command = async (ctx) => {\n await ctx.stdout.writeText(ctx.cwd + \"\\n\");\n return 0;\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,MAAe,OAAO,QAAQ;AAAA,EACzC,MAAM,IAAI,OAAO,UAAU,IAAI,MAAM;AAAA,CAAI;AAAA,EACzC,OAAO;AAAA;",
8
+ "debugId": "6FDDD73F29F478B464756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,82 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/commands/rm/rm.ts
30
+ var exports_rm = {};
31
+ __export(exports_rm, {
32
+ rm: () => rm
33
+ });
34
+ module.exports = __toCommonJS(exports_rm);
35
+ var rm = async (ctx) => {
36
+ let recursive = false;
37
+ let force = false;
38
+ const targets = [];
39
+ for (const arg of ctx.args) {
40
+ if (arg === "-r" || arg === "-R" || arg === "--recursive") {
41
+ recursive = true;
42
+ } else if (arg === "-f" || arg === "--force") {
43
+ force = true;
44
+ } else if (arg === "-rf" || arg === "-fr") {
45
+ recursive = true;
46
+ force = true;
47
+ } else if (arg.startsWith("-")) {
48
+ for (const flag of arg.slice(1)) {
49
+ if (flag === "r" || flag === "R")
50
+ recursive = true;
51
+ else if (flag === "f")
52
+ force = true;
53
+ }
54
+ } else {
55
+ targets.push(arg);
56
+ }
57
+ }
58
+ if (targets.length === 0) {
59
+ if (!force) {
60
+ await ctx.stderr.writeText(`rm: missing operand
61
+ `);
62
+ return 1;
63
+ }
64
+ return 0;
65
+ }
66
+ for (const target of targets) {
67
+ const path = ctx.fs.resolve(ctx.cwd, target);
68
+ try {
69
+ await ctx.fs.rm(path, { recursive, force });
70
+ } catch (err) {
71
+ if (!force) {
72
+ const message = err instanceof Error ? err.message : String(err);
73
+ await ctx.stderr.writeText(`rm: cannot remove '${target}': ${message}
74
+ `);
75
+ return 1;
76
+ }
77
+ }
78
+ }
79
+ return 0;
80
+ };
81
+
82
+ //# debugId=886A912A24D7A5C264756E2164756E21