@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
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AwkArray
3
- } from "./chunk-V6MSPQLA.js";
3
+ } from "./chunk-6BNTBWIK.js";
4
4
  import {
5
5
  quoteAwk
6
6
  } from "./chunk-EQ4HV54N.js";
@@ -245,6 +245,17 @@ function input(context, name = "-") {
245
245
  }
246
246
  return readBytes(context.stdin, context.signal);
247
247
  }
248
+ const budget = context.inputBudget;
249
+ if (budget && Number.isFinite(budget.maxBytes)) {
250
+ return (async function* () {
251
+ let total = 0;
252
+ for await (const bytes of inputFileSlow(context, name)) {
253
+ total += bytes.byteLength;
254
+ budget.check(total);
255
+ yield bytes;
256
+ }
257
+ })();
258
+ }
248
259
  const backing = getRuntimeBackingFileSystem(context.fs);
249
260
  if (!context.signal.aborted && backing !== void 0 && backing.capabilitiesFor === void 0 && context.fs.readStream && context.fs.capabilities.streamingRead !== false && context.fs.capabilities.read !== false && Object.getPrototypeOf(backing)?.constructor?.name === "MemoryFileSystem" && !Object.prototype.hasOwnProperty.call(backing, "readStream")) {
250
261
  const resolvedPath = pathOf(context, name);
@@ -27,6 +27,8 @@ function createOriginAuthorizer(allowlist = "*", options = {}) {
27
27
  }
28
28
  return (request) => {
29
29
  const url = new URL(request.url);
30
+ const hostHeaders = request.headers?.filter(([name]) => name.toLowerCase() === "host") ?? [];
31
+ if (hostHeaders.length > 1 || hostHeaders.some(([, value]) => value.toLowerCase() !== url.host.toLowerCase())) return false;
30
32
  const hostname = url.hostname.toLowerCase().replace(/\.$/u, "");
31
33
  if (denyPrivateNetworks) {
32
34
  request.requirePrivateNetworkDeny?.();
@@ -5,7 +5,7 @@ import {
5
5
  outputFailure,
6
6
  removeManagedAbortWaiter,
7
7
  writeBytes
8
- } from "./chunk-J5SN3PZ3.js";
8
+ } from "./chunk-VXSLJH7G.js";
9
9
  import {
10
10
  init_buffer
11
11
  } from "./chunk-HX3SHTCE.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";
@@ -51,6 +51,11 @@ function inferDelimiter(path) {
51
51
  var shortOptions = { B: "byte-offset", S: "start-condition", E: "end-condition", H: "human-readable", c: "check-alignment", a: "approx", p: "parallel", t: "threads", h: "help", o: "output", d: "delimiter", n: "no-headers", j: "just-names", s: "start", e: "end", l: "len", i: "index", I: "indices", L: "last" };
52
52
  var switches = /* @__PURE__ */ new Set(["help", "no-headers", "just-names", "csv", "human-readable", "check-alignment", "approx", "parallel", "raw", "evaluate", "evaluate-file"]);
53
53
  var extraShort = {
54
+ dedup: { s: "select", l: "keep-last", S: "sorted" },
55
+ enum: { c: "column-name", S: "start" },
56
+ from: { f: "format" },
57
+ cat: { p: "pad" },
58
+ split: { S: "size", O: "out-dir", f: "filename", c: "chunks" },
54
59
  head: { l: "limit" },
55
60
  tail: { l: "limit" },
56
61
  sort: { s: "select", N: "numeric", R: "reverse", u: "uniq" },
@@ -61,9 +66,18 @@ var extraShort = {
61
66
  freq: { s: "select", l: "limit", A: "all", N: "no-extra" },
62
67
  join: { i: "ignore-case" }
63
68
  };
64
- for (const name of ["numeric", "reverse", "uniq", "exact", "ignore-case", "invert-match", "every-column", "all", "no-extra", "inner", "left", "right", "full", "semi", "anti", "cross", "nulls"]) switches.add(name);
69
+ for (const name of ["keep-last", "sorted", "keep-duplicates", "pad", "sort-keys", "single-object", "omit", "numeric", "reverse", "uniq", "exact", "ignore-case", "invert-match", "every-column", "all", "no-extra", "inner", "left", "right", "full", "semi", "anti", "cross", "nulls"]) switches.add(name);
65
70
  var common = ["help", "output", "delimiter"];
66
71
  var allowed = {
72
+ dedup: /* @__PURE__ */ new Set([...common, "no-headers", "select", "keep-last", "sorted", "keep-duplicates"]),
73
+ enum: /* @__PURE__ */ new Set([...common, "no-headers", "column-name", "start"]),
74
+ transpose: new Set(common),
75
+ agg: /* @__PURE__ */ new Set([...common, "no-headers"]),
76
+ groupby: /* @__PURE__ */ new Set([...common, "no-headers"]),
77
+ to: /* @__PURE__ */ new Set([...common, "no-headers", "nulls", "omit"]),
78
+ from: /* @__PURE__ */ new Set([...common, "format", "sort-keys", "single-object", "column-name"]),
79
+ cat: /* @__PURE__ */ new Set([...common, "no-headers", "pad"]),
80
+ split: /* @__PURE__ */ new Set(["help", "delimiter", "no-headers", "size", "out-dir", "filename", "chunks"]),
67
81
  head: /* @__PURE__ */ new Set([...common, "no-headers", "limit"]),
68
82
  tail: /* @__PURE__ */ new Set([...common, "no-headers", "limit"]),
69
83
  sort: /* @__PURE__ */ new Set([...common, "no-headers", "select", "numeric", "reverse", "uniq"]),
@@ -149,7 +163,8 @@ async function parseArguments(args, cwd, budget) {
149
163
  if (values.has("evaluate") && values.has("evaluate-file")) throw new XanError("conflicting expression modes");
150
164
  let rightSelection;
151
165
  let operand;
152
- if (["search", "filter", "rename"].includes(command)) {
166
+ if (command === "groupby") rightSelection = operands.shift();
167
+ if (["search", "filter", "rename", "agg", "groupby", "to", "cat"].includes(command)) {
153
168
  operand = operands.shift();
154
169
  if (operand === void 0 && !help) throw new XanError(`${command} requires an argument`);
155
170
  }
@@ -168,16 +183,16 @@ async function parseArguments(args, cwd, budget) {
168
183
  }
169
184
  if (values.has("limit")) await unsigned(values.get("limit"), "--limit", budget);
170
185
  if (selection === void 0 && !help) throw new UsageError("Usage:\n xan select [options] [--] <selection> [<input>]\n xan select --help\n\nInvalid subcommand or arguments! Use the -h/--help flag for more information.");
171
- if (command !== "headers" && command !== "join" && operands.length > 1) throw new XanError("too many input files");
186
+ if (command !== "headers" && command !== "join" && command !== "cat" && operands.length > 1) throw new XanError("too many input files");
172
187
  if (operands.filter((path2) => path2 === "-").length > 1) throw new XanError("stdin may appear only once");
173
188
  if (!operands.length) operands.push("-");
174
189
  budget.bound("maxInputFiles", operands.length);
175
- const path = (value) => {
190
+ const path = (value, input = false) => {
176
191
  if (!value || value.includes("\0")) throw new XanError("invalid path");
177
- if (/\.(gz|zst|cdx|ndjson|jsonl|vcf|gtf|gff2|sam|bed)$/u.test(value)) throw new XanError(`unsupported in bounded CSV profile: format ${value}`);
192
+ if (input && command !== "from" && /\.(gz|zst|cdx|ndjson|jsonl|vcf|gtf|gff2|sam|bed)$/u.test(value)) throw new XanError(`unsupported in bounded CSV profile: format ${value}`);
178
193
  return value === "-" ? value : resolvePath(cwd, value);
179
194
  };
180
- for (const operand2 of operands) path(operand2);
195
+ for (const operand2 of operands) path(operand2, true);
181
196
  const output = values.get("output");
182
197
  if (output !== void 0) path(output);
183
198
  let delimiter;
@@ -3,21 +3,21 @@ import {
3
3
  } from "./chunk-PTT3I223.js";
4
4
  import {
5
5
  splitRegex
6
- } from "./chunk-3DT2YOGW.js";
6
+ } from "./chunk-VSRGNQCP.js";
7
7
  import {
8
8
  matchRegex,
9
9
  scanRegex,
10
10
  substituteRegex
11
- } from "./chunk-BKCNF5U3.js";
11
+ } from "./chunk-KQLD3AED.js";
12
12
  import {
13
13
  formatValue
14
- } from "./chunk-53P53XFM.js";
14
+ } from "./chunk-BPE5INLI.js";
15
15
  import {
16
16
  indices
17
- } from "./chunk-2QHG43WJ.js";
17
+ } from "./chunk-4BB2SWJ5.js";
18
18
  import {
19
19
  capture
20
- } from "./chunk-GI4CJED2.js";
20
+ } from "./chunk-CQTRW45K.js";
21
21
  import {
22
22
  fromDateIso8601,
23
23
  gmtime,
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-GMIHJYDG.js";
29
29
  import {
30
30
  delpaths
31
- } from "./chunk-TYCGMRLM.js";
31
+ } from "./chunk-OYYV7ZAF.js";
32
32
  import {
33
33
  binary,
34
34
  compare,
@@ -42,7 +42,7 @@ import {
42
42
  sortedKeys,
43
43
  stableSort,
44
44
  type
45
- } from "./chunk-UMDIOL3O.js";
45
+ } from "./chunk-KXU3IRUO.js";
46
46
  import {
47
47
  splitString
48
48
  } from "./chunk-HMOZ6XVJ.js";
@@ -51,7 +51,7 @@ import {
51
51
  measureValue,
52
52
  parseJson,
53
53
  stringify
54
- } from "./chunk-YGC6OS5O.js";
54
+ } from "./chunk-WECIOOQB.js";
55
55
  import {
56
56
  JqError,
57
57
  JqHalt,
@@ -1810,7 +1810,21 @@ var Interpreter = class _Interpreter {
1810
1810
  }
1811
1811
  if (name === "split") {
1812
1812
  for await (const separator of this.run(args[0], input)) {
1813
- yield await splitString(input, separator, budget);
1813
+ if (!args[1]) {
1814
+ yield await splitString(input, separator, budget);
1815
+ continue;
1816
+ }
1817
+ for await (const flags of this.run(args[1], input)) {
1818
+ const parts = [];
1819
+ let bytes = 2;
1820
+ for await (const part of splitRegex(input, separator, budget, flags)) {
1821
+ budget.collection(parts.length + 1);
1822
+ bytes += budget.value(part) + (parts.length ? 1 : 0);
1823
+ if (bytes > budget.limits.maxValueBytes) throw new JqLimitError("maxValueBytes");
1824
+ parts.push(part);
1825
+ }
1826
+ yield parts;
1827
+ }
1814
1828
  }
1815
1829
  return;
1816
1830
  }
@@ -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) {
@@ -0,0 +1,14 @@
1
+ import {
2
+ applyPatchCommands,
3
+ createApplyPatchCommand,
4
+ createApplyPatchCommands,
5
+ evalSyncApplyPatch
6
+ } from "../../chunks/chunk-XAQMU6OY.js";
7
+ import "../../chunks/chunk-IWDICZVK.js";
8
+ import "../../chunks/chunk-B7TAL7S5.js";
9
+ export {
10
+ applyPatchCommands,
11
+ createApplyPatchCommand,
12
+ createApplyPatchCommands,
13
+ evalSyncApplyPatch
14
+ };
@@ -0,0 +1,36 @@
1
+ import {
2
+ DEFAULT_ARCHIVE_LIMITS,
3
+ archiveCommands,
4
+ createArchiveCommands,
5
+ createTarCommand,
6
+ createTarCommands,
7
+ createUnzipCommand,
8
+ createUnzipCommands,
9
+ createZipCommand,
10
+ createZipCommands,
11
+ evalSyncTar,
12
+ evalSyncUnzip,
13
+ evalSyncZip,
14
+ tarCommands,
15
+ unzipCommands,
16
+ zipCommands
17
+ } from "../../chunks/chunk-QGUV42T5.js";
18
+ import "../../chunks/chunk-IWDICZVK.js";
19
+ import "../../chunks/chunk-B7TAL7S5.js";
20
+ export {
21
+ DEFAULT_ARCHIVE_LIMITS,
22
+ archiveCommands,
23
+ createArchiveCommands,
24
+ createTarCommand,
25
+ createTarCommands,
26
+ createUnzipCommand,
27
+ createUnzipCommands,
28
+ createZipCommand,
29
+ createZipCommands,
30
+ evalSyncTar,
31
+ evalSyncUnzip,
32
+ evalSyncZip,
33
+ tarCommands,
34
+ unzipCommands,
35
+ zipCommands
36
+ };
@@ -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])
@@ -0,0 +1,12 @@
1
+ import {
2
+ columnCommands,
3
+ createColumnCommand,
4
+ createColumnCommands
5
+ } from "../../chunks/chunk-3HQU4OJO.js";
6
+ import "../../chunks/chunk-IWDICZVK.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
+ export {
9
+ columnCommands,
10
+ createColumnCommand,
11
+ createColumnCommands
12
+ };
@@ -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();
@@ -0,0 +1,14 @@
1
+ import {
2
+ createDuCommand,
3
+ createDuCommands,
4
+ duCommands,
5
+ evalSyncDu
6
+ } from "../../chunks/chunk-GEG3BWGE.js";
7
+ import "../../chunks/chunk-IWDICZVK.js";
8
+ import "../../chunks/chunk-B7TAL7S5.js";
9
+ export {
10
+ createDuCommand,
11
+ createDuCommands,
12
+ duCommands,
13
+ evalSyncDu
14
+ };
@@ -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
  }
