@poe-platform/safe-bash 0.1.800 → 0.1.802

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 (502) hide show
  1. package/README.md +16 -5
  2. package/dist/image-ast/index.browser.js +122 -76
  3. package/dist/image-ast/index.js +122 -76
  4. package/dist/pdf-ast/index.js +4 -3
  5. package/dist/safe-bash/chunks/chunk-3HQU4OJO.js +13 -0
  6. package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
  7. package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
  8. package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-44ALJ4QG.js} +5809 -7424
  9. package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
  10. package/dist/safe-bash/chunks/chunk-4BSJLKNM.js +14 -0
  11. package/dist/safe-bash/chunks/chunk-4D4N7IU2.js +47 -0
  12. package/dist/safe-bash/chunks/chunk-55YJASTN.js +14 -0
  13. package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
  16. package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
  17. package/dist/safe-bash/chunks/chunk-7ZBU7KYV.js +14 -0
  18. package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
  19. package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
  20. package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
  21. package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-BJA5XNP6.js} +6 -6
  22. package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
  23. package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
  24. package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
  25. package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
  27. package/dist/safe-bash/chunks/chunk-DQP3VHSB.js +15 -0
  28. package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
  30. package/dist/safe-bash/chunks/chunk-FZE4HW6G.js +11 -0
  31. package/dist/safe-bash/chunks/chunk-GEG3BWGE.js +14 -0
  32. package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-GETUOD5D.js} +4 -4
  33. package/dist/safe-bash/chunks/chunk-HBCN24ZA.js +50 -0
  34. package/dist/safe-bash/chunks/chunk-HZ7BWKQ3.js +13 -0
  35. package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-HZAMGT5I.js} +3 -3
  36. package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
  38. package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
  39. package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
  40. package/dist/safe-bash/chunks/chunk-KDNSPLII.js +83 -0
  41. package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
  43. package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-NQCM3TYR.js} +922 -658
  44. package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
  45. package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
  47. package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-PH63PLPZ.js} +8 -8
  48. package/dist/safe-bash/chunks/chunk-QGUV42T5.js +44 -0
  49. package/dist/safe-bash/chunks/chunk-R3NAKOED.js +51 -0
  50. package/dist/safe-bash/chunks/chunk-RRR7AQ24.js +38 -0
  51. package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-RSTHLAF3.js} +30 -23
  52. package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-SHEMU2Z7.js} +378 -1148
  53. package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
  54. package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
  55. package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
  56. package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-VKNVHEX3.js} +2 -7
  57. package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +962 -0
  58. package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
  59. package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-WDLGKIHD.js} +56 -39
  60. package/dist/safe-bash/chunks/chunk-XAQMU6OY.js +14 -0
  61. package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
  62. package/dist/safe-bash/chunks/chunk-ZVD5IS4V.js +49 -0
  63. package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
  64. package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
  65. package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
  66. package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
  67. package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
  68. package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
  69. package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
  70. package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
  71. package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
  72. package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
  73. package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
  74. package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
  75. package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
  76. package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
  77. package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
  78. package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
  79. package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
  80. package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
  81. package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
  82. package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
  83. package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
  84. package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
  85. package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
  86. package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
  87. package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
  89. package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
  90. package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
  91. package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
  92. package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
  93. package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
  94. package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-6GWJUQAV.js} +237 -145
  95. package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
  96. package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
  99. package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
  101. package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
  102. package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
  103. package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
  104. package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
  105. package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
  106. package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
  107. package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
  108. package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
  109. package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
  110. package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
  111. package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
  112. package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
  114. package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
  115. package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
  116. package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
  117. package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
  118. package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
  119. package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
  120. package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
  121. package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
  122. package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
  123. package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
  124. package/dist/safe-bash/command-chunks/{chunk-EFANWIHL.js → chunk-GY3BWK7K.js} +1 -0
  125. package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
  126. package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
  127. package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
  128. package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
  129. package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
  130. package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
  131. package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
  133. package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
  134. package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
  135. package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
  136. package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
  137. package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
  138. package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
  139. package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
  140. package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
  141. package/dist/safe-bash/command-chunks/{chunk-WBNZ4PRE.js → chunk-NGG2XL56.js} +7 -4
  142. package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
  143. package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-GLOZX57Y.js → chunk-OQKC5ZU2.js} +23 -114
  145. package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
  146. package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
  147. package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
  148. package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
  149. package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
  150. package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
  151. package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
  152. package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
  153. package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
  154. package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
  155. package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
  156. package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
  157. package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
  158. package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
  159. package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
  160. package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
  161. package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
  162. package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
  163. package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
  164. package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
  165. package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
  166. package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
  167. package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
  168. package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
  169. package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-VT6MJBEI.js} +1 -1
  170. package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
  171. package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
  172. package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
  173. package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
  174. package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
  175. package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
  176. package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-X54L3DBL.js} +6 -9
  177. package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
  178. package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
  179. package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
  180. package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
  181. package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-YVNGTIJO.js} +1 -1
  182. package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
  183. package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
  184. package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
  185. package/dist/safe-bash/commands/apply-patch/index.browser.js +14 -0
  186. package/dist/safe-bash/commands/archive/index.browser.js +36 -0
  187. package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
  188. package/dist/safe-bash/commands/column/index.browser.js +12 -0
  189. package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
  190. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  191. package/dist/safe-bash/commands/docx/index.browser.js +1 -1
  192. package/dist/safe-bash/commands/du/index.browser.js +14 -0
  193. package/dist/safe-bash/commands/execution.js +19 -13
  194. package/dist/safe-bash/commands/expr/index.browser.js +12 -0
  195. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  196. package/dist/safe-bash/commands/file/index.browser.js +14 -0
  197. package/dist/safe-bash/commands/filesystem.d.ts +1 -1
  198. package/dist/safe-bash/commands/filesystem.js +26 -15
  199. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  200. package/dist/safe-bash/commands/grep-aliases/index.browser.js +14 -0
  201. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  202. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +16 -0
  203. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
  204. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  205. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  206. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  207. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  208. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  209. package/dist/safe-bash/commands/media/index.browser.js +1 -1
  210. package/dist/safe-bash/commands/metadata/index.browser.js +21 -0
  211. package/dist/safe-bash/commands/network/curl.d.ts +1 -1
  212. package/dist/safe-bash/commands/network/curl.js +1 -3
  213. package/dist/safe-bash/commands/network/index.browser.js +4 -4
  214. package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
  215. package/dist/safe-bash/commands/network/platform-portable.js +1 -26
  216. package/dist/safe-bash/commands/network/public.d.ts +2 -2
  217. package/dist/safe-bash/commands/network/public.js +2 -2
  218. package/dist/safe-bash/commands/network/transport.js +2 -2
  219. package/dist/safe-bash/commands/network/wget.d.ts +1 -1
  220. package/dist/safe-bash/commands/network/wget.js +1 -3
  221. package/dist/safe-bash/commands/node/filesystem.js +3 -2
  222. package/dist/safe-bash/commands/node/index.browser.js +8 -8
  223. package/dist/safe-bash/commands/node/types.js +1 -1
  224. package/dist/safe-bash/commands/op/index.browser.js +3 -3
  225. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  226. package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
  227. package/dist/safe-bash/commands/python/index.browser.js +11 -11
  228. package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
  229. package/dist/safe-bash/commands/python/manifest.js +6 -3
  230. package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
  231. package/dist/safe-bash/commands/python/shell-capability.js +3 -2
  232. package/dist/safe-bash/commands/python/worker.browser.js +3 -3
  233. package/dist/safe-bash/commands/regex-execution/public.browser.js +8 -6
  234. package/dist/safe-bash/commands/safejs/runtime.js +16 -7
  235. package/dist/safe-bash/commands/split/index.browser.js +14 -0
  236. package/dist/safe-bash/commands/standard.d.ts +1 -0
  237. package/dist/safe-bash/commands/standard.js +2 -1
  238. package/dist/safe-bash/commands/stream-format/index.browser.js +11 -0
  239. package/dist/safe-bash/commands/stream-inspection/index.browser.js +11 -0
  240. package/dist/safe-bash/commands/streams.js +11 -29
  241. package/dist/safe-bash/commands/table-text/index.browser.js +11 -0
  242. package/dist/safe-bash/commands/text.js +269 -496
  243. package/dist/safe-bash/commands/time-env/index.browser.js +15 -0
  244. package/dist/safe-bash/commands/tree/index.browser.js +14 -0
  245. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  246. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  247. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  248. package/dist/safe-bash/core.browser.js +1 -1
  249. package/dist/safe-bash/core.d.ts +6 -1
  250. package/dist/safe-bash/core.js +1 -1
  251. package/dist/safe-bash/full-core.browser.js +308 -295
  252. package/dist/safe-bash/jobs.browser.js +5 -5
  253. package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
  254. package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
  255. package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
  256. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
  257. package/dist/safe-bash/optional-host.browser.js +15 -15
  258. package/dist/safe-bash/plugins/composition.d.ts +1 -0
  259. package/dist/safe-bash/plugins/composition.js +3 -8
  260. package/dist/safe-bash/plugins/index.browser.js +41 -27
  261. package/dist/safe-bash/registry-entry.browser.js +42 -28
  262. package/dist/safe-bash/search.browser.js +48 -0
  263. package/dist/safe-bash/shell/arrays/bindings.js +1 -1
  264. package/dist/safe-bash/shell/arrays/state.js +4 -0
  265. package/dist/safe-bash/shell/brace-expansion.js +1 -1
  266. package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
  267. package/dist/safe-bash/shell/dynamic-variables.js +25 -0
  268. package/dist/safe-bash/shell/parser.js +8 -1
  269. package/dist/safe-bash/shell/runtime.d.ts +4 -13
  270. package/dist/safe-bash/shell/runtime.js +334 -1049
  271. package/dist/safe-bash/shell/shell.js +2 -54
  272. package/dist/safe-bash/shell-entry.browser.js +35 -26
  273. package/dist/safe-bash/trap.browser.js +4 -4
  274. package/dist/safe-bash/yq-browser/index.js +1 -1
  275. package/dist/safe-bash-base-encoding-engine/base.js +2 -2
  276. package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
  277. package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
  278. package/dist/safe-bash-byte-input-engine/index.js +4 -1
  279. package/dist/safe-bash-checksum-engine/index.js +13 -6
  280. package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
  281. package/dist/safe-bash-command-apply-patch/apply.js +4 -3
  282. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  283. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  284. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  285. package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
  286. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  287. package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
  288. package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
  289. package/dist/safe-bash-command-awk/awk-values.js +1 -1
  290. package/dist/safe-bash-command-awk/awk.js +5 -5
  291. package/dist/safe-bash-command-awk/index.js +5 -5
  292. package/dist/safe-bash-command-bc/index.d.ts +2 -0
  293. package/dist/safe-bash-command-bc/index.js +123 -92
  294. package/dist/safe-bash-command-column/column.js +5 -5
  295. package/dist/safe-bash-command-column/display.d.ts +1 -1
  296. package/dist/safe-bash-command-column/display.js +1 -1
  297. package/dist/safe-bash-command-column/index.js +5 -5
  298. package/dist/safe-bash-command-column/internal.d.ts +0 -2
  299. package/dist/safe-bash-command-column/internal.js +1 -1
  300. package/dist/safe-bash-command-column/layout.js +4 -4
  301. package/dist/safe-bash-command-column/table.js +2 -2
  302. package/dist/safe-bash-command-comm/comm.js +1 -1
  303. package/dist/safe-bash-command-comm/index.js +1 -1
  304. package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
  305. package/dist/safe-bash-command-csvcut/index.js +1 -0
  306. package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
  307. package/dist/safe-bash-command-csvgrep/index.js +2 -2
  308. package/dist/safe-bash-command-csvkit/index.js +9 -9
  309. package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
  310. package/dist/safe-bash-command-curl/curl.js +1 -1
  311. package/dist/safe-bash-command-curl/index.js +1 -1
  312. package/dist/safe-bash-command-dd/index.js +2 -0
  313. package/dist/safe-bash-command-diff/diff.js +1 -1
  314. package/dist/safe-bash-command-diff/index.js +1 -1
  315. package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
  316. package/dist/safe-bash-command-fd/index.js +9 -9
  317. package/dist/safe-bash-command-ffmpeg/index.js +31 -8
  318. package/dist/safe-bash-command-file/index.js +1 -1
  319. package/dist/safe-bash-command-file/shared.js +1 -1
  320. package/dist/safe-bash-command-find/find.js +1 -1
  321. package/dist/safe-bash-command-find/index.js +1 -1
  322. package/dist/safe-bash-command-gzip/index.js +3 -2
  323. package/dist/safe-bash-command-hexdump/command.js +4 -4
  324. package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
  325. package/dist/safe-bash-command-hexdump/index.js +4 -4
  326. package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
  327. package/dist/safe-bash-command-hexdump/internal.js +1 -1
  328. package/dist/safe-bash-command-hexdump/io.js +2 -2
  329. package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
  330. package/dist/safe-bash-command-hexdump/options.js +2 -2
  331. package/dist/safe-bash-command-hostname/index.js +1 -1
  332. package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
  333. package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
  334. package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
  335. package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
  336. package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
  337. package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
  338. package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
  339. package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
  340. package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
  341. package/dist/safe-bash-command-htmlq/index.js +27 -9
  342. package/dist/safe-bash-command-iconv/codec.js +1 -1
  343. package/dist/safe-bash-command-iconv/command.js +2 -2
  344. package/dist/safe-bash-command-iconv/index.js +2 -2
  345. package/dist/safe-bash-command-imagemagick/index.js +24 -6
  346. package/dist/safe-bash-command-join/index.js +1 -1
  347. package/dist/safe-bash-command-join/join.js +1 -1
  348. package/dist/safe-bash-command-jq/index.js +1 -1
  349. package/dist/safe-bash-command-jq/jq.js +1 -1
  350. package/dist/safe-bash-command-less/index.js +43 -28
  351. package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
  352. package/dist/safe-bash-command-nl/index.js +1 -1
  353. package/dist/safe-bash-command-nl/nl.js +1 -1
  354. package/dist/safe-bash-command-numfmt/index.js +0 -11
  355. package/dist/safe-bash-command-od/index.js +101 -68
  356. package/dist/safe-bash-command-pandoc/command.js +1 -1
  357. package/dist/safe-bash-command-pandoc/index.js +1 -1
  358. package/dist/safe-bash-command-paste/index.js +1 -1
  359. package/dist/safe-bash-command-paste/paste.js +1 -1
  360. package/dist/safe-bash-command-pathchk/index.js +3 -13
  361. package/dist/safe-bash-command-pdfimages/index.js +27 -11
  362. package/dist/safe-bash-command-pdfinfo/index.js +19 -10
  363. package/dist/safe-bash-command-pdftk/index.js +3 -3
  364. package/dist/safe-bash-command-pdftoppm/index.js +26 -10
  365. package/dist/safe-bash-command-pdftotext/index.js +27 -13
  366. package/dist/safe-bash-command-qpdf/index.js +5 -5
  367. package/dist/safe-bash-command-rg/index.js +1 -1
  368. package/dist/safe-bash-command-rg/rg-command.d.ts +0 -1
  369. package/dist/safe-bash-command-rg/rg-command.js +3 -5
  370. package/dist/safe-bash-command-sed/index.js +1 -1
  371. package/dist/safe-bash-command-sed/sed.js +1 -1
  372. package/dist/safe-bash-command-shuf/options.d.ts +1 -0
  373. package/dist/safe-bash-command-shuf/options.js +2 -4
  374. package/dist/safe-bash-command-shuf/shuf.js +2 -1
  375. package/dist/safe-bash-command-soffice/index.js +20 -16
  376. package/dist/safe-bash-command-split/index.js +3 -3
  377. package/dist/safe-bash-command-split/io.js +1 -1
  378. package/dist/safe-bash-command-split/outputs.js +2 -2
  379. package/dist/safe-bash-command-split/split.js +3 -3
  380. package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
  381. package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
  382. package/dist/safe-bash-command-sqlite3/index.js +284 -85
  383. package/dist/safe-bash-command-ssconvert/commands.js +9 -9
  384. package/dist/safe-bash-command-ssconvert/core.js +8 -8
  385. package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
  386. package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
  387. package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
  388. package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
  389. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
  390. package/dist/safe-bash-command-ssconvert/index.js +20 -20
  391. package/dist/safe-bash-command-tar/extract.js +1 -1
  392. package/dist/safe-bash-command-tar/index.js +5 -4
  393. package/dist/safe-bash-command-tar/modes.js +2 -2
  394. package/dist/safe-bash-command-tree/arguments.js +3 -3
  395. package/dist/safe-bash-command-tree/charset.js +1 -1
  396. package/dist/safe-bash-command-tree/index.js +4 -4
  397. package/dist/safe-bash-command-tree/io.js +1 -1
  398. package/dist/safe-bash-command-tree/pattern.js +2 -2
  399. package/dist/safe-bash-command-tree/tree.js +4 -4
  400. package/dist/safe-bash-command-unexpand/index.js +1 -1
  401. package/dist/safe-bash-command-unexpand/unexpand.js +1 -1
  402. package/dist/safe-bash-command-unrtf/index.js +14 -7
  403. package/dist/safe-bash-command-unzip/index.js +1 -1
  404. package/dist/safe-bash-command-unzip/unzip.js +1 -1
  405. package/dist/safe-bash-command-wget/index.js +1 -1
  406. package/dist/safe-bash-command-wget/wget.js +1 -1
  407. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  408. package/dist/safe-bash-command-xan/argv.js +1 -1
  409. package/dist/safe-bash-command-xan/commands.js +5 -3
  410. package/dist/safe-bash-command-xan/csv.d.ts +1 -1
  411. package/dist/safe-bash-command-xan/csv.js +1 -1
  412. package/dist/safe-bash-command-xan/index.js +7 -7
  413. package/dist/safe-bash-command-xan/io.js +3 -3
  414. package/dist/safe-bash-command-xmllint/index.js +1 -1
  415. package/dist/safe-bash-command-xxd/index.js +105 -91
  416. package/dist/safe-bash-command-xz/command.d.ts +2 -0
  417. package/dist/safe-bash-command-xz/index.d.ts +1 -1
  418. package/dist/safe-bash-command-xz/index.js +8 -0
  419. package/dist/safe-bash-command-yq/query.js +1 -1
  420. package/dist/safe-bash-command-zip/index.js +1 -1
  421. package/dist/safe-bash-command-zip/zip.js +1 -1
  422. package/dist/safe-bash-contracts/escaping.js +3 -3
  423. package/dist/safe-bash-contracts/filesystem-output.js +2 -2
  424. package/dist/safe-bash-contracts/index.d.ts +1 -0
  425. package/dist/safe-bash-contracts/index.js +7 -3
  426. package/dist/safe-bash-contracts/io.d.ts +4 -1
  427. package/dist/safe-bash-contracts/io.js +3 -1
  428. package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
  429. package/dist/safe-bash-contracts/output.js +2 -2
  430. package/dist/safe-bash-diff-engine/index.js +1 -1
  431. package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
  432. package/dist/safe-bash-diff-engine/shared.js +1 -1
  433. package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
  434. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  435. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
  436. package/dist/safe-bash-io-engine/internal.js +1 -1
  437. package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
  438. package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
  439. package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
  440. package/dist/safe-bash-mcp/index.browser.js +416 -0
  441. package/dist/safe-bash-mcp/index.d.ts +54 -2
  442. package/dist/safe-bash-mcp/index.js +286 -90
  443. package/dist/safe-bash-network-engine/aggregate.js +2 -2
  444. package/dist/safe-bash-network-engine/args.js +4 -4
  445. package/dist/safe-bash-network-engine/authorizer.js +1 -1
  446. package/dist/safe-bash-network-engine/body.js +6 -6
  447. package/dist/safe-bash-network-engine/decode.d.ts +1 -1
  448. package/dist/safe-bash-network-engine/decode.js +3 -4
  449. package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
  450. package/dist/safe-bash-network-engine/form-content-type.js +2 -2
  451. package/dist/safe-bash-network-engine/form-headers.js +2 -2
  452. package/dist/safe-bash-network-engine/glob.js +1 -1
  453. package/dist/safe-bash-network-engine/index.js +4 -4
  454. package/dist/safe-bash-network-engine/input.js +6 -6
  455. package/dist/safe-bash-network-engine/output.js +2 -2
  456. package/dist/safe-bash-network-engine/platform-portable.js +3 -3
  457. package/dist/safe-bash-network-engine/shared.js +2 -2
  458. package/dist/safe-bash-network-engine/types.d.ts +7 -2
  459. package/dist/safe-bash-network-engine/types.js +1 -1
  460. package/dist/safe-bash-network-engine/url.js +2 -2
  461. package/dist/safe-bash-query-engine/capture.js +3 -3
  462. package/dist/safe-bash-query-engine/delpaths.js +3 -3
  463. package/dist/safe-bash-query-engine/formats.js +2 -2
  464. package/dist/safe-bash-query-engine/index.js +11 -11
  465. package/dist/safe-bash-query-engine/indices.js +3 -3
  466. package/dist/safe-bash-query-engine/input.js +1 -1
  467. package/dist/safe-bash-query-engine/interpreter.js +9 -9
  468. package/dist/safe-bash-query-engine/parser.js +1 -1
  469. package/dist/safe-bash-query-engine/query-core.js +11 -11
  470. package/dist/safe-bash-query-engine/regex.js +4 -4
  471. package/dist/safe-bash-query-engine/splits.js +5 -5
  472. package/dist/safe-bash-query-engine/values.js +2 -2
  473. package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
  474. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
  475. package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
  476. package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
  477. package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
  478. package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
  479. package/dist/safe-bash-regex-engine/index.js +6 -4
  480. package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -1
  481. package/dist/safe-bash-regex-engine/text/budget.js +1 -1
  482. package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
  483. package/dist/safe-bash-regex-engine/text/regex.js +6 -4
  484. package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
  485. package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
  486. package/dist/safe-bash-search-engine/grep.js +189 -227
  487. package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
  488. package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
  489. package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
  490. package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
  491. package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
  492. package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
  493. package/dist/spreadsheet-engine/formulas/parser.js +3 -1
  494. package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
  495. package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
  496. package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
  497. package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
  498. package/dist/spreadsheet-format-xls/biff.js +1 -1
  499. package/dist/xlsx-ast/xlsx.js +8 -5
  500. package/package.json +68 -12
  501. package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
  502. /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
