@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
|
@@ -36,8 +36,6 @@ import { syncCommandEvaluators as syncCommandEvaluators2 } from "../../safe-bash
|
|
|
36
36
|
import { UsageError as UsageError2 } from "../../safe-bash-contracts/diagnostics.js";
|
|
37
37
|
import { pathOf as pathOf2 } from "../../safe-bash-query-engine/path.js";
|
|
38
38
|
var syncResolved = /* @__PURE__ */ Symbol.for("safe-bash.syncResolved");
|
|
39
|
-
var sharedSmallOutputBuf = new Uint8Array(64);
|
|
40
|
-
var sharedSmallOutputViews = Array.from({ length: 65 }, (_, i) => sharedSmallOutputBuf.subarray(0, i));
|
|
41
39
|
var resolvedVoid = Object.defineProperty(
|
|
42
40
|
Promise.resolve(),
|
|
43
41
|
syncResolved,
|
|
@@ -156,34 +154,19 @@ function outputRange(context, src, len) {
|
|
|
156
154
|
if (typeof stdout.writeRangeSync === "function" && stdout.writeRangeSync(src, len) !== false) {
|
|
157
155
|
return resolvedVoid;
|
|
158
156
|
}
|
|
159
|
-
if (typeof stdout.writeSync === "function" && stdout.writeSync(src.subarray(0, len)) !== false) {
|
|
157
|
+
if (typeof stdout.writeSync === "function" && stdout.writeSync(new Uint8Array(src.subarray(0, len))) !== false) {
|
|
160
158
|
return resolvedVoid;
|
|
161
159
|
}
|
|
162
160
|
}
|
|
163
|
-
return writeBytes(context.stdout, stdout.isPipeStage ? src.subarray(0, len) : src.
|
|
161
|
+
return writeBytes(context.stdout, stdout.isPipeStage ? src.subarray(0, len) : new Uint8Array(src.subarray(0, len)), context.signal);
|
|
164
162
|
}
|
|
165
163
|
function output(context, text) {
|
|
166
164
|
context.signal.throwIfAborted();
|
|
167
165
|
const stdout = context.stdout;
|
|
168
|
-
if (typeof text === "string" && !stdout.isPipeStage) {
|
|
169
|
-
const len = text.length;
|
|
170
|
-
if (len <= 64 && (typeof stdout.writeRangeSync === "function" || typeof stdout.writeSync === "function")) {
|
|
171
|
-
let ascii = true;
|
|
172
|
-
for (let i = 0; i < len; i++) {
|
|
173
|
-
const code = text.charCodeAt(i);
|
|
174
|
-
if (code >= 128) {
|
|
175
|
-
ascii = false;
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
sharedSmallOutputBuf[i] = code;
|
|
179
|
-
}
|
|
180
|
-
if (ascii) {
|
|
181
|
-
const ok = typeof stdout.writeRangeSync === "function" ? stdout.writeRangeSync(sharedSmallOutputBuf, len) : stdout.writeSync(sharedSmallOutputViews[len]);
|
|
182
|
-
if (ok !== false) return resolvedVoid;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
166
|
const bytes = typeof text === "string" ? encoder.encode(text) : text;
|
|
167
|
+
if (typeof text === "string" && !stdout.isPipeStage && typeof stdout.writeRangeSync === "function" && stdout.writeRangeSync(bytes, bytes.length) !== false) {
|
|
168
|
+
return resolvedVoid;
|
|
169
|
+
}
|
|
187
170
|
if (!stdout.isPipeStage && typeof stdout.writeSync === "function" && stdout.writeSync(bytes) !== false) {
|
|
188
171
|
return resolvedVoid;
|
|
189
172
|
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-HEYKESED.js";
|
|
4
4
|
import {
|
|
5
5
|
XanError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-U3MMODA5.js";
|
|
7
7
|
import {
|
|
8
8
|
init_buffer
|
|
9
9
|
} from "./chunk-HX3SHTCE.js";
|
|
@@ -51,6 +51,8 @@ function inferDelimiter(path) {
|
|
|
51
51
|
var shortOptions = { B: "byte-offset", S: "start-condition", E: "end-condition", H: "human-readable", c: "check-alignment", a: "approx", p: "parallel", t: "threads", h: "help", o: "output", d: "delimiter", n: "no-headers", j: "just-names", s: "start", e: "end", l: "len", i: "index", I: "indices", L: "last" };
|
|
52
52
|
var switches = /* @__PURE__ */ new Set(["help", "no-headers", "just-names", "csv", "human-readable", "check-alignment", "approx", "parallel", "raw", "evaluate", "evaluate-file"]);
|
|
53
53
|
var extraShort = {
|
|
54
|
+
top: { l: "limit", R: "reverse" },
|
|
55
|
+
table: { s: "select" },
|
|
54
56
|
dedup: { s: "select", l: "keep-last", S: "sorted" },
|
|
55
57
|
enum: { c: "column-name", S: "start" },
|
|
56
58
|
from: { f: "format" },
|
|
@@ -69,6 +71,9 @@ var extraShort = {
|
|
|
69
71
|
for (const name of ["keep-last", "sorted", "keep-duplicates", "pad", "sort-keys", "single-object", "omit", "numeric", "reverse", "uniq", "exact", "ignore-case", "invert-match", "every-column", "all", "no-extra", "inner", "left", "right", "full", "semi", "anti", "cross", "nulls"]) switches.add(name);
|
|
70
72
|
var common = ["help", "output", "delimiter"];
|
|
71
73
|
var allowed = {
|
|
74
|
+
map: /* @__PURE__ */ new Set([...common, "no-headers"]),
|
|
75
|
+
top: /* @__PURE__ */ new Set([...common, "no-headers", "limit", "reverse"]),
|
|
76
|
+
table: /* @__PURE__ */ new Set([...common, "no-headers", "select"]),
|
|
72
77
|
dedup: /* @__PURE__ */ new Set([...common, "no-headers", "select", "keep-last", "sorted", "keep-duplicates"]),
|
|
73
78
|
enum: /* @__PURE__ */ new Set([...common, "no-headers", "column-name", "start"]),
|
|
74
79
|
transpose: new Set(common),
|
|
@@ -163,12 +168,21 @@ async function parseArguments(args, cwd, budget) {
|
|
|
163
168
|
if (values.has("evaluate") && values.has("evaluate-file")) throw new XanError("conflicting expression modes");
|
|
164
169
|
let rightSelection;
|
|
165
170
|
let operand;
|
|
171
|
+
if (command === "map") {
|
|
172
|
+
operand = operands.shift();
|
|
173
|
+
rightSelection = operands.shift();
|
|
174
|
+
if ((!operand || !rightSelection) && !help) throw new XanError("map requires an expression and a new column name");
|
|
175
|
+
}
|
|
166
176
|
if (command === "groupby") rightSelection = operands.shift();
|
|
167
177
|
if (["search", "filter", "rename", "agg", "groupby", "to", "cat"].includes(command)) {
|
|
168
178
|
operand = operands.shift();
|
|
169
179
|
if (operand === void 0 && !help) throw new XanError(`${command} requires an argument`);
|
|
170
180
|
}
|
|
171
181
|
let selection = command === "select" || command === "drop" ? operands.shift() : values.get("select") ?? "";
|
|
182
|
+
if (command === "top") {
|
|
183
|
+
selection = operands.shift();
|
|
184
|
+
if (!selection && !help) throw new XanError("top requires a column selection");
|
|
185
|
+
}
|
|
172
186
|
if (command === "join" && !help) {
|
|
173
187
|
const modes = ["inner", "left", "right", "full", "semi", "anti", "cross"].filter((name) => values.has(name));
|
|
174
188
|
if (modes.length > 1) throw new XanError("conflicting join modes");
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createClient,
|
|
3
|
+
grammarRevision,
|
|
4
|
+
imageMagickGrammarRevision,
|
|
5
|
+
imageMagickReference,
|
|
6
|
+
mediaCommands,
|
|
7
|
+
mediaFrontendContract,
|
|
8
|
+
nativeReference,
|
|
9
|
+
validateCallbackResult
|
|
10
|
+
} from "./chunk-TT4DAFBT.js";
|
|
11
|
+
import {
|
|
12
|
+
init_buffer
|
|
13
|
+
} from "./chunk-HX3SHTCE.js";
|
|
14
|
+
|
|
15
|
+
// packages/safe-bash-command-media/src/remote.ts
|
|
16
|
+
init_buffer();
|
|
17
|
+
import { readBytes } from "@poe-platform/safe-fs/core";
|
|
18
|
+
function createRemoteMediaCommands(options) {
|
|
19
|
+
if (!options.service || !options.authToken || !options.buildDigest || !options.resource) throw new TypeError("Explicit media service/auth/build/resource configuration required");
|
|
20
|
+
options = {
|
|
21
|
+
...options,
|
|
22
|
+
resource: structuredClone(options.resource),
|
|
23
|
+
...options.provider ? { provider: structuredClone(options.provider) } : {},
|
|
24
|
+
...options.limits ? { limits: structuredClone(options.limits) } : {},
|
|
25
|
+
...options.grants ? { grants: structuredClone(options.grants) } : {},
|
|
26
|
+
...options.descriptors ? { descriptors: structuredClone(options.descriptors) } : {},
|
|
27
|
+
...options.stdin ? { stdin: structuredClone(options.stdin) } : {}
|
|
28
|
+
};
|
|
29
|
+
const resource = structuredClone(options.resource);
|
|
30
|
+
let provider;
|
|
31
|
+
const transport = async (input, init) => {
|
|
32
|
+
if (!options.provider) return (options.fetch ?? globalThis.fetch)(input, init);
|
|
33
|
+
provider ??= import(options.provider.module).then(async (module) => {
|
|
34
|
+
if (typeof module.createMediaProvider !== "function") throw new TypeError("Media provider must export createMediaProvider(settings)");
|
|
35
|
+
const { provider: configuration, ...settings } = options;
|
|
36
|
+
const runtime = await module.createMediaProvider({ ...settings, providerOptions: configuration.options });
|
|
37
|
+
if (!runtime || typeof runtime.fetch !== "function" || runtime.execute !== void 0 && typeof runtime.execute !== "function") throw new TypeError("Media provider must return a Fetch transport and optional remote engine");
|
|
38
|
+
return runtime;
|
|
39
|
+
});
|
|
40
|
+
return (await provider).fetch(input, init);
|
|
41
|
+
};
|
|
42
|
+
async function run(invocation) {
|
|
43
|
+
const client = createClient({
|
|
44
|
+
baseUrl: options.service,
|
|
45
|
+
token: async () => options.authToken,
|
|
46
|
+
fetch: transport,
|
|
47
|
+
maxConcurrentUploads: 3
|
|
48
|
+
});
|
|
49
|
+
const context = invocation.context;
|
|
50
|
+
const controller = new AbortController();
|
|
51
|
+
const signal = AbortSignal.any([context.signal, controller.signal]);
|
|
52
|
+
const inputController = new AbortController();
|
|
53
|
+
const inputSignal = AbortSignal.any([signal, inputController.signal]);
|
|
54
|
+
let session;
|
|
55
|
+
let job;
|
|
56
|
+
let cleanup;
|
|
57
|
+
let acquisition;
|
|
58
|
+
let processExited = false;
|
|
59
|
+
let primaryFailed = false;
|
|
60
|
+
let finalization;
|
|
61
|
+
let unsubscribe;
|
|
62
|
+
let cleanupAdmission = true;
|
|
63
|
+
const ownedCleanups = [];
|
|
64
|
+
const leases = /* @__PURE__ */ new Map();
|
|
65
|
+
const work = /* @__PURE__ */ new Set();
|
|
66
|
+
const close = () => cleanup ??= (async () => {
|
|
67
|
+
cleanupAdmission = false;
|
|
68
|
+
controller.abort(new Error("Media invocation finalized"));
|
|
69
|
+
await acquisition?.catch(() => {
|
|
70
|
+
});
|
|
71
|
+
const retirement = Promise.resolve().then(() => unsubscribe?.());
|
|
72
|
+
const retired = Promise.allSettled(ownedCleanups.map((close2) => Promise.resolve().then(close2)));
|
|
73
|
+
const results = await Promise.allSettled([...work, retirement]);
|
|
74
|
+
const failures = (await retired).filter((result) => result.status === "rejected").map((result) => result.reason);
|
|
75
|
+
if (job && session) {
|
|
76
|
+
try {
|
|
77
|
+
const canceled = await client.cancelJob(session, job.jobId, { reason: "Media invocation finalized" }, crypto.randomUUID());
|
|
78
|
+
if (canceled.outcome?.kind === "unknown" || canceled.cleanup === "unknown") throw new Error("Remote termination could not be confirmed");
|
|
79
|
+
} catch (cause) {
|
|
80
|
+
failures.push(cause);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const releases = await Promise.allSettled([
|
|
84
|
+
...Array.from(leases.values(), (lease) => Promise.resolve().then(() => lease.close())),
|
|
85
|
+
...session ? [client.closeSession(session, crypto.randomUUID())] : [],
|
|
86
|
+
retirement
|
|
87
|
+
]);
|
|
88
|
+
for (const result of releases) if (result.status === "rejected") failures.push(result.reason);
|
|
89
|
+
if (failures.length === 1) throw failures[0];
|
|
90
|
+
if (failures.length) throw new AggregateError(failures, "Media invocation cleanup failed");
|
|
91
|
+
void results;
|
|
92
|
+
})();
|
|
93
|
+
const finalize = () => finalization ??= (async () => {
|
|
94
|
+
try {
|
|
95
|
+
await close();
|
|
96
|
+
} catch (cause) {
|
|
97
|
+
if (!primaryFailed) throw cause;
|
|
98
|
+
try {
|
|
99
|
+
await context.onInternalError?.(cause);
|
|
100
|
+
} catch {
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
})();
|
|
104
|
+
context.registerCleanup?.(finalize);
|
|
105
|
+
try {
|
|
106
|
+
const capabilities = await client.capabilities(signal);
|
|
107
|
+
const build = capabilities.builds.find((build2) => build2.digest === options.buildDigest);
|
|
108
|
+
if (!build || build.grammarRevision !== mediaFrontendContract.grammarRevision || build.sourceRevision !== mediaFrontendContract.sourceRevision || !Object.hasOwn(build.executables, invocation.tool)) throw new Error("Remote build does not match the pinned media frontend");
|
|
109
|
+
const byteArgv = capabilities.features.includes("byte-argv");
|
|
110
|
+
if (!byteArgv && !capabilities.features.includes("utf8-argv")) throw new Error("Remote media requires byte argv or lossless UTF-8 argv capabilities");
|
|
111
|
+
const limits = options.limits ?? capabilities.limits;
|
|
112
|
+
if (!Number.isSafeInteger(limits.maxArgvBytes) || limits.maxArgvBytes < 1) throw new TypeError("Invalid remote argv byte bound");
|
|
113
|
+
let argvBytes = 0;
|
|
114
|
+
for (const arg of invocation.argv) {
|
|
115
|
+
argvBytes += arg.length + 1;
|
|
116
|
+
if (argvBytes > limits.maxArgvBytes) throw new TypeError("Remote argv byte bound");
|
|
117
|
+
}
|
|
118
|
+
for (const arg of invocation.argv) {
|
|
119
|
+
if (arg.includes(0)) throw new TypeError("NUL in native argv");
|
|
120
|
+
if (!byteArgv) {
|
|
121
|
+
try {
|
|
122
|
+
new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(arg);
|
|
123
|
+
} catch {
|
|
124
|
+
throw new TypeError("Remote UTF-8 launcher cannot preserve these argv bytes");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!capabilities.features.includes("live-files") || resource.profile !== "live") throw new Error("Remote media requires admitted live resource capabilities");
|
|
129
|
+
const backend = await provider;
|
|
130
|
+
if (backend?.execute) {
|
|
131
|
+
const execution = Promise.resolve().then(() => {
|
|
132
|
+
signal.throwIfAborted();
|
|
133
|
+
return backend.execute({
|
|
134
|
+
...context,
|
|
135
|
+
command: invocation.tool,
|
|
136
|
+
args: invocation.argv,
|
|
137
|
+
discovery: invocation.discovery,
|
|
138
|
+
signal,
|
|
139
|
+
registerCleanup(close2) {
|
|
140
|
+
if (!cleanupAdmission) throw new Error("Media invocation cleanup admission closed");
|
|
141
|
+
if (typeof close2 !== "function") throw new TypeError("Invalid media invocation cleanup");
|
|
142
|
+
ownedCleanups.push(close2);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
work.add(execution);
|
|
147
|
+
return await execution;
|
|
148
|
+
}
|
|
149
|
+
const input = context.stdinInput;
|
|
150
|
+
if ((input?.seek || input?.stat?.type === "file") && !options.stdin?.seekable) throw new Error("Explicit remote descriptor bindings required for seekable native stdin");
|
|
151
|
+
const sinks = /* @__PURE__ */ new Map([[2, context.stdout], [3, context.stderr]]);
|
|
152
|
+
const descriptors = options.descriptors ?? [];
|
|
153
|
+
if (descriptors.length > limits.maxHandles || new Set(descriptors.map((descriptor) => descriptor.fd)).size !== descriptors.length || descriptors.some((descriptor) => !Number.isSafeInteger(descriptor.fd) || descriptor.fd < 3 || descriptor.fd > limits.maxHandles + 2)) throw new TypeError("Remote descriptor count or mapping exceeds admission");
|
|
154
|
+
const streamedDescriptors = (options.descriptors ?? []).filter((descriptor) => !descriptor.seekable && descriptor.rights.some((right) => right === "read" || right === "write"));
|
|
155
|
+
if (streamedDescriptors.length && (!capabilities.features.includes("descriptors") || !context.admittedHandles)) throw new Error("Remote descriptors require admitted host leases and server capabilities");
|
|
156
|
+
for (const descriptor of streamedDescriptors) {
|
|
157
|
+
const rights = descriptor.rights.filter((right) => right === "read" || right === "write");
|
|
158
|
+
const acquiring = context.admittedHandles.acquire(descriptor.fd, rights, signal).then((lease2) => {
|
|
159
|
+
leases.set(descriptor.fd, lease2);
|
|
160
|
+
return lease2;
|
|
161
|
+
});
|
|
162
|
+
work.add(acquiring);
|
|
163
|
+
const lease = await acquiring;
|
|
164
|
+
if (rights.includes("read") && !lease.read || rights.includes("write") && !lease.write) throw new TypeError("Host descriptor lease lacks requested operations");
|
|
165
|
+
if (rights.includes("write")) sinks.set(descriptor.fd + 1, { async write(bytes) {
|
|
166
|
+
let offset = 0;
|
|
167
|
+
while (offset < bytes.length) {
|
|
168
|
+
signal.throwIfAborted();
|
|
169
|
+
lease.consumerClosed?.throwIfAborted();
|
|
170
|
+
const remaining = Math.min(bytes.length - offset, 65536);
|
|
171
|
+
const count = await lease.write(bytes.subarray(offset, offset + remaining), signal);
|
|
172
|
+
if (!Number.isSafeInteger(count) || count < 1 || count > remaining) throw new TypeError("Invalid admitted descriptor write count");
|
|
173
|
+
offset += count;
|
|
174
|
+
}
|
|
175
|
+
} });
|
|
176
|
+
}
|
|
177
|
+
acquisition = client.openSession({ buildDigest: build.digest, bindings: [resource], limits }, crypto.randomUUID(), signal).then((value) => {
|
|
178
|
+
session = value;
|
|
179
|
+
});
|
|
180
|
+
await acquisition;
|
|
181
|
+
acquisition = client.submitJob(session, {
|
|
182
|
+
buildDigest: build.digest,
|
|
183
|
+
toolId: invocation.tool,
|
|
184
|
+
args: invocation.argv.map((arg) => Array.from(arg)),
|
|
185
|
+
namespaceId: resource.namespaceId,
|
|
186
|
+
materializationRevision: null,
|
|
187
|
+
cwd: context.cwd,
|
|
188
|
+
env: { ...context.env },
|
|
189
|
+
stdin: options.stdin ?? { kind: "stream", seekable: false },
|
|
190
|
+
descriptors: [...options.descriptors ?? []],
|
|
191
|
+
grants: [...options.grants ?? []],
|
|
192
|
+
freshness: "live",
|
|
193
|
+
limits,
|
|
194
|
+
frontendContract: mediaFrontendContract
|
|
195
|
+
}, crypto.randomUUID(), signal).then((value) => {
|
|
196
|
+
job = value;
|
|
197
|
+
});
|
|
198
|
+
await acquisition;
|
|
199
|
+
const identity = session;
|
|
200
|
+
const nativeJob = job;
|
|
201
|
+
unsubscribe = context.processSignals?.subscribe(async (event) => {
|
|
202
|
+
signal.throwIfAborted();
|
|
203
|
+
if (event.target !== "process-group") throw new TypeError("Remote signals require process-group authority");
|
|
204
|
+
const operation = client.signalJob(identity, nativeJob.jobId, event.name, `signal:${nativeJob.jobId}:${event.sequence}`, signal);
|
|
205
|
+
work.add(operation);
|
|
206
|
+
try {
|
|
207
|
+
await operation;
|
|
208
|
+
return { sequence: event.sequence };
|
|
209
|
+
} finally {
|
|
210
|
+
work.delete(operation);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
const output = await client.attach(identity, nativeJob.jobId, { direction: "output", consumerId: crypto.randomUUID() }, crypto.randomUUID(), signal);
|
|
214
|
+
const binaryLimits = { maxFrameBytes: output.maxFrameBytes, maxControlBytes: output.maxFrameBytes, channels: [...sinks.keys()], maxChannels: limits.maxHandles + 2 };
|
|
215
|
+
const cursor = { ...identity, jobId: nativeJob.jobId, laneId: output.laneId, nextSequence: BigInt(output.floorSequence), offsets: new Map([...sinks.keys()].map((channel) => [channel, 0n])), endedChannels: /* @__PURE__ */ new Set() };
|
|
216
|
+
const download = client.resumeStream(cursor, binaryLimits, async (frame) => {
|
|
217
|
+
if (frame.kind === "data") {
|
|
218
|
+
const sink = sinks.get(frame.channelId);
|
|
219
|
+
if (!sink) throw new Error("Remote channel requires an explicit host control binding");
|
|
220
|
+
signal.throwIfAborted();
|
|
221
|
+
sink.ownedOutput?.consumerClosed.throwIfAborted();
|
|
222
|
+
await (sink.ownedOutput ?? sink).write(frame.payload);
|
|
223
|
+
await options.onProgress?.({ direction: "download", bytes: frame.payload.length });
|
|
224
|
+
} else if (frame.kind === "control") {
|
|
225
|
+
const control = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(frame.payload));
|
|
226
|
+
if (control.type === "ChannelOpen" && control.direction === "write") {
|
|
227
|
+
if (control.seekable || !options.onOutputChannel) throw new Error("Remote output channel requires an explicit host stream binding");
|
|
228
|
+
const sink = await options.onOutputChannel(control, context);
|
|
229
|
+
if (!sink || typeof sink.write !== "function") throw new TypeError("Remote output channel requires a writable host sink");
|
|
230
|
+
sinks.set(control.channelId, sink);
|
|
231
|
+
} else if (control.type === "Callback" || control.type === "CanonicalCallback" || control.type === "ChannelOpen") {
|
|
232
|
+
if (!options.onControl) throw new Error("Remote resource callback requires an explicit host control binding");
|
|
233
|
+
const callback = structuredClone(control);
|
|
234
|
+
const remote = { signal, async respond(result) {
|
|
235
|
+
signal.throwIfAborted();
|
|
236
|
+
if (callback.type !== "Callback" || callback.epoch !== identity.epoch || callback.namespaceId !== resource.namespaceId || callback.owner.kind !== "job" || callback.owner.id !== nativeJob.jobId || Date.parse(callback.expiresAt) <= Date.now() || !options.grants?.some((grant) => grant.grantId === callback.grantId && grant.operations.includes(callback.operation.op))) throw new Error("Unauthorized remote callback response");
|
|
237
|
+
const owned = structuredClone(result);
|
|
238
|
+
if (owned.callbackId !== callback.callbackId || owned.operationId !== callback.operationId)
|
|
239
|
+
throw new Error("Remote callback response belongs to another operation");
|
|
240
|
+
validateCallbackResult(callback.operation, owned);
|
|
241
|
+
const response = client.answerCallback(identity, nativeJob.jobId, owned, crypto.randomUUID(), signal);
|
|
242
|
+
work.add(response);
|
|
243
|
+
try {
|
|
244
|
+
const receipt = await response;
|
|
245
|
+
if (receipt.callbackId !== callback.callbackId || receipt.operationId !== callback.operationId)
|
|
246
|
+
throw new Error("Remote callback acknowledgement belongs to another operation");
|
|
247
|
+
return receipt;
|
|
248
|
+
} finally {
|
|
249
|
+
work.delete(response);
|
|
250
|
+
}
|
|
251
|
+
} };
|
|
252
|
+
await options.onControl(control, context, remote);
|
|
253
|
+
} else if (control.type === "Failure") throw new Error(control.error.message);
|
|
254
|
+
else if (control.type === "JobState" && (control.job.processOutcome || control.job.state === "terminal")) {
|
|
255
|
+
processExited = true;
|
|
256
|
+
inputController.abort(new Error("Native process exited"));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}, signal);
|
|
260
|
+
work.add(download);
|
|
261
|
+
void download.catch(() => controller.abort(new Error("Remote output failed")));
|
|
262
|
+
const upload = (async () => {
|
|
263
|
+
let receiptFailed = false;
|
|
264
|
+
let inputFailure;
|
|
265
|
+
try {
|
|
266
|
+
let send2 = function(channelId, kind, payload) {
|
|
267
|
+
const operation = tail.then(async () => {
|
|
268
|
+
inputSignal.throwIfAborted();
|
|
269
|
+
const offset = offsets.get(channelId);
|
|
270
|
+
try {
|
|
271
|
+
await client.sendFrames(identity, nativeJob.jobId, input2.laneId, [{ kind, channelId, sequence, offset, correlationId: 0n, payload }], { maxFrameBytes: input2.maxFrameBytes, maxControlBytes: input2.maxFrameBytes, channels }, crypto.randomUUID(), signal);
|
|
272
|
+
} catch (cause) {
|
|
273
|
+
receiptFailed = true;
|
|
274
|
+
throw cause;
|
|
275
|
+
}
|
|
276
|
+
sequence++;
|
|
277
|
+
offsets.set(channelId, offset + BigInt(payload.length));
|
|
278
|
+
});
|
|
279
|
+
tail = operation;
|
|
280
|
+
return operation;
|
|
281
|
+
};
|
|
282
|
+
var send = send2;
|
|
283
|
+
const reads = streamedDescriptors.filter((descriptor) => descriptor.rights.includes("read"));
|
|
284
|
+
const streamStdin = !options.stdin || options.stdin.kind === "stream";
|
|
285
|
+
if (!streamStdin && !reads.length) return;
|
|
286
|
+
const input2 = await client.attach(identity, nativeJob.jobId, { direction: "input", consumerId: crypto.randomUUID() }, crypto.randomUUID(), inputSignal);
|
|
287
|
+
const channels = [...streamStdin ? [1] : [], ...reads.map((descriptor) => descriptor.fd + 1)];
|
|
288
|
+
const offsets = new Map(channels.map((channel) => [channel, 0n]));
|
|
289
|
+
let sequence = BigInt(input2.nextSequence);
|
|
290
|
+
let tail = Promise.resolve();
|
|
291
|
+
const byteLength = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), "byteLength").get;
|
|
292
|
+
async function* readInput(read, description) {
|
|
293
|
+
for (; ; ) {
|
|
294
|
+
const count = Math.min(input2.maxFrameBytes, 65536);
|
|
295
|
+
const next = await read(count, inputSignal);
|
|
296
|
+
if (!next || typeof next !== "object" || Array.isArray(next)) throw new TypeError("Invalid process input read result");
|
|
297
|
+
const done = next.done;
|
|
298
|
+
if (done === true) return;
|
|
299
|
+
if (done !== false && done !== void 0) throw new TypeError("Invalid process input read result");
|
|
300
|
+
const fragment = next.value;
|
|
301
|
+
if (!(fragment instanceof Uint8Array) || byteLength.call(fragment) > count) throw new TypeError(`Invalid ${description} read size`);
|
|
302
|
+
yield fragment;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
const stdinRead = context.stdinInput?.read.bind(context.stdinInput);
|
|
306
|
+
const stdin = stdinRead ? { [Symbol.asyncIterator]: () => readInput(stdinRead, "stdinInput") } : context.stdin;
|
|
307
|
+
const sources = streamStdin ? [[1, readBytes(stdin, inputSignal)]] : [];
|
|
308
|
+
for (const descriptor of reads) {
|
|
309
|
+
const lease = leases.get(descriptor.fd);
|
|
310
|
+
const read = lease.read.bind(lease);
|
|
311
|
+
sources.push([descriptor.fd + 1, readBytes({ [Symbol.asyncIterator]: () => readInput(read, "admitted descriptor") }, inputSignal)]);
|
|
312
|
+
}
|
|
313
|
+
const producers = sources.map(async ([channel, source]) => {
|
|
314
|
+
for await (const incoming of source) {
|
|
315
|
+
for (let start = 0; start < incoming.length; start += input2.maxFrameBytes) {
|
|
316
|
+
const bytes = Uint8Array.from(incoming.subarray(start, start + input2.maxFrameBytes));
|
|
317
|
+
await send2(channel, "data", bytes);
|
|
318
|
+
await options.onProgress?.({ direction: "upload", bytes: bytes.length });
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
await send2(channel, "end", new Uint8Array());
|
|
322
|
+
});
|
|
323
|
+
for (const producer of producers) void producer.catch((cause) => {
|
|
324
|
+
if (!(processExited && !receiptFailed && inputSignal.aborted && cause === inputSignal.reason)) inputFailure ??= { cause };
|
|
325
|
+
inputController.abort(new Error("Remote descriptor input failed"));
|
|
326
|
+
});
|
|
327
|
+
const results = await Promise.allSettled(producers);
|
|
328
|
+
if (inputFailure) throw inputFailure.cause;
|
|
329
|
+
const failure = results.find((result) => result.status === "rejected");
|
|
330
|
+
if (failure?.status === "rejected") throw failure.reason;
|
|
331
|
+
} catch (cause) {
|
|
332
|
+
if (!receiptFailed && processExited && !signal.aborted && cause === inputSignal.reason) return;
|
|
333
|
+
throw cause;
|
|
334
|
+
}
|
|
335
|
+
})();
|
|
336
|
+
work.add(upload);
|
|
337
|
+
void upload.catch(() => controller.abort(new Error("Remote input failed")));
|
|
338
|
+
await Promise.all([download, upload]);
|
|
339
|
+
const settled = await client.waitJob(identity, nativeJob.jobId, signal);
|
|
340
|
+
if (!settled.outputComplete || settled.cleanup !== "complete") throw new Error("Remote media cleanup or output is incomplete");
|
|
341
|
+
if (settled.outcome?.kind === "exited") return { exitCode: settled.outcome.exitCode };
|
|
342
|
+
if (settled.outcome?.kind === "signaled" && options.signalStatus) {
|
|
343
|
+
const exitCode = options.signalStatus(settled.outcome.signal, settled.outcome.signalNumber);
|
|
344
|
+
if (!Number.isInteger(exitCode) || exitCode < 0 || exitCode > 255) throw new TypeError("Invalid shell signal status");
|
|
345
|
+
return { exitCode };
|
|
346
|
+
}
|
|
347
|
+
throw new Error(`Remote media outcome: ${settled.outcome?.kind ?? "unknown"}`);
|
|
348
|
+
} catch (cause) {
|
|
349
|
+
primaryFailed = true;
|
|
350
|
+
throw cause;
|
|
351
|
+
} finally {
|
|
352
|
+
await finalize();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
const plugin = mediaCommands({
|
|
356
|
+
...options.replace !== void 0 ? { replace: options.replace } : {},
|
|
357
|
+
ffmpeg: { build: nativeReference.id, grammarRevision, argv: "bytes", lateAccess: "complete", effects: "live", run },
|
|
358
|
+
imageMagick: { build: imageMagickReference.id, grammarRevision: imageMagickGrammarRevision, argv: "bytes", lateAccess: "complete", effects: "live", run }
|
|
359
|
+
});
|
|
360
|
+
return { ...plugin, async dispose() {
|
|
361
|
+
const runtime = await provider?.catch(() => void 0);
|
|
362
|
+
await runtime?.dispose?.();
|
|
363
|
+
} };
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export {
|
|
367
|
+
createRemoteMediaCommands
|
|
368
|
+
};
|
|
@@ -15,6 +15,8 @@ var FindFormatBudget = class {
|
|
|
15
15
|
}
|
|
16
16
|
context;
|
|
17
17
|
untilYield = 4096;
|
|
18
|
+
pending = new Uint8Array(4096);
|
|
19
|
+
used = 0;
|
|
18
20
|
step(count = 1) {
|
|
19
21
|
this.context.signal.throwIfAborted();
|
|
20
22
|
this.untilYield -= count;
|
|
@@ -22,14 +24,23 @@ var FindFormatBudget = class {
|
|
|
22
24
|
this.untilYield = 4096;
|
|
23
25
|
return yieldTurn(this.context.signal);
|
|
24
26
|
}
|
|
27
|
+
async flush() {
|
|
28
|
+
if (this.used === 0) return;
|
|
29
|
+
const chunk = this.pending.slice(0, this.used);
|
|
30
|
+
this.used = 0;
|
|
31
|
+
await output(this.context, chunk);
|
|
32
|
+
}
|
|
25
33
|
async write(bytes) {
|
|
26
|
-
for (let offset = 0; offset < bytes.length;
|
|
27
|
-
const
|
|
34
|
+
for (let offset = 0; offset < bytes.length; ) {
|
|
35
|
+
const length = Math.min(bytes.length - offset, this.pending.length - this.used);
|
|
28
36
|
{
|
|
29
|
-
const s = this.step(
|
|
37
|
+
const s = this.step(length);
|
|
30
38
|
if (s) await s;
|
|
31
39
|
}
|
|
32
|
-
|
|
40
|
+
this.pending.set(bytes.subarray(offset, offset + length), this.used);
|
|
41
|
+
this.used += length;
|
|
42
|
+
offset += length;
|
|
43
|
+
if (this.used === this.pending.length) await this.flush();
|
|
33
44
|
}
|
|
34
45
|
}
|
|
35
46
|
async text(text) {
|
|
@@ -131,6 +142,7 @@ async function compileFindFormat(value, budget) {
|
|
|
131
142
|
else if ("byte" in part) await budget.write(Uint8Array.of(part.byte));
|
|
132
143
|
else await budget.write(source.subarray(part.start, part.end));
|
|
133
144
|
}
|
|
145
|
+
await budget.flush();
|
|
134
146
|
};
|
|
135
147
|
}
|
|
136
148
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
streamElevenLabs
|
|
3
3
|
} from "./chunk-LPZXFCTC.js";
|
|
4
|
+
import {
|
|
5
|
+
acceptsMimeType
|
|
6
|
+
} from "./chunk-PHFOL7T3.js";
|
|
4
7
|
import {
|
|
5
8
|
credential,
|
|
6
9
|
jsonBody,
|
|
7
10
|
providerLimits
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
acceptsMimeType
|
|
11
|
-
} from "./chunk-PHFOL7T3.js";
|
|
11
|
+
} from "./chunk-RFWGYT7G.js";
|
|
12
12
|
import {
|
|
13
13
|
init_buffer
|
|
14
14
|
} from "./chunk-HX3SHTCE.js";
|
|
@@ -3644,8 +3644,9 @@ async function readXlsx(bytes, context) {
|
|
|
3644
3644
|
if (importedName.startsWith("_xlnm.") && name === "Print_Area" && node.text === "!#REF!") continue;
|
|
3645
3645
|
const sheetIndex = attr(node, "localSheetId"), sheet = sheetIndex === void 0 ? void 0 : sheets[integer(sheetIndex)];
|
|
3646
3646
|
const position = { sheet: sheet?.id ?? sheets[0]?.id ?? "sheet-1", row: 0, column: 0 };
|
|
3647
|
-
|
|
3648
|
-
|
|
3647
|
+
const expression = decodeXlsxString(node.text);
|
|
3648
|
+
if (expression && !parseExpression("=" + expression, { maximumDepth: context.limits.formulaDepth, grammar: excelGrammar, position, signal: context.signal }).ok) {
|
|
3649
|
+
const message = `At A1: '${expression}' Invalid expression
|
|
3649
3650
|
`;
|
|
3650
3651
|
await context.diagnostic?.({
|
|
3651
3652
|
code: "xlsx-name-expression",
|
|
@@ -3657,7 +3658,7 @@ async function readXlsx(bytes, context) {
|
|
|
3657
3658
|
}
|
|
3658
3659
|
const semantics = readFormulaSemantics(node);
|
|
3659
3660
|
const openFormula = readOpenFormula(node);
|
|
3660
|
-
const imported = { name, ...openFormula?.position ? { position: { ...openFormula.position, sheet: sheets.find((s) => s.name === openFormula.position.sheet)?.id ?? openFormula.position.sheet } } : {}, expression: openFormula?.source ?? (
|
|
3661
|
+
const imported = { name, ...openFormula?.position ? { position: { ...openFormula.position, sheet: sheets.find((s) => s.name === openFormula.position.sheet)?.id ?? openFormula.position.sheet } } : {}, expression: openFormula?.source ?? (expression ? formula(expression, position.sheet, 0, 0, context, semantics.arrayStringLiterals) : "=#REF!"), ...semantics, ...sheet ? { sheet: sheet.id } : {} };
|
|
3661
3662
|
opc.charge(names.length);
|
|
3662
3663
|
const existing = names.findIndex((n) => n.name === name && n.sheet === sheet?.id);
|
|
3663
3664
|
if (existing < 0) names.push(imported);
|
|
@@ -4034,13 +4035,13 @@ function createXlsxWriter(edition) {
|
|
|
4034
4035
|
localSheetId: index < 0 ? void 0 : index,
|
|
4035
4036
|
...formulaSemanticsAttributes(name.arrayStringLiterals, true, name.expression, name.position ? { ...name.position, sheet: book.sheets.find((s) => s.id === name.position.sheet)?.name ?? name.position.sheet } : void 0)
|
|
4036
4037
|
},
|
|
4037
|
-
escapeXlsx(exportXlsxFormula(book, name.expression, sheet, name.position?.row ?? 0, name.position?.column ?? 0, context, name.arrayStringLiterals))
|
|
4038
|
+
escapeXlsx(encodeXlsxString(exportXlsxFormula(book, name.expression, sheet, name.position?.row ?? 0, name.position?.column ?? 0, context, name.arrayStringLiterals)))
|
|
4038
4039
|
);
|
|
4039
4040
|
}
|
|
4040
4041
|
for (const [index, sheet] of book.sheets.entries()) {
|
|
4041
4042
|
for (const [name, expression] of [["Sheet_Title", '"' + sheet.name.split('"').join('""') + '"'], ["Print_Area", "#REF!"]])
|
|
4042
4043
|
if (!book.names?.some((n) => n.name === name && n.sheet === sheet.id))
|
|
4043
|
-
names += xml("definedName", { name: "_xlnm." + name, localSheetId: index }, escapeXlsx(expression));
|
|
4044
|
+
names += xml("definedName", { name: "_xlnm." + name, localSheetId: index }, escapeXlsx(encodeXlsxString(expression)));
|
|
4044
4045
|
}
|
|
4045
4046
|
await add("xl/workbook.xml", xml(
|
|
4046
4047
|
"workbook",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
inferDelimiter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DPAYAVMS.js";
|
|
4
4
|
import {
|
|
5
5
|
Scanner
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DBAT3IK2.js";
|
|
7
7
|
import {
|
|
8
8
|
Bytes,
|
|
9
9
|
XanError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-U3MMODA5.js";
|
|
11
11
|
import {
|
|
12
12
|
init_buffer
|
|
13
13
|
} from "./chunk-HX3SHTCE.js";
|