@demicodes/just-bash 3.0.1-demi.2

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 (903) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +201 -0
  3. package/README.md +620 -0
  4. package/dist/AGENTS.md +327 -0
  5. package/dist/Bash.d.ts +256 -0
  6. package/dist/ast/types.d.ts +609 -0
  7. package/dist/banned-patterns-test.d.ts +1 -0
  8. package/dist/bin/chunks/alias-YRVAW27Y.js +3 -0
  9. package/dist/bin/chunks/awk2-XSVZFGAA.js +3 -0
  10. package/dist/bin/chunks/base64-RZRLGMB3.js +3 -0
  11. package/dist/bin/chunks/basename-F3AQ4KAQ.js +3 -0
  12. package/dist/bin/chunks/bash-CLP24TE2.js +3 -0
  13. package/dist/bin/chunks/cat-LQH5FSAR.js +3 -0
  14. package/dist/bin/chunks/chmod-S564JCJW.js +3 -0
  15. package/dist/bin/chunks/chunk-22HCD466.js +3 -0
  16. package/dist/bin/chunks/chunk-2AIXTPH2.js +9 -0
  17. package/dist/bin/chunks/chunk-2ETT4ELS.js +4 -0
  18. package/dist/bin/chunks/chunk-2FCLTY3Z.js +15 -0
  19. package/dist/bin/chunks/chunk-2GG3NVC4.js +10 -0
  20. package/dist/bin/chunks/chunk-2NRAWO6E.js +7 -0
  21. package/dist/bin/chunks/chunk-2SVX7I5P.js +14 -0
  22. package/dist/bin/chunks/chunk-2TVVPMMT.js +34 -0
  23. package/dist/bin/chunks/chunk-3MRB66F4.js +3 -0
  24. package/dist/bin/chunks/chunk-3WIMLJM7.js +8 -0
  25. package/dist/bin/chunks/chunk-42Z7Z3TQ.js +288 -0
  26. package/dist/bin/chunks/chunk-4BNS566Q.js +4 -0
  27. package/dist/bin/chunks/chunk-52Z5MJO2.js +17 -0
  28. package/dist/bin/chunks/chunk-5WLKCCX7.js +6 -0
  29. package/dist/bin/chunks/chunk-5XSZHUEI.js +15 -0
  30. package/dist/bin/chunks/chunk-6FSBHK6H.js +22 -0
  31. package/dist/bin/chunks/chunk-6GSBC77G.js +22 -0
  32. package/dist/bin/chunks/chunk-6UL3WIEK.js +3 -0
  33. package/dist/bin/chunks/chunk-6WJQNLR2.js +7 -0
  34. package/dist/bin/chunks/chunk-77MLOOQS.js +11 -0
  35. package/dist/bin/chunks/chunk-7AYT3UKI.js +6 -0
  36. package/dist/bin/chunks/chunk-7GBHDJNC.js +34 -0
  37. package/dist/bin/chunks/chunk-7JZKVC3F.js +2 -0
  38. package/dist/bin/chunks/chunk-7NDRU2ZN.js +5 -0
  39. package/dist/bin/chunks/chunk-7UU7KPEM.js +7 -0
  40. package/dist/bin/chunks/chunk-7VCQWCSH.js +15 -0
  41. package/dist/bin/chunks/chunk-AGKL4LDL.js +4 -0
  42. package/dist/bin/chunks/chunk-AJF3OBTR.js +4 -0
  43. package/dist/bin/chunks/chunk-B2DRBHGQ.js +3 -0
  44. package/dist/bin/chunks/chunk-BE4PARL3.js +13 -0
  45. package/dist/bin/chunks/chunk-BGX3RW7H.js +10 -0
  46. package/dist/bin/chunks/chunk-BIJXTWZ4.js +3 -0
  47. package/dist/bin/chunks/chunk-BPZJYOUA.js +33 -0
  48. package/dist/bin/chunks/chunk-C7ISPH7Y.js +18 -0
  49. package/dist/bin/chunks/chunk-CAZ75E7E.js +3 -0
  50. package/dist/bin/chunks/chunk-DJAX3ZRG.js +8 -0
  51. package/dist/bin/chunks/chunk-DYIBFLS3.js +17 -0
  52. package/dist/bin/chunks/chunk-EDTBGO7F.js +37 -0
  53. package/dist/bin/chunks/chunk-F3GKANW3.js +12 -0
  54. package/dist/bin/chunks/chunk-F3WNDKOC.js +3 -0
  55. package/dist/bin/chunks/chunk-FKVQZWJQ.js +10 -0
  56. package/dist/bin/chunks/chunk-FX7BQD2Q.js +20 -0
  57. package/dist/bin/chunks/chunk-G4AUMZUY.js +4 -0
  58. package/dist/bin/chunks/chunk-H7JTIXAO.js +4 -0
  59. package/dist/bin/chunks/chunk-HADFAIPZ.js +17 -0
  60. package/dist/bin/chunks/chunk-HL4ZS7TX.js +6 -0
  61. package/dist/bin/chunks/chunk-HN2DCT7T.js +13 -0
  62. package/dist/bin/chunks/chunk-HSTAQAVQ.js +11 -0
  63. package/dist/bin/chunks/chunk-I4IRHQDW.js +3 -0
  64. package/dist/bin/chunks/chunk-IWXPUD2J.js +12 -0
  65. package/dist/bin/chunks/chunk-IZGLHVBB.js +8 -0
  66. package/dist/bin/chunks/chunk-J7TUF2VI.js +9 -0
  67. package/dist/bin/chunks/chunk-JXLDT4KX.js +4 -0
  68. package/dist/bin/chunks/chunk-KFMPGSUT.js +9 -0
  69. package/dist/bin/chunks/chunk-KI54R2QB.js +3 -0
  70. package/dist/bin/chunks/chunk-KRRM5UCC.js +3 -0
  71. package/dist/bin/chunks/chunk-KUMHQGUR.js +3 -0
  72. package/dist/bin/chunks/chunk-LNNWMRCB.js +3 -0
  73. package/dist/bin/chunks/chunk-LNVSXNT7.js +3 -0
  74. package/dist/bin/chunks/chunk-LZHWUYJZ.js +24 -0
  75. package/dist/bin/chunks/chunk-MLUOPG3W.js +3 -0
  76. package/dist/bin/chunks/chunk-MROECM42.js +3 -0
  77. package/dist/bin/chunks/chunk-MUFNRCMY.js +24 -0
  78. package/dist/bin/chunks/chunk-NE4R2FVV.js +5 -0
  79. package/dist/bin/chunks/chunk-NKAT2N47.js +7 -0
  80. package/dist/bin/chunks/chunk-NYIPFY36.js +3 -0
  81. package/dist/bin/chunks/chunk-O2BCKSMK.js +3 -0
  82. package/dist/bin/chunks/chunk-OLEQNRKX.js +8 -0
  83. package/dist/bin/chunks/chunk-OPMLWMNH.js +17 -0
  84. package/dist/bin/chunks/chunk-PAYQNSZN.js +18 -0
  85. package/dist/bin/chunks/chunk-PBOVSFTJ.js +3 -0
  86. package/dist/bin/chunks/chunk-PSGVOB5U.js +3 -0
  87. package/dist/bin/chunks/chunk-PXP4YYZA.js +13 -0
  88. package/dist/bin/chunks/chunk-PZQVSQX6.js +4 -0
  89. package/dist/bin/chunks/chunk-Q2GOPGDA.js +6 -0
  90. package/dist/bin/chunks/chunk-QL33F2W6.js +8 -0
  91. package/dist/bin/chunks/chunk-QPHXCMJV.js +80 -0
  92. package/dist/bin/chunks/chunk-RJUDCNEZ.js +29 -0
  93. package/dist/bin/chunks/chunk-RVPTAYDS.js +4 -0
  94. package/dist/bin/chunks/chunk-SAF4OIHD.js +20 -0
  95. package/dist/bin/chunks/chunk-SMLKRKMP.js +11 -0
  96. package/dist/bin/chunks/chunk-SMSELHIY.js +12 -0
  97. package/dist/bin/chunks/chunk-T74E2U4J.js +64 -0
  98. package/dist/bin/chunks/chunk-UO5LOD7U.js +12 -0
  99. package/dist/bin/chunks/chunk-UOMNSQEZ.js +10 -0
  100. package/dist/bin/chunks/chunk-UVKD35GR.js +9 -0
  101. package/dist/bin/chunks/chunk-V2RP73X4.js +15 -0
  102. package/dist/bin/chunks/chunk-VP3OTMHX.js +22 -0
  103. package/dist/bin/chunks/chunk-VZK4FHWJ.js +3 -0
  104. package/dist/bin/chunks/chunk-WDWNEHHE.js +9 -0
  105. package/dist/bin/chunks/chunk-X4MX6EHF.js +6 -0
  106. package/dist/bin/chunks/chunk-X5WRKSEU.js +101 -0
  107. package/dist/bin/chunks/chunk-XBB73LFB.js +5 -0
  108. package/dist/bin/chunks/chunk-XCUJL2AJ.js +141 -0
  109. package/dist/bin/chunks/chunk-XHCCSVP6.js +9 -0
  110. package/dist/bin/chunks/chunk-XJ37N3S5.js +7 -0
  111. package/dist/bin/chunks/chunk-XPTYN6UE.js +8 -0
  112. package/dist/bin/chunks/chunk-XRUDFQG5.js +7 -0
  113. package/dist/bin/chunks/chunk-YJ5OCPSK.js +7 -0
  114. package/dist/bin/chunks/chunk-YOIFOOGX.js +9 -0
  115. package/dist/bin/chunks/chunk-YOKQNNQO.js +6 -0
  116. package/dist/bin/chunks/chunk-YR32XGKD.js +3 -0
  117. package/dist/bin/chunks/chunk-YUZRUF5F.js +10 -0
  118. package/dist/bin/chunks/chunk-YY5PJR7O.js +7 -0
  119. package/dist/bin/chunks/chunk-ZAMAXG5K.js +85 -0
  120. package/dist/bin/chunks/chunk-ZFUVUYWG.js +15 -0
  121. package/dist/bin/chunks/clear-FGNEKYDU.js +3 -0
  122. package/dist/bin/chunks/column-AQB3A3PJ.js +3 -0
  123. package/dist/bin/chunks/comm-Q4VDF6ZO.js +3 -0
  124. package/dist/bin/chunks/cp-HYXTMN3D.js +3 -0
  125. package/dist/bin/chunks/curl-PLHETP4J.js +27 -0
  126. package/dist/bin/chunks/cut-ZI2HIAW7.js +3 -0
  127. package/dist/bin/chunks/date-OFYBOAUE.js +3 -0
  128. package/dist/bin/chunks/diff-TL7IV4S2.js +3 -0
  129. package/dist/bin/chunks/dirname-VCINTLPD.js +3 -0
  130. package/dist/bin/chunks/du-4LRQIGRG.js +3 -0
  131. package/dist/bin/chunks/echo-KCOHTNDF.js +3 -0
  132. package/dist/bin/chunks/env-NY32PQJM.js +3 -0
  133. package/dist/bin/chunks/expand-YYSO35NS.js +3 -0
  134. package/dist/bin/chunks/expansion-YT6DLHRE.js +3 -0
  135. package/dist/bin/chunks/expr-XNBNPKSF.js +3 -0
  136. package/dist/bin/chunks/file-U4GYVT3G.js +3 -0
  137. package/dist/bin/chunks/find-CZ6UMSZX.js +3 -0
  138. package/dist/bin/chunks/flag-coverage-MPBSMQIN.js +3 -0
  139. package/dist/bin/chunks/fold-5MF7QZWQ.js +3 -0
  140. package/dist/bin/chunks/grep-JCHLTP7S.js +3 -0
  141. package/dist/bin/chunks/gzip-UGBQQKIH.js +3 -0
  142. package/dist/bin/chunks/head-77V5O3RE.js +3 -0
  143. package/dist/bin/chunks/help-CGUEOGXQ.js +3 -0
  144. package/dist/bin/chunks/history-AQQWW3QB.js +3 -0
  145. package/dist/bin/chunks/hostname-USNWOQCK.js +3 -0
  146. package/dist/bin/chunks/html-to-markdown-PHASM44U.js +3 -0
  147. package/dist/bin/chunks/join-EJ73DYTK.js +3 -0
  148. package/dist/bin/chunks/jq-W6KOII4Y.js +3 -0
  149. package/dist/bin/chunks/js-exec-BC6NI55L.js +98 -0
  150. package/dist/bin/chunks/js-exec-worker.js +4639 -0
  151. package/dist/bin/chunks/ln-LP4HMCSM.js +3 -0
  152. package/dist/bin/chunks/ls-YGNSAGDK.js +3 -0
  153. package/dist/bin/chunks/md5sum-MCVDIB35.js +3 -0
  154. package/dist/bin/chunks/mkdir-P4DKRCDX.js +3 -0
  155. package/dist/bin/chunks/mv-QQK4FQX6.js +3 -0
  156. package/dist/bin/chunks/nl-KUPLVCTS.js +3 -0
  157. package/dist/bin/chunks/od-YQ5ZUI2H.js +3 -0
  158. package/dist/bin/chunks/paste-A5KKPWXX.js +3 -0
  159. package/dist/bin/chunks/printf-XXZMDRGE.js +3 -0
  160. package/dist/bin/chunks/pwd-FCNDA467.js +3 -0
  161. package/dist/bin/chunks/python3-BQWDPUBM.js +13 -0
  162. package/dist/bin/chunks/readlink-25V57VOL.js +3 -0
  163. package/dist/bin/chunks/rev-PYHOZ4D4.js +3 -0
  164. package/dist/bin/chunks/rg-OHJSRKFS.js +3 -0
  165. package/dist/bin/chunks/rm-ECNUFR66.js +3 -0
  166. package/dist/bin/chunks/rmdir-DLOHIA7Q.js +3 -0
  167. package/dist/bin/chunks/sed-4GRUPTAO.js +3 -0
  168. package/dist/bin/chunks/seq-UXDJE6FB.js +3 -0
  169. package/dist/bin/chunks/sha1sum-4KF52U3Y.js +3 -0
  170. package/dist/bin/chunks/sha256sum-6YEPULPX.js +3 -0
  171. package/dist/bin/chunks/sleep-QHAPNY3Q.js +3 -0
  172. package/dist/bin/chunks/sort-4C6WOKNK.js +3 -0
  173. package/dist/bin/chunks/split-TV7NL7LA.js +3 -0
  174. package/dist/bin/chunks/sqlite3-W777NCI4.js +3 -0
  175. package/dist/bin/chunks/sqlite3-worker.js +1728 -0
  176. package/dist/bin/chunks/stat-BD6KT3BP.js +3 -0
  177. package/dist/bin/chunks/strings-MDD72LR6.js +3 -0
  178. package/dist/bin/chunks/tac-C2N4NQ6S.js +3 -0
  179. package/dist/bin/chunks/tail-LGNECVQA.js +3 -0
  180. package/dist/bin/chunks/tar-K6HVPBVB.js +3 -0
  181. package/dist/bin/chunks/tee-UQHPO4OW.js +3 -0
  182. package/dist/bin/chunks/time-ZPY52VT2.js +3 -0
  183. package/dist/bin/chunks/timeout-5AX3ZS3X.js +3 -0
  184. package/dist/bin/chunks/touch-DFGSVIX7.js +3 -0
  185. package/dist/bin/chunks/tr-G7K6M6HP.js +3 -0
  186. package/dist/bin/chunks/tree-6D7SMPUR.js +3 -0
  187. package/dist/bin/chunks/true-SKL4L7JP.js +3 -0
  188. package/dist/bin/chunks/unexpand-QIR4EDPG.js +3 -0
  189. package/dist/bin/chunks/uniq-I7PVFJR4.js +3 -0
  190. package/dist/bin/chunks/wc-6NGWULAP.js +3 -0
  191. package/dist/bin/chunks/which-LCXKCLFC.js +3 -0
  192. package/dist/bin/chunks/whoami-TZDZDU7T.js +3 -0
  193. package/dist/bin/chunks/worker.js +3150 -0
  194. package/dist/bin/chunks/xan-LGEJUGOM.js +3 -0
  195. package/dist/bin/chunks/xan-view-L75WEJE2.js +3 -0
  196. package/dist/bin/chunks/xargs-UWHPYLY7.js +3 -0
  197. package/dist/bin/chunks/yq-V6YWS23E.js +3 -0
  198. package/dist/bin/just-bash.js +778 -0
  199. package/dist/bin/shell/chunks/alias-YRVAW27Y.js +3 -0
  200. package/dist/bin/shell/chunks/awk2-XSVZFGAA.js +3 -0
  201. package/dist/bin/shell/chunks/base64-RZRLGMB3.js +3 -0
  202. package/dist/bin/shell/chunks/basename-F3AQ4KAQ.js +3 -0
  203. package/dist/bin/shell/chunks/bash-CLP24TE2.js +3 -0
  204. package/dist/bin/shell/chunks/cat-LQH5FSAR.js +3 -0
  205. package/dist/bin/shell/chunks/chmod-S564JCJW.js +3 -0
  206. package/dist/bin/shell/chunks/chunk-22HCD466.js +3 -0
  207. package/dist/bin/shell/chunks/chunk-2AIXTPH2.js +9 -0
  208. package/dist/bin/shell/chunks/chunk-2ETT4ELS.js +4 -0
  209. package/dist/bin/shell/chunks/chunk-2FCLTY3Z.js +15 -0
  210. package/dist/bin/shell/chunks/chunk-2GG3NVC4.js +10 -0
  211. package/dist/bin/shell/chunks/chunk-2NRAWO6E.js +7 -0
  212. package/dist/bin/shell/chunks/chunk-2SVX7I5P.js +14 -0
  213. package/dist/bin/shell/chunks/chunk-2TVVPMMT.js +34 -0
  214. package/dist/bin/shell/chunks/chunk-3MRB66F4.js +3 -0
  215. package/dist/bin/shell/chunks/chunk-3WIMLJM7.js +8 -0
  216. package/dist/bin/shell/chunks/chunk-42Z7Z3TQ.js +288 -0
  217. package/dist/bin/shell/chunks/chunk-4BNS566Q.js +4 -0
  218. package/dist/bin/shell/chunks/chunk-52Z5MJO2.js +17 -0
  219. package/dist/bin/shell/chunks/chunk-5WLKCCX7.js +6 -0
  220. package/dist/bin/shell/chunks/chunk-5XSZHUEI.js +15 -0
  221. package/dist/bin/shell/chunks/chunk-6FSBHK6H.js +22 -0
  222. package/dist/bin/shell/chunks/chunk-6GSBC77G.js +22 -0
  223. package/dist/bin/shell/chunks/chunk-6UL3WIEK.js +3 -0
  224. package/dist/bin/shell/chunks/chunk-6WJQNLR2.js +7 -0
  225. package/dist/bin/shell/chunks/chunk-77MLOOQS.js +11 -0
  226. package/dist/bin/shell/chunks/chunk-7AYT3UKI.js +6 -0
  227. package/dist/bin/shell/chunks/chunk-7GBHDJNC.js +34 -0
  228. package/dist/bin/shell/chunks/chunk-7JZKVC3F.js +2 -0
  229. package/dist/bin/shell/chunks/chunk-7NDRU2ZN.js +5 -0
  230. package/dist/bin/shell/chunks/chunk-7UU7KPEM.js +7 -0
  231. package/dist/bin/shell/chunks/chunk-7VCQWCSH.js +15 -0
  232. package/dist/bin/shell/chunks/chunk-AGKL4LDL.js +4 -0
  233. package/dist/bin/shell/chunks/chunk-AJF3OBTR.js +4 -0
  234. package/dist/bin/shell/chunks/chunk-B2DRBHGQ.js +3 -0
  235. package/dist/bin/shell/chunks/chunk-BE4PARL3.js +13 -0
  236. package/dist/bin/shell/chunks/chunk-BGX3RW7H.js +10 -0
  237. package/dist/bin/shell/chunks/chunk-BIJXTWZ4.js +3 -0
  238. package/dist/bin/shell/chunks/chunk-BPZJYOUA.js +33 -0
  239. package/dist/bin/shell/chunks/chunk-C7ISPH7Y.js +18 -0
  240. package/dist/bin/shell/chunks/chunk-CAZ75E7E.js +3 -0
  241. package/dist/bin/shell/chunks/chunk-DJAX3ZRG.js +8 -0
  242. package/dist/bin/shell/chunks/chunk-DYIBFLS3.js +17 -0
  243. package/dist/bin/shell/chunks/chunk-EDTBGO7F.js +37 -0
  244. package/dist/bin/shell/chunks/chunk-F3GKANW3.js +12 -0
  245. package/dist/bin/shell/chunks/chunk-F3WNDKOC.js +3 -0
  246. package/dist/bin/shell/chunks/chunk-FKVQZWJQ.js +10 -0
  247. package/dist/bin/shell/chunks/chunk-FX7BQD2Q.js +20 -0
  248. package/dist/bin/shell/chunks/chunk-G4AUMZUY.js +4 -0
  249. package/dist/bin/shell/chunks/chunk-H7JTIXAO.js +4 -0
  250. package/dist/bin/shell/chunks/chunk-HADFAIPZ.js +17 -0
  251. package/dist/bin/shell/chunks/chunk-HL4ZS7TX.js +6 -0
  252. package/dist/bin/shell/chunks/chunk-HN2DCT7T.js +13 -0
  253. package/dist/bin/shell/chunks/chunk-HSTAQAVQ.js +11 -0
  254. package/dist/bin/shell/chunks/chunk-I4IRHQDW.js +3 -0
  255. package/dist/bin/shell/chunks/chunk-IWXPUD2J.js +12 -0
  256. package/dist/bin/shell/chunks/chunk-IZGLHVBB.js +8 -0
  257. package/dist/bin/shell/chunks/chunk-J7TUF2VI.js +9 -0
  258. package/dist/bin/shell/chunks/chunk-JXLDT4KX.js +4 -0
  259. package/dist/bin/shell/chunks/chunk-KFMPGSUT.js +9 -0
  260. package/dist/bin/shell/chunks/chunk-KI54R2QB.js +3 -0
  261. package/dist/bin/shell/chunks/chunk-KRRM5UCC.js +3 -0
  262. package/dist/bin/shell/chunks/chunk-KUMHQGUR.js +3 -0
  263. package/dist/bin/shell/chunks/chunk-LNNWMRCB.js +3 -0
  264. package/dist/bin/shell/chunks/chunk-LNVSXNT7.js +3 -0
  265. package/dist/bin/shell/chunks/chunk-LZHWUYJZ.js +24 -0
  266. package/dist/bin/shell/chunks/chunk-MLUOPG3W.js +3 -0
  267. package/dist/bin/shell/chunks/chunk-MROECM42.js +3 -0
  268. package/dist/bin/shell/chunks/chunk-MUFNRCMY.js +24 -0
  269. package/dist/bin/shell/chunks/chunk-NE4R2FVV.js +5 -0
  270. package/dist/bin/shell/chunks/chunk-NKAT2N47.js +7 -0
  271. package/dist/bin/shell/chunks/chunk-NYIPFY36.js +3 -0
  272. package/dist/bin/shell/chunks/chunk-O2BCKSMK.js +3 -0
  273. package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +8 -0
  274. package/dist/bin/shell/chunks/chunk-OPMLWMNH.js +17 -0
  275. package/dist/bin/shell/chunks/chunk-PAYQNSZN.js +18 -0
  276. package/dist/bin/shell/chunks/chunk-PBOVSFTJ.js +3 -0
  277. package/dist/bin/shell/chunks/chunk-PSGVOB5U.js +3 -0
  278. package/dist/bin/shell/chunks/chunk-PXP4YYZA.js +13 -0
  279. package/dist/bin/shell/chunks/chunk-PZQVSQX6.js +4 -0
  280. package/dist/bin/shell/chunks/chunk-Q2GOPGDA.js +6 -0
  281. package/dist/bin/shell/chunks/chunk-QL33F2W6.js +8 -0
  282. package/dist/bin/shell/chunks/chunk-QPHXCMJV.js +80 -0
  283. package/dist/bin/shell/chunks/chunk-RJUDCNEZ.js +29 -0
  284. package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +4 -0
  285. package/dist/bin/shell/chunks/chunk-SAF4OIHD.js +20 -0
  286. package/dist/bin/shell/chunks/chunk-SMLKRKMP.js +11 -0
  287. package/dist/bin/shell/chunks/chunk-SMSELHIY.js +12 -0
  288. package/dist/bin/shell/chunks/chunk-T74E2U4J.js +64 -0
  289. package/dist/bin/shell/chunks/chunk-UO5LOD7U.js +12 -0
  290. package/dist/bin/shell/chunks/chunk-UOMNSQEZ.js +10 -0
  291. package/dist/bin/shell/chunks/chunk-UVKD35GR.js +9 -0
  292. package/dist/bin/shell/chunks/chunk-V2RP73X4.js +15 -0
  293. package/dist/bin/shell/chunks/chunk-VP3OTMHX.js +22 -0
  294. package/dist/bin/shell/chunks/chunk-VZK4FHWJ.js +3 -0
  295. package/dist/bin/shell/chunks/chunk-WDWNEHHE.js +9 -0
  296. package/dist/bin/shell/chunks/chunk-X4MX6EHF.js +6 -0
  297. package/dist/bin/shell/chunks/chunk-X5WRKSEU.js +101 -0
  298. package/dist/bin/shell/chunks/chunk-XBB73LFB.js +5 -0
  299. package/dist/bin/shell/chunks/chunk-XCUJL2AJ.js +141 -0
  300. package/dist/bin/shell/chunks/chunk-XHCCSVP6.js +9 -0
  301. package/dist/bin/shell/chunks/chunk-XJ37N3S5.js +7 -0
  302. package/dist/bin/shell/chunks/chunk-XPTYN6UE.js +8 -0
  303. package/dist/bin/shell/chunks/chunk-XRUDFQG5.js +7 -0
  304. package/dist/bin/shell/chunks/chunk-YJ5OCPSK.js +7 -0
  305. package/dist/bin/shell/chunks/chunk-YOIFOOGX.js +9 -0
  306. package/dist/bin/shell/chunks/chunk-YOKQNNQO.js +6 -0
  307. package/dist/bin/shell/chunks/chunk-YR32XGKD.js +3 -0
  308. package/dist/bin/shell/chunks/chunk-YUZRUF5F.js +10 -0
  309. package/dist/bin/shell/chunks/chunk-YY5PJR7O.js +7 -0
  310. package/dist/bin/shell/chunks/chunk-ZAMAXG5K.js +85 -0
  311. package/dist/bin/shell/chunks/chunk-ZFUVUYWG.js +15 -0
  312. package/dist/bin/shell/chunks/clear-FGNEKYDU.js +3 -0
  313. package/dist/bin/shell/chunks/column-AQB3A3PJ.js +3 -0
  314. package/dist/bin/shell/chunks/comm-Q4VDF6ZO.js +3 -0
  315. package/dist/bin/shell/chunks/cp-HYXTMN3D.js +3 -0
  316. package/dist/bin/shell/chunks/curl-PLHETP4J.js +27 -0
  317. package/dist/bin/shell/chunks/cut-ZI2HIAW7.js +3 -0
  318. package/dist/bin/shell/chunks/date-OFYBOAUE.js +3 -0
  319. package/dist/bin/shell/chunks/diff-TL7IV4S2.js +3 -0
  320. package/dist/bin/shell/chunks/dirname-VCINTLPD.js +3 -0
  321. package/dist/bin/shell/chunks/du-4LRQIGRG.js +3 -0
  322. package/dist/bin/shell/chunks/echo-KCOHTNDF.js +3 -0
  323. package/dist/bin/shell/chunks/env-NY32PQJM.js +3 -0
  324. package/dist/bin/shell/chunks/expand-YYSO35NS.js +3 -0
  325. package/dist/bin/shell/chunks/expansion-YT6DLHRE.js +3 -0
  326. package/dist/bin/shell/chunks/expr-XNBNPKSF.js +3 -0
  327. package/dist/bin/shell/chunks/file-U4GYVT3G.js +3 -0
  328. package/dist/bin/shell/chunks/find-CZ6UMSZX.js +3 -0
  329. package/dist/bin/shell/chunks/flag-coverage-MPBSMQIN.js +3 -0
  330. package/dist/bin/shell/chunks/fold-5MF7QZWQ.js +3 -0
  331. package/dist/bin/shell/chunks/grep-JCHLTP7S.js +3 -0
  332. package/dist/bin/shell/chunks/gzip-UGBQQKIH.js +3 -0
  333. package/dist/bin/shell/chunks/head-77V5O3RE.js +3 -0
  334. package/dist/bin/shell/chunks/help-CGUEOGXQ.js +3 -0
  335. package/dist/bin/shell/chunks/history-AQQWW3QB.js +3 -0
  336. package/dist/bin/shell/chunks/hostname-USNWOQCK.js +3 -0
  337. package/dist/bin/shell/chunks/html-to-markdown-PHASM44U.js +3 -0
  338. package/dist/bin/shell/chunks/join-EJ73DYTK.js +3 -0
  339. package/dist/bin/shell/chunks/jq-W6KOII4Y.js +3 -0
  340. package/dist/bin/shell/chunks/js-exec-BC6NI55L.js +98 -0
  341. package/dist/bin/shell/chunks/ln-LP4HMCSM.js +3 -0
  342. package/dist/bin/shell/chunks/ls-YGNSAGDK.js +3 -0
  343. package/dist/bin/shell/chunks/md5sum-MCVDIB35.js +3 -0
  344. package/dist/bin/shell/chunks/mkdir-P4DKRCDX.js +3 -0
  345. package/dist/bin/shell/chunks/mv-QQK4FQX6.js +3 -0
  346. package/dist/bin/shell/chunks/nl-KUPLVCTS.js +3 -0
  347. package/dist/bin/shell/chunks/od-YQ5ZUI2H.js +3 -0
  348. package/dist/bin/shell/chunks/paste-A5KKPWXX.js +3 -0
  349. package/dist/bin/shell/chunks/printf-XXZMDRGE.js +3 -0
  350. package/dist/bin/shell/chunks/pwd-FCNDA467.js +3 -0
  351. package/dist/bin/shell/chunks/python3-BQWDPUBM.js +13 -0
  352. package/dist/bin/shell/chunks/readlink-25V57VOL.js +3 -0
  353. package/dist/bin/shell/chunks/rev-PYHOZ4D4.js +3 -0
  354. package/dist/bin/shell/chunks/rg-OHJSRKFS.js +3 -0
  355. package/dist/bin/shell/chunks/rm-ECNUFR66.js +3 -0
  356. package/dist/bin/shell/chunks/rmdir-DLOHIA7Q.js +3 -0
  357. package/dist/bin/shell/chunks/sed-4GRUPTAO.js +3 -0
  358. package/dist/bin/shell/chunks/seq-UXDJE6FB.js +3 -0
  359. package/dist/bin/shell/chunks/sha1sum-4KF52U3Y.js +3 -0
  360. package/dist/bin/shell/chunks/sha256sum-6YEPULPX.js +3 -0
  361. package/dist/bin/shell/chunks/sleep-QHAPNY3Q.js +3 -0
  362. package/dist/bin/shell/chunks/sort-4C6WOKNK.js +3 -0
  363. package/dist/bin/shell/chunks/split-TV7NL7LA.js +3 -0
  364. package/dist/bin/shell/chunks/sqlite3-W777NCI4.js +3 -0
  365. package/dist/bin/shell/chunks/stat-BD6KT3BP.js +3 -0
  366. package/dist/bin/shell/chunks/strings-MDD72LR6.js +3 -0
  367. package/dist/bin/shell/chunks/tac-C2N4NQ6S.js +3 -0
  368. package/dist/bin/shell/chunks/tail-LGNECVQA.js +3 -0
  369. package/dist/bin/shell/chunks/tar-K6HVPBVB.js +3 -0
  370. package/dist/bin/shell/chunks/tee-UQHPO4OW.js +3 -0
  371. package/dist/bin/shell/chunks/time-ZPY52VT2.js +3 -0
  372. package/dist/bin/shell/chunks/timeout-5AX3ZS3X.js +3 -0
  373. package/dist/bin/shell/chunks/touch-DFGSVIX7.js +3 -0
  374. package/dist/bin/shell/chunks/tr-G7K6M6HP.js +3 -0
  375. package/dist/bin/shell/chunks/tree-6D7SMPUR.js +3 -0
  376. package/dist/bin/shell/chunks/true-SKL4L7JP.js +3 -0
  377. package/dist/bin/shell/chunks/unexpand-QIR4EDPG.js +3 -0
  378. package/dist/bin/shell/chunks/uniq-I7PVFJR4.js +3 -0
  379. package/dist/bin/shell/chunks/wc-6NGWULAP.js +3 -0
  380. package/dist/bin/shell/chunks/which-LCXKCLFC.js +3 -0
  381. package/dist/bin/shell/chunks/whoami-TZDZDU7T.js +3 -0
  382. package/dist/bin/shell/chunks/xan-LGEJUGOM.js +3 -0
  383. package/dist/bin/shell/chunks/xan-view-L75WEJE2.js +3 -0
  384. package/dist/bin/shell/chunks/xargs-UWHPYLY7.js +3 -0
  385. package/dist/bin/shell/chunks/yq-V6YWS23E.js +3 -0
  386. package/dist/bin/shell/shell.js +757 -0
  387. package/dist/browser.d.ts +23 -0
  388. package/dist/bundle/browser.js +1546 -0
  389. package/dist/bundle/chunks/alias-RTYYYW3D.js +2 -0
  390. package/dist/bundle/chunks/awk2-GS47M5U7.js +2 -0
  391. package/dist/bundle/chunks/base64-C2AIWVNC.js +2 -0
  392. package/dist/bundle/chunks/basename-UB3CIYNI.js +2 -0
  393. package/dist/bundle/chunks/bash-YZ33HQZQ.js +2 -0
  394. package/dist/bundle/chunks/cat-TSFMZVYS.js +2 -0
  395. package/dist/bundle/chunks/chmod-TFEPA42X.js +2 -0
  396. package/dist/bundle/chunks/chunk-27JIFWUR.js +3 -0
  397. package/dist/bundle/chunks/chunk-2JIPICV3.js +13 -0
  398. package/dist/bundle/chunks/chunk-2SMD2AUA.js +3 -0
  399. package/dist/bundle/chunks/chunk-2VDTE5BV.js +14 -0
  400. package/dist/bundle/chunks/chunk-2VJJEDV2.js +8 -0
  401. package/dist/bundle/chunks/chunk-4JLVZKHC.js +8 -0
  402. package/dist/bundle/chunks/chunk-4MZPEZTU.js +3 -0
  403. package/dist/bundle/chunks/chunk-4N6J7B5P.js +6 -0
  404. package/dist/bundle/chunks/chunk-4WKZNNJK.js +2 -0
  405. package/dist/bundle/chunks/chunk-5A3ZCIHP.js +2 -0
  406. package/dist/bundle/chunks/chunk-5H5SCKJM.js +11 -0
  407. package/dist/bundle/chunks/chunk-5IFY2NZJ.js +19 -0
  408. package/dist/bundle/chunks/chunk-6LASZU3O.js +5 -0
  409. package/dist/bundle/chunks/chunk-6SHYIICL.js +4 -0
  410. package/dist/bundle/chunks/chunk-6VAT5Z2D.js +5 -0
  411. package/dist/bundle/chunks/chunk-7AISL3XV.js +12 -0
  412. package/dist/bundle/chunks/chunk-7EUWTCWK.js +2 -0
  413. package/dist/bundle/chunks/chunk-7F47ISLI.js +33 -0
  414. package/dist/bundle/chunks/chunk-7JHM3L42.js +6 -0
  415. package/dist/bundle/chunks/chunk-A4R2GWRF.js +9 -0
  416. package/dist/bundle/chunks/chunk-AA63C4TN.js +23 -0
  417. package/dist/bundle/chunks/chunk-ACSZB4FE.js +11 -0
  418. package/dist/bundle/chunks/chunk-BOZLBWPL.js +100 -0
  419. package/dist/bundle/chunks/chunk-BU36VZYL.js +4 -0
  420. package/dist/bundle/chunks/chunk-BVKWRAS6.js +12 -0
  421. package/dist/bundle/chunks/chunk-BXERNLCU.js +33 -0
  422. package/dist/bundle/chunks/chunk-BZUGFHVS.js +2 -0
  423. package/dist/bundle/chunks/chunk-CBJVD2XA.js +7 -0
  424. package/dist/bundle/chunks/chunk-CN5XGDNN.js +6 -0
  425. package/dist/bundle/chunks/chunk-DLL7UR66.js +2 -0
  426. package/dist/bundle/chunks/chunk-DVHZ434T.js +10 -0
  427. package/dist/bundle/chunks/chunk-EBAPSGAO.js +9 -0
  428. package/dist/bundle/chunks/chunk-EXLJT6MD.js +140 -0
  429. package/dist/bundle/chunks/chunk-FAXLQUCQ.js +10 -0
  430. package/dist/bundle/chunks/chunk-FE7TPM5F.js +79 -0
  431. package/dist/bundle/chunks/chunk-FHC24QSK.js +7 -0
  432. package/dist/bundle/chunks/chunk-FJK43EBQ.js +14 -0
  433. package/dist/bundle/chunks/chunk-FOCWZZDE.js +2 -0
  434. package/dist/bundle/chunks/chunk-FW54FHZR.js +2 -0
  435. package/dist/bundle/chunks/chunk-FX4RBUYU.js +5 -0
  436. package/dist/bundle/chunks/chunk-FZRQOL3C.js +7 -0
  437. package/dist/bundle/chunks/chunk-GGC5NEPZ.js +8 -0
  438. package/dist/bundle/chunks/chunk-GJC3WVOW.js +2 -0
  439. package/dist/bundle/chunks/chunk-GSPYNYZA.js +6 -0
  440. package/dist/bundle/chunks/chunk-HBVMHTO5.js +2 -0
  441. package/dist/bundle/chunks/chunk-HDRAUQK2.js +2 -0
  442. package/dist/bundle/chunks/chunk-HJBTD7PY.js +21 -0
  443. package/dist/bundle/chunks/chunk-ICIEVHY5.js +36 -0
  444. package/dist/bundle/chunks/chunk-J2XQNA2Z.js +8 -0
  445. package/dist/bundle/chunks/chunk-JYUAM3H7.js +16 -0
  446. package/dist/bundle/chunks/chunk-KD3KENL6.js +11 -0
  447. package/dist/bundle/chunks/chunk-KWGBQNTV.js +32 -0
  448. package/dist/bundle/chunks/chunk-KXUUKRXD.js +2 -0
  449. package/dist/bundle/chunks/chunk-L2UW7DWF.js +2 -0
  450. package/dist/bundle/chunks/chunk-L64BMZUV.js +2 -0
  451. package/dist/bundle/chunks/chunk-L66DE7G5.js +21 -0
  452. package/dist/bundle/chunks/chunk-LPJEKUCB.js +8 -0
  453. package/dist/bundle/chunks/chunk-LSLPJOYM.js +3 -0
  454. package/dist/bundle/chunks/chunk-LWXDWLMH.js +14 -0
  455. package/dist/bundle/chunks/chunk-MFDPAVC6.js +14 -0
  456. package/dist/bundle/chunks/chunk-MLIO3BK2.js +7 -0
  457. package/dist/bundle/chunks/chunk-MQKGGNPS.js +16 -0
  458. package/dist/bundle/chunks/chunk-NRSASXYY.js +2 -0
  459. package/dist/bundle/chunks/chunk-OGJ5CFPR.js +9 -0
  460. package/dist/bundle/chunks/chunk-OVGANXCG.js +8 -0
  461. package/dist/bundle/chunks/chunk-QAYAQNCG.js +23 -0
  462. package/dist/bundle/chunks/chunk-QIQMJJZ4.js +4 -0
  463. package/dist/bundle/chunks/chunk-R4IFXNY5.js +28 -0
  464. package/dist/bundle/chunks/chunk-R74UQCKX.js +5 -0
  465. package/dist/bundle/chunks/chunk-RBQG6ZUG.js +3 -0
  466. package/dist/bundle/chunks/chunk-S3LEJEPP.js +2 -0
  467. package/dist/bundle/chunks/chunk-S443BAN4.js +7 -0
  468. package/dist/bundle/chunks/chunk-SBBYKIYU.js +3 -0
  469. package/dist/bundle/chunks/chunk-SETW5JBN.js +9 -0
  470. package/dist/bundle/chunks/chunk-SHKOQWO4.js +3 -0
  471. package/dist/bundle/chunks/chunk-SJYEXC2Z.js +14 -0
  472. package/dist/bundle/chunks/chunk-STHBFACM.js +1 -0
  473. package/dist/bundle/chunks/chunk-SX2HC7SO.js +2 -0
  474. package/dist/bundle/chunks/chunk-T3EYGW4N.js +63 -0
  475. package/dist/bundle/chunks/chunk-T4TFLF3R.js +16 -0
  476. package/dist/bundle/chunks/chunk-TDD4NFYE.js +2 -0
  477. package/dist/bundle/chunks/chunk-TN7HHBQW.js +5 -0
  478. package/dist/bundle/chunks/chunk-U73A73IE.js +17 -0
  479. package/dist/bundle/chunks/chunk-UIJUTQPH.js +3 -0
  480. package/dist/bundle/chunks/chunk-UP6MSJGD.js +17 -0
  481. package/dist/bundle/chunks/chunk-UURAZSVT.js +10 -0
  482. package/dist/bundle/chunks/chunk-V6PSIUPR.js +11 -0
  483. package/dist/bundle/chunks/chunk-V77XGLKX.js +5 -0
  484. package/dist/bundle/chunks/chunk-VBRPS3D5.js +2 -0
  485. package/dist/bundle/chunks/chunk-VLCHOJWK.js +6 -0
  486. package/dist/bundle/chunks/chunk-W5DWRFSU.js +2 -0
  487. package/dist/bundle/chunks/chunk-WM5IJFMP.js +8 -0
  488. package/dist/bundle/chunks/chunk-WN7T6YIH.js +287 -0
  489. package/dist/bundle/chunks/chunk-WNH3HOQA.js +2 -0
  490. package/dist/bundle/chunks/chunk-WPGQVBSY.js +6 -0
  491. package/dist/bundle/chunks/chunk-XCQWV4AU.js +12 -0
  492. package/dist/bundle/chunks/chunk-XHLMAZX2.js +5 -0
  493. package/dist/bundle/chunks/chunk-XRFHFXFP.js +2 -0
  494. package/dist/bundle/chunks/chunk-Y4LIDHSD.js +7 -0
  495. package/dist/bundle/chunks/chunk-Y4SO5AJF.js +16 -0
  496. package/dist/bundle/chunks/chunk-YCLFEX4T.js +3 -0
  497. package/dist/bundle/chunks/chunk-YRXX457F.js +6 -0
  498. package/dist/bundle/chunks/chunk-YS4NUBYX.js +9 -0
  499. package/dist/bundle/chunks/chunk-ZDIT6ST5.js +7 -0
  500. package/dist/bundle/chunks/chunk-ZDPFA4L3.js +6 -0
  501. package/dist/bundle/chunks/chunk-ZLAEZD2P.js +21 -0
  502. package/dist/bundle/chunks/clear-HKGFEOF6.js +2 -0
  503. package/dist/bundle/chunks/column-XT6UFXNQ.js +2 -0
  504. package/dist/bundle/chunks/comm-VV2LDX2J.js +2 -0
  505. package/dist/bundle/chunks/cp-BISAAS7A.js +2 -0
  506. package/dist/bundle/chunks/curl-GRYA74XW.js +26 -0
  507. package/dist/bundle/chunks/cut-OKARJCCV.js +2 -0
  508. package/dist/bundle/chunks/date-XKUEQ4WF.js +2 -0
  509. package/dist/bundle/chunks/diff-MWJFIG7X.js +2 -0
  510. package/dist/bundle/chunks/dirname-MPHRFUTI.js +2 -0
  511. package/dist/bundle/chunks/du-572XNP42.js +2 -0
  512. package/dist/bundle/chunks/echo-NDWZZHPO.js +2 -0
  513. package/dist/bundle/chunks/env-36M5BO7M.js +2 -0
  514. package/dist/bundle/chunks/expand-JSPG6VOP.js +2 -0
  515. package/dist/bundle/chunks/expansion-2O6WLRBD.js +2 -0
  516. package/dist/bundle/chunks/expr-6MFJ5XZG.js +2 -0
  517. package/dist/bundle/chunks/file-55SY74D5.js +2 -0
  518. package/dist/bundle/chunks/find-BKC2BIAO.js +2 -0
  519. package/dist/bundle/chunks/flag-coverage-4GZNBF47.js +2 -0
  520. package/dist/bundle/chunks/fold-4TQNYMSW.js +2 -0
  521. package/dist/bundle/chunks/grep-2ILJFW6Y.js +2 -0
  522. package/dist/bundle/chunks/gzip-O5ASJAFY.js +2 -0
  523. package/dist/bundle/chunks/head-BALRBIDD.js +2 -0
  524. package/dist/bundle/chunks/help-HZ6M2CKN.js +2 -0
  525. package/dist/bundle/chunks/history-WYYKSLSZ.js +2 -0
  526. package/dist/bundle/chunks/hostname-C4HQXXUP.js +2 -0
  527. package/dist/bundle/chunks/html-to-markdown-JW4MSQZO.js +2 -0
  528. package/dist/bundle/chunks/join-TBRGI3LQ.js +2 -0
  529. package/dist/bundle/chunks/jq-QLLVLUWT.js +2 -0
  530. package/dist/bundle/chunks/js-exec-N5KEZBH7.js +97 -0
  531. package/dist/bundle/chunks/js-exec-worker.js +4639 -0
  532. package/dist/bundle/chunks/ln-4LGSXXGD.js +2 -0
  533. package/dist/bundle/chunks/ls-ZJGQER7M.js +2 -0
  534. package/dist/bundle/chunks/md5sum-SPU24VSG.js +2 -0
  535. package/dist/bundle/chunks/mkdir-MEPGZOB6.js +2 -0
  536. package/dist/bundle/chunks/mv-W5BIQ646.js +2 -0
  537. package/dist/bundle/chunks/nl-WSDW7I4O.js +2 -0
  538. package/dist/bundle/chunks/od-WOKFDJTP.js +2 -0
  539. package/dist/bundle/chunks/paste-7JC6S4DX.js +2 -0
  540. package/dist/bundle/chunks/printf-I2B4W2XW.js +2 -0
  541. package/dist/bundle/chunks/pwd-WE6EN5AV.js +2 -0
  542. package/dist/bundle/chunks/python3-POMOR4OA.js +12 -0
  543. package/dist/bundle/chunks/readlink-OPJF4DL5.js +2 -0
  544. package/dist/bundle/chunks/rev-5EHFX4EJ.js +2 -0
  545. package/dist/bundle/chunks/rg-X6MJUOKW.js +2 -0
  546. package/dist/bundle/chunks/rm-SSGETQVQ.js +2 -0
  547. package/dist/bundle/chunks/rmdir-OC4ZLPYA.js +2 -0
  548. package/dist/bundle/chunks/sed-JWIN756M.js +2 -0
  549. package/dist/bundle/chunks/seq-M5EC7Q57.js +2 -0
  550. package/dist/bundle/chunks/sha1sum-2PTOAFR6.js +2 -0
  551. package/dist/bundle/chunks/sha256sum-NS7D3IXX.js +2 -0
  552. package/dist/bundle/chunks/sleep-X22JJINO.js +2 -0
  553. package/dist/bundle/chunks/sort-SW2YEO5B.js +2 -0
  554. package/dist/bundle/chunks/split-4KKZZXXE.js +2 -0
  555. package/dist/bundle/chunks/sqlite3-CGOEFJAO.js +2 -0
  556. package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
  557. package/dist/bundle/chunks/stat-CD34IZ4P.js +2 -0
  558. package/dist/bundle/chunks/strings-6WDHLGMX.js +2 -0
  559. package/dist/bundle/chunks/tac-2STMMJYW.js +2 -0
  560. package/dist/bundle/chunks/tail-3JSKDTET.js +2 -0
  561. package/dist/bundle/chunks/tar-WT6S4IJX.js +2 -0
  562. package/dist/bundle/chunks/tee-YUZ2FKCJ.js +2 -0
  563. package/dist/bundle/chunks/time-D4LNBSWX.js +2 -0
  564. package/dist/bundle/chunks/timeout-YDCRSLPQ.js +2 -0
  565. package/dist/bundle/chunks/touch-UA33VN3N.js +2 -0
  566. package/dist/bundle/chunks/tr-36LHWFRQ.js +2 -0
  567. package/dist/bundle/chunks/tree-YLD52CNT.js +2 -0
  568. package/dist/bundle/chunks/true-FHQXJXBE.js +2 -0
  569. package/dist/bundle/chunks/unexpand-CADSA4VO.js +2 -0
  570. package/dist/bundle/chunks/uniq-XSIZR6PB.js +2 -0
  571. package/dist/bundle/chunks/wc-LF7NU4LA.js +2 -0
  572. package/dist/bundle/chunks/which-XEM24D5D.js +2 -0
  573. package/dist/bundle/chunks/whoami-XMTX52VE.js +2 -0
  574. package/dist/bundle/chunks/worker.js +3150 -0
  575. package/dist/bundle/chunks/xan-5D7XBVRF.js +2 -0
  576. package/dist/bundle/chunks/xan-view-P7JTBY6N.js +2 -0
  577. package/dist/bundle/chunks/xargs-MGZPH7AX.js +2 -0
  578. package/dist/bundle/chunks/yq-6N2YNRZS.js +2 -0
  579. package/dist/bundle/index.cjs +2209 -0
  580. package/dist/bundle/index.js +733 -0
  581. package/dist/commands/alias/alias.d.ts +6 -0
  582. package/dist/commands/awk/ast.d.ts +202 -0
  583. package/dist/commands/awk/awk2.d.ts +9 -0
  584. package/dist/commands/awk/builtins.d.ts +17 -0
  585. package/dist/commands/awk/interpreter/context.d.ts +75 -0
  586. package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
  587. package/dist/commands/awk/interpreter/fields.d.ts +25 -0
  588. package/dist/commands/awk/interpreter/index.d.ts +8 -0
  589. package/dist/commands/awk/interpreter/interpreter.d.ts +54 -0
  590. package/dist/commands/awk/interpreter/statements.d.ts +11 -0
  591. package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
  592. package/dist/commands/awk/interpreter/types.d.ts +13 -0
  593. package/dist/commands/awk/interpreter/variables.d.ts +35 -0
  594. package/dist/commands/awk/lexer.d.ts +100 -0
  595. package/dist/commands/awk/parser2-print.d.ts +35 -0
  596. package/dist/commands/awk/parser2.d.ts +81 -0
  597. package/dist/commands/base64/base64.d.ts +7 -0
  598. package/dist/commands/basename/basename.d.ts +4 -0
  599. package/dist/commands/bash/bash.d.ts +6 -0
  600. package/dist/commands/browser-excluded.d.ts +16 -0
  601. package/dist/commands/cat/cat.d.ts +4 -0
  602. package/dist/commands/chmod/chmod.d.ts +4 -0
  603. package/dist/commands/clear/clear.d.ts +4 -0
  604. package/dist/commands/column/column.d.ts +11 -0
  605. package/dist/commands/comm/comm.d.ts +12 -0
  606. package/dist/commands/cp/cp.d.ts +4 -0
  607. package/dist/commands/curl/curl.d.ts +8 -0
  608. package/dist/commands/curl/form.d.ts +21 -0
  609. package/dist/commands/curl/help.d.ts +9 -0
  610. package/dist/commands/curl/parse.d.ts +9 -0
  611. package/dist/commands/curl/response-formatting.d.ts +20 -0
  612. package/dist/commands/curl/types.d.ts +60 -0
  613. package/dist/commands/cut/cut.d.ts +4 -0
  614. package/dist/commands/date/date.d.ts +7 -0
  615. package/dist/commands/diff/diff.d.ts +7 -0
  616. package/dist/commands/dirname/dirname.d.ts +4 -0
  617. package/dist/commands/du/du.d.ts +4 -0
  618. package/dist/commands/duration.d.ts +5 -0
  619. package/dist/commands/echo/echo.d.ts +4 -0
  620. package/dist/commands/env/env.d.ts +6 -0
  621. package/dist/commands/expand/expand.d.ts +12 -0
  622. package/dist/commands/expand/unexpand.d.ts +12 -0
  623. package/dist/commands/expr/expr.d.ts +9 -0
  624. package/dist/commands/file/file.d.ts +9 -0
  625. package/dist/commands/find/find.d.ts +4 -0
  626. package/dist/commands/find/matcher.d.ts +69 -0
  627. package/dist/commands/find/parser.d.ts +2 -0
  628. package/dist/commands/find/types.d.ts +88 -0
  629. package/dist/commands/flag-coverage.d.ts +2 -0
  630. package/dist/commands/fold/fold.d.ts +12 -0
  631. package/dist/commands/format-mode.d.ts +4 -0
  632. package/dist/commands/fuzz-flags-types.d.ts +17 -0
  633. package/dist/commands/fuzz-flags.d.ts +8 -0
  634. package/dist/commands/grep/grep.d.ts +8 -0
  635. package/dist/commands/gzip/gzip.d.ts +13 -0
  636. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  637. package/dist/commands/head/head.d.ts +4 -0
  638. package/dist/commands/help/help.d.ts +4 -0
  639. package/dist/commands/help.d.ts +16 -0
  640. package/dist/commands/history/history.d.ts +4 -0
  641. package/dist/commands/hostname/hostname.d.ts +11 -0
  642. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
  643. package/dist/commands/index.d.ts +1 -0
  644. package/dist/commands/join/join.d.ts +12 -0
  645. package/dist/commands/jq/jq.d.ts +9 -0
  646. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  647. package/dist/commands/js-exec/js-exec-worker.d.ts +32 -0
  648. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  649. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  650. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  651. package/dist/commands/ln/ln.d.ts +4 -0
  652. package/dist/commands/ls/ls.d.ts +4 -0
  653. package/dist/commands/md5sum/checksum.d.ts +7 -0
  654. package/dist/commands/md5sum/md5sum.d.ts +4 -0
  655. package/dist/commands/md5sum/sha1sum.d.ts +4 -0
  656. package/dist/commands/md5sum/sha256sum.d.ts +4 -0
  657. package/dist/commands/mkdir/mkdir.d.ts +4 -0
  658. package/dist/commands/mv/mv.d.ts +4 -0
  659. package/dist/commands/nl/nl.d.ts +12 -0
  660. package/dist/commands/od/od.d.ts +12 -0
  661. package/dist/commands/paste/paste.d.ts +4 -0
  662. package/dist/commands/printf/escapes.d.ts +25 -0
  663. package/dist/commands/printf/printf.d.ts +4 -0
  664. package/dist/commands/printf/strftime.d.ts +9 -0
  665. package/dist/commands/pwd/pwd.d.ts +4 -0
  666. package/dist/commands/python3/python3.d.ts +16 -0
  667. package/dist/commands/python3/worker.d.ts +28 -0
  668. package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
  669. package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
  670. package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
  671. package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
  672. package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
  673. package/dist/commands/query-engine/builtins/index.d.ts +17 -0
  674. package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
  675. package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
  676. package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
  677. package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
  678. package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
  679. package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
  680. package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
  681. package/dist/commands/query-engine/evaluator.d.ts +40 -0
  682. package/dist/commands/query-engine/index.d.ts +8 -0
  683. package/dist/commands/query-engine/parser-types.d.ts +171 -0
  684. package/dist/commands/query-engine/parser.d.ts +9 -0
  685. package/dist/commands/query-engine/path-operations.d.ts +15 -0
  686. package/dist/commands/query-engine/safe-object.d.ts +83 -0
  687. package/dist/commands/query-engine/value-operations.d.ts +41 -0
  688. package/dist/commands/readlink/readlink.d.ts +4 -0
  689. package/dist/commands/registry.d.ts +56 -0
  690. package/dist/commands/rev/rev.d.ts +13 -0
  691. package/dist/commands/rg/file-types.d.ts +49 -0
  692. package/dist/commands/rg/gitignore.d.ts +98 -0
  693. package/dist/commands/rg/rg-options.d.ts +61 -0
  694. package/dist/commands/rg/rg-parser.d.ts +20 -0
  695. package/dist/commands/rg/rg-search.d.ts +15 -0
  696. package/dist/commands/rg/rg.d.ts +14 -0
  697. package/dist/commands/rm/rm.d.ts +4 -0
  698. package/dist/commands/rmdir/rmdir.d.ts +4 -0
  699. package/dist/commands/search-engine/index.d.ts +10 -0
  700. package/dist/commands/search-engine/matcher.d.ts +66 -0
  701. package/dist/commands/search-engine/regex.d.ts +46 -0
  702. package/dist/commands/sed/executor.d.ts +7 -0
  703. package/dist/commands/sed/lexer.d.ts +86 -0
  704. package/dist/commands/sed/parser.d.ts +18 -0
  705. package/dist/commands/sed/sed-regex.d.ts +23 -0
  706. package/dist/commands/sed/sed.d.ts +4 -0
  707. package/dist/commands/sed/types.d.ts +216 -0
  708. package/dist/commands/seq/seq.d.ts +16 -0
  709. package/dist/commands/sleep/sleep.d.ts +4 -0
  710. package/dist/commands/sort/comparator.d.ts +9 -0
  711. package/dist/commands/sort/parser.d.ts +11 -0
  712. package/dist/commands/sort/sort.d.ts +4 -0
  713. package/dist/commands/sort/types.d.ts +30 -0
  714. package/dist/commands/split/split.d.ts +12 -0
  715. package/dist/commands/sqlite3/formatters.d.ts +15 -0
  716. package/dist/commands/sqlite3/sqlite3.d.ts +23 -0
  717. package/dist/commands/sqlite3/worker.d.ts +45 -0
  718. package/dist/commands/sqlite3/worker.js +1728 -0
  719. package/dist/commands/stat/stat.d.ts +4 -0
  720. package/dist/commands/strings/strings.d.ts +12 -0
  721. package/dist/commands/tac/tac.d.ts +11 -0
  722. package/dist/commands/tail/tail.d.ts +4 -0
  723. package/dist/commands/tar/archive.d.ts +135 -0
  724. package/dist/commands/tar/bzip2-compress.d.ts +17 -0
  725. package/dist/commands/tar/tar-options.d.ts +37 -0
  726. package/dist/commands/tar/tar.d.ts +10 -0
  727. package/dist/commands/tee/tee.d.ts +4 -0
  728. package/dist/commands/time/time.d.ts +27 -0
  729. package/dist/commands/timeout/timeout.d.ts +4 -0
  730. package/dist/commands/touch/touch.d.ts +4 -0
  731. package/dist/commands/tr/tr.d.ts +4 -0
  732. package/dist/commands/tree/tree.d.ts +4 -0
  733. package/dist/commands/true/true.d.ts +6 -0
  734. package/dist/commands/uniq/uniq.d.ts +4 -0
  735. package/dist/commands/wc/wc.d.ts +4 -0
  736. package/dist/commands/which/which.d.ts +4 -0
  737. package/dist/commands/whoami/whoami.d.ts +11 -0
  738. package/dist/commands/worker-bridge/bridge-handler.d.ts +73 -0
  739. package/dist/commands/worker-bridge/protocol.d.ts +141 -0
  740. package/dist/commands/worker-bridge/sync-backend.d.ts +86 -0
  741. package/dist/commands/xan/aggregation.d.ts +20 -0
  742. package/dist/commands/xan/column-selection.d.ts +19 -0
  743. package/dist/commands/xan/csv.d.ts +37 -0
  744. package/dist/commands/xan/moonblade-parser.d.ts +80 -0
  745. package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
  746. package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
  747. package/dist/commands/xan/subcommands.d.ts +15 -0
  748. package/dist/commands/xan/xan-agg.d.ts +8 -0
  749. package/dist/commands/xan/xan-columns.d.ts +8 -0
  750. package/dist/commands/xan/xan-core.d.ts +10 -0
  751. package/dist/commands/xan/xan-data.d.ts +52 -0
  752. package/dist/commands/xan/xan-filter.d.ts +8 -0
  753. package/dist/commands/xan/xan-map.d.ts +11 -0
  754. package/dist/commands/xan/xan-reshape.d.ts +40 -0
  755. package/dist/commands/xan/xan-simple.d.ts +40 -0
  756. package/dist/commands/xan/xan-view.d.ts +12 -0
  757. package/dist/commands/xan/xan.d.ts +10 -0
  758. package/dist/commands/xargs/xargs.d.ts +4 -0
  759. package/dist/commands/yq/formats.d.ts +64 -0
  760. package/dist/commands/yq/yq.d.ts +13 -0
  761. package/dist/custom-commands.d.ts +42 -0
  762. package/dist/encoding.d.ts +115 -0
  763. package/dist/fs/encoding.d.ts +17 -0
  764. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +75 -0
  765. package/dist/fs/in-memory-fs/index.d.ts +1 -0
  766. package/dist/fs/init.d.ts +22 -0
  767. package/dist/fs/interface.d.ts +251 -0
  768. package/dist/fs/mountable-fs/index.d.ts +1 -0
  769. package/dist/fs/mountable-fs/mountable-fs.d.ts +118 -0
  770. package/dist/fs/overlay-fs/index.d.ts +1 -0
  771. package/dist/fs/overlay-fs/overlay-fs.d.ts +165 -0
  772. package/dist/fs/path-utils.d.ts +46 -0
  773. package/dist/fs/read-write-fs/index.d.ts +1 -0
  774. package/dist/fs/read-write-fs/read-write-fs.d.ts +98 -0
  775. package/dist/fs/real-fs-utils.d.ts +90 -0
  776. package/dist/fs/sanitize-error.d.ts +19 -0
  777. package/dist/index.d.cts +29 -0
  778. package/dist/index.d.ts +29 -0
  779. package/dist/interpreter/alias-expansion.d.ts +23 -0
  780. package/dist/interpreter/arithmetic.d.ts +24 -0
  781. package/dist/interpreter/assignment-expansion.d.ts +24 -0
  782. package/dist/interpreter/builtin-dispatch.d.ts +39 -0
  783. package/dist/interpreter/builtins/break.d.ts +6 -0
  784. package/dist/interpreter/builtins/cd.d.ts +6 -0
  785. package/dist/interpreter/builtins/compgen.d.ts +26 -0
  786. package/dist/interpreter/builtins/complete.d.ts +17 -0
  787. package/dist/interpreter/builtins/compopt.d.ts +28 -0
  788. package/dist/interpreter/builtins/continue.d.ts +6 -0
  789. package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
  790. package/dist/interpreter/builtins/declare-print.d.ts +39 -0
  791. package/dist/interpreter/builtins/declare.d.ts +35 -0
  792. package/dist/interpreter/builtins/dirs.d.ts +29 -0
  793. package/dist/interpreter/builtins/eval.d.ts +9 -0
  794. package/dist/interpreter/builtins/exit.d.ts +5 -0
  795. package/dist/interpreter/builtins/export.d.ts +14 -0
  796. package/dist/interpreter/builtins/getopts.d.ts +18 -0
  797. package/dist/interpreter/builtins/hash.d.ts +19 -0
  798. package/dist/interpreter/builtins/help.d.ts +12 -0
  799. package/dist/interpreter/builtins/index.d.ts +45 -0
  800. package/dist/interpreter/builtins/let.d.ts +18 -0
  801. package/dist/interpreter/builtins/local.d.ts +6 -0
  802. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  803. package/dist/interpreter/builtins/read.d.ts +6 -0
  804. package/dist/interpreter/builtins/return.d.ts +6 -0
  805. package/dist/interpreter/builtins/set.d.ts +9 -0
  806. package/dist/interpreter/builtins/shift.d.ts +15 -0
  807. package/dist/interpreter/builtins/shopt.d.ts +7 -0
  808. package/dist/interpreter/builtins/source.d.ts +6 -0
  809. package/dist/interpreter/builtins/unset.d.ts +16 -0
  810. package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
  811. package/dist/interpreter/command-resolution.d.ts +43 -0
  812. package/dist/interpreter/conditionals.d.ts +17 -0
  813. package/dist/interpreter/control-flow.d.ts +21 -0
  814. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  815. package/dist/interpreter/errors.d.ts +167 -0
  816. package/dist/interpreter/expansion/analysis.d.ts +37 -0
  817. package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
  818. package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
  819. package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
  820. package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
  821. package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
  822. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  823. package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
  824. package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
  825. package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
  826. package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
  827. package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
  828. package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
  829. package/dist/interpreter/expansion/pattern.d.ts +23 -0
  830. package/dist/interpreter/expansion/positional-params.d.ts +59 -0
  831. package/dist/interpreter/expansion/prompt.d.ts +39 -0
  832. package/dist/interpreter/expansion/quoting.d.ts +13 -0
  833. package/dist/interpreter/expansion/tilde.d.ts +12 -0
  834. package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
  835. package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
  836. package/dist/interpreter/expansion/variable.d.ts +36 -0
  837. package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
  838. package/dist/interpreter/expansion/word-split.d.ts +29 -0
  839. package/dist/interpreter/expansion.d.ts +53 -0
  840. package/dist/interpreter/functions.d.ts +12 -0
  841. package/dist/interpreter/helpers/array.d.ts +43 -0
  842. package/dist/interpreter/helpers/condition.d.ts +22 -0
  843. package/dist/interpreter/helpers/errors.d.ts +8 -0
  844. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  845. package/dist/interpreter/helpers/ifs.d.ts +104 -0
  846. package/dist/interpreter/helpers/loop.d.ts +24 -0
  847. package/dist/interpreter/helpers/nameref.d.ts +65 -0
  848. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  849. package/dist/interpreter/helpers/quoting.d.ts +24 -0
  850. package/dist/interpreter/helpers/readonly.d.ts +45 -0
  851. package/dist/interpreter/helpers/regex.d.ts +8 -0
  852. package/dist/interpreter/helpers/result.d.ts +60 -0
  853. package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
  854. package/dist/interpreter/helpers/shellopts.d.ts +28 -0
  855. package/dist/interpreter/helpers/statements.d.ts +20 -0
  856. package/dist/interpreter/helpers/string-compare.d.ts +24 -0
  857. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  858. package/dist/interpreter/helpers/tilde.d.ts +13 -0
  859. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  860. package/dist/interpreter/helpers/word-matching.d.ts +26 -0
  861. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  862. package/dist/interpreter/helpers/xtrace.d.ts +18 -0
  863. package/dist/interpreter/index.d.ts +4 -0
  864. package/dist/interpreter/interpreter.d.ts +91 -0
  865. package/dist/interpreter/pipeline-execution.d.ts +16 -0
  866. package/dist/interpreter/redirections.d.ts +60 -0
  867. package/dist/interpreter/simple-command-assignments.d.ts +29 -0
  868. package/dist/interpreter/subshell-group.d.ts +32 -0
  869. package/dist/interpreter/type-command.d.ts +37 -0
  870. package/dist/interpreter/types.d.ts +393 -0
  871. package/dist/limits.d.ts +52 -0
  872. package/dist/network/allow-list/shared.d.ts +59 -0
  873. package/dist/network/allow-list.d.ts +59 -0
  874. package/dist/network/dns-pin.d.ts +43 -0
  875. package/dist/network/fetch.d.ts +25 -0
  876. package/dist/network/index.d.ts +7 -0
  877. package/dist/network/types.d.ts +155 -0
  878. package/dist/parser/arithmetic-parser.d.ts +23 -0
  879. package/dist/parser/arithmetic-primaries.d.ts +45 -0
  880. package/dist/parser/command-parser.d.ts +10 -0
  881. package/dist/parser/compound-parser.d.ts +28 -0
  882. package/dist/parser/conditional-parser.d.ts +8 -0
  883. package/dist/parser/expansion-parser.d.ts +16 -0
  884. package/dist/parser/lexer.d.ts +197 -0
  885. package/dist/parser/parser-substitution.d.ts +76 -0
  886. package/dist/parser/parser.d.ts +136 -0
  887. package/dist/parser/types.d.ts +25 -0
  888. package/dist/parser/word-parser.d.ts +33 -0
  889. package/dist/sandbox/Command.d.ts +35 -0
  890. package/dist/sandbox/Sandbox.d.ts +90 -0
  891. package/dist/sandbox/index.d.ts +2 -0
  892. package/dist/shell-metadata.d.ts +25 -0
  893. package/dist/timers.d.ts +4 -0
  894. package/dist/types.d.ts +248 -0
  895. package/dist/utils/args.d.ts +55 -0
  896. package/dist/utils/constants.d.ts +15 -0
  897. package/dist/utils/file-reader.d.ts +74 -0
  898. package/dist/utils/glob.d.ts +25 -0
  899. package/dist/vitest-setup.d.ts +1 -0
  900. package/package.json +188 -0
  901. package/vendor/cpython-emscripten/python.cjs +2 -0
  902. package/vendor/cpython-emscripten/python.wasm +0 -0
  903. package/vendor/cpython-emscripten/python313.zip +0 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Recursive Descent Parser for Bash Scripts
