@demicodes/just-bash 3.0.1-demi.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (903) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +201 -0
  3. package/README.md +620 -0
  4. package/dist/AGENTS.md +327 -0
  5. package/dist/Bash.d.ts +256 -0
  6. package/dist/ast/types.d.ts +609 -0
  7. package/dist/banned-patterns-test.d.ts +1 -0
  8. package/dist/bin/chunks/alias-YRVAW27Y.js +3 -0
  9. package/dist/bin/chunks/awk2-XSVZFGAA.js +3 -0
  10. package/dist/bin/chunks/base64-RZRLGMB3.js +3 -0
  11. package/dist/bin/chunks/basename-F3AQ4KAQ.js +3 -0
  12. package/dist/bin/chunks/bash-CLP24TE2.js +3 -0
  13. package/dist/bin/chunks/cat-LQH5FSAR.js +3 -0
  14. package/dist/bin/chunks/chmod-S564JCJW.js +3 -0
  15. package/dist/bin/chunks/chunk-22HCD466.js +3 -0
  16. package/dist/bin/chunks/chunk-2AIXTPH2.js +9 -0
  17. package/dist/bin/chunks/chunk-2ETT4ELS.js +4 -0
  18. package/dist/bin/chunks/chunk-2FCLTY3Z.js +15 -0
  19. package/dist/bin/chunks/chunk-2GG3NVC4.js +10 -0
  20. package/dist/bin/chunks/chunk-2NRAWO6E.js +7 -0
  21. package/dist/bin/chunks/chunk-2SVX7I5P.js +14 -0
  22. package/dist/bin/chunks/chunk-2TVVPMMT.js +34 -0
  23. package/dist/bin/chunks/chunk-3MRB66F4.js +3 -0
  24. package/dist/bin/chunks/chunk-3WIMLJM7.js +8 -0
  25. package/dist/bin/chunks/chunk-42Z7Z3TQ.js +288 -0
  26. package/dist/bin/chunks/chunk-4BNS566Q.js +4 -0
  27. package/dist/bin/chunks/chunk-52Z5MJO2.js +17 -0
  28. package/dist/bin/chunks/chunk-5WLKCCX7.js +6 -0
  29. package/dist/bin/chunks/chunk-5XSZHUEI.js +15 -0
  30. package/dist/bin/chunks/chunk-6FSBHK6H.js +22 -0
  31. package/dist/bin/chunks/chunk-6GSBC77G.js +22 -0
  32. package/dist/bin/chunks/chunk-6UL3WIEK.js +3 -0
  33. package/dist/bin/chunks/chunk-6WJQNLR2.js +7 -0
  34. package/dist/bin/chunks/chunk-77MLOOQS.js +11 -0
  35. package/dist/bin/chunks/chunk-7AYT3UKI.js +6 -0
  36. package/dist/bin/chunks/chunk-7GBHDJNC.js +34 -0
  37. package/dist/bin/chunks/chunk-7JZKVC3F.js +2 -0
  38. package/dist/bin/chunks/chunk-7NDRU2ZN.js +5 -0
  39. package/dist/bin/chunks/chunk-7UU7KPEM.js +7 -0
  40. package/dist/bin/chunks/chunk-7VCQWCSH.js +15 -0
  41. package/dist/bin/chunks/chunk-AGKL4LDL.js +4 -0
  42. package/dist/bin/chunks/chunk-AJF3OBTR.js +4 -0
  43. package/dist/bin/chunks/chunk-B2DRBHGQ.js +3 -0
  44. package/dist/bin/chunks/chunk-BE4PARL3.js +13 -0
  45. package/dist/bin/chunks/chunk-BGX3RW7H.js +10 -0
  46. package/dist/bin/chunks/chunk-BIJXTWZ4.js +3 -0
  47. package/dist/bin/chunks/chunk-BPZJYOUA.js +33 -0
  48. package/dist/bin/chunks/chunk-C7ISPH7Y.js +18 -0
  49. package/dist/bin/chunks/chunk-CAZ75E7E.js +3 -0
  50. package/dist/bin/chunks/chunk-DJAX3ZRG.js +8 -0
  51. package/dist/bin/chunks/chunk-DYIBFLS3.js +17 -0
  52. package/dist/bin/chunks/chunk-EDTBGO7F.js +37 -0
  53. package/dist/bin/chunks/chunk-F3GKANW3.js +12 -0
  54. package/dist/bin/chunks/chunk-F3WNDKOC.js +3 -0
  55. package/dist/bin/chunks/chunk-FKVQZWJQ.js +10 -0
  56. package/dist/bin/chunks/chunk-FX7BQD2Q.js +20 -0
  57. package/dist/bin/chunks/chunk-G4AUMZUY.js +4 -0
  58. package/dist/bin/chunks/chunk-H7JTIXAO.js +4 -0
  59. package/dist/bin/chunks/chunk-HADFAIPZ.js +17 -0
  60. package/dist/bin/chunks/chunk-HL4ZS7TX.js +6 -0
  61. package/dist/bin/chunks/chunk-HN2DCT7T.js +13 -0
  62. package/dist/bin/chunks/chunk-HSTAQAVQ.js +11 -0
  63. package/dist/bin/chunks/chunk-I4IRHQDW.js +3 -0
  64. package/dist/bin/chunks/chunk-IWXPUD2J.js +12 -0
  65. package/dist/bin/chunks/chunk-IZGLHVBB.js +8 -0
  66. package/dist/bin/chunks/chunk-J7TUF2VI.js +9 -0
  67. package/dist/bin/chunks/chunk-JXLDT4KX.js +4 -0
  68. package/dist/bin/chunks/chunk-KFMPGSUT.js +9 -0
  69. package/dist/bin/chunks/chunk-KI54R2QB.js +3 -0
  70. package/dist/bin/chunks/chunk-KRRM5UCC.js +3 -0
  71. package/dist/bin/chunks/chunk-KUMHQGUR.js +3 -0
  72. package/dist/bin/chunks/chunk-LNNWMRCB.js +3 -0
  73. package/dist/bin/chunks/chunk-LNVSXNT7.js +3 -0
  74. package/dist/bin/chunks/chunk-LZHWUYJZ.js +24 -0
  75. package/dist/bin/chunks/chunk-MLUOPG3W.js +3 -0
  76. package/dist/bin/chunks/chunk-MROECM42.js +3 -0
  77. package/dist/bin/chunks/chunk-MUFNRCMY.js +24 -0
  78. package/dist/bin/chunks/chunk-NE4R2FVV.js +5 -0
  79. package/dist/bin/chunks/chunk-NKAT2N47.js +7 -0
  80. package/dist/bin/chunks/chunk-NYIPFY36.js +3 -0
  81. package/dist/bin/chunks/chunk-O2BCKSMK.js +3 -0
  82. package/dist/bin/chunks/chunk-OLEQNRKX.js +8 -0
  83. package/dist/bin/chunks/chunk-OPMLWMNH.js +17 -0
  84. package/dist/bin/chunks/chunk-PAYQNSZN.js +18 -0
  85. package/dist/bin/chunks/chunk-PBOVSFTJ.js +3 -0
  86. package/dist/bin/chunks/chunk-PSGVOB5U.js +3 -0
  87. package/dist/bin/chunks/chunk-PXP4YYZA.js +13 -0
  88. package/dist/bin/chunks/chunk-PZQVSQX6.js +4 -0
  89. package/dist/bin/chunks/chunk-Q2GOPGDA.js +6 -0
  90. package/dist/bin/chunks/chunk-QL33F2W6.js +8 -0
  91. package/dist/bin/chunks/chunk-QPHXCMJV.js +80 -0
  92. package/dist/bin/chunks/chunk-RJUDCNEZ.js +29 -0
  93. package/dist/bin/chunks/chunk-RVPTAYDS.js +4 -0
  94. package/dist/bin/chunks/chunk-SAF4OIHD.js +20 -0
  95. package/dist/bin/chunks/chunk-SMLKRKMP.js +11 -0
  96. package/dist/bin/chunks/chunk-SMSELHIY.js +12 -0
  97. package/dist/bin/chunks/chunk-T74E2U4J.js +64 -0
  98. package/dist/bin/chunks/chunk-UO5LOD7U.js +12 -0
  99. package/dist/bin/chunks/chunk-UOMNSQEZ.js +10 -0
  100. package/dist/bin/chunks/chunk-UVKD35GR.js +9 -0
  101. package/dist/bin/chunks/chunk-V2RP73X4.js +15 -0
  102. package/dist/bin/chunks/chunk-VP3OTMHX.js +22 -0
  103. package/dist/bin/chunks/chunk-VZK4FHWJ.js +3 -0
  104. package/dist/bin/chunks/chunk-WDWNEHHE.js +9 -0
  105. package/dist/bin/chunks/chunk-X4MX6EHF.js +6 -0
  106. package/dist/bin/chunks/chunk-X5WRKSEU.js +101 -0
  107. package/dist/bin/chunks/chunk-XBB73LFB.js +5 -0
  108. package/dist/bin/chunks/chunk-XCUJL2AJ.js +141 -0
  109. package/dist/bin/chunks/chunk-XHCCSVP6.js +9 -0
  110. package/dist/bin/chunks/chunk-XJ37N3S5.js +7 -0
  111. package/dist/bin/chunks/chunk-XPTYN6UE.js +8 -0
  112. package/dist/bin/chunks/chunk-XRUDFQG5.js +7 -0
  113. package/dist/bin/chunks/chunk-YJ5OCPSK.js +7 -0
  114. package/dist/bin/chunks/chunk-YOIFOOGX.js +9 -0
  115. package/dist/bin/chunks/chunk-YOKQNNQO.js +6 -0
  116. package/dist/bin/chunks/chunk-YR32XGKD.js +3 -0
  117. package/dist/bin/chunks/chunk-YUZRUF5F.js +10 -0
  118. package/dist/bin/chunks/chunk-YY5PJR7O.js +7 -0
  119. package/dist/bin/chunks/chunk-ZAMAXG5K.js +85 -0
  120. package/dist/bin/chunks/chunk-ZFUVUYWG.js +15 -0
  121. package/dist/bin/chunks/clear-FGNEKYDU.js +3 -0
  122. package/dist/bin/chunks/column-AQB3A3PJ.js +3 -0
  123. package/dist/bin/chunks/comm-Q4VDF6ZO.js +3 -0
  124. package/dist/bin/chunks/cp-HYXTMN3D.js +3 -0
  125. package/dist/bin/chunks/curl-PLHETP4J.js +27 -0
  126. package/dist/bin/chunks/cut-ZI2HIAW7.js +3 -0
  127. package/dist/bin/chunks/date-OFYBOAUE.js +3 -0
  128. package/dist/bin/chunks/diff-TL7IV4S2.js +3 -0
  129. package/dist/bin/chunks/dirname-VCINTLPD.js +3 -0
  130. package/dist/bin/chunks/du-4LRQIGRG.js +3 -0
  131. package/dist/bin/chunks/echo-KCOHTNDF.js +3 -0
  132. package/dist/bin/chunks/env-NY32PQJM.js +3 -0
  133. package/dist/bin/chunks/expand-YYSO35NS.js +3 -0
  134. package/dist/bin/chunks/expansion-YT6DLHRE.js +3 -0
  135. package/dist/bin/chunks/expr-XNBNPKSF.js +3 -0
  136. package/dist/bin/chunks/file-U4GYVT3G.js +3 -0
  137. package/dist/bin/chunks/find-CZ6UMSZX.js +3 -0
  138. package/dist/bin/chunks/flag-coverage-MPBSMQIN.js +3 -0
  139. package/dist/bin/chunks/fold-5MF7QZWQ.js +3 -0
  140. package/dist/bin/chunks/grep-JCHLTP7S.js +3 -0
  141. package/dist/bin/chunks/gzip-UGBQQKIH.js +3 -0
  142. package/dist/bin/chunks/head-77V5O3RE.js +3 -0
  143. package/dist/bin/chunks/help-CGUEOGXQ.js +3 -0
  144. package/dist/bin/chunks/history-AQQWW3QB.js +3 -0
  145. package/dist/bin/chunks/hostname-USNWOQCK.js +3 -0
  146. package/dist/bin/chunks/html-to-markdown-PHASM44U.js +3 -0
  147. package/dist/bin/chunks/join-EJ73DYTK.js +3 -0
  148. package/dist/bin/chunks/jq-W6KOII4Y.js +3 -0
  149. package/dist/bin/chunks/js-exec-BC6NI55L.js +98 -0
  150. package/dist/bin/chunks/js-exec-worker.js +4639 -0
  151. package/dist/bin/chunks/ln-LP4HMCSM.js +3 -0
  152. package/dist/bin/chunks/ls-YGNSAGDK.js +3 -0
  153. package/dist/bin/chunks/md5sum-MCVDIB35.js +3 -0
  154. package/dist/bin/chunks/mkdir-P4DKRCDX.js +3 -0
  155. package/dist/bin/chunks/mv-QQK4FQX6.js +3 -0
  156. package/dist/bin/chunks/nl-KUPLVCTS.js +3 -0
  157. package/dist/bin/chunks/od-YQ5ZUI2H.js +3 -0
  158. package/dist/bin/chunks/paste-A5KKPWXX.js +3 -0
  159. package/dist/bin/chunks/printf-XXZMDRGE.js +3 -0
  160. package/dist/bin/chunks/pwd-FCNDA467.js +3 -0
  161. package/dist/bin/chunks/python3-BQWDPUBM.js +13 -0
  162. package/dist/bin/chunks/readlink-25V57VOL.js +3 -0
  163. package/dist/bin/chunks/rev-PYHOZ4D4.js +3 -0
  164. package/dist/bin/chunks/rg-OHJSRKFS.js +3 -0
  165. package/dist/bin/chunks/rm-ECNUFR66.js +3 -0
  166. package/dist/bin/chunks/rmdir-DLOHIA7Q.js +3 -0
  167. package/dist/bin/chunks/sed-4GRUPTAO.js +3 -0
  168. package/dist/bin/chunks/seq-UXDJE6FB.js +3 -0
  169. package/dist/bin/chunks/sha1sum-4KF52U3Y.js +3 -0
  170. package/dist/bin/chunks/sha256sum-6YEPULPX.js +3 -0
  171. package/dist/bin/chunks/sleep-QHAPNY3Q.js +3 -0
  172. package/dist/bin/chunks/sort-4C6WOKNK.js +3 -0
  173. package/dist/bin/chunks/split-TV7NL7LA.js +3 -0
  174. package/dist/bin/chunks/sqlite3-W777NCI4.js +3 -0
  175. package/dist/bin/chunks/sqlite3-worker.js +1728 -0
  176. package/dist/bin/chunks/stat-BD6KT3BP.js +3 -0
  177. package/dist/bin/chunks/strings-MDD72LR6.js +3 -0
  178. package/dist/bin/chunks/tac-C2N4NQ6S.js +3 -0
  179. package/dist/bin/chunks/tail-LGNECVQA.js +3 -0
  180. package/dist/bin/chunks/tar-K6HVPBVB.js +3 -0
  181. package/dist/bin/chunks/tee-UQHPO4OW.js +3 -0
  182. package/dist/bin/chunks/time-ZPY52VT2.js +3 -0
  183. package/dist/bin/chunks/timeout-5AX3ZS3X.js +3 -0
  184. package/dist/bin/chunks/touch-DFGSVIX7.js +3 -0
  185. package/dist/bin/chunks/tr-G7K6M6HP.js +3 -0
  186. package/dist/bin/chunks/tree-6D7SMPUR.js +3 -0
  187. package/dist/bin/chunks/true-SKL4L7JP.js +3 -0
  188. package/dist/bin/chunks/unexpand-QIR4EDPG.js +3 -0
  189. package/dist/bin/chunks/uniq-I7PVFJR4.js +3 -0
  190. package/dist/bin/chunks/wc-6NGWULAP.js +3 -0
  191. package/dist/bin/chunks/which-LCXKCLFC.js +3 -0
  192. package/dist/bin/chunks/whoami-TZDZDU7T.js +3 -0
  193. package/dist/bin/chunks/worker.js +3150 -0
  194. package/dist/bin/chunks/xan-LGEJUGOM.js +3 -0
  195. package/dist/bin/chunks/xan-view-L75WEJE2.js +3 -0
  196. package/dist/bin/chunks/xargs-UWHPYLY7.js +3 -0
  197. package/dist/bin/chunks/yq-V6YWS23E.js +3 -0
  198. package/dist/bin/just-bash.js +778 -0
  199. package/dist/bin/shell/chunks/alias-YRVAW27Y.js +3 -0
  200. package/dist/bin/shell/chunks/awk2-XSVZFGAA.js +3 -0
  201. package/dist/bin/shell/chunks/base64-RZRLGMB3.js +3 -0
  202. package/dist/bin/shell/chunks/basename-F3AQ4KAQ.js +3 -0
  203. package/dist/bin/shell/chunks/bash-CLP24TE2.js +3 -0
  204. package/dist/bin/shell/chunks/cat-LQH5FSAR.js +3 -0
  205. package/dist/bin/shell/chunks/chmod-S564JCJW.js +3 -0
  206. package/dist/bin/shell/chunks/chunk-22HCD466.js +3 -0
  207. package/dist/bin/shell/chunks/chunk-2AIXTPH2.js +9 -0
  208. package/dist/bin/shell/chunks/chunk-2ETT4ELS.js +4 -0
  209. package/dist/bin/shell/chunks/chunk-2FCLTY3Z.js +15 -0
  210. package/dist/bin/shell/chunks/chunk-2GG3NVC4.js +10 -0
  211. package/dist/bin/shell/chunks/chunk-2NRAWO6E.js +7 -0
  212. package/dist/bin/shell/chunks/chunk-2SVX7I5P.js +14 -0
  213. package/dist/bin/shell/chunks/chunk-2TVVPMMT.js +34 -0
  214. package/dist/bin/shell/chunks/chunk-3MRB66F4.js +3 -0
  215. package/dist/bin/shell/chunks/chunk-3WIMLJM7.js +8 -0
  216. package/dist/bin/shell/chunks/chunk-42Z7Z3TQ.js +288 -0
  217. package/dist/bin/shell/chunks/chunk-4BNS566Q.js +4 -0
  218. package/dist/bin/shell/chunks/chunk-52Z5MJO2.js +17 -0
  219. package/dist/bin/shell/chunks/chunk-5WLKCCX7.js +6 -0
  220. package/dist/bin/shell/chunks/chunk-5XSZHUEI.js +15 -0
  221. package/dist/bin/shell/chunks/chunk-6FSBHK6H.js +22 -0
  222. package/dist/bin/shell/chunks/chunk-6GSBC77G.js +22 -0
  223. package/dist/bin/shell/chunks/chunk-6UL3WIEK.js +3 -0
  224. package/dist/bin/shell/chunks/chunk-6WJQNLR2.js +7 -0
  225. package/dist/bin/shell/chunks/chunk-77MLOOQS.js +11 -0
  226. package/dist/bin/shell/chunks/chunk-7AYT3UKI.js +6 -0
  227. package/dist/bin/shell/chunks/chunk-7GBHDJNC.js +34 -0
  228. package/dist/bin/shell/chunks/chunk-7JZKVC3F.js +2 -0
  229. package/dist/bin/shell/chunks/chunk-7NDRU2ZN.js +5 -0
  230. package/dist/bin/shell/chunks/chunk-7UU7KPEM.js +7 -0
  231. package/dist/bin/shell/chunks/chunk-7VCQWCSH.js +15 -0
  232. package/dist/bin/shell/chunks/chunk-AGKL4LDL.js +4 -0
  233. package/dist/bin/shell/chunks/chunk-AJF3OBTR.js +4 -0
  234. package/dist/bin/shell/chunks/chunk-B2DRBHGQ.js +3 -0
  235. package/dist/bin/shell/chunks/chunk-BE4PARL3.js +13 -0
  236. package/dist/bin/shell/chunks/chunk-BGX3RW7H.js +10 -0
  237. package/dist/bin/shell/chunks/chunk-BIJXTWZ4.js +3 -0
  238. package/dist/bin/shell/chunks/chunk-BPZJYOUA.js +33 -0
  239. package/dist/bin/shell/chunks/chunk-C7ISPH7Y.js +18 -0
  240. package/dist/bin/shell/chunks/chunk-CAZ75E7E.js +3 -0
  241. package/dist/bin/shell/chunks/chunk-DJAX3ZRG.js +8 -0
  242. package/dist/bin/shell/chunks/chunk-DYIBFLS3.js +17 -0
  243. package/dist/bin/shell/chunks/chunk-EDTBGO7F.js +37 -0
  244. package/dist/bin/shell/chunks/chunk-F3GKANW3.js +12 -0
  245. package/dist/bin/shell/chunks/chunk-F3WNDKOC.js +3 -0
  246. package/dist/bin/shell/chunks/chunk-FKVQZWJQ.js +10 -0
  247. package/dist/bin/shell/chunks/chunk-FX7BQD2Q.js +20 -0
  248. package/dist/bin/shell/chunks/chunk-G4AUMZUY.js +4 -0
  249. package/dist/bin/shell/chunks/chunk-H7JTIXAO.js +4 -0
  250. package/dist/bin/shell/chunks/chunk-HADFAIPZ.js +17 -0
  251. package/dist/bin/shell/chunks/chunk-HL4ZS7TX.js +6 -0
  252. package/dist/bin/shell/chunks/chunk-HN2DCT7T.js +13 -0
  253. package/dist/bin/shell/chunks/chunk-HSTAQAVQ.js +11 -0
  254. package/dist/bin/shell/chunks/chunk-I4IRHQDW.js +3 -0
  255. package/dist/bin/shell/chunks/chunk-IWXPUD2J.js +12 -0
  256. package/dist/bin/shell/chunks/chunk-IZGLHVBB.js +8 -0
  257. package/dist/bin/shell/chunks/chunk-J7TUF2VI.js +9 -0
  258. package/dist/bin/shell/chunks/chunk-JXLDT4KX.js +4 -0
  259. package/dist/bin/shell/chunks/chunk-KFMPGSUT.js +9 -0
  260. package/dist/bin/shell/chunks/chunk-KI54R2QB.js +3 -0
  261. package/dist/bin/shell/chunks/chunk-KRRM5UCC.js +3 -0
  262. package/dist/bin/shell/chunks/chunk-KUMHQGUR.js +3 -0
  263. package/dist/bin/shell/chunks/chunk-LNNWMRCB.js +3 -0
  264. package/dist/bin/shell/chunks/chunk-LNVSXNT7.js +3 -0
  265. package/dist/bin/shell/chunks/chunk-LZHWUYJZ.js +24 -0
  266. package/dist/bin/shell/chunks/chunk-MLUOPG3W.js +3 -0
  267. package/dist/bin/shell/chunks/chunk-MROECM42.js +3 -0
  268. package/dist/bin/shell/chunks/chunk-MUFNRCMY.js +24 -0
  269. package/dist/bin/shell/chunks/chunk-NE4R2FVV.js +5 -0
  270. package/dist/bin/shell/chunks/chunk-NKAT2N47.js +7 -0
  271. package/dist/bin/shell/chunks/chunk-NYIPFY36.js +3 -0
  272. package/dist/bin/shell/chunks/chunk-O2BCKSMK.js +3 -0
  273. package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +8 -0
  274. package/dist/bin/shell/chunks/chunk-OPMLWMNH.js +17 -0
  275. package/dist/bin/shell/chunks/chunk-PAYQNSZN.js +18 -0
  276. package/dist/bin/shell/chunks/chunk-PBOVSFTJ.js +3 -0
  277. package/dist/bin/shell/chunks/chunk-PSGVOB5U.js +3 -0
  278. package/dist/bin/shell/chunks/chunk-PXP4YYZA.js +13 -0
  279. package/dist/bin/shell/chunks/chunk-PZQVSQX6.js +4 -0
  280. package/dist/bin/shell/chunks/chunk-Q2GOPGDA.js +6 -0
  281. package/dist/bin/shell/chunks/chunk-QL33F2W6.js +8 -0
  282. package/dist/bin/shell/chunks/chunk-QPHXCMJV.js +80 -0
  283. package/dist/bin/shell/chunks/chunk-RJUDCNEZ.js +29 -0
  284. package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +4 -0
  285. package/dist/bin/shell/chunks/chunk-SAF4OIHD.js +20 -0
  286. package/dist/bin/shell/chunks/chunk-SMLKRKMP.js +11 -0
  287. package/dist/bin/shell/chunks/chunk-SMSELHIY.js +12 -0
  288. package/dist/bin/shell/chunks/chunk-T74E2U4J.js +64 -0
  289. package/dist/bin/shell/chunks/chunk-UO5LOD7U.js +12 -0
  290. package/dist/bin/shell/chunks/chunk-UOMNSQEZ.js +10 -0
  291. package/dist/bin/shell/chunks/chunk-UVKD35GR.js +9 -0
  292. package/dist/bin/shell/chunks/chunk-V2RP73X4.js +15 -0
  293. package/dist/bin/shell/chunks/chunk-VP3OTMHX.js +22 -0
  294. package/dist/bin/shell/chunks/chunk-VZK4FHWJ.js +3 -0
  295. package/dist/bin/shell/chunks/chunk-WDWNEHHE.js +9 -0
  296. package/dist/bin/shell/chunks/chunk-X4MX6EHF.js +6 -0
  297. package/dist/bin/shell/chunks/chunk-X5WRKSEU.js +101 -0
  298. package/dist/bin/shell/chunks/chunk-XBB73LFB.js +5 -0
  299. package/dist/bin/shell/chunks/chunk-XCUJL2AJ.js +141 -0
  300. package/dist/bin/shell/chunks/chunk-XHCCSVP6.js +9 -0
  301. package/dist/bin/shell/chunks/chunk-XJ37N3S5.js +7 -0
  302. package/dist/bin/shell/chunks/chunk-XPTYN6UE.js +8 -0
  303. package/dist/bin/shell/chunks/chunk-XRUDFQG5.js +7 -0
  304. package/dist/bin/shell/chunks/chunk-YJ5OCPSK.js +7 -0
  305. package/dist/bin/shell/chunks/chunk-YOIFOOGX.js +9 -0
  306. package/dist/bin/shell/chunks/chunk-YOKQNNQO.js +6 -0
  307. package/dist/bin/shell/chunks/chunk-YR32XGKD.js +3 -0
  308. package/dist/bin/shell/chunks/chunk-YUZRUF5F.js +10 -0
  309. package/dist/bin/shell/chunks/chunk-YY5PJR7O.js +7 -0
  310. package/dist/bin/shell/chunks/chunk-ZAMAXG5K.js +85 -0
  311. package/dist/bin/shell/chunks/chunk-ZFUVUYWG.js +15 -0
  312. package/dist/bin/shell/chunks/clear-FGNEKYDU.js +3 -0
  313. package/dist/bin/shell/chunks/column-AQB3A3PJ.js +3 -0
  314. package/dist/bin/shell/chunks/comm-Q4VDF6ZO.js +3 -0
  315. package/dist/bin/shell/chunks/cp-HYXTMN3D.js +3 -0
  316. package/dist/bin/shell/chunks/curl-PLHETP4J.js +27 -0
  317. package/dist/bin/shell/chunks/cut-ZI2HIAW7.js +3 -0
  318. package/dist/bin/shell/chunks/date-OFYBOAUE.js +3 -0
  319. package/dist/bin/shell/chunks/diff-TL7IV4S2.js +3 -0
  320. package/dist/bin/shell/chunks/dirname-VCINTLPD.js +3 -0
  321. package/dist/bin/shell/chunks/du-4LRQIGRG.js +3 -0
  322. package/dist/bin/shell/chunks/echo-KCOHTNDF.js +3 -0
  323. package/dist/bin/shell/chunks/env-NY32PQJM.js +3 -0
  324. package/dist/bin/shell/chunks/expand-YYSO35NS.js +3 -0
  325. package/dist/bin/shell/chunks/expansion-YT6DLHRE.js +3 -0
  326. package/dist/bin/shell/chunks/expr-XNBNPKSF.js +3 -0
  327. package/dist/bin/shell/chunks/file-U4GYVT3G.js +3 -0
  328. package/dist/bin/shell/chunks/find-CZ6UMSZX.js +3 -0
  329. package/dist/bin/shell/chunks/flag-coverage-MPBSMQIN.js +3 -0
  330. package/dist/bin/shell/chunks/fold-5MF7QZWQ.js +3 -0
  331. package/dist/bin/shell/chunks/grep-JCHLTP7S.js +3 -0
  332. package/dist/bin/shell/chunks/gzip-UGBQQKIH.js +3 -0
  333. package/dist/bin/shell/chunks/head-77V5O3RE.js +3 -0
  334. package/dist/bin/shell/chunks/help-CGUEOGXQ.js +3 -0
  335. package/dist/bin/shell/chunks/history-AQQWW3QB.js +3 -0
  336. package/dist/bin/shell/chunks/hostname-USNWOQCK.js +3 -0
  337. package/dist/bin/shell/chunks/html-to-markdown-PHASM44U.js +3 -0
  338. package/dist/bin/shell/chunks/join-EJ73DYTK.js +3 -0
  339. package/dist/bin/shell/chunks/jq-W6KOII4Y.js +3 -0
  340. package/dist/bin/shell/chunks/js-exec-BC6NI55L.js +98 -0
  341. package/dist/bin/shell/chunks/ln-LP4HMCSM.js +3 -0
  342. package/dist/bin/shell/chunks/ls-YGNSAGDK.js +3 -0
  343. package/dist/bin/shell/chunks/md5sum-MCVDIB35.js +3 -0
  344. package/dist/bin/shell/chunks/mkdir-P4DKRCDX.js +3 -0
  345. package/dist/bin/shell/chunks/mv-QQK4FQX6.js +3 -0
  346. package/dist/bin/shell/chunks/nl-KUPLVCTS.js +3 -0
  347. package/dist/bin/shell/chunks/od-YQ5ZUI2H.js +3 -0
  348. package/dist/bin/shell/chunks/paste-A5KKPWXX.js +3 -0
  349. package/dist/bin/shell/chunks/printf-XXZMDRGE.js +3 -0
  350. package/dist/bin/shell/chunks/pwd-FCNDA467.js +3 -0
  351. package/dist/bin/shell/chunks/python3-BQWDPUBM.js +13 -0
  352. package/dist/bin/shell/chunks/readlink-25V57VOL.js +3 -0
  353. package/dist/bin/shell/chunks/rev-PYHOZ4D4.js +3 -0
  354. package/dist/bin/shell/chunks/rg-OHJSRKFS.js +3 -0
  355. package/dist/bin/shell/chunks/rm-ECNUFR66.js +3 -0
  356. package/dist/bin/shell/chunks/rmdir-DLOHIA7Q.js +3 -0
  357. package/dist/bin/shell/chunks/sed-4GRUPTAO.js +3 -0
  358. package/dist/bin/shell/chunks/seq-UXDJE6FB.js +3 -0
  359. package/dist/bin/shell/chunks/sha1sum-4KF52U3Y.js +3 -0
  360. package/dist/bin/shell/chunks/sha256sum-6YEPULPX.js +3 -0
  361. package/dist/bin/shell/chunks/sleep-QHAPNY3Q.js +3 -0
  362. package/dist/bin/shell/chunks/sort-4C6WOKNK.js +3 -0
  363. package/dist/bin/shell/chunks/split-TV7NL7LA.js +3 -0
  364. package/dist/bin/shell/chunks/sqlite3-W777NCI4.js +3 -0
  365. package/dist/bin/shell/chunks/stat-BD6KT3BP.js +3 -0
  366. package/dist/bin/shell/chunks/strings-MDD72LR6.js +3 -0
  367. package/dist/bin/shell/chunks/tac-C2N4NQ6S.js +3 -0
  368. package/dist/bin/shell/chunks/tail-LGNECVQA.js +3 -0
  369. package/dist/bin/shell/chunks/tar-K6HVPBVB.js +3 -0
  370. package/dist/bin/shell/chunks/tee-UQHPO4OW.js +3 -0
  371. package/dist/bin/shell/chunks/time-ZPY52VT2.js +3 -0
  372. package/dist/bin/shell/chunks/timeout-5AX3ZS3X.js +3 -0
  373. package/dist/bin/shell/chunks/touch-DFGSVIX7.js +3 -0
  374. package/dist/bin/shell/chunks/tr-G7K6M6HP.js +3 -0
  375. package/dist/bin/shell/chunks/tree-6D7SMPUR.js +3 -0
  376. package/dist/bin/shell/chunks/true-SKL4L7JP.js +3 -0
  377. package/dist/bin/shell/chunks/unexpand-QIR4EDPG.js +3 -0
  378. package/dist/bin/shell/chunks/uniq-I7PVFJR4.js +3 -0
  379. package/dist/bin/shell/chunks/wc-6NGWULAP.js +3 -0
  380. package/dist/bin/shell/chunks/which-LCXKCLFC.js +3 -0
  381. package/dist/bin/shell/chunks/whoami-TZDZDU7T.js +3 -0
  382. package/dist/bin/shell/chunks/xan-LGEJUGOM.js +3 -0
  383. package/dist/bin/shell/chunks/xan-view-L75WEJE2.js +3 -0
  384. package/dist/bin/shell/chunks/xargs-UWHPYLY7.js +3 -0
  385. package/dist/bin/shell/chunks/yq-V6YWS23E.js +3 -0
  386. package/dist/bin/shell/shell.js +757 -0
  387. package/dist/browser.d.ts +23 -0
  388. package/dist/bundle/browser.js +1546 -0
  389. package/dist/bundle/chunks/alias-RTYYYW3D.js +2 -0
  390. package/dist/bundle/chunks/awk2-GS47M5U7.js +2 -0
  391. package/dist/bundle/chunks/base64-C2AIWVNC.js +2 -0
  392. package/dist/bundle/chunks/basename-UB3CIYNI.js +2 -0
  393. package/dist/bundle/chunks/bash-YZ33HQZQ.js +2 -0
  394. package/dist/bundle/chunks/cat-TSFMZVYS.js +2 -0
  395. package/dist/bundle/chunks/chmod-TFEPA42X.js +2 -0
  396. package/dist/bundle/chunks/chunk-27JIFWUR.js +3 -0
  397. package/dist/bundle/chunks/chunk-2JIPICV3.js +13 -0
  398. package/dist/bundle/chunks/chunk-2SMD2AUA.js +3 -0
  399. package/dist/bundle/chunks/chunk-2VDTE5BV.js +14 -0
  400. package/dist/bundle/chunks/chunk-2VJJEDV2.js +8 -0
  401. package/dist/bundle/chunks/chunk-4JLVZKHC.js +8 -0
  402. package/dist/bundle/chunks/chunk-4MZPEZTU.js +3 -0
  403. package/dist/bundle/chunks/chunk-4N6J7B5P.js +6 -0
  404. package/dist/bundle/chunks/chunk-4WKZNNJK.js +2 -0
  405. package/dist/bundle/chunks/chunk-5A3ZCIHP.js +2 -0
  406. package/dist/bundle/chunks/chunk-5H5SCKJM.js +11 -0
  407. package/dist/bundle/chunks/chunk-5IFY2NZJ.js +19 -0
  408. package/dist/bundle/chunks/chunk-6LASZU3O.js +5 -0
  409. package/dist/bundle/chunks/chunk-6SHYIICL.js +4 -0
  410. package/dist/bundle/chunks/chunk-6VAT5Z2D.js +5 -0
  411. package/dist/bundle/chunks/chunk-7AISL3XV.js +12 -0
  412. package/dist/bundle/chunks/chunk-7EUWTCWK.js +2 -0
  413. package/dist/bundle/chunks/chunk-7F47ISLI.js +33 -0
  414. package/dist/bundle/chunks/chunk-7JHM3L42.js +6 -0
  415. package/dist/bundle/chunks/chunk-A4R2GWRF.js +9 -0
  416. package/dist/bundle/chunks/chunk-AA63C4TN.js +23 -0
  417. package/dist/bundle/chunks/chunk-ACSZB4FE.js +11 -0
  418. package/dist/bundle/chunks/chunk-BOZLBWPL.js +100 -0
  419. package/dist/bundle/chunks/chunk-BU36VZYL.js +4 -0
  420. package/dist/bundle/chunks/chunk-BVKWRAS6.js +12 -0
  421. package/dist/bundle/chunks/chunk-BXERNLCU.js +33 -0
  422. package/dist/bundle/chunks/chunk-BZUGFHVS.js +2 -0
  423. package/dist/bundle/chunks/chunk-CBJVD2XA.js +7 -0
  424. package/dist/bundle/chunks/chunk-CN5XGDNN.js +6 -0
  425. package/dist/bundle/chunks/chunk-DLL7UR66.js +2 -0
  426. package/dist/bundle/chunks/chunk-DVHZ434T.js +10 -0
  427. package/dist/bundle/chunks/chunk-EBAPSGAO.js +9 -0
  428. package/dist/bundle/chunks/chunk-EXLJT6MD.js +140 -0
  429. package/dist/bundle/chunks/chunk-FAXLQUCQ.js +10 -0
  430. package/dist/bundle/chunks/chunk-FE7TPM5F.js +79 -0
  431. package/dist/bundle/chunks/chunk-FHC24QSK.js +7 -0
  432. package/dist/bundle/chunks/chunk-FJK43EBQ.js +14 -0
  433. package/dist/bundle/chunks/chunk-FOCWZZDE.js +2 -0
  434. package/dist/bundle/chunks/chunk-FW54FHZR.js +2 -0
  435. package/dist/bundle/chunks/chunk-FX4RBUYU.js +5 -0
  436. package/dist/bundle/chunks/chunk-FZRQOL3C.js +7 -0
  437. package/dist/bundle/chunks/chunk-GGC5NEPZ.js +8 -0
  438. package/dist/bundle/chunks/chunk-GJC3WVOW.js +2 -0
  439. package/dist/bundle/chunks/chunk-GSPYNYZA.js +6 -0
  440. package/dist/bundle/chunks/chunk-HBVMHTO5.js +2 -0
  441. package/dist/bundle/chunks/chunk-HDRAUQK2.js +2 -0
  442. package/dist/bundle/chunks/chunk-HJBTD7PY.js +21 -0
  443. package/dist/bundle/chunks/chunk-ICIEVHY5.js +36 -0
  444. package/dist/bundle/chunks/chunk-J2XQNA2Z.js +8 -0
  445. package/dist/bundle/chunks/chunk-JYUAM3H7.js +16 -0
  446. package/dist/bundle/chunks/chunk-KD3KENL6.js +11 -0
  447. package/dist/bundle/chunks/chunk-KWGBQNTV.js +32 -0
  448. package/dist/bundle/chunks/chunk-KXUUKRXD.js +2 -0
  449. package/dist/bundle/chunks/chunk-L2UW7DWF.js +2 -0
  450. package/dist/bundle/chunks/chunk-L64BMZUV.js +2 -0
  451. package/dist/bundle/chunks/chunk-L66DE7G5.js +21 -0
  452. package/dist/bundle/chunks/chunk-LPJEKUCB.js +8 -0
  453. package/dist/bundle/chunks/chunk-LSLPJOYM.js +3 -0
  454. package/dist/bundle/chunks/chunk-LWXDWLMH.js +14 -0
  455. package/dist/bundle/chunks/chunk-MFDPAVC6.js +14 -0
  456. package/dist/bundle/chunks/chunk-MLIO3BK2.js +7 -0
  457. package/dist/bundle/chunks/chunk-MQKGGNPS.js +16 -0
  458. package/dist/bundle/chunks/chunk-NRSASXYY.js +2 -0
  459. package/dist/bundle/chunks/chunk-OGJ5CFPR.js +9 -0
  460. package/dist/bundle/chunks/chunk-OVGANXCG.js +8 -0
  461. package/dist/bundle/chunks/chunk-QAYAQNCG.js +23 -0
  462. package/dist/bundle/chunks/chunk-QIQMJJZ4.js +4 -0
  463. package/dist/bundle/chunks/chunk-R4IFXNY5.js +28 -0
  464. package/dist/bundle/chunks/chunk-R74UQCKX.js +5 -0
  465. package/dist/bundle/chunks/chunk-RBQG6ZUG.js +3 -0
  466. package/dist/bundle/chunks/chunk-S3LEJEPP.js +2 -0
  467. package/dist/bundle/chunks/chunk-S443BAN4.js +7 -0
  468. package/dist/bundle/chunks/chunk-SBBYKIYU.js +3 -0
  469. package/dist/bundle/chunks/chunk-SETW5JBN.js +9 -0
  470. package/dist/bundle/chunks/chunk-SHKOQWO4.js +3 -0
  471. package/dist/bundle/chunks/chunk-SJYEXC2Z.js +14 -0
  472. package/dist/bundle/chunks/chunk-STHBFACM.js +1 -0
  473. package/dist/bundle/chunks/chunk-SX2HC7SO.js +2 -0
  474. package/dist/bundle/chunks/chunk-T3EYGW4N.js +63 -0
  475. package/dist/bundle/chunks/chunk-T4TFLF3R.js +16 -0
  476. package/dist/bundle/chunks/chunk-TDD4NFYE.js +2 -0
  477. package/dist/bundle/chunks/chunk-TN7HHBQW.js +5 -0
  478. package/dist/bundle/chunks/chunk-U73A73IE.js +17 -0
  479. package/dist/bundle/chunks/chunk-UIJUTQPH.js +3 -0
  480. package/dist/bundle/chunks/chunk-UP6MSJGD.js +17 -0
  481. package/dist/bundle/chunks/chunk-UURAZSVT.js +10 -0
  482. package/dist/bundle/chunks/chunk-V6PSIUPR.js +11 -0
  483. package/dist/bundle/chunks/chunk-V77XGLKX.js +5 -0
  484. package/dist/bundle/chunks/chunk-VBRPS3D5.js +2 -0
  485. package/dist/bundle/chunks/chunk-VLCHOJWK.js +6 -0
  486. package/dist/bundle/chunks/chunk-W5DWRFSU.js +2 -0
  487. package/dist/bundle/chunks/chunk-WM5IJFMP.js +8 -0
  488. package/dist/bundle/chunks/chunk-WN7T6YIH.js +287 -0
  489. package/dist/bundle/chunks/chunk-WNH3HOQA.js +2 -0
  490. package/dist/bundle/chunks/chunk-WPGQVBSY.js +6 -0
  491. package/dist/bundle/chunks/chunk-XCQWV4AU.js +12 -0
  492. package/dist/bundle/chunks/chunk-XHLMAZX2.js +5 -0
  493. package/dist/bundle/chunks/chunk-XRFHFXFP.js +2 -0
  494. package/dist/bundle/chunks/chunk-Y4LIDHSD.js +7 -0
  495. package/dist/bundle/chunks/chunk-Y4SO5AJF.js +16 -0
  496. package/dist/bundle/chunks/chunk-YCLFEX4T.js +3 -0
  497. package/dist/bundle/chunks/chunk-YRXX457F.js +6 -0
  498. package/dist/bundle/chunks/chunk-YS4NUBYX.js +9 -0
  499. package/dist/bundle/chunks/chunk-ZDIT6ST5.js +7 -0
  500. package/dist/bundle/chunks/chunk-ZDPFA4L3.js +6 -0
  501. package/dist/bundle/chunks/chunk-ZLAEZD2P.js +21 -0
  502. package/dist/bundle/chunks/clear-HKGFEOF6.js +2 -0
  503. package/dist/bundle/chunks/column-XT6UFXNQ.js +2 -0
  504. package/dist/bundle/chunks/comm-VV2LDX2J.js +2 -0
  505. package/dist/bundle/chunks/cp-BISAAS7A.js +2 -0
  506. package/dist/bundle/chunks/curl-GRYA74XW.js +26 -0
  507. package/dist/bundle/chunks/cut-OKARJCCV.js +2 -0
  508. package/dist/bundle/chunks/date-XKUEQ4WF.js +2 -0
  509. package/dist/bundle/chunks/diff-MWJFIG7X.js +2 -0
  510. package/dist/bundle/chunks/dirname-MPHRFUTI.js +2 -0
  511. package/dist/bundle/chunks/du-572XNP42.js +2 -0
  512. package/dist/bundle/chunks/echo-NDWZZHPO.js +2 -0
  513. package/dist/bundle/chunks/env-36M5BO7M.js +2 -0
  514. package/dist/bundle/chunks/expand-JSPG6VOP.js +2 -0
  515. package/dist/bundle/chunks/expansion-2O6WLRBD.js +2 -0
  516. package/dist/bundle/chunks/expr-6MFJ5XZG.js +2 -0
  517. package/dist/bundle/chunks/file-55SY74D5.js +2 -0
  518. package/dist/bundle/chunks/find-BKC2BIAO.js +2 -0
  519. package/dist/bundle/chunks/flag-coverage-4GZNBF47.js +2 -0
  520. package/dist/bundle/chunks/fold-4TQNYMSW.js +2 -0
  521. package/dist/bundle/chunks/grep-2ILJFW6Y.js +2 -0
  522. package/dist/bundle/chunks/gzip-O5ASJAFY.js +2 -0
  523. package/dist/bundle/chunks/head-BALRBIDD.js +2 -0
  524. package/dist/bundle/chunks/help-HZ6M2CKN.js +2 -0
  525. package/dist/bundle/chunks/history-WYYKSLSZ.js +2 -0
  526. package/dist/bundle/chunks/hostname-C4HQXXUP.js +2 -0
  527. package/dist/bundle/chunks/html-to-markdown-JW4MSQZO.js +2 -0
  528. package/dist/bundle/chunks/join-TBRGI3LQ.js +2 -0
  529. package/dist/bundle/chunks/jq-QLLVLUWT.js +2 -0
  530. package/dist/bundle/chunks/js-exec-N5KEZBH7.js +97 -0
  531. package/dist/bundle/chunks/js-exec-worker.js +4639 -0
  532. package/dist/bundle/chunks/ln-4LGSXXGD.js +2 -0
  533. package/dist/bundle/chunks/ls-ZJGQER7M.js +2 -0
  534. package/dist/bundle/chunks/md5sum-SPU24VSG.js +2 -0
  535. package/dist/bundle/chunks/mkdir-MEPGZOB6.js +2 -0
  536. package/dist/bundle/chunks/mv-W5BIQ646.js +2 -0
  537. package/dist/bundle/chunks/nl-WSDW7I4O.js +2 -0
  538. package/dist/bundle/chunks/od-WOKFDJTP.js +2 -0
  539. package/dist/bundle/chunks/paste-7JC6S4DX.js +2 -0
  540. package/dist/bundle/chunks/printf-I2B4W2XW.js +2 -0
  541. package/dist/bundle/chunks/pwd-WE6EN5AV.js +2 -0
  542. package/dist/bundle/chunks/python3-POMOR4OA.js +12 -0
  543. package/dist/bundle/chunks/readlink-OPJF4DL5.js +2 -0
  544. package/dist/bundle/chunks/rev-5EHFX4EJ.js +2 -0
  545. package/dist/bundle/chunks/rg-X6MJUOKW.js +2 -0
  546. package/dist/bundle/chunks/rm-SSGETQVQ.js +2 -0
  547. package/dist/bundle/chunks/rmdir-OC4ZLPYA.js +2 -0
  548. package/dist/bundle/chunks/sed-JWIN756M.js +2 -0
  549. package/dist/bundle/chunks/seq-M5EC7Q57.js +2 -0
  550. package/dist/bundle/chunks/sha1sum-2PTOAFR6.js +2 -0
  551. package/dist/bundle/chunks/sha256sum-NS7D3IXX.js +2 -0
  552. package/dist/bundle/chunks/sleep-X22JJINO.js +2 -0
  553. package/dist/bundle/chunks/sort-SW2YEO5B.js +2 -0
  554. package/dist/bundle/chunks/split-4KKZZXXE.js +2 -0
  555. package/dist/bundle/chunks/sqlite3-CGOEFJAO.js +2 -0
  556. package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
  557. package/dist/bundle/chunks/stat-CD34IZ4P.js +2 -0
  558. package/dist/bundle/chunks/strings-6WDHLGMX.js +2 -0
  559. package/dist/bundle/chunks/tac-2STMMJYW.js +2 -0
  560. package/dist/bundle/chunks/tail-3JSKDTET.js +2 -0
  561. package/dist/bundle/chunks/tar-WT6S4IJX.js +2 -0
  562. package/dist/bundle/chunks/tee-YUZ2FKCJ.js +2 -0
  563. package/dist/bundle/chunks/time-D4LNBSWX.js +2 -0
  564. package/dist/bundle/chunks/timeout-YDCRSLPQ.js +2 -0
  565. package/dist/bundle/chunks/touch-UA33VN3N.js +2 -0
  566. package/dist/bundle/chunks/tr-36LHWFRQ.js +2 -0
  567. package/dist/bundle/chunks/tree-YLD52CNT.js +2 -0
  568. package/dist/bundle/chunks/true-FHQXJXBE.js +2 -0
  569. package/dist/bundle/chunks/unexpand-CADSA4VO.js +2 -0
  570. package/dist/bundle/chunks/uniq-XSIZR6PB.js +2 -0
  571. package/dist/bundle/chunks/wc-LF7NU4LA.js +2 -0
  572. package/dist/bundle/chunks/which-XEM24D5D.js +2 -0
  573. package/dist/bundle/chunks/whoami-XMTX52VE.js +2 -0
  574. package/dist/bundle/chunks/worker.js +3150 -0
  575. package/dist/bundle/chunks/xan-5D7XBVRF.js +2 -0
  576. package/dist/bundle/chunks/xan-view-P7JTBY6N.js +2 -0
  577. package/dist/bundle/chunks/xargs-MGZPH7AX.js +2 -0
  578. package/dist/bundle/chunks/yq-6N2YNRZS.js +2 -0
  579. package/dist/bundle/index.cjs +2209 -0
  580. package/dist/bundle/index.js +733 -0
  581. package/dist/commands/alias/alias.d.ts +6 -0
  582. package/dist/commands/awk/ast.d.ts +202 -0
  583. package/dist/commands/awk/awk2.d.ts +9 -0
  584. package/dist/commands/awk/builtins.d.ts +17 -0
  585. package/dist/commands/awk/interpreter/context.d.ts +75 -0
  586. package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
  587. package/dist/commands/awk/interpreter/fields.d.ts +25 -0
  588. package/dist/commands/awk/interpreter/index.d.ts +8 -0
  589. package/dist/commands/awk/interpreter/interpreter.d.ts +54 -0
  590. package/dist/commands/awk/interpreter/statements.d.ts +11 -0
  591. package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
  592. package/dist/commands/awk/interpreter/types.d.ts +13 -0
  593. package/dist/commands/awk/interpreter/variables.d.ts +35 -0
  594. package/dist/commands/awk/lexer.d.ts +100 -0
  595. package/dist/commands/awk/parser2-print.d.ts +35 -0
  596. package/dist/commands/awk/parser2.d.ts +81 -0
  597. package/dist/commands/base64/base64.d.ts +7 -0
  598. package/dist/commands/basename/basename.d.ts +4 -0
  599. package/dist/commands/bash/bash.d.ts +6 -0
  600. package/dist/commands/browser-excluded.d.ts +16 -0
  601. package/dist/commands/cat/cat.d.ts +4 -0
  602. package/dist/commands/chmod/chmod.d.ts +4 -0
  603. package/dist/commands/clear/clear.d.ts +4 -0
  604. package/dist/commands/column/column.d.ts +11 -0
  605. package/dist/commands/comm/comm.d.ts +12 -0
  606. package/dist/commands/cp/cp.d.ts +4 -0
  607. package/dist/commands/curl/curl.d.ts +8 -0
  608. package/dist/commands/curl/form.d.ts +21 -0
  609. package/dist/commands/curl/help.d.ts +9 -0
  610. package/dist/commands/curl/parse.d.ts +9 -0
  611. package/dist/commands/curl/response-formatting.d.ts +20 -0
  612. package/dist/commands/curl/types.d.ts +60 -0
  613. package/dist/commands/cut/cut.d.ts +4 -0
  614. package/dist/commands/date/date.d.ts +7 -0
  615. package/dist/commands/diff/diff.d.ts +7 -0
  616. package/dist/commands/dirname/dirname.d.ts +4 -0
  617. package/dist/commands/du/du.d.ts +4 -0
  618. package/dist/commands/duration.d.ts +5 -0
  619. package/dist/commands/echo/echo.d.ts +4 -0
  620. package/dist/commands/env/env.d.ts +6 -0
  621. package/dist/commands/expand/expand.d.ts +12 -0
  622. package/dist/commands/expand/unexpand.d.ts +12 -0
  623. package/dist/commands/expr/expr.d.ts +9 -0
  624. package/dist/commands/file/file.d.ts +9 -0
  625. package/dist/commands/find/find.d.ts +4 -0
  626. package/dist/commands/find/matcher.d.ts +69 -0
  627. package/dist/commands/find/parser.d.ts +2 -0
  628. package/dist/commands/find/types.d.ts +88 -0
  629. package/dist/commands/flag-coverage.d.ts +2 -0
  630. package/dist/commands/fold/fold.d.ts +12 -0
  631. package/dist/commands/format-mode.d.ts +4 -0
  632. package/dist/commands/fuzz-flags-types.d.ts +17 -0
  633. package/dist/commands/fuzz-flags.d.ts +8 -0
  634. package/dist/commands/grep/grep.d.ts +8 -0
  635. package/dist/commands/gzip/gzip.d.ts +13 -0
  636. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  637. package/dist/commands/head/head.d.ts +4 -0
  638. package/dist/commands/help/help.d.ts +4 -0
  639. package/dist/commands/help.d.ts +16 -0
  640. package/dist/commands/history/history.d.ts +4 -0
  641. package/dist/commands/hostname/hostname.d.ts +11 -0
  642. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
  643. package/dist/commands/index.d.ts +1 -0
  644. package/dist/commands/join/join.d.ts +12 -0
  645. package/dist/commands/jq/jq.d.ts +9 -0
  646. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  647. package/dist/commands/js-exec/js-exec-worker.d.ts +32 -0
  648. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  649. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  650. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  651. package/dist/commands/ln/ln.d.ts +4 -0
  652. package/dist/commands/ls/ls.d.ts +4 -0
  653. package/dist/commands/md5sum/checksum.d.ts +7 -0
  654. package/dist/commands/md5sum/md5sum.d.ts +4 -0
  655. package/dist/commands/md5sum/sha1sum.d.ts +4 -0
  656. package/dist/commands/md5sum/sha256sum.d.ts +4 -0
  657. package/dist/commands/mkdir/mkdir.d.ts +4 -0
  658. package/dist/commands/mv/mv.d.ts +4 -0
  659. package/dist/commands/nl/nl.d.ts +12 -0
  660. package/dist/commands/od/od.d.ts +12 -0
  661. package/dist/commands/paste/paste.d.ts +4 -0
  662. package/dist/commands/printf/escapes.d.ts +25 -0
  663. package/dist/commands/printf/printf.d.ts +4 -0
  664. package/dist/commands/printf/strftime.d.ts +9 -0
  665. package/dist/commands/pwd/pwd.d.ts +4 -0
  666. package/dist/commands/python3/python3.d.ts +16 -0
  667. package/dist/commands/python3/worker.d.ts +28 -0
  668. package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
  669. package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
  670. package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
  671. package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
  672. package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
  673. package/dist/commands/query-engine/builtins/index.d.ts +17 -0
  674. package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
  675. package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
  676. package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
  677. package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
  678. package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
  679. package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
  680. package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
  681. package/dist/commands/query-engine/evaluator.d.ts +40 -0
  682. package/dist/commands/query-engine/index.d.ts +8 -0
  683. package/dist/commands/query-engine/parser-types.d.ts +171 -0
  684. package/dist/commands/query-engine/parser.d.ts +9 -0
  685. package/dist/commands/query-engine/path-operations.d.ts +15 -0
  686. package/dist/commands/query-engine/safe-object.d.ts +83 -0
  687. package/dist/commands/query-engine/value-operations.d.ts +41 -0
  688. package/dist/commands/readlink/readlink.d.ts +4 -0
  689. package/dist/commands/registry.d.ts +56 -0
  690. package/dist/commands/rev/rev.d.ts +13 -0
  691. package/dist/commands/rg/file-types.d.ts +49 -0
  692. package/dist/commands/rg/gitignore.d.ts +98 -0
  693. package/dist/commands/rg/rg-options.d.ts +61 -0
  694. package/dist/commands/rg/rg-parser.d.ts +20 -0
  695. package/dist/commands/rg/rg-search.d.ts +15 -0
  696. package/dist/commands/rg/rg.d.ts +14 -0
  697. package/dist/commands/rm/rm.d.ts +4 -0
  698. package/dist/commands/rmdir/rmdir.d.ts +4 -0
  699. package/dist/commands/search-engine/index.d.ts +10 -0
  700. package/dist/commands/search-engine/matcher.d.ts +66 -0
  701. package/dist/commands/search-engine/regex.d.ts +46 -0
  702. package/dist/commands/sed/executor.d.ts +7 -0
  703. package/dist/commands/sed/lexer.d.ts +86 -0
  704. package/dist/commands/sed/parser.d.ts +18 -0
  705. package/dist/commands/sed/sed-regex.d.ts +23 -0
  706. package/dist/commands/sed/sed.d.ts +4 -0
  707. package/dist/commands/sed/types.d.ts +216 -0
  708. package/dist/commands/seq/seq.d.ts +16 -0
  709. package/dist/commands/sleep/sleep.d.ts +4 -0
  710. package/dist/commands/sort/comparator.d.ts +9 -0
  711. package/dist/commands/sort/parser.d.ts +11 -0
  712. package/dist/commands/sort/sort.d.ts +4 -0
  713. package/dist/commands/sort/types.d.ts +30 -0
  714. package/dist/commands/split/split.d.ts +12 -0
  715. package/dist/commands/sqlite3/formatters.d.ts +15 -0
  716. package/dist/commands/sqlite3/sqlite3.d.ts +23 -0
  717. package/dist/commands/sqlite3/worker.d.ts +45 -0
  718. package/dist/commands/sqlite3/worker.js +1728 -0
  719. package/dist/commands/stat/stat.d.ts +4 -0
  720. package/dist/commands/strings/strings.d.ts +12 -0
  721. package/dist/commands/tac/tac.d.ts +11 -0
  722. package/dist/commands/tail/tail.d.ts +4 -0
  723. package/dist/commands/tar/archive.d.ts +135 -0
  724. package/dist/commands/tar/bzip2-compress.d.ts +17 -0
  725. package/dist/commands/tar/tar-options.d.ts +37 -0
  726. package/dist/commands/tar/tar.d.ts +10 -0
  727. package/dist/commands/tee/tee.d.ts +4 -0
  728. package/dist/commands/time/time.d.ts +27 -0
  729. package/dist/commands/timeout/timeout.d.ts +4 -0
  730. package/dist/commands/touch/touch.d.ts +4 -0
  731. package/dist/commands/tr/tr.d.ts +4 -0
  732. package/dist/commands/tree/tree.d.ts +4 -0
  733. package/dist/commands/true/true.d.ts +6 -0
  734. package/dist/commands/uniq/uniq.d.ts +4 -0
  735. package/dist/commands/wc/wc.d.ts +4 -0
  736. package/dist/commands/which/which.d.ts +4 -0
  737. package/dist/commands/whoami/whoami.d.ts +11 -0
  738. package/dist/commands/worker-bridge/bridge-handler.d.ts +73 -0
  739. package/dist/commands/worker-bridge/protocol.d.ts +141 -0
  740. package/dist/commands/worker-bridge/sync-backend.d.ts +86 -0
  741. package/dist/commands/xan/aggregation.d.ts +20 -0
  742. package/dist/commands/xan/column-selection.d.ts +19 -0
  743. package/dist/commands/xan/csv.d.ts +37 -0
  744. package/dist/commands/xan/moonblade-parser.d.ts +80 -0
  745. package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
  746. package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
  747. package/dist/commands/xan/subcommands.d.ts +15 -0
  748. package/dist/commands/xan/xan-agg.d.ts +8 -0
  749. package/dist/commands/xan/xan-columns.d.ts +8 -0
  750. package/dist/commands/xan/xan-core.d.ts +10 -0
  751. package/dist/commands/xan/xan-data.d.ts +52 -0
  752. package/dist/commands/xan/xan-filter.d.ts +8 -0
  753. package/dist/commands/xan/xan-map.d.ts +11 -0
  754. package/dist/commands/xan/xan-reshape.d.ts +40 -0
  755. package/dist/commands/xan/xan-simple.d.ts +40 -0
  756. package/dist/commands/xan/xan-view.d.ts +12 -0
  757. package/dist/commands/xan/xan.d.ts +10 -0
  758. package/dist/commands/xargs/xargs.d.ts +4 -0
  759. package/dist/commands/yq/formats.d.ts +64 -0
  760. package/dist/commands/yq/yq.d.ts +13 -0
  761. package/dist/custom-commands.d.ts +42 -0
  762. package/dist/encoding.d.ts +115 -0
  763. package/dist/fs/encoding.d.ts +17 -0
  764. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +75 -0
  765. package/dist/fs/in-memory-fs/index.d.ts +1 -0
  766. package/dist/fs/init.d.ts +22 -0
  767. package/dist/fs/interface.d.ts +251 -0
  768. package/dist/fs/mountable-fs/index.d.ts +1 -0
  769. package/dist/fs/mountable-fs/mountable-fs.d.ts +118 -0
  770. package/dist/fs/overlay-fs/index.d.ts +1 -0
  771. package/dist/fs/overlay-fs/overlay-fs.d.ts +165 -0
  772. package/dist/fs/path-utils.d.ts +46 -0
  773. package/dist/fs/read-write-fs/index.d.ts +1 -0
  774. package/dist/fs/read-write-fs/read-write-fs.d.ts +98 -0
  775. package/dist/fs/real-fs-utils.d.ts +90 -0
  776. package/dist/fs/sanitize-error.d.ts +19 -0
  777. package/dist/index.d.cts +29 -0
  778. package/dist/index.d.ts +29 -0
  779. package/dist/interpreter/alias-expansion.d.ts +23 -0
  780. package/dist/interpreter/arithmetic.d.ts +24 -0
  781. package/dist/interpreter/assignment-expansion.d.ts +24 -0
  782. package/dist/interpreter/builtin-dispatch.d.ts +39 -0
  783. package/dist/interpreter/builtins/break.d.ts +6 -0
  784. package/dist/interpreter/builtins/cd.d.ts +6 -0
  785. package/dist/interpreter/builtins/compgen.d.ts +26 -0
  786. package/dist/interpreter/builtins/complete.d.ts +17 -0
  787. package/dist/interpreter/builtins/compopt.d.ts +28 -0
  788. package/dist/interpreter/builtins/continue.d.ts +6 -0
  789. package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
  790. package/dist/interpreter/builtins/declare-print.d.ts +39 -0
  791. package/dist/interpreter/builtins/declare.d.ts +35 -0
  792. package/dist/interpreter/builtins/dirs.d.ts +29 -0
  793. package/dist/interpreter/builtins/eval.d.ts +9 -0
  794. package/dist/interpreter/builtins/exit.d.ts +5 -0
  795. package/dist/interpreter/builtins/export.d.ts +14 -0
  796. package/dist/interpreter/builtins/getopts.d.ts +18 -0
  797. package/dist/interpreter/builtins/hash.d.ts +19 -0
  798. package/dist/interpreter/builtins/help.d.ts +12 -0
  799. package/dist/interpreter/builtins/index.d.ts +45 -0
  800. package/dist/interpreter/builtins/let.d.ts +18 -0
  801. package/dist/interpreter/builtins/local.d.ts +6 -0
  802. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  803. package/dist/interpreter/builtins/read.d.ts +6 -0
  804. package/dist/interpreter/builtins/return.d.ts +6 -0
  805. package/dist/interpreter/builtins/set.d.ts +9 -0
  806. package/dist/interpreter/builtins/shift.d.ts +15 -0
  807. package/dist/interpreter/builtins/shopt.d.ts +7 -0
  808. package/dist/interpreter/builtins/source.d.ts +6 -0
  809. package/dist/interpreter/builtins/unset.d.ts +16 -0
  810. package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
  811. package/dist/interpreter/command-resolution.d.ts +43 -0
  812. package/dist/interpreter/conditionals.d.ts +17 -0
  813. package/dist/interpreter/control-flow.d.ts +21 -0
  814. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  815. package/dist/interpreter/errors.d.ts +167 -0
  816. package/dist/interpreter/expansion/analysis.d.ts +37 -0
  817. package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
  818. package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
  819. package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
  820. package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
  821. package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
  822. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  823. package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
  824. package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
  825. package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
  826. package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
  827. package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
  828. package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
  829. package/dist/interpreter/expansion/pattern.d.ts +23 -0
  830. package/dist/interpreter/expansion/positional-params.d.ts +59 -0
  831. package/dist/interpreter/expansion/prompt.d.ts +39 -0
  832. package/dist/interpreter/expansion/quoting.d.ts +13 -0
  833. package/dist/interpreter/expansion/tilde.d.ts +12 -0
  834. package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
  835. package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
  836. package/dist/interpreter/expansion/variable.d.ts +36 -0
  837. package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
  838. package/dist/interpreter/expansion/word-split.d.ts +29 -0
  839. package/dist/interpreter/expansion.d.ts +53 -0
  840. package/dist/interpreter/functions.d.ts +12 -0
  841. package/dist/interpreter/helpers/array.d.ts +43 -0
  842. package/dist/interpreter/helpers/condition.d.ts +22 -0
  843. package/dist/interpreter/helpers/errors.d.ts +8 -0
  844. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  845. package/dist/interpreter/helpers/ifs.d.ts +104 -0
  846. package/dist/interpreter/helpers/loop.d.ts +24 -0
  847. package/dist/interpreter/helpers/nameref.d.ts +65 -0
  848. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  849. package/dist/interpreter/helpers/quoting.d.ts +24 -0
  850. package/dist/interpreter/helpers/readonly.d.ts +45 -0
  851. package/dist/interpreter/helpers/regex.d.ts +8 -0
  852. package/dist/interpreter/helpers/result.d.ts +60 -0
  853. package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
  854. package/dist/interpreter/helpers/shellopts.d.ts +28 -0
  855. package/dist/interpreter/helpers/statements.d.ts +20 -0
  856. package/dist/interpreter/helpers/string-compare.d.ts +24 -0
  857. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  858. package/dist/interpreter/helpers/tilde.d.ts +13 -0
  859. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  860. package/dist/interpreter/helpers/word-matching.d.ts +26 -0
  861. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  862. package/dist/interpreter/helpers/xtrace.d.ts +18 -0
  863. package/dist/interpreter/index.d.ts +4 -0
  864. package/dist/interpreter/interpreter.d.ts +91 -0
  865. package/dist/interpreter/pipeline-execution.d.ts +16 -0
  866. package/dist/interpreter/redirections.d.ts +60 -0
  867. package/dist/interpreter/simple-command-assignments.d.ts +29 -0
  868. package/dist/interpreter/subshell-group.d.ts +32 -0
  869. package/dist/interpreter/type-command.d.ts +37 -0
  870. package/dist/interpreter/types.d.ts +393 -0
  871. package/dist/limits.d.ts +52 -0
  872. package/dist/network/allow-list/shared.d.ts +59 -0
  873. package/dist/network/allow-list.d.ts +59 -0
  874. package/dist/network/dns-pin.d.ts +43 -0
  875. package/dist/network/fetch.d.ts +25 -0
  876. package/dist/network/index.d.ts +7 -0
  877. package/dist/network/types.d.ts +155 -0
  878. package/dist/parser/arithmetic-parser.d.ts +23 -0
  879. package/dist/parser/arithmetic-primaries.d.ts +45 -0
  880. package/dist/parser/command-parser.d.ts +10 -0
  881. package/dist/parser/compound-parser.d.ts +28 -0
  882. package/dist/parser/conditional-parser.d.ts +8 -0
  883. package/dist/parser/expansion-parser.d.ts +16 -0
  884. package/dist/parser/lexer.d.ts +197 -0
  885. package/dist/parser/parser-substitution.d.ts +76 -0
  886. package/dist/parser/parser.d.ts +136 -0
  887. package/dist/parser/types.d.ts +25 -0
  888. package/dist/parser/word-parser.d.ts +33 -0
  889. package/dist/sandbox/Command.d.ts +35 -0
  890. package/dist/sandbox/Sandbox.d.ts +90 -0
  891. package/dist/sandbox/index.d.ts +2 -0
  892. package/dist/shell-metadata.d.ts +25 -0
  893. package/dist/timers.d.ts +4 -0
  894. package/dist/types.d.ts +248 -0
  895. package/dist/utils/args.d.ts +55 -0
  896. package/dist/utils/constants.d.ts +15 -0
  897. package/dist/utils/file-reader.d.ts +74 -0
  898. package/dist/utils/glob.d.ts +25 -0
  899. package/dist/vitest-setup.d.ts +1 -0
  900. package/package.json +188 -0
  901. package/vendor/cpython-emscripten/python.cjs +2 -0
  902. package/vendor/cpython-emscripten/python.wasm +0 -0
  903. package/vendor/cpython-emscripten/python313.zip +0 -0
