just-bash-nx 2.14.4

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 (894) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +201 -0
  3. package/README.md +573 -0
  4. package/dist/AGENTS.md +325 -0
  5. package/dist/Bash.d.ts +229 -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-3GODYSFD.js +2 -0
  9. package/dist/bin/chunks/awk2-RSUCURL4.js +2 -0
  10. package/dist/bin/chunks/base64-43M2R3GA.js +2 -0
  11. package/dist/bin/chunks/basename-KBUKWB2E.js +2 -0
  12. package/dist/bin/chunks/bash-6ZHZ6BX7.js +2 -0
  13. package/dist/bin/chunks/cat-XZIJZXKP.js +2 -0
  14. package/dist/bin/chunks/chmod-N5CQATDW.js +2 -0
  15. package/dist/bin/chunks/chunk-22NDZXS5.js +33 -0
  16. package/dist/bin/chunks/chunk-26NO42TF.js +14 -0
  17. package/dist/bin/chunks/chunk-2W2SCVT6.js +140 -0
  18. package/dist/bin/chunks/chunk-3MBAUIBB.js +7 -0
  19. package/dist/bin/chunks/chunk-3Y32LPNT.js +2 -0
  20. package/dist/bin/chunks/chunk-4CFAYBLV.js +21 -0
  21. package/dist/bin/chunks/chunk-4OALHZXB.js +2 -0
  22. package/dist/bin/chunks/chunk-4PRVMER6.js +2 -0
  23. package/dist/bin/chunks/chunk-4VDEBYW7.js +2 -0
  24. package/dist/bin/chunks/chunk-54G6AE72.js +32 -0
  25. package/dist/bin/chunks/chunk-5G2VOPPJ.js +7 -0
  26. package/dist/bin/chunks/chunk-5WFYIUU2.js +3 -0
  27. package/dist/bin/chunks/chunk-6KZRLMG3.js +8 -0
  28. package/dist/bin/chunks/chunk-7ADG3DNO.js +8 -0
  29. package/dist/bin/chunks/chunk-7BORMNPQ.js +2 -0
  30. package/dist/bin/chunks/chunk-7G3MC56B.js +7 -0
  31. package/dist/bin/chunks/chunk-AAW7UMPO.js +9 -0
  32. package/dist/bin/chunks/chunk-AXWFPG37.js +10 -0
  33. package/dist/bin/chunks/chunk-AZ3RUDR2.js +9 -0
  34. package/dist/bin/chunks/chunk-BGGF3ELU.js +5 -0
  35. package/dist/bin/chunks/chunk-BYDV4VEF.js +3 -0
  36. package/dist/bin/chunks/chunk-CGE2EHYP.js +5 -0
  37. package/dist/bin/chunks/chunk-CM4532DS.js +36 -0
  38. package/dist/bin/chunks/chunk-CQG2HEAL.js +5 -0
  39. package/dist/bin/chunks/chunk-D5WP4CKS.js +3 -0
  40. package/dist/bin/chunks/chunk-DOXYBGNA.js +12 -0
  41. package/dist/bin/chunks/chunk-E5BDLLK6.js +15 -0
  42. package/dist/bin/chunks/chunk-EJQKHROT.js +14 -0
  43. package/dist/bin/chunks/chunk-EONWONZV.js +2 -0
  44. package/dist/bin/chunks/chunk-EPPBDXOG.js +8 -0
  45. package/dist/bin/chunks/chunk-EUXCM6C4.js +12 -0
  46. package/dist/bin/chunks/chunk-EWDHVLQL.js +21 -0
  47. package/dist/bin/chunks/chunk-F3LGZXLQ.js +9 -0
  48. package/dist/bin/chunks/chunk-FA2CHD73.js +16 -0
  49. package/dist/bin/chunks/chunk-FIHFXGT6.js +287 -0
  50. package/dist/bin/chunks/chunk-FLPVVSN5.js +5 -0
  51. package/dist/bin/chunks/chunk-FSZWFMB4.js +16 -0
  52. package/dist/bin/chunks/chunk-GO6FXSC4.js +6 -0
  53. package/dist/bin/chunks/chunk-GOJZHH3L.js +6 -0
  54. package/dist/bin/chunks/chunk-GTNBSMZR.js +23 -0
  55. package/dist/bin/chunks/chunk-IDGH4PGU.js +3 -0
  56. package/dist/bin/chunks/chunk-IO2FYBEM.js +6 -0
  57. package/dist/bin/chunks/chunk-ITA43A73.js +7 -0
  58. package/dist/bin/chunks/chunk-JBABAK44.js +4 -0
  59. package/dist/bin/chunks/chunk-JDNI5HBX.js +33 -0
  60. package/dist/bin/chunks/chunk-JLX6YWGA.js +3 -0
  61. package/dist/bin/chunks/chunk-JQBC3FXE.js +8 -0
  62. package/dist/bin/chunks/chunk-JTF74J6E.js +2 -0
  63. package/dist/bin/chunks/chunk-KCMUAACL.js +19 -0
  64. package/dist/bin/chunks/chunk-KGOUQS5A.js +2 -0
  65. package/dist/bin/chunks/chunk-L6XUBS6H.js +84 -0
  66. package/dist/bin/chunks/chunk-LCDPWJBA.js +15 -0
  67. package/dist/bin/chunks/chunk-LGJM5YFT.js +17 -0
  68. package/dist/bin/chunks/chunk-LIYVQA3X.js +2 -0
  69. package/dist/bin/chunks/chunk-LJKIWB5F.js +4 -0
  70. package/dist/bin/chunks/chunk-LMK6G2HH.js +8 -0
  71. package/dist/bin/chunks/chunk-LOJMXC4F.js +5 -0
  72. package/dist/bin/chunks/chunk-MAVV76T4.js +2 -0
  73. package/dist/bin/chunks/chunk-MO4RPBN2.js +2 -0
  74. package/dist/bin/chunks/chunk-MRP4ZCD7.js +6 -0
  75. package/dist/bin/chunks/chunk-N43DJTSI.js +2 -0
  76. package/dist/bin/chunks/chunk-NAX7MTAR.js +21 -0
  77. package/dist/bin/chunks/chunk-NSUMEERA.js +12 -0
  78. package/dist/bin/chunks/chunk-NTW6IA45.js +2 -0
  79. package/dist/bin/chunks/chunk-OBH7XN5N.js +1 -0
  80. package/dist/bin/chunks/chunk-OBI37ZY4.js +9 -0
  81. package/dist/bin/chunks/chunk-OOJCYVYF.js +2 -0
  82. package/dist/bin/chunks/chunk-ORUYSLP4.js +16 -0
  83. package/dist/bin/chunks/chunk-OXHVTSNH.js +74 -0
  84. package/dist/bin/chunks/chunk-PNI5NMXP.js +100 -0
  85. package/dist/bin/chunks/chunk-PPBQJBC2.js +5 -0
  86. package/dist/bin/chunks/chunk-PQNTKMH3.js +6 -0
  87. package/dist/bin/chunks/chunk-PS4LOXE5.js +8 -0
  88. package/dist/bin/chunks/chunk-PXVBSPBE.js +2 -0
  89. package/dist/bin/chunks/chunk-RA3TG4UK.js +9 -0
  90. package/dist/bin/chunks/chunk-RBQGQWGV.js +10 -0
  91. package/dist/bin/chunks/chunk-RJSAGJQJ.js +11 -0
  92. package/dist/bin/chunks/chunk-RLNOQILG.js +2 -0
  93. package/dist/bin/chunks/chunk-ROJPSS6N.js +3 -0
  94. package/dist/bin/chunks/chunk-RT7TRQVZ.js +3 -0
  95. package/dist/bin/chunks/chunk-S3QAKT3R.js +11 -0
  96. package/dist/bin/chunks/chunk-S7OHMN3F.js +6 -0
  97. package/dist/bin/chunks/chunk-SGA7Y45Z.js +17 -0
  98. package/dist/bin/chunks/chunk-SXRVLCZ4.js +2 -0
  99. package/dist/bin/chunks/chunk-TEFXEYX3.js +3 -0
  100. package/dist/bin/chunks/chunk-THALLNXT.js +7 -0
  101. package/dist/bin/chunks/chunk-TTNNO45C.js +17 -0
  102. package/dist/bin/chunks/chunk-UFJFAFSS.js +28 -0
  103. package/dist/bin/chunks/chunk-V7ZOPVQS.js +2 -0
  104. package/dist/bin/chunks/chunk-VNER2XXL.js +7 -0
  105. package/dist/bin/chunks/chunk-WLBA7L7U.js +23 -0
  106. package/dist/bin/chunks/chunk-WWZVR5NN.js +6 -0
  107. package/dist/bin/chunks/chunk-WXMBDX4P.js +14 -0
  108. package/dist/bin/chunks/chunk-XXCTETRW.js +11 -0
  109. package/dist/bin/chunks/chunk-XY5HGZW5.js +8 -0
  110. package/dist/bin/chunks/chunk-YEKSVVRC.js +11 -0
  111. package/dist/bin/chunks/chunk-YLE2OYY6.js +2 -0
  112. package/dist/bin/chunks/chunk-YMMJLYIX.js +2 -0
  113. package/dist/bin/chunks/chunk-YTIURC67.js +2 -0
  114. package/dist/bin/chunks/chunk-YU6OGPZR.js +5 -0
  115. package/dist/bin/chunks/chunk-YWZOGBFE.js +9 -0
  116. package/dist/bin/chunks/chunk-ZA4HUKJ3.js +13 -0
  117. package/dist/bin/chunks/chunk-ZKC5HQYO.js +14 -0
  118. package/dist/bin/chunks/chunk-ZSVBYEY4.js +6 -0
  119. package/dist/bin/chunks/chunk-ZUDPEMHG.js +63 -0
  120. package/dist/bin/chunks/clear-KRGKPFOI.js +2 -0
  121. package/dist/bin/chunks/column-XGV32UPN.js +2 -0
  122. package/dist/bin/chunks/comm-R3F3Z5DX.js +2 -0
  123. package/dist/bin/chunks/cp-XH2ZB7WT.js +2 -0
  124. package/dist/bin/chunks/curl-2DCNBIKJ.js +26 -0
  125. package/dist/bin/chunks/cut-5EY2XPXX.js +2 -0
  126. package/dist/bin/chunks/date-WUPBL2TL.js +2 -0
  127. package/dist/bin/chunks/diff-5NUI5BHG.js +2 -0
  128. package/dist/bin/chunks/dirname-5FAOMLBL.js +2 -0
  129. package/dist/bin/chunks/du-LDAPXSGF.js +2 -0
  130. package/dist/bin/chunks/echo-2MUAOGUE.js +2 -0
  131. package/dist/bin/chunks/env-NTPN5QYM.js +2 -0
  132. package/dist/bin/chunks/expand-26XPP5KB.js +2 -0
  133. package/dist/bin/chunks/expansion-QUT3FT7V.js +2 -0
  134. package/dist/bin/chunks/expr-G4EF4POQ.js +2 -0
  135. package/dist/bin/chunks/file-MMSHRWCJ.js +2 -0
  136. package/dist/bin/chunks/find-7CVMEZBO.js +2 -0
  137. package/dist/bin/chunks/flag-coverage-UJISFT4M.js +2 -0
  138. package/dist/bin/chunks/fold-XSVNTAWH.js +2 -0
  139. package/dist/bin/chunks/grep-7BJ7HFBM.js +2 -0
  140. package/dist/bin/chunks/gzip-LHOO65AN.js +2 -0
  141. package/dist/bin/chunks/head-YMNRW3F3.js +2 -0
  142. package/dist/bin/chunks/help-DVG4AAGE.js +2 -0
  143. package/dist/bin/chunks/history-UUKG55YW.js +2 -0
  144. package/dist/bin/chunks/hostname-WY6RKE32.js +2 -0
  145. package/dist/bin/chunks/html-to-markdown-V6PK6S5U.js +2 -0
  146. package/dist/bin/chunks/join-Y4Q5WVVE.js +2 -0
  147. package/dist/bin/chunks/jq-4JWOFG7X.js +2 -0
  148. package/dist/bin/chunks/js-exec-RWEELTC2.js +97 -0
  149. package/dist/bin/chunks/js-exec-worker.js +4380 -0
  150. package/dist/bin/chunks/ln-EGC4HRXZ.js +2 -0
  151. package/dist/bin/chunks/ls-WONXDVOX.js +2 -0
  152. package/dist/bin/chunks/md5sum-NCLXV2S3.js +2 -0
  153. package/dist/bin/chunks/mkdir-Z47OISSR.js +2 -0
  154. package/dist/bin/chunks/mv-OY7X62QC.js +2 -0
  155. package/dist/bin/chunks/nl-XH3L75DR.js +2 -0
  156. package/dist/bin/chunks/od-52FBC34W.js +2 -0
  157. package/dist/bin/chunks/paste-3UVLMQ2K.js +2 -0
  158. package/dist/bin/chunks/printf-NA7DYZBO.js +2 -0
  159. package/dist/bin/chunks/pwd-6VBAPL3Y.js +2 -0
  160. package/dist/bin/chunks/python3-JUJKPBFB.js +12 -0
  161. package/dist/bin/chunks/readlink-BD5VFOC5.js +2 -0
  162. package/dist/bin/chunks/rev-UHEPS2UL.js +2 -0
  163. package/dist/bin/chunks/rg-DK6FRF6Q.js +2 -0
  164. package/dist/bin/chunks/rm-L3NZOLLG.js +2 -0
  165. package/dist/bin/chunks/rmdir-5KLM4EA6.js +2 -0
  166. package/dist/bin/chunks/sed-WWXBUNG3.js +2 -0
  167. package/dist/bin/chunks/seq-V7KBLSQ7.js +2 -0
  168. package/dist/bin/chunks/sha1sum-BHNJ5ALF.js +2 -0
  169. package/dist/bin/chunks/sha256sum-HJJ3NJ5L.js +2 -0
  170. package/dist/bin/chunks/sleep-ND6FZRZ4.js +2 -0
  171. package/dist/bin/chunks/sort-7GENYU2I.js +2 -0
  172. package/dist/bin/chunks/split-YWV64TJH.js +2 -0
  173. package/dist/bin/chunks/sqlite3-CVNFMP3Z.js +2 -0
  174. package/dist/bin/chunks/stat-XS2LXYS2.js +2 -0
  175. package/dist/bin/chunks/strings-XXKZCWY5.js +2 -0
  176. package/dist/bin/chunks/tac-T42SKDDI.js +2 -0
  177. package/dist/bin/chunks/tail-V537TDFR.js +2 -0
  178. package/dist/bin/chunks/tar-GTGFEWDS.js +2 -0
  179. package/dist/bin/chunks/tee-HK2SYCAR.js +2 -0
  180. package/dist/bin/chunks/time-5R4QWCYF.js +2 -0
  181. package/dist/bin/chunks/timeout-Z24MNWOP.js +2 -0
  182. package/dist/bin/chunks/touch-DWKSZGOQ.js +2 -0
  183. package/dist/bin/chunks/tr-4FPGAEVB.js +2 -0
  184. package/dist/bin/chunks/tree-HEKABARE.js +2 -0
  185. package/dist/bin/chunks/true-DP5UZP52.js +2 -0
  186. package/dist/bin/chunks/unexpand-OYZ7KOYR.js +2 -0
  187. package/dist/bin/chunks/uniq-TMSAIZM3.js +2 -0
  188. package/dist/bin/chunks/wc-ZIV3TFVG.js +2 -0
  189. package/dist/bin/chunks/which-5PO4LAOG.js +2 -0
  190. package/dist/bin/chunks/whoami-E7PN2UWC.js +2 -0
  191. package/dist/bin/chunks/worker.js +3136 -0
  192. package/dist/bin/chunks/xan-FKXPSPE5.js +2 -0
  193. package/dist/bin/chunks/xan-view-6J5MMMQB.js +2 -0
  194. package/dist/bin/chunks/xargs-SCYIFXOW.js +2 -0
  195. package/dist/bin/chunks/yq-RGXFWYJN.js +2 -0
  196. package/dist/bin/just-bash.js +754 -0
  197. package/dist/bin/shell/chunks/alias-3GODYSFD.js +2 -0
  198. package/dist/bin/shell/chunks/awk2-RSUCURL4.js +2 -0
  199. package/dist/bin/shell/chunks/base64-43M2R3GA.js +2 -0
  200. package/dist/bin/shell/chunks/basename-KBUKWB2E.js +2 -0
  201. package/dist/bin/shell/chunks/bash-6ZHZ6BX7.js +2 -0
  202. package/dist/bin/shell/chunks/cat-XZIJZXKP.js +2 -0
  203. package/dist/bin/shell/chunks/chmod-N5CQATDW.js +2 -0
  204. package/dist/bin/shell/chunks/chunk-22NDZXS5.js +33 -0
  205. package/dist/bin/shell/chunks/chunk-26NO42TF.js +14 -0
  206. package/dist/bin/shell/chunks/chunk-2W2SCVT6.js +140 -0
  207. package/dist/bin/shell/chunks/chunk-3MBAUIBB.js +7 -0
  208. package/dist/bin/shell/chunks/chunk-3Y32LPNT.js +2 -0
  209. package/dist/bin/shell/chunks/chunk-4CFAYBLV.js +21 -0
  210. package/dist/bin/shell/chunks/chunk-4OALHZXB.js +2 -0
  211. package/dist/bin/shell/chunks/chunk-4PRVMER6.js +2 -0
  212. package/dist/bin/shell/chunks/chunk-4VDEBYW7.js +2 -0
  213. package/dist/bin/shell/chunks/chunk-54G6AE72.js +32 -0
  214. package/dist/bin/shell/chunks/chunk-5G2VOPPJ.js +7 -0
  215. package/dist/bin/shell/chunks/chunk-5WFYIUU2.js +3 -0
  216. package/dist/bin/shell/chunks/chunk-6KZRLMG3.js +8 -0
  217. package/dist/bin/shell/chunks/chunk-7ADG3DNO.js +8 -0
  218. package/dist/bin/shell/chunks/chunk-7BORMNPQ.js +2 -0
  219. package/dist/bin/shell/chunks/chunk-7G3MC56B.js +7 -0
  220. package/dist/bin/shell/chunks/chunk-AAW7UMPO.js +9 -0
  221. package/dist/bin/shell/chunks/chunk-AXWFPG37.js +10 -0
  222. package/dist/bin/shell/chunks/chunk-AZ3RUDR2.js +9 -0
  223. package/dist/bin/shell/chunks/chunk-BGGF3ELU.js +5 -0
  224. package/dist/bin/shell/chunks/chunk-BYDV4VEF.js +3 -0
  225. package/dist/bin/shell/chunks/chunk-CGE2EHYP.js +5 -0
  226. package/dist/bin/shell/chunks/chunk-CM4532DS.js +36 -0
  227. package/dist/bin/shell/chunks/chunk-CQG2HEAL.js +5 -0
  228. package/dist/bin/shell/chunks/chunk-D5WP4CKS.js +3 -0
  229. package/dist/bin/shell/chunks/chunk-DOXYBGNA.js +12 -0
  230. package/dist/bin/shell/chunks/chunk-E5BDLLK6.js +15 -0
  231. package/dist/bin/shell/chunks/chunk-EJQKHROT.js +14 -0
  232. package/dist/bin/shell/chunks/chunk-EONWONZV.js +2 -0
  233. package/dist/bin/shell/chunks/chunk-EPPBDXOG.js +8 -0
  234. package/dist/bin/shell/chunks/chunk-EUXCM6C4.js +12 -0
  235. package/dist/bin/shell/chunks/chunk-EWDHVLQL.js +21 -0
  236. package/dist/bin/shell/chunks/chunk-F3LGZXLQ.js +9 -0
  237. package/dist/bin/shell/chunks/chunk-FA2CHD73.js +16 -0
  238. package/dist/bin/shell/chunks/chunk-FIHFXGT6.js +287 -0
  239. package/dist/bin/shell/chunks/chunk-FLPVVSN5.js +5 -0
  240. package/dist/bin/shell/chunks/chunk-FSZWFMB4.js +16 -0
  241. package/dist/bin/shell/chunks/chunk-GO6FXSC4.js +6 -0
  242. package/dist/bin/shell/chunks/chunk-GOJZHH3L.js +6 -0
  243. package/dist/bin/shell/chunks/chunk-GTNBSMZR.js +23 -0
  244. package/dist/bin/shell/chunks/chunk-HC7WB764.js +2 -0
  245. package/dist/bin/shell/chunks/chunk-IDGH4PGU.js +3 -0
  246. package/dist/bin/shell/chunks/chunk-IO2FYBEM.js +6 -0
  247. package/dist/bin/shell/chunks/chunk-ITA43A73.js +7 -0
  248. package/dist/bin/shell/chunks/chunk-JBABAK44.js +4 -0
  249. package/dist/bin/shell/chunks/chunk-JDNI5HBX.js +33 -0
  250. package/dist/bin/shell/chunks/chunk-JLX6YWGA.js +3 -0
  251. package/dist/bin/shell/chunks/chunk-JQBC3FXE.js +8 -0
  252. package/dist/bin/shell/chunks/chunk-JTF74J6E.js +2 -0
  253. package/dist/bin/shell/chunks/chunk-KCMUAACL.js +19 -0
  254. package/dist/bin/shell/chunks/chunk-KGOUQS5A.js +2 -0
  255. package/dist/bin/shell/chunks/chunk-L6XUBS6H.js +84 -0
  256. package/dist/bin/shell/chunks/chunk-LCDPWJBA.js +15 -0
  257. package/dist/bin/shell/chunks/chunk-LGJM5YFT.js +17 -0
  258. package/dist/bin/shell/chunks/chunk-LIYVQA3X.js +2 -0
  259. package/dist/bin/shell/chunks/chunk-LJKIWB5F.js +4 -0
  260. package/dist/bin/shell/chunks/chunk-LMK6G2HH.js +8 -0
  261. package/dist/bin/shell/chunks/chunk-LOJMXC4F.js +5 -0
  262. package/dist/bin/shell/chunks/chunk-MAVV76T4.js +2 -0
  263. package/dist/bin/shell/chunks/chunk-MO4RPBN2.js +2 -0
  264. package/dist/bin/shell/chunks/chunk-MRP4ZCD7.js +6 -0
  265. package/dist/bin/shell/chunks/chunk-N43DJTSI.js +2 -0
  266. package/dist/bin/shell/chunks/chunk-NAX7MTAR.js +21 -0
  267. package/dist/bin/shell/chunks/chunk-NSUMEERA.js +12 -0
  268. package/dist/bin/shell/chunks/chunk-NTW6IA45.js +2 -0
  269. package/dist/bin/shell/chunks/chunk-OBH7XN5N.js +1 -0
  270. package/dist/bin/shell/chunks/chunk-OBI37ZY4.js +9 -0
  271. package/dist/bin/shell/chunks/chunk-OOJCYVYF.js +2 -0
  272. package/dist/bin/shell/chunks/chunk-ORUYSLP4.js +16 -0
  273. package/dist/bin/shell/chunks/chunk-OXHVTSNH.js +74 -0
  274. package/dist/bin/shell/chunks/chunk-PNI5NMXP.js +100 -0
  275. package/dist/bin/shell/chunks/chunk-PPBQJBC2.js +5 -0
  276. package/dist/bin/shell/chunks/chunk-PQNTKMH3.js +6 -0
  277. package/dist/bin/shell/chunks/chunk-PS4LOXE5.js +8 -0
  278. package/dist/bin/shell/chunks/chunk-RA3TG4UK.js +9 -0
  279. package/dist/bin/shell/chunks/chunk-RBQGQWGV.js +10 -0
  280. package/dist/bin/shell/chunks/chunk-RJSAGJQJ.js +11 -0
  281. package/dist/bin/shell/chunks/chunk-RLNOQILG.js +2 -0
  282. package/dist/bin/shell/chunks/chunk-ROJPSS6N.js +3 -0
  283. package/dist/bin/shell/chunks/chunk-RT7TRQVZ.js +3 -0
  284. package/dist/bin/shell/chunks/chunk-S3QAKT3R.js +11 -0
  285. package/dist/bin/shell/chunks/chunk-S7OHMN3F.js +6 -0
  286. package/dist/bin/shell/chunks/chunk-SGA7Y45Z.js +17 -0
  287. package/dist/bin/shell/chunks/chunk-SXRVLCZ4.js +2 -0
  288. package/dist/bin/shell/chunks/chunk-TEFXEYX3.js +3 -0
  289. package/dist/bin/shell/chunks/chunk-THALLNXT.js +7 -0
  290. package/dist/bin/shell/chunks/chunk-TTNNO45C.js +17 -0
  291. package/dist/bin/shell/chunks/chunk-UFJFAFSS.js +28 -0
  292. package/dist/bin/shell/chunks/chunk-V7ZOPVQS.js +2 -0
  293. package/dist/bin/shell/chunks/chunk-VNER2XXL.js +7 -0
  294. package/dist/bin/shell/chunks/chunk-WLBA7L7U.js +23 -0
  295. package/dist/bin/shell/chunks/chunk-WWZVR5NN.js +6 -0
  296. package/dist/bin/shell/chunks/chunk-WXMBDX4P.js +14 -0
  297. package/dist/bin/shell/chunks/chunk-XXCTETRW.js +11 -0
  298. package/dist/bin/shell/chunks/chunk-XY5HGZW5.js +8 -0
  299. package/dist/bin/shell/chunks/chunk-YEKSVVRC.js +11 -0
  300. package/dist/bin/shell/chunks/chunk-YLE2OYY6.js +2 -0
  301. package/dist/bin/shell/chunks/chunk-YMMJLYIX.js +2 -0
  302. package/dist/bin/shell/chunks/chunk-YTIURC67.js +2 -0
  303. package/dist/bin/shell/chunks/chunk-YU6OGPZR.js +5 -0
  304. package/dist/bin/shell/chunks/chunk-YWZOGBFE.js +9 -0
  305. package/dist/bin/shell/chunks/chunk-ZA4HUKJ3.js +13 -0
  306. package/dist/bin/shell/chunks/chunk-ZKC5HQYO.js +14 -0
  307. package/dist/bin/shell/chunks/chunk-ZSVBYEY4.js +6 -0
  308. package/dist/bin/shell/chunks/chunk-ZUDPEMHG.js +63 -0
  309. package/dist/bin/shell/chunks/clear-KRGKPFOI.js +2 -0
  310. package/dist/bin/shell/chunks/column-XGV32UPN.js +2 -0
  311. package/dist/bin/shell/chunks/comm-R3F3Z5DX.js +2 -0
  312. package/dist/bin/shell/chunks/cp-XH2ZB7WT.js +2 -0
  313. package/dist/bin/shell/chunks/curl-2DCNBIKJ.js +26 -0
  314. package/dist/bin/shell/chunks/cut-5EY2XPXX.js +2 -0
  315. package/dist/bin/shell/chunks/date-WUPBL2TL.js +2 -0
  316. package/dist/bin/shell/chunks/diff-5NUI5BHG.js +2 -0
  317. package/dist/bin/shell/chunks/dirname-5FAOMLBL.js +2 -0
  318. package/dist/bin/shell/chunks/du-LDAPXSGF.js +2 -0
  319. package/dist/bin/shell/chunks/echo-2MUAOGUE.js +2 -0
  320. package/dist/bin/shell/chunks/env-NTPN5QYM.js +2 -0
  321. package/dist/bin/shell/chunks/expand-26XPP5KB.js +2 -0
  322. package/dist/bin/shell/chunks/expansion-QUT3FT7V.js +2 -0
  323. package/dist/bin/shell/chunks/expr-G4EF4POQ.js +2 -0
  324. package/dist/bin/shell/chunks/file-MMSHRWCJ.js +2 -0
  325. package/dist/bin/shell/chunks/find-7CVMEZBO.js +2 -0
  326. package/dist/bin/shell/chunks/flag-coverage-UJISFT4M.js +2 -0
  327. package/dist/bin/shell/chunks/fold-XSVNTAWH.js +2 -0
  328. package/dist/bin/shell/chunks/grep-7BJ7HFBM.js +2 -0
  329. package/dist/bin/shell/chunks/gzip-LHOO65AN.js +2 -0
  330. package/dist/bin/shell/chunks/head-YMNRW3F3.js +2 -0
  331. package/dist/bin/shell/chunks/help-DVG4AAGE.js +2 -0
  332. package/dist/bin/shell/chunks/history-UUKG55YW.js +2 -0
  333. package/dist/bin/shell/chunks/hostname-WY6RKE32.js +2 -0
  334. package/dist/bin/shell/chunks/html-to-markdown-V6PK6S5U.js +2 -0
  335. package/dist/bin/shell/chunks/join-Y4Q5WVVE.js +2 -0
  336. package/dist/bin/shell/chunks/jq-4JWOFG7X.js +2 -0
  337. package/dist/bin/shell/chunks/js-exec-AKWY6BP5.js +97 -0
  338. package/dist/bin/shell/chunks/ln-EGC4HRXZ.js +2 -0
  339. package/dist/bin/shell/chunks/ls-WONXDVOX.js +2 -0
  340. package/dist/bin/shell/chunks/md5sum-NCLXV2S3.js +2 -0
  341. package/dist/bin/shell/chunks/mkdir-Z47OISSR.js +2 -0
  342. package/dist/bin/shell/chunks/mv-OY7X62QC.js +2 -0
  343. package/dist/bin/shell/chunks/nl-XH3L75DR.js +2 -0
  344. package/dist/bin/shell/chunks/od-52FBC34W.js +2 -0
  345. package/dist/bin/shell/chunks/paste-3UVLMQ2K.js +2 -0
  346. package/dist/bin/shell/chunks/printf-NA7DYZBO.js +2 -0
  347. package/dist/bin/shell/chunks/pwd-6VBAPL3Y.js +2 -0
  348. package/dist/bin/shell/chunks/python3-RRCCYJKA.js +12 -0
  349. package/dist/bin/shell/chunks/readlink-BD5VFOC5.js +2 -0
  350. package/dist/bin/shell/chunks/rev-UHEPS2UL.js +2 -0
  351. package/dist/bin/shell/chunks/rg-DK6FRF6Q.js +2 -0
  352. package/dist/bin/shell/chunks/rm-L3NZOLLG.js +2 -0
  353. package/dist/bin/shell/chunks/rmdir-5KLM4EA6.js +2 -0
  354. package/dist/bin/shell/chunks/sed-WWXBUNG3.js +2 -0
  355. package/dist/bin/shell/chunks/seq-V7KBLSQ7.js +2 -0
  356. package/dist/bin/shell/chunks/sha1sum-BHNJ5ALF.js +2 -0
  357. package/dist/bin/shell/chunks/sha256sum-HJJ3NJ5L.js +2 -0
  358. package/dist/bin/shell/chunks/sleep-ND6FZRZ4.js +2 -0
  359. package/dist/bin/shell/chunks/sort-7GENYU2I.js +2 -0
  360. package/dist/bin/shell/chunks/split-YWV64TJH.js +2 -0
  361. package/dist/bin/shell/chunks/sqlite3-CVNFMP3Z.js +2 -0
  362. package/dist/bin/shell/chunks/stat-XS2LXYS2.js +2 -0
  363. package/dist/bin/shell/chunks/strings-XXKZCWY5.js +2 -0
  364. package/dist/bin/shell/chunks/tac-T42SKDDI.js +2 -0
  365. package/dist/bin/shell/chunks/tail-V537TDFR.js +2 -0
  366. package/dist/bin/shell/chunks/tar-GTGFEWDS.js +2 -0
  367. package/dist/bin/shell/chunks/tee-HK2SYCAR.js +2 -0
  368. package/dist/bin/shell/chunks/time-5R4QWCYF.js +2 -0
  369. package/dist/bin/shell/chunks/timeout-Z24MNWOP.js +2 -0
  370. package/dist/bin/shell/chunks/touch-DWKSZGOQ.js +2 -0
  371. package/dist/bin/shell/chunks/tr-4FPGAEVB.js +2 -0
  372. package/dist/bin/shell/chunks/tree-HEKABARE.js +2 -0
  373. package/dist/bin/shell/chunks/true-DP5UZP52.js +2 -0
  374. package/dist/bin/shell/chunks/unexpand-OYZ7KOYR.js +2 -0
  375. package/dist/bin/shell/chunks/uniq-TMSAIZM3.js +2 -0
  376. package/dist/bin/shell/chunks/wc-ZIV3TFVG.js +2 -0
  377. package/dist/bin/shell/chunks/which-5PO4LAOG.js +2 -0
  378. package/dist/bin/shell/chunks/whoami-E7PN2UWC.js +2 -0
  379. package/dist/bin/shell/chunks/xan-FKXPSPE5.js +2 -0
  380. package/dist/bin/shell/chunks/xan-view-6J5MMMQB.js +2 -0
  381. package/dist/bin/shell/chunks/xargs-SCYIFXOW.js +2 -0
  382. package/dist/bin/shell/chunks/yq-RGXFWYJN.js +2 -0
  383. package/dist/bin/shell/shell.js +733 -0
  384. package/dist/browser.d.ts +23 -0
  385. package/dist/bundle/browser.js +1515 -0
  386. package/dist/bundle/chunks/alias-JE7RI5QX.js +1 -0
  387. package/dist/bundle/chunks/awk2-JFGEGLFP.js +1 -0
  388. package/dist/bundle/chunks/base64-4YMZCVJ5.js +1 -0
  389. package/dist/bundle/chunks/basename-AA2KJYZQ.js +1 -0
  390. package/dist/bundle/chunks/bash-IJWYRKFO.js +1 -0
  391. package/dist/bundle/chunks/cat-RDUMLXKC.js +1 -0
  392. package/dist/bundle/chunks/chmod-SYMGL4JA.js +1 -0
  393. package/dist/bundle/chunks/chunk-24IMIIXA.js +1 -0
  394. package/dist/bundle/chunks/chunk-3THT3N7L.js +1 -0
  395. package/dist/bundle/chunks/chunk-3ZUFRYJ4.js +1 -0
  396. package/dist/bundle/chunks/chunk-43RSSTFA.js +73 -0
  397. package/dist/bundle/chunks/chunk-44UOCSGV.js +1 -0
  398. package/dist/bundle/chunks/chunk-4GTNDTRF.js +7 -0
  399. package/dist/bundle/chunks/chunk-4HHKTUW3.js +2 -0
  400. package/dist/bundle/chunks/chunk-4Q4SM6WR.js +4 -0
  401. package/dist/bundle/chunks/chunk-55VFSPNA.js +2 -0
  402. package/dist/bundle/chunks/chunk-5PYKJV42.js +4 -0
  403. package/dist/bundle/chunks/chunk-5QMZ5MUS.js +4 -0
  404. package/dist/bundle/chunks/chunk-5QVNJEHU.js +8 -0
  405. package/dist/bundle/chunks/chunk-5V6VZH6T.js +1 -0
  406. package/dist/bundle/chunks/chunk-62RKD26F.js +20 -0
  407. package/dist/bundle/chunks/chunk-64BAICW3.js +1 -0
  408. package/dist/bundle/chunks/chunk-74CEPOFO.js +22 -0
  409. package/dist/bundle/chunks/chunk-7ESWU5HP.js +14 -0
  410. package/dist/bundle/chunks/chunk-7L36YK2X.js +2 -0
  411. package/dist/bundle/chunks/chunk-7TSDKFEO.js +1 -0
  412. package/dist/bundle/chunks/chunk-A4HU7SVR.js +2 -0
  413. package/dist/bundle/chunks/chunk-A4JSPFCI.js +6 -0
  414. package/dist/bundle/chunks/chunk-A5O5YHGN.js +1 -0
  415. package/dist/bundle/chunks/chunk-A65PWWJC.js +2 -0
  416. package/dist/bundle/chunks/chunk-A7A2DBEE.js +6 -0
  417. package/dist/bundle/chunks/chunk-A7ICOL4V.js +13 -0
  418. package/dist/bundle/chunks/chunk-ALLTKNUZ.js +5 -0
  419. package/dist/bundle/chunks/chunk-APT7OOP2.js +1 -0
  420. package/dist/bundle/chunks/chunk-B53Y5JFV.js +8 -0
  421. package/dist/bundle/chunks/chunk-BAQA74XA.js +1 -0
  422. package/dist/bundle/chunks/chunk-CWQS3NFK.js +1 -0
  423. package/dist/bundle/chunks/chunk-D4J545R4.js +11 -0
  424. package/dist/bundle/chunks/chunk-D6CWQ5DW.js +5 -0
  425. package/dist/bundle/chunks/chunk-D6EWIDSU.js +20 -0
  426. package/dist/bundle/chunks/chunk-D7MEQ3VN.js +4 -0
  427. package/dist/bundle/chunks/chunk-DBKNVD4L.js +9 -0
  428. package/dist/bundle/chunks/chunk-DCAAORBQ.js +1 -0
  429. package/dist/bundle/chunks/chunk-DXB73IDG.js +1 -0
  430. package/dist/bundle/chunks/chunk-EEXR5ZDP.js +2 -0
  431. package/dist/bundle/chunks/chunk-EIZGF4BS.js +8 -0
  432. package/dist/bundle/chunks/chunk-F23WWYKW.js +16 -0
  433. package/dist/bundle/chunks/chunk-GCTKCWKD.js +3 -0
  434. package/dist/bundle/chunks/chunk-GFQRA5P5.js +7 -0
  435. package/dist/bundle/chunks/chunk-GJTDUJ5Q.js +10 -0
  436. package/dist/bundle/chunks/chunk-GOV5EKKI.js +9 -0
  437. package/dist/bundle/chunks/chunk-GXVXFKBA.js +5 -0
  438. package/dist/bundle/chunks/chunk-HDQ56CKY.js +15 -0
  439. package/dist/bundle/chunks/chunk-HJQJAYMS.js +2 -0
  440. package/dist/bundle/chunks/chunk-HJWBQKYG.js +5 -0
  441. package/dist/bundle/chunks/chunk-HL6NGDO2.js +22 -0
  442. package/dist/bundle/chunks/chunk-HWBSOZZR.js +35 -0
  443. package/dist/bundle/chunks/chunk-HWKDQ44K.js +3 -0
  444. package/dist/bundle/chunks/chunk-I57KEIP3.js +10 -0
  445. package/dist/bundle/chunks/chunk-IPJHKYVM.js +1 -0
  446. package/dist/bundle/chunks/chunk-IVYA2HK4.js +286 -0
  447. package/dist/bundle/chunks/chunk-JVPRLUMK.js +7 -0
  448. package/dist/bundle/chunks/chunk-KMEYNNUA.js +15 -0
  449. package/dist/bundle/chunks/chunk-KX3P26DQ.js +1 -0
  450. package/dist/bundle/chunks/chunk-LL3S3NLB.js +1 -0
  451. package/dist/bundle/chunks/chunk-LTZRCH7N.js +31 -0
  452. package/dist/bundle/chunks/chunk-LWEGUNWT.js +7 -0
  453. package/dist/bundle/chunks/chunk-MDDMCKUK.js +6 -0
  454. package/dist/bundle/chunks/chunk-MDLLFABN.js +4 -0
  455. package/dist/bundle/chunks/chunk-MHTUABJP.js +8 -0
  456. package/dist/bundle/chunks/chunk-MIZPJHVH.js +7 -0
  457. package/dist/bundle/chunks/chunk-MLXIYONF.js +15 -0
  458. package/dist/bundle/chunks/chunk-MYE6AGBJ.js +16 -0
  459. package/dist/bundle/chunks/chunk-NAERJDUW.js +8 -0
  460. package/dist/bundle/chunks/chunk-NCNPKYJZ.js +2 -0
  461. package/dist/bundle/chunks/chunk-NUFRM6SI.js +0 -0
  462. package/dist/bundle/chunks/chunk-NUYSJFDK.js +7 -0
  463. package/dist/bundle/chunks/chunk-OCLXQMOG.js +6 -0
  464. package/dist/bundle/chunks/chunk-OCS6LSEM.js +13 -0
  465. package/dist/bundle/chunks/chunk-OJDRYQWQ.js +1 -0
  466. package/dist/bundle/chunks/chunk-P7UWRQ44.js +139 -0
  467. package/dist/bundle/chunks/chunk-PBXLG62G.js +8 -0
  468. package/dist/bundle/chunks/chunk-PP6PSHAB.js +4 -0
  469. package/dist/bundle/chunks/chunk-PXTK5WE2.js +20 -0
  470. package/dist/bundle/chunks/chunk-PYDZ2LCK.js +16 -0
  471. package/dist/bundle/chunks/chunk-PYSFUGCK.js +10 -0
  472. package/dist/bundle/chunks/chunk-QCDB2VPH.js +6 -0
  473. package/dist/bundle/chunks/chunk-QJ7O6ZN3.js +5 -0
  474. package/dist/bundle/chunks/chunk-R6QSAL5T.js +1 -0
  475. package/dist/bundle/chunks/chunk-R6VWJ2ZL.js +1 -0
  476. package/dist/bundle/chunks/chunk-RPNGRAAP.js +7 -0
  477. package/dist/bundle/chunks/chunk-SDNKECQQ.js +5 -0
  478. package/dist/bundle/chunks/chunk-T56QNPHK.js +14 -0
  479. package/dist/bundle/chunks/chunk-TLSUDHID.js +6 -0
  480. package/dist/bundle/chunks/chunk-TOMNU26N.js +4 -0
  481. package/dist/bundle/chunks/chunk-TXBZCHCQ.js +5 -0
  482. package/dist/bundle/chunks/chunk-U6NMAV24.js +32 -0
  483. package/dist/bundle/chunks/chunk-V7TAPXDL.js +27 -0
  484. package/dist/bundle/chunks/chunk-VBEY5J6R.js +99 -0
  485. package/dist/bundle/chunks/chunk-VJFXDYWH.js +10 -0
  486. package/dist/bundle/chunks/chunk-VOBGTVA6.js +6 -0
  487. package/dist/bundle/chunks/chunk-VXBA5RYO.js +5 -0
  488. package/dist/bundle/chunks/chunk-VYOJP4TV.js +13 -0
  489. package/dist/bundle/chunks/chunk-WKFATFPP.js +4 -0
  490. package/dist/bundle/chunks/chunk-X2AJGDEF.js +1 -0
  491. package/dist/bundle/chunks/chunk-XIZSGUXJ.js +62 -0
  492. package/dist/bundle/chunks/chunk-XKQRETAK.js +1 -0
  493. package/dist/bundle/chunks/chunk-XVDPCNWR.js +11 -0
  494. package/dist/bundle/chunks/chunk-YSHZL3MF.js +32 -0
  495. package/dist/bundle/chunks/chunk-YTNYSM6T.js +11 -0
  496. package/dist/bundle/chunks/chunk-Z6LRHWXI.js +13 -0
  497. package/dist/bundle/chunks/chunk-Z7JVV2SM.js +12 -0
  498. package/dist/bundle/chunks/clear-5CZ5X4YR.js +1 -0
  499. package/dist/bundle/chunks/column-WLPMMSTS.js +1 -0
  500. package/dist/bundle/chunks/comm-5SLSESQG.js +1 -0
  501. package/dist/bundle/chunks/cp-XOYR4ABJ.js +1 -0
  502. package/dist/bundle/chunks/curl-47BFPSFW.js +25 -0
  503. package/dist/bundle/chunks/cut-OPC3VAGB.js +1 -0
  504. package/dist/bundle/chunks/date-DD7FVA2V.js +1 -0
  505. package/dist/bundle/chunks/diff-HJF2MPDN.js +1 -0
  506. package/dist/bundle/chunks/dirname-LEMTZZFS.js +1 -0
  507. package/dist/bundle/chunks/du-WO2ENHXQ.js +1 -0
  508. package/dist/bundle/chunks/echo-O45JWWI2.js +1 -0
  509. package/dist/bundle/chunks/env-5EPCWSXR.js +1 -0
  510. package/dist/bundle/chunks/expand-DTNXU4LQ.js +1 -0
  511. package/dist/bundle/chunks/expansion-UGGADTZC.js +1 -0
  512. package/dist/bundle/chunks/expr-DNFUYZGY.js +1 -0
  513. package/dist/bundle/chunks/file-IGDTDPLG.js +1 -0
  514. package/dist/bundle/chunks/find-KNMMLVJD.js +1 -0
  515. package/dist/bundle/chunks/flag-coverage-B26Z36PC.js +1 -0
  516. package/dist/bundle/chunks/fold-LDSORVYE.js +1 -0
  517. package/dist/bundle/chunks/grep-2UMHPO7Y.js +1 -0
  518. package/dist/bundle/chunks/gzip-AQXSGOVS.js +1 -0
  519. package/dist/bundle/chunks/head-HT2B6D2J.js +1 -0
  520. package/dist/bundle/chunks/help-VVWX7SA5.js +1 -0
  521. package/dist/bundle/chunks/history-J4QRNGRO.js +1 -0
  522. package/dist/bundle/chunks/hostname-BK6HG2DE.js +1 -0
  523. package/dist/bundle/chunks/html-to-markdown-TFCECAGV.js +1 -0
  524. package/dist/bundle/chunks/join-GG2LDHE5.js +1 -0
  525. package/dist/bundle/chunks/jq-CRLZNLQG.js +1 -0
  526. package/dist/bundle/chunks/js-exec-VXN6TZ7U.js +96 -0
  527. package/dist/bundle/chunks/js-exec-worker.js +4380 -0
  528. package/dist/bundle/chunks/ln-4TRFBYAT.js +1 -0
  529. package/dist/bundle/chunks/ls-KSXFZCWH.js +1 -0
  530. package/dist/bundle/chunks/md5sum-INMIK4DX.js +1 -0
  531. package/dist/bundle/chunks/mkdir-TDEMSB6C.js +1 -0
  532. package/dist/bundle/chunks/mv-Z6MORUFL.js +1 -0
  533. package/dist/bundle/chunks/nl-U5YJDM32.js +1 -0
  534. package/dist/bundle/chunks/od-VJEF2UR5.js +1 -0
  535. package/dist/bundle/chunks/paste-7N6AFSDS.js +1 -0
  536. package/dist/bundle/chunks/printf-CX64KX2P.js +1 -0
  537. package/dist/bundle/chunks/pwd-D4OZ7N27.js +1 -0
  538. package/dist/bundle/chunks/python3-BFV3N3GY.js +11 -0
  539. package/dist/bundle/chunks/readlink-MI4GCHJF.js +1 -0
  540. package/dist/bundle/chunks/rev-XOSYPP45.js +1 -0
  541. package/dist/bundle/chunks/rg-KYSTAD4Q.js +1 -0
  542. package/dist/bundle/chunks/rm-RTZG23RL.js +1 -0
  543. package/dist/bundle/chunks/rmdir-XTQXT7RK.js +1 -0
  544. package/dist/bundle/chunks/sed-OFX3F4FE.js +1 -0
  545. package/dist/bundle/chunks/seq-RN5ZUASB.js +1 -0
  546. package/dist/bundle/chunks/sha1sum-VJPNLNU6.js +1 -0
  547. package/dist/bundle/chunks/sha256sum-PI32XWXY.js +1 -0
  548. package/dist/bundle/chunks/sleep-VZFPZFWA.js +1 -0
  549. package/dist/bundle/chunks/sort-DCNRDA7U.js +1 -0
  550. package/dist/bundle/chunks/split-SITCSYCZ.js +1 -0
  551. package/dist/bundle/chunks/sqlite3-56UMWEY3.js +1 -0
  552. package/dist/bundle/chunks/stat-BT5A227F.js +1 -0
  553. package/dist/bundle/chunks/strings-7PLOGTPD.js +1 -0
  554. package/dist/bundle/chunks/tac-SJGXQ4T2.js +1 -0
  555. package/dist/bundle/chunks/tail-S5ULNTJU.js +1 -0
  556. package/dist/bundle/chunks/tar-LYLTEJV3.js +1 -0
  557. package/dist/bundle/chunks/tee-O7VXZDCO.js +1 -0
  558. package/dist/bundle/chunks/time-DEUO3QV2.js +1 -0
  559. package/dist/bundle/chunks/timeout-VRKMCG72.js +1 -0
  560. package/dist/bundle/chunks/touch-DX2IJOQ4.js +1 -0
  561. package/dist/bundle/chunks/tr-2HXZRDSW.js +1 -0
  562. package/dist/bundle/chunks/tree-LYXBS7DC.js +1 -0
  563. package/dist/bundle/chunks/true-WHJNXCHG.js +1 -0
  564. package/dist/bundle/chunks/unexpand-RGTMIGZM.js +1 -0
  565. package/dist/bundle/chunks/uniq-SUNANL47.js +1 -0
  566. package/dist/bundle/chunks/wc-TQB3VNOX.js +1 -0
  567. package/dist/bundle/chunks/which-XZHEH76L.js +1 -0
  568. package/dist/bundle/chunks/whoami-DGKU3D2X.js +1 -0
  569. package/dist/bundle/chunks/worker.js +3136 -0
  570. package/dist/bundle/chunks/xan-DHUKCGIW.js +1 -0
  571. package/dist/bundle/chunks/xan-view-OW2TB7Z3.js +1 -0
  572. package/dist/bundle/chunks/xargs-I6EZUCYF.js +1 -0
  573. package/dist/bundle/chunks/yq-NDDDSAXH.js +1 -0
  574. package/dist/bundle/index.cjs +2178 -0
  575. package/dist/bundle/index.js +709 -0
  576. package/dist/commands/alias/alias.d.ts +6 -0
  577. package/dist/commands/awk/ast.d.ts +202 -0
  578. package/dist/commands/awk/awk2.d.ts +9 -0
  579. package/dist/commands/awk/builtins.d.ts +17 -0
  580. package/dist/commands/awk/interpreter/context.d.ts +75 -0
  581. package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
  582. package/dist/commands/awk/interpreter/fields.d.ts +25 -0
  583. package/dist/commands/awk/interpreter/index.d.ts +8 -0
  584. package/dist/commands/awk/interpreter/interpreter.d.ts +54 -0
  585. package/dist/commands/awk/interpreter/statements.d.ts +11 -0
  586. package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
  587. package/dist/commands/awk/interpreter/types.d.ts +13 -0
  588. package/dist/commands/awk/interpreter/variables.d.ts +35 -0
  589. package/dist/commands/awk/lexer.d.ts +100 -0
  590. package/dist/commands/awk/parser2-print.d.ts +35 -0
  591. package/dist/commands/awk/parser2.d.ts +81 -0
  592. package/dist/commands/base64/base64.d.ts +7 -0
  593. package/dist/commands/basename/basename.d.ts +4 -0
  594. package/dist/commands/bash/bash.d.ts +6 -0
  595. package/dist/commands/browser-excluded.d.ts +16 -0
  596. package/dist/commands/cat/cat.d.ts +4 -0
  597. package/dist/commands/chmod/chmod.d.ts +4 -0
  598. package/dist/commands/clear/clear.d.ts +4 -0
  599. package/dist/commands/column/column.d.ts +11 -0
  600. package/dist/commands/comm/comm.d.ts +12 -0
  601. package/dist/commands/cp/cp.d.ts +4 -0
  602. package/dist/commands/curl/curl.d.ts +8 -0
  603. package/dist/commands/curl/form.d.ts +21 -0
  604. package/dist/commands/curl/help.d.ts +9 -0
  605. package/dist/commands/curl/parse.d.ts +9 -0
  606. package/dist/commands/curl/response-formatting.d.ts +20 -0
  607. package/dist/commands/curl/types.d.ts +31 -0
  608. package/dist/commands/cut/cut.d.ts +4 -0
  609. package/dist/commands/date/date.d.ts +7 -0
  610. package/dist/commands/diff/diff.d.ts +7 -0
  611. package/dist/commands/dirname/dirname.d.ts +4 -0
  612. package/dist/commands/du/du.d.ts +4 -0
  613. package/dist/commands/duration.d.ts +5 -0
  614. package/dist/commands/echo/echo.d.ts +4 -0
  615. package/dist/commands/env/env.d.ts +6 -0
  616. package/dist/commands/expand/expand.d.ts +12 -0
  617. package/dist/commands/expand/unexpand.d.ts +12 -0
  618. package/dist/commands/expr/expr.d.ts +9 -0
  619. package/dist/commands/file/file.d.ts +9 -0
  620. package/dist/commands/find/find.d.ts +4 -0
  621. package/dist/commands/find/matcher.d.ts +69 -0
  622. package/dist/commands/find/parser.d.ts +2 -0
  623. package/dist/commands/find/types.d.ts +88 -0
  624. package/dist/commands/flag-coverage.d.ts +2 -0
  625. package/dist/commands/fold/fold.d.ts +12 -0
  626. package/dist/commands/format-mode.d.ts +4 -0
  627. package/dist/commands/fuzz-flags-types.d.ts +17 -0
  628. package/dist/commands/fuzz-flags.d.ts +8 -0
  629. package/dist/commands/grep/grep.d.ts +8 -0
  630. package/dist/commands/gzip/gzip.d.ts +13 -0
  631. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  632. package/dist/commands/head/head.d.ts +4 -0
  633. package/dist/commands/help/help.d.ts +4 -0
  634. package/dist/commands/help.d.ts +16 -0
  635. package/dist/commands/history/history.d.ts +4 -0
  636. package/dist/commands/hostname/hostname.d.ts +11 -0
  637. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
  638. package/dist/commands/join/join.d.ts +12 -0
  639. package/dist/commands/jq/jq.d.ts +9 -0
  640. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  641. package/dist/commands/js-exec/js-exec-worker.d.ts +30 -0
  642. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  643. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  644. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  645. package/dist/commands/ln/ln.d.ts +4 -0
  646. package/dist/commands/ls/ls.d.ts +4 -0
  647. package/dist/commands/md5sum/checksum.d.ts +7 -0
  648. package/dist/commands/md5sum/md5sum.d.ts +4 -0
  649. package/dist/commands/md5sum/sha1sum.d.ts +4 -0
  650. package/dist/commands/md5sum/sha256sum.d.ts +4 -0
  651. package/dist/commands/mkdir/mkdir.d.ts +4 -0
  652. package/dist/commands/mv/mv.d.ts +4 -0
  653. package/dist/commands/nl/nl.d.ts +12 -0
  654. package/dist/commands/od/od.d.ts +12 -0
  655. package/dist/commands/paste/paste.d.ts +4 -0
  656. package/dist/commands/printf/escapes.d.ts +25 -0
  657. package/dist/commands/printf/printf.d.ts +4 -0
  658. package/dist/commands/printf/strftime.d.ts +9 -0
  659. package/dist/commands/pwd/pwd.d.ts +4 -0
  660. package/dist/commands/python3/python3.d.ts +16 -0
  661. package/dist/commands/python3/worker.d.ts +28 -0
  662. package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
  663. package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
  664. package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
  665. package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
  666. package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
  667. package/dist/commands/query-engine/builtins/index.d.ts +17 -0
  668. package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
  669. package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
  670. package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
  671. package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
  672. package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
  673. package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
  674. package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
  675. package/dist/commands/query-engine/evaluator.d.ts +41 -0
  676. package/dist/commands/query-engine/index.d.ts +8 -0
  677. package/dist/commands/query-engine/parser-types.d.ts +171 -0
  678. package/dist/commands/query-engine/parser.d.ts +9 -0
  679. package/dist/commands/query-engine/path-operations.d.ts +15 -0
  680. package/dist/commands/query-engine/safe-object.d.ts +83 -0
  681. package/dist/commands/query-engine/value-operations.d.ts +41 -0
  682. package/dist/commands/readlink/readlink.d.ts +4 -0
  683. package/dist/commands/registry.d.ts +56 -0
  684. package/dist/commands/rev/rev.d.ts +13 -0
  685. package/dist/commands/rg/file-types.d.ts +49 -0
  686. package/dist/commands/rg/gitignore.d.ts +98 -0
  687. package/dist/commands/rg/rg-options.d.ts +61 -0
  688. package/dist/commands/rg/rg-parser.d.ts +20 -0
  689. package/dist/commands/rg/rg-search.d.ts +15 -0
  690. package/dist/commands/rg/rg.d.ts +14 -0
  691. package/dist/commands/rm/rm.d.ts +4 -0
  692. package/dist/commands/rmdir/rmdir.d.ts +4 -0
  693. package/dist/commands/search-engine/index.d.ts +10 -0
  694. package/dist/commands/search-engine/matcher.d.ts +60 -0
  695. package/dist/commands/search-engine/regex.d.ts +33 -0
  696. package/dist/commands/sed/executor.d.ts +7 -0
  697. package/dist/commands/sed/lexer.d.ts +86 -0
  698. package/dist/commands/sed/parser.d.ts +18 -0
  699. package/dist/commands/sed/sed-regex.d.ts +23 -0
  700. package/dist/commands/sed/sed.d.ts +4 -0
  701. package/dist/commands/sed/types.d.ts +216 -0
  702. package/dist/commands/seq/seq.d.ts +16 -0
  703. package/dist/commands/sleep/sleep.d.ts +4 -0
  704. package/dist/commands/sort/comparator.d.ts +9 -0
  705. package/dist/commands/sort/parser.d.ts +11 -0
  706. package/dist/commands/sort/sort.d.ts +4 -0
  707. package/dist/commands/sort/types.d.ts +30 -0
  708. package/dist/commands/split/split.d.ts +12 -0
  709. package/dist/commands/sqlite3/formatters.d.ts +15 -0
  710. package/dist/commands/sqlite3/sqlite3.d.ts +22 -0
  711. package/dist/commands/sqlite3/worker.d.ts +45 -0
  712. package/dist/commands/stat/stat.d.ts +4 -0
  713. package/dist/commands/strings/strings.d.ts +12 -0
  714. package/dist/commands/tac/tac.d.ts +11 -0
  715. package/dist/commands/tail/tail.d.ts +4 -0
  716. package/dist/commands/tar/archive.d.ts +135 -0
  717. package/dist/commands/tar/bzip2-compress.d.ts +17 -0
  718. package/dist/commands/tar/tar-options.d.ts +37 -0
  719. package/dist/commands/tar/tar.d.ts +10 -0
  720. package/dist/commands/tee/tee.d.ts +4 -0
  721. package/dist/commands/time/time.d.ts +27 -0
  722. package/dist/commands/timeout/timeout.d.ts +4 -0
  723. package/dist/commands/touch/touch.d.ts +4 -0
  724. package/dist/commands/tr/tr.d.ts +4 -0
  725. package/dist/commands/tree/tree.d.ts +4 -0
  726. package/dist/commands/true/true.d.ts +6 -0
  727. package/dist/commands/uniq/uniq.d.ts +4 -0
  728. package/dist/commands/wc/wc.d.ts +4 -0
  729. package/dist/commands/which/which.d.ts +4 -0
  730. package/dist/commands/whoami/whoami.d.ts +11 -0
  731. package/dist/commands/worker-bridge/bridge-handler.d.ts +71 -0
  732. package/dist/commands/worker-bridge/protocol.d.ts +140 -0
  733. package/dist/commands/worker-bridge/sync-backend.d.ts +81 -0
  734. package/dist/commands/xan/aggregation.d.ts +20 -0
  735. package/dist/commands/xan/column-selection.d.ts +19 -0
  736. package/dist/commands/xan/csv.d.ts +37 -0
  737. package/dist/commands/xan/moonblade-parser.d.ts +80 -0
  738. package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
  739. package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
  740. package/dist/commands/xan/subcommands.d.ts +15 -0
  741. package/dist/commands/xan/xan-agg.d.ts +8 -0
  742. package/dist/commands/xan/xan-columns.d.ts +8 -0
  743. package/dist/commands/xan/xan-core.d.ts +10 -0
  744. package/dist/commands/xan/xan-data.d.ts +52 -0
  745. package/dist/commands/xan/xan-filter.d.ts +8 -0
  746. package/dist/commands/xan/xan-map.d.ts +11 -0
  747. package/dist/commands/xan/xan-reshape.d.ts +40 -0
  748. package/dist/commands/xan/xan-simple.d.ts +40 -0
  749. package/dist/commands/xan/xan-view.d.ts +12 -0
  750. package/dist/commands/xan/xan.d.ts +10 -0
  751. package/dist/commands/xargs/xargs.d.ts +4 -0
  752. package/dist/commands/yq/formats.d.ts +64 -0
  753. package/dist/commands/yq/yq.d.ts +13 -0
  754. package/dist/custom-commands.d.ts +42 -0
  755. package/dist/fs/encoding.d.ts +17 -0
  756. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +73 -0
  757. package/dist/fs/in-memory-fs/index.d.ts +1 -0
  758. package/dist/fs/init.d.ts +22 -0
  759. package/dist/fs/interface.d.ts +229 -0
  760. package/dist/fs/mountable-fs/index.d.ts +1 -0
  761. package/dist/fs/mountable-fs/mountable-fs.d.ts +116 -0
  762. package/dist/fs/overlay-fs/index.d.ts +1 -0
  763. package/dist/fs/overlay-fs/overlay-fs.d.ts +163 -0
  764. package/dist/fs/path-utils.d.ts +46 -0
  765. package/dist/fs/read-write-fs/index.d.ts +1 -0
  766. package/dist/fs/read-write-fs/read-write-fs.d.ts +96 -0
  767. package/dist/fs/real-fs-utils.d.ts +90 -0
  768. package/dist/fs/sanitize-error.d.ts +19 -0
  769. package/dist/index.d.cts +27 -0
  770. package/dist/index.d.ts +27 -0
  771. package/dist/interpreter/alias-expansion.d.ts +23 -0
  772. package/dist/interpreter/arithmetic.d.ts +24 -0
  773. package/dist/interpreter/assignment-expansion.d.ts +24 -0
  774. package/dist/interpreter/builtin-dispatch.d.ts +39 -0
  775. package/dist/interpreter/builtins/break.d.ts +6 -0
  776. package/dist/interpreter/builtins/cd.d.ts +6 -0
  777. package/dist/interpreter/builtins/compgen.d.ts +26 -0
  778. package/dist/interpreter/builtins/complete.d.ts +17 -0
  779. package/dist/interpreter/builtins/compopt.d.ts +28 -0
  780. package/dist/interpreter/builtins/continue.d.ts +6 -0
  781. package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
  782. package/dist/interpreter/builtins/declare-print.d.ts +39 -0
  783. package/dist/interpreter/builtins/declare.d.ts +35 -0
  784. package/dist/interpreter/builtins/dirs.d.ts +29 -0
  785. package/dist/interpreter/builtins/eval.d.ts +9 -0
  786. package/dist/interpreter/builtins/exit.d.ts +5 -0
  787. package/dist/interpreter/builtins/export.d.ts +14 -0
  788. package/dist/interpreter/builtins/getopts.d.ts +18 -0
  789. package/dist/interpreter/builtins/hash.d.ts +19 -0
  790. package/dist/interpreter/builtins/help.d.ts +12 -0
  791. package/dist/interpreter/builtins/index.d.ts +45 -0
  792. package/dist/interpreter/builtins/let.d.ts +18 -0
  793. package/dist/interpreter/builtins/local.d.ts +6 -0
  794. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  795. package/dist/interpreter/builtins/read.d.ts +6 -0
  796. package/dist/interpreter/builtins/return.d.ts +6 -0
  797. package/dist/interpreter/builtins/set.d.ts +9 -0
  798. package/dist/interpreter/builtins/shift.d.ts +15 -0
  799. package/dist/interpreter/builtins/shopt.d.ts +7 -0
  800. package/dist/interpreter/builtins/source.d.ts +6 -0
  801. package/dist/interpreter/builtins/unset.d.ts +16 -0
  802. package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
  803. package/dist/interpreter/command-resolution.d.ts +43 -0
  804. package/dist/interpreter/conditionals.d.ts +17 -0
  805. package/dist/interpreter/control-flow.d.ts +21 -0
  806. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  807. package/dist/interpreter/errors.d.ts +158 -0
  808. package/dist/interpreter/expansion/analysis.d.ts +37 -0
  809. package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
  810. package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
  811. package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
  812. package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
  813. package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
  814. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  815. package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
  816. package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
  817. package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
  818. package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
  819. package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
  820. package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
  821. package/dist/interpreter/expansion/pattern.d.ts +23 -0
  822. package/dist/interpreter/expansion/positional-params.d.ts +59 -0
  823. package/dist/interpreter/expansion/prompt.d.ts +39 -0
  824. package/dist/interpreter/expansion/quoting.d.ts +13 -0
  825. package/dist/interpreter/expansion/tilde.d.ts +12 -0
  826. package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
  827. package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
  828. package/dist/interpreter/expansion/variable.d.ts +36 -0
  829. package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
  830. package/dist/interpreter/expansion/word-split.d.ts +29 -0
  831. package/dist/interpreter/expansion.d.ts +53 -0
  832. package/dist/interpreter/functions.d.ts +12 -0
  833. package/dist/interpreter/helpers/array.d.ts +43 -0
  834. package/dist/interpreter/helpers/condition.d.ts +22 -0
  835. package/dist/interpreter/helpers/errors.d.ts +8 -0
  836. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  837. package/dist/interpreter/helpers/ifs.d.ts +104 -0
  838. package/dist/interpreter/helpers/loop.d.ts +24 -0
  839. package/dist/interpreter/helpers/nameref.d.ts +65 -0
  840. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  841. package/dist/interpreter/helpers/quoting.d.ts +24 -0
  842. package/dist/interpreter/helpers/readonly.d.ts +45 -0
  843. package/dist/interpreter/helpers/regex.d.ts +8 -0
  844. package/dist/interpreter/helpers/result.d.ts +60 -0
  845. package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
  846. package/dist/interpreter/helpers/shellopts.d.ts +28 -0
  847. package/dist/interpreter/helpers/statements.d.ts +20 -0
  848. package/dist/interpreter/helpers/string-compare.d.ts +24 -0
  849. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  850. package/dist/interpreter/helpers/tilde.d.ts +13 -0
  851. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  852. package/dist/interpreter/helpers/word-matching.d.ts +26 -0
  853. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  854. package/dist/interpreter/helpers/xtrace.d.ts +18 -0
  855. package/dist/interpreter/index.d.ts +3 -0
  856. package/dist/interpreter/interpreter.d.ts +77 -0
  857. package/dist/interpreter/pipeline-execution.d.ts +16 -0
  858. package/dist/interpreter/redirections.d.ts +51 -0
  859. package/dist/interpreter/simple-command-assignments.d.ts +29 -0
  860. package/dist/interpreter/subshell-group.d.ts +32 -0
  861. package/dist/interpreter/type-command.d.ts +37 -0
  862. package/dist/interpreter/types.d.ts +344 -0
  863. package/dist/limits.d.ts +52 -0
  864. package/dist/network/allow-list/shared.d.ts +57 -0
  865. package/dist/network/allow-list.d.ts +59 -0
  866. package/dist/network/fetch.d.ts +25 -0
  867. package/dist/network/index.d.ts +7 -0
  868. package/dist/network/types.d.ts +155 -0
  869. package/dist/parser/arithmetic-parser.d.ts +23 -0
  870. package/dist/parser/arithmetic-primaries.d.ts +45 -0
  871. package/dist/parser/command-parser.d.ts +10 -0
  872. package/dist/parser/compound-parser.d.ts +28 -0
  873. package/dist/parser/conditional-parser.d.ts +8 -0
  874. package/dist/parser/expansion-parser.d.ts +16 -0
  875. package/dist/parser/lexer.d.ts +197 -0
  876. package/dist/parser/parser-substitution.d.ts +62 -0
  877. package/dist/parser/parser.d.ts +135 -0
  878. package/dist/parser/types.d.ts +25 -0
  879. package/dist/parser/word-parser.d.ts +33 -0
  880. package/dist/sandbox/Command.d.ts +35 -0
  881. package/dist/sandbox/Sandbox.d.ts +90 -0
  882. package/dist/sandbox/index.d.ts +2 -0
  883. package/dist/shell-metadata.d.ts +25 -0
  884. package/dist/timers.d.ts +4 -0
  885. package/dist/types.d.ts +198 -0
  886. package/dist/utils/args.d.ts +55 -0
  887. package/dist/utils/constants.d.ts +15 -0
  888. package/dist/utils/file-reader.d.ts +67 -0
  889. package/dist/utils/glob.d.ts +25 -0
  890. package/dist/vitest-setup.d.ts +1 -0
  891. package/package.json +127 -0
  892. package/vendor/cpython-emscripten/python.cjs +2 -0
  893. package/vendor/cpython-emscripten/python.wasm +3 -0
  894. package/vendor/cpython-emscripten/python313.zip +0 -0
