@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,733 @@
1
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
2
+ import{B as hn,C as pn,D as me,E as st,F as se,G as ke,H as Yt,I as mn,J as x,K as yn,L as gn,M as Ie,N as Ks,O as ut,P as U,a as nn,b as js,c as on,d as Kt,e as ee,f as B,g as pe,h as ne,i as Re,j as Ge,k as Us,l as Xt,m as an,n as Hs,o as ln,p as $e,q as Be,r as cn,s as un,t as qs,u as Zs,v as Ke,w as fn,x as dn,y as Ae,z as Gs}from"./chunks/chunk-FE7TPM5F.js";import{a as ze,b as Ve,c as Ee}from"./chunks/chunk-WNH3HOQA.js";import{c as Bs}from"./chunks/chunk-HBVMHTO5.js";import{a as Vt,b as Bt}from"./chunks/chunk-XRFHFXFP.js";import{a as zs}from"./chunks/chunk-L2UW7DWF.js";import{a as Ze,b as be,c as xt}from"./chunks/chunk-DLL7UR66.js";import{a as Tt,b as Vs}from"./chunks/chunk-L64BMZUV.js";import{a as We,b as de}from"./chunks/chunk-TN7HHBQW.js";import{a as Ot}from"./chunks/chunk-BXERNLCU.js";import{a as _t,b as jt,c as co,d as Ue,e as uo,f as Ut,g as fo,h as Ht,i as ho,j as po}from"./chunks/chunk-NRSASXYY.js";import{a as ae,b as he,c as ue,d as we,e as Ws,f as G,g as He,h as Nt,i as qt,j as rn,k as Q,l as Zt,m as qe,n as Te,o as Gt,p as ve}from"./chunks/chunk-J2XQNA2Z.js";import"./chunks/chunk-STHBFACM.js";import{a as De}from"./chunks/chunk-FOCWZZDE.js";import{a as xe}from"./chunks/chunk-W5DWRFSU.js";import{a as Ms}from"./chunks/chunk-BZUGFHVS.js";var rt=[{name:"echo",load:async()=>(await import("./chunks/echo-NDWZZHPO.js")).echoCommand},{name:"cat",load:async()=>(await import("./chunks/cat-TSFMZVYS.js")).catCommand},{name:"printf",load:async()=>(await import("./chunks/printf-I2B4W2XW.js")).printfCommand},{name:"ls",load:async()=>(await import("./chunks/ls-ZJGQER7M.js")).lsCommand},{name:"mkdir",load:async()=>(await import("./chunks/mkdir-MEPGZOB6.js")).mkdirCommand},{name:"rmdir",load:async()=>(await import("./chunks/rmdir-OC4ZLPYA.js")).rmdirCommand},{name:"touch",load:async()=>(await import("./chunks/touch-UA33VN3N.js")).touchCommand},{name:"rm",load:async()=>(await import("./chunks/rm-SSGETQVQ.js")).rmCommand},{name:"cp",load:async()=>(await import("./chunks/cp-BISAAS7A.js")).cpCommand},{name:"mv",load:async()=>(await import("./chunks/mv-W5BIQ646.js")).mvCommand},{name:"ln",load:async()=>(await import("./chunks/ln-4LGSXXGD.js")).lnCommand},{name:"chmod",load:async()=>(await import("./chunks/chmod-TFEPA42X.js")).chmodCommand},{name:"pwd",load:async()=>(await import("./chunks/pwd-WE6EN5AV.js")).pwdCommand},{name:"readlink",load:async()=>(await import("./chunks/readlink-OPJF4DL5.js")).readlinkCommand},{name:"head",load:async()=>(await import("./chunks/head-BALRBIDD.js")).headCommand},{name:"tail",load:async()=>(await import("./chunks/tail-3JSKDTET.js")).tailCommand},{name:"wc",load:async()=>(await import("./chunks/wc-LF7NU4LA.js")).wcCommand},{name:"stat",load:async()=>(await import("./chunks/stat-CD34IZ4P.js")).statCommand},{name:"grep",load:async()=>(await import("./chunks/grep-2ILJFW6Y.js")).grepCommand},{name:"fgrep",load:async()=>(await import("./chunks/grep-2ILJFW6Y.js")).fgrepCommand},{name:"egrep",load:async()=>(await import("./chunks/grep-2ILJFW6Y.js")).egrepCommand},{name:"rg",load:async()=>(await import("./chunks/rg-X6MJUOKW.js")).rgCommand},{name:"sed",load:async()=>(await import("./chunks/sed-JWIN756M.js")).sedCommand},{name:"awk",load:async()=>(await import("./chunks/awk2-GS47M5U7.js")).awkCommand2},{name:"sort",load:async()=>(await import("./chunks/sort-SW2YEO5B.js")).sortCommand},{name:"uniq",load:async()=>(await import("./chunks/uniq-XSIZR6PB.js")).uniqCommand},{name:"comm",load:async()=>(await import("./chunks/comm-VV2LDX2J.js")).commCommand},{name:"cut",load:async()=>(await import("./chunks/cut-OKARJCCV.js")).cutCommand},{name:"paste",load:async()=>(await import("./chunks/paste-7JC6S4DX.js")).pasteCommand},{name:"tr",load:async()=>(await import("./chunks/tr-36LHWFRQ.js")).trCommand},{name:"rev",load:async()=>(await import("./chunks/rev-5EHFX4EJ.js")).rev},{name:"nl",load:async()=>(await import("./chunks/nl-WSDW7I4O.js")).nl},{name:"fold",load:async()=>(await import("./chunks/fold-4TQNYMSW.js")).fold},{name:"expand",load:async()=>(await import("./chunks/expand-JSPG6VOP.js")).expand},{name:"unexpand",load:async()=>(await import("./chunks/unexpand-CADSA4VO.js")).unexpand},{name:"strings",load:async()=>(await import("./chunks/strings-6WDHLGMX.js")).strings},{name:"split",load:async()=>(await import("./chunks/split-4KKZZXXE.js")).split},{name:"column",load:async()=>(await import("./chunks/column-XT6UFXNQ.js")).column},{name:"join",load:async()=>(await import("./chunks/join-TBRGI3LQ.js")).join},{name:"tee",load:async()=>(await import("./chunks/tee-YUZ2FKCJ.js")).teeCommand},{name:"find",load:async()=>(await import("./chunks/find-BKC2BIAO.js")).findCommand},{name:"basename",load:async()=>(await import("./chunks/basename-UB3CIYNI.js")).basenameCommand},{name:"dirname",load:async()=>(await import("./chunks/dirname-MPHRFUTI.js")).dirnameCommand},{name:"tree",load:async()=>(await import("./chunks/tree-YLD52CNT.js")).treeCommand},{name:"du",load:async()=>(await import("./chunks/du-572XNP42.js")).duCommand},{name:"env",load:async()=>(await import("./chunks/env-36M5BO7M.js")).envCommand},{name:"printenv",load:async()=>(await import("./chunks/env-36M5BO7M.js")).printenvCommand},{name:"alias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).aliasCommand},{name:"unalias",load:async()=>(await import("./chunks/alias-RTYYYW3D.js")).unaliasCommand},{name:"history",load:async()=>(await import("./chunks/history-WYYKSLSZ.js")).historyCommand},{name:"xargs",load:async()=>(await import("./chunks/xargs-MGZPH7AX.js")).xargsCommand},{name:"true",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).trueCommand},{name:"false",load:async()=>(await import("./chunks/true-FHQXJXBE.js")).falseCommand},{name:"clear",load:async()=>(await import("./chunks/clear-HKGFEOF6.js")).clearCommand},{name:"bash",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).bashCommand},{name:"sh",load:async()=>(await import("./chunks/bash-YZ33HQZQ.js")).shCommand},{name:"jq",load:async()=>(await import("./chunks/jq-QLLVLUWT.js")).jqCommand},{name:"base64",load:async()=>(await import("./chunks/base64-C2AIWVNC.js")).base64Command},{name:"diff",load:async()=>(await import("./chunks/diff-MWJFIG7X.js")).diffCommand},{name:"date",load:async()=>(await import("./chunks/date-XKUEQ4WF.js")).dateCommand},{name:"sleep",load:async()=>(await import("./chunks/sleep-X22JJINO.js")).sleepCommand},{name:"timeout",load:async()=>(await import("./chunks/timeout-YDCRSLPQ.js")).timeoutCommand},{name:"time",load:async()=>(await import("./chunks/time-D4LNBSWX.js")).timeCommand},{name:"seq",load:async()=>(await import("./chunks/seq-M5EC7Q57.js")).seqCommand},{name:"expr",load:async()=>(await import("./chunks/expr-6MFJ5XZG.js")).exprCommand},{name:"md5sum",load:async()=>(await import("./chunks/md5sum-SPU24VSG.js")).md5sumCommand},{name:"sha1sum",load:async()=>(await import("./chunks/sha1sum-2PTOAFR6.js")).sha1sumCommand},{name:"sha256sum",load:async()=>(await import("./chunks/sha256sum-NS7D3IXX.js")).sha256sumCommand},{name:"file",load:async()=>(await import("./chunks/file-55SY74D5.js")).fileCommand},{name:"html-to-markdown",load:async()=>(await import("./chunks/html-to-markdown-JW4MSQZO.js")).htmlToMarkdownCommand},{name:"help",load:async()=>(await import("./chunks/help-HZ6M2CKN.js")).helpCommand},{name:"which",load:async()=>(await import("./chunks/which-XEM24D5D.js")).whichCommand},{name:"tac",load:async()=>(await import("./chunks/tac-2STMMJYW.js")).tac},{name:"hostname",load:async()=>(await import("./chunks/hostname-C4HQXXUP.js")).hostname},{name:"whoami",load:async()=>(await import("./chunks/whoami-XMTX52VE.js")).whoami},{name:"od",load:async()=>(await import("./chunks/od-WOKFDJTP.js")).od},{name:"gzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gzipCommand},{name:"gunzip",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).gunzipCommand},{name:"zcat",load:async()=>(await import("./chunks/gzip-O5ASJAFY.js")).zcatCommand}];(typeof __BROWSER__>"u"||!__BROWSER__)&&(rt.push({name:"tar",load:async()=>(await import("./chunks/tar-WT6S4IJX.js")).tarCommand}),rt.push({name:"yq",load:async()=>(await import("./chunks/yq-6N2YNRZS.js")).yqCommand}),rt.push({name:"xan",load:async()=>(await import("./chunks/xan-5D7XBVRF.js")).xanCommand}),rt.push({name:"sqlite3",load:async()=>(await import("./chunks/sqlite3-CGOEFJAO.js")).sqlite3Command}));var Qt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Qt.push({name:"python3",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).python3Command}),Qt.push({name:"python",load:async()=>(await import("./chunks/python3-POMOR4OA.js")).pythonCommand}));var Jt=[];(typeof __BROWSER__>"u"||!__BROWSER__)&&(Jt.push({name:"js-exec",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).jsExecCommand}),Jt.push({name:"node",load:async()=>(await import("./chunks/js-exec-N5KEZBH7.js")).nodeStubCommand}));var vn=[{name:"curl",load:async()=>(await import("./chunks/curl-GRYA74XW.js")).curlCommand}],wn=new Map;function es(e){return{name:e.name,async execute(t,s){let r=wn.get(e.name);if(r||(r=await de.runTrustedAsync(()=>e.load()),wn.set(e.name,r)),s.coverage&&(typeof __BROWSER__>"u"||!__BROWSER__)){let{emitFlagCoverage:n}=await import("./chunks/flag-coverage-4GZNBF47.js");n(s.coverage,e.name,t)}return r.execute(t,s)}}}function mo(){return rt.map(e=>e.name)}function yo(){return vn.map(e=>e.name)}function bn(e){return(e?rt.filter(s=>e.includes(s.name)):rt).map(es)}function En(){return vn.map(es)}function go(){return Qt.map(e=>e.name)}function $n(){return Qt.map(es)}function wo(){return Jt.map(e=>e.name)}function Sn(){return Jt.map(es)}function Pn(e){return"load"in e&&typeof e.load=="function"}function vo(e,t){return{name:e,trusted:!0,execute:t}}function An(e){let t=null;return{name:e.name,trusted:!0,async execute(s,r){return t||(t=await e.load()),t.execute(s,r)}}}function D(e){if(!e||e==="/")return"/";let t=e.endsWith("/")&&e!=="/"?e.slice(0,-1):e;t.startsWith("/")||(t=`/${t}`);let s=t.split("/").filter(n=>n&&n!=="."),r=[];for(let n of s)n===".."?r.pop():r.push(n);return`/${r.join("/")}`||"/"}function R(e,t){if(e.includes("\0"))throw new Error(`ENOENT: path contains null byte, ${t} '${e}'`)}function nt(e){let t=D(e);if(t==="/")return"/";let s=t.lastIndexOf("/");return s===0?"/":t.slice(0,s)}function Xe(e,t){if(t.startsWith("/"))return D(t);let s=e==="/"?`/${t}`:`${e}/${t}`;return D(s)}function Ye(e,t){return e==="/"?`/${t}`:`${e}/${t}`}function ft(e,t){if(t.startsWith("/"))return D(t);let s=nt(e);return D(Ye(s,t))}var dt=new TextEncoder;function bo(e){return typeof e=="object"&&e!==null&&!(e instanceof Uint8Array)&&"content"in e}var je=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:493,mtime:new Date}),t)for(let[s,r]of Object.entries(t))typeof r=="function"?this.writeFileLazy(s,r):bo(r)?this.writeFileSync(s,r.content,void 0,{mode:r.mode,mtime:r.mtime}):this.writeFileSync(s,r)}ensureParentDirs(t){let s=nt(t);s!=="/"&&(this.data.has(s)||(this.ensureParentDirs(s),this.data.set(s,{type:"directory",mode:493,mtime:new Date})))}writeFileSync(t,s,r,n){R(t,"write");let i=D(t);this.ensureParentDirs(i);let o=Ee(r),a=ze(s,o);this.data.set(i,{type:"file",content:a,mode:n?.mode??420,mtime:n?.mtime??new Date})}writeFileLazy(t,s,r){R(t,"write");let n=D(t);this.ensureParentDirs(n),this.data.set(n,{type:"file",lazy:s,mode:r?.mode??420,mtime:r?.mtime??new Date})}async materializeLazy(t,s){let r=await s.lazy(),i={type:"file",content:typeof r=="string"?dt.encode(r):r,mode:s.mode,mtime:s.mtime};return this.data.set(t,i),i}async readFile(t,s){let r=await this.readFileBuffer(t),n=Ee(s);return Ve(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return Ve(s,"binary")}async readFileBuffer(t){R(t,"open");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(r.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if("lazy"in r){let n=await this.materializeLazy(s,r);return n.content instanceof Uint8Array?n.content:dt.encode(n.content)}return r.content instanceof Uint8Array?r.content:dt.encode(r.content)}async writeFile(t,s,r){this.writeFileSync(t,s,r)}async appendFile(t,s,r){R(t,"append");let n=D(t),i=this.data.get(n);if(i&&i.type==="directory")throw new Error(`EISDIR: illegal operation on a directory, write '${t}'`);let o=Ee(r),a=ze(s,o);if(i?.type==="file"){let l=i;"lazy"in l&&(l=await this.materializeLazy(n,l));let c="content"in l&&l.content instanceof Uint8Array?l.content:dt.encode("content"in l?l.content:""),u=new Uint8Array(c.length+a.length);u.set(c),u.set(a,c.length),this.data.set(n,{type:"file",content:u,mode:l.mode,mtime:new Date})}else this.writeFileSync(t,s,r)}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){R(t,"stat");let s=this.resolvePathWithSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=dt.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}async lstat(t){R(t,"lstat");let s=this.resolveIntermediateSymlinks(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime||new Date};r.type==="file"&&"lazy"in r&&(r=await this.materializeLazy(s,r));let n=0;return r.type==="file"&&"content"in r&&r.content&&(r.content instanceof Uint8Array?n=r.content.length:n=dt.encode(r.content).length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:n,mtime:r.mtime||new Date}}resolveIntermediateSymlinks(t){let s=D(t);if(s==="/")return"/";let r=s.slice(1).split("/");if(r.length<=1)return s;let n="",i=new Set;for(let o=0;o<r.length-1;o++){let a=r[o];n=`${n}/${a}`;let l=this.data.get(n),c=0,u=40;for(;l&&l.type==="symlink"&&c<u;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`);i.add(n),n=ft(n,l.target),l=this.data.get(n),c++}if(c>=u)throw new Error(`ELOOP: too many levels of symbolic links, lstat '${t}'`)}return`${n}/${r[r.length-1]}`}resolvePathWithSymlinks(t){let s=D(t);if(s==="/")return"/";let r=s.slice(1).split("/"),n="",i=new Set;for(let o of r){n=`${n}/${o}`;let a=this.data.get(n),l=0,c=40;for(;a&&a.type==="symlink"&&l<c;){if(i.has(n))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);i.add(n),n=ft(n,a.target),a=this.data.get(n),l++}if(l>=c)throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`)}return n}async mkdir(t,s){this.mkdirSync(t,s)}mkdirSync(t,s){R(t,"mkdir");let r=D(t);if(this.data.has(r)){if(this.data.get(r)?.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 n=nt(r);if(n!=="/"&&!this.data.has(n))if(s?.recursive)this.mkdirSync(n,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:493,mtime:new Date})}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){R(t,"scandir");let s=D(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let n=new Set;for(;r&&r.type==="symlink";){if(n.has(s))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(s),s=ft(s,r.target),r=this.data.get(s)}if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let i=s==="/"?"/":`${s}/`,o=new Map;for(let[a,l]of this.data.entries())if(a!==s&&a.startsWith(i)){let c=a.slice(i.length),u=c.split("/")[0];u&&!c.includes("/",u.length)&&!o.has(u)&&o.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}return Array.from(o.values()).sort((a,l)=>a.name<l.name?-1:a.name>l.name?1:0)}async rm(t,s){R(t,"rm");let r=D(t),n=this.data.get(r);if(!n){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(n.type==="directory"){let i=await this.readdir(r);if(i.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let o of i){let a=Ye(r,o);await this.rm(a,s)}}}this.data.delete(r)}async cp(t,s,r){R(t,"cp"),R(s,"cp");let n=D(t),i=D(s),o=this.data.get(n);if(!o)throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(o.type==="file")if(this.ensureParentDirs(i),"content"in o){let a=o.content instanceof Uint8Array?new Uint8Array(o.content):o.content;this.data.set(i,{...o,content:a})}else this.data.set(i,{...o});else if(o.type==="symlink")this.ensureParentDirs(i),this.data.set(i,{...o});else if(o.type==="directory"){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let a=await this.readdir(n);for(let l of a){let c=Ye(n,l),u=Ye(i,l);await this.cp(c,u,r)}}}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 Xe(t,s)}async chmod(t,s){R(t,"chmod");let r=D(t),n=this.data.get(r);if(!n)throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);n.mode=s}async symlink(t,s){R(s,"symlink");let r=D(s);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.data.set(r,{type:"symlink",target:t,mode:511,mtime:new Date})}async link(t,s){R(t,"link"),R(s,"link");let r=D(t),n=D(s),i=this.data.get(r);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(n))throw new Error(`EEXIST: file already exists, link '${s}'`);let o=i;"lazy"in o&&(o=await this.materializeLazy(r,o)),this.ensureParentDirs(n),this.data.set(n,{type:"file",content:o.content,mode:o.mode,mtime:o.mtime})}async readlink(t){R(t,"readlink");let s=D(t),r=this.data.get(s);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async realpath(t){R(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,r){R(t,"utimes");let n=D(t),i=this.resolvePathWithSymlinks(n),o=this.data.get(i);if(!o)throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);o.mtime=r}};function Eo(e){let t=e;return typeof t.mkdirSync=="function"&&typeof t.writeFileSync=="function"}function $o(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 So(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 Po(e,t){e.mkdirSync("/proc/self/fd",{recursive:!0}),e.writeFileSync("/proc/version",`${nn}
3
+ `),e.writeFileSync("/proc/self/exe","/bin/bash"),e.writeFileSync("/proc/self/cmdline","bash\0"),e.writeFileSync("/proc/self/comm",`bash
4
+ `),e.writeFileLazy?e.writeFileLazy("/proc/self/status",()=>js(t)):e.writeFileSync("/proc/self/status",js(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 kn(e,t,s={pid:1,ppid:0,uid:1e3,gid:1e3}){Eo(e)&&($o(e,t),So(e),Po(e,s))}var Ao=["allexport","errexit","noglob","noclobber","noexec","nounset","pipefail","posix","verbose","xtrace"],ko=["braceexpand","hashall","interactive-comments"];function Ys(e){let t=[],s=[...ko.map(r=>({name:r,enabled:!0})),...Ao.map(r=>({name:r,enabled:e[r]}))].sort((r,n)=>r.name.localeCompare(n.name));for(let r of s)r.enabled&&t.push(r.name);return t.join(":")}function pt(e){e.state.env.set("SHELLOPTS",Ys(e.state.options))}var Co=["dotglob","expand_aliases","extglob","failglob","globskipdots","globstar","lastpipe","nocaseglob","nocasematch","nullglob","xpg_echo"];function Qs(e){let t=[];for(let s of Co)e[s]&&t.push(s);return t.join(":")}function Js(e){e.state.env.set("BASHOPTS",Qs(e.state.shoptOptions))}var _o="BASH_ALIAS_";function Cn(e){return e.parts.length!==1?!1:e.parts[0].type==="Literal"}function _n(e){if(e.parts.length!==1)return null;let t=e.parts[0];return t.type==="Literal"?t.value:null}function Nn(e,t){return e.env.get(`${_o}${t}`)}function er(e,t,s){if(!t.name||!Cn(t.name))return t;let r=_n(t.name);if(!r)return t;let n=Nn(e,r);if(!n||s.has(r))return t;try{s.add(r);let i=new B,o=n,a=n.endsWith(" ");if(!a)for(let f of t.args){let d=Tn(f);o+=` ${d}`}let l;try{l=i.parse(o)}catch(f){if(f instanceof Kt)throw f;return t}if(l.statements.length!==1||l.statements[0].pipelines.length!==1||l.statements[0].pipelines[0].commands.length!==1)return On(t,n);let c=l.statements[0].pipelines[0].commands[0];if(c.type!=="SimpleCommand")return On(t,n);let u={...c,assignments:[...t.assignments,...c.assignments],redirections:[...c.redirections,...t.redirections],line:t.line};if(a&&t.args.length>0&&(u={...u,args:[...u.args,...t.args]},u.args.length>0)){let f=u.args[0];if(Cn(f)){let d=_n(f);if(d&&Nn(e,d)){let h={type:"SimpleCommand",name:f,args:u.args.slice(1),assignments:[],redirections:[]},m=er(e,h,s);m!==h&&(u={...u,name:m.name,args:[...m.args]})}}}return u}catch(i){throw s.delete(r),i}}function On(e,t){let s=t;for(let o of e.args){let a=Tn(o);s+=` ${a}`}let r=new B,n=r.parseWordFromString("eval",!1,!1),i=r.parseWordFromString(`'${s.replace(/'/g,"'\\''")}'`,!1,!1);return{type:"SimpleCommand",name:n,args:[i],assignments:e.assignments,redirections:e.redirections,line:e.line}}function Tn(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(r=>r.type==="Literal"?r.value:`$${r.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 xn(e,t){let s=t.parts.map(u=>u.type==="Literal"?u.value:"\0").join(""),r=s.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\(/);if(!r||!s.endsWith(")"))return null;let n=r[1],i=[],o=!1,a="",l=!1;for(let u of t.parts)if(u.type==="Literal"){let f=u.value;if(!o){let d=f.indexOf("=(");d!==-1&&(o=!0,f=f.slice(d+2))}if(o){f.endsWith(")")&&(f=f.slice(0,-1));let d=f.split(/(\s+)/);for(let h of d)/^\s+$/.test(h)?(a||l)&&(i.push(a),a="",l=!1):h&&(a+=h)}}else if(o)if(u.type==="BraceExpansion")if(/^\[.+\]=/.test(a))a+=Xt({type:"Word",parts:[u]});else{(a||l)&&(i.push(a),a="",l=!1);let d=await Ie(e,{type:"Word",parts:[u]});i.push(...d.values)}else{(u.type==="SingleQuoted"||u.type==="DoubleQuoted"||u.type==="Escaped")&&(l=!0);let f=await x(e,{type:"Word",parts:[u]});a+=f}(a||l)&&i.push(a);let c=i.map(u=>/^\[.+\]=/.test(u)?u:u===""?"''":/[\s"'\\$`!*?[\]{}|&;<>()]/.test(u)&&!u.startsWith("'")&&!u.startsWith('"')?`'${u.replace(/'/g,"'\\''")}'`:u);return`${n}=(${c.join(" ")})`}async function Dn(e,t){let s=-1,r=-1,n=!1;for(let p=0;p<t.parts.length;p++){let y=t.parts[p];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=p,r=b,n=!0;break}if(/^[a-zA-Z_][a-zA-Z0-9_]*\[[^\]]+\]$/.test(O)){s=p,r=b,n=!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=p,r=g;break}}}}if(s===-1)return null;let i=t.parts.slice(0,s),o=t.parts[s];if(o.type!=="Literal")return null;let a=n?2:1,l=o.value.slice(0,r),c=o.value.slice(r+a),u=t.parts.slice(s+1),f="";for(let p of i)f+=await x(e,{type:"Word",parts:[p]});f+=l;let d={type:"Word",parts:c!==""?[{type:"Literal",value:c},...u]:u},h=d.parts.length>0?await x(e,d):"";return`${f}${n?"+=":"="}${h}`}var No=["tar","yq","xan","sqlite3","python3","python"];function Rn(e){return No.includes(e)}var z=Object.freeze({stdout:"",stderr:"",exitCode:0});function W(e=""){return{stdout:e,stderr:"",exitCode:0}}function A(e,t=1){return{stdout:"",stderr:e,exitCode:t}}function _(e,t,s){return{stdout:e,stderr:t,exitCode:s}}function J(e){return{stdout:"",stderr:"",exitCode:e?0:1}}function Le(e,t,s="",r=""){throw new Q(e,t,s,r)}function ce(e){let t=e.state.fileDescriptors;if(t&&t.size>=e.limits.maxFileDescriptors)throw new Q(`too many open file descriptors (max ${e.limits.maxFileDescriptors})`,"file_descriptors")}function tr(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new qe;return _("",`bash: break: only meaningful in a loop
5
+ `,0)}if(t.length>1)throw new Te(1,"",`bash: break: too many arguments
6
+ `);let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r))throw new Te(128,"",`bash: break: ${t[0]}: numeric argument required
7
+ `);if(r<1)throw new ae(1,"",`bash: break: loop count out of range
8
+ `);s=r}throw new ae(s)}async function sr(e,t){let s,r=!1,n=!1,i=0;for(;i<t.length;)if(t[i]==="--"){i++;break}else if(t[i]==="-L")n=!1,i++;else if(t[i]==="-P")n=!0,i++;else if(t[i].startsWith("-")&&t[i]!=="-")i++;else break;let o=t.slice(i);if(o.length>1)return A(`bash: cd: too many arguments
9
+ `,2);if(o.length===0||o[0]==="~"?s=e.state.env.get("HOME")||"/":o[0]==="-"?(s=e.state.previousDir,r=!0):s=o[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 m=h.startsWith("/")?`${h}/${s}`:`${e.state.cwd}/${h}/${s}`;try{if((await e.fs.stat(m)).isDirectory){s=m,r=!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 A(`bash: cd: ${s}: Not a directory
10
+ `)}catch{return A(`bash: cd: ${s}: No such file or directory
11
+ `)}}let u=c||"/";if(n)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),W(r?`${u}
12
+ `:"")}function rr(e,t){return e.fs.resolvePath(e.state.cwd,t)}var Oo=["-e","-a","-f","-d","-r","-w","-x","-s","-L","-h","-k","-g","-u","-G","-O","-b","-c","-p","-S","-t","-N"];function ss(e){return Oo.includes(e)}async function rs(e,t,s){let r=rr(e,s);switch(t){case"-e":case"-a":return e.fs.exists(r);case"-f":return await e.fs.exists(r)?(await e.fs.stat(r)).isFile:!1;case"-d":return await e.fs.exists(r)?(await e.fs.stat(r)).isDirectory:!1;case"-r":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&256)!==0:!1;case"-w":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&128)!==0:!1;case"-x":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&64)!==0:!1;case"-s":return await e.fs.exists(r)?(await e.fs.stat(r)).size>0:!1;case"-L":case"-h":try{return(await e.fs.lstat(r)).isSymbolicLink}catch{return!1}case"-k":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&512)!==0:!1;case"-g":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&1024)!==0:!1;case"-u":return await e.fs.exists(r)?((await e.fs.stat(r)).mode&2048)!==0:!1;case"-G":case"-O":return e.fs.exists(r);case"-b":return!1;case"-c":return["/dev/null","/dev/zero","/dev/random","/dev/urandom","/dev/tty","/dev/stdin","/dev/stdout","/dev/stderr"].includes(r);case"-p":return!1;case"-S":return!1;case"-t":return!1;case"-N":return e.fs.exists(r);default:return!1}}var To=["-nt","-ot","-ef"];function ns(e){return To.includes(e)}async function is(e,t,s,r){let n=rr(e,s),i=rr(e,r);switch(t){case"-nt":try{let o=await e.fs.stat(n),a=await e.fs.stat(i);return o.mtime>a.mtime}catch{return!1}case"-ot":try{let o=await e.fs.stat(n),a=await e.fs.stat(i);return o.mtime<a.mtime}catch{return!1}case"-ef":try{if(!await e.fs.exists(n)||!await e.fs.exists(i))return!1;let o=e.fs.resolvePath(e.state.cwd,n),a=e.fs.resolvePath(e.state.cwd,i);return o===a}catch{return!1}default:return!1}}var xo=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]);function os(e){return xo.has(e)}function as(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 Dt(e){return e==="="||e==="=="||e==="!="}function ls(e,t,s,r=!1,n=!1,i=!1){if(r){let a=mt(t,s,n,i);return e==="!="?!a:a}if(n){let a=t.toLowerCase()===s.toLowerCase();return e==="!="?!a:a}let o=t===s;return e==="!="?!o:o}var Do=new Set(["-z","-n"]);function cs(e){return Do.has(e)}function us(e,t){switch(e){case"-z":return t==="";case"-n":return t!==""}}async function fs(e,t){let s=t.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(s){let r=s[1],n=s[2];if(e.state.associativeArrays?.has(r)){let a=n;return(a.startsWith("'")&&a.endsWith("'")||a.startsWith('"')&&a.endsWith('"'))&&(a=a.slice(1,-1)),a=a.replace(/\$([a-zA-Z_][a-zA-Z0-9_]*)/g,(l,c)=>e.state.env.get(c)||""),e.state.env.has(`${r}_${a}`)}let o;try{let a=new B,l=ee(a,n);o=await U(e,l.expression)}catch{if(/^-?\d+$/.test(n))o=Number.parseInt(n,10);else{let a=e.state.env.get(n);o=a?Number.parseInt(a,10):0}}if(o<0){let a=ne(e,r),l=e.state.currentLine;if(a.length===0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
13
+ `,!1;if(o=Math.max(...a)+1+o,o<0)return e.state.expansionStderr=(e.state.expansionStderr||"")+`bash: line ${l}: ${r}: bad array subscript
14
+ `,!1}return e.state.env.has(`${r}_${o}`)}return e.state.env.has(t)?!0:e.state.associativeArrays?.has(t)?Ge(e,t).length>0:ne(e,t).length>0}async function Qe(e,t){switch(t.type){case"CondBinary":{let s=await x(e,t.left),r=t.right.parts.length>0&&t.right.parts.every(i=>i.type==="SingleQuoted"||i.type==="DoubleQuoted"||i.type==="Escaped"&&t.operator!=="=~"),n;if(t.operator==="=~")if(r){let i=await x(e,t.right);n=pn(i)}else n=await yn(e,t.right);else Dt(t.operator)&&!r?n=await gn(e,t.right):n=await x(e,t.right);if(Dt(t.operator)){let i=e.state.shoptOptions.nocasematch;return ls(t.operator,s,n,!r,i,!0)}if(os(t.operator))return as(t.operator,await Ln(e,s),await Ln(e,n));if(ns(t.operator))return is(e,t.operator,s,n);switch(t.operator){case"=~":try{let i=e.state.shoptOptions.nocasematch,o=Fo(n),l=Ot(o,i?"i":"").match(s);if(Re(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<n;case">":return s>n;default:return!1}}case"CondUnary":{let s=await x(e,t.operand);return ss(t.operator)?rs(e,t.operator,s):cs(t.operator)?us(t.operator,s):t.operator==="-v"?await fs(e,s):t.operator==="-o"?ir(e,s):!1}case"CondNot":return e.state.shoptOptions.extglob&&t.operand.type==="CondGroup"&&t.operand.expression.type==="CondWord"?`!(${await x(e,t.operand.expression.word)})`!=="":!await Qe(e,t.operand);case"CondAnd":return await Qe(e,t.left)?await Qe(e,t.right):!1;case"CondOr":return await Qe(e,t.left)?!0:await Qe(e,t.right);case"CondGroup":return await Qe(e,t.expression);case"CondWord":return await x(e,t.word)!=="";default:return!1}}async function Rt(e,t){if(t.length===0)return _("","",1);if(t.length===1)return J(!!t[0]);if(t.length===2){let r=t[0],n=t[1];return r==="("?A(`test: '(' without matching ')'
15
+ `,2):ss(r)?J(await rs(e,r,n)):cs(r)?J(us(r,n)):r==="!"?J(!n):r==="-v"?J(await fs(e,n)):r==="-o"?J(ir(e,n)):r==="="||r==="=="||r==="!="||r==="<"||r===">"||r==="-eq"||r==="-ne"||r==="-lt"||r==="-le"||r==="-gt"||r==="-ge"||r==="-nt"||r==="-ot"||r==="-ef"?A(`test: ${r}: unary operator expected
16
+ `,2):_("","",1)}if(t.length===3){let r=t[0],n=t[1],i=t[2];if(Dt(n))return J(ls(n,r,i));if(os(n)){let o=ds(r),a=ds(i);return!o.valid||!a.valid?_("","",2):J(as(n,o.value,a.value))}if(ns(n))return J(await is(e,n,r,i));switch(n){case"-a":return J(r!==""&&i!=="");case"-o":return J(r!==""||i!=="");case">":return J(r>i);case"<":return J(r<i)}if(r==="!"){let o=await Rt(e,[n,i]);return _("",o.stderr,o.exitCode===0?1:o.exitCode===1?0:o.exitCode)}if(r==="("&&i===")")return J(n!=="")}if(t.length===4){if(t[0]==="!"){let r=await Rt(e,t.slice(1));return _("",r.stderr,r.exitCode===0?1:r.exitCode===1?0:r.exitCode)}if(t[0]==="("&&t[3]===")")return Rt(e,[t[1],t[2]])}let s=await Mn(e,t,0);return s.pos<t.length?A(`test: too many arguments
17
+ `,2):J(s.value)}async function Mn(e,t,s){return Ro(e,t,s)}async function Ro(e,t,s){let{value:r,pos:n}=await In(e,t,s);for(;t[n]==="-o";){let i=await In(e,t,n+1);r=r||i.value,n=i.pos}return{value:r,pos:n}}async function In(e,t,s){let{value:r,pos:n}=await nr(e,t,s);for(;t[n]==="-a";){let i=await nr(e,t,n+1);r=r&&i.value,n=i.pos}return{value:r,pos:n}}async function nr(e,t,s){if(t[s]==="!"){let{value:r,pos:n}=await nr(e,t,s+1);return{value:!r,pos:n}}return Io(e,t,s)}async function Io(e,t,s){let r=t[s];if(r==="("){let{value:i,pos:o}=await Mn(e,t,s+1);return{value:i,pos:t[o]===")"?o+1:o}}let n=t[s+1];if(Dt(n)){let i=r,o=t[s+2]??"";return{value:ls(n,i,o),pos:s+3}}if(os(n)){let i=ds(r),o=ds(t[s+2]??"0");return!i.valid||!o.valid?{value:!1,pos:s+3}:{value:as(n,i.value,o.value),pos:s+3}}if(ns(n)){let i=r,o=t[s+2]??"";return{value:await is(e,n,i,o),pos:s+3}}if(ss(r)){let i=t[s+1]??"";return{value:await rs(e,r,i),pos:s+2}}if(cs(r)){let i=t[s+1]??"";return{value:us(r,i),pos:s+2}}if(r==="-v"){let i=t[s+1]??"";return{value:await fs(e,i),pos:s+2}}if(r==="-o"){let i=t[s+1]??"";return{value:ir(e,i),pos:s+2}}return{value:r!==void 0&&r!=="",pos:s+1}}function mt(e,t,s=!1,r=!1){let n=`^${Wn(t,r)}$`;return Ot(n,s?"is":"s").test(e)}function Wn(e,t){let s="";for(let r=0;r<e.length;r++){let n=e[r];if(t&&(n==="@"||n==="*"||n==="+"||n==="?"||n==="!")&&r+1<e.length&&e[r+1]==="("){let i=zn(e,r+1);if(i!==-1){let o=e.slice(r+2,i),a=Vn(o),l=a.map(u=>Wn(u,t)),c=l.length>0?l.join("|"):"(?:)";if(n==="@")s+=`(?:${c})`;else if(n==="*")s+=`(?:${c})*`;else if(n==="+")s+=`(?:${c})+`;else if(n==="?")s+=`(?:${c})?`;else if(n==="!")if(i<e.length-1){let f=a.map(h=>Bn(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 m=[];h>0&&m.push(`.{0,${h-1}}`),m.push(`.{${h+1},}`),m.push(`(?!(?:${c})).{${h}}`),s+=`(?:${m.join("|")})`}}else s+=`(?:(?!(?:${c})).)*?`}else s+=`(?!(?:${c})$).*`;r=i;continue}}if(n==="\\")if(r+1<e.length){let i=e[r+1];/[\\^$.|+(){}[\]*?]/.test(i)?s+=`\\${i}`:s+=i,r++}else s+="\\\\";else if(n==="*")s+=".*";else if(n==="?")s+=".";else if(n==="["){let i=e.indexOf("]",r+1);if(i!==-1){let o=e.slice(r+1,i);o.startsWith("!")?s+=`[^${o.slice(1)}]`:s+=e.slice(r,i+1),r=i}else s+="\\["}else/[\\^$.|+(){}]/.test(n)?s+=`\\${n}`:s+=n}return s}function zn(e,t){let s=1,r=t+1;for(;r<e.length&&s>0;){let n=e[r];if(n==="\\"){r+=2;continue}if(n==="(")s++;else if(n===")"&&(s--,s===0))return r;r++}return-1}function Vn(e){let t=[],s="",r=0,n=0;for(;n<e.length;){let i=e[n];if(i==="\\"){s+=i,n+1<e.length?(s+=e[n+1],n+=2):n++;continue}i==="("?(r++,s+=i):i===")"?(r--,s+=i):i==="|"&&r===0?(t.push(s),s=""):s+=i,n++}return t.push(s),t}function Bn(e,t){let s=0,r=0;for(;r<e.length;){let n=e[r];if(t&&(n==="@"||n==="*"||n==="+"||n==="?"||n==="!")&&r+1<e.length&&e[r+1]==="("){let i=zn(e,r+1);if(i!==-1){if(n==="@"){let o=e.slice(r+2,i),l=Vn(o).map(c=>Bn(c,t));if(l.every(c=>c!==null)&&l.every(c=>c===l[0])){s+=l[0],r=i+1;continue}return null}return null}}if(n==="*")return null;if(n==="?"){s+=1,r++;continue}if(n==="["){let i=e.indexOf("]",r+1);if(i!==-1){s+=1,r=i+1;continue}s+=1,r++;continue}if(n==="\\"){s+=1,r+=2;continue}s+=1,r++}return s}function ir(e,t){let r=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 r?r():!1}async function Ln(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 Fn(t);try{let s=new B,r=ee(s,t);return await U(e,r.expression)}catch{return Fn(t)}}function Lo(e,t){let s=0;for(let r of e){let n;if(r>="0"&&r<="9")n=r.charCodeAt(0)-48;else if(r>="a"&&r<="z")n=r.charCodeAt(0)-97+10;else if(r>="A"&&r<="Z")n=r.charCodeAt(0)-65+36;else if(r==="@")n=62;else if(r==="_")n=63;else return Number.NaN;if(n>=t)return Number.NaN;s=s*t+n}return s}function Fn(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,r=e.match(/^(\d+)#([a-zA-Z0-9@_]+)$/);if(r){let n=Number.parseInt(r[1],10);n>=2&&n<=64?s=Lo(r[2],n):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 ds(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 Fo(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 r=Mo(e,s);t+=r.converted,s=r.endIndex}else t+=e[s],s++;return t}function Mo(e,t){let s=t+1,r="[";s<e.length&&(e[s]==="^"||e[s]==="!")&&(r+="^",s++);let n=!1;s<e.length&&e[s]==="]"&&(n=!0,s++);let i=!1;s<e.length&&e[s]==="["&&s+1<e.length&&e[s+1]!==":"&&(i=!0,s++);let o="",a=!1;for(;s<e.length;){let l=e[s];if(l==="]"){a=!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);o+=Wo(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);o+=d,s=f+2;continue}}}if(l==="\\"&&s+1<e.length){o+=l+e[s+1],s+=2;continue}o+=l,s++}return a?(n&&(r+="\\]"),i&&(r+="\\["),r+=o,r+="]",{converted:r,endIndex:s}):{converted:"\\[",endIndex:t+1}}function Wo(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 Fe(e){let t=[],s="",r=!1,n=!1,i=!1,o=!1;for(let a of e){if(i){s+=a,i=!1,o=!0;continue}if(a==="\\"){i=!0;continue}if(a==="'"&&!n){r||(o=!0),r=!r;continue}if(a==='"'&&!r){n||(o=!0),n=!n;continue}if((a===" "||a===" "||a===`
18
+ `)&&!r&&!n){o&&(t.push(s),s="",o=!1);continue}s+=a,o=!0}return o&&t.push(s),t}function hs(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 r="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)r+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&e[s]!=="]"&&e[s]!=="=";)r+=e[s],s++;for(;s<e.length&&e[s]!=="]";)s++;if(e[s]==="]"&&s++,e[s]!=="=")continue;s++;let n="";if(e[s]==="'"||e[s]==='"'){let i=e[s];for(s++;s<e.length&&e[s]!==i;)e[s]==="\\"&&s+1<e.length&&s++,n+=e[s],s++;e[s]===i&&s++}else for(;s<e.length&&!/\s/.test(e[s]);)n+=e[s],s++;t.push([r,n])}return t}function jn(e){let t=e.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(t)return{name:t[1],isArray:!0,arrayElements:Fe(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 r=e.indexOf("=");return{name:e.slice(0,r),isArray:!1,value:e.slice(r+1)}}return{name:e,isArray:!1}}async function zo(e,t){try{let s=new B,r=ee(s,t);return await U(e,r.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}async function Un(e,t,s={}){let{name:r,isArray:n,arrayElements:i,value:o,arrayIndex:a}=t,{makeReadonly:l=!1,checkReadonly:c=!0}=s;if(c){let u=se(e,r);if(u)return u}if(n&&i){for(let u=0;u<i.length;u++)e.state.env.set(`${r}_${u}`,i[u]);e.state.env.set(`${r}__length`,String(i.length))}else if(a!==void 0&&o!==void 0){let u=await zo(e,a);e.state.env.set(`${r}_${u}`,o);let f=parseInt(e.state.env.get(`${r}__length`)??"0",10);u>=f&&e.state.env.set(`${r}__length`,String(u+1))}else o!==void 0&&e.state.env.set(r,o);return l&&me(e,r),null}function Je(e,t){e.state.localVarDepth=e.state.localVarDepth||new Map,e.state.localVarDepth.set(t,e.state.callDepth)}function yt(e,t){return e.state.localVarDepth?.get(t)}function ps(e,t){e.state.localVarDepth?.delete(t)}function Hn(e,t,s){e.state.localVarStack=e.state.localVarStack||new Map;let r=e.state.localVarStack.get(t)||[];r.push({value:s,scopeIndex:e.state.localScopes.length-1}),e.state.localVarStack.set(t,r)}function ms(e,t){let s=e.state.localVarStack?.get(t);if(!(!s||s.length===0))return s.pop()}function qn(e,t){if(e.state.localVarStack)for(let[s,r]of e.state.localVarStack.entries()){for(;r.length>0&&r[r.length-1].scopeIndex===t;)r.pop();r.length===0&&e.state.localVarStack.delete(s)}}var or=new Set([":",".","break","continue","eval","exec","exit","export","readonly","return","set","shift","trap","unset"]);function Zn(e){return or.has(e)}var ar=new Set(["if","then","else","elif","fi","case","esac","for","select","while","until","do","done","in","function","{","}","time","[[","]]","!"]),gt=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 et(e,t,s,r){try{if((await e.fs.stat(t)).isDirectory)return`bash: ${s}: Is a directory
19
+ `;if(r.checkNoclobber&&e.state.options.noclobber&&!r.isClobber&&s!=="/dev/null")return`bash: ${s}: cannot overwrite existing file
20
+ `}catch{}return null}function Me(e){let s=Math.min(e.length,8192);for(let r=0;r<s;r++)if(e.charCodeAt(r)>127)return"utf8";return"binary"}function Vo(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),o=n+r+1,a=t.slice(o),l=a.indexOf(":");if(l===-1)return null;let c=Number.parseInt(a.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=a.slice(l+1);return{path:i,position:c,content:u}}async function ys(e,t){let s=new Map;for(let r=0;r<t.length;r++){let n=t[r];if(n.target.type==="HereDoc")continue;if(n.operator===">&"||n.operator==="<&"){if(Ks(e,n.target))return{targets:s,error:`bash: $@: ambiguous redirect
21
+ `};s.set(r,await x(e,n.target))}else{let o=await ut(e,n.target);if("error"in o)return{targets:s,error:o.error};s.set(r,o.target)}}return{targets:s}}function Bo(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 gs(e,t){for(let s of t){if(!s.fdVariable)continue;if(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),(s.operator===">&"||s.operator==="<&")&&s.target.type==="Word"&&await x(e,s.target)==="-"){let i=e.state.env.get(s.fdVariable);if(i!==void 0){let o=Number.parseInt(i,10);Number.isNaN(o)||e.state.fileDescriptors.delete(o)}continue}let r=Bo(e);if(e.state.env.set(s.fdVariable,String(r)),s.target.type==="Word"){let n=await x(e,s.target);if(s.operator===">&"||s.operator==="<&"){let i=Number.parseInt(n,10);if(!Number.isNaN(i)){let o=e.state.fileDescriptors.get(i);o!==void 0&&(ce(e),e.state.fileDescriptors.set(r,o));continue}}if(s.operator===">"||s.operator===">>"||s.operator===">|"||s.operator==="&>"||s.operator==="&>>"){let i=e.fs.resolvePath(e.state.cwd,n);(s.operator===">"||s.operator===">|"||s.operator==="&>")&&await e.fs.writeFile(i,"","binary"),ce(e),e.state.fileDescriptors.set(r,`__file__:${i}`)}else if(s.operator==="<<<")ce(e),e.state.fileDescriptors.set(r,`${n}
22
+ `);else if(s.operator==="<"||s.operator==="<>")try{let i=e.fs.resolvePath(e.state.cwd,n),o=await e.fs.readFile(i);ce(e),e.state.fileDescriptors.set(r,o)}catch{return _("",`bash: ${n}: No such file or directory
23
+ `,1)}}}return null}async function Ce(e,t){for(let s of t){if(s.target.type==="HereDoc")continue;let r=s.operator===">&";if(s.operator!==">"&&s.operator!==">|"&&s.operator!=="&>"&&!r)continue;let n;if(r){if(n=await x(e,s.target),n==="-"||!Number.isNaN(Number.parseInt(n,10))||s.fd!=null)continue}else{let a=await ut(e,s.target);if("error"in a)return _("",a.error,1);n=a.target}let i=e.fs.resolvePath(e.state.cwd,n),o=s.operator===">|";if(i.includes("\0"))return _("",`bash: ${n}: No such file or directory
24
+ `,1);try{let a=await e.fs.stat(i);if(a.isDirectory)return _("",`bash: ${n}: Is a directory
25
+ `,1);if(e.state.options.noclobber&&!o&&!a.isDirectory&&n!=="/dev/null")return _("",`bash: ${n}: cannot overwrite existing file
26
+ `,1)}catch{}if(n!=="/dev/null"&&n!=="/dev/stdout"&&n!=="/dev/stderr"&&n!=="/dev/full"&&await e.fs.writeFile(i,"","binary"),n==="/dev/full")return _("",`bash: /dev/full: No space left on device
27
+ `,1)}return null}async function Gn(e,t,s){for(let r=0;r<t.length;r++){let n=t[r];if(n.target.type==="HereDoc")continue;let i=n.operator===">&";if(n.operator!==">"&&n.operator!==">|"&&n.operator!=="&>"&&!i)continue;let o,a=s?.get(r);if(a!==void 0)o=a;else if(i)o=await x(e,n.target);else{let u=await ut(e,n.target);if("error"in u)return _("",u.error,1);o=u.target}if(i&&(o==="-"||!Number.isNaN(Number.parseInt(o,10))||n.fd!=null))continue;let l=e.fs.resolvePath(e.state.cwd,o);if(l.includes("\0"))return _("",`bash: ${o}: No such file or directory
28
+ `,1);let c=await et(e,l,o,{checkNoclobber:!0,isClobber:n.operator===">|"});if(c)return _("",c,1)}return null}async function Z(e,t,s,r){let{stdout:n,stderr:i,exitCode:o}=t,a=n,l=i,u=t.stdoutKind==="bytes"||t.stdoutKind===void 0&&t.stdoutEncoding==="binary"?"binary":"utf8",f=y=>u,d=async y=>{let b=r?.get(y);if(b!==void 0)return b;let g=await ut(e,s[y].target);return"error"in g?(i+=g.error,o=1,n="",null):g.target};for(let y=0;y<s.length;y++){let b=s[y];if(b.target.type==="HereDoc")continue;let g,O=r?.get(y);if(O!==void 0)g=O;else if(b.operator===">&"||b.operator==="<&"){if(Ks(e,b.target)){i+=`bash: $@: ambiguous redirect
29
+ `,o=1,n="";continue}g=await x(e,b.target)}else{let $=await ut(e,b.target);if("error"in $){i+=$.error,o=1,n="";continue}g=$.target}if(!b.fdVariable){if(g.includes("\0")){i+=`bash: ${g.replace(/\0/g,"")}: No such file or directory
30
+ `,o=1,n="";continue}switch(b.operator){case">":case">|":{let v=b.fd??1,$=b.operator===">|";if(v===1){if(g==="/dev/stdout")break;if(g==="/dev/stderr"){i+=n,n="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
31
+ `,o=1,n="";break}let w=e.fs.resolvePath(e.state.cwd,g),S=await et(e,w,g,{checkNoclobber:!0,isClobber:$});if(S){i+=S,o=1,n="";break}let C=s[y-1];if(C&&(C.operator===">&"||C.operator==="<&")&&(C.fd??1)===2){let N=r?.get(y-1)??await x(e,C.target);if(N==="1"||N==="&1"){await e.fs.writeFile(w,a,f(a)),n=l,i="";break}}let E=s[y+1];if(E&&(E.operator===">&"||E.operator==="<&")&&(E.fd??1)===2){let N=r?.get(y+1)??await x(e,E.target);if(N==="1"||N==="&1"){let P=n+i;await e.fs.writeFile(w,P,f(P)),n="",i="",y++;break}}await e.fs.writeFile(w,n,f(n)),n=""}else if(v===2){if(g==="/dev/stderr")break;if(g==="/dev/stdout"){n+=i,i="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
32
+ `,o=1;break}if(g==="/dev/null")i="";else{let w=e.fs.resolvePath(e.state.cwd,g),S=await et(e,w,g,{checkNoclobber:!0,isClobber:$});if(S){i+=S,o=1;break}await e.fs.writeFile(w,i,Me(i)),i=""}}break}case">>":{let v=b.fd??1;if(v===1){if(g==="/dev/stdout")break;if(g==="/dev/stderr"){i+=n,n="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
33
+ `,o=1,n="";break}let $=e.fs.resolvePath(e.state.cwd,g),w=await et(e,$,g,{});if(w){i+=w,o=1,n="";break}await e.fs.appendFile($,n,f(n)),n=""}else if(v===2){if(g==="/dev/stderr")break;if(g==="/dev/stdout"){n+=i,i="";break}if(g==="/dev/full"){i+=`bash: echo: write error: No space left on device
34
+ `,o=1;break}let $=e.fs.resolvePath(e.state.cwd,g),w=await et(e,$,g,{});if(w){i+=w,o=1;break}await e.fs.appendFile($,i,Me(i)),i=""}break}case">&":case"<&":{let v=b.fd??1;if(g==="-"){if(v===1){let $=s[y-1];if($&&($.operator===">&"||$.operator==="<&")&&($.fd??1)===2){let w=r?.get(y-1)??await x(e,$.target);n=w==="1"||w==="&1"?l:""}else n=""}else v===2&&(i="");break}if(g.endsWith("-")){let $=g.slice(0,-1),w=Number.parseInt($,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
35
+ `,o=1)}break}if(g==="2"||g==="&2")v===1&&(i=n+i,n="");else if(g==="1"||g==="&1")n+=i,i="";else{let $=Number.parseInt(g,10);if(Number.isNaN($)){if(b.operator===">&"){let w=e.fs.resolvePath(e.state.cwd,g),S=await et(e,w,g,{checkNoclobber:!0});if(S){i=S,o=1,n="";break}if(b.fd==null){let C=n+i;await e.fs.writeFile(w,C,f(C)),n="",i=""}else v===1?(await e.fs.writeFile(w,n,f(n)),n=""):v===2&&(await e.fs.writeFile(w,i,Me(i)),i="")}}else{let w=e.state.fileDescriptors?.get($);if(w?.startsWith("__file__:")){let S=w.slice(9);v===1?(await e.fs.appendFile(S,n,f(n)),n=""):v===2&&(await e.fs.appendFile(S,i,Me(i)),i="")}else if(w?.startsWith("__rw__:")){let S=Vo(w);S&&(v===1?(await e.fs.appendFile(S.path,n,f(n)),n=""):v===2&&(await e.fs.appendFile(S.path,i,Me(i)),i=""))}else if(w?.startsWith("__dupout__:")){let S=Number.parseInt(w.slice(11),10);if(S!==1)if(S===2)v===1&&(i=n+i,n="");else{let C=e.state.fileDescriptors?.get(S);if(C?.startsWith("__file__:")){let E=C.slice(9);v===1?(await e.fs.appendFile(E,n,f(n)),n=""):v===2&&(await e.fs.appendFile(E,i,Me(i)),i="")}}}else w?.startsWith("__dupin__:")?(i+=`bash: ${$}: Bad file descriptor
36
+ `,o=1,n=""):$>=3&&(i+=`bash: ${$}: Bad file descriptor
37
+ `,o=1,n="")}}break}case"&>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
38
+ `,o=1,n="";break}let v=e.fs.resolvePath(e.state.cwd,g),$=await et(e,v,g,{checkNoclobber:!0});if($){i=$,o=1,n="";break}let w=s[y+1];if(w&&(w.operator===">"||w.operator===">|"||w.operator===">>")&&(w.fd??1)===1){let C=await d(y+1);if(C!==null){let E=e.fs.resolvePath(e.state.cwd,C);await e.fs.writeFile(v,i,Me(i)),w.operator===">>"?await e.fs.appendFile(E,n,f(n)):await e.fs.writeFile(E,n,f(n)),n="",i="",y++;break}}let S=n+i;await e.fs.writeFile(v,S,f(S)),n="",i="";break}case"&>>":{if(g==="/dev/full"){i=`bash: echo: write error: No space left on device
39
+ `,o=1,n="";break}let v=e.fs.resolvePath(e.state.cwd,g),$=await et(e,v,g,{});if($){i=$,o=1,n="";break}let w=s[y+1];if(w&&(w.operator===">"||w.operator===">|"||w.operator===">>")&&(w.fd??1)===1){let C=await d(y+1);if(C!==null){let E=e.fs.resolvePath(e.state.cwd,C);await e.fs.appendFile(v,i,Me(i)),w.operator===">>"?await e.fs.appendFile(E,n,f(n)):await e.fs.writeFile(E,n,f(n)),n="",i="",y++;break}}let S=n+i;await e.fs.appendFile(v,S,f(S)),n="",i="";break}}}}let h=e.state.fileDescriptors?.get(1);if(h){if(h==="__dupout__:2")i+=n,n="";else if(h.startsWith("__file__:")){let y=h.slice(9);await e.fs.appendFile(y,n,f(n)),n=""}else if(h.startsWith("__file_append__:")){let y=h.slice(16);await e.fs.appendFile(y,n,f(n)),n=""}}let m=e.state.fileDescriptors?.get(2);if(m){if(m==="__dupout__:1")n+=i,i="";else if(m.startsWith("__file__:")){let y=m.slice(9);await e.fs.appendFile(y,i,Me(i)),i=""}else if(m.startsWith("__file_append__:")){let y=m.slice(16);await e.fs.appendFile(y,i,Me(i)),i=""}}let p=_(n,i,o);return t.stdoutKind&&(p.stdoutKind=t.stdoutKind),t.stdoutEncoding==="binary"&&(p.stdoutEncoding="binary"),p}function Kn(e,t){if(e.state.options.posix&&or.has(t.name)){let r=`bash: line ${e.state.currentLine}: \`${t.name}': is a special builtin
40
+ `;throw new G(2,"",r)}let s={...t,sourceFile:t.sourceFile??e.state.currentSource??"main"};return e.state.functions.set(t.name,s),z}async function jo(e,t){let s="";for(let r of t)if((r.operator==="<<"||r.operator==="<<-")&&r.target.type==="HereDoc"){let n=r.target,i=await x(e,n.content);n.stripTabs&&(i=i.split(`
41
+ `).map(a=>a.replace(/^\t+/,"")).join(`
42
+ `)),(r.fd??0)===0&&(s=i)}else if(r.operator==="<<<"&&r.target.type==="Word")s=`${await x(e,r.target)}
43
+ `;else if(r.operator==="<"&&r.target.type==="Word"){let n=await x(e,r.target),i=e.fs.resolvePath(e.state.cwd,n);try{s=await e.fs.readFile(i)}catch{}}return s}async function ws(e,t,s,r="",n){e.state.callDepth++,e.state.callDepth>e.limits.maxCallDepth&&(e.state.callDepth--,Le(`${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(n??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 o=()=>{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(qn(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:a,error:l}=await ys(e,t.redirections);if(l)return o(),_("",l,1);try{let c=await jo(e,t.redirections),u=r||c,f=await e.executeCommand(t.body,u);return o(),Z(e,f,t.redirections,a)}catch(c){if(o(),c instanceof ue){let u=_(c.stdout,c.stderr,c.exitCode);return Z(e,u,t.redirections,a)}throw c}}var Yn=["!","[[","]]","case","do","done","elif","else","esac","fi","for","function","if","in","then","time","until","while","{","}"],cr=[".",":","[","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"],Uo=["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"],Ho=cr;async function ur(e,t){let s=[],r=null,n="",i="",o=null,a=!1,l=!1,c=!1,u=null,f=null,d=null,h=[],m=["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 $=t[v];if($==="-v")s.push("variable");else if($==="-e")s.push("export");else if($==="-f")s.push("file");else if($==="-d")s.push("directory");else if($==="-k")s.push("keyword");else if($==="-A"){if(v++,v>=t.length)return A(`compgen: -A: option requires an argument
44
+ `,2);let w=t[v];if(!m.includes(w))return A(`compgen: ${w}: invalid action name
45
+ `,2);s.push(w)}else if($==="-W"){if(v++,v>=t.length)return A(`compgen: -W: option requires an argument
46
+ `,2);r=t[v]}else if($==="-P"){if(v++,v>=t.length)return A(`compgen: -P: option requires an argument
47
+ `,2);n=t[v]}else if($==="-S"){if(v++,v>=t.length)return A(`compgen: -S: option requires an argument
48
+ `,2);i=t[v]}else if($==="-o"){if(v++,v>=t.length)return A(`compgen: -o: option requires an argument
49
+ `,2);let w=t[v];if(w==="plusdirs")a=!0;else if(w==="dirnames")l=!0;else if(w==="default")c=!0;else if(!(w==="filenames"||w==="nospace"||w==="bashdefault"||w==="noquote"))return A(`compgen: ${w}: invalid option name
50
+ `,2)}else if($==="-F"){if(v++,v>=t.length)return A(`compgen: -F: option requires an argument
51
+ `,2);f=t[v]}else if($==="-C"){if(v++,v>=t.length)return A(`compgen: -C: option requires an argument
52
+ `,2);d=t[v]}else if($==="-X"){if(v++,v>=t.length)return A(`compgen: -X: option requires an argument
53
+ `,2);u=t[v]}else if($==="-G"){if(v++,v>=t.length)return A(`compgen: -G: option requires an argument
54
+ `,2)}else if($==="--"){h.push(...t.slice(v+1));break}else $.startsWith("-")||h.push($)}o=h[0]??null;let p=[];if(l){let v=await lr(e,o);p.push(...v)}if(c){let v=await Xn(e,o);p.push(...v)}for(let v of s)if(v==="variable"){let $=qo(e,o);p.push(...$)}else if(v==="export"){let $=Zo(e,o);p.push(...$)}else if(v==="function"){let $=Go(e,o);p.push(...$)}else if(v==="builtin"){let $=Ko(o);p.push(...$)}else if(v==="keyword"){let $=Xo(o);p.push(...$)}else if(v==="alias"){let $=Yo(e,o);p.push(...$)}else if(v==="shopt"){let $=Qo(o);p.push(...$)}else if(v==="helptopic"){let $=Jo(o);p.push(...$)}else if(v==="directory"){let $=await lr(e,o);p.push(...$)}else if(v==="file"){let $=await Xn(e,o);p.push(...$)}else if(v==="user"){let $=ea(o);p.push(...$)}else if(v==="command"){let $=await ta(e,o);p.push(...$)}if(r!==null)try{let v=await sa(e,r),$=ra(e,v);for(let w of $)(o===null||w.startsWith(o))&&p.push(w)}catch{return _("","",1)}if(a){let v=await lr(e,o);for(let $ of v)p.includes($)||p.push($)}let y="";if(f!==null){let v=e.state.functions.get(f);if(v){let $=new Map;$.set("COMP_WORDS__length",e.state.env.get("COMP_WORDS__length")),e.state.env.set("COMP_WORDS__length","0"),$.set("COMP_CWORD",e.state.env.get("COMP_CWORD")),e.state.env.set("COMP_CWORD","-1"),$.set("COMP_LINE",e.state.env.get("COMP_LINE")),e.state.env.set("COMP_LINE",""),$.set("COMP_POINT",e.state.env.get("COMP_POINT")),e.state.env.set("COMP_POINT","0");let w=new Map;for(let C of e.state.env.keys())(C==="COMPREPLY"||C.startsWith("COMPREPLY_")||C==="COMPREPLY__length")&&(w.set(C,e.state.env.get(C)),e.state.env.delete(C));let S=["compgen",h[0]??"",""];try{let C=await ws(e,v,S,"");if(C.exitCode!==0)return wt(e,$),wt(e,w),_("",C.stderr,1);y=C.stdout;let E=na(e);p.push(...E)}catch{return wt(e,$),wt(e,w),_("","",1)}wt(e,$),wt(e,w)}}if(d!==null)try{let v=pe(d),$=await e.executeScript(v);if($.exitCode!==0)return _("",$.stderr,$.exitCode);if($.stdout){let w=$.stdout.split(`
55
+ `);for(let S of w)S.length>0&&p.push(S)}}catch(v){if(v.name==="ParseException")return A(`compgen: -C: ${v.message}
56
+ `,2);throw v}let b=p;if(u!==null){let v=u.startsWith("!"),$=v?u.slice(1):u;b=p.filter(w=>{let S=mt(w,$,!1,!0);return v?S:!S})}if(b.length===0&&o!==null)return _(y,"",1);let g=b.map(v=>`${n}${v}${i}`).join(`
57
+ `),O=y+(g?`${g}
58
+ `:"");return W(O)}function qo(e,t){let s=new Set;for(let n of e.state.env.keys()){if(n.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(n)||n.endsWith("__length"))continue;let i=n.split("_")[0];/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)?s.add(n):i&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(i)&&e.state.env.has(`${i}__length`)&&s.add(i)}let r=Array.from(s);return t!==null&&(r=r.filter(n=>n.startsWith(t))),r.sort()}function Zo(e,t){let s=e.state.exportedVars??new Set,r=Array.from(s);return t!==null&&(r=r.filter(n=>n.startsWith(t))),r=r.filter(n=>n.includes("_")&&/^[a-zA-Z_][a-zA-Z0-9_]*_\d+$/.test(n)||n.endsWith("__length")?!1:e.state.env.has(n)),r.sort()}function Go(e,t){let s=Array.from(e.state.functions.keys());return t!==null&&(s=s.filter(r=>r.startsWith(t))),s.sort()}function Ko(e){let t=[...cr];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Xo(e){let t=[...Yn];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Yo(e,t){let s=[];for(let n of e.state.env.keys())if(n.startsWith("BASH_ALIAS_")){let i=n.slice(11);s.push(i)}let r=s;return t!==null&&(r=r.filter(n=>n.startsWith(t))),r.sort()}function Qo(e){let t=[...Uo];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}function Jo(e){let t=[...Ho];return e!==null&&(t=t.filter(s=>s.startsWith(e))),t.sort()}async function lr(e,t){let s=[];try{let r=e.state.cwd,n=t??"";if(t){let o=t.lastIndexOf("/");if(o!==-1){let a=t.slice(0,o)||"/";n=t.slice(o+1),a.startsWith("/")?r=a:r=`${e.state.cwd}/${a}`}}let i=await e.fs.readdir(r);for(let o of i){let a=`${r}/${o}`;try{if((await e.fs.stat(a)).isDirectory&&(!n||o.startsWith(n)))if(t?.includes("/")){let c=t.lastIndexOf("/"),u=t.slice(0,c+1);s.push(u+o)}else s.push(o)}catch{}}}catch{}return s.sort()}async function Xn(e,t){let s=[];try{let r=e.state.cwd,n=t??"";if(t){let o=t.lastIndexOf("/");if(o!==-1){let a=t.slice(0,o)||"/";n=t.slice(o+1),a.startsWith("/")?r=a:r=`${e.state.cwd}/${a}`}}let i=await e.fs.readdir(r);for(let o of i)if(!n||o.startsWith(n))if(t?.includes("/")){let a=t.lastIndexOf("/"),l=t.slice(0,a+1);s.push(l+o)}else s.push(o)}catch{}return s.sort()}function ea(e){return["root","nobody"]}async function ta(e,t){let s=new Set;for(let i of cr)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 Yn)s.add(i);let r=e.state.env.get("PATH")??"/usr/bin:/bin";for(let i of r.split(":"))if(i)try{let o=await e.fs.readdir(i);for(let a of o)s.add(a)}catch{}let n=Array.from(s);return t!==null&&(n=n.filter(i=>i.startsWith(t))),n.sort()}async function sa(e,t){let r=new B().parseWordFromString(t,!1,!1);return await x(e,r)}function ra(e,t){let s=e.state.env.get("IFS")??`
59
+ `;if(s.length===0)return[t];let r=new Set(s.split("")),n=[],i="",o=0;for(;o<t.length;){let a=t[o];if(a==="\\"&&o+1<t.length){let l=t[o+1];i+=l,o+=2}else r.has(a)?(i.length>0&&(n.push(i),i=""),o++):(i+=a,o++)}return i.length>0&&n.push(i),n}function wt(e,t){for(let[s,r]of t)r===void 0?e.state.env.delete(s):e.state.env.set(s,r)}function na(e){let t=[];if(e.state.env.get("COMPREPLY__length")!==void 0){let n=Ae(e,"COMPREPLY");for(let[,i]of n)t.push(i)}else{let n=e.state.env.get("COMPREPLY");n!==void 0&&t.push(n)}return t}var ia=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function dr(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,r=!1,n=!1,i,o,a,l=[],c=[],u=[];for(let f=0;f<t.length;f++){let d=t[f];if(d==="-p")s=!0;else if(d==="-r")r=!0;else if(d==="-D")n=!0;else if(d==="-W"){if(f++,f>=t.length)return A(`complete: -W: option requires an argument
60
+ `,2);i=t[f]}else if(d==="-F"){if(f++,f>=t.length)return A(`complete: -F: option requires an argument
61
+ `,2);o=t[f]}else if(d==="-o"){if(f++,f>=t.length)return A(`complete: -o: option requires an argument
62
+ `,2);let h=t[f];if(!ia.includes(h))return A(`complete: ${h}: invalid option name
63
+ `,2);l.push(h)}else if(d==="-A"){if(f++,f>=t.length)return A(`complete: -A: option requires an argument
64
+ `,2);c.push(t[f])}else if(d==="-C"){if(f++,f>=t.length)return A(`complete: -C: option requires an argument
65
+ `,2);a=t[f]}else if(d==="-G"){if(f++,f>=t.length)return A(`complete: -G: option requires an argument
66
+ `,2)}else if(d==="-P"){if(f++,f>=t.length)return A(`complete: -P: option requires an argument
67
+ `,2)}else if(d==="-S"){if(f++,f>=t.length)return A(`complete: -S: option requires an argument
68
+ `,2)}else if(d==="-X"){if(f++,f>=t.length)return A(`complete: -X: option requires an argument
69
+ `,2)}else if(d==="--"){u.push(...t.slice(f+1));break}else d.startsWith("-")||u.push(d)}if(r){if(u.length===0)return e.state.completionSpecs.clear(),W("");for(let f of u)e.state.completionSpecs.delete(f);return W("")}if(s)return u.length===0?fr(e):fr(e,u);if(t.length===0||u.length===0&&!i&&!o&&!a&&l.length===0&&c.length===0&&!n)return fr(e);if(o&&u.length===0&&!n)return A(`complete: -F: option requires a command name
70
+ `,2);if(n){let f={isDefault:!0};return i!==void 0&&(f.wordlist=i),o!==void 0&&(f.function=o),a!==void 0&&(f.command=a),l.length>0&&(f.options=l),c.length>0&&(f.actions=c),e.state.completionSpecs.set("__default__",f),W("")}for(let f of u){let d=Object.create(null);i!==void 0&&(d.wordlist=i),o!==void 0&&(d.function=o),a!==void 0&&(d.command=a),l.length>0&&(d.options=l),c.length>0&&(d.actions=c),e.state.completionSpecs.set(f,d)}return W("")}function fr(e,t){let s=e.state.completionSpecs;if(!s||s.size===0){if(t&&t.length>0){let i="";for(let o of t)i+=`complete: ${o}: no completion specification
71
+ `;return _("",i,1)}return W("")}let r=[],n=t||Array.from(s.keys());for(let i of n){if(i==="__default__")continue;let o=s.get(i);if(!o){if(t)return _(r.join(`
72
+ `)+(r.length>0?`
73
+ `:""),`complete: ${i}: no completion specification
74
+ `,1);continue}let a="complete";if(o.options)for(let l of o.options)a+=` -o ${l}`;if(o.actions)for(let l of o.actions)a+=` -A ${l}`;o.wordlist!==void 0&&(o.wordlist.includes(" ")||o.wordlist.includes("'")?a+=` -W '${o.wordlist}'`:a+=` -W ${o.wordlist}`),o.function!==void 0&&(a+=` -F ${o.function}`),o.isDefault&&(a+=" -D"),a+=` ${i}`,r.push(a)}return r.length===0?W(""):W(`${r.join(`
75
+ `)}
76
+ `)}var Qn=["bashdefault","default","dirnames","filenames","noquote","nosort","nospace","plusdirs"];function hr(e,t){e.state.completionSpecs||(e.state.completionSpecs=new Map);let s=!1,r=!1,n=[],i=[],o=[];for(let a=0;a<t.length;a++){let l=t[a];if(l==="-D")s=!0;else if(l==="-E")r=!0;else if(l==="-o"){if(a++,a>=t.length)return A(`compopt: -o: option requires an argument
77
+ `,2);let c=t[a];if(!Qn.includes(c))return A(`compopt: ${c}: invalid option name
78
+ `,2);n.push(c)}else if(l==="+o"){if(a++,a>=t.length)return A(`compopt: +o: option requires an argument
79
+ `,2);let c=t[a];if(!Qn.includes(c))return A(`compopt: ${c}: invalid option name
80
+ `,2);i.push(c)}else if(l==="--"){o.push(...t.slice(a+1));break}else!l.startsWith("-")&&!l.startsWith("+")&&o.push(l)}if(s){let a=e.state.completionSpecs.get("__default__")??{isDefault:!0},l=new Set(a.options??[]);for(let c of n)l.add(c);for(let c of i)l.delete(c);return a.options=l.size>0?Array.from(l):void 0,e.state.completionSpecs.set("__default__",a),W("")}if(r){let a=e.state.completionSpecs.get("__empty__")??{},l=new Set(a.options??[]);for(let c of n)l.add(c);for(let c of i)l.delete(c);return a.options=l.size>0?Array.from(l):void 0,e.state.completionSpecs.set("__empty__",a),W("")}if(o.length>0){for(let a of o){let l=e.state.completionSpecs.get(a)??{},c=new Set(l.options??[]);for(let u of n)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(a,l)}return W("")}return A(`compopt: not currently executing completion function
81
+ `,1)}function pr(e,t){if(e.state.loopDepth===0){if(e.state.parentHasLoopContext)throw new qe;return _("",`bash: continue: only meaningful in a loop
82
+ `,0)}if(t.length>1)throw new Te(1,"",`bash: continue: too many arguments
83
+ `);let s=1;if(t.length>0){let r=Number.parseInt(t[0],10);if(Number.isNaN(r))throw new Te(128,"",`bash: continue: ${t[0]}: numeric argument required
84
+ `);if(r<1)throw new ae(1,"",`bash: continue: loop count out of range
85
+ `);s=r}throw new he(s)}function X(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 mr(e){for(let t=0;t<e.length;t++){let s=e.charCodeAt(t);if(s<32||s===127)return!0}return!1}function yr(e){let t="$'";for(let s=0;s<e.length;s++){let r=e[s],n=e.charCodeAt(s);n===7?t+="\\a":n===8?t+="\\b":n===9?t+="\\t":n===10?t+="\\n":n===11?t+="\\v":n===12?t+="\\f":n===13?t+="\\r":n===27?t+="\\e":n===39?t+="\\'":n===92?t+="\\\\":n<32||n===127?t+=`\\${n.toString(8).padStart(3,"0")}`:t+=r}return t+="'",t}function vs(e){return mr(e)?yr(e):/^[a-zA-Z0-9_/.:\-@%+,=]*$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function it(e){return mr(e)?yr(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function gr(e){return mr(e)?yr(e):`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Jn(e,t){let s="";return e.state.integerVars?.has(t)&&(s+="i"),e.state.lowercaseVars?.has(t)&&(s+="l"),$e(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 wr(e){return e===""?"''":/[\s'\\]/.test(e)?`'${e.replace(/'/g,"'\\''")}'`:e}function ei(e,t){let s="",r="",n=!1;for(let i of t){let o=Jn(e,i);if(e.state.associativeArrays?.has(i)){let u=Ge(e,i);if(u.length===0)s+=`declare -A ${i}=()
86
+ `;else{let f=u.map(d=>{let h=e.state.env.get(`${i}_${d}`)??"",m=wr(h);return`['${d}']=${m}`});s+=`declare -A ${i}=(${f.join(" ")})
87
+ `}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}]=${it(d)}`});s+=`declare -a ${i}=(${u.join(" ")})
88
+ `;continue}if(e.state.env.has(`${i}__length`)){s+=`declare -a ${i}=()
89
+ `;continue}let c=e.state.env.get(i);if(c!==void 0)s+=`declare ${o} ${i}=${gr(c)}
90
+ `;else{let u=e.state.declaredVars?.has(i),f=e.state.localVarDepth?.has(i);u||f?s+=`declare ${o} ${i}
91
+ `:(r+=`bash: declare: ${i}: not found
92
+ `,n=!0)}}return _(s,r,n?1:0)}function ti(e,t){let{filterExport:s,filterReadonly:r,filterNameref:n,filterIndexedArray:i,filterAssocArray:o}=t,a=s||r||n||i||o,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),m=f.slice(d+1);if(/^\d+$/.test(m)||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=Jn(e,f),h=e.state.associativeArrays?.has(f),m=ne(e,f),p=!h&&(m.length>0||e.state.env.has(`${f}__length`));if(a&&(o&&!h||i&&!p||s&&!e.state.exportedVars?.has(f)||r&&!e.state.readonlyVars?.has(f)||n&&!$e(e,f)))continue;if(h){let b=Ge(e,f);if(b.length===0)l+=`declare -A ${f}=()
93
+ `;else{let g=b.map(O=>{let v=e.state.env.get(`${f}_${O}`)??"",$=wr(v);return`['${O}']=${$}`});l+=`declare -A ${f}=(${g.join(" ")})
94
+ `}continue}if(m.length>0){let b=m.map(g=>{let O=e.state.env.get(`${f}_${g}`)??"";return`[${g}]=${it(O)}`});l+=`declare -a ${f}=(${b.join(" ")})
95
+ `;continue}if(e.state.env.has(`${f}__length`)){l+=`declare -a ${f}=()
96
+ `;continue}let y=e.state.env.get(f);y!==void 0&&(l+=`declare ${d} ${f}=${gr(y)}
97
+ `)}return W(l)}function si(e){let t="",s=Array.from(e.state.associativeArrays??[]).sort();for(let r of s){let n=Ge(e,r);if(n.length===0)t+=`declare -A ${r}=()
98
+ `;else{let i=n.map(o=>{let a=e.state.env.get(`${r}_${o}`)??"",l=wr(a);return`['${o}']=${l}`});t+=`declare -A ${r}=(${i.join(" ")})
99
+ `}}return W(t)}function ri(e){let t="",s=new Set;for(let n of e.state.env.keys()){if(n.startsWith("BASH_"))continue;if(n.endsWith("__length")){let o=n.slice(0,-8);e.state.associativeArrays?.has(o)||s.add(o);continue}let i=n.lastIndexOf("_");if(i>0){let o=n.slice(0,i),a=n.slice(i+1);/^\d+$/.test(a)&&(e.state.associativeArrays?.has(o)||s.add(o))}}let r=Array.from(s).sort();for(let n of r){let i=ne(e,n);if(i.length===0)t+=`declare -a ${n}=()
100
+ `;else{let o=i.map(a=>{let l=e.state.env.get(`${n}_${a}`)??"";return`[${a}]=${it(l)}`});t+=`declare -a ${n}=(${o.join(" ")})
101
+ `}}return W(t)}function ni(e){let t="",s=new Set;for(let n of e.state.env.keys()){if(n.startsWith("BASH_"))continue;if(n.endsWith("__length")){let o=n.slice(0,-8);s.add(o);continue}let i=n.lastIndexOf("_");if(i>0){let o=n.slice(0,i),a=n.slice(i+1);if(/^\d+$/.test(a)||e.state.associativeArrays?.has(o)){s.add(o);continue}}s.add(n)}let r=Array.from(s).sort();for(let n of r){if(e.state.associativeArrays?.has(n)||ne(e,n).length>0||e.state.env.has(`${n}__length`))continue;let a=e.state.env.get(n);a!==void 0&&(t+=`${n}=${vs(a)}
102
+ `)}return W(t)}function vr(e,t){e.state.integerVars??=new Set,e.state.integerVars.add(t)}function It(e,t){return e.state.integerVars?.has(t)??!1}function br(e,t){e.state.lowercaseVars??=new Set,e.state.lowercaseVars.add(t),e.state.uppercaseVars?.delete(t)}function oa(e,t){return e.state.lowercaseVars?.has(t)??!1}function Er(e,t){e.state.uppercaseVars??=new Set,e.state.uppercaseVars.add(t),e.state.lowercaseVars?.delete(t)}function aa(e,t){return e.state.uppercaseVars?.has(t)??!1}function vt(e,t,s){return oa(e,t)?s.toLowerCase():aa(e,t)?s.toUpperCase():s}async function ii(e,t){try{let s=new B,r=ee(s,t),n=await U(e,r.expression);return String(n)}catch{return"0"}}function la(e){let t=e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);if(!t)return null;let s=t[0],r=s.length;if(e[r]!=="[")return null;let n=0,i=r+1;for(;r<e.length;r++)if(e[r]==="[")n++;else if(e[r]==="]"&&(n--,n===0))break;if(n!==0)return null;let o=e.slice(i,r);if(r++,e[r]!=="=")return null;r++;let a=e.slice(r);return{name:s,indexExpr:o,value:a}}async function $r(e,t){let s=!1,r=!1,n=!1,i=!1,o=!1,a=!1,l=!1,c=!1,u=!1,f=!1,d=!1,h=!1,m=!1,p=!1,y=!1,b=[];for(let E=0;E<t.length;E++){let N=t[E];if(N==="-a")s=!0;else if(N==="-A")r=!0;else if(N==="-r")n=!0;else if(N==="-x")i=!0;else if(N==="-p")o=!0;else if(N==="-n")a=!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(E+1));break}else if(N.startsWith("+")){for(let P of N.slice(1))if(P==="n")l=!0;else if(P==="a")c=!0;else if(P==="x")u=!0;else if(P!=="r"){if(P!=="i"){if(!(P==="f"||P==="F"))return _("",`bash: typeset: +${P}: invalid option
103
+ `,2)}}}else if(N==="-i")f=!0;else if(N==="-l")d=!0;else if(N==="-u")h=!0;else if(N==="-f")m=!0;else if(N==="-F")p=!0;else if(N==="-g")y=!0;else if(N.startsWith("-"))for(let P of N.slice(1))if(P==="a")s=!0;else if(P==="A")r=!0;else if(P==="r")n=!0;else if(P==="x")i=!0;else if(P==="p")o=!0;else if(P==="n")a=!0;else if(P==="i")f=!0;else if(P==="l")d=!0;else if(P==="u")h=!0;else if(P==="f")m=!0;else if(P==="F")p=!0;else if(P==="g")y=!0;else return _("",`bash: typeset: -${P}: invalid option
104
+ `,2);else b.push(N)}let O=e.state.localScopes.length>0&&!y,v=E=>{if(!O)return;let N=e.state.localScopes[e.state.localScopes.length-1];N.has(E)||N.set(E,e.state.env.get(E))},$=E=>{if(!O)return;let N=e.state.localScopes[e.state.localScopes.length-1];N.has(E)||N.set(E,e.state.env.get(E));let P=`${E}_`;for(let I of e.state.env.keys())I.startsWith(P)&&!I.includes("__")&&(N.has(I)||N.set(I,e.state.env.get(I)));let T=`${E}__length`;e.state.env.has(T)&&!N.has(T)&&N.set(T,e.state.env.get(T))},w=E=>{O&&Je(e,E)};if(p){if(b.length===0){let P=Array.from(e.state.functions.keys()).sort(),T="";for(let I of P)T+=`declare -f ${I}
105
+ `;return W(T)}let E=!0,N="";for(let P of b)e.state.functions.has(P)?N+=`${P}
106
+ `:E=!1;return _(N,"",E?0:1)}if(m){if(b.length===0){let N="",P=Array.from(e.state.functions.keys()).sort();for(let T of P)N+=`${T} ()
107
+ {
108
+ # function body
109
+ }
110
+ `;return W(N)}let E=!0;for(let N of b)e.state.functions.has(N)||(E=!1);return _("","",E?0:1)}if(o&&b.length>0)return ei(e,b);if(o&&b.length===0)return ti(e,{filterExport:i,filterReadonly:n,filterNameref:a,filterIndexedArray:s,filterAssocArray:r});if(b.length===0&&r&&!o)return si(e);if(b.length===0&&s&&!o)return ri(e);if(b.length===0&&!o)return ni(e);let S="",C=0;for(let E of b){let N=E.match(/^([a-zA-Z_][a-zA-Z0-9_]*)=\((.*)\)$/s);if(N&&!c){let k=N[1],L=N[2];if(r&&ne(e,k).length>0){S+=`bash: declare: ${k}: cannot convert indexed to associative array
111
+ `,C=1;continue}if((s||!r&&!s)&&e.state.associativeArrays?.has(k)){S+=`bash: declare: ${k}: cannot convert associative to indexed array
112
+ `,C=1;continue}if($(k),r&&(e.state.associativeArrays??=new Set,e.state.associativeArrays.add(k)),Re(e,k),e.state.env.delete(k),e.state.env.delete(`${k}__length`),r&&L.includes("[")){let M=hs(L);for(let[te,V]of M){let Y=X(e,V);e.state.env.set(`${k}_${te}`,Y)}}else if(r){let M=Fe(L);for(let te=0;te<M.length;te+=2){let V=M[te],Y=te+1<M.length?X(e,M[te+1]):"";e.state.env.set(`${k}_${V}`,Y)}}else{let M=Fe(L);if(M.some(V=>/^\[[^\]]+\]=/.test(V))){let V=0;for(let Y of M){let oe=Y.match(/^\[([^\]]+)\]=(.*)$/);if(oe){let ge=oe[1],ct=oe[2],oo=X(e,ct),Ct;if(/^-?\d+$/.test(ge))Ct=Number.parseInt(ge,10);else try{let ao=new B,lo=ee(ao,ge);Ct=await U(e,lo.expression)}catch{Ct=0}e.state.env.set(`${k}_${Ct}`,oo),V=Ct+1}else{let ge=X(e,Y);e.state.env.set(`${k}_${V}`,ge),V++}}}else{for(let V=0;V<M.length;V++)e.state.env.set(`${k}_${V}`,M[V]);e.state.env.set(`${k}__length`,String(M.length))}}w(k),n&&me(e,k),i&&ke(e,k);continue}if(l){let k=E.includes("=")?E.slice(0,E.indexOf("=")):E;if(cn(e,k),!E.includes("="))continue}if(u){let k=E.includes("=")?E.slice(0,E.indexOf("=")):E;if(Yt(e,k),!E.includes("="))continue}let P=la(E);if(P){let{name:k,indexExpr:L,value:M}=P,te=se(e,k);if(te)return te;$(k);let V;try{let oe=new B,ge=ee(oe,L);V=await U(e,ge.expression)}catch{let oe=parseInt(L,10);V=Number.isNaN(oe)?0:oe}e.state.env.set(`${k}_${V}`,M);let Y=parseInt(e.state.env.get(`${k}__length`)??"0",10);V>=Y&&e.state.env.set(`${k}__length`,String(V+1)),w(k),n&&me(e,k),i&&ke(e,k);continue}let T=E.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(T&&!c){let k=T[1],L=T[2],M=se(e,k);if(M)return M;$(k);let te=Fe(L);if(e.state.associativeArrays?.has(k)){let V=hs(L);for(let[Y,oe]of V){let ge=X(e,oe);e.state.env.set(`${k}_${Y}`,ge)}}else{let V=ne(e,k),Y=0,oe=e.state.env.get(k);V.length===0&&oe!==void 0?(e.state.env.set(`${k}_0`,oe),e.state.env.delete(k),Y=1):V.length>0&&(Y=Math.max(...V)+1);for(let ct=0;ct<te.length;ct++)e.state.env.set(`${k}_${Y+ct}`,X(e,te[ct]));let ge=Y+te.length;e.state.env.set(`${k}__length`,String(ge))}w(k),n&&me(e,k),i&&ke(e,k);continue}let I=E.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(I){let k=I[1],L=X(e,I[2]),M=se(e,k);if(M)return M;v(k),f&&vr(e,k),d&&br(e,k),h&&Er(e,k);let V=ne(e,k).length>0||e.state.associativeArrays?.has(k);if(It(e,k)){let Y=e.state.env.get(k)??"0",oe=parseInt(Y,10)||0,ge=parseInt(await ii(e,L),10)||0;L=String(oe+ge),e.state.env.set(k,L)}else if(V){L=vt(e,k,L);let Y=`${k}_0`,oe=e.state.env.get(Y)??"";e.state.env.set(Y,oe+L)}else{L=vt(e,k,L);let Y=e.state.env.get(k)??"";e.state.env.set(k,Y+L)}w(k),n&&me(e,k),i&&ke(e,k),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(k));continue}if(E.includes("=")){let k=E.indexOf("="),L=E.slice(0,k),M=E.slice(k+1);if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(L)){S+=`bash: typeset: \`${L}': not a valid identifier
113
+ `,C=1;continue}let te=se(e,L);if(te)return te;if(v(L),a){if(M!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(M)){S+=`bash: declare: \`${M}': invalid variable name for name reference
114
+ `,C=1;continue}e.state.env.set(L,M),Be(e,L),M!==""&&Zs(e,M)&&qs(e,L),w(L),n&&me(e,L),i&&ke(e,L);continue}if(f&&vr(e,L),d&&br(e,L),h&&Er(e,L),It(e,L)&&(M=await ii(e,M)),M=vt(e,L,M),$e(e,L)){let V=Ke(e,L);V&&V!==L?e.state.env.set(V,M):e.state.env.set(L,M)}else e.state.env.set(L,M);w(L),n&&me(e,L),i&&ke(e,L),e.state.options.allexport&&!u&&(e.state.exportedVars=e.state.exportedVars||new Set,e.state.exportedVars.add(L))}else{let k=E;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(k)){S+=`bash: typeset: \`${k}': not a valid identifier
115
+ `,C=1;continue}if(s||r?$(k):v(k),a){Be(e,k);let M=e.state.env.get(k);M!==void 0&&M!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(M)?un(e,k):M&&Zs(e,M)&&qs(e,k),w(k),n&&me(e,k),i&&ke(e,k);continue}if(f&&vr(e,k),d&&br(e,k),h&&Er(e,k),r){if(ne(e,k).length>0){S+=`bash: declare: ${k}: cannot convert indexed to associative array
116
+ `,C=1;continue}e.state.associativeArrays??=new Set,e.state.associativeArrays.add(k)}let L=Array.from(e.state.env.keys()).some(M=>M.startsWith(`${k}_`)&&!M.startsWith(`${k}__length`));!e.state.env.has(k)&&!L&&(s||r?e.state.env.set(`${k}__length`,"0"):(e.state.declaredVars??=new Set,e.state.declaredVars.add(k))),w(k),n&&me(e,k),i&&ke(e,k)}}return _("",S,C)}async function Sr(e,t){let s=!1,r=!1,n=!1,i=[];for(let o=0;o<t.length;o++){let a=t[o];if(a==="-a")s=!0;else if(a==="-A")r=!0;else if(a==="-p")n=!0;else if(a==="--"){i.push(...t.slice(o+1));break}else a.startsWith("-")||i.push(a)}if(i.length===0){let o="",a=Array.from(e.state.readonlyVars||[]).sort();for(let l of a){let c=e.state.env.get(l);if(c!==void 0){let u=c.replace(/\\/g,"\\\\").replace(/"/g,'\\"');o+=`declare -r ${l}="${u}"
117
+ `}}return W(o)}for(let o of i){let a=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=\((.*)\)$/s);if(a){let f=a[1],d=a[2],h=se(e,f);if(h)return h;let m=Fe(d);if(e.state.associativeArrays?.has(f)){let p=hs(d);for(let[y,b]of p){let g=X(e,b);e.state.env.set(`${f}_${y}`,g)}}else{let p=ne(e,f),y=0,b=e.state.env.get(f);p.length===0&&b!==void 0?(e.state.env.set(`${f}_0`,b),e.state.env.delete(f),y=1):p.length>0&&(y=Math.max(...p)+1);for(let O=0;O<m.length;O++)e.state.env.set(`${f}_${y+O}`,X(e,m[O]));let g=y+m.length;e.state.env.set(`${f}__length`,String(g))}me(e,f);continue}let l=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(l){let f=l[1],d=X(e,l[2]),h=se(e,f);if(h)return h;let m=e.state.env.get(f)??"";e.state.env.set(f,m+d),me(e,f);continue}let c=jn(o);if(c.value===void 0&&!c.isArray){me(e,c.name);continue}let u=await Un(e,c,{makeReadonly:!0});if(u)return u}return z}function Pr(e){return e.state.directoryStack??=[],e.state.directoryStack}function bt(e,t){return t&&e===t?"~":t&&e.startsWith(`${t}/`)?`~${e.slice(t.length)}`:e}function ca(e){let t=e.split("/").filter(r=>r&&r!=="."),s=[];for(let r of t)r===".."?s.pop():s.push(r);return`/${s.join("/")}`}async function Ar(e,t){let s=Pr(e),r;for(let a=0;a<t.length;a++){let l=t[a];if(l==="--"){if(a+1<t.length){if(r!==void 0)return A(`bash: pushd: too many arguments
118
+ `,2);r=t[a+1],a++}}else{if(l.startsWith("-")&&l!=="-")return A(`bash: pushd: ${l}: invalid option
119
+ `,2);if(r!==void 0)return A(`bash: pushd: too many arguments
120
+ `,2);r=l}}if(r===void 0){if(s.length<1)return A(`bash: pushd: no other directory
121
+ `,1);let a=s.shift();if(!a)return A(`bash: pushd: no other directory
122
+ `,1);let l=e.state.cwd;s.unshift(l),e.state.previousDir=l,e.state.cwd=a,e.state.env.set("PWD",a),e.state.env.set("OLDPWD",l);let c=e.state.env.get("HOME")||"",u=`${[a,...s].map(f=>bt(f,c)).join(" ")}
123
+ `;return W(u)}let n;if(r.startsWith("/"))n=r;else if(r===".."){let a=e.state.cwd.split("/").filter(l=>l);a.pop(),n=`/${a.join("/")}`}else r==="."?n=e.state.cwd:r.startsWith("~")?n=(e.state.env.get("HOME")||"/")+r.slice(1):n=`${e.state.cwd}/${r}`;n=ca(n);try{if(!(await e.fs.stat(n)).isDirectory)return A(`bash: pushd: ${r}: Not a directory
124
+ `,1)}catch{return A(`bash: pushd: ${r}: No such file or directory
125
+ `,1)}s.unshift(e.state.cwd),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 i=e.state.env.get("HOME")||"",o=`${[n,...s].map(a=>bt(a,i)).join(" ")}
126
+ `;return W(o)}function kr(e,t){let s=Pr(e);for(let o of t)if(o!=="--")return o.startsWith("-")&&o!=="-"?A(`bash: popd: ${o}: invalid option
127
+ `,2):A(`bash: popd: too many arguments
128
+ `,2);if(s.length===0)return A(`bash: popd: directory stack empty
129
+ `,1);let r=s.shift();if(!r)return A(`bash: popd: directory stack empty
130
+ `,1);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 n=e.state.env.get("HOME")||"",i=`${[r,...s].map(o=>bt(o,n)).join(" ")}
131
+ `;return W(i)}function Cr(e,t){let s=Pr(e),r=!1,n=!1,i=!1,o=!1;for(let u of t)if(u!=="--")if(u.startsWith("-"))for(let f of u.slice(1))if(f==="c")r=!0;else if(f==="l")n=!0;else if(f==="p")i=!0;else if(f==="v")i=!0,o=!0;else return A(`bash: dirs: -${f}: invalid option
132
+ `,2);else return A(`bash: dirs: too many arguments
133
+ `,1);if(r)return e.state.directoryStack=[],z;let a=[e.state.cwd,...s],l=e.state.env.get("HOME")||"",c;return o?(c=a.map((u,f)=>{let d=n?u:bt(u,l);return` ${f} ${d}`}).join(`
134
+ `),c+=`
135
+ `):i?c=a.map(u=>n?u:bt(u,l)).join(`
136
+ `)+`
137
+ `:c=a.map(u=>n?u:bt(u,l)).join(" ")+`
138
+ `,W(c)}async function bs(e,t,s){let r=t;if(r.length>0){let a=r[0];if(a==="--")r=r.slice(1);else if(a.startsWith("-")&&a!=="-"&&a.length>1)return A(`bash: eval: ${a}: invalid option
139
+ eval: usage: eval [arg ...]
140
+ `,2)}if(r.length===0)return z;let n=r.join(" ");if(n.trim()==="")return z;let i=e.state.groupStdin,o=s??e.state.groupStdin;o!==void 0&&(e.state.groupStdin=o);try{let a=pe(n);return await e.executeScript(a)}catch(a){if(a instanceof ae||a instanceof he||a instanceof ue||a instanceof G)throw a;if(a.name==="ParseException")return A(`bash: eval: ${a.message}
141
+ `);if(a.message?.startsWith("Unsupported shell syntax:"))return A(`bash: eval: ${a.message}
142
+ `,2);throw a}finally{e.state.groupStdin=i}}function _r(e,t){let s,r="";if(t.length===0)s=e.state.lastExitCode;else{let n=t[0],i=Number.parseInt(n,10);n===""||Number.isNaN(i)||!/^-?\d+$/.test(n)?(r=`bash: exit: ${n}: numeric argument required
143
+ `,s=2):t.length>1?(r=`bash: exit: too many arguments
144
+ `,s=1):s=(i%256+256)%256}throw new G(s,"",r)}function Nr(e,t){let s=!1,r=[];for(let o of t)o==="-n"?s=!0:o==="-p"||o==="--"||r.push(o);if(r.length===0&&!s){let o="",a=e.state.exportedVars??new Set,l=Array.from(a).sort();for(let c of l){let u=e.state.env.get(c);if(u!==void 0){let f=u.replace(/\\/g,"\\\\").replace(/"/g,'\\"');o+=`declare -x ${c}="${f}"
145
+ `}}return W(o)}if(s){for(let o of r){let a,l;if(o.includes("=")){let c=o.indexOf("=");a=o.slice(0,c),l=X(e,o.slice(c+1)),e.state.env.set(a,l)}else a=o;Yt(e,a)}return z}let n="",i=0;for(let o of r){let a,l,c=!1,u=o.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(u)a=u[1],l=X(e,u[2]),c=!0;else if(o.includes("=")){let f=o.indexOf("=");a=o.slice(0,f),l=X(e,o.slice(f+1))}else a=o;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a)){n+=`bash: export: \`${o}': not a valid identifier
146
+ `,i=1;continue}if(l!==void 0)if(c){let f=e.state.env.get(a)??"";e.state.env.set(a,f+l)}else e.state.env.set(a,l);else e.state.env.has(a)||e.state.env.set(a,"");ke(e,a)}return _("",n,i)}function Es(e,t){if(t.length<2)return A(`bash: getopts: usage: getopts optstring name [arg ...]
147
+ `);let s=t[0],r=t[1],n=!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(r),i=s.startsWith(":"),o=i?s.slice(1):s,a;if(t.length>2)a=t.slice(2);else{let p=Number.parseInt(e.state.env.get("#")||"0",10);a=[];for(let y=1;y<=p;y++)a.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>a.length)return n||e.state.env.set(r,"?"),e.state.env.set("OPTIND",String(a.length+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:n?2:1,stdout:"",stderr:""};let u=a[l-1];if(!u||u==="-"||!u.startsWith("-"))return n||e.state.env.set(r,"?"),{exitCode:n?2:1,stdout:"",stderr:""};if(u==="--")return e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),n||e.state.env.set(r,"?"),{exitCode:n?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"),Es(e,t);let h=o.indexOf(d);if(h===-1){let p="";return i?e.state.env.set("OPTARG",d):p=`bash: illegal option -- ${d}
148
+ `,n||e.state.env.set(r,"?"),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:n?2:0,stdout:"",stderr:p}}if(h+1<o.length&&o[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>=a.length){let p="";return i?(e.state.env.set("OPTARG",d),n||e.state.env.set(r,":")):(p=`bash: option requires an argument -- ${d}
149
+ `,n||e.state.env.set(r,"?")),e.state.env.set("OPTIND",String(l+1)),e.state.env.set("__GETOPTS_CHARINDEX","0"),{exitCode:n?2:0,stdout:"",stderr:p}}e.state.env.set("OPTARG",a[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 n||e.state.env.set(r,d),{exitCode:n?2:0,stdout:"",stderr:""}}async function Or(e,t){e.state.hashTable||(e.state.hashTable=new Map);let s=!1,r=!1,n=!1,i=!1,o=!1,a="",l=[],c=0;for(;c<t.length;){let m=t[c];if(m==="--"){c++,l.push(...t.slice(c));break}if(m==="-r")s=!0,c++;else if(m==="-d")r=!0,c++;else if(m==="-l")n=!0,c++;else if(m==="-t")o=!0,c++;else if(m==="-p"){if(i=!0,c++,c>=t.length)return A(`bash: hash: -p: option requires an argument
150
+ `,1);a=t[c],c++}else if(m.startsWith("-")&&m.length>1){for(let p of m.slice(1))if(p==="r")s=!0;else if(p==="d")r=!0;else if(p==="l")n=!0;else if(p==="t")o=!0;else return p==="p"?A(`bash: hash: -p: option requires an argument
151
+ `,1):A(`bash: hash: -${p}: invalid option
152
+ `,1);c++}else l.push(m),c++}if(s)return e.state.hashTable.clear(),z;if(r){if(l.length===0)return A(`bash: hash: -d: option requires an argument
153
+ `,1);let m=!1,p="";for(let y of l)e.state.hashTable.has(y)?e.state.hashTable.delete(y):(p+=`bash: hash: ${y}: not found
154
+ `,m=!0);return m?A(p,1):z}if(o){if(l.length===0)return A(`bash: hash: -t: option requires an argument
155
+ `,1);let m="",p=!1,y="";for(let b of l){let g=e.state.hashTable.get(b);g?l.length>1?m+=`${b} ${g}
156
+ `:m+=`${g}
157
+ `:(y+=`bash: hash: ${b}: not found
158
+ `,p=!0)}return p?{exitCode:1,stdout:m,stderr:y}:W(m)}if(i){if(l.length===0)return A(`bash: hash: usage: hash [-lr] [-p pathname] [-dt] [name ...]
159
+ `,1);let m=l[0];return e.state.hashTable.set(m,a),z}if(l.length===0){if(e.state.hashTable.size===0)return W(`hash: hash table empty
160
+ `);let m="";if(n)for(let[p,y]of e.state.hashTable)m+=`builtin hash -p ${y} ${p}
161
+ `;else{m=`hits command
162
+ `;for(let[,p]of e.state.hashTable)m+=` 1 ${p}
163
+ `}return W(m)}let u=!1,f="",h=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let m of l){if(m.includes("/")){f+=`bash: hash: ${m}: cannot use / in name
164
+ `,u=!0;continue}let p=!1;for(let y of h){if(!y)continue;let b=`${y}/${m}`;if(await e.fs.exists(b)){e.state.hashTable.set(m,b),p=!0;break}}p||(f+=`bash: hash: ${m}: not found
165
+ `,u=!0)}return u?A(f,1):z}var oi=new Map([[":",[": [arguments]",`Null command.
166
+ No effect; the command does nothing.
167
+ Exit Status:
168
+ Always succeeds.`]],[".",[". filename [arguments]",`Execute commands from a file in the current shell.
169
+ Read and execute commands from FILENAME in the current shell.
170
+ The entries in $PATH are used to find the directory containing FILENAME.
171
+ Exit Status:
172
+ Returns the status of the last command executed in FILENAME.`]],["[",["[ arg... ]",`Evaluate conditional expression.
173
+ This is a synonym for the "test" builtin, but the last argument must
174
+ be a literal \`]', to match the opening \`['.`]],["alias",["alias [-p] [name[=value] ... ]",`Define or display aliases.
175
+ Without arguments, \`alias' prints the list of aliases in the reusable
176
+ form \`alias NAME=VALUE' on standard output.
177
+ Exit Status:
178
+ alias returns true unless a NAME is supplied for which no alias has been
179
+ defined.`]],["bg",["bg [job_spec ...]",`Move jobs to the background.
180
+ Place the jobs identified by each JOB_SPEC in the background, as if they
181
+ had been started with \`&'.`]],["break",["break [n]",`Exit for, while, or until loops.
182
+ Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing
183
+ loops.
184
+ Exit Status:
185
+ The exit status is 0 unless N is not greater than or equal to 1.`]],["builtin",["builtin [shell-builtin [arg ...]]",`Execute shell builtins.
186
+ Execute SHELL-BUILTIN with arguments ARGs without performing command
187
+ lookup. This is useful when you wish to reimplement a shell builtin
188
+ as a shell function, but need to execute the builtin within the function.
189
+ Exit Status:
190
+ Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
191
+ not a shell builtin.`]],["caller",["caller [expr]",`Return the context of the current subroutine call.
192
+ Without EXPR, returns "$line $filename". With EXPR, returns
193
+ "$line $subroutine $filename"; this extra information can be used to
194
+ provide a stack trace.
195
+ Exit Status:
196
+ Returns 0 unless the shell is not executing a subroutine call or
197
+ EXPR is invalid.`]],["cd",["cd [-L|-P] [dir]",`Change the shell working directory.
198
+ Change the current directory to DIR. The default DIR is the value of the
199
+ HOME shell variable.
200
+
201
+ The variable CDPATH defines the search path for the directory containing
202
+ DIR. Alternative directory names in CDPATH are separated by a colon (:).
203
+ A null directory name is the same as the current directory. If DIR begins
204
+ with a slash (/), then CDPATH is not used.
205
+
206
+ If the directory is not found, and the shell option \`cdable_vars' is set,
207
+ the word is assumed to be a variable name. If that variable has a value,
208
+ its value is used for DIR.
209
+
210
+ Options:
211
+ -L force symbolic links to be followed
212
+ -P use the physical directory structure without following symbolic
213
+ links
214
+
215
+ The default is to follow symbolic links, as if \`-L' were specified.
216
+
217
+ Exit Status:
218
+ Returns 0 if the directory is changed; non-zero otherwise.`]],["command",["command [-pVv] command [arg ...]",`Execute a simple command or display information about commands.
219
+ Runs COMMAND with ARGS suppressing shell function lookup, or display
220
+ information about the specified COMMANDs.
221
+
222
+ Options:
223
+ -p use a default value for PATH that is guaranteed to find all of
224
+ the standard utilities
225
+ -v print a description of COMMAND similar to the \`type' builtin
226
+ -V print a more verbose description of each COMMAND
227
+
228
+ Exit Status:
229
+ 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.
230
+ Intended to be used from within a shell function generating possible
231
+ completions. If the optional WORD argument is supplied, matches against
232
+ WORD are generated.
233
+ Exit Status:
234
+ 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.
235
+ For each NAME, specify how arguments are to be completed.
236
+ Exit Status:
237
+ Returns success unless an invalid option is supplied or an error occurs.`]],["continue",["continue [n]",`Resume for, while, or until loops.
238
+ Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
239
+ If N is specified, resumes the Nth enclosing loop.
240
+ Exit Status:
241
+ 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.
242
+ Declare variables and give them attributes. If no NAMEs are given,
243
+ display the attributes and values of all variables.
244
+
245
+ Options:
246
+ -a to make NAMEs indexed arrays (if supported)
247
+ -A to make NAMEs associative arrays (if supported)
248
+ -i to make NAMEs have the \`integer' attribute
249
+ -l to convert the value of each NAME to lower case on assignment
250
+ -n make NAME a reference to the variable named by its value
251
+ -r to make NAMEs readonly
252
+ -t to make NAMEs have the \`trace' attribute
253
+ -u to convert the value of each NAME to upper case on assignment
254
+ -x to make NAMEs export
255
+
256
+ Exit Status:
257
+ Returns success unless an invalid option is supplied or a variable
258
+ assignment error occurs.`]],["dirs",["dirs [-clpv] [+N] [-N]",`Display directory stack.
259
+ Display the list of currently remembered directories. Directories
260
+ find their way onto the list with the \`pushd' command; you can get
261
+ back up through the list with the \`popd' command.
262
+ Exit Status:
263
+ Returns success unless an invalid option is supplied or an error occurs.`]],["disown",["disown [-h] [-ar] [jobspec ...]",`Remove jobs from current shell.
264
+ Without any JOBSPECs, remove the current job.`]],["echo",["echo [-neE] [arg ...]",`Write arguments to the standard output.
265
+ Display the ARGs, separated by a single space character and followed by a
266
+ newline, on the standard output.
267
+
268
+ Options:
269
+ -n do not append a newline
270
+ -e enable interpretation of the following backslash escapes
271
+ -E explicitly suppress interpretation of backslash escapes
272
+
273
+ Exit Status:
274
+ Returns success unless a write error occurs.`]],["enable",["enable [-a] [-dnps] [-f filename] [name ...]",`Enable and disable shell builtins.
275
+ Enables and disables builtin shell commands.
276
+ Exit Status:
277
+ Returns success unless NAME is not a shell builtin or an error occurs.`]],["eval",["eval [arg ...]",`Execute arguments as a shell command.
278
+ Combine ARGs into a single string, use the result as input to the shell,
279
+ and execute the resulting commands.
280
+ Exit Status:
281
+ 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.
282
+ Execute COMMAND, replacing this shell with the specified program.
283
+ ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
284
+ any redirections take effect in the current shell.
285
+ Exit Status:
286
+ Returns success unless COMMAND is not found or a redirection error occurs.`]],["exit",["exit [n]",`Exit the shell.
287
+ Exits the shell with a status of N. If N is omitted, the exit status
288
+ is that of the last command executed.`]],["export",["export [-fn] [name[=value] ...] or export -p",`Set export attribute for shell variables.
289
+ Marks each NAME for automatic export to the environment of subsequently
290
+ executed commands. If VALUE is supplied, assign VALUE before exporting.
291
+
292
+ Options:
293
+ -f refer to shell functions
294
+ -n remove the export property from each NAME
295
+ -p display a list of all exported variables and functions
296
+
297
+ Exit Status:
298
+ Returns success unless an invalid option is given or NAME is invalid.`]],["false",["false",`Return an unsuccessful result.
299
+ Exit Status:
300
+ Always fails.`]],["fc",["fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]",`Display or execute commands from the history list.
301
+ Exit Status:
302
+ Returns success or status of executed command.`]],["fg",["fg [job_spec]",`Move job to the foreground.
303
+ Place the job identified by JOB_SPEC in the foreground, making it the
304
+ current job.`]],["getopts",["getopts optstring name [arg]",`Parse option arguments.
305
+ Getopts is used by shell procedures to parse positional parameters
306
+ as options.
307
+
308
+ OPTSTRING contains the option letters to be recognized; if a letter
309
+ is followed by a colon, the option is expected to have an argument,
310
+ which should be separated from it by white space.
311
+ Exit Status:
312
+ Returns success if an option is found; fails if the end of options is
313
+ encountered or an error occurs.`]],["hash",["hash [-lr] [-p pathname] [-dt] [name ...]",`Remember or display program locations.
314
+ Determine and remember the full pathname of each command NAME.
315
+ Exit Status:
316
+ Returns success unless NAME is not found or an invalid option is given.`]],["help",["help [-s] [pattern ...]",`Display information about builtin commands.
317
+ Displays brief summaries of builtin commands. If PATTERN is
318
+ specified, gives detailed help on all commands matching PATTERN,
319
+ otherwise the list of help topics is printed.
320
+
321
+ Options:
322
+ -s output only a short usage synopsis for each topic matching
323
+ PATTERN
324
+
325
+ Exit Status:
326
+ 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.
327
+ Display the history list with line numbers, prefixing each modified
328
+ entry with a \`*'.
329
+ Exit Status:
330
+ 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.
331
+ Lists the active jobs.
332
+ Exit Status:
333
+ 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.
334
+ Send the processes identified by PID or JOBSPEC the signal named by
335
+ SIGSPEC or SIGNUM.
336
+ Exit Status:
337
+ Returns success unless an invalid option is given or an error occurs.`]],["let",["let arg [arg ...]",`Evaluate arithmetic expressions.
338
+ Evaluate each ARG as an arithmetic expression. Evaluation is done in
339
+ fixed-width integers with no check for overflow, though division by 0
340
+ is trapped and flagged as an error.
341
+ Exit Status:
342
+ If the last ARG evaluates to 0, let returns 1; 0 is returned otherwise.`]],["local",["local [option] name[=value] ...",`Define local variables.
343
+ Create a local variable called NAME, and give it VALUE. OPTION can
344
+ be any option accepted by \`declare'.
345
+
346
+ Local can only be used within a function; it makes the variable NAME
347
+ have a visible scope restricted to that function and its children.
348
+ Exit Status:
349
+ Returns success unless an invalid option is supplied, a variable
350
+ assignment error occurs, or the shell is not executing a function.`]],["logout",["logout [n]",`Exit a login shell.
351
+ Exits a login shell with exit status N. Returns an error if not executed
352
+ 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.
353
+ Read lines from the standard input into the indexed array variable ARRAY,
354
+ or from file descriptor FD if the -u option is supplied.
355
+
356
+ Options:
357
+ -d delim Use DELIM to terminate lines, instead of newline
358
+ -n count Copy at most COUNT lines
359
+ -O origin Begin assigning to ARRAY at index ORIGIN
360
+ -s count Discard the first COUNT lines read
361
+ -t Remove a trailing DELIM from each line read (default newline)
362
+ -u fd Read lines from file descriptor FD instead of standard input
363
+
364
+ Exit Status:
365
+ Returns success unless an invalid option is given or ARRAY is readonly.`]],["popd",["popd [-n] [+N | -N]",`Remove directories from stack.
366
+ Removes entries from the directory stack.
367
+ Exit Status:
368
+ Returns success unless an invalid argument is supplied or the directory
369
+ change fails.`]],["printf",["printf [-v var] format [arguments]",`Formats and prints ARGUMENTS under control of the FORMAT.
370
+
371
+ Options:
372
+ -v var assign the output to shell variable VAR rather than
373
+ display it on the standard output
374
+
375
+ FORMAT is a character string which contains three types of objects: plain
376
+ characters, which are simply copied to standard output; character escape
377
+ sequences, which are converted and copied to the standard output; and
378
+ format specifications, each of which causes printing of the next successive
379
+ argument.
380
+ Exit Status:
381
+ Returns success unless an invalid option is given or a write or assignment
382
+ error occurs.`]],["pushd",["pushd [-n] [+N | -N | dir]",`Add directories to stack.
383
+ Adds a directory to the top of the directory stack, or rotates
384
+ the stack, making the new top of the stack the current working
385
+ directory.
386
+ Exit Status:
387
+ Returns success unless an invalid argument is supplied or the directory
388
+ change fails.`]],["pwd",["pwd [-LP]",`Print the name of the current working directory.
389
+
390
+ Options:
391
+ -L print the value of $PWD if it names the current working
392
+ directory
393
+ -P print the physical directory, without any symbolic links
394
+
395
+ By default, \`pwd' behaves as if \`-L' were specified.
396
+ Exit Status:
397
+ Returns 0 unless an invalid option is given or the current directory
398
+ 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.
399
+ Reads a single line from the standard input, or from file descriptor FD
400
+ if the -u option is supplied. The line is split into fields as with word
401
+ splitting, and the first word is assigned to the first NAME, the second
402
+ word to the second NAME, and so on, with any leftover words assigned to
403
+ the last NAME.
404
+ Exit Status:
405
+ The return code is zero, unless end-of-file is encountered, read times out,
406
+ 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.
407
+ Mark each NAME as read-only; the values of these NAMEs may not be
408
+ changed by subsequent assignment.
409
+ Exit Status:
410
+ Returns success unless an invalid option is given or NAME is invalid.`]],["return",["return [n]",`Return from a shell function.
411
+ Causes a function or sourced script to exit with the return value
412
+ specified by N. If N is omitted, the return status is that of the
413
+ last command executed within the function or script.
414
+ Exit Status:
415
+ 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.
416
+ Change the value of shell attributes and positional parameters, or
417
+ display the names and values of shell variables.
418
+
419
+ Options:
420
+ -e Exit immediately if a command exits with a non-zero status.
421
+ -u Treat unset variables as an error when substituting.
422
+ -x Print commands and their arguments as they are executed.
423
+ -o option-name
424
+ Set the variable corresponding to option-name
425
+
426
+ Exit Status:
427
+ Returns success unless an invalid option is given.`]],["shift",["shift [n]",`Shift positional parameters.
428
+ Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is
429
+ not given, it is assumed to be 1.
430
+ Exit Status:
431
+ Returns success unless N is negative or greater than $#.`]],["shopt",["shopt [-pqsu] [-o] [optname ...]",`Set and unset shell options.
432
+ Change the setting of each shell option OPTNAME. Without any option
433
+ arguments, list each supplied OPTNAME, or all shell options if no
434
+ OPTNAMEs are given, with an indication of whether or not each is set.
435
+
436
+ Options:
437
+ -o restrict OPTNAMEs to those defined for use with \`set -o'
438
+ -p print each shell option with an indication of its status
439
+ -q suppress output
440
+ -s enable (set) each OPTNAME
441
+ -u disable (unset) each OPTNAME
442
+
443
+ Exit Status:
444
+ Returns success if OPTNAME is enabled; fails if an invalid option is
445
+ given or OPTNAME is disabled.`]],["source",["source filename [arguments]",`Execute commands from a file in the current shell.
446
+ Read and execute commands from FILENAME in the current shell.
447
+ The entries in $PATH are used to find the directory containing FILENAME.
448
+ Exit Status:
449
+ Returns the status of the last command executed in FILENAME.`]],["suspend",["suspend [-f]",`Suspend shell execution.
450
+ Suspend the execution of this shell until it receives a SIGCONT signal.`]],["test",["test [expr]",`Evaluate conditional expression.
451
+ Exits with a status of 0 (true) or 1 (false) depending on
452
+ the evaluation of EXPR. Expressions may be unary or binary.
453
+ Exit Status:
454
+ Returns success if EXPR evaluates to true; fails if EXPR evaluates to
455
+ false or an invalid argument is given.`]],["times",["times",`Display process times.
456
+ Prints the accumulated user and system times for the shell and all of its
457
+ child processes.
458
+ Exit Status:
459
+ Always succeeds.`]],["trap",["trap [-lp] [[arg] signal_spec ...]",`Trap signals and other events.
460
+ Defines and activates handlers to be run when the shell receives signals
461
+ or other conditions.
462
+ Exit Status:
463
+ Returns success unless a SIGSPEC is invalid or an invalid option is given.`]],["true",["true",`Return a successful result.
464
+ Exit Status:
465
+ Always succeeds.`]],["type",["type [-afptP] name [name ...]",`Display information about command type.
466
+ For each NAME, indicate how it would be interpreted if used as a
467
+ command name.
468
+
469
+ Options:
470
+ -a display all locations containing an executable named NAME
471
+ -f suppress shell function lookup
472
+ -P force a PATH search for each NAME, even if it is an alias,
473
+ builtin, or function, and returns the name of the disk file
474
+ that would be executed
475
+ -p returns either the name of the disk file that would be executed,
476
+ or nothing if \`type -t NAME' would not return \`file'
477
+ -t output a single word which is one of \`alias', \`keyword',
478
+ \`function', \`builtin', \`file' or \`', if NAME is an alias,
479
+ shell reserved word, shell function, shell builtin, disk file,
480
+ or not found, respectively
481
+
482
+ Exit Status:
483
+ 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.
484
+ Provides control over the resources available to the shell and processes
485
+ it creates, on systems that allow such control.
486
+ Exit Status:
487
+ Returns success unless an invalid option is supplied or an error occurs.`]],["umask",["umask [-p] [-S] [mode]",`Display or set file mode mask.
488
+ Sets the user file-creation mask to MODE. If MODE is omitted, prints
489
+ the current value of the mask.
490
+ Exit Status:
491
+ 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.
492
+ Exit Status:
493
+ 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.
494
+ For each NAME, remove the corresponding variable or function.
495
+
496
+ Options:
497
+ -f treat each NAME as a shell function
498
+ -v treat each NAME as a shell variable
499
+ -n treat each NAME as a name reference and unset the variable itself
500
+ rather than the variable it references
501
+
502
+ Without options, unset first tries to unset a variable, and if that fails,
503
+ tries to unset a function.
504
+ Exit Status:
505
+ 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.
506
+ Waits for each process identified by an ID, which may be a process ID or a
507
+ job specification, and reports its termination status.
508
+ Exit Status:
509
+ Returns the status of the last ID; fails if ID is invalid or an invalid
510
+ option is given.`]]]),ai=[...oi.keys()].sort();function Tr(e,t){let s=!1,r=[],n=0;for(;n<t.length;){let l=t[n];if(l==="--"){for(n++;n<t.length;)r.push(t[n]),n++;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 A(`bash: help: -${u}: invalid option
511
+ `,2)}n++}else r.push(l),n++}if(r.length===0)return fa();let i="",o=!1,a="";for(let l of r){let c=ua(l);if(c.length===0){a+=`bash: help: no help topics match \`${l}'. Try \`help help' or \`man -k ${l}' or \`info ${l}'.
512
+ `,o=!0;continue}for(let u of c){let f=oi.get(u);if(!f)continue;let[d,h]=f;s?i+=`${u}: ${d}
513
+ `:i+=`${u}: ${d}
514
+ ${h}
515
+ `}}return{exitCode:o?1:0,stdout:i,stderr:a}}function ua(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,"."),s=Ot(`^${t}$`);return ai.filter(r=>s.test(r))}function fa(){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=ai.slice(),r=Math.ceil(s.length/2);for(let n=0;n<r;n++){let i=s[n]||"",o=s[n+r]||"",a=i.padEnd(t);e.push(o?`${a}${o}`:i)}return W(`${e.join(`
516
+ `)}
517
+ `)}function da(e){let t=[],s="",r=0;for(let n of e){for(let i of n)i==="("?r++:i===")"&&r--;s?s+=` ${n}`:s=n,r===0&&(t.push(s),s="")}return s&&t.push(s),t}async function xr(e,t){if(t.length===0)return A(`bash: let: expression expected
518
+ `);let s=da(t),r=0;for(let n of s)try{let o=pe(`(( ${n} ))`).statements[0];if(o&&o.pipelines.length>0&&o.pipelines[0].commands.length>0){let a=o.pipelines[0].commands[0];a.type==="ArithmeticCommand"&&(r=await U(e,a.expression.expression))}}catch(i){return A(`bash: let: ${n}: ${i.message}
519
+ `)}return _("","",r===0?1:0)}async function Dr(e,t){if(e.state.localScopes.length===0)return A(`bash: local: can only be used in a function
520
+ `);let s=e.state.localScopes[e.state.localScopes.length-1],r="",n=0,i=!1,o=!1,a=!1,l=[];for(let c of t)if(c==="-n")i=!0;else if(c==="-a")o=!0;else if(c==="-p")a=!0;else if(c.startsWith("-")&&!c.includes("="))for(let u of c.slice(1))u==="n"?i=!0:u==="a"?o=!0:u==="p"&&(a=!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}
521
+ `)}return _(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)){r+=`bash: local: \`${c}': not a valid identifier
522
+ `,n=1;continue}if(se(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let v=`${u}_`;for(let $ of e.state.env.keys())$.startsWith(v)&&!$.includes("__")&&(s.has($)||s.set($,e.state.env.get($)))}let g=`${u}_`;for(let v of e.state.env.keys())v.startsWith(g)&&!v.includes("__")&&e.state.env.delete(v);let O=Fe(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)),Je(e,u),i&&Be(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(se(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let S=`${u}_`;for(let E of e.state.env.keys())E.startsWith(S)&&!E.includes("__")&&(s.has(E)||s.set(E,e.state.env.get(E)));let C=`${u}__length`;e.state.env.has(C)&&!s.has(C)&&s.set(C,e.state.env.get(C))}let g=Fe(b),O=ne(e,u),v=0,$=e.state.env.get(u);O.length===0&&$!==void 0?(e.state.env.set(`${u}_0`,$),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}`,X(e,g[S]));let w=v+g.length;e.state.env.set(`${u}__length`,String(w)),Je(e,u),i&&Be(e,u);continue}let m=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\+=(.*)$/);if(m){u=m[1];let b=X(e,m[2]);se(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),Je(e,u),i&&Be(e,u);continue}let p=c.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[([^\]]+)\]=(.*)$/s);if(p){u=p[1];let b=p[2],g=X(e,p[3]);if(se(e,u,"bash"),!s.has(u)){s.set(u,e.state.env.get(u));let $=`${u}_`;for(let S of e.state.env.keys())S.startsWith($)&&!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 $=new B,w=ee($,b);O=await U(e,w.expression)}catch{let $=parseInt(b,10);O=Number.isNaN($)?0:$}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)),Je(e,u),i&&Be(e,u);continue}if(c.includes("=")){let b=c.indexOf("=");u=c.slice(0,b),f=X(e,c.slice(b+1))}else u=c;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(u)){r+=`bash: local: \`${c}': not a valid identifier
523
+ `,n=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.state.tempEnvBindings[v];if($.has(u)){b=$.get(u);break}}}Hn(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),o){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(o&&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(se(e,u,"bash"),i&&f!==""&&!/^[a-zA-Z_][a-zA-Z0-9_]*(\[.+\])?$/.test(f)){r+=`bash: local: \`${f}': invalid variable name for name reference
524
+ `,n=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)}Je(e,u),i&&Be(e,u)}return _("",r,n)}function Rr(e,t,s){let r=`
525
+ `,n=0,i=0,o=0,a=!1,l="MAPFILE",c=0;for(;c<t.length;){let g=t[c];g==="-d"&&c+1<t.length?(r=t[c+1]===""?"\0":t[c+1]||`
526
+ `,c+=2):g==="-n"&&c+1<t.length?(n=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?(o=Number.parseInt(t[c+1],10)||0,c+=2):g==="-t"?(a=!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,m=0,p=e.limits?.maxArrayElements??1e5;for(;d.length>0;){let g=d.indexOf(r);if(g===-1){if(d.length>0){if(m<o)m++;else if(n===0||h<n){if(i+h>=p)return _("",`mapfile: array element limit exceeded (${p})
527
+ `,1);let $=d,w=$.indexOf("\0");w!==-1&&($=$.substring(0,w)),f.push($),h++}}break}let O=d.substring(0,g),v=O.indexOf("\0");if(v!==-1&&(O=O.substring(0,v)),!a&&r!=="\0"&&(O+=r),d=d.substring(g+r.length),m<o){m++;continue}if(n>0&&h>=n)break;if(i+h>=p)return _("",`mapfile: array element limit exceeded (${p})
528
+ `,1);f.push(O),h++}i===0&&Re(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=""),_("","",0)}function ha(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),o=n+r+1,a=t.slice(o),l=a.indexOf(":");if(l===-1)return null;let c=Number.parseInt(a.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=a.slice(l+1);return{path:i,position:c,content:u}}function pa(e,t,s){return`__rw__:${e.length}:${e}:${t}:${s}`}function Ir(e,t,s,r=-1){let n=!1,i=`
529
+ `,o="",a=-1,l=-1,c=null,u=-1,f=-1,d=[],h=0,m=!1,p=(P,T)=>{let I=1;for(;I<P.length;){let k=P[I];if(k==="r")n=!0,I++;else if(k==="s")I++;else{if(k==="d")return I+1<P.length?(i=P.substring(I+1),{nextArgIndex:T+1}):T+1<t.length?(i=t[T+1],{nextArgIndex:T+2}):{nextArgIndex:T+1};if(k==="n"){if(I+1<P.length){let L=P.substring(I+1);return a=Number.parseInt(L,10),(Number.isNaN(a)||a<0)&&(m=!0,a=0),{nextArgIndex:T+1}}else if(T+1<t.length)return a=Number.parseInt(t[T+1],10),(Number.isNaN(a)||a<0)&&(m=!0,a=0),{nextArgIndex:T+2};return{nextArgIndex:T+1}}else if(k==="N"){if(I+1<P.length){let L=P.substring(I+1);return l=Number.parseInt(L,10),(Number.isNaN(l)||l<0)&&(m=!0,l=0),{nextArgIndex:T+1}}else if(T+1<t.length)return l=Number.parseInt(t[T+1],10),(Number.isNaN(l)||l<0)&&(m=!0,l=0),{nextArgIndex:T+2};return{nextArgIndex:T+1}}else{if(k==="a")return I+1<P.length?(c=P.substring(I+1),{nextArgIndex:T+1}):T+1<t.length?(c=t[T+1],{nextArgIndex:T+2}):{nextArgIndex:T+1};if(k==="p")return I+1<P.length?(o=P.substring(I+1),{nextArgIndex:T+1}):T+1<t.length?(o=t[T+1],{nextArgIndex:T+2}):{nextArgIndex:T+1};if(k==="u"){if(I+1<P.length){let L=P.substring(I+1);return u=Number.parseInt(L,10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:T+1}}else if(T+1<t.length)return u=Number.parseInt(t[T+1],10),Number.isNaN(u)||u<0?{nextArgIndex:-2}:{nextArgIndex:T+2};return{nextArgIndex:T+1}}else if(k==="t"){if(I+1<P.length){let L=P.substring(I+1);return f=Number.parseFloat(L),Number.isNaN(f)&&(f=0),{nextArgIndex:T+1}}else if(T+1<t.length)return f=Number.parseFloat(t[T+1]),Number.isNaN(f)&&(f=0),{nextArgIndex:T+2};return{nextArgIndex:T+1}}else if(k==="e"||k==="i"||k==="P"){if(k==="i"&&T+1<t.length)return{nextArgIndex:T+2};I++}else I++}}}return{nextArgIndex:T+1}};for(;h<t.length;){let P=t[h];if(P.startsWith("-")&&P.length>1&&P!=="--"){let T=p(P,h);if(T.nextArgIndex===-1)return{stdout:"",stderr:"",exitCode:2};if(T.nextArgIndex===-2)return{stdout:"",stderr:"",exitCode:1};h=T.nextArgIndex}else if(P==="--")for(h++;h<t.length;)d.push(t[h]),h++;else d.push(P),h++}if(m)return _("","",1);if(d.length===0&&c===null&&d.push("REPLY"),f===0){if(c)Re(e,c);else{for(let P of d)e.state.env.set(P,"");d.length===0&&e.state.env.set("REPLY","")}return _("","",0)}if(f<0&&f!==-1)return _("","",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,$=P=>{if(u>=0&&e.state.fileDescriptors)e.state.fileDescriptors.set(u,y.substring(P));else if(r>=0&&e.state.fileDescriptors){let T=e.state.fileDescriptors.get(r);if(T?.startsWith("__rw__:")){let I=ha(T);if(I){let k=I.position+P;e.state.fileDescriptors.set(r,pa(I.path,k,I.content))}}}else e.state.groupStdin!==void 0&&!s&&(e.state.groupStdin=y.substring(P))};if(l>=0){let P=Math.min(l,y.length);g=y.substring(0,P),O=P,v=P>=l,$(O);let T=d[0]||"REPLY";e.state.env.set(T,g);for(let I=1;I<d.length;I++)e.state.env.set(d[I],"");return _("","",v?0:1)}else if(a>=0){let P=0,T=0,I=!1;for(;T<y.length&&P<a;){let k=y[T];if(k===b){O=T+1,I=!0;break}if(!n&&k==="\\"&&T+1<y.length){let L=y[T+1];if(L===b&&b===`
530
+ `){T+=2,O=T;continue}if(L===b){T+=2,P++,g+=L,O=T;continue}g+=L,T+=2,P++,O=T}else g+=k,T++,P++,O=T}v=P>=a||I,$(O)}else{O=0;let P=0;for(;P<y.length;){let T=y[P];if(T===b){O=P+b.length,v=!0;break}if(!n&&T==="\\"&&P+1<y.length){let I=y[P+1];if(I===`
531
+ `){P+=2;continue}if(I===b){g+=I,P+=2;continue}g+=T,g+=I,P+=2;continue}g+=T,P++}if(P>=y.length&&(v=!1,O=P,g.length===0&&y.length===0)){for(let T of d)e.state.env.set(T,"");return c&&Re(e,c),_("","",1)}$(O)}b===`
532
+ `&&g.endsWith(`
533
+ `)&&(g=g.slice(0,-1));let w=P=>n?P:P.replace(/\\(.)/g,"$1");if(d.length===1&&d[0]==="REPLY")return e.state.env.set("REPLY",w(g)),_("","",v?0:1);let S=an(e.state.env);if(c){let{words:P}=Hs(g,S,void 0,n),T=e.limits?.maxArrayElements??1e5;if(P.length>T)return _("",`read: array element limit exceeded (${T})
534
+ `,1);Re(e,c);for(let I=0;I<P.length;I++)e.state.env.set(`${c}_${I}`,w(P[I]));return _("","",v?0:1)}let C=d.length,{words:E,wordStarts:N}=Hs(g,S,C,n);for(let P=0;P<d.length;P++){let T=d[P];if(P<d.length-1)e.state.env.set(T,w(E[P]??""));else if(P<N.length){let I=g.substring(N[P]);I=ln(I,S,n),I=w(I),e.state.env.set(T,I)}else e.state.env.set(T,"")}return _("","",v?0:1)}function Lr(e,t){if(e.state.callDepth===0&&e.state.sourceDepth===0)return A("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 r=t[0],n=Number.parseInt(r,10);if(r===""||Number.isNaN(n)||!/^-?\d+$/.test(r))return A(`bash: return: ${r}: numeric argument required
535
+ `,2);s=(n%256+256)%256}throw new ue(s)}var Lt=`set: usage: set [-eux] [+eux] [-o option] [+o option]
536
+ Options:
537
+ -e Exit immediately if a command exits with non-zero status
538
+ +e Disable -e
539
+ -u Treat unset variables as an error when substituting
540
+ +u Disable -u
541
+ -x Print commands and their arguments as they are executed
542
+ +x Disable -x
543
+ -o errexit Same as -e
544
+ +o errexit Disable errexit
545
+ -o nounset Same as -u
546
+ +o nounset Disable nounset
547
+ -o pipefail Return status of last failing command in pipeline
548
+ +o pipefail Disable pipefail
549
+ -o xtrace Same as -x
550
+ +o xtrace Disable xtrace
551
+ `,li=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]]),$s=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]]),fi=["errexit","nounset","pipefail","verbose","xtrace","posix","allexport","noclobber","noglob","noexec","vi","emacs"],di=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"];function Fr(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,pt(e))}function ma(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 r=s.map(n=>{let i=e.state.env.get(`${t}_${n}`)??"";return`[${n}]=${it(i)}`});return`${t}=(${r.join(" ")})`}function ga(e){return/^[a-zA-Z0-9_]+$/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function wa(e,t){let s=Ge(e,t);if(s.length===0)return`${t}=()`;let r=s.map(n=>{let i=e.state.env.get(`${t}_${n}`)??"";return`[${ga(n)}]=${it(i)}`});return`${t}=(${r.join(" ")} )`}function va(e){let t=new Set,s=e.state.associativeArrays??new Set;for(let r of e.state.env.keys()){let n=r.match(/^([a-zA-Z_][a-zA-Z0-9_]*)_(\d+)$/);if(n){let i=n[1];s.has(i)||t.add(i)}}return t}function ba(e){return e.state.associativeArrays??new Set}function ci(e){let t=fi.map(r=>`${r.padEnd(16)}${e.state.options[r]?"on":"off"}`),s=di.map(r=>`${r.padEnd(16)}off`);return`${[...t,...s].sort().join(`
552
+ `)}
553
+ `}function ui(e){let t=fi.map(r=>`set ${e.state.options[r]?"-o":"+o"} ${r}`),s=di.map(r=>`set +o ${r}`);return`${[...t,...s].sort().join(`
554
+ `)}
555
+ `}function Wr(e,t){if(t.includes("--help"))return W(Lt);if(t.length===0){let i=va(e),o=ba(e),a=u=>{for(let f of o){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)||o.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])||a(u)||h&&o.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}=${vs(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[...o].sort((f,d)=>f<d?-1:f>d?1:0))c.push(wa(e,u));return c.sort((u,f)=>{let d=u.split("=")[0],h=f.split("=")[0];return d<h?-1:d>h?1:0}),W(c.length>0?`${c.join(`
556
+ `)}
557
+ `:"")}let s=[],r=()=>s.length>0?W(s.join("")):z,n=0;for(;n<t.length;){let i=t[n];if((i==="-o"||i==="+o")&&ma(t,n)){let o=t[n+1];if(!$s.has(o)){let a=`bash: set: ${o}: invalid option name
558
+ ${Lt}`;if(e.state.options.posix)throw new ve(1,"",a);return A(a,2)}Fr(e,$s.get(o)??null,i==="-o"),n+=2;continue}if(i==="-o"){s.push(ci(e)),n++;continue}if(i==="+o"){s.push(ui(e)),n++;continue}if(i.length>1&&(i[0]==="-"||i[0]==="+")&&i[1]!=="-"){let o=i[0]==="-",a=0;for(let l=1;l<i.length;l++){let c=i[l];if(c==="o"){let u=n+1+a;if(u<t.length&&!t[u].startsWith("-")&&!t[u].startsWith("+")){let d=t[u];if(!$s.has(d)){let h=`bash: set: ${d}: invalid option name
559
+ ${Lt}`;if(e.state.options.posix)throw new ve(1,"",h);return A(h,2)}Fr(e,$s.get(d)??null,o),a++;continue}s.push(o?ci(e):ui(e));continue}if(!li.has(c)){let u=`bash: set: ${i[0]}${c}: invalid option
560
+ ${Lt}`;if(e.state.options.posix)throw new ve(1,"",u);return A(u,2)}Fr(e,li.get(c)??null,o)}n+=1+a;continue}if(i==="--")return Mr(e,t.slice(n+1)),r();if(i==="-"){if(e.state.options.xtrace=!1,e.state.options.verbose=!1,pt(e),n+1<t.length)return Mr(e,t.slice(n+1)),r();n++;continue}if(i==="+"){n++;continue}if(i.startsWith("-")||i.startsWith("+")){let o=`bash: set: ${i}: invalid option
561
+ ${Lt}`;if(e.state.options.posix)throw new ve(1,"",o);return A(o,2)}return Mr(e,t.slice(n)),r()}return r()}function Mr(e,t){let s=1;for(;e.state.env.has(String(s));)e.state.env.delete(String(s)),s++;for(let r=0;r<t.length;r++)e.state.env.set(String(r+1),t[r]);e.state.env.set("#",String(t.length)),e.state.env.set("@",t.join(" ")),e.state.env.set("*",t.join(" "))}function zr(e,t){let s=1;if(t.length>1)return A(`bash: shift: too many arguments
562
+ `);if(t.length>0){let o=Number.parseInt(t[0],10);if(Number.isNaN(o)){let a=`bash: shift: ${t[0]}: numeric argument required
563
+ `;if(e.state.options.posix)throw new ve(1,"",a);return A(a)}if(o<0){let a=`bash: shift: shift count out of range
564
+ `;if(e.state.options.posix)throw new ve(1,"",a);return A(a)}s=o}let r=Number.parseInt(e.state.env.get("#")||"0",10);if(s>r){let o=`bash: shift: shift count out of range
565
+ `;if(e.state.options.posix)throw new ve(1,"",o);return A(o)}if(s===0)return z;let n=[];for(let o=1;o<=r;o++)n.push(e.state.env.get(String(o))||"");let i=n.slice(s);for(let o=1;o<=r;o++)e.state.env.delete(String(o));for(let o=0;o<i.length;o++)e.state.env.set(String(o+1),i[o]);return e.state.env.set("#",String(i.length)),e.state.env.set("@",i.join(" ")),z}async function Vr(e,t,s=""){let r=t;if(r.length>0&&r[0]==="--"&&(r=r.slice(1)),r.length===0)return _("",`bash: source: filename argument required
566
+ `,2);let n=r[0],i=null,o=null;if(n.includes("/")){let d=e.fs.resolvePath(e.state.cwd,n);try{o=await e.fs.readFile(d),i=d}catch{}}else{let h=(e.state.env.get("PATH")||"").split(":").filter(m=>m);for(let m of h){let p=e.fs.resolvePath(e.state.cwd,`${m}/${n}`);try{if((await e.fs.stat(p)).isDirectory)continue;o=await e.fs.readFile(p),i=p;break}catch{}}if(o===null){let m=e.fs.resolvePath(e.state.cwd,n);try{o=await e.fs.readFile(m),i=m}catch{}}}if(o===null)return A(`bash: ${n}: No such file or directory
567
+ `);let a=new Map;if(r.length>1){for(let h=1;h<=9;h++)a.set(String(h),e.state.env.get(String(h)));a.set("#",e.state.env.get("#")),a.set("@",e.state.env.get("@"));let d=r.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),r.length>1)for(let[d,h]of a)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 Q(`source: maximum nesting depth (${e.limits.maxSourceDepth}) exceeded, increase executionLimits.maxSourceDepth`,"recursion");e.state.currentSource=n,c&&(e.state.groupStdin=s);try{let d=pe(o),h=await e.executeScript(d);return f(),h}catch(d){if(f(),d instanceof G)throw d;if(d instanceof ue)return _(d.stdout,d.stderr,d.exitCode);if(d.name==="ParseException")return A(`bash: ${n}: ${d.message}
568
+ `);throw d}}function hi(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)}function Ea(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')}async function pi(e,t){if(Ea(t))return null;try{let s=new B,r=ee(s,t);return await U(e,r.expression)}catch{let s=parseInt(t,10);return Number.isNaN(s)?0:s}}function mi(e,t){if(e.state.localVarStack?.has(t)){let r=ms(e,t);if(r){r.value===void 0?e.state.env.delete(t):e.state.env.set(t,r.value);let n=e.state.localVarStack?.get(t);if(!n||n.length===0)ps(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,r.scopeIndex),Br(e,t);else{let i=n[n.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),ps(e,t),e.state.localVarStack?.delete(t),e.state.fullyUnsetLocals=e.state.fullyUnsetLocals||new Map,e.state.fullyUnsetLocals.set(t,0),!0}for(let r=e.state.localScopes.length-1;r>=0;r--){let n=e.state.localScopes[r];if(n.has(t)){let i=n.get(t);i===void 0?e.state.env.delete(t):e.state.env.set(t,i),n.delete(t);let o=!1;for(let a=r-1;a>=0;a--)if(e.state.localScopes[a].has(t)){e.state.localVarDepth&&e.state.localVarDepth.set(t,a+1),o=!0;break}return o||ps(e,t),!0}}return!1}function Br(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 r=e.state.tempEnvBindings[s];if(r.has(t)){let n=r.get(t);return n===void 0?e.state.env.delete(t):e.state.env.set(t,n),r.delete(t),!0}}return!1}async function yi(e,t){if(t.startsWith("'")&&t.endsWith("'"))return t.slice(1,-1);if(t.startsWith('"')&&t.endsWith('"')){let s=t.slice(1,-1),n=new B().parseWordFromString(s,!0,!1);return x(e,n)}if(t.includes("$")){let r=new B().parseWordFromString(t,!1,!1);return x(e,r)}return t}async function jr(e,t){let s="both",r="",n=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=Ae(e,d);for(let[v]of O)e.state.env.delete(`${d}_${v}`);e.state.env.delete(d);continue}let m=e.state.associativeArrays?.has(d);if(m){let O=await yi(e,h);e.state.env.delete(`${d}_${O}`);continue}let p=Gs(e,d),y=e.state.declaredVars?.has(d);if((e.state.env.has(d)||y)&&!p&&!m){r+=`bash: unset: ${d}: not an array variable
569
+ `,n=1;continue}let g=await pi(e,h);if(g===null&&p){r+=`bash: unset: ${h}: not a valid identifier
570
+ `,n=1;continue}if(g===null)continue;if(g<0){let O=Ae(e,d),v=O.length,$=e.state.currentLine;if(v===0){r+=`bash: line ${$}: unset: [${g}]: bad array subscript
571
+ `,n=1;continue}let w=v+g;if(w<0){r+=`bash: line ${$}: unset: [${g}]: bad array subscript
572
+ `,n=1;continue}let S=O[w][0];e.state.env.delete(`${d}_${S}`);continue}e.state.env.delete(`${d}_${g}`);continue}if(!hi(i)){r+=`bash: unset: ${i}: not a valid identifier
573
+ `,n=1;continue}let u=i;if($e(e,i)){let d=Ke(e,i);d&&d!==i&&(u=d)}if(st(e,u)){r+=`bash: unset: ${u}: cannot unset: readonly variable
574
+ `,n=1;continue}let f=yt(e,u);if(f!==void 0&&f!==e.state.callDepth)mi(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 m=ms(e,u);m?m.value===void 0?e.state.env.delete(u):e.state.env.set(u,m.value):e.state.env.delete(u)}else e.state.env.delete(u)}else Br(e,u)||e.state.env.delete(u);e.state.exportedVars?.delete(u);continue}let o=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(o){let c=o[1],u=o[2];if(u==="@"||u==="*"){let p=Ae(e,c);for(let[y]of p)e.state.env.delete(`${c}_${y}`);e.state.env.delete(c);continue}let f=e.state.associativeArrays?.has(c);if(f){let p=await yi(e,u);e.state.env.delete(`${c}_${p}`);continue}let d=Gs(e,c);if(e.state.env.has(c)&&!d&&!f){r+=`bash: unset: ${c}: not an array variable
575
+ `,n=1;continue}let m=await pi(e,u);if(m===null&&d){r+=`bash: unset: ${u}: not a valid identifier
576
+ `,n=1;continue}if(m===null)continue;if(m<0){let p=Ae(e,c),y=p.length,b=e.state.currentLine;if(y===0){r+=`bash: line ${b}: unset: [${m}]: bad array subscript
577
+ `,n=1;continue}let g=y+m;if(g<0){r+=`bash: line ${b}: unset: [${m}]: bad array subscript
578
+ `,n=1;continue}let O=p[g][0];e.state.env.delete(`${c}_${O}`);continue}e.state.env.delete(`${c}_${m}`);continue}if(!hi(i)){r+=`bash: unset: ${i}: not a valid identifier
579
+ `,n=1;continue}let a=i;if($e(e,i)){let c=Ke(e,i);c&&c!==i&&(a=c)}if(st(e,a)){r+=`bash: unset: ${a}: cannot unset: readonly variable
580
+ `,n=1;continue}let l=yt(e,a);if(l!==void 0&&l!==e.state.callDepth)mi(e,a);else if(e.state.fullyUnsetLocals?.has(a))e.state.env.delete(a);else if(l!==void 0){let c=e.state.accessedTempEnvVars?.has(a),u=e.state.mutatedTempEnvVars?.has(a);if((c||u)&&e.state.localVarStack?.has(a)){let f=ms(e,a);f?f.value===void 0?e.state.env.delete(a):e.state.env.set(a,f.value):e.state.env.delete(a)}else e.state.env.delete(a)}else Br(e,a)||e.state.env.delete(a);e.state.exportedVars?.delete(a),e.state.functions.delete(i)}return _("",r,n)}var Ur=["extglob","dotglob","nullglob","failglob","globstar","globskipdots","nocaseglob","nocasematch","expand_aliases","lastpipe","xpg_echo"],$a=["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 Ss(e){return Ur.includes(e)}function Sa(e){return $a.includes(e)}function gi(e,t){let s=!1,r=!1,n=!1,i=!1,o=!1,a=[],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 m=d[h];switch(m){case"s":s=!0;break;case"u":r=!0;break;case"p":n=!0;break;case"q":i=!0;break;case"o":o=!0;break;default:return{exitCode:2,stdout:"",stderr:`shopt: -${m}: invalid option
581
+ `}}}l++}else break}for(;l<t.length;)a.push(t[l]),l++;if(o)return Pa(e,a,s,r,n,i);if(s&&r)return{exitCode:1,stdout:"",stderr:`shopt: cannot set and unset shell options simultaneously
582
+ `};if(a.length===0){if(s||r){let h=[];for(let m of Ur){let p=e.state.shoptOptions[m];s&&p?h.push(n?`shopt -s ${m}`:`${m} on`):r&&!p&&h.push(n?`shopt -u ${m}`:`${m} off`)}return{exitCode:0,stdout:h.length>0?`${h.join(`
583
+ `)}
584
+ `:"",stderr:""}}let d=[];for(let h of Ur){let m=e.state.shoptOptions[h];d.push(n?`shopt ${m?"-s":"-u"} ${h}`:`${h} ${m?"on":"off"}`)}return{exitCode:0,stdout:`${d.join(`
585
+ `)}
586
+ `,stderr:""}}let c=!1,u="",f=[];for(let d of a){if(!Ss(d)&&!Sa(d)){u+=`shopt: ${d}: invalid shell option name
587
+ `,c=!0;continue}if(s)Ss(d)&&(e.state.shoptOptions[d]=!0,Js(e));else if(r)Ss(d)&&(e.state.shoptOptions[d]=!1,Js(e));else if(Ss(d)){let h=e.state.shoptOptions[d];i?h||(c=!0):n?(f.push(`shopt ${h?"-s":"-u"} ${d}`),h||(c=!0)):(f.push(`${d} ${h?"on":"off"}`),h||(c=!0))}else i?c=!0:n?(f.push(`shopt -u ${d}`),c=!0):(f.push(`${d} off`),c=!0)}return{exitCode:c?1:0,stdout:f.length>0?`${f.join(`
588
+ `)}
589
+ `:"",stderr:u}}function Pa(e,t,s,r,n,i){let o=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"]]),a=["braceexpand","errtrace","functrace","hashall","histexpand","history","ignoreeof","interactive-comments","keyword","monitor","nolog","notify","onecmd","physical","privileged"],l=[...o.keys(),...a].sort();if(t.length===0){let d=[];for(let h of l){let m=a.includes(h),p=o.get(h),y=m||!p?!1:e.state.options[p];s&&!y||r&&y||d.push(n?`set ${y?"-o":"+o"} ${h}`:`${h} ${y?"on":"off"}`)}return{exitCode:0,stdout:d.length>0?`${d.join(`
590
+ `)}
591
+ `:"",stderr:""}}let c=!1,u="",f=[];for(let d of t){let h=o.has(d),m=a.includes(d);if(!h&&!m){u+=`shopt: ${d}: invalid option name
592
+ `,c=!0;continue}if(m){s||r||(i?c=!0:n?(f.push(`set +o ${d}`),c=!0):(f.push(`${d} off`),c=!0));continue}let p=o.get(d);if(p)if(s)p==="vi"?e.state.options.emacs=!1:p==="emacs"&&(e.state.options.vi=!1),e.state.options[p]=!0,pt(e);else if(r)e.state.options[p]=!1,pt(e);else{let y=e.state.options[p];i?y||(c=!0):n?(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(`
593
+ `)}
594
+ `:"",stderr:u}}async function wi(e,t,s){if(t.includes("/")){let o=e.fs.resolvePath(e.state.cwd,t);if(!await e.fs.exists(o))return{error:"not_found",path:o};let a=o.split("/").pop()||t,l=e.commands.get(a);try{let c=await e.fs.stat(o);return c.isDirectory?{error:"permission_denied",path:o}:l?{cmd:l,path:o}:(c.mode&73)!==0?{script:!0,path:o}:{error:"permission_denied",path:o}}catch{return{error:"not_found",path:o}}}if(!s&&e.state.hashTable){let o=e.state.hashTable.get(t);if(o)if(await e.fs.exists(o)){let a=e.commands.get(t);if(a)return{cmd:a,path:o};try{let l=await e.fs.stat(o);if(!l.isDirectory&&(l.mode&73)!==0)return{script:!0,path:o}}catch{}}else e.state.hashTable.delete(t)}let n=(s??e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let o of n){if(!o)continue;let l=`${o.startsWith("/")?o:e.fs.resolvePath(e.state.cwd,o)}/${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=o==="/bin"||o==="/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 o=e.commands.get(t);if(o)return{cmd:o,path:`/usr/bin/${t}`}}return null}async function Ps(e,t){let s=[];if(t.includes("/")){let i=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(i))try{let o=await e.fs.stat(i);o.isDirectory||(o.mode&73)!==0&&s.push(t)}catch{}return s}let n=(e.state.env.get("PATH")||"/usr/bin:/bin").split(":");for(let i of n){if(!i)continue;let a=`${i.startsWith("/")?i:e.fs.resolvePath(e.state.cwd,i)}/${t}`;if(await e.fs.exists(a)){try{if((await e.fs.stat(a)).isDirectory)continue}catch{continue}s.push(i.startsWith("/")?a:`${i}/${t}`)}}return s}function Aa(e){return e!==null&&typeof e=="object"&&"then"in e&&typeof e.then=="function"}function K(e,t,s,r){return((...n)=>{Tt(t,s,`${r} call`);let i=e(...n);return Aa(i)?i.then(o=>(Tt(t,s,`${r} post-await`),o),o=>{throw Tt(t,s,`${r} post-await`),o}):(Tt(t,s,`${r} return`),i)})}function ka(e,t,s){let r={readFile:K(e.readFile.bind(e),t,s,"fs.readFile"),...typeof e.readFileBytes=="function"?{readFileBytes:K(e.readFileBytes.bind(e),t,s,"fs.readFileBytes")}:Object.create(null),readFileBuffer:K(e.readFileBuffer.bind(e),t,s,"fs.readFileBuffer"),writeFile:K(e.writeFile.bind(e),t,s,"fs.writeFile"),appendFile:K(e.appendFile.bind(e),t,s,"fs.appendFile"),exists:K(e.exists.bind(e),t,s,"fs.exists"),stat:K(e.stat.bind(e),t,s,"fs.stat"),mkdir:K(e.mkdir.bind(e),t,s,"fs.mkdir"),readdir:K(e.readdir.bind(e),t,s,"fs.readdir"),rm:K(e.rm.bind(e),t,s,"fs.rm"),cp:K(e.cp.bind(e),t,s,"fs.cp"),mv:K(e.mv.bind(e),t,s,"fs.mv"),resolvePath:K(e.resolvePath.bind(e),t,s,"fs.resolvePath"),getAllPaths:K(e.getAllPaths.bind(e),t,s,"fs.getAllPaths"),chmod:K(e.chmod.bind(e),t,s,"fs.chmod"),symlink:K(e.symlink.bind(e),t,s,"fs.symlink"),link:K(e.link.bind(e),t,s,"fs.link"),readlink:K(e.readlink.bind(e),t,s,"fs.readlink"),lstat:K(e.lstat.bind(e),t,s,"fs.lstat"),realpath:K(e.realpath.bind(e),t,s,"fs.realpath"),utimes:K(e.utimes.bind(e),t,s,"fs.utimes")};return e.readdirWithFileTypes&&(r.readdirWithFileTypes=K(e.readdirWithFileTypes.bind(e),t,s,"fs.readdirWithFileTypes")),r}function Hr(e,t){if(!e.requireDefenseContext)return e;let s=`command:${t}`,r={...e,fs:ka(e.fs,e.requireDefenseContext,s)};return e.exec&&(r.exec=K(e.exec,e.requireDefenseContext,s,"exec")),e.fetch&&(r.fetch=K(e.fetch,e.requireDefenseContext,s,"fetch")),e.sleep&&(r.sleep=K(e.sleep,e.requireDefenseContext,s,"sleep")),e.getRegisteredCommands&&(r.getRegisteredCommands=K(e.getRegisteredCommands,e.requireDefenseContext,s,"getRegisteredCommands")),r}async function bi(e,t,s,r){let n=!1,i=!1,o=!1,a=!1,l=!1,c=[];for(let p of t)if(p.startsWith("-")&&p.length>1)for(let y of p.slice(1))if(y==="t")n=!0;else if(y==="p")i=!0;else if(y==="P")o=!0;else if(y==="a")a=!0;else if(y==="f")l=!0;else return _("",`type: -${y}: unsupported option
595
+ `,2);else c.push(p);let u="",f="",d=0,h=!1,m=!1;for(let p of c){let y=!1;if(o){if(a){let S=await r(p);if(S.length>0){for(let C of S)u+=`${C}
596
+ `;h=!0,y=!0}}else{let S=await s(p);S&&(u+=`${S}
597
+ `,h=!0,y=!0)}y||(m=!0);continue}let b=!l&&e.state.functions.has(p);if(a&&b){if(!i)if(n)u+=`function
598
+ `;else{let S=e.state.functions.get(p),C=S?vi(p,S):`${p} is a shell function
599
+ `;u+=C}y=!0}let g=e.state.env.get(`BASH_ALIAS_${p}`);if(g!==void 0&&(a||!y)&&(i||(n?u+=`alias
600
+ `:u+=`${p} is aliased to \`${g}'
601
+ `),y=!0,!a)||ar.has(p)&&(a||!y)&&(i||(n?u+=`keyword
602
+ `:u+=`${p} is a shell keyword
603
+ `),y=!0,!a)||e.commands.has(p)&&(a||!y)&&(i||(n?u+=`registered
604
+ `:u+=`${p} is a registered command
605
+ `),y=!0,!a))continue;if(!a&&b&&!y){if(!i)if(n)u+=`function
606
+ `;else{let S=e.state.functions.get(p),C=S?vi(p,S):`${p} is a shell function
607
+ `;u+=C}y=!0;continue}if(!(gt.has(p)&&(a||!y)&&(i||(n?u+=`builtin
608
+ `:u+=`${p} is a shell builtin
609
+ `),y=!0,!a))){if(a){let S=await r(p);for(let C of S)i?u+=`${C}
610
+ `:n?u+=`file
611
+ `:u+=`${p} is ${C}
612
+ `,h=!0,y=!0}else if(!y){let S=await s(p);S&&(i?u+=`${S}
613
+ `:n?u+=`file
614
+ `:u+=`${p} is ${S}
615
+ `,h=!0,y=!0)}if(!y&&(m=!0,!n&&!i)){let S=!0;if(p.includes("/")){let C=e.fs.resolvePath(e.state.cwd,p);await e.fs.exists(C)&&(S=!1)}S&&(f+=`bash: type: ${p}: not found
616
+ `)}}}return i?d=m&&!h?1:0:d=m?1:0,_(u,f,d)}function vi(e,t){return`${e} is a shell function
617
+ `}async function Ei(e,t,s,r){let n="",i="",o=0;for(let a of t){if(!a){o=1;continue}let l=e.state.env.get(`BASH_ALIAS_${a}`);if(l!==void 0)r?n+=`${a} is an alias for "${l}"
618
+ `:n+=`alias ${a}='${l}'
619
+ `;else if(ar.has(a))r?n+=`${a} is a shell keyword
620
+ `:n+=`${a}
621
+ `;else if(gt.has(a))r?n+=`${a} is a shell builtin
622
+ `:n+=`${a}
623
+ `;else if(e.commands.has(a))r?n+=`${a} is a registered command
624
+ `:n+=`${a}
625
+ `;else if(e.state.functions.has(a))r?n+=`${a} is a function
626
+ `:n+=`${a}
627
+ `;else if(a.includes("/")){let c=e.fs.resolvePath(e.state.cwd,a),u=!1;if(await e.fs.exists(c))try{let f=await e.fs.stat(c);f.isDirectory||(f.mode&73)!==0&&(r?n+=`${a} is ${a}
628
+ `:n+=`${a}
629
+ `,u=!0)}catch{}u||(r&&(i+=`${a}: not found
630
+ `),o=1)}else{let c=await qr(e,a);c?r?n+=`${a} is ${c}
631
+ `:n+=`${c}
632
+ `:(r&&(i+=`${a}: not found
633
+ `),o=1)}}return _(n,i,o)}async function qr(e,t){if(t.includes("/")){let n=e.fs.resolvePath(e.state.cwd,t);if(await e.fs.exists(n)){try{if((await e.fs.stat(n)).isDirectory)return null}catch{return null}return t}return null}let r=(e.state.env.get("PATH")??"/usr/bin:/bin").split(":");for(let n of r){if(!n)continue;let o=`${n.startsWith("/")?n:e.fs.resolvePath(e.state.cwd,n)}/${t}`;if(await e.fs.exists(o)){try{if((await e.fs.stat(o)).isDirectory)continue}catch{continue}return`${n}/${t}`}}if(e.commands.has(t)){for(let n of r)if(n==="/usr/bin"||n==="/bin")return`${n}/${t}`;return`/usr/bin/${t}`}return null}var Ca=new Set(["awk","cat","cut","grep","head","jq","mapfile","read","readarray","sed","sort","tail","tee","tr","uniq","wc","xargs"]);function Zr(e){return Ca.has(e)}async function $i(e,t,s,r,n,i,o,a){let{ctx:l,runCommand:c}=e;if(l.coverage&&gt.has(t)&&l.coverage.hit(`bash:builtin:${t}`),t==="export")return Nr(l,s);if(t==="unset")return jr(l,s);if(t==="exit")return _r(l,s);if(t==="local")return Dr(l,s);if(t==="set")return Wr(l,s);if(t==="break")return tr(l,s);if(t==="continue")return pr(l,s);if(t==="return")return Lr(l,s);if(t==="eval"&&l.state.options.posix)return bs(l,s,n);if(t==="shift")return zr(l,s);if(t==="getopts")return Es(l,s);if(t==="compgen")return ur(l,s);if(t==="complete")return dr(l,s);if(t==="compopt")return hr(l,s);if(t==="pushd")return await Ar(l,s);if(t==="popd")return kr(l,s);if(t==="dirs")return Cr(l,s);if(t==="source"||t===".")return Vr(l,s,n);if(t==="read")return Ir(l,s,n,a);if(t==="mapfile"||t==="readarray")return Rr(l,s,n);if(t==="declare"||t==="typeset")return $r(l,s);if(t==="readonly")return Sr(l,s);if(l.commands.has(t))return null;if(!i){let u=l.state.functions.get(t);if(u)return ws(l,u,s,n)}if(t==="eval")return bs(l,s,n);if(t==="cd")return await sr(l,s);if(t===":"||t==="true")return z;if(t==="false")return J(!1);if(t==="let")return xr(l,s);if(t==="command")return _a(e,s,n);if(t==="builtin")return Na(e,s,n);if(t==="shopt")return gi(l,s);if(t==="exec"){if(s.length===0)return z;let[u,...f]=s;return c(u,f,[],n,!1,!1,-1)}if(t==="jobs")return l.jobControl?.jobs?l.jobControl.jobs(s):z;if(t==="wait")return l.jobControl?.wait?l.jobControl.wait(s):z;if(t==="type")return await bi(l,s,u=>qr(l,u),u=>Ps(l,u));if(t==="hash")return Or(l,s);if(t==="help")return Tr(l,s);if(t==="["||t==="test"){let u=s;if(t==="["){if(s[s.length-1]!=="]")return A("[: missing `]'\n",2);u=s.slice(0,-1)}return Rt(l,u)}return null}async function _a(e,t,s){let{ctx:r,runCommand:n}=e;if(t.length===0)return z;let i=!1,o=!1,a=!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"?o=!0:d==="v"&&(a=!0);l=l.slice(1)}if(l.length===0)return z;if(a||o)return await Ei(r,l,a,o);let[c,...u]=l;return n(c,u,[],s,!0,i,-1)}async function Na(e,t,s){let{runCommand:r}=e;if(t.length===0)return z;let n=t;if(n[0]==="--"&&(n=n.slice(1),n.length===0))return z;let i=n[0];if(!gt.has(i))return A(`bash: builtin: ${i}: not a shell builtin
634
+ `);let[,...o]=n;return r(i,o,[],s,!0,!1,-1)}async function Si(e,t,s,r,n){let{ctx:i,buildExportedEnv:o,executeUserScript:a}=e;if(i.hostSpawn){let b=i.commands.get(t);if(b){let $=o(),w=r===""&&i.state.groupStdin!==void 0,S=r||i.state.groupStdin||"",C={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:$,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},E=Hr(C,t);try{let N=()=>Vs(i.requireDefenseContext,"command",`${t} execution`,()=>b.execute(s,E));return b.trusted?await de.runTrustedAsync(()=>N()):await N()}catch(N){if(N instanceof Q||N instanceof We)throw N;return A(`${t}: ${De(xe(N))}
635
+ `)}finally{w&&(b.consumesStdin||Zr(t))&&(i.state.groupStdin="")}}let g=o(),O=r===""&&i.state.groupStdin!==void 0,v=r||i.state.groupStdin||"";try{return await i.hostSpawn(t,s,{cwd:i.state.cwd,env:g,stdin:v,stdinProvided:r!==""||O||i.state.pipelineStdinProvided,redirections:i.currentRedirections})}finally{O&&Zr(t)&&(i.state.groupStdin="")}}let c=await wi(i,t,n?"/usr/bin:/bin":void 0);if(!c)return Rn(t)?A(`bash: ${t}: command not available in browser environments. Exclude '${t}' from your commands or use the Node.js bundle.
636
+ `,127):A(`bash: ${t}: command not found
637
+ `,127);if("error"in c)return c.error==="permission_denied"?A(`bash: ${t}: Permission denied
638
+ `,126):A(`bash: ${t}: No such file or directory
639
+ `,127);if("script"in c)return t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,c.path)),await a(c.path,s,r);let{cmd:u,path:f}=c;t.includes("/")||(i.state.hashTable||(i.state.hashTable=new Map),i.state.hashTable.set(t,f));let d=r===""&&i.state.groupStdin!==void 0,h=r||i.state.groupStdin||"",m=o(),p={fs:i.fs,cwd:i.state.cwd,env:i.state.env,exportedEnv:m,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=Hr(p,t);try{let b=()=>Vs(i.requireDefenseContext,"command",`${t} execution`,()=>u.execute(s,y));return u.trusted?await de.runTrustedAsync(()=>b()):await b()}catch(b){if(b instanceof Q||b instanceof We)throw b;return A(`${t}: ${De(xe(b))}
640
+ `)}finally{d&&(u.consumesStdin||Zr(t))&&(i.state.groupStdin="")}}async function Gr(e,t){let s=e.state.inCondition;e.state.inCondition=!0;let r="",n="",i=0;try{for(let o of t){let a=await e.executeStatement(o);r+=a.stdout,n+=a.stderr,i=a.exitCode}}finally{e.state.inCondition=s}return{stdout:r,stderr:n,exitCode:i}}function Ft(e,t,s,r){if(e instanceof ae)return t+=e.stdout,s+=e.stderr,e.levels>1&&r>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 he)return t+=e.stdout,s+=e.stderr,e.levels>1&&r>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 ue||e instanceof Te||e instanceof we||e instanceof G||e instanceof Q)return e.prependOutput(t,s),{action:"rethrow",stdout:t,stderr:s,error:e};let n=xe(e);return{action:"error",stdout:t,stderr:`${s}${n}
641
+ `,exitCode:1}}async function As(e,t,s="",r=""){let n=s,i=r,o=0;try{for(let a of t){let l=await e.executeStatement(a);n+=l.stdout,i+=l.stderr,o=l.exitCode}}catch(a){if(Gt(a)||a instanceof we||a instanceof G||a instanceof Q||a instanceof qe)throw a.prependOutput(n,i),a;return{stdout:n,stderr:`${i}${xe(a)}
642
+ `,exitCode:1}}return{stdout:n,stderr:i,exitCode:o}}async function Pi(e,t){let s=await Ce(e,t.redirections);if(s)return s;let r="",n="",i=!1,o="";for(let c of t.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await x(e,u.content);u.stripTabs&&(f=f.split(`
643
+ `).map(d=>d.replace(/^\t+/,"")).join(`
644
+ `)),o=f,i=!0}else if(c.operator==="<<<"&&c.target.type==="Word")o=`${await x(e,c.target)}
645
+ `,i=!0;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await x(e,c.target),f=e.fs.resolvePath(e.state.cwd,u);o=await e.fs.readFile(f),i=!0}catch{let u=await x(e,c.target);return A(`bash: ${u}: No such file or directory
646
+ `)}let a=e.state.groupStdin;i&&(e.state.groupStdin=o);let l;try{for(let c of t.clauses){let u=await Gr(e,c.condition);if(r+=u.stdout,n+=u.stderr,u.exitCode===0)return l=await As(e,c.body,r,n),Z(e,l,t.redirections)}t.elseBody?l=await As(e,t.elseBody,r,n):l=_(r,n,0)}finally{i&&(e.state.groupStdin=a)}return Z(e,l,t.redirections)}async function Ai(e,t){let s=await Ce(e,t.redirections);if(s)return s;let r="",n="",i=0,o=0;if(!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t.variable))return A(`bash: \`${t.variable}': not a valid identifier
647
+ `);let a=[];if(t.words===null)a=(e.state.env.get("@")||"").split(" ").filter(Boolean);else if(t.words.length===0)a=[];else try{for(let c of t.words){let u=await Ie(e,c);a.push(...u.values)}}catch(c){if(c instanceof qt)return{stdout:"",stderr:c.stderr,exitCode:1};throw c}e.state.loopDepth++;try{for(let c of a){o++,o>e.limits.maxLoopIterations&&Le(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n),e.state.env.set(t.variable,c);try{for(let u of t.body){let f=await e.executeStatement(u);r+=f.stdout,n+=f.stderr,i=f.exitCode}}catch(u){let f=Ft(u,r,n,e.state.loopDepth);if(r=f.stdout,n=f.stderr,f.action==="break")break;if(f.action==="continue")continue;if(f.action==="error"){let d=_(r,n,f.exitCode??1);return Z(e,d,t.redirections)}throw f.error}}}finally{e.state.loopDepth--}let l=_(r,n,i);return Z(e,l,t.redirections)}async function ki(e,t){let s=await Ce(e,t.redirections);if(s)return s;let r=t.line;r!==void 0&&(e.state.currentLine=r);let n="",i="",o=0,a=0;t.init&&await U(e,t.init.expression),e.state.loopDepth++;try{for(;a++,a>e.limits.maxLoopIterations&&Le(`for loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",n,i),!(t.condition&&(r!==void 0&&(e.state.currentLine=r),await U(e,t.condition.expression)===0));){try{for(let c of t.body){let u=await e.executeStatement(c);n+=u.stdout,i+=u.stderr,o=u.exitCode}}catch(c){let u=Ft(c,n,i,e.state.loopDepth);if(n=u.stdout,i=u.stderr,u.action==="break")break;if(u.action==="continue"){t.update&&await U(e,t.update.expression);continue}if(u.action==="error"){let f=_(n,i,u.exitCode??1);return Z(e,f,t.redirections)}throw u.error}t.update&&await U(e,t.update.expression)}}finally{e.state.loopDepth--}let l=_(n,i,o);return Z(e,l,t.redirections)}async function Ci(e,t,s=""){let r="",n="",i=0,o=0,a=s;for(let c of t.redirections)if((c.operator==="<<"||c.operator==="<<-")&&c.target.type==="HereDoc"){let u=c.target,f=await x(e,u.content);u.stripTabs&&(f=f.split(`
648
+ `).map(d=>d.replace(/^\t+/,"")).join(`
649
+ `)),a=f}else if(c.operator==="<<<"&&c.target.type==="Word")a=`${await x(e,c.target)}
650
+ `;else if(c.operator==="<"&&c.target.type==="Word")try{let u=await x(e,c.target),f=e.fs.resolvePath(e.state.cwd,u);a=await e.fs.readFile(f)}catch{let u=await x(e,c.target);return A(`bash: ${u}: No such file or directory
651
+ `)}let l=e.state.groupStdin;a&&(e.state.groupStdin=a),e.state.loopDepth++;try{for(;;){o++,o>e.limits.maxLoopIterations&&Le(`while loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",r,n);let c=0,u=!1,f=!1,d=e.state.inCondition;e.state.inCondition=!0;try{for(let h of t.condition){let m=await e.executeStatement(h);r+=m.stdout,n+=m.stderr,c=m.exitCode}}catch(h){if(h instanceof ae){if(r+=h.stdout,n+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=r,h.stderr=n,e.state.inCondition=d,h;u=!0}else if(h instanceof he){if(r+=h.stdout,n+=h.stderr,h.levels>1&&e.state.loopDepth>1)throw h.levels--,h.stdout=r,h.stderr=n,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 m=await e.executeStatement(h);r+=m.stdout,n+=m.stderr,i=m.exitCode}}catch(h){let m=Ft(h,r,n,e.state.loopDepth);if(r=m.stdout,n=m.stderr,m.action==="break")break;if(m.action==="continue")continue;if(m.action==="error")return _(r,n,m.exitCode??1);throw m.error}}}}finally{e.state.loopDepth--,e.state.groupStdin=l}return _(r,n,i)}async function _i(e,t){let s="",r="",n=0,i=0;e.state.loopDepth++;try{for(;;){i++,i>e.limits.maxLoopIterations&&Le(`until loop: too many iterations (${e.limits.maxLoopIterations}), increase executionLimits.maxLoopIterations`,"iterations",s,r);let o=await Gr(e,t.condition);if(s+=o.stdout,r+=o.stderr,o.exitCode===0)break;try{for(let a of t.body){let l=await e.executeStatement(a);s+=l.stdout,r+=l.stderr,n=l.exitCode}}catch(a){let l=Ft(a,s,r,e.state.loopDepth);if(s=l.stdout,r=l.stderr,l.action==="break")break;if(l.action==="continue")continue;if(l.action==="error")return _(s,r,l.exitCode??1);throw l.error}}}finally{e.state.loopDepth--}return _(s,r,n)}async function Ni(e,t){let s=await Ce(e,t.redirections);if(s)return s;let r="",n="",i=0,o=await x(e,t.word),a=!1;for(let c=0;c<t.items.length;c++){let u=t.items[c],f=a;if(!a)for(let d of u.patterns){let h=await x(e,d);mn(d)&&(h=hn(h));let m=e.state.shoptOptions.nocasematch,p=e.state.shoptOptions.extglob;if(mt(o,h,m,p)){f=!0;break}}if(f){let d=await As(e,u.body,r,n);if(r=d.stdout,n=d.stderr,i=d.exitCode,u.terminator===";;")break;u.terminator===";&"?a=!0:a=!1}else a=!1}let l=_(r,n,i);return Z(e,l,t.redirections)}function Kr(e,t){if(e.parts.length!==1)return!1;let s=e.parts[0];return s.type!=="Literal"?!1:t.includes(s.value)}function Oi(e){if(!e.startsWith("__rw__:"))return null;let t=e.slice(7),s=t.indexOf(":");if(s===-1)return null;let r=Number.parseInt(t.slice(0,s),10);if(Number.isNaN(r)||r<0)return null;let n=s+1,i=t.slice(n,n+r),o=n+r+1,a=t.slice(o),l=a.indexOf(":");if(l===-1)return null;let c=Number.parseInt(a.slice(0,l),10);if(Number.isNaN(c)||c<0)return null;let u=a.slice(l+1);return{path:i,position:c,content:u}}var Ti="+ ";async function xi(e){let t=e.state.env.get("PS4");if(t===void 0)return Ti;if(t==="")return"";try{let r=new B().parseWordFromString(t,!1,!1);return await x(e,r)}catch{return e.state.expansionStderr=`${e.state.expansionStderr||""}bash: ${t}: bad substitution
652
+ `,t||Ti}}function Oa(e){return e.map(t=>Ta(t)).join(" ")}function Ta(e){if(e==="")return"''";if(!/[\s'"\\$`!*?[\]{}|&;<>()~#\n\t]/.test(e))return e;let s=/[\x00-\x1f\x7f]/.test(e),r=e.includes(`
653
+ `),n=e.includes(" "),i=e.includes("\\"),o=e.includes("'");if(s||r||n||i){let l="";for(let c of e){let u=c.charCodeAt(0);c===`
654
+ `?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 o?`"${e.replace(/([\\$`"])/g,"\\$1")}"`:`'${e}'`}async function Di(e,t,s){if(!e.state.options.xtrace)return"";let r=await xi(e),n=[t,...s],i=Oa(n);return`${r}${i}
655
+ `}async function Ri(e,t,s){return e.state.options.xtrace?`${await xi(e)}${t}=${s}
656
+ `:""}function xa(e){return e.type==="SimpleCommand"&&e.name===null&&e.assignments.length>0&&e.args.length===0}async function Ii(e,t,s){let r=t.timed?Bs():0,n="",i=z,o=0,a=[],l="",c=t.commands.length>1,u=e.state.lastArg;for(let d=0;d<t.commands.length;d++){let h=t.commands[d],m=d===t.commands.length-1,p=d===0;c&&(e.state.lastArg="",p||(e.state.groupStdin=void 0));let b=c&&(!m||!e.state.shoptOptions.lastpipe&&!xa(h))?new Map(e.state.env):null,g,O=e.state.pipelineStdinProvided;e.state.pipelineStdinProvided=c&&!p;try{g=await s(h,n)}catch(v){if(v instanceof Nt){if(t.commands.length===1)throw v;g={stdout:v.stdout,stderr:v.stderr,exitCode:1}}else if(v instanceof G&&t.commands.length>1)g={stdout:v.stdout,stderr:v.stderr,exitCode:v.exitCode};else if(v instanceof we&&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),a.push(g.exitCode),g.exitCode!==0&&(o=g.exitCode),m?i=g:(t.pipeStderr?.[d]??!1?n=Ue(g.stderr)+Ht(g):(n=Ht(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<a.length;d++)e.state.env.set(`PIPESTATUS_${d}`,String(a[d]));e.state.env.set("PIPESTATUS__length",String(a.length))}if(e.state.options.pipefail&&o!==0&&(i={...i,exitCode:o}),t.negated&&(i={...i,exitCode:i.exitCode===0?1:0}),t.timed){let h=(Bs()-r)/1e3,m=Math.floor(h/60),p=h%60,y;t.timePosix?y=`real ${h.toFixed(2)}
657
+ user 0.00
658
+ sys 0.00
659
+ `:y=`
660
+ real ${`${m}m${p.toFixed(3)}s`}
661
+ user 0m0.000s
662
+ sys 0m0.000s
663
+ `,i={...i,stderr:i.stderr+y}}return c&&!e.state.shoptOptions.lastpipe&&(e.state.lastArg=u),i}async function Li(e,t){let s=new Map,r="";for(let n of t.assignments){let i=n.name;if(n.array){let u=await Da(e,t,i,n.array,n.append,s);if(u.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:u.error};if(r+=u.xtraceOutput,u.continueToNext)continue}let o=n.value?await x(e,n.value):"";if(i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[\]$/))return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:_("",`bash: ${i}: bad array subscript
664
+ `,1)};let l=i.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);if(l){let u=await Ma(e,t,l[1],l[2],o,n.append,s);if(u.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:u.error};if(u.continueToNext)continue}let c=await za(e,t,i,o,n.append,s);if(c.error)return{continueToNext:!1,xtraceOutput:r,tempAssignments:s,error:c.error};r+=c.xtraceOutput,c.continueToNext}return{continueToNext:!1,xtraceOutput:r,tempAssignments:s}}async function Da(e,t,s,r,n,i){let o="";if(/\[.+\]$/.test(s))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${s}: cannot assign list to array member
665
+ `,1)};if($e(e,s)){let u=fn(e,s);if(u===void 0||u==="")throw new G(1,"","");let f=Ke(e,s);if(f&&/^[a-zA-Z_][a-zA-Z0-9_]*\[@\]$/.test(f))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${s}: cannot assign list to array member
666
+ `,1)}}if(st(e,s)){if(t.name)return o+=`bash: ${s}: readonly variable
667
+ `,{continueToNext:!0,xtraceOutput:o};let u=se(e,s);if(u)return{continueToNext:!1,xtraceOutput:"",error:u}}let a=e.state.associativeArrays?.has(s),l=Ra(r),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(a&&l?await Ia(e,t,s,r,n,c,u=>{o+=u}):l?await La(e,s,r,n,c):await Fa(e,s,r,n,c),t.name){i.set(s,e.state.env.get(s));let f=`(${r.map(d=>Xt(d)).join(" ")})`;e.state.env.set(s,f)}return{continueToNext:!0,xtraceOutput:o}}function Ra(e){return e.some(t=>{if(t.parts.length>=2){let s=t.parts[0],r=t.parts[1];if(s.type!=="Glob"||!s.pattern.startsWith("["))return!1;if(s.pattern==="["&&(r.type==="DoubleQuoted"||r.type==="SingleQuoted")){if(t.parts.length<3)return!1;let n=t.parts[2];return n.type!=="Literal"?!1:n.value.startsWith("]=")||n.value.startsWith("]+=")}return r.type!=="Literal"?!1:r.value.startsWith("]")?r.value.startsWith("]=")||r.value.startsWith("]+="):s.pattern.endsWith("]")?r.value.startsWith("=")||r.value.startsWith("+="):!1}return!1})}async function Ia(e,t,s,r,n,i,o){let a=[];for(let l of r){let c=Us(l);if(c){let{key:u,valueParts:f,append:d}=c,h;f.length>0?h=await x(e,{type:"Word",parts:f}):h="",h=X(e,h),a.push({type:"keyed",key:u,value:h,append:d})}else{let u=await x(e,l);a.push({type:"invalid",expandedValue:u})}}n||i();for(let l of a)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;o(`bash: line ${c}: ${s}: ${l.expandedValue}: must use subscript when assigning associative array
668
+ `)}}async function La(e,t,s,r,n){let i=[];for(let a of s){let l=Us(a);if(l){let{key:c,valueParts:u,append:f}=l,d;u.length>0?d=await x(e,{type:"Word",parts:u}):d="",d=X(e,d),i.push({type:"keyed",indexExpr:c,value:d,append:f})}else{let c=await Ie(e,a);i.push({type:"non-keyed",values:c.values})}}r||n();let o=0;for(let a of i)if(a.type==="keyed"){let l;try{let c=new B,u=ee(c,a.indexExpr);l=await U(e,u.expression,!1)}catch{if(/^-?\d+$/.test(a.indexExpr))l=Number.parseInt(a.indexExpr,10);else{let c=e.state.env.get(a.indexExpr);l=c?Number.parseInt(c,10):0,Number.isNaN(l)&&(l=0)}}if(a.append){let c=e.state.env.get(`${t}_${l}`)??"";e.state.env.set(`${t}_${l}`,c+a.value)}else e.state.env.set(`${t}_${l}`,a.value);o=l+1}else for(let l of a.values)e.state.env.set(`${t}_${o++}`,l)}async function Fa(e,t,s,r,n){let i=[];for(let a of s){let l=await Ie(e,a);i.push(...l.values)}let o=0;if(r){let a=Ae(e,t);if(a.length>0)o=Math.max(...a.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),o=1)}}else n();for(let a=0;a<i.length;a++)e.state.env.set(`${t}_${o+a}`,i[a]);r||e.state.env.set(`${t}__length`,String(i.length))}async function Ma(e,t,s,r,n,i,o){let a=s;if($e(e,s)){let f=Ke(e,s);if(f&&f!==s){if(f.includes("["))return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: \`${f}': not a valid identifier
669
+ `,1)};a=f}}if(st(e,a)){if(t.name)return{continueToNext:!0,xtraceOutput:""};let f=se(e,a);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let l=e.state.associativeArrays?.has(a),c;if(l)c=await Fi(e,a,r);else{let f=await Wa(e,a,r);if(f.error)return{continueToNext:!1,xtraceOutput:"",error:f.error};c=`${a}_${f.index}`}let u=i?(e.state.env.get(c)||"")+n:n;if(t.name)o.set(c,e.state.env.get(c)),e.state.env.set(c,u);else{let f=yt(e,a);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 Fi(e,t,s){let r;if(s.startsWith("'")&&s.endsWith("'"))r=s.slice(1,-1);else if(s.startsWith('"')&&s.endsWith('"')){let n=s.slice(1,-1),o=new B().parseWordFromString(n,!0,!1);r=await x(e,o)}else if(s.includes("$")){let i=new B().parseWordFromString(s,!1,!1);r=await x(e,i)}else r=s;return`${t}_${r}`}async function Wa(e,t,s){let r=s;s.startsWith('"')&&s.endsWith('"')&&s.length>=2&&(r=s.slice(1,-1));let n;if(/^-?\d+$/.test(r))n=Number.parseInt(r,10);else{try{let i=new B,o=ee(i,r);n=await U(e,o.expression,!1)}catch(i){if(i instanceof He){let l=`bash: line ${e.state.currentLine}: ${s}: ${i.message}
670
+ `;if(i.fatal)throw new G(1,"",l);return{index:0,error:_("",l,1)}}let o=e.state.env.get(s);n=o?Number.parseInt(o,10):0}Number.isNaN(n)&&(n=0)}if(n<0){let i=Ae(e,t);if(i.length===0){let a=e.state.currentLine;return{index:0,error:_("",`bash: line ${a}: ${t}[${s}]: bad array subscript
671
+ `,1)}}if(n=Math.max(...i.map(([a])=>typeof a=="number"?a:0))+1+n,n<0){let a=e.state.currentLine;return{index:0,error:_("",`bash: line ${a}: ${t}[${s}]: bad array subscript
672
+ `,1)}}}return{index:n}}async function za(e,t,s,r,n,i){let o="",a=s,l=null;if($e(e,s)){let f=dn(e,s,r);if(f===void 0)return{continueToNext:!1,xtraceOutput:"",error:_("",`bash: ${s}: circular name reference
673
+ `,1)};if(f===null)return{continueToNext:!0,xtraceOutput:""};a=f;let d=a.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\[(.+)\]$/);d&&(l={arrayName:d[1],subscriptExpr:d[2]},a=d[1])}if(st(e,a)){if(t.name)return o+=`bash: ${a}: readonly variable
674
+ `,{continueToNext:!0,xtraceOutput:o};let f=se(e,a);if(f)return{continueToNext:!1,xtraceOutput:"",error:f}}let c;if(It(e,a))try{let f=new B;if(n){let h=`(${e.state.env.get(a)||"0"}) + (${r})`,m=ee(f,h);c=String(await U(e,m.expression))}else{let d=ee(f,r);c=String(await U(e,d.expression))}}catch{c="0"}else{let{isArray:f}=await import("./chunks/expansion-2O6WLRBD.js"),d=f(e,a)?`${a}_0`:a;c=n?(e.state.env.get(d)||"")+r:r}c=vt(e,a,c),o+=await Ri(e,a,c);let u=a;if(l)u=await Va(e,l);else{let{isArray:f}=await import("./chunks/expansion-2O6WLRBD.js");f(e,a)&&(u=`${a}_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(a)),e.state.tempEnvBindings?.some(f=>f.has(a))&&(e.state.mutatedTempEnvVars=e.state.mutatedTempEnvVars||new Set,e.state.mutatedTempEnvVars.add(a))),{continueToNext:!1,xtraceOutput:o}}async function Va(e,t){let{arrayName:s,subscriptExpr:r}=t;if(e.state.associativeArrays?.has(s))return Fi(e,s,r);let i;if(/^-?\d+$/.test(r))i=Number.parseInt(r,10);else{try{let o=new B,a=ee(o,r);i=await U(e,a.expression,!1)}catch{let o=e.state.env.get(r);i=o?Number.parseInt(o,10):0}Number.isNaN(i)&&(i=0)}if(i<0){let o=Ae(e,s);o.length>0&&(i=Math.max(...o.map(l=>l[0]))+1+i)}return`${s}_${i}`}async function Mi(e,t,s,r){let n=await Ce(e,t.redirections);if(n)return n;let i=new Map(e.state.env),o=e.state.cwd,a={...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(E=>new Map(E)),u){e.state.localVarStack=new Map;for(let[E,N]of u.entries())e.state.localVarStack.set(E,N.map(P=>({...P})))}f&&(e.state.localVarDepth=new Map(f)),d&&(e.state.fullyUnsetLocals=new Map(d));let h=e.state.loopDepth,m=e.state.parentHasLoopContext;e.state.parentHasLoopContext=h>0,e.state.loopDepth=0;let p=e.state.lastArg,y=e.state.bashPid;e.state.bashPid=e.state.nextVirtualPid++;let b=s,g=!1;for(let E of t.redirections)if((E.operator==="<<"||E.operator==="<<-")&&E.target.type==="HereDoc"){let N=E.target,P=await x(e,N.content);N.stripTabs&&(P=P.split(`
675
+ `).map(T=>T.replace(/^\t+/,"")).join(`
676
+ `)),b=P,g=!0}else if(E.operator==="<<<"&&E.target.type==="Word")b=`${await x(e,E.target)}
677
+ `,g=!0;else if(E.operator==="<"&&E.target.type==="Word")try{let N=await x(e,E.target),P=e.fs.resolvePath(e.state.cwd,N);b=await e.fs.readFile(P),g=!0}catch{let N=await x(e,E.target);return _("",`bash: ${N}: No such file or directory
678
+ `,1)}let O=e.state.groupStdin;(b||g)&&(e.state.groupStdin=b);let v="",$="",w=0,S=()=>{e.state.env=i,e.state.cwd=o,e.state.options=a,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=m,e.state.groupStdin=O,e.state.bashPid=y,e.state.lastArg=p};try{for(let E of t.body){let N=await r(E);v+=N.stdout,$+=N.stderr,w=N.exitCode}}catch(E){if(S(),E instanceof Q)throw E;if(E instanceof qe){v+=E.stdout,$+=E.stderr;let P=_(v,$,0);return Z(e,P,t.redirections)}if(E instanceof ae||E instanceof he){v+=E.stdout,$+=E.stderr;let P=_(v,$,0);return Z(e,P,t.redirections)}if(E instanceof G){v+=E.stdout,$+=E.stderr;let P=_(v,$,E.exitCode);return Z(e,P,t.redirections)}if(E instanceof ue){v+=E.stdout,$+=E.stderr;let P=_(v,$,E.exitCode);return Z(e,P,t.redirections)}if(E instanceof we){let P=_(v+E.stdout,$+E.stderr,E.exitCode);return Z(e,P,t.redirections)}let N=_(v,`${$}${xe(E)}
679
+ `,1);return Z(e,N,t.redirections)}S();let C=_(v,$,w);return Z(e,C,t.redirections)}async function Wi(e,t,s,r){let n="",i="",o=0,a=await gs(e,t.redirections);if(a)return a;let l=s;for(let f of t.redirections)if((f.operator==="<<"||f.operator==="<<-")&&f.target.type==="HereDoc"){let d=f.target,h=await x(e,d.content);d.stripTabs&&(h=h.split(`
680
+ `).map(p=>p.replace(/^\t+/,"")).join(`
681
+ `));let m=f.fd??0;m!==0?(e.state.fileDescriptors||(e.state.fileDescriptors=new Map),ce(e),e.state.fileDescriptors.set(m,h)):l=h}else if(f.operator==="<<<"&&f.target.type==="Word")l=`${await x(e,f.target)}
682
+ `;else if(f.operator==="<"&&f.target.type==="Word")try{let d=await x(e,f.target),h=e.fs.resolvePath(e.state.cwd,d);l=await e.fs.readFile(h)}catch{let d=await x(e,f.target);return _("",`bash: ${d}: No such file or directory
683
+ `,1)}let c=e.state.groupStdin;l&&(e.state.groupStdin=l);try{for(let f of t.body){let d=await r(f);n+=d.stdout,i+=d.stderr,o=d.exitCode}}catch(f){if(e.state.groupStdin=c,f instanceof Q)throw f;if(Gt(f)||f instanceof we||f instanceof G)throw f.prependOutput(n,i),f;return _(n,`${i}${xe(f)}
684
+ `,1)}e.state.groupStdin=c;let u=_(n,i,o);return Z(e,u,t.redirections)}async function zi(e,t,s,r,n){let i;try{i=await e.fs.readFile(t)}catch{return A(`bash: ${t}: No such file or directory
685
+ `,127)}if(i.startsWith("#!")){let y=i.indexOf(`
686
+ `);y!==-1&&(i=i.slice(y+1))}let o=new Map(e.state.env),a=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,m=e.state.currentSource;e.state.parentHasLoopContext=c>0,e.state.loopDepth=0,e.state.bashPid=e.state.nextVirtualPid++,r&&(e.state.groupStdin=r),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 p=()=>{e.state.env=o,e.state.cwd=a,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=m};try{let b=new B().parse(i),g=await n(b);return p(),g}catch(y){if(p(),y instanceof G||y instanceof Q)throw y;if(y.name==="ParseException")return A(`bash: ${t}: ${y.message}
687
+ `);throw y}}function ks(e){return e?e.parts.some(Vi):!1}function Vi(e){if(e.type==="CommandSubstitution")return!0;if(e.type==="DoubleQuoted")return e.parts.some(Vi);if(e.type==="ParameterExpansion"){let t=e.operation;if(t&&"word"in t)return ks(t.word);if(t&&"replacement"in t)return ks(t.replacement)}return!1}var Mt=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||de.isInSandboxedContext())return;let s=`interpreter ${t} attempted outside defense context`;throw new We(s,{timestamp:Date.now(),type:"missing_defense_context",message:s,path:"DefenseInDepthBox.context",stack:new Error().stack,executionId:de.getCurrentExecutionId()})}buildExportedEnv(){let t=this.ctx.state.exportedVars,s=this.ctx.state.tempExportedVars,r=new Set;if(t)for(let i of t)r.add(i);if(s)for(let i of s)r.add(i);if(r.size===0)return Object.create(null);let n=Object.create(null);for(let i of r){let o=this.ctx.state.env.get(i);o!==void 0&&(n[i]=o)}return n}async executeScript(t){this.assertDefenseContext("execution");let s="",r="",n=0,i=this.ctx.limits.maxOutputSize,o=(a,l)=>{s.length+r.length+a.length+l.length>i&&Le(`total output size exceeded (>${i} bytes), increase executionLimits.maxOutputSize`,"output_size"),s+=a,r+=l};for(let a of t.statements)try{let l=await this.executeStatement(a);o(l.stdout,l.stderr),n=l.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n))}catch(l){if(l instanceof G)throw l.prependOutput(s,r),l;if(l instanceof ve)return o(l.stdout,l.stderr),n=l.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:Ze(this.ctx.state.env)};if(l instanceof Te)return o(l.stdout,l.stderr),n=l.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:Ze(this.ctx.state.env)};if(l instanceof Q)throw l;if(l instanceof we)return o(l.stdout,l.stderr),n=l.exitCode,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:Ze(this.ctx.state.env)};if(l instanceof Ws)return o(l.stdout,l.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n)),{stdout:s,stderr:r,exitCode:n,env:Ze(this.ctx.state.env)};if(l instanceof Nt)throw l.prependOutput(s,r),l;if(l instanceof He){if(l.message.includes("substring expression < 0"))throw l.prependOutput(s,r),l;o(l.stdout,l.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(l instanceof rn){o(l.stdout,l.stderr),n=1,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n));continue}if(l instanceof ae||l instanceof he){if(this.ctx.state.loopDepth>0)throw l.prependOutput(s,r),l;o(l.stdout,l.stderr);continue}throw l instanceof ue&&l.prependOutput(s,r),l}return{stdout:s,stderr:r,exitCode:n,env:Ze(this.ctx.state.env)}}async executeUserScript(t,s,r=""){return zi(this.ctx,t,s,r,n=>this.executeScript(n))}async executeStatement(t){if(this.assertDefenseContext("statement"),this.ctx.state.signal?.aborted)throw new Zt;if(this.ctx.state.commandCount++,this.ctx.state.commandCount>this.ctx.limits.maxCommandCount&&Le(`too many commands executed (>${this.ctx.limits.maxCommandCount}), increase executionLimits.maxCommandCount`,"commands"),t.deferredError)throw new Kt(t.deferredError.message,t.line??1,1);if(this.ctx.state.options.noexec)return z;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="",r="";this.ctx.state.options.verbose&&!this.ctx.state.suppressVerbose&&t.sourceText&&(r+=`${t.sourceText}
688
+ `);let n=0,i=-1,o=!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==="&&"&&n!==0||f==="||"&&n===0)continue;let d=await this.executePipeline(u);s+=d.stdout,r+=d.stderr,n=d.exitCode,i=c,o=u.negated,this.ctx.state.lastExitCode=n,this.ctx.state.env.set("?",String(n))}let a=i<t.pipelines.length-1,l=this.ctx.state.errexitSafe;if(this.ctx.state.errexitSafe=a||o||l,this.ctx.state.options.errexit&&n!==0&&i===t.pipelines.length-1&&!o&&!this.ctx.state.inCondition&&!l)throw new we(n,s,r);return _(s,r,n)}async executePipeline(t){if(t.timed&&this.ctx.rejectTimedPipelines)throw new Error("Unsupported shell syntax: timed pipelines");return Ii(this.ctx,t,(s,r)=>this.executeCommand(s,r))}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 Pi(this.ctx,t);case"For":return Ai(this.ctx,t);case"CStyleFor":return ki(this.ctx,t);case"While":return Ci(this.ctx,t,s);case"Until":return _i(this.ctx,t);case"Case":return Ni(this.ctx,t);case"Subshell":return this.executeSubshell(t,s);case"Group":return this.executeGroup(t,s);case"FunctionDef":return Kn(this.ctx,t);case"ArithmeticCommand":return this.executeArithmeticCommand(t);case"ConditionalCommand":return this.executeConditionalCommand(t);default:return z}}async executeSimpleCommand(t,s){try{return await this.executeSimpleCommandInner(t,s)}catch(r){if(r instanceof qt)return A(r.stderr);throw r}}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 C=this.expandAlias(w);if(C===w)break;w=C,S--}this.aliasExpansionStack.clear(),w!==t&&(t=w)}this.ctx.state.expansionStderr="";let r=await Li(this.ctx,t);if(r.error)return r.error;let n=r.tempAssignments,i=r.xtraceOutput;if(!t.name){if(t.redirections.length>0){let C=await Ce(this.ctx,t.redirections);if(C)return C;let E=_("",i,0);return Z(this.ctx,E,t.redirections)}this.ctx.state.lastArg="";let w=(this.ctx.state.expansionStderr||"")+i;this.ctx.state.expansionStderr="";let S=t.assignments.some(C=>ks(C.value)||C.array?.some(E=>ks(E)));return _("",w,S?this.ctx.state.lastExitCode:0)}let o=t.name&&Kr(t.name,["local","declare","typeset","export","readonly"]),a=Array.from(n.keys());if(a.length>0&&!o){this.ctx.state.tempExportedVars=this.ctx.state.tempExportedVars||new Set;for(let w of a)this.ctx.state.tempExportedVars.add(w)}let l=await gs(this.ctx,t.redirections);if(l){for(let[w,S]of n)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,C=await x(this.ctx,S.content);S.stripTabs&&(C=C.split(`
689
+ `).map(N=>N.replace(/^\t+/,"")).join(`
690
+ `)),C=Ue(C);let E=w.fd??0;E!==0?(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),ce(this.ctx),this.ctx.state.fileDescriptors.set(E,C)):s=C;continue}if(w.operator==="<<<"&&w.target.type==="Word"){s=Ue(`${await x(this.ctx,w.target)}
691
+ `);continue}if(w.operator==="<"&&w.target.type==="Word")try{let S=await x(this.ctx,w.target),C=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);s=await Ut(this.ctx.fs,C)}catch{let S=await x(this.ctx,w.target);for(let[C,E]of n)E===void 0?this.ctx.state.env.delete(C):this.ctx.state.env.set(C,E);return A(`bash: ${S}: No such file or directory
692
+ `)}if(w.operator==="<&"&&w.target.type==="Word"){let S=await x(this.ctx,w.target),C=Number.parseInt(S,10);if(!Number.isNaN(C)&&this.ctx.state.fileDescriptors){let E=this.ctx.state.fileDescriptors.get(C);if(E!==void 0)if(E.startsWith("__rw__:")){let N=Oi(E);N&&(s=N.content.slice(N.position),c=C)}else E.startsWith("__file__:")||E.startsWith("__file_append__:")||(s=E)}}}let u=await x(this.ctx,t.name),f=[],d=[];if(Kr(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 xn(this.ctx,w);if(S)f.push(S),d.push(!0);else{let C=await Dn(this.ctx,w);if(C!==null)f.push(C),d.push(!0);else{let E=await Ie(this.ctx,w);for(let N of E.values)f.push(N),d.push(E.quoted)}}}else for(let w of t.args){let S=await Ie(this.ctx,w);for(let C of S.values)f.push(C),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 _("","",this.ctx.state.lastExitCode)}return A(`bash: : command not found
693
+ `,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 x(this.ctx,w.target),C=w.fd??(w.operator==="<"||w.operator==="<>"?0:1);switch(this.ctx.state.fileDescriptors||(this.ctx.state.fileDescriptors=new Map),w.operator){case">":case">|":{let E=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);await this.ctx.fs.writeFile(E,"","utf8"),ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__file__:${E}`);break}case">>":{let E=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__file_append__:${E}`);break}case"<":{let E=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let N=await this.ctx.fs.readFile(E);ce(this.ctx),this.ctx.state.fileDescriptors.set(C,N)}catch{return A(`bash: ${S}: No such file or directory
694
+ `)}break}case"<>":{let E=this.ctx.fs.resolvePath(this.ctx.state.cwd,S);try{let N=await this.ctx.fs.readFile(E);ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__rw__:${E.length}:${E}:0:${N}`)}catch{await this.ctx.fs.writeFile(E,"","utf8"),ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__rw__:${E.length}:${E}:0:`)}break}case">&":{if(S==="-")this.ctx.state.fileDescriptors.delete(C);else if(S.endsWith("-")){let E=S.slice(0,-1),N=Number.parseInt(E,10);if(!Number.isNaN(N)){let P=this.ctx.state.fileDescriptors.get(N);P!==void 0?this.ctx.state.fileDescriptors.set(C,P):this.ctx.state.fileDescriptors.set(C,`__dupout__:${N}`),this.ctx.state.fileDescriptors.delete(N)}}else{let E=Number.parseInt(S,10);Number.isNaN(E)||(ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__dupout__:${E}`))}break}case"<&":{if(S==="-")this.ctx.state.fileDescriptors.delete(C);else if(S.endsWith("-")){let E=S.slice(0,-1),N=Number.parseInt(E,10);if(!Number.isNaN(N)){let P=this.ctx.state.fileDescriptors.get(N);P!==void 0?this.ctx.state.fileDescriptors.set(C,P):this.ctx.state.fileDescriptors.set(C,`__dupin__:${N}`),this.ctx.state.fileDescriptors.delete(N)}}else{let E=Number.parseInt(S,10);Number.isNaN(E)||(ce(this.ctx),this.ctx.state.fileDescriptors.set(C,`__dupin__:${E}`))}break}}}for(let[w,S]of n)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 n.keys())this.ctx.state.tempExportedVars.delete(w);return z}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 m=await Di(this.ctx,u,f);n.size>0&&(this.ctx.state.tempEnvBindings=this.ctx.state.tempEnvBindings||[],this.ctx.state.tempEnvBindings.push(new Map(n)));let p=z,y=null,b,g=this.ctx.currentRedirections;try{let w=!0;if(t.redirections.length>0){let S=await ys(this.ctx,t.redirections);if(S.error)p=A(S.error),w=!1;else{b=S.targets;let C=await Gn(this.ctx,t.redirections,b);C?(p=C,w=!1):this.ctx.currentRedirections=Ba(t.redirections,b)}}w&&(p=await this.runCommand(u,f,d,s,!1,!1,c))}catch(w){if(w instanceof ae||w instanceof he)y=w,p=z;else throw w}finally{this.ctx.currentRedirections=g}let O=i+m;if(O&&(p={...p,stderr:O+p.stderr}),p=await Z(this.ctx,p,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=Zn(u)&&u!=="unset"&&u!=="eval";if(!this.ctx.state.options.posix||!v)for(let[w,S]of n)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 n.keys())this.ctx.state.tempExportedVars.delete(w);return n.size>0&&this.ctx.state.tempEnvBindings&&this.ctx.state.tempEnvBindings.pop(),this.ctx.state.expansionStderr&&(p={...p,stderr:this.ctx.state.expansionStderr+p.stderr},this.ctx.state.expansionStderr=""),p}async runCommand(t,s,r,n,i=!1,o=!1,a=-1){let l={ctx:this.ctx,runCommand:(u,f,d,h,m,p,y)=>this.runCommand(u,f,d,h,m,p,y),buildExportedEnv:()=>this.buildExportedEnv(),executeUserScript:(u,f,d)=>this.executeUserScript(u,f,d)},c=await $i(l,t,s,r,n,i,o,a);return c!==null?c:Si(l,t,s,n,o)}aliasExpansionStack=new Set;expandAlias(t){return er(this.ctx.state,t,this.aliasExpansionStack)}async findCommandInPath(t){return Ps(this.ctx,t)}async executeSubshell(t,s=""){return Mi(this.ctx,t,s,r=>this.executeStatement(r))}async executeGroup(t,s=""){return Wi(this.ctx,t,s,r=>this.executeStatement(r))}async executeArithmeticCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Ce(this.ctx,t.redirections);if(s)return s;try{let r=await U(this.ctx,t.expression.expression),n=J(r!==0);return this.ctx.state.expansionStderr&&(n={...n,stderr:this.ctx.state.expansionStderr+n.stderr},this.ctx.state.expansionStderr=""),Z(this.ctx,n,t.redirections)}catch(r){let n=A(`bash: arithmetic expression: ${r.message}
695
+ `);return Z(this.ctx,n,t.redirections)}}async executeConditionalCommand(t){t.line!==void 0&&(this.ctx.state.currentLine=t.line);let s=await Ce(this.ctx,t.redirections);if(s)return s;try{let r=await Qe(this.ctx,t.expression),n=J(r);return this.ctx.state.expansionStderr&&(n={...n,stderr:this.ctx.state.expansionStderr+n.stderr},this.ctx.state.expansionStderr=""),Z(this.ctx,n,t.redirections)}catch(r){let n=r instanceof He?1:2,i=A(`bash: conditional expression: ${r.message}
696
+ `,n);return Z(this.ctx,i,t.redirections)}}};function Ba(e,t){let s=[];for(let r=0;r<e.length;r++){let n=e[r],i=t.get(r);i!==void 0&&s.push({fd:n.fd,operator:n.operator,target:i})}return s}var re={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 Bi(e){return e?{maxCallDepth:e.maxCallDepth??re.maxCallDepth,maxCommandCount:e.maxCommandCount??re.maxCommandCount,maxLoopIterations:e.maxLoopIterations??re.maxLoopIterations,maxAwkIterations:e.maxAwkIterations??re.maxAwkIterations,maxSedIterations:e.maxSedIterations??re.maxSedIterations,maxJqIterations:e.maxJqIterations??re.maxJqIterations,maxSqliteTimeoutMs:e.maxSqliteTimeoutMs??re.maxSqliteTimeoutMs,maxPythonTimeoutMs:e.maxPythonTimeoutMs??re.maxPythonTimeoutMs,maxJsTimeoutMs:e.maxJsTimeoutMs??re.maxJsTimeoutMs,maxGlobOperations:e.maxGlobOperations??re.maxGlobOperations,maxStringLength:e.maxStringLength??re.maxStringLength,maxArrayElements:e.maxArrayElements??re.maxArrayElements,maxHeredocSize:e.maxHeredocSize??re.maxHeredocSize,maxSubstitutionDepth:e.maxSubstitutionDepth??re.maxSubstitutionDepth,maxBraceExpansionResults:e.maxBraceExpansionResults??re.maxBraceExpansionResults,maxOutputSize:e.maxOutputSize??re.maxOutputSize,maxFileDescriptors:e.maxFileDescriptors??re.maxFileDescriptors,maxSourceDepth:e.maxSourceDepth??re.maxSourceDepth}:{...re}}import{lookup as Qa}from"node:dns";function Xr(e){try{let t=new URL(e);return{origin:t.origin,pathname:t.pathname,href:t.href}}catch{return null}}function ja(e){let t=Xr(e);return t?{origin:t.origin,pathPrefix:t.pathname}:null}function ji(e){if(e.includes("\\"))return!0;let t=e.toLowerCase();return t.includes("%2f")||t.includes("%5c")}function Ua(e,t){return t==="/"||t===""?!0:t.endsWith("/")?e.startsWith(t):e===t||e.startsWith(`${t}/`)}function Yr(e,t){let s=Xr(e);if(!s)return!1;let r=ja(t);return!r||s.origin!==r.origin||r.pathPrefix!=="/"&&r.pathPrefix!==""&&ji(s.pathname)?!1:Ua(s.pathname,r.pathPrefix)}function Ui(e){return typeof e=="string"?e:e.url}function Hi(e,t){return!t||t.length===0?!1:t.some(s=>Yr(e,Ui(s)))}function Qr(e){let t=Ha(e);if(t==="localhost"||t.endsWith(".localhost"))return!0;let s=qi(t);if(s)return Cs(s);let r=Za(t);return r?Ga(r):!1}function Ha(e){let t=e.trim().toLowerCase();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function qa(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 r=Number.parseInt(s,t);return!Number.isFinite(r)||r<0?null:r}function qi(e){let t=e.split(".");if(t.length===0||t.length>4)return null;let s=t.map(l=>qa(l));if(s.some(l=>l===null))return null;let r=s;if(t.length===1){let l=r[0];return l>4294967295?null:[l>>>24&255,l>>>16&255,l>>>8&255,l&255]}if(t.length===2){let[l,c]=r;return l>255||c>16777215?null:[l,c>>>16&255,c>>>8&255,c&255]}if(t.length===3){let[l,c,u]=r;return l>255||c>255||u>65535?null:[l,c,u>>>8&255,u&255]}let[n,i,o,a]=r;return n>255||i>255||o>255||a>255?null:[n,i,o,a]}function Za(e){let t=e,s=null;if(t.includes(".")){let p=t.lastIndexOf(":");if(p<0)return null;let y=t.slice(p+1),b=qi(y);if(!b)return null;s=b,t=t.slice(0,p)}let r=t.includes("::")?t.split("::").length-1:0;if(r>1)return null;let[n,i]=t.split("::"),o=n?n.split(":").filter(Boolean):[],a=i?i.split(":").filter(Boolean):[],l=p=>/^[0-9a-f]{1,4}$/i.test(p)?Number.parseInt(p,16):null,c=o.map(l),u=a.map(l);if(c.some(p=>p===null)||u.some(p=>p===null))return null;let f=s?2:0,d=c.length+u.length+f,h=0;if(r===1){if(h=8-d,h<0)return null}else if(d!==8)return null;let m=[...c,...new Array(h).fill(0),...u];return s&&(m.push(s[0]<<8|s[1]),m.push(s[2]<<8|s[3])),m.length===8?m:null}function Cs(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 Ga(e){if(e.every(n=>n===0)||e.slice(0,7).every(n=>n===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 n=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return Cs(n)}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 n=[e[6]>>>8&255,e[6]&255,e[7]>>>8&255,e[7]&255];return Cs(n)}if(e[0]===100&&e[1]===65435&&e[2]===1)return!0;if(e[0]===8194){let n=[e[1]>>>8&255,e[1]&255,e[2]>>>8&255,e[2]&255];return Cs(n)}return!1}function Zi(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 r=Ui(s);if(!Xr(r)){t.push(`Invalid URL in allow-list: "${r}" - must be a valid URL with scheme and host (e.g., "https://example.com")`);continue}let i=new URL(r);if(i.protocol!=="http:"&&i.protocol!=="https:"){t.push(`Only http and https URLs are allowed in allow-list: "${r}"`);continue}if(!i.hostname){t.push(`Allow-list entry must include a hostname: "${r}"`);continue}if(i.pathname!=="/"&&i.pathname!==""&&ji(i.pathname)){t.push(`Allow-list entry contains ambiguous path separators: "${r}"`);continue}(i.search||i.hash)&&t.push(`Query strings and fragments are ignored in allow-list entries: "${r}"`)}return t}var Ka=typeof __BROWSER__<"u"&&__BROWSER__,Et=null,_s=null,Gi=!1;function Xa(){if(Et===null&&!Ka)try{let e=Ms("node:async_hooks");_s=Ms("node:dns"),Et=new e.AsyncLocalStorage}catch{}}function Ya(){if(Gi||(Xa(),!Et||!_s))return;Gi=!0;let e=Et,t=_s.lookup;function s(...r){let n=r[0],i=e.getStore();if(typeof n!="string"||!i||i.hostname.toLowerCase()!==n.toLowerCase())return t.apply(this,r);let o={},a;if(r.length===2)a=r[1];else if(r.length>=3){let c=r[1];typeof c=="number"?o={family:c}:c&&typeof c=="object"&&(o=c),a=r[2]}if(typeof a!="function")return t.apply(this,r);let l=a;if(o.family!==void 0&&o.family!==0&&o.family!==i.family){let c=new Error(`ENOTFOUND ${n}`);c.code="ENOTFOUND",c.errno=-3008,c.syscall="getaddrinfo",c.hostname=n,process.nextTick(()=>l(c));return}process.nextTick(()=>{o.all?l(null,[{address:i.address,family:i.family}]):l(null,i.address,i.family)})}Object.defineProperty(_s,"lookup",{value:s,writable:!0,configurable:!0})}function Ki(e,t){return Ya(),Et?Et.run(e,t):t()}var _e=class extends Error{constructor(t,s){let r=s??"URL not in allow-list";super(`Network access denied: ${r}: ${t}`),this.name="NetworkAccessDeniedError"}},$t=class extends Error{constructor(t){super(`Too many redirects (max: ${t})`),this.name="TooManyRedirectsError"}},St=class extends Error{constructor(t){super(`Redirect target not in allow-list: ${t}`),this.name="RedirectNotAllowedError"}},Ns=class extends Error{constructor(t,s){super(`HTTP method '${t}' not allowed. Allowed methods: ${s.join(", ")}`),this.name="MethodNotAllowedError"}},Pt=class extends Error{constructor(t){super(`Response body too large (max: ${t} bytes)`),this.name="ResponseTooLargeError"}};function Ja(e){return new Promise((t,s)=>{Qa(e,{all:!0},(r,n)=>{r?s(r):t(n)})})}var el=20,tl=3e4,sl=10485760,rl=["GET","HEAD"],nl=new Set(["GET","HEAD","OPTIONS"]),il=new Set([301,302,303,307,308]);function Jr(e){let t=e.allowedUrlPrefixes??[];if(!e.dangerouslyAllowFullInternetAccess){let h=Zi(t);if(h.length>0)throw new Error(`Invalid network allow-list:
697
+ ${h.join(`
698
+ `)}`)}let s=[];for(let h of t)typeof h=="object"&&h.transform&&h.transform.length>0&&s.push(h);function r(h){if(s.length===0)return null;let m=null;for(let p of s)if(Yr(h,p.url)&&p.transform){m||(m=new Headers);for(let y of p.transform)for(let[b,g]of Object.entries(y.headers))m.set(b,g)}return m}let n=e.maxRedirects??el,i=e.timeoutMs??tl,o=e.maxResponseSize??sl,a=e.dangerouslyAllowFullInternetAccess?["GET","HEAD","POST","PUT","DELETE","PATCH","OPTIONS"]:e.allowedMethods??rl,l=e.denyPrivateRanges??(typeof process<"u"&&process.env?.NODE_ENV==="production"),c=e._dnsResolve??Ja;async function u(h){if(!e.dangerouslyAllowFullInternetAccess&&!Hi(h,t))throw new _e(h);if(l)try{let m=new URL(h);if(Qr(m.hostname))throw new _e(h,"private/loopback IP address blocked");let p=m.hostname;if(/[a-zA-Z]/.test(p))try{let b=await c(p);for(let{address:O}of b)if(Qr(O))throw new _e(h,"hostname resolves to private/loopback IP address");let g=b[0];if(g)return{hostname:p,address:g.address,family:g.family===6?6:4}}catch(b){if(b instanceof _e)throw b;let g=b?.code;if(!(g==="ENOTFOUND"||g==="ENODATA"))throw new _e(h,"DNS resolution failed for private IP check")}}catch(m){if(m instanceof _e)throw m}return null}function f(h){if(e.dangerouslyAllowFullInternetAccess)return;let m=h.toUpperCase();if(!a.includes(m))throw new Ns(m,a)}async function d(h,m={}){let p=m.method?.toUpperCase()??"GET",y=await u(h);f(p);let b=h,g=0,O=m.followRedirects??!0,v=m.timeoutMs!==void 0?Math.min(m.timeoutMs,i):i;for(;;){let $=new AbortController,w=Vt(()=>$.abort(),v);try{let S=await de.runTrustedAsync(()=>{let C=r(b),E=ol(m.headers,C),N={method:p,headers:E,signal:$.signal,redirect:"manual"};return m.body&&!nl.has(p)&&(N.body=m.body),y?Ki(y,()=>fetch(b,N)):fetch(b,N)});if(il.has(S.status)&&O){let C=S.headers.get("location");if(!C)return await Xi(S,b,o);let E=new URL(C,b).href;try{y=await u(E)}catch{throw new St(E)}if(g++,g>n)throw new $t(n);b=E;continue}return await Xi(S,b,o)}finally{Bt(w)}}}return d}function ol(e,t){if(!e&&!t)return;if(!t)return e;let s=e instanceof Headers?new Headers(e):new Headers(e);for(let[r,n]of t)s.set(r,n);return s}async function Xi(e,t,s){let r=Object.create(null);if(e.headers.forEach((i,o)=>{r[o.toLowerCase()]=i}),s>0){let i=e.headers.get("content-length");if(i){let o=parseInt(i,10);if(!Number.isNaN(o)&&o>s)throw new Pt(s)}}let n;if(s>0&&e.body){let i=e.body.getReader(),o=[],a=0;for(;;){let{done:c,value:u}=await i.read();if(c)break;if(u){if(a+=u.byteLength,a>s)throw i.cancel(),new Pt(s);o.push(u)}}n=new Uint8Array(a);let l=0;for(let c of o)n.set(c,l),l+=c.byteLength}else{let i=await e.arrayBuffer();if(s>0&&i.byteLength>s)throw new Pt(s);n=new Uint8Array(i)}return{status:e.status,statusText:e.statusText,headers:r,body:n,url:t}}function Wt(e){return at(e)}function at(e){return e.statements.map(Yi).join(`
699
+ `)}function Yi(e){let t=[];for(let r=0;r<e.pipelines.length;r++)t.push(al(e.pipelines[r])),r<e.operators.length&&t.push(e.operators[r]);let s=t.join(" ");return e.background&&(s+=" &"),s}function al(e){let t=[];e.timed&&t.push(e.timePosix?"time -p":"time"),e.negated&&t.push("!");let s=[];for(let n=0;n<e.commands.length;n++)if(s.push(Qi(e.commands[n])),n<e.commands.length-1){let i=e.pipeStderr?.[n];s.push(i?"|&":"|")}return(t.length>0?`${t.join(" ")} `:"")+s.join(" ")}function Qi(e){switch(e.type){case"SimpleCommand":return ll(e);case"If":return gl(e);case"For":return wl(e);case"CStyleFor":return vl(e);case"While":return bl(e);case"Until":return El(e);case"Case":return $l(e);case"Subshell":return Pl(e);case"Group":return Al(e);case"ArithmeticCommand":return kl(e);case"ConditionalCommand":return Cl(e);case"FunctionDef":return _l(e);default:{let t=e;throw new Error(`Unsupported command type: ${t.type}`)}}}function ll(e){let t=[];for(let s of e.assignments)t.push(cl(s));e.name&&t.push(ie(e.name));for(let s of e.args)t.push(ie(s));for(let s of e.redirections)t.push(to(s));return t.join(" ")}function cl(e){let t=e.append?"+=":"=";if(e.array){let s=e.array.map(ie).join(" ");return`${e.name}${t}(${s})`}return e.value?`${e.name}${t}${ie(e.value)}`:`${e.name}${t}`}function ie(e){return e.parts.map(t=>Os(t,!1)).join("")}function tt(e){return e.parts.map(t=>Os(t,!0)).join("")}function Os(e,t){switch(e.type){case"Literal":return t?fl(e.value):ul(e.value);case"SingleQuoted":return`'${e.value}'`;case"DoubleQuoted":return`"${e.parts.map(s=>Os(s,!0)).join("")}"`;case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return Ji(e);case"CommandSubstitution":return e.legacy?`\`${at(e.body)}\``:`$(${at(e.body)})`;case"ArithmeticExpansion":return`$((${H(e.expression.expression)}))`;case"ProcessSubstitution":return e.direction==="input"?`<(${at(e.body)})`:`>(${at(e.body)})`;case"BraceExpansion":return ml(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 ul(e){return e.replace(/[\s\\'"`!|&;()<>{}[\]*?~#]/g,"\\$&")}function fl(e){return e.replace(/[$`"\\]/g,"\\$&")}function dl(e,t){return e.parts.map(s=>hl(s,t)).join("")}function hl(e,t){switch(e.type){case"Literal":return t?e.value:e.value.replace(/[$`]/g,"\\$&");case"Escaped":return`\\${e.value}`;case"ParameterExpansion":return Ji(e);case"CommandSubstitution":return e.legacy?`\`${at(e.body)}\``:`$(${at(e.body)})`;case"ArithmeticExpansion":return`$((${H(e.expression.expression)}))`;default:return Os(e,!1)}}function Ji(e){return e.operation?`\${${eo(e.parameter,e.operation)}}`:pl(e.parameter)?`\${${e.parameter}}`:`$${e.parameter}`}function pl(e){return!(/^[?#@*$!\-0-9]$/.test(e)||/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e))}function eo(e,t){switch(t.type){case"Length":return`#${e}`;case"LengthSliceError":return`#${e}:`;case"BadSubstitution":return t.text;case"DefaultValue":return`${e}${t.checkEmpty?":":""}-${tt(t.word)}`;case"AssignDefault":return`${e}${t.checkEmpty?":":""}=${tt(t.word)}`;case"ErrorIfUnset":return`${e}${t.checkEmpty?":":""}?${t.word?tt(t.word):""}`;case"UseAlternative":return`${e}${t.checkEmpty?":":""}+${tt(t.word)}`;case"Substring":{let s=H(t.offset.expression);return t.length?`${e}:${s}:${H(t.length.expression)}`:`${e}:${s}`}case"PatternRemoval":{let s=t.side==="prefix"?"#":"%",r=t.greedy?`${s}${s}`:s;return`${e}${r}${tt(t.pattern)}`}case"PatternReplacement":{let s="/";t.all?s="//":t.anchor==="start"?s="/#":t.anchor==="end"&&(s="/%");let r=t.replacement?`/${tt(t.replacement)}`:"";return`${e}${s}${tt(t.pattern)}${r}`}case"CaseModification":{let s=t.direction==="upper"?"^":",",r=t.all?`${s}${s}`:s,n=t.pattern?tt(t.pattern):"";return`${e}${r}${n}`}case"Transform":return`${e}@${t.operator}`;case"Indirection":return t.innerOp?`!${eo(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 ml(e){return`{${e.items.map(yl).join(",")}}`}function yl(e){if(e.type==="Word")return ie(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 to(e){let t=e.fdVariable?`{${e.fdVariable}}`:e.fd!==null?String(e.fd):"";if(e.operator==="<<"||e.operator==="<<-"){let s=e.target,r=s.quoted?`'${s.delimiter}'`:s.delimiter,n=dl(s.content,s.quoted);return`${t}${e.operator}${r}
700
+ ${n}${s.delimiter}`}return e.operator==="<<<"?`${t}<<< ${ie(e.target)}`:e.operator==="&>"||e.operator==="&>>"?`${e.operator} ${ie(e.target)}`:`${t}${e.operator} ${ie(e.target)}`}function Ne(e){return e.length===0?"":` ${e.map(to).join(" ")}`}function Se(e){return e.map(Yi).join(`
701
+ `)}function gl(e){let t=[];for(let s=0;s<e.clauses.length;s++){let r=e.clauses[s],n=s===0?"if":"elif";t.push(`${n} ${Se(r.condition)}; then
702
+ ${Se(r.body)}`)}return e.elseBody&&t.push(`else
703
+ ${Se(e.elseBody)}`),`${t.join(`
704
+ `)}
705
+ fi${Ne(e.redirections)}`}function wl(e){let t;if(e.words===null)t=`for ${e.variable}`;else{let s=e.words.map(ie).join(" ");t=`for ${e.variable} in ${s}`}return`${t}; do
706
+ ${Se(e.body)}
707
+ done${Ne(e.redirections)}`}function vl(e){let t=e.init?H(e.init.expression):"",s=e.condition?H(e.condition.expression):"",r=e.update?H(e.update.expression):"";return`for ((${t}; ${s}; ${r})); do
708
+ ${Se(e.body)}
709
+ done${Ne(e.redirections)}`}function bl(e){return`while ${Se(e.condition)}; do
710
+ ${Se(e.body)}
711
+ done${Ne(e.redirections)}`}function El(e){return`until ${Se(e.condition)}; do
712
+ ${Se(e.body)}
713
+ done${Ne(e.redirections)}`}function $l(e){let t=e.items.map(Sl).join(`
714
+ `);return`case ${ie(e.word)} in
715
+ ${t}
716
+ esac${Ne(e.redirections)}`}function Sl(e){let t=e.patterns.map(ie).join(" | "),s=Se(e.body);return s?`${t})
717
+ ${s}
718
+ ${e.terminator}`:`${t})
719
+ ${e.terminator}`}function Pl(e){return`(${Se(e.body)})${Ne(e.redirections)}`}function Al(e){return`{ ${Se(e.body)}; }${Ne(e.redirections)}`}function kl(e){return`((${H(e.expression.expression)}))${Ne(e.redirections)}`}function Cl(e){return`[[ ${ot(e.expression)} ]]${Ne(e.redirections)}`}function _l(e){let t=Qi(e.body);return`${e.name}() ${t}${Ne(e.redirections)}`}function H(e){switch(e.type){case"ArithNumber":return String(e.value);case"ArithVariable":return e.hasDollarPrefix?`$${e.name}`:e.name;case"ArithSpecialVar":return`$${e.name}`;case"ArithBinary":return`${H(e.left)} ${e.operator} ${H(e.right)}`;case"ArithUnary":return e.prefix?`${e.operator}${H(e.operand)}`:`${H(e.operand)}${e.operator}`;case"ArithTernary":return`${H(e.condition)} ? ${H(e.consequent)} : ${H(e.alternate)}`;case"ArithAssignment":return`${e.subscript?`${e.variable}[${H(e.subscript)}]`:e.stringKey!==void 0?`${e.variable}[${e.stringKey}]`:e.variable} ${e.operator} ${H(e.value)}`;case"ArithDynamicAssignment":return`${e.subscript?`${H(e.target)}[${H(e.subscript)}]`:H(e.target)} ${e.operator} ${H(e.value)}`;case"ArithDynamicElement":return`${H(e.nameExpr)}[${H(e.subscript)}]`;case"ArithGroup":return`(${H(e.expression)})`;case"ArithNested":return`$((${H(e.expression)}))`;case"ArithCommandSubst":return`$(${e.command})`;case"ArithBracedExpansion":return`\${${e.content}}`;case"ArithArrayElement":return e.stringKey!==void 0?`${e.array}[${e.stringKey}]`:e.index?`${e.array}[${H(e.index)}]`:e.array;case"ArithDynamicBase":return`\${${e.baseExpr}}#${e.value}`;case"ArithDynamicNumber":return`\${${e.prefix}}${e.suffix}`;case"ArithConcat":return e.parts.map(H).join("");case"ArithDoubleSubscript":return`${e.array}[${H(e.index)}]`;case"ArithNumberSubscript":return`${e.number}[${e.errorToken}]`;case"ArithSyntaxError":return e.errorToken;case"ArithSingleQuote":return`'${e.content}'`;default:{let t=e;throw new Error(`Unsupported arithmetic expression type: ${t.type}`)}}}function ot(e){switch(e.type){case"CondBinary":return`${ie(e.left)} ${e.operator} ${ie(e.right)}`;case"CondUnary":return`${e.operator} ${ie(e.operand)}`;case"CondNot":return`! ${ot(e.operand)}`;case"CondAnd":return`${ot(e.left)} && ${ot(e.right)}`;case"CondOr":return`${ot(e.left)} || ${ot(e.right)}`;case"CondGroup":return`( ${ot(e.expression)} )`;case"CondWord":return ie(e.word);default:{let t=e;throw new Error(`Unsupported conditional expression type: ${t.type}`)}}}var zt=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 je(t.files);this.fs=s,this.useDefaultLayout=!t.cwd&&!t.files;let r=t.cwd||(this.useDefaultLayout?"/home/user":"/"),n=new Map([["HOME",this.useDefaultLayout?"/home/user":"/"],["PATH","/usr/bin:/bin"],["IFS",`
720
+ `],["OSTYPE","linux-gnu"],["MACHTYPE","x86_64-pc-linux-gnu"],["HOSTTYPE","x86_64"],["HOSTNAME","localhost"],["PWD",r],["OLDPWD",r],["OPTIND","1"],...Object.entries(t.env??{})]);if(this.limits=Bi({...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=Jr(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:n,cwd:r,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",Ys(this.state.options)),this.state.env.set("BASHOPTS",Qs(this.state.shoptOptions)),kn(s,this.useDefaultLayout,{pid:this.state.virtualPid,ppid:this.state.virtualPpid,uid:this.state.virtualUid,gid:this.state.virtualGid}),r!=="/"&&s instanceof je)try{s.mkdirSync(r,{recursive:!0})}catch{}for(let o of bn(t.commands))this.registerCommand(o);if(t.fetch||t.network)for(let o of En())this.registerCommand(o);if(t.python)for(let o of $n())this.registerCommand(o);let i=typeof t.javascript=="object"?t.javascript:Object.create(null);if(t.javascript||i.invokeTool){for(let o of Sn())this.registerCommand(o);i.bootstrap&&(this.jsBootstrapCode=i.bootstrap),i.invokeTool&&(this.invokeToolFn=i.invokeTool)}if(t.customCommands)for(let o of t.customCommands)Pn(o)?this.registerCommand(An(o)):this.registerCommand({...o,trusted:o.trusted??!0})}registerCommand(t){this.commands.set(t.name,t);let s=this.fs;if(typeof s.writeFileSync=="function"){let r=`#!/bin/bash
721
+ # Built-in command: ${t.name}
722
+ `;try{s.writeFileSync(`/bin/${t.name}`,r)}catch{}try{s.writeFileSync(`/usr/bin/${t.name}`,r)}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=ro(t.stdout),t.stderr=ro(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.
723
+ `,exitCode:1,env:be(this.state.env,s?.env)};if(!t.trim())return{stdout:"",stderr:"",exitCode:0,env:be(this.state.env,s?.env)};this.logger?.info("exec",{command:t});let r=s?.cwd??this.state.cwd,n,i=r;if(s?.cwd)if(s.env&&"PWD"in s.env)n=s.env.PWD;else if(s?.env&&!("PWD"in s.env))try{n=await this.fs.realpath(r),i=n}catch{n=r}else n=r;let o=s?.replaceEnv?new Map:new Map(this.state.env);if(s?.env)for(let[f,d]of Object.entries(s.env))o.set(f,d);n!==void 0&&o.set("PWD",n);let a={...this.state,env:o,cwd:i,functions:new Map(this.state.functions),localScopes:[...this.state.localScopes],options:{...this.state.options},hashTable:this.state.hashTable,groupStdin:Ol(s?.stdin,s?.stdinKind),signal:s?.signal,extraArgs:s?.args},l=t;s?.rawScript||(l=so(t));let c=this.defenseInDepthConfig?de.getInstance(this.defenseInDepthConfig):null,u=c?.activate();try{let f=async()=>{let d=pe(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=xt(g,v.metadata))}h=g}let m={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 Mt(m,a).executeScript(d);return h&&(b.metadata=h),this.logResult(b)};return u?await u.run(f):await f()}catch(f){if(f instanceof G)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:be(this.state.env,s?.env)});if(f instanceof ve)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:f.exitCode,env:be(this.state.env,s?.env)});if(f instanceof He)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:1,env:be(this.state.env,s?.env)});if(f instanceof Zt)return this.logResult({stdout:f.stdout,stderr:f.stderr,exitCode:124,env:be(this.state.env,s?.env)});if(f instanceof Q)return this.logResult({stdout:f.stdout,stderr:De(f.stderr),exitCode:Q.EXIT_CODE,env:be(this.state.env,s?.env)});if(f instanceof We)return this.logResult({stdout:"",stderr:`bash: security violation: ${De(f.message)}
724
+ `,exitCode:1,env:be(this.state.env,s?.env)});if(f.name==="ParseException")return this.logResult({stdout:"",stderr:`bash: syntax error: ${De(f.message)}
725
+ `,exitCode:2,env:be(this.state.env,s?.env)});if(f instanceof on)return this.logResult({stdout:"",stderr:`bash: ${De(f.message)}
726
+ `,exitCode:2,env:be(this.state.env,s?.env)});if(f instanceof RangeError)return this.logResult({stdout:"",stderr:`bash: ${De(f.message)}
727
+ `,exitCode:1,env:be(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 Ze(this.state.env)}registerTransformPlugin(t){this.transformPlugins.push(t)}transform(t){let s=so(t),r=pe(s,{maxHeredocSize:this.limits.maxHeredocSize}),n=Object.create(null);for(let i of this.transformPlugins){let o=i.transform({ast:r,metadata:n});r=o.ast,o.metadata&&(n=xt(n,o.metadata))}return{script:Wt(r),ast:r,metadata:n}}};function so(e){let t=e.split(`
728
+ `),s=[],r=[];for(let n=0;n<t.length;n++){let i=t[n];if(r.length>0){let l=r[r.length-1];if((l.stripTabs?i.replace(/^\t+/,""):i)===l.delimiter){s.push(i.trimStart()),r.pop();continue}s.push(i);continue}let o=i.trimStart();s.push(o);let a=/<<(-?)\s*(['"]?)([\w-]+)\2/g;for(let l of o.matchAll(a)){let c=l[1]==="-",u=l[3];r.push({delimiter:u,stripTabs:c})}}return s.join(`
729
+ `)}var Nl=new TextDecoder("utf-8",{fatal:!0});function ro(e){if(!e)return e;let t=!1;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>255)return e;n>127&&(t=!0)}if(!t)return e;let s=new Uint8Array(e.length);for(let r=0;r<e.length;r++)s[r]=e.charCodeAt(r);try{return Nl.decode(s)}catch{return e}}function Ol(e,t){if(e!==void 0)return t==="bytes"?e:Ue(e)}var Ts=class{baseFs;mounts=new Map;constructor(t){if(this.baseFs=t?.base??new je,t?.mounts)for(let{mountPoint:s,filesystem:r}of t.mounts)this.mount(s,r)}mount(t,s){this.validateMountPath(t);let r=D(t);this.validateMount(r),this.mounts.set(r,{mountPoint:r,filesystem:s})}unmount(t){let s=D(t);if(!this.mounts.has(s))throw new Error(`No filesystem mounted at '${t}'`);this.mounts.delete(s)}getMounts(){return Array.from(this.mounts.values()).map(t=>({mountPoint:t.mountPoint,filesystem:t.filesystem}))}isMountPoint(t){let s=D(t);return this.mounts.has(s)}validateMountPath(t){let s=t.split("/");for(let r of s)if(r==="."||r==="..")throw new Error(`Invalid mount point '${t}': contains '.' or '..' segments`)}validateMount(t){if(t==="/")throw new Error("Cannot mount at root '/'");for(let s of this.mounts.keys())if(s!==t){if(t.startsWith(`${s}/`))throw new Error(`Cannot mount at '${t}': inside existing mount '${s}'`);if(s.startsWith(`${t}/`))throw new Error(`Cannot mount at '${t}': would contain existing mount '${s}'`)}}routePath(t){R(t,"access");let s=D(t),r=null,n=0;for(let i of this.mounts.values()){let o=i.mountPoint;if(s===o)return{fs:i.filesystem,relativePath:"/"};s.startsWith(`${o}/`)&&o.length>n&&(r=i,n=o.length)}if(r){let i=s.slice(n);return{fs:r.filesystem,relativePath:i||"/"}}return{fs:this.baseFs,relativePath:s}}getChildMountPoints(t){let s=D(t),r=s==="/"?"/":`${s}/`,n=[];for(let i of this.mounts.keys())if(i.startsWith(r)){let a=i.slice(r.length).split("/")[0];a&&!n.includes(a)&&n.push(a)}return n}async readFile(t,s){let{fs:r,relativePath:n}=this.routePath(t);return r.readFile(n,s)}async readFileBytes(t){let{fs:s,relativePath:r}=this.routePath(t);return Ut(s,r)}async readFileBuffer(t){let{fs:s,relativePath:r}=this.routePath(t);return s.readFileBuffer(r)}async writeFile(t,s,r){let{fs:n,relativePath:i}=this.routePath(t);return n.writeFile(i,s,r)}async appendFile(t,s,r){let{fs:n,relativePath:i}=this.routePath(t);return n.appendFile(i,s,r)}async exists(t){let s=D(t);if(this.mounts.has(s)||this.getChildMountPoints(s).length>0)return!0;let{fs:n,relativePath:i}=this.routePath(t);return n.exists(i)}async stat(t){let s=D(t),r=this.mounts.get(s);if(r)try{return await r.filesystem.stat("/")}catch{return{isFile:!1,isDirectory:!0,isSymbolicLink:!1,mode:493,size:0,mtime:new Date}}if(this.getChildMountPoints(s).length>0)try{return await this.baseFs.stat(s)}catch{return{isFile:!1,isDirectory:!0,isSymbolicLink:!1,mode:493,size:0,mtime:new Date}}let{fs:i,relativePath:o}=this.routePath(t);return i.stat(o)}async lstat(t){let s=D(t),r=this.mounts.get(s);if(r)try{return await r.filesystem.lstat("/")}catch{return{isFile:!1,isDirectory:!0,isSymbolicLink:!1,mode:493,size:0,mtime:new Date}}if(this.getChildMountPoints(s).length>0)try{return await this.baseFs.lstat(s)}catch{return{isFile:!1,isDirectory:!0,isSymbolicLink:!1,mode:493,size:0,mtime:new Date}}let{fs:i,relativePath:o}=this.routePath(t);return i.lstat(o)}async mkdir(t,s){let r=D(t);if(this.mounts.has(r)){if(s?.recursive)return;throw new Error(`EEXIST: directory already exists, mkdir '${t}'`)}if(this.getChildMountPoints(r).length>0&&s?.recursive)return;let{fs:i,relativePath:o}=this.routePath(t);return i.mkdir(o,s)}async readdir(t){let s=D(t),r=new Set,n=null,{fs:i,relativePath:o}=this.routePath(t);try{let l=await i.readdir(o);for(let c of l)r.add(c)}catch(l){let c=l.code,u=l.message||"";if(c!=="ENOENT"&&!u.includes("ENOENT"))throw l;n=l}let a=this.getChildMountPoints(s);for(let l of a)r.add(l);if(r.size===0&&n&&!this.mounts.has(s))throw n;return Array.from(r).sort()}async rm(t,s){let r=D(t);if(this.mounts.has(r))throw new Error(`EBUSY: mount point, cannot remove '${t}'`);if(this.getChildMountPoints(r).length>0)throw new Error(`EBUSY: contains mount points, cannot remove '${t}'`);let{fs:i,relativePath:o}=this.routePath(t);return i.rm(o,s)}async cp(t,s,r){let n=this.routePath(t),i=this.routePath(s);return n.fs===i.fs?n.fs.cp(n.relativePath,i.relativePath,r):this.crossMountCopy(t,s,r)}async mv(t,s){let r=D(t);if(this.mounts.has(r))throw new Error(`EBUSY: mount point, cannot move '${t}'`);let n=this.routePath(t),i=this.routePath(s);if(n.fs===i.fs)return n.fs.mv(n.relativePath,i.relativePath);await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0})}resolvePath(t,s){return Xe(t,s)}getAllPaths(){let t=new Set;for(let s of this.baseFs.getAllPaths())t.add(s);for(let s of this.mounts.keys()){let r=s.split("/").filter(Boolean),n="";for(let o of r)n=`${n}/${o}`,t.add(n);let i=this.mounts.get(s);if(i)for(let o of i.filesystem.getAllPaths())o==="/"?t.add(s):t.add(`${s}${o}`)}return Array.from(t).sort()}async chmod(t,s){let r=D(t),n=this.mounts.get(r);if(n)return n.filesystem.chmod("/",s);let{fs:i,relativePath:o}=this.routePath(t);return i.chmod(o,s)}async symlink(t,s){let{fs:r,relativePath:n}=this.routePath(s);return r.symlink(t,n)}async link(t,s){let r=this.routePath(t),n=this.routePath(s);if(r.fs!==n.fs)throw new Error(`EXDEV: cross-device link not permitted, link '${t}' -> '${s}'`);return r.fs.link(r.relativePath,n.relativePath)}async readlink(t){let{fs:s,relativePath:r}=this.routePath(t);return s.readlink(r)}async realpath(t){let s=D(t);if(this.mounts.get(s))return s;let{fs:n,relativePath:i}=this.routePath(t),o=await n.realpath(i);for(let[a,l]of this.mounts)if(s===a||s.startsWith(`${a}/`))return o==="/"?a:`${a}${o}`;return o}async crossMountCopy(t,s,r){let n=await this.lstat(t);if(n.isFile){let i=await this.readFileBuffer(t);await this.writeFile(s,i),await this.chmod(s,n.mode)}else if(n.isDirectory){if(!r?.recursive)throw new Error(`cp: ${t} is a directory (not copied)`);await this.mkdir(s,{recursive:!0});let i=await this.readdir(t);for(let o of i){let a=Ye(t,o),l=Ye(s,o);await this.crossMountCopy(a,l,r)}}else if(n.isSymbolicLink){let i=await this.readlink(t);await this.symlink(i,s)}}async utimes(t,s,r){let{fs:n,relativePath:i}=this.routePath(t);return n.utimes(i,s,r)}};import*as q from"node:fs";import*as le from"node:path";import*as Pe from"node:fs";import*as fe from"node:path";function Oe(e,t){if(e===t)return!0;let s=e[t.length];return(s==="/"||s==="\\")&&e.startsWith(t)}function lt(e,t){try{let s=Pe.realpathSync(e);return Oe(s,t)?s:null}catch(s){if(s.code==="ENOENT"){let r=fe.dirname(e);if(r===e)return null;let n=lt(r,t);if(n===null)return null;try{if(Pe.lstatSync(e).isSymbolicLink()){let o=Pe.readlinkSync(e),a=fe.isAbsolute(o)?o:fe.resolve(fe.dirname(e),o);if(lt(a,t)===null)return null}}catch{}return fe.join(n,fe.basename(e))}return null}}function xs(e,t,s){let r=lt(e,s);if(r===null)return null;let n=fe.resolve(e),i=n.slice(t.length),o=r.slice(s.length);if(i!==o)return null;try{if(Pe.lstatSync(n).isSymbolicLink())return null}catch{}return r}function Ds(e,t){if(!Pe.existsSync(e))throw new Error(`${t} root does not exist`);if(!Pe.statSync(e).isDirectory())throw new Error(`${t} root is not a directory`)}function no(e,t){if(!fe.isAbsolute(e))return{withinRoot:!0,relativePath:e};let s;try{s=Pe.realpathSync(e)}catch{s=fe.resolve(e)}return Oe(s,t)?{withinRoot:!0,relativePath:s.slice(t.length).replace(/\\/g,"/")||"/"}:{withinRoot:!1,safeName:fe.basename(e)}}function Rs(e,t,s,r){let n=e;if(n.path===void 0){for(let o of r)if(n.message?.includes(o))throw e}let i=n.code||"EIO";throw new Error(`${i}: ${s} '${t}'`)}var Tl=["ELOOP","EFBIG","EPERM"],xl="/home/user/project",At=class{root;canonicalRoot;mountPoint;readOnly;maxFileReadSize;allowSymlinks;memory=new Map;deleted=new Set;constructor(t){this.root=le.resolve(t.root);let s=t.mountPoint??xl;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,Ds(this.root,"OverlayFs"),this.canonicalRoot=q.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 r of t)s+=`/${r}`,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 n=D(t).split("/").filter(Boolean),i="";for(let o of n)i+=`/${o}`,this.memory.has(i)||this.memory.set(i,{type:"directory",mode:493,mtime:new Date})}writeFileSync(t,s){let r=D(t),n=this.getDirname(r);n!=="/"&&this.mkdirSync(n);let i=s instanceof Uint8Array?s:new TextEncoder().encode(s);this.memory.set(r,{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=D(t),r=this.getRelativeToMount(s);if(r===null)return null;let n=le.join(this.root,r),i=le.resolve(n);return Oe(i,this.root)?i:null}resolveRealPath_(t){return t?this.allowSymlinks?lt(t,this.canonicalRoot):xs(t,this.root,this.canonicalRoot):null}resolveRealPathParent_(t){if(!t)return null;let s=le.dirname(t),r=this.resolveRealPath_(s);return r===null?null:le.join(r,le.basename(t))}sanitizeError(t,s,r){Rs(t,s,r,Tl)}ensureParentDirs(t){let s=nt(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=D(t);if(this.deleted.has(s))return!1;if(this.memory.has(s))return!0;let r=this.resolveRealPathParent_(this.toRealPath(s));if(!r)return!1;try{return await q.promises.lstat(r),!0}catch{return!1}}async readFile(t,s){let r=await this.readFileBuffer(t),n=Ee(s);return Ve(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return Ve(s,"binary")}async readFileBuffer(t,s=new Set){R(t,"open");let r=D(t);if(s.has(r))throw new Error(`ELOOP: too many levels of symbolic links, open '${t}'`);if(s.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, open '${t}'`);let n=this.memory.get(r);if(n){if(n.type==="symlink"){let o=this.resolveSymlink(r,n.target);return this.readFileBuffer(o,s)}if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, open '${t}'`);try{let o=await q.promises.lstat(i);if(o.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, open '${t}'`);let c=await q.promises.readlink(i),u=this.realTargetToVirtual(r,c),f=this.resolveSymlink(r,u);return this.readFileBuffer(f,s)}if(o.isDirectory())throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(this.maxFileReadSize>0&&o.size>this.maxFileReadSize)throw new Error(`EFBIG: file too large, read '${t}' (${o.size} bytes, max ${this.maxFileReadSize})`);let a=this.allowSymlinks?q.constants.O_RDONLY:q.constants.O_RDONLY|q.constants.O_NOFOLLOW,l=await q.promises.open(i,a);try{let c=await l.readFile();return new Uint8Array(c)}finally{await l.close()}}catch(o){let a=o.code;if(a==="ENOENT")throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(a==="ELOOP")throw new Error(`ENOENT: no such file or directory, open '${t}'`);this.sanitizeError(o,t,"open")}}async writeFile(t,s,r){R(t,"write"),this.assertWritable(`write '${t}'`);let n=D(t);this.ensureParentDirs(n);let i=Ee(r),o=ze(s,i);this.memory.set(n,{type:"file",content:o,mode:420,mtime:new Date}),this.deleted.delete(n)}async appendFile(t,s,r){R(t,"append"),this.assertWritable(`append '${t}'`);let n=D(t),i=Ee(r),o=ze(s,i),a;try{a=await this.readFileBuffer(n)}catch{a=new Uint8Array(0)}let l=new Uint8Array(a.length+o.length);l.set(a),l.set(o,a.length),this.ensureParentDirs(n),this.memory.set(n,{type:"file",content:l,mode:420,mtime:new Date}),this.deleted.delete(n)}async exists(t){return t.includes("\0")?!1:this.existsInOverlay(t)}async stat(t,s=new Set){R(t,"stat");let r=D(t);if(s.has(r))throw new Error(`ELOOP: too many levels of symbolic links, stat '${t}'`);if(s.add(r),this.deleted.has(r))throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let n=this.memory.get(r);if(n){if(n.type==="symlink"){let a=this.resolveSymlink(r,n.target);return this.stat(a,s)}let o=0;return n.type==="file"&&(o=n.content.length),{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:o,mtime:n.mtime}}let i=this.resolveRealPath_(this.toRealPath(r));if(!i)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);try{let o=await q.promises.lstat(i);if(o.isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);let a=await q.promises.readlink(i),l=this.realTargetToVirtual(r,a),c=this.resolveSymlink(r,l);return this.stat(c,s)}return{isFile:o.isFile(),isDirectory:o.isDirectory(),isSymbolicLink:!1,mode:o.mode,size:o.size,mtime:o.mtime}}catch(o){if(o.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, stat '${t}'`);this.sanitizeError(o,t,"stat")}}async lstat(t){R(t,"lstat");let s=D(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);let r=this.memory.get(s);if(r){if(r.type==="symlink")return{isFile:!1,isDirectory:!1,isSymbolicLink:!0,mode:r.mode,size:r.target.length,mtime:r.mtime};let i=0;return r.type==="file"&&(i=r.content.length),{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:!1,mode:r.mode,size:i,mtime:r.mtime}}let n=this.resolveRealPathParent_(this.toRealPath(s));if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);try{let i=await q.promises.lstat(n);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 ft(t,s)}realTargetToVirtual(t,s){let r=no(s,this.canonicalRoot);if(r.withinRoot){if(!le.isAbsolute(s))return s;let n=r.relativePath;return this.mountPoint==="/"?n:`${this.mountPoint}${n}`}return r.safeName}async mkdir(t,s){R(t,"mkdir"),this.assertWritable(`mkdir '${t}'`);let r=D(t);if(await this.existsInOverlay(r)){if(!s?.recursive)throw new Error(`EEXIST: file already exists, mkdir '${t}'`);return}let i=nt(r);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(r,{type:"directory",mode:493,mtime:new Date}),this.deleted.delete(r)}async readdirCore(t,s){if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);let r=new Map,n=new Set,i=s==="/"?"/":`${s}/`;for(let a of this.deleted)if(a.startsWith(i)){let l=a.slice(i.length),c=l.split("/")[0];c&&!l.includes("/",c.length)&&n.add(c)}for(let[a,l]of this.memory)if(a!==s&&a.startsWith(i)){let c=a.slice(i.length),u=c.split("/")[0];u&&!n.has(u)&&!c.includes("/",1)&&r.set(u,{name:u,isFile:l.type==="file",isDirectory:l.type==="directory",isSymbolicLink:l.type==="symlink"})}let o=this.resolveRealPath_(this.toRealPath(s));if(o)try{if(!this.allowSymlinks&&(await q.promises.lstat(o)).isSymbolicLink()){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);return r}let a=await q.promises.readdir(o,{withFileTypes:!0});for(let l of a)!n.has(l.name)&&!r.has(l.name)&&r.set(l.name,{name:l.name,isFile:l.isFile(),isDirectory:l.isDirectory(),isSymbolicLink:l.isSymbolicLink()})}catch(a){if(a.code==="ENOENT"){if(!this.memory.has(s))throw new Error(`ENOENT: no such file or directory, scandir '${t}'`)}else a.code!=="ENOTDIR"&&this.sanitizeError(a,t,"scandir")}return r}async resolveForReaddir(t,s=!1){let r=D(t),n=new Set,i=s,o=this.memory.get(r);for(;o&&o.type==="symlink";){if(n.has(r))throw new Error(`ELOOP: too many levels of symbolic links, scandir '${t}'`);n.add(r),i=!0,r=this.resolveSymlink(r,o.target),o=this.memory.get(r)}if(o)return{normalized:r,outsideOverlay:!1};if(this.getRelativeToMount(r)===null)return{normalized:r,outsideOverlay:!0};let l=this.resolveRealPath_(this.toRealPath(r));if(!l)return{normalized:r,outsideOverlay:!0};try{if((await q.promises.lstat(l)).isSymbolicLink()){if(!this.allowSymlinks)return{normalized:r,outsideOverlay:!0};let u=await q.promises.readlink(l),f=this.realTargetToVirtual(r,u),d=this.resolveSymlink(r,f);return this.resolveForReaddir(d,!0)}return{normalized:r,outsideOverlay:!1}}catch{return i?{normalized:r,outsideOverlay:!0}:{normalized:r,outsideOverlay:!1}}}async readdir(t){R(t,"scandir");let{normalized:s,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let n=await this.readdirCore(t,s);return Array.from(n.keys()).sort((i,o)=>i<o?-1:i>o?1:0)}async readdirWithFileTypes(t){R(t,"scandir");let{normalized:s,outsideOverlay:r}=await this.resolveForReaddir(t);if(r)return[];let n=await this.readdirCore(t,s);return Array.from(n.values()).sort((i,o)=>i.name<o.name?-1:i.name>o.name?1:0)}async rm(t,s){R(t,"rm"),this.assertWritable(`rm '${t}'`);let r=D(t);if(!await this.existsInOverlay(r)){if(s?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}try{if((await this.stat(r)).isDirectory){let o=await this.readdir(r);if(o.length>0){if(!s?.recursive)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);for(let a of o){let l=r==="/"?`/${a}`:`${r}/${a}`;await this.rm(l,s)}}}}catch(i){if(i instanceof Error&&(i.message.includes("ENOTEMPTY")||i.message.includes("EISDIR")))throw i}this.memory.delete(r),this.existsOnRealFs(r)&&this.deleted.add(r)}existsOnRealFs(t){let s=this.toRealPath(t),r=this.resolveRealPathParent_(s);if(!r)return!1;try{return q.lstatSync(r),!0}catch{return!1}}async cp(t,s,r){R(t,"cp"),R(s,"cp"),this.assertWritable(`cp '${s}'`);let n=D(t),i=D(s);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, cp '${t}'`);let a=await this.stat(n);if(a.isFile){let l=await this.readFileBuffer(n);await this.writeFile(i,l)}else if(a.isDirectory){if(!r?.recursive)throw new Error(`EISDIR: is a directory, cp '${t}'`);await this.mkdir(i,{recursive:!0});let l=await this.readdir(n);for(let c of l){let u=n==="/"?`/${c}`:`${n}/${c}`,f=i==="/"?`/${c}`:`${i}/${c}`;await this.cp(u,f,r)}}}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 Xe(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 r=this.resolveRealPath_(this.toRealPath(t));if(r)try{let n=q.readdirSync(r);for(let i of n){let o=t==="/"?`/${i}`:`${t}/${i}`;if(this.deleted.has(o))continue;s.add(o);let a=le.join(r,i);q.lstatSync(a).isDirectory()&&this.scanRealFs(o,s)}}catch{}}async chmod(t,s){R(t,"chmod"),this.assertWritable(`chmod '${t}'`);let r=D(t);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);let i=this.memory.get(r);if(i){i.mode=s;return}let o=await this.stat(r);if(o.isFile){let a=await this.readFileBuffer(r);this.memory.set(r,{type:"file",content:a,mode:s,mtime:new Date})}else o.isDirectory&&this.memory.set(r,{type:"directory",mode:s,mtime:new Date})}async symlink(t,s){if(!this.allowSymlinks)throw new Error(`EPERM: operation not permitted, symlink '${s}'`);R(s,"symlink"),this.assertWritable(`symlink '${s}'`);let r=D(s);if(await this.existsInOverlay(r))throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.ensureParentDirs(r),this.memory.set(r,{type:"symlink",target:t,mode:511,mtime:new Date}),this.deleted.delete(r)}async link(t,s){R(t,"link"),R(s,"link"),this.assertWritable(`link '${s}'`);let r=D(t),n=D(s);if(!await this.existsInOverlay(r))throw new Error(`ENOENT: no such file or directory, link '${t}'`);let o=await this.stat(r);if(!o.isFile)throw new Error(`EPERM: operation not permitted, link '${t}'`);if(await this.existsInOverlay(n))throw new Error(`EEXIST: file already exists, link '${s}'`);let l=await this.readFileBuffer(r);this.ensureParentDirs(n),this.memory.set(n,{type:"file",content:l,mode:o.mode,mtime:new Date}),this.deleted.delete(n)}async readlink(t){R(t,"readlink");let s=D(t);if(this.deleted.has(s))throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);let r=this.memory.get(s);if(r){if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}let n=this.resolveRealPathParent_(this.toRealPath(s));if(!n)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);try{let i=await q.promises.readlink(n);if(!le.isAbsolute(i)){let o=le.resolve(le.dirname(n),i),a;try{a=q.realpathSync(o)}catch{a=o}if(!Oe(a,this.canonicalRoot))return le.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){R(t,"realpath");let s=D(t),r=new Set,n=async a=>{let l=a==="/"?[]:a.slice(1).split("/"),c="";for(let u of l){if(c=`${c}/${u}`,r.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(r.add(c),c=this.resolveSymlink(c,f.target),d++,r.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 m=this.toRealPath(c),p=this.resolveRealPath_(m);if(p)try{if((await q.promises.lstat(p)).isSymbolicLink()){if(!this.allowSymlinks)throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);let b=await q.promises.readlink(p),g=this.realTargetToVirtual(c,b);return r.add(c),c=this.resolveSymlink(c,g),n(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_(m);if(y)try{if((await q.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 n(s);if(!await this.existsInOverlay(i))throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);return i}async utimes(t,s,r){R(t,"utimes"),this.assertWritable(`utimes '${t}'`);let n=D(t);if(!await this.existsInOverlay(n))throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);let o=this.memory.get(n);if(o){o.mtime=r;return}let a=await this.stat(n);if(a.isFile){let l=await this.readFileBuffer(n);this.memory.set(n,{type:"file",content:l,mode:a.mode,mtime:r})}else a.isDirectory&&this.memory.set(n,{type:"directory",mode:a.mode,mtime:r})}};import*as F from"node:fs";import*as j from"node:path";var Dl=["EACCES","escaping sandbox","EFBIG"],Is=class{root;canonicalRoot;maxFileReadSize;allowSymlinks;constructor(t){this.root=j.resolve(t.root),this.maxFileReadSize=t.maxFileReadSize??10485760,this.allowSymlinks=t.allowSymlinks??!1,Ds(this.root,"ReadWriteFs"),this.canonicalRoot=F.realpathSync(this.root)}resolveAndValidate(t,s){let r=this.allowSymlinks?lt(t,this.canonicalRoot):xs(t,this.root,this.canonicalRoot);if(r===null)throw new Error(`EACCES: permission denied, '${s}' resolves outside sandbox`);return r}validateParent(t,s){let r=j.dirname(t),n=this.resolveAndValidate(r,s);return j.join(n,j.basename(t))}toRealPath(t){let s=D(t),r=j.join(this.root,s);return j.resolve(r)}async readFile(t,s){let r=await this.readFileBuffer(t),n=Ee(s);return Ve(r,n)}async readFileBytes(t){let s=await this.readFileBuffer(t);return Ve(s,"binary")}async readFileBuffer(t){R(t,"open");let s=this.toRealPath(t),r=this.resolveAndValidate(s,t);try{let n=this.allowSymlinks?F.constants.O_RDONLY:F.constants.O_RDONLY|F.constants.O_NOFOLLOW,i=await F.promises.open(r,n);try{if(this.maxFileReadSize>0){let a=await i.stat();if(a.size>this.maxFileReadSize)throw new Error(`EFBIG: file too large, read '${t}' (${a.size} bytes, max ${this.maxFileReadSize})`)}let o=await i.readFile();return new Uint8Array(o)}finally{await i.close()}}catch(n){let i=n;if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(i.code==="EISDIR")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);if(i.code==="ELOOP")throw new Error(`EACCES: permission denied, '${t}' is a symlink`);this.sanitizeError(n,t,"open")}}async writeFile(t,s,r){R(t,"write");let n=this.toRealPath(t),i=this.resolveAndValidate(n,t),o=Ee(r),a=ze(s,o),l=j.dirname(i);try{await F.promises.mkdir(l,{recursive:!0}),i=this.resolveAndValidate(n,t);let c=this.allowSymlinks?0:F.constants.O_NOFOLLOW,u=F.constants.O_WRONLY|F.constants.O_CREAT|F.constants.O_TRUNC|c,f=await F.promises.open(i,u,438);try{await f.writeFile(a)}finally{await f.close()}}catch(c){if(c.code==="ELOOP")throw new Error(`EACCES: permission denied, '${t}' is a symlink`);this.sanitizeError(c,t,"write")}}async appendFile(t,s,r){R(t,"append");let n=this.toRealPath(t),i=this.resolveAndValidate(n,t),o=Ee(r),a=ze(s,o),l=j.dirname(i);try{await F.promises.mkdir(l,{recursive:!0}),i=this.resolveAndValidate(n,t);let c=this.allowSymlinks?0:F.constants.O_NOFOLLOW,u=F.constants.O_WRONLY|F.constants.O_CREAT|F.constants.O_APPEND|c,f=await F.promises.open(i,u,438);try{await f.writeFile(a)}finally{await f.close()}}catch(c){if(c.code==="ELOOP")throw new Error(`EACCES: permission denied, '${t}' is a symlink`);this.sanitizeError(c,t,"append")}}async exists(t){if(t.includes("\0"))return!1;let s=this.toRealPath(t);try{let r=this.resolveAndValidate(s,t);return await F.promises.access(r),!0}catch{return!1}}async stat(t){R(t,"stat");let s=this.toRealPath(t),r=this.resolveAndValidate(s,t);try{let n=await F.promises.lstat(r);if(!this.allowSymlinks&&n.isSymbolicLink())throw new Error(`EACCES: permission denied, '${t}' is a symlink`);return{isFile:n.isFile(),isDirectory:n.isDirectory(),isSymbolicLink:n.isSymbolicLink(),mode:n.mode,size:n.size,mtime:n.mtime}}catch(n){if(n.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, stat '${t}'`);this.sanitizeError(n,t,"stat")}}async lstat(t){R(t,"lstat");let s=this.toRealPath(t),r=this.validateParent(s,t);try{let n=await F.promises.lstat(r);return{isFile:n.isFile(),isDirectory:n.isDirectory(),isSymbolicLink:n.isSymbolicLink(),mode:n.mode,size:n.size,mtime:n.mtime}}catch(n){if(n.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);this.sanitizeError(n,t,"lstat")}}async mkdir(t,s){R(t,"mkdir");let r=this.toRealPath(t),n=this.resolveAndValidate(r,t);try{await F.promises.mkdir(n,{recursive:s?.recursive})}catch(i){let o=i;if(o.code==="EEXIST")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(o.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.sanitizeError(i,t,"mkdir")}}async readdir(t){return(await this.readdirWithFileTypes(t)).map(r=>r.name)}async readdirWithFileTypes(t){R(t,"scandir");let s=this.toRealPath(t),r=this.resolveAndValidate(s,t);try{if(!this.allowSymlinks&&(await F.promises.lstat(r)).isSymbolicLink())throw new Error(`EACCES: permission denied, '${t}' is a symlink`);return(await F.promises.readdir(r,{withFileTypes:!0})).map(i=>({name:i.name,isFile:i.isFile(),isDirectory:i.isDirectory(),isSymbolicLink:i.isSymbolicLink()})).sort((i,o)=>i.name<o.name?-1:i.name>o.name?1:0)}catch(n){let i=n;if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(i.code==="ENOTDIR")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);this.sanitizeError(n,t,"scandir")}}async rm(t,s){R(t,"rm");let r=this.toRealPath(t),n=this.resolveAndValidate(r,t);try{await F.promises.rm(n,{recursive:s?.recursive??!1,force:s?.force??!1})}catch(i){let o=i;if(o.code==="ENOENT"&&!s?.force)throw new Error(`ENOENT: no such file or directory, rm '${t}'`);if(o.code==="ENOTEMPTY")throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);this.sanitizeError(i,t,"rm")}}async cp(t,s,r){R(t,"cp"),R(s,"cp");let n=this.toRealPath(t),i=this.toRealPath(s),o=this.resolveAndValidate(n,t),a=this.resolveAndValidate(i,s);try{await F.promises.cp(o,a,{recursive:r?.recursive??!1,filter:async l=>{try{if(F.lstatSync(l).isSymbolicLink()){let u=await F.promises.realpath(l).catch(()=>null);return u===null?!1:Oe(u,this.canonicalRoot)}return!0}catch(c){return c.code==="ENOENT"}}})}catch(l){let c=l;if(c.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, cp '${t}'`);if(c.code==="EISDIR")throw new Error(`EISDIR: is a directory, cp '${t}'`);this.sanitizeError(l,t,"cp")}}async mv(t,s){R(t,"mv"),R(s,"mv");let r=this.toRealPath(t),n=this.toRealPath(s),i=this.validateParent(r,t),o=this.validateParent(n,s);try{if((await F.promises.lstat(i)).isSymbolicLink()){let c=await F.promises.readlink(i),u=j.resolve(j.dirname(o),c),f=await F.promises.realpath(u).catch(()=>u);if(!Oe(f,this.canonicalRoot))throw new Error(`EACCES: permission denied, mv '${t}' -> '${s}' would create symlink escaping sandbox`)}}catch(l){let c=l;if(c.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, mv '${t}'`);if(c.message?.includes("EACCES")||c.message?.includes("escaping sandbox"))throw l}let a=j.dirname(o);try{await F.promises.mkdir(a,{recursive:!0})}catch(l){this.sanitizeError(l,s,"mv")}try{await F.promises.rename(i,o)}catch(l){let c=l;if(c.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, mv '${t}'`);if(c.code==="EXDEV"){await this.cp(t,s,{recursive:!0}),await this.rm(t,{recursive:!0});return}this.sanitizeError(l,t,"mv")}try{if(F.lstatSync(o).isDirectory()&&this.findEscapingSymlinks(o).length>0)throw await F.promises.rename(o,i),new Error(`EACCES: permission denied, mv '${t}' -> '${s}' would create symlinks escaping sandbox`)}catch(l){if(l.message?.includes("EACCES")||l.message?.includes("escaping sandbox"))throw l}}resolvePath(t,s){return Xe(t,s)}getAllPaths(){let t=[];return this.scanDir("/",t),t}sanitizeError(t,s,r){Rs(t,s,r,Dl)}findEscapingSymlinks(t){let s=[];try{let r=F.readdirSync(t);for(let n of r){let i=j.join(t,n);try{let o=F.lstatSync(i);if(o.isSymbolicLink()){let a=F.readlinkSync(i),l=j.resolve(t,a),c;try{c=F.realpathSync(l)}catch{c=l}Oe(c,this.canonicalRoot)||s.push(i)}else o.isDirectory()&&s.push(...this.findEscapingSymlinks(i))}catch{}}}catch{}return s}scanDir(t,s){let r=this.toRealPath(t),n;try{n=this.resolveAndValidate(r,t)}catch{return}try{let i=F.readdirSync(n);for(let o of i){let a=t==="/"?`/${o}`:`${t}/${o}`;s.push(a);let l=j.join(n,o);F.lstatSync(l).isDirectory()&&this.scanDir(a,s)}}catch{}}async chmod(t,s){R(t,"chmod");let r=this.toRealPath(t),n=this.resolveAndValidate(r,t);try{let i=this.allowSymlinks?F.constants.O_RDONLY:F.constants.O_RDONLY|F.constants.O_NOFOLLOW,o=await F.promises.open(n,i);try{await o.chmod(s)}finally{await o.close()}}catch(i){let o=i;if(o.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, chmod '${t}'`);if(o.code==="ELOOP")throw new Error(`EACCES: permission denied, '${t}' is a symlink`);this.sanitizeError(i,t,"chmod")}}async symlink(t,s){if(!this.allowSymlinks)throw new Error(`EPERM: operation not permitted, symlink '${s}'`);R(s,"symlink");let r=this.toRealPath(s),n=this.validateParent(r,s),i=D(s),o=D(j.dirname(i)),a=t.startsWith("/")?D(t):D(o==="/"?`/${t}`:`${o}/${t}`),l=j.join(this.canonicalRoot,a),c=j.dirname(n),u=t.startsWith("/")?l:j.relative(c,l)||".";try{await F.promises.symlink(u,n)}catch(f){if(f.code==="EEXIST")throw new Error(`EEXIST: file already exists, symlink '${s}'`);this.sanitizeError(f,s,"symlink")}}async link(t,s){R(t,"link"),R(s,"link");let r=this.toRealPath(t),n=this.toRealPath(s),i=this.resolveAndValidate(r,t),o=this.resolveAndValidate(n,s);try{await F.promises.link(i,o)}catch(a){let l=a;if(l.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, link '${t}'`);if(l.code==="EEXIST")throw new Error(`EEXIST: file already exists, link '${s}'`);if(l.code==="EPERM")throw new Error(`EPERM: operation not permitted, link '${t}'`);this.sanitizeError(a,t,"link")}}async readlink(t){R(t,"readlink");let s=this.toRealPath(t),r=this.validateParent(s,t);try{let n=await F.promises.readlink(r),i=D(t),o=j.dirname(i),a=j.isAbsolute(n)?n:j.resolve(j.dirname(r),n),l=await F.promises.realpath(a).catch(()=>a);if(Oe(l,this.canonicalRoot)){let c=l.slice(this.canonicalRoot.length)||"/";return o==="/"?c.startsWith("/")?c.slice(1)||".":c:j.relative(o,c)}return j.basename(n)}catch(n){let i=n;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(n,t,"readlink")}}async realpath(t){R(t,"realpath");let s=this.toRealPath(t);try{this.resolveAndValidate(s,t)}catch{throw new Error(`ENOENT: no such file or directory, realpath '${t}'`)}let r;try{r=await F.promises.realpath(s)}catch(n){let i=n;if(i.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, realpath '${t}'`);if(i.code==="ELOOP")throw new Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`);this.sanitizeError(n,t,"realpath")}if(Oe(r,this.canonicalRoot))return r.slice(this.canonicalRoot.length)||"/";throw new Error(`ENOENT: no such file or directory, realpath '${t}'`)}async utimes(t,s,r){R(t,"utimes");let n=this.toRealPath(t),i=this.resolveAndValidate(n,t);try{let o=this.allowSymlinks?F.constants.O_RDONLY:F.constants.O_RDONLY|F.constants.O_NOFOLLOW,a=await F.promises.open(i,o);try{await a.utimes(s,r)}finally{await a.close()}}catch(o){let a=o;if(a.code==="ENOENT")throw new Error(`ENOENT: no such file or directory, utimes '${t}'`);if(a.code==="ELOOP")throw new Error(`EACCES: permission denied, '${t}' is a symlink`);this.sanitizeError(o,t,"utimes")}}};var kt=class{cmdId;cwd;startedAt;exitCode;bashEnv;cmdLine;env;explicitCwd;signal;timeoutMs;abortController=new AbortController;timeoutId;externalAbortListener;resultPromise;constructor(t,s,r,n,i=!1,o,a){this.cmdId=crypto.randomUUID(),this.cwd=r,this.startedAt=new Date,this.bashEnv=t,this.cmdLine=s,this.env=n,this.explicitCwd=i,this.signal=o,this.timeoutMs=a,this.setupCancellation(),this.resultPromise=this.execute()}setupCancellation(){if(this.signal&&(this.signal.aborted?this.abortController.abort(this.signal.reason):(this.externalAbortListener=()=>{this.abortController.abort(this.signal?.reason)},this.signal.addEventListener("abort",this.externalAbortListener,{once:!0}))),this.timeoutMs!==void 0){let t=Math.max(0,this.timeoutMs);this.timeoutId=Vt(()=>{this.abortController.abort(new Error(`sandbox command timeout after ${t}ms`))},t)}}cleanupCancellation(){this.timeoutId!==void 0&&(Bt(this.timeoutId),this.timeoutId=void 0),this.signal&&this.externalAbortListener&&(this.signal.removeEventListener("abort",this.externalAbortListener),this.externalAbortListener=void 0)}async execute(){let t={cwd:this.explicitCwd?this.cwd:void 0,env:this.env,signal:this.abortController.signal};try{let s=await this.bashEnv.exec(this.cmdLine,t);return this.exitCode=s.exitCode,s}finally{this.cleanupCancellation()}}async*logs(){let t=await this.resultPromise;t.stdout&&(yield{type:"stdout",data:t.stdout,timestamp:new Date}),t.stderr&&(yield{type:"stderr",data:t.stderr,timestamp:new Date})}async wait(){return await this.resultPromise,this}async output(){let t=await this.resultPromise;return t.stdout+t.stderr}async stdout(){return(await this.resultPromise).stdout}async stderr(){return(await this.resultPromise).stderr}async kill(){this.abortController.abort(new Error("command killed"))}};var Ls=class e{bashEnv;timeoutMs;constructor(t,s){this.bashEnv=t,this.timeoutMs=s}static async create(t){let s=t?.fs;if(t?.overlayRoot){if(t?.fs)throw new Error("Cannot specify both 'fs' and 'overlayRoot' options");s=new At({root:t.overlayRoot})}let r=new zt({env:t?.env,cwd:t?.cwd,fs:s,maxCallDepth:t?.maxCallDepth,maxCommandCount:t?.maxCommandCount,maxLoopIterations:t?.maxLoopIterations,network:t?.network,defenseInDepth:t?.defenseInDepth});return new e(r,t?.timeoutMs)}async runCommand(t,s,r){let n,i,o,a,l=!1,c,u;if(typeof t=="object"){let p=t,y=[p.cmd,...p.args??[]];n=zs(y),i=p.cwd,o=p.env,a=p.signal,l=p.detached??!1,c=p.stdout,u=p.stderr}else if(Array.isArray(s)){let p=r;n=zs([t,...s]),a=p?.signal}else{n=t;let p=s;i=p?.cwd,o=p?.env}let f=i??this.bashEnv.getCwd(),d=i!==void 0,h=new kt(this.bashEnv,n,f,o,d,a,this.timeoutMs);if(l)return h;let m=await h.wait();if(c){let p=await h.stdout();p&&c.write(p)}if(u){let p=await h.stderr();p&&u.write(p)}return m}async writeFiles(t){let s=this.bashEnv.getCwd();for(let[r,n]of Object.entries(t)){let i;typeof n=="string"?i=n:n.encoding==="base64"?i=Buffer.from(n.content,"base64").toString("utf-8"):i=n.content;let o=this.bashEnv.fs.resolvePath(s,r),a=o.substring(0,o.lastIndexOf("/"))||"/";a!=="/"&&await this.bashEnv.fs.mkdir(a,{recursive:!0}),await this.bashEnv.writeFile(o,i)}}async readFile(t,s){let r=await this.bashEnv.readFile(t);return s==="base64"?Buffer.from(r).toString("base64"):r}async mkDir(t,s){let r=this.bashEnv.fs.resolvePath(this.bashEnv.getCwd(),t);await this.bashEnv.fs.mkdir(r,{recursive:s?.recursive??!1})}async stop(){}async extendTimeout(t){}get domain(){}get bashEnvInstance(){return this.bashEnv}};var Fs=class{violations=[];violationsByType=new Map;options;constructor(t={}){this.options={maxViolationsPerType:t.maxViolationsPerType??100,maxViolationsTotal:t.maxViolationsTotal??1e3,includeStackTraces:t.includeStackTraces??!0,onViolation:t.onViolation??(()=>{}),logToConsole:t.logToConsole??!1}}record(t){let s=this.options.includeStackTraces?t:{...t,stack:void 0};this.violations.unshift(s),this.violations.length>this.options.maxViolationsTotal&&(this.violations.length=this.options.maxViolationsTotal);let r=this.violationsByType.get(t.type);r||(r=[],this.violationsByType.set(t.type,r)),r.length<this.options.maxViolationsPerType&&r.push(s),this.options.logToConsole&&console.warn(`[SecurityViolation] ${t.type}: ${t.message}`,t.path),this.options.onViolation(s)}getViolations(){return[...this.violations]}getViolationsByType(t){return[...this.violationsByType.get(t)??[]]}getSummary(){let t=[];for(let[s,r]of this.violationsByType){if(r.length===0)continue;let n=new Set,i=Number.POSITIVE_INFINITY,o=0;for(let a of r)n.add(a.path),i=Math.min(i,a.timestamp),o=Math.max(o,a.timestamp);t.push({type:s,count:r.length,firstSeen:i,lastSeen:o,paths:Array.from(n)})}return t.sort((s,r)=>r.count-s.count),t}getTotalCount(){return this.violations.length}hasViolations(){return this.violations.length>0}clear(){this.violations=[],this.violationsByType.clear()}createCallback(){return t=>this.record(t)}};function io(){return e=>{console.warn("[DefenseInDepth] Security violation detected:",`
730
+ Type: ${e.type}`,`
731
+ Path: ${e.path}`,`
732
+ Message: ${e.message}`,e.executionId?`
733
+ ExecutionId: ${e.executionId}`:"")}}var en=class{plugins=[];use(t){return this.plugins.push(t),this}transform(t){let s=pe(t),r=Object.create(null);for(let n of this.plugins){let i=n.transform({ast:s,metadata:r});s=i.ast,i.metadata&&(r=xt(r,i.metadata))}return{script:Wt(s),ast:s,metadata:r}}};var tn=class{name="command-collector";transform(t){let s=new Set;return this.walkScript(t.ast,s),{ast:t.ast,metadata:{commands:[...s].sort()}}}walkScript(t,s){for(let r of t.statements)this.walkStatement(r,s)}walkStatement(t,s){for(let r of t.pipelines)this.walkPipeline(r,s)}walkPipeline(t,s){for(let r of t.commands)this.walkCommand(r,s)}walkCommand(t,s){switch(t.type){case"SimpleCommand":if(t.name){let r=this.extractName(t.name);r&&s.add(r)}t.name&&this.walkWordParts(t.name.parts,s);for(let r of t.args)this.walkWordParts(r.parts,s);for(let r of t.assignments)if(r.value&&this.walkWordParts(r.value.parts,s),r.array)for(let n of r.array)this.walkWordParts(n.parts,s);break;case"If":for(let r of t.clauses){for(let n of r.condition)this.walkStatement(n,s);for(let n of r.body)this.walkStatement(n,s)}if(t.elseBody)for(let r of t.elseBody)this.walkStatement(r,s);break;case"For":if(t.words)for(let r of t.words)this.walkWordParts(r.parts,s);for(let r of t.body)this.walkStatement(r,s);break;case"CStyleFor":for(let r of t.body)this.walkStatement(r,s);break;case"While":case"Until":for(let r of t.condition)this.walkStatement(r,s);for(let r of t.body)this.walkStatement(r,s);break;case"Case":this.walkWordParts(t.word.parts,s);for(let r of t.items)for(let n of r.body)this.walkStatement(n,s);break;case"Subshell":case"Group":for(let r of t.body)this.walkStatement(r,s);break;case"ArithmeticCommand":case"ConditionalCommand":break;case"FunctionDef":this.walkCommand(t.body,s);break}}walkWordParts(t,s){for(let r of t)switch(r.type){case"CommandSubstitution":this.walkScript(r.body,s);break;case"ProcessSubstitution":this.walkScript(r.body,s);break;case"DoubleQuoted":this.walkWordParts(r.parts,s);break;case"ParameterExpansion":r.operation&&this.walkParameterOp(r.operation,s);break}}walkParameterOp(t,s){switch(t.type){case"DefaultValue":case"AssignDefault":case"UseAlternative":this.walkWordParts(t.word.parts,s);break;case"ErrorIfUnset":t.word&&this.walkWordParts(t.word.parts,s);break;case"PatternRemoval":this.walkWordParts(t.pattern.parts,s);break;case"PatternReplacement":this.walkWordParts(t.pattern.parts,s),t.replacement&&this.walkWordParts(t.replacement.parts,s);break;case"CaseModification":t.pattern&&this.walkWordParts(t.pattern.parts,s);break;case"Indirection":t.innerOp&&this.walkParameterOp(t.innerOp,s);break}}extractName(t){return t.parts.length===1&&t.parts[0].type==="Literal"?t.parts[0].value:null}};var sn=class{name="tee";options;counter=0;constructor(t){this.options=t}transform(t){let s=[],r=this.options.timestamp??new Date;return{ast:this.transformScript(t.ast,s,r),metadata:{teeFiles:s}}}formatTimestamp(t){return t.toISOString().replace(/:/g,"-")}generateStdoutPath(t,s,r){let n=this.formatTimestamp(r),i=String(t).padStart(3,"0");return`${this.options.outputDir}/${n}-${i}-${s}.stdout.txt`}transformScript(t,s,r){return{...t,statements:t.statements.map(n=>this.transformStatement(n,s,r))}}transformStatement(t,s,r){let n=[],i=[];for(let o=0;o<t.pipelines.length;o++){let a=t.pipelines[o];o>0&&i.push(t.operators[o-1]);let l=this.transformPipeline(a,s,r);if(n.push(l.pipeline),l.origCmdNewIndices!==null){let c=l.origCmdNewIndices;i.push(";"),n.push(this.makePipestatusSave(c)),i.push(";"),n.push(this.makePipestatusRestore(c.length,l.negated))}}return{...t,pipelines:n,operators:i}}transformPipeline(t,s,r){if(t.commands.length<=1)return{pipeline:t,origCmdNewIndices:null,negated:!1};let n=[],i=[],o=[],a=!1;for(let l=0;l<t.commands.length;l++){let c=t.commands[l],u=l===t.commands.length-1;if(c.type!=="SimpleCommand"||!c.name||!this.shouldTarget(c)){o.push(n.length),n.push(c),u||i.push(t.pipeStderr?.[l]??!1);continue}let f=this.getCommandName(c.name)??"unknown",d=this.counter++,h=this.generateStdoutPath(d,f,r),m=this.makeTeeCommand(h),p=this.serializeCommand(c);s.push({commandIndex:d,commandName:f,command:p,stdoutFile:h}),o.push(n.length),n.push(c),i.push(t.pipeStderr?.[l]??!1),n.push(m),u||i.push(!1),a=!0}return a?{pipeline:{...t,negated:!1,commands:n,pipeStderr:i.length>0?i:void 0},origCmdNewIndices:o,negated:t.negated}:{pipeline:t,origCmdNewIndices:null,negated:!1}}makePipestatusSave(t){return{type:"Pipeline",commands:[{type:"SimpleCommand",assignments:t.map((s,r)=>({type:"Assignment",name:`__tps${r}`,value:{type:"Word",parts:[{type:"ParameterExpansion",parameter:`PIPESTATUS[${s}]`,operation:null}]},append:!1,array:null})),name:null,args:[],redirections:[]}],negated:!1}}makePipestatusRestore(t,s){let r=[];for(let n=0;n<t;n++)r.push({type:"Subshell",body:[{type:"Statement",pipelines:[{type:"Pipeline",commands:[{type:"SimpleCommand",assignments:[],name:{type:"Word",parts:[{type:"Literal",value:"exit"}]},args:[{type:"Word",parts:[{type:"ParameterExpansion",parameter:`__tps${n}`,operation:null}]}],redirections:[]}],negated:!1}],operators:[],background:!1}],redirections:[]});return{type:"Pipeline",commands:r,negated:s}}shouldTarget(t){if(!this.options.targetCommandPattern)return!0;let s=this.getCommandName(t.name);return s!==null&&this.options.targetCommandPattern.test(s)}getCommandName(t){return t&&t.parts.length===1&&t.parts[0].type==="Literal"?t.parts[0].value:null}serializeCommand(t){let s=[];t.name&&s.push(ie(t.name));for(let r of t.args)s.push(ie(r));return s.join(" ")}makeTeeCommand(t){return{type:"SimpleCommand",assignments:[],name:{type:"Word",parts:[{type:"Literal",value:"tee"}]},args:[{type:"Word",parts:[{type:"Literal",value:t}]}],redirections:[]}}};export{zt as Bash,en as BashTransformPipeline,tn as CommandCollectorPlugin,de as DefenseInDepthBox,uo as EMPTY_BYTES,je as InMemoryFs,Ts as MountableFs,_e as NetworkAccessDeniedError,At as OverlayFs,Is as ReadWriteFs,St as RedirectNotAllowedError,Ls as Sandbox,kt as SandboxCommand,We as SecurityViolationError,Fs as SecurityViolationLogger,sn as TeePlugin,$t as TooManyRedirectsError,po as bytesOutput,io as createConsoleViolationCallback,co as decodeBytesToUtf8,vo as defineCommand,Ue as encodeUtf8ToBytes,mo as getCommandNames,wo as getJavaScriptCommandNames,yo as getNetworkCommandNames,go as getPythonCommandNames,jt as latin1FromBytes,pe as parse,Wt as serialize,Ht as stdoutAsBytes,fo as stdoutKind,ho as textOutput,_t as unsafeBytesFromLatin1};