just-bash 1.3.0 → 1.4.0

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 (307) hide show
  1. package/README.md +3 -3
  2. package/dist/ast/types.d.ts +2 -0
  3. package/dist/bin/chunks/hostname-CV7CGKRN.js +3 -0
  4. package/dist/bin/chunks/od-TXTSFFJY.js +7 -0
  5. package/dist/bin/chunks/tac-F4GC3MAI.js +9 -0
  6. package/dist/bin/just-bash.js +125 -115
  7. package/dist/bin/shell/chunks/hostname-CV7CGKRN.js +3 -0
  8. package/dist/bin/shell/chunks/od-TXTSFFJY.js +7 -0
  9. package/dist/bin/shell/chunks/tac-F4GC3MAI.js +9 -0
  10. package/dist/bin/shell/shell.js +105 -95
  11. package/dist/bundle/ai/index.js +418 -395
  12. package/dist/bundle/chunks/hostname-K4BA3P6X.js +2 -0
  13. package/dist/bundle/chunks/od-SOCTFI2F.js +6 -0
  14. package/dist/bundle/chunks/tac-VIFKNLII.js +8 -0
  15. package/dist/bundle/index.js +121 -111
  16. package/dist/commands/hostname/hostname.d.ts +9 -0
  17. package/dist/commands/od/od.d.ts +10 -0
  18. package/dist/commands/registry.d.ts +1 -1
  19. package/dist/commands/tac/tac.d.ts +9 -0
  20. package/dist/interpreter/builtins/index.d.ts +1 -0
  21. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  22. package/dist/interpreter/types.d.ts +6 -0
  23. package/dist/shell-metadata.d.ts +28 -0
  24. package/package.json +2 -2
  25. package/dist/bin/chunks/alias-74DFXE2E.js +0 -7
  26. package/dist/bin/chunks/awk-S63F6IYK.js +0 -15
  27. package/dist/bin/chunks/awk2-4DKPX43H.js +0 -20
  28. package/dist/bin/chunks/awk2-6XCE67AX.js +0 -20
  29. package/dist/bin/chunks/awk2-DKAZ7LPG.js +0 -20
  30. package/dist/bin/chunks/awk2-GAJ72X3Z.js +0 -20
  31. package/dist/bin/chunks/awk2-HJAPWU2N.js +0 -18
  32. package/dist/bin/chunks/awk2-LVXC5OAC.js +0 -20
  33. package/dist/bin/chunks/awk2-T6HR4EYO.js +0 -20
  34. package/dist/bin/chunks/awk2-UYU2UYZ2.js +0 -20
  35. package/dist/bin/chunks/awk2-W64AZN7P.js +0 -20
  36. package/dist/bin/chunks/base64-KNBBHA5Y.js +0 -5
  37. package/dist/bin/chunks/base64-NC7HTKLZ.js +0 -5
  38. package/dist/bin/chunks/basename-Y7JDBYHN.js +0 -6
  39. package/dist/bin/chunks/bash-5IWSVGHN.js +0 -7
  40. package/dist/bin/chunks/bash-TQGTNXAE.js +0 -7
  41. package/dist/bin/chunks/cat-YZXBF5YF.js +0 -6
  42. package/dist/bin/chunks/chmod-3G4LK462.js +0 -9
  43. package/dist/bin/chunks/chunk-5KNEBKYN.js +0 -2
  44. package/dist/bin/chunks/chunk-6QUZ7QML.js +0 -3
  45. package/dist/bin/chunks/chunk-7Q4WQLOS.js +0 -9
  46. package/dist/bin/chunks/chunk-LV662IGP.js +0 -6
  47. package/dist/bin/chunks/clear-GTCFHSB2.js +0 -2
  48. package/dist/bin/chunks/cp-77UY7PGN.js +0 -8
  49. package/dist/bin/chunks/curl-NE7XEWMN.js +0 -26
  50. package/dist/bin/chunks/cut-UYV3FM7R.js +0 -6
  51. package/dist/bin/chunks/date-7NBRXV2Z.js +0 -5
  52. package/dist/bin/chunks/diff-TG2NXCX2.js +0 -19
  53. package/dist/bin/chunks/dirname-VLHP44TU.js +0 -5
  54. package/dist/bin/chunks/du-4FZ7WF2P.js +0 -8
  55. package/dist/bin/chunks/echo-DEUIS5JO.js +0 -4
  56. package/dist/bin/chunks/env-AKGX6HSG.js +0 -9
  57. package/dist/bin/chunks/env-FVITWNHG.js +0 -9
  58. package/dist/bin/chunks/expr-HA2ZNL6S.js +0 -5
  59. package/dist/bin/chunks/file-Q4UOC4J2.js +0 -23
  60. package/dist/bin/chunks/find-4B67H4RP.js +0 -11
  61. package/dist/bin/chunks/find-7BUNQZX4.js +0 -11
  62. package/dist/bin/chunks/find-AMA6ABN5.js +0 -11
  63. package/dist/bin/chunks/find-HW2TUO6B.js +0 -11
  64. package/dist/bin/chunks/find-JADNFF7V.js +0 -11
  65. package/dist/bin/chunks/find-NCI6KGUI.js +0 -11
  66. package/dist/bin/chunks/find-QEYP42JQ.js +0 -11
  67. package/dist/bin/chunks/find-WJV3FM6L.js +0 -11
  68. package/dist/bin/chunks/find-YATLECXJ.js +0 -11
  69. package/dist/bin/chunks/grep-OVWU4WCZ.js +0 -15
  70. package/dist/bin/chunks/grep-PHBFGJCV.js +0 -15
  71. package/dist/bin/chunks/head-VGXR3WWL.js +0 -2
  72. package/dist/bin/chunks/help-5V3MPCYQ.js +0 -16
  73. package/dist/bin/chunks/help-YQGNAT2T.js +0 -16
  74. package/dist/bin/chunks/history-PRQ4B6N2.js +0 -3
  75. package/dist/bin/chunks/html-to-markdown-L4UWMK4S.js +0 -84
  76. package/dist/bin/chunks/jq-EYSXBSCP.js +0 -14
  77. package/dist/bin/chunks/ln-DB7J2W5X.js +0 -10
  78. package/dist/bin/chunks/ls-C4MPAF3H.js +0 -26
  79. package/dist/bin/chunks/md5sum-KZ4MRIXM.js +0 -2
  80. package/dist/bin/chunks/mkdir-LWULWDHP.js +0 -7
  81. package/dist/bin/chunks/mv-TDYCNSIQ.js +0 -7
  82. package/dist/bin/chunks/paste-R36J3G4K.js +0 -8
  83. package/dist/bin/chunks/printf-ASOYDPIK.js +0 -14
  84. package/dist/bin/chunks/printf-BOFQVMMK.js +0 -15
  85. package/dist/bin/chunks/printf-WM4X6IZ6.js +0 -14
  86. package/dist/bin/chunks/pwd-X4MWD4JP.js +0 -3
  87. package/dist/bin/chunks/readlink-DPNOQY67.js +0 -7
  88. package/dist/bin/chunks/rm-W6CCBEMG.js +0 -8
  89. package/dist/bin/chunks/sed-7IS44XON.js +0 -48
  90. package/dist/bin/chunks/sed-B6FXUN7R.js +0 -80
  91. package/dist/bin/chunks/sed-LTCVBSRV.js +0 -80
  92. package/dist/bin/chunks/sed-RHLDIXPL.js +0 -76
  93. package/dist/bin/chunks/sed-SYSATJXR.js +0 -75
  94. package/dist/bin/chunks/seq-DGJILX2Q.js +0 -7
  95. package/dist/bin/chunks/sha1sum-XLRE72T4.js +0 -2
  96. package/dist/bin/chunks/sha256sum-BBKWFA43.js +0 -2
  97. package/dist/bin/chunks/sleep-E4DIYGTT.js +0 -10
  98. package/dist/bin/chunks/sort-NCQNGVCX.js +0 -16
  99. package/dist/bin/chunks/sort-UJP353TM.js +0 -15
  100. package/dist/bin/chunks/sort-WGKQ3WYR.js +0 -15
  101. package/dist/bin/chunks/stat-3PHITCPO.js +0 -9
  102. package/dist/bin/chunks/tail-YSVKBQ77.js +0 -2
  103. package/dist/bin/chunks/tee-UU2VS3OM.js +0 -3
  104. package/dist/bin/chunks/timeout-OZVAGW2H.js +0 -12
  105. package/dist/bin/chunks/timeout-RP2AJGMV.js +0 -12
  106. package/dist/bin/chunks/touch-XCIAYF5I.js +0 -4
  107. package/dist/bin/chunks/tr-2EEKHHO6.js +0 -20
  108. package/dist/bin/chunks/tree-4247W67O.js +0 -12
  109. package/dist/bin/chunks/true-JCX733LK.js +0 -2
  110. package/dist/bin/chunks/uniq-W4HF6YSB.js +0 -5
  111. package/dist/bin/chunks/wc-CNJ3QDRA.js +0 -6
  112. package/dist/bin/chunks/which-HX2NMOP3.js +0 -3
  113. package/dist/bin/chunks/xargs-DKUAYNEK.js +0 -4
  114. package/dist/bin/chunks/xargs-XAZFX5J3.js +0 -4
  115. package/dist/bin/chunks/xargs-YNLVLPOF.js +0 -4
  116. package/dist/bin/shell/chunks/alias-74DFXE2E.js +0 -7
  117. package/dist/bin/shell/chunks/awk-S63F6IYK.js +0 -15
  118. package/dist/bin/shell/chunks/awk2-4DKPX43H.js +0 -20
  119. package/dist/bin/shell/chunks/awk2-6XCE67AX.js +0 -20
  120. package/dist/bin/shell/chunks/awk2-DKAZ7LPG.js +0 -20
  121. package/dist/bin/shell/chunks/awk2-GAJ72X3Z.js +0 -20
  122. package/dist/bin/shell/chunks/awk2-HJAPWU2N.js +0 -18
  123. package/dist/bin/shell/chunks/awk2-LVXC5OAC.js +0 -20
  124. package/dist/bin/shell/chunks/awk2-T6HR4EYO.js +0 -20
  125. package/dist/bin/shell/chunks/awk2-UYU2UYZ2.js +0 -20
  126. package/dist/bin/shell/chunks/awk2-W64AZN7P.js +0 -20
  127. package/dist/bin/shell/chunks/base64-KNBBHA5Y.js +0 -5
  128. package/dist/bin/shell/chunks/base64-NC7HTKLZ.js +0 -5
  129. package/dist/bin/shell/chunks/basename-Y7JDBYHN.js +0 -6
  130. package/dist/bin/shell/chunks/bash-5IWSVGHN.js +0 -7
  131. package/dist/bin/shell/chunks/bash-TQGTNXAE.js +0 -7
  132. package/dist/bin/shell/chunks/cat-YZXBF5YF.js +0 -6
  133. package/dist/bin/shell/chunks/chmod-3G4LK462.js +0 -9
  134. package/dist/bin/shell/chunks/chunk-5KNEBKYN.js +0 -2
  135. package/dist/bin/shell/chunks/chunk-6QUZ7QML.js +0 -3
  136. package/dist/bin/shell/chunks/chunk-7Q4WQLOS.js +0 -9
  137. package/dist/bin/shell/chunks/chunk-LV662IGP.js +0 -6
  138. package/dist/bin/shell/chunks/clear-GTCFHSB2.js +0 -2
  139. package/dist/bin/shell/chunks/cp-77UY7PGN.js +0 -8
  140. package/dist/bin/shell/chunks/curl-NE7XEWMN.js +0 -26
  141. package/dist/bin/shell/chunks/cut-UYV3FM7R.js +0 -6
  142. package/dist/bin/shell/chunks/date-7NBRXV2Z.js +0 -5
  143. package/dist/bin/shell/chunks/diff-TG2NXCX2.js +0 -19
  144. package/dist/bin/shell/chunks/dirname-VLHP44TU.js +0 -5
  145. package/dist/bin/shell/chunks/du-4FZ7WF2P.js +0 -8
  146. package/dist/bin/shell/chunks/echo-DEUIS5JO.js +0 -4
  147. package/dist/bin/shell/chunks/env-AKGX6HSG.js +0 -9
  148. package/dist/bin/shell/chunks/env-FVITWNHG.js +0 -9
  149. package/dist/bin/shell/chunks/expr-HA2ZNL6S.js +0 -5
  150. package/dist/bin/shell/chunks/file-Q4UOC4J2.js +0 -23
  151. package/dist/bin/shell/chunks/find-4B67H4RP.js +0 -11
  152. package/dist/bin/shell/chunks/find-7BUNQZX4.js +0 -11
  153. package/dist/bin/shell/chunks/find-AMA6ABN5.js +0 -11
  154. package/dist/bin/shell/chunks/find-HW2TUO6B.js +0 -11
  155. package/dist/bin/shell/chunks/find-JADNFF7V.js +0 -11
  156. package/dist/bin/shell/chunks/find-NCI6KGUI.js +0 -11
  157. package/dist/bin/shell/chunks/find-QEYP42JQ.js +0 -11
  158. package/dist/bin/shell/chunks/find-WJV3FM6L.js +0 -11
  159. package/dist/bin/shell/chunks/find-YATLECXJ.js +0 -11
  160. package/dist/bin/shell/chunks/grep-OVWU4WCZ.js +0 -15
  161. package/dist/bin/shell/chunks/grep-PHBFGJCV.js +0 -15
  162. package/dist/bin/shell/chunks/head-VGXR3WWL.js +0 -2
  163. package/dist/bin/shell/chunks/help-5V3MPCYQ.js +0 -16
  164. package/dist/bin/shell/chunks/help-YQGNAT2T.js +0 -16
  165. package/dist/bin/shell/chunks/history-PRQ4B6N2.js +0 -3
  166. package/dist/bin/shell/chunks/html-to-markdown-L4UWMK4S.js +0 -84
  167. package/dist/bin/shell/chunks/jq-EYSXBSCP.js +0 -14
  168. package/dist/bin/shell/chunks/ln-DB7J2W5X.js +0 -10
  169. package/dist/bin/shell/chunks/ls-C4MPAF3H.js +0 -26
  170. package/dist/bin/shell/chunks/md5sum-KZ4MRIXM.js +0 -2
  171. package/dist/bin/shell/chunks/mkdir-LWULWDHP.js +0 -7
  172. package/dist/bin/shell/chunks/mv-TDYCNSIQ.js +0 -7
  173. package/dist/bin/shell/chunks/paste-R36J3G4K.js +0 -8
  174. package/dist/bin/shell/chunks/printf-ASOYDPIK.js +0 -14
  175. package/dist/bin/shell/chunks/printf-BOFQVMMK.js +0 -15
  176. package/dist/bin/shell/chunks/printf-WM4X6IZ6.js +0 -14
  177. package/dist/bin/shell/chunks/pwd-X4MWD4JP.js +0 -3
  178. package/dist/bin/shell/chunks/readlink-DPNOQY67.js +0 -7
  179. package/dist/bin/shell/chunks/rm-W6CCBEMG.js +0 -8
  180. package/dist/bin/shell/chunks/sed-7IS44XON.js +0 -48
  181. package/dist/bin/shell/chunks/sed-B6FXUN7R.js +0 -80
  182. package/dist/bin/shell/chunks/sed-LTCVBSRV.js +0 -80
  183. package/dist/bin/shell/chunks/sed-RHLDIXPL.js +0 -76
  184. package/dist/bin/shell/chunks/sed-SYSATJXR.js +0 -75
  185. package/dist/bin/shell/chunks/seq-DGJILX2Q.js +0 -7
  186. package/dist/bin/shell/chunks/sha1sum-XLRE72T4.js +0 -2
  187. package/dist/bin/shell/chunks/sha256sum-BBKWFA43.js +0 -2
  188. package/dist/bin/shell/chunks/sleep-E4DIYGTT.js +0 -10
  189. package/dist/bin/shell/chunks/sort-NCQNGVCX.js +0 -16
  190. package/dist/bin/shell/chunks/sort-UJP353TM.js +0 -15
  191. package/dist/bin/shell/chunks/sort-WGKQ3WYR.js +0 -15
  192. package/dist/bin/shell/chunks/stat-3PHITCPO.js +0 -9
  193. package/dist/bin/shell/chunks/tail-YSVKBQ77.js +0 -2
  194. package/dist/bin/shell/chunks/tee-UU2VS3OM.js +0 -3
  195. package/dist/bin/shell/chunks/timeout-OZVAGW2H.js +0 -12
  196. package/dist/bin/shell/chunks/timeout-RP2AJGMV.js +0 -12
  197. package/dist/bin/shell/chunks/touch-XCIAYF5I.js +0 -4
  198. package/dist/bin/shell/chunks/tr-2EEKHHO6.js +0 -20
  199. package/dist/bin/shell/chunks/tree-4247W67O.js +0 -12
  200. package/dist/bin/shell/chunks/true-JCX733LK.js +0 -2
  201. package/dist/bin/shell/chunks/uniq-W4HF6YSB.js +0 -5
  202. package/dist/bin/shell/chunks/wc-CNJ3QDRA.js +0 -6
  203. package/dist/bin/shell/chunks/which-HX2NMOP3.js +0 -3
  204. package/dist/bin/shell/chunks/xargs-DKUAYNEK.js +0 -4
  205. package/dist/bin/shell/chunks/xargs-XAZFX5J3.js +0 -4
  206. package/dist/bin/shell/chunks/xargs-YNLVLPOF.js +0 -4
  207. package/dist/bundle/chunks/alias-7ZSTROM7.js +0 -6
  208. package/dist/bundle/chunks/awk-V4C3GTJI.js +0 -14
  209. package/dist/bundle/chunks/awk2-365HINHI.js +0 -19
  210. package/dist/bundle/chunks/awk2-4YCQ6UCB.js +0 -19
  211. package/dist/bundle/chunks/awk2-7YCFY7D2.js +0 -19
  212. package/dist/bundle/chunks/awk2-7YL3P4KU.js +0 -19
  213. package/dist/bundle/chunks/awk2-ETXZHQQ4.js +0 -19
  214. package/dist/bundle/chunks/awk2-FMEL7ESV.js +0 -19
  215. package/dist/bundle/chunks/awk2-LE4QUFGK.js +0 -19
  216. package/dist/bundle/chunks/awk2-MGHA6JPJ.js +0 -17
  217. package/dist/bundle/chunks/awk2-XEAK5PBN.js +0 -19
  218. package/dist/bundle/chunks/base64-JN6XXTIG.js +0 -4
  219. package/dist/bundle/chunks/base64-WATI5PWI.js +0 -4
  220. package/dist/bundle/chunks/basename-SB5JXIY3.js +0 -5
  221. package/dist/bundle/chunks/bash-5WG5RD6L.js +0 -6
  222. package/dist/bundle/chunks/bash-T4PXVRYX.js +0 -6
  223. package/dist/bundle/chunks/cat-5KESXK2M.js +0 -5
  224. package/dist/bundle/chunks/chmod-VLKWIL3N.js +0 -8
  225. package/dist/bundle/chunks/chunk-4HEWHW5W.js +0 -8
  226. package/dist/bundle/chunks/chunk-JYYFSUWP.js +0 -5
  227. package/dist/bundle/chunks/chunk-TDJNT32M.js +0 -2
  228. package/dist/bundle/chunks/clear-ZBD2DMXN.js +0 -1
  229. package/dist/bundle/chunks/cp-BLHAPLQZ.js +0 -7
  230. package/dist/bundle/chunks/curl-PA2MWGKN.js +0 -25
  231. package/dist/bundle/chunks/cut-7RHEYJ7Y.js +0 -5
  232. package/dist/bundle/chunks/date-YOOSNZVA.js +0 -4
  233. package/dist/bundle/chunks/diff-IVJFQANX.js +0 -6
  234. package/dist/bundle/chunks/dirname-Q5HDZLH2.js +0 -4
  235. package/dist/bundle/chunks/du-I5HYAKTQ.js +0 -7
  236. package/dist/bundle/chunks/echo-W2TA2N7Y.js +0 -3
  237. package/dist/bundle/chunks/env-2F2VHNYS.js +0 -8
  238. package/dist/bundle/chunks/env-OORA5GFS.js +0 -8
  239. package/dist/bundle/chunks/expr-A4LJAGVP.js +0 -4
  240. package/dist/bundle/chunks/file-JMDIXLHY.js +0 -22
  241. package/dist/bundle/chunks/find-3O5V74IR.js +0 -10
  242. package/dist/bundle/chunks/find-4QUN2ATO.js +0 -10
  243. package/dist/bundle/chunks/find-522XP4ZY.js +0 -10
  244. package/dist/bundle/chunks/find-5UN24ZV7.js +0 -10
  245. package/dist/bundle/chunks/find-JXG2HF6L.js +0 -10
  246. package/dist/bundle/chunks/find-K3NO35MZ.js +0 -10
  247. package/dist/bundle/chunks/find-K7D4PKHS.js +0 -10
  248. package/dist/bundle/chunks/find-KP4M5DWC.js +0 -10
  249. package/dist/bundle/chunks/find-WM6ZETA7.js +0 -10
  250. package/dist/bundle/chunks/grep-3D2INI4S.js +0 -14
  251. package/dist/bundle/chunks/grep-CZTYKNEE.js +0 -14
  252. package/dist/bundle/chunks/head-7H5R4WKO.js +0 -1
  253. package/dist/bundle/chunks/help-SDCRRU2F.js +0 -15
  254. package/dist/bundle/chunks/help-XHGUXTV3.js +0 -15
  255. package/dist/bundle/chunks/history-7Z2STZ6Y.js +0 -2
  256. package/dist/bundle/chunks/html-to-markdown-XMBYO6FD.js +0 -4
  257. package/dist/bundle/chunks/jq-7R2XGLLH.js +0 -13
  258. package/dist/bundle/chunks/ln-UTUVIAFP.js +0 -9
  259. package/dist/bundle/chunks/ls-B7C35UDO.js +0 -23
  260. package/dist/bundle/chunks/md5sum-3BXZVFKC.js +0 -1
  261. package/dist/bundle/chunks/mkdir-WYI2LJ6H.js +0 -6
  262. package/dist/bundle/chunks/mv-GN23UIZU.js +0 -6
  263. package/dist/bundle/chunks/paste-L4TYPVSP.js +0 -7
  264. package/dist/bundle/chunks/printf-3ZT5XOIZ.js +0 -14
  265. package/dist/bundle/chunks/printf-G2SBUNW3.js +0 -13
  266. package/dist/bundle/chunks/printf-O2UW73XK.js +0 -13
  267. package/dist/bundle/chunks/pwd-ZVX5RTL4.js +0 -2
  268. package/dist/bundle/chunks/readlink-HHC33N5C.js +0 -6
  269. package/dist/bundle/chunks/rm-5X2XSQQ6.js +0 -7
  270. package/dist/bundle/chunks/sed-2WWCANZT.js +0 -79
  271. package/dist/bundle/chunks/sed-5LZHAGFR.js +0 -74
  272. package/dist/bundle/chunks/sed-IGVS3UIY.js +0 -79
  273. package/dist/bundle/chunks/sed-UZJSXYQZ.js +0 -47
  274. package/dist/bundle/chunks/sed-V7XSBPTD.js +0 -75
  275. package/dist/bundle/chunks/seq-TFPZQZPJ.js +0 -6
  276. package/dist/bundle/chunks/sha1sum-MSBXCB4N.js +0 -1
  277. package/dist/bundle/chunks/sha256sum-YMKJMSTW.js +0 -1
  278. package/dist/bundle/chunks/sleep-QJBQD6VS.js +0 -9
  279. package/dist/bundle/chunks/sort-LHMQWYH2.js +0 -14
  280. package/dist/bundle/chunks/sort-R3YWDMTV.js +0 -14
  281. package/dist/bundle/chunks/sort-TEXV7CUR.js +0 -15
  282. package/dist/bundle/chunks/stat-TM5F5YO4.js +0 -8
  283. package/dist/bundle/chunks/tail-BLGGG2VX.js +0 -1
  284. package/dist/bundle/chunks/tee-VCNOG5VI.js +0 -2
  285. package/dist/bundle/chunks/timeout-THAT7IOO.js +0 -11
  286. package/dist/bundle/chunks/timeout-VG2N46UR.js +0 -11
  287. package/dist/bundle/chunks/touch-Z5XRYFYY.js +0 -3
  288. package/dist/bundle/chunks/tr-UV4V27RJ.js +0 -19
  289. package/dist/bundle/chunks/tree-75UXQ4XJ.js +0 -11
  290. package/dist/bundle/chunks/true-OD7ZXH3O.js +0 -1
  291. package/dist/bundle/chunks/uniq-IIOQKNTS.js +0 -4
  292. package/dist/bundle/chunks/wc-OXLYBRUE.js +0 -5
  293. package/dist/bundle/chunks/which-ONWH3TNF.js +0 -2
  294. package/dist/bundle/chunks/xargs-752VENJT.js +0 -3
  295. package/dist/bundle/chunks/xargs-7KV5F66T.js +0 -3
  296. package/dist/bundle/chunks/xargs-E5JPQL24.js +0 -3
  297. package/dist/commands/awk/awk.d.ts +0 -2
  298. package/dist/commands/awk/executor.d.ts +0 -3
  299. package/dist/commands/awk/expressions.d.ts +0 -3
  300. package/dist/commands/awk/functions.d.ts +0 -12
  301. package/dist/commands/awk/interpreter2.d.ts +0 -90
  302. package/dist/commands/awk/parser.d.ts +0 -3
  303. package/dist/commands/awk/types.d.ts +0 -44
  304. package/dist/fs-interface.d.ts +0 -186
  305. package/dist/fs.d.ts +0 -39
  306. package/dist/overlay-fs/OverlayFs.d.ts +0 -87
  307. package/dist/overlay-fs/index.d.ts +0 -1
