@poe-platform/safe-bash 0.1.803 → 0.1.804
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -31
- 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 -8364
- package/dist/image-ast/index.js +692 -8364
- 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-5OHX7C2V.js → chunk-62BOHHJT.js} +1 -1
- 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-PNBBUWSM.js → chunk-AW5KIT6V.js} +3488 -39
- package/dist/safe-bash/chunks/{chunk-JMMEIDPF.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-2LSAMQER.js → chunk-CTXNARJH.js} +1 -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-VBTDHOWC.js → chunk-IOHH2GTI.js} +4 -3
- 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-RYFQ3LZG.js → chunk-LPOVNKNB.js} +173 -153
- 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-EEEWOYEG.js → chunk-S4RFUUXO.js} +839 -24
- 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-B7PIL77G.js → chunk-W2IYOVHK.js} +804 -1195
- 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-A7XEHALN.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-ZDN7MJE6.js → chunk-4R5ADJM5.js} +11 -1
- 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-PICVQ6B5.js → chunk-6GKYHPJG.js} +1 -1
- 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-4FEVBOL5.js → chunk-ARZMP2L2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-NKIELG7Y.js → chunk-BAKFZ477.js} +40 -19
- package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
- package/dist/safe-bash/command-chunks/{chunk-CQHP3I66.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-QVOS4YXL.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-V4K2JDYU.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-GFC2NTDG.js → chunk-ICANWOXH.js} +5 -29
- package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.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-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-EARHPPPJ.js → chunk-NJYHWKIL.js} +39 -9
- package/dist/safe-bash/command-chunks/{chunk-6JSIFWYT.js → chunk-OJQRSCBP.js} +1 -1
- 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-NASVPT6F.js → chunk-R7C4MGZ5.js} +17 -224
- 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-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-GIRNFXP3.js → chunk-TZRI7BJZ.js} +45 -15
- 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-ILX2NOLF.js → chunk-WPANOB4A.js} +20 -20
- package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
- package/dist/safe-bash/command-chunks/{chunk-HDCNKOIX.js → chunk-XGI57GCN.js} +1 -1
- 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-WWIBP2ET.js → chunk-Z5ZZVDUD.js} +143 -22
- package/dist/safe-bash/command-chunks/{chunk-LOICUCHG.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/index.js +2 -1
- package/dist/safe-bash/commands/chmod/index.browser.js +1 -1
- 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/index.browser.js +3 -4
- 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/mktemp/index.browser.js +1 -1
- 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/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 +1 -1
- 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 +28 -24
- 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 +283 -945
- 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 +2 -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 +23 -18
- 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 +21 -4
- package/dist/safe-bash/shell/runtime.js +373 -412
- 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 +5 -0
- package/dist/safe-bash/shell/value-state.js +1 -1
- package/dist/safe-bash/shell-entry.browser.js +32 -33
- package/dist/safe-bash/trap.browser.js +4 -4
- 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 +206 -60
- 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 +278 -50
- 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 +1 -4
- 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-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 +56 -6
- 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 +37 -61
- 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 +2804 -2771
- 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/command.js +1 -1
- package/dist/safe-bash-command-mktemp/index.js +1 -1
- 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 +10 -6
- package/dist/safe-bash-command-op/index.js +39 -32
- 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 +2 -2
- package/dist/safe-bash-command-soffice/index.js +97 -12
- package/dist/safe-bash-command-sponge/index.js +4 -1
- 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/command.js +1 -1
- package/dist/safe-bash-command-stat/index.js +1 -1
- 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 +26 -4
- 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 +41 -10
- package/dist/safe-bash-command-yq/accounting.js +1 -1
- package/dist/safe-bash-command-yq/index.js +3 -2
- package/dist/safe-bash-command-yq/native-work.js +2 -0
- package/dist/safe-bash-command-yq/parser.js +2 -2
- package/dist/safe-bash-command-yq/query.js +5 -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 +2 -2
- package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
- package/dist/safe-bash-compression-engine/files.js +5 -5
- package/dist/safe-bash-compression-engine/index.js +4 -4
- package/dist/safe-bash-compression-engine/operand.js +5 -5
- package/dist/safe-bash-compression-engine/stream.js +4 -4
- package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
- 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.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-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 +1 -1
- package/dist/safe-bash-search-engine/grep.js +16 -9
- package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
- package/dist/safe-bash-search-engine/matcher.js +12 -8
- package/dist/safe-bash-search-engine/shared.js +1 -1
- package/dist/safe-bash-search-engine/walk.js +13 -1
- 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-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 +86 -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-GDYNCWRV.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/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 -9167
- 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-BXCXRYVU.js → chunk-JNANXVJV.js} +0 -0
- 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
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { byteText, textBytes } from "./bytes.js";
|
|
2
|
-
import { concatFiles } from './concat.js';
|
|
3
|
-
import { discover } from "./discover.js";
|
|
4
|
-
import { filterResources, resource } from "./resources.js";
|
|
5
|
-
import { presetAssignments } from './preset.js';
|
|
6
|
-
/** Optional hints from bytes already read by native. Never opens, caches or probes
|
|
7
|
-
* a resource, resolves symlinks, validates directives, or replaces native parsing. */
|
|
8
|
-
export function discoverContent(read) {
|
|
9
|
-
const dependencies = [];
|
|
10
|
-
if (read.kind === "option-file") {
|
|
11
|
-
// write_option still reads a slash value discarded by a filename callback
|
|
12
|
-
// or a later matching simple filter. Its contents select no runtime reader.
|
|
13
|
-
if (read.option.discardValue)
|
|
14
|
-
return { dependencies, deferred: true };
|
|
15
|
-
// cmdutils.c write_option/read_file_to_string passes the entire loaded
|
|
16
|
-
// buffer to a C-string reader. Whitespace is data; the first NUL ends it.
|
|
17
|
-
// The option file's directory does not change cwd for the selected reader.
|
|
18
|
-
const end = read.content.indexOf(0);
|
|
19
|
-
const value = read.content.slice(0, end < 0 ? read.content.length : end);
|
|
20
|
-
const key = read.option.name + (read.option.specifier === undefined ? '' : ':' + byteText(read.option.specifier));
|
|
21
|
-
const plan = discover(read.tool, [textBytes('-' + key), value, textBytes('__observed_option_group__')]);
|
|
22
|
-
// Operand groups (ffprobe -i/-o) are indexed at the value, while ordinary
|
|
23
|
-
// option dependencies are indexed at the key. Exclude the synthetic group.
|
|
24
|
-
for (const dependency of plan.dependencies)
|
|
25
|
-
if (dependency.index < 2) {
|
|
26
|
-
dependencies.push({ ...dependency, index: read.option.index, stage: 'runtime' });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
else if (read.kind === "filter-script") {
|
|
30
|
-
for (const file of filterResources(read.content).resources)
|
|
31
|
-
dependencies.push({ ...resource(-1, file.value, "filter-resource", file.access ?? "read", "runtime", file.literal), literal: file.literal, ...(file.filterReader ? { filterReader: file.filterReader } : {}), ...(file.kind ? { kind: file.kind } : {}) });
|
|
32
|
-
}
|
|
33
|
-
else if (read.kind === 'preset') {
|
|
34
|
-
try {
|
|
35
|
-
for (const { key, value, index } of presetAssignments(read.content)) {
|
|
36
|
-
dependencies.push(...presetDependencies(key, value, index).dependencies);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
if (!(error instanceof SyntaxError))
|
|
41
|
-
throw error;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
try {
|
|
46
|
-
for (const { index, value } of concatFiles(read.content)) {
|
|
47
|
-
dependencies.push({ ...resource(index, value, "input", "read", "runtime"), base: { resource: new Uint8Array(read.location) } });
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
if (!(error instanceof SyntaxError))
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return { dependencies, deferred: true };
|
|
56
|
-
}
|
|
57
|
-
/** Preset parse_option uses the same name/specifier and slash-loading lookup as
|
|
58
|
-
* command options. A synthetic file group only flushes advisory per-file hints;
|
|
59
|
-
* it is never executed or exposed as a dependency. */
|
|
60
|
-
export function presetDependencies(key, value, index) {
|
|
61
|
-
const plan = discover('ffmpeg', [textBytes('-' + key), value, textBytes('__preset_group__')], 'preset');
|
|
62
|
-
const dependencies = plan.dependencies
|
|
63
|
-
.filter(dependency => dependency.index === 0)
|
|
64
|
-
.map(dependency => ({ ...dependency, index, stage: 'runtime' }));
|
|
65
|
-
return { dependencies, deferred: plan.deferred.map(item => ({ ...item, index })) };
|
|
66
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { AccessGraph, AccessReference, DependencyGrammar, ResolutionOptions } from './resolution-types.js';
|
|
2
|
-
export interface ParsedContent {
|
|
3
|
-
references: AccessReference[];
|
|
4
|
-
issues: string[];
|
|
5
|
-
diagnostics?: AccessGraph['issues'];
|
|
6
|
-
incomplete: boolean;
|
|
7
|
-
budget: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare function parseDependencyContent(grammar: DependencyGrammar, content: Uint8Array, location: Uint8Array, cwd: Uint8Array, limits: {
|
|
10
|
-
nodes: number;
|
|
11
|
-
depth: number;
|
|
12
|
-
}, optionReader?: AccessReference['optionReader'], filterReader?: AccessReference['filterReader'], filesystem?: Pick<ResolutionOptions, 'accessible' | 'exists' | 'directory' | 'policy'>): Promise<ParsedContent>;
|
|
@@ -1,557 +0,0 @@
|
|
|
1
|
-
import { imageMagickAccessReferences } from './imagemagick-references.js';
|
|
2
|
-
import { frontendIssues } from './frontend-issues.js';
|
|
3
|
-
import { parseMvg } from './mvg.js';
|
|
4
|
-
import { SaxesParser } from 'saxes';
|
|
5
|
-
import { byteText, textBytes } from './bytes.js';
|
|
6
|
-
import { concatFiles, concatfFiles, manifestLines } from './concat.js';
|
|
7
|
-
import { discoverContent, presetDependencies } from './content.js';
|
|
8
|
-
import { presetAssignments } from './preset.js';
|
|
9
|
-
import { filterOptions } from './discover.js';
|
|
10
|
-
import { filterResources, filterValueResource } from './resources.js';
|
|
11
|
-
import { discoverImageMagick, imageMagickScriptTokens } from './imagemagick.js';
|
|
12
|
-
import { protocol, resolveLocation } from './resolution-path.js';
|
|
13
|
-
import { parseFilenameExpression } from './filename-expression.js';
|
|
14
|
-
import { imageMagickPropertyReference, imageMagickReaderReferences } from './imagemagick-operand.js';
|
|
15
|
-
/** Registered ff_parse_key_value reader: quoted backslash escapes, whitespace
|
|
16
|
-
* delimited bare values and last assignment wins. This is not shell parsing. */
|
|
17
|
-
function attributes(input) {
|
|
18
|
-
const result = new Map();
|
|
19
|
-
let i = 0;
|
|
20
|
-
while (i < input.length) {
|
|
21
|
-
while (input[i] === ',' || ' \t\r\n\v\f'.includes(input[i] ?? '\0'))
|
|
22
|
-
i++;
|
|
23
|
-
if (i === input.length)
|
|
24
|
-
break;
|
|
25
|
-
const start = i;
|
|
26
|
-
while (i < input.length && input[i] !== '=')
|
|
27
|
-
i++;
|
|
28
|
-
if (i === input.length)
|
|
29
|
-
break;
|
|
30
|
-
const key = input.slice(start, i++);
|
|
31
|
-
const quoted = input[i] === '"';
|
|
32
|
-
if (quoted)
|
|
33
|
-
i++;
|
|
34
|
-
let value = '';
|
|
35
|
-
while (i < input.length && (quoted ? input[i] !== '"' : input[i] !== ',' && !' \t\r\n\v\f'.includes(input[i]))) {
|
|
36
|
-
if (quoted && input[i] === '\\') {
|
|
37
|
-
if (i + 1 === input.length)
|
|
38
|
-
break;
|
|
39
|
-
i++;
|
|
40
|
-
}
|
|
41
|
-
value += input[i++];
|
|
42
|
-
}
|
|
43
|
-
result.set(key, value);
|
|
44
|
-
if (quoted && input[i] === '"')
|
|
45
|
-
i++;
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
/** libxml's xmlNodeGetContent string value, including descendant text in
|
|
50
|
-
* document order. Keep references to child nodes rather than copying every
|
|
51
|
-
* descendant's text into every ancestor; depth is bounded by the XML reader. */
|
|
52
|
-
function xmlText(node) {
|
|
53
|
-
const text = [];
|
|
54
|
-
const pending = [...node.content].reverse();
|
|
55
|
-
while (pending.length) {
|
|
56
|
-
const part = pending.pop();
|
|
57
|
-
if (typeof part === 'string')
|
|
58
|
-
text.push(part);
|
|
59
|
-
else
|
|
60
|
-
for (let index = part.content.length - 1; index >= 0; index--)
|
|
61
|
-
pending.push(part.content[index]);
|
|
62
|
-
}
|
|
63
|
-
return text.join('');
|
|
64
|
-
}
|
|
65
|
-
function xml(content, maxDepth, foldNames) {
|
|
66
|
-
const root = { name: '', attrs: {}, children: [], content: [], start: 0, end: content.length };
|
|
67
|
-
const stack = [root];
|
|
68
|
-
const parser = new SaxesParser({ xmlns: true });
|
|
69
|
-
parser.on('doctype', () => { throw new Error('External/entity declarations require native resolution'); });
|
|
70
|
-
parser.on('opentag', tag => {
|
|
71
|
-
if (stack.length > maxDepth)
|
|
72
|
-
throw new ContentBudgetError();
|
|
73
|
-
const attrs = {};
|
|
74
|
-
for (const attr of Object.values(tag.attributes)) {
|
|
75
|
-
const key = attr.uri === 'http://www.w3.org/1999/xlink' ? 'xlink:' + attr.local
|
|
76
|
-
: attr.uri === 'http://www.w3.org/XML/1998/namespace' ? 'xml:' + attr.local : attr.name;
|
|
77
|
-
attrs[key] = attr.value;
|
|
78
|
-
}
|
|
79
|
-
// dashdec.c compares element names with av_strcasecmp; attributes stay exact.
|
|
80
|
-
const node = { name: foldNames ? tag.local.toLowerCase() : tag.local, attrs, children: [], content: [], start: parser.position, end: parser.position };
|
|
81
|
-
stack.at(-1).content.push(node);
|
|
82
|
-
stack.at(-1).children.push(node);
|
|
83
|
-
stack.push(node);
|
|
84
|
-
});
|
|
85
|
-
parser.on('text', value => { stack.at(-1).content.push(value); });
|
|
86
|
-
parser.on('cdata', value => { stack.at(-1).content.push(value); });
|
|
87
|
-
parser.on('closetag', () => { stack.pop().end = parser.position; });
|
|
88
|
-
try {
|
|
89
|
-
parser.write(new TextDecoder('utf-8', { fatal: true }).decode(content)).close();
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
return { root, error: error instanceof Error ? error : new Error('Unresolved XML grammar') };
|
|
93
|
-
}
|
|
94
|
-
return { root };
|
|
95
|
-
}
|
|
96
|
-
class ContentBudgetError extends Error {
|
|
97
|
-
constructor() { super('Content expansion exceeds explicit budget'); }
|
|
98
|
-
}
|
|
99
|
-
export async function parseDependencyContent(grammar, content, location, cwd, limits, optionReader, filterReader, filesystem = {}) {
|
|
100
|
-
const references = [], issues = [];
|
|
101
|
-
let diagnostics;
|
|
102
|
-
let incomplete = false, budget = false;
|
|
103
|
-
const resourceBase = { kind: 'resource', value: location };
|
|
104
|
-
const cwdBase = { kind: 'directory', value: cwd };
|
|
105
|
-
const add = (value, extra = {}) => { if (references.length >= limits.nodes)
|
|
106
|
-
throw new ContentBudgetError(); references.push({ value, access: 'read', base: resourceBase, ...extra }); };
|
|
107
|
-
const imageAccessible = async (path) => {
|
|
108
|
-
if (path.length === 1 && path[0] === 45)
|
|
109
|
-
return true;
|
|
110
|
-
try {
|
|
111
|
-
// Probe filename bytes, even when a colon resembles a URL/coder. Native
|
|
112
|
-
// checks the literal path before choosing that interpretation.
|
|
113
|
-
return await filesystem.accessible?.(resolveLocation(path, cwdBase, true));
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
const imageExists = async (path) => {
|
|
120
|
-
try {
|
|
121
|
-
return await filesystem.exists?.(resolveLocation(path, cwdBase, true));
|
|
122
|
-
}
|
|
123
|
-
catch {
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
const imagePaths = {
|
|
128
|
-
accessible: async (name) => imageAccessible(textBytes(name)),
|
|
129
|
-
exists: async (name) => imageExists(textBytes(name)),
|
|
130
|
-
};
|
|
131
|
-
const input = byteText(content);
|
|
132
|
-
try {
|
|
133
|
-
if (grammar === 'text')
|
|
134
|
-
return { references, issues, incomplete, budget };
|
|
135
|
-
if (grammar === 'filter-option') {
|
|
136
|
-
if (filterReader?.discardValue)
|
|
137
|
-
return { references, issues, incomplete, budget };
|
|
138
|
-
if (!filterReader)
|
|
139
|
-
throw new Error('Filter-option content requires the selected filter reader');
|
|
140
|
-
const end = content.indexOf(0);
|
|
141
|
-
const file = filterValueResource(filterReader.filter, filterReader.name, content.slice(0, end < 0 ? content.length : end));
|
|
142
|
-
if (file)
|
|
143
|
-
add(file.value, { access: file.access ?? 'read', base: cwdBase, kind: file.kind, literal: file.literal, filterReader: file.filterReader, grammar: file.filterReader ? 'filter-option' : undefined });
|
|
144
|
-
issues.push('Loaded filter option application, initialization and reloads remain live');
|
|
145
|
-
}
|
|
146
|
-
else if (grammar === 'option-file') {
|
|
147
|
-
if (!optionReader)
|
|
148
|
-
throw new Error('Option-file content requires the selected option reader');
|
|
149
|
-
const parsed = discoverContent({ kind: 'option-file', location, content, tool: optionReader.tool,
|
|
150
|
-
option: { name: optionReader.name, specifier: optionReader.specifier, discardValue: optionReader.discardValue, index: -1, fromFile: true, scopes: [] } });
|
|
151
|
-
for (const dependency of parsed.dependencies)
|
|
152
|
-
add(dependency.value, {
|
|
153
|
-
access: dependency.access, base: cwdBase, literal: dependency.literal,
|
|
154
|
-
kind: dependency.kind === 'resource-lookup' ? 'resource-lookup' : dependency.literal ? 'path' : undefined,
|
|
155
|
-
optionReader: dependency.optionReader, filterReader: dependency.filterReader,
|
|
156
|
-
grammar: dependency.filterReader ? 'filter-option' : dependency.role === 'option-file' ? dependency.optionReader && filterOptions.includes(dependency.optionReader.name) ? 'filter' : 'option-file'
|
|
157
|
-
: dependency.role === 'preset' ? 'preset' : dependency.role === 'filter-script' ? 'filter'
|
|
158
|
-
: optionReader.name === 'hls_key_info_file' ? 'hls-key-info' : undefined,
|
|
159
|
-
});
|
|
160
|
-
issues.push('Loaded option application and metadata-dependent reader selection remain live');
|
|
161
|
-
}
|
|
162
|
-
else if (grammar === 'mvg') {
|
|
163
|
-
const parsed = await parseMvg(content, cwd, limits.nodes, imagePaths);
|
|
164
|
-
for (const reference of parsed.references)
|
|
165
|
-
add(reference.value, reference);
|
|
166
|
-
if (parsed.budget)
|
|
167
|
-
throw new ContentBudgetError();
|
|
168
|
-
if (!parsed.complete) {
|
|
169
|
-
incomplete = true;
|
|
170
|
-
issues.push('MVG command expansion remains unresolved');
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
else if (grammar === 'filter') {
|
|
174
|
-
const parsed = filterResources(content);
|
|
175
|
-
for (const file of parsed.resources)
|
|
176
|
-
add(file.value, { access: file.access ?? 'read', base: cwdBase, kind: file.kind ?? (file.literal ? 'path' : undefined), literal: file.literal, filterReader: file.filterReader, grammar: file.filterReader ? 'filter-option' : undefined });
|
|
177
|
-
if (!parsed.complete) {
|
|
178
|
-
diagnostics = [{ reason: 'syntax', detail: 'Malformed filter graph requires native validation' }];
|
|
179
|
-
incomplete = true;
|
|
180
|
-
}
|
|
181
|
-
issues.push('Filter initialization, fontconfig, commands and frame-time paths remain live');
|
|
182
|
-
}
|
|
183
|
-
else if (grammar === 'preset') {
|
|
184
|
-
for (const { key, value, index, span } of presetAssignments(content)) {
|
|
185
|
-
const parsed = presetDependencies(key, value, index);
|
|
186
|
-
const deferred = frontendIssues(parsed.deferred);
|
|
187
|
-
(diagnostics ??= []).push(...deferred);
|
|
188
|
-
if (deferred.some(issue => issue.reason === 'syntax'))
|
|
189
|
-
incomplete = true;
|
|
190
|
-
for (const dependency of parsed.dependencies)
|
|
191
|
-
add(dependency.value, {
|
|
192
|
-
access: dependency.access, base: cwdBase, span,
|
|
193
|
-
kind: dependency.kind === 'resource-lookup' ? 'resource-lookup' : dependency.literal ? 'path' : undefined,
|
|
194
|
-
literal: dependency.literal,
|
|
195
|
-
optionReader: dependency.optionReader, filterReader: dependency.filterReader,
|
|
196
|
-
grammar: dependency.filterReader ? 'filter-option' : dependency.role === 'option-file' ? dependency.optionReader && filterOptions.includes(dependency.optionReader.name) ? 'filter' : 'option-file'
|
|
197
|
-
: dependency.optionReader?.name === 'hls_key_info_file' ? 'hls-key-info'
|
|
198
|
-
: dependency.role === 'preset' ? 'preset' : dependency.role === 'filter-script' ? 'filter' : undefined,
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else if (grammar === 'concat') {
|
|
203
|
-
const entries = [];
|
|
204
|
-
try {
|
|
205
|
-
for (const { value, span, options } of concatFiles(content)) {
|
|
206
|
-
add(value, { span });
|
|
207
|
-
entries.push({ index: references.length - 1, options });
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
finally {
|
|
211
|
-
// Also preserve options already parsed before a malformed/budget stop.
|
|
212
|
-
// Native copies parent restrictions, then applies the file dictionary.
|
|
213
|
-
for (const { index, options } of entries) {
|
|
214
|
-
if (!options.has('protocol_whitelist') && !options.has('protocol_blacklist'))
|
|
215
|
-
continue;
|
|
216
|
-
const policy = { ...filesystem.policy };
|
|
217
|
-
if (options.has('protocol_whitelist'))
|
|
218
|
-
policy.allow = options.get('protocol_whitelist').split(',');
|
|
219
|
-
if (options.has('protocol_blacklist'))
|
|
220
|
-
policy.deny = options.get('protocol_blacklist').split(',');
|
|
221
|
-
references[index] = { ...references[index], policy };
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
else if (grammar === 'concatf') {
|
|
226
|
-
for (const { value, span } of concatfFiles(content))
|
|
227
|
-
add(value, { base: cwdBase, span, literal: byteText(value) === '-' });
|
|
228
|
-
}
|
|
229
|
-
else if (grammar === 'hls-key-info') {
|
|
230
|
-
// hlsenc.c reads three fields with ff_get_line, not fgets or a
|
|
231
|
-
// newline-only split. CR, LF (including CRLF) and NUL terminate a read.
|
|
232
|
-
// Its URI/file buffers hold MAX_URL_SIZE bytes plus the terminating NUL.
|
|
233
|
-
// Native drains overlong lines but retains a prefix. Do not silently
|
|
234
|
-
// substitute that prefix for signed content or claim complete discovery.
|
|
235
|
-
let index = 0;
|
|
236
|
-
for (const { line, span } of manifestLines(input)) {
|
|
237
|
-
if (index >= 2)
|
|
238
|
-
break; // The third field is IV data, never a filename.
|
|
239
|
-
if (line.length > 4096) {
|
|
240
|
-
incomplete = true;
|
|
241
|
-
diagnostics = [{ reason: 'unresolved', detail: 'HLS key-info field exceeds the native 4096-byte reader boundary; remaining dependencies require runtime discovery' }];
|
|
242
|
-
return { references, issues, diagnostics, incomplete, budget };
|
|
243
|
-
}
|
|
244
|
-
if (index === 1 && line)
|
|
245
|
-
add(textBytes(line), { base: cwdBase, span, literal: line === '-' });
|
|
246
|
-
index++;
|
|
247
|
-
}
|
|
248
|
-
issues.push('HLS key-info application, periodic rekeying and key accesses remain native live decisions');
|
|
249
|
-
}
|
|
250
|
-
else if (grammar === 'hls') {
|
|
251
|
-
let variant = false;
|
|
252
|
-
const hlsReference = (uri, extra) => {
|
|
253
|
-
// Preserve variable-bearing content exactly. Substitution can depend on
|
|
254
|
-
// the selected parent playlist and must never probe a placeholder path.
|
|
255
|
-
const expression = parseFilenameExpression(textBytes(uri), 'hls');
|
|
256
|
-
const dynamic = expression.tokens.some(token => token.kind === 'property');
|
|
257
|
-
add(textBytes(uri), { ...extra, ...(dynamic ? { kind: 'filename-expression', filenameDialect: 'hls' } : {}) });
|
|
258
|
-
if (dynamic)
|
|
259
|
-
issues.push('HLS variable substitution requires runtime discovery');
|
|
260
|
-
};
|
|
261
|
-
const lines = [...manifestLines(input)];
|
|
262
|
-
if (grammar === 'hls' && !lines.length)
|
|
263
|
-
throw new Error('Missing HLS EXTM3U header');
|
|
264
|
-
for (let index = 0; index < lines.length; index++) {
|
|
265
|
-
let { line } = lines[index];
|
|
266
|
-
const { span } = lines[index];
|
|
267
|
-
if (grammar === 'hls') {
|
|
268
|
-
// hls.c reads through ff_get_chomp_line into MAX_URL_SIZE (4096).
|
|
269
|
-
// The byte alphabet makes length a native byte count, not Unicode
|
|
270
|
-
// code points. Native drains the line but retains only its prefix.
|
|
271
|
-
// Do not rewrite a signed URI or interpret later lines using parser
|
|
272
|
-
// state inferred from different bytes. Runtime owns this capture.
|
|
273
|
-
if (line.length > 4095) {
|
|
274
|
-
incomplete = true;
|
|
275
|
-
(diagnostics ??= []).push({ reason: 'unresolved', detail: 'HLS line exceeds the native 4095-byte reader boundary; remaining dependencies require runtime discovery' });
|
|
276
|
-
return { references, issues, diagnostics, incomplete, budget };
|
|
277
|
-
}
|
|
278
|
-
while (line.length && ' \t\r\n\v\f'.includes(line.at(-1)))
|
|
279
|
-
line = line.slice(0, -1);
|
|
280
|
-
if (index === 0) {
|
|
281
|
-
if (line !== '#EXTM3U')
|
|
282
|
-
throw new Error('Missing HLS EXTM3U header');
|
|
283
|
-
continue;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
if (!line)
|
|
287
|
-
continue;
|
|
288
|
-
if (!line.startsWith('#')) {
|
|
289
|
-
hlsReference(line, { grammar: variant ? 'hls' : undefined, span });
|
|
290
|
-
variant = false;
|
|
291
|
-
continue;
|
|
292
|
-
}
|
|
293
|
-
const colon = line.indexOf(':');
|
|
294
|
-
const tag = colon < 0 ? line : line.slice(0, colon);
|
|
295
|
-
if (tag === '#EXT-X-STREAM-INF')
|
|
296
|
-
variant = true;
|
|
297
|
-
// Registered hls.c recognizes these resource tags. Other HLS tags
|
|
298
|
-
// are skipped comments, even when the standard assigns a URI field.
|
|
299
|
-
// Standards vocabulary alone cannot predict a native resource access.
|
|
300
|
-
else if (['#EXT-X-KEY', '#EXT-X-MAP', '#EXT-X-MEDIA'].includes(tag)) {
|
|
301
|
-
const attrs = attributes(line.slice(colon + 1));
|
|
302
|
-
const uri = attrs.get('URI');
|
|
303
|
-
// hls.c resets key_type to KEY_NONE on every EXT-X-KEY, then
|
|
304
|
-
// enables only these exact methods. Missing/unknown methods do not
|
|
305
|
-
// open a key, even when URI names an existing or signed resource.
|
|
306
|
-
const disabledKey = tag === '#EXT-X-KEY' && !['AES-128', 'SAMPLE-AES'].includes(attrs.get('METHOD') ?? '');
|
|
307
|
-
if (uri && !disabledKey)
|
|
308
|
-
hlsReference(uri, { span, grammar: tag === '#EXT-X-MEDIA' ? 'hls' : undefined });
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
if (grammar === 'hls')
|
|
312
|
-
issues.push('Playlist selection, protocol policy, byte ranges and reloads are native live accesses');
|
|
313
|
-
}
|
|
314
|
-
else if (grammar === 'magick-script') {
|
|
315
|
-
const parsed = imageMagickScriptTokens(content);
|
|
316
|
-
// The existing frontend owns incremental script option grammar. Supplying
|
|
317
|
-
// tokens as script mode avoids reserving an implicit final output.
|
|
318
|
-
const result = await discoverImageMagick('magick-script', [textBytes('__observed_script__')], {
|
|
319
|
-
accessible: imageAccessible,
|
|
320
|
-
exists: imageExists,
|
|
321
|
-
isDirectory: async (path) => filesystem.directory?.(resolveLocation(path, cwdBase, true)),
|
|
322
|
-
read: async (path) => byteText(path) === '__observed_script__' ? content : undefined,
|
|
323
|
-
});
|
|
324
|
-
const adapted = imageMagickAccessReferences(result);
|
|
325
|
-
diagnostics = [...frontendIssues(result.deferred)];
|
|
326
|
-
if (diagnostics.some(issue => issue.reason === 'syntax'))
|
|
327
|
-
incomplete = true;
|
|
328
|
-
// Only the first occurrence is our entry wrapper. Script-local -script
|
|
329
|
-
// remains a native special option, never a recursive content reader.
|
|
330
|
-
for (const reference of adapted.references.slice(1)) {
|
|
331
|
-
add(reference.value, { ...reference, base: cwdBase });
|
|
332
|
-
const drawing = adapted.inline.get(reference);
|
|
333
|
-
if (drawing) {
|
|
334
|
-
const resources = await parseMvg(drawing, cwd, limits.nodes - references.length, imagePaths);
|
|
335
|
-
for (const resource of resources.references)
|
|
336
|
-
add(resource.value, resource);
|
|
337
|
-
if (resources.budget)
|
|
338
|
-
throw new ContentBudgetError();
|
|
339
|
-
if (!resources.complete) {
|
|
340
|
-
incomplete = true;
|
|
341
|
-
issues.push('MVG command expansion remains unresolved');
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
if (parsed.incomplete) {
|
|
346
|
-
incomplete = true;
|
|
347
|
-
issues.push('Incomplete script token; earlier operations remain ordered');
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
else if (grammar === 'magick-list') {
|
|
351
|
-
// Reuse ExpandFilenames/StringToArgv and image operand semantics together.
|
|
352
|
-
// Only this already observed wrapper has content. Its entries do not
|
|
353
|
-
// undergo another list/glob expansion in the pinned native reader.
|
|
354
|
-
const result = await discoverImageMagick('identify', [textBytes('@__observed_list__')], {
|
|
355
|
-
accessible: async (path) => byteText(path) === '@__observed_list__' ? false : imageAccessible(path),
|
|
356
|
-
exists: imageExists,
|
|
357
|
-
isDirectory: async (path) => filesystem.directory?.(resolveLocation(path, cwdBase, true)),
|
|
358
|
-
read: async (path) => byteText(path) === '__observed_list__' ? content : undefined,
|
|
359
|
-
});
|
|
360
|
-
diagnostics = [...frontendIssues(result.deferred)];
|
|
361
|
-
if (diagnostics.some(issue => issue.reason === 'syntax'))
|
|
362
|
-
incomplete = true;
|
|
363
|
-
for (const reference of imageMagickAccessReferences(result).references.slice(1)) {
|
|
364
|
-
// Empty/all-directory lists retain the original native @operand. This
|
|
365
|
-
// wrapper has no original spelling: never invent a filesystem resource
|
|
366
|
-
// from its internal name. Runtime owns the fallback and any effects.
|
|
367
|
-
if (reference.source === 'argv' && byteText(reference.value) === '@__observed_list__') {
|
|
368
|
-
issues.push('Native filename-list fallback requires the original runtime operand');
|
|
369
|
-
continue;
|
|
370
|
-
}
|
|
371
|
-
add(reference.value, { ...reference, base: cwdBase, source: byteText(location) });
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
const document = xml(content, limits.depth, grammar === 'dash' || grammar === 'magick-config');
|
|
376
|
-
if (document.error) {
|
|
377
|
-
// MSL executes SAX start-tag operations before a later syntax error.
|
|
378
|
-
// Preserve that parsed prefix without guessing how native recovery proceeds.
|
|
379
|
-
if (grammar !== 'msl')
|
|
380
|
-
throw document.error;
|
|
381
|
-
incomplete = true;
|
|
382
|
-
budget = document.error instanceof ContentBudgetError;
|
|
383
|
-
issues.push(document.error.message);
|
|
384
|
-
}
|
|
385
|
-
if (grammar === 'dash' && document.root.children[0]?.name !== 'mpd')
|
|
386
|
-
throw new Error('Missing DASH MPD root');
|
|
387
|
-
async function walk(node, bases, inheritedAddressing) {
|
|
388
|
-
let effective = bases;
|
|
389
|
-
// The pinned dashdec.c joins BaseURL content and never reads xml:base.
|
|
390
|
-
// SVG/XML resource readers still use XML base semantics.
|
|
391
|
-
if (grammar !== 'dash' && grammar !== 'magick-config' && node.attrs['xml:base'])
|
|
392
|
-
effective = bases.map(base => ({ kind: 'resource', value: resolveLocation(new TextEncoder().encode(node.attrs['xml:base']), base) }));
|
|
393
|
-
const children = node.children.filter(c => c.name === (grammar === 'dash' ? 'baseurl' : 'BaseURL'));
|
|
394
|
-
if (grammar === 'dash' && children.length) {
|
|
395
|
-
if (effective.length > limits.nodes / children.length)
|
|
396
|
-
throw new ContentBudgetError();
|
|
397
|
-
// dashdec.c reads BaseURL with xmlNodeGetContent. Whitespace is
|
|
398
|
-
// filename/URL data, including signed query and fragment suffixes.
|
|
399
|
-
effective = effective.flatMap(base => children.map(child => ({ kind: 'resource', value: resolveLocation(new TextEncoder().encode(xmlText(child)), base) })));
|
|
400
|
-
if (children.length > 1)
|
|
401
|
-
issues.push('Multiple DASH BaseURL alternatives require native selection');
|
|
402
|
-
if (node.name !== 'representation' && effective.some(base => {
|
|
403
|
-
const scheme = protocol(byteText(base.value));
|
|
404
|
-
return scheme !== 'http' && scheme !== 'https'
|
|
405
|
-
&& parseFilenameExpression(base.value, 'dash-resource').tokens.some(token => token.kind === 'template');
|
|
406
|
-
})) {
|
|
407
|
-
// resolve_content_path mutates the native BaseURL hierarchy. The
|
|
408
|
-
// selected reader can discard inherited local roots rather than
|
|
409
|
-
// perform RFC joining. Keep hints, but never qualify this guessed
|
|
410
|
-
// base or probe its template. Runtime supplies the actual operand.
|
|
411
|
-
incomplete = true;
|
|
412
|
-
(diagnostics ??= []).push({ reason: 'unresolved', detail: 'Inherited templated local BaseURL resolution requires the native reader\'s effective operand' });
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
const emit = (value, extra = {}) => {
|
|
416
|
-
for (const base of effective)
|
|
417
|
-
add(new TextEncoder().encode(value), { base, ...extra });
|
|
418
|
-
};
|
|
419
|
-
if (grammar === 'dash') {
|
|
420
|
-
if (['initialization', 'representationindex'].includes(node.name) && node.attrs.sourceURL !== undefined)
|
|
421
|
-
emit(node.attrs.sourceURL, { filenameDialect: 'dash-resource' });
|
|
422
|
-
if (node.name === 'segmenturl')
|
|
423
|
-
for (const key of ['media', 'index'])
|
|
424
|
-
if (node.attrs[key] !== undefined)
|
|
425
|
-
emit(node.attrs[key], { filenameDialect: 'dash-resource' });
|
|
426
|
-
if (node.name === 'segmenttemplate')
|
|
427
|
-
for (const key of ['media', 'initialization', 'index']) {
|
|
428
|
-
const value = node.attrs[key];
|
|
429
|
-
if (value !== undefined)
|
|
430
|
-
emit(value, { kind: value.includes('$') ? 'filename-expression' : undefined, filenameDialect: 'dash' });
|
|
431
|
-
}
|
|
432
|
-
const addressingChildren = node.children.filter(c => ['segmentlist', 'segmenttemplate', 'segmentbase'].includes(c.name));
|
|
433
|
-
if (addressingChildren.length > 1) {
|
|
434
|
-
incomplete = true;
|
|
435
|
-
issues.push('Ambiguous DASH segment addressing requires native validation');
|
|
436
|
-
}
|
|
437
|
-
const ownAddressing = addressingChildren[0];
|
|
438
|
-
const addressing = ownAddressing && ownAddressing.name === inheritedAddressing?.name
|
|
439
|
-
? { ...ownAddressing, attrs: { ...inheritedAddressing.attrs, ...ownAddressing.attrs }, children: [
|
|
440
|
-
...inheritedAddressing.children.filter(child => !ownAddressing.children.some(override => override.name === child.name)),
|
|
441
|
-
...ownAddressing.children,
|
|
442
|
-
] }
|
|
443
|
-
: ownAddressing ?? inheritedAddressing;
|
|
444
|
-
if (node.name === 'representation' && (!addressing || addressing.name === 'segmentbase')) {
|
|
445
|
-
for (const child of children)
|
|
446
|
-
for (const base of bases)
|
|
447
|
-
add(new TextEncoder().encode(xmlText(child)), { base, filenameDialect: 'dash-resource' });
|
|
448
|
-
}
|
|
449
|
-
if (node.attrs['xlink:href'])
|
|
450
|
-
emit(node.attrs['xlink:href'], { grammar: 'dash' });
|
|
451
|
-
if (node.name === 'representation' && addressing) {
|
|
452
|
-
await walk(addressing, effective);
|
|
453
|
-
for (const alternative of addressingChildren.slice(1))
|
|
454
|
-
await walk(alternative, effective);
|
|
455
|
-
}
|
|
456
|
-
for (const child of node.children)
|
|
457
|
-
if (child.name !== 'baseurl' && !['segmentlist', 'segmenttemplate', 'segmentbase'].includes(child.name))
|
|
458
|
-
await walk(child, effective, addressing);
|
|
459
|
-
return;
|
|
460
|
-
}
|
|
461
|
-
else if (grammar === 'msl') {
|
|
462
|
-
const name = node.name.toLowerCase();
|
|
463
|
-
if (name === 'read' || name === 'write') {
|
|
464
|
-
let output = [];
|
|
465
|
-
for (const [key, value] of Object.entries(node.attrs)) {
|
|
466
|
-
const bytes = new TextEncoder().encode(value);
|
|
467
|
-
const property = imageMagickPropertyReference(bytes, cwd);
|
|
468
|
-
if (property)
|
|
469
|
-
add(property.value, property);
|
|
470
|
-
if (key.toLowerCase() === 'filename') {
|
|
471
|
-
const resources = (await imageMagickReaderReferences(bytes, cwd, name === 'read' ? 'read' : 'write', imagePaths))
|
|
472
|
-
.map(reference => ({ ...reference, optional: property ? true : reference.optional }));
|
|
473
|
-
if (name === 'write')
|
|
474
|
-
output = resources;
|
|
475
|
-
else
|
|
476
|
-
for (const reference of resources)
|
|
477
|
-
add(reference.value, reference);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
// WriteImage runs once after all attributes, using the last filename.
|
|
481
|
-
for (const reference of output)
|
|
482
|
-
add(reference.value, reference);
|
|
483
|
-
}
|
|
484
|
-
// msl.c uses attribute *names* for GetImageCache/FileToStringInfo.
|
|
485
|
-
// Values are interpreted properties, never profile filenames.
|
|
486
|
-
if (name === 'profile')
|
|
487
|
-
for (const [key, value] of Object.entries(node.attrs)) {
|
|
488
|
-
const property = imageMagickPropertyReference(new TextEncoder().encode(value), cwd);
|
|
489
|
-
if (property)
|
|
490
|
-
add(property.value, property);
|
|
491
|
-
const colon = key.indexOf(':');
|
|
492
|
-
const filename = colon < 0 ? key : key.slice(colon + 1);
|
|
493
|
-
add(new TextEncoder().encode(filename), { base: cwdBase, literal: true, optional: true });
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
else if (grammar === 'svg') {
|
|
497
|
-
if (node.name === 'image' || node.name === 'use') {
|
|
498
|
-
const href = node.attrs.href ?? node.attrs['xlink:href'];
|
|
499
|
-
if (href && !href.startsWith('#'))
|
|
500
|
-
emit(href);
|
|
501
|
-
}
|
|
502
|
-
if (node.name === 'style')
|
|
503
|
-
issues.push('SVG CSS resources require runtime discovery');
|
|
504
|
-
}
|
|
505
|
-
else {
|
|
506
|
-
const attrs = Object.fromEntries(Object.entries(node.attrs).map(([key, value]) => [key.toLowerCase(), value]));
|
|
507
|
-
if (node.name === 'include' && attrs.file)
|
|
508
|
-
emit(attrs.file, { grammar: 'magick-config', literal: true });
|
|
509
|
-
if (node.name === 'type')
|
|
510
|
-
for (const field of ['glyphs', 'metrics'])
|
|
511
|
-
if (attrs[field]) {
|
|
512
|
-
// type.c SetTypeNodePath first tests the literal token against cwd,
|
|
513
|
-
// then concatenates the map directory even for an absolute token.
|
|
514
|
-
// Unknown metadata retains alternatives, never a selected font.
|
|
515
|
-
const value = new TextEncoder().encode(attrs[field]);
|
|
516
|
-
let accessible;
|
|
517
|
-
try {
|
|
518
|
-
accessible = await filesystem.accessible?.(resolveLocation(value, cwdBase, true));
|
|
519
|
-
}
|
|
520
|
-
catch { /* Advisory failure cannot expose a native font error. */ }
|
|
521
|
-
if (accessible !== false)
|
|
522
|
-
add(value, { base: cwdBase, literal: true, optional: accessible !== true });
|
|
523
|
-
if (accessible !== true) {
|
|
524
|
-
for (const base of effective) {
|
|
525
|
-
const map = byteText(base.value);
|
|
526
|
-
const path = textBytes(map.slice(0, map.lastIndexOf('/') + 1) + byteText(value));
|
|
527
|
-
let fallback;
|
|
528
|
-
try {
|
|
529
|
-
fallback = await filesystem.accessible?.(resolveLocation(path, cwdBase, true));
|
|
530
|
-
}
|
|
531
|
-
catch { /* Keep failed fallback metadata advisory too. */ }
|
|
532
|
-
add(value, { path, base, literal: true, optional: accessible !== false || fallback !== true });
|
|
533
|
-
}
|
|
534
|
-
issues.push('Font-map accessibility, fallback selection and later font reads remain live');
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
if (node.name === 'delegate' && attrs.command)
|
|
538
|
-
emit(attrs.command, { kind: 'delegate', base: cwdBase });
|
|
539
|
-
}
|
|
540
|
-
for (const child of node.children)
|
|
541
|
-
if (child.name !== 'BaseURL')
|
|
542
|
-
await walk(child, effective);
|
|
543
|
-
}
|
|
544
|
-
await walk(document.root, [resourceBase]);
|
|
545
|
-
if (grammar === 'dash')
|
|
546
|
-
issues.push('DASH timeline/template expansion and reloads require runtime discovery');
|
|
547
|
-
if (grammar === 'msl')
|
|
548
|
-
issues.push('MSL property replacement, image state and profile cache/fallback remain native live decisions');
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
catch (error) {
|
|
552
|
-
incomplete = true;
|
|
553
|
-
budget = error instanceof ContentBudgetError;
|
|
554
|
-
issues.push(error instanceof Error ? error.message : 'Unresolved content grammar');
|
|
555
|
-
}
|
|
556
|
-
return { references, issues, diagnostics, incomplete, budget };
|
|
557
|
-
}
|