@poe-platform/safe-bash 0.1.800 → 0.1.802

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/README.md +16 -5
  2. package/dist/image-ast/index.browser.js +122 -76
  3. package/dist/image-ast/index.js +122 -76
  4. package/dist/pdf-ast/index.js +4 -3
  5. package/dist/safe-bash/chunks/chunk-3HQU4OJO.js +13 -0
  6. package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
  7. package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
  8. package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-44ALJ4QG.js} +5809 -7424
  9. package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
  10. package/dist/safe-bash/chunks/chunk-4BSJLKNM.js +14 -0
  11. package/dist/safe-bash/chunks/chunk-4D4N7IU2.js +47 -0
  12. package/dist/safe-bash/chunks/chunk-55YJASTN.js +14 -0
  13. package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
  16. package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
  17. package/dist/safe-bash/chunks/chunk-7ZBU7KYV.js +14 -0
  18. package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
  19. package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
  20. package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
  21. package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-BJA5XNP6.js} +6 -6
  22. package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
  23. package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
  24. package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
  25. package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
  27. package/dist/safe-bash/chunks/chunk-DQP3VHSB.js +15 -0
  28. package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
  30. package/dist/safe-bash/chunks/chunk-FZE4HW6G.js +11 -0
  31. package/dist/safe-bash/chunks/chunk-GEG3BWGE.js +14 -0
  32. package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-GETUOD5D.js} +4 -4
  33. package/dist/safe-bash/chunks/chunk-HBCN24ZA.js +50 -0
  34. package/dist/safe-bash/chunks/chunk-HZ7BWKQ3.js +13 -0
  35. package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-HZAMGT5I.js} +3 -3
  36. package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
  38. package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
  39. package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
  40. package/dist/safe-bash/chunks/chunk-KDNSPLII.js +83 -0
  41. package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
  43. package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-NQCM3TYR.js} +922 -658
  44. package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
  45. package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
  47. package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-PH63PLPZ.js} +8 -8
  48. package/dist/safe-bash/chunks/chunk-QGUV42T5.js +44 -0
  49. package/dist/safe-bash/chunks/chunk-R3NAKOED.js +51 -0
  50. package/dist/safe-bash/chunks/chunk-RRR7AQ24.js +38 -0
  51. package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-RSTHLAF3.js} +30 -23
  52. package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-SHEMU2Z7.js} +378 -1148
  53. package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
  54. package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
  55. package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
  56. package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-VKNVHEX3.js} +2 -7
  57. package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +962 -0
  58. package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
  59. package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-WDLGKIHD.js} +56 -39
  60. package/dist/safe-bash/chunks/chunk-XAQMU6OY.js +14 -0
  61. package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
  62. package/dist/safe-bash/chunks/chunk-ZVD5IS4V.js +49 -0
  63. package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
  64. package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
  65. package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
  66. package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
  67. package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
  68. package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
  69. package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
  70. package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
  71. package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
  72. package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
  73. package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
  74. package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
  75. package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
  76. package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
  77. package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
  78. package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
  79. package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
  80. package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
  81. package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
  82. package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
  83. package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
  84. package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
  85. package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
  86. package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
  87. package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
  89. package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
  90. package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
  91. package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
  92. package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
  93. package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
  94. package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-6GWJUQAV.js} +237 -145
  95. package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
  96. package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
  99. package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
  101. package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
  102. package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
  103. package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
  104. package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
  105. package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
  106. package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
  107. package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
  108. package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
  109. package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
  110. package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
  111. package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
  112. package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
  114. package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
  115. package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
  116. package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
  117. package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
  118. package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
  119. package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
  120. package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
  121. package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
  122. package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
  123. package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
  124. package/dist/safe-bash/command-chunks/{chunk-EFANWIHL.js → chunk-GY3BWK7K.js} +1 -0
  125. package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
  126. package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
  127. package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
  128. package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
  129. package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
  130. package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
  131. package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
  133. package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
  134. package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
  135. package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
  136. package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
  137. package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
  138. package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
  139. package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
  140. package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
  141. package/dist/safe-bash/command-chunks/{chunk-WBNZ4PRE.js → chunk-NGG2XL56.js} +7 -4
  142. package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
  143. package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-GLOZX57Y.js → chunk-OQKC5ZU2.js} +23 -114
  145. package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
  146. package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
  147. package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
  148. package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
  149. package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
  150. package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
  151. package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
  152. package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
  153. package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
  154. package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
  155. package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
  156. package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
  157. package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
  158. package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
  159. package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
  160. package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
  161. package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
  162. package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
  163. package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
  164. package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
  165. package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
  166. package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
  167. package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
  168. package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
  169. package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-VT6MJBEI.js} +1 -1
  170. package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
  171. package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
  172. package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
  173. package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
  174. package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
  175. package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
  176. package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-X54L3DBL.js} +6 -9
  177. package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
  178. package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
  179. package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
  180. package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
  181. package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-YVNGTIJO.js} +1 -1
  182. package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
  183. package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
  184. package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
  185. package/dist/safe-bash/commands/apply-patch/index.browser.js +14 -0
  186. package/dist/safe-bash/commands/archive/index.browser.js +36 -0
  187. package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
  188. package/dist/safe-bash/commands/column/index.browser.js +12 -0
  189. package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
  190. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  191. package/dist/safe-bash/commands/docx/index.browser.js +1 -1
  192. package/dist/safe-bash/commands/du/index.browser.js +14 -0
  193. package/dist/safe-bash/commands/execution.js +19 -13
  194. package/dist/safe-bash/commands/expr/index.browser.js +12 -0
  195. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  196. package/dist/safe-bash/commands/file/index.browser.js +14 -0
  197. package/dist/safe-bash/commands/filesystem.d.ts +1 -1
  198. package/dist/safe-bash/commands/filesystem.js +26 -15
  199. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  200. package/dist/safe-bash/commands/grep-aliases/index.browser.js +14 -0
  201. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  202. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +16 -0
  203. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
  204. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  205. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  206. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  207. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  208. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  209. package/dist/safe-bash/commands/media/index.browser.js +1 -1
  210. package/dist/safe-bash/commands/metadata/index.browser.js +21 -0
  211. package/dist/safe-bash/commands/network/curl.d.ts +1 -1
  212. package/dist/safe-bash/commands/network/curl.js +1 -3
  213. package/dist/safe-bash/commands/network/index.browser.js +4 -4
  214. package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
  215. package/dist/safe-bash/commands/network/platform-portable.js +1 -26
  216. package/dist/safe-bash/commands/network/public.d.ts +2 -2
  217. package/dist/safe-bash/commands/network/public.js +2 -2
  218. package/dist/safe-bash/commands/network/transport.js +2 -2
  219. package/dist/safe-bash/commands/network/wget.d.ts +1 -1
  220. package/dist/safe-bash/commands/network/wget.js +1 -3
  221. package/dist/safe-bash/commands/node/filesystem.js +3 -2
  222. package/dist/safe-bash/commands/node/index.browser.js +8 -8
  223. package/dist/safe-bash/commands/node/types.js +1 -1
  224. package/dist/safe-bash/commands/op/index.browser.js +3 -3
  225. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  226. package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
  227. package/dist/safe-bash/commands/python/index.browser.js +11 -11
  228. package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
  229. package/dist/safe-bash/commands/python/manifest.js +6 -3
  230. package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
  231. package/dist/safe-bash/commands/python/shell-capability.js +3 -2
  232. package/dist/safe-bash/commands/python/worker.browser.js +3 -3
  233. package/dist/safe-bash/commands/regex-execution/public.browser.js +8 -6
  234. package/dist/safe-bash/commands/safejs/runtime.js +16 -7
  235. package/dist/safe-bash/commands/split/index.browser.js +14 -0
  236. package/dist/safe-bash/commands/standard.d.ts +1 -0
  237. package/dist/safe-bash/commands/standard.js +2 -1
  238. package/dist/safe-bash/commands/stream-format/index.browser.js +11 -0
  239. package/dist/safe-bash/commands/stream-inspection/index.browser.js +11 -0
  240. package/dist/safe-bash/commands/streams.js +11 -29
  241. package/dist/safe-bash/commands/table-text/index.browser.js +11 -0
  242. package/dist/safe-bash/commands/text.js +269 -496
  243. package/dist/safe-bash/commands/time-env/index.browser.js +15 -0
  244. package/dist/safe-bash/commands/tree/index.browser.js +14 -0
  245. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  246. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  247. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  248. package/dist/safe-bash/core.browser.js +1 -1
  249. package/dist/safe-bash/core.d.ts +6 -1
  250. package/dist/safe-bash/core.js +1 -1
  251. package/dist/safe-bash/full-core.browser.js +308 -295
  252. package/dist/safe-bash/jobs.browser.js +5 -5
  253. package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
  254. package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
  255. package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
  256. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
  257. package/dist/safe-bash/optional-host.browser.js +15 -15
  258. package/dist/safe-bash/plugins/composition.d.ts +1 -0
  259. package/dist/safe-bash/plugins/composition.js +3 -8
  260. package/dist/safe-bash/plugins/index.browser.js +41 -27
  261. package/dist/safe-bash/registry-entry.browser.js +42 -28
  262. package/dist/safe-bash/search.browser.js +48 -0
  263. package/dist/safe-bash/shell/arrays/bindings.js +1 -1
  264. package/dist/safe-bash/shell/arrays/state.js +4 -0
  265. package/dist/safe-bash/shell/brace-expansion.js +1 -1
  266. package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
  267. package/dist/safe-bash/shell/dynamic-variables.js +25 -0
  268. package/dist/safe-bash/shell/parser.js +8 -1
  269. package/dist/safe-bash/shell/runtime.d.ts +4 -13
  270. package/dist/safe-bash/shell/runtime.js +334 -1049
  271. package/dist/safe-bash/shell/shell.js +2 -54
  272. package/dist/safe-bash/shell-entry.browser.js +35 -26
  273. package/dist/safe-bash/trap.browser.js +4 -4
  274. package/dist/safe-bash/yq-browser/index.js +1 -1
  275. package/dist/safe-bash-base-encoding-engine/base.js +2 -2
  276. package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
  277. package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
  278. package/dist/safe-bash-byte-input-engine/index.js +4 -1
  279. package/dist/safe-bash-checksum-engine/index.js +13 -6
  280. package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
  281. package/dist/safe-bash-command-apply-patch/apply.js +4 -3
  282. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  283. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  284. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  285. package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
  286. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  287. package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
  288. package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
  289. package/dist/safe-bash-command-awk/awk-values.js +1 -1
  290. package/dist/safe-bash-command-awk/awk.js +5 -5
  291. package/dist/safe-bash-command-awk/index.js +5 -5
  292. package/dist/safe-bash-command-bc/index.d.ts +2 -0
  293. package/dist/safe-bash-command-bc/index.js +123 -92
  294. package/dist/safe-bash-command-column/column.js +5 -5
  295. package/dist/safe-bash-command-column/display.d.ts +1 -1
  296. package/dist/safe-bash-command-column/display.js +1 -1
  297. package/dist/safe-bash-command-column/index.js +5 -5
  298. package/dist/safe-bash-command-column/internal.d.ts +0 -2
  299. package/dist/safe-bash-command-column/internal.js +1 -1
  300. package/dist/safe-bash-command-column/layout.js +4 -4
  301. package/dist/safe-bash-command-column/table.js +2 -2
  302. package/dist/safe-bash-command-comm/comm.js +1 -1
  303. package/dist/safe-bash-command-comm/index.js +1 -1
  304. package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
  305. package/dist/safe-bash-command-csvcut/index.js +1 -0
  306. package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
  307. package/dist/safe-bash-command-csvgrep/index.js +2 -2
  308. package/dist/safe-bash-command-csvkit/index.js +9 -9
  309. package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
  310. package/dist/safe-bash-command-curl/curl.js +1 -1
  311. package/dist/safe-bash-command-curl/index.js +1 -1
  312. package/dist/safe-bash-command-dd/index.js +2 -0
  313. package/dist/safe-bash-command-diff/diff.js +1 -1
  314. package/dist/safe-bash-command-diff/index.js +1 -1
  315. package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
  316. package/dist/safe-bash-command-fd/index.js +9 -9
  317. package/dist/safe-bash-command-ffmpeg/index.js +31 -8
  318. package/dist/safe-bash-command-file/index.js +1 -1
  319. package/dist/safe-bash-command-file/shared.js +1 -1
  320. package/dist/safe-bash-command-find/find.js +1 -1
  321. package/dist/safe-bash-command-find/index.js +1 -1
  322. package/dist/safe-bash-command-gzip/index.js +3 -2
  323. package/dist/safe-bash-command-hexdump/command.js +4 -4
  324. package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
  325. package/dist/safe-bash-command-hexdump/index.js +4 -4
  326. package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
  327. package/dist/safe-bash-command-hexdump/internal.js +1 -1
  328. package/dist/safe-bash-command-hexdump/io.js +2 -2
  329. package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
  330. package/dist/safe-bash-command-hexdump/options.js +2 -2
  331. package/dist/safe-bash-command-hostname/index.js +1 -1
  332. package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
  333. package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
  334. package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
  335. package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
  336. package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
  337. package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
  338. package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
  339. package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
  340. package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
  341. package/dist/safe-bash-command-htmlq/index.js +27 -9
  342. package/dist/safe-bash-command-iconv/codec.js +1 -1
  343. package/dist/safe-bash-command-iconv/command.js +2 -2
  344. package/dist/safe-bash-command-iconv/index.js +2 -2
  345. package/dist/safe-bash-command-imagemagick/index.js +24 -6
  346. package/dist/safe-bash-command-join/index.js +1 -1
  347. package/dist/safe-bash-command-join/join.js +1 -1
  348. package/dist/safe-bash-command-jq/index.js +1 -1
  349. package/dist/safe-bash-command-jq/jq.js +1 -1
  350. package/dist/safe-bash-command-less/index.js +43 -28
  351. package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
  352. package/dist/safe-bash-command-nl/index.js +1 -1
  353. package/dist/safe-bash-command-nl/nl.js +1 -1
  354. package/dist/safe-bash-command-numfmt/index.js +0 -11
  355. package/dist/safe-bash-command-od/index.js +101 -68
  356. package/dist/safe-bash-command-pandoc/command.js +1 -1
  357. package/dist/safe-bash-command-pandoc/index.js +1 -1
  358. package/dist/safe-bash-command-paste/index.js +1 -1
  359. package/dist/safe-bash-command-paste/paste.js +1 -1
  360. package/dist/safe-bash-command-pathchk/index.js +3 -13
  361. package/dist/safe-bash-command-pdfimages/index.js +27 -11
  362. package/dist/safe-bash-command-pdfinfo/index.js +19 -10
  363. package/dist/safe-bash-command-pdftk/index.js +3 -3
  364. package/dist/safe-bash-command-pdftoppm/index.js +26 -10
  365. package/dist/safe-bash-command-pdftotext/index.js +27 -13
  366. package/dist/safe-bash-command-qpdf/index.js +5 -5
  367. package/dist/safe-bash-command-rg/index.js +1 -1
  368. package/dist/safe-bash-command-rg/rg-command.d.ts +0 -1
  369. package/dist/safe-bash-command-rg/rg-command.js +3 -5
  370. package/dist/safe-bash-command-sed/index.js +1 -1
  371. package/dist/safe-bash-command-sed/sed.js +1 -1
  372. package/dist/safe-bash-command-shuf/options.d.ts +1 -0
  373. package/dist/safe-bash-command-shuf/options.js +2 -4
  374. package/dist/safe-bash-command-shuf/shuf.js +2 -1
  375. package/dist/safe-bash-command-soffice/index.js +20 -16
  376. package/dist/safe-bash-command-split/index.js +3 -3
  377. package/dist/safe-bash-command-split/io.js +1 -1
  378. package/dist/safe-bash-command-split/outputs.js +2 -2
  379. package/dist/safe-bash-command-split/split.js +3 -3
  380. package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
  381. package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
  382. package/dist/safe-bash-command-sqlite3/index.js +284 -85
  383. package/dist/safe-bash-command-ssconvert/commands.js +9 -9
  384. package/dist/safe-bash-command-ssconvert/core.js +8 -8
  385. package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
  386. package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
  387. package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
  388. package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
  389. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
  390. package/dist/safe-bash-command-ssconvert/index.js +20 -20
  391. package/dist/safe-bash-command-tar/extract.js +1 -1
  392. package/dist/safe-bash-command-tar/index.js +5 -4
  393. package/dist/safe-bash-command-tar/modes.js +2 -2
  394. package/dist/safe-bash-command-tree/arguments.js +3 -3
  395. package/dist/safe-bash-command-tree/charset.js +1 -1
  396. package/dist/safe-bash-command-tree/index.js +4 -4
  397. package/dist/safe-bash-command-tree/io.js +1 -1
  398. package/dist/safe-bash-command-tree/pattern.js +2 -2
  399. package/dist/safe-bash-command-tree/tree.js +4 -4
  400. package/dist/safe-bash-command-unexpand/index.js +1 -1
  401. package/dist/safe-bash-command-unexpand/unexpand.js +1 -1
  402. package/dist/safe-bash-command-unrtf/index.js +14 -7
  403. package/dist/safe-bash-command-unzip/index.js +1 -1
  404. package/dist/safe-bash-command-unzip/unzip.js +1 -1
  405. package/dist/safe-bash-command-wget/index.js +1 -1
  406. package/dist/safe-bash-command-wget/wget.js +1 -1
  407. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  408. package/dist/safe-bash-command-xan/argv.js +1 -1
  409. package/dist/safe-bash-command-xan/commands.js +5 -3
  410. package/dist/safe-bash-command-xan/csv.d.ts +1 -1
  411. package/dist/safe-bash-command-xan/csv.js +1 -1
  412. package/dist/safe-bash-command-xan/index.js +7 -7
  413. package/dist/safe-bash-command-xan/io.js +3 -3
  414. package/dist/safe-bash-command-xmllint/index.js +1 -1
  415. package/dist/safe-bash-command-xxd/index.js +105 -91
  416. package/dist/safe-bash-command-xz/command.d.ts +2 -0
  417. package/dist/safe-bash-command-xz/index.d.ts +1 -1
  418. package/dist/safe-bash-command-xz/index.js +8 -0
  419. package/dist/safe-bash-command-yq/query.js +1 -1
  420. package/dist/safe-bash-command-zip/index.js +1 -1
  421. package/dist/safe-bash-command-zip/zip.js +1 -1
  422. package/dist/safe-bash-contracts/escaping.js +3 -3
  423. package/dist/safe-bash-contracts/filesystem-output.js +2 -2
  424. package/dist/safe-bash-contracts/index.d.ts +1 -0
  425. package/dist/safe-bash-contracts/index.js +7 -3
  426. package/dist/safe-bash-contracts/io.d.ts +4 -1
  427. package/dist/safe-bash-contracts/io.js +3 -1
  428. package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
  429. package/dist/safe-bash-contracts/output.js +2 -2
  430. package/dist/safe-bash-diff-engine/index.js +1 -1
  431. package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
  432. package/dist/safe-bash-diff-engine/shared.js +1 -1
  433. package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
  434. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  435. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
  436. package/dist/safe-bash-io-engine/internal.js +1 -1
  437. package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
  438. package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
  439. package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
  440. package/dist/safe-bash-mcp/index.browser.js +416 -0
  441. package/dist/safe-bash-mcp/index.d.ts +54 -2
  442. package/dist/safe-bash-mcp/index.js +286 -90
  443. package/dist/safe-bash-network-engine/aggregate.js +2 -2
  444. package/dist/safe-bash-network-engine/args.js +4 -4
  445. package/dist/safe-bash-network-engine/authorizer.js +1 -1
  446. package/dist/safe-bash-network-engine/body.js +6 -6
  447. package/dist/safe-bash-network-engine/decode.d.ts +1 -1
  448. package/dist/safe-bash-network-engine/decode.js +3 -4
  449. package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
  450. package/dist/safe-bash-network-engine/form-content-type.js +2 -2
  451. package/dist/safe-bash-network-engine/form-headers.js +2 -2
  452. package/dist/safe-bash-network-engine/glob.js +1 -1
  453. package/dist/safe-bash-network-engine/index.js +4 -4
  454. package/dist/safe-bash-network-engine/input.js +6 -6
  455. package/dist/safe-bash-network-engine/output.js +2 -2
  456. package/dist/safe-bash-network-engine/platform-portable.js +3 -3
  457. package/dist/safe-bash-network-engine/shared.js +2 -2
  458. package/dist/safe-bash-network-engine/types.d.ts +7 -2
  459. package/dist/safe-bash-network-engine/types.js +1 -1
  460. package/dist/safe-bash-network-engine/url.js +2 -2
  461. package/dist/safe-bash-query-engine/capture.js +3 -3
  462. package/dist/safe-bash-query-engine/delpaths.js +3 -3
  463. package/dist/safe-bash-query-engine/formats.js +2 -2
  464. package/dist/safe-bash-query-engine/index.js +11 -11
  465. package/dist/safe-bash-query-engine/indices.js +3 -3
  466. package/dist/safe-bash-query-engine/input.js +1 -1
  467. package/dist/safe-bash-query-engine/interpreter.js +9 -9
  468. package/dist/safe-bash-query-engine/parser.js +1 -1
  469. package/dist/safe-bash-query-engine/query-core.js +11 -11
  470. package/dist/safe-bash-query-engine/regex.js +4 -4
  471. package/dist/safe-bash-query-engine/splits.js +5 -5
  472. package/dist/safe-bash-query-engine/values.js +2 -2
  473. package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
  474. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
  475. package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
  476. package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
  477. package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
  478. package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
  479. package/dist/safe-bash-regex-engine/index.js +6 -4
  480. package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -1
  481. package/dist/safe-bash-regex-engine/text/budget.js +1 -1
  482. package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
  483. package/dist/safe-bash-regex-engine/text/regex.js +6 -4
  484. package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
  485. package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
  486. package/dist/safe-bash-search-engine/grep.js +189 -227
  487. package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
  488. package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
  489. package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
  490. package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
  491. package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
  492. package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
  493. package/dist/spreadsheet-engine/formulas/parser.js +3 -1
  494. package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
  495. package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
  496. package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
  497. package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
  498. package/dist/spreadsheet-format-xls/biff.js +1 -1
  499. package/dist/xlsx-ast/xlsx.js +8 -5
  500. package/package.json +68 -12
  501. package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
  502. /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
