@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
@@ -1,18 +1,77 @@
1
1
  import {
2
2
  ReplacementBuffer
3
- } from "./chunk-N2F74VRO.js";
3
+ } from "./chunk-VT6MJBEI.js";
4
4
  import {
5
5
  parseRustPattern
6
- } from "./chunk-T5H5UJQ3.js";
6
+ } from "./chunk-YVNGTIJO.js";
7
7
  import {
8
8
  ProgramError
9
- } from "./chunk-HLGKIZ25.js";
9
+ } from "./chunk-X54L3DBL.js";
10
10
  import {
11
11
  init_buffer
12
12
  } from "./chunk-HX3SHTCE.js";
13
13
 
14
14
  // packages/safe-bash-regex-engine/src/text/regex.ts
15
15
  init_buffer();
16
+
17
+ // packages/safe-bash-regex-engine/src/text/byte-text.ts
18
+ init_buffer();
19
+ function decodeByteText(input, budget) {
20
+ budget?.step(input.length);
21
+ let ascii = true;
22
+ for (let i = 0; i < input.length; i++) if (input.charCodeAt(i) >= 128) {
23
+ ascii = false;
24
+ break;
25
+ }
26
+ if (ascii) return { text: input };
27
+ if (budget && (input.length + 1) * 6 > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
28
+ const offsets = new Uint32Array(input.length + 1);
29
+ let text = "";
30
+ for (let index = 0; index < input.length; ) {
31
+ const first = input.charCodeAt(index);
32
+ let width = first < 128 ? 1 : first >= 194 && first <= 223 ? 2 : first >= 224 && first <= 239 ? 3 : first >= 240 && first <= 244 ? 4 : 0;
33
+ if (index + width > input.length) width = 0;
34
+ for (let next = 1; next < width; next++) {
35
+ const byte = input.charCodeAt(index + next);
36
+ if (byte < 128 || byte > 191 || next === 1 && (first === 224 && byte < 160 || first === 237 && byte > 159 || first === 240 && byte < 144 || first === 244 && byte > 143)) {
37
+ width = 0;
38
+ break;
39
+ }
40
+ }
41
+ let code = width === 0 ? 56320 + first : width === 1 ? first : first & 127 >> width;
42
+ for (let next = 1; next < width; next++) code = code * 64 + (input.charCodeAt(index + next) & 63);
43
+ const character = String.fromCodePoint(code);
44
+ if (character.length === 2) offsets[text.length + 1] = index;
45
+ index += width || 1;
46
+ text += character;
47
+ offsets[text.length] = index;
48
+ }
49
+ return { text, offsets: offsets.subarray(0, text.length + 1) };
50
+ }
51
+ function byteTextPosition(decoded, byteOffset) {
52
+ if (!decoded.offsets) return byteOffset;
53
+ let low = 0, high = decoded.offsets.length;
54
+ while (low < high) {
55
+ const mid = low + Math.floor((high - low) / 2);
56
+ if (decoded.offsets[mid] < byteOffset) low = mid + 1;
57
+ else high = mid;
58
+ }
59
+ return low;
60
+ }
61
+ function encodeByteText(text) {
62
+ let bytes = "";
63
+ for (const character of text) {
64
+ const code = character.codePointAt(0);
65
+ if (code < 128) bytes += character;
66
+ else if (code >= 56448 && code <= 56575) bytes += String.fromCharCode(code - 56320);
67
+ else if (code < 2048) bytes += String.fromCharCode(192 | code >> 6, 128 | code & 63);
68
+ else if (code < 65536) bytes += String.fromCharCode(224 | code >> 12, 128 | code >> 6 & 63, 128 | code & 63);
69
+ else bytes += String.fromCharCode(240 | code >> 18, 128 | code >> 12 & 63, 128 | code >> 6 & 63, 128 | code & 63);
70
+ }
71
+ return bytes;
72
+ }
73
+
74
+ // packages/safe-bash-regex-engine/src/text/regex.ts
16
75
  function isWordChar(ch) {
17
76
  if (ch === void 0) return false;
18
77
  const code = ch.charCodeAt(0);
@@ -307,16 +366,18 @@ function matchChainAt(steps, prefixLen, anchoredEnd, text, startPos, outOffsets,
307
366
  cursor += val.length;
308
367
  } else if (step.kind === "char") {
309
368
  if (cursor >= textEnd) return -1;
310
- const code = text.charCodeAt(cursor);
311
- if (code < 128 ? step.ascii[code] === 0 : !step.accepts(text[cursor])) return -1;
312
- cursor++;
369
+ const code = text.codePointAt(cursor);
370
+ if (code < 128 ? step.ascii[code] === 0 : !step.accepts(String.fromCodePoint(code))) return -1;
371
+ cursor += code > 65535 ? 2 : 1;
313
372
  } else {
373
+ let count = 0;
314
374
  while (cursor < textEnd) {
315
- const code = text.charCodeAt(cursor);
316
- if (code < 128 ? step.ascii[code] === 0 : !step.accepts(text[cursor])) break;
317
- cursor++;
375
+ const code = text.codePointAt(cursor);
376
+ if (code < 128 ? step.ascii[code] === 0 : !step.accepts(String.fromCodePoint(code))) break;
377
+ cursor += code > 65535 ? 2 : 1;
378
+ count++;
318
379
  }
319
- if (cursor - stepStart < step.minimum) return -1;
380
+ if (count < step.minimum) return -1;
320
381
  }
321
382
  if (step.group > 0) {
322
383
  outOffsets[step.group * 2] = stepStart;
@@ -380,7 +441,8 @@ var Pattern = class {
380
441
  accepts: (candidate) => ignoreCase ? candidate.toLowerCase() === character.toLowerCase() : candidate === character
381
442
  });
382
443
  const escaped = () => {
383
- const character = source[offset++];
444
+ const character = offset < source.length ? String.fromCodePoint(source.codePointAt(offset)) : void 0;
445
+ offset += character?.length ?? 1;
384
446
  if (character === void 0) throw new ProgramError("trailing backslash in regular expression");
385
447
  if (dialect === "awk") {
386
448
  const octal = "01234567".includes(character);
@@ -413,7 +475,8 @@ var Pattern = class {
413
475
  }
414
476
  if (source.startsWith("[.", offset) || source.startsWith("[=", offset)) throw new ProgramError("collating and equivalence classes are not supported");
415
477
  const readBracketChar = () => {
416
- const ch = source[offset++];
478
+ const ch = String.fromCodePoint(source.codePointAt(offset));
479
+ offset += ch.length;
417
480
  if (ch !== "\\") return ch;
418
481
  if (dialect === "sed") {
419
482
  const next = source[offset];
@@ -440,7 +503,7 @@ var Pattern = class {
440
503
  } };
441
504
  };
442
505
  const atom = (atStart, afterBegin) => {
443
- const token = dialect === "jq" && offset < source.length ? String.fromCodePoint(source.codePointAt(offset)) : source[offset];
506
+ const token = offset < source.length ? String.fromCodePoint(source.codePointAt(offset)) : source[offset];
444
507
  offset += token?.length ?? 1;
445
508
  if (token === "[") return bracket();
446
509
  if (token === "\\") {
@@ -872,18 +935,20 @@ var Pattern = class {
872
935
  let searchFrom = from;
873
936
  while (searchFrom < textEnd) {
874
937
  while (searchFrom < textEnd) {
875
- const c = text.charCodeAt(searchFrom);
876
- if (c < 128 ? headAscii[c] !== 0 : headAccepts(text[searchFrom])) break;
877
- searchFrom++;
938
+ const c = text.codePointAt(searchFrom);
939
+ if (c < 128 ? headAscii[c] !== 0 : headAccepts(String.fromCodePoint(c))) break;
940
+ searchFrom += c > 65535 ? 2 : 1;
878
941
  }
879
942
  if (searchFrom >= textEnd) break;
880
- let runEnd = searchFrom + 1;
943
+ let runEnd = searchFrom + (text.codePointAt(searchFrom) > 65535 ? 2 : 1);
944
+ let count = 1;
881
945
  while (runEnd < textEnd) {
882
- const c = text.charCodeAt(runEnd);
883
- if (c < 128 ? headAscii[c] === 0 : !headAccepts(text[runEnd])) break;
884
- runEnd++;
946
+ const c = text.codePointAt(runEnd);
947
+ if (c < 128 ? headAscii[c] === 0 : !headAccepts(String.fromCodePoint(c))) break;
948
+ runEnd += c > 65535 ? 2 : 1;
949
+ count++;
885
950
  }
886
- if (runEnd - searchFrom >= headMin) {
951
+ if (count >= headMin) {
887
952
  const end = matchChainAt(steps, 0, anchoredEnd2, text, searchFrom, outOffsets, this.groupCount, textEnd, 0);
888
953
  if (end >= 0) {
889
954
  found2 = searchFrom;
@@ -891,7 +956,7 @@ var Pattern = class {
891
956
  break;
892
957
  }
893
958
  }
894
- searchFrom = runEnd + 1;
959
+ searchFrom = runEnd + ((text.codePointAt(runEnd) ?? 0) > 65535 ? 2 : 1);
895
960
  }
896
961
  }
897
962
  const positionsTried2 = anchoredStart2 ? 1 : found2 >= 0 ? found2 - from + 1 : textEnd - from + 1;
@@ -912,12 +977,14 @@ var Pattern = class {
912
977
  if (textStart + prefix.length <= textEnd && text.startsWith(prefix, textStart)) {
913
978
  const pos = textStart + prefix.length;
914
979
  let cursor = pos;
980
+ let count = 0;
915
981
  while (cursor < textEnd) {
916
- const code = text.charCodeAt(cursor);
917
- if (code < 128 ? ascii[code] === 0 : !accepts(text[cursor])) break;
918
- cursor++;
982
+ const code = text.codePointAt(cursor);
983
+ if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
984
+ cursor += code > 65535 ? 2 : 1;
985
+ count++;
919
986
  }
920
- if (cursor - pos >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
987
+ if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
921
988
  found2 = textStart;
922
989
  matchEnd = cursor;
923
990
  groupStart = pos;
@@ -928,26 +995,28 @@ var Pattern = class {
928
995
  let searchFrom = from;
929
996
  const maxStart = textEnd - minimum;
930
997
  while (searchFrom <= maxStart) {
931
- const c0 = text.charCodeAt(searchFrom);
932
- if (c0 < 128 ? ascii[c0] === 0 : !accepts(text[searchFrom])) {
933
- searchFrom++;
998
+ const c0 = text.codePointAt(searchFrom);
999
+ if (c0 < 128 ? ascii[c0] === 0 : !accepts(String.fromCodePoint(c0))) {
1000
+ searchFrom += c0 > 65535 ? 2 : 1;
934
1001
  continue;
935
1002
  }
936
1003
  const idx = searchFrom;
937
- let cursor = idx + 1;
1004
+ let cursor = idx + (c0 > 65535 ? 2 : 1);
1005
+ let count = 1;
938
1006
  while (cursor < textEnd) {
939
- const code = text.charCodeAt(cursor);
940
- if (code < 128 ? ascii[code] === 0 : !accepts(text[cursor])) break;
941
- cursor++;
1007
+ const code = text.codePointAt(cursor);
1008
+ if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
1009
+ cursor += code > 65535 ? 2 : 1;
1010
+ count++;
942
1011
  }
943
- if (cursor - idx >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
1012
+ if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
944
1013
  found2 = idx;
945
1014
  matchEnd = cursor;
946
1015
  groupStart = idx;
947
1016
  groupEnd = cursor;
948
1017
  break;
949
1018
  }
950
- searchFrom = cursor + 1;
1019
+ searchFrom = cursor + ((text.codePointAt(cursor) ?? 0) > 65535 ? 2 : 1);
951
1020
  }
952
1021
  } else {
953
1022
  let searchFrom = from;
@@ -956,12 +1025,14 @@ var Pattern = class {
956
1025
  if (idx < 0 || idx > textEnd - prefix.length) break;
957
1026
  const pos = idx + prefix.length;
958
1027
  let cursor = pos;
1028
+ let count = 0;
959
1029
  while (cursor < textEnd) {
960
- const code = text.charCodeAt(cursor);
961
- if (code < 128 ? ascii[code] === 0 : !accepts(text[cursor])) break;
962
- cursor++;
1030
+ const code = text.codePointAt(cursor);
1031
+ if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
1032
+ cursor += code > 65535 ? 2 : 1;
1033
+ count++;
963
1034
  }
964
- if (cursor - pos >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
1035
+ if (count >= minimum && (!anchoredEnd2 || cursor === textEnd)) {
965
1036
  found2 = idx;
966
1037
  matchEnd = cursor;
967
1038
  groupStart = pos;
@@ -1107,12 +1178,14 @@ var Pattern = class {
1107
1178
  if (text.startsWith(prefix)) {
1108
1179
  const pos = prefix.length;
1109
1180
  let cursor = pos;
1181
+ let count = 0;
1110
1182
  while (cursor < text.length) {
1111
- const code = text.charCodeAt(cursor);
1112
- if (code < 128 ? ascii[code] === 0 : !accepts(text[cursor])) break;
1113
- cursor++;
1183
+ const code = text.codePointAt(cursor);
1184
+ if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
1185
+ cursor += code > 65535 ? 2 : 1;
1186
+ count++;
1114
1187
  }
1115
- if (cursor - pos >= minimum && (!anchoredEnd || cursor === text.length)) {
1188
+ if (count >= minimum && (!anchoredEnd || cursor === text.length)) {
1116
1189
  found = 0;
1117
1190
  matchEnd = cursor;
1118
1191
  groupStart = pos;
@@ -1126,19 +1199,21 @@ var Pattern = class {
1126
1199
  if (idx < 0) break;
1127
1200
  const pos = idx + prefix.length;
1128
1201
  let cursor = pos;
1202
+ let count = 0;
1129
1203
  while (cursor < text.length) {
1130
- const code = text.charCodeAt(cursor);
1131
- if (code < 128 ? ascii[code] === 0 : !accepts(text[cursor])) break;
1132
- cursor++;
1204
+ const code = text.codePointAt(cursor);
1205
+ if (code < 128 ? ascii[code] === 0 : !accepts(String.fromCodePoint(code))) break;
1206
+ cursor += code > 65535 ? 2 : 1;
1207
+ count++;
1133
1208
  }
1134
- if (cursor - pos >= minimum && (!anchoredEnd || cursor === text.length)) {
1209
+ if (count >= minimum && (!anchoredEnd || cursor === text.length)) {
1135
1210
  found = idx;
1136
1211
  matchEnd = cursor;
1137
1212
  groupStart = pos;
1138
1213
  groupEnd = cursor;
1139
1214
  break;
1140
1215
  }
1141
- searchFrom = idx + 1;
1216
+ searchFrom = idx + ((text.codePointAt(idx) ?? 0) > 65535 ? 2 : 1);
1142
1217
  }
1143
1218
  }
1144
1219
  const positionsTried = anchoredStart ? 1 : found >= 0 ? found - from + 1 : text.length - from + 1;
@@ -1211,14 +1286,16 @@ var Pattern = class {
1211
1286
  return budget.checkpointSync ? budget.checkpointSync() : budget.checkpoint();
1212
1287
  };
1213
1288
  if (this.linear) {
1214
- for (let start = from; start <= text.length && (!this.anchored || start === 0); start++) {
1289
+ for (let start = from; start <= text.length && (!this.anchored || start === 0); start += (text.codePointAt(start) ?? 0) > 65535 ? 2 : 1) {
1215
1290
  let position = start;
1216
1291
  for (const instruction of this.code) {
1217
1292
  const paused = work(2);
1218
1293
  if (paused) await paused;
1219
1294
  if (instruction.kind === "character") {
1220
- if (position >= text.length || !instruction.accepts(text[position])) break;
1221
- position++;
1295
+ if (position >= text.length) break;
1296
+ const character = String.fromCodePoint(text.codePointAt(position));
1297
+ if (!instruction.accepts(character)) break;
1298
+ position += character.length;
1222
1299
  } else if (instruction.kind === "begin" && position !== 0 || instruction.kind === "end" && position !== text.length) break;
1223
1300
  else if (instruction.kind === "match") {
1224
1301
  if (position - start > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
@@ -1261,7 +1338,7 @@ var Pattern = class {
1261
1338
  }
1262
1339
  if (!pending && !positions.size) break;
1263
1340
  if (!pending) {
1264
- position++;
1341
+ position += (text.codePointAt(position) ?? 0) > 65535 ? 2 : 1;
1265
1342
  continue;
1266
1343
  }
1267
1344
  const reversed = work(pending.length);
@@ -1320,7 +1397,10 @@ var Pattern = class {
1320
1397
  visited.set(state, thread.start);
1321
1398
  const instruction = this.code[thread.pc];
1322
1399
  if (instruction.kind === "character") {
1323
- if (position < text.length && instruction.accepts(text[position])) enqueue(position + 1, thread.pc + 1, thread.start, thread.captures);
1400
+ if (position < text.length) {
1401
+ const character = String.fromCodePoint(text.codePointAt(position));
1402
+ if (instruction.accepts(character)) enqueue(position + character.length, thread.pc + 1, thread.start, thread.captures);
1403
+ }
1324
1404
  } else if (instruction.kind === "backreference") {
1325
1405
  const begin = thread.captures[instruction.index * 2];
1326
1406
  const end = thread.captures[instruction.index * 2 + 1];
@@ -1382,8 +1462,9 @@ var Pattern = class {
1382
1462
  storage.release(stateBytes + 64);
1383
1463
  if (this.backreferences && !positions.size) {
1384
1464
  if (bestStart !== void 0 || this.anchored) break;
1385
- position = ++nextStart;
1386
- } else position++;
1465
+ nextStart += (text.codePointAt(nextStart) ?? 0) > 65535 ? 2 : 1;
1466
+ position = nextStart;
1467
+ } else position += (text.codePointAt(position) ?? 0) > 65535 ? 2 : 1;
1387
1468
  }
1388
1469
  if (bestStart !== void 0 && bestEnd !== void 0) {
1389
1470
  let characters = bestEnd - bestStart;
@@ -1530,7 +1611,7 @@ function getSimpleReplacement(replacement, syntax) {
1530
1611
  SIMPLE_REPLACEMENT_CACHE.set(key, null);
1531
1612
  return null;
1532
1613
  }
1533
- function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, matchEnd, group1Start, group1End, budget, maxBufferBytes, syntax, simpleRep = getSimpleReplacement(replacement, syntax)) {
1614
+ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, matchEnd, group1Start, group1End, budget, maxBufferBytes, syntax, simpleRep = getSimpleReplacement(replacement, syntax), offsets = FAST_MATCH_OFFSETS) {
1534
1615
  if (simpleRep !== null) {
1535
1616
  if (simpleRep.kind === "literal") {
1536
1617
  budget.step(simpleRep.stepsPerExpansion);
@@ -1538,10 +1619,10 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
1538
1619
  return out ? out + simpleRep.prefix : simpleRep.prefix;
1539
1620
  }
1540
1621
  if (simpleRep.kind === "twoRefs") {
1541
- const g1Start = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : FAST_MATCH_OFFSETS[simpleRep.group * 2];
1542
- const g1End = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : FAST_MATCH_OFFSETS[simpleRep.group * 2 + 1];
1543
- const g2Start = simpleRep.group2 === 0 ? matchStart : simpleRep.group2 === 1 ? group1Start : FAST_MATCH_OFFSETS[simpleRep.group2 * 2];
1544
- const g2End = simpleRep.group2 === 0 ? matchEnd : simpleRep.group2 === 1 ? group1End : FAST_MATCH_OFFSETS[simpleRep.group2 * 2 + 1];
1622
+ const g1Start = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : offsets[simpleRep.group * 2];
1623
+ const g1End = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : offsets[simpleRep.group * 2 + 1];
1624
+ const g2Start = simpleRep.group2 === 0 ? matchStart : simpleRep.group2 === 1 ? group1Start : offsets[simpleRep.group2 * 2];
1625
+ const g2End = simpleRep.group2 === 0 ? matchEnd : simpleRep.group2 === 1 ? group1End : offsets[simpleRep.group2 * 2 + 1];
1545
1626
  const g1Len = g1Start >= 0 && g1End > g1Start ? g1End - g1Start : 0;
1546
1627
  const g2Len = g2Start >= 0 && g2End > g2Start ? g2End - g2Start : 0;
1547
1628
  const addedLen2 = simpleRep.prefix.length + g1Len + simpleRep.mid.length + g2Len + simpleRep.suffix.length;
@@ -1552,8 +1633,8 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
1552
1633
  const expanded2 = simpleRep.suffix ? simpleRep.prefix + g1Str + simpleRep.mid + g2Str + simpleRep.suffix : simpleRep.prefix + g1Str + simpleRep.mid + g2Str;
1553
1634
  return out ? out + expanded2 : expanded2;
1554
1635
  }
1555
- const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : FAST_MATCH_OFFSETS[simpleRep.group * 2];
1556
- const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : FAST_MATCH_OFFSETS[simpleRep.group * 2 + 1];
1636
+ const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : offsets[simpleRep.group * 2];
1637
+ const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : offsets[simpleRep.group * 2 + 1];
1557
1638
  const gLen = gStart >= 0 && gEnd > gStart ? gEnd - gStart : 0;
1558
1639
  const addedLen = simpleRep.prefix.length + gLen + simpleRep.suffix.length;
1559
1640
  budget.step(simpleRep.stepsPerExpansion + gLen);
@@ -1605,8 +1686,8 @@ function appendReplacementFromOffsetsSync(out, replacement, text, matchStart, ma
1605
1686
  if (g === 0) piece = matchEnd > matchStart ? text.slice(matchStart, matchEnd) : "";
1606
1687
  else if (g === 1 && group1Start >= 0) piece = group1End > group1Start ? text.slice(group1Start, group1End) : "";
1607
1688
  else if (g > 1) {
1608
- const gs = FAST_MATCH_OFFSETS[g * 2];
1609
- const ge = FAST_MATCH_OFFSETS[g * 2 + 1];
1689
+ const gs = offsets[g * 2];
1690
+ const ge = offsets[g * 2 + 1];
1610
1691
  if (gs >= 0 && ge > gs) piece = text.slice(gs, ge);
1611
1692
  }
1612
1693
  } else {
@@ -1769,34 +1850,9 @@ async function substitute(text, pattern, replacement, budget, global, occurrence
1769
1850
  result.clear();
1770
1851
  }
1771
1852
  }
1772
- var PAIR_OFFSETS_1 = new Int32Array(4);
1773
- var PAIR_OFFSETS_2 = new Int32Array(4);
1853
+ var PAIR_OFFSETS_1 = new Int32Array(20);
1854
+ var PAIR_OFFSETS_2 = new Int32Array(20);
1774
1855
  var SYNC_PAIR_RESULT = { text: "", substituted: false };
1775
- function expandSimpleFromOffsets(simpleRep, text, matchStart, matchEnd, group1Start, group1End, budget) {
1776
- if (simpleRep.kind === "literal") {
1777
- budget.step(simpleRep.stepsPerExpansion);
1778
- return simpleRep.prefix;
1779
- }
1780
- const gStart = simpleRep.group === 0 ? matchStart : simpleRep.group === 1 ? group1Start : -1;
1781
- const gEnd = simpleRep.group === 0 ? matchEnd : simpleRep.group === 1 ? group1End : -1;
1782
- const gLen = gStart >= 0 && gEnd > gStart ? gEnd - gStart : 0;
1783
- budget.step(simpleRep.stepsPerExpansion + gLen);
1784
- if (gLen === 1) {
1785
- const c0 = text.charCodeAt(gStart) - 48;
1786
- if (c0 >= 0 && c0 <= 9) {
1787
- return simpleRep.smallInts[c0] ??= simpleRep.suffix ? simpleRep.prefix + String.fromCharCode(c0 + 48) + simpleRep.suffix : simpleRep.prefix + String.fromCharCode(c0 + 48);
1788
- }
1789
- } else if (gLen === 2) {
1790
- const c0 = text.charCodeAt(gStart) - 48;
1791
- const c1 = text.charCodeAt(gStart + 1) - 48;
1792
- if (c0 >= 1 && c0 <= 9 && c1 >= 0 && c1 <= 9) {
1793
- const num = c0 * 10 + c1;
1794
- return simpleRep.smallInts[num] ??= simpleRep.suffix ? simpleRep.prefix + String(num) + simpleRep.suffix : simpleRep.prefix + String(num);
1795
- }
1796
- }
1797
- const gStr = gLen > 0 ? text.slice(gStart, gEnd) : "";
1798
- return simpleRep.suffix ? simpleRep.prefix + gStr + simpleRep.suffix : simpleRep.prefix + gStr;
1799
- }
1800
1856
  function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, global2, occ2, budget) {
1801
1857
  if (occ1 !== 1 || occ2 !== 1 || text.length > 4096) return void 0;
1802
1858
  if (!pat1.canFindSync() || !pat2.canFindSync()) return void 0;
@@ -1815,7 +1871,7 @@ function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, glob
1815
1871
  const e1 = PAIR_OFFSETS_1[1];
1816
1872
  if (e1 === 0) return void 0;
1817
1873
  matched1 = true;
1818
- exp1 = expandSimpleFromOffsets(sr1, text, 0, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget);
1874
+ exp1 = appendReplacementFromOffsetsSync("", rep1, text, 0, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
1819
1875
  let commonSuffix = 0;
1820
1876
  const maxSuffix = Math.min(exp1.length, e1);
1821
1877
  while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === text.charCodeAt(e1 - 1 - commonSuffix)) {
@@ -1852,7 +1908,7 @@ function trySubstitutePairSync(text, pat1, rep1, global1, occ1, pat2, rep2, glob
1852
1908
  budget.step();
1853
1909
  if (pat2.findSyncFastInto(text, budget, e2, PAIR_OFFSETS_1)) return void 0;
1854
1910
  }
1855
- const exp2 = expandSimpleFromOffsets(sr2, text, s2, e2, g2s, g2e, budget);
1911
+ const exp2 = appendReplacementFromOffsetsSync("", rep2, text, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
1856
1912
  const midLen = s2 - effectiveE1;
1857
1913
  const tailLen = text.length - e2;
1858
1914
  const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
@@ -1882,7 +1938,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
1882
1938
  if (pat1.findSyncFastInto(text, budget, lineStart, PAIR_OFFSETS_1, lineEnd, lineStart)) {
1883
1939
  const e1 = PAIR_OFFSETS_1[1];
1884
1940
  if (e1 === lineStart) return -1;
1885
- exp1 = expandSimpleFromOffsets(sr1, text, lineStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget);
1941
+ exp1 = appendReplacementFromOffsetsSync("", rep1, text, lineStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
1886
1942
  let commonSuffix = 0;
1887
1943
  const maxSuffix = Math.min(exp1.length, e1 - lineStart);
1888
1944
  while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === text.charCodeAt(e1 - 1 - commonSuffix)) {
@@ -1916,7 +1972,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
1916
1972
  budget.step();
1917
1973
  if (pat2.findSyncFastInto(text, budget, e2, PAIR_OFFSETS_1, lineEnd, lineStart)) return -1;
1918
1974
  }
1919
- const exp2 = expandSimpleFromOffsets(sr2, text, s2, e2, g2s, g2e, budget);
1975
+ const exp2 = appendReplacementFromOffsetsSync("", rep2, text, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
1920
1976
  const midLen = s2 - effectiveE1;
1921
1977
  const tailLen = lineEnd - e2;
1922
1978
  const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
@@ -1931,35 +1987,7 @@ function trySubstitutePairToBufferSync(text, pat1, rep1, global1, occ1, pat2, re
1931
1987
  outBuf[pos++] = sepCode;
1932
1988
  return pos;
1933
1989
  }
1934
- var cachedPairOutBuf = new Uint8Array(65536);
1935
- var cachedPairOutView = cachedPairOutBuf.subarray(0, 0);
1936
- var lastPairBatchText = "";
1937
- var lastPairBatchEnds;
1938
- var lastPairEndsLen = -1;
1939
- var lastPairPat1;
1940
- var lastPairRep1 = "";
1941
- var lastPairG1 = false;
1942
- var lastPairPat2;
1943
- var lastPairRep2 = "";
1944
- var lastPairG2 = false;
1945
- var lastPairSepCode = -1;
1946
- var lastPairMaxLine = 0;
1947
- var lastPairStepsCharged = 0;
1948
- var lastPairOutPos = -1;
1949
1990
  function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1, rep1, global1, occ1, pat2, rep2, global2, occ2, budget, outBuf, sepCode, maxOutLen) {
1950
- if (lastPairOutPos >= 0 && batchText === lastPairBatchText && batchEnds === lastPairBatchEnds && endsLen === lastPairEndsLen && pat1 === lastPairPat1 && rep1 === lastPairRep1 && global1 === lastPairG1 && pat2 === lastPairPat2 && rep2 === lastPairRep2 && global2 === lastPairG2 && sepCode === lastPairSepCode && occ1 === 1 && occ2 === 1 && lastPairMaxLine <= budget.maxBufferBytes && lastPairOutPos <= maxOutLen && (budget.options.maxSteps ?? Infinity) >= budget.stepsUsed + lastPairStepsCharged) {
1951
- const pending = budget.checkpointSync ? budget.checkpointSync() : void 0;
1952
- if (pending) {
1953
- pending.catch(() => {
1954
- });
1955
- return -1;
1956
- }
1957
- budget.step(lastPairStepsCharged);
1958
- outBuf.set(cachedPairOutView, 0);
1959
- return lastPairOutPos;
1960
- }
1961
- const initialSteps = budget.stepsUsed;
1962
- let maxSeenLine = 0;
1963
1991
  if (occ1 !== 1 || occ2 !== 1) return -1;
1964
1992
  if (!pat1.canFindSync() || !pat2.canFindSync()) return -1;
1965
1993
  const info1 = pat1.getFastPrefixInfo();
@@ -2017,7 +2045,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2017
2045
  if (s2 < 0) {
2018
2046
  const restLen = lEnd - effectiveE1;
2019
2047
  const outLen = exp1Len + restLen;
2020
- if (outLen > maxSeenLine) maxSeenLine = outLen;
2021
2048
  if (outLen > maxBuf) throw new ProgramError("text buffer limit exceeded");
2022
2049
  if (outPos2 + outLen + 1 >= maxOutLen) return -2;
2023
2050
  for (let i = 0; i < exp1Len; i++) outBuf[outPos2++] = r1Val.charCodeAt(i);
@@ -2036,7 +2063,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2036
2063
  const midLen = s2 - effectiveE1;
2037
2064
  const tailLen = lEnd - e2;
2038
2065
  const totalLen = exp1Len + midLen + r2Len + tailLen;
2039
- if (totalLen > maxSeenLine) maxSeenLine = totalLen;
2040
2066
  if (totalLen > maxBuf) throw new ProgramError("text buffer limit exceeded");
2041
2067
  if (outPos2 + totalLen + 1 >= maxOutLen) return -2;
2042
2068
  for (let i = 0; i < exp1Len; i++) outBuf[outPos2++] = r1Val.charCodeAt(i);
@@ -2056,23 +2082,6 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2056
2082
  }
2057
2083
  lStart2 = lEnd + 1;
2058
2084
  }
2059
- if (outPos2 <= 65536) {
2060
- lastPairBatchText = batchText;
2061
- lastPairBatchEnds = batchEnds;
2062
- lastPairEndsLen = endsLen;
2063
- lastPairPat1 = pat1;
2064
- lastPairRep1 = rep1;
2065
- lastPairG1 = global1;
2066
- lastPairPat2 = pat2;
2067
- lastPairRep2 = rep2;
2068
- lastPairG2 = global2;
2069
- lastPairSepCode = sepCode;
2070
- lastPairMaxLine = maxSeenLine;
2071
- lastPairStepsCharged = budget.stepsUsed - initialSteps;
2072
- lastPairOutPos = outPos2;
2073
- cachedPairOutBuf.set(outBuf.subarray(0, outPos2));
2074
- cachedPairOutView = cachedPairOutBuf.subarray(0, outPos2);
2075
- }
2076
2085
  return outPos2;
2077
2086
  }
2078
2087
  let outPos = 0;
@@ -2088,7 +2097,7 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2088
2097
  if (pat1.findSyncFastInto(batchText, budget, lStart, PAIR_OFFSETS_1, lEnd, lStart)) {
2089
2098
  const e1 = PAIR_OFFSETS_1[1];
2090
2099
  if (e1 === lStart) return -1;
2091
- exp1 = expandSimpleFromOffsets(sr1, batchText, lStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget);
2100
+ exp1 = appendReplacementFromOffsetsSync("", rep1, batchText, lStart, e1, PAIR_OFFSETS_1[2], PAIR_OFFSETS_1[3], budget, budget.maxBufferBytes, "sed", sr1, PAIR_OFFSETS_1);
2092
2101
  let commonSuffix = 0;
2093
2102
  const maxSuffix = Math.min(exp1.length, e1 - lStart);
2094
2103
  while (commonSuffix < maxSuffix && exp1.charCodeAt(exp1.length - 1 - commonSuffix) === batchText.charCodeAt(e1 - 1 - commonSuffix)) {
@@ -2119,7 +2128,7 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2119
2128
  budget.step();
2120
2129
  if (pat2.findSyncFastInto(batchText, budget, e2, PAIR_OFFSETS_1, lEnd, lStart)) return -1;
2121
2130
  }
2122
- const exp2 = expandSimpleFromOffsets(sr2, batchText, s2, e2, g2s, g2e, budget);
2131
+ const exp2 = appendReplacementFromOffsetsSync("", rep2, batchText, s2, e2, g2s, g2e, budget, budget.maxBufferBytes, "sed", sr2, PAIR_OFFSETS_2);
2123
2132
  const midLen = s2 - effectiveE1;
2124
2133
  const tailLen = lEnd - e2;
2125
2134
  const totalLen = effectiveExp1Len + midLen + exp2.length + tailLen;
@@ -2144,6 +2153,88 @@ function trySubstitutePairBatchToBufferSync(batchText, batchEnds, endsLen, pat1,
2144
2153
  }
2145
2154
  return outPos;
2146
2155
  }
2156
+ var decodedByteSubjects = /* @__PURE__ */ new WeakMap();
2157
+ var BytePattern = class extends Pattern {
2158
+ unicode;
2159
+ constructor(...args) {
2160
+ super(...args);
2161
+ const [source, ...settings] = args;
2162
+ this.unicode = new Pattern(decodeByteText(source).text, ...settings);
2163
+ }
2164
+ usesUnicode(budget) {
2165
+ const owner = budget;
2166
+ if (owner.regexByteMode) return false;
2167
+ const env = owner.context?.env;
2168
+ const locale = env?.LC_ALL || env?.LC_CTYPE || env?.LANG;
2169
+ return locale !== "C" && locale !== "POSIX";
2170
+ }
2171
+ input(text, budget) {
2172
+ const key = budget.context ?? budget;
2173
+ const cached = decodedByteSubjects.get(key);
2174
+ if (cached?.source === text) {
2175
+ budget.step(0);
2176
+ if (cached.value.offsets && (text.length + 1) * 6 > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
2177
+ return cached.value;
2178
+ }
2179
+ const value = decodeByteText(text, budget);
2180
+ decodedByteSubjects.set(key, { source: text, value });
2181
+ return value;
2182
+ }
2183
+ byteMatch(match, decoded, budget) {
2184
+ if (!match || !decoded.offsets) return match;
2185
+ budget.step(match.groups.reduce((count, group) => count + (group?.length ?? 0), 0));
2186
+ return {
2187
+ start: decoded.offsets[match.start],
2188
+ end: decoded.offsets[match.end],
2189
+ groups: match.groups.map((group) => group === void 0 ? void 0 : encodeByteText(group)),
2190
+ ...match.captureOffsets ? { captureOffsets: match.captureOffsets.map((offset) => offset === void 0 || offset < 0 ? offset : decoded.offsets[offset]) } : {}
2191
+ };
2192
+ }
2193
+ async prepare(budget) {
2194
+ if (this.usesUnicode(budget)) await this.unicode.prepare(budget);
2195
+ else await super.prepare(budget);
2196
+ }
2197
+ canFindSync() {
2198
+ return super.canFindSync() && this.unicode.canFindSync();
2199
+ }
2200
+ getFastPrefixInfo() {
2201
+ return void 0;
2202
+ }
2203
+ findSyncFastInto(text, budget, from, outOffsets, textEnd = text.length, textStart = 0) {
2204
+ if (!this.usesUnicode(budget)) return super.findSyncFastInto(text, budget, from, outOffsets, textEnd, textStart);
2205
+ const segment = textStart === 0 && textEnd === text.length ? text : text.slice(textStart, textEnd);
2206
+ const decoded = this.input(segment, budget);
2207
+ const found = this.unicode.findSyncFastInto(
2208
+ decoded.text,
2209
+ budget,
2210
+ byteTextPosition(decoded, from - textStart),
2211
+ outOffsets,
2212
+ decoded.text.length,
2213
+ 0
2214
+ );
2215
+ if (found) {
2216
+ for (let i = 0; i < (this.groupCount + 1) * 2; i++)
2217
+ if (outOffsets[i] >= 0) outOffsets[i] = (decoded.offsets?.[outOffsets[i]] ?? outOffsets[i]) + textStart;
2218
+ }
2219
+ return found;
2220
+ }
2221
+ tryFindSync(text, budget, from = 0) {
2222
+ if (!this.usesUnicode(budget)) return super.tryFindSync(text, budget, from);
2223
+ const decoded = this.input(text, budget);
2224
+ const result = this.unicode.tryFindSync(decoded.text, budget, byteTextPosition(decoded, from));
2225
+ return result instanceof Promise ? result.then((match) => this.byteMatch(match, decoded, budget)) : this.byteMatch(result, decoded, budget);
2226
+ }
2227
+ async find(text, budget, from = 0, continuation = from) {
2228
+ if (!this.usesUnicode(budget)) return super.find(text, budget, from, continuation);
2229
+ const decoded = this.input(text, budget);
2230
+ return this.byteMatch(await this.unicode.find(
2231
+ decoded.text,
2232
+ budget,
2233
+ byteTextPosition(decoded, from),
2234
+ byteTextPosition(decoded, continuation)
2235
+ ), decoded, budget);
2236
+ }
2237
+ };
2147
2238
 
2148
2239
  export {
2149
2240
  Pattern,
@@ -2151,5 +2242,6 @@ export {
2151
2242
  substitute,
2152
2243
  trySubstitutePairSync,
2153
2244
  trySubstitutePairToBufferSync,
2154
- trySubstitutePairBatchToBufferSync
2245
+ trySubstitutePairBatchToBufferSync,
2246
+ BytePattern
2155
2247
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  curlRequestTarget
3
- } from "./chunk-RVLO4DYT.js";
3
+ } from "./chunk-N4PFUSRM.js";
4
4
  import {
5
5
  CurlError
6
- } from "./chunk-IYPAQ7PH.js";
6
+ } from "./chunk-GRBWW4SG.js";
7
7
  import {
8
8
  init_buffer
9
9
  } from "./chunk-HX3SHTCE.js";