@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,4 +1,4 @@
1
- import { compareByteArrays, decodeBytes, encodeBytes, equalBytes, indexOfBytes } from "../byte-encoding.js";
1
+ import { compareByteArrays, decodeBytes, encodeBytes, indexOfBytes } from "../byte-encoding.js";
2
2
  import { PublicDiagnostic } from "../diagnostics.js";
3
3
  import { createBufferedOutput, FsError } from "../contracts/index.js";
4
4
  import { RETURN_EXIT_ONE, RETURN_EXIT_TWO, RETURN_EXIT_ZERO, assertInputRequirements, bufferLimit, codeOf, concatenate, define, diagnostic, encoder, input, integer, lines, options, output, outputRange, pathOf, requireOperands, RESOLVED_EXIT_ZERO, UsageError, value } from "./internal.js";
@@ -135,9 +135,6 @@ async function cutRanges(list, work) {
135
135
  }
136
136
  return normalized;
137
137
  }
138
- const sharedCutOutBuffer = new Uint8Array(64 * 1024);
139
- let sharedCutOutInUse = false;
140
- const sharedUniqOutBuffer = new Uint8Array(128 * 1024);
141
138
  function writeUniqCountBytes(writeByte, count) {
142
139
  const digits = String(count);
143
140
  const pad = 7 - digits.length;
@@ -151,20 +148,11 @@ class CutOutput {
151
148
  context;
152
149
  work;
153
150
  #buffer;
154
- #ownsShared;
155
151
  #used = 0;
156
152
  constructor(context, work) {
157
153
  this.context = context;
158
154
  this.work = work;
159
- if (!sharedCutOutInUse) {
160
- sharedCutOutInUse = true;
161
- this.#buffer = sharedCutOutBuffer;
162
- this.#ownsShared = true;
163
- }
164
- else {
165
- this.#buffer = new Uint8Array(64 * 1024);
166
- this.#ownsShared = false;
167
- }
155
+ this.#buffer = new Uint8Array(64 * 1024);
168
156
  }
169
157
  get remaining() {
170
158
  return this.#buffer.length - this.#used;
@@ -239,10 +227,6 @@ class CutOutput {
239
227
  this.#used = 0;
240
228
  await output(this.context, bytes);
241
229
  }
242
- release() {
243
- if (this.#ownsShared)
244
- sharedCutOutInUse = false;
245
- }
246
230
  }
247
231
  function cutFieldBoundary(record, separator, start, work) {
248
232
  if (record.length - start <= 4096) {
@@ -764,14 +748,6 @@ const sharedSortIndices = new Int32Array(4096);
764
748
  const sharedSortScratchIndices = new Int32Array(4096);
765
749
  const sharedSortInScratch = new Uint8Array(65536);
766
750
  let sharedSortInUse = false;
767
- const sharedSortOutScratch = new Uint8Array(65536);
768
- let lastSort;
769
- const cachedCutOutBuffer = new Uint8Array(32768);
770
- let lastCutInBuf;
771
- let lastCutSep = -1;
772
- let lastCutField = -1;
773
- let lastCutMaxLineLen = 0;
774
- let lastCutOutUsed = -1;
775
751
  const SORT_LONG_OPTIONS = Object.freeze({
776
752
  "human-numeric-sort": "h",
777
753
  "numeric-sort": "n",
@@ -1728,138 +1704,7 @@ async function executeSortGeneral(context, preReadChunks) {
1728
1704
  }
1729
1705
  if (checking)
1730
1706
  return { exitCode };
1731
- let ordered;
1732
- if (!parsed.flags.has("m") &&
1733
- !parsed.flags.has("u") &&
1734
- records.length >= 2 &&
1735
- records.length <= 65536 &&
1736
- (canMultiKeyFast || isSingleLexKeyFast)) {
1737
- const count = records.length;
1738
- const keySpecs = keys.map(k => {
1739
- const f = k.flags.size ? k.flags : parsed.flags;
1740
- const numeric = f.has("n") || f.has("h");
1741
- const human = f.has("h");
1742
- const blanks = f.has("b");
1743
- const revScale = f.has("r") ? -1 : 1;
1744
- if (numeric) {
1745
- const fastNums = new Float64Array(count);
1746
- const numVals = new Array(count);
1747
- return { numeric: true, human, blanks, revScale, key: k, fastNums, numVals };
1748
- }
1749
- const slices = new Array(count);
1750
- return { numeric: false, blanks, revScale, key: k, slices };
1751
- });
1752
- for (let i = 0; i < count; i++) {
1753
- const rec = records[i];
1754
- for (let ki = 0; ki < keySpecs.length; ki++) {
1755
- const ks = keySpecs[ki];
1756
- const sliceOrPromise = keyBytesSync(rec, ks.key, separator, ks.blanks, work);
1757
- const slice = sliceOrPromise instanceof Promise ? await sliceOrPromise : sliceOrPromise;
1758
- if (ks.numeric) {
1759
- const parsedOrPromise = parseNumeric(slice, work, ks.human);
1760
- const nv = parsedOrPromise instanceof Promise ? await parsedOrPromise : parsedOrPromise;
1761
- ks.numVals[i] = nv;
1762
- if (!ks.human && nv.fraction.length === 0 && nv.whole.length <= 15) {
1763
- const mag = nv.whole.length === 0 ? 0 : Number(nv.whole);
1764
- ks.fastNums[i] = nv.negative ? (mag === 0 ? 0 : -mag) : mag;
1765
- }
1766
- else {
1767
- ks.fastNums[i] = Number.NaN;
1768
- }
1769
- }
1770
- else {
1771
- ks.slices[i] = slice;
1772
- }
1773
- }
1774
- }
1775
- let srcIdx = new Int32Array(count);
1776
- let dstIdx = new Int32Array(count);
1777
- for (let i = 0; i < count; i++)
1778
- srcIdx[i] = i;
1779
- for (let width = 1; width < count; width *= 2) {
1780
- for (let begin = 0; begin < count; begin += width * 2) {
1781
- const middle = Math.min(begin + width, count);
1782
- const end = Math.min(begin + width * 2, count);
1783
- let left = begin;
1784
- let right = middle;
1785
- for (let index = begin; index < end; index++) {
1786
- const cp = work.charge(2);
1787
- if (cp)
1788
- await cp;
1789
- if (left < middle) {
1790
- if (right === end) {
1791
- dstIdx[index] = srcIdx[left++];
1792
- continue;
1793
- }
1794
- const a = srcIdx[left];
1795
- const b = srcIdx[right];
1796
- let cmp = 0;
1797
- for (let ki = 0; ki < keySpecs.length; ki++) {
1798
- const ks = keySpecs[ki];
1799
- if (ks.numeric) {
1800
- const fa = ks.fastNums[a];
1801
- const fb = ks.fastNums[b];
1802
- if (fa === fa && fb === fb) {
1803
- cmp = fa === fb ? 0 : (fa < fb ? -ks.revScale : ks.revScale);
1804
- }
1805
- else {
1806
- const r = compareNumericValues(ks.numVals[a], ks.numVals[b], work);
1807
- const resolved = typeof r === "number" ? r : await r;
1808
- cmp = resolved * ks.revScale;
1809
- }
1810
- }
1811
- else {
1812
- const sa = ks.slices[a];
1813
- const sb = ks.slices[b];
1814
- const lenA = sa.length;
1815
- const lenB = sb.length;
1816
- const minL = lenA < lenB ? lenA : lenB;
1817
- let d = 0;
1818
- for (let p = 0; p < minL; p++) {
1819
- d = sa[p] - sb[p];
1820
- if (d !== 0)
1821
- break;
1822
- }
1823
- if (d === 0)
1824
- d = lenA - lenB;
1825
- cmp = d * ks.revScale;
1826
- }
1827
- if (cmp !== 0)
1828
- break;
1829
- }
1830
- if (cmp === 0 && !skipTieFallback) {
1831
- const ra = records[a];
1832
- const rb = records[b];
1833
- const minL = ra.length < rb.length ? ra.length : rb.length;
1834
- let d = 0;
1835
- for (let p = 0; p < minL; p++) {
1836
- d = ra[p] - rb[p];
1837
- if (d !== 0)
1838
- break;
1839
- }
1840
- if (d === 0)
1841
- d = ra.length - rb.length;
1842
- cmp = d * direction;
1843
- }
1844
- if (cmp <= 0) {
1845
- dstIdx[index] = srcIdx[left++];
1846
- continue;
1847
- }
1848
- }
1849
- dstIdx[index] = srcIdx[right++];
1850
- }
1851
- }
1852
- const tmp = srcIdx;
1853
- srcIdx = dstIdx;
1854
- dstIdx = tmp;
1855
- }
1856
- ordered = new Array(count);
1857
- for (let i = 0; i < count; i++)
1858
- ordered[i] = records[srcIdx[i]];
1859
- }
1860
- else {
1861
- ordered = parsed.flags.has("m") ? await mergeSortRuns(runs, compare, work) : await sortRecords(records, compare, work);
1862
- }
1707
+ const ordered = parsed.flags.has("m") ? await mergeSortRuns(runs, compare, work) : await sortRecords(records, compare, work);
1863
1708
  let estBytes = 0;
1864
1709
  let allCounted = true;
1865
1710
  for (let i = 0; i < ordered.length; i++) {
@@ -1953,317 +1798,312 @@ async function executeCutGeneral(context) {
1953
1798
  const outputDelimiterBytes = outputDelimiter === undefined ? separator : outputDelimiter.length === 0 ? Uint8Array.of(0) : encoder.encode(outputDelimiter);
1954
1799
  const writer = new CutOutput(context, work);
1955
1800
  let exitCode = 0;
1956
- try {
1957
- for (const name of parsed.operands.length ? parsed.operands : ["-"]) {
1801
+ for (const name of parsed.operands.length ? parsed.operands : ["-"]) {
1802
+ try {
1958
1803
  try {
1959
- try {
1960
- const onlyDelimited = parsed.flags.has("s");
1961
- const fastSingleByteField = mode === "f" && separator.length === 1;
1962
- const sepByte = separator[0];
1963
- const outDelimLen = outputDelimiterBytes.length;
1964
- const processFastFieldRangeSlow = async (buf, lineStart, lineEnd) => {
1965
- context.signal.throwIfAborted();
1966
- let boundary = buf.indexOf(sepByte, lineStart);
1967
- if (boundary >= lineEnd)
1968
- boundary = -1;
1969
- const c0 = work.charge(boundary < 0 ? lineEnd - lineStart : boundary - lineStart + 1);
1970
- if (c0)
1971
- await c0;
1804
+ const onlyDelimited = parsed.flags.has("s");
1805
+ const fastSingleByteField = mode === "f" && separator.length === 1;
1806
+ const sepByte = separator[0];
1807
+ const outDelimLen = outputDelimiterBytes.length;
1808
+ const processFastFieldRangeSlow = async (buf, lineStart, lineEnd) => {
1809
+ context.signal.throwIfAborted();
1810
+ let boundary = buf.indexOf(sepByte, lineStart);
1811
+ if (boundary >= lineEnd)
1812
+ boundary = -1;
1813
+ const c0 = work.charge(boundary < 0 ? lineEnd - lineStart : boundary - lineStart + 1);
1814
+ if (c0)
1815
+ await c0;
1816
+ if (boundary < 0) {
1817
+ if (onlyDelimited)
1818
+ return;
1819
+ const w = writer.writeRange(buf, lineStart, lineEnd);
1820
+ if (w)
1821
+ await w;
1822
+ }
1823
+ else {
1824
+ let cursor = 0;
1825
+ let field = 1;
1826
+ let start = lineStart;
1827
+ let emitted = false;
1828
+ while (true) {
1829
+ const cp = work.charge();
1830
+ if (cp)
1831
+ await cp;
1832
+ while (cursor < ranges.length && field > ranges[cursor].end)
1833
+ cursor++;
1834
+ const included = cursor < ranges.length && field >= ranges[cursor].start;
1835
+ if (included !== complement) {
1836
+ if (emitted) {
1837
+ const w1 = writer.write(outputDelimiterBytes);
1838
+ if (w1)
1839
+ await w1;
1840
+ }
1841
+ const w2 = writer.writeRange(buf, start, boundary < 0 ? lineEnd : boundary);
1842
+ if (w2)
1843
+ await w2;
1844
+ emitted = true;
1845
+ }
1846
+ field++;
1847
+ if (boundary < 0 || (!complement && cursor >= ranges.length))
1848
+ break;
1849
+ start = boundary + 1;
1850
+ boundary = start <= lineEnd ? buf.indexOf(sepByte, start) : -1;
1851
+ if (boundary >= lineEnd)
1852
+ boundary = -1;
1853
+ const cn = work.charge(boundary < 0 ? lineEnd - start : boundary - start + 1);
1854
+ if (cn)
1855
+ await cn;
1856
+ }
1857
+ }
1858
+ const wd = writer.writeByte(recordDelimiter);
1859
+ if (wd)
1860
+ await wd;
1861
+ };
1862
+ const processFastFieldRange = (buf, lineStart, lineEnd) => {
1863
+ const lineLen = lineEnd - lineStart;
1864
+ if (writer.remaining <= lineLen * (outDelimLen > 1 ? outDelimLen : 1) + 1) {
1865
+ return processFastFieldRangeSlow(buf, lineStart, lineEnd);
1866
+ }
1867
+ context.signal.throwIfAborted();
1868
+ let boundary = buf.indexOf(sepByte, lineStart);
1869
+ if (boundary >= lineEnd)
1870
+ boundary = -1;
1871
+ let totalCharge = boundary < 0 ? lineLen : boundary - lineStart + 1;
1872
+ if (boundary < 0) {
1873
+ if (onlyDelimited)
1874
+ return work.charge(totalCharge);
1875
+ totalCharge += writer.writeRangeUncharged(buf, lineStart, lineEnd);
1876
+ }
1877
+ else {
1878
+ let cursor = 0;
1879
+ let field = 1;
1880
+ let start = lineStart;
1881
+ let emitted = false;
1882
+ while (true) {
1883
+ totalCharge += 1;
1884
+ while (cursor < ranges.length && field > ranges[cursor].end)
1885
+ cursor++;
1886
+ const included = cursor < ranges.length && field >= ranges[cursor].start;
1887
+ if (included !== complement) {
1888
+ if (emitted) {
1889
+ totalCharge += writer.writeRangeUncharged(outputDelimiterBytes, 0, outDelimLen);
1890
+ }
1891
+ totalCharge += writer.writeRangeUncharged(buf, start, boundary < 0 ? lineEnd : boundary);
1892
+ emitted = true;
1893
+ }
1894
+ field++;
1895
+ if (boundary < 0 || (!complement && cursor >= ranges.length))
1896
+ break;
1897
+ start = boundary + 1;
1898
+ boundary = start <= lineEnd ? buf.indexOf(sepByte, start) : -1;
1899
+ if (boundary >= lineEnd)
1900
+ boundary = -1;
1901
+ totalCharge += boundary < 0 ? lineEnd - start : boundary - start + 1;
1902
+ }
1903
+ }
1904
+ writer.writeByteUncharged(recordDelimiter);
1905
+ totalCharge += 1;
1906
+ return work.charge(totalCharge);
1907
+ };
1908
+ const sharedUtf8Decoder = new TextDecoder("utf-8", { ignoreBOM: true });
1909
+ const canFastSliceCut = (byteSelection || mode === "c") && !complement && ranges.length <= 16;
1910
+ const processFastSliceRange = (buf, lineStart, lineEnd) => {
1911
+ const lineLen = lineEnd - lineStart;
1912
+ if (writer.remaining <= lineLen + (outputDelimiter !== undefined ? Math.max(0, ranges.length - 1) * outDelimLen : 0) + 1) {
1913
+ return null;
1914
+ }
1915
+ if (!byteSelection) {
1916
+ for (let i = lineStart; i < lineEnd; i++) {
1917
+ if (buf[i] >= 0x80)
1918
+ return null;
1919
+ }
1920
+ }
1921
+ context.signal.throwIfAborted();
1922
+ let totalCharge = lineLen + 1;
1923
+ let emitted = false;
1924
+ for (let rIdx = 0; rIdx < ranges.length; rIdx++) {
1925
+ const r = ranges[rIdx];
1926
+ const s = lineStart + r.start - 1;
1927
+ if (s >= lineEnd)
1928
+ break;
1929
+ const e = Math.min(lineEnd, lineStart + r.end);
1930
+ if (e > s) {
1931
+ if (emitted && outputDelimiter !== undefined) {
1932
+ totalCharge += writer.writeRangeUncharged(outputDelimiterBytes, 0, outDelimLen);
1933
+ }
1934
+ totalCharge += writer.writeRangeUncharged(buf, s, e);
1935
+ emitted = true;
1936
+ }
1937
+ }
1938
+ writer.writeByteUncharged(recordDelimiter);
1939
+ return work.charge(totalCharge);
1940
+ };
1941
+ const processLineBytes = async (lineBytes) => {
1942
+ context.signal.throwIfAborted();
1943
+ let cursor = 0;
1944
+ const selected = (position) => {
1945
+ while (cursor < ranges.length && position > ranges[cursor].end)
1946
+ cursor++;
1947
+ const included = cursor < ranges.length && position >= ranges[cursor].start;
1948
+ return included !== complement ? cursor : -1;
1949
+ };
1950
+ if (mode === "f") {
1951
+ const record = encodeBytes(lineBytes.buffer, lineBytes.byteOffset, lineBytes.byteLength);
1952
+ const b0 = cutFieldBoundary(record, separator, 0, work);
1953
+ let boundary = typeof b0 === "number" ? b0 : await b0;
1972
1954
  if (boundary < 0) {
1973
1955
  if (onlyDelimited)
1974
1956
  return;
1975
- const w = writer.writeRange(buf, lineStart, lineEnd);
1957
+ const w = writer.write(lineBytes);
1976
1958
  if (w)
1977
1959
  await w;
1978
1960
  }
1979
1961
  else {
1980
- let cursor = 0;
1981
1962
  let field = 1;
1982
- let start = lineStart;
1963
+ let start = 0;
1983
1964
  let emitted = false;
1984
1965
  while (true) {
1985
- const cp = work.charge();
1986
- if (cp)
1987
- await cp;
1988
- while (cursor < ranges.length && field > ranges[cursor].end)
1989
- cursor++;
1990
- const included = cursor < ranges.length && field >= ranges[cursor].start;
1991
- if (included !== complement) {
1966
+ const checkpoint = work.charge();
1967
+ if (checkpoint)
1968
+ await checkpoint;
1969
+ if (selected(field++) >= 0) {
1992
1970
  if (emitted) {
1993
1971
  const w1 = writer.write(outputDelimiterBytes);
1994
1972
  if (w1)
1995
1973
  await w1;
1996
1974
  }
1997
- const w2 = writer.writeRange(buf, start, boundary < 0 ? lineEnd : boundary);
1975
+ const w2 = writer.write(record.subarray(start, boundary < 0 ? record.length : boundary));
1998
1976
  if (w2)
1999
1977
  await w2;
2000
1978
  emitted = true;
2001
1979
  }
2002
- field++;
2003
- if (boundary < 0 || (!complement && cursor >= ranges.length))
2004
- break;
2005
- start = boundary + 1;
2006
- boundary = start <= lineEnd ? buf.indexOf(sepByte, start) : -1;
2007
- if (boundary >= lineEnd)
2008
- boundary = -1;
2009
- const cn = work.charge(boundary < 0 ? lineEnd - start : boundary - start + 1);
2010
- if (cn)
2011
- await cn;
2012
- }
2013
- }
2014
- const wd = writer.writeByte(recordDelimiter);
2015
- if (wd)
2016
- await wd;
2017
- };
2018
- const processFastFieldRange = (buf, lineStart, lineEnd) => {
2019
- const lineLen = lineEnd - lineStart;
2020
- if (writer.remaining <= lineLen * (outDelimLen > 1 ? outDelimLen : 1) + 1) {
2021
- return processFastFieldRangeSlow(buf, lineStart, lineEnd);
2022
- }
2023
- context.signal.throwIfAborted();
2024
- let boundary = buf.indexOf(sepByte, lineStart);
2025
- if (boundary >= lineEnd)
2026
- boundary = -1;
2027
- let totalCharge = boundary < 0 ? lineLen : boundary - lineStart + 1;
2028
- if (boundary < 0) {
2029
- if (onlyDelimited)
2030
- return work.charge(totalCharge);
2031
- totalCharge += writer.writeRangeUncharged(buf, lineStart, lineEnd);
2032
- }
2033
- else {
2034
- let cursor = 0;
2035
- let field = 1;
2036
- let start = lineStart;
2037
- let emitted = false;
2038
- while (true) {
2039
- totalCharge += 1;
2040
- while (cursor < ranges.length && field > ranges[cursor].end)
2041
- cursor++;
2042
- const included = cursor < ranges.length && field >= ranges[cursor].start;
2043
- if (included !== complement) {
2044
- if (emitted) {
2045
- totalCharge += writer.writeRangeUncharged(outputDelimiterBytes, 0, outDelimLen);
2046
- }
2047
- totalCharge += writer.writeRangeUncharged(buf, start, boundary < 0 ? lineEnd : boundary);
2048
- emitted = true;
2049
- }
2050
- field++;
2051
1980
  if (boundary < 0 || (!complement && cursor >= ranges.length))
2052
1981
  break;
2053
- start = boundary + 1;
2054
- boundary = start <= lineEnd ? buf.indexOf(sepByte, start) : -1;
2055
- if (boundary >= lineEnd)
2056
- boundary = -1;
2057
- totalCharge += boundary < 0 ? lineEnd - start : boundary - start + 1;
2058
- }
2059
- }
2060
- writer.writeByteUncharged(recordDelimiter);
2061
- totalCharge += 1;
2062
- return work.charge(totalCharge);
2063
- };
2064
- const sharedUtf8Decoder = new TextDecoder("utf-8", { ignoreBOM: true });
2065
- const canFastSliceCut = (byteSelection || mode === "c") && !complement && ranges.length <= 16;
2066
- const processFastSliceRange = (buf, lineStart, lineEnd) => {
2067
- const lineLen = lineEnd - lineStart;
2068
- if (writer.remaining <= lineLen * (outDelimLen > 1 ? outDelimLen : 1) + 1) {
2069
- return null;
2070
- }
2071
- if (!byteSelection) {
2072
- for (let i = lineStart; i < lineEnd; i++) {
2073
- if (buf[i] >= 0x80)
2074
- return null;
1982
+ start = boundary + separator.length;
1983
+ const bn = cutFieldBoundary(record, separator, start, work);
1984
+ boundary = typeof bn === "number" ? bn : await bn;
2075
1985
  }
2076
1986
  }
2077
- context.signal.throwIfAborted();
2078
- let totalCharge = lineLen + 1;
1987
+ }
1988
+ else if (byteSelection) {
2079
1989
  let emitted = false;
2080
- for (let rIdx = 0; rIdx < ranges.length; rIdx++) {
2081
- const r = ranges[rIdx];
2082
- const s = lineStart + r.start - 1;
2083
- if (s >= lineEnd)
2084
- break;
2085
- const e = Math.min(lineEnd, lineStart + r.end);
2086
- if (e > s) {
2087
- if (emitted && outputDelimiter !== undefined) {
2088
- totalCharge += writer.writeRangeUncharged(outputDelimiterBytes, 0, outDelimLen);
2089
- }
2090
- totalCharge += writer.writeRangeUncharged(buf, s, e);
2091
- emitted = true;
2092
- }
2093
- }
2094
- writer.writeByteUncharged(recordDelimiter);
2095
- return work.charge(totalCharge);
2096
- };
2097
- const processLineBytes = async (lineBytes) => {
2098
- context.signal.throwIfAborted();
2099
- let cursor = 0;
2100
- const selected = (position) => {
2101
- while (cursor < ranges.length && position > ranges[cursor].end)
2102
- cursor++;
2103
- const included = cursor < ranges.length && position >= ranges[cursor].start;
2104
- return included !== complement ? cursor : -1;
2105
- };
2106
- if (mode === "f") {
2107
- const record = encodeBytes(lineBytes.buffer, lineBytes.byteOffset, lineBytes.byteLength);
2108
- const b0 = cutFieldBoundary(record, separator, 0, work);
2109
- let boundary = typeof b0 === "number" ? b0 : await b0;
2110
- if (boundary < 0) {
2111
- if (onlyDelimited)
2112
- return;
2113
- const w = writer.write(lineBytes);
2114
- if (w)
2115
- await w;
2116
- }
2117
- else {
2118
- let field = 1;
2119
- let start = 0;
2120
- let emitted = false;
2121
- while (true) {
2122
- const checkpoint = work.charge();
2123
- if (checkpoint)
2124
- await checkpoint;
2125
- if (selected(field++) >= 0) {
2126
- if (emitted) {
2127
- const w1 = writer.write(outputDelimiterBytes);
2128
- if (w1)
2129
- await w1;
2130
- }
2131
- const w2 = writer.write(record.subarray(start, boundary < 0 ? record.length : boundary));
2132
- if (w2)
2133
- await w2;
2134
- emitted = true;
2135
- }
2136
- if (boundary < 0 || (!complement && cursor >= ranges.length))
2137
- break;
2138
- start = boundary + separator.length;
2139
- const bn = cutFieldBoundary(record, separator, start, work);
2140
- boundary = typeof bn === "number" ? bn : await bn;
1990
+ let previousRange = -1;
1991
+ for (let offset = 0; offset < lineBytes.length; offset += 4096) {
1992
+ const end = Math.min(lineBytes.length, offset + 4096);
1993
+ const checkpoint = work.charge(end - offset);
1994
+ if (checkpoint)
1995
+ await checkpoint;
1996
+ let start = -1;
1997
+ for (let index = offset; index < end; index++) {
1998
+ const range = selected(index + 1);
1999
+ if (range !== previousRange && start >= 0) {
2000
+ await writer.write(lineBytes.subarray(start, index));
2001
+ start = -1;
2141
2002
  }
2142
- }
2143
- }
2144
- else if (byteSelection) {
2145
- let emitted = false;
2146
- let previousRange = -1;
2147
- for (let offset = 0; offset < lineBytes.length; offset += 4096) {
2148
- const end = Math.min(lineBytes.length, offset + 4096);
2149
- const checkpoint = work.charge(end - offset);
2150
- if (checkpoint)
2151
- await checkpoint;
2152
- let start = -1;
2153
- for (let index = offset; index < end; index++) {
2154
- const range = selected(index + 1);
2155
- if (range !== previousRange && start >= 0) {
2156
- await writer.write(lineBytes.subarray(start, index));
2157
- start = -1;
2158
- }
2159
- if (range >= 0 && start < 0) {
2160
- if (range !== previousRange && emitted && outputDelimiter !== undefined)
2161
- await writer.write(outputDelimiterBytes);
2162
- start = index;
2163
- emitted = true;
2164
- }
2165
- previousRange = range;
2003
+ if (range >= 0 && start < 0) {
2004
+ if (range !== previousRange && emitted && outputDelimiter !== undefined)
2005
+ await writer.write(outputDelimiterBytes);
2006
+ start = index;
2007
+ emitted = true;
2166
2008
  }
2167
- if (start >= 0)
2168
- await writer.write(lineBytes.subarray(start, end));
2009
+ previousRange = range;
2169
2010
  }
2011
+ if (start >= 0)
2012
+ await writer.write(lineBytes.subarray(start, end));
2170
2013
  }
2171
- else {
2172
- const decoder = sharedUtf8Decoder;
2173
- let index = 0;
2174
- let emitted = false;
2175
- let previousRange = -1;
2176
- for (let offset = 0; offset < lineBytes.length; offset += 4096) {
2177
- const end = Math.min(lineBytes.length, offset + 4096);
2178
- const checkpoint = work.charge(end - offset);
2014
+ }
2015
+ else {
2016
+ const decoder = sharedUtf8Decoder;
2017
+ let index = 0;
2018
+ let emitted = false;
2019
+ let previousRange = -1;
2020
+ for (let offset = 0; offset < lineBytes.length; offset += 4096) {
2021
+ const end = Math.min(lineBytes.length, offset + 4096);
2022
+ const checkpoint = work.charge(end - offset);
2023
+ if (checkpoint)
2024
+ await checkpoint;
2025
+ const text = decoder.decode(lineBytes.subarray(offset, end), { stream: end < lineBytes.length });
2026
+ let start = -1;
2027
+ let position = 0;
2028
+ for (const character of text) {
2029
+ const checkpoint = work.charge();
2179
2030
  if (checkpoint)
2180
2031
  await checkpoint;
2181
- const text = decoder.decode(lineBytes.subarray(offset, end), { stream: end < lineBytes.length });
2182
- let start = -1;
2183
- let position = 0;
2184
- for (const character of text) {
2185
- const checkpoint = work.charge();
2186
- if (checkpoint)
2187
- await checkpoint;
2188
- const range = selected(++index);
2189
- if (range !== previousRange && start >= 0) {
2190
- await writer.text(text.slice(start, position));
2191
- start = -1;
2192
- }
2193
- if (range >= 0 && start < 0) {
2194
- if (range !== previousRange && emitted && outputDelimiter !== undefined)
2195
- await writer.write(outputDelimiterBytes);
2196
- start = position;
2197
- emitted = true;
2198
- }
2199
- position += character.length;
2200
- previousRange = range;
2201
- }
2202
- if (start >= 0)
2203
- await writer.text(text.slice(start));
2204
- }
2205
- }
2206
- const wd = writer.writeByte(recordDelimiter);
2207
- if (wd)
2208
- await wd;
2209
- };
2210
- const pending = new RecordBuffer(bufferLimit);
2211
- try {
2212
- for await (const chunk of input(context, name)) {
2213
- let start = 0;
2214
- while (start < chunk.length) {
2215
- const offset = chunk.indexOf(recordDelimiter, start);
2216
- if (offset < 0)
2217
- break;
2218
- if (fastSingleByteField && pending.size === 0 && offset - start <= 4096) {
2219
- const p = processFastFieldRange(chunk, start, offset);
2220
- if (p)
2221
- await p;
2222
- }
2223
- else if (canFastSliceCut && pending.size === 0 && offset - start <= 4096) {
2224
- const p = processFastSliceRange(chunk, start, offset);
2225
- if (p === null) {
2226
- await processLineBytes(chunk.subarray(start, offset));
2227
- }
2228
- else if (p) {
2229
- await p;
2230
- }
2032
+ const range = selected(++index);
2033
+ if (range !== previousRange && start >= 0) {
2034
+ await writer.text(text.slice(start, position));
2035
+ start = -1;
2231
2036
  }
2232
- else {
2233
- await processLineBytes(pending.finish(undefined, chunk, start, offset));
2037
+ if (range >= 0 && start < 0) {
2038
+ if (range !== previousRange && emitted && outputDelimiter !== undefined)
2039
+ await writer.write(outputDelimiterBytes);
2040
+ start = position;
2041
+ emitted = true;
2234
2042
  }
2235
- start = offset + 1;
2043
+ position += character.length;
2044
+ previousRange = range;
2236
2045
  }
2237
- pending.append(chunk, start);
2046
+ if (start >= 0)
2047
+ await writer.text(text.slice(start));
2238
2048
  }
2239
- if (pending.size) {
2240
- const finalBytes = pending.finish();
2241
- if (fastSingleByteField && finalBytes.length <= 4096) {
2242
- const p = processFastFieldRange(finalBytes, 0, finalBytes.length);
2049
+ }
2050
+ const wd = writer.writeByte(recordDelimiter);
2051
+ if (wd)
2052
+ await wd;
2053
+ };
2054
+ const pending = new RecordBuffer(bufferLimit);
2055
+ try {
2056
+ for await (const chunk of input(context, name)) {
2057
+ let start = 0;
2058
+ while (start < chunk.length) {
2059
+ const offset = chunk.indexOf(recordDelimiter, start);
2060
+ if (offset < 0)
2061
+ break;
2062
+ if (fastSingleByteField && pending.size === 0 && offset - start <= 4096) {
2063
+ const p = processFastFieldRange(chunk, start, offset);
2243
2064
  if (p)
2244
2065
  await p;
2245
2066
  }
2067
+ else if (canFastSliceCut && pending.size === 0 && offset - start <= 4096) {
2068
+ const p = processFastSliceRange(chunk, start, offset);
2069
+ if (p === null) {
2070
+ await processLineBytes(chunk.subarray(start, offset));
2071
+ }
2072
+ else if (p) {
2073
+ await p;
2074
+ }
2075
+ }
2246
2076
  else {
2247
- await processLineBytes(finalBytes);
2077
+ await processLineBytes(pending.finish(undefined, chunk, start, offset));
2248
2078
  }
2079
+ start = offset + 1;
2249
2080
  }
2081
+ pending.append(chunk, start);
2250
2082
  }
2251
- finally {
2252
- pending.clear();
2083
+ if (pending.size) {
2084
+ const finalBytes = pending.finish();
2085
+ if (fastSingleByteField && finalBytes.length <= 4096) {
2086
+ const p = processFastFieldRange(finalBytes, 0, finalBytes.length);
2087
+ if (p)
2088
+ await p;
2089
+ }
2090
+ else {
2091
+ await processLineBytes(finalBytes);
2092
+ }
2253
2093
  }
2254
2094
  }
2255
2095
  finally {
2256
- await writer.flush();
2096
+ pending.clear();
2257
2097
  }
2258
2098
  }
2259
- catch (error) {
2260
- await diagnostic(context, error);
2261
- exitCode = 1;
2099
+ finally {
2100
+ await writer.flush();
2262
2101
  }
2263
2102
  }
2264
- }
2265
- finally {
2266
- writer.release();
2103
+ catch (error) {
2104
+ await diagnostic(context, error);
2105
+ exitCode = 1;
2106
+ }
2267
2107
  }
2268
2108
  return { exitCode };
2269
2109
  }
@@ -2523,29 +2363,6 @@ export function textCommands() {
2523
2363
  catch (error) {
2524
2364
  return diagnostic(context, error).then(RETURN_EXIT_TWO);
2525
2365
  }
2526
- const cached = lastSort;
2527
- if (cached !== undefined &&
2528
- firstChunkLen >= 256 &&
2529
- firstChunkLen === cached.input.byteLength &&
2530
- direction === cached.direction &&
2531
- cached.maxLineLength <= bufferLimit &&
2532
- equalBytes(cached.input, rawFirst)) {
2533
- let res2Fast;
2534
- try {
2535
- res2Fast = srcIter.tryNextSync();
2536
- }
2537
- catch (error) {
2538
- return diagnostic(context, error).then(RETURN_EXIT_TWO);
2539
- }
2540
- if (res2Fast !== undefined && res2Fast.done) {
2541
- context.signal.throwIfAborted();
2542
- const p = outputRange(context, cached.output, cached.output.length);
2543
- if (isSyncResolved(p))
2544
- return RESOLVED_EXIT_ZERO;
2545
- return p.then(RETURN_EXIT_ZERO);
2546
- }
2547
- return executeSortFastContinueAsync(context, direction, srcIter, cached.input, res2Fast);
2548
- }
2549
2366
  let firstChunk;
2550
2367
  let usedSortInScratch = false;
2551
2368
  try {
@@ -2573,12 +2390,9 @@ export function textCommands() {
2573
2390
  let start = 0;
2574
2391
  let count = 0;
2575
2392
  let validLines = true;
2576
- let maxSortLine = 0;
2577
2393
  while (start < firstChunkLen) {
2578
2394
  const offset = firstChunk.indexOf(10, start);
2579
2395
  const lLen = offset - start;
2580
- if (lLen > maxSortLine)
2581
- maxSortLine = lLen;
2582
2396
  if (offset < 0 || offset >= firstChunkLen || count >= 4096 || lLen > bufferLimit) {
2583
2397
  validLines = false;
2584
2398
  break;
@@ -2620,7 +2434,7 @@ export function textCommands() {
2620
2434
  src = dst;
2621
2435
  dst = tmp;
2622
2436
  }
2623
- const outBuf = sharedSortOutScratch;
2437
+ const outBuf = new Uint8Array(65536);
2624
2438
  let used = 0;
2625
2439
  for (let i = 0; i < count; i++) {
2626
2440
  const idx = src[i];
@@ -2630,14 +2444,6 @@ export function textCommands() {
2630
2444
  outBuf[used++] = firstChunk[p];
2631
2445
  outBuf[used++] = 10;
2632
2446
  }
2633
- if (firstChunkLen >= 256 && used <= 32768) {
2634
- lastSort = {
2635
- input: encodeBytes(firstChunk.subarray(0, firstChunkLen)),
2636
- output: outBuf.slice(0, used),
2637
- direction,
2638
- maxLineLength: maxSortLine,
2639
- };
2640
- }
2641
2447
  const p = outputRange(context, outBuf, used);
2642
2448
  if (isSyncResolved(p))
2643
2449
  return RESOLVED_EXIT_ZERO;
@@ -2653,8 +2459,10 @@ export function textCommands() {
2653
2459
  return diagnostic(context, error).then(RETURN_EXIT_TWO);
2654
2460
  }
2655
2461
  finally {
2656
- if (usedSortInScratch)
2462
+ if (usedSortInScratch) {
2463
+ sharedSortInScratch.fill(0);
2657
2464
  sharedSortInUse = false;
2465
+ }
2658
2466
  }
2659
2467
  }
2660
2468
  }
@@ -2715,7 +2523,7 @@ export function textCommands() {
2715
2523
  return diagnostic(context, error).then(RETURN_EXIT_ONE);
2716
2524
  }
2717
2525
  if (res2 !== undefined && res2.done && chunk.length <= 65536) {
2718
- const outBuf = sharedUniqOutBuffer;
2526
+ const outBuf = new Uint8Array(128 * 1024);
2719
2527
  let outUsed = 0;
2720
2528
  let prevStart = -1;
2721
2529
  let prevEnd = -1;
@@ -2919,7 +2727,7 @@ export function textCommands() {
2919
2727
  }
2920
2728
  if (canFast && (targetField >= 1 || (fieldMask !== 0 && typeof context.stdin.tryReadAllSync === "function"))) {
2921
2729
  const req = assertInputRequirements(context, operand !== undefined ? [operand] : EMPTY_OPERANDS);
2922
- if (!req && operand === undefined && !sharedCutOutInUse) {
2730
+ if (!req && operand === undefined) {
2923
2731
  const srcIter = input(context, "-")[Symbol.asyncIterator]();
2924
2732
  if (typeof srcIter.tryNextSync === "function") {
2925
2733
  let res1;
@@ -2940,28 +2748,10 @@ export function textCommands() {
2940
2748
  catch (error) {
2941
2749
  return diagnostic(context, error).then(RETURN_EXIT_ONE);
2942
2750
  }
2943
- if (res2 !== undefined && res2.done && chunk.length < sharedCutOutBuffer.length) {
2944
- if (fieldMask === 0 &&
2945
- lastCutOutUsed >= 0 &&
2946
- chunk.length >= 256 &&
2947
- lastCutInBuf !== undefined &&
2948
- chunk.length === lastCutInBuf.byteLength &&
2949
- sepByte === lastCutSep &&
2950
- targetField === lastCutField &&
2951
- lastCutMaxLineLen <= bufferLimit &&
2952
- equalBytes(lastCutInBuf, chunk)) {
2953
- context.signal.throwIfAborted();
2954
- if (lastCutOutUsed === 0)
2955
- return RESOLVED_EXIT_ZERO;
2956
- const p = outputRange(context, cachedCutOutBuffer, lastCutOutUsed);
2957
- if (isSyncResolved(p))
2958
- return RESOLVED_EXIT_ZERO;
2959
- return p.then(RETURN_EXIT_ZERO);
2960
- }
2961
- const outBuf = sharedCutOutBuffer;
2751
+ if (res2 !== undefined && res2.done && chunk.length < 65536) {
2752
+ const outBuf = new Uint8Array(65536);
2962
2753
  let outUsed = 0;
2963
2754
  let start = 0;
2964
- let maxCutLine = 0;
2965
2755
  while (start < chunk.length) {
2966
2756
  let offset = chunk.indexOf(10, start);
2967
2757
  const hasNewline = offset >= 0;
@@ -2975,8 +2765,6 @@ export function textCommands() {
2975
2765
  let boundary = chunk.indexOf(sepByte, start);
2976
2766
  if (boundary >= offset)
2977
2767
  boundary = -1;
2978
- if (offset - start > maxCutLine)
2979
- maxCutLine = offset - start;
2980
2768
  if (fieldMask !== 0 && boundary >= 0) {
2981
2769
  let f = 1;
2982
2770
  let curStart = start;
@@ -3027,14 +2815,6 @@ export function textCommands() {
3027
2815
  }
3028
2816
  start = offset + 1;
3029
2817
  }
3030
- if (fieldMask === 0 && chunk.length >= 256 && outUsed <= 32768) {
3031
- lastCutInBuf = encodeBytes(chunk);
3032
- lastCutSep = sepByte;
3033
- lastCutField = targetField;
3034
- lastCutMaxLineLen = maxCutLine;
3035
- lastCutOutUsed = outUsed;
3036
- cachedCutOutBuffer.set(outBuf.subarray(0, outUsed));
3037
- }
3038
2818
  if (outUsed === 0)
3039
2819
  return RESOLVED_EXIT_ZERO;
3040
2820
  const p = outputRange(context, outBuf, outUsed);
@@ -3144,10 +2924,7 @@ async function executeSortFastContinueAsync(context, direction, srcIter, initial
3144
2924
  async function executeCutFastAsync(context, operand, sepByte, targetField, req, existingIter, initialFirstChunk, initialSecondRes) {
3145
2925
  if (req)
3146
2926
  await req;
3147
- const ownsShared = !sharedCutOutInUse;
3148
- if (ownsShared)
3149
- sharedCutOutInUse = true;
3150
- const outBuf = ownsShared ? sharedCutOutBuffer : new Uint8Array(65536);
2927
+ const outBuf = new Uint8Array(65536);
3151
2928
  let outUsed = 0;
3152
2929
  const isPipeStage = Boolean(context.stdout.isPipeStage);
3153
2930
  const syncSink = !isPipeStage
@@ -3299,9 +3076,5 @@ async function executeCutFastAsync(context, operand, sepByte, targetField, req,
3299
3076
  await diagnostic(context, error);
3300
3077
  return { exitCode: 1 };
3301
3078
  }
3302
- finally {
3303
- if (ownsShared)
3304
- sharedCutOutInUse = false;
3305
- }
3306
3079
  }
3307
3080
  //# sourceMappingURL=text.js.map