package/README.md ADDED
@@ -0,0 +1,573 @@
1
+ # just-bash
2
+
3
+ A virtual bash environment with an in-memory filesystem, written in TypeScript and designed for AI agents.
4
+
5
+ Broad support for standard unix commands and bash syntax with optional curl, Python, JS/TS, and sqlite support.
6
+
7
+ **Note**: This is beta software. Use at your own risk and please provide feedback. See [security model](#security-model).
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ npm install just-bash
13
+ ```
14
+
15
+ ```typescript
16
+ import { Bash } from "just-bash";
17
+
18
+ const bash = new Bash();
19
+ await bash.exec('echo "Hello" > greeting.txt');
20
+ const result = await bash.exec("cat greeting.txt");
21
+ console.log(result.stdout); // "Hello\n"
22
+ console.log(result.exitCode); // 0
23
+ ```
24
+
25
+ Each `exec()` call gets its own isolated shell state — environment variables, functions, and working directory reset between calls. The **filesystem is shared** across calls, so files written in one `exec()` are visible in the next.
26
+
27
+ ## Custom Commands
28
+
29
+ Extend just-bash with your own TypeScript commands using `defineCommand`:
30
+
31
+ ```typescript
32
+ import { Bash, defineCommand } from "just-bash";
33
+
34
+ const hello = defineCommand("hello", async (args, ctx) => {
35
+ const name = args[0] || "world";
36
+ return { stdout: `Hello, ${name}!\n`, stderr: "", exitCode: 0 };
37
+ });
38
+
39
+ const upper = defineCommand("upper", async (args, ctx) => {
40
+ return { stdout: ctx.stdin.toUpperCase(), stderr: "", exitCode: 0 };
41
+ });
42
+
43
+ const bash = new Bash({ customCommands: [hello, upper] });
44
+
45
+ await bash.exec("hello Alice"); // "Hello, Alice!\n"
46
+ await bash.exec("echo 'test' | upper"); // "TEST\n"
47
+ ```
48
+
49
+ Custom commands receive a `CommandContext` with `fs`, `cwd`, `env`, `stdin`, and `exec` (for subcommands), and work with pipes, redirections, and all shell features.
50
+
51
+ <details>
52
+ <summary><h2>Supported Commands</h2></summary>
53
+
54
+ ### File Operations
55
+
56
+ `cat`, `cp`, `file`, `ln`, `ls`, `mkdir`, `mv`, `readlink`, `rm`, `rmdir`, `split`, `stat`, `touch`, `tree`
57
+
58
+ ### Text Processing
59
+
60
+ `awk`, `base64`, `column`, `comm`, `cut`, `diff`, `expand`, `fold`, `grep` (+ `egrep`, `fgrep`), `head`, `join`, `md5sum`, `nl`, `od`, `paste`, `printf`, `rev`, `rg`, `sed`, `sha1sum`, `sha256sum`, `sort`, `strings`, `tac`, `tail`, `tr`, `unexpand`, `uniq`, `wc`, `xargs`
61
+
62
+ ### Data Processing
63
+
64
+ `jq` (JSON), `sqlite3` (SQLite), `xan` (CSV), `yq` (YAML/XML/TOML/CSV)
65
+
66
+ ### Optional Runtimes
67
+
68
+ `js-exec` (JavaScript/TypeScript via QuickJS; requires `javascript: true`), `python3`/`python` (Python via CPython; requires `python: true`)
69
+
70
+ ### Compression & Archives
71
+
72
+ `gzip` (+ `gunzip`, `zcat`), `tar`
73
+
74
+ ### Navigation & Environment
75
+
76
+ `basename`, `cd`, `dirname`, `du`, `echo`, `env`, `export`, `find`, `hostname`, `printenv`, `pwd`, `tee`
77
+
78
+ ### Shell Utilities
79
+
80
+ `alias`, `bash`, `chmod`, `clear`, `date`, `expr`, `false`, `help`, `history`, `seq`, `sh`, `sleep`, `time`, `timeout`, `true`, `unalias`, `which`, `whoami`
81
+
82
+ ### Network
83
+
84
+ `curl`, `html-to-markdown` (require [network configuration](#network-access))
85
+
86
+ All commands support `--help` for usage information.
87
+
88
+ ### Shell Features
89
+
90
+ - **Pipes**: `cmd1 | cmd2`
91
+ - **Redirections**: `>`, `>>`, `2>`, `2>&1`, `<`
92
+ - **Command chaining**: `&&`, `||`, `;`
93
+ - **Variables**: `$VAR`, `${VAR}`, `${VAR:-default}`
94
+ - **Positional parameters**: `$1`, `$2`, `$@`, `$#`
95
+ - **Glob patterns**: `*`, `?`, `[...]`
96
+ - **If statements**: `if COND; then CMD; elif COND; then CMD; else CMD; fi`
97
+ - **Functions**: `function name { ... }` or `name() { ... }`
98
+ - **Local variables**: `local VAR=value`
99
+ - **Loops**: `for`, `while`, `until`
100
+ - **Symbolic links**: `ln -s target link`
101
+ - **Hard links**: `ln target link`
102
+
103
+ </details>
104
+
105
+ ## Configuration
106
+
107
+ ```typescript
108
+ const env = new Bash({
109
+ files: { "/data/file.txt": "content" }, // Initial files
110
+ env: { MY_VAR: "value" }, // Initial environment
111
+ cwd: "/app", // Starting directory (default: /home/user)
112
+ executionLimits: { maxCallDepth: 50 }, // See "Execution Protection"
113
+ python: true, // Enable python3/python commands
114
+ javascript: true, // Enable js-exec command
115
+ // Or with bootstrap: javascript: { bootstrap: "globalThis.X = 1;" }
116
+ });
117
+
118
+ // Per-exec overrides
119
+ await env.exec("echo $TEMP", { env: { TEMP: "value" }, cwd: "/tmp" });
120
+
121
+ // Pass stdin to the script
122
+ await env.exec("cat", { stdin: "hello from stdin\n" });
123
+
124
+ // Start with a clean environment
125
+ await env.exec("env", { replaceEnv: true, env: { ONLY: "this" } });
126
+
127
+ // Pass arguments without shell escaping (like spawnSync)
128
+ await env.exec("grep", { args: ["-r", "TODO", "src/"] });
129
+
130
+ // Cancel long-running scripts
131
+ const controller = new AbortController();
132
+ setTimeout(() => controller.abort(), 5000);
133
+ await env.exec("while true; do sleep 1; done", { signal: controller.signal });
134
+
135
+ // Preserve leading whitespace (e.g., for heredocs)
136
+ await env.exec("cat <<EOF\n indented\nEOF", { rawScript: true });
137
+ ```
138
+
139
+ `exec()` options:
140
+
141
+ | Option | Type | Description |
142
+ |---|---|---|
143
+ | `env` | `Record<string, string>` | Environment variables for this execution only |
144
+ | `cwd` | `string` | Working directory for this execution only |
145
+ | `stdin` | `string` | Standard input passed to the script |
146
+ | `args` | `string[]` | Additional argv passed directly to the first command (bypasses shell parsing; does not change `$1`, `$2`, ...) |
147
+ | `replaceEnv` | `boolean` | Start with empty env instead of merging (default: `false`) |
148
+ | `signal` | `AbortSignal` | Cooperative cancellation; stops at next statement boundary |
149
+ | `rawScript` | `boolean` | Skip leading-whitespace normalization (default: `false`) |
150
+
151
+ ## Filesystem Options
152
+
153
+ Four filesystem implementations:
154
+
155
+ **InMemoryFs** (default) - Pure in-memory filesystem, no disk access:
156
+
157
+ ```typescript
158
+ import { Bash } from "just-bash";
159
+
160
+ const env = new Bash({
161
+ files: {
162
+ "/data/config.json": '{"key": "value"}',
163
+ // Lazy: called on first read, cached. Never called if written before read.
164
+ "/data/large.csv": () => "col1,col2\na,b\n",
165
+ "/data/remote.txt": async () => (await fetch("https://example.com")).text(),
166
+ },
167
+ });
168
+ ```
169
+
170
+ **OverlayFs** - Copy-on-write over a real directory. Reads come from disk, writes stay in memory:
171
+
172
+ ```typescript
173
+ import { Bash } from "just-bash";
174
+ import { OverlayFs } from "just-bash/fs/overlay-fs";
175
+
176
+ const overlay = new OverlayFs({ root: "/path/to/project" });
177
+ const env = new Bash({ fs: overlay, cwd: overlay.getMountPoint() });
178
+
179
+ await env.exec("cat package.json"); // reads from disk
180
+ await env.exec('echo "modified" > package.json'); // stays in memory
181
+ ```
182
+
183
+ **ReadWriteFs** - Direct read-write access to a real directory. Use this if you want the agent to be able to write to your disk:
184
+
185
+ ```typescript
186
+ import { Bash } from "just-bash";
187
+ import { ReadWriteFs } from "just-bash/fs/read-write-fs";
188
+
189
+ const rwfs = new ReadWriteFs({ root: "/path/to/sandbox" });
190
+ const env = new Bash({ fs: rwfs });
191
+
192
+ await env.exec('echo "hello" > file.txt'); // writes to real filesystem
193
+ ```
194
+
195
+ Keep `ReadWriteFs` pointed at a workspace directory, not at the installed `just-bash` package or any other trusted runtime code. Guest-writable roots should stay separate from trusted code.
196
+
197
+ **MountableFs** - Mount multiple filesystems at different paths. Combines read-only and read-write filesystems into a unified namespace:
198
+
199
+ ```typescript
200
+ import { Bash, MountableFs, InMemoryFs } from "just-bash";
201
+ import { OverlayFs } from "just-bash/fs/overlay-fs";
202
+ import { ReadWriteFs } from "just-bash/fs/read-write-fs";
203
+
204
+ const fs = new MountableFs({ base: new InMemoryFs() });
205
+
206
+ // Mount read-only knowledge base
207
+ fs.mount("/mnt/knowledge", new OverlayFs({ root: "/path/to/knowledge", readOnly: true }));
208
+
209
+ // Mount read-write workspace
210
+ fs.mount("/home/agent", new ReadWriteFs({ root: "/path/to/workspace" }));
211
+
212
+ const bash = new Bash({ fs, cwd: "/home/agent" });
213
+
214
+ await bash.exec("ls /mnt/knowledge"); // reads from knowledge base
215
+ await bash.exec("cp /mnt/knowledge/doc.txt ./"); // cross-mount copy
216
+ await bash.exec('echo "notes" > notes.txt'); // writes to workspace
217
+ ```
218
+
219
+ You can also configure mounts in the constructor:
220
+
221
+ ```typescript
222
+ import { MountableFs, InMemoryFs } from "just-bash";
223
+ import { OverlayFs } from "just-bash/fs/overlay-fs";
224
+ import { ReadWriteFs } from "just-bash/fs/read-write-fs";
225
+
226
+ const fs = new MountableFs({
227
+ base: new InMemoryFs(),
228
+ mounts: [
229
+ { mountPoint: "/data", filesystem: new OverlayFs({ root: "/shared/data" }) },
230
+ { mountPoint: "/workspace", filesystem: new ReadWriteFs({ root: "/tmp/work" }) },
231
+ ],
232
+ });
233
+ ```
234
+
235
+ ## Optional Capabilities
236
+
237
+ ### Network Access
238
+
239
+ Network access is disabled by default. Enable it with the `network` option:
240
+
241
+ ```typescript
242
+ // Allow specific URLs with GET/HEAD only (safest)
243
+ const env = new Bash({
244
+ network: {
245
+ allowedUrlPrefixes: [
246
+ "https://api.github.com/repos/myorg/",
247
+ "https://api.example.com",
248
+ ],
249
+ },
250
+ });
251
+
252
+ // Allow specific URLs with additional methods
253
+ const env = new Bash({
254
+ network: {
255
+ allowedUrlPrefixes: ["https://api.example.com"],
256
+ allowedMethods: ["GET", "HEAD", "POST"], // Default: ["GET", "HEAD"]
257
+ },
258
+ });
259
+
260
+ // Inject credentials via header transforms (secrets never enter the sandbox)
261
+ const env = new Bash({
262
+ network: {
263
+ allowedUrlPrefixes: [
264
+ "https://public-api.com", // plain string — no transforms
265
+ {
266
+ url: "https://ai-gateway.vercel.sh",
267
+ transform: [{ headers: { Authorization: "Bearer secret" } }],
268
+ },
269
+ ],
270
+ },
271
+ });
272
+
273
+ // Allow all URLs and methods (use with caution)
274
+ const env = new Bash({
275
+ network: { dangerouslyAllowFullInternetAccess: true },
276
+ });
277
+ ```
278
+
279
+ **Note:** The `curl` command only exists when network is configured. Without network configuration, `curl` returns "command not found".
280
+
281
+ #### Allow-List Security
282
+
283
+ The allow-list enforces:
284
+
285
+ - **Origin matching**: URLs must match the exact origin (scheme + host + port)
286
+ - **Path prefix**: Only paths starting with the specified prefix are allowed
287
+ - **HTTP method restrictions**: Only GET and HEAD by default (configure `allowedMethods` for more)
288
+ - **Redirect protection**: Redirects to non-allowed URLs are blocked
289
+ - **Header transforms**: Firewall headers are injected at the fetch boundary and override any user-supplied headers with the same name, preventing credential substitution from inside the sandbox. Headers are re-evaluated on each redirect so credentials are never leaked to non-transform hosts
290
+
291
+ #### Using curl
292
+
293
+ ```bash
294
+ # Fetch and process data
295
+ curl -s https://api.example.com/data | grep pattern
296
+
297
+ # Download and convert HTML to Markdown
298
+ curl -s https://example.com | html-to-markdown
299
+
300
+ # POST JSON data
301
+ curl -X POST -H "Content-Type: application/json" \
302
+ -d '{"key":"value"}' https://api.example.com/endpoint
303
+ ```
304
+
305
+ ### JavaScript Support
306
+
307
+ JavaScript and TypeScript execution via QuickJS is opt-in due to additional security surface. Enable with `javascript: true`:
308
+
309
+ ```typescript
310
+ const env = new Bash({
311
+ javascript: true,
312
+ });
313
+
314
+ // Execute JavaScript code
315
+ await env.exec('js-exec -c "console.log(1 + 2)"');
316
+
317
+ // Run script files (.js, .mjs, .ts, .mts)
318
+ await env.exec('js-exec script.js');
319
+
320
+ // ES module mode with imports
321
+ await env.exec('js-exec -m -c "import fs from \'fs\'; console.log(fs.readFileSync(\'/data/file.txt\', \'utf8\'))"');
322
+ ```
323
+
324
+ #### Bootstrap Code
325
+
326
+ Run setup code before every `js-exec` invocation with the `bootstrap` option:
327
+
328
+ ```typescript
329
+ const env = new Bash({
330
+ javascript: {
331
+ bootstrap: `
332
+ globalThis.API_BASE = "https://api.example.com";
333
+ globalThis.formatDate = (d) => new Date(d).toISOString();
334
+ `,
335
+ },
336
+ });
337
+
338
+ await env.exec('js-exec -c "console.log(API_BASE)"');
339
+ // Output: https://api.example.com
340
+ ```
341
+
342
+ #### Node.js Compatibility
343
+
344
+ `js-exec` supports `require()` and `import` with these Node.js modules:
345
+
346
+ - **fs**: `readFileSync`, `writeFileSync`, `readdirSync`, `statSync`, `existsSync`, `mkdirSync`, `rmSync`, `fs.promises.*`
347
+ - **path**: `join`, `resolve`, `dirname`, `basename`, `extname`, `relative`, `normalize`
348
+ - **child_process**: `execSync`, `spawnSync`
349
+ - **process**: `argv`, `cwd()`, `exit()`, `env`, `platform`, `version`
350
+ - **Other modules**: `os`, `url`, `assert`, `util`, `events`, `buffer`, `stream`, `string_decoder`, `querystring`
351
+ - **Globals**: `console`, `fetch`, `Buffer`, `URL`, `URLSearchParams`
352
+
353
+ `fs.readFileSync()` returns a `Buffer` by default (matching Node.js). Pass an encoding like `'utf8'` to get a string.
354
+
355
+ **Note:** The `js-exec` command only exists when `javascript` is configured. It is not available in browser environments. Execution runs in a QuickJS WASM sandbox with a 64 MB memory limit and configurable timeout (default: 10s, 60s with network).
356
+
357
+ ### Python Support
358
+
359
+ Python (CPython compiled to WASM) is opt-in due to additional security surface. Enable with `python: true`:
360
+
361
+ ```typescript
362
+ const env = new Bash({
363
+ python: true,
364
+ });
365
+
366
+ // Execute Python code
367
+ await env.exec('python3 -c "print(1 + 2)"');
368
+
369
+ // Run Python scripts
370
+ await env.exec('python3 script.py');
371
+ ```
372
+
373
+ **Note:** The `python3` and `python` commands only exist when `python: true` is configured. Python is not available in browser environments.
374
+
375
+ ### SQLite Support
376
+
377
+ `sqlite3` uses sql.js (SQLite compiled to WASM), sandboxed from the real filesystem:
378
+
379
+ ```typescript
380
+ const env = new Bash();
381
+
382
+ // Query in-memory database
383
+ await env.exec('sqlite3 :memory: "SELECT 1 + 1"');
384
+
385
+ // Query file-based database
386
+ await env.exec('sqlite3 data.db "SELECT * FROM users"');
387
+ ```
388
+
389
+ **Note:** SQLite is not available in browser environments. Queries run in a worker thread with a configurable timeout (default: 5 seconds) to prevent runaway queries from blocking execution.
390
+
391
+ ## AST Transform Plugins
392
+
393
+ Parse bash scripts into an AST, transform them, and serialize back to bash. Good for instrumenting scripts (e.g., capturing per-command stdout/stderr) or extracting metadata before execution.
394
+
395
+ ```typescript
396
+ import { Bash, BashTransformPipeline, TeePlugin, CommandCollectorPlugin } from "just-bash";
397
+
398
+ // Standalone pipeline — output can be run by any shell
399
+ const pipeline = new BashTransformPipeline()
400
+ .use(new TeePlugin({ outputDir: "/tmp/logs" }))
401
+ .use(new CommandCollectorPlugin());
402
+ const result = pipeline.transform("echo hello | grep hello");
403
+ result.script; // transformed bash string
404
+ result.metadata.commands; // ["echo", "grep", "tee"]
405
+
406
+ // Integrated API — exec() auto-applies transforms and returns metadata
407
+ const bash = new Bash();
408
+ bash.registerTransformPlugin(new CommandCollectorPlugin());
409
+ const execResult = await bash.exec("echo hello | grep hello");
410
+ execResult.metadata?.commands; // ["echo", "grep"]
411
+ ```
412
+
413
+ See [src/transform/README.md](src/transform/README.md) for the full API, built-in plugins, and how to write custom plugins.
414
+
415
+ ## Integrations
416
+
417
+ ### AI SDK Tool
418
+
419
+ [`bash-tool`](https://github.com/vercel-labs/bash-tool) wraps just-bash as an [AI SDK](https://ai-sdk.dev/) tool:
420
+
421
+ ```bash
422
+ npm install bash-tool
423
+ ```
424
+
425
+ ```typescript
426
+ import { createBashTool } from "bash-tool";
427
+ import { generateText } from "ai";
428
+
429
+ const bashTool = createBashTool({
430
+ files: { "/data/users.json": '[{"name": "Alice"}, {"name": "Bob"}]' },
431
+ });
432
+
433
+ const result = await generateText({
434
+ model: "anthropic/claude-sonnet-4",
435
+ tools: { bash: bashTool },
436
+ prompt: "Count the users in /data/users.json",
437
+ });
438
+ ```
439
+
440
+ See [bash-tool](https://github.com/vercel-labs/bash-tool) for more.
441
+
442
+ ### Vercel Sandbox Compatible API
443
+
444
+ `Sandbox` is a drop-in replacement for [`@vercel/sandbox`](https://vercel.com/docs/vercel-sandbox) — same API, but runs entirely in-process with the virtual filesystem. Start with just-bash for development and testing, swap in a real sandbox when you need a full VM.
445
+
446
+ ```typescript
447
+ import { Sandbox } from "just-bash";
448
+
449
+ // Create a sandbox instance
450
+ const sandbox = await Sandbox.create({ cwd: "/app" });
451
+
452
+ // Write files to the virtual filesystem
453
+ await sandbox.writeFiles({
454
+ "/app/script.sh": 'echo "Hello World"',
455
+ "/app/data.json": '{"key": "value"}',
456
+ });
457
+
458
+ // Run commands and get results
459
+ const cmd = await sandbox.runCommand("bash /app/script.sh");
460
+ const output = await cmd.stdout(); // "Hello World\n"
461
+ const exitCode = (await cmd.wait()).exitCode; // 0
462
+
463
+ // Read files back
464
+ const content = await sandbox.readFile("/app/data.json");
465
+
466
+ // Create directories
467
+ await sandbox.mkDir("/app/logs", { recursive: true });
468
+
469
+ // Clean up (no-op for Bash, but API-compatible)
470
+ await sandbox.stop();
471
+ ```
472
+
473
+ ## CLI
474
+
475
+ ### CLI Binary
476
+
477
+ Install globally (`npm install -g just-bash`) for a sandboxed CLI:
478
+
479
+ ```bash
480
+ # Execute inline script
481
+ just-bash -c 'ls -la && cat package.json | head -5'
482
+
483
+ # Execute with specific project root
484
+ just-bash -c 'grep -r "TODO" src/' --root /path/to/project
485
+
486
+ # Pipe script from stdin
487
+ echo 'find . -name "*.ts" | wc -l' | just-bash
488
+
489
+ # Execute a script file
490
+ just-bash ./scripts/deploy.sh
491
+
492
+ # Get JSON output for programmatic use
493
+ just-bash -c 'echo hello' --json
494
+ # Output: {"stdout":"hello\n","stderr":"","exitCode":0}
495
+ ```
496
+
497
+ The CLI uses OverlayFS — reads come from the real filesystem, but all writes stay in memory and are discarded after execution.
498
+
499
+ **Important**: The project root is mounted at `/home/user/project`. Use this path (or relative paths from the default cwd) to access your files inside the sandbox.
500
+
501
+ Options:
502
+
503
+ - `-c <script>` - Execute script from argument
504
+ - `--root <path>` - Root directory (default: current directory)
505
+ - `--cwd <path>` - Working directory in sandbox
506
+ - `-e, --errexit` - Exit on first error
507
+ - `--json` - Output as JSON
508
+
509
+ ### Interactive Shell
510
+
511
+ ```bash
512
+ pnpm shell
513
+ ```
514
+
515
+ The interactive shell has full internet access by default. Disable with `--no-network`:
516
+
517
+ ```bash
518
+ pnpm shell --no-network
519
+ ```
520
+
521
+ ## Execution Protection
522
+
523
+ Bash protects against infinite loops and deep recursion with configurable limits:
524
+
525
+ ```typescript
526
+ const env = new Bash({
527
+ executionLimits: {
528
+ maxCallDepth: 100, // Max function recursion depth
529
+ maxCommandCount: 10000, // Max total commands executed
530
+ maxLoopIterations: 10000, // Max iterations per loop
531
+ maxAwkIterations: 10000, // Max iterations in awk programs
532
+ maxSedIterations: 10000, // Max iterations in sed scripts
533
+ },
534
+ });
535
+ ```
536
+
537
+ All limits have defaults. Error messages tell you which limit was hit. Increase as needed for your workload.
538
+
539
+ ## Security Model
540
+
541
+ - The shell only has access to the provided filesystem.
542
+ - All execution happens without VM isolation. This does introduce additional risk. The code base was designed to be robust against prototype-pollution attacks and other break outs to the host JS engine and filesystem.
543
+ - There is no network access by default. When enabled, requests are checked against URL prefix allow-lists and HTTP-method allow-lists.
544
+ - Python and JavaScript execution are off by default as they represent additional security surface.
545
+ - Execution is protected against infinite loops and deep recursion with configurable limits.
546
+ - Use [Vercel Sandbox](https://vercel.com/docs/vercel-sandbox) if you need a full VM with arbitrary binary execution.
547
+
548
+ ## Browser Support
549
+
550
+ The core shell (parsing, execution, filesystem, and all built-in commands) works in browser environments. The following features require Node.js and are unavailable in browsers: `python3`/`python`, `sqlite3`, `js-exec`, and `OverlayFs`/`ReadWriteFs` (which access the real filesystem).
551
+
552
+ ## Default Layout
553
+
554
+ When created without options, Bash provides a Unix-like directory structure:
555
+
556
+ - `/home/user` - Default working directory (and `$HOME`)
557
+ - `/bin` - Contains stubs for all built-in commands
558
+ - `/usr/bin` - Additional binary directory
559
+ - `/tmp` - Temporary files directory
560
+
561
+ Commands can be invoked by path (e.g., `/bin/ls`) or by name.
562
+
563
+ ## AI Agent Instructions
564
+
565
+ For AI agents, [`bash-tool`](https://github.com/vercel-labs/bash-tool) provides additional guidance in its `AGENTS.md`:
566
+
567
+ ```bash
568
+ cat node_modules/bash-tool/dist/AGENTS.md
569
+ ```
570
+
571
+ ## License
572
+
573
+ Apache-2.0