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
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Positional Parameter Expansion Handlers
3
+ *
4
+ * Handles $@ and $* expansion with various operations:
5
+ * - "${@:offset}" and "${*:offset}" - slicing
6
+ * - "${@/pattern/replacement}" - pattern replacement
7
+ * - "${@#pattern}" - pattern removal (strip)
8
+ * - "$@" and "$*" with adjacent text
9
+ */
10
+ import type { WordPart } from "../../ast/types.js";
11
+ import type { InterpreterContext } from "../types.js";
12
+ /**
13
+ * Result type for positional parameter expansion handlers.
14
+ * `null` means the handler doesn't apply to this case.
15
+ */
16
+ export type PositionalExpansionResult = {
17
+ values: string[];
18
+ quoted: boolean;
19
+ } | null;
20
+ import type { ArithExpr } from "../../ast/types.js";
21
+ /**
22
+ * Type for evaluateArithmetic function
23
+ */
24
+ export type EvaluateArithmeticFn = (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
25
+ /**
26
+ * Type for expandPart function
27
+ */
28
+ export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
29
+ /**
30
+ * Type for expandWordPartsAsync function
31
+ */
32
+ export type ExpandWordPartsAsyncFn = (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
33
+ /**
34
+ * Handle "${@:offset}" and "${*:offset}" with Substring operations inside double quotes
35
+ * "${@:offset}": Each sliced positional parameter becomes a separate word
36
+ * "${*:offset}": All sliced params joined with IFS as ONE word
37
+ */
38
+ export declare function handlePositionalSlicing(ctx: InterpreterContext, wordParts: WordPart[], evaluateArithmetic: EvaluateArithmeticFn, expandPart: ExpandPartFn): Promise<PositionalExpansionResult>;
39
+ /**
40
+ * Handle "${@/pattern/replacement}" and "${* /pattern/replacement}" with PatternReplacement inside double quotes
41
+ * "${@/pattern/replacement}": Each positional parameter has pattern replaced, each becomes a separate word
42
+ * "${* /pattern/replacement}": All params joined with IFS, pattern replaced, becomes ONE word
43
+ */
44
+ export declare function handlePositionalPatternReplacement(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn, expandWordPartsAsync: ExpandWordPartsAsyncFn): Promise<PositionalExpansionResult>;
45
+ /**
46
+ * Handle "${@#pattern}" and "${*#pattern}" - positional parameter pattern removal (strip)
47
+ * "${@#pattern}": Remove shortest matching prefix from each parameter, each becomes a separate word
48
+ * "${@##pattern}": Remove longest matching prefix from each parameter
49
+ * "${@%pattern}": Remove shortest matching suffix from each parameter
50
+ * "${@%%pattern}": Remove longest matching suffix from each parameter
51
+ */
52
+ export declare function handlePositionalPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn, expandWordPartsAsync: ExpandWordPartsAsyncFn): Promise<PositionalExpansionResult>;
53
+ /**
54
+ * Handle "$@" and "$*" with adjacent text inside double quotes, e.g., "-$@-"
55
+ * "$@": Each positional parameter becomes a separate word, with prefix joined to first
56
+ * and suffix joined to last. If no params, produces nothing (or just prefix+suffix if present)
57
+ * "$*": All params joined with IFS as ONE word. If no params, produces one empty word.
58
+ */
59
+ export declare function handleSimplePositionalExpansion(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn): Promise<PositionalExpansionResult>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Prompt expansion
3
+ *
4
+ * Handles prompt escape sequences for ${var@P} transformation and PS1/PS2/PS3/PS4.
5
+ */
6
+ import type { InterpreterContext } from "../types.js";
7
+ /**
8
+ * Expand prompt escape sequences (${var@P} transformation)
9
+ * Interprets backslash escapes used in PS1, PS2, PS3, PS4 prompt strings.
10
+ *
11
+ * Supported escapes:
12
+ * - \a - bell (ASCII 07)
13
+ * - \e - escape (ASCII 033)
14
+ * - \n - newline
15
+ * - \r - carriage return
16
+ * - \\ - literal backslash
17
+ * - \$ - $ for regular user, # for root (always $ here)
18
+ * - \[ and \] - non-printing sequence delimiters (removed)
19
+ * - \u - username
20
+ * - \h - short hostname (up to first .)
21
+ * - \H - full hostname
22
+ * - \w - current working directory
23
+ * - \W - basename of current working directory
24
+ * - \d - date (Weekday Month Day format)
25
+ * - \t - time HH:MM:SS (24-hour)
26
+ * - \T - time HH:MM:SS (12-hour)
27
+ * - \@ - time HH:MM AM/PM (12-hour)
28
+ * - \A - time HH:MM (24-hour)
29
+ * - \D{format} - strftime format
30
+ * - \s - shell name
31
+ * - \v - bash version (major.minor)
32
+ * - \V - bash version (major.minor.patch)
33
+ * - \j - number of jobs
34
+ * - \l - terminal device basename
35
+ * - \# - command number
36
+ * - \! - history number
37
+ * - \NNN - octal character code
38
+ */
39
+ export declare function expandPrompt(ctx: InterpreterContext, value: string): string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Quoting helpers for word expansion
3
+ *
4
+ * Handles quoting values for shell reuse (${var@Q} transformation).
5
+ */
6
+ /**
7
+ * Quote a value for safe reuse as shell input (${var@Q} transformation)
8
+ * Uses single quotes with proper escaping for special characters.
9
+ * Follows bash's quoting behavior:
10
+ * - Simple strings without quotes: 'value'
11
+ * - Strings with single quotes or control characters: $'value' with \' escaping
12
+ */
13
+ export declare function quoteValue(value: string): string;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tilde Expansion
3
+ *
4
+ * Functions for handling tilde (~) expansion in word expansion.
5
+ */
6
+ import type { InterpreterContext } from "../types.js";
7
+ /**
8
+ * Apply tilde expansion to a string.
9
+ * Used after brace expansion to handle cases like ~{/src,root} -> ~/src ~root -> /home/user/src /root
10
+ * Only expands ~ at the start of the string followed by / or end of string.
11
+ */
12
+ export declare function applyTildeExpansion(ctx: InterpreterContext, value: string): string;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Unquoted Expansion Handlers
3
+ *
4
+ * Handles unquoted positional parameter and array expansions:
5
+ * - Unquoted $@ and $* (with and without prefix/suffix)
6
+ * - Unquoted ${arr[@]} and ${arr[*]}
7
+ * - Unquoted ${@:offset} and ${*:offset} slicing
8
+ * - Unquoted ${@#pattern} and ${*#pattern} pattern removal
9
+ * - Unquoted ${arr[@]/pattern/replacement} pattern replacement
10
+ * - Unquoted ${arr[@]#pattern} pattern removal
11
+ * - Unquoted ${!prefix@} and ${!prefix*} variable name prefix expansion
12
+ * - Unquoted ${!arr[@]} and ${!arr[*]} array keys expansion
13
+ */
14
+ import type { ArithExpr, WordPart } from "../../ast/types.js";
15
+ import type { InterpreterContext } from "../types.js";
16
+ /**
17
+ * Result type for unquoted expansion handlers.
18
+ * `null` means the handler doesn't apply to this case.
19
+ */
20
+ export type UnquotedExpansionResult = {
21
+ values: string[];
22
+ quoted: boolean;
23
+ } | null;
24
+ /**
25
+ * Type for expandPart function reference
26
+ */
27
+ export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
28
+ /**
29
+ * Type for expandWordPartsAsync function reference
30
+ */
31
+ export type ExpandWordPartsAsyncFn = (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
32
+ /**
33
+ * Type for evaluateArithmetic function
34
+ */
35
+ export type EvaluateArithmeticFn = (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
36
+ /**
37
+ * Handle unquoted ${array[@]/pattern/replacement} - apply to each element
38
+ * This handles ${array[@]/#/prefix} (prepend) and ${array[@]/%/suffix} (append)
39
+ */
40
+ export declare function handleUnquotedArrayPatternReplacement(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
41
+ /**
42
+ * Handle unquoted ${array[@]#pattern} - apply pattern removal to each element
43
+ * This handles ${array[@]#pattern} (strip shortest prefix), ${array[@]##pattern} (strip longest prefix)
44
+ * ${array[@]%pattern} (strip shortest suffix), ${array[@]%%pattern} (strip longest suffix)
45
+ */
46
+ export declare function handleUnquotedArrayPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
47
+ /**
48
+ * Handle unquoted ${@#pattern} and ${*#pattern} - apply pattern removal to each positional parameter
49
+ * This handles ${@#pattern} (strip shortest prefix), ${@##pattern} (strip longest prefix)
50
+ * ${@%pattern} (strip shortest suffix), ${@%%pattern} (strip longest suffix)
51
+ */
52
+ export declare function handleUnquotedPositionalPatternRemoval(ctx: InterpreterContext, wordParts: WordPart[], expandWordPartsAsync: ExpandWordPartsAsyncFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
53
+ /**
54
+ * Handle unquoted ${@:offset} and ${*:offset} (with potential prefix/suffix)
55
+ */
56
+ export declare function handleUnquotedPositionalSlicing(ctx: InterpreterContext, wordParts: WordPart[], evaluateArithmetic: EvaluateArithmeticFn, expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
57
+ /**
58
+ * Handle unquoted $@ and $* (simple, without operations)
59
+ */
60
+ export declare function handleUnquotedSimplePositional(ctx: InterpreterContext, wordParts: WordPart[]): Promise<UnquotedExpansionResult>;
61
+ /**
62
+ * Handle unquoted ${arr[@]} and ${arr[*]} (without operations)
63
+ */
64
+ export declare function handleUnquotedSimpleArray(ctx: InterpreterContext, wordParts: WordPart[]): Promise<UnquotedExpansionResult>;
65
+ /**
66
+ * Handle unquoted ${!prefix@} and ${!prefix*} (variable name prefix expansion)
67
+ */
68
+ export declare function handleUnquotedVarNamePrefix(ctx: InterpreterContext, wordParts: WordPart[]): UnquotedExpansionResult;
69
+ /**
70
+ * Handle unquoted ${!arr[@]} and ${!arr[*]} (array keys/indices expansion)
71
+ */
72
+ export declare function handleUnquotedArrayKeys(ctx: InterpreterContext, wordParts: WordPart[]): UnquotedExpansionResult;
73
+ /**
74
+ * Handle unquoted $@ or $* with prefix/suffix (e.g., =$@= or =$*=)
75
+ */
76
+ export declare function handleUnquotedPositionalWithPrefixSuffix(ctx: InterpreterContext, wordParts: WordPart[], expandPart: ExpandPartFn): Promise<UnquotedExpansionResult>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Variable Attributes
3
+ *
4
+ * Functions for getting variable attributes (${var@a} transformation).
5
+ */
6
+ import type { InterpreterContext } from "../types.js";
7
+ /**
8
+ * Get the attributes of a variable for ${var@a} transformation.
9
+ * Returns a string with attribute flags (e.g., "ar" for readonly array).
10
+ *
11
+ * Attribute flags (in order):
12
+ * - a: indexed array
13
+ * - A: associative array
14
+ * - i: integer
15
+ * - n: nameref
16
+ * - r: readonly
17
+ * - x: exported
18
+ */
19
+ export declare function getVariableAttributes(ctx: InterpreterContext, name: string): string;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Variable Access
3
+ *
4
+ * Handles variable value retrieval, including:
5
+ * - Special variables ($?, $$, $#, $@, $*, $0)
6
+ * - Array access (${arr[0]}, ${arr[@]}, ${arr[*]})
7
+ * - Positional parameters ($1, $2, ...)
8
+ * - Regular variables
9
+ * - Nameref resolution
10
+ */
11
+ import type { InterpreterContext } from "../types.js";
12
+ /**
13
+ * Get all elements of an array stored as arrayName_0, arrayName_1, etc.
14
+ * Returns an array of [index/key, value] tuples, sorted by index/key.
15
+ * For associative arrays, uses string keys.
16
+ * Special arrays FUNCNAME, BASH_LINENO, and BASH_SOURCE are handled dynamically from call stack.
17
+ */
18
+ export declare function getArrayElements(ctx: InterpreterContext, arrayName: string): Array<[number | string, string]>;
19
+ /**
20
+ * Check if a variable is an array (has elements stored as name_0, name_1, etc.)
21
+ */
22
+ export declare function isArray(ctx: InterpreterContext, name: string): boolean;
23
+ /**
24
+ * Get the value of a variable, optionally checking nounset.
25
+ * @param ctx - The interpreter context
26
+ * @param name - The variable name
27
+ * @param checkNounset - Whether to check for nounset (default true)
28
+ */
29
+ export declare function getVariable(ctx: InterpreterContext, name: string, checkNounset?: boolean, _insideDoubleQuotes?: boolean): Promise<string>;
30
+ /**
31
+ * Check if a variable is set (exists in the environment).
32
+ * Properly handles array subscripts (e.g., arr[0] -> arr_0).
33
+ * @param ctx - The interpreter context
34
+ * @param name - The variable name (possibly with array subscript)
35
+ */
36
+ export declare function isVariableSet(ctx: InterpreterContext, name: string): Promise<boolean>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Word Expansion with Glob Handling
3
+ *
4
+ * Handles the main word expansion flow including:
5
+ * - Brace expansion
6
+ * - Array and positional parameter expansion
7
+ * - Word splitting
8
+ * - Glob/pathname expansion
9
+ */
10
+ import type { ArithExpr, ParameterExpansionPart, WordNode, WordPart } from "../../ast/types.js";
11
+ import type { InterpreterContext } from "../types.js";
12
+ /**
13
+ * Dependencies injected to avoid circular imports
14
+ */
15
+ export interface WordGlobExpansionDeps {
16
+ expandWordAsync: (ctx: InterpreterContext, word: WordNode) => Promise<string>;
17
+ expandWordForGlobbing: (ctx: InterpreterContext, word: WordNode) => Promise<string>;
18
+ expandWordWithBracesAsync: (ctx: InterpreterContext, word: WordNode) => Promise<string[] | null>;
19
+ expandWordPartsAsync: (ctx: InterpreterContext, parts: WordPart[]) => Promise<string>;
20
+ expandPart: (ctx: InterpreterContext, part: WordPart, inDoubleQuotes?: boolean) => Promise<string>;
21
+ expandParameterAsync: (ctx: InterpreterContext, part: ParameterExpansionPart, inDoubleQuotes?: boolean) => Promise<string>;
22
+ hasBraceExpansion: (parts: WordPart[]) => boolean;
23
+ evaluateArithmetic: (ctx: InterpreterContext, expr: ArithExpr, isExpansionContext?: boolean) => Promise<number>;
24
+ buildIfsCharClassPattern: (ifsChars: string) => string;
25
+ smartWordSplit: (ctx: InterpreterContext, wordParts: WordPart[], ifsChars: string, ifsPattern: string, expandPart: (ctx: InterpreterContext, part: WordPart) => Promise<string>) => Promise<string[]>;
26
+ }
27
+ /**
28
+ * Main word expansion function that handles all expansion types and glob matching.
29
+ */
30
+ export declare function expandWordWithGlobImpl(ctx: InterpreterContext, word: WordNode, deps: WordGlobExpansionDeps): Promise<{
31
+ values: string[];
32
+ quoted: boolean;
33
+ }>;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Word Splitting
3
+ *
4
+ * IFS-based word splitting for unquoted expansions.
5
+ */
6
+ import type { WordPart } from "../../ast/types.js";
7
+ import type { InterpreterContext } from "../types.js";
8
+ /**
9
+ * Type for the expandPart function that will be injected
10
+ */
11
+ export type ExpandPartFn = (ctx: InterpreterContext, part: WordPart) => Promise<string>;
12
+ /**
13
+ * Smart word splitting for words containing expansions.
14
+ *
15
+ * In bash, word splitting respects quoted parts. When you have:
16
+ * - $a"$b" where a="1 2" and b="3 4"
17
+ * - The unquoted $a gets split by IFS: "1 2" -> ["1", "2"]
18
+ * - The quoted "$b" does NOT get split, it joins with the last field from $a
19
+ * - Result: ["1", "23 4"] (the "2" joins with "3 4")
20
+ *
21
+ * This differs from pure literal words which are never IFS-split.
22
+ *
23
+ * @param ctx - Interpreter context
24
+ * @param wordParts - Word parts to expand and split
25
+ * @param ifsChars - IFS characters for proper whitespace/non-whitespace handling
26
+ * @param ifsPattern - Regex-escaped IFS pattern for checking if splitting is needed
27
+ * @param expandPartFn - Function to expand individual parts (injected to avoid circular deps)
28
+ */
29
+ export declare function smartWordSplit(ctx: InterpreterContext, wordParts: WordPart[], ifsChars: string, _ifsPattern: string, expandPartFn: ExpandPartFn): Promise<string[]>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Word Expansion
3
+ *
4
+ * Handles shell word expansion including:
5
+ * - Variable expansion ($VAR, ${VAR})
6
+ * - Command substitution $(...)
7
+ * - Arithmetic expansion $((...))
8
+ * - Tilde expansion (~)
9
+ * - Brace expansion {a,b,c}
10
+ * - Glob expansion (*, ?, [...])
11
+ */
12
+ import type { WordNode } from "../ast/types.js";
13
+ import type { InterpreterContext } from "./types.js";
14
+ export { escapeGlobChars, escapeRegexChars } from "./expansion/glob-escape.js";
15
+ export { getArrayElements, getVariable, isArray, } from "./expansion/variable.js";
16
+ /**
17
+ * Check if an entire word is fully quoted
18
+ */
19
+ export declare function isWordFullyQuoted(word: WordNode): boolean;
20
+ export declare function expandWord(ctx: InterpreterContext, word: WordNode): Promise<string>;
21
+ /**
22
+ * Expand a word for use as a regex pattern (in [[ =~ ]]).
23
+ * Preserves backslash escapes so they're passed to the regex engine.
24
+ * For example, \[\] becomes \[\] in the regex (matching literal [ and ]).
25
+ */
26
+ export declare function expandWordForRegex(ctx: InterpreterContext, word: WordNode): Promise<string>;
27
+ /**
28
+ * Expand a word for use as a pattern (e.g., in [[ == ]] or case).
29
+ * Preserves backslash escapes for pattern metacharacters so they're treated literally.
30
+ * This prevents `*\(\)` from being interpreted as an extglob pattern.
31
+ */
32
+ export declare function expandWordForPattern(ctx: InterpreterContext, word: WordNode): Promise<string>;
33
+ export declare function expandWordWithGlob(ctx: InterpreterContext, word: WordNode): Promise<{
34
+ values: string[];
35
+ quoted: boolean;
36
+ }>;
37
+ export declare function hasQuotedMultiValueAt(ctx: InterpreterContext, word: WordNode): boolean;
38
+ /**
39
+ * Expand a redirect target with glob handling.
40
+ *
41
+ * For redirects:
42
+ * - If glob matches 0 files with failglob → error (returns { error: ... })
43
+ * - If glob matches 0 files without failglob → use literal pattern
44
+ * - If glob matches 1 file → use that file
45
+ * - If glob matches 2+ files → "ambiguous redirect" error
46
+ *
47
+ * Returns { target: string } on success or { error: string } on failure.
48
+ */
49
+ export declare function expandRedirectTarget(ctx: InterpreterContext, word: WordNode): Promise<{
50
+ target: string;
51
+ } | {
52
+ error: string;
53
+ }>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Function Handling
3
+ *
4
+ * Handles shell function definition and invocation:
5
+ * - Function definition (adding to function table)
6
+ * - Function calls (with positional parameters and local scopes)
7
+ */
8
+ import type { FunctionDefNode } from "../ast/types.js";
9
+ import type { ExecResult } from "../types.js";
10
+ import type { InterpreterContext } from "./types.js";
11
+ export declare function executeFunctionDef(ctx: InterpreterContext, node: FunctionDefNode): ExecResult;
12
+ export declare function callFunction(ctx: InterpreterContext, func: FunctionDefNode, args: string[], stdin?: string, callLine?: number): Promise<ExecResult>;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Array helper functions for the interpreter.
3
+ */
4
+ import type { WordNode } from "../../ast/types.js";
5
+ import type { InterpreterContext } from "../types.js";
6
+ /**
7
+ * Get all indices of an array, sorted in ascending order.
8
+ * Arrays are stored as `name_0`, `name_1`, etc. in the environment.
9
+ */
10
+ export declare function getArrayIndices(ctx: InterpreterContext, arrayName: string): number[];
11
+ /**
12
+ * Clear all elements of an array from the environment.
13
+ */
14
+ export declare function clearArray(ctx: InterpreterContext, arrayName: string): void;
15
+ /**
16
+ * Get all keys of an associative array.
17
+ * For associative arrays, keys are stored as `name_key` where key is a string.
18
+ */
19
+ export declare function getAssocArrayKeys(ctx: InterpreterContext, arrayName: string): string[];
20
+ /**
21
+ * Remove surrounding quotes from a key string.
22
+ * Handles 'key' and "key" → key
23
+ */
24
+ export declare function unquoteKey(key: string): string;
25
+ /**
26
+ * Parse a keyed array element from an AST WordNode like [key]=value or [key]+=value.
27
+ * Returns { key, valueParts, append } where valueParts are the AST parts for the value.
28
+ * Returns null if not a keyed element pattern.
29
+ *
30
+ * This is used to properly expand variables in the value part of keyed elements.
31
+ */
32
+ export interface ParsedKeyedElement {
33
+ key: string;
34
+ valueParts: WordNode["parts"];
35
+ append: boolean;
36
+ }
37
+ export declare function parseKeyedElementFromWord(word: WordNode): ParsedKeyedElement | null;
38
+ /**
39
+ * Extract literal string content from a Word node (without expansion).
40
+ * This is used for parsing associative array element syntax like [key]=value
41
+ * where the [key] part may be parsed as a Glob.
42
+ */
43
+ export declare function wordToLiteralString(word: WordNode): string;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Condition execution helper for the interpreter.
3
+ *
4
+ * Handles executing condition statements with proper inCondition state management.
5
+ * Used by if, while, and until loops.
6
+ */
7
+ import type { StatementNode } from "../../ast/types.js";
8
+ import type { InterpreterContext } from "../types.js";
9
+ export interface ConditionResult {
10
+ stdout: string;
11
+ stderr: string;
12
+ exitCode: number;
13
+ }
14
+ /**
15
+ * Execute condition statements with inCondition flag set.
16
+ * This prevents errexit from triggering during condition evaluation.
17
+ *
18
+ * @param ctx - Interpreter context
19
+ * @param statements - Condition statements to execute
20
+ * @returns Accumulated stdout, stderr, and final exit code
21
+ */
22
+ export declare function executeCondition(ctx: InterpreterContext, statements: StatementNode[]): Promise<ConditionResult>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Error helper functions for the interpreter.
3
+ */
4
+ /**
5
+ * Extract message from an unknown error value.
6
+ * Handles both Error instances and other thrown values.
7
+ */
8
+ export declare function getErrorMessage(error: unknown): string;
@@ -0,0 +1,33 @@
1
+ import type { InterpreterContext } from "../types.js";
2
+ /**
3
+ * File test operators supported by bash
4
+ * Unary operators that test file properties
5
+ */
6
+ declare const FILE_TEST_OPERATORS: readonly ["-e", "-a", "-f", "-d", "-r", "-w", "-x", "-s", "-L", "-h", "-k", "-g", "-u", "-G", "-O", "-b", "-c", "-p", "-S", "-t", "-N"];
7
+ export type FileTestOperator = (typeof FILE_TEST_OPERATORS)[number];
8
+ export declare function isFileTestOperator(op: string): op is FileTestOperator;
9
+ /**
10
+ * Evaluates a file test operator (-e, -f, -d, etc.) against a path.
11
+ * Returns a boolean result.
12
+ *
13
+ * @param ctx - Interpreter context with filesystem access
14
+ * @param operator - The file test operator (e.g., "-f", "-d", "-e")
15
+ * @param operand - The path to test (will be resolved relative to cwd)
16
+ */
17
+ export declare function evaluateFileTest(ctx: InterpreterContext, operator: string, operand: string): Promise<boolean>;
18
+ /**
19
+ * Binary file test operators for comparing two files
20
+ */
21
+ declare const BINARY_FILE_TEST_OPERATORS: readonly ["-nt", "-ot", "-ef"];
22
+ export type BinaryFileTestOperator = (typeof BINARY_FILE_TEST_OPERATORS)[number];
23
+ export declare function isBinaryFileTestOperator(op: string): op is BinaryFileTestOperator;
24
+ /**
25
+ * Evaluates a binary file test operator (-nt, -ot, -ef) comparing two files.
26
+ *
27
+ * @param ctx - Interpreter context with filesystem access
28
+ * @param operator - The operator (-nt, -ot, -ef)
29
+ * @param left - Left operand (file path)
30
+ * @param right - Right operand (file path)
31
+ */
32
+ export declare function evaluateBinaryFileTest(ctx: InterpreterContext, operator: string, left: string, right: string): Promise<boolean>;
33
+ export {};
@@ -0,0 +1,104 @@
1
+ /**
2
+ * IFS (Internal Field Separator) Handling
3
+ *
4
+ * Centralized utilities for IFS-based word splitting used by:
5
+ * - Word expansion (unquoted variable expansion)
6
+ * - read builtin
7
+ * - ${!prefix*} and ${!arr[*]} expansions
8
+ */
9
+ /**
10
+ * Get the effective IFS value from environment.
11
+ * Returns DEFAULT_IFS if IFS is undefined, or the actual value (including empty string).
12
+ */
13
+ export declare function getIfs(env: Map<string, string>): string;
14
+ /**
15
+ * Check if IFS is set to empty string (disables word splitting).
16
+ */
17
+ export declare function isIfsEmpty(env: Map<string, string>): boolean;
18
+ /**
19
+ * Check if IFS contains only whitespace characters (space, tab, newline).
20
+ * This affects how empty fields are handled in $@ and $* expansion.
21
+ * When IFS has non-whitespace chars, empty params are preserved.
22
+ * When IFS has only whitespace, empty params are dropped.
23
+ */
24
+ export declare function isIfsWhitespaceOnly(env: Map<string, string>): boolean;
25
+ /**
26
+ * Build a regex-safe pattern from IFS characters for use in character classes.
27
+ * E.g., for IFS=" \t\n", returns " \\t\\n" (escaped for [pattern] use)
28
+ */
29
+ export declare function buildIfsCharClassPattern(ifs: string): string;
30
+ /**
31
+ * Get the first character of IFS (used for joining with $* and ${!prefix*}).
32
+ * Returns space if IFS is undefined, empty string if IFS is empty.
33
+ */
34
+ export declare function getIfsSeparator(env: Map<string, string>): string;
35
+ /**
36
+ * Advanced IFS splitting for the read builtin with proper whitespace/non-whitespace handling.
37
+ *
38
+ * IFS has two types of characters:
39
+ * - Whitespace (space, tab, newline): Multiple consecutive ones are collapsed,
40
+ * leading/trailing are stripped
41
+ * - Non-whitespace (like 'x', ':'): Create empty fields when consecutive,
42
+ * trailing ones preserved (except the final delimiter)
43
+ *
44
+ * @param value - String to split
45
+ * @param ifs - IFS characters to split on
46
+ * @param maxSplit - Maximum number of splits (for read with multiple vars, the last gets the rest)
47
+ * @param raw - If true, backslash escaping is disabled (like read -r)
48
+ * @returns Object with words array and wordStarts array
49
+ */
50
+ export declare function splitByIfsForRead(value: string, ifs: string, maxSplit?: number, raw?: boolean): {
51
+ words: string[];
52
+ wordStarts: number[];
53
+ };
54
+ /**
55
+ * IFS splitting for word expansion (unquoted $VAR, $*, etc.).
56
+ *
57
+ * Key differences from splitByIfsForRead:
58
+ * - Trailing non-whitespace delimiter does NOT create an empty field
59
+ * - No maxSplit concept (always splits fully)
60
+ * - No backslash escape handling
61
+ *
62
+ * @param value - String to split
63
+ * @param ifs - IFS characters to split on
64
+ * @returns Array of words after splitting
65
+ */
66
+ /**
67
+ * Result of splitByIfsForExpansionEx with leading/trailing delimiter info.
68
+ */
69
+ export interface IfsExpansionSplitResult {
70
+ words: string[];
71
+ /** True if the value started with an IFS whitespace delimiter (affects joining with preceding text) */
72
+ hadLeadingDelimiter: boolean;
73
+ /** True if the value ended with an IFS delimiter (affects joining with subsequent text) */
74
+ hadTrailingDelimiter: boolean;
75
+ }
76
+ /**
77
+ * Extended IFS splitting that tracks trailing delimiters.
78
+ * This is needed for proper word boundary handling when literal text follows an expansion.
79
+ * For example, in `-$x-` where `x='a b c '`, the trailing space means the final `-`
80
+ * should become a separate word, not join with `c`.
81
+ */
82
+ export declare function splitByIfsForExpansionEx(value: string, ifs: string): IfsExpansionSplitResult;
83
+ export declare function splitByIfsForExpansion(value: string, ifs: string): string[];
84
+ /**
85
+ * Strip trailing IFS from the last variable in read builtin.
86
+ *
87
+ * Bash behavior:
88
+ * 1. Strip trailing IFS whitespace characters (but NOT if they're escaped by backslash)
89
+ * 2. If there's a single trailing IFS non-whitespace character, strip it ONLY IF
90
+ * there are no other non-ws IFS chars in the content (excluding the trailing one)
91
+ *
92
+ * Examples with IFS="x ":
93
+ * - "ax " -> "a" (trailing spaces stripped, then trailing single x stripped because no other x)
94
+ * - "ax" -> "a" (trailing single x stripped because no other x in remaining content)
95
+ * - "axx" -> "axx" (two trailing x's, so don't strip - there's another x)
96
+ * - "ax x" -> "ax x" (trailing x NOT stripped because there's an x earlier)
97
+ * - "bx" -> "b" (trailing x stripped, no other x)
98
+ * - "a\ " -> "a " (backslash-escaped space is NOT stripped)
99
+ *
100
+ * @param value - String to strip (raw, before backslash processing)
101
+ * @param ifs - IFS characters
102
+ * @param raw - If true, backslash escaping is disabled
103
+ */
104
+ export declare function stripTrailingIfsWhitespace(value: string, ifs: string, raw?: boolean): string;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Loop Error Handling Helpers
3
+ *
4
+ * Consolidates the repeated error handling logic used in all loop constructs
5
+ * (for, c-style for, while, until).
6
+ */
7
+ export type LoopAction = "break" | "continue" | "rethrow" | "error";
8
+ export interface LoopErrorResult {
9
+ action: LoopAction;
10
+ stdout: string;
11
+ stderr: string;
12
+ exitCode?: number;
13
+ error?: unknown;
14
+ }
15
+ /**
16
+ * Handle errors thrown during loop body execution.
17
+ *
18
+ * @param error - The caught error
19
+ * @param stdout - Current accumulated stdout
20
+ * @param stderr - Current accumulated stderr
21
+ * @param loopDepth - Current loop nesting depth from ctx.state.loopDepth
22
+ * @returns Result indicating what action the loop should take
23
+ */
24
+ export declare function handleLoopError(error: unknown, stdout: string, stderr: string, loopDepth: number): LoopErrorResult;