@eidos.space/just-bash 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (899) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +201 -0
  3. package/README.md +609 -0
  4. package/dist/AGENTS.md +325 -0
  5. package/dist/Bash.d.ts +257 -0
  6. package/dist/ast/types.d.ts +609 -0
  7. package/dist/banned-patterns-test.d.ts +1 -0
  8. package/dist/bin/chunks/alias-YRVAW27Y.js +3 -0
  9. package/dist/bin/chunks/awk2-RLMNTGI7.js +3 -0
  10. package/dist/bin/chunks/base64-RZRLGMB3.js +3 -0
  11. package/dist/bin/chunks/basename-F3AQ4KAQ.js +3 -0
  12. package/dist/bin/chunks/bash-CLP24TE2.js +3 -0
  13. package/dist/bin/chunks/cat-LQH5FSAR.js +3 -0
  14. package/dist/bin/chunks/chmod-S564JCJW.js +3 -0
  15. package/dist/bin/chunks/chunk-22HCD466.js +3 -0
  16. package/dist/bin/chunks/chunk-2AIXTPH2.js +9 -0
  17. package/dist/bin/chunks/chunk-2ETT4ELS.js +4 -0
  18. package/dist/bin/chunks/chunk-2GG3NVC4.js +10 -0
  19. package/dist/bin/chunks/chunk-2NRAWO6E.js +7 -0
  20. package/dist/bin/chunks/chunk-2SVX7I5P.js +14 -0
  21. package/dist/bin/chunks/chunk-3BYTCO2H.js +12 -0
  22. package/dist/bin/chunks/chunk-3MRB66F4.js +3 -0
  23. package/dist/bin/chunks/chunk-3UKQXBQ3.js +6 -0
  24. package/dist/bin/chunks/chunk-3WIMLJM7.js +8 -0
  25. package/dist/bin/chunks/chunk-47WZ2U6M.js +9 -0
  26. package/dist/bin/chunks/chunk-4KSZJAQK.js +6 -0
  27. package/dist/bin/chunks/chunk-5XSZHUEI.js +15 -0
  28. package/dist/bin/chunks/chunk-6FSBHK6H.js +22 -0
  29. package/dist/bin/chunks/chunk-6WJQNLR2.js +7 -0
  30. package/dist/bin/chunks/chunk-77MLOOQS.js +11 -0
  31. package/dist/bin/chunks/chunk-7AYT3UKI.js +6 -0
  32. package/dist/bin/chunks/chunk-7JZKVC3F.js +2 -0
  33. package/dist/bin/chunks/chunk-7NC4CPHS.js +20 -0
  34. package/dist/bin/chunks/chunk-7UU7KPEM.js +7 -0
  35. package/dist/bin/chunks/chunk-7VCQWCSH.js +15 -0
  36. package/dist/bin/chunks/chunk-AGKL4LDL.js +4 -0
  37. package/dist/bin/chunks/chunk-AJF3OBTR.js +4 -0
  38. package/dist/bin/chunks/chunk-ALVEEXFD.js +19 -0
  39. package/dist/bin/chunks/chunk-B2DRBHGQ.js +3 -0
  40. package/dist/bin/chunks/chunk-BE4PARL3.js +13 -0
  41. package/dist/bin/chunks/chunk-BGX3RW7H.js +10 -0
  42. package/dist/bin/chunks/chunk-BIJXTWZ4.js +3 -0
  43. package/dist/bin/chunks/chunk-BPZJYOUA.js +33 -0
  44. package/dist/bin/chunks/chunk-BZP56QBM.js +24 -0
  45. package/dist/bin/chunks/chunk-C7ISPH7Y.js +18 -0
  46. package/dist/bin/chunks/chunk-CAZ75E7E.js +3 -0
  47. package/dist/bin/chunks/chunk-D6CPXGKK.js +75 -0
  48. package/dist/bin/chunks/chunk-DJAX3ZRG.js +8 -0
  49. package/dist/bin/chunks/chunk-DYIBFLS3.js +17 -0
  50. package/dist/bin/chunks/chunk-EDTBGO7F.js +37 -0
  51. package/dist/bin/chunks/chunk-F3GKANW3.js +12 -0
  52. package/dist/bin/chunks/chunk-F3WNDKOC.js +3 -0
  53. package/dist/bin/chunks/chunk-FKVQZWJQ.js +10 -0
  54. package/dist/bin/chunks/chunk-FOUVACI7.js +16 -0
  55. package/dist/bin/chunks/chunk-FVRXEJYQ.js +141 -0
  56. package/dist/bin/chunks/chunk-G4AUMZUY.js +4 -0
  57. package/dist/bin/chunks/chunk-H7JTIXAO.js +4 -0
  58. package/dist/bin/chunks/chunk-HL4ZS7TX.js +6 -0
  59. package/dist/bin/chunks/chunk-HN2DCT7T.js +13 -0
  60. package/dist/bin/chunks/chunk-I4IRHQDW.js +3 -0
  61. package/dist/bin/chunks/chunk-IEXQTXU5.js +34 -0
  62. package/dist/bin/chunks/chunk-IZGLHVBB.js +8 -0
  63. package/dist/bin/chunks/chunk-J7TUF2VI.js +9 -0
  64. package/dist/bin/chunks/chunk-JNUX75OX.js +85 -0
  65. package/dist/bin/chunks/chunk-JXLDT4KX.js +4 -0
  66. package/dist/bin/chunks/chunk-JZW7NFK2.js +288 -0
  67. package/dist/bin/chunks/chunk-KFMPGSUT.js +9 -0
  68. package/dist/bin/chunks/chunk-KI54R2QB.js +3 -0
  69. package/dist/bin/chunks/chunk-KRRM5UCC.js +3 -0
  70. package/dist/bin/chunks/chunk-KUMHQGUR.js +3 -0
  71. package/dist/bin/chunks/chunk-L24QXM5S.js +34 -0
  72. package/dist/bin/chunks/chunk-LAHBP3FW.js +11 -0
  73. package/dist/bin/chunks/chunk-LC6D27QJ.js +3 -0
  74. package/dist/bin/chunks/chunk-LNNWMRCB.js +3 -0
  75. package/dist/bin/chunks/chunk-LNVSXNT7.js +3 -0
  76. package/dist/bin/chunks/chunk-LSQTB2QK.js +7 -0
  77. package/dist/bin/chunks/chunk-M65CQLJE.js +101 -0
  78. package/dist/bin/chunks/chunk-MLUOPG3W.js +3 -0
  79. package/dist/bin/chunks/chunk-MNWK4UIM.js +22 -0
  80. package/dist/bin/chunks/chunk-MROECM42.js +3 -0
  81. package/dist/bin/chunks/chunk-MUFNRCMY.js +24 -0
  82. package/dist/bin/chunks/chunk-N6YW4W3Z.js +29 -0
  83. package/dist/bin/chunks/chunk-NE4R2FVV.js +5 -0
  84. package/dist/bin/chunks/chunk-NXVG64T3.js +22 -0
  85. package/dist/bin/chunks/chunk-NYIPFY36.js +3 -0
  86. package/dist/bin/chunks/chunk-O2BCKSMK.js +3 -0
  87. package/dist/bin/chunks/chunk-OLEQNRKX.js +8 -0
  88. package/dist/bin/chunks/chunk-OPMLWMNH.js +17 -0
  89. package/dist/bin/chunks/chunk-PAYQNSZN.js +18 -0
  90. package/dist/bin/chunks/chunk-PBOVSFTJ.js +3 -0
  91. package/dist/bin/chunks/chunk-PXP4YYZA.js +13 -0
  92. package/dist/bin/chunks/chunk-PZQVSQX6.js +4 -0
  93. package/dist/bin/chunks/chunk-Q2GOPGDA.js +6 -0
  94. package/dist/bin/chunks/chunk-Q4UMTSRO.js +15 -0
  95. package/dist/bin/chunks/chunk-QL33F2W6.js +8 -0
  96. package/dist/bin/chunks/chunk-RVPTAYDS.js +4 -0
  97. package/dist/bin/chunks/chunk-SMSELHIY.js +12 -0
  98. package/dist/bin/chunks/chunk-UGJM7CKP.js +17 -0
  99. package/dist/bin/chunks/chunk-UO5LOD7U.js +12 -0
  100. package/dist/bin/chunks/chunk-UOMNSQEZ.js +10 -0
  101. package/dist/bin/chunks/chunk-UR4CEP4Y.js +3 -0
  102. package/dist/bin/chunks/chunk-V2RP73X4.js +15 -0
  103. package/dist/bin/chunks/chunk-VBDLSL7Y.js +10 -0
  104. package/dist/bin/chunks/chunk-VZK4FHWJ.js +3 -0
  105. package/dist/bin/chunks/chunk-WDWNEHHE.js +9 -0
  106. package/dist/bin/chunks/chunk-X4MX6EHF.js +6 -0
  107. package/dist/bin/chunks/chunk-XBB73LFB.js +5 -0
  108. package/dist/bin/chunks/chunk-XFFUAO3F.js +3 -0
  109. package/dist/bin/chunks/chunk-XHCCSVP6.js +9 -0
  110. package/dist/bin/chunks/chunk-XJ37N3S5.js +7 -0
  111. package/dist/bin/chunks/chunk-XPTYN6UE.js +8 -0
  112. package/dist/bin/chunks/chunk-XRUDFQG5.js +7 -0
  113. package/dist/bin/chunks/chunk-Y4FPH5DQ.js +64 -0
  114. package/dist/bin/chunks/chunk-YJ5OCPSK.js +7 -0
  115. package/dist/bin/chunks/chunk-YOIFOOGX.js +9 -0
  116. package/dist/bin/chunks/chunk-YOKQNNQO.js +6 -0
  117. package/dist/bin/chunks/chunk-YUZRUF5F.js +10 -0
  118. package/dist/bin/chunks/chunk-YY5PJR7O.js +7 -0
  119. package/dist/bin/chunks/chunk-ZFUVUYWG.js +15 -0
  120. package/dist/bin/chunks/clear-FGNEKYDU.js +3 -0
  121. package/dist/bin/chunks/column-AQB3A3PJ.js +3 -0
  122. package/dist/bin/chunks/comm-Q4VDF6ZO.js +3 -0
  123. package/dist/bin/chunks/cp-HYXTMN3D.js +3 -0
  124. package/dist/bin/chunks/curl-PLHETP4J.js +27 -0
  125. package/dist/bin/chunks/cut-ZI2HIAW7.js +3 -0
  126. package/dist/bin/chunks/date-JEZYSA4F.js +3 -0
  127. package/dist/bin/chunks/diff-YDJ42RKS.js +3 -0
  128. package/dist/bin/chunks/dirname-VCINTLPD.js +3 -0
  129. package/dist/bin/chunks/du-4LRQIGRG.js +3 -0
  130. package/dist/bin/chunks/echo-KCOHTNDF.js +3 -0
  131. package/dist/bin/chunks/env-NY32PQJM.js +3 -0
  132. package/dist/bin/chunks/expand-YYSO35NS.js +3 -0
  133. package/dist/bin/chunks/expansion-PPP6PD75.js +3 -0
  134. package/dist/bin/chunks/expr-7PLWSWZI.js +3 -0
  135. package/dist/bin/chunks/file-GRZLWDVH.js +3 -0
  136. package/dist/bin/chunks/find-P4DOE7CE.js +3 -0
  137. package/dist/bin/chunks/flag-coverage-RFKIBJ6L.js +3 -0
  138. package/dist/bin/chunks/fold-5MF7QZWQ.js +3 -0
  139. package/dist/bin/chunks/grep-VAYCFO4O.js +3 -0
  140. package/dist/bin/chunks/gzip-UGBQQKIH.js +3 -0
  141. package/dist/bin/chunks/head-QNC2ZYDO.js +3 -0
  142. package/dist/bin/chunks/help-CGUEOGXQ.js +3 -0
  143. package/dist/bin/chunks/history-AQQWW3QB.js +3 -0
  144. package/dist/bin/chunks/hostname-USNWOQCK.js +3 -0
  145. package/dist/bin/chunks/html-to-markdown-QEFY7XQR.js +3 -0
  146. package/dist/bin/chunks/join-EJ73DYTK.js +3 -0
  147. package/dist/bin/chunks/jq-GGTKKMEN.js +3 -0
  148. package/dist/bin/chunks/js-exec-BC6NI55L.js +98 -0
  149. package/dist/bin/chunks/js-exec-worker.js +4443 -0
  150. package/dist/bin/chunks/ln-LP4HMCSM.js +3 -0
  151. package/dist/bin/chunks/ls-KBNHNZWQ.js +3 -0
  152. package/dist/bin/chunks/md5sum-MCVDIB35.js +3 -0
  153. package/dist/bin/chunks/mkdir-P4DKRCDX.js +3 -0
  154. package/dist/bin/chunks/mv-QQK4FQX6.js +3 -0
  155. package/dist/bin/chunks/nl-KUPLVCTS.js +3 -0
  156. package/dist/bin/chunks/od-YQ5ZUI2H.js +3 -0
  157. package/dist/bin/chunks/paste-A5KKPWXX.js +3 -0
  158. package/dist/bin/chunks/printf-Z5C2UOI5.js +3 -0
  159. package/dist/bin/chunks/pwd-FCNDA467.js +3 -0
  160. package/dist/bin/chunks/python3-BQWDPUBM.js +13 -0
  161. package/dist/bin/chunks/readlink-25V57VOL.js +3 -0
  162. package/dist/bin/chunks/rev-PYHOZ4D4.js +3 -0
  163. package/dist/bin/chunks/rg-BGFMSIVK.js +3 -0
  164. package/dist/bin/chunks/rm-ECNUFR66.js +3 -0
  165. package/dist/bin/chunks/rmdir-DLOHIA7Q.js +3 -0
  166. package/dist/bin/chunks/sed-FWA634SN.js +3 -0
  167. package/dist/bin/chunks/seq-UXDJE6FB.js +3 -0
  168. package/dist/bin/chunks/sha1sum-4KF52U3Y.js +3 -0
  169. package/dist/bin/chunks/sha256sum-6YEPULPX.js +3 -0
  170. package/dist/bin/chunks/sleep-QHAPNY3Q.js +3 -0
  171. package/dist/bin/chunks/sort-4C6WOKNK.js +3 -0
  172. package/dist/bin/chunks/split-TV7NL7LA.js +3 -0
  173. package/dist/bin/chunks/sqlite3-W777NCI4.js +3 -0
  174. package/dist/bin/chunks/sqlite3-worker.js +1728 -0
  175. package/dist/bin/chunks/stat-BD6KT3BP.js +3 -0
  176. package/dist/bin/chunks/strings-MDD72LR6.js +3 -0
  177. package/dist/bin/chunks/tac-C2N4NQ6S.js +3 -0
  178. package/dist/bin/chunks/tail-BCB5W6JC.js +3 -0
  179. package/dist/bin/chunks/tar-DOO744MK.js +3 -0
  180. package/dist/bin/chunks/tee-UQHPO4OW.js +3 -0
  181. package/dist/bin/chunks/time-ZPY52VT2.js +3 -0
  182. package/dist/bin/chunks/timeout-5AX3ZS3X.js +3 -0
  183. package/dist/bin/chunks/touch-DFGSVIX7.js +3 -0
  184. package/dist/bin/chunks/tr-G7K6M6HP.js +3 -0
  185. package/dist/bin/chunks/tree-6D7SMPUR.js +3 -0
  186. package/dist/bin/chunks/true-SKL4L7JP.js +3 -0
  187. package/dist/bin/chunks/unexpand-QIR4EDPG.js +3 -0
  188. package/dist/bin/chunks/uniq-I7PVFJR4.js +3 -0
  189. package/dist/bin/chunks/wc-6NGWULAP.js +3 -0
  190. package/dist/bin/chunks/which-LCXKCLFC.js +3 -0
  191. package/dist/bin/chunks/whoami-TZDZDU7T.js +3 -0
  192. package/dist/bin/chunks/worker.js +3150 -0
  193. package/dist/bin/chunks/xan-KX4VPXUN.js +3 -0
  194. package/dist/bin/chunks/xan-view-JXOZLJ7S.js +3 -0
  195. package/dist/bin/chunks/xargs-UWHPYLY7.js +3 -0
  196. package/dist/bin/chunks/yq-GCDCJBKB.js +3 -0
  197. package/dist/bin/just-bash.js +755 -0
  198. package/dist/bin/shell/chunks/alias-YRVAW27Y.js +3 -0
  199. package/dist/bin/shell/chunks/awk2-RLMNTGI7.js +3 -0
  200. package/dist/bin/shell/chunks/base64-RZRLGMB3.js +3 -0
  201. package/dist/bin/shell/chunks/basename-F3AQ4KAQ.js +3 -0
  202. package/dist/bin/shell/chunks/bash-CLP24TE2.js +3 -0
  203. package/dist/bin/shell/chunks/cat-LQH5FSAR.js +3 -0
  204. package/dist/bin/shell/chunks/chmod-S564JCJW.js +3 -0
  205. package/dist/bin/shell/chunks/chunk-22HCD466.js +3 -0
  206. package/dist/bin/shell/chunks/chunk-2AIXTPH2.js +9 -0
  207. package/dist/bin/shell/chunks/chunk-2ETT4ELS.js +4 -0
  208. package/dist/bin/shell/chunks/chunk-2GG3NVC4.js +10 -0
  209. package/dist/bin/shell/chunks/chunk-2NRAWO6E.js +7 -0
  210. package/dist/bin/shell/chunks/chunk-2SVX7I5P.js +14 -0
  211. package/dist/bin/shell/chunks/chunk-3BYTCO2H.js +12 -0
  212. package/dist/bin/shell/chunks/chunk-3MRB66F4.js +3 -0
  213. package/dist/bin/shell/chunks/chunk-3UKQXBQ3.js +6 -0
  214. package/dist/bin/shell/chunks/chunk-3WIMLJM7.js +8 -0
  215. package/dist/bin/shell/chunks/chunk-47WZ2U6M.js +9 -0
  216. package/dist/bin/shell/chunks/chunk-4KSZJAQK.js +6 -0
  217. package/dist/bin/shell/chunks/chunk-5XSZHUEI.js +15 -0
  218. package/dist/bin/shell/chunks/chunk-6FSBHK6H.js +22 -0
  219. package/dist/bin/shell/chunks/chunk-6WJQNLR2.js +7 -0
  220. package/dist/bin/shell/chunks/chunk-77MLOOQS.js +11 -0
  221. package/dist/bin/shell/chunks/chunk-7AYT3UKI.js +6 -0
  222. package/dist/bin/shell/chunks/chunk-7JZKVC3F.js +2 -0
  223. package/dist/bin/shell/chunks/chunk-7NC4CPHS.js +20 -0
  224. package/dist/bin/shell/chunks/chunk-7UU7KPEM.js +7 -0
  225. package/dist/bin/shell/chunks/chunk-7VCQWCSH.js +15 -0
  226. package/dist/bin/shell/chunks/chunk-AGKL4LDL.js +4 -0
  227. package/dist/bin/shell/chunks/chunk-AJF3OBTR.js +4 -0
  228. package/dist/bin/shell/chunks/chunk-ALVEEXFD.js +19 -0
  229. package/dist/bin/shell/chunks/chunk-B2DRBHGQ.js +3 -0
  230. package/dist/bin/shell/chunks/chunk-BE4PARL3.js +13 -0
  231. package/dist/bin/shell/chunks/chunk-BGX3RW7H.js +10 -0
  232. package/dist/bin/shell/chunks/chunk-BIJXTWZ4.js +3 -0
  233. package/dist/bin/shell/chunks/chunk-BPZJYOUA.js +33 -0
  234. package/dist/bin/shell/chunks/chunk-BZP56QBM.js +24 -0
  235. package/dist/bin/shell/chunks/chunk-C7ISPH7Y.js +18 -0
  236. package/dist/bin/shell/chunks/chunk-CAZ75E7E.js +3 -0
  237. package/dist/bin/shell/chunks/chunk-D6CPXGKK.js +75 -0
  238. package/dist/bin/shell/chunks/chunk-DJAX3ZRG.js +8 -0
  239. package/dist/bin/shell/chunks/chunk-DYIBFLS3.js +17 -0
  240. package/dist/bin/shell/chunks/chunk-EDTBGO7F.js +37 -0
  241. package/dist/bin/shell/chunks/chunk-F3GKANW3.js +12 -0
  242. package/dist/bin/shell/chunks/chunk-F3WNDKOC.js +3 -0
  243. package/dist/bin/shell/chunks/chunk-FKVQZWJQ.js +10 -0
  244. package/dist/bin/shell/chunks/chunk-FOUVACI7.js +16 -0
  245. package/dist/bin/shell/chunks/chunk-FVRXEJYQ.js +141 -0
  246. package/dist/bin/shell/chunks/chunk-G4AUMZUY.js +4 -0
  247. package/dist/bin/shell/chunks/chunk-H7JTIXAO.js +4 -0
  248. package/dist/bin/shell/chunks/chunk-HL4ZS7TX.js +6 -0
  249. package/dist/bin/shell/chunks/chunk-HN2DCT7T.js +13 -0
  250. package/dist/bin/shell/chunks/chunk-I4IRHQDW.js +3 -0
  251. package/dist/bin/shell/chunks/chunk-IEXQTXU5.js +34 -0
  252. package/dist/bin/shell/chunks/chunk-IZGLHVBB.js +8 -0
  253. package/dist/bin/shell/chunks/chunk-J7TUF2VI.js +9 -0
  254. package/dist/bin/shell/chunks/chunk-JNUX75OX.js +85 -0
  255. package/dist/bin/shell/chunks/chunk-JXLDT4KX.js +4 -0
  256. package/dist/bin/shell/chunks/chunk-JZW7NFK2.js +288 -0
  257. package/dist/bin/shell/chunks/chunk-KFMPGSUT.js +9 -0
  258. package/dist/bin/shell/chunks/chunk-KI54R2QB.js +3 -0
  259. package/dist/bin/shell/chunks/chunk-KRRM5UCC.js +3 -0
  260. package/dist/bin/shell/chunks/chunk-KUMHQGUR.js +3 -0
  261. package/dist/bin/shell/chunks/chunk-L24QXM5S.js +34 -0
  262. package/dist/bin/shell/chunks/chunk-LAHBP3FW.js +11 -0
  263. package/dist/bin/shell/chunks/chunk-LC6D27QJ.js +3 -0
  264. package/dist/bin/shell/chunks/chunk-LNNWMRCB.js +3 -0
  265. package/dist/bin/shell/chunks/chunk-LNVSXNT7.js +3 -0
  266. package/dist/bin/shell/chunks/chunk-LSQTB2QK.js +7 -0
  267. package/dist/bin/shell/chunks/chunk-M65CQLJE.js +101 -0
  268. package/dist/bin/shell/chunks/chunk-MLUOPG3W.js +3 -0
  269. package/dist/bin/shell/chunks/chunk-MNWK4UIM.js +22 -0
  270. package/dist/bin/shell/chunks/chunk-MROECM42.js +3 -0
  271. package/dist/bin/shell/chunks/chunk-MUFNRCMY.js +24 -0
  272. package/dist/bin/shell/chunks/chunk-N6YW4W3Z.js +29 -0
  273. package/dist/bin/shell/chunks/chunk-NE4R2FVV.js +5 -0
  274. package/dist/bin/shell/chunks/chunk-NXVG64T3.js +22 -0
  275. package/dist/bin/shell/chunks/chunk-NYIPFY36.js +3 -0
  276. package/dist/bin/shell/chunks/chunk-O2BCKSMK.js +3 -0
  277. package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +8 -0
  278. package/dist/bin/shell/chunks/chunk-OPMLWMNH.js +17 -0
  279. package/dist/bin/shell/chunks/chunk-PAYQNSZN.js +18 -0
  280. package/dist/bin/shell/chunks/chunk-PBOVSFTJ.js +3 -0
  281. package/dist/bin/shell/chunks/chunk-PXP4YYZA.js +13 -0
  282. package/dist/bin/shell/chunks/chunk-PZQVSQX6.js +4 -0
  283. package/dist/bin/shell/chunks/chunk-Q2GOPGDA.js +6 -0
  284. package/dist/bin/shell/chunks/chunk-Q4UMTSRO.js +15 -0
  285. package/dist/bin/shell/chunks/chunk-QL33F2W6.js +8 -0
  286. package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +4 -0
  287. package/dist/bin/shell/chunks/chunk-SMSELHIY.js +12 -0
  288. package/dist/bin/shell/chunks/chunk-UGJM7CKP.js +17 -0
  289. package/dist/bin/shell/chunks/chunk-UO5LOD7U.js +12 -0
  290. package/dist/bin/shell/chunks/chunk-UOMNSQEZ.js +10 -0
  291. package/dist/bin/shell/chunks/chunk-UR4CEP4Y.js +3 -0
  292. package/dist/bin/shell/chunks/chunk-V2RP73X4.js +15 -0
  293. package/dist/bin/shell/chunks/chunk-VBDLSL7Y.js +10 -0
  294. package/dist/bin/shell/chunks/chunk-VZK4FHWJ.js +3 -0
  295. package/dist/bin/shell/chunks/chunk-WDWNEHHE.js +9 -0
  296. package/dist/bin/shell/chunks/chunk-X4MX6EHF.js +6 -0
  297. package/dist/bin/shell/chunks/chunk-XBB73LFB.js +5 -0
  298. package/dist/bin/shell/chunks/chunk-XFFUAO3F.js +3 -0
  299. package/dist/bin/shell/chunks/chunk-XHCCSVP6.js +9 -0
  300. package/dist/bin/shell/chunks/chunk-XJ37N3S5.js +7 -0
  301. package/dist/bin/shell/chunks/chunk-XPTYN6UE.js +8 -0
  302. package/dist/bin/shell/chunks/chunk-XRUDFQG5.js +7 -0
  303. package/dist/bin/shell/chunks/chunk-Y4FPH5DQ.js +64 -0
  304. package/dist/bin/shell/chunks/chunk-YJ5OCPSK.js +7 -0
  305. package/dist/bin/shell/chunks/chunk-YOIFOOGX.js +9 -0
  306. package/dist/bin/shell/chunks/chunk-YOKQNNQO.js +6 -0
  307. package/dist/bin/shell/chunks/chunk-YUZRUF5F.js +10 -0
  308. package/dist/bin/shell/chunks/chunk-YY5PJR7O.js +7 -0
  309. package/dist/bin/shell/chunks/chunk-ZFUVUYWG.js +15 -0
  310. package/dist/bin/shell/chunks/clear-FGNEKYDU.js +3 -0
  311. package/dist/bin/shell/chunks/column-AQB3A3PJ.js +3 -0
  312. package/dist/bin/shell/chunks/comm-Q4VDF6ZO.js +3 -0
  313. package/dist/bin/shell/chunks/cp-HYXTMN3D.js +3 -0
  314. package/dist/bin/shell/chunks/curl-PLHETP4J.js +27 -0
  315. package/dist/bin/shell/chunks/cut-ZI2HIAW7.js +3 -0
  316. package/dist/bin/shell/chunks/date-JEZYSA4F.js +3 -0
  317. package/dist/bin/shell/chunks/diff-YDJ42RKS.js +3 -0
  318. package/dist/bin/shell/chunks/dirname-VCINTLPD.js +3 -0
  319. package/dist/bin/shell/chunks/du-4LRQIGRG.js +3 -0
  320. package/dist/bin/shell/chunks/echo-KCOHTNDF.js +3 -0
  321. package/dist/bin/shell/chunks/env-NY32PQJM.js +3 -0
  322. package/dist/bin/shell/chunks/expand-YYSO35NS.js +3 -0
  323. package/dist/bin/shell/chunks/expansion-PPP6PD75.js +3 -0
  324. package/dist/bin/shell/chunks/expr-7PLWSWZI.js +3 -0
  325. package/dist/bin/shell/chunks/file-GRZLWDVH.js +3 -0
  326. package/dist/bin/shell/chunks/find-P4DOE7CE.js +3 -0
  327. package/dist/bin/shell/chunks/flag-coverage-RFKIBJ6L.js +3 -0
  328. package/dist/bin/shell/chunks/fold-5MF7QZWQ.js +3 -0
  329. package/dist/bin/shell/chunks/grep-VAYCFO4O.js +3 -0
  330. package/dist/bin/shell/chunks/gzip-UGBQQKIH.js +3 -0
  331. package/dist/bin/shell/chunks/head-QNC2ZYDO.js +3 -0
  332. package/dist/bin/shell/chunks/help-CGUEOGXQ.js +3 -0
  333. package/dist/bin/shell/chunks/history-AQQWW3QB.js +3 -0
  334. package/dist/bin/shell/chunks/hostname-USNWOQCK.js +3 -0
  335. package/dist/bin/shell/chunks/html-to-markdown-QEFY7XQR.js +3 -0
  336. package/dist/bin/shell/chunks/join-EJ73DYTK.js +3 -0
  337. package/dist/bin/shell/chunks/jq-GGTKKMEN.js +3 -0
  338. package/dist/bin/shell/chunks/js-exec-BC6NI55L.js +98 -0
  339. package/dist/bin/shell/chunks/ln-LP4HMCSM.js +3 -0
  340. package/dist/bin/shell/chunks/ls-KBNHNZWQ.js +3 -0
  341. package/dist/bin/shell/chunks/md5sum-MCVDIB35.js +3 -0
  342. package/dist/bin/shell/chunks/mkdir-P4DKRCDX.js +3 -0
  343. package/dist/bin/shell/chunks/mv-QQK4FQX6.js +3 -0
  344. package/dist/bin/shell/chunks/nl-KUPLVCTS.js +3 -0
  345. package/dist/bin/shell/chunks/od-YQ5ZUI2H.js +3 -0
  346. package/dist/bin/shell/chunks/paste-A5KKPWXX.js +3 -0
  347. package/dist/bin/shell/chunks/printf-Z5C2UOI5.js +3 -0
  348. package/dist/bin/shell/chunks/pwd-FCNDA467.js +3 -0
  349. package/dist/bin/shell/chunks/python3-BQWDPUBM.js +13 -0
  350. package/dist/bin/shell/chunks/readlink-25V57VOL.js +3 -0
  351. package/dist/bin/shell/chunks/rev-PYHOZ4D4.js +3 -0
  352. package/dist/bin/shell/chunks/rg-BGFMSIVK.js +3 -0
  353. package/dist/bin/shell/chunks/rm-ECNUFR66.js +3 -0
  354. package/dist/bin/shell/chunks/rmdir-DLOHIA7Q.js +3 -0
  355. package/dist/bin/shell/chunks/sed-FWA634SN.js +3 -0
  356. package/dist/bin/shell/chunks/seq-UXDJE6FB.js +3 -0
  357. package/dist/bin/shell/chunks/sha1sum-4KF52U3Y.js +3 -0
  358. package/dist/bin/shell/chunks/sha256sum-6YEPULPX.js +3 -0
  359. package/dist/bin/shell/chunks/sleep-QHAPNY3Q.js +3 -0
  360. package/dist/bin/shell/chunks/sort-4C6WOKNK.js +3 -0
  361. package/dist/bin/shell/chunks/split-TV7NL7LA.js +3 -0
  362. package/dist/bin/shell/chunks/sqlite3-W777NCI4.js +3 -0
  363. package/dist/bin/shell/chunks/stat-BD6KT3BP.js +3 -0
  364. package/dist/bin/shell/chunks/strings-MDD72LR6.js +3 -0
  365. package/dist/bin/shell/chunks/tac-C2N4NQ6S.js +3 -0
  366. package/dist/bin/shell/chunks/tail-BCB5W6JC.js +3 -0
  367. package/dist/bin/shell/chunks/tar-DOO744MK.js +3 -0
  368. package/dist/bin/shell/chunks/tee-UQHPO4OW.js +3 -0
  369. package/dist/bin/shell/chunks/time-ZPY52VT2.js +3 -0
  370. package/dist/bin/shell/chunks/timeout-5AX3ZS3X.js +3 -0
  371. package/dist/bin/shell/chunks/touch-DFGSVIX7.js +3 -0
  372. package/dist/bin/shell/chunks/tr-G7K6M6HP.js +3 -0
  373. package/dist/bin/shell/chunks/tree-6D7SMPUR.js +3 -0
  374. package/dist/bin/shell/chunks/true-SKL4L7JP.js +3 -0
  375. package/dist/bin/shell/chunks/unexpand-QIR4EDPG.js +3 -0
  376. package/dist/bin/shell/chunks/uniq-I7PVFJR4.js +3 -0
  377. package/dist/bin/shell/chunks/wc-6NGWULAP.js +3 -0
  378. package/dist/bin/shell/chunks/which-LCXKCLFC.js +3 -0
  379. package/dist/bin/shell/chunks/whoami-TZDZDU7T.js +3 -0
  380. package/dist/bin/shell/chunks/xan-KX4VPXUN.js +3 -0
  381. package/dist/bin/shell/chunks/xan-view-JXOZLJ7S.js +3 -0
  382. package/dist/bin/shell/chunks/xargs-UWHPYLY7.js +3 -0
  383. package/dist/bin/shell/chunks/yq-GCDCJBKB.js +3 -0
  384. package/dist/bin/shell/shell.js +734 -0
  385. package/dist/browser.d.ts +23 -0
  386. package/dist/bundle/browser.js +1515 -0
  387. package/dist/bundle/chunks/alias-RTYYYW3D.js +2 -0
  388. package/dist/bundle/chunks/awk2-LA3USKJP.js +2 -0
  389. package/dist/bundle/chunks/base64-C2AIWVNC.js +2 -0
  390. package/dist/bundle/chunks/basename-UB3CIYNI.js +2 -0
  391. package/dist/bundle/chunks/bash-YZ33HQZQ.js +2 -0
  392. package/dist/bundle/chunks/cat-TSFMZVYS.js +2 -0
  393. package/dist/bundle/chunks/chmod-TFEPA42X.js +2 -0
  394. package/dist/bundle/chunks/chunk-27JIFWUR.js +3 -0
  395. package/dist/bundle/chunks/chunk-2JIPICV3.js +13 -0
  396. package/dist/bundle/chunks/chunk-2SMD2AUA.js +3 -0
  397. package/dist/bundle/chunks/chunk-2VDTE5BV.js +14 -0
  398. package/dist/bundle/chunks/chunk-2VJJEDV2.js +8 -0
  399. package/dist/bundle/chunks/chunk-46RN27KI.js +100 -0
  400. package/dist/bundle/chunks/chunk-4I3HOE5Z.js +21 -0
  401. package/dist/bundle/chunks/chunk-4JLVZKHC.js +8 -0
  402. package/dist/bundle/chunks/chunk-4MZPEZTU.js +3 -0
  403. package/dist/bundle/chunks/chunk-4N6J7B5P.js +6 -0
  404. package/dist/bundle/chunks/chunk-4RUAZWKT.js +33 -0
  405. package/dist/bundle/chunks/chunk-4WKZNNJK.js +2 -0
  406. package/dist/bundle/chunks/chunk-5H5SCKJM.js +11 -0
  407. package/dist/bundle/chunks/chunk-6LASZU3O.js +5 -0
  408. package/dist/bundle/chunks/chunk-6SHYIICL.js +4 -0
  409. package/dist/bundle/chunks/chunk-6VAT5Z2D.js +5 -0
  410. package/dist/bundle/chunks/chunk-7AISL3XV.js +12 -0
  411. package/dist/bundle/chunks/chunk-7EUWTCWK.js +2 -0
  412. package/dist/bundle/chunks/chunk-7JHM3L42.js +6 -0
  413. package/dist/bundle/chunks/chunk-A4R2GWRF.js +9 -0
  414. package/dist/bundle/chunks/chunk-ACSZB4FE.js +11 -0
  415. package/dist/bundle/chunks/chunk-AQ6FYS2X.js +2 -0
  416. package/dist/bundle/chunks/chunk-BVKWRAS6.js +12 -0
  417. package/dist/bundle/chunks/chunk-BZUGFHVS.js +2 -0
  418. package/dist/bundle/chunks/chunk-CBJVD2XA.js +7 -0
  419. package/dist/bundle/chunks/chunk-CHFEPBH4.js +18 -0
  420. package/dist/bundle/chunks/chunk-CN5XGDNN.js +6 -0
  421. package/dist/bundle/chunks/chunk-DLL7UR66.js +2 -0
  422. package/dist/bundle/chunks/chunk-EBAPSGAO.js +9 -0
  423. package/dist/bundle/chunks/chunk-FAXLQUCQ.js +10 -0
  424. package/dist/bundle/chunks/chunk-FHC24QSK.js +7 -0
  425. package/dist/bundle/chunks/chunk-FJK43EBQ.js +14 -0
  426. package/dist/bundle/chunks/chunk-FOCWZZDE.js +2 -0
  427. package/dist/bundle/chunks/chunk-FW54FHZR.js +2 -0
  428. package/dist/bundle/chunks/chunk-FX4RBUYU.js +5 -0
  429. package/dist/bundle/chunks/chunk-FX7KQCEA.js +33 -0
  430. package/dist/bundle/chunks/chunk-FZRQOL3C.js +7 -0
  431. package/dist/bundle/chunks/chunk-G5EVRAOO.js +74 -0
  432. package/dist/bundle/chunks/chunk-GGC5NEPZ.js +8 -0
  433. package/dist/bundle/chunks/chunk-GIUR5SNU.js +15 -0
  434. package/dist/bundle/chunks/chunk-GJC3WVOW.js +2 -0
  435. package/dist/bundle/chunks/chunk-GSPYNYZA.js +6 -0
  436. package/dist/bundle/chunks/chunk-GTQIUQM6.js +5 -0
  437. package/dist/bundle/chunks/chunk-HBVMHTO5.js +2 -0
  438. package/dist/bundle/chunks/chunk-HDRAUQK2.js +2 -0
  439. package/dist/bundle/chunks/chunk-HJBTD7PY.js +21 -0
  440. package/dist/bundle/chunks/chunk-ICIEVHY5.js +36 -0
  441. package/dist/bundle/chunks/chunk-KATRCGLX.js +2 -0
  442. package/dist/bundle/chunks/chunk-KD3KENL6.js +11 -0
  443. package/dist/bundle/chunks/chunk-KWGBQNTV.js +32 -0
  444. package/dist/bundle/chunks/chunk-L2UW7DWF.js +2 -0
  445. package/dist/bundle/chunks/chunk-L64BMZUV.js +2 -0
  446. package/dist/bundle/chunks/chunk-LEKBROJD.js +6 -0
  447. package/dist/bundle/chunks/chunk-LNBPBRV4.js +21 -0
  448. package/dist/bundle/chunks/chunk-LPJEKUCB.js +8 -0
  449. package/dist/bundle/chunks/chunk-LSLPJOYM.js +3 -0
  450. package/dist/bundle/chunks/chunk-MFDPAVC6.js +14 -0
  451. package/dist/bundle/chunks/chunk-MLIO3BK2.js +7 -0
  452. package/dist/bundle/chunks/chunk-MQKGGNPS.js +16 -0
  453. package/dist/bundle/chunks/chunk-MZFCCXPZ.js +63 -0
  454. package/dist/bundle/chunks/chunk-N6DXJ2JN.js +287 -0
  455. package/dist/bundle/chunks/chunk-NRSASXYY.js +2 -0
  456. package/dist/bundle/chunks/chunk-OC35HPHG.js +2 -0
  457. package/dist/bundle/chunks/chunk-OGJ5CFPR.js +9 -0
  458. package/dist/bundle/chunks/chunk-OVGANXCG.js +8 -0
  459. package/dist/bundle/chunks/chunk-Q7H5W7YE.js +140 -0
  460. package/dist/bundle/chunks/chunk-QAYAQNCG.js +23 -0
  461. package/dist/bundle/chunks/chunk-QIQMJJZ4.js +4 -0
  462. package/dist/bundle/chunks/chunk-R4IFXNY5.js +28 -0
  463. package/dist/bundle/chunks/chunk-R74UQCKX.js +5 -0
  464. package/dist/bundle/chunks/chunk-S3LEJEPP.js +2 -0
  465. package/dist/bundle/chunks/chunk-S443BAN4.js +7 -0
  466. package/dist/bundle/chunks/chunk-SAI2SPQQ.js +8 -0
  467. package/dist/bundle/chunks/chunk-SBBYKIYU.js +3 -0
  468. package/dist/bundle/chunks/chunk-SETW5JBN.js +9 -0
  469. package/dist/bundle/chunks/chunk-SHKOQWO4.js +3 -0
  470. package/dist/bundle/chunks/chunk-SJYEXC2Z.js +14 -0
  471. package/dist/bundle/chunks/chunk-SO6R3ZKN.js +16 -0
  472. package/dist/bundle/chunks/chunk-STHBFACM.js +1 -0
  473. package/dist/bundle/chunks/chunk-SX2HC7SO.js +2 -0
  474. package/dist/bundle/chunks/chunk-T4TFLF3R.js +16 -0
  475. package/dist/bundle/chunks/chunk-TDD4NFYE.js +2 -0
  476. package/dist/bundle/chunks/chunk-TN7HHBQW.js +5 -0
  477. package/dist/bundle/chunks/chunk-U73A73IE.js +17 -0
  478. package/dist/bundle/chunks/chunk-UIJUTQPH.js +3 -0
  479. package/dist/bundle/chunks/chunk-UP6MSJGD.js +17 -0
  480. package/dist/bundle/chunks/chunk-VLCHOJWK.js +6 -0
  481. package/dist/bundle/chunks/chunk-VPADYNBD.js +10 -0
  482. package/dist/bundle/chunks/chunk-W5DWRFSU.js +2 -0
  483. package/dist/bundle/chunks/chunk-WM5IJFMP.js +8 -0
  484. package/dist/bundle/chunks/chunk-WNH3HOQA.js +2 -0
  485. package/dist/bundle/chunks/chunk-WPGQVBSY.js +6 -0
  486. package/dist/bundle/chunks/chunk-WVRWIZF5.js +23 -0
  487. package/dist/bundle/chunks/chunk-XCQWV4AU.js +12 -0
  488. package/dist/bundle/chunks/chunk-XDGLKIHR.js +9 -0
  489. package/dist/bundle/chunks/chunk-XHLMAZX2.js +5 -0
  490. package/dist/bundle/chunks/chunk-XRFHFXFP.js +2 -0
  491. package/dist/bundle/chunks/chunk-XUIHBHL5.js +5 -0
  492. package/dist/bundle/chunks/chunk-XYXUMFSU.js +14 -0
  493. package/dist/bundle/chunks/chunk-Y4LIDHSD.js +7 -0
  494. package/dist/bundle/chunks/chunk-YCLFEX4T.js +3 -0
  495. package/dist/bundle/chunks/chunk-YS4NUBYX.js +9 -0
  496. package/dist/bundle/chunks/chunk-ZDIT6ST5.js +7 -0
  497. package/dist/bundle/chunks/chunk-ZDPFA4L3.js +6 -0
  498. package/dist/bundle/chunks/chunk-ZZKH2ELC.js +11 -0
  499. package/dist/bundle/chunks/clear-HKGFEOF6.js +2 -0
  500. package/dist/bundle/chunks/column-XT6UFXNQ.js +2 -0
  501. package/dist/bundle/chunks/comm-VV2LDX2J.js +2 -0
  502. package/dist/bundle/chunks/cp-BISAAS7A.js +2 -0
  503. package/dist/bundle/chunks/curl-GRYA74XW.js +26 -0
  504. package/dist/bundle/chunks/cut-OKARJCCV.js +2 -0
  505. package/dist/bundle/chunks/date-UUUPW43J.js +2 -0
  506. package/dist/bundle/chunks/diff-MWJFIG7X.js +2 -0
  507. package/dist/bundle/chunks/dirname-MPHRFUTI.js +2 -0
  508. package/dist/bundle/chunks/du-572XNP42.js +2 -0
  509. package/dist/bundle/chunks/echo-NDWZZHPO.js +2 -0
  510. package/dist/bundle/chunks/env-36M5BO7M.js +2 -0
  511. package/dist/bundle/chunks/expand-JSPG6VOP.js +2 -0
  512. package/dist/bundle/chunks/expansion-R25BK4W3.js +2 -0
  513. package/dist/bundle/chunks/expr-5JAACS4X.js +2 -0
  514. package/dist/bundle/chunks/file-IPZJC3FQ.js +2 -0
  515. package/dist/bundle/chunks/find-INTH3OLC.js +2 -0
  516. package/dist/bundle/chunks/flag-coverage-XWSYNE72.js +2 -0
  517. package/dist/bundle/chunks/fold-4TQNYMSW.js +2 -0
  518. package/dist/bundle/chunks/grep-V3LQVMRQ.js +2 -0
  519. package/dist/bundle/chunks/gzip-O5ASJAFY.js +2 -0
  520. package/dist/bundle/chunks/head-442HYESI.js +2 -0
  521. package/dist/bundle/chunks/help-HZ6M2CKN.js +2 -0
  522. package/dist/bundle/chunks/history-WYYKSLSZ.js +2 -0
  523. package/dist/bundle/chunks/hostname-C4HQXXUP.js +2 -0
  524. package/dist/bundle/chunks/html-to-markdown-JW4MSQZO.js +2 -0
  525. package/dist/bundle/chunks/join-TBRGI3LQ.js +2 -0
  526. package/dist/bundle/chunks/jq-4XLYLOS5.js +2 -0
  527. package/dist/bundle/chunks/js-exec-N5KEZBH7.js +97 -0
  528. package/dist/bundle/chunks/js-exec-worker.js +4443 -0
  529. package/dist/bundle/chunks/ln-4LGSXXGD.js +2 -0
  530. package/dist/bundle/chunks/ls-ZJGQER7M.js +2 -0
  531. package/dist/bundle/chunks/md5sum-SPU24VSG.js +2 -0
  532. package/dist/bundle/chunks/mkdir-MEPGZOB6.js +2 -0
  533. package/dist/bundle/chunks/mv-W5BIQ646.js +2 -0
  534. package/dist/bundle/chunks/nl-WSDW7I4O.js +2 -0
  535. package/dist/bundle/chunks/od-WOKFDJTP.js +2 -0
  536. package/dist/bundle/chunks/paste-7JC6S4DX.js +2 -0
  537. package/dist/bundle/chunks/printf-TWGXF445.js +2 -0
  538. package/dist/bundle/chunks/pwd-WE6EN5AV.js +2 -0
  539. package/dist/bundle/chunks/python3-POMOR4OA.js +12 -0
  540. package/dist/bundle/chunks/readlink-OPJF4DL5.js +2 -0
  541. package/dist/bundle/chunks/rev-5EHFX4EJ.js +2 -0
  542. package/dist/bundle/chunks/rg-S4FXYXWB.js +2 -0
  543. package/dist/bundle/chunks/rm-SSGETQVQ.js +2 -0
  544. package/dist/bundle/chunks/rmdir-OC4ZLPYA.js +2 -0
  545. package/dist/bundle/chunks/sed-S5UIK574.js +2 -0
  546. package/dist/bundle/chunks/seq-M5EC7Q57.js +2 -0
  547. package/dist/bundle/chunks/sha1sum-2PTOAFR6.js +2 -0
  548. package/dist/bundle/chunks/sha256sum-NS7D3IXX.js +2 -0
  549. package/dist/bundle/chunks/sleep-X22JJINO.js +2 -0
  550. package/dist/bundle/chunks/sort-SW2YEO5B.js +2 -0
  551. package/dist/bundle/chunks/split-4KKZZXXE.js +2 -0
  552. package/dist/bundle/chunks/sqlite3-CGOEFJAO.js +2 -0
  553. package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
  554. package/dist/bundle/chunks/stat-CD34IZ4P.js +2 -0
  555. package/dist/bundle/chunks/strings-6WDHLGMX.js +2 -0
  556. package/dist/bundle/chunks/tac-2STMMJYW.js +2 -0
  557. package/dist/bundle/chunks/tail-R4PCA2C4.js +2 -0
  558. package/dist/bundle/chunks/tar-STHHZTZ6.js +2 -0
  559. package/dist/bundle/chunks/tee-YUZ2FKCJ.js +2 -0
  560. package/dist/bundle/chunks/time-D4LNBSWX.js +2 -0
  561. package/dist/bundle/chunks/timeout-YDCRSLPQ.js +2 -0
  562. package/dist/bundle/chunks/touch-UA33VN3N.js +2 -0
  563. package/dist/bundle/chunks/tr-36LHWFRQ.js +2 -0
  564. package/dist/bundle/chunks/tree-YLD52CNT.js +2 -0
  565. package/dist/bundle/chunks/true-FHQXJXBE.js +2 -0
  566. package/dist/bundle/chunks/unexpand-CADSA4VO.js +2 -0
  567. package/dist/bundle/chunks/uniq-XSIZR6PB.js +2 -0
  568. package/dist/bundle/chunks/wc-LF7NU4LA.js +2 -0
  569. package/dist/bundle/chunks/which-XEM24D5D.js +2 -0
  570. package/dist/bundle/chunks/whoami-XMTX52VE.js +2 -0
  571. package/dist/bundle/chunks/worker.js +3150 -0
  572. package/dist/bundle/chunks/xan-Y6WF3IRG.js +2 -0
  573. package/dist/bundle/chunks/xan-view-HDVKHFC2.js +2 -0
  574. package/dist/bundle/chunks/xargs-MGZPH7AX.js +2 -0
  575. package/dist/bundle/chunks/yq-4QJW3EQG.js +2 -0
  576. package/dist/bundle/index.cjs +2178 -0
  577. package/dist/bundle/index.js +710 -0
  578. package/dist/commands/alias/alias.d.ts +6 -0
  579. package/dist/commands/awk/ast.d.ts +202 -0
  580. package/dist/commands/awk/awk2.d.ts +9 -0
  581. package/dist/commands/awk/builtins.d.ts +17 -0
  582. package/dist/commands/awk/interpreter/context.d.ts +75 -0
  583. package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
  584. package/dist/commands/awk/interpreter/fields.d.ts +25 -0
  585. package/dist/commands/awk/interpreter/index.d.ts +8 -0
  586. package/dist/commands/awk/interpreter/interpreter.d.ts +54 -0
  587. package/dist/commands/awk/interpreter/statements.d.ts +11 -0
  588. package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
  589. package/dist/commands/awk/interpreter/types.d.ts +13 -0
  590. package/dist/commands/awk/interpreter/variables.d.ts +35 -0
  591. package/dist/commands/awk/lexer.d.ts +100 -0
  592. package/dist/commands/awk/parser2-print.d.ts +35 -0
  593. package/dist/commands/awk/parser2.d.ts +81 -0
  594. package/dist/commands/base64/base64.d.ts +7 -0
  595. package/dist/commands/basename/basename.d.ts +4 -0
  596. package/dist/commands/bash/bash.d.ts +6 -0
  597. package/dist/commands/browser-excluded.d.ts +16 -0
  598. package/dist/commands/cat/cat.d.ts +4 -0
  599. package/dist/commands/chmod/chmod.d.ts +4 -0
  600. package/dist/commands/clear/clear.d.ts +4 -0
  601. package/dist/commands/column/column.d.ts +11 -0
  602. package/dist/commands/comm/comm.d.ts +12 -0
  603. package/dist/commands/cp/cp.d.ts +4 -0
  604. package/dist/commands/curl/curl.d.ts +8 -0
  605. package/dist/commands/curl/form.d.ts +21 -0
  606. package/dist/commands/curl/help.d.ts +9 -0
  607. package/dist/commands/curl/parse.d.ts +9 -0
  608. package/dist/commands/curl/response-formatting.d.ts +20 -0
  609. package/dist/commands/curl/types.d.ts +60 -0
  610. package/dist/commands/cut/cut.d.ts +4 -0
  611. package/dist/commands/date/date.d.ts +7 -0
  612. package/dist/commands/diff/diff.d.ts +7 -0
  613. package/dist/commands/dirname/dirname.d.ts +4 -0
  614. package/dist/commands/du/du.d.ts +4 -0
  615. package/dist/commands/duration.d.ts +5 -0
  616. package/dist/commands/echo/echo.d.ts +4 -0
  617. package/dist/commands/env/env.d.ts +6 -0
  618. package/dist/commands/expand/expand.d.ts +12 -0
  619. package/dist/commands/expand/unexpand.d.ts +12 -0
  620. package/dist/commands/expr/expr.d.ts +9 -0
  621. package/dist/commands/file/file.d.ts +9 -0
  622. package/dist/commands/find/find.d.ts +4 -0
  623. package/dist/commands/find/matcher.d.ts +69 -0
  624. package/dist/commands/find/parser.d.ts +2 -0
  625. package/dist/commands/find/types.d.ts +88 -0
  626. package/dist/commands/flag-coverage.d.ts +2 -0
  627. package/dist/commands/fold/fold.d.ts +12 -0
  628. package/dist/commands/format-mode.d.ts +4 -0
  629. package/dist/commands/fuzz-flags-types.d.ts +17 -0
  630. package/dist/commands/fuzz-flags.d.ts +8 -0
  631. package/dist/commands/grep/grep.d.ts +8 -0
  632. package/dist/commands/gzip/gzip.d.ts +13 -0
  633. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  634. package/dist/commands/head/head.d.ts +4 -0
  635. package/dist/commands/help/help.d.ts +4 -0
  636. package/dist/commands/help.d.ts +16 -0
  637. package/dist/commands/history/history.d.ts +4 -0
  638. package/dist/commands/hostname/hostname.d.ts +11 -0
  639. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
  640. package/dist/commands/join/join.d.ts +12 -0
  641. package/dist/commands/jq/jq.d.ts +9 -0
  642. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  643. package/dist/commands/js-exec/js-exec-worker.d.ts +32 -0
  644. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  645. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  646. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  647. package/dist/commands/ln/ln.d.ts +4 -0
  648. package/dist/commands/ls/ls.d.ts +4 -0
  649. package/dist/commands/md5sum/checksum.d.ts +7 -0
  650. package/dist/commands/md5sum/md5sum.d.ts +4 -0
  651. package/dist/commands/md5sum/sha1sum.d.ts +4 -0
  652. package/dist/commands/md5sum/sha256sum.d.ts +4 -0
  653. package/dist/commands/mkdir/mkdir.d.ts +4 -0
  654. package/dist/commands/mv/mv.d.ts +4 -0
  655. package/dist/commands/nl/nl.d.ts +12 -0
  656. package/dist/commands/od/od.d.ts +12 -0
  657. package/dist/commands/paste/paste.d.ts +4 -0
  658. package/dist/commands/printf/escapes.d.ts +25 -0
  659. package/dist/commands/printf/printf.d.ts +4 -0
  660. package/dist/commands/printf/strftime.d.ts +9 -0
  661. package/dist/commands/pwd/pwd.d.ts +4 -0
  662. package/dist/commands/python3/python3.d.ts +16 -0
  663. package/dist/commands/python3/worker.d.ts +28 -0
  664. package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
  665. package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
  666. package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
  667. package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
  668. package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
  669. package/dist/commands/query-engine/builtins/index.d.ts +17 -0
  670. package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
  671. package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
  672. package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
  673. package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
  674. package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
  675. package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
  676. package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
  677. package/dist/commands/query-engine/evaluator.d.ts +40 -0
  678. package/dist/commands/query-engine/index.d.ts +8 -0
  679. package/dist/commands/query-engine/parser-types.d.ts +171 -0
  680. package/dist/commands/query-engine/parser.d.ts +9 -0
  681. package/dist/commands/query-engine/path-operations.d.ts +15 -0
  682. package/dist/commands/query-engine/safe-object.d.ts +83 -0
  683. package/dist/commands/query-engine/value-operations.d.ts +41 -0
  684. package/dist/commands/readlink/readlink.d.ts +4 -0
  685. package/dist/commands/registry.d.ts +56 -0
  686. package/dist/commands/rev/rev.d.ts +13 -0
  687. package/dist/commands/rg/file-types.d.ts +49 -0
  688. package/dist/commands/rg/gitignore.d.ts +98 -0
  689. package/dist/commands/rg/rg-options.d.ts +61 -0
  690. package/dist/commands/rg/rg-parser.d.ts +20 -0
  691. package/dist/commands/rg/rg-search.d.ts +15 -0
  692. package/dist/commands/rg/rg.d.ts +14 -0
  693. package/dist/commands/rm/rm.d.ts +4 -0
  694. package/dist/commands/rmdir/rmdir.d.ts +4 -0
  695. package/dist/commands/search-engine/index.d.ts +10 -0
  696. package/dist/commands/search-engine/matcher.d.ts +66 -0
  697. package/dist/commands/search-engine/regex.d.ts +46 -0
  698. package/dist/commands/sed/executor.d.ts +7 -0
  699. package/dist/commands/sed/lexer.d.ts +86 -0
  700. package/dist/commands/sed/parser.d.ts +18 -0
  701. package/dist/commands/sed/sed-regex.d.ts +23 -0
  702. package/dist/commands/sed/sed.d.ts +4 -0
  703. package/dist/commands/sed/types.d.ts +216 -0
  704. package/dist/commands/seq/seq.d.ts +16 -0
  705. package/dist/commands/sleep/sleep.d.ts +4 -0
  706. package/dist/commands/sort/comparator.d.ts +9 -0
  707. package/dist/commands/sort/parser.d.ts +11 -0
  708. package/dist/commands/sort/sort.d.ts +4 -0
  709. package/dist/commands/sort/types.d.ts +30 -0
  710. package/dist/commands/split/split.d.ts +12 -0
  711. package/dist/commands/sqlite3/formatters.d.ts +15 -0
  712. package/dist/commands/sqlite3/sqlite3.d.ts +23 -0
  713. package/dist/commands/sqlite3/worker.d.ts +45 -0
  714. package/dist/commands/sqlite3/worker.js +1728 -0
  715. package/dist/commands/stat/stat.d.ts +4 -0
  716. package/dist/commands/strings/strings.d.ts +12 -0
  717. package/dist/commands/tac/tac.d.ts +11 -0
  718. package/dist/commands/tail/tail.d.ts +4 -0
  719. package/dist/commands/tar/archive.d.ts +135 -0
  720. package/dist/commands/tar/bzip2-compress.d.ts +17 -0
  721. package/dist/commands/tar/tar-options.d.ts +37 -0
  722. package/dist/commands/tar/tar.d.ts +10 -0
  723. package/dist/commands/tee/tee.d.ts +4 -0
  724. package/dist/commands/time/time.d.ts +27 -0
  725. package/dist/commands/timeout/timeout.d.ts +4 -0
  726. package/dist/commands/touch/touch.d.ts +4 -0
  727. package/dist/commands/tr/tr.d.ts +4 -0
  728. package/dist/commands/tree/tree.d.ts +4 -0
  729. package/dist/commands/true/true.d.ts +6 -0
  730. package/dist/commands/uniq/uniq.d.ts +4 -0
  731. package/dist/commands/wc/wc.d.ts +4 -0
  732. package/dist/commands/which/which.d.ts +4 -0
  733. package/dist/commands/whoami/whoami.d.ts +11 -0
  734. package/dist/commands/worker-bridge/bridge-handler.d.ts +73 -0
  735. package/dist/commands/worker-bridge/protocol.d.ts +141 -0
  736. package/dist/commands/worker-bridge/sync-backend.d.ts +86 -0
  737. package/dist/commands/xan/aggregation.d.ts +20 -0
  738. package/dist/commands/xan/column-selection.d.ts +19 -0
  739. package/dist/commands/xan/csv.d.ts +37 -0
  740. package/dist/commands/xan/moonblade-parser.d.ts +80 -0
  741. package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
  742. package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
  743. package/dist/commands/xan/subcommands.d.ts +15 -0
  744. package/dist/commands/xan/xan-agg.d.ts +8 -0
  745. package/dist/commands/xan/xan-columns.d.ts +8 -0
  746. package/dist/commands/xan/xan-core.d.ts +10 -0
  747. package/dist/commands/xan/xan-data.d.ts +52 -0
  748. package/dist/commands/xan/xan-filter.d.ts +8 -0
  749. package/dist/commands/xan/xan-map.d.ts +11 -0
  750. package/dist/commands/xan/xan-reshape.d.ts +40 -0
  751. package/dist/commands/xan/xan-simple.d.ts +40 -0
  752. package/dist/commands/xan/xan-view.d.ts +12 -0
  753. package/dist/commands/xan/xan.d.ts +10 -0
  754. package/dist/commands/xargs/xargs.d.ts +4 -0
  755. package/dist/commands/yq/formats.d.ts +64 -0
  756. package/dist/commands/yq/yq.d.ts +13 -0
  757. package/dist/custom-commands.d.ts +42 -0
  758. package/dist/encoding.d.ts +115 -0
  759. package/dist/fs/encoding.d.ts +17 -0
  760. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +75 -0
  761. package/dist/fs/in-memory-fs/index.d.ts +1 -0
  762. package/dist/fs/init.d.ts +22 -0
  763. package/dist/fs/interface.d.ts +251 -0
  764. package/dist/fs/mountable-fs/index.d.ts +1 -0
  765. package/dist/fs/mountable-fs/mountable-fs.d.ts +118 -0
  766. package/dist/fs/overlay-fs/index.d.ts +1 -0
  767. package/dist/fs/overlay-fs/overlay-fs.d.ts +165 -0
  768. package/dist/fs/path-utils.d.ts +46 -0
  769. package/dist/fs/read-write-fs/index.d.ts +1 -0
  770. package/dist/fs/read-write-fs/read-write-fs.d.ts +98 -0
  771. package/dist/fs/real-fs-utils.d.ts +90 -0
  772. package/dist/fs/sanitize-error.d.ts +19 -0
  773. package/dist/index.d.cts +29 -0
  774. package/dist/index.d.ts +29 -0
  775. package/dist/interpreter/alias-expansion.d.ts +23 -0
  776. package/dist/interpreter/arithmetic.d.ts +24 -0
  777. package/dist/interpreter/assignment-expansion.d.ts +24 -0
  778. package/dist/interpreter/builtin-dispatch.d.ts +39 -0
  779. package/dist/interpreter/builtins/break.d.ts +6 -0
  780. package/dist/interpreter/builtins/cd.d.ts +6 -0
  781. package/dist/interpreter/builtins/compgen.d.ts +26 -0
  782. package/dist/interpreter/builtins/complete.d.ts +17 -0
  783. package/dist/interpreter/builtins/compopt.d.ts +28 -0
  784. package/dist/interpreter/builtins/continue.d.ts +6 -0
  785. package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
  786. package/dist/interpreter/builtins/declare-print.d.ts +39 -0
  787. package/dist/interpreter/builtins/declare.d.ts +35 -0
  788. package/dist/interpreter/builtins/dirs.d.ts +29 -0
  789. package/dist/interpreter/builtins/eval.d.ts +9 -0
  790. package/dist/interpreter/builtins/exit.d.ts +5 -0
  791. package/dist/interpreter/builtins/export.d.ts +14 -0
  792. package/dist/interpreter/builtins/getopts.d.ts +18 -0
  793. package/dist/interpreter/builtins/hash.d.ts +19 -0
  794. package/dist/interpreter/builtins/help.d.ts +12 -0
  795. package/dist/interpreter/builtins/index.d.ts +45 -0
  796. package/dist/interpreter/builtins/let.d.ts +18 -0
  797. package/dist/interpreter/builtins/local.d.ts +6 -0
  798. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  799. package/dist/interpreter/builtins/read.d.ts +6 -0
  800. package/dist/interpreter/builtins/return.d.ts +6 -0
  801. package/dist/interpreter/builtins/set.d.ts +9 -0
  802. package/dist/interpreter/builtins/shift.d.ts +15 -0
  803. package/dist/interpreter/builtins/shopt.d.ts +7 -0
  804. package/dist/interpreter/builtins/source.d.ts +6 -0
  805. package/dist/interpreter/builtins/unset.d.ts +16 -0
  806. package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
  807. package/dist/interpreter/command-resolution.d.ts +43 -0
  808. package/dist/interpreter/conditionals.d.ts +17 -0
  809. package/dist/interpreter/control-flow.d.ts +21 -0
  810. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  811. package/dist/interpreter/errors.d.ts +158 -0
  812. package/dist/interpreter/expansion/analysis.d.ts +37 -0
  813. package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
  814. package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
  815. package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
  816. package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
  817. package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
  818. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  819. package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
  820. package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
  821. package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
  822. package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
  823. package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
  824. package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
  825. package/dist/interpreter/expansion/pattern.d.ts +23 -0
  826. package/dist/interpreter/expansion/positional-params.d.ts +59 -0
  827. package/dist/interpreter/expansion/prompt.d.ts +39 -0
  828. package/dist/interpreter/expansion/quoting.d.ts +13 -0
  829. package/dist/interpreter/expansion/tilde.d.ts +12 -0
  830. package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
  831. package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
  832. package/dist/interpreter/expansion/variable.d.ts +36 -0
  833. package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
  834. package/dist/interpreter/expansion/word-split.d.ts +29 -0
  835. package/dist/interpreter/expansion.d.ts +53 -0
  836. package/dist/interpreter/functions.d.ts +12 -0
  837. package/dist/interpreter/helpers/array.d.ts +43 -0
  838. package/dist/interpreter/helpers/condition.d.ts +22 -0
  839. package/dist/interpreter/helpers/errors.d.ts +8 -0
  840. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  841. package/dist/interpreter/helpers/ifs.d.ts +104 -0
  842. package/dist/interpreter/helpers/loop.d.ts +24 -0
  843. package/dist/interpreter/helpers/nameref.d.ts +65 -0
  844. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  845. package/dist/interpreter/helpers/quoting.d.ts +24 -0
  846. package/dist/interpreter/helpers/readonly.d.ts +45 -0
  847. package/dist/interpreter/helpers/regex.d.ts +8 -0
  848. package/dist/interpreter/helpers/result.d.ts +60 -0
  849. package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
  850. package/dist/interpreter/helpers/shellopts.d.ts +28 -0
  851. package/dist/interpreter/helpers/statements.d.ts +20 -0
  852. package/dist/interpreter/helpers/string-compare.d.ts +24 -0
  853. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  854. package/dist/interpreter/helpers/tilde.d.ts +13 -0
  855. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  856. package/dist/interpreter/helpers/word-matching.d.ts +26 -0
  857. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  858. package/dist/interpreter/helpers/xtrace.d.ts +18 -0
  859. package/dist/interpreter/index.d.ts +3 -0
  860. package/dist/interpreter/interpreter.d.ts +79 -0
  861. package/dist/interpreter/pipeline-execution.d.ts +16 -0
  862. package/dist/interpreter/redirections.d.ts +51 -0
  863. package/dist/interpreter/simple-command-assignments.d.ts +29 -0
  864. package/dist/interpreter/subshell-group.d.ts +32 -0
  865. package/dist/interpreter/type-command.d.ts +37 -0
  866. package/dist/interpreter/types.d.ts +349 -0
  867. package/dist/limits.d.ts +52 -0
  868. package/dist/network/allow-list/shared.d.ts +57 -0
  869. package/dist/network/allow-list.d.ts +59 -0
  870. package/dist/network/dns-pin.d.ts +43 -0
  871. package/dist/network/fetch.d.ts +25 -0
  872. package/dist/network/index.d.ts +7 -0
  873. package/dist/network/types.d.ts +155 -0
  874. package/dist/parser/arithmetic-parser.d.ts +23 -0
  875. package/dist/parser/arithmetic-primaries.d.ts +45 -0
  876. package/dist/parser/command-parser.d.ts +10 -0
  877. package/dist/parser/compound-parser.d.ts +28 -0
  878. package/dist/parser/conditional-parser.d.ts +8 -0
  879. package/dist/parser/expansion-parser.d.ts +16 -0
  880. package/dist/parser/lexer.d.ts +197 -0
  881. package/dist/parser/parser-substitution.d.ts +62 -0
  882. package/dist/parser/parser.d.ts +135 -0
  883. package/dist/parser/types.d.ts +25 -0
  884. package/dist/parser/word-parser.d.ts +33 -0
  885. package/dist/sandbox/Command.d.ts +35 -0
  886. package/dist/sandbox/Sandbox.d.ts +90 -0
  887. package/dist/sandbox/index.d.ts +2 -0
  888. package/dist/shell-metadata.d.ts +25 -0
  889. package/dist/timers.d.ts +4 -0
  890. package/dist/types.d.ts +247 -0
  891. package/dist/utils/args.d.ts +55 -0
  892. package/dist/utils/constants.d.ts +15 -0
  893. package/dist/utils/file-reader.d.ts +74 -0
  894. package/dist/utils/glob.d.ts +25 -0
  895. package/dist/vitest-setup.d.ts +1 -0
  896. package/package.json +127 -0
  897. package/vendor/cpython-emscripten/python.cjs +2 -0
  898. package/vendor/cpython-emscripten/python.wasm +0 -0
  899. package/vendor/cpython-emscripten/python313.zip +0 -0
@@ -0,0 +1,755 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{B as Hn,C as Un,D as ce,E as Ue,F as ee,G as Se,H as Lt,I as Zn,J as x,K as qn,L as Gn,M as Ce,N as As,O as Ft,P as j,a as Ln,b as ws,c as Fn,d as It,e as Q,f as V,g as $e,h as se,i as _e,j as Fe,k as vs,l as Rt,m as Mn,n as bs,o as Wn,p as ye,q as Te,r as zn,s as Vn,t as $s,u as Es,v as Me,w as Bn,x as jn,y as Ee,z as Ss}from"./chunks/chunk-D6CPXGKK.js";import{a as Je,b as et,c as Le}from"./chunks/chunk-O2BCKSMK.js";import{c as gs}from"./chunks/chunk-NYIPFY36.js";import{a as Nn,b as On}from"./chunks/chunk-KRRM5UCC.js";import{a as Re,b as me,c as ys}from"./chunks/chunk-MROECM42.js";import{a as yt,b as Rn}from"./chunks/chunk-LNNWMRCB.js";import{a as Qe,b as ve}from"./chunks/chunk-HL4ZS7TX.js";import{a as mt}from"./chunks/chunk-IEXQTXU5.js";import{a as Dn,b as je,d as Tn,e as ms}from"./chunks/chunk-VZK4FHWJ.js";import{a as fe,b as de,c as le,d as pe,e as xn,f as B,g as He,h as Ot,i as Dt,j as In,k as Y,l as Tt,m as Ie,n as xt,o as be}from"./chunks/chunk-47WZ2U6M.js";import"./chunks/chunk-7JZKVC3F.js";import{a as he}from"./chunks/chunk-PBOVSFTJ.js";import{a as De}from"./chunks/chunk-I4IRHQDW.js";import{a as kn}from"./chunks/chunk-LNVSXNT7.js";import{resolve as Hi}from"node:path";var tt=[{name:"echo",load:async()=>(await import("./chunks/echo-KCOHTNDF.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-LQH5FSAR.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-Z5C2UOI5.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-KBNHNZWQ.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-P4DKRCDX.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-DLOHIA7Q.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-DFGSVIX7.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-ECNUFR66.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-HYXTMN3D.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-QQK4FQX6.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-LP4HMCSM.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-S564JCJW.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-FCNDA467.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-25V57VOL.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-QNC2ZYDO.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-BCB5W6JC.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-6NGWULAP.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-BD6KT3BP.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-VAYCFO4O.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-VAYCFO4O.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-VAYCFO4O.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-BGFMSIVK.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-FWA634SN.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-RLMNTGI7.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-4C6WOKNK.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-I7PVFJR4.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-Q4VDF6ZO.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-ZI2HIAW7.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-A5KKPWXX.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-G7K6M6HP.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-PYHOZ4D4.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-KUPLVCTS.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-5MF7QZWQ.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-YYSO35NS.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-QIR4EDPG.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-MDD72LR6.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-TV7NL7LA.js")).split},{name:"column",load:async()=>(await import("./chunks/column-AQB3A3PJ.js")).column},{name:"join",load:async()=>(await import("./chunks/join-EJ73DYTK.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-UQHPO4OW.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-P4DOE7CE.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-F3AQ4KAQ.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-VCINTLPD.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-6D7SMPUR.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-4LRQIGRG.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-NY32PQJM.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-NY32PQJM.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-YRVAW27Y.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-YRVAW27Y.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-AQQWW3QB.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-UWHPYLY7.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-SKL4L7JP.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-SKL4L7JP.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-FGNEKYDU.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-CLP24TE2.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-CLP24TE2.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-GGTKKMEN.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-RZRLGMB3.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-YDJ42RKS.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-JEZYSA4F.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-QHAPNY3Q.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-5AX3ZS3X.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-ZPY52VT2.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-UXDJE6FB.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-7PLWSWZI.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-MCVDIB35.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-4KF52U3Y.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-6YEPULPX.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-GRZLWDVH.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-QEFY7XQR.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-CGUEOGXQ.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-LCXKCLFC.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-C2N4NQ6S.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-USNWOQCK.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-TZDZDU7T.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-YQ5ZUI2H.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-UGBQQKIH.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-UGBQQKIH.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-UGBQQKIH.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(tt.push({name:"tar",load:async()=>(await import("./chunks/tar-DOO744MK.js")).tarCommand}),tt.push({name:"yq",load:async()=>(await import("./chunks/yq-GCDCJBKB.js")).yqCommand}),tt.push({name:"xan",load:async()=>(await import("./chunks/xan-KX4VPXUN.js")).xanCommand}),tt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-W777NCI4.js")).sqlite3Command}));var _s=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(_s.push({name:"python3",load:async()=>(await import("./chunks/python3-BQWDPUBM.js")).python3Command}),_s.push({name:"python",load:async()=>(await import("./chunks/python3-BQWDPUBM.js")).pythonCommand}));var Cs=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Cs.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-BC6NI55L.js")).jsExecCommand}),Cs.push({name:"node",load:async()=>(await import("./chunks/js-exec-BC6NI55L.js")).nodeStubCommand}));var Ki=[{name:"curl",load:async()=>(await import("./chunks/curl-PLHETP4J.js")).curlCommand}],Kn=new Map;function Mt(e){return{name:e.name,async execute(t,s){let n=Kn.get(e.name);if(n||(n=await ve.runTrustedAsync(()=>e.load()),Kn.set(e.name,n)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:r}=await import("./chunks/flag-coverage-RFKIBJ6L.js");r(s.coverage,e.name,t)}return n.execute(t,s)}}}function Xn(e){return(e?tt.filter(s=>e.includes(s.name)):tt).map(Mt)}function Yn(){return Ki.map(Mt)}function Qn(){return _s.map(Mt)}function Jn(){return Cs.map(Mt)}function er(e){return"load"in e&&typeof e.load=="function"}function tr(e){let t=null;return{name:e.name,trusted:!0,async execute(s,n){return t||(t=await e.load()),t.execute(s,n)}}}function L(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(r=>r&&r!=="."),n=[];for(let r of s)r===".."?n.pop():n.push(r);return`/${n.join("/")}`||"/"}function W(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Ze(e){let t=L(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function Wt(e,t){if(t.startsWith("/"))return L(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return L(s)}function gt(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function st(e,t){if(t.startsWith("/"))return L(t);let s=Ze(e);return L(gt(s,t))}var nt=new TextEncoder;function Xi(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var wt=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,n]of Object.entries(t))typeof n=="function"?this.writeFileLazy(s,n):Xi(n)?this.writeFileSync(s,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(s,n)}ensureParentDirs(t){let s=Ze(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,n,r){W(t,"write");let i=L(t);this.ensureParentDirs(i);let a=Le(n),o=Je(s,a);this.data.set(i,{type:"file",content:o,mode:r?.mode??420,mtime:r?.mtime??new Date})}writeFileLazy(t,s,n){W(t,"write");let r=L(t);this.ensureParentDirs(r),this.data.set(r,{type:"file",lazy:s,mode:n?.mode??420,mtime:n?.mtime??new Date})}async materializeLazy(t,s){let n=await s.lazy(),i={type:"file",content:typeof n=="string"?nt.encode(n):n,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let n=await this.readFileBuffer(t),r=Le(s);return et(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return et(s,"binary")}async readFileBuffer(t){W(t,"open");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in n){let r=await this.materializeLazy(s,n);return r.content instanceof Uint8Array?r.content:nt.encode(r.content)}return n.content instanceof Uint8Array?n.content:nt.encode(n.content)}async writeFile(t,s,n){this.writeFileSync(t,s,n)}async appendFile(t,s,n){W(t,"append");let r=L(t),i=this.data.get(r);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let a=Le(n),o=Je(s,a);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(r,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:nt.encode("content"in l?l.content:""),u=new Uint8Array(c.length+o.length);u.set(c),u.set(o,c.length),this.data.set(r,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,n)}async exists(t){if(t.includes("\0"))return!1;try{let s=this.resolvePathWithSymlinks(t);return this.data.has(s)}catch{return!1}}async stat(t){W(t,"stat");let s=this.resolvePathWithSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}async lstat(t){W(t,"lstat");let s=this.resolveIntermediateSymlinks(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime||new Date};n.type==="file"&&"lazy"in n&&(n=await this.materializeLazy(s,n));let r=0;return n.type==="file"&&"content"in n&&n.content&&(n.content instanceof Uint8Array?r=n.content.length:r=nt.encode(n.content).length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:r,mtime:n.mtime||new Date}}resolveIntermediateSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/");if(n.length<=1)return s;let r="",i=new Set;for(let a=0;a<n.length-1;a++){let o=n[a];r=`${r}/${o}`;let l=this.data.get(r),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(r),r=st(r,l.target),l=this.data.get(r),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${r}/${n[n.length-1]}`}resolvePathWithSymlinks(t){let s=L(t);if(s==="/")return"/";let n=s.slice(1).split("/"),r="",i=new Set;for(let a of n){r=`${r}/${a}`;let o=this.data.get(r),l=0,c=40;for(;o&&o.type==="symlink"&&l<c;){if(i.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(r),r=st(r,o.target),o=this.data.get(r),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return r}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){W(t,"mkdir");let n=L(t);if(this.data.has(n)){if(this.data.get(n)?.type==="file")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!s?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let r=Ze(n);if(r!=="/"&&!this.data.has(r))if(s?.recursive)this.mkdirSync(r,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(n,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(n=>n.name)}async readdirWithFileTypes(t){W(t,"scandir");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Set;for(;n&&n.type==="symlink";){if(r.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);r.add(s),s=st(s,n.target),n=this.data.get(s)}if(!n)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(n.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,a=new Map;for(let[o,l]of this.data.entries())if(o!==s&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!a.has(u)&&a.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(a.values()).sort((o,l)=>o.name<l.name?-1:o.name>l.name?1:0)}async rm(t,s){W(t,"rm");let n=L(t),r=this.data.get(n);if(!r){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(r.type==="directory"){let i=await this.readdir(n);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of i){let o=gt(n,a);await this.rm(o,s)}}}this.data.delete(n)}async cp(t,s,n){W(t,"cp"),W(s,"cp");let r=L(t),i=L(s),a=this.data.get(r);if(!a)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(a.type==="file")if(this.ensureParentDirs(i),"content"in a){let o=a.content instanceof Uint8Array?new Uint8Array(a.content):a.content;this.data.set(i,{...a,content:o})}else this.data.set(i,{...a});else if(a.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...a});else if(a.type==="directory"){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let o=await this.readdir(r);for(let l of o){let c=gt(r,l),u=gt(i,l);await this.cp(c,u,n)}}}async mv(t,s){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}getAllPaths(){return Array.from(this.data.keys())}resolvePath(t,s){return Wt(t,s)}async chmod(t,s){W(t,"chmod");let n=L(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);r.mode=s}async symlink(t,s){W(s,"symlink");let n=L(s);if(this.data.has(n))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(n),this.data.set(n,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){W(t,"link"),W(s,"link");let n=L(t),r=L(s),i=this.data.get(n);if(!i)throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(i.type!=="file")throw new Error(`EPERM: operation not permitted, link '${t}'`);if(this.data.has(r))throw new Error(`EEXIST: file already exists, link '${s}'`);let a=i;"lazy"in a&&(a=await this.materializeLazy(n,a)),this.ensureParentDirs(r),this.data.set(r,{type:"file",content:a.content,mode:a.mode,mtime:a.mtime})}async readlink(t){W(t,"readlink");let s=L(t),n=this.data.get(s);if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return n.target}async realpath(t){W(t,"realpath");let s=this.resolvePathWithSymlinks(t);if(!this.data.has(s))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return s}async utimes(t,s,n){W(t,"utimes");let r=L(t),i=this.resolvePathWithSymlinks(r),a=this.data.get(i);if(!a)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);a.mtime=n}};function Yi(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function Qi(e,t){e.mkdirSync("/bin",{recursive:!0}),e.mkdirSync("/usr/bin",{recursive:!0}),t&&(e.mkdirSync("/home/user",{recursive:!0}),e.mkdirSync("/tmp",{recursive:!0}))}function Ji(e){e.mkdirSync("/dev",{recursive:!0}),e.writeFileSync("/dev/null",""),e.writeFileSync("/dev/zero",new Uint8Array(0)),e.writeFileSync("/dev/stdin",""),e.writeFileSync("/dev/stdout",""),e.writeFileSync("/dev/stderr","")}function ea(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Ln}
4
+ `),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
5
+ `),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>ws(t)):e.writeFileSync("/proc/self/status",ws(t)),e.writeFileSync("/proc/self/fd/0","/dev/stdin"),e.writeFileSync("/proc/self/fd/1","/dev/stdout"),e.writeFileSync("/proc/self/fd/2","/dev/stderr")}function nr(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){Yi(e)&&(Qi(e,t),Ji(e),ea(e,s))}var ta=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],sa=["braceexpand","hashall","interactive-comments"];function ks(e){let t=[],s=[...sa.map(n=>({name:n,enabled:!0})),...ta.map(n=>({name:n,enabled:e[n]}))].sort((n,r)=>n.name.localeCompare(r.name));for(let n of s)n.enabled&&t.push(n.name);return t.join(":")}function it(e){e.state.env.set("SHELLOPTS",ks(e.state.options))}var na=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Ns(e){let t=[];for(let s of na)e[s]&&t.push(s);return t.join(":")}function Os(e){e.state.env.set("BASHOPTS",Ns(e.state.shoptOptions))}var ra="BASH_ALIAS_";function rr(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function ir(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function ar(e,t){return e.env.get(`${ra}${t}`)}function Ds(e,t,s){if(!t.name||!rr(t.name))return t;let n=ir(t.name);if(!n)return t;let r=ar(e,n);if(!r||s.has(n))return t;try{s.add(n);let i=new V,a=r,o=r.endsWith(" ");if(!o)for(let f of t.args){let d=lr(f);a+=` ${d}`}let l;try{l=i.parse(a)}catch(f){if(f instanceof It)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return or(t,r);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return or(t,r);let u={...c,assignments:[...t.assignments,...c.assignments],redirections:[...c.redirections,...t.redirections],line:t.line};if(o&&t.args.length>0&&(u={...u,args:[...u.args,...t.args]},u.args.length>0)){let f=u.args[0];if(rr(f)){let d=ir(f);if(d&&ar(e,d)){let h={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},y=Ds(e,h,s);y!==h&&(u={...u,name:y.name,args:[...y.args]})}}}return u}catch(i){throw s.delete(n),i}}function or(e,t){let s=t;for(let a of e.args){let o=lr(a);s+=` ${o}`}let n=new V,r=n.parseWordFromString("eval",!1,!1),i=n.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:r,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function lr(e){let t="";for(let s of e.parts)switch(s.type){case"Literal":t+=s.value.replace(/([\s"'$`\\*?[\]{}()<>|&;#!])/g,"\\$1");break;case"SingleQuoted":t+=`'${s.value}'`;break;case"DoubleQuoted":t+=`"${s.parts.map(n=>n.type==="Literal"?n.value:`$${n.type}`).join("")}"`;break;case"ParameterExpansion":t+=`\${${s.parameter}}`;break;case"CommandSubstitution":t+="$(...)";break;case"ArithmeticExpansion":t+=`$((${s.expression}))`;break;case"Glob":t+=s.pattern;break;default:break}return t}async function cr(e,t){let s=t.parts.map(u=>u.type==="Literal"?u.value:"\0").join(""),n=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!n||!s.endsWith(")"))return null;let r=n[1],i=[],a=!1,o="",l=!1;for(let u of t.parts)if(u.type==="Literal"){let f=u.value;if(!a){let d=f.indexOf("=(");d!==-1&&(a=!0,f=f.slice(d+2))}if(a){f.endsWith(")")&&(f=f.slice(0,-1));let d=f.split(/(\s+)/);for(let h of d)/^\s+$/.test(h)?(o||l)&&(i.push(o),o="",l=!1):h&&(o+=h)}}else if(a)if(u.type==="BraceExpansion")if(/^\[.+\]=/.test(o))o+=Rt({type:"Word",parts:[u]});else{(o||l)&&(i.push(o),o="",l=!1);let d=await Ce(e,{type:"Word",parts:[u]});i.push(...d.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await x(e,{type:"Word",parts:[u]});o+=f}(o||l)&&i.push(o);let c=i.map(u=>/^\[.+\]=/.test(u)?u:u===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(u)&&!u.startsWith("'")&&!u.startsWith('"')?`'${u.replace(/'/g,"'\\''")}'`:u);return`${r}=(${c.join(" ")})`}async function ur(e,t){let s=-1,n=-1,r=!1;for(let p=0;p<t.parts.length;p++){let v=t.parts[p];if(v.type==="Literal"){let b=v.value.indexOf("+=");if(b!==-1){let $=v.value.slice(0,b);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test($)){s=p,n=b,r=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test($)){s=p,n=b,r=!0;break}}let g=v.value.indexOf("=");if(g!==-1&&(g===0||v.value[g-1]!=="+")){let $=v.value.slice(0,g);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test($)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test($)){s=p,n=g;break}}}}if(s===-1)return null;let i=t.parts.slice(0,s),a=t.parts[s];if(a.type!=="Literal")return null;let o=r?2:1,l=a.value.slice(0,n),c=a.value.slice(n+o),u=t.parts.slice(s+1),f="";for(let p of i)f+=await x(e,{type:"Word",parts:[p]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},h=d.parts.length>0?await x(e,d):"";return`${f}${r?"+=":"="}${h}`}var ia=["tar","yq","xan","sqlite3","python3","python"];function fr(e){return ia.includes(e)}var F=Object.freeze({stdout:"",stderr:"",exitCode:0});function M(e=""){return{stdout:e,stderr:"",exitCode:0}}function _(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function P(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function X(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function Pe(e,t,s="",n=""){throw new Y(e,t,s,n)}function ie(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new Y(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function Ts(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Ie;return F}if(t.length>1)throw new B(1,"",`bash: break: too many arguments
6
+ `);let s=1;if(t.length>0){let n=Number.parseInt(t[0],10);if(Number.isNaN(n)||n<1)throw new B(128,"",`bash: break: ${t[0]}: numeric argument required
7
+ `);s=n}throw new fe(s)}async function xs(e,t){let s,n=!1,r=!1,i=0;for(;i<t.length;)if(t[i]==="--"){i++;break}else if(t[i]==="-L")r=!1,i++;else if(t[i]==="-P")r=!0,i++;else if(t[i].startsWith("-")&&t[i]!=="-")i++;else break;let a=t.slice(i);if(a.length===0||a[0]==="~"?s=e.state.env.get("HOME")||"/":a[0]==="-"?(s=e.state.previousDir,n=!0):s=a[0],!s.startsWith("/")&&!s.startsWith("./")&&!s.startsWith("../")&&s!=="."&&s!==".."){let f=e.state.env.get("CDPATH");if(f){let d=f.split(":").filter(h=>h);for(let h of d){let y=h.startsWith("/")?`${h}/${s}`:`${e.state.cwd}/${h}/${s}`;try{if((await e.fs.stat(y)).isDirectory){s=y,n=!0;break}}catch{}}}}let l=(s.startsWith("/")?s:`${e.state.cwd}/${s}`).split("/").filter(f=>f&&f!=="."),c="";for(let f of l)if(f==="..")c=c.split("/").slice(0,-1).join("/")||"/";else{c=c?`${c}/${f}`:`/${f}`;try{if(!(await e.fs.stat(c)).isDirectory)return _(`bash: cd: ${s}: Not a directory
8
+ `)}catch{return _(`bash: cd: ${s}: No such file or directory
9
+ `)}}let u=c||"/";if(r)try{u=await e.fs.realpath(u)}catch{}return e.state.previousDir=e.state.cwd,e.state.cwd=u,e.state.env.set("PWD",e.state.cwd),e.state.env.set("OLDPWD",e.state.previousDir),M(n?`${u}
10
+ `:"")}function Is(e,t){return e.fs.resolvePath(e.state.cwd,t)}var aa=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function Vt(e){return aa.includes(e)}async function Bt(e,t,s){let n=Is(e,s);switch(t){case"-e":case"-a":return e.fs.exists(n);case"-f":return await e.fs.exists(n)?(await e.fs.stat(n)).isFile:!1;case"-d":return await e.fs.exists(n)?(await e.fs.stat(n)).isDirectory:!1;case"-r":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&256)!==0:!1;case"-w":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&128)!==0:!1;case"-x":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&64)!==0:!1;case"-s":return await e.fs.exists(n)?(await e.fs.stat(n)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(n)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&512)!==0:!1;case"-g":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(n)?((await e.fs.stat(n)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(n);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].includes(n);case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return e.fs.exists(n);default:return!1}}var oa=["-nt","-ot","-ef"];function jt(e){return oa.includes(e)}async function Ht(e,t,s,n){let r=Is(e,s),i=Is(e,n);switch(t){case"-nt":try{let a=await e.fs.stat(r),o=await e.fs.stat(i);return a.mtime>o.mtime}catch{return!1}case"-ot":try{let a=await e.fs.stat(r),o=await e.fs.stat(i);return a.mtime<o.mtime}catch{return!1}case"-ef":try{if(!await e.fs.exists(r)||!await e.fs.exists(i))return!1;let a=e.fs.resolvePath(e.state.cwd,r),o=e.fs.resolvePath(e.state.cwd,i);return a===o}catch{return!1}default:return!1}}var la=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function Ut(e){return la.has(e)}function Zt(e,t,s){switch(e){case"-eq":return t===s;case"-ne":return t!==s;case"-lt":return t<s;case"-le":return t<=s;case"-gt":return t>s;case"-ge":return t>=s}}function vt(e){return e==="="||e==="=="||e==="!="}function qt(e,t,s,n=!1,r=!1,i=!1){if(n){let o=at(t,s,r,i);return e==="!="?!o:o}if(r){let o=t.toLowerCase()===s.toLowerCase();return e==="!="?!o:o}let a=t===s;return e==="!="?!a:a}var ca=new Set(["-z","-n"]);function Gt(e){return ca.has(e)}function Kt(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}async function Xt(e,t){let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let n=s[1],r=s[2];if(e.state.associativeArrays?.has(n)){let o=r;return(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),o=o.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(l,c)=>e.state.env.get(c)||""),e.state.env.has(`${n}_${o}`)}let a;try{let o=new V,l=Q(o,r);a=await j(e,l.expression)}catch{if(/^-?\d+$/.test(r))a=Number.parseInt(r,10);else{let o=e.state.env.get(r);a=o?Number.parseInt(o,10):0}}if(a<0){let o=se(e,n),l=e.state.currentLine;if(o.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${n}: bad array subscript
11
+ `,!1;if(a=Math.max(...o)+1+a,a<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${n}: bad array subscript
12
+ `,!1}return e.state.env.has(`${n}_${a}`)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?Fe(e,t).length>0:se(e,t).length>0}async function We(e,t){switch(t.type){case"CondBinary":{let s=await x(e,t.left),n=t.right.parts.length>0&&t.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped"&&t.operator!=="=~"),r;if(t.operator==="=~")if(n){let i=await x(e,t.right);r=Un(i)}else r=await qn(e,t.right);else vt(t.operator)&&!n?r=await Gn(e,t.right):r=await x(e,t.right);if(vt(t.operator)){let i=e.state.shoptOptions.nocasematch;return qt(t.operator,s,r,!n,i,!0)}if(Ut(t.operator))return Zt(t.operator,await hr(e,s),await hr(e,r));if(jt(t.operator))return Ht(e,t.operator,s,r);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,a=ha(r),l=mt(a,i?"i":"").match(s);if(_e(e,"BASH_REMATCH"),l)for(let c=0;c<l.length;c++)e.state.env.set(`BASH_REMATCH_${c}`,l[c]||"");return l!==null}catch{throw new Error("syntax error in regular expression")}case"<":return s<r;case">":return s>r;default:return!1}}case"CondUnary":{let s=await x(e,t.operand);return Vt(t.operator)?Bt(e,t.operator,s):Gt(t.operator)?Kt(t.operator,s):t.operator==="-v"?await Xt(e,s):t.operator==="-o"?Ls(e,s):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await x(e,t.operand.expression.word)})`!=="":!await We(e,t.operand);case"CondAnd":return await We(e,t.left)?await We(e,t.right):!1;case"CondOr":return await We(e,t.left)?!0:await We(e,t.right);case"CondGroup":return await We(e,t.expression);case"CondWord":return await x(e,t.word)!=="";default:return!1}}async function bt(e,t){if(t.length===0)return P("","",1);if(t.length===1)return X(!!t[0]);if(t.length===2){let n=t[0],r=t[1];return n==="("?_(`test: '(' without matching ')'
13
+ `,2):Vt(n)?X(await Bt(e,n,r)):Gt(n)?X(Kt(n,r)):n==="!"?X(!r):n==="-v"?X(await Xt(e,r)):n==="-o"?X(Ls(e,r)):n==="="||n==="=="||n==="!="||n==="<"||n===">"||n==="-eq"||n==="-ne"||n==="-lt"||n==="-le"||n==="-gt"||n==="-ge"||n==="-nt"||n==="-ot"||n==="-ef"?_(`test: ${n}: unary operator expected
14
+ `,2):P("","",1)}if(t.length===3){let n=t[0],r=t[1],i=t[2];if(vt(r))return X(qt(r,n,i));if(Ut(r)){let a=Yt(n),o=Yt(i);return!a.valid||!o.valid?P("","",2):X(Zt(r,a.value,o.value))}if(jt(r))return X(await Ht(e,r,n,i));switch(r){case"-a":return X(n!==""&&i!=="");case"-o":return X(n!==""||i!=="");case">":return X(n>i);case"<":return X(n<i)}if(n==="!"){let a=await bt(e,[r,i]);return P("",a.stderr,a.exitCode===0?1:a.exitCode===1?0:a.exitCode)}if(n==="("&&i===")")return X(r!=="")}if(t.length===4){if(t[0]==="!"){let n=await bt(e,t.slice(1));return P("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(t[0]==="("&&t[3]===")")return bt(e,[t[1],t[2]])}let s=await mr(e,t,0);return s.pos<t.length?_(`test: too many arguments
15
+ `,2):X(s.value)}async function mr(e,t,s){return ua(e,t,s)}async function ua(e,t,s){let{value:n,pos:r}=await dr(e,t,s);for(;t[r]==="-o";){let i=await dr(e,t,r+1);n=n||i.value,r=i.pos}return{value:n,pos:r}}async function dr(e,t,s){let{value:n,pos:r}=await Rs(e,t,s);for(;t[r]==="-a";){let i=await Rs(e,t,r+1);n=n&&i.value,r=i.pos}return{value:n,pos:r}}async function Rs(e,t,s){if(t[s]==="!"){let{value:n,pos:r}=await Rs(e,t,s+1);return{value:!n,pos:r}}return fa(e,t,s)}async function fa(e,t,s){let n=t[s];if(n==="("){let{value:i,pos:a}=await mr(e,t,s+1);return{value:i,pos:t[a]===")"?a+1:a}}let r=t[s+1];if(vt(r)){let i=n,a=t[s+2]??"";return{value:qt(r,i,a),pos:s+3}}if(Ut(r)){let i=Yt(n),a=Yt(t[s+2]??"0");return!i.valid||!a.valid?{value:!1,pos:s+3}:{value:Zt(r,i.value,a.value),pos:s+3}}if(jt(r)){let i=n,a=t[s+2]??"";return{value:await Ht(e,r,i,a),pos:s+3}}if(Vt(n)){let i=t[s+1]??"";return{value:await Bt(e,n,i),pos:s+2}}if(Gt(n)){let i=t[s+1]??"";return{value:Kt(n,i),pos:s+2}}if(n==="-v"){let i=t[s+1]??"";return{value:await Xt(e,i),pos:s+2}}if(n==="-o"){let i=t[s+1]??"";return{value:Ls(e,i),pos:s+2}}return{value:n!==void 0&&n!=="",pos:s+1}}function at(e,t,s=!1,n=!1){let r=`^${yr(t,n)}$`;return mt(r,s?"is":"s").test(e)}function yr(e,t){let s="";for(let n=0;n<e.length;n++){let r=e[n];if(t&&(r==="@"||r==="*"||r==="+"||r==="?"||r==="!")&&n+1<e.length&&e[n+1]==="("){let i=gr(e,n+1);if(i!==-1){let a=e.slice(n+2,i),o=wr(a),l=o.map(u=>yr(u,t)),c=l.length>0?l.join("|"):"(?:)";if(r==="@")s+=`(?:${c})`;else if(r==="*")s+=`(?:${c})*`;else if(r==="+")s+=`(?:${c})+`;else if(r==="?")s+=`(?:${c})?`;else if(r==="!")if(i<e.length-1){let f=o.map(h=>vr(h,t));if(f.every(h=>h!==null)&&f.every(h=>h===f[0])&&f[0]!==null){let h=f[0];if(h===0)s+="(?:.+)";else{let y=[];h>0&&y.push(`.{0,${h-1}}`),y.push(`.{${h+1},}`),y.push(`(?!(?:${c})).{${h}}`),s+=`(?:${y.join("|")})`}}else s+=`(?:(?!(?:${c})).)*?`}else s+=`(?!(?:${c})$).*`;n=i;continue}}if(r==="\\")if(n+1<e.length){let i=e[n+1];/[\\^$.|+(){}[\]*?]/.test(i)?s+=`\\${i}`:s+=i,n++}else s+="\\\\";else if(r==="*")s+=".*";else if(r==="?")s+=".";else if(r==="["){let i=e.indexOf("]",n+1);i!==-1?(s+=e.slice(n,i+1),n=i):s+="\\["}else/[\\^$.|+(){}]/.test(r)?s+=`\\${r}`:s+=r}return s}function gr(e,t){let s=1,n=t+1;for(;n<e.length&&s>0;){let r=e[n];if(r==="\\"){n+=2;continue}if(r==="(")s++;else if(r===")"&&(s--,s===0))return n;n++}return-1}function wr(e){let t=[],s="",n=0,r=0;for(;r<e.length;){let i=e[r];if(i==="\\"){s+=i,r+1<e.length?(s+=e[r+1],r+=2):r++;continue}i==="("?(n++,s+=i):i===")"?(n--,s+=i):i==="|"&&n===0?(t.push(s),s=""):s+=i,r++}return t.push(s),t}function vr(e,t){let s=0,n=0;for(;n<e.length;){let r=e[n];if(t&&(r==="@"||r==="*"||r==="+"||r==="?"||r==="!")&&n+1<e.length&&e[n+1]==="("){let i=gr(e,n+1);if(i!==-1){if(r==="@"){let a=e.slice(n+2,i),l=wr(a).map(c=>vr(c,t));if(l.every(c=>c!==null)&&l.every(c=>c===l[0])){s+=l[0],n=i+1;continue}return null}return null}}if(r==="*")return null;if(r==="?"){s+=1,n++;continue}if(r==="["){let i=e.indexOf("]",n+1);if(i!==-1){s+=1,n=i+1;continue}s+=1,n++;continue}if(r==="\\"){s+=1,n+=2;continue}s+=1,n++}return s}function Ls(e,t){let n=new Map([["errexit",()=>e.state.options.errexit===!0],["nounset",()=>e.state.options.nounset===!0],["pipefail",()=>e.state.options.pipefail===!0],["xtrace",()=>e.state.options.xtrace===!0],["e",()=>e.state.options.errexit===!0],["u",()=>e.state.options.nounset===!0],["x",()=>e.state.options.xtrace===!0]]).get(t);return n?n():!1}async function hr(e,t){if(t=t.trim(),t==="")return 0;if(/^[+-]?(\d+#[a-zA-Z0-9@_]+|0[xX][0-9a-fA-F]+|0[0-7]+|\d+)$/.test(t))return pr(t);try{let s=new V,n=Q(s,t);return await j(e,n.expression)}catch{return pr(t)}}function da(e,t){let s=0;for(let n of e){let r;if(n>="0"&&n<="9")r=n.charCodeAt(0)-48;else if(n>="a"&&n<="z")r=n.charCodeAt(0)-97+10;else if(n>="A"&&n<="Z")r=n.charCodeAt(0)-65+36;else if(n==="@")r=62;else if(n==="_")r=63;else return Number.NaN;if(r>=t)return Number.NaN;s=s*t+r}return s}function pr(e){if(e=e.trim(),e==="")return 0;let t=!1;e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1));let s,n=e.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(n){let r=Number.parseInt(n[1],10);r>=2&&r<=64?s=da(n[2],r):s=0}else/^0[xX][0-9a-fA-F]+$/.test(e)?s=Number.parseInt(e,16):/^0[0-7]+$/.test(e)?s=Number.parseInt(e,8):s=Number.parseInt(e,10);return Number.isNaN(s)&&(s=0),t?-s:s}function Yt(e){if(e=e.trim(),e==="")return{value:0,valid:!0};let t=!1;if(e.startsWith("-")?(t=!0,e=e.slice(1)):e.startsWith("+")&&(e=e.slice(1)),!/^\d+$/.test(e))return{value:0,valid:!1};let s=Number.parseInt(e,10);return Number.isNaN(s)?{value:0,valid:!1}:{value:t?-s:s,valid:!0}}function ha(e){let t="",s=0;for(;s<e.length;)if(e[s]==="\\"&&s+1<e.length)t+=e[s]+e[s+1],s+=2;else if(e[s]==="["){let n=pa(e,s);t+=n.converted,s=n.endIndex}else t+=e[s],s++;return t}function pa(e,t){let s=t+1,n="[";s<e.length&&(e[s]==="^"||e[s]==="!")&&(n+="^",s++);let r=!1;s<e.length&&e[s]==="]"&&(r=!0,s++);let i=!1;s<e.length&&e[s]==="["&&s+1<e.length&&e[s+1]!==":"&&(i=!0,s++);let a="",o=!1;for(;s<e.length;){let l=e[s];if(l==="]"){o=!0,s++;break}if(l==="["&&s+1<e.length&&e[s+1]===":"){let c=e.indexOf(":]",s+2);if(c!==-1){let u=e.slice(s+2,c);a+=ma(u),s=c+2;continue}}if(l==="["&&s+1<e.length){let c=e[s+1];if(c==="."||c==="="){let u=`${c}]`,f=e.indexOf(u,s+2);if(f!==-1){let d=e.slice(s+2,f);a+=d,s=f+2;continue}}}if(l==="\\"&&s+1<e.length){a+=l+e[s+1],s+=2;continue}a+=l,s++}return o?(r&&(n+="\\]"),i&&(n+="\\["),n+=a,n+="]",{converted:n,endIndex:s}):{converted:"\\[",endIndex:t+1}}function ma(e){return new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]).get(e)??""}function ke(e){let t=[],s="",n=!1,r=!1,i=!1,a=!1;for(let o of e){if(i){s+=o,i=!1,a=!0;continue}if(o==="\\"){i=!0;continue}if(o==="'"&&!r){n||(a=!0),n=!n;continue}if(o==='"'&&!n){r||(a=!0),r=!r;continue}if((o===" "||o===" "||o===`
16
+ `)&&!n&&!r){a&&(t.push(s),s="",a=!1);continue}s+=o,a=!0}return a&&t.push(s),t}function Qt(e){let t=[],s=0;for(;s<e.length;){for(;s<e.length&&/\s/.test(e[s]);)s++;if(s>=e.length)break;if(e[s]!=="["){s++;continue}s++;let n="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)n+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&e[s]!=="]"&&e[s]!=="=";)n+=e[s],s++;for(;s<e.length&&e[s]!=="]";)s++;if(e[s]==="]"&&s++,e[s]!=="=")continue;s++;let r="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)e[s]==="\\"&&s+1<e.length&&s++,r+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&!/\s/.test(e[s]);)r+=e[s],s++;t.push([n,r])}return t}function br(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(t)return{name:t[1],isArray:!0,arrayElements:ke(t[2])};let s=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(s)return{name:s[1],isArray:!1,arrayIndex:s[2],value:s[3]};if(e.includes("=")){let n=e.indexOf("=");return{name:e.slice(0,n),isArray:!1,value:e.slice(n+1)}}return{name:e,isArray:!1}}async function ya(e,t){try{let s=new V,n=Q(s,t);return await j(e,n.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}async function $r(e,t,s={}){let{name:n,isArray:r,arrayElements:i,value:a,arrayIndex:o}=t,{makeReadonly:l=!1,checkReadonly:c=!0}=s;if(c){let u=ee(e,n);if(u)return u}if(r&&i){for(let u=0;u<i.length;u++)e.state.env.set(`${n}_${u}`,i[u]);e.state.env.set(`${n}__length`,String(i.length))}else if(o!==void 0&&a!==void 0){let u=await ya(e,o);e.state.env.set(`${n}_${u}`,a);let f=parseInt(e.state.env.get(`${n}__length`)??"0",10);u>=f&&e.state.env.set(`${n}__length`,String(u+1))}else a!==void 0&&e.state.env.set(n,a);return l&&ce(e,n),null}function ze(e,t){e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,e.state.callDepth)}function ot(e,t){return e.state.localVarDepth?.get(t)}function Jt(e,t){e.state.localVarDepth?.delete(t)}function Er(e,t,s){e.state.localVarStack=e.state.localVarStack||new Map;let n=e.state.localVarStack.get(t)||[];n.push({value:s,scopeIndex:e.state.localScopes.length-1}),e.state.localVarStack.set(t,n)}function es(e,t){let s=e.state.localVarStack?.get(t);if(!(!s||s.length===0))return s.pop()}function Sr(e,t){if(e.state.localVarStack)for(let[s,n]of e.state.localVarStack.entries()){for(;n.length>0&&n[n.length-1].scopeIndex===t;)n.pop();n.length===0&&e.state.localVarStack.delete(s)}}var Fs=new Set([":",".","break","continue","eval","exec","exit","export","readonly","return","set","shift","trap","unset"]);function Ar(e){return Fs.has(e)}var Ms=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),lt=new Set([":","true","false","cd","export","unset","exit","local","set","break","continue","return","eval","shift","getopts","compgen","complete","compopt","pushd","popd","dirs","source",".","read","mapfile","readarray","declare","typeset","readonly","let","command","shopt","exec","test","[","echo","printf","pwd","alias","unalias","type","hash","ulimit","umask","trap","times","wait","kill","jobs","fg","bg","disown","suspend","fc","history","help","enable","builtin","caller"]);async function qe(e,t,s,n){try{if((await e.fs.stat(t)).isDirectory)return`bash: ${s}: Is a directory
17
+ `;if(n.checkNoclobber&&e.state.options.noclobber&&!n.isClobber&&s!=="/dev/null")return`bash: ${s}: cannot overwrite existing file
18
+ `}catch{}return null}function Ve(e){let s=Math.min(e.length,8192);for(let n=0;n<s;n++)if(e.charCodeAt(n)>127)return"utf8";return"binary"}function ga(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let n=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(n)||n<0)return null;let r=s+1,i=t.slice(r,r+n),a=r+n+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}async function _r(e,t){let s=new Map;for(let n=0;n<t.length;n++){let r=t[n];if(r.target.type==="HereDoc")continue;if(r.operator===">&"||r.operator==="<&"){if(As(e,r.target))return{targets:s,error:`bash: $@: ambiguous redirect
19
+ `};s.set(n,await x(e,r.target))}else{let a=await Ft(e,r.target);if("error"in a)return{targets:s,error:a.error};s.set(n,a.target)}}return{targets:s}}function wa(e){e.state.nextFd===void 0&&(e.state.nextFd=10);let t=e.state.nextFd,s=e.limits.maxFileDescriptors;if(t>=s)throw new Error(`bash: cannot allocate file descriptor: too many open files (max ${s})`);return e.state.nextFd++,t}async function ts(e,t){for(let s of t){if(!s.fdVariable)continue;if(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),(s.operator===">&"||s.operator==="<&")&&s.target.type==="Word"&&await x(e,s.target)==="-"){let i=e.state.env.get(s.fdVariable);if(i!==void 0){let a=Number.parseInt(i,10);Number.isNaN(a)||e.state.fileDescriptors.delete(a)}continue}let n=wa(e);if(e.state.env.set(s.fdVariable,String(n)),s.target.type==="Word"){let r=await x(e,s.target);if(s.operator===">&"||s.operator==="<&"){let i=Number.parseInt(r,10);if(!Number.isNaN(i)){let a=e.state.fileDescriptors.get(i);a!==void 0&&(ie(e),e.state.fileDescriptors.set(n,a));continue}}if(s.operator===">"||s.operator===">>"||s.operator===">|"||s.operator==="&>"||s.operator==="&>>"){let i=e.fs.resolvePath(e.state.cwd,r);(s.operator===">"||s.operator===">|"||s.operator==="&>")&&await e.fs.writeFile(i,"","binary"),ie(e),e.state.fileDescriptors.set(n,`__file__:${i}`)}else if(s.operator==="<<<")ie(e),e.state.fileDescriptors.set(n,`${r}
20
+ `);else if(s.operator==="<"||s.operator==="<>")try{let i=e.fs.resolvePath(e.state.cwd,r),a=await e.fs.readFile(i);ie(e),e.state.fileDescriptors.set(n,a)}catch{return P("",`bash: ${r}: No such file or directory
21
+ `,1)}}}return null}async function Ne(e,t){for(let s of t){if(s.target.type==="HereDoc")continue;let n=s.operator===">&";if(s.operator!==">"&&s.operator!==">|"&&s.operator!=="&>"&&!n)continue;let r;if(n){if(r=await x(e,s.target),r==="-"||!Number.isNaN(Number.parseInt(r,10))||s.fd!=null)continue}else{let o=await Ft(e,s.target);if("error"in o)return P("",o.error,1);r=o.target}let i=e.fs.resolvePath(e.state.cwd,r),a=s.operator===">|";if(i.includes("\0"))return P("",`bash: ${r}: No such file or directory
22
+ `,1);try{let o=await e.fs.stat(i);if(o.isDirectory)return P("",`bash: ${r}: Is a directory
23
+ `,1);if(e.state.options.noclobber&&!a&&!o.isDirectory&&r!=="/dev/null")return P("",`bash: ${r}: cannot overwrite existing file
24
+ `,1)}catch{}if(r!=="/dev/null"&&r!=="/dev/stdout"&&r!=="/dev/stderr"&&r!=="/dev/full"&&await e.fs.writeFile(i,"","binary"),r==="/dev/full")return P("",`bash: /dev/full: No space left on device
25
+ `,1)}return null}async function q(e,t,s,n){let{stdout:r,stderr:i,exitCode:a}=t,l=t.stdoutKind==="bytes"||t.stdoutKind===void 0&&t.stdoutEncoding==="binary"?"binary":"utf8",c=h=>l;for(let h=0;h<s.length;h++){let y=s[h];if(y.target.type==="HereDoc")continue;let p,v=n?.get(h);if(v!==void 0)p=v;else if(y.operator===">&"||y.operator==="<&"){if(As(e,y.target)){i+=`bash: $@: ambiguous redirect
26
+ `,a=1,r="";continue}p=await x(e,y.target)}else{let g=await Ft(e,y.target);if("error"in g){i+=g.error,a=1,r="";continue}p=g.target}if(!y.fdVariable){if(p.includes("\0")){i+=`bash: ${p.replace(/\0/g,"")}: No such file or directory
27
+ `,a=1,r="";continue}switch(y.operator){case">":case">|":{let b=y.fd??1,g=y.operator===">|";if(b===1){if(p==="/dev/stdout")break;if(p==="/dev/stderr"){i+=r,r="";break}if(p==="/dev/full"){i+=`bash: echo: write error: No space left on device
28
+ `,a=1,r="";break}let $=e.fs.resolvePath(e.state.cwd,p),m=await qe(e,$,p,{checkNoclobber:!0,isClobber:g});if(m){i+=m,a=1,r="";break}await e.fs.writeFile($,r,c(r)),r=""}else if(b===2){if(p==="/dev/stderr")break;if(p==="/dev/stdout"){r+=i,i="";break}if(p==="/dev/full"){i+=`bash: echo: write error: No space left on device
29
+ `,a=1;break}if(p==="/dev/null")i="";else{let $=e.fs.resolvePath(e.state.cwd,p),m=await qe(e,$,p,{checkNoclobber:!0,isClobber:g});if(m){i+=m,a=1;break}await e.fs.writeFile($,i,Ve(i)),i=""}}break}case">>":{let b=y.fd??1;if(b===1){if(p==="/dev/stdout")break;if(p==="/dev/stderr"){i+=r,r="";break}if(p==="/dev/full"){i+=`bash: echo: write error: No space left on device
30
+ `,a=1,r="";break}let g=e.fs.resolvePath(e.state.cwd,p),$=await qe(e,g,p,{});if($){i+=$,a=1,r="";break}await e.fs.appendFile(g,r,c(r)),r=""}else if(b===2){if(p==="/dev/stderr")break;if(p==="/dev/stdout"){r+=i,i="";break}if(p==="/dev/full"){i+=`bash: echo: write error: No space left on device
31
+ `,a=1;break}let g=e.fs.resolvePath(e.state.cwd,p),$=await qe(e,g,p,{});if($){i+=$,a=1;break}await e.fs.appendFile(g,i,Ve(i)),i=""}break}case">&":case"<&":{let b=y.fd??1;if(p==="-")break;if(p.endsWith("-")){let g=p.slice(0,-1),$=Number.parseInt(g,10);if(!Number.isNaN($)){let m=e.state.fileDescriptors?.get($);m!==void 0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(b,m),$>=3&&e.state.fileDescriptors?.delete($)):$===1||$===2?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(b,`__dupout__:${$}`)):$===0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(b,`__dupin__:${$}`)):$>=3&&(i+=`bash: ${$}: Bad file descriptor
32
+ `,a=1)}break}if(p==="2"||p==="&2")b===1&&(i+=r,r="");else if(p==="1"||p==="&1")r+=i,i="";else{let g=Number.parseInt(p,10);if(Number.isNaN(g)){if(y.operator===">&"){let $=e.fs.resolvePath(e.state.cwd,p),m=await qe(e,$,p,{checkNoclobber:!0});if(m){i=m,a=1,r="";break}if(y.fd==null){let w=r+i;await e.fs.writeFile($,w,c(w)),r="",i=""}else b===1?(await e.fs.writeFile($,r,c(r)),r=""):b===2&&(await e.fs.writeFile($,i,Ve(i)),i="")}}else{let $=e.state.fileDescriptors?.get(g);if($?.startsWith("__file__:")){let m=$.slice(9);b===1?(await e.fs.appendFile(m,r,c(r)),r=""):b===2&&(await e.fs.appendFile(m,i,Ve(i)),i="")}else if($?.startsWith("__rw__:")){let m=ga($);m&&(b===1?(await e.fs.appendFile(m.path,r,c(r)),r=""):b===2&&(await e.fs.appendFile(m.path,i,Ve(i)),i=""))}else if($?.startsWith("__dupout__:")){let m=Number.parseInt($.slice(11),10);if(m!==1)if(m===2)b===1&&(i+=r,r="");else{let w=e.state.fileDescriptors?.get(m);if(w?.startsWith("__file__:")){let E=w.slice(9);b===1?(await e.fs.appendFile(E,r,c(r)),r=""):b===2&&(await e.fs.appendFile(E,i,Ve(i)),i="")}}}else $?.startsWith("__dupin__:")?(i+=`bash: ${g}: Bad file descriptor
33
+ `,a=1,r=""):g>=3&&(i+=`bash: ${g}: Bad file descriptor
34
+ `,a=1,r="")}}break}case"&>":{if(p==="/dev/full"){i=`bash: echo: write error: No space left on device
35
+ `,a=1,r="";break}let b=e.fs.resolvePath(e.state.cwd,p),g=await qe(e,b,p,{checkNoclobber:!0});if(g){i=g,a=1,r="";break}let $=r+i;await e.fs.writeFile(b,$,c($)),r="",i="";break}case"&>>":{if(p==="/dev/full"){i=`bash: echo: write error: No space left on device
36
+ `,a=1,r="";break}let b=e.fs.resolvePath(e.state.cwd,p),g=await qe(e,b,p,{});if(g){i=g,a=1,r="";break}let $=r+i;await e.fs.appendFile(b,$,c($)),r="",i="";break}}}}let u=e.state.fileDescriptors?.get(1);if(u){if(u==="__dupout__:2")i+=r,r="";else if(u.startsWith("__file__:")){let h=u.slice(9);await e.fs.appendFile(h,r,c(r)),r=""}else if(u.startsWith("__file_append__:")){let h=u.slice(16);await e.fs.appendFile(h,r,c(r)),r=""}}let f=e.state.fileDescriptors?.get(2);if(f){if(f==="__dupout__:1")r+=i,i="";else if(f.startsWith("__file__:")){let h=f.slice(9);await e.fs.appendFile(h,i,Ve(i)),i=""}else if(f.startsWith("__file_append__:")){let h=f.slice(16);await e.fs.appendFile(h,i,Ve(i)),i=""}}let d=P(r,i,a);return t.stdoutKind&&(d.stdoutKind=t.stdoutKind),t.stdoutEncoding==="binary"&&(d.stdoutEncoding="binary"),d}function Cr(e,t){if(e.state.options.posix&&Fs.has(t.name)){let n=`bash: line ${e.state.currentLine}: \`${t.name}': is a special builtin
37
+ `;throw new B(2,"",n)}let s={...t,sourceFile:t.sourceFile??e.state.currentSource??"main"};return e.state.functions.set(t.name,s),F}async function va(e,t){let s="";for(let n of t)if((n.operator==="<<"||n.operator==="<<-")&&n.target.type==="HereDoc"){let r=n.target,i=await x(e,r.content);r.stripTabs&&(i=i.split(`
38
+ `).map(o=>o.replace(/^\t+/,"")).join(`
39
+ `)),(n.fd??0)===0&&(s=i)}else if(n.operator==="<<<"&&n.target.type==="Word")s=`${await x(e,n.target)}
40
+ `;else if(n.operator==="<"&&n.target.type==="Word"){let r=await x(e,n.target),i=e.fs.resolvePath(e.state.cwd,r);try{s=await e.fs.readFile(i)}catch{}}return s}async function ss(e,t,s,n="",r){e.state.callDepth++,e.state.callDepth>e.limits.maxCallDepth&&(e.state.callDepth--,Pe(`${t.name}: maximum recursion depth (${e.limits.maxCallDepth}) exceeded, increase executionLimits.maxCallDepth`,"recursion")),e.state.funcNameStack||(e.state.funcNameStack=[]),e.state.callLineStack||(e.state.callLineStack=[]),e.state.sourceStack||(e.state.sourceStack=[]),e.state.funcNameStack.unshift(t.name),e.state.callLineStack.unshift(r??e.state.currentLine),e.state.sourceStack.unshift(t.sourceFile??"main"),e.state.localScopes.push(new Map),e.state.localExportedVars||(e.state.localExportedVars=[]),e.state.localExportedVars.push(new Set);let i=new Map;for(let c=0;c<s.length;c++)i.set(String(c+1),e.state.env.get(String(c+1))),e.state.env.set(String(c+1),s[c]);i.set("@",e.state.env.get("@")),i.set("#",e.state.env.get("#")),e.state.env.set("@",s.join(" ")),e.state.env.set("#",String(s.length));let a=()=>{let c=e.state.localScopes.length-1,u=e.state.localScopes.pop();if(u)for(let[f,d]of u)d===void 0?e.state.env.delete(f):e.state.env.set(f,d);if(Sr(e,c),e.state.fullyUnsetLocals)for(let[f,d]of e.state.fullyUnsetLocals.entries())d===c&&e.state.fullyUnsetLocals.delete(f);if(e.state.localExportedVars&&e.state.localExportedVars.length>0){let f=e.state.localExportedVars.pop();if(f)for(let d of f)e.state.exportedVars?.delete(d)}for(let[f,d]of i)d===void 0?e.state.env.delete(f):e.state.env.set(f,d);e.state.funcNameStack?.shift(),e.state.callLineStack?.shift(),e.state.sourceStack?.shift(),e.state.callDepth--},{targets:o,error:l}=await _r(e,t.redirections);if(l)return a(),P("",l,1);try{let c=await va(e,t.redirections),u=n||c,f=await e.executeCommand(t.body,u);return a(),q(e,f,t.redirections,o)}catch(c){if(a(),c instanceof le){let u=P(c.stdout,c.stderr,c.exitCode);return q(e,u,t.redirections,o)}throw c}}var kr=["!","[[","]]","case","do","done","elif","else","esac","fi","for","function","if","in","then","time","until","while","{","}"],zs=[".",":","[","alias","bg","bind","break","builtin","caller","cd","command","compgen","complete","compopt","continue","declare","dirs","disown","echo","enable","eval","exec","exit","export","false","fc","fg","getopts","hash","help","history","jobs","kill","let","local","logout","mapfile","popd","printf","pushd","pwd","read","readarray","readonly","return","set","shift","shopt","source","suspend","test","times","trap","true","type","typeset","ulimit","umask","unalias","unset","wait"],ba=["autocd","assoc_expand_once","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","dotglob","execfail","expand_aliases","extdebug","extglob","extquote","failglob","force_fignore","globasciiranges","globstar","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lastpipe","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","nocaseglob","nocasematch","nullglob","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath","xpg_echo"],$a=zs;async function Vs(e,t){let s=[],n=null,r="",i="",a=null,o=!1,l=!1,c=!1,u=null,f=null,d=null,h=[],y=["alias","arrayvar","binding","builtin","command","directory","disabled","enabled","export","file","function","group","helptopic","hostname","job","keyword","running","service","setopt","shopt","signal","stopped","user","variable"];for(let m=0;m<t.length;m++){let w=t[m];if(w==="-v")s.push("variable");else if(w==="-e")s.push("export");else if(w==="-f")s.push("file");else if(w==="-d")s.push("directory");else if(w==="-k")s.push("keyword");else if(w==="-A"){if(m++,m>=t.length)return _(`compgen: -A: option requires an argument
41
+ `,2);let E=t[m];if(!y.includes(E))return _(`compgen: ${E}: invalid action name
42
+ `,2);s.push(E)}else if(w==="-W"){if(m++,m>=t.length)return _(`compgen: -W: option requires an argument
43
+ `,2);n=t[m]}else if(w==="-P"){if(m++,m>=t.length)return _(`compgen: -P: option requires an argument
44
+ `,2);r=t[m]}else if(w==="-S"){if(m++,m>=t.length)return _(`compgen: -S: option requires an argument
45
+ `,2);i=t[m]}else if(w==="-o"){if(m++,m>=t.length)return _(`compgen: -o: option requires an argument
46
+ `,2);let E=t[m];if(E==="plusdirs")o=!0;else if(E==="dirnames")l=!0;else if(E==="default")c=!0;else if(!(E==="filenames"||E==="nospace"||E==="bashdefault"||E==="noquote"))return _(`compgen: ${E}: invalid option name
47
+ `,2)}else if(w==="-F"){if(m++,m>=t.length)return _(`compgen: -F: option requires an argument
48
+ `,2);f=t[m]}else if(w==="-C"){if(m++,m>=t.length)return _(`compgen: -C: option requires an argument
49
+ `,2);d=t[m]}else if(w==="-X"){if(m++,m>=t.length)return _(`compgen: -X: option requires an argument
50
+ `,2);u=t[m]}else if(w==="-G"){if(m++,m>=t.length)return _(`compgen: -G: option requires an argument
51
+ `,2)}else if(w==="--"){h.push(...t.slice(m+1));break}else w.startsWith("-")||h.push(w)}a=h[0]??null;let p=[];if(l){let m=await Ws(e,a);p.push(...m)}if(c){let m=await Pr(e,a);p.push(...m)}for(let m of s)if(m==="variable"){let w=Ea(e,a);p.push(...w)}else if(m==="export"){let w=Sa(e,a);p.push(...w)}else if(m==="function"){let w=Aa(e,a);p.push(...w)}else if(m==="builtin"){let w=_a(a);p.push(...w)}else if(m==="keyword"){let w=Ca(a);p.push(...w)}else if(m==="alias"){let w=Pa(e,a);p.push(...w)}else if(m==="shopt"){let w=ka(a);p.push(...w)}else if(m==="helptopic"){let w=Na(a);p.push(...w)}else if(m==="directory"){let w=await Ws(e,a);p.push(...w)}else if(m==="file"){let w=await Pr(e,a);p.push(...w)}else if(m==="user"){let w=Oa(a);p.push(...w)}else if(m==="command"){let w=await Da(e,a);p.push(...w)}if(n!==null)try{let m=await Ta(e,n),w=xa(e,m);for(let E of w)(a===null||E.startsWith(a))&&p.push(E)}catch{return P("","",1)}if(o){let m=await Ws(e,a);for(let w of m)p.includes(w)||p.push(w)}let v="";if(f!==null){let m=e.state.functions.get(f);if(m){let w=new Map;w.set("COMP_WORDS__length",e.state.env.get("COMP_WORDS__length")),e.state.env.set("COMP_WORDS__length","0"),w.set("COMP_CWORD",e.state.env.get("COMP_CWORD")),e.state.env.set("COMP_CWORD","-1"),w.set("COMP_LINE",e.state.env.get("COMP_LINE")),e.state.env.set("COMP_LINE",""),w.set("COMP_POINT",e.state.env.get("COMP_POINT")),e.state.env.set("COMP_POINT","0");let E=new Map;for(let O of e.state.env.keys())(O==="COMPREPLY"||O.startsWith("COMPREPLY_")||O==="COMPREPLY__length")&&(E.set(O,e.state.env.get(O)),e.state.env.delete(O));let S=["compgen",h[0]??"",""];try{let O=await ss(e,m,S,"");if(O.exitCode!==0)return ct(e,w),ct(e,E),P("",O.stderr,1);v=O.stdout;let N=Ia(e);p.push(...N)}catch{return ct(e,w),ct(e,E),P("","",1)}ct(e,w),ct(e,E)}}if(d!==null)try{let m=$e(d),w=await e.executeScript(m);if(w.exitCode!==0)return P("",w.stderr,w.exitCode);if(w.stdout){let E=w.stdout.split(`
52
+ `);for(let S of E)S.length>0&&p.push(S)}}catch(m){if(m.name==="ParseException")return _(`compgen: -C: ${m.message}
53
+ `,2);throw m}let b=p;if(u!==null){let m=u.startsWith("!"),w=m?u.slice(1):u;b=p.filter(E=>{let S=at(E,w,!1,!0);return m?S:!S})}if(b.length===0&&a!==null)return P(v,"",1);let g=b.map(m=>`${r}${m}${i}`).join(`
54
+ `),$=v+(g?`${g}
55
+ `:"");return M($)}function Ea(e,t){let s=new Set;for(let r of e.state.env.keys()){if(r.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(r)||r.endsWith("__length"))continue;let i=r.split("_")[0];/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r)?s.add(r):i&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i)&&e.state.env.has(`${i}__length`)&&s.add(i)}let n=Array.from(s);return t!==null&&(n=n.filter(r=>r.startsWith(t))),n.sort()}function Sa(e,t){let s=e.state.exportedVars??new Set,n=Array.from(s);return t!==null&&(n=n.filter(r=>r.startsWith(t))),n=n.filter(r=>r.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(r)||r.endsWith("__length")?!1:e.state.env.has(r)),n.sort()}function Aa(e,t){let s=Array.from(e.state.functions.keys());return t!==null&&(s=s.filter(n=>n.startsWith(t))),s.sort()}function _a(e){let t=[...zs];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Ca(e){let t=[...kr];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Pa(e,t){let s=[];for(let r of e.state.env.keys())if(r.startsWith("BASH_ALIAS_")){let i=r.slice(11);s.push(i)}let n=s;return t!==null&&(n=n.filter(r=>r.startsWith(t))),n.sort()}function ka(e){let t=[...ba];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Na(e){let t=[...$a];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}async function Ws(e,t){let s=[];try{let n=e.state.cwd,r=t??"";if(t){let a=t.lastIndexOf("/");if(a!==-1){let o=t.slice(0,a)||"/";r=t.slice(a+1),o.startsWith("/")?n=o:n=`${e.state.cwd}/${o}`}}let i=await e.fs.readdir(n);for(let a of i){let o=`${n}/${a}`;try{if((await e.fs.stat(o)).isDirectory&&(!r||a.startsWith(r)))if(t?.includes("/")){let c=t.lastIndexOf("/"),u=t.slice(0,c+1);s.push(u+a)}else s.push(a)}catch{}}}catch{}return s.sort()}async function Pr(e,t){let s=[];try{let n=e.state.cwd,r=t??"";if(t){let a=t.lastIndexOf("/");if(a!==-1){let o=t.slice(0,a)||"/";r=t.slice(a+1),o.startsWith("/")?n=o:n=`${e.state.cwd}/${o}`}}let i=await e.fs.readdir(n);for(let a of i)if(!r||a.startsWith(r))if(t?.includes("/")){let o=t.lastIndexOf("/"),l=t.slice(0,o+1);s.push(l+a)}else s.push(a)}catch{}return s.sort()}function Oa(e){return["root","nobody"]}async function Da(e,t){let s=new Set;for(let i of zs)s.add(i);for(let i of e.state.functions.keys())s.add(i);for(let i of e.state.env.keys())i.startsWith("BASH_ALIAS_")&&s.add(i.slice(11));for(let i of kr)s.add(i);let n=e.state.env.get("PATH")??"/usr/bin:/bin";for(let i of n.split(":"))if(i)try{let a=await e.fs.readdir(i);for(let o of a)s.add(o)}catch{}let r=Array.from(s);return t!==null&&(r=r.filter(i=>i.startsWith(t))),r.sort()}async function Ta(e,t){let n=new V().parseWordFromString(t,!1,!1);return await x(e,n)}function xa(e,t){let s=e.state.env.get("IFS")??`
56
+ `;if(s.length===0)return[t];let n=new Set(s.split("")),r=[],i="",a=0;for(;a<t.length;){let o=t[a];if(o==="\\"&&a+1<t.length){let l=t[a+1];i+=l,a+=2}else n.has(o)?(i.length>0&&(r.push(i),i=""),a++):(i+=o,a++)}return i.length>0&&r.push(i),r}function ct(e,t){for(let[s,n]of t)n===void 0?e.state.env.delete(s):e.state.env.set(s,n)}function Ia(e){let t=[];if(e.state.env.get("COMPREPLY__length")!==void 0){let r=Ee(e,"COMPREPLY");for(let[,i]of r)t.push(i)}else{let r=e.state.env.get("COMPREPLY");r!==void 0&&t.push(r)}return t}var Ra=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function js(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,n=!1,r=!1,i,a,o,l=[],c=[],u=[];for(let f=0;f<t.length;f++){let d=t[f];if(d==="-p")s=!0;else if(d==="-r")n=!0;else if(d==="-D")r=!0;else if(d==="-W"){if(f++,f>=t.length)return _(`complete: -W: option requires an argument
57
+ `,2);i=t[f]}else if(d==="-F"){if(f++,f>=t.length)return _(`complete: -F: option requires an argument
58
+ `,2);a=t[f]}else if(d==="-o"){if(f++,f>=t.length)return _(`complete: -o: option requires an argument
59
+ `,2);let h=t[f];if(!Ra.includes(h))return _(`complete: ${h}: invalid option name
60
+ `,2);l.push(h)}else if(d==="-A"){if(f++,f>=t.length)return _(`complete: -A: option requires an argument
61
+ `,2);c.push(t[f])}else if(d==="-C"){if(f++,f>=t.length)return _(`complete: -C: option requires an argument
62
+ `,2);o=t[f]}else if(d==="-G"){if(f++,f>=t.length)return _(`complete: -G: option requires an argument
63
+ `,2)}else if(d==="-P"){if(f++,f>=t.length)return _(`complete: -P: option requires an argument
64
+ `,2)}else if(d==="-S"){if(f++,f>=t.length)return _(`complete: -S: option requires an argument
65
+ `,2)}else if(d==="-X"){if(f++,f>=t.length)return _(`complete: -X: option requires an argument
66
+ `,2)}else if(d==="--"){u.push(...t.slice(f+1));break}else d.startsWith("-")||u.push(d)}if(n){if(u.length===0)return e.state.completionSpecs.clear(),M("");for(let f of u)e.state.completionSpecs.delete(f);return M("")}if(s)return u.length===0?Bs(e):Bs(e,u);if(t.length===0||u.length===0&&!i&&!a&&!o&&l.length===0&&c.length===0&&!r)return Bs(e);if(a&&u.length===0&&!r)return _(`complete: -F: option requires a command name
67
+ `,2);if(r){let f={isDefault:!0};return i!==void 0&&(f.wordlist=i),a!==void 0&&(f.function=a),o!==void 0&&(f.command=o),l.length>0&&(f.options=l),c.length>0&&(f.actions=c),e.state.completionSpecs.set("__default__",f),M("")}for(let f of u){let d=Object.create(null);i!==void 0&&(d.wordlist=i),a!==void 0&&(d.function=a),o!==void 0&&(d.command=o),l.length>0&&(d.options=l),c.length>0&&(d.actions=c),e.state.completionSpecs.set(f,d)}return M("")}function Bs(e,t){let s=e.state.completionSpecs;if(!s||s.size===0){if(t&&t.length>0){let i="";for(let a of t)i+=`complete: ${a}: no completion specification
68
+ `;return P("",i,1)}return M("")}let n=[],r=t||Array.from(s.keys());for(let i of r){if(i==="__default__")continue;let a=s.get(i);if(!a){if(t)return P(n.join(`
69
+ `)+(n.length>0?`
70
+ `:""),`complete: ${i}: no completion specification
71
+ `,1);continue}let o="complete";if(a.options)for(let l of a.options)o+=` -o ${l}`;if(a.actions)for(let l of a.actions)o+=` -A ${l}`;a.wordlist!==void 0&&(a.wordlist.includes(" ")||a.wordlist.includes("'")?o+=` -W '${a.wordlist}'`:o+=` -W ${a.wordlist}`),a.function!==void 0&&(o+=` -F ${a.function}`),a.isDefault&&(o+=" -D"),o+=` ${i}`,n.push(o)}return n.length===0?M(""):M(`${n.join(`
72
+ `)}
73
+ `)}var Nr=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function Hs(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,n=!1,r=[],i=[],a=[];for(let o=0;o<t.length;o++){let l=t[o];if(l==="-D")s=!0;else if(l==="-E")n=!0;else if(l==="-o"){if(o++,o>=t.length)return _(`compopt: -o: option requires an argument
74
+ `,2);let c=t[o];if(!Nr.includes(c))return _(`compopt: ${c}: invalid option name
75
+ `,2);r.push(c)}else if(l==="+o"){if(o++,o>=t.length)return _(`compopt: +o: option requires an argument
76
+ `,2);let c=t[o];if(!Nr.includes(c))return _(`compopt: ${c}: invalid option name
77
+ `,2);i.push(c)}else if(l==="--"){a.push(...t.slice(o+1));break}else!l.startsWith("-")&&!l.startsWith("+")&&a.push(l)}if(s){let o=e.state.completionSpecs.get("__default__")??{isDefault:!0},l=new Set(o.options??[]);for(let c of r)l.add(c);for(let c of i)l.delete(c);return o.options=l.size>0?Array.from(l):void 0,e.state.completionSpecs.set("__default__",o),M("")}if(n){let o=e.state.completionSpecs.get("__empty__")??{},l=new Set(o.options??[]);for(let c of r)l.add(c);for(let c of i)l.delete(c);return o.options=l.size>0?Array.from(l):void 0,e.state.completionSpecs.set("__empty__",o),M("")}if(a.length>0){for(let o of a){let l=e.state.completionSpecs.get(o)??{},c=new Set(l.options??[]);for(let u of r)c.add(u);for(let u of i)c.delete(u);l.options=c.size>0?Array.from(c):void 0,e.state.completionSpecs.set(o,l)}return M("")}return _(`compopt: not currently executing completion function
78
+ `,1)}function Us(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Ie;return F}if(t.length>1)throw new B(1,"",`bash: continue: too many arguments
79
+ `);let s=1;if(t.length>0){let n=Number.parseInt(t[0],10);if(Number.isNaN(n)||n<1)throw new B(1,"",`bash: continue: ${t[0]}: numeric argument required
80
+ `);s=n}throw new de(s)}function G(e,t){let s=e.state.env.get("HOME")||"/home/user";return t.split(":").map(i=>i==="~"?s:i==="~root"?"/root":i.startsWith("~/")?s+i.slice(1):i.startsWith("~root/")?`/root${i.slice(5)}`:i).join(":")}function Zs(e){for(let t=0;t<e.length;t++){let s=e.charCodeAt(t);if(s<32||s===127)return!0}return!1}function qs(e){let t="$'";for(let s=0;s<e.length;s++){let n=e[s],r=e.charCodeAt(s);r===7?t+="\\a":r===8?t+="\\b":r===9?t+="\\t":r===10?t+="\\n":r===11?t+="\\v":r===12?t+="\\f":r===13?t+="\\r":r===27?t+="\\e":r===39?t+="\\'":r===92?t+="\\\\":r<32||r===127?t+=`\\${r.toString(8).padStart(3,"0")}`:t+=n}return t+="'",t}function ns(e){return Zs(e)?qs(e):/^[a-zA-Z0-9_/.:\-@%+,=]*$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function Ge(e){return Zs(e)?qs(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gs(e){return Zs(e)?qs(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Or(e,t){let s="";return e.state.integerVars?.has(t)&&(s+="i"),e.state.lowercaseVars?.has(t)&&(s+="l"),ye(e,t)&&(s+="n"),e.state.readonlyVars?.has(t)&&(s+="r"),e.state.uppercaseVars?.has(t)&&(s+="u"),e.state.exportedVars?.has(t)&&(s+="x"),s===""?"--":`-${s}`}function Ks(e){return e===""?"''":/[\s'\\]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}function Dr(e,t){let s="",n="",r=!1;for(let i of t){let a=Or(e,i);if(e.state.associativeArrays?.has(i)){let u=Fe(e,i);if(u.length===0)s+=`declare -A ${i}=()
81
+ `;else{let f=u.map(d=>{let h=e.state.env.get(`${i}_${d}`)??"",y=Ks(h);return`['${d}']=${y}`});s+=`declare -A ${i}=(${f.join(" ")})
82
+ `}continue}let l=se(e,i);if(l.length>0){let u=l.map(f=>{let d=e.state.env.get(`${i}_${f}`)??"";return`[${f}]=${Ge(d)}`});s+=`declare -a ${i}=(${u.join(" ")})
83
+ `;continue}if(e.state.env.has(`${i}__length`)){s+=`declare -a ${i}=()
84
+ `;continue}let c=e.state.env.get(i);if(c!==void 0)s+=`declare ${a} ${i}=${Gs(c)}
85
+ `;else{let u=e.state.declaredVars?.has(i),f=e.state.localVarDepth?.has(i);u||f?s+=`declare ${a} ${i}
86
+ `:(n+=`bash: declare: ${i}: not found
87
+ `,r=!0)}}return P(s,n,r?1:0)}function Tr(e,t){let{filterExport:s,filterReadonly:n,filterNameref:r,filterIndexedArray:i,filterAssocArray:a}=t,o=s||n||r||i||a,l="",c=new Set;for(let f of e.state.env.keys()){if(f.startsWith("BASH_"))continue;if(f.endsWith("__length")){let h=f.slice(0,-8);c.add(h);continue}let d=f.lastIndexOf("_");if(d>0){let h=f.slice(0,d),y=f.slice(d+1);if(/^\d+$/.test(y)||e.state.associativeArrays?.has(h)){c.add(h);continue}}c.add(f)}if(e.state.localVarDepth)for(let f of e.state.localVarDepth.keys())c.add(f);if(e.state.associativeArrays)for(let f of e.state.associativeArrays)c.add(f);let u=Array.from(c).sort();for(let f of u){let d=Or(e,f),h=e.state.associativeArrays?.has(f),y=se(e,f),p=!h&&(y.length>0||e.state.env.has(`${f}__length`));if(o&&(a&&!h||i&&!p||s&&!e.state.exportedVars?.has(f)||n&&!e.state.readonlyVars?.has(f)||r&&!ye(e,f)))continue;if(h){let b=Fe(e,f);if(b.length===0)l+=`declare -A ${f}=()
88
+ `;else{let g=b.map($=>{let m=e.state.env.get(`${f}_${$}`)??"",w=Ks(m);return`['${$}']=${w}`});l+=`declare -A ${f}=(${g.join(" ")})
89
+ `}continue}if(y.length>0){let b=y.map(g=>{let $=e.state.env.get(`${f}_${g}`)??"";return`[${g}]=${Ge($)}`});l+=`declare -a ${f}=(${b.join(" ")})
90
+ `;continue}if(e.state.env.has(`${f}__length`)){l+=`declare -a ${f}=()
91
+ `;continue}let v=e.state.env.get(f);v!==void 0&&(l+=`declare ${d} ${f}=${Gs(v)}
92
+ `)}return M(l)}function xr(e){let t="",s=Array.from(e.state.associativeArrays??[]).sort();for(let n of s){let r=Fe(e,n);if(r.length===0)t+=`declare -A ${n}=()
93
+ `;else{let i=r.map(a=>{let o=e.state.env.get(`${n}_${a}`)??"",l=Ks(o);return`['${a}']=${l}`});t+=`declare -A ${n}=(${i.join(" ")})
94
+ `}}return M(t)}function Ir(e){let t="",s=new Set;for(let r of e.state.env.keys()){if(r.startsWith("BASH_"))continue;if(r.endsWith("__length")){let a=r.slice(0,-8);e.state.associativeArrays?.has(a)||s.add(a);continue}let i=r.lastIndexOf("_");if(i>0){let a=r.slice(0,i),o=r.slice(i+1);/^\d+$/.test(o)&&(e.state.associativeArrays?.has(a)||s.add(a))}}let n=Array.from(s).sort();for(let r of n){let i=se(e,r);if(i.length===0)t+=`declare -a ${r}=()
95
+ `;else{let a=i.map(o=>{let l=e.state.env.get(`${r}_${o}`)??"";return`[${o}]=${Ge(l)}`});t+=`declare -a ${r}=(${a.join(" ")})
96
+ `}}return M(t)}function Rr(e){let t="",s=new Set;for(let r of e.state.env.keys()){if(r.startsWith("BASH_"))continue;if(r.endsWith("__length")){let a=r.slice(0,-8);s.add(a);continue}let i=r.lastIndexOf("_");if(i>0){let a=r.slice(0,i),o=r.slice(i+1);if(/^\d+$/.test(o)||e.state.associativeArrays?.has(a)){s.add(a);continue}}s.add(r)}let n=Array.from(s).sort();for(let r of n){if(e.state.associativeArrays?.has(r)||se(e,r).length>0||e.state.env.has(`${r}__length`))continue;let o=e.state.env.get(r);o!==void 0&&(t+=`${r}=${ns(o)}
97
+ `)}return M(t)}function Xs(e,t){e.state.integerVars??=new Set,e.state.integerVars.add(t)}function $t(e,t){return e.state.integerVars?.has(t)??!1}function Ys(e,t){e.state.lowercaseVars??=new Set,e.state.lowercaseVars.add(t),e.state.uppercaseVars?.delete(t)}function La(e,t){return e.state.lowercaseVars?.has(t)??!1}function Qs(e,t){e.state.uppercaseVars??=new Set,e.state.uppercaseVars.add(t),e.state.lowercaseVars?.delete(t)}function Fa(e,t){return e.state.uppercaseVars?.has(t)??!1}function ut(e,t,s){return La(e,t)?s.toLowerCase():Fa(e,t)?s.toUpperCase():s}async function Lr(e,t){try{let s=new V,n=Q(s,t),r=await j(e,n.expression);return String(r)}catch{return"0"}}function Ma(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return null;let s=t[0],n=s.length;if(e[n]!=="[")return null;let r=0,i=n+1;for(;n<e.length;n++)if(e[n]==="[")r++;else if(e[n]==="]"&&(r--,r===0))break;if(r!==0)return null;let a=e.slice(i,n);if(n++,e[n]!=="=")return null;n++;let o=e.slice(n);return{name:s,indexExpr:a,value:o}}async function Js(e,t){let s=!1,n=!1,r=!1,i=!1,a=!1,o=!1,l=!1,c=!1,u=!1,f=!1,d=!1,h=!1,y=!1,p=!1,v=!1,b=[];for(let N=0;N<t.length;N++){let I=t[N];if(I==="-a")s=!0;else if(I==="-A")n=!0;else if(I==="-r")r=!0;else if(I==="-x")i=!0;else if(I==="-p")a=!0;else if(I==="-n")o=!0;else if(I==="+n")l=!0;else if(I==="+a")c=!0;else if(I==="+x")u=!0;else if(I==="--"){b.push(...t.slice(N+1));break}else if(I.startsWith("+")){for(let C of I.slice(1))if(C==="n")l=!0;else if(C==="a")c=!0;else if(C==="x")u=!0;else if(C!=="r"){if(C!=="i"){if(!(C==="f"||C==="F"))return P("",`bash: typeset: +${C}: invalid option
98
+ `,2)}}}else if(I==="-i")f=!0;else if(I==="-l")d=!0;else if(I==="-u")h=!0;else if(I==="-f")y=!0;else if(I==="-F")p=!0;else if(I==="-g")v=!0;else if(I.startsWith("-"))for(let C of I.slice(1))if(C==="a")s=!0;else if(C==="A")n=!0;else if(C==="r")r=!0;else if(C==="x")i=!0;else if(C==="p")a=!0;else if(C==="n")o=!0;else if(C==="i")f=!0;else if(C==="l")d=!0;else if(C==="u")h=!0;else if(C==="f")y=!0;else if(C==="F")p=!0;else if(C==="g")v=!0;else return P("",`bash: typeset: -${C}: invalid option
99
+ `,2);else b.push(I)}let $=e.state.localScopes.length>0&&!v,m=N=>{if(!$)return;let I=e.state.localScopes[e.state.localScopes.length-1];I.has(N)||I.set(N,e.state.env.get(N))},w=N=>{if(!$)return;let I=e.state.localScopes[e.state.localScopes.length-1];I.has(N)||I.set(N,e.state.env.get(N));let C=`${N}_`;for(let D of e.state.env.keys())D.startsWith(C)&&!D.includes("__")&&(I.has(D)||I.set(D,e.state.env.get(D)));let k=`${N}__length`;e.state.env.has(k)&&!I.has(k)&&I.set(k,e.state.env.get(k))},E=N=>{$&&ze(e,N)};if(p){if(b.length===0){let C=Array.from(e.state.functions.keys()).sort(),k="";for(let D of C)k+=`declare -f ${D}
100
+ `;return M(k)}let N=!0,I="";for(let C of b)e.state.functions.has(C)?I+=`${C}
101
+ `:N=!1;return P(I,"",N?0:1)}if(y){if(b.length===0){let I="",C=Array.from(e.state.functions.keys()).sort();for(let k of C)I+=`${k} ()
102
+ {
103
+ # function body
104
+ }
105
+ `;return M(I)}let N=!0;for(let I of b)e.state.functions.has(I)||(N=!1);return P("","",N?0:1)}if(a&&b.length>0)return Dr(e,b);if(a&&b.length===0)return Tr(e,{filterExport:i,filterReadonly:r,filterNameref:o,filterIndexedArray:s,filterAssocArray:n});if(b.length===0&&n&&!a)return xr(e);if(b.length===0&&s&&!a)return Ir(e);if(b.length===0&&!a)return Rr(e);let S="",O=0;for(let N of b){let I=N.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(I&&!c){let A=I[1],T=I[2];if(n&&se(e,A).length>0){S+=`bash: declare: ${A}: cannot convert indexed to associative array
106
+ `,O=1;continue}if((s||!n&&!s)&&e.state.associativeArrays?.has(A)){S+=`bash: declare: ${A}: cannot convert associative to indexed array
107
+ `,O=1;continue}if(w(A),n&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(A)),_e(e,A),e.state.env.delete(A),e.state.env.delete(`${A}__length`),n&&T.includes("[")){let R=Qt(T);for(let[J,z]of R){let K=G(e,z);e.state.env.set(`${A}_${J}`,K)}}else if(n){let R=ke(T);for(let J=0;J<R.length;J+=2){let z=R[J],K=J+1<R.length?G(e,R[J+1]):"";e.state.env.set(`${A}_${z}`,K)}}else{let R=ke(T);if(R.some(z=>/^\[[^\]]+\]=/.test(z))){let z=0;for(let K of R){let ne=K.match(/^\[([^\]]+)\]=(.*)$/);if(ne){let ue=ne[1],Ye=ne[2],Zi=G(e,Ye),pt;if(/^-?\d+$/.test(ue))pt=Number.parseInt(ue,10);else try{let qi=new V,Gi=Q(qi,ue);pt=await j(e,Gi.expression)}catch{pt=0}e.state.env.set(`${A}_${pt}`,Zi),z=pt+1}else{let ue=G(e,K);e.state.env.set(`${A}_${z}`,ue),z++}}}else{for(let z=0;z<R.length;z++)e.state.env.set(`${A}_${z}`,R[z]);e.state.env.set(`${A}__length`,String(R.length))}}E(A),r&&ce(e,A),i&&Se(e,A);continue}if(l){let A=N.includes("=")?N.slice(0,N.indexOf("=")):N;if(zn(e,A),!N.includes("="))continue}if(u){let A=N.includes("=")?N.slice(0,N.indexOf("=")):N;if(Lt(e,A),!N.includes("="))continue}let C=Ma(N);if(C){let{name:A,indexExpr:T,value:R}=C,J=ee(e,A);if(J)return J;w(A);let z;try{let ne=new V,ue=Q(ne,T);z=await j(e,ue.expression)}catch{let ne=parseInt(T,10);z=Number.isNaN(ne)?0:ne}e.state.env.set(`${A}_${z}`,R);let K=parseInt(e.state.env.get(`${A}__length`)??"0",10);z>=K&&e.state.env.set(`${A}__length`,String(z+1)),E(A),r&&ce(e,A),i&&Se(e,A);continue}let k=N.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(k&&!c){let A=k[1],T=k[2],R=ee(e,A);if(R)return R;w(A);let J=ke(T);if(e.state.associativeArrays?.has(A)){let z=Qt(T);for(let[K,ne]of z){let ue=G(e,ne);e.state.env.set(`${A}_${K}`,ue)}}else{let z=se(e,A),K=0,ne=e.state.env.get(A);z.length===0&&ne!==void 0?(e.state.env.set(`${A}_0`,ne),e.state.env.delete(A),K=1):z.length>0&&(K=Math.max(...z)+1);for(let Ye=0;Ye<J.length;Ye++)e.state.env.set(`${A}_${K+Ye}`,G(e,J[Ye]));let ue=K+J.length;e.state.env.set(`${A}__length`,String(ue))}E(A),r&&ce(e,A),i&&Se(e,A);continue}let D=N.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(D){let A=D[1],T=G(e,D[2]),R=ee(e,A);if(R)return R;m(A),f&&Xs(e,A),d&&Ys(e,A),h&&Qs(e,A);let z=se(e,A).length>0||e.state.associativeArrays?.has(A);if($t(e,A)){let K=e.state.env.get(A)??"0",ne=parseInt(K,10)||0,ue=parseInt(await Lr(e,T),10)||0;T=String(ne+ue),e.state.env.set(A,T)}else if(z){T=ut(e,A,T);let K=`${A}_0`,ne=e.state.env.get(K)??"";e.state.env.set(K,ne+T)}else{T=ut(e,A,T);let K=e.state.env.get(A)??"";e.state.env.set(A,K+T)}E(A),r&&ce(e,A),i&&Se(e,A),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(A));continue}if(N.includes("=")){let A=N.indexOf("="),T=N.slice(0,A),R=N.slice(A+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(T)){S+=`bash: typeset: \`${T}': not a valid identifier
108
+ `,O=1;continue}let J=ee(e,T);if(J)return J;if(m(T),o){if(R!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(R)){S+=`bash: declare: \`${R}': invalid variable name for name reference
109
+ `,O=1;continue}e.state.env.set(T,R),Te(e,T),R!==""&&Es(e,R)&&$s(e,T),E(T),r&&ce(e,T),i&&Se(e,T);continue}if(f&&Xs(e,T),d&&Ys(e,T),h&&Qs(e,T),$t(e,T)&&(R=await Lr(e,R)),R=ut(e,T,R),ye(e,T)){let z=Me(e,T);z&&z!==T?e.state.env.set(z,R):e.state.env.set(T,R)}else e.state.env.set(T,R);E(T),r&&ce(e,T),i&&Se(e,T),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(T))}else{let A=N;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(A)){S+=`bash: typeset: \`${A}': not a valid identifier
110
+ `,O=1;continue}if(s||n?w(A):m(A),o){Te(e,A);let R=e.state.env.get(A);R!==void 0&&R!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(R)?Vn(e,A):R&&Es(e,R)&&$s(e,A),E(A),r&&ce(e,A),i&&Se(e,A);continue}if(f&&Xs(e,A),d&&Ys(e,A),h&&Qs(e,A),n){if(se(e,A).length>0){S+=`bash: declare: ${A}: cannot convert indexed to associative array
111
+ `,O=1;continue}e.state.associativeArrays??=new Set,e.state.associativeArrays.add(A)}let T=Array.from(e.state.env.keys()).some(R=>R.startsWith(`${A}_`)&&!R.startsWith(`${A}__length`));!e.state.env.has(A)&&!T&&(s||n?e.state.env.set(`${A}__length`,"0"):(e.state.declaredVars??=new Set,e.state.declaredVars.add(A))),E(A),r&&ce(e,A),i&&Se(e,A)}}return P("",S,O)}async function en(e,t){let s=!1,n=!1,r=!1,i=[];for(let a=0;a<t.length;a++){let o=t[a];if(o==="-a")s=!0;else if(o==="-A")n=!0;else if(o==="-p")r=!0;else if(o==="--"){i.push(...t.slice(a+1));break}else o.startsWith("-")||i.push(o)}if(i.length===0){let a="",o=Array.from(e.state.readonlyVars||[]).sort();for(let l of o){let c=e.state.env.get(l);if(c!==void 0){let u=c.replace(/\\/g,"\\\\").replace(/"/g,'\\"');a+=`declare -r ${l}="${u}"
112
+ `}}return M(a)}for(let a of i){let o=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(o){let f=o[1],d=o[2],h=ee(e,f);if(h)return h;let y=ke(d);if(e.state.associativeArrays?.has(f)){let p=Qt(d);for(let[v,b]of p){let g=G(e,b);e.state.env.set(`${f}_${v}`,g)}}else{let p=se(e,f),v=0,b=e.state.env.get(f);p.length===0&&b!==void 0?(e.state.env.set(`${f}_0`,b),e.state.env.delete(f),v=1):p.length>0&&(v=Math.max(...p)+1);for(let $=0;$<y.length;$++)e.state.env.set(`${f}_${v+$}`,G(e,y[$]));let g=v+y.length;e.state.env.set(`${f}__length`,String(g))}ce(e,f);continue}let l=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(l){let f=l[1],d=G(e,l[2]),h=ee(e,f);if(h)return h;let y=e.state.env.get(f)??"";e.state.env.set(f,y+d),ce(e,f);continue}let c=br(a);if(c.value===void 0&&!c.isArray){ce(e,c.name);continue}let u=await $r(e,c,{makeReadonly:!0});if(u)return u}return F}function tn(e){return e.state.directoryStack??=[],e.state.directoryStack}function Et(e,t){return t&&e===t?"~":t&&e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e}function Wa(e){let t=e.split("/").filter(n=>n&&n!=="."),s=[];for(let n of t)n===".."?s.pop():s.push(n);return`/${s.join("/")}`}async function sn(e,t){let s=tn(e),n;for(let o=0;o<t.length;o++){let l=t[o];if(l==="--"){if(o+1<t.length){if(n!==void 0)return _(`bash: pushd: too many arguments
113
+ `,2);n=t[o+1],o++}}else{if(l.startsWith("-")&&l!=="-")return _(`bash: pushd: ${l}: invalid option
114
+ `,2);if(n!==void 0)return _(`bash: pushd: too many arguments
115
+ `,2);n=l}}if(n===void 0){if(s.length<2)return _(`bash: pushd: no other directory
116
+ `,1);let o=s[0];s[0]=s[1],s[1]=o,n=s[0]}let r;if(n.startsWith("/"))r=n;else if(n===".."){let o=e.state.cwd.split("/").filter(l=>l);o.pop(),r=`/${o.join("/")}`}else n==="."?r=e.state.cwd:n.startsWith("~")?r=(e.state.env.get("HOME")||"/")+n.slice(1):r=`${e.state.cwd}/${n}`;r=Wa(r);try{if(!(await e.fs.stat(r)).isDirectory)return _(`bash: pushd: ${n}: Not a directory
117
+ `,1)}catch{return _(`bash: pushd: ${n}: No such file or directory
118
+ `,1)}s.unshift(e.state.cwd),e.state.previousDir=e.state.cwd,e.state.cwd=r,e.state.env.set("PWD",r),e.state.env.set("OLDPWD",e.state.previousDir);let i=e.state.env.get("HOME")||"",a=`${[r,...s].map(o=>Et(o,i)).join(" ")}
119
+ `;return M(a)}function nn(e,t){let s=tn(e);for(let a of t)if(a!=="--")return a.startsWith("-")&&a!=="-"?_(`bash: popd: ${a}: invalid option
120
+ `,2):_(`bash: popd: too many arguments
121
+ `,2);if(s.length===0)return _(`bash: popd: directory stack empty
122
+ `,1);let n=s.shift();if(!n)return _(`bash: popd: directory stack empty
123
+ `,1);e.state.previousDir=e.state.cwd,e.state.cwd=n,e.state.env.set("PWD",n),e.state.env.set("OLDPWD",e.state.previousDir);let r=e.state.env.get("HOME")||"",i=`${[n,...s].map(a=>Et(a,r)).join(" ")}
124
+ `;return M(i)}function rn(e,t){let s=tn(e),n=!1,r=!1,i=!1,a=!1;for(let u of t)if(u!=="--")if(u.startsWith("-"))for(let f of u.slice(1))if(f==="c")n=!0;else if(f==="l")r=!0;else if(f==="p")i=!0;else if(f==="v")i=!0,a=!0;else return _(`bash: dirs: -${f}: invalid option
125
+ `,2);else return _(`bash: dirs: too many arguments
126
+ `,1);if(n)return e.state.directoryStack=[],F;let o=[e.state.cwd,...s],l=e.state.env.get("HOME")||"",c;return a?(c=o.map((u,f)=>{let d=r?u:Et(u,l);return` ${f} ${d}`}).join(`
127
+ `),c+=`
128
+ `):i?c=o.map(u=>r?u:Et(u,l)).join(`
129
+ `)+`
130
+ `:c=o.map(u=>r?u:Et(u,l)).join(" ")+`
131
+ `,M(c)}async function rs(e,t,s){let n=t;if(n.length>0){let o=n[0];if(o==="--")n=n.slice(1);else if(o.startsWith("-")&&o!=="-"&&o.length>1)return _(`bash: eval: ${o}: invalid option
132
+ eval: usage: eval [arg ...]
133
+ `,2)}if(n.length===0)return F;let r=n.join(" ");if(r.trim()==="")return F;let i=e.state.groupStdin,a=s??e.state.groupStdin;a!==void 0&&(e.state.groupStdin=a);try{let o=$e(r);return await e.executeScript(o)}catch(o){if(o instanceof fe||o instanceof de||o instanceof le||o instanceof B)throw o;if(o.name==="ParseException")return _(`bash: eval: ${o.message}
134
+ `);throw o}finally{e.state.groupStdin=i}}function an(e,t){let s,n="";if(t.length===0)s=e.state.lastExitCode;else{let r=t[0],i=Number.parseInt(r,10);r===""||Number.isNaN(i)||!/^-?\d+$/.test(r)?(n=`bash: exit: ${r}: numeric argument required
135
+ `,s=2):s=(i%256+256)%256}throw new B(s,"",n)}function on(e,t){let s=!1,n=[];for(let a of t)a==="-n"?s=!0:a==="-p"||a==="--"||n.push(a);if(n.length===0&&!s){let a="",o=e.state.exportedVars??new Set,l=Array.from(o).sort();for(let c of l){let u=e.state.env.get(c);if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');a+=`declare -x ${c}="${f}"
136
+ `}}return M(a)}if(s){for(let a of n){let o,l;if(a.includes("=")){let c=a.indexOf("=");o=a.slice(0,c),l=G(e,a.slice(c+1)),e.state.env.set(o,l)}else o=a;Lt(e,o)}return F}let r="",i=0;for(let a of n){let o,l,c=!1,u=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(u)o=u[1],l=G(e,u[2]),c=!0;else if(a.includes("=")){let f=a.indexOf("=");o=a.slice(0,f),l=G(e,a.slice(f+1))}else o=a;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(o)){r+=`bash: export: \`${a}': not a valid identifier
137
+ `,i=1;continue}if(l!==void 0)if(c){let f=e.state.env.get(o)??"";e.state.env.set(o,f+l)}else e.state.env.set(o,l);else e.state.env.has(o)||e.state.env.set(o,"");Se(e,o)}return P("",r,i)}function is(e,t){if(t.length<2)return _(`bash: getopts: usage: getopts optstring name [arg ...]
138
+ `);let s=t[0],n=t[1],r=!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n),i=s.startsWith(":"),a=i?s.slice(1):s,o;if(t.length>2)o=t.slice(2);else{let p=Number.parseInt(e.state.env.get("#")||"0",10);o=[];for(let v=1;v<=p;v++)o.push(e.state.env.get(String(v))||"")}let l=Number.parseInt(e.state.env.get("OPTIND")||"1",10);l<1&&(l=1);let c=Number.parseInt(e.state.env.get("__GETOPTS_CHARINDEX")||"0",10);if(e.state.env.set("OPTARG",""),l>o.length)return r||e.state.env.set(n,"?"),e.state.env.set("OPTIND",String(o.length+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:r?2:1,stdout:"",stderr:""};let u=o[l-1];if(!u||u==="-"||!u.startsWith("-"))return r||e.state.env.set(n,"?"),{exitCode:r?2:1,stdout:"",stderr:""};if(u==="--")return e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),r||e.state.env.set(n,"?"),{exitCode:r?2:1,stdout:"",stderr:""};let f=c===0?1:c,d=u[f];if(!d)return e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),is(e,t);let h=a.indexOf(d);if(h===-1){let p="";return i?e.state.env.set("OPTARG",d):p=`bash: illegal option -- ${d}
139
+ `,r||e.state.env.set(n,"?"),f+1<u.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(l))):(e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0")),{exitCode:r?2:0,stdout:"",stderr:p}}if(h+1<a.length&&a[h+1]===":")if(f+1<u.length)e.state.env.set("OPTARG",u.slice(f+1)),e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0");else{if(l>=o.length){let p="";return i?(e.state.env.set("OPTARG",d),r||e.state.env.set(n,":")):(p=`bash: option requires an argument -- ${d}
140
+ `,r||e.state.env.set(n,"?")),e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:r?2:0,stdout:"",stderr:p}}e.state.env.set("OPTARG",o[l]),e.state.env.set("OPTIND",String(l+2)),e.state.env.set("__GETOPTS_CHARINDEX","0")}else f+1<u.length?(e.state.env.set("__GETOPTS_CHARINDEX",String(f+1)),e.state.env.set("OPTIND",String(l))):(e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"));return r||e.state.env.set(n,d),{exitCode:r?2:0,stdout:"",stderr:""}}async function ln(e,t){e.state.hashTable||(e.state.hashTable=new Map);let s=!1,n=!1,r=!1,i=!1,a=!1,o="",l=[],c=0;for(;c<t.length;){let y=t[c];if(y==="--"){c++,l.push(...t.slice(c));break}if(y==="-r")s=!0,c++;else if(y==="-d")n=!0,c++;else if(y==="-l")r=!0,c++;else if(y==="-t")a=!0,c++;else if(y==="-p"){if(i=!0,c++,c>=t.length)return _(`bash: hash: -p: option requires an argument
141
+ `,1);o=t[c],c++}else if(y.startsWith("-")&&y.length>1){for(let p of y.slice(1))if(p==="r")s=!0;else if(p==="d")n=!0;else if(p==="l")r=!0;else if(p==="t")a=!0;else return p==="p"?_(`bash: hash: -p: option requires an argument
142
+ `,1):_(`bash: hash: -${p}: invalid option
143
+ `,1);c++}else l.push(y),c++}if(s)return e.state.hashTable.clear(),F;if(n){if(l.length===0)return _(`bash: hash: -d: option requires an argument
144
+ `,1);let y=!1,p="";for(let v of l)e.state.hashTable.has(v)?e.state.hashTable.delete(v):(p+=`bash: hash: ${v}: not found
145
+ `,y=!0);return y?_(p,1):F}if(a){if(l.length===0)return _(`bash: hash: -t: option requires an argument
146
+ `,1);let y="",p=!1,v="";for(let b of l){let g=e.state.hashTable.get(b);g?l.length>1?y+=`${b} ${g}
147
+ `:y+=`${g}
148
+ `:(v+=`bash: hash: ${b}: not found
149
+ `,p=!0)}return p?{exitCode:1,stdout:y,stderr:v}:M(y)}if(i){if(l.length===0)return _(`bash: hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]
150
+ `,1);let y=l[0];return e.state.hashTable.set(y,o),F}if(l.length===0){if(e.state.hashTable.size===0)return M(`hash: hash table empty
151
+ `);let y="";if(r)for(let[p,v]of e.state.hashTable)y+=`builtin hash -p ${v} ${p}
152
+ `;else{y=`hits command
153
+ `;for(let[,p]of e.state.hashTable)y+=` 1 ${p}
154
+ `}return M(y)}let u=!1,f="",h=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let y of l){if(y.includes("/")){f+=`bash: hash: ${y}: cannot use / in name
155
+ `,u=!0;continue}let p=!1;for(let v of h){if(!v)continue;let b=`${v}/${y}`;if(await e.fs.exists(b)){e.state.hashTable.set(y,b),p=!0;break}}p||(f+=`bash: hash: ${y}: not found
156
+ `,u=!0)}return u?_(f,1):F}var Fr=new Map([[":",[": [arguments]",`Null command.
157
+ No effect; the command does nothing.
158
+ Exit Status:
159
+ Always succeeds.`]],[".",[". filename [arguments]",`Execute commands from a file in the current shell.
160
+ Read and execute commands from FILENAME in the current shell.
161
+ The entries in $PATH are used to find the directory containing FILENAME.
162
+ Exit Status:
163
+ Returns the status of the last command executed in FILENAME.`]],["[",["[ arg... ]",`Evaluate conditional expression.
164
+ This is a synonym for the "test" builtin, but the last argument must
165
+ be a literal \`]', to match the opening \`['.`]],["alias",["alias [-p] [name[=value] ... ]",`Define or display aliases.
166
+ Without arguments, \`alias' prints the list of aliases in the reusable
167
+ form \`alias NAME=VALUE' on standard output.
168
+ Exit Status:
169
+ alias returns true unless a NAME is supplied for which no alias has been
170
+ defined.`]],["bg",["bg [job_spec ...]",`Move jobs to the background.
171
+ Place the jobs identified by each JOB_SPEC in the background, as if they
172
+ had been started with \`&'.`]],["break",["break [n]",`Exit for, while, or until loops.
173
+ Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing
174
+ loops.
175
+ Exit Status:
176
+ The exit status is 0 unless N is not greater than or equal to 1.`]],["builtin",["builtin [shell-builtin [arg ...]]",`Execute shell builtins.
177
+ Execute SHELL-BUILTIN with arguments ARGs without performing command
178
+ lookup. This is useful when you wish to reimplement a shell builtin
179
+ as a shell function, but need to execute the builtin within the function.
180
+ Exit Status:
181
+ Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
182
+ not a shell builtin.`]],["caller",["caller [expr]",`Return the context of the current subroutine call.
183
+ Without EXPR, returns "$line $filename". With EXPR, returns
184
+ "$line $subroutine $filename"; this extra information can be used to
185
+ provide a stack trace.
186
+ Exit Status:
187
+ Returns 0 unless the shell is not executing a subroutine call or
188
+ EXPR is invalid.`]],["cd",["cd [-L|-P] [dir]",`Change the shell working directory.
189
+ Change the current directory to DIR. The default DIR is the value of the
190
+ HOME shell variable.
191
+
192
+ The variable CDPATH defines the search path for the directory containing
193
+ DIR. Alternative directory names in CDPATH are separated by a colon (:).
194
+ A null directory name is the same as the current directory. If DIR begins
195
+ with a slash (/), then CDPATH is not used.
196
+
197
+ If the directory is not found, and the shell option \`cdable_vars' is set,
198
+ the word is assumed to be a variable name. If that variable has a value,
199
+ its value is used for DIR.
200
+
201
+ Options:
202
+ -L force symbolic links to be followed
203
+ -P use the physical directory structure without following symbolic
204
+ links
205
+
206
+ The default is to follow symbolic links, as if \`-L' were specified.
207
+
208
+ Exit Status:
209
+ Returns 0 if the directory is changed; non-zero otherwise.`]],["command",["command [-pVv] command [arg ...]",`Execute a simple command or display information about commands.
210
+ Runs COMMAND with ARGS suppressing shell function lookup, or display
211
+ information about the specified COMMANDs.
212
+
213
+ Options:
214
+ -p use a default value for PATH that is guaranteed to find all of
215
+ the standard utilities
216
+ -v print a description of COMMAND similar to the \`type' builtin
217
+ -V print a more verbose description of each COMMAND
218
+
219
+ Exit Status:
220
+ Returns exit status of COMMAND, or failure if COMMAND is not found.`]],["compgen",["compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]",`Display possible completions depending on the options.
221
+ Intended to be used from within a shell function generating possible
222
+ completions. If the optional WORD argument is supplied, matches against
223
+ WORD are generated.
224
+ Exit Status:
225
+ Returns success unless an invalid option is supplied or an error occurs.`]],["complete",["complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]",`Specify how arguments are to be completed.
226
+ For each NAME, specify how arguments are to be completed.
227
+ Exit Status:
228
+ Returns success unless an invalid option is supplied or an error occurs.`]],["continue",["continue [n]",`Resume for, while, or until loops.
229
+ Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
230
+ If N is specified, resumes the Nth enclosing loop.
231
+ Exit Status:
232
+ The exit status is 0 unless N is not greater than or equal to 1.`]],["declare",["declare [-aAfFgilnrtux] [-p] [name[=value] ...]",`Set variable values and attributes.
233
+ Declare variables and give them attributes. If no NAMEs are given,
234
+ display the attributes and values of all variables.
235
+
236
+ Options:
237
+ -a to make NAMEs indexed arrays (if supported)
238
+ -A to make NAMEs associative arrays (if supported)
239
+ -i to make NAMEs have the \`integer' attribute
240
+ -l to convert the value of each NAME to lower case on assignment
241
+ -n make NAME a reference to the variable named by its value
242
+ -r to make NAMEs readonly
243
+ -t to make NAMEs have the \`trace' attribute
244
+ -u to convert the value of each NAME to upper case on assignment
245
+ -x to make NAMEs export
246
+
247
+ Exit Status:
248
+ Returns success unless an invalid option is supplied or a variable
249
+ assignment error occurs.`]],["dirs",["dirs [-clpv] [+N] [-N]",`Display directory stack.
250
+ Display the list of currently remembered directories. Directories
251
+ find their way onto the list with the \`pushd' command; you can get
252
+ back up through the list with the \`popd' command.
253
+ Exit Status:
254
+ Returns success unless an invalid option is supplied or an error occurs.`]],["disown",["disown [-h] [-ar] [jobspec ...]",`Remove jobs from current shell.
255
+ Without any JOBSPECs, remove the current job.`]],["echo",["echo [-neE] [arg ...]",`Write arguments to the standard output.
256
+ Display the ARGs, separated by a single space character and followed by a
257
+ newline, on the standard output.
258
+
259
+ Options:
260
+ -n do not append a newline
261
+ -e enable interpretation of the following backslash escapes
262
+ -E explicitly suppress interpretation of backslash escapes
263
+
264
+ Exit Status:
265
+ Returns success unless a write error occurs.`]],["enable",["enable [-a] [-dnps] [-f filename] [name ...]",`Enable and disable shell builtins.
266
+ Enables and disables builtin shell commands.
267
+ Exit Status:
268
+ Returns success unless NAME is not a shell builtin or an error occurs.`]],["eval",["eval [arg ...]",`Execute arguments as a shell command.
269
+ Combine ARGs into a single string, use the result as input to the shell,
270
+ and execute the resulting commands.
271
+ Exit Status:
272
+ Returns exit status of command or success if command is null.`]],["exec",["exec [-cl] [-a name] [command [arguments ...]] [redirection ...]",`Replace the shell with the given command.
273
+ Execute COMMAND, replacing this shell with the specified program.
274
+ ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
275
+ any redirections take effect in the current shell.
276
+ Exit Status:
277
+ Returns success unless COMMAND is not found or a redirection error occurs.`]],["exit",["exit [n]",`Exit the shell.
278
+ Exits the shell with a status of N. If N is omitted, the exit status
279
+ is that of the last command executed.`]],["export",["export [-fn] [name[=value] ...] or export -p",`Set export attribute for shell variables.
280
+ Marks each NAME for automatic export to the environment of subsequently
281
+ executed commands. If VALUE is supplied, assign VALUE before exporting.
282
+
283
+ Options:
284
+ -f refer to shell functions
285
+ -n remove the export property from each NAME
286
+ -p display a list of all exported variables and functions
287
+
288
+ Exit Status:
289
+ Returns success unless an invalid option is given or NAME is invalid.`]],["false",["false",`Return an unsuccessful result.
290
+ Exit Status:
291
+ Always fails.`]],["fc",["fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]",`Display or execute commands from the history list.
292
+ Exit Status:
293
+ Returns success or status of executed command.`]],["fg",["fg [job_spec]",`Move job to the foreground.
294
+ Place the job identified by JOB_SPEC in the foreground, making it the
295
+ current job.`]],["getopts",["getopts optstring name [arg]",`Parse option arguments.
296
+ Getopts is used by shell procedures to parse positional parameters
297
+ as options.
298
+
299
+ OPTSTRING contains the option letters to be recognized; if a letter
300
+ is followed by a colon, the option is expected to have an argument,
301
+ which should be separated from it by white space.
302
+ Exit Status:
303
+ Returns success if an option is found; fails if the end of options is
304
+ encountered or an error occurs.`]],["hash",["hash [-lr] [-p pathname] [-dt] [name ...]",`Remember or display program locations.
305
+ Determine and remember the full pathname of each command NAME.
306
+ Exit Status:
307
+ Returns success unless NAME is not found or an invalid option is given.`]],["help",["help [-s] [pattern ...]",`Display information about builtin commands.
308
+ Displays brief summaries of builtin commands. If PATTERN is
309
+ specified, gives detailed help on all commands matching PATTERN,
310
+ otherwise the list of help topics is printed.
311
+
312
+ Options:
313
+ -s output only a short usage synopsis for each topic matching
314
+ PATTERN
315
+
316
+ Exit Status:
317
+ Returns success unless PATTERN is not found.`]],["history",["history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]",`Display or manipulate the history list.
318
+ Display the history list with line numbers, prefixing each modified
319
+ entry with a \`*'.
320
+ Exit Status:
321
+ Returns success unless an invalid option is given or an error occurs.`]],["jobs",["jobs [-lnprs] [jobspec ...] or jobs -x command [args]",`Display status of jobs.
322
+ Lists the active jobs.
323
+ Exit Status:
324
+ Returns success unless an invalid option is given or an error occurs.`]],["kill",["kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]",`Send a signal to a job.
325
+ Send the processes identified by PID or JOBSPEC the signal named by
326
+ SIGSPEC or SIGNUM.
327
+ Exit Status:
328
+ Returns success unless an invalid option is given or an error occurs.`]],["let",["let arg [arg ...]",`Evaluate arithmetic expressions.
329
+ Evaluate each ARG as an arithmetic expression. Evaluation is done in
330
+ fixed-width integers with no check for overflow, though division by 0
331
+ is trapped and flagged as an error.
332
+ Exit Status:
333
+ If the last ARG evaluates to 0, let returns 1; 0 is returned otherwise.`]],["local",["local [option] name[=value] ...",`Define local variables.
334
+ Create a local variable called NAME, and give it VALUE. OPTION can
335
+ be any option accepted by \`declare'.
336
+
337
+ Local can only be used within a function; it makes the variable NAME
338
+ have a visible scope restricted to that function and its children.
339
+ Exit Status:
340
+ Returns success unless an invalid option is supplied, a variable
341
+ assignment error occurs, or the shell is not executing a function.`]],["logout",["logout [n]",`Exit a login shell.
342
+ Exits a login shell with exit status N. Returns an error if not executed
343
+ in a login shell.`]],["mapfile",["mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]",`Read lines from the standard input into an indexed array variable.
344
+ Read lines from the standard input into the indexed array variable ARRAY,
345
+ or from file descriptor FD if the -u option is supplied.
346
+
347
+ Options:
348
+ -d delim Use DELIM to terminate lines, instead of newline
349
+ -n count Copy at most COUNT lines
350
+ -O origin Begin assigning to ARRAY at index ORIGIN
351
+ -s count Discard the first COUNT lines read
352
+ -t Remove a trailing DELIM from each line read (default newline)
353
+ -u fd Read lines from file descriptor FD instead of standard input
354
+
355
+ Exit Status:
356
+ Returns success unless an invalid option is given or ARRAY is readonly.`]],["popd",["popd [-n] [+N | -N]",`Remove directories from stack.
357
+ Removes entries from the directory stack.
358
+ Exit Status:
359
+ Returns success unless an invalid argument is supplied or the directory
360
+ change fails.`]],["printf",["printf [-v var] format [arguments]",`Formats and prints ARGUMENTS under control of the FORMAT.
361
+
362
+ Options:
363
+ -v var assign the output to shell variable VAR rather than
364
+ display it on the standard output
365
+
366
+ FORMAT is a character string which contains three types of objects: plain
367
+ characters, which are simply copied to standard output; character escape
368
+ sequences, which are converted and copied to the standard output; and
369
+ format specifications, each of which causes printing of the next successive
370
+ argument.
371
+ Exit Status:
372
+ Returns success unless an invalid option is given or a write or assignment
373
+ error occurs.`]],["pushd",["pushd [-n] [+N | -N | dir]",`Add directories to stack.
374
+ Adds a directory to the top of the directory stack, or rotates
375
+ the stack, making the new top of the stack the current working
376
+ directory.
377
+ Exit Status:
378
+ Returns success unless an invalid argument is supplied or the directory
379
+ change fails.`]],["pwd",["pwd [-LP]",`Print the name of the current working directory.
380
+
381
+ Options:
382
+ -L print the value of $PWD if it names the current working
383
+ directory
384
+ -P print the physical directory, without any symbolic links
385
+
386
+ By default, \`pwd' behaves as if \`-L' were specified.
387
+ Exit Status:
388
+ Returns 0 unless an invalid option is given or the current directory
389
+ cannot be read.`]],["read",["read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]",`Read a line from the standard input and split it into fields.
390
+ Reads a single line from the standard input, or from file descriptor FD
391
+ if the -u option is supplied. The line is split into fields as with word
392
+ splitting, and the first word is assigned to the first NAME, the second
393
+ word to the second NAME, and so on, with any leftover words assigned to
394
+ the last NAME.
395
+ Exit Status:
396
+ The return code is zero, unless end-of-file is encountered, read times out,
397
+ or an invalid file descriptor is supplied as the argument to -u.`]],["readarray",["readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]","Read lines from a file into an array variable.\n A synonym for `mapfile'."]],["readonly",["readonly [-aAf] [name[=value] ...] or readonly -p",`Mark shell variables as unchangeable.
398
+ Mark each NAME as read-only; the values of these NAMEs may not be
399
+ changed by subsequent assignment.
400
+ Exit Status:
401
+ Returns success unless an invalid option is given or NAME is invalid.`]],["return",["return [n]",`Return from a shell function.
402
+ Causes a function or sourced script to exit with the return value
403
+ specified by N. If N is omitted, the return status is that of the
404
+ last command executed within the function or script.
405
+ Exit Status:
406
+ Returns N, or failure if the shell is not executing a function or script.`]],["set",["set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]",`Set or unset values of shell options and positional parameters.
407
+ Change the value of shell attributes and positional parameters, or
408
+ display the names and values of shell variables.
409
+
410
+ Options:
411
+ -e Exit immediately if a command exits with a non-zero status.
412
+ -u Treat unset variables as an error when substituting.
413
+ -x Print commands and their arguments as they are executed.
414
+ -o option-name
415
+ Set the variable corresponding to option-name
416
+
417
+ Exit Status:
418
+ Returns success unless an invalid option is given.`]],["shift",["shift [n]",`Shift positional parameters.
419
+ Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is
420
+ not given, it is assumed to be 1.
421
+ Exit Status:
422
+ Returns success unless N is negative or greater than $#.`]],["shopt",["shopt [-pqsu] [-o] [optname ...]",`Set and unset shell options.
423
+ Change the setting of each shell option OPTNAME. Without any option
424
+ arguments, list each supplied OPTNAME, or all shell options if no
425
+ OPTNAMEs are given, with an indication of whether or not each is set.
426
+
427
+ Options:
428
+ -o restrict OPTNAMEs to those defined for use with \`set -o'
429
+ -p print each shell option with an indication of its status
430
+ -q suppress output
431
+ -s enable (set) each OPTNAME
432
+ -u disable (unset) each OPTNAME
433
+
434
+ Exit Status:
435
+ Returns success if OPTNAME is enabled; fails if an invalid option is
436
+ given or OPTNAME is disabled.`]],["source",["source filename [arguments]",`Execute commands from a file in the current shell.
437
+ Read and execute commands from FILENAME in the current shell.
438
+ The entries in $PATH are used to find the directory containing FILENAME.
439
+ Exit Status:
440
+ Returns the status of the last command executed in FILENAME.`]],["suspend",["suspend [-f]",`Suspend shell execution.
441
+ Suspend the execution of this shell until it receives a SIGCONT signal.`]],["test",["test [expr]",`Evaluate conditional expression.
442
+ Exits with a status of 0 (true) or 1 (false) depending on
443
+ the evaluation of EXPR. Expressions may be unary or binary.
444
+ Exit Status:
445
+ Returns success if EXPR evaluates to true; fails if EXPR evaluates to
446
+ false or an invalid argument is given.`]],["times",["times",`Display process times.
447
+ Prints the accumulated user and system times for the shell and all of its
448
+ child processes.
449
+ Exit Status:
450
+ Always succeeds.`]],["trap",["trap [-lp] [[arg] signal_spec ...]",`Trap signals and other events.
451
+ Defines and activates handlers to be run when the shell receives signals
452
+ or other conditions.
453
+ Exit Status:
454
+ Returns success unless a SIGSPEC is invalid or an invalid option is given.`]],["true",["true",`Return a successful result.
455
+ Exit Status:
456
+ Always succeeds.`]],["type",["type [-afptP] name [name ...]",`Display information about command type.
457
+ For each NAME, indicate how it would be interpreted if used as a
458
+ command name.
459
+
460
+ Options:
461
+ -a display all locations containing an executable named NAME
462
+ -f suppress shell function lookup
463
+ -P force a PATH search for each NAME, even if it is an alias,
464
+ builtin, or function, and returns the name of the disk file
465
+ that would be executed
466
+ -p returns either the name of the disk file that would be executed,
467
+ or nothing if \`type -t NAME' would not return \`file'
468
+ -t output a single word which is one of \`alias', \`keyword',
469
+ \`function', \`builtin', \`file' or \`', if NAME is an alias,
470
+ shell reserved word, shell function, shell builtin, disk file,
471
+ or not found, respectively
472
+
473
+ Exit Status:
474
+ Returns success if all of the NAMEs are found; fails if any are not found.`]],["typeset",["typeset [-aAfFgilnrtux] [-p] name[=value] ...","Set variable values and attributes.\n A synonym for `declare'."]],["ulimit",["ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]",`Modify shell resource limits.
475
+ Provides control over the resources available to the shell and processes
476
+ it creates, on systems that allow such control.
477
+ Exit Status:
478
+ Returns success unless an invalid option is supplied or an error occurs.`]],["umask",["umask [-p] [-S] [mode]",`Display or set file mode mask.
479
+ Sets the user file-creation mask to MODE. If MODE is omitted, prints
480
+ the current value of the mask.
481
+ Exit Status:
482
+ Returns success unless MODE is invalid or an invalid option is given.`]],["unalias",["unalias [-a] name [name ...]",`Remove each NAME from the list of defined aliases.
483
+ Exit Status:
484
+ Returns success unless a NAME is not an existing alias.`]],["unset",["unset [-f] [-v] [-n] [name ...]",`Unset values and attributes of shell variables and functions.
485
+ For each NAME, remove the corresponding variable or function.
486
+
487
+ Options:
488
+ -f treat each NAME as a shell function
489
+ -v treat each NAME as a shell variable
490
+ -n treat each NAME as a name reference and unset the variable itself
491
+ rather than the variable it references
492
+
493
+ Without options, unset first tries to unset a variable, and if that fails,
494
+ tries to unset a function.
495
+ Exit Status:
496
+ Returns success unless an invalid option is given or a NAME is read-only.`]],["wait",["wait [-fn] [id ...]",`Wait for job completion and return exit status.
497
+ Waits for each process identified by an ID, which may be a process ID or a
498
+ job specification, and reports its termination status.
499
+ Exit Status:
500
+ Returns the status of the last ID; fails if ID is invalid or an invalid
501
+ option is given.`]]]),Mr=[...Fr.keys()].sort();function cn(e,t){let s=!1,n=[],r=0;for(;r<t.length;){let l=t[r];if(l==="--"){for(r++;r<t.length;)n.push(t[r]),r++;break}if(l.startsWith("-")&&l.length>1){for(let c=1;c<l.length;c++){let u=l[c];if(u==="s")s=!0;else return _(`bash: help: -${u}: invalid option
502
+ `,2)}r++}else n.push(l),r++}if(n.length===0)return Va();let i="",a=!1,o="";for(let l of n){let c=za(l);if(c.length===0){o+=`bash: help: no help topics match \`${l}'. Try \`help help' or \`man -k ${l}' or \`info ${l}'.
503
+ `,a=!0;continue}for(let u of c){let f=Fr.get(u);if(!f)continue;let[d,h]=f;s?i+=`${u}: ${d}
504
+ `:i+=`${u}: ${d}
505
+ ${h}
506
+ `}}return{exitCode:a?1:0,stdout:i,stderr:o}}function za(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,"."),s=mt(`^${t}$`);return Mr.filter(n=>s.test(n))}function Va(){let e=[];e.push("just-bash shell builtins"),e.push("These shell commands are defined internally. Type `help' to see this list."),e.push("Type `help name' to find out more about the function `name'."),e.push("");let t=36,s=Mr.slice(),n=Math.ceil(s.length/2);for(let r=0;r<n;r++){let i=s[r]||"",a=s[r+n]||"",o=i.padEnd(t);e.push(a?`${o}${a}`:i)}return M(`${e.join(`
507
+ `)}
508
+ `)}function Ba(e){let t=[],s="",n=0;for(let r of e){for(let i of r)i==="("?n++:i===")"&&n--;s?s+=` ${r}`:s=r,n===0&&(t.push(s),s="")}return s&&t.push(s),t}async function un(e,t){if(t.length===0)return _(`bash: let: expression expected
509
+ `);let s=Ba(t),n=0;for(let r of s)try{let a=$e(`(( ${r} ))`).statements[0];if(a&&a.pipelines.length>0&&a.pipelines[0].commands.length>0){let o=a.pipelines[0].commands[0];o.type==="ArithmeticCommand"&&(n=await j(e,o.expression.expression))}}catch(i){return _(`bash: let: ${r}: ${i.message}
510
+ `)}return P("","",n===0?1:0)}async function fn(e,t){if(e.state.localScopes.length===0)return _(`bash: local: can only be used in a function
511
+ `);let s=e.state.localScopes[e.state.localScopes.length-1],n="",r=0,i=!1,a=!1,o=!1,l=[];for(let c of t)if(c==="-n")i=!0;else if(c==="-a")a=!0;else if(c==="-p")o=!0;else if(c.startsWith("-")&&!c.includes("="))for(let u of c.slice(1))u==="n"?i=!0:u==="a"?a=!0:u==="p"&&(o=!0);else l.push(c);if(l.length===0){let c="",u=Array.from(s.keys()).filter(f=>!f.includes("_")||!f.match(/_\d+$/)).filter(f=>!f.includes("__length")).sort();for(let f of u){let d=e.state.env.get(f);d!==void 0&&(c+=`${f}=${d}
512
+ `)}return P(c,"",0)}for(let c of l){let u,f,d=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(d){u=d[1];let b=d[2];if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)){n+=`bash: local: \`${c}': not a valid identifier
513
+ `,r=1;continue}if(ee(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let m=`${u}_`;for(let w of e.state.env.keys())w.startsWith(m)&&!w.includes("__")&&(s.has(w)||s.set(w,e.state.env.get(w)))}let g=`${u}_`;for(let m of e.state.env.keys())m.startsWith(g)&&!m.includes("__")&&e.state.env.delete(m);let $=ke(b);for(let m=0;m<$.length;m++)e.state.env.set(`${u}_${m}`,$[m]);e.state.env.set(`${u}__length`,String($.length)),ze(e,u),i&&Te(e,u);continue}let h=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(h){u=h[1];let b=h[2];if(ee(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let S=`${u}_`;for(let N of e.state.env.keys())N.startsWith(S)&&!N.includes("__")&&(s.has(N)||s.set(N,e.state.env.get(N)));let O=`${u}__length`;e.state.env.has(O)&&!s.has(O)&&s.set(O,e.state.env.get(O))}let g=ke(b),$=se(e,u),m=0,w=e.state.env.get(u);$.length===0&&w!==void 0?(e.state.env.set(`${u}_0`,w),e.state.env.delete(u),m=1):$.length>0&&(m=Math.max(...$)+1);for(let S=0;S<g.length;S++)e.state.env.set(`${u}_${m+S}`,G(e,g[S]));let E=m+g.length;e.state.env.set(`${u}__length`,String(E)),ze(e,u),i&&Te(e,u);continue}let y=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(y){u=y[1];let b=G(e,y[2]);ee(e,u,"bash"),s.has(u)||s.set(u,e.state.env.get(u));let g=e.state.env.get(u)??"";e.state.env.set(u,g+b),ze(e,u),i&&Te(e,u);continue}let p=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(p){u=p[1];let b=p[2],g=G(e,p[3]);if(ee(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let w=`${u}_`;for(let S of e.state.env.keys())S.startsWith(w)&&!S.includes("__")&&(s.has(S)||s.set(S,e.state.env.get(S)));let E=`${u}__length`;e.state.env.has(E)&&!s.has(E)&&s.set(E,e.state.env.get(E))}let $;try{let w=new V,E=Q(w,b);$=await j(e,E.expression)}catch{let w=parseInt(b,10);$=Number.isNaN(w)?0:w}e.state.env.set(`${u}_${$}`,g);let m=parseInt(e.state.env.get(`${u}__length`)??"0",10);$>=m&&e.state.env.set(`${u}__length`,String($+1)),ze(e,u),i&&Te(e,u);continue}if(c.includes("=")){let b=c.indexOf("=");u=c.slice(0,b),f=G(e,c.slice(b+1))}else u=c;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)){n+=`bash: local: \`${c}': not a valid identifier
514
+ `,r=1;continue}let v=s.has(u);if(f!==void 0){let b=e.state.env.get(u);if(e.state.tempEnvBindings){let g=e.state.accessedTempEnvVars?.has(u),$=e.state.mutatedTempEnvVars?.has(u);if(!g&&!$)for(let m=e.state.tempEnvBindings.length-1;m>=0;m--){let w=e.state.tempEnvBindings[m];if(w.has(u)){b=w.get(u);break}}}Er(e,u,b)}if(!v){let b=e.state.env.get(u);if(e.state.tempEnvBindings)for(let g=e.state.tempEnvBindings.length-1;g>=0;g--){let $=e.state.tempEnvBindings[g];if($.has(u)){b=$.get(u);break}}if(s.set(u,b),a){let g=`${u}_`;for(let m of e.state.env.keys())m.startsWith(g)&&!m.includes("__")&&(s.has(m)||s.set(m,e.state.env.get(m)));let $=`${u}__length`;e.state.env.has($)&&!s.has($)&&s.set($,e.state.env.get($))}}if(a&&f===void 0){let b=`${u}_`;for(let g of e.state.env.keys())g.startsWith(b)&&!g.includes("__")&&e.state.env.delete(g);e.state.env.set(`${u}__length`,"0")}else if(f!==void 0){if(ee(e,u,"bash"),i&&f!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(f)){n+=`bash: local: \`${f}': invalid variable name for name reference
515
+ `,r=1;continue}e.state.env.set(u,f),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(u))}else{let b=e.state.tempEnvBindings?.some(g=>g.has(u));!v&&!b&&e.state.env.delete(u)}ze(e,u),i&&Te(e,u)}return P("",n,r)}function dn(e,t,s){let n=`
516
+ `,r=0,i=0,a=0,o=!1,l="MAPFILE",c=0;for(;c<t.length;){let g=t[c];g==="-d"&&c+1<t.length?(n=t[c+1]===""?"\0":t[c+1]||`
517
+ `,c+=2):g==="-n"&&c+1<t.length?(r=Number.parseInt(t[c+1],10)||0,c+=2):g==="-O"&&c+1<t.length?(i=Number.parseInt(t[c+1],10)||0,c+=2):g==="-s"&&c+1<t.length?(a=Number.parseInt(t[c+1],10)||0,c+=2):g==="-t"?(o=!0,c++):g==="-u"||g==="-C"||g==="-c"?c+=2:(g.startsWith("-")||(l=g),c++)}let u=s;!u&&e.state.groupStdin!==void 0&&(u=e.state.groupStdin);let f=[],d=u,h=0,y=0,p=e.limits?.maxArrayElements??1e5;for(;d.length>0;){let g=d.indexOf(n);if(g===-1){if(d.length>0){if(y<a)y++;else if(r===0||h<r){if(i+h>=p)return P("",`mapfile: array element limit exceeded (${p})
518
+ `,1);let w=d,E=w.indexOf("\0");E!==-1&&(w=w.substring(0,E)),f.push(w),h++}}break}let $=d.substring(0,g),m=$.indexOf("\0");if(m!==-1&&($=$.substring(0,m)),!o&&n!=="\0"&&($+=n),d=d.substring(g+n.length),y<a){y++;continue}if(r>0&&h>=r)break;if(i+h>=p)return P("",`mapfile: array element limit exceeded (${p})
519
+ `,1);f.push($),h++}i===0&&_e(e,l);for(let g=0;g<f.length;g++)e.state.env.set(`${l}_${i+g}`,f[g]);let v=parseInt(e.state.env.get(`${l}__length`)||"0",10),b=i+f.length;return e.state.env.set(`${l}__length`,String(Math.max(v,b))),e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=""),P("","",0)}function ja(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let n=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(n)||n<0)return null;let r=s+1,i=t.slice(r,r+n),a=r+n+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}function Ha(e,t,s){return`__rw__:${e.length}:${e}:${t}:${s}`}function hn(e,t,s,n=-1){let r=!1,i=`
520
+ `,a="",o=-1,l=-1,c=null,u=-1,f=-1,d=[],h=0,y=!1,p=(C,k)=>{let D=1;for(;D<C.length;){let A=C[D];if(A==="r")r=!0,D++;else if(A==="s")D++;else{if(A==="d")return D+1<C.length?(i=C.substring(D+1),{nextArgIndex:k+1}):k+1<t.length?(i=t[k+1],{nextArgIndex:k+2}):{nextArgIndex:k+1};if(A==="n"){if(D+1<C.length){let T=C.substring(D+1);return o=Number.parseInt(T,10),(Number.isNaN(o)||o<0)&&(y=!0,o=0),{nextArgIndex:k+1}}else if(k+1<t.length)return o=Number.parseInt(t[k+1],10),(Number.isNaN(o)||o<0)&&(y=!0,o=0),{nextArgIndex:k+2};return{nextArgIndex:k+1}}else if(A==="N"){if(D+1<C.length){let T=C.substring(D+1);return l=Number.parseInt(T,10),(Number.isNaN(l)||l<0)&&(y=!0,l=0),{nextArgIndex:k+1}}else if(k+1<t.length)return l=Number.parseInt(t[k+1],10),(Number.isNaN(l)||l<0)&&(y=!0,l=0),{nextArgIndex:k+2};return{nextArgIndex:k+1}}else{if(A==="a")return D+1<C.length?(c=C.substring(D+1),{nextArgIndex:k+1}):k+1<t.length?(c=t[k+1],{nextArgIndex:k+2}):{nextArgIndex:k+1};if(A==="p")return D+1<C.length?(a=C.substring(D+1),{nextArgIndex:k+1}):k+1<t.length?(a=t[k+1],{nextArgIndex:k+2}):{nextArgIndex:k+1};if(A==="u"){if(D+1<C.length){let T=C.substring(D+1);return u=Number.parseInt(T,10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:k+1}}else if(k+1<t.length)return u=Number.parseInt(t[k+1],10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:k+2};return{nextArgIndex:k+1}}else if(A==="t"){if(D+1<C.length){let T=C.substring(D+1);return f=Number.parseFloat(T),Number.isNaN(f)&&(f=0),{nextArgIndex:k+1}}else if(k+1<t.length)return f=Number.parseFloat(t[k+1]),Number.isNaN(f)&&(f=0),{nextArgIndex:k+2};return{nextArgIndex:k+1}}else if(A==="e"||A==="i"||A==="P"){if(A==="i"&&k+1<t.length)return{nextArgIndex:k+2};D++}else D++}}}return{nextArgIndex:k+1}};for(;h<t.length;){let C=t[h];if(C.startsWith("-")&&C.length>1&&C!=="--"){let k=p(C,h);if(k.nextArgIndex===-1)return{stdout:"",stderr:"",exitCode:2};if(k.nextArgIndex===-2)return{stdout:"",stderr:"",exitCode:1};h=k.nextArgIndex}else if(C==="--")for(h++;h<t.length;)d.push(t[h]),h++;else d.push(C),h++}if(y)return P("","",1);if(d.length===0&&c===null&&d.push("REPLY"),f===0){if(c)_e(e,c);else{for(let C of d)e.state.env.set(C,"");d.length===0&&e.state.env.set("REPLY","")}return P("","",0)}if(f<0&&f!==-1)return P("","",1);let v=s;u>=0?e.state.fileDescriptors?v=e.state.fileDescriptors.get(u)||"":v="":!v&&e.state.groupStdin!==void 0&&(v=e.state.groupStdin);let b=i===""?"\0":i,g="",$=0,m=!0,w=C=>{if(u>=0&&e.state.fileDescriptors)e.state.fileDescriptors.set(u,v.substring(C));else if(n>=0&&e.state.fileDescriptors){let k=e.state.fileDescriptors.get(n);if(k?.startsWith("__rw__:")){let D=ja(k);if(D){let A=D.position+C;e.state.fileDescriptors.set(n,Ha(D.path,A,D.content))}}}else e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=v.substring(C))};if(l>=0){let C=Math.min(l,v.length);g=v.substring(0,C),$=C,m=C>=l,w($);let k=d[0]||"REPLY";e.state.env.set(k,g);for(let D=1;D<d.length;D++)e.state.env.set(d[D],"");return P("","",m?0:1)}else if(o>=0){let C=0,k=0,D=!1;for(;k<v.length&&C<o;){let A=v[k];if(A===b){$=k+1,D=!0;break}if(!r&&A==="\\"&&k+1<v.length){let T=v[k+1];if(T===b&&b===`
521
+ `){k+=2,$=k;continue}if(T===b){k+=2,C++,g+=T,$=k;continue}g+=T,k+=2,C++,$=k}else g+=A,k++,C++,$=k}m=C>=o||D,w($)}else{$=0;let C=0;for(;C<v.length;){let k=v[C];if(k===b){$=C+b.length,m=!0;break}if(!r&&k==="\\"&&C+1<v.length){let D=v[C+1];if(D===`
522
+ `){C+=2;continue}if(D===b){g+=D,C+=2;continue}g+=k,g+=D,C+=2;continue}g+=k,C++}if(C>=v.length&&(m=!1,$=C,g.length===0&&v.length===0)){for(let k of d)e.state.env.set(k,"");return c&&_e(e,c),P("","",1)}w($)}b===`
523
+ `&&g.endsWith(`
524
+ `)&&(g=g.slice(0,-1));let E=C=>r?C:C.replace(/\\(.)/g,"$1");if(d.length===1&&d[0]==="REPLY")return e.state.env.set("REPLY",E(g)),P("","",m?0:1);let S=Mn(e.state.env);if(c){let{words:C}=bs(g,S,void 0,r),k=e.limits?.maxArrayElements??1e5;if(C.length>k)return P("",`read: array element limit exceeded (${k})
525
+ `,1);_e(e,c);for(let D=0;D<C.length;D++)e.state.env.set(`${c}_${D}`,E(C[D]));return P("","",m?0:1)}let O=d.length,{words:N,wordStarts:I}=bs(g,S,O,r);for(let C=0;C<d.length;C++){let k=d[C];if(C<d.length-1)e.state.env.set(k,E(N[C]??""));else if(C<I.length){let D=g.substring(I[C]);D=Wn(D,S,r),D=E(D),e.state.env.set(k,D)}else e.state.env.set(k,"")}return P("","",m?0:1)}function pn(e,t){if(e.state.callDepth===0&&e.state.sourceDepth===0)return _("bash: return: can only `return' from a function or sourced script\n");let s=e.state.lastExitCode;if(t.length>0){let n=t[0],r=Number.parseInt(n,10);if(n===""||Number.isNaN(r)||!/^-?\d+$/.test(n))return _(`bash: return: ${n}: numeric argument required
526
+ `,2);s=(r%256+256)%256}throw new le(s)}var as=`set: usage: set [-eux] [+eux] [-o option] [+o option]
527
+ Options:
528
+ -e Exit immediately if a command exits with non-zero status
529
+ +e Disable -e
530
+ -u Treat unset variables as an error when substituting
531
+ +u Disable -u
532
+ -x Print commands and their arguments as they are executed
533
+ +x Disable -x
534
+ -o errexit Same as -e
535
+ +o errexit Disable errexit
536
+ -o nounset Same as -u
537
+ +o nounset Disable nounset
538
+ -o pipefail Return status of last failing command in pipeline
539
+ +o pipefail Disable pipefail
540
+ -o xtrace Same as -x
541
+ +o xtrace Disable xtrace
542
+ `,Wr=new Map([["e","errexit"],["u","nounset"],["x","xtrace"],["v","verbose"],["f","noglob"],["C","noclobber"],["a","allexport"],["n","noexec"],["h",null],["b",null],["m",null],["B",null],["H",null],["P",null],["T",null],["E",null],["p",null]]),zr=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["noclobber","noclobber"],["noglob","noglob"],["allexport","allexport"],["noexec","noexec"],["posix","posix"],["vi","vi"],["emacs","emacs"],["notify",null],["monitor",null],["braceexpand",null],["histexpand",null],["physical",null],["functrace",null],["errtrace",null],["privileged",null],["hashall",null],["ignoreeof",null],["interactive-comments",null],["keyword",null],["onecmd",null]]),Vr=["errexit","nounset","pipefail","verbose","xtrace","posix","allexport","noclobber","noglob","noexec","vi","emacs"],Br=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"];function jr(e,t,s){t!==null&&(s&&(t==="vi"?e.state.options.emacs=!1:t==="emacs"&&(e.state.options.vi=!1)),e.state.options[t]=s,it(e))}function Ua(e,t){return t+1<e.length&&!e[t+1].startsWith("-")&&!e[t+1].startsWith("+")}function Za(e,t){let s=se(e,t);if(s.length===0)return`${t}=()`;let n=s.map(r=>{let i=e.state.env.get(`${t}_${r}`)??"";return`[${r}]=${Ge(i)}`});return`${t}=(${n.join(" ")})`}function qa(e){return/^[a-zA-Z0-9_]+$/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ga(e,t){let s=Fe(e,t);if(s.length===0)return`${t}=()`;let n=s.map(r=>{let i=e.state.env.get(`${t}_${r}`)??"";return`[${qa(r)}]=${Ge(i)}`});return`${t}=(${n.join(" ")} )`}function Ka(e){let t=new Set,s=e.state.associativeArrays??new Set;for(let n of e.state.env.keys()){let r=n.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(r){let i=r[1];s.has(i)||t.add(i)}}return t}function Xa(e){return e.state.associativeArrays??new Set}function yn(e,t){if(t.includes("--help"))return M(as);if(t.length===0){let n=Ka(e),r=Xa(e),i=l=>{for(let c of r){let u=`${c}_`,f=`${c}__length`;if(l!==f&&l.startsWith(u)){if(l.slice(u.length).startsWith("_length"))continue;return!0}}return!1},a=[];for(let[l,c]of e.state.env){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(l)||n.has(l)||r.has(l))continue;let u=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(u&&n.has(u[1]))continue;let f=l.match(/^([a-zA-Z_][a-zA-Z0-9_]*)__length$/);f&&n.has(f[1])||i(l)||f&&r.has(f[1])||a.push([l,c])}let o=[];for(let[l,c]of a.sort(([u],[f])=>u<f?-1:u>f?1:0))o.push(`${l}=${ns(c)}`);for(let l of[...n].sort((c,u)=>c<u?-1:c>u?1:0))o.push(Za(e,l));for(let l of[...r].sort((c,u)=>c<u?-1:c>u?1:0))o.push(Ga(e,l));return o.sort((l,c)=>{let u=l.split("=")[0],f=c.split("=")[0];return u<f?-1:u>f?1:0}),M(o.length>0?`${o.join(`
543
+ `)}
544
+ `:"")}let s=0;for(;s<t.length;){let n=t[s];if((n==="-o"||n==="+o")&&Ua(t,s)){let r=t[s+1];if(!zr.has(r)){let i=`bash: set: ${r}: invalid option name
545
+ ${as}`;if(e.state.options.posix)throw new be(1,"",i);return _(i)}jr(e,zr.get(r)??null,n==="-o"),s+=2;continue}if(n==="-o"){let r=Vr.map(o=>`${o.padEnd(16)}${e.state.options[o]?"on":"off"}`),i=Br.map(o=>`${o.padEnd(16)}off`),a=[...r,...i].sort();return M(`${a.join(`
546
+ `)}
547
+ `)}if(n==="+o"){let r=Vr.map(o=>`set ${e.state.options[o]?"-o":"+o"} ${o}`),i=Br.map(o=>`set +o ${o}`),a=[...r,...i].sort();return M(`${a.join(`
548
+ `)}
549
+ `)}if(n.length>1&&(n[0]==="-"||n[0]==="+")&&n[1]!=="-"){let r=n[0]==="-";for(let i=1;i<n.length;i++){let a=n[i];if(!Wr.has(a)){let o=`bash: set: ${n[0]}${a}: invalid option
550
+ ${as}`;if(e.state.options.posix)throw new be(1,"",o);return _(o)}jr(e,Wr.get(a)??null,r)}s++;continue}if(n==="--")return mn(e,t.slice(s+1)),F;if(n==="-"){if(e.state.options.xtrace=!1,e.state.options.verbose=!1,it(e),s+1<t.length)return mn(e,t.slice(s+1)),F;s++;continue}if(n==="+"){s++;continue}if(n.startsWith("-")||n.startsWith("+")){let r=`bash: set: ${n}: invalid option
551
+ ${as}`;if(e.state.options.posix)throw new be(1,"",r);return _(r)}return mn(e,t.slice(s)),F}return F}function mn(e,t){let s=1;for(;e.state.env.has(String(s));)e.state.env.delete(String(s)),s++;for(let n=0;n<t.length;n++)e.state.env.set(String(n+1),t[n]);e.state.env.set("#",String(t.length)),e.state.env.set("@",t.join(" ")),e.state.env.set("*",t.join(" "))}function gn(e,t){let s=1;if(t.length>0){let a=Number.parseInt(t[0],10);if(Number.isNaN(a)||a<0){let o=`bash: shift: ${t[0]}: numeric argument required
552
+ `;if(e.state.options.posix)throw new be(1,"",o);return _(o)}s=a}let n=Number.parseInt(e.state.env.get("#")||"0",10);if(s>n){let a=`bash: shift: shift count out of range
553
+ `;if(e.state.options.posix)throw new be(1,"",a);return _(a)}if(s===0)return F;let r=[];for(let a=1;a<=n;a++)r.push(e.state.env.get(String(a))||"");let i=r.slice(s);for(let a=1;a<=n;a++)e.state.env.delete(String(a));for(let a=0;a<i.length;a++)e.state.env.set(String(a+1),i[a]);return e.state.env.set("#",String(i.length)),e.state.env.set("@",i.join(" ")),F}async function wn(e,t){let s=t;if(s.length>0&&s[0]==="--"&&(s=s.slice(1)),s.length===0)return P("",`bash: source: filename argument required
554
+ `,2);let n=s[0],r=null,i=null;if(n.includes("/")){let c=e.fs.resolvePath(e.state.cwd,n);try{i=await e.fs.readFile(c),r=c}catch{}}else{let u=(e.state.env.get("PATH")||"").split(":").filter(f=>f);for(let f of u){let d=e.fs.resolvePath(e.state.cwd,`${f}/${n}`);try{if((await e.fs.stat(d)).isDirectory)continue;i=await e.fs.readFile(d),r=d;break}catch{}}if(i===null){let f=e.fs.resolvePath(e.state.cwd,n);try{i=await e.fs.readFile(f),r=f}catch{}}}if(i===null)return _(`bash: ${n}: No such file or directory
555
+ `);let a=new Map;if(s.length>1){for(let u=1;u<=9;u++)a.set(String(u),e.state.env.get(String(u)));a.set("#",e.state.env.get("#")),a.set("@",e.state.env.get("@"));let c=s.slice(1);e.state.env.set("#",String(c.length)),e.state.env.set("@",c.join(" "));for(let u=0;u<c.length&&u<9;u++)e.state.env.set(String(u+1),c[u]);for(let u=c.length+1;u<=9;u++)e.state.env.delete(String(u))}let o=e.state.currentSource,l=()=>{if(e.state.sourceDepth--,e.state.currentSource=o,s.length>1)for(let[c,u]of a)u===void 0?e.state.env.delete(c):e.state.env.set(c,u)};if(e.state.sourceDepth++,e.state.sourceDepth>e.limits.maxSourceDepth)throw e.state.sourceDepth--,new Y(`source: maximum nesting depth (${e.limits.maxSourceDepth}) exceeded, increase executionLimits.maxSourceDepth`,"recursion");e.state.currentSource=n;try{let c=$e(i),u=await e.executeScript(c);return l(),u}catch(c){if(l(),c instanceof B)throw c;if(c instanceof le)return P(c.stdout,c.stderr,c.exitCode);if(c.name==="ParseException")return _(`bash: ${n}: ${c.message}
556
+ `);throw c}}function Hr(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function Ya(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')}async function Ur(e,t){if(Ya(t))return null;try{let s=new V,n=Q(s,t);return await j(e,n.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}function Zr(e,t){if(e.state.localVarStack?.has(t)){let n=es(e,t);if(n){n.value===void 0?e.state.env.delete(t):e.state.env.set(t,n.value);let r=e.state.localVarStack?.get(t);if(!r||r.length===0)Jt(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,n.scopeIndex),vn(e,t);else{let i=r[r.length-1];e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,i.scopeIndex+1)}return!0}return e.state.env.delete(t),Jt(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,0),!0}for(let n=e.state.localScopes.length-1;n>=0;n--){let r=e.state.localScopes[n];if(r.has(t)){let i=r.get(t);i===void 0?e.state.env.delete(t):e.state.env.set(t,i),r.delete(t);let a=!1;for(let o=n-1;o>=0;o--)if(e.state.localScopes[o].has(t)){e.state.localVarDepth&&e.state.localVarDepth.set(t,o+1),a=!0;break}return a||Jt(e,t),!0}}return!1}function vn(e,t){if(!e.state.tempEnvBindings||e.state.tempEnvBindings.length===0)return!1;for(let s=e.state.tempEnvBindings.length-1;s>=0;s--){let n=e.state.tempEnvBindings[s];if(n.has(t)){let r=n.get(t);return r===void 0?e.state.env.delete(t):e.state.env.set(t,r),n.delete(t),!0}}return!1}async function qr(e,t){if(t.startsWith("'")&&t.endsWith("'"))return t.slice(1,-1);if(t.startsWith('"')&&t.endsWith('"')){let s=t.slice(1,-1),r=new V().parseWordFromString(s,!0,!1);return x(e,r)}if(t.includes("$")){let n=new V().parseWordFromString(t,!1,!1);return x(e,n)}return t}async function bn(e,t){let s="both",n="",r=0;for(let i of t){if(i==="-v"){s="variable";continue}if(i==="-f"){s="function";continue}if(s==="function"){e.state.functions.delete(i);continue}if(s==="variable"){let c=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(c){let d=c[1],h=c[2];if(h==="@"||h==="*"){let $=Ee(e,d);for(let[m]of $)e.state.env.delete(`${d}_${m}`);e.state.env.delete(d);continue}let y=e.state.associativeArrays?.has(d);if(y){let $=await qr(e,h);e.state.env.delete(`${d}_${$}`);continue}let p=Ss(e,d),v=e.state.declaredVars?.has(d);if((e.state.env.has(d)||v)&&!p&&!y){n+=`bash: unset: ${d}: not an array variable
557
+ `,r=1;continue}let g=await Ur(e,h);if(g===null&&p){n+=`bash: unset: ${h}: not a valid identifier
558
+ `,r=1;continue}if(g===null)continue;if(g<0){let $=Ee(e,d),m=$.length,w=e.state.currentLine;if(m===0){n+=`bash: line ${w}: unset: [${g}]: bad array subscript
559
+ `,r=1;continue}let E=m+g;if(E<0){n+=`bash: line ${w}: unset: [${g}]: bad array subscript
560
+ `,r=1;continue}let S=$[E][0];e.state.env.delete(`${d}_${S}`);continue}e.state.env.delete(`${d}_${g}`);continue}if(!Hr(i)){n+=`bash: unset: \`${i}': not a valid identifier
561
+ `,r=1;continue}let u=i;if(ye(e,i)){let d=Me(e,i);d&&d!==i&&(u=d)}if(Ue(e,u)){n+=`bash: unset: ${u}: cannot unset: readonly variable
562
+ `,r=1;continue}let f=ot(e,u);if(f!==void 0&&f!==e.state.callDepth)Zr(e,u);else if(e.state.fullyUnsetLocals?.has(u))e.state.env.delete(u);else if(f!==void 0){let d=e.state.accessedTempEnvVars?.has(u),h=e.state.mutatedTempEnvVars?.has(u);if((d||h)&&e.state.localVarStack?.has(u)){let y=es(e,u);y?y.value===void 0?e.state.env.delete(u):e.state.env.set(u,y.value):e.state.env.delete(u)}else e.state.env.delete(u)}else vn(e,u)||e.state.env.delete(u);e.state.exportedVars?.delete(u);continue}let a=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(a){let c=a[1],u=a[2];if(u==="@"||u==="*"){let p=Ee(e,c);for(let[v]of p)e.state.env.delete(`${c}_${v}`);e.state.env.delete(c);continue}let f=e.state.associativeArrays?.has(c);if(f){let p=await qr(e,u);e.state.env.delete(`${c}_${p}`);continue}let d=Ss(e,c);if(e.state.env.has(c)&&!d&&!f){n+=`bash: unset: ${c}: not an array variable
563
+ `,r=1;continue}let y=await Ur(e,u);if(y===null&&d){n+=`bash: unset: ${u}: not a valid identifier
564
+ `,r=1;continue}if(y===null)continue;if(y<0){let p=Ee(e,c),v=p.length,b=e.state.currentLine;if(v===0){n+=`bash: line ${b}: unset: [${y}]: bad array subscript
565
+ `,r=1;continue}let g=v+y;if(g<0){n+=`bash: line ${b}: unset: [${y}]: bad array subscript
566
+ `,r=1;continue}let $=p[g][0];e.state.env.delete(`${c}_${$}`);continue}e.state.env.delete(`${c}_${y}`);continue}if(!Hr(i)){n+=`bash: unset: \`${i}': not a valid identifier
567
+ `,r=1;continue}let o=i;if(ye(e,i)){let c=Me(e,i);c&&c!==i&&(o=c)}if(Ue(e,o)){n+=`bash: unset: ${o}: cannot unset: readonly variable
568
+ `,r=1;continue}let l=ot(e,o);if(l!==void 0&&l!==e.state.callDepth)Zr(e,o);else if(e.state.fullyUnsetLocals?.has(o))e.state.env.delete(o);else if(l!==void 0){let c=e.state.accessedTempEnvVars?.has(o),u=e.state.mutatedTempEnvVars?.has(o);if((c||u)&&e.state.localVarStack?.has(o)){let f=es(e,o);f?f.value===void 0?e.state.env.delete(o):e.state.env.set(o,f.value):e.state.env.delete(o)}else e.state.env.delete(o)}else vn(e,o)||e.state.env.delete(o);e.state.exportedVars?.delete(o),e.state.functions.delete(i)}return P("",n,r)}var $n=["extglob","dotglob","nullglob","failglob","globstar","globskipdots","nocaseglob","nocasematch","expand_aliases","lastpipe","xpg_echo"],Qa=["autocd","cdable_vars","cdspell","checkhash","checkjobs","checkwinsize","cmdhist","compat31","compat32","compat40","compat41","compat42","compat43","compat44","complete_fullquote","direxpand","dirspell","execfail","extdebug","extquote","force_fignore","globasciiranges","gnu_errfmt","histappend","histreedit","histverify","hostcomplete","huponexit","inherit_errexit","interactive_comments","lithist","localvar_inherit","localvar_unset","login_shell","mailwarn","no_empty_cmd_completion","progcomp","progcomp_alias","promptvars","restricted_shell","shift_verbose","sourcepath"];function os(e){return $n.includes(e)}function Ja(e){return Qa.includes(e)}function Gr(e,t){let s=!1,n=!1,r=!1,i=!1,a=!1,o=[],l=0;for(;l<t.length;){let d=t[l];if(d==="--"){l++;break}if(d.startsWith("-")&&d.length>1){for(let h=1;h<d.length;h++){let y=d[h];switch(y){case"s":s=!0;break;case"u":n=!0;break;case"p":r=!0;break;case"q":i=!0;break;case"o":a=!0;break;default:return{exitCode:2,stdout:"",stderr:`shopt: -${y}: invalid option
569
+ `}}}l++}else break}for(;l<t.length;)o.push(t[l]),l++;if(a)return eo(e,o,s,n,r,i);if(s&&n)return{exitCode:1,stdout:"",stderr:`shopt: cannot set and unset shell options simultaneously
570
+ `};if(o.length===0){if(s||n){let h=[];for(let y of $n){let p=e.state.shoptOptions[y];s&&p?h.push(r?`shopt -s ${y}`:`${y} on`):n&&!p&&h.push(r?`shopt -u ${y}`:`${y} off`)}return{exitCode:0,stdout:h.length>0?`${h.join(`
571
+ `)}
572
+ `:"",stderr:""}}let d=[];for(let h of $n){let y=e.state.shoptOptions[h];d.push(r?`shopt ${y?"-s":"-u"} ${h}`:`${h} ${y?"on":"off"}`)}return{exitCode:0,stdout:`${d.join(`
573
+ `)}
574
+ `,stderr:""}}let c=!1,u="",f=[];for(let d of o){if(!os(d)&&!Ja(d)){u+=`shopt: ${d}: invalid shell option name
575
+ `,c=!0;continue}if(s)os(d)&&(e.state.shoptOptions[d]=!0,Os(e));else if(n)os(d)&&(e.state.shoptOptions[d]=!1,Os(e));else if(os(d)){let h=e.state.shoptOptions[d];i?h||(c=!0):r?(f.push(`shopt ${h?"-s":"-u"} ${d}`),h||(c=!0)):(f.push(`${d} ${h?"on":"off"}`),h||(c=!0))}else i?c=!0:r?(f.push(`shopt -u ${d}`),c=!0):(f.push(`${d} off`),c=!0)}return{exitCode:c?1:0,stdout:f.length>0?`${f.join(`
576
+ `)}
577
+ `:"",stderr:u}}function eo(e,t,s,n,r,i){let a=new Map([["errexit","errexit"],["pipefail","pipefail"],["nounset","nounset"],["xtrace","xtrace"],["verbose","verbose"],["posix","posix"],["allexport","allexport"],["noclobber","noclobber"],["noglob","noglob"],["noexec","noexec"],["vi","vi"],["emacs","emacs"]]),o=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"],l=[...a.keys(),...o].sort();if(t.length===0){let d=[];for(let h of l){let y=o.includes(h),p=a.get(h),v=y||!p?!1:e.state.options[p];s&&!v||n&&v||d.push(r?`set ${v?"-o":"+o"} ${h}`:`${h} ${v?"on":"off"}`)}return{exitCode:0,stdout:d.length>0?`${d.join(`
578
+ `)}
579
+ `:"",stderr:""}}let c=!1,u="",f=[];for(let d of t){let h=a.has(d),y=o.includes(d);if(!h&&!y){u+=`shopt: ${d}: invalid option name
580
+ `,c=!0;continue}if(y){s||n||(i?c=!0:r?(f.push(`set +o ${d}`),c=!0):(f.push(`${d} off`),c=!0));continue}let p=a.get(d);if(p)if(s)p==="vi"?e.state.options.emacs=!1:p==="emacs"&&(e.state.options.vi=!1),e.state.options[p]=!0,it(e);else if(n)e.state.options[p]=!1,it(e);else{let v=e.state.options[p];i?v||(c=!0):r?(f.push(`set ${v?"-o":"+o"} ${d}`),v||(c=!0)):(f.push(`${d} ${v?"on":"off"}`),v||(c=!0))}}return{exitCode:c?1:0,stdout:f.length>0?`${f.join(`
581
+ `)}
582
+ `:"",stderr:u}}async function Kr(e,t,s){if(t.includes("/")){let a=e.fs.resolvePath(e.state.cwd,t);if(!await e.fs.exists(a))return{error:"not_found",path:a};let o=a.split("/").pop()||t,l=e.commands.get(o);try{let c=await e.fs.stat(a);return c.isDirectory?{error:"permission_denied",path:a}:l?{cmd:l,path:a}:(c.mode&73)!==0?{script:!0,path:a}:{error:"permission_denied",path:a}}catch{return{error:"not_found",path:a}}}if(!s&&e.state.hashTable){let a=e.state.hashTable.get(t);if(a)if(await e.fs.exists(a)){let o=e.commands.get(t);if(o)return{cmd:o,path:a};try{let l=await e.fs.stat(a);if(!l.isDirectory&&(l.mode&73)!==0)return{script:!0,path:a}}catch{}}else e.state.hashTable.delete(t)}let r=(s??e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let a of r){if(!a)continue;let l=`${a.startsWith("/")?a:e.fs.resolvePath(e.state.cwd,a)}/${t}`;if(await e.fs.exists(l))try{let c=await e.fs.stat(l);if(c.isDirectory)continue;let u=(c.mode&73)!==0,f=e.commands.get(t),d=a==="/bin"||a==="/usr/bin";if(f&&d)return{cmd:f,path:l};if(u){if(f&&!d)return{script:!0,path:l};if(!f)return{script:!0,path:l}}}catch{}}if(!await e.fs.exists("/usr/bin")){let a=e.commands.get(t);if(a)return{cmd:a,path:`/usr/bin/${t}`}}return null}async function ls(e,t){let s=[];if(t.includes("/")){let i=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(i))try{let a=await e.fs.stat(i);a.isDirectory||(a.mode&73)!==0&&s.push(t)}catch{}return s}let r=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let i of r){if(!i)continue;let o=`${i.startsWith("/")?i:e.fs.resolvePath(e.state.cwd,i)}/${t}`;if(await e.fs.exists(o)){try{if((await e.fs.stat(o)).isDirectory)continue}catch{continue}s.push(i.startsWith("/")?o:`${i}/${t}`)}}return s}function to(e){return e!==null&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function Z(e,t,s,n){return((...r)=>{yt(t,s,`${n} call`);let i=e(...r);return to(i)?i.then(a=>(yt(t,s,`${n} post-await`),a),a=>{throw yt(t,s,`${n} post-await`),a}):(yt(t,s,`${n} return`),i)})}function so(e,t,s){let n={readFile:Z(e.readFile.bind(e),t,s,"fs.readFile"),...typeof e.readFileBytes=="function"?{readFileBytes:Z(e.readFileBytes.bind(e),t,s,"fs.readFileBytes")}:Object.create(null),readFileBuffer:Z(e.readFileBuffer.bind(e),t,s,"fs.readFileBuffer"),writeFile:Z(e.writeFile.bind(e),t,s,"fs.writeFile"),appendFile:Z(e.appendFile.bind(e),t,s,"fs.appendFile"),exists:Z(e.exists.bind(e),t,s,"fs.exists"),stat:Z(e.stat.bind(e),t,s,"fs.stat"),mkdir:Z(e.mkdir.bind(e),t,s,"fs.mkdir"),readdir:Z(e.readdir.bind(e),t,s,"fs.readdir"),rm:Z(e.rm.bind(e),t,s,"fs.rm"),cp:Z(e.cp.bind(e),t,s,"fs.cp"),mv:Z(e.mv.bind(e),t,s,"fs.mv"),resolvePath:Z(e.resolvePath.bind(e),t,s,"fs.resolvePath"),getAllPaths:Z(e.getAllPaths.bind(e),t,s,"fs.getAllPaths"),chmod:Z(e.chmod.bind(e),t,s,"fs.chmod"),symlink:Z(e.symlink.bind(e),t,s,"fs.symlink"),link:Z(e.link.bind(e),t,s,"fs.link"),readlink:Z(e.readlink.bind(e),t,s,"fs.readlink"),lstat:Z(e.lstat.bind(e),t,s,"fs.lstat"),realpath:Z(e.realpath.bind(e),t,s,"fs.realpath"),utimes:Z(e.utimes.bind(e),t,s,"fs.utimes")};return e.readdirWithFileTypes&&(n.readdirWithFileTypes=Z(e.readdirWithFileTypes.bind(e),t,s,"fs.readdirWithFileTypes")),n}function Xr(e,t){if(!e.requireDefenseContext)return e;let s=`command:${t}`,n={...e,fs:so(e.fs,e.requireDefenseContext,s)};return e.exec&&(n.exec=Z(e.exec,e.requireDefenseContext,s,"exec")),e.fetch&&(n.fetch=Z(e.fetch,e.requireDefenseContext,s,"fetch")),e.sleep&&(n.sleep=Z(e.sleep,e.requireDefenseContext,s,"sleep")),e.getRegisteredCommands&&(n.getRegisteredCommands=Z(e.getRegisteredCommands,e.requireDefenseContext,s,"getRegisteredCommands")),n}async function ei(e,t,s,n){let r=!1,i=!1,a=!1,o=!1,l=!1,c=[];for(let p of t)if(p.startsWith("-")&&p.length>1)for(let v of p.slice(1))v==="t"?r=!0:v==="p"?i=!0:v==="P"?a=!0:v==="a"?o=!0:v==="f"&&(l=!0);else c.push(p);let u="",f="",d=0,h=!1,y=!1;for(let p of c){let v=!1;if(a){if(o){let E=await n(p);if(E.length>0){for(let S of E)u+=`${S}
583
+ `;h=!0,v=!0}}else{let E=await s(p);E&&(u+=`${E}
584
+ `,h=!0,v=!0)}v||(y=!0);continue}let b=!l&&e.state.functions.has(p);if(o&&b){if(!i)if(r)u+=`function
585
+ `;else{let E=e.state.functions.get(p),S=E?Yr(p,E):`${p} is a function
586
+ `;u+=S}v=!0}let g=e.state.env.get(`BASH_ALIAS_${p}`);if(g!==void 0&&(o||!v)&&(i||(r?u+=`alias
587
+ `:u+=`${p} is aliased to \`${g}'
588
+ `),v=!0,!o)||Ms.has(p)&&(o||!v)&&(i||(r?u+=`keyword
589
+ `:u+=`${p} is a shell keyword
590
+ `),v=!0,!o))continue;if(!o&&b&&!v){if(!i)if(r)u+=`function
591
+ `;else{let E=e.state.functions.get(p),S=E?Yr(p,E):`${p} is a function
592
+ `;u+=S}v=!0;continue}if(!(lt.has(p)&&(o||!v)&&(i||(r?u+=`builtin
593
+ `:u+=`${p} is a shell builtin
594
+ `),v=!0,!o))){if(o){let E=await n(p);for(let S of E)i?u+=`${S}
595
+ `:r?u+=`file
596
+ `:u+=`${p} is ${S}
597
+ `,h=!0,v=!0}else if(!v){let E=await s(p);E&&(i?u+=`${E}
598
+ `:r?u+=`file
599
+ `:u+=`${p} is ${E}
600
+ `,h=!0,v=!0)}if(!v&&(y=!0,!r&&!i)){let E=!0;if(p.includes("/")){let S=e.fs.resolvePath(e.state.cwd,p);await e.fs.exists(S)&&(E=!1)}E&&(f+=`bash: type: ${p}: not found
601
+ `)}}}return i?d=y&&!h?1:0:d=y?1:0,P(u,f,d)}function Yr(e,t){let s;return t.body.type==="Group"?s=t.body.body.map(r=>St(r)).join("; "):s=St(t.body),`${e} is a function
602
+ ${e} ()
603
+ {
604
+ ${s}
605
+ }
606
+ `}function St(e){if(Array.isArray(e))return e.map(t=>St(t)).join("; ");if(e.type==="Statement"){let t=[];for(let s=0;s<e.pipelines.length;s++){let n=e.pipelines[s];t.push(no(n)),e.operators[s]&&t.push(e.operators[s])}return t.join(" ")}if(e.type==="SimpleCommand"){let t=e,s=[];t.name&&s.push(Qr(t.name));for(let n of t.args)s.push(Qr(n));return s.join(" ")}return e.type==="Group"?`{ ${e.body.map(n=>St(n)).join("; ")}; }`:"..."}function no(e){let t=e.commands.map(s=>St(s));return(e.negated?"! ":"")+t.join(" | ")}function Qr(e){let t="";for(let s of e.parts)s.type==="Literal"?t+=s.value:s.type==="DoubleQuoted"?t+=`"${s.parts.map(n=>Jr(n)).join("")}"`:s.type==="SingleQuoted"?t+=`'${s.value}'`:t+=Jr(s);return t}function Jr(e){let t=e;return t.type==="Literal"?t.value??"":t.type==="Variable"?`$${t.name}`:""}async function ti(e,t,s,n){let r="",i="",a=0;for(let o of t){if(!o){a=1;continue}let l=e.state.env.get(`BASH_ALIAS_${o}`);if(l!==void 0)n?r+=`${o} is an alias for "${l}"
607
+ `:r+=`alias ${o}='${l}'
608
+ `;else if(Ms.has(o))n?r+=`${o} is a shell keyword
609
+ `:r+=`${o}
610
+ `;else if(lt.has(o))n?r+=`${o} is a shell builtin
611
+ `:r+=`${o}
612
+ `;else if(e.state.functions.has(o))n?r+=`${o} is a function
613
+ `:r+=`${o}
614
+ `;else if(o.includes("/")){let c=e.fs.resolvePath(e.state.cwd,o),u=!1;if(await e.fs.exists(c))try{let f=await e.fs.stat(c);f.isDirectory||(f.mode&73)!==0&&(n?r+=`${o} is ${o}
615
+ `:r+=`${o}
616
+ `,u=!0)}catch{}u||(n&&(i+=`${o}: not found
617
+ `),a=1)}else if(e.commands.has(o)){let u=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":"),f=null;for(let d of u){if(!d)continue;let h=`${d}/${o}`;try{let y=await e.fs.stat(h);if(!y.isDirectory&&(y.mode&73)!==0){f=h;break}}catch{}}f||(f=`/usr/bin/${o}`),n?r+=`${o} is ${f}
618
+ `:r+=`${f}
619
+ `}else n&&(i+=`${o}: not found
620
+ `),a=1}return P(r,i,a)}async function si(e,t){if(t.includes("/")){let r=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(r)){try{let i=await e.fs.stat(r);if(i.isDirectory||!((i.mode&73)!==0))return null}catch{return null}return t}return null}let n=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let r of n){if(!r)continue;let a=`${r.startsWith("/")?r:e.fs.resolvePath(e.state.cwd,r)}/${t}`;if(await e.fs.exists(a)){try{if((await e.fs.stat(a)).isDirectory)continue}catch{continue}return`${r}/${t}`}}if(e.commands.has(t)){for(let r of n)if(r==="/usr/bin"||r==="/bin")return`${r}/${t}`;return`/usr/bin/${t}`}return null}async function ni(e,t,s,n,r,i,a,o){let{ctx:l,runCommand:c}=e;if(l.coverage&&lt.has(t)&&l.coverage.hit(`bash:builtin:${t}`),t==="export")return on(l,s);if(t==="unset")return bn(l,s);if(t==="exit")return an(l,s);if(t==="local")return fn(l,s);if(t==="set")return yn(l,s);if(t==="break")return Ts(l,s);if(t==="continue")return Us(l,s);if(t==="return")return pn(l,s);if(t==="eval"&&l.state.options.posix)return rs(l,s,r);if(t==="shift")return gn(l,s);if(t==="getopts")return is(l,s);if(t==="compgen")return Vs(l,s);if(t==="complete")return js(l,s);if(t==="compopt")return Hs(l,s);if(t==="pushd")return await sn(l,s);if(t==="popd")return nn(l,s);if(t==="dirs")return rn(l,s);if(t==="source"||t===".")return wn(l,s);if(t==="read")return hn(l,s,r,o);if(t==="mapfile"||t==="readarray")return dn(l,s,r);if(t==="declare"||t==="typeset")return Js(l,s);if(t==="readonly")return en(l,s);if(!i){let u=l.state.functions.get(t);if(u)return ss(l,u,s,r)}if(t==="eval")return rs(l,s,r);if(t==="cd")return await xs(l,s);if(t===":"||t==="true")return F;if(t==="false")return X(!1);if(t==="let")return un(l,s);if(t==="command")return ro(e,s,r);if(t==="builtin")return io(e,s,r);if(t==="shopt")return Gr(l,s);if(t==="exec"){if(s.length===0)return F;let[u,...f]=s;return c(u,f,[],r,!1,!1,-1)}if(t==="wait")return F;if(t==="type")return await ei(l,s,u=>si(l,u),u=>ls(l,u));if(t==="hash")return ln(l,s);if(t==="help")return cn(l,s);if(t==="["||t==="test"){let u=s;if(t==="["){if(s[s.length-1]!=="]")return _("[: missing `]'\n",2);u=s.slice(0,-1)}return bt(l,u)}return null}async function ro(e,t,s){let{ctx:n,runCommand:r}=e;if(t.length===0)return F;let i=!1,a=!1,o=!1,l=t;for(;l.length>0&&l[0].startsWith("-");){let f=l[0];if(f==="--"){l=l.slice(1);break}for(let d of f.slice(1))d==="p"?i=!0:d==="V"?a=!0:d==="v"&&(o=!0);l=l.slice(1)}if(l.length===0)return F;if(o||a)return await ti(n,l,o,a);let[c,...u]=l;return r(c,u,[],s,!0,i,-1)}async function io(e,t,s){let{runCommand:n}=e;if(t.length===0)return F;let r=t;if(r[0]==="--"&&(r=r.slice(1),r.length===0))return F;let i=r[0];if(!lt.has(i))return _(`bash: builtin: ${i}: not a shell builtin
621
+ `);let[,...a]=r;return n(i,a,[],s,!0,!1,-1)}async function ri(e,t,s,n,r){let{ctx:i,buildExportedEnv:a,executeUserScript:o}=e,c=await Kr(i,t,r?"/usr/bin:/bin":void 0);if(!c)return fr(t)?_(`bash: ${t}: command not available in browser environments. Exclude '${t}' from your commands or use the Node.js bundle.
622
+ `,127):_(`bash: ${t}: command not found
623
+ `,127);if("error"in c)return c.error==="permission_denied"?_(`bash: ${t}: Permission denied
624
+ `,126):_(`bash: ${t}: No such file or directory
625
+ `,127);if("script"in c)return t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,c.path)),await o(c.path,s,n);let{cmd:u,path:f}=c;t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,f));let d=n||i.state.groupStdin||"",h=u.custom?Dn(d):d,y=a(),p={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:y,stdin:h,limits:i.limits,exec:i.execFn,fetch:i.fetch,getRegisteredCommands:()=>Array.from(i.commands.keys()),sleep:i.sleep,trace:i.trace,fileDescriptors:i.state.fileDescriptors,xpgEcho:i.state.shoptOptions.xpg_echo,coverage:i.coverage,signal:i.state.signal,requireDefenseContext:i.requireDefenseContext,jsBootstrapCode:i.jsBootstrapCode,invokeTool:i.invokeTool},v=Xr(p,t);try{let b=()=>Rn(i.requireDefenseContext,"command",`${t} execution`,()=>u.execute(s,v));return u.trusted?await ve.runTrustedAsync(()=>b()):await b()}catch(b){if(b instanceof Y||b instanceof Qe)throw b;return _(`${t}: ${he(De(b))}
626
+ `)}}async function En(e,t){let s=e.state.inCondition;e.state.inCondition=!0;let n="",r="",i=0;try{for(let a of t){let o=await e.executeStatement(a);n+=o.stdout,r+=o.stderr,i=o.exitCode}}finally{e.state.inCondition=s}return{stdout:n,stderr:r,exitCode:i}}function At(e,t,s,n){if(e instanceof fe)return t+=e.stdout,s+=e.stderr,e.levels>1&&n>1?(e.levels--,e.stdout=t,e.stderr=s,{action:"rethrow",stdout:t,stderr:s,error:e}):{action:"break",stdout:t,stderr:s};if(e instanceof de)return t+=e.stdout,s+=e.stderr,e.levels>1&&n>1?(e.levels--,e.stdout=t,e.stderr=s,{action:"rethrow",stdout:t,stderr:s,error:e}):{action:"continue",stdout:t,stderr:s};if(e instanceof le||e instanceof pe||e instanceof B||e instanceof Y)return e.prependOutput(t,s),{action:"rethrow",stdout:t,stderr:s,error:e};let r=De(e);return{action:"error",stdout:t,stderr:`${s}${r}
627
+ `,exitCode:1}}async function cs(e,t,s="",n=""){let r=s,i=n,a=0;try{for(let o of t){let l=await e.executeStatement(o);r+=l.stdout,i+=l.stderr,a=l.exitCode}}catch(o){if(xt(o)||o instanceof pe||o instanceof B||o instanceof Y||o instanceof Ie)throw o.prependOutput(r,i),o;return{stdout:r,stderr:`${i}${De(o)}
628
+ `,exitCode:1}}return{stdout:r,stderr:i,exitCode:a}}async function ii(e,t){let s="",n="";for(let r of t.clauses){let i=await En(e,r.condition);if(s+=i.stdout,n+=i.stderr,i.exitCode===0)return cs(e,r.body,s,n)}return t.elseBody?cs(e,t.elseBody,s,n):P(s,n,0)}async function ai(e,t){let s=await Ne(e,t.redirections);if(s)return s;let n="",r="",i=0,a=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t.variable))return _(`bash: \`${t.variable}': not a valid identifier
629
+ `);let o=[];if(t.words===null)o=(e.state.env.get("@")||"").split(" ").filter(Boolean);else if(t.words.length===0)o=[];else try{for(let c of t.words){let u=await Ce(e,c);o.push(...u.values)}}catch(c){if(c instanceof Dt)return{stdout:"",stderr:c.stderr,exitCode:1};throw c}e.state.loopDepth++;try{for(let c of o){a++,a>e.limits.maxLoopIterations&&Pe(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,r),e.state.env.set(t.variable,c);try{for(let u of t.body){let f=await e.executeStatement(u);n+=f.stdout,r+=f.stderr,i=f.exitCode}}catch(u){let f=At(u,n,r,e.state.loopDepth);if(n=f.stdout,r=f.stderr,f.action==="break")break;if(f.action==="continue")continue;if(f.action==="error"){let d=P(n,r,f.exitCode??1);return q(e,d,t.redirections)}throw f.error}}}finally{e.state.loopDepth--}let l=P(n,r,i);return q(e,l,t.redirections)}async function oi(e,t){let s=await Ne(e,t.redirections);if(s)return s;let n=t.line;n!==void 0&&(e.state.currentLine=n);let r="",i="",a=0,o=0;t.init&&await j(e,t.init.expression),e.state.loopDepth++;try{for(;o++,o>e.limits.maxLoopIterations&&Pe(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,i),!(t.condition&&(n!==void 0&&(e.state.currentLine=n),await j(e,t.condition.expression)===0));){try{for(let c of t.body){let u=await e.executeStatement(c);r+=u.stdout,i+=u.stderr,a=u.exitCode}}catch(c){let u=At(c,r,i,e.state.loopDepth);if(r=u.stdout,i=u.stderr,u.action==="break")break;if(u.action==="continue"){t.update&&await j(e,t.update.expression);continue}if(u.action==="error"){let f=P(r,i,u.exitCode??1);return q(e,f,t.redirections)}throw u.error}t.update&&await j(e,t.update.expression)}}finally{e.state.loopDepth--}let l=P(r,i,a);return q(e,l,t.redirections)}async function li(e,t,s=""){let n="",r="",i=0,a=0,o=s;for(let c of t.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await x(e,u.content);u.stripTabs&&(f=f.split(`
630
+ `).map(d=>d.replace(/^\t+/,"")).join(`
631
+ `)),o=f}else if(c.operator==="<<<"&&c.target.type==="Word")o=`${await x(e,c.target)}
632
+ `;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await x(e,c.target),f=e.fs.resolvePath(e.state.cwd,u);o=await e.fs.readFile(f)}catch{let u=await x(e,c.target);return _(`bash: ${u}: No such file or directory
633
+ `)}let l=e.state.groupStdin;o&&(e.state.groupStdin=o),e.state.loopDepth++;try{for(;;){a++,a>e.limits.maxLoopIterations&&Pe(`while loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,r);let c=0,u=!1,f=!1,d=e.state.inCondition;e.state.inCondition=!0;try{for(let h of t.condition){let y=await e.executeStatement(h);n+=y.stdout,r+=y.stderr,c=y.exitCode}}catch(h){if(h instanceof fe){if(n+=h.stdout,r+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=n,h.stderr=r,e.state.inCondition=d,h;u=!0}else if(h instanceof de){if(n+=h.stdout,r+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=n,h.stderr=r,e.state.inCondition=d,h;f=!0}else throw e.state.inCondition=d,h}finally{e.state.inCondition=d}if(u)break;if(!f){if(c!==0)break;try{for(let h of t.body){let y=await e.executeStatement(h);n+=y.stdout,r+=y.stderr,i=y.exitCode}}catch(h){let y=At(h,n,r,e.state.loopDepth);if(n=y.stdout,r=y.stderr,y.action==="break")break;if(y.action==="continue")continue;if(y.action==="error")return P(n,r,y.exitCode??1);throw y.error}}}}finally{e.state.loopDepth--,e.state.groupStdin=l}return P(n,r,i)}async function ci(e,t){let s="",n="",r=0,i=0;e.state.loopDepth++;try{for(;;){i++,i>e.limits.maxLoopIterations&&Pe(`until loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",s,n);let a=await En(e,t.condition);if(s+=a.stdout,n+=a.stderr,a.exitCode===0)break;try{for(let o of t.body){let l=await e.executeStatement(o);s+=l.stdout,n+=l.stderr,r=l.exitCode}}catch(o){let l=At(o,s,n,e.state.loopDepth);if(s=l.stdout,n=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return P(s,n,l.exitCode??1);throw l.error}}}finally{e.state.loopDepth--}return P(s,n,r)}async function ui(e,t){let s=await Ne(e,t.redirections);if(s)return s;let n="",r="",i=0,a=await x(e,t.word),o=!1;for(let c=0;c<t.items.length;c++){let u=t.items[c],f=o;if(!o)for(let d of u.patterns){let h=await x(e,d);Zn(d)&&(h=Hn(h));let y=e.state.shoptOptions.nocasematch,p=e.state.shoptOptions.extglob;if(at(a,h,y,p)){f=!0;break}}if(f){let d=await cs(e,u.body,n,r);if(n=d.stdout,r=d.stderr,i=d.exitCode,u.terminator===";;")break;u.terminator===";&"?o=!0:o=!1}else o=!1}let l=P(n,r,i);return q(e,l,t.redirections)}function Sn(e,t){if(e.parts.length!==1)return!1;let s=e.parts[0];return s.type!=="Literal"?!1:t.includes(s.value)}function fi(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let n=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(n)||n<0)return null;let r=s+1,i=t.slice(r,r+n),a=r+n+1,o=t.slice(a),l=o.indexOf(":");if(l===-1)return null;let c=Number.parseInt(o.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=o.slice(l+1);return{path:i,position:c,content:u}}var di="+ ";async function hi(e){let t=e.state.env.get("PS4");if(t===void 0)return di;if(t==="")return"";try{let n=new V().parseWordFromString(t,!1,!1);return await x(e,n)}catch{return e.state.expansionStderr=`${e.state.expansionStderr||""}bash: ${t}: bad substitution
634
+ `,t||di}}function ao(e){return e.map(t=>oo(t)).join(" ")}function oo(e){if(e==="")return"''";if(!/[\s'"\\$`!*?[\]{}|&;<>()~#\n\t]/.test(e))return e;let s=/[\x00-\x1f\x7f]/.test(e),n=e.includes(`
635
+ `),r=e.includes(" "),i=e.includes("\\"),a=e.includes("'");if(s||n||r||i){let l="";for(let c of e){let u=c.charCodeAt(0);c===`
636
+ `?l+="\\n":c===" "?l+="\\t":c==="\\"?l+="\\\\":c==="'"?l+="'":c==='"'?l+='"':u<32||u===127?u<256?l+=`\\x${u.toString(16).padStart(2,"0")}`:l+=`\\u${u.toString(16).padStart(4,"0")}`:l+=c}return`$'${l}'`}return a?`"${e.replace(/([\\$`"])/g,"\\$1")}"`:`'${e}'`}async function pi(e,t,s){if(!e.state.options.xtrace)return"";let n=await hi(e),r=[t,...s],i=ao(r);return`${n}${i}
637
+ `}async function mi(e,t,s){return e.state.options.xtrace?`${await hi(e)}${t}=${s}
638
+ `:""}async function gi(e,t,s){let n=t.timed?gs():0,r="",i=F,a=0,o=[],l="",c=t.commands.length>1,u=e.state.lastArg;for(let d=0;d<t.commands.length;d++){let h=t.commands[d],y=d===t.commands.length-1,p=d===0;c&&(e.state.lastArg="",p||(e.state.groupStdin=void 0));let b=c&&(!y||!e.state.shoptOptions.lastpipe)?new Map(e.state.env):null,g;try{g=await s(h,r)}catch($){if($ instanceof Ot)g={stdout:$.stdout,stderr:$.stderr,exitCode:1};else if($ instanceof B&&t.commands.length>1)g={stdout:$.stdout,stderr:$.stderr,exitCode:$.exitCode};else if($ instanceof pe&&t.commands.length>1)g={stdout:$.stdout,stderr:$.stderr,exitCode:$.exitCode};else throw b&&(e.state.env=b),$}b&&(e.state.env=b),o.push(g.exitCode),g.exitCode!==0&&(a=g.exitCode),y?i=g:(t.pipeStderr?.[d]??!1?r=je(g.stderr)+ms(g):(r=ms(g),l+=g.stderr),i={stdout:"",stderr:"",exitCode:g.exitCode})}if(l&&(i={...i,stderr:l+i.stderr}),t.commands.length>1||t.commands.length===1&&t.commands[0].type==="SimpleCommand"){for(let d of e.state.env.keys())d.startsWith("PIPESTATUS_")&&e.state.env.delete(d);for(let d=0;d<o.length;d++)e.state.env.set(`PIPESTATUS_${d}`,String(o[d]));e.state.env.set("PIPESTATUS__length",String(o.length))}if(e.state.options.pipefail&&a!==0&&(i={...i,exitCode:a}),t.negated&&(i={...i,exitCode:i.exitCode===0?1:0}),t.timed){let h=(gs()-n)/1e3,y=Math.floor(h/60),p=h%60,v;t.timePosix?v=`real ${h.toFixed(2)}
639
+ user 0.00
640
+ sys 0.00
641
+ `:v=`
642
+ real ${`${y}m${p.toFixed(3)}s`}
643
+ user 0m0.000s
644
+ sys 0m0.000s
645
+ `,i={...i,stderr:i.stderr+v}}return c&&!e.state.shoptOptions.lastpipe&&(e.state.lastArg=u),i}async function wi(e,t){let s=new Map,n="";for(let r of t.assignments){let i=r.name;if(r.array){let u=await lo(e,t,i,r.array,r.append,s);if(u.error)return{continueToNext:!1,xtraceOutput:n,tempAssignments:s,error:u.error};if(n+=u.xtraceOutput,u.continueToNext)continue}let a=r.value?await x(e,r.value):"";if(i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return{continueToNext:!1,xtraceOutput:n,tempAssignments:s,error:P("",`bash: ${i}: bad array subscript
646
+ `,1)};let l=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(l){let u=await po(e,t,l[1],l[2],a,r.append,s);if(u.error)return{continueToNext:!1,xtraceOutput:n,tempAssignments:s,error:u.error};if(u.continueToNext)continue}let c=await yo(e,t,i,a,r.append,s);if(c.error)return{continueToNext:!1,xtraceOutput:n,tempAssignments:s,error:c.error};n+=c.xtraceOutput,c.continueToNext}return{continueToNext:!1,xtraceOutput:n,tempAssignments:s}}async function lo(e,t,s,n,r,i){let a="";if(/\[.+\]$/.test(s))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: cannot assign list to array member
647
+ `,1)};if(ye(e,s)){let u=Bn(e,s);if(u===void 0||u==="")throw new B(1,"","");let f=Me(e,s);if(f&&/^[a-zA-Z_][a-zA-Z0-9_]*\[@\]$/.test(f))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: cannot assign list to array member
648
+ `,1)}}if(Ue(e,s)){if(t.name)return a+=`bash: ${s}: readonly variable
649
+ `,{continueToNext:!0,xtraceOutput:a};let u=ee(e,s);if(u)return{continueToNext:!1,xtraceOutput:"",error:u}}let o=e.state.associativeArrays?.has(s),l=co(n),c=()=>{let u=`${s}_`;for(let f of e.state.env.keys())f.startsWith(u)&&!f.includes("__")&&e.state.env.delete(f);e.state.env.delete(s)};if(o&&l?await uo(e,t,s,n,r,c,u=>{a+=u}):l?await fo(e,s,n,r,c):await ho(e,s,n,r,c),t.name){i.set(s,e.state.env.get(s));let f=`(${n.map(d=>Rt(d)).join(" ")})`;e.state.env.set(s,f)}return{continueToNext:!0,xtraceOutput:a}}function co(e){return e.some(t=>{if(t.parts.length>=2){let s=t.parts[0],n=t.parts[1];if(s.type!=="Glob"||!s.pattern.startsWith("["))return!1;if(s.pattern==="["&&(n.type==="DoubleQuoted"||n.type==="SingleQuoted")){if(t.parts.length<3)return!1;let r=t.parts[2];return r.type!=="Literal"?!1:r.value.startsWith("]=")||r.value.startsWith("]+=")}return n.type!=="Literal"?!1:n.value.startsWith("]")?n.value.startsWith("]=")||n.value.startsWith("]+="):s.pattern.endsWith("]")?n.value.startsWith("=")||n.value.startsWith("+="):!1}return!1})}async function uo(e,t,s,n,r,i,a){let o=[];for(let l of n){let c=vs(l);if(c){let{key:u,valueParts:f,append:d}=c,h;f.length>0?h=await x(e,{type:"Word",parts:f}):h="",h=G(e,h),o.push({type:"keyed",key:u,value:h,append:d})}else{let u=await x(e,l);o.push({type:"invalid",expandedValue:u})}}r||i();for(let l of o)if(l.type==="keyed")if(l.append){let c=e.state.env.get(`${s}_${l.key}`)??"";e.state.env.set(`${s}_${l.key}`,c+l.value)}else e.state.env.set(`${s}_${l.key}`,l.value);else{let c=t.line??e.state.currentLine??1;a(`bash: line ${c}: ${s}: ${l.expandedValue}: must use subscript when assigning associative array
650
+ `)}}async function fo(e,t,s,n,r){let i=[];for(let o of s){let l=vs(o);if(l){let{key:c,valueParts:u,append:f}=l,d;u.length>0?d=await x(e,{type:"Word",parts:u}):d="",d=G(e,d),i.push({type:"keyed",indexExpr:c,value:d,append:f})}else{let c=await Ce(e,o);i.push({type:"non-keyed",values:c.values})}}n||r();let a=0;for(let o of i)if(o.type==="keyed"){let l;try{let c=new V,u=Q(c,o.indexExpr);l=await j(e,u.expression,!1)}catch{if(/^-?\d+$/.test(o.indexExpr))l=Number.parseInt(o.indexExpr,10);else{let c=e.state.env.get(o.indexExpr);l=c?Number.parseInt(c,10):0,Number.isNaN(l)&&(l=0)}}if(o.append){let c=e.state.env.get(`${t}_${l}`)??"";e.state.env.set(`${t}_${l}`,c+o.value)}else e.state.env.set(`${t}_${l}`,o.value);a=l+1}else for(let l of o.values)e.state.env.set(`${t}_${a++}`,l)}async function ho(e,t,s,n,r){let i=[];for(let o of s){let l=await Ce(e,o);i.push(...l.values)}let a=0;if(n){let o=Ee(e,t);if(o.length>0)a=Math.max(...o.map(([c])=>typeof c=="number"?c:0))+1;else{let l=e.state.env.get(t);l!==void 0&&(e.state.env.set(`${t}_0`,l),e.state.env.delete(t),a=1)}}else r();for(let o=0;o<i.length;o++)e.state.env.set(`${t}_${a+o}`,i[o]);n||e.state.env.set(`${t}__length`,String(i.length))}async function po(e,t,s,n,r,i,a){let o=s;if(ye(e,s)){let f=Me(e,s);if(f&&f!==s){if(f.includes("["))return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: \`${f}': not a valid identifier
651
+ `,1)};o=f}}if(Ue(e,o)){if(t.name)return{continueToNext:!0,xtraceOutput:""};let f=ee(e,o);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let l=e.state.associativeArrays?.has(o),c;if(l)c=await vi(e,o,n);else{let f=await mo(e,o,n);if(f.error)return{continueToNext:!1,xtraceOutput:"",error:f.error};c=`${o}_${f.index}`}let u=i?(e.state.env.get(c)||"")+r:r;if(t.name)a.set(c,e.state.env.get(c)),e.state.env.set(c,u);else{let f=ot(e,o);if(f!==void 0&&f===e.state.callDepth&&e.state.localScopes.length>0){let d=e.state.localScopes[e.state.localScopes.length-1];d.has(c)||d.set(c,e.state.env.get(c))}e.state.env.set(c,u)}return{continueToNext:!0,xtraceOutput:""}}async function vi(e,t,s){let n;if(s.startsWith("'")&&s.endsWith("'"))n=s.slice(1,-1);else if(s.startsWith('"')&&s.endsWith('"')){let r=s.slice(1,-1),a=new V().parseWordFromString(r,!0,!1);n=await x(e,a)}else if(s.includes("$")){let i=new V().parseWordFromString(s,!1,!1);n=await x(e,i)}else n=s;return`${t}_${n}`}async function mo(e,t,s){let n=s;s.startsWith('"')&&s.endsWith('"')&&s.length>=2&&(n=s.slice(1,-1));let r;if(/^-?\d+$/.test(n))r=Number.parseInt(n,10);else{try{let i=new V,a=Q(i,n);r=await j(e,a.expression,!1)}catch(i){if(i instanceof He){let l=`bash: line ${e.state.currentLine}: ${s}: ${i.message}
652
+ `;if(i.fatal)throw new B(1,"",l);return{index:0,error:P("",l,1)}}let a=e.state.env.get(s);r=a?Number.parseInt(a,10):0}Number.isNaN(r)&&(r=0)}if(r<0){let i=Ee(e,t);if(i.length===0){let o=e.state.currentLine;return{index:0,error:P("",`bash: line ${o}: ${t}[${s}]: bad array subscript
653
+ `,1)}}if(r=Math.max(...i.map(([o])=>typeof o=="number"?o:0))+1+r,r<0){let o=e.state.currentLine;return{index:0,error:P("",`bash: line ${o}: ${t}[${s}]: bad array subscript
654
+ `,1)}}}return{index:r}}async function yo(e,t,s,n,r,i){let a="",o=s,l=null;if(ye(e,s)){let f=jn(e,s,n);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:P("",`bash: ${s}: circular name reference
655
+ `,1)};if(f===null)return{continueToNext:!0,xtraceOutput:""};o=f;let d=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);d&&(l={arrayName:d[1],subscriptExpr:d[2]},o=d[1])}if(Ue(e,o)){if(t.name)return a+=`bash: ${o}: readonly variable
656
+ `,{continueToNext:!0,xtraceOutput:a};let f=ee(e,o);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let c;if($t(e,o))try{let f=new V;if(r){let h=`(${e.state.env.get(o)||"0"}) + (${n})`,y=Q(f,h);c=String(await j(e,y.expression))}else{let d=Q(f,n);c=String(await j(e,d.expression))}}catch{c="0"}else{let{isArray:f}=await import("./chunks/expansion-PPP6PD75.js"),d=f(e,o)?`${o}_0`:o;c=r?(e.state.env.get(d)||"")+n:n}c=ut(e,o,c),a+=await mi(e,o,c);let u=o;if(l)u=await go(e,l);else{let{isArray:f}=await import("./chunks/expansion-PPP6PD75.js");f(e,o)&&(u=`${o}_0`)}return t.name?(i.set(u,e.state.env.get(u)),e.state.env.set(u,c)):(e.state.env.set(u,c),e.state.options.allexport&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(o)),e.state.tempEnvBindings?.some(f=>f.has(o))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(o))),{continueToNext:!1,xtraceOutput:a}}async function go(e,t){let{arrayName:s,subscriptExpr:n}=t;if(e.state.associativeArrays?.has(s))return vi(e,s,n);let i;if(/^-?\d+$/.test(n))i=Number.parseInt(n,10);else{try{let a=new V,o=Q(a,n);i=await j(e,o.expression,!1)}catch{let a=e.state.env.get(n);i=a?Number.parseInt(a,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let a=Ee(e,s);a.length>0&&(i=Math.max(...a.map(l=>l[0]))+1+i)}return`${s}_${i}`}async function bi(e,t,s,n){let r=await Ne(e,t.redirections);if(r)return r;let i=new Map(e.state.env),a=e.state.cwd,o={...e.state.options},l=new Map(e.state.functions),c=e.state.localScopes,u=e.state.localVarStack,f=e.state.localVarDepth,d=e.state.fullyUnsetLocals;if(e.state.localScopes=c.map(S=>new Map(S)),u){e.state.localVarStack=new Map;for(let[S,O]of u.entries())e.state.localVarStack.set(S,O.map(N=>({...N})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,y=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let p=e.state.lastArg,v=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let b=e.state.groupStdin;s&&(e.state.groupStdin=s);let g="",$="",m=0,w=()=>{e.state.env=i,e.state.cwd=a,e.state.options=o,e.state.functions=l,e.state.localScopes=c,e.state.localVarStack=u,e.state.localVarDepth=f,e.state.fullyUnsetLocals=d,e.state.loopDepth=h,e.state.parentHasLoopContext=y,e.state.groupStdin=b,e.state.bashPid=v,e.state.lastArg=p};try{for(let S of t.body){let O=await n(S);g+=O.stdout,$+=O.stderr,m=O.exitCode}}catch(S){if(w(),S instanceof Y)throw S;if(S instanceof Ie){g+=S.stdout,$+=S.stderr;let N=P(g,$,0);return q(e,N,t.redirections)}if(S instanceof fe||S instanceof de){g+=S.stdout,$+=S.stderr;let N=P(g,$,0);return q(e,N,t.redirections)}if(S instanceof B){g+=S.stdout,$+=S.stderr;let N=P(g,$,S.exitCode);return q(e,N,t.redirections)}if(S instanceof le){g+=S.stdout,$+=S.stderr;let N=P(g,$,S.exitCode);return q(e,N,t.redirections)}if(S instanceof pe){let N=P(g+S.stdout,$+S.stderr,S.exitCode);return q(e,N,t.redirections)}let O=P(g,`${$}${De(S)}
657
+ `,1);return q(e,O,t.redirections)}w();let E=P(g,$,m);return q(e,E,t.redirections)}async function $i(e,t,s,n){let r="",i="",a=0,o=await ts(e,t.redirections);if(o)return o;let l=s;for(let f of t.redirections)if((f.operator==="<<"||f.operator==="<<-")&&f.target.type==="HereDoc"){let d=f.target,h=await x(e,d.content);d.stripTabs&&(h=h.split(`
658
+ `).map(p=>p.replace(/^\t+/,"")).join(`
659
+ `));let y=f.fd??0;y!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),ie(e),e.state.fileDescriptors.set(y,h)):l=h}else if(f.operator==="<<<"&&f.target.type==="Word")l=`${await x(e,f.target)}
660
+ `;else if(f.operator==="<"&&f.target.type==="Word")try{let d=await x(e,f.target),h=e.fs.resolvePath(e.state.cwd,d);l=await e.fs.readFile(h)}catch{let d=await x(e,f.target);return P("",`bash: ${d}: No such file or directory
661
+ `,1)}let c=e.state.groupStdin;l&&(e.state.groupStdin=l);try{for(let f of t.body){let d=await n(f);r+=d.stdout,i+=d.stderr,a=d.exitCode}}catch(f){if(e.state.groupStdin=c,f instanceof Y)throw f;if(xt(f)||f instanceof pe||f instanceof B)throw f.prependOutput(r,i),f;return P(r,`${i}${De(f)}
662
+ `,1)}e.state.groupStdin=c;let u=P(r,i,a);return q(e,u,t.redirections)}async function Ei(e,t,s,n,r){let i;try{i=await e.fs.readFile(t)}catch{return _(`bash: ${t}: No such file or directory
663
+ `,127)}if(i.startsWith("#!")){let v=i.indexOf(`
664
+ `);v!==-1&&(i=i.slice(v+1))}let a=new Map(e.state.env),o=e.state.cwd,l={...e.state.options},c=e.state.loopDepth,u=e.state.parentHasLoopContext,f=e.state.lastArg,d=e.state.bashPid,h=e.state.groupStdin,y=e.state.currentSource;e.state.parentHasLoopContext=c>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,n&&(e.state.groupStdin=n),e.state.currentSource=t,e.state.env.set("0",t),e.state.env.set("#",String(s.length)),e.state.env.set("@",s.join(" ")),e.state.env.set("*",s.join(" "));for(let v=0;v<s.length&&v<9;v++)e.state.env.set(String(v+1),s[v]);for(let v=s.length+1;v<=9;v++)e.state.env.delete(String(v));let p=()=>{e.state.env=a,e.state.cwd=o,e.state.options=l,e.state.loopDepth=c,e.state.parentHasLoopContext=u,e.state.lastArg=f,e.state.bashPid=d,e.state.groupStdin=h,e.state.currentSource=y};try{let b=new V().parse(i),g=await r(b);return p(),g}catch(v){if(p(),v instanceof B||v instanceof Y)throw v;if(v.name==="ParseException")return _(`bash: ${t}: ${v.message}
665
+ `);throw v}}var _t=class{ctx;constructor(t,s){this.ctx={state:s,fs:t.fs,commands:t.commands,limits:t.limits,execFn:t.exec,executeScript:this.executeScript.bind(this),executeStatement:this.executeStatement.bind(this),executeCommand:this.executeCommand.bind(this),fetch:t.fetch,sleep:t.sleep,trace:t.trace,coverage:t.coverage,requireDefenseContext:t.requireDefenseContext??!1,jsBootstrapCode:t.jsBootstrapCode,invokeTool:t.invokeTool}}assertDefenseContext(t){if(!this.ctx.requireDefenseContext||ve.isInSandboxedContext())return;let s=`interpreter ${t} attempted outside defense context`;throw new Qe(s,{timestamp:Date.now(),type:"missing_defense_context",message:s,path:"DefenseInDepthBox.context",stack:new Error().stack,executionId:ve.getCurrentExecutionId()})}buildExportedEnv(){let t=this.ctx.state.exportedVars,s=this.ctx.state.tempExportedVars,n=new Set;if(t)for(let i of t)n.add(i);if(s)for(let i of s)n.add(i);if(n.size===0)return Object.create(null);let r=Object.create(null);for(let i of n){let a=this.ctx.state.env.get(i);a!==void 0&&(r[i]=a)}return r}async executeScript(t){this.assertDefenseContext("execution");let s="",n="",r=0,i=this.ctx.limits.maxOutputSize,a=(o,l)=>{s.length+n.length+o.length+l.length>i&&Pe(`total output size exceeded (>${i} bytes), increase executionLimits.maxOutputSize`,"output_size"),s+=o,n+=l};for(let o of t.statements)try{let l=await this.executeStatement(o);a(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}catch(l){if(l instanceof B)throw l.prependOutput(s,n),l;if(l instanceof be)return a(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof Y)throw l;if(l instanceof pe)return a(l.stdout,l.stderr),r=l.exitCode,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof xn)return a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof Ot)return a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r)),{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)};if(l instanceof He){a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof In){a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof fe||l instanceof de){if(this.ctx.state.loopDepth>0)throw l.prependOutput(s,n),l;a(l.stdout,l.stderr);continue}throw l instanceof le&&l.prependOutput(s,n),l}return{stdout:s,stderr:n,exitCode:r,env:Re(this.ctx.state.env)}}async executeUserScript(t,s,n=""){return Ei(this.ctx,t,s,n,r=>this.executeScript(r))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Tt;if(this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&Pe(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands"),t.deferredError)throw new It(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return F;this.ctx.state.errexitSafe=!1;let s="",n="";this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&(n+=`${t.sourceText}
666
+ `);let r=0,i=-1,a=!1;for(let c=0;c<t.pipelines.length;c++){let u=t.pipelines[c],f=c>0?t.operators[c-1]:null;if(f==="&&"&&r!==0||f==="||"&&r===0)continue;let d=await this.executePipeline(u);s+=d.stdout,n+=d.stderr,r=d.exitCode,i=c,a=u.negated,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r))}let o=i<t.pipelines.length-1,l=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=o||a||l,this.ctx.state.options.errexit&&r!==0&&i===t.pipelines.length-1&&!a&&!this.ctx.state.inCondition&&!l)throw new pe(r,s,n);return P(s,n,r)}async executePipeline(t){return gi(this.ctx,t,(s,n)=>this.executeCommand(s,n))}async executeCommand(t,s){switch(this.assertDefenseContext("command"),this.ctx.coverage?.hit(`bash:cmd:${t.type}`),t.type){case"SimpleCommand":return this.executeSimpleCommand(t,s);case"If":return ii(this.ctx,t);case"For":return ai(this.ctx,t);case"CStyleFor":return oi(this.ctx,t);case"While":return li(this.ctx,t,s);case"Until":return ci(this.ctx,t);case"Case":return ui(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Cr(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return F}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(n){if(n instanceof Dt)return _(n.stderr);throw n}}async executeSimpleCommandInner(t,s){if(t.line!==void 0&&(this.ctx.state.currentLine=t.line),this.ctx.state.shoptOptions.expand_aliases&&t.name){let m=t,w=100;for(;w>0;){let E=this.expandAlias(m);if(E===m)break;m=E,w--}this.aliasExpansionStack.clear(),m!==t&&(t=m)}this.ctx.state.expansionStderr="";let n=await wi(this.ctx,t);if(n.error)return n.error;let r=n.tempAssignments,i=n.xtraceOutput;if(!t.name){if(t.redirections.length>0){let w=await Ne(this.ctx,t.redirections);if(w)return w;let E=P("",i,0);return q(this.ctx,E,t.redirections)}this.ctx.state.lastArg="";let m=(this.ctx.state.expansionStderr||"")+i;return this.ctx.state.expansionStderr="",P("",m,this.ctx.state.lastExitCode)}let a=t.name&&Sn(t.name,["local","declare","typeset","export","readonly"]),o=Array.from(r.keys());if(o.length>0&&!a){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let m of o)this.ctx.state.tempExportedVars.add(m)}let l=await ts(this.ctx,t.redirections);if(l){for(let[m,w]of r)w===void 0?this.ctx.state.env.delete(m):this.ctx.state.env.set(m,w);return l}let c=-1;for(let m of t.redirections){if((m.operator==="<<"||m.operator==="<<-")&&m.target.type==="HereDoc"){let w=m.target,E=await x(this.ctx,w.content);w.stripTabs&&(E=E.split(`
667
+ `).map(O=>O.replace(/^\t+/,"")).join(`
668
+ `)),E=je(E);let S=m.fd??0;S!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),ie(this.ctx),this.ctx.state.fileDescriptors.set(S,E)):s=E;continue}if(m.operator==="<<<"&&m.target.type==="Word"){s=je(`${await x(this.ctx,m.target)}
669
+ `);continue}if(m.operator==="<"&&m.target.type==="Word")try{let w=await x(this.ctx,m.target),E=this.ctx.fs.resolvePath(this.ctx.state.cwd,w);s=await Tn(this.ctx.fs,E)}catch{let w=await x(this.ctx,m.target);for(let[E,S]of r)S===void 0?this.ctx.state.env.delete(E):this.ctx.state.env.set(E,S);return _(`bash: ${w}: No such file or directory
670
+ `)}if(m.operator==="<&"&&m.target.type==="Word"){let w=await x(this.ctx,m.target),E=Number.parseInt(w,10);if(!Number.isNaN(E)&&this.ctx.state.fileDescriptors){let S=this.ctx.state.fileDescriptors.get(E);if(S!==void 0)if(S.startsWith("__rw__:")){let O=fi(S);O&&(s=O.content.slice(O.position),c=E)}else S.startsWith("__file__:")||S.startsWith("__file_append__:")||(s=S)}}}let u=await x(this.ctx,t.name),f=[],d=[];if(Sn(t.name,["local","declare","typeset","export","readonly"])&&(u==="local"||u==="declare"||u==="typeset"||u==="export"||u==="readonly"))for(let m of t.args){let w=await cr(this.ctx,m);if(w)f.push(w),d.push(!0);else{let E=await ur(this.ctx,m);if(E!==null)f.push(E),d.push(!0);else{let S=await Ce(this.ctx,m);for(let O of S.values)f.push(O),d.push(S.quoted)}}}else for(let m of t.args){let w=await Ce(this.ctx,m);for(let E of w.values)f.push(E),d.push(w.quoted)}if(!u){if(t.name.parts.every(w=>w.type==="CommandSubstitution"||w.type==="ParameterExpansion"||w.type==="ArithmeticExpansion")){if(f.length>0){let w=f.shift();return d.shift(),await this.runCommand(w,f,d,s,!1,!1,c)}return P("","",this.ctx.state.lastExitCode)}return _(`bash: : command not found
671
+ `,127)}if(u==="exec"&&(f.length===0||f[0]==="--")){for(let m of t.redirections){if(m.target.type==="HereDoc"||m.fdVariable)continue;let w=await x(this.ctx,m.target),E=m.fd??(m.operator==="<"||m.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),m.operator){case">":case">|":{let S=this.ctx.fs.resolvePath(this.ctx.state.cwd,w);await this.ctx.fs.writeFile(S,"","utf8"),ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__file__:${S}`);break}case">>":{let S=this.ctx.fs.resolvePath(this.ctx.state.cwd,w);ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__file_append__:${S}`);break}case"<":{let S=this.ctx.fs.resolvePath(this.ctx.state.cwd,w);try{let O=await this.ctx.fs.readFile(S);ie(this.ctx),this.ctx.state.fileDescriptors.set(E,O)}catch{return _(`bash: ${w}: No such file or directory
672
+ `)}break}case"<>":{let S=this.ctx.fs.resolvePath(this.ctx.state.cwd,w);try{let O=await this.ctx.fs.readFile(S);ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__rw__:${S.length}:${S}:0:${O}`)}catch{await this.ctx.fs.writeFile(S,"","utf8"),ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__rw__:${S.length}:${S}:0:`)}break}case">&":{if(w==="-")this.ctx.state.fileDescriptors.delete(E);else if(w.endsWith("-")){let S=w.slice(0,-1),O=Number.parseInt(S,10);if(!Number.isNaN(O)){let N=this.ctx.state.fileDescriptors.get(O);N!==void 0?this.ctx.state.fileDescriptors.set(E,N):this.ctx.state.fileDescriptors.set(E,`__dupout__:${O}`),this.ctx.state.fileDescriptors.delete(O)}}else{let S=Number.parseInt(w,10);Number.isNaN(S)||(ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__dupout__:${S}`))}break}case"<&":{if(w==="-")this.ctx.state.fileDescriptors.delete(E);else if(w.endsWith("-")){let S=w.slice(0,-1),O=Number.parseInt(S,10);if(!Number.isNaN(O)){let N=this.ctx.state.fileDescriptors.get(O);N!==void 0?this.ctx.state.fileDescriptors.set(E,N):this.ctx.state.fileDescriptors.set(E,`__dupin__:${O}`),this.ctx.state.fileDescriptors.delete(O)}}else{let S=Number.parseInt(w,10);Number.isNaN(S)||(ie(this.ctx),this.ctx.state.fileDescriptors.set(E,`__dupin__:${S}`))}break}}}for(let[m,w]of r)w===void 0?this.ctx.state.env.delete(m):this.ctx.state.env.set(m,w);if(this.ctx.state.tempExportedVars)for(let m of r.keys())this.ctx.state.tempExportedVars.delete(m);return F}if(this.ctx.state.extraArgs){f.push(...this.ctx.state.extraArgs);for(let m=0;m<this.ctx.state.extraArgs.length;m++)d.push(!0);this.ctx.state.extraArgs=void 0}let y=await pi(this.ctx,u,f);r.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(r)));let p,v=null;try{p=await this.runCommand(u,f,d,s,!1,!1,c)}catch(m){if(m instanceof fe||m instanceof de)v=m,p=F;else throw m}let b=i+y;if(b&&(p={...p,stderr:b+p.stderr}),p=await q(this.ctx,p,t.redirections),v)throw v;if(f.length>0){let m=f[f.length-1];if((u==="declare"||u==="local"||u==="typeset")&&/^[a-zA-Z_][a-zA-Z0-9_]*=\(/.test(m)){let w=m.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);w&&(m=w[1])}this.ctx.state.lastArg=m}else this.ctx.state.lastArg=u;let g=Ar(u)&&u!=="unset"&&u!=="eval";if(!this.ctx.state.options.posix||!g)for(let[m,w]of r)this.ctx.state.fullyUnsetLocals?.has(m)||(w===void 0?this.ctx.state.env.delete(m):this.ctx.state.env.set(m,w));if(this.ctx.state.tempExportedVars)for(let m of r.keys())this.ctx.state.tempExportedVars.delete(m);return r.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(p={...p,stderr:this.ctx.state.expansionStderr+p.stderr},this.ctx.state.expansionStderr=""),p}async runCommand(t,s,n,r,i=!1,a=!1,o=-1){let l={ctx:this.ctx,runCommand:(u,f,d,h,y,p,v)=>this.runCommand(u,f,d,h,y,p,v),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(u,f,d)=>this.executeUserScript(u,f,d)},c=await ni(l,t,s,n,r,i,a,o);return c!==null?c:ri(l,t,s,r,a)}aliasExpansionStack=new Set;expandAlias(t){return Ds(this.ctx.state,t,this.aliasExpansionStack)}async findCommandInPath(t){return ls(this.ctx,t)}async executeSubshell(t,s=""){return bi(this.ctx,t,s,n=>this.executeStatement(n))}async executeGroup(t,s=""){return $i(this.ctx,t,s,n=>this.executeStatement(n))}async executeArithmeticCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Ne(this.ctx,t.redirections);if(s)return s;try{let n=await j(this.ctx,t.expression.expression),r=X(n!==0);return this.ctx.state.expansionStderr&&(r={...r,stderr:this.ctx.state.expansionStderr+r.stderr},this.ctx.state.expansionStderr=""),q(this.ctx,r,t.redirections)}catch(n){let r=_(`bash: arithmetic expression: ${n.message}
673
+ `);return q(this.ctx,r,t.redirections)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Ne(this.ctx,t.redirections);if(s)return s;try{let n=await We(this.ctx,t.expression),r=X(n);return this.ctx.state.expansionStderr&&(r={...r,stderr:this.ctx.state.expansionStderr+r.stderr},this.ctx.state.expansionStderr=""),q(this.ctx,r,t.redirections)}catch(n){let r=n instanceof He?1:2,i=_(`bash: conditional expression: ${n.message}
674
+ `,r);return q(this.ctx,i,t.redirections)}}};var te={maxCallDepth:100,maxCommandCount:1e4,maxLoopIterations:1e4,maxAwkIterations:1e4,maxSedIterations:1e4,maxJqIterations:1e4,maxSqliteTimeoutMs:5e3,maxPythonTimeoutMs:1e4,maxJsTimeoutMs:1e4,maxGlobOperations:1e5,maxStringLength:10485760,maxArrayElements:1e5,maxHeredocSize:10485760,maxSubstitutionDepth:50,maxBraceExpansionResults:1e4,maxOutputSize:10485760,maxFileDescriptors:1024,maxSourceDepth:100};function Si(e){return e?{maxCallDepth:e.maxCallDepth??te.maxCallDepth,maxCommandCount:e.maxCommandCount??te.maxCommandCount,maxLoopIterations:e.maxLoopIterations??te.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??te.maxAwkIterations,maxSedIterations:e.maxSedIterations??te.maxSedIterations,maxJqIterations:e.maxJqIterations??te.maxJqIterations,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??te.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??te.maxPythonTimeoutMs,maxJsTimeoutMs:e.maxJsTimeoutMs??te.maxJsTimeoutMs,maxGlobOperations:e.maxGlobOperations??te.maxGlobOperations,maxStringLength:e.maxStringLength??te.maxStringLength,maxArrayElements:e.maxArrayElements??te.maxArrayElements,maxHeredocSize:e.maxHeredocSize??te.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??te.maxSubstitutionDepth,maxBraceExpansionResults:e.maxBraceExpansionResults??te.maxBraceExpansionResults,maxOutputSize:e.maxOutputSize??te.maxOutputSize,maxFileDescriptors:e.maxFileDescriptors??te.maxFileDescriptors,maxSourceDepth:e.maxSourceDepth??te.maxSourceDepth}:{...te}}import{lookup as Po}from"node:dns";function An(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function wo(e){let t=An(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function Ai(e){if(e.includes("\\"))return!0;let t=e.toLowerCase();return t.includes("%2f")||t.includes("%5c")}function vo(e,t){return t==="/"||t===""?!0:t.endsWith("/")?e.startsWith(t):e===t||e.startsWith(`${t}/`)}function _n(e,t){let s=An(e);if(!s)return!1;let n=wo(t);return!n||s.origin!==n.origin||n.pathPrefix!=="/"&&n.pathPrefix!==""&&Ai(s.pathname)?!1:vo(s.pathname,n.pathPrefix)}function _i(e){return typeof e=="string"?e:e.url}function Ci(e,t){return!t||t.length===0?!1:t.some(s=>_n(e,_i(s)))}function Cn(e){let t=bo(e);if(t==="localhost"||t.endsWith(".localhost"))return!0;let s=Pi(t);if(s)return us(s);let n=Eo(t);return n?So(n):!1}function bo(e){let t=e.trim().toLowerCase();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function $o(e){if(!e)return null;let t=10,s=e;if(s.startsWith("0x")||s.startsWith("0X")?(t=16,s=s.slice(2)):s.length>1&&s.startsWith("0")&&(t=8),!s||t===16&&!/^[0-9a-fA-F]+$/.test(s)||t===10&&!/^\d+$/.test(s)||t===8&&!/^[0-7]+$/.test(s))return null;let n=Number.parseInt(s,t);return!Number.isFinite(n)||n<0?null:n}function Pi(e){let t=e.split(".");if(t.length===0||t.length>4)return null;let s=t.map(l=>$o(l));if(s.some(l=>l===null))return null;let n=s;if(t.length===1){let l=n[0];return l>4294967295?null:[l>>>24&255,l>>>16&255,l>>>8&255,l&255]}if(t.length===2){let[l,c]=n;return l>255||c>16777215?null:[l,c>>>16&255,c>>>8&255,c&255]}if(t.length===3){let[l,c,u]=n;return l>255||c>255||u>65535?null:[l,c,u>>>8&255,u&255]}let[r,i,a,o]=n;return r>255||i>255||a>255||o>255?null:[r,i,a,o]}function Eo(e){let t=e,s=null;if(t.includes(".")){let p=t.lastIndexOf(":");if(p<0)return null;let v=t.slice(p+1),b=Pi(v);if(!b)return null;s=b,t=t.slice(0,p)}let n=t.includes("::")?t.split("::").length-1:0;if(n>1)return null;let[r,i]=t.split("::"),a=r?r.split(":").filter(Boolean):[],o=i?i.split(":").filter(Boolean):[],l=p=>/^[0-9a-f]{1,4}$/i.test(p)?Number.parseInt(p,16):null,c=a.map(l),u=o.map(l);if(c.some(p=>p===null)||u.some(p=>p===null))return null;let f=s?2:0,d=c.length+u.length+f,h=0;if(n===1){if(h=8-d,h<0)return null}else if(d!==8)return null;let y=[...c,...new Array(h).fill(0),...u];return s&&(y.push(s[0]<<8|s[1]),y.push(s[2]<<8|s[3])),y.length===8?y:null}function us(e){let[t,s]=e;return t===127||t===10||t===172&&s>=16&&s<=31||t===192&&s===168||t===169&&s===254||t===0||t===100&&s>=64&&s<=127||t===198&&(s===18||s===19)||t===192&&s===0&&e[2]===0||t===192&&s===0&&e[2]===2||t===198&&s===51&&e[2]===100||t===203&&s===0&&e[2]===113||t>=240}function So(e){if(e.every(r=>r===0)||e.slice(0,7).every(r=>r===0)&&e[7]===1||(e[0]&65472)===65152||(e[0]&65024)===64512)return!0;if(e[0]===0&&e[1]===0&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===65535){let r=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return us(r)}if(e[0]===8193&&e[1]===3512)return!0;if(e[0]===100&&e[1]===65435&&e[2]===0&&e[3]===0&&e[4]===0&&e[5]===0){let r=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return us(r)}if(e[0]===100&&e[1]===65435&&e[2]===1)return!0;if(e[0]===8194){let r=[e[1]>>>8&255,e[1]&255,e[2]>>>8&255,e[2]&255];return us(r)}return!1}function ki(e){let t=[];for(let s of e){if(typeof s!="string"&&(s===null||typeof s!="object"||!("url"in s)||typeof s.url!="string")){t.push('Invalid allow-list entry: must be a string URL or an object with a "url" string property');continue}let n=_i(s);if(!An(n)){t.push(`Invalid URL in allow-list: "${n}" - must be a valid URL with scheme and host (e.g., "https://example.com")`);continue}let i=new URL(n);if(i.protocol!=="http:"&&i.protocol!=="https:"){t.push(`Only http and https URLs are allowed in allow-list: "${n}"`);continue}if(!i.hostname){t.push(`Allow-list entry must include a hostname: "${n}"`);continue}if(i.pathname!=="/"&&i.pathname!==""&&Ai(i.pathname)){t.push(`Allow-list entry contains ambiguous path separators: "${n}"`);continue}(i.search||i.hash)&&t.push(`Query strings and fragments are ignored in allow-list entries: "${n}"`)}return t}var Ao=typeof __BROWSER__<"u"&&__BROWSER__,ft=null,fs=null,Ni=!1;function _o(){if(ft===null&&!Ao)try{let e=kn("node:async_hooks");fs=kn("node:dns"),ft=new e.AsyncLocalStorage}catch{}}function Co(){if(Ni||(_o(),!ft||!fs))return;Ni=!0;let e=ft,t=fs.lookup;function s(...n){let r=n[0],i=e.getStore();if(typeof r!="string"||!i||i.hostname.toLowerCase()!==r.toLowerCase())return t.apply(this,n);let a={},o;if(n.length===2)o=n[1];else if(n.length>=3){let c=n[1];typeof c=="number"?a={family:c}:c&&typeof c=="object"&&(a=c),o=n[2]}if(typeof o!="function")return t.apply(this,n);let l=o;if(a.family!==void 0&&a.family!==0&&a.family!==i.family){let c=new Error(`ENOTFOUND ${r}`);c.code="ENOTFOUND",c.errno=-3008,c.syscall="getaddrinfo",c.hostname=r,process.nextTick(()=>l(c));return}process.nextTick(()=>{a.all?l(null,[{address:i.address,family:i.family}]):l(null,i.address,i.family)})}Object.defineProperty(fs,"lookup",{value:s,writable:!0,configurable:!0})}function Oi(e,t){return Co(),ft?ft.run(e,t):t()}var Oe=class extends Error{constructor(t,s){let n=s??"URL not in allow-list";super(`Network access denied: ${n}: ${t}`),this.name="NetworkAccessDeniedError"}},Ct=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},Pt=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},ds=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},dt=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};function ko(e){return new Promise((t,s)=>{Po(e,{all:!0},(n,r)=>{n?s(n):t(r)})})}var No=20,Oo=3e4,Do=10485760,To=["GET","HEAD"],xo=new Set(["GET","HEAD","OPTIONS"]),Io=new Set([301,302,303,307,308]);function Pn(e){let t=e.allowedUrlPrefixes??[];if(!e.dangerouslyAllowFullInternetAccess){let h=ki(t);if(h.length>0)throw new Error(`Invalid network allow-list:
675
+ ${h.join(`
676
+ `)}`)}let s=[];for(let h of t)typeof h=="object"&&h.transform&&h.transform.length>0&&s.push(h);function n(h){if(s.length===0)return null;let y=null;for(let p of s)if(_n(h,p.url)&&p.transform){y||(y=new Headers);for(let v of p.transform)for(let[b,g]of Object.entries(v.headers))y.set(b,g)}return y}let r=e.maxRedirects??No,i=e.timeoutMs??Oo,a=e.maxResponseSize??Do,o=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??To,l=e.denyPrivateRanges??(typeof process<"u"&&process.env?.NODE_ENV==="production"),c=e._dnsResolve??ko;async function u(h){if(!e.dangerouslyAllowFullInternetAccess&&!Ci(h,t))throw new Oe(h);if(l)try{let y=new URL(h);if(Cn(y.hostname))throw new Oe(h,"private/loopback IP address blocked");let p=y.hostname;if(/[a-zA-Z]/.test(p))try{let b=await c(p);for(let{address:$}of b)if(Cn($))throw new Oe(h,"hostname resolves to private/loopback IP address");let g=b[0];if(g)return{hostname:p,address:g.address,family:g.family===6?6:4}}catch(b){if(b instanceof Oe)throw b;let g=b?.code;if(!(g==="ENOTFOUND"||g==="ENODATA"))throw new Oe(h,"DNS resolution failed for private IP check")}}catch(y){if(y instanceof Oe)throw y}return null}function f(h){if(e.dangerouslyAllowFullInternetAccess)return;let y=h.toUpperCase();if(!o.includes(y))throw new ds(y,o)}async function d(h,y={}){let p=y.method?.toUpperCase()??"GET",v=await u(h);f(p);let b=h,g=0,$=y.followRedirects??!0,m=y.timeoutMs!==void 0?Math.min(y.timeoutMs,i):i;for(;;){let w=new AbortController,E=Nn(()=>w.abort(),m);try{let S=await ve.runTrustedAsync(()=>{let O=n(b),N=Ro(y.headers,O),I={method:p,headers:N,signal:w.signal,redirect:"manual"};return y.body&&!xo.has(p)&&(I.body=y.body),v?Oi(v,()=>fetch(b,I)):fetch(b,I)});if(Io.has(S.status)&&$){let O=S.headers.get("location");if(!O)return await Di(S,b,a);let N=new URL(O,b).href;try{v=await u(N)}catch{throw new Pt(N)}if(g++,g>r)throw new Ct(r);b=N;continue}return await Di(S,b,a)}finally{On(E)}}}return d}function Ro(e,t){if(!e&&!t)return;if(!t)return e;let s=e instanceof Headers?new Headers(e):new Headers(e);for(let[n,r]of t)s.set(n,r);return s}async function Di(e,t,s){let n=Object.create(null);if(e.headers.forEach((i,a)=>{n[a.toLowerCase()]=i}),s>0){let i=e.headers.get("content-length");if(i){let a=parseInt(i,10);if(!Number.isNaN(a)&&a>s)throw new dt(s)}}let r;if(s>0&&e.body){let i=e.body.getReader(),a=[],o=0;for(;;){let{done:c,value:u}=await i.read();if(c)break;if(u){if(o+=u.byteLength,o>s)throw i.cancel(),new dt(s);a.push(u)}}r=new Uint8Array(o);let l=0;for(let c of a)r.set(c,l),l+=c.byteLength}else{let i=await e.arrayBuffer();if(s>0&&i.byteLength>s)throw new dt(s);r=new Uint8Array(i)}return{status:e.status,statusText:e.statusText,headers:n,body:r,url:t}}function Ti(e){return Xe(e)}function Xe(e){return e.statements.map(xi).join(`
677
+ `)}function xi(e){let t=[];for(let n=0;n<e.pipelines.length;n++)t.push(Lo(e.pipelines[n])),n<e.operators.length&&t.push(e.operators[n]);let s=t.join(" ");return e.background&&(s+=" &"),s}function Lo(e){let t=[];e.timed&&t.push(e.timePosix?"time -p":"time"),e.negated&&t.push("!");let s=[];for(let r=0;r<e.commands.length;r++)if(s.push(Ii(e.commands[r])),r<e.commands.length-1){let i=e.pipeStderr?.[r];s.push(i?"|&":"|")}return(t.length>0?`${t.join(" ")} `:"")+s.join(" ")}function Ii(e){switch(e.type){case"SimpleCommand":return Fo(e);case"If":return Zo(e);case"For":return qo(e);case"CStyleFor":return Go(e);case"While":return Ko(e);case"Until":return Xo(e);case"Case":return Yo(e);case"Subshell":return Jo(e);case"Group":return el(e);case"ArithmeticCommand":return tl(e);case"ConditionalCommand":return sl(e);case"FunctionDef":return nl(e);default:{let t=e;throw new Error(`Unsupported command type: ${t.type}`)}}}function Fo(e){let t=[];for(let s of e.assignments)t.push(Mo(s));e.name&&t.push(ae(e.name));for(let s of e.args)t.push(ae(s));for(let s of e.redirections)t.push(Fi(s));return t.join(" ")}function Mo(e){let t=e.append?"+=":"=";if(e.array){let s=e.array.map(ae).join(" ");return`${e.name}${t}(${s})`}return e.value?`${e.name}${t}${ae(e.value)}`:`${e.name}${t}`}function ae(e){return e.parts.map(t=>hs(t,!1)).join("")}function Be(e){return e.parts.map(t=>hs(t,!0)).join("")}function hs(e,t){switch(e.type){case"Literal":return t?zo(e.value):Wo(e.value);case"SingleQuoted":return`'${e.value}'`;case"DoubleQuoted":return`"${e.parts.map(s=>hs(s,!0)).join("")}"`;case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return Ri(e);case"CommandSubstitution":return e.legacy?`\`${Xe(e.body)}\``:`$(${Xe(e.body)})`;case"ArithmeticExpansion":return`$((${H(e.expression.expression)}))`;case"ProcessSubstitution":return e.direction==="input"?`<(${Xe(e.body)})`:`>(${Xe(e.body)})`;case"BraceExpansion":return Ho(e);case"TildeExpansion":return e.user!==null?`~${e.user}`:"~";case"Glob":return e.pattern;default:{let s=e;throw new Error(`Unsupported word part type: ${s.type}`)}}}function Wo(e){return e.replace(/[\s\\'"`!|&;()<>{}[\]*?~#]/g,"\\$&")}function zo(e){return e.replace(/[$`"\\]/g,"\\$&")}function Vo(e,t){return e.parts.map(s=>Bo(s,t)).join("")}function Bo(e,t){switch(e.type){case"Literal":return t?e.value:e.value.replace(/[$`]/g,"\\$&");case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return Ri(e);case"CommandSubstitution":return e.legacy?`\`${Xe(e.body)}\``:`$(${Xe(e.body)})`;case"ArithmeticExpansion":return`$((${H(e.expression.expression)}))`;default:return hs(e,!1)}}function Ri(e){return e.operation?`\${${Li(e.parameter,e.operation)}}`:jo(e.parameter)?`\${${e.parameter}}`:`$${e.parameter}`}function jo(e){return!(/^[?#@*$!\-0-9]$/.test(e)||/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e))}function Li(e,t){switch(t.type){case"Length":return`#${e}`;case"LengthSliceError":return`#${e}:`;case"BadSubstitution":return t.text;case"DefaultValue":return`${e}${t.checkEmpty?":":""}-${Be(t.word)}`;case"AssignDefault":return`${e}${t.checkEmpty?":":""}=${Be(t.word)}`;case"ErrorIfUnset":return`${e}${t.checkEmpty?":":""}?${t.word?Be(t.word):""}`;case"UseAlternative":return`${e}${t.checkEmpty?":":""}+${Be(t.word)}`;case"Substring":{let s=H(t.offset.expression);return t.length?`${e}:${s}:${H(t.length.expression)}`:`${e}:${s}`}case"PatternRemoval":{let s=t.side==="prefix"?"#":"%",n=t.greedy?`${s}${s}`:s;return`${e}${n}${Be(t.pattern)}`}case"PatternReplacement":{let s="/";t.all?s="//":t.anchor==="start"?s="/#":t.anchor==="end"&&(s="/%");let n=t.replacement?`/${Be(t.replacement)}`:"";return`${e}${s}${Be(t.pattern)}${n}`}case"CaseModification":{let s=t.direction==="upper"?"^":",",n=t.all?`${s}${s}`:s,r=t.pattern?Be(t.pattern):"";return`${e}${n}${r}`}case"Transform":return`${e}@${t.operator}`;case"Indirection":return t.innerOp?`!${Li(e,t.innerOp)}`:`!${e}`;case"ArrayKeys":return`!${t.array}[${t.star?"*":"@"}]`;case"VarNamePrefix":return`!${t.prefix}${t.star?"*":"@"}`;default:{let s=t;throw new Error(`Unsupported parameter operation type: ${s.type}`)}}}function Ho(e){return`{${e.items.map(Uo).join(",")}}`}function Uo(e){if(e.type==="Word")return ae(e.word);let t=e.startStr??String(e.start),s=e.endStr??String(e.end);return e.step!==void 0?`${t}..${s}..${e.step}`:`${t}..${s}`}function Fi(e){let t=e.fdVariable?`{${e.fdVariable}}`:e.fd!==null?String(e.fd):"";if(e.operator==="<<"||e.operator==="<<-"){let s=e.target,n=s.quoted?`'${s.delimiter}'`:s.delimiter,r=Vo(s.content,s.quoted);return`${t}${e.operator}${n}
678
+ ${r}${s.delimiter}`}return e.operator==="<<<"?`${t}<<< ${ae(e.target)}`:e.operator==="&>"||e.operator==="&>>"?`${e.operator} ${ae(e.target)}`:`${t}${e.operator} ${ae(e.target)}`}function Ae(e){return e.length===0?"":` ${e.map(Fi).join(" ")}`}function ge(e){return e.map(xi).join(`
679
+ `)}function Zo(e){let t=[];for(let s=0;s<e.clauses.length;s++){let n=e.clauses[s],r=s===0?"if":"elif";t.push(`${r} ${ge(n.condition)}; then
680
+ ${ge(n.body)}`)}return e.elseBody&&t.push(`else
681
+ ${ge(e.elseBody)}`),`${t.join(`
682
+ `)}
683
+ fi${Ae(e.redirections)}`}function qo(e){let t;if(e.words===null)t=`for ${e.variable}`;else{let s=e.words.map(ae).join(" ");t=`for ${e.variable} in ${s}`}return`${t}; do
684
+ ${ge(e.body)}
685
+ done${Ae(e.redirections)}`}function Go(e){let t=e.init?H(e.init.expression):"",s=e.condition?H(e.condition.expression):"",n=e.update?H(e.update.expression):"";return`for ((${t}; ${s}; ${n})); do
686
+ ${ge(e.body)}
687
+ done${Ae(e.redirections)}`}function Ko(e){return`while ${ge(e.condition)}; do
688
+ ${ge(e.body)}
689
+ done${Ae(e.redirections)}`}function Xo(e){return`until ${ge(e.condition)}; do
690
+ ${ge(e.body)}
691
+ done${Ae(e.redirections)}`}function Yo(e){let t=e.items.map(Qo).join(`
692
+ `);return`case ${ae(e.word)} in
693
+ ${t}
694
+ esac${Ae(e.redirections)}`}function Qo(e){let t=e.patterns.map(ae).join(" | "),s=ge(e.body);return s?`${t})
695
+ ${s}
696
+ ${e.terminator}`:`${t})
697
+ ${e.terminator}`}function Jo(e){return`(${ge(e.body)})${Ae(e.redirections)}`}function el(e){return`{ ${ge(e.body)}; }${Ae(e.redirections)}`}function tl(e){return`((${H(e.expression.expression)}))${Ae(e.redirections)}`}function sl(e){return`[[ ${Ke(e.expression)} ]]${Ae(e.redirections)}`}function nl(e){let t=Ii(e.body);return`${e.name}() ${t}${Ae(e.redirections)}`}function H(e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return e.hasDollarPrefix?`$${e.name}`:e.name;case"ArithSpecialVar":return`$${e.name}`;case"ArithBinary":return`${H(e.left)} ${e.operator} ${H(e.right)}`;case"ArithUnary":return e.prefix?`${e.operator}${H(e.operand)}`:`${H(e.operand)}${e.operator}`;case"ArithTernary":return`${H(e.condition)} ? ${H(e.consequent)} : ${H(e.alternate)}`;case"ArithAssignment":return`${e.subscript?`${e.variable}[${H(e.subscript)}]`:e.stringKey!==void 0?`${e.variable}[${e.stringKey}]`:e.variable} ${e.operator} ${H(e.value)}`;case"ArithDynamicAssignment":return`${e.subscript?`${H(e.target)}[${H(e.subscript)}]`:H(e.target)} ${e.operator} ${H(e.value)}`;case"ArithDynamicElement":return`${H(e.nameExpr)}[${H(e.subscript)}]`;case"ArithGroup":return`(${H(e.expression)})`;case"ArithNested":return`$((${H(e.expression)}))`;case"ArithCommandSubst":return`$(${e.command})`;case"ArithBracedExpansion":return`\${${e.content}}`;case"ArithArrayElement":return e.stringKey!==void 0?`${e.array}[${e.stringKey}]`:e.index?`${e.array}[${H(e.index)}]`:e.array;case"ArithDynamicBase":return`\${${e.baseExpr}}#${e.value}`;case"ArithDynamicNumber":return`\${${e.prefix}}${e.suffix}`;case"ArithConcat":return e.parts.map(H).join("");case"ArithDoubleSubscript":return`${e.array}[${H(e.index)}]`;case"ArithNumberSubscript":return`${e.number}[${e.errorToken}]`;case"ArithSyntaxError":return e.errorToken;case"ArithSingleQuote":return`'${e.content}'`;default:{let t=e;throw new Error(`Unsupported arithmetic expression type: ${t.type}`)}}}function Ke(e){switch(e.type){case"CondBinary":return`${ae(e.left)} ${e.operator} ${ae(e.right)}`;case"CondUnary":return`${e.operator} ${ae(e.operand)}`;case"CondNot":return`! ${Ke(e.operand)}`;case"CondAnd":return`${Ke(e.left)} && ${Ke(e.right)}`;case"CondOr":return`${Ke(e.left)} || ${Ke(e.right)}`;case"CondGroup":return`( ${Ke(e.expression)} )`;case"CondWord":return ae(e.word);default:{let t=e;throw new Error(`Unsupported conditional expression type: ${t.type}`)}}}var ps=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;defenseInDepthConfig;coverageWriter;jsBootstrapCode;invokeToolFn;transformPlugins=[];state;isConstructing=!1;constructor(t={}){this.isConstructing=!0;let s=t.fs??new wt(t.files);this.fs=s,this.useDefaultLayout=!t.cwd&&!t.files;let n=t.cwd||(this.useDefaultLayout?"/home/user":"/"),r=new Map([["HOME",this.useDefaultLayout?"/home/user":"/"],["PATH","/usr/bin:/bin"],["IFS",`
698
+ `],["OSTYPE","linux-gnu"],["MACHTYPE","x86_64-pc-linux-gnu"],["HOSTTYPE","x86_64"],["HOSTNAME","localhost"],["PWD",n],["OLDPWD",n],["OPTIND","1"],...Object.entries(t.env??{})]);if(this.limits=Si({...t.executionLimits,...t.maxCallDepth!==void 0&&{maxCallDepth:t.maxCallDepth},...t.maxCommandCount!==void 0&&{maxCommandCount:t.maxCommandCount},...t.maxLoopIterations!==void 0&&{maxLoopIterations:t.maxLoopIterations}}),t.fetch?this.secureFetch=t.fetch:t.network&&(this.secureFetch=Pn(t.network)),this.sleepFn=t.sleep,this.traceFn=t.trace,this.logger=t.logger,this.defenseInDepthConfig=t.defenseInDepth??!0,this.coverageWriter=t.coverage,this.state={env:r,cwd:n,previousDir:"/home/user",functions:new Map,localScopes:[],callDepth:0,sourceDepth:0,commandCount:0,lastExitCode:0,lastArg:"",startTime:Date.now(),lastBackgroundPid:0,virtualPid:t.processInfo?.pid??1,virtualPpid:t.processInfo?.ppid??0,virtualUid:t.processInfo?.uid??1e3,virtualGid:t.processInfo?.gid??1e3,bashPid:t.processInfo?.pid??1,nextVirtualPid:(t.processInfo?.pid??1)+1,currentLine:1,options:{errexit:!1,pipefail:!1,nounset:!1,xtrace:!1,verbose:!1,posix:!1,allexport:!1,noclobber:!1,noglob:!1,noexec:!1,vi:!1,emacs:!1},shoptOptions:{extglob:!1,dotglob:!1,nullglob:!1,failglob:!1,globstar:!1,globskipdots:!0,nocaseglob:!1,nocasematch:!1,expand_aliases:!1,lastpipe:!1,xpg_echo:!1},inCondition:!1,loopDepth:0,exportedVars:new Set(["HOME","PATH","PWD","OLDPWD",...Object.keys(t.env||{})]),readonlyVars:new Set(["SHELLOPTS","BASHOPTS"]),hashTable:new Map},this.state.env.set("SHELLOPTS",ks(this.state.options)),this.state.env.set("BASHOPTS",Ns(this.state.shoptOptions)),nr(s,this.useDefaultLayout,{pid:this.state.virtualPid,ppid:this.state.virtualPpid,uid:this.state.virtualUid,gid:this.state.virtualGid}),n!=="/"&&s instanceof wt)try{s.mkdirSync(n,{recursive:!0})}catch{}for(let a of Xn(t.commands))this.registerCommand(a);if(t.fetch||t.network)for(let a of Yn())this.registerCommand(a);if(t.python)for(let a of Qn())this.registerCommand(a);let i=typeof t.javascript=="object"?t.javascript:Object.create(null);if(t.javascript||i.invokeTool){for(let a of Jn())this.registerCommand(a);i.bootstrap&&(this.jsBootstrapCode=i.bootstrap),i.invokeTool&&(this.invokeToolFn=i.invokeTool)}if(t.customCommands)for(let a of t.customCommands)if(er(a)){let o=tr(a);o.custom=!0,this.registerCommand(o)}else this.registerCommand({...a,trusted:a.trusted??!0,custom:!0});this.isConstructing=!1}registerCommand(t){this.isConstructing||(t.custom=!0),this.commands.set(t.name,t);let s=this.fs;if(typeof s.writeFileSync=="function"){let n=`#!/bin/bash
699
+ # Built-in command: ${t.name}
700
+ `;try{s.writeFileSync(`/bin/${t.name}`,n)}catch{}try{s.writeFileSync(`/usr/bin/${t.name}`,n)}catch{}}}logResult(t){return this.logger&&(t.stdout&&this.logger.debug("stdout",{output:t.stdout}),t.stderr&&this.logger.info("stderr",{output:t.stderr}),this.logger.info("exit",{exitCode:t.exitCode})),t.stdout=Wi(t.stdout),t.stderr=Wi(t.stderr),t}async exec(t,s){if(this.state.callDepth===0&&(this.state.commandCount=0),this.state.commandCount++,this.state.commandCount>this.limits.maxCommandCount)return{stdout:"",stderr:`bash: maximum command count (${this.limits.maxCommandCount}) exceeded (possible infinite loop). Increase with executionLimits.maxCommandCount option.
701
+ `,exitCode:1,env:me(this.state.env,s?.env)};if(!t.trim())return{stdout:"",stderr:"",exitCode:0,env:me(this.state.env,s?.env)};this.logger?.info("exec",{command:t});let n=s?.cwd??this.state.cwd,r,i=n;if(s?.cwd)if(s.env&&"PWD"in s.env)r=s.env.PWD;else if(s?.env&&!("PWD"in s.env))try{r=await this.fs.realpath(n),i=r}catch{r=n}else r=n;let a=s?.replaceEnv?new Map:new Map(this.state.env);if(s?.env)for(let[f,d]of Object.entries(s.env))a.set(f,d);r!==void 0&&a.set("PWD",r);let o={...this.state,env:a,cwd:i,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options},hashTable:this.state.hashTable,groupStdin:il(s?.stdin,s?.stdinKind),signal:s?.signal,extraArgs:s?.args},l=t;s?.rawScript||(l=Mi(t));let c=this.defenseInDepthConfig?ve.getInstance(this.defenseInDepthConfig):null,u=c?.activate();try{let f=async()=>{let d=$e(l,{maxHeredocSize:this.limits.maxHeredocSize}),h;if(this.transformPlugins.length>0){let g=Object.create(null);for(let $ of this.transformPlugins){let m=$.transform({ast:d,metadata:g});d=m.ast,m.metadata&&(g=ys(g,m.metadata))}h=g}let y={fs:this.fs,commands:this.commands,limits:this.limits,exec:this.exec.bind(this),fetch:this.secureFetch,sleep:this.sleepFn,trace:this.traceFn,coverage:this.coverageWriter,requireDefenseContext:c?.isEnabled()===!0,jsBootstrapCode:this.jsBootstrapCode,invokeTool:this.invokeToolFn},b=await new _t(y,o).executeScript(d);return h&&(b.metadata=h),this.logResult(b)};return u?await u.run(f):await f()}catch(f){if(f instanceof B)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:me(this.state.env,s?.env)});if(f instanceof be)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:me(this.state.env,s?.env)});if(f instanceof He)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:1,env:me(this.state.env,s?.env)});if(f instanceof Tt)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:124,env:me(this.state.env,s?.env)});if(f instanceof Y)return this.logResult({stdout:f.stdout,stderr:he(f.stderr),exitCode:Y.EXIT_CODE,env:me(this.state.env,s?.env)});if(f instanceof Qe)return this.logResult({stdout:"",stderr:`bash: security violation: ${he(f.message)}
702
+ `,exitCode:1,env:me(this.state.env,s?.env)});if(f.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${he(f.message)}
703
+ `,exitCode:2,env:me(this.state.env,s?.env)});if(f instanceof Fn)return this.logResult({stdout:"",stderr:`bash: ${he(f.message)}
704
+ `,exitCode:2,env:me(this.state.env,s?.env)});if(f instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${he(f.message)}
705
+ `,exitCode:1,env:me(this.state.env,s?.env)});throw f}finally{u?.deactivate()}}async readFile(t){return this.fs.readFile(this.fs.resolvePath(this.state.cwd,t))}async writeFile(t,s){return this.fs.writeFile(this.fs.resolvePath(this.state.cwd,t),s)}getCwd(){return this.state.cwd}getEnv(){return Re(this.state.env)}registerTransformPlugin(t){this.transformPlugins.push(t)}transform(t){let s=Mi(t),n=$e(s,{maxHeredocSize:this.limits.maxHeredocSize}),r=Object.create(null);for(let i of this.transformPlugins){let a=i.transform({ast:n,metadata:r});n=a.ast,a.metadata&&(r=ys(r,a.metadata))}return{script:Ti(n),ast:n,metadata:r}}};function Mi(e){let t=e.split(`
706
+ `),s=[],n=[];for(let r=0;r<t.length;r++){let i=t[r];if(n.length>0){let l=n[n.length-1];if((l.stripTabs?i.replace(/^\t+/,""):i)===l.delimiter){s.push(i.trimStart()),n.pop();continue}s.push(i);continue}let a=i.trimStart();s.push(a);let o=/<<(-?)\s*(['"]?)([\w-]+)\2/g;for(let l of a.matchAll(o)){let c=l[1]==="-",u=l[3];n.push({delimiter:u,stripTabs:c})}}return s.join(`
707
+ `)}var rl=new TextDecoder("utf-8",{fatal:!0});function Wi(e){if(!e)return e;let t=!1;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r>255)return e;r>127&&(t=!0)}if(!t)return e;let s=new Uint8Array(e.length);for(let n=0;n<e.length;n++)s[n]=e.charCodeAt(n);try{return rl.decode(s)}catch{return e}}function il(e,t){if(e!==void 0)return t==="bytes"?e:je(e)}import*as U from"node:fs";import*as re from"node:path";import*as we from"node:fs";import*as oe from"node:path";function Nt(e,t){if(e===t)return!0;let s=e[t.length];return(s==="/"||s==="\\")&&e.startsWith(t)}function kt(e,t){try{let s=we.realpathSync(e);return Nt(s,t)?s:null}catch(s){if(s.code==="ENOENT"){let n=oe.dirname(e);if(n===e)return null;let r=kt(n,t);if(r===null)return null;try{if(we.lstatSync(e).isSymbolicLink()){let a=we.readlinkSync(e),o=oe.isAbsolute(a)?a:oe.resolve(oe.dirname(e),a);if(kt(o,t)===null)return null}}catch{}return oe.join(r,oe.basename(e))}return null}}function zi(e,t,s){let n=kt(e,s);if(n===null)return null;let r=oe.resolve(e),i=r.slice(t.length),a=n.slice(s.length);if(i!==a)return null;try{if(we.lstatSync(r).isSymbolicLink())return null}catch{}return n}function Vi(e,t){if(!we.existsSync(e))throw new Error(`${t} root does not exist`);if(!we.statSync(e).isDirectory())throw new Error(`${t} root is not a directory`)}function Bi(e,t){if(!oe.isAbsolute(e))return{withinRoot:!0,relativePath:e};let s;try{s=we.realpathSync(e)}catch{s=oe.resolve(e)}return Nt(s,t)?{withinRoot:!0,relativePath:s.slice(t.length).replace(/\\/g,"/")||"/"}:{withinRoot:!1,safeName:oe.basename(e)}}function ji(e,t,s,n){let r=e;if(r.path===void 0){for(let a of n)if(r.message?.includes(a))throw e}let i=r.code||"EIO";throw new Error(`${i}: ${s} '${t}'`)}var al=["ELOOP","EFBIG","EPERM"],ol="/home/user/project",ht=class{root;canonicalRoot;mountPoint;readOnly;maxFileReadSize;allowSymlinks;memory=new Map;deleted=new Set;constructor(t){this.root=re.resolve(t.root);let s=t.mountPoint??ol;if(this.mountPoint=s==="/"?"/":s.replace(/\/+$/,""),!this.mountPoint.startsWith("/"))throw new Error(`Mount point must be an absolute path: ${s}`);this.readOnly=t.readOnly??!1,this.maxFileReadSize=t.maxFileReadSize??10485760,this.allowSymlinks=t.allowSymlinks??!1,Vi(this.root,"OverlayFs"),this.canonicalRoot=U.realpathSync(this.root),this.createMountPointDirs()}assertWritable(t){if(this.readOnly)throw new Error(`EROFS: read-only file system, ${t}`)}createMountPointDirs(){let t=this.mountPoint.split("/").filter(Boolean),s="";for(let n of t)s+=`/${n}`,this.memory.has(s)||this.memory.set(s,{type:"directory",mode:493,mtime:new Date});this.memory.has("/")||this.memory.set("/",{type:"directory",mode:493,mtime:new Date})}getMountPoint(){return this.mountPoint}mkdirSync(t,s){let r=L(t).split("/").filter(Boolean),i="";for(let a of r)i+=`/${a}`,this.memory.has(i)||this.memory.set(i,{type:"directory",mode:493,mtime:new Date})}writeFileSync(t,s){let n=L(t),r=this.getDirname(n);r!=="/"&&this.mkdirSync(r);let i=s instanceof Uint8Array?s:new TextEncoder().encode(s);this.memory.set(n,{type:"file",content:i,mode:420,mtime:new Date})}getDirname(t){let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}getRelativeToMount(t){return this.mountPoint==="/"?t:t===this.mountPoint?"/":t.startsWith(`${this.mountPoint}/`)?t.slice(this.mountPoint.length):null}toRealPath(t){let s=L(t),n=this.getRelativeToMount(s);if(n===null)return null;let r=re.join(this.root,n),i=re.resolve(r);return Nt(i,this.root)?i:null}resolveRealPath_(t){return t?this.allowSymlinks?kt(t,this.canonicalRoot):zi(t,this.root,this.canonicalRoot):null}resolveRealPathParent_(t){if(!t)return null;let s=re.dirname(t),n=this.resolveRealPath_(s);return n===null?null:re.join(n,re.basename(t))}sanitizeError(t,s,n){ji(t,s,n,al)}ensureParentDirs(t){let s=Ze(t);s!=="/"&&(this.memory.has(s)||(this.ensureParentDirs(s),this.memory.set(s,{type:"directory",mode:493,mtime:new Date})),this.deleted.delete(s))}async existsInOverlay(t){let s=L(t);if(this.deleted.has(s))return!1;if(this.memory.has(s))return!0;let n=this.resolveRealPathParent_(this.toRealPath(s));if(!n)return!1;try{return await U.promises.lstat(n),!0}catch{return!1}}async readFile(t,s){let n=await this.readFileBuffer(t),r=Le(s);return et(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return et(s,"binary")}async readFileBuffer(t,s=new Set){W(t,"open");let n=L(t);if(s.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);if(s.add(n),this.deleted.has(n))throw new Error(`ENOENT: no such file or directory, open '${t}'`);let r=this.memory.get(n);if(r){if(r.type==="symlink"){let a=this.resolveSymlink(n,r.target);return this.readFileBuffer(a,s)}if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return r.content}let i=this.resolveRealPath_(this.toRealPath(n));if(!i)throw new Error(`ENOENT: no such file or directory, open '${t}'`);try{let a=await U.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, open '${t}'`);let c=await U.promises.readlink(i),u=this.realTargetToVirtual(n,c),f=this.resolveSymlink(n,u);return this.readFileBuffer(f,s)}if(a.isDirectory())throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(this.maxFileReadSize>0&&a.size>this.maxFileReadSize)throw new Error(`EFBIG: file too large, read '${t}' (${a.size} bytes, max ${this.maxFileReadSize})`);let o=this.allowSymlinks?U.constants.O_RDONLY:U.constants.O_RDONLY|U.constants.O_NOFOLLOW,l=await U.promises.open(i,o);try{let c=await l.readFile();return new Uint8Array(c)}finally{await l.close()}}catch(a){let o=a.code;if(o==="ENOENT")throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(o==="ELOOP")throw new Error(`ENOENT: no such file or directory, open '${t}'`);this.sanitizeError(a,t,"open")}}async writeFile(t,s,n){W(t,"write"),this.assertWritable(`write '${t}'`);let r=L(t);this.ensureParentDirs(r);let i=Le(n),a=Je(s,i);this.memory.set(r,{type:"file",content:a,mode:420,mtime:new Date}),this.deleted.delete(r)}async appendFile(t,s,n){W(t,"append"),this.assertWritable(`append '${t}'`);let r=L(t),i=Le(n),a=Je(s,i),o;try{o=await this.readFileBuffer(r)}catch{o=new Uint8Array(0)}let l=new Uint8Array(o.length+a.length);l.set(o),l.set(a,o.length),this.ensureParentDirs(r),this.memory.set(r,{type:"file",content:l,mode:420,mtime:new Date}),this.deleted.delete(r)}async exists(t){return t.includes("\0")?!1:this.existsInOverlay(t)}async stat(t,s=new Set){W(t,"stat");let n=L(t);if(s.has(n))throw new Error(`ELOOP: too many levels of symbolic links, stat '${t}'`);if(s.add(n),this.deleted.has(n))throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let r=this.memory.get(n);if(r){if(r.type==="symlink"){let o=this.resolveSymlink(n,r.target);return this.stat(o,s)}let a=0;return r.type==="file"&&(a=r.content.length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:a,mtime:r.mtime}}let i=this.resolveRealPath_(this.toRealPath(n));if(!i)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);try{let a=await U.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let o=await U.promises.readlink(i),l=this.realTargetToVirtual(n,o),c=this.resolveSymlink(n,l);return this.stat(c,s)}return{isFile:a.isFile(),isDirectory:a.isDirectory(),isSymbolicLink:!1,mode:a.mode,size:a.size,mtime:a.mtime}}catch(a){if(a.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, stat '${t}'`);this.sanitizeError(a,t,"stat")}}async lstat(t){W(t,"lstat");let s=L(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);let n=this.memory.get(s);if(n){if(n.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:n.mode,size:n.target.length,mtime:n.mtime};let i=0;return n.type==="file"&&(i=n.content.length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:i,mtime:n.mtime}}let r=this.resolveRealPathParent_(this.toRealPath(s));if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);try{let i=await U.promises.lstat(r);return{isFile:i.isFile(),isDirectory:i.isDirectory(),isSymbolicLink:i.isSymbolicLink(),mode:i.mode,size:i.size,mtime:i.mtime}}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);this.sanitizeError(i,t,"lstat")}}resolveSymlink(t,s){return st(t,s)}realTargetToVirtual(t,s){let n=Bi(s,this.canonicalRoot);if(n.withinRoot){if(!re.isAbsolute(s))return s;let r=n.relativePath;return this.mountPoint==="/"?r:`${this.mountPoint}${r}`}return n.safeName}async mkdir(t,s){W(t,"mkdir"),this.assertWritable(`mkdir '${t}'`);let n=L(t);if(await this.existsInOverlay(n)){if(!s?.recursive)throw new Error(`EEXIST: file already exists, mkdir '${t}'`);return}let i=Ze(n);if(i!=="/"&&!await this.existsInOverlay(i))if(s?.recursive)await this.mkdir(i,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.memory.set(n,{type:"directory",mode:493,mtime:new Date}),this.deleted.delete(n)}async readdirCore(t,s){if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let n=new Map,r=new Set,i=s==="/"?"/":`${s}/`;for(let o of this.deleted)if(o.startsWith(i)){let l=o.slice(i.length),c=l.split("/")[0];c&&!l.includes("/",c.length)&&r.add(c)}for(let[o,l]of this.memory)if(o!==s&&o.startsWith(i)){let c=o.slice(i.length),u=c.split("/")[0];u&&!r.has(u)&&!c.includes("/",1)&&n.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}let a=this.resolveRealPath_(this.toRealPath(s));if(a)try{if(!this.allowSymlinks&&(await U.promises.lstat(a)).isSymbolicLink()){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);return n}let o=await U.promises.readdir(a,{withFileTypes:!0});for(let l of o)!r.has(l.name)&&!n.has(l.name)&&n.set(l.name,{name:l.name,isFile:l.isFile(),isDirectory:l.isDirectory(),isSymbolicLink:l.isSymbolicLink()})}catch(o){if(o.code==="ENOENT"){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`)}else o.code!=="ENOTDIR"&&this.sanitizeError(o,t,"scandir")}return n}async resolveForReaddir(t,s=!1){let n=L(t),r=new Set,i=s,a=this.memory.get(n);for(;a&&a.type==="symlink";){if(r.has(n))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);r.add(n),i=!0,n=this.resolveSymlink(n,a.target),a=this.memory.get(n)}if(a)return{normalized:n,outsideOverlay:!1};if(this.getRelativeToMount(n)===null)return{normalized:n,outsideOverlay:!0};let l=this.resolveRealPath_(this.toRealPath(n));if(!l)return{normalized:n,outsideOverlay:!0};try{if((await U.promises.lstat(l)).isSymbolicLink()){if(!this.allowSymlinks)return{normalized:n,outsideOverlay:!0};let u=await U.promises.readlink(l),f=this.realTargetToVirtual(n,u),d=this.resolveSymlink(n,f);return this.resolveForReaddir(d,!0)}return{normalized:n,outsideOverlay:!1}}catch{return i?{normalized:n,outsideOverlay:!0}:{normalized:n,outsideOverlay:!1}}}async readdir(t){W(t,"scandir");let{normalized:s,outsideOverlay:n}=await this.resolveForReaddir(t);if(n)return[];let r=await this.readdirCore(t,s);return Array.from(r.keys()).sort((i,a)=>i<a?-1:i>a?1:0)}async readdirWithFileTypes(t){W(t,"scandir");let{normalized:s,outsideOverlay:n}=await this.resolveForReaddir(t);if(n)return[];let r=await this.readdirCore(t,s);return Array.from(r.values()).sort((i,a)=>i.name<a.name?-1:i.name>a.name?1:0)}async rm(t,s){W(t,"rm"),this.assertWritable(`rm '${t}'`);let n=L(t);if(!await this.existsInOverlay(n)){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}try{if((await this.stat(n)).isDirectory){let a=await this.readdir(n);if(a.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of a){let l=n==="/"?`/${o}`:`${n}/${o}`;await this.rm(l,s)}}}}catch(i){if(i instanceof Error&&(i.message.includes("ENOTEMPTY")||i.message.includes("EISDIR")))throw i}this.memory.delete(n),this.existsOnRealFs(n)&&this.deleted.add(n)}existsOnRealFs(t){let s=this.toRealPath(t),n=this.resolveRealPathParent_(s);if(!n)return!1;try{return U.lstatSync(n),!0}catch{return!1}}async cp(t,s,n){W(t,"cp"),W(s,"cp"),this.assertWritable(`cp '${s}'`);let r=L(t),i=L(s);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, cp '${t}'`);let o=await this.stat(r);if(o.isFile){let l=await this.readFileBuffer(r);await this.writeFile(i,l)}else if(o.isDirectory){if(!n?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let l=await this.readdir(r);for(let c of l){let u=r==="/"?`/${c}`:`${r}/${c}`,f=i==="/"?`/${c}`:`${i}/${c}`;await this.cp(u,f,n)}}}async mv(t,s){this.assertWritable(`mv '${s}'`),await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}resolvePath(t,s){return Wt(t,s)}getAllPaths(){let t=new Set(this.memory.keys());for(let s of this.deleted)t.delete(s);return this.scanRealFs("/",t),Array.from(t)}scanRealFs(t,s){if(this.deleted.has(t))return;let n=this.resolveRealPath_(this.toRealPath(t));if(n)try{let r=U.readdirSync(n);for(let i of r){let a=t==="/"?`/${i}`:`${t}/${i}`;if(this.deleted.has(a))continue;s.add(a);let o=re.join(n,i);U.lstatSync(o).isDirectory()&&this.scanRealFs(a,s)}}catch{}}async chmod(t,s){W(t,"chmod"),this.assertWritable(`chmod '${t}'`);let n=L(t);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);let i=this.memory.get(n);if(i){i.mode=s;return}let a=await this.stat(n);if(a.isFile){let o=await this.readFileBuffer(n);this.memory.set(n,{type:"file",content:o,mode:s,mtime:new Date})}else a.isDirectory&&this.memory.set(n,{type:"directory",mode:s,mtime:new Date})}async symlink(t,s){if(!this.allowSymlinks)throw new Error(`EPERM: operation not permitted, symlink '${s}'`);W(s,"symlink"),this.assertWritable(`symlink '${s}'`);let n=L(s);if(await this.existsInOverlay(n))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(n),this.memory.set(n,{type:"symlink",target:t,mode:511,mtime:new Date}),this.deleted.delete(n)}async link(t,s){W(t,"link"),W(s,"link"),this.assertWritable(`link '${s}'`);let n=L(t),r=L(s);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, link '${t}'`);let a=await this.stat(n);if(!a.isFile)throw new Error(`EPERM: operation not permitted, link '${t}'`);if(await this.existsInOverlay(r))throw new Error(`EEXIST: file already exists, link '${s}'`);let l=await this.readFileBuffer(n);this.ensureParentDirs(r),this.memory.set(r,{type:"file",content:l,mode:a.mode,mtime:new Date}),this.deleted.delete(r)}async readlink(t){W(t,"readlink");let s=L(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);let n=this.memory.get(s);if(n){if(n.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return n.target}let r=this.resolveRealPathParent_(this.toRealPath(s));if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);try{let i=await U.promises.readlink(r);if(!re.isAbsolute(i)){let a=re.resolve(re.dirname(r),i),o;try{o=U.realpathSync(a)}catch{o=a}if(!Nt(o,this.canonicalRoot))return re.basename(i)}return this.realTargetToVirtual(s,i)}catch(i){if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(i.code==="EINVAL")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);this.sanitizeError(i,t,"readlink")}}async realpath(t){W(t,"realpath");let s=L(t),n=new Set,r=async o=>{let l=o==="/"?[]:o.slice(1).split("/"),c="";for(let u of l){if(c=`${c}/${u}`,n.has(c))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(c))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let f=this.memory.get(c),d=0,h=40;for(;f&&f.type==="symlink"&&d<h;){if(n.add(c),c=this.resolveSymlink(c,f.target),d++,n.has(c))throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(this.deleted.has(c))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);f=this.memory.get(c)}if(d>=h)throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);if(!f){let y=this.toRealPath(c),p=this.resolveRealPath_(y);if(p)try{if((await U.promises.lstat(p)).isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let b=await U.promises.readlink(p),g=this.realTargetToVirtual(c,b);return n.add(c),c=this.resolveSymlink(c,g),r(c)}}catch(v){if(v.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(v,t,"realpath")}else if(!this.allowSymlinks){let v=this.resolveRealPathParent_(y);if(v)try{if((await U.promises.lstat(v)).isSymbolicLink())throw new Error(`ENOENT: no such file or directory, realpath '${t}'`)}catch(b){if(b.message?.includes("ENOENT")||b.message?.includes("ELOOP"))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(b,t,"realpath")}}}}return c||"/"},i=await r(s);if(!await this.existsInOverlay(i))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return i}async utimes(t,s,n){W(t,"utimes"),this.assertWritable(`utimes '${t}'`);let r=L(t);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);let a=this.memory.get(r);if(a){a.mtime=n;return}let o=await this.stat(r);if(o.isFile){let l=await this.readFileBuffer(r);this.memory.set(r,{type:"file",content:l,mode:o.mode,mtime:n})}else o.isDirectory&&this.memory.set(r,{type:"directory",mode:o.mode,mtime:n})}};function Ui(){console.log(`just-bash - A secure bash environment for AI agents
708
+
709
+ Usage:
710
+ just-bash [options] [script-file]
711
+ just-bash -c 'script' [options]
712
+ echo 'script' | just-bash [options]
713
+
714
+ Options:
715
+ -c <script> Execute the script from command line argument
716
+ -e, --errexit Exit immediately if a command exits with non-zero status
717
+ --root <path> Root directory for OverlayFS (default: current directory)
718
+ --cwd <path> Working directory within the sandbox (default: project mount point)
719
+ --allow-write Allow write operations (default: read-only)
720
+ --python Enable python3/python commands (disabled by default)
721
+ --javascript Enable js-exec command (disabled by default)
722
+ --json Output results as JSON (stdout, stderr, exitCode)
723
+ -h, --help Show this help message
724
+ -v, --version Show version
725
+
726
+ Security:
727
+ - Reads from the real filesystem (read-only via OverlayFS)
728
+ - Write operations are blocked by default (use --allow-write to enable)
729
+ - Cannot escape the root directory
730
+ - No network access
731
+
732
+ Filesystem:
733
+ The root directory is mounted at /home/user/project in the virtual filesystem.
734
+ The working directory starts at this mount point.
735
+
736
+ Examples:
737
+ # List files in current directory
738
+ just-bash -c 'ls -la'
739
+
740
+ # Execute with specific root
741
+ just-bash -c 'cat package.json' --root /path/to/project
742
+
743
+ # Pipe script from stdin
744
+ echo 'find . -name "*.ts" | head -5' | just-bash
745
+
746
+ # Execute a script file
747
+ just-bash ./scripts/build.sh
748
+
749
+ # Get JSON output for programmatic use
750
+ just-bash -c 'echo hello' --json
751
+
752
+ # Allow write operations (writes stay in memory)
753
+ just-bash -c 'echo test > /tmp/file.txt && cat /tmp/file.txt' --allow-write
754
+ `)}function ll(){console.log("just-bash 1.0.0")}function cl(e){let t={root:process.cwd(),cwd:"/",cwdOverridden:!1,errexit:!1,allowWrite:!1,python:!1,javascript:!1,json:!1,help:!1,version:!1},s=0;for(;s<e.length;){let n=e[s];if(n==="-h"||n==="--help")t.help=!0,s++;else if(n==="-v"||n==="--version")t.version=!0,s++;else if(n==="-c")s+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[s+1],s+=2;else if(n==="-e"||n==="--errexit")t.errexit=!0,s++;else if(n==="--root")s+1>=e.length&&(console.error("Error: --root requires a path argument"),process.exit(1)),t.root=Hi(e[s+1]),s+=2;else if(n==="--cwd")s+1>=e.length&&(console.error("Error: --cwd requires a path argument"),process.exit(1)),t.cwd=e[s+1],t.cwdOverridden=!0,s+=2;else if(n==="--json")t.json=!0,s++;else if(n==="--allow-write")t.allowWrite=!0,s++;else if(n==="--python")t.python=!0,s++;else if(n==="--javascript")t.javascript=!0,s++;else if(n.startsWith("-"))if(n.length>2&&!n.startsWith("--")){let r=n.slice(1);for(let i of r)if(i==="e")t.errexit=!0;else if(i==="h")t.help=!0;else if(i==="v")t.version=!0;else if(i==="c"){s+1>=e.length&&(console.error("Error: -c requires a script argument"),process.exit(1)),t.script=e[s+1],s++;break}else console.error(`Error: Unknown option: -${i}`),process.exit(1);s++}else console.error(`Error: Unknown option: ${n}`),process.exit(1);else!t.scriptFile&&!t.script?t.scriptFile=n:t.scriptFile&&t.root===process.cwd()&&(t.root=Hi(n)),s++}return t}function ul(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(r=>r&&r!=="."),n=[];for(let r of s)r===".."?n.pop():n.push(r);return`/${n.join("/")}`||"/"}async function fl(){let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf-8")}async function dl(){let e=process.argv.slice(2),t=cl(e);t.help&&(Ui(),process.exit(0)),t.version&&(ll(),process.exit(0));let s;if(t.script)s=t.script;else if(t.scriptFile){let o=new ht({root:t.root}),l=o.getMountPoint();try{let c=t.scriptFile.startsWith("/")?t.scriptFile:`${l}/${t.scriptFile}`;s=await o.readFile(c,"utf-8")}catch(c){console.error(`Error: Cannot read script file: ${t.scriptFile}`),console.error(he(c instanceof Error?c.message:String(c))),process.exit(1)}}else process.stdin.isTTY?(Ui(),process.exit(1)):s=await fl();s.trim()||(t.json&&console.log(JSON.stringify({stdout:"",stderr:"",exitCode:0})),process.exit(0));let n=new ht({root:t.root,readOnly:!t.allowWrite}),r=n.getMountPoint(),i=t.cwdOverridden?ul(t.cwd):r,a=new ps({fs:n,cwd:i,python:t.python,javascript:t.javascript});t.errexit&&(s=`set -e
755
+ ${s}`);try{let o=await a.exec(s);t.json?console.log(JSON.stringify({stdout:o.stdout,stderr:o.stderr,exitCode:o.exitCode})):(o.stdout&&process.stdout.write(o.stdout),o.stderr&&process.stderr.write(o.stderr)),process.exit(o.exitCode)}catch(o){let l=he(o instanceof Error?o.message:String(o));t.json?console.log(JSON.stringify({stdout:"",stderr:l,exitCode:1})):console.error(l),process.exit(1)}}dl().catch(e=>{console.error("Fatal error:",he(e instanceof Error?e.message:String(e))),process.exit(1)});