@@ -61,15 +61,12 @@ async function checkRoot(context, root) {
61
61
  if (root === "/") return ancestors;
62
62
  const parts = root.split("/").filter(Boolean);
63
63
  let path = "/";
64
- for (let i = 0; i < parts.length - 1; i++) {
64
+ for (let i = 0; i < parts.length; i++) {
65
65
  path = resolvePath(path, parts[i]);
66
- const stat2 = await operation(context, () => context.fs.lstat(path, { signal: context.signal }));
67
- if (stat2.type !== "directory") fail(`extraction root has a non-directory or symlink ancestor: ${display(path)}`);
68
- ancestors.push({ path, stat: stat2 });
66
+ const stat = await operation(context, () => context.fs.lstat(path, { signal: context.signal }));
67
+ if (stat.type !== "directory") fail(`extraction root has a non-directory or symlink ancestor: ${display(path)}`);
68
+ ancestors.push({ path, stat });
69
69
  }
70
- const stat = await operation(context, () => context.fs.lstat(root, { signal: context.signal }));
71
- if (stat.type !== "directory") fail(`not an extraction directory: ${display(root)}`);
72
- ancestors.push({ path: root, stat });
73
70
  return ancestors;
74
71
  }
75
72
  async function parents(context, root, path, create, allowMissing = false) {
@@ -4,11 +4,11 @@ import {
4
4
 
5
5
  // packages/safe-bash-command-comm/src/comm.ts
6
6
  init_buffer();
7
- import { argument, Budget, command, compare, encode, fail, Inputs, OrderCheck, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
7
+ import { argument, command, compare, encode, fail, Inputs, OrderCheck, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
8
8
  function createCommCommand(options = {}) {
9
9
  const limits = settings(options);
10
- return command("comm", async (context) => {
11
- const budget = new Budget(context, limits), files = [], suppressed = /* @__PURE__ */ new Set();
10
+ return command("comm", limits, async (context, budget) => {
11
+ const files = [], suppressed = /* @__PURE__ */ new Set();
12
12
  let separator = 10, delimiter = Uint8Array.of(9), literal = false, total = false, mode = "default";
13
13
  let delimiterSet = false;
14
14
  for (let index = 0; index < context.args.length; index++) {
@@ -52,7 +52,7 @@ function createCommCommand(options = {}) {
52
52
  } else fail(`unsupported option ${token}`);
53
53
  }
54
54
  if (files.length !== 2) fail("comm requires exactly two files");
55
- const inputs = new Inputs(context, budget, separator), order = new OrderCheck(mode, context), terminator = Uint8Array.of(separator);
55
+ const inputs = new Inputs(context, budget, separator), order = new OrderCheck(mode, context, budget), terminator = Uint8Array.of(separator);
56
56
  try {
57
57
  const readers = [await inputs.open(files[0]), await inputs.open(files[1])];
58
58
  const rows = [await readers[0].next(), await readers[1].next()];
@@ -64,7 +64,7 @@ function createCommCommand(options = {}) {
64
64
  const comparison = rows[0] === void 0 ? 1 : rows[1] === void 0 ? -1 : compare(rows[0], rows[1]);
65
65
  const column = comparison < 0 ? 0 : comparison > 0 ? 1 : 2;
66
66
  totals[column] = totals[column] + 1n;
67
- if (column !== 2) order.unpaired = true;
67
+ if (column !== 2) await order.markUnpaired();
68
68
  if (!suppressed.has(column)) {
69
69
  const parts = [];
70
70
  for (let index = 0; index < column; index++) if (!suppressed.has(index)) parts.push(delimiter);
@@ -7,6 +7,7 @@ import {
7
7
 
8
8
  // packages/safe-bash-command-unzip/src/unzip.ts
9
9
  init_buffer();
10
+ import { withInputByteBudget } from "../../safe-bash-contracts/index.js";
10
11
  import { collectBytes, dirname, readBytes, resolvePath, writeBytes } from "../../safe-bash-contracts/index.js";
11
12
  import { PublicDiagnostic, publicDiagnosticMessage } from "../../safe-bash-contracts/diagnostics.js";
12
13
  import { writeFileOutput } from "../../safe-bash-contracts/filesystem-output.js";
@@ -56,7 +57,7 @@ async function comment(bytes, budget) {
56
57
  }
57
58
  function createUnzipCommand(options = {}) {
58
59
  const configured = settings(options);
59
- return { name: "unzip", description: "List, stream or safely extract ZIP archives in the virtual filesystem", async execute(original) {
60
+ return { name: "unzip", description: "List, stream or safely extract ZIP archives in the virtual filesystem", execute: withInputByteBudget(async (original) => {
60
61
  const limits = invocationLimits(configured, original);
61
62
  original.signal.throwIfAborted();
62
63
  const controller = new AbortController();
@@ -354,7 +355,7 @@ ${String(total).padStart(9)} ${selected} file${selected ===
354
355
  } finally {
355
356
  await close();
356
357
  }
357
- } };
358
+ }) };
358
359
  }
359
360
 
360
361
  export {
@@ -5,13 +5,13 @@ import {
5
5
  parseFormatSections,
6
6
  scanFormat,
7
7
  selectFormatSection
8
- } from "./chunk-5SHGJ7NO.js";
8
+ } from "./chunk-VA5ZHYYA.js";
9
9
  import {
10
10
  cellValueFormat
11
- } from "./chunk-4QJOYXVB.js";
11
+ } from "./chunk-JV7LBUTP.js";
12
12
  import {
13
13
  SsconvertError
14
- } from "./chunk-DWFLVJC6.js";
14
+ } from "./chunk-CCRHMAU5.js";
15
15
  import {
16
16
  init_buffer
17
17
  } from "./chunk-HX3SHTCE.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  convert
3
- } from "./chunk-IEXHHNOF.js";
3
+ } from "./chunk-4J5CZ2DP.js";
4
4
  import {
5
5
  Lifecycle
6
6
  } from "./chunk-7D7JRRML.js";
@@ -264,7 +264,7 @@ async function parseWget(context, limits) {
264
264
  if (index % 1024 === 0) await yieldTurn(context.signal);
265
265
  if (index !== text.length && text[index] !== "\n") continue;
266
266
  if (index === text.length && start === index) break;
267
- if (++lines > 4096) throw new CurlError(2, "URL input exceeds 4096-line limit");
267
+ if (++lines > limits.maxInputLines) throw new CurlError(2, "URL input exceeds host line limit");
268
268
  const url = text.slice(start, index).trim();
269
269
  start = index + 1;
270
270
  if (url) result.urls.push(url);
@@ -2,7 +2,7 @@ import {
2
2
  cellValueFormat,
3
3
  functionDescriptors,
4
4
  parseNamedExpression
5
- } from "./chunk-4QJOYXVB.js";
5
+ } from "./chunk-JV7LBUTP.js";
6
6
  import {
7
7
  DEFAULT_SHEET_SIZE,
8
8
  MAX_SHEET_SIZE,
@@ -27,7 +27,7 @@ import {
27
27
  statisticsFunctionDescriptors,
28
28
  sylkGrammar,
29
29
  validSheetSize
30
- } from "./chunk-DWFLVJC6.js";
30
+ } from "./chunk-CCRHMAU5.js";
31
31
  import {
32
32
  init_buffer
33
33
  } from "./chunk-HX3SHTCE.js";
@@ -69,8 +69,14 @@ function rewriteReferences(document, edit) {
69
69
  if (id === void 0) return { row: { value: -1, relative: false }, column: { value: 0, relative: false } };
70
70
  next = { ...ref, sheet: document.sheetNames[id] };
71
71
  }
72
- if (edit.translation === "move" && target.sheet !== document.position.sheet && ref.workbook === void 0 && ref.sheet === void 0)
73
- next = { ...ref, sheet: document.sheetNames?.[document.position.sheet] ?? document.position.sheet };
72
+ if (edit.translation === "move" && target.sheet !== document.position.sheet && ref.workbook === void 0 && ref.sheet === void 0) {
73
+ const { sheetOffset: ignoredOffset, ...anchored } = ref;
74
+ next = {
75
+ ...anchored,
76
+ sheet: document.sheetNames?.[document.position.sheet] ?? document.position.sheet,
77
+ ...ref.sheetRelative === void 0 ? {} : { sheetRelative: false }
78
+ };
79
+ }
74
80
  const renamed = next.workbook === void 0 && next.sheet ? renamedSheet(next.sheet) : void 0;
75
81
  if (renamed !== void 0) next = { ...next, sheet: renamed };
76
82
  if (edit.translation === "move") for (const kind of ["row", "column"]) {
@@ -99,7 +105,12 @@ function rewriteReferences(document, edit) {
99
105
  if (JSON.stringify(comparable) !== JSON.stringify(ref)) unchanged = false;
100
106
  return next;
101
107
  };
102
- const first = rewrite(node.first), last = node.last ? rewrite(node.last) : void 0;
108
+ const first = rewrite(node.first);
109
+ let last = node.last ? rewrite(node.last) : void 0;
110
+ if (document.grammar.bracketReferences && node.first.sheet === void 0 && node.last?.sheet === void 0 && first.sheet !== void 0 && last?.sheet === first.sheet && last.sheetRelative === first.sheetRelative) {
111
+ const { sheet: ignoredSheet, ...inherited } = last;
112
+ last = inherited;
113
+ }
103
114
  if (node.label?.kind === "radical") {
104
115
  if (node.label.data) absorbedReferences.add(node.label.data);
105
116
  for (const ref of node.label.preceding ?? []) absorbedReferences.add(ref);
@@ -486,7 +497,16 @@ function createOdfXml(context, extended) {
486
497
 
487
498
  // packages/spreadsheet-engine/src/codecs/odf-hyperlinks.ts
488
499
  init_buffer();
489
- var linkGrammar = { ...excelGrammar, id: "odf-hyperlink", sheetSeparator: ".", absoluteSheetReferences: true };
500
+ var linkGrammar = {
501
+ ...excelGrammar,
502
+ id: "odf-hyperlink",
503
+ sheetSeparator: ".",
504
+ absoluteSheetReferences: true,
505
+ quoteSheetName(name) {
506
+ const letter = (c3) => c3 >= "A" && c3 <= "Z" || c3 >= "a" && c3 <= "z" || c3 === "_";
507
+ return name.length > 0 && letter(name[0]) && [...name].every((c3) => letter(c3) || c3 >= "0" && c3 <= "9") ? name : quoteFormulaString(name, "'", excelGrammar);
508
+ }
509
+ };
490
510
  function decodeFragment(source, charge) {
491
511
  let result2 = "";
492
512
  for (let at = 0; at < source.length; ) {
@@ -1679,9 +1699,11 @@ function resolveLabelReference(book, node, position, read, tick, anchorOnly = fa
1679
1699
  const coordinate = value && value.value + (value.relative ? position[axis] : 0);
1680
1700
  if (coordinate === void 0 || coordinate < 0 || coordinate >= (axis === "row" ? size.rows : size.columns)) return error("#REF!");
1681
1701
  }
1682
- if (range.firstRow !== range.lastRow && range.firstColumn !== range.lastColumn) return error("#REF!");
1683
- if (!label.scalar || range.firstRow === range.lastRow && range.firstColumn === range.lastColumn) return { kind: "range", ...range };
1684
- if (range.firstRow === range.lastRow) return position.column < range.firstColumn || position.column > range.lastColumn ? error("#REF!") : { kind: "range", ...range, firstColumn: position.column, lastColumn: position.column };
1702
+ const rowLabel = range.firstRow === range.lastRow && row === range.firstRow && (column === range.firstColumn - 1 || column === range.lastColumn + 1);
1703
+ const columnLabel2 = range.firstColumn === range.lastColumn && column === range.firstColumn && (row === range.firstRow - 1 || row === range.lastRow + 1);
1704
+ if (rowLabel === columnLabel2 || label.preceding && !columnLabel2) return error("#REF!");
1705
+ if (!label.scalar) return { kind: "range", ...range };
1706
+ if (rowLabel) return position.column < range.firstColumn || position.column > range.lastColumn ? error("#REF!") : { kind: "range", ...range, firstColumn: position.column, lastColumn: position.column };
1685
1707
  return position.row < range.firstRow || position.row > range.lastRow ? error("#REF!") : { kind: "range", ...range, firstRow: position.row, lastRow: position.row };
1686
1708
  }
1687
1709
  const pairs = (sheet.labelRanges ?? []).filter((pair) => {
@@ -1695,7 +1717,7 @@ function resolveLabelReference(book, node, position, read, tick, anchorOnly = fa
1695
1717
  const columnLabel = label.axis === "column";
1696
1718
  const maximum = (columnLabel ? size.rows : size.columns) - 1;
1697
1719
  const ownAxis = columnLabel ? position.row : position.column;
1698
- const sameAxis = columnLabel ? position.column === column : position.row === row;
1720
+ const sameAxis = position.sheet === sheet.id && (columnLabel ? position.column === column : position.row === row);
1699
1721
  let start, end;
1700
1722
  if (!declared && label.semantics === "openformula") {
1701
1723
  if (!book.automaticLabelLookup) return error("#NAME?");
@@ -1751,10 +1773,10 @@ function resolveLabelReference(book, node, position, read, tick, anchorOnly = fa
1751
1773
  if (!book.automaticLabelLookup) return error("#NAME?");
1752
1774
  const value = read(sheet, row, column);
1753
1775
  if (value.kind !== "string" && value.kind !== "blank") return error("#NAME?");
1754
- start = Math.min((columnLabel ? row : column) + 1, maximum);
1776
+ start = (columnLabel ? row : column) + 1;
1755
1777
  end = maximum;
1756
1778
  if (sameAxis) {
1757
- if (ownAxis === start) start = Math.min(start + 1, maximum);
1779
+ if (ownAxis === start) start++;
1758
1780
  else if (ownAxis > start) end = ownAxis - 1;
1759
1781
  }
1760
1782
  for (const owner of [...book.sheets, ...book.detachedSheets ?? []]) {
@@ -1769,39 +1791,57 @@ function resolveLabelReference(book, node, position, read, tick, anchorOnly = fa
1769
1791
  }
1770
1792
  }
1771
1793
  }
1772
- if (start !== end && label.scalar) {
1794
+ if (start > end) return error("#REF!");
1795
+ if (label.scalar) {
1773
1796
  if (ownAxis < start || ownAxis > end) return error("#REF!");
1774
1797
  start = end = ownAxis;
1775
1798
  } else if (!declared && start !== end) {
1799
+ const rows = /* @__PURE__ */ new Map(), columns = /* @__PURE__ */ new Map();
1800
+ for (const cell of sheet.cells) {
1801
+ tick();
1802
+ if (cell.value.kind === "blank" && !cell.formula) continue;
1803
+ const rowCells = rows.get(cell.row) ?? [], columnCells = columns.get(cell.column) ?? [];
1804
+ rowCells.push(cell.column);
1805
+ columnCells.push(cell.row);
1806
+ rows.set(cell.row, rowCells);
1807
+ columns.set(cell.column, columnCells);
1808
+ }
1809
+ for (const index of [rows, columns]) for (const coordinates of index.values()) {
1810
+ tick();
1811
+ coordinates.sort((a2, b2) => {
1812
+ tick();
1813
+ return a2 - b2;
1814
+ });
1815
+ }
1816
+ const occupied = (index, axis, low, high) => {
1817
+ tick();
1818
+ const coordinates = index.get(axis);
1819
+ if (!coordinates) return false;
1820
+ let first = 0, last = coordinates.length;
1821
+ while (first < last) {
1822
+ tick();
1823
+ const middle = Math.floor((first + last) / 2);
1824
+ if (coordinates[middle] < low) first = middle + 1;
1825
+ else last = middle;
1826
+ }
1827
+ return first < coordinates.length && coordinates[first] <= high;
1828
+ };
1776
1829
  let left = columnLabel ? column : start, right = left;
1777
1830
  let top = columnLabel ? start : row, bottom = top;
1778
1831
  for (; ; ) {
1779
- let extendLeft = false, extendRight = false, extendTop = false, extendBottom = false;
1780
- for (const cell of sheet.cells) {
1781
- tick();
1782
- if (cell.value.kind === "blank" && !cell.formula) continue;
1783
- if (cell.row >= top - 1 && cell.row <= bottom + 1) {
1784
- if (cell.column === left - 1) extendLeft = true;
1785
- if (cell.column === right + 1) extendRight = true;
1786
- }
1787
- }
1832
+ const extendLeft = occupied(columns, left - 1, top - 1, bottom + 1);
1833
+ const extendRight = occupied(columns, right + 1, top - 1, bottom + 1);
1788
1834
  if (extendLeft) left--;
1789
1835
  if (extendRight) right++;
1790
- for (const cell of sheet.cells) {
1791
- tick();
1792
- if (cell.value.kind === "blank" && !cell.formula) continue;
1793
- if (cell.column >= left && cell.column <= right) {
1794
- if (cell.row === top - 1) extendTop = true;
1795
- if (cell.row === bottom + 1) extendBottom = true;
1796
- }
1797
- }
1836
+ const extendTop = occupied(rows, top - 1, left, right);
1837
+ const extendBottom = occupied(rows, bottom + 1, left, right);
1798
1838
  if (extendTop) top--;
1799
1839
  if (extendBottom) bottom++;
1800
1840
  if (!extendLeft && !extendRight && !extendTop && !extendBottom) break;
1801
1841
  }
1802
1842
  end = Math.min(end, columnLabel ? bottom : right);
1803
1843
  if (sameAxis && ownAxis >= start && ownAxis <= end) {
1804
- if (ownAxis === start) start = Math.min(start + 1, maximum);
1844
+ if (ownAxis === start) start++;
1805
1845
  else end = ownAxis - 1;
1806
1846
  }
1807
1847
  }
@@ -17472,7 +17512,8 @@ function besselPhaseDomain(x, order) {
17472
17512
  function capturedBesselPhase(x, order, secondKind, host) {
17473
17513
  let sum2 = 1, term = 1;
17474
17514
  const x2 = x * x, n2 = order * order;
17475
- if (!Number.isFinite(x2) || !Number.isFinite(n2)) {
17515
+ const inverse2 = divide3([1, 0], product2(x, x)), square = product2(order, order);
17516
+ if (!Number.isFinite(x2) || !Number.isFinite(n2) || !Number.isFinite(inverse2[0] + inverse2[1]) || !Number.isFinite(square[0] + square[1])) {
17476
17517
  if (x > 1 / Number.EPSILON) host.diagnostic?.({ code: "numeric-warning", severity: "warning", message: "Reduced accuracy for very large trigonometric arguments" });
17477
17518
  return NaN;
17478
17519
  }
@@ -17485,7 +17526,6 @@ function capturedBesselPhase(x, order, secondKind, host) {
17485
17526
  if (Math.abs(term) < Number.EPSILON * Math.abs(sum2)) break;
17486
17527
  }
17487
17528
  const amplitude2 = Math.sqrt(sum2 / (x * (Math.PI / 2)));
17488
- const inverse2 = divide3([1, 0], product2(x, x)), square = product2(order, order);
17489
17529
  const t = [[1, 0]], s = [[1, 0]];
17490
17530
  let phase = [0, 0], last = Number.MAX_VALUE;
17491
17531
  for (let n = 1; n < 400; n++) {
@@ -4,6 +4,7 @@ import {
4
4
 
5
5
  // packages/safe-bash-command-zip/src/zip.ts
6
6
  init_buffer();
7
+ import { withInputByteBudget } from "../../safe-bash-contracts/index.js";
7
8
  import { collectBytes, dirname, getCommandArguments, writeBytes } from "../../safe-bash-contracts/index.js";
8
9
  import { publicDiagnosticMessage } from "../../safe-bash-contracts/diagnostics.js";
9
10
  import { escapeText } from "../../safe-bash-contracts/escaping.js";
@@ -1046,7 +1047,7 @@ ${warning}` : ""} ${dots ? `${dots} ` : ""}(${entry.method === 14 ? `lzma ${perc
1046
1047
  }
1047
1048
  function createZipCommand(options = {}) {
1048
1049
  const configured = settings(options);
1049
- return { name: "zip", description: "Create or update bounded ZIP archives in the virtual filesystem", async execute(original) {
1050
+ return { name: "zip", description: "Create or update bounded ZIP archives in the virtual filesystem", execute: withInputByteBudget(async (original) => {
1050
1051
  const limits = invocationLimits(configured, original);
1051
1052
  original.signal.throwIfAborted();
1052
1053
  const scope = new ZipScope(original, limits);
@@ -1219,7 +1220,7 @@ zip error: ${error.label} (${zipPublicText(error.message)})
1219
1220
  original.signal.throwIfAborted();
1220
1221
  }
1221
1222
  }
1222
- } };
1223
+ }) };
1223
1224
  }
1224
1225
 
1225
1226
  export {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  regexError,
3
3
  regexFlags
4
- } from "./chunk-BKCNF5U3.js";
4
+ } from "./chunk-KQLD3AED.js";
5
5
  import {
6
6
  extendedPattern
7
- } from "./chunk-GI4CJED2.js";
7
+ } from "./chunk-CQTRW45K.js";
8
8
  import {
9
9
  describe
10
- } from "./chunk-UMDIOL3O.js";
10
+ } from "./chunk-KXU3IRUO.js";
11
11
  import {
12
12
  JqError
13
13
  } from "./chunk-QP4R6GLA.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ProgramError
3
- } from "./chunk-HLGKIZ25.js";
3
+ } from "./chunk-X54L3DBL.js";
4
4
  import {
5
5
  init_buffer
6
6
  } from "./chunk-HX3SHTCE.js";
@@ -55,6 +55,32 @@ function notifyManagedAbortWaiters(signal) {
55
55
  }
56
56
  }
57
57
  }
58
+ var abortSubscriptions = /* @__PURE__ */ new WeakMap();
59
+ function subscribeAbort(signal, callback) {
60
+ signal.throwIfAborted();
61
+ let entry = abortSubscriptions.get(signal);
62
+ if (!entry) {
63
+ const waiters = /* @__PURE__ */ new Set();
64
+ const listener = () => {
65
+ abortSubscriptions.delete(signal);
66
+ signal.removeEventListener("abort", listener);
67
+ const pending = [...waiters];
68
+ waiters.clear();
69
+ for (const waiter of pending) waiter();
70
+ };
71
+ entry = { waiters, listener };
72
+ abortSubscriptions.set(signal, entry);
73
+ signal.addEventListener("abort", listener, { once: true });
74
+ }
75
+ entry.waiters.add(callback);
76
+ return () => {
77
+ entry.waiters.delete(callback);
78
+ if (entry.waiters.size === 0 && abortSubscriptions.get(signal) === entry) {
79
+ abortSubscriptions.delete(signal);
80
+ signal.removeEventListener("abort", entry.listener);
81
+ }
82
+ };
83
+ }
58
84
 
59
85
  // packages/safe-bash-contracts/src/io.ts
60
86
  var outputFailure = /* @__PURE__ */ Symbol("output failure");
@@ -816,11 +842,13 @@ function createLegacyWritable(pipe) {
816
842
  };
817
843
  }
818
844
  var InputByteBudget = class _InputByteBudget {
819
- constructor(maximum = Infinity) {
845
+ constructor(maximum = Infinity, host) {
820
846
  this.maximum = maximum;
847
+ this.host = host;
821
848
  _InputByteBudget.limit(maximum);
822
849
  }
823
850
  maximum;
851
+ host;
824
852
  #used = 0;
825
853
  #failure;
826
854
  static limit(value = Infinity) {
@@ -839,6 +867,7 @@ var InputByteBudget = class _InputByteBudget {
839
867
  this.#failure = new FsError("EFBIG", { message: "command input byte limit exceeded" });
840
868
  throw this.#failure;
841
869
  }
870
+ this.host?.check(this.#used + bytes);
842
871
  this.#used += bytes;
843
872
  }
844
873
  async run(context, execute) {
@@ -847,13 +876,29 @@ var InputByteBudget = class _InputByteBudget {
847
876
  ...context,
848
877
  stdin: this.read(context.stdin, context.signal),
849
878
  fs: Object.create(fs, {
850
- readFile: { value: async (...args) => {
879
+ readFile: { configurable: true, value: async (...args) => {
851
880
  this.assertOpen();
852
881
  const bytes = await fs.readFile(...args);
853
882
  this.charge(bytes.byteLength);
854
883
  return bytes;
855
884
  } },
856
- ...fs.readStream ? { readStream: { value: (...args) => {
885
+ ...fs.openReadFile ? { openReadFile: { configurable: true, value: async (...args) => {
886
+ this.assertOpen();
887
+ const handle = await fs.openReadFile(...args);
888
+ return new Proxy(Object.create(handle), {
889
+ get: (_target, key) => {
890
+ if (key === "read") return async (...readArgs) => {
891
+ this.assertOpen();
892
+ const bytes = await handle.read(...readArgs);
893
+ this.charge(bytes.byteLength);
894
+ return bytes;
895
+ };
896
+ const value = Reflect.get(handle, key, handle);
897
+ return typeof value === "function" ? value.bind(handle) : value;
898
+ }
899
+ });
900
+ } } } : {},
901
+ ...fs.readStream ? { readStream: { configurable: true, value: (...args) => {
857
902
  this.assertOpen();
858
903
  return this.read(fs.readStream(...args), context.signal);
859
904
  } } } : {}
@@ -886,12 +931,16 @@ var InputByteBudget = class _InputByteBudget {
886
931
  signal.throwIfAborted();
887
932
  }
888
933
  };
934
+ function withInputByteBudget(execute) {
935
+ return (context) => context.inputBudget ? new InputByteBudget(Infinity, context.inputBudget).run(context, execute) : execute(context);
936
+ }
889
937
 
890
938
  export {
891
939
  managedSignalSymbol,
892
940
  addManagedAbortWaiter,
893
941
  removeManagedAbortWaiter,
894
942
  notifyManagedAbortWaiters,
943
+ subscribeAbort,
895
944
  outputFailure,
896
945
  createBufferedOutput,
897
946
  createBytePipe,
@@ -900,6 +949,7 @@ export {
900
949
  pipeBytes,
901
950
  collectText,
902
951
  InputByteBudget,
952
+ withInputByteBudget,
903
953
  collectBytes2 as collectBytes,
904
954
  readBytes2 as readBytes,
905
955
  toByteSource
@@ -5,7 +5,7 @@ import {
5
5
  // packages/safe-bash-command-paste/src/paste.ts
6
6
  init_buffer();
7
7
  import { diagnostic } from "../../safe-bash-io-engine/internal.js";
8
- import { argument, Budget, command, empty, encode, fail, Inputs, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
8
+ import { argument, command, empty, encode, fail, Inputs, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
9
9
  function delimiters(text) {
10
10
  const characters = Array.from(text), result = [];
11
11
  const escapes = { b: "\b", f: "\f", n: "\n", r: "\r", t: " ", v: "\v" };
@@ -26,8 +26,8 @@ function delimiters(text) {
26
26
  }
27
27
  function createPasteCommand(options = {}) {
28
28
  const limits = settings(options);
29
- return command("paste", async (context) => {
30
- const budget = new Budget(context, limits), files = [];
29
+ return command("paste", limits, async (context, budget) => {
30
+ const files = [];
31
31
  let serial = false, separator = 10, list = [Uint8Array.of(9)], literal = false;
32
32
  for (let index = 0; index < context.args.length; index++) {
33
33
  const token = context.args[index];
@@ -78,6 +78,7 @@ function createPasteCommand(options = {}) {
78
78
  reader = await inputs.open(file);
79
79
  } catch (error) {
80
80
  context.signal.throwIfAborted();
81
+ if (budget.hasPendingOutput()) await budget.flushOutput();
81
82
  await diagnostic(context, error);
82
83
  status = 1;
83
84
  continue;
@@ -879,14 +879,11 @@ function tryProcessFlatSelectProjectChunkSync(rawChunk, budget, condKey, outKeys
879
879
  if (rawChunk[0] !== 123 || rawChunk[len - 1] !== 10) return -1;
880
880
  const totalAfter = budget.inputBytes + len;
881
881
  if (totalAfter > budget.maxInputBytesSmi && totalAfter > budget.limits.maxInputBytes) return -1;
882
- let plan = planHolder?.cachedSchemaPlan;
883
- if (!plan) {
884
- const firstNl = rawChunk.indexOf(10, 0);
885
- if (firstNl < 2 || firstNl > 16384) return -1;
886
- plan = getOrCreateFlatSchemaPlan(rawChunk, firstNl, condKey, outKeys, srcKeys);
887
- if (!plan) return -1;
888
- if (planHolder) planHolder.cachedSchemaPlan = plan;
889
- }
882
+ const firstNl = rawChunk.indexOf(10, 0);
883
+ if (firstNl < 2 || firstNl > 16384) return -1;
884
+ const plan = getOrCreateFlatSchemaPlan(rawChunk, firstNl, condKey, outKeys, srcKeys);
885
+ if (planHolder) planHolder.cachedSchemaPlan = plan;
886
+ if (!plan) return -1;
890
887
  let pos = 0;
891
888
  let outPos = 0;
892
889
  let lineCount = 0;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Builder
3
- } from "./chunk-4Y3WVMK4.js";
3
+ } from "./chunk-PV66YWHB.js";
4
4
  import {
5
5
  init_buffer
6
6
  } from "./chunk-HX3SHTCE.js";
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // packages/safe-bash-command-join/src/join.ts
6
6
  init_buffer();
7
- import { argument, Budget, command, compare, empty, encode, fail, Inputs, OrderCheck, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
7
+ import { argument, command, compare, empty, encode, fail, Inputs, OrderCheck, settings } from "../../safe-bash-table-text-engine/table-text/internal.js";
8
8
  function number(value, label) {
9
9
  if (!/^\+?[0-9]+$/u.test(value) || !Number.isSafeInteger(Number(value)) || Number(value) < 1) fail(`invalid ${label}: ${value}`);
10
10
  return Number(value);
@@ -167,9 +167,9 @@ function split(bytes, options, budget) {
167
167
  }
168
168
  function createJoinCommand(factory = {}) {
169
169
  const limits = settings(factory);
170
- return command("join", async (context) => {
171
- const budget = new Budget(context, limits), options = parse(context, budget);
172
- const inputs = new Inputs(context, budget, options.separator), order = new OrderCheck(options.order, context);
170
+ return command("join", limits, async (context, budget) => {
171
+ const options = parse(context, budget);
172
+ const inputs = new Inputs(context, budget, options.separator), order = new OrderCheck(options.order, context, budget);
173
173
  const terminator = Uint8Array.of(options.separator), delimiter = Uint8Array.of(options.delimiter ?? 32);
174
174
  try {
175
175
  const readers = [await inputs.open(options.files[0]), await inputs.open(options.files[1])];
@@ -283,13 +283,13 @@ function createJoinCommand(factory = {}) {
283
283
  }
284
284
  const comparison = compare(rows[0].key, rows[1].key, options.fold);
285
285
  if (comparison !== 0) {
286
+ await order.markUnpaired();
286
287
  const file = comparison < 0 ? 0 : 1;
287
288
  if (options.unpaired.has(file)) await emit(file === 0 ? rows[file] : void 0, file === 1 ? rows[file] : void 0);
288
289
  {
289
290
  const nr = next(file);
290
291
  rows[file] = nr instanceof Promise ? await nr : nr;
291
292
  }
292
- order.unpaired = true;
293
293
  continue;
294
294
  }
295
295
  const key = rows[0].key, groups = [[], []];
@@ -325,6 +325,7 @@ function createJoinCommand(factory = {}) {
325
325
  }
326
326
  for (let file = 0; file < 2; file++) {
327
327
  if (!options.unpaired.has(file) && options.order === "none") continue;
328
+ if (rows[file]) await order.markUnpaired();
328
329
  while (rows[file]) {
329
330
  if (options.unpaired.has(file)) await emit(file === 0 ? rows[file] : void 0, file === 1 ? rows[file] : void 0);
330
331
  rows[file] = await next(file);
@@ -404,7 +404,7 @@ async function run(context, budget) {
404
404
  }
405
405
  let oldText = oldBytes, newText = newBytes;
406
406
  encoding = "latin1";
407
- if (!options.text) {
407
+ {
408
408
  const decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
409
409
  try {
410
410
  const oldDecoded = decoder.decode(encodeBytes(oldBytes, "latin1"));
@@ -37,8 +37,7 @@ var Budget = class _Budget {
37
37
  this.remainingNum = this.unlimited ? 0 : rem;
38
38
  this.remainingSmi = !this.unlimited && rem <= 1073741823 ? rem | 0 : 1073741823;
39
39
  this.signal = context.signal;
40
- this.hasExtYield = hasYieldCheckpoint(context.signal);
41
- this.yieldTimes[0] = performance.now !== defaultPerfNow || this.hasExtYield ? monotonicNow() : -1;
40
+ this.yieldTimes[0] = monotonicNow();
42
41
  this.maxBufferBytes = options.maxBufferBytes ?? Infinity;
43
42
  if (context.signal.aborted) context.signal.throwIfAborted();
44
43
  if (!validatedTextProgramOptions.has(options)) {
@@ -51,6 +50,7 @@ var Budget = class _Budget {
51
50
  }
52
51
  context;
53
52
  options;
53
+ regexByteMode = false;
54
54
  maxBufferBytes;
55
55
  stepsUsed = 0;
56
56
  inUse = false;
@@ -59,7 +59,6 @@ var Budget = class _Budget {
59
59
  unlimited;
60
60
  signal;
61
61
  checkpoints = 0;
62
- hasExtYield = false;
63
62
  yieldTimes = new Float64Array(1);
64
63
  static acquire(context, options) {
65
64
  if (!pooledBudgetA) {
@@ -92,6 +91,7 @@ var Budget = class _Budget {
92
91
  resetForRun(context, options) {
93
92
  if (context.signal.aborted) context.signal.throwIfAborted();
94
93
  const rem = options.maxSteps ?? Infinity;
94
+ this.regexByteMode = false;
95
95
  this.context = context;
96
96
  this.options = options;
97
97
  this.stepsUsed = 0;
@@ -100,8 +100,7 @@ var Budget = class _Budget {
100
100
  this.remainingSmi = !this.unlimited && rem <= 1073741823 ? rem | 0 : 1073741823;
101
101
  this.signal = context.signal;
102
102
  this.checkpoints = 0;
103
- this.hasExtYield = hasYieldCheckpoint(context.signal);
104
- this.yieldTimes[0] = performance.now !== defaultPerfNow || this.hasExtYield ? monotonicNow() : -1;
103
+ this.yieldTimes[0] = monotonicNow();
105
104
  const nextMaxBuf = options.maxBufferBytes ?? Infinity;
106
105
  if (this.maxBufferBytes !== nextMaxBuf) this.maxBufferBytes = nextMaxBuf;
107
106
  }
@@ -133,11 +132,9 @@ var Budget = class _Budget {
133
132
  if ((count & 255) === 0) {
134
133
  return this.yieldCheckpointAsync();
135
134
  }
136
- if (performance.now !== defaultPerfNow || this.hasExtYield || (count & 63) === 0) {
135
+ if (performance.now !== defaultPerfNow || hasYieldCheckpoint(this.signal) || (count & 63) === 0) {
137
136
  const now = monotonicNow();
138
- if (this.yieldTimes[0] < 0) {
139
- this.yieldTimes[0] = now;
140
- } else if (now - this.yieldTimes[0] >= 25) {
137
+ if (now - this.yieldTimes[0] >= 25) {
141
138
  return this.yieldCheckpointAsync();
142
139
  }
143
140
  }