framefields 2.1.1 → 2.1.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 +3 -0
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-GGuQ_JI0.mjs → audio-DqaHxtG3.mjs} +3 -3
- package/dist/{audio-GGuQ_JI0.mjs.map → audio-DqaHxtG3.mjs.map} +1 -1
- package/dist/{dist-Bb8BoMiw.mjs → dist-BgFYDCoL.mjs} +5 -3
- package/dist/dist-BgFYDCoL.mjs.map +1 -0
- package/dist/{dist-DkuDAIrG.mjs → dist-Cog5jyVI.mjs} +42 -40
- package/dist/dist-Cog5jyVI.mjs.map +1 -0
- package/dist/effects/index.mjs +34 -34
- package/dist/{effects-D6wFg2FR.mjs → effects-CXrmO68D.mjs} +2 -2
- package/dist/{effects-D6wFg2FR.mjs.map → effects-CXrmO68D.mjs.map} +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-CZMYtbP7.mjs → fonts-BUVSUWXJ.mjs} +3 -3
- package/dist/fonts-BUVSUWXJ.mjs.map +1 -0
- package/dist/{gpu-DG3gI88-.mjs → gpu-Bj08zUc5.mjs} +2 -2
- package/dist/{gpu-DG3gI88-.mjs.map → gpu-Bj08zUc5.mjs.map} +1 -1
- package/dist/index-BcA8rep0.d.mts.map +1 -1
- package/dist/index-Cpkzy5XR.d.mts.map +1 -1
- package/dist/index.mjs +48 -48
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview--rOXbBxl.mjs → preview-BOqCRCgp.mjs} +2 -2
- package/dist/{preview--rOXbBxl.mjs.map → preview-BOqCRCgp.mjs.map} +1 -1
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-XC5WZNOY.mjs → chunk-5MSAA3DL.mjs} +2 -2
- package/dist/preview-engine/{chunk-5FC7GOWW.mjs → chunk-AE2336RK.mjs} +1 -1
- package/dist/preview-engine/chunk-AKMCLVJ6.mjs +5 -0
- package/dist/preview-engine/{chunk-E4RAFHZM.mjs → chunk-ATLWPS6N.mjs} +1 -1
- package/dist/preview-engine/chunk-JJ5EF3EY.mjs +1 -0
- package/dist/preview-engine/{chunk-BWJS6G7R.mjs → chunk-LQENNFBA.mjs} +6 -6
- package/dist/preview-engine/chunk-N4OG2BHX.mjs +3 -0
- package/dist/preview-engine/{chunk-7EPDVSCL.mjs → chunk-NI577OMQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-QY7MHWZW.mjs → chunk-USM33CF5.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/{renderers-YZEVPHPQ.mjs → renderers-BH5MXUTT.mjs} +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-Cc5AsBHz.mjs → program-D8JoVobr.mjs} +2 -2
- package/dist/{program-Cc5AsBHz.mjs.map → program-D8JoVobr.mjs.map} +1 -1
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-C7UZLOYk.mjs → renderer--2bwnzBi.mjs} +2 -2
- package/dist/{renderer-C7UZLOYk.mjs.map → renderer--2bwnzBi.mjs.map} +1 -1
- package/dist/{renderer-DzrM1KMN.mjs → renderer--JBbEfTc.mjs} +3 -3
- package/dist/{renderer-DzrM1KMN.mjs.map → renderer--JBbEfTc.mjs.map} +1 -1
- package/dist/{renderer-NXdm6HLb.mjs → renderer-0dD1VQsz.mjs} +3 -3
- package/dist/{renderer-NXdm6HLb.mjs.map → renderer-0dD1VQsz.mjs.map} +1 -1
- package/dist/{renderer-BygIYH8s.mjs → renderer-0fRv8mc5.mjs} +2 -2
- package/dist/{renderer-BygIYH8s.mjs.map → renderer-0fRv8mc5.mjs.map} +1 -1
- package/dist/renderer-3MuT2oZO.mjs +5 -0
- package/dist/{renderer-Bb8T5eRX.mjs → renderer-58bVJfZx.mjs} +2 -2
- package/dist/{renderer-Bb8T5eRX.mjs.map → renderer-58bVJfZx.mjs.map} +1 -1
- package/dist/renderer-AX_fHrXM.mjs +5 -0
- package/dist/{renderer-DkyXqrQ6.mjs → renderer-B-QXAPY0.mjs} +2 -2
- package/dist/{renderer-DkyXqrQ6.mjs.map → renderer-B-QXAPY0.mjs.map} +1 -1
- package/dist/renderer-B2-LQreV.mjs +5 -0
- package/dist/renderer-B2QhkksW.mjs +5 -0
- package/dist/renderer-B5CoE2Cv.mjs +5 -0
- package/dist/renderer-B6Au6f82.mjs +5 -0
- package/dist/renderer-B6qAMLXh.mjs +5 -0
- package/dist/{renderer-DX2qEJTL.mjs → renderer-B6x_Mmpf.mjs} +53 -53
- package/dist/{renderer-DX2qEJTL.mjs.map → renderer-B6x_Mmpf.mjs.map} +1 -1
- package/dist/{renderer-BWVsBB3t.mjs → renderer-B7jZuO6k.mjs} +2 -2
- package/dist/{renderer-BWVsBB3t.mjs.map → renderer-B7jZuO6k.mjs.map} +1 -1
- package/dist/{renderer-c4AorKyw.mjs → renderer-B8Wjov5-.mjs} +2 -2
- package/dist/{renderer-Br9BOkQs.mjs → renderer-B9ProG0Z.mjs} +2 -2
- package/dist/{renderer-Br9BOkQs.mjs.map → renderer-B9ProG0Z.mjs.map} +1 -1
- package/dist/renderer-BEfvyxL_.mjs +5 -0
- package/dist/renderer-BH4j4urG.mjs +5 -0
- package/dist/renderer-BH4zfzus.mjs +5 -0
- package/dist/{renderer-D8-zNjyz.mjs → renderer-BJD6Ouon.mjs} +2 -2
- package/dist/{renderer-D8-zNjyz.mjs.map → renderer-BJD6Ouon.mjs.map} +1 -1
- package/dist/{renderer-9L0p8IT3.mjs → renderer-BJ_GtjUk.mjs} +2 -2
- package/dist/{renderer-D2FFvxsq.mjs → renderer-BNyDJZzl.mjs} +3 -3
- package/dist/{renderer-D2FFvxsq.mjs.map → renderer-BNyDJZzl.mjs.map} +1 -1
- package/dist/{renderer-_1xGBbxn.mjs → renderer-BPDita2c.mjs} +5 -5
- package/dist/{renderer-_1xGBbxn.mjs.map → renderer-BPDita2c.mjs.map} +1 -1
- package/dist/renderer-BRjW_pgJ.mjs +6 -0
- package/dist/renderer-BVo6W_BO.mjs +5 -0
- package/dist/{renderer-Dy-DBU0X.mjs → renderer-BXZo84vM.mjs} +2 -2
- package/dist/{renderer-Dy-DBU0X.mjs.map → renderer-BXZo84vM.mjs.map} +1 -1
- package/dist/{renderer-Bg7647VN.mjs → renderer-Ba7Rc8DE.mjs} +3 -3
- package/dist/{renderer-Bg7647VN.mjs.map → renderer-Ba7Rc8DE.mjs.map} +1 -1
- package/dist/{renderer-BKf1qDwL.mjs → renderer-BaYEXoS3.mjs} +3 -3
- package/dist/{renderer-BKf1qDwL.mjs.map → renderer-BaYEXoS3.mjs.map} +1 -1
- package/dist/renderer-BbxBM7Vh.mjs +5 -0
- package/dist/{renderer-DWEvQ-hQ.mjs → renderer-BcFdZx4j.mjs} +3 -3
- package/dist/{renderer-DWEvQ-hQ.mjs.map → renderer-BcFdZx4j.mjs.map} +1 -1
- package/dist/{renderer-Dno-fujw.mjs → renderer-BeuG4dyz.mjs} +2 -2
- package/dist/{renderer-Dno-fujw.mjs.map → renderer-BeuG4dyz.mjs.map} +1 -1
- package/dist/{renderer-CoGP4Mvf.mjs → renderer-BlTPu9QT.mjs} +2 -2
- package/dist/{renderer-CoGP4Mvf.mjs.map → renderer-BlTPu9QT.mjs.map} +1 -1
- package/dist/{renderer-BI5rvAyo.mjs → renderer-Bm0W9qgc.mjs} +3 -3
- package/dist/{renderer-BI5rvAyo.mjs.map → renderer-Bm0W9qgc.mjs.map} +1 -1
- package/dist/{renderer-DDqwds9R.mjs → renderer-Bos8nRhT.mjs} +2 -2
- package/dist/{renderer-DDqwds9R.mjs.map → renderer-Bos8nRhT.mjs.map} +1 -1
- package/dist/{renderer-C27RfwXN.mjs → renderer-BqCx28Zb.mjs} +3 -3
- package/dist/{renderer-C27RfwXN.mjs.map → renderer-BqCx28Zb.mjs.map} +1 -1
- package/dist/{renderer-CMsjnZ0G.mjs → renderer-Br1OuXr_.mjs} +3 -3
- package/dist/{renderer-CMsjnZ0G.mjs.map → renderer-Br1OuXr_.mjs.map} +1 -1
- package/dist/{renderer-timEC0Gl.mjs → renderer-BwBc5xNu.mjs} +3 -3
- package/dist/{renderer-timEC0Gl.mjs.map → renderer-BwBc5xNu.mjs.map} +1 -1
- package/dist/{renderer-CydWqyf0.mjs → renderer-ByGPFIu2.mjs} +2 -2
- package/dist/{renderer-CydWqyf0.mjs.map → renderer-ByGPFIu2.mjs.map} +1 -1
- package/dist/{renderer-B1Zn91xt.mjs → renderer-C-AzyBir.mjs} +3 -3
- package/dist/{renderer-B1Zn91xt.mjs.map → renderer-C-AzyBir.mjs.map} +1 -1
- package/dist/{renderer-D0aZNkQE.mjs → renderer-C-BjN5HM.mjs} +3 -3
- package/dist/{renderer-D0aZNkQE.mjs.map → renderer-C-BjN5HM.mjs.map} +1 -1
- package/dist/renderer-C07CnYVd.mjs +5 -0
- package/dist/renderer-C2Z3vJCu.mjs +5 -0
- package/dist/renderer-C31qkFvm.mjs +5 -0
- package/dist/renderer-C3FV8cYm.mjs +5 -0
- package/dist/{renderer-DX8aBDqR.mjs → renderer-CATBdL9s.mjs} +2 -2
- package/dist/{renderer-DX8aBDqR.mjs.map → renderer-CATBdL9s.mjs.map} +1 -1
- package/dist/{renderer-DyzNM721.mjs → renderer-CBBhVrwO.mjs} +2 -2
- package/dist/{renderer-DyzNM721.mjs.map → renderer-CBBhVrwO.mjs.map} +1 -1
- package/dist/{renderer-DUhXH5Tz.mjs → renderer-CJnIeI0m.mjs} +3 -3
- package/dist/{renderer-DUhXH5Tz.mjs.map → renderer-CJnIeI0m.mjs.map} +1 -1
- package/dist/{renderer-DYIPWN_B.mjs → renderer-CMOAtGdC.mjs} +3 -3
- package/dist/{renderer-DYIPWN_B.mjs.map → renderer-CMOAtGdC.mjs.map} +1 -1
- package/dist/renderer-CQXszrAF.mjs +5 -0
- package/dist/{renderer-DqjITuT-.mjs → renderer-CVD0oPsf.mjs} +2 -2
- package/dist/{renderer-DqjITuT-.mjs.map → renderer-CVD0oPsf.mjs.map} +1 -1
- package/dist/renderer-CWK41ajp.mjs +5 -0
- package/dist/{renderer-qsg-JMuN.mjs → renderer-CZ7-42SE.mjs} +3 -3
- package/dist/{renderer-qsg-JMuN.mjs.map → renderer-CZ7-42SE.mjs.map} +1 -1
- package/dist/renderer-C_U225ub.mjs +5 -0
- package/dist/renderer-C_nPzKwZ.mjs +5 -0
- package/dist/{renderer-C5zpaQed.mjs → renderer-Cd5BLFnS.mjs} +2 -2
- package/dist/{renderer-C5zpaQed.mjs.map → renderer-Cd5BLFnS.mjs.map} +1 -1
- package/dist/renderer-Cd6I_dsC.mjs +5 -0
- package/dist/renderer-Ceb06HuN.mjs +5 -0
- package/dist/{renderer-BhKIZDsm.mjs → renderer-CgFs_3gW.mjs} +2 -2
- package/dist/{renderer-BhKIZDsm.mjs.map → renderer-CgFs_3gW.mjs.map} +1 -1
- package/dist/{renderer-DKqG9Lek.mjs → renderer-ChO8NNw9.mjs} +2 -2
- package/dist/{renderer-DKqG9Lek.mjs.map → renderer-ChO8NNw9.mjs.map} +1 -1
- package/dist/{renderer-C92mwhZz.mjs → renderer-ClIXn9ZU.mjs} +2 -2
- package/dist/{renderer-C92mwhZz.mjs.map → renderer-ClIXn9ZU.mjs.map} +1 -1
- package/dist/{renderer-C--Dqe-3.mjs → renderer-CmEvkdNL.mjs} +3 -3
- package/dist/{renderer-C--Dqe-3.mjs.map → renderer-CmEvkdNL.mjs.map} +1 -1
- package/dist/{renderer-DVnVnS3c.mjs → renderer-CmpV4YNd.mjs} +2 -2
- package/dist/{renderer-DVnVnS3c.mjs.map → renderer-CmpV4YNd.mjs.map} +1 -1
- package/dist/{renderer-CzBQgGD2.mjs → renderer-Cun5J3z9.mjs} +3 -3
- package/dist/{renderer-CzBQgGD2.mjs.map → renderer-Cun5J3z9.mjs.map} +1 -1
- package/dist/{renderer-DZD2G76E.mjs → renderer-CxE5__5p.mjs} +2 -2
- package/dist/{renderer-DZD2G76E.mjs.map → renderer-CxE5__5p.mjs.map} +1 -1
- package/dist/renderer-D3P5SLcx.mjs +5 -0
- package/dist/renderer-D9R8QXS7.mjs +5 -0
- package/dist/renderer-D9SJ4Fg9.mjs +5 -0
- package/dist/{renderer-DGtBOdst.mjs → renderer-D9mf-msP.mjs} +2 -2
- package/dist/renderer-DGAypVNj.mjs +5 -0
- package/dist/{renderer-FHyZn0em.mjs → renderer-DKmV8F6L.mjs} +2 -2
- package/dist/{renderer-FHyZn0em.mjs.map → renderer-DKmV8F6L.mjs.map} +1 -1
- package/dist/renderer-DLAAfwg0.mjs +5 -0
- package/dist/{renderer-Bc6J0iVG.mjs → renderer-DT1bySqu.mjs} +2 -2
- package/dist/{renderer-Bc6J0iVG.mjs.map → renderer-DT1bySqu.mjs.map} +1 -1
- package/dist/renderer-DTkBPkBu.mjs +5 -0
- package/dist/{renderer-Da06_9FZ.mjs → renderer-D_2Y_tdA.mjs} +2 -2
- package/dist/{renderer-Da06_9FZ.mjs.map → renderer-D_2Y_tdA.mjs.map} +1 -1
- package/dist/renderer-DbaTMTuo.mjs +5 -0
- package/dist/{renderer-CrAqu3Rg.mjs → renderer-Dd9NUd_I.mjs} +2 -2
- package/dist/{renderer-CrAqu3Rg.mjs.map → renderer-Dd9NUd_I.mjs.map} +1 -1
- package/dist/{renderer-BXQQxeNC.mjs → renderer-Dj_K1f1T.mjs} +3 -3
- package/dist/{renderer-BXQQxeNC.mjs.map → renderer-Dj_K1f1T.mjs.map} +1 -1
- package/dist/renderer-DsxhQdCp.mjs +5 -0
- package/dist/{renderer-CAJe9eLS.mjs → renderer-FSCTtHrt.mjs} +2 -2
- package/dist/{renderer-CAJe9eLS.mjs.map → renderer-FSCTtHrt.mjs.map} +1 -1
- package/dist/renderer-Hf1pCqoN.mjs +5 -0
- package/dist/{renderer-DoYdfDEA.mjs → renderer-KcV0gCO5.mjs} +3 -3
- package/dist/{renderer-DoYdfDEA.mjs.map → renderer-KcV0gCO5.mjs.map} +1 -1
- package/dist/renderer-V0UuIniZ.mjs +5 -0
- package/dist/renderer-VCnMXWqE.mjs +5 -0
- package/dist/{renderer-D2BRlqof.mjs → renderer-aw8EsrS9.mjs} +2 -2
- package/dist/{renderer-D2BRlqof.mjs.map → renderer-aw8EsrS9.mjs.map} +1 -1
- package/dist/{renderer-C5caYAA3.mjs → renderer-cjiONTY_.mjs} +2 -2
- package/dist/{renderer-C5caYAA3.mjs.map → renderer-cjiONTY_.mjs.map} +1 -1
- package/dist/{renderer-BhhSyHKF.mjs → renderer-hIbXvzPu.mjs} +2 -2
- package/dist/renderer-lifu3xIt.mjs +5 -0
- package/dist/renderer-mPDgLBi4.mjs +5 -0
- package/dist/{renderer-BaaOR3Ao.mjs → renderer-pNxZ_lV2.mjs} +2 -2
- package/dist/{renderer-BaaOR3Ao.mjs.map → renderer-pNxZ_lV2.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-CMYe4kvZ.mjs → renderers-CP8CFWDs-ZKjdDfYg.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-CMYe4kvZ.mjs.map → renderers-CP8CFWDs-ZKjdDfYg.mjs.map} +1 -1
- package/dist/signals/index.mjs +4 -4
- package/package.json +56 -56
- package/dist/dist-Bb8BoMiw.mjs.map +0 -1
- package/dist/dist-DkuDAIrG.mjs.map +0 -1
- package/dist/fonts-CZMYtbP7.mjs.map +0 -1
- package/dist/preview-engine/chunk-B43Z3J7J.mjs +0 -5
- package/dist/preview-engine/chunk-LGVEFPOG.mjs +0 -3
- package/dist/preview-engine/chunk-PNB3ERR3.mjs +0 -1
- package/dist/renderer-1VSi7Vum.mjs +0 -5
- package/dist/renderer-4BlpUHQT.mjs +0 -5
- package/dist/renderer-AzSX2-mZ.mjs +0 -5
- package/dist/renderer-B-cxK24t.mjs +0 -5
- package/dist/renderer-B5d5oM_D.mjs +0 -5
- package/dist/renderer-B8BdNjaN.mjs +0 -5
- package/dist/renderer-BKEfeg-4.mjs +0 -5
- package/dist/renderer-BLLOkeFB.mjs +0 -5
- package/dist/renderer-BTvov1NH.mjs +0 -5
- package/dist/renderer-BVun05IK.mjs +0 -5
- package/dist/renderer-B_3h5nhy.mjs +0 -5
- package/dist/renderer-BaZjoFYK.mjs +0 -5
- package/dist/renderer-BcApaCVe.mjs +0 -5
- package/dist/renderer-C14mKYCw.mjs +0 -5
- package/dist/renderer-CFqhAXkH.mjs +0 -5
- package/dist/renderer-CK-spD4j.mjs +0 -5
- package/dist/renderer-CLLzQTIk.mjs +0 -5
- package/dist/renderer-COwa6xlF.mjs +0 -5
- package/dist/renderer-CQPuuoVf.mjs +0 -6
- package/dist/renderer-CRd-cDqZ.mjs +0 -5
- package/dist/renderer-CTVnQAUm.mjs +0 -5
- package/dist/renderer-CbiEBSGx.mjs +0 -5
- package/dist/renderer-Cl7PruQ1.mjs +0 -5
- package/dist/renderer-CmuGGUDR.mjs +0 -5
- package/dist/renderer-CoNRrfqx.mjs +0 -5
- package/dist/renderer-CvIGa0mE.mjs +0 -5
- package/dist/renderer-CwMDPv0p.mjs +0 -5
- package/dist/renderer-DOHbhGPu.mjs +0 -5
- package/dist/renderer-DOmA6IKc.mjs +0 -5
- package/dist/renderer-DmCWc4JL.mjs +0 -5
- package/dist/renderer-OLaYikwi.mjs +0 -5
- package/dist/renderer-Q75RC5Uz.mjs +0 -5
- package/dist/renderer-T0LJ4Po3.mjs +0 -5
- package/dist/renderer-VuXt1hfq.mjs +0 -5
- package/dist/renderer-hY_2WLt3.mjs +0 -5
- package/dist/renderer-y4EqE06a.mjs +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Ut,p as C,q as T,r as Mt}from"./chunk-RQLMW6MA.mjs";import{c as yt,d as xt,e as $}from"./chunk-VRGREB3V.mjs";import{a as St,b as it,d as wt,e as A}from"./chunk-ZIIFTWDH.mjs";import{a as vt,b as bt}from"./chunk-
|
|
1
|
+
import{a as ot}from"./chunk-LKYN3BM2.mjs";import{o as Ut,p as C,q as T,r as Mt}from"./chunk-RQLMW6MA.mjs";import{c as yt,d as xt,e as $}from"./chunk-VRGREB3V.mjs";import{a as St,b as it,d as wt,e as A}from"./chunk-ZIIFTWDH.mjs";import{a as vt,b as bt}from"./chunk-ATLWPS6N.mjs";import{e as O,s as G,t as M,v as Gt}from"./chunk-LQENNFBA.mjs";import{a as D,b as gt}from"./chunk-IQC2I5A5.mjs";import{d as Pt}from"./chunk-HYBAPT6I.mjs";import{e as x}from"./chunk-BVF64D6H.mjs";x();var E=class{constructor(t,e){this.url=t;this.isHeadless=e}url;isHeadless;input=null;initPromise=null;iterator=null;iteratorStartTimestamp=-1;currentFetchId=0;fetchLock=Promise.resolve();destroyed=!1;async init(){if(!this.input)return this.initPromise?this.initPromise:(this.destroyed=!1,this.initPromise=(async()=>{try{let t=await A.acquire(this.url);this.destroyed?A.release(this.url):this.input=t}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}destroy(){this.destroyed=!0,this.iterator?.return(),this.input&&(A.release(this.url),this.input=null),this.initPromise=null,this.onDestroy()}},st=class extends E{canvasSink=null;videoSampleSink=null;currentFrame=null;nextFrame=null;currentSample=null;nextSample=null;headlessQueue=[];isDecoding=!1;decodeBuffer=null;nextRequest=null;pushHeadlessQueue(t){let e=this.headlessQueue.findIndex(r=>r.timestamp>t.timestamp);e===-1?this.headlessQueue.push(t):this.headlessQueue.splice(e,0,t)}async fillHeadlessQueue(t){if(this.iterator)for(;this.headlessQueue.length<2;){let e=await this.iterator.next();if(this.currentFetchId!==t){e.value?.close?.();return}if(e.done||!e.value)break;this.pushHeadlessQueue(e.value)}}async closeIterator(t){if(t)try{await t.return()}catch{}}resetSinks(){let t=this.iterator;if(this.iterator=null,t)try{t.return()}catch{}this.canvasSink=null,this.videoSampleSink=null,this.currentFrame=null,this.nextFrame=null,this.currentSample?.close(),this.currentSample=null,this.nextSample?.close(),this.nextSample=null;for(let e of this.headlessQueue)try{e.close()}catch{}this.headlessQueue=[],this.decodeBuffer=null,this.iteratorStartTimestamp=-1}onDestroy(){this.resetSinks()}async startIterator(t,e){if(!this.canvasSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;this.iterator=this.canvasSink.canvases(r);let n=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed)return;this.currentFrame=n.value??null;let s=await this.iterator.next();this.currentFetchId!==e||this.destroyed||(this.nextFrame=s.value??null,this.iteratorStartTimestamp=r)}async startIteratorHeadless(t,e){if(!this.videoSampleSink)return;let r=Math.max(0,Number.isFinite(t)?t:0),i=this.iterator;if(this.iterator=null,await this.closeIterator(i),this.currentFetchId!==e||this.destroyed)return;for(let s of this.headlessQueue)s.close();this.headlessQueue=[];let n=Math.max(0,r-.1);this.iterator=this.videoSampleSink.samples(n),await this.fillHeadlessQueue(e),!(this.currentFetchId!==e||this.destroyed)&&(this.iteratorStartTimestamp=r)}async getFrame(t){if(await this.init(),this.destroyed||!this.input)return null;let e=Math.max(0,Number.isFinite(t)?t:0);return this.isDecoding?(this.nextRequest&&this.nextRequest.resolve(null),new Promise((r,i)=>{this.nextRequest={timestampSec:e,resolve:r,reject:i}})):this.executeDecode(e)}async executeDecode(t){this.isDecoding=!0;try{return await this.performDecode(t)}finally{if(this.isDecoding=!1,this.nextRequest){let e=this.nextRequest;this.nextRequest=null,this.executeDecode(e.timestampSec).then(e.resolve).catch(e.reject)}}}async performDecodeHeadless(t,e){if(!this.videoSampleSink){if(this.destroyed||!this.input)return null;let h=await this.input.getPrimaryVideoTrack();if(!h)return null;this.videoSampleSink=new St(h)}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.headlessQueue.length>0&&t<this.headlessQueue[0].timestamp-.01||this.headlessQueue.length>0&&t-this.headlessQueue[0].timestamp>1)&&(await this.startIteratorHeadless(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;;){if(await this.fillHeadlessQueue(e),this.currentFetchId!==e||this.destroyed||!this.input)return null;if(this.headlessQueue.length>=2&&this.headlessQueue[1].timestamp<=t+r){this.headlessQueue.shift()?.close();continue}break}let s=this.headlessQueue[0];if(!s)return null;let a=s.displayWidth,o=s.displayHeight,c=a*o*4,l=this.decodeBuffer;return(!l||l.length!==c)&&(l=new Uint8Array(c),this.decodeBuffer=l),await s.copyTo(l,{format:"RGBA"}),this.currentFetchId!==e||this.destroyed||!this.input?null:(gt(l),{width:a,height:o,buffer:l})}async performDecodeInternal(t){this.currentFetchId++;let e=this.currentFetchId;if(this.isHeadless)return this.performDecodeHeadless(t,e);if(!this.canvasSink){if(this.destroyed||!this.input)return null;let a=await this.input.getPrimaryVideoTrack();if(!a)return null;this.canvasSink=new it(a,{poolSize:3,alpha:!0})}let r=1e-4;if((!this.iterator||t<this.iteratorStartTimestamp-r||this.currentFrame&&t<this.currentFrame.timestamp-.01||this.currentFrame&&t-this.currentFrame.timestamp>1)&&(await this.startIterator(t,e),this.currentFetchId!==e||this.destroyed||!this.input))return null;for(;this.nextFrame&&this.nextFrame.timestamp<=t+r;)if(this.currentFrame=this.nextFrame,this.nextFrame=null,this.iterator){let a=await this.iterator.next();if(this.currentFetchId!==e||this.destroyed||!this.input)return null;this.nextFrame=a.value??null}if(!this.currentFrame)return null;let s=this.currentFrame.canvas;return{width:s.width,height:s.height,canvas:s}}async performDecode(t){let e=Math.max(0,Number.isFinite(t)?t:0);try{return await this.performDecodeInternal(e)}catch(r){let i=r;if(i?.name==="InputDisposedError"||i?.message?.includes("disposed")||this.destroyed||!this.input)return null;this.resetSinks();try{if(!this.isHeadless&&this.input&&!this.destroyed){let n=await this.input.getPrimaryVideoTrack();if(n&&!this.destroyed)return this.canvasSink=new it(n,{poolSize:3,alpha:!0,decoderOptions:{hardwareAcceleration:"prefer-software"}}),await this.performDecodeInternal(e)}}catch{}throw r}}},nt=class extends E{audioSink=null;onDestroy(){this.audioSink=null}async startIterator(t,e){this.audioSink&&(this.iterator?.return(),this.iterator=this.audioSink.buffers(t),this.iteratorStartTimestamp=t)}async*getBuffers(t){try{if(await this.init(),this.destroyed||!this.input)return;if(!this.audioSink){let i=await this.input.getPrimaryAudioTrack();if(!i)return;this.audioSink=new wt(i)}(!this.iterator||Math.abs(t-this.iteratorStartTimestamp)>.05)&&(this.currentFetchId++,await this.startIterator(t,this.currentFetchId));let r=this.currentFetchId;if(!this.iterator)return;for await(let i of this.iterator){if(this.currentFetchId!==r||this.destroyed||!this.input)break;this.iteratorStartTimestamp=i.timestamp+i.duration,yield i}}catch(e){let r=e;if(r?.name==="InputDisposedError"||r?.message?.includes("disposed")||this.destroyed||!this.input)return;throw e}finally{let e=this.currentFetchId;this.currentFetchId===e&&(this.iterator=null)}}},at=class{videoDecoders=new Map;audioDecoders=new Map;lastAccessed=new Map;touchKey(t){this.lastAccessed.set(t,Date.now())}destroy(){for(let t of this.videoDecoders.values())try{t.destroy()}catch{}this.videoDecoders.clear();for(let t of this.audioDecoders.values())try{t.destroy()}catch{}this.audioDecoders.clear(),this.lastAccessed.clear()}prune(t=3e5){let e=Date.now();for(let[r,i]of this.lastAccessed.entries())if(e-i>t){let n=this.videoDecoders.get(r);n&&(n.destroy(),this.videoDecoders.delete(r));let s=this.audioDecoders.get(r);s&&(s.destroy(),this.audioDecoders.delete(r)),this.lastAccessed.delete(r)}}getVideo(t,e,r){let i=`${t}-${e}-${r??"default"}`,n=this.videoDecoders.get(i);return n||(n=new st(t,e),this.videoDecoders.set(i,n)),this.touchKey(i),this.prune(),n}getAudio(t,e){let r=`${t}-${e??"default"}`,i=this.audioDecoders.get(r);return i||(i=new nt(t,!1),this.audioDecoders.set(r,i)),this.touchKey(r),this.prune(),i}clearNode(t){for(let[e,r]of this.videoDecoders)e.includes(t)&&(r.destroy(),this.videoDecoders.delete(e),this.lastAccessed.delete(e));for(let[e,r]of this.audioDecoders)e.includes(t)&&(r.destroy(),this.audioDecoders.delete(e),this.lastAccessed.delete(e))}},te=new at;x();x();var Bt=`
|
|
2
2
|
struct CompositeUniforms {
|
|
3
3
|
blendMode : u32,
|
|
4
4
|
padding1 : u32,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as $e,b as lt,c as ut,d as dt,e as ft,f as ht,g as mt,h as gt,i as xt,j as yt,k as bt,l as wt,n as St}from"./chunk-RQLMW6MA.mjs";import{d as at}from"./chunk-6YJP57MZ.mjs";import{c as st,d as ct,e as B,r as be}from"./chunk-LQENNFBA.mjs";import{a as de}from"./chunk-IQC2I5A5.mjs";import{d as Ge}from"./chunk-HYBAPT6I.mjs";import{d as Re,e as we}from"./chunk-BVF64D6H.mjs";we();function Et(t){return typeof t=="object"&&t!==null&&typeof t.get=="function"}function We(t,n){return Et(t)?t.get(n):t}function Ct(t,n){return t.map(e=>{let i={...e,text:String(We(e.text,n)??"")};return e.fontSize!==void 0&&(i.fontSize=Number(We(e.fontSize,n))),e.fill!==void 0&&(i.fill=String(We(e.fill,n))),e.opacity!==void 0&&(i.opacity=Number(We(e.opacity,n))),e.mark&&(i.mark={...e.mark,background:String(We(e.mark.background,n))}),i})}function zt(t){let n="";for(let e of t)n+=typeof e.text=="string"?e.text:"";return n}function Mt(t,n){let e=[],i=0;for(let[r,c]of t.entries()){if(i>=n.length)break;let d=typeof c.text=="string"?c.text.length:0,u=r===t.length-1?n.length:i+d;u>i&&e.push({...c,text:n.slice(i,u)}),i=u}return e}we();function Xt(t,n,e,i,r=0,c=0){let d=at.getChannelSamples(n,"primary");if(d&&d.length>0){let m=i>0?i:24,C=e/m,h=r!==0?c*r/(2*Math.PI):0,k=Math.max(0,C+h),a=Math.max(0,Math.min(d.length-1,Math.round(k*m)));return Number(d[a])||0}if(!t)return 0;let u=t[n];if(u==null)return 0;if(typeof u=="number")return u;if(typeof u=="function")return Number(u(e,i))||0;if(typeof u=="object"){let m=u;if(typeof m.get=="function"){let C=i>0?e/i:0,h=r!==0?c*r/(2*Math.PI):0;return Number(m.get({frame:e,fps:i,time:C+h}))||0}if(Array.isArray(m.samples)||ArrayBuffer.isView(m.samples)){let C=m.samples,h=Math.max(0,Math.min(C.length-1,Math.round(e)));return Number(C[h])||0}}return 0}function It(t){return t<.5?2*t*t:1-(-2*t+2)**2/2}function Yt(t){let n=0;for(let e=0;e<t.length;e++)n=t.charCodeAt(e)+((n<<5)-n);return()=>{let e=Math.sin(n++)*1e4;return e-Math.floor(e)}}function Gt(t,n){let e=Yt(n),i=Array.from({length:t},(r,c)=>c);for(let r=i.length-1;r>0;r--){let c=Math.floor(e()*(r+1)),d=i[r];i[r]=i[c],i[c]=d}return i}function jt(t,n,e){let i=`${n}-${e}`,r=B.emojiTextureCache.get(i);if(r)return r;let c=4,d=Math.max(16,Math.ceil(e*1.5*c)),u=Math.ceil(d/4)*4;if(!!globalThis.__IS_HEADLESS_RENDERER__||typeof window>"u"||typeof globalThis.document>"u")return console.warn(`[getOrCreateEmojiTexture] Emoji "${n}" not preloaded. Returning fallback dummy texture.`),r=t.createTexture({label:`Emoji-Dummy-${n}`,size:[1,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING}),B.emojiTextureCache.set(i,r),r;let C=new OffscreenCanvas(u,u),h=C.getContext("2d");return h&&(h.font=`${e*c}px "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif`,h.textBaseline="middle",h.textAlign="center",h.fillText(n,u/2,u/2)),r=t.createTexture({label:`Emoji-${n}`,size:[u,u],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),t.queue.copyExternalImageToTexture({source:C},{texture:r,premultipliedAlpha:!0},[u,u]),B.emojiTextureCache.set(i,r),r}function je(t,n,e,i,r,c,d){if(!d)return{p_in:1,p_out:1};let u=1;if(e>0){let C=e*.5,h=c>1?e*.5/(c-1):0,k=r*h,a=k+C;t<k?u=0:t>a?u=1:u=(t-k)/(a-k)}let m=1;if(i>0){let C=n-i;if(t>C){let h=i*.5,k=c>1?i*.5/(c-1):0,a=C+r*k,A=a+h;t<a?m=1:t>A?m=0:m=1-(t-a)/(A-a)}}return{p_in:u,p_out:m}}function _e(t,n,e,i,r,c,d,u,m,C,h,k,a){let A=e?It(t):t,w=e?It(n):n,v=A*w;if(A<=0&&i!=="blur"||w<=0&&r!=="blur")return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let X=k;if(i==="fade"||i==="slideUp"||i==="blur"?X*=A:i==="appear"&&A<.5&&(X=0),r==="fade"||r==="slideUp"||r==="blur"?X*=w:r==="appear"&&w<.5&&(X=0),X<.001)return{opacity:0,transX:0,transY:0,rot:0,scale:1,blurAmount:0,visible:!1};let j=0,P=0,H=0,ee=1;i==="slideUp"&&d<m&&(P+=(1-A)*30),r==="slideUp"&&d>u-C&&(P-=(1-w)*30);let oe=a?1:Math.PI/180;c==="stack"?(ee=.8+.2*v,H=(1-v)*15*oe):c==="wave"?P+=10*Math.sin(d*.005-h*.5):c==="wiggle"?(j+=5*Math.sin(d*.008+h*1.7),P+=5*Math.cos(d*.006+h*1.3),H+=4*Math.sin(d*.005+h*2.1)*oe):c==="shuffle"&&(j+=3*Math.sin(d*.015+h*3.1),P+=3*Math.cos(d*.012+h*2.3),H+=8*Math.sin(d*.02+h*1.1)*oe);let x=0;return i==="blur"&&(x=Math.max(x,(1-A)*20)),r==="blur"&&(x=Math.max(x,(1-w)*20)),{opacity:X,transX:j,transY:P,rot:H,scale:ee,blurAmount:x,visible:!0}}var _t={linear:t=>t,none:t=>t,smoothstep:t=>t,"power1.out":t=>1-(1-t)**2,"quad.out":t=>1-(1-t)**2,"power1.in":t=>t**2,"quad.in":t=>t**2,"power1.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"quad.inout":t=>t<.5?2*t*t:1-(-2*t+2)**2/2,"power2.out":t=>1-(1-t)**3,"cubic.out":t=>1-(1-t)**3,"power2.in":t=>t**3,"cubic.in":t=>t**3,"power2.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"cubic.inout":t=>t<.5?4*t**3:1-(-2*t+2)**3/2,"power3.out":t=>1-(1-t)**4,"quart.out":t=>1-(1-t)**4,"power3.in":t=>t**4,"quart.in":t=>t**4,"power3.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"quart.inout":t=>t<.5?8*t**4:1-(-2*t+2)**4/2,"power4.out":t=>1-(1-t)**5,"quint.out":t=>1-(1-t)**5,"power4.in":t=>t**5,"quint.in":t=>t**5,"sine.out":t=>Math.sin(t*Math.PI/2),"sine.in":t=>1-Math.cos(t*Math.PI/2),"sine.inout":t=>-(Math.cos(Math.PI*t)-1)/2,"expo.out":t=>t===1?1:1-2**(-10*t),"back.out":t=>1+2.70158*(t-1)**3+1.70158*(t-1)**2};function Ot(t,n){let e=Math.max(0,Math.min(1,n));if(!t)return e;let i=_t[t.toLowerCase().trim()];return i?i(e):e}function Ht(t,n,e){if(e<=0)return 0;let i=e>1?n/(e-1):.5,r=t.offset??0,c=(t.rangeStart??0)+r,d=(t.rangeEnd??1)+r,u=0;d<=c?u=i>=c?1:0:u=Math.max(0,Math.min(1,(i-c)/(d-c)));let m=u*u*(3-2*u);return Ot(t.easing??"power2.out",m)}function kt(t,n,e,i,r,c){let d=Math.max(1,e.charsCount??1),u=Math.max(1,e.wordsCount??1),m=Math.max(1,e.linesCount??1),C=t.selectors??[];if(C.length===0)return 1;let h=0;for(let k=0;k<C.length;k++){let a=C[k],A=0;if(a.type==="range"){let w=d,v=n.charIndex??0;a.basedOn==="words"?(w=u,v=n.wordIndex??0):a.basedOn==="lines"&&(w=m,v=n.lineIndex??0),a.randomizeOrder&&(v=bt(w,a.randomSeed??12345)[v%w]??v);let X=a.units==="index"?v:w>1?v/(w-1):.5,j=a.start??t.rangeStart??0,P=a.end??t.rangeEnd??(a.units==="index"?w:1),H=a.offset??t.offset??0;A=xt(X,j,P,H,a.shape??"smooth",a.easeHigh??0,a.easeLow??0)*(a.amount??1)}else if(a.type==="wiggly"){let w=c>0?r/c:0,v=(a.temporalPhaseDeg??0)*Math.PI/180,X=(a.spatialPhaseDeg??0)*Math.PI/180,j=w*(a.wigglesPerSecond??2)*2*Math.PI+v+X,P=yt(a.randomSeed??42,n.charIndex??0,j,a.correlation??.5),H=a.minAmount??-1,ee=a.maxAmount??1;A=H+(P*.5+.5)*(ee-H)}else if(a.type==="signal")A=Xt(i,a.signalId,r,c,a.phaseSpread??0,n.charIndex??0)*(a.multiplier??1)+(a.offset??0);else if(a.type==="expression"){let w=a,v=c>0?r/c:0,X={charIndex:n.charIndex??0,wordIndex:n.wordIndex??0,lineIndex:n.lineIndex??0,totalChars:d,totalWords:u,totalLines:m,frame:r,fps:c,time:v,signals:i};A=ft(w.expression,X)*(w.amount??1)}k===0?h=A:h=wt(h,A,a.mode??"add")}return h}function At(t,n,e,i,r=!1,c=0,d=24,u){if(!t||t.length===0)return i;let{transX:m,transY:C,rot:h,scale:k,scaleX:a,scaleY:A,opacity:w,blurAmount:v}=i,X=i.transZ??0,j=i.color,P=i.chromaticShift??0,H=i.dissolveProgress??0,ee=i.vfxParam??0,oe=i.skewM01??0,x=i.skewM10??0,fe=i.anchorConfig,le=i.fillOpacity??1,re=i.strokeWidth,U=i.strokeColor,ue=i.longShadow,he=i.lineSpacing,Z=i.lineAnchor,me=r?1:Math.PI/180,z=Math.max(1,e.charsCount??1),K=Math.max(1,e.wordsCount??1),ae=Math.max(1,e.linesCount??1);for(let ne of t)if("selectors"in ne&&Array.isArray(ne.selectors)){let ie=ne,l=ie.props??{},te=kt(ie,n,{charsCount:z,wordsCount:K,linesCount:ae},u,c,d),f=te,Y=1,q=1;if(l.spring){let b=(n.charIndex??0)*.035,D=Math.max(0,(d>0?c/d:0)-b);q=$e(D,l.spring.stiffness,l.spring.damping,l.spring.mass,l.spring.initialVelocity),Y=1-q,f=te*Y}if(f!==0||te!==0){if(l.x!==void 0&&(m+=l.x*f),l.y!==void 0&&(C+=l.y*f),l.scale!==void 0&&(k*=1+(l.scale-1)*f),l.scaleX!==void 0&&(a*=1+(l.scaleX-1)*f),l.scaleY!==void 0&&(A*=1+(l.scaleY-1)*f),l.rotation!==void 0&&(h+=l.rotation*me*f),l.rotationX!==void 0){let b=l.rotationX*f*Math.PI/180;A*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationY!==void 0){let b=l.rotationY*f*Math.PI/180;a*=Math.max(.08,Math.abs(Math.cos(b)))}if(l.rotationZ!==void 0&&(h+=l.rotationZ*me*f),l.translateZ!==void 0&&(X+=l.translateZ*f),l.skew!==void 0){let[,b,D]=lt(l.skew*f,l.skewAxis??0);oe+=b,x+=D}if(l.formation!==void 0){let b=ht(n.charIndex??0,z,l.formation),D=e.layoutCenter?.x??0,Q=e.layoutCenter?.y??0,xe=n.x??0,Fe=n.y??0,Ee=D+b.x,Xe=Q+b.y;if(m+=(Ee-xe)*f,C+=(Xe-Fe)*f,X+=b.z*f,b.rotX){let ye=b.rotX*f*Math.PI/180;A*=Math.max(.5,Math.abs(Math.cos(ye)))}if(b.rotY){let ye=b.rotY*f*Math.PI/180;a*=Math.max(.5,Math.abs(Math.cos(ye)))}b.rotZ&&(h+=b.rotZ*Math.PI/180*f),b.depthOpacity!==void 0&&(w*=1+(b.depthOpacity-1)*f)}if(l.anchor!==void 0&&(fe=l.anchor),l.opacity!==void 0&&(w*=1+(l.opacity-1)*f),l.blur!==void 0&&(v=Math.max(v,l.blur*f)),l.chromaticGlitch!==void 0){let b=(l.chromaticGlitch.redShiftX??0)*Math.max(0,f),D=l.chromaticGlitch.sliceProbability??.35,Q=Math.sin(c*17.13+(n.charIndex??0)*43.17),xe=Math.abs(Q-Math.floor(Q));xe<D&&(b+=(l.chromaticGlitch.sliceAmplitude??12)*(xe*2-1)),P+=b}if(l.particleDissolve!==void 0&&(H=Math.max(H,(l.particleDissolve.progress??0)*(l.spring?q:Math.max(0,f)))),l.longShadow!==void 0&&(ue=l.longShadow),l.audioSpectrum!==void 0){let b=gt(n.charIndex??0,z,l.audioSpectrum,u,c,d);l.audioSpectrum.scaleAxis==="scaleY"?A*=b:l.audioSpectrum.scaleAxis==="scaleX"?a*=b:k*=b}if(l.stroke!==void 0&&(l.stroke.fillOpacity!==void 0&&(le*=1-f+l.stroke.fillOpacity*f),l.stroke.strokeWidth!==void 0&&(re=(l.stroke.strokeWidth??0)*f),l.stroke.strokeColor&&(U=l.stroke.strokeColor)),l.lineSpacing!==void 0&&(he=l.lineSpacing*(l.spring?q:f),Z=l.lineAnchor??0),l.fillColor){let b=de(l.fillColor),D=j??{r:1,g:1,b:1,a:1},Q=te;j={r:D.r*(1-Q)+b.r*Q,g:D.g*(1-Q)+b.g*Q,b:D.b*(1-Q)+b.b*Q,a:D.a*(1-Q)+b.a*Q}}}}else{let ie=ne,l=n.charIndex??n.unitIndex??0,te=Math.max(1,e.charsCount??1);ie.unit==="word"?(l=n.wordIndex??0,te=Math.max(1,e.wordsCount??1)):ie.unit==="line"&&(l=n.lineIndex??0,te=Math.max(1,e.linesCount??1));let f=Ht(ie,l,te),Y=ie.transform;if(!Y||f<=0)continue;Y.x!==void 0&&(m+=Y.x*f),Y.y!==void 0&&(C+=Y.y*f),Y.rotation!==void 0&&(h+=Y.rotation*me*f),Y.scale!==void 0&&(k*=1+(Y.scale-1)*f),Y.scaleX!==void 0&&(a*=1+(Y.scaleX-1)*f);let q=1+((Y.scaleY??1)-1)*f;if(Y.rotationX){let b=Y.rotationX*f*Math.PI/180;q*=Math.cos(b)}if(A*=q,Y.opacity!==void 0&&(w*=1+(Y.opacity-1)*f),Y.blur!==void 0&&(v=Math.max(v,Y.blur*f)),Y.color){let b=de(Y.color),D=j??{r:1,g:1,b:1,a:1};j={r:D.r*(1-f)+b.r*f,g:D.g*(1-f)+b.g*f,b:D.b*(1-f)+b.b*f,a:D.a*(1-f)+b.a*f}}}return{transX:m,transY:C,transZ:X,rot:h,scale:k,scaleX:a,scaleY:A,opacity:Math.max(0,Math.min(1,w)),blurAmount:v,color:j,chromaticShift:P,dissolveProgress:H,vfxParam:ee,skewM01:oe,skewM10:x,anchorConfig:fe,fillOpacity:Math.max(0,Math.min(1,le)),strokeWidth:re,strokeColor:U,longShadow:ue,lineSpacing:he,lineAnchor:Z}}function pt(t,n,e){let i=e.fontFamily??"Inter";if(B.isFailed(i)&&(i="Inter"),B.isFailed(i))return;let r=e.fontSize??48,c=B.getFont(i,e.fontWeight,t.device,void 0,r,e.variableAxes),d=e.stroke&&e.strokeWidth&&e.strokeWidth>0,u=null;if(c&&d&&t.device){let o=e.strokeAlign==="outside"?2:1,y=(e.strokeWidth??0)*o*(c.unitsPerEm/r);u=B.getFont(i,e.fontWeight,t.device,y,r,e.variableAxes)??null}if(!c?.curvesTex||d&&!u?.curvesTex){let o=Ge(i);B.preloadSlugFont(t.device,i,o,void 0,e.renderId).catch(s=>{console.warn(`[drawParagraphNode] Failed to load Slug font for ${i}:`,s)});return}let m=e.letterSpacing??0,C=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*r:e.lineHeight??r*1.2,h=e.align??"start",k=e.direction??"auto",a=e.isCaption?0:e.textBackgroundColor?e.padding??0:0,A=e.text,w;if(e.typewriter){let o=e.fps??24,s=e.durationMs!==void 0?Math.round(e.durationMs/1e3*o):60;w=St(e.text,e.frame??0,0,s,e.typewriter.cadence,e.typewriter.scramble,e.typewriter.cursor?.blinkFrequency??2,e.typewriter.granularity??"character",e.textProgress),A=w.currentDisplayString}let v=w&&e.spans?.length?Mt(Ct(e.spans),A):e.spans,X=e.pathOptions?{...e.pathOptions,firstMargin:e.firstMargin!==void 0?e.firstMargin:e.pathOptions.firstMargin,lastMargin:e.lastMargin!==void 0?e.lastMargin:e.pathOptions.lastMargin,baselineShift:e.baselineShift!==void 0?e.baselineShift:e.pathOptions.baselineShift}:void 0,j,P;e.width!=null?(j=Math.max(0,e.width-a*2),P=be.measure(A,c,r,m,C,j,v,k)):(P=be.measure(A,c,r,m,C,void 0,v,k),j=P.width);let H=e.isCaption?e.dstRect.width:j,ee=e.animation?.applyBy??"word",x=(h==="left"||h==="start"&&!P.layout?.hasRtl)&&(H===void 0||H===j)&&!X&&ee==="word"&&!!P?.layout&&P.layout?P.layout:be.layout(A,c,r,m,C,j,h,ee,H,X,v,k),fe=e.verticalAlign??"top",le=e.height!=null&&!X&&!e.isCaption?e.height-(P.height+a*2):0,re={...e.dstRect,y:e.dstRect.y+(fe==="middle"?le/2:fe==="bottom"?le:0)},U=e.animation,ue=e.fontWeight==="bold"||typeof e.fontWeight=="number"&&e.fontWeight>=600||typeof e.fontWeight=="string"&&parseInt(e.fontWeight,10)>=600,he="hasTrueWeight"in c&&!!c.hasTrueWeight,Z=c;if(ue&&!he&&t.device){let o=ct(e.fontWeight),s=Math.max(0,(o-400)/500)*.055*r;if(s>0){let y=s*(c.unitsPerEm/r),S=B.getFont(i,400,t.device,y,r,e.variableAxes);S?.curvesTex&&(Z=S)}}let me=x.glyphs.length,z=e.elapsedMs!==void 0?e.elapsedMs:e.frame!==void 0&&e.fps!==void 0?e.frame/e.fps*1e3:0,K=e.durationMs!==void 0?e.durationMs:3e3,ae=e.isCaption?U?.in==="none"||!U?.in?0:K:U?.entranceMs?U.entranceMs:U?.in==="none"||!U?.in?0:K,ne=e.isCaption?0:U?.exitMs?U.exitMs:U?.out==="none"||!U?.out?0:K,ie=U?.in||"none",l=U?.out||"none",te=U?.kinetic||"none",f=U?.smoothing!==!1,Y=0;for(let o of x.glyphs)!o.isSpace&&o.unitIndex>Y&&(Y=o.unitIndex);let q=Y+1,b=te==="shuffle"||ie==="shuffle"?Gt(q,e.text):Array.from({length:q},(o,s)=>s);if(e.textBackgroundColor){let o=e.strokeRadius??e.borderRadius??8,s=0,y=e.opacity??1;if(e.isVideoMode===!1)s=y;else{for(let S of x.glyphs){if(S.isSpace)continue;let I=S.unitIndex,T=b[I]??I,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!1);_.visible&&_.opacity>s&&(s=_.opacity)}for(let S of x.emojis){let I=e.animation?.applyBy==="line"?0:Math.floor(S.x/(r+m)),T=b[I%q]??0,{p_in:M,p_out:g}=je(z,K,ae,ne,T,q,!0),_=_e(M,g,f,ie,l,te,z,K,ae,ne,T,y,!0);_.visible&&_.opacity>s&&(s=_.opacity)}}if(s>.001){let S=e.width!=null?e.width:P.width+a*2,I=e.height!=null?e.height:P.height+a*2;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x,y:e.dstRect.y,width:S,height:I},rx:o,ry:o},e.textBackgroundColor,{opacity:s})}}if(x.marks&&x.marks.length>0)for(let o of x.marks){let s=o.borderRadius??4;t.renderer.drawRRect(n,{rect:{x:e.dstRect.x+a+o.x,y:re.y+a+o.y,width:o.width,height:o.height},rx:s,ry:s},o.background,{opacity:e.opacity??1})}let D=de(e.color??"white"),Q=de(e.highlightColor??"yellow"),xe=new Float32Array(x.glyphs.length),Fe=0,Ee=0;if(x.glyphs.length>0){let o=x.glyphs.filter(s=>!s.isSpace);o.length>0&&(Fe=(o[0].x+o[o.length-1].x)/2,Ee=(o[0].y+o[o.length-1].y)/2)}let Xe={charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount,layoutCenter:{x:Fe,y:Ee}};if(e.animators&&e.animators.length>0){for(let o of e.animators)if("selectors"in o&&Array.isArray(o.selectors)){let s=o;if(s.props?.tracking!==void 0&&s.props.tracking!==0){let y=s.props.tracking,S=new Map;for(let I=0;I<x.glyphs.length;I++){let M=x.glyphs[I].lineIndex??0,g=S.get(M);g||(g=[],S.set(M,g)),g.push(I)}for(let I of S.values()){let T=new Map;for(let W of I){let O=x.glyphs[W].charIndex,$=T.get(O);$?$.push(W):T.set(O,[W])}let M=Array.from(T.values()),g=W=>{let O=x.glyphs[W[0]];return O.clusterX??O.x};M.sort((W,O)=>g(W)-g(O));let _=[];for(let W of M){let O=x.glyphs[W[0]],$=kt(s,O,Xe,e.signals,e.frame??0,e.fps??24);_.push($)}let G=0;for(let W=0;W<M.length-1;W++)G+=y*_[W];let p=x.glyphs[I[0]]?.baseRtl??!1,R=h==="start"?p?"right":"left":h==="end"?p?"left":"right":h,N=0;for(let W=0;W<M.length;W++){let O=N;R==="center"?O-=G*.5:R==="right"&&(O-=G);for(let $ of M[W])xe[$]+=O;W<M.length-1&&(N+=y*_[W])}}}}}let ye=new Float32Array(Math.max(1024,me*24)),Ke=(o,s)=>s.cp.glyphId!==void 0&&(s.font??c).fontFamily===o.fontFamily,Qe=new Set,vt=o=>{if(Qe.has(o))return;Qe.add(o);let s=[];for(let y of x.glyphs){let S=y.cp.glyphId;S!==void 0&&(y.font??c)!==o&&Ke(o,y)&&!o.glyphs?.has(S)&&s.push(S)}s.length>0&&st.ensureGlyphs(o,s)},Pt=(o,s)=>{if((s.font??c)===o)return s.cp;if(Ke(o,s)){let y=o.glyphs?.get(s.cp.glyphId);if(y)return y}return o.codePoints.get(s.cp.codePoint)||s.cp},Se=(o,s,y=0,S=0,I,T)=>{let M=me*24;ye.length<M&&(ye=new Float32Array(M));let g=ye,_=0;vt(o);for(let G=0;G<x.glyphs.length;G++){let p=x.glyphs[G];if(p.isSpace||T&&!T(p))continue;let R=Pt(o,p);if(!R||R.width===0||R.height===0)continue;let N=p.unitIndex,W=b[N]??N,O=e.opacity??1,$=0,J=0,se=0,V=1,Ce=I!==void 0?I:0;if(e.isVideoMode!==!1){let{p_in:F,p_out:E}=je(z,K,ae,ne,W,q,!0),L=_e(F,E,f,ie,l,te,z,K,ae,ne,W,e.opacity??1,!1);if(!L.visible)continue;O=L.opacity,$=L.transX,J=L.transY,se=L.rot,V=L.scale,I===void 0&&(Ce=L.blurAmount)}let Me=1,Ue=1,tt,De=0,nt=0,it=0,ot=0,Ne=0,Le=0,Be,rt=1;if(e.animators&&e.animators.length>0){let F=At(e.animators,p,Xe,{transX:$,transY:J,rot:se,scale:V,scaleX:Me,scaleY:Ue,opacity:O,blurAmount:Ce,color:D},!1,e.frame??0,e.fps??24,e.signals);$=F.transX,J=F.transY,se=F.rot,V=F.scale,Me=F.scaleX,Ue=F.scaleY,O=F.opacity,I===void 0&&(Ce=F.blurAmount),F.color&&(tt=F.color),F.lineSpacing!==void 0&&(J+=dt(p.lineIndex,x.linesCount,F.lineSpacing,F.lineAnchor??0)),De=F.transZ??0,nt=F.chromaticShift??0,it=F.dissolveProgress??0,ot=F.vfxParam??0,Ne=F.skewM01??0,Le=F.skewM10??0,Be=F.anchorConfig,rt=F.fillOpacity??1}$+=xe[G];let ze=p.x;if(e.marquee){let F=(e.frame??0)/(e.fps??24),E=x.glyphs.length>0?x.glyphs[x.glyphs.length-1].x+r:e.dstRect.width;ze=mt(p.x,e.dstRect.width,E,e.marquee,F)}let Rt=e.highlightWordIndex!==void 0&&p.wordIndex===e.highlightWordIndex,Wt=p.fill?de(p.fill):void 0,Ye=tt??s??(Rt?Q:Wt??D);(F=>{let E=_*24,L=p.fontScale??r/o.unitsPerEm,Ie=R.width*L/2*Me,Ae=R.height*L/2*Ue;if(De!==0){let ce=Math.max(100,1200-De),ge=ce>1?1200/ce:1;Ie*=ge,Ae*=ge}let ke=se+(p.pathTangentAngleRad??0),pe,Te;if(p.pathTangentAngleRad!==void 0){let ve=R.bearingX*L+Ie,ce=-R.bearingY*L+Ae,ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ve*ge-ce*Pe,qe=ve*Pe+ce*ge;pe=ze+Ve+e.dstRect.x+a+y+F,Te=p.y+qe+re.y+a+S}else pe=ze+R.bearingX*L+Ie+e.dstRect.x+a+y+F,Te=p.y-R.bearingY*L+Ae+re.y+a+S;if(Be){let ve={width:R.width*L,height:R.height*L,ascender:(o.ascender??800)*L,descender:(o.descender??-200)*L},ce=ut(ve,Be),ge=Math.cos(ke),Pe=Math.sin(ke),Ve=ce.px*(1-ge*V)+ce.py*(Pe*V),qe=-ce.px*(Pe*V)+ce.py*(1-ge*V);pe+=Ve,Te+=qe}(Ne!==0||Le!==0)&&(pe+=Ae*Ne,Te+=Ie*Le),g[E+0]=Ie,g[E+1]=Ae,g[E+2]=pe,g[E+3]=Te,g[E+4]=R.width,g[E+5]=R.height,g[E+6]=R.width/R.bandDimX,g[E+7]=R.height/R.bandDimY,g[E+8]=R.bandCount-1,g[E+9]=R.bandCount-1,g[E+10]=R.bandsTexCoordX,g[E+11]=R.bandsTexCoordY,g[E+12]=ke,g[E+13]=V,g[E+14]=$,g[E+15]=J,g[E+16]=Ye.r,g[E+17]=Ye.g,g[E+18]=Ye.b;let Ft=p.opacity??1;g[E+19]=Ye.a*O*rt*Ft,g[E+20]=Ce,g[E+21]=nt,g[E+22]=it,g[E+23]=ot,_++})(0)}return{data:g,visibleCount:_}};if(e.shadows&&e.shadows.length>0)for(let o of e.shadows){let s=de(o.color),y=o.offset?.x??0,S=o.offset?.y??0,I=o.blurRadius??0,{data:T,visibleCount:M}=Se(Z,s,y,S,I);if(M>0){let g=T.subarray(0,M*24),G=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,g,M,o.color,t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:G})}}let Oe=e.animators?.find(o=>"props"in o&&o.props?.longShadow&&(o.props?.longShadow?.length??0)>0);if(Oe&&"props"in Oe){let o=Oe,s=o.props?.longShadow;if(s){let y=o.props?.spring,S=s.length,I=s.angle;if(y){let G=(e.frame??0)/(e.fps??30),p=$e(G,y.stiffness,y.damping,y.mass,y.initialVelocity);S=Math.max(0,s.length*p),I=s.angle+(1-Math.min(1,p))*25}else{let p=1-(1-Math.min(1,(e.frame??0)/36))**3;S=s.length*p}let T=I*Math.PI/180,M=Math.max(4,Math.min(64,s.steps??16)),g=S/M,_=de(s.color??"#000000");for(let G=1;G<=M;G++){let p=G*g,R=p*Math.cos(T),N=p*Math.sin(T),W=G/M,O=(s.startOpacity??.8)*(1-W)+(s.endOpacity??0)*W,$={..._,a:_.a*O},{data:J,visibleCount:se}=Se(c,$,R,N,0);if(se>0){let V=J.subarray(0,se*24),Me=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,V,se,s.color??"black",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:(e.opacity??1)*O,transform:e.matrix,customParam:Me})}}}}if(d&&u){let o=de(e.stroke),{data:s,visibleCount:y}=Se(u,o);if(y>0){let S=s.subarray(0,y*24),T=e.fontStyle==="italic"?.21:0;t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),u,S,y,e.stroke??"#000000",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:T})}}let He=new Set,Je=!1;for(let o of x.glyphs)o.font&&o.font!==Z&&(He.add(o.font),Je=!0);let et=e.fontStyle==="italic"?.21:0;if(Je){He.add(Z);for(let o of He){if(t.device&&!o.curvesTex&&B.ensureTextures(t.device,o),!o.curvesTex)continue;let{data:s,visibleCount:y}=Se(o,void 0,0,0,void 0,S=>(S.font??Z)===o);if(y>0){let S=s.subarray(0,y*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),o,S,y,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}}else{let{data:o,visibleCount:s}=Se(Z);if(s>0){let y=o.subarray(0,s*24);t.renderer.slugPipeline.draw(n,t.renderer.getTransformStack(),Z,y,s,e.color??"white",t.renderer.getSurfaceWidth(),t.renderer.getSurfaceHeight(),{opacity:e.opacity??1,transform:e.matrix,customParam:et})}}for(let o of x.emojis){let s=e.animation?.applyBy==="line"?0:Math.floor(o.x/(r+m)),y=b[s%q]??0,S=e.opacity??1,I=0,T=0,M=0,g=1;if(e.isVideoMode!==!1){let{p_in:J,p_out:se}=je(z,K,ae,ne,y,q,!0),V=_e(J,se,f,ie,l,te,z,K,ae,ne,y,e.opacity??1,!0);if(!V.visible)continue;S=V.opacity,I=V.transX,T=V.transY,M=V.rot,g=V.scale}if(e.animators&&e.animators.length>0){let J=At(e.animators,{charIndex:s,wordIndex:0,lineIndex:o.lineIndex},{charsCount:x.charsCount,wordsCount:x.wordsCount,linesCount:x.linesCount},{transX:I,transY:T,rot:M,scale:g,scaleX:1,scaleY:1,opacity:S,blurAmount:0},!0);I=J.transX,T=J.transY,M=J.rot,g=J.scale,S=J.opacity}let _=jt(t.device,o.char,o.size),G=o.size*1.5,p=(G-o.size)/2,R={x:e.dstRect.x+o.x+a-p,y:re.y+o.y+a-p,width:G,height:G},N=new DOMMatrix,W=R.x+G/2,O=R.y+G/2;N=N.translate(W,O),(I!==0||T!==0)&&(N=N.translate(I,T)),M!==0&&(N=N.rotate(M)),g!==1&&(N=N.scale(g)),N=N.translate(-W,-O);let $=e.matrix?e.matrix.multiply(N):N;t.renderer.drawTextureRegion(n,_,{x:0,y:0,width:_.width,height:_.height},R,{opacity:S,transform:$})}if(e.typewriter?.cursor?.enabled&&w&&w.isCursorVisible&&(!e.typewriter.cursor.hideOnComplete||w.visibleChars<e.text.length)){let o=e.typewriter.cursor,s=o.color??e.color??"white",y=o.width??2.5,S=o.spacing??3,I=e.dstRect.x+a,T=re.y+a;if(x.glyphs.length>0){let M=x.glyphs[x.glyphs.length-1],g=r/c.unitsPerEm,_=M.clusterAdvance??(M.cp?.advanceWidth||0)*g,G=M.clusterX??M.x,p=o.style==="underscore"||o.style==="block"?r*.5:y;I=e.dstRect.x+a+(M.rtl?G-S-p:G+_+S),T=M.y+re.y+a}o.style==="underscore"?t.renderer.drawRect(n,{x:I,y:T,width:r*.5,height:y},s,0,{opacity:e.opacity??1}):o.style==="block"?t.renderer.drawRect(n,{x:I,y:T-r*.8,width:r*.5,height:r},s,0,{opacity:e.opacity??1}):t.renderer.drawRect(n,{x:I,y:T-r*.8,width:y,height:r},s,0,{opacity:e.opacity??1})}}we();function Tt(t){let e=t.trim().replace(",",".").split(":");if(e.length<2||e.length>3)throw new Error(`Invalid timestamp: ${t}`);if(e.length===2){let[d,u]=e;return parseInt(d,10)*60+parseFloat(u)}let[i,r,c]=e;return parseInt(i,10)*3600+parseInt(r,10)*60+parseFloat(c)}function Ut(t){let n=t.replace(/\r\n/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`),e=[];for(let i=0;i<n.length;i++){let r=n[i],c=n[i+1];if(r?.match(/([0-9]+)/)&&c?.includes(" --> ")){let d=c.split(" --> "),u=Tt(d[0]),m=Tt(d[1]);e.push({text:"",startMs:u*1e3,endMs:m*1e3,confidence:1,timestampMs:(u+m)/2*1e3})}else r?.includes(" --> ")||(r?.trim()===""?e.length>0&&(e[e.length-1].text=e[e.length-1].text.trim()):e.length>0&&(e[e.length-1].text+=r+`
|
|
4
|
+
`))}return{captions:e.map(i=>({...i,text:i.text.trimEnd()}))}}function Dt(t,n,e=!0){if(!t||t.length===0)return null;let i=t.find(r=>n>=r.startMs&&n<r.endMs);return i||(!e&&t.length>0?t[0]:null)}function un(t,n,e){if(!t||t.length===0)return 160;let i=n.fontSize??48,r=n.letterSpacing??0,c=n.lineHeight!==void 0&&n.lineHeight<10?n.lineHeight*i:n.lineHeight??i*1.2,d=n.padding??(n.background?12:0),u=e?Math.max(10,e-d*2):void 0,m=n.fontFamily??"Inter";B.isFailed(m)&&(m="Inter");let C=B.getFont(m,n.fontWeight,null,void 0,i),h=0;for(let k of t){if(!k.text)continue;let a=0;if(C&&C.codePoints){let w=be.measure(k.text,C,i,r,c,u);a=Math.ceil(w.height)}else{let w=k.text.split(`
|
|
5
|
+
`),v=0;for(let X of w)if(u){let j=X.length*i*.55+r*X.length,P=Math.max(1,Math.ceil(j/u));v+=P}else v+=1;a=Math.ceil(v*c)}let A=a+d*2;A>h&&(h=A)}return Math.max(20,h||160)}var Ze=class{cache=new Map;resolvedCache=new Map;getCached(n){return this.resolvedCache.get(n)}setCached(n,e){this.resolvedCache.set(n,e)}clear(){this.cache.clear(),this.resolvedCache.clear()}async load(n){if(!n)return[];let e=this.resolvedCache.get(n);if(e)return e;let i=this.cache.get(n);return i||(i=(async()=>{let r="";if(n.startsWith("data:")){let d=n.indexOf(",");if(d!==-1){let u=n.substring(0,d),m=n.substring(d+1);r=u.includes(";base64")?typeof Buffer<"u"?Buffer.from(m,"base64").toString("utf-8"):new TextDecoder().decode(Uint8Array.from(atob(m),h=>h.charCodeAt(0))):decodeURIComponent(m)}}else if(n.includes("-->"))r=n;else if(n.startsWith("http://")||n.startsWith("https://")){let d=await fetch(n);if(!d.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await d.text()}else{let d=n;if(d.startsWith("file://"))try{d=new URL(d).pathname}catch{d=d.replace(/^file:\/\//,"")}if(typeof Re<"u"&&Re.versions?.node)try{r=await(await import("./shims/fs-promises.mjs")).readFile(d,"utf-8")}catch{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}else{let u=await fetch(n);if(!u.ok)throw new Error(`Failed to fetch SRT: ${n}`);r=await u.text()}}let c=Ut(r).captions;return this.resolvedCache.set(n,c),c})(),this.cache.set(n,i),i.catch(()=>{this.cache.delete(n),this.resolvedCache.delete(n)})),i}},Nt=new Ze;async function dn(t,n,e){if(!e.src)return;let i=await Nt.load(e.src);if(!i||i.length===0)return;let r=e.frame/e.fps*1e3,c=Dt(i,r,e.isVideoMode!==!1);if(!c)return;let d=c.text,u=e.dstRect.width,m=e.padding??(e.textBackgroundColor?12:0),C=Math.max(10,u-m*2),h=e.maxWidth!==void 0?Math.min(e.maxWidth,C):C,k=e.fontSize??48,a=e.fontFamily??"Inter";if(B.isFailed(a)&&(a="Inter"),B.isFailed(a))return;let A=e.letterSpacing??0,w=B.getFont(a,e.fontWeight,t.device,void 0,k);if(!w||!w.curvesTex){let z=Ge(a);B.preloadSlugFont(t.device,a,z,void 0,e.renderId).catch(K=>{console.warn(`[drawCaptionNode] Failed to load Slug font for ${a}:`,K)});return}let v=e.lineHeight!==void 0&&e.lineHeight<10?e.lineHeight*k:e.lineHeight??k*1.2,X=be.measure(d,w,k,A,v,h,void 0,e.direction),j=X.width,P=X.height,H=j+m*2,ee=P+m*2,oe=e.align??"center",x=X.layout?.glyphs[0]?.baseRtl??e.direction==="rtl",fe=oe==="start"?x?"right":"left":oe==="end"?x?"left":"right":oe,le=0;fe==="center"?le=Math.max(0,(u-H)/2):fe==="right"&&(le=Math.max(0,u-H));let re=e.dstRect.height,U=e.verticalAlign??e.textAlignVertical??"bottom",ue=0;U==="top"?ue=0:U==="middle"?ue=(re-ee)/2:ue=re-ee;let he={x:e.dstRect.x+le,y:e.dstRect.y+ue,width:H,height:ee},Z=e.opacity??1;if(e.textBackgroundColor){let z=e.strokeRadius??e.borderRadius??8;t.renderer.drawRRect(n,{rect:he,rx:z,ry:z},e.textBackgroundColor,{opacity:Z})}let me={x:he.x+m,y:he.y+m,width:j,height:P};pt(t,n,{...e,text:d,dstRect:me,width:h,height:P,align:oe,opacity:Z,isCaption:!0,animation:void 0,textBackgroundColor:void 0})}export{Ct as a,zt as b,Mt as c,pt as d,un as e,Nt as f,dn as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
1
|
+
import{a as l}from"./chunk-LQENNFBA.mjs";import{b as w}from"./chunk-HYBAPT6I.mjs";import{d as u,e as p}from"./chunk-BVF64D6H.mjs";p();var g=null,i=new Map,b=new Set,c=new Map,F=new Map;async function v(e,r){let t=r;if(r.startsWith("/"))if(w)t=`${w}${r}`;else{let s=await import("./shims/fs-promises.mjs");try{await s.access(r)}catch{throw new Error(`Relative font URL "${r}" cannot be resolved because BASE_URL is not configured.`)}}if(i.has(t))return i.get(t);if(t.startsWith("file://"))try{let s=new URL(t).pathname;return u.platform==="win32"&&s.startsWith("/")&&(s=s.slice(1)),i.set(t,s),s}catch{let s=t.replace(/^file:\/\//,"");return i.set(t,s),s}if(!t.startsWith("http://")&&!t.startsWith("https://"))return t;let n=await import("./shims/fs-promises.mjs"),a=await import("./shims/path.mjs"),o=await import("./shims/os.mjs");g||(g=a.join(o.tmpdir(),"gatewai-fonts"),await n.mkdir(g,{recursive:!0}).catch(()=>{}));let $=e.replace(/[^a-zA-Z0-9_-]/g,"_"),m=new URL(t),f=a.extname(m.pathname);(!f||f.length>5)&&(f=".ttf");let d=a.join(g,`${$}-${Date.now()}${f}`),h=await fetch(t);if(!h.ok)throw new Error(`Failed to fetch font from ${t}: ${h.statusText}`);let P=await h.arrayBuffer();return await n.writeFile(d,Buffer.from(P)),i.set(t,d),d}async function U(e,r){if(c.has(e))return c.get(e);let t=globalThis;try{let n=await v(e,r);c.set(e,n),l(n===r?`[registerHeadlessFont] Registered "${e}" from ${n}`:`[registerHeadlessFont] Registered "${e}" from ${r} (cached at ${n})`);try{t.OffscreenCanvas&&typeof t.OffscreenCanvas.registerFont=="function"&&(t.OffscreenCanvas.registerFont(n,{family:e}),b.add(e))}catch(a){console.warn(`[registerHeadlessFont] SkiaCanvas registration failed for "${e}" (non-fatal):`,a)}return n}catch(n){console.warn(`[registerHeadlessFont] Failed to download font "${e}" from ${r}:`,n)}}function C(e){return c.get(e)}async function L(e){let r=F.get(e);if(r)return r;let t=c.get(e);if(t)try{let a=await(await import("./shims/fs-promises.mjs")).readFile(t),o=new Uint8Array(a.length);return o.set(a),l(`[getHeadlessFontData] Read local font binary for "${e}" from: ${t} (${o.length} bytes)`),F.set(e,o),o}catch(n){console.warn(`[getHeadlessFontData] Failed to read font file from ${t}:`,n)}}export{U as a,C as b,L as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as dt}from"./chunk-37EFVZWT.mjs";import{a as ft}from"./chunk-4VOHF3FF.mjs";import{i as lt,l as N}from"./chunk-24P6DAB3.mjs";import{c as mt,e as et}from"./chunk-ZIIFTWDH.mjs";import{C as ut}from"./chunk-63SFBHEH.mjs";import{d as L,e as j}from"./chunk-BVF64D6H.mjs";j();j();j();function ht(e,n){return Math.round(e*n)}function X(e,n,s={timeOffsetSec:0}){if(!e)return e;let{operation:u,metadata:d={},children:c=[]}=e,{timeOffsetSec:p,durationLimitMs:i}=s;if(!u)return{...e,children:(c||[]).map(t=>X(t,n,s))};let m=u.timeline,y=m?.segments||[],f=N(e)?.durationMs??0;if(y.length>0){let t=y.reduce((a,A)=>{let z=A.endSec!=null?A.endSec-A.startSec:0,v=Math.max(1,Math.round(z*n));return a+v},0);t>0&&(f=t/n*1e3)}let h={...u},o=m?.startFrame??h.startFrame;if(typeof o=="number"){let t=ht(p,n);h.startFrame=o-t}let F={...d,durationMs:f},r=typeof o=="number"||h.op==="compose"?{timeOffsetSec:0,durationLimitMs:void 0}:{timeOffsetSec:p,durationLimitMs:i},g=(c||[]).map(t=>X(t,n,r));return{metadata:F,operation:h,children:g}}var Ft=typeof L<"u"&&/^(debug|trace)$/i.test(L.env?.LOG_LEVEL??""),b={debug:(e,...n)=>{Ft&&(typeof e=="object"&&e!==null?console.info("[AudioExtractor]",e,...n):console.info(`[AudioExtractor] ${e}`,...n))},warn:(e,...n)=>{typeof e=="object"&&e!==null?console.warn("[AudioExtractor]",e,...n):console.warn(`[AudioExtractor] ${e}`,...n)},error:(e,...n)=>{typeof e=="object"&&e!==null?console.error("[AudioExtractor]",e,...n):console.error(`[AudioExtractor] ${e}`,...n)}},yt=()=>{if(typeof window>"u")return Promise.resolve();let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))},Mt=async(e=3e4)=>{await new Promise(s=>setTimeout(s,100));let n=Date.now();return new Promise(s=>{let u=()=>{let d=typeof window<"u"&&window.renderer_delayRenderHandles?window.renderer_delayRenderHandles:[],c=typeof globalThis<"u"?globalThis.__GATEWAI_DELAYS__:null,p=d.length>0,i=c instanceof Set&&c.size>0;if(!p&&!i){s();return}if(Date.now()-n>e){b.warn(`[AudioExtractor] waitForDelayRender timed out waiting for handles: ${JSON.stringify({browserHandles:d,globalDelays:c?Array.from(c):[]})}`),s();return}setTimeout(u,50)};u()})};async function xt(e){b.debug(`[AudioExtractor] decodeAudioSource started for url: ${e}`);try{if(typeof window<"u"&&typeof window.document<"u"&&!(typeof L<"u"&&L.versions&&L.versions.node)){b.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${e}...`);let u=window.AudioContext||window.webkitAudioContext;if(!u)throw new Error("AudioContext is not supported in this browser");let d=new u;try{let c=await fetch(e);if(b.debug(`[AudioExtractor] Fetch response status for ${e}: ${c.status} (${c.statusText})`),!c.ok)throw new Error(`Failed to fetch audio source: ${c.statusText}`);let p=await c.arrayBuffer();b.debug(`[AudioExtractor] Fetched ${p.byteLength} bytes. Decoding audio data...`);let i=await d.decodeAudioData(p);b.debug(`[AudioExtractor] Decoded successfully: ${i.numberOfChannels} channels, sampleRate: ${i.sampleRate}, duration: ${i.duration}s`);let m=[];for(let y=0;y<i.numberOfChannels;y++)m.push(new Float32Array(i.getChannelData(y)));return{channels:m,sampleRate:i.sampleRate}}finally{d.close(),b.debug(`[AudioExtractor] AudioContext closed for ${e}`)}}let s=!1;try{b.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${e}...`);let u=await et.acquire(e);s=!0,b.debug("[AudioExtractor] inputStore acquired. Retrieving primary audio track...");let d=await u.getPrimaryAudioTrack();if(!d)return b.warn(`[AudioExtractor] No primary audio track found in input for ${e}`),null;let p=new mt(d).samples(0),i=[],m=0,y=48e3,f=1;b.debug(`[AudioExtractor] Starting mediabunny generator loop for ${e}...`);for await(let o of p){y=o.sampleRate,f=o.numberOfChannels;let F=o.numberOfFrames;if(i.length===0)for(let l=0;l<f;l++)i.push([]);for(let l=0;l<f;l++){let r;try{let g=o.allocationSize({planeIndex:l,format:"f32-planar"});r=new Float32Array(g/4),o.copyTo(r,{planeIndex:l,format:"f32-planar"})}catch{let g=o.allocationSize({planeIndex:l});if(o.format==="s16"||o.format==="s16-planar"){let t=new Int16Array(g/2);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/32768}else if(o.format==="s32"||o.format==="s32-planar"){let t=new Int32Array(g/4);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=(t[a]??0)/2147483648}else if(o.format==="u8"||o.format==="u8-planar"){let t=new Uint8Array(g);o.copyTo(t,{planeIndex:l}),r=new Float32Array(t.length);for(let a=0;a<t.length;a++)r[a]=((t[a]??128)-128)/128}else r=new Float32Array(g/4),o.copyTo(r,{planeIndex:l})}i[l].push(r)}m+=F,o.close()}return b.debug(`[AudioExtractor] Generator loop finished. Decoded total frames: ${m}`),m===0||i.length===0?null:{channels:i.map(o=>{let F=new Float32Array(m),l=0;for(let r of o)F.set(r,l),l+=r.length;return F}),sampleRate:y}}catch(u){if(u instanceof Error&&u.message.includes("Cannot open local media file"))throw u;if(typeof L<"u"&&L.versions?.node)try{let{execSync:d}=await import("./child_process-AIL2NBWS.mjs"),c=d(`ffmpeg -v error -i "${e}" -f f32le -ar 48000 -ac 2 pipe:1`,{maxBuffer:100*1024*1024}),p=c.byteLength/4,i=p/2,m=new Float32Array(c.buffer,c.byteOffset,p),y=new Float32Array(i),f=new Float32Array(i);for(let h=0;h<i;h++)y[h]=m[h*2],f[h]=m[h*2+1];return{channels:[y,f],sampleRate:48e3}}catch(d){b.warn({ffmpegErr:d},`[AudioExtractor] ffmpeg fallback decode failed for ${e}`)}return b.error({err:u},`[AudioExtractor] Failed to decode source ${e}`),null}finally{s&&et.release(e)}}catch(n){if(n instanceof Error&&n.message.includes("Cannot open local media file"))throw n;return b.error({err:n},`[AudioExtractor] Failed to decode source ${e}`),null}}async function pt(e,n,s,u,d,c){let p=new Float32Array(d),m=n/s*u,y=1e5;for(let f=0;f<d;f++){f>0&&f%y===0&&await yt();let h=c+f*m,o=Math.floor(h),F=Math.ceil(h);if(o<0){p[f]=0;continue}if(o>=e.length)break;let l=h-o,r=e[o]??0,g=F>=0&&F<e.length?e[F]??r:r,t=r+l*(g-r);p[f]=Number.isFinite(t)?t:0}return p}async function It(e,n,s=48e3,u,d){b.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${n}, targetSampleRate: ${s}`),await Mt(),dt.registerSignalsFromComposition(d,e);let c=N(e)?.durationMs||1e3,p=c/1e3,i=Math.ceil(p*s);b.debug(`[AudioExtractor] Composition total duration: ${c}ms (${p}s). Total mixed samples to allocate: ${i}`);let m=new Float32Array(i),y=new Float32Array(i),f=[m,y],h=new Map;async function o(t,a,A,z,v,B){if(!t)return null;let C=t.operation;if(!C){let k=N(t)?.durationMs??0,D=Math.round(k/1e3*n),U=B!==null?D>0?Math.min(B,D):B:D,O=Math.ceil(U/n*s);if(O<=0)return null;let q=new Float32Array(O),G=new Float32Array(O),H=[q,G];for(let M of t.children){let Y=await o(M,a,A,z,v,U);if(Y){let x=M.operation,S=x?.startFrame??x?.timeline?.startFrame??0,E=Math.round(S/n*s);for(let P=0;P<2;P++){let w=H[P],R=Y[P],T=Math.min(R.length,w.length-E);for(let $=0;$<T;$++)E+$>=0&&(w[E+$]+=R[$])}}}return H}let W=z*(C.volume??1)*(C.opacity===0?0:1)*(C.muted?0:1),nt=v,wt=C.startFrame??C.timeline?.startFrame??0,bt=A+wt,ot=C.timeline?.segments||[],V=C,rt=V.op==="CompositorLayer"?(V.mediaStartFrame??V.trimStartFrames??null)!==null?(V.mediaStartFrame??V.trimStartFrames??0)/n:Math.round((V.trimStartSec??0)*n)/n:0,At=N(t)?.durationMs??0,K=Math.round(At/1e3*n),St=B!==null?K>0?Math.min(B,K):B:K,I=Math.ceil(St/n*s);if(I<=0)return null;let at=new Float32Array(I),it=new Float32Array(I),Z=[at,it],st=async(k,D)=>{let U=k?k.startSec:0,O=a+rt+U,q=bt+D,G=0;k?G=Math.max(1,Math.round(((k.endSec??0)-k.startSec)*n)):G=K;let H=B!==null?Math.min(B,G):G,M=Math.round(D/n*s);if(C.op==="source"){let x=lt(t),S=ft(t);if(S.sourceUrl&&(x==="Audio"||x==="Video")&&W>0){let E=Math.max(.5,nt*(Number(S.speed)||1)),P=Math.max(0,(Number(S.trimStartSec)||0)+O),w=h.get(S.sourceUrl);if(w===void 0&&(w=await xt(S.sourceUrl),h.set(S.sourceUrl,w)),w){let R=H/n,T=Math.min(I-M,Math.ceil(R*s));if(T>0&&M<I){let $=Math.round(P*w.sampleRate),Q=w.channels[0],tt=w.channels.length>1?w.channels[1]:w.channels[0],_=await pt(Q,w.sampleRate,s,E,T,$),gt=await pt(tt,w.sampleRate,s,E,T,$);for(let J=0;J<T;J++){let ct=M+J;at[ct]+=_[J]*W,it[ct]+=gt[J]*W}}}await yt()}}if(t.children)for(let x of t.children){let S=await o(x,O,q,W,nt,H);if(S){let E=x.operation,P=E?.startFrame??E?.timeline?.startFrame??0,w=Math.round(P/n*s),R=M+w;for(let T=0;T<2;T++){let $=Z[T],Q=S[T],tt=Math.min(Q.length,$.length-R);for(let _=0;_<tt;_++)R+_>=0&&($[R+_]+=Q[_])}}}let Y=ut.get(C.op);if(Y)try{let x=H/n,S=Math.min(I-M,Math.ceil(x*s));if(S>0&&M<I&&M>=0){let E=Z.map(R=>R.subarray(M,M+S)),P=(q/n+O-rt)*1e3,w=N(t)?.durationMs??void 0;await Y(E,s,t,{device:u,frame:q,fps:n,renderId:d,elapsedMs:P,durationMs:w})}}catch(x){b.error({err:x},`[AudioExtractor] Custom plugin for operation '${C.op}' failed`)}};if(ot.length>0){let k=0;for(let D of ot){let U=(D.endSec??0)-D.startSec,O=Math.max(1,Math.round(U*n));await st(D,k),k+=O}}else await st(null,0);return Z}let F=X(e,n),l=await o(F,0,0,1,1,null);if(l)for(let t=0;t<2;t++){let a=f[t],A=l[t],z=Math.min(A.length,a.length);for(let v=0;v<z;v++)a[v]=A[v]}h.clear();let r=0;for(let t=0;t<i;t++){let a=Math.abs(m[t]??0),A=Math.abs(y[t]??0);a>r&&(r=a),A>r&&(r=A)}let g=r>.95?.92/r:1;for(let t=0;t<i;t++){let a=(m[t]??0)*g,A=(y[t]??0)*g;m[t]=Number.isFinite(a)?Math.tanh(a):0,y[t]=Number.isFinite(A)?Math.tanh(A):0}return{channels:f,sampleRate:s}}export{xt as a,It as b};
|