@poe-platform/safe-bash 0.1.800 → 0.1.801

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 (459) hide show
  1. package/README.md +16 -5
  2. package/dist/image-ast/index.browser.js +119 -75
  3. package/dist/image-ast/index.js +119 -75
  4. package/dist/pdf-ast/index.js +4 -3
  5. package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
  6. package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
  7. package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-45PK3NWI.js} +4 -4
  8. package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
  9. package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
  10. package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
  11. package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
  12. package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-7VNF5BFF.js} +300 -737
  14. package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-A7XEHALN.js} +4 -4
  15. package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
  18. package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
  19. package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
  20. package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
  23. package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
  24. package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
  25. package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-FNDNHAGE.js} +30 -23
  26. package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
  27. package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-ICFDYV64.js} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-IVRQ4BXL.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
  32. package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
  33. package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
  34. package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-NR3EM4LS.js} +1 -1
  35. package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
  36. package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
  38. package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-PQRAK7HU.js} +920 -432
  39. package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-SZH7EJLD.js} +116 -697
  40. package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
  41. package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
  42. package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
  43. package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-VQDD3G76.js} +42 -25
  44. package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
  45. package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
  46. package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
  47. package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
  48. package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
  49. package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
  50. package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
  51. package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
  52. package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
  53. package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
  54. package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
  55. package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
  56. package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
  57. package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
  58. package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
  59. package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
  60. package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
  61. package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
  62. package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
  63. package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
  64. package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
  65. package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
  66. package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
  67. package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
  68. package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
  69. package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
  70. package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
  71. package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
  72. package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
  73. package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
  74. package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
  75. package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
  76. package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
  77. package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
  78. package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
  79. package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
  80. package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
  81. package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
  82. package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
  83. package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
  84. package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
  85. package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
  86. package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
  87. package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
  88. package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
  89. package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
  90. package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
  91. package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
  92. package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
  93. package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
  94. package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
  95. package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-CZ7EN3JG.js} +1 -1
  96. package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
  97. package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
  98. package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
  99. package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-F6OYH562.js} +2 -0
  100. package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
  101. package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
  102. package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
  103. package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
  104. package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
  105. package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
  106. package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
  107. package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
  108. package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
  109. package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
  110. package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
  111. package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
  112. package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
  113. package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
  114. package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
  115. package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
  116. package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
  117. package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
  118. package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
  119. package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
  120. package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
  121. package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
  122. package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
  123. package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
  124. package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
  125. package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
  126. package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
  127. package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
  128. package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
  129. package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
  130. package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-PCEFOYA3.js} +237 -145
  131. package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
  133. package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
  134. package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
  135. package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
  136. package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
  137. package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
  138. package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
  139. package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
  140. package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
  141. package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
  142. package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
  143. package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-TNOA7FCQ.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
  145. package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
  146. package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
  147. package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
  148. package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
  149. package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
  150. package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
  151. package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
  152. package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
  153. package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
  154. package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
  155. package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
  156. package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
  157. package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
  158. package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
  159. package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
  160. package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
  161. package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
  162. package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
  163. package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
  164. package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
  165. package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
  166. package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
  167. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  168. package/dist/safe-bash/commands/docx/index.browser.js +1 -1
  169. package/dist/safe-bash/commands/execution.js +19 -13
  170. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  171. package/dist/safe-bash/commands/filesystem.d.ts +1 -1
  172. package/dist/safe-bash/commands/filesystem.js +17 -13
  173. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  174. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  175. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
  176. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  177. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  178. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  179. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  180. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  181. package/dist/safe-bash/commands/media/index.browser.js +1 -1
  182. package/dist/safe-bash/commands/network/curl.d.ts +1 -1
  183. package/dist/safe-bash/commands/network/curl.js +1 -3
  184. package/dist/safe-bash/commands/network/index.browser.js +4 -4
  185. package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
  186. package/dist/safe-bash/commands/network/platform-portable.js +1 -26
  187. package/dist/safe-bash/commands/network/public.d.ts +2 -2
  188. package/dist/safe-bash/commands/network/public.js +2 -2
  189. package/dist/safe-bash/commands/network/transport.js +2 -2
  190. package/dist/safe-bash/commands/network/wget.d.ts +1 -1
  191. package/dist/safe-bash/commands/network/wget.js +1 -3
  192. package/dist/safe-bash/commands/node/filesystem.js +3 -2
  193. package/dist/safe-bash/commands/node/index.browser.js +8 -8
  194. package/dist/safe-bash/commands/node/types.js +1 -1
  195. package/dist/safe-bash/commands/op/index.browser.js +3 -3
  196. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  197. package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
  198. package/dist/safe-bash/commands/python/index.browser.js +11 -11
  199. package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
  200. package/dist/safe-bash/commands/python/manifest.js +6 -3
  201. package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
  202. package/dist/safe-bash/commands/python/shell-capability.js +3 -2
  203. package/dist/safe-bash/commands/python/worker.browser.js +3 -3
  204. package/dist/safe-bash/commands/regex-execution/public.browser.js +4 -4
  205. package/dist/safe-bash/commands/safejs/runtime.js +16 -7
  206. package/dist/safe-bash/commands/standard.d.ts +1 -0
  207. package/dist/safe-bash/commands/standard.js +2 -1
  208. package/dist/safe-bash/commands/streams.js +6 -24
  209. package/dist/safe-bash/commands/text.js +268 -364
  210. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  211. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  212. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  213. package/dist/safe-bash/core.browser.js +1 -1
  214. package/dist/safe-bash/core.d.ts +6 -1
  215. package/dist/safe-bash/core.js +1 -1
  216. package/dist/safe-bash/full-core.browser.js +108 -104
  217. package/dist/safe-bash/jobs.browser.js +5 -5
  218. package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
  219. package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
  220. package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
  221. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
  222. package/dist/safe-bash/optional-host.browser.js +11 -11
  223. package/dist/safe-bash/plugins/composition.d.ts +1 -0
  224. package/dist/safe-bash/plugins/composition.js +3 -8
  225. package/dist/safe-bash/plugins/index.browser.js +27 -27
  226. package/dist/safe-bash/registry-entry.browser.js +28 -28
  227. package/dist/safe-bash/shell/arrays/bindings.js +1 -1
  228. package/dist/safe-bash/shell/arrays/state.js +4 -0
  229. package/dist/safe-bash/shell/brace-expansion.js +1 -1
  230. package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
  231. package/dist/safe-bash/shell/dynamic-variables.js +25 -0
  232. package/dist/safe-bash/shell/parser.js +8 -1
  233. package/dist/safe-bash/shell/runtime.d.ts +4 -4
  234. package/dist/safe-bash/shell/runtime.js +291 -741
  235. package/dist/safe-bash/shell/shell.js +2 -31
  236. package/dist/safe-bash/shell-entry.browser.js +25 -25
  237. package/dist/safe-bash/trap.browser.js +4 -4
  238. package/dist/safe-bash/yq-browser/index.js +1 -1
  239. package/dist/safe-bash-base-encoding-engine/base.js +2 -2
  240. package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
  241. package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
  242. package/dist/safe-bash-byte-input-engine/index.js +4 -1
  243. package/dist/safe-bash-checksum-engine/index.js +13 -6
  244. package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
  245. package/dist/safe-bash-command-apply-patch/apply.js +4 -3
  246. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  247. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  248. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  249. package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
  250. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  251. package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
  252. package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
  253. package/dist/safe-bash-command-awk/awk-values.js +1 -1
  254. package/dist/safe-bash-command-awk/awk.js +5 -5
  255. package/dist/safe-bash-command-awk/index.js +5 -5
  256. package/dist/safe-bash-command-bc/index.d.ts +2 -0
  257. package/dist/safe-bash-command-bc/index.js +123 -92
  258. package/dist/safe-bash-command-column/column.js +5 -5
  259. package/dist/safe-bash-command-column/display.d.ts +1 -1
  260. package/dist/safe-bash-command-column/display.js +1 -1
  261. package/dist/safe-bash-command-column/index.js +5 -5
  262. package/dist/safe-bash-command-column/internal.d.ts +0 -2
  263. package/dist/safe-bash-command-column/internal.js +1 -1
  264. package/dist/safe-bash-command-column/layout.js +4 -4
  265. package/dist/safe-bash-command-column/table.js +2 -2
  266. package/dist/safe-bash-command-comm/comm.js +1 -1
  267. package/dist/safe-bash-command-comm/index.js +1 -1
  268. package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
  269. package/dist/safe-bash-command-csvcut/index.js +1 -0
  270. package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
  271. package/dist/safe-bash-command-csvgrep/index.js +2 -2
  272. package/dist/safe-bash-command-csvkit/index.js +9 -9
  273. package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
  274. package/dist/safe-bash-command-curl/curl.js +1 -1
  275. package/dist/safe-bash-command-curl/index.js +1 -1
  276. package/dist/safe-bash-command-dd/index.js +2 -0
  277. package/dist/safe-bash-command-diff/diff.js +1 -1
  278. package/dist/safe-bash-command-diff/index.js +1 -1
  279. package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
  280. package/dist/safe-bash-command-fd/index.js +9 -9
  281. package/dist/safe-bash-command-ffmpeg/index.js +31 -8
  282. package/dist/safe-bash-command-file/index.js +1 -1
  283. package/dist/safe-bash-command-file/shared.js +1 -1
  284. package/dist/safe-bash-command-find/find.js +1 -1
  285. package/dist/safe-bash-command-find/index.js +1 -1
  286. package/dist/safe-bash-command-gzip/index.js +3 -2
  287. package/dist/safe-bash-command-hexdump/command.js +4 -4
  288. package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
  289. package/dist/safe-bash-command-hexdump/index.js +4 -4
  290. package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
  291. package/dist/safe-bash-command-hexdump/internal.js +1 -1
  292. package/dist/safe-bash-command-hexdump/io.js +2 -2
  293. package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
  294. package/dist/safe-bash-command-hexdump/options.js +2 -2
  295. package/dist/safe-bash-command-hostname/index.js +1 -1
  296. package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
  297. package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
  298. package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
  299. package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
  300. package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
  301. package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
  302. package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
  303. package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
  304. package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
  305. package/dist/safe-bash-command-htmlq/index.js +27 -9
  306. package/dist/safe-bash-command-iconv/codec.js +1 -1
  307. package/dist/safe-bash-command-iconv/command.js +2 -2
  308. package/dist/safe-bash-command-iconv/index.js +2 -2
  309. package/dist/safe-bash-command-imagemagick/index.js +24 -6
  310. package/dist/safe-bash-command-join/index.js +1 -1
  311. package/dist/safe-bash-command-join/join.js +1 -1
  312. package/dist/safe-bash-command-jq/index.js +1 -1
  313. package/dist/safe-bash-command-jq/jq.js +1 -1
  314. package/dist/safe-bash-command-less/index.js +43 -28
  315. package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
  316. package/dist/safe-bash-command-numfmt/index.js +0 -11
  317. package/dist/safe-bash-command-od/index.js +101 -68
  318. package/dist/safe-bash-command-pandoc/command.js +1 -1
  319. package/dist/safe-bash-command-pandoc/index.js +1 -1
  320. package/dist/safe-bash-command-paste/index.js +1 -1
  321. package/dist/safe-bash-command-paste/paste.js +1 -1
  322. package/dist/safe-bash-command-pathchk/index.js +3 -13
  323. package/dist/safe-bash-command-pdfimages/index.js +27 -11
  324. package/dist/safe-bash-command-pdfinfo/index.js +19 -10
  325. package/dist/safe-bash-command-pdftk/index.js +3 -3
  326. package/dist/safe-bash-command-pdftoppm/index.js +26 -10
  327. package/dist/safe-bash-command-pdftotext/index.js +27 -13
  328. package/dist/safe-bash-command-qpdf/index.js +5 -5
  329. package/dist/safe-bash-command-sed/index.js +1 -1
  330. package/dist/safe-bash-command-sed/sed.js +1 -1
  331. package/dist/safe-bash-command-shuf/options.d.ts +1 -0
  332. package/dist/safe-bash-command-shuf/options.js +2 -4
  333. package/dist/safe-bash-command-shuf/shuf.js +2 -1
  334. package/dist/safe-bash-command-soffice/index.js +20 -16
  335. package/dist/safe-bash-command-split/index.js +3 -3
  336. package/dist/safe-bash-command-split/io.js +1 -1
  337. package/dist/safe-bash-command-split/outputs.js +2 -2
  338. package/dist/safe-bash-command-split/split.js +3 -3
  339. package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
  340. package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
  341. package/dist/safe-bash-command-sqlite3/index.js +284 -85
  342. package/dist/safe-bash-command-ssconvert/commands.js +9 -9
  343. package/dist/safe-bash-command-ssconvert/core.js +8 -8
  344. package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
  345. package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
  346. package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
  347. package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
  348. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
  349. package/dist/safe-bash-command-ssconvert/index.js +20 -20
  350. package/dist/safe-bash-command-tar/extract.js +1 -1
  351. package/dist/safe-bash-command-tar/index.js +5 -4
  352. package/dist/safe-bash-command-tar/modes.js +2 -2
  353. package/dist/safe-bash-command-tree/arguments.js +3 -3
  354. package/dist/safe-bash-command-tree/charset.js +1 -1
  355. package/dist/safe-bash-command-tree/index.js +4 -4
  356. package/dist/safe-bash-command-tree/io.js +1 -1
  357. package/dist/safe-bash-command-tree/pattern.js +2 -2
  358. package/dist/safe-bash-command-tree/tree.js +4 -4
  359. package/dist/safe-bash-command-unrtf/index.js +14 -7
  360. package/dist/safe-bash-command-unzip/index.js +1 -1
  361. package/dist/safe-bash-command-unzip/unzip.js +1 -1
  362. package/dist/safe-bash-command-wget/index.js +1 -1
  363. package/dist/safe-bash-command-wget/wget.js +1 -1
  364. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  365. package/dist/safe-bash-command-xan/argv.js +1 -1
  366. package/dist/safe-bash-command-xan/commands.js +5 -3
  367. package/dist/safe-bash-command-xan/csv.d.ts +1 -1
  368. package/dist/safe-bash-command-xan/csv.js +1 -1
  369. package/dist/safe-bash-command-xan/index.js +7 -7
  370. package/dist/safe-bash-command-xan/io.js +3 -3
  371. package/dist/safe-bash-command-xmllint/index.js +1 -1
  372. package/dist/safe-bash-command-xxd/index.js +105 -91
  373. package/dist/safe-bash-command-xz/command.d.ts +2 -0
  374. package/dist/safe-bash-command-xz/index.d.ts +1 -1
  375. package/dist/safe-bash-command-xz/index.js +8 -0
  376. package/dist/safe-bash-command-yq/query.js +1 -1
  377. package/dist/safe-bash-command-zip/index.js +1 -1
  378. package/dist/safe-bash-command-zip/zip.js +1 -1
  379. package/dist/safe-bash-contracts/escaping.js +3 -3
  380. package/dist/safe-bash-contracts/filesystem-output.js +2 -2
  381. package/dist/safe-bash-contracts/index.d.ts +1 -0
  382. package/dist/safe-bash-contracts/index.js +7 -3
  383. package/dist/safe-bash-contracts/io.d.ts +4 -1
  384. package/dist/safe-bash-contracts/io.js +3 -1
  385. package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
  386. package/dist/safe-bash-contracts/output.js +2 -2
  387. package/dist/safe-bash-diff-engine/index.js +1 -1
  388. package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
  389. package/dist/safe-bash-diff-engine/shared.js +1 -1
  390. package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
  391. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  392. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
  393. package/dist/safe-bash-io-engine/internal.js +1 -1
  394. package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
  395. package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
  396. package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
  397. package/dist/safe-bash-mcp/index.browser.js +416 -0
  398. package/dist/safe-bash-mcp/index.d.ts +54 -2
  399. package/dist/safe-bash-mcp/index.js +283 -89
  400. package/dist/safe-bash-network-engine/aggregate.js +2 -2
  401. package/dist/safe-bash-network-engine/args.js +4 -4
  402. package/dist/safe-bash-network-engine/authorizer.js +1 -1
  403. package/dist/safe-bash-network-engine/body.js +6 -6
  404. package/dist/safe-bash-network-engine/decode.d.ts +1 -1
  405. package/dist/safe-bash-network-engine/decode.js +3 -4
  406. package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
  407. package/dist/safe-bash-network-engine/form-content-type.js +2 -2
  408. package/dist/safe-bash-network-engine/form-headers.js +2 -2
  409. package/dist/safe-bash-network-engine/glob.js +1 -1
  410. package/dist/safe-bash-network-engine/index.js +4 -4
  411. package/dist/safe-bash-network-engine/input.js +6 -6
  412. package/dist/safe-bash-network-engine/output.js +2 -2
  413. package/dist/safe-bash-network-engine/platform-portable.js +3 -3
  414. package/dist/safe-bash-network-engine/shared.js +2 -2
  415. package/dist/safe-bash-network-engine/types.d.ts +7 -2
  416. package/dist/safe-bash-network-engine/types.js +1 -1
  417. package/dist/safe-bash-network-engine/url.js +2 -2
  418. package/dist/safe-bash-query-engine/capture.js +3 -3
  419. package/dist/safe-bash-query-engine/delpaths.js +3 -3
  420. package/dist/safe-bash-query-engine/formats.js +2 -2
  421. package/dist/safe-bash-query-engine/index.js +11 -11
  422. package/dist/safe-bash-query-engine/indices.js +3 -3
  423. package/dist/safe-bash-query-engine/input.js +1 -1
  424. package/dist/safe-bash-query-engine/interpreter.js +9 -9
  425. package/dist/safe-bash-query-engine/parser.js +1 -1
  426. package/dist/safe-bash-query-engine/query-core.js +11 -11
  427. package/dist/safe-bash-query-engine/regex.js +4 -4
  428. package/dist/safe-bash-query-engine/splits.js +5 -5
  429. package/dist/safe-bash-query-engine/values.js +2 -2
  430. package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
  431. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
  432. package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
  433. package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
  434. package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
  435. package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
  436. package/dist/safe-bash-regex-engine/index.js +6 -4
  437. package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -0
  438. package/dist/safe-bash-regex-engine/text/budget.js +1 -1
  439. package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
  440. package/dist/safe-bash-regex-engine/text/regex.js +6 -4
  441. package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
  442. package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
  443. package/dist/safe-bash-search-engine/grep.js +189 -227
  444. package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
  445. package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
  446. package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
  447. package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
  448. package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
  449. package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
  450. package/dist/spreadsheet-engine/formulas/parser.js +3 -1
  451. package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
  452. package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
  453. package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
  454. package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
  455. package/dist/spreadsheet-format-xls/biff.js +1 -1
  456. package/dist/xlsx-ast/xlsx.js +8 -5
  457. package/package.json +9 -8
  458. package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
  459. /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