@@ -1,19 +0,0 @@
1
- import{i as L}from"./chunk-JYYFSUWP.js";import{a as K,b as Q,c as U}from"./chunk-74CEPOFO.js";function x(e={}){let{fieldSep:t=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=1e3,fs:a,cwd:s}=e;return{FS:" ",OFS:" ",ORS:`
2
- `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:t,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:a,cwd:s}}function j(e,t,r){switch(r){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return t!==0?e/t:0;case"%":return t!==0?e%t:0;case"^":case"**":return e**t;default:return 0}}function A(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function w(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}async function ce(e,t,r){return e.length===0?t.line.length:w(await r.evalExpr(e[0])).length}async function he(e,t,r){if(e.length<2)return"";let n=w(await r.evalExpr(e[0])),a=Math.floor(A(await r.evalExpr(e[1])))-1;if(e.length>=3){let s=Math.floor(A(await r.evalExpr(e[2])));return n.substr(Math.max(0,a),s)}return n.substr(Math.max(0,a))}async function ue(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=w(await r.evalExpr(e[1])),s=n.indexOf(a);return s===-1?0:s+1}async function pe(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=e[1];if(a.type!=="variable")return 0;let s=a.name,o=t.FS;if(e.length>=3){let u=w(await r.evalExpr(e[2]));o=u===" "?/\s+/:u}else t.FS===" "&&(o=/\s+/);let l=n.split(o);t.arrays[s]={};for(let u=0;u<l.length;u++)t.arrays[s][String(u+1)]=l[u];return l.length}async function fe(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(A(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n),u=o.replace(l,z(a)),m=u!==o?1:0;if(s==="$0")t.line=u,t.fields=t.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let N=parseInt(s.slice(1),10)-1;for(;t.fields.length<=N;)t.fields.push("");t.fields[N]=u,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=u;return m}catch{return 0}}async function de(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(A(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n,"g"),u=o.match(l),m=u?u.length:0,N=o.replace(l,z(a));if(s==="$0")t.line=N,t.fields=t.FS===" "?N.trim().split(/\s+/).filter(Boolean):N.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let c=parseInt(s.slice(1),10)-1;for(;t.fields.length<=c;)t.fields.push("");t.fields[c]=N,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=N;return m}catch{return 0}}function z(e){return t=>{let r="",n=0;for(;n<e.length;)if(e[n]==="\\"&&n+1<e.length){let a=e[n+1];a==="&"?(r+="&",n+=2):a==="\\"?(r+="\\",n+=2):(r+=e[n+1],n+=2)}else e[n]==="&"?(r+=t,n++):(r+=e[n],n++);return r}}async function Ee(e,t,r){if(e.length<2)return t.RSTART=0,t.RLENGTH=-1,0;let n=w(await r.evalExpr(e[0])),a;e[1].type==="regex"?a=e[1].pattern:(a=w(await r.evalExpr(e[1])),a.startsWith("/")&&a.endsWith("/")&&(a=a.slice(1,-1)));try{let o=new RegExp(a).exec(n);if(o)return t.RSTART=o.index+1,t.RLENGTH=o[0].length,t.RSTART}catch{}return t.RSTART=0,t.RLENGTH=-1,0}async function Ne(e,t,r){if(e.length<3)return"";let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s=w(await r.evalExpr(e[2])),o=e.length>=4?w(await r.evalExpr(e[3])):t.line;try{let l=s.toLowerCase()==="g",u=l?0:parseInt(s,10)||1;if(l){let m=new RegExp(n,"g");return o.replace(m,(N,...c)=>q(a,N,c.slice(0,-2)))}else{let m=0,N=new RegExp(n,"g");return o.replace(N,(c,...d)=>(m++,m===u?q(a,c,d.slice(0,-2)):c))}}catch{return o}}function q(e,t,r){let n="",a=0;for(;a<e.length;)if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];if(s==="&")n+="&",a+=2;else if(s==="0")n+=t,a+=2;else if(s>="1"&&s<="9"){let o=parseInt(s,10)-1;n+=r[o]||"",a+=2}else s==="n"?(n+=`
3
- `,a+=2):s==="t"?(n+=" ",a+=2):(n+=s,a+=2)}else e[a]==="&"?(n+=t,a++):(n+=e[a],a++);return n}async function ye(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toLowerCase()}async function me(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toUpperCase()}async function we(e,t,r){if(e.length===0)return"";let n=w(await r.evalExpr(e[0])),a=[];for(let s=1;s<e.length;s++)a.push(await r.evalExpr(e[s]));return W(n,a)}async function Re(e,t,r){return e.length===0?0:Math.floor(A(await r.evalExpr(e[0])))}async function Se(e,t,r){return e.length===0?0:Math.sqrt(A(await r.evalExpr(e[0])))}async function Ae(e,t,r){return e.length===0?0:Math.sin(A(await r.evalExpr(e[0])))}async function ge(e,t,r){return e.length===0?0:Math.cos(A(await r.evalExpr(e[0])))}async function ve(e,t,r){let n=e.length>0?A(await r.evalExpr(e[0])):0,a=e.length>1?A(await r.evalExpr(e[1])):0;return Math.atan2(n,a)}async function ke(e,t,r){return e.length===0?0:Math.log(A(await r.evalExpr(e[0])))}async function Ie(e,t,r){return e.length===0?1:Math.exp(A(await r.evalExpr(e[0])))}function Ce(e,t,r){return t.random?t.random():Math.random()}async function be(e,t,r){let n=e.length>0?A(await r.evalExpr(e[0])):Date.now();return t.vars._srand_seed=n,n}function H(e,t){return()=>{throw new Error(`${e}() is not supported - ${t}`)}}function $(e){return()=>{throw new Error(`function '${e}()' is not implemented`)}}function W(e,t){let r=0,n="",a=0;for(;a<e.length;)if(e[a]==="%"&&a+1<e.length){let s=a+1,o="",l="",u="";for(;s<e.length&&/[-+ #0]/.test(e[s]);)o+=e[s++];for(;s<e.length&&/\d/.test(e[s]);)l+=e[s++];if(e[s]===".")for(s++;s<e.length&&/\d/.test(e[s]);)u+=e[s++];let m=e[s],N=t[r];switch(m){case"s":{let c=N!==void 0?String(N):"";if(u&&(c=c.substring(0,parseInt(u,10))),l){let d=parseInt(l,10);o.includes("-")?c=c.padEnd(d):c=c.padStart(d)}n+=c,r++;break}case"d":case"i":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=String(c);if(l){let h=parseInt(l,10);if(o.includes("-"))d=d.padEnd(h);else if(o.includes("0")&&!o.includes("-")){let f=c<0?"-":"";d=f+Math.abs(c).toString().padStart(h-f.length,"0")}else d=d.padStart(h)}n+=d,r++;break}case"f":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toFixed(d);if(l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"e":case"E":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toExponential(d);if(m==="E"&&(h=h.toUpperCase()),l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"g":case"G":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c!==0?Math.floor(Math.log10(Math.abs(c))):0,f;if(c===0?f="0":h<-4||h>=d?(f=c.toExponential(d-1),m==="G"&&(f=f.toUpperCase())):f=c.toPrecision(d),f=f.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),l){let S=parseInt(l,10);o.includes("-")?f=f.padEnd(S):f=f.padStart(S)}n+=f,r++;break}case"x":case"X":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(16);if(m==="X"&&(d=d.toUpperCase()),l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"o":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(8);if(l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"c":{typeof N=="number"?n+=String.fromCharCode(N):n+=String(N??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=e.substring(a,s+1)}a=s+1}else if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];switch(s){case"n":n+=`
4
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=s}a+=2}else n+=e[a++];return n}var Z={length:ce,substr:he,index:ue,split:pe,sub:fe,gsub:de,match:Ee,gensub:Ne,tolower:ye,toupper:me,sprintf:we,int:Re,sqrt:Se,sin:Ae,cos:ge,atan2:ve,log:ke,exp:Ie,rand:Ce,srand:be,system:H("system","shell execution not allowed in sandboxed environment"),close:H("close","file operations not allowed"),fflush:H("fflush","file operations not allowed"),systime:$("systime"),mktime:$("mktime"),strftime:$("strftime")};function R(e){return typeof e=="number"?e!==0:e!==""}function E(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function y(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}function X(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}function F(e,t){try{return new RegExp(e).test(t)}catch{return!1}}function J(e,t){return e.FS===" "?t.trim().split(/\s+/).filter(Boolean):t.split(e.fieldSep)}function k(e,t){return t===0?e.line:t<0||t>e.fields.length?"":e.fields[t-1]??""}function O(e,t,r){if(t===0)e.line=y(r),e.fields=J(e,e.line),e.NF=e.fields.length;else if(t>0){for(;e.fields.length<t;)e.fields.push("");e.fields[t-1]=y(r),e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}}function T(e,t){e.line=t,e.fields=J(e,t),e.NF=e.fields.length}function Y(e,t){if(e.FS=t,t===" ")e.fieldSep=/\s+/;else try{e.fieldSep=new RegExp(t)}catch{e.fieldSep=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}function I(e,t){switch(t){case"FS":return e.FS;case"OFS":return e.OFS;case"ORS":return e.ORS;case"NR":return e.NR;case"NF":return e.NF;case"FNR":return e.FNR;case"FILENAME":return e.FILENAME;case"RSTART":return e.RSTART;case"RLENGTH":return e.RLENGTH;case"SUBSEP":return e.SUBSEP;case"ARGC":return e.ARGC}return e.vars[t]??""}function g(e,t,r){switch(t){case"FS":Y(e,y(r));return;case"OFS":e.OFS=y(r);return;case"ORS":e.ORS=y(r);return;case"NR":e.NR=Math.floor(E(r));return;case"NF":{let n=Math.floor(E(r));if(n<e.NF)e.fields=e.fields.slice(0,n),e.line=e.fields.join(e.OFS);else if(n>e.NF){for(;e.fields.length<n;)e.fields.push("");e.line=e.fields.join(e.OFS)}e.NF=n;return}case"FNR":e.FNR=Math.floor(E(r));return;case"FILENAME":e.FILENAME=y(r);return;case"RSTART":e.RSTART=Math.floor(E(r));return;case"RLENGTH":e.RLENGTH=Math.floor(E(r));return;case"SUBSEP":e.SUBSEP=y(r);return}e.vars[t]=r}function C(e,t,r){return t==="ARGV"?e.ARGV[r]??"":e.arrays[t]?.[r]??""}function P(e,t,r,n){e.arrays[t]||(e.arrays[t]={}),e.arrays[t][r]=n}function ee(e,t,r){return t==="ARGV"?e.ARGV[r]!==void 0:e.arrays[t]?.[r]!==void 0}function te(e,t,r){e.arrays[t]&&delete e.arrays[t][r]}function re(e,t){delete e.arrays[t]}var V=null;function ie(e){V=e}async function p(e,t){switch(t.type){case"number":return t.value;case"string":return t.value;case"regex":return F(t.pattern,e.line)?1:0;case"field":return Le(e,t);case"variable":return I(e,t.name);case"array_access":return Oe(e,t);case"binary":return Pe(e,t);case"unary":return Te(e,t);case"ternary":return R(await p(e,t.condition))?p(e,t.consequent):p(e,t.alternate);case"call":return _e(e,t.name,t.args);case"assignment":return De(e,t);case"pre_increment":return Be(e,t.operand);case"pre_decrement":return Ue(e,t.operand);case"post_increment":return xe(e,t.operand);case"post_decrement":return He(e,t.operand);case"in":return $e(e,t.key,t.array);case"getline":return We(e,t.variable,t.file);case"tuple":return Ve(e,t.elements);default:return""}}async function Le(e,t){let r=Math.floor(E(await p(e,t.index)));return k(e,r)}async function Oe(e,t){let r=y(await p(e,t.key));return C(e,t.array,r)}async function Pe(e,t){let r=t.operator;if(r==="||")return R(await p(e,t.left))||R(await p(e,t.right))?1:0;if(r==="&&")return R(await p(e,t.left))&&R(await p(e,t.right))?1:0;if(r==="~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?1:0}catch{return 0}}if(r==="!~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?0:1}catch{return 1}}let n=await p(e,t.left),a=await p(e,t.right);if(r===" ")return y(n)+y(a);if(Me(r))return Fe(n,a,r);let s=E(n),o=E(a);return j(s,o,r)}function Me(e){return["<","<=",">",">=","==","!="].includes(e)}function Fe(e,t,r){let n=X(e),a=X(t);if(n&&a){let l=E(e),u=E(t);switch(r){case"<":return l<u?1:0;case"<=":return l<=u?1:0;case">":return l>u?1:0;case">=":return l>=u?1:0;case"==":return l===u?1:0;case"!=":return l!==u?1:0}}let s=y(e),o=y(t);switch(r){case"<":return s<o?1:0;case"<=":return s<=o?1:0;case">":return s>o?1:0;case">=":return s>=o?1:0;case"==":return s===o?1:0;case"!=":return s!==o?1:0}return 0}async function Te(e,t){let r=await p(e,t.operand);switch(t.operator){case"!":return R(r)?0:1;case"-":return-E(r);case"+":return+E(r);default:return r}}async function _e(e,t,r){let n=Z[t];if(n)return n(r,e,{evalExpr:s=>p(e,s)});let a=e.functions.get(t);return a?Ge(e,a,r):""}async function Ge(e,t,r){if(e.currentRecursionDepth++,e.currentRecursionDepth>e.maxRecursionDepth)throw e.currentRecursionDepth--,new L(`awk: recursion depth exceeded maximum (${e.maxRecursionDepth})`,"recursion",e.output);let n={};for(let s of t.params)n[s]=e.vars[s];for(let s=0;s<t.params.length;s++){let o=t.params[s],l=s<r.length?await p(e,r[s]):"";e.vars[o]=l}e.hasReturn=!1,e.returnValue=void 0,V&&await V(e,t.body.statements);let a=e.returnValue??"";for(let s of t.params)n[s]!==void 0?e.vars[s]=n[s]:delete e.vars[s];return e.hasReturn=!1,e.returnValue=void 0,e.currentRecursionDepth--,a}async function De(e,t){let r=await p(e,t.value),n=t.target,a=t.operator,s;if(a==="=")s=r;else{let o;if(n.type==="field"){let m=Math.floor(E(await p(e,n.index)));o=k(e,m)}else if(n.type==="variable")o=I(e,n.name);else{let m=y(await p(e,n.key));o=C(e,n.array,m)}let l=E(o),u=E(r);switch(a){case"+=":s=l+u;break;case"-=":s=l-u;break;case"*=":s=l*u;break;case"/=":s=u!==0?l/u:0;break;case"%=":s=u!==0?l%u:0;break;case"^=":s=l**u;break;default:s=r}}if(n.type==="field"){let o=Math.floor(E(await p(e,n.index)));O(e,o,s)}else if(n.type==="variable")g(e,n.name,s);else{let o=y(await p(e,n.key));P(e,n.array,o,s)}return s}async function Be(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(k(e,n))+1,O(e,n,r)}else if(t.type==="variable")r=E(I(e,t.name))+1,g(e,t.name,r);else{let n=y(await p(e,t.key));r=E(C(e,t.array,n))+1,P(e,t.array,n,r)}return r}async function Ue(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(k(e,n))-1,O(e,n,r)}else if(t.type==="variable")r=E(I(e,t.name))-1,g(e,t.name,r);else{let n=y(await p(e,t.key));r=E(C(e,t.array,n))-1,P(e,t.array,n,r)}return r}async function xe(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(k(e,n)),O(e,n,r+1)}else if(t.type==="variable")r=E(I(e,t.name)),g(e,t.name,r+1);else{let n=y(await p(e,t.key));r=E(C(e,t.array,n)),P(e,t.array,n,r+1)}return r}async function He(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(k(e,n)),O(e,n,r-1)}else if(t.type==="variable")r=E(I(e,t.name)),g(e,t.name,r-1);else{let n=y(await p(e,t.key));r=E(C(e,t.array,n)),P(e,t.array,n,r-1)}return r}async function $e(e,t,r){let n;if(t.type==="tuple"){let a=[];for(let s of t.elements)a.push(y(await p(e,s)));n=a.join(e.SUBSEP)}else n=y(await p(e,t));return ee(e,r,n)?1:0}async function We(e,t,r){if(r)return Xe(e,t,r);if(!e.lines||e.lineIndex===void 0)return-1;let n=e.lineIndex+1;if(n>=e.lines.length)return 0;let a=e.lines[n];return t?g(e,t,a):T(e,a),e.NR++,e.lineIndex=n,1}async function Xe(e,t,r){if(!e.fs||!e.cwd)return-1;let n=y(await p(e,r)),a=e.fs.resolvePath(e.cwd,n),s=`__fc_${a}`,o=`__fi_${a}`,l,u;if(e.vars[s]===void 0)try{l=(await e.fs.readFile(a)).split(`
5
- `),l.length>0&&l[l.length-1]===""&&l.pop(),e.vars[s]=JSON.stringify(l),e.vars[o]=-1,u=-1}catch{return-1}else l=JSON.parse(e.vars[s]),u=e.vars[o];let m=u+1;if(m>=l.length)return 0;let N=l[m];return e.vars[o]=m,t?g(e,t,N):T(e,N),1}async function Ve(e,t){if(t.length===0)return"";for(let r=0;r<t.length-1;r++)await p(e,t[r]);return p(e,t[t.length-1])}ie(M);async function M(e,t){for(let r of t)if(await b(e,r),Ke(e))break}function Ke(e){return e.shouldExit||e.shouldNext||e.shouldNextFile||e.loopBreak||e.loopContinue||e.hasReturn}async function b(e,t){switch(t.type){case"block":await M(e,t.statements);break;case"expr_stmt":await p(e,t.expression);break;case"print":await Qe(e,t.args,t.output);break;case"printf":await je(e,t.format,t.args,t.output);break;case"if":await qe(e,t);break;case"while":await ze(e,t);break;case"do_while":await Ze(e,t);break;case"for":await Je(e,t);break;case"for_in":await Ye(e,t);break;case"break":e.loopBreak=!0;break;case"continue":e.loopContinue=!0;break;case"next":e.shouldNext=!0;break;case"nextfile":e.shouldNextFile=!0;break;case"exit":e.shouldExit=!0,e.exitCode=t.code?Math.floor(E(await p(e,t.code))):0;break;case"return":e.hasReturn=!0,e.returnValue=t.value?await p(e,t.value):"";break;case"delete":await et(e,t.target);break}}async function Qe(e,t,r){let n=[];for(let s of t)n.push(y(await p(e,s)));let a=n.join(e.OFS)+e.ORS;r?await ne(e,r.redirect,r.file,a):e.output+=a}async function je(e,t,r,n){let a=y(await p(e,t)),s=[];for(let l of r)s.push(await p(e,l));let o=W(a,s);n?await ne(e,n.redirect,n.file,o):e.output+=o}async function ne(e,t,r,n){if(!e.fs||!e.cwd){e.output+=n;return}let a=y(await p(e,r)),s=e.fs.resolvePath(e.cwd,a);t===">"?e.openedFiles.has(s)?await e.fs.appendFile(s,n):(await e.fs.writeFile(s,n),e.openedFiles.add(s)):(e.openedFiles.has(s)||e.openedFiles.add(s),await e.fs.appendFile(s,n))}async function qe(e,t){R(await p(e,t.condition))?await b(e,t.consequent):t.alternate&&await b(e,t.alternate)}async function ze(e,t){let r=0;for(;R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new L(`awk: while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await b(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function Ze(e,t){let r=0;do{if(r++,r>e.maxIterations)throw new L(`awk: do-while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await b(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}while(R(await p(e,t.condition)))}async function Je(e,t){t.init&&await p(e,t.init);let r=0;for(;!t.condition||R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new L(`awk: for loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await b(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break;t.update&&await p(e,t.update)}}async function Ye(e,t){let r=e.arrays[t.array];if(r)for(let n of Object.keys(r)){if(e.vars[t.variable]=n,e.loopContinue=!1,await b(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function et(e,t){if(t.type==="array_access"){let r=y(await p(e,t.key));te(e,t.array,r)}else t.type==="variable"&&re(e,t.name)}var _=class{ctx;program=null;rangeStates=[];constructor(t){this.ctx=t}execute(t){this.program=t,this.ctx.output="";for(let r of t.functions)this.ctx.functions.set(r.name,r);this.rangeStates=t.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let t of this.program.rules)if(t.pattern?.type==="begin"&&(await M(this.ctx,t.action.statements),this.ctx.shouldExit))break}}async executeLine(t){if(!(!this.program||this.ctx.shouldExit)){T(this.ctx,t),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await M(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let t of this.program.rules)if(t.pattern?.type==="end"&&(await M(this.ctx,t.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(t,r){let n=t.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return F(n.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,n.expression));case"range":{let a=await this.matchPattern(n.start),s=await this.matchPattern(n.end);return this.rangeStates[r]?(s&&(this.rangeStates[r]=!1),!0):a?(this.rangeStates[r]=!0,s&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(t){switch(t.type){case"regex_pattern":return F(t.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,t.expression));default:return!1}}};var i;(function(e){e.NUMBER="NUMBER",e.STRING="STRING",e.REGEX="REGEX",e.IDENT="IDENT",e.BEGIN="BEGIN",e.END="END",e.IF="IF",e.ELSE="ELSE",e.WHILE="WHILE",e.DO="DO",e.FOR="FOR",e.IN="IN",e.BREAK="BREAK",e.CONTINUE="CONTINUE",e.NEXT="NEXT",e.NEXTFILE="NEXTFILE",e.EXIT="EXIT",e.RETURN="RETURN",e.DELETE="DELETE",e.FUNCTION="FUNCTION",e.PRINT="PRINT",e.PRINTF="PRINTF",e.GETLINE="GETLINE",e.PLUS="PLUS",e.MINUS="MINUS",e.STAR="STAR",e.SLASH="SLASH",e.PERCENT="PERCENT",e.CARET="CARET",e.EQ="EQ",e.NE="NE",e.LT="LT",e.GT="GT",e.LE="LE",e.GE="GE",e.MATCH="MATCH",e.NOT_MATCH="NOT_MATCH",e.AND="AND",e.OR="OR",e.NOT="NOT",e.ASSIGN="ASSIGN",e.PLUS_ASSIGN="PLUS_ASSIGN",e.MINUS_ASSIGN="MINUS_ASSIGN",e.STAR_ASSIGN="STAR_ASSIGN",e.SLASH_ASSIGN="SLASH_ASSIGN",e.PERCENT_ASSIGN="PERCENT_ASSIGN",e.CARET_ASSIGN="CARET_ASSIGN",e.INCREMENT="INCREMENT",e.DECREMENT="DECREMENT",e.QUESTION="QUESTION",e.COLON="COLON",e.COMMA="COMMA",e.SEMICOLON="SEMICOLON",e.NEWLINE="NEWLINE",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.LBRACKET="LBRACKET",e.RBRACKET="RBRACKET",e.DOLLAR="DOLLAR",e.APPEND="APPEND",e.PIPE="PIPE",e.EOF="EOF"})(i||(i={}));var tt={BEGIN:i.BEGIN,END:i.END,if:i.IF,else:i.ELSE,while:i.WHILE,do:i.DO,for:i.FOR,in:i.IN,break:i.BREAK,continue:i.CONTINUE,next:i.NEXT,nextfile:i.NEXTFILE,exit:i.EXIT,return:i.RETURN,delete:i.DELETE,function:i.FUNCTION,print:i.PRINT,printf:i.PRINTF,getline:i.GETLINE};function rt(e){return e.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var D=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(t){this.input=t}tokenize(){let t=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(t.push(r),this.lastTokenType=r.type)}return t.push(this.makeToken(i.EOF,"")),t}makeToken(t,r){return{type:t,value:r,line:this.line,column:this.column}}peek(t=0){return this.input[this.pos+t]||""}advance(){let t=this.input[this.pos++]||"";return t===`
6
- `?(this.line++,this.column=1):this.column++,t}skipWhitespace(){for(;this.pos<this.input.length;){let t=this.peek();if(t===" "||t===" "||t==="\r")this.advance();else if(t==="\\")if(this.peek(1)===`
7
- `)this.advance(),this.advance();else break;else if(t==="#")for(;this.pos<this.input.length&&this.peek()!==`
8
- `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let t=this.line,r=this.column,n=this.peek();return n===`
9
- `?(this.advance(),{type:i.NEWLINE,value:`
10
- `,line:t,column:r}):n==='"'?this.readString():n==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(n)||n==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(n)||n==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,i.NEWLINE,i.SEMICOLON,i.LBRACE,i.RBRACE,i.LPAREN,i.LBRACKET,i.COMMA,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.AND,i.OR,i.NOT,i.MATCH,i.NOT_MATCH,i.QUESTION,i.COLON,i.LT,i.GT,i.LE,i.GE,i.EQ,i.NE,i.PLUS,i.MINUS,i.STAR,i.PERCENT,i.CARET,i.PRINT,i.PRINTF,i.IF,i.WHILE,i.DO,i.FOR,i.RETURN]).has(this.lastTokenType)}readString(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let a=this.advance();switch(a){case"n":n+=`
11
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;default:n+=a}}else n+=this.advance();return this.peek()==='"'&&this.advance(),{type:i.STRING,value:n,line:t,column:r}}readRegex(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
12
- `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=rt(n),{type:i.REGEX,value:n,line:t,column:r}}readNumber(){let t=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:i.NUMBER,value:parseFloat(n),line:t,column:r}}readIdentifier(){let t=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let a=tt[n];return a?{type:a,value:n,line:t,column:r}:{type:i.IDENT,value:n,line:t,column:r}}readOperator(){let t=this.line,r=this.column,n=this.advance(),a=this.peek();switch(n){case"+":return a==="+"?(this.advance(),{type:i.INCREMENT,value:"++",line:t,column:r}):a==="="?(this.advance(),{type:i.PLUS_ASSIGN,value:"+=",line:t,column:r}):{type:i.PLUS,value:"+",line:t,column:r};case"-":return a==="-"?(this.advance(),{type:i.DECREMENT,value:"--",line:t,column:r}):a==="="?(this.advance(),{type:i.MINUS_ASSIGN,value:"-=",line:t,column:r}):{type:i.MINUS,value:"-",line:t,column:r};case"*":return a==="*"?(this.advance(),{type:i.CARET,value:"**",line:t,column:r}):a==="="?(this.advance(),{type:i.STAR_ASSIGN,value:"*=",line:t,column:r}):{type:i.STAR,value:"*",line:t,column:r};case"/":return a==="="?(this.advance(),{type:i.SLASH_ASSIGN,value:"/=",line:t,column:r}):{type:i.SLASH,value:"/",line:t,column:r};case"%":return a==="="?(this.advance(),{type:i.PERCENT_ASSIGN,value:"%=",line:t,column:r}):{type:i.PERCENT,value:"%",line:t,column:r};case"^":return a==="="?(this.advance(),{type:i.CARET_ASSIGN,value:"^=",line:t,column:r}):{type:i.CARET,value:"^",line:t,column:r};case"=":return a==="="?(this.advance(),{type:i.EQ,value:"==",line:t,column:r}):{type:i.ASSIGN,value:"=",line:t,column:r};case"!":return a==="="?(this.advance(),{type:i.NE,value:"!=",line:t,column:r}):a==="~"?(this.advance(),{type:i.NOT_MATCH,value:"!~",line:t,column:r}):{type:i.NOT,value:"!",line:t,column:r};case"<":return a==="="?(this.advance(),{type:i.LE,value:"<=",line:t,column:r}):{type:i.LT,value:"<",line:t,column:r};case">":return a==="="?(this.advance(),{type:i.GE,value:">=",line:t,column:r}):a===">"?(this.advance(),{type:i.APPEND,value:">>",line:t,column:r}):{type:i.GT,value:">",line:t,column:r};case"&":return a==="&"?(this.advance(),{type:i.AND,value:"&&",line:t,column:r}):{type:i.IDENT,value:"&",line:t,column:r};case"|":return a==="|"?(this.advance(),{type:i.OR,value:"||",line:t,column:r}):{type:i.PIPE,value:"|",line:t,column:r};case"~":return{type:i.MATCH,value:"~",line:t,column:r};case"?":return{type:i.QUESTION,value:"?",line:t,column:r};case":":return{type:i.COLON,value:":",line:t,column:r};case",":return{type:i.COMMA,value:",",line:t,column:r};case";":return{type:i.SEMICOLON,value:";",line:t,column:r};case"(":return{type:i.LPAREN,value:"(",line:t,column:r};case")":return{type:i.RPAREN,value:")",line:t,column:r};case"{":return{type:i.LBRACE,value:"{",line:t,column:r};case"}":return{type:i.RBRACE,value:"}",line:t,column:r};case"[":return{type:i.LBRACKET,value:"[",line:t,column:r};case"]":return{type:i.RBRACKET,value:"]",line:t,column:r};case"$":return{type:i.DOLLAR,value:"$",line:t,column:r};default:return{type:i.IDENT,value:n,line:t,column:r}}}isDigit(t){return t>="0"&&t<="9"}isAlpha(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isAlphaNumeric(t){return this.isDigit(t)||this.isAlpha(t)}};var B=class{tokens=[];pos=0;parse(t){let r=new D(t);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:i.EOF,value:"",line:0,column:0}}advance(){let t=this.current();return this.pos<this.tokens.length&&this.pos++,t}match(...t){return t.includes(this.current().type)}check(t){return this.current().type===t}expect(t,r){if(!this.check(t)){let n=this.current();throw new Error(r||`Expected ${t}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(i.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(i.NEWLINE)||this.check(i.SEMICOLON);)this.advance()}parseProgram(){let t=[],r=[];for(this.skipNewlines();!this.check(i.EOF)&&(this.skipNewlines(),!this.check(i.EOF));)this.check(i.FUNCTION)?t.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:t,rules:r}}parseFunction(){this.expect(i.FUNCTION);let t=this.expect(i.IDENT).value;this.expect(i.LPAREN);let r=[];if(!this.check(i.RPAREN))for(r.push(this.expect(i.IDENT).value);this.check(i.COMMA);)this.advance(),r.push(this.expect(i.IDENT).value);this.expect(i.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:t,params:r,body:n}}parseRule(){let t;if(this.check(i.BEGIN))this.advance(),t={type:"begin"};else if(this.check(i.END))this.advance(),t={type:"end"};else if(this.check(i.LBRACE))t=void 0;else if(this.check(i.REGEX)){let n=this.advance();if(this.check(i.AND)||this.check(i.OR)){let a={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:n.value}};t={type:"expr_pattern",expression:this.parseLogicalOrRest(a)}}else{let a={type:"regex_pattern",pattern:n.value};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}}else{let a={type:"expr_pattern",expression:this.parseExpression()};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}this.skipNewlines();let r;return this.check(i.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:t,action:r}}parseBlock(){this.expect(i.LBRACE),this.skipNewlines();let t=[];for(;!this.check(i.RBRACE)&&!this.check(i.EOF);)t.push(this.parseStatement()),this.skipTerminators();return this.expect(i.RBRACE),{type:"block",statements:t}}parseStatement(){if(this.check(i.LBRACE))return this.parseBlock();if(this.check(i.IF))return this.parseIf();if(this.check(i.WHILE))return this.parseWhile();if(this.check(i.DO))return this.parseDoWhile();if(this.check(i.FOR))return this.parseFor();if(this.check(i.BREAK))return this.advance(),{type:"break"};if(this.check(i.CONTINUE))return this.advance(),{type:"continue"};if(this.check(i.NEXT))return this.advance(),{type:"next"};if(this.check(i.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(i.EXIT)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(i.RETURN)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(i.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(i.PRINT)?this.parsePrint():this.check(i.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(i.IF),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(i.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:t,consequent:r,alternate:n}}parseWhile(){this.expect(i.WHILE),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:t,body:r}}parseDoWhile(){this.expect(i.DO),this.skipNewlines();let t=this.parseStatement();this.skipNewlines(),this.expect(i.WHILE),this.expect(i.LPAREN);let r=this.parseExpression();return this.expect(i.RPAREN),{type:"do_while",body:t,condition:r}}parseFor(){if(this.expect(i.FOR),this.expect(i.LPAREN),this.check(i.IDENT)){let s=this.advance();if(this.check(i.IN)){this.advance();let o=this.expect(i.IDENT).value;this.expect(i.RPAREN),this.skipNewlines();let l=this.parseStatement();return{type:"for_in",variable:s.value,array:o,body:l}}this.pos--}let t;this.check(i.SEMICOLON)||(t=this.parseExpression()),this.expect(i.SEMICOLON);let r;this.check(i.SEMICOLON)||(r=this.parseExpression()),this.expect(i.SEMICOLON);let n;this.check(i.RPAREN)||(n=this.parseExpression()),this.expect(i.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for",init:t,condition:r,update:n,body:a}}parsePrint(){this.expect(i.PRINT);let t=[];if(this.check(i.NEWLINE)||this.check(i.SEMICOLON)||this.check(i.RBRACE)||this.check(i.PIPE)||this.check(i.GT)||this.check(i.APPEND))t.push({type:"field",index:{type:"number",value:0}});else for(t.push(this.parsePrintArg());this.check(i.COMMA);)this.advance(),t.push(this.parsePrintArg());let r;return this.check(i.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:t,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let t=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===i.LPAREN&&t++,n.type===i.RPAREN&&t--,n.type===i.QUESTION&&t===0)return!0;if(n.type===i.NEWLINE||n.type===i.SEMICOLON||n.type===i.RBRACE||n.type===i.COMMA||n.type===i.PIPE)return!1;r++}return!1}parsePrintOr(){let t=this.parsePrintAnd();for(;this.check(i.OR);){this.advance();let r=this.parsePrintAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parsePrintAnd(){let t=this.parsePrintIn();for(;this.check(i.AND);){this.advance();let r=this.parsePrintIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parsePrintIn(){let t=this.parsePrintMatch();if(this.check(i.IN)){this.advance();let r=String(this.expect(i.IDENT).value);return{type:"in",key:t,array:r}}return t}parsePrintMatch(){let t=this.parsePrintComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parsePrintComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parsePrintComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parsePrintf(){this.expect(i.PRINTF);let t=this.parsePrintArg(),r=[];for(;this.check(i.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(i.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:t,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let t=this.parseTernary();if(this.match(i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:t,value:n}}return t}parseTernary(){let t=this.parseOr();if(this.check(i.QUESTION)){this.advance();let r=this.parseExpression();this.expect(i.COLON);let n=this.parseExpression();t={type:"ternary",condition:t,consequent:r,alternate:n}}return t}parseOr(){let t=this.parseAnd();for(;this.check(i.OR);){this.advance();let r=this.parseAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parseLogicalOrRest(t){for(t=this.parseLogicalAndRest(t);this.check(i.OR);){this.advance();let r=this.parseAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parseLogicalAndRest(t){for(;this.check(i.AND);){this.advance();let r=this.parseIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parseAnd(){let t=this.parseIn();for(;this.check(i.AND);){this.advance();let r=this.parseIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parseIn(){let t=this.parseMatch();if(this.check(i.IN)){this.advance();let r=this.expect(i.IDENT).value;return{type:"in",key:t,array:r}}return t}parseMatch(){let t=this.parseComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parseComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parseComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parseConcatenation(){let t=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();t={type:"binary",operator:" ",left:t,right:r}}return t}canStartExpression(){return this.match(i.NUMBER,i.STRING,i.IDENT,i.DOLLAR,i.LPAREN,i.NOT,i.MINUS,i.PLUS,i.INCREMENT,i.DECREMENT)}isComparisonOrHigherOp(){return this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE,i.AND,i.OR,i.QUESTION,i.MATCH,i.NOT_MATCH,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.COMMA,i.SEMICOLON,i.NEWLINE,i.RBRACE,i.RPAREN,i.RBRACKET,i.COLON,i.PIPE,i.APPEND,i.IN)}parseAddSub(){let t=this.parseMulDiv();for(;this.match(i.PLUS,i.MINUS);){let r=this.advance().value,n=this.parseMulDiv();t={type:"binary",operator:r,left:t,right:n}}return t}parseMulDiv(){let t=this.parseUnary();for(;this.match(i.STAR,i.SLASH,i.PERCENT);){let r=this.advance(),n=this.parseUnary();t={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:t,right:n}}return t}parseUnary(){if(this.check(i.INCREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:t}}:{type:"pre_increment",operand:t}}if(this.check(i.DECREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:t}}:{type:"pre_decrement",operand:t}}if(this.match(i.NOT,i.MINUS,i.PLUS)){let t=this.advance().value,r=this.parseUnary();return{type:"unary",operator:t,operand:r}}return this.parsePower()}parsePower(){let t=this.parsePostfix();if(this.check(i.CARET)){this.advance();let r=this.parsePower();t={type:"binary",operator:"^",left:t,right:r}}return t}parsePostfix(){let t=this.parsePrimary();if(this.check(i.INCREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:t}}if(this.check(i.DECREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:t}}return t}parsePrimary(){if(this.check(i.NUMBER))return{type:"number",value:this.advance().value};if(this.check(i.STRING))return{type:"string",value:this.advance().value};if(this.check(i.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(i.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(i.LPAREN)){this.advance();let t=this.parseExpression();if(this.check(i.COMMA)){let r=[t];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"tuple",elements:r}}return this.expect(i.RPAREN),t}if(this.check(i.GETLINE)){this.advance();let t,r;return this.check(i.IDENT)&&(t=this.advance().value),this.check(i.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:t,file:r}}if(this.check(i.IDENT)){let t=this.advance().value;if(this.check(i.LPAREN)){this.advance();let r=[];if(!this.check(i.RPAREN))for(r.push(this.parseExpression());this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"call",name:t,args:r}}if(this.check(i.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(i.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let a=1;a<r.length;a++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[a]}}return{type:"array_access",array:t,key:n}}return{type:"variable",name:t}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var it={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},xt={name:"awk",async execute(e,t){if(Q(e))return K(it);let r=/\s+/,n=" ",a={},s=0;for(let h=0;h<e.length;h++){let f=e[h];if(f==="-F"&&h+1<e.length)n=se(e[++h]),r=ae(n),s=h+1;else if(f.startsWith("-F"))n=se(f.slice(2)),r=ae(n),s=h+1;else if(f==="-v"&&h+1<e.length){let S=e[++h],G=S.indexOf("=");if(G>0){let v=S.slice(0,G),oe=S.slice(G+1);a[v]=oe}s=h+1}else{if(f.startsWith("--"))return U("awk",f);if(f.startsWith("-")&&f.length>1){let S=f[1];if(S!=="F"&&S!=="v")return U("awk",`-${S}`);s=h+1}else if(!f.startsWith("-")){s=h;break}}}if(s>=e.length)return{stdout:"",stderr:`awk: missing program
13
- `,exitCode:1};let o=e[s],l=e.slice(s+1),u=new B,m;try{m=u.parse(o)}catch(h){return{stdout:"",stderr:`awk: ${h instanceof Error?h.message:String(h)}
14
- `,exitCode:1}}let N={readFile:t.fs.readFile.bind(t.fs),writeFile:t.fs.writeFile.bind(t.fs),appendFile:async(h,f)=>{try{let S=await t.fs.readFile(h);await t.fs.writeFile(h,S+f)}catch{await t.fs.writeFile(h,f)}},resolvePath:t.fs.resolvePath.bind(t.fs)},c=x({fieldSep:r,maxIterations:t.limits?.maxAwkIterations,fs:N,cwd:t.cwd});c.FS=n,c.vars={...a},c.ARGC=l.length+1,c.ARGV={0:"awk"};for(let h=0;h<l.length;h++)c.ARGV[String(h+1)]=l[h];let d=new _(c);d.execute(m);try{if(await d.executeBegin(),c.shouldExit)return{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()};let h=[];if(l.length>0)for(let f of l)try{let S=t.fs.resolvePath(t.cwd,f),v=(await t.fs.readFile(S)).split(`
15
- `);v.length>0&&v[v.length-1]===""&&v.pop(),h.push({filename:f,lines:v})}catch{return{stdout:"",stderr:`awk: ${f}: No such file or directory
16
- `,exitCode:1}}else{let f=t.stdin.split(`
17
- `);f.length>0&&f[f.length-1]===""&&f.pop(),h.push({filename:"",lines:f})}for(let f of h){for(c.FILENAME=f.filename,c.FNR=0,c.lines=f.lines,c.lineIndex=-1,c.shouldNextFile=!1;c.lineIndex<f.lines.length-1&&(c.lineIndex++,await d.executeLine(f.lines[c.lineIndex]),!(c.shouldExit||c.shouldNextFile)););if(c.shouldExit)break}return c.shouldExit||await d.executeEnd(),{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()}}catch(h){let f=h instanceof Error?h.message:String(h);return{stdout:d.getOutput(),stderr:`awk: ${f}
18
- `,exitCode:2}}}};function se(e){return e.replace(/\\t/g," ").replace(/\\n/g,`
19
- `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function ae(e){if(e===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(e))try{return new RegExp(e)}catch{return new RegExp(le(e))}return new RegExp(le(e))}function le(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{xt as awkCommand2};
@@ -1,17 +0,0 @@
1
- import{i as S}from"./chunk-JYYFSUWP.js";import{a as I,b,c as R}from"./chunk-74CEPOFO.js";function w(r,e,t){switch(t){case"+":return r+e;case"-":return r-e;case"*":return r*e;case"/":return e!==0?r/e:0;case"%":return e!==0?r%e:0;case"^":case"**":return r**e;default:return 0}}function D(r,e,t){return r.length===0?e.line.length:t.toString(t.evalExpr(r[0])).length}function B(r,e,t){if(r.length<2)return"";let i=t.toString(t.evalExpr(r[0])),n=Math.floor(t.toNumber(t.evalExpr(r[1])))-1;if(r.length>=3){let a=Math.floor(t.toNumber(t.evalExpr(r[2])));return i.substr(Math.max(0,n),a)}return i.substr(Math.max(0,n))}function U(r,e,t){if(r.length<2)return 0;let i=t.toString(t.evalExpr(r[0])),n=t.toString(t.evalExpr(r[1])),a=i.indexOf(n);return a===-1?0:a+1}function H(r,e,t){if(r.length<2)return 0;let i=t.toString(t.evalExpr(r[0])),n=r[1];if(n.type!=="variable")return 0;let a=n.name,h=e.FS;if(r.length>=3){let u=t.toString(t.evalExpr(r[2]));h=u===" "?/\s+/:u}else e.FS===" "&&(h=/\s+/);let c=i.split(h);e.arrays[a]={};for(let u=0;u<c.length;u++)e.arrays[a][String(u+1)]=c[u];return c.length}function W(r,e,t){if(r.length<2)return 0;let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a="$0";if(r.length>=3){let c=r[2];c.type==="variable"?a=c.name:c.type==="field"&&(a=`$${Math.floor(t.toNumber(t.evalExpr(c.index)))}`)}let h;if(a==="$0")h=e.line;else if(a.startsWith("$")){let c=parseInt(a.slice(1),10)-1;h=e.fields[c]||""}else h=t.toString(e.vars[a]??"");try{let c=new RegExp(i),u=h.replace(c,L(n)),x=u!==h?1:0;if(a==="$0")e.line=u,e.fields=e.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(e.fieldSep),e.NF=e.fields.length;else if(a.startsWith("$")){let p=parseInt(a.slice(1),10)-1;for(;e.fields.length<=p;)e.fields.push("");e.fields[p]=u,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[a]=u;return x}catch{return 0}}function $(r,e,t){if(r.length<2)return 0;let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a="$0";if(r.length>=3){let c=r[2];c.type==="variable"?a=c.name:c.type==="field"&&(a=`$${Math.floor(t.toNumber(t.evalExpr(c.index)))}`)}let h;if(a==="$0")h=e.line;else if(a.startsWith("$")){let c=parseInt(a.slice(1),10)-1;h=e.fields[c]||""}else h=t.toString(e.vars[a]??"");try{let c=new RegExp(i,"g"),u=h.match(c),x=u?u.length:0,p=h.replace(c,L(n));if(a==="$0")e.line=p,e.fields=e.FS===" "?p.trim().split(/\s+/).filter(Boolean):p.split(e.fieldSep),e.NF=e.fields.length;else if(a.startsWith("$")){let o=parseInt(a.slice(1),10)-1;for(;e.fields.length<=o;)e.fields.push("");e.fields[o]=p,e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}else e.vars[a]=p;return x}catch{return 0}}function L(r){return e=>{let t="",i=0;for(;i<r.length;)if(r[i]==="\\"&&i+1<r.length){let n=r[i+1];n==="&"?(t+="&",i+=2):n==="\\"?(t+="\\",i+=2):(t+=r[i+1],i+=2)}else r[i]==="&"?(t+=e,i++):(t+=r[i],i++);return t}}function V(r,e,t){if(r.length<2)return e.RSTART=0,e.RLENGTH=-1,0;let i=t.toString(t.evalExpr(r[0])),n;r[1].type==="regex"?n=r[1].pattern:(n=t.toString(t.evalExpr(r[1])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));try{let h=new RegExp(n).exec(i);if(h)return e.RSTART=h.index+1,e.RLENGTH=h[0].length,e.RSTART}catch{}return e.RSTART=0,e.RLENGTH=-1,0}function X(r,e,t){if(r.length<3)return"";let i;r[0].type==="regex"?i=r[0].pattern:(i=t.toString(t.evalExpr(r[0])),i.startsWith("/")&&i.endsWith("/")&&(i=i.slice(1,-1)));let n=t.toString(t.evalExpr(r[1])),a=t.toString(t.evalExpr(r[2])),h=r.length>=4?t.toString(t.evalExpr(r[3])):e.line;try{let c=a.toLowerCase()==="g",u=c?0:parseInt(a,10)||1;if(c){let x=new RegExp(i,"g");return h.replace(x,(p,...o)=>C(n,p,o.slice(0,-2)))}else{let x=0,p=new RegExp(i,"g");return h.replace(p,(o,...f)=>(x++,x===u?C(n,o,f.slice(0,-2)):o))}}catch{return h}}function C(r,e,t){let i="",n=0;for(;n<r.length;)if(r[n]==="\\"&&n+1<r.length){let a=r[n+1];if(a==="&")i+="&",n+=2;else if(a==="0")i+=e,n+=2;else if(a>="1"&&a<="9"){let h=parseInt(a,10)-1;i+=t[h]||"",n+=2}else a==="n"?(i+=`
2
- `,n+=2):a==="t"?(i+=" ",n+=2):(i+=a,n+=2)}else r[n]==="&"?(i+=e,n++):(i+=r[n],n++);return i}function K(r,e,t){return r.length===0?"":t.toString(t.evalExpr(r[0])).toLowerCase()}function Q(r,e,t){return r.length===0?"":t.toString(t.evalExpr(r[0])).toUpperCase()}function j(r,e,t){if(r.length===0)return"";let i=t.toString(t.evalExpr(r[0])),n=r.slice(1).map(a=>t.evalExpr(a));return A(i,n)}function q(r,e,t){return r.length===0?0:Math.floor(t.toNumber(t.evalExpr(r[0])))}function z(r,e,t){return r.length===0?0:Math.sqrt(t.toNumber(t.evalExpr(r[0])))}function Z(r,e,t){return r.length===0?0:Math.sin(t.toNumber(t.evalExpr(r[0])))}function Y(r,e,t){return r.length===0?0:Math.cos(t.toNumber(t.evalExpr(r[0])))}function J(r,e,t){let i=r.length>0?t.toNumber(t.evalExpr(r[0])):0,n=r.length>1?t.toNumber(t.evalExpr(r[1])):0;return Math.atan2(i,n)}function ee(r,e,t){return r.length===0?0:Math.log(t.toNumber(t.evalExpr(r[0])))}function te(r,e,t){return r.length===0?1:Math.exp(t.toNumber(t.evalExpr(r[0])))}function se(r,e,t){return e.random?e.random():Math.random()}function ie(r,e,t){let i=r.length>0?t.toNumber(t.evalExpr(r[0])):Date.now();return e.vars._srand_seed=i,i}function y(r,e){return()=>{throw new Error(`${r}() is not supported - ${e}`)}}function k(r){return()=>{throw new Error(`function '${r}()' is not implemented`)}}function A(r,e){let t=0,i="",n=0;for(;n<r.length;)if(r[n]==="%"&&n+1<r.length){let a=n+1,h="",c="",u="";for(;a<r.length&&/[-+ #0]/.test(r[a]);)h+=r[a++];for(;a<r.length&&/\d/.test(r[a]);)c+=r[a++];if(r[a]===".")for(a++;a<r.length&&/\d/.test(r[a]);)u+=r[a++];let x=r[a],p=e[t];switch(x){case"s":{let o=p!==void 0?String(p):"";if(u&&(o=o.substring(0,parseInt(u,10))),c){let f=parseInt(c,10);h.includes("-")?o=o.padEnd(f):o=o.padStart(f)}i+=o,t++;break}case"d":case"i":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=String(o);if(c){let l=parseInt(c,10);if(h.includes("-"))f=f.padEnd(l);else if(h.includes("0")&&!h.includes("-")){let E=o<0?"-":"";f=E+Math.abs(o).toString().padStart(l-E.length,"0")}else f=f.padStart(l)}i+=f,t++;break}case"f":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o.toFixed(f);if(c){let E=parseInt(c,10);h.includes("-")?l=l.padEnd(E):l=l.padStart(E)}i+=l,t++;break}case"e":case"E":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o.toExponential(f);if(x==="E"&&(l=l.toUpperCase()),c){let E=parseInt(c,10);h.includes("-")?l=l.padEnd(E):l=l.padStart(E)}i+=l,t++;break}case"g":case"G":{let o=p!==void 0?Number(p):0;Number.isNaN(o)&&(o=0);let f=u?parseInt(u,10):6,l=o!==0?Math.floor(Math.log10(Math.abs(o))):0,E;if(o===0?E="0":l<-4||l>=f?(E=o.toExponential(f-1),x==="G"&&(E=E.toUpperCase())):E=o.toPrecision(f),E=E.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),c){let d=parseInt(c,10);h.includes("-")?E=E.padEnd(d):E=E.padStart(d)}i+=E,t++;break}case"x":case"X":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=Math.abs(o).toString(16);if(x==="X"&&(f=f.toUpperCase()),c){let l=parseInt(c,10);h.includes("0")?f=f.padStart(l,"0"):h.includes("-")?f=f.padEnd(l):f=f.padStart(l)}i+=o<0?`-${f}`:f,t++;break}case"o":{let o=p!==void 0?Math.floor(Number(p)):0;Number.isNaN(o)&&(o=0);let f=Math.abs(o).toString(8);if(c){let l=parseInt(c,10);h.includes("0")?f=f.padStart(l,"0"):h.includes("-")?f=f.padEnd(l):f=f.padStart(l)}i+=o<0?`-${f}`:f,t++;break}case"c":{typeof p=="number"?i+=String.fromCharCode(p):i+=String(p??"").charAt(0)||"",t++;break}case"%":i+="%";break;default:i+=r.substring(n,a+1)}n=a+1}else if(r[n]==="\\"&&n+1<r.length){let a=r[n+1];switch(a){case"n":i+=`
3
- `;break;case"t":i+=" ";break;case"r":i+="\r";break;case"\\":i+="\\";break;default:i+=a}n+=2}else i+=r[n++];return i}var O={length:D,substr:B,index:U,split:H,sub:W,gsub:$,match:V,gensub:X,tolower:K,toupper:Q,sprintf:j,int:q,sqrt:z,sin:Z,cos:Y,atan2:J,log:ee,exp:te,rand:se,srand:ie,system:y("system","shell execution not allowed in sandboxed environment"),close:y("close","file operations not allowed"),fflush:y("fflush","file operations not allowed"),systime:k("systime"),mktime:k("mktime"),strftime:k("strftime")};var re=1e4,ne=1e3;function M(r=/\s+/,e=re){return{FS:" ",OFS:" ",ORS:`
4
- `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},functions:new Map,fieldSep:r,maxIterations:e,maxRecursionDepth:ne,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:""}}var m=class{ctx;program=null;rangeStates=[];constructor(e){this.ctx=e}execute(e){this.program=e,this.ctx.output="";for(let t of e.functions)this.ctx.functions.set(t.name,t);return this.rangeStates=e.rules.map(()=>!1),this.ctx.output}executeBegin(){if(this.program){for(let e of this.program.rules)if(e.pattern?.type==="begin"&&(this.executeBlock(e.action),this.ctx.shouldExit))break}}executeLine(e){if(!(!this.program||this.ctx.shouldExit)){this.ctx.line=e,this.ctx.NR++,this.ctx.FNR++,this.ctx.fields=this.splitFields(e),this.ctx.NF=this.ctx.fields.length,this.ctx.shouldNext=!1;for(let t=0;t<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext);t++){let i=this.program.rules[t];i.pattern?.type==="begin"||i.pattern?.type==="end"||this.matchesRule(i,t)&&this.executeBlock(i.action)}}}executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let e of this.program.rules)if(e.pattern?.type==="end"&&(this.executeBlock(e.action),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}splitFields(e){return this.ctx.FS===" "?e.trim().split(/\s+/).filter(Boolean):e.split(this.ctx.fieldSep)}matchesRule(e,t){let i=e.pattern;if(!i)return!0;switch(i.type){case"begin":case"end":return!1;case"regex_pattern":return this.matchRegex(i.pattern,this.ctx.line);case"expr_pattern":return this.isTruthy(this.evalExpr(i.expression));case"range":{let n=this.matchPattern(i.start),a=this.matchPattern(i.end);return this.rangeStates[t]?(a&&(this.rangeStates[t]=!1),!0):n?(this.rangeStates[t]=!0,a&&(this.rangeStates[t]=!1),!0):!1}default:return!1}}matchPattern(e){switch(e.type){case"regex_pattern":return this.matchRegex(e.pattern,this.ctx.line);case"expr_pattern":return this.isTruthy(this.evalExpr(e.expression));default:return!1}}matchRegex(e,t){try{return new RegExp(e).test(t)}catch{return!1}}executeBlock(e){for(let t of e.statements)if(this.executeStmt(t),this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.loopBreak||this.ctx.loopContinue||this.ctx.hasReturn)break}executeStmt(e){switch(e.type){case"block":this.executeBlock(e);break;case"expr_stmt":this.evalExpr(e.expression);break;case"print":this.executePrint(e.args,e.output);break;case"printf":this.executePrintf(e.format,e.args,e.output);break;case"if":this.executeIf(e);break;case"while":this.executeWhile(e);break;case"do_while":this.executeDoWhile(e);break;case"for":this.executeFor(e);break;case"for_in":this.executeForIn(e);break;case"break":this.ctx.loopBreak=!0;break;case"continue":this.ctx.loopContinue=!0;break;case"next":this.ctx.shouldNext=!0;break;case"exit":this.ctx.shouldExit=!0,this.ctx.exitCode=e.code?Math.floor(this.toNumber(this.evalExpr(e.code))):0;break;case"return":this.ctx.hasReturn=!0,this.ctx.returnValue=e.value?this.evalExpr(e.value):"";break;case"delete":this.executeDelete(e.target);break}}executePrint(e,t){let n=e.map(a=>this.toString(this.evalExpr(a))).join(this.ctx.OFS)+this.ctx.ORS;t?this.ctx.output+=n:this.ctx.output+=n}executePrintf(e,t,i){let n=this.toString(this.evalExpr(e)),a=t.map(c=>this.evalExpr(c)),h=A(n,a);i?this.ctx.output+=h:this.ctx.output+=h}executeIf(e){this.isTruthy(this.evalExpr(e.condition))?this.executeStmt(e.consequent):e.alternate&&this.executeStmt(e.alternate)}executeWhile(e){let t=0;for(;this.isTruthy(this.evalExpr(e.condition));){if(t++,t>this.ctx.maxIterations)throw new S(`awk: while loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}}executeDoWhile(e){let t=0;do{if(t++,t>this.ctx.maxIterations)throw new S(`awk: do-while loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}while(this.isTruthy(this.evalExpr(e.condition)))}executeFor(e){e.init&&this.evalExpr(e.init);let t=0;for(;!e.condition||this.isTruthy(this.evalExpr(e.condition));){if(t++,t>this.ctx.maxIterations)throw new S(`awk: for loop exceeded maximum iterations (${this.ctx.maxIterations})`,"iterations",this.ctx.output);if(this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break;e.update&&this.evalExpr(e.update)}}executeForIn(e){let t=this.ctx.arrays[e.array];if(t)for(let i of Object.keys(t)){if(this.ctx.vars[e.variable]=i,this.ctx.loopContinue=!1,this.executeStmt(e.body),this.ctx.loopBreak){this.ctx.loopBreak=!1;break}if(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.hasReturn)break}}executeDelete(e){if(e.type==="array_access"){let t=this.ctx.arrays[e.array];if(t){let i=this.toString(this.evalExpr(e.key));delete t[i]}}else e.type==="variable"&&delete this.ctx.arrays[e.name]}evalExpr(e){switch(e.type){case"number":return e.value;case"string":return e.value;case"regex":return this.matchRegex(e.pattern,this.ctx.line)?1:0;case"field":return this.getField(e);case"variable":return this.getVariable(e.name);case"array_access":return this.getArrayElement(e.array,e.key);case"binary":return this.evalBinaryOp(e);case"unary":return this.evalUnaryOp(e);case"ternary":return this.isTruthy(this.evalExpr(e.condition))?this.evalExpr(e.consequent):this.evalExpr(e.alternate);case"call":return this.evalFunctionCall(e.name,e.args);case"assignment":return this.evalAssignment(e);case"pre_increment":return this.evalPreIncrement(e.operand);case"pre_decrement":return this.evalPreDecrement(e.operand);case"post_increment":return this.evalPostIncrement(e.operand);case"post_decrement":return this.evalPostDecrement(e.operand);case"in":return this.evalInExpr(e.key,e.array);case"getline":return this.evalGetline(e.variable,e.file);case"tuple":if(e.elements.length===0)return"";for(let t=0;t<e.elements.length-1;t++)this.evalExpr(e.elements[t]);return this.evalExpr(e.elements[e.elements.length-1]);default:return""}}getField(e){let t=Math.floor(this.toNumber(this.evalExpr(e.index)));return t===0?this.ctx.line:t<0||t>this.ctx.fields.length?"":this.ctx.fields[t-1]??""}setField(e,t){if(e===0)this.ctx.line=this.toString(t),this.ctx.fields=this.splitFields(this.ctx.line),this.ctx.NF=this.ctx.fields.length;else if(e>0){for(;this.ctx.fields.length<e;)this.ctx.fields.push("");this.ctx.fields[e-1]=this.toString(t),this.ctx.NF=this.ctx.fields.length,this.ctx.line=this.ctx.fields.join(this.ctx.OFS)}}getVariable(e){switch(e){case"FS":return this.ctx.FS;case"OFS":return this.ctx.OFS;case"ORS":return this.ctx.ORS;case"NR":return this.ctx.NR;case"NF":return this.ctx.NF;case"FNR":return this.ctx.FNR;case"FILENAME":return this.ctx.FILENAME;case"RSTART":return this.ctx.RSTART;case"RLENGTH":return this.ctx.RLENGTH;case"SUBSEP":return this.ctx.SUBSEP}return this.ctx.vars[e]??""}setVariable(e,t){switch(e){case"FS":if(this.ctx.FS=this.toString(t),this.ctx.FS===" ")this.ctx.fieldSep=/\s+/;else try{this.ctx.fieldSep=new RegExp(this.ctx.FS)}catch{this.ctx.fieldSep=new RegExp(this.ctx.FS.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}return;case"OFS":this.ctx.OFS=this.toString(t);return;case"ORS":this.ctx.ORS=this.toString(t);return;case"NR":this.ctx.NR=Math.floor(this.toNumber(t));return;case"NF":{let i=Math.floor(this.toNumber(t));if(i<this.ctx.NF)this.ctx.fields=this.ctx.fields.slice(0,i),this.ctx.line=this.ctx.fields.join(this.ctx.OFS);else if(i>this.ctx.NF){for(;this.ctx.fields.length<i;)this.ctx.fields.push("");this.ctx.line=this.ctx.fields.join(this.ctx.OFS)}this.ctx.NF=i;return}case"FNR":this.ctx.FNR=Math.floor(this.toNumber(t));return;case"FILENAME":this.ctx.FILENAME=this.toString(t);return;case"RSTART":this.ctx.RSTART=Math.floor(this.toNumber(t));return;case"RLENGTH":this.ctx.RLENGTH=Math.floor(this.toNumber(t));return;case"SUBSEP":this.ctx.SUBSEP=this.toString(t);return}this.ctx.vars[e]=t}getArrayElement(e,t){let i=this.toString(this.evalExpr(t));return this.ctx.arrays[e]?.[i]??""}setArrayElement(e,t,i){this.ctx.arrays[e]||(this.ctx.arrays[e]={}),this.ctx.arrays[e][t]=i}evalBinaryOp(e){let t=e.operator;if(t==="||")return this.isTruthy(this.evalExpr(e.left))||this.isTruthy(this.evalExpr(e.right))?1:0;if(t==="&&")return this.isTruthy(this.evalExpr(e.left))&&this.isTruthy(this.evalExpr(e.right))?1:0;if(t==="~"){let c=this.evalExpr(e.left),u=e.right.type==="regex"?e.right.pattern:this.toString(this.evalExpr(e.right));try{return new RegExp(u).test(this.toString(c))?1:0}catch{return 0}}if(t==="!~"){let c=this.evalExpr(e.left),u=e.right.type==="regex"?e.right.pattern:this.toString(this.evalExpr(e.right));try{return new RegExp(u).test(this.toString(c))?0:1}catch{return 1}}let i=this.evalExpr(e.left),n=this.evalExpr(e.right);if(t===" ")return this.toString(i)+this.toString(n);if(this.isComparisonOp(t))return this.evalComparison(i,n,t);let a=this.toNumber(i),h=this.toNumber(n);return w(a,h,t)}isComparisonOp(e){return["<","<=",">",">=","==","!="].includes(e)}evalComparison(e,t,i){let n=this.looksLikeNumber(e),a=this.looksLikeNumber(t);if(n&&a){let u=this.toNumber(e),x=this.toNumber(t);switch(i){case"<":return u<x?1:0;case"<=":return u<=x?1:0;case">":return u>x?1:0;case">=":return u>=x?1:0;case"==":return u===x?1:0;case"!=":return u!==x?1:0}}let h=this.toString(e),c=this.toString(t);switch(i){case"<":return h<c?1:0;case"<=":return h<=c?1:0;case">":return h>c?1:0;case">=":return h>=c?1:0;case"==":return h===c?1:0;case"!=":return h!==c?1:0}return 0}looksLikeNumber(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}evalUnaryOp(e){let t=this.evalExpr(e.operand);switch(e.operator){case"!":return this.isTruthy(t)?0:1;case"-":return-this.toNumber(t);case"+":return+this.toNumber(t);default:return t}}evalFunctionCall(e,t){let i=O[e];if(i)return i(t,this.ctx,this);let n=this.ctx.functions.get(e);return n?this.callUserFunction(n,t):""}callUserFunction(e,t){if(this.ctx.currentRecursionDepth++,this.ctx.currentRecursionDepth>this.ctx.maxRecursionDepth)throw this.ctx.currentRecursionDepth--,new S(`awk: recursion depth exceeded maximum (${this.ctx.maxRecursionDepth})`,"recursion",this.ctx.output);let i={...this.ctx.vars};for(let a=0;a<e.params.length;a++){let h=e.params[a],c=a<t.length?this.evalExpr(t[a]):"";this.ctx.vars[h]=c}this.ctx.hasReturn=!1,this.ctx.returnValue=void 0,this.executeBlock(e.body);let n=this.ctx.returnValue??"";return this.ctx.vars=i,this.ctx.hasReturn=!1,this.ctx.returnValue=void 0,this.ctx.currentRecursionDepth--,n}evalAssignment(e){let t=this.evalExpr(e.value),i=e.target,n=e.operator,a;if(n==="=")a=t;else{let h;i.type==="field"?h=this.getField(i):i.type==="variable"?h=this.getVariable(i.name):h=this.getArrayElement(i.array,i.key);let c=this.toNumber(h),u=this.toNumber(t);switch(n){case"+=":a=c+u;break;case"-=":a=c-u;break;case"*=":a=c*u;break;case"/=":a=u!==0?c/u:0;break;case"%=":a=u!==0?c%u:0;break;case"^=":a=c**u;break;default:a=t}}if(i.type==="field"){let h=Math.floor(this.toNumber(this.evalExpr(i.index)));this.setField(h,a)}else if(i.type==="variable")this.setVariable(i.name,a);else{let h=this.toString(this.evalExpr(i.key));this.setArrayElement(i.array,h,a)}return a}evalPreIncrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e))+1;let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name))+1,this.setVariable(e.name,t);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0)+1,this.setArrayElement(e.array,i,t)}return t}evalPreDecrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e))-1;let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name))-1,this.setVariable(e.name,t);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0)-1,this.setArrayElement(e.array,i,t)}return t}evalPostIncrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e));let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t+1)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name)),this.setVariable(e.name,t+1);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0),this.setArrayElement(e.array,i,t+1)}return t}evalPostDecrement(e){let t;if(e.type==="field"){t=this.toNumber(this.getField(e));let i=Math.floor(this.toNumber(this.evalExpr(e.index)));this.setField(i,t-1)}else if(e.type==="variable")t=this.toNumber(this.getVariable(e.name)),this.setVariable(e.name,t-1);else{let i=this.toString(this.evalExpr(e.key));t=this.toNumber(this.ctx.arrays[e.array]?.[i]??0),this.setArrayElement(e.array,i,t-1)}return t}evalInExpr(e,t){let i;return e.type==="tuple"?i=e.elements.map(n=>this.toString(this.evalExpr(n))).join(this.ctx.SUBSEP):i=this.toString(this.evalExpr(e)),this.ctx.arrays[t]?.[i]!==void 0?1:0}evalGetline(e,t){if(!this.ctx.lines||this.ctx.lineIndex===void 0)return-1;let i=this.ctx.lineIndex+1;if(i>=this.ctx.lines.length)return 0;let n=this.ctx.lines[i];return e?this.setVariable(e,n):(this.ctx.line=n,this.ctx.fields=this.splitFields(n),this.ctx.NF=this.ctx.fields.length),this.ctx.NR++,this.ctx.lineIndex=i,1}isTruthy(e){return typeof e=="number"?e!==0:e!==""}toNumber(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}toString(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}};var s;(function(r){r.NUMBER="NUMBER",r.STRING="STRING",r.REGEX="REGEX",r.IDENT="IDENT",r.BEGIN="BEGIN",r.END="END",r.IF="IF",r.ELSE="ELSE",r.WHILE="WHILE",r.DO="DO",r.FOR="FOR",r.IN="IN",r.BREAK="BREAK",r.CONTINUE="CONTINUE",r.NEXT="NEXT",r.EXIT="EXIT",r.RETURN="RETURN",r.DELETE="DELETE",r.FUNCTION="FUNCTION",r.PRINT="PRINT",r.PRINTF="PRINTF",r.GETLINE="GETLINE",r.PLUS="PLUS",r.MINUS="MINUS",r.STAR="STAR",r.SLASH="SLASH",r.PERCENT="PERCENT",r.CARET="CARET",r.EQ="EQ",r.NE="NE",r.LT="LT",r.GT="GT",r.LE="LE",r.GE="GE",r.MATCH="MATCH",r.NOT_MATCH="NOT_MATCH",r.AND="AND",r.OR="OR",r.NOT="NOT",r.ASSIGN="ASSIGN",r.PLUS_ASSIGN="PLUS_ASSIGN",r.MINUS_ASSIGN="MINUS_ASSIGN",r.STAR_ASSIGN="STAR_ASSIGN",r.SLASH_ASSIGN="SLASH_ASSIGN",r.PERCENT_ASSIGN="PERCENT_ASSIGN",r.CARET_ASSIGN="CARET_ASSIGN",r.INCREMENT="INCREMENT",r.DECREMENT="DECREMENT",r.QUESTION="QUESTION",r.COLON="COLON",r.COMMA="COMMA",r.SEMICOLON="SEMICOLON",r.NEWLINE="NEWLINE",r.LPAREN="LPAREN",r.RPAREN="RPAREN",r.LBRACE="LBRACE",r.RBRACE="RBRACE",r.LBRACKET="LBRACKET",r.RBRACKET="RBRACKET",r.DOLLAR="DOLLAR",r.APPEND="APPEND",r.PIPE="PIPE",r.EOF="EOF"})(s||(s={}));var ae={BEGIN:s.BEGIN,END:s.END,if:s.IF,else:s.ELSE,while:s.WHILE,do:s.DO,for:s.FOR,in:s.IN,break:s.BREAK,continue:s.CONTINUE,next:s.NEXT,exit:s.EXIT,return:s.RETURN,delete:s.DELETE,function:s.FUNCTION,print:s.PRINT,printf:s.PRINTF,getline:s.GETLINE};function ce(r){return r.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var v=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&(e.push(t),this.lastTokenType=t.type)}return e.push(this.makeToken(s.EOF,"")),e}makeToken(e,t){return{type:e,value:t,line:this.line,column:this.column}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
5
- `?(this.line++,this.column=1):this.column++,e}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="\\")if(this.peek(1)===`
6
- `)this.advance(),this.advance();else break;else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
7
- `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let e=this.line,t=this.column,i=this.peek();return i===`
8
- `?(this.advance(),{type:s.NEWLINE,value:`
9
- `,line:e,column:t}):i==='"'?this.readString():i==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(i)||i==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(i)||i==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,s.NEWLINE,s.SEMICOLON,s.LBRACE,s.RBRACE,s.LPAREN,s.LBRACKET,s.COMMA,s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN,s.AND,s.OR,s.NOT,s.MATCH,s.NOT_MATCH,s.QUESTION,s.COLON,s.LT,s.GT,s.LE,s.GE,s.EQ,s.NE,s.PLUS,s.MINUS,s.STAR,s.PERCENT,s.CARET,s.PRINT,s.PRINTF,s.IF,s.WHILE,s.DO,s.FOR,s.RETURN]).has(this.lastTokenType)}readString(){let e=this.line,t=this.column;this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let n=this.advance();switch(n){case"n":i+=`
10
- `;break;case"t":i+=" ";break;case"r":i+="\r";break;case"\\":i+="\\";break;case'"':i+='"';break;case"/":i+="/";break;default:i+=n}}else i+=this.advance();return this.peek()==='"'&&this.advance(),{type:s.STRING,value:i,line:e,column:t}}readRegex(){let e=this.line,t=this.column;this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")i+=this.advance(),this.pos<this.input.length&&(i+=this.advance());else{if(this.peek()===`
11
- `)break;i+=this.advance()}return this.peek()==="/"&&this.advance(),i=ce(i),{type:s.REGEX,value:i,line:e,column:t}}readNumber(){let e=this.line,t=this.column,i="";for(;this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(i+=this.advance();this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(i+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(i+=this.advance());this.isDigit(this.peek());)i+=this.advance();return{type:s.NUMBER,value:parseFloat(i),line:e,column:t}}readIdentifier(){let e=this.line,t=this.column,i="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)i+=this.advance();let n=ae[i];return n?{type:n,value:i,line:e,column:t}:{type:s.IDENT,value:i,line:e,column:t}}readOperator(){let e=this.line,t=this.column,i=this.advance(),n=this.peek();switch(i){case"+":return n==="+"?(this.advance(),{type:s.INCREMENT,value:"++",line:e,column:t}):n==="="?(this.advance(),{type:s.PLUS_ASSIGN,value:"+=",line:e,column:t}):{type:s.PLUS,value:"+",line:e,column:t};case"-":return n==="-"?(this.advance(),{type:s.DECREMENT,value:"--",line:e,column:t}):n==="="?(this.advance(),{type:s.MINUS_ASSIGN,value:"-=",line:e,column:t}):{type:s.MINUS,value:"-",line:e,column:t};case"*":return n==="*"?(this.advance(),{type:s.CARET,value:"**",line:e,column:t}):n==="="?(this.advance(),{type:s.STAR_ASSIGN,value:"*=",line:e,column:t}):{type:s.STAR,value:"*",line:e,column:t};case"/":return n==="="?(this.advance(),{type:s.SLASH_ASSIGN,value:"/=",line:e,column:t}):{type:s.SLASH,value:"/",line:e,column:t};case"%":return n==="="?(this.advance(),{type:s.PERCENT_ASSIGN,value:"%=",line:e,column:t}):{type:s.PERCENT,value:"%",line:e,column:t};case"^":return n==="="?(this.advance(),{type:s.CARET_ASSIGN,value:"^=",line:e,column:t}):{type:s.CARET,value:"^",line:e,column:t};case"=":return n==="="?(this.advance(),{type:s.EQ,value:"==",line:e,column:t}):{type:s.ASSIGN,value:"=",line:e,column:t};case"!":return n==="="?(this.advance(),{type:s.NE,value:"!=",line:e,column:t}):n==="~"?(this.advance(),{type:s.NOT_MATCH,value:"!~",line:e,column:t}):{type:s.NOT,value:"!",line:e,column:t};case"<":return n==="="?(this.advance(),{type:s.LE,value:"<=",line:e,column:t}):{type:s.LT,value:"<",line:e,column:t};case">":return n==="="?(this.advance(),{type:s.GE,value:">=",line:e,column:t}):n===">"?(this.advance(),{type:s.APPEND,value:">>",line:e,column:t}):{type:s.GT,value:">",line:e,column:t};case"&":return n==="&"?(this.advance(),{type:s.AND,value:"&&",line:e,column:t}):{type:s.IDENT,value:"&",line:e,column:t};case"|":return n==="|"?(this.advance(),{type:s.OR,value:"||",line:e,column:t}):{type:s.PIPE,value:"|",line:e,column:t};case"~":return{type:s.MATCH,value:"~",line:e,column:t};case"?":return{type:s.QUESTION,value:"?",line:e,column:t};case":":return{type:s.COLON,value:":",line:e,column:t};case",":return{type:s.COMMA,value:",",line:e,column:t};case";":return{type:s.SEMICOLON,value:";",line:e,column:t};case"(":return{type:s.LPAREN,value:"(",line:e,column:t};case")":return{type:s.RPAREN,value:")",line:e,column:t};case"{":return{type:s.LBRACE,value:"{",line:e,column:t};case"}":return{type:s.RBRACE,value:"}",line:e,column:t};case"[":return{type:s.LBRACKET,value:"[",line:e,column:t};case"]":return{type:s.RBRACKET,value:"]",line:e,column:t};case"$":return{type:s.DOLLAR,value:"$",line:e,column:t};default:return{type:s.IDENT,value:i,line:e,column:t}}}isDigit(e){return e>="0"&&e<="9"}isAlpha(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}isAlphaNumeric(e){return this.isDigit(e)||this.isAlpha(e)}};var g=class{tokens=[];pos=0;parse(e){let t=new v(e);return this.tokens=t.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:s.EOF,value:"",line:0,column:0}}advance(){let e=this.current();return this.pos<this.tokens.length&&this.pos++,e}match(...e){return e.includes(this.current().type)}check(e){return this.current().type===e}expect(e,t){if(!this.check(e)){let i=this.current();throw new Error(t||`Expected ${e}, got ${i.type} at line ${i.line}:${i.column}`)}return this.advance()}skipNewlines(){for(;this.check(s.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(s.NEWLINE)||this.check(s.SEMICOLON);)this.advance()}parseProgram(){let e=[],t=[];for(this.skipNewlines();!this.check(s.EOF)&&(this.skipNewlines(),!this.check(s.EOF));)this.check(s.FUNCTION)?e.push(this.parseFunction()):t.push(this.parseRule()),this.skipTerminators();return{functions:e,rules:t}}parseFunction(){this.expect(s.FUNCTION);let e=this.expect(s.IDENT).value;this.expect(s.LPAREN);let t=[];if(!this.check(s.RPAREN))for(t.push(this.expect(s.IDENT).value);this.check(s.COMMA);)this.advance(),t.push(this.expect(s.IDENT).value);this.expect(s.RPAREN),this.skipNewlines();let i=this.parseBlock();return{name:e,params:t,body:i}}parseRule(){let e;if(this.check(s.BEGIN))this.advance(),e={type:"begin"};else if(this.check(s.END))this.advance(),e={type:"end"};else if(this.check(s.LBRACE))e=void 0;else if(this.check(s.REGEX)){let n={type:"regex_pattern",pattern:this.advance().value};if(this.check(s.COMMA)){this.advance();let a;this.check(s.REGEX)?a={type:"regex_pattern",pattern:this.advance().value}:a={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:n,end:a}}else e=n}else{let n={type:"expr_pattern",expression:this.parseExpression()};if(this.check(s.COMMA)){this.advance();let a;this.check(s.REGEX)?a={type:"regex_pattern",pattern:this.advance().value}:a={type:"expr_pattern",expression:this.parseExpression()},e={type:"range",start:n,end:a}}else e=n}this.skipNewlines();let t;return this.check(s.LBRACE)?t=this.parseBlock():t={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:e,action:t}}parseBlock(){this.expect(s.LBRACE),this.skipNewlines();let e=[];for(;!this.check(s.RBRACE)&&!this.check(s.EOF);)e.push(this.parseStatement()),this.skipTerminators();return this.expect(s.RBRACE),{type:"block",statements:e}}parseStatement(){if(this.check(s.LBRACE))return this.parseBlock();if(this.check(s.IF))return this.parseIf();if(this.check(s.WHILE))return this.parseWhile();if(this.check(s.DO))return this.parseDoWhile();if(this.check(s.FOR))return this.parseFor();if(this.check(s.BREAK))return this.advance(),{type:"break"};if(this.check(s.CONTINUE))return this.advance(),{type:"continue"};if(this.check(s.NEXT))return this.advance(),{type:"next"};if(this.check(s.EXIT)){this.advance();let t;return!this.check(s.NEWLINE)&&!this.check(s.SEMICOLON)&&!this.check(s.RBRACE)&&!this.check(s.EOF)&&(t=this.parseExpression()),{type:"exit",code:t}}if(this.check(s.RETURN)){this.advance();let t;return!this.check(s.NEWLINE)&&!this.check(s.SEMICOLON)&&!this.check(s.RBRACE)&&!this.check(s.EOF)&&(t=this.parseExpression()),{type:"return",value:t}}if(this.check(s.DELETE)){this.advance();let t=this.parsePrimary();if(t.type!=="array_access"&&t.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:t}}return this.check(s.PRINT)?this.parsePrint():this.check(s.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(s.IF),this.expect(s.LPAREN);let e=this.parseExpression();this.expect(s.RPAREN),this.skipNewlines();let t=this.parseStatement();this.skipTerminators();let i;return this.check(s.ELSE)&&(this.advance(),this.skipNewlines(),i=this.parseStatement()),{type:"if",condition:e,consequent:t,alternate:i}}parseWhile(){this.expect(s.WHILE),this.expect(s.LPAREN);let e=this.parseExpression();this.expect(s.RPAREN),this.skipNewlines();let t=this.parseStatement();return{type:"while",condition:e,body:t}}parseDoWhile(){this.expect(s.DO),this.skipNewlines();let e=this.parseStatement();this.skipNewlines(),this.expect(s.WHILE),this.expect(s.LPAREN);let t=this.parseExpression();return this.expect(s.RPAREN),{type:"do_while",body:e,condition:t}}parseFor(){if(this.expect(s.FOR),this.expect(s.LPAREN),this.check(s.IDENT)){let a=this.advance();if(this.check(s.IN)){this.advance();let h=this.expect(s.IDENT).value;this.expect(s.RPAREN),this.skipNewlines();let c=this.parseStatement();return{type:"for_in",variable:a.value,array:h,body:c}}this.pos--}let e;this.check(s.SEMICOLON)||(e=this.parseExpression()),this.expect(s.SEMICOLON);let t;this.check(s.SEMICOLON)||(t=this.parseExpression()),this.expect(s.SEMICOLON);let i;this.check(s.RPAREN)||(i=this.parseExpression()),this.expect(s.RPAREN),this.skipNewlines();let n=this.parseStatement();return{type:"for",init:e,condition:t,update:i,body:n}}parsePrint(){this.expect(s.PRINT);let e=[];if(this.check(s.NEWLINE)||this.check(s.SEMICOLON)||this.check(s.RBRACE)||this.check(s.PIPE)||this.check(s.GT)||this.check(s.APPEND))e.push({type:"field",index:{type:"number",value:0}});else for(e.push(this.parseTernary());this.check(s.COMMA);)this.advance(),e.push(this.parseTernary());let t;return this.check(s.GT)?(this.advance(),t={redirect:">",file:this.parsePrimary()}):this.check(s.APPEND)&&(this.advance(),t={redirect:">>",file:this.parsePrimary()}),{type:"print",args:e,output:t}}parsePrintf(){this.expect(s.PRINTF);let e=this.parseExpression(),t=[];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());let i;return this.check(s.GT)?(this.advance(),i={redirect:">",file:this.parsePrimary()}):this.check(s.APPEND)&&(this.advance(),i={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:e,args:t,output:i}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseTernary();if(this.match(s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN)){let t=this.advance(),i=this.parseAssignment();if(e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[t.value],target:e,value:i}}return e}parseTernary(){let e=this.parseOr();if(this.check(s.QUESTION)){this.advance();let t=this.parseExpression();this.expect(s.COLON);let i=this.parseExpression();e={type:"ternary",condition:e,consequent:t,alternate:i}}return e}parseOr(){let e=this.parseAnd();for(;this.check(s.OR);){this.advance();let t=this.parseAnd();e={type:"binary",operator:"||",left:e,right:t}}return e}parseAnd(){let e=this.parseIn();for(;this.check(s.AND);){this.advance();let t=this.parseIn();e={type:"binary",operator:"&&",left:e,right:t}}return e}parseIn(){let e=this.parseMatch();if(this.check(s.IN)){this.advance();let t=this.expect(s.IDENT).value;return{type:"in",key:e,array:t}}return e}parseMatch(){let e=this.parseComparison();for(;this.match(s.MATCH,s.NOT_MATCH);){let t=this.advance().type===s.MATCH?"~":"!~",i=this.parseComparison();e={type:"binary",operator:t,left:e,right:i}}return e}parseComparison(){let e=this.parseConcatenation();for(;this.match(s.LT,s.LE,s.GT,s.GE,s.EQ,s.NE);){let t=this.advance(),i=this.parseConcatenation();e={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[t.value],left:e,right:i}}return e}parseConcatenation(){let e=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let t=this.parseAddSub();e={type:"binary",operator:" ",left:e,right:t}}return e}canStartExpression(){return this.match(s.NUMBER,s.STRING,s.IDENT,s.DOLLAR,s.LPAREN,s.NOT,s.MINUS,s.PLUS,s.INCREMENT,s.DECREMENT)}isComparisonOrHigherOp(){return this.match(s.LT,s.LE,s.GT,s.GE,s.EQ,s.NE,s.AND,s.OR,s.QUESTION,s.MATCH,s.NOT_MATCH,s.ASSIGN,s.PLUS_ASSIGN,s.MINUS_ASSIGN,s.STAR_ASSIGN,s.SLASH_ASSIGN,s.PERCENT_ASSIGN,s.CARET_ASSIGN,s.COMMA,s.SEMICOLON,s.NEWLINE,s.RBRACE,s.RPAREN,s.RBRACKET,s.COLON,s.PIPE,s.APPEND,s.IN)}parseAddSub(){let e=this.parseMulDiv();for(;this.match(s.PLUS,s.MINUS);){let t=this.advance().value,i=this.parseMulDiv();e={type:"binary",operator:t,left:e,right:i}}return e}parseMulDiv(){let e=this.parseUnary();for(;this.match(s.STAR,s.SLASH,s.PERCENT);){let t=this.advance(),i=this.parseUnary();e={type:"binary",operator:{"*":"*","/":"/","%":"%"}[t.value],left:e,right:i}}return e}parseUnary(){if(this.check(s.INCREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:e}}:{type:"pre_increment",operand:e}}if(this.check(s.DECREMENT)){this.advance();let e=this.parseUnary();return e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:e}}:{type:"pre_decrement",operand:e}}if(this.match(s.NOT,s.MINUS,s.PLUS)){let e=this.advance().value,t=this.parseUnary();return{type:"unary",operator:e,operand:t}}return this.parsePower()}parsePower(){let e=this.parsePostfix();if(this.check(s.CARET)){this.advance();let t=this.parsePower();e={type:"binary",operator:"^",left:e,right:t}}return e}parsePostfix(){let e=this.parsePrimary();if(this.check(s.INCREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:e}}if(this.check(s.DECREMENT)){if(this.advance(),e.type!=="variable"&&e.type!=="field"&&e.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:e}}return e}parsePrimary(){if(this.check(s.NUMBER))return{type:"number",value:this.advance().value};if(this.check(s.STRING))return{type:"string",value:this.advance().value};if(this.check(s.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(s.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(s.LPAREN)){this.advance();let e=this.parseExpression();if(this.check(s.COMMA)){let t=[e];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());return this.expect(s.RPAREN),{type:"tuple",elements:t}}return this.expect(s.RPAREN),e}if(this.check(s.GETLINE)){this.advance();let e,t;return this.check(s.IDENT)&&(e=this.advance().value),this.check(s.LT)&&(this.advance(),t=this.parsePrimary()),{type:"getline",variable:e,file:t}}if(this.check(s.IDENT)){let e=this.advance().value;if(this.check(s.LPAREN)){this.advance();let t=[];if(!this.check(s.RPAREN))for(t.push(this.parseExpression());this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());return this.expect(s.RPAREN),{type:"call",name:e,args:t}}if(this.check(s.LBRACKET)){this.advance();let t=[this.parseExpression()];for(;this.check(s.COMMA);)this.advance(),t.push(this.parseExpression());this.expect(s.RBRACKET);let i;if(t.length===1)i=t[0];else{i=t[0];for(let n=1;n<t.length;n++)i={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:i,right:{type:"variable",name:"SUBSEP"}},right:t[n]}}return{type:"array_access",array:e,key:i}}return{type:"variable",name:e}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var he={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},ge={name:"awk",async execute(r,e){if(b(r))return I(he);let t=/\s+/,i=" ",n={},a=0;for(let l=0;l<r.length;l++){let E=r[l];if(E==="-F"&&l+1<r.length)i=P(r[++l]),t=F(i),a=l+1;else if(E.startsWith("-F"))i=P(E.slice(2)),t=F(i),a=l+1;else if(E==="-v"&&l+1<r.length){let d=r[++l],N=d.indexOf("=");if(N>0){let _=d.slice(0,N),G=d.slice(N+1);n[_]=G}a=l+1}else{if(E.startsWith("--"))return R("awk",E);if(E.startsWith("-")&&E.length>1){let d=E[1];if(d!=="F"&&d!=="v")return R("awk",`-${d}`);a=l+1}else if(!E.startsWith("-")){a=l;break}}}if(a>=r.length)return{stdout:"",stderr:`awk: missing program
12
- `,exitCode:1};let h=r[a],c=r.slice(a+1),u=new g,x;try{x=u.parse(h)}catch(l){return{stdout:"",stderr:`awk: ${l instanceof Error?l.message:String(l)}
13
- `,exitCode:1}}let p=M(t,e.limits?.maxAwkIterations);p.FS=i,p.vars={...n};let o=new m(p);if(o.execute(x),o.executeBegin(),p.shouldExit)return{stdout:o.getOutput(),stderr:"",exitCode:o.getExitCode()};let f=[];if(c.length>0)for(let l of c)try{let E=e.fs.resolvePath(e.cwd,l),N=(await e.fs.readFile(E)).split(`
14
- `);N.length>0&&N[N.length-1]===""&&N.pop(),f.push({filename:l,lines:N})}catch{return{stdout:"",stderr:`awk: ${l}: No such file or directory
15
- `,exitCode:1}}else{let l=e.stdin.split(`
16
- `);l.length>0&&l[l.length-1]===""&&l.pop(),f.push({filename:"",lines:l})}for(let l of f){for(p.FILENAME=l.filename,p.FNR=0,p.lines=l.lines,p.lineIndex=-1;p.lineIndex<l.lines.length-1&&(p.lineIndex++,o.executeLine(l.lines[p.lineIndex]),!p.shouldExit););if(p.shouldExit)break}return p.shouldExit||o.executeEnd(),{stdout:o.getOutput(),stderr:"",exitCode:o.getExitCode()}}};function P(r){return r.replace(/\\t/g," ").replace(/\\n/g,`
17
- `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function F(r){if(r===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(r))try{return new RegExp(r)}catch{return new RegExp(T(r))}return new RegExp(T(r))}function T(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{ge as awkCommand2};
@@ -1,19 +0,0 @@
1
- import{i as P}from"./chunk-JYYFSUWP.js";import{a as K,b as Q,c as x}from"./chunk-74CEPOFO.js";function j(e,t,r){switch(r){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return t!==0?e/t:0;case"%":return t!==0?e%t:0;case"^":case"**":return e**t;default:return 0}}function g(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function w(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}async function ce(e,t,r){return e.length===0?t.line.length:w(await r.evalExpr(e[0])).length}async function he(e,t,r){if(e.length<2)return"";let n=w(await r.evalExpr(e[0])),a=Math.floor(g(await r.evalExpr(e[1])))-1;if(e.length>=3){let s=Math.floor(g(await r.evalExpr(e[2])));return n.substr(Math.max(0,a),s)}return n.substr(Math.max(0,a))}async function ue(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=w(await r.evalExpr(e[1])),s=n.indexOf(a);return s===-1?0:s+1}async function pe(e,t,r){if(e.length<2)return 0;let n=w(await r.evalExpr(e[0])),a=e[1];if(a.type!=="variable")return 0;let s=a.name,o=t.FS;if(e.length>=3){let u=w(await r.evalExpr(e[2]));o=u===" "?/\s+/:u}else t.FS===" "&&(o=/\s+/);let l=n.split(o);t.arrays[s]={};for(let u=0;u<l.length;u++)t.arrays[s][String(u+1)]=l[u];return l.length}async function fe(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(g(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n),u=o.replace(l,z(a)),m=u!==o?1:0;if(s==="$0")t.line=u,t.fields=t.FS===" "?u.trim().split(/\s+/).filter(Boolean):u.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let N=parseInt(s.slice(1),10)-1;for(;t.fields.length<=N;)t.fields.push("");t.fields[N]=u,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=u;return m}catch{return 0}}async function de(e,t,r){if(e.length<2)return 0;let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s="$0";if(e.length>=3){let l=e[2];l.type==="variable"?s=l.name:l.type==="field"&&(s=`$${Math.floor(g(await r.evalExpr(l.index)))}`)}let o;if(s==="$0")o=t.line;else if(s.startsWith("$")){let l=parseInt(s.slice(1),10)-1;o=t.fields[l]||""}else o=w(t.vars[s]??"");try{let l=new RegExp(n,"g"),u=o.match(l),m=u?u.length:0,N=o.replace(l,z(a));if(s==="$0")t.line=N,t.fields=t.FS===" "?N.trim().split(/\s+/).filter(Boolean):N.split(t.fieldSep),t.NF=t.fields.length;else if(s.startsWith("$")){let c=parseInt(s.slice(1),10)-1;for(;t.fields.length<=c;)t.fields.push("");t.fields[c]=N,t.NF=t.fields.length,t.line=t.fields.join(t.OFS)}else t.vars[s]=N;return m}catch{return 0}}function z(e){return t=>{let r="",n=0;for(;n<e.length;)if(e[n]==="\\"&&n+1<e.length){let a=e[n+1];a==="&"?(r+="&",n+=2):a==="\\"?(r+="\\",n+=2):(r+=e[n+1],n+=2)}else e[n]==="&"?(r+=t,n++):(r+=e[n],n++);return r}}async function Ee(e,t,r){if(e.length<2)return t.RSTART=0,t.RLENGTH=-1,0;let n=w(await r.evalExpr(e[0])),a;e[1].type==="regex"?a=e[1].pattern:(a=w(await r.evalExpr(e[1])),a.startsWith("/")&&a.endsWith("/")&&(a=a.slice(1,-1)));try{let o=new RegExp(a).exec(n);if(o)return t.RSTART=o.index+1,t.RLENGTH=o[0].length,t.RSTART}catch{}return t.RSTART=0,t.RLENGTH=-1,0}async function Ne(e,t,r){if(e.length<3)return"";let n;e[0].type==="regex"?n=e[0].pattern:(n=w(await r.evalExpr(e[0])),n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)));let a=w(await r.evalExpr(e[1])),s=w(await r.evalExpr(e[2])),o=e.length>=4?w(await r.evalExpr(e[3])):t.line;try{let l=s.toLowerCase()==="g",u=l?0:parseInt(s,10)||1;if(l){let m=new RegExp(n,"g");return o.replace(m,(N,...c)=>q(a,N,c.slice(0,-2)))}else{let m=0,N=new RegExp(n,"g");return o.replace(N,(c,...d)=>(m++,m===u?q(a,c,d.slice(0,-2)):c))}}catch{return o}}function q(e,t,r){let n="",a=0;for(;a<e.length;)if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];if(s==="&")n+="&",a+=2;else if(s==="0")n+=t,a+=2;else if(s>="1"&&s<="9"){let o=parseInt(s,10)-1;n+=r[o]||"",a+=2}else s==="n"?(n+=`
2
- `,a+=2):s==="t"?(n+=" ",a+=2):(n+=s,a+=2)}else e[a]==="&"?(n+=t,a++):(n+=e[a],a++);return n}async function ye(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toLowerCase()}async function me(e,t,r){return e.length===0?"":w(await r.evalExpr(e[0])).toUpperCase()}async function we(e,t,r){if(e.length===0)return"";let n=w(await r.evalExpr(e[0])),a=[];for(let s=1;s<e.length;s++)a.push(await r.evalExpr(e[s]));return W(n,a)}async function Re(e,t,r){return e.length===0?0:Math.floor(g(await r.evalExpr(e[0])))}async function Se(e,t,r){return e.length===0?0:Math.sqrt(g(await r.evalExpr(e[0])))}async function ge(e,t,r){return e.length===0?0:Math.sin(g(await r.evalExpr(e[0])))}async function Ae(e,t,r){return e.length===0?0:Math.cos(g(await r.evalExpr(e[0])))}async function ve(e,t,r){let n=e.length>0?g(await r.evalExpr(e[0])):0,a=e.length>1?g(await r.evalExpr(e[1])):0;return Math.atan2(n,a)}async function ke(e,t,r){return e.length===0?0:Math.log(g(await r.evalExpr(e[0])))}async function Ie(e,t,r){return e.length===0?1:Math.exp(g(await r.evalExpr(e[0])))}function Ce(e,t,r){return t.random?t.random():Math.random()}async function be(e,t,r){let n=e.length>0?g(await r.evalExpr(e[0])):Date.now();return t.vars._srand_seed=n,n}function H(e,t){return()=>{throw new Error(`${e}() is not supported - ${t}`)}}function $(e){return()=>{throw new Error(`function '${e}()' is not implemented`)}}function W(e,t){let r=0,n="",a=0;for(;a<e.length;)if(e[a]==="%"&&a+1<e.length){let s=a+1,o="",l="",u="";for(;s<e.length&&/[-+ #0]/.test(e[s]);)o+=e[s++];for(;s<e.length&&/\d/.test(e[s]);)l+=e[s++];if(e[s]===".")for(s++;s<e.length&&/\d/.test(e[s]);)u+=e[s++];let m=e[s],N=t[r];switch(m){case"s":{let c=N!==void 0?String(N):"";if(u&&(c=c.substring(0,parseInt(u,10))),l){let d=parseInt(l,10);o.includes("-")?c=c.padEnd(d):c=c.padStart(d)}n+=c,r++;break}case"d":case"i":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=String(c);if(l){let h=parseInt(l,10);if(o.includes("-"))d=d.padEnd(h);else if(o.includes("0")&&!o.includes("-")){let f=c<0?"-":"";d=f+Math.abs(c).toString().padStart(h-f.length,"0")}else d=d.padStart(h)}n+=d,r++;break}case"f":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toFixed(d);if(l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"e":case"E":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c.toExponential(d);if(m==="E"&&(h=h.toUpperCase()),l){let f=parseInt(l,10);o.includes("-")?h=h.padEnd(f):h=h.padStart(f)}n+=h,r++;break}case"g":case"G":{let c=N!==void 0?Number(N):0;Number.isNaN(c)&&(c=0);let d=u?parseInt(u,10):6,h=c!==0?Math.floor(Math.log10(Math.abs(c))):0,f;if(c===0?f="0":h<-4||h>=d?(f=c.toExponential(d-1),m==="G"&&(f=f.toUpperCase())):f=c.toPrecision(d),f=f.replace(/\.?0+$/,"").replace(/\.?0+e/,"e"),l){let S=parseInt(l,10);o.includes("-")?f=f.padEnd(S):f=f.padStart(S)}n+=f,r++;break}case"x":case"X":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(16);if(m==="X"&&(d=d.toUpperCase()),l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"o":{let c=N!==void 0?Math.floor(Number(N)):0;Number.isNaN(c)&&(c=0);let d=Math.abs(c).toString(8);if(l){let h=parseInt(l,10);o.includes("0")?d=d.padStart(h,"0"):o.includes("-")?d=d.padEnd(h):d=d.padStart(h)}n+=c<0?`-${d}`:d,r++;break}case"c":{typeof N=="number"?n+=String.fromCharCode(N):n+=String(N??"").charAt(0)||"",r++;break}case"%":n+="%";break;default:n+=e.substring(a,s+1)}a=s+1}else if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];switch(s){case"n":n+=`
3
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;default:n+=s}a+=2}else n+=e[a++];return n}var Z={length:ce,substr:he,index:ue,split:pe,sub:fe,gsub:de,match:Ee,gensub:Ne,tolower:ye,toupper:me,sprintf:we,int:Re,sqrt:Se,sin:ge,cos:Ae,atan2:ve,log:ke,exp:Ie,rand:Ce,srand:be,system:H("system","shell execution not allowed in sandboxed environment"),close:H("close","file operations not allowed"),fflush:H("fflush","file operations not allowed"),systime:$("systime"),mktime:$("mktime"),strftime:$("strftime")};function R(e){return typeof e=="number"?e!==0:e!==""}function E(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function y(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}function D(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}function O(e,t){try{return new RegExp(e).test(t)}catch{return!1}}function J(e,t){return e.FS===" "?t.trim().split(/\s+/).filter(Boolean):t.split(e.fieldSep)}function I(e,t){return t===0?e.line:t<0||t>e.fields.length?"":e.fields[t-1]??""}function M(e,t,r){if(t===0)e.line=y(r),e.fields=J(e,e.line),e.NF=e.fields.length;else if(t>0){for(;e.fields.length<t;)e.fields.push("");e.fields[t-1]=y(r),e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}}function T(e,t){e.line=t,e.fields=J(e,t),e.NF=e.fields.length}function Y(e,t){if(e.FS=t,t===" ")e.fieldSep=/\s+/;else try{e.fieldSep=new RegExp(t)}catch{e.fieldSep=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}function C(e,t){switch(t){case"FS":return e.FS;case"OFS":return e.OFS;case"ORS":return e.ORS;case"NR":return e.NR;case"NF":return e.NF;case"FNR":return e.FNR;case"FILENAME":return e.FILENAME;case"RSTART":return e.RSTART;case"RLENGTH":return e.RLENGTH;case"SUBSEP":return e.SUBSEP;case"ARGC":return e.ARGC}return e.vars[t]??""}function A(e,t,r){switch(t){case"FS":Y(e,y(r));return;case"OFS":e.OFS=y(r);return;case"ORS":e.ORS=y(r);return;case"NR":e.NR=Math.floor(E(r));return;case"NF":{let n=Math.floor(E(r));if(n<e.NF)e.fields=e.fields.slice(0,n),e.line=e.fields.join(e.OFS);else if(n>e.NF){for(;e.fields.length<n;)e.fields.push("");e.line=e.fields.join(e.OFS)}e.NF=n;return}case"FNR":e.FNR=Math.floor(E(r));return;case"FILENAME":e.FILENAME=y(r);return;case"RSTART":e.RSTART=Math.floor(E(r));return;case"RLENGTH":e.RLENGTH=Math.floor(E(r));return;case"SUBSEP":e.SUBSEP=y(r);return}e.vars[t]=r}function b(e,t,r){return t==="ARGV"?e.ARGV[r]??"":e.arrays[t]?.[r]??""}function F(e,t,r,n){e.arrays[t]||(e.arrays[t]={}),e.arrays[t][r]=n}function ee(e,t,r){return t==="ARGV"?e.ARGV[r]!==void 0:e.arrays[t]?.[r]!==void 0}function te(e,t,r){e.arrays[t]&&delete e.arrays[t][r]}function re(e,t){delete e.arrays[t]}var X=null;function ie(e){X=e}async function p(e,t){switch(t.type){case"number":return t.value;case"string":return t.value;case"regex":return O(t.pattern,e.line)?1:0;case"field":return Le(e,t);case"variable":return C(e,t.name);case"array_access":return Pe(e,t);case"binary":return Oe(e,t);case"unary":return Te(e,t);case"ternary":return R(await p(e,t.condition))?p(e,t.consequent):p(e,t.alternate);case"call":return _e(e,t.name,t.args);case"assignment":return De(e,t);case"pre_increment":return Be(e,t.operand);case"pre_decrement":return Ue(e,t.operand);case"post_increment":return xe(e,t.operand);case"post_decrement":return He(e,t.operand);case"in":return $e(e,t.key,t.array);case"getline":return We(e,t.variable,t.file);case"tuple":return Ve(e,t.elements);default:return""}}async function Le(e,t){let r=Math.floor(E(await p(e,t.index)));return I(e,r)}async function Pe(e,t){let r=y(await p(e,t.key));return b(e,t.array,r)}async function Oe(e,t){let r=t.operator;if(r==="||")return R(await p(e,t.left))||R(await p(e,t.right))?1:0;if(r==="&&")return R(await p(e,t.left))&&R(await p(e,t.right))?1:0;if(r==="~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?1:0}catch{return 0}}if(r==="!~"){let l=await p(e,t.left),u=t.right.type==="regex"?t.right.pattern:y(await p(e,t.right));try{return new RegExp(u).test(y(l))?0:1}catch{return 1}}let n=await p(e,t.left),a=await p(e,t.right);if(r===" ")return y(n)+y(a);if(Me(r))return Fe(n,a,r);let s=E(n),o=E(a);return j(s,o,r)}function Me(e){return["<","<=",">",">=","==","!="].includes(e)}function Fe(e,t,r){let n=D(e),a=D(t);if(n&&a){let l=E(e),u=E(t);switch(r){case"<":return l<u?1:0;case"<=":return l<=u?1:0;case">":return l>u?1:0;case">=":return l>=u?1:0;case"==":return l===u?1:0;case"!=":return l!==u?1:0}}let s=y(e),o=y(t);switch(r){case"<":return s<o?1:0;case"<=":return s<=o?1:0;case">":return s>o?1:0;case">=":return s>=o?1:0;case"==":return s===o?1:0;case"!=":return s!==o?1:0}return 0}async function Te(e,t){let r=await p(e,t.operand);switch(t.operator){case"!":return R(r)?0:1;case"-":return-E(r);case"+":return+E(r);default:return r}}async function _e(e,t,r){let n=Z[t];if(n)return n(r,e,{evalExpr:s=>p(e,s)});let a=e.functions.get(t);return a?Ge(e,a,r):""}async function Ge(e,t,r){if(e.currentRecursionDepth++,e.currentRecursionDepth>e.maxRecursionDepth)throw e.currentRecursionDepth--,new P(`awk: recursion depth exceeded maximum (${e.maxRecursionDepth})`,"recursion",e.output);let n={};for(let s of t.params)n[s]=e.vars[s];for(let s=0;s<t.params.length;s++){let o=t.params[s],l=s<r.length?await p(e,r[s]):"";e.vars[o]=l}e.hasReturn=!1,e.returnValue=void 0,X&&await X(e,t.body.statements);let a=e.returnValue??"";for(let s of t.params)n[s]!==void 0?e.vars[s]=n[s]:delete e.vars[s];return e.hasReturn=!1,e.returnValue=void 0,e.currentRecursionDepth--,a}async function De(e,t){let r=await p(e,t.value),n=t.target,a=t.operator,s;if(a==="=")s=r;else{let o;if(n.type==="field"){let m=Math.floor(E(await p(e,n.index)));o=I(e,m)}else if(n.type==="variable")o=C(e,n.name);else{let m=y(await p(e,n.key));o=b(e,n.array,m)}let l=E(o),u=E(r);switch(a){case"+=":s=l+u;break;case"-=":s=l-u;break;case"*=":s=l*u;break;case"/=":s=u!==0?l/u:0;break;case"%=":s=u!==0?l%u:0;break;case"^=":s=l**u;break;default:s=r}}if(n.type==="field"){let o=Math.floor(E(await p(e,n.index)));M(e,o,s)}else if(n.type==="variable")A(e,n.name,s);else{let o=y(await p(e,n.key));F(e,n.array,o,s)}return s}async function Be(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n))+1,M(e,n,r)}else if(t.type==="variable")r=E(C(e,t.name))+1,A(e,t.name,r);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n))+1,F(e,t.array,n,r)}return r}async function Ue(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n))-1,M(e,n,r)}else if(t.type==="variable")r=E(C(e,t.name))-1,A(e,t.name,r);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n))-1,F(e,t.array,n,r)}return r}async function xe(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n)),M(e,n,r+1)}else if(t.type==="variable")r=E(C(e,t.name)),A(e,t.name,r+1);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n)),F(e,t.array,n,r+1)}return r}async function He(e,t){let r;if(t.type==="field"){let n=Math.floor(E(await p(e,t.index)));r=E(I(e,n)),M(e,n,r-1)}else if(t.type==="variable")r=E(C(e,t.name)),A(e,t.name,r-1);else{let n=y(await p(e,t.key));r=E(b(e,t.array,n)),F(e,t.array,n,r-1)}return r}async function $e(e,t,r){let n;if(t.type==="tuple"){let a=[];for(let s of t.elements)a.push(y(await p(e,s)));n=a.join(e.SUBSEP)}else n=y(await p(e,t));return ee(e,r,n)?1:0}async function We(e,t,r){if(r)return Xe(e,t,r);if(!e.lines||e.lineIndex===void 0)return-1;let n=e.lineIndex+1;if(n>=e.lines.length)return 0;let a=e.lines[n];return t?A(e,t,a):T(e,a),e.NR++,e.lineIndex=n,1}async function Xe(e,t,r){if(!e.fs||!e.cwd)return-1;let n=y(await p(e,r)),a=e.fs.resolvePath(e.cwd,n);e.arrays.__file_cache__||(e.arrays.__file_cache__={});let s=`__fc_${a}`,o=`__fi_${a}`,l,u;if(e.vars[s]===void 0)try{l=(await e.fs.readFile(a)).split(`
4
- `),l.length>0&&l[l.length-1]===""&&l.pop(),e.vars[s]=JSON.stringify(l),e.vars[o]=-1,u=-1}catch{return-1}else l=JSON.parse(e.vars[s]),u=e.vars[o];let m=u+1;if(m>=l.length)return 0;let N=l[m];return e.vars[o]=m,t?A(e,t,N):T(e,N),1}async function Ve(e,t){if(t.length===0)return"";for(let r=0;r<t.length-1;r++)await p(e,t[r]);return p(e,t[t.length-1])}ie(L);async function L(e,t){for(let r of t)if(await v(e,r),Ke(e))break}function Ke(e){return e.shouldExit||e.shouldNext||e.shouldNextFile||e.loopBreak||e.loopContinue||e.hasReturn}async function v(e,t){switch(t.type){case"block":await L(e,t.statements);break;case"expr_stmt":await p(e,t.expression);break;case"print":await Qe(e,t.args,t.output);break;case"printf":await je(e,t.format,t.args,t.output);break;case"if":await qe(e,t);break;case"while":await ze(e,t);break;case"do_while":await Ze(e,t);break;case"for":await Je(e,t);break;case"for_in":await Ye(e,t);break;case"break":e.loopBreak=!0;break;case"continue":e.loopContinue=!0;break;case"next":e.shouldNext=!0;break;case"nextfile":e.shouldNextFile=!0;break;case"exit":e.shouldExit=!0,e.exitCode=t.code?Math.floor(E(await p(e,t.code))):0;break;case"return":e.hasReturn=!0,e.returnValue=t.value?await p(e,t.value):"";break;case"delete":await et(e,t.target);break}}async function Qe(e,t,r){let n=[];for(let s of t)n.push(y(await p(e,s)));let a=n.join(e.OFS)+e.ORS;r?await ne(e,r.redirect,r.file,a):e.output+=a}async function je(e,t,r,n){let a=y(await p(e,t)),s=[];for(let l of r)s.push(await p(e,l));let o=W(a,s);n?await ne(e,n.redirect,n.file,o):e.output+=o}async function ne(e,t,r,n){if(!e.fs||!e.cwd){e.output+=n;return}let a=y(await p(e,r)),s=e.fs.resolvePath(e.cwd,a);t===">"?e.openedFiles.has(s)?await e.fs.appendFile(s,n):(await e.fs.writeFile(s,n),e.openedFiles.add(s)):(e.openedFiles.has(s)||e.openedFiles.add(s),await e.fs.appendFile(s,n))}async function qe(e,t){R(await p(e,t.condition))?await v(e,t.consequent):t.alternate&&await v(e,t.alternate)}async function ze(e,t){let r=0;for(;R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new P(`awk: while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function Ze(e,t){let r=0;do{if(r++,r>e.maxIterations)throw new P(`awk: do-while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}while(R(await p(e,t.condition)))}async function Je(e,t){t.init&&await p(e,t.init);let r=0;for(;!t.condition||R(await p(e,t.condition));){if(r++,r>e.maxIterations)throw new P(`awk: for loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break;t.update&&await p(e,t.update)}}async function Ye(e,t){let r=e.arrays[t.array];if(r)for(let n of Object.keys(r)){if(e.vars[t.variable]=n,e.loopContinue=!1,await v(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function et(e,t){if(t.type==="array_access"){let r=y(await p(e,t.key));te(e,t.array,r)}else t.type==="variable"&&re(e,t.name)}var _=class{ctx;program=null;rangeStates=[];constructor(t){this.ctx=t}execute(t){this.program=t,this.ctx.output="";for(let r of t.functions)this.ctx.functions.set(r.name,r);this.rangeStates=t.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let t of this.program.rules)if(t.pattern?.type==="begin"&&(await L(this.ctx,t.action.statements),this.ctx.shouldExit))break}}async executeLine(t){if(!(!this.program||this.ctx.shouldExit)){T(this.ctx,t),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let r=0;r<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext);r++){let n=this.program.rules[r];n.pattern?.type==="begin"||n.pattern?.type==="end"||await this.matchesRule(n,r)&&await L(this.ctx,n.action.statements)}}}async executeEnd(){if(!(!this.program||this.ctx.shouldExit)){for(let t of this.program.rules)if(t.pattern?.type==="end"&&(await L(this.ctx,t.action.statements),this.ctx.shouldExit))break}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(t,r){let n=t.pattern;if(!n)return!0;switch(n.type){case"begin":case"end":return!1;case"regex_pattern":return O(n.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,n.expression));case"range":{let a=await this.matchPattern(n.start),s=await this.matchPattern(n.end);return this.rangeStates[r]?(s&&(this.rangeStates[r]=!1),!0):a?(this.rangeStates[r]=!0,s&&(this.rangeStates[r]=!1),!0):!1}default:return!1}}async matchPattern(t){switch(t.type){case"regex_pattern":return O(t.pattern,this.ctx.line);case"expr_pattern":return R(await p(this.ctx,t.expression));default:return!1}}};function V(e={}){let{fieldSep:t=/\s+/,maxIterations:r=1e4,maxRecursionDepth:n=1e3,fs:a,cwd:s}=e;return{FS:" ",OFS:" ",ORS:`
5
- `,NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:{},arrays:{},ARGC:0,ARGV:{},functions:new Map,fieldSep:t,maxIterations:r,maxRecursionDepth:n,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,output:"",openedFiles:new Set,fs:a,cwd:s}}var i;(function(e){e.NUMBER="NUMBER",e.STRING="STRING",e.REGEX="REGEX",e.IDENT="IDENT",e.BEGIN="BEGIN",e.END="END",e.IF="IF",e.ELSE="ELSE",e.WHILE="WHILE",e.DO="DO",e.FOR="FOR",e.IN="IN",e.BREAK="BREAK",e.CONTINUE="CONTINUE",e.NEXT="NEXT",e.NEXTFILE="NEXTFILE",e.EXIT="EXIT",e.RETURN="RETURN",e.DELETE="DELETE",e.FUNCTION="FUNCTION",e.PRINT="PRINT",e.PRINTF="PRINTF",e.GETLINE="GETLINE",e.PLUS="PLUS",e.MINUS="MINUS",e.STAR="STAR",e.SLASH="SLASH",e.PERCENT="PERCENT",e.CARET="CARET",e.EQ="EQ",e.NE="NE",e.LT="LT",e.GT="GT",e.LE="LE",e.GE="GE",e.MATCH="MATCH",e.NOT_MATCH="NOT_MATCH",e.AND="AND",e.OR="OR",e.NOT="NOT",e.ASSIGN="ASSIGN",e.PLUS_ASSIGN="PLUS_ASSIGN",e.MINUS_ASSIGN="MINUS_ASSIGN",e.STAR_ASSIGN="STAR_ASSIGN",e.SLASH_ASSIGN="SLASH_ASSIGN",e.PERCENT_ASSIGN="PERCENT_ASSIGN",e.CARET_ASSIGN="CARET_ASSIGN",e.INCREMENT="INCREMENT",e.DECREMENT="DECREMENT",e.QUESTION="QUESTION",e.COLON="COLON",e.COMMA="COMMA",e.SEMICOLON="SEMICOLON",e.NEWLINE="NEWLINE",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.LBRACE="LBRACE",e.RBRACE="RBRACE",e.LBRACKET="LBRACKET",e.RBRACKET="RBRACKET",e.DOLLAR="DOLLAR",e.APPEND="APPEND",e.PIPE="PIPE",e.EOF="EOF"})(i||(i={}));var tt={BEGIN:i.BEGIN,END:i.END,if:i.IF,else:i.ELSE,while:i.WHILE,do:i.DO,for:i.FOR,in:i.IN,break:i.BREAK,continue:i.CONTINUE,next:i.NEXT,nextfile:i.NEXTFILE,exit:i.EXIT,return:i.RETURN,delete:i.DELETE,function:i.FUNCTION,print:i.PRINT,printf:i.PRINTF,getline:i.GETLINE};function rt(e){return e.replace(/\[\[:space:\]\]/g,"[ \\t\\n\\r\\f\\v]").replace(/\[\[:blank:\]\]/g,"[ \\t]").replace(/\[\[:alpha:\]\]/g,"[a-zA-Z]").replace(/\[\[:digit:\]\]/g,"[0-9]").replace(/\[\[:alnum:\]\]/g,"[a-zA-Z0-9]").replace(/\[\[:upper:\]\]/g,"[A-Z]").replace(/\[\[:lower:\]\]/g,"[a-z]").replace(/\[\[:punct:\]\]/g,"[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~]").replace(/\[\[:xdigit:\]\]/g,"[0-9A-Fa-f]").replace(/\[\[:graph:\]\]/g,"[!-~]").replace(/\[\[:print:\]\]/g,"[ -~]").replace(/\[\[:cntrl:\]\]/g,"[\\x00-\\x1f\\x7f]")}var B=class{input;pos=0;line=1;column=1;lastTokenType=null;constructor(t){this.input=t}tokenize(){let t=[];for(;this.pos<this.input.length;){let r=this.nextToken();r&&(t.push(r),this.lastTokenType=r.type)}return t.push(this.makeToken(i.EOF,"")),t}makeToken(t,r){return{type:t,value:r,line:this.line,column:this.column}}peek(t=0){return this.input[this.pos+t]||""}advance(){let t=this.input[this.pos++]||"";return t===`
6
- `?(this.line++,this.column=1):this.column++,t}skipWhitespace(){for(;this.pos<this.input.length;){let t=this.peek();if(t===" "||t===" "||t==="\r")this.advance();else if(t==="\\")if(this.peek(1)===`
7
- `)this.advance(),this.advance();else break;else if(t==="#")for(;this.pos<this.input.length&&this.peek()!==`
8
- `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let t=this.line,r=this.column,n=this.peek();return n===`
9
- `?(this.advance(),{type:i.NEWLINE,value:`
10
- `,line:t,column:r}):n==='"'?this.readString():n==="/"&&this.canBeRegex()?this.readRegex():this.isDigit(n)||n==="."&&this.isDigit(this.peek(1))?this.readNumber():this.isAlpha(n)||n==="_"?this.readIdentifier():this.readOperator()}canBeRegex(){return new Set([null,i.NEWLINE,i.SEMICOLON,i.LBRACE,i.RBRACE,i.LPAREN,i.LBRACKET,i.COMMA,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.AND,i.OR,i.NOT,i.MATCH,i.NOT_MATCH,i.QUESTION,i.COLON,i.LT,i.GT,i.LE,i.GE,i.EQ,i.NE,i.PLUS,i.MINUS,i.STAR,i.PERCENT,i.CARET,i.PRINT,i.PRINTF,i.IF,i.WHILE,i.DO,i.FOR,i.RETURN]).has(this.lastTokenType)}readString(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let a=this.advance();switch(a){case"n":n+=`
11
- `;break;case"t":n+=" ";break;case"r":n+="\r";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;default:n+=a}}else n+=this.advance();return this.peek()==='"'&&this.advance(),{type:i.STRING,value:n,line:t,column:r}}readRegex(){let t=this.line,r=this.column;this.advance();let n="";for(;this.pos<this.input.length&&this.peek()!=="/";)if(this.peek()==="\\")n+=this.advance(),this.pos<this.input.length&&(n+=this.advance());else{if(this.peek()===`
12
- `)break;n+=this.advance()}return this.peek()==="/"&&this.advance(),n=rt(n),{type:i.REGEX,value:n,line:t,column:r}}readNumber(){let t=this.line,r=this.column,n="";for(;this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="."&&this.isDigit(this.peek(1)))for(n+=this.advance();this.isDigit(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());this.isDigit(this.peek());)n+=this.advance();return{type:i.NUMBER,value:parseFloat(n),line:t,column:r}}readIdentifier(){let t=this.line,r=this.column,n="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)n+=this.advance();let a=tt[n];return a?{type:a,value:n,line:t,column:r}:{type:i.IDENT,value:n,line:t,column:r}}readOperator(){let t=this.line,r=this.column,n=this.advance(),a=this.peek();switch(n){case"+":return a==="+"?(this.advance(),{type:i.INCREMENT,value:"++",line:t,column:r}):a==="="?(this.advance(),{type:i.PLUS_ASSIGN,value:"+=",line:t,column:r}):{type:i.PLUS,value:"+",line:t,column:r};case"-":return a==="-"?(this.advance(),{type:i.DECREMENT,value:"--",line:t,column:r}):a==="="?(this.advance(),{type:i.MINUS_ASSIGN,value:"-=",line:t,column:r}):{type:i.MINUS,value:"-",line:t,column:r};case"*":return a==="*"?(this.advance(),{type:i.CARET,value:"**",line:t,column:r}):a==="="?(this.advance(),{type:i.STAR_ASSIGN,value:"*=",line:t,column:r}):{type:i.STAR,value:"*",line:t,column:r};case"/":return a==="="?(this.advance(),{type:i.SLASH_ASSIGN,value:"/=",line:t,column:r}):{type:i.SLASH,value:"/",line:t,column:r};case"%":return a==="="?(this.advance(),{type:i.PERCENT_ASSIGN,value:"%=",line:t,column:r}):{type:i.PERCENT,value:"%",line:t,column:r};case"^":return a==="="?(this.advance(),{type:i.CARET_ASSIGN,value:"^=",line:t,column:r}):{type:i.CARET,value:"^",line:t,column:r};case"=":return a==="="?(this.advance(),{type:i.EQ,value:"==",line:t,column:r}):{type:i.ASSIGN,value:"=",line:t,column:r};case"!":return a==="="?(this.advance(),{type:i.NE,value:"!=",line:t,column:r}):a==="~"?(this.advance(),{type:i.NOT_MATCH,value:"!~",line:t,column:r}):{type:i.NOT,value:"!",line:t,column:r};case"<":return a==="="?(this.advance(),{type:i.LE,value:"<=",line:t,column:r}):{type:i.LT,value:"<",line:t,column:r};case">":return a==="="?(this.advance(),{type:i.GE,value:">=",line:t,column:r}):a===">"?(this.advance(),{type:i.APPEND,value:">>",line:t,column:r}):{type:i.GT,value:">",line:t,column:r};case"&":return a==="&"?(this.advance(),{type:i.AND,value:"&&",line:t,column:r}):{type:i.IDENT,value:"&",line:t,column:r};case"|":return a==="|"?(this.advance(),{type:i.OR,value:"||",line:t,column:r}):{type:i.PIPE,value:"|",line:t,column:r};case"~":return{type:i.MATCH,value:"~",line:t,column:r};case"?":return{type:i.QUESTION,value:"?",line:t,column:r};case":":return{type:i.COLON,value:":",line:t,column:r};case",":return{type:i.COMMA,value:",",line:t,column:r};case";":return{type:i.SEMICOLON,value:";",line:t,column:r};case"(":return{type:i.LPAREN,value:"(",line:t,column:r};case")":return{type:i.RPAREN,value:")",line:t,column:r};case"{":return{type:i.LBRACE,value:"{",line:t,column:r};case"}":return{type:i.RBRACE,value:"}",line:t,column:r};case"[":return{type:i.LBRACKET,value:"[",line:t,column:r};case"]":return{type:i.RBRACKET,value:"]",line:t,column:r};case"$":return{type:i.DOLLAR,value:"$",line:t,column:r};default:return{type:i.IDENT,value:n,line:t,column:r}}}isDigit(t){return t>="0"&&t<="9"}isAlpha(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isAlphaNumeric(t){return this.isDigit(t)||this.isAlpha(t)}};var U=class{tokens=[];pos=0;parse(t){let r=new B(t);return this.tokens=r.tokenize(),this.pos=0,this.parseProgram()}current(){return this.tokens[this.pos]||{type:i.EOF,value:"",line:0,column:0}}advance(){let t=this.current();return this.pos<this.tokens.length&&this.pos++,t}match(...t){return t.includes(this.current().type)}check(t){return this.current().type===t}expect(t,r){if(!this.check(t)){let n=this.current();throw new Error(r||`Expected ${t}, got ${n.type} at line ${n.line}:${n.column}`)}return this.advance()}skipNewlines(){for(;this.check(i.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(i.NEWLINE)||this.check(i.SEMICOLON);)this.advance()}parseProgram(){let t=[],r=[];for(this.skipNewlines();!this.check(i.EOF)&&(this.skipNewlines(),!this.check(i.EOF));)this.check(i.FUNCTION)?t.push(this.parseFunction()):r.push(this.parseRule()),this.skipTerminators();return{functions:t,rules:r}}parseFunction(){this.expect(i.FUNCTION);let t=this.expect(i.IDENT).value;this.expect(i.LPAREN);let r=[];if(!this.check(i.RPAREN))for(r.push(this.expect(i.IDENT).value);this.check(i.COMMA);)this.advance(),r.push(this.expect(i.IDENT).value);this.expect(i.RPAREN),this.skipNewlines();let n=this.parseBlock();return{name:t,params:r,body:n}}parseRule(){let t;if(this.check(i.BEGIN))this.advance(),t={type:"begin"};else if(this.check(i.END))this.advance(),t={type:"end"};else if(this.check(i.LBRACE))t=void 0;else if(this.check(i.REGEX)){let a={type:"regex_pattern",pattern:this.advance().value};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}else{let a={type:"expr_pattern",expression:this.parseExpression()};if(this.check(i.COMMA)){this.advance();let s;this.check(i.REGEX)?s={type:"regex_pattern",pattern:this.advance().value}:s={type:"expr_pattern",expression:this.parseExpression()},t={type:"range",start:a,end:s}}else t=a}this.skipNewlines();let r;return this.check(i.LBRACE)?r=this.parseBlock():r={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:t,action:r}}parseBlock(){this.expect(i.LBRACE),this.skipNewlines();let t=[];for(;!this.check(i.RBRACE)&&!this.check(i.EOF);)t.push(this.parseStatement()),this.skipTerminators();return this.expect(i.RBRACE),{type:"block",statements:t}}parseStatement(){if(this.check(i.LBRACE))return this.parseBlock();if(this.check(i.IF))return this.parseIf();if(this.check(i.WHILE))return this.parseWhile();if(this.check(i.DO))return this.parseDoWhile();if(this.check(i.FOR))return this.parseFor();if(this.check(i.BREAK))return this.advance(),{type:"break"};if(this.check(i.CONTINUE))return this.advance(),{type:"continue"};if(this.check(i.NEXT))return this.advance(),{type:"next"};if(this.check(i.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(i.EXIT)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"exit",code:r}}if(this.check(i.RETURN)){this.advance();let r;return!this.check(i.NEWLINE)&&!this.check(i.SEMICOLON)&&!this.check(i.RBRACE)&&!this.check(i.EOF)&&(r=this.parseExpression()),{type:"return",value:r}}if(this.check(i.DELETE)){this.advance();let r=this.parsePrimary();if(r.type!=="array_access"&&r.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:r}}return this.check(i.PRINT)?this.parsePrint():this.check(i.PRINTF)?this.parsePrintf():{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(i.IF),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();this.skipTerminators();let n;return this.check(i.ELSE)&&(this.advance(),this.skipNewlines(),n=this.parseStatement()),{type:"if",condition:t,consequent:r,alternate:n}}parseWhile(){this.expect(i.WHILE),this.expect(i.LPAREN);let t=this.parseExpression();this.expect(i.RPAREN),this.skipNewlines();let r=this.parseStatement();return{type:"while",condition:t,body:r}}parseDoWhile(){this.expect(i.DO),this.skipNewlines();let t=this.parseStatement();this.skipNewlines(),this.expect(i.WHILE),this.expect(i.LPAREN);let r=this.parseExpression();return this.expect(i.RPAREN),{type:"do_while",body:t,condition:r}}parseFor(){if(this.expect(i.FOR),this.expect(i.LPAREN),this.check(i.IDENT)){let s=this.advance();if(this.check(i.IN)){this.advance();let o=this.expect(i.IDENT).value;this.expect(i.RPAREN),this.skipNewlines();let l=this.parseStatement();return{type:"for_in",variable:s.value,array:o,body:l}}this.pos--}let t;this.check(i.SEMICOLON)||(t=this.parseExpression()),this.expect(i.SEMICOLON);let r;this.check(i.SEMICOLON)||(r=this.parseExpression()),this.expect(i.SEMICOLON);let n;this.check(i.RPAREN)||(n=this.parseExpression()),this.expect(i.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for",init:t,condition:r,update:n,body:a}}parsePrint(){this.expect(i.PRINT);let t=[];if(this.check(i.NEWLINE)||this.check(i.SEMICOLON)||this.check(i.RBRACE)||this.check(i.PIPE)||this.check(i.GT)||this.check(i.APPEND))t.push({type:"field",index:{type:"number",value:0}});else for(t.push(this.parsePrintArg());this.check(i.COMMA);)this.advance(),t.push(this.parsePrintArg());let r;return this.check(i.GT)?(this.advance(),r={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),r={redirect:">>",file:this.parsePrimary()}),{type:"print",args:t,output:r}}parsePrintArg(){return this.lookAheadForTernary()?this.parseTernary():this.parsePrintOr()}lookAheadForTernary(){let t=0,r=this.pos;for(;r<this.tokens.length;){let n=this.tokens[r];if(n.type===i.LPAREN&&t++,n.type===i.RPAREN&&t--,n.type===i.QUESTION&&t===0)return!0;if(n.type===i.NEWLINE||n.type===i.SEMICOLON||n.type===i.RBRACE||n.type===i.COMMA||n.type===i.PIPE||(n.type===i.GT||n.type===i.APPEND)&&t===0)return!1;r++}return!1}parsePrintOr(){let t=this.parsePrintAnd();for(;this.check(i.OR);){this.advance();let r=this.parsePrintAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parsePrintAnd(){let t=this.parsePrintIn();for(;this.check(i.AND);){this.advance();let r=this.parsePrintIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parsePrintIn(){let t=this.parsePrintMatch();if(this.check(i.IN)){this.advance();let r=String(this.expect(i.IDENT).value);return{type:"in",key:t,array:r}}return t}parsePrintMatch(){let t=this.parsePrintComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parsePrintComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parsePrintComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parsePrintf(){this.expect(i.PRINTF);let t=this.parsePrintArg(),r=[];for(;this.check(i.COMMA);)this.advance(),r.push(this.parsePrintArg());let n;return this.check(i.GT)?(this.advance(),n={redirect:">",file:this.parsePrimary()}):this.check(i.APPEND)&&(this.advance(),n={redirect:">>",file:this.parsePrimary()}),{type:"printf",format:t,args:r,output:n}}parseExpression(){return this.parseAssignment()}parseAssignment(){let t=this.parseTernary();if(this.match(i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN)){let r=this.advance(),n=this.parseAssignment();if(t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[r.value],target:t,value:n}}return t}parseTernary(){let t=this.parseOr();if(this.check(i.QUESTION)){this.advance();let r=this.parseExpression();this.expect(i.COLON);let n=this.parseExpression();t={type:"ternary",condition:t,consequent:r,alternate:n}}return t}parseOr(){let t=this.parseAnd();for(;this.check(i.OR);){this.advance();let r=this.parseAnd();t={type:"binary",operator:"||",left:t,right:r}}return t}parseAnd(){let t=this.parseIn();for(;this.check(i.AND);){this.advance();let r=this.parseIn();t={type:"binary",operator:"&&",left:t,right:r}}return t}parseIn(){let t=this.parseMatch();if(this.check(i.IN)){this.advance();let r=this.expect(i.IDENT).value;return{type:"in",key:t,array:r}}return t}parseMatch(){let t=this.parseComparison();for(;this.match(i.MATCH,i.NOT_MATCH);){let r=this.advance().type===i.MATCH?"~":"!~",n=this.parseComparison();t={type:"binary",operator:r,left:t,right:n}}return t}parseComparison(){let t=this.parseConcatenation();for(;this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE);){let r=this.advance(),n=this.parseConcatenation();t={type:"binary",operator:{"<":"<","<=":"<=",">":">",">=":">=","==":"==","!=":"!="}[r.value],left:t,right:n}}return t}parseConcatenation(){let t=this.parseAddSub();for(;this.canStartExpression()&&!this.isComparisonOrHigherOp();){let r=this.parseAddSub();t={type:"binary",operator:" ",left:t,right:r}}return t}canStartExpression(){return this.match(i.NUMBER,i.STRING,i.IDENT,i.DOLLAR,i.LPAREN,i.NOT,i.MINUS,i.PLUS,i.INCREMENT,i.DECREMENT)}isComparisonOrHigherOp(){return this.match(i.LT,i.LE,i.GT,i.GE,i.EQ,i.NE,i.AND,i.OR,i.QUESTION,i.MATCH,i.NOT_MATCH,i.ASSIGN,i.PLUS_ASSIGN,i.MINUS_ASSIGN,i.STAR_ASSIGN,i.SLASH_ASSIGN,i.PERCENT_ASSIGN,i.CARET_ASSIGN,i.COMMA,i.SEMICOLON,i.NEWLINE,i.RBRACE,i.RPAREN,i.RBRACKET,i.COLON,i.PIPE,i.APPEND,i.IN)}parseAddSub(){let t=this.parseMulDiv();for(;this.match(i.PLUS,i.MINUS);){let r=this.advance().value,n=this.parseMulDiv();t={type:"binary",operator:r,left:t,right:n}}return t}parseMulDiv(){let t=this.parseUnary();for(;this.match(i.STAR,i.SLASH,i.PERCENT);){let r=this.advance(),n=this.parseUnary();t={type:"binary",operator:{"*":"*","/":"/","%":"%"}[r.value],left:t,right:n}}return t}parseUnary(){if(this.check(i.INCREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"+",operand:{type:"unary",operator:"+",operand:t}}:{type:"pre_increment",operand:t}}if(this.check(i.DECREMENT)){this.advance();let t=this.parseUnary();return t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access"?{type:"unary",operator:"-",operand:{type:"unary",operator:"-",operand:t}}:{type:"pre_decrement",operand:t}}if(this.match(i.NOT,i.MINUS,i.PLUS)){let t=this.advance().value,r=this.parseUnary();return{type:"unary",operator:t,operand:r}}return this.parsePower()}parsePower(){let t=this.parsePostfix();if(this.check(i.CARET)){this.advance();let r=this.parsePower();t={type:"binary",operator:"^",left:t,right:r}}return t}parsePostfix(){let t=this.parsePrimary();if(this.check(i.INCREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid increment operand");return{type:"post_increment",operand:t}}if(this.check(i.DECREMENT)){if(this.advance(),t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid decrement operand");return{type:"post_decrement",operand:t}}return t}parsePrimary(){if(this.check(i.NUMBER))return{type:"number",value:this.advance().value};if(this.check(i.STRING))return{type:"string",value:this.advance().value};if(this.check(i.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(i.DOLLAR))return this.advance(),{type:"field",index:this.parsePrimary()};if(this.check(i.LPAREN)){this.advance();let t=this.parseExpression();if(this.check(i.COMMA)){let r=[t];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"tuple",elements:r}}return this.expect(i.RPAREN),t}if(this.check(i.GETLINE)){this.advance();let t,r;return this.check(i.IDENT)&&(t=this.advance().value),this.check(i.LT)&&(this.advance(),r=this.parsePrimary()),{type:"getline",variable:t,file:r}}if(this.check(i.IDENT)){let t=this.advance().value;if(this.check(i.LPAREN)){this.advance();let r=[];if(!this.check(i.RPAREN))for(r.push(this.parseExpression());this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());return this.expect(i.RPAREN),{type:"call",name:t,args:r}}if(this.check(i.LBRACKET)){this.advance();let r=[this.parseExpression()];for(;this.check(i.COMMA);)this.advance(),r.push(this.parseExpression());this.expect(i.RBRACKET);let n;if(r.length===1)n=r[0];else{n=r[0];for(let a=1;a<r.length;a++)n={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:n,right:{type:"variable",name:"SUBSEP"}},right:r[a]}}return{type:"array_access",array:t,key:n}}return{type:"variable",name:t}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var it={name:"awk",summary:"pattern scanning and text processing language",usage:"awk [OPTIONS] 'PROGRAM' [FILE...]",options:["-F FS use FS as field separator","-v VAR=VAL assign VAL to variable VAR"," --help display this help and exit"]},Wt={name:"awk",async execute(e,t){if(Q(e))return K(it);let r=/\s+/,n=" ",a={},s=0;for(let h=0;h<e.length;h++){let f=e[h];if(f==="-F"&&h+1<e.length)n=se(e[++h]),r=ae(n),s=h+1;else if(f.startsWith("-F"))n=se(f.slice(2)),r=ae(n),s=h+1;else if(f==="-v"&&h+1<e.length){let S=e[++h],G=S.indexOf("=");if(G>0){let k=S.slice(0,G),oe=S.slice(G+1);a[k]=oe}s=h+1}else{if(f.startsWith("--"))return x("awk",f);if(f.startsWith("-")&&f.length>1){let S=f[1];if(S!=="F"&&S!=="v")return x("awk",`-${S}`);s=h+1}else if(!f.startsWith("-")){s=h;break}}}if(s>=e.length)return{stdout:"",stderr:`awk: missing program
13
- `,exitCode:1};let o=e[s],l=e.slice(s+1),u=new U,m;try{m=u.parse(o)}catch(h){return{stdout:"",stderr:`awk: ${h instanceof Error?h.message:String(h)}
14
- `,exitCode:1}}let N={readFile:t.fs.readFile.bind(t.fs),writeFile:t.fs.writeFile.bind(t.fs),appendFile:async(h,f)=>{try{let S=await t.fs.readFile(h);await t.fs.writeFile(h,S+f)}catch{await t.fs.writeFile(h,f)}},resolvePath:t.fs.resolvePath.bind(t.fs)},c=V({fieldSep:r,maxIterations:t.limits?.maxAwkIterations,fs:N,cwd:t.cwd});c.FS=n,c.vars={...a},c.ARGC=l.length+1,c.ARGV={0:"awk"};for(let h=0;h<l.length;h++)c.ARGV[String(h+1)]=l[h];let d=new _(c);d.execute(m);try{if(await d.executeBegin(),c.shouldExit)return{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()};let h=[];if(l.length>0)for(let f of l)try{let S=t.fs.resolvePath(t.cwd,f),k=(await t.fs.readFile(S)).split(`
15
- `);k.length>0&&k[k.length-1]===""&&k.pop(),h.push({filename:f,lines:k})}catch{return{stdout:"",stderr:`awk: ${f}: No such file or directory
16
- `,exitCode:1}}else{let f=t.stdin.split(`
17
- `);f.length>0&&f[f.length-1]===""&&f.pop(),h.push({filename:"",lines:f})}for(let f of h){for(c.FILENAME=f.filename,c.FNR=0,c.lines=f.lines,c.lineIndex=-1,c.shouldNextFile=!1;c.lineIndex<f.lines.length-1&&(c.lineIndex++,await d.executeLine(f.lines[c.lineIndex]),!(c.shouldExit||c.shouldNextFile)););if(c.shouldExit)break}return c.shouldExit||await d.executeEnd(),{stdout:d.getOutput(),stderr:"",exitCode:d.getExitCode()}}catch(h){let f=h instanceof Error?h.message:String(h);return{stdout:d.getOutput(),stderr:`awk: ${f}
18
- `,exitCode:2}}}};function se(e){return e.replace(/\\t/g," ").replace(/\\n/g,`
19
- `).replace(/\\r/g,"\r").replace(/\\\\/g,"\\")}function ae(e){if(e===" ")return/\s+/;if(/[[\](){}.*+?^$|\\]/.test(e))try{return new RegExp(e)}catch{return new RegExp(le(e))}return new RegExp(le(e))}function le(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{Wt as awkCommand2};
@@ -1,4 +0,0 @@
1
- import{b as p}from"./chunk-3YNHMZ5M.js";import{a as l}from"./chunk-ZVV5VXYZ.js";import{a as c,b as i}from"./chunk-74CEPOFO.js";import"./chunk-2RUN43TJ.js";var b={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},g={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}},x={name:"base64",async execute(d,u){if(i(d))return c(b);let e=l("base64",d,g);if(!e.ok)return e.error;let f=e.result.flags.decode,s=e.result.flags.wrap,m=e.result.positional,a=await p(u,m,{cmdName:"base64"});if(!a.ok)return a.error;let n=a.content;try{if(f){let r=n.replace(/\s/g,"");return{stdout:Buffer.from(r,"base64").toString("utf-8"),stderr:"",exitCode:0}}let t=Buffer.from(n).toString("base64");if(s>0){let r=[];for(let o=0;o<t.length;o+=s)r.push(t.slice(o,o+s));t=r.join(`
2
- `)+(t.length>0?`
3
- `:"")}return{stdout:t,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`base64: invalid input
4
- `,exitCode:1}}}};export{x as base64Command};
@@ -1,4 +0,0 @@
1
- import{b as p}from"./chunk-3YNHMZ5M.js";import{a as l}from"./chunk-ZVV5VXYZ.js";import{a as c,b as i}from"./chunk-74CEPOFO.js";var b={name:"base64",summary:"base64 encode/decode data and print to standard output",usage:"base64 [OPTION]... [FILE]",options:["-d, --decode decode data","-w, --wrap=COLS wrap encoded lines after COLS character (default 76, 0 to disable)"," --help display this help and exit"]},g={decode:{short:"d",long:"decode",type:"boolean"},wrap:{short:"w",long:"wrap",type:"number",default:76}},x={name:"base64",async execute(d,u){if(i(d))return c(b);let e=l("base64",d,g);if(!e.ok)return e.error;let f=e.result.flags.decode,s=e.result.flags.wrap,m=e.result.positional,a=await p(u,m,{cmdName:"base64"});if(!a.ok)return a.error;let n=a.content;try{if(f){let r=n.replace(/\s/g,"");return{stdout:Buffer.from(r,"base64").toString("utf-8"),stderr:"",exitCode:0}}let t=Buffer.from(n).toString("base64");if(s>0){let r=[];for(let o=0;o<t.length;o+=s)r.push(t.slice(o,o+s));t=r.join(`
2
- `)+(t.length>0?`
3
- `:"")}return{stdout:t,stderr:"",exitCode:0}}catch{return{stdout:"",stderr:`base64: invalid input
4
- `,exitCode:1}}}};export{x as base64Command};
@@ -1,5 +0,0 @@
1
- import{a as r,b as m}from"./chunk-74CEPOFO.js";var p={name:"basename",summary:"strip directory and suffix from filenames",usage:`basename NAME [SUFFIX]
2
- basename OPTION... NAME...`,options:["-a, --multiple support multiple arguments","-s, --suffix=SUFFIX remove a trailing SUFFIX"," --help display this help and exit"]},c={name:"basename",async execute(n,u){if(m(n))return r(p);let i=!1,s="",a=[];for(let t=0;t<n.length;t++){let e=n[t];e==="-a"||e==="--multiple"?i=!0:e==="-s"&&t+1<n.length?(s=n[++t],i=!0):e.startsWith("--suffix=")?(s=e.slice(9),i=!0):e.startsWith("-")||a.push(e)}if(a.length===0)return{stdout:"",stderr:`basename: missing operand
3
- `,exitCode:1};!i&&a.length>=2&&(s=a.pop()??"");let o=[];for(let t of a){let e=t.replace(/\/+$/,""),l=e.split("/").pop()||e;s&&l.endsWith(s)&&(l=l.slice(0,-s.length)),o.push(l)}return{stdout:`${o.join(`
4
- `)}
5
- `,stderr:"",exitCode:0}}};export{c as basenameCommand};
@@ -1,6 +0,0 @@
1
- import{a as l,b as d}from"./chunk-74CEPOFO.js";var m={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},b={name:"bash",async execute(t,e){if(d(t))return l(m);if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"bash",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],c=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,c,e)}catch{return{stdout:"",stderr:`bash: ${n}: No such file or directory
2
- `,exitCode:127}}}},w={name:"sh",async execute(t,e){if(d(t))return l({...m,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"sh",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],c=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,c,e)}catch{return{stdout:"",stderr:`sh: ${n}: No such file or directory
3
- `,exitCode:127}}}};async function h(t,e,n,c){if(!c.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
4
- `,exitCode:1};let o={0:e,"#":String(n.length),"@":n.join(" "),"*":n.join(" ")};n.forEach((r,a)=>{o[String(a+1)]=r});let s=t;if(s.startsWith("#!")){let r=s.indexOf(`
5
- `);r!==-1&&(s=s.slice(r+1))}let i=s.split(`
6
- `),u=[];for(let r of i){let a=r.trim();a&&!a.startsWith("#")&&u.push(a)}let f=u.join("; ");return await c.exec(f,{env:o,cwd:c.cwd})}export{b as bashCommand,w as shCommand};
@@ -1,6 +0,0 @@
1
- import{a as l,b as u}from"./chunk-74CEPOFO.js";var m={name:"bash",summary:"execute shell commands or scripts",usage:"bash [OPTIONS] [SCRIPT_FILE] [ARGUMENTS...]",options:["-c COMMAND execute COMMAND string"," --help display this help and exit"],notes:["Without -c, reads and executes commands from SCRIPT_FILE.","Arguments are passed as $1, $2, etc. to the script.",'$0 is set to the script name (or "bash" with -c).']},b={name:"bash",async execute(t,e){if(u(t))return l(m);if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"bash",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],r=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,r,e)}catch{return{stdout:"",stderr:`bash: ${n}: No such file or directory
2
- `,exitCode:127}}}},x={name:"sh",async execute(t,e){if(u(t))return l({...m,name:"sh",summary:"execute shell commands or scripts (POSIX shell)"});if(t[0]==="-c"&&t.length>=2){let o=t[1],s=t[2]||"sh",i=t.slice(3);return h(o,s,i,e)}if(t.length===0)return{stdout:"",stderr:"",exitCode:0};let n=t[0],r=t.slice(1);try{let o=e.fs.resolvePath(e.cwd,n),s=await e.fs.readFile(o);return h(s,n,r,e)}catch{return{stdout:"",stderr:`sh: ${n}: No such file or directory
3
- `,exitCode:127}}}};async function h(t,e,n,r){if(!r.exec)return{stdout:"",stderr:`bash: internal error: exec function not available
4
- `,exitCode:1};let o={0:e,"#":String(n.length),"@":n.join(" "),"*":n.join(" ")};n.forEach((c,a)=>{o[String(a+1)]=c});let s=t;if(s.startsWith("#!")){let c=s.indexOf(`
5
- `);c!==-1&&(s=s.slice(c+1))}let i=s.split(`
6
- `),d=[];for(let c of i){let a=c.trim();a&&!a.startsWith("#")&&d.push(a)}let f=d.join("; ");return await r.exec(f,{env:o})}export{b as bashCommand,x as shCommand};
@@ -1,5 +0,0 @@
1
- import{a as p}from"./chunk-3YNHMZ5M.js";import{a as d}from"./chunk-ZVV5VXYZ.js";import{a as c,b as m}from"./chunk-74CEPOFO.js";var f={name:"cat",summary:"concatenate files and print on the standard output",usage:"cat [OPTION]... [FILE]...",options:["-n, --number number all output lines"," --help display this help and exit"]},b={number:{short:"n",long:"number",type:"boolean"}},w={name:"cat",async execute(t,r){if(m(t))return c(f);let e=d("cat",t,b);if(!e.ok)return e.error;let s=e.result.flags.number,o=e.result.positional,a=await p(r,o,{cmdName:"cat",allowStdinMarker:!0,stopOnError:!1}),n="",i=1;for(let{content:l}of a.files)if(s){let u=h(l,i);n+=u.content,i=u.nextLineNumber}else n+=l;return{stdout:n,stderr:a.stderr,exitCode:a.exitCode}}};function h(t,r){let e=t.split(`
2
- `),s=t.endsWith(`
3
- `),o=s?e.slice(0,-1):e;return{content:o.map((n,i)=>`${String(r+i).padStart(6," ")} ${n}`).join(`
4
- `)+(s?`
5
- `:""),nextLineNumber:r+o.length}}export{w as catCommand};
@@ -1,8 +0,0 @@
1
- import{a as h,b as m}from"./chunk-74CEPOFO.js";var v={name:"chmod",summary:"change file mode bits",usage:"chmod [OPTIONS] MODE FILE...",options:["-R change files recursively","-v output a diagnostic for every file processed"," --help display this help and exit"]},C={name:"chmod",async execute(o,s){if(m(o))return h(v);if(o.length<2)return{stdout:"",stderr:`chmod: missing operand
2
- `,exitCode:1};let r=!1,n=!1,e=0;for(;e<o.length&&o[e].startsWith("-");){let t=o[e];if(t==="-R"||t==="--recursive")r=!0,e++;else if(t==="-v"||t==="--verbose")n=!0,e++;else if(t==="--"){e++;break}else{if(/^[+-]?[rwxugo]+/.test(t)||/^\d+$/.test(t))break;if(/^-[Rv]+$/.test(t)){t.includes("R")&&(r=!0),t.includes("v")&&(n=!0),e++;continue}return{stdout:"",stderr:`chmod: invalid option -- '${t.slice(1)}'
3
- `,exitCode:1}}}if(o.length-e<2)return{stdout:"",stderr:`chmod: missing operand
4
- `,exitCode:1};let a=o[e],f=o.slice(e+1),i;try{i=$(a)}catch{return{stdout:"",stderr:`chmod: invalid mode: '${a}'
5
- `,exitCode:1}}let c="",d="",l=!1;for(let t of f){let u=s.fs.resolvePath(s.cwd,t);try{if(await s.fs.chmod(u,i),n&&(c+=`mode of '${t}' changed to ${i.toString(8).padStart(4,"0")}
6
- `),r&&(await s.fs.stat(u)).isDirectory){let w=await p(s,u,i,n);c+=w}}catch{d+=`chmod: cannot access '${t}': No such file or directory
7
- `,l=!0}}return{stdout:c,stderr:d,exitCode:l?1:0}}};async function p(o,s,r,n){let e="",a=await o.fs.readdir(s);for(let f of a){let i=s==="/"?`/${f}`:`${s}/${f}`;await o.fs.chmod(i,r),n&&(e+=`mode of '${i}' changed to ${r.toString(8).padStart(4,"0")}
8
- `),(await o.fs.stat(i)).isDirectory&&(e+=await p(o,i,r,n))}return e}function $(o){if(/^[0-7]+$/.test(o))return parseInt(o,8);let s=420,r=o.split(",");for(let n of r){let e=n.match(/^([ugoa]*)([+\-=])([rwxXst]*)$/);if(!e)throw new Error(`Invalid mode: ${o}`);let a=e[1]||"a",f=e[2],i=e[3];(a==="a"||a==="")&&(a="ugo");let c=0;i.includes("r")&&(c|=4),i.includes("w")&&(c|=2),(i.includes("x")||i.includes("X"))&&(c|=1);for(let d of a){let l=0;d==="u"?l=6:d==="g"?l=3:d==="o"&&(l=0);let t=c<<l;f==="+"?s|=t:f==="-"?s&=~t:f==="="&&(s&=~(7<<l),s|=t)}}return s}export{C as chmodCommand};
@@ -1,8 +0,0 @@
1
- import{a as F,b as k,c as C}from"./chunk-74CEPOFO.js";var D={sha1:"SHA-1",sha256:"SHA-256"};function S(f){let d=new TextEncoder().encode(f);function $(r,b){return r<<b|r>>>32-b}let y=new Uint32Array([3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107603335,1163531501,2850285829,4243563512,1735328473,2368359562,4294588738,2272392833,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787259,3951481745]),n=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],m=d.length*8,l=(d.length%64<56?56:120)-d.length%64,o=new Uint8Array(d.length+l+8);o.set(d),o[d.length]=128;let A=new DataView(o.buffer);A.setUint32(o.length-8,m>>>0,!0),A.setUint32(o.length-4,Math.floor(m/4294967296),!0);let e=1732584193,a=4023233417,i=2562383102,u=271733878;for(let r=0;r<o.length;r+=64){let b=new Uint32Array(16);for(let t=0;t<16;t++)b[t]=A.getUint32(r+t*4,!0);let w=e,c=a,s=i,x=u;for(let t=0;t<64;t++){let p,U;t<16?(p=c&s|~c&x,U=t):t<32?(p=x&c|~x&s,U=(5*t+1)%16):t<48?(p=c^s^x,U=(3*t+5)%16):(p=s^(c|~x),U=7*t%16),p=p+w+y[t]+b[U]>>>0,w=x,x=s,s=c,c=c+$(p,n[t])>>>0}e=e+w>>>0,a=a+c>>>0,i=i+s>>>0,u=u+x>>>0}let h=new Uint8Array(16);return new DataView(h.buffer).setUint32(0,e,!0),new DataView(h.buffer).setUint32(4,a,!0),new DataView(h.buffer).setUint32(8,i,!0),new DataView(h.buffer).setUint32(12,u,!0),Array.from(h).map(r=>r.toString(16).padStart(2,"0")).join("")}async function L(f,g){if(f==="md5")return S(g);let $=new TextEncoder().encode(g),y=await globalThis.crypto.subtle.digest(D[f],$);return Array.from(new Uint8Array(y)).map(n=>n.toString(16).padStart(2,"0")).join("")}function H(f,g,d){let $={name:f,summary:d,usage:`${f} [OPTION]... [FILE]...`,options:["-c, --check read checksums from FILEs and check them"," --help display this help and exit"]};return{name:f,async execute(y,n){if(k(y))return F($);let m=!1,l=[];for(let e of y)if(e==="-c"||e==="--check")m=!0;else if(!(e==="-b"||e==="-t"||e==="--binary"||e==="--text")){if(e.startsWith("-")&&e!=="-")return C(f,e);l.push(e)}if(l.length===0&&l.push("-"),m){let e=0,a="";for(let i of l){let u=i==="-"?n.stdin:await n.fs.readFile(n.fs.resolvePath(n.cwd,i)).catch(()=>null);if(u===null)return{stdout:"",stderr:`${f}: ${i}: No such file or directory
2
- `,exitCode:1};for(let h of u.split(`
3
- `)){let r=h.match(/^([a-fA-F0-9]+)\s+[* ]?(.+)$/);if(!r)continue;let[,b,w]=r;try{let c=await n.fs.readFile(n.fs.resolvePath(n.cwd,w)),s=await L(g,c)===b.toLowerCase();a+=`${w}: ${s?"OK":"FAILED"}
4
- `,s||e++}catch{a+=`${w}: FAILED open or read
5
- `,e++}}}return e>0&&(a+=`${f}: WARNING: ${e} computed checksum${e>1?"s":""} did NOT match
6
- `),{stdout:a,stderr:"",exitCode:e>0?1:0}}let o="",A=0;for(let e of l)try{let a=e==="-"?n.stdin:await n.fs.readFile(n.fs.resolvePath(n.cwd,e));o+=`${await L(g,a)} ${e}
7
- `}catch{o+=`${f}: ${e}: No such file or directory
8
- `,A=1}return{stdout:o,stderr:"",exitCode:A}}}}export{H as a};
@@ -1,5 +0,0 @@
1
- var n=class extends Error{stdout;stderr;constructor(t,s="",e=""){super(t),this.stdout=s,this.stderr=e}prependOutput(t,s){this.stdout=t+this.stdout,this.stderr=s+this.stderr}},o=class extends n{levels;name="BreakError";constructor(t=1,s="",e=""){super("break",s,e),this.levels=t}},i=class extends n{levels;name="ContinueError";constructor(t=1,s="",e=""){super("continue",s,e),this.levels=t}},c=class extends n{exitCode;name="ReturnError";constructor(t=0,s="",e=""){super("return",s,e),this.exitCode=t}},a=class extends n{exitCode;name="ErrexitError";constructor(t,s="",e=""){super(`errexit: command exited with status ${t}`,s,e),this.exitCode=t}},d=class extends n{varName;name="NounsetError";constructor(t,s=""){super(`${t}: unbound variable`,s,`bash: ${t}: unbound variable
2
- `),this.varName=t}},x=class extends n{exitCode;name="ExitError";constructor(t,s="",e=""){super("exit",s,e),this.exitCode=t}},p=class extends n{name="ArithmeticError";constructor(t,s="",e=""){super(t,s,e),this.stderr=e||`bash: ${t}
3
- `}},h=class extends n{name="BadSubstitutionError";constructor(t,s="",e=""){super(t,s,e),this.stderr=e||`bash: ${t}: bad substitution
4
- `}},l=class extends n{limitType;name="ExecutionLimitError";static EXIT_CODE=126;constructor(t,s,e="",u=""){super(t,e,u),this.limitType=s,this.stderr=u||`bash: ${t}
5
- `}};function b(r){return r instanceof o||r instanceof i||r instanceof c}export{o as a,i as b,c,a as d,d as e,x as f,p as g,h,l as i,b as j};
@@ -1,2 +0,0 @@
1
- function c(t,a,e){let l=t;e>=0&&l.length>e&&(l=l.slice(0,e));let s=Math.abs(a);return s>l.length&&(a<0?l=l.padEnd(s," "):l=l.padStart(s," ")),l}function i(t,a){let e=a,l=0,s=-1,n=!1;for(e<t.length&&t[e]==="-"&&(n=!0,e++);e<t.length&&/\d/.test(t[e]);)l=l*10+parseInt(t[e],10),e++;if(e<t.length&&t[e]===".")for(e++,s=0;e<t.length&&/\d/.test(t[e]);)s=s*10+parseInt(t[e],10),e++;return n&&l>0&&(l=-l),[l,s,e-a]}function h(t){let a="",e=0;for(;e<t.length;)if(t[e]==="\\"&&e+1<t.length)switch(t[e+1]){case"n":a+=`
2
- `,e+=2;break;case"t":a+=" ",e+=2;break;case"r":a+="\r",e+=2;break;case"\\":a+="\\",e+=2;break;case"a":a+="\x07",e+=2;break;case"b":a+="\b",e+=2;break;case"f":a+="\f",e+=2;break;case"v":a+="\v",e+=2;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let s="",n=e+1;for(;n<t.length&&n<e+4&&/[0-7]/.test(t[n]);)s+=t[n],n++;a+=String.fromCharCode(parseInt(s,8)),e=n;break}case"x":e+3<t.length&&/[0-9a-fA-F]{2}/.test(t.slice(e+2,e+4))?(a+=String.fromCharCode(parseInt(t.slice(e+2,e+4),16)),e+=4):(a+=t[e],e++);break;default:a+=t[e],e++}else a+=t[e],e++;return a}export{c as a,i as b,h as c};
@@ -1 +0,0 @@
1
- import{a as e,b as r}from"./chunk-74CEPOFO.js";var t={name:"clear",summary:"clear the terminal screen",usage:"clear [OPTIONS]",options:[" --help display this help and exit"]},s={name:"clear",async execute(a,c){return r(a)?e(t):{stdout:"\x1B[2J\x1B[H",stderr:"",exitCode:0}}};export{s as clearCommand};
@@ -1,7 +0,0 @@
1
- import{a as m}from"./chunk-ZVV5VXYZ.js";import{a as $}from"./chunk-44UOCSGV.js";import{a as g,b as y}from"./chunk-74CEPOFO.js";var D={name:"cp",summary:"copy files and directories",usage:"cp [OPTION]... SOURCE... DEST",options:["-r, -R, --recursive copy directories recursively","-n, --no-clobber do not overwrite an existing file","-p, --preserve preserve file attributes","-v, --verbose explain what is being done"," --help display this help and exit"]},E={recursive:{short:"r",long:"recursive",type:"boolean"},recursiveUpper:{short:"R",type:"boolean"},noClobber:{short:"n",long:"no-clobber",type:"boolean"},preserve:{short:"p",long:"preserve",type:"boolean"},verbose:{short:"v",long:"verbose",type:"boolean"}},R={name:"cp",async execute(f,e){if(y(f))return g(D);let t=m("cp",f,E);if(!t.ok)return t.error;let u=t.result.flags.recursive||t.result.flags.recursiveUpper,w=t.result.flags.noClobber,C=t.result.flags.preserve,P=t.result.flags.verbose,a=t.result.positional;if(a.length<2)return{stdout:"",stderr:`cp: missing destination file operand
2
- `,exitCode:1};let d=a.pop()??"",h=a,o=e.fs.resolvePath(e.cwd,d),v="",n="",l=0,p=!1;try{p=(await e.fs.stat(o)).isDirectory}catch{}if(h.length>1&&!p)return{stdout:"",stderr:`cp: target '${d}' is not a directory
3
- `,exitCode:1};for(let r of h)try{let i=e.fs.resolvePath(e.cwd,r),s=await e.fs.stat(i),c=o;if(p){let b=r.split("/").pop()||r;c=o==="/"?`/${b}`:`${o}/${b}`}if(s.isDirectory&&!u){n+=`cp: -r not specified; omitting directory '${r}'
4
- `,l=1;continue}if(w)try{await e.fs.stat(c);continue}catch{}await e.fs.cp(i,c,{recursive:u}),P&&(v+=`'${r}' -> '${c}'
5
- `)}catch(i){let s=$(i);s.includes("ENOENT")||s.includes("no such file")?n+=`cp: cannot stat '${r}': No such file or directory
6
- `:n+=`cp: cannot copy '${r}': ${s}
7
- `,l=1}return{stdout:v,stderr:n,exitCode:l}}};export{R as cpCommand};
@@ -1,25 +0,0 @@
1
- import{a as b}from"./chunk-44UOCSGV.js";import{a as T,b as y,c as f}from"./chunk-74CEPOFO.js";function u(s){let t=s.indexOf("=");if(t>=0){let r=s.slice(0,t),e=s.slice(t+1);return r?`${encodeURIComponent(r)}=${encodeURIComponent(e)}`:encodeURIComponent(e)}return encodeURIComponent(s)}function c(s){let t=s.indexOf("=");if(t<0)return null;let r=s.slice(0,t),e=s.slice(t+1),i,a,o=e.match(/;type=([^;]+)$/);o&&(a=o[1],e=e.slice(0,-o[0].length));let n=e.match(/;filename=([^;]+)/);return n&&(i=n[1],e=e.replace(n[0],"")),(e.startsWith("@")||e.startsWith("<"))&&(i=i??e.slice(1).split("/").pop()),{name:r,value:e,filename:i,contentType:a}}function w(s,t){let r=`----CurlFormBoundary${Date.now().toString(36)}`,e=[];for(let i of s){let a=i.value;if(a.startsWith("@")||a.startsWith("<")){let n=a.slice(1);a=t.get(n)??""}let o=`--${r}\r
2
- `;i.filename?(o+=`Content-Disposition: form-data; name="${i.name}"; filename="${i.filename}"\r
3
- `,i.contentType&&(o+=`Content-Type: ${i.contentType}\r
4
- `)):o+=`Content-Disposition: form-data; name="${i.name}"\r
5
- `,o+=`\r
6
- ${a}\r
7
- `,e.push(o)}return e.push(`--${r}--\r
8
- `),{body:e.join(""),boundary:r}}var O={name:"curl",summary:"transfer a URL",usage:"curl [OPTIONS] URL",options:["-X, --request METHOD HTTP method (GET, POST, PUT, DELETE, etc.)","-H, --header HEADER Add header (can be used multiple times)","-d, --data DATA HTTP POST data"," --data-raw DATA HTTP POST data (no @ interpretation)"," --data-binary DATA HTTP POST binary data"," --data-urlencode DATA URL-encode and POST data","-F, --form NAME=VALUE Multipart form data","-u, --user USER:PASS HTTP authentication","-A, --user-agent STR Set User-Agent header","-e, --referer URL Set Referer header","-b, --cookie DATA Send cookies (name=value or @file)","-c, --cookie-jar FILE Save cookies to file","-T, --upload-file FILE Upload file (PUT)","-o, --output FILE Write output to file","-O, --remote-name Write to file named from URL","-I, --head Show headers only (HEAD request)","-i, --include Include response headers in output","-s, --silent Silent mode (no progress)","-S, --show-error Show errors even when silent","-f, --fail Fail silently on HTTP errors (no output)","-L, --location Follow redirects (default)"," --max-redirs NUM Maximum redirects (default: 20)","-m, --max-time SECS Maximum time for request"," --connect-timeout SECS Connection timeout","-w, --write-out FMT Output format after completion","-v, --verbose Verbose output"," --help Display this help and exit","","Note: Network access must be configured via BashEnv network option."," curl is not available by default for security reasons."]};function S(s){let t={method:"GET",headers:{},dataBinary:!1,formFields:[],useRemoteName:!1,headOnly:!1,includeHeaders:!1,silent:!1,showError:!1,failSilently:!1,followRedirects:!0,verbose:!1};for(let r=0;r<s.length;r++){let e=s[r];if(e==="-X"||e==="--request")t.method=s[++r]??"GET";else if(e.startsWith("-X"))t.method=e.slice(2);else if(e.startsWith("--request="))t.method=e.slice(10);else if(e==="-H"||e==="--header"){let i=s[++r];if(i){let a=i.indexOf(":");if(a>0){let o=i.slice(0,a).trim(),n=i.slice(a+1).trim();t.headers[o]=n}}}else if(e.startsWith("--header=")){let i=e.slice(9),a=i.indexOf(":");if(a>0){let o=i.slice(0,a).trim(),n=i.slice(a+1).trim();t.headers[o]=n}}else if(e==="-d"||e==="--data"||e==="--data-raw")t.data=s[++r]??"",t.method==="GET"&&(t.method="POST");else if(e.startsWith("-d"))t.data=e.slice(2),t.method==="GET"&&(t.method="POST");else if(e.startsWith("--data="))t.data=e.slice(7),t.method==="GET"&&(t.method="POST");else if(e.startsWith("--data-raw="))t.data=e.slice(11),t.method==="GET"&&(t.method="POST");else if(e==="--data-binary")t.data=s[++r]??"",t.dataBinary=!0,t.method==="GET"&&(t.method="POST");else if(e.startsWith("--data-binary="))t.data=e.slice(14),t.dataBinary=!0,t.method==="GET"&&(t.method="POST");else if(e==="--data-urlencode"){let i=s[++r]??"";t.data=(t.data?`${t.data}&`:"")+u(i),t.method==="GET"&&(t.method="POST")}else if(e.startsWith("--data-urlencode=")){let i=e.slice(17);t.data=(t.data?`${t.data}&`:"")+u(i),t.method==="GET"&&(t.method="POST")}else if(e==="-F"||e==="--form"){let i=s[++r]??"",a=c(i);a&&t.formFields.push(a),t.method==="GET"&&(t.method="POST")}else if(e.startsWith("--form=")){let i=e.slice(7),a=c(i);a&&t.formFields.push(a),t.method==="GET"&&(t.method="POST")}else if(e==="-u"||e==="--user")t.user=s[++r];else if(e.startsWith("-u"))t.user=e.slice(2);else if(e.startsWith("--user="))t.user=e.slice(7);else if(e==="-A"||e==="--user-agent")t.headers["User-Agent"]=s[++r]??"";else if(e.startsWith("-A"))t.headers["User-Agent"]=e.slice(2);else if(e.startsWith("--user-agent="))t.headers["User-Agent"]=e.slice(13);else if(e==="-e"||e==="--referer")t.headers.Referer=s[++r]??"";else if(e.startsWith("-e"))t.headers.Referer=e.slice(2);else if(e.startsWith("--referer="))t.headers.Referer=e.slice(10);else if(e==="-b"||e==="--cookie")t.headers.Cookie=s[++r]??"";else if(e.startsWith("-b"))t.headers.Cookie=e.slice(2);else if(e.startsWith("--cookie="))t.headers.Cookie=e.slice(9);else if(e==="-c"||e==="--cookie-jar")t.cookieJar=s[++r];else if(e.startsWith("--cookie-jar="))t.cookieJar=e.slice(13);else if(e==="-T"||e==="--upload-file")t.uploadFile=s[++r],t.method==="GET"&&(t.method="PUT");else if(e.startsWith("--upload-file="))t.uploadFile=e.slice(14),t.method==="GET"&&(t.method="PUT");else if(e==="-m"||e==="--max-time"){let i=parseFloat(s[++r]??"0");!Number.isNaN(i)&&i>0&&(t.timeoutMs=i*1e3)}else if(e.startsWith("--max-time=")){let i=parseFloat(e.slice(11));!Number.isNaN(i)&&i>0&&(t.timeoutMs=i*1e3)}else if(e==="--connect-timeout"){let i=parseFloat(s[++r]??"0");!Number.isNaN(i)&&i>0&&t.timeoutMs===void 0&&(t.timeoutMs=i*1e3)}else if(e.startsWith("--connect-timeout=")){let i=parseFloat(e.slice(18));!Number.isNaN(i)&&i>0&&t.timeoutMs===void 0&&(t.timeoutMs=i*1e3)}else if(e==="-o"||e==="--output")t.outputFile=s[++r];else if(e.startsWith("--output="))t.outputFile=e.slice(9);else if(e==="-O"||e==="--remote-name")t.useRemoteName=!0;else if(e==="-I"||e==="--head")t.headOnly=!0,t.method="HEAD";else if(e==="-i"||e==="--include")t.includeHeaders=!0;else if(e==="-s"||e==="--silent")t.silent=!0;else if(e==="-S"||e==="--show-error")t.showError=!0;else if(e==="-f"||e==="--fail")t.failSilently=!0;else if(e==="-L"||e==="--location")t.followRedirects=!0;else if(e==="--max-redirs")r++;else if(!e.startsWith("--max-redirs="))if(e==="-w"||e==="--write-out")t.writeOut=s[++r];else if(e.startsWith("--write-out="))t.writeOut=e.slice(12);else if(e==="-v"||e==="--verbose")t.verbose=!0;else{if(e.startsWith("--")&&e!=="--")return f("curl",e);if(e.startsWith("-")&&e!=="-")for(let i of e.slice(1))switch(i){case"s":t.silent=!0;break;case"S":t.showError=!0;break;case"f":t.failSilently=!0;break;case"L":t.followRedirects=!0;break;case"I":t.headOnly=!0,t.method="HEAD";break;case"i":t.includeHeaders=!0;break;case"O":t.useRemoteName=!0;break;case"v":t.verbose=!0;break;default:return f("curl",`-${i}`)}else e.startsWith("-")||(t.url=e)}}return t}function h(s){return Object.entries(s).map(([t,r])=>`${t}: ${r}`).join(`\r
9
- `)}function E(s){try{return new URL(s).pathname.split("/").pop()||"index.html"}catch{return"index.html"}}function m(s,t){let r=s;return r=r.replace(/%\{http_code\}/g,String(t.status)),r=r.replace(/%\{content_type\}/g,t.headers["content-type"]||""),r=r.replace(/%\{url_effective\}/g,t.url),r=r.replace(/%\{size_download\}/g,String(t.bodyLength)),r=r.replace(/\\n/g,`
10
- `),r}async function F(s,t){if(s.uploadFile){let r=t.fs.resolvePath(t.cwd,s.uploadFile);return{body:await t.fs.readFile(r)}}if(s.formFields.length>0){let r=new Map;for(let a of s.formFields)if(a.value.startsWith("@")||a.value.startsWith("<")){let o=t.fs.resolvePath(t.cwd,a.value.slice(1));try{let n=await t.fs.readFile(o);r.set(a.value.slice(1),n)}catch{r.set(a.value.slice(1),"")}}let{body:e,boundary:i}=w(s.formFields,r);return{body:e,contentType:`multipart/form-data; boundary=${i}`}}return s.data!==void 0?{body:s.data}:{}}function P(s,t){let r={...s.headers};if(s.user){let e=Buffer.from(s.user).toString("base64");r.Authorization=`Basic ${e}`}return t&&!r["Content-Type"]&&(r["Content-Type"]=t),r}async function W(s,t,r){if(!s.cookieJar)return;let e=t["set-cookie"];if(!e)return;let i=r.fs.resolvePath(r.cwd,s.cookieJar);await r.fs.writeFile(i,e)}function $(s,t,r){let e="";if(s.verbose){e+=`> ${s.method} ${r}
11
- `;for(let[i,a]of Object.entries(s.headers))e+=`> ${i}: ${a}
12
- `;e+=`>
13
- `,e+=`< HTTP/1.1 ${t.status} ${t.statusText}
14
- `;for(let[i,a]of Object.entries(t.headers))e+=`< ${i}: ${a}
15
- `;e+=`<
16
- `}return s.includeHeaders&&!s.verbose&&(e+=`HTTP/1.1 ${t.status} ${t.statusText}\r
17
- `,e+=h(t.headers),e+=`\r
18
- \r
19
- `),s.headOnly?s.includeHeaders||s.verbose||(e+=`HTTP/1.1 ${t.status} ${t.statusText}\r
20
- `,e+=h(t.headers),e+=`\r
21
- `):e+=t.body,s.writeOut&&(e+=m(s.writeOut,{status:t.status,headers:t.headers,url:t.url,bodyLength:t.body.length})),e}var I={name:"curl",async execute(s,t){if(y(s))return T(O);let r=S(s);if("exitCode"in r)return r;let e=r;if(!e.url)return{stdout:"",stderr:`curl: no URL specified
22
- `,exitCode:2};if(!t.fetch)return{stdout:"",stderr:`curl: internal error: fetch not available
23
- `,exitCode:1};let i=e.url;i.match(/^https?:\/\//)||(i=`https://${i}`);try{let{body:a,contentType:o}=await F(e,t),n=P(e,o),l=await t.fetch(i,{method:e.method,headers:Object.keys(n).length>0?n:void 0,body:a,followRedirects:e.followRedirects,timeoutMs:e.timeoutMs});if(await W(e,l.headers,t),e.failSilently&&l.status>=400)return{stdout:"",stderr:e.showError||!e.silent?`curl: (22) The requested URL returned error: ${l.status}
24
- `:"",exitCode:22};let d=$(e,l,i);if(e.outputFile||e.useRemoteName){let p=e.outputFile||E(i),v=t.fs.resolvePath(t.cwd,p);await t.fs.writeFile(v,e.headOnly?"":l.body),e.verbose||(d=""),e.writeOut&&(d=m(e.writeOut,{status:l.status,headers:l.headers,url:l.url,bodyLength:l.body.length}))}return{stdout:d,stderr:"",exitCode:0}}catch(a){let o=b(a),n=1;return o.includes("Network access denied")?n=7:o.includes("HTTP method")&&o.includes("not allowed")?n=3:o.includes("Redirect target not in allow-list")||o.includes("Too many redirects")?n=47:o.includes("aborted")&&(n=28),{stdout:"",stderr:!e.silent||e.showError?`curl: (${n}) ${o}
25
- `:"",exitCode:n}}}};export{I as curlCommand};