@poe-platform/safe-bash 0.1.798 → 0.1.800

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 (942) hide show
  1. package/README.md +34 -18
  2. package/dist/image-ast/index.browser.js +1384 -23
  3. package/dist/image-ast/index.js +1384 -23
  4. package/dist/mp4-ast/types.d.ts +1 -0
  5. package/dist/office-package/zip.d.ts +2 -0
  6. package/dist/office-package/zip.js +1 -1
  7. package/dist/pdf-ast/index.js +1 -1
  8. package/dist/safe-bash/chunks/{chunk-IUTD5FH5.js → chunk-46UISJCK.js} +1 -6
  9. package/dist/safe-bash/chunks/chunk-4SEW2Q6H.js +26 -0
  10. package/dist/safe-bash/chunks/{chunk-AKC46AF6.js → chunk-7YSRXFEG.js} +7 -40
  11. package/dist/safe-bash/chunks/{chunk-KTGR4U57.js → chunk-BHJE5LPZ.js} +1 -2
  12. package/dist/safe-bash/chunks/{chunk-AMTCC256.js → chunk-HHW7MGS2.js} +2 -2
  13. package/dist/safe-bash/chunks/{chunk-ZNAFMYIA.js → chunk-I7L3G3NX.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-KMH2DF3I.js → chunk-JJSTTIEZ.js} +6 -1
  15. package/dist/safe-bash/chunks/{chunk-6IBTC4YL.js → chunk-JTLSUJ7V.js} +57 -20
  16. package/dist/safe-bash/chunks/chunk-K2VCOJ2B.js +111 -0
  17. package/dist/safe-bash/chunks/chunk-K4YMYFRJ.js +9802 -0
  18. package/dist/safe-bash/chunks/{chunk-CSNXID73.js → chunk-KW24TAIU.js} +446 -5543
  19. package/dist/safe-bash/chunks/{chunk-ENR3HB2B.js → chunk-NLAW7KDI.js} +0 -1
  20. package/dist/safe-bash/chunks/{chunk-B3DDEDH2.js → chunk-PPYM75Z3.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-NX2SQVON.js → chunk-RKKRJ54E.js} +19 -7
  22. package/dist/safe-bash/chunks/{chunk-V3VEATEA.js → chunk-RMWLWH7Q.js} +870 -953
  23. package/dist/safe-bash/chunks/{chunk-JSVX4VIA.js → chunk-TFGRKY43.js} +2 -1
  24. package/dist/safe-bash/chunks/{chunk-T5KKDMYB.js → chunk-TYD7EVUJ.js} +6 -0
  25. package/dist/safe-bash/chunks/{csvkit-W2UEKH6P.js → csvkit-QGP3GAOB.js} +1 -1
  26. package/dist/safe-bash/chunks/{ffmpeg-42CGASMV.js → ffmpeg-JTVH26MK.js} +1 -1
  27. package/dist/safe-bash/chunks/{gh-26GYLH6D.js → gh-I7QX7N5C.js} +1 -1
  28. package/dist/safe-bash/chunks/{git-YREKMUVD.js → git-MA7NKYVP.js} +1 -1
  29. package/dist/safe-bash/chunks/{imagemagick-3YIX4XO2.js → imagemagick-Y4NPWX2Q.js} +1 -1
  30. package/dist/safe-bash/chunks/{implementation-E3YMKU3Z.js → implementation-BWDKOVQJ.js} +1 -1
  31. package/dist/safe-bash/chunks/mmdc-44PELHDG.js +118 -0
  32. package/dist/safe-bash/chunks/{pdfimages-UE2UISP2.js → pdfimages-635TRW4Q.js} +1 -1
  33. package/dist/safe-bash/chunks/{pdfinfo-RGARKLI5.js → pdfinfo-FSDAA2KY.js} +3 -11
  34. package/dist/safe-bash/chunks/{pdftk-JY3WVCCC.js → pdftk-GQ5UH3VG.js} +1 -1
  35. package/dist/safe-bash/chunks/{pdftoppm-GPD3BMPY.js → pdftoppm-YTXQCAYT.js} +1 -1
  36. package/dist/safe-bash/chunks/{pdftotext-K7GQ2QJZ.js → pdftotext-CVA2G7FY.js} +1 -1
  37. package/dist/safe-bash/chunks/{qpdf-F4U7WUSU.js → qpdf-HZMIFG4A.js} +1 -1
  38. package/dist/safe-bash/chunks/{sips-RWENS7X5.js → sips-E7UBDP33.js} +1 -1
  39. package/dist/safe-bash/chunks/{soffice-IT6W2C5F.js → soffice-ELASUWUK.js} +1 -1
  40. package/dist/safe-bash/chunks/{wkhtmltopdf-JYNDAHIZ.js → wkhtmltopdf-EPO6YCMG.js} +1 -1
  41. package/dist/safe-bash/command-chunks/chunk-2FGJYFWZ.js +44 -0
  42. package/dist/safe-bash/command-chunks/chunk-2H4JTFIL.js +53 -0
  43. package/dist/safe-bash/command-chunks/{chunk-THS4YAKG.js → chunk-2QHG43WJ.js} +2 -2
  44. package/dist/safe-bash/command-chunks/chunk-364TMWBT.js +946 -0
  45. package/dist/safe-bash/command-chunks/{chunk-JEPY4UY4.js → chunk-3DT2YOGW.js} +11 -6
  46. package/dist/safe-bash/command-chunks/chunk-3E2OIS2J.js +7037 -0
  47. package/dist/safe-bash/command-chunks/{chunk-AIRGA2SU.js → chunk-3HXDA5PT.js} +1 -1
  48. package/dist/safe-bash/command-chunks/chunk-3LSOYLNV.js +1091 -0
  49. package/dist/safe-bash/command-chunks/{chunk-OAJUAAWH.js → chunk-464RVBGB.js} +3 -3
  50. package/dist/safe-bash/command-chunks/chunk-4B7Y7S6E.js +61 -0
  51. package/dist/safe-bash/command-chunks/{chunk-HRLIAMXC.js → chunk-4C6QI5BQ.js} +3 -2
  52. package/dist/safe-bash/command-chunks/{chunk-25BLI6S6.js → chunk-4Y3WVMK4.js} +1 -14
  53. package/dist/safe-bash/command-chunks/chunk-4ZHMW6F5.js +104 -0
  54. package/dist/safe-bash/command-chunks/{chunk-YMQKVEIF.js → chunk-52PCQXD2.js} +2 -13
  55. package/dist/safe-bash/command-chunks/{chunk-SSBFTMVI.js → chunk-53P53XFM.js} +2 -2
  56. package/dist/safe-bash/command-chunks/{chunk-ZCKDQGKY.js → chunk-5HDSFHGW.js} +1 -1
  57. package/dist/safe-bash/command-chunks/chunk-5LSGEIZY.js +379 -0
  58. package/dist/safe-bash/command-chunks/{chunk-MKQVQMXO.js → chunk-5LU4UCBR.js} +1 -1
  59. package/dist/safe-bash/command-chunks/chunk-5T7CRJHW.js +560 -0
  60. package/dist/safe-bash/command-chunks/chunk-5TBUOBDE.js +346 -0
  61. package/dist/safe-bash/command-chunks/{chunk-AUAF5YBT.js → chunk-5WPI42ZW.js} +0 -7
  62. package/dist/safe-bash/command-chunks/chunk-5XY4DTNG.js +34 -0
  63. package/dist/safe-bash/command-chunks/chunk-5ZMZ573Q.js +140 -0
  64. package/dist/safe-bash/command-chunks/{chunk-2Q7UQ7R4.js → chunk-67IQF5GC.js} +200 -66
  65. package/dist/safe-bash/command-chunks/chunk-67QKREJK.js +347 -0
  66. package/dist/safe-bash/command-chunks/chunk-6EPHJGGF.js +23 -0
  67. package/dist/safe-bash/command-chunks/chunk-6F4XCVON.js +266 -0
  68. package/dist/safe-bash/command-chunks/{chunk-ESMCX3YV.js → chunk-6HMX4CQS.js} +669 -130
  69. package/dist/safe-bash/command-chunks/{chunk-RECJB2BO.js → chunk-7BS66BXN.js} +1 -1
  70. package/dist/safe-bash/command-chunks/{chunk-GRWOVSFK.js → chunk-7D7JRRML.js} +1 -1
  71. package/dist/safe-bash/command-chunks/chunk-7K6JYKPJ.js +422 -0
  72. package/dist/safe-bash/command-chunks/{chunk-E6IYUYVA.js → chunk-7L24L4UO.js} +2 -2
  73. package/dist/safe-bash/command-chunks/chunk-7N2LI2KO.js +206 -0
  74. package/dist/safe-bash/command-chunks/chunk-7RGB363W.js +362 -0
  75. package/dist/safe-bash/command-chunks/{chunk-HBXQWTJR.js → chunk-A5ZAV6DO.js} +1 -1
  76. package/dist/safe-bash/command-chunks/{chunk-LW34AKDM.js → chunk-AB4MXHVS.js} +4 -14
  77. package/dist/safe-bash/command-chunks/{pptx-GBPNWNEP-7EQEVXV5.js → chunk-AI5JAXQF.js} +34820 -18029
  78. package/dist/safe-bash/command-chunks/chunk-AMO3THU4.js +105 -0
  79. package/dist/safe-bash/command-chunks/{chunk-EELNLEEP.js → chunk-AXK3H4PX.js} +1 -1
  80. package/dist/safe-bash/command-chunks/{chunk-Y55OCH37.js → chunk-AYUTO323.js} +3 -10
  81. package/dist/safe-bash/command-chunks/{chunk-DY36FDDC.js → chunk-B5TAOCKD.js} +6 -6
  82. package/dist/safe-bash/command-chunks/chunk-BAGCY35S.js +231 -0
  83. package/dist/safe-bash/command-chunks/chunk-BAXU7B5Z.js +101 -0
  84. package/dist/safe-bash/command-chunks/{chunk-YB6KVU6H.js → chunk-BDBVVZY6.js} +4 -14
  85. package/dist/safe-bash/command-chunks/{chunk-2HOESGFJ.js → chunk-BKCNF5U3.js} +68 -7
  86. package/dist/safe-bash/command-chunks/chunk-BNOU5YQS.js +182 -0
  87. package/dist/safe-bash/command-chunks/{chunk-QAN7KKDZ.js → chunk-BZDDAPSV.js} +1 -1
  88. package/dist/safe-bash/command-chunks/{chunk-HZCPWYWA.js → chunk-BZPAWTUL.js} +1 -1
  89. package/dist/safe-bash/command-chunks/chunk-C7I25AAL.js +25 -0
  90. package/dist/safe-bash/command-chunks/chunk-CKXV2CLD.js +65 -0
  91. package/dist/safe-bash/command-chunks/{chunk-RT2J5ATD.js → chunk-CPPGTBZF.js} +1 -1
  92. package/dist/safe-bash/command-chunks/chunk-CQ5YGOGB.js +150 -0
  93. package/dist/safe-bash/command-chunks/{chunk-5UA3BEGA.js → chunk-D4OP2BR3.js} +72 -24
  94. package/dist/safe-bash/command-chunks/chunk-DB453IE6.js +122 -0
  95. package/dist/safe-bash/command-chunks/chunk-DOKKNRRM.js +87 -0
  96. package/dist/safe-bash/command-chunks/{chunk-2PX5B7T5.js → chunk-DQAVUDDX.js} +2 -2
  97. package/dist/safe-bash/command-chunks/chunk-DT7BCTWY.js +249 -0
  98. package/dist/safe-bash/command-chunks/chunk-E2LB7FRT.js +42 -0
  99. package/dist/safe-bash/command-chunks/chunk-EK6YNAXT.js +343 -0
  100. package/dist/safe-bash/command-chunks/chunk-EQ4HV54N.js +22 -0
  101. package/dist/safe-bash/command-chunks/chunk-ERYJLO6G.js +293 -0
  102. package/dist/safe-bash/command-chunks/{chunk-4ONEXMD3.js → chunk-EUSPTFAX.js} +1 -1
  103. package/dist/safe-bash/command-chunks/chunk-FKKB5X5V.js +97 -0
  104. package/dist/safe-bash/command-chunks/chunk-FXELCPFX.js +195 -0
  105. package/dist/safe-bash/command-chunks/{chunk-HLMUPSM6.js → chunk-GI4CJED2.js} +3 -2
  106. package/dist/safe-bash/command-chunks/{chunk-CU5RLO62.js → chunk-GLOZX57Y.js} +92 -18
  107. package/dist/safe-bash/command-chunks/chunk-GMIHJYDG.js +331 -0
  108. package/dist/safe-bash/command-chunks/chunk-H622NS6Z.js +11 -0
  109. package/dist/safe-bash/command-chunks/{chunk-QGVOS3EY.js → chunk-HFII3QYO.js} +1 -1
  110. package/dist/safe-bash/command-chunks/{chunk-5EWTQJSC.js → chunk-HHP343KT.js} +1 -1
  111. package/dist/safe-bash/command-chunks/{chunk-WBJKOTSP.js → chunk-HMOZ6XVJ.js} +1 -1
  112. package/dist/safe-bash/command-chunks/{chunk-AVSPNLWV.js → chunk-I237SNW5.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-4MS5WZJC.js → chunk-IKS2YXZQ.js} +3 -3
  114. package/dist/safe-bash/command-chunks/{chunk-CZVBYCB5.js → chunk-IL53SJL4.js} +2 -12
  115. package/dist/safe-bash/command-chunks/{chunk-VZ64JXHC.js → chunk-IR2BY7EL.js} +21 -6
  116. package/dist/safe-bash/command-chunks/chunk-IYPAQ7PH.js +42 -0
  117. package/dist/safe-bash/command-chunks/chunk-JN7WIP6S.js +94 -0
  118. package/dist/safe-bash/command-chunks/chunk-JNZ3CVAE.js +147 -0
  119. package/dist/safe-bash/command-chunks/{chunk-HLBX5IRS.js → chunk-JQ74HC37.js} +24 -32
  120. package/dist/safe-bash/command-chunks/{chunk-2LLZBNLL.js → chunk-JWE54GHQ.js} +1 -1
  121. package/dist/safe-bash/command-chunks/{chunk-QLDIP3OP.js → chunk-JZSNU2MY.js} +2 -2
  122. package/dist/safe-bash/command-chunks/chunk-KFVV7ZJO.js +216 -0
  123. package/dist/safe-bash/command-chunks/{chunk-G4PNVO6Z.js → chunk-KP7AO66M.js} +1 -1
  124. package/dist/safe-bash/command-chunks/chunk-KWESKQHR.js +25 -0
  125. package/dist/safe-bash/command-chunks/chunk-KYSPGS33.js +41 -0
  126. package/dist/safe-bash/command-chunks/{chunk-C7IHMJEW.js → chunk-KZC5UWFF.js} +2 -2
  127. package/dist/safe-bash/command-chunks/chunk-L6DVEBW3.js +553 -0
  128. package/dist/safe-bash/command-chunks/chunk-LC2MFKT4.js +2489 -0
  129. package/dist/safe-bash/command-chunks/chunk-LE5LZNHE.js +204 -0
  130. package/dist/safe-bash/command-chunks/chunk-MDH5T4OS.js +41 -0
  131. package/dist/safe-bash/command-chunks/chunk-MM6HU6CX.js +20 -0
  132. package/dist/safe-bash/command-chunks/{chunk-MYJAZ3U2.js → chunk-MPL2466A.js} +2 -2
  133. package/dist/safe-bash/command-chunks/{chunk-3TANKHBX.js → chunk-MRW5HD2D.js} +1 -6
  134. package/dist/safe-bash/command-chunks/{chunk-3WKA57FA.js → chunk-N5FGCXQJ.js} +1 -9
  135. package/dist/safe-bash/command-chunks/{chunk-VZHRZMS7.js → chunk-NAY27PXB.js} +1 -1
  136. package/dist/safe-bash/command-chunks/chunk-NCD7PEWH.js +298 -0
  137. package/dist/safe-bash/command-chunks/chunk-NFGI5IGF.js +266 -0
  138. package/dist/safe-bash/command-chunks/{chunk-U3ONEICA.js → chunk-NXEQ3ESQ.js} +7 -11
  139. package/dist/safe-bash/command-chunks/{chunk-3VGGYEDH.js → chunk-ORYGZYKW.js} +4 -3
  140. package/dist/safe-bash/command-chunks/{chunk-OLQG7ZCN.js → chunk-PEF7K3UQ.js} +136 -75
  141. package/dist/safe-bash/command-chunks/{chunk-HVI6ALJF.js → chunk-PFAADCB5.js} +2 -4
  142. package/dist/safe-bash/command-chunks/chunk-PII4YEZW.js +123 -0
  143. package/dist/safe-bash/command-chunks/{chunk-JG5W2ENK.js → chunk-PJJUYO3R.js} +5 -5
  144. package/dist/safe-bash/command-chunks/{chunk-VKQCNX32.js → chunk-PTT3I223.js} +1 -1
  145. package/dist/safe-bash/command-chunks/chunk-Q3DII3Q7.js +174 -0
  146. package/dist/safe-bash/command-chunks/chunk-Q3EWDEUQ.js +185 -0
  147. package/dist/safe-bash/command-chunks/{chunk-JXU2N6GN.js → chunk-Q7Q5GM5S.js} +2 -2
  148. package/dist/safe-bash/command-chunks/{chunk-Z5TFSVNU.js → chunk-QAKKSRNV.js} +1 -1
  149. package/dist/safe-bash/command-chunks/{chunk-2FUAW6GO.js → chunk-QI7LGHJJ.js} +58 -9
  150. package/dist/safe-bash/command-chunks/{chunk-6BETHLXZ.js → chunk-QJAFJP2G.js} +1 -1
  151. package/dist/safe-bash/command-chunks/chunk-QNIMV57G.js +63 -0
  152. package/dist/safe-bash/command-chunks/{chunk-KAHH4XOU.js → chunk-QNXI2UP6.js} +1 -1
  153. package/dist/safe-bash/command-chunks/{chunk-AC6X7Q4I.js → chunk-QP4R6GLA.js} +6 -9
  154. package/dist/safe-bash/command-chunks/{chunk-LPORMIZS.js → chunk-QWIDNAAK.js} +8 -8
  155. package/dist/safe-bash/command-chunks/chunk-RVLO4DYT.js +35 -0
  156. package/dist/safe-bash/command-chunks/{chunk-X2YQLGKS.js → chunk-SAMH7SQE.js} +4 -4
  157. package/dist/safe-bash/command-chunks/chunk-SEM36PG5.js +11 -0
  158. package/dist/safe-bash/command-chunks/chunk-STC3LEWJ.js +634 -0
  159. package/dist/safe-bash/command-chunks/chunk-SVULUDOP.js +331 -0
  160. package/dist/safe-bash/command-chunks/{chunk-WYOL5JNT.js → chunk-SX2X3IH4.js} +4 -4
  161. package/dist/safe-bash/command-chunks/chunk-TEVJJPTC.js +1392 -0
  162. package/dist/safe-bash/command-chunks/{chunk-6N5V4VBN.js → chunk-TYCGMRLM.js} +2 -2
  163. package/dist/safe-bash/command-chunks/chunk-UG7SMZFF.js +178 -0
  164. package/dist/safe-bash/command-chunks/{chunk-PRCT7FKJ.js → chunk-UMDIOL3O.js} +3 -3
  165. package/dist/safe-bash/command-chunks/chunk-UXSR5BZH.js +136 -0
  166. package/dist/safe-bash/command-chunks/chunk-V6BEDRMQ.js +112 -0
  167. package/dist/safe-bash/command-chunks/chunk-V6MSPQLA.js +362 -0
  168. package/dist/safe-bash/command-chunks/{chunk-J4PEQWSF.js → chunk-VGG2DL5Q.js} +0 -1
  169. package/dist/safe-bash/command-chunks/{chunk-SG424QWS.js → chunk-VL67NWNS.js} +1 -1
  170. package/dist/safe-bash/command-chunks/chunk-WB5SVIG7.js +1034 -0
  171. package/dist/safe-bash/command-chunks/{src-UJOWAS2S.js → chunk-WD3ERGRY.js} +77 -277
  172. package/dist/safe-bash/command-chunks/{chunk-YFSDDFGV.js → chunk-WH627NJL.js} +446 -53
  173. package/dist/safe-bash/command-chunks/chunk-WNE7FPVR.js +236 -0
  174. package/dist/safe-bash/command-chunks/{chunk-UKS2XJZI.js → chunk-WPYIOKE3.js} +4 -4
  175. package/dist/safe-bash/command-chunks/chunk-XETLEHZP.js +1227 -0
  176. package/dist/safe-bash/command-chunks/chunk-XIIBTGC5.js +580 -0
  177. package/dist/safe-bash/command-chunks/chunk-XJXU3VVH.js +737 -0
  178. package/dist/safe-bash/command-chunks/{chunk-JCVXAX2G.js → chunk-XWZBMJ5B.js} +1 -1
  179. package/dist/safe-bash/command-chunks/chunk-Y5INTD6S.js +220 -0
  180. package/dist/safe-bash/command-chunks/{chunk-23XLM73P.js → chunk-YEOPI5SK.js} +1 -1
  181. package/dist/safe-bash/command-chunks/{chunk-PPOIPMY4.js → chunk-YGC6OS5O.js} +3 -56
  182. package/dist/safe-bash/command-chunks/chunk-YJDV76GL.js +262 -0
  183. package/dist/safe-bash/command-chunks/chunk-YOF7R4OY.js +80 -0
  184. package/dist/safe-bash/command-chunks/chunk-Z7RVSD5K.js +594 -0
  185. package/dist/safe-bash/command-chunks/chunk-ZHUWOUWB.js +618 -0
  186. package/dist/safe-bash/command-chunks/{chunk-OGUMMTTD.js → chunk-ZJBR5Q5I.js} +4 -4
  187. package/dist/safe-bash/command-chunks/{model-store-L35QTZMJ.js → model-store-WPKMRPV4.js} +2 -2
  188. package/dist/safe-bash/command-chunks/pptx-7G52EJ6L-4JACH5FB.js +625 -0
  189. package/dist/safe-bash/command-chunks/python-worker-source-TYOFJMCW.js +4 -0
  190. package/dist/safe-bash/command-chunks/src-ICMQISAA.js +501 -0
  191. package/dist/safe-bash/commands/archive/create.d.ts +1 -17
  192. package/dist/safe-bash/commands/archive/create.js +1 -252
  193. package/dist/safe-bash/commands/archive/extract.d.ts +1 -11
  194. package/dist/safe-bash/commands/archive/extract.js +1 -640
  195. package/dist/safe-bash/commands/archive/format.d.ts +1 -32
  196. package/dist/safe-bash/commands/archive/format.js +1 -225
  197. package/dist/safe-bash/commands/archive/index.d.ts +5 -10
  198. package/dist/safe-bash/commands/archive/index.js +6 -931
  199. package/dist/safe-bash/commands/archive/listing.d.ts +1 -2
  200. package/dist/safe-bash/commands/archive/listing.js +1 -21
  201. package/dist/safe-bash/commands/archive/modes.d.ts +1 -5
  202. package/dist/safe-bash/commands/archive/modes.js +1 -182
  203. package/dist/safe-bash/commands/archive/options.d.ts +1 -53
  204. package/dist/safe-bash/commands/archive/options.js +1 -462
  205. package/dist/safe-bash/commands/archive/stream.d.ts +1 -22
  206. package/dist/safe-bash/commands/archive/stream.js +1 -188
  207. package/dist/safe-bash/commands/archive/transform.d.ts +1 -16
  208. package/dist/safe-bash/commands/archive/transform.js +1 -85
  209. package/dist/safe-bash/commands/archive/unzip/arguments.d.ts +1 -53
  210. package/dist/safe-bash/commands/archive/unzip/arguments.js +1 -322
  211. package/dist/safe-bash/commands/archive/unzip/safety.d.ts +1 -32
  212. package/dist/safe-bash/commands/archive/unzip/safety.js +1 -295
  213. package/dist/safe-bash/commands/archive/unzip.d.ts +1 -3
  214. package/dist/safe-bash/commands/archive/unzip.js +1 -398
  215. package/dist/safe-bash/commands/archive/zip/aes.d.ts +1 -17
  216. package/dist/safe-bash/commands/archive/zip/aes.js +1 -156
  217. package/dist/safe-bash/commands/archive/zip/comments.d.ts +1 -17
  218. package/dist/safe-bash/commands/archive/zip/comments.js +1 -83
  219. package/dist/safe-bash/commands/archive/zip/crc.d.ts +1 -1
  220. package/dist/safe-bash/commands/archive/zip/crc.js +1 -1
  221. package/dist/safe-bash/commands/archive/zip/crypto.d.ts +1 -19
  222. package/dist/safe-bash/commands/archive/zip/crypto.js +1 -118
  223. package/dist/safe-bash/commands/archive/zip/dates.d.ts +1 -4
  224. package/dist/safe-bash/commands/archive/zip/dates.js +1 -66
  225. package/dist/safe-bash/commands/archive/zip/environment.d.ts +1 -2
  226. package/dist/safe-bash/commands/archive/zip/environment.js +1 -62
  227. package/dist/safe-bash/commands/archive/zip/grow.d.ts +1 -3
  228. package/dist/safe-bash/commands/archive/zip/grow.js +1 -2
  229. package/dist/safe-bash/commands/archive/zip/help.d.ts +1 -4
  230. package/dist/safe-bash/commands/archive/zip/help.js +1 -182
  231. package/dist/safe-bash/commands/archive/zip/line-endings.d.ts +1 -2
  232. package/dist/safe-bash/commands/archive/zip/line-endings.js +1 -194
  233. package/dist/safe-bash/commands/archive/zip/log.d.ts +1 -22
  234. package/dist/safe-bash/commands/archive/zip/log.js +1 -159
  235. package/dist/safe-bash/commands/archive/zip/lzma.d.ts +1 -9
  236. package/dist/safe-bash/commands/archive/zip/lzma.js +1 -40
  237. package/dist/safe-bash/commands/archive/zip/move.d.ts +1 -11
  238. package/dist/safe-bash/commands/archive/zip/move.js +1 -59
  239. package/dist/safe-bash/commands/archive/zip/names.d.ts +1 -2
  240. package/dist/safe-bash/commands/archive/zip/names.js +1 -33
  241. package/dist/safe-bash/commands/archive/zip/options.d.ts +1 -13
  242. package/dist/safe-bash/commands/archive/zip/options.js +1 -124
  243. package/dist/safe-bash/commands/archive/zip/repair.d.ts +1 -10
  244. package/dist/safe-bash/commands/archive/zip/repair.js +1 -392
  245. package/dist/safe-bash/commands/archive/zip/safety.d.ts +1 -54
  246. package/dist/safe-bash/commands/archive/zip/safety.js +1 -360
  247. package/dist/safe-bash/commands/archive/zip/sfx.d.ts +1 -4
  248. package/dist/safe-bash/commands/archive/zip/sfx.js +1 -52
  249. package/dist/safe-bash/commands/archive/zip/test-command.d.ts +1 -5
  250. package/dist/safe-bash/commands/archive/zip/test-command.js +1 -101
  251. package/dist/safe-bash/commands/archive/zip/volumes.d.ts +1 -21
  252. package/dist/safe-bash/commands/archive/zip/volumes.js +1 -281
  253. package/dist/safe-bash/commands/archive/zip/zip64.d.ts +1 -30
  254. package/dist/safe-bash/commands/archive/zip/zip64.js +1 -227
  255. package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -68
  256. package/dist/safe-bash/commands/archive/zip-format.js +1 -1075
  257. package/dist/safe-bash/commands/archive/zip.d.ts +1 -3
  258. package/dist/safe-bash/commands/archive/zip.js +1 -1523
  259. package/dist/safe-bash/commands/awk/index.d.ts +2 -0
  260. package/dist/safe-bash/commands/awk/index.js +2 -0
  261. package/dist/safe-bash/commands/bytes/compression/index.js +2 -1
  262. package/dist/safe-bash/commands/curl/index.d.ts +2 -0
  263. package/dist/safe-bash/commands/curl/index.js +2 -0
  264. package/dist/safe-bash/commands/diff/index.d.ts +2 -0
  265. package/dist/safe-bash/commands/diff/index.js +2 -0
  266. package/dist/safe-bash/commands/diff-patch/diff-format.d.ts +1 -10
  267. package/dist/safe-bash/commands/diff-patch/diff-format.js +1 -237
  268. package/dist/safe-bash/commands/diff-patch/diff-options.d.ts +1 -38
  269. package/dist/safe-bash/commands/diff-patch/diff-options.js +1 -261
  270. package/dist/safe-bash/commands/diff-patch/diff-output.d.ts +1 -20
  271. package/dist/safe-bash/commands/diff-patch/diff-output.js +1 -290
  272. package/dist/safe-bash/commands/diff-patch/diff.d.ts +1 -2
  273. package/dist/safe-bash/commands/diff-patch/diff.js +1 -656
  274. package/dist/safe-bash/commands/diff-patch/index.d.ts +4 -5
  275. package/dist/safe-bash/commands/diff-patch/index.js +8 -333
  276. package/dist/safe-bash/commands/diff-patch/patch-envelope.d.ts +1 -2
  277. package/dist/safe-bash/commands/diff-patch/patch-envelope.js +1 -63
  278. package/dist/safe-bash/commands/diff-patch/patch-formats.d.ts +1 -7
  279. package/dist/safe-bash/commands/diff-patch/patch-formats.js +1 -264
  280. package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.d.ts +1 -41
  281. package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.js +1 -263
  282. package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.d.ts +1 -3
  283. package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.js +1 -100
  284. package/dist/safe-bash/commands/diff-patch/patch-path.d.ts +1 -3
  285. package/dist/safe-bash/commands/diff-patch/patch-path.js +1 -91
  286. package/dist/safe-bash/commands/diff-patch/patch-publication.d.ts +1 -13
  287. package/dist/safe-bash/commands/diff-patch/patch-publication.js +1 -107
  288. package/dist/safe-bash/commands/diff-patch/patch.d.ts +1 -2
  289. package/dist/safe-bash/commands/diff-patch/patch.js +1 -653
  290. package/dist/safe-bash/commands/diff-patch/shared.d.ts +1 -55
  291. package/dist/safe-bash/commands/diff-patch/shared.js +1 -276
  292. package/dist/safe-bash/commands/diff-patch/unified.d.ts +1 -52
  293. package/dist/safe-bash/commands/diff-patch/unified.js +1 -385
  294. package/dist/safe-bash/commands/directory-admission.d.ts +1 -3
  295. package/dist/safe-bash/commands/directory-admission.js +1 -26
  296. package/dist/safe-bash/commands/find/index.d.ts +2 -0
  297. package/dist/safe-bash/commands/find/index.js +2 -0
  298. package/dist/safe-bash/commands/find-format.d.ts +1 -20
  299. package/dist/safe-bash/commands/find-format.js +1 -161
  300. package/dist/safe-bash/commands/find.d.ts +2 -18
  301. package/dist/safe-bash/commands/find.js +2 -1236
  302. package/dist/safe-bash/commands/gzip/index.d.ts +2 -0
  303. package/dist/safe-bash/commands/gzip/index.js +2 -0
  304. package/dist/safe-bash/commands/line-endings/index.browser.js +1 -1
  305. package/dist/safe-bash/commands/line-endings/index.d.ts +1 -1
  306. package/dist/safe-bash/commands/line-endings/index.js +1 -262
  307. package/dist/safe-bash/commands/llm/index.browser.js +3 -1
  308. package/dist/safe-bash/commands/mdq/index.browser.js +2 -2
  309. package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -4
  310. package/dist/safe-bash/commands/metadata/chmod.js +2 -63
  311. package/dist/safe-bash/commands/network/aggregate.d.ts +1 -4
  312. package/dist/safe-bash/commands/network/aggregate.js +1 -23
  313. package/dist/safe-bash/commands/network/args.d.ts +1 -68
  314. package/dist/safe-bash/commands/network/args.js +1 -321
  315. package/dist/safe-bash/commands/network/authorizer.d.ts +1 -6
  316. package/dist/safe-bash/commands/network/authorizer.js +1 -33
  317. package/dist/safe-bash/commands/network/body.d.ts +1 -9
  318. package/dist/safe-bash/commands/network/body.js +1 -393
  319. package/dist/safe-bash/commands/network/curl.d.ts +3 -13
  320. package/dist/safe-bash/commands/network/curl.js +6 -693
  321. package/dist/safe-bash/commands/network/deadline.d.ts +1 -2
  322. package/dist/safe-bash/commands/network/deadline.js +1 -14
  323. package/dist/safe-bash/commands/network/decode.d.ts +1 -2
  324. package/dist/safe-bash/commands/network/decode.js +1 -79
  325. package/dist/safe-bash/commands/network/fetch-transport.d.ts +1 -7
  326. package/dist/safe-bash/commands/network/fetch-transport.js +1 -94
  327. package/dist/safe-bash/commands/network/form-content-type.d.ts +1 -5
  328. package/dist/safe-bash/commands/network/form-content-type.js +1 -63
  329. package/dist/safe-bash/commands/network/form-headers.d.ts +1 -2
  330. package/dist/safe-bash/commands/network/form-headers.js +1 -35
  331. package/dist/safe-bash/commands/network/glob.d.ts +1 -7
  332. package/dist/safe-bash/commands/network/glob.js +1 -134
  333. package/dist/safe-bash/commands/network/index.browser.js +2 -10
  334. package/dist/safe-bash/commands/network/input.d.ts +1 -5
  335. package/dist/safe-bash/commands/network/input.js +1 -276
  336. package/dist/safe-bash/commands/network/output.d.ts +1 -6
  337. package/dist/safe-bash/commands/network/output.js +1 -131
  338. package/dist/safe-bash/commands/network/private-address.d.ts +1 -1
  339. package/dist/safe-bash/commands/network/private-address.js +1 -44
  340. package/dist/safe-bash/commands/network/shared.d.ts +1 -14
  341. package/dist/safe-bash/commands/network/shared.js +1 -71
  342. package/dist/safe-bash/commands/network/types.d.ts +1 -37
  343. package/dist/safe-bash/commands/network/types.js +1 -31
  344. package/dist/safe-bash/commands/network/url.d.ts +1 -2
  345. package/dist/safe-bash/commands/network/url.js +1 -30
  346. package/dist/safe-bash/commands/network/wget.d.ts +3 -3
  347. package/dist/safe-bash/commands/network/wget.js +10 -331
  348. package/dist/safe-bash/commands/node/index.browser.js +4 -5
  349. package/dist/safe-bash/commands/node/index.d.ts +3 -3
  350. package/dist/safe-bash/commands/node/index.js +5 -0
  351. package/dist/safe-bash/commands/node/safejs.d.ts +3 -3
  352. package/dist/safe-bash/commands/node/safejs.js +6 -1
  353. package/dist/safe-bash/commands/node/types.d.ts +1 -1
  354. package/dist/safe-bash/commands/node/unconfigured.d.ts +3 -0
  355. package/dist/safe-bash/commands/node/unconfigured.js +10 -0
  356. package/dist/safe-bash/commands/op/index.browser.js +2 -2
  357. package/dist/safe-bash/commands/patch/index.d.ts +2 -0
  358. package/dist/safe-bash/commands/patch/index.js +2 -0
  359. package/dist/safe-bash/commands/pdfinfo/index.js +2 -1
  360. package/dist/safe-bash/commands/predicates.js +3 -4
  361. package/dist/safe-bash/commands/python/index.browser.js +5 -5
  362. package/dist/safe-bash/commands/python/llm-capability.d.ts +1 -0
  363. package/dist/safe-bash/commands/python/llm-capability.js +27 -7
  364. package/dist/safe-bash/commands/python/llm-module.js +11 -0
  365. package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
  366. package/dist/safe-bash/commands/python/manifest.js +9 -5
  367. package/dist/safe-bash/commands/python/provisioning.js +1 -1
  368. package/dist/safe-bash/commands/regex-execution/matching.js +1 -2
  369. package/dist/safe-bash/commands/regex-execution/public.browser.js +5 -5
  370. package/dist/safe-bash/commands/search/index.d.ts +1 -1
  371. package/dist/safe-bash/commands/search/index.js +1 -347
  372. package/dist/safe-bash/commands/search/portable.d.ts +2 -2
  373. package/dist/safe-bash/commands/search/portable.js +3 -2
  374. package/dist/safe-bash/commands/sed/index.d.ts +2 -0
  375. package/dist/safe-bash/commands/sed/index.js +2 -0
  376. package/dist/safe-bash/commands/tar/index.d.ts +2 -0
  377. package/dist/safe-bash/commands/tar/index.js +2 -0
  378. package/dist/safe-bash/commands/text-programs/awk-inspection.d.ts +1 -19
  379. package/dist/safe-bash/commands/text-programs/awk-inspection.js +1 -50
  380. package/dist/safe-bash/commands/text-programs/awk-pipes.d.ts +2 -0
  381. package/dist/safe-bash/commands/text-programs/awk-pipes.js +2 -0
  382. package/dist/safe-bash/commands/text-programs/awk-pretty.d.ts +1 -3
  383. package/dist/safe-bash/commands/text-programs/awk-pretty.js +1 -197
  384. package/dist/safe-bash/commands/text-programs/awk-quote.d.ts +1 -2
  385. package/dist/safe-bash/commands/text-programs/awk-quote.js +1 -15
  386. package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -42
  387. package/dist/safe-bash/commands/text-programs/awk-reader.js +1 -449
  388. package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -13
  389. package/dist/safe-bash/commands/text-programs/awk-retention.js +1 -51
  390. package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +1 -150
  391. package/dist/safe-bash/commands/text-programs/awk-runtime.js +1 -2627
  392. package/dist/safe-bash/commands/text-programs/awk-syntax.d.ts +1 -142
  393. package/dist/safe-bash/commands/text-programs/awk-syntax.js +1 -509
  394. package/dist/safe-bash/commands/text-programs/awk-values.d.ts +1 -32
  395. package/dist/safe-bash/commands/text-programs/awk-values.js +1 -386
  396. package/dist/safe-bash/commands/text-programs/awk.d.ts +1 -3
  397. package/dist/safe-bash/commands/text-programs/awk.js +1 -361
  398. package/dist/safe-bash/commands/text-programs/inplace.d.ts +1 -16
  399. package/dist/safe-bash/commands/text-programs/inplace.js +1 -155
  400. package/dist/safe-bash/commands/text-programs/sed.d.ts +1 -3
  401. package/dist/safe-bash/commands/text-programs/sed.js +1 -1647
  402. package/dist/safe-bash/commands/text.js +1 -25
  403. package/dist/safe-bash/commands/unzip/index.d.ts +2 -0
  404. package/dist/safe-bash/commands/unzip/index.js +2 -0
  405. package/dist/safe-bash/commands/wget/index.d.ts +2 -0
  406. package/dist/safe-bash/commands/wget/index.js +2 -0
  407. package/dist/safe-bash/commands/yq/index.browser.js +7 -2
  408. package/dist/safe-bash/commands/yq/index.d.ts +1 -6
  409. package/dist/safe-bash/commands/yq/index.js +1 -36
  410. package/dist/safe-bash/commands/zip/index.d.ts +2 -0
  411. package/dist/safe-bash/commands/zip/index.js +2 -0
  412. package/dist/safe-bash/core.browser.js +1 -1
  413. package/dist/safe-bash/core.d.ts +8 -1
  414. package/dist/safe-bash/core.js +7 -1
  415. package/dist/safe-bash/fs/s3/index.d.ts +2 -2
  416. package/dist/safe-bash/fs/s3/index.js +1 -1
  417. package/dist/safe-bash/full-core.browser.js +254 -223
  418. package/dist/safe-bash/jobs.browser.js +2 -2
  419. package/dist/safe-bash/lazy-mmdc.d.ts +6 -0
  420. package/dist/safe-bash/lazy-mmdc.js +23 -0
  421. package/dist/safe-bash/opt-in/commands/dd/index.js +4 -13
  422. package/dist/safe-bash/opt-in/commands/yq/mike.js +6 -13
  423. package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +1 -0
  424. package/dist/safe-bash/opt-in/commands/yq/native-work.js +19 -1
  425. package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +3 -21
  426. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -27
  427. package/dist/safe-bash/optional-host.browser.js +8 -4
  428. package/dist/safe-bash/optional-host.d.ts +1 -1
  429. package/dist/safe-bash/optional-host.js +1 -1
  430. package/dist/safe-bash/playwright/ability-execution.js +3 -2
  431. package/dist/safe-bash/playwright/adapter.js +1 -1
  432. package/dist/safe-bash/playwright/controller.js +9 -8
  433. package/dist/safe-bash/playwright/modal-capabilities.js +2 -1
  434. package/dist/safe-bash/playwright/native-json-snapshot.js +4 -3
  435. package/dist/safe-bash/playwright/native-snapshot.js +5 -4
  436. package/dist/safe-bash/playwright/open-options.js +3 -3
  437. package/dist/safe-bash/playwright/resource-limit.d.ts +2 -0
  438. package/dist/safe-bash/playwright/resource-limit.js +4 -0
  439. package/dist/safe-bash/playwright/session-configuration.js +8 -3
  440. package/dist/safe-bash/playwright/snapshot.js +8 -7
  441. package/dist/safe-bash/playwright/standard-capabilities.js +5 -4
  442. package/dist/safe-bash/plugins/index.browser.js +14 -16
  443. package/dist/safe-bash/registry-entry.browser.js +14 -16
  444. package/dist/safe-bash/shell/arrays/bindings.d.ts +3 -5
  445. package/dist/safe-bash/shell/arrays/bindings.js +6 -2
  446. package/dist/safe-bash/shell/input.js +16 -14
  447. package/dist/safe-bash/shell/runtime.d.ts +3 -0
  448. package/dist/safe-bash/shell/runtime.js +316 -64
  449. package/dist/safe-bash/shell/types.d.ts +2 -0
  450. package/dist/safe-bash/shell/value-state.js +17 -2
  451. package/dist/safe-bash/shell/worker-limits.js +1 -0
  452. package/dist/safe-bash/shell-entry.browser.js +13 -15
  453. package/dist/safe-bash/trap.browser.d.ts +3 -0
  454. package/dist/safe-bash/trap.browser.js +14 -0
  455. package/dist/safe-bash/worker/host.js +1 -1
  456. package/dist/safe-bash-command-apply-patch/apply.js +2 -2
  457. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  458. package/dist/safe-bash-command-awk/LICENSE +21 -0
  459. package/dist/safe-bash-command-awk/awk-inspection.d.ts +19 -0
  460. package/dist/safe-bash-command-awk/awk-inspection.js +9 -0
  461. package/dist/safe-bash-command-awk/awk-pipes.d.ts +19 -0
  462. package/dist/safe-bash-command-awk/awk-pipes.js +8 -0
  463. package/dist/safe-bash-command-awk/awk-pretty.d.ts +3 -0
  464. package/dist/safe-bash-command-awk/awk-pretty.js +8 -0
  465. package/dist/safe-bash-command-awk/awk-quote.d.ts +2 -0
  466. package/dist/safe-bash-command-awk/awk-quote.js +7 -0
  467. package/dist/safe-bash-command-awk/awk-reader.d.ts +42 -0
  468. package/dist/safe-bash-command-awk/awk-reader.js +9 -0
  469. package/dist/safe-bash-command-awk/awk-retention.d.ts +13 -0
  470. package/dist/safe-bash-command-awk/awk-retention.js +7 -0
  471. package/dist/safe-bash-command-awk/awk-runtime.d.ts +151 -0
  472. package/dist/safe-bash-command-awk/awk-runtime.js +11 -0
  473. package/dist/safe-bash-command-awk/awk-syntax.d.ts +144 -0
  474. package/dist/safe-bash-command-awk/awk-syntax.js +14 -0
  475. package/dist/safe-bash-command-awk/awk-values.d.ts +32 -0
  476. package/dist/safe-bash-command-awk/awk-values.js +35 -0
  477. package/dist/safe-bash-command-awk/awk.d.ts +3 -0
  478. package/dist/safe-bash-command-awk/awk.js +16 -0
  479. package/dist/safe-bash-command-awk/index.d.ts +7 -0
  480. package/dist/safe-bash-command-awk/index.js +36 -0
  481. package/dist/safe-bash-command-bc/index.d.ts +4 -0
  482. package/dist/safe-bash-command-bc/index.js +15 -176
  483. package/dist/safe-bash-command-column/column.js +3 -3
  484. package/dist/safe-bash-command-column/index.js +3 -3
  485. package/dist/safe-bash-command-column/layout.js +2 -2
  486. package/dist/safe-bash-command-csplit/command.js +2 -2
  487. package/dist/safe-bash-command-csplit/index.js +2 -2
  488. package/dist/safe-bash-command-csvkit/contracts.d.ts +1 -0
  489. package/dist/safe-bash-command-csvkit/csvpy-interpreter.d.ts +2 -1
  490. package/dist/safe-bash-command-csvkit/default-csvpy.d.ts +11 -0
  491. package/dist/safe-bash-command-csvkit/errors.js +22 -0
  492. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  493. package/dist/safe-bash-command-csvkit/index.js +172 -4
  494. package/dist/safe-bash-command-csvkit/python-worker-browser.d.ts +3 -0
  495. package/dist/safe-bash-command-csvkit/python-worker-browser.js +16 -0
  496. package/dist/safe-bash-command-csvkit/python-worker-contract.d.ts +20 -0
  497. package/dist/safe-bash-command-csvkit/python-worker-node.d.ts +3 -0
  498. package/dist/safe-bash-command-csvkit/python-worker-node.js +9 -0
  499. package/dist/safe-bash-command-csvkit/runtime.d.ts +1 -0
  500. package/dist/safe-bash-command-curl/LICENSE +21 -0
  501. package/dist/safe-bash-command-curl/curl.d.ts +13 -0
  502. package/dist/safe-bash-command-curl/curl.js +9 -0
  503. package/dist/safe-bash-command-curl/index.d.ts +6 -0
  504. package/dist/safe-bash-command-curl/index.js +26 -0
  505. package/dist/safe-bash-command-dd/index.js +4 -13
  506. package/dist/safe-bash-command-diff/LICENSE +21 -0
  507. package/dist/safe-bash-command-diff/diff-format.d.ts +10 -0
  508. package/dist/safe-bash-command-diff/diff-format.js +10 -0
  509. package/dist/safe-bash-command-diff/diff-options.d.ts +38 -0
  510. package/dist/safe-bash-command-diff/diff-options.js +7 -0
  511. package/dist/safe-bash-command-diff/diff-output.d.ts +20 -0
  512. package/dist/safe-bash-command-diff/diff-output.js +19 -0
  513. package/dist/safe-bash-command-diff/diff.d.ts +2 -0
  514. package/dist/safe-bash-command-diff/diff.js +10 -0
  515. package/dist/safe-bash-command-diff/index.d.ts +8 -0
  516. package/dist/safe-bash-command-diff/index.js +34 -0
  517. package/dist/safe-bash-command-diff/sync.d.ts +2 -0
  518. package/dist/safe-bash-command-diff/sync.js +9 -0
  519. package/dist/safe-bash-command-diff3/index.js +5 -5
  520. package/dist/safe-bash-command-docx/index.d.ts +4 -4
  521. package/dist/safe-bash-command-docx/index.js +12 -5
  522. package/dist/safe-bash-command-dos2unix/index.d.ts +1 -0
  523. package/dist/safe-bash-command-dos2unix/index.js +225 -1
  524. package/dist/safe-bash-command-dos2unix/sync.d.ts +1 -0
  525. package/dist/safe-bash-command-du/budget.d.ts +0 -2
  526. package/dist/safe-bash-command-du/budget.js +1 -1
  527. package/dist/safe-bash-command-du/du.js +2 -2
  528. package/dist/safe-bash-command-du/index.js +2 -2
  529. package/dist/safe-bash-command-exiftool/index.js +2 -2
  530. package/dist/safe-bash-command-factor/command.js +2 -2
  531. package/dist/safe-bash-command-factor/index.js +2 -2
  532. package/dist/safe-bash-command-ffmpeg/index.js +86 -94
  533. package/dist/safe-bash-command-file/index.js +4 -4
  534. package/dist/safe-bash-command-file/shared.d.ts +0 -2
  535. package/dist/safe-bash-command-file/shared.js +1 -1
  536. package/dist/safe-bash-command-find/LICENSE +21 -0
  537. package/dist/safe-bash-command-find/find-format.d.ts +20 -0
  538. package/dist/safe-bash-command-find/find-format.js +9 -0
  539. package/dist/safe-bash-command-find/find.d.ts +18 -0
  540. package/dist/safe-bash-command-find/find.js +10 -0
  541. package/dist/safe-bash-command-find/index.d.ts +13 -0
  542. package/dist/safe-bash-command-find/index.js +45 -0
  543. package/dist/safe-bash-command-fmt/index.js +10 -19
  544. package/dist/safe-bash-command-git/git_rust.wasm +0 -0
  545. package/dist/safe-bash-command-git/index.js +5 -7
  546. package/dist/safe-bash-command-git/wasm.generated.js +1 -1
  547. package/dist/safe-bash-command-gzip/LICENSE +21 -0
  548. package/dist/safe-bash-command-gzip/index.d.ts +11 -0
  549. package/dist/safe-bash-command-gzip/index.js +94 -0
  550. package/dist/safe-bash-command-html-to-markdown/budget.d.ts +0 -3
  551. package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
  552. package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
  553. package/dist/safe-bash-command-html-to-markdown/index.js +11 -11
  554. package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
  555. package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
  556. package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
  557. package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
  558. package/dist/safe-bash-command-htmlq/index.js +12 -8
  559. package/dist/safe-bash-command-iconv/command.js +5 -5
  560. package/dist/safe-bash-command-iconv/index.js +5 -5
  561. package/dist/safe-bash-command-iconv/internal.d.ts +0 -2
  562. package/dist/safe-bash-command-iconv/internal.js +1 -1
  563. package/dist/safe-bash-command-iconv/lifecycle.js +2 -2
  564. package/dist/safe-bash-command-iconv/options.js +2 -2
  565. package/dist/safe-bash-command-iconv/reader.js +2 -2
  566. package/dist/safe-bash-command-imagemagick/index.js +22 -30
  567. package/dist/safe-bash-command-jq/index.js +1 -1
  568. package/dist/safe-bash-command-jq/jq.js +1 -1
  569. package/dist/safe-bash-command-llm/command.js +1 -1
  570. package/dist/safe-bash-command-llm/index.d.ts +1 -0
  571. package/dist/safe-bash-command-llm/index.js +16 -14
  572. package/dist/safe-bash-command-llm/openai.js +3 -3
  573. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  574. package/dist/safe-bash-command-llm/providers/openai.js +3 -3
  575. package/dist/safe-bash-command-llm/stored-schema.d.ts +10 -0
  576. package/dist/safe-bash-command-mmdc/index.js +13 -604
  577. package/dist/safe-bash-command-mmdc/settings.d.ts +2 -0
  578. package/dist/safe-bash-command-mmdc/settings.js +7 -0
  579. package/dist/safe-bash-command-numfmt/index.js +4 -18
  580. package/dist/safe-bash-command-pandoc/command.js +4 -3
  581. package/dist/safe-bash-command-pandoc/defaults.d.ts +1 -0
  582. package/dist/safe-bash-command-pandoc/index.js +4 -3
  583. package/dist/safe-bash-command-pandoc/lua-filters.js +1 -1
  584. package/dist/safe-bash-command-pandoc/types.d.ts +3 -1
  585. package/dist/safe-bash-command-patch/LICENSE +21 -0
  586. package/dist/safe-bash-command-patch/index.d.ts +8 -0
  587. package/dist/safe-bash-command-patch/index.js +38 -0
  588. package/dist/safe-bash-command-patch/patch-envelope.d.ts +2 -0
  589. package/dist/safe-bash-command-patch/patch-envelope.js +7 -0
  590. package/dist/safe-bash-command-patch/patch-formats.d.ts +7 -0
  591. package/dist/safe-bash-command-patch/patch-formats.js +9 -0
  592. package/dist/safe-bash-command-patch/patch-gnu-paths.d.ts +41 -0
  593. package/dist/safe-bash-command-patch/patch-gnu-paths.js +26 -0
  594. package/dist/safe-bash-command-patch/patch-gnu-reject.d.ts +3 -0
  595. package/dist/safe-bash-command-patch/patch-gnu-reject.js +7 -0
  596. package/dist/safe-bash-command-patch/patch-path.d.ts +3 -0
  597. package/dist/safe-bash-command-patch/patch-path.js +11 -0
  598. package/dist/safe-bash-command-patch/patch-publication.d.ts +13 -0
  599. package/dist/safe-bash-command-patch/patch-publication.js +7 -0
  600. package/dist/safe-bash-command-patch/patch.d.ts +2 -0
  601. package/dist/safe-bash-command-patch/patch.js +14 -0
  602. package/dist/safe-bash-command-patch/sync.d.ts +2 -0
  603. package/dist/safe-bash-command-patch/sync.js +7 -0
  604. package/dist/safe-bash-command-patch/unified.d.ts +52 -0
  605. package/dist/safe-bash-command-patch/unified.js +16 -0
  606. package/dist/safe-bash-command-pdfimages/index.js +37 -16
  607. package/dist/safe-bash-command-pdfinfo/index.d.ts +0 -23
  608. package/dist/safe-bash-command-pdfinfo/index.js +20 -772
  609. package/dist/safe-bash-command-pdftk/index.js +37 -9
  610. package/dist/safe-bash-command-pdftoppm/index.js +50 -20
  611. package/dist/safe-bash-command-pdftotext/index.js +10 -2
  612. package/dist/safe-bash-command-pptx/index.d.ts +4 -4
  613. package/dist/safe-bash-command-pptx/index.js +11 -5
  614. package/dist/safe-bash-command-pr/command.js +5 -5
  615. package/dist/safe-bash-command-pr/format.js +2 -2
  616. package/dist/safe-bash-command-pr/index.js +7 -7
  617. package/dist/safe-bash-command-pr/internal.d.ts +0 -2
  618. package/dist/safe-bash-command-pr/internal.js +1 -1
  619. package/dist/safe-bash-command-pr/io.js +2 -2
  620. package/dist/safe-bash-command-pr/options.js +2 -2
  621. package/dist/safe-bash-command-qpdf/index.js +26 -13
  622. package/dist/safe-bash-command-rg/index.d.ts +1 -0
  623. package/dist/safe-bash-command-rg/index.js +222 -1
  624. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  625. package/dist/safe-bash-command-rg/sync.d.ts +1 -0
  626. package/dist/safe-bash-command-sed/LICENSE +21 -0
  627. package/dist/safe-bash-command-sed/index.d.ts +7 -0
  628. package/dist/safe-bash-command-sed/index.js +28 -0
  629. package/dist/safe-bash-command-sed/inplace.d.ts +16 -0
  630. package/dist/safe-bash-command-sed/inplace.js +9 -0
  631. package/dist/safe-bash-command-sed/sed.d.ts +3 -0
  632. package/dist/safe-bash-command-sed/sed.js +8 -0
  633. package/dist/safe-bash-command-shuf/input.js +3 -21
  634. package/dist/safe-bash-command-shuf/shuf.js +4 -27
  635. package/dist/safe-bash-command-sips/index.js +111 -35
  636. package/dist/safe-bash-command-soffice/index.js +4 -4
  637. package/dist/safe-bash-command-split/index.js +3 -3
  638. package/dist/safe-bash-command-split/io.d.ts +0 -2
  639. package/dist/safe-bash-command-split/io.js +1 -1
  640. package/dist/safe-bash-command-split/outputs.js +2 -2
  641. package/dist/safe-bash-command-split/split.js +3 -3
  642. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -2
  643. package/dist/safe-bash-command-sqlite3/index.js +152 -452
  644. package/dist/safe-bash-command-ssconvert/commands.js +1 -1
  645. package/dist/safe-bash-command-ssconvert/formats/ods.js +2 -2
  646. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +3 -3
  647. package/dist/safe-bash-command-ssconvert/index.js +5 -5
  648. package/dist/safe-bash-command-tar/LICENSE +21 -0
  649. package/dist/safe-bash-command-tar/create.d.ts +17 -0
  650. package/dist/safe-bash-command-tar/create.js +14 -0
  651. package/dist/safe-bash-command-tar/extract.d.ts +11 -0
  652. package/dist/safe-bash-command-tar/extract.js +14 -0
  653. package/dist/safe-bash-command-tar/format.d.ts +32 -0
  654. package/dist/safe-bash-command-tar/format.js +19 -0
  655. package/dist/safe-bash-command-tar/index.d.ts +8 -0
  656. package/dist/safe-bash-command-tar/index.js +550 -0
  657. package/dist/safe-bash-command-tar/listing.d.ts +2 -0
  658. package/dist/safe-bash-command-tar/listing.js +7 -0
  659. package/dist/safe-bash-command-tar/modes.d.ts +5 -0
  660. package/dist/safe-bash-command-tar/modes.js +16 -0
  661. package/dist/safe-bash-command-tar/options.d.ts +53 -0
  662. package/dist/safe-bash-command-tar/options.js +10 -0
  663. package/dist/safe-bash-command-tar/stream.d.ts +22 -0
  664. package/dist/safe-bash-command-tar/stream.js +15 -0
  665. package/dist/safe-bash-command-tar/transform.d.ts +16 -0
  666. package/dist/safe-bash-command-tar/transform.js +9 -0
  667. package/dist/safe-bash-command-tree/arguments.js +3 -3
  668. package/dist/safe-bash-command-tree/charset.js +1 -1
  669. package/dist/safe-bash-command-tree/index.js +4 -4
  670. package/dist/safe-bash-command-tree/io.d.ts +0 -1
  671. package/dist/safe-bash-command-tree/io.js +1 -1
  672. package/dist/safe-bash-command-tree/pattern.js +2 -2
  673. package/dist/safe-bash-command-tree/tree.js +4 -4
  674. package/dist/safe-bash-command-tsort/command.js +4 -4
  675. package/dist/safe-bash-command-tsort/graph.js +2 -2
  676. package/dist/safe-bash-command-tsort/index.js +4 -4
  677. package/dist/safe-bash-command-tsort/internal.d.ts +0 -2
  678. package/dist/safe-bash-command-tsort/internal.js +1 -1
  679. package/dist/safe-bash-command-tsort/io.js +2 -2
  680. package/dist/safe-bash-command-unzip/LICENSE +21 -0
  681. package/dist/safe-bash-command-unzip/index.d.ts +7 -0
  682. package/dist/safe-bash-command-unzip/index.js +39 -0
  683. package/dist/safe-bash-command-unzip/sync.d.ts +3 -0
  684. package/dist/safe-bash-command-unzip/sync.js +9 -0
  685. package/dist/safe-bash-command-unzip/unzip/safety.d.ts +32 -0
  686. package/dist/safe-bash-command-unzip/unzip/safety.js +7 -0
  687. package/dist/safe-bash-command-unzip/unzip.d.ts +3 -0
  688. package/dist/safe-bash-command-unzip/unzip.js +8 -0
  689. package/dist/safe-bash-command-wget/LICENSE +21 -0
  690. package/dist/safe-bash-command-wget/index.d.ts +6 -0
  691. package/dist/safe-bash-command-wget/index.js +26 -0
  692. package/dist/safe-bash-command-wget/wget.d.ts +3 -0
  693. package/dist/safe-bash-command-wget/wget.js +7 -0
  694. package/dist/safe-bash-command-xan/argv.d.ts +4 -1
  695. package/dist/safe-bash-command-xan/argv.js +1 -1
  696. package/dist/safe-bash-command-xan/commands.js +4 -3
  697. package/dist/safe-bash-command-xan/index.js +15 -14
  698. package/dist/safe-bash-command-xan/io.js +2 -2
  699. package/dist/safe-bash-command-xmllint/index.js +189 -49
  700. package/dist/safe-bash-command-xz/index.js +3 -2
  701. package/dist/safe-bash-command-xz/options.d.ts +9 -1
  702. package/dist/safe-bash-command-xz/options.js +3 -1
  703. package/dist/safe-bash-command-yq/index.d.ts +4 -11
  704. package/dist/safe-bash-command-yq/index.js +3367 -670
  705. package/dist/safe-bash-command-yq/mike.js +6 -13
  706. package/dist/safe-bash-command-yq/native-work.d.ts +1 -0
  707. package/dist/safe-bash-command-yq/native-work.js +19 -1
  708. package/dist/safe-bash-command-yq/query.d.ts +11 -0
  709. package/dist/safe-bash-command-yq/query.js +735 -0
  710. package/dist/safe-bash-command-zip/LICENSE +21 -0
  711. package/dist/safe-bash-command-zip/index.d.ts +7 -0
  712. package/dist/safe-bash-command-zip/index.js +38 -0
  713. package/dist/safe-bash-command-zip/sync.d.ts +3 -0
  714. package/dist/safe-bash-command-zip/sync.js +9 -0
  715. package/dist/safe-bash-command-zip/zip.d.ts +3 -0
  716. package/dist/safe-bash-command-zip/zip.js +7 -0
  717. package/dist/safe-bash-compression-engine/files.js +4 -4
  718. package/dist/safe-bash-compression-engine/index.js +2 -2
  719. package/dist/safe-bash-compression-engine/operand.js +6 -6
  720. package/dist/safe-bash-compression-engine/stream.js +2 -2
  721. package/dist/safe-bash-compression-engine/zstd-decode.js +1 -1
  722. package/dist/safe-bash-contracts/command.js +1 -1
  723. package/dist/safe-bash-contracts/diagnostics.js +4 -4
  724. package/dist/safe-bash-contracts/escaping.js +11 -11
  725. package/dist/safe-bash-contracts/filesystem-descriptor.js +1 -1
  726. package/dist/safe-bash-contracts/filesystem-output.js +8 -8
  727. package/dist/safe-bash-contracts/index.js +34 -34
  728. package/dist/safe-bash-contracts/io.js +2 -2
  729. package/dist/safe-bash-contracts/output.js +3 -3
  730. package/dist/safe-bash-diff-engine/LICENSE +21 -0
  731. package/dist/safe-bash-diff-engine/index.d.ts +1 -0
  732. package/dist/safe-bash-diff-engine/index.js +24 -0
  733. package/dist/safe-bash-diff-engine/shared.d.ts +53 -0
  734. package/dist/safe-bash-diff-engine/shared.js +19 -0
  735. package/dist/safe-bash-io-engine/commands/archive/internal.d.ts +0 -1
  736. package/dist/safe-bash-io-engine/commands/archive/internal.js +3 -7
  737. package/dist/safe-bash-io-engine/commands/directory-admission.d.ts +3 -0
  738. package/dist/safe-bash-io-engine/commands/directory-admission.js +34 -0
  739. package/dist/safe-bash-io-engine/commands/mode-change.d.ts +4 -0
  740. package/dist/safe-bash-io-engine/commands/mode-change.js +60 -0
  741. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +20 -31
  742. package/dist/safe-bash-io-engine/shell/pattern.js +8 -13
  743. package/dist/safe-bash-io-engine/shell/string-operations.d.ts +0 -2
  744. package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
  745. package/dist/safe-bash-line-ending-engine/internal.d.ts +0 -2
  746. package/dist/safe-bash-line-ending-engine/internal.js +1 -9
  747. package/dist/safe-bash-markdown-engine/commonmark-blocks.js +4 -4
  748. package/dist/safe-bash-markdown-engine/commonmark-inlines.js +4 -4
  749. package/dist/safe-bash-markdown-engine/commonmark-syntax.js +2 -2
  750. package/dist/safe-bash-markdown-engine/gfm-syntax.js +3 -3
  751. package/dist/safe-bash-markdown-engine/index.js +7 -7
  752. package/dist/safe-bash-mcp/index.browser.d.ts +6 -0
  753. package/dist/safe-bash-mcp/index.browser.js +1 -0
  754. package/dist/safe-bash-mcp/index.d.ts +12 -0
  755. package/dist/safe-bash-mcp/index.js +1558 -36
  756. package/dist/safe-bash-network-engine/LICENSE +21 -0
  757. package/dist/safe-bash-network-engine/aggregate.d.ts +4 -0
  758. package/dist/safe-bash-network-engine/aggregate.js +37 -0
  759. package/dist/safe-bash-network-engine/args.d.ts +68 -0
  760. package/dist/safe-bash-network-engine/args.js +19 -0
  761. package/dist/safe-bash-network-engine/authorizer.d.ts +6 -0
  762. package/dist/safe-bash-network-engine/authorizer.js +8 -0
  763. package/dist/safe-bash-network-engine/body.d.ts +9 -0
  764. package/dist/safe-bash-network-engine/body.js +374 -0
  765. package/dist/safe-bash-network-engine/deadline.d.ts +2 -0
  766. package/dist/safe-bash-network-engine/deadline.js +7 -0
  767. package/dist/safe-bash-network-engine/decode.d.ts +2 -0
  768. package/dist/safe-bash-network-engine/decode.js +81 -0
  769. package/dist/safe-bash-network-engine/fetch-transport.d.ts +7 -0
  770. package/dist/safe-bash-network-engine/fetch-transport.js +9 -0
  771. package/dist/safe-bash-network-engine/form-content-type.d.ts +5 -0
  772. package/dist/safe-bash-network-engine/form-content-type.js +8 -0
  773. package/dist/safe-bash-network-engine/form-headers.d.ts +2 -0
  774. package/dist/safe-bash-network-engine/form-headers.js +10 -0
  775. package/dist/safe-bash-network-engine/glob.d.ts +7 -0
  776. package/dist/safe-bash-network-engine/glob.js +124 -0
  777. package/dist/safe-bash-network-engine/index.d.ts +3 -0
  778. package/dist/safe-bash-network-engine/index.js +26 -0
  779. package/dist/safe-bash-network-engine/input.d.ts +5 -0
  780. package/dist/safe-bash-network-engine/input.js +255 -0
  781. package/dist/safe-bash-network-engine/output.d.ts +6 -0
  782. package/dist/safe-bash-network-engine/output.js +132 -0
  783. package/dist/safe-bash-network-engine/platform-portable.d.ts +5 -0
  784. package/dist/safe-bash-network-engine/platform-portable.js +19 -0
  785. package/dist/safe-bash-network-engine/private-address.d.ts +1 -0
  786. package/dist/safe-bash-network-engine/private-address.js +7 -0
  787. package/dist/safe-bash-network-engine/shared.d.ts +14 -0
  788. package/dist/safe-bash-network-engine/shared.js +23 -0
  789. package/dist/safe-bash-network-engine/types.d.ts +37 -0
  790. package/dist/safe-bash-network-engine/types.js +11 -0
  791. package/dist/safe-bash-network-engine/url.d.ts +2 -0
  792. package/dist/safe-bash-network-engine/url.js +8 -0
  793. package/dist/safe-bash-query-engine/capture.d.ts +1 -0
  794. package/dist/safe-bash-query-engine/capture.js +9 -7
  795. package/dist/safe-bash-query-engine/dates.d.ts +5 -1
  796. package/dist/safe-bash-query-engine/dates.js +10 -2
  797. package/dist/safe-bash-query-engine/delpaths.js +5 -5
  798. package/dist/safe-bash-query-engine/formats.js +3 -3
  799. package/dist/safe-bash-query-engine/index.js +15 -15
  800. package/dist/safe-bash-query-engine/indices.js +5 -5
  801. package/dist/safe-bash-query-engine/input.d.ts +1 -2
  802. package/dist/safe-bash-query-engine/input.js +2 -4
  803. package/dist/safe-bash-query-engine/interpreter.d.ts +5 -0
  804. package/dist/safe-bash-query-engine/interpreter.js +13 -13
  805. package/dist/safe-bash-query-engine/limits.js +1 -1
  806. package/dist/safe-bash-query-engine/parser.d.ts +8 -1
  807. package/dist/safe-bash-query-engine/parser.js +2 -2
  808. package/dist/safe-bash-query-engine/query-core.js +15 -15
  809. package/dist/safe-bash-query-engine/recurse.js +2 -2
  810. package/dist/safe-bash-query-engine/regex.d.ts +4 -2
  811. package/dist/safe-bash-query-engine/regex.js +10 -5
  812. package/dist/safe-bash-query-engine/split.js +2 -2
  813. package/dist/safe-bash-query-engine/splits.d.ts +1 -1
  814. package/dist/safe-bash-query-engine/splits.js +7 -6
  815. package/dist/safe-bash-query-engine/values.js +4 -4
  816. package/dist/safe-bash-regex-engine/ere/limits.d.ts +0 -1
  817. package/dist/safe-bash-regex-engine/ere/limits.js +1 -1
  818. package/dist/safe-bash-regex-engine/ere/matcher.js +9 -9
  819. package/dist/safe-bash-regex-engine/ere/syntax.js +2 -2
  820. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +2 -4
  821. package/dist/safe-bash-regex-engine/index.js +2 -2
  822. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -0
  823. package/dist/safe-bash-regex-engine/text/regex.js +2 -2
  824. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +12 -2
  825. package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
  826. package/dist/safe-bash-search-engine/glob.js +2 -2
  827. package/dist/safe-bash-search-engine/grep.js +2 -2
  828. package/dist/safe-bash-search-engine/matcher.d.ts +6 -2
  829. package/dist/safe-bash-search-engine/matcher.js +30 -8
  830. package/dist/safe-bash-search-engine/options.js +1 -1
  831. package/dist/safe-bash-search-engine/output.d.ts +3 -2
  832. package/dist/safe-bash-search-engine/output.js +111 -30
  833. package/dist/safe-bash-search-engine/shared.d.ts +2 -0
  834. package/dist/safe-bash-search-engine/shared.js +2 -2
  835. package/dist/safe-bash-search-engine/walk.js +11 -10
  836. package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +0 -2
  837. package/dist/safe-bash-text-stream-engine/stream-format/shared.js +1 -9
  838. package/dist/safe-bash-xml-engine/document.d.ts +1 -1
  839. package/dist/safe-bash-xml-engine/document.js +3 -3
  840. package/dist/safe-bash-xml-engine/evaluate.d.ts +1 -0
  841. package/dist/safe-bash-xml-engine/evaluate.js +4 -1
  842. package/dist/safe-bash-xml-engine/index.js +8 -6
  843. package/dist/safe-bash-xml-engine/io.js +1 -1
  844. package/dist/safe-bash-xml-engine/limits.d.ts +2 -2
  845. package/dist/safe-bash-xml-engine/limits.js +1 -1
  846. package/dist/safe-bash-xml-engine/predicate.d.ts +57 -0
  847. package/dist/safe-bash-xml-engine/query.d.ts +3 -15
  848. package/dist/safe-bash-xml-engine/query.js +3 -2
  849. package/dist/safe-bash-zip-engine/LICENSE +21 -0
  850. package/dist/safe-bash-zip-engine/index.d.ts +1 -0
  851. package/dist/safe-bash-zip-engine/index.js +32 -0
  852. package/dist/safe-bash-zip-engine/unzip/arguments.d.ts +53 -0
  853. package/dist/safe-bash-zip-engine/unzip/arguments.js +270 -0
  854. package/dist/safe-bash-zip-engine/zip/aes.d.ts +17 -0
  855. package/dist/safe-bash-zip-engine/zip/aes.js +15 -0
  856. package/dist/safe-bash-zip-engine/zip/comments.d.ts +17 -0
  857. package/dist/safe-bash-zip-engine/zip/comments.js +77 -0
  858. package/dist/safe-bash-zip-engine/zip/crc.d.ts +1 -0
  859. package/dist/safe-bash-zip-engine/zip/crc.js +7 -0
  860. package/dist/safe-bash-zip-engine/zip/crypto.d.ts +19 -0
  861. package/dist/safe-bash-zip-engine/zip/crypto.js +16 -0
  862. package/dist/safe-bash-zip-engine/zip/dates.d.ts +4 -0
  863. package/dist/safe-bash-zip-engine/zip/dates.js +68 -0
  864. package/dist/safe-bash-zip-engine/zip/environment.d.ts +2 -0
  865. package/dist/safe-bash-zip-engine/zip/environment.js +60 -0
  866. package/dist/safe-bash-zip-engine/zip/grow.d.ts +3 -0
  867. package/dist/safe-bash-zip-engine/zip/grow.js +7 -0
  868. package/dist/safe-bash-zip-engine/zip/help.d.ts +4 -0
  869. package/dist/safe-bash-zip-engine/zip/help.js +194 -0
  870. package/dist/safe-bash-zip-engine/zip/line-endings.d.ts +2 -0
  871. package/dist/safe-bash-zip-engine/zip/line-endings.js +165 -0
  872. package/dist/safe-bash-zip-engine/zip/log.d.ts +22 -0
  873. package/dist/safe-bash-zip-engine/zip/log.js +153 -0
  874. package/dist/safe-bash-zip-engine/zip/lzma.d.ts +9 -0
  875. package/dist/safe-bash-zip-engine/zip/lzma.js +7 -0
  876. package/dist/safe-bash-zip-engine/zip/move.d.ts +11 -0
  877. package/dist/safe-bash-zip-engine/zip/move.js +57 -0
  878. package/dist/safe-bash-zip-engine/zip/names.d.ts +2 -0
  879. package/dist/safe-bash-zip-engine/zip/names.js +37 -0
  880. package/dist/safe-bash-zip-engine/zip/options.d.ts +13 -0
  881. package/dist/safe-bash-zip-engine/zip/options.js +23 -0
  882. package/dist/safe-bash-zip-engine/zip/repair.d.ts +10 -0
  883. package/dist/safe-bash-zip-engine/zip/repair.js +348 -0
  884. package/dist/safe-bash-zip-engine/zip/safety.d.ts +54 -0
  885. package/dist/safe-bash-zip-engine/zip/safety.js +19 -0
  886. package/dist/safe-bash-zip-engine/zip/sfx.d.ts +4 -0
  887. package/dist/safe-bash-zip-engine/zip/sfx.js +58 -0
  888. package/dist/safe-bash-zip-engine/zip/test-command.d.ts +5 -0
  889. package/dist/safe-bash-zip-engine/zip/test-command.js +98 -0
  890. package/dist/safe-bash-zip-engine/zip/volumes.d.ts +21 -0
  891. package/dist/safe-bash-zip-engine/zip/volumes.js +255 -0
  892. package/dist/safe-bash-zip-engine/zip/zip64.d.ts +30 -0
  893. package/dist/safe-bash-zip-engine/zip/zip64.js +25 -0
  894. package/dist/safe-bash-zip-engine/zip-format.d.ts +68 -0
  895. package/dist/safe-bash-zip-engine/zip-format.js +27 -0
  896. package/dist/safe-playwright-cloudflare/browser-codegen.generated.d.ts +7 -7
  897. package/dist/safe-playwright-cloudflare/browser-codegen.generated.js +866 -8069
  898. package/dist/safe-playwright-cloudflare/browser-run-code-budget.d.ts +0 -1
  899. package/dist/safe-playwright-cloudflare/browser-run-code-budget.js +0 -2
  900. package/dist/safe-playwright-cloudflare/browser-trace-archive.d.ts +5 -1
  901. package/dist/safe-playwright-cloudflare/browser-trace-archive.js +2 -1
  902. package/dist/safe-playwright-cloudflare/browser-trace-budget.js +2 -2
  903. package/dist/safe-playwright-cloudflare/shell-browser-resource.d.ts +2 -0
  904. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +3 -11
  905. package/dist/safe-playwright-cloudflare/shell-playwright.d.ts +2 -0
  906. package/dist/safe-playwright-cloudflare/shell-playwright.js +1 -1
  907. package/dist/spreadsheet-engine/io/publication.d.ts +1 -0
  908. package/package.json +163 -14
  909. package/dist/safe-bash/chunks/chunk-O4ZUCRGN.js +0 -13
  910. package/dist/safe-bash/chunks/chunk-S264DZO2.js +0 -243
  911. package/dist/safe-bash/chunks/chunk-WVG5SHHQ.js +0 -12
  912. package/dist/safe-bash/chunks/chunk-XH26YVGW.js +0 -23027
  913. package/dist/safe-bash/chunks/chunk-ZW6K2J7P.js +0 -2652
  914. package/dist/safe-bash/command-chunks/chunk-BIXLZ3OG.js +0 -14342
  915. package/dist/safe-bash/command-chunks/chunk-DUYJE2HY.js +0 -14
  916. package/dist/safe-bash/command-chunks/chunk-JHVZYB4R.js +0 -181
  917. package/dist/safe-bash/command-chunks/chunk-ULZ7HIZP.js +0 -40
  918. package/dist/safe-bash/command-chunks/chunk-XS3PGJU2.js +0 -343
  919. package/dist/safe-bash/command-chunks/chunk-XTZALMLR.js +0 -488
  920. package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.d.ts +0 -2
  921. package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.js +0 -3
  922. package/dist/safe-bash/commands/archive/zip/aes-primitives.d.ts +0 -2
  923. package/dist/safe-bash/commands/archive/zip/aes-primitives.js +0 -3
  924. package/dist/safe-bash/commands/xml/document.d.ts +0 -2
  925. package/dist/safe-bash/commands/xml/document.js +0 -2
  926. package/dist/safe-bash/commands/xml/evaluate.d.ts +0 -2
  927. package/dist/safe-bash/commands/xml/evaluate.js +0 -2
  928. package/dist/safe-bash/commands/xml/json.d.ts +0 -2
  929. package/dist/safe-bash/commands/xml/json.js +0 -2
  930. package/dist/safe-bash/commands/xml/limits.d.ts +0 -2
  931. package/dist/safe-bash/commands/xml/limits.js +0 -2
  932. package/dist/safe-bash/commands/xml/query.d.ts +0 -2
  933. package/dist/safe-bash/commands/xml/query.js +0 -2
  934. package/dist/safe-bash/chunks/{chunk-NHOXKQNE.js → chunk-QVSRRNZT.js} +3 -3
  935. package/dist/safe-bash/command-chunks/{chunk-FIUFIDAO.js → chunk-2JRBIDAD.js} +3 -3
  936. package/dist/safe-bash/command-chunks/{chunk-TYVCKQDH.js → chunk-J5SN3PZ3.js} +3 -3
  937. package/dist/safe-bash/command-chunks/{chunk-2ENZ6JGA.js → chunk-KEV7C3KH.js} +3 -3
  938. package/dist/safe-bash/command-chunks/{chunk-S62HELHU.js → chunk-PL6O4K6W.js} +3 -3
  939. package/dist/safe-bash/command-chunks/{chunk-2WRTLCGK.js → chunk-QZF3SINC.js} +4 -4
  940. package/dist/safe-bash/command-chunks/{chunk-X7TM3AKW.js → chunk-U6G67N23.js} +3 -3
  941. package/dist/safe-bash/command-chunks/{chunk-DDLQ5YDB.js → chunk-YHFXOX6U.js} +9 -9
  942. package/dist/safe-bash/command-chunks/{chunk-DQMOM72Z.js → chunk-ZRRBXU3M.js} +4 -4
