just-bash 1.0.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 (329) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +326 -0
  3. package/dist/Bash.d.ts +90 -0
  4. package/dist/ai/index.d.ts +56 -0
  5. package/dist/ast/types.d.ts +518 -0
  6. package/dist/bin/chunks/alias-74DFXE2E.js +7 -0
  7. package/dist/bin/chunks/awk-S63F6IYK.js +15 -0
  8. package/dist/bin/chunks/base64-NC7HTKLZ.js +5 -0
  9. package/dist/bin/chunks/basename-Y7JDBYHN.js +6 -0
  10. package/dist/bin/chunks/bash-TQGTNXAE.js +7 -0
  11. package/dist/bin/chunks/cat-YZXBF5YF.js +6 -0
  12. package/dist/bin/chunks/chmod-3G4LK462.js +9 -0
  13. package/dist/bin/chunks/chunk-26Q3PZQ6.js +2 -0
  14. package/dist/bin/chunks/chunk-4VDEBYW7.js +2 -0
  15. package/dist/bin/chunks/chunk-5KNEBKYN.js +2 -0
  16. package/dist/bin/chunks/chunk-GTNBSMZR.js +23 -0
  17. package/dist/bin/chunks/chunk-J7BCMQDI.js +16 -0
  18. package/dist/bin/chunks/chunk-J7MJV6WO.js +3 -0
  19. package/dist/bin/chunks/chunk-LV662IGP.js +6 -0
  20. package/dist/bin/chunks/chunk-TA7RUHGQ.js +4 -0
  21. package/dist/bin/chunks/clear-GTCFHSB2.js +2 -0
  22. package/dist/bin/chunks/cp-77UY7PGN.js +8 -0
  23. package/dist/bin/chunks/curl-NE7XEWMN.js +26 -0
  24. package/dist/bin/chunks/cut-UYV3FM7R.js +6 -0
  25. package/dist/bin/chunks/date-7NBRXV2Z.js +5 -0
  26. package/dist/bin/chunks/diff-TG2NXCX2.js +19 -0
  27. package/dist/bin/chunks/dirname-VLHP44TU.js +5 -0
  28. package/dist/bin/chunks/du-4FZ7WF2P.js +8 -0
  29. package/dist/bin/chunks/echo-DEUIS5JO.js +4 -0
  30. package/dist/bin/chunks/env-FVITWNHG.js +9 -0
  31. package/dist/bin/chunks/expr-HA2ZNL6S.js +5 -0
  32. package/dist/bin/chunks/find-4B67H4RP.js +11 -0
  33. package/dist/bin/chunks/grep-OVWU4WCZ.js +15 -0
  34. package/dist/bin/chunks/head-VGXR3WWL.js +2 -0
  35. package/dist/bin/chunks/help-5V3MPCYQ.js +16 -0
  36. package/dist/bin/chunks/history-PRQ4B6N2.js +3 -0
  37. package/dist/bin/chunks/html-to-markdown-L4UWMK4S.js +84 -0
  38. package/dist/bin/chunks/jq-EYSXBSCP.js +14 -0
  39. package/dist/bin/chunks/ln-DB7J2W5X.js +10 -0
  40. package/dist/bin/chunks/ls-C4MPAF3H.js +26 -0
  41. package/dist/bin/chunks/mkdir-LWULWDHP.js +7 -0
  42. package/dist/bin/chunks/mv-TDYCNSIQ.js +7 -0
  43. package/dist/bin/chunks/paste-R36J3G4K.js +8 -0
  44. package/dist/bin/chunks/printf-BOFQVMMK.js +15 -0
  45. package/dist/bin/chunks/pwd-X4MWD4JP.js +3 -0
  46. package/dist/bin/chunks/readlink-DPNOQY67.js +7 -0
  47. package/dist/bin/chunks/rm-W6CCBEMG.js +8 -0
  48. package/dist/bin/chunks/sed-7IS44XON.js +48 -0
  49. package/dist/bin/chunks/seq-DGJILX2Q.js +7 -0
  50. package/dist/bin/chunks/sleep-E4DIYGTT.js +10 -0
  51. package/dist/bin/chunks/sort-UJP353TM.js +15 -0
  52. package/dist/bin/chunks/stat-3PHITCPO.js +9 -0
  53. package/dist/bin/chunks/tail-YSVKBQ77.js +2 -0
  54. package/dist/bin/chunks/tee-UU2VS3OM.js +3 -0
  55. package/dist/bin/chunks/timeout-OZVAGW2H.js +12 -0
  56. package/dist/bin/chunks/touch-XCIAYF5I.js +4 -0
  57. package/dist/bin/chunks/tr-2EEKHHO6.js +20 -0
  58. package/dist/bin/chunks/tree-4247W67O.js +12 -0
  59. package/dist/bin/chunks/true-JCX733LK.js +2 -0
  60. package/dist/bin/chunks/uniq-W4HF6YSB.js +5 -0
  61. package/dist/bin/chunks/wc-CNJ3QDRA.js +6 -0
  62. package/dist/bin/chunks/which-HX2NMOP3.js +3 -0
  63. package/dist/bin/chunks/xargs-YNLVLPOF.js +4 -0
  64. package/dist/bin/just-bash.js +188 -0
  65. package/dist/bin/shell/chunks/alias-74DFXE2E.js +7 -0
  66. package/dist/bin/shell/chunks/awk-S63F6IYK.js +15 -0
  67. package/dist/bin/shell/chunks/base64-NC7HTKLZ.js +5 -0
  68. package/dist/bin/shell/chunks/basename-Y7JDBYHN.js +6 -0
  69. package/dist/bin/shell/chunks/bash-TQGTNXAE.js +7 -0
  70. package/dist/bin/shell/chunks/cat-YZXBF5YF.js +6 -0
  71. package/dist/bin/shell/chunks/chmod-3G4LK462.js +9 -0
  72. package/dist/bin/shell/chunks/chunk-26Q3PZQ6.js +2 -0
  73. package/dist/bin/shell/chunks/chunk-4VDEBYW7.js +2 -0
  74. package/dist/bin/shell/chunks/chunk-5KNEBKYN.js +2 -0
  75. package/dist/bin/shell/chunks/chunk-GTNBSMZR.js +23 -0
  76. package/dist/bin/shell/chunks/chunk-J7BCMQDI.js +16 -0
  77. package/dist/bin/shell/chunks/chunk-J7MJV6WO.js +3 -0
  78. package/dist/bin/shell/chunks/chunk-LV662IGP.js +6 -0
  79. package/dist/bin/shell/chunks/chunk-TA7RUHGQ.js +4 -0
  80. package/dist/bin/shell/chunks/clear-GTCFHSB2.js +2 -0
  81. package/dist/bin/shell/chunks/cp-77UY7PGN.js +8 -0
  82. package/dist/bin/shell/chunks/curl-NE7XEWMN.js +26 -0
  83. package/dist/bin/shell/chunks/cut-UYV3FM7R.js +6 -0
  84. package/dist/bin/shell/chunks/date-7NBRXV2Z.js +5 -0
  85. package/dist/bin/shell/chunks/diff-TG2NXCX2.js +19 -0
  86. package/dist/bin/shell/chunks/dirname-VLHP44TU.js +5 -0
  87. package/dist/bin/shell/chunks/du-4FZ7WF2P.js +8 -0
  88. package/dist/bin/shell/chunks/echo-DEUIS5JO.js +4 -0
  89. package/dist/bin/shell/chunks/env-FVITWNHG.js +9 -0
  90. package/dist/bin/shell/chunks/expr-HA2ZNL6S.js +5 -0
  91. package/dist/bin/shell/chunks/find-4B67H4RP.js +11 -0
  92. package/dist/bin/shell/chunks/grep-OVWU4WCZ.js +15 -0
  93. package/dist/bin/shell/chunks/head-VGXR3WWL.js +2 -0
  94. package/dist/bin/shell/chunks/help-5V3MPCYQ.js +16 -0
  95. package/dist/bin/shell/chunks/history-PRQ4B6N2.js +3 -0
  96. package/dist/bin/shell/chunks/html-to-markdown-L4UWMK4S.js +84 -0
  97. package/dist/bin/shell/chunks/jq-EYSXBSCP.js +14 -0
  98. package/dist/bin/shell/chunks/ln-DB7J2W5X.js +10 -0
  99. package/dist/bin/shell/chunks/ls-C4MPAF3H.js +26 -0
  100. package/dist/bin/shell/chunks/mkdir-LWULWDHP.js +7 -0
  101. package/dist/bin/shell/chunks/mv-TDYCNSIQ.js +7 -0
  102. package/dist/bin/shell/chunks/paste-R36J3G4K.js +8 -0
  103. package/dist/bin/shell/chunks/printf-BOFQVMMK.js +15 -0
  104. package/dist/bin/shell/chunks/pwd-X4MWD4JP.js +3 -0
  105. package/dist/bin/shell/chunks/readlink-DPNOQY67.js +7 -0
  106. package/dist/bin/shell/chunks/rm-W6CCBEMG.js +8 -0
  107. package/dist/bin/shell/chunks/sed-7IS44XON.js +48 -0
  108. package/dist/bin/shell/chunks/seq-DGJILX2Q.js +7 -0
  109. package/dist/bin/shell/chunks/sleep-E4DIYGTT.js +10 -0
  110. package/dist/bin/shell/chunks/sort-UJP353TM.js +15 -0
  111. package/dist/bin/shell/chunks/stat-3PHITCPO.js +9 -0
  112. package/dist/bin/shell/chunks/tail-YSVKBQ77.js +2 -0
  113. package/dist/bin/shell/chunks/tee-UU2VS3OM.js +3 -0
  114. package/dist/bin/shell/chunks/timeout-OZVAGW2H.js +12 -0
  115. package/dist/bin/shell/chunks/touch-XCIAYF5I.js +4 -0
  116. package/dist/bin/shell/chunks/tr-2EEKHHO6.js +20 -0
  117. package/dist/bin/shell/chunks/tree-4247W67O.js +12 -0
  118. package/dist/bin/shell/chunks/true-JCX733LK.js +2 -0
  119. package/dist/bin/shell/chunks/uniq-W4HF6YSB.js +5 -0
  120. package/dist/bin/shell/chunks/wc-CNJ3QDRA.js +6 -0
  121. package/dist/bin/shell/chunks/which-HX2NMOP3.js +3 -0
  122. package/dist/bin/shell/chunks/xargs-YNLVLPOF.js +4 -0
  123. package/dist/bin/shell/shell.js +172 -0
  124. package/dist/bundle/ai/index.js +541 -0
  125. package/dist/bundle/chunks/alias-7ZSTROM7.js +6 -0
  126. package/dist/bundle/chunks/awk-V4C3GTJI.js +14 -0
  127. package/dist/bundle/chunks/base64-WATI5PWI.js +4 -0
  128. package/dist/bundle/chunks/basename-SB5JXIY3.js +5 -0
  129. package/dist/bundle/chunks/bash-T4PXVRYX.js +6 -0
  130. package/dist/bundle/chunks/cat-5KESXK2M.js +5 -0
  131. package/dist/bundle/chunks/chmod-VLKWIL3N.js +8 -0
  132. package/dist/bundle/chunks/chunk-3YNHMZ5M.js +2 -0
  133. package/dist/bundle/chunks/chunk-44UOCSGV.js +1 -0
  134. package/dist/bundle/chunks/chunk-74CEPOFO.js +22 -0
  135. package/dist/bundle/chunks/chunk-JYYFSUWP.js +5 -0
  136. package/dist/bundle/chunks/chunk-UJMN5NLH.js +1 -0
  137. package/dist/bundle/chunks/chunk-W2EKKAIL.js +15 -0
  138. package/dist/bundle/chunks/chunk-ZVV5VXYZ.js +3 -0
  139. package/dist/bundle/chunks/clear-ZBD2DMXN.js +1 -0
  140. package/dist/bundle/chunks/cp-BLHAPLQZ.js +7 -0
  141. package/dist/bundle/chunks/curl-PA2MWGKN.js +25 -0
  142. package/dist/bundle/chunks/cut-7RHEYJ7Y.js +5 -0
  143. package/dist/bundle/chunks/date-YOOSNZVA.js +4 -0
  144. package/dist/bundle/chunks/diff-IVJFQANX.js +6 -0
  145. package/dist/bundle/chunks/dirname-Q5HDZLH2.js +4 -0
  146. package/dist/bundle/chunks/du-I5HYAKTQ.js +7 -0
  147. package/dist/bundle/chunks/echo-W2TA2N7Y.js +3 -0
  148. package/dist/bundle/chunks/env-OORA5GFS.js +8 -0
  149. package/dist/bundle/chunks/expr-A4LJAGVP.js +4 -0
  150. package/dist/bundle/chunks/find-K3NO35MZ.js +10 -0
  151. package/dist/bundle/chunks/grep-3D2INI4S.js +14 -0
  152. package/dist/bundle/chunks/head-7H5R4WKO.js +1 -0
  153. package/dist/bundle/chunks/help-SDCRRU2F.js +15 -0
  154. package/dist/bundle/chunks/history-7Z2STZ6Y.js +2 -0
  155. package/dist/bundle/chunks/html-to-markdown-XMBYO6FD.js +4 -0
  156. package/dist/bundle/chunks/jq-7R2XGLLH.js +13 -0
  157. package/dist/bundle/chunks/ln-UTUVIAFP.js +9 -0
  158. package/dist/bundle/chunks/ls-B7C35UDO.js +23 -0
  159. package/dist/bundle/chunks/mkdir-WYI2LJ6H.js +6 -0
  160. package/dist/bundle/chunks/mv-GN23UIZU.js +6 -0
  161. package/dist/bundle/chunks/paste-L4TYPVSP.js +7 -0
  162. package/dist/bundle/chunks/printf-3ZT5XOIZ.js +14 -0
  163. package/dist/bundle/chunks/pwd-ZVX5RTL4.js +2 -0
  164. package/dist/bundle/chunks/readlink-HHC33N5C.js +6 -0
  165. package/dist/bundle/chunks/rm-5X2XSQQ6.js +7 -0
  166. package/dist/bundle/chunks/sed-UZJSXYQZ.js +47 -0
  167. package/dist/bundle/chunks/seq-TFPZQZPJ.js +6 -0
  168. package/dist/bundle/chunks/sleep-QJBQD6VS.js +9 -0
  169. package/dist/bundle/chunks/sort-LHMQWYH2.js +14 -0
  170. package/dist/bundle/chunks/stat-TM5F5YO4.js +8 -0
  171. package/dist/bundle/chunks/tail-BLGGG2VX.js +1 -0
  172. package/dist/bundle/chunks/tee-VCNOG5VI.js +2 -0
  173. package/dist/bundle/chunks/timeout-THAT7IOO.js +11 -0
  174. package/dist/bundle/chunks/touch-Z5XRYFYY.js +3 -0
  175. package/dist/bundle/chunks/tr-UV4V27RJ.js +19 -0
  176. package/dist/bundle/chunks/tree-75UXQ4XJ.js +11 -0
  177. package/dist/bundle/chunks/true-OD7ZXH3O.js +1 -0
  178. package/dist/bundle/chunks/uniq-IIOQKNTS.js +4 -0
  179. package/dist/bundle/chunks/wc-OXLYBRUE.js +5 -0
  180. package/dist/bundle/chunks/which-ONWH3TNF.js +2 -0
  181. package/dist/bundle/chunks/xargs-E5JPQL24.js +3 -0
  182. package/dist/bundle/index.js +141 -0
  183. package/dist/commands/alias/alias.d.ts +3 -0
  184. package/dist/commands/awk/awk.d.ts +2 -0
  185. package/dist/commands/awk/executor.d.ts +3 -0
  186. package/dist/commands/awk/expressions.d.ts +3 -0
  187. package/dist/commands/awk/functions.d.ts +12 -0
  188. package/dist/commands/awk/parser.d.ts +3 -0
  189. package/dist/commands/awk/types.d.ts +44 -0
  190. package/dist/commands/base64/base64.d.ts +5 -0
  191. package/dist/commands/basename/basename.d.ts +2 -0
  192. package/dist/commands/bash/bash.d.ts +3 -0
  193. package/dist/commands/cat/cat.d.ts +2 -0
  194. package/dist/commands/chmod/chmod.d.ts +2 -0
  195. package/dist/commands/clear/clear.d.ts +2 -0
  196. package/dist/commands/cp/cp.d.ts +2 -0
  197. package/dist/commands/curl/curl.d.ts +8 -0
  198. package/dist/commands/curl/form.d.ts +21 -0
  199. package/dist/commands/curl/help.d.ts +9 -0
  200. package/dist/commands/curl/parse.d.ts +9 -0
  201. package/dist/commands/curl/types.d.ts +31 -0
  202. package/dist/commands/curl/utils.d.ts +20 -0
  203. package/dist/commands/cut/cut.d.ts +2 -0
  204. package/dist/commands/date/date.d.ts +5 -0
  205. package/dist/commands/diff/diff.d.ts +5 -0
  206. package/dist/commands/dirname/dirname.d.ts +2 -0
  207. package/dist/commands/du/du.d.ts +2 -0
  208. package/dist/commands/echo/echo.d.ts +2 -0
  209. package/dist/commands/env/env.d.ts +3 -0
  210. package/dist/commands/expr/expr.d.ts +7 -0
  211. package/dist/commands/find/find.d.ts +2 -0
  212. package/dist/commands/find/matcher.d.ts +3 -0
  213. package/dist/commands/find/parser.d.ts +2 -0
  214. package/dist/commands/find/types.d.ts +70 -0
  215. package/dist/commands/grep/grep.d.ts +4 -0
  216. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  217. package/dist/commands/head/head.d.ts +2 -0
  218. package/dist/commands/help/help.d.ts +2 -0
  219. package/dist/commands/help.d.ts +16 -0
  220. package/dist/commands/history/history.d.ts +2 -0
  221. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +7 -0
  222. package/dist/commands/jq/jq.d.ts +14 -0
  223. package/dist/commands/ln/ln.d.ts +2 -0
  224. package/dist/commands/ls/ls.d.ts +2 -0
  225. package/dist/commands/mkdir/mkdir.d.ts +2 -0
  226. package/dist/commands/mv/mv.d.ts +2 -0
  227. package/dist/commands/paste/paste.d.ts +2 -0
  228. package/dist/commands/printf/printf.d.ts +2 -0
  229. package/dist/commands/pwd/pwd.d.ts +2 -0
  230. package/dist/commands/readlink/readlink.d.ts +2 -0
  231. package/dist/commands/registry.d.ts +33 -0
  232. package/dist/commands/rm/rm.d.ts +2 -0
  233. package/dist/commands/sed/executor.d.ts +7 -0
  234. package/dist/commands/sed/parser.d.ts +5 -0
  235. package/dist/commands/sed/sed.d.ts +2 -0
  236. package/dist/commands/sed/types.d.ts +141 -0
  237. package/dist/commands/seq/seq.d.ts +14 -0
  238. package/dist/commands/sleep/sleep.d.ts +2 -0
  239. package/dist/commands/sort/comparator.d.ts +9 -0
  240. package/dist/commands/sort/parser.d.ts +11 -0
  241. package/dist/commands/sort/sort.d.ts +2 -0
  242. package/dist/commands/sort/types.d.ts +18 -0
  243. package/dist/commands/stat/stat.d.ts +2 -0
  244. package/dist/commands/tail/tail.d.ts +2 -0
  245. package/dist/commands/tee/tee.d.ts +2 -0
  246. package/dist/commands/timeout/timeout.d.ts +2 -0
  247. package/dist/commands/touch/touch.d.ts +2 -0
  248. package/dist/commands/tr/tr.d.ts +2 -0
  249. package/dist/commands/tree/tree.d.ts +2 -0
  250. package/dist/commands/true/true.d.ts +3 -0
  251. package/dist/commands/uniq/uniq.d.ts +2 -0
  252. package/dist/commands/wc/wc.d.ts +2 -0
  253. package/dist/commands/which/which.d.ts +2 -0
  254. package/dist/commands/xargs/xargs.d.ts +2 -0
  255. package/dist/fs-interface.d.ts +186 -0
  256. package/dist/fs.d.ts +39 -0
  257. package/dist/index.d.ts +12 -0
  258. package/dist/interpreter/arithmetic.d.ts +29 -0
  259. package/dist/interpreter/builtins/break.d.ts +6 -0
  260. package/dist/interpreter/builtins/cd.d.ts +6 -0
  261. package/dist/interpreter/builtins/continue.d.ts +6 -0
  262. package/dist/interpreter/builtins/declare.d.ts +29 -0
  263. package/dist/interpreter/builtins/eval.d.ts +9 -0
  264. package/dist/interpreter/builtins/exit.d.ts +5 -0
  265. package/dist/interpreter/builtins/export.d.ts +13 -0
  266. package/dist/interpreter/builtins/index.d.ts +36 -0
  267. package/dist/interpreter/builtins/let.d.ts +18 -0
  268. package/dist/interpreter/builtins/local.d.ts +6 -0
  269. package/dist/interpreter/builtins/read.d.ts +6 -0
  270. package/dist/interpreter/builtins/return.d.ts +6 -0
  271. package/dist/interpreter/builtins/set.d.ts +6 -0
  272. package/dist/interpreter/builtins/shift.d.ts +12 -0
  273. package/dist/interpreter/builtins/source.d.ts +6 -0
  274. package/dist/interpreter/builtins/unset.d.ts +12 -0
  275. package/dist/interpreter/builtins/variable-helpers.d.ts +30 -0
  276. package/dist/interpreter/conditionals.d.ts +17 -0
  277. package/dist/interpreter/control-flow.d.ts +21 -0
  278. package/dist/interpreter/errors.d.ts +107 -0
  279. package/dist/interpreter/expansion/analysis.d.ts +39 -0
  280. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  281. package/dist/interpreter/expansion/pattern.d.ts +22 -0
  282. package/dist/interpreter/expansion/variable.d.ts +27 -0
  283. package/dist/interpreter/expansion/word-split.d.ts +24 -0
  284. package/dist/interpreter/expansion.d.ts +27 -0
  285. package/dist/interpreter/functions.d.ts +12 -0
  286. package/dist/interpreter/helpers/array.d.ts +23 -0
  287. package/dist/interpreter/helpers/condition.d.ts +22 -0
  288. package/dist/interpreter/helpers/errors.d.ts +8 -0
  289. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  290. package/dist/interpreter/helpers/ifs.d.ts +43 -0
  291. package/dist/interpreter/helpers/loop.d.ts +24 -0
  292. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  293. package/dist/interpreter/helpers/readonly.d.ts +21 -0
  294. package/dist/interpreter/helpers/regex.d.ts +8 -0
  295. package/dist/interpreter/helpers/result.d.ts +54 -0
  296. package/dist/interpreter/helpers/statements.d.ts +20 -0
  297. package/dist/interpreter/helpers/string-compare.d.ts +22 -0
  298. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  299. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  300. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  301. package/dist/interpreter/index.d.ts +3 -0
  302. package/dist/interpreter/interpreter.d.ts +61 -0
  303. package/dist/interpreter/redirections.d.ts +14 -0
  304. package/dist/interpreter/types.d.ts +68 -0
  305. package/dist/limits.d.ts +26 -0
  306. package/dist/network/allow-list/shared.d.ts +45 -0
  307. package/dist/network/allow-list.d.ts +51 -0
  308. package/dist/network/fetch.d.ts +25 -0
  309. package/dist/network/index.d.ts +7 -0
  310. package/dist/network/types.d.ts +85 -0
  311. package/dist/overlay-fs/OverlayFs.d.ts +87 -0
  312. package/dist/overlay-fs/index.d.ts +1 -0
  313. package/dist/parser/arithmetic-parser.d.ts +25 -0
  314. package/dist/parser/command-parser.d.ts +10 -0
  315. package/dist/parser/compound-parser.d.ts +14 -0
  316. package/dist/parser/conditional-parser.d.ts +8 -0
  317. package/dist/parser/expansion-parser.d.ts +10 -0
  318. package/dist/parser/lexer.d.ts +135 -0
  319. package/dist/parser/parser.d.ts +92 -0
  320. package/dist/parser/types.d.ts +23 -0
  321. package/dist/parser/word-parser.d.ts +33 -0
  322. package/dist/sandbox/Command.d.ts +28 -0
  323. package/dist/sandbox/Sandbox.d.ts +60 -0
  324. package/dist/sandbox/index.d.ts +2 -0
  325. package/dist/types.d.ts +80 -0
  326. package/dist/utils/args.d.ts +55 -0
  327. package/dist/utils/file-reader.d.ts +64 -0
  328. package/dist/utils/glob.d.ts +25 -0
  329. package/package.json +103 -0
