@poe-platform/safe-bash 0.1.803 → 0.1.804

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 (696) hide show
  1. package/README.md +56 -31
  2. package/dist/image-ast/ast.d.ts +1 -0
  3. package/dist/image-ast/browser/ast.d.ts +1 -0
  4. package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
  5. package/dist/image-ast/codecs/jpeg.d.ts +2 -2
  6. package/dist/image-ast/index.browser.js +692 -8364
  7. package/dist/image-ast/index.js +692 -8364
  8. package/dist/mp4-ast/codecs.d.ts +7 -2
  9. package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
  10. package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
  11. package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
  12. package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-5OHX7C2V.js → chunk-62BOHHJT.js} +1 -1
  18. package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
  19. package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
  20. package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-PNBBUWSM.js → chunk-AW5KIT6V.js} +3488 -39
  23. package/dist/safe-bash/chunks/{chunk-JMMEIDPF.js → chunk-B2Z73HTZ.js} +52 -28
  24. package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
  25. package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
  27. package/dist/safe-bash/chunks/{chunk-2LSAMQER.js → chunk-CTXNARJH.js} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
  33. package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
  34. package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
  35. package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
  36. package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
  38. package/dist/safe-bash/chunks/{chunk-VBTDHOWC.js → chunk-IOHH2GTI.js} +4 -3
  39. package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
  40. package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
  41. package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
  43. package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
  44. package/dist/safe-bash/chunks/{chunk-RYFQ3LZG.js → chunk-LPOVNKNB.js} +173 -153
  45. package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
  47. package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
  48. package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
  49. package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
  50. package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
  51. package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
  52. package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
  53. package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
  54. package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
  55. package/dist/safe-bash/chunks/{chunk-EEEWOYEG.js → chunk-S4RFUUXO.js} +839 -24
  56. package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
  57. package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
  58. package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
  59. package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
  60. package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
  61. package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
  62. package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
  63. package/dist/safe-bash/chunks/{chunk-B7PIL77G.js → chunk-W2IYOVHK.js} +804 -1195
  64. package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
  65. package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
  66. package/dist/safe-bash/chunks/{chunk-A7XEHALN.js → chunk-Y7FW6GLT.js} +6 -6
  67. package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
  68. package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
  69. package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
  70. package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
  71. package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
  72. package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
  73. package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
  74. package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
  75. package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
  76. package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
  77. package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
  78. package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
  79. package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
  80. package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
  81. package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
  82. package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
  83. package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
  84. package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
  85. package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
  86. package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
  87. package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
  89. package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
  90. package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
  91. package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
  92. package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
  93. package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
  94. package/dist/safe-bash/command-chunks/{chunk-ZDN7MJE6.js → chunk-4R5ADJM5.js} +11 -1
  95. package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
  96. package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-PICVQ6B5.js → chunk-6GKYHPJG.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
  99. package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
  101. package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
  102. package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
  103. package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
  104. package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
  105. package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
  106. package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
  107. package/dist/safe-bash/command-chunks/{chunk-4FEVBOL5.js → chunk-ARZMP2L2.js} +2 -2
  108. package/dist/safe-bash/command-chunks/{chunk-NKIELG7Y.js → chunk-BAKFZ477.js} +40 -19
  109. package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
  110. package/dist/safe-bash/command-chunks/{chunk-CQHP3I66.js → chunk-BOEOJS2Q.js} +1 -1
  111. package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
  112. package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
  114. package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
  115. package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
  117. package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
  118. package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
  119. package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
  120. package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
  121. package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
  122. package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
  123. package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
  124. package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
  125. package/dist/safe-bash/command-chunks/{chunk-QVOS4YXL.js → chunk-HH5O7DJI.js} +1 -1
  126. package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
  127. package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
  128. package/dist/safe-bash/command-chunks/{chunk-V4K2JDYU.js → chunk-I63DBZXZ.js} +2 -2
  129. package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
  130. package/dist/safe-bash/command-chunks/{chunk-GFC2NTDG.js → chunk-ICANWOXH.js} +5 -29
  131. package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
  133. package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
  134. package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
  135. package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
  136. package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
  137. package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
  138. package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
  139. package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
  140. package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
  141. package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
  142. package/dist/safe-bash/command-chunks/{chunk-EARHPPPJ.js → chunk-NJYHWKIL.js} +39 -9
  143. package/dist/safe-bash/command-chunks/{chunk-6JSIFWYT.js → chunk-OJQRSCBP.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
  145. package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
  146. package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
  147. package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
  148. package/dist/safe-bash/command-chunks/{chunk-NASVPT6F.js → chunk-R7C4MGZ5.js} +17 -224
  149. package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
  150. package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
  151. package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
  152. package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
  153. package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
  154. package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
  155. package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
  156. package/dist/safe-bash/command-chunks/{chunk-GIRNFXP3.js → chunk-TZRI7BJZ.js} +45 -15
  157. package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
  158. package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
  159. package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
  160. package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
  161. package/dist/safe-bash/command-chunks/{chunk-ILX2NOLF.js → chunk-WPANOB4A.js} +20 -20
  162. package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
  163. package/dist/safe-bash/command-chunks/{chunk-HDCNKOIX.js → chunk-XGI57GCN.js} +1 -1
  164. package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
  165. package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
  166. package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
  167. package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
  168. package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
  169. package/dist/safe-bash/command-chunks/{chunk-WWIBP2ET.js → chunk-Z5ZZVDUD.js} +143 -22
  170. package/dist/safe-bash/command-chunks/{chunk-LOICUCHG.js → chunk-ZHN3QDCI.js} +1 -1
  171. package/dist/safe-bash/commands/alias/index.d.ts +2 -0
  172. package/dist/safe-bash/commands/alias/index.js +2 -0
  173. package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
  174. package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
  175. package/dist/safe-bash/commands/apply-patch/index.js +0 -1
  176. package/dist/safe-bash/commands/archive/index.browser.js +2 -3
  177. package/dist/safe-bash/commands/archive/index.d.ts +0 -1
  178. package/dist/safe-bash/commands/archive/index.js +0 -1
  179. package/dist/safe-bash/commands/bytes/index.js +2 -1
  180. package/dist/safe-bash/commands/chmod/index.browser.js +1 -1
  181. package/dist/safe-bash/commands/column/index.browser.js +2 -3
  182. package/dist/safe-bash/commands/column/index.d.ts +0 -1
  183. package/dist/safe-bash/commands/column/index.js +0 -1
  184. package/dist/safe-bash/commands/copy-source.js +1 -0
  185. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  186. package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
  187. package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
  188. package/dist/safe-bash/commands/csvkit/index.js +0 -50
  189. package/dist/safe-bash/commands/docx/index.browser.js +5 -7
  190. package/dist/safe-bash/commands/du/index.browser.js +2 -3
  191. package/dist/safe-bash/commands/du/index.d.ts +0 -1
  192. package/dist/safe-bash/commands/du/index.js +0 -1
  193. package/dist/safe-bash/commands/expr/index.browser.js +2 -3
  194. package/dist/safe-bash/commands/expr/index.d.ts +0 -1
  195. package/dist/safe-bash/commands/expr/index.js +0 -1
  196. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  197. package/dist/safe-bash/commands/file/index.browser.js +2 -3
  198. package/dist/safe-bash/commands/file/index.d.ts +0 -1
  199. package/dist/safe-bash/commands/file/index.js +0 -1
  200. package/dist/safe-bash/commands/filesystem.js +1 -1
  201. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  202. package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
  203. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  204. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
  205. package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
  206. package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
  207. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
  208. package/dist/safe-bash/commands/htmlq/index.js +1 -143
  209. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  210. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  211. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  212. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  213. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  214. package/dist/safe-bash/commands/media/index.browser.js +4 -16314
  215. package/dist/safe-bash/commands/media/index.d.ts +1 -5
  216. package/dist/safe-bash/commands/media/index.js +1 -3
  217. package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
  218. package/dist/safe-bash/commands/media/plugin.js +1 -90
  219. package/dist/safe-bash/commands/media/remote.d.ts +1 -63
  220. package/dist/safe-bash/commands/media/remote.js +1 -405
  221. package/dist/safe-bash/commands/media/settings.d.ts +1 -4
  222. package/dist/safe-bash/commands/media/settings.js +1 -26
  223. package/dist/safe-bash/commands/metadata/index.browser.js +3 -4
  224. package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
  225. package/dist/safe-bash/commands/metadata/index.js +2 -2
  226. package/dist/safe-bash/commands/mktemp/index.browser.js +1 -1
  227. package/dist/safe-bash/commands/network/curl.js +1 -3
  228. package/dist/safe-bash/commands/network/index.browser.js +3 -4
  229. package/dist/safe-bash/commands/network/public.d.ts +0 -1
  230. package/dist/safe-bash/commands/network/public.js +0 -1
  231. package/dist/safe-bash/commands/network/transport.js +2 -1
  232. package/dist/safe-bash/commands/network/wget.js +1 -3
  233. package/dist/safe-bash/commands/node/browser.d.ts +0 -1
  234. package/dist/safe-bash/commands/node/browser.js +0 -1
  235. package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
  236. package/dist/safe-bash/commands/node/default-runtime.js +15 -0
  237. package/dist/safe-bash/commands/node/index.browser.js +7 -8
  238. package/dist/safe-bash/commands/node/index.js +3 -3
  239. package/dist/safe-bash/commands/node/path.js +1 -1
  240. package/dist/safe-bash/commands/node/preload.d.ts +1 -1
  241. package/dist/safe-bash/commands/node/preload.js +4 -1
  242. package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
  243. package/dist/safe-bash/commands/node/quickjs.js +2 -0
  244. package/dist/safe-bash/commands/node/safejs.js +26 -12
  245. package/dist/safe-bash/commands/op/index.browser.js +2 -3
  246. package/dist/safe-bash/commands/op/index.d.ts +0 -11
  247. package/dist/safe-bash/commands/op/index.js +0 -84
  248. package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
  249. package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
  250. package/dist/safe-bash/commands/pandoc/index.js +0 -1
  251. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  252. package/dist/safe-bash/commands/python/docker-runner.js +4 -3
  253. package/dist/safe-bash/commands/python/docker.d.ts +1 -0
  254. package/dist/safe-bash/commands/python/docker.js +5 -2
  255. package/dist/safe-bash/commands/python/index.browser.js +17 -13
  256. package/dist/safe-bash/commands/python/index.d.ts +2 -1
  257. package/dist/safe-bash/commands/python/index.js +10 -8
  258. package/dist/safe-bash/commands/python/llm-capability.js +65 -2
  259. package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
  260. package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
  261. package/dist/safe-bash/commands/python/llm-module.js +6 -4
  262. package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
  263. package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
  264. package/dist/safe-bash/commands/python/worker.browser.js +2 -3
  265. package/dist/safe-bash/commands/python/worker.d.ts +0 -1
  266. package/dist/safe-bash/commands/python/worker.js +0 -1
  267. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
  268. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
  269. package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
  270. package/dist/safe-bash/commands/safejs/options.js +5 -1
  271. package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
  272. package/dist/safe-bash/commands/safejs/runtime.js +1 -1
  273. package/dist/safe-bash/commands/split/index.browser.js +2 -3
  274. package/dist/safe-bash/commands/split/index.d.ts +0 -1
  275. package/dist/safe-bash/commands/split/index.js +0 -1
  276. package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
  277. package/dist/safe-bash/commands/stat/index.browser.js +1 -1
  278. package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
  279. package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
  280. package/dist/safe-bash/commands/stream-format/index.js +0 -1
  281. package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
  282. package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
  283. package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
  284. package/dist/safe-bash/commands/streams.js +2 -1
  285. package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
  286. package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
  287. package/dist/safe-bash/commands/table-text/index.js +0 -1
  288. package/dist/safe-bash/commands/text.js +28 -24
  289. package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
  290. package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
  291. package/dist/safe-bash/commands/time-env/index.js +0 -1
  292. package/dist/safe-bash/commands/tree/index.browser.js +2 -3
  293. package/dist/safe-bash/commands/tree/index.d.ts +0 -1
  294. package/dist/safe-bash/commands/tree/index.js +0 -1
  295. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  296. package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
  297. package/dist/safe-bash/commands/unalias/index.js +2 -0
  298. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  299. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  300. package/dist/safe-bash/core.browser.js +2 -2
  301. package/dist/safe-bash/core.d.ts +7 -1
  302. package/dist/safe-bash/core.js +7 -1
  303. package/dist/safe-bash/execution-runtime.js +2 -1
  304. package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
  305. package/dist/safe-bash/fs/s3/http/index.js +1 -1
  306. package/dist/safe-bash/full-core.browser.js +283 -945
  307. package/dist/safe-bash/internal/op/types.d.ts +1 -0
  308. package/dist/safe-bash/jobs.browser.js +5 -5
  309. package/dist/safe-bash/lazy-optional.d.ts +3 -3
  310. package/dist/safe-bash/lazy-optional.js +1 -1
  311. package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
  312. package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
  313. package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
  314. package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
  315. package/dist/safe-bash/opt-in/commands/yq/native-work.js +2 -0
  316. package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
  317. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
  318. package/dist/safe-bash/opt-in/optional.d.ts +1 -1
  319. package/dist/safe-bash/opt-in/optional.js +1 -1
  320. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
  321. package/dist/safe-bash/optional-host.browser.js +23 -18
  322. package/dist/safe-bash/optional-host.d.ts +1 -0
  323. package/dist/safe-bash/optional-host.js +1 -0
  324. package/dist/safe-bash/playwright/controller.js +41 -3
  325. package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
  326. package/dist/safe-bash/plugins/base.d.ts +1 -1
  327. package/dist/safe-bash/plugins/base.js +3 -3
  328. package/dist/safe-bash/plugins/composition.d.ts +5 -2
  329. package/dist/safe-bash/plugins/composition.js +10 -7
  330. package/dist/safe-bash/plugins/index.browser.js +44 -41
  331. package/dist/safe-bash/plugins/index.js +3 -2
  332. package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
  333. package/dist/safe-bash/plugins/portable-commands.js +31 -0
  334. package/dist/safe-bash/registry-entry.browser.js +41 -42
  335. package/dist/safe-bash/search.browser.js +32 -33
  336. package/dist/safe-bash/shell/arithmetic.js +19 -6
  337. package/dist/safe-bash/shell/arrays/state.js +1 -1
  338. package/dist/safe-bash/shell/arrays/syntax.js +4 -3
  339. package/dist/safe-bash/shell/index.d.ts +0 -1
  340. package/dist/safe-bash/shell/index.js +0 -1
  341. package/dist/safe-bash/shell/parser.d.ts +2 -2
  342. package/dist/safe-bash/shell/parser.js +268 -64
  343. package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
  344. package/dist/safe-bash/shell/read-builtin.js +344 -0
  345. package/dist/safe-bash/shell/runtime.d.ts +21 -4
  346. package/dist/safe-bash/shell/runtime.js +373 -412
  347. package/dist/safe-bash/shell/session-state.js +25 -0
  348. package/dist/safe-bash/shell/shell.js +76 -154
  349. package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
  350. package/dist/safe-bash/shell/tilde-expansion.js +2 -2
  351. package/dist/safe-bash/shell/types.d.ts +5 -0
  352. package/dist/safe-bash/shell/value-state.js +1 -1
  353. package/dist/safe-bash/shell-entry.browser.js +32 -33
  354. package/dist/safe-bash/trap.browser.js +4 -4
  355. package/dist/safe-bash/yq-browser/index.js +1 -1
  356. package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
  357. package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
  358. package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
  359. package/dist/safe-bash-command-alias/index.d.ts +13 -0
  360. package/dist/safe-bash-command-alias/index.js +88 -0
  361. package/dist/safe-bash-command-apply-patch/apply.js +3 -3
  362. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  363. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  364. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  365. package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
  366. package/dist/safe-bash-command-awk/awk-reader.js +1 -1
  367. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  368. package/dist/safe-bash-command-awk/awk.js +5 -5
  369. package/dist/safe-bash-command-awk/index.js +5 -5
  370. package/dist/safe-bash-command-bc/index.js +206 -60
  371. package/dist/safe-bash-command-cmp/index.js +7 -6
  372. package/dist/safe-bash-command-column/column.js +3 -3
  373. package/dist/safe-bash-command-column/index.js +3 -3
  374. package/dist/safe-bash-command-column/layout.js +2 -2
  375. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  376. package/dist/safe-bash-command-csvkit/index.js +1505 -7
  377. package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
  378. package/dist/safe-bash-command-curl/curl.js +1 -1
  379. package/dist/safe-bash-command-curl/index.js +1 -1
  380. package/dist/safe-bash-command-date/date.js +1 -1
  381. package/dist/safe-bash-command-date/index.js +1 -1
  382. package/dist/safe-bash-command-dd/index.js +1 -1
  383. package/dist/safe-bash-command-dd/io.js +51 -5
  384. package/dist/safe-bash-command-diff/diff.js +1 -1
  385. package/dist/safe-bash-command-diff/index.js +1 -1
  386. package/dist/safe-bash-command-diff3/index.js +10 -13
  387. package/dist/safe-bash-command-exiftool/index.js +278 -50
  388. package/dist/safe-bash-command-exiftool/registry.d.ts +4 -2
  389. package/dist/safe-bash-command-factor/command.js +2 -2
  390. package/dist/safe-bash-command-factor/index.js +2 -2
  391. package/dist/safe-bash-command-fd/arguments.d.ts +2 -0
  392. package/dist/safe-bash-command-fd/index.js +42 -12
  393. package/dist/safe-bash-command-ffmpeg/index.js +356 -66
  394. package/dist/safe-bash-command-find/find-format.d.ts +3 -0
  395. package/dist/safe-bash-command-find/find-format.js +1 -1
  396. package/dist/safe-bash-command-find/find.js +2 -2
  397. package/dist/safe-bash-command-find/index.js +2 -2
  398. package/dist/safe-bash-command-fmt/index.js +1 -4
  399. package/dist/safe-bash-command-fold/engine.d.ts +1 -1
  400. package/dist/safe-bash-command-fold/family.js +2 -2
  401. package/dist/safe-bash-command-fold/index.js +1 -1
  402. package/dist/safe-bash-command-hexdump/command.js +2 -2
  403. package/dist/safe-bash-command-hexdump/index.js +2 -2
  404. package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
  405. package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
  406. package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
  407. package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
  408. package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
  409. package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
  410. package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
  411. package/dist/safe-bash-command-htmlq/index.js +175 -49
  412. package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
  413. package/dist/safe-bash-command-imagemagick/index.js +56 -6
  414. package/dist/safe-bash-command-install/arguments.d.ts +27 -0
  415. package/dist/safe-bash-command-install/arguments.js +224 -0
  416. package/dist/safe-bash-command-install/index.d.ts +7 -0
  417. package/dist/safe-bash-command-install/index.js +942 -0
  418. package/dist/safe-bash-command-install/mode.d.ts +6 -0
  419. package/dist/safe-bash-command-install/mode.js +71 -0
  420. package/dist/safe-bash-command-install/options.d.ts +40 -0
  421. package/dist/safe-bash-command-install/options.js +27 -0
  422. package/dist/safe-bash-command-jq/index.js +1 -1
  423. package/dist/safe-bash-command-jq/jq.js +1 -1
  424. package/dist/safe-bash-command-less/index.js +37 -61
  425. package/dist/safe-bash-command-llm/command.js +1 -1
  426. package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
  427. package/dist/safe-bash-command-llm/index.js +4 -4
  428. package/dist/safe-bash-command-llm/openai.js +2 -2
  429. package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
  430. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  431. package/dist/safe-bash-command-llm/providers/openai.js +2 -2
  432. package/dist/safe-bash-command-llm/providers/shared.js +1 -1
  433. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
  434. package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
  435. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
  436. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2804 -2771
  437. package/dist/safe-bash-command-media/LICENSE +21 -0
  438. package/dist/safe-bash-command-media/index.d.ts +6 -0
  439. package/dist/safe-bash-command-media/index.js +30 -0
  440. package/dist/safe-bash-command-media/plugin.d.ts +18 -0
  441. package/dist/safe-bash-command-media/plugin.js +11 -0
  442. package/dist/safe-bash-command-media/remote.d.ts +63 -0
  443. package/dist/safe-bash-command-media/remote.js +11 -0
  444. package/dist/safe-bash-command-media/settings.d.ts +4 -0
  445. package/dist/safe-bash-command-media/settings.js +41 -0
  446. package/dist/safe-bash-command-mktemp/command.js +1 -1
  447. package/dist/safe-bash-command-mktemp/index.js +1 -1
  448. package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
  449. package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
  450. package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
  451. package/dist/safe-bash-command-mmdc/index.js +359 -7
  452. package/dist/safe-bash-command-nl/index.js +1 -1
  453. package/dist/safe-bash-command-nl/nl.js +1 -1
  454. package/dist/safe-bash-command-node/LICENSE +21 -0
  455. package/dist/safe-bash-command-node/index.d.ts +17 -0
  456. package/dist/safe-bash-command-node/index.js +328 -0
  457. package/dist/safe-bash-command-numfmt/index.js +1 -0
  458. package/dist/safe-bash-command-od/index.js +10 -6
  459. package/dist/safe-bash-command-op/index.js +39 -32
  460. package/dist/safe-bash-command-op/types.d.ts +1 -0
  461. package/dist/safe-bash-command-pandoc/command.js +3 -3
  462. package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
  463. package/dist/safe-bash-command-pandoc/index.js +5 -3
  464. package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
  465. package/dist/safe-bash-command-patch/index.js +4 -4
  466. package/dist/safe-bash-command-patch/patch.js +4 -4
  467. package/dist/safe-bash-command-pdfimages/index.js +1 -1
  468. package/dist/safe-bash-command-pdfinfo/index.js +30 -5
  469. package/dist/safe-bash-command-pdftk/index.js +21 -23
  470. package/dist/safe-bash-command-pdftoppm/index.js +17 -4
  471. package/dist/safe-bash-command-pdftotext/index.js +11 -14
  472. package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
  473. package/dist/safe-bash-command-qpdf/index.js +9 -6
  474. package/dist/safe-bash-command-rg/index.js +1 -1
  475. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  476. package/dist/safe-bash-command-sed/index.js +1 -1
  477. package/dist/safe-bash-command-sed/sed.js +1 -1
  478. package/dist/safe-bash-command-shuf/input.d.ts +2 -2
  479. package/dist/safe-bash-command-shuf/input.js +2 -1
  480. package/dist/safe-bash-command-shuf/shuf.js +4 -2
  481. package/dist/safe-bash-command-sips/index.js +2 -2
  482. package/dist/safe-bash-command-soffice/index.js +97 -12
  483. package/dist/safe-bash-command-sponge/index.js +4 -1
  484. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
  485. package/dist/safe-bash-command-sqlite3/index.js +510 -70
  486. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
  487. package/dist/safe-bash-command-ssconvert/index.js +44 -22
  488. package/dist/safe-bash-command-stat/command.js +1 -1
  489. package/dist/safe-bash-command-stat/index.js +1 -1
  490. package/dist/safe-bash-command-tar/create.d.ts +1 -0
  491. package/dist/safe-bash-command-tar/create.js +2 -2
  492. package/dist/safe-bash-command-tar/extract.js +2 -2
  493. package/dist/safe-bash-command-tar/index.js +4 -4
  494. package/dist/safe-bash-command-tar/modes.js +4 -4
  495. package/dist/safe-bash-command-tar/options.js +1 -1
  496. package/dist/safe-bash-command-truncate/index.js +2 -2
  497. package/dist/safe-bash-command-tsort/command.js +2 -2
  498. package/dist/safe-bash-command-tsort/index.js +2 -2
  499. package/dist/safe-bash-command-unalias/index.d.ts +12 -0
  500. package/dist/safe-bash-command-unalias/index.js +67 -0
  501. package/dist/safe-bash-command-unrtf/index.js +26 -4
  502. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  503. package/dist/safe-bash-command-xan/argv.js +2 -2
  504. package/dist/safe-bash-command-xan/budget.d.ts +0 -1
  505. package/dist/safe-bash-command-xan/budget.js +1 -1
  506. package/dist/safe-bash-command-xan/commands.js +6 -6
  507. package/dist/safe-bash-command-xan/csv.js +2 -2
  508. package/dist/safe-bash-command-xan/index.js +8 -9
  509. package/dist/safe-bash-command-xan/io.js +4 -4
  510. package/dist/safe-bash-command-xan/options.js +1 -1
  511. package/dist/safe-bash-command-xan/selector.js +2 -2
  512. package/dist/safe-bash-command-xmllint/index.js +45 -23
  513. package/dist/safe-bash-command-xxd/index.js +41 -10
  514. package/dist/safe-bash-command-yq/accounting.js +1 -1
  515. package/dist/safe-bash-command-yq/index.js +3 -2
  516. package/dist/safe-bash-command-yq/native-work.js +2 -0
  517. package/dist/safe-bash-command-yq/parser.js +2 -2
  518. package/dist/safe-bash-command-yq/query.js +5 -5
  519. package/dist/safe-bash-command-yq/toml.js +2 -2
  520. package/dist/safe-bash-command-zip/index.js +3 -3
  521. package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
  522. package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
  523. package/dist/safe-bash-compression-engine/files.js +5 -5
  524. package/dist/safe-bash-compression-engine/index.js +4 -4
  525. package/dist/safe-bash-compression-engine/operand.js +5 -5
  526. package/dist/safe-bash-compression-engine/stream.js +4 -4
  527. package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
  528. package/dist/safe-bash-contracts/command.js +3 -3
  529. package/dist/safe-bash-contracts/default-executor.js +2 -2
  530. package/dist/safe-bash-contracts/diagnostics.js +3 -3
  531. package/dist/safe-bash-contracts/escaping.js +6 -6
  532. package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
  533. package/dist/safe-bash-contracts/filesystem-output.js +5 -5
  534. package/dist/safe-bash-contracts/http.d.ts +7 -0
  535. package/dist/safe-bash-contracts/index.js +8 -8
  536. package/dist/safe-bash-contracts/io.js +2 -2
  537. package/dist/safe-bash-contracts/output.js +3 -3
  538. package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
  539. package/dist/safe-bash-contracts/runtime-control.js +4 -2
  540. package/dist/safe-bash-contracts/signals.d.ts +2 -0
  541. package/dist/safe-bash-contracts/signals.js +3 -1
  542. package/dist/safe-bash-contracts/yield.js +1 -1
  543. package/dist/safe-bash-csv-engine/index.d.ts +2 -1
  544. package/dist/safe-bash-csv-engine/index.js +21 -15
  545. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  546. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
  547. package/dist/safe-bash-io-engine/internal.js +1 -1
  548. package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
  549. package/dist/safe-bash-line-ending-engine/convert.js +9 -204
  550. package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
  551. package/dist/safe-bash-line-ending-engine/index.js +48 -0
  552. package/dist/safe-bash-line-ending-engine/info.js +9 -90
  553. package/dist/safe-bash-line-ending-engine/internal.js +15 -160
  554. package/dist/safe-bash-line-ending-engine/io.js +12 -289
  555. package/dist/safe-bash-line-ending-engine/stage.js +10 -160
  556. package/dist/safe-bash-markdown-engine/index.js +3 -3
  557. package/dist/safe-bash-network-engine/args.d.ts +6 -0
  558. package/dist/safe-bash-network-engine/args.js +4 -2
  559. package/dist/safe-bash-network-engine/body.js +1 -1
  560. package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
  561. package/dist/safe-bash-network-engine/index.js +3 -1
  562. package/dist/safe-bash-network-engine/input.js +2 -2
  563. package/dist/safe-bash-network-engine/platform-portable.js +3 -1
  564. package/dist/safe-bash-query-engine/dates.d.ts +1 -1
  565. package/dist/safe-bash-query-engine/dates.js +1 -1
  566. package/dist/safe-bash-query-engine/index.js +6 -6
  567. package/dist/safe-bash-query-engine/interpreter.js +4 -4
  568. package/dist/safe-bash-query-engine/parser.js +1 -1
  569. package/dist/safe-bash-query-engine/query-core.js +6 -6
  570. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
  571. package/dist/safe-bash-regex-engine/index.js +1 -1
  572. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
  573. package/dist/safe-bash-regex-engine/text/regex.js +1 -1
  574. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
  575. package/dist/safe-bash-search-engine/ergonomic-regex.js +1 -1
  576. package/dist/safe-bash-search-engine/grep.js +16 -9
  577. package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
  578. package/dist/safe-bash-search-engine/matcher.js +12 -8
  579. package/dist/safe-bash-search-engine/shared.js +1 -1
  580. package/dist/safe-bash-search-engine/walk.js +13 -1
  581. package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
  582. package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
  583. package/dist/safe-bash-xml-engine/document.js +3 -3
  584. package/dist/safe-bash-xml-engine/evaluate.js +2 -2
  585. package/dist/safe-bash-xml-engine/index.js +4 -4
  586. package/dist/safe-bash-xml-engine/io.js +7 -2
  587. package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
  588. package/dist/safe-bash-xml-engine/limits.js +1 -1
  589. package/dist/safe-bash-xml-engine/query.js +3 -3
  590. package/dist/safe-bash-zip-engine/index.js +3 -3
  591. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  592. package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
  593. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  594. package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
  595. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  596. package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
  597. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
  598. package/dist/xlsx-ast/xlsx.js +6 -5
  599. package/package.json +86 -98
  600. package/dist/media-cli/bytes.d.ts +0 -8
  601. package/dist/media-cli/bytes.js +0 -40
  602. package/dist/media-cli/concat.d.ts +0 -30
  603. package/dist/media-cli/concat.js +0 -197
  604. package/dist/media-cli/content.js +0 -66
  605. package/dist/media-cli/dependency-grammars.d.ts +0 -12
  606. package/dist/media-cli/dependency-grammars.js +0 -557
  607. package/dist/media-cli/discover.js +0 -286
  608. package/dist/media-cli/engine.js +0 -190
  609. package/dist/media-cli/filename-expression.js +0 -147
  610. package/dist/media-cli/filesystem.js +0 -35
  611. package/dist/media-cli/frontend-contract.js +0 -8
  612. package/dist/media-cli/frontend-issues.d.ts +0 -6
  613. package/dist/media-cli/frontend-issues.js +0 -9
  614. package/dist/media-cli/imagemagick-operand.d.ts +0 -42
  615. package/dist/media-cli/imagemagick-operand.js +0 -229
  616. package/dist/media-cli/imagemagick-references.d.ts +0 -7
  617. package/dist/media-cli/imagemagick-references.js +0 -42
  618. package/dist/media-cli/imagemagick.generated.js +0 -3254
  619. package/dist/media-cli/imagemagick.js +0 -615
  620. package/dist/media-cli/index.js +0 -12
  621. package/dist/media-cli/mvg.d.ts +0 -10
  622. package/dist/media-cli/mvg.js +0 -102
  623. package/dist/media-cli/network.js +0 -78
  624. package/dist/media-cli/options.generated.js +0 -3312
  625. package/dist/media-cli/preset.d.ts +0 -11
  626. package/dist/media-cli/preset.js +0 -57
  627. package/dist/media-cli/resolution-path.d.ts +0 -23
  628. package/dist/media-cli/resolution-path.js +0 -217
  629. package/dist/media-cli/resolver.js +0 -494
  630. package/dist/media-cli/resources.d.ts +0 -16
  631. package/dist/media-cli/resources.js +0 -187
  632. package/dist/media-cli/shim.js +0 -52
  633. package/dist/media-cli/tee.d.ts +0 -6
  634. package/dist/media-cli/tee.js +0 -38
  635. package/dist/office-package/zip-sync.js +0 -111
  636. package/dist/remote-execution/binary.js +0 -178
  637. package/dist/remote-execution/callback-result.js +0 -26
  638. package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
  639. package/dist/remote-execution/canonical-capabilities.js +0 -45
  640. package/dist/remote-execution/canonical-metadata.d.ts +0 -4
  641. package/dist/remote-execution/canonical-metadata.js +0 -32
  642. package/dist/remote-execution/client.js +0 -824
  643. package/dist/remote-execution/deployment.js +0 -131
  644. package/dist/remote-execution/descriptors.js +0 -267
  645. package/dist/remote-execution/effects.js +0 -357
  646. package/dist/remote-execution/endpoint.js +0 -224
  647. package/dist/remote-execution/files.js +0 -291
  648. package/dist/remote-execution/hosting-operation.js +0 -26
  649. package/dist/remote-execution/hosting-request.d.ts +0 -4
  650. package/dist/remote-execution/hosting-request.js +0 -12
  651. package/dist/remote-execution/hosting-stream.d.ts +0 -8
  652. package/dist/remote-execution/hosting-stream.js +0 -64
  653. package/dist/remote-execution/index.js +0 -18
  654. package/dist/remote-execution/invocation-admission.d.ts +0 -3
  655. package/dist/remote-execution/invocation-admission.js +0 -17
  656. package/dist/remote-execution/job-binding.js +0 -1269
  657. package/dist/remote-execution/materializations.js +0 -284
  658. package/dist/remote-execution/modal-driver.js +0 -90
  659. package/dist/remote-execution/native-result.d.ts +0 -3
  660. package/dist/remote-execution/native-result.js +0 -16
  661. package/dist/remote-execution/output-freshness.d.ts +0 -4
  662. package/dist/remote-execution/output-freshness.js +0 -19
  663. package/dist/remote-execution/output-retrieval.js +0 -474
  664. package/dist/remote-execution/process-http.js +0 -607
  665. package/dist/remote-execution/process.js +0 -577
  666. package/dist/remote-execution/protocol.js +0 -208
  667. package/dist/remote-execution/relay.js +0 -91
  668. package/dist/remote-execution/rest-driver.js +0 -93
  669. package/dist/remote-execution/upload-descriptor.js +0 -201
  670. package/dist/remote-execution/upload-protocol.js +0 -62
  671. package/dist/remote-execution/uploads.js +0 -324
  672. package/dist/remote-execution/wire-json.d.ts +0 -4
  673. package/dist/remote-execution/wire-json.js +0 -44
  674. package/dist/remote-execution/wire-validation.js +0 -131
  675. package/dist/remote-execution/wire.generated.js +0 -4224
  676. package/dist/safe-bash/chunks/chunk-GDYNCWRV.js +0 -161
  677. package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
  678. package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
  679. package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
  680. package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
  681. package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
  682. package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
  683. package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
  684. package/dist/safe-bash/commands/node/unconfigured.js +0 -10
  685. package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
  686. package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
  687. package/dist/safe-bash-mcp/index.browser.js +0 -9167
  688. package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
  689. package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
  690. package/dist/safe-bash/command-chunks/{chunk-BXCXRYVU.js → chunk-JNANXVJV.js} +0 -0
  691. package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
  692. package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
  693. package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
  694. package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
  695. package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
  696. /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
@@ -7,6 +7,42 @@ init_buffer();
7
7
 
8
8
  // packages/safe-bash-command-exiftool/src/command.ts
9
9
  init_buffer();
10
+
11
+ // packages/safe-bash-command-exiftool/src/system-tags.ts
12
+ init_buffer();
13
+ function systemTags(file, size, metadata, invocation, resources) {
14
+ resources.admit("work", file.length * 4 + metadata.length + 256);
15
+ resources.admit("decoded", file.length * 2 + 256);
16
+ resources.admit("retained", file.length * 16 + 2048);
17
+ const values = [];
18
+ if (file !== "-") {
19
+ const slash = file.lastIndexOf("/");
20
+ values.push(["FileName", file.slice(slash + 1), "System"], ["Directory", slash < 0 ? "." : file.slice(0, slash) || "/", "System"]);
21
+ }
22
+ const numeric = invocation.numeric || invocation.binary || invocation.valueConvTags.includes("filesize");
23
+ let formatted = String(size) + " bytes";
24
+ if (size >= 1e3) {
25
+ const units = ["kB", "MB", "GB", "TB", "PB"];
26
+ const exponent = Math.min(units.length, Math.floor(Math.log10(size) / 3));
27
+ formatted = String(Number((size / 1e3 ** exponent).toPrecision(3))) + " " + units[exponent - 1];
28
+ }
29
+ values.push(["FileSize", numeric ? String(size) : formatted, "System"]);
30
+ const type = metadata.find((tag) => tag.name === "FileType")?.value ?? (metadata.some((tag) => tag.name === "PDFVersion") ? "PDF" : void 0);
31
+ if (type) values.push(["FileTypeExtension", type === "JPEG" ? "jpg" : type.toLowerCase(), "File"]);
32
+ return values.map(([name, value, group]) => ({
33
+ name,
34
+ rawName: name,
35
+ value,
36
+ group,
37
+ chunkType: "System",
38
+ index: -1,
39
+ instance: 0,
40
+ offset: 0,
41
+ raw: new TextEncoder().encode(value)
42
+ }));
43
+ }
44
+
45
+ // packages/safe-bash-command-exiftool/src/command.ts
10
46
  import { yieldTurn } from "../safe-bash-contracts/yield.js";
11
47
  import { commandRuntimeIdentity, getCommandArguments } from "../safe-bash-contracts/command.js";
12
48
  import { FsError as FsError2 } from "../safe-bash-contracts/errors.js";
@@ -19,21 +55,24 @@ init_buffer();
19
55
 
20
56
  // packages/safe-bash-command-exiftool/src/registry.ts
21
57
  init_buffer();
58
+ var stringMetadataTags = /* @__PURE__ */ new Set(["Artist", "Copyright", "Title", "Author", "Subject", "Description", "ImageDescription", "Comment", "UserComment", "Creator", "Producer", "Software", "Make", "Model", "LensModel", "Keywords", "ModifyDate", "DateTimeOriginal", "CreateDate", "FileName", "Directory"]);
22
59
  var textChunks = Object.freeze(["tEXt", "iTXt"]);
23
60
  var writeChunks = Object.freeze({
24
61
  Artist: textChunks,
25
62
  Title: textChunks,
26
63
  Author: textChunks,
27
64
  Description: textChunks,
65
+ ImageDescription: textChunks,
66
+ Software: textChunks,
28
67
  Comment: textChunks,
29
68
  Copyright: textChunks,
30
69
  ModifyDate: Object.freeze(["tIME"])
31
70
  });
32
71
  var exiftoolRegistry = Object.freeze({
33
- version: 4,
72
+ version: 6,
34
73
  source: Object.freeze({ version: "13.59", commit: "2200871d9cef988051d2a99d67df3bda6cbb30a8", archiveSha256: "e1e2ad6c6fbf568afee5993ef8b2b91ab013d21698c9304e079e633ad82776f5" }),
35
- formats: Object.freeze({ PNG: Object.freeze({ reader: "header-uncompressed-text-time", writer: "selected-text-time" }), JPEG: Object.freeze({ reader: "frame-ifd0-text", writer: "ifd0-artist-copyright" }) }),
36
- tags: Object.freeze([...Object.keys(writeChunks), "ImageWidth", "ImageHeight", "BitDepth", "ColorType", "FileType", "MIMEType", "ImageSize", "Subject", "Keywords", "Creator", "Producer", "CreateDate", "PDFVersion", "PageCount"]),
74
+ formats: Object.freeze({ PNG: Object.freeze({ reader: "header-uncompressed-text-time", writer: "selected-text-time" }), JPEG: Object.freeze({ reader: "frame-ifd0-text", writer: "ifd0-exififd-selected-tags" }) }),
75
+ tags: Object.freeze([...Object.keys(writeChunks), "ImageWidth", "ImageHeight", "BitDepth", "ColorType", "FileName", "Directory", "FileSize", "FileTypeExtension", "FileType", "MIMEType", "ImageSize", "Subject", "Keywords", "Creator", "Producer", "CreateDate", "PDFVersion", "PageCount", "Make", "Model", "Orientation", "ExposureTime", "FNumber", "ISO", "DateTimeOriginal", "FocalLength", "LensModel", "UserComment"]),
37
76
  writeChunks,
38
77
  scalarShiftErrorGroups: Object.freeze({ Title: "XMP-xmp" })
39
78
  });
@@ -50,6 +89,8 @@ function parseArguments(args, limits) {
50
89
  files: [],
51
90
  tags: [],
52
91
  assignments: [],
92
+ numeric: false,
93
+ valueConvTags: [],
53
94
  json: false,
54
95
  csv: false,
55
96
  quoteScalars: false,
@@ -142,7 +183,10 @@ function parseArguments(args, limits) {
142
183
  result.style = shortLevel >= 3 ? "values" : shortLevel === 2 ? "compact" : "short";
143
184
  continue;
144
185
  }
145
- if (option === "-n") continue;
186
+ if (option === "-n") {
187
+ result.numeric = true;
188
+ continue;
189
+ }
146
190
  if (option === "-overwrite_original") {
147
191
  result.overwrite = "replace";
148
192
  continue;
@@ -167,7 +211,10 @@ function parseArguments(args, limits) {
167
211
  const operation = name.endsWith("+") ? "add" : name.endsWith("-") ? "remove" : "set";
168
212
  if (operation !== "set") name = name.slice(0, -1);
169
213
  if (name.endsWith("#")) {
170
- if (equals < 0) valueConvSelector = true;
214
+ if (equals < 0) {
215
+ valueConvSelector = true;
216
+ result.valueConvTags.push(name.slice(0, -1).toLowerCase());
217
+ }
171
218
  name = name.slice(0, -1);
172
219
  }
173
220
  const known = exiftoolRegistry.tags.find((tag) => tag.toLowerCase() === name.toLowerCase());
@@ -580,7 +627,42 @@ function editPng(input, assignments, options) {
580
627
 
581
628
  // packages/safe-bash-command-exiftool/src/jpeg.ts
582
629
  init_buffer();
583
- var jpegWriteTags = Object.freeze({ Artist: 315, Copyright: 33432 });
630
+ var jpegWriteTags = Object.freeze({ ImageDescription: 270, Description: 270, Make: 271, Model: 272, Orientation: 274, Software: 305, ModifyDate: 306, UserComment: 37510, DateTimeOriginal: 36867, CreateDate: 36868, Artist: 315, Copyright: 33432 });
631
+ var jpegReadIfd0Tags = Object.freeze({
632
+ 270: "ImageDescription",
633
+ 271: "Make",
634
+ 272: "Model",
635
+ 274: "Orientation",
636
+ 305: "Software",
637
+ 306: "ModifyDate",
638
+ 315: "Artist",
639
+ 33432: "Copyright"
640
+ });
641
+ var jpegReadExifIfdTags = Object.freeze({
642
+ 33434: "ExposureTime",
643
+ 33437: "FNumber",
644
+ 34855: "ISO",
645
+ 36867: "DateTimeOriginal",
646
+ 36868: "CreateDate",
647
+ 37510: "UserComment",
648
+ 37386: "FocalLength",
649
+ 42036: "LensModel"
650
+ });
651
+ function hasValidEoiAfterSos(bytes, sosEnd) {
652
+ let trimmedLen = bytes.length;
653
+ while (trimmedLen > sosEnd + 2 && bytes[trimmedLen - 1] === 0) {
654
+ trimmedLen--;
655
+ }
656
+ if (trimmedLen >= sosEnd + 2 && bytes[trimmedLen - 2] === 255 && bytes[trimmedLen - 1] === 217) {
657
+ return true;
658
+ }
659
+ for (let i = sosEnd; i + 1 < bytes.length; i++) {
660
+ if (bytes[i] === 255 && bytes[i + 1] === 217) {
661
+ return true;
662
+ }
663
+ }
664
+ return false;
665
+ }
584
666
  function segments(bytes, resources) {
585
667
  resources.admit("input", bytes.length);
586
668
  resources.admit("work", bytes.length * 8);
@@ -608,7 +690,7 @@ function segments(bytes, resources) {
608
690
  resources.admit("retained", 128);
609
691
  result.push({ marker, start, end, payload: bytes.subarray(position + 2, end) });
610
692
  if (marker === 218) {
611
- if (bytes[bytes.length - 2] !== 255 || bytes[bytes.length - 1] !== 217) throw new Error("JPEG missing EOI");
693
+ if (!hasValidEoiAfterSos(bytes, end)) throw new Error("JPEG missing EOI");
612
694
  return result;
613
695
  }
614
696
  position = end;
@@ -632,6 +714,59 @@ function tiff(payload) {
632
714
  if (count * 12 + 6 > bytes.length - offset) throw new Error("Truncated EXIF directory");
633
715
  return { bytes, view, little, offset, count };
634
716
  }
717
+ function decodeTiffEntryValue(bytes, view, little, entry) {
718
+ const type = view.getUint16(entry + 2, little);
719
+ const count = view.getUint32(entry + 4, little);
720
+ if (type === 2) {
721
+ const start = count <= 4 ? entry + 8 : view.getUint32(entry + 8, little);
722
+ if (start > bytes.length || count > bytes.length - start) throw new Error("Truncated EXIF text");
723
+ const raw = bytes.subarray(start, start + count);
724
+ const end = raw.indexOf(0);
725
+ return {
726
+ value: new TextDecoder("utf-8").decode(end < 0 ? raw : raw.subarray(0, end)),
727
+ valueOffset: start
728
+ };
729
+ }
730
+ if (type === 7 && view.getUint16(entry, little) === 37510) {
731
+ const start = count <= 4 ? entry + 8 : view.getUint32(entry + 8, little);
732
+ if (start > bytes.length || count > bytes.length - start || count < 8) throw new Error("Truncated EXIF UserComment");
733
+ const raw = bytes.subarray(start, start + count);
734
+ const encoding = new TextDecoder().decode(raw.subarray(0, 8));
735
+ const text = raw.subarray(8);
736
+ const value = encoding === "UNICODE\0" ? new TextDecoder(little ? "utf-16le" : "utf-16be", { fatal: true }).decode(text) : new TextDecoder().decode(text);
737
+ return { value: value.endsWith("\0") ? value.slice(0, -1) : value, valueOffset: start };
738
+ }
739
+ if (type === 3 && count >= 1) {
740
+ const start = count <= 2 ? entry + 8 : view.getUint32(entry + 8, little);
741
+ if (start + 2 <= bytes.length) {
742
+ return { value: String(view.getUint16(start, little)), valueOffset: start };
743
+ }
744
+ }
745
+ if (type === 4 && count >= 1) {
746
+ const start = count === 1 ? entry + 8 : view.getUint32(entry + 8, little);
747
+ if (start + 4 <= bytes.length) {
748
+ return { value: String(view.getUint32(start, little)), valueOffset: start };
749
+ }
750
+ }
751
+ if (type === 5 && count >= 1) {
752
+ const start = view.getUint32(entry + 8, little);
753
+ if (start + 8 <= bytes.length) {
754
+ const num = view.getUint32(start, little);
755
+ const den = view.getUint32(start + 4, little);
756
+ if (den > 0) {
757
+ if (num < den && num > 0 && den % num === 0) {
758
+ return { value: `1/${Math.round(den / num)}`, valueOffset: start };
759
+ }
760
+ const ratio = num / den;
761
+ return {
762
+ value: Number.isInteger(ratio) ? String(ratio) : ratio.toFixed(2).replace(/\.?0+$/, ""),
763
+ valueOffset: start
764
+ };
765
+ }
766
+ }
767
+ }
768
+ return void 0;
769
+ }
635
770
  function inspectJpeg(input, options) {
636
771
  const resources = options instanceof Resources ? options : new Resources(options);
637
772
  const parts = segments(input, resources);
@@ -656,16 +791,40 @@ function inspectJpeg(input, options) {
656
791
  }
657
792
  if (!isExif(part)) continue;
658
793
  const { bytes, view, little, offset, count } = tiff(part.payload);
794
+ let exifIfdOffset = 0;
659
795
  for (let i = 0; i < count; i++) {
660
796
  const entry = offset + 2 + i * 12;
661
- const name = Object.keys(jpegWriteTags).find((name2) => jpegWriteTags[name2] === view.getUint16(entry, little));
662
- if (!name || view.getUint16(entry + 2, little) !== 2) continue;
663
- const length = view.getUint32(entry + 4, little);
664
- const start = length <= 4 ? entry + 8 : view.getUint32(entry + 8, little);
665
- if (start > bytes.length || length > bytes.length - start) throw new Error("Truncated EXIF text");
666
- const raw = bytes.subarray(start, start + length);
667
- const end = raw.indexOf(0);
668
- add(name, new TextDecoder("utf-8").decode(end < 0 ? raw : raw.subarray(0, end)), "IFD0", part.start + 10 + start);
797
+ const tagId = view.getUint16(entry, little);
798
+ if (tagId === 34665 && view.getUint16(entry + 2, little) === 4) {
799
+ exifIfdOffset = view.getUint32(entry + 8, little);
800
+ continue;
801
+ }
802
+ const name = jpegReadIfd0Tags[tagId];
803
+ if (!name) continue;
804
+ const decoded = decodeTiffEntryValue(bytes, view, little, entry);
805
+ if (decoded) {
806
+ add(name, decoded.value, "IFD0", part.start + 10 + decoded.valueOffset);
807
+ }
808
+ }
809
+ if (exifIfdOffset >= 8 && exifIfdOffset + 2 <= bytes.length) {
810
+ const subCount = view.getUint16(exifIfdOffset, little);
811
+ if (subCount * 12 + 2 <= bytes.length - exifIfdOffset) {
812
+ for (let i = 0; i < subCount; i++) {
813
+ const entry = exifIfdOffset + 2 + i * 12;
814
+ const tagId = view.getUint16(entry, little);
815
+ const name = jpegReadExifIfdTags[tagId];
816
+ if (!name) continue;
817
+ let decoded;
818
+ try {
819
+ decoded = decodeTiffEntryValue(bytes, view, little, entry);
820
+ } catch {
821
+ continue;
822
+ }
823
+ if (decoded) {
824
+ add(name, decoded.value, "ExifIFD", part.start + 10 + decoded.valueOffset);
825
+ }
826
+ }
827
+ }
669
828
  }
670
829
  }
671
830
  return { tags };
@@ -688,38 +847,98 @@ function editJpeg(input, assignments, options) {
688
847
  changes.set(jpegWriteTags[name], assignment.value);
689
848
  }
690
849
  const base = exif[0] ? tiff(exif[0].payload) : tiff(new Uint8Array([69, 120, 105, 102, 0, 0, 73, 73, 42, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0]));
691
- const entries = [];
692
- for (let i = 0; i < base.count; i++) {
693
- const start2 = base.offset + 2 + i * 12;
694
- if (!changes.has(base.view.getUint16(start2, base.little))) entries.push(base.bytes.subarray(start2, start2 + 12));
695
- }
696
- const values = [...changes].filter(([, value]) => value !== "").map(([tag, value]) => ({ tag, bytes: new TextEncoder().encode(value + "\0") }));
697
- const offset = base.bytes.length + base.bytes.length % 2;
698
- const count = entries.length + values.length;
699
- const length = offset + 6 + count * 12 + values.reduce((sum, v) => sum + (v.bytes.length > 4 ? v.bytes.length : 0), 0);
700
- if (length + 8 > 65535 || count > 65535) throw new Error("EXIF segment too large");
701
- resources.admit("retained", length * 3 + count * 128);
702
- resources.admit("work", length * 4);
703
- const bytes = new Uint8Array(length);
704
- bytes.set(base.bytes);
705
- const view = new DataView(bytes.buffer);
706
- view.setUint32(4, offset, base.little);
707
- view.setUint16(offset, count, base.little);
708
- entries.forEach((entry, i) => bytes.set(entry, offset + 2 + i * 12));
709
- view.setUint32(offset + 2 + count * 12, base.view.getUint32(base.offset + 2 + base.count * 12, base.little), base.little);
710
- let cursor2 = offset + 6 + count * 12;
711
- values.forEach((value, i) => {
712
- const p = offset + 2 + (entries.length + i) * 12;
713
- view.setUint16(p, value.tag, base.little);
714
- view.setUint16(p + 2, 2, base.little);
715
- view.setUint32(p + 4, value.bytes.length, base.little);
716
- if (value.bytes.length <= 4) bytes.set(value.bytes, p + 8);
717
- else {
718
- view.setUint32(p + 8, cursor2, base.little);
719
- bytes.set(value.bytes, cursor2);
720
- cursor2 += value.bytes.length;
850
+ let bytes = base.bytes;
851
+ const rootChanges = /* @__PURE__ */ new Map();
852
+ const exifChanges = /* @__PURE__ */ new Map();
853
+ for (const [tag, value] of changes) {
854
+ let encoded;
855
+ if (value !== "") {
856
+ if (tag === 274) {
857
+ if (value.length !== 1 || value < "1" || value > "8") throw new Error("Orientation must be an integer from 1 to 8");
858
+ const data = new Uint8Array(2);
859
+ new DataView(data.buffer).setUint16(0, Number(value), base.little);
860
+ encoded = { type: 3, count: 1, bytes: data };
861
+ } else if (tag === 37510) {
862
+ const ascii = [...value].every((char) => char.charCodeAt(0) < 128);
863
+ const data = new Uint8Array(8 + (ascii ? value.length : value.length * 2));
864
+ data.set(new TextEncoder().encode(ascii ? "ASCII" : "UNICODE"));
865
+ if (ascii) data.set(new TextEncoder().encode(value), 8);
866
+ else {
867
+ const view = new DataView(data.buffer);
868
+ for (let i = 0; i < value.length; i++) view.setUint16(8 + i * 2, value.charCodeAt(i), base.little);
869
+ }
870
+ encoded = { type: 7, count: data.length, bytes: data };
871
+ } else {
872
+ const data = new TextEncoder().encode(value + "\0");
873
+ encoded = { type: 2, count: data.length, bytes: data };
874
+ }
875
+ }
876
+ (Object.hasOwn(jpegReadExifIfdTags, tag) ? exifChanges : rootChanges).set(tag, encoded);
877
+ }
878
+ const appendDirectory = (oldOffset, updates) => {
879
+ const entries = /* @__PURE__ */ new Map();
880
+ let next = 0;
881
+ if (oldOffset) {
882
+ if (oldOffset < 8 || oldOffset > base.bytes.length - 2) throw new Error("Invalid EXIF directory");
883
+ const count2 = base.view.getUint16(oldOffset, base.little);
884
+ if (count2 * 12 + 6 > base.bytes.length - oldOffset) throw new Error("Truncated EXIF directory");
885
+ for (let i = 0; i < count2; i++) {
886
+ const start2 = oldOffset + 2 + i * 12;
887
+ const tag = base.view.getUint16(start2, base.little);
888
+ if (!updates.has(tag)) entries.set(tag, base.bytes.subarray(start2, start2 + 12));
889
+ }
890
+ next = base.view.getUint32(oldOffset + 2 + count2 * 12, base.little);
721
891
  }
722
- });
892
+ for (const [tag, value] of updates) if (value) entries.set(tag, new Uint8Array(12));
893
+ const offset2 = bytes.length + bytes.length % 2;
894
+ const count = entries.size;
895
+ const dataStart = offset2 + 6 + count * 12;
896
+ let length2 = dataStart;
897
+ for (const value of updates.values()) if (value && value.bytes.length > 4) length2 += value.bytes.length + value.bytes.length % 2;
898
+ if (length2 + 8 > 65535 || count > 65535) throw new Error("EXIF segment too large");
899
+ resources.admit("retained", length2 * 3 + count * 128);
900
+ resources.admit("work", length2 * 4);
901
+ const result2 = new Uint8Array(length2);
902
+ result2.set(bytes);
903
+ const view = new DataView(result2.buffer);
904
+ view.setUint16(offset2, count, base.little);
905
+ view.setUint32(offset2 + 2 + count * 12, next, base.little);
906
+ let cursor2 = dataStart;
907
+ [...entries].sort(([a], [b]) => a - b).forEach(([tag, entry], i) => {
908
+ const p = offset2 + 2 + i * 12;
909
+ result2.set(entry, p);
910
+ const value = updates.get(tag);
911
+ if (!value) return;
912
+ view.setUint16(p, tag, base.little);
913
+ view.setUint16(p + 2, value.type, base.little);
914
+ view.setUint32(p + 4, value.count, base.little);
915
+ if (value.bytes.length <= 4) result2.set(value.bytes, p + 8);
916
+ else {
917
+ view.setUint32(p + 8, cursor2, base.little);
918
+ result2.set(value.bytes, cursor2);
919
+ cursor2 += value.bytes.length + value.bytes.length % 2;
920
+ }
921
+ });
922
+ bytes = result2;
923
+ return offset2;
924
+ };
925
+ if (exifChanges.size) {
926
+ let oldOffset = 0;
927
+ for (let i = 0; i < base.count; i++) {
928
+ const entry = base.offset + 2 + i * 12;
929
+ if (base.view.getUint16(entry, base.little) === 34665) {
930
+ if (base.view.getUint16(entry + 2, base.little) !== 4 || base.view.getUint32(entry + 4, base.little) !== 1) throw new Error("Invalid ExifIFD pointer");
931
+ oldOffset = base.view.getUint32(entry + 8, base.little);
932
+ }
933
+ }
934
+ const offset2 = appendDirectory(oldOffset, exifChanges);
935
+ const pointer = new Uint8Array(4);
936
+ new DataView(pointer.buffer).setUint32(0, offset2, base.little);
937
+ rootChanges.set(34665, { type: 4, count: 1, bytes: pointer });
938
+ }
939
+ const offset = appendDirectory(base.offset, rootChanges);
940
+ new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength).setUint32(4, offset, base.little);
941
+ const length = bytes.length;
723
942
  replacement = new Uint8Array(length + 10);
724
943
  replacement.set([255, 225, length + 8 >>> 8, length + 8 & 255, 69, 120, 105, 102, 0, 0]);
725
944
  replacement.set(bytes, 10);
@@ -1737,7 +1956,10 @@ function renderPresentation(file, tags, invocation, resources) {
1737
1956
  return Array.from(text(value), (character) => escapes2[character] ?? character).join("");
1738
1957
  };
1739
1958
  if (invocation.xml) {
1740
- return "\n<rdf:Description rdf:about='" + xml(file) + "'\n xmlns:et='http://ns.exiftool.org/1.0/' et:toolkit='Image::ExifTool " + exiftoolRegistry.source.version + "'\n xmlns:PNG='http://ns.exiftool.org/PNG/PNG/1.0/'>\n" + tags.map((tag) => " <PNG:" + tag.name + ">" + xml(tag.value) + "</PNG:" + tag.name + ">\n").join("") + "</rdf:Description>\n";
1959
+ const groups = [...new Set(tags.map((tag) => tag.group))];
1960
+ if (!groups.length) groups.push("PNG");
1961
+ const namespaces = groups.map((group) => " xmlns:" + group + "='http://ns.exiftool.org/" + (group === "System" ? "File" : group) + "/" + group + "/1.0/'").join("\n");
1962
+ return "\n<rdf:Description rdf:about='" + xml(file) + "'\n xmlns:et='http://ns.exiftool.org/1.0/' et:toolkit='Image::ExifTool " + exiftoolRegistry.source.version + "'\n" + namespaces + ">\n" + tags.map((tag) => " <" + tag.group + ":" + tag.name + ">" + xml(tag.value) + "</" + tag.group + ":" + tag.name + ">\n").join("") + "</rdf:Description>\n";
1741
1963
  }
1742
1964
  if (invocation.template !== void 0) {
1743
1965
  const parts = parseTemplate(invocation.template);
@@ -1806,6 +2028,10 @@ function createExiftoolCommand(options = {}) {
1806
2028
  resources.admit("retained", text.length * 5);
1807
2029
  await writeBytes(error ? stderr.output : stdout.output, new TextEncoder().encode(text), context.signal);
1808
2030
  };
2031
+ if (context.args.length === 1 && (context.args[0] === "-ver" || context.args[0] === "--version")) {
2032
+ await output(exiftoolRegistry.source.version + "\n");
2033
+ return { exitCode: 0 };
2034
+ }
1809
2035
  let invocation;
1810
2036
  try {
1811
2037
  const carrier = getCommandArguments(context);
@@ -1946,6 +2172,7 @@ function createExiftoolCommand(options = {}) {
1946
2172
  }
1947
2173
  if (!png && !isPdf && !jpeg && ["XMP", "DOCX", "PPTX", "XLSX", "JPG", "JPEG", "TIF", "TIFF"].includes(extension)) throw new Error(extension + " reader not yet supported");
1948
2174
  tags = jpeg ? inspectJpeg(bytes, resources).tags : png ? inspectPng(bytes, resources).tags : isPdf ? inspectPdf(bytes, resources).tags : [];
2175
+ tags = [...systemTags(file, bytes.length, tags, invocation, resources), ...tags];
1949
2176
  } catch (error) {
1950
2177
  context.signal.throwIfAborted();
1951
2178
  if (error instanceof ResourceLimitError || error instanceof Error && error.name === "BudgetExceededError" || error instanceof FsError2 && error.code === "EFBIG") throw error;
@@ -2002,7 +2229,7 @@ function createExiftoolCommand(options = {}) {
2002
2229
  if (tokens.has(token)) continue;
2003
2230
  tokens.add(token);
2004
2231
  resources.admit("work", tag.value.length * 4);
2005
- entries.push(" " + token + ": " + encodeJsonScalar(tag.value, scalarOptions));
2232
+ entries.push(" " + token + ": " + encodeJsonScalar(tag.value, { ...scalarOptions, quoteScalars: invocation.quoteScalars || stringMetadataTags.has(tag.name) }));
2006
2233
  }
2007
2234
  if (invocation.missing) for (const name of invocation.tags) {
2008
2235
  if (present.has(name)) continue;
@@ -2140,7 +2367,8 @@ function evalSyncExiftool(inBytes, opArgs, readFileSync, writeFileSync) {
2140
2367
  }
2141
2368
  continue;
2142
2369
  }
2143
- const tags = jpeg ? inspectJpeg(bytes, resources).tags : png ? inspectPng(bytes, resources).tags : inspectPdf(bytes, resources).tags;
2370
+ const metadata = jpeg ? inspectJpeg(bytes, resources).tags : png ? inspectPng(bytes, resources).tags : inspectPdf(bytes, resources).tags;
2371
+ const tags = [...systemTags(file, bytes.length, metadata, invocation, resources), ...metadata];
2144
2372
  const chosen = selected(tags, invocation.tags, invocation.json ? invocation.groupFamily === 4 : invocation.duplicates && !invocation.csv, resources);
2145
2373
  if (invocation.xml || invocation.tabular || invocation.template !== void 0) {
2146
2374
  const values = invocation.template !== void 0 ? selected(tags, [], false, resources) : chosen;
@@ -2179,7 +2407,7 @@ function evalSyncExiftool(inBytes, opArgs, readFileSync, writeFileSync) {
2179
2407
  const token = encodeJsonScalar(name, { ...scalarOptions, quoteScalars: true });
2180
2408
  if (tokens.has(token)) continue;
2181
2409
  tokens.add(token);
2182
- entries.push(" " + token + ": " + encodeJsonScalar(tag.value, scalarOptions));
2410
+ entries.push(" " + token + ": " + encodeJsonScalar(tag.value, { ...scalarOptions, quoteScalars: invocation.quoteScalars || stringMetadataTags.has(tag.name) }));
2183
2411
  }
2184
2412
  if (invocation.missing) {
2185
2413
  for (const name of invocation.tags) {
@@ -1,5 +1,7 @@
1
+ /** Text metadata must retain its type even when its contents look like JSON scalars. */
2
+ export declare const stringMetadataTags: Set<string>;
1
3
  export declare const exiftoolRegistry: Readonly<{
2
- version: 4;
4
+ version: 6;
3
5
  source: Readonly<{
4
6
  version: "13.59";
5
7
  commit: "2200871d9cef988051d2a99d67df3bda6cbb30a8";
@@ -12,7 +14,7 @@ export declare const exiftoolRegistry: Readonly<{
12
14
  }>;
13
15
  JPEG: Readonly<{
14
16
  reader: "frame-ifd0-text";
15
- writer: "ifd0-artist-copyright";
17
+ writer: "ifd0-exififd-selected-tags";
16
18
  }>;
17
19
  }>;
18
20
  tags: readonly string[];
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createFactorCommand
3
- } from "../safe-bash/command-chunks/chunk-ZRRBXU3M.js";
3
+ } from "../safe-bash/command-chunks/chunk-GIN5GUDP.js";
4
4
  import "../safe-bash/command-chunks/chunk-OBEPWAOK.js";
5
- import "../safe-bash/command-chunks/chunk-Z6Z7XREG.js";
6
5
  import "../safe-bash/command-chunks/chunk-UDSYWUZO.js";
6
+ import "../safe-bash/command-chunks/chunk-Z6Z7XREG.js";
7
7
  import "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
8
8
  export {
9
9
  createFactorCommand
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createFactorCommand
3
- } from "../safe-bash/command-chunks/chunk-ZRRBXU3M.js";
3
+ } from "../safe-bash/command-chunks/chunk-GIN5GUDP.js";
4
4
  import "../safe-bash/command-chunks/chunk-OBEPWAOK.js";
5
- import "../safe-bash/command-chunks/chunk-Z6Z7XREG.js";
6
5
  import "../safe-bash/command-chunks/chunk-UDSYWUZO.js";
6
+ import "../safe-bash/command-chunks/chunk-Z6Z7XREG.js";
7
7
  import {
8
8
  init_buffer
9
9
  } from "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
@@ -3,6 +3,8 @@ export interface FdArguments {
3
3
  roots: string[];
4
4
  mode: 'regex' | 'glob' | 'fixed';
5
5
  caseMode: 'smart' | 'sensitive' | 'insensitive';
6
+ prune: boolean;
7
+ ignoreFiles: string[];
6
8
  hidden: boolean;
7
9
  ignore: boolean;
8
10
  ignoreVcs: boolean;