@@ -0,0 +1,757 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{B as Qn,C as Jn,D as de,E as Ke,F as ee,G as Ae,H as Mt,I as er,J as T,K as tr,L as sr,M as Oe,N as Os,O as nt,P as B,a as Hn,b as As,c as Un,d as Lt,e as Q,f as V,g as Ee,h as ne,i as Ne,j as Ve,k as _s,l as Ft,m as Zn,n as Cs,o as qn,p as ve,q as xe,r as Gn,s as Kn,t as Ps,u as ks,v as Be,w as Xn,x as Yn,y as Se,z as Ns}from"./chunks/chunk-QPHXCMJV.js";import{a as tt,b as st,c as ze}from"./chunks/chunk-O2BCKSMK.js";import{c as Ss}from"./chunks/chunk-NYIPFY36.js";import{a as zn,b as Vn}from"./chunks/chunk-KRRM5UCC.js";import{a as We,b as we,c as Es}from"./chunks/chunk-MROECM42.js";import{a as bt,b as $s}from"./chunks/chunk-LNNWMRCB.js";import{a as qe,b as ye}from"./chunks/chunk-HL4ZS7TX.js";import{a as vt}from"./chunks/chunk-7GBHDJNC.js";import{b as Ge,d as Bn,e as vs}from"./chunks/chunk-VZK4FHWJ.js";import{a as ie,b as fe,c as le,d as pe,e as bs,f as Z,g as Fe,h as wt,i as It,j as jn,k as X,l as Rt,m as Me,n as Pe,o as xt,p as me}from"./chunks/chunk-UVKD35GR.js";import"./chunks/chunk-7JZKVC3F.js";import{a as ke}from"./chunks/chunk-PBOVSFTJ.js";import{a as ge}from"./chunks/chunk-I4IRHQDW.js";import{a as Wn}from"./chunks/chunk-LNVSXNT7.js";import*as Ki from"node:fs";import*as Xi from"node:readline";var rt=[{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-XXZMDRGE.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-YGNSAGDK.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-77V5O3RE.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-LGNECVQA.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-JCHLTP7S.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-JCHLTP7S.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-JCHLTP7S.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-OHJSRKFS.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-4GRUPTAO.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-XSVZFGAA.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-CZ6UMSZX.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-W6KOII4Y.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-RZRLGMB3.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-TL7IV4S2.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-OFYBOAUE.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-XNBNPKSF.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-U4GYVT3G.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-PHASM44U.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__)&&(rt.push({name:"tar",load:async()=>(await import("./chunks/tar-K6HVPBVB.js")).tarCommand}),rt.push({name:"yq",load:async()=>(await import("./chunks/yq-V6YWS23E.js")).yqCommand}),rt.push({name:"xan",load:async()=>(await import("./chunks/xan-LGEJUGOM.js")).xanCommand}),rt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-W777NCI4.js")).sqlite3Command}));var Ds=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Ds.push({name:"python3",load:async()=>(await import("./chunks/python3-BQWDPUBM.js")).python3Command}),Ds.push({name:"python",load:async()=>(await import("./chunks/python3-BQWDPUBM.js")).pythonCommand}));var Ts=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Ts.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-BC6NI55L.js")).jsExecCommand}),Ts.push({name:"node",load:async()=>(await import("./chunks/js-exec-BC6NI55L.js")).nodeStubCommand}));var ea=[{name:"curl",load:async()=>(await import("./chunks/curl-PLHETP4J.js")).curlCommand}],nr=new Map;function Wt(e){return{name:e.name,async execute(t,s){let n=nr.get(e.name);if(n||(n=await ye.runTrustedAsync(()=>e.load()),nr.set(e.name,n)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:r}=await import("./chunks/flag-coverage-MPBSMQIN.js");r(s.coverage,e.name,t)}return n.execute(t,s)}}}function rr(e){return(e?rt.filter(s=>e.includes(s.name)):rt).map(Wt)}function ir(){return ea.map(Wt)}function ar(){return Ds.map(Wt)}function or(){return Ts.map(Wt)}function lr(e){return"load"in e&&typeof e.load=="function"}function cr(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 M(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function Xe(e){let t=L(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function zt(e,t){if(t.startsWith("/"))return L(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return L(s)}function $t(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function it(e,t){if(t.startsWith("/"))return L(t);let s=Xe(e);return L($t(s,t))}var at=new TextEncoder;function ta(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var Et=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):ta(n)?this.writeFileSync(s,n.content,void 0,{mode:n.mode,mtime:n.mtime}):this.writeFileSync(s,n)}ensureParentDirs(t){let s=Xe(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){M(t,"write");let i=L(t);this.ensureParentDirs(i);let a=ze(n),o=tt(s,a);this.data.set(i,{type:"file",content:o,mode:r?.mode??420,mtime:r?.mtime??new Date})}writeFileLazy(t,s,n){M(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"?at.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=ze(s);return st(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return st(s,"binary")}async readFileBuffer(t){M(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:at.encode(r.content)}return n.content instanceof Uint8Array?n.content:at.encode(n.content)}async writeFile(t,s,n){this.writeFileSync(t,s,n)}async appendFile(t,s,n){M(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=ze(n),o=tt(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:at.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){M(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=at.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){M(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=at.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=it(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=it(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){M(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=Xe(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){M(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=it(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){M(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=$t(n,a);await this.rm(o,s)}}}this.data.delete(n)}async cp(t,s,n){M(t,"cp"),M(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=$t(r,l),u=$t(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 zt(t,s)}async chmod(t,s){M(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){M(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){M(t,"link"),M(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){M(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){M(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){M(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 sa(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function na(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 ra(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 ia(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${Hn}
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",()=>As(t)):e.writeFileSync("/proc/self/status",As(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 fr(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){sa(e)&&(na(e,t),ra(e),ia(e,s))}var aa=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],oa=["braceexpand","hashall","interactive-comments"];function Rs(e){let t=[],s=[...oa.map(n=>({name:n,enabled:!0})),...aa.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 lt(e){e.state.env.set("SHELLOPTS",Rs(e.state.options))}var la=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function xs(e){let t=[];for(let s of la)e[s]&&t.push(s);return t.join(":")}function Ls(e){e.state.env.set("BASHOPTS",xs(e.state.shoptOptions))}var ca="BASH_ALIAS_";function dr(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function hr(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function pr(e,t){return e.env.get(`${ca}${t}`)}function Fs(e,t,s){if(!t.name||!dr(t.name))return t;let n=hr(t.name);if(!n)return t;let r=pr(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=yr(f);a+=` ${d}`}let l;try{l=i.parse(a)}catch(f){if(f instanceof Lt)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return mr(t,r);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return mr(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(dr(f)){let d=hr(f);if(d&&pr(e,d)){let h={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},p=Fs(e,h,s);p!==h&&(u={...u,name:p.name,args:[...p.args]})}}}return u}catch(i){throw s.delete(n),i}}function mr(e,t){let s=t;for(let a of e.args){let o=yr(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 yr(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 gr(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+=Ft({type:"Word",parts:[u]});else{(o||l)&&(i.push(o),o="",l=!1);let d=await Oe(e,{type:"Word",parts:[u]});i.push(...d.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await T(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 wr(e,t){let s=-1,n=-1,r=!1;for(let m=0;m<t.parts.length;m++){let y=t.parts[m];if(y.type==="Literal"){let b=y.value.indexOf("+=");if(b!==-1){let O=y.value.slice(0,b);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(O)){s=m,n=b,r=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(O)){s=m,n=b,r=!0;break}}let g=y.value.indexOf("=");if(g!==-1&&(g===0||y.value[g-1]!=="+")){let O=y.value.slice(0,g);if(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(O)||/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(O)){s=m,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 m of i)f+=await T(e,{type:"Word",parts:[m]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},h=d.parts.length>0?await T(e,d):"";return`${f}${r?"+=":"="}${h}`}var ua=["tar","yq","xan","sqlite3","python3","python"];function vr(e){return ua.includes(e)}var W=Object.freeze({stdout:"",stderr:"",exitCode:0});function F(e=""){return{stdout:e,stderr:"",exitCode:0}}function _(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function k(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function Y(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function De(e,t,s="",n=""){throw new X(e,t,s,n)}function oe(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new X(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function Ms(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Me;return k("",`bash: break: only meaningful in a loop
6
+ `,0)}if(t.length>1)throw new Pe(1,"",`bash: break: too many arguments
7
+ `);let s=1;if(t.length>0){let n=Number.parseInt(t[0],10);if(Number.isNaN(n))throw new Pe(128,"",`bash: break: ${t[0]}: numeric argument required
8
+ `);if(n<1)throw new ie(1,"",`bash: break: loop count out of range
9
+ `);s=n}throw new ie(s)}async function Ws(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>1)return _(`bash: cd: too many arguments
10
+ `,2);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 p=h.startsWith("/")?`${h}/${s}`:`${e.state.cwd}/${h}/${s}`;try{if((await e.fs.stat(p)).isDirectory){s=p,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
11
+ `)}catch{return _(`bash: cd: ${s}: No such file or directory
12
+ `)}}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),F(n?`${u}
13
+ `:"")}function zs(e,t){return e.fs.resolvePath(e.state.cwd,t)}var fa=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function Bt(e){return fa.includes(e)}async function jt(e,t,s){let n=zs(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 da=["-nt","-ot","-ef"];function Ht(e){return da.includes(e)}async function Ut(e,t,s,n){let r=zs(e,s),i=zs(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 ha=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function Zt(e){return ha.has(e)}function qt(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 St(e){return e==="="||e==="=="||e==="!="}function Gt(e,t,s,n=!1,r=!1,i=!1){if(n){let o=ct(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 pa=new Set(["-z","-n"]);function Kt(e){return pa.has(e)}function Xt(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}async function Yt(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 B(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=ne(e,n),l=e.state.currentLine;if(o.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${n}: bad array subscript
14
+ `,!1;if(a=Math.max(...o)+1+a,a<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${n}: bad array subscript
15
+ `,!1}return e.state.env.has(`${n}_${a}`)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?Ve(e,t).length>0:ne(e,t).length>0}async function je(e,t){switch(t.type){case"CondBinary":{let s=await T(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 T(e,t.right);r=Jn(i)}else r=await tr(e,t.right);else St(t.operator)&&!n?r=await sr(e,t.right):r=await T(e,t.right);if(St(t.operator)){let i=e.state.shoptOptions.nocasematch;return Gt(t.operator,s,r,!n,i,!0)}if(Zt(t.operator))return qt(t.operator,await $r(e,s),await $r(e,r));if(Ht(t.operator))return Ut(e,t.operator,s,r);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,a=wa(r),l=vt(a,i?"i":"").match(s);if(Ne(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 T(e,t.operand);return Bt(t.operator)?jt(e,t.operator,s):Kt(t.operator)?Xt(t.operator,s):t.operator==="-v"?await Yt(e,s):t.operator==="-o"?Bs(e,s):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await T(e,t.operand.expression.word)})`!=="":!await je(e,t.operand);case"CondAnd":return await je(e,t.left)?await je(e,t.right):!1;case"CondOr":return await je(e,t.left)?!0:await je(e,t.right);case"CondGroup":return await je(e,t.expression);case"CondWord":return await T(e,t.word)!=="";default:return!1}}async function At(e,t){if(t.length===0)return k("","",1);if(t.length===1)return Y(!!t[0]);if(t.length===2){let n=t[0],r=t[1];return n==="("?_(`test: '(' without matching ')'
16
+ `,2):Bt(n)?Y(await jt(e,n,r)):Kt(n)?Y(Xt(n,r)):n==="!"?Y(!r):n==="-v"?Y(await Yt(e,r)):n==="-o"?Y(Bs(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
17
+ `,2):k("","",1)}if(t.length===3){let n=t[0],r=t[1],i=t[2];if(St(r))return Y(Gt(r,n,i));if(Zt(r)){let a=Qt(n),o=Qt(i);return!a.valid||!o.valid?k("","",2):Y(qt(r,a.value,o.value))}if(Ht(r))return Y(await Ut(e,r,n,i));switch(r){case"-a":return Y(n!==""&&i!=="");case"-o":return Y(n!==""||i!=="");case">":return Y(n>i);case"<":return Y(n<i)}if(n==="!"){let a=await At(e,[r,i]);return k("",a.stderr,a.exitCode===0?1:a.exitCode===1?0:a.exitCode)}if(n==="("&&i===")")return Y(r!=="")}if(t.length===4){if(t[0]==="!"){let n=await At(e,t.slice(1));return k("",n.stderr,n.exitCode===0?1:n.exitCode===1?0:n.exitCode)}if(t[0]==="("&&t[3]===")")return At(e,[t[1],t[2]])}let s=await Sr(e,t,0);return s.pos<t.length?_(`test: too many arguments
18
+ `,2):Y(s.value)}async function Sr(e,t,s){return ma(e,t,s)}async function ma(e,t,s){let{value:n,pos:r}=await br(e,t,s);for(;t[r]==="-o";){let i=await br(e,t,r+1);n=n||i.value,r=i.pos}return{value:n,pos:r}}async function br(e,t,s){let{value:n,pos:r}=await Vs(e,t,s);for(;t[r]==="-a";){let i=await Vs(e,t,r+1);n=n&&i.value,r=i.pos}return{value:n,pos:r}}async function Vs(e,t,s){if(t[s]==="!"){let{value:n,pos:r}=await Vs(e,t,s+1);return{value:!n,pos:r}}return ya(e,t,s)}async function ya(e,t,s){let n=t[s];if(n==="("){let{value:i,pos:a}=await Sr(e,t,s+1);return{value:i,pos:t[a]===")"?a+1:a}}let r=t[s+1];if(St(r)){let i=n,a=t[s+2]??"";return{value:Gt(r,i,a),pos:s+3}}if(Zt(r)){let i=Qt(n),a=Qt(t[s+2]??"0");return!i.valid||!a.valid?{value:!1,pos:s+3}:{value:qt(r,i.value,a.value),pos:s+3}}if(Ht(r)){let i=n,a=t[s+2]??"";return{value:await Ut(e,r,i,a),pos:s+3}}if(Bt(n)){let i=t[s+1]??"";return{value:await jt(e,n,i),pos:s+2}}if(Kt(n)){let i=t[s+1]??"";return{value:Xt(n,i),pos:s+2}}if(n==="-v"){let i=t[s+1]??"";return{value:await Yt(e,i),pos:s+2}}if(n==="-o"){let i=t[s+1]??"";return{value:Bs(e,i),pos:s+2}}return{value:n!==void 0&&n!=="",pos:s+1}}function ct(e,t,s=!1,n=!1){let r=`^${Ar(t,n)}$`;return vt(r,s?"is":"s").test(e)}function Ar(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=_r(e,n+1);if(i!==-1){let a=e.slice(n+2,i),o=Cr(a),l=o.map(u=>Ar(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=>Pr(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 p=[];h>0&&p.push(`.{0,${h-1}}`),p.push(`.{${h+1},}`),p.push(`(?!(?:${c})).{${h}}`),s+=`(?:${p.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);if(i!==-1){let a=e.slice(n+1,i);a.startsWith("!")?s+=`[^${a.slice(1)}]`:s+=e.slice(n,i+1),n=i}else s+="\\["}else/[\\^$.|+(){}]/.test(r)?s+=`\\${r}`:s+=r}return s}function _r(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 Cr(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 Pr(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=_r(e,n+1);if(i!==-1){if(r==="@"){let a=e.slice(n+2,i),l=Cr(a).map(c=>Pr(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 Bs(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 $r(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 Er(t);try{let s=new V,n=Q(s,t);return await B(e,n.expression)}catch{return Er(t)}}function ga(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 Er(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=ga(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 Qt(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 wa(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=va(e,s);t+=n.converted,s=n.endIndex}else t+=e[s],s++;return t}function va(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+=ba(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 ba(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 Te(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===`
19
+ `)&&!n&&!r){a&&(t.push(s),s="",a=!1);continue}s+=o,a=!0}return a&&t.push(s),t}function Jt(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 kr(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(t)return{name:t[1],isArray:!0,arrayElements:Te(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 $a(e,t){try{let s=new V,n=Q(s,t);return await B(e,n.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}async function Nr(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 $a(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&&de(e,n),null}function He(e,t){e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,e.state.callDepth)}function ut(e,t){return e.state.localVarDepth?.get(t)}function es(e,t){e.state.localVarDepth?.delete(t)}function Or(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 ts(e,t){let s=e.state.localVarStack?.get(t);if(!(!s||s.length===0))return s.pop()}function Dr(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 js=new Set([":",".","break","continue","eval","exec","exit","export","readonly","return","set","shift","trap","unset"]);function Tr(e){return js.has(e)}var Hs=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),ft=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 Ue(e,t,s,n){try{if((await e.fs.stat(t)).isDirectory)return`bash: ${s}: Is a directory
20
+ `;if(n.checkNoclobber&&e.state.options.noclobber&&!n.isClobber&&s!=="/dev/null")return`bash: ${s}: cannot overwrite existing file
21
+ `}catch{}return null}function Ie(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 Ea(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 ss(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(Os(e,r.target))return{targets:s,error:`bash: $@: ambiguous redirect
22
+ `};s.set(n,await T(e,r.target))}else{let a=await nt(e,r.target);if("error"in a)return{targets:s,error:a.error};s.set(n,a.target)}}return{targets:s}}function Sa(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 ns(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 T(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=Sa(e);if(e.state.env.set(s.fdVariable,String(n)),s.target.type==="Word"){let r=await T(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&&(oe(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"),oe(e),e.state.fileDescriptors.set(n,`__file__:${i}`)}else if(s.operator==="<<<")oe(e),e.state.fileDescriptors.set(n,`${r}
23
+ `);else if(s.operator==="<"||s.operator==="<>")try{let i=e.fs.resolvePath(e.state.cwd,r),a=await e.fs.readFile(i);oe(e),e.state.fileDescriptors.set(n,a)}catch{return k("",`bash: ${r}: No such file or directory
24
+ `,1)}}}return null}async function _e(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 T(e,s.target),r==="-"||!Number.isNaN(Number.parseInt(r,10))||s.fd!=null)continue}else{let o=await nt(e,s.target);if("error"in o)return k("",o.error,1);r=o.target}let i=e.fs.resolvePath(e.state.cwd,r),a=s.operator===">|";if(i.includes("\0"))return k("",`bash: ${r}: No such file or directory
25
+ `,1);try{let o=await e.fs.stat(i);if(o.isDirectory)return k("",`bash: ${r}: Is a directory
26
+ `,1);if(e.state.options.noclobber&&!a&&!o.isDirectory&&r!=="/dev/null")return k("",`bash: ${r}: cannot overwrite existing file
27
+ `,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 k("",`bash: /dev/full: No space left on device
28
+ `,1)}return null}async function Ir(e,t,s){for(let n=0;n<t.length;n++){let r=t[n];if(r.target.type==="HereDoc")continue;let i=r.operator===">&";if(r.operator!==">"&&r.operator!==">|"&&r.operator!=="&>"&&!i)continue;let a,o=s?.get(n);if(o!==void 0)a=o;else if(i)a=await T(e,r.target);else{let u=await nt(e,r.target);if("error"in u)return k("",u.error,1);a=u.target}if(i&&(a==="-"||!Number.isNaN(Number.parseInt(a,10))||r.fd!=null))continue;let l=e.fs.resolvePath(e.state.cwd,a);if(l.includes("\0"))return k("",`bash: ${a}: No such file or directory
29
+ `,1);let c=await Ue(e,l,a,{checkNoclobber:!0,isClobber:r.operator===">|"});if(c)return k("",c,1)}return null}async function U(e,t,s,n){let{stdout:r,stderr:i,exitCode:a}=t,o=r,l=i,u=t.stdoutKind==="bytes"||t.stdoutKind===void 0&&t.stdoutEncoding==="binary"?"binary":"utf8",f=y=>u,d=async y=>{let b=n?.get(y);if(b!==void 0)return b;let g=await nt(e,s[y].target);return"error"in g?(i+=g.error,a=1,r="",null):g.target};for(let y=0;y<s.length;y++){let b=s[y];if(b.target.type==="HereDoc")continue;let g,O=n?.get(y);if(O!==void 0)g=O;else if(b.operator===">&"||b.operator==="<&"){if(Os(e,b.target)){i+=`bash: $@: ambiguous redirect
30
+ `,a=1,r="";continue}g=await T(e,b.target)}else{let E=await nt(e,b.target);if("error"in E){i+=E.error,a=1,r="";continue}g=E.target}if(!b.fdVariable){if(g.includes("\0")){i+=`bash: ${g.replace(/\0/g,"")}: No such file or directory
31
+ `,a=1,r="";continue}switch(b.operator){case">":case">|":{let v=b.fd??1,E=b.operator===">|";if(v===1){if(g==="/dev/stdout")break;if(g==="/dev/stderr"){i+=r,r="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
32
+ `,a=1,r="";break}let w=e.fs.resolvePath(e.state.cwd,g),S=await Ue(e,w,g,{checkNoclobber:!0,isClobber:E});if(S){i+=S,a=1,r="";break}let P=s[y-1];if(P&&(P.operator===">&"||P.operator==="<&")&&(P.fd??1)===2){let N=n?.get(y-1)??await T(e,P.target);if(N==="1"||N==="&1"){await e.fs.writeFile(w,o,f(o)),r=l,i="";break}}let $=s[y+1];if($&&($.operator===">&"||$.operator==="<&")&&($.fd??1)===2){let N=n?.get(y+1)??await T(e,$.target);if(N==="1"||N==="&1"){let A=r+i;await e.fs.writeFile(w,A,f(A)),r="",i="",y++;break}}await e.fs.writeFile(w,r,f(r)),r=""}else if(v===2){if(g==="/dev/stderr")break;if(g==="/dev/stdout"){r+=i,i="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
33
+ `,a=1;break}if(g==="/dev/null")i="";else{let w=e.fs.resolvePath(e.state.cwd,g),S=await Ue(e,w,g,{checkNoclobber:!0,isClobber:E});if(S){i+=S,a=1;break}await e.fs.writeFile(w,i,Ie(i)),i=""}}break}case">>":{let v=b.fd??1;if(v===1){if(g==="/dev/stdout")break;if(g==="/dev/stderr"){i+=r,r="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
34
+ `,a=1,r="";break}let E=e.fs.resolvePath(e.state.cwd,g),w=await Ue(e,E,g,{});if(w){i+=w,a=1,r="";break}await e.fs.appendFile(E,r,f(r)),r=""}else if(v===2){if(g==="/dev/stderr")break;if(g==="/dev/stdout"){r+=i,i="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
35
+ `,a=1;break}let E=e.fs.resolvePath(e.state.cwd,g),w=await Ue(e,E,g,{});if(w){i+=w,a=1;break}await e.fs.appendFile(E,i,Ie(i)),i=""}break}case">&":case"<&":{let v=b.fd??1;if(g==="-"){if(v===1){let E=s[y-1];if(E&&(E.operator===">&"||E.operator==="<&")&&(E.fd??1)===2){let w=n?.get(y-1)??await T(e,E.target);r=w==="1"||w==="&1"?l:""}else r=""}else v===2&&(i="");break}if(g.endsWith("-")){let E=g.slice(0,-1),w=Number.parseInt(E,10);if(!Number.isNaN(w)){let S=e.state.fileDescriptors?.get(w);S!==void 0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(v,S),w>=3&&e.state.fileDescriptors?.delete(w)):w===1||w===2?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(v,`__dupout__:${w}`)):w===0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),e.state.fileDescriptors.set(v,`__dupin__:${w}`)):w>=3&&(i+=`bash: ${w}: Bad file descriptor
36
+ `,a=1)}break}if(g==="2"||g==="&2")v===1&&(i=r+i,r="");else if(g==="1"||g==="&1")r+=i,i="";else{let E=Number.parseInt(g,10);if(Number.isNaN(E)){if(b.operator===">&"){let w=e.fs.resolvePath(e.state.cwd,g),S=await Ue(e,w,g,{checkNoclobber:!0});if(S){i=S,a=1,r="";break}if(b.fd==null){let P=r+i;await e.fs.writeFile(w,P,f(P)),r="",i=""}else v===1?(await e.fs.writeFile(w,r,f(r)),r=""):v===2&&(await e.fs.writeFile(w,i,Ie(i)),i="")}}else{let w=e.state.fileDescriptors?.get(E);if(w?.startsWith("__file__:")){let S=w.slice(9);v===1?(await e.fs.appendFile(S,r,f(r)),r=""):v===2&&(await e.fs.appendFile(S,i,Ie(i)),i="")}else if(w?.startsWith("__rw__:")){let S=Ea(w);S&&(v===1?(await e.fs.appendFile(S.path,r,f(r)),r=""):v===2&&(await e.fs.appendFile(S.path,i,Ie(i)),i=""))}else if(w?.startsWith("__dupout__:")){let S=Number.parseInt(w.slice(11),10);if(S!==1)if(S===2)v===1&&(i=r+i,r="");else{let P=e.state.fileDescriptors?.get(S);if(P?.startsWith("__file__:")){let $=P.slice(9);v===1?(await e.fs.appendFile($,r,f(r)),r=""):v===2&&(await e.fs.appendFile($,i,Ie(i)),i="")}}}else w?.startsWith("__dupin__:")?(i+=`bash: ${E}: Bad file descriptor
37
+ `,a=1,r=""):E>=3&&(i+=`bash: ${E}: Bad file descriptor
38
+ `,a=1,r="")}}break}case"&>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
39
+ `,a=1,r="";break}let v=e.fs.resolvePath(e.state.cwd,g),E=await Ue(e,v,g,{checkNoclobber:!0});if(E){i=E,a=1,r="";break}let w=s[y+1];if(w&&(w.operator===">"||w.operator===">|"||w.operator===">>")&&(w.fd??1)===1){let P=await d(y+1);if(P!==null){let $=e.fs.resolvePath(e.state.cwd,P);await e.fs.writeFile(v,i,Ie(i)),w.operator===">>"?await e.fs.appendFile($,r,f(r)):await e.fs.writeFile($,r,f(r)),r="",i="",y++;break}}let S=r+i;await e.fs.writeFile(v,S,f(S)),r="",i="";break}case"&>>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
40
+ `,a=1,r="";break}let v=e.fs.resolvePath(e.state.cwd,g),E=await Ue(e,v,g,{});if(E){i=E,a=1,r="";break}let w=s[y+1];if(w&&(w.operator===">"||w.operator===">|"||w.operator===">>")&&(w.fd??1)===1){let P=await d(y+1);if(P!==null){let $=e.fs.resolvePath(e.state.cwd,P);await e.fs.appendFile(v,i,Ie(i)),w.operator===">>"?await e.fs.appendFile($,r,f(r)):await e.fs.writeFile($,r,f(r)),r="",i="",y++;break}}let S=r+i;await e.fs.appendFile(v,S,f(S)),r="",i="";break}}}}let h=e.state.fileDescriptors?.get(1);if(h){if(h==="__dupout__:2")i+=r,r="";else if(h.startsWith("__file__:")){let y=h.slice(9);await e.fs.appendFile(y,r,f(r)),r=""}else if(h.startsWith("__file_append__:")){let y=h.slice(16);await e.fs.appendFile(y,r,f(r)),r=""}}let p=e.state.fileDescriptors?.get(2);if(p){if(p==="__dupout__:1")r+=i,i="";else if(p.startsWith("__file__:")){let y=p.slice(9);await e.fs.appendFile(y,i,Ie(i)),i=""}else if(p.startsWith("__file_append__:")){let y=p.slice(16);await e.fs.appendFile(y,i,Ie(i)),i=""}}let m=k(r,i,a);return t.stdoutKind&&(m.stdoutKind=t.stdoutKind),t.stdoutEncoding==="binary"&&(m.stdoutEncoding="binary"),m}function Rr(e,t){if(e.state.options.posix&&js.has(t.name)){let n=`bash: line ${e.state.currentLine}: \`${t.name}': is a special builtin
41
+ `;throw new Z(2,"",n)}let s={...t,sourceFile:t.sourceFile??e.state.currentSource??"main"};return e.state.functions.set(t.name,s),W}async function Aa(e,t){let s="";for(let n of t)if((n.operator==="<<"||n.operator==="<<-")&&n.target.type==="HereDoc"){let r=n.target,i=await T(e,r.content);r.stripTabs&&(i=i.split(`
42
+ `).map(o=>o.replace(/^\t+/,"")).join(`
43
+ `)),(n.fd??0)===0&&(s=i)}else if(n.operator==="<<<"&&n.target.type==="Word")s=`${await T(e,n.target)}
44
+ `;else if(n.operator==="<"&&n.target.type==="Word"){let r=await T(e,n.target),i=e.fs.resolvePath(e.state.cwd,r);try{s=await e.fs.readFile(i)}catch{}}return s}async function rs(e,t,s,n="",r){e.state.callDepth++,e.state.callDepth>e.limits.maxCallDepth&&(e.state.callDepth--,De(`${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(Dr(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 ss(e,t.redirections);if(l)return a(),k("",l,1);try{let c=await Aa(e,t.redirections),u=n||c,f=await e.executeCommand(t.body,u);return a(),U(e,f,t.redirections,o)}catch(c){if(a(),c instanceof le){let u=k(c.stdout,c.stderr,c.exitCode);return U(e,u,t.redirections,o)}throw c}}var Lr=["!","[[","]]","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"],_a=["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"],Ca=Zs;async function qs(e,t){let s=[],n=null,r="",i="",a=null,o=!1,l=!1,c=!1,u=null,f=null,d=null,h=[],p=["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 v=0;v<t.length;v++){let E=t[v];if(E==="-v")s.push("variable");else if(E==="-e")s.push("export");else if(E==="-f")s.push("file");else if(E==="-d")s.push("directory");else if(E==="-k")s.push("keyword");else if(E==="-A"){if(v++,v>=t.length)return _(`compgen: -A: option requires an argument
45
+ `,2);let w=t[v];if(!p.includes(w))return _(`compgen: ${w}: invalid action name
46
+ `,2);s.push(w)}else if(E==="-W"){if(v++,v>=t.length)return _(`compgen: -W: option requires an argument
47
+ `,2);n=t[v]}else if(E==="-P"){if(v++,v>=t.length)return _(`compgen: -P: option requires an argument
48
+ `,2);r=t[v]}else if(E==="-S"){if(v++,v>=t.length)return _(`compgen: -S: option requires an argument
49
+ `,2);i=t[v]}else if(E==="-o"){if(v++,v>=t.length)return _(`compgen: -o: option requires an argument
50
+ `,2);let w=t[v];if(w==="plusdirs")o=!0;else if(w==="dirnames")l=!0;else if(w==="default")c=!0;else if(!(w==="filenames"||w==="nospace"||w==="bashdefault"||w==="noquote"))return _(`compgen: ${w}: invalid option name
51
+ `,2)}else if(E==="-F"){if(v++,v>=t.length)return _(`compgen: -F: option requires an argument
52
+ `,2);f=t[v]}else if(E==="-C"){if(v++,v>=t.length)return _(`compgen: -C: option requires an argument
53
+ `,2);d=t[v]}else if(E==="-X"){if(v++,v>=t.length)return _(`compgen: -X: option requires an argument
54
+ `,2);u=t[v]}else if(E==="-G"){if(v++,v>=t.length)return _(`compgen: -G: option requires an argument
55
+ `,2)}else if(E==="--"){h.push(...t.slice(v+1));break}else E.startsWith("-")||h.push(E)}a=h[0]??null;let m=[];if(l){let v=await Us(e,a);m.push(...v)}if(c){let v=await xr(e,a);m.push(...v)}for(let v of s)if(v==="variable"){let E=Pa(e,a);m.push(...E)}else if(v==="export"){let E=ka(e,a);m.push(...E)}else if(v==="function"){let E=Na(e,a);m.push(...E)}else if(v==="builtin"){let E=Oa(a);m.push(...E)}else if(v==="keyword"){let E=Da(a);m.push(...E)}else if(v==="alias"){let E=Ta(e,a);m.push(...E)}else if(v==="shopt"){let E=Ia(a);m.push(...E)}else if(v==="helptopic"){let E=Ra(a);m.push(...E)}else if(v==="directory"){let E=await Us(e,a);m.push(...E)}else if(v==="file"){let E=await xr(e,a);m.push(...E)}else if(v==="user"){let E=xa(a);m.push(...E)}else if(v==="command"){let E=await La(e,a);m.push(...E)}if(n!==null)try{let v=await Fa(e,n),E=Ma(e,v);for(let w of E)(a===null||w.startsWith(a))&&m.push(w)}catch{return k("","",1)}if(o){let v=await Us(e,a);for(let E of v)m.includes(E)||m.push(E)}let y="";if(f!==null){let v=e.state.functions.get(f);if(v){let E=new Map;E.set("COMP_WORDS__length",e.state.env.get("COMP_WORDS__length")),e.state.env.set("COMP_WORDS__length","0"),E.set("COMP_CWORD",e.state.env.get("COMP_CWORD")),e.state.env.set("COMP_CWORD","-1"),E.set("COMP_LINE",e.state.env.get("COMP_LINE")),e.state.env.set("COMP_LINE",""),E.set("COMP_POINT",e.state.env.get("COMP_POINT")),e.state.env.set("COMP_POINT","0");let w=new Map;for(let P of e.state.env.keys())(P==="COMPREPLY"||P.startsWith("COMPREPLY_")||P==="COMPREPLY__length")&&(w.set(P,e.state.env.get(P)),e.state.env.delete(P));let S=["compgen",h[0]??"",""];try{let P=await rs(e,v,S,"");if(P.exitCode!==0)return dt(e,E),dt(e,w),k("",P.stderr,1);y=P.stdout;let $=Wa(e);m.push(...$)}catch{return dt(e,E),dt(e,w),k("","",1)}dt(e,E),dt(e,w)}}if(d!==null)try{let v=Ee(d),E=await e.executeScript(v);if(E.exitCode!==0)return k("",E.stderr,E.exitCode);if(E.stdout){let w=E.stdout.split(`
56
+ `);for(let S of w)S.length>0&&m.push(S)}}catch(v){if(v.name==="ParseException")return _(`compgen: -C: ${v.message}
57
+ `,2);throw v}let b=m;if(u!==null){let v=u.startsWith("!"),E=v?u.slice(1):u;b=m.filter(w=>{let S=ct(w,E,!1,!0);return v?S:!S})}if(b.length===0&&a!==null)return k(y,"",1);let g=b.map(v=>`${r}${v}${i}`).join(`
58
+ `),O=y+(g?`${g}
59
+ `:"");return F(O)}function Pa(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 ka(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 Na(e,t){let s=Array.from(e.state.functions.keys());return t!==null&&(s=s.filter(n=>n.startsWith(t))),s.sort()}function Oa(e){let t=[...Zs];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Da(e){let t=[...Lr];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Ta(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 Ia(e){let t=[..._a];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Ra(e){let t=[...Ca];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}async function Us(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 xr(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 xa(e){return["root","nobody"]}async function La(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 Lr)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 Fa(e,t){let n=new V().parseWordFromString(t,!1,!1);return await T(e,n)}function Ma(e,t){let s=e.state.env.get("IFS")??`
60
+ `;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 dt(e,t){for(let[s,n]of t)n===void 0?e.state.env.delete(s):e.state.env.set(s,n)}function Wa(e){let t=[];if(e.state.env.get("COMPREPLY__length")!==void 0){let r=Se(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 za=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function Ks(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
61
+ `,2);i=t[f]}else if(d==="-F"){if(f++,f>=t.length)return _(`complete: -F: option requires an argument
62
+ `,2);a=t[f]}else if(d==="-o"){if(f++,f>=t.length)return _(`complete: -o: option requires an argument
63
+ `,2);let h=t[f];if(!za.includes(h))return _(`complete: ${h}: invalid option name
64
+ `,2);l.push(h)}else if(d==="-A"){if(f++,f>=t.length)return _(`complete: -A: option requires an argument
65
+ `,2);c.push(t[f])}else if(d==="-C"){if(f++,f>=t.length)return _(`complete: -C: option requires an argument
66
+ `,2);o=t[f]}else if(d==="-G"){if(f++,f>=t.length)return _(`complete: -G: option requires an argument
67
+ `,2)}else if(d==="-P"){if(f++,f>=t.length)return _(`complete: -P: option requires an argument
68
+ `,2)}else if(d==="-S"){if(f++,f>=t.length)return _(`complete: -S: option requires an argument
69
+ `,2)}else if(d==="-X"){if(f++,f>=t.length)return _(`complete: -X: option requires an argument
70
+ `,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(),F("");for(let f of u)e.state.completionSpecs.delete(f);return F("")}if(s)return u.length===0?Gs(e):Gs(e,u);if(t.length===0||u.length===0&&!i&&!a&&!o&&l.length===0&&c.length===0&&!r)return Gs(e);if(a&&u.length===0&&!r)return _(`complete: -F: option requires a command name
71
+ `,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),F("")}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 F("")}function Gs(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
72
+ `;return k("",i,1)}return F("")}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 k(n.join(`
73
+ `)+(n.length>0?`
74
+ `:""),`complete: ${i}: no completion specification
75
+ `,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?F(""):F(`${n.join(`
76
+ `)}
77
+ `)}var Fr=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function Xs(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
78
+ `,2);let c=t[o];if(!Fr.includes(c))return _(`compopt: ${c}: invalid option name
79
+ `,2);r.push(c)}else if(l==="+o"){if(o++,o>=t.length)return _(`compopt: +o: option requires an argument
80
+ `,2);let c=t[o];if(!Fr.includes(c))return _(`compopt: ${c}: invalid option name
81
+ `,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),F("")}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),F("")}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 F("")}return _(`compopt: not currently executing completion function
82
+ `,1)}function Ys(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new Me;return k("",`bash: continue: only meaningful in a loop
83
+ `,0)}if(t.length>1)throw new Pe(1,"",`bash: continue: too many arguments
84
+ `);let s=1;if(t.length>0){let n=Number.parseInt(t[0],10);if(Number.isNaN(n))throw new Pe(128,"",`bash: continue: ${t[0]}: numeric argument required
85
+ `);if(n<1)throw new ie(1,"",`bash: continue: loop count out of range
86
+ `);s=n}throw new fe(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 Qs(e){for(let t=0;t<e.length;t++){let s=e.charCodeAt(t);if(s<32||s===127)return!0}return!1}function Js(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 is(e){return Qs(e)?Js(e):/^[a-zA-Z0-9_/.:\-@%+,=]*$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function Ye(e){return Qs(e)?Js(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function en(e){return Qs(e)?Js(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Mr(e,t){let s="";return e.state.integerVars?.has(t)&&(s+="i"),e.state.lowercaseVars?.has(t)&&(s+="l"),ve(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 tn(e){return e===""?"''":/[\s'\\]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}function Wr(e,t){let s="",n="",r=!1;for(let i of t){let a=Mr(e,i);if(e.state.associativeArrays?.has(i)){let u=Ve(e,i);if(u.length===0)s+=`declare -A ${i}=()
87
+ `;else{let f=u.map(d=>{let h=e.state.env.get(`${i}_${d}`)??"",p=tn(h);return`['${d}']=${p}`});s+=`declare -A ${i}=(${f.join(" ")})
88
+ `}continue}let l=ne(e,i);if(l.length>0){let u=l.map(f=>{let d=e.state.env.get(`${i}_${f}`)??"";return`[${f}]=${Ye(d)}`});s+=`declare -a ${i}=(${u.join(" ")})
89
+ `;continue}if(e.state.env.has(`${i}__length`)){s+=`declare -a ${i}=()
90
+ `;continue}let c=e.state.env.get(i);if(c!==void 0)s+=`declare ${a} ${i}=${en(c)}
91
+ `;else{let u=e.state.declaredVars?.has(i),f=e.state.localVarDepth?.has(i);u||f?s+=`declare ${a} ${i}
92
+ `:(n+=`bash: declare: ${i}: not found
93
+ `,r=!0)}}return k(s,n,r?1:0)}function zr(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),p=f.slice(d+1);if(/^\d+$/.test(p)||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=Mr(e,f),h=e.state.associativeArrays?.has(f),p=ne(e,f),m=!h&&(p.length>0||e.state.env.has(`${f}__length`));if(o&&(a&&!h||i&&!m||s&&!e.state.exportedVars?.has(f)||n&&!e.state.readonlyVars?.has(f)||r&&!ve(e,f)))continue;if(h){let b=Ve(e,f);if(b.length===0)l+=`declare -A ${f}=()
94
+ `;else{let g=b.map(O=>{let v=e.state.env.get(`${f}_${O}`)??"",E=tn(v);return`['${O}']=${E}`});l+=`declare -A ${f}=(${g.join(" ")})
95
+ `}continue}if(p.length>0){let b=p.map(g=>{let O=e.state.env.get(`${f}_${g}`)??"";return`[${g}]=${Ye(O)}`});l+=`declare -a ${f}=(${b.join(" ")})
96
+ `;continue}if(e.state.env.has(`${f}__length`)){l+=`declare -a ${f}=()
97
+ `;continue}let y=e.state.env.get(f);y!==void 0&&(l+=`declare ${d} ${f}=${en(y)}
98
+ `)}return F(l)}function Vr(e){let t="",s=Array.from(e.state.associativeArrays??[]).sort();for(let n of s){let r=Ve(e,n);if(r.length===0)t+=`declare -A ${n}=()
99
+ `;else{let i=r.map(a=>{let o=e.state.env.get(`${n}_${a}`)??"",l=tn(o);return`['${a}']=${l}`});t+=`declare -A ${n}=(${i.join(" ")})
100
+ `}}return F(t)}function Br(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=ne(e,r);if(i.length===0)t+=`declare -a ${r}=()
101
+ `;else{let a=i.map(o=>{let l=e.state.env.get(`${r}_${o}`)??"";return`[${o}]=${Ye(l)}`});t+=`declare -a ${r}=(${a.join(" ")})
102
+ `}}return F(t)}function jr(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)||ne(e,r).length>0||e.state.env.has(`${r}__length`))continue;let o=e.state.env.get(r);o!==void 0&&(t+=`${r}=${is(o)}
103
+ `)}return F(t)}function sn(e,t){e.state.integerVars??=new Set,e.state.integerVars.add(t)}function _t(e,t){return e.state.integerVars?.has(t)??!1}function nn(e,t){e.state.lowercaseVars??=new Set,e.state.lowercaseVars.add(t),e.state.uppercaseVars?.delete(t)}function Va(e,t){return e.state.lowercaseVars?.has(t)??!1}function rn(e,t){e.state.uppercaseVars??=new Set,e.state.uppercaseVars.add(t),e.state.lowercaseVars?.delete(t)}function Ba(e,t){return e.state.uppercaseVars?.has(t)??!1}function ht(e,t,s){return Va(e,t)?s.toLowerCase():Ba(e,t)?s.toUpperCase():s}async function Hr(e,t){try{let s=new V,n=Q(s,t),r=await B(e,n.expression);return String(r)}catch{return"0"}}function ja(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 an(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,p=!1,m=!1,y=!1,b=[];for(let $=0;$<t.length;$++){let N=t[$];if(N==="-a")s=!0;else if(N==="-A")n=!0;else if(N==="-r")r=!0;else if(N==="-x")i=!0;else if(N==="-p")a=!0;else if(N==="-n")o=!0;else if(N==="+n")l=!0;else if(N==="+a")c=!0;else if(N==="+x")u=!0;else if(N==="--"){b.push(...t.slice($+1));break}else if(N.startsWith("+")){for(let A of N.slice(1))if(A==="n")l=!0;else if(A==="a")c=!0;else if(A==="x")u=!0;else if(A!=="r"){if(A!=="i"){if(!(A==="f"||A==="F"))return k("",`bash: typeset: +${A}: invalid option
104
+ `,2)}}}else if(N==="-i")f=!0;else if(N==="-l")d=!0;else if(N==="-u")h=!0;else if(N==="-f")p=!0;else if(N==="-F")m=!0;else if(N==="-g")y=!0;else if(N.startsWith("-"))for(let A of N.slice(1))if(A==="a")s=!0;else if(A==="A")n=!0;else if(A==="r")r=!0;else if(A==="x")i=!0;else if(A==="p")a=!0;else if(A==="n")o=!0;else if(A==="i")f=!0;else if(A==="l")d=!0;else if(A==="u")h=!0;else if(A==="f")p=!0;else if(A==="F")m=!0;else if(A==="g")y=!0;else return k("",`bash: typeset: -${A}: invalid option
105
+ `,2);else b.push(N)}let O=e.state.localScopes.length>0&&!y,v=$=>{if(!O)return;let N=e.state.localScopes[e.state.localScopes.length-1];N.has($)||N.set($,e.state.env.get($))},E=$=>{if(!O)return;let N=e.state.localScopes[e.state.localScopes.length-1];N.has($)||N.set($,e.state.env.get($));let A=`${$}_`;for(let I of e.state.env.keys())I.startsWith(A)&&!I.includes("__")&&(N.has(I)||N.set(I,e.state.env.get(I)));let D=`${$}__length`;e.state.env.has(D)&&!N.has(D)&&N.set(D,e.state.env.get(D))},w=$=>{O&&He(e,$)};if(m){if(b.length===0){let A=Array.from(e.state.functions.keys()).sort(),D="";for(let I of A)D+=`declare -f ${I}
106
+ `;return F(D)}let $=!0,N="";for(let A of b)e.state.functions.has(A)?N+=`${A}
107
+ `:$=!1;return k(N,"",$?0:1)}if(p){if(b.length===0){let N="",A=Array.from(e.state.functions.keys()).sort();for(let D of A)N+=`${D} ()
108
+ {
109
+ # function body
110
+ }
111
+ `;return F(N)}let $=!0;for(let N of b)e.state.functions.has(N)||($=!1);return k("","",$?0:1)}if(a&&b.length>0)return Wr(e,b);if(a&&b.length===0)return zr(e,{filterExport:i,filterReadonly:r,filterNameref:o,filterIndexedArray:s,filterAssocArray:n});if(b.length===0&&n&&!a)return Vr(e);if(b.length===0&&s&&!a)return Br(e);if(b.length===0&&!a)return jr(e);let S="",P=0;for(let $ of b){let N=$.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(N&&!c){let C=N[1],R=N[2];if(n&&ne(e,C).length>0){S+=`bash: declare: ${C}: cannot convert indexed to associative array
112
+ `,P=1;continue}if((s||!n&&!s)&&e.state.associativeArrays?.has(C)){S+=`bash: declare: ${C}: cannot convert associative to indexed array
113
+ `,P=1;continue}if(E(C),n&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(C)),Ne(e,C),e.state.env.delete(C),e.state.env.delete(`${C}__length`),n&&R.includes("[")){let x=Jt(R);for(let[J,z]of x){let K=G(e,z);e.state.env.set(`${C}_${J}`,K)}}else if(n){let x=Te(R);for(let J=0;J<x.length;J+=2){let z=x[J],K=J+1<x.length?G(e,x[J+1]):"";e.state.env.set(`${C}_${z}`,K)}}else{let x=Te(R);if(x.some(z=>/^\[[^\]]+\]=/.test(z))){let z=0;for(let K of x){let re=K.match(/^\[([^\]]+)\]=(.*)$/);if(re){let he=re[1],et=re[2],Yi=G(e,et),gt;if(/^-?\d+$/.test(he))gt=Number.parseInt(he,10);else try{let Qi=new V,Ji=Q(Qi,he);gt=await B(e,Ji.expression)}catch{gt=0}e.state.env.set(`${C}_${gt}`,Yi),z=gt+1}else{let he=G(e,K);e.state.env.set(`${C}_${z}`,he),z++}}}else{for(let z=0;z<x.length;z++)e.state.env.set(`${C}_${z}`,x[z]);e.state.env.set(`${C}__length`,String(x.length))}}w(C),r&&de(e,C),i&&Ae(e,C);continue}if(l){let C=$.includes("=")?$.slice(0,$.indexOf("=")):$;if(Gn(e,C),!$.includes("="))continue}if(u){let C=$.includes("=")?$.slice(0,$.indexOf("=")):$;if(Mt(e,C),!$.includes("="))continue}let A=ja($);if(A){let{name:C,indexExpr:R,value:x}=A,J=ee(e,C);if(J)return J;E(C);let z;try{let re=new V,he=Q(re,R);z=await B(e,he.expression)}catch{let re=parseInt(R,10);z=Number.isNaN(re)?0:re}e.state.env.set(`${C}_${z}`,x);let K=parseInt(e.state.env.get(`${C}__length`)??"0",10);z>=K&&e.state.env.set(`${C}__length`,String(z+1)),w(C),r&&de(e,C),i&&Ae(e,C);continue}let D=$.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(D&&!c){let C=D[1],R=D[2],x=ee(e,C);if(x)return x;E(C);let J=Te(R);if(e.state.associativeArrays?.has(C)){let z=Jt(R);for(let[K,re]of z){let he=G(e,re);e.state.env.set(`${C}_${K}`,he)}}else{let z=ne(e,C),K=0,re=e.state.env.get(C);z.length===0&&re!==void 0?(e.state.env.set(`${C}_0`,re),e.state.env.delete(C),K=1):z.length>0&&(K=Math.max(...z)+1);for(let et=0;et<J.length;et++)e.state.env.set(`${C}_${K+et}`,G(e,J[et]));let he=K+J.length;e.state.env.set(`${C}__length`,String(he))}w(C),r&&de(e,C),i&&Ae(e,C);continue}let I=$.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(I){let C=I[1],R=G(e,I[2]),x=ee(e,C);if(x)return x;v(C),f&&sn(e,C),d&&nn(e,C),h&&rn(e,C);let z=ne(e,C).length>0||e.state.associativeArrays?.has(C);if(_t(e,C)){let K=e.state.env.get(C)??"0",re=parseInt(K,10)||0,he=parseInt(await Hr(e,R),10)||0;R=String(re+he),e.state.env.set(C,R)}else if(z){R=ht(e,C,R);let K=`${C}_0`,re=e.state.env.get(K)??"";e.state.env.set(K,re+R)}else{R=ht(e,C,R);let K=e.state.env.get(C)??"";e.state.env.set(C,K+R)}w(C),r&&de(e,C),i&&Ae(e,C),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(C));continue}if($.includes("=")){let C=$.indexOf("="),R=$.slice(0,C),x=$.slice(C+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(R)){S+=`bash: typeset: \`${R}': not a valid identifier
114
+ `,P=1;continue}let J=ee(e,R);if(J)return J;if(v(R),o){if(x!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(x)){S+=`bash: declare: \`${x}': invalid variable name for name reference
115
+ `,P=1;continue}e.state.env.set(R,x),xe(e,R),x!==""&&ks(e,x)&&Ps(e,R),w(R),r&&de(e,R),i&&Ae(e,R);continue}if(f&&sn(e,R),d&&nn(e,R),h&&rn(e,R),_t(e,R)&&(x=await Hr(e,x)),x=ht(e,R,x),ve(e,R)){let z=Be(e,R);z&&z!==R?e.state.env.set(z,x):e.state.env.set(R,x)}else e.state.env.set(R,x);w(R),r&&de(e,R),i&&Ae(e,R),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(R))}else{let C=$;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(C)){S+=`bash: typeset: \`${C}': not a valid identifier
116
+ `,P=1;continue}if(s||n?E(C):v(C),o){xe(e,C);let x=e.state.env.get(C);x!==void 0&&x!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(x)?Kn(e,C):x&&ks(e,x)&&Ps(e,C),w(C),r&&de(e,C),i&&Ae(e,C);continue}if(f&&sn(e,C),d&&nn(e,C),h&&rn(e,C),n){if(ne(e,C).length>0){S+=`bash: declare: ${C}: cannot convert indexed to associative array
117
+ `,P=1;continue}e.state.associativeArrays??=new Set,e.state.associativeArrays.add(C)}let R=Array.from(e.state.env.keys()).some(x=>x.startsWith(`${C}_`)&&!x.startsWith(`${C}__length`));!e.state.env.has(C)&&!R&&(s||n?e.state.env.set(`${C}__length`,"0"):(e.state.declaredVars??=new Set,e.state.declaredVars.add(C))),w(C),r&&de(e,C),i&&Ae(e,C)}}return k("",S,P)}async function on(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}"
118
+ `}}return F(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 p=Te(d);if(e.state.associativeArrays?.has(f)){let m=Jt(d);for(let[y,b]of m){let g=G(e,b);e.state.env.set(`${f}_${y}`,g)}}else{let m=ne(e,f),y=0,b=e.state.env.get(f);m.length===0&&b!==void 0?(e.state.env.set(`${f}_0`,b),e.state.env.delete(f),y=1):m.length>0&&(y=Math.max(...m)+1);for(let O=0;O<p.length;O++)e.state.env.set(`${f}_${y+O}`,G(e,p[O]));let g=y+p.length;e.state.env.set(`${f}__length`,String(g))}de(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 p=e.state.env.get(f)??"";e.state.env.set(f,p+d),de(e,f);continue}let c=kr(a);if(c.value===void 0&&!c.isArray){de(e,c.name);continue}let u=await Nr(e,c,{makeReadonly:!0});if(u)return u}return W}function ln(e){return e.state.directoryStack??=[],e.state.directoryStack}function pt(e,t){return t&&e===t?"~":t&&e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e}function Ha(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 cn(e,t){let s=ln(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
119
+ `,2);n=t[o+1],o++}}else{if(l.startsWith("-")&&l!=="-")return _(`bash: pushd: ${l}: invalid option
120
+ `,2);if(n!==void 0)return _(`bash: pushd: too many arguments
121
+ `,2);n=l}}if(n===void 0){if(s.length<1)return _(`bash: pushd: no other directory
122
+ `,1);let o=s.shift();if(!o)return _(`bash: pushd: no other directory
123
+ `,1);let l=e.state.cwd;s.unshift(l),e.state.previousDir=l,e.state.cwd=o,e.state.env.set("PWD",o),e.state.env.set("OLDPWD",l);let c=e.state.env.get("HOME")||"",u=`${[o,...s].map(f=>pt(f,c)).join(" ")}
124
+ `;return F(u)}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=Ha(r);try{if(!(await e.fs.stat(r)).isDirectory)return _(`bash: pushd: ${n}: Not a directory
125
+ `,1)}catch{return _(`bash: pushd: ${n}: No such file or directory
126
+ `,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=>pt(o,i)).join(" ")}
127
+ `;return F(a)}function un(e,t){let s=ln(e);for(let a of t)if(a!=="--")return a.startsWith("-")&&a!=="-"?_(`bash: popd: ${a}: invalid option
128
+ `,2):_(`bash: popd: too many arguments
129
+ `,2);if(s.length===0)return _(`bash: popd: directory stack empty
130
+ `,1);let n=s.shift();if(!n)return _(`bash: popd: directory stack empty
131
+ `,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=>pt(a,r)).join(" ")}
132
+ `;return F(i)}function fn(e,t){let s=ln(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
133
+ `,2);else return _(`bash: dirs: too many arguments
134
+ `,1);if(n)return e.state.directoryStack=[],W;let o=[e.state.cwd,...s],l=e.state.env.get("HOME")||"",c;return a?(c=o.map((u,f)=>{let d=r?u:pt(u,l);return` ${f} ${d}`}).join(`
135
+ `),c+=`
136
+ `):i?c=o.map(u=>r?u:pt(u,l)).join(`
137
+ `)+`
138
+ `:c=o.map(u=>r?u:pt(u,l)).join(" ")+`
139
+ `,F(c)}async function as(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
140
+ eval: usage: eval [arg ...]
141
+ `,2)}if(n.length===0)return W;let r=n.join(" ");if(r.trim()==="")return W;let i=e.state.groupStdin,a=s??e.state.groupStdin;a!==void 0&&(e.state.groupStdin=a);try{let o=Ee(r);return await e.executeScript(o)}catch(o){if(o instanceof ie||o instanceof fe||o instanceof le||o instanceof Z)throw o;if(o.name==="ParseException")return _(`bash: eval: ${o.message}
142
+ `);if(o.message?.startsWith("Unsupported shell syntax:"))return _(`bash: eval: ${o.message}
143
+ `,2);throw o}finally{e.state.groupStdin=i}}function dn(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
144
+ `,s=2):t.length>1?(n=`bash: exit: too many arguments
145
+ `,s=1):s=(i%256+256)%256}throw new Z(s,"",n)}function hn(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}"
146
+ `}}return F(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;Mt(e,o)}return W}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
147
+ `,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,"");Ae(e,o)}return k("",r,i)}function os(e,t){if(t.length<2)return _(`bash: getopts: usage: getopts optstring name [arg ...]
148
+ `);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 m=Number.parseInt(e.state.env.get("#")||"0",10);o=[];for(let y=1;y<=m;y++)o.push(e.state.env.get(String(y))||"")}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"),os(e,t);let h=a.indexOf(d);if(h===-1){let m="";return i?e.state.env.set("OPTARG",d):m=`bash: illegal option -- ${d}
149
+ `,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:m}}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 m="";return i?(e.state.env.set("OPTARG",d),r||e.state.env.set(n,":")):(m=`bash: option requires an argument -- ${d}
150
+ `,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:m}}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 pn(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 p=t[c];if(p==="--"){c++,l.push(...t.slice(c));break}if(p==="-r")s=!0,c++;else if(p==="-d")n=!0,c++;else if(p==="-l")r=!0,c++;else if(p==="-t")a=!0,c++;else if(p==="-p"){if(i=!0,c++,c>=t.length)return _(`bash: hash: -p: option requires an argument
151
+ `,1);o=t[c],c++}else if(p.startsWith("-")&&p.length>1){for(let m of p.slice(1))if(m==="r")s=!0;else if(m==="d")n=!0;else if(m==="l")r=!0;else if(m==="t")a=!0;else return m==="p"?_(`bash: hash: -p: option requires an argument
152
+ `,1):_(`bash: hash: -${m}: invalid option
153
+ `,1);c++}else l.push(p),c++}if(s)return e.state.hashTable.clear(),W;if(n){if(l.length===0)return _(`bash: hash: -d: option requires an argument
154
+ `,1);let p=!1,m="";for(let y of l)e.state.hashTable.has(y)?e.state.hashTable.delete(y):(m+=`bash: hash: ${y}: not found
155
+ `,p=!0);return p?_(m,1):W}if(a){if(l.length===0)return _(`bash: hash: -t: option requires an argument
156
+ `,1);let p="",m=!1,y="";for(let b of l){let g=e.state.hashTable.get(b);g?l.length>1?p+=`${b} ${g}
157
+ `:p+=`${g}
158
+ `:(y+=`bash: hash: ${b}: not found
159
+ `,m=!0)}return m?{exitCode:1,stdout:p,stderr:y}:F(p)}if(i){if(l.length===0)return _(`bash: hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]
160
+ `,1);let p=l[0];return e.state.hashTable.set(p,o),W}if(l.length===0){if(e.state.hashTable.size===0)return F(`hash: hash table empty
161
+ `);let p="";if(r)for(let[m,y]of e.state.hashTable)p+=`builtin hash -p ${y} ${m}
162
+ `;else{p=`hits command
163
+ `;for(let[,m]of e.state.hashTable)p+=` 1 ${m}
164
+ `}return F(p)}let u=!1,f="",h=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let p of l){if(p.includes("/")){f+=`bash: hash: ${p}: cannot use / in name
165
+ `,u=!0;continue}let m=!1;for(let y of h){if(!y)continue;let b=`${y}/${p}`;if(await e.fs.exists(b)){e.state.hashTable.set(p,b),m=!0;break}}m||(f+=`bash: hash: ${p}: not found
166
+ `,u=!0)}return u?_(f,1):W}var Ur=new Map([[":",[": [arguments]",`Null command.
167
+ No effect; the command does nothing.
168
+ Exit Status:
169
+ Always succeeds.`]],[".",[". filename [arguments]",`Execute commands from a file in the current shell.
170
+ Read and execute commands from FILENAME in the current shell.
171
+ The entries in $PATH are used to find the directory containing FILENAME.
172
+ Exit Status:
173
+ Returns the status of the last command executed in FILENAME.`]],["[",["[ arg... ]",`Evaluate conditional expression.
174
+ This is a synonym for the "test" builtin, but the last argument must
175
+ be a literal \`]', to match the opening \`['.`]],["alias",["alias [-p] [name[=value] ... ]",`Define or display aliases.
176
+ Without arguments, \`alias' prints the list of aliases in the reusable
177
+ form \`alias NAME=VALUE' on standard output.
178
+ Exit Status:
179
+ alias returns true unless a NAME is supplied for which no alias has been
180
+ defined.`]],["bg",["bg [job_spec ...]",`Move jobs to the background.
181
+ Place the jobs identified by each JOB_SPEC in the background, as if they
182
+ had been started with \`&'.`]],["break",["break [n]",`Exit for, while, or until loops.
183
+ Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing
184
+ loops.
185
+ Exit Status:
186
+ The exit status is 0 unless N is not greater than or equal to 1.`]],["builtin",["builtin [shell-builtin [arg ...]]",`Execute shell builtins.
187
+ Execute SHELL-BUILTIN with arguments ARGs without performing command
188
+ lookup. This is useful when you wish to reimplement a shell builtin
189
+ as a shell function, but need to execute the builtin within the function.
190
+ Exit Status:
191
+ Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
192
+ not a shell builtin.`]],["caller",["caller [expr]",`Return the context of the current subroutine call.
193
+ Without EXPR, returns "$line $filename". With EXPR, returns
194
+ "$line $subroutine $filename"; this extra information can be used to
195
+ provide a stack trace.
196
+ Exit Status:
197
+ Returns 0 unless the shell is not executing a subroutine call or
198
+ EXPR is invalid.`]],["cd",["cd [-L|-P] [dir]",`Change the shell working directory.
199
+ Change the current directory to DIR. The default DIR is the value of the
200
+ HOME shell variable.
201
+
202
+ The variable CDPATH defines the search path for the directory containing
203
+ DIR. Alternative directory names in CDPATH are separated by a colon (:).
204
+ A null directory name is the same as the current directory. If DIR begins
205
+ with a slash (/), then CDPATH is not used.
206
+
207
+ If the directory is not found, and the shell option \`cdable_vars' is set,
208
+ the word is assumed to be a variable name. If that variable has a value,
209
+ its value is used for DIR.
210
+
211
+ Options:
212
+ -L force symbolic links to be followed
213
+ -P use the physical directory structure without following symbolic
214
+ links
215
+
216
+ The default is to follow symbolic links, as if \`-L' were specified.
217
+
218
+ Exit Status:
219
+ Returns 0 if the directory is changed; non-zero otherwise.`]],["command",["command [-pVv] command [arg ...]",`Execute a simple command or display information about commands.
220
+ Runs COMMAND with ARGS suppressing shell function lookup, or display
221
+ information about the specified COMMANDs.
222
+
223
+ Options:
224
+ -p use a default value for PATH that is guaranteed to find all of
225
+ the standard utilities
226
+ -v print a description of COMMAND similar to the \`type' builtin
227
+ -V print a more verbose description of each COMMAND
228
+
229
+ Exit Status:
230
+ 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.
231
+ Intended to be used from within a shell function generating possible
232
+ completions. If the optional WORD argument is supplied, matches against
233
+ WORD are generated.
234
+ Exit Status:
235
+ 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.
236
+ For each NAME, specify how arguments are to be completed.
237
+ Exit Status:
238
+ Returns success unless an invalid option is supplied or an error occurs.`]],["continue",["continue [n]",`Resume for, while, or until loops.
239
+ Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
240
+ If N is specified, resumes the Nth enclosing loop.
241
+ Exit Status:
242
+ 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.
243
+ Declare variables and give them attributes. If no NAMEs are given,
244
+ display the attributes and values of all variables.
245
+
246
+ Options:
247
+ -a to make NAMEs indexed arrays (if supported)
248
+ -A to make NAMEs associative arrays (if supported)
249
+ -i to make NAMEs have the \`integer' attribute
250
+ -l to convert the value of each NAME to lower case on assignment
251
+ -n make NAME a reference to the variable named by its value
252
+ -r to make NAMEs readonly
253
+ -t to make NAMEs have the \`trace' attribute
254
+ -u to convert the value of each NAME to upper case on assignment
255
+ -x to make NAMEs export
256
+
257
+ Exit Status:
258
+ Returns success unless an invalid option is supplied or a variable
259
+ assignment error occurs.`]],["dirs",["dirs [-clpv] [+N] [-N]",`Display directory stack.
260
+ Display the list of currently remembered directories. Directories
261
+ find their way onto the list with the \`pushd' command; you can get
262
+ back up through the list with the \`popd' command.
263
+ Exit Status:
264
+ Returns success unless an invalid option is supplied or an error occurs.`]],["disown",["disown [-h] [-ar] [jobspec ...]",`Remove jobs from current shell.
265
+ Without any JOBSPECs, remove the current job.`]],["echo",["echo [-neE] [arg ...]",`Write arguments to the standard output.
266
+ Display the ARGs, separated by a single space character and followed by a
267
+ newline, on the standard output.
268
+
269
+ Options:
270
+ -n do not append a newline
271
+ -e enable interpretation of the following backslash escapes
272
+ -E explicitly suppress interpretation of backslash escapes
273
+
274
+ Exit Status:
275
+ Returns success unless a write error occurs.`]],["enable",["enable [-a] [-dnps] [-f filename] [name ...]",`Enable and disable shell builtins.
276
+ Enables and disables builtin shell commands.
277
+ Exit Status:
278
+ Returns success unless NAME is not a shell builtin or an error occurs.`]],["eval",["eval [arg ...]",`Execute arguments as a shell command.
279
+ Combine ARGs into a single string, use the result as input to the shell,
280
+ and execute the resulting commands.
281
+ Exit Status:
282
+ 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.
283
+ Execute COMMAND, replacing this shell with the specified program.
284
+ ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
285
+ any redirections take effect in the current shell.
286
+ Exit Status:
287
+ Returns success unless COMMAND is not found or a redirection error occurs.`]],["exit",["exit [n]",`Exit the shell.
288
+ Exits the shell with a status of N. If N is omitted, the exit status
289
+ is that of the last command executed.`]],["export",["export [-fn] [name[=value] ...] or export -p",`Set export attribute for shell variables.
290
+ Marks each NAME for automatic export to the environment of subsequently
291
+ executed commands. If VALUE is supplied, assign VALUE before exporting.
292
+
293
+ Options:
294
+ -f refer to shell functions
295
+ -n remove the export property from each NAME
296
+ -p display a list of all exported variables and functions
297
+
298
+ Exit Status:
299
+ Returns success unless an invalid option is given or NAME is invalid.`]],["false",["false",`Return an unsuccessful result.
300
+ Exit Status:
301
+ Always fails.`]],["fc",["fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]",`Display or execute commands from the history list.
302
+ Exit Status:
303
+ Returns success or status of executed command.`]],["fg",["fg [job_spec]",`Move job to the foreground.
304
+ Place the job identified by JOB_SPEC in the foreground, making it the
305
+ current job.`]],["getopts",["getopts optstring name [arg]",`Parse option arguments.
306
+ Getopts is used by shell procedures to parse positional parameters
307
+ as options.
308
+
309
+ OPTSTRING contains the option letters to be recognized; if a letter
310
+ is followed by a colon, the option is expected to have an argument,
311
+ which should be separated from it by white space.
312
+ Exit Status:
313
+ Returns success if an option is found; fails if the end of options is
314
+ encountered or an error occurs.`]],["hash",["hash [-lr] [-p pathname] [-dt] [name ...]",`Remember or display program locations.
315
+ Determine and remember the full pathname of each command NAME.
316
+ Exit Status:
317
+ Returns success unless NAME is not found or an invalid option is given.`]],["help",["help [-s] [pattern ...]",`Display information about builtin commands.
318
+ Displays brief summaries of builtin commands. If PATTERN is
319
+ specified, gives detailed help on all commands matching PATTERN,
320
+ otherwise the list of help topics is printed.
321
+
322
+ Options:
323
+ -s output only a short usage synopsis for each topic matching
324
+ PATTERN
325
+
326
+ Exit Status:
327
+ 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.
328
+ Display the history list with line numbers, prefixing each modified
329
+ entry with a \`*'.
330
+ Exit Status:
331
+ 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.
332
+ Lists the active jobs.
333
+ Exit Status:
334
+ 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.
335
+ Send the processes identified by PID or JOBSPEC the signal named by
336
+ SIGSPEC or SIGNUM.
337
+ Exit Status:
338
+ Returns success unless an invalid option is given or an error occurs.`]],["let",["let arg [arg ...]",`Evaluate arithmetic expressions.
339
+ Evaluate each ARG as an arithmetic expression. Evaluation is done in
340
+ fixed-width integers with no check for overflow, though division by 0
341
+ is trapped and flagged as an error.
342
+ Exit Status:
343
+ If the last ARG evaluates to 0, let returns 1; 0 is returned otherwise.`]],["local",["local [option] name[=value] ...",`Define local variables.
344
+ Create a local variable called NAME, and give it VALUE. OPTION can
345
+ be any option accepted by \`declare'.
346
+
347
+ Local can only be used within a function; it makes the variable NAME
348
+ have a visible scope restricted to that function and its children.
349
+ Exit Status:
350
+ Returns success unless an invalid option is supplied, a variable
351
+ assignment error occurs, or the shell is not executing a function.`]],["logout",["logout [n]",`Exit a login shell.
352
+ Exits a login shell with exit status N. Returns an error if not executed
353
+ 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.
354
+ Read lines from the standard input into the indexed array variable ARRAY,
355
+ or from file descriptor FD if the -u option is supplied.
356
+
357
+ Options:
358
+ -d delim Use DELIM to terminate lines, instead of newline
359
+ -n count Copy at most COUNT lines
360
+ -O origin Begin assigning to ARRAY at index ORIGIN
361
+ -s count Discard the first COUNT lines read
362
+ -t Remove a trailing DELIM from each line read (default newline)
363
+ -u fd Read lines from file descriptor FD instead of standard input
364
+
365
+ Exit Status:
366
+ Returns success unless an invalid option is given or ARRAY is readonly.`]],["popd",["popd [-n] [+N | -N]",`Remove directories from stack.
367
+ Removes entries from the directory stack.
368
+ Exit Status:
369
+ Returns success unless an invalid argument is supplied or the directory
370
+ change fails.`]],["printf",["printf [-v var] format [arguments]",`Formats and prints ARGUMENTS under control of the FORMAT.
371
+
372
+ Options:
373
+ -v var assign the output to shell variable VAR rather than
374
+ display it on the standard output
375
+
376
+ FORMAT is a character string which contains three types of objects: plain
377
+ characters, which are simply copied to standard output; character escape
378
+ sequences, which are converted and copied to the standard output; and
379
+ format specifications, each of which causes printing of the next successive
380
+ argument.
381
+ Exit Status:
382
+ Returns success unless an invalid option is given or a write or assignment
383
+ error occurs.`]],["pushd",["pushd [-n] [+N | -N | dir]",`Add directories to stack.
384
+ Adds a directory to the top of the directory stack, or rotates
385
+ the stack, making the new top of the stack the current working
386
+ directory.
387
+ Exit Status:
388
+ Returns success unless an invalid argument is supplied or the directory
389
+ change fails.`]],["pwd",["pwd [-LP]",`Print the name of the current working directory.
390
+
391
+ Options:
392
+ -L print the value of $PWD if it names the current working
393
+ directory
394
+ -P print the physical directory, without any symbolic links
395
+
396
+ By default, \`pwd' behaves as if \`-L' were specified.
397
+ Exit Status:
398
+ Returns 0 unless an invalid option is given or the current directory
399
+ 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.
400
+ Reads a single line from the standard input, or from file descriptor FD
401
+ if the -u option is supplied. The line is split into fields as with word
402
+ splitting, and the first word is assigned to the first NAME, the second
403
+ word to the second NAME, and so on, with any leftover words assigned to
404
+ the last NAME.
405
+ Exit Status:
406
+ The return code is zero, unless end-of-file is encountered, read times out,
407
+ 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.
408
+ Mark each NAME as read-only; the values of these NAMEs may not be
409
+ changed by subsequent assignment.
410
+ Exit Status:
411
+ Returns success unless an invalid option is given or NAME is invalid.`]],["return",["return [n]",`Return from a shell function.
412
+ Causes a function or sourced script to exit with the return value
413
+ specified by N. If N is omitted, the return status is that of the
414
+ last command executed within the function or script.
415
+ Exit Status:
416
+ 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.
417
+ Change the value of shell attributes and positional parameters, or
418
+ display the names and values of shell variables.
419
+
420
+ Options:
421
+ -e Exit immediately if a command exits with a non-zero status.
422
+ -u Treat unset variables as an error when substituting.
423
+ -x Print commands and their arguments as they are executed.
424
+ -o option-name
425
+ Set the variable corresponding to option-name
426
+
427
+ Exit Status:
428
+ Returns success unless an invalid option is given.`]],["shift",["shift [n]",`Shift positional parameters.
429
+ Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is
430
+ not given, it is assumed to be 1.
431
+ Exit Status:
432
+ Returns success unless N is negative or greater than $#.`]],["shopt",["shopt [-pqsu] [-o] [optname ...]",`Set and unset shell options.
433
+ Change the setting of each shell option OPTNAME. Without any option
434
+ arguments, list each supplied OPTNAME, or all shell options if no
435
+ OPTNAMEs are given, with an indication of whether or not each is set.
436
+
437
+ Options:
438
+ -o restrict OPTNAMEs to those defined for use with \`set -o'
439
+ -p print each shell option with an indication of its status
440
+ -q suppress output
441
+ -s enable (set) each OPTNAME
442
+ -u disable (unset) each OPTNAME
443
+
444
+ Exit Status:
445
+ Returns success if OPTNAME is enabled; fails if an invalid option is
446
+ given or OPTNAME is disabled.`]],["source",["source filename [arguments]",`Execute commands from a file in the current shell.
447
+ Read and execute commands from FILENAME in the current shell.
448
+ The entries in $PATH are used to find the directory containing FILENAME.
449
+ Exit Status:
450
+ Returns the status of the last command executed in FILENAME.`]],["suspend",["suspend [-f]",`Suspend shell execution.
451
+ Suspend the execution of this shell until it receives a SIGCONT signal.`]],["test",["test [expr]",`Evaluate conditional expression.
452
+ Exits with a status of 0 (true) or 1 (false) depending on
453
+ the evaluation of EXPR. Expressions may be unary or binary.
454
+ Exit Status:
455
+ Returns success if EXPR evaluates to true; fails if EXPR evaluates to
456
+ false or an invalid argument is given.`]],["times",["times",`Display process times.
457
+ Prints the accumulated user and system times for the shell and all of its
458
+ child processes.
459
+ Exit Status:
460
+ Always succeeds.`]],["trap",["trap [-lp] [[arg] signal_spec ...]",`Trap signals and other events.
461
+ Defines and activates handlers to be run when the shell receives signals
462
+ or other conditions.
463
+ Exit Status:
464
+ Returns success unless a SIGSPEC is invalid or an invalid option is given.`]],["true",["true",`Return a successful result.
465
+ Exit Status:
466
+ Always succeeds.`]],["type",["type [-afptP] name [name ...]",`Display information about command type.
467
+ For each NAME, indicate how it would be interpreted if used as a
468
+ command name.
469
+
470
+ Options:
471
+ -a display all locations containing an executable named NAME
472
+ -f suppress shell function lookup
473
+ -P force a PATH search for each NAME, even if it is an alias,
474
+ builtin, or function, and returns the name of the disk file
475
+ that would be executed
476
+ -p returns either the name of the disk file that would be executed,
477
+ or nothing if \`type -t NAME' would not return \`file'
478
+ -t output a single word which is one of \`alias', \`keyword',
479
+ \`function', \`builtin', \`file' or \`', if NAME is an alias,
480
+ shell reserved word, shell function, shell builtin, disk file,
481
+ or not found, respectively
482
+
483
+ Exit Status:
484
+ 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.
485
+ Provides control over the resources available to the shell and processes
486
+ it creates, on systems that allow such control.
487
+ Exit Status:
488
+ Returns success unless an invalid option is supplied or an error occurs.`]],["umask",["umask [-p] [-S] [mode]",`Display or set file mode mask.
489
+ Sets the user file-creation mask to MODE. If MODE is omitted, prints
490
+ the current value of the mask.
491
+ Exit Status:
492
+ 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.
493
+ Exit Status:
494
+ 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.
495
+ For each NAME, remove the corresponding variable or function.
496
+
497
+ Options:
498
+ -f treat each NAME as a shell function
499
+ -v treat each NAME as a shell variable
500
+ -n treat each NAME as a name reference and unset the variable itself
501
+ rather than the variable it references
502
+
503
+ Without options, unset first tries to unset a variable, and if that fails,
504
+ tries to unset a function.
505
+ Exit Status:
506
+ 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.
507
+ Waits for each process identified by an ID, which may be a process ID or a
508
+ job specification, and reports its termination status.
509
+ Exit Status:
510
+ Returns the status of the last ID; fails if ID is invalid or an invalid
511
+ option is given.`]]]),Zr=[...Ur.keys()].sort();function mn(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
512
+ `,2)}r++}else n.push(l),r++}if(n.length===0)return Za();let i="",a=!1,o="";for(let l of n){let c=Ua(l);if(c.length===0){o+=`bash: help: no help topics match \`${l}'. Try \`help help' or \`man -k ${l}' or \`info ${l}'.
513
+ `,a=!0;continue}for(let u of c){let f=Ur.get(u);if(!f)continue;let[d,h]=f;s?i+=`${u}: ${d}
514
+ `:i+=`${u}: ${d}
515
+ ${h}
516
+ `}}return{exitCode:a?1:0,stdout:i,stderr:o}}function Ua(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,"."),s=vt(`^${t}$`);return Zr.filter(n=>s.test(n))}function Za(){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=Zr.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 F(`${e.join(`
517
+ `)}
518
+ `)}function qa(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 yn(e,t){if(t.length===0)return _(`bash: let: expression expected
519
+ `);let s=qa(t),n=0;for(let r of s)try{let a=Ee(`(( ${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 B(e,o.expression.expression))}}catch(i){return _(`bash: let: ${r}: ${i.message}
520
+ `)}return k("","",n===0?1:0)}async function gn(e,t){if(e.state.localScopes.length===0)return _(`bash: local: can only be used in a function
521
+ `);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}
522
+ `)}return k(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
523
+ `,r=1;continue}if(ee(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let v=`${u}_`;for(let E of e.state.env.keys())E.startsWith(v)&&!E.includes("__")&&(s.has(E)||s.set(E,e.state.env.get(E)))}let g=`${u}_`;for(let v of e.state.env.keys())v.startsWith(g)&&!v.includes("__")&&e.state.env.delete(v);let O=Te(b);for(let v=0;v<O.length;v++)e.state.env.set(`${u}_${v}`,O[v]);e.state.env.set(`${u}__length`,String(O.length)),He(e,u),i&&xe(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 $ of e.state.env.keys())$.startsWith(S)&&!$.includes("__")&&(s.has($)||s.set($,e.state.env.get($)));let P=`${u}__length`;e.state.env.has(P)&&!s.has(P)&&s.set(P,e.state.env.get(P))}let g=Te(b),O=ne(e,u),v=0,E=e.state.env.get(u);O.length===0&&E!==void 0?(e.state.env.set(`${u}_0`,E),e.state.env.delete(u),v=1):O.length>0&&(v=Math.max(...O)+1);for(let S=0;S<g.length;S++)e.state.env.set(`${u}_${v+S}`,G(e,g[S]));let w=v+g.length;e.state.env.set(`${u}__length`,String(w)),He(e,u),i&&xe(e,u);continue}let p=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(p){u=p[1];let b=G(e,p[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),He(e,u),i&&xe(e,u);continue}let m=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(m){u=m[1];let b=m[2],g=G(e,m[3]);if(ee(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let E=`${u}_`;for(let S of e.state.env.keys())S.startsWith(E)&&!S.includes("__")&&(s.has(S)||s.set(S,e.state.env.get(S)));let w=`${u}__length`;e.state.env.has(w)&&!s.has(w)&&s.set(w,e.state.env.get(w))}let O;try{let E=new V,w=Q(E,b);O=await B(e,w.expression)}catch{let E=parseInt(b,10);O=Number.isNaN(E)?0:E}e.state.env.set(`${u}_${O}`,g);let v=parseInt(e.state.env.get(`${u}__length`)??"0",10);O>=v&&e.state.env.set(`${u}__length`,String(O+1)),He(e,u),i&&xe(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
524
+ `,r=1;continue}let y=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),O=e.state.mutatedTempEnvVars?.has(u);if(!g&&!O)for(let v=e.state.tempEnvBindings.length-1;v>=0;v--){let E=e.state.tempEnvBindings[v];if(E.has(u)){b=E.get(u);break}}}Or(e,u,b)}if(!y){let b=e.state.env.get(u);if(e.state.tempEnvBindings)for(let g=e.state.tempEnvBindings.length-1;g>=0;g--){let O=e.state.tempEnvBindings[g];if(O.has(u)){b=O.get(u);break}}if(s.set(u,b),a){let g=`${u}_`;for(let v of e.state.env.keys())v.startsWith(g)&&!v.includes("__")&&(s.has(v)||s.set(v,e.state.env.get(v)));let O=`${u}__length`;e.state.env.has(O)&&!s.has(O)&&s.set(O,e.state.env.get(O))}}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
525
+ `,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));!y&&!b&&e.state.env.delete(u)}He(e,u),i&&xe(e,u)}return k("",n,r)}function wn(e,t,s){let n=`
526
+ `,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]||`
527
+ `,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,p=0,m=e.limits?.maxArrayElements??1e5;for(;d.length>0;){let g=d.indexOf(n);if(g===-1){if(d.length>0){if(p<a)p++;else if(r===0||h<r){if(i+h>=m)return k("",`mapfile: array element limit exceeded (${m})
528
+ `,1);let E=d,w=E.indexOf("\0");w!==-1&&(E=E.substring(0,w)),f.push(E),h++}}break}let O=d.substring(0,g),v=O.indexOf("\0");if(v!==-1&&(O=O.substring(0,v)),!o&&n!=="\0"&&(O+=n),d=d.substring(g+n.length),p<a){p++;continue}if(r>0&&h>=r)break;if(i+h>=m)return k("",`mapfile: array element limit exceeded (${m})
529
+ `,1);f.push(O),h++}i===0&&Ne(e,l);for(let g=0;g<f.length;g++)e.state.env.set(`${l}_${i+g}`,f[g]);let y=parseInt(e.state.env.get(`${l}__length`)||"0",10),b=i+f.length;return e.state.env.set(`${l}__length`,String(Math.max(y,b))),e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=""),k("","",0)}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}}function Ka(e,t,s){return`__rw__:${e.length}:${e}:${t}:${s}`}function vn(e,t,s,n=-1){let r=!1,i=`
530
+ `,a="",o=-1,l=-1,c=null,u=-1,f=-1,d=[],h=0,p=!1,m=(A,D)=>{let I=1;for(;I<A.length;){let C=A[I];if(C==="r")r=!0,I++;else if(C==="s")I++;else{if(C==="d")return I+1<A.length?(i=A.substring(I+1),{nextArgIndex:D+1}):D+1<t.length?(i=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(C==="n"){if(I+1<A.length){let R=A.substring(I+1);return o=Number.parseInt(R,10),(Number.isNaN(o)||o<0)&&(p=!0,o=0),{nextArgIndex:D+1}}else if(D+1<t.length)return o=Number.parseInt(t[D+1],10),(Number.isNaN(o)||o<0)&&(p=!0,o=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(C==="N"){if(I+1<A.length){let R=A.substring(I+1);return l=Number.parseInt(R,10),(Number.isNaN(l)||l<0)&&(p=!0,l=0),{nextArgIndex:D+1}}else if(D+1<t.length)return l=Number.parseInt(t[D+1],10),(Number.isNaN(l)||l<0)&&(p=!0,l=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else{if(C==="a")return I+1<A.length?(c=A.substring(I+1),{nextArgIndex:D+1}):D+1<t.length?(c=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(C==="p")return I+1<A.length?(a=A.substring(I+1),{nextArgIndex:D+1}):D+1<t.length?(a=t[D+1],{nextArgIndex:D+2}):{nextArgIndex:D+1};if(C==="u"){if(I+1<A.length){let R=A.substring(I+1);return u=Number.parseInt(R,10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:D+1}}else if(D+1<t.length)return u=Number.parseInt(t[D+1],10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(C==="t"){if(I+1<A.length){let R=A.substring(I+1);return f=Number.parseFloat(R),Number.isNaN(f)&&(f=0),{nextArgIndex:D+1}}else if(D+1<t.length)return f=Number.parseFloat(t[D+1]),Number.isNaN(f)&&(f=0),{nextArgIndex:D+2};return{nextArgIndex:D+1}}else if(C==="e"||C==="i"||C==="P"){if(C==="i"&&D+1<t.length)return{nextArgIndex:D+2};I++}else I++}}}return{nextArgIndex:D+1}};for(;h<t.length;){let A=t[h];if(A.startsWith("-")&&A.length>1&&A!=="--"){let D=m(A,h);if(D.nextArgIndex===-1)return{stdout:"",stderr:"",exitCode:2};if(D.nextArgIndex===-2)return{stdout:"",stderr:"",exitCode:1};h=D.nextArgIndex}else if(A==="--")for(h++;h<t.length;)d.push(t[h]),h++;else d.push(A),h++}if(p)return k("","",1);if(d.length===0&&c===null&&d.push("REPLY"),f===0){if(c)Ne(e,c);else{for(let A of d)e.state.env.set(A,"");d.length===0&&e.state.env.set("REPLY","")}return k("","",0)}if(f<0&&f!==-1)return k("","",1);let y=s;u>=0?e.state.fileDescriptors?y=e.state.fileDescriptors.get(u)||"":y="":!y&&e.state.groupStdin!==void 0&&(y=e.state.groupStdin);let b=i===""?"\0":i,g="",O=0,v=!0,E=A=>{if(u>=0&&e.state.fileDescriptors)e.state.fileDescriptors.set(u,y.substring(A));else if(n>=0&&e.state.fileDescriptors){let D=e.state.fileDescriptors.get(n);if(D?.startsWith("__rw__:")){let I=Ga(D);if(I){let C=I.position+A;e.state.fileDescriptors.set(n,Ka(I.path,C,I.content))}}}else e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=y.substring(A))};if(l>=0){let A=Math.min(l,y.length);g=y.substring(0,A),O=A,v=A>=l,E(O);let D=d[0]||"REPLY";e.state.env.set(D,g);for(let I=1;I<d.length;I++)e.state.env.set(d[I],"");return k("","",v?0:1)}else if(o>=0){let A=0,D=0,I=!1;for(;D<y.length&&A<o;){let C=y[D];if(C===b){O=D+1,I=!0;break}if(!r&&C==="\\"&&D+1<y.length){let R=y[D+1];if(R===b&&b===`
531
+ `){D+=2,O=D;continue}if(R===b){D+=2,A++,g+=R,O=D;continue}g+=R,D+=2,A++,O=D}else g+=C,D++,A++,O=D}v=A>=o||I,E(O)}else{O=0;let A=0;for(;A<y.length;){let D=y[A];if(D===b){O=A+b.length,v=!0;break}if(!r&&D==="\\"&&A+1<y.length){let I=y[A+1];if(I===`
532
+ `){A+=2;continue}if(I===b){g+=I,A+=2;continue}g+=D,g+=I,A+=2;continue}g+=D,A++}if(A>=y.length&&(v=!1,O=A,g.length===0&&y.length===0)){for(let D of d)e.state.env.set(D,"");return c&&Ne(e,c),k("","",1)}E(O)}b===`
533
+ `&&g.endsWith(`
534
+ `)&&(g=g.slice(0,-1));let w=A=>r?A:A.replace(/\\(.)/g,"$1");if(d.length===1&&d[0]==="REPLY")return e.state.env.set("REPLY",w(g)),k("","",v?0:1);let S=Zn(e.state.env);if(c){let{words:A}=Cs(g,S,void 0,r),D=e.limits?.maxArrayElements??1e5;if(A.length>D)return k("",`read: array element limit exceeded (${D})
535
+ `,1);Ne(e,c);for(let I=0;I<A.length;I++)e.state.env.set(`${c}_${I}`,w(A[I]));return k("","",v?0:1)}let P=d.length,{words:$,wordStarts:N}=Cs(g,S,P,r);for(let A=0;A<d.length;A++){let D=d[A];if(A<d.length-1)e.state.env.set(D,w($[A]??""));else if(A<N.length){let I=g.substring(N[A]);I=qn(I,S,r),I=w(I),e.state.env.set(D,I)}else e.state.env.set(D,"")}return k("","",v?0:1)}function bn(e,t){if(e.state.callDepth===0&&e.state.sourceDepth===0)return _("bash: return: can only 'return' from a function or sourced script (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
536
+ `,2);s=(r%256+256)%256}throw new le(s)}var Ct=`set: usage: set [-eux] [+eux] [-o option] [+o option]
537
+ Options:
538
+ -e Exit immediately if a command exits with non-zero status
539
+ +e Disable -e
540
+ -u Treat unset variables as an error when substituting
541
+ +u Disable -u
542
+ -x Print commands and their arguments as they are executed
543
+ +x Disable -x
544
+ -o errexit Same as -e
545
+ +o errexit Disable errexit
546
+ -o nounset Same as -u
547
+ +o nounset Disable nounset
548
+ -o pipefail Return status of last failing command in pipeline
549
+ +o pipefail Disable pipefail
550
+ -o xtrace Same as -x
551
+ +o xtrace Disable xtrace
552
+ `,qr=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]]),ls=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]]),Xr=["errexit","nounset","pipefail","verbose","xtrace","posix","allexport","noclobber","noglob","noexec","vi","emacs"],Yr=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"];function $n(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,lt(e))}function Xa(e,t){return t+1<e.length&&!e[t+1].startsWith("-")&&!e[t+1].startsWith("+")}function Ya(e,t){let s=ne(e,t);if(s.length===0)return`${t}=()`;let n=s.map(r=>{let i=e.state.env.get(`${t}_${r}`)??"";return`[${r}]=${Ye(i)}`});return`${t}=(${n.join(" ")})`}function Qa(e){return/^[a-zA-Z0-9_]+$/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ja(e,t){let s=Ve(e,t);if(s.length===0)return`${t}=()`;let n=s.map(r=>{let i=e.state.env.get(`${t}_${r}`)??"";return`[${Qa(r)}]=${Ye(i)}`});return`${t}=(${n.join(" ")} )`}function eo(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 to(e){return e.state.associativeArrays??new Set}function Gr(e){let t=Xr.map(n=>`${n.padEnd(16)}${e.state.options[n]?"on":"off"}`),s=Yr.map(n=>`${n.padEnd(16)}off`);return`${[...t,...s].sort().join(`
553
+ `)}
554
+ `}function Kr(e){let t=Xr.map(n=>`set ${e.state.options[n]?"-o":"+o"} ${n}`),s=Yr.map(n=>`set +o ${n}`);return`${[...t,...s].sort().join(`
555
+ `)}
556
+ `}function Sn(e,t){if(t.includes("--help"))return F(Ct);if(t.length===0){let i=eo(e),a=to(e),o=u=>{for(let f of a){let d=`${f}_`,h=`${f}__length`;if(u!==h&&u.startsWith(d)){if(u.slice(d.length).startsWith("_length"))continue;return!0}}return!1},l=[];for(let[u,f]of e.state.env){if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)||i.has(u)||a.has(u))continue;let d=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(d&&i.has(d[1]))continue;let h=u.match(/^([a-zA-Z_][a-zA-Z0-9_]*)__length$/);h&&i.has(h[1])||o(u)||h&&a.has(h[1])||l.push([u,f])}let c=[];for(let[u,f]of l.sort(([d],[h])=>d<h?-1:d>h?1:0))c.push(`${u}=${is(f)}`);for(let u of[...i].sort((f,d)=>f<d?-1:f>d?1:0))c.push(Ya(e,u));for(let u of[...a].sort((f,d)=>f<d?-1:f>d?1:0))c.push(Ja(e,u));return c.sort((u,f)=>{let d=u.split("=")[0],h=f.split("=")[0];return d<h?-1:d>h?1:0}),F(c.length>0?`${c.join(`
557
+ `)}
558
+ `:"")}let s=[],n=()=>s.length>0?F(s.join("")):W,r=0;for(;r<t.length;){let i=t[r];if((i==="-o"||i==="+o")&&Xa(t,r)){let a=t[r+1];if(!ls.has(a)){let o=`bash: set: ${a}: invalid option name
559
+ ${Ct}`;if(e.state.options.posix)throw new me(1,"",o);return _(o,2)}$n(e,ls.get(a)??null,i==="-o"),r+=2;continue}if(i==="-o"){s.push(Gr(e)),r++;continue}if(i==="+o"){s.push(Kr(e)),r++;continue}if(i.length>1&&(i[0]==="-"||i[0]==="+")&&i[1]!=="-"){let a=i[0]==="-",o=0;for(let l=1;l<i.length;l++){let c=i[l];if(c==="o"){let u=r+1+o;if(u<t.length&&!t[u].startsWith("-")&&!t[u].startsWith("+")){let d=t[u];if(!ls.has(d)){let h=`bash: set: ${d}: invalid option name
560
+ ${Ct}`;if(e.state.options.posix)throw new me(1,"",h);return _(h,2)}$n(e,ls.get(d)??null,a),o++;continue}s.push(a?Gr(e):Kr(e));continue}if(!qr.has(c)){let u=`bash: set: ${i[0]}${c}: invalid option
561
+ ${Ct}`;if(e.state.options.posix)throw new me(1,"",u);return _(u,2)}$n(e,qr.get(c)??null,a)}r+=1+o;continue}if(i==="--")return En(e,t.slice(r+1)),n();if(i==="-"){if(e.state.options.xtrace=!1,e.state.options.verbose=!1,lt(e),r+1<t.length)return En(e,t.slice(r+1)),n();r++;continue}if(i==="+"){r++;continue}if(i.startsWith("-")||i.startsWith("+")){let a=`bash: set: ${i}: invalid option
562
+ ${Ct}`;if(e.state.options.posix)throw new me(1,"",a);return _(a,2)}return En(e,t.slice(r)),n()}return n()}function En(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 An(e,t){let s=1;if(t.length>1)return _(`bash: shift: too many arguments
563
+ `);if(t.length>0){let a=Number.parseInt(t[0],10);if(Number.isNaN(a)){let o=`bash: shift: ${t[0]}: numeric argument required
564
+ `;if(e.state.options.posix)throw new me(1,"",o);return _(o)}if(a<0){let o=`bash: shift: shift count out of range
565
+ `;if(e.state.options.posix)throw new me(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
566
+ `;if(e.state.options.posix)throw new me(1,"",a);return _(a)}if(s===0)return W;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(" ")),W}async function _n(e,t,s=""){let n=t;if(n.length>0&&n[0]==="--"&&(n=n.slice(1)),n.length===0)return k("",`bash: source: filename argument required
567
+ `,2);let r=n[0],i=null,a=null;if(r.includes("/")){let d=e.fs.resolvePath(e.state.cwd,r);try{a=await e.fs.readFile(d),i=d}catch{}}else{let h=(e.state.env.get("PATH")||"").split(":").filter(p=>p);for(let p of h){let m=e.fs.resolvePath(e.state.cwd,`${p}/${r}`);try{if((await e.fs.stat(m)).isDirectory)continue;a=await e.fs.readFile(m),i=m;break}catch{}}if(a===null){let p=e.fs.resolvePath(e.state.cwd,r);try{a=await e.fs.readFile(p),i=p}catch{}}}if(a===null)return _(`bash: ${r}: No such file or directory
568
+ `);let o=new Map;if(n.length>1){for(let h=1;h<=9;h++)o.set(String(h),e.state.env.get(String(h)));o.set("#",e.state.env.get("#")),o.set("@",e.state.env.get("@"));let d=n.slice(1);e.state.env.set("#",String(d.length)),e.state.env.set("@",d.join(" "));for(let h=0;h<d.length&&h<9;h++)e.state.env.set(String(h+1),d[h]);for(let h=d.length+1;h<=9;h++)e.state.env.delete(String(h))}let l=e.state.currentSource,c=s!=="",u=e.state.groupStdin,f=()=>{if(e.state.sourceDepth--,e.state.currentSource=l,c&&(e.state.groupStdin=u),n.length>1)for(let[d,h]of o)h===void 0?e.state.env.delete(d):e.state.env.set(d,h)};if(e.state.sourceDepth++,e.state.sourceDepth>e.limits.maxSourceDepth)throw e.state.sourceDepth--,new X(`source: maximum nesting depth (${e.limits.maxSourceDepth}) exceeded, increase executionLimits.maxSourceDepth`,"recursion");e.state.currentSource=r,c&&(e.state.groupStdin=s);try{let d=Ee(a),h=await e.executeScript(d);return f(),h}catch(d){if(f(),d instanceof Z)throw d;if(d instanceof le)return k(d.stdout,d.stderr,d.exitCode);if(d.name==="ParseException")return _(`bash: ${r}: ${d.message}
569
+ `);throw d}}function Qr(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function so(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')}async function Jr(e,t){if(so(t))return null;try{let s=new V,n=Q(s,t);return await B(e,n.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}function ei(e,t){if(e.state.localVarStack?.has(t)){let n=ts(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)es(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,n.scopeIndex),Cn(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),es(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||es(e,t),!0}}return!1}function Cn(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 ti(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 T(e,r)}if(t.includes("$")){let n=new V().parseWordFromString(t,!1,!1);return T(e,n)}return t}async function Pn(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 O=Se(e,d);for(let[v]of O)e.state.env.delete(`${d}_${v}`);e.state.env.delete(d);continue}let p=e.state.associativeArrays?.has(d);if(p){let O=await ti(e,h);e.state.env.delete(`${d}_${O}`);continue}let m=Ns(e,d),y=e.state.declaredVars?.has(d);if((e.state.env.has(d)||y)&&!m&&!p){n+=`bash: unset: ${d}: not an array variable
570
+ `,r=1;continue}let g=await Jr(e,h);if(g===null&&m){n+=`bash: unset: ${h}: not a valid identifier
571
+ `,r=1;continue}if(g===null)continue;if(g<0){let O=Se(e,d),v=O.length,E=e.state.currentLine;if(v===0){n+=`bash: line ${E}: unset: [${g}]: bad array subscript
572
+ `,r=1;continue}let w=v+g;if(w<0){n+=`bash: line ${E}: unset: [${g}]: bad array subscript
573
+ `,r=1;continue}let S=O[w][0];e.state.env.delete(`${d}_${S}`);continue}e.state.env.delete(`${d}_${g}`);continue}if(!Qr(i)){n+=`bash: unset: ${i}: not a valid identifier
574
+ `,r=1;continue}let u=i;if(ve(e,i)){let d=Be(e,i);d&&d!==i&&(u=d)}if(Ke(e,u)){n+=`bash: unset: ${u}: cannot unset: readonly variable
575
+ `,r=1;continue}let f=ut(e,u);if(f!==void 0&&f!==e.state.callDepth)ei(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 p=ts(e,u);p?p.value===void 0?e.state.env.delete(u):e.state.env.set(u,p.value):e.state.env.delete(u)}else e.state.env.delete(u)}else Cn(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 m=Se(e,c);for(let[y]of m)e.state.env.delete(`${c}_${y}`);e.state.env.delete(c);continue}let f=e.state.associativeArrays?.has(c);if(f){let m=await ti(e,u);e.state.env.delete(`${c}_${m}`);continue}let d=Ns(e,c);if(e.state.env.has(c)&&!d&&!f){n+=`bash: unset: ${c}: not an array variable
576
+ `,r=1;continue}let p=await Jr(e,u);if(p===null&&d){n+=`bash: unset: ${u}: not a valid identifier
577
+ `,r=1;continue}if(p===null)continue;if(p<0){let m=Se(e,c),y=m.length,b=e.state.currentLine;if(y===0){n+=`bash: line ${b}: unset: [${p}]: bad array subscript
578
+ `,r=1;continue}let g=y+p;if(g<0){n+=`bash: line ${b}: unset: [${p}]: bad array subscript
579
+ `,r=1;continue}let O=m[g][0];e.state.env.delete(`${c}_${O}`);continue}e.state.env.delete(`${c}_${p}`);continue}if(!Qr(i)){n+=`bash: unset: ${i}: not a valid identifier
580
+ `,r=1;continue}let o=i;if(ve(e,i)){let c=Be(e,i);c&&c!==i&&(o=c)}if(Ke(e,o)){n+=`bash: unset: ${o}: cannot unset: readonly variable
581
+ `,r=1;continue}let l=ut(e,o);if(l!==void 0&&l!==e.state.callDepth)ei(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=ts(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 Cn(e,o)||e.state.env.delete(o);e.state.exportedVars?.delete(o),e.state.functions.delete(i)}return k("",n,r)}var kn=["extglob","dotglob","nullglob","failglob","globstar","globskipdots","nocaseglob","nocasematch","expand_aliases","lastpipe","xpg_echo"],no=["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 cs(e){return kn.includes(e)}function ro(e){return no.includes(e)}function si(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 p=d[h];switch(p){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: -${p}: invalid option
582
+ `}}}l++}else break}for(;l<t.length;)o.push(t[l]),l++;if(a)return io(e,o,s,n,r,i);if(s&&n)return{exitCode:1,stdout:"",stderr:`shopt: cannot set and unset shell options simultaneously
583
+ `};if(o.length===0){if(s||n){let h=[];for(let p of kn){let m=e.state.shoptOptions[p];s&&m?h.push(r?`shopt -s ${p}`:`${p} on`):n&&!m&&h.push(r?`shopt -u ${p}`:`${p} off`)}return{exitCode:0,stdout:h.length>0?`${h.join(`
584
+ `)}
585
+ `:"",stderr:""}}let d=[];for(let h of kn){let p=e.state.shoptOptions[h];d.push(r?`shopt ${p?"-s":"-u"} ${h}`:`${h} ${p?"on":"off"}`)}return{exitCode:0,stdout:`${d.join(`
586
+ `)}
587
+ `,stderr:""}}let c=!1,u="",f=[];for(let d of o){if(!cs(d)&&!ro(d)){u+=`shopt: ${d}: invalid shell option name
588
+ `,c=!0;continue}if(s)cs(d)&&(e.state.shoptOptions[d]=!0,Ls(e));else if(n)cs(d)&&(e.state.shoptOptions[d]=!1,Ls(e));else if(cs(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(`
589
+ `)}
590
+ `:"",stderr:u}}function io(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 p=o.includes(h),m=a.get(h),y=p||!m?!1:e.state.options[m];s&&!y||n&&y||d.push(r?`set ${y?"-o":"+o"} ${h}`:`${h} ${y?"on":"off"}`)}return{exitCode:0,stdout:d.length>0?`${d.join(`
591
+ `)}
592
+ `:"",stderr:""}}let c=!1,u="",f=[];for(let d of t){let h=a.has(d),p=o.includes(d);if(!h&&!p){u+=`shopt: ${d}: invalid option name
593
+ `,c=!0;continue}if(p){s||n||(i?c=!0:r?(f.push(`set +o ${d}`),c=!0):(f.push(`${d} off`),c=!0));continue}let m=a.get(d);if(m)if(s)m==="vi"?e.state.options.emacs=!1:m==="emacs"&&(e.state.options.vi=!1),e.state.options[m]=!0,lt(e);else if(n)e.state.options[m]=!1,lt(e);else{let y=e.state.options[m];i?y||(c=!0):r?(f.push(`set ${y?"-o":"+o"} ${d}`),y||(c=!0)):(f.push(`${d} ${y?"on":"off"}`),y||(c=!0))}}return{exitCode:c?1:0,stdout:f.length>0?`${f.join(`
594
+ `)}
595
+ `:"",stderr:u}}async function ni(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 us(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 ao(e){return e!==null&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function q(e,t,s,n){return((...r)=>{bt(t,s,`${n} call`);let i=e(...r);return ao(i)?i.then(a=>(bt(t,s,`${n} post-await`),a),a=>{throw bt(t,s,`${n} post-await`),a}):(bt(t,s,`${n} return`),i)})}function oo(e,t,s){let n={readFile:q(e.readFile.bind(e),t,s,"fs.readFile"),...typeof e.readFileBytes=="function"?{readFileBytes:q(e.readFileBytes.bind(e),t,s,"fs.readFileBytes")}:Object.create(null),readFileBuffer:q(e.readFileBuffer.bind(e),t,s,"fs.readFileBuffer"),writeFile:q(e.writeFile.bind(e),t,s,"fs.writeFile"),appendFile:q(e.appendFile.bind(e),t,s,"fs.appendFile"),exists:q(e.exists.bind(e),t,s,"fs.exists"),stat:q(e.stat.bind(e),t,s,"fs.stat"),mkdir:q(e.mkdir.bind(e),t,s,"fs.mkdir"),readdir:q(e.readdir.bind(e),t,s,"fs.readdir"),rm:q(e.rm.bind(e),t,s,"fs.rm"),cp:q(e.cp.bind(e),t,s,"fs.cp"),mv:q(e.mv.bind(e),t,s,"fs.mv"),resolvePath:q(e.resolvePath.bind(e),t,s,"fs.resolvePath"),getAllPaths:q(e.getAllPaths.bind(e),t,s,"fs.getAllPaths"),chmod:q(e.chmod.bind(e),t,s,"fs.chmod"),symlink:q(e.symlink.bind(e),t,s,"fs.symlink"),link:q(e.link.bind(e),t,s,"fs.link"),readlink:q(e.readlink.bind(e),t,s,"fs.readlink"),lstat:q(e.lstat.bind(e),t,s,"fs.lstat"),realpath:q(e.realpath.bind(e),t,s,"fs.realpath"),utimes:q(e.utimes.bind(e),t,s,"fs.utimes")};return e.readdirWithFileTypes&&(n.readdirWithFileTypes=q(e.readdirWithFileTypes.bind(e),t,s,"fs.readdirWithFileTypes")),n}function Nn(e,t){if(!e.requireDefenseContext)return e;let s=`command:${t}`,n={...e,fs:oo(e.fs,e.requireDefenseContext,s)};return e.exec&&(n.exec=q(e.exec,e.requireDefenseContext,s,"exec")),e.fetch&&(n.fetch=q(e.fetch,e.requireDefenseContext,s,"fetch")),e.sleep&&(n.sleep=q(e.sleep,e.requireDefenseContext,s,"sleep")),e.getRegisteredCommands&&(n.getRegisteredCommands=q(e.getRegisteredCommands,e.requireDefenseContext,s,"getRegisteredCommands")),n}async function ii(e,t,s,n){let r=!1,i=!1,a=!1,o=!1,l=!1,c=[];for(let m of t)if(m.startsWith("-")&&m.length>1)for(let y of m.slice(1))if(y==="t")r=!0;else if(y==="p")i=!0;else if(y==="P")a=!0;else if(y==="a")o=!0;else if(y==="f")l=!0;else return k("",`type: -${y}: unsupported option
596
+ `,2);else c.push(m);let u="",f="",d=0,h=!1,p=!1;for(let m of c){let y=!1;if(a){if(o){let S=await n(m);if(S.length>0){for(let P of S)u+=`${P}
597
+ `;h=!0,y=!0}}else{let S=await s(m);S&&(u+=`${S}
598
+ `,h=!0,y=!0)}y||(p=!0);continue}let b=!l&&e.state.functions.has(m);if(o&&b){if(!i)if(r)u+=`function
599
+ `;else{let S=e.state.functions.get(m),P=S?ri(m,S):`${m} is a shell function
600
+ `;u+=P}y=!0}let g=e.state.env.get(`BASH_ALIAS_${m}`);if(g!==void 0&&(o||!y)&&(i||(r?u+=`alias
601
+ `:u+=`${m} is aliased to \`${g}'
602
+ `),y=!0,!o)||Hs.has(m)&&(o||!y)&&(i||(r?u+=`keyword
603
+ `:u+=`${m} is a shell keyword
604
+ `),y=!0,!o)||e.commands.has(m)&&(o||!y)&&(i||(r?u+=`registered
605
+ `:u+=`${m} is a registered command
606
+ `),y=!0,!o))continue;if(!o&&b&&!y){if(!i)if(r)u+=`function
607
+ `;else{let S=e.state.functions.get(m),P=S?ri(m,S):`${m} is a shell function
608
+ `;u+=P}y=!0;continue}if(!(ft.has(m)&&(o||!y)&&(i||(r?u+=`builtin
609
+ `:u+=`${m} is a shell builtin
610
+ `),y=!0,!o))){if(o){let S=await n(m);for(let P of S)i?u+=`${P}
611
+ `:r?u+=`file
612
+ `:u+=`${m} is ${P}
613
+ `,h=!0,y=!0}else if(!y){let S=await s(m);S&&(i?u+=`${S}
614
+ `:r?u+=`file
615
+ `:u+=`${m} is ${S}
616
+ `,h=!0,y=!0)}if(!y&&(p=!0,!r&&!i)){let S=!0;if(m.includes("/")){let P=e.fs.resolvePath(e.state.cwd,m);await e.fs.exists(P)&&(S=!1)}S&&(f+=`bash: type: ${m}: not found
617
+ `)}}}return i?d=p&&!h?1:0:d=p?1:0,k(u,f,d)}function ri(e,t){return`${e} is a shell function
618
+ `}async function ai(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}"
619
+ `:r+=`alias ${o}='${l}'
620
+ `;else if(Hs.has(o))n?r+=`${o} is a shell keyword
621
+ `:r+=`${o}
622
+ `;else if(ft.has(o))n?r+=`${o} is a shell builtin
623
+ `:r+=`${o}
624
+ `;else if(e.commands.has(o))n?r+=`${o} is a registered command
625
+ `:r+=`${o}
626
+ `;else if(e.state.functions.has(o))n?r+=`${o} is a function
627
+ `:r+=`${o}
628
+ `;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}
629
+ `:r+=`${o}
630
+ `,u=!0)}catch{}u||(n&&(i+=`${o}: not found
631
+ `),a=1)}else{let c=await On(e,o);c?n?r+=`${o} is ${c}
632
+ `:r+=`${c}
633
+ `:(n&&(i+=`${o}: not found
634
+ `),a=1)}}return k(r,i,a)}async function On(e,t){if(t.includes("/")){let r=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(r)){try{if((await e.fs.stat(r)).isDirectory)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}var lo=new Set(["awk","cat","cut","grep","head","jq","mapfile","read","readarray","sed","sort","tail","tee","tr","uniq","wc","xargs"]);function Dn(e){return lo.has(e)}async function oi(e,t,s,n,r,i,a,o){let{ctx:l,runCommand:c}=e;if(l.coverage&&ft.has(t)&&l.coverage.hit(`bash:builtin:${t}`),t==="export")return hn(l,s);if(t==="unset")return Pn(l,s);if(t==="exit")return dn(l,s);if(t==="local")return gn(l,s);if(t==="set")return Sn(l,s);if(t==="break")return Ms(l,s);if(t==="continue")return Ys(l,s);if(t==="return")return bn(l,s);if(t==="eval"&&l.state.options.posix)return as(l,s,r);if(t==="shift")return An(l,s);if(t==="getopts")return os(l,s);if(t==="compgen")return qs(l,s);if(t==="complete")return Ks(l,s);if(t==="compopt")return Xs(l,s);if(t==="pushd")return await cn(l,s);if(t==="popd")return un(l,s);if(t==="dirs")return fn(l,s);if(t==="source"||t===".")return _n(l,s,r);if(t==="read")return vn(l,s,r,o);if(t==="mapfile"||t==="readarray")return wn(l,s,r);if(t==="declare"||t==="typeset")return an(l,s);if(t==="readonly")return on(l,s);if(l.commands.has(t))return null;if(!i){let u=l.state.functions.get(t);if(u)return rs(l,u,s,r)}if(t==="eval")return as(l,s,r);if(t==="cd")return await Ws(l,s);if(t===":"||t==="true")return W;if(t==="false")return Y(!1);if(t==="let")return yn(l,s);if(t==="command")return co(e,s,r);if(t==="builtin")return uo(e,s,r);if(t==="shopt")return si(l,s);if(t==="exec"){if(s.length===0)return W;let[u,...f]=s;return c(u,f,[],r,!1,!1,-1)}if(t==="jobs")return l.jobControl?.jobs?l.jobControl.jobs(s):W;if(t==="wait")return l.jobControl?.wait?l.jobControl.wait(s):W;if(t==="type")return await ii(l,s,u=>On(l,u),u=>us(l,u));if(t==="hash")return pn(l,s);if(t==="help")return mn(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 At(l,u)}return null}async function co(e,t,s){let{ctx:n,runCommand:r}=e;if(t.length===0)return W;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 W;if(o||a)return await ai(n,l,o,a);let[c,...u]=l;return r(c,u,[],s,!0,i,-1)}async function uo(e,t,s){let{runCommand:n}=e;if(t.length===0)return W;let r=t;if(r[0]==="--"&&(r=r.slice(1),r.length===0))return W;let i=r[0];if(!ft.has(i))return _(`bash: builtin: ${i}: not a shell builtin
635
+ `);let[,...a]=r;return n(i,a,[],s,!0,!1,-1)}async function li(e,t,s,n,r){let{ctx:i,buildExportedEnv:a,executeUserScript:o}=e;if(i.hostSpawn){let b=i.commands.get(t);if(b){let E=a(),w=n===""&&i.state.groupStdin!==void 0,S=n||i.state.groupStdin||"",P={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:E,stdin:S,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},$=Nn(P,t);try{let N=()=>$s(i.requireDefenseContext,"command",`${t} execution`,()=>b.execute(s,$));return b.trusted?await ye.runTrustedAsync(()=>N()):await N()}catch(N){if(N instanceof X||N instanceof qe)throw N;return _(`${t}: ${ke(ge(N))}
636
+ `)}finally{w&&(b.consumesStdin||Dn(t))&&(i.state.groupStdin="")}}let g=a(),O=n===""&&i.state.groupStdin!==void 0,v=n||i.state.groupStdin||"";try{return await i.hostSpawn(t,s,{cwd:i.state.cwd,env:g,stdin:v,stdinProvided:n!==""||O||i.state.pipelineStdinProvided,redirections:i.currentRedirections})}finally{O&&Dn(t)&&(i.state.groupStdin="")}}let c=await ni(i,t,r?"/usr/bin:/bin":void 0);if(!c)return vr(t)?_(`bash: ${t}: command not available in browser environments. Exclude '${t}' from your commands or use the Node.js bundle.
637
+ `,127):_(`bash: ${t}: command not found
638
+ `,127);if("error"in c)return c.error==="permission_denied"?_(`bash: ${t}: Permission denied
639
+ `,126):_(`bash: ${t}: No such file or directory
640
+ `,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!==void 0,h=n||i.state.groupStdin||"",p=a(),m={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:p,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},y=Nn(m,t);try{let b=()=>$s(i.requireDefenseContext,"command",`${t} execution`,()=>u.execute(s,y));return u.trusted?await ye.runTrustedAsync(()=>b()):await b()}catch(b){if(b instanceof X||b instanceof qe)throw b;return _(`${t}: ${ke(ge(b))}
641
+ `)}finally{d&&(u.consumesStdin||Dn(t))&&(i.state.groupStdin="")}}async function Tn(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 Pt(e,t,s,n){if(e instanceof ie)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 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:"continue",stdout:t,stderr:s};if(e instanceof le||e instanceof Pe||e instanceof pe||e instanceof Z||e instanceof X)return e.prependOutput(t,s),{action:"rethrow",stdout:t,stderr:s,error:e};let r=ge(e);return{action:"error",stdout:t,stderr:`${s}${r}
642
+ `,exitCode:1}}async function fs(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 Z||o instanceof X||o instanceof Me)throw o.prependOutput(r,i),o;return{stdout:r,stderr:`${i}${ge(o)}
643
+ `,exitCode:1}}return{stdout:r,stderr:i,exitCode:a}}async function ci(e,t){let s=await _e(e,t.redirections);if(s)return s;let n="",r="",i=!1,a="";for(let c of t.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await T(e,u.content);u.stripTabs&&(f=f.split(`
644
+ `).map(d=>d.replace(/^\t+/,"")).join(`
645
+ `)),a=f,i=!0}else if(c.operator==="<<<"&&c.target.type==="Word")a=`${await T(e,c.target)}
646
+ `,i=!0;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await T(e,c.target),f=e.fs.resolvePath(e.state.cwd,u);a=await e.fs.readFile(f),i=!0}catch{let u=await T(e,c.target);return _(`bash: ${u}: No such file or directory
647
+ `)}let o=e.state.groupStdin;i&&(e.state.groupStdin=a);let l;try{for(let c of t.clauses){let u=await Tn(e,c.condition);if(n+=u.stdout,r+=u.stderr,u.exitCode===0)return l=await fs(e,c.body,n,r),U(e,l,t.redirections)}t.elseBody?l=await fs(e,t.elseBody,n,r):l=k(n,r,0)}finally{i&&(e.state.groupStdin=o)}return U(e,l,t.redirections)}async function ui(e,t){let s=await _e(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
648
+ `);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 Oe(e,c);o.push(...u.values)}}catch(c){if(c instanceof It)return{stdout:"",stderr:c.stderr,exitCode:1};throw c}e.state.loopDepth++;try{for(let c of o){a++,a>e.limits.maxLoopIterations&&De(`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=Pt(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=k(n,r,f.exitCode??1);return U(e,d,t.redirections)}throw f.error}}}finally{e.state.loopDepth--}let l=k(n,r,i);return U(e,l,t.redirections)}async function fi(e,t){let s=await _e(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 B(e,t.init.expression),e.state.loopDepth++;try{for(;o++,o>e.limits.maxLoopIterations&&De(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,i),!(t.condition&&(n!==void 0&&(e.state.currentLine=n),await B(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=Pt(c,r,i,e.state.loopDepth);if(r=u.stdout,i=u.stderr,u.action==="break")break;if(u.action==="continue"){t.update&&await B(e,t.update.expression);continue}if(u.action==="error"){let f=k(r,i,u.exitCode??1);return U(e,f,t.redirections)}throw u.error}t.update&&await B(e,t.update.expression)}}finally{e.state.loopDepth--}let l=k(r,i,a);return U(e,l,t.redirections)}async function di(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 T(e,u.content);u.stripTabs&&(f=f.split(`
649
+ `).map(d=>d.replace(/^\t+/,"")).join(`
650
+ `)),o=f}else if(c.operator==="<<<"&&c.target.type==="Word")o=`${await T(e,c.target)}
651
+ `;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await T(e,c.target),f=e.fs.resolvePath(e.state.cwd,u);o=await e.fs.readFile(f)}catch{let u=await T(e,c.target);return _(`bash: ${u}: No such file or directory
652
+ `)}let l=e.state.groupStdin;o&&(e.state.groupStdin=o),e.state.loopDepth++;try{for(;;){a++,a>e.limits.maxLoopIterations&&De(`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 p=await e.executeStatement(h);n+=p.stdout,r+=p.stderr,c=p.exitCode}}catch(h){if(h instanceof ie){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 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;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 p=await e.executeStatement(h);n+=p.stdout,r+=p.stderr,i=p.exitCode}}catch(h){let p=Pt(h,n,r,e.state.loopDepth);if(n=p.stdout,r=p.stderr,p.action==="break")break;if(p.action==="continue")continue;if(p.action==="error")return k(n,r,p.exitCode??1);throw p.error}}}}finally{e.state.loopDepth--,e.state.groupStdin=l}return k(n,r,i)}async function hi(e,t){let s="",n="",r=0,i=0;e.state.loopDepth++;try{for(;;){i++,i>e.limits.maxLoopIterations&&De(`until loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",s,n);let a=await Tn(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=Pt(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 k(s,n,l.exitCode??1);throw l.error}}}finally{e.state.loopDepth--}return k(s,n,r)}async function pi(e,t){let s=await _e(e,t.redirections);if(s)return s;let n="",r="",i=0,a=await T(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 T(e,d);er(d)&&(h=Qn(h));let p=e.state.shoptOptions.nocasematch,m=e.state.shoptOptions.extglob;if(ct(a,h,p,m)){f=!0;break}}if(f){let d=await fs(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=k(n,r,i);return U(e,l,t.redirections)}function In(e,t){if(e.parts.length!==1)return!1;let s=e.parts[0];return s.type!=="Literal"?!1:t.includes(s.value)}function mi(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 yi="+ ";async function gi(e){let t=e.state.env.get("PS4");if(t===void 0)return yi;if(t==="")return"";try{let n=new V().parseWordFromString(t,!1,!1);return await T(e,n)}catch{return e.state.expansionStderr=`${e.state.expansionStderr||""}bash: ${t}: bad substitution
653
+ `,t||yi}}function fo(e){return e.map(t=>ho(t)).join(" ")}function ho(e){if(e==="")return"''";if(!/[\s'"\\$`!*?[\]{}|&;<>()~#\n\t]/.test(e))return e;let s=/[\x00-\x1f\x7f]/.test(e),n=e.includes(`
654
+ `),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===`
655
+ `?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 wi(e,t,s){if(!e.state.options.xtrace)return"";let n=await gi(e),r=[t,...s],i=fo(r);return`${n}${i}
656
+ `}async function vi(e,t,s){return e.state.options.xtrace?`${await gi(e)}${t}=${s}
657
+ `:""}function po(e){return e.type==="SimpleCommand"&&e.name===null&&e.assignments.length>0&&e.args.length===0}async function $i(e,t,s){let n=t.timed?Ss():0,r="",i=W,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],p=d===t.commands.length-1,m=d===0;c&&(e.state.lastArg="",m||(e.state.groupStdin=void 0));let b=c&&(!p||!e.state.shoptOptions.lastpipe&&!po(h))?new Map(e.state.env):null,g,O=e.state.pipelineStdinProvided;e.state.pipelineStdinProvided=c&&!m;try{g=await s(h,r)}catch(v){if(v instanceof wt){if(t.commands.length===1)throw v;g={stdout:v.stdout,stderr:v.stderr,exitCode:1}}else if(v instanceof Z&&t.commands.length>1)g={stdout:v.stdout,stderr:v.stderr,exitCode:v.exitCode};else if(v instanceof pe&&t.commands.length>1)g={stdout:v.stdout,stderr:v.stderr,exitCode:v.exitCode};else throw b&&(e.state.env=b),v}finally{e.state.pipelineStdinProvided=O}b&&(e.state.env=b),o.push(g.exitCode),g.exitCode!==0&&(a=g.exitCode),p?i=g:(t.pipeStderr?.[d]??!1?r=Ge(g.stderr)+vs(g):(r=vs(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=(Ss()-n)/1e3,p=Math.floor(h/60),m=h%60,y;t.timePosix?y=`real ${h.toFixed(2)}
658
+ user 0.00
659
+ sys 0.00
660
+ `:y=`
661
+ real ${`${p}m${m.toFixed(3)}s`}
662
+ user 0m0.000s
663
+ sys 0m0.000s
664
+ `,i={...i,stderr:i.stderr+y}}return c&&!e.state.shoptOptions.lastpipe&&(e.state.lastArg=u),i}async function Ei(e,t){let s=new Map,n="";for(let r of t.assignments){let i=r.name;if(r.array){let u=await mo(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 T(e,r.value):"";if(i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return{continueToNext:!1,xtraceOutput:n,tempAssignments:s,error:k("",`bash: ${i}: bad array subscript
665
+ `,1)};let l=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(l){let u=await bo(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 Eo(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 mo(e,t,s,n,r,i){let a="";if(/\[.+\]$/.test(s))return{continueToNext:!1,xtraceOutput:"",error:k("",`bash: ${s}: cannot assign list to array member
666
+ `,1)};if(ve(e,s)){let u=Xn(e,s);if(u===void 0||u==="")throw new Z(1,"","");let f=Be(e,s);if(f&&/^[a-zA-Z_][a-zA-Z0-9_]*\[@\]$/.test(f))return{continueToNext:!1,xtraceOutput:"",error:k("",`bash: ${s}: cannot assign list to array member
667
+ `,1)}}if(Ke(e,s)){if(t.name)return a+=`bash: ${s}: readonly variable
668
+ `,{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=yo(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 go(e,t,s,n,r,c,u=>{a+=u}):l?await wo(e,s,n,r,c):await vo(e,s,n,r,c),t.name){i.set(s,e.state.env.get(s));let f=`(${n.map(d=>Ft(d)).join(" ")})`;e.state.env.set(s,f)}return{continueToNext:!0,xtraceOutput:a}}function yo(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 go(e,t,s,n,r,i,a){let o=[];for(let l of n){let c=_s(l);if(c){let{key:u,valueParts:f,append:d}=c,h;f.length>0?h=await T(e,{type:"Word",parts:f}):h="",h=G(e,h),o.push({type:"keyed",key:u,value:h,append:d})}else{let u=await T(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
669
+ `)}}async function wo(e,t,s,n,r){let i=[];for(let o of s){let l=_s(o);if(l){let{key:c,valueParts:u,append:f}=l,d;u.length>0?d=await T(e,{type:"Word",parts:u}):d="",d=G(e,d),i.push({type:"keyed",indexExpr:c,value:d,append:f})}else{let c=await Oe(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 B(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 vo(e,t,s,n,r){let i=[];for(let o of s){let l=await Oe(e,o);i.push(...l.values)}let a=0;if(n){let o=Se(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 bo(e,t,s,n,r,i,a){let o=s;if(ve(e,s)){let f=Be(e,s);if(f&&f!==s){if(f.includes("["))return{continueToNext:!1,xtraceOutput:"",error:k("",`bash: \`${f}': not a valid identifier
670
+ `,1)};o=f}}if(Ke(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 Si(e,o,n);else{let f=await $o(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=ut(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 Si(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 T(e,a)}else if(s.includes("$")){let i=new V().parseWordFromString(s,!1,!1);n=await T(e,i)}else n=s;return`${t}_${n}`}async function $o(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 B(e,a.expression,!1)}catch(i){if(i instanceof Fe){let l=`bash: line ${e.state.currentLine}: ${s}: ${i.message}
671
+ `;if(i.fatal)throw new Z(1,"",l);return{index:0,error:k("",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=Se(e,t);if(i.length===0){let o=e.state.currentLine;return{index:0,error:k("",`bash: line ${o}: ${t}[${s}]: bad array subscript
672
+ `,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:k("",`bash: line ${o}: ${t}[${s}]: bad array subscript
673
+ `,1)}}}return{index:r}}async function Eo(e,t,s,n,r,i){let a="",o=s,l=null;if(ve(e,s)){let f=Yn(e,s,n);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:k("",`bash: ${s}: circular name reference
674
+ `,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(Ke(e,o)){if(t.name)return a+=`bash: ${o}: readonly variable
675
+ `,{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})`,p=Q(f,h);c=String(await B(e,p.expression))}else{let d=Q(f,n);c=String(await B(e,d.expression))}}catch{c="0"}else{let{isArray:f}=await import("./chunks/expansion-YT6DLHRE.js"),d=f(e,o)?`${o}_0`:o;c=r?(e.state.env.get(d)||"")+n:n}c=ht(e,o,c),a+=await vi(e,o,c);let u=o;if(l)u=await So(e,l);else{let{isArray:f}=await import("./chunks/expansion-YT6DLHRE.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 So(e,t){let{arrayName:s,subscriptExpr:n}=t;if(e.state.associativeArrays?.has(s))return Si(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 B(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=Se(e,s);a.length>0&&(i=Math.max(...a.map(l=>l[0]))+1+i)}return`${s}_${i}`}async function Ai(e,t,s,n){let r=await _e(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($=>new Map($)),u){e.state.localVarStack=new Map;for(let[$,N]of u.entries())e.state.localVarStack.set($,N.map(A=>({...A})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,p=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let m=e.state.lastArg,y=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let b=s,g=!1;for(let $ of t.redirections)if(($.operator==="<<"||$.operator==="<<-")&&$.target.type==="HereDoc"){let N=$.target,A=await T(e,N.content);N.stripTabs&&(A=A.split(`
676
+ `).map(D=>D.replace(/^\t+/,"")).join(`
677
+ `)),b=A,g=!0}else if($.operator==="<<<"&&$.target.type==="Word")b=`${await T(e,$.target)}
678
+ `,g=!0;else if($.operator==="<"&&$.target.type==="Word")try{let N=await T(e,$.target),A=e.fs.resolvePath(e.state.cwd,N);b=await e.fs.readFile(A),g=!0}catch{let N=await T(e,$.target);return k("",`bash: ${N}: No such file or directory
679
+ `,1)}let O=e.state.groupStdin;(b||g)&&(e.state.groupStdin=b);let v="",E="",w=0,S=()=>{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=p,e.state.groupStdin=O,e.state.bashPid=y,e.state.lastArg=m};try{for(let $ of t.body){let N=await n($);v+=N.stdout,E+=N.stderr,w=N.exitCode}}catch($){if(S(),$ instanceof X)throw $;if($ instanceof Me){v+=$.stdout,E+=$.stderr;let A=k(v,E,0);return U(e,A,t.redirections)}if($ instanceof ie||$ instanceof fe){v+=$.stdout,E+=$.stderr;let A=k(v,E,0);return U(e,A,t.redirections)}if($ instanceof Z){v+=$.stdout,E+=$.stderr;let A=k(v,E,$.exitCode);return U(e,A,t.redirections)}if($ instanceof le){v+=$.stdout,E+=$.stderr;let A=k(v,E,$.exitCode);return U(e,A,t.redirections)}if($ instanceof pe){let A=k(v+$.stdout,E+$.stderr,$.exitCode);return U(e,A,t.redirections)}let N=k(v,`${E}${ge($)}
680
+ `,1);return U(e,N,t.redirections)}S();let P=k(v,E,w);return U(e,P,t.redirections)}async function _i(e,t,s,n){let r="",i="",a=0,o=await ns(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 T(e,d.content);d.stripTabs&&(h=h.split(`
681
+ `).map(m=>m.replace(/^\t+/,"")).join(`
682
+ `));let p=f.fd??0;p!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),oe(e),e.state.fileDescriptors.set(p,h)):l=h}else if(f.operator==="<<<"&&f.target.type==="Word")l=`${await T(e,f.target)}
683
+ `;else if(f.operator==="<"&&f.target.type==="Word")try{let d=await T(e,f.target),h=e.fs.resolvePath(e.state.cwd,d);l=await e.fs.readFile(h)}catch{let d=await T(e,f.target);return k("",`bash: ${d}: No such file or directory
684
+ `,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 X)throw f;if(xt(f)||f instanceof pe||f instanceof Z)throw f.prependOutput(r,i),f;return k(r,`${i}${ge(f)}
685
+ `,1)}e.state.groupStdin=c;let u=k(r,i,a);return U(e,u,t.redirections)}async function Ci(e,t,s,n,r){let i;try{i=await e.fs.readFile(t)}catch{return _(`bash: ${t}: No such file or directory
686
+ `,127)}if(i.startsWith("#!")){let y=i.indexOf(`
687
+ `);y!==-1&&(i=i.slice(y+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,p=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 y=0;y<s.length&&y<9;y++)e.state.env.set(String(y+1),s[y]);for(let y=s.length+1;y<=9;y++)e.state.env.delete(String(y));let m=()=>{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=p};try{let b=new V().parse(i),g=await r(b);return m(),g}catch(y){if(m(),y instanceof Z||y instanceof X)throw y;if(y.name==="ParseException")return _(`bash: ${t}: ${y.message}
688
+ `);throw y}}function ds(e){return e?e.parts.some(Pi):!1}function Pi(e){if(e.type==="CommandSubstitution")return!0;if(e.type==="DoubleQuoted")return e.parts.some(Pi);if(e.type==="ParameterExpansion"){let t=e.operation;if(t&&"word"in t)return ds(t.word);if(t&&"replacement"in t)return ds(t.replacement)}return!1}var kt=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,rejectTimedPipelines:t.rejectTimedPipelines??!1,hostSpawn:t.hostSpawn,hostResolveCommand:t.hostResolveCommand,jobControl:t.jobControl}}assertDefenseContext(t){if(!this.ctx.requireDefenseContext||ye.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:ye.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&&De(`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 Z)throw l.prependOutput(s,n),l;if(l instanceof me)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:We(this.ctx.state.env)};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:We(this.ctx.state.env)};if(l instanceof X)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:We(this.ctx.state.env)};if(l instanceof bs)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:We(this.ctx.state.env)};if(l instanceof wt)throw l.prependOutput(s,n),l;if(l instanceof Fe){if(l.message.includes("substring expression < 0"))throw l.prependOutput(s,n),l;a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof jn){a(l.stdout,l.stderr),r=1,this.ctx.state.lastExitCode=r,this.ctx.state.env.set("?",String(r));continue}if(l instanceof ie||l instanceof fe){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:We(this.ctx.state.env)}}async executeUserScript(t,s,n=""){return Ci(this.ctx,t,s,n,r=>this.executeScript(r))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Rt;if(this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&De(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands"),t.deferredError)throw new Lt(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return W;if(t.background&&this.ctx.jobControl?.startBackground){let c=await this.ctx.jobControl.startBackground(t);if(c)return c}this.ctx.state.errexitSafe=!1;let s="",n="";this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&(n+=`${t.sourceText}
689
+ `);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 k(s,n,r)}async executePipeline(t){if(t.timed&&this.ctx.rejectTimedPipelines)throw new Error("Unsupported shell syntax: timed pipelines");return $i(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 ci(this.ctx,t);case"For":return ui(this.ctx,t);case"CStyleFor":return fi(this.ctx,t);case"While":return di(this.ctx,t,s);case"Until":return hi(this.ctx,t);case"Case":return pi(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Rr(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return W}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(n){if(n instanceof It)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 w=t,S=100;for(;S>0;){let P=this.expandAlias(w);if(P===w)break;w=P,S--}this.aliasExpansionStack.clear(),w!==t&&(t=w)}this.ctx.state.expansionStderr="";let n=await Ei(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 P=await _e(this.ctx,t.redirections);if(P)return P;let $=k("",i,0);return U(this.ctx,$,t.redirections)}this.ctx.state.lastArg="";let w=(this.ctx.state.expansionStderr||"")+i;this.ctx.state.expansionStderr="";let S=t.assignments.some(P=>ds(P.value)||P.array?.some($=>ds($)));return k("",w,S?this.ctx.state.lastExitCode:0)}let a=t.name&&In(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 w of o)this.ctx.state.tempExportedVars.add(w)}let l=await ns(this.ctx,t.redirections);if(l){for(let[w,S]of r)S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S);return l}let c=-1;for(let w of t.redirections){if((w.operator==="<<"||w.operator==="<<-")&&w.target.type==="HereDoc"){let S=w.target,P=await T(this.ctx,S.content);S.stripTabs&&(P=P.split(`
690
+ `).map(N=>N.replace(/^\t+/,"")).join(`
691
+ `)),P=Ge(P);let $=w.fd??0;$!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),oe(this.ctx),this.ctx.state.fileDescriptors.set($,P)):s=P;continue}if(w.operator==="<<<"&&w.target.type==="Word"){s=Ge(`${await T(this.ctx,w.target)}
692
+ `);continue}if(w.operator==="<"&&w.target.type==="Word")try{let S=await T(this.ctx,w.target),P=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);s=await Bn(this.ctx.fs,P)}catch{let S=await T(this.ctx,w.target);for(let[P,$]of r)$===void 0?this.ctx.state.env.delete(P):this.ctx.state.env.set(P,$);return _(`bash: ${S}: No such file or directory
693
+ `)}if(w.operator==="<&"&&w.target.type==="Word"){let S=await T(this.ctx,w.target),P=Number.parseInt(S,10);if(!Number.isNaN(P)&&this.ctx.state.fileDescriptors){let $=this.ctx.state.fileDescriptors.get(P);if($!==void 0)if($.startsWith("__rw__:")){let N=mi($);N&&(s=N.content.slice(N.position),c=P)}else $.startsWith("__file__:")||$.startsWith("__file_append__:")||(s=$)}}}let u=await T(this.ctx,t.name),f=[],d=[];if(In(t.name,["local","declare","typeset","export","readonly"])&&(u==="local"||u==="declare"||u==="typeset"||u==="export"||u==="readonly"))for(let w of t.args){let S=await gr(this.ctx,w);if(S)f.push(S),d.push(!0);else{let P=await wr(this.ctx,w);if(P!==null)f.push(P),d.push(!0);else{let $=await Oe(this.ctx,w);for(let N of $.values)f.push(N),d.push($.quoted)}}}else for(let w of t.args){let S=await Oe(this.ctx,w);for(let P of S.values)f.push(P),d.push(S.quoted)}if(!u){if(t.name.parts.every(S=>S.type==="CommandSubstitution"||S.type==="ParameterExpansion"||S.type==="ArithmeticExpansion")){if(f.length>0){let S=f.shift();return d.shift(),await this.runCommand(S,f,d,s,!1,!1,c)}return k("","",this.ctx.state.lastExitCode)}return _(`bash: : command not found
694
+ `,127)}if(u==="exec"&&(f.length===0||f[0]==="--")){for(let w of t.redirections){if(w.target.type==="HereDoc"||w.fdVariable)continue;let S=await T(this.ctx,w.target),P=w.fd??(w.operator==="<"||w.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),w.operator){case">":case">|":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);await this.ctx.fs.writeFile($,"","utf8"),oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__file__:${$}`);break}case">>":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__file_append__:${$}`);break}case"<":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let N=await this.ctx.fs.readFile($);oe(this.ctx),this.ctx.state.fileDescriptors.set(P,N)}catch{return _(`bash: ${S}: No such file or directory
695
+ `)}break}case"<>":{let $=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let N=await this.ctx.fs.readFile($);oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__rw__:${$.length}:${$}:0:${N}`)}catch{await this.ctx.fs.writeFile($,"","utf8"),oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__rw__:${$.length}:${$}:0:`)}break}case">&":{if(S==="-")this.ctx.state.fileDescriptors.delete(P);else if(S.endsWith("-")){let $=S.slice(0,-1),N=Number.parseInt($,10);if(!Number.isNaN(N)){let A=this.ctx.state.fileDescriptors.get(N);A!==void 0?this.ctx.state.fileDescriptors.set(P,A):this.ctx.state.fileDescriptors.set(P,`__dupout__:${N}`),this.ctx.state.fileDescriptors.delete(N)}}else{let $=Number.parseInt(S,10);Number.isNaN($)||(oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__dupout__:${$}`))}break}case"<&":{if(S==="-")this.ctx.state.fileDescriptors.delete(P);else if(S.endsWith("-")){let $=S.slice(0,-1),N=Number.parseInt($,10);if(!Number.isNaN(N)){let A=this.ctx.state.fileDescriptors.get(N);A!==void 0?this.ctx.state.fileDescriptors.set(P,A):this.ctx.state.fileDescriptors.set(P,`__dupin__:${N}`),this.ctx.state.fileDescriptors.delete(N)}}else{let $=Number.parseInt(S,10);Number.isNaN($)||(oe(this.ctx),this.ctx.state.fileDescriptors.set(P,`__dupin__:${$}`))}break}}}for(let[w,S]of r)S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S);if(this.ctx.state.tempExportedVars)for(let w of r.keys())this.ctx.state.tempExportedVars.delete(w);return W}if(this.ctx.state.extraArgs){f.push(...this.ctx.state.extraArgs);for(let w=0;w<this.ctx.state.extraArgs.length;w++)d.push(!0);this.ctx.state.extraArgs=void 0}let p=await wi(this.ctx,u,f);r.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(r)));let m=W,y=null,b,g=this.ctx.currentRedirections;try{let w=!0;if(t.redirections.length>0){let S=await ss(this.ctx,t.redirections);if(S.error)m=_(S.error),w=!1;else{b=S.targets;let P=await Ir(this.ctx,t.redirections,b);P?(m=P,w=!1):this.ctx.currentRedirections=Ao(t.redirections,b)}}w&&(m=await this.runCommand(u,f,d,s,!1,!1,c))}catch(w){if(w instanceof ie||w instanceof fe)y=w,m=W;else throw w}finally{this.ctx.currentRedirections=g}let O=i+p;if(O&&(m={...m,stderr:O+m.stderr}),m=await U(this.ctx,m,t.redirections,b),y)throw y;if(f.length>0){let w=f[f.length-1];if((u==="declare"||u==="local"||u==="typeset")&&/^[a-zA-Z_][a-zA-Z0-9_]*=\(/.test(w)){let S=w.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);S&&(w=S[1])}this.ctx.state.lastArg=w}else this.ctx.state.lastArg=u;let v=Tr(u)&&u!=="unset"&&u!=="eval";if(!this.ctx.state.options.posix||!v)for(let[w,S]of r)this.ctx.state.fullyUnsetLocals?.has(w)||(S===void 0?this.ctx.state.env.delete(w):this.ctx.state.env.set(w,S));if(this.ctx.state.tempExportedVars)for(let w of r.keys())this.ctx.state.tempExportedVars.delete(w);return r.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(m={...m,stderr:this.ctx.state.expansionStderr+m.stderr},this.ctx.state.expansionStderr=""),m}async runCommand(t,s,n,r,i=!1,a=!1,o=-1){let l={ctx:this.ctx,runCommand:(u,f,d,h,p,m,y)=>this.runCommand(u,f,d,h,p,m,y),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(u,f,d)=>this.executeUserScript(u,f,d)},c=await oi(l,t,s,n,r,i,a,o);return c!==null?c:li(l,t,s,r,a)}aliasExpansionStack=new Set;expandAlias(t){return Fs(this.ctx.state,t,this.aliasExpansionStack)}async findCommandInPath(t){return us(this.ctx,t)}async executeSubshell(t,s=""){return Ai(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 _e(this.ctx,t.redirections);if(s)return s;try{let n=await B(this.ctx,t.expression.expression),r=Y(n!==0);return this.ctx.state.expansionStderr&&(r={...r,stderr:this.ctx.state.expansionStderr+r.stderr},this.ctx.state.expansionStderr=""),U(this.ctx,r,t.redirections)}catch(n){let r=_(`bash: arithmetic expression: ${n.message}
696
+ `);return U(this.ctx,r,t.redirections)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await _e(this.ctx,t.redirections);if(s)return s;try{let n=await je(this.ctx,t.expression),r=Y(n);return this.ctx.state.expansionStderr&&(r={...r,stderr:this.ctx.state.expansionStderr+r.stderr},this.ctx.state.expansionStderr=""),U(this.ctx,r,t.redirections)}catch(n){let r=n instanceof Fe?1:2,i=_(`bash: conditional expression: ${n.message}
697
+ `,r);return U(this.ctx,i,t.redirections)}}};function Ao(e,t){let s=[];for(let n=0;n<e.length;n++){let r=e[n],i=t.get(n);i!==void 0&&s.push({fd:r.fd,operator:r.operator,target:i})}return s}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 ki(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 Ro}from"node:dns";function Rn(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function _o(e){let t=Rn(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function Ni(e){if(e.includes("\\"))return!0;let t=e.toLowerCase();return t.includes("%2f")||t.includes("%5c")}function Co(e,t){return t==="/"||t===""?!0:t.endsWith("/")?e.startsWith(t):e===t||e.startsWith(`${t}/`)}function xn(e,t){let s=Rn(e);if(!s)return!1;let n=_o(t);return!n||s.origin!==n.origin||n.pathPrefix!=="/"&&n.pathPrefix!==""&&Ni(s.pathname)?!1:Co(s.pathname,n.pathPrefix)}function Oi(e){return typeof e=="string"?e:e.url}function Di(e,t){return!t||t.length===0?!1:t.some(s=>xn(e,Oi(s)))}function Ln(e){let t=Po(e);if(t==="localhost"||t.endsWith(".localhost"))return!0;let s=Ti(t);if(s)return hs(s);let n=No(t);return n?Oo(n):!1}function Po(e){let t=e.trim().toLowerCase();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function ko(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 Ti(e){let t=e.split(".");if(t.length===0||t.length>4)return null;let s=t.map(l=>ko(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 No(e){let t=e,s=null;if(t.includes(".")){let m=t.lastIndexOf(":");if(m<0)return null;let y=t.slice(m+1),b=Ti(y);if(!b)return null;s=b,t=t.slice(0,m)}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=m=>/^[0-9a-f]{1,4}$/i.test(m)?Number.parseInt(m,16):null,c=a.map(l),u=o.map(l);if(c.some(m=>m===null)||u.some(m=>m===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 p=[...c,...new Array(h).fill(0),...u];return s&&(p.push(s[0]<<8|s[1]),p.push(s[2]<<8|s[3])),p.length===8?p:null}function hs(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 Oo(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 hs(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 hs(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 hs(r)}return!1}function Ii(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=Oi(s);if(!Rn(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!==""&&Ni(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 Do=typeof __BROWSER__<"u"&&__BROWSER__,mt=null,ps=null,Ri=!1;function To(){if(mt===null&&!Do)try{let e=Wn("node:async_hooks");ps=Wn("node:dns"),mt=new e.AsyncLocalStorage}catch{}}function Io(){if(Ri||(To(),!mt||!ps))return;Ri=!0;let e=mt,t=ps.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(ps,"lookup",{value:s,writable:!0,configurable:!0})}function xi(e,t){return Io(),mt?mt.run(e,t):t()}var Re=class extends Error{constructor(t,s){let n=s??"URL not in allow-list";super(`Network access denied: ${n}: ${t}`),this.name="NetworkAccessDeniedError"}},Nt=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},Ot=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},ms=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},yt=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};function xo(e){return new Promise((t,s)=>{Ro(e,{all:!0},(n,r)=>{n?s(n):t(r)})})}var Lo=20,Fo=3e4,Mo=10485760,Wo=["GET","HEAD"],zo=new Set(["GET","HEAD","OPTIONS"]),Vo=new Set([301,302,303,307,308]);function Fn(e){let t=e.allowedUrlPrefixes??[];if(!e.dangerouslyAllowFullInternetAccess){let h=Ii(t);if(h.length>0)throw new Error(`Invalid network allow-list:
698
+ ${h.join(`
699
+ `)}`)}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 p=null;for(let m of s)if(xn(h,m.url)&&m.transform){p||(p=new Headers);for(let y of m.transform)for(let[b,g]of Object.entries(y.headers))p.set(b,g)}return p}let r=e.maxRedirects??Lo,i=e.timeoutMs??Fo,a=e.maxResponseSize??Mo,o=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??Wo,l=e.denyPrivateRanges??(typeof process<"u"&&process.env?.NODE_ENV==="production"),c=e._dnsResolve??xo;async function u(h){if(!e.dangerouslyAllowFullInternetAccess&&!Di(h,t))throw new Re(h);if(l)try{let p=new URL(h);if(Ln(p.hostname))throw new Re(h,"private/loopback IP address blocked");let m=p.hostname;if(/[a-zA-Z]/.test(m))try{let b=await c(m);for(let{address:O}of b)if(Ln(O))throw new Re(h,"hostname resolves to private/loopback IP address");let g=b[0];if(g)return{hostname:m,address:g.address,family:g.family===6?6:4}}catch(b){if(b instanceof Re)throw b;let g=b?.code;if(!(g==="ENOTFOUND"||g==="ENODATA"))throw new Re(h,"DNS resolution failed for private IP check")}}catch(p){if(p instanceof Re)throw p}return null}function f(h){if(e.dangerouslyAllowFullInternetAccess)return;let p=h.toUpperCase();if(!o.includes(p))throw new ms(p,o)}async function d(h,p={}){let m=p.method?.toUpperCase()??"GET",y=await u(h);f(m);let b=h,g=0,O=p.followRedirects??!0,v=p.timeoutMs!==void 0?Math.min(p.timeoutMs,i):i;for(;;){let E=new AbortController,w=zn(()=>E.abort(),v);try{let S=await ye.runTrustedAsync(()=>{let P=n(b),$=Bo(p.headers,P),N={method:m,headers:$,signal:E.signal,redirect:"manual"};return p.body&&!zo.has(m)&&(N.body=p.body),y?xi(y,()=>fetch(b,N)):fetch(b,N)});if(Vo.has(S.status)&&O){let P=S.headers.get("location");if(!P)return await Li(S,b,a);let $=new URL(P,b).href;try{y=await u($)}catch{throw new Ot($)}if(g++,g>r)throw new Nt(r);b=$;continue}return await Li(S,b,a)}finally{Vn(w)}}}return d}function Bo(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 Li(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 yt(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 yt(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 yt(s);r=new Uint8Array(i)}return{status:e.status,statusText:e.statusText,headers:n,body:r,url:t}}function Fi(e){return Je(e)}function Je(e){return e.statements.map(Mi).join(`
700
+ `)}function Mi(e){let t=[];for(let n=0;n<e.pipelines.length;n++)t.push(jo(e.pipelines[n])),n<e.operators.length&&t.push(e.operators[n]);let s=t.join(" ");return e.background&&(s+=" &"),s}function jo(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(Wi(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 Wi(e){switch(e.type){case"SimpleCommand":return Ho(e);case"If":return Jo(e);case"For":return el(e);case"CStyleFor":return tl(e);case"While":return sl(e);case"Until":return nl(e);case"Case":return rl(e);case"Subshell":return al(e);case"Group":return ol(e);case"ArithmeticCommand":return ll(e);case"ConditionalCommand":return cl(e);case"FunctionDef":return ul(e);default:{let t=e;throw new Error(`Unsupported command type: ${t.type}`)}}}function Ho(e){let t=[];for(let s of e.assignments)t.push(Uo(s));e.name&&t.push(ce(e.name));for(let s of e.args)t.push(ce(s));for(let s of e.redirections)t.push(Bi(s));return t.join(" ")}function Uo(e){let t=e.append?"+=":"=";if(e.array){let s=e.array.map(ce).join(" ");return`${e.name}${t}(${s})`}return e.value?`${e.name}${t}${ce(e.value)}`:`${e.name}${t}`}function ce(e){return e.parts.map(t=>ys(t,!1)).join("")}function Ze(e){return e.parts.map(t=>ys(t,!0)).join("")}function ys(e,t){switch(e.type){case"Literal":return t?qo(e.value):Zo(e.value);case"SingleQuoted":return`'${e.value}'`;case"DoubleQuoted":return`"${e.parts.map(s=>ys(s,!0)).join("")}"`;case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return zi(e);case"CommandSubstitution":return e.legacy?`\`${Je(e.body)}\``:`$(${Je(e.body)})`;case"ArithmeticExpansion":return`$((${j(e.expression.expression)}))`;case"ProcessSubstitution":return e.direction==="input"?`<(${Je(e.body)})`:`>(${Je(e.body)})`;case"BraceExpansion":return Yo(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 Zo(e){return e.replace(/[\s\\'"`!|&;()<>{}[\]*?~#]/g,"\\$&")}function qo(e){return e.replace(/[$`"\\]/g,"\\$&")}function Go(e,t){return e.parts.map(s=>Ko(s,t)).join("")}function Ko(e,t){switch(e.type){case"Literal":return t?e.value:e.value.replace(/[$`]/g,"\\$&");case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return zi(e);case"CommandSubstitution":return e.legacy?`\`${Je(e.body)}\``:`$(${Je(e.body)})`;case"ArithmeticExpansion":return`$((${j(e.expression.expression)}))`;default:return ys(e,!1)}}function zi(e){return e.operation?`\${${Vi(e.parameter,e.operation)}}`:Xo(e.parameter)?`\${${e.parameter}}`:`$${e.parameter}`}function Xo(e){return!(/^[?#@*$!\-0-9]$/.test(e)||/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e))}function Vi(e,t){switch(t.type){case"Length":return`#${e}`;case"LengthSliceError":return`#${e}:`;case"BadSubstitution":return t.text;case"DefaultValue":return`${e}${t.checkEmpty?":":""}-${Ze(t.word)}`;case"AssignDefault":return`${e}${t.checkEmpty?":":""}=${Ze(t.word)}`;case"ErrorIfUnset":return`${e}${t.checkEmpty?":":""}?${t.word?Ze(t.word):""}`;case"UseAlternative":return`${e}${t.checkEmpty?":":""}+${Ze(t.word)}`;case"Substring":{let s=j(t.offset.expression);return t.length?`${e}:${s}:${j(t.length.expression)}`:`${e}:${s}`}case"PatternRemoval":{let s=t.side==="prefix"?"#":"%",n=t.greedy?`${s}${s}`:s;return`${e}${n}${Ze(t.pattern)}`}case"PatternReplacement":{let s="/";t.all?s="//":t.anchor==="start"?s="/#":t.anchor==="end"&&(s="/%");let n=t.replacement?`/${Ze(t.replacement)}`:"";return`${e}${s}${Ze(t.pattern)}${n}`}case"CaseModification":{let s=t.direction==="upper"?"^":",",n=t.all?`${s}${s}`:s,r=t.pattern?Ze(t.pattern):"";return`${e}${n}${r}`}case"Transform":return`${e}@${t.operator}`;case"Indirection":return t.innerOp?`!${Vi(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 Yo(e){return`{${e.items.map(Qo).join(",")}}`}function Qo(e){if(e.type==="Word")return ce(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 Bi(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=Go(s.content,s.quoted);return`${t}${e.operator}${n}
701
+ ${r}${s.delimiter}`}return e.operator==="<<<"?`${t}<<< ${ce(e.target)}`:e.operator==="&>"||e.operator==="&>>"?`${e.operator} ${ce(e.target)}`:`${t}${e.operator} ${ce(e.target)}`}function Ce(e){return e.length===0?"":` ${e.map(Bi).join(" ")}`}function be(e){return e.map(Mi).join(`
702
+ `)}function Jo(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} ${be(n.condition)}; then
703
+ ${be(n.body)}`)}return e.elseBody&&t.push(`else
704
+ ${be(e.elseBody)}`),`${t.join(`
705
+ `)}
706
+ fi${Ce(e.redirections)}`}function el(e){let t;if(e.words===null)t=`for ${e.variable}`;else{let s=e.words.map(ce).join(" ");t=`for ${e.variable} in ${s}`}return`${t}; do
707
+ ${be(e.body)}
708
+ done${Ce(e.redirections)}`}function tl(e){let t=e.init?j(e.init.expression):"",s=e.condition?j(e.condition.expression):"",n=e.update?j(e.update.expression):"";return`for ((${t}; ${s}; ${n})); do
709
+ ${be(e.body)}
710
+ done${Ce(e.redirections)}`}function sl(e){return`while ${be(e.condition)}; do
711
+ ${be(e.body)}
712
+ done${Ce(e.redirections)}`}function nl(e){return`until ${be(e.condition)}; do
713
+ ${be(e.body)}
714
+ done${Ce(e.redirections)}`}function rl(e){let t=e.items.map(il).join(`
715
+ `);return`case ${ce(e.word)} in
716
+ ${t}
717
+ esac${Ce(e.redirections)}`}function il(e){let t=e.patterns.map(ce).join(" | "),s=be(e.body);return s?`${t})
718
+ ${s}
719
+ ${e.terminator}`:`${t})
720
+ ${e.terminator}`}function al(e){return`(${be(e.body)})${Ce(e.redirections)}`}function ol(e){return`{ ${be(e.body)}; }${Ce(e.redirections)}`}function ll(e){return`((${j(e.expression.expression)}))${Ce(e.redirections)}`}function cl(e){return`[[ ${Qe(e.expression)} ]]${Ce(e.redirections)}`}function ul(e){let t=Wi(e.body);return`${e.name}() ${t}${Ce(e.redirections)}`}function j(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`${j(e.left)} ${e.operator} ${j(e.right)}`;case"ArithUnary":return e.prefix?`${e.operator}${j(e.operand)}`:`${j(e.operand)}${e.operator}`;case"ArithTernary":return`${j(e.condition)} ? ${j(e.consequent)} : ${j(e.alternate)}`;case"ArithAssignment":return`${e.subscript?`${e.variable}[${j(e.subscript)}]`:e.stringKey!==void 0?`${e.variable}[${e.stringKey}]`:e.variable} ${e.operator} ${j(e.value)}`;case"ArithDynamicAssignment":return`${e.subscript?`${j(e.target)}[${j(e.subscript)}]`:j(e.target)} ${e.operator} ${j(e.value)}`;case"ArithDynamicElement":return`${j(e.nameExpr)}[${j(e.subscript)}]`;case"ArithGroup":return`(${j(e.expression)})`;case"ArithNested":return`$((${j(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}[${j(e.index)}]`:e.array;case"ArithDynamicBase":return`\${${e.baseExpr}}#${e.value}`;case"ArithDynamicNumber":return`\${${e.prefix}}${e.suffix}`;case"ArithConcat":return e.parts.map(j).join("");case"ArithDoubleSubscript":return`${e.array}[${j(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 Qe(e){switch(e.type){case"CondBinary":return`${ce(e.left)} ${e.operator} ${ce(e.right)}`;case"CondUnary":return`${e.operator} ${ce(e.operand)}`;case"CondNot":return`! ${Qe(e.operand)}`;case"CondAnd":return`${Qe(e.left)} && ${Qe(e.right)}`;case"CondOr":return`${Qe(e.left)} || ${Qe(e.right)}`;case"CondGroup":return`( ${Qe(e.expression)} )`;case"CondWord":return ce(e.word);default:{let t=e;throw new Error(`Unsupported conditional expression type: ${t.type}`)}}}var gs=class{fs;commands=new Map;useDefaultLayout=!1;limits;secureFetch;sleepFn;traceFn;logger;defenseInDepthConfig;coverageWriter;jsBootstrapCode;invokeToolFn;transformPlugins=[];state;constructor(t={}){let s=t.fs??new Et(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",`
721
+ `],["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=ki({...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=Fn(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",Rs(this.state.options)),this.state.env.set("BASHOPTS",xs(this.state.shoptOptions)),fr(s,this.useDefaultLayout,{pid:this.state.virtualPid,ppid:this.state.virtualPpid,uid:this.state.virtualUid,gid:this.state.virtualGid}),n!=="/"&&s instanceof Et)try{s.mkdirSync(n,{recursive:!0})}catch{}for(let a of rr(t.commands))this.registerCommand(a);if(t.fetch||t.network)for(let a of ir())this.registerCommand(a);if(t.python)for(let a of ar())this.registerCommand(a);let i=typeof t.javascript=="object"?t.javascript:Object.create(null);if(t.javascript||i.invokeTool){for(let a of or())this.registerCommand(a);i.bootstrap&&(this.jsBootstrapCode=i.bootstrap),i.invokeTool&&(this.invokeToolFn=i.invokeTool)}if(t.customCommands)for(let a of t.customCommands)lr(a)?this.registerCommand(cr(a)):this.registerCommand({...a,trusted:a.trusted??!0})}registerCommand(t){this.commands.set(t.name,t);let s=this.fs;if(typeof s.writeFileSync=="function"){let n=`#!/bin/bash
722
+ # Built-in command: ${t.name}
723
+ `;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=Hi(t.stdout),t.stderr=Hi(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.
724
+ `,exitCode:1,env:we(this.state.env,s?.env)};if(!t.trim())return{stdout:"",stderr:"",exitCode:0,env:we(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:dl(s?.stdin,s?.stdinKind),signal:s?.signal,extraArgs:s?.args},l=t;s?.rawScript||(l=ji(t));let c=this.defenseInDepthConfig?ye.getInstance(this.defenseInDepthConfig):null,u=c?.activate();try{let f=async()=>{let d=Ee(l,{maxHeredocSize:this.limits.maxHeredocSize}),h;if(this.transformPlugins.length>0){let g=Object.create(null);for(let O of this.transformPlugins){let v=O.transform({ast:d,metadata:g});d=v.ast,v.metadata&&(g=Es(g,v.metadata))}h=g}let p={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 kt(p,o).executeScript(d);return h&&(b.metadata=h),this.logResult(b)};return u?await u.run(f):await f()}catch(f){if(f instanceof Z)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:we(this.state.env,s?.env)});if(f instanceof me)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:we(this.state.env,s?.env)});if(f instanceof Fe)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:1,env:we(this.state.env,s?.env)});if(f instanceof Rt)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:124,env:we(this.state.env,s?.env)});if(f instanceof X)return this.logResult({stdout:f.stdout,stderr:ke(f.stderr),exitCode:X.EXIT_CODE,env:we(this.state.env,s?.env)});if(f instanceof qe)return this.logResult({stdout:"",stderr:`bash: security violation: ${ke(f.message)}
725
+ `,exitCode:1,env:we(this.state.env,s?.env)});if(f.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${ke(f.message)}
726
+ `,exitCode:2,env:we(this.state.env,s?.env)});if(f instanceof Un)return this.logResult({stdout:"",stderr:`bash: ${ke(f.message)}
727
+ `,exitCode:2,env:we(this.state.env,s?.env)});if(f instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${ke(f.message)}
728
+ `,exitCode:1,env:we(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 We(this.state.env)}registerTransformPlugin(t){this.transformPlugins.push(t)}transform(t){let s=ji(t),n=Ee(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=Es(r,a.metadata))}return{script:Fi(n),ast:n,metadata:r}}};function ji(e){let t=e.split(`
729
+ `),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(`
730
+ `)}var fl=new TextDecoder("utf-8",{fatal:!0});function Hi(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 fl.decode(s)}catch{return e}}function dl(e,t){if(e!==void 0)return t==="bytes"?e:Ge(e)}import*as H from"node:fs";import*as ae from"node:path";import*as $e from"node:fs";import*as ue from"node:path";function Tt(e,t){if(e===t)return!0;let s=e[t.length];return(s==="/"||s==="\\")&&e.startsWith(t)}function Dt(e,t){try{let s=$e.realpathSync(e);return Tt(s,t)?s:null}catch(s){if(s.code==="ENOENT"){let n=ue.dirname(e);if(n===e)return null;let r=Dt(n,t);if(r===null)return null;try{if($e.lstatSync(e).isSymbolicLink()){let a=$e.readlinkSync(e),o=ue.isAbsolute(a)?a:ue.resolve(ue.dirname(e),a);if(Dt(o,t)===null)return null}}catch{}return ue.join(r,ue.basename(e))}return null}}function Ui(e,t,s){let n=Dt(e,s);if(n===null)return null;let r=ue.resolve(e),i=r.slice(t.length),a=n.slice(s.length);if(i!==a)return null;try{if($e.lstatSync(r).isSymbolicLink())return null}catch{}return n}function Zi(e,t){if(!$e.existsSync(e))throw new Error(`${t} root does not exist`);if(!$e.statSync(e).isDirectory())throw new Error(`${t} root is not a directory`)}function qi(e,t){if(!ue.isAbsolute(e))return{withinRoot:!0,relativePath:e};let s;try{s=$e.realpathSync(e)}catch{s=ue.resolve(e)}return Tt(s,t)?{withinRoot:!0,relativePath:s.slice(t.length).replace(/\\/g,"/")||"/"}:{withinRoot:!1,safeName:ue.basename(e)}}function Gi(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 hl=["ELOOP","EFBIG","EPERM"],pl="/home/user/project",ws=class{root;canonicalRoot;mountPoint;readOnly;maxFileReadSize;allowSymlinks;memory=new Map;deleted=new Set;constructor(t){this.root=ae.resolve(t.root);let s=t.mountPoint??pl;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,Zi(this.root,"OverlayFs"),this.canonicalRoot=H.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=ae.join(this.root,n),i=ae.resolve(r);return Tt(i,this.root)?i:null}resolveRealPath_(t){return t?this.allowSymlinks?Dt(t,this.canonicalRoot):Ui(t,this.root,this.canonicalRoot):null}resolveRealPathParent_(t){if(!t)return null;let s=ae.dirname(t),n=this.resolveRealPath_(s);return n===null?null:ae.join(n,ae.basename(t))}sanitizeError(t,s,n){Gi(t,s,n,hl)}ensureParentDirs(t){let s=Xe(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 H.promises.lstat(n),!0}catch{return!1}}async readFile(t,s){let n=await this.readFileBuffer(t),r=ze(s);return st(n,r)}async readFileBytes(t){let s=await this.readFileBuffer(t);return st(s,"binary")}async readFileBuffer(t,s=new Set){M(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 H.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, open '${t}'`);let c=await H.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?H.constants.O_RDONLY:H.constants.O_RDONLY|H.constants.O_NOFOLLOW,l=await H.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){M(t,"write"),this.assertWritable(`write '${t}'`);let r=L(t);this.ensureParentDirs(r);let i=ze(n),a=tt(s,i);this.memory.set(r,{type:"file",content:a,mode:420,mtime:new Date}),this.deleted.delete(r)}async appendFile(t,s,n){M(t,"append"),this.assertWritable(`append '${t}'`);let r=L(t),i=ze(n),a=tt(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){M(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 H.promises.lstat(i);if(a.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let o=await H.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){M(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 H.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 it(t,s)}realTargetToVirtual(t,s){let n=qi(s,this.canonicalRoot);if(n.withinRoot){if(!ae.isAbsolute(s))return s;let r=n.relativePath;return this.mountPoint==="/"?r:`${this.mountPoint}${r}`}return n.safeName}async mkdir(t,s){M(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=Xe(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 H.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 H.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 H.promises.lstat(l)).isSymbolicLink()){if(!this.allowSymlinks)return{normalized:n,outsideOverlay:!0};let u=await H.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){M(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){M(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){M(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 H.lstatSync(n),!0}catch{return!1}}async cp(t,s,n){M(t,"cp"),M(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 zt(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=H.readdirSync(n);for(let i of r){let a=t==="/"?`/${i}`:`${t}/${i}`;if(this.deleted.has(a))continue;s.add(a);let o=ae.join(n,i);H.lstatSync(o).isDirectory()&&this.scanRealFs(a,s)}}catch{}}async chmod(t,s){M(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}'`);M(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){M(t,"link"),M(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){M(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 H.promises.readlink(r);if(!ae.isAbsolute(i)){let a=ae.resolve(ae.dirname(r),i),o;try{o=H.realpathSync(a)}catch{o=a}if(!Tt(o,this.canonicalRoot))return ae.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){M(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 p=this.toRealPath(c),m=this.resolveRealPath_(p);if(m)try{if((await H.promises.lstat(m)).isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let b=await H.promises.readlink(m),g=this.realTargetToVirtual(c,b);return n.add(c),c=this.resolveSymlink(c,g),r(c)}}catch(y){if(y.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);this.sanitizeError(y,t,"realpath")}else if(!this.allowSymlinks){let y=this.resolveRealPathParent_(p);if(y)try{if((await H.promises.lstat(y)).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){M(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})}};var se={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m"},Mn=class{env;rl;running=!0;history=[];isInteractive;constructor(t={}){let s=process.cwd(),n=new ws({root:s,mountPoint:"/"});this.env=new gs({fs:n,cwd:t.cwd||"/",env:{HOME:"/",USER:"user",SHELL:"/bin/bash",TERM:"xterm-256color",...t.env},network:t.network===!0?{dangerouslyAllowFullInternetAccess:!0}:void 0}),this.isInteractive=process.stdin.isTTY===!0,this.rl=Xi.createInterface({input:process.stdin,output:process.stdout,terminal:this.isInteractive}),this.rl.on("SIGINT",()=>{process.stdout.write(`^C
731
+ `),this.prompt()}),process.stdin.isTTY&&this.rl.on("close",()=>{this.running=!1,console.log(`
732
+ Goodbye!`),process.exit(0)})}syncHistory(){let t=this.env.getEnv();t.BASH_HISTORY=JSON.stringify(this.history)}getPrompt(){let t=this.env.getCwd(),s=this.env.getEnv().HOME||"/home/user",n=t;return t===s?n="~":t.startsWith(`${s}/`)&&(n=`~${t.slice(s.length)}`),`${se.green}${se.bold}user@virtual${se.reset}:${se.blue}${se.bold}${n}${se.reset}$ `}async executeCommand(t){let s=t.trim();if(s){if(this.history.push(s),s==="exit"||s.startsWith("exit ")){let n=s.split(/\s+/),r=n[1]?parseInt(n[1],10):0;console.log("exit"),process.exit(r)}this.syncHistory();try{let n=await this.env.exec(s);n.stdout&&process.stdout.write(n.stdout),n.stderr&&process.stderr.write(`${se.red}${n.stderr}${se.reset}`)}catch(n){console.error(`${se.red}Error: ${ge(n)}${se.reset}`)}}}printWelcome(){console.log(`
733
+ ${se.cyan}${se.bold}\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557
734
+ \u2551 Virtual Shell v1.0 \u2551
735
+ \u2551 A simulated bash environment in TypeScript \u2551
736
+ \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D${se.reset}
737
+
738
+ ${se.dim}Exploring: ${process.cwd()}${se.reset}
739
+
740
+ Type ${se.green}help${se.reset} for available commands, ${se.green}exit${se.reset} to quit.
741
+ Reads from real filesystem, writes stay in memory (OverlayFs).
742
+ `)}prompt(){this.rl.question(this.getPrompt(),async t=>{this.running&&(await this.executeCommand(t),this.prompt())})}async run(){if(this.isInteractive)this.printWelcome(),this.prompt();else{let t=[];this.rl.on("line",s=>{t.push(s)}),await new Promise(s=>{this.rl.on("close",s)});for(let s of t)await this.executeCommand(s)}}};function ml(){let e=process.argv.slice(2),t={};for(let s=0;s<e.length;s++)if(e[s]==="--cwd"&&e[s+1])t.cwd=e[++s];else if(e[s]==="--files"&&e[s+1]){let n=e[++s];try{let r=Ki.readFileSync(n,"utf-8");t.files=JSON.parse(r)}catch(r){console.error(`Error reading files from ${n}:`,r),process.exit(1)}}else e[s]==="--network"?t.network=!0:e[s]==="--no-network"?t.network=!1:(e[s]==="--help"||e[s]==="-h")&&(console.log(`
743
+ Usage: pnpm shell [options]
744
+
745
+ Interactive shell using OverlayFs - reads from the current directory,
746
+ writes stay in memory (copy-on-write).
747
+
748
+ Options:
749
+ --cwd <dir> Set initial working directory (default: /)
750
+ --network Enable network access (disabled by default)
751
+ --no-network Disable network access (default)
752
+ --help, -h Show this help message
753
+
754
+ Example:
755
+ pnpm shell
756
+ pnpm shell --network
757
+ `),process.exit(0));return t}var yl=ml(),gl=new Mn(yl);gl.run();