@poe-platform/safe-bash 0.1.799 → 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 (847) hide show
  1. package/README.md +32 -17
  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-TRVGCN3U.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-SPYL72GN.js → chunk-KW24TAIU.js} +446 -5519
  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-WUNK5NXJ.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-LLCXZKZ6.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-EIVW3X3N.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-4B7Y7S6E.js +61 -0
  50. package/dist/safe-bash/command-chunks/{chunk-HRLIAMXC.js → chunk-4C6QI5BQ.js} +3 -2
  51. package/dist/safe-bash/command-chunks/chunk-4ZHMW6F5.js +104 -0
  52. package/dist/safe-bash/command-chunks/{chunk-4ZALPDBV.js → chunk-53P53XFM.js} +2 -2
  53. package/dist/safe-bash/command-chunks/chunk-5LSGEIZY.js +379 -0
  54. package/dist/safe-bash/command-chunks/{chunk-MKQVQMXO.js → chunk-5LU4UCBR.js} +1 -1
  55. package/dist/safe-bash/command-chunks/chunk-5T7CRJHW.js +560 -0
  56. package/dist/safe-bash/command-chunks/chunk-5TBUOBDE.js +346 -0
  57. package/dist/safe-bash/command-chunks/chunk-5XY4DTNG.js +34 -0
  58. package/dist/safe-bash/command-chunks/chunk-5ZMZ573Q.js +140 -0
  59. package/dist/safe-bash/command-chunks/{chunk-OPUJSTHS.js → chunk-67IQF5GC.js} +200 -66
  60. package/dist/safe-bash/command-chunks/chunk-67QKREJK.js +347 -0
  61. package/dist/safe-bash/command-chunks/chunk-6EPHJGGF.js +23 -0
  62. package/dist/safe-bash/command-chunks/chunk-6F4XCVON.js +266 -0
  63. package/dist/safe-bash/command-chunks/{chunk-ESMCX3YV.js → chunk-6HMX4CQS.js} +669 -130
  64. package/dist/safe-bash/command-chunks/chunk-7K6JYKPJ.js +422 -0
  65. package/dist/safe-bash/command-chunks/chunk-7N2LI2KO.js +206 -0
  66. package/dist/safe-bash/command-chunks/chunk-7RGB363W.js +362 -0
  67. package/dist/safe-bash/command-chunks/{pptx-GBPNWNEP-7EQEVXV5.js → chunk-AI5JAXQF.js} +34820 -18029
  68. package/dist/safe-bash/command-chunks/chunk-AMO3THU4.js +105 -0
  69. package/dist/safe-bash/command-chunks/chunk-BAGCY35S.js +231 -0
  70. package/dist/safe-bash/command-chunks/chunk-BAXU7B5Z.js +101 -0
  71. package/dist/safe-bash/command-chunks/{chunk-KMCZ6P4O.js → chunk-BKCNF5U3.js} +68 -7
  72. package/dist/safe-bash/command-chunks/chunk-BNOU5YQS.js +182 -0
  73. package/dist/safe-bash/command-chunks/chunk-C7I25AAL.js +25 -0
  74. package/dist/safe-bash/command-chunks/chunk-CKXV2CLD.js +65 -0
  75. package/dist/safe-bash/command-chunks/chunk-CQ5YGOGB.js +150 -0
  76. package/dist/safe-bash/command-chunks/{chunk-I3K5RYU4.js → chunk-D4OP2BR3.js} +72 -24
  77. package/dist/safe-bash/command-chunks/chunk-DB453IE6.js +122 -0
  78. package/dist/safe-bash/command-chunks/chunk-DOKKNRRM.js +87 -0
  79. package/dist/safe-bash/command-chunks/{chunk-2PX5B7T5.js → chunk-DQAVUDDX.js} +2 -2
  80. package/dist/safe-bash/command-chunks/chunk-DT7BCTWY.js +249 -0
  81. package/dist/safe-bash/command-chunks/chunk-E2LB7FRT.js +42 -0
  82. package/dist/safe-bash/command-chunks/chunk-EK6YNAXT.js +343 -0
  83. package/dist/safe-bash/command-chunks/chunk-EQ4HV54N.js +22 -0
  84. package/dist/safe-bash/command-chunks/chunk-ERYJLO6G.js +293 -0
  85. package/dist/safe-bash/command-chunks/{chunk-4ONEXMD3.js → chunk-EUSPTFAX.js} +1 -1
  86. package/dist/safe-bash/command-chunks/chunk-FKKB5X5V.js +97 -0
  87. package/dist/safe-bash/command-chunks/chunk-FXELCPFX.js +195 -0
  88. package/dist/safe-bash/command-chunks/{chunk-JCNNOMBV.js → chunk-GI4CJED2.js} +3 -2
  89. package/dist/safe-bash/command-chunks/{chunk-CU5RLO62.js → chunk-GLOZX57Y.js} +92 -18
  90. package/dist/safe-bash/command-chunks/chunk-GMIHJYDG.js +331 -0
  91. package/dist/safe-bash/command-chunks/chunk-H622NS6Z.js +11 -0
  92. package/dist/safe-bash/command-chunks/{chunk-UI32HWGS.js → chunk-HMOZ6XVJ.js} +1 -1
  93. package/dist/safe-bash/command-chunks/{chunk-AVSPNLWV.js → chunk-I237SNW5.js} +1 -1
  94. package/dist/safe-bash/command-chunks/{chunk-ZS3QPNUL.js → chunk-IR2BY7EL.js} +21 -6
  95. package/dist/safe-bash/command-chunks/chunk-IYPAQ7PH.js +42 -0
  96. package/dist/safe-bash/command-chunks/chunk-JN7WIP6S.js +94 -0
  97. package/dist/safe-bash/command-chunks/chunk-JNZ3CVAE.js +147 -0
  98. package/dist/safe-bash/command-chunks/{chunk-HLBX5IRS.js → chunk-JQ74HC37.js} +24 -32
  99. package/dist/safe-bash/command-chunks/chunk-KFVV7ZJO.js +216 -0
  100. package/dist/safe-bash/command-chunks/{chunk-G4PNVO6Z.js → chunk-KP7AO66M.js} +1 -1
  101. package/dist/safe-bash/command-chunks/chunk-KWESKQHR.js +25 -0
  102. package/dist/safe-bash/command-chunks/chunk-KYSPGS33.js +41 -0
  103. package/dist/safe-bash/command-chunks/{chunk-C7IHMJEW.js → chunk-KZC5UWFF.js} +2 -2
  104. package/dist/safe-bash/command-chunks/chunk-L6DVEBW3.js +553 -0
  105. package/dist/safe-bash/command-chunks/chunk-LC2MFKT4.js +2489 -0
  106. package/dist/safe-bash/command-chunks/chunk-LE5LZNHE.js +204 -0
  107. package/dist/safe-bash/command-chunks/chunk-MDH5T4OS.js +41 -0
  108. package/dist/safe-bash/command-chunks/chunk-MM6HU6CX.js +20 -0
  109. package/dist/safe-bash/command-chunks/{chunk-MYJAZ3U2.js → chunk-MPL2466A.js} +2 -2
  110. package/dist/safe-bash/command-chunks/{chunk-VZHRZMS7.js → chunk-NAY27PXB.js} +1 -1
  111. package/dist/safe-bash/command-chunks/chunk-NCD7PEWH.js +298 -0
  112. package/dist/safe-bash/command-chunks/chunk-NFGI5IGF.js +266 -0
  113. package/dist/safe-bash/command-chunks/{chunk-KVFCSLKK.js → chunk-NXEQ3ESQ.js} +6 -0
  114. package/dist/safe-bash/command-chunks/{chunk-3VGGYEDH.js → chunk-ORYGZYKW.js} +4 -3
  115. package/dist/safe-bash/command-chunks/{chunk-OLQG7ZCN.js → chunk-PEF7K3UQ.js} +136 -75
  116. package/dist/safe-bash/command-chunks/chunk-PII4YEZW.js +123 -0
  117. package/dist/safe-bash/command-chunks/{chunk-43GSSUAY.js → chunk-PJJUYO3R.js} +5 -5
  118. package/dist/safe-bash/command-chunks/{chunk-ZT4KSS2V.js → chunk-PTT3I223.js} +1 -1
  119. package/dist/safe-bash/command-chunks/chunk-Q3DII3Q7.js +174 -0
  120. package/dist/safe-bash/command-chunks/chunk-Q3EWDEUQ.js +185 -0
  121. package/dist/safe-bash/command-chunks/{chunk-2FUAW6GO.js → chunk-QI7LGHJJ.js} +58 -9
  122. package/dist/safe-bash/command-chunks/{chunk-6BETHLXZ.js → chunk-QJAFJP2G.js} +1 -1
  123. package/dist/safe-bash/command-chunks/chunk-QNIMV57G.js +63 -0
  124. package/dist/safe-bash/command-chunks/{chunk-VVI4Z73I.js → chunk-QP4R6GLA.js} +5 -1
  125. package/dist/safe-bash/command-chunks/{chunk-LPORMIZS.js → chunk-QWIDNAAK.js} +8 -8
  126. package/dist/safe-bash/command-chunks/chunk-RVLO4DYT.js +35 -0
  127. package/dist/safe-bash/command-chunks/{chunk-X2YQLGKS.js → chunk-SAMH7SQE.js} +4 -4
  128. package/dist/safe-bash/command-chunks/chunk-SEM36PG5.js +11 -0
  129. package/dist/safe-bash/command-chunks/chunk-STC3LEWJ.js +634 -0
  130. package/dist/safe-bash/command-chunks/chunk-SVULUDOP.js +331 -0
  131. package/dist/safe-bash/command-chunks/chunk-TEVJJPTC.js +1392 -0
  132. package/dist/safe-bash/command-chunks/{chunk-ZXKW7SJ2.js → chunk-TYCGMRLM.js} +2 -2
  133. package/dist/safe-bash/command-chunks/chunk-UG7SMZFF.js +178 -0
  134. package/dist/safe-bash/command-chunks/{chunk-YZ5SVZFD.js → chunk-UMDIOL3O.js} +3 -3
  135. package/dist/safe-bash/command-chunks/chunk-UXSR5BZH.js +136 -0
  136. package/dist/safe-bash/command-chunks/chunk-V6BEDRMQ.js +112 -0
  137. package/dist/safe-bash/command-chunks/chunk-V6MSPQLA.js +362 -0
  138. package/dist/safe-bash/command-chunks/{chunk-J4PEQWSF.js → chunk-VGG2DL5Q.js} +0 -1
  139. package/dist/safe-bash/command-chunks/{chunk-SG424QWS.js → chunk-VL67NWNS.js} +1 -1
  140. package/dist/safe-bash/command-chunks/chunk-WB5SVIG7.js +1034 -0
  141. package/dist/safe-bash/command-chunks/{src-UJOWAS2S.js → chunk-WD3ERGRY.js} +77 -277
  142. package/dist/safe-bash/command-chunks/{chunk-YFSDDFGV.js → chunk-WH627NJL.js} +446 -53
  143. package/dist/safe-bash/command-chunks/chunk-WNE7FPVR.js +236 -0
  144. package/dist/safe-bash/command-chunks/{chunk-UKS2XJZI.js → chunk-WPYIOKE3.js} +4 -4
  145. package/dist/safe-bash/command-chunks/chunk-XETLEHZP.js +1227 -0
  146. package/dist/safe-bash/command-chunks/chunk-XIIBTGC5.js +580 -0
  147. package/dist/safe-bash/command-chunks/chunk-XJXU3VVH.js +737 -0
  148. package/dist/safe-bash/command-chunks/chunk-Y5INTD6S.js +220 -0
  149. package/dist/safe-bash/command-chunks/{chunk-5ZSM4UFN.js → chunk-YGC6OS5O.js} +3 -56
  150. package/dist/safe-bash/command-chunks/chunk-YJDV76GL.js +262 -0
  151. package/dist/safe-bash/command-chunks/chunk-YOF7R4OY.js +80 -0
  152. package/dist/safe-bash/command-chunks/chunk-Z7RVSD5K.js +594 -0
  153. package/dist/safe-bash/command-chunks/chunk-ZHUWOUWB.js +618 -0
  154. package/dist/safe-bash/command-chunks/{model-store-L35QTZMJ.js → model-store-WPKMRPV4.js} +2 -2
  155. package/dist/safe-bash/command-chunks/pptx-7G52EJ6L-4JACH5FB.js +625 -0
  156. package/dist/safe-bash/command-chunks/python-worker-source-TYOFJMCW.js +4 -0
  157. package/dist/safe-bash/command-chunks/src-ICMQISAA.js +501 -0
  158. package/dist/safe-bash/commands/archive/create.d.ts +1 -17
  159. package/dist/safe-bash/commands/archive/create.js +1 -252
  160. package/dist/safe-bash/commands/archive/extract.d.ts +1 -11
  161. package/dist/safe-bash/commands/archive/extract.js +1 -640
  162. package/dist/safe-bash/commands/archive/format.d.ts +1 -32
  163. package/dist/safe-bash/commands/archive/format.js +1 -225
  164. package/dist/safe-bash/commands/archive/index.d.ts +5 -10
  165. package/dist/safe-bash/commands/archive/index.js +6 -931
  166. package/dist/safe-bash/commands/archive/listing.d.ts +1 -2
  167. package/dist/safe-bash/commands/archive/listing.js +1 -21
  168. package/dist/safe-bash/commands/archive/modes.d.ts +1 -5
  169. package/dist/safe-bash/commands/archive/modes.js +1 -182
  170. package/dist/safe-bash/commands/archive/options.d.ts +1 -53
  171. package/dist/safe-bash/commands/archive/options.js +1 -462
  172. package/dist/safe-bash/commands/archive/stream.d.ts +1 -22
  173. package/dist/safe-bash/commands/archive/stream.js +1 -188
  174. package/dist/safe-bash/commands/archive/transform.d.ts +1 -16
  175. package/dist/safe-bash/commands/archive/transform.js +1 -85
  176. package/dist/safe-bash/commands/archive/unzip/arguments.d.ts +1 -53
  177. package/dist/safe-bash/commands/archive/unzip/arguments.js +1 -322
  178. package/dist/safe-bash/commands/archive/unzip/safety.d.ts +1 -32
  179. package/dist/safe-bash/commands/archive/unzip/safety.js +1 -295
  180. package/dist/safe-bash/commands/archive/unzip.d.ts +1 -3
  181. package/dist/safe-bash/commands/archive/unzip.js +1 -398
  182. package/dist/safe-bash/commands/archive/zip/aes.d.ts +1 -17
  183. package/dist/safe-bash/commands/archive/zip/aes.js +1 -156
  184. package/dist/safe-bash/commands/archive/zip/comments.d.ts +1 -17
  185. package/dist/safe-bash/commands/archive/zip/comments.js +1 -83
  186. package/dist/safe-bash/commands/archive/zip/crc.d.ts +1 -1
  187. package/dist/safe-bash/commands/archive/zip/crc.js +1 -1
  188. package/dist/safe-bash/commands/archive/zip/crypto.d.ts +1 -19
  189. package/dist/safe-bash/commands/archive/zip/crypto.js +1 -118
  190. package/dist/safe-bash/commands/archive/zip/dates.d.ts +1 -4
  191. package/dist/safe-bash/commands/archive/zip/dates.js +1 -66
  192. package/dist/safe-bash/commands/archive/zip/environment.d.ts +1 -2
  193. package/dist/safe-bash/commands/archive/zip/environment.js +1 -62
  194. package/dist/safe-bash/commands/archive/zip/grow.d.ts +1 -3
  195. package/dist/safe-bash/commands/archive/zip/grow.js +1 -2
  196. package/dist/safe-bash/commands/archive/zip/help.d.ts +1 -4
  197. package/dist/safe-bash/commands/archive/zip/help.js +1 -182
  198. package/dist/safe-bash/commands/archive/zip/line-endings.d.ts +1 -2
  199. package/dist/safe-bash/commands/archive/zip/line-endings.js +1 -194
  200. package/dist/safe-bash/commands/archive/zip/log.d.ts +1 -22
  201. package/dist/safe-bash/commands/archive/zip/log.js +1 -159
  202. package/dist/safe-bash/commands/archive/zip/lzma.d.ts +1 -9
  203. package/dist/safe-bash/commands/archive/zip/lzma.js +1 -40
  204. package/dist/safe-bash/commands/archive/zip/move.d.ts +1 -11
  205. package/dist/safe-bash/commands/archive/zip/move.js +1 -59
  206. package/dist/safe-bash/commands/archive/zip/names.d.ts +1 -2
  207. package/dist/safe-bash/commands/archive/zip/names.js +1 -33
  208. package/dist/safe-bash/commands/archive/zip/options.d.ts +1 -13
  209. package/dist/safe-bash/commands/archive/zip/options.js +1 -124
  210. package/dist/safe-bash/commands/archive/zip/repair.d.ts +1 -10
  211. package/dist/safe-bash/commands/archive/zip/repair.js +1 -392
  212. package/dist/safe-bash/commands/archive/zip/safety.d.ts +1 -54
  213. package/dist/safe-bash/commands/archive/zip/safety.js +1 -360
  214. package/dist/safe-bash/commands/archive/zip/sfx.d.ts +1 -4
  215. package/dist/safe-bash/commands/archive/zip/sfx.js +1 -52
  216. package/dist/safe-bash/commands/archive/zip/test-command.d.ts +1 -5
  217. package/dist/safe-bash/commands/archive/zip/test-command.js +1 -101
  218. package/dist/safe-bash/commands/archive/zip/volumes.d.ts +1 -21
  219. package/dist/safe-bash/commands/archive/zip/volumes.js +1 -281
  220. package/dist/safe-bash/commands/archive/zip/zip64.d.ts +1 -30
  221. package/dist/safe-bash/commands/archive/zip/zip64.js +1 -227
  222. package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -68
  223. package/dist/safe-bash/commands/archive/zip-format.js +1 -1075
  224. package/dist/safe-bash/commands/archive/zip.d.ts +1 -3
  225. package/dist/safe-bash/commands/archive/zip.js +1 -1523
  226. package/dist/safe-bash/commands/awk/index.d.ts +2 -0
  227. package/dist/safe-bash/commands/awk/index.js +2 -0
  228. package/dist/safe-bash/commands/bytes/compression/index.js +2 -1
  229. package/dist/safe-bash/commands/curl/index.d.ts +2 -0
  230. package/dist/safe-bash/commands/curl/index.js +2 -0
  231. package/dist/safe-bash/commands/diff/index.d.ts +2 -0
  232. package/dist/safe-bash/commands/diff/index.js +2 -0
  233. package/dist/safe-bash/commands/diff-patch/diff-format.d.ts +1 -10
  234. package/dist/safe-bash/commands/diff-patch/diff-format.js +1 -237
  235. package/dist/safe-bash/commands/diff-patch/diff-options.d.ts +1 -38
  236. package/dist/safe-bash/commands/diff-patch/diff-options.js +1 -261
  237. package/dist/safe-bash/commands/diff-patch/diff-output.d.ts +1 -20
  238. package/dist/safe-bash/commands/diff-patch/diff-output.js +1 -290
  239. package/dist/safe-bash/commands/diff-patch/diff.d.ts +1 -2
  240. package/dist/safe-bash/commands/diff-patch/diff.js +1 -656
  241. package/dist/safe-bash/commands/diff-patch/index.d.ts +4 -5
  242. package/dist/safe-bash/commands/diff-patch/index.js +8 -333
  243. package/dist/safe-bash/commands/diff-patch/patch-envelope.d.ts +1 -2
  244. package/dist/safe-bash/commands/diff-patch/patch-envelope.js +1 -63
  245. package/dist/safe-bash/commands/diff-patch/patch-formats.d.ts +1 -7
  246. package/dist/safe-bash/commands/diff-patch/patch-formats.js +1 -264
  247. package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.d.ts +1 -41
  248. package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.js +1 -263
  249. package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.d.ts +1 -3
  250. package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.js +1 -100
  251. package/dist/safe-bash/commands/diff-patch/patch-path.d.ts +1 -3
  252. package/dist/safe-bash/commands/diff-patch/patch-path.js +1 -91
  253. package/dist/safe-bash/commands/diff-patch/patch-publication.d.ts +1 -13
  254. package/dist/safe-bash/commands/diff-patch/patch-publication.js +1 -107
  255. package/dist/safe-bash/commands/diff-patch/patch.d.ts +1 -2
  256. package/dist/safe-bash/commands/diff-patch/patch.js +1 -653
  257. package/dist/safe-bash/commands/diff-patch/shared.d.ts +1 -53
  258. package/dist/safe-bash/commands/diff-patch/shared.js +1 -267
  259. package/dist/safe-bash/commands/diff-patch/unified.d.ts +1 -52
  260. package/dist/safe-bash/commands/diff-patch/unified.js +1 -385
  261. package/dist/safe-bash/commands/directory-admission.d.ts +1 -3
  262. package/dist/safe-bash/commands/directory-admission.js +1 -26
  263. package/dist/safe-bash/commands/find/index.d.ts +2 -0
  264. package/dist/safe-bash/commands/find/index.js +2 -0
  265. package/dist/safe-bash/commands/find-format.d.ts +1 -20
  266. package/dist/safe-bash/commands/find-format.js +1 -161
  267. package/dist/safe-bash/commands/find.d.ts +2 -18
  268. package/dist/safe-bash/commands/find.js +2 -1236
  269. package/dist/safe-bash/commands/gzip/index.d.ts +2 -0
  270. package/dist/safe-bash/commands/gzip/index.js +2 -0
  271. package/dist/safe-bash/commands/line-endings/index.browser.js +1 -1
  272. package/dist/safe-bash/commands/line-endings/index.d.ts +1 -1
  273. package/dist/safe-bash/commands/line-endings/index.js +1 -262
  274. package/dist/safe-bash/commands/llm/index.browser.js +3 -1
  275. package/dist/safe-bash/commands/mdq/index.browser.js +2 -2
  276. package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -4
  277. package/dist/safe-bash/commands/metadata/chmod.js +2 -63
  278. package/dist/safe-bash/commands/network/aggregate.d.ts +1 -4
  279. package/dist/safe-bash/commands/network/aggregate.js +1 -23
  280. package/dist/safe-bash/commands/network/args.d.ts +1 -68
  281. package/dist/safe-bash/commands/network/args.js +1 -321
  282. package/dist/safe-bash/commands/network/authorizer.d.ts +1 -6
  283. package/dist/safe-bash/commands/network/authorizer.js +1 -33
  284. package/dist/safe-bash/commands/network/body.d.ts +1 -9
  285. package/dist/safe-bash/commands/network/body.js +1 -393
  286. package/dist/safe-bash/commands/network/curl.d.ts +3 -13
  287. package/dist/safe-bash/commands/network/curl.js +6 -693
  288. package/dist/safe-bash/commands/network/deadline.d.ts +1 -2
  289. package/dist/safe-bash/commands/network/deadline.js +1 -14
  290. package/dist/safe-bash/commands/network/decode.d.ts +1 -2
  291. package/dist/safe-bash/commands/network/decode.js +1 -79
  292. package/dist/safe-bash/commands/network/fetch-transport.d.ts +1 -7
  293. package/dist/safe-bash/commands/network/fetch-transport.js +1 -94
  294. package/dist/safe-bash/commands/network/form-content-type.d.ts +1 -5
  295. package/dist/safe-bash/commands/network/form-content-type.js +1 -63
  296. package/dist/safe-bash/commands/network/form-headers.d.ts +1 -2
  297. package/dist/safe-bash/commands/network/form-headers.js +1 -35
  298. package/dist/safe-bash/commands/network/glob.d.ts +1 -7
  299. package/dist/safe-bash/commands/network/glob.js +1 -134
  300. package/dist/safe-bash/commands/network/index.browser.js +2 -10
  301. package/dist/safe-bash/commands/network/input.d.ts +1 -5
  302. package/dist/safe-bash/commands/network/input.js +1 -276
  303. package/dist/safe-bash/commands/network/output.d.ts +1 -6
  304. package/dist/safe-bash/commands/network/output.js +1 -131
  305. package/dist/safe-bash/commands/network/private-address.d.ts +1 -1
  306. package/dist/safe-bash/commands/network/private-address.js +1 -44
  307. package/dist/safe-bash/commands/network/shared.d.ts +1 -14
  308. package/dist/safe-bash/commands/network/shared.js +1 -71
  309. package/dist/safe-bash/commands/network/types.d.ts +1 -37
  310. package/dist/safe-bash/commands/network/types.js +1 -31
  311. package/dist/safe-bash/commands/network/url.d.ts +1 -2
  312. package/dist/safe-bash/commands/network/url.js +1 -30
  313. package/dist/safe-bash/commands/network/wget.d.ts +3 -3
  314. package/dist/safe-bash/commands/network/wget.js +10 -331
  315. package/dist/safe-bash/commands/node/index.browser.js +4 -5
  316. package/dist/safe-bash/commands/node/index.d.ts +3 -3
  317. package/dist/safe-bash/commands/node/index.js +5 -0
  318. package/dist/safe-bash/commands/node/safejs.d.ts +3 -3
  319. package/dist/safe-bash/commands/node/safejs.js +6 -1
  320. package/dist/safe-bash/commands/node/types.d.ts +1 -1
  321. package/dist/safe-bash/commands/node/unconfigured.d.ts +3 -0
  322. package/dist/safe-bash/commands/node/unconfigured.js +10 -0
  323. package/dist/safe-bash/commands/op/index.browser.js +2 -2
  324. package/dist/safe-bash/commands/patch/index.d.ts +2 -0
  325. package/dist/safe-bash/commands/patch/index.js +2 -0
  326. package/dist/safe-bash/commands/pdfinfo/index.js +2 -1
  327. package/dist/safe-bash/commands/predicates.js +3 -4
  328. package/dist/safe-bash/commands/python/index.browser.js +5 -5
  329. package/dist/safe-bash/commands/python/llm-capability.d.ts +1 -0
  330. package/dist/safe-bash/commands/python/llm-capability.js +27 -7
  331. package/dist/safe-bash/commands/python/llm-module.js +11 -0
  332. package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
  333. package/dist/safe-bash/commands/python/manifest.js +9 -5
  334. package/dist/safe-bash/commands/python/provisioning.js +1 -1
  335. package/dist/safe-bash/commands/regex-execution/matching.js +1 -2
  336. package/dist/safe-bash/commands/regex-execution/public.browser.js +5 -5
  337. package/dist/safe-bash/commands/search/index.d.ts +1 -1
  338. package/dist/safe-bash/commands/search/index.js +1 -347
  339. package/dist/safe-bash/commands/search/portable.d.ts +2 -2
  340. package/dist/safe-bash/commands/search/portable.js +3 -2
  341. package/dist/safe-bash/commands/sed/index.d.ts +2 -0
  342. package/dist/safe-bash/commands/sed/index.js +2 -0
  343. package/dist/safe-bash/commands/tar/index.d.ts +2 -0
  344. package/dist/safe-bash/commands/tar/index.js +2 -0
  345. package/dist/safe-bash/commands/text-programs/awk-inspection.d.ts +1 -19
  346. package/dist/safe-bash/commands/text-programs/awk-inspection.js +1 -50
  347. package/dist/safe-bash/commands/text-programs/awk-pipes.d.ts +2 -0
  348. package/dist/safe-bash/commands/text-programs/awk-pipes.js +2 -0
  349. package/dist/safe-bash/commands/text-programs/awk-pretty.d.ts +1 -3
  350. package/dist/safe-bash/commands/text-programs/awk-pretty.js +1 -197
  351. package/dist/safe-bash/commands/text-programs/awk-quote.d.ts +1 -2
  352. package/dist/safe-bash/commands/text-programs/awk-quote.js +1 -15
  353. package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -42
  354. package/dist/safe-bash/commands/text-programs/awk-reader.js +1 -449
  355. package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -13
  356. package/dist/safe-bash/commands/text-programs/awk-retention.js +1 -51
  357. package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +1 -150
  358. package/dist/safe-bash/commands/text-programs/awk-runtime.js +1 -2627
  359. package/dist/safe-bash/commands/text-programs/awk-syntax.d.ts +1 -142
  360. package/dist/safe-bash/commands/text-programs/awk-syntax.js +1 -509
  361. package/dist/safe-bash/commands/text-programs/awk-values.d.ts +1 -32
  362. package/dist/safe-bash/commands/text-programs/awk-values.js +1 -386
  363. package/dist/safe-bash/commands/text-programs/awk.d.ts +1 -3
  364. package/dist/safe-bash/commands/text-programs/awk.js +1 -361
  365. package/dist/safe-bash/commands/text-programs/inplace.d.ts +1 -16
  366. package/dist/safe-bash/commands/text-programs/inplace.js +1 -155
  367. package/dist/safe-bash/commands/text-programs/sed.d.ts +1 -3
  368. package/dist/safe-bash/commands/text-programs/sed.js +1 -1647
  369. package/dist/safe-bash/commands/unzip/index.d.ts +2 -0
  370. package/dist/safe-bash/commands/unzip/index.js +2 -0
  371. package/dist/safe-bash/commands/wget/index.d.ts +2 -0
  372. package/dist/safe-bash/commands/wget/index.js +2 -0
  373. package/dist/safe-bash/commands/yq/index.browser.js +7 -2
  374. package/dist/safe-bash/commands/yq/index.d.ts +1 -6
  375. package/dist/safe-bash/commands/yq/index.js +1 -36
  376. package/dist/safe-bash/commands/zip/index.d.ts +2 -0
  377. package/dist/safe-bash/commands/zip/index.js +2 -0
  378. package/dist/safe-bash/core.browser.js +1 -1
  379. package/dist/safe-bash/core.d.ts +8 -1
  380. package/dist/safe-bash/core.js +7 -1
  381. package/dist/safe-bash/fs/s3/index.d.ts +2 -2
  382. package/dist/safe-bash/fs/s3/index.js +1 -1
  383. package/dist/safe-bash/full-core.browser.js +254 -223
  384. package/dist/safe-bash/jobs.browser.js +2 -2
  385. package/dist/safe-bash/lazy-mmdc.d.ts +6 -0
  386. package/dist/safe-bash/lazy-mmdc.js +23 -0
  387. package/dist/safe-bash/opt-in/commands/yq/mike.js +6 -13
  388. package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +1 -0
  389. package/dist/safe-bash/opt-in/commands/yq/native-work.js +17 -0
  390. package/dist/safe-bash/optional-host.browser.js +8 -4
  391. package/dist/safe-bash/optional-host.d.ts +1 -1
  392. package/dist/safe-bash/optional-host.js +1 -1
  393. package/dist/safe-bash/playwright/ability-execution.js +3 -2
  394. package/dist/safe-bash/playwright/adapter.js +1 -1
  395. package/dist/safe-bash/playwright/controller.js +9 -8
  396. package/dist/safe-bash/playwright/modal-capabilities.js +2 -1
  397. package/dist/safe-bash/playwright/native-json-snapshot.js +4 -3
  398. package/dist/safe-bash/playwright/native-snapshot.js +5 -4
  399. package/dist/safe-bash/playwright/open-options.js +3 -3
  400. package/dist/safe-bash/playwright/resource-limit.d.ts +2 -0
  401. package/dist/safe-bash/playwright/resource-limit.js +4 -0
  402. package/dist/safe-bash/playwright/session-configuration.js +8 -3
  403. package/dist/safe-bash/playwright/snapshot.js +8 -7
  404. package/dist/safe-bash/playwright/standard-capabilities.js +5 -4
  405. package/dist/safe-bash/plugins/index.browser.js +14 -16
  406. package/dist/safe-bash/registry-entry.browser.js +14 -16
  407. package/dist/safe-bash/shell/arrays/bindings.d.ts +3 -5
  408. package/dist/safe-bash/shell/arrays/bindings.js +6 -2
  409. package/dist/safe-bash/shell/input.js +16 -14
  410. package/dist/safe-bash/shell/runtime.d.ts +3 -0
  411. package/dist/safe-bash/shell/runtime.js +316 -64
  412. package/dist/safe-bash/shell/types.d.ts +2 -0
  413. package/dist/safe-bash/shell/value-state.js +17 -2
  414. package/dist/safe-bash/shell/worker-limits.js +1 -0
  415. package/dist/safe-bash/shell-entry.browser.js +13 -15
  416. package/dist/safe-bash/trap.browser.d.ts +3 -0
  417. package/dist/safe-bash/trap.browser.js +14 -0
  418. package/dist/safe-bash/worker/host.js +1 -1
  419. package/dist/safe-bash-command-apply-patch/apply.js +2 -2
  420. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  421. package/dist/safe-bash-command-awk/LICENSE +21 -0
  422. package/dist/safe-bash-command-awk/awk-inspection.d.ts +19 -0
  423. package/dist/safe-bash-command-awk/awk-inspection.js +9 -0
  424. package/dist/safe-bash-command-awk/awk-pipes.d.ts +19 -0
  425. package/dist/safe-bash-command-awk/awk-pipes.js +8 -0
  426. package/dist/safe-bash-command-awk/awk-pretty.d.ts +3 -0
  427. package/dist/safe-bash-command-awk/awk-pretty.js +8 -0
  428. package/dist/safe-bash-command-awk/awk-quote.d.ts +2 -0
  429. package/dist/safe-bash-command-awk/awk-quote.js +7 -0
  430. package/dist/safe-bash-command-awk/awk-reader.d.ts +42 -0
  431. package/dist/safe-bash-command-awk/awk-reader.js +9 -0
  432. package/dist/safe-bash-command-awk/awk-retention.d.ts +13 -0
  433. package/dist/safe-bash-command-awk/awk-retention.js +7 -0
  434. package/dist/safe-bash-command-awk/awk-runtime.d.ts +151 -0
  435. package/dist/safe-bash-command-awk/awk-runtime.js +11 -0
  436. package/dist/safe-bash-command-awk/awk-syntax.d.ts +144 -0
  437. package/dist/safe-bash-command-awk/awk-syntax.js +14 -0
  438. package/dist/safe-bash-command-awk/awk-values.d.ts +32 -0
  439. package/dist/safe-bash-command-awk/awk-values.js +35 -0
  440. package/dist/safe-bash-command-awk/awk.d.ts +3 -0
  441. package/dist/safe-bash-command-awk/awk.js +16 -0
  442. package/dist/safe-bash-command-awk/index.d.ts +7 -0
  443. package/dist/safe-bash-command-awk/index.js +36 -0
  444. package/dist/safe-bash-command-bc/index.d.ts +4 -0
  445. package/dist/safe-bash-command-bc/index.js +15 -176
  446. package/dist/safe-bash-command-column/column.js +3 -3
  447. package/dist/safe-bash-command-column/index.js +3 -3
  448. package/dist/safe-bash-command-column/layout.js +2 -2
  449. package/dist/safe-bash-command-csplit/command.js +2 -2
  450. package/dist/safe-bash-command-csplit/index.js +2 -2
  451. package/dist/safe-bash-command-csvkit/contracts.d.ts +1 -0
  452. package/dist/safe-bash-command-csvkit/csvpy-interpreter.d.ts +2 -1
  453. package/dist/safe-bash-command-csvkit/default-csvpy.d.ts +11 -0
  454. package/dist/safe-bash-command-csvkit/errors.js +22 -0
  455. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  456. package/dist/safe-bash-command-csvkit/index.js +172 -4
  457. package/dist/safe-bash-command-csvkit/python-worker-browser.d.ts +3 -0
  458. package/dist/safe-bash-command-csvkit/python-worker-browser.js +16 -0
  459. package/dist/safe-bash-command-csvkit/python-worker-contract.d.ts +20 -0
  460. package/dist/safe-bash-command-csvkit/python-worker-node.d.ts +3 -0
  461. package/dist/safe-bash-command-csvkit/python-worker-node.js +9 -0
  462. package/dist/safe-bash-command-csvkit/runtime.d.ts +1 -0
  463. package/dist/safe-bash-command-curl/LICENSE +21 -0
  464. package/dist/safe-bash-command-curl/curl.d.ts +13 -0
  465. package/dist/safe-bash-command-curl/curl.js +9 -0
  466. package/dist/safe-bash-command-curl/index.d.ts +6 -0
  467. package/dist/safe-bash-command-curl/index.js +26 -0
  468. package/dist/safe-bash-command-diff/LICENSE +21 -0
  469. package/dist/safe-bash-command-diff/diff-format.d.ts +10 -0
  470. package/dist/safe-bash-command-diff/diff-format.js +10 -0
  471. package/dist/safe-bash-command-diff/diff-options.d.ts +38 -0
  472. package/dist/safe-bash-command-diff/diff-options.js +7 -0
  473. package/dist/safe-bash-command-diff/diff-output.d.ts +20 -0
  474. package/dist/safe-bash-command-diff/diff-output.js +19 -0
  475. package/dist/safe-bash-command-diff/diff.d.ts +2 -0
  476. package/dist/safe-bash-command-diff/diff.js +10 -0
  477. package/dist/safe-bash-command-diff/index.d.ts +8 -0
  478. package/dist/safe-bash-command-diff/index.js +34 -0
  479. package/dist/safe-bash-command-diff/sync.d.ts +2 -0
  480. package/dist/safe-bash-command-diff/sync.js +9 -0
  481. package/dist/safe-bash-command-diff3/index.js +5 -5
  482. package/dist/safe-bash-command-docx/index.d.ts +4 -4
  483. package/dist/safe-bash-command-docx/index.js +12 -5
  484. package/dist/safe-bash-command-dos2unix/index.d.ts +1 -0
  485. package/dist/safe-bash-command-dos2unix/index.js +225 -1
  486. package/dist/safe-bash-command-dos2unix/sync.d.ts +1 -0
  487. package/dist/safe-bash-command-exiftool/index.js +2 -2
  488. package/dist/safe-bash-command-factor/command.js +2 -2
  489. package/dist/safe-bash-command-factor/index.js +2 -2
  490. package/dist/safe-bash-command-ffmpeg/index.js +86 -94
  491. package/dist/safe-bash-command-file/index.js +3 -3
  492. package/dist/safe-bash-command-find/LICENSE +21 -0
  493. package/dist/safe-bash-command-find/find-format.d.ts +20 -0
  494. package/dist/safe-bash-command-find/find-format.js +9 -0
  495. package/dist/safe-bash-command-find/find.d.ts +18 -0
  496. package/dist/safe-bash-command-find/find.js +10 -0
  497. package/dist/safe-bash-command-find/index.d.ts +13 -0
  498. package/dist/safe-bash-command-find/index.js +45 -0
  499. package/dist/safe-bash-command-fmt/index.js +7 -4
  500. package/dist/safe-bash-command-git/git_rust.wasm +0 -0
  501. package/dist/safe-bash-command-git/index.js +5 -7
  502. package/dist/safe-bash-command-git/wasm.generated.js +1 -1
  503. package/dist/safe-bash-command-gzip/LICENSE +21 -0
  504. package/dist/safe-bash-command-gzip/index.d.ts +11 -0
  505. package/dist/safe-bash-command-gzip/index.js +94 -0
  506. package/dist/safe-bash-command-html-to-markdown/index.js +5 -5
  507. package/dist/safe-bash-command-htmlq/index.js +12 -8
  508. package/dist/safe-bash-command-imagemagick/index.js +22 -30
  509. package/dist/safe-bash-command-jq/index.js +1 -1
  510. package/dist/safe-bash-command-jq/jq.js +1 -1
  511. package/dist/safe-bash-command-llm/command.js +1 -1
  512. package/dist/safe-bash-command-llm/index.d.ts +1 -0
  513. package/dist/safe-bash-command-llm/index.js +16 -14
  514. package/dist/safe-bash-command-llm/openai.js +3 -3
  515. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  516. package/dist/safe-bash-command-llm/providers/openai.js +3 -3
  517. package/dist/safe-bash-command-llm/stored-schema.d.ts +10 -0
  518. package/dist/safe-bash-command-mmdc/index.js +13 -604
  519. package/dist/safe-bash-command-mmdc/settings.d.ts +2 -0
  520. package/dist/safe-bash-command-mmdc/settings.js +7 -0
  521. package/dist/safe-bash-command-pandoc/command.js +4 -3
  522. package/dist/safe-bash-command-pandoc/defaults.d.ts +1 -0
  523. package/dist/safe-bash-command-pandoc/index.js +4 -3
  524. package/dist/safe-bash-command-pandoc/lua-filters.js +1 -1
  525. package/dist/safe-bash-command-pandoc/types.d.ts +3 -1
  526. package/dist/safe-bash-command-patch/LICENSE +21 -0
  527. package/dist/safe-bash-command-patch/index.d.ts +8 -0
  528. package/dist/safe-bash-command-patch/index.js +38 -0
  529. package/dist/safe-bash-command-patch/patch-envelope.d.ts +2 -0
  530. package/dist/safe-bash-command-patch/patch-envelope.js +7 -0
  531. package/dist/safe-bash-command-patch/patch-formats.d.ts +7 -0
  532. package/dist/safe-bash-command-patch/patch-formats.js +9 -0
  533. package/dist/safe-bash-command-patch/patch-gnu-paths.d.ts +41 -0
  534. package/dist/safe-bash-command-patch/patch-gnu-paths.js +26 -0
  535. package/dist/safe-bash-command-patch/patch-gnu-reject.d.ts +3 -0
  536. package/dist/safe-bash-command-patch/patch-gnu-reject.js +7 -0
  537. package/dist/safe-bash-command-patch/patch-path.d.ts +3 -0
  538. package/dist/safe-bash-command-patch/patch-path.js +11 -0
  539. package/dist/safe-bash-command-patch/patch-publication.d.ts +13 -0
  540. package/dist/safe-bash-command-patch/patch-publication.js +7 -0
  541. package/dist/safe-bash-command-patch/patch.d.ts +2 -0
  542. package/dist/safe-bash-command-patch/patch.js +14 -0
  543. package/dist/safe-bash-command-patch/sync.d.ts +2 -0
  544. package/dist/safe-bash-command-patch/sync.js +7 -0
  545. package/dist/safe-bash-command-patch/unified.d.ts +52 -0
  546. package/dist/safe-bash-command-patch/unified.js +16 -0
  547. package/dist/safe-bash-command-pdfimages/index.js +37 -16
  548. package/dist/safe-bash-command-pdfinfo/index.d.ts +0 -23
  549. package/dist/safe-bash-command-pdfinfo/index.js +20 -772
  550. package/dist/safe-bash-command-pdftk/index.js +37 -9
  551. package/dist/safe-bash-command-pdftoppm/index.js +50 -20
  552. package/dist/safe-bash-command-pdftotext/index.js +10 -2
  553. package/dist/safe-bash-command-pptx/index.d.ts +4 -4
  554. package/dist/safe-bash-command-pptx/index.js +11 -5
  555. package/dist/safe-bash-command-pr/command.js +2 -2
  556. package/dist/safe-bash-command-pr/index.js +4 -4
  557. package/dist/safe-bash-command-qpdf/index.js +26 -13
  558. package/dist/safe-bash-command-rg/index.d.ts +1 -0
  559. package/dist/safe-bash-command-rg/index.js +222 -1
  560. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  561. package/dist/safe-bash-command-rg/sync.d.ts +1 -0
  562. package/dist/safe-bash-command-sed/LICENSE +21 -0
  563. package/dist/safe-bash-command-sed/index.d.ts +7 -0
  564. package/dist/safe-bash-command-sed/index.js +28 -0
  565. package/dist/safe-bash-command-sed/inplace.d.ts +16 -0
  566. package/dist/safe-bash-command-sed/inplace.js +9 -0
  567. package/dist/safe-bash-command-sed/sed.d.ts +3 -0
  568. package/dist/safe-bash-command-sed/sed.js +8 -0
  569. package/dist/safe-bash-command-sips/index.js +111 -35
  570. package/dist/safe-bash-command-soffice/index.js +4 -4
  571. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -2
  572. package/dist/safe-bash-command-sqlite3/index.js +152 -452
  573. package/dist/safe-bash-command-ssconvert/commands.js +1 -1
  574. package/dist/safe-bash-command-ssconvert/formats/ods.js +2 -2
  575. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +3 -3
  576. package/dist/safe-bash-command-ssconvert/index.js +5 -5
  577. package/dist/safe-bash-command-tar/LICENSE +21 -0
  578. package/dist/safe-bash-command-tar/create.d.ts +17 -0
  579. package/dist/safe-bash-command-tar/create.js +14 -0
  580. package/dist/safe-bash-command-tar/extract.d.ts +11 -0
  581. package/dist/safe-bash-command-tar/extract.js +14 -0
  582. package/dist/safe-bash-command-tar/format.d.ts +32 -0
  583. package/dist/safe-bash-command-tar/format.js +19 -0
  584. package/dist/safe-bash-command-tar/index.d.ts +8 -0
  585. package/dist/safe-bash-command-tar/index.js +550 -0
  586. package/dist/safe-bash-command-tar/listing.d.ts +2 -0
  587. package/dist/safe-bash-command-tar/listing.js +7 -0
  588. package/dist/safe-bash-command-tar/modes.d.ts +5 -0
  589. package/dist/safe-bash-command-tar/modes.js +16 -0
  590. package/dist/safe-bash-command-tar/options.d.ts +53 -0
  591. package/dist/safe-bash-command-tar/options.js +10 -0
  592. package/dist/safe-bash-command-tar/stream.d.ts +22 -0
  593. package/dist/safe-bash-command-tar/stream.js +15 -0
  594. package/dist/safe-bash-command-tar/transform.d.ts +16 -0
  595. package/dist/safe-bash-command-tar/transform.js +9 -0
  596. package/dist/safe-bash-command-unzip/LICENSE +21 -0
  597. package/dist/safe-bash-command-unzip/index.d.ts +7 -0
  598. package/dist/safe-bash-command-unzip/index.js +39 -0
  599. package/dist/safe-bash-command-unzip/sync.d.ts +3 -0
  600. package/dist/safe-bash-command-unzip/sync.js +9 -0
  601. package/dist/safe-bash-command-unzip/unzip/safety.d.ts +32 -0
  602. package/dist/safe-bash-command-unzip/unzip/safety.js +7 -0
  603. package/dist/safe-bash-command-unzip/unzip.d.ts +3 -0
  604. package/dist/safe-bash-command-unzip/unzip.js +8 -0
  605. package/dist/safe-bash-command-wget/LICENSE +21 -0
  606. package/dist/safe-bash-command-wget/index.d.ts +6 -0
  607. package/dist/safe-bash-command-wget/index.js +26 -0
  608. package/dist/safe-bash-command-wget/wget.d.ts +3 -0
  609. package/dist/safe-bash-command-wget/wget.js +7 -0
  610. package/dist/safe-bash-command-xan/argv.d.ts +4 -1
  611. package/dist/safe-bash-command-xan/argv.js +1 -1
  612. package/dist/safe-bash-command-xan/commands.js +4 -3
  613. package/dist/safe-bash-command-xan/index.js +15 -14
  614. package/dist/safe-bash-command-xan/io.js +2 -2
  615. package/dist/safe-bash-command-xmllint/index.js +189 -49
  616. package/dist/safe-bash-command-xz/index.js +3 -2
  617. package/dist/safe-bash-command-xz/options.d.ts +9 -1
  618. package/dist/safe-bash-command-xz/options.js +3 -1
  619. package/dist/safe-bash-command-yq/index.d.ts +4 -11
  620. package/dist/safe-bash-command-yq/index.js +3367 -670
  621. package/dist/safe-bash-command-yq/mike.js +6 -13
  622. package/dist/safe-bash-command-yq/native-work.d.ts +1 -0
  623. package/dist/safe-bash-command-yq/native-work.js +17 -0
  624. package/dist/safe-bash-command-yq/query.d.ts +11 -0
  625. package/dist/safe-bash-command-yq/query.js +735 -0
  626. package/dist/safe-bash-command-zip/LICENSE +21 -0
  627. package/dist/safe-bash-command-zip/index.d.ts +7 -0
  628. package/dist/safe-bash-command-zip/index.js +38 -0
  629. package/dist/safe-bash-command-zip/sync.d.ts +3 -0
  630. package/dist/safe-bash-command-zip/sync.js +9 -0
  631. package/dist/safe-bash-command-zip/zip.d.ts +3 -0
  632. package/dist/safe-bash-command-zip/zip.js +7 -0
  633. package/dist/safe-bash-compression-engine/files.js +4 -4
  634. package/dist/safe-bash-compression-engine/index.js +2 -2
  635. package/dist/safe-bash-compression-engine/operand.js +6 -6
  636. package/dist/safe-bash-compression-engine/stream.js +2 -2
  637. package/dist/safe-bash-compression-engine/zstd-decode.js +1 -1
  638. package/dist/safe-bash-contracts/command.js +1 -1
  639. package/dist/safe-bash-contracts/diagnostics.js +4 -4
  640. package/dist/safe-bash-contracts/escaping.js +11 -11
  641. package/dist/safe-bash-contracts/filesystem-descriptor.js +1 -1
  642. package/dist/safe-bash-contracts/filesystem-output.js +8 -8
  643. package/dist/safe-bash-contracts/index.js +34 -34
  644. package/dist/safe-bash-contracts/io.js +2 -2
  645. package/dist/safe-bash-contracts/output.js +3 -3
  646. package/dist/safe-bash-diff-engine/LICENSE +21 -0
  647. package/dist/safe-bash-diff-engine/index.d.ts +1 -0
  648. package/dist/safe-bash-diff-engine/index.js +24 -0
  649. package/dist/safe-bash-diff-engine/shared.d.ts +53 -0
  650. package/dist/safe-bash-diff-engine/shared.js +19 -0
  651. package/dist/safe-bash-io-engine/commands/directory-admission.d.ts +3 -0
  652. package/dist/safe-bash-io-engine/commands/directory-admission.js +34 -0
  653. package/dist/safe-bash-io-engine/commands/mode-change.d.ts +4 -0
  654. package/dist/safe-bash-io-engine/commands/mode-change.js +60 -0
  655. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +20 -31
  656. package/dist/safe-bash-io-engine/shell/pattern.js +7 -12
  657. package/dist/safe-bash-markdown-engine/commonmark-blocks.js +4 -4
  658. package/dist/safe-bash-markdown-engine/commonmark-inlines.js +4 -4
  659. package/dist/safe-bash-markdown-engine/commonmark-syntax.js +2 -2
  660. package/dist/safe-bash-markdown-engine/gfm-syntax.js +3 -3
  661. package/dist/safe-bash-markdown-engine/index.js +7 -7
  662. package/dist/safe-bash-mcp/index.browser.d.ts +6 -0
  663. package/dist/safe-bash-mcp/index.browser.js +1 -0
  664. package/dist/safe-bash-mcp/index.d.ts +12 -0
  665. package/dist/safe-bash-mcp/index.js +1558 -36
  666. package/dist/safe-bash-network-engine/LICENSE +21 -0
  667. package/dist/safe-bash-network-engine/aggregate.d.ts +4 -0
  668. package/dist/safe-bash-network-engine/aggregate.js +37 -0
  669. package/dist/safe-bash-network-engine/args.d.ts +68 -0
  670. package/dist/safe-bash-network-engine/args.js +19 -0
  671. package/dist/safe-bash-network-engine/authorizer.d.ts +6 -0
  672. package/dist/safe-bash-network-engine/authorizer.js +8 -0
  673. package/dist/safe-bash-network-engine/body.d.ts +9 -0
  674. package/dist/safe-bash-network-engine/body.js +374 -0
  675. package/dist/safe-bash-network-engine/deadline.d.ts +2 -0
  676. package/dist/safe-bash-network-engine/deadline.js +7 -0
  677. package/dist/safe-bash-network-engine/decode.d.ts +2 -0
  678. package/dist/safe-bash-network-engine/decode.js +81 -0
  679. package/dist/safe-bash-network-engine/fetch-transport.d.ts +7 -0
  680. package/dist/safe-bash-network-engine/fetch-transport.js +9 -0
  681. package/dist/safe-bash-network-engine/form-content-type.d.ts +5 -0
  682. package/dist/safe-bash-network-engine/form-content-type.js +8 -0
  683. package/dist/safe-bash-network-engine/form-headers.d.ts +2 -0
  684. package/dist/safe-bash-network-engine/form-headers.js +10 -0
  685. package/dist/safe-bash-network-engine/glob.d.ts +7 -0
  686. package/dist/safe-bash-network-engine/glob.js +124 -0
  687. package/dist/safe-bash-network-engine/index.d.ts +3 -0
  688. package/dist/safe-bash-network-engine/index.js +26 -0
  689. package/dist/safe-bash-network-engine/input.d.ts +5 -0
  690. package/dist/safe-bash-network-engine/input.js +255 -0
  691. package/dist/safe-bash-network-engine/output.d.ts +6 -0
  692. package/dist/safe-bash-network-engine/output.js +132 -0
  693. package/dist/safe-bash-network-engine/platform-portable.d.ts +5 -0
  694. package/dist/safe-bash-network-engine/platform-portable.js +19 -0
  695. package/dist/safe-bash-network-engine/private-address.d.ts +1 -0
  696. package/dist/safe-bash-network-engine/private-address.js +7 -0
  697. package/dist/safe-bash-network-engine/shared.d.ts +14 -0
  698. package/dist/safe-bash-network-engine/shared.js +23 -0
  699. package/dist/safe-bash-network-engine/types.d.ts +37 -0
  700. package/dist/safe-bash-network-engine/types.js +11 -0
  701. package/dist/safe-bash-network-engine/url.d.ts +2 -0
  702. package/dist/safe-bash-network-engine/url.js +8 -0
  703. package/dist/safe-bash-query-engine/capture.d.ts +1 -0
  704. package/dist/safe-bash-query-engine/capture.js +9 -7
  705. package/dist/safe-bash-query-engine/dates.d.ts +5 -1
  706. package/dist/safe-bash-query-engine/dates.js +10 -2
  707. package/dist/safe-bash-query-engine/delpaths.js +5 -5
  708. package/dist/safe-bash-query-engine/formats.js +3 -3
  709. package/dist/safe-bash-query-engine/index.js +15 -15
  710. package/dist/safe-bash-query-engine/indices.js +5 -5
  711. package/dist/safe-bash-query-engine/input.d.ts +1 -2
  712. package/dist/safe-bash-query-engine/input.js +2 -4
  713. package/dist/safe-bash-query-engine/interpreter.d.ts +5 -0
  714. package/dist/safe-bash-query-engine/interpreter.js +13 -13
  715. package/dist/safe-bash-query-engine/limits.js +1 -1
  716. package/dist/safe-bash-query-engine/parser.d.ts +8 -1
  717. package/dist/safe-bash-query-engine/parser.js +2 -2
  718. package/dist/safe-bash-query-engine/query-core.js +15 -15
  719. package/dist/safe-bash-query-engine/recurse.js +2 -2
  720. package/dist/safe-bash-query-engine/regex.d.ts +4 -2
  721. package/dist/safe-bash-query-engine/regex.js +10 -5
  722. package/dist/safe-bash-query-engine/split.js +2 -2
  723. package/dist/safe-bash-query-engine/splits.d.ts +1 -1
  724. package/dist/safe-bash-query-engine/splits.js +7 -6
  725. package/dist/safe-bash-query-engine/values.js +4 -4
  726. package/dist/safe-bash-regex-engine/ere/matcher.js +4 -4
  727. package/dist/safe-bash-regex-engine/index.js +2 -2
  728. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -0
  729. package/dist/safe-bash-regex-engine/text/regex.js +2 -2
  730. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +12 -2
  731. package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
  732. package/dist/safe-bash-search-engine/glob.js +2 -2
  733. package/dist/safe-bash-search-engine/grep.js +2 -2
  734. package/dist/safe-bash-search-engine/matcher.d.ts +6 -2
  735. package/dist/safe-bash-search-engine/matcher.js +30 -8
  736. package/dist/safe-bash-search-engine/options.js +1 -1
  737. package/dist/safe-bash-search-engine/output.d.ts +3 -2
  738. package/dist/safe-bash-search-engine/output.js +111 -30
  739. package/dist/safe-bash-search-engine/shared.d.ts +2 -0
  740. package/dist/safe-bash-search-engine/shared.js +2 -2
  741. package/dist/safe-bash-search-engine/walk.js +11 -10
  742. package/dist/safe-bash-xml-engine/document.d.ts +1 -1
  743. package/dist/safe-bash-xml-engine/document.js +3 -3
  744. package/dist/safe-bash-xml-engine/evaluate.d.ts +1 -0
  745. package/dist/safe-bash-xml-engine/evaluate.js +4 -1
  746. package/dist/safe-bash-xml-engine/index.js +8 -6
  747. package/dist/safe-bash-xml-engine/io.js +1 -1
  748. package/dist/safe-bash-xml-engine/limits.d.ts +2 -0
  749. package/dist/safe-bash-xml-engine/limits.js +1 -1
  750. package/dist/safe-bash-xml-engine/predicate.d.ts +57 -0
  751. package/dist/safe-bash-xml-engine/query.d.ts +3 -15
  752. package/dist/safe-bash-xml-engine/query.js +3 -2
  753. package/dist/safe-bash-zip-engine/LICENSE +21 -0
  754. package/dist/safe-bash-zip-engine/index.d.ts +1 -0
  755. package/dist/safe-bash-zip-engine/index.js +32 -0
  756. package/dist/safe-bash-zip-engine/unzip/arguments.d.ts +53 -0
  757. package/dist/safe-bash-zip-engine/unzip/arguments.js +270 -0
  758. package/dist/safe-bash-zip-engine/zip/aes.d.ts +17 -0
  759. package/dist/safe-bash-zip-engine/zip/aes.js +15 -0
  760. package/dist/safe-bash-zip-engine/zip/comments.d.ts +17 -0
  761. package/dist/safe-bash-zip-engine/zip/comments.js +77 -0
  762. package/dist/safe-bash-zip-engine/zip/crc.d.ts +1 -0
  763. package/dist/safe-bash-zip-engine/zip/crc.js +7 -0
  764. package/dist/safe-bash-zip-engine/zip/crypto.d.ts +19 -0
  765. package/dist/safe-bash-zip-engine/zip/crypto.js +16 -0
  766. package/dist/safe-bash-zip-engine/zip/dates.d.ts +4 -0
  767. package/dist/safe-bash-zip-engine/zip/dates.js +68 -0
  768. package/dist/safe-bash-zip-engine/zip/environment.d.ts +2 -0
  769. package/dist/safe-bash-zip-engine/zip/environment.js +60 -0
  770. package/dist/safe-bash-zip-engine/zip/grow.d.ts +3 -0
  771. package/dist/safe-bash-zip-engine/zip/grow.js +7 -0
  772. package/dist/safe-bash-zip-engine/zip/help.d.ts +4 -0
  773. package/dist/safe-bash-zip-engine/zip/help.js +194 -0
  774. package/dist/safe-bash-zip-engine/zip/line-endings.d.ts +2 -0
  775. package/dist/safe-bash-zip-engine/zip/line-endings.js +165 -0
  776. package/dist/safe-bash-zip-engine/zip/log.d.ts +22 -0
  777. package/dist/safe-bash-zip-engine/zip/log.js +153 -0
  778. package/dist/safe-bash-zip-engine/zip/lzma.d.ts +9 -0
  779. package/dist/safe-bash-zip-engine/zip/lzma.js +7 -0
  780. package/dist/safe-bash-zip-engine/zip/move.d.ts +11 -0
  781. package/dist/safe-bash-zip-engine/zip/move.js +57 -0
  782. package/dist/safe-bash-zip-engine/zip/names.d.ts +2 -0
  783. package/dist/safe-bash-zip-engine/zip/names.js +37 -0
  784. package/dist/safe-bash-zip-engine/zip/options.d.ts +13 -0
  785. package/dist/safe-bash-zip-engine/zip/options.js +23 -0
  786. package/dist/safe-bash-zip-engine/zip/repair.d.ts +10 -0
  787. package/dist/safe-bash-zip-engine/zip/repair.js +348 -0
  788. package/dist/safe-bash-zip-engine/zip/safety.d.ts +54 -0
  789. package/dist/safe-bash-zip-engine/zip/safety.js +19 -0
  790. package/dist/safe-bash-zip-engine/zip/sfx.d.ts +4 -0
  791. package/dist/safe-bash-zip-engine/zip/sfx.js +58 -0
  792. package/dist/safe-bash-zip-engine/zip/test-command.d.ts +5 -0
  793. package/dist/safe-bash-zip-engine/zip/test-command.js +98 -0
  794. package/dist/safe-bash-zip-engine/zip/volumes.d.ts +21 -0
  795. package/dist/safe-bash-zip-engine/zip/volumes.js +255 -0
  796. package/dist/safe-bash-zip-engine/zip/zip64.d.ts +30 -0
  797. package/dist/safe-bash-zip-engine/zip/zip64.js +25 -0
  798. package/dist/safe-bash-zip-engine/zip-format.d.ts +68 -0
  799. package/dist/safe-bash-zip-engine/zip-format.js +27 -0
  800. package/dist/safe-playwright-cloudflare/browser-codegen.generated.d.ts +7 -7
  801. package/dist/safe-playwright-cloudflare/browser-codegen.generated.js +866 -8069
  802. package/dist/safe-playwright-cloudflare/browser-run-code-budget.d.ts +0 -1
  803. package/dist/safe-playwright-cloudflare/browser-run-code-budget.js +0 -2
  804. package/dist/safe-playwright-cloudflare/browser-trace-archive.d.ts +5 -1
  805. package/dist/safe-playwright-cloudflare/browser-trace-archive.js +2 -1
  806. package/dist/safe-playwright-cloudflare/browser-trace-budget.js +2 -2
  807. package/dist/safe-playwright-cloudflare/shell-browser-resource.d.ts +2 -0
  808. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +3 -11
  809. package/dist/safe-playwright-cloudflare/shell-playwright.d.ts +2 -0
  810. package/dist/safe-playwright-cloudflare/shell-playwright.js +1 -1
  811. package/dist/spreadsheet-engine/io/publication.d.ts +1 -0
  812. package/package.json +163 -14
  813. package/dist/safe-bash/chunks/chunk-AZAJJVFX.js +0 -23017
  814. package/dist/safe-bash/chunks/chunk-O4ZUCRGN.js +0 -13
  815. package/dist/safe-bash/chunks/chunk-S264DZO2.js +0 -243
  816. package/dist/safe-bash/chunks/chunk-WVG5SHHQ.js +0 -12
  817. package/dist/safe-bash/chunks/chunk-ZW6K2J7P.js +0 -2652
  818. package/dist/safe-bash/command-chunks/chunk-5MPOQ6V3.js +0 -181
  819. package/dist/safe-bash/command-chunks/chunk-BIXLZ3OG.js +0 -14342
  820. package/dist/safe-bash/command-chunks/chunk-DUYJE2HY.js +0 -14
  821. package/dist/safe-bash/command-chunks/chunk-NETECMOF.js +0 -40
  822. package/dist/safe-bash/command-chunks/chunk-XS3PGJU2.js +0 -343
  823. package/dist/safe-bash/command-chunks/chunk-XTZALMLR.js +0 -488
  824. package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.d.ts +0 -2
  825. package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.js +0 -3
  826. package/dist/safe-bash/commands/archive/zip/aes-primitives.d.ts +0 -2
  827. package/dist/safe-bash/commands/archive/zip/aes-primitives.js +0 -3
  828. package/dist/safe-bash/commands/xml/document.d.ts +0 -2
  829. package/dist/safe-bash/commands/xml/document.js +0 -2
  830. package/dist/safe-bash/commands/xml/evaluate.d.ts +0 -2
  831. package/dist/safe-bash/commands/xml/evaluate.js +0 -2
  832. package/dist/safe-bash/commands/xml/json.d.ts +0 -2
  833. package/dist/safe-bash/commands/xml/json.js +0 -2
  834. package/dist/safe-bash/commands/xml/limits.d.ts +0 -2
  835. package/dist/safe-bash/commands/xml/limits.js +0 -2
  836. package/dist/safe-bash/commands/xml/query.d.ts +0 -2
  837. package/dist/safe-bash/commands/xml/query.js +0 -2
  838. package/dist/safe-bash/chunks/{chunk-NHOXKQNE.js → chunk-QVSRRNZT.js} +3 -3
  839. package/dist/safe-bash/command-chunks/{chunk-FIUFIDAO.js → chunk-2JRBIDAD.js} +3 -3
  840. package/dist/safe-bash/command-chunks/{chunk-B5BKA5WH.js → chunk-B5TAOCKD.js} +3 -3
  841. package/dist/safe-bash/command-chunks/{chunk-TYVCKQDH.js → chunk-J5SN3PZ3.js} +3 -3
  842. package/dist/safe-bash/command-chunks/{chunk-2ENZ6JGA.js → chunk-KEV7C3KH.js} +3 -3
  843. package/dist/safe-bash/command-chunks/{chunk-S62HELHU.js → chunk-PL6O4K6W.js} +3 -3
  844. package/dist/safe-bash/command-chunks/{chunk-2WRTLCGK.js → chunk-QZF3SINC.js} +4 -4
  845. package/dist/safe-bash/command-chunks/{chunk-X7TM3AKW.js → chunk-U6G67N23.js} +3 -3
  846. package/dist/safe-bash/command-chunks/{chunk-DDLQ5YDB.js → chunk-YHFXOX6U.js} +9 -9
  847. 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
+ };