3
+ *
4
+ * This parser consumes tokens from the lexer and produces an AST.
5
+ * It follows the bash grammar structure for correctness.
6
+ *
7
+ * Grammar (simplified):
8
+ * script ::= statement*
9
+ * statement ::= pipeline ((&&|'||') pipeline)* [&]
10
+ * pipeline ::= [!] command (| command)*
11
+ * command ::= simple_command | compound_command | function_def
12
+ * simple_cmd ::= (assignment)* [word] (word)* (redirection)*
13
+ * compound_cmd ::= if | for | while | until | case | subshell | group | (( | [[
14
+ */
15
+ import { type ArithmeticExpansionPart, type ArithmeticExpressionNode, type CommandSubstitutionPart, type RedirectionNode, type ScriptNode, type StatementNode, type WordNode } from "../ast/types.js";
16
+ import { type LexerOptions, type Token, TokenType } from "./lexer.js";
17
+ export type { ParseError } from "./types.js";
18
+ export { ParseException } from "./types.js";
19
+ /**
20
+ * Parser class - transforms tokens into AST
21
+ */
22
+ export declare class Parser {
23
+ private tokens;
24
+ private pos;
25
+ private pendingHeredocs;
26
+ private parseIterations;
27
+ private parseDepth;
28
+ private _input;
29
+ /**
30
+ * Get the raw input string being parsed.
31
+ * Used by conditional-parser for extracting exact whitespace in regex patterns.
32
+ */
33
+ getInput(): string;
34
+ /**
35
+ * Check parse iteration limit to prevent infinite loops
36
+ */
37
+ checkIterationLimit(): void;
38
+ /**
39
+ * Increment parse depth and check limit to prevent stack overflow
40
+ * from deeply nested constructs. Returns a function to decrement depth.
41
+ */
42
+ enterDepth(): () => void;
43
+ /**
44
+ * Parse a bash script string
45
+ */
46
+ parse(input: string, options?: LexerOptions): ScriptNode;
47
+ /**
48
+ * Parse from pre-tokenized input
49
+ */
50
+ parseTokens(tokens: Token[]): ScriptNode;
51
+ current(): Token;
52
+ peek(offset?: number): Token;
53
+ advance(): Token;
54
+ getPos(): number;
55
+ /**
56
+ * Check if current token matches any of the given types.
57
+ * Optimized to avoid array allocation for common cases (1-4 args).
58
+ */
59
+ check(t1: TokenType, t2?: TokenType, t3?: TokenType, t4?: TokenType, ...rest: TokenType[]): boolean;
60
+ expect(type: TokenType, message?: string): Token;
61
+ error(message: string): never;
62
+ skipNewlines(): void;
63
+ skipSeparators(includeCaseTerminators?: boolean): void;
64
+ addPendingHeredoc(redirect: RedirectionNode, delimiter: string, stripTabs: boolean, quoted: boolean): void;
65
+ private processHeredocs;
66
+ isStatementEnd(): boolean;
67
+ private isCommandStart;
68
+ private parseScript;
69
+ /**
70
+ * Check for unexpected tokens that can't appear at statement start.
71
+ * Returns a deferred error statement for tokens that should cause errors
72
+ * at execution time rather than parse time (to match bash's incremental behavior).
73
+ */
74
+ private checkUnexpectedToken;
75
+ parseStatement(): StatementNode | null;
76
+ private parsePipeline;
77
+ private parseCommand;
78
+ /**
79
+ * Scan ahead from current DPAREN_START to determine if it closes with ) )
80
+ * (two separate RPAREN tokens) or )) (DPAREN_END token).
81
+ * Returns true if it closes with ) ) (nested subshells case).
82
+ */
83
+ private dparenClosesWithSpacedParens;
84
+ /**
85
+ * Parse (( ... ) ) as nested subshells when we know it closes with ) ).
86
+ * We've already determined via dparenClosesWithSpacedParens() that this
87
+ * DPAREN_START should be treated as two LPAREN tokens.
88
+ */
89
+ private parseNestedSubshellsFromDparen;
90
+ private errorExpectedCommand;
91
+ isWord(): boolean;
92
+ parseWord(): WordNode;
93
+ /**
94
+ * Parse a word without brace expansion (for [[ ]] conditionals).
95
+ * In bash, brace expansion does not occur inside [[ ]].
96
+ */
97
+ parseWordNoBraceExpansion(): WordNode;
98
+ /**
99
+ * Parse a word for regex patterns (in [[ =~ ]]).
100
+ * All escaped characters create Escaped nodes so the backslash is preserved
101
+ * for the regex engine. For example, \$ creates Escaped("$") which becomes \$
102
+ * in the final regex pattern.
103
+ */
104
+ parseWordForRegex(): WordNode;
105
+ parseWordFromString(value: string, quoted?: boolean, singleQuoted?: boolean, isAssignment?: boolean, hereDoc?: boolean, noBraceExpansion?: boolean, regexPattern?: boolean): WordNode;
106
+ parseCommandSubstitution(value: string, start: number): {
107
+ part: CommandSubstitutionPart;
108
+ endIndex: number;
109
+ };
110
+ parseBacktickSubstitution(value: string, start: number,
111
+ /** Whether the backtick is inside double quotes */
112
+ inDoubleQuotes?: boolean): {
113
+ part: CommandSubstitutionPart;
114
+ endIndex: number;
115
+ };
116
+ /**
117
+ * Check if $(( at position `start` in `value` is a command substitution with nested
118
+ * subshell rather than arithmetic expansion.
119
+ */
120
+ isDollarDparenSubshell(value: string, start: number): boolean;
121
+ parseArithmeticExpansion(value: string, start: number): {
122
+ part: ArithmeticExpansionPart;
123
+ endIndex: number;
124
+ };
125
+ private parseArithmeticCommand;
126
+ private parseConditionalCommand;
127
+ private parseFunctionDef;
128
+ private parseCompoundCommandBody;
129
+ parseCompoundList(): StatementNode[];
130
+ parseOptionalRedirections(): RedirectionNode[];
131
+ parseArithmeticExpression(input: string): ArithmeticExpressionNode;
132
+ }
133
+ /**
134
+ * Convenience function to parse a bash script
135
+ */
136
+ export declare function parse(input: string, options?: LexerOptions): ScriptNode;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parser Types and Constants
3
+ *
4
+ * Shared types, interfaces, and constants used across parser modules.
5
+ */
6
+ import { type Token, TokenType } from "./lexer.js";
7
+ export declare const MAX_INPUT_SIZE = 1000000;
8
+ export declare const MAX_TOKENS = 100000;
9
+ export declare const MAX_PARSE_ITERATIONS = 1000000;
10
+ export declare const MAX_PARSER_DEPTH = 200;
11
+ export declare const REDIRECTION_TOKENS: Set<TokenType>;
12
+ export declare const REDIRECTION_AFTER_NUMBER: Set<TokenType>;
13
+ export declare const REDIRECTION_AFTER_FD_VARIABLE: Set<TokenType>;
14
+ export interface ParseError {
15
+ message: string;
16
+ line: number;
17
+ column: number;
18
+ token?: Token;
19
+ }
20
+ export declare class ParseException extends Error {
21
+ line: number;
22
+ column: number;
23
+ token: Token | undefined;
24
+ constructor(message: string, line: number, column: number, token?: Token | undefined);
25
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Word Parsing Utilities
3
+ *
4
+ * String manipulation utilities for parsing words, expansions, and patterns.
5
+ * These are pure functions extracted from the Parser class.
6
+ */
7
+ import { type ArithmeticExpressionNode, type RedirectionOperator, type WordNode, type WordPart } from "../ast/types.js";
8
+ import { TokenType } from "./lexer.js";
9
+ import type { Parser } from "./parser.js";
10
+ export declare function findTildeEnd(_p: Parser, value: string, start: number): number;
11
+ export declare function findMatchingBracket(_p: Parser, value: string, start: number, open: string, close: string): number;
12
+ export declare function findParameterOperationEnd(_p: Parser, value: string, start: number): number;
13
+ export declare function findPatternEnd(_p: Parser, value: string, start: number): number;
14
+ export declare function parseGlobPattern(_p: Parser, value: string, start: number): {
15
+ pattern: string;
16
+ endIndex: number;
17
+ };
18
+ export declare function parseAnsiCQuoted(_p: Parser, value: string, start: number): {
19
+ part: WordPart;
20
+ endIndex: number;
21
+ };
22
+ export declare function parseArithExprFromString(p: Parser, str: string): ArithmeticExpressionNode;
23
+ export type WordPartsParser = (p: Parser, value: string, quoted?: boolean, singleQuoted?: boolean, isAssignment?: boolean) => WordPart[];
24
+ export declare function tryParseBraceExpansion(p: Parser, value: string, start: number, parseWordPartsFn?: WordPartsParser): {
25
+ part: WordPart;
26
+ endIndex: number;
27
+ } | null;
28
+ /**
29
+ * Convert a WordNode back to a string representation.
30
+ * Used for reconstructing array assignment strings for declare/local.
31
+ */
32
+ export declare function wordToString(_p: Parser, word: WordNode): string;
33
+ export declare function tokenToRedirectOp(_p: Parser, type: TokenType): RedirectionOperator;
@@ -0,0 +1,35 @@
1
+ import type { Bash } from "../Bash.js";
2
+ export interface OutputMessage {
3
+ type: "stdout" | "stderr";
4
+ data: string;
5
+ timestamp: Date;
6
+ }
7
+ export declare class Command {
8
+ readonly cmdId: string;
9
+ readonly cwd: string;
10
+ readonly startedAt: Date;
11
+ exitCode: number | undefined;
12
+ private bashEnv;
13
+ private cmdLine;
14
+ private env?;
15
+ private explicitCwd;
16
+ private signal?;
17
+ private timeoutMs?;
18
+ private abortController;
19
+ private timeoutId;
20
+ private externalAbortListener;
21
+ private resultPromise;
22
+ constructor(bashEnv: Bash, cmdLine: string, cwd: string, env?: Record<string, string>, explicitCwd?: boolean, signal?: AbortSignal, timeoutMs?: number);
23
+ private setupCancellation;
24
+ private cleanupCancellation;
25
+ private execute;
26
+ logs(): AsyncGenerator<OutputMessage, void, unknown>;
27
+ wait(): Promise<CommandFinished>;
28
+ output(): Promise<string>;
29
+ stdout(): Promise<string>;
30
+ stderr(): Promise<string>;
31
+ kill(): Promise<void>;
32
+ }
33
+ export interface CommandFinished extends Command {
34
+ exitCode: number;
35
+ }
@@ -0,0 +1,90 @@
1
+ import type { Writable } from "node:stream";
2
+ import { Bash } from "../Bash.js";
3
+ import type { IFileSystem } from "../fs/interface.js";
4
+ import type { NetworkConfig } from "../network/index.js";
5
+ import type { DefenseInDepthConfig } from "../security/types.js";
6
+ import type { CommandFinished } from "./Command.js";
7
+ import { Command } from "./Command.js";
8
+ export interface SandboxOptions {
9
+ cwd?: string;
10
+ env?: Record<string, string>;
11
+ timeoutMs?: number;
12
+ /**
13
+ * Custom filesystem implementation.
14
+ * Mutually exclusive with `overlayRoot`.
15
+ */
16
+ fs?: IFileSystem;
17
+ /**
18
+ * Path to a directory to use as the root of an OverlayFs.
19
+ * Reads come from this directory, writes stay in memory.
20
+ * Mutually exclusive with `fs`.
21
+ */
22
+ overlayRoot?: string;
23
+ maxCallDepth?: number;
24
+ maxCommandCount?: number;
25
+ maxLoopIterations?: number;
26
+ /**
27
+ * Network configuration for commands like curl.
28
+ * Network access is disabled by default - you must explicitly configure allowed URLs.
29
+ */
30
+ network?: NetworkConfig;
31
+ /**
32
+ * Defense-in-depth configuration. Defaults to true (enabled).
33
+ * Monkey-patches dangerous JavaScript globals during bash execution.
34
+ */
35
+ defenseInDepth?: DefenseInDepthConfig | boolean;
36
+ }
37
+ export interface RunCommandParams {
38
+ cmd: string;
39
+ args?: string[];
40
+ cwd?: string;
41
+ env?: Record<string, string>;
42
+ /** Run the command with sudo. No-op in just-bash (already runs as root). */
43
+ sudo?: boolean;
44
+ /** Return immediately with a live Command object instead of waiting for completion. */
45
+ detached?: boolean;
46
+ /** Stream standard output to a writable. Written after command completes. */
47
+ stdout?: Writable;
48
+ /** Stream standard error to a writable. Written after command completes. */
49
+ stderr?: Writable;
50
+ signal?: AbortSignal;
51
+ }
52
+ export interface WriteFilesInput {
53
+ [path: string]: string | {
54
+ content: string;
55
+ encoding?: "utf-8" | "base64";
56
+ };
57
+ }
58
+ export declare class Sandbox {
59
+ private bashEnv;
60
+ private timeoutMs?;
61
+ private constructor();
62
+ static create(opts?: SandboxOptions): Promise<Sandbox>;
63
+ runCommand(params: RunCommandParams & {
64
+ detached: true;
65
+ }): Promise<Command>;
66
+ runCommand(params: RunCommandParams): Promise<CommandFinished>;
67
+ runCommand(command: string, args: string[], opts?: {
68
+ signal?: AbortSignal;
69
+ }): Promise<CommandFinished>;
70
+ runCommand(command: string, opts?: {
71
+ cwd?: string;
72
+ env?: Record<string, string>;
73
+ }): Promise<CommandFinished>;
74
+ writeFiles(files: WriteFilesInput): Promise<void>;
75
+ readFile(path: string, encoding?: "utf-8" | "base64"): Promise<string>;
76
+ mkDir(path: string, opts?: {
77
+ recursive?: boolean;
78
+ }): Promise<void>;
79
+ stop(): Promise<void>;
80
+ extendTimeout(_ms: number): Promise<void>;
81
+ get domain(): string | undefined;
82
+ /**
83
+ * Bash-specific: Get the underlying Bash instance for advanced operations.
84
+ * Not available in Vercel Sandbox API.
85
+ */
86
+ get bashEnvInstance(): Bash;
87
+ }
88
+ export { Command };
89
+ export type { CommandFinished };
90
+ export type { OutputMessage } from "./Command.js";
@@ -0,0 +1,2 @@
1
+ export type { CommandFinished, OutputMessage, RunCommandParams, SandboxOptions, WriteFilesInput, } from "./Sandbox.js";
2
+ export { Command, Sandbox, } from "./Sandbox.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shell Metadata
3
+ *
4
+ * Shared source of truth for shell version and process information.
5
+ * Used by both variable expansion ($BASH_VERSION, $PPID, etc.)
6
+ * and /proc filesystem initialization.
7
+ */
8
+ /**
9
+ * Simulated bash version string
10
+ */
11
+ export declare const BASH_VERSION = "5.1.0(1)-release";
12
+ /**
13
+ * Simulated kernel version for /proc/version
14
+ */
15
+ export declare const KERNEL_VERSION = "Linux version 5.15.0-generic (just-bash) #1 SMP PREEMPT";
16
+ /**
17
+ * Format /proc/self/status content using virtual process info.
18
+ * Never exposes real host process information.
19
+ */
20
+ export declare function formatProcStatus(info: {
21
+ pid: number;
22
+ ppid: number;
23
+ uid: number;
24
+ gid: number;
25
+ }): string;
@@ -0,0 +1,4 @@
1
+ export declare const _setTimeout: typeof globalThis.setTimeout;
2
+ export declare const _clearTimeout: typeof globalThis.clearTimeout;
3
+ export declare const _setInterval: typeof globalThis.setInterval;
4
+ export declare const _clearInterval: typeof globalThis.clearInterval;
@@ -0,0 +1,248 @@
1
+ import type { ByteString } from "./encoding.js";
2
+ import type { IFileSystem } from "./fs/interface.js";
3
+ import type { ExecutionLimits } from "./limits.js";
4
+ import type { SecureFetch } from "./network/index.js";
5
+ /**
6
+ * Lightweight interface for feature coverage tracking during fuzzing.
7
+ * Lives here to avoid circular dependencies between fuzzing → core modules.
8
+ */
9
+ export interface FeatureCoverageWriter {
10
+ hit(feature: string): void;
11
+ }
12
+ export interface ExecResult {
13
+ stdout: string;
14
+ stderr: string;
15
+ exitCode: number;
16
+ /** The final environment variables after execution (only set by BashEnv.exec) */
17
+ env?: Record<string, string>;
18
+ /**
19
+ * Explicit metadata for what shape `stdout` is in. The pipeline + redirect
20
+ * layers consult this instead of guessing from string contents:
21
+ *
22
+ * - `"text"`: `stdout` is JS Unicode text. The pipeline UTF-8 encodes it
23
+ * before handing it to the next command's stdin; redirects write it
24
+ * as UTF-8.
25
+ * - `"bytes"`: `stdout` is a latin1-shaped byte buffer (each char = one
26
+ * byte). The pipeline forwards the bytes verbatim; redirects write
27
+ * them as binary.
28
+ *
29
+ * Producers should set this via `textOutput()` / `bytesOutput()` from
30
+ * `encoding.ts` rather than poking the raw flag. Absent values fall back
31
+ * to the legacy `stdoutEncoding` heuristic for back-compat with older
32
+ * commands that haven't been migrated yet.
33
+ */
34
+ stdoutKind?: "text" | "bytes";
35
+ /**
36
+ * Legacy alias for `stdoutKind: "bytes"`. Older commands set this to
37
+ * `"binary"` to mark binary output. New code should prefer `stdoutKind`.
38
+ */
39
+ stdoutEncoding?: "binary";
40
+ }
41
+ /** Result from BashEnv.exec() - always includes env */
42
+ export interface BashExecResult extends ExecResult {
43
+ env: Record<string, string>;
44
+ metadata?: Record<string, unknown>;
45
+ }
46
+ /** Options for exec calls within commands (internal API) */
47
+ export interface CommandExecOptions {
48
+ /** Environment variables to merge into the exec state */
49
+ env?: Record<string, string>;
50
+ /**
51
+ * Replace the execution environment instead of merging with parent env.
52
+ * Useful for implementing `env -i` semantics safely without shell prefixes.
53
+ */
54
+ replaceEnv?: boolean;
55
+ /**
56
+ * Working directory for the exec.
57
+ * Required to prevent bugs where subcommands run in the wrong directory.
58
+ * Always pass `ctx.cwd` from the calling command's context.
59
+ */
60
+ cwd: string;
61
+ /**
62
+ * Standard input to pass to the subcommand.
63
+ * Optional - if not provided, stdin will be empty.
64
+ */
65
+ stdin?: string;
66
+ /**
67
+ * Shape of {@link stdin}:
68
+ * - `"text"` (default): JS Unicode text. UTF-8 encoded into bytes
69
+ * before reaching the subcommand, so byte consumers (`wc -c`,
70
+ * `base64`, `md5sum`) inside the script see real UTF-8 bytes.
71
+ * - `"bytes"`: a latin1-shaped byte buffer (each char = one byte,
72
+ * e.g. from `Buffer.from(...).toString("latin1")`). Forwarded
73
+ * verbatim — useful for piping raw binary into commands like
74
+ * `gzip -d`.
75
+ */
76
+ stdinKind?: "text" | "bytes";
77
+ /**
78
+ * Abort signal for cooperative cancellation.
79
+ * When aborted, the interpreter stops executing at the next statement boundary.
80
+ * Used by `timeout` to ensure timed-out commands don't continue running.
81
+ */
82
+ signal?: AbortSignal;
83
+ /**
84
+ * Additional argv entries appended to the first executed command.
85
+ * Values bypass shell parsing entirely — no escaping, splitting, or globbing.
86
+ * Like child_process.spawnSync(cmd, args).
87
+ */
88
+ args?: string[];
89
+ }
90
+ /**
91
+ * Context provided to commands during execution.
92
+ *
93
+ * ## Field Availability
94
+ *
95
+ * **Always available (core fields):**
96
+ * - `fs`, `cwd`, `env`, `stdin`
97
+ *
98
+ * **Available when running via BashEnv interpreter:**
99
+ * - `exec` - For commands like `xargs`, `bash -c` that need to run subcommands
100
+ * - `getRegisteredCommands` - For the `help` command to list available commands
101
+ *
102
+ * **Conditionally available based on configuration:**
103
+ * - `fetch` - Only when `network` option is configured in BashEnv
104
+ * - `sleep` - Only when a custom sleep function is provided (e.g., for testing)
105
+ */
106
+ /**
107
+ * Performance trace event for profiling command execution
108
+ */
109
+ export interface TraceEvent {
110
+ /** Event category (e.g., "find", "grep") */
111
+ category: string;
112
+ /** Event name (e.g., "readdir", "stat", "eval") */
113
+ name: string;
114
+ /** Duration in milliseconds */
115
+ durationMs: number;
116
+ /** Optional details (e.g., path, count) */
117
+ details?: Record<string, unknown>;
118
+ }
119
+ /**
120
+ * Trace callback function for receiving performance events
121
+ */
122
+ export type TraceCallback = (event: TraceEvent) => void;
123
+ export interface CommandContext {
124
+ /** Virtual filesystem interface for file operations */
125
+ fs: IFileSystem;
126
+ /** Current working directory */
127
+ cwd: string;
128
+ /** Environment variables - uses Map to prevent prototype pollution */
129
+ env: Map<string, string>;
130
+ /**
131
+ * Exported environment variables only.
132
+ * Used by commands like printenv and env that should only show exported vars.
133
+ * In bash, only exported variables are passed to child processes.
134
+ */
135
+ exportedEnv?: Record<string, string>;
136
+ /**
137
+ * Standard input as a byte buffer. Opaque on purpose — see `encoding.ts`.
138
+ *
139
+ * Pipelines carry bytes (a previous command's stdout becomes this stdin).
140
+ * Choose a conversion at the use site:
141
+ * - `latin1FromBytes(ctx.stdin)` to forward bytes unchanged (cat, head,
142
+ * tee, base64 -d, gzip, ...).
143
+ * - `decodeBytesToUtf8(ctx.stdin)` to interpret as UTF-8 text (jq, sed,
144
+ * grep, awk, parsers, code execution, char-position math, ...).
145
+ * Mixing the two — calling string methods on a latin1 byte buffer that
146
+ * actually holds UTF-8 — is the bug class this type prevents.
147
+ */
148
+ stdin: ByteString;
149
+ /**
150
+ * Execution limits configuration.
151
+ * Available when running commands via BashEnv interpreter.
152
+ */
153
+ limits?: Required<ExecutionLimits>;
154
+ /**
155
+ * Performance trace callback for profiling.
156
+ * If provided, commands emit timing events for analysis.
157
+ */
158
+ trace?: TraceCallback;
159
+ /**
160
+ * Execute a subcommand (e.g., for `xargs`, `bash -c`).
161
+ * Available when running commands via BashEnv interpreter.
162
+ *
163
+ * @param command - The command string to execute
164
+ * @param options - Required options including `cwd` to prevent directory bugs
165
+ */
166
+ exec?: (command: string, options: CommandExecOptions) => Promise<ExecResult>;
167
+ /**
168
+ * Secure fetch function for network requests (e.g., for `curl`).
169
+ * Only available when `network` option is configured in BashEnv.
170
+ */
171
+ fetch?: SecureFetch;
172
+ /**
173
+ * Returns names of all registered commands.
174
+ * Available when running commands via BashEnv interpreter.
175
+ * Used by the `help` command.
176
+ */
177
+ getRegisteredCommands?: () => string[];
178
+ /**
179
+ * Custom sleep implementation.
180
+ * If provided, used instead of real setTimeout.
181
+ * Useful for testing with mock clocks.
182
+ */
183
+ sleep?: (ms: number) => Promise<void>;
184
+ /**
185
+ * File descriptors map for here-docs and process substitution.
186
+ * Maps FD numbers to their content (e.g., 3 -> "content from 3<<EOF").
187
+ * Note: FD 0 content is in `stdin`, but may also appear here for consistency.
188
+ */
189
+ fileDescriptors?: Map<number, string>;
190
+ /**
191
+ * Whether xpg_echo shopt is enabled.
192
+ * When true, echo interprets backslash escapes by default (like echo -e).
193
+ */
194
+ xpgEcho?: boolean;
195
+ /**
196
+ * Current command substitution nesting depth.
197
+ * Used to prevent stack exhaustion from deeply nested $(...).
198
+ */
199
+ substitutionDepth?: number;
200
+ /**
201
+ * Feature coverage writer for fuzzing instrumentation.
202
+ * When provided, commands emit coverage hits for analysis.
203
+ */
204
+ coverage?: FeatureCoverageWriter;
205
+ /**
206
+ * Abort signal from the current execution context.
207
+ * Commands that spawn sub-executions (bash -c, xargs, etc.)
208
+ * should forward this signal so cooperative cancellation propagates.
209
+ */
210
+ signal?: AbortSignal;
211
+ /**
212
+ * When true, command execution must remain inside DefenseInDepthBox
213
+ * async context. Commands with async boundaries should assert this
214
+ * before and after awaited operations.
215
+ */
216
+ requireDefenseContext?: boolean;
217
+ /**
218
+ * Bootstrap JavaScript code for js-exec.
219
+ * Threaded through the context chain instead of shell env to prevent
220
+ * user access/injection via environment variables.
221
+ */
222
+ jsBootstrapCode?: string;
223
+ /**
224
+ * Tool invoker hook. When present, js-exec sets up a `tools` proxy that
225
+ * routes calls through this callback. Receives `(path, argsJson)` and
226
+ * returns a JSON result string.
227
+ */
228
+ invokeTool?: (path: string, argsJson: string) => Promise<string>;
229
+ }
230
+ export interface Command {
231
+ name: string;
232
+ /**
233
+ * When true, execute this command inside DefenseInDepthBox.runTrustedAsync().
234
+ * Use for trusted host-extension commands that need direct Node.js globals.
235
+ * Built-in commands should generally remain untrusted and use explicit
236
+ * trusted wrappers only at narrow infrastructure boundaries.
237
+ */
238
+ trusted?: boolean;
239
+ /**
240
+ * Whether this registered command consumes stdin when group/pipeline stdin is
241
+ * supplied implicitly. Commands like echo do not consume it; cat-like or
242
+ * host-extension commands with stdin-backed arguments usually do.
243
+ */
244
+ consumesStdin?: boolean;
245
+ execute(args: string[], ctx: CommandContext): Promise<ExecResult>;
246
+ }
247
+ export type CommandRegistry = Map<string, Command>;
248
+ export type { IFileSystem };
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Lightweight argument parser for command implementations.
3
+ *
4
+ * Handles common patterns:
5
+ * - Boolean flags: -n, --number
6
+ * - Combined short flags: -rn (same as -r -n)
7
+ * - Value options: -k VALUE, -kVALUE, --key=VALUE, --key VALUE
8
+ * - Positional arguments
9
+ * - Unknown option detection
10
+ */
11
+ import type { ExecResult } from "../types.js";
12
+ export type ArgType = "boolean" | "string" | "number";
13
+ export interface ArgDef {
14
+ /** Short form without dash, e.g., "n" for -n */
15
+ short?: string;
16
+ /** Long form without dashes, e.g., "number" for --number */
17
+ long?: string;
18
+ /** Type of the argument */
19
+ type: ArgType;
20
+ /** Default value */
21
+ default?: boolean | string | number;
22
+ }
23
+ export interface ParsedArgs<T extends Record<string, ArgDef>> {
24
+ /** Parsed flag/option values */
25
+ flags: {
26
+ [K in keyof T]: T[K]["type"] extends "boolean" ? boolean : T[K]["default"] extends number | string ? T[K]["type"] extends "number" ? number : string : T[K]["type"] extends "number" ? number | undefined : string | undefined;
27
+ };
28
+ /** Positional arguments (non-flag arguments) */
29
+ positional: string[];
30
+ }
31
+ export type ParseResult<T extends Record<string, ArgDef>> = {
32
+ ok: true;
33
+ result: ParsedArgs<T>;
34
+ } | {
35
+ ok: false;
36
+ error: ExecResult;
37
+ };
38
+ /**
39
+ * Parse command arguments according to the provided definitions.
40
+ *
41
+ * @param cmdName - Command name for error messages
42
+ * @param args - Arguments to parse
43
+ * @param defs - Argument definitions
44
+ * @returns Parsed arguments or error result
45
+ *
46
+ * @example
47
+ * const defs = {
48
+ * reverse: { short: "r", long: "reverse", type: "boolean" as const },
49
+ * count: { short: "n", long: "lines", type: "number" as const, default: 10 },
50
+ * };
51
+ * const result = parseArgs("head", args, defs);
52
+ * if (!result.ok) return result.error;
53
+ * const { flags, positional } = result.result;
54
+ */
55
+ export declare function parseArgs<T extends Record<string, ArgDef>>(cmdName: string, args: string[], defs: T): ParseResult<T>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared constants for the bash environment.
3
+ */
4
+ /**
5
+ * Default batch size for parallel I/O operations.
6
+ *
7
+ * This value is used across multiple commands (find, ls, tree, du, etc.) to
8
+ * control how many filesystem operations are performed concurrently. A larger
9
+ * value provides more parallelism but uses more memory; a smaller value is
10
+ * more conservative.
11
+ *
12
+ * 100 is a good default that provides significant parallelism without
13
+ * overwhelming the system or using excessive memory.
14
+ */
15
+ export declare const DEFAULT_BATCH_SIZE = 100;