@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
@@ -47901,6 +47901,7 @@ function formatExtractedPageText(page, options = {}) {
47901
47901
  if (Math.abs(dy) > 4) return dy;
47902
47902
  return a.bbox[0] - b.bbox[0];
47903
47903
  });
47904
+ const leftMargin = allLines.reduce((left, line) => Math.min(left, line.bbox[0]), Infinity);
47904
47905
  const rows = [];
47905
47906
  for (const l of allLines) {
47906
47907
  const lastRow = rows[rows.length - 1];
@@ -47914,17 +47915,17 @@ function formatExtractedPageText(page, options = {}) {
47914
47915
  row.sort((a, b) => a.bbox[0] - b.bbox[0]);
47915
47916
  const pitch = options.fixedPitch !== void 0 && options.fixedPitch > 0 ? options.fixedPitch : 6;
47916
47917
  let lineStr = "";
47917
- let curX = 0;
47918
+ let curX = leftMargin;
47918
47919
  if (options.fixedPitch !== void 0 && options.fixedPitch > 0) {
47919
47920
  const words = row.flatMap((seg) => seg.words).sort((a, b) => a.bbox[0] - b.bbox[0]);
47920
47921
  for (const w of words) {
47921
- const spaces = Math.max(curX > 0 ? 1 : 0, Math.round((w.bbox[0] - curX) / pitch));
47922
+ const spaces = Math.max(lineStr.length > 0 ? 1 : 0, Math.round((w.bbox[0] - curX) / pitch));
47922
47923
  lineStr += " ".repeat(Math.min(spaces, 80)) + w.text;
47923
47924
  curX = w.bbox[2];
47924
47925
  }
47925
47926
  } else {
47926
47927
  for (const seg of row) {
47927
- const spaces = Math.max(curX > 0 ? 2 : 0, Math.round((seg.bbox[0] - curX) / pitch));
47928
+ const spaces = Math.max(lineStr.length > 0 ? 2 : 0, Math.round((seg.bbox[0] - curX) / pitch));
47928
47929
  lineStr += " ".repeat(Math.min(spaces, 40)) + seg.text;
47929
47930
  curX = seg.bbox[2];
47930
47931
  }
@@ -57693,16 +57694,31 @@ async function openFileDescriptor(path, options, capabilities, acquire) {
57693
57694
  }
57694
57695
 
57695
57696
  // ../safe-fs/dist/contracts/virtual-path.js
57696
- var MAX_PATH_BYTES = 65536;
57697
- var MAX_PATH_COMPONENTS = 2048;
57698
- function validatePath(path, maxComponents = MAX_PATH_COMPONENTS) {
57697
+ function pathByteLength(path) {
57698
+ let bytes = 0;
57699
+ for (const point of path) {
57700
+ const code = point.codePointAt(0);
57701
+ bytes += code <= 127 ? 1 : code <= 2047 ? 2 : code <= 65535 ? 3 : 4;
57702
+ }
57703
+ return bytes;
57704
+ }
57705
+ function validatePath(path, limits = {}) {
57706
+ const maxBytes = typeof limits === "number" ? Infinity : limits.maxPathBytes ?? Infinity;
57707
+ const maxComponents = typeof limits === "number" ? limits : limits.maxPathComponents ?? Infinity;
57708
+ for (const value of [maxBytes, maxComponents]) {
57709
+ if (value !== Infinity && (!Number.isSafeInteger(value) || value < 0)) {
57710
+ throw new RangeError("Path limits must be nonnegative safe integers or Infinity");
57711
+ }
57712
+ }
57699
57713
  if (typeof path !== "string" || path.includes("\0")) {
57700
57714
  throw new FsError("EINVAL", { syscall: "resolve", message: "paths must be strings without NUL bytes" });
57701
57715
  }
57702
- if (path.length > MAX_PATH_BYTES) {
57716
+ if (maxBytes !== Infinity && pathByteLength(path) > maxBytes) {
57703
57717
  throw new FsError("ENAMETOOLONG", { syscall: "resolve", path });
57704
57718
  }
57705
- const limit = Math.min(maxComponents, MAX_PATH_COMPONENTS);
57719
+ if (maxComponents === Infinity)
57720
+ return;
57721
+ const limit = maxComponents;
57706
57722
  let components2 = 0;
57707
57723
  let inComponent = false;
57708
57724
  for (let i = 0; i < path.length; i++) {
@@ -58351,11 +58367,14 @@ function components(path, signal) {
58351
58367
  }
58352
58368
  return result;
58353
58369
  }
58354
- function resolveMissingTarget(root, path, signal) {
58370
+ function resolveMissingTarget(root, path, signal, limits = {}) {
58371
+ validatePath(path, limits);
58355
58372
  const fail3 = (code, failedPath = path) => {
58356
58373
  throw new FsError(code, { syscall: "realpath", path: failedPath });
58357
58374
  };
58358
58375
  const origin = components(path, signal);
58376
+ let remainingBytes = (limits.maxPathBytes ?? Infinity) - pathByteLength(path);
58377
+ let remainingComponents = (limits.maxPathComponents ?? Infinity) - origin.length;
58359
58378
  const initial = { node: root, name: "" };
58360
58379
  let position = initial;
58361
58380
  let links = 0;
@@ -58408,7 +58427,10 @@ function resolveMissingTarget(root, path, signal) {
58408
58427
  if (node.type === "symlink") {
58409
58428
  if (++links > 40)
58410
58429
  return fail3("ELOOP");
58430
+ validatePath(node.target, { maxPathBytes: remainingBytes, maxPathComponents: remainingComponents });
58411
58431
  const names2 = components(node.target, signal);
58432
+ remainingBytes -= pathByteLength(node.target);
58433
+ remainingComponents -= names2.length;
58412
58434
  if (node.target.endsWith("/"))
58413
58435
  names2.push({ name: ".", start: node.target.length });
58414
58436
  if (node.target.startsWith("/"))
@@ -58612,26 +58634,22 @@ function readConfigRecord(value, label, keys) {
58612
58634
 
58613
58635
  // ../safe-fs/dist/fs/memory/limits.js
58614
58636
  var defaultMemoryFileSystemLimits = Object.freeze({
58637
+ maxPathBytes: Infinity,
58638
+ maxPathComponents: Infinity,
58615
58639
  maxFileBytes: Infinity,
58616
58640
  maxRetainedBytes: Infinity,
58617
58641
  maxMetadataUnits: Infinity
58618
58642
  });
58619
58643
  function normalizeMemoryFileSystemLimits(options) {
58620
- const keys = ["maxFileBytes", "maxRetainedBytes", "maxMetadataUnits"];
58644
+ const keys = ["maxPathBytes", "maxPathComponents", "maxFileBytes", "maxRetainedBytes", "maxMetadataUnits"];
58621
58645
  const record2 = readConfigRecord(options, "memory option", [...keys, "maxBytes"]);
58622
58646
  const limits = { ...defaultMemoryFileSystemLimits };
58623
- if (Object.hasOwn(record2, "maxBytes") && record2.maxBytes !== void 0) {
58624
- if (typeof record2.maxBytes !== "number" || !Number.isSafeInteger(record2.maxBytes) || record2.maxBytes < 0) {
58625
- throw new RangeError("maxBytes must be a nonnegative safe integer");
58626
- }
58627
- limits.maxBytes = record2.maxBytes;
58628
- }
58629
- for (const key of keys) {
58630
- if (!Object.hasOwn(record2, key))
58631
- continue;
58647
+ for (const key of [...keys, "maxBytes"]) {
58632
58648
  const value = record2[key];
58649
+ if (value === void 0 || value === Infinity)
58650
+ continue;
58633
58651
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < (key === "maxMetadataUnits" ? 1 : 0)) {
58634
- throw new RangeError(`${key} must be a ${key === "maxMetadataUnits" ? "positive" : "nonnegative"} safe integer`);
58652
+ throw new RangeError(`${key} must be a ${key === "maxMetadataUnits" ? "positive" : "nonnegative"} safe integer or Infinity`);
58635
58653
  }
58636
58654
  limits[key] = value;
58637
58655
  }
@@ -58680,12 +58698,10 @@ var DUMMY_POOL_FILE_NODE = new MemoryFileNode(0, 0, null, 0, DUMMY_POOL_ALLOCATI
58680
58698
  DUMMY_POOL_FILE_NODE.atimeMs = DUMMY_POOL_FILE_NODE.mtimeMs = DUMMY_POOL_FILE_NODE.ctimeMs = DUMMY_POOL_FILE_NODE.birthtimeMs = 17e11;
58681
58699
  var defaultDateNow = Date.now;
58682
58700
  var fastWriteCachedNow = Date.now();
58683
- var lastFastMapMiss = {
58684
- map: void 0,
58685
- key: "",
58686
- slot: -1
58687
- };
58688
58701
  var FastDirectoryEntriesMap = class {
58702
+ // Keep speculative slots local so a failed write cannot pin a tenant globally.
58703
+ _missKey = "";
58704
+ _missSlot = -1;
58689
58705
  _table = new Int16Array(128).fill(-1);
58690
58706
  _mask = 127;
58691
58707
  _keys = new Array(64).fill("");
@@ -58722,9 +58738,8 @@ var FastDirectoryEntriesMap = class {
58722
58738
  getForWriteWithHash(k, h) {
58723
58739
  let slot = h & this._mask;
58724
58740
  if (this.size === 0) {
58725
- lastFastMapMiss.map = this;
58726
- lastFastMapMiss.key = k;
58727
- lastFastMapMiss.slot = slot;
58741
+ this._missKey = k;
58742
+ this._missSlot = slot;
58728
58743
  return void 0;
58729
58744
  }
58730
58745
  const mask = this._mask;
@@ -58734,9 +58749,8 @@ var FastDirectoryEntriesMap = class {
58734
58749
  while (true) {
58735
58750
  const idx = table[slot];
58736
58751
  if (idx === -1) {
58737
- lastFastMapMiss.map = this;
58738
- lastFastMapMiss.key = k;
58739
- lastFastMapMiss.slot = firstDeleted !== -1 ? firstDeleted : slot;
58752
+ this._missKey = k;
58753
+ this._missSlot = firstDeleted !== -1 ? firstDeleted : slot;
58740
58754
  return void 0;
58741
58755
  }
58742
58756
  if (idx === -2) {
@@ -58785,6 +58799,7 @@ var FastDirectoryEntriesMap = class {
58785
58799
  return this.get(k) !== void 0;
58786
58800
  }
58787
58801
  _rebuild(newCap) {
58802
+ this._missKey = "";
58788
58803
  const newTableLen = newCap * 2;
58789
58804
  const newMask = newTableLen - 1;
58790
58805
  const newTable = newCap <= 16384 ? new Int16Array(newTableLen).fill(-1) : new Int32Array(newTableLen).fill(-1);
@@ -58824,15 +58839,16 @@ var FastDirectoryEntriesMap = class {
58824
58839
  this._next = writeIdx;
58825
58840
  }
58826
58841
  set(k, v) {
58827
- if (this === lastFastMapMiss.map && k === lastFastMapMiss.key && this._next < this._keys.length) {
58842
+ if (k === this._missKey && this._next < this._keys.length) {
58828
58843
  const entryIdx = this._next++;
58829
- this._table[lastFastMapMiss.slot] = entryIdx;
58844
+ this._table[this._missSlot] = entryIdx;
58830
58845
  this._keys[entryIdx] = k;
58831
58846
  this._vals[entryIdx] = v;
58832
58847
  this.size++;
58833
- lastFastMapMiss.map = void 0;
58848
+ this._missKey = "";
58834
58849
  return this;
58835
58850
  }
58851
+ this._missKey = "";
58836
58852
  if (this._next >= this._keys.length) {
58837
58853
  this._rebuild(this.size * 2 <= this._keys.length ? this._keys.length : this._keys.length * 2);
58838
58854
  }
@@ -58863,6 +58879,7 @@ var FastDirectoryEntriesMap = class {
58863
58879
  }
58864
58880
  }
58865
58881
  delete(k) {
58882
+ this._missKey = "";
58866
58883
  if (this.size === 0)
58867
58884
  return false;
58868
58885
  let slot = this._hash(k);
@@ -58888,6 +58905,7 @@ var FastDirectoryEntriesMap = class {
58888
58905
  }
58889
58906
  }
58890
58907
  clear() {
58908
+ this._missKey = "";
58891
58909
  if (this._next > 0) {
58892
58910
  this._table.fill(-1);
58893
58911
  for (let i = 0; i < this._next; i++) {
@@ -59340,7 +59358,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
59340
59358
  const owner = ownedStores.get(this);
59341
59359
  if (path !== "")
59342
59360
  this.validatePath(path, "realpath");
59343
- return resolveMissingTarget(owner.root, path || ".", options.signal);
59361
+ return resolveMissingTarget(owner.root, path || ".", options.signal, this.ledger.limits);
59344
59362
  }
59345
59363
  async confineExtraction(roots, options = {}) {
59346
59364
  options.signal?.throwIfAborted();
@@ -59561,6 +59579,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
59561
59579
  }
59562
59580
  replaceData(node, allocation, length = allocation.data.byteLength) {
59563
59581
  const previous = node.allocation;
59582
+ node.sourceRef = void 0;
59564
59583
  this.totalBytes += length - node.byteLength;
59565
59584
  node.byteLength = length;
59566
59585
  node.view = length === allocation.data.byteLength ? allocation.data : void 0;
@@ -59593,6 +59612,8 @@ var MemoryFileSystem = class _MemoryFileSystem {
59593
59612
  this.fail("EINVAL", syscall, path);
59594
59613
  if (path.length === 0)
59595
59614
  this.fail("ENOENT", syscall, path);
59615
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
59616
+ validatePath(path, this.ledger.limits);
59596
59617
  }
59597
59618
  permission(node, mask, syscall, path) {
59598
59619
  if ((node.mode >> 6 & mask) !== mask)
@@ -59614,6 +59635,8 @@ var MemoryFileSystem = class _MemoryFileSystem {
59614
59635
  node.mtimeMs = node.ctimeMs = now;
59615
59636
  }
59616
59637
  resolveNode(path, syscall, followFinal = true) {
59638
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
59639
+ validatePath(path, this.ledger.limits);
59617
59640
  const cache = memoryCaches.get(this.ledger);
59618
59641
  if (this.symlinkCount === 0 && isCleanAbsolutePath(path)) {
59619
59642
  const fastDir = cache.lastFastDirNode;
@@ -59698,7 +59721,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
59698
59721
  start = slash + 1;
59699
59722
  }
59700
59723
  }
59701
- let remainingPathUnits = 65536 - path.length;
59724
+ let remainingPathUnits = this.ledger.limits.maxPathBytes - pathByteLength(path);
59702
59725
  if (remainingPathUnits < 0)
59703
59726
  this.fail("ENAMETOOLONG", syscall, path);
59704
59727
  let initialComponents = 0;
@@ -59708,12 +59731,12 @@ var MemoryFileSystem = class _MemoryFileSystem {
59708
59731
  inComp = false;
59709
59732
  else if (!inComp) {
59710
59733
  inComp = true;
59711
- if (++initialComponents > 256)
59734
+ if (++initialComponents > this.ledger.limits.maxPathComponents)
59712
59735
  this.fail("ENAMETOOLONG", syscall, path);
59713
59736
  }
59714
59737
  }
59715
- const pending = path.split("/").filter(Boolean);
59716
- let remainingComponents = 256 - pending.length;
59738
+ let pending = path.split("/").filter(Boolean);
59739
+ let remainingComponents = this.ledger.limits.maxPathComponents - pending.length;
59717
59740
  if (path.endsWith("/"))
59718
59741
  pending.push("");
59719
59742
  const stack = [{ node: this.root, name: "" }];
@@ -59763,9 +59786,9 @@ var MemoryFileSystem = class _MemoryFileSystem {
59763
59786
  if (node.type === "symlink" && (options.followFinal !== false || pending.length > 0)) {
59764
59787
  if (++links > 40)
59765
59788
  this.fail("ELOOP", syscall, path);
59766
- if (node.target.length > remainingPathUnits)
59789
+ if (pathByteLength(node.target) > remainingPathUnits)
59767
59790
  this.fail("ENAMETOOLONG", syscall, path);
59768
- remainingPathUnits -= node.target.length;
59791
+ remainingPathUnits -= pathByteLength(node.target);
59769
59792
  const target = node.target.split("/").filter(Boolean);
59770
59793
  if (target.length > remainingComponents)
59771
59794
  this.fail("ENAMETOOLONG", syscall, path);
@@ -59774,7 +59797,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
59774
59797
  target.push("");
59775
59798
  if (options.resizeCreate !== void 0 && target.at(-1) === "" && pending[0] === "")
59776
59799
  target.pop();
59777
- pending.unshift(...target);
59800
+ pending = target.concat(pending);
59778
59801
  if (node.target.startsWith("/"))
59779
59802
  stack.splice(1);
59780
59803
  continue;
@@ -59790,6 +59813,8 @@ var MemoryFileSystem = class _MemoryFileSystem {
59790
59813
  };
59791
59814
  }
59792
59815
  file(path, syscall) {
59816
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
59817
+ validatePath(path, this.ledger.limits);
59793
59818
  if (this.symlinkCount === 0 && path.charCodeAt(0) === 47 && path.length > 1 && path.indexOf("/", 1) === -1 && !path.includes("\0")) {
59794
59819
  const name = path === _lastFileSlice1Path ? _lastFileSlice1Name : (_lastFileSlice1Path = path, _lastFileSlice1Name = path.slice(1));
59795
59820
  if (name !== "." && name !== "..") {
@@ -60064,6 +60089,8 @@ var MemoryFileSystem = class _MemoryFileSystem {
60064
60089
  }, syscall, path);
60065
60090
  }
60066
60091
  writeData(path, data, options, syscall) {
60092
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
60093
+ validatePath(path, this.ledger.limits);
60067
60094
  if (!(data instanceof Uint8Array))
60068
60095
  throw new TypeError("Memory files require Uint8Array data");
60069
60096
  const target = this.prepareWrite(path, options, syscall);
@@ -60177,12 +60204,15 @@ var MemoryFileSystem = class _MemoryFileSystem {
60177
60204
  node.byteLength = length;
60178
60205
  node.view = length === allocation.data.byteLength ? allocation.data : void 0;
60179
60206
  }
60207
+ node.sourceRef = void 0;
60180
60208
  this.changed(node, now);
60181
60209
  }
60182
60210
  writeMemoryFileFast(path, data, append, mode) {
60211
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
60212
+ validatePath(path, this.ledger.limits);
60183
60213
  const cache = memoryCaches.get(this.ledger);
60184
60214
  const syscall = append ? "appendFile" : "writeFile";
60185
- if (append && path === cache.lastFastFilePath && cache.lastFastFileNode !== void 0 && cache.lastFastFileNode.nlink !== 0 && cache.lastFastDirNode !== void 0 && cache.lastFastDirNode.nlink !== 0 && (cache.lastFastDirNode.mode & 1) !== 0 && (cache.lastFastFileNode.mode & 2) !== 0) {
60215
+ if (append && path === cache.lastFastFilePath && cache.lastFastFileNode !== void 0 && cache.lastFastFileNode.nlink !== 0 && cache.lastFastDirNode !== void 0 && cache.lastFastDirNode.nlink !== 0 && (cache.lastFastDirNode.mode & 64) !== 0 && (cache.lastFastFileNode.mode & 128) !== 0) {
60186
60216
  const current2 = cache.lastFastFileNode;
60187
60217
  const length2 = current2.byteLength + data.byteLength;
60188
60218
  this.admitSize(current2, length2, syscall, path);
@@ -60196,7 +60226,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60196
60226
  let name = "";
60197
60227
  const cachedPrefix = cache.lastFastDirPrefix;
60198
60228
  const cachedDir = cache.lastFastDirNode;
60199
- if (cachedDir !== void 0 && cachedDir.nlink !== 0 && (cachedDir.mode & 1) !== 0 && cachedPrefix.length > 1 && path.startsWith(cachedPrefix) && path.indexOf("/", cachedPrefix.length) === -1) {
60229
+ if (cachedDir !== void 0 && cachedDir.nlink !== 0 && (cachedDir.mode & 64) !== 0 && cachedPrefix.length > 1 && path.startsWith(cachedPrefix) && path.indexOf("/", cachedPrefix.length) === -1) {
60200
60230
  parent = cachedDir;
60201
60231
  name = path.slice(cachedPrefix.length);
60202
60232
  if (exceedsComponentByteLimit2(name))
@@ -60209,7 +60239,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60209
60239
  name = path.slice(start);
60210
60240
  if (exceedsComponentByteLimit2(name))
60211
60241
  this.fail("ENAMETOOLONG", syscall, path);
60212
- if (start > 1 && (parent.mode & 1) !== 0) {
60242
+ if (start > 1 && (parent.mode & 64) !== 0) {
60213
60243
  cache.lastFastDirPrefix = path.slice(0, start);
60214
60244
  cache.lastFastDirNode = parent;
60215
60245
  }
@@ -60329,6 +60359,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60329
60359
  let ino = this.nextInode;
60330
60360
  this.nextInode = ino + batchCount;
60331
60361
  let nextIdx = 1;
60362
+ entries2._missKey = "";
60332
60363
  entries2._next = 1 + batchCount;
60333
60364
  entries2.size = 1 + batchCount;
60334
60365
  const table = entries2._table;
@@ -60378,12 +60409,15 @@ var MemoryFileSystem = class _MemoryFileSystem {
60378
60409
  }
60379
60410
  }
60380
60411
  writeMemoryFileInDirFast(dirPrefix, name, data, append, mode, nameHash) {
60412
+ if (this.ledger.limits.maxPathBytes !== Infinity || this.ledger.limits.maxPathComponents !== Infinity)
60413
+ validatePath(dirPrefix + name, this.ledger.limits);
60381
60414
  const cache = this._cache;
60382
60415
  if (!append && dirPrefix === cache.lastFastDirPrefix && cache.lastFastDirNode !== void 0 && cache.lastFastDirNode.nlink !== 0 && (cache.lastFastDirNode.mode & 192) === 192 && name.length <= 85 && this.ledger.hasInfiniteRetained && this.ledger.hasInfiniteFileBytes && this.ledger.limits.maxBytes === void 0 && sharedFileNodePoolLen > 0) {
60383
60416
  const parent = cache.lastFastDirNode;
60384
60417
  const entries2 = parent.entries;
60385
60418
  const existing = nameHash !== void 0 ? entries2.getForWriteWithHash(name, nameHash) : entries2.getForWrite(name);
60386
60419
  if (existing === void 0 && entries2._next < entries2._keys.length) {
60420
+ this.ledger.reserve(name.length * 2, 2, "writeFile", name);
60387
60421
  const now = fastWriteCachedNow;
60388
60422
  const length = data.byteLength;
60389
60423
  const node = sharedFileNodePool[--sharedFileNodePoolLen];
@@ -60405,13 +60439,11 @@ var MemoryFileSystem = class _MemoryFileSystem {
60405
60439
  node.allocation = DUMMY_POOL_ALLOCATION;
60406
60440
  node.sourceRef = node.data.subarray(0);
60407
60441
  const entryIdx = entries2._next++;
60408
- entries2._table[lastFastMapMiss.slot] = entryIdx;
60442
+ entries2._table[entries2._missSlot] = entryIdx;
60409
60443
  entries2._keys[entryIdx] = name;
60410
60444
  entries2._vals[entryIdx] = node;
60411
60445
  entries2.size++;
60412
- lastFastMapMiss.map = void 0;
60413
- lastFastMapMiss.key = "";
60414
- this.ledger.reserve(name.length * 2, 2, "writeFile", name);
60446
+ entries2._missKey = "";
60415
60447
  this.totalBytes += length;
60416
60448
  this.mutationTick = this.mutationTick + 1 | 0;
60417
60449
  parent.revision = parent.revision < 1073741823 ? parent.revision + 1 | 0 : Math.min(Number.MAX_SAFE_INTEGER + 1, parent.revision + 1);
@@ -60424,7 +60456,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60424
60456
  }
60425
60457
  const syscall = append ? "appendFile" : "writeFile";
60426
60458
  try {
60427
- if (append && dirPrefix === cache.lastFastDirPrefix && name === cache.lastFastFileName && cache.lastFastFileNode !== void 0 && cache.lastFastFileNode.nlink !== 0 && cache.lastFastDirNode !== void 0 && cache.lastFastDirNode.nlink !== 0 && (cache.lastFastDirNode.mode & 1) !== 0 && (cache.lastFastFileNode.mode & 2) !== 0) {
60459
+ if (append && dirPrefix === cache.lastFastDirPrefix && name === cache.lastFastFileName && cache.lastFastFileNode !== void 0 && cache.lastFastFileNode.nlink !== 0 && cache.lastFastDirNode !== void 0 && cache.lastFastDirNode.nlink !== 0 && (cache.lastFastDirNode.mode & 64) !== 0 && (cache.lastFastFileNode.mode & 128) !== 0) {
60428
60460
  const current2 = cache.lastFastFileNode;
60429
60461
  const length2 = current2.byteLength + data.byteLength;
60430
60462
  this.admitSize(current2, length2, syscall, name);
@@ -60435,7 +60467,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60435
60467
  }
60436
60468
  let parent = this.root;
60437
60469
  const cachedDir = cache.lastFastDirNode;
60438
- if (cachedDir !== void 0 && cachedDir.nlink !== 0 && (cachedDir.mode & 1) !== 0 && dirPrefix === cache.lastFastDirPrefix) {
60470
+ if (cachedDir !== void 0 && cachedDir.nlink !== 0 && (cachedDir.mode & 64) !== 0 && dirPrefix === cache.lastFastDirPrefix) {
60439
60471
  parent = cachedDir;
60440
60472
  if (exceedsComponentByteLimit2(name))
60441
60473
  this.fail("ENAMETOOLONG", syscall, name);
@@ -60460,7 +60492,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60460
60492
  this.permission(parent, 1, syscall, name);
60461
60493
  if (exceedsComponentByteLimit2(name))
60462
60494
  this.fail("ENAMETOOLONG", syscall, name);
60463
- if (dirPrefix.length > 1 && (parent.mode & 1) !== 0) {
60495
+ if (dirPrefix.length > 1 && (parent.mode & 64) !== 0) {
60464
60496
  cache.lastFastDirPrefix = dirPrefix;
60465
60497
  cache.lastFastDirNode = parent;
60466
60498
  }
@@ -60536,11 +60568,7 @@ var MemoryFileSystem = class _MemoryFileSystem {
60536
60568
  cache.lastFastFilePath = "";
60537
60569
  cache.lastFastFileName = name;
60538
60570
  cache.lastFastFileNode = node;
60539
- lastFastMapMiss.map = void 0;
60540
- lastFastMapMiss.key = "";
60541
60571
  } catch (error) {
60542
- lastFastMapMiss.map = void 0;
60543
- lastFastMapMiss.key = "";
60544
60572
  this.ledger.release(nameBytes, 2);
60545
60573
  throw error;
60546
60574
  }
@@ -62534,27 +62562,42 @@ function* parseXmlSteps(input, limits = {}) {
62534
62562
  throw new XmlLimitError("maxContentNodes", "XML content node limit exceeded");
62535
62563
  };
62536
62564
  let pendingWork = 0;
62537
- const skipWhitespace = () => {
62565
+ const skipWhitespace = function* () {
62538
62566
  const start2 = offset;
62539
62567
  while (offset < source.length) {
62540
62568
  const c = source.charCodeAt(offset);
62541
62569
  if (c !== 32 && c !== 9 && c !== 10 && c !== 13)
62542
62570
  break;
62543
62571
  offset++;
62572
+ pendingWork++;
62573
+ if (pendingWork >= 512) {
62574
+ yield 512;
62575
+ pendingWork -= 512;
62576
+ }
62544
62577
  }
62545
62578
  return offset - start2;
62546
62579
  };
62547
- const scanName = () => {
62580
+ const scanName = function* () {
62548
62581
  const start2 = offset;
62549
62582
  while (offset < source.length) {
62550
62583
  const c = source.charCodeAt(offset);
62551
62584
  if (c === 32 || c === 9 || c === 13 || c === 10 || c === 47 || c === 61 || c === 62 || c === 63)
62552
62585
  break;
62553
62586
  offset++;
62587
+ pendingWork++;
62588
+ if (pendingWork >= 512) {
62589
+ yield 512;
62590
+ pendingWork -= 512;
62591
+ }
62554
62592
  }
62555
62593
  const name = source.slice(start2, offset);
62594
+ pendingWork += offset - start2;
62595
+ while (pendingWork >= 512) {
62596
+ yield 512;
62597
+ pendingWork -= 512;
62598
+ }
62556
62599
  const [prefix, localName] = qualifiedNameSync(name, qualifiedNames);
62557
- return [name, prefix, localName, (offset - start2) * 2];
62600
+ return [name, prefix, localName];
62558
62601
  };
62559
62602
  while (offset < source.length) {
62560
62603
  pendingWork += 1;
@@ -62591,11 +62634,15 @@ function* parseXmlSteps(input, limits = {}) {
62591
62634
  }
62592
62635
  } else {
62593
62636
  for (let index = 0; index < resolved.length; index++) {
62637
+ pendingWork++;
62638
+ if (pendingWork >= 512) {
62639
+ yield 512;
62640
+ pendingWork -= 512;
62641
+ }
62594
62642
  const c = resolved.charCodeAt(index);
62595
62643
  if (c !== 32 && c !== 9 && c !== 13 && c !== 10)
62596
62644
  invalid("text outside the root");
62597
62645
  }
62598
- pendingWork += resolved.length;
62599
62646
  while (pendingWork >= 512) {
62600
62647
  yield 512;
62601
62648
  pendingWork -= 512;
@@ -62637,8 +62684,7 @@ function* parseXmlSteps(input, limits = {}) {
62637
62684
  } else if (source.startsWith("<?", offset)) {
62638
62685
  const start2 = offset;
62639
62686
  offset += 2;
62640
- const [target, , , wName] = scanName();
62641
- pendingWork += wName;
62687
+ const [target] = yield* scanName();
62642
62688
  while (pendingWork >= 512) {
62643
62689
  yield 512;
62644
62690
  pendingWork -= 512;
@@ -62677,8 +62723,8 @@ function* parseXmlSteps(input, limits = {}) {
62677
62723
  invalid("DTD and entity declarations are forbidden");
62678
62724
  } else if (source.charCodeAt(offset + 1) === 47) {
62679
62725
  offset += 2;
62680
- const [name, , , wName] = scanName();
62681
- pendingWork += wName + skipWhitespace();
62726
+ const [name] = yield* scanName();
62727
+ yield* skipWhitespace();
62682
62728
  while (pendingWork >= 512) {
62683
62729
  yield 512;
62684
62730
  pendingWork -= 512;
@@ -62691,10 +62737,11 @@ function* parseXmlSteps(input, limits = {}) {
62691
62737
  } else {
62692
62738
  offset++;
62693
62739
  const repeated = previousEmpty && source.startsWith(previousEmpty.suffix, offset) ? previousEmpty : void 0;
62694
- const [name, prefix, localName, wName] = repeated ? [repeated.name, repeated.prefix, repeated.localName, repeated.name.length * 2] : scanName();
62740
+ const [name, prefix, localName] = repeated ? [repeated.name, repeated.prefix, repeated.localName] : yield* scanName();
62695
62741
  if (repeated)
62696
62742
  offset += name.length;
62697
- pendingWork += wName;
62743
+ if (repeated)
62744
+ pendingWork += name.length * 2;
62698
62745
  while (pendingWork >= 512) {
62699
62746
  yield 512;
62700
62747
  pendingWork -= 512;
@@ -62704,8 +62751,7 @@ function* parseXmlSteps(input, limits = {}) {
62704
62751
  let namespaces = stack.at(-1)?.namespaces ?? /* @__PURE__ */ new Map([["xml", xmlNamespace]]);
62705
62752
  let ownsNamespaces = stack.length === 0;
62706
62753
  while (!repeated) {
62707
- const ws = skipWhitespace();
62708
- pendingWork += ws;
62754
+ const ws = yield* skipWhitespace();
62709
62755
  while (pendingWork >= 512) {
62710
62756
  yield 512;
62711
62757
  pendingWork -= 512;
@@ -62715,8 +62761,7 @@ function* parseXmlSteps(input, limits = {}) {
62715
62761
  break;
62716
62762
  if (ws === 0)
62717
62763
  invalid("attributes require whitespace");
62718
- const [attribute, attrPrefix, attrLocal, wAttr] = scanName();
62719
- pendingWork += wAttr;
62764
+ const [attribute, attrPrefix, attrLocal] = yield* scanName();
62720
62765
  while (pendingWork >= 512) {
62721
62766
  yield 512;
62722
62767
  pendingWork -= 512;
@@ -62727,10 +62772,10 @@ function* parseXmlSteps(input, limits = {}) {
62727
62772
  throw new XmlLimitError("maxAttributes", "XML attribute limit exceeded");
62728
62773
  if ((attributes?.size ?? 0) >= maxAttributesPerElement)
62729
62774
  throw new XmlLimitError("maxAttributesPerElement", "XML attribute limit exceeded");
62730
- pendingWork += skipWhitespace();
62775
+ yield* skipWhitespace();
62731
62776
  if (source[offset++] !== "=")
62732
62777
  invalid("missing attribute equals");
62733
- pendingWork += skipWhitespace();
62778
+ yield* skipWhitespace();
62734
62779
  const quote = source[offset++];
62735
62780
  if (quote !== '"' && quote !== "'")
62736
62781
  invalid("unquoted attribute");
@@ -62917,14 +62962,13 @@ function scalar(element) {
62917
62962
 
62918
62963
  // ../safe-fs/dist/fs/webdav/webdav.js
62919
62964
  var timestampNamespace = "urn:virtual-bash:metadata";
62920
- var maxTimestampPropertyBytes = 4096;
62921
- function preflightTimestamps(property) {
62965
+ function preflightTimestamps(property, maxTimestampPropertyBytes) {
62922
62966
  let bytes = 0;
62923
62967
  for (const point of property.text) {
62924
62968
  const code = point.codePointAt(0);
62925
62969
  bytes += code <= 127 ? 1 : code <= 2047 ? 2 : code <= 65535 ? 3 : 4;
62926
62970
  if (bytes > maxTimestampPropertyBytes)
62927
- throw new Error("timestamp property exceeds 4KiB limit");
62971
+ throw new Error("timestamp property exceeds byte limit");
62928
62972
  }
62929
62973
  const text = scalar(property);
62930
62974
  let offset = 0;
@@ -63165,6 +63209,7 @@ var WebDavFileSystem = class {
63165
63209
  headers;
63166
63210
  maxResponseBytes;
63167
63211
  maxXmlBytes;
63212
+ maxTimestampPropertyBytes;
63168
63213
  maxEntries;
63169
63214
  xmlLimits;
63170
63215
  timeoutMs;
@@ -63234,6 +63279,7 @@ var WebDavFileSystem = class {
63234
63279
  streamingAppend: this.requestStreamSupport !== false
63235
63280
  });
63236
63281
  this.maxResponseBytes = options.maxResponseBytes === void 0 ? Infinity : positive(options.maxResponseBytes, "maxResponseBytes", false, true);
63282
+ this.maxTimestampPropertyBytes = positive(options.maxTimestampPropertyBytes ?? Infinity, "maxTimestampPropertyBytes", true, true);
63237
63283
  this.maxXmlBytes = options.maxXmlBytes === void 0 ? Infinity : positive(options.maxXmlBytes, "maxXmlBytes", false, true);
63238
63284
  this.xmlLimits = Object.freeze({ ...options.xmlLimits });
63239
63285
  for (const [name, value] of Object.entries(this.xmlLimits))
@@ -63669,7 +63715,7 @@ var WebDavFileSystem = class {
63669
63715
  let mtimeMs = date("getlastmodified") ?? 0;
63670
63716
  let atimeMs = 0;
63671
63717
  if (timestampProperty) {
63672
- const timestamps = JSON.parse(preflightTimestamps(timestampProperty));
63718
+ const timestamps = JSON.parse(preflightTimestamps(timestampProperty, this.maxTimestampPropertyBytes));
63673
63719
  if (typeof timestamps !== "object" || timestamps === null || !("version" in timestamps) || timestamps.version !== 1 || !("etag" in timestamps) || typeof timestamps.etag !== "string" || !/^"[\x21\x23-\x7e\x80-\xff]*"$/.test(timestamps.etag) || !("type" in timestamps) || timestamps.type !== "file" && timestamps.type !== "directory" || !("atimeMs" in timestamps) || typeof timestamps.atimeMs !== "number" || !Number.isFinite(timestamps.atimeMs) || Math.abs(timestamps.atimeMs) > 864e13 || !("mtimeMs" in timestamps) || typeof timestamps.mtimeMs !== "number" || !Number.isFinite(timestamps.mtimeMs) || Math.abs(timestamps.mtimeMs) > 864e13)
63674
63720
  throw new Error("invalid timestamp property");
63675
63721
  if (timestamps.etag === validator && timestamps.type === (directory ? "directory" : "file")) {
@@ -37317,6 +37317,7 @@ function formatExtractedPageText(page, options = {}) {
37317
37317
  if (Math.abs(dy) > 4) return dy;
37318
37318
  return a.bbox[0] - b.bbox[0];
37319
37319
  });
37320
+ const leftMargin = allLines.reduce((left, line) => Math.min(left, line.bbox[0]), Infinity);
37320
37321
  const rows = [];
37321
37322
  for (const l of allLines) {
37322
37323
  const lastRow = rows[rows.length - 1];
@@ -37330,17 +37331,17 @@ function formatExtractedPageText(page, options = {}) {
37330
37331
  row.sort((a, b) => a.bbox[0] - b.bbox[0]);
37331
37332
  const pitch = options.fixedPitch !== void 0 && options.fixedPitch > 0 ? options.fixedPitch : 6;
37332
37333
  let lineStr = "";
37333
- let curX = 0;
37334
+ let curX = leftMargin;
37334
37335
  if (options.fixedPitch !== void 0 && options.fixedPitch > 0) {
37335
37336
  const words = row.flatMap((seg) => seg.words).sort((a, b) => a.bbox[0] - b.bbox[0]);
37336
37337
  for (const w of words) {
37337
- const spaces = Math.max(curX > 0 ? 1 : 0, Math.round((w.bbox[0] - curX) / pitch));
37338
+ const spaces = Math.max(lineStr.length > 0 ? 1 : 0, Math.round((w.bbox[0] - curX) / pitch));
37338
37339
  lineStr += " ".repeat(Math.min(spaces, 80)) + w.text;
37339
37340
  curX = w.bbox[2];
37340
37341
  }
37341
37342
  } else {
37342
37343
  for (const seg of row) {
37343
- const spaces = Math.max(curX > 0 ? 2 : 0, Math.round((seg.bbox[0] - curX) / pitch));
37344
+ const spaces = Math.max(lineStr.length > 0 ? 2 : 0, Math.round((seg.bbox[0] - curX) / pitch));
37344
37345
  lineStr += " ".repeat(Math.min(spaces, 40)) + seg.text;
37345
37346
  curX = seg.bbox[2];
37346
37347
  }
@@ -0,0 +1,13 @@
1
+ import {
2
+ init_platform
3
+ } from "./chunk-B7TAL7S5.js";
4
+
5
+ // packages/safe-bash/src/commands/column/index.ts
6
+ init_platform();
7
+ import { columnCommands, createColumnCommand, createColumnCommands } from "../../safe-bash-command-column/index.js";
8
+
9
+ export {
10
+ columnCommands,
11
+ createColumnCommand,
12
+ createColumnCommands
13
+ };
@@ -2,13 +2,13 @@ import {
2
2
  shellValueByteLength,
3
3
  shellValueBytes,
4
4
  shellValueText
5
- } from "./chunk-I4OAEOP6.js";
5
+ } from "./chunk-J42RIHHJ.js";
6
6
  import {
7
7
  commandRuntimeIdentity
8
- } from "./chunk-LQHGH25W.js";
8
+ } from "./chunk-7R5BDCG7.js";
9
9
  import {
10
10
  init_platform
11
- } from "./chunk-YG5WAHK7.js";
11
+ } from "./chunk-B7TAL7S5.js";
12
12
 
13
13
  // packages/safe-bash/src/shell/trap.ts
14
14
  init_platform();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_platform
3
- } from "./chunk-YG5WAHK7.js";
3
+ } from "./chunk-B7TAL7S5.js";
4
4
 
5
5
  // packages/safe-bash/src/commands/line-endings/index.ts
6
6
  init_platform();