@poe-platform/safe-bash 0.1.802 → 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.
- package/README.md +60 -33
- package/dist/image-ast/ast.d.ts +1 -0
- package/dist/image-ast/browser/ast.d.ts +1 -0
- package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
- package/dist/image-ast/codecs/jpeg.d.ts +2 -2
- package/dist/image-ast/index.browser.js +692 -8355
- package/dist/image-ast/index.js +692 -8355
- package/dist/mp4-ast/codecs.d.ts +7 -2
- package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
- package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
- package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-NZQXYWA3.js → chunk-62BOHHJT.js} +1 -2
- package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
- package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-44ALJ4QG.js → chunk-AW5KIT6V.js} +3549 -84
- package/dist/safe-bash/chunks/{chunk-RSTHLAF3.js → chunk-B2Z73HTZ.js} +52 -28
- package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
- package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KDNSPLII.js → chunk-CTXNARJH.js} +2 -1
- package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
- package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
- package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
- package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
- package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
- package/dist/safe-bash/chunks/chunk-IOHH2GTI.js +56 -0
- package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-NQCM3TYR.js → chunk-LPOVNKNB.js} +225 -176
- package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
- package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
- package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
- package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
- package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
- package/dist/safe-bash/chunks/{chunk-WDLGKIHD.js → chunk-S4RFUUXO.js} +841 -26
- package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-SHEMU2Z7.js → chunk-W2IYOVHK.js} +839 -1211
- package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-BJA5XNP6.js → chunk-Y7FW6GLT.js} +6 -6
- package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
- package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
- package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
- package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
- package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
- package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
- package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
- package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
- package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
- package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
- package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
- package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
- package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
- package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
- package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
- package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
- package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
- package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
- package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
- package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
- package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
- package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
- package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
- package/dist/safe-bash/command-chunks/chunk-4R5ADJM5.js +178 -0
- package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WPYIOKE3.js → chunk-6GKYHPJG.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
- package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
- package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
- package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
- package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
- package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
- package/dist/safe-bash/command-chunks/chunk-A7MU7762.js +200 -0
- package/dist/safe-bash/command-chunks/{chunk-ORYGZYKW.js → chunk-ARZMP2L2.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-OQKC5ZU2.js → chunk-BAKFZ477.js} +62 -20
- package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
- package/dist/safe-bash/command-chunks/{chunk-F4TEEZTL.js → chunk-BOEOJS2Q.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
- package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
- package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
- package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
- package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
- package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
- package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-YOFC45RK.js → chunk-HH5O7DJI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
- package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
- package/dist/safe-bash/command-chunks/{chunk-2JRBIDAD.js → chunk-I63DBZXZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
- package/dist/safe-bash/command-chunks/{chunk-QKFSRZGQ.js → chunk-ICANWOXH.js} +7 -31
- package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5E4WAO4O.js → chunk-JD5QNRNO.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-KJIMDLBB.js → chunk-JNANXVJV.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
- package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
- package/dist/safe-bash/command-chunks/{chunk-I237SNW5.js → chunk-LFJJQQND.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
- package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
- package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
- package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
- package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
- package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
- package/dist/safe-bash/command-chunks/{chunk-PEF7K3UQ.js → chunk-NJYHWKIL.js} +40 -10
- package/dist/safe-bash/command-chunks/{chunk-VXSLJH7G.js → chunk-OJQRSCBP.js} +27 -7
- package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
- package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
- package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-7U7EXOXX.js → chunk-R7C4MGZ5.js} +17 -223
- package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
- package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
- package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
- package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
- package/dist/safe-bash/command-chunks/{chunk-VGG2DL5Q.js → chunk-TRR4MYWF.js} +4 -0
- package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
- package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-TZRI7BJZ.js +496 -0
- package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
- package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
- package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
- package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
- package/dist/safe-bash/command-chunks/{chunk-MQFIPHIQ.js → chunk-WPANOB4A.js} +38 -35
- package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
- package/dist/safe-bash/command-chunks/{chunk-FPVUD6TH.js → chunk-XGI57GCN.js} +10 -8
- package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
- package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
- package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
- package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-6GWJUQAV.js → chunk-Z5ZZVDUD.js} +181 -133
- package/dist/safe-bash/command-chunks/{chunk-W5DNF4JH.js → chunk-ZHN3QDCI.js} +1 -1
- package/dist/safe-bash/commands/alias/index.d.ts +2 -0
- package/dist/safe-bash/commands/alias/index.js +2 -0
- package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
- package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
- package/dist/safe-bash/commands/apply-patch/index.js +0 -1
- package/dist/safe-bash/commands/archive/index.browser.js +2 -3
- package/dist/safe-bash/commands/archive/index.d.ts +0 -1
- package/dist/safe-bash/commands/archive/index.js +0 -1
- package/dist/safe-bash/commands/bytes/compression/index.js +54 -51
- package/dist/safe-bash/commands/bytes/index.js +2 -1
- package/dist/safe-bash/commands/chmod/index.browser.js +14 -0
- package/dist/safe-bash/commands/chmod/index.d.ts +2 -0
- package/dist/safe-bash/commands/chmod/index.js +2 -0
- package/dist/safe-bash/commands/column/index.browser.js +2 -3
- package/dist/safe-bash/commands/column/index.d.ts +0 -1
- package/dist/safe-bash/commands/column/index.js +0 -1
- package/dist/safe-bash/commands/copy-source.js +1 -0
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
- package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
- package/dist/safe-bash/commands/csvkit/index.js +0 -50
- package/dist/safe-bash/commands/docx/index.browser.js +5 -7
- package/dist/safe-bash/commands/du/index.browser.js +2 -3
- package/dist/safe-bash/commands/du/index.d.ts +0 -1
- package/dist/safe-bash/commands/du/index.js +0 -1
- package/dist/safe-bash/commands/expr/index.browser.js +2 -3
- package/dist/safe-bash/commands/expr/index.d.ts +0 -1
- package/dist/safe-bash/commands/expr/index.js +0 -1
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/file/index.browser.js +2 -3
- package/dist/safe-bash/commands/file/index.d.ts +0 -1
- package/dist/safe-bash/commands/file/index.js +0 -1
- package/dist/safe-bash/commands/filesystem.js +1 -1
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
- package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
- package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
- package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
- package/dist/safe-bash/commands/htmlq/index.js +1 -143
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
- package/dist/safe-bash/commands/media/index.browser.js +4 -16314
- package/dist/safe-bash/commands/media/index.d.ts +1 -5
- package/dist/safe-bash/commands/media/index.js +1 -3
- package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
- package/dist/safe-bash/commands/media/plugin.js +1 -90
- package/dist/safe-bash/commands/media/remote.d.ts +1 -63
- package/dist/safe-bash/commands/media/remote.js +1 -405
- package/dist/safe-bash/commands/media/settings.d.ts +1 -4
- package/dist/safe-bash/commands/media/settings.js +1 -26
- package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -7
- package/dist/safe-bash/commands/metadata/chmod.js +1 -204
- package/dist/safe-bash/commands/metadata/index.browser.js +3 -8
- package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
- package/dist/safe-bash/commands/metadata/index.js +2 -2
- package/dist/safe-bash/commands/metadata/internal.d.ts +1 -30
- package/dist/safe-bash/commands/metadata/internal.js +1 -76
- package/dist/safe-bash/commands/metadata/mktemp.d.ts +1 -3
- package/dist/safe-bash/commands/metadata/mktemp.js +1 -202
- package/dist/safe-bash/commands/metadata/stat.d.ts +1 -7
- package/dist/safe-bash/commands/metadata/stat.js +1 -530
- package/dist/safe-bash/commands/mktemp/index.browser.js +13 -0
- package/dist/safe-bash/commands/mktemp/index.d.ts +2 -0
- package/dist/safe-bash/commands/mktemp/index.js +2 -0
- package/dist/safe-bash/commands/network/curl.js +1 -3
- package/dist/safe-bash/commands/network/index.browser.js +3 -4
- package/dist/safe-bash/commands/network/public.d.ts +0 -1
- package/dist/safe-bash/commands/network/public.js +0 -1
- package/dist/safe-bash/commands/network/transport.js +2 -1
- package/dist/safe-bash/commands/network/wget.js +1 -3
- package/dist/safe-bash/commands/node/browser.d.ts +0 -1
- package/dist/safe-bash/commands/node/browser.js +0 -1
- package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
- package/dist/safe-bash/commands/node/default-runtime.js +15 -0
- package/dist/safe-bash/commands/node/index.browser.js +7 -8
- package/dist/safe-bash/commands/node/index.js +3 -3
- package/dist/safe-bash/commands/node/path.js +1 -1
- package/dist/safe-bash/commands/node/preload.d.ts +1 -1
- package/dist/safe-bash/commands/node/preload.js +4 -1
- package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
- package/dist/safe-bash/commands/node/quickjs.js +2 -0
- package/dist/safe-bash/commands/node/safejs.js +26 -12
- package/dist/safe-bash/commands/op/index.browser.js +2 -3
- package/dist/safe-bash/commands/op/index.d.ts +0 -11
- package/dist/safe-bash/commands/op/index.js +0 -84
- package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
- package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
- package/dist/safe-bash/commands/pandoc/index.js +0 -1
- package/dist/safe-bash/commands/portable-random.d.ts +1 -1
- package/dist/safe-bash/commands/portable-random.js +1 -12
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/python/docker-runner.js +4 -3
- package/dist/safe-bash/commands/python/docker.d.ts +1 -0
- package/dist/safe-bash/commands/python/docker.js +5 -2
- package/dist/safe-bash/commands/python/index.browser.js +17 -13
- package/dist/safe-bash/commands/python/index.d.ts +2 -1
- package/dist/safe-bash/commands/python/index.js +10 -8
- package/dist/safe-bash/commands/python/llm-capability.js +65 -2
- package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
- package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
- package/dist/safe-bash/commands/python/llm-module.js +6 -4
- package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
- package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
- package/dist/safe-bash/commands/python/worker.browser.js +2 -3
- package/dist/safe-bash/commands/python/worker.d.ts +0 -1
- package/dist/safe-bash/commands/python/worker.js +0 -1
- package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
- package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
- package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
- package/dist/safe-bash/commands/safejs/options.js +5 -1
- package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
- package/dist/safe-bash/commands/safejs/runtime.js +1 -1
- package/dist/safe-bash/commands/split/index.browser.js +2 -3
- package/dist/safe-bash/commands/split/index.d.ts +0 -1
- package/dist/safe-bash/commands/split/index.js +0 -1
- package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
- package/dist/safe-bash/commands/stat/index.browser.js +13 -0
- package/dist/safe-bash/commands/stat/index.d.ts +2 -0
- package/dist/safe-bash/commands/stat/index.js +2 -0
- package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
- package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
- package/dist/safe-bash/commands/stream-format/index.js +0 -1
- package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
- package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
- package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
- package/dist/safe-bash/commands/streams.js +2 -1
- package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
- package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
- package/dist/safe-bash/commands/table-text/index.js +0 -1
- package/dist/safe-bash/commands/text.js +74 -34
- package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
- package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
- package/dist/safe-bash/commands/time-env/index.js +0 -1
- package/dist/safe-bash/commands/tree/index.browser.js +2 -3
- package/dist/safe-bash/commands/tree/index.d.ts +0 -1
- package/dist/safe-bash/commands/tree/index.js +0 -1
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
- package/dist/safe-bash/commands/unalias/index.js +2 -0
- package/dist/safe-bash/commands/xml/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/core.browser.js +2 -2
- package/dist/safe-bash/core.d.ts +7 -1
- package/dist/safe-bash/core.js +7 -1
- package/dist/safe-bash/execution-runtime.js +2 -1
- package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
- package/dist/safe-bash/fs/s3/http/index.js +1 -1
- package/dist/safe-bash/full-core.browser.js +254 -916
- package/dist/safe-bash/internal/op/types.d.ts +1 -0
- package/dist/safe-bash/jobs.browser.js +5 -5
- package/dist/safe-bash/lazy-optional.d.ts +3 -3
- package/dist/safe-bash/lazy-optional.js +1 -1
- package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
- package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
- package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
- package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
- package/dist/safe-bash/opt-in/commands/yq/native-work.js +3 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
- package/dist/safe-bash/opt-in/optional.d.ts +1 -1
- package/dist/safe-bash/opt-in/optional.js +1 -1
- package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
- package/dist/safe-bash/optional-host.browser.js +19 -14
- package/dist/safe-bash/optional-host.d.ts +1 -0
- package/dist/safe-bash/optional-host.js +1 -0
- package/dist/safe-bash/playwright/controller.js +41 -3
- package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
- package/dist/safe-bash/plugins/base.d.ts +1 -1
- package/dist/safe-bash/plugins/base.js +3 -3
- package/dist/safe-bash/plugins/composition.d.ts +5 -2
- package/dist/safe-bash/plugins/composition.js +10 -7
- package/dist/safe-bash/plugins/index.browser.js +44 -41
- package/dist/safe-bash/plugins/index.js +3 -2
- package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
- package/dist/safe-bash/plugins/portable-commands.js +31 -0
- package/dist/safe-bash/registry-entry.browser.js +41 -42
- package/dist/safe-bash/search.browser.js +32 -33
- package/dist/safe-bash/shell/arithmetic.js +19 -6
- package/dist/safe-bash/shell/arrays/state.js +1 -1
- package/dist/safe-bash/shell/arrays/syntax.js +4 -3
- package/dist/safe-bash/shell/index.d.ts +0 -1
- package/dist/safe-bash/shell/index.js +0 -1
- package/dist/safe-bash/shell/parser.d.ts +2 -2
- package/dist/safe-bash/shell/parser.js +268 -64
- package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
- package/dist/safe-bash/shell/read-builtin.js +344 -0
- package/dist/safe-bash/shell/runtime.d.ts +24 -4
- package/dist/safe-bash/shell/runtime.js +392 -414
- package/dist/safe-bash/shell/session-state.js +25 -0
- package/dist/safe-bash/shell/shell.js +76 -154
- package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
- package/dist/safe-bash/shell/tilde-expansion.js +2 -2
- package/dist/safe-bash/shell/types.d.ts +7 -0
- package/dist/safe-bash/shell/value-state.js +1 -1
- package/dist/safe-bash/shell/worker-limits.js +1 -0
- package/dist/safe-bash/shell-entry.browser.js +32 -33
- package/dist/safe-bash/trap.browser.js +4 -4
- package/dist/safe-bash/worker/host.js +1 -1
- package/dist/safe-bash/yq-browser/index.js +1 -1
- package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
- package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
- package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
- package/dist/safe-bash-command-alias/index.d.ts +13 -0
- package/dist/safe-bash-command-alias/index.js +88 -0
- package/dist/safe-bash-command-apply-patch/apply.js +3 -3
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
- package/dist/safe-bash-command-apply-patch/parser.js +1 -1
- package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
- package/dist/safe-bash-command-awk/awk-reader.js +1 -1
- package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-bc/index.js +218 -65
- package/dist/safe-bash-command-bzip2/index.js +4 -3
- package/dist/safe-bash-command-chmod/LICENSE +21 -0
- package/dist/safe-bash-command-chmod/command.d.ts +7 -0
- package/dist/safe-bash-command-chmod/command.js +11 -0
- package/dist/safe-bash-command-chmod/index.d.ts +6 -0
- package/dist/safe-bash-command-chmod/index.js +27 -0
- package/dist/safe-bash-command-cmp/index.js +7 -6
- package/dist/safe-bash-command-column/column.js +3 -3
- package/dist/safe-bash-command-column/index.js +3 -3
- package/dist/safe-bash-command-column/layout.js +2 -2
- package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/index.js +1505 -7
- package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
- package/dist/safe-bash-command-curl/curl.js +1 -1
- package/dist/safe-bash-command-curl/index.js +1 -1
- package/dist/safe-bash-command-date/date.js +1 -1
- package/dist/safe-bash-command-date/index.js +1 -1
- package/dist/safe-bash-command-dd/index.js +1 -1
- package/dist/safe-bash-command-dd/io.js +51 -5
- package/dist/safe-bash-command-diff/diff.js +1 -1
- package/dist/safe-bash-command-diff/index.js +1 -1
- package/dist/safe-bash-command-diff3/index.js +10 -13
- package/dist/safe-bash-command-exiftool/index.js +283 -55
- package/dist/safe-bash-command-exiftool/registry.d.ts +4 -2
- package/dist/safe-bash-command-factor/command.js +2 -2
- package/dist/safe-bash-command-factor/index.js +2 -2
- package/dist/safe-bash-command-fd/arguments.d.ts +2 -0
- package/dist/safe-bash-command-fd/index.js +42 -12
- package/dist/safe-bash-command-ffmpeg/index.js +356 -66
- package/dist/safe-bash-command-find/find-format.d.ts +3 -0
- package/dist/safe-bash-command-find/find-format.js +1 -1
- package/dist/safe-bash-command-find/find.js +2 -2
- package/dist/safe-bash-command-find/index.js +2 -2
- package/dist/safe-bash-command-fmt/index.js +10 -6
- package/dist/safe-bash-command-fold/engine.d.ts +1 -1
- package/dist/safe-bash-command-fold/family.js +2 -2
- package/dist/safe-bash-command-fold/index.js +1 -1
- package/dist/safe-bash-command-gzip/index.js +45 -42
- package/dist/safe-bash-command-hexdump/command.js +2 -2
- package/dist/safe-bash-command-hexdump/index.js +2 -2
- package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
- package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
- package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
- package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
- package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
- package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
- package/dist/safe-bash-command-htmlq/index.js +175 -49
- package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
- package/dist/safe-bash-command-imagemagick/index.js +59 -7
- package/dist/safe-bash-command-install/arguments.d.ts +27 -0
- package/dist/safe-bash-command-install/arguments.js +224 -0
- package/dist/safe-bash-command-install/index.d.ts +7 -0
- package/dist/safe-bash-command-install/index.js +942 -0
- package/dist/safe-bash-command-install/mode.d.ts +6 -0
- package/dist/safe-bash-command-install/mode.js +71 -0
- package/dist/safe-bash-command-install/options.d.ts +40 -0
- package/dist/safe-bash-command-install/options.js +27 -0
- package/dist/safe-bash-command-jq/index.js +1 -1
- package/dist/safe-bash-command-jq/jq.js +1 -1
- package/dist/safe-bash-command-less/index.js +42 -57
- package/dist/safe-bash-command-llm/command.js +1 -1
- package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
- package/dist/safe-bash-command-llm/index.js +4 -4
- package/dist/safe-bash-command-llm/openai.js +2 -2
- package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
- package/dist/safe-bash-command-llm/providers/index.js +3 -3
- package/dist/safe-bash-command-llm/providers/openai.js +2 -2
- package/dist/safe-bash-command-llm/providers/shared.js +1 -1
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
- package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2835 -2783
- package/dist/safe-bash-command-media/LICENSE +21 -0
- package/dist/safe-bash-command-media/index.d.ts +6 -0
- package/dist/safe-bash-command-media/index.js +30 -0
- package/dist/safe-bash-command-media/plugin.d.ts +18 -0
- package/dist/safe-bash-command-media/plugin.js +11 -0
- package/dist/safe-bash-command-media/remote.d.ts +63 -0
- package/dist/safe-bash-command-media/remote.js +11 -0
- package/dist/safe-bash-command-media/settings.d.ts +4 -0
- package/dist/safe-bash-command-media/settings.js +41 -0
- package/dist/safe-bash-command-mktemp/LICENSE +21 -0
- package/dist/safe-bash-command-mktemp/command.d.ts +3 -0
- package/dist/safe-bash-command-mktemp/command.js +9 -0
- package/dist/safe-bash-command-mktemp/index.d.ts +6 -0
- package/dist/safe-bash-command-mktemp/index.js +25 -0
- package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
- package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
- package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
- package/dist/safe-bash-command-mmdc/index.js +359 -7
- package/dist/safe-bash-command-nl/index.js +1 -1
- package/dist/safe-bash-command-nl/nl.js +1 -1
- package/dist/safe-bash-command-node/LICENSE +21 -0
- package/dist/safe-bash-command-node/index.d.ts +17 -0
- package/dist/safe-bash-command-node/index.js +328 -0
- package/dist/safe-bash-command-numfmt/index.js +1 -0
- package/dist/safe-bash-command-od/index.js +16 -8
- package/dist/safe-bash-command-op/index.js +62 -36
- package/dist/safe-bash-command-op/types.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/command.js +3 -3
- package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/index.js +5 -3
- package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
- package/dist/safe-bash-command-patch/index.js +4 -4
- package/dist/safe-bash-command-patch/patch.js +4 -4
- package/dist/safe-bash-command-pdfimages/index.js +1 -1
- package/dist/safe-bash-command-pdfinfo/index.js +30 -5
- package/dist/safe-bash-command-pdftk/index.js +21 -23
- package/dist/safe-bash-command-pdftoppm/index.js +17 -4
- package/dist/safe-bash-command-pdftotext/index.js +11 -14
- package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
- package/dist/safe-bash-command-qpdf/index.js +9 -6
- package/dist/safe-bash-command-rg/index.js +1 -1
- package/dist/safe-bash-command-rg/rg-command.js +1 -1
- package/dist/safe-bash-command-sed/index.js +1 -1
- package/dist/safe-bash-command-sed/sed.js +1 -1
- package/dist/safe-bash-command-shuf/input.d.ts +2 -2
- package/dist/safe-bash-command-shuf/input.js +2 -1
- package/dist/safe-bash-command-shuf/shuf.js +4 -2
- package/dist/safe-bash-command-sips/index.js +15 -7
- package/dist/safe-bash-command-soffice/index.js +97 -12
- package/dist/safe-bash-command-sponge/index.js +13 -3
- package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
- package/dist/safe-bash-command-sqlite3/index.js +510 -70
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
- package/dist/safe-bash-command-ssconvert/index.js +44 -22
- package/dist/safe-bash-command-stat/LICENSE +21 -0
- package/dist/safe-bash-command-stat/command.d.ts +7 -0
- package/dist/safe-bash-command-stat/command.js +9 -0
- package/dist/safe-bash-command-stat/index.d.ts +6 -0
- package/dist/safe-bash-command-stat/index.js +25 -0
- package/dist/safe-bash-command-tar/create.d.ts +1 -0
- package/dist/safe-bash-command-tar/create.js +2 -2
- package/dist/safe-bash-command-tar/extract.js +2 -2
- package/dist/safe-bash-command-tar/index.js +4 -4
- package/dist/safe-bash-command-tar/modes.js +4 -4
- package/dist/safe-bash-command-tar/options.js +1 -1
- package/dist/safe-bash-command-truncate/index.js +2 -2
- package/dist/safe-bash-command-tsort/command.js +2 -2
- package/dist/safe-bash-command-tsort/index.js +2 -2
- package/dist/safe-bash-command-unalias/index.d.ts +12 -0
- package/dist/safe-bash-command-unalias/index.js +67 -0
- package/dist/safe-bash-command-unrtf/index.js +37 -5
- package/dist/safe-bash-command-xan/argv.d.ts +1 -1
- package/dist/safe-bash-command-xan/argv.js +2 -2
- package/dist/safe-bash-command-xan/budget.d.ts +0 -1
- package/dist/safe-bash-command-xan/budget.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +6 -6
- package/dist/safe-bash-command-xan/csv.js +2 -2
- package/dist/safe-bash-command-xan/index.js +8 -9
- package/dist/safe-bash-command-xan/io.js +4 -4
- package/dist/safe-bash-command-xan/options.js +1 -1
- package/dist/safe-bash-command-xan/selector.js +2 -2
- package/dist/safe-bash-command-xmllint/index.js +45 -23
- package/dist/safe-bash-command-xxd/index.js +47 -12
- package/dist/safe-bash-command-xz/command.d.ts +1 -1
- package/dist/safe-bash-command-xz/index.js +3 -2
- package/dist/safe-bash-command-yq/accounting.js +1 -1
- package/dist/safe-bash-command-yq/index.js +4 -2
- package/dist/safe-bash-command-yq/native-work.js +3 -0
- package/dist/safe-bash-command-yq/parser.js +2 -2
- package/dist/safe-bash-command-yq/query.js +8 -5
- package/dist/safe-bash-command-yq/toml.js +2 -2
- package/dist/safe-bash-command-zip/index.js +3 -3
- package/dist/safe-bash-compression-engine/bounded-codec.js +3 -3
- package/dist/safe-bash-compression-engine/codec-loader.js +2 -2
- package/dist/safe-bash-compression-engine/files.js +6 -6
- package/dist/safe-bash-compression-engine/index.js +5 -5
- package/dist/safe-bash-compression-engine/operand.js +6 -6
- package/dist/safe-bash-compression-engine/options.js +1 -1
- package/dist/safe-bash-compression-engine/stream.js +5 -5
- package/dist/safe-bash-compression-engine/zstd-decode.js +4 -4
- package/dist/safe-bash-contracts/command.js +3 -3
- package/dist/safe-bash-contracts/default-executor.js +2 -2
- package/dist/safe-bash-contracts/diagnostics.js +3 -3
- package/dist/safe-bash-contracts/escaping.js +6 -6
- package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
- package/dist/safe-bash-contracts/filesystem-output.js +5 -5
- package/dist/safe-bash-contracts/http.d.ts +7 -0
- package/dist/safe-bash-contracts/index.js +8 -8
- package/dist/safe-bash-contracts/io.d.ts +2 -0
- package/dist/safe-bash-contracts/io.js +2 -2
- package/dist/safe-bash-contracts/output.js +3 -3
- package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
- package/dist/safe-bash-contracts/runtime-control.js +4 -2
- package/dist/safe-bash-contracts/signals.d.ts +2 -0
- package/dist/safe-bash-contracts/signals.js +3 -1
- package/dist/safe-bash-contracts/yield.js +1 -1
- package/dist/safe-bash-csv-engine/index.d.ts +2 -1
- package/dist/safe-bash-csv-engine/index.js +21 -15
- package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
- package/dist/safe-bash-io-engine/internal.js +1 -1
- package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
- package/dist/safe-bash-line-ending-engine/convert.js +9 -204
- package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
- package/dist/safe-bash-line-ending-engine/index.js +48 -0
- package/dist/safe-bash-line-ending-engine/info.js +9 -90
- package/dist/safe-bash-line-ending-engine/internal.js +15 -160
- package/dist/safe-bash-line-ending-engine/io.js +12 -289
- package/dist/safe-bash-line-ending-engine/stage.js +10 -160
- package/dist/safe-bash-markdown-engine/index.js +3 -3
- package/dist/safe-bash-metadata-engine/LICENSE +21 -0
- package/dist/safe-bash-metadata-engine/index.d.ts +30 -0
- package/dist/safe-bash-metadata-engine/index.js +82 -0
- package/dist/safe-bash-metadata-engine/random.d.ts +1 -0
- package/dist/safe-bash-metadata-engine/random.js +21 -0
- package/dist/safe-bash-network-engine/args.d.ts +6 -0
- package/dist/safe-bash-network-engine/args.js +4 -2
- package/dist/safe-bash-network-engine/body.js +1 -1
- package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
- package/dist/safe-bash-network-engine/index.js +3 -1
- package/dist/safe-bash-network-engine/input.js +2 -2
- package/dist/safe-bash-network-engine/platform-portable.js +3 -1
- package/dist/safe-bash-query-engine/dates.d.ts +1 -1
- package/dist/safe-bash-query-engine/dates.js +1 -1
- package/dist/safe-bash-query-engine/index.js +6 -6
- package/dist/safe-bash-query-engine/interpreter.js +4 -4
- package/dist/safe-bash-query-engine/parser.js +1 -1
- package/dist/safe-bash-query-engine/query-core.js +6 -6
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
- package/dist/safe-bash-regex-engine/index.js +1 -1
- package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
- package/dist/safe-bash-regex-engine/text/regex.js +1 -1
- package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
- package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
- package/dist/safe-bash-search-engine/glob.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +17 -10
- package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
- package/dist/safe-bash-search-engine/matcher.js +13 -9
- package/dist/safe-bash-search-engine/options.d.ts +2 -0
- package/dist/safe-bash-search-engine/options.js +1 -1
- package/dist/safe-bash-search-engine/output.js +1 -1
- package/dist/safe-bash-search-engine/shared.js +2 -2
- package/dist/safe-bash-search-engine/walk.js +15 -3
- package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
- package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
- package/dist/safe-bash-xml-engine/document.js +3 -3
- package/dist/safe-bash-xml-engine/evaluate.js +2 -2
- package/dist/safe-bash-xml-engine/index.js +4 -4
- package/dist/safe-bash-xml-engine/io.js +7 -2
- package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
- package/dist/safe-bash-xml-engine/limits.js +1 -1
- package/dist/safe-bash-xml-engine/query.js +3 -3
- package/dist/safe-bash-zip-engine/index.js +3 -3
- package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
- package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
- package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
- package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
- package/dist/safe-bash-zip-engine/zip-format.js +3 -3
- package/dist/safe-playwright-cloudflare/browser-snapshot-json.js +2 -2
- package/dist/safe-playwright-cloudflare/browser-snapshot-references.js +1 -1
- package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
- package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
- package/dist/xlsx-ast/xlsx.js +6 -5
- package/package.json +112 -98
- package/dist/media-cli/bytes.d.ts +0 -8
- package/dist/media-cli/bytes.js +0 -40
- package/dist/media-cli/concat.d.ts +0 -30
- package/dist/media-cli/concat.js +0 -197
- package/dist/media-cli/content.js +0 -66
- package/dist/media-cli/dependency-grammars.d.ts +0 -12
- package/dist/media-cli/dependency-grammars.js +0 -557
- package/dist/media-cli/discover.js +0 -286
- package/dist/media-cli/engine.js +0 -190
- package/dist/media-cli/filename-expression.js +0 -147
- package/dist/media-cli/filesystem.js +0 -35
- package/dist/media-cli/frontend-contract.js +0 -8
- package/dist/media-cli/frontend-issues.d.ts +0 -6
- package/dist/media-cli/frontend-issues.js +0 -9
- package/dist/media-cli/imagemagick-operand.d.ts +0 -42
- package/dist/media-cli/imagemagick-operand.js +0 -229
- package/dist/media-cli/imagemagick-references.d.ts +0 -7
- package/dist/media-cli/imagemagick-references.js +0 -42
- package/dist/media-cli/imagemagick.generated.js +0 -3254
- package/dist/media-cli/imagemagick.js +0 -615
- package/dist/media-cli/index.js +0 -12
- package/dist/media-cli/mvg.d.ts +0 -10
- package/dist/media-cli/mvg.js +0 -102
- package/dist/media-cli/network.js +0 -78
- package/dist/media-cli/options.generated.js +0 -3312
- package/dist/media-cli/preset.d.ts +0 -11
- package/dist/media-cli/preset.js +0 -57
- package/dist/media-cli/resolution-path.d.ts +0 -23
- package/dist/media-cli/resolution-path.js +0 -217
- package/dist/media-cli/resolver.js +0 -494
- package/dist/media-cli/resources.d.ts +0 -16
- package/dist/media-cli/resources.js +0 -187
- package/dist/media-cli/shim.js +0 -52
- package/dist/media-cli/tee.d.ts +0 -6
- package/dist/media-cli/tee.js +0 -38
- package/dist/office-package/zip-sync.js +0 -111
- package/dist/remote-execution/binary.js +0 -178
- package/dist/remote-execution/callback-result.js +0 -26
- package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
- package/dist/remote-execution/canonical-capabilities.js +0 -45
- package/dist/remote-execution/canonical-metadata.d.ts +0 -4
- package/dist/remote-execution/canonical-metadata.js +0 -32
- package/dist/remote-execution/client.js +0 -824
- package/dist/remote-execution/deployment.js +0 -131
- package/dist/remote-execution/descriptors.js +0 -267
- package/dist/remote-execution/effects.js +0 -357
- package/dist/remote-execution/endpoint.js +0 -224
- package/dist/remote-execution/files.js +0 -291
- package/dist/remote-execution/hosting-operation.js +0 -26
- package/dist/remote-execution/hosting-request.d.ts +0 -4
- package/dist/remote-execution/hosting-request.js +0 -12
- package/dist/remote-execution/hosting-stream.d.ts +0 -8
- package/dist/remote-execution/hosting-stream.js +0 -64
- package/dist/remote-execution/index.js +0 -18
- package/dist/remote-execution/invocation-admission.d.ts +0 -3
- package/dist/remote-execution/invocation-admission.js +0 -17
- package/dist/remote-execution/job-binding.js +0 -1269
- package/dist/remote-execution/materializations.js +0 -284
- package/dist/remote-execution/modal-driver.js +0 -90
- package/dist/remote-execution/native-result.d.ts +0 -3
- package/dist/remote-execution/native-result.js +0 -16
- package/dist/remote-execution/output-freshness.d.ts +0 -4
- package/dist/remote-execution/output-freshness.js +0 -19
- package/dist/remote-execution/output-retrieval.js +0 -474
- package/dist/remote-execution/process-http.js +0 -607
- package/dist/remote-execution/process.js +0 -577
- package/dist/remote-execution/protocol.js +0 -208
- package/dist/remote-execution/relay.js +0 -91
- package/dist/remote-execution/rest-driver.js +0 -93
- package/dist/remote-execution/upload-descriptor.js +0 -201
- package/dist/remote-execution/upload-protocol.js +0 -62
- package/dist/remote-execution/uploads.js +0 -324
- package/dist/remote-execution/wire-json.d.ts +0 -4
- package/dist/remote-execution/wire-json.js +0 -44
- package/dist/remote-execution/wire-validation.js +0 -131
- package/dist/remote-execution/wire.generated.js +0 -4224
- package/dist/safe-bash/chunks/chunk-GETUOD5D.js +0 -161
- package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
- package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
- package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
- package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +0 -962
- package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
- package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
- package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
- package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
- package/dist/safe-bash/commands/node/unconfigured.js +0 -10
- package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
- package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
- package/dist/safe-bash-mcp/index.browser.js +0 -9157
- package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
- package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
- /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
|
@@ -7,10 +7,46 @@ 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";
|
|
13
|
-
import { readBytes as readBytes2, writeBytes } from "../safe-bash-contracts/io.js";
|
|
49
|
+
import { readBytes as readBytes2, writeBytes, withInputByteBudget } from "../safe-bash-contracts/io.js";
|
|
14
50
|
import { createOutputOperation } from "../safe-bash-contracts/output.js";
|
|
15
51
|
import { shellValueByteLength } from "../safe-bash-contracts/value.js";
|
|
16
52
|
|
|
@@ -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:
|
|
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-
|
|
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")
|
|
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)
|
|
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
|
|
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
|
|
662
|
-
if (
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
const
|
|
667
|
-
|
|
668
|
-
|
|
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
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
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);
|
|
891
|
+
}
|
|
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
|
+
}
|
|
721
933
|
}
|
|
722
|
-
|
|
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
|
-
|
|
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);
|
|
@@ -1779,7 +2001,7 @@ function createExiftoolCommand(options = {}) {
|
|
|
1779
2001
|
name: "exiftool",
|
|
1780
2002
|
runtimeIdentity: commandRuntimeIdentity,
|
|
1781
2003
|
description: "Inspect and edit admitted PNG, JPEG and PDF metadata through virtual files",
|
|
1782
|
-
async
|
|
2004
|
+
execute: withInputByteBudget(async (context) => {
|
|
1783
2005
|
const publication = new Publication(context, limits.maxStagingAttempts);
|
|
1784
2006
|
let stdout, stderr;
|
|
1785
2007
|
let failed = false, failure;
|
|
@@ -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);
|
|
@@ -1824,7 +2050,7 @@ function createExiftoolCommand(options = {}) {
|
|
|
1824
2050
|
invocation = parseArguments(await expandArgfiles(context.args, context, publication, resources), resources.limits);
|
|
1825
2051
|
} catch (error) {
|
|
1826
2052
|
context.signal.throwIfAborted();
|
|
1827
|
-
if (error instanceof ResourceLimitError) throw error;
|
|
2053
|
+
if (error instanceof ResourceLimitError || error instanceof Error && error.name === "BudgetExceededError" || error instanceof FsError2 && error.code === "EFBIG") throw error;
|
|
1828
2054
|
await output("Error: " + (error instanceof Error ? error.message : String(error)) + "\n", true);
|
|
1829
2055
|
return { exitCode: 1 };
|
|
1830
2056
|
}
|
|
@@ -1946,9 +2172,10 @@ 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
|
-
if (error instanceof ResourceLimitError) throw error;
|
|
2178
|
+
if (error instanceof ResourceLimitError || error instanceof Error && error.name === "BudgetExceededError" || error instanceof FsError2 && error.code === "EFBIG") throw error;
|
|
1952
2179
|
errors++;
|
|
1953
2180
|
const message = error instanceof FsError2 && error.code === "ENOENT" ? "File not found" : error instanceof Error ? error.message : String(error);
|
|
1954
2181
|
await output("Error: " + message + " - " + file + "\n", true);
|
|
@@ -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;
|
|
@@ -2053,7 +2280,7 @@ function createExiftoolCommand(options = {}) {
|
|
|
2053
2280
|
} finally {
|
|
2054
2281
|
await cleanup();
|
|
2055
2282
|
}
|
|
2056
|
-
}
|
|
2283
|
+
})
|
|
2057
2284
|
});
|
|
2058
2285
|
}
|
|
2059
2286
|
var exiftoolCommand = createExiftoolCommand();
|
|
@@ -2140,7 +2367,8 @@ function evalSyncExiftool(inBytes, opArgs, readFileSync, writeFileSync) {
|
|
|
2140
2367
|
}
|
|
2141
2368
|
continue;
|
|
2142
2369
|
}
|
|
2143
|
-
const
|
|
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
|
+
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-
|
|
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-
|
|
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-
|
|
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";
|