@@ -0,0 +1,7 @@
1
+ import{a as g}from"./chunk-ZVV5VXYZ.js";import{a as c,b as m}from"./chunk-74CEPOFO.js";var L={name:"paste",summary:"merge lines of files",usage:"paste [OPTION]... [FILE]...",description:["Write lines consisting of the sequentially corresponding lines from","each FILE, separated by TABs, to standard output.","","With no FILE, or when FILE is -, read standard input."],options:["-d, --delimiters=LIST reuse characters from LIST instead of TABs","-s, --serial paste one file at a time instead of in parallel"," --help display this help and exit"],examples:["paste file1 file2 Merge file1 and file2 side by side","paste -d, file1 file2 Use comma as delimiter","paste -s file1 Paste all lines of file1 on one line","paste - - < file Paste pairs of lines from file"]},x={delimiter:{short:"d",long:"delimiters",type:"string",default:" "},serial:{short:"s",long:"serial",type:"boolean"}},P={name:"paste",async execute(s,i){if(m(s))return c(L);let n=g("paste",s,x);if(!n.ok)return n.error;let l=n.result.flags.delimiter,d=n.result.flags.serial,p=n.result.positional;if(p.length===0)return{stdout:"",stderr:`usage: paste [-s] [-d delimiters] file ...
2
+ `,exitCode:1};let a=i.stdin?i.stdin.split(`
3
+ `):[""];a.length>0&&a[a.length-1]===""&&a.pop();let I=p.filter(e=>e==="-").length,f=[],u=0;for(let e of p)if(e==="-"){let t=[];for(let o=u;o<a.length;o+=I)t.push(a[o]);f.push(t),u++}else{let t=i.fs.resolvePath(i.cwd,e);try{let r=(await i.fs.readFile(t)).split(`
4
+ `);r.length>0&&r[r.length-1]===""&&r.pop(),f.push(r)}catch{return{stdout:"",stderr:`paste: ${e}: No such file or directory
5
+ `,exitCode:1}}}let h="";if(d)for(let e of f)e&&(h+=`${y(e,l)}
6
+ `);else{let e=Math.max(...f.map(t=>t?.length??0));for(let t=0;t<e;t++){let o=[];for(let r of f)o.push(r?.[t]??"");h+=`${y(o,l)}
7
+ `}}return{stdout:h,stderr:"",exitCode:0}}};function y(s,i){if(s.length===0)return"";if(s.length===1)return s[0];let n=s[0];for(let l=1;l<s.length;l++){let d=(l-1)%i.length;n+=i[d]+s[l]}return n}export{P as pasteCommand};
@@ -0,0 +1,14 @@
1
+ import{a as $}from"./chunk-44UOCSGV.js";import{a as v,b as C}from"./chunk-74CEPOFO.js";import{sprintf as p}from"sprintf-js";var A={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)"]},O={name:"printf",async execute(t,i){if(C(t))return v(A);if(t.length===0)return{stdout:"",stderr:`printf: usage: printf format [arguments]
2
+ `,exitCode:2};let e=null,n=0;for(;n<t.length;){let l=t[n];if(l==="--"){n++;break}if(l==="-v"){if(n+1>=t.length)return{stdout:"",stderr:`printf: -v: option requires an argument
3
+ `,exitCode:1};if(e=t[n+1],!/^[a-zA-Z_][a-zA-Z0-9_]*(\[[^\]]+\])?$/.test(e))return{stdout:"",stderr:`printf: \`${e}': not a valid identifier
4
+ `,exitCode:2};n+=2}else{if(l.startsWith("-")&&l!=="-")break;break}}if(n>=t.length)return{stdout:"",stderr:`printf: usage: printf format [arguments]
5
+ `,exitCode:1};let r=t[n],s=t.slice(n+1);try{let l=M(r),a="",o=0,c=!1,f="";do{let{result:b,argsConsumed:E,error:d,errMsg:h,stopped:g}=F(l,s,o);if(a+=b,o+=E,d&&(c=!0,h&&(f=h)),g)break}while(o<s.length&&o>0);return o===0&&s.length>0,e?(i.env[e]=a,{stdout:"",stderr:f,exitCode:c?1:0}):{stdout:a,stderr:f,exitCode:c?1:0}}catch(l){return{stdout:"",stderr:`printf: ${$(l)}
6
+ `,exitCode:1}}}};function M(t){let i="",e=0;for(;e<t.length;)if(t[e]==="\\"&&e+1<t.length)switch(t[e+1]){case"n":i+=`
7
+ `,e+=2;break;case"t":i+=" ",e+=2;break;case"r":i+="\r",e+=2;break;case"\\":i+="\\",e+=2;break;case"a":i+="\x07",e+=2;break;case"b":i+="\b",e+=2;break;case"f":i+="\f",e+=2;break;case"v":i+="\v",e+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let r="",s=e+1;for(;s<t.length&&s<e+4&&/[0-7]/.test(t[s]);)r+=t[s],s++;i+=String.fromCharCode(parseInt(r,8)),e=s;break}case"x":e+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(e+2,e+4))?(i+=String.fromCharCode(parseInt(t.slice(e+2,e+4),16)),e+=4):(i+=t[e],e++);break;default:i+=t[e],e++}else i+=t[e],e++;return i}function F(t,i,e){let n="",r=0,s=0,l=!1,a="";for(;r<t.length;)if(t[r]==="%"&&r+1<t.length){let o=r;if(r++,t[r]==="%"){n+="%",r++;continue}for(;r<t.length&&"+-0 #'".includes(t[r]);)r++;let c=!1;if(t[r]==="*")c=!0,r++;else for(;r<t.length&&/\d/.test(t[r]);)r++;let f=!1;if(t[r]===".")if(r++,t[r]==="*")f=!0,r++;else for(;r<t.length&&/\d/.test(t[r]);)r++;r<t.length&&"hlL".includes(t[r])&&r++;let b=t[r]||"";r++;let d=t.slice(o,r);if(c){let x=parseInt(i[e+s]||"0",10);s++,d=d.replace("*",String(x))}if(f){let x=parseInt(i[e+s]||"0",10);s++,d=d.replace(".*",`.${x}`)}let h=i[e+s]||"";s++;let{value:g,parseError:k,parseErrMsg:S,stopped:I}=W(d,b,h);if(n+=g,k&&(l=!0,S&&(a=S)),I)return{result:n,argsConsumed:s,error:l,errMsg:a,stopped:!0}}else n+=t[r],r++;return{result:n,argsConsumed:s,error:l,errMsg:a,stopped:!1}}function W(t,i,e){let n=!1,r="";switch(i){case"d":case"i":{let s=m(e);return n=u,n&&(r=`printf: ${e}: invalid number
8
+ `),{value:w(t,s),parseError:n,parseErrMsg:r}}case"o":{let s=m(e);return n=u,n&&(r=`printf: ${e}: invalid number
9
+ `),{value:y(t,s),parseError:n,parseErrMsg:r}}case"u":{let s=m(e);n=u,n&&(r=`printf: ${e}: invalid number
10
+ `);let l=s<0?s>>>0:s;return{value:w(t.replace("u","d"),l),parseError:n,parseErrMsg:r}}case"x":case"X":{let s=m(e);return n=u,n&&(r=`printf: ${e}: invalid number
11
+ `),{value:N(t,s),parseError:n,parseErrMsg:r}}case"e":case"E":case"f":case"F":case"g":case"G":{let s=parseFloat(e)||0;return{value:R(t,i,s),parseError:!1,parseErrMsg:""}}case"c":return{value:e.charAt(0)||"",parseError:!1,parseErrMsg:""};case"s":return{value:q(t,e),parseError:!1,parseErrMsg:""};case"q":return{value:z(t,e),parseError:!1,parseErrMsg:""};case"b":{let s=U(e);return{value:s.value,parseError:!1,parseErrMsg:"",stopped:s.stopped}}default:try{return{value:p(t,e),parseError:!1,parseErrMsg:""}}catch{return{value:"",parseError:!0,parseErrMsg:`printf: [sprintf] unexpected placeholder
12
+ `}}}}var u=!1;function m(t){u=!1;let i=t.trimStart(),e=i!==i.trimEnd();if(t=i.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 n=parseInt(t,16);return Number.isNaN(n)?(u=!0,0):(e&&(u=!0),n)}if(t.startsWith("0")&&t.length>1&&/^-?0[0-7]+$/.test(t))return e&&(u=!0),parseInt(t,8)||0;if(/^\d+#/.test(t)){u=!0;let n=t.match(/^(\d+)#/);return n?parseInt(n[1],10):0}if(t!==""&&!/^-?\d+$/.test(t)){u=!0;let n=parseInt(t,10);return Number.isNaN(n)?0:n}return e&&(u=!0),parseInt(t,10)||0}function w(t,i){let e=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[diu]$/);if(!e)return p(t.replace(/\.\d*/,""),i);let n=e[1]||"",r=e[2]?parseInt(e[2],10):0,s=e[3]!==void 0?e[4]?parseInt(e[4],10):0:-1,l=i<0,a=Math.abs(i),o=String(a);s>=0&&(o=o.padStart(s,"0"));let c="";l?c="-":n.includes("+")?c="+":n.includes(" ")&&(c=" ");let f=c+o;return r>f.length&&(n.includes("-")?f=f.padEnd(r," "):n.includes("0")&&s<0?f=c+o.padStart(r-c.length,"0"):f=f.padStart(r," ")),f}function y(t,i){let e=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?o$/);if(!e)return p(t,i);let n=e[1]||"",r=e[2]?parseInt(e[2],10):0,s=e[3]!==void 0?e[4]?parseInt(e[4],10):0:-1,l=Math.abs(i).toString(8);s>=0&&(l=l.padStart(s,"0")),n.includes("#")&&!l.startsWith("0")&&(l=`0${l}`);let a=l;return r>a.length&&(n.includes("-")?a=a.padEnd(r," "):n.includes("0")&&s<0?a=a.padStart(r,"0"):a=a.padStart(r," ")),a}function N(t,i){let e=t.includes("X"),n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[xX]$/);if(!n)return p(t,i);let r=n[1]||"",s=n[2]?parseInt(n[2],10):0,l=n[3]!==void 0?n[4]?parseInt(n[4],10):0:-1,a=Math.abs(i).toString(16);e&&(a=a.toUpperCase()),l>=0&&(a=a.padStart(l,"0"));let o="";r.includes("#")&&i!==0&&(o=e?"0X":"0x");let c=o+a;return s>c.length&&(r.includes("-")?c=c.padEnd(s," "):r.includes("0")&&l<0?c=o+a.padStart(s-o.length,"0"):c=c.padStart(s," ")),c}function j(t){if(t==="")return"''";if(/^[a-zA-Z0-9_./-]+$/.test(t))return t;if(/[\x00-\x1f\x7f]/.test(t)){let n="$'";for(let r of t){let s=r.charCodeAt(0);r==="'"?n+="\\'":r==="\\"?n+="\\\\":r===`
13
+ `?n+="\\n":r===" "?n+="\\t":r==="\r"?n+="\\r":r==="\x07"?n+="\\a":r==="\b"?n+="\\b":r==="\f"?n+="\\f":r==="\v"?n+="\\v":r==="\x1B"?n+="\\E":s<32||s>126?n+=`\\x${s.toString(16).padStart(2,"0")}`:r==='"'?n+='\\"':n+=r}return n+="'",n}let e="";for(let n of t)" |&;<>()$`\\\"'*?[#~=%!{}".includes(n)?e+=`\\${n}`:e+=n;return e}function q(t,i){let e=t.match(/^%(-?)(\d*)(\.(\d*))?s$/);if(!e)return p(t.replace(/0+(?=\d)/,""),i);let n=e[1]==="-",r=e[2]?parseInt(e[2],10):0,s=e[3]!==void 0?e[4]?parseInt(e[4],10):0:-1,l=i;return s>=0&&l.length>s&&(l=l.slice(0,s)),r>l.length&&(n?l=l.padEnd(r," "):l=l.padStart(r," ")),l}function z(t,i){let e=j(i),n=t.match(/^%(-?)(\d*)q$/);if(!n)return e;let r=n[1]==="-",s=n[2]?parseInt(n[2],10):0,l=e;return s>l.length&&(r?l=l.padEnd(s," "):l=l.padStart(s," ")),l}function R(t,i,e){let n=t.match(/^%([- +#0']*)(\d*)(\.(\d*))?[eEfFgG]$/);if(!n)return p(t,e);let r=n[1]||"",s=n[2]?parseInt(n[2],10):0,l=n[3]!==void 0?n[4]?parseInt(n[4],10):0:6,a,o=i.toLowerCase();if(o==="e"?(a=e.toExponential(l),a=a.replace(/e([+-])(\d)$/,"e$10$2"),i==="E"&&(a=a.toUpperCase())):o==="f"?(a=e.toFixed(l),r.includes("#")&&l===0&&!a.includes(".")&&(a+=".")):o==="g"?(a=e.toPrecision(l||1),r.includes("#")||(a=a.replace(/\.?0+$/,""),a=a.replace(/\.?0+e/,"e")),a=a.replace(/e([+-])(\d)$/,"e$10$2"),i==="G"&&(a=a.toUpperCase())):a=e.toString(),e>=0&&(r.includes("+")?a=`+${a}`:r.includes(" ")&&(a=` ${a}`)),s>a.length)if(r.includes("-"))a=a.padEnd(s," ");else if(r.includes("0")){let c=a.match(/^[+ -]/)?.[0]||"",f=c?a.slice(1):a;a=c+f.padStart(s-c.length,"0")}else a=a.padStart(s," ");return a}function U(t){let i="",e=0;for(;e<t.length;)if(t[e]==="\\"&&e+1<t.length)switch(t[e+1]){case"n":i+=`
14
+ `,e+=2;break;case"t":i+=" ",e+=2;break;case"r":i+="\r",e+=2;break;case"\\":i+="\\",e+=2;break;case"a":i+="\x07",e+=2;break;case"b":i+="\b",e+=2;break;case"f":i+="\f",e+=2;break;case"v":i+="\v",e+=2;break;case"c":return{value:i,stopped:!0};case"x":{let r="",s=e+2;for(;s<t.length&&s<e+4&&/[0-9a-fA-F]/.test(t[s]);)r+=t[s],s++;r?(i+=String.fromCharCode(parseInt(r,16)),e=s):(i+="\\x",e+=2);break}case"u":{let r="",s=e+2;for(;s<t.length&&s<e+6&&/[0-9a-fA-F]/.test(t[s]);)r+=t[s],s++;r?(i+=String.fromCodePoint(parseInt(r,16)),e=s):(i+="\\u",e+=2);break}case"0":{let r="",s=e+2;for(;s<t.length&&s<e+5&&/[0-7]/.test(t[s]);)r+=t[s],s++;r?i+=String.fromCharCode(parseInt(r,8)):i+="\0",e=s;break}case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let r="",s=e+1;for(;s<t.length&&s<e+4&&/[0-7]/.test(t[s]);)r+=t[s],s++;i+=String.fromCharCode(parseInt(r,8)),e=s;break}default:i+=t[e],e++}else i+=t[e],e++;return{value:i,stopped:!1}}export{O as printfCommand};
@@ -0,0 +1,2 @@
1
+ var d={name:"pwd",async execute(t,e){return{stdout:`${e.cwd}
2
+ `,stderr:"",exitCode:0}}};export{d as pwdCommand};
@@ -0,0 +1,6 @@
1
+ import{a as h,b as u}from"./chunk-74CEPOFO.js";var m={name:"readlink",summary:"print resolved symbolic links or canonical file names",usage:"readlink [OPTIONS] FILE...",options:["-f canonicalize by following every symlink in every component of the given name recursively"," --help display this help and exit"]},y={name:"readlink",async execute(i,r){if(u(i))return h(m);let s=!1,t=0;for(;t<i.length&&i[t].startsWith("-");){let n=i[t];if(n==="-f"||n==="--canonicalize")s=!0,t++;else if(n==="--"){t++;break}else return{stdout:"",stderr:`readlink: invalid option -- '${n.slice(1)}'
2
+ `,exitCode:1}}let d=i.slice(t);if(d.length===0)return{stdout:"",stderr:`readlink: missing operand
3
+ `,exitCode:1};let l="",c=!1;for(let n of d){let a=r.fs.resolvePath(r.cwd,n);try{if(s){let e=a,f=new Set;for(;!f.has(e);){f.add(e);try{let o=await r.fs.readlink(e);if(o.startsWith("/"))e=o;else{let k=e.substring(0,e.lastIndexOf("/"))||"/";e=r.fs.resolvePath(k,o)}}catch{break}}l+=`${e}
4
+ `}else{let e=await r.fs.readlink(a);l+=`${e}
5
+ `}}catch{s?l+=`${a}
6
+ `:c=!0}}return{stdout:l,stderr:"",exitCode:c?1:0}}};export{y as readlinkCommand};
@@ -0,0 +1,7 @@
1
+ import{a as u}from"./chunk-ZVV5VXYZ.js";import{a as m}from"./chunk-44UOCSGV.js";import"./chunk-74CEPOFO.js";var v={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},force:{short:"f",long:"force",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},y={name:"rm",async execute(d,s){let e=u("rm",d,v);if(!e.ok)return e.error;let a=e.result.flags.recursive||e.result.flags.recursiveUpper,c=e.result.flags.force,p=e.result.flags.verbose,l=e.result.positional;if(l.length===0)return c?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:`rm: missing operand
2
+ `,exitCode:1};let f="",t="",i=0;for(let r of l)try{let n=s.fs.resolvePath(s.cwd,r);if((await s.fs.stat(n)).isDirectory&&!a){t+=`rm: cannot remove '${r}': Is a directory
3
+ `,i=1;continue}await s.fs.rm(n,{recursive:a,force:c}),p&&(f+=`removed '${r}'
4
+ `)}catch(n){if(!c){let o=m(n);o.includes("ENOENT")||o.includes("no such file")?t+=`rm: cannot remove '${r}': No such file or directory
5
+ `:o.includes("ENOTEMPTY")||o.includes("not empty")?t+=`rm: cannot remove '${r}': Directory not empty
6
+ `:t+=`rm: cannot remove '${r}': ${o}
7
+ `,i=1}}return{stdout:f,stderr:t,exitCode:i}}};export{y as rmCommand};
@@ -0,0 +1,47 @@
1
+ import{i as $}from"./chunk-JYYFSUWP.js";import{a as I,b as N,c as S}from"./chunk-74CEPOFO.js";var R=1e4;function W(t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:t,deleted:!1,printed:!1,quit:!1,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],restartCycle:!1}}function _(t){return typeof t=="object"&&"first"in t&&"step"in t}function M(t,e,i,s){if(t==="$")return e===i;if(typeof t=="number")return e===t;if(_(t)){let{first:n,step:a}=t;return a===0?e===n:(e-n)%a===0&&e>=n}if(typeof t=="object"&&"pattern"in t)try{return new RegExp(t.pattern).test(s)}catch{return!1}return!1}function x(t,e,i,s){if(!t||!t.start&&!t.end)return!0;let n=t.start,a=t.end;if(n!==void 0&&a===void 0)return M(n,e,i,s);if(n!==void 0&&a!==void 0){let r=typeof n=="number"?n:n==="$"?i:1,o=typeof a=="number"?a:i;return typeof n=="object"&&"pattern"in n&&M(n,e,i,s)?!0:e>=r&&e<=o}return!0}function O(t,e,i){let s="",n=0;for(;n<t.length;){if(t[n]==="\\"&&n+1<t.length){let a=t[n+1];if(a==="&"){s+="&",n+=2;continue}if(a==="n"){s+=`
2
+ `,n+=2;continue}if(a==="t"){s+=" ",n+=2;continue}let r=parseInt(a,10);if(r>=1&&r<=9){s+=i[r-1]||"",n+=2;continue}s+=a,n+=2;continue}if(t[n]==="&"){s+=e,n++;continue}s+=t[n],n++}return s}function v(t,e){let{lineNumber:i,totalLines:s,patternSpace:n}=e;if(t.type!=="label"&&x(t.address,i,s,n))switch(t.type){case"substitute":{let a=t,r="";a.global&&(r+="g"),a.ignoreCase&&(r+="i");try{let o=new RegExp(a.pattern,r),u=e.patternSpace;if(a.nthOccurrence&&a.nthOccurrence>0&&!a.global){let l=0,p=a.nthOccurrence;e.patternSpace=e.patternSpace.replace(new RegExp(a.pattern,`g${a.ignoreCase?"i":""}`),(d,...c)=>{if(l++,l===p){let h=c.slice(0,-2);return O(a.replacement,d,h)}return d})}else e.patternSpace=e.patternSpace.replace(o,(l,...p)=>{let d=p.slice(0,-2);return O(a.replacement,l,d)});u!==e.patternSpace&&(e.substitutionMade=!0,a.printOnMatch&&(e.printed=!0))}catch{}break}case"print":e.printed=!0;break;case"printFirstLine":{let a=e.patternSpace.indexOf(`
3
+ `);a!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,a)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let a=e.patternSpace.indexOf(`
4
+ `);a!==-1?(e.patternSpace=e.patternSpace.slice(a+1),e.restartCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(t.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${t.text}`);break;case"change":e.patternSpace=t.text,e.deleted=!0,e.appendBuffer.push(t.text);break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
5
+ ${e.patternSpace}`:e.holdSpace=e.patternSpace;break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
6
+ ${e.holdSpace}`;break;case"exchange":{let a=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=a;break}case"next":e.printed=!0;break;case"quit":e.quit=!0;break;case"transliterate":e.patternSpace=P(e.patternSpace,t);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function P(t,e){let i="";for(let s of t){let n=e.source.indexOf(s);n!==-1?i+=e.dest[n]:i+=s}return i}function y(t,e,i,s){let n=new Map;for(let f=0;f<t.length;f++){let l=t[f];l.type==="label"&&n.set(l.name,f)}let a=s?.maxIterations??R,r=0,o=0,u=0;for(;u<t.length;){if(r++,r>a)throw new $(`sed: command execution exceeded maximum iterations (${a})`,"iterations");if(e.deleted||e.quit||e.restartCycle)break;let f=t[u];if(f.type==="nextAppend"){if(x(f.address,e.lineNumber,e.totalLines,e.patternSpace))if(i&&i.currentLineIndex+o+1<i.lines.length){o++;let l=i.lines[i.currentLineIndex+o];e.patternSpace+=`
7
+ ${l}`,e.lineNumber=i.currentLineIndex+o+1}else{e.quit=!0,e.deleted=!0;break}u++;continue}if(f.type==="branch"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)){if(l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="branchOnSubst"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&e.substitutionMade){if(e.substitutionMade=!1,l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="branchOnNoSubst"){let l=f;if(x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&!e.substitutionMade){if(l.label){let p=n.get(l.label);if(p!==void 0){u=p;continue}}break}u++;continue}if(f.type==="group"){let l=f;x(l.address,e.lineNumber,e.totalLines,e.patternSpace)&&y(l.commands,e,i,s),u++;continue}v(f,e),u++}return o}var A={r:"r (read file) - file operations not supported",R:"R (read line from file) - file operations not supported",w:"w (write to file) - file operations not supported",W:"W (write first line to file) - file operations not supported",e:"e (execute shell command) - shell execution not supported",l:"l (list/escape special chars) - not implemented",F:"F (print filename) - not implemented",Q:"Q (quit without printing) - use 'q' instead",v:"v (version check) - not implemented"};function C(t){if(t==="$")return"$";let e=t.match(/^(\d+)~(\d+)$/);if(e)return{first:parseInt(e[1],10),step:parseInt(e[2],10)};let i=parseInt(t,10);if(!Number.isNaN(i))return i;if(t.startsWith("/")&&t.endsWith("/"))return{pattern:t.slice(1,-1)}}function T(t){let e=t,i,s,n=e.match(/^(\d+)~(\d+)/);if(n)return i={first:parseInt(n[1],10),step:parseInt(n[2],10)},e=e.slice(n[0].length),{range:{start:i,end:void 0},rest:e};if(e.startsWith("$")){if(i="$",e=e.slice(1),e.startsWith(",")){e=e.slice(1);let r=e.match(/^(\d+|\$)/);r&&(s=C(r[1]),e=e.slice(r[0].length))}return{range:{start:i,end:s},rest:e}}let a=e.match(/^(\d+)/);if(a){if(i=parseInt(a[1],10),e=e.slice(a[0].length),e.startsWith(",")){e=e.slice(1);let r=e.match(/^(\d+|\$)/);r&&(s=C(r[1]),e=e.slice(r[0].length))}return{range:{start:i,end:s},rest:e}}if(e.startsWith("/")){let r=1;for(;r<e.length&&e[r]!=="/";)e[r]==="\\"&&r+1<e.length?r+=2:r++;if(r<e.length){if(i={pattern:e.slice(1,r)},e=e.slice(r+1),e.startsWith(","))if(e=e.slice(1),e.startsWith("/")){let o=1;for(;o<e.length&&e[o]!=="/";)e[o]==="\\"&&o+1<e.length?o+=2:o++;o<e.length&&(s={pattern:e.slice(1,o)},e=e.slice(o+1))}else{let o=e.match(/^(\d+|\$)/);o&&(s=C(o[1]),e=e.slice(o[0].length))}return{range:{start:i,end:s},rest:e}}}return{rest:e}}function q(t){let e=t.trim();if(!e)return{command:null};let{range:i,rest:s}=T(e),n=s.trim();if(!n&&i)return{command:{type:"print",address:i}};let a=n[0];switch(a){case"p":return{command:{type:"print",address:i}};case"d":return{command:{type:"delete",address:i}};case"h":return{command:{type:"hold",address:i}};case"H":return{command:{type:"holdAppend",address:i}};case"g":if(n.length===1||/^\s/.test(n[1]))return{command:{type:"get",address:i}};break;case"G":return{command:{type:"getAppend",address:i}};case"x":return{command:{type:"exchange",address:i}};case"n":return{command:{type:"next",address:i}};case"N":return{command:{type:"nextAppend",address:i}};case"P":return{command:{type:"printFirstLine",address:i}};case"D":return{command:{type:"deleteFirstLine",address:i}};case"q":return{command:{type:"quit",address:i}};case"z":return{command:{type:"zap",address:i}};case"=":return{command:{type:"lineNumber",address:i}};case"y":return D(n,i);case"b":{let r=n.slice(1).trim();return{command:{type:"branch",address:i,label:r||void 0}}}case"t":{let r=n.slice(1).trim();return{command:{type:"branchOnSubst",address:i,label:r||void 0}}}case"T":{let r=n.slice(1).trim();return{command:{type:"branchOnNoSubst",address:i,label:r||void 0}}}case"{":return B(n,i);case":":{let r=n.slice(1).trim();return r?{command:{type:"label",name:r}}:{command:null,error:"missing label name"}}case"a":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"append",address:i,text:r}}}break;case"i":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"insert",address:i,text:r}}}break;case"c":if(n[1]==="\\"||n[1]===" "){let r=n.slice(2).replace(/^[\s]*/,"");return{command:{type:"change",address:i,text:r}}}break;case"s":return L(n,i)}return n.startsWith("s")?L(n,i):a&&A[a]?{command:null,error:`unsupported command: ${A[a]}`}:{command:null,error:`invalid command: ${t}`}}function D(t,e){if(!t.startsWith("y")||t.length<4)return{command:null,error:"invalid transliteration"};let i=t[1],s=2,n="",a="";for(;s<t.length&&t[s]!==i;)if(t[s]==="\\"&&s+1<t.length){let r=t[s+1];r==="n"?n+=`
8
+ `:r==="t"?n+=" ":n+=r,s+=2}else n+=t[s],s++;if(s>=t.length)return{command:null,error:"unterminated transliteration source"};for(s++;s<t.length&&t[s]!==i;)if(t[s]==="\\"&&s+1<t.length){let r=t[s+1];r==="n"?a+=`
9
+ `:r==="t"?a+=" ":a+=r,s+=2}else a+=t[s],s++;return n.length!==a.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:e,source:n,dest:a}}}function L(t,e){if(!t.startsWith("s")||t.length<4)return{command:null,error:"invalid substitution"};let i=t[1],s="",n="",a="",r=2;for(;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length?(s+=t[r]+t[r+1],r+=2):(s+=t[r],r++);if(r>=t.length)return{command:null,error:"unterminated substitution pattern"};for(r++;r<t.length&&t[r]!==i;)t[r]==="\\"&&r+1<t.length?(n+=t[r]+t[r+1],r+=2):(n+=t[r],r++);r<t.length&&(r++,a=t.slice(r));let o,u=a.match(/(\d+)/);return u&&(o=parseInt(u[1],10)),{command:{type:"substitute",address:e,pattern:s,replacement:n,global:a.includes("g"),ignoreCase:a.includes("i"),printOnMatch:a.includes("p"),nthOccurrence:o}}}function B(t,e){let i=1,s=1,n=!1,a="",r=0;for(;s<t.length&&i>0;){let l=t[s];if(l==="\\"&&s+1<t.length){s+=2;continue}if(!n&&l==="s"&&s+1<t.length&&/[^a-zA-Z0-9]/.test(t[s+1])){n=!0,a=t[s+1],r=0,s++;continue}if(n&&l===a){r++,r>=3&&(n=!1),s++;continue}n||(l==="{"?i++:l==="}"&&i--),s++}if(i!==0)return{command:null,error:"unmatched brace in grouped commands"};let o=t.slice(1,s-1).trim(),u=F(o),f=[];for(let l of u){let p=q(l);if(p.error)return{command:null,error:p.error};p.command&&f.push(p.command)}return{command:{type:"group",address:e,commands:f}}}function E(t,e=!1){let i=[];for(let s of t){let n=F(s);for(let a of n){let r=q(a);if(r.error)return{commands:[],error:r.error};r.command&&(r.command.type==="substitute"&&e&&(r.command.extendedRegex=!0),i.push(r.command))}}return{commands:i}}function F(t){let e=[],i="",s=!1,n="",a=0,r=0,o=0;for(;o<t.length;){let u=t[o];if(u==="\\"&&o+1<t.length){i+=u+t[o+1],o+=2;continue}if(!s){if(u==="{"){r++,i+=u,o++;continue}if(u==="}"){r--,i+=u,o++;continue}}if(!s&&u==="s"&&o+1<t.length&&/[^a-zA-Z0-9]/.test(t[o+1])){n=t[o+1],a=0,s=!0,i+=u,o++;continue}if(s&&u===n){a++,i+=u,a>=3&&(s=!1),o++;continue}if(!s&&r===0&&u===";"){i.trim()&&e.push(i.trim()),i="",o++;continue}i+=u,o++}return i.trim()&&e.push(i.trim()),e}var z={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
10
+ s/regexp/replacement/[flags] substitute
11
+ d delete pattern space
12
+ p print pattern space
13
+ a\\ text append text after line
14
+ i\\ text insert text before line
15
+ c\\ text change (replace) line with text
16
+ h copy pattern space to hold space
17
+ H append pattern space to hold space
18
+ g copy hold space to pattern space
19
+ G append hold space to pattern space
20
+ x exchange pattern and hold spaces
21
+ n read next line into pattern space
22
+ N append next line to pattern space
23
+ y/source/dest/ transliterate characters
24
+ = print line number
25
+ b [label] branch to label
26
+ t [label] branch on substitution
27
+ :label define label
28
+ q quit
29
+
30
+ Addresses:
31
+ N line number
32
+ $ last line
33
+ /regexp/ lines matching regexp
34
+ N,M range from line N to M`};function w(t,e,i,s){let n=t.split(`
35
+ `);n.length>0&&n[n.length-1]===""&&n.pop();let a=n.length,r="",o="",u=!1,f=s?{maxIterations:s.maxSedIterations}:void 0;for(let l=0;l<n.length;l++){let p={...W(a),patternSpace:n[l],holdSpace:o,lineNumber:l+1,totalLines:a,substitutionMade:!1},d={lines:n,currentLineIndex:l},c=0,h=1e4,b=0;do{if(c++,c>h)break;p.restartCycle=!1;let m=y(e,p,d,f);b+=m,d.currentLineIndex+=m}while(p.restartCycle&&!p.deleted&&!p.quit);l+=b,o=p.holdSpace,u=p.substitutionMade;for(let m of p.lineNumberOutput)r+=`${m}
36
+ `;let g=[],k=[];for(let m of p.appendBuffer)m.startsWith("__INSERT__")?g.push(m.slice(10)):k.push(m);for(let m of g)r+=`${m}
37
+ `;p.deleted||(i?p.printed&&(r+=`${p.patternSpace}
38
+ `):r+=`${p.patternSpace}
39
+ `);for(let m of k)r+=`${m}
40
+ `;if(p.quit)break}return r}var X={name:"sed",async execute(t,e){if(N(t))return I(z);let i=[],s=[],n=!1,a=!1,r=!1,o=[];for(let d=0;d<t.length;d++){let c=t[d];if(c==="-n"||c==="--quiet"||c==="--silent")n=!0;else if(c==="-i"||c==="--in-place")a=!0;else if(c.startsWith("-i"))a=!0;else if(c==="-E"||c==="-r"||c==="--regexp-extended")r=!0;else if(c==="-e")d+1<t.length&&i.push(t[++d]);else if(c==="-f")d+1<t.length&&s.push(t[++d]);else{if(c.startsWith("--"))return S("sed",c);if(c.startsWith("-")&&c.length>1){for(let h of c.slice(1))if(h!=="n"&&h!=="e"&&h!=="f"&&h!=="i"&&h!=="E"&&h!=="r")return S("sed",`-${h}`);c.includes("n")&&(n=!0),c.includes("i")&&(a=!0),(c.includes("E")||c.includes("r"))&&(r=!0),c.includes("e")&&!c.includes("n")&&!c.includes("i")&&d+1<t.length&&i.push(t[++d]),c.includes("f")&&!c.includes("e")&&d+1<t.length&&s.push(t[++d])}else!c.startsWith("-")&&i.length===0&&s.length===0?i.push(c):c.startsWith("-")||o.push(c)}}for(let d of s){let c=e.fs.resolvePath(e.cwd,d);try{let h=await e.fs.readFile(c);for(let b of h.split(`
41
+ `)){let g=b.trim();g&&!g.startsWith("#")&&i.push(g)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${d}: No such file or directory
42
+ `,exitCode:1}}}if(i.length===0)return{stdout:"",stderr:`sed: no script specified
43
+ `,exitCode:1};let{commands:u,error:f}=E(i,r);if(f)return{stdout:"",stderr:`sed: ${f}
44
+ `,exitCode:1};if(u.length===0)return{stdout:"",stderr:`sed: no valid commands
45
+ `,exitCode:1};let l="";if(o.length===0)return l=e.stdin,{stdout:w(l,u,n,e.limits),stderr:"",exitCode:0};if(a){for(let d of o){let c=e.fs.resolvePath(e.cwd,d);try{let h=await e.fs.readFile(c),b=w(h,u,n,e.limits);await e.fs.writeFile(c,b)}catch{return{stdout:"",stderr:`sed: ${d}: No such file or directory
46
+ `,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}for(let d of o){let c=e.fs.resolvePath(e.cwd,d);try{l+=await e.fs.readFile(c)}catch{return{stdout:"",stderr:`sed: ${d}: No such file or directory
47
+ `,exitCode:1}}}return{stdout:w(l,u,n,e.limits),stderr:"",exitCode:0}}};export{X as sedCommand};
@@ -0,0 +1,6 @@
1
+ var F={name:"seq",async execute(r){let d=`
2
+ `,h=!1,i=[],e=0;for(;e<r.length;){let t=r[e];if(t==="-s"&&e+1<r.length){d=r[e+1],e+=2;continue}if(t==="-w"){h=!0,e++;continue}if(t==="--"){e++;break}if(t.startsWith("-")&&t!=="-"){if(t.startsWith("-s")&&t.length>2){d=t.slice(2),e++;continue}if((t==="-ws"||t==="-sw")&&(h=!0,e+1<r.length)){d=r[e+1],e+=2;continue}}i.push(t),e++}for(;e<r.length;)i.push(r[e]),e++;if(i.length===0)return{stdout:"",stderr:`seq: missing operand
3
+ `,exitCode:1};let l=1,o=1,a;if(i.length===1?a=parseFloat(i[0]):i.length===2?(l=parseFloat(i[0]),a=parseFloat(i[1])):(l=parseFloat(i[0]),o=parseFloat(i[1]),a=parseFloat(i[2])),Number.isNaN(l)||Number.isNaN(o)||Number.isNaN(a))return{stdout:"",stderr:`seq: invalid floating point argument: '${i.find(n=>Number.isNaN(parseFloat(n)))}'
4
+ `,exitCode:1};if(o===0)return{stdout:"",stderr:`seq: invalid Zero increment value: '0'
5
+ `,exitCode:1};let s=[],f=t=>{let n=String(t),u=n.indexOf(".");return u===-1?0:n.length-u-1},c=Math.max(f(l),f(o),f(a)),p=1e5,m=0;if(o>0)for(let t=l;t<=a+1e-10&&!(m++>p);t+=o)s.push(c>0?t.toFixed(c):String(Math.round(t)));else for(let t=l;t>=a-1e-10&&!(m++>p);t+=o)s.push(c>0?t.toFixed(c):String(Math.round(t)));if(h&&s.length>0){let t=Math.max(...s.map(n=>n.replace("-","").length));for(let n=0;n<s.length;n++){let u=s[n].startsWith("-"),x=(u?s[n].slice(1):s[n]).padStart(t,"0");s[n]=u?`-${x}`:x}}let g=s.join(d);return{stdout:g?`${g}
6
+ `:"",stderr:"",exitCode:0}}};export{F as seqCommand};
@@ -0,0 +1,9 @@
1
+ import{a,b as o}from"./chunk-74CEPOFO.js";var i={name:"sleep",summary:"delay for a specified amount of time",usage:"sleep NUMBER[SUFFIX]",description:`Pause for NUMBER seconds. SUFFIX may be:
2
+ s - seconds (default)
3
+ m - minutes
4
+ h - hours
5
+ d - days
6
+
7
+ NUMBER may be a decimal number.`,options:[" --help display this help and exit"]};function l(t){let s=t.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!s)return null;let e=parseFloat(s[1]);switch(s[2]||"s"){case"s":return e*1e3;case"m":return e*60*1e3;case"h":return e*60*60*1e3;case"d":return e*24*60*60*1e3;default:return null}}var d={name:"sleep",async execute(t,s){if(o(t))return a(i);if(t.length===0)return{stdout:"",stderr:`sleep: missing operand
8
+ `,exitCode:1};let e=0;for(let n of t){let r=l(n);if(r===null)return{stdout:"",stderr:`sleep: invalid time interval '${n}'
9
+ `,exitCode:1};e+=r}return s.sleep?await s.sleep(e):await new Promise(n=>setTimeout(n,e)),{stdout:"",stderr:"",exitCode:0}}};export{d as sleepCommand};
@@ -0,0 +1,14 @@
1
+ import{b as F}from"./chunk-3YNHMZ5M.js";import{a as v,b as y,c as C}from"./chunk-74CEPOFO.js";function k(u,t,r){let f=r!==null?r:/\s+/,a=u.split(f),s=t.startField-1;if(s>=a.length)return"";if(t.endField===void 0){let i=a[s]||"";return t.startChar!==void 0&&(i=i.slice(t.startChar-1)),t.ignoreLeading&&(i=i.trimStart()),i}let l=Math.min(t.endField-1,a.length-1),c="";for(let i=s;i<=l&&i<a.length;i++){let o=a[i]||"";if(i===s&&t.startChar!==void 0&&(o=o.slice(t.startChar-1)),i===l&&t.endChar!==void 0){let e=i===s&&t.startChar!==void 0?t.endChar-t.startChar+1:t.endChar;o=o.slice(0,e)}i>s&&(c+=r||" "),c+=o}return t.ignoreLeading&&(c=c.trimStart()),c}function S(u,t,r,f){if(r){let l=parseFloat(u)||0,c=parseFloat(t)||0;return l-c}let a=u,s=t;return f&&(a=a.toLowerCase(),s=s.toLowerCase()),a.localeCompare(s)}function b(u){let{keys:t,fieldDelimiter:r,numeric:f,ignoreCase:a,reverse:s}=u;return(l,c)=>{if(t.length===0){let o=l,e=c;a&&(o=o.toLowerCase(),e=e.toLowerCase());let n;if(f){let d=parseFloat(o)||0,h=parseFloat(e)||0;if(n=d-h,n===0){let p=o.localeCompare(e);return s?-p:p}}else n=o.localeCompare(e);return s?-n:n}for(let o of t){let e=k(l,o,r),n=k(c,o,r),d=o.numeric??f,h=o.ignoreCase??a,p=o.reverse??s,g=S(e,n,d,h);if(g!==0)return p?-g:g}let i=l.localeCompare(c);return s?-i:i}}function w(u,t){if(t.keys.length===0){if(t.ignoreCase){let a=new Set;return u.filter(s=>{let l=s.toLowerCase();return a.has(l)?!1:(a.add(l),!0)})}return[...new Set(u)]}let r=t.keys[0],f=new Set;return u.filter(a=>{let s=k(a,r,t.fieldDelimiter);return(r.ignoreCase??t.ignoreCase)&&(s=s.toLowerCase()),f.has(s)?!1:(f.add(s),!0)})}function m(u){let t={startField:1},r="",f=u,a=f.match(/([nrfb]+)$/i);a&&(r=a[1].toLowerCase(),f=f.slice(0,-r.length)),r.includes("n")&&(t.numeric=!0),r.includes("r")&&(t.reverse=!0),r.includes("f")&&(t.ignoreCase=!0),r.includes("b")&&(t.ignoreLeading=!0);let s=f.split(",");if(s.length===0||s[0]==="")return null;let l=s[0].split("."),c=parseInt(l[0],10);if(Number.isNaN(c)||c<1)return null;if(t.startField=c,l.length>1&&l[1]){let i=parseInt(l[1],10);!Number.isNaN(i)&&i>=1&&(t.startChar=i)}if(s.length>1&&s[1]){let i=s[1],o=i.match(/([nrfb]+)$/i);if(o){let n=o[1].toLowerCase();n.includes("n")&&(t.numeric=!0),n.includes("r")&&(t.reverse=!0),n.includes("f")&&(t.ignoreCase=!0),n.includes("b")&&(t.ignoreLeading=!0),i=i.slice(0,-n.length)}let e=i.split(".");if(e[0]){let n=parseInt(e[0],10);if(!Number.isNaN(n)&&n>=1&&(t.endField=n),e.length>1&&e[1]){let d=parseInt(e[1],10);!Number.isNaN(d)&&d>=1&&(t.endChar=d)}}}return t}var N={name:"sort",summary:"sort lines of text files",usage:"sort [OPTION]... [FILE]...",options:["-f, --ignore-case fold lower case to upper case characters","-n, --numeric-sort compare according to string numerical value","-r, --reverse reverse the result of comparisons","-u, --unique output only unique lines","-k, --key=KEYDEF sort via a key; KEYDEF gives location and type","-t, --field-separator=SEP use SEP as field separator"," --help display this help and exit"],description:`KEYDEF is F[.C][OPTS][,F[.C][OPTS]]
2
+ F is a field number (1-indexed)
3
+ C is a character position within the field (1-indexed)
4
+ OPTS can be: n (numeric), r (reverse), f (fold case), b (ignore blanks)
5
+
6
+ Examples:
7
+ -k1 sort by first field
8
+ -k2,2 sort by second field only
9
+ -k1.3 sort by first field starting at 3rd character
10
+ -k1,2n sort by fields 1-2 numerically
11
+ -k2 -k1 sort by field 2, then by field 1`},D={name:"sort",async execute(u,t){if(y(u))return v(N);let r={reverse:!1,numeric:!1,unique:!1,ignoreCase:!1,keys:[],fieldDelimiter:null},f=[];for(let o=0;o<u.length;o++){let e=u[o];if(e==="-r"||e==="--reverse")r.reverse=!0;else if(e==="-n"||e==="--numeric-sort")r.numeric=!0;else if(e==="-u"||e==="--unique")r.unique=!0;else if(e==="-f"||e==="--ignore-case")r.ignoreCase=!0;else if(e==="-t"||e==="--field-separator")r.fieldDelimiter=u[++o]||null;else if(e.startsWith("-t"))r.fieldDelimiter=e.slice(2)||null;else if(e.startsWith("--field-separator="))r.fieldDelimiter=e.slice(18)||null;else if(e==="-k"||e==="--key"){let n=u[++o];if(n){let d=m(n);d&&r.keys.push(d)}}else if(e.startsWith("-k")){let n=m(e.slice(2));n&&r.keys.push(n)}else if(e.startsWith("--key=")){let n=m(e.slice(6));n&&r.keys.push(n)}else{if(e.startsWith("--"))return C("sort",e);if(e.startsWith("-")&&!e.startsWith("--")){let n=!1;for(let d of e.slice(1))if(d==="r")r.reverse=!0;else if(d==="n")r.numeric=!0;else if(d==="u")r.unique=!0;else if(d==="f")r.ignoreCase=!0;else{n=!0;break}if(n)return C("sort",e)}else f.push(e)}}let a=await F(t,f,{cmdName:"sort"});if(!a.ok)return a.error;let l=a.content.split(`
12
+ `);l.length>0&&l[l.length-1]===""&&l.pop();let c=b(r);return l.sort(c),r.unique&&(l=w(l,r)),{stdout:l.length>0?`${l.join(`
13
+ `)}
14
+ `:"",stderr:"",exitCode:0}}};export{D as sortCommand};
@@ -0,0 +1,8 @@
1
+ import{a as d}from"./chunk-ZVV5VXYZ.js";import{a as u,b as g}from"./chunk-74CEPOFO.js";var S={name:"stat",summary:"display file or file system status",usage:"stat [OPTION]... FILE...",options:["-c FORMAT use the specified FORMAT instead of the default"," --help display this help and exit"]},$={format:{short:"c",type:"string"}},x={name:"stat",async execute(e,a){if(g(e))return u(S);let s=d("stat",e,$);if(!s.ok)return s.error;let n=s.result.flags.format??null,c=s.result.positional;if(c.length===0)return{stdout:"",stderr:`stat: missing operand
2
+ `,exitCode:1};let o="",p="",f=!1;for(let i of c){let h=a.fs.resolvePath(a.cwd,i);try{let r=await a.fs.stat(h);if(n){let t=n,l=r.mode.toString(8),y=m(r.mode,r.isDirectory);t=t.replace(/%n/g,i),t=t.replace(/%N/g,`'${i}'`),t=t.replace(/%s/g,String(r.size)),t=t.replace(/%F/g,r.isDirectory?"directory":"regular file"),t=t.replace(/%a/g,l),t=t.replace(/%A/g,y),t=t.replace(/%u/g,"1000"),t=t.replace(/%U/g,"user"),t=t.replace(/%g/g,"1000"),t=t.replace(/%G/g,"group"),o+=`${t}
3
+ `}else{let t=r.mode.toString(8).padStart(4,"0"),l=m(r.mode,r.isDirectory);o+=` File: ${i}
4
+ `,o+=` Size: ${r.size} Blocks: ${Math.ceil(r.size/512)}
5
+ `,o+=`Access: (${t}/${l})
6
+ `,o+=`Modify: ${r.mtime.toISOString()}
7
+ `}}catch{p+=`stat: cannot stat '${i}': No such file or directory
8
+ `,f=!0}}return{stdout:o,stderr:p,exitCode:f?1:0}}};function m(e,a){let s=a?"d":"-",n=[e&256?"r":"-",e&128?"w":"-",e&64?"x":"-",e&32?"r":"-",e&16?"w":"-",e&8?"x":"-",e&4?"r":"-",e&2?"w":"-",e&1?"x":"-"];return s+n.join("")}export{x as statCommand};
@@ -0,0 +1 @@
1
+ import{a,b as n,d as l}from"./chunk-W2EKKAIL.js";import{a as i,b as s}from"./chunk-74CEPOFO.js";var h={name:"tail",summary:"output the last part of files",usage:"tail [OPTION]... [FILE]...",options:["-c, --bytes=NUM print the last NUM bytes","-n, --lines=NUM print the last NUM lines (default 10)","-n +NUM print starting from line NUM","-q, --quiet never print headers giving file names","-v, --verbose always print headers giving file names"," --help display this help and exit"]},c={name:"tail",async execute(t,r){if(s(t))return i(h);let e=a(t,"tail");if(!e.ok)return e.error;let{lines:o,bytes:p,fromLine:m}=e.options;return n(r,e.options,"tail",f=>l(f,o,p,m??!1))}};export{c as tailCommand};
@@ -0,0 +1,2 @@
1
+ import{a as d}from"./chunk-ZVV5VXYZ.js";import{a as p,b as l}from"./chunk-74CEPOFO.js";var h={name:"tee",summary:"read from stdin and write to stdout and files",usage:"tee [OPTION]... [FILE]...",options:["-a, --append append to the given FILEs, do not overwrite"," --help display this help and exit"]},m={append:{short:"a",long:"append",type:"boolean"}},g={name:"tee",async execute(r,e){if(l(r))return p(h);let t=d("tee",r,m);if(!t.ok)return t.error;let{append:f}=t.result.flags,c=t.result.positional,o=e.stdin,n="",a=0;for(let i of c)try{let s=e.fs.resolvePath(e.cwd,i);f?await e.fs.appendFile(s,o):await e.fs.writeFile(s,o)}catch{n+=`tee: ${i}: No such file or directory
2
+ `,a=1}return{stdout:o,stderr:n,exitCode:a}}};export{g as teeCommand};
@@ -0,0 +1,11 @@
1
+ import{a as f,b as c,c as u}from"./chunk-74CEPOFO.js";var x={name:"timeout",summary:"run a command with a time limit",usage:"timeout [OPTION] DURATION COMMAND [ARG]...",description:`Start COMMAND, and kill it if still running after DURATION.
2
+
3
+ DURATION is a number with optional suffix:
4
+ s - seconds (default)
5
+ m - minutes
6
+ h - hours
7
+ d - days`,options:["-k, --kill-after=DURATION send KILL signal after DURATION if still running","-s, --signal=SIGNAL specify signal to send (default: TERM)"," --preserve-status exit with same status as COMMAND, even on timeout"," --foreground run command in foreground"," --help display this help and exit"]};function O(n){let r=n.match(/^(\d+\.?\d*)(s|m|h|d)?$/);if(!r)return null;let i=parseFloat(r[1]);switch(r[2]||"s"){case"s":return i*1e3;case"m":return i*60*1e3;case"h":return i*60*60*1e3;case"d":return i*24*60*60*1e3;default:return null}}var N={name:"timeout",async execute(n,r){if(c(n))return f(x);let i=!1,s=0;for(let t=0;t<n.length;t++){let e=n[t];if(e==="--preserve-status")i=!0,s=t+1;else if(e==="--foreground")s=t+1;else if(e==="-k"||e==="--kill-after")t++,s=t+1;else if(e.startsWith("--kill-after="))s=t+1;else if(e==="-s"||e==="--signal")t++,s=t+1;else if(e.startsWith("--signal="))s=t+1;else{if(e.startsWith("--")&&e!=="--")return u("timeout",e);if(e.startsWith("-")&&e.length>1&&e!=="--")if(e.startsWith("-k"))s=t+1;else if(e.startsWith("-s"))s=t+1;else return u("timeout",e);else{s=t;break}}}let o=n.slice(s);if(o.length===0)return{stdout:"",stderr:`timeout: missing operand
8
+ `,exitCode:1};let a=o[0],l=O(a);if(l===null)return{stdout:"",stderr:`timeout: invalid time interval '${a}'
9
+ `,exitCode:1};let m=o.slice(1);if(m.length===0)return{stdout:"",stderr:`timeout: missing operand
10
+ `,exitCode:1};if(!r.exec)return{stdout:"",stderr:`timeout: exec not available
11
+ `,exitCode:1};let h=m.map(t=>t.includes(" ")||t.includes(" ")?`'${t.replace(/'/g,"'\\''")}'`:t).join(" "),p=new Promise(t=>{setTimeout(()=>t({timedOut:!0}),l)}),g=r.exec(h).then(t=>({timedOut:!1,result:t})),d=await Promise.race([p,g]);return d.timedOut?{stdout:"",stderr:"",exitCode:124}:d.result}};export{N as timeoutCommand};
@@ -0,0 +1,3 @@
1
+ import{a as f}from"./chunk-44UOCSGV.js";import{c as r}from"./chunk-74CEPOFO.js";var l={name:"touch",async execute(u,e){let s=[];for(let t of u){if(t.startsWith("--"))return r("touch",t);if(t.startsWith("-")&&t.length>1)return r("touch",t);s.push(t)}if(s.length===0)return{stdout:"",stderr:`touch: missing file operand
2
+ `,exitCode:1};let n="",i=0;for(let t of s)try{let o=e.fs.resolvePath(e.cwd,t);await e.fs.exists(o)||await e.fs.writeFile(o,"")}catch(o){n+=`touch: cannot touch '${t}': ${f(o)}
3
+ `,i=1}return{stdout:"",stderr:n,exitCode:i}}};export{l as touchCommand};
@@ -0,0 +1,19 @@
1
+ import{a as C}from"./chunk-ZVV5VXYZ.js";import{a as g,b as m}from"./chunk-74CEPOFO.js";var x={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
2
+ a-z character range
3
+ [:alnum:] all letters and digits
4
+ [:alpha:] all letters
5
+ [:digit:] all digits
6
+ [:lower:] all lowercase letters
7
+ [:upper:] all uppercase letters
8
+ [:space:] all whitespace
9
+ [:blank:] horizontal whitespace
10
+ [:punct:] all punctuation
11
+ [:print:] all printable characters
12
+ [:graph:] all printable characters except space
13
+ [:cntrl:] all control characters
14
+ [:xdigit:] all hexadecimal digits
15
+ \\n, \\t, \\r escape sequences`},b={"[:alnum:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","[:alpha:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","[:blank:]":" ","[:cntrl:]":Array.from({length:32},(r,n)=>String.fromCharCode(n)).join("").concat("\x7F"),"[:digit:]":"0123456789","[:graph:]":Array.from({length:94},(r,n)=>String.fromCharCode(33+n)).join(""),"[:lower:]":"abcdefghijklmnopqrstuvwxyz","[:print:]":Array.from({length:95},(r,n)=>String.fromCharCode(32+n)).join(""),"[:punct:]":"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~","[:space:]":`
16
+ \r\f\v`,"[:upper:]":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","[:xdigit:]":"0123456789ABCDEFabcdef"};function S(r){let n="",e=0;for(;e<r.length;){if(r[e]==="["&&r[e+1]===":"){let l=!1;for(let[i,a]of Object.entries(b))if(r.slice(e).startsWith(i)){n+=a,e+=i.length,l=!0;break}if(l)continue}if(r[e]==="\\"&&e+1<r.length){let l=r[e+1];l==="n"?n+=`
17
+ `:l==="t"?n+=" ":l==="r"?n+="\r":n+=l,e+=2;continue}if(e+2<r.length&&r[e+1]==="-"){let l=r.charCodeAt(e),i=r.charCodeAt(e+2);for(let a=l;a<=i;a++)n+=String.fromCharCode(a);e+=3;continue}n+=r[e],e++}return n}var y={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},q={name:"tr",async execute(r,n){if(m(r))return g(x);let e=C("tr",r,y);if(!e.ok)return e.error;let l=e.result.flags.complement||e.result.flags.complementUpper,i=e.result.flags.delete,a=e.result.flags.squeeze,p=e.result.positional;if(p.length<1)return{stdout:"",stderr:`tr: missing operand
18
+ `,exitCode:1};if(!i&&!a&&p.length<2)return{stdout:"",stderr:`tr: missing operand after SET1
19
+ `,exitCode:1};let f=S(p[0]),s=p.length>1?S(p[1]):"",d=n.stdin,u=o=>{let t=f.includes(o);return l?!t:t},c="";if(i)for(let o of d)u(o)||(c+=o);else if(a&&p.length===1){let o="";for(let t of d)u(t)&&t===o||(c+=t,o=t)}else{if(l){let o=s.length>0?s[s.length-1]:"";for(let t of d)f.includes(t)?c+=t:c+=o}else{let o=new Map;for(let t=0;t<f.length;t++){let h=t<s.length?s[t]:s[s.length-1];o.set(f[t],h)}for(let t of d)c+=o.get(t)??t}if(a){let o="",t="";for(let h of c)s.includes(h)&&h===t||(o+=h,t=h);c=o}}return{stdout:c,stderr:"",exitCode:0}}};export{q as trCommand};
@@ -0,0 +1,11 @@
1
+ import{a as P}from"./chunk-ZVV5VXYZ.js";import{a as $,b as w}from"./chunk-74CEPOFO.js";var g={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"]},O={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},N={name:"tree",async execute(s,o){if(w(s))return $(g);let e=P("tree",s,O);if(!e.ok)return e.error;let u={showHidden:e.result.flags.showHidden,directoriesOnly:e.result.flags.directoriesOnly,maxDepth:e.result.flags.maxDepth??null,fullPath:e.result.flags.fullPath},a=e.result.positional;a.length===0&&a.push(".");let t="",c="",l=0,r=0;for(let i of a){let n=await b(o,i,u,"",0);t+=n.output,c+=n.stderr,l+=n.dirCount,r+=n.fileCount}return t+=`
2
+ ${l} director${l===1?"y":"ies"}`,u.directoriesOnly||(t+=`, ${r} file${r===1?"":"s"}`),t+=`
3
+ `,{stdout:t,stderr:c,exitCode:c?1:0}}};async function b(s,o,e,u,a){let t={output:"",stderr:"",dirCount:0,fileCount:0},c=s.fs.resolvePath(s.cwd,o);try{if(!(await s.fs.stat(c)).isDirectory)return t.output=`${o}
4
+ `,t.fileCount=1,t}catch{return t.stderr=`tree: ${o}: No such file or directory
5
+ `,t}if(t.output=`${o}
6
+ `,e.maxDepth!==null&&a>=e.maxDepth)return t;try{let r=(await s.fs.readdir(c)).filter(i=>!(!e.showHidden&&i.startsWith(".")));r.sort();for(let i=0;i<r.length;i++){let n=r[i],f=c==="/"?`/${n}`:`${c}/${n}`,h=i===r.length-1,y=h?"`-- ":"|-- ",p=u+(h?" ":"| ");try{if((await s.fs.stat(f)).isDirectory){t.dirCount++;let d=e.fullPath?f:n;if(t.output+=`${u+y+d}
7
+ `,e.maxDepth===null||a+1<e.maxDepth){let C=await D(s,f,e,p,a+1);t.output+=C.output,t.dirCount+=C.dirCount,t.fileCount+=C.fileCount}}else if(!e.directoriesOnly){t.fileCount++;let d=e.fullPath?f:n;t.output+=`${u+y+d}
8
+ `}}catch{}}}catch{t.stderr=`tree: ${o}: Permission denied
9
+ `}return t}async function D(s,o,e,u,a){let t={output:"",stderr:"",dirCount:0,fileCount:0};if(e.maxDepth!==null&&a>=e.maxDepth)return t;try{let l=(await s.fs.readdir(o)).filter(r=>!(!e.showHidden&&r.startsWith(".")));l.sort();for(let r=0;r<l.length;r++){let i=l[r],n=o==="/"?`/${i}`:`${o}/${i}`,f=r===l.length-1,h=f?"`-- ":"|-- ",y=u+(f?" ":"| ");try{if((await s.fs.stat(n)).isDirectory){t.dirCount++;let m=e.fullPath?n:i;t.output+=`${u+h+m}
10
+ `;let d=await D(s,n,e,y,a+1);t.output+=d.output,t.dirCount+=d.dirCount,t.fileCount+=d.fileCount}else if(!e.directoriesOnly){t.fileCount++;let m=e.fullPath?n:i;t.output+=`${u+h+m}
11
+ `}}catch{}}}catch{}return t}export{N as treeCommand};
@@ -0,0 +1 @@
1
+ var e={name:"true",async execute(){return{stdout:"",stderr:"",exitCode:0}}},t={name:"false",async execute(){return{stdout:"",stderr:"",exitCode:1}}};export{t as falseCommand,e as trueCommand};
@@ -0,0 +1,4 @@
1
+ import{b as g}from"./chunk-3YNHMZ5M.js";import{a as f}from"./chunk-ZVV5VXYZ.js";import{a as p,b as d}from"./chunk-74CEPOFO.js";var b={name:"uniq",summary:"report or omit repeated lines",usage:"uniq [OPTION]... [INPUT [OUTPUT]]",options:["-c, --count prefix lines by the number of occurrences","-d, --repeated only print duplicate lines","-i, --ignore-case ignore case when comparing","-u, --unique only print unique lines"," --help display this help and exit"]},w={count:{short:"c",long:"count",type:"boolean"},duplicatesOnly:{short:"d",long:"repeated",type:"boolean"},uniqueOnly:{short:"u",long:"unique",type:"boolean"},ignoreCase:{short:"i",long:"ignore-case",type:"boolean"}},P={name:"uniq",async execute(a,m){if(d(a))return p(b);let o=f("uniq",a,w);if(!o.ok)return o.error;let{count:h,duplicatesOnly:y,uniqueOnly:q,ignoreCase:C}=o.result.flags,O=o.result.positional,u=await g(m,O,{cmdName:"uniq"});if(!u.ok)return u.error;let n=u.content.split(`
2
+ `);if(n.length>0&&n[n.length-1]===""&&n.pop(),n.length===0)return{stdout:"",stderr:"",exitCode:0};let t=[],r=n[0],i=1,x=(e,s)=>C?e.toLowerCase()===s.toLowerCase():e===s;for(let e=1;e<n.length;e++)x(n[e],r)?i++:(t.push({line:r,count:i}),r=n[e],i=1);t.push({line:r,count:i});let l=t;y?l=t.filter(e=>e.count>1):q&&(l=t.filter(e=>e.count===1));let c="";for(let{line:e,count:s}of l)h?c+=`${String(s).padStart(4)} ${e}
3
+ `:c+=`${e}
4
+ `;return{stdout:c,stderr:"",exitCode:0}}};export{P as uniqCommand};
@@ -0,0 +1,5 @@
1
+ import{a as y}from"./chunk-3YNHMZ5M.js";import{a as g}from"./chunk-ZVV5VXYZ.js";import{a as w,b as m}from"./chunk-74CEPOFO.js";var C={name:"wc",summary:"print newline, word, and byte counts for each file",usage:"wc [OPTION]... [FILE]...",options:["-c, --bytes print the byte counts","-m, --chars print the character counts","-l, --lines print the newline counts","-w, --words print the word counts"," --help display this help and exit"]},S={lines:{short:"l",long:"lines",type:"boolean"},words:{short:"w",long:"words",type:"boolean"},bytes:{short:"c",long:"bytes",type:"boolean"},chars:{short:"m",long:"chars",type:"boolean"}},L={name:"wc",async execute(n,l){if(m(n))return w(C);let r=g("wc",n,S);if(!r.ok)return r.error;let{lines:s,words:t}=r.result.flags,e=r.result.flags.bytes||r.result.flags.chars,o=r.result.positional;!s&&!t&&!e&&(s=t=e=!0);let i=await y(l,o,{cmdName:"wc",stopOnError:!1});if(o.length===0){let f=b(i.files[0].content);return{stdout:`${h(f,s,t,e,"")}
2
+ `,stderr:"",exitCode:0}}let c="",u=0,d=0,p=0;for(let{filename:f,content:x}of i.files){let a=b(x);u+=a.lines,d+=a.words,p+=a.chars,c+=`${h(a,s,t,e,f)}
3
+ `}return o.length>1&&(c+=`${h({lines:u,words:d,chars:p},s,t,e,"total")}
4
+ `),{stdout:c,stderr:i.stderr,exitCode:i.exitCode}}};function b(n){let l=n.length,r=0,s=0,t=!1;for(let e=0;e<l;e++){let o=n[e];o===`
5
+ `?(r++,t&&(s++,t=!1)):o===" "||o===" "||o==="\r"?t&&(s++,t=!1):t=!0}return t&&s++,{lines:r,words:s,chars:l}}function h(n,l,r,s,t){let e=[];l&&e.push(String(n.lines)),r&&e.push(String(n.words)),s&&e.push(String(n.chars));let o=e.join(" ");return t&&(o+=` ${t}`),o}export{L as wcCommand};
@@ -0,0 +1,2 @@
1
+ import{a as u}from"./chunk-ZVV5VXYZ.js";import{a as f,b as h}from"./chunk-74CEPOFO.js";var w={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"]},g={showAll:{short:"a",type:"boolean"},silent:{short:"s",type:"boolean"}},A={name:"which",async execute(s,e){if(h(s))return f(w);let t=u("which",s,g);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.PATH||"/bin:/usr/bin").split(":"),n="",r=!0;for(let m of o){let a=!1;for(let i of d){if(!i)continue;let l=`${i}/${m}`;if(await e.fs.exists(l)&&(a=!0,p||(n+=`${l}
2
+ `),!c))break}a||(r=!1)}return{stdout:n,stderr:"",exitCode:r?0:1}}};export{A as whichCommand};
@@ -0,0 +1,3 @@
1
+ import{a as w,b as A,c as I}from"./chunk-74CEPOFO.js";var N={name:"xargs",summary:"build and execute command lines from standard input",usage:"xargs [OPTION]... [COMMAND [INITIAL-ARGS]]",options:["-I REPLACE replace occurrences of REPLACE with input","-n NUM use at most NUM arguments per command line","-P NUM run at most NUM processes at a time","-0, --null items are separated by null, not whitespace","-t, --verbose print commands before executing","-r, --no-run-if-empty do not run command if input is empty"," --help display this help and exit"]},E={name:"xargs",async execute(n,p){if(A(n))return w(N);let h=null,u=null,l=null,x=!1,g=!1,C=!1,r=0;for(let t=0;t<n.length;t++){let e=n[t];if(e==="-I"&&t+1<n.length)h=n[++t],r=t+1;else if(e==="-n"&&t+1<n.length)u=parseInt(n[++t],10),r=t+1;else if(e==="-P"&&t+1<n.length)l=parseInt(n[++t],10),r=t+1;else if(e==="-0"||e==="--null")x=!0,r=t+1;else if(e==="-t"||e==="--verbose")g=!0,r=t+1;else if(e==="-r"||e==="--no-run-if-empty")C=!0,r=t+1;else{if(e.startsWith("--"))return I("xargs",e);if(e.startsWith("-")&&e.length>1){for(let m of e.slice(1))if(!"0trnIP".includes(m))return I("xargs",`-${m}`);e.includes("0")&&(x=!0),e.includes("t")&&(g=!0),e.includes("r")&&(C=!0),r=t+1}else if(!e.startsWith("-")){r=t;break}}}let o=n.slice(r);o.length===0&&o.push("echo");let P=x?"\0":/\s+/,i=p.stdin.split(P).map(t=>t.trim()).filter(t=>t.length>0);if(i.length===0)return C?{stdout:"",stderr:"",exitCode:0}:{stdout:"",stderr:"",exitCode:0};let c="",a="",d=0,y=async t=>{let e=t.join(" ");return g&&(a+=`${e}
2
+ `),p.exec?p.exec(e):{stdout:`${e}
3
+ `,stderr:"",exitCode:0}},b=async t=>{if(l!==null&&l>1)for(let e=0;e<t.length;e+=l){let s=t.slice(e,e+l),m=await Promise.all(s.map(y));for(let f of m)c+=f.stdout,a+=f.stderr,f.exitCode!==0&&(d=f.exitCode)}else for(let e of t){let s=await y(e);c+=s.stdout,a+=s.stderr,s.exitCode!==0&&(d=s.exitCode)}};if(h!==null){let t=i.map(e=>o.map(s=>s.replaceAll(h,e)));await b(t)}else if(u!==null){let t=[];for(let e=0;e<i.length;e+=u){let s=i.slice(e,e+u);t.push([...o,...s])}await b(t)}else{let t=[...o,...i],e=await y(t);c+=e.stdout,a+=e.stderr,d=e.exitCode}return{stdout:c,stderr:a,exitCode:d}}};export{E as xargsCommand};