@@ -0,0 +1,12 @@
1
+ import {
2
+ createExprCommand,
3
+ createExprCommands,
4
+ exprCommands
5
+ } from "../../chunks/chunk-HZ7BWKQ3.js";
6
+ import "../../chunks/chunk-IWDICZVK.js";
7
+ import "../../chunks/chunk-B7TAL7S5.js";
8
+ export {
9
+ createExprCommand,
10
+ createExprCommands,
11
+ exprCommands
12
+ };
@@ -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,
@@ -0,0 +1,14 @@
1
+ import {
2
+ createFileCommand,
3
+ createFileCommands,
4
+ evalSyncFile,
5
+ fileCommands
6
+ } from "../../chunks/chunk-4BSJLKNM.js";
7
+ import "../../chunks/chunk-IWDICZVK.js";
8
+ import "../../chunks/chunk-B7TAL7S5.js";
9
+ export {
10
+ createFileCommand,
11
+ createFileCommands,
12
+ evalSyncFile,
13
+ fileCommands
14
+ };
@@ -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 => {
@@ -575,10 +577,17 @@ export function filesystemCommands(maxDirectoryEntries) {
575
577
  if (admitted) {
576
578
  const effectiveMode = backingMem.capabilities.permissions !== false ? 0o777 & ~umask : undefined;
577
579
  let allCreated = true;
580
+ ended = false;
578
581
  for (let i = 0; i < rawArgs.length; i++) {
579
582
  const a = rawArgs[i];
580
- if (a === "--" || a === "-p" || a === "--parents")
581
- continue;
583
+ if (!ended) {
584
+ if (a === "--") {
585
+ ended = true;
586
+ continue;
587
+ }
588
+ if (a === "-p" || a === "--parents")
589
+ continue;
590
+ }
582
591
  if (!backingMem.tryMkdirFastSync(pathOf(context, a), recursive, effectiveMode)) {
583
592
  allCreated = false;
584
593
  break;
@@ -702,7 +711,7 @@ export function filesystemCommands(maxDirectoryEntries) {
702
711
  }),
703
712
  createTouchCommand(),
704
713
  define("cp", async (context) => {
705
- const parsed = copyOptions(context);
714
+ const parsed = { ...copyOptions(context), maxRecursiveDirectoryDepth };
706
715
  if ((parsed.values.get("t")?.length ?? 0) > 1)
707
716
  throw new UsageError("multiple target directories specified");
708
717
  const destination = await destinations(context, parsed.operands, value(parsed, "t"), parsed.flags.has("T"));
@@ -1044,9 +1053,11 @@ export function filesystemCommands(maxDirectoryEntries) {
1044
1053
  if (!parsed.flags.has("f"))
1045
1054
  requireOperands(parsed.operands);
1046
1055
  const recursive = parsed.flags.has("r") || parsed.flags.has("R");
1056
+ const recursiveTraversal = recursive && (interactive === "always" || maxRecursiveDirectoryDepth !== Infinity);
1047
1057
  const backingMem = getRuntimeBackingFileSystem(context.fs);
1048
1058
  const caps = context.fs.capabilities;
1049
1059
  const fastStockMemory = interactive === "never" &&
1060
+ !recursiveTraversal &&
1050
1061
  backingMem !== undefined &&
1051
1062
  backingMem.capabilitiesFor === undefined &&
1052
1063
  backingMem.symlinkCount === 0 &&
@@ -1132,14 +1143,14 @@ export function filesystemCommands(maxDirectoryEntries) {
1132
1143
  }
1133
1144
  if (stat.type === "directory" && !recursive && !parsed.flags.has("d"))
1134
1145
  throw new FsError("EISDIR", { path });
1135
- if (interactive === "always") {
1146
+ if (interactive === "always" || recursiveTraversal) {
1136
1147
  const display = escapeText(operand, "display");
1137
1148
  if (stat.type === "directory" && recursive) {
1138
- if (depth > MAX_RECURSIVE_DIRECTORY_DEPTH)
1149
+ if (depth > maxRecursiveDirectoryDepth)
1139
1150
  throw new FsError("ELOOP", { path });
1140
1151
  const entries = await readDirectory(context, path, true);
1141
1152
  if (entries.length) {
1142
- if (!await confirm(`descend into directory '${display}'`))
1153
+ if (interactive === "always" && !await confirm(`descend into directory '${display}'`))
1143
1154
  return false;
1144
1155
  let removed = true;
1145
1156
  for (const entry of entries)
@@ -1150,10 +1161,10 @@ export function filesystemCommands(maxDirectoryEntries) {
1150
1161
  }
1151
1162
  }
1152
1163
  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}'`))
1164
+ if (interactive === "always" && !await confirm(`remove ${type} '${display}'`))
1154
1165
  return false;
1155
1166
  }
1156
- if (stat.type === "directory" && (!recursive || interactive === "always")) {
1167
+ if (stat.type === "directory" && (!recursive || recursiveTraversal)) {
1157
1168
  try {
1158
1169
  await removeEmptyDirectory(context, path, readDirectory);
1159
1170
  }
@@ -1633,8 +1644,8 @@ export function filesystemCommands(maxDirectoryEntries) {
1633
1644
  if (ancestors.has(physical))
1634
1645
  throw new FsError("ELOOP", { path });
1635
1646
  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})` });
1647
+ if (ancestors.size > maxRecursiveDirectoryDepth) {
1648
+ throw new FsError("ELOOP", { path, message: `ls directory depth limit exceeded (${maxRecursiveDirectoryDepth})` });
1638
1649
  }
1639
1650
  ancestors.add(physical);
1640
1651
  try {
@@ -1712,7 +1723,7 @@ export function filesystemCommands(maxDirectoryEntries) {
1712
1723
  for (const command of commands) {
1713
1724
  if (command.name === "mkdir")
1714
1725
  defaultMkdirExecutors.add(command.execute);
1715
- else if (command.name === "rm")
1726
+ else if (command.name === "rm" && maxRecursiveDirectoryDepth === Infinity)
1716
1727
  defaultRmExecutors.add(command.execute);
1717
1728
  }
1718
1729
  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,