@@ -20,6 +20,23 @@ import {
20
20
 
21
21
  // packages/safe-bash-regex-engine/src/ere/matcher.ts
22
22
  init_buffer();
23
+ function spanStateKey(position, task, nodeIds) {
24
+ let key = String(position);
25
+ for (let current = task; current; current = current.next) {
26
+ if (current.kind === "close") return `${key}/close`;
27
+ let id = nodeIds.get(current.node);
28
+ if (id === void 0) {
29
+ id = nodeIds.size;
30
+ nodeIds.set(current.node, id);
31
+ }
32
+ key += `/${id}`;
33
+ if (current.kind === "repeat") {
34
+ const count = current.node.max === Infinity ? Math.min(current.count, Math.max(1, current.node.min)) : current.count;
35
+ key += `:${count}:${current.previous === position ? 1 : 0}`;
36
+ }
37
+ }
38
+ return key;
39
+ }
23
40
  var initialCharacters = /* @__PURE__ */ new WeakMap();
24
41
  var sequenceNullNextTasks = /* @__PURE__ */ new WeakMap();
25
42
  var SINGLE_NULL_CAPTURES = Object.freeze([null]);
@@ -317,9 +334,14 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
317
334
  }
318
335
  if (unbounded) {
319
336
  if (signal?.aborted) throw signal.reason;
337
+ const nodeIds = /* @__PURE__ */ new Map();
338
+ const seen = /* @__PURE__ */ new Set();
320
339
  const pendingPos = [];
321
340
  const pendingTask = [];
322
341
  const push2 = (position, next) => {
342
+ const key = spanStateKey(position, next, nodeIds);
343
+ if (seen.has(key)) return;
344
+ seen.add(key);
323
345
  pendingPos.push(position);
324
346
  pendingTask.push(next);
325
347
  };
@@ -327,6 +349,8 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
327
349
  const anchored = root.kind === "start" || root.kind === "sequence" && root.children[0]?.kind === "start";
328
350
  const maxStart2 = anchored ? 0 : rLen;
329
351
  for (let start = 0; start <= maxStart2; start++) {
352
+ if (ledger.workAllowanceUntilCheckpoint(signal) < 1) return null;
353
+ ledger.chargeWork(1, signal);
330
354
  if (firstLitCode >= 0 && !anchored) {
331
355
  const found = buf.indexOf(firstLitCode, rStart + start);
332
356
  if (found < 0 || found >= rStart + rLen) break;
@@ -337,14 +361,17 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
337
361
  }
338
362
  if (word && start > 0 && isAsciiWord(buf[rStart + start - 1])) continue;
339
363
  if (secondLitCode >= 0 && (start + 1 >= rLen || buf[rStart + start + 1] !== secondLitCode)) continue;
364
+ seen.clear();
340
365
  push2(start, rootTask2);
341
366
  let bestPos = -1;
342
367
  while (pendingPos.length > 0) {
368
+ if (ledger.workAllowanceUntilCheckpoint(signal) < 1) return null;
369
+ ledger.chargeWork(1, signal);
343
370
  const statePos = pendingPos.pop();
344
371
  const current = pendingTask.pop();
345
372
  if (current === null) {
346
373
  if (word && statePos < rLen && isAsciiWord(buf[rStart + statePos])) continue;
347
- if (leftmostFirst) {
374
+ if (leftmostFirst || statePos === rLen) {
348
375
  bestPos = statePos;
349
376
  pendingPos.length = 0;
350
377
  pendingTask.length = 0;
@@ -363,11 +390,14 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
363
390
  }
364
391
  const minDotPos = statePos + node2.min;
365
392
  if (minDotPos <= maxDotPos) {
393
+ const scanWork = maxDotPos - minDotPos + 1;
394
+ if (ledger.workAllowanceUntilCheckpoint(signal) < scanWork) return null;
395
+ ledger.chargeWork(scanWork, signal);
366
396
  const nextTask = current.next;
367
397
  if (nextTask && nextTask.kind === "node" && nextTask.node.kind === "literal" && !nextTask.node.insensitive) {
368
398
  const targetCode = nextTask.node.code;
369
399
  const afterLit = nextTask.next;
370
- for (let p = minDotPos; p < maxDotPos; p++) {
400
+ for (let p = minDotPos; p <= maxDotPos && p < rLen; p++) {
371
401
  if (buf[rStart + p] === targetCode) push2(p + 1, afterLit);
372
402
  }
373
403
  } else {
@@ -776,8 +806,22 @@ function admitSynchronousWork(ledger, amount, signal) {
776
806
  ledger.chargeWork(amount, signal);
777
807
  return true;
778
808
  }
779
- function compileEreLinearChain(root, ledger, signal) {
780
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
809
+ function* chargeLinearWork(ledger, amount, signal) {
810
+ while (amount > 0) {
811
+ const allowance = ledger.workAllowanceUntilCheckpoint(signal);
812
+ if (allowance === 0) {
813
+ if (ledger.usage.work >= ledger.limits.work) ledger.chargeWork(1, signal);
814
+ yield;
815
+ continue;
816
+ }
817
+ const charged = Math.min(amount, allowance);
818
+ ledger.chargeWork(charged, signal);
819
+ amount -= charged;
820
+ if (amount > 0) yield;
821
+ }
822
+ }
823
+ function* compileEreLinearChain(root, ledger, signal) {
824
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
781
825
  const cached = ereLinearChainCache.get(root);
782
826
  if (cached !== void 0) return cached;
783
827
  ledger.charge("allocationUnits", 3, signal);
@@ -788,7 +832,7 @@ function compileEreLinearChain(root, ledger, signal) {
788
832
  const pending = [root];
789
833
  let supported = true;
790
834
  while (pending.length > 0 && supported) {
791
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
835
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
792
836
  const node = pending.pop();
793
837
  switch (node.kind) {
794
838
  case "start":
@@ -802,7 +846,7 @@ function compileEreLinearChain(root, ledger, signal) {
802
846
  anchoredEnd = true;
803
847
  break;
804
848
  case "sequence":
805
- if (!admitSynchronousWork(ledger, node.children.length, signal)) return void 0;
849
+ if (!admitSynchronousWork(ledger, node.children.length, signal)) yield* chargeLinearWork(ledger, node.children.length, signal);
806
850
  ledger.charge("allocationUnits", node.children.length, signal);
807
851
  for (let i = node.children.length - 1; i >= 0; i--) pending.push(node.children[i]);
808
852
  break;
@@ -844,16 +888,16 @@ function compileEreLinearChain(root, ledger, signal) {
844
888
  }
845
889
  let firstAtom;
846
890
  for (let i = steps.length - 1; supported && i >= 0; i--) {
847
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
891
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
848
892
  const step = steps[i];
849
893
  if (step.kind !== "char" && step.kind !== "repeat") continue;
850
894
  if (step.kind === "repeat" && firstAtom) {
851
- if (!admitSynchronousWork(ledger, 129, signal)) return void 0;
895
+ if (!admitSynchronousWork(ledger, 129, signal)) yield* chargeLinearWork(ledger, 129, signal);
852
896
  if (!ereAtomsDisjoint(step.atom, firstAtom)) supported = false;
853
897
  }
854
898
  firstAtom = step.atom;
855
899
  }
856
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
900
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
857
901
  ledger.charge("allocationUnits", supported && seenConsuming ? 6 : 2, signal);
858
902
  if (!supported || !seenConsuming) {
859
903
  ereLinearChainCache.set(root, null);
@@ -863,11 +907,11 @@ function compileEreLinearChain(root, ledger, signal) {
863
907
  ereLinearChainCache.set(root, compiled);
864
908
  return compiled;
865
909
  }
866
- function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
867
- const chain = compileEreLinearChain(root, ledger, signal);
910
+ function* matchEreLinearChain(program, root, subject, ledger, signal) {
911
+ const chain = yield* compileEreLinearChain(root, ledger, signal);
868
912
  if (!chain) return void 0;
869
913
  const width = program.groups + 1;
870
- if (!admitSynchronousWork(ledger, width * 2, signal)) return void 0;
914
+ if (!admitSynchronousWork(ledger, width * 2, signal)) yield* chargeLinearWork(ledger, width * 2, signal);
871
915
  ledger.charge("allocationUnits", width * 2 + 2, signal);
872
916
  const groupStarts = new Int32Array(width);
873
917
  const groupEnds = new Int32Array(width);
@@ -875,7 +919,7 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
875
919
  const steps = chain.steps;
876
920
  const stepsLen = steps.length;
877
921
  for (let start = 0; start <= maxStart; start++) {
878
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
922
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
879
923
  ledger.charge("states", 1, signal);
880
924
  if (chain.firstAtom) {
881
925
  if (start >= subject.length) break;
@@ -883,13 +927,13 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
883
927
  continue;
884
928
  }
885
929
  }
886
- if (!admitSynchronousWork(ledger, width * 2, signal)) return void 0;
930
+ if (!admitSynchronousWork(ledger, width * 2, signal)) yield* chargeLinearWork(ledger, width * 2, signal);
887
931
  groupStarts.fill(-1);
888
932
  groupEnds.fill(-1);
889
933
  let pos = start;
890
934
  let ok = true;
891
935
  for (let s = 0; s < stepsLen; s++) {
892
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
936
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
893
937
  ledger.charge("states", 1, signal);
894
938
  const step = steps[s];
895
939
  if (step.kind === "groupOpen") {
@@ -905,7 +949,7 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
905
949
  } else {
906
950
  let count = 0;
907
951
  while (pos < subject.length) {
908
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
952
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
909
953
  ledger.charge("states", 1, signal);
910
954
  if (!ereAtomMatchesCode(step.atom, subject.charCodeAt(pos))) break;
911
955
  pos++;
@@ -918,14 +962,14 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
918
962
  }
919
963
  }
920
964
  if (!ok || chain.anchoredEnd && pos !== subject.length) continue;
921
- if (!admitSynchronousWork(ledger, width, signal)) return void 0;
965
+ if (!admitSynchronousWork(ledger, width, signal)) yield* chargeLinearWork(ledger, width, signal);
922
966
  let bytes = pos - start;
923
967
  for (let g = 1; g < width; g++) {
924
968
  if (groupStarts[g] >= 0 && groupEnds[g] >= groupStarts[g]) {
925
969
  bytes += groupEnds[g] - groupStarts[g];
926
970
  }
927
971
  }
928
- if (!admitSynchronousWork(ledger, width * 3 + bytes, signal)) return void 0;
972
+ if (!admitSynchronousWork(ledger, width * 3 + bytes, signal)) yield* chargeLinearWork(ledger, width * 3 + bytes, signal);
929
973
  ledger.charge("captureSlots", width, signal);
930
974
  ledger.charge("captureBytes", bytes, signal);
931
975
  ledger.charge("allocationUnits", width * 4 + bytes + 6, signal);
@@ -947,32 +991,50 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
947
991
  ledger.check(signal);
948
992
  return Object.freeze({ matched: true, captures: Object.freeze(captures), values: Object.freeze(values) });
949
993
  }
950
- if (!admitSynchronousWork(ledger, 1, signal)) return void 0;
994
+ if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
951
995
  ledger.charge("allocationUnits", 4, signal);
952
996
  ledger.check(signal);
953
997
  return Object.freeze({ matched: false, captures: Object.freeze([]), values: Object.freeze([]) });
954
998
  }
999
+ var linearContinuations = /* @__PURE__ */ new WeakMap();
955
1000
  function tryMatchEreSync(program, subject, ledger, signal) {
956
1001
  ledger.check(signal);
957
1002
  const root = resolveEreProgram(program, ledger);
958
- if (subject.length > ledger.limits.subjectBytes || ledger.workAllowanceUntilCheckpoint(signal) < subject.length + 16) {
959
- return void 0;
960
- }
1003
+ const pending = linearContinuations.get(ledger);
1004
+ if (pending?.program === program && pending.subject === subject && pending.signal === signal) return void 0;
1005
+ linearContinuations.delete(ledger);
1006
+ if (subject.length > ledger.limits.subjectBytes || ledger.workAllowanceUntilCheckpoint(signal) < subject.length + 16) return void 0;
961
1007
  ledger.admitInput("subjectBytes", subject.length, signal);
962
1008
  const adm = admitAscii(subject, ledger, signal);
963
1009
  if (adm) return void 0;
964
- return tryMatchEreLinearChainSync(program, root, subject, ledger, signal);
1010
+ const iterator = matchEreLinearChain(program, root, subject, ledger, signal);
1011
+ const next = iterator.next();
1012
+ if (next.done) return next.value;
1013
+ linearContinuations.set(ledger, { program, subject, signal, iterator });
1014
+ return void 0;
965
1015
  }
966
1016
  async function matchEre(program, subject, ledger, signal) {
967
1017
  ledger.check(signal);
968
- resolveEreProgram(program, ledger);
969
- ledger.admitInput("subjectBytes", subject.length, signal);
970
1018
  const root = resolveEreProgram(program, ledger);
971
- const adm = admitAscii(subject, ledger, signal);
972
- if (adm) await adm;
973
- const fastLinear = tryMatchEreLinearChainSync(program, root, subject, ledger, signal);
974
- if (fastLinear !== void 0) return fastLinear;
975
- return runMatcher(program, subject, ledger, signal, 0, true);
1019
+ const pending = linearContinuations.get(ledger);
1020
+ linearContinuations.delete(ledger);
1021
+ let iterator;
1022
+ if (pending?.program === program && pending.subject === subject && pending.signal === signal) {
1023
+ iterator = pending.iterator;
1024
+ const checkpoint = ledger.checkpoint(signal);
1025
+ if (checkpoint) await checkpoint;
1026
+ } else {
1027
+ ledger.admitInput("subjectBytes", subject.length, signal);
1028
+ const adm = admitAscii(subject, ledger, signal);
1029
+ if (adm) await adm;
1030
+ iterator = matchEreLinearChain(program, root, subject, ledger, signal);
1031
+ }
1032
+ for (; ; ) {
1033
+ const next = iterator.next();
1034
+ if (next.done) return next.value ?? runMatcher(program, subject, ledger, signal, 0, true);
1035
+ const checkpoint = ledger.checkpoint(signal);
1036
+ if (checkpoint) await checkpoint;
1037
+ }
976
1038
  }
977
1039
  async function createEreSpanMatcher(program, subject, ledger, signal) {
978
1040
  ledger.check(signal);
@@ -1051,16 +1113,26 @@ async function runMatcher(program, subject, ledger, signal, from, materialize, l
1051
1113
  const emptyCaptures = Object.freeze(new Array(width).fill(null));
1052
1114
  const emptyHistories = Object.freeze(new Array(width).fill(null));
1053
1115
  const pending = [];
1116
+ const seen = program.groups === 0 ? /* @__PURE__ */ new Set() : void 0;
1117
+ const nodeIds = /* @__PURE__ */ new Map();
1054
1118
  const task = (create) => {
1055
1119
  ledger.charge("allocationUnits", 5, signal);
1056
1120
  return create();
1057
1121
  };
1058
1122
  const push = (position, next, captures, histories) => {
1123
+ if (seen) {
1124
+ const key = spanStateKey(position, next, nodeIds);
1125
+ ledger.charge("work", key.length, signal);
1126
+ ledger.charge("allocationUnits", key.length + 2, signal);
1127
+ if (seen.has(key)) return;
1128
+ seen.add(key);
1129
+ }
1059
1130
  ledger.charge("states", 1, signal);
1060
1131
  ledger.charge("allocationUnits", 5, signal);
1061
1132
  pending.push({ position, task: next, captures, histories });
1062
1133
  };
1063
1134
  for (let start = from; start <= subject.length; start++) {
1135
+ seen?.clear();
1064
1136
  if (initial) {
1065
1137
  ledger.charge("work", 1, signal);
1066
1138
  const pendingCheck = ledger.checkpoint(signal);
@@ -6,7 +6,7 @@ import {
6
6
  trustedInputRows,
7
7
  trustedWorkerReplies,
8
8
  trustedWorkerRequests
9
- } from "../../safe-bash/command-chunks/chunk-L6SU4S26.js";
9
+ } from "../../safe-bash/command-chunks/chunk-6B7WQIKB.js";
10
10
  import {
11
11
  matchExprSteps,
12
12
  searchBreSteps
@@ -48,12 +48,6 @@ var byteBuffer = Object.getOwnPropertyDescriptor(typedArrayPrototype, "buffer").
48
48
  var emptyFloat64 = new Float64Array(0);
49
49
  var emptyFloat64Results = [];
50
50
  var emptyMatchRow = [];
51
- var reusableTrustedReply = {
52
- id: 0,
53
- results: emptyFloat64Results,
54
- directMatches: []
55
- };
56
- trustedWorkerReplies.add(reusableTrustedReply);
57
51
  function fail(kind, message) {
58
52
  throw new PublicDiagnostic(`bounded regex ${kind}: ${message}`);
59
53
  }
@@ -186,12 +180,7 @@ function admit(input, limits, signal, allowSharedLedger = true) {
186
180
  if (allowSharedLedger && knownTrustedRows) {
187
181
  const ledger2 = sharedSyncLedger.resetWithLimits(getPrevalidatedEreLimits(limits, selected.fixed));
188
182
  ledger2.charge("allocationUnits", bytes + input.rows.length * 12 + selected.patterns.length * 2 + 16, signal);
189
- sharedOwnedRequest.id = input.id;
190
- sharedOwnedRequest.descriptor = selected;
191
- sharedOwnedRequest.rows = input.rows;
192
- sharedOwnedRequest.ledger = ledger2;
193
- sharedOwnedRequest.limits = limits;
194
- return sharedOwnedRequest;
183
+ return { id: input.id, descriptor: selected, rows: input.rows, ledger: ledger2, limits };
195
184
  }
196
185
  const ledger = selected.kind !== "glob" ? EreLedger.withPrevalidatedLimits(getPrevalidatedEreLimits(limits, selected.fixed)) : new EreLedger({ maxExpansionBytes: Infinity, maxExpansionFields: Infinity }, {
197
186
  patternBytes: Infinity,
@@ -600,20 +589,18 @@ async function enumerate(input, row, finders, usage, signal) {
600
589
  await ledger.checkpoint(signal);
601
590
  return new Float64Array(ranges);
602
591
  }
603
- var lastLiteralCache;
604
- var lastEreCache;
605
592
  function ereCacheKeyFor(selected, fold) {
606
593
  if (selected.patterns.length !== 1 || selected.patterns[0].length > 128) return void 0;
607
594
  return `${selected.kind}:${fold ? 1 : 0}:${selected.kind === "rg" && selected.nullData ? 1 : 0}:${selected.kind === "grep" && !selected.extended ? 1 : 0}:${selected.whole ? 1 : 0}:${selected.patterns[0]}`;
608
595
  }
609
- function tryExecuteEreSync(input, signal, fold) {
596
+ function tryExecuteEreSync(input, signal, fold, cache) {
610
597
  const { descriptor: selected, rows, ledger } = input;
611
598
  if (selected.patterns.length !== 1) return void 0;
612
599
  const pattern0 = selected.patterns[0];
613
- if (lastEreCache === void 0 || lastEreCache.kind !== selected.kind || lastEreCache.fold !== fold || lastEreCache.nullData !== (selected.kind === "rg" && selected.nullData) || lastEreCache.bre !== (selected.kind === "grep" && !selected.extended) || lastEreCache.whole !== selected.whole || lastEreCache.pattern0 !== pattern0) {
600
+ if (cache.ere === void 0 || cache.ere.kind !== selected.kind || cache.ere.fold !== fold || cache.ere.nullData !== (selected.kind === "rg" && selected.nullData) || cache.ere.bre !== (selected.kind === "grep" && !selected.extended) || cache.ere.whole !== selected.whole || cache.ere.pattern0 !== pattern0) {
614
601
  return void 0;
615
602
  }
616
- const programs = lastEreCache.programs;
603
+ const programs = cache.ere.programs;
617
604
  const unboundedLedger = ledger.limits.work === Infinity && ledger.limits.states === Infinity && ledger.limits.allocationUnits === Infinity;
618
605
  if (!unboundedLedger) {
619
606
  for (let p = 0; p < programs.length; p++) {
@@ -632,21 +619,21 @@ function tryExecuteEreSync(input, signal, fold) {
632
619
  batchWork += rLen * 4 + 5 + patLen;
633
620
  batchAllocUnits += rLen * 11 + 23;
634
621
  }
635
- const estimatedWork = lastEreCache.work + batchWork + 256;
622
+ const estimatedWork = cache.ere.work + batchWork + 256;
636
623
  if (ledger.workAllowanceUntilCheckpoint(signal) < estimatedWork) {
637
624
  return void 0;
638
625
  }
639
626
  ledger.admitInput("subjectBytes", maxSubjectLen, signal);
640
- ledger.charge("work", lastEreCache.work + batchWork, signal);
641
- ledger.charge("patternBytes", lastEreCache.patternBytes, signal);
642
- ledger.charge("states", lastEreCache.states, signal);
643
- ledger.charge("allocationUnits", lastEreCache.allocationUnits + 3 + batchAllocUnits, signal);
627
+ ledger.charge("work", cache.ere.work + batchWork, signal);
628
+ ledger.charge("patternBytes", cache.ere.patternBytes, signal);
629
+ ledger.charge("states", cache.ere.states, signal);
630
+ ledger.charge("allocationUnits", cache.ere.allocationUnits + 3 + batchAllocUnits, signal);
644
631
  runYieldCheckpoint(signal);
645
632
  if (rows.length === 0) {
646
633
  signal.throwIfAborted();
647
- reusableTrustedReply.id = input.id;
648
- reusableTrustedReply.directMatches = [];
649
- return reusableTrustedReply;
634
+ const reply2 = { id: input.id, results: emptyFloat64Results, directMatches: [] };
635
+ trustedWorkerReplies.add(reply2);
636
+ return reply2;
650
637
  }
651
638
  const directMatches = new Array(rows.length);
652
639
  let matchCount = 0;
@@ -681,7 +668,7 @@ function tryExecuteEreSync(input, signal, fold) {
681
668
  if (matchCount >= maxMatches) fail("limit", "total match or result byte limit exceeded");
682
669
  matchCount++;
683
670
  if (bestSpan.start === 0 && bestSpan.end < 128) {
684
- const byEnd = lastEreCache.singleMatchByEnd ??= [];
671
+ const byEnd = cache.ere.singleMatchByEnd ??= [];
685
672
  directMatches[r] = byEnd[bestSpan.end] ??= [bestSpan];
686
673
  } else {
687
674
  directMatches[r] = [{ start: bestSpan.start, end: bestSpan.end }];
@@ -691,9 +678,9 @@ function tryExecuteEreSync(input, signal, fold) {
691
678
  }
692
679
  }
693
680
  signal.throwIfAborted();
694
- reusableTrustedReply.id = input.id;
695
- reusableTrustedReply.directMatches = directMatches;
696
- return reusableTrustedReply;
681
+ const reply = { id: input.id, results: emptyFloat64Results, directMatches };
682
+ trustedWorkerReplies.add(reply);
683
+ return reply;
697
684
  }
698
685
  var sharedSyncLedger = EreLedger.withPrevalidatedLimits(Object.freeze({
699
686
  patternBytes: Infinity,
@@ -704,13 +691,6 @@ var sharedSyncLedger = EreLedger.withPrevalidatedLimits(Object.freeze({
704
691
  captureBytes: Infinity,
705
692
  captureSlots: Infinity
706
693
  }));
707
- var sharedOwnedRequest = {
708
- id: 0,
709
- descriptor: void 0,
710
- rows: [],
711
- ledger: sharedSyncLedger,
712
- limits: void 0
713
- };
714
694
  var cachedWorkerLimitsRef;
715
695
  var cachedFixedEreLimits;
716
696
  var cachedRegexEreLimits;
@@ -780,7 +760,7 @@ function literalStartRangeSync(program, buf, rStart, rEnd, whole, word) {
780
760
  lastRangeSyncWork = work;
781
761
  return -1;
782
762
  }
783
- function tryExecuteLiteralSync(input, signal, fold) {
763
+ function tryExecuteLiteralSync(input, signal, fold, cache) {
784
764
  const { descriptor: selected, rows, ledger } = input;
785
765
  for (let i = 0; i < rows.length; i++) {
786
766
  if (rows[i].all) return void 0;
@@ -789,7 +769,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
789
769
  const pattern0 = selected.patterns[0];
790
770
  if (pattern0.length > 128) return void 0;
791
771
  const nullData = selected.kind === "rg" && selected.nullData;
792
- if (lastLiteralCache?.kind !== selected.kind || lastLiteralCache.fold !== fold || lastLiteralCache.nullData !== nullData || lastLiteralCache.pattern0 !== pattern0) {
772
+ if (cache.literal?.kind !== selected.kind || cache.literal.fold !== fold || cache.literal.nullData !== nullData || cache.literal.pattern0 !== pattern0) {
793
773
  const snapBefore = ledger.usage;
794
774
  const compiled = [];
795
775
  for (const pattern of selected.patterns) {
@@ -801,7 +781,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
801
781
  compiled.push(progOrPromise);
802
782
  }
803
783
  const snapAfter = ledger.usage;
804
- lastLiteralCache = {
784
+ cache.literal = {
805
785
  kind: selected.kind,
806
786
  fold,
807
787
  nullData,
@@ -813,11 +793,11 @@ function tryExecuteLiteralSync(input, signal, fold) {
813
793
  allocationUnits: snapAfter.allocationUnits - snapBefore.allocationUnits | 0
814
794
  };
815
795
  } else {
816
- if (ledger.workAllowanceUntilCheckpoint(signal) < lastLiteralCache.work) return void 0;
817
- ledger.charge("work", lastLiteralCache.work, signal);
818
- ledger.charge("patternBytes", lastLiteralCache.patternBytes, signal);
819
- ledger.charge("states", lastLiteralCache.states, signal);
820
- ledger.charge("allocationUnits", lastLiteralCache.allocationUnits, signal);
796
+ if (ledger.workAllowanceUntilCheckpoint(signal) < cache.literal.work) return void 0;
797
+ ledger.charge("work", cache.literal.work, signal);
798
+ ledger.charge("patternBytes", cache.literal.patternBytes, signal);
799
+ ledger.charge("states", cache.literal.states, signal);
800
+ ledger.charge("allocationUnits", cache.literal.allocationUnits, signal);
821
801
  }
822
802
  const workPerByte = selected.kind === "grep" ? 2 : 3;
823
803
  let estimatedWork = 3;
@@ -830,7 +810,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
830
810
  return void 0;
831
811
  }
832
812
  runYieldCheckpoint(signal);
833
- const programs = lastLiteralCache.programs;
813
+ const programs = cache.literal.programs;
834
814
  ledger.charge("allocationUnits", 3, signal);
835
815
  const directMatches = new Array(rows.length);
836
816
  let matchCount = 0;
@@ -907,11 +887,11 @@ function tryExecuteLiteralSync(input, signal, fold) {
907
887
  }
908
888
  if (batchWork > 0) ledger.chargeWork(batchWork, signal);
909
889
  else signal.throwIfAborted();
910
- reusableTrustedReply.id = input.id;
911
- reusableTrustedReply.directMatches = directMatches;
912
- return reusableTrustedReply;
890
+ const reply = { id: input.id, results: emptyFloat64Results, directMatches };
891
+ trustedWorkerReplies.add(reply);
892
+ return reply;
913
893
  }
914
- function tryExecuteSync(input, signal) {
894
+ function tryExecuteSync(input, signal, cache) {
915
895
  const { descriptor: selected, ledger } = input;
916
896
  const foldOrPromise = insensitive(selected, ledger, signal);
917
897
  if (typeof foldOrPromise !== "boolean") return void 0;
@@ -931,20 +911,20 @@ function tryExecuteSync(input, signal) {
931
911
  }
932
912
  }
933
913
  }
934
- if (!literal) return tryExecuteEreSync(input, signal, foldOrPromise);
935
- return tryExecuteLiteralSync(input, signal, foldOrPromise);
914
+ if (!literal) return tryExecuteEreSync(input, signal, foldOrPromise, cache);
915
+ return tryExecuteLiteralSync(input, signal, foldOrPromise, cache);
936
916
  }
937
- async function executeLiteral(input, signal, fold) {
917
+ async function executeLiteral(input, signal, fold, cache) {
938
918
  const { descriptor: selected, rows, ledger } = input;
939
919
  const pattern0 = selected.patterns.length === 1 && selected.patterns[0].length <= 128 ? selected.patterns[0] : void 0;
940
920
  const nullData = selected.kind === "rg" && selected.nullData;
941
921
  let programs;
942
- if (pattern0 !== void 0 && lastLiteralCache?.kind === selected.kind && lastLiteralCache.fold === fold && lastLiteralCache.nullData === nullData && lastLiteralCache.pattern0 === pattern0 && ledger.workAllowanceUntilCheckpoint(signal) >= lastLiteralCache.work) {
943
- ledger.charge("work", lastLiteralCache.work, signal);
944
- ledger.charge("patternBytes", lastLiteralCache.patternBytes, signal);
945
- ledger.charge("states", lastLiteralCache.states, signal);
946
- ledger.charge("allocationUnits", lastLiteralCache.allocationUnits, signal);
947
- programs = lastLiteralCache.programs;
922
+ if (pattern0 !== void 0 && cache.literal?.kind === selected.kind && cache.literal.fold === fold && cache.literal.nullData === nullData && cache.literal.pattern0 === pattern0 && ledger.workAllowanceUntilCheckpoint(signal) >= cache.literal.work) {
923
+ ledger.charge("work", cache.literal.work, signal);
924
+ ledger.charge("patternBytes", cache.literal.patternBytes, signal);
925
+ ledger.charge("states", cache.literal.states, signal);
926
+ ledger.charge("allocationUnits", cache.literal.allocationUnits, signal);
927
+ programs = cache.literal.programs;
948
928
  } else {
949
929
  const snapBefore = ledger.usage;
950
930
  const compiled = [];
@@ -958,7 +938,7 @@ async function executeLiteral(input, signal, fold) {
958
938
  programs = compiled;
959
939
  if (pattern0 !== void 0) {
960
940
  const snapAfter = ledger.usage;
961
- lastLiteralCache = {
941
+ cache.literal = {
962
942
  kind: selected.kind,
963
943
  fold,
964
944
  nullData,
@@ -1043,7 +1023,7 @@ async function insensitiveAsync(selected, ledger, signal) {
1043
1023
  }
1044
1024
  return true;
1045
1025
  }
1046
- async function execute(input, signal) {
1026
+ async function execute(input, signal, cache) {
1047
1027
  const { descriptor: selected, rows, ledger } = input;
1048
1028
  const foldOrPromise = insensitive(selected, ledger, signal);
1049
1029
  const fold = typeof foldOrPromise === "boolean" ? foldOrPromise : await foldOrPromise;
@@ -1063,7 +1043,7 @@ async function execute(input, signal) {
1063
1043
  }
1064
1044
  }
1065
1045
  }
1066
- if (literal) return executeLiteral(input, signal, fold);
1046
+ if (literal) return executeLiteral(input, signal, fold, cache);
1067
1047
  const ereKey = ereCacheKeyFor(selected, fold);
1068
1048
  const snapBeforeEre = ledger.usage;
1069
1049
  const programs = [];
@@ -1096,8 +1076,13 @@ async function execute(input, signal) {
1096
1076
  const buf = hasRange ? rWithRange.chunk : row.bytes;
1097
1077
  const rStart = hasRange ? rWithRange.start : 0;
1098
1078
  const rEnd = hasRange ? rWithRange.searchEnd : buf.length;
1099
- let ascii = true;
1100
- for (let i = rStart; i < rEnd; i++) {
1079
+ let ascii = rEnd - rStart <= 16384;
1080
+ if (ascii) {
1081
+ ledger.chargeWork(rEnd - rStart + 1, signal);
1082
+ const pending = ledger.checkpoint(signal);
1083
+ if (pending) await pending;
1084
+ }
1085
+ for (let i = rStart; ascii && i < rEnd; i++) {
1101
1086
  const b = buf[i];
1102
1087
  if (b === 0 || b >= 128) {
1103
1088
  ascii = false;
@@ -1162,7 +1147,7 @@ async function execute(input, signal) {
1162
1147
  for (const prog of programs) {
1163
1148
  if (canFastSyncEreProgram(prog)) await warmEreProgram(prog);
1164
1149
  }
1165
- lastEreCache = {
1150
+ cache.ere = {
1166
1151
  key: ereKey,
1167
1152
  kind: selected.kind,
1168
1153
  fold,
@@ -1190,6 +1175,7 @@ var CooperativeWorker = class {
1190
1175
  }
1191
1176
  limits;
1192
1177
  release;
1178
+ cache = {};
1193
1179
  controller;
1194
1180
  listeners = /* @__PURE__ */ new Map();
1195
1181
  singleMessageListener;
@@ -1289,7 +1275,7 @@ var CooperativeWorker = class {
1289
1275
  if (isTrusted && owned && !("subject" in owned) && owned.descriptor.kind !== "glob") {
1290
1276
  try {
1291
1277
  signal.throwIfAborted();
1292
- const syncReply = tryExecuteSync(owned, signal);
1278
+ const syncReply = tryExecuteSync(owned, signal, this.cache);
1293
1279
  if (syncReply !== void 0) {
1294
1280
  owned = void 0;
1295
1281
  if (!this.closing) this.emit(syncReply);
@@ -1322,7 +1308,7 @@ var CooperativeWorker = class {
1322
1308
  let reply;
1323
1309
  try {
1324
1310
  signal.throwIfAborted();
1325
- reply = owned ? "subject" in owned ? await executeExpr(owned, signal) : owned.descriptor.kind === "glob" ? await executeBoundedGlobs(owned, signal) : await execute(owned, signal) : { id, error: failure };
1311
+ reply = owned ? "subject" in owned ? await executeExpr(owned, signal) : owned.descriptor.kind === "glob" ? await executeBoundedGlobs(owned, signal) : await execute(owned, signal, this.cache) : { id, error: failure };
1326
1312
  if (owned && !("subject" in owned) && !("error" in reply)) {
1327
1313
  trustedWorkerReplies.add(reply);
1328
1314
  }
@@ -1349,6 +1335,8 @@ var CooperativeWorker = class {
1349
1335
  terminate() {
1350
1336
  if (!this.closing) {
1351
1337
  this.closing = Promise.allSettled([...this.tasks]).then(() => {
1338
+ this.cache = {};
1339
+ this.singleMessageListener = void 0;
1352
1340
  this.listeners.clear();
1353
1341
  this.tasks.clear();
1354
1342
  this.release();
@@ -15,7 +15,6 @@ declare class Slot {
15
15
  idleTimer: ReturnType<typeof setTimeout> | undefined;
16
16
  private receiver;
17
17
  private failure;
18
- private static readonly syncResultBox;
19
18
  private syncSettled;
20
19
  private syncRejected;
21
20
  private syncValue;
@@ -4,7 +4,6 @@ import {
4
4
  inProcessRegexWorkers,
5
5
  inputBytes,
6
6
  policy,
7
- reusableTrustedRequest,
8
7
  trustedInputRows,
9
8
  trustedWorkerReplies,
10
9
  trustedWorkerRequests,
@@ -13,7 +12,7 @@ import {
13
12
  validateExprInput,
14
13
  validateExprReply,
15
14
  validateReply
16
- } from "../../safe-bash/command-chunks/chunk-L6SU4S26.js";
15
+ } from "../../safe-bash/command-chunks/chunk-6B7WQIKB.js";
17
16
  import {
18
17
  init_buffer
19
18
  } from "../../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -161,7 +160,7 @@ async function withRegexSessionSlow(context, executor, execute) {
161
160
  if (hasCleanupFailure) throw cleanupError;
162
161
  return result;
163
162
  }
164
- var Slot = class _Slot {
163
+ var Slot = class {
165
164
  constructor(owner) {
166
165
  this.owner = owner;
167
166
  this.worker = owner.provider.createWorker(owner.options);
@@ -184,7 +183,6 @@ var Slot = class _Slot {
184
183
  idleTimer;
185
184
  receiver;
186
185
  failure;
187
- static syncResultBox = { sync: true, value: void 0 };
188
186
  syncSettled = false;
189
187
  syncRejected = false;
190
188
  syncValue;
@@ -289,8 +287,7 @@ var Slot = class _Slot {
289
287
  const val = this.syncValue;
290
288
  this.syncValue = void 0;
291
289
  if (this.syncRejected) return { sync: false, promise: Promise.reject(val) };
292
- _Slot.syncResultBox.value = val;
293
- return _Slot.syncResultBox;
290
+ return { sync: true, value: val };
294
291
  }
295
292
  return this.awaitInProcessAsync(timeout, signal);
296
293
  }
@@ -498,10 +495,9 @@ var RegexExecutor = class {
498
495
  readySlot.busy = true;
499
496
  let ex;
500
497
  if (readySlot.inProcess) {
501
- reusableTrustedRequest.id = id;
502
- reusableTrustedRequest.descriptor = descriptor;
503
- reusableTrustedRequest.rows = rows;
504
- ex = readySlot.postInProcessSync(reusableTrustedRequest, this.options.requestTimeoutMs, signal);
498
+ const request = { id, descriptor, rows };
499
+ trustedWorkerRequests.add(request);
500
+ ex = readySlot.postInProcessSync(request, this.options.requestTimeoutMs, signal);
505
501
  } else {
506
502
  ex = this.exchangeOutOfProcessSyncOrAsync(readySlot, id, descriptor, rows, session._ensureAsyncState());
507
503
  }