framefields 2.4.1 → 2.4.3
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 +11 -33
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-DHuEMOtQ.d.mts → audio-BymXfAvH.d.mts} +3 -3
- package/dist/{audio-DHuEMOtQ.d.mts.map → audio-BymXfAvH.d.mts.map} +1 -1
- package/dist/{audio-CPApYcWF.mjs → audio-BzHHpImj.mjs} +4 -4
- package/dist/{audio-CPApYcWF.mjs.map → audio-BzHHpImj.mjs.map} +1 -1
- package/dist/{dist-SB9qfAko.mjs → dist-Bo2_zeCn.mjs} +2 -2
- package/dist/{dist-SB9qfAko.mjs.map → dist-Bo2_zeCn.mjs.map} +1 -1
- package/dist/{dist-CrK3rmyN.mjs → dist-DMa2BbYs.mjs} +45 -5
- package/dist/{dist-CrK3rmyN.mjs.map → dist-DMa2BbYs.mjs.map} +1 -1
- package/dist/{dist-ClyC_d66.mjs → dist-TrtLGPvc.mjs} +117 -40
- package/dist/dist-TrtLGPvc.mjs.map +1 -0
- package/dist/{dist-CspOG4V1.mjs → dist-hmWTJPik.mjs} +2 -2
- package/dist/{dist-CspOG4V1.mjs.map → dist-hmWTJPik.mjs.map} +1 -1
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +35 -35
- package/dist/{effects-DxylPSuI.mjs → effects-CiZjSwIh.mjs} +71 -3
- package/dist/effects-CiZjSwIh.mjs.map +1 -0
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-CsMDfqv9.mjs → fonts-Da1JDKpc.mjs} +2 -2
- package/dist/{fonts-CsMDfqv9.mjs.map → fonts-Da1JDKpc.mjs.map} +1 -1
- package/dist/{gpu-DtT5I4ME.mjs → gpu-CHIgM_YH.mjs} +2 -2
- package/dist/{gpu-DtT5I4ME.mjs.map → gpu-CHIgM_YH.mjs.map} +1 -1
- package/dist/{index-B1XcyMm8.d.mts → index-B0BZMhtw.d.mts} +7 -7
- package/dist/index-B0BZMhtw.d.mts.map +1 -0
- package/dist/{index-B2Xesdug.d.mts → index-CJkihekp.d.mts} +293 -143
- package/dist/index-CJkihekp.d.mts.map +1 -0
- package/dist/{index-DujpgUUq.d.mts → index-DGe83M-p.d.mts} +240 -152
- package/dist/index-DGe83M-p.d.mts.map +1 -0
- package/dist/{index-BxARm93R.d.mts → index-DIvWBm-q.d.mts} +41 -12
- package/dist/index-DIvWBm-q.d.mts.map +1 -0
- package/dist/{index-C0o3lLyA.d.mts → index-Dwf76Qep.d.mts} +16 -4
- package/dist/index-Dwf76Qep.d.mts.map +1 -0
- package/dist/{index-D-l-yCv6.d.mts → index-WMofVN02.d.mts} +3 -3
- package/dist/{index-D-l-yCv6.d.mts.map → index-WMofVN02.d.mts.map} +1 -1
- package/dist/index.d.mts +143 -73
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +165 -165
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-D2dMmokw.mjs → preview-5E4B96RD.mjs} +2 -2
- package/dist/{preview-D2dMmokw.mjs.map → preview-5E4B96RD.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-3ACCCPBN.mjs → chunk-37P2KIFE.mjs} +1 -1
- package/dist/preview-engine/{chunk-GNG4YH2W.mjs → chunk-3SOD7OTO.mjs} +1 -1
- package/dist/preview-engine/{chunk-DOCSX45C.mjs → chunk-54HE34HO.mjs} +1 -1
- package/dist/preview-engine/{chunk-WJJIISQJ.mjs → chunk-5CWQHYQP.mjs} +1 -1
- package/dist/preview-engine/{chunk-Z6UKUHPU.mjs → chunk-5EVEGKWT.mjs} +1 -1
- package/dist/preview-engine/chunk-5JSSXOBB.mjs +1 -0
- package/dist/preview-engine/chunk-5SVJIGPK.mjs +1 -0
- package/dist/preview-engine/{chunk-5RQHNB6Y.mjs → chunk-6MBYREBG.mjs} +1 -1
- package/dist/preview-engine/{chunk-WACWOKEP.mjs → chunk-6TGNQ5FD.mjs} +1 -1
- package/dist/preview-engine/{chunk-HUKAC5MJ.mjs → chunk-6WKWYUOM.mjs} +1 -1
- package/dist/preview-engine/{chunk-SWXVITCQ.mjs → chunk-7J4OK4VE.mjs} +1 -1
- package/dist/preview-engine/{chunk-O6NRIXS5.mjs → chunk-7QE6II7R.mjs} +1 -1
- package/dist/preview-engine/{chunk-34ACEGNW.mjs → chunk-A2775RSO.mjs} +1 -1
- package/dist/preview-engine/{chunk-FFGBUS76.mjs → chunk-AKYUVDKM.mjs} +1 -1
- package/dist/preview-engine/{chunk-6K7US2WD.mjs → chunk-AWX4YGC5.mjs} +1 -1
- package/dist/preview-engine/{chunk-QJZKIY4H.mjs → chunk-AY2ZIXST.mjs} +1 -1
- package/dist/preview-engine/{chunk-LK3T65RB.mjs → chunk-BIS3W4Z5.mjs} +1 -1
- package/dist/preview-engine/{chunk-7QJUC6YY.mjs → chunk-C45ROXI6.mjs} +14 -14
- package/dist/preview-engine/{chunk-GMGGDADT.mjs → chunk-CEIOI4HO.mjs} +1 -1
- package/dist/preview-engine/{chunk-5E5J4KT4.mjs → chunk-E7DH7EPX.mjs} +1 -1
- package/dist/preview-engine/{chunk-NNQUIVTE.mjs → chunk-EEOUHDUD.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZKPQGQE3.mjs → chunk-FDNR4PRC.mjs} +1 -1
- package/dist/preview-engine/chunk-FSAELHVT.mjs +1 -0
- package/dist/preview-engine/{chunk-C6Z7H2RZ.mjs → chunk-GIH5QURF.mjs} +1 -1
- package/dist/preview-engine/{chunk-RDP6QROU.mjs → chunk-GQN35VLT.mjs} +1 -1
- package/dist/preview-engine/{chunk-PZF6T7DM.mjs → chunk-ILBZQLUF.mjs} +1 -1
- package/dist/preview-engine/{chunk-2DDBSI75.mjs → chunk-JJA4G3OU.mjs} +1 -1
- package/dist/preview-engine/{chunk-KAQUNOVB.mjs → chunk-JJYNYYPA.mjs} +1 -1
- package/dist/preview-engine/{chunk-NRAZV5OA.mjs → chunk-JTUK7ZXK.mjs} +1 -1
- package/dist/preview-engine/{chunk-HDGFNBYK.mjs → chunk-KJ2DTA77.mjs} +1 -1
- package/dist/preview-engine/{chunk-7LVOSEGN.mjs → chunk-LMZHCWXP.mjs} +1 -1
- package/dist/preview-engine/{chunk-A5OVKZ52.mjs → chunk-LSBCFJZM.mjs} +1 -1
- package/dist/preview-engine/{chunk-FLPSWDX4.mjs → chunk-MJN3LOZ7.mjs} +1 -1
- package/dist/preview-engine/{chunk-WCZ5DKZ4.mjs → chunk-N3PRZLZJ.mjs} +1 -1
- package/dist/preview-engine/{chunk-XOEEGC4Z.mjs → chunk-NVTPJUNG.mjs} +1 -1
- package/dist/preview-engine/{chunk-67SSYK7D.mjs → chunk-O3NOB5IB.mjs} +1 -1
- package/dist/preview-engine/{chunk-LIQA5OOU.mjs → chunk-O5LA63CK.mjs} +1 -1
- package/dist/preview-engine/chunk-OLLY3Q7M.mjs +1 -0
- package/dist/preview-engine/{chunk-FFMPC7QA.mjs → chunk-OZDZQMTB.mjs} +1 -1
- package/dist/preview-engine/chunk-PCWWKYFO.mjs +1 -0
- package/dist/preview-engine/{chunk-G4J662EL.mjs → chunk-S7NG26UG.mjs} +1 -1
- package/dist/preview-engine/{chunk-FHKBALVI.mjs → chunk-TFFG5YFI.mjs} +1 -1
- package/dist/preview-engine/{chunk-HNNIVJ2K.mjs → chunk-U4SQUTDV.mjs} +1 -1
- package/dist/preview-engine/{chunk-JX22B2FS.mjs → chunk-UDDK5QZF.mjs} +1 -1
- package/dist/preview-engine/{chunk-KT35IPCF.mjs → chunk-UMF7NNUA.mjs} +1 -1
- package/dist/preview-engine/{chunk-GQLZXCW3.mjs → chunk-UVWGZUKZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-NQZKBFC6.mjs → chunk-V6DAD4S4.mjs} +14 -14
- package/dist/preview-engine/{chunk-R26SY5D4.mjs → chunk-V6LCSK6Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-2GIWWDE4.mjs → chunk-W3QGP5XF.mjs} +1 -1
- package/dist/preview-engine/{chunk-RKVB47IA.mjs → chunk-XTPEGKOZ.mjs} +1 -1
- package/dist/preview-engine/chunk-YJ6GWVL4.mjs +174 -0
- package/dist/preview-engine/{chunk-LLDIDE5Q.mjs → chunk-YQYLBXOX.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +17 -17
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-WR6MKT5S.mjs → renderers-2A7YDJMJ.mjs} +1 -1
- package/dist/preview-engine/renderers-2AD6AHAO.mjs +1 -0
- package/dist/preview-engine/{renderers-K7B5PQBT.mjs → renderers-2GE5HE56.mjs} +1 -1
- package/dist/preview-engine/{renderers-SW7FIEKO.mjs → renderers-35G4KCQ2.mjs} +1 -1
- package/dist/preview-engine/renderers-37UYW266.mjs +1 -0
- package/dist/preview-engine/renderers-3YHETAPE.mjs +1 -0
- package/dist/preview-engine/renderers-43LBWRY2.mjs +1 -0
- package/dist/preview-engine/{renderers-TY7DVI7E.mjs → renderers-4H34AFW2.mjs} +1 -1
- package/dist/preview-engine/renderers-4I4UDLDR.mjs +1 -0
- package/dist/preview-engine/renderers-5EITT2FW.mjs +1 -0
- package/dist/preview-engine/{renderers-AZYJFJLO.mjs → renderers-5OGAF66H.mjs} +1 -1
- package/dist/preview-engine/{renderers-UMPOVFRA.mjs → renderers-6GYRMHGQ.mjs} +1 -1
- package/dist/preview-engine/{renderers-RKZGYWDG.mjs → renderers-7M3YOI7E.mjs} +1 -1
- package/dist/preview-engine/renderers-7UKFQ75V.mjs +1 -0
- package/dist/preview-engine/renderers-AIRDDXRB.mjs +1 -0
- package/dist/preview-engine/{renderers-MBSOKWKB.mjs → renderers-ATL5ARUV.mjs} +1 -1
- package/dist/preview-engine/renderers-BUOGMWAA.mjs +1 -0
- package/dist/preview-engine/renderers-C4XIAG3F.mjs +1 -0
- package/dist/preview-engine/{renderers-4AJWVIJG.mjs → renderers-DFJDEPCU.mjs} +1 -1
- package/dist/preview-engine/{renderers-6JZ4HYIU.mjs → renderers-DKOWLKDE.mjs} +1 -1
- package/dist/preview-engine/renderers-ELARGDRC.mjs +1 -0
- package/dist/preview-engine/renderers-EU5VM2S2.mjs +1 -0
- package/dist/preview-engine/{renderers-NJLGPPX7.mjs → renderers-FNPXT2EH.mjs} +1 -1
- package/dist/preview-engine/renderers-GEPP3YKK.mjs +1 -0
- package/dist/preview-engine/renderers-IQNZQWYU.mjs +1 -0
- package/dist/preview-engine/renderers-J6DEIWTU.mjs +1 -0
- package/dist/preview-engine/{renderers-U55KRIOV.mjs → renderers-JQ7AI473.mjs} +1 -1
- package/dist/preview-engine/renderers-JTVCE5PV.mjs +1 -0
- package/dist/preview-engine/{renderers-CK3ZL3GM.mjs → renderers-K23EAM2J.mjs} +1 -1
- package/dist/preview-engine/renderers-KCNUETAD.mjs +1 -0
- package/dist/preview-engine/renderers-KKBHXAWS.mjs +1 -0
- package/dist/preview-engine/{renderers-UDOBX433.mjs → renderers-KW75FYFG.mjs} +1 -1
- package/dist/preview-engine/renderers-LER7SUT2.mjs +1 -0
- package/dist/preview-engine/{renderers-GAIUTII6.mjs → renderers-LF6W5P2I.mjs} +1 -1
- package/dist/preview-engine/{renderers-FM6A5YR4.mjs → renderers-MHDLRY3S.mjs} +1 -1
- package/dist/preview-engine/renderers-MOERLDWF.mjs +1 -0
- package/dist/preview-engine/{renderers-XKHNBARD.mjs → renderers-NJAKGI25.mjs} +1 -1
- package/dist/preview-engine/renderers-NPKRNXAT.mjs +1 -0
- package/dist/preview-engine/renderers-O57YIIAO.mjs +1 -0
- package/dist/preview-engine/renderers-OPUIAD7I.mjs +1 -0
- package/dist/preview-engine/renderers-PENUAXDD.mjs +1 -0
- package/dist/preview-engine/renderers-PFCI7ZFW.mjs +1 -0
- package/dist/preview-engine/{renderers-HZHEGONW.mjs → renderers-PM4Q5QOW.mjs} +1 -1
- package/dist/preview-engine/renderers-Q4HDP2IE.mjs +1 -0
- package/dist/preview-engine/{renderers-GUPEJK3O.mjs → renderers-Q6AO5M54.mjs} +1 -1
- package/dist/preview-engine/{renderers-75TL7RLS.mjs → renderers-QJNGN722.mjs} +1 -1
- package/dist/preview-engine/renderers-QMHUOKMM.mjs +1 -0
- package/dist/preview-engine/renderers-R26YPECG.mjs +1 -0
- package/dist/preview-engine/renderers-TAFDMFEA.mjs +1 -0
- package/dist/preview-engine/{renderers-IHRFEZNP.mjs → renderers-TFEDHXPY.mjs} +1 -1
- package/dist/preview-engine/renderers-TMZLWQP2.mjs +1 -0
- package/dist/preview-engine/renderers-TP6ZMGU4.mjs +1 -0
- package/dist/preview-engine/renderers-TY63VTZB.mjs +1 -0
- package/dist/preview-engine/{renderers-IJDQJEE5.mjs → renderers-U2ZWRL25.mjs} +1 -1
- package/dist/preview-engine/renderers-UBO4ZNE6.mjs +1 -0
- package/dist/preview-engine/renderers-UCNQ536S.mjs +1 -0
- package/dist/preview-engine/{renderers-TCNPEANL.mjs → renderers-VD5GHHK6.mjs} +1 -1
- package/dist/preview-engine/{renderers-BDWVXYTW.mjs → renderers-WNMRLGZS.mjs} +1 -1
- package/dist/preview-engine/{renderers-FKH5S64C.mjs → renderers-WOLTH5VI.mjs} +1 -1
- package/dist/preview-engine/renderers-WOZQDE4A.mjs +1 -0
- package/dist/preview-engine/renderers-X2XGDF3R.mjs +1 -0
- package/dist/preview-engine/renderers-XG3BDROH.mjs +1 -0
- package/dist/preview-engine/{renderers-R4WMM6IX.mjs → renderers-XPO2WQNF.mjs} +1 -1
- package/dist/preview-engine/renderers-XS4CFZWR.mjs +1 -0
- package/dist/preview-engine/{renderers-FADYGSLK.mjs → renderers-XTCBHTHC.mjs} +1 -1
- package/dist/preview-engine/{renderers-LVLVJHOL.mjs → renderers-XTRFEQO4.mjs} +1 -1
- package/dist/preview-engine/renderers-ZQDMRWN7.mjs +1 -0
- package/dist/preview-engine/{renderers-7CPYTCNW.mjs → renderers-ZRR7BLB7.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-C2cJayA1.mjs → program-KwDdbC0-.mjs} +78 -38
- package/dist/program-KwDdbC0-.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-C1E5Rt5q.mjs → renderer-1P3yS8YM.mjs} +3 -3
- package/dist/{renderer-C1E5Rt5q.mjs.map → renderer-1P3yS8YM.mjs.map} +1 -1
- package/dist/renderer-5C41E6gT.mjs +5 -0
- package/dist/renderer-6SXF9Ykm.mjs +5 -0
- package/dist/renderer-B2C2w3Wr.mjs +5 -0
- package/dist/renderer-B2QSfPYZ.mjs +5 -0
- package/dist/{renderer-Bkrk0M0r.mjs → renderer-B4jxP8vF.mjs} +3 -3
- package/dist/{renderer-Bkrk0M0r.mjs.map → renderer-B4jxP8vF.mjs.map} +1 -1
- package/dist/{renderer-Csss5GFQ.mjs → renderer-B4ydDdo6.mjs} +2 -2
- package/dist/{renderer-Csss5GFQ.mjs.map → renderer-B4ydDdo6.mjs.map} +1 -1
- package/dist/renderer-B5cQcMl1.mjs +5 -0
- package/dist/{renderer-B3e4LSE6.mjs → renderer-B9ssmkbx.mjs} +3 -3
- package/dist/{renderer-B3e4LSE6.mjs.map → renderer-B9ssmkbx.mjs.map} +1 -1
- package/dist/{renderer-UcdqCarR.mjs → renderer-BAoKytKL.mjs} +3 -3
- package/dist/{renderer-UcdqCarR.mjs.map → renderer-BAoKytKL.mjs.map} +1 -1
- package/dist/{renderer-Cw6Sagih.mjs → renderer-BCLmYH4S.mjs} +3 -3
- package/dist/{renderer-Cw6Sagih.mjs.map → renderer-BCLmYH4S.mjs.map} +1 -1
- package/dist/renderer-BDhD8Yab.mjs +3 -0
- package/dist/{renderer-Za4D9hej.mjs → renderer-BHLYKy8b.mjs} +3 -3
- package/dist/{renderer-Za4D9hej.mjs.map → renderer-BHLYKy8b.mjs.map} +1 -1
- package/dist/{renderer-apeDrNXM.mjs → renderer-BI8QhEj9.mjs} +3 -3
- package/dist/{renderer-apeDrNXM.mjs.map → renderer-BI8QhEj9.mjs.map} +1 -1
- package/dist/{renderer-CCGzT6bX.mjs → renderer-BMLJgnbU.mjs} +2 -2
- package/dist/renderer-BSDdTHDh.mjs +5 -0
- package/dist/{renderer-CcoUNzlQ.mjs → renderer-BT0x6KPK.mjs} +3 -3
- package/dist/{renderer-CcoUNzlQ.mjs.map → renderer-BT0x6KPK.mjs.map} +1 -1
- package/dist/renderer-BTUjk8uY.mjs +5 -0
- package/dist/{renderer-RDCax5CK.mjs → renderer-BUwHWIf7.mjs} +3 -3
- package/dist/{renderer-RDCax5CK.mjs.map → renderer-BUwHWIf7.mjs.map} +1 -1
- package/dist/{renderer-DTw-W0Yz.mjs → renderer-B_b8-ztW.mjs} +3 -3
- package/dist/{renderer-DTw-W0Yz.mjs.map → renderer-B_b8-ztW.mjs.map} +1 -1
- package/dist/{renderer-DwVOxdzC.mjs → renderer-BaJQx0Bp.mjs} +3 -3
- package/dist/{renderer-DwVOxdzC.mjs.map → renderer-BaJQx0Bp.mjs.map} +1 -1
- package/dist/renderer-Bcey5Gvk.mjs +5 -0
- package/dist/renderer-Bd2MuOeJ.mjs +5 -0
- package/dist/renderer-Bd5A0zer.mjs +5 -0
- package/dist/{renderer-Dwu_zfdL.mjs → renderer-Bhfl-WFX.mjs} +3 -3
- package/dist/{renderer-Dwu_zfdL.mjs.map → renderer-Bhfl-WFX.mjs.map} +1 -1
- package/dist/{renderer-BjCHW9Jp.mjs → renderer-Bkq1PT0g.mjs} +2 -2
- package/dist/{renderer-DjwITRvg.mjs → renderer-Blm4Dv_h.mjs} +2 -2
- package/dist/{renderer-BTd2sWDC.mjs → renderer-BtWWpFvl.mjs} +3 -3
- package/dist/{renderer-BTd2sWDC.mjs.map → renderer-BtWWpFvl.mjs.map} +1 -1
- package/dist/{renderer-92eLJg24.mjs → renderer-C-z6bxj9.mjs} +4 -4
- package/dist/{renderer-92eLJg24.mjs.map → renderer-C-z6bxj9.mjs.map} +1 -1
- package/dist/{renderer-EZp_IIPK.mjs → renderer-C0ds-UfM.mjs} +3 -3
- package/dist/{renderer-EZp_IIPK.mjs.map → renderer-C0ds-UfM.mjs.map} +1 -1
- package/dist/{renderer-B4RpSd4A.mjs → renderer-C1U85w9f.mjs} +2 -2
- package/dist/{renderer-B4RpSd4A.mjs.map → renderer-C1U85w9f.mjs.map} +1 -1
- package/dist/{renderer-X0eKSD7v.mjs → renderer-C4vHq0X8.mjs} +3 -3
- package/dist/{renderer-X0eKSD7v.mjs.map → renderer-C4vHq0X8.mjs.map} +1 -1
- package/dist/{renderer--ruTGlPo.mjs → renderer-C4xvz_Ft.mjs} +3 -3
- package/dist/{renderer--ruTGlPo.mjs.map → renderer-C4xvz_Ft.mjs.map} +1 -1
- package/dist/{renderer-ByCX4JYg.mjs → renderer-C5WkQZGR.mjs} +3 -3
- package/dist/{renderer-ByCX4JYg.mjs.map → renderer-C5WkQZGR.mjs.map} +1 -1
- package/dist/{renderer-CqtIbe5n.mjs → renderer-CAi-lhR2.mjs} +2 -2
- package/dist/{renderer-CqtIbe5n.mjs.map → renderer-CAi-lhR2.mjs.map} +1 -1
- package/dist/renderer-CC-WlYa2.mjs +5 -0
- package/dist/{renderer-DZJJHCtm.mjs → renderer-CDky5Gva.mjs} +3 -3
- package/dist/{renderer-DZJJHCtm.mjs.map → renderer-CDky5Gva.mjs.map} +1 -1
- package/dist/{renderer-yyUpCeWb.mjs → renderer-CE83KHgr.mjs} +2 -2
- package/dist/{renderer-yyUpCeWb.mjs.map → renderer-CE83KHgr.mjs.map} +1 -1
- package/dist/{renderer-CNb-DG00.mjs → renderer-CLxQ4rU6.mjs} +441 -177
- package/dist/renderer-CLxQ4rU6.mjs.map +1 -0
- package/dist/{renderer-BBAbZfBl.mjs → renderer-CPLfsRe1.mjs} +4 -4
- package/dist/{renderer-BBAbZfBl.mjs.map → renderer-CPLfsRe1.mjs.map} +1 -1
- package/dist/{renderer-CDOobs18.mjs → renderer-CS8VMTp1.mjs} +3 -3
- package/dist/{renderer-CDOobs18.mjs.map → renderer-CS8VMTp1.mjs.map} +1 -1
- package/dist/{renderer-D0vom99O.mjs → renderer-CTYKUnDq.mjs} +2 -2
- package/dist/{renderer-D0vom99O.mjs.map → renderer-CTYKUnDq.mjs.map} +1 -1
- package/dist/{renderer-DILUmb-e.mjs → renderer-CUPWHfEY.mjs} +3 -3
- package/dist/{renderer-DILUmb-e.mjs.map → renderer-CUPWHfEY.mjs.map} +1 -1
- package/dist/renderer-Cb0qf1UG.mjs +5 -0
- package/dist/renderer-CfX13dgQ.mjs +5 -0
- package/dist/renderer-ChFkRLrv.mjs +5 -0
- package/dist/{renderer-CDUxAtsk.mjs → renderer-Ci6YMa4u.mjs} +4 -4
- package/dist/{renderer-CDUxAtsk.mjs.map → renderer-Ci6YMa4u.mjs.map} +1 -1
- package/dist/{renderer-DKfwlE4e.mjs → renderer-CjQAYeYz.mjs} +3 -3
- package/dist/{renderer-DKfwlE4e.mjs.map → renderer-CjQAYeYz.mjs.map} +1 -1
- package/dist/renderer-CjkfJj5R.mjs +5 -0
- package/dist/renderer-Ck7Lu6c9.mjs +5 -0
- package/dist/{renderer-CJ4bxCld.mjs → renderer-CrwYWVsV.mjs} +2 -2
- package/dist/renderer-CuquqG_c.mjs +5 -0
- package/dist/{renderer-CzRqzp8P.mjs → renderer-CwO8T8l8.mjs} +3 -3
- package/dist/{renderer-CzRqzp8P.mjs.map → renderer-CwO8T8l8.mjs.map} +1 -1
- package/dist/renderer-Cwz2E4QD.mjs +5 -0
- package/dist/{renderer-BjvNEbML.mjs → renderer-Cy4a31rZ.mjs} +2 -2
- package/dist/{renderer-BjvNEbML.mjs.map → renderer-Cy4a31rZ.mjs.map} +1 -1
- package/dist/{renderer-If8JOkBi.mjs → renderer-CzgDJcot.mjs} +2 -2
- package/dist/{renderer-If8JOkBi.mjs.map → renderer-CzgDJcot.mjs.map} +1 -1
- package/dist/renderer-Czkt9YYp.mjs +5 -0
- package/dist/{renderer-D2-V9nQq.mjs → renderer-D4No_jA4.mjs} +3 -3
- package/dist/{renderer-D2-V9nQq.mjs.map → renderer-D4No_jA4.mjs.map} +1 -1
- package/dist/{renderer-DaSxr9fM.mjs → renderer-D96Pu8yX.mjs} +3 -3
- package/dist/{renderer-DaSxr9fM.mjs.map → renderer-D96Pu8yX.mjs.map} +1 -1
- package/dist/{renderer-B0gPTXhe.mjs → renderer-DBKyuPl1.mjs} +3 -3
- package/dist/{renderer-B0gPTXhe.mjs.map → renderer-DBKyuPl1.mjs.map} +1 -1
- package/dist/{renderer-CxqPeATd.d.mts → renderer-DBtt-7wt.d.mts} +2 -2
- package/dist/{renderer-CxqPeATd.d.mts.map → renderer-DBtt-7wt.d.mts.map} +1 -1
- package/dist/{renderer-DcBGYN3V.mjs → renderer-DCsTCvdo.mjs} +3 -3
- package/dist/{renderer-DcBGYN3V.mjs.map → renderer-DCsTCvdo.mjs.map} +1 -1
- package/dist/renderer-DFTIhSdJ.mjs +5 -0
- package/dist/renderer-DFaa-Ats.mjs +5 -0
- package/dist/{renderer-DzSMeQBC.mjs → renderer-DGT141pN.mjs} +3 -3
- package/dist/{renderer-DzSMeQBC.mjs.map → renderer-DGT141pN.mjs.map} +1 -1
- package/dist/{renderer-JvcR1vYI.mjs → renderer-DHUlVqST.mjs} +2 -2
- package/dist/{renderer-JvcR1vYI.mjs.map → renderer-DHUlVqST.mjs.map} +1 -1
- package/dist/renderer-DIHXKvPl.mjs +5 -0
- package/dist/{renderer-Cv4lchUP.mjs → renderer-DK9etIAz.mjs} +3 -3
- package/dist/{renderer-Cv4lchUP.mjs.map → renderer-DK9etIAz.mjs.map} +1 -1
- package/dist/renderer-DMzOqVM3.mjs +5 -0
- package/dist/renderer-DOId5U8x.mjs +5 -0
- package/dist/{renderer-BkWd4-YO.mjs → renderer-DOvzHN60.mjs} +2 -2
- package/dist/{renderer-BkWd4-YO.mjs.map → renderer-DOvzHN60.mjs.map} +1 -1
- package/dist/{renderer-B1QREs7J.mjs → renderer-DOxmmN6Q.mjs} +3 -3
- package/dist/{renderer-B1QREs7J.mjs.map → renderer-DOxmmN6Q.mjs.map} +1 -1
- package/dist/{renderer-V5uEyDFz.mjs → renderer-DP_In2uT.mjs} +3 -3
- package/dist/{renderer-V5uEyDFz.mjs.map → renderer-DP_In2uT.mjs.map} +1 -1
- package/dist/renderer-DQXFOup8.mjs +5 -0
- package/dist/{renderer-ut1GqW89.mjs → renderer-DQeUc1yY.mjs} +3 -3
- package/dist/{renderer-ut1GqW89.mjs.map → renderer-DQeUc1yY.mjs.map} +1 -1
- package/dist/renderer-DRt3BSTj.mjs +5 -0
- package/dist/{renderer-DFJQ6v0F.mjs → renderer-DSbRWfgl.mjs} +2 -2
- package/dist/{renderer-DFJQ6v0F.mjs.map → renderer-DSbRWfgl.mjs.map} +1 -1
- package/dist/{renderer-DaqWTx7s.mjs → renderer-DVFFVy9v.mjs} +3 -3
- package/dist/{renderer-DaqWTx7s.mjs.map → renderer-DVFFVy9v.mjs.map} +1 -1
- package/dist/{renderer-BPixWnmY.mjs → renderer-DWG4Podv.mjs} +3 -3
- package/dist/{renderer-BPixWnmY.mjs.map → renderer-DWG4Podv.mjs.map} +1 -1
- package/dist/{renderer-BljMOvry.mjs → renderer-DXSIstnn.mjs} +3 -3
- package/dist/{renderer-BljMOvry.mjs.map → renderer-DXSIstnn.mjs.map} +1 -1
- package/dist/{renderer-DjBCWxYy.mjs → renderer-DYbgd6Ye.mjs} +3 -3
- package/dist/{renderer-DjBCWxYy.mjs.map → renderer-DYbgd6Ye.mjs.map} +1 -1
- package/dist/{renderer-BDCy8NgT.mjs → renderer-DZhIe8Gj.mjs} +3 -3
- package/dist/{renderer-BDCy8NgT.mjs.map → renderer-DZhIe8Gj.mjs.map} +1 -1
- package/dist/{renderer-BMKFzfSQ.mjs → renderer-DcOT5c0t.mjs} +3 -3
- package/dist/{renderer-BMKFzfSQ.mjs.map → renderer-DcOT5c0t.mjs.map} +1 -1
- package/dist/renderer-Di_5vQ81.mjs +6 -0
- package/dist/renderer-DkmpsPIa.mjs +5 -0
- package/dist/renderer-Ds6wd9Gk.mjs +5 -0
- package/dist/{renderer-BTigwMQp.mjs → renderer-Du8eOWWU.mjs} +3 -3
- package/dist/{renderer-BTigwMQp.mjs.map → renderer-Du8eOWWU.mjs.map} +1 -1
- package/dist/renderer-Dv4p0lp9.mjs +5 -0
- package/dist/renderer-DzWoOlVc.mjs +5 -0
- package/dist/{renderer-7y5Cj8rV.mjs → renderer-GapR_An3.mjs} +3 -3
- package/dist/{renderer-7y5Cj8rV.mjs.map → renderer-GapR_An3.mjs.map} +1 -1
- package/dist/{renderer-Czxgaygb.mjs → renderer-GbVNyv-E.mjs} +6 -6
- package/dist/{renderer-Czxgaygb.mjs.map → renderer-GbVNyv-E.mjs.map} +1 -1
- package/dist/{renderer-NizuhHsH.mjs → renderer-I3Wxk1tL.mjs} +3 -3
- package/dist/{renderer-NizuhHsH.mjs.map → renderer-I3Wxk1tL.mjs.map} +1 -1
- package/dist/renderer-IOz63OWg.mjs +5 -0
- package/dist/renderer-JkSrsUa5.mjs +5 -0
- package/dist/{renderer-gRMkQabv.mjs → renderer-OEpwc9Zk.mjs} +3 -3
- package/dist/{renderer-gRMkQabv.mjs.map → renderer-OEpwc9Zk.mjs.map} +1 -1
- package/dist/renderer-Ocs1Djwu.mjs +5 -0
- package/dist/{renderer-rXgqgAjw.mjs → renderer-OsA-Lg4d.mjs} +3 -3
- package/dist/{renderer-rXgqgAjw.mjs.map → renderer-OsA-Lg4d.mjs.map} +1 -1
- package/dist/{renderer-Bi6W4RSn.mjs → renderer-P4OPsD82.mjs} +2 -2
- package/dist/{renderer-Bi6W4RSn.mjs.map → renderer-P4OPsD82.mjs.map} +1 -1
- package/dist/{renderer-BwpgDLYO.mjs → renderer-PuN2_AL_.mjs} +3 -3
- package/dist/{renderer-BwpgDLYO.mjs.map → renderer-PuN2_AL_.mjs.map} +1 -1
- package/dist/{renderer-CNuVJ4nG.mjs → renderer-QaN-aejD.mjs} +2 -2
- package/dist/{renderer-CNuVJ4nG.mjs.map → renderer-QaN-aejD.mjs.map} +1 -1
- package/dist/renderer-Wdn7m_uN.mjs +5 -0
- package/dist/{renderer-BwwZB2mt.mjs → renderer-f7A01ArI.mjs} +4 -4
- package/dist/{renderer-BwwZB2mt.mjs.map → renderer-f7A01ArI.mjs.map} +1 -1
- package/dist/{renderer-G1pMJH5C.mjs → renderer-gm0zoV4t.mjs} +2 -2
- package/dist/{renderer-G1pMJH5C.mjs.map → renderer-gm0zoV4t.mjs.map} +1 -1
- package/dist/{renderer-DScyMHpJ.mjs → renderer-kNjMhwiZ.mjs} +2 -2
- package/dist/{renderer-DScyMHpJ.mjs.map → renderer-kNjMhwiZ.mjs.map} +1 -1
- package/dist/renderer-mKpjaoE3.mjs +5 -0
- package/dist/{renderer-Cbsnj9vV.mjs → renderer-mqUBkx-a.mjs} +3 -3
- package/dist/{renderer-Cbsnj9vV.mjs.map → renderer-mqUBkx-a.mjs.map} +1 -1
- package/dist/{renderer-DyyIXLQK.mjs → renderer-plx7_lUQ.mjs} +3 -3
- package/dist/{renderer-DyyIXLQK.mjs.map → renderer-plx7_lUQ.mjs.map} +1 -1
- package/dist/{renderer-D6BXR7P4.mjs → renderer-qYhNf6iB.mjs} +2 -2
- package/dist/{renderer-D6BXR7P4.mjs.map → renderer-qYhNf6iB.mjs.map} +1 -1
- package/dist/{renderer-CeiCJCg4.mjs → renderer-y6k54AM6.mjs} +3 -3
- package/dist/{renderer-CeiCJCg4.mjs.map → renderer-y6k54AM6.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs → renderers-CP8CFWDs-D1FHpA7I.mjs} +3 -3
- package/dist/{renderers-CP8CFWDs-DzGXDs5p.mjs.map → renderers-CP8CFWDs-D1FHpA7I.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-C5nOrRmn.mjs → signals-BwdVfK3p.mjs} +3 -3
- package/dist/{signals-C5nOrRmn.mjs.map → signals-BwdVfK3p.mjs.map} +1 -1
- package/package.json +57 -57
- package/dist/dist-ClyC_d66.mjs.map +0 -1
- package/dist/effects-DxylPSuI.mjs.map +0 -1
- package/dist/index-B1XcyMm8.d.mts.map +0 -1
- package/dist/index-B2Xesdug.d.mts.map +0 -1
- package/dist/index-BxARm93R.d.mts.map +0 -1
- package/dist/index-C0o3lLyA.d.mts.map +0 -1
- package/dist/index-DujpgUUq.d.mts.map +0 -1
- package/dist/preview-engine/chunk-266DECPQ.mjs +0 -1
- package/dist/preview-engine/chunk-CPFPY35C.mjs +0 -1
- package/dist/preview-engine/chunk-NTVDL3RS.mjs +0 -1
- package/dist/preview-engine/chunk-UZBVCYRY.mjs +0 -174
- package/dist/preview-engine/chunk-XDMZP3E2.mjs +0 -1
- package/dist/preview-engine/chunk-YKMBRUAE.mjs +0 -1
- package/dist/preview-engine/renderers-3CXFGRE7.mjs +0 -1
- package/dist/preview-engine/renderers-3FC3WCJN.mjs +0 -1
- package/dist/preview-engine/renderers-3S2FM33K.mjs +0 -1
- package/dist/preview-engine/renderers-53ZTBI3C.mjs +0 -1
- package/dist/preview-engine/renderers-5USBVCMQ.mjs +0 -1
- package/dist/preview-engine/renderers-65G6BLEA.mjs +0 -1
- package/dist/preview-engine/renderers-7XU7BXE7.mjs +0 -1
- package/dist/preview-engine/renderers-BFXM32BC.mjs +0 -1
- package/dist/preview-engine/renderers-CDXHCWWK.mjs +0 -1
- package/dist/preview-engine/renderers-CLUN7WU6.mjs +0 -1
- package/dist/preview-engine/renderers-DTB4HEXU.mjs +0 -1
- package/dist/preview-engine/renderers-EFKNRLYF.mjs +0 -1
- package/dist/preview-engine/renderers-G2K7ZA5O.mjs +0 -1
- package/dist/preview-engine/renderers-GTUO5LIV.mjs +0 -1
- package/dist/preview-engine/renderers-HSJIVP57.mjs +0 -1
- package/dist/preview-engine/renderers-IHACBWXI.mjs +0 -1
- package/dist/preview-engine/renderers-IO3BVVJ7.mjs +0 -1
- package/dist/preview-engine/renderers-IR772VSN.mjs +0 -1
- package/dist/preview-engine/renderers-L6TRJOXA.mjs +0 -1
- package/dist/preview-engine/renderers-N6H6RSF2.mjs +0 -1
- package/dist/preview-engine/renderers-O5NFQYRQ.mjs +0 -1
- package/dist/preview-engine/renderers-O6V3OEKX.mjs +0 -1
- package/dist/preview-engine/renderers-OODA27UH.mjs +0 -1
- package/dist/preview-engine/renderers-RIGW33ZI.mjs +0 -1
- package/dist/preview-engine/renderers-RUZRBQ4K.mjs +0 -1
- package/dist/preview-engine/renderers-SKB2GGKS.mjs +0 -1
- package/dist/preview-engine/renderers-T4D2TASM.mjs +0 -1
- package/dist/preview-engine/renderers-T74XV36Q.mjs +0 -1
- package/dist/preview-engine/renderers-TOPW2UM3.mjs +0 -1
- package/dist/preview-engine/renderers-UO5G3Y2G.mjs +0 -1
- package/dist/preview-engine/renderers-UOV7VOJJ.mjs +0 -1
- package/dist/preview-engine/renderers-UWKSTSTA.mjs +0 -1
- package/dist/preview-engine/renderers-VHPAOUTA.mjs +0 -1
- package/dist/preview-engine/renderers-YEQRQJFC.mjs +0 -1
- package/dist/preview-engine/renderers-YRZ3WODX.mjs +0 -1
- package/dist/preview-engine/renderers-YUTFGVRY.mjs +0 -1
- package/dist/preview-engine/renderers-YXOTRKPA.mjs +0 -1
- package/dist/preview-engine/renderers-ZOU5ARVD.mjs +0 -1
- package/dist/preview-engine/renderers-ZW75LQTR.mjs +0 -1
- package/dist/program-C2cJayA1.mjs.map +0 -1
- package/dist/renderer-BAhZeUUn.mjs +0 -5
- package/dist/renderer-BHAE_dKq.mjs +0 -5
- package/dist/renderer-BNYZY3FE.mjs +0 -5
- package/dist/renderer-BSvubMvI.mjs +0 -5
- package/dist/renderer-B_M_yhTc.mjs +0 -5
- package/dist/renderer-B_xSsTuy.mjs +0 -5
- package/dist/renderer-BePHurAU.mjs +0 -5
- package/dist/renderer-BfZquJrW.mjs +0 -5
- package/dist/renderer-BuY5ypB2.mjs +0 -5
- package/dist/renderer-BvOQgFHo.mjs +0 -5
- package/dist/renderer-C7NkSvUz.mjs +0 -5
- package/dist/renderer-CIuxV2q1.mjs +0 -5
- package/dist/renderer-CKp97tSQ.mjs +0 -5
- package/dist/renderer-CNb-DG00.mjs.map +0 -1
- package/dist/renderer-CY89dTFR.mjs +0 -5
- package/dist/renderer-C_B_4Bl0.mjs +0 -5
- package/dist/renderer-Cd87JOjP.mjs +0 -5
- package/dist/renderer-Cev6orIK.mjs +0 -6
- package/dist/renderer-Cewf6UPh.mjs +0 -5
- package/dist/renderer-CnHsMLIv.mjs +0 -5
- package/dist/renderer-CoxuAr7b.mjs +0 -5
- package/dist/renderer-CrdG7trA.mjs +0 -5
- package/dist/renderer-Cu5MFgbk.mjs +0 -5
- package/dist/renderer-CuOjhtoo.mjs +0 -5
- package/dist/renderer-D2_0g6Oi.mjs +0 -5
- package/dist/renderer-D62FwolD.mjs +0 -5
- package/dist/renderer-DDNY9N7I.mjs +0 -5
- package/dist/renderer-DF_ONJ3v.mjs +0 -5
- package/dist/renderer-DbzrVHEE.mjs +0 -5
- package/dist/renderer-DlYchp1v.mjs +0 -5
- package/dist/renderer-DqcUNP8J.mjs +0 -5
- package/dist/renderer-DqvFhEQj.mjs +0 -5
- package/dist/renderer-DxBav2bE.mjs +0 -5
- package/dist/renderer-GvSRoQje.mjs +0 -5
- package/dist/renderer-KP7Ita9g.mjs +0 -5
- package/dist/renderer-Pc8dyNXt.mjs +0 -5
- package/dist/renderer-ezRCmU09.mjs +0 -3
- package/dist/renderer-h6ev1ogx.mjs +0 -5
package/README.md
CHANGED
|
@@ -20,6 +20,16 @@
|
|
|
20
20
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
|
+
**Add to your agent**
|
|
24
|
+
|
|
25
|
+
Teach Claude Code, Cursor, Codex, Copilot, Hermes, and 70+ others how to author, animate, and render compositions:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx skills add gatewai-dev/framefields
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
23
33
|
Framefields is built for coding agents. It packs the capabilities usually split across three desktop creative suites—Photoshop-style compositing & VFX, After Effects-style typography & motion graphics, and Blender-style 3D scenes & cameras—into a single lightweight npm package.
|
|
24
34
|
|
|
25
35
|
- **Zero Headless-Browser Overhead** — No Chromium, no Puppeteer, no DOM reflows, and no screenshot pipeline. Renders directly on native GPU hardware via Dawn / WebGPU / Metal / Vulkan.
|
|
@@ -68,22 +78,6 @@ Every frame is rendered by framefields directly from TypeScript in [`examples/`]
|
|
|
68
78
|
|
|
69
79
|
---
|
|
70
80
|
|
|
71
|
-
## Agent Skills
|
|
72
|
-
|
|
73
|
-
Teach Claude Code, Cursor, Codex, Copilot, or Hermes how to author, animate, and render compositions:
|
|
74
|
-
|
|
75
|
-
**Claude Code**
|
|
76
|
-
```text
|
|
77
|
-
/plugin install framefields
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Cursor, Codex, Hermes, Copilot & others**
|
|
81
|
-
```bash
|
|
82
|
-
npx skills add gatewai-dev/framefields
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
81
|
## Installation
|
|
88
82
|
|
|
89
83
|
```bash
|
|
@@ -167,23 +161,7 @@ process.exit(0);
|
|
|
167
161
|
|
|
168
162
|
## AI Gateway
|
|
169
163
|
|
|
170
|
-
Framefields
|
|
171
|
-
|
|
172
|
-
To get started, store your API key in `.env` and create a dedicated script (such as `src/generate.ts`) that calls `ai.subscribe()` to render media into `assets/`. Because AI generation is asynchronous and billed per execution, assets are generated once, saved locally, and tracked with Git LFS—ready to be loaded cleanly into `Layer.image()`, `Layer.video()`, or `Layer.audio()` inside your frame-accurate compositions without recurring cost or latency during previews and renders. Browse the full model catalog and schemas at [**framefields.dev/models**](https://framefields.dev/models).
|
|
173
|
-
|
|
174
|
-
```typescript
|
|
175
|
-
import { ai } from "framefields";
|
|
176
|
-
|
|
177
|
-
// 1. Generate an image asset with Flux Schnell
|
|
178
|
-
const still = await ai.subscribe<{ images: { url: string }[] }>("flux/schnell", {
|
|
179
|
-
input: { prompt: "Cyberpunk alley in the rain, volumetric neon, 35mm", image_size: "landscape_16_9" },
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
// 2. Animate it into video with Kling or generate music & voiceovers
|
|
183
|
-
const clip = await ai.subscribe<{ video: { url: string } }>("kling-video/v2.1/standard/image-to-video", {
|
|
184
|
-
input: { prompt: "Slow forward tracking shot through neon rain", image_url: still.data.images[0].url, duration: "5" },
|
|
185
|
-
});
|
|
186
|
-
```
|
|
164
|
+
Framefields provides built-in access to the [**AI Gateway**](https://framefields.dev/models), allowing agents and developers to generate cinematic video, images, music, and voiceovers directly from code using hundreds of hosted models. Explore the full model catalog in the [**AI Gateway**](https://framefields.dev/models) or read the integration guide in the [**documentation**](https://framefields.dev/docs/guides/ai/).
|
|
187
165
|
|
|
188
166
|
---
|
|
189
167
|
|
package/dist/audio/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as WebGPUAudioProcessor } from "../index-
|
|
2
|
-
import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-
|
|
3
|
-
import "../index-
|
|
4
|
-
import { t as _default$1 } from "../renderer-
|
|
1
|
+
import { N as WebGPUAudioProcessor } from "../index-DGe83M-p.mjs";
|
|
2
|
+
import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-Dwf76Qep.mjs";
|
|
3
|
+
import "../index-B0BZMhtw.mjs";
|
|
4
|
+
import { t as _default$1 } from "../renderer-DBtt-7wt.mjs";
|
|
5
5
|
export { EncodeWavOptions, RenderedSfx, SfxRenderContext, SfxTrigger, WebGPUAudioProcessor, _default as audioFadeRenderer, _default$1 as audioSignalExtractorRenderer, _default$2 as compressorRenderer, _default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, _default$4 as noiseGateRenderer, _default$5 as parametricEqRenderer, renderSfx, _default$6 as reverbRenderer, softLimit, _default$7 as stereoPanningRenderer };
|
package/dist/audio/index.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "../chunk-GBe2k3y8.mjs";
|
|
2
|
-
import { g as WebGPUAudioProcessor } from "../dist-
|
|
3
|
-
import { t as renderers_default$1 } from "../renderers-CP8CFWDs-
|
|
4
|
-
import { i as mixAudioTracks } from "../dist-
|
|
5
|
-
import { t as renderers_default$2 } from "../renderer-
|
|
6
|
-
import { t as renderers_default$3 } from "../renderer-
|
|
7
|
-
import { t as renderers_default } from "../renderer-
|
|
8
|
-
import { t as renderers_default$4 } from "../renderer
|
|
9
|
-
import { t as renderers_default$5 } from "../renderer-
|
|
10
|
-
import { t as renderers_default$6 } from "../renderer-
|
|
2
|
+
import { g as WebGPUAudioProcessor } from "../dist-hmWTJPik.mjs";
|
|
3
|
+
import { t as renderers_default$1 } from "../renderers-CP8CFWDs-D1FHpA7I.mjs";
|
|
4
|
+
import { i as mixAudioTracks } from "../dist-DMa2BbYs.mjs";
|
|
5
|
+
import { t as renderers_default$2 } from "../renderer-DcOT5c0t.mjs";
|
|
6
|
+
import { t as renderers_default$3 } from "../renderer-D4No_jA4.mjs";
|
|
7
|
+
import { t as renderers_default } from "../renderer-CwO8T8l8.mjs";
|
|
8
|
+
import { t as renderers_default$4 } from "../renderer-C4xvz_Ft.mjs";
|
|
9
|
+
import { t as renderers_default$5 } from "../renderer-DYbgd6Ye.mjs";
|
|
10
|
+
import { t as renderers_default$6 } from "../renderer-I3Wxk1tL.mjs";
|
|
11
11
|
import "../renderer-B-BcgA6d.mjs";
|
|
12
|
-
import { t as renderers_default$7 } from "../renderer-
|
|
12
|
+
import { t as renderers_default$7 } from "../renderer-1P3yS8YM.mjs";
|
|
13
13
|
import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "../audio-DJeVoE8b.mjs";
|
|
14
14
|
|
|
15
15
|
export { WebGPUAudioProcessor, renderers_default as audioFadeRenderer, renderers_default$1 as audioSignalExtractorRenderer, renderers_default$2 as compressorRenderer, renderers_default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, renderers_default$4 as noiseGateRenderer, renderers_default$5 as parametricEqRenderer, renderSfx, renderers_default$6 as reverbRenderer, softLimit, renderers_default$7 as stereoPanningRenderer };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as NodeRendererPlugin } from "./index-
|
|
1
|
+
import { Oi as FrameSignal, o as AudioSignalComputeConfig } from "./index-DGe83M-p.mjs";
|
|
2
|
+
import { n as NodeRendererPlugin } from "./index-B0BZMhtw.mjs";
|
|
3
3
|
|
|
4
4
|
//#region ../../nodes/node-modulate/dist/renderer.d.mts
|
|
5
5
|
//#region src/renderers/index.d.ts
|
|
@@ -34,4 +34,4 @@ declare const AudioSignal: {
|
|
|
34
34
|
};
|
|
35
35
|
//#endregion
|
|
36
36
|
export { _default as i, AudioSignalOptions as n, ExtractedAudioSignalsBundle as r, AudioSignal as t };
|
|
37
|
-
//# sourceMappingURL=audio-
|
|
37
|
+
//# sourceMappingURL=audio-BymXfAvH.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-
|
|
1
|
+
{"version":3,"file":"audio-BymXfAvH.d.mts","names":["_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../../nodes/node-modulate/dist/renderer.d.mts","../src/signals/audio.ts"],"sourcesContent":["import * as _framefields_node_sdk_renderer0 from \"@framefields/node-sdk/renderer\";\n\n//#region src/renderers/index.d.ts\ndeclare const _default: Readonly<_framefields_node_sdk_renderer0.NodeRendererPlugin>;\n//#endregion\nexport { _default as default };\n//# sourceMappingURL=renderer.d.mts.map"],"mappings":";;;;;cAGcC,UAAUE,SAASH;AAHiD;;;UCYjE,kBAAA,SAA2B;;EDT9BC,WAAsE,CAAA,EAAA,MAAA;;;UCenE,2BAAA;EANA,OAAA,EAOP,WAPO,CAAmB,MAAA,CAAA;EAMnB,IAAA,EAEV,WAFU,CAAA,MAAA,CAAA;EACP,IAAA,EAEH,WAFG,CAAA,MAAA,CAAA;EACH,MAAA,EAEE,WAFF,CAAA,MAAA,CAAA;EACA,WAAA,EAAA,MAAA;EACE,SAAA,EAAA,MAAA;EAAW,UAAA,EAAA,MAAA;EAaP,WAAA,EAAA,OAuGZ;EArGW,OAAA,EAAA,OAAA;EAED,aAAA,EAAA,OAAA;EACC,UAAA,EAAA,OAAA;EAAR,UAAA,EAAA,OAAA;EAoFO,YAAA,EAAA,OAAA;EACC,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAD,cA1FE,WA0FF,EAAA;gCAxFC,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { A as ensureDevice, St as AudioSignalComputePipeline } from "./dist-
|
|
3
|
-
import { n as decodeAudioSource } from "./dist-
|
|
1
|
+
import { Tt as frameArraySignal } from "./dist-TrtLGPvc.mjs";
|
|
2
|
+
import { A as ensureDevice, St as AudioSignalComputePipeline } from "./dist-hmWTJPik.mjs";
|
|
3
|
+
import { n as decodeAudioSource } from "./dist-DMa2BbYs.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/signals/audio.ts
|
|
6
6
|
const AudioSignal = {
|
|
@@ -82,4 +82,4 @@ const AudioSignal = {
|
|
|
82
82
|
|
|
83
83
|
//#endregion
|
|
84
84
|
export { AudioSignal as t };
|
|
85
|
-
//# sourceMappingURL=audio-
|
|
85
|
+
//# sourceMappingURL=audio-BzHHpImj.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-
|
|
1
|
+
{"version":3,"file":"audio-BzHHpImj.mjs","names":[],"sources":["../src/signals/audio.ts"],"sourcesContent":["import { decodeAudioSource } from \"@framefields/compositions\";\nimport {\n\ttype FrameSignal,\n\tframeArraySignal,\n\ttype GPUTextureBinding,\n} from \"@framefields/core\";\nimport {\n\ttype AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\n} from \"@framefields/webgpu-renderers\";\n\nexport interface AudioSignalOptions extends AudioSignalComputeConfig {\n\tfps?: number;\n\ttargetWidth?: number;\n\tpreviewMode?: \"waveform\" | \"envelope\" | \"beat_markers\" | \"spectrum\";\n}\n\nexport interface ExtractedAudioSignalsBundle {\n\tprimary: FrameSignal<number>;\n\tbeat: FrameSignal<number>;\n\tbass: FrameSignal<number>;\n\tenergy: FrameSignal<number>;\n\tdurationSec: number;\n\tnumFrames: number;\n\tsampleRate: number;\n\ttextureView: unknown;\n\ttexture: unknown;\n\tprimaryBuffer: unknown;\n\tbeatBuffer: unknown;\n\tbassBuffer: unknown;\n\tenergyBuffer: unknown;\n\tseekFrame(frame: number): void;\n}\n\nexport const AudioSignal = {\n\tasync extractFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst targetWidth = options.targetWidth ?? 512;\n\n\t\tconst extracted = await AudioSignalComputePipeline.extractFeatures(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t\ttargetWidth,\n\t\t);\n\n\t\tconst samples = extracted.channelSamples ?? {\n\t\t\tprimary: new Float32Array(extracted.numFrames),\n\t\t\tbeat: new Float32Array(extracted.numFrames),\n\t\t\tbass: new Float32Array(extracted.numFrames),\n\t\t\tenergy: new Float32Array(extracted.numFrames),\n\t\t};\n\n\t\tconst primaryBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_primary\",\n\t\t\tchannel: \"primary\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.primaryBuffer,\n\t\t\tstats: extracted.stats.primary,\n\t\t};\n\t\tconst beatBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_beat\",\n\t\t\tchannel: \"beat\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.beatBuffer,\n\t\t\tstats: extracted.stats.beat,\n\t\t};\n\t\tconst bassBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_bass\",\n\t\t\tchannel: \"bass\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.bassBuffer,\n\t\t\tstats: extracted.stats.bass,\n\t\t};\n\t\tconst energyBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_energy\",\n\t\t\tchannel: \"energy\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.energyBuffer,\n\t\t\tstats: extracted.stats.energy,\n\t\t};\n\n\t\tconst primary = frameArraySignal(samples.primary, fps, primaryBinding);\n\t\tconst beat = frameArraySignal(samples.beat, fps, beatBinding);\n\t\tconst bass = frameArraySignal(samples.bass, fps, bassBinding);\n\t\tconst energy = frameArraySignal(samples.energy, fps, energyBinding);\n\n\t\treturn {\n\t\t\tprimary,\n\t\t\tbeat,\n\t\t\tbass,\n\t\t\tenergy,\n\t\t\tdurationSec: extracted.durationSec,\n\t\t\tnumFrames: extracted.numFrames,\n\t\t\tsampleRate,\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tprimaryBuffer: extracted.primaryBuffer,\n\t\t\tbeatBuffer: extracted.beatBuffer,\n\t\t\tbassBuffer: extracted.bassBuffer,\n\t\t\tenergyBuffer: extracted.energyBuffer,\n\t\t\tseekFrame(frame: number) {\n\t\t\t\tprimary.seekFrame?.(frame);\n\t\t\t\tbeat.seekFrame?.(frame);\n\t\t\t\tbass.seekFrame?.(frame);\n\t\t\t\tenergy.seekFrame?.(frame);\n\t\t\t},\n\t\t};\n\t},\n\n\tasync extract(\n\t\tsource: string,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst decoded = await decodeAudioSource(source);\n\t\tif (!decoded || decoded.channels.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to decode audio source for feature extraction: ${source}`,\n\t\t\t);\n\t\t}\n\t\treturn AudioSignal.extractFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n};\n"],"mappings":";;;;;AAmCA,MAAa,cAAc;CAC1B,MAAM,oBACL,UACA,YACA,UAA8B,EAAE,EACO;EACvC,MAAM,SAAS,MAAM,cAAc;EACnC,MAAM,MAAM,QAAQ,OAAO;EAC3B,MAAM,cAAc,QAAQ,eAAe;EAE3C,MAAM,YAAY,MAAM,2BAA2B,gBAClD,QACA,UACA,YACA,KACA,SACA,YACA;EAED,MAAM,UAAU,UAAU,kBAAkB;GAC3C,SAAS,IAAI,aAAa,UAAU,UAAU;GAC9C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,QAAQ,IAAI,aAAa,UAAU,UAAU;GAC7C;EAED,MAAM,iBAAoC;GACzC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,gBAAmC;GACxC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EAED,MAAM,UAAU,iBAAiB,QAAQ,SAAS,KAAK,eAAe;EACtE,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,SAAS,iBAAiB,QAAQ,QAAQ,KAAK,cAAc;AAEnE,SAAO;GACN;GACA;GACA;GACA;GACA,aAAa,UAAU;GACvB,WAAW,UAAU;GACrB;GACA,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,eAAe,UAAU;GACzB,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,cAAc,UAAU;GACxB,UAAU,OAAe;AACxB,YAAQ,YAAY,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,WAAO,YAAY,MAAM;;GAE1B;;CAGF,MAAM,QACL,QACA,UAA8B,EAAE,EACO;EACvC,MAAM,UAAU,MAAM,kBAAkB,OAAO;AAC/C,MAAI,CAAC,WAAW,QAAQ,SAAS,WAAW,EAC3C,OAAM,IAAI,MACT,yDAAyD,SACzD;AAEF,SAAO,YAAY,oBAClB,QAAQ,UACR,QAAQ,YACR,QACA;;CAEF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as FileDataSchema, J as SingleOutputGenericSchema, ct as VirtualMediaDataSchema,
|
|
1
|
+
import { C as FileDataSchema, J as SingleOutputGenericSchema, ct as VirtualMediaDataSchema, ht as createOutputItemSchema } from "./dist-TrtLGPvc.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
|
|
4
4
|
//#region ../node-sdk/dist/index.mjs
|
|
@@ -99,4 +99,4 @@ const OperationInputsSchema = z.record(z.string(), z.object({
|
|
|
99
99
|
|
|
100
100
|
//#endregion
|
|
101
101
|
export { configBuilder as a, VideoResultSchema as i, ImageResultSchema as n, SignalResultSchema as r, ColorSchema as t };
|
|
102
|
-
//# sourceMappingURL=dist-
|
|
102
|
+
//# sourceMappingURL=dist-Bo2_zeCn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-
|
|
1
|
+
{"version":3,"file":"dist-Bo2_zeCn.mjs","names":["ConfigBuilder"],"sources":["../../node-sdk/dist/index.mjs"],"sourcesContent":["import { WebGPURegistry, audioRegistry, defineRenderer, isHandleConnected, isSignal, registerWebGPURenderer, resolveBoolean, resolveFrameNumber, resolveHandleParam, resolveNumber, resolveParam, resolveSignalField, resolveString, solveHomography, unwrapFrameParam, webgpuRegistry } from \"./renderer.mjs\";\nimport { FileDataSchema, MultiOutputGenericSchema, SingleOutputGenericSchema, VirtualMediaDataSchema, createOutputItemSchema } from \"@framefields/core\";\nimport { z } from \"zod\";\n\n//#region shared/config-builder.ts\nvar ConfigBuilder = class ConfigBuilder {\n\tconstructor(shape = {}, options = { strict: true }) {\n\t\tthis.shape = shape;\n\t\tthis.options = options;\n\t}\n\tfield(key, schema, options) {\n\t\tconst withMeta = options ? schema.meta({ ...options }) : schema;\n\t\treturn new ConfigBuilder({\n\t\t\t...this.shape,\n\t\t\t[key]: withMeta\n\t\t}, this.options);\n\t}\n\tbuild() {\n\t\tconst base = z.object(this.shape);\n\t\treturn { schema: this.options.strict !== false ? base.strict() : base };\n\t}\n};\nfunction configBuilder(options = { strict: true }) {\n\treturn new ConfigBuilder({}, options);\n}\n\n//#endregion\n//#region shared/schemas.ts\nconst COMPOSITE_OPERATIONS = [\n\t\"source-over\",\n\t\"source-in\",\n\t\"source-out\",\n\t\"source-atop\",\n\t\"destination-over\",\n\t\"destination-in\",\n\t\"destination-out\",\n\t\"destination-atop\",\n\t\"lighter\",\n\t\"copy\",\n\t\"xor\",\n\t\"multiply\",\n\t\"screen\",\n\t\"overlay\",\n\t\"darken\",\n\t\"lighten\",\n\t\"color-dodge\",\n\t\"color-burn\",\n\t\"hard-light\",\n\t\"soft-light\",\n\t\"difference\",\n\t\"exclusion\",\n\t\"hue\",\n\t\"saturation\",\n\t\"color\",\n\t\"luminosity\"\n];\nconst GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);\nconst ColorSchema = z.string().optional();\nconst PercentageSchema = z.number().min(0).max(100);\nconst DimensionSchema = z.number().min(0).optional();\nconst AnimationSchema = z.object({ animations: z.array(z.object({\n\tid: z.string(),\n\ttype: z.enum([\n\t\t\"fade-in\",\n\t\t\"fade-out\",\n\t\t\"slide-in-left\",\n\t\t\"slide-in-right\",\n\t\t\"slide-in-top\",\n\t\t\"slide-in-bottom\",\n\t\t\"zoom-in\",\n\t\t\"zoom-out\",\n\t\t\"rotate-cw\",\n\t\t\"rotate-ccw\",\n\t\t\"bounce\",\n\t\t\"shake\"\n\t]),\n\tvalue: z.number()\n})).optional() });\nconst StrokeSchema = z.object({\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional().default(\"inside\"),\n\tstrokeRadius: z.number().min(0).optional()\n});\nconst ImageResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Image\"), FileDataSchema));\nconst VideoResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Video\"), VirtualMediaDataSchema));\nconst AudioResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Audio\"), VirtualMediaDataSchema));\nconst TextResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Text\"), z.string()));\nconst NumberResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Number\"), z.number()));\nconst SignalResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.unknown()));\n/** The `inputs` map an operation carries: one entry per connected handle. */\nconst OperationInputsSchema = z.record(z.string(), z.object({\n\tconnectionValid: z.boolean(),\n\toutputItem: z.object({\n\t\ttype: z.string(),\n\t\tdata: z.unknown()\n\t}).nullable().optional()\n}));\n\n//#endregion\nexport { AnimationSchema, AudioResultSchema, COMPOSITE_OPERATIONS, ColorSchema, ConfigBuilder, DimensionSchema, FileDataSchema, GlobalCompositeOperation, ImageResultSchema, MultiOutputGenericSchema, NumberResultSchema, OperationInputsSchema, PercentageSchema, SignalResultSchema, SingleOutputGenericSchema, StrokeSchema, TextResultSchema, VideoResultSchema, VirtualMediaDataSchema, WebGPURegistry, audioRegistry, configBuilder, createOutputItemSchema, defineRenderer, isHandleConnected, isSignal, registerWebGPURenderer, resolveBoolean, resolveFrameNumber, resolveHandleParam, resolveNumber, resolveParam, resolveSignalField, resolveString, solveHomography, unwrapFrameParam, webgpuRegistry };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;AAKA,IAAI,gBAAgB,MAAMA,gBAAc;CACvC,YAAY,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,MAAM,EAAE;AACnD,OAAK,QAAQ;AACb,OAAK,UAAU;;CAEhB,MAAM,KAAK,QAAQ,SAAS;EAC3B,MAAM,WAAW,UAAU,OAAO,KAAK,EAAE,GAAG,SAAS,CAAC,GAAG;AACzD,SAAO,IAAIA,gBAAc;GACxB,GAAG,KAAK;IACP,MAAM;GACP,EAAE,KAAK,QAAQ;;CAEjB,QAAQ;EACP,MAAM,OAAO,EAAE,OAAO,KAAK,MAAM;AACjC,SAAO,EAAE,QAAQ,KAAK,QAAQ,WAAW,QAAQ,KAAK,QAAQ,GAAG,MAAM;;;AAGzE,SAAS,cAAc,UAAU,EAAE,QAAQ,MAAM,EAAE;AAClD,QAAO,IAAI,cAAc,EAAE,EAAE,QAAQ;;AAKtC,MAAM,uBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,MAAM,2BAA2B,EAAE,KAAK,qBAAqB;AAC7D,MAAM,cAAc,EAAE,QAAQ,CAAC,UAAU;AACzC,MAAM,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AACnD,MAAM,kBAAkB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;AACpD,MAAM,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO;CAC/D,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC;CACF,OAAO,EAAE,QAAQ;CACjB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AACjB,MAAM,eAAe,EAAE,OAAO;CAC7B,QAAQ;CACR,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU,CAAC,QAAQ,SAAS;CAC/B,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,CAAC;AACF,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,eAAe,CAAC;AAC/G,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,uBAAuB,CAAC;AACvH,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,uBAAuB,CAAC;AACvH,MAAM,mBAAmB,0BAA0B,uBAAuB,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzG,MAAM,qBAAqB,0BAA0B,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7G,MAAM,qBAAqB,0BAA0B,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;;AAE9G,MAAM,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO;CAC3D,iBAAiB,EAAE,SAAS;CAC5B,YAAY,EAAE,OAAO;EACpB,MAAM,EAAE,QAAQ;EAChB,MAAM,EAAE,SAAS;EACjB,CAAC,CAAC,UAAU,CAAC,UAAU;CACxB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ht as isSignal, Mt as getMediaType, Ot as getActiveMediaMetadata, p as DEFAULT_DURATION_MS, sn as resolveMediaMimeType, xn as updateClockSignals } from "./dist-TrtLGPvc.mjs";
|
|
2
2
|
import { t as audioRegistry, u as webgpuRegistry } from "./renderer-BSitV56h.mjs";
|
|
3
|
-
import { C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, L as inputStore, N as getHeadlessFontPath, Nn as signalRegistry, O as drawSvgNode, Q as registerHeadlessFont, S as drawCaptionNode, T as drawLottieNode, at as resolveMediaSourceUrl, et as shaderStore, it as GetFontAssetUrl, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, w as drawImageNode } from "./dist-
|
|
3
|
+
import { C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, L as inputStore, N as getHeadlessFontPath, Nn as signalRegistry, O as drawSvgNode, Q as registerHeadlessFont, S as drawCaptionNode, T as drawLottieNode, at as resolveMediaSourceUrl, et as shaderStore, it as GetFontAssetUrl, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, w as drawImageNode } from "./dist-hmWTJPik.mjs";
|
|
4
4
|
import { AudioSampleSink } from "mediabunny";
|
|
5
5
|
|
|
6
6
|
//#region ../renderers/dist/index.mjs
|
|
@@ -1293,11 +1293,24 @@ var MixBus = class {
|
|
|
1293
1293
|
for (let c = 0; c < 2; c++) addInto(dest[c], src[c], start);
|
|
1294
1294
|
}
|
|
1295
1295
|
};
|
|
1296
|
+
/** A clip's file name for progress, without paths or signed-URL queries. */
|
|
1297
|
+
function sourceLabel(url) {
|
|
1298
|
+
if (url.startsWith("data:")) return "inline audio";
|
|
1299
|
+
const name = url.split(/[?#]/)[0].split(/[\\/]/).pop();
|
|
1300
|
+
return name ? decodeURIComponentSafe(name) : "audio";
|
|
1301
|
+
}
|
|
1302
|
+
function decodeURIComponentSafe(s) {
|
|
1303
|
+
try {
|
|
1304
|
+
return decodeURIComponent(s);
|
|
1305
|
+
} catch {
|
|
1306
|
+
return s;
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1296
1309
|
/**
|
|
1297
1310
|
* Recursively parses the VirtualMediaData tree and mixes all active audio tracks
|
|
1298
1311
|
* into a single unified stereo PCM stream (Float32Array channels).
|
|
1299
1312
|
*/
|
|
1300
|
-
async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device, renderId) {
|
|
1313
|
+
async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device, renderId, options = {}) {
|
|
1301
1314
|
mediaLogger.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${fps}, targetSampleRate: ${targetSampleRate}`);
|
|
1302
1315
|
await waitForDelayRender();
|
|
1303
1316
|
shaderStore.registerSignalsFromComposition(renderId, virtualMedia);
|
|
@@ -1414,6 +1427,14 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
|
|
|
1414
1427
|
}
|
|
1415
1428
|
await yieldToMain();
|
|
1416
1429
|
}
|
|
1430
|
+
if (mediaType === "Audio" || mediaType === "Video") {
|
|
1431
|
+
clipsDone++;
|
|
1432
|
+
options.onProgress?.({
|
|
1433
|
+
done: clipsDone,
|
|
1434
|
+
total: clipsTotal,
|
|
1435
|
+
...params.sourceUrl && { source: sourceLabel(params.sourceUrl) }
|
|
1436
|
+
});
|
|
1437
|
+
}
|
|
1417
1438
|
}
|
|
1418
1439
|
if (node.children) for (const child of node.children) {
|
|
1419
1440
|
const childChannels = await traverse(child, totalSeekSec, totalClockFrames, volume, speedMultiplier, actualDurationFrames);
|
|
@@ -1451,7 +1472,26 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
|
|
|
1451
1472
|
} else await processSegment(null, 0);
|
|
1452
1473
|
return bus.channels;
|
|
1453
1474
|
}
|
|
1454
|
-
const
|
|
1475
|
+
const normalized = normalizeTimeline(virtualMedia, fps);
|
|
1476
|
+
let clipsTotal = 0;
|
|
1477
|
+
let clipsDone = 0;
|
|
1478
|
+
if (options.onProgress) {
|
|
1479
|
+
const count = (node) => {
|
|
1480
|
+
if (!node) return;
|
|
1481
|
+
const op = node.operation;
|
|
1482
|
+
if (op?.op === "source") {
|
|
1483
|
+
const mediaType = getMediaType(node);
|
|
1484
|
+
if (mediaType === "Audio" || mediaType === "Video") clipsTotal += Math.max(1, op.timeline?.segments?.length ?? 0);
|
|
1485
|
+
}
|
|
1486
|
+
for (const child of node.children ?? []) count(child);
|
|
1487
|
+
};
|
|
1488
|
+
count(normalized);
|
|
1489
|
+
options.onProgress({
|
|
1490
|
+
done: 0,
|
|
1491
|
+
total: clipsTotal
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
const rootChannels = await traverse(normalized, 0, 0, 1, 1, null);
|
|
1455
1495
|
const mixedChannels = rootChannels?.every((ch) => ch.length === totalTargetSamples) && rootChannels[0] !== rootChannels[1] ? rootChannels : [new Float32Array(totalTargetSamples), new Float32Array(totalTargetSamples)];
|
|
1456
1496
|
const [outputLeft, outputRight] = mixedChannels;
|
|
1457
1497
|
if (rootChannels && mixedChannels !== rootChannels) for (let c = 0; c < 2; c++) {
|
|
@@ -1483,4 +1523,4 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
|
|
|
1483
1523
|
|
|
1484
1524
|
//#endregion
|
|
1485
1525
|
export { spring as _, resolveLayerDuration as a, computeStrokeRect as c, measureSpring as d, measureText as f, requiresIsolation as g, preloadFont as h, mixAudioTracks as i, interpolate as l, preloadCompositionFonts as m, decodeAudioSource as n, Easing as o, measureTextAsync as p, drawCompositionTree as r, bezier as s, compositionStateStore as t, mapBlendModeToSkia as u, springCalculation as v };
|
|
1486
|
-
//# sourceMappingURL=dist-
|
|
1526
|
+
//# sourceMappingURL=dist-DMa2BbYs.mjs.map
|