@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
@@ -67,7 +67,8 @@ function parseUrl(text, redirect = false) {
67
67
  function requestHeaders(args, contentType, user, scoped, maxBytes, previous) {
68
68
  const json = args.data[0]?.kind === "json";
69
69
  if (json) contentType = "application/json";
70
- const defaults = [["Accept", json ? "application/json" : "*/*"], ["User-Agent", args.agent ?? "virtual-bash-curl/0.0"]];
70
+ const defaults = [["Accept", json ? "application/json" : "*/*"]];
71
+ if (args.agent !== "") defaults.push(["User-Agent", args.agent ?? "virtual-bash-curl/0.0"]);
71
72
  if (contentType !== void 0) defaults.push(["Content-Type", contentType]);
72
73
  if (args.compressed) defaults.push(["Accept-Encoding", "gzip, deflate"]);
73
74
  const referer = args.autoReferer && previous !== void 0 ? previous : args.referer;
@@ -372,10 +373,12 @@ async function transfer(context, args, input, limits, transport, authorize, star
372
373
  values.method = method;
373
374
  let denyPrivateNetworks = false;
374
375
  let allowed;
376
+ const headers = requestHeaders(resumeOffset ? { ...args, range: `${resumeOffset}-` } : args, currentBody?.contentType, args.user ?? parsed.user, credentialsInScope, limits.maxHeaderBytes, previous);
375
377
  try {
376
378
  allowed = await withSignal(() => authorize({
377
379
  url: currentUrl,
378
380
  method,
381
+ headers,
379
382
  attempt,
380
383
  signal,
381
384
  requirePrivateNetworkDeny() {
@@ -393,7 +396,6 @@ async function transfer(context, args, input, limits, transport, authorize, star
393
396
  if (policy.denyPrivateNetworks && transport.supportsPrivateNetworkDeny !== true) {
394
397
  throw new CurlError(7, "Transport cannot enforce private network policy");
395
398
  }
396
- const headers = requestHeaders(resumeOffset ? { ...args, range: `${resumeOffset}-` } : args, currentBody?.contentType, args.user ?? parsed.user, credentialsInScope, limits.maxHeaderBytes, previous);
397
399
  if (args.verbose) await writeBytes(context.stderr, encode(`> ${method} ${current.origin}
398
400
  ${headers.map(([name]) => `> ${name}: [redacted]
399
401
  `).join("")}`), signal);
@@ -545,7 +547,7 @@ ${headers.map(([name]) => `> ${name}: [redacted]
545
547
  }
546
548
  if (!final.contentDecoded && length && /^\d+$/.test(length) && downloaded !== Number(length)) throw new CurlError(18, "Partial HTTP response body");
547
549
  })();
548
- const decoded = args.compressed && !args.raw && !final.contentDecoded && encoding ? decodeContent(encoded, encoding, bodySignal, args.maxFileSize) : encoded;
550
+ const decoded = args.compressed && !args.raw && !final.contentDecoded && encoding ? decodeContent(encoded, encoding, bodySignal, args.maxFileSize, limits.maxEncodingLayers) : encoded;
549
551
  let outputBytes = 0;
550
552
  try {
551
553
  for await (const chunk of decoded) {
@@ -1,3 +1,4 @@
1
+ import { withInputByteBudget } from "../../../../safe-bash-contracts/index.js";
1
2
  import { createGzipCommands } from "../../../../safe-bash-command-gzip/index.js";
2
3
  import { gzip as pakoGzip, ungzip as pakoUngzip } from "pako";
3
4
  import bz2Factory from "../../../../safe-bash-compression-engine/native/bz2.js";
@@ -22,7 +23,7 @@ export function createCompressionCommands(config = {}) {
22
23
  if (maxDecodedBytes !== undefined && maxDecodedBytes !== Infinity && (!Number.isSafeInteger(maxDecodedBytes) || maxDecodedBytes < 0)) {
23
24
  throw new RangeError("maxDecodedBytes must be a nonnegative safe integer or Infinity");
24
25
  }
25
- const commands = profiles.flatMap(profile => profile.format === "gzip" ? createGzipCommands(config) : profile.format === "bzip2" ? createBzip2Commands(config) : profile.names.map((name) => define(name, async (context) => {
26
+ const commands = profiles.flatMap(profile => profile.format === "gzip" ? createGzipCommands(config) : profile.format === "bzip2" ? createBzip2Commands(config) : profile.names.map((name) => define(name, withInputByteBudget(async (context) => {
26
27
  const options = parseOptions(name, context.args);
27
28
  if (options.help) {
28
29
  await output(context, `Usage: ${name} [OPTION]... [FILE]...\n-c, --stdout, --to-stdout\n-d, --decompress, --uncompress\n-k, --keep\n-f, --force\n-t, --test\n${options.format === "zstd" ? "-1..-9, --best\nHigher levels and --fast[=NUM] are unsupported by the bounded codec.\n" : "-1..-9, --fast, --best\n"}${options.format === "zstd" ? "-q, --quiet (repeat to suppress errors)\n" : ""}${options.format === "gzip" ? "-q, --quiet (suppress warnings)\n-r, --recursive (traverse directories without following symlinks)\n-n, --no-name (always enabled)\n" : `Default compression level: ${options.level}.\n`}-h, --help\nNo FILE or FILE '-' uses stdin; file output uses private VFS staging.\n`);
@@ -80,7 +81,7 @@ export function createCompressionCommands(config = {}) {
80
81
  }
81
82
  }
82
83
  return { exitCode };
83
- })));
84
+ }))));
84
85
  const xzCmds = createXzCommands(config);
85
86
  if (maxDecodedBytes === undefined || maxDecodedBytes === Infinity) {
86
87
  for (const c of [...commands, ...xzCmds])
@@ -2,6 +2,7 @@ import { type CommandContext, type FileStat } from "../contracts/index.js";
2
2
  import type { copyOptions } from "./copy-backup.js";
3
3
  export type CopyAttribute = "mode" | "ownership" | "timestamps" | "links";
4
4
  export type CopyOptions = ReturnType<typeof copyOptions> & {
5
+ readonly maxRecursiveDirectoryDepth?: number;
5
6
  readonly confirmOverwrite?: (operand: string) => Promise<boolean>;
6
7
  };
7
8
  export declare function admitCopyPreservation(context: CommandContext, preserve: ReadonlySet<CopyAttribute>, source: FileStat, target: string, existing?: FileStat): Promise<void>;
@@ -3,8 +3,8 @@ import {
3
3
  createCsplitCommands,
4
4
  csplitCommands,
5
5
  evalSyncCsplit
6
- } from "../../chunks/chunk-QU3BVQ53.js";
7
- import "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-UTBUUFDM.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
8
  export {
9
9
  createCsplitCommand,
10
10
  createCsplitCommands,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "../../chunks/chunk-YG5WAHK7.js";
3
+ } from "../../chunks/chunk-B7TAL7S5.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/docx/index.ts
6
6
  init_platform();
@@ -166,8 +166,8 @@ export function executionCommands(execute, configuration = {}) {
166
166
  let lastDelimMode;
167
167
  const longOptions = { "arg-file": "a", "max-lines": "L", null: "0", "no-run-if-empty": "r", "max-args": "n", "max-chars": "s", replace: "I", delimiter: "d", verbose: "t", "max-procs": "P", exit: "x", eof: "E", "process-slot-var": "process-slot-var:" };
168
168
  const parsed = options(argumentValues.args, shortOptions, longOptions, true, index => { operandIndices.push(index); }, (key, index, offset) => { if (key === "I")
169
- replacementOrigin = { index, offset }; }, key => {
170
- if (key === "I" || key === "L" || key === "n")
169
+ replacementOrigin = { index, offset }; }, (key, optionValue) => {
170
+ if (key === "I" || key === "L" || key === "n" && !(batching === "I" && integer(optionValue, 1) === 1))
171
171
  batching = key;
172
172
  if (key === "0" || key === "d")
173
173
  lastDelimMode = key;
@@ -189,7 +189,7 @@ export function executionCommands(execute, configuration = {}) {
189
189
  const argumentFile = value(parsed, "a");
190
190
  const childInput = argumentFile === undefined ? emptyInput() : context.stdin;
191
191
  const childInputIsDefault = argumentFile === undefined ? true : context.stdinIsDefault;
192
- const maxArgs = replacement === undefined ? integer(batching === "n" ? value(parsed, "n") : (maxLines === undefined ? "5000" : String(Number.MAX_SAFE_INTEGER)), 1) : 1;
192
+ const maxArgs = replacement !== undefined ? 1 : batching === "n" ? integer(value(parsed, "n"), 1) : Infinity;
193
193
  const size = value(parsed, "s");
194
194
  const maxBytes = size === undefined || size === "Infinity" ? Infinity : integer(size, 1);
195
195
  let delimiter = parsed.flags.has("0") ? "\0" : undefined;
@@ -703,9 +703,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
703
703
  const v = a.slice(11);
704
704
  if (!/^[1-9][0-9]*$/.test(v))
705
705
  return undefined;
706
- maxArgs = Number(v);
707
- replaceStr = undefined;
708
- maxLines = undefined;
706
+ if (replaceStr === undefined || Number(v) !== 1) {
707
+ maxArgs = Number(v);
708
+ replaceStr = undefined;
709
+ maxLines = undefined;
710
+ }
709
711
  i++;
710
712
  continue;
711
713
  }
@@ -733,9 +735,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
733
735
  const v = a.startsWith("-n") && a.length > 2 ? a.slice(2) : opArgs[++i];
734
736
  if (!v || !/^[1-9][0-9]*$/.test(v))
735
737
  return undefined;
736
- maxArgs = Number(v);
737
- replaceStr = undefined;
738
- maxLines = undefined;
738
+ if (replaceStr === undefined || Number(v) !== 1) {
739
+ maxArgs = Number(v);
740
+ replaceStr = undefined;
741
+ maxLines = undefined;
742
+ }
739
743
  i++;
740
744
  continue;
741
745
  }
@@ -796,9 +800,11 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
796
800
  ok = false;
797
801
  break;
798
802
  }
799
- maxArgs = Number(v);
800
- replaceStr = undefined;
801
- maxLines = undefined;
803
+ if (replaceStr === undefined || Number(v) !== 1) {
804
+ maxArgs = Number(v);
805
+ replaceStr = undefined;
806
+ maxLines = undefined;
807
+ }
802
808
  break;
803
809
  }
804
810
  else if (ch === "L") {
@@ -1120,7 +1126,7 @@ export function evalSyncXargs(inBytes, opArgs, readFileSync) {
1120
1126
  runEcho(batch);
1121
1127
  }
1122
1128
  else {
1123
- const limit = maxArgs ?? 5000;
1129
+ const limit = maxArgs ?? Infinity;
1124
1130
  for (let k = 0; k < tokens.length; k += limit) {
1125
1131
  runEcho(tokens.slice(k, k + limit));
1126
1132
  }
@@ -2,8 +2,8 @@ import {
2
2
  createFactorCommand,
3
3
  createFactorCommands,
4
4
  factorCommands
5
- } from "../../chunks/chunk-MHZ24KEI.js";
6
- import "../../chunks/chunk-YG5WAHK7.js";
5
+ } from "../../chunks/chunk-AM5ESLPH.js";
6
+ import "../../chunks/chunk-B7TAL7S5.js";
7
7
  export {
8
8
  createFactorCommand,
9
9
  createFactorCommands,
@@ -1,7 +1,7 @@
1
1
  import { type CommandDefinition, type CommandHandler } from "../contracts/index.js";
2
2
  export declare const defaultMkdirExecutors: WeakSet<CommandHandler>;
3
3
  export declare const defaultRmExecutors: WeakSet<CommandHandler>;
4
- export declare function filesystemCommands(maxDirectoryEntries?: number): CommandDefinition[];
4
+ export declare function filesystemCommands(maxDirectoryEntries?: number, maxRecursiveDirectoryDepth?: number): CommandDefinition[];
5
5
  export interface SyncFsStatNode {
6
6
  readonly type: "file" | "directory" | "symlink";
7
7
  readonly size: number;
@@ -27,7 +27,6 @@ import { backupCopyTarget, copyOptions, matchBackupMode, normalizeBackupSuffix }
27
27
  import { admitCopyPreservation, preserveCopyMetadata } from "./copy-preserve.js";
28
28
  // Operand directories start at depth zero; files inside the last admitted
29
29
  // directory do not consume another directory-recursion level.
30
- const MAX_RECURSIVE_DIRECTORY_DEPTH = 1024;
31
30
  const MKDIR_LONG_OPTIONS = Object.freeze({ parents: "p", mode: "m", verbose: "v" });
32
31
  const TOUCH_LONG_OPTIONS = Object.freeze({ "no-create": "c", "no-dereference": "h", reference: "r", date: "d", time: "time:" });
33
32
  const MV_LONG_OPTIONS = Object.freeze({
@@ -312,8 +311,8 @@ async function copy(context, source, target, settings, readDirectory, top = true
312
311
  if (targetStat && targetStat.type !== "directory")
313
312
  throw new FsError("ENOTDIR", { path: target });
314
313
  context.signal.throwIfAborted();
315
- if (ancestors.size > MAX_RECURSIVE_DIRECTORY_DEPTH) {
316
- throw new FsError("ELOOP", { path: source, message: `cp directory depth limit exceeded (${MAX_RECURSIVE_DIRECTORY_DEPTH})` });
314
+ if (ancestors.size > (settings.maxRecursiveDirectoryDepth ?? Infinity)) {
315
+ throw new FsError("ELOOP", { path: source, message: `cp directory depth limit exceeded (${settings.maxRecursiveDirectoryDepth})` });
317
316
  }
318
317
  await admitFilesystemModes(context, "cp", [attributesOnly ? "attributes-recursive" : "recursive"], [target]);
319
318
  const capabilities = await context.fs.capabilitiesFor?.(target, { signal: context.signal }) ?? context.fs.capabilities;
@@ -511,7 +510,10 @@ function modeText(stat) {
511
510
  }
512
511
  export const defaultMkdirExecutors = new WeakSet();
513
512
  export const defaultRmExecutors = new WeakSet();
514
- export function filesystemCommands(maxDirectoryEntries) {
513
+ export function filesystemCommands(maxDirectoryEntries, maxRecursiveDirectoryDepth = Infinity) {
514
+ if (maxRecursiveDirectoryDepth !== Infinity && (!Number.isSafeInteger(maxRecursiveDirectoryDepth) || maxRecursiveDirectoryDepth < 0)) {
515
+ throw new RangeError("maxRecursiveDirectoryDepth must be a nonnegative safe integer or Infinity");
516
+ }
515
517
  const readDirectory = createDirectoryReader(maxDirectoryEntries);
516
518
  const commands = [
517
519
  define("mkdir", context => {
@@ -702,7 +704,7 @@ export function filesystemCommands(maxDirectoryEntries) {
702
704
  }),
703
705
  createTouchCommand(),
704
706
  define("cp", async (context) => {
705
- const parsed = copyOptions(context);
707
+ const parsed = { ...copyOptions(context), maxRecursiveDirectoryDepth };
706
708
  if ((parsed.values.get("t")?.length ?? 0) > 1)
707
709
  throw new UsageError("multiple target directories specified");
708
710
  const destination = await destinations(context, parsed.operands, value(parsed, "t"), parsed.flags.has("T"));
@@ -1044,9 +1046,11 @@ export function filesystemCommands(maxDirectoryEntries) {
1044
1046
  if (!parsed.flags.has("f"))
1045
1047
  requireOperands(parsed.operands);
1046
1048
  const recursive = parsed.flags.has("r") || parsed.flags.has("R");
1049
+ const recursiveTraversal = recursive && (interactive === "always" || maxRecursiveDirectoryDepth !== Infinity);
1047
1050
  const backingMem = getRuntimeBackingFileSystem(context.fs);
1048
1051
  const caps = context.fs.capabilities;
1049
1052
  const fastStockMemory = interactive === "never" &&
1053
+ !recursiveTraversal &&
1050
1054
  backingMem !== undefined &&
1051
1055
  backingMem.capabilitiesFor === undefined &&
1052
1056
  backingMem.symlinkCount === 0 &&
@@ -1132,14 +1136,14 @@ export function filesystemCommands(maxDirectoryEntries) {
1132
1136
  }
1133
1137
  if (stat.type === "directory" && !recursive && !parsed.flags.has("d"))
1134
1138
  throw new FsError("EISDIR", { path });
1135
- if (interactive === "always") {
1139
+ if (interactive === "always" || recursiveTraversal) {
1136
1140
  const display = escapeText(operand, "display");
1137
1141
  if (stat.type === "directory" && recursive) {
1138
- if (depth > MAX_RECURSIVE_DIRECTORY_DEPTH)
1142
+ if (depth > maxRecursiveDirectoryDepth)
1139
1143
  throw new FsError("ELOOP", { path });
1140
1144
  const entries = await readDirectory(context, path, true);
1141
1145
  if (entries.length) {
1142
- if (!await confirm(`descend into directory '${display}'`))
1146
+ if (interactive === "always" && !await confirm(`descend into directory '${display}'`))
1143
1147
  return false;
1144
1148
  let removed = true;
1145
1149
  for (const entry of entries)
@@ -1150,10 +1154,10 @@ export function filesystemCommands(maxDirectoryEntries) {
1150
1154
  }
1151
1155
  }
1152
1156
  const type = stat.type === "file" ? stat.size === 0 ? "regular empty file" : "regular file" : stat.type === "symlink" ? "symbolic link" : "directory";
1153
- if (!await confirm(`remove ${type} '${display}'`))
1157
+ if (interactive === "always" && !await confirm(`remove ${type} '${display}'`))
1154
1158
  return false;
1155
1159
  }
1156
- if (stat.type === "directory" && (!recursive || interactive === "always")) {
1160
+ if (stat.type === "directory" && (!recursive || recursiveTraversal)) {
1157
1161
  try {
1158
1162
  await removeEmptyDirectory(context, path, readDirectory);
1159
1163
  }
@@ -1633,8 +1637,8 @@ export function filesystemCommands(maxDirectoryEntries) {
1633
1637
  if (ancestors.has(physical))
1634
1638
  throw new FsError("ELOOP", { path });
1635
1639
  context.signal.throwIfAborted();
1636
- if (ancestors.size > MAX_RECURSIVE_DIRECTORY_DEPTH) {
1637
- throw new FsError("ELOOP", { path, message: `ls directory depth limit exceeded (${MAX_RECURSIVE_DIRECTORY_DEPTH})` });
1640
+ if (ancestors.size > maxRecursiveDirectoryDepth) {
1641
+ throw new FsError("ELOOP", { path, message: `ls directory depth limit exceeded (${maxRecursiveDirectoryDepth})` });
1638
1642
  }
1639
1643
  ancestors.add(physical);
1640
1644
  try {
@@ -1712,7 +1716,7 @@ export function filesystemCommands(maxDirectoryEntries) {
1712
1716
  for (const command of commands) {
1713
1717
  if (command.name === "mkdir")
1714
1718
  defaultMkdirExecutors.add(command.execute);
1715
- else if (command.name === "rm")
1719
+ else if (command.name === "rm" && maxRecursiveDirectoryDepth === Infinity)
1716
1720
  defaultRmExecutors.add(command.execute);
1717
1721
  }
1718
1722
  return commands;
@@ -3,8 +3,8 @@ import {
3
3
  createGetoptCommands,
4
4
  evalSyncGetopt,
5
5
  getoptCommands
6
- } from "../../chunks/chunk-3L3T6LYV.js";
7
- import "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-AUSNDQTJ.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
8
  export {
9
9
  createGetoptCommand,
10
10
  createGetoptCommands,
@@ -3,8 +3,8 @@ import {
3
3
  createHexdumpCommand,
4
4
  createHexdumpCommands,
5
5
  hexdumpCommands
6
- } from "../../chunks/chunk-M4CFCXHN.js";
7
- import "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-CS4MNM6I.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
8
  export {
9
9
  createHdCommand,
10
10
  createHexdumpCommand,
@@ -1,6 +1,6 @@
1
1
  import { HtmlError, detachHtmlNode, htmlText, htmlq, htmlqBaseline, htmlqBytes, inclusiveHtmlDescendants, parseHtml, parseHtmlSync, parseHtmlqArguments, selectHtml, serializeHtml, serializeHtmlBytes } from "../../../safe-bash-command-htmlq/index.js";
2
2
  export { selectHtml, parseHtmlqArguments, htmlqBytes, htmlq, parseHtml, parseHtmlSync, inclusiveHtmlDescendants, serializeHtml, serializeHtmlBytes, htmlText, detachHtmlNode, HtmlError, htmlqBaseline, };
3
- export type { HtmlqArguments, HtmlqCommandOptions, HtmlqCommandsOptions, HtmlqRunOptions, HtmlqResult, HtmlAccounting, HtmlOptions, HtmlLimits, HtmlNode, HtmlNamespace, HtmlAttribute, HtmlErrorCode, } from "../../../safe-bash-command-htmlq/index.js";
3
+ export type { HtmlqArguments, HtmlqCommandOptions, HtmlqCommandsOptions, HtmlqLimits, HtmlqRunOptions, HtmlqResult, HtmlAccounting, HtmlOptions, HtmlLimits, HtmlNode, HtmlNamespace, HtmlAttribute, HtmlErrorCode, } from "../../../safe-bash-command-htmlq/index.js";
4
4
  export { createHtmlqCommand, createHtmlqCommands, htmlqCommand, htmlqCommands } from "../../../safe-bash-command-htmlq/index.js";
5
5
  export declare function evalSyncHtmlq(inBytes: Uint8Array | undefined, opArgs: readonly string[], readFileSync?: (filePath: string) => Uint8Array | undefined, writeFileSync?: (filePath: string, bytes: Uint8Array) => boolean): string | undefined;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -3,8 +3,8 @@ import {
3
3
  createIconvCommands,
4
4
  evalSyncIconv,
5
5
  iconvCommands
6
- } from "../../chunks/chunk-H6JW3E4F.js";
7
- import "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-CTVWDACF.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
8
  export {
9
9
  createIconvCommand,
10
10
  createIconvCommands,
@@ -6,8 +6,8 @@ import {
6
6
  dos2unixCommands,
7
7
  dos2unixCommands2,
8
8
  evalSyncLineEndings
9
- } from "../../chunks/chunk-4SEW2Q6H.js";
10
- import "../../chunks/chunk-YG5WAHK7.js";
9
+ } from "../../chunks/chunk-3R3AANOR.js";
10
+ import "../../chunks/chunk-B7TAL7S5.js";
11
11
  export {
12
12
  createDos2unixCommand,
13
13
  createDos2unixCommands,
@@ -22,8 +22,8 @@ import {
22
22
  templateYaml,
23
23
  validateLlmTemplateParameters,
24
24
  validateModelOptions
25
- } from "../../chunks/chunk-TFGRKY43.js";
26
- import "../../chunks/chunk-YG5WAHK7.js";
25
+ } from "../../chunks/chunk-OQRVVGR6.js";
26
+ import "../../chunks/chunk-B7TAL7S5.js";
27
27
  export {
28
28
  createElevenLabsProvider,
29
29
  createLlmCommand,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "../../../chunks/chunk-YG5WAHK7.js";
3
+ } from "../../../chunks/chunk-B7TAL7S5.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/llm/providers/index.ts
6
6
  init_platform();
@@ -7,9 +7,9 @@ import {
7
7
  mdqCommand,
8
8
  mdqCommands,
9
9
  parseMdqArguments
10
- } from "../../chunks/chunk-PPYM75Z3.js";
11
- import "../../chunks/chunk-NLAW7KDI.js";
12
- import "../../chunks/chunk-YG5WAHK7.js";
10
+ } from "../../chunks/chunk-OV6IHKO6.js";
11
+ import "../../chunks/chunk-E7OYNDGL.js";
12
+ import "../../chunks/chunk-B7TAL7S5.js";
13
13
  export {
14
14
  MdqError,
15
15
  createMdqCommand,
@@ -3,7 +3,7 @@ import {
3
3
  __commonJS,
4
4
  __toESM,
5
5
  init_platform
6
- } from "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-B7TAL7S5.js";
7
7
 
8
8
  // node_modules/xmlchars/xml/1.0/ed5.js
9
9
  var require_ed5 = __commonJS({
@@ -1,4 +1,4 @@
1
1
  import type { NetworkCommandsOptions } from "./types.js";
2
2
  export * from "../../../safe-bash-command-curl/curl.js";
3
- export declare function createCurlCommand(options: NetworkCommandsOptions): import("../../../safe-bash-contracts/index.js").CommandDefinition;
3
+ export declare function createCurlCommand(options?: NetworkCommandsOptions): import("../../../safe-bash-contracts/index.js").CommandDefinition;
4
4
  //# sourceMappingURL=curl.d.ts.map
@@ -2,9 +2,7 @@ import { createCurlCommand as createPortableCommand } from "../../../safe-bash-c
2
2
  import { createDefaultHttpTransport, requiresFiniteUrlLimits } from "#safe-bash-network-platform";
3
3
  import { limitsFor } from "./shared.js";
4
4
  export * from "../../../safe-bash-command-curl/curl.js";
5
- export function createCurlCommand(options) {
6
- if (typeof options?.authorize !== "function")
7
- throw new TypeError("curl requires an explicit network authorizer");
5
+ export function createCurlCommand(options = {}) {
8
6
  const limits = limitsFor(options.limits);
9
7
  if (requiresFiniteUrlLimits && (!Number.isFinite(limits.maxUrls) || !Number.isFinite(limits.maxBufferBytes)))
10
8
  throw new TypeError("Portable network commands require finite maxUrls and maxBufferBytes limits");
@@ -12,10 +12,10 @@ import {
12
12
  evalSyncCurl,
13
13
  evalSyncWget,
14
14
  networkCommands
15
- } from "../../chunks/chunk-K2VCOJ2B.js";
16
- import "../../chunks/chunk-KV7PKOHV.js";
17
- import "../../chunks/chunk-NLAW7KDI.js";
18
- import "../../chunks/chunk-YG5WAHK7.js";
15
+ } from "../../chunks/chunk-K6VCD7IY.js";
16
+ import "../../chunks/chunk-IWDICZVK.js";
17
+ import "../../chunks/chunk-E7OYNDGL.js";
18
+ import "../../chunks/chunk-B7TAL7S5.js";
19
19
  export {
20
20
  CurlError,
21
21
  cloudflareWorkerNetworkLimits,
@@ -1,6 +1,2 @@
1
- export declare const requiresFiniteUrlLimits = true;
2
- export declare function createDefaultHttpTransport(): never;
3
- export declare function randomBytes(length: number): Uint8Array;
4
- export declare function validateHeaderName(name: string): void;
5
- export declare function validateHeaderValue(_name: string, value: string): void;
1
+ export * from "../../../safe-bash-network-engine/platform-portable.js";
6
2
  //# sourceMappingURL=platform-portable.d.ts.map
@@ -1,27 +1,2 @@
1
- export const requiresFiniteUrlLimits = true;
2
- export function createDefaultHttpTransport() {
3
- throw new TypeError("Portable network commands require an explicit HTTP transport; inject createFetchTransport() or a host transport");
4
- }
5
- export function randomBytes(length) {
6
- const bytes = new Uint8Array(length);
7
- globalThis.crypto.getRandomValues(bytes);
8
- return bytes;
9
- }
10
- export function validateHeaderName(name) {
11
- if (!name.length)
12
- throw new TypeError("Invalid HTTP header name");
13
- for (const character of name) {
14
- const code = character.charCodeAt(0);
15
- if (!(code >= 48 && code <= 57 || code >= 65 && code <= 90 || code >= 97 && code <= 122 || "!#$%&'*+-.^_`|~".includes(character))) {
16
- throw new TypeError("Invalid HTTP header name");
17
- }
18
- }
19
- }
20
- export function validateHeaderValue(_name, value) {
21
- for (const character of value) {
22
- const code = character.charCodeAt(0);
23
- if (code !== 9 && (code < 32 || code === 127 || code > 255))
24
- throw new TypeError("Invalid HTTP header value");
25
- }
26
- }
1
+ export * from "../../../safe-bash-network-engine/platform-portable.js";
27
2
  //# sourceMappingURL=platform-portable.js.map
@@ -6,8 +6,8 @@ export { createFetchTransport, type FetchTransportOptions } from "./fetch-transp
6
6
  export { createOriginAuthorizer, type OriginAllowlist, type OriginAuthorizerOptions } from "./authorizer.js";
7
7
  export { createCurlCommand } from "./curl.js";
8
8
  export { createWgetCommand } from "./wget.js";
9
- export declare function createNetworkCommands(options: NetworkCommandsOptions): readonly CommandDefinition[];
10
- export declare function networkCommands(options: NetworkCommandsOptions): VirtualShellPlugin;
9
+ export declare function createNetworkCommands(options?: NetworkCommandsOptions): readonly CommandDefinition[];
10
+ export declare function networkCommands(options?: NetworkCommandsOptions): VirtualShellPlugin;
11
11
  export declare const createCurlCommands: typeof createNetworkCommands;
12
12
  export declare const curlCommands: typeof networkCommands;
13
13
  export declare function evalSyncCurl(opArgs: readonly string[]): string | undefined;
@@ -7,10 +7,10 @@ export { createFetchTransport } from "./fetch-transport.js";
7
7
  export { createOriginAuthorizer } from "./authorizer.js";
8
8
  export { createCurlCommand } from "./curl.js";
9
9
  export { createWgetCommand } from "./wget.js";
10
- export function createNetworkCommands(options) {
10
+ export function createNetworkCommands(options = {}) {
11
11
  return [createCurlCommand(options), createWgetCommand(options)];
12
12
  }
13
- export function networkCommands(options) {
13
+ export function networkCommands(options = {}) {
14
14
  const definitions = createNetworkCommands(options);
15
15
  return {
16
16
  name: "network-commands",
@@ -102,12 +102,12 @@ export function createNodeHttpTransport(options = {}) {
102
102
  request = (url.protocol === "https:" ? httpsRequest : httpRequest)(url, {
103
103
  method: input.method,
104
104
  path: curlRequestTarget(input.url),
105
- headers: pinned && headers.host?.length === 1 ? { ...headers, host: headers.host[0] } : headers,
105
+ headers: headers.host?.length === 1 ? { ...headers, host: headers.host[0] } : headers,
106
106
  signal, maxHeaderSize: Number.isFinite(maxHeaderSize) ? maxHeaderSize : Number.MAX_SAFE_INTEGER, agent: false,
107
107
  ...(requestCa === undefined ? {} : { ca: requestCa }),
108
108
  ...(input.ca === undefined ? {} : { rejectUnauthorized: true }),
109
109
  ...pinned,
110
- ...(pinned && url.protocol === "https:" ? {
110
+ ...(url.protocol === "https:" ? {
111
111
  servername: isIP(hostname) ? "" : hostname,
112
112
  rejectUnauthorized: true,
113
113
  checkServerIdentity: (_servername, certificate) => checkServerIdentity(hostname, certificate),
@@ -1,4 +1,4 @@
1
1
  import type { NetworkCommandsOptions } from "./types.js";
2
2
  export * from "../../../safe-bash-command-wget/wget.js";
3
- export declare function createWgetCommand(options: NetworkCommandsOptions): import("../../../safe-bash-contracts/index.js").CommandDefinition;
3
+ export declare function createWgetCommand(options?: NetworkCommandsOptions): import("../../../safe-bash-contracts/index.js").CommandDefinition;
4
4
  //# sourceMappingURL=wget.d.ts.map
@@ -2,9 +2,7 @@ import { createWgetCommand as createPortableCommand } from "../../../safe-bash-c
2
2
  import { createDefaultHttpTransport, requiresFiniteUrlLimits } from "#safe-bash-network-platform";
3
3
  import { limitsFor } from "./shared.js";
4
4
  export * from "../../../safe-bash-command-wget/wget.js";
5
- export function createWgetCommand(options) {
6
- if (typeof options?.authorize !== "function")
7
- throw new TypeError("wget requires an explicit network authorizer");
5
+ export function createWgetCommand(options = {}) {
8
6
  const limits = limitsFor(options.limits);
9
7
  if (requiresFiniteUrlLimits && (!Number.isFinite(limits.maxUrls) || !Number.isFinite(limits.maxBufferBytes)))
10
8
  throw new TypeError("Portable network commands require finite maxUrls and maxBufferBytes limits");
@@ -1,4 +1,5 @@
1
1
  import { commandLimits } from "../safejs/options.js";
2
+ import { yieldTurn } from "../../../safe-bash-contracts/yield.js";
2
3
  import { SafeJsCommandLimitError } from "../safejs/types.js";
3
4
  export function nodeReadFile(options, fs, signal, fail, pending) {
4
5
  const read = fs.readFile;
@@ -21,11 +22,11 @@ export function nodeReadFile(options, fs, signal, fail, pending) {
21
22
  }
22
23
  const done = callback;
23
24
  const completion = Promise.resolve().then(() => read(path, encoding)).then(async (text) => {
24
- await new Promise(resolve => setImmediate(resolve));
25
+ await yieldTurn(signal);
25
26
  signal.throwIfAborted();
26
27
  return done(null, text);
27
28
  }, async (error) => {
28
- await new Promise(resolve => setImmediate(resolve));
29
+ await yieldTurn(signal);
29
30
  signal.throwIfAborted();
30
31
  return done(error);
31
32
  }).then(() => undefined).catch(fail).finally(() => pending.delete(completion));
@@ -2,14 +2,14 @@ import {
2
2
  createSafeJsNodeCommand,
3
3
  createSafeJsNodeCommands,
4
4
  safeJsNodeCommands
5
- } from "../../chunks/chunk-RKKRJ54E.js";
6
- import "../../chunks/chunk-TYD7EVUJ.js";
7
- import "../../chunks/chunk-BHJE5LPZ.js";
8
- import "../../chunks/chunk-VYZTG3GV.js";
9
- import "../../chunks/chunk-PYVEAFJM.js";
10
- import "../../chunks/chunk-KV7PKOHV.js";
11
- import "../../chunks/chunk-NLAW7KDI.js";
12
- import "../../chunks/chunk-YG5WAHK7.js";
5
+ } from "../../chunks/chunk-FNDNHAGE.js";
6
+ import "../../chunks/chunk-IVRQ4BXL.js";
7
+ import "../../chunks/chunk-D3ANYGMC.js";
8
+ import "../../chunks/chunk-NZQXYWA3.js";
9
+ import "../../chunks/chunk-74GHTNJA.js";
10
+ import "../../chunks/chunk-IWDICZVK.js";
11
+ import "../../chunks/chunk-E7OYNDGL.js";
12
+ import "../../chunks/chunk-B7TAL7S5.js";
13
13
  export {
14
14
  createSafeJsNodeCommand as createNodeCommand,
15
15
  createSafeJsNodeCommands as createNodeCommands,
@@ -5,7 +5,7 @@ export function resolveNodeLimits(options = {}) {
5
5
  for (const [name, value] of Object.entries(options)) {
6
6
  if (name === "sabBytes" || !Object.hasOwn(nodeLimits, name))
7
7
  throw new TypeError(`Unknown Node limit: ${name}`);
8
- if (!Number.isSafeInteger(value) || value < 0 || ["admissionMs", "oldGenerationMiB", "youngGenerationMiB", "codeMiB", "stackMiB"].includes(name) && value < 1)
8
+ if (value !== Infinity && (!Number.isSafeInteger(value) || value < 0 || ["admissionMs", "oldGenerationMiB", "youngGenerationMiB", "codeMiB", "stackMiB"].includes(name) && value < 1))
9
9
  throw new RangeError(`Invalid Node limit: ${name}`);
10
10
  }
11
11
  return Object.freeze({ ...nodeLimits, ...options });
@@ -19,9 +19,9 @@ import {
19
19
  restoreEnvironment,
20
20
  selectOpBackendContext,
21
21
  selectOpGlobalFlags
22
- } from "../../chunks/chunk-I7L3G3NX.js";
23
- import "../../chunks/chunk-NLAW7KDI.js";
24
- import "../../chunks/chunk-YG5WAHK7.js";
22
+ } from "../../chunks/chunk-UE5KZDEK.js";
23
+ import "../../chunks/chunk-E7OYNDGL.js";
24
+ import "../../chunks/chunk-B7TAL7S5.js";
25
25
  export {
26
26
  captureEnvironment,
27
27
  createDocumentHandlers,
@@ -3,8 +3,8 @@ import {
3
3
  createPrCommands,
4
4
  evalSyncPr,
5
5
  prCommands
6
- } from "../../chunks/chunk-F3RV2F72.js";
7
- import "../../chunks/chunk-YG5WAHK7.js";
6
+ } from "../../chunks/chunk-CHYGPFVM.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
8
  export {
9
9
  createPrCommand,
10
10
  createPrCommands,