just-bash 2.12.3 → 2.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/bin/chunks/awk2-RGDNV4HO.js +2 -0
  2. package/dist/bin/chunks/chunk-4C4F4EKM.js +2 -0
  3. package/dist/bin/chunks/chunk-55QIFSKH.js +36 -0
  4. package/dist/bin/chunks/chunk-6MF2IYQX.js +10 -0
  5. package/dist/bin/chunks/chunk-DGFDVZ4N.js +21 -0
  6. package/dist/bin/chunks/chunk-EO5AH4U7.js +5 -0
  7. package/dist/bin/{shell/chunks/chunk-2SIXTZCJ.js → chunks/chunk-EZS766DD.js} +4 -4
  8. package/dist/bin/chunks/{chunk-435ZOZCY.js → chunk-J4WYAO5Q.js} +1 -1
  9. package/dist/bin/chunks/chunk-LHN3LRVT.js +100 -0
  10. package/dist/bin/{shell/chunks/chunk-JNPUO56K.js → chunks/chunk-NDP6L74Z.js} +1 -1
  11. package/dist/bin/chunks/chunk-PWZZGTFL.js +13 -0
  12. package/dist/bin/{shell/chunks/chunk-3NVWSLHI.js → chunks/chunk-Q3FNZYGG.js} +99 -99
  13. package/dist/bin/{shell/chunks/chunk-7SWOLTCR.js → chunks/chunk-Q4WHWGOT.js} +1 -1
  14. package/dist/bin/chunks/chunk-SY2WM5RM.js +14 -0
  15. package/dist/bin/chunks/chunk-SYG3IW7P.js +2 -0
  16. package/dist/bin/chunks/chunk-SYL34GE7.js +21 -0
  17. package/dist/bin/{shell/chunks/chunk-DREQRXNN.js → chunks/chunk-V5YFCVCZ.js} +1 -1
  18. package/dist/bin/chunks/chunk-V7VIJQD6.js +6 -0
  19. package/dist/bin/chunks/chunk-WMYKQURM.js +2 -0
  20. package/dist/bin/chunks/chunk-WO4B7WUT.js +2 -0
  21. package/dist/bin/chunks/expr-VEFRBJT4.js +2 -0
  22. package/dist/bin/{shell/chunks/flag-coverage-23ZUDENJ.js → chunks/flag-coverage-K6IBGWAC.js} +1 -1
  23. package/dist/bin/chunks/jq-VBB2XIZS.js +2 -0
  24. package/dist/bin/chunks/ln-BEOFQJNP.js +2 -0
  25. package/dist/bin/chunks/python3-JX5PXXTX.js +17 -0
  26. package/dist/bin/chunks/sed-BYFYBR4A.js +2 -0
  27. package/dist/bin/chunks/sleep-E3K6M6BN.js +2 -0
  28. package/dist/bin/chunks/sqlite3-SJHZFBT2.js +2 -0
  29. package/dist/bin/chunks/{tar-VIYVHMER.js → tar-W5GBTEDZ.js} +1 -1
  30. package/dist/bin/chunks/time-AWAKKRSE.js +2 -0
  31. package/dist/bin/chunks/timeout-OLS72AZG.js +2 -0
  32. package/dist/bin/chunks/tr-LZF57GYP.js +2 -0
  33. package/dist/bin/chunks/worker.js +92 -29
  34. package/dist/bin/chunks/xan-BJ66NSYT.js +2 -0
  35. package/dist/bin/chunks/yq-GPYVGU2N.js +2 -0
  36. package/dist/bin/just-bash.js +287 -287
  37. package/dist/bin/shell/chunks/awk2-RGDNV4HO.js +2 -0
  38. package/dist/bin/shell/chunks/chunk-4C4F4EKM.js +2 -0
  39. package/dist/bin/shell/chunks/chunk-55QIFSKH.js +36 -0
  40. package/dist/bin/shell/chunks/chunk-6MF2IYQX.js +10 -0
  41. package/dist/bin/shell/chunks/chunk-DGFDVZ4N.js +21 -0
  42. package/dist/bin/shell/chunks/chunk-EO5AH4U7.js +5 -0
  43. package/dist/bin/{chunks/chunk-2SIXTZCJ.js → shell/chunks/chunk-EZS766DD.js} +4 -4
  44. package/dist/bin/shell/chunks/{chunk-435ZOZCY.js → chunk-J4WYAO5Q.js} +1 -1
  45. package/dist/bin/shell/chunks/chunk-LHN3LRVT.js +100 -0
  46. package/dist/bin/{chunks/chunk-JNPUO56K.js → shell/chunks/chunk-NDP6L74Z.js} +1 -1
  47. package/dist/bin/shell/chunks/chunk-PWZZGTFL.js +13 -0
  48. package/dist/bin/{chunks/chunk-3NVWSLHI.js → shell/chunks/chunk-Q3FNZYGG.js} +99 -99
  49. package/dist/bin/{chunks/chunk-7SWOLTCR.js → shell/chunks/chunk-Q4WHWGOT.js} +1 -1
  50. package/dist/bin/shell/chunks/chunk-SY2WM5RM.js +14 -0
  51. package/dist/bin/shell/chunks/chunk-SYG3IW7P.js +2 -0
  52. package/dist/bin/shell/chunks/chunk-SYL34GE7.js +21 -0
  53. package/dist/bin/{chunks/chunk-DREQRXNN.js → shell/chunks/chunk-V5YFCVCZ.js} +1 -1
  54. package/dist/bin/shell/chunks/chunk-V7VIJQD6.js +6 -0
  55. package/dist/bin/shell/chunks/chunk-WMYKQURM.js +2 -0
  56. package/dist/bin/shell/chunks/chunk-WO4B7WUT.js +2 -0
  57. package/dist/bin/shell/chunks/expr-VEFRBJT4.js +2 -0
  58. package/dist/bin/{chunks/flag-coverage-23ZUDENJ.js → shell/chunks/flag-coverage-K6IBGWAC.js} +1 -1
  59. package/dist/bin/shell/chunks/jq-VBB2XIZS.js +2 -0
  60. package/dist/bin/shell/chunks/ln-BEOFQJNP.js +2 -0
  61. package/dist/bin/shell/chunks/python3-JX5PXXTX.js +17 -0
  62. package/dist/bin/shell/chunks/sed-BYFYBR4A.js +2 -0
  63. package/dist/bin/shell/chunks/sleep-E3K6M6BN.js +2 -0
  64. package/dist/bin/shell/chunks/sqlite3-SJHZFBT2.js +2 -0
  65. package/dist/bin/shell/chunks/{tar-VIYVHMER.js → tar-W5GBTEDZ.js} +1 -1
  66. package/dist/bin/shell/chunks/time-AWAKKRSE.js +2 -0
  67. package/dist/bin/shell/chunks/timeout-OLS72AZG.js +2 -0
  68. package/dist/bin/shell/chunks/tr-LZF57GYP.js +2 -0
  69. package/dist/bin/shell/chunks/xan-BJ66NSYT.js +2 -0
  70. package/dist/bin/shell/chunks/yq-GPYVGU2N.js +2 -0
  71. package/dist/bin/shell/shell.js +250 -250
  72. package/dist/bundle/browser.js +658 -658
  73. package/dist/bundle/chunks/awk2-XLDR2J4Q.js +1 -0
  74. package/dist/bundle/chunks/chunk-2OHMPZNZ.js +20 -0
  75. package/dist/bundle/chunks/chunk-3RCXHB4E.js +4 -0
  76. package/dist/bundle/chunks/chunk-CCNMISUL.js +1 -0
  77. package/dist/bundle/chunks/chunk-DOTBQEPN.js +5 -0
  78. package/dist/bundle/chunks/chunk-GENDESYN.js +1 -0
  79. package/dist/bundle/chunks/chunk-H4QOE4W3.js +99 -0
  80. package/dist/bundle/chunks/{chunk-C6ZZC5FL.js → chunk-K5BTXJQC.js} +99 -99
  81. package/dist/bundle/chunks/chunk-KAZYKNBG.js +13 -0
  82. package/dist/bundle/chunks/{chunk-XULIVM35.js → chunk-N4QLRJ32.js} +1 -1
  83. package/dist/bundle/chunks/{chunk-5CJQNRNJ.js → chunk-NTP6TTH5.js} +1 -1
  84. package/dist/bundle/chunks/chunk-QUME7R6S.js +9 -0
  85. package/dist/bundle/chunks/{chunk-U7QI5ZS5.js → chunk-RVT3MU3A.js} +4 -4
  86. package/dist/bundle/chunks/chunk-T2EHE3CV.js +1 -0
  87. package/dist/bundle/chunks/chunk-TBAWQWQB.js +12 -0
  88. package/dist/bundle/chunks/chunk-VYV3YE2F.js +35 -0
  89. package/dist/bundle/chunks/{chunk-UJIR5V54.js → chunk-W42IGK5R.js} +1 -1
  90. package/dist/bundle/chunks/{chunk-7BQDVPII.js → chunk-WAN3B6E3.js} +1 -1
  91. package/dist/bundle/chunks/chunk-XXZ46GOX.js +20 -0
  92. package/dist/bundle/chunks/chunk-ZK6J6F7O.js +1 -0
  93. package/dist/bundle/chunks/expr-74QHYJL5.js +1 -0
  94. package/dist/bundle/chunks/{flag-coverage-L3DCLG6V.js → flag-coverage-VGF5NAZP.js} +1 -1
  95. package/dist/bundle/chunks/jq-JQXAVWNT.js +1 -0
  96. package/dist/bundle/chunks/ln-RI2SJGXU.js +1 -0
  97. package/dist/bundle/chunks/python3-TSPOVUHX.js +16 -0
  98. package/dist/bundle/chunks/sed-CJFW7UYO.js +1 -0
  99. package/dist/bundle/chunks/sleep-TFDNFOXK.js +1 -0
  100. package/dist/bundle/chunks/sqlite3-CTI4ZW7L.js +1 -0
  101. package/dist/bundle/chunks/{tar-E2DVQEWO.js → tar-Y6LP5EBC.js} +1 -1
  102. package/dist/bundle/chunks/time-WBKSMCJ6.js +1 -0
  103. package/dist/bundle/chunks/timeout-O7WSXY5H.js +1 -0
  104. package/dist/bundle/chunks/tr-GVTWMRZB.js +1 -0
  105. package/dist/bundle/chunks/worker.js +92 -29
  106. package/dist/bundle/chunks/xan-VMLUNIDS.js +1 -0
  107. package/dist/bundle/chunks/yq-QXIYE3MW.js +1 -0
  108. package/dist/bundle/index.cjs +849 -849
  109. package/dist/bundle/index.js +225 -225
  110. package/dist/commands/awk/interpreter/context.d.ts +2 -0
  111. package/dist/commands/awk/interpreter/interpreter.d.ts +2 -0
  112. package/dist/commands/query-engine/evaluator.d.ts +3 -0
  113. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  114. package/dist/interpreter/interpreter.d.ts +8 -0
  115. package/dist/interpreter/types.d.ts +5 -0
  116. package/dist/timers.d.ts +2 -11
  117. package/dist/types.d.ts +6 -0
  118. package/package.json +1 -1
  119. package/dist/bin/chunks/awk2-ZE5HJBNV.js +0 -2
  120. package/dist/bin/chunks/chunk-2FFXXW3F.js +0 -14
  121. package/dist/bin/chunks/chunk-4E3LY6YK.js +0 -10
  122. package/dist/bin/chunks/chunk-4FNW6LFM.js +0 -5
  123. package/dist/bin/chunks/chunk-4PZYIYYG.js +0 -36
  124. package/dist/bin/chunks/chunk-6L4K3UGO.js +0 -100
  125. package/dist/bin/chunks/chunk-EPIOK4SY.js +0 -6
  126. package/dist/bin/chunks/chunk-IYZRLSTQ.js +0 -2
  127. package/dist/bin/chunks/chunk-JJHAWOIB.js +0 -2
  128. package/dist/bin/chunks/chunk-KPWFKFSD.js +0 -21
  129. package/dist/bin/chunks/chunk-RYXW3SZQ.js +0 -13
  130. package/dist/bin/chunks/chunk-VZKEP45B.js +0 -21
  131. package/dist/bin/chunks/expr-MLHUWFYI.js +0 -2
  132. package/dist/bin/chunks/jq-CXSPO2J5.js +0 -2
  133. package/dist/bin/chunks/ln-5TCJXDGY.js +0 -2
  134. package/dist/bin/chunks/python3-74B25WCY.js +0 -17
  135. package/dist/bin/chunks/sed-DNLJZZXZ.js +0 -2
  136. package/dist/bin/chunks/sleep-GUJH2AMQ.js +0 -2
  137. package/dist/bin/chunks/sqlite3-57UI7HYL.js +0 -2
  138. package/dist/bin/chunks/time-FAWHHOMA.js +0 -2
  139. package/dist/bin/chunks/timeout-4O4YYRTS.js +0 -2
  140. package/dist/bin/chunks/tr-4V5A3V2C.js +0 -2
  141. package/dist/bin/chunks/xan-7NIVZ3HP.js +0 -2
  142. package/dist/bin/chunks/yq-L5ZSGLLO.js +0 -2
  143. package/dist/bin/shell/chunks/awk2-ZE5HJBNV.js +0 -2
  144. package/dist/bin/shell/chunks/chunk-2FFXXW3F.js +0 -14
  145. package/dist/bin/shell/chunks/chunk-4E3LY6YK.js +0 -10
  146. package/dist/bin/shell/chunks/chunk-4FNW6LFM.js +0 -5
  147. package/dist/bin/shell/chunks/chunk-4PZYIYYG.js +0 -36
  148. package/dist/bin/shell/chunks/chunk-6L4K3UGO.js +0 -100
  149. package/dist/bin/shell/chunks/chunk-EPIOK4SY.js +0 -6
  150. package/dist/bin/shell/chunks/chunk-IYZRLSTQ.js +0 -2
  151. package/dist/bin/shell/chunks/chunk-JJHAWOIB.js +0 -2
  152. package/dist/bin/shell/chunks/chunk-KPWFKFSD.js +0 -21
  153. package/dist/bin/shell/chunks/chunk-RYXW3SZQ.js +0 -13
  154. package/dist/bin/shell/chunks/chunk-VZKEP45B.js +0 -21
  155. package/dist/bin/shell/chunks/expr-MLHUWFYI.js +0 -2
  156. package/dist/bin/shell/chunks/jq-CXSPO2J5.js +0 -2
  157. package/dist/bin/shell/chunks/ln-5TCJXDGY.js +0 -2
  158. package/dist/bin/shell/chunks/python3-74B25WCY.js +0 -17
  159. package/dist/bin/shell/chunks/sed-DNLJZZXZ.js +0 -2
  160. package/dist/bin/shell/chunks/sleep-GUJH2AMQ.js +0 -2
  161. package/dist/bin/shell/chunks/sqlite3-57UI7HYL.js +0 -2
  162. package/dist/bin/shell/chunks/time-FAWHHOMA.js +0 -2
  163. package/dist/bin/shell/chunks/timeout-4O4YYRTS.js +0 -2
  164. package/dist/bin/shell/chunks/tr-4V5A3V2C.js +0 -2
  165. package/dist/bin/shell/chunks/xan-7NIVZ3HP.js +0 -2
  166. package/dist/bin/shell/chunks/yq-L5ZSGLLO.js +0 -2
  167. package/dist/bundle/chunks/awk2-T6LHPVZE.js +0 -1
  168. package/dist/bundle/chunks/chunk-5BFLZVGH.js +0 -20
  169. package/dist/bundle/chunks/chunk-7KHLIOOW.js +0 -4
  170. package/dist/bundle/chunks/chunk-AOFQVUAD.js +0 -99
  171. package/dist/bundle/chunks/chunk-BAAVD5NO.js +0 -20
  172. package/dist/bundle/chunks/chunk-BEFDX7IY.js +0 -1
  173. package/dist/bundle/chunks/chunk-KPFCTJEX.js +0 -12
  174. package/dist/bundle/chunks/chunk-LN5KAJOV.js +0 -5
  175. package/dist/bundle/chunks/chunk-NBAARP4B.js +0 -1
  176. package/dist/bundle/chunks/chunk-RHOPHAL6.js +0 -35
  177. package/dist/bundle/chunks/chunk-SL4FN3A5.js +0 -9
  178. package/dist/bundle/chunks/chunk-YIY2RKBW.js +0 -13
  179. package/dist/bundle/chunks/expr-3572LAOT.js +0 -1
  180. package/dist/bundle/chunks/jq-MYSLFARY.js +0 -1
  181. package/dist/bundle/chunks/ln-YAIFIHCT.js +0 -1
  182. package/dist/bundle/chunks/python3-6BKA3FYA.js +0 -16
  183. package/dist/bundle/chunks/sed-3ZCNFRHI.js +0 -1
  184. package/dist/bundle/chunks/sleep-LB7FI6AB.js +0 -1
  185. package/dist/bundle/chunks/sqlite3-FVNA4KNF.js +0 -1
  186. package/dist/bundle/chunks/time-AGNW2ZY6.js +0 -1
  187. package/dist/bundle/chunks/timeout-VN35D5O7.js +0 -1
  188. package/dist/bundle/chunks/tr-2N7Q3KKJ.js +0 -1
  189. package/dist/bundle/chunks/xan-VTO4FP3H.js +0 -1
  190. package/dist/bundle/chunks/yq-JRZFRYSK.js +0 -1
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a as oe}from"./chunk-4PRVMER6.js";import{a as A,b as T}from"./chunk-SE4C7FJY.js";import{k as L}from"./chunk-6KZRLMG3.js";import{a as se,b as ae,c as Q}from"./chunk-GTNBSMZR.js";var Me=1e4,Pe=100,Te=new T(/\s+/);function q(e={}){let{fieldSep:t=Te,maxIterations:n=Me,maxRecursionDepth:i=Pe,maxOutputSize:a=0,fs:s,cwd:o,exec:l,coverage:c}=e;return{FS:" ",OFS:" ",ORS:`
3
- `,OFMT:"%.6g",NR:0,NF:0,FNR:0,FILENAME:"",RSTART:0,RLENGTH:-1,SUBSEP:"",fields:[],line:"",vars:Object.create(null),arrays:Object.create(null),arrayAliases:new Map,ARGC:0,ARGV:Object.create(null),ENVIRON:Object.create(null),functions:new Map,fieldSep:t,maxIterations:n,maxRecursionDepth:i,maxOutputSize:a,currentRecursionDepth:0,exitCode:0,shouldExit:!1,shouldNext:!1,shouldNextFile:!1,loopBreak:!1,loopContinue:!1,hasReturn:!1,inEndBlock:!1,output:"",openedFiles:new Set,fs:s,cwd:o,exec:l,coverage:c}}function le(e,t,n){switch(n){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 O(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 B(e,t){if(e.type==="regex")return e.pattern;let n=w(await t.evalExpr(e));return n.startsWith("/")&&n.endsWith("/")&&(n=n.slice(1,-1)),n}async function ue(e,t){return e?e.type==="variable"?e.name:e.type==="field"?`$${Math.floor(O(await t.evalExpr(e.index)))}`:"$0":"$0"}function he(e,t){if(e==="$0")return t.line;if(e.startsWith("$")){let n=parseInt(e.slice(1),10)-1;return t.fields[n]||""}return w(t.vars[e]??"")}function pe(e,t,n){if(e==="$0")n.line=t,n.fields=n.FS===" "?t.trim().split(/\s+/).filter(Boolean):n.fieldSep.split(t),n.NF=n.fields.length;else if(e.startsWith("$")){let i=parseInt(e.slice(1),10)-1;for(;n.fields.length<=i;)n.fields.push("");n.fields[i]=t,n.NF=n.fields.length,n.line=n.fields.join(n.OFS)}else n.vars[e]=t}async function Fe(e,t,n){return e.length===0?t.line.length:w(await n.evalExpr(e[0])).length}async function _e(e,t,n){if(e.length<2)return"";let i=w(await n.evalExpr(e[0])),a=Math.floor(O(await n.evalExpr(e[1])))-1;if(e.length>=3){let s=Math.floor(O(await n.evalExpr(e[2])));return i.substr(Math.max(0,a),s)}return i.substr(Math.max(0,a))}async function Ge(e,t,n){if(e.length<2)return 0;let i=w(await n.evalExpr(e[0])),a=w(await n.evalExpr(e[1])),s=i.indexOf(a);return s===-1?0:s+1}async function De(e,t,n){if(e.length<2)return 0;let i=w(await n.evalExpr(e[0])),a=e[1];if(a.type!=="variable")return 0;let s=a.name,o=t.FS;if(e.length>=3){let c=e[2];if(c.type==="regex")o=A(c.pattern);else{let N=w(await n.evalExpr(c));o=N===" "?A("\\s+"):N}}else t.FS===" "&&(o=A("\\s+"));let l=typeof o=="string"?i.split(o):o.split(i);t.arrays[s]=Object.create(null);for(let c=0;c<l.length;c++)t.arrays[s][String(c+1)]=l[c];return l.length}async function xe(e,t,n){if(e.length<2)return 0;let i=await B(e[0],n),a=w(await n.evalExpr(e[1])),s=await ue(e[2],n),o=he(s,t);try{let c=A(i).replace(o,fe(a)),N=c!==o?1:0;return pe(s,c,t),N}catch{return 0}}async function Ue(e,t,n){if(e.length<2)return 0;let i=await B(e[0],n),a=w(await n.evalExpr(e[1])),s=await ue(e[2],n),o=he(s,t);try{let l=A(i,"g"),c=l.match(o),N=c?c.length:0,v=l.replace(o,fe(a));return pe(s,v,t),N}catch{return 0}}function fe(e){return t=>{let n="",i=0;for(;i<e.length;)if(e[i]==="\\"&&i+1<e.length){let a=e[i+1];a==="&"?(n+="&",i+=2):a==="\\"?(n+="\\",i+=2):(n+=e[i+1],i+=2)}else e[i]==="&"?(n+=t,i++):(n+=e[i],i++);return n}}async function Be(e,t,n){if(e.length<2)return t.RSTART=0,t.RLENGTH=-1,0;let i=w(await n.evalExpr(e[0])),a=await B(e[1],n);try{let o=A(a).exec(i);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 He(e,t,n){if(e.length<3)return"";let i=await B(e[0],n),a=w(await n.evalExpr(e[1])),s=w(await n.evalExpr(e[2])),o=e.length>=4?w(await n.evalExpr(e[3])):t.line;try{let l=s.toLowerCase()==="g",c=l?0:parseInt(s,10)||1;if(l)return A(i,"g").replace(o,(v,...b)=>ce(a,v,b.slice(0,-2)));{let N=0;return A(i,"g").replace(o,(b,...y)=>(N++,N===c?ce(a,b,y.slice(0,-2)):b))}}catch{return o}}function ce(e,t,n){let i="",a=0;for(;a<e.length;)if(e[a]==="\\"&&a+1<e.length){let s=e[a+1];if(s==="&")i+="&",a+=2;else if(s==="0")i+=t,a+=2;else if(s>="1"&&s<="9"){let o=parseInt(s,10)-1;i+=n[o]||"",a+=2}else s==="n"?(i+=`
4
- `,a+=2):s==="t"?(i+=" ",a+=2):(i+=s,a+=2)}else e[a]==="&"?(i+=t,a++):(i+=e[a],a++);return i}async function $e(e,t,n){return e.length===0?"":w(await n.evalExpr(e[0])).toLowerCase()}async function We(e,t,n){return e.length===0?"":w(await n.evalExpr(e[0])).toUpperCase()}async function Ve(e,t,n){if(e.length===0)return"";let i=w(await n.evalExpr(e[0])),a=[];for(let s=1;s<e.length;s++)a.push(await n.evalExpr(e[s]));return H(i,a)}async function Ke(e,t,n){return e.length===0?0:Math.floor(O(await n.evalExpr(e[0])))}async function Xe(e,t,n){return e.length===0?0:Math.sqrt(O(await n.evalExpr(e[0])))}async function je(e,t,n){return e.length===0?0:Math.sin(O(await n.evalExpr(e[0])))}async function ze(e,t,n){return e.length===0?0:Math.cos(O(await n.evalExpr(e[0])))}async function Qe(e,t,n){let i=e.length>0?O(await n.evalExpr(e[0])):0,a=e.length>1?O(await n.evalExpr(e[1])):0;return Math.atan2(i,a)}async function qe(e,t,n){return e.length===0?0:Math.log(O(await n.evalExpr(e[0])))}async function Je(e,t,n){return e.length===0?1:Math.exp(O(await n.evalExpr(e[0])))}function Ze(e,t,n){return t.random?t.random():Math.random()}async function Ye(e,t,n){let i=e.length>0?O(await n.evalExpr(e[0])):Date.now();return t.vars._srand_seed=i,i}function et(e,t){return()=>{throw new Error(`${e}() is not supported - ${t}`)}}function J(e){return()=>{throw new Error(`function '${e}()' is not implemented`)}}var M=1e4;function H(e,t){let n=0,i="",a=0;for(;a<e.length;)if(e[a]==="%"&&a+1<e.length){let s=a+1,o="",l="",c="",N,v=s;for(;s<e.length&&/\d/.test(e[s]);)s++;s>v&&e[s]==="$"?(N=parseInt(e.substring(v,s),10)-1,s++):s=v;let b=()=>{if(s<e.length){if(s+1<e.length&&(e[s]==="h"&&e[s+1]==="h"||e[s]==="l"&&e[s+1]==="l")){s+=2;return}/[lzjh]/.test(e[s])&&s++}};for(;s<e.length&&/[-+ #0]/.test(e[s]);)o+=e[s++];if(e[s]==="*"){let E=t[n++],h=E!==void 0?Math.floor(Number(E)):0;h<0?(o+="-",l=String(Math.min(-h,M))):l=String(Math.min(h,M)),s++}else for(;s<e.length&&/\d/.test(e[s]);)l+=e[s++];if(l&&parseInt(l,10)>M&&(l=String(M)),e[s]==="."){if(s++,e[s]==="*"){let E=t[n++];c=String(Math.min(E!==void 0?Math.floor(Number(E)):0,M)),s++}else for(;s<e.length&&/\d/.test(e[s]);)c+=e[s++];c&&parseInt(c,10)>M&&(c=String(M))}b();let y=e[s],g=t[N!==void 0?N:n];switch(y){case"s":{let E=g!==void 0?String(g):"";if(c&&(E=E.substring(0,parseInt(c,10))),l){let h=parseInt(l,10);o.includes("-")?E=E.padEnd(h):E=E.padStart(h)}i+=E,N===void 0&&n++;break}case"d":case"i":{let E=g!==void 0?Math.floor(Number(g)):0;Number.isNaN(E)&&(E=0);let h=E<0,p=Math.abs(E).toString();if(c){let C=parseInt(c,10);p=p.padStart(C,"0")}let f="";h?f="-":o.includes("+")?f="+":o.includes(" ")&&(f=" ");let R=f+p;if(l){let C=parseInt(l,10);o.includes("-")?R=R.padEnd(C):o.includes("0")&&!c?R=f+p.padStart(C-f.length,"0"):R=R.padStart(C)}i+=R,N===void 0&&n++;break}case"f":{let E=g!==void 0?Number(g):0;Number.isNaN(E)&&(E=0);let h=c?parseInt(c,10):6,p=E.toFixed(h);if(l){let f=parseInt(l,10);o.includes("-")?p=p.padEnd(f):p=p.padStart(f)}i+=p,N===void 0&&n++;break}case"e":case"E":{let E=g!==void 0?Number(g):0;Number.isNaN(E)&&(E=0);let h=c?parseInt(c,10):6,p=E.toExponential(h);if(y==="E"&&(p=p.toUpperCase()),l){let f=parseInt(l,10);o.includes("-")?p=p.padEnd(f):p=p.padStart(f)}i+=p,N===void 0&&n++;break}case"g":case"G":{let E=g!==void 0?Number(g):0;Number.isNaN(E)&&(E=0);let h=c?parseInt(c,10):6,p=E!==0?Math.floor(Math.log10(Math.abs(E))):0,f;if(E===0?f="0":p<-4||p>=h?(f=E.toExponential(h-1),y==="G"&&(f=f.toUpperCase())):f=E.toPrecision(h),f.includes(".")&&(f=f.replace(/\.?0+$/,"").replace(/\.?0+e/,"e")),f.includes("e")&&(f=f.replace(/\.?0+e/,"e")),l){let R=parseInt(l,10);o.includes("-")?f=f.padEnd(R):f=f.padStart(R)}i+=f,N===void 0&&n++;break}case"x":case"X":{let E=g!==void 0?Math.floor(Number(g)):0;Number.isNaN(E)&&(E=0);let h=Math.abs(E).toString(16);if(y==="X"&&(h=h.toUpperCase()),c){let R=parseInt(c,10);h=h.padStart(R,"0")}let p=E<0?"-":"",f=p+h;if(l){let R=parseInt(l,10);o.includes("-")?f=f.padEnd(R):o.includes("0")&&!c?f=p+h.padStart(R-p.length,"0"):f=f.padStart(R)}i+=f,N===void 0&&n++;break}case"o":{let E=g!==void 0?Math.floor(Number(g)):0;Number.isNaN(E)&&(E=0);let h=Math.abs(E).toString(8);if(c){let R=parseInt(c,10);h=h.padStart(R,"0")}let p=E<0?"-":"",f=p+h;if(l){let R=parseInt(l,10);o.includes("-")?f=f.padEnd(R):o.includes("0")&&!c?f=p+h.padStart(R-p.length,"0"):f=f.padStart(R)}i+=f,N===void 0&&n++;break}case"c":{typeof g=="number"?i+=String.fromCharCode(g):i+=String(g??"").charAt(0)||"",N===void 0&&n++;break}case"%":i+="%";break;default:i+=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":i+=`
5
- `;break;case"t":i+=" ";break;case"r":i+="\r";break;case"\\":i+="\\";break;default:i+=s}a+=2}else i+=e[a++];return i}var de=new Map([["length",Fe],["substr",_e],["index",Ge],["split",De],["sub",xe],["gsub",Ue],["match",Be],["gensub",He],["tolower",$e],["toupper",We],["sprintf",Ve],["int",Ke],["sqrt",Xe],["sin",je],["cos",ze],["atan2",Qe],["log",qe],["exp",Je],["rand",Ze],["srand",Ye],["system",et("system","shell execution not allowed in sandboxed environment")],["close",()=>0],["fflush",()=>0],["systime",J("systime")],["mktime",J("mktime")],["strftime",J("strftime")]]);function I(e){return typeof e=="number"?e!==0:!(e===""||e==="0")}function m(e){if(typeof e=="number")return e;let t=parseFloat(e);return Number.isNaN(t)?0:t}function S(e){return typeof e=="string"?e:(Number.isInteger(e),String(e))}function Z(e){if(typeof e=="number")return!0;let t=String(e).trim();return t===""?!1:!Number.isNaN(Number(t))}function D(e,t){try{return A(e).test(t)}catch{return!1}}function Ee(e,t){return t===""?[]:e.FS===" "?t.trim().split(/\s+/).filter(Boolean):e.fieldSep.split(t)}function $(e,t){return t===0?e.line:t<0||t>e.fields.length?"":e.fields[t-1]??""}function Y(e,t,n){if(t===0)e.line=S(n),e.fields=Ee(e,e.line),e.NF=e.fields.length;else if(t>0){for(;e.fields.length<t;)e.fields.push("");e.fields[t-1]=S(n),e.NF=e.fields.length,e.line=e.fields.join(e.OFS)}}function F(e,t){e.line=t,e.fields=Ee(e,t),e.NF=e.fields.length}function Ne(e,t){if(e.FS=t,t===" ")e.fieldSep=new T(/\s+/);else try{e.fieldSep=A(t)}catch{e.fieldSep=A(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))}}function W(e,t){switch(t){case"FS":return e.FS;case"OFS":return e.OFS;case"ORS":return e.ORS;case"OFMT":return e.OFMT;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 _(e,t,n){switch(t){case"FS":Ne(e,S(n));return;case"OFS":e.OFS=S(n);return;case"ORS":e.ORS=S(n);return;case"OFMT":e.OFMT=S(n);return;case"NR":e.NR=Math.floor(m(n));return;case"NF":{let i=Math.floor(m(n));if(i<e.NF)e.fields=e.fields.slice(0,i),e.line=e.fields.join(e.OFS);else if(i>e.NF){for(;e.fields.length<i;)e.fields.push("");e.line=e.fields.join(e.OFS)}e.NF=i;return}case"FNR":e.FNR=Math.floor(m(n));return;case"FILENAME":e.FILENAME=S(n);return;case"RSTART":e.RSTART=Math.floor(m(n));return;case"RLENGTH":e.RLENGTH=Math.floor(m(n));return;case"SUBSEP":e.SUBSEP=S(n);return}e.vars[t]=n}function x(e,t){let n=t,i=new Set,a=e.arrayAliases.get(n);for(;a!==void 0&&!i.has(n);)i.add(n),n=a,a=e.arrayAliases.get(n);return n}function V(e,t,n){if(t==="ARGV")return e.ARGV[n]??"";if(t==="ENVIRON")return e.ENVIRON[n]??"";let i=x(e,t);return e.arrays[i]?.[n]??""}function ee(e,t,n,i){let a=x(e,t);e.arrays[a]||(e.arrays[a]=Object.create(null)),e.arrays[a][n]=i}function Se(e,t,n){if(t==="ARGV")return e.ARGV[n]!==void 0;if(t==="ENVIRON")return e.ENVIRON[n]!==void 0;let i=x(e,t);return e.arrays[i]?.[n]!==void 0}function ye(e,t,n){let i=x(e,t);e.arrays[i]&&delete e.arrays[i][n]}function Re(e,t){let n=x(e,t);delete e.arrays[n]}var te=null;function me(e){te=e}async function d(e,t){switch(e.coverage?.hit(`awk:expr:${t.type}`),t.type){case"number":return t.value;case"string":return t.value;case"regex":return D(t.pattern,e.line)?1:0;case"field":return tt(e,t);case"variable":return W(e,t.name);case"array_access":return nt(e,t);case"binary":return rt(e,t);case"unary":return at(e,t);case"ternary":return I(await d(e,t.condition))?await d(e,t.consequent):await d(e,t.alternate);case"call":return ot(e,t.name,t.args);case"assignment":return ct(e,t);case"pre_increment":return ut(e,t.operand);case"pre_decrement":return ht(e,t.operand);case"post_increment":return pt(e,t.operand);case"post_decrement":return ft(e,t.operand);case"in":return dt(e,t.key,t.array);case"getline":return Et(e,t.variable,t.file,t.command);case"tuple":return yt(e,t.elements);default:return""}}async function tt(e,t){let n=Math.floor(m(await d(e,t.index)));return $(e,n)}async function nt(e,t){let n=S(await d(e,t.key));return V(e,t.array,n)}async function rt(e,t){let n=t.operator;if(n==="||")return I(await d(e,t.left))||I(await d(e,t.right))?1:0;if(n==="&&")return I(await d(e,t.left))&&I(await d(e,t.right))?1:0;if(n==="~"){let l=await d(e,t.left);t.right.type==="regex"&&e.coverage?.hit("awk:expr:regex");let c=t.right.type==="regex"?t.right.pattern:S(await d(e,t.right));try{return A(c).test(S(l))?1:0}catch{return 0}}if(n==="!~"){let l=await d(e,t.left);t.right.type==="regex"&&e.coverage?.hit("awk:expr:regex");let c=t.right.type==="regex"?t.right.pattern:S(await d(e,t.right));try{return A(c).test(S(l))?0:1}catch{return 1}}let i=await d(e,t.left),a=await d(e,t.right);if(n===" "){let l=S(i)+S(a);if(e.maxOutputSize>0&&l.length>e.maxOutputSize)throw new L(`awk: string concatenation size limit exceeded (${e.maxOutputSize} bytes)`,"string_length",e.output);return l}if(it(n))return st(i,a,n);let s=m(i),o=m(a);return le(s,o,n)}function it(e){return["<","<=",">",">=","==","!="].includes(e)}function st(e,t,n){let i=Z(e),a=Z(t);if(i&&a){let l=m(e),c=m(t);switch(n){case"<":return l<c?1:0;case"<=":return l<=c?1:0;case">":return l>c?1:0;case">=":return l>=c?1:0;case"==":return l===c?1:0;case"!=":return l!==c?1:0}}let s=S(e),o=S(t);switch(n){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 at(e,t){let n=await d(e,t.operand);switch(t.operator){case"!":return I(n)?0:1;case"-":return-m(n);case"+":return+m(n);default:return n}}async function ot(e,t,n){let i=de.get(t);if(i)return i(n,e,{evalExpr:s=>d(e,s)});let a=e.functions.get(t);return a?lt(e,a,n):""}async function lt(e,t,n){if(e.currentRecursionDepth++,e.currentRecursionDepth>e.maxRecursionDepth)throw e.currentRecursionDepth--,new L(`awk: recursion depth exceeded maximum (${e.maxRecursionDepth})`,"recursion",e.output);let i=Object.create(null);for(let o of t.params)i[o]=e.vars[o];let a=[];for(let o=0;o<t.params.length;o++){let l=t.params[o];if(o<n.length){let c=n[o];c.type==="variable"&&(e.arrayAliases.set(l,c.name),a.push(l));let N=await d(e,c);e.vars[l]=N}else e.vars[l]=""}e.hasReturn=!1,e.returnValue=void 0,te&&await te(e,t.body.statements);let s=e.returnValue??"";for(let o of t.params)i[o]!==void 0?e.vars[o]=i[o]:delete e.vars[o];for(let o of a)e.arrayAliases.delete(o);return e.hasReturn=!1,e.returnValue=void 0,e.currentRecursionDepth--,s}async function ct(e,t){let n=await d(e,t.value),i=t.target,a=t.operator,s;if(a==="=")s=n;else{let o;if(i.type==="field"){let N=Math.floor(m(await d(e,i.index)));o=$(e,N)}else if(i.type==="variable")o=W(e,i.name);else{let N=S(await d(e,i.key));o=V(e,i.array,N)}let l=m(o),c=m(n);switch(a){case"+=":s=l+c;break;case"-=":s=l-c;break;case"*=":s=l*c;break;case"/=":s=c!==0?l/c:0;break;case"%=":s=c!==0?l%c:0;break;case"^=":s=l**c;break;default:s=n}}if(i.type==="field"){let o=Math.floor(m(await d(e,i.index)));Y(e,o,s)}else if(i.type==="variable")_(e,i.name,s);else{let o=S(await d(e,i.key));ee(e,i.array,o,s)}return s}async function K(e,t,n,i){let a;if(t.type==="field"){let s=Math.floor(m(await d(e,t.index)));a=m($(e,s)),Y(e,s,a+n)}else if(t.type==="variable")a=m(W(e,t.name)),_(e,t.name,a+n);else{let s=S(await d(e,t.key));a=m(V(e,t.array,s)),ee(e,t.array,s,a+n)}return i?a+n:a}async function ut(e,t){return K(e,t,1,!0)}async function ht(e,t){return K(e,t,-1,!0)}async function pt(e,t){return K(e,t,1,!1)}async function ft(e,t){return K(e,t,-1,!1)}async function dt(e,t,n){let i;if(t.type==="tuple"){e.coverage?.hit("awk:expr:tuple");let a=[];for(let s of t.elements)a.push(S(await d(e,s)));i=a.join(e.SUBSEP)}else i=S(await d(e,t));return Se(e,n,i)?1:0}async function Et(e,t,n,i){if(i)return Nt(e,t,i);if(n)return St(e,t,n);if(!e.lines||e.lineIndex===void 0)return-1;let a=e.lineIndex+1;if(a>=e.lines.length)return 0;let s=e.lines[a];return t?_(e,t,s):F(e,s),e.NR++,e.lineIndex=a,1}async function Nt(e,t,n){if(!e.exec)return-1;let i=S(await d(e,n)),a=`__cmd_${i}`,s=`__cmdi_${i}`,o,l;if(e.vars[a]===void 0)try{o=(await e.exec(i)).stdout.split(`
6
- `),o.length>0&&o[o.length-1]===""&&o.pop(),e.vars[a]=JSON.stringify(o),e.vars[s]=-1,l=-1}catch{return-1}else o=JSON.parse(e.vars[a]),l=e.vars[s];let c=l+1;if(c>=o.length)return 0;let N=o[c];return e.vars[s]=c,t?_(e,t,N):F(e,N),1}async function St(e,t,n){if(!e.fs||!e.cwd)return-1;let i=S(await d(e,n));if(i==="/dev/null")return 0;let a=e.fs.resolvePath(e.cwd,i),s=`__fc_${a}`,o=`__fi_${a}`,l,c;if(e.vars[s]===void 0)try{l=(await e.fs.readFile(a)).split(`
7
- `),l.length>0&&l[l.length-1]===""&&l.pop(),e.vars[s]=JSON.stringify(l),e.vars[o]=-1,c=-1}catch{return-1}else l=JSON.parse(e.vars[s]),c=e.vars[o];let N=c+1;if(N>=l.length)return 0;let v=l[N];return e.vars[o]=N,t?_(e,t,v):F(e,v),1}async function yt(e,t){if(t.length===0)return"";for(let n=0;n<t.length-1;n++)await d(e,t[n]);return d(e,t[t.length-1])}me(G);function ne(e){if(e.maxOutputSize>0&&e.output.length>e.maxOutputSize)throw new L(`awk: output size limit exceeded (${e.maxOutputSize} bytes)`,"string_length",e.output)}async function G(e,t){for(let n of t)if(await P(e,n),Rt(e))break}function Rt(e){return e.shouldExit||e.shouldNext||e.shouldNextFile||e.loopBreak||e.loopContinue||e.hasReturn}async function P(e,t){switch(e.coverage?.hit(`awk:stmt:${t.type}`),t.type){case"block":await G(e,t.statements);break;case"expr_stmt":await d(e,t.expression);break;case"print":await mt(e,t.args,t.output);break;case"printf":await At(e,t.format,t.args,t.output);break;case"if":await gt(e,t);break;case"while":await wt(e,t);break;case"do_while":await It(e,t);break;case"for":await vt(e,t);break;case"for_in":await kt(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(m(await d(e,t.code))):0;break;case"return":e.hasReturn=!0,e.returnValue=t.value?await d(e,t.value):"";break;case"delete":await Ct(e,t.target);break}}async function mt(e,t,n){let i=[];for(let s of t){let o=await d(e,s);typeof o=="number"?Number.isInteger(o)&&Math.abs(o)<Number.MAX_SAFE_INTEGER?i.push(String(o)):i.push(H(e.OFMT,[o])):i.push(S(o))}let a=i.join(e.OFS)+e.ORS;n?await Ae(e,n.redirect,n.file,a):(e.output+=a,ne(e))}async function At(e,t,n,i){let a=S(await d(e,t)),s=[];for(let l of n)s.push(await d(e,l));let o=H(a,s);i?await Ae(e,i.redirect,i.file,o):(e.output+=o,ne(e))}async function Ae(e,t,n,i){if(!e.fs||!e.cwd){e.output+=i,ne(e);return}let a=S(await d(e,n)),s=e.fs.resolvePath(e.cwd,a);t===">"?e.openedFiles.has(s)?await e.fs.appendFile(s,i):(await e.fs.writeFile(s,i),e.openedFiles.add(s)):(e.openedFiles.has(s)||e.openedFiles.add(s),await e.fs.appendFile(s,i))}async function gt(e,t){I(await d(e,t.condition))?await P(e,t.consequent):t.alternate&&await P(e,t.alternate)}async function wt(e,t){let n=0;for(;I(await d(e,t.condition));){if(n++,n>e.maxIterations)throw new L(`awk: while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await P(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function It(e,t){let n=0;do{if(n++,n>e.maxIterations)throw new L(`awk: do-while loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await P(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}while(I(await d(e,t.condition)))}async function vt(e,t){t.init&&await d(e,t.init);let n=0;for(;!t.condition||I(await d(e,t.condition));){if(n++,n>e.maxIterations)throw new L(`awk: for loop exceeded maximum iterations (${e.maxIterations})`,"iterations",e.output);if(e.loopContinue=!1,await P(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break;t.update&&await d(e,t.update)}}async function kt(e,t){let n=e.arrays[t.array];if(n)for(let i of Object.keys(n)){if(e.vars[t.variable]=i,e.loopContinue=!1,await P(e,t.body),e.loopBreak){e.loopBreak=!1;break}if(e.shouldExit||e.shouldNext||e.hasReturn)break}}async function Ct(e,t){if(t.type==="array_access"){let n=S(await d(e,t.key));ye(e,t.array,n)}else t.type==="variable"&&Re(e,t.name)}var U=class{ctx;program=null;rangeStates=[];constructor(t){this.ctx=t}execute(t){this.program=t,this.ctx.output="";for(let n of t.functions)this.ctx.functions.set(n.name,n);this.rangeStates=t.rules.map(()=>!1)}async executeBegin(){if(this.program){for(let t of this.program.rules)if(t.pattern?.type==="begin"&&(await G(this.ctx,t.action.statements),this.ctx.shouldExit))break}}async executeLine(t){if(!(!this.program||this.ctx.shouldExit)){F(this.ctx,t),this.ctx.NR++,this.ctx.FNR++,this.ctx.shouldNext=!1;for(let n=0;n<this.program.rules.length&&!(this.ctx.shouldExit||this.ctx.shouldNext||this.ctx.shouldNextFile);n++){let i=this.program.rules[n];i.pattern?.type==="begin"||i.pattern?.type==="end"||await this.matchesRule(i,n)&&await G(this.ctx,i.action.statements)}}}async executeEnd(){if(this.program&&!this.ctx.inEndBlock){this.ctx.inEndBlock=!0,this.ctx.shouldExit=!1;for(let t of this.program.rules)if(t.pattern?.type==="end"&&(await G(this.ctx,t.action.statements),this.ctx.shouldExit))break;this.ctx.inEndBlock=!1}}getOutput(){return this.ctx.output}getExitCode(){return this.ctx.exitCode}getContext(){return this.ctx}async matchesRule(t,n){let i=t.pattern;if(!i)return!0;switch(i.type){case"begin":case"end":return!1;case"regex_pattern":return D(i.pattern,this.ctx.line);case"expr_pattern":return I(await d(this.ctx,i.expression));case"range":{let a=await this.matchPattern(i.start),s=await this.matchPattern(i.end);return this.rangeStates[n]?(s&&(this.rangeStates[n]=!1),!0):a?(this.rangeStates[n]=!0,s&&(this.rangeStates[n]=!1),!0):!1}default:return!1}}async matchPattern(t){switch(t.type){case"regex_pattern":return D(t.pattern,this.ctx.line);case"expr_pattern":return I(await d(this.ctx,t.expression));default:return!1}}};var r;(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"})(r||(r={}));var Ot=new Map([["BEGIN",r.BEGIN],["END",r.END],["if",r.IF],["else",r.ELSE],["while",r.WHILE],["do",r.DO],["for",r.FOR],["in",r.IN],["break",r.BREAK],["continue",r.CONTINUE],["next",r.NEXT],["nextfile",r.NEXTFILE],["exit",r.EXIT],["return",r.RETURN],["delete",r.DELETE],["function",r.FUNCTION],["print",r.PRINT],["printf",r.PRINTF],["getline",r.GETLINE]]);function bt(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 X=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 n=this.nextToken();n&&(t.push(n),this.lastTokenType=n.type)}return t.push(this.makeToken(r.EOF,"")),t}makeToken(t,n){return{type:t,value:n,line:this.line,column:this.column}}peek(t=0){return this.input[this.pos+t]||""}advance(){let t=this.input[this.pos++]||"";return t===`
8
- `?(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)===`
9
- `)this.advance(),this.advance();else break;else if(t==="#")for(;this.pos<this.input.length&&this.peek()!==`
10
- `;)this.advance();else break}}nextToken(){if(this.skipWhitespace(),this.pos>=this.input.length)return null;let t=this.line,n=this.column,i=this.peek();return i===`
11
- `?(this.advance(),{type:r.NEWLINE,value:`
12
- `,line:t,column:n}):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,r.NEWLINE,r.SEMICOLON,r.LBRACE,r.RBRACE,r.LPAREN,r.LBRACKET,r.COMMA,r.ASSIGN,r.PLUS_ASSIGN,r.MINUS_ASSIGN,r.STAR_ASSIGN,r.SLASH_ASSIGN,r.PERCENT_ASSIGN,r.CARET_ASSIGN,r.AND,r.OR,r.NOT,r.MATCH,r.NOT_MATCH,r.QUESTION,r.COLON,r.LT,r.GT,r.LE,r.GE,r.EQ,r.NE,r.PLUS,r.MINUS,r.STAR,r.PERCENT,r.CARET,r.PRINT,r.PRINTF,r.IF,r.WHILE,r.DO,r.FOR,r.RETURN]).has(this.lastTokenType)}readString(){let t=this.line,n=this.column;this.advance();let i="";for(;this.pos<this.input.length&&this.peek()!=='"';)if(this.peek()==="\\"){this.advance();let a=this.advance();switch(a){case"n":i+=`
13
- `;break;case"t":i+=" ";break;case"r":i+="\r";break;case"f":i+="\f";break;case"b":i+="\b";break;case"v":i+="\v";break;case"a":i+="\x07";break;case"\\":i+="\\";break;case'"':i+='"';break;case"/":i+="/";break;case"x":{let s="";for(;s.length<2&&/[0-9a-fA-F]/.test(this.peek());)s+=this.advance();s.length>0?i+=String.fromCharCode(parseInt(s,16)):i+="x";break}default:if(/[0-7]/.test(a)){let s=a;for(;s.length<3&&/[0-7]/.test(this.peek());)s+=this.advance();i+=String.fromCharCode(parseInt(s,8))}else i+=a}}else i+=this.advance();return this.peek()==='"'&&this.advance(),{type:r.STRING,value:i,line:t,column:n}}readRegex(){let t=this.line,n=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()===`
14
- `)break;i+=this.advance()}return this.peek()==="/"&&this.advance(),i=bt(i),{type:r.REGEX,value:i,line:t,column:n}}readNumber(){let t=this.line,n=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:r.NUMBER,value:parseFloat(i),line:t,column:n}}readIdentifier(){let t=this.line,n=this.column,i="";for(;this.isAlphaNumeric(this.peek())||this.peek()==="_";)i+=this.advance();let a=Ot.get(i);return a!==void 0?{type:a,value:i,line:t,column:n}:{type:r.IDENT,value:i,line:t,column:n}}readOperator(){let t=this.line,n=this.column,i=this.advance(),a=this.peek();switch(i){case"+":return a==="+"?(this.advance(),{type:r.INCREMENT,value:"++",line:t,column:n}):a==="="?(this.advance(),{type:r.PLUS_ASSIGN,value:"+=",line:t,column:n}):{type:r.PLUS,value:"+",line:t,column:n};case"-":return a==="-"?(this.advance(),{type:r.DECREMENT,value:"--",line:t,column:n}):a==="="?(this.advance(),{type:r.MINUS_ASSIGN,value:"-=",line:t,column:n}):{type:r.MINUS,value:"-",line:t,column:n};case"*":return a==="*"?(this.advance(),{type:r.CARET,value:"**",line:t,column:n}):a==="="?(this.advance(),{type:r.STAR_ASSIGN,value:"*=",line:t,column:n}):{type:r.STAR,value:"*",line:t,column:n};case"/":return a==="="?(this.advance(),{type:r.SLASH_ASSIGN,value:"/=",line:t,column:n}):{type:r.SLASH,value:"/",line:t,column:n};case"%":return a==="="?(this.advance(),{type:r.PERCENT_ASSIGN,value:"%=",line:t,column:n}):{type:r.PERCENT,value:"%",line:t,column:n};case"^":return a==="="?(this.advance(),{type:r.CARET_ASSIGN,value:"^=",line:t,column:n}):{type:r.CARET,value:"^",line:t,column:n};case"=":return a==="="?(this.advance(),{type:r.EQ,value:"==",line:t,column:n}):{type:r.ASSIGN,value:"=",line:t,column:n};case"!":return a==="="?(this.advance(),{type:r.NE,value:"!=",line:t,column:n}):a==="~"?(this.advance(),{type:r.NOT_MATCH,value:"!~",line:t,column:n}):{type:r.NOT,value:"!",line:t,column:n};case"<":return a==="="?(this.advance(),{type:r.LE,value:"<=",line:t,column:n}):{type:r.LT,value:"<",line:t,column:n};case">":return a==="="?(this.advance(),{type:r.GE,value:">=",line:t,column:n}):a===">"?(this.advance(),{type:r.APPEND,value:">>",line:t,column:n}):{type:r.GT,value:">",line:t,column:n};case"&":return a==="&"?(this.advance(),{type:r.AND,value:"&&",line:t,column:n}):{type:r.IDENT,value:"&",line:t,column:n};case"|":return a==="|"?(this.advance(),{type:r.OR,value:"||",line:t,column:n}):{type:r.PIPE,value:"|",line:t,column:n};case"~":return{type:r.MATCH,value:"~",line:t,column:n};case"?":return{type:r.QUESTION,value:"?",line:t,column:n};case":":return{type:r.COLON,value:":",line:t,column:n};case",":return{type:r.COMMA,value:",",line:t,column:n};case";":return{type:r.SEMICOLON,value:";",line:t,column:n};case"(":return{type:r.LPAREN,value:"(",line:t,column:n};case")":return{type:r.RPAREN,value:")",line:t,column:n};case"{":return{type:r.LBRACE,value:"{",line:t,column:n};case"}":return{type:r.RBRACE,value:"}",line:t,column:n};case"[":return{type:r.LBRACKET,value:"[",line:t,column:n};case"]":return{type:r.RBRACKET,value:"]",line:t,column:n};case"$":return{type:r.DOLLAR,value:"$",line:t,column:n};default:return{type:r.IDENT,value:i,line:t,column:n}}}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={LPAREN:"LPAREN",RPAREN:"RPAREN",QUESTION:"QUESTION",NEWLINE:"NEWLINE",SEMICOLON:"SEMICOLON",RBRACE:"RBRACE",COMMA:"COMMA",PIPE:"PIPE",GT:"GT",APPEND:"APPEND",AND:"AND",OR:"OR",ASSIGN:"ASSIGN",PLUS_ASSIGN:"PLUS_ASSIGN",MINUS_ASSIGN:"MINUS_ASSIGN",STAR_ASSIGN:"STAR_ASSIGN",SLASH_ASSIGN:"SLASH_ASSIGN",PERCENT_ASSIGN:"PERCENT_ASSIGN",CARET_ASSIGN:"CARET_ASSIGN",RBRACKET:"RBRACKET",COLON:"COLON",IN:"IN",PRINT:"PRINT",PRINTF:"PRINTF",IDENT:"IDENT",LT:"LT",LE:"LE",GE:"GE",EQ:"EQ",NE:"NE",MATCH:"MATCH",NOT_MATCH:"NOT_MATCH",NUMBER:"NUMBER",STRING:"STRING",DOLLAR:"DOLLAR",NOT:"NOT",MINUS:"MINUS",PLUS:"PLUS",INCREMENT:"INCREMENT",DECREMENT:"DECREMENT"};function ke(e){e.expect(u.PRINT);let t=[];if(e.check(u.NEWLINE)||e.check(u.SEMICOLON)||e.check(u.RBRACE)||e.check(u.PIPE)||e.check(u.GT)||e.check(u.APPEND))t.push({type:"field",index:{type:"number",value:0}});else for(t.push(j(e));e.check(u.COMMA);)e.advance(),t.push(j(e));let n;return e.check(u.GT)?(e.advance(),n={redirect:">",file:e.parsePrimary()}):e.check(u.APPEND)&&(e.advance(),n={redirect:">>",file:e.parsePrimary()}),{type:"print",args:t,output:n}}function j(e){return Lt(e)?re(e,!0):re(e,!1)}function re(e,t){let n=t?e.parseTernary():Mt(e);if(e.match(u.ASSIGN,u.PLUS_ASSIGN,u.MINUS_ASSIGN,u.STAR_ASSIGN,u.SLASH_ASSIGN,u.PERCENT_ASSIGN,u.CARET_ASSIGN)){let i=e.advance(),a=re(e,t);if(n.type!=="variable"&&n.type!=="field"&&n.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:new Map([["=","="],["+=","+="],["-=","-="],["*=","*="],["/=","/="],["%=","%="],["^=","^="]]).get(i.value)??"=",target:n,value:a}}return n}function Lt(e){let t=0,n=e.pos;for(;n<e.tokens.length;){let i=e.tokens[n];if(i.type===u.LPAREN&&t++,i.type===u.RPAREN&&t--,i.type===u.QUESTION&&t===0)return!0;if(i.type===u.NEWLINE||i.type===u.SEMICOLON||i.type===u.RBRACE||i.type===u.COMMA||i.type===u.PIPE)return!1;n++}return!1}function Mt(e){let t=ge(e);for(;e.check(u.OR);){e.advance();let n=ge(e);t={type:"binary",operator:"||",left:t,right:n}}return t}function ge(e){let t=we(e);for(;e.check(u.AND);){e.advance();let n=we(e);t={type:"binary",operator:"&&",left:t,right:n}}return t}function we(e){let t=Pt(e);if(e.check(u.IN)){e.advance();let n=String(e.expect(u.IDENT).value);return{type:"in",key:t,array:n}}return t}function Pt(e){let t=Ie(e);for(;Tt(e)&&!Ft(e);){let n=Ie(e);t={type:"binary",operator:" ",left:t,right:n}}return t}function Ie(e){let t=ve(e);for(;e.match(u.MATCH,u.NOT_MATCH);){let n=e.advance().type===u.MATCH?"~":"!~",i=ve(e);t={type:"binary",operator:n,left:t,right:i}}return t}function ve(e){let t=e.parseAddSub();for(;e.match(u.LT,u.LE,u.GE,u.EQ,u.NE);){let n=e.advance(),i=e.parseAddSub();t={type:"binary",operator:new Map([["<","<"],["<=","<="],[">=",">="],["==","=="],["!=","!="]]).get(n.value)??"==",left:t,right:i}}return t}function Tt(e){return e.match(u.NUMBER,u.STRING,u.IDENT,u.DOLLAR,u.LPAREN,u.NOT,u.MINUS,u.PLUS,u.INCREMENT,u.DECREMENT)}function Ft(e){return e.match(u.AND,u.OR,u.QUESTION,u.ASSIGN,u.PLUS_ASSIGN,u.MINUS_ASSIGN,u.STAR_ASSIGN,u.SLASH_ASSIGN,u.PERCENT_ASSIGN,u.CARET_ASSIGN,u.COMMA,u.SEMICOLON,u.NEWLINE,u.RBRACE,u.RPAREN,u.RBRACKET,u.COLON,u.PIPE,u.APPEND,u.GT,u.IN)}function Ce(e){e.expect(u.PRINTF);let t=e.check(u.LPAREN);t&&(e.advance(),e.skipNewlines());let n=t?e.parseExpression():j(e),i=[];for(;e.check(u.COMMA);)e.advance(),t&&e.skipNewlines(),i.push(t?e.parseExpression():j(e));t&&(e.skipNewlines(),e.expect(u.RPAREN));let a;return e.check(u.GT)?(e.advance(),a={redirect:">",file:e.parsePrimary()}):e.check(u.APPEND)&&(e.advance(),a={redirect:">>",file:e.parsePrimary()}),{type:"printf",format:n,args:i,output:a}}var z=class{tokens=[];pos=0;parse(t){let n=new X(t);return this.tokens=n.tokenize(),this.pos=0,this.parseProgram()}setPos(t){this.pos=t}current(){return this.tokens[this.pos]||{type:r.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,n){if(!this.check(t)){let i=this.current();throw new Error(n||`Expected ${t}, got ${i.type} at line ${i.line}:${i.column}`)}return this.advance()}skipNewlines(){for(;this.check(r.NEWLINE);)this.advance()}skipTerminators(){for(;this.check(r.NEWLINE)||this.check(r.SEMICOLON);)this.advance()}parseProgram(){let t=[],n=[];for(this.skipNewlines();!this.check(r.EOF)&&(this.skipNewlines(),!this.check(r.EOF));)this.check(r.FUNCTION)?t.push(this.parseFunction()):n.push(this.parseRule()),this.skipTerminators();return{functions:t,rules:n}}parseFunction(){this.expect(r.FUNCTION);let t=this.expect(r.IDENT).value;this.expect(r.LPAREN);let n=[];if(!this.check(r.RPAREN))for(n.push(this.expect(r.IDENT).value);this.check(r.COMMA);)this.advance(),n.push(this.expect(r.IDENT).value);this.expect(r.RPAREN),this.skipNewlines();let i=this.parseBlock();return{name:t,params:n,body:i}}parseRule(){let t;if(this.check(r.BEGIN))this.advance(),t={type:"begin"};else if(this.check(r.END))this.advance(),t={type:"end"};else if(this.check(r.LBRACE))t=void 0;else if(this.check(r.REGEX)){let i=this.advance();if(this.check(r.AND)||this.check(r.OR)){let a={type:"binary",operator:"~",left:{type:"field",index:{type:"number",value:0}},right:{type:"regex",pattern:i.value}};t={type:"expr_pattern",expression:this.parseLogicalOrRest(a)}}else{let a={type:"regex_pattern",pattern:i.value};if(this.check(r.COMMA)){this.advance();let s;this.check(r.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(r.COMMA)){this.advance();let s;this.check(r.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 n;return this.check(r.LBRACE)?n=this.parseBlock():n={type:"block",statements:[{type:"print",args:[{type:"field",index:{type:"number",value:0}}]}]},{pattern:t,action:n}}parseBlock(){this.expect(r.LBRACE),this.skipNewlines();let t=[];for(;!this.check(r.RBRACE)&&!this.check(r.EOF);)t.push(this.parseStatement()),this.skipTerminators();return this.expect(r.RBRACE),{type:"block",statements:t}}parseStatement(){if(this.check(r.SEMICOLON)||this.check(r.NEWLINE))return this.advance(),{type:"block",statements:[]};if(this.check(r.LBRACE))return this.parseBlock();if(this.check(r.IF))return this.parseIf();if(this.check(r.WHILE))return this.parseWhile();if(this.check(r.DO))return this.parseDoWhile();if(this.check(r.FOR))return this.parseFor();if(this.check(r.BREAK))return this.advance(),{type:"break"};if(this.check(r.CONTINUE))return this.advance(),{type:"continue"};if(this.check(r.NEXT))return this.advance(),{type:"next"};if(this.check(r.NEXTFILE))return this.advance(),{type:"nextfile"};if(this.check(r.EXIT)){this.advance();let n;return!this.check(r.NEWLINE)&&!this.check(r.SEMICOLON)&&!this.check(r.RBRACE)&&!this.check(r.EOF)&&(n=this.parseExpression()),{type:"exit",code:n}}if(this.check(r.RETURN)){this.advance();let n;return!this.check(r.NEWLINE)&&!this.check(r.SEMICOLON)&&!this.check(r.RBRACE)&&!this.check(r.EOF)&&(n=this.parseExpression()),{type:"return",value:n}}if(this.check(r.DELETE)){this.advance();let n=this.parsePrimary();if(n.type!=="array_access"&&n.type!=="variable")throw new Error("delete requires array element or array");return{type:"delete",target:n}}return this.check(r.PRINT)?ke(this):this.check(r.PRINTF)?Ce(this):{type:"expr_stmt",expression:this.parseExpression()}}parseIf(){this.expect(r.IF),this.expect(r.LPAREN);let t=this.parseExpression();this.expect(r.RPAREN),this.skipNewlines();let n=this.parseStatement();this.skipTerminators();let i;return this.check(r.ELSE)&&(this.advance(),this.skipNewlines(),i=this.parseStatement()),{type:"if",condition:t,consequent:n,alternate:i}}parseWhile(){this.expect(r.WHILE),this.expect(r.LPAREN);let t=this.parseExpression();this.expect(r.RPAREN),this.skipNewlines();let n=this.parseStatement();return{type:"while",condition:t,body:n}}parseDoWhile(){this.expect(r.DO),this.skipNewlines();let t=this.parseStatement();this.skipNewlines(),this.expect(r.WHILE),this.expect(r.LPAREN);let n=this.parseExpression();return this.expect(r.RPAREN),{type:"do_while",body:t,condition:n}}parseFor(){if(this.expect(r.FOR),this.expect(r.LPAREN),this.check(r.IDENT)){let s=this.advance();if(this.check(r.IN)){this.advance();let o=this.expect(r.IDENT).value;this.expect(r.RPAREN),this.skipNewlines();let l=this.parseStatement();return{type:"for_in",variable:s.value,array:o,body:l}}this.pos--}let t;this.check(r.SEMICOLON)||(t=this.parseExpression()),this.expect(r.SEMICOLON);let n;this.check(r.SEMICOLON)||(n=this.parseExpression()),this.expect(r.SEMICOLON);let i;this.check(r.RPAREN)||(i=this.parseExpression()),this.expect(r.RPAREN),this.skipNewlines();let a=this.parseStatement();return{type:"for",init:t,condition:n,update:i,body:a}}parseExpression(){return this.parseAssignment()}parseAssignment(){let t=this.parseTernary();if(this.match(r.ASSIGN,r.PLUS_ASSIGN,r.MINUS_ASSIGN,r.STAR_ASSIGN,r.SLASH_ASSIGN,r.PERCENT_ASSIGN,r.CARET_ASSIGN)){let n=this.advance(),i=this.parseAssignment();if(t.type!=="variable"&&t.type!=="field"&&t.type!=="array_access")throw new Error("Invalid assignment target");return{type:"assignment",operator:{"=":"=","+=":"+=","-=":"-=","*=":"*=","/=":"/=","%=":"%=","^=":"^="}[n.value],target:t,value:i}}return t}parseTernary(){let t=this.parsePipeGetline();if(this.check(r.QUESTION)){this.advance();let n=this.parseExpression();this.expect(r.COLON);let i=this.parseExpression();t={type:"ternary",condition:t,consequent:n,alternate:i}}return t}parsePipeGetline(){let t=this.parseOr();if(this.check(r.PIPE)){if(this.advance(),!this.check(r.GETLINE))throw new Error("Expected 'getline' after '|' in expression context");this.advance();let n;return this.check(r.IDENT)&&(n=this.advance().value),{type:"getline",command:t,variable:n}}return t}parseOr(){let t=this.parseAnd();for(;this.check(r.OR);){this.advance();let n=this.parseAnd();t={type:"binary",operator:"||",left:t,right:n}}return t}parseLogicalOrRest(t){for(t=this.parseLogicalAndRest(t);this.check(r.OR);){this.advance();let n=this.parseAnd();t={type:"binary",operator:"||",left:t,right:n}}return t}parseLogicalAndRest(t){for(;this.check(r.AND);){this.advance();let n=this.parseIn();t={type:"binary",operator:"&&",left:t,right:n}}return t}parseAnd(){let t=this.parseIn();for(;this.check(r.AND);){this.advance();let n=this.parseIn();t={type:"binary",operator:"&&",left:t,right:n}}return t}parseIn(){let t=this.parseConcatenation();if(this.check(r.IN)){this.advance();let n=this.expect(r.IDENT).value;return{type:"in",key:t,array:n}}return t}parseConcatenation(){let t=this.parseMatch();for(;this.canStartExpression()&&!this.isConcatTerminator();){let n=this.parseMatch();t={type:"binary",operator:" ",left:t,right:n}}return t}parseMatch(){let t=this.parseComparison();for(;this.match(r.MATCH,r.NOT_MATCH);){let n=this.advance().type===r.MATCH?"~":"!~",i=this.parseComparison();t={type:"binary",operator:n,left:t,right:i}}return t}parseComparison(){let t=this.parseAddSub();for(;this.match(r.LT,r.LE,r.GT,r.GE,r.EQ,r.NE);){let n=this.advance(),i=this.parseAddSub();t={type:"binary",operator:new Map([["<","<"],["<=","<="],[">",">"],[">=",">="],["==","=="],["!=","!="]]).get(n.value)??"==",left:t,right:i}}return t}canStartExpression(){return this.match(r.NUMBER,r.STRING,r.IDENT,r.DOLLAR,r.LPAREN,r.NOT,r.MINUS,r.PLUS,r.INCREMENT,r.DECREMENT)}isConcatTerminator(){return this.match(r.AND,r.OR,r.QUESTION,r.ASSIGN,r.PLUS_ASSIGN,r.MINUS_ASSIGN,r.STAR_ASSIGN,r.SLASH_ASSIGN,r.PERCENT_ASSIGN,r.CARET_ASSIGN,r.COMMA,r.SEMICOLON,r.NEWLINE,r.RBRACE,r.RPAREN,r.RBRACKET,r.COLON,r.PIPE,r.APPEND,r.IN)}parseAddSub(){let t=this.parseMulDiv();for(;this.match(r.PLUS,r.MINUS);){let n=this.advance().value,i=this.parseMulDiv();t={type:"binary",operator:n,left:t,right:i}}return t}parseMulDiv(){let t=this.parseUnary();for(;this.match(r.STAR,r.SLASH,r.PERCENT);){let n=this.advance(),i=this.parseUnary();t={type:"binary",operator:new Map([["*","*"],["/","/"],["%","%"]]).get(n.value)??"*",left:t,right:i}}return t}parseUnary(){if(this.check(r.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(r.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(r.NOT,r.MINUS,r.PLUS)){let t=this.advance().value,n=this.parseUnary();return{type:"unary",operator:t,operand:n}}return this.parsePower()}parsePower(){let t=this.parsePostfix();if(this.check(r.CARET)){this.advance();let n=this.parsePower();t={type:"binary",operator:"^",left:t,right:n}}return t}parsePostfix(){let t=this.parsePrimary();if(this.check(r.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(r.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}parseFieldIndex(){if(this.check(r.INCREMENT)){this.advance();let t=this.parseFieldIndex();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(r.DECREMENT)){this.advance();let t=this.parseFieldIndex();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(r.NOT,r.MINUS,r.PLUS)){let t=this.advance().value,n=this.parseFieldIndex();return{type:"unary",operator:t,operand:n}}return this.parseFieldIndexPower()}parseFieldIndexPower(){let t=this.parseFieldIndexPrimary();if(this.check(r.CARET)){this.advance();let n=this.parseFieldIndexPower();t={type:"binary",operator:"^",left:t,right:n}}return t}parseFieldIndexPrimary(){if(this.check(r.NUMBER))return{type:"number",value:this.advance().value};if(this.check(r.STRING))return{type:"string",value:this.advance().value};if(this.check(r.DOLLAR))return this.advance(),{type:"field",index:this.parseFieldIndex()};if(this.check(r.LPAREN)){this.advance();let t=this.parseExpression();return this.expect(r.RPAREN),t}if(this.check(r.IDENT)){let t=this.advance().value;if(this.check(r.LPAREN)){this.advance();let n=[];if(!this.check(r.RPAREN))for(n.push(this.parseExpression());this.check(r.COMMA);)this.advance(),n.push(this.parseExpression());return this.expect(r.RPAREN),{type:"call",name:t,args:n}}if(this.check(r.LBRACKET)){this.advance();let n=this.parseExpression();if(this.check(r.COMMA)){let i=[n];for(;this.check(r.COMMA);)this.advance(),i.push(this.parseExpression());this.expect(r.RBRACKET);let a=i.reduce((s,o)=>({type:"binary",operator:" ",left:{type:"binary",operator:" ",left:s,right:{type:"variable",name:"SUBSEP"}},right:o}));return{type:"array_access",array:t,key:a}}return this.expect(r.RBRACKET),{type:"array_access",array:t,key:n}}return{type:"variable",name:t}}throw new Error(`Unexpected token in field index: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}parsePrimary(){if(this.check(r.NUMBER))return{type:"number",value:this.advance().value};if(this.check(r.STRING))return{type:"string",value:this.advance().value};if(this.check(r.REGEX))return{type:"regex",pattern:this.advance().value};if(this.check(r.DOLLAR))return this.advance(),{type:"field",index:this.parseFieldIndex()};if(this.check(r.LPAREN)){this.advance();let t=this.parseExpression();if(this.check(r.COMMA)){let n=[t];for(;this.check(r.COMMA);)this.advance(),n.push(this.parseExpression());return this.expect(r.RPAREN),{type:"tuple",elements:n}}return this.expect(r.RPAREN),t}if(this.check(r.GETLINE)){this.advance();let t,n;return this.check(r.IDENT)&&(t=this.advance().value),this.check(r.LT)&&(this.advance(),n=this.parsePrimary()),{type:"getline",variable:t,file:n}}if(this.check(r.IDENT)){let t=this.advance().value;if(this.check(r.LPAREN)){this.advance();let n=[];if(this.skipNewlines(),!this.check(r.RPAREN))for(n.push(this.parseExpression());this.check(r.COMMA);)this.advance(),this.skipNewlines(),n.push(this.parseExpression());return this.skipNewlines(),this.expect(r.RPAREN),{type:"call",name:t,args:n}}if(this.check(r.LBRACKET)){this.advance();let n=[this.parseExpression()];for(;this.check(r.COMMA);)this.advance(),n.push(this.parseExpression());this.expect(r.RBRACKET);let i;if(n.length===1)i=n[0];else{i=n[0];for(let a=1;a<n.length;a++)i={type:"binary",operator:" ",left:{type:"binary",operator:" ",left:i,right:{type:"variable",name:"SUBSEP"}},right:n[a]}}return{type:"array_access",array:t,key:i}}return{type:"variable",name:t}}throw new Error(`Unexpected token: ${this.current().type} at line ${this.current().line}:${this.current().column}`)}};var _t={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"]},bn={name:"awk",async execute(e,t){if(ae(e))return se(_t);let n=new T(/\s+/),i=" ",a=Object.create(null),s=0;for(let h=0;h<e.length;h++){let p=e[h];if(p==="-F"&&h+1<e.length)i=ie(e[++h]),n=Oe(i),s=h+1;else if(p.startsWith("-F"))i=ie(p.slice(2)),n=Oe(i),s=h+1;else if(p==="-v"&&h+1<e.length){let f=e[++h],R=f.indexOf("=");if(R>0){let C=f.slice(0,R),Le=ie(f.slice(R+1));a[C]=Le}s=h+1}else{if(p.startsWith("--"))return Q("awk",p);if(p.startsWith("-")&&p.length>1){let f=p[1];if(f!=="F"&&f!=="v")return Q("awk",`-${f}`);s=h+1}else if(!p.startsWith("-")){s=h;break}}}if(s>=e.length)return{stdout:"",stderr:`awk: missing program
15
- `,exitCode:1};let o=e[s],l=e.slice(s+1),c=new z,N;try{N=c.parse(o)}catch(h){return{stdout:"",stderr:`awk: ${h instanceof Error?h.message:String(h)}
16
- `,exitCode:1}}let v={readFile:t.fs.readFile.bind(t.fs),writeFile:t.fs.writeFile.bind(t.fs),appendFile:async(h,p)=>{try{let f=await t.fs.readFile(h);await t.fs.writeFile(h,f+p)}catch{await t.fs.writeFile(h,p)}},resolvePath:t.fs.resolvePath.bind(t.fs)},b=t.exec,y=q({fieldSep:n,maxIterations:t.limits?.maxAwkIterations,maxOutputSize:t.limits?.maxStringLength,fs:v,cwd:t.cwd,exec:b?h=>b(h,{cwd:t.cwd,signal:t.signal}):void 0,coverage:t.coverage});y.FS=i,y.vars=Object.assign(Object.create(null),a),y.ARGC=l.length+1,y.ARGV=Object.create(null),y.ARGV[0]="awk";for(let h=0;h<l.length;h++)y.ARGV[String(h+1)]=l[h];y.ENVIRON=oe(t.env);let k=new U(y);k.execute(N);let g=N.rules.some(h=>h.pattern?.type!=="begin"&&h.pattern?.type!=="end"),E=N.rules.some(h=>h.pattern?.type==="end");try{if(await k.executeBegin(),y.shouldExit)return await k.executeEnd(),{stdout:k.getOutput(),stderr:"",exitCode:k.getExitCode()};if(!g&&!E)return{stdout:k.getOutput(),stderr:"",exitCode:k.getExitCode()};let h=[];if(l.length>0)for(let p of l)try{let f=t.fs.resolvePath(t.cwd,p),C=(await t.fs.readFile(f)).split(`
17
- `);C.length>0&&C[C.length-1]===""&&C.pop(),h.push({filename:p,lines:C})}catch{return{stdout:"",stderr:`awk: ${p}: No such file or directory
18
- `,exitCode:1}}else{let p=t.stdin.split(`
19
- `);p.length>0&&p[p.length-1]===""&&p.pop(),h.push({filename:"",lines:p})}for(let p of h){for(y.FILENAME=p.filename,y.FNR=0,y.lines=p.lines,y.lineIndex=-1,y.shouldNextFile=!1;y.lineIndex<p.lines.length-1&&(y.lineIndex++,await k.executeLine(p.lines[y.lineIndex]),!(y.shouldExit||y.shouldNextFile)););if(y.shouldExit)break}return await k.executeEnd(),{stdout:k.getOutput(),stderr:"",exitCode:k.getExitCode()}}catch(h){let p=h instanceof Error?h.message:String(h),f=h instanceof L?L.EXIT_CODE:2;return{stdout:k.getOutput(),stderr:`awk: ${p}
20
- `,exitCode:f}}}};function ie(e){return e.replace(/\\t/g," ").replace(/\\n/g,`
21
- `).replace(/\\r/g,"\r").replace(/\\b/g,"\b").replace(/\\f/g,"\f").replace(/\\a/g,"\x07").replace(/\\v/g,"\v").replace(/\\\\/g,"\\")}function Oe(e){if(e===" ")return A("\\s+");if(/[[\](){}.*+?^$|\\]/.test(e))try{return A(e)}catch{return A(be(e))}return A(be(e))}function be(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Ln={name:"awk",flags:[{flag:"-F",type:"value",valueHint:"delimiter"},{flag:"-v",type:"value",valueHint:"string"}],stdinType:"text",needsArgs:!0};export{bn as a,Ln as b};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-2SIXTZCJ.js";import"./chunk-SE4C7FJY.js";import"./chunk-KGOUQS5A.js";export{a as exprCommand,b as flagsForFuzzing};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-RYXW3SZQ.js";import"./chunk-EPIOK4SY.js";import"./chunk-UYBH3FNE.js";import"./chunk-4PRVMER6.js";import"./chunk-SE4C7FJY.js";import"./chunk-5WFYIUU2.js";import"./chunk-6KZRLMG3.js";import"./chunk-OBH7XN5N.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as jqCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-4E3LY6YK.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as lnCommand};
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a as A}from"./chunk-IYZRLSTQ.js";import{b as _}from"./chunk-4FNW6LFM.js";import{a as D,b as x,c as C,d as h}from"./chunk-JJHAWOIB.js";import{a as U}from"./chunk-4PRVMER6.js";import{a as I,b as P}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";import{fileURLToPath as b}from"node:url";import{Worker as v}from"node:worker_threads";var c={NOOP:0,READ_FILE:1,WRITE_FILE:2,STAT:3,READDIR:4,MKDIR:5,RM:6,EXISTS:7,APPEND_FILE:8,SYMLINK:9,READLINK:10,LSTAT:11,CHMOD:12,REALPATH:13,WRITE_STDOUT:100,WRITE_STDERR:101,EXIT:102,HTTP_REQUEST:200},a={PENDING:0,READY:1,SUCCESS:2,ERROR:3},l={NONE:0,NOT_FOUND:1,IS_DIRECTORY:2,NOT_DIRECTORY:3,EXISTS:4,PERMISSION_DENIED:5,INVALID_PATH:6,IO_ERROR:7,TIMEOUT:8,NETWORK_ERROR:9,NETWORK_NOT_CONFIGURED:10},r={OP_CODE:0,STATUS:4,PATH_LENGTH:8,DATA_LENGTH:12,RESULT_LENGTH:16,ERROR_CODE:20,FLAGS:24,MODE:28,PATH_BUFFER:32,DATA_BUFFER:4128},p={CONTROL_REGION:32,PATH_BUFFER:4096,DATA_BUFFER:1048576,TOTAL:1052704},R={NONE:0,RECURSIVE:1,FORCE:2,MKDIR_RECURSIVE:1},u={IS_FILE:0,IS_DIRECTORY:1,IS_SYMLINK:2,MODE:4,SIZE:8,MTIME:16,TOTAL:24};function L(){return new C(p.TOTAL)}var m=class{int32View;uint8View;dataView;constructor(t){this.int32View=new Int32Array(t),this.uint8View=new Uint8Array(t),this.dataView=new DataView(t)}getOpCode(){return h.load(this.int32View,r.OP_CODE/4)}setOpCode(t){h.store(this.int32View,r.OP_CODE/4,t)}getStatus(){return h.load(this.int32View,r.STATUS/4)}setStatus(t){h.store(this.int32View,r.STATUS/4,t)}getPathLength(){return h.load(this.int32View,r.PATH_LENGTH/4)}setPathLength(t){h.store(this.int32View,r.PATH_LENGTH/4,t)}getDataLength(){return h.load(this.int32View,r.DATA_LENGTH/4)}setDataLength(t){h.store(this.int32View,r.DATA_LENGTH/4,t)}getResultLength(){return h.load(this.int32View,r.RESULT_LENGTH/4)}setResultLength(t){h.store(this.int32View,r.RESULT_LENGTH/4,t)}getErrorCode(){return h.load(this.int32View,r.ERROR_CODE/4)}setErrorCode(t){h.store(this.int32View,r.ERROR_CODE/4,t)}getFlags(){return h.load(this.int32View,r.FLAGS/4)}setFlags(t){h.store(this.int32View,r.FLAGS/4,t)}getMode(){return h.load(this.int32View,r.MODE/4)}setMode(t){h.store(this.int32View,r.MODE/4,t)}getPath(){let t=this.getPathLength(),e=this.uint8View.slice(r.PATH_BUFFER,r.PATH_BUFFER+t);return new TextDecoder().decode(e)}setPath(t){let e=new TextEncoder().encode(t);if(e.length>p.PATH_BUFFER)throw new Error(`Path too long: ${e.length} > ${p.PATH_BUFFER}`);this.uint8View.set(e,r.PATH_BUFFER),this.setPathLength(e.length)}getData(){let t=this.getDataLength();return this.uint8View.slice(r.DATA_BUFFER,r.DATA_BUFFER+t)}setData(t){if(t.length>p.DATA_BUFFER)throw new Error(`Data too large: ${t.length} > ${p.DATA_BUFFER}`);this.uint8View.set(t,r.DATA_BUFFER),this.setDataLength(t.length)}getDataAsString(){let t=this.getData();return new TextDecoder().decode(t)}setDataFromString(t){let e=new TextEncoder().encode(t);this.setData(e)}getResult(){let t=this.getResultLength();return this.uint8View.slice(r.DATA_BUFFER,r.DATA_BUFFER+t)}setResult(t){if(t.length>p.DATA_BUFFER)throw new Error(`Result too large: ${t.length} > ${p.DATA_BUFFER}`);this.uint8View.set(t,r.DATA_BUFFER),this.setResultLength(t.length)}getResultAsString(){let t=this.getResult();return new TextDecoder().decode(t)}setResultFromString(t){let e=new TextEncoder().encode(t);this.setResult(e)}encodeStat(t){this.uint8View[r.DATA_BUFFER+u.IS_FILE]=t.isFile?1:0,this.uint8View[r.DATA_BUFFER+u.IS_DIRECTORY]=t.isDirectory?1:0,this.uint8View[r.DATA_BUFFER+u.IS_SYMLINK]=t.isSymbolicLink?1:0,this.dataView.setInt32(r.DATA_BUFFER+u.MODE,t.mode,!0);let e=Math.min(t.size,Number.MAX_SAFE_INTEGER);this.dataView.setFloat64(r.DATA_BUFFER+u.SIZE,e,!0),this.dataView.setFloat64(r.DATA_BUFFER+u.MTIME,t.mtime.getTime(),!0),this.setResultLength(u.TOTAL)}decodeStat(){return{isFile:this.uint8View[r.DATA_BUFFER+u.IS_FILE]===1,isDirectory:this.uint8View[r.DATA_BUFFER+u.IS_DIRECTORY]===1,isSymbolicLink:this.uint8View[r.DATA_BUFFER+u.IS_SYMLINK]===1,mode:this.dataView.getInt32(r.DATA_BUFFER+u.MODE,!0),size:this.dataView.getFloat64(r.DATA_BUFFER+u.SIZE,!0),mtime:new Date(this.dataView.getFloat64(r.DATA_BUFFER+u.MTIME,!0))}}waitForReady(t){return h.wait(this.int32View,r.STATUS/4,a.PENDING,t)}waitForReadyAsync(t){return h.waitAsync(this.int32View,r.STATUS/4,a.PENDING,t)}async waitUntilReady(t){let e=Date.now();for(;;){let s=this.getStatus();if(s===a.READY)return!0;let o=Date.now()-e;if(o>=t)return!1;let n=t-o,d=h.waitAsync(this.int32View,r.STATUS/4,s,n);if(d.async&&await d.value==="timed-out")return!1}}waitForResult(t){return h.wait(this.int32View,r.STATUS/4,a.READY,t)}notify(){return h.notify(this.int32View,r.STATUS/4)}reset(){this.setOpCode(c.NOOP),this.setStatus(a.PENDING),this.setPathLength(0),this.setDataLength(0),this.setResultLength(0),this.setErrorCode(l.NONE),this.setFlags(R.NONE),this.setMode(0)}};var g=class{fs;cwd;secureFetch;maxOutputSize;protocol;running=!1;output={stdout:"",stderr:"",exitCode:0};outputLimitExceeded=!1;constructor(t,e,s,o=void 0,n=0){this.fs=e,this.cwd=s,this.secureFetch=o,this.maxOutputSize=n,this.protocol=new m(t)}async run(t){this.running=!0;let e=Date.now();for(;this.running;){let s=Date.now()-e;if(s>=t){this.output.stderr+=`
3
- python3: execution timeout exceeded
4
- `,this.output.exitCode=124;break}let o=t-s;if(!await this.protocol.waitUntilReady(o)){this.output.stderr+=`
5
- python3: execution timeout exceeded
6
- `,this.output.exitCode=124;break}let d=this.protocol.getOpCode();await this.handleOperation(d),this.protocol.notify()}return this.output}stop(){this.running=!1}async handleOperation(t){try{switch(t){case c.READ_FILE:await this.handleReadFile();break;case c.WRITE_FILE:await this.handleWriteFile();break;case c.STAT:await this.handleStat();break;case c.LSTAT:await this.handleLstat();break;case c.READDIR:await this.handleReaddir();break;case c.MKDIR:await this.handleMkdir();break;case c.RM:await this.handleRm();break;case c.EXISTS:await this.handleExists();break;case c.APPEND_FILE:await this.handleAppendFile();break;case c.SYMLINK:await this.handleSymlink();break;case c.READLINK:await this.handleReadlink();break;case c.CHMOD:await this.handleChmod();break;case c.REALPATH:await this.handleRealpath();break;case c.WRITE_STDOUT:this.handleWriteStdout();break;case c.WRITE_STDERR:this.handleWriteStderr();break;case c.EXIT:this.handleExit();break;case c.HTTP_REQUEST:await this.handleHttpRequest();break;default:this.protocol.setErrorCode(l.IO_ERROR),this.protocol.setStatus(a.ERROR)}}catch(e){this.setErrorFromException(e)}}resolvePath(t){return this.fs.resolvePath(this.cwd,t)}async handleReadFile(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readFileBuffer(t);this.protocol.setResult(e),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleWriteFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.writeFile(t,e),this.protocol.setStatus(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleStat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.stat(t);this.protocol.encodeStat(e),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleLstat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.lstat(t);this.protocol.encodeStat(e),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleReaddir(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readdir(t);this.protocol.setResultFromString(JSON.stringify(e)),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleMkdir(){let t=this.resolvePath(this.protocol.getPath()),s=(this.protocol.getFlags()&R.MKDIR_RECURSIVE)!==0;try{await this.fs.mkdir(t,{recursive:s}),this.protocol.setStatus(a.SUCCESS)}catch(o){this.setErrorFromException(o)}}async handleRm(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getFlags(),s=(e&R.RECURSIVE)!==0,o=(e&R.FORCE)!==0;try{await this.fs.rm(t,{recursive:s,force:o}),this.protocol.setStatus(a.SUCCESS)}catch(n){this.setErrorFromException(n)}}async handleExists(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.exists(t);this.protocol.setResult(new Uint8Array([e?1:0])),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleAppendFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.appendFile(t,e),this.protocol.setStatus(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleSymlink(){let t=this.protocol.getPath(),e=this.protocol.getDataAsString(),s=this.resolvePath(t);try{await this.fs.symlink(e,s),this.protocol.setStatus(a.SUCCESS)}catch(o){this.setErrorFromException(o)}}async handleReadlink(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readlink(t);this.protocol.setResultFromString(e),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleChmod(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getMode();try{await this.fs.chmod(t,e),this.protocol.setStatus(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleRealpath(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.realpath(t);this.protocol.setResultFromString(e),this.protocol.setStatus(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}handleWriteStdout(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stdout",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(l.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setStatus(a.ERROR);return}this.protocol.setStatus(a.SUCCESS)}handleWriteStderr(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stderr",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(l.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setStatus(a.ERROR);return}this.protocol.setStatus(a.SUCCESS)}handleExit(){let t=this.protocol.getFlags();this.outputLimitExceeded?this.output.exitCode===0&&(this.output.exitCode=1):this.output.exitCode=t,this.protocol.setStatus(a.SUCCESS),this.running=!1}tryAppendOutput(t,e){return this.outputLimitExceeded?!1:this.maxOutputSize<=0?(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0):this.output.stdout.length+this.output.stderr.length+e.length>this.maxOutputSize?!1:(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0)}appendOutputLimitError(){if(this.maxOutputSize<=0)return;let t=`python3: total output size exceeded (>${this.maxOutputSize} bytes), increase executionLimits.maxOutputSize
7
- `,e=t.length>this.maxOutputSize?t.slice(0,this.maxOutputSize):t;if(this.output.stderr.includes("total output size exceeded"))return;let o=this.output.stdout.length+this.output.stderr.length+e.length-this.maxOutputSize;if(o>0)if(this.output.stdout.length>=o)this.output.stdout=this.output.stdout.slice(0,this.output.stdout.length-o);else{let n=o-this.output.stdout.length;this.output.stdout="",n>=this.output.stderr.length?this.output.stderr="":this.output.stderr=this.output.stderr.slice(0,this.output.stderr.length-n)}this.output.stderr+=e}async handleHttpRequest(){if(!this.secureFetch){this.protocol.setErrorCode(l.NETWORK_NOT_CONFIGURED),this.protocol.setResultFromString("Network access not configured. Enable network in Bash options."),this.protocol.setStatus(a.ERROR);return}let t=this.protocol.getPath(),e=this.protocol.getDataAsString();try{let s=e?JSON.parse(e):{},o=await this.secureFetch(t,{method:s.method,headers:s.headers,body:s.body}),n=JSON.stringify({status:o.status,statusText:o.statusText,headers:o.headers,body:o.body,url:o.url});this.protocol.setResultFromString(n),this.protocol.setStatus(a.SUCCESS)}catch(s){let o=A(s instanceof Error?s.message:String(s));this.protocol.setErrorCode(l.NETWORK_ERROR),this.protocol.setResultFromString(o),this.protocol.setStatus(a.ERROR)}}setErrorFromException(t){let e=t instanceof Error?t.message:String(t),s=A(e),o=l.IO_ERROR,n=e.toLowerCase();n.includes("no such file")||n.includes("not found")||n.includes("enoent")?o=l.NOT_FOUND:n.includes("is a directory")||n.includes("eisdir")?o=l.IS_DIRECTORY:n.includes("not a directory")||n.includes("enotdir")?o=l.NOT_DIRECTORY:n.includes("already exists")||n.includes("eexist")?o=l.EXISTS:(n.includes("permission")||n.includes("eperm")||n.includes("eacces"))&&(o=l.PERMISSION_DENIED),this.protocol.setErrorCode(o),this.protocol.setResultFromString(s),this.protocol.setStatus(a.ERROR)}};var B=3e4,H={name:"python3",summary:"Execute Python code via CPython Emscripten",usage:"python3 [OPTIONS] [-c CODE | -m MODULE | FILE] [ARGS...]",description:["Execute Python code using CPython compiled to WebAssembly via Emscripten.","","This command runs Python in an isolated environment with access to","the virtual filesystem. Standard library modules are available."],options:["-c CODE Execute CODE as Python script","-m MODULE Run library module as a script","--version Show Python version","--help Show this help"],examples:['python3 -c "print(1 + 2)"','python3 -c "import sys; print(sys.version)"',"python3 script.py","python3 script.py arg1 arg2",`echo 'print("hello")' | python3`],notes:["CPython runs in WebAssembly, so execution may be slower than native Python.","Standard library modules are available (no pip install).","Maximum execution time is 30 seconds by default."]};function W(i){let t={code:null,module:null,scriptFile:null,showVersion:!1,scriptArgs:[]};if(i.length===0)return t;let e=i.findIndex(s=>!s.startsWith("-")||s==="-"||s==="--");for(let s=0;s<(e===-1?i.length:e);s++){let o=i[s];if(o==="-c")return s+1>=i.length?{stdout:"",stderr:`python3: option requires an argument -- 'c'
8
- `,exitCode:2}:(t.code=i[s+1],t.scriptArgs=i.slice(s+2),t);if(o==="-m")return s+1>=i.length?{stdout:"",stderr:`python3: option requires an argument -- 'm'
9
- `,exitCode:2}:(t.module=i[s+1],t.scriptArgs=i.slice(s+2),t);if(o==="--version"||o==="-V")return t.showVersion=!0,t;if(o.startsWith("-")&&o!=="-")return{stdout:"",stderr:`python3: unrecognized option '${o}'
10
- `,exitCode:2}}if(e!==-1){let s=i[e];s==="--"?e+1<i.length&&(t.scriptFile=i[e+1],t.scriptArgs=i.slice(e+2)):(t.scriptFile=s,t.scriptArgs=i.slice(e+1))}return t}var O=new WeakMap;function z(i){let t=O.get(i);return t||(t={executionQueue:[],isExecuting:!1},O.set(i,t)),t}function at(){O=new WeakMap}var G=b(new URL("./worker.js",import.meta.url));function $(i){if(!i||typeof i!="object")return{success:!1,error:"Malformed worker response"};let t=i;return t.type==="security-violation"?{success:!1,error:`Security violation: ${typeof t.violation?.type=="string"?t.violation.type:"unknown"}`}:typeof t.success!="boolean"?{success:!1,error:"Malformed worker response: missing success flag"}:t.success?{success:!0}:{success:!1,error:typeof t.error=="string"&&t.error.length>0?t.error:"Worker execution failed"}}function f(i){if(i.isExecuting||i.executionQueue.length===0)return;for(;i.executionQueue.length>0&&i.executionQueue[0].canceled;)i.executionQueue.shift();if(i.executionQueue.length===0)return;let t=i.executionQueue.shift();if(!t)return;i.isExecuting=!0;let e=_.runTrusted(()=>new v(G,{workerData:t.input}));t.workerRef&&(t.workerRef.current=e),e.on("message",s=>{t.resolve($(s)),i.isExecuting=!1,e.terminate(),f(i)}),e.on("error",s=>{t.resolve({success:!1,error:s.message}),i.isExecuting=!1,f(i)}),e.on("exit",()=>{i.isExecuting&&(t.resolve({success:!1,error:"Worker exited unexpectedly"}),i.isExecuting=!1,f(i))})}async function Y(i,t,e,s=[]){let o=L(),n=new g(o,t.fs,t.cwd,t.fetch,t.limits?.maxOutputSize??0),d=t.limits?.maxPythonTimeoutMs??B,w=z(t.fs),N={sharedBuffer:o,pythonCode:i,cwd:t.cwd,env:U(t.env),args:s,scriptPath:e},T={current:null},V=new Promise(E=>{let y={input:N,resolve:()=>{},workerRef:T},M=D(()=>{T.current?T.current.terminate():y.canceled=!0,E({success:!1,error:`Execution timeout: exceeded ${d}ms limit`})},d);y.resolve=k=>{x(M),E(k)},w.executionQueue.push(y),f(w)}),[S,F]=await Promise.all([n.run(d).catch(E=>({stdout:"",stderr:`python3: bridge error: ${E.message}
11
- `,exitCode:1})),V.catch(E=>({success:!1,error:E.message}))]);return!F.success&&F.error?{stdout:S.stdout,stderr:`${S.stderr}python3: ${F.error}
12
- `,exitCode:S.exitCode||1}:S}var K={name:"python3",async execute(i,t){if(P(i))return I(H);let e=W(i);if("exitCode"in e)return e;if(e.showVersion)return{stdout:`Python 3.13.2 (Emscripten)
13
- `,stderr:"",exitCode:0};let s,o;if(e.code!==null)s=e.code,o="-c";else if(e.module!==null){if(!/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(e.module))return{stdout:"",stderr:`python3: No module named '${e.module.slice(0,200)}'
14
- `,exitCode:1};s=`import runpy; runpy.run_module('${e.module}', run_name='__main__')`,o=e.module}else if(e.scriptFile!==null){let n=t.fs.resolvePath(t.cwd,e.scriptFile);if(!await t.fs.exists(n))return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': [Errno 2] No such file or directory
15
- `,exitCode:2};try{s=await t.fs.readFile(n),o=e.scriptFile}catch(d){return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': ${d.message}
16
- `,exitCode:2}}}else if(t.stdin.trim())s=t.stdin,o="<stdin>";else return{stdout:"",stderr:`python3: no input provided (use -c CODE, -m MODULE, or provide a script file)
17
- `,exitCode:2};return Y(s,t,o,e.scriptArgs)}},ht={name:"python",async execute(i,t){return K.execute(i,t)}};export{at as _resetExecutionQueue,K as python3Command,ht as pythonCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-6L4K3UGO.js";import"./chunk-SE4C7FJY.js";import"./chunk-6KZRLMG3.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as sedCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-JNPUO56K.js";import"./chunk-JJHAWOIB.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as sleepCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b,c}from"./chunk-4PZYIYYG.js";import"./chunk-4FNW6LFM.js";import"./chunk-JJHAWOIB.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{a as _internals,c as flagsForFuzzing,b as sqlite3Command};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-2FFXXW3F.js";import"./chunk-4OALHZXB.js";import"./chunk-JJHAWOIB.js";import"./chunk-4PRVMER6.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as timeCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-DREQRXNN.js";import"./chunk-4OALHZXB.js";import"./chunk-JJHAWOIB.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as timeoutCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-KPWFKFSD.js";import"./chunk-JBABAK44.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as trCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-7SWOLTCR.js";import"./chunk-GZHFXDDO.js";import"./chunk-QSDVMMYI.js";import"./chunk-EPIOK4SY.js";import"./chunk-UYBH3FNE.js";import"./chunk-4PRVMER6.js";import"./chunk-SE4C7FJY.js";import"./chunk-5WFYIUU2.js";import"./chunk-6KZRLMG3.js";import"./chunk-OBH7XN5N.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as xanCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-3NVWSLHI.js";import"./chunk-QSDVMMYI.js";import"./chunk-EPIOK4SY.js";import"./chunk-UYBH3FNE.js";import"./chunk-4PRVMER6.js";import"./chunk-SE4C7FJY.js";import"./chunk-6KZRLMG3.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as yqCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-BAAVD5NO.js";import"./chunk-OJDRYQWQ.js";import"./chunk-YNYSPYQ5.js";import"./chunk-GFQRA5P5.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{a as awkCommand2,b as flagsForFuzzing};
@@ -1,20 +0,0 @@
1
- import{a as C}from"./chunk-HWKDQ44K.js";import{a as u,b as m}from"./chunk-74CEPOFO.js";var S={name:"tr",summary:"translate or delete characters",usage:"tr [OPTION]... SET1 [SET2]",options:["-c, -C, --complement use the complement of SET1","-d, --delete delete characters in SET1","-s, --squeeze-repeats squeeze repeated characters"," --help display this help and exit"],description:`SET syntax:
2
- a-z character range
3
- [:alnum:] all letters and digits
4
- [:alpha:] all letters
5
- [:digit:] all digits
6
- [:lower:] all lowercase letters
7
- [:upper:] all uppercase letters
8
- [:space:] all whitespace
9
- [:blank:] horizontal whitespace
10
- [:punct:] all punctuation
11
- [:print:] all printable characters
12
- [:graph:] all printable characters except space
13
- [:cntrl:] all control characters
14
- [:xdigit:] all hexadecimal digits
15
- \\n, \\t, \\r escape sequences`},x=new Map([["[:alnum:]","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"],["[:alpha:]","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"],["[:blank:]"," "],["[:cntrl:]",Array.from({length:32},(r,o)=>String.fromCharCode(o)).join("").concat("\x7F")],["[:digit:]","0123456789"],["[:graph:]",Array.from({length:94},(r,o)=>String.fromCharCode(33+o)).join("")],["[:lower:]","abcdefghijklmnopqrstuvwxyz"],["[:print:]",Array.from({length:95},(r,o)=>String.fromCharCode(32+o)).join("")],["[:punct:]","!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"],["[:space:]",`
16
- \r\f\v`],["[:upper:]","ABCDEFGHIJKLMNOPQRSTUVWXYZ"],["[:xdigit:]","0123456789ABCDEFabcdef"]]);function y(r){let o="",e=0;for(;e<r.length;){if(r[e]==="["&&r[e+1]===":"){let l=!1;for(let[c,a]of x)if(r.slice(e).startsWith(c)){o+=a,e+=c.length,l=!0;break}if(l)continue}if(r[e]==="\\"&&e+1<r.length){let l=r[e+1];l==="n"?o+=`
17
- `:l==="t"?o+=" ":l==="r"?o+="\r":o+=l,e+=2;continue}if(e+2<r.length&&r[e+1]==="-"){let l=r.charCodeAt(e),c=r.charCodeAt(e+2);if(c-l>65536)throw new Error(`tr: character range too large: '${r[e]}-${r[e+2]}'`);for(let a=l;a<=c;a++)o+=String.fromCharCode(a);e+=3;continue}o+=r[e],e++}return o}var b={complement:{short:"c",long:"complement",type:"boolean"},complementUpper:{short:"C",type:"boolean"},delete:{short:"d",long:"delete",type:"boolean"},squeeze:{short:"s",long:"squeeze-repeats",type:"boolean"}},A={name:"tr",async execute(r,o){if(m(r))return u(S);let e=C("tr",r,b);if(!e.ok)return e.error;let l=e.result.flags.complement||e.result.flags.complementUpper,c=e.result.flags.delete,a=e.result.flags.squeeze,p=e.result.positional;if(p.length<1)return{stdout:"",stderr:`tr: missing operand
18
- `,exitCode:1};if(!c&&!a&&p.length<2)return{stdout:"",stderr:`tr: missing operand after SET1
19
- `,exitCode:1};let d,s;try{d=y(p[0]),s=p.length>1?y(p[1]):""}catch(n){return{stdout:"",stderr:`${n.message}
20
- `,exitCode:1}}let h=o.stdin,g=n=>{let t=d.includes(n);return l?!t:t},i="";if(c)for(let n of h)g(n)||(i+=n);else if(a&&p.length===1){let n="";for(let t of h)g(t)&&t===n||(i+=t,n=t)}else{if(l){let n=s.length>0?s[s.length-1]:"";for(let t of h)d.includes(t)?i+=t:i+=n}else{let n=new Map;for(let t=0;t<d.length;t++){let f=t<s.length?s[t]:s[s.length-1];n.set(d[t],f)}for(let t of h)i+=n.get(t)??t}if(a){let n="",t="";for(let f of i)s.includes(f)&&f===t||(n+=f,t=f);i=n}}return{stdout:i,stderr:"",exitCode:0}}},E={name:"tr",flags:[{flag:"-c",type:"boolean"},{flag:"-C",type:"boolean"},{flag:"-d",type:"boolean"},{flag:"-s",type:"boolean"}],stdinType:"text",needsArgs:!0};export{A as a,E as b};
@@ -1,4 +0,0 @@
1
- import{a as g}from"./chunk-DXB73IDG.js";function m(){let c=[{prop:"Function",target:globalThis,violationType:"function_constructor",strategy:"throw",reason:"Function constructor allows arbitrary code execution"},{prop:"eval",target:globalThis,violationType:"eval",strategy:"throw",reason:"eval() allows arbitrary code execution"},{prop:"setTimeout",target:globalThis,violationType:"setTimeout",strategy:"throw",reason:"setTimeout with string argument allows code execution"},{prop:"setInterval",target:globalThis,violationType:"setInterval",strategy:"throw",reason:"setInterval with string argument allows code execution"},{prop:"setImmediate",target:globalThis,violationType:"setImmediate",strategy:"throw",reason:"setImmediate could be used to escape sandbox context"},{prop:"env",target:process,violationType:"process_env",strategy:"throw",reason:"process.env could leak sensitive environment variables",allowedKeys:new Set(["NODE_V8_COVERAGE","NODE_DEBUG","NODE_DEBUG_NATIVE","NODE_COMPILE_CACHE","WATCH_REPORT_DEPENDENCIES","FORCE_COLOR","DEBUG","UNDICI_NO_FG","JEST_WORKER_ID","__MINIMATCH_TESTING_PLATFORM__","LOG_TOKENS","LOG_STREAM"])},{prop:"binding",target:process,violationType:"process_binding",strategy:"throw",reason:"process.binding provides access to native Node.js modules"},{prop:"_linkedBinding",target:process,violationType:"process_binding",strategy:"throw",reason:"process._linkedBinding provides access to native Node.js modules"},{prop:"dlopen",target:process,violationType:"process_dlopen",strategy:"throw",reason:"process.dlopen allows loading native addons"},{prop:"getBuiltinModule",target:process,violationType:"process_get_builtin_module",strategy:"throw",reason:"process.getBuiltinModule allows loading native Node.js modules (fs, child_process, vm)"},{prop:"exit",target:process,violationType:"process_exit",strategy:"throw",reason:"process.exit could terminate the interpreter"},{prop:"abort",target:process,violationType:"process_exit",strategy:"throw",reason:"process.abort could crash the interpreter"},{prop:"kill",target:process,violationType:"process_kill",strategy:"throw",reason:"process.kill could signal other processes"},{prop:"setuid",target:process,violationType:"process_setuid",strategy:"throw",reason:"process.setuid could escalate privileges"},{prop:"setgid",target:process,violationType:"process_setuid",strategy:"throw",reason:"process.setgid could escalate privileges"},{prop:"umask",target:process,violationType:"process_umask",strategy:"throw",reason:"process.umask could modify file creation permissions"},{prop:"argv",target:process,violationType:"process_argv",strategy:"throw",reason:"process.argv may contain secrets in CLI arguments"},{prop:"chdir",target:process,violationType:"process_chdir",strategy:"throw",reason:"process.chdir could confuse the interpreter's CWD tracking"},{prop:"send",target:process,violationType:"process_send",strategy:"throw",reason:"process.send could communicate with parent process in IPC contexts"},{prop:"channel",target:process,violationType:"process_channel",strategy:"throw",reason:"process.channel could access IPC channel to parent process"},{prop:"cpuUsage",target:process,violationType:"process_timing",strategy:"throw",reason:"process.cpuUsage could enable timing side-channel attacks"},{prop:"memoryUsage",target:process,violationType:"process_timing",strategy:"throw",reason:"process.memoryUsage could enable timing side-channel attacks"},{prop:"hrtime",target:process,violationType:"process_timing",strategy:"throw",reason:"process.hrtime could enable timing side-channel attacks"},{prop:"WeakRef",target:globalThis,violationType:"weak_ref",strategy:"throw",reason:"WeakRef could be used to leak references outside sandbox"},{prop:"FinalizationRegistry",target:globalThis,violationType:"finalization_registry",strategy:"throw",reason:"FinalizationRegistry could be used to leak references outside sandbox"},{prop:"Reflect",target:globalThis,violationType:"reflect",strategy:"freeze",reason:"Reflect provides introspection capabilities"},{prop:"Proxy",target:globalThis,violationType:"proxy",strategy:"throw",reason:"Proxy allows intercepting and modifying object behavior"},{prop:"WebAssembly",target:globalThis,violationType:"webassembly",strategy:"throw",reason:"WebAssembly allows executing arbitrary compiled code"},{prop:"SharedArrayBuffer",target:globalThis,violationType:"shared_array_buffer",strategy:"throw",reason:"SharedArrayBuffer could enable side-channel communication or timing attacks"},{prop:"Atomics",target:globalThis,violationType:"atomics",strategy:"throw",reason:"Atomics could enable side-channel communication or timing attacks"},{prop:"performance",target:globalThis,violationType:"performance_timing",strategy:"throw",reason:"performance.now() provides sub-millisecond timing for side-channel attacks"},{prop:"stdout",target:process,violationType:"process_stdout",strategy:"throw",reason:"process.stdout could bypass interpreter output to write to host stdout"},{prop:"stderr",target:process,violationType:"process_stderr",strategy:"throw",reason:"process.stderr could bypass interpreter output to write to host stderr"},{prop:"__defineGetter__",target:Object.prototype,violationType:"prototype_mutation",strategy:"throw",reason:"__defineGetter__ allows prototype pollution via getter injection"},{prop:"__defineSetter__",target:Object.prototype,violationType:"prototype_mutation",strategy:"throw",reason:"__defineSetter__ allows prototype pollution via setter injection"},{prop:"__lookupGetter__",target:Object.prototype,violationType:"prototype_mutation",strategy:"throw",reason:"__lookupGetter__ enables introspection for prototype pollution attacks"},{prop:"__lookupSetter__",target:Object.prototype,violationType:"prototype_mutation",strategy:"throw",reason:"__lookupSetter__ enables introspection for prototype pollution attacks"},{prop:"JSON",target:globalThis,violationType:"json_mutation",strategy:"freeze",reason:"Freeze JSON to prevent mutation of parsing/serialization"},{prop:"Math",target:globalThis,violationType:"math_mutation",strategy:"freeze",reason:"Freeze Math to prevent mutation of math utilities"}];try{let e=Object.getPrototypeOf(async()=>{}).constructor;e&&e!==Function&&c.push({prop:"constructor",target:Object.getPrototypeOf(async()=>{}),violationType:"async_function_constructor",strategy:"throw",reason:"AsyncFunction constructor allows arbitrary async code execution"})}catch{}try{let e=Object.getPrototypeOf(function*(){}).constructor;e&&e!==Function&&c.push({prop:"constructor",target:Object.getPrototypeOf(function*(){}),violationType:"generator_function_constructor",strategy:"throw",reason:"GeneratorFunction constructor allows arbitrary generator code execution"})}catch{}try{let e=Object.getPrototypeOf(async function*(){}).constructor;e&&e!==Function&&e!==Object.getPrototypeOf(async()=>{}).constructor&&c.push({prop:"constructor",target:Object.getPrototypeOf(async function*(){}),violationType:"async_generator_function_constructor",strategy:"throw",reason:"AsyncGeneratorFunction constructor allows arbitrary async generator code execution"})}catch{}return c.filter(e=>{try{return e.target[e.prop]!==void 0}catch{return!1}})}var h=typeof __BROWSER__<"u"&&__BROWSER__;function _(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,c=>{let e=Math.random()*16|0;return(c==="x"?e:e&3|8).toString(16)})}var b=null;if(!h)try{let{AsyncLocalStorage:c}=g("node:async_hooks");b=c}catch{}var w=`
2
-
3
- This is a defense-in-depth measure and indicates a bug in just-bash. Please report this at security@vercel.com`,p=class extends Error{violation;constructor(e,t){super(e+w),this.violation=t,this.name="SecurityViolationError"}},l=!h&&b?new b:null,T=1e3,y={enabled:!0,auditMode:!1};function k(c){return c===void 0?{...y,enabled:!1}:typeof c=="boolean"?{...y,enabled:c}:{...y,...c}}var x=class c{static instance=null;static importHooksRegistered=!1;config;refCount=0;patchFailures=[];originalDescriptors=[];violations=[];activationTime=0;totalActiveTimeMs=0;constructor(e){this.config=e}static getInstance(e){let t=k(e);if(!c.instance)c.instance=new c(t);else{let r=c.instance.config;if(t.enabled!==r.enabled||t.auditMode!==r.auditMode)throw new Error(`DefenseInDepthBox config conflict: requested {enabled: ${t.enabled}, auditMode: ${t.auditMode}} but singleton already has {enabled: ${r.enabled}, auditMode: ${r.auditMode}}. All Bash instances must use the same defense-in-depth security settings, or call DefenseInDepthBox.resetInstance() between incompatible configurations.`)}return c.instance}static resetInstance(){c.instance&&(c.instance.forceDeactivate(),c.instance=null)}static isInSandboxedContext(){return l?l?.getStore()?.sandboxActive===!0:!1}static getCurrentExecutionId(){if(l)return l?.getStore()?.executionId}isEnabled(){return this.config.enabled===!0&&l!==null&&!h}updateConfig(e){this.config={...this.config,...e}}activate(){if(h||!this.config.enabled||!l){let t=_();return{run:r=>r(),deactivate:()=>{},executionId:t}}this.refCount++,this.refCount===1&&(this.applyPatches(),this.activationTime=Date.now());let e=_();return{run:t=>l.run({sandboxActive:!0,executionId:e},t),deactivate:()=>{this.refCount--,this.refCount===0&&(this.restorePatches(),this.totalActiveTimeMs+=Date.now()-this.activationTime),this.refCount<0&&(this.refCount=0)},executionId:e}}forceDeactivate(){this.refCount>0&&(this.restorePatches(),this.totalActiveTimeMs+=Date.now()-this.activationTime),this.refCount=0}isActive(){return this.refCount>0}getStats(){return{violationsBlocked:this.violations.length,violations:[...this.violations],activeTimeMs:this.totalActiveTimeMs+(this.refCount>0?Date.now()-this.activationTime:0),refCount:this.refCount}}getPatchFailures(){return[...this.patchFailures]}clearViolations(){this.violations=[]}getPathForTarget(e,t){return e===globalThis?`globalThis.${t}`:e===process?`process.${t}`:e===Error?`Error.${t}`:e===Function.prototype?`Function.prototype.${t}`:e===Object.prototype?`Object.prototype.${t}`:`<object>.${t}`}static runTrusted(e){if(!l)return e();let t=l.getStore();return t?l.run({...t,trusted:!0},e):e()}static async runTrustedAsync(e){if(!l)return e();let t=l.getStore();return t?l.run({...t,trusted:!0},e):e()}shouldBlock(){if(h||this.config.auditMode||!l)return!1;let e=l?.getStore();return!(e?.sandboxActive!==!0||e.trusted)}recordViolation(e,t,r){let s={timestamp:Date.now(),type:e,message:r,path:t,stack:new Error().stack,executionId:l?.getStore()?.executionId};if(this.violations.length<T&&this.violations.push(s),this.config.onViolation)try{this.config.onViolation(s)}catch(o){console.debug("[DefenseInDepthBox] onViolation callback threw:",o instanceof Error?o.message:o)}return s}createBlockingProxy(e,t,r){let s=this;return new Proxy(e,{apply(o,n,i){if(s.shouldBlock()){let a=`${t} is blocked during script execution`,u=s.recordViolation(r,t,a);throw new p(a,u)}return s.config.auditMode&&l?.getStore()?.sandboxActive===!0&&s.recordViolation(r,t,`${t} called (audit mode)`),Reflect.apply(o,n,i)},construct(o,n,i){if(s.shouldBlock()){let a=`${t} constructor is blocked during script execution`,u=s.recordViolation(r,t,a);throw new p(a,u)}return s.config.auditMode&&l?.getStore()?.sandboxActive===!0&&s.recordViolation(r,t,`${t} constructor called (audit mode)`),Reflect.construct(o,n,i)}})}createBlockingObjectProxy(e,t,r,s){let o=this;return new Proxy(e,{get(n,i,a){if(o.shouldBlock()){if(s&&typeof i=="string"&&s.has(i))return Reflect.get(n,i,a);let u=`${t}.${String(i)}`,d=`${u} is blocked during script execution`,f=o.recordViolation(r,u,d);throw new p(d,f)}if(o.config.auditMode&&l?.getStore()?.sandboxActive===!0){let u=`${t}.${String(i)}`;o.recordViolation(r,u,`${u} accessed (audit mode)`)}return Reflect.get(n,i,a)},set(n,i,a,u){if(o.shouldBlock()){let d=`${t}.${String(i)}`,f=`${d} modification is blocked during script execution`,v=o.recordViolation(r,d,f);throw new p(f,v)}return Reflect.set(n,i,a,u)},ownKeys(n){if(o.shouldBlock()){let i=`${t} enumeration is blocked during script execution`,a=o.recordViolation(r,t,i);throw new p(i,a)}return Reflect.ownKeys(n)},getOwnPropertyDescriptor(n,i){if(o.shouldBlock()){let a=`${t}.${String(i)}`,u=`${a} descriptor access is blocked during script execution`,d=o.recordViolation(r,a,u);throw new p(u,d)}return Reflect.getOwnPropertyDescriptor(n,i)},has(n,i){if(o.shouldBlock()){let a=`${t}.${String(i)}`,u=`${a} existence check is blocked during script execution`,d=o.recordViolation(r,a,u);throw new p(u,d)}return Reflect.has(n,i)}})}applyPatches(){this.patchFailures=[];let e=m(),t=new Set(["process_send","process_channel","process_stdout","process_stderr"]);for(let o of e)t.has(o.violationType)||this.applyPatch(o);this.protectConstructorChain(),this.protectErrorPrepareStackTrace(),this.protectDynamicImport(),this.protectModuleLoad(),this.protectModuleResolveFilename(),this.protectProcessMainModule(),this.protectProcessExecPath();let r=["Function.prototype.constructor","Module._load"],s=this.patchFailures.filter(o=>r.includes(o));if(s.length>0)throw this.restorePatches(),new Error(`DefenseInDepthBox: critical patches failed: ${s.join(", ")}`)}protectConstructorChain(){this.patchPrototypeConstructor(Function.prototype,"Function.prototype.constructor","function_constructor");try{let e=Object.getPrototypeOf(async()=>{}).constructor;e&&e!==Function&&this.patchPrototypeConstructor(e.prototype,"AsyncFunction.prototype.constructor","async_function_constructor")}catch(e){this.patchFailures.push("AsyncFunction.prototype.constructor"),console.debug("[DefenseInDepthBox] Could not patch AsyncFunction.prototype.constructor:",e instanceof Error?e.message:e)}try{let e=Object.getPrototypeOf(function*(){}).constructor;e&&e!==Function&&this.patchPrototypeConstructor(e.prototype,"GeneratorFunction.prototype.constructor","generator_function_constructor")}catch(e){this.patchFailures.push("GeneratorFunction.prototype.constructor"),console.debug("[DefenseInDepthBox] Could not patch GeneratorFunction.prototype.constructor:",e instanceof Error?e.message:e)}try{let e=Object.getPrototypeOf(async function*(){}).constructor,t=Object.getPrototypeOf(async()=>{}).constructor;e&&e!==Function&&e!==t&&this.patchPrototypeConstructor(e.prototype,"AsyncGeneratorFunction.prototype.constructor","async_generator_function_constructor")}catch(e){this.patchFailures.push("AsyncGeneratorFunction.prototype.constructor"),console.debug("[DefenseInDepthBox] Could not patch AsyncGeneratorFunction.prototype.constructor:",e instanceof Error?e.message:e)}}protectErrorPrepareStackTrace(){let e=this;try{let t=Object.getOwnPropertyDescriptor(Error,"prepareStackTrace");this.originalDescriptors.push({target:Error,prop:"prepareStackTrace",descriptor:t});let r=t?.value;Object.defineProperty(Error,"prepareStackTrace",{get(){return r},set(s){if(e.shouldBlock()){let o="Error.prepareStackTrace modification is blocked during script execution",n=e.recordViolation("error_prepare_stack_trace","Error.prepareStackTrace",o);throw new p(o,n)}e.config.auditMode&&l?.getStore()?.sandboxActive===!0&&e.recordViolation("error_prepare_stack_trace","Error.prepareStackTrace","Error.prepareStackTrace set (audit mode)"),r=s},configurable:!0})}catch(t){this.patchFailures.push("Error.prepareStackTrace"),console.debug("[DefenseInDepthBox] Could not protect Error.prepareStackTrace:",t instanceof Error?t.message:t)}}patchPrototypeConstructor(e,t,r){let s=this;try{let o=Object.getOwnPropertyDescriptor(e,"constructor");this.originalDescriptors.push({target:e,prop:"constructor",descriptor:o});let n=o?.value;Object.defineProperty(e,"constructor",{get(){if(s.shouldBlock()){let i=`${t} access is blocked during script execution`,a=s.recordViolation(r,t,i);throw new p(i,a)}return s.config.auditMode&&l?.getStore()?.sandboxActive===!0&&s.recordViolation(r,t,`${t} accessed (audit mode)`),n},set(i){if(s.shouldBlock()){let a=`${t} modification is blocked during script execution`,u=s.recordViolation(r,t,a);throw new p(a,u)}Object.defineProperty(this,"constructor",{value:i,writable:!0,configurable:!0})},configurable:!0})}catch(o){this.patchFailures.push(t),console.debug(`[DefenseInDepthBox] Could not patch ${t}:`,o instanceof Error?o.message:o)}}protectProcessMainModule(){if(typeof process>"u")return;let e=this;try{let t=Object.getOwnPropertyDescriptor(process,"mainModule");this.originalDescriptors.push({target:process,prop:"mainModule",descriptor:t});let r=t?.value;r!==void 0&&Object.defineProperty(process,"mainModule",{get(){if(e.shouldBlock()){let s="process.mainModule access is blocked during script execution",o=e.recordViolation("process_main_module","process.mainModule",s);throw new p(s,o)}return e.config.auditMode&&l?.getStore()?.sandboxActive===!0&&e.recordViolation("process_main_module","process.mainModule","process.mainModule accessed (audit mode)"),r},set(s){if(e.shouldBlock()){let o="process.mainModule modification is blocked during script execution",n=e.recordViolation("process_main_module","process.mainModule",o);throw new p(o,n)}Object.defineProperty(process,"mainModule",{value:s,writable:!0,configurable:!0})},configurable:!0})}catch(t){this.patchFailures.push("process.mainModule"),console.debug("[DefenseInDepthBox] Could not protect process.mainModule:",t instanceof Error?t.message:t)}}protectProcessExecPath(){if(typeof process>"u")return;let e=this;try{let t=Object.getOwnPropertyDescriptor(process,"execPath");this.originalDescriptors.push({target:process,prop:"execPath",descriptor:t});let r=t?.value??process.execPath;Object.defineProperty(process,"execPath",{get(){if(e.shouldBlock()){let s="process.execPath access is blocked during script execution",o=e.recordViolation("process_exec_path","process.execPath",s);throw new p(s,o)}return e.config.auditMode&&l?.getStore()?.sandboxActive===!0&&e.recordViolation("process_exec_path","process.execPath","process.execPath accessed (audit mode)"),r},set(s){if(e.shouldBlock()){let o="process.execPath modification is blocked during script execution",n=e.recordViolation("process_exec_path","process.execPath",o);throw new p(o,n)}Object.defineProperty(process,"execPath",{value:s,writable:!0,configurable:!0})},configurable:!0})}catch(t){this.patchFailures.push("process.execPath"),console.debug("[DefenseInDepthBox] Could not protect process.execPath:",t instanceof Error?t.message:t)}}protectDynamicImport(){if(!(h||c.importHooksRegistered))try{let e=g("node:module");if(typeof e.registerHooks=="function"){e.registerHooks({resolve(t,r,s){if(t.startsWith("data:")||t.startsWith("blob:"))throw new Error(`dynamic import of ${t.startsWith("data:")?"data:":"blob:"} URLs is blocked by defense-in-depth`);return s(t,r)}}),c.importHooksRegistered=!0;return}if(typeof e.register=="function"){let t=["export async function resolve(specifier, context, nextResolve) {",' if (specifier.startsWith("data:") || specifier.startsWith("blob:")) {',' throw new Error("dynamic import of " + (specifier.startsWith("data:") ? "data:" : "blob:") + " URLs is blocked by defense-in-depth");'," }"," return nextResolve(specifier, context);","}"].join(`
4
- `);e.register(`data:text/javascript,${encodeURIComponent(t)}`),c.importHooksRegistered=!0}}catch(e){console.debug("[DefenseInDepthBox] Could not register import() hooks:",e instanceof Error?e.message:e)}}protectModuleLoad(){if(!h)try{let e=null;if(typeof process<"u"){let n=process.mainModule;n&&typeof n=="object"&&(e=n.constructor)}if(!e&&typeof g<"u"&&typeof g.main<"u"&&(e=g.main.constructor),!e||typeof e._load!="function")return;let t=e._load,r=Object.getOwnPropertyDescriptor(e,"_load");this.originalDescriptors.push({target:e,prop:"_load",descriptor:r});let o=this.createBlockingProxy(t,"Module._load","module_load");Object.defineProperty(e,"_load",{value:o,writable:!0,configurable:!0})}catch(e){this.patchFailures.push("Module._load"),console.debug("[DefenseInDepthBox] Could not protect Module._load:",e instanceof Error?e.message:e)}}protectModuleResolveFilename(){if(!h)try{let e=null;if(typeof process<"u"){let n=process.mainModule;n&&typeof n=="object"&&(e=n.constructor)}if(!e&&typeof g<"u"&&typeof g.main<"u"&&(e=g.main.constructor),!e||typeof e._resolveFilename!="function")return;let t=e._resolveFilename,r=Object.getOwnPropertyDescriptor(e,"_resolveFilename");this.originalDescriptors.push({target:e,prop:"_resolveFilename",descriptor:r});let o=this.createBlockingProxy(t,"Module._resolveFilename","module_resolve_filename");Object.defineProperty(e,"_resolveFilename",{value:o,writable:!0,configurable:!0})}catch(e){this.patchFailures.push("Module._resolveFilename"),console.debug("[DefenseInDepthBox] Could not protect Module._resolveFilename:",e instanceof Error?e.message:e)}}applyPatch(e){let{target:t,prop:r,violationType:s,strategy:o}=e;try{let n=t[r];if(n===void 0)return;let i=Object.getOwnPropertyDescriptor(t,r);if(this.originalDescriptors.push({target:t,prop:r,descriptor:i}),o==="freeze")typeof n=="object"&&n!==null&&Object.freeze(n);else{let a=this.getPathForTarget(t,r),u=typeof n=="function"?this.createBlockingProxy(n,a,s):this.createBlockingObjectProxy(n,a,s,e.allowedKeys);Object.defineProperty(t,r,{value:u,writable:!0,configurable:!0})}}catch(n){let i=this.getPathForTarget(t,r);this.patchFailures.push(i),console.debug(`[DefenseInDepthBox] Could not patch ${i}:`,n instanceof Error?n.message:n)}}restorePatches(){for(let e=this.originalDescriptors.length-1;e>=0;e--){let{target:t,prop:r,descriptor:s}=this.originalDescriptors[e];try{s?Object.defineProperty(t,r,s):delete t[r]}catch(o){let n=this.getPathForTarget(t,r);console.debug(`[DefenseInDepthBox] Could not restore ${n}:`,o instanceof Error?o.message:o)}}this.originalDescriptors=[]}};export{p as a,x as b};
@@ -1,99 +0,0 @@
1
- import{a as N}from"./chunk-YNYSPYQ5.js";import{k as C}from"./chunk-GFQRA5P5.js";import{a as G,b as j,c as T}from"./chunk-74CEPOFO.js";var B=new Map([["alnum","a-zA-Z0-9"],["alpha","a-zA-Z"],["ascii","\\x00-\\x7F"],["blank"," \\t"],["cntrl","\\x00-\\x1F\\x7F"],["digit","0-9"],["graph","!-~"],["lower","a-z"],["print"," -~"],["punct","!-/:-@\\[-`{-~"],["space"," \\t\\n\\r\\f\\v"],["upper","A-Z"],["word","a-zA-Z0-9_"],["xdigit","0-9A-Fa-f"]]);function P(n){let e="",t=0,i=!1;for(;t<n.length;){if(n[t]==="["&&!i){if(n[t+1]==="["&&n[t+2]===":"){let s=n.indexOf(":]]",t+3);if(s!==-1){let a=n.slice(t+3,s),r=B.get(a);if(r){e+=`[${r}]`,t=s+3;continue}}}if(n[t+1]==="^"&&n[t+2]==="["&&n[t+3]===":"){let s=n.indexOf(":]]",t+4);if(s!==-1){let a=n.slice(t+4,s),r=B.get(a);if(r){e+=`[^${r}]`,t=s+3;continue}}}e+="[",t++,i=!0,t<n.length&&n[t]==="^"&&(e+="^",t++),t<n.length&&n[t]==="]"&&(e+="\\]",t++);continue}if(i){if(n[t]==="]"){e+="]",t++,i=!1;continue}if(n[t]==="["&&n[t+1]===":"){let s=n.indexOf(":]",t+2);if(s!==-1){let a=n.slice(t+2,s),r=B.get(a);if(r){e+=r,t=s+2;continue}}}if(n[t]==="\\"&&t+1<n.length){e+=n[t]+n[t+1],t+=2;continue}e+=n[t],t++;continue}if(n[t]==="\\"&&t+1<n.length){let s=n[t+1];if(s==="+"||s==="?"||s==="|"){e+=s,t+=2;continue}if(s==="("||s===")"){e+=s,t+=2;continue}if(s==="{"||s==="}"){e+=s,t+=2;continue}if(s==="t"){e+=" ",t+=2;continue}if(s==="n"){e+=`
2
- `,t+=2;continue}if(s==="r"){e+="\r",t+=2;continue}e+=n[t]+s,t+=2;continue}if(n[t]==="+"||n[t]==="?"||n[t]==="|"||n[t]==="("||n[t]===")"){e+=`\\${n[t]}`,t++;continue}if(n[t]==="^"&&!(e===""||e.endsWith("("))){e+="\\^",t++;continue}if(n[t]==="$"){let s=t===n.length-1,a=t+2<n.length&&n[t+1]==="\\"&&n[t+2]===")";if(!s&&!a){e+="\\$",t++;continue}}e+=n[t],t++}return e}function D(n){let e="",t=!1;for(let i=0;i<n.length;i++)n[i]==="["&&!t?(t=!0,e+="[",i++,i<n.length&&n[i]==="^"&&(e+="^",i++),i<n.length&&n[i]==="]"&&(e+="]",i++),i--):n[i]==="]"&&t?(t=!1,e+="]"):!t&&n[i]==="{"&&n[i+1]===","?(e+="{0,",i++):e+=n[i];return e}function Z(n){let e="";for(let t=0;t<n.length;t++){let i=n[t],s=i.charCodeAt(0);i==="\\"?e+="\\\\":i===" "?e+="\\t":i===`
3
- `?e+=`$
4
- `:i==="\r"?e+="\\r":i==="\x07"?e+="\\a":i==="\b"?e+="\\b":i==="\f"?e+="\\f":i==="\v"?e+="\\v":s<32||s>=127?e+=`\\${s.toString(8).padStart(3,"0")}`:e+=i}return`${e}$`}var ce=1e4;function Q(n,e,t){return{patternSpace:"",holdSpace:"",lineNumber:0,totalLines:n,deleted:!1,printed:!1,quit:!1,quitSilent:!1,exitCode:void 0,errorMessage:void 0,appendBuffer:[],substitutionMade:!1,lineNumberOutput:[],nCommandOutput:[],restartCycle:!1,inDRestartedCycle:!1,currentFilename:e,pendingFileReads:[],pendingFileWrites:[],pendingExecute:void 0,rangeStates:t||new Map,linesConsumedInCycle:0}}function le(n){return typeof n=="object"&&"first"in n&&"step"in n}function oe(n){return typeof n=="object"&&"offset"in n}function O(n,e,t,i,s){if(n==="$")return e===t;if(typeof n=="number")return e===n;if(le(n)){let{first:a,step:r}=n;return r===0?e===a:(e-a)%r===0&&e>=a}if(typeof n=="object"&&"pattern"in n)try{let a=n.pattern;a===""&&s?.lastPattern?a=s.lastPattern:a!==""&&s&&(s.lastPattern=a);let r=D(P(a));return N(r).test(i)}catch{return!1}return!1}function W(n){let e=t=>t===void 0?"undefined":t==="$"?"$":typeof t=="number"?String(t):"pattern"in t?`/${t.pattern}/`:"first"in t?`${t.first}~${t.step}`:"unknown";return`${e(n.start)},${e(n.end)}`}function ue(n,e,t,i,s,a){if(!n||!n.start&&!n.end)return!0;let r=n.start,l=n.end;if(r!==void 0&&l===void 0)return O(r,e,t,i,a);if(r!==void 0&&l!==void 0){let o=typeof r=="object"&&"pattern"in r,d=typeof l=="object"&&"pattern"in l,f=oe(l);if(f&&s){let m=W(n),p=s.get(m);if(p||(p={active:!1},s.set(m,p)),p.active){let u=p.startLine||e;return e>=u+l.offset&&(p.active=!1,s.set(m,p)),!0}else return O(r,e,t,i,a)?(p.active=!0,p.startLine=e,s.set(m,p),l.offset===0&&(p.active=!1,s.set(m,p)),!0):!1}if(!o&&!d&&!f){let m=typeof r=="number"?r:r==="$"?t:1,p=typeof l=="number"?l:t;if(m<=p)return e>=m&&e<=p;if(s){let u=W(n),h=s.get(u);return h||(h={active:!1},s.set(u,h)),!h.completed&&e>=m?(h.completed=!0,s.set(u,h),!0):!1}return!1}if(s){let m=W(n),p=s.get(m);if(p||(p={active:!1},s.set(m,p)),p.active)return O(l,e,t,i,a)&&(p.active=!1,typeof r=="number"&&(p.completed=!0),s.set(m,p)),!0;{if(p.completed)return!1;let u=!1;return typeof r=="number"?u=e>=r:u=O(r,e,t,i,a),u?(p.active=!0,p.startLine=e,s.set(m,p),O(l,e,t,i,a)&&(p.active=!1,typeof r=="number"&&(p.completed=!0),s.set(m,p)),!0):!1}}return O(r,e,t,i,a)}return!0}function I(n,e,t,i,s,a){let r=ue(n,e,t,i,s,a);return n?.negated?!r:r}function he(n,e,t,i){let s="",a=0,r=!1;for(;a<=n.length;){e.lastIndex=a;let l=e.exec(n);if(!l){s+=n.slice(a);break}if(l.index!==a){s+=n.slice(a,l.index),a=l.index,r=!1;continue}let o=l[0],d=l.slice(1);if(r&&o.length===0){if(a<n.length)s+=n[a],a++;else break;r=!1;continue}if(s+=i(o,d),r=!1,o.length===0)if(a<n.length)s+=n[a],a++;else break;else a+=o.length,r=!0}return s}function q(n,e,t){let i="",s=0;for(;s<n.length;){if(n[s]==="\\"&&s+1<n.length){let a=n[s+1];if(a==="&"){i+="&",s+=2;continue}if(a==="n"){i+=`
5
- `,s+=2;continue}if(a==="t"){i+=" ",s+=2;continue}if(a==="r"){i+="\r",s+=2;continue}let r=parseInt(a,10);if(r===0){i+=e,s+=2;continue}if(r>=1&&r<=9){i+=t[r-1]||"",s+=2;continue}i+=a,s+=2;continue}if(n[s]==="&"){i+=e,s++;continue}i+=n[s],s++}return i}function K(n,e,t){if(e>0&&n.length>e)throw new C(`sed: ${t} size limit exceeded (${e} bytes)`,"string_length")}function de(n,e,t){let{lineNumber:i,totalLines:s,patternSpace:a}=e;if(n.type==="label"){e.coverage?.hit(`sed:cmd:${n.type}`);return}if(I(n.address,i,s,a,e.rangeStates,e))switch(e.coverage?.hit(`sed:cmd:${n.type}`),n.type){case"substitute":{let r=n,l="";r.global&&(l+="g"),r.ignoreCase&&(l+="i");let o=r.pattern;o===""&&e.lastPattern?o=e.lastPattern:o!==""&&(e.lastPattern=o);let d=D(r.extendedRegex?o:P(o));try{let f=N(d,l),v=f.test(e.patternSpace);if(f.lastIndex=0,v){if(e.substitutionMade=!0,r.nthOccurrence&&r.nthOccurrence>0&&!r.global){let m=0,p=r.nthOccurrence,u=N(d,`g${r.ignoreCase?"i":""}`);e.patternSpace=u.replace(e.patternSpace,(h,...b)=>{if(m++,m===p){let x=b.slice(0,-2);return q(r.replacement,h,x)}return h})}else if(r.global){let m=N(d,`g${r.ignoreCase?"i":""}`);e.patternSpace=he(e.patternSpace,m,r.replacement,(p,u)=>q(r.replacement,p,u))}else e.patternSpace=f.replace(e.patternSpace,(m,...p)=>{let u=p.slice(0,-2);return q(r.replacement,m,u)});r.printOnMatch&&e.lineNumberOutput.push(e.patternSpace)}}catch{}break}case"print":e.lineNumberOutput.push(e.patternSpace);break;case"printFirstLine":{let r=e.patternSpace.indexOf(`
6
- `);r!==-1?e.lineNumberOutput.push(e.patternSpace.slice(0,r)):e.lineNumberOutput.push(e.patternSpace);break}case"delete":e.deleted=!0;break;case"deleteFirstLine":{let r=e.patternSpace.indexOf(`
7
- `);r!==-1?(e.patternSpace=e.patternSpace.slice(r+1),e.restartCycle=!0,e.inDRestartedCycle=!0):e.deleted=!0;break}case"zap":e.patternSpace="";break;case"append":e.appendBuffer.push(n.text);break;case"insert":e.appendBuffer.unshift(`__INSERT__${n.text}`);break;case"change":e.deleted=!0,e.changedText=n.text;break;case"hold":e.holdSpace=e.patternSpace;break;case"holdAppend":e.holdSpace?e.holdSpace+=`
8
- ${e.patternSpace}`:e.holdSpace=e.patternSpace,K(e.holdSpace,t?.maxStringLength??0,"hold space");break;case"get":e.patternSpace=e.holdSpace;break;case"getAppend":e.patternSpace+=`
9
- ${e.holdSpace}`,K(e.patternSpace,t?.maxStringLength??0,"pattern space");break;case"exchange":{let r=e.patternSpace;e.patternSpace=e.holdSpace,e.holdSpace=r;break}case"next":e.printed=!0;break;case"quit":e.quit=!0,n.exitCode!==void 0&&(e.exitCode=n.exitCode);break;case"quitSilent":e.quit=!0,e.quitSilent=!0,n.exitCode!==void 0&&(e.exitCode=n.exitCode);break;case"list":{let r=Z(e.patternSpace);e.lineNumberOutput.push(r);break}case"printFilename":e.currentFilename&&e.lineNumberOutput.push(e.currentFilename);break;case"version":{let r=[4,8,0];if(n.minVersion){let l=n.minVersion.split("."),o=[],d=!1;for(let f of l){let v=parseInt(f,10);if(Number.isNaN(v)||v<0){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: invalid version string: ${n.minVersion}`,d=!0;break}o.push(v)}if(!d){for(;o.length<3;)o.push(0);for(let f=0;f<3;f++){if(o[f]>r[f]){e.quit=!0,e.exitCode=1,e.errorMessage=`sed: this is not GNU sed version ${n.minVersion}`;break}if(o[f]<r[f])break}}}break}case"readFile":e.pendingFileReads.push({filename:n.filename,wholeFile:!0});break;case"readFileLine":e.pendingFileReads.push({filename:n.filename,wholeFile:!1});break;case"writeFile":e.pendingFileWrites.push({filename:n.filename,content:`${e.patternSpace}
10
- `});break;case"writeFirstLine":{let r=e.patternSpace.indexOf(`
11
- `),l=r!==-1?e.patternSpace.slice(0,r):e.patternSpace;e.pendingFileWrites.push({filename:n.filename,content:`${l}
12
- `});break}case"execute":n.command?e.pendingExecute={command:n.command,replacePattern:!1}:e.pendingExecute={command:e.patternSpace,replacePattern:!0};break;case"transliterate":e.patternSpace=fe(e.patternSpace,n);break;case"lineNumber":e.lineNumberOutput.push(String(e.lineNumber));break;case"branch":break;case"branchOnSubst":break;case"branchOnNoSubst":break;case"group":break}}function fe(n,e){let t="";for(let i of n){let s=e.source.indexOf(i);s!==-1?t+=e.dest[s]:t+=i}return t}function U(n,e,t,i){let s=new Map;for(let o=0;o<n.length;o++){let d=n[o];d.type==="label"&&s.set(d.name,o)}let a=i?.maxIterations??ce,r=0,l=0;for(;l<n.length;){if(r++,r>a)throw new C(`sed: command execution exceeded maximum iterations (${a})`,"iterations");if(e.deleted||e.quit||e.quitSilent||e.restartCycle)break;let o=n[l];if(o.type==="next"){if(I(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(e.coverage?.hit("sed:cmd:next"),e.nCommandOutput.push(e.patternSpace),t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let d=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace=d,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1,e.substitutionMade=!1}else{e.quit=!0,e.deleted=!0;break}l++;continue}if(o.type==="nextAppend"){if(I(o.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e))if(e.coverage?.hit("sed:cmd:nextAppend"),t&&t.currentLineIndex+e.linesConsumedInCycle+1<t.lines.length){e.linesConsumedInCycle++;let d=t.lines[t.currentLineIndex+e.linesConsumedInCycle];e.patternSpace+=`
13
- ${d}`,e.lineNumber=t.currentLineIndex+e.linesConsumedInCycle+1}else{e.quit=!0;break}l++;continue}if(o.type==="branch"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)){if(e.coverage?.hit("sed:cmd:branch"),d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="branchOnSubst"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:branchOnSubst"),e.substitutionMade)){if(e.substitutionMade=!1,d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="branchOnNoSubst"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:branchOnNoSubst"),!e.substitutionMade)){if(d.label){let f=s.get(d.label);if(f!==void 0){l=f;continue}e.branchRequest=d.label;break}break}l++;continue}if(o.type==="group"){let d=o;if(I(d.address,e.lineNumber,e.totalLines,e.patternSpace,e.rangeStates,e)&&(e.coverage?.hit("sed:cmd:group"),U(d.commands,e,t,i),e.branchRequest)){let f=s.get(e.branchRequest);if(f!==void 0){e.branchRequest=void 0,l=f;continue}break}l++;continue}de(o,e,i),l++}return e.linesConsumedInCycle}var c;(function(n){n.NUMBER="NUMBER",n.DOLLAR="DOLLAR",n.PATTERN="PATTERN",n.STEP="STEP",n.RELATIVE_OFFSET="RELATIVE_OFFSET",n.LBRACE="LBRACE",n.RBRACE="RBRACE",n.SEMICOLON="SEMICOLON",n.NEWLINE="NEWLINE",n.COMMA="COMMA",n.NEGATION="NEGATION",n.COMMAND="COMMAND",n.SUBSTITUTE="SUBSTITUTE",n.TRANSLITERATE="TRANSLITERATE",n.LABEL_DEF="LABEL_DEF",n.BRANCH="BRANCH",n.BRANCH_ON_SUBST="BRANCH_ON_SUBST",n.BRANCH_ON_NO_SUBST="BRANCH_ON_NO_SUBST",n.TEXT_CMD="TEXT_CMD",n.FILE_READ="FILE_READ",n.FILE_READ_LINE="FILE_READ_LINE",n.FILE_WRITE="FILE_WRITE",n.FILE_WRITE_LINE="FILE_WRITE_LINE",n.EXECUTE="EXECUTE",n.VERSION="VERSION",n.EOF="EOF",n.ERROR="ERROR"})(c||(c={}));var A=class{input;pos=0;line=1;column=1;constructor(e){this.input=e}tokenize(){let e=[];for(;this.pos<this.input.length;){let t=this.nextToken();t&&e.push(t)}return e.push(this.makeToken(c.EOF,"")),e}makeToken(e,t,i){return{type:e,value:t,line:this.line,column:this.column,...i}}peek(e=0){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos++]||"";return e===`
14
- `?(this.line++,this.column=1):this.column++,e}readEscapedString(e){let t="";for(;this.pos<this.input.length&&this.peek()!==e;)if(this.peek()==="\\"){this.advance();let i=this.advance();i==="n"?t+=`
15
- `:i==="t"?t+=" ":t+=i}else{if(this.peek()===`
16
- `)return null;t+=this.advance()}return t}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.peek();if(e===" "||e===" "||e==="\r")this.advance();else if(e==="#")for(;this.pos<this.input.length&&this.peek()!==`
17
- `;)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===`
18
- `?(this.advance(),{type:c.NEWLINE,value:`
19
- `,line:e,column:t}):i===";"?(this.advance(),{type:c.SEMICOLON,value:";",line:e,column:t}):i==="{"?(this.advance(),{type:c.LBRACE,value:"{",line:e,column:t}):i==="}"?(this.advance(),{type:c.RBRACE,value:"}",line:e,column:t}):i===","?(this.advance(),{type:c.COMMA,value:",",line:e,column:t}):i==="!"?(this.advance(),{type:c.NEGATION,value:"!",line:e,column:t}):i==="$"?(this.advance(),{type:c.DOLLAR,value:"$",line:e,column:t}):this.isDigit(i)?this.readNumber():i==="+"&&this.isDigit(this.input[this.pos+1]||"")?this.readRelativeOffset():i==="/"?this.readPattern():i===":"?this.readLabelDef():this.readCommand()}readNumber(){let e=this.line,t=this.column,i="";for(;this.isDigit(this.peek());)i+=this.advance();if(this.peek()==="~"){this.advance();let s="";for(;this.isDigit(this.peek());)s+=this.advance();let a=parseInt(i,10),r=parseInt(s,10)||0;return{type:c.STEP,value:`${a}~${r}`,first:a,step:r,line:e,column:t}}return{type:c.NUMBER,value:parseInt(i,10),line:e,column:t}}readRelativeOffset(){let e=this.line,t=this.column;this.advance();let i="";for(;this.isDigit(this.peek());)i+=this.advance();let s=parseInt(i,10)||0;return{type:c.RELATIVE_OFFSET,value:`+${s}`,offset:s,line:e,column:t}}readPattern(){let e=this.line,t=this.column;this.advance();let i="",s=!1;for(;this.pos<this.input.length;){let a=this.peek();if(a==="/"&&!s)break;if(a==="\\")i+=this.advance(),this.pos<this.input.length&&this.peek()!==`
20
- `&&(i+=this.advance());else{if(a===`
21
- `)break;a==="["&&!s?(s=!0,i+=this.advance(),this.peek()==="^"&&(i+=this.advance()),this.peek()==="]"&&(i+=this.advance())):a==="]"&&s?(s=!1,i+=this.advance()):i+=this.advance()}}return this.peek()==="/"&&this.advance(),{type:c.PATTERN,value:i,pattern:i,line:e,column:t}}readLabelDef(){let e=this.line,t=this.column;for(this.advance();this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
22
- `||s===";"||s==="}"||s==="{")break;i+=this.advance()}return{type:c.LABEL_DEF,value:i,label:i,line:e,column:t}}readCommand(){let e=this.line,t=this.column,i=this.advance();switch(i){case"s":return this.readSubstitute(e,t);case"y":return this.readTransliterate(e,t);case"a":case"i":case"c":return this.readTextCommand(i,e,t);case"b":return this.readBranch(c.BRANCH,"b",e,t);case"t":return this.readBranch(c.BRANCH_ON_SUBST,"t",e,t);case"T":return this.readBranch(c.BRANCH_ON_NO_SUBST,"T",e,t);case"r":return this.readFileCommand(c.FILE_READ,"r",e,t);case"R":return this.readFileCommand(c.FILE_READ_LINE,"R",e,t);case"w":return this.readFileCommand(c.FILE_WRITE,"w",e,t);case"W":return this.readFileCommand(c.FILE_WRITE_LINE,"W",e,t);case"e":return this.readExecute(e,t);case"p":case"P":case"d":case"D":case"h":case"H":case"g":case"G":case"x":case"n":case"N":case"q":case"Q":case"z":case"=":case"l":case"F":return{type:c.COMMAND,value:i,line:e,column:t};case"v":return this.readVersion(e,t);default:return{type:c.ERROR,value:i,line:e,column:t}}}readSubstitute(e,t){let i=this.advance();if(!i||i===`
23
- `)return{type:c.ERROR,value:"s",line:e,column:t};let s="",a=!1;for(;this.pos<this.input.length;){let o=this.peek();if(o===i&&!a)break;if(o==="\\")this.advance(),this.pos<this.input.length&&this.peek()!==`
24
- `?this.peek()===i&&!a?s+=this.advance():(s+="\\",s+=this.advance()):s+="\\";else{if(o===`
25
- `)break;o==="["&&!a?(a=!0,s+=this.advance(),this.peek()==="^"&&(s+=this.advance()),this.peek()==="]"&&(s+=this.advance())):o==="]"&&a?(a=!1,s+=this.advance()):s+=this.advance()}}if(this.peek()!==i)return{type:c.ERROR,value:"unterminated substitution pattern",line:e,column:t};this.advance();let r="";for(;this.pos<this.input.length&&this.peek()!==i;)if(this.peek()==="\\")if(this.advance(),this.pos<this.input.length){let o=this.peek();o==="\\"?(this.advance(),this.pos<this.input.length&&this.peek()===`
26
- `?(r+=`
27
- `,this.advance()):r+="\\"):o===`
28
- `?(r+=`
29
- `,this.advance()):r+=`\\${this.advance()}`}else r+="\\";else{if(this.peek()===`
30
- `)break;r+=this.advance()}this.peek()===i&&this.advance();let l="";for(;this.pos<this.input.length;){let o=this.peek();if(o==="g"||o==="i"||o==="p"||o==="I"||this.isDigit(o))l+=this.advance();else break}return{type:c.SUBSTITUTE,value:`s${i}${s}${i}${r}${i}${l}`,pattern:s,replacement:r,flags:l,line:e,column:t}}readTransliterate(e,t){let i=this.advance();if(!i||i===`
31
- `)return{type:c.ERROR,value:"y",line:e,column:t};let s=this.readEscapedString(i);if(s===null||this.peek()!==i)return{type:c.ERROR,value:"unterminated transliteration source",line:e,column:t};this.advance();let a=this.readEscapedString(i);if(a===null||this.peek()!==i)return{type:c.ERROR,value:"unterminated transliteration dest",line:e,column:t};this.advance();let r=this.peek();for(;r===" "||r===" ";)this.advance(),r=this.peek();return r!==""&&r!==";"&&r!==`
32
- `&&r!=="}"?{type:c.ERROR,value:"extra text at the end of a transform command",line:e,column:t}:{type:c.TRANSLITERATE,value:`y${i}${s}${i}${a}${i}`,source:s,dest:a,line:e,column:t}}readTextCommand(e,t,i){let s=!1;this.peek()==="\\"&&this.pos+1<this.input.length&&(this.input[this.pos+1]===`
33
- `||this.input[this.pos+1]===" "||this.input[this.pos+1]===" ")&&(s=!0,this.advance()),(this.peek()===" "||this.peek()===" ")&&this.advance(),this.peek()==="\\"&&this.pos+1<this.input.length&&(this.input[this.pos+1]===" "||this.input[this.pos+1]===" ")&&this.advance(),s&&this.peek()===`
34
- `&&this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
35
- `){if(a.endsWith("\\")){a=`${a.slice(0,-1)}
36
- `,this.advance();continue}break}if(r==="\\"&&this.pos+1<this.input.length){let l=this.input[this.pos+1];if(l==="n"){a+=`
37
- `,this.advance(),this.advance();continue}if(l==="t"){a+=" ",this.advance(),this.advance();continue}if(l==="r"){a+="\r",this.advance(),this.advance();continue}}a+=this.advance()}return{type:c.TEXT_CMD,value:e,text:a,line:t,column:i}}readBranch(e,t,i,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===" "||r===" "||r===`
38
- `||r===";"||r==="}"||r==="{")break;a+=this.advance()}return{type:e,value:t,label:a||void 0,line:i,column:s}}readVersion(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===" "||s===" "||s===`
39
- `||s===";"||s==="}"||s==="{")break;i+=this.advance()}return{type:c.VERSION,value:"v",label:i||void 0,line:e,column:t}}readFileCommand(e,t,i,s){for(;this.peek()===" "||this.peek()===" ";)this.advance();let a="";for(;this.pos<this.input.length;){let r=this.peek();if(r===`
40
- `||r===";")break;a+=this.advance()}return{type:e,value:t,filename:a.trim(),line:i,column:s}}readExecute(e,t){for(;this.peek()===" "||this.peek()===" ";)this.advance();let i="";for(;this.pos<this.input.length;){let s=this.peek();if(s===`
41
- `||s===";")break;i+=this.advance()}return{type:c.EXECUTE,value:"e",command:i.trim()||void 0,line:e,column:t}}isDigit(e){return e>="0"&&e<="9"}};var z=class{scripts;tokens=[];pos=0;extendedRegex=!1;constructor(e,t=!1){this.scripts=e,this.extendedRegex=t}parse(){let e=[];for(let t of this.scripts){let i=new A(t);for(this.tokens=i.tokenize(),this.pos=0;!this.isAtEnd();){if(this.check(c.NEWLINE)||this.check(c.SEMICOLON)){this.advance();continue}let s=this.pos,a=this.parseCommand();if(a.error)return{commands:[],error:a.error};if(a.command&&e.push(a.command),this.pos===s&&!this.isAtEnd())return{commands:[],error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}}return{commands:e}}parseCommand(){let e=this.parseAddressRange();if(e?.error)return{command:null,error:e.error};let t=e?.address;for(this.check(c.NEGATION)&&(this.advance(),t&&(t.negated=!0));this.check(c.NEWLINE)||this.check(c.SEMICOLON);)this.advance();if(this.isAtEnd())return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null};let i=this.peek();switch(i.type){case c.COMMAND:return this.parseSimpleCommand(i,t);case c.SUBSTITUTE:return this.parseSubstituteFromToken(i,t);case c.TRANSLITERATE:return this.parseTransliterateFromToken(i,t);case c.LABEL_DEF:return this.advance(),{command:{type:"label",name:i.label||""}};case c.BRANCH:return this.advance(),{command:{type:"branch",address:t,label:i.label}};case c.BRANCH_ON_SUBST:return this.advance(),{command:{type:"branchOnSubst",address:t,label:i.label}};case c.BRANCH_ON_NO_SUBST:return this.advance(),{command:{type:"branchOnNoSubst",address:t,label:i.label}};case c.TEXT_CMD:return this.advance(),this.parseTextCommand(i,t);case c.FILE_READ:return this.advance(),{command:{type:"readFile",address:t,filename:i.filename||""}};case c.FILE_READ_LINE:return this.advance(),{command:{type:"readFileLine",address:t,filename:i.filename||""}};case c.FILE_WRITE:return this.advance(),{command:{type:"writeFile",address:t,filename:i.filename||""}};case c.FILE_WRITE_LINE:return this.advance(),{command:{type:"writeFirstLine",address:t,filename:i.filename||""}};case c.EXECUTE:return this.advance(),{command:{type:"execute",address:t,command:i.command}};case c.VERSION:return this.advance(),{command:{type:"version",address:t,minVersion:i.label}};case c.LBRACE:return this.parseGroup(t);case c.RBRACE:return{command:null};case c.ERROR:return{command:null,error:`invalid command: ${i.value}`};default:return t&&(t.start!==void 0||t.end!==void 0)?{command:null,error:"command expected"}:{command:null}}}parseSimpleCommand(e,t){this.advance();let i=e.value;switch(i){case"p":return{command:{type:"print",address:t}};case"P":return{command:{type:"printFirstLine",address:t}};case"d":return{command:{type:"delete",address:t}};case"D":return{command:{type:"deleteFirstLine",address:t}};case"h":return{command:{type:"hold",address:t}};case"H":return{command:{type:"holdAppend",address:t}};case"g":return{command:{type:"get",address:t}};case"G":return{command:{type:"getAppend",address:t}};case"x":return{command:{type:"exchange",address:t}};case"n":return{command:{type:"next",address:t}};case"N":return{command:{type:"nextAppend",address:t}};case"q":return{command:{type:"quit",address:t}};case"Q":return{command:{type:"quitSilent",address:t}};case"z":return{command:{type:"zap",address:t}};case"=":return{command:{type:"lineNumber",address:t}};case"l":return{command:{type:"list",address:t}};case"F":return{command:{type:"printFilename",address:t}};default:return{command:null,error:`unknown command: ${i}`}}}parseSubstituteFromToken(e,t){this.advance();let i=e.flags||"",s,a=i.match(/(\d+)/);return a&&(s=parseInt(a[1],10)),{command:{type:"substitute",address:t,pattern:e.pattern||"",replacement:e.replacement||"",global:i.includes("g"),ignoreCase:i.includes("i")||i.includes("I"),printOnMatch:i.includes("p"),nthOccurrence:s,extendedRegex:this.extendedRegex}}}parseTransliterateFromToken(e,t){this.advance();let i=e.source||"",s=e.dest||"";return i.length!==s.length?{command:null,error:"transliteration sets must have same length"}:{command:{type:"transliterate",address:t,source:i,dest:s}}}parseTextCommand(e,t){let i=e.value,s=e.text||"";switch(i){case"a":return{command:{type:"append",address:t,text:s}};case"i":return{command:{type:"insert",address:t,text:s}};case"c":return{command:{type:"change",address:t,text:s}};default:return{command:null,error:`unknown text command: ${i}`}}}parseGroup(e){this.advance();let t=[];for(;!this.isAtEnd()&&!this.check(c.RBRACE);){if(this.check(c.NEWLINE)||this.check(c.SEMICOLON)){this.advance();continue}let i=this.pos,s=this.parseCommand();if(s.error)return{command:null,error:s.error};if(s.command&&t.push(s.command),this.pos===i&&!this.isAtEnd())return{command:null,error:`unknown command: '${this.peek()?.value??this.peek()?.type}'`}}return this.check(c.RBRACE)?(this.advance(),{command:{type:"group",address:e,commands:t}}):{command:null,error:"unmatched brace in grouped commands"}}parseAddressRange(){if(this.check(c.COMMA))return{error:"expected context address"};let e=this.parseAddress();if(e===void 0)return;let t;if(this.check(c.RELATIVE_OFFSET))t={offset:this.advance().offset||0};else if(this.check(c.COMMA)&&(this.advance(),t=this.parseAddress(),t===void 0))return{error:"expected context address"};return{address:{start:e,end:t}}}parseAddress(){let e=this.peek();switch(e.type){case c.NUMBER:return this.advance(),e.value;case c.DOLLAR:return this.advance(),"$";case c.PATTERN:return this.advance(),{pattern:e.pattern||e.value};case c.STEP:return this.advance(),{first:e.first||0,step:e.step||0};case c.RELATIVE_OFFSET:return this.advance(),{offset:e.offset||0};default:return}}peek(){return this.tokens[this.pos]||{type:c.EOF,value:"",line:0,column:0}}advance(){return this.isAtEnd()||this.pos++,this.tokens[this.pos-1]}check(e){return this.peek().type===e}isAtEnd(){return this.peek().type===c.EOF}};function J(n,e=!1){let t=!1,i=!1,s=[];for(let o=0;o<n.length;o++){let d=n[o];if(s.length===0&&o===0){let f=d.match(/^#([nr]+)\s*(?:\n|$)/i);if(f){let v=f[1].toLowerCase();v.includes("n")&&(t=!0),v.includes("r")&&(i=!0),d=d.slice(f[0].length)}}if(s.length>0&&s[s.length-1].endsWith("\\")){let f=s[s.length-1];s[s.length-1]=`${f}
42
- ${d}`}else s.push(d)}let a=s.join(`
43
- `),l=new z([a],e||i).parse();if(!l.error&&l.commands.length>0){let o=pe(l.commands);if(o)return{commands:[],error:o,silentMode:t,extendedRegexMode:i}}return{...l,silentMode:t,extendedRegexMode:i}}function pe(n){let e=new Set;Y(n,e);let t=ee(n,e);if(t)return`undefined label '${t}'`}function Y(n,e){for(let t of n)t.type==="label"?e.add(t.name):t.type==="group"&&Y(t.commands,e)}function ee(n,e){for(let t of n){if((t.type==="branch"||t.type==="branchOnSubst"||t.type==="branchOnNoSubst")&&t.label&&!e.has(t.label))return t.label;if(t.type==="group"){let i=ee(t.commands,e);if(i)return i}}}var me={name:"sed",summary:"stream editor for filtering and transforming text",usage:"sed [OPTION]... {script} [input-file]...",options:["-n, --quiet, --silent suppress automatic printing of pattern space","-e script add the script to commands to be executed","-f script-file read script from file","-i, --in-place edit files in place","-E, -r, --regexp-extended use extended regular expressions"," --help display this help and exit"],description:`Commands:
44
- s/regexp/replacement/[flags] substitute
45
- d delete pattern space
46
- p print pattern space
47
- a\\ text append text after line
48
- i\\ text insert text before line
49
- c\\ text change (replace) line with text
50
- h copy pattern space to hold space
51
- H append pattern space to hold space
52
- g copy hold space to pattern space
53
- G append hold space to pattern space
54
- x exchange pattern and hold spaces
55
- n read next line into pattern space
56
- N append next line to pattern space
57
- y/source/dest/ transliterate characters
58
- = print line number
59
- l list pattern space (escape special chars)
60
- b [label] branch to label
61
- t [label] branch on substitution
62
- T [label] branch if no substitution
63
- :label define label
64
- q quit
65
- Q quit without printing
66
-
67
- Addresses:
68
- N line number
69
- $ last line
70
- /regexp/ lines matching regexp
71
- N,M range from line N to M
72
- first~step every step-th line starting at first`};async function H(n,e,t,i={}){let{limits:s,filename:a,fs:r,cwd:l,coverage:o}=i,d=n.endsWith(`
73
- `),f=n.split(`
74
- `);f.length>0&&f[f.length-1]===""&&f.pop();let v=f.length,m="",p,u=!1,h=s?.maxStringLength??0,b=R=>{if(m+=R,h>0&&m.length>h)throw new C(`sed: output size limit exceeded (${h} bytes)`,"string_length")},x="",y,te=new Map,F=new Map,$=new Map,_=new Map,ne=s?{maxIterations:s.maxSedIterations,maxStringLength:h}:void 0;for(let R=0;R<f.length;R++){let g={...Q(v,a,te),patternSpace:f[R],holdSpace:x,lastPattern:y,lineNumber:R+1,totalLines:v,substitutionMade:!1,coverage:o},ie={lines:f,currentLineIndex:R},V=0,se=1e4;g.linesConsumedInCycle=0;do{if(V++,V>se)break;if(g.restartCycle=!1,g.pendingFileReads=[],g.pendingFileWrites=[],U(e,g,ie,ne),r&&l){for(let E of g.pendingFileReads){let k=r.resolvePath(l,E.filename);try{if(E.wholeFile){let S=await r.readFile(k);g.appendBuffer.push(S.replace(/\n$/,""))}else{if(!F.has(k)){let ae=await r.readFile(k);F.set(k,ae.split(`
75
- `)),$.set(k,0)}let S=F.get(k),w=$.get(k);S&&w!==void 0&&w<S.length&&(g.appendBuffer.push(S[w]),$.set(k,w+1))}}catch{}}for(let E of g.pendingFileWrites){let k=r.resolvePath(l,E.filename),S=_.get(k)||"";_.set(k,S+E.content)}}}while(g.restartCycle&&!g.deleted&&!g.quit&&!g.quitSilent);if(R+=g.linesConsumedInCycle,x=g.holdSpace,y=g.lastPattern,!t)for(let E of g.nCommandOutput)b(`${E}
76
- `);let re=g.lineNumberOutput.length>0;for(let E of g.lineNumberOutput)b(`${E}
77
- `);let X=[],M=[];for(let E of g.appendBuffer)E.startsWith("__INSERT__")?X.push(E.slice(10)):M.push(E);for(let E of X)b(`${E}
78
- `);let L=!1;!g.deleted&&!g.quitSilent?t?g.printed&&(b(`${g.patternSpace}
79
- `),L=!0):(b(`${g.patternSpace}
80
- `),L=!0):g.changedText!==void 0&&(b(`${g.changedText}
81
- `),L=!0);for(let E of M)b(`${E}
82
- `);if(u=(re||L)&&M.length===0,g.quit||g.quitSilent){if(g.exitCode!==void 0&&(p=g.exitCode),g.errorMessage)return{output:"",exitCode:p||1,errorMessage:g.errorMessage};break}}if(r&&l)for(let[R,g]of _)try{await r.writeFile(R,g)}catch{}return!d&&u&&m.endsWith(`
83
- `)&&(m=m.slice(0,-1)),{output:m,exitCode:p}}var Le={name:"sed",async execute(n,e){if(j(n))return G(me);let t=[],i=[],s=!1,a=!1,r=!1,l=[];for(let u=0;u<n.length;u++){let h=n[u];if(h==="-n"||h==="--quiet"||h==="--silent")s=!0;else if(h==="-i"||h==="--in-place")a=!0;else if(h.startsWith("-i"))a=!0;else if(h==="-E"||h==="-r"||h==="--regexp-extended")r=!0;else if(h==="-e")u+1<n.length&&t.push(n[++u]);else if(h==="-f")u+1<n.length&&i.push(n[++u]);else{if(h.startsWith("--"))return T("sed",h);if(h==="-")l.push(h);else if(h.startsWith("-")&&h.length>1){for(let b of h.slice(1))if(b!=="n"&&b!=="e"&&b!=="f"&&b!=="i"&&b!=="E"&&b!=="r")return T("sed",`-${b}`);h.includes("n")&&(s=!0),h.includes("i")&&(a=!0),(h.includes("E")||h.includes("r"))&&(r=!0),h.includes("e")&&!h.includes("n")&&!h.includes("i")&&u+1<n.length&&t.push(n[++u]),h.includes("f")&&!h.includes("e")&&u+1<n.length&&i.push(n[++u])}else!h.startsWith("-")&&t.length===0&&i.length===0?t.push(h):h.startsWith("-")||l.push(h)}}for(let u of i){let h=e.fs.resolvePath(e.cwd,u);try{let b=await e.fs.readFile(h);for(let x of b.split(`
84
- `)){let y=x.trim();y&&!y.startsWith("#")&&t.push(y)}}catch{return{stdout:"",stderr:`sed: couldn't open file ${u}: No such file or directory
85
- `,exitCode:1}}}if(t.length===0)return{stdout:"",stderr:`sed: no script specified
86
- `,exitCode:1};let{commands:o,error:d,silentMode:f}=J(t,r);if(d)return{stdout:"",stderr:`sed: ${d}
87
- `,exitCode:1};let v=!!(s||f);if(a){if(l.length===0)return{stdout:"",stderr:`sed: -i requires at least one file argument
88
- `,exitCode:1};for(let u of l){if(u==="-")continue;let h=e.fs.resolvePath(e.cwd,u);try{let b=await e.fs.readFile(h),x=await H(b,o,v,{limits:e.limits,filename:u,fs:e.fs,cwd:e.cwd,coverage:e.coverage});if(x.errorMessage)return{stdout:"",stderr:`${x.errorMessage}
89
- `,exitCode:x.exitCode??1};await e.fs.writeFile(h,x.output)}catch(b){return b instanceof C?{stdout:"",stderr:`sed: ${b.message}
90
- `,exitCode:C.EXIT_CODE}:{stdout:"",stderr:`sed: ${u}: No such file or directory
91
- `,exitCode:1}}}return{stdout:"",stderr:"",exitCode:0}}let m="";if(l.length===0){m=e.stdin;try{let u=await H(m,o,v,{limits:e.limits,fs:e.fs,cwd:e.cwd,coverage:e.coverage});return{stdout:u.output,stderr:u.errorMessage?`${u.errorMessage}
92
- `:"",exitCode:u.exitCode??0}}catch(u){if(u instanceof C)return{stdout:"",stderr:`sed: ${u.message}
93
- `,exitCode:C.EXIT_CODE};throw u}}let p=!1;for(let u of l){let h;if(u==="-")p?h="":(h=e.stdin,p=!0);else{let b=e.fs.resolvePath(e.cwd,u);try{h=await e.fs.readFile(b)}catch(x){return x instanceof C?{stdout:"",stderr:`sed: ${x.message}
94
- `,exitCode:C.EXIT_CODE}:{stdout:"",stderr:`sed: ${u}: No such file or directory
95
- `,exitCode:1}}}m.length>0&&h.length>0&&!m.endsWith(`
96
- `)&&(m+=`
97
- `),m+=h}try{let u=await H(m,o,v,{limits:e.limits,filename:l.length===1?l[0]:void 0,fs:e.fs,cwd:e.cwd,coverage:e.coverage});return{stdout:u.output,stderr:u.errorMessage?`${u.errorMessage}
98
- `:"",exitCode:u.exitCode??0}}catch(u){if(u instanceof C)return{stdout:"",stderr:`sed: ${u.message}
99
- `,exitCode:C.EXIT_CODE};throw u}}},we={name:"sed",flags:[{flag:"-n",type:"boolean"},{flag:"-i",type:"boolean"},{flag:"-E",type:"boolean"},{flag:"-r",type:"boolean"},{flag:"-e",type:"value",valueHint:"string"}],stdinType:"text",needsArgs:!0};export{Le as a,we as b};