@@ -6,10 +6,10 @@ import {
6
6
  outputOperation,
7
7
  preflight,
8
8
  publish
9
- } from "../safe-bash/command-chunks/chunk-VL67NWNS.js";
10
- import "../safe-bash/command-chunks/chunk-QI7LGHJJ.js";
9
+ } from "../safe-bash/command-chunks/chunk-JDYXY44P.js";
10
+ import "../safe-bash/command-chunks/chunk-Z45N42QC.js";
11
11
  import "../safe-bash/command-chunks/chunk-HEYKESED.js";
12
- import "../safe-bash/command-chunks/chunk-QUENU6GM.js";
12
+ import "../safe-bash/command-chunks/chunk-E55UKBIE.js";
13
13
  import "../safe-bash/command-chunks/chunk-QOKBZFFD.js";
14
14
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
15
15
  export {
@@ -266,7 +266,7 @@ async function execute(context, limits, runtime) {
266
266
  let writesCount = 0;
267
267
  async function flushWrite() {
268
268
  if (outBatchUsed > 0) {
269
- const slice = outBatch.subarray(0, outBatchUsed);
269
+ const slice = outBatch.slice(0, outBatchUsed);
270
270
  outBatchUsed = 0;
271
271
  writesCount++;
272
272
  try {
@@ -20,6 +20,8 @@ var blockSize = 8192;
20
20
  var controls = { 8: "\\b", 9: "\\t", 10: "\\n", 11: "\\v", 12: "\\f", 13: "\\r", 92: "\\\\" };
21
21
  var UsageError = class extends PublicDiagnostic {
22
22
  };
23
+ var SeekError = class extends PublicDiagnostic {
24
+ };
23
25
  function publicDiagnosticMessage(error, onInternalError) {
24
26
  if (error instanceof FsError || error instanceof CommandArgumentIdentityError) return error.message;
25
27
  if (error instanceof PublicDiagnostic && !Object.hasOwn(error, "cause")) return error.message;
@@ -207,7 +209,7 @@ async function* sources(context, operands, maxInputBytes) {
207
209
  }
208
210
  }
209
211
  }
210
- async function* range(source, skip, count) {
212
+ async function* range(source, skip, count, seekable) {
211
213
  if (!skip && !count) return;
212
214
  for await (const chunk of source) {
213
215
  const skipped = Math.min(skip, chunk.length);
@@ -219,7 +221,7 @@ async function* range(source, skip, count) {
219
221
  }
220
222
  if (!skip && !count) return;
221
223
  }
222
- if (skip) throw new PublicDiagnostic("cannot skip past end of input");
224
+ if (skip && !seekable) throw new SeekError("Sorry, cannot seek.");
223
225
  }
224
226
  async function* rows(source, width) {
225
227
  const row = new Uint8Array(width);
@@ -307,7 +309,7 @@ async function reversePlain(context, files, maxInputBytes, seek) {
307
309
  async function reverseNormal(context, files, columns, maxInputBytes, seek) {
308
310
  let line = "";
309
311
  let offset = 0;
310
- const outBuf = new Uint8Array(8192);
312
+ const outBuf = new Uint8Array(Math.max(8192, columns));
311
313
  let outUsed = 0;
312
314
  let flushedFirst = false;
313
315
  const flushOut = async () => {
@@ -366,45 +368,48 @@ async function reverseNormal(context, files, columns, maxInputBytes, seek) {
366
368
  offset = addOffset(offset, count);
367
369
  return count;
368
370
  };
369
- for await (const chunk of sources(context, files, maxInputBytes)) {
370
- let start = 0;
371
- while (start < chunk.length) {
372
- const nl = chunk.indexOf(10, start);
373
- if (nl < 0) {
374
- for (let i = start; i < chunk.length; i++) line += String.fromCharCode(chunk[i]);
375
- break;
376
- }
377
- let count = 0;
378
- if (line.length === 0) {
379
- count = await parseLineBytesInto(chunk, start, nl);
380
- } else {
381
- for (let i = start; i < nl; i++) line += String.fromCharCode(chunk[i]);
382
- const lineBytes = new Uint8Array(line.length);
383
- for (let i = 0; i < line.length; i++) lineBytes[i] = line.charCodeAt(i);
384
- line = "";
385
- count = await parseLineBytesInto(lineBytes, 0, lineBytes.length);
371
+ try {
372
+ for await (const chunk of sources(context, files, maxInputBytes)) {
373
+ let start = 0;
374
+ while (start < chunk.length) {
375
+ const nl = chunk.indexOf(10, start);
376
+ if (nl < 0) {
377
+ for (let i = start; i < chunk.length; i++) line += String.fromCharCode(chunk[i]);
378
+ break;
379
+ }
380
+ let count = 0;
381
+ if (line.length === 0) {
382
+ count = await parseLineBytesInto(chunk, start, nl);
383
+ } else {
384
+ for (let i = start; i < nl; i++) line += String.fromCharCode(chunk[i]);
385
+ const lineBytes = new Uint8Array(line.length);
386
+ for (let i = 0; i < line.length; i++) lineBytes[i] = line.charCodeAt(i);
387
+ line = "";
388
+ count = await parseLineBytesInto(lineBytes, 0, lineBytes.length);
389
+ }
390
+ start = nl + 1;
391
+ if (count > 0) {
392
+ if (outUsed + count > outBuf.length) await flushOut();
393
+ outBuf.set(rowScratch.subarray(0, count), outUsed);
394
+ outUsed += count;
395
+ if (!flushedFirst || outUsed >= outBuf.length) await flushOut();
396
+ }
386
397
  }
387
- start = nl + 1;
398
+ if (outUsed > 0) await flushOut();
399
+ }
400
+ if (line) {
401
+ const lineBytes = new Uint8Array(line.length);
402
+ for (let i = 0; i < line.length; i++) lineBytes[i] = line.charCodeAt(i);
403
+ const count = await parseLineBytesInto(lineBytes, 0, lineBytes.length);
388
404
  if (count > 0) {
389
405
  if (outUsed + count > outBuf.length) await flushOut();
390
406
  outBuf.set(rowScratch.subarray(0, count), outUsed);
391
407
  outUsed += count;
392
- if (!flushedFirst || outUsed >= outBuf.length) await flushOut();
393
408
  }
394
409
  }
395
- if (outUsed > 0) await flushOut();
396
- }
397
- if (line) {
398
- const lineBytes = new Uint8Array(line.length);
399
- for (let i = 0; i < line.length; i++) lineBytes[i] = line.charCodeAt(i);
400
- const count = await parseLineBytesInto(lineBytes, 0, lineBytes.length);
401
- if (count > 0) {
402
- if (outUsed + count > outBuf.length) await flushOut();
403
- outBuf.set(rowScratch.subarray(0, count), outUsed);
404
- outUsed += count;
405
- }
410
+ } finally {
411
+ await flushOut();
406
412
  }
407
- await flushOut();
408
413
  }
409
414
  function defineCommand(name, handler) {
410
415
  return {
@@ -421,7 +426,7 @@ function defineCommand(name, handler) {
421
426
  `,
422
427
  context.signal
423
428
  );
424
- return { exitCode: error instanceof UsageError ? 2 : 1 };
429
+ return { exitCode: error instanceof UsageError || error instanceof FsError && error.code === "ENOENT" ? 2 : error instanceof SeekError ? 4 : 1 };
425
430
  }
426
431
  }
427
432
  };
@@ -476,7 +481,7 @@ function createXxdCommand(optionsOrMaxBytes) {
476
481
  "c",
477
482
  (text) => {
478
483
  const number = numeric(text);
479
- if (!plain && number < 1) throw new UsageError("columns must be positive (plain: nonnegative)");
484
+ if (!plain && number === 0) return include ? 12 : binary ? 6 : 16;
480
485
  return number;
481
486
  },
482
487
  plain ? 30 : include ? 12 : binary ? 6 : 16
@@ -511,10 +516,11 @@ function createXxdCommand(optionsOrMaxBytes) {
511
516
  if (skip < 0) {
512
517
  if (!files[0] || files[0] === "-") throw new UsageError("negative seek requires an input file");
513
518
  const size = (await context.fs.stat(pathOf(context, files[0]), { signal: context.signal })).size;
514
- skip = Math.max(0, size + skip);
519
+ skip = size + skip;
520
+ if (skip < 0) throw new SeekError("Sorry, cannot seek.");
515
521
  }
516
522
  let offset = addOffset(skip, displacement);
517
- const source = range(input, skip, count);
523
+ const source = range(input, skip, count, files.length > 0 && files[0] !== "-");
518
524
  let any = false;
519
525
  let includeLength = 0;
520
526
  let includeRow = "";
@@ -548,8 +554,8 @@ function createXxdCommand(optionsOrMaxBytes) {
548
554
  outBuf += text;
549
555
  if (!flushedFirst || outBuf.length >= 16384) await flushOut();
550
556
  };
551
- if (include && includeName !== void 0) await writeOut(`unsigned char ${identifier}[] = {
552
- `);
557
+ if (include && includeName !== void 0) outBuf = `unsigned char ${identifier}[] = {
558
+ `;
553
559
  const rowWidth = plain && !columns ? 4096 : columns;
554
560
  let zeroRun = 0;
555
561
  let zeroSecond = "", zeroLast = "";
@@ -559,64 +565,72 @@ function createXxdCommand(optionsOrMaxBytes) {
559
565
  else if (zeroRun === 2) outBuf += zeroLast;
560
566
  zeroRun = 0;
561
567
  };
562
- for await (const batch of rows(source, rowWidth)) {
563
- any = true;
564
- for (let rowStart = 0; rowStart < batch.length; rowStart += rowWidth) {
565
- const row = batch.subarray(rowStart, Math.min(batch.length, rowStart + rowWidth));
566
- if (include) {
567
- if (includeRow) outBuf += includeRow + ",\n";
568
- const includePrefix = upper ? "0X" : "0x";
569
- includeRow = " " + Array.from(row, (byte) => includePrefix + hexTable[byte]).join(", ");
570
- includeLength = addOffset(includeLength, row.length);
571
- if (!flushedFirst && outBuf || outBuf.length >= 16384) await flushOut();
572
- continue;
573
- }
574
- if (!parsed.flags.has("a") && !plain && !littleEndian && !binary && columns === 16 && group === 2 && row.length === 16) {
575
- const b0 = row[0], b1 = row[1], b2 = row[2], b3 = row[3];
576
- const b4 = row[4], b5 = row[5], b6 = row[6], b7 = row[7];
577
- const b8 = row[8], b9 = row[9], b10 = row[10], b11 = row[11];
578
- const b12 = row[12], b13 = row[13], b14 = row[14], b15 = row[15];
579
- const address = offset.toString(decimalAddress ? 10 : 16).padStart(8, "0");
580
- outBuf += `${address}: ${hexTable[b0]}${hexTable[b1]} ${hexTable[b2]}${hexTable[b3]} ${hexTable[b4]}${hexTable[b5]} ${hexTable[b6]}${hexTable[b7]} ${hexTable[b8]}${hexTable[b9]} ${hexTable[b10]}${hexTable[b11]} ${hexTable[b12]}${hexTable[b13]} ${hexTable[b14]}${hexTable[b15]} ${ASCII_CHAR[b0]}${ASCII_CHAR[b1]}${ASCII_CHAR[b2]}${ASCII_CHAR[b3]}${ASCII_CHAR[b4]}${ASCII_CHAR[b5]}${ASCII_CHAR[b6]}${ASCII_CHAR[b7]}${ASCII_CHAR[b8]}${ASCII_CHAR[b9]}${ASCII_CHAR[b10]}${ASCII_CHAR[b11]}${ASCII_CHAR[b12]}${ASCII_CHAR[b13]}${ASCII_CHAR[b14]}${ASCII_CHAR[b15]}
568
+ try {
569
+ for await (const batch of rows(source, rowWidth)) {
570
+ any = true;
571
+ for (let rowStart = 0; rowStart < batch.length; rowStart += rowWidth) {
572
+ const row = batch.subarray(rowStart, Math.min(batch.length, rowStart + rowWidth));
573
+ if (include) {
574
+ if (includeRow) outBuf += includeRow + ",\n";
575
+ const includePrefix = upper ? "0X" : "0x";
576
+ includeRow = " " + Array.from(row, (byte) => includePrefix + hexTable[byte]).join(", ");
577
+ includeLength = addOffset(includeLength, row.length);
578
+ if (!flushedFirst && outBuf || outBuf.length >= 16384) await flushOut();
579
+ continue;
580
+ }
581
+ if (!parsed.flags.has("a") && !plain && !littleEndian && !binary && columns === 16 && group === 2 && row.length === 16) {
582
+ const b0 = row[0], b1 = row[1], b2 = row[2], b3 = row[3];
583
+ const b4 = row[4], b5 = row[5], b6 = row[6], b7 = row[7];
584
+ const b8 = row[8], b9 = row[9], b10 = row[10], b11 = row[11];
585
+ const b12 = row[12], b13 = row[13], b14 = row[14], b15 = row[15];
586
+ const address = offset.toString(decimalAddress ? 10 : 16).padStart(8, "0");
587
+ outBuf += `${address}: ${hexTable[b0]}${hexTable[b1]} ${hexTable[b2]}${hexTable[b3]} ${hexTable[b4]}${hexTable[b5]} ${hexTable[b6]}${hexTable[b7]} ${hexTable[b8]}${hexTable[b9]} ${hexTable[b10]}${hexTable[b11]} ${hexTable[b12]}${hexTable[b13]} ${hexTable[b14]}${hexTable[b15]} ${ASCII_CHAR[b0]}${ASCII_CHAR[b1]}${ASCII_CHAR[b2]}${ASCII_CHAR[b3]}${ASCII_CHAR[b4]}${ASCII_CHAR[b5]}${ASCII_CHAR[b6]}${ASCII_CHAR[b7]}${ASCII_CHAR[b8]}${ASCII_CHAR[b9]}${ASCII_CHAR[b10]}${ASCII_CHAR[b11]}${ASCII_CHAR[b12]}${ASCII_CHAR[b13]}${ASCII_CHAR[b14]}${ASCII_CHAR[b15]}
581
588
  `;
582
- offset = addOffset(offset, 16);
583
- if (!flushedFirst || outBuf.length >= 16384) await flushOut();
584
- continue;
585
- }
586
- let data = "";
587
- let ascii = "";
588
- for (let index = 0; index < row.length; index++) {
589
- if (!plain && !littleEndian && group && index && index % group === 0) data += " ";
590
- const byte = row[index];
591
- if (!littleEndian) data += byteTable[byte];
592
- if (!plain) ascii += ASCII_CHAR[byte];
593
- }
594
- if (littleEndian) {
595
- for (let start = 0; start < row.length; start += octets) {
596
- if (start) data += " ";
597
- for (let index = start + octets - 1; index >= start; index--) {
598
- data += index < row.length ? hexTable[row[index]] : " ";
589
+ offset = addOffset(offset, 16);
590
+ if (!flushedFirst || outBuf.length >= 16384) await flushOut();
591
+ continue;
592
+ }
593
+ let data = "";
594
+ let ascii = "";
595
+ for (let index = 0; index < row.length; index++) {
596
+ if (!plain && !littleEndian && group && index && index % group === 0) data += " ";
597
+ const byte = row[index];
598
+ if (!littleEndian) data += byteTable[byte];
599
+ if (!plain) ascii += ASCII_CHAR[byte];
600
+ }
601
+ if (littleEndian) {
602
+ for (let start = 0; start < row.length; start += octets) {
603
+ if (start) data += " ";
604
+ for (let index = start + octets - 1; index >= start; index--) {
605
+ data += index < row.length ? hexTable[row[index]] : " ";
606
+ }
599
607
  }
600
608
  }
601
- }
602
- if (plain) outBuf += data + (columns ? "\n" : "");
603
- else {
604
- const address = offset.toString(decimalAddress ? 10 : 16).padStart(8, "0");
605
- const formatted = `${address}: ${data.padEnd(width)} ${ascii}
609
+ if (plain) outBuf += data + (columns ? "\n" : "");
610
+ else {
611
+ const address = offset.toString(decimalAddress ? 10 : 16).padStart(8, "0");
612
+ const formatted = `${address}: ${data.padEnd(width)} ${ascii}
606
613
  `;
607
- if (parsed.flags.has("a") && row.length === columns && row.every((byte) => byte === 0)) {
608
- if (zeroRun === 0) outBuf += formatted;
609
- if (zeroRun === 1) zeroSecond = formatted;
610
- zeroRun++;
611
- zeroLast = formatted;
612
- } else {
613
- finishZeros(false);
614
- outBuf += formatted;
614
+ if (parsed.flags.has("a") && row.length === columns && row.every((byte) => byte === 0)) {
615
+ if (zeroRun === 0) outBuf += formatted;
616
+ if (zeroRun === 1) zeroSecond = formatted;
617
+ zeroRun++;
618
+ zeroLast = formatted;
619
+ } else {
620
+ finishZeros(false);
621
+ outBuf += formatted;
622
+ }
615
623
  }
624
+ offset = addOffset(offset, row.length);
625
+ if (!flushedFirst || outBuf.length >= 16384) await flushOut();
616
626
  }
617
- offset = addOffset(offset, row.length);
618
- if (!flushedFirst || outBuf.length >= 16384) await flushOut();
619
627
  }
628
+ } catch (error) {
629
+ if (!any) throw error;
630
+ finishZeros(true);
631
+ if (includeRow) outBuf += includeRow + "\n";
632
+ await flushOut();
633
+ throw error;
620
634
  }
621
635
  finishZeros(true);
622
636
  if (include) {
@@ -9,5 +9,7 @@ export interface XzCommandsOptions extends CompressionCommandOptions {
9
9
  readonly replace?: boolean;
10
10
  }
11
11
  export declare function createXzCommand(config?: XzCommandsOptions, name?: string): CommandDefinition;
12
+ export declare function createUnxzCommand(options?: XzCommandsOptions): CommandDefinition;
13
+ export declare function createXzcatCommand(options?: XzCommandsOptions): CommandDefinition;
12
14
  export declare function createXzCommands(options?: XzCommandsOptions): readonly CommandDefinition[];
13
15
  export declare function xzCommands(options?: XzCommandsOptions): VirtualShellPlugin;
@@ -1,2 +1,2 @@
1
- export { createXzCommands, createXzCommand, xzCommands, type XzLimits, type XzCommandsOptions } from "./command.js";
1
+ export { createXzCommands, createXzCommand, createUnxzCommand, createXzcatCommand, xzCommands, type XzLimits, type XzCommandsOptions } from "./command.js";
2
2
  export type { CompressionCommandOptions } from "../safe-bash-compression-engine/stream.js";
@@ -116,6 +116,12 @@ file ${value.streams} ${value.blocks} ${value.compressed} ${value.uncompressed}
116
116
  }
117
117
  } };
118
118
  }
119
+ function createUnxzCommand(options = {}) {
120
+ return createXzCommand(options, "unxz");
121
+ }
122
+ function createXzcatCommand(options = {}) {
123
+ return createXzCommand(options, "xzcat");
124
+ }
119
125
  function createXzCommands(options = {}) {
120
126
  return [...xzProfile.names, ...lzmaProfile.names].map((name) => createXzCommand(options, name));
121
127
  }
@@ -129,7 +135,9 @@ function xzCommands(options = {}) {
129
135
  };
130
136
  }
131
137
  export {
138
+ createUnxzCommand,
132
139
  createXzCommand,
133
140
  createXzCommands,
141
+ createXzcatCommand,
134
142
  xzCommands
135
143
  };
@@ -561,7 +561,7 @@ async function runCommand(context, owner, inputFormat, limits) {
561
561
  let outBatchUsed = 0;
562
562
  const flushOutBatch = async () => {
563
563
  if (outBatchUsed > 0) {
564
- const slice = outBatch.subarray(0, outBatchUsed);
564
+ const slice = outBatch.slice(0, outBatchUsed);
565
565
  outBatchUsed = 0;
566
566
  await writeOperation(stdoutOperation(), slice, owner, context.signal);
567
567
  }
@@ -4,7 +4,7 @@ import {
4
4
  } from "../safe-bash/command-chunks/chunk-6EPHJGGF.js";
5
5
  import {
6
6
  createZipCommand
7
- } from "../safe-bash/command-chunks/chunk-XETLEHZP.js";
7
+ } from "../safe-bash/command-chunks/chunk-VPR5LQYX.js";
8
8
  import {
9
9
  init_buffer
10
10
  } from "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createZipCommand
3
- } from "../safe-bash/command-chunks/chunk-XETLEHZP.js";
3
+ } from "../safe-bash/command-chunks/chunk-VPR5LQYX.js";
4
4
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
5
5
  export {
6
6
  createZipCommand
@@ -1,13 +1,13 @@
1
- import "../safe-bash/command-chunks/chunk-BWNXWI33.js";
1
+ import "../safe-bash/command-chunks/chunk-2LMZVE3I.js";
2
2
  import "../safe-bash/command-chunks/chunk-KOVG5JE4.js";
3
3
  import "../safe-bash/command-chunks/chunk-VM6YNUJE.js";
4
4
  import "../safe-bash/command-chunks/chunk-UEEPCFWK.js";
5
5
  import "../safe-bash/command-chunks/chunk-O5SNTXHH.js";
6
6
  import "../safe-bash/command-chunks/chunk-OF4LJSBK.js";
7
- import "../safe-bash/command-chunks/chunk-NAY27PXB.js";
7
+ import "../safe-bash/command-chunks/chunk-YOFC45RK.js";
8
8
  import {
9
9
  writeBytes
10
- } from "../safe-bash/command-chunks/chunk-J5SN3PZ3.js";
10
+ } from "../safe-bash/command-chunks/chunk-VXSLJH7G.js";
11
11
  import "../safe-bash/command-chunks/chunk-X475DYQM.js";
12
12
  import "../safe-bash/command-chunks/chunk-G5PQV7XW.js";
13
13
  import "../safe-bash/command-chunks/chunk-XPT2UGBF.js";
@@ -10,11 +10,11 @@ import {
10
10
  } from "../safe-bash/command-chunks/chunk-VM6YNUJE.js";
11
11
  import {
12
12
  createOutputOperation
13
- } from "../safe-bash/command-chunks/chunk-NAY27PXB.js";
13
+ } from "../safe-bash/command-chunks/chunk-YOFC45RK.js";
14
14
  import {
15
15
  createBytePipe,
16
16
  outputFailure
17
- } from "../safe-bash/command-chunks/chunk-J5SN3PZ3.js";
17
+ } from "../safe-bash/command-chunks/chunk-VXSLJH7G.js";
18
18
  import {
19
19
  FsError
20
20
  } from "../safe-bash/command-chunks/chunk-X475DYQM.js";
@@ -10,3 +10,4 @@ export * from "./process.js";
10
10
  export { writeFileOutput, bindFileOutputBudget, assertCountedFileOutput, writeFileOutputCounted } from "./filesystem-output-budget.js";
11
11
  export type { CountedFileWrite, FileOutputContext } from "./filesystem-output-budget.js";
12
12
  export * from "./path.js";
13
+ export { subscribeAbort } from "./managed-abort.js";
@@ -1,4 +1,4 @@
1
- import "../safe-bash/command-chunks/chunk-BWNXWI33.js";
1
+ import "../safe-bash/command-chunks/chunk-2LMZVE3I.js";
2
2
  import {
3
3
  assertPathWithin,
4
4
  basename,
@@ -32,7 +32,7 @@ import {
32
32
  } from "../safe-bash/command-chunks/chunk-OF4LJSBK.js";
33
33
  import {
34
34
  createOutputOperation
35
- } from "../safe-bash/command-chunks/chunk-NAY27PXB.js";
35
+ } from "../safe-bash/command-chunks/chunk-YOFC45RK.js";
36
36
  import {
37
37
  InputByteBudget,
38
38
  collectBytes,
@@ -42,10 +42,12 @@ import {
42
42
  outputFailure,
43
43
  pipeBytes,
44
44
  readBytes,
45
+ subscribeAbort,
45
46
  toByteSource,
47
+ withInputByteBudget,
46
48
  writeBytes,
47
49
  writeText
48
- } from "../safe-bash/command-chunks/chunk-J5SN3PZ3.js";
50
+ } from "../safe-bash/command-chunks/chunk-VXSLJH7G.js";
49
51
  import {
50
52
  FsError,
51
53
  isErrnoCode,
@@ -126,10 +128,12 @@ export {
126
128
  shellValueFromBytes,
127
129
  shellValueRetainedBytes,
128
130
  shellValueText,
131
+ subscribeAbort,
129
132
  toByteSource,
130
133
  toFsError,
131
134
  validateExitCode,
132
135
  validatePath,
136
+ withInputByteBudget,
133
137
  writeBytes,
134
138
  writeFileOutput,
135
139
  writeFileOutputCounted,
@@ -65,10 +65,13 @@ export declare function collectText(source: ByteSource, options: CollectOptions)
65
65
  export declare class InputByteBudget {
66
66
  #private;
67
67
  readonly maximum: number;
68
+ private readonly host?;
68
69
  static limit(value?: number): number;
69
- constructor(maximum?: number);
70
+ constructor(maximum?: number, host?: CommandContext["inputBudget"]);
70
71
  assertOpen(): void;
71
72
  charge(bytes: number): void;
72
73
  run(context: CommandContext, execute: (context: CommandContext) => Promise<CommandResult>): Promise<CommandResult>;
73
74
  read(source: ByteSource, signal: AbortSignal): ByteSource;
74
75
  }
76
+ /** Enforce the caller's cumulative input ceiling across all VFS input paths. */
77
+ export declare function withInputByteBudget(execute: (context: CommandContext) => Promise<CommandResult>): (context: CommandContext) => Promise<CommandResult>;
@@ -8,9 +8,10 @@ import {
8
8
  pipeBytes,
9
9
  readBytes,
10
10
  toByteSource,
11
+ withInputByteBudget,
11
12
  writeBytes,
12
13
  writeText
13
- } from "../safe-bash/command-chunks/chunk-J5SN3PZ3.js";
14
+ } from "../safe-bash/command-chunks/chunk-VXSLJH7G.js";
14
15
  import "../safe-bash/command-chunks/chunk-X475DYQM.js";
15
16
  import "../safe-bash/command-chunks/chunk-Y2WBSJG6.js";
16
17
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -24,6 +25,7 @@ export {
24
25
  pipeBytes,
25
26
  readBytes,
26
27
  toByteSource,
28
+ withInputByteBudget,
27
29
  writeBytes,
28
30
  writeText
29
31
  };
@@ -0,0 +1,10 @@
1
+ export declare const managedSignalSymbol: unique symbol;
2
+ type Waiter = ((reason: unknown) => void) | {
3
+ onAbort(reason: unknown): void;
4
+ };
5
+ export declare function addManagedAbortWaiter(signal: AbortSignal, waiter: Waiter): void;
6
+ export declare function removeManagedAbortWaiter(signal: AbortSignal, waiter: Waiter): void;
7
+ export declare function notifyManagedAbortWaiters(signal: AbortSignal): void;
8
+ /** Share one listener while work is pending; release it when the last waiter leaves. */
9
+ export declare function subscribeAbort(signal: AbortSignal, callback: () => void): () => void;
10
+ export {};
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createOutputOperation
3
- } from "../safe-bash/command-chunks/chunk-NAY27PXB.js";
4
- import "../safe-bash/command-chunks/chunk-J5SN3PZ3.js";
3
+ } from "../safe-bash/command-chunks/chunk-YOFC45RK.js";
4
+ import "../safe-bash/command-chunks/chunk-VXSLJH7G.js";
5
5
  import "../safe-bash/command-chunks/chunk-X475DYQM.js";
6
6
  import "../safe-bash/command-chunks/chunk-Y2WBSJG6.js";
7
7
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -6,7 +6,7 @@ import {
6
6
  inspect,
7
7
  integer,
8
8
  sameIdentity
9
- } from "../safe-bash/command-chunks/chunk-YJDV76GL.js";
9
+ } from "../safe-bash/command-chunks/chunk-GFQZCKO6.js";
10
10
  import {
11
11
  init_buffer
12
12
  } from "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -25,10 +25,10 @@ export declare class Budget {
25
25
  private lines;
26
26
  private work;
27
27
  private nextYield;
28
+ private lastCheckpointTime;
29
+ private nextYieldTime;
28
30
  private files;
29
31
  private hunks;
30
- private signalAborted;
31
- private readonly pollSignal;
32
32
  get maxBufferBytes(): number;
33
33
  get remainingWork(): number;
34
34
  get remainingFiles(): number;
@@ -43,6 +43,7 @@ export declare class Budget {
43
43
  read(path: string, encoding?: "utf8" | "latin1"): Promise<string>;
44
44
  readDiff(path: string, encoding?: "utf8" | "latin1"): Promise<string>;
45
45
  private chunks;
46
+ private input;
46
47
  output(text: string, encoding?: "utf8" | "latin1"): void;
47
48
  equal(left: string | undefined, right: string | undefined): boolean;
48
49
  }
@@ -6,7 +6,7 @@ import {
6
6
  inspect,
7
7
  integer,
8
8
  sameIdentity
9
- } from "../safe-bash/command-chunks/chunk-YJDV76GL.js";
9
+ } from "../safe-bash/command-chunks/chunk-GFQZCKO6.js";
10
10
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
11
11
  export {
12
12
  Budget,
@@ -4,6 +4,7 @@ import {
4
4
 
5
5
  // packages/safe-bash-io-engine/src/commands/archive/internal.ts
6
6
  init_buffer();
7
+ import { subscribeAbort } from "../../../safe-bash-contracts/index.js";
7
8
  import { bytesFrom, utf8ByteLength } from "../../../safe-bash-byte-engine/index.js";
8
9
  import { PublicDiagnostic } from "../../../safe-bash-contracts/diagnostics.js";
9
10
  import { yieldTurn } from "../../../safe-bash-contracts/yield.js";
@@ -50,39 +51,20 @@ function fail(message) {
50
51
  function vfsPath(cwd, path) {
51
52
  return path.startsWith("/") ? path : `${cwd === "/" ? "" : cwd}/${path}`;
52
53
  }
53
- var signalWaiters = /* @__PURE__ */ new WeakMap();
54
- function getSignalWaiters(signal) {
55
- let waiters = signalWaiters.get(signal);
56
- if (!waiters) {
57
- waiters = /* @__PURE__ */ new Set();
58
- signalWaiters.set(signal, waiters);
59
- signal.addEventListener("abort", () => {
60
- const pending = [...waiters];
61
- waiters.clear();
62
- for (const fn of pending) fn();
63
- }, { once: true });
64
- }
65
- return waiters;
66
- }
67
54
  function wait(signal, action) {
68
55
  signal.throwIfAborted();
69
56
  return new Promise((resolve, reject) => {
70
- const waiters = getSignalWaiters(signal);
71
- const abort = () => {
72
- waiters.delete(abort);
73
- reject(signal.reason);
74
- };
75
- waiters.add(abort);
57
+ const unsubscribe = subscribeAbort(signal, () => reject(signal.reason));
76
58
  try {
77
59
  Promise.resolve(action()).then((value) => {
78
- waiters.delete(abort);
60
+ unsubscribe();
79
61
  resolve(value);
80
62
  }, (error) => {
81
- waiters.delete(abort);
63
+ unsubscribe();
82
64
  reject(error);
83
65
  });
84
66
  } catch (error) {
85
- waiters.delete(abort);
67
+ unsubscribe();
86
68
  reject(error);
87
69
  }
88
70
  });
@@ -5,8 +5,8 @@ import {
5
5
  requiredFileInput,
6
6
  searchRequirements,
7
7
  sedRequirements
8
- } from "../../../safe-bash/command-chunks/chunk-7FKUC34S.js";
9
- import "../../../safe-bash/command-chunks/chunk-XAFSZDY2.js";
8
+ } from "../../../safe-bash/command-chunks/chunk-FPVUD6TH.js";
9
+ import "../../../safe-bash/command-chunks/chunk-XS72HTMA.js";
10
10
  import "../../../safe-bash/command-chunks/chunk-PM2PFWPC.js";
11
11
  import "../../../safe-bash/command-chunks/chunk-RHKBCQYQ.js";
12
12
  import "../../../safe-bash/command-chunks/chunk-773DWG4H.js";