@@ -0,0 +1,1392 @@
1
+ import {
2
+ editInPlace,
3
+ prepareInPlace
4
+ } from "./chunk-CQ5YGOGB.js";
5
+ import {
6
+ init_buffer
7
+ } from "./chunk-HX3SHTCE.js";
8
+
9
+ // packages/safe-bash-command-sed/src/sed.ts
10
+ init_buffer();
11
+ import { tryReadMemoryFileViewSync } from "@poe-platform/safe-fs/core";
12
+ import { FsError, writeBytes } from "../../safe-bash-contracts/index.js";
13
+ import { writeFileOutput } from "../../safe-bash-contracts/filesystem-output.js";
14
+ import { decodeBytes, encodeBytes, writeEncodedBytes } from "../../safe-bash-io-engine/byte-encoding.js";
15
+ import { assertPathRequirements, requiredFileInput, sedRequirements } from "../../safe-bash-io-engine/commands/search/requirements.js";
16
+ import { Budget, ProgramError, byteString, bytes, command, getCachedLatin1Batch, input, lineRecordBatches, readProgram, virtualPath } from "../../safe-bash-io-engine/commands/text-programs/shared.js";
17
+ import { pathOf } from "../../safe-bash-io-engine/internal.js";
18
+ import { Pattern, trySubstitutePairBatchToBufferSync, trySubstitutePairSync, trySubstitutePairToBufferSync, trySubstituteSync } from "../../safe-bash-regex-engine/text/regex.js";
19
+ var sedProgramCache = /* @__PURE__ */ new Map();
20
+ var EMPTY_STRINGS = Object.freeze([]);
21
+ var EMPTY_SET = /* @__PURE__ */ new Set();
22
+ function tryParseFastPairProgramSync(rawProg, budget) {
23
+ if (rawProg.length > 256 || rawProg.startsWith("#n")) return void 0;
24
+ const parts = rawProg.split(/[;\n]/);
25
+ const instructions = [];
26
+ const stepsBefore = budget.stepsUsed;
27
+ for (let i = 0; i < parts.length; i++) {
28
+ const part = parts[i].trim();
29
+ if (part.length === 0) continue;
30
+ if (part.charCodeAt(0) !== 115 || part.length < 4) return void 0;
31
+ const delim = part[1];
32
+ if (delim === "\\" || delim === "\n") return void 0;
33
+ let p = 2;
34
+ let patStr = "";
35
+ while (p < part.length && part[p] !== delim) {
36
+ const ch = part[p++];
37
+ if (ch === "\\") {
38
+ if (p >= part.length) return void 0;
39
+ const next = part[p++];
40
+ if (next === "[" || next === "]" || next === delim) return void 0;
41
+ patStr += `\\${next}`;
42
+ } else {
43
+ if (ch === "[") return void 0;
44
+ patStr += ch;
45
+ }
46
+ }
47
+ if (p >= part.length || part[p] !== delim || patStr.length === 0) return void 0;
48
+ p++;
49
+ let repStr = "";
50
+ let repGroupCount = 0;
51
+ while (p < part.length && part[p] !== delim) {
52
+ const ch = part[p++];
53
+ if (ch === "\\") {
54
+ if (p >= part.length) return void 0;
55
+ const next = part[p++];
56
+ if (next === delim) return void 0;
57
+ if (next >= "1" && next <= "9") repGroupCount = Math.max(repGroupCount, Number(next));
58
+ repStr += `\\${next}`;
59
+ } else {
60
+ repStr += ch;
61
+ }
62
+ }
63
+ if (p >= part.length || part[p] !== delim) return void 0;
64
+ p++;
65
+ let global = false;
66
+ for (; p < part.length; p++) {
67
+ if (part[p] === "g" && !global) global = true;
68
+ else return void 0;
69
+ }
70
+ let compiled;
71
+ try {
72
+ compiled = new Pattern(patStr, false, false);
73
+ } catch {
74
+ return void 0;
75
+ }
76
+ const compiledInternal = compiled;
77
+ if (compiledInternal.parsed || repGroupCount > compiled.groupCount) return void 0;
78
+ if (!compiledInternal.budgetPrepared && (compiledInternal.compiledSteps ?? 0) > 0) {
79
+ compiledInternal.budgetPrepared = true;
80
+ budget.step(compiledInternal.compiledSteps);
81
+ }
82
+ instructions.push({
83
+ kind: "s",
84
+ negate: false,
85
+ pattern: compiled,
86
+ replacement: repStr,
87
+ replacementGroupCount: repGroupCount,
88
+ global
89
+ });
90
+ if (instructions.length > 2) return void 0;
91
+ }
92
+ if (instructions.length !== 2) return void 0;
93
+ const steps = budget.stepsUsed - stepsBefore;
94
+ const cached = {
95
+ program: instructions,
96
+ steps,
97
+ outputFiles: EMPTY_STRINGS,
98
+ readFiles: EMPTY_STRINGS
99
+ };
100
+ const cacheKey = `0:
101
+ :${Infinity}:${rawProg}`;
102
+ if (sedProgramCache.size >= 64) sedProgramCache.delete(sedProgramCache.keys().next().value);
103
+ sedProgramCache.set(cacheKey, cached);
104
+ return cached;
105
+ }
106
+ async function parse(source, extended, separator, maxProgramInstructions, budget) {
107
+ const result = [];
108
+ const groups = [];
109
+ const labels = /* @__PURE__ */ new Map();
110
+ let offset = 0;
111
+ const horizontal = () => {
112
+ while (source[offset] === " " || source[offset] === " " || source[offset] === "\r") offset++;
113
+ };
114
+ const delimited = (delimiter, regex = false) => {
115
+ let text = "";
116
+ let bracket = false;
117
+ let first = 0;
118
+ let special = "";
119
+ while (offset < source.length) {
120
+ const character = source[offset++];
121
+ if (character === delimiter && !bracket) return text;
122
+ if (character === "\\") {
123
+ if (bracket && source[offset] !== delimiter && source[offset] !== "\n") {
124
+ text += "\\";
125
+ first = 0;
126
+ continue;
127
+ }
128
+ const next = source[offset++];
129
+ if (next === void 0) break;
130
+ text += next === "\n" || !bracket && next === delimiter && (regex ? !extended && "()|+?{}".includes(next) || "ntrfva".includes(next) : next === "n" || next === "t" || next >= "0" && next <= "9") ? next : `\\${next}`;
131
+ if (bracket) first = 0;
132
+ } else {
133
+ if (character === "\n") throw new ProgramError("unterminated delimited expression");
134
+ if (regex) {
135
+ if (!bracket && character === "[") {
136
+ bracket = true;
137
+ first = 2;
138
+ } else if (bracket) {
139
+ if (special) {
140
+ if (character === special && source[offset] === "]") {
141
+ text += character + source[offset++];
142
+ special = "";
143
+ continue;
144
+ }
145
+ } else if (character === "[" && [":", ".", "="].includes(source[offset] ?? "")) {
146
+ special = source[offset++];
147
+ text += character + special;
148
+ first = 0;
149
+ continue;
150
+ } else if (character === "]" && !first) bracket = false;
151
+ first = first === 2 && character === "^" ? 1 : 0;
152
+ }
153
+ }
154
+ text += character;
155
+ }
156
+ }
157
+ throw new ProgramError(bracket ? "unterminated bracket expression" : "unterminated delimited expression");
158
+ };
159
+ const address = async () => {
160
+ horizontal();
161
+ const number = /^[0-9]+/u.exec(source.slice(offset));
162
+ if (number) {
163
+ offset += number[0].length;
164
+ const value = Number(number[0]);
165
+ if (!Number.isSafeInteger(value)) throw new ProgramError("sed line address exceeds safe integer range");
166
+ if (source[offset] === "~") {
167
+ offset++;
168
+ const stepMatch = /^[0-9]+/u.exec(source.slice(offset));
169
+ if (!stepMatch) throw new ProgramError("invalid step address");
170
+ offset += stepMatch[0].length;
171
+ const step = Number(stepMatch[0]);
172
+ if (!Number.isSafeInteger(step)) throw new ProgramError("sed line address exceeds safe integer range");
173
+ return { kind: "step", first: value, step };
174
+ }
175
+ return { kind: "number", number: value };
176
+ }
177
+ if (source[offset] === "$") {
178
+ offset++;
179
+ return { kind: "last" };
180
+ }
181
+ let delimiter;
182
+ if (source[offset] === "/") delimiter = source[offset++];
183
+ else if (source[offset] === "\\" && source[offset + 1] && source[offset + 1] !== "\n") {
184
+ offset++;
185
+ delimiter = source[offset++];
186
+ }
187
+ if (delimiter !== void 0) {
188
+ const pattern = delimited(delimiter, true);
189
+ const ignoreCase = source[offset] === "I";
190
+ if (ignoreCase) offset++;
191
+ if (!pattern && ignoreCase) throw new ProgramError("flags on an empty regex are not supported");
192
+ const compiled = pattern ? new Pattern(pattern, extended, ignoreCase) : void 0;
193
+ if (compiled) await compiled.prepare(budget);
194
+ return { kind: "regex", pattern: compiled };
195
+ }
196
+ return void 0;
197
+ };
198
+ const label = () => {
199
+ horizontal();
200
+ const start = offset;
201
+ while (offset < source.length && ![";", "\n", "}"].includes(source[offset])) offset++;
202
+ const text = source.slice(start, offset).trim();
203
+ return text;
204
+ };
205
+ const textArgument = (terminator) => {
206
+ horizontal();
207
+ if (source[offset] === "\\") {
208
+ offset++;
209
+ if (source[offset] === "\n") offset++;
210
+ }
211
+ let text = "";
212
+ while (offset < source.length && source[offset] !== "\n") {
213
+ const character = source[offset++];
214
+ if (character === "\\" && offset < source.length) {
215
+ const next = source[offset++];
216
+ text += next === "n" ? "\n" : next === "t" ? " " : next;
217
+ } else text += character;
218
+ }
219
+ return text + terminator;
220
+ };
221
+ const fileArgument = () => {
222
+ horizontal();
223
+ const start = offset;
224
+ while (offset < source.length && source[offset] !== "\n") offset++;
225
+ const file = decodeBytes(encodeBytes(source.slice(start, offset), "latin1"), "utf8");
226
+ if (!file || file.includes("\0")) throw new ProgramError("file command requires a nonempty filename without NUL");
227
+ return file;
228
+ };
229
+ while (offset < source.length) {
230
+ horizontal();
231
+ if (source[offset] === ";" || source[offset] === "\n") {
232
+ offset++;
233
+ continue;
234
+ }
235
+ if (source[offset] === "#") {
236
+ while (offset < source.length && source[offset] !== "\n") offset++;
237
+ continue;
238
+ }
239
+ if (offset === source.length) break;
240
+ if (result.length >= maxProgramInstructions) throw new ProgramError("program instruction limit exceeded");
241
+ const first = await address();
242
+ horizontal();
243
+ let second;
244
+ if (source[offset] === ",") {
245
+ offset++;
246
+ horizontal();
247
+ if (source[offset] === "+" || source[offset] === "~") {
248
+ const relKind = source[offset];
249
+ const relMatch = /^[0-9]+/u.exec(source.slice(offset + 1));
250
+ if (relMatch) {
251
+ offset += 1 + relMatch[0].length;
252
+ const count = Number(relMatch[0]);
253
+ if (!Number.isSafeInteger(count)) throw new ProgramError("sed line address exceeds safe integer range");
254
+ second = { kind: relKind === "+" ? "plus" : "tilde", count };
255
+ }
256
+ }
257
+ if (!second) second = await address();
258
+ if (!first || !second) throw new ProgramError("invalid address range");
259
+ }
260
+ if (first?.kind === "number" && first.number === 0 && second?.kind !== "regex" || second?.kind === "number" && second.number === 0) throw new ProgramError("zero address requires a 0,/regex/ range");
261
+ horizontal();
262
+ const negate = source[offset] === "!";
263
+ if (negate) {
264
+ offset++;
265
+ horizontal();
266
+ }
267
+ const kind = source[offset++];
268
+ if (kind === void 0) throw new ProgramError("missing sed command");
269
+ const instruction = { kind, negate, ...first ? { first } : {}, ...second ? { second } : {} };
270
+ if (kind === "{") {
271
+ groups.push(result.length);
272
+ result.push(instruction);
273
+ continue;
274
+ }
275
+ if (kind === "}") {
276
+ if (first || negate) throw new ProgramError("closing group cannot have an address");
277
+ const start = groups.pop();
278
+ if (start === void 0) throw new ProgramError("unmatched '}'");
279
+ result[start].jump = result.length + 1;
280
+ } else if (kind === "s") {
281
+ const delimiter = source[offset++];
282
+ if (!delimiter || delimiter === "\\" || delimiter === "\n") throw new ProgramError("invalid substitution delimiter");
283
+ const pattern = delimited(delimiter, true);
284
+ instruction.replacement = delimited(delimiter);
285
+ instruction.replacementGroupCount = 0;
286
+ for (let index = 0; index < instruction.replacement.length; index++) {
287
+ if (instruction.replacement[index] !== "\\") continue;
288
+ const escaped = instruction.replacement[++index];
289
+ if (escaped !== void 0 && escaped >= "1" && escaped <= "9") {
290
+ instruction.replacementGroupCount = Math.max(instruction.replacementGroupCount, Number(escaped));
291
+ }
292
+ }
293
+ let ignoreCase = false;
294
+ while (offset < source.length && ![";", "\n", "}", " ", " ", "#"].includes(source[offset])) {
295
+ const flag = source[offset++];
296
+ if (flag === "g" && !instruction.global) instruction.global = true;
297
+ else if (flag === "p" && !instruction.print) instruction.print = true;
298
+ else if ((flag === "i" || flag === "I") && !ignoreCase) ignoreCase = true;
299
+ else if (flag === "w" && instruction.file === void 0) {
300
+ instruction.file = fileArgument();
301
+ break;
302
+ } else if (/^[1-9]$/u.test(flag) && instruction.occurrence === void 0) {
303
+ const rest = /^[0-9]*/u.exec(source.slice(offset))[0];
304
+ offset += rest.length;
305
+ instruction.occurrence = Number(flag + rest);
306
+ if (!Number.isSafeInteger(instruction.occurrence)) throw new ProgramError("invalid substitution occurrence");
307
+ } else throw new ProgramError(`unsupported substitution flag '${flag}'`);
308
+ }
309
+ if (!pattern && ignoreCase) throw new ProgramError("flags on an empty regex are not supported");
310
+ if (pattern) {
311
+ instruction.pattern = new Pattern(pattern, extended, ignoreCase);
312
+ if (instruction.replacementGroupCount > instruction.pattern.groupCount) throw new ProgramError("replacement references an undefined capture group");
313
+ await instruction.pattern.prepare(budget);
314
+ }
315
+ } else if (kind === "r" || kind === "w") {
316
+ if (kind === "r" && second) throw new ProgramError("read accepts at most one address");
317
+ instruction.file = fileArgument();
318
+ } else if (kind === "a" || kind === "i" || kind === "c") instruction.text = textArgument(kind === "a" ? "\n" : separator);
319
+ else if (kind === "b" || kind === "t" || kind === "T" || kind === ":") {
320
+ instruction.text = label();
321
+ if (first && kind === ":") throw new ProgramError("labels cannot have addresses");
322
+ if (kind === ":") {
323
+ if (!instruction.text || labels.has(instruction.text)) throw new ProgramError("empty or duplicate branch label");
324
+ labels.set(instruction.text, result.length);
325
+ }
326
+ } else if (kind === "q" || kind === "Q") {
327
+ if (second) throw new ProgramError("quit accepts at most one address");
328
+ horizontal();
329
+ const status = /^[0-9]+/u.exec(source.slice(offset));
330
+ if (status) {
331
+ offset += status[0].length;
332
+ instruction.status = Number(status[0]);
333
+ if (instruction.status > 255) throw new ProgramError("quit status exceeds 255");
334
+ }
335
+ } else if (kind === "y") {
336
+ const delimiter = source[offset++];
337
+ if (!delimiter || delimiter === "\\" || delimiter === "\n") throw new ProgramError("invalid translation delimiter");
338
+ const decode = (text) => text.replace(/\\(.)/gsu, (_whole, escaped) => escaped === "n" ? "\n" : escaped === "t" ? " " : escaped);
339
+ const from = decode(delimited(delimiter));
340
+ const to = decode(delimited(delimiter));
341
+ if (from.length !== to.length) throw new ProgramError("translation sets have different lengths");
342
+ instruction.translation = new Map([...from].map((character, index) => [character, to[index]]));
343
+ } else if (!"pdDPhHgGxnN=lzF".includes(kind)) throw new ProgramError(`unsupported sed command '${kind}'`);
344
+ result.push(instruction);
345
+ horizontal();
346
+ if (offset < source.length && ![";", "\n", "}", "#"].includes(source[offset])) throw new ProgramError(`unexpected text after '${kind}' command`);
347
+ }
348
+ if (groups.length) throw new ProgramError("unclosed sed group");
349
+ for (const instruction of result) if (["b", "t", "T"].includes(instruction.kind)) {
350
+ const target = instruction.text ? labels.get(instruction.text) : result.length;
351
+ if (target === void 0) throw new ProgramError(`undefined branch label '${instruction.text}'`);
352
+ instruction.jump = target;
353
+ }
354
+ return result;
355
+ }
356
+ async function* nullRecords(context, files, budget) {
357
+ const names = files.length ? files : ["-"];
358
+ for (let fileIndex = 0; fileIndex < names.length; fileIndex++) {
359
+ const file = names[fileIndex];
360
+ let pending = "";
361
+ for await (const chunk of input(context, file)) {
362
+ budget.step();
363
+ let start = 0;
364
+ while (start < chunk.byteLength) {
365
+ const end = chunk.indexOf(0, start);
366
+ const stop = end < 0 ? chunk.byteLength : end;
367
+ if (pending.length + stop - start > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
368
+ pending += decodeBytes(encodeBytes(chunk.subarray(start, stop)), "latin1");
369
+ if (end < 0) break;
370
+ yield { text: pending, terminated: true, file, fileIndex };
371
+ pending = "";
372
+ start = end + 1;
373
+ }
374
+ }
375
+ if (pending) yield { text: pending, terminated: false, file, fileIndex };
376
+ }
377
+ }
378
+ var STDOUT_CAP = 65536;
379
+ var STDOUT_FLUSH = 6e4;
380
+ async function execute(program, context, files, quiet, budget, separator, outputState, lineLength) {
381
+ const useBatches = separator !== "\0";
382
+ const batchSource = useBatches ? lineRecordBatches(context, files, budget) : void 0;
383
+ const singleSource = useBatches ? void 0 : nullRecords(context, files, budget);
384
+ let currentBatch;
385
+ let currentBatchLen = 0;
386
+ let batchIndex = 0;
387
+ const sharedBatchRecord = {
388
+ text: "",
389
+ terminated: true,
390
+ file: "",
391
+ fileIndex: 0
392
+ };
393
+ const fillFromBatch = (batch, idx, target) => {
394
+ if (idx < batch.ends.length) {
395
+ const start = idx === 0 ? 0 : batch.ends[idx - 1] + 1;
396
+ const end = batch.ends[idx];
397
+ const slice = batch.text.slice(start, end);
398
+ target.text = idx === 0 && batch.firstLinePrefix ? batch.firstLinePrefix + slice : slice;
399
+ target.terminated = true;
400
+ } else {
401
+ target.text = batch.trailingText;
402
+ target.terminated = false;
403
+ }
404
+ target.file = batch.file;
405
+ target.fileIndex = batch.fileIndex;
406
+ return target;
407
+ };
408
+ let currentRecord;
409
+ let followingRecord;
410
+ if (batchSource) {
411
+ const firstBatch = await batchSource.next();
412
+ if (!firstBatch.done) {
413
+ currentBatch = firstBatch.value;
414
+ currentBatchLen = currentBatch.ends.length + (currentBatch.trailingText !== void 0 ? 1 : 0);
415
+ if (currentBatchLen > 0) {
416
+ currentRecord = fillFromBatch(currentBatch, 0, sharedBatchRecord);
417
+ batchIndex = 1;
418
+ }
419
+ }
420
+ } else {
421
+ const first = await singleSource.next();
422
+ if (!first.done) currentRecord = first.value;
423
+ }
424
+ const peekNextRecord = async () => {
425
+ if (followingRecord !== void 0) return followingRecord ?? void 0;
426
+ if (batchSource) {
427
+ if (currentBatch && batchIndex < currentBatchLen) {
428
+ followingRecord = fillFromBatch(currentBatch, batchIndex, { text: "", terminated: true, file: "", fileIndex: 0 });
429
+ return followingRecord;
430
+ }
431
+ const nextBatch = await batchSource.next();
432
+ if (nextBatch.done) {
433
+ followingRecord = null;
434
+ return void 0;
435
+ }
436
+ currentBatch = nextBatch.value;
437
+ currentBatchLen = currentBatch.ends.length + (currentBatch.trailingText !== void 0 ? 1 : 0);
438
+ if (currentBatchLen === 0) {
439
+ followingRecord = null;
440
+ return void 0;
441
+ }
442
+ batchIndex = 0;
443
+ followingRecord = fillFromBatch(currentBatch, 0, { text: "", terminated: true, file: "", fileIndex: 0 });
444
+ return followingRecord;
445
+ }
446
+ const next = await singleSource.next();
447
+ followingRecord = next.done ? null : next.value;
448
+ return followingRecord ?? void 0;
449
+ };
450
+ const readNextRecord = async () => {
451
+ if (followingRecord !== void 0) {
452
+ const next2 = followingRecord ?? void 0;
453
+ followingRecord = void 0;
454
+ if (batchSource && next2 !== void 0 && currentBatch && batchIndex < currentBatchLen) {
455
+ batchIndex++;
456
+ }
457
+ return next2;
458
+ }
459
+ if (batchSource) {
460
+ if (currentBatch && batchIndex < currentBatchLen) {
461
+ return fillFromBatch(currentBatch, batchIndex++, sharedBatchRecord);
462
+ }
463
+ const nextBatch = await batchSource.next();
464
+ if (nextBatch.done) return void 0;
465
+ currentBatch = nextBatch.value;
466
+ currentBatchLen = currentBatch.ends.length + (currentBatch.trailingText !== void 0 ? 1 : 0);
467
+ if (currentBatchLen === 0) return void 0;
468
+ batchIndex = 1;
469
+ return fillFromBatch(currentBatch, 0, sharedBatchRecord);
470
+ }
471
+ const next = await singleSource.next();
472
+ return next.done ? void 0 : next.value;
473
+ };
474
+ const prepareRecord = async (record2) => {
475
+ if (record2.terminated || files.length < 2) return record2;
476
+ const next = await peekNextRecord();
477
+ return next !== void 0 && next.fileIndex !== record2.fileIndex ? { ...record2, terminated: true } : record2;
478
+ };
479
+ let number = 0;
480
+ let hold = "";
481
+ let holdTerminated = true;
482
+ const STDOUT_CAP2 = 65536;
483
+ const STDOUT_FLUSH2 = 6e4;
484
+ const stdoutSync = typeof context.stdout.writeSync === "function" ? context.stdout : void 0;
485
+ let stdoutBuf;
486
+ let stdoutLen = 0;
487
+ const sepCode = separator.charCodeAt(0) & 255;
488
+ const appendStdout = (text) => {
489
+ const tLen = text.length;
490
+ if (tLen === 0) return;
491
+ if (!stdoutBuf) {
492
+ stdoutBuf = new Uint8Array(Math.max(STDOUT_CAP2, tLen + 1));
493
+ } else if (stdoutLen + tLen > stdoutBuf.length) {
494
+ const grown = new Uint8Array(Math.max(stdoutBuf.length * 2, stdoutLen + tLen + 1));
495
+ grown.set(stdoutBuf.subarray(0, stdoutLen), 0);
496
+ stdoutBuf = grown;
497
+ }
498
+ writeEncodedBytes(stdoutBuf, text, stdoutLen, tLen, "latin1");
499
+ stdoutLen += tLen;
500
+ };
501
+ const appendStdoutSep = () => {
502
+ if (!stdoutBuf) {
503
+ stdoutBuf = new Uint8Array(STDOUT_CAP2);
504
+ } else if (stdoutLen + 1 > stdoutBuf.length) {
505
+ const grown = new Uint8Array(stdoutBuf.length * 2);
506
+ grown.set(stdoutBuf.subarray(0, stdoutLen), 0);
507
+ stdoutBuf = grown;
508
+ }
509
+ stdoutBuf[stdoutLen++] = sepCode;
510
+ };
511
+ const flushStdout = () => {
512
+ if (stdoutLen > 0 && stdoutBuf) {
513
+ const flushedLen = stdoutLen;
514
+ const chunk = new Uint8Array(stdoutBuf.buffer, stdoutBuf.byteOffset, flushedLen);
515
+ stdoutLen = 0;
516
+ context.signal.throwIfAborted();
517
+ if (stdoutSync) {
518
+ stdoutSync.writeSync(chunk);
519
+ return void 0;
520
+ }
521
+ return writeBytes(context.stdout, encodeBytes(chunk), context.signal);
522
+ }
523
+ return void 0;
524
+ };
525
+ const joinSpace = (left, right) => {
526
+ if (left.length + separator.length + right.length > budget.maxBufferBytes) throw new ProgramError("text buffer limit exceeded");
527
+ return left + separator + right;
528
+ };
529
+ const emit = (text, terminated = true) => {
530
+ if (outputState.stdoutUnterminated) appendStdoutSep();
531
+ appendStdout(text);
532
+ outputState.stdoutUnterminated = !terminated;
533
+ if (!useBatches || stdoutLen >= STDOUT_FLUSH2) return flushStdout();
534
+ return void 0;
535
+ };
536
+ let lastPattern;
537
+ const active = /* @__PURE__ */ new Map();
538
+ for (let pc = 0; pc < program.length; pc++) {
539
+ const first = program[pc].first;
540
+ if (first?.kind === "number" && first.number === 0) active.set(pc, 0);
541
+ }
542
+ const getPattern = (pattern2) => {
543
+ if (pattern2) lastPattern = pattern2;
544
+ if (!lastPattern) throw new ProgramError("no previous regular expression");
545
+ return lastPattern;
546
+ };
547
+ const appended = [];
548
+ let appendedSize = 0;
549
+ const append = (item) => {
550
+ appendedSize += (item.text ?? item.file ?? "").length + 32;
551
+ if (appendedSize > budget.maxBufferBytes) throw new ProgramError("append queue buffer limit exceeded");
552
+ appended.push(item);
553
+ };
554
+ let record;
555
+ let pattern = "";
556
+ let substituted = false;
557
+ let deleted = false;
558
+ let quit = false;
559
+ let status = 0;
560
+ const print = () => {
561
+ if (outputState.stdoutUnterminated) appendStdoutSep();
562
+ appendStdout(pattern);
563
+ if (record.terminated) appendStdoutSep();
564
+ outputState.stdoutUnterminated = !record.terminated;
565
+ if (!useBatches || stdoutLen >= STDOUT_FLUSH2) return flushStdout();
566
+ return void 0;
567
+ };
568
+ const flushSlow = async (printPattern) => {
569
+ if (appended.length > 0) {
570
+ await assertPathRequirements(context, sedRequirements, ["script-read"], appended.flatMap((item) => item.file === void 0 ? [] : [item.file]));
571
+ }
572
+ if (printPattern && !quiet && !deleted) {
573
+ const p = print();
574
+ if (p) await p;
575
+ }
576
+ if (outputState.stdoutUnterminated && (appended.length || quit)) {
577
+ appendStdoutSep();
578
+ if (stdoutLen >= STDOUT_FLUSH2) await flushStdout();
579
+ outputState.stdoutUnterminated = false;
580
+ }
581
+ for (const item of appended) {
582
+ if (item.text !== void 0) {
583
+ appendStdout(item.text);
584
+ if (stdoutLen >= STDOUT_FLUSH2) await flushStdout();
585
+ continue;
586
+ }
587
+ await flushStdout();
588
+ const path = virtualPath(context, item.file);
589
+ try {
590
+ for await (const chunk of requiredFileInput(context, sedRequirements, "script-read", path, budget.maxBufferBytes)) {
591
+ budget.step();
592
+ const pendingCheck = budget.checkpointSync();
593
+ if (pendingCheck) await pendingCheck;
594
+ if (chunk.byteLength > budget.maxBufferBytes) throw new ProgramError("read buffer limit exceeded");
595
+ await writeBytes(context.stdout, chunk, context.signal);
596
+ }
597
+ } catch (error) {
598
+ context.signal.throwIfAborted();
599
+ if (!(error instanceof FsError) || !["ENOENT", "EACCES", "EPERM", "EISDIR", "ENOTDIR"].includes(error.code)) throw error;
600
+ }
601
+ }
602
+ appended.length = 0;
603
+ appendedSize = 0;
604
+ };
605
+ const flush = (printPattern = true) => {
606
+ if (appended.length === 0 && !quit) {
607
+ if (printPattern && !quiet && !deleted) return print();
608
+ return void 0;
609
+ }
610
+ return flushSlow(printPattern);
611
+ };
612
+ const writeFile = async (file) => {
613
+ if (stdoutLen > 0) await flushStdout();
614
+ const path = virtualPath(context, file);
615
+ const terminated = record.terminated || separator === "\n";
616
+ const text = (outputState.unterminatedFiles.has(path) ? separator : "") + pattern + (terminated ? separator : "");
617
+ await writeFileOutput(context, bytes(text), (chunk) => context.fs.appendFile(path, chunk, { signal: context.signal }));
618
+ if (terminated) outputState.unterminatedFiles.delete(path);
619
+ else outputState.unterminatedFiles.add(path);
620
+ };
621
+ const matches = (address) => {
622
+ if (address.kind === "number") return number === address.number;
623
+ if (address.kind === "step") return address.step === 0 ? number === address.first : number >= address.first && (number - address.first) % address.step === 0;
624
+ if (address.kind === "plus" || address.kind === "tilde") return false;
625
+ if (address.kind === "last") {
626
+ if (batchSource && batchIndex < currentBatchLen) return false;
627
+ return peekNextRecord().then((next) => next === void 0);
628
+ }
629
+ return getPattern(address.pattern).tryTestSync(pattern, budget);
630
+ };
631
+ try {
632
+ while (currentRecord !== void 0) {
633
+ budget.step();
634
+ number++;
635
+ record = currentRecord.terminated || files.length < 2 ? currentRecord : await prepareRecord(currentRecord);
636
+ pattern = record.text;
637
+ substituted = false;
638
+ deleted = false;
639
+ quit = false;
640
+ status = 0;
641
+ for (let pc = 0; pc < program.length; ) {
642
+ budget.step();
643
+ const instruction = program[pc];
644
+ if (number === 1 || (number & 31) === 0 || instruction.kind === "b" || instruction.kind === "t" || instruction.kind === "T" || instruction.kind === "D") {
645
+ const pendingCheck = budget.checkpointSync();
646
+ if (pendingCheck) await pendingCheck;
647
+ }
648
+ let selected = true;
649
+ let ending = false;
650
+ if (instruction.first) {
651
+ if (instruction.second) {
652
+ if (active.has(pc)) {
653
+ const startLine = active.get(pc);
654
+ if (instruction.second.kind === "number" && number > instruction.second.number) selected = false;
655
+ const endMatch = instruction.second.kind === "number" ? number >= instruction.second.number : instruction.second.kind === "plus" ? number >= startLine + instruction.second.count : instruction.second.kind === "tilde" ? instruction.second.count === 0 || number > startLine && number % instruction.second.count === 0 : matches(instruction.second);
656
+ ending = endMatch instanceof Promise ? await endMatch : endMatch;
657
+ if (ending) active.delete(pc);
658
+ } else {
659
+ const firstMatch = matches(instruction.first);
660
+ selected = firstMatch instanceof Promise ? await firstMatch : firstMatch;
661
+ if (selected) {
662
+ ending = instruction.second.kind === "number" && number >= instruction.second.number || (instruction.second.kind === "plus" || instruction.second.kind === "tilde") && instruction.second.count === 0 || instruction.second.kind === "last" && await peekNextRecord() === void 0;
663
+ if (!ending) active.set(pc, number);
664
+ }
665
+ }
666
+ } else {
667
+ const firstMatch = matches(instruction.first);
668
+ selected = firstMatch instanceof Promise ? await firstMatch : firstMatch;
669
+ }
670
+ }
671
+ if (instruction.negate) selected = !selected;
672
+ if (!selected) {
673
+ pc = instruction.kind === "{" ? instruction.jump : pc + 1;
674
+ continue;
675
+ }
676
+ switch (instruction.kind) {
677
+ case "p": {
678
+ const p = print();
679
+ if (p) await p;
680
+ break;
681
+ }
682
+ case "P": {
683
+ const end = pattern.indexOf(separator);
684
+ const p = emit(end < 0 ? pattern + (record.terminated ? separator : "") : pattern.slice(0, end + 1), end >= 0 || record.terminated);
685
+ if (p) await p;
686
+ break;
687
+ }
688
+ case "=": {
689
+ const p = emit(`${number}${separator}`);
690
+ if (p) await p;
691
+ break;
692
+ }
693
+ case "l": {
694
+ const escapes = { "\x07": "\\a", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t", "\v": "\\v", "\\": "\\\\" };
695
+ let line = "";
696
+ for (let offset = 0; offset <= pattern.length; offset++) {
697
+ budget.step();
698
+ await budget.checkpointSync();
699
+ const character = pattern[offset];
700
+ const lineEnd = character === "\n" && separator === "\n";
701
+ const token = character === void 0 || lineEnd ? "$" : escapes[character] ?? (character.charCodeAt(0) < 32 || character.charCodeAt(0) >= 127 ? `\\${character.charCodeAt(0).toString(8).padStart(3, "0")}` : character);
702
+ if (lineLength > 0 && character !== void 0 && !lineEnd && line.length + token.length >= lineLength) {
703
+ await emit(line + "\\" + separator);
704
+ line = "";
705
+ }
706
+ line = budget.check(line + token);
707
+ if (lineEnd) {
708
+ await emit(line + separator);
709
+ line = "";
710
+ }
711
+ }
712
+ await emit(line + separator);
713
+ break;
714
+ }
715
+ case "d":
716
+ deleted = true;
717
+ pc = program.length;
718
+ continue;
719
+ case "D": {
720
+ const end = pattern.indexOf(separator);
721
+ if (end < 0) {
722
+ deleted = true;
723
+ pc = program.length;
724
+ } else {
725
+ pattern = pattern.slice(end + 1);
726
+ pc = 0;
727
+ }
728
+ continue;
729
+ }
730
+ case "q":
731
+ quit = true;
732
+ status = instruction.status ?? 0;
733
+ pc = program.length;
734
+ continue;
735
+ case "Q":
736
+ deleted = true;
737
+ quit = true;
738
+ status = instruction.status ?? 0;
739
+ pc = program.length;
740
+ continue;
741
+ case "z":
742
+ pattern = "";
743
+ break;
744
+ case "F": {
745
+ const p = emit(`${record.file}${separator}`);
746
+ if (p) await p;
747
+ break;
748
+ }
749
+ case "a":
750
+ append({ text: instruction.text });
751
+ break;
752
+ case "r":
753
+ append({ file: instruction.file });
754
+ break;
755
+ case "w":
756
+ await writeFile(instruction.file);
757
+ break;
758
+ case "i":
759
+ await emit(instruction.text);
760
+ break;
761
+ case "c":
762
+ if (!instruction.second || ending || instruction.negate || await peekNextRecord() === void 0) await emit(instruction.text);
763
+ deleted = true;
764
+ pc = program.length;
765
+ continue;
766
+ case "h":
767
+ hold = pattern;
768
+ holdTerminated = record.terminated;
769
+ break;
770
+ case "H":
771
+ hold = joinSpace(hold, pattern);
772
+ holdTerminated = record.terminated;
773
+ break;
774
+ case "g":
775
+ pattern = hold;
776
+ record = { ...record, terminated: holdTerminated };
777
+ break;
778
+ case "G":
779
+ pattern = joinSpace(pattern, hold);
780
+ record = { ...record, terminated: holdTerminated };
781
+ break;
782
+ case "x": {
783
+ [pattern, hold] = [hold, pattern];
784
+ const terminated = record.terminated;
785
+ record = { ...record, terminated: holdTerminated };
786
+ holdTerminated = terminated;
787
+ break;
788
+ }
789
+ case "s": {
790
+ const expression = getPattern(instruction.pattern);
791
+ if (instruction.replacementGroupCount > expression.groupCount) throw new ProgramError("replacement references an undefined capture group");
792
+ if (!instruction.first && !instruction.second && !instruction.negate && !instruction.print && !instruction.file && pc + 1 < program.length) {
793
+ const nextInst = program[pc + 1];
794
+ if (nextInst.kind === "s" && !nextInst.first && !nextInst.second && !nextInst.negate && !nextInst.print && !nextInst.file && nextInst.pattern) {
795
+ const nextExpr = nextInst.pattern;
796
+ if (nextInst.replacementGroupCount <= nextExpr.groupCount) {
797
+ const canPairAnchored = expression.getFastPrefixInfo()?.anchoredStart === true;
798
+ if (canPairAnchored && pc === 0 && program.length === 2 && !quiet && !deleted && appended.length === 0 && record.terminated && !outputState.stdoutUnterminated) {
799
+ if (!stdoutBuf) stdoutBuf = new Uint8Array(STDOUT_CAP2);
800
+ const newPosOrPromise = trySubstitutePairToBufferSync(
801
+ pattern,
802
+ expression,
803
+ instruction.replacement,
804
+ instruction.global ?? false,
805
+ instruction.occurrence ?? 1,
806
+ nextExpr,
807
+ nextInst.replacement,
808
+ nextInst.global ?? false,
809
+ nextInst.occurrence ?? 1,
810
+ budget,
811
+ stdoutBuf,
812
+ stdoutLen,
813
+ sepCode
814
+ );
815
+ const newPos = typeof newPosOrPromise === "number" ? newPosOrPromise : await newPosOrPromise;
816
+ if (newPos >= 0) {
817
+ lastPattern = nextExpr;
818
+ stdoutLen = newPos;
819
+ budget.step();
820
+ if (!useBatches || stdoutLen >= STDOUT_FLUSH2) {
821
+ const p = flushStdout();
822
+ if (p) await p;
823
+ }
824
+ if (batchSource && currentBatch && followingRecord === void 0) {
825
+ const batchText = currentBatch.text;
826
+ const batchEnds = currentBatch.ends;
827
+ const endsLen = batchEnds.length;
828
+ const g1 = instruction.global ?? false;
829
+ const o1 = instruction.occurrence ?? 1;
830
+ const r1 = instruction.replacement;
831
+ const g2 = nextInst.global ?? false;
832
+ const o2 = nextInst.occurrence ?? 1;
833
+ const r2 = nextInst.replacement;
834
+ while (batchIndex < endsLen) {
835
+ if (batchIndex === 0 && currentBatch.firstLinePrefix) break;
836
+ const lStart = batchIndex === 0 ? 0 : batchEnds[batchIndex - 1] + 1;
837
+ const lEnd = batchEnds[batchIndex];
838
+ if (!stdoutBuf) stdoutBuf = new Uint8Array(STDOUT_CAP2);
839
+ const nextPosOrPromise = trySubstitutePairToBufferSync(
840
+ batchText,
841
+ expression,
842
+ r1,
843
+ g1,
844
+ o1,
845
+ nextExpr,
846
+ r2,
847
+ g2,
848
+ o2,
849
+ budget,
850
+ stdoutBuf,
851
+ stdoutLen,
852
+ sepCode,
853
+ lStart,
854
+ lEnd
855
+ );
856
+ const nextPos = typeof nextPosOrPromise === "number" ? nextPosOrPromise : await nextPosOrPromise;
857
+ if (nextPos < 0) break;
858
+ batchIndex++;
859
+ number++;
860
+ budget.step(3);
861
+ if ((number & 31) === 0) {
862
+ const pendingCheck = budget.checkpointSync();
863
+ if (pendingCheck) await pendingCheck;
864
+ }
865
+ stdoutLen = nextPos;
866
+ if (stdoutLen >= STDOUT_FLUSH2) {
867
+ const p = flushStdout();
868
+ if (p) await p;
869
+ }
870
+ }
871
+ }
872
+ deleted = true;
873
+ pc += 2;
874
+ continue;
875
+ }
876
+ }
877
+ if (!canPairAnchored && pc === 0 && program.length === 2 && !quiet && !deleted && appended.length === 0 && record.terminated && !outputState.stdoutUnterminated && expression.canFindSync() && nextExpr.canFindSync()) {
878
+ const g1 = instruction.global ?? false;
879
+ const o1 = instruction.occurrence ?? 1;
880
+ const r1 = instruction.replacement;
881
+ const g2 = nextInst.global ?? false;
882
+ const o2 = nextInst.occurrence ?? 1;
883
+ const r2 = nextInst.replacement;
884
+ const c1OrP = trySubstituteSync(pattern, expression, r1, budget, g1, o1);
885
+ const c1 = c1OrP instanceof Promise ? await c1OrP : c1OrP;
886
+ const c2OrP = trySubstituteSync(c1.text, nextExpr, r2, budget, g2, o2);
887
+ const c2 = c2OrP instanceof Promise ? await c2OrP : c2OrP;
888
+ lastPattern = nextExpr;
889
+ appendStdout(c2.text);
890
+ appendStdoutSep();
891
+ if (!useBatches || stdoutLen >= STDOUT_FLUSH2) {
892
+ const p = flushStdout();
893
+ if (p) await p;
894
+ }
895
+ if (batchSource && currentBatch && followingRecord === void 0) {
896
+ const batchText = currentBatch.text;
897
+ const batchEnds = currentBatch.ends;
898
+ const endsLen = batchEnds.length;
899
+ while (batchIndex < endsLen) {
900
+ if (batchIndex === 0 && currentBatch.firstLinePrefix) break;
901
+ const lStart = batchIndex === 0 ? 0 : batchEnds[batchIndex - 1] + 1;
902
+ const lEnd = batchEnds[batchIndex];
903
+ const lineStr = batchText.slice(lStart, lEnd);
904
+ const s1OrP = trySubstituteSync(lineStr, expression, r1, budget, g1, o1);
905
+ const s1 = s1OrP instanceof Promise ? await s1OrP : s1OrP;
906
+ const s2OrP = trySubstituteSync(s1.text, nextExpr, r2, budget, g2, o2);
907
+ const s2 = s2OrP instanceof Promise ? await s2OrP : s2OrP;
908
+ batchIndex++;
909
+ number++;
910
+ budget.step(3);
911
+ if ((number & 31) === 0) {
912
+ const pendingCheck = budget.checkpointSync();
913
+ if (pendingCheck) await pendingCheck;
914
+ }
915
+ appendStdout(s2.text);
916
+ appendStdoutSep();
917
+ if (stdoutLen >= STDOUT_FLUSH2) {
918
+ const p = flushStdout();
919
+ if (p) await p;
920
+ }
921
+ }
922
+ }
923
+ deleted = true;
924
+ pc += 2;
925
+ continue;
926
+ }
927
+ const pairedOrPromise = !canPairAnchored ? void 0 : trySubstitutePairSync(
928
+ pattern,
929
+ expression,
930
+ instruction.replacement,
931
+ instruction.global ?? false,
932
+ instruction.occurrence ?? 1,
933
+ nextExpr,
934
+ nextInst.replacement,
935
+ nextInst.global ?? false,
936
+ nextInst.occurrence ?? 1,
937
+ budget
938
+ );
939
+ const paired = pairedOrPromise instanceof Promise ? await pairedOrPromise : pairedOrPromise;
940
+ if (paired !== void 0) {
941
+ lastPattern = nextExpr;
942
+ pattern = paired.text;
943
+ if (paired.substituted) substituted = true;
944
+ budget.step();
945
+ pc += 2;
946
+ continue;
947
+ }
948
+ }
949
+ }
950
+ }
951
+ const changedOrPromise = trySubstituteSync(pattern, expression, instruction.replacement, budget, instruction.global ?? false, instruction.occurrence ?? 1);
952
+ const changed = changedOrPromise instanceof Promise ? await changedOrPromise : changedOrPromise;
953
+ pattern = changed.text;
954
+ if (changed.count) {
955
+ substituted = true;
956
+ if (instruction.print) {
957
+ const p = print();
958
+ if (p) await p;
959
+ }
960
+ if (instruction.file) await writeFile(instruction.file);
961
+ }
962
+ break;
963
+ }
964
+ case "y": {
965
+ budget.step(pattern.length);
966
+ const translated = new Uint8Array(pattern.length);
967
+ for (let index = 0; index < pattern.length; index++) {
968
+ if (index % 256 === 0) await budget.checkpointSync();
969
+ translated[index] = (instruction.translation.get(pattern[index]) ?? pattern[index]).charCodeAt(0);
970
+ }
971
+ pattern = decodeBytes(translated, "latin1");
972
+ break;
973
+ }
974
+ case "b":
975
+ pc = instruction.jump;
976
+ continue;
977
+ case "t":
978
+ case "T": {
979
+ const branch = instruction.kind === "t" ? substituted : !substituted;
980
+ substituted = false;
981
+ if (branch) {
982
+ pc = instruction.jump;
983
+ continue;
984
+ }
985
+ break;
986
+ }
987
+ case "n":
988
+ case "N": {
989
+ if (instruction.kind === "n") {
990
+ const p = flush();
991
+ if (p) await p;
992
+ } else if (await peekNextRecord() !== void 0) {
993
+ const p = flush(false);
994
+ if (p) await p;
995
+ }
996
+ const next = await readNextRecord();
997
+ if (next === void 0) {
998
+ if (instruction.kind === "N") {
999
+ const p = flush(false);
1000
+ if (p) await p;
1001
+ }
1002
+ return { status: 0, quit: false };
1003
+ }
1004
+ record = next.terminated || files.length < 2 ? next : await prepareRecord(next);
1005
+ number++;
1006
+ pattern = instruction.kind === "N" ? joinSpace(pattern, record.text) : record.text;
1007
+ substituted = false;
1008
+ break;
1009
+ }
1010
+ }
1011
+ pc++;
1012
+ }
1013
+ const flushPending = flush();
1014
+ if (flushPending) await flushPending;
1015
+ if (quit) return { status, quit: true };
1016
+ currentRecord = followingRecord === void 0 && batchSource && currentBatch && batchIndex < currentBatchLen ? fillFromBatch(currentBatch, batchIndex++, sharedBatchRecord) : await readNextRecord();
1017
+ }
1018
+ return { status: 0, quit: false };
1019
+ } finally {
1020
+ if (stdoutLen > 0) await flushStdout();
1021
+ if (batchSource) await batchSource.return(void 0);
1022
+ else if (singleSource) await singleSource.return(void 0);
1023
+ }
1024
+ }
1025
+ function runSedPairBatchLoopSync(batchText, batchEnds, endsLen, expr0, r1, g1, o1, expr1, r2, g2, o2, budget, stdoutBuf) {
1026
+ return trySubstitutePairBatchToBufferSync(
1027
+ batchText,
1028
+ batchEnds,
1029
+ endsLen,
1030
+ expr0,
1031
+ r1,
1032
+ g1,
1033
+ o1,
1034
+ expr1,
1035
+ r2,
1036
+ g2,
1037
+ o2,
1038
+ budget,
1039
+ stdoutBuf,
1040
+ 10,
1041
+ STDOUT_FLUSH
1042
+ );
1043
+ }
1044
+ function tryExecutePairFastSync(program, context, file, quiet, budget, separator) {
1045
+ if (program.length !== 2 || quiet || separator !== "\n" || file === "-") return void 0;
1046
+ const inst0 = program[0];
1047
+ const inst1 = program[1];
1048
+ if (inst0.kind !== "s" || inst0.first || inst0.second || inst0.negate || inst0.print || inst0.file || !inst0.pattern || inst1.kind !== "s" || inst1.first || inst1.second || inst1.negate || inst1.print || inst1.file || !inst1.pattern) {
1049
+ return void 0;
1050
+ }
1051
+ const expr0 = inst0.pattern;
1052
+ const expr1 = inst1.pattern;
1053
+ if (inst0.replacementGroupCount > expr0.groupCount || inst1.replacementGroupCount > expr1.groupCount) return void 0;
1054
+ const stdoutSync = typeof context.stdout.writeSync === "function" ? context.stdout : void 0;
1055
+ if (!stdoutSync) return void 0;
1056
+ const fastMem = context._fastMemoryBackingFs;
1057
+ if (!fastMem || fastMem.capabilitiesFor !== void 0 || context._cachedInputBudget !== void 0 || Object.prototype.hasOwnProperty.call(fastMem, "readStream") || Object.prototype.hasOwnProperty.call(fastMem, "readFile")) {
1058
+ return void 0;
1059
+ }
1060
+ const path = pathOf(context, file);
1061
+ if (path === "/dev" || path.startsWith("/dev/")) return void 0;
1062
+ let rawBytes;
1063
+ try {
1064
+ rawBytes = tryReadMemoryFileViewSync(fastMem, path, void 0, context.signal, true);
1065
+ } catch (e) {
1066
+ console.error("SED_SYNC_ERR:", e);
1067
+ return void 0;
1068
+ }
1069
+ if (!rawBytes || rawBytes.byteLength < 256) return void 0;
1070
+ const cachedBatch = getCachedLatin1Batch(rawBytes);
1071
+ if (!cachedBatch || cachedBatch.lastLineStart !== cachedBatch.text.length || cachedBatch.maxLineLen > budget.maxBufferBytes) {
1072
+ return void 0;
1073
+ }
1074
+ const pending = budget.checkpointSync();
1075
+ if (pending) {
1076
+ pending.catch(() => {
1077
+ });
1078
+ return void 0;
1079
+ }
1080
+ budget.step();
1081
+ const stdoutBuf = new Uint8Array(STDOUT_CAP);
1082
+ const batchText = cachedBatch.text;
1083
+ const batchEnds = cachedBatch.ends;
1084
+ const endsLen = batchEnds.length;
1085
+ const g1 = inst0.global ?? false;
1086
+ const o1 = inst0.occurrence ?? 1;
1087
+ const r1 = inst0.replacement;
1088
+ const g2 = inst1.global ?? false;
1089
+ const o2 = inst1.occurrence ?? 1;
1090
+ const r2 = inst1.replacement;
1091
+ const stdoutLen = runSedPairBatchLoopSync(
1092
+ batchText,
1093
+ batchEnds,
1094
+ endsLen,
1095
+ expr0,
1096
+ r1,
1097
+ g1,
1098
+ o1,
1099
+ expr1,
1100
+ r2,
1101
+ g2,
1102
+ o2,
1103
+ budget,
1104
+ stdoutBuf
1105
+ );
1106
+ if (stdoutLen < 0) return void 0;
1107
+ context._chargeFastFsOp?.();
1108
+ if (stdoutLen > 0) {
1109
+ context.signal.throwIfAborted();
1110
+ if (typeof stdoutSync.writeRangeSync === "function") {
1111
+ stdoutSync.writeRangeSync(stdoutBuf, stdoutLen);
1112
+ } else {
1113
+ stdoutSync.writeSync(new Uint8Array(stdoutBuf.buffer, stdoutBuf.byteOffset, stdoutLen));
1114
+ }
1115
+ }
1116
+ return 0;
1117
+ }
1118
+ var SED_META_RE = /[\\^$.*+?()[\]{}|\n]/;
1119
+ function tryExecuteSimpleSedStdinSync(rawProg, context, options) {
1120
+ if (rawProg.length < 4 || rawProg.length > 256 || rawProg.charCodeAt(0) !== 115) return void 0;
1121
+ const delim = rawProg[1];
1122
+ if (delim === "\\" || delim === "\n") return void 0;
1123
+ const parts = rawProg.split(delim);
1124
+ if (parts.length !== 4) return void 0;
1125
+ const pat = parts[1];
1126
+ const rep = parts[2];
1127
+ const flags = parts[3];
1128
+ if (pat.length === 0 || flags !== "" && flags !== "g") return void 0;
1129
+ if (SED_META_RE.test(pat) || rep.includes("&") || rep.includes("\\") || rep.includes("\n")) return void 0;
1130
+ for (let i = 0; i < rawProg.length; i++) {
1131
+ if (rawProg.charCodeAt(i) >= 128) return void 0;
1132
+ }
1133
+ const stdinSync = context.stdin;
1134
+ const stdoutSync = context.stdout;
1135
+ if (typeof stdinSync.tryReadAllSync !== "function" || typeof stdoutSync.writeSync !== "function") return void 0;
1136
+ const rawBytes = stdinSync.tryReadAllSync();
1137
+ if (!rawBytes || rawBytes.byteLength > 16384) return void 0;
1138
+ for (let i = 0; i < rawBytes.byteLength; i++) {
1139
+ const b = rawBytes[i];
1140
+ if (b >= 128 || b === 0) return void 0;
1141
+ }
1142
+ const budget = Budget.acquire(context, options);
1143
+ try {
1144
+ const pCheck = budget.checkpointSync();
1145
+ if (pCheck) {
1146
+ pCheck.catch(() => {
1147
+ });
1148
+ return void 0;
1149
+ }
1150
+ const text = decodeBytes(encodeBytes(rawBytes.buffer, rawBytes.byteOffset, rawBytes.byteLength), "latin1");
1151
+ if (text.length === 0) {
1152
+ budget.step(1);
1153
+ return 0;
1154
+ }
1155
+ const hasTrailingNewline = text.charCodeAt(text.length - 1) === 10;
1156
+ const body = hasTrailingNewline ? text.slice(0, -1) : text;
1157
+ const lines = body.split("\n");
1158
+ const isGlobal = flags === "g";
1159
+ budget.step(1 + lines.length);
1160
+ for (let i = 0; i < lines.length; i++) {
1161
+ const line = lines[i];
1162
+ if (line.length > budget.maxBufferBytes) return void 0;
1163
+ const idx = line.indexOf(pat);
1164
+ if (idx !== -1) {
1165
+ const nextLine = isGlobal ? line.split(pat).join(rep) : line.slice(0, idx) + rep + line.slice(idx + pat.length);
1166
+ if (nextLine.length > budget.maxBufferBytes) return void 0;
1167
+ lines[i] = nextLine;
1168
+ }
1169
+ }
1170
+ const outText = lines.join("\n") + (hasTrailingNewline ? "\n" : "");
1171
+ budget.check(outText);
1172
+ const outBytes = encodeBytes(outText, "latin1");
1173
+ if (!stdoutSync.writeSync(outBytes)) return void 0;
1174
+ return 0;
1175
+ } catch {
1176
+ return void 0;
1177
+ } finally {
1178
+ Budget.release(budget);
1179
+ }
1180
+ }
1181
+ function sedCommand(options = {}) {
1182
+ const maxProgramInstructions = options.maxProgramInstructions === void 0 ? Infinity : options.maxProgramInstructions;
1183
+ const definition = command("sed", (context) => {
1184
+ if (maxProgramInstructions === Infinity && (context.args.length === 1 || context.args.length === 2 && context.args[0] === "-e")) {
1185
+ const rawProg = context.args[context.args.length - 1];
1186
+ const stdinRes = tryExecuteSimpleSedStdinSync(rawProg, context, options);
1187
+ if (stdinRes !== void 0) return stdinRes;
1188
+ }
1189
+ if (maxProgramInstructions === Infinity && context.args.length === 2 && !context.args[0].startsWith("-") && context.args[0] !== "-" && !context.args[1].startsWith("-") && context.args[1] !== "-") {
1190
+ const rawProg = context.args[0];
1191
+ let cached = sedProgramCache.get(`0:
1192
+ :${Infinity}:${rawProg}`);
1193
+ if (!cached) {
1194
+ const parseBudget = Budget.acquire(context, options);
1195
+ try {
1196
+ cached = tryParseFastPairProgramSync(rawProg, parseBudget);
1197
+ } finally {
1198
+ Budget.release(parseBudget);
1199
+ }
1200
+ }
1201
+ if (cached && cached.outputFiles.length === 0 && cached.readFiles.length === 0) {
1202
+ const quiet = rawProg.charCodeAt(0) === 35 && rawProg.charCodeAt(1) === 110;
1203
+ const budget = Budget.acquire(context, options);
1204
+ try {
1205
+ if (cached.steps > 0) budget.step(cached.steps);
1206
+ const syncStatus = tryExecutePairFastSync(cached.program, context, context.args[1], quiet, budget, "\n");
1207
+ if (syncStatus !== void 0) return syncStatus;
1208
+ } finally {
1209
+ Budget.release(budget);
1210
+ }
1211
+ }
1212
+ }
1213
+ return executeSedGeneral(context, options, maxProgramInstructions);
1214
+ });
1215
+ return { ...definition, filesystemRequirements: sedRequirements };
1216
+ }
1217
+ async function executeSedGeneral(context, options, maxProgramInstructions) {
1218
+ if (maxProgramInstructions !== Infinity && !Number.isSafeInteger(maxProgramInstructions) || maxProgramInstructions < 1) throw new ProgramError("maxProgramInstructions must be a positive safe integer");
1219
+ const budget = new Budget(context, options);
1220
+ const sources = [];
1221
+ const files = [];
1222
+ let quiet = false;
1223
+ let extended = false;
1224
+ let separate = false;
1225
+ let lineLength = 70;
1226
+ const setLineLength = (value) => {
1227
+ if (value === void 0 || !value.length || [...value].some((character) => character < "0" || character > "9") || !Number.isSafeInteger(Number(value))) {
1228
+ throw new ProgramError("line length must be a nonnegative safe integer");
1229
+ }
1230
+ lineLength = Number(value);
1231
+ };
1232
+ let separator = "\n";
1233
+ let inPlace;
1234
+ let ended = false;
1235
+ for (let index = 0; index < context.args.length; index++) {
1236
+ const argument = context.args[index];
1237
+ if (ended || argument === "-" || !argument.startsWith("-")) {
1238
+ files.push(argument);
1239
+ continue;
1240
+ }
1241
+ if (argument === "--") {
1242
+ ended = true;
1243
+ continue;
1244
+ }
1245
+ if (argument === "--null-data") {
1246
+ separator = "\0";
1247
+ continue;
1248
+ }
1249
+ if (argument === "--quiet" || argument === "--silent") {
1250
+ quiet = true;
1251
+ continue;
1252
+ }
1253
+ if (argument === "--unbuffered" || argument === "--posix") continue;
1254
+ if (argument === "--regexp-extended") {
1255
+ extended = true;
1256
+ continue;
1257
+ }
1258
+ if (argument === "--in-place" || argument.startsWith("--in-place=")) {
1259
+ inPlace = argument === "--in-place" ? "" : argument.slice("--in-place=".length);
1260
+ continue;
1261
+ }
1262
+ if (argument === "--separate") {
1263
+ separate = true;
1264
+ continue;
1265
+ }
1266
+ if (argument === "--line-length" || argument.startsWith("--line-length=")) {
1267
+ setLineLength(argument === "--line-length" ? context.args[++index] : argument.slice("--line-length=".length));
1268
+ continue;
1269
+ }
1270
+ if (argument === "--expression" || argument.startsWith("--expression=")) {
1271
+ const source = argument === "--expression" ? context.args[++index] : argument.slice("--expression=".length);
1272
+ if (source === void 0) throw new ProgramError("--expression requires an argument");
1273
+ sources.push(byteString(source));
1274
+ continue;
1275
+ }
1276
+ if (argument === "--file" || argument.startsWith("--file=")) {
1277
+ const source = argument === "--file" ? context.args[++index] : argument.slice("--file=".length);
1278
+ if (source === void 0) throw new ProgramError("--file requires an argument");
1279
+ await assertPathRequirements(context, sedRequirements, ["script-file"], [source]);
1280
+ sources.push(await readProgram(context, source));
1281
+ continue;
1282
+ }
1283
+ if (argument.startsWith("--")) throw new ProgramError(`unsupported option '${argument}'`);
1284
+ for (let position = 1; position < argument.length; position++) {
1285
+ const flag = argument[position];
1286
+ if (flag === "n") quiet = true;
1287
+ else if (flag === "u") {
1288
+ } else if (flag === "z") separator = "\0";
1289
+ else if (flag === "E" || flag === "r") extended = true;
1290
+ else if (flag === "s") separate = true;
1291
+ else if (flag === "l") {
1292
+ setLineLength(argument.slice(position + 1) || context.args[++index]);
1293
+ position = argument.length;
1294
+ } else if (flag === "i") {
1295
+ inPlace = argument.slice(position + 1);
1296
+ if (!inPlace && context.args[index + 1] === "") index++;
1297
+ position = argument.length;
1298
+ } else if (flag === "e" || flag === "f") {
1299
+ const source = argument.slice(position + 1) || context.args[++index];
1300
+ if (source === void 0) throw new ProgramError(`-${flag} requires an argument`);
1301
+ if (flag === "f") await assertPathRequirements(context, sedRequirements, ["script-file"], [source]);
1302
+ sources.push(flag === "f" ? await readProgram(context, source) : byteString(source));
1303
+ position = argument.length;
1304
+ } else throw new ProgramError(`unsupported option '-${flag}'`);
1305
+ }
1306
+ }
1307
+ if (!sources.length) {
1308
+ if (!files.length) throw new ProgramError("missing program");
1309
+ sources.push(byteString(files.shift()));
1310
+ }
1311
+ if (sources[0]?.startsWith("#n")) quiet = true;
1312
+ const sourceText = sources.length === 1 ? sources[0] : sources.join("\n");
1313
+ const canCache = sourceText.length <= 8192;
1314
+ const cacheKey = canCache ? `${extended ? 1 : 0}:${separator}:${maxProgramInstructions}:${sourceText}` : "";
1315
+ let cached = canCache ? sedProgramCache.get(cacheKey) : void 0;
1316
+ if (cached) {
1317
+ if (cached.steps > 0) budget.step(cached.steps);
1318
+ } else {
1319
+ const stepsBefore = budget.stepsUsed;
1320
+ const parsedProgram = await parse(sourceText, extended, separator, maxProgramInstructions, budget);
1321
+ const steps = budget.stepsUsed - stepsBefore;
1322
+ let outFiles;
1323
+ let rdFiles;
1324
+ for (let i = 0; i < parsedProgram.length; i++) {
1325
+ const inst = parsedProgram[i];
1326
+ if (inst.file !== void 0) {
1327
+ if (inst.kind === "r") (rdFiles ??= []).push(inst.file);
1328
+ else (outFiles ??= []).push(inst.file);
1329
+ }
1330
+ }
1331
+ cached = {
1332
+ program: parsedProgram,
1333
+ steps,
1334
+ outputFiles: outFiles ?? EMPTY_STRINGS,
1335
+ readFiles: rdFiles ?? EMPTY_STRINGS
1336
+ };
1337
+ if (canCache) {
1338
+ if (sedProgramCache.size >= 64) sedProgramCache.delete(sedProgramCache.keys().next().value);
1339
+ sedProgramCache.set(cacheKey, cached);
1340
+ }
1341
+ }
1342
+ const { program, outputFiles, readFiles } = cached;
1343
+ if (outputFiles.length > 0) {
1344
+ await assertPathRequirements(context, sedRequirements, ["script-output"], outputFiles);
1345
+ }
1346
+ if (inPlace !== void 0 || outputFiles.length > 0) {
1347
+ await assertPathRequirements(context, sedRequirements, ["file"], files.filter((file) => file !== "-"));
1348
+ if (readFiles.length > 0) {
1349
+ await assertPathRequirements(context, sedRequirements, ["script-read"], readFiles);
1350
+ }
1351
+ }
1352
+ const prepareOutputs = async () => {
1353
+ if (outputFiles.length === 0) return;
1354
+ const paths = new Set(outputFiles.map((file) => virtualPath(context, file)));
1355
+ for (const path of paths) await writeFileOutput(context, new Uint8Array(), (chunk) => context.fs.writeFile(path, chunk, { signal: context.signal }));
1356
+ };
1357
+ const outputState = { stdoutUnterminated: false, unterminatedFiles: outputFiles.length > 0 ? /* @__PURE__ */ new Set() : EMPTY_SET };
1358
+ if (inPlace !== void 0) {
1359
+ if (!files.length || files.includes("-")) throw new ProgramError("in-place editing requires named files");
1360
+ if (inPlace.includes("/") || inPlace.includes("\0")) throw new ProgramError("backup suffix cannot contain '/' or NUL");
1361
+ await assertPathRequirements(context, sedRequirements, ["in-place"], files);
1362
+ if (inPlace) await assertPathRequirements(context, sedRequirements, ["backup"], files.flatMap((file) => [file, file + inPlace]));
1363
+ const targets = await prepareInPlace(context, files, inPlace);
1364
+ if (outputFiles.length > 0) await prepareOutputs();
1365
+ for (const target of targets) {
1366
+ const result = await editInPlace(context, target, inPlace, budget, async (stdin) => {
1367
+ let rewritten = "";
1368
+ const child = Object.assign(Object.create(Object.getPrototypeOf(context)), context, { stdin, stdout: { async write(chunk) {
1369
+ rewritten = budget.check(rewritten + decodeBytes(encodeBytes(chunk), "latin1"));
1370
+ } } });
1371
+ outputState.stdoutUnterminated = false;
1372
+ const result2 = await execute(program, child, ["-"], quiet, budget, separator, outputState, lineLength);
1373
+ return { result: result2, data: bytes(rewritten) };
1374
+ });
1375
+ if (result.quit || result.status) return result.status;
1376
+ }
1377
+ return 0;
1378
+ }
1379
+ if (outputFiles.length > 0) await prepareOutputs();
1380
+ if (separate) {
1381
+ for (const file of files.length ? files : ["-"]) {
1382
+ const result = await execute(program, context, [file], quiet, budget, separator, outputState, lineLength);
1383
+ if (result.quit || result.status) return result.status;
1384
+ }
1385
+ return 0;
1386
+ }
1387
+ return (await execute(program, context, files, quiet, budget, separator, outputState, lineLength)).status;
1388
+ }
1389
+
1390
+ export {
1391
+ sedCommand
1392
+ };