framefields 2.1.0 → 2.1.2
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.d.mts +4 -4
- package/dist/audio/index.mjs +11 -11
- package/dist/{audio-C2fLC3Tx.d.mts → audio-CfBpzxn9.d.mts} +3 -3
- package/dist/{audio-C2fLC3Tx.d.mts.map → audio-CfBpzxn9.d.mts.map} +1 -1
- package/dist/{audio-D_4SeMRK.mjs → audio-GGuQ_JI0.mjs} +3 -3
- package/dist/{audio-D_4SeMRK.mjs.map → audio-GGuQ_JI0.mjs.map} +1 -1
- package/dist/{chunk-GMkBE123.mjs → chunk-GBe2k3y8.mjs} +1 -4
- package/dist/{dist-DlzqyRar.mjs → dist-Bb8BoMiw.mjs} +3 -10
- package/dist/dist-Bb8BoMiw.mjs.map +1 -0
- package/dist/{dist-Bun_TUvZ.mjs → dist-DkuDAIrG.mjs} +2 -2
- package/dist/{dist-Bun_TUvZ.mjs.map → dist-DkuDAIrG.mjs.map} +1 -1
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +35 -35
- package/dist/{effects-FTlu0dri.mjs → effects-D6wFg2FR.mjs} +2 -2
- package/dist/{effects-FTlu0dri.mjs.map → effects-D6wFg2FR.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-UM5xaBOx.mjs → fonts-CZMYtbP7.mjs} +2 -2
- package/dist/{fonts-UM5xaBOx.mjs.map → fonts-CZMYtbP7.mjs.map} +1 -1
- package/dist/{gpu-RkpiFGOA.mjs → gpu-DG3gI88-.mjs} +2 -2
- package/dist/{gpu-RkpiFGOA.mjs.map → gpu-DG3gI88-.mjs.map} +1 -1
- package/dist/{index-DsOqONsj.d.mts → index--0vVZDPM.d.mts} +3 -3
- package/dist/{index-DsOqONsj.d.mts.map → index--0vVZDPM.d.mts.map} +1 -1
- package/dist/{index-l03NV8JS.d.mts → index-BcA8rep0.d.mts} +1 -1
- package/dist/{index-l03NV8JS.d.mts.map → index-BcA8rep0.d.mts.map} +1 -1
- package/dist/{index-Db8Z3AtX.d.mts → index-BzQc812z.d.mts} +3 -3
- package/dist/{index-Db8Z3AtX.d.mts.map → index-BzQc812z.d.mts.map} +1 -1
- package/dist/{index-D67p-rHX.d.mts → index-Cpkzy5XR.d.mts} +1 -1
- package/dist/{index-D67p-rHX.d.mts.map → index-Cpkzy5XR.d.mts.map} +1 -1
- package/dist/{index-CzQseCtg.d.mts → index-D__HdInU.d.mts} +4 -4
- package/dist/{index-CzQseCtg.d.mts.map → index-D__HdInU.d.mts.map} +1 -1
- package/dist/{index-CHQ39_Oe.d.mts → index-DpWia6iH.d.mts} +4 -11
- package/dist/index-DpWia6iH.d.mts.map +1 -0
- package/dist/{index-DPicEt8H.d.mts → index-Fciq8bcC.d.mts} +2 -2
- package/dist/{index-DPicEt8H.d.mts.map → index-Fciq8bcC.d.mts.map} +1 -1
- package/dist/index.d.mts +65 -65
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +50 -51
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +11 -13
- package/dist/{preview-DwClLMlU.mjs → preview--rOXbBxl.mjs} +2 -3
- package/dist/preview--rOXbBxl.mjs.map +1 -0
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-JXNG2ACR.mjs → chunk-2MZXSWVT.mjs} +1 -1
- package/dist/preview-engine/{chunk-Q22PJXFJ.mjs → chunk-3UPI4EPV.mjs} +1 -1
- package/dist/preview-engine/{chunk-S2CTIJSI.mjs → chunk-7EPDVSCL.mjs} +1 -1
- package/dist/preview-engine/{chunk-AY7UX37L.mjs → chunk-AXQZX3TC.mjs} +1 -1
- package/dist/preview-engine/{chunk-T2FE5VOW.mjs → chunk-E3HC4GRQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-DIGIQ5MJ.mjs → chunk-FPRXK2WD.mjs} +1 -1
- package/dist/preview-engine/{chunk-EVXWDOCL.mjs → chunk-K773AOF3.mjs} +1 -1
- package/dist/preview-engine/{chunk-IR5DNNWR.mjs → chunk-L3CHEZMZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-PSRQA3QW.mjs → chunk-LBRVQ4GE.mjs} +1 -1
- package/dist/preview-engine/{chunk-U4JIFQRR.mjs → chunk-NEE3KQTX.mjs} +1 -1
- package/dist/preview-engine/{chunk-L6BH5J4P.mjs → chunk-O2RNIQXT.mjs} +1 -1
- package/dist/preview-engine/{chunk-MLY5M7Y5.mjs → chunk-PFA427ZC.mjs} +1 -1
- package/dist/preview-engine/chunk-PNB3ERR3.mjs +1 -0
- package/dist/preview-engine/{chunk-7G3XIOP7.mjs → chunk-PR2BUYCL.mjs} +1 -1
- package/dist/preview-engine/{chunk-TS3JI3BH.mjs → chunk-Q2DPNVIA.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZDQF3OTC.mjs → chunk-QY7MHWZW.mjs} +1 -1
- package/dist/preview-engine/{chunk-44CQSOYE.mjs → chunk-VO2R3DWV.mjs} +1 -1
- package/dist/preview-engine/{chunk-HE4R7EZM.mjs → chunk-WSIURGP2.mjs} +1 -1
- package/dist/preview-engine/{chunk-OG62XGCT.mjs → chunk-ZH5MZQTZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-EYWPOCZW.mjs → chunk-ZNL4W4DK.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +2 -2
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/renderers-2H7YEUTD.mjs +1 -1
- package/dist/preview-engine/renderers-2P6KXWEZ.mjs +1 -1
- package/dist/preview-engine/renderers-2SVWAB42.mjs +1 -1
- package/dist/preview-engine/renderers-3T7Q4SPP.mjs +1 -0
- package/dist/preview-engine/renderers-4DV4REGM.mjs +1 -0
- package/dist/preview-engine/renderers-57WDL6XN.mjs +1 -1
- package/dist/preview-engine/renderers-6WH7NZCC.mjs +1 -1
- package/dist/preview-engine/{renderers-A6HM64UZ.mjs → renderers-7JTNJE7M.mjs} +1 -1
- package/dist/preview-engine/renderers-7VJN5L3Z.mjs +1 -1
- package/dist/preview-engine/renderers-CQXQHOW2.mjs +1 -0
- package/dist/preview-engine/{renderers-RLHTNLRE.mjs → renderers-D2EJULOJ.mjs} +1 -1
- package/dist/preview-engine/renderers-DXHJAMZR.mjs +1 -1
- package/dist/preview-engine/renderers-FWGMNPYB.mjs +1 -1
- package/dist/preview-engine/renderers-HXFRTIJD.mjs +1 -1
- package/dist/preview-engine/renderers-IWQ3V6AJ.mjs +1 -1
- package/dist/preview-engine/renderers-IXGM55XK.mjs +1 -0
- package/dist/preview-engine/renderers-KVHUVWSN.mjs +1 -0
- package/dist/preview-engine/renderers-KZWGSKRF.mjs +1 -1
- package/dist/preview-engine/{renderers-CRRLV7IO.mjs → renderers-LVDUZZ75.mjs} +1 -1
- package/dist/preview-engine/renderers-M7R2ZJUP.mjs +1 -0
- package/dist/preview-engine/renderers-NWHS7N2L.mjs +1 -1
- package/dist/preview-engine/{renderers-6OGFUSH6.mjs → renderers-O2DZPBOJ.mjs} +1 -1
- package/dist/preview-engine/renderers-OT7D3BUA.mjs +1 -1
- package/dist/preview-engine/{renderers-2VN3AH45.mjs → renderers-P4S7GL64.mjs} +1 -1
- package/dist/preview-engine/renderers-PMOO7DLX.mjs +1 -0
- package/dist/preview-engine/renderers-Q4OFCMXI.mjs +1 -1
- package/dist/preview-engine/renderers-QCCPCH73.mjs +1 -0
- package/dist/preview-engine/renderers-RJO6H4FC.mjs +1 -1
- package/dist/preview-engine/renderers-RRXFJRGI.mjs +1 -0
- package/dist/preview-engine/renderers-T4JMJXWL.mjs +1 -1
- package/dist/preview-engine/renderers-TAWT3ZSS.mjs +1 -1
- package/dist/preview-engine/{renderers-D6T6IPER.mjs → renderers-TFZST6WW.mjs} +1 -1
- package/dist/preview-engine/renderers-UHTO6BQA.mjs +1 -1
- package/dist/preview-engine/{renderers-U6KY34TP.mjs → renderers-UPKB5OLS.mjs} +1 -1
- package/dist/preview-engine/renderers-VLMQR3DW.mjs +1 -0
- package/dist/preview-engine/renderers-WVTTRCVI.mjs +1 -0
- package/dist/preview-engine/renderers-X5PUIPU5.mjs +1 -0
- package/dist/preview-engine/{renderers-BSKZXITT.mjs → renderers-XCMVZ2XG.mjs} +1 -1
- package/dist/preview-engine/renderers-XHTMRXC5.mjs +1 -1
- package/dist/preview-engine/renderers-YDCDY3BR.mjs +1 -0
- package/dist/preview-engine/renderers-YECY2YFT.mjs +1 -1
- package/dist/preview-engine/renderers-YJNQ4B7B.mjs +1 -0
- package/dist/preview-engine/renderers-YMN6QXK7.mjs +1 -1
- package/dist/preview-engine/{renderers-H46TS3IG.mjs → renderers-YZEVPHPQ.mjs} +1 -1
- package/dist/preview-engine/renderers-Z7YQUFAY.mjs +1 -0
- package/dist/preview-engine/renderers-ZANPE3OK.mjs +1 -1
- package/dist/preview-engine/renderers-ZJTRANIX.mjs +1 -1
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/{program-BqFVw5Mu.mjs → program-Cc5AsBHz.mjs} +2 -2
- package/dist/{program-BqFVw5Mu.mjs.map → program-Cc5AsBHz.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +3 -4
- package/dist/renderer-1VSi7Vum.mjs +5 -0
- package/dist/renderer-4BlpUHQT.mjs +5 -0
- package/dist/{renderer-BLcu9RDt.mjs → renderer-9L0p8IT3.mjs} +3 -3
- package/dist/renderer-AzSX2-mZ.mjs +5 -0
- package/dist/renderer-B-cxK24t.mjs +5 -0
- package/dist/{renderer-CGldH-Zx.mjs → renderer-B1Zn91xt.mjs} +3 -3
- package/dist/{renderer-CGldH-Zx.mjs.map → renderer-B1Zn91xt.mjs.map} +1 -1
- package/dist/renderer-B5d5oM_D.mjs +5 -0
- package/dist/renderer-B8BdNjaN.mjs +5 -0
- package/dist/{renderer-BYqfkwLf.mjs → renderer-BI5rvAyo.mjs} +3 -3
- package/dist/{renderer-BYqfkwLf.mjs.map → renderer-BI5rvAyo.mjs.map} +1 -1
- package/dist/renderer-BKEfeg-4.mjs +5 -0
- package/dist/{renderer-BvpSIFkw.mjs → renderer-BKf1qDwL.mjs} +4 -4
- package/dist/{renderer-BvpSIFkw.mjs.map → renderer-BKf1qDwL.mjs.map} +1 -1
- package/dist/renderer-BLLOkeFB.mjs +5 -0
- package/dist/renderer-BTvov1NH.mjs +5 -0
- package/dist/renderer-BVun05IK.mjs +5 -0
- package/dist/{renderer-DZrQffIP.mjs → renderer-BWVsBB3t.mjs} +2 -2
- package/dist/{renderer-DZrQffIP.mjs.map → renderer-BWVsBB3t.mjs.map} +1 -1
- package/dist/{renderer-Bs4tz_pw.mjs → renderer-BXQQxeNC.mjs} +3 -3
- package/dist/{renderer-Bs4tz_pw.mjs.map → renderer-BXQQxeNC.mjs.map} +1 -1
- package/dist/renderer-B_3h5nhy.mjs +5 -0
- package/dist/renderer-BaZjoFYK.mjs +5 -0
- package/dist/{renderer-DOEsFT7Q.mjs → renderer-BaaOR3Ao.mjs} +2 -2
- package/dist/{renderer-DOEsFT7Q.mjs.map → renderer-BaaOR3Ao.mjs.map} +1 -1
- package/dist/{renderer-DRsPCkxr.mjs → renderer-Bb8T5eRX.mjs} +2 -2
- package/dist/{renderer-DRsPCkxr.mjs.map → renderer-Bb8T5eRX.mjs.map} +1 -1
- package/dist/{renderer-CRIM_XRK.mjs → renderer-Bc6J0iVG.mjs} +2 -2
- package/dist/{renderer-CRIM_XRK.mjs.map → renderer-Bc6J0iVG.mjs.map} +1 -1
- package/dist/renderer-BcApaCVe.mjs +5 -0
- package/dist/{renderer-DAtBnNGC.mjs → renderer-Bg7647VN.mjs} +4 -4
- package/dist/{renderer-DAtBnNGC.mjs.map → renderer-Bg7647VN.mjs.map} +1 -1
- package/dist/{renderer-CLyuu_19.mjs → renderer-BhKIZDsm.mjs} +2 -2
- package/dist/{renderer-CLyuu_19.mjs.map → renderer-BhKIZDsm.mjs.map} +1 -1
- package/dist/{renderer-BqsV75Ml.mjs → renderer-BhhSyHKF.mjs} +3 -3
- package/dist/{renderer-BvG1GF1c.mjs → renderer-Br9BOkQs.mjs} +2 -2
- package/dist/{renderer-BvG1GF1c.mjs.map → renderer-Br9BOkQs.mjs.map} +1 -1
- package/dist/{renderer-CTGe8SqQ.d.mts → renderer-Bs_f_App.d.mts} +2 -2
- package/dist/{renderer-CTGe8SqQ.d.mts.map → renderer-Bs_f_App.d.mts.map} +1 -1
- package/dist/{renderer-DG1NFsSV.mjs → renderer-BygIYH8s.mjs} +2 -2
- package/dist/{renderer-DG1NFsSV.mjs.map → renderer-BygIYH8s.mjs.map} +1 -1
- package/dist/{renderer-BGr_cBKV.mjs → renderer-C--Dqe-3.mjs} +3 -3
- package/dist/{renderer-BGr_cBKV.mjs.map → renderer-C--Dqe-3.mjs.map} +1 -1
- package/dist/renderer-C14mKYCw.mjs +5 -0
- package/dist/{renderer-2Nf9ypST.mjs → renderer-C27RfwXN.mjs} +3 -3
- package/dist/{renderer-2Nf9ypST.mjs.map → renderer-C27RfwXN.mjs.map} +1 -1
- package/dist/{renderer-CgyOylPO.mjs → renderer-C5caYAA3.mjs} +2 -2
- package/dist/{renderer-CgyOylPO.mjs.map → renderer-C5caYAA3.mjs.map} +1 -1
- package/dist/{renderer-Cwhux4VX.mjs → renderer-C5zpaQed.mjs} +2 -2
- package/dist/{renderer-Cwhux4VX.mjs.map → renderer-C5zpaQed.mjs.map} +1 -1
- package/dist/{renderer-Bq_dO0LG.mjs → renderer-C7UZLOYk.mjs} +2 -2
- package/dist/{renderer-Bq_dO0LG.mjs.map → renderer-C7UZLOYk.mjs.map} +1 -1
- package/dist/{renderer-D0nWLogn.mjs → renderer-C92mwhZz.mjs} +2 -2
- package/dist/{renderer-D0nWLogn.mjs.map → renderer-C92mwhZz.mjs.map} +1 -1
- package/dist/{renderer-v0vuUUUI.mjs → renderer-CAJe9eLS.mjs} +2 -2
- package/dist/{renderer-v0vuUUUI.mjs.map → renderer-CAJe9eLS.mjs.map} +1 -1
- package/dist/renderer-CFqhAXkH.mjs +5 -0
- package/dist/renderer-CK-spD4j.mjs +5 -0
- package/dist/renderer-CLLzQTIk.mjs +5 -0
- package/dist/{renderer-C3RfT8Gv.mjs → renderer-CMsjnZ0G.mjs} +3 -3
- package/dist/{renderer-C3RfT8Gv.mjs.map → renderer-CMsjnZ0G.mjs.map} +1 -1
- package/dist/renderer-COwa6xlF.mjs +5 -0
- package/dist/renderer-CQPuuoVf.mjs +6 -0
- package/dist/renderer-CRd-cDqZ.mjs +5 -0
- package/dist/renderer-CTVnQAUm.mjs +5 -0
- package/dist/renderer-CbiEBSGx.mjs +5 -0
- package/dist/renderer-Cl7PruQ1.mjs +5 -0
- package/dist/renderer-CmuGGUDR.mjs +5 -0
- package/dist/{renderer-D8C-pamu.mjs → renderer-CoGP4Mvf.mjs} +2 -2
- package/dist/{renderer-D8C-pamu.mjs.map → renderer-CoGP4Mvf.mjs.map} +1 -1
- package/dist/renderer-CoNRrfqx.mjs +5 -0
- package/dist/{renderer-2uN2cd0y.mjs → renderer-CrAqu3Rg.mjs} +2 -2
- package/dist/{renderer-2uN2cd0y.mjs.map → renderer-CrAqu3Rg.mjs.map} +1 -1
- package/dist/renderer-CvIGa0mE.mjs +5 -0
- package/dist/renderer-CwMDPv0p.mjs +5 -0
- package/dist/{renderer-Dpj68gTn.mjs → renderer-CydWqyf0.mjs} +2 -2
- package/dist/{renderer-Dpj68gTn.mjs.map → renderer-CydWqyf0.mjs.map} +1 -1
- package/dist/{renderer-B4oS8ZFO.mjs → renderer-CzBQgGD2.mjs} +4 -4
- package/dist/{renderer-B4oS8ZFO.mjs.map → renderer-CzBQgGD2.mjs.map} +1 -1
- package/dist/{renderer-Dmv_Aj6x.mjs → renderer-D0aZNkQE.mjs} +3 -3
- package/dist/{renderer-Dmv_Aj6x.mjs.map → renderer-D0aZNkQE.mjs.map} +1 -1
- package/dist/{renderer-BwAqwTQq.mjs → renderer-D2BRlqof.mjs} +2 -2
- package/dist/{renderer-BwAqwTQq.mjs.map → renderer-D2BRlqof.mjs.map} +1 -1
- package/dist/{renderer-D4sYVV-I.mjs → renderer-D2FFvxsq.mjs} +3 -3
- package/dist/{renderer-D4sYVV-I.mjs.map → renderer-D2FFvxsq.mjs.map} +1 -1
- package/dist/{renderer-DPYB6ZcB.mjs → renderer-D8-zNjyz.mjs} +2 -2
- package/dist/{renderer-DPYB6ZcB.mjs.map → renderer-D8-zNjyz.mjs.map} +1 -1
- package/dist/{renderer-DhEyjn6Q.mjs → renderer-DDqwds9R.mjs} +2 -2
- package/dist/{renderer-DhEyjn6Q.mjs.map → renderer-DDqwds9R.mjs.map} +1 -1
- package/dist/{renderer-CpKNqciR.mjs → renderer-DGtBOdst.mjs} +3 -3
- package/dist/{renderer-BwVfhrEx.mjs → renderer-DKqG9Lek.mjs} +2 -2
- package/dist/{renderer-BwVfhrEx.mjs.map → renderer-DKqG9Lek.mjs.map} +1 -1
- package/dist/renderer-DOHbhGPu.mjs +5 -0
- package/dist/renderer-DOmA6IKc.mjs +5 -0
- package/dist/{renderer-BgnJUx24.mjs → renderer-DUhXH5Tz.mjs} +3 -3
- package/dist/{renderer-BgnJUx24.mjs.map → renderer-DUhXH5Tz.mjs.map} +1 -1
- package/dist/{renderer-CH9Qtpy7.mjs → renderer-DVnVnS3c.mjs} +2 -2
- package/dist/{renderer-CH9Qtpy7.mjs.map → renderer-DVnVnS3c.mjs.map} +1 -1
- package/dist/{renderer-DZLJnnU2.mjs → renderer-DWEvQ-hQ.mjs} +3 -3
- package/dist/{renderer-DZLJnnU2.mjs.map → renderer-DWEvQ-hQ.mjs.map} +1 -1
- package/dist/renderer-DX2qEJTL.mjs +2173 -0
- package/dist/renderer-DX2qEJTL.mjs.map +1 -0
- package/dist/{renderer-CEGbqT2m.mjs → renderer-DX8aBDqR.mjs} +2 -2
- package/dist/{renderer-CEGbqT2m.mjs.map → renderer-DX8aBDqR.mjs.map} +1 -1
- package/dist/{renderer-BkN20ZKO.mjs → renderer-DYIPWN_B.mjs} +4 -4
- package/dist/{renderer-BkN20ZKO.mjs.map → renderer-DYIPWN_B.mjs.map} +1 -1
- package/dist/{renderer-Q63y7HP_.mjs → renderer-DZD2G76E.mjs} +2 -2
- package/dist/{renderer-Q63y7HP_.mjs.map → renderer-DZD2G76E.mjs.map} +1 -1
- package/dist/{renderer-B12_76qk.mjs → renderer-Da06_9FZ.mjs} +3 -3
- package/dist/{renderer-B12_76qk.mjs.map → renderer-Da06_9FZ.mjs.map} +1 -1
- package/dist/{renderer-DHAErBtJ.mjs → renderer-DkyXqrQ6.mjs} +2 -2
- package/dist/{renderer-DHAErBtJ.mjs.map → renderer-DkyXqrQ6.mjs.map} +1 -1
- package/dist/renderer-DmCWc4JL.mjs +5 -0
- package/dist/{renderer-DKtP7-fr.mjs → renderer-Dno-fujw.mjs} +2 -2
- package/dist/{renderer-DKtP7-fr.mjs.map → renderer-Dno-fujw.mjs.map} +1 -1
- package/dist/{renderer-BO2lYmtE.mjs → renderer-DoYdfDEA.mjs} +4 -4
- package/dist/{renderer-BO2lYmtE.mjs.map → renderer-DoYdfDEA.mjs.map} +1 -1
- package/dist/{renderer-Cjq1s3br.mjs → renderer-DqjITuT-.mjs} +2 -2
- package/dist/{renderer-Cjq1s3br.mjs.map → renderer-DqjITuT-.mjs.map} +1 -1
- package/dist/{renderer-BjTq3a0L.mjs → renderer-Dy-DBU0X.mjs} +3 -3
- package/dist/{renderer-BjTq3a0L.mjs.map → renderer-Dy-DBU0X.mjs.map} +1 -1
- package/dist/{renderer-to9DwqXK.mjs → renderer-DyzNM721.mjs} +2 -2
- package/dist/{renderer-to9DwqXK.mjs.map → renderer-DyzNM721.mjs.map} +1 -1
- package/dist/{renderer-CjT5Zy-J.mjs → renderer-DzrM1KMN.mjs} +3 -3
- package/dist/{renderer-CjT5Zy-J.mjs.map → renderer-DzrM1KMN.mjs.map} +1 -1
- package/dist/{renderer-D5z3WDkm.mjs → renderer-FHyZn0em.mjs} +2 -2
- package/dist/{renderer-D5z3WDkm.mjs.map → renderer-FHyZn0em.mjs.map} +1 -1
- package/dist/{renderer-Bsaokil3.mjs → renderer-NXdm6HLb.mjs} +3 -3
- package/dist/{renderer-Bsaokil3.mjs.map → renderer-NXdm6HLb.mjs.map} +1 -1
- package/dist/renderer-OLaYikwi.mjs +5 -0
- package/dist/renderer-Q75RC5Uz.mjs +5 -0
- package/dist/renderer-T0LJ4Po3.mjs +5 -0
- package/dist/renderer-VuXt1hfq.mjs +5 -0
- package/dist/{renderer-DzhRNdBS.mjs → renderer-_1xGBbxn.mjs} +6 -6
- package/dist/{renderer-DzhRNdBS.mjs.map → renderer-_1xGBbxn.mjs.map} +1 -1
- package/dist/{renderer-C3cYDT3m.mjs → renderer-c4AorKyw.mjs} +3 -3
- package/dist/renderer-hY_2WLt3.mjs +5 -0
- package/dist/{renderer-BpZaHFRc.mjs → renderer-qsg-JMuN.mjs} +4 -4
- package/dist/{renderer-BpZaHFRc.mjs.map → renderer-qsg-JMuN.mjs.map} +1 -1
- package/dist/{renderer-D1lynYuy.mjs → renderer-timEC0Gl.mjs} +4 -4
- package/dist/{renderer-D1lynYuy.mjs.map → renderer-timEC0Gl.mjs.map} +1 -1
- package/dist/renderer-y4EqE06a.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-DlFq8jmz.mjs → renderers-CP8CFWDs-CMYe4kvZ.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-DlFq8jmz.mjs.map → renderers-CP8CFWDs-CMYe4kvZ.mjs.map} +1 -1
- package/dist/signals/index.d.mts +6 -6
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-BDkO0xcZ.mjs → signals-DGRs6ddH.mjs} +2 -2
- package/dist/{signals-BDkO0xcZ.mjs.map → signals-DGRs6ddH.mjs.map} +1 -1
- package/package.json +56 -56
- package/dist/client-dVxUnmHz.mjs +0 -66
- package/dist/client-dVxUnmHz.mjs.map +0 -1
- package/dist/dist-DlzqyRar.mjs.map +0 -1
- package/dist/dist-cjs-91nR6B7Z.mjs +0 -48
- package/dist/dist-cjs-91nR6B7Z.mjs.map +0 -1
- package/dist/dist-cjs-BAIenEMC.mjs +0 -9069
- package/dist/dist-cjs-BAIenEMC.mjs.map +0 -1
- package/dist/dist-cjs-BEQhh76X.mjs +0 -153
- package/dist/dist-cjs-BEQhh76X.mjs.map +0 -1
- package/dist/dist-cjs-BYPq7pfw.mjs +0 -43
- package/dist/dist-cjs-BYPq7pfw.mjs.map +0 -1
- package/dist/dist-cjs-BocDqSCX.mjs +0 -66
- package/dist/dist-cjs-BocDqSCX.mjs.map +0 -1
- package/dist/dist-cjs-CWiNggTl.mjs +0 -323
- package/dist/dist-cjs-CWiNggTl.mjs.map +0 -1
- package/dist/dist-cjs-CwabutT6.mjs +0 -1091
- package/dist/dist-cjs-CwabutT6.mjs.map +0 -1
- package/dist/dist-cjs-D-EE4Ahy.mjs +0 -51
- package/dist/dist-cjs-D-EE4Ahy.mjs.map +0 -1
- package/dist/dist-cjs-DNtDUWfk.mjs +0 -137
- package/dist/dist-cjs-DNtDUWfk.mjs.map +0 -1
- package/dist/dist-cjs-DbZhsgS0.mjs +0 -98
- package/dist/dist-cjs-DbZhsgS0.mjs.map +0 -1
- package/dist/dist-cjs-Dh7REKcN.mjs +0 -85
- package/dist/dist-cjs-Dh7REKcN.mjs.map +0 -1
- package/dist/dist-cjs-Dobx0Nz-.mjs +0 -181
- package/dist/dist-cjs-Dobx0Nz-.mjs.map +0 -1
- package/dist/dist-cjs-Du0UpNof.mjs +0 -437
- package/dist/dist-cjs-Du0UpNof.mjs.map +0 -1
- package/dist/dist-cjs-DyHiUfsr.mjs +0 -6
- package/dist/dist-cjs-HHMfMF5a.mjs +0 -209
- package/dist/dist-cjs-HHMfMF5a.mjs.map +0 -1
- package/dist/dist-cjs-UJYQzLNT.mjs +0 -64
- package/dist/dist-cjs-UJYQzLNT.mjs.map +0 -1
- package/dist/dist-cjs-UKxm5cFR.mjs +0 -5015
- package/dist/dist-cjs-UKxm5cFR.mjs.map +0 -1
- package/dist/event-streams-DnRe8uwT.mjs +0 -204
- package/dist/event-streams-DnRe8uwT.mjs.map +0 -1
- package/dist/index-CHQ39_Oe.d.mts.map +0 -1
- package/dist/package-CudzAF-n.mjs +0 -6
- package/dist/package-CudzAF-n.mjs.map +0 -1
- package/dist/preview-DwClLMlU.mjs.map +0 -1
- package/dist/preview-engine/chunk-QBEUICZD.mjs +0 -1
- package/dist/preview-engine/renderers-2ILG23ED.mjs +0 -1
- package/dist/preview-engine/renderers-B7DSGUMI.mjs +0 -1
- package/dist/preview-engine/renderers-BFNJ7VCI.mjs +0 -1
- package/dist/preview-engine/renderers-CGYIDAVV.mjs +0 -1
- package/dist/preview-engine/renderers-ECA3P4ON.mjs +0 -1
- package/dist/preview-engine/renderers-JHFT27YU.mjs +0 -1
- package/dist/preview-engine/renderers-MON4QFRF.mjs +0 -1
- package/dist/preview-engine/renderers-NQXMYNSY.mjs +0 -1
- package/dist/preview-engine/renderers-ORAIXUL3.mjs +0 -1
- package/dist/preview-engine/renderers-QVZVEYP5.mjs +0 -1
- package/dist/preview-engine/renderers-RKDPX5JU.mjs +0 -1
- package/dist/preview-engine/renderers-SBFF7JP5.mjs +0 -1
- package/dist/preview-engine/renderers-UNK6I4JJ.mjs +0 -1
- package/dist/preview-engine/renderers-W773SBPV.mjs +0 -1
- package/dist/preview-engine/renderers-ZHTX73PR.mjs +0 -1
- package/dist/preview-engine/server-utils-2FAIV45N.mjs +0 -1
- package/dist/renderer-31jAuNzF.mjs +0 -5
- package/dist/renderer-36EI7Rsz.mjs +0 -5
- package/dist/renderer-3io-cjTt.mjs +0 -5
- package/dist/renderer-9_zWTHbg.mjs +0 -5
- package/dist/renderer-B6KnbfdA.mjs +0 -5
- package/dist/renderer-B7Y2bmRc.mjs +0 -5
- package/dist/renderer-BA6miaaI.mjs +0 -5
- package/dist/renderer-BHi-Q6Z_.mjs +0 -5
- package/dist/renderer-BOlN9HeG.mjs +0 -5
- package/dist/renderer-BTOW-ceB.mjs +0 -5
- package/dist/renderer-BiQ0PYOp.mjs +0 -5
- package/dist/renderer-Bla7GDyV.mjs +0 -5
- package/dist/renderer-BoYyLVKy.mjs +0 -5
- package/dist/renderer-BqOgb7bM.mjs +0 -5
- package/dist/renderer-BqeM8yTJ.mjs +0 -5
- package/dist/renderer-BzpRe50i.mjs +0 -5
- package/dist/renderer-C0eAPwpr.mjs +0 -5
- package/dist/renderer-CGn8V63v.mjs +0 -5
- package/dist/renderer-CM5Syo9r.mjs +0 -5
- package/dist/renderer-CWCEW6Wv.mjs +0 -5
- package/dist/renderer-Cl70zxkP.mjs +0 -5
- package/dist/renderer-ClJjoVpB.mjs +0 -6
- package/dist/renderer-DIDSmoFA.mjs +0 -23900
- package/dist/renderer-DIDSmoFA.mjs.map +0 -1
- package/dist/renderer-DLnF-V_h.mjs +0 -5
- package/dist/renderer-DN1rjmcL.mjs +0 -5
- package/dist/renderer-DXTw9Oqb.mjs +0 -5
- package/dist/renderer-DbAVSBNI.mjs +0 -5
- package/dist/renderer-Dg8rD--8.mjs +0 -5
- package/dist/renderer-DnFxegGu.mjs +0 -5
- package/dist/renderer-DnfmelHn.mjs +0 -5
- package/dist/renderer-DuOjzggd.mjs +0 -5
- package/dist/renderer-DvYql0Cl.mjs +0 -5
- package/dist/renderer-LfUdjgjF.mjs +0 -5
- package/dist/renderer-SecCv3U8.mjs +0 -5
- package/dist/renderer-oZyoB4CT.mjs +0 -5
- package/dist/renderer-rzci_kTy.mjs +0 -5
- package/dist/renderer-vLaZuZbX.mjs +0 -5
- package/dist/signin-SVSXQw9i.mjs +0 -865
- package/dist/signin-SVSXQw9i.mjs.map +0 -1
- package/dist/sso-oidc-B3Sagl43.mjs +0 -1051
- package/dist/sso-oidc-B3Sagl43.mjs.map +0 -1
- package/dist/sts-CYeWec9i.mjs +0 -6
- package/dist/sts-ClVtt-bV.mjs +0 -1395
- package/dist/sts-ClVtt-bV.mjs.map +0 -1
package/dist/fonts/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as RegisteredFont, i as RegisterFontOptions, n as MeasureTextOptions, o as TextMetrics, r as MeasuredGlyph, t as FontManager } from "../index-
|
|
1
|
+
import { a as RegisteredFont, i as RegisterFontOptions, n as MeasureTextOptions, o as TextMetrics, r as MeasuredGlyph, t as FontManager } from "../index-BcA8rep0.mjs";
|
|
2
2
|
export { FontManager, MeasureTextOptions, MeasuredGlyph, RegisterFontOptions, RegisteredFont, TextMetrics };
|
package/dist/fonts/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "../chunk-
|
|
2
|
-
import "../dist-
|
|
3
|
-
import { t as FontManager } from "../fonts-
|
|
1
|
+
import "../chunk-GBe2k3y8.mjs";
|
|
2
|
+
import "../dist-DkuDAIrG.mjs";
|
|
3
|
+
import { t as FontManager } from "../fonts-CZMYtbP7.mjs";
|
|
4
4
|
|
|
5
5
|
export { FontManager };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { J as registerHeadlessFont, m as SlugGeometry, p as SlugFontCache } from "./dist-
|
|
1
|
+
import { J as registerHeadlessFont, m as SlugGeometry, p as SlugFontCache } from "./dist-DkuDAIrG.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import * as fontkit from "fontkit";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
@@ -256,4 +256,4 @@ var FontManager = class FontManager {
|
|
|
256
256
|
|
|
257
257
|
//#endregion
|
|
258
258
|
export { FontManager as t };
|
|
259
|
-
//# sourceMappingURL=fonts-
|
|
259
|
+
//# sourceMappingURL=fonts-CZMYtbP7.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts-UM5xaBOx.mjs","names":[],"sources":["../src/fonts/manager.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n\tregisterHeadlessFont,\n\tSlugFontCache,\n\tSlugGeometry,\n} from \"@framefields/webgpu-renderers\";\nimport * as fontkit from \"fontkit\";\n\nexport interface RegisterFontOptions {\n\tfamily?: string;\n\tsource: string | Uint8Array;\n\tweight?: number | string;\n\tstyle?: \"normal\" | \"italic\" | \"oblique\";\n}\n\nexport interface RegisteredFont {\n\tfamily: string;\n\tsource: string | Uint8Array;\n\tfilePath?: string;\n\tformat: \"truetype\" | \"opentype\";\n\tpostscriptName?: string;\n\tunitsPerEm?: number;\n\tweight?: number | string;\n\tstyle?: string;\n}\n\ninterface ResolvedSource {\n\tbuffer: Uint8Array;\n\tfilePath?: string;\n}\n\nconst SFNT_TRUETYPE_1 = 0x00010000;\nconst SFNT_TRUETYPE_TRUE = 0x74727565; // 'true'\nconst SFNT_TRUETYPE_TYP1 = 0x74797031; // 'typ1'\nconst SFNT_OPENTYPE_CFF = 0x4f54544f; // 'OTTO'\nconst SFNT_COLLECTION = 0x74746366; // 'ttcf'\n\nfunction validateFontBinaryHeader(\n\tbytes: Uint8Array,\n\tsourceLabel: string,\n): \"truetype\" | \"opentype\" {\n\tif (bytes.length < 12) {\n\t\tthrow new Error(\n\t\t\t`Invalid font binary for \"${sourceLabel}\": File size (${bytes.length} bytes) is too small to be a valid TrueType or OpenType font.`,\n\t\t);\n\t}\n\n\tconst tag =\n\t\t((bytes[0] ?? 0) << 24) |\n\t\t((bytes[1] ?? 0) << 16) |\n\t\t((bytes[2] ?? 0) << 8) |\n\t\t(bytes[3] ?? 0);\n\n\tif (\n\t\ttag === SFNT_TRUETYPE_1 ||\n\t\ttag === SFNT_TRUETYPE_TRUE ||\n\t\ttag === SFNT_TRUETYPE_TYP1 ||\n\t\ttag === SFNT_COLLECTION\n\t) {\n\t\treturn \"truetype\";\n\t}\n\n\tif (tag === SFNT_OPENTYPE_CFF) {\n\t\treturn \"opentype\";\n\t}\n\n\tconst hexTag = (tag >>> 0).toString(16).padStart(8, \"0\");\n\tthrow new Error(\n\t\t`Invalid font format for \"${sourceLabel}\": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${hexTag}.`,\n\t);\n}\n\nasync function resolveSourceBuffer(\n\tsource: string | Uint8Array,\n): Promise<ResolvedSource> {\n\tif (source instanceof Uint8Array) {\n\t\treturn { buffer: source };\n\t}\n\n\tif (typeof source !== \"string\") {\n\t\tthrow new TypeError(\n\t\t\t`Font source must be a file path string or Uint8Array, received: ${typeof source}`,\n\t\t);\n\t}\n\n\tlet cleanPath = source;\n\tif (cleanPath.startsWith(\"http://\") || cleanPath.startsWith(\"https://\")) {\n\t\tconst res = await fetch(cleanPath);\n\t\tif (!res.ok) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to download font from \"${cleanPath}\": HTTP ${res.status} ${res.statusText}`,\n\t\t\t);\n\t\t}\n\t\tconst arrayBuffer = await res.arrayBuffer();\n\t\treturn {\n\t\t\tbuffer: new Uint8Array(arrayBuffer),\n\t\t\tfilePath: cleanPath,\n\t\t};\n\t}\n\n\tif (cleanPath.startsWith(\"file://\")) {\n\t\ttry {\n\t\t\tcleanPath = new URL(cleanPath).pathname;\n\t\t} catch {\n\t\t\tcleanPath = cleanPath.replace(/^file:\\/\\//, \"\");\n\t\t}\n\t}\n\n\tconst candidates: string[] = [\n\t\tcleanPath,\n\t\tpath.resolve(process.cwd(), cleanPath),\n\t\tpath.resolve(process.cwd(), \"assets/fonts\", cleanPath),\n\t\tpath.resolve(process.cwd(), \"assets/fonts\", path.basename(cleanPath)),\n\t];\n\n\t// Upward traversal to locate fonts in parent monorepo roots\n\tlet currentDir = process.cwd();\n\tfor (let i = 0; i < 5; i++) {\n\t\tcandidates.push(path.resolve(currentDir, cleanPath));\n\t\tcandidates.push(\n\t\t\tpath.resolve(currentDir, \"assets/fonts\", path.basename(cleanPath)),\n\t\t);\n\t\tconst parent = path.dirname(currentDir);\n\t\tif (parent === currentDir) break;\n\t\tcurrentDir = parent;\n\t}\n\n\tlet resolvedPath: string | null = null;\n\tlet fileBuffer: Buffer | null = null;\n\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tconst stat = await fs.stat(candidate);\n\t\t\tif (stat.isFile()) {\n\t\t\t\tresolvedPath = candidate;\n\t\t\t\tfileBuffer = await fs.readFile(candidate);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Continue searching next candidate\n\t\t}\n\t}\n\n\tif (!resolvedPath || !fileBuffer) {\n\t\tthrow new Error(\n\t\t\t`Font file not found: \"${source}\". Checked candidate locations:\\n - ${candidates.join(\"\\n - \")}`,\n\t\t);\n\t}\n\n\treturn {\n\t\tbuffer: new Uint8Array(\n\t\t\tfileBuffer.buffer,\n\t\t\tfileBuffer.byteOffset,\n\t\t\tfileBuffer.byteLength,\n\t\t),\n\t\tfilePath: resolvedPath,\n\t};\n}\n\n/**\n * Central singleton manager for font registration, TTF validation, and compositor typography binding.\n */\nexport interface MeasureTextOptions {\n\tfontFamily: string;\n\tfontSize?: number;\n\tfontWeight?: string | number;\n\t/** Extra px between characters, as on `Layer.text`. */\n\tletterSpacing?: number;\n\t/** Multiplier of fontSize when < 10, else px. Default 1.2. */\n\tlineHeight?: number;\n\t/** Wrap width in px; omit for one line per `\\n`. */\n\twidth?: number;\n\talign?: \"left\" | \"center\" | \"right\";\n\t/** Paragraph base direction, as on `Layer.text`. Default \"auto\". */\n\tdirection?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface MeasuredGlyph {\n\tchar: string;\n\t/** Index into the string (code units), matching `text.slice`. */\n\tindex: number;\n\t/** Left edge of the glyph, relative to the text box. */\n\tx: number;\n\t/** Baseline-relative top of the line box. */\n\ty: number;\n\t/** Advance width in px. */\n\twidth: number;\n\tline: number;\n\t/** Part of a right-to-left run: reading continues to the left. */\n\trtl?: boolean;\n}\n\nexport interface TextMetrics {\n\twidth: number;\n\theight: number;\n\tlines: number;\n\t/** Line box height in px. */\n\tlineHeight: number;\n\tglyphs: MeasuredGlyph[];\n\t/**\n\t * X of a caret placed after `count` characters (0 = before the first),\n\t * relative to the text box. In right-to-left text the caret sits on the\n\t * left of the last character. Pair with a `.keys(\"text\", …)` reveal to make\n\t * a cursor follow typing exactly.\n\t */\n\tcaretX(count: number): number;\n\t/** Width of the first `count` characters (same as `caretX` on one line). */\n\twidthOf(count: number): number;\n}\n\nexport class FontManager {\n\tprivate static instance: FontManager | null = null;\n\tprivate readonly fonts = new Map<string, RegisteredFont>();\n\n\tprivate constructor() {}\n\n\t/**\n\t * Returns the singleton FontManager instance.\n\t */\n\tpublic static getInstance(): FontManager {\n\t\tif (!FontManager.instance) {\n\t\t\tFontManager.instance = new FontManager();\n\t\t}\n\t\treturn FontManager.instance;\n\t}\n\n\t/**\n\t * Registers a TrueType/OpenType font into the Framefields engine with validation.\n\t */\n\tpublic static async register(\n\t\toptionsOrFamilyOrSource: RegisterFontOptions | string,\n\t\tsource?: string | Uint8Array,\n\t): Promise<RegisteredFont> {\n\t\treturn FontManager.getInstance().register(optionsOrFamilyOrSource, source);\n\t}\n\n\t/**\n\t * Sets the color emoji font text draws emoji with, for the preview and the\n\t * export alike: a CBDT/CBLC bitmap font such as Noto Color Emoji, as a file\n\t * path, URL or bytes. framefields ships none; without one, exports draw\n\t * nothing for emoji.\n\t */\n\tpublic static async registerEmojiFont(\n\t\tsource: string | Uint8Array,\n\t): Promise<void> {\n\t\tconst { buffer, filePath } = await resolveSourceBuffer(source);\n\t\tconst label =\n\t\t\tfilePath ?? (typeof source === \"string\" ? source : \"Uint8Array\");\n\t\tvalidateFontBinaryHeader(buffer, label);\n\t\tSlugFontCache.setEmojiFont(buffer, filePath);\n\t}\n\n\t/**\n\t * Measures text with the real font, exactly as `Layer.text` lays it out:\n\t * box size, line count, per-glyph positions and caret offsets. Use it to\n\t * size containers, place cursors, underline a word or center by ink\n\t * instead of guessing advances. The family must be registered first.\n\t *\n\t * ```ts\n\t * const m = FontManager.measure(\"Hello\", { fontFamily: \"Inter\", fontSize: 60 });\n\t * m.width; m.caretX(3); m.glyphs[1].x\n\t * ```\n\t */\n\tpublic static measure(\n\t\ttext: string,\n\t\toptions: MeasureTextOptions,\n\t): TextMetrics {\n\t\tconst fontSize = options.fontSize ?? 48;\n\t\tconst font = SlugFontCache.getFont(\n\t\t\toptions.fontFamily,\n\t\t\toptions.fontWeight,\n\t\t\tnull,\n\t\t);\n\t\tif (!font) {\n\t\t\tthrow new Error(\n\t\t\t\t`FontManager.measure: font \"${options.fontFamily}\" is not registered. ` +\n\t\t\t\t\t\"Call `await FontManager.register(...)` first.\",\n\t\t\t);\n\t\t}\n\t\tconst lineHeight =\n\t\t\toptions.lineHeight !== undefined && options.lineHeight < 10\n\t\t\t\t? options.lineHeight * fontSize\n\t\t\t\t: (options.lineHeight ?? fontSize * 1.2);\n\t\tconst letterSpacing = options.letterSpacing ?? 0;\n\t\tconst { width, height, layout } = SlugGeometry.measure(\n\t\t\ttext,\n\t\t\tfont,\n\t\t\tfontSize,\n\t\t\tletterSpacing,\n\t\t\tlineHeight,\n\t\t\toptions.width,\n\t\t\tundefined,\n\t\t\toptions.direction,\n\t\t);\n\t\tconst scale = fontSize / font.unitsPerEm;\n\t\t// One entry per cluster (a letter with its marks, or a ligature), in\n\t\t// reading order; textIndex maps it back to the string.\n\t\tconst glyphs: MeasuredGlyph[] = [];\n\t\tconst seen = new Set<number>();\n\t\tlet cursor = 0;\n\t\tfor (const g of layout.glyphs) {\n\t\t\tlet index = g.textIndex;\n\t\t\tif (index === undefined) {\n\t\t\t\tconst at = text.indexOf(g.char, cursor);\n\t\t\t\tindex = at >= 0 ? at : cursor;\n\t\t\t}\n\t\t\tif (seen.has(index)) continue;\n\t\t\tseen.add(index);\n\t\t\tcursor = index + g.char.length;\n\t\t\tconst advance =\n\t\t\t\tg.clusterAdvance ?? g.cp.advanceWidth * (g.fontScale ?? scale);\n\t\t\tglyphs.push({\n\t\t\t\tchar: g.char,\n\t\t\t\tindex,\n\t\t\t\tx: g.clusterX ?? g.x,\n\t\t\t\ty: g.y,\n\t\t\t\twidth: advance + letterSpacing,\n\t\t\t\tline: g.lineIndex,\n\t\t\t\t...(g.rtl && { rtl: true }),\n\t\t\t});\n\t\t}\n\t\tconst caretX = (count: number): number => {\n\t\t\tif (count <= 0 || glyphs.length === 0) {\n\t\t\t\tconst first = glyphs[0];\n\t\t\t\tif (!first) return 0;\n\t\t\t\treturn first.rtl ? first.x + first.width - letterSpacing : first.x;\n\t\t\t}\n\t\t\tconst before = glyphs.filter((g) => g.index < count);\n\t\t\tconst last = before[before.length - 1];\n\t\t\tif (!last) return 0;\n\t\t\treturn last.rtl ? last.x : last.x + last.width - letterSpacing;\n\t\t};\n\t\treturn {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tlines: layout.linesCount,\n\t\t\tlineHeight,\n\t\t\tglyphs,\n\t\t\tcaretX,\n\t\t\twidthOf: (count: number) => caretX(count) - (glyphs[0]?.x ?? 0),\n\t\t};\n\t}\n\n\t/**\n\t * Retrieves registered font metadata by family name.\n\t */\n\tpublic static get(family: string): RegisteredFont | undefined {\n\t\treturn FontManager.getInstance().get(family);\n\t}\n\n\t/**\n\t * Checks if a font family has been registered.\n\t */\n\tpublic static has(family: string): boolean {\n\t\treturn FontManager.getInstance().has(family);\n\t}\n\n\t/**\n\t * Returns all currently registered fonts.\n\t */\n\tpublic static getAll(): RegisteredFont[] {\n\t\treturn FontManager.getInstance().getAll();\n\t}\n\n\t/**\n\t * Returns relative or absolute file paths of all registered fonts for composition spec serialization.\n\t */\n\tpublic static getRegisteredFontPaths(): string[] {\n\t\treturn FontManager.getInstance().getRegisteredFontPaths();\n\t}\n\n\t/**\n\t * Clears all registered fonts from the manager.\n\t */\n\tpublic static clear(): void {\n\t\tFontManager.getInstance().clear();\n\t}\n\n\t/**\n\t * Instance registration method with format validation and Slug WebGPU cache population.\n\t */\n\tpublic async register(\n\t\toptionsOrFamilyOrSource: RegisterFontOptions | string,\n\t\tsource?: string | Uint8Array,\n\t): Promise<RegisteredFont> {\n\t\tlet family: string | undefined;\n\t\tlet rawSource: string | Uint8Array;\n\t\tlet weight: number | string | undefined;\n\t\tlet style: \"normal\" | \"italic\" | \"oblique\" | undefined;\n\n\t\tif (\n\t\t\ttypeof optionsOrFamilyOrSource === \"object\" &&\n\t\t\toptionsOrFamilyOrSource !== null\n\t\t) {\n\t\t\tfamily = optionsOrFamilyOrSource.family;\n\t\t\trawSource = optionsOrFamilyOrSource.source;\n\t\t\tweight = optionsOrFamilyOrSource.weight;\n\t\t\tstyle = optionsOrFamilyOrSource.style;\n\t\t} else if (\n\t\t\ttypeof optionsOrFamilyOrSource === \"string\" &&\n\t\t\tsource !== undefined\n\t\t) {\n\t\t\tfamily = optionsOrFamilyOrSource;\n\t\t\trawSource = source;\n\t\t} else if (typeof optionsOrFamilyOrSource === \"string\") {\n\t\t\tfamily = undefined;\n\t\t\trawSource = optionsOrFamilyOrSource;\n\t\t} else {\n\t\t\tthrow new TypeError(\"Invalid arguments passed to FontManager.register\");\n\t\t}\n\n\t\tconst { buffer, filePath } = await resolveSourceBuffer(rawSource);\n\t\tconst sourceLabel =\n\t\t\tfilePath ?? (typeof rawSource === \"string\" ? rawSource : \"Uint8Array\");\n\t\tconst format = validateFontBinaryHeader(buffer, sourceLabel);\n\n\t\tlet parsedFontkit: fontkit.Font;\n\t\ttry {\n\t\t\tconst parsed = fontkit.create(buffer as unknown as Buffer);\n\t\t\tif (\n\t\t\t\tparsed &&\n\t\t\t\t\"fonts\" in parsed &&\n\t\t\t\tArray.isArray(parsed.fonts) &&\n\t\t\t\tparsed.fonts.length > 0\n\t\t\t) {\n\t\t\t\tparsedFontkit = parsed.fonts[0] as fontkit.Font;\n\t\t\t} else {\n\t\t\t\tparsedFontkit = parsed as fontkit.Font;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to parse TrueType/OpenType font binary for \"${sourceLabel}\": ${msg}`,\n\t\t\t);\n\t\t}\n\n\t\tconst detectedFamily =\n\t\t\tparsedFontkit.familyName ||\n\t\t\tparsedFontkit.postscriptName ||\n\t\t\tpath.parse(sourceLabel).name;\n\t\tconst resolvedFamily = family?.trim() || detectedFamily;\n\n\t\tconst registered: RegisteredFont = {\n\t\t\tfamily: resolvedFamily,\n\t\t\tsource: rawSource,\n\t\t\tfilePath,\n\t\t\tformat,\n\t\t\tpostscriptName: parsedFontkit.postscriptName,\n\t\t\tunitsPerEm: parsedFontkit.unitsPerEm,\n\t\t\tweight,\n\t\t\tstyle,\n\t\t};\n\n\t\tthis.fonts.set(resolvedFamily, registered);\n\n\t\t// Populate headless font registries\n\t\tif (filePath) {\n\t\t\tawait registerHeadlessFont(resolvedFamily, filePath);\n\t\t}\n\t\tSlugFontCache.setParsed(resolvedFamily, parsedFontkit);\n\n\t\treturn registered;\n\t}\n\n\tpublic get(family: string): RegisteredFont | undefined {\n\t\treturn this.fonts.get(family);\n\t}\n\n\tpublic has(family: string): boolean {\n\t\treturn this.fonts.has(family);\n\t}\n\n\tpublic getAll(): RegisteredFont[] {\n\t\treturn Array.from(this.fonts.values());\n\t}\n\n\tpublic getRegisteredFontPaths(): string[] {\n\t\tconst paths: string[] = [];\n\t\tfor (const font of this.fonts.values()) {\n\t\t\tif (font.filePath) {\n\t\t\t\tpaths.push(font.filePath);\n\t\t\t} else if (typeof font.source === \"string\") {\n\t\t\t\tpaths.push(font.source);\n\t\t\t}\n\t\t}\n\t\treturn paths;\n\t}\n\n\tpublic clear(): void {\n\t\tthis.fonts.clear();\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fonts-CZMYtbP7.mjs","names":[],"sources":["../src/fonts/manager.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n\tregisterHeadlessFont,\n\tSlugFontCache,\n\tSlugGeometry,\n} from \"@framefields/webgpu-renderers\";\nimport * as fontkit from \"fontkit\";\n\nexport interface RegisterFontOptions {\n\tfamily?: string;\n\tsource: string | Uint8Array;\n\tweight?: number | string;\n\tstyle?: \"normal\" | \"italic\" | \"oblique\";\n}\n\nexport interface RegisteredFont {\n\tfamily: string;\n\tsource: string | Uint8Array;\n\tfilePath?: string;\n\tformat: \"truetype\" | \"opentype\";\n\tpostscriptName?: string;\n\tunitsPerEm?: number;\n\tweight?: number | string;\n\tstyle?: string;\n}\n\ninterface ResolvedSource {\n\tbuffer: Uint8Array;\n\tfilePath?: string;\n}\n\nconst SFNT_TRUETYPE_1 = 0x00010000;\nconst SFNT_TRUETYPE_TRUE = 0x74727565; // 'true'\nconst SFNT_TRUETYPE_TYP1 = 0x74797031; // 'typ1'\nconst SFNT_OPENTYPE_CFF = 0x4f54544f; // 'OTTO'\nconst SFNT_COLLECTION = 0x74746366; // 'ttcf'\n\nfunction validateFontBinaryHeader(\n\tbytes: Uint8Array,\n\tsourceLabel: string,\n): \"truetype\" | \"opentype\" {\n\tif (bytes.length < 12) {\n\t\tthrow new Error(\n\t\t\t`Invalid font binary for \"${sourceLabel}\": File size (${bytes.length} bytes) is too small to be a valid TrueType or OpenType font.`,\n\t\t);\n\t}\n\n\tconst tag =\n\t\t((bytes[0] ?? 0) << 24) |\n\t\t((bytes[1] ?? 0) << 16) |\n\t\t((bytes[2] ?? 0) << 8) |\n\t\t(bytes[3] ?? 0);\n\n\tif (\n\t\ttag === SFNT_TRUETYPE_1 ||\n\t\ttag === SFNT_TRUETYPE_TRUE ||\n\t\ttag === SFNT_TRUETYPE_TYP1 ||\n\t\ttag === SFNT_COLLECTION\n\t) {\n\t\treturn \"truetype\";\n\t}\n\n\tif (tag === SFNT_OPENTYPE_CFF) {\n\t\treturn \"opentype\";\n\t}\n\n\tconst hexTag = (tag >>> 0).toString(16).padStart(8, \"0\");\n\tthrow new Error(\n\t\t`Invalid font format for \"${sourceLabel}\": Expected a valid TrueType (.ttf) or OpenType (.otf) font binary. Found header tag: 0x${hexTag}.`,\n\t);\n}\n\nasync function resolveSourceBuffer(\n\tsource: string | Uint8Array,\n): Promise<ResolvedSource> {\n\tif (source instanceof Uint8Array) {\n\t\treturn { buffer: source };\n\t}\n\n\tif (typeof source !== \"string\") {\n\t\tthrow new TypeError(\n\t\t\t`Font source must be a file path string or Uint8Array, received: ${typeof source}`,\n\t\t);\n\t}\n\n\tlet cleanPath = source;\n\tif (cleanPath.startsWith(\"http://\") || cleanPath.startsWith(\"https://\")) {\n\t\tconst res = await fetch(cleanPath);\n\t\tif (!res.ok) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to download font from \"${cleanPath}\": HTTP ${res.status} ${res.statusText}`,\n\t\t\t);\n\t\t}\n\t\tconst arrayBuffer = await res.arrayBuffer();\n\t\treturn {\n\t\t\tbuffer: new Uint8Array(arrayBuffer),\n\t\t\tfilePath: cleanPath,\n\t\t};\n\t}\n\n\tif (cleanPath.startsWith(\"file://\")) {\n\t\ttry {\n\t\t\tcleanPath = new URL(cleanPath).pathname;\n\t\t} catch {\n\t\t\tcleanPath = cleanPath.replace(/^file:\\/\\//, \"\");\n\t\t}\n\t}\n\n\tconst candidates: string[] = [\n\t\tcleanPath,\n\t\tpath.resolve(process.cwd(), cleanPath),\n\t\tpath.resolve(process.cwd(), \"assets/fonts\", cleanPath),\n\t\tpath.resolve(process.cwd(), \"assets/fonts\", path.basename(cleanPath)),\n\t];\n\n\t// Upward traversal to locate fonts in parent monorepo roots\n\tlet currentDir = process.cwd();\n\tfor (let i = 0; i < 5; i++) {\n\t\tcandidates.push(path.resolve(currentDir, cleanPath));\n\t\tcandidates.push(\n\t\t\tpath.resolve(currentDir, \"assets/fonts\", path.basename(cleanPath)),\n\t\t);\n\t\tconst parent = path.dirname(currentDir);\n\t\tif (parent === currentDir) break;\n\t\tcurrentDir = parent;\n\t}\n\n\tlet resolvedPath: string | null = null;\n\tlet fileBuffer: Buffer | null = null;\n\n\tfor (const candidate of candidates) {\n\t\ttry {\n\t\t\tconst stat = await fs.stat(candidate);\n\t\t\tif (stat.isFile()) {\n\t\t\t\tresolvedPath = candidate;\n\t\t\t\tfileBuffer = await fs.readFile(candidate);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Continue searching next candidate\n\t\t}\n\t}\n\n\tif (!resolvedPath || !fileBuffer) {\n\t\tthrow new Error(\n\t\t\t`Font file not found: \"${source}\". Checked candidate locations:\\n - ${candidates.join(\"\\n - \")}`,\n\t\t);\n\t}\n\n\treturn {\n\t\tbuffer: new Uint8Array(\n\t\t\tfileBuffer.buffer,\n\t\t\tfileBuffer.byteOffset,\n\t\t\tfileBuffer.byteLength,\n\t\t),\n\t\tfilePath: resolvedPath,\n\t};\n}\n\n/**\n * Central singleton manager for font registration, TTF validation, and compositor typography binding.\n */\nexport interface MeasureTextOptions {\n\tfontFamily: string;\n\tfontSize?: number;\n\tfontWeight?: string | number;\n\t/** Extra px between characters, as on `Layer.text`. */\n\tletterSpacing?: number;\n\t/** Multiplier of fontSize when < 10, else px. Default 1.2. */\n\tlineHeight?: number;\n\t/** Wrap width in px; omit for one line per `\\n`. */\n\twidth?: number;\n\talign?: \"left\" | \"center\" | \"right\";\n\t/** Paragraph base direction, as on `Layer.text`. Default \"auto\". */\n\tdirection?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface MeasuredGlyph {\n\tchar: string;\n\t/** Index into the string (code units), matching `text.slice`. */\n\tindex: number;\n\t/** Left edge of the glyph, relative to the text box. */\n\tx: number;\n\t/** Baseline-relative top of the line box. */\n\ty: number;\n\t/** Advance width in px. */\n\twidth: number;\n\tline: number;\n\t/** Part of a right-to-left run: reading continues to the left. */\n\trtl?: boolean;\n}\n\nexport interface TextMetrics {\n\twidth: number;\n\theight: number;\n\tlines: number;\n\t/** Line box height in px. */\n\tlineHeight: number;\n\tglyphs: MeasuredGlyph[];\n\t/**\n\t * X of a caret placed after `count` characters (0 = before the first),\n\t * relative to the text box. In right-to-left text the caret sits on the\n\t * left of the last character. Pair with a `.keys(\"text\", …)` reveal to make\n\t * a cursor follow typing exactly.\n\t */\n\tcaretX(count: number): number;\n\t/** Width of the first `count` characters (same as `caretX` on one line). */\n\twidthOf(count: number): number;\n}\n\nexport class FontManager {\n\tprivate static instance: FontManager | null = null;\n\tprivate readonly fonts = new Map<string, RegisteredFont>();\n\n\tprivate constructor() {}\n\n\t/**\n\t * Returns the singleton FontManager instance.\n\t */\n\tpublic static getInstance(): FontManager {\n\t\tif (!FontManager.instance) {\n\t\t\tFontManager.instance = new FontManager();\n\t\t}\n\t\treturn FontManager.instance;\n\t}\n\n\t/**\n\t * Registers a TrueType/OpenType font into the Framefields engine with validation.\n\t */\n\tpublic static async register(\n\t\toptionsOrFamilyOrSource: RegisterFontOptions | string,\n\t\tsource?: string | Uint8Array,\n\t): Promise<RegisteredFont> {\n\t\treturn FontManager.getInstance().register(optionsOrFamilyOrSource, source);\n\t}\n\n\t/**\n\t * Sets the color emoji font text draws emoji with, for the preview and the\n\t * export alike: a CBDT/CBLC bitmap font such as Noto Color Emoji, as a file\n\t * path, URL or bytes. framefields ships none; without one, exports draw\n\t * nothing for emoji.\n\t */\n\tpublic static async registerEmojiFont(\n\t\tsource: string | Uint8Array,\n\t): Promise<void> {\n\t\tconst { buffer, filePath } = await resolveSourceBuffer(source);\n\t\tconst label =\n\t\t\tfilePath ?? (typeof source === \"string\" ? source : \"Uint8Array\");\n\t\tvalidateFontBinaryHeader(buffer, label);\n\t\tSlugFontCache.setEmojiFont(buffer, filePath);\n\t}\n\n\t/**\n\t * Measures text with the real font, exactly as `Layer.text` lays it out:\n\t * box size, line count, per-glyph positions and caret offsets. Use it to\n\t * size containers, place cursors, underline a word or center by ink\n\t * instead of guessing advances. The family must be registered first.\n\t *\n\t * ```ts\n\t * const m = FontManager.measure(\"Hello\", { fontFamily: \"Inter\", fontSize: 60 });\n\t * m.width; m.caretX(3); m.glyphs[1].x\n\t * ```\n\t */\n\tpublic static measure(\n\t\ttext: string,\n\t\toptions: MeasureTextOptions,\n\t): TextMetrics {\n\t\tconst fontSize = options.fontSize ?? 48;\n\t\tconst font = SlugFontCache.getFont(\n\t\t\toptions.fontFamily,\n\t\t\toptions.fontWeight,\n\t\t\tnull,\n\t\t);\n\t\tif (!font) {\n\t\t\tthrow new Error(\n\t\t\t\t`FontManager.measure: font \"${options.fontFamily}\" is not registered. ` +\n\t\t\t\t\t\"Call `await FontManager.register(...)` first.\",\n\t\t\t);\n\t\t}\n\t\tconst lineHeight =\n\t\t\toptions.lineHeight !== undefined && options.lineHeight < 10\n\t\t\t\t? options.lineHeight * fontSize\n\t\t\t\t: (options.lineHeight ?? fontSize * 1.2);\n\t\tconst letterSpacing = options.letterSpacing ?? 0;\n\t\tconst { width, height, layout } = SlugGeometry.measure(\n\t\t\ttext,\n\t\t\tfont,\n\t\t\tfontSize,\n\t\t\tletterSpacing,\n\t\t\tlineHeight,\n\t\t\toptions.width,\n\t\t\tundefined,\n\t\t\toptions.direction,\n\t\t);\n\t\tconst scale = fontSize / font.unitsPerEm;\n\t\t// One entry per cluster (a letter with its marks, or a ligature), in\n\t\t// reading order; textIndex maps it back to the string.\n\t\tconst glyphs: MeasuredGlyph[] = [];\n\t\tconst seen = new Set<number>();\n\t\tlet cursor = 0;\n\t\tfor (const g of layout.glyphs) {\n\t\t\tlet index = g.textIndex;\n\t\t\tif (index === undefined) {\n\t\t\t\tconst at = text.indexOf(g.char, cursor);\n\t\t\t\tindex = at >= 0 ? at : cursor;\n\t\t\t}\n\t\t\tif (seen.has(index)) continue;\n\t\t\tseen.add(index);\n\t\t\tcursor = index + g.char.length;\n\t\t\tconst advance =\n\t\t\t\tg.clusterAdvance ?? g.cp.advanceWidth * (g.fontScale ?? scale);\n\t\t\tglyphs.push({\n\t\t\t\tchar: g.char,\n\t\t\t\tindex,\n\t\t\t\tx: g.clusterX ?? g.x,\n\t\t\t\ty: g.y,\n\t\t\t\twidth: advance + letterSpacing,\n\t\t\t\tline: g.lineIndex,\n\t\t\t\t...(g.rtl && { rtl: true }),\n\t\t\t});\n\t\t}\n\t\tconst caretX = (count: number): number => {\n\t\t\tif (count <= 0 || glyphs.length === 0) {\n\t\t\t\tconst first = glyphs[0];\n\t\t\t\tif (!first) return 0;\n\t\t\t\treturn first.rtl ? first.x + first.width - letterSpacing : first.x;\n\t\t\t}\n\t\t\tconst before = glyphs.filter((g) => g.index < count);\n\t\t\tconst last = before[before.length - 1];\n\t\t\tif (!last) return 0;\n\t\t\treturn last.rtl ? last.x : last.x + last.width - letterSpacing;\n\t\t};\n\t\treturn {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tlines: layout.linesCount,\n\t\t\tlineHeight,\n\t\t\tglyphs,\n\t\t\tcaretX,\n\t\t\twidthOf: (count: number) => caretX(count) - (glyphs[0]?.x ?? 0),\n\t\t};\n\t}\n\n\t/**\n\t * Retrieves registered font metadata by family name.\n\t */\n\tpublic static get(family: string): RegisteredFont | undefined {\n\t\treturn FontManager.getInstance().get(family);\n\t}\n\n\t/**\n\t * Checks if a font family has been registered.\n\t */\n\tpublic static has(family: string): boolean {\n\t\treturn FontManager.getInstance().has(family);\n\t}\n\n\t/**\n\t * Returns all currently registered fonts.\n\t */\n\tpublic static getAll(): RegisteredFont[] {\n\t\treturn FontManager.getInstance().getAll();\n\t}\n\n\t/**\n\t * Returns relative or absolute file paths of all registered fonts for composition spec serialization.\n\t */\n\tpublic static getRegisteredFontPaths(): string[] {\n\t\treturn FontManager.getInstance().getRegisteredFontPaths();\n\t}\n\n\t/**\n\t * Clears all registered fonts from the manager.\n\t */\n\tpublic static clear(): void {\n\t\tFontManager.getInstance().clear();\n\t}\n\n\t/**\n\t * Instance registration method with format validation and Slug WebGPU cache population.\n\t */\n\tpublic async register(\n\t\toptionsOrFamilyOrSource: RegisterFontOptions | string,\n\t\tsource?: string | Uint8Array,\n\t): Promise<RegisteredFont> {\n\t\tlet family: string | undefined;\n\t\tlet rawSource: string | Uint8Array;\n\t\tlet weight: number | string | undefined;\n\t\tlet style: \"normal\" | \"italic\" | \"oblique\" | undefined;\n\n\t\tif (\n\t\t\ttypeof optionsOrFamilyOrSource === \"object\" &&\n\t\t\toptionsOrFamilyOrSource !== null\n\t\t) {\n\t\t\tfamily = optionsOrFamilyOrSource.family;\n\t\t\trawSource = optionsOrFamilyOrSource.source;\n\t\t\tweight = optionsOrFamilyOrSource.weight;\n\t\t\tstyle = optionsOrFamilyOrSource.style;\n\t\t} else if (\n\t\t\ttypeof optionsOrFamilyOrSource === \"string\" &&\n\t\t\tsource !== undefined\n\t\t) {\n\t\t\tfamily = optionsOrFamilyOrSource;\n\t\t\trawSource = source;\n\t\t} else if (typeof optionsOrFamilyOrSource === \"string\") {\n\t\t\tfamily = undefined;\n\t\t\trawSource = optionsOrFamilyOrSource;\n\t\t} else {\n\t\t\tthrow new TypeError(\"Invalid arguments passed to FontManager.register\");\n\t\t}\n\n\t\tconst { buffer, filePath } = await resolveSourceBuffer(rawSource);\n\t\tconst sourceLabel =\n\t\t\tfilePath ?? (typeof rawSource === \"string\" ? rawSource : \"Uint8Array\");\n\t\tconst format = validateFontBinaryHeader(buffer, sourceLabel);\n\n\t\tlet parsedFontkit: fontkit.Font;\n\t\ttry {\n\t\t\tconst parsed = fontkit.create(buffer as unknown as Buffer);\n\t\t\tif (\n\t\t\t\tparsed &&\n\t\t\t\t\"fonts\" in parsed &&\n\t\t\t\tArray.isArray(parsed.fonts) &&\n\t\t\t\tparsed.fonts.length > 0\n\t\t\t) {\n\t\t\t\tparsedFontkit = parsed.fonts[0] as fontkit.Font;\n\t\t\t} else {\n\t\t\t\tparsedFontkit = parsed as fontkit.Font;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to parse TrueType/OpenType font binary for \"${sourceLabel}\": ${msg}`,\n\t\t\t);\n\t\t}\n\n\t\tconst detectedFamily =\n\t\t\tparsedFontkit.familyName ||\n\t\t\tparsedFontkit.postscriptName ||\n\t\t\tpath.parse(sourceLabel).name;\n\t\tconst resolvedFamily = family?.trim() || detectedFamily;\n\n\t\tconst registered: RegisteredFont = {\n\t\t\tfamily: resolvedFamily,\n\t\t\tsource: rawSource,\n\t\t\tfilePath,\n\t\t\tformat,\n\t\t\tpostscriptName: parsedFontkit.postscriptName,\n\t\t\tunitsPerEm: parsedFontkit.unitsPerEm,\n\t\t\tweight,\n\t\t\tstyle,\n\t\t};\n\n\t\tthis.fonts.set(resolvedFamily, registered);\n\n\t\t// Populate headless font registries\n\t\tif (filePath) {\n\t\t\tawait registerHeadlessFont(resolvedFamily, filePath);\n\t\t}\n\t\tSlugFontCache.setParsed(resolvedFamily, parsedFontkit);\n\n\t\treturn registered;\n\t}\n\n\tpublic get(family: string): RegisteredFont | undefined {\n\t\treturn this.fonts.get(family);\n\t}\n\n\tpublic has(family: string): boolean {\n\t\treturn this.fonts.has(family);\n\t}\n\n\tpublic getAll(): RegisteredFont[] {\n\t\treturn Array.from(this.fonts.values());\n\t}\n\n\tpublic getRegisteredFontPaths(): string[] {\n\t\tconst paths: string[] = [];\n\t\tfor (const font of this.fonts.values()) {\n\t\t\tif (font.filePath) {\n\t\t\t\tpaths.push(font.filePath);\n\t\t\t} else if (typeof font.source === \"string\") {\n\t\t\t\tpaths.push(font.source);\n\t\t\t}\n\t\t}\n\t\treturn paths;\n\t}\n\n\tpublic clear(): void {\n\t\tthis.fonts.clear();\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { An as signalRegistry } from "./dist-
|
|
1
|
+
import { An as signalRegistry } from "./dist-DkuDAIrG.mjs";
|
|
2
2
|
|
|
3
3
|
//#region ../node-sdk/dist/gpu.mjs
|
|
4
4
|
const TRANSPARENT = {
|
|
@@ -212,4 +212,4 @@ function drawFullscreenPass(encoder, target, pipeline, bindGroups) {
|
|
|
212
212
|
|
|
213
213
|
//#endregion
|
|
214
214
|
export { createFullscreenPipeline as a, drawTextureToTarget as c, signalTextureView as d, signalTiming as f, beginTargetPass as i, fragmentBindGroupLayout as l, PREMULTIPLIED_BLEND as n, drawChildToTexture as o, texturesLayout as p, STRAIGHT_ALPHA_BLEND as r, drawFullscreenPass as s, FULLSCREEN_QUAD_WGSL as t, perDevice as u };
|
|
215
|
-
//# sourceMappingURL=gpu-
|
|
215
|
+
//# sourceMappingURL=gpu-DG3gI88-.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu-RkpiFGOA.mjs","names":[],"sources":["../../node-sdk/dist/gpu.mjs"],"sourcesContent":["import { signalRegistry } from \"@framefields/webgpu-renderers\";\n\n//#region renderer/gpu.ts\nconst TRANSPARENT = {\n\tr: 0,\n\tg: 0,\n\tb: 0,\n\ta: 0\n};\n/**\n* Full-screen quad vertex stage: a 4-vertex triangle strip (draw(4)) that\n* hands `in.uv` (0,0 top-left → 1,1 bottom-right) to an `fs` reading `VSOut`.\n*/\nconst FULLSCREEN_QUAD_WGSL = `\nstruct VSOut {\n @builtin(position) pos : vec4<f32>,\n @location(0) uv : vec2<f32>,\n};\n\n@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {\n var pos = array<vec2<f32>, 4>(\n vec2<f32>(-1.0, 1.0),\n vec2<f32>(1.0, 1.0),\n vec2<f32>(-1.0, -1.0),\n vec2<f32>(1.0, -1.0)\n );\n var uv = array<vec2<f32>, 4>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 1.0)\n );\n return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);\n}\n`;\n/** Premultiplied-alpha \"over\" blending. */\nconst PREMULTIPLIED_BLEND = {\n\tcolor: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t},\n\talpha: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t}\n};\n/** Straight-alpha color over a premultiplied-alpha accumulation. */\nconst STRAIGHT_ALPHA_BLEND = {\n\tcolor: {\n\t\tsrcFactor: \"src-alpha\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t},\n\talpha: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t}\n};\n/** A bind group layout whose entries are bound at 0, 1, 2… in order. */\nfunction fragmentBindGroupLayout(device, bindings, label) {\n\treturn device.createBindGroupLayout({\n\t\t...label && { label },\n\t\tentries: bindings.map((binding, index) => {\n\t\t\tif (binding === \"uniform\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\tbuffer: { type: \"uniform\" }\n\t\t\t};\n\t\t\tif (binding === \"texture\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\ttexture: { sampleType: \"float\" }\n\t\t\t};\n\t\t\tif (binding === \"sampler\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\tsampler: { type: \"filtering\" }\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\t...binding,\n\t\t\t\tbinding: index\n\t\t\t};\n\t\t})\n\t});\n}\n/** `count` float textures followed by one filtering sampler. */\nfunction texturesLayout(device, count) {\n\treturn fragmentBindGroupLayout(device, [...Array(count).fill(\"texture\"), \"sampler\"]);\n}\n/** Memoizes `create` per GPUDevice (resources can't cross devices). */\nfunction perDevice(create) {\n\tconst cache = /* @__PURE__ */ new WeakMap();\n\treturn (device) => {\n\t\tlet value = cache.get(device);\n\t\tif (value === void 0) {\n\t\t\tvalue = create(device);\n\t\t\tcache.set(device, value);\n\t\t}\n\t\treturn value;\n\t};\n}\n/** A triangle-strip pipeline drawing one full-screen quad (`draw(4)`). */\nfunction createFullscreenPipeline(device, options) {\n\tconst { module, format, blend } = options;\n\treturn device.createRenderPipeline({\n\t\t...options.label && { label: options.label },\n\t\tlayout: Array.isArray(options.layouts) ? device.createPipelineLayout({ bindGroupLayouts: options.layouts }) : options.layouts,\n\t\tvertex: {\n\t\t\tmodule,\n\t\t\tentryPoint: options.vertexEntryPoint ?? \"vs\"\n\t\t},\n\t\tfragment: {\n\t\t\tmodule,\n\t\t\tentryPoint: options.fragmentEntryPoint ?? \"fs\",\n\t\t\ttargets: [blend ? {\n\t\t\t\tformat,\n\t\t\t\tblend\n\t\t\t} : { format }]\n\t\t},\n\t\tprimitive: { topology: \"triangle-strip\" }\n\t});\n}\n/**\n* Renders `child` into a cleared temporary texture with an identity\n* transform and a full-size scissor, and returns that texture.\n*/\nasync function drawChildToTexture(args, child, options = {}) {\n\tconst { ctx, encoder, props } = args;\n\tconst width = options.width ?? args.targetWidth;\n\tconst height = options.height ?? args.targetHeight;\n\tconst texture = ctx.renderer.getTemporaryTexture(width, height, [\n\t\t...props.excludeTextures || [],\n\t\targs.targetTexture,\n\t\t...options.exclude ?? []\n\t]);\n\tconst view = texture.createView();\n\tctx.renderer.beginFrame(encoder, view, TRANSPARENT, width, height, \"clear\").end();\n\tctx.renderer.pushScissor({\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth,\n\t\theight\n\t});\n\tctx.renderer.pushIdentity();\n\tawait args.drawChild(child, options.props ?? {\n\t\t...props,\n\t\tvirtualMedia: child\n\t}, view, texture, width, height);\n\tctx.renderer.popTransform();\n\tctx.renderer.popScissor();\n\treturn {\n\t\ttexture,\n\t\tview\n\t};\n}\n/**\n* Opens a \"load\" pass on the node's target and makes it the node's current\n* pass (the caller hands it back to the compositor).\n*/\nfunction beginTargetPass(args, width = args.targetWidth, height = args.targetHeight) {\n\tconst pass = args.ctx.renderer.beginFrame(args.encoder, args.targetView, TRANSPARENT, width, height, \"load\");\n\targs.pass = pass;\n\treturn pass;\n}\n/** Draws `texture` over the whole target at `opacity` (the node's output). */\nfunction drawTextureToTarget(args, texture, opacity = 1) {\n\tconst { targetWidth: width, targetHeight: height } = args;\n\targs.ctx.renderer.drawTexture(beginTargetPass(args), texture, {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth,\n\t\theight\n\t}, { opacity });\n}\n/** Clock a signal texture is evaluated at, in seconds. */\nfunction signalTiming(props, frame, fps, fallbackDurationSeconds = 0) {\n\tconst metadataDurationMs = props.virtualMedia?.metadata?.durationMs;\n\treturn {\n\t\telapsedSeconds: props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps,\n\t\tdurationSeconds: metadataDurationMs ? metadataDurationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : fallbackDurationSeconds\n\t};\n}\n/**\n* The texture a bound parameter samples: its own GPU binding, the signal's\n* texture (cached under `sd.nodeId`, else `fallbackId`), or a 1×1 dummy.\n*/\nfunction signalTextureView(sc, param, fallbackId) {\n\tconst { args } = sc;\n\tif (param.gpuTextureView) return param.gpuTextureView;\n\tif (param.hasStaticSig && param.sd) return signalRegistry.getOrCreate2DTextureView(args.ctx.device, args.encoder, param.sd.nodeId ?? fallbackId, sc.elapsedSeconds, sc.durationSeconds, param.sd, sc.width, sc.height, args.props.renderId, sc.frame, sc.fps);\n\treturn signalRegistry.getDummy1x1TextureView(args.ctx.device);\n}\n/** Clears `target` to transparent and draws one full-screen quad into it. */\nfunction drawFullscreenPass(encoder, target, pipeline, bindGroups) {\n\tconst pass = encoder.beginRenderPass({ colorAttachments: [{\n\t\tview: target,\n\t\tloadOp: \"clear\",\n\t\tstoreOp: \"store\",\n\t\tclearValue: TRANSPARENT\n\t}] });\n\tpass.setPipeline(pipeline);\n\tbindGroups.forEach((group, index) => {\n\t\tpass.setBindGroup(index, group);\n\t});\n\tpass.draw(4);\n\tpass.end();\n}\n\n//#endregion\nexport { FULLSCREEN_QUAD_WGSL, PREMULTIPLIED_BLEND, STRAIGHT_ALPHA_BLEND, beginTargetPass, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTextureView, signalTiming, texturesLayout };\n//# sourceMappingURL=gpu.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gpu-DG3gI88-.mjs","names":[],"sources":["../../node-sdk/dist/gpu.mjs"],"sourcesContent":["import { signalRegistry } from \"@framefields/webgpu-renderers\";\n\n//#region renderer/gpu.ts\nconst TRANSPARENT = {\n\tr: 0,\n\tg: 0,\n\tb: 0,\n\ta: 0\n};\n/**\n* Full-screen quad vertex stage: a 4-vertex triangle strip (draw(4)) that\n* hands `in.uv` (0,0 top-left → 1,1 bottom-right) to an `fs` reading `VSOut`.\n*/\nconst FULLSCREEN_QUAD_WGSL = `\nstruct VSOut {\n @builtin(position) pos : vec4<f32>,\n @location(0) uv : vec2<f32>,\n};\n\n@vertex fn vs(@builtin(vertex_index) vi: u32) -> VSOut {\n var pos = array<vec2<f32>, 4>(\n vec2<f32>(-1.0, 1.0),\n vec2<f32>(1.0, 1.0),\n vec2<f32>(-1.0, -1.0),\n vec2<f32>(1.0, -1.0)\n );\n var uv = array<vec2<f32>, 4>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 1.0)\n );\n return VSOut(vec4<f32>(pos[vi], 0.0, 1.0), uv[vi]);\n}\n`;\n/** Premultiplied-alpha \"over\" blending. */\nconst PREMULTIPLIED_BLEND = {\n\tcolor: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t},\n\talpha: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t}\n};\n/** Straight-alpha color over a premultiplied-alpha accumulation. */\nconst STRAIGHT_ALPHA_BLEND = {\n\tcolor: {\n\t\tsrcFactor: \"src-alpha\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t},\n\talpha: {\n\t\tsrcFactor: \"one\",\n\t\tdstFactor: \"one-minus-src-alpha\",\n\t\toperation: \"add\"\n\t}\n};\n/** A bind group layout whose entries are bound at 0, 1, 2… in order. */\nfunction fragmentBindGroupLayout(device, bindings, label) {\n\treturn device.createBindGroupLayout({\n\t\t...label && { label },\n\t\tentries: bindings.map((binding, index) => {\n\t\t\tif (binding === \"uniform\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\tbuffer: { type: \"uniform\" }\n\t\t\t};\n\t\t\tif (binding === \"texture\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\ttexture: { sampleType: \"float\" }\n\t\t\t};\n\t\t\tif (binding === \"sampler\") return {\n\t\t\t\tbinding: index,\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\tsampler: { type: \"filtering\" }\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tvisibility: GPUShaderStage.FRAGMENT,\n\t\t\t\t...binding,\n\t\t\t\tbinding: index\n\t\t\t};\n\t\t})\n\t});\n}\n/** `count` float textures followed by one filtering sampler. */\nfunction texturesLayout(device, count) {\n\treturn fragmentBindGroupLayout(device, [...Array(count).fill(\"texture\"), \"sampler\"]);\n}\n/** Memoizes `create` per GPUDevice (resources can't cross devices). */\nfunction perDevice(create) {\n\tconst cache = /* @__PURE__ */ new WeakMap();\n\treturn (device) => {\n\t\tlet value = cache.get(device);\n\t\tif (value === void 0) {\n\t\t\tvalue = create(device);\n\t\t\tcache.set(device, value);\n\t\t}\n\t\treturn value;\n\t};\n}\n/** A triangle-strip pipeline drawing one full-screen quad (`draw(4)`). */\nfunction createFullscreenPipeline(device, options) {\n\tconst { module, format, blend } = options;\n\treturn device.createRenderPipeline({\n\t\t...options.label && { label: options.label },\n\t\tlayout: Array.isArray(options.layouts) ? device.createPipelineLayout({ bindGroupLayouts: options.layouts }) : options.layouts,\n\t\tvertex: {\n\t\t\tmodule,\n\t\t\tentryPoint: options.vertexEntryPoint ?? \"vs\"\n\t\t},\n\t\tfragment: {\n\t\t\tmodule,\n\t\t\tentryPoint: options.fragmentEntryPoint ?? \"fs\",\n\t\t\ttargets: [blend ? {\n\t\t\t\tformat,\n\t\t\t\tblend\n\t\t\t} : { format }]\n\t\t},\n\t\tprimitive: { topology: \"triangle-strip\" }\n\t});\n}\n/**\n* Renders `child` into a cleared temporary texture with an identity\n* transform and a full-size scissor, and returns that texture.\n*/\nasync function drawChildToTexture(args, child, options = {}) {\n\tconst { ctx, encoder, props } = args;\n\tconst width = options.width ?? args.targetWidth;\n\tconst height = options.height ?? args.targetHeight;\n\tconst texture = ctx.renderer.getTemporaryTexture(width, height, [\n\t\t...props.excludeTextures || [],\n\t\targs.targetTexture,\n\t\t...options.exclude ?? []\n\t]);\n\tconst view = texture.createView();\n\tctx.renderer.beginFrame(encoder, view, TRANSPARENT, width, height, \"clear\").end();\n\tctx.renderer.pushScissor({\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth,\n\t\theight\n\t});\n\tctx.renderer.pushIdentity();\n\tawait args.drawChild(child, options.props ?? {\n\t\t...props,\n\t\tvirtualMedia: child\n\t}, view, texture, width, height);\n\tctx.renderer.popTransform();\n\tctx.renderer.popScissor();\n\treturn {\n\t\ttexture,\n\t\tview\n\t};\n}\n/**\n* Opens a \"load\" pass on the node's target and makes it the node's current\n* pass (the caller hands it back to the compositor).\n*/\nfunction beginTargetPass(args, width = args.targetWidth, height = args.targetHeight) {\n\tconst pass = args.ctx.renderer.beginFrame(args.encoder, args.targetView, TRANSPARENT, width, height, \"load\");\n\targs.pass = pass;\n\treturn pass;\n}\n/** Draws `texture` over the whole target at `opacity` (the node's output). */\nfunction drawTextureToTarget(args, texture, opacity = 1) {\n\tconst { targetWidth: width, targetHeight: height } = args;\n\targs.ctx.renderer.drawTexture(beginTargetPass(args), texture, {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth,\n\t\theight\n\t}, { opacity });\n}\n/** Clock a signal texture is evaluated at, in seconds. */\nfunction signalTiming(props, frame, fps, fallbackDurationSeconds = 0) {\n\tconst metadataDurationMs = props.virtualMedia?.metadata?.durationMs;\n\treturn {\n\t\telapsedSeconds: props.elapsedMs !== void 0 ? props.elapsedMs / 1e3 : frame / fps,\n\t\tdurationSeconds: metadataDurationMs ? metadataDurationMs / 1e3 : props.durationMs !== void 0 ? props.durationMs / 1e3 : fallbackDurationSeconds\n\t};\n}\n/**\n* The texture a bound parameter samples: its own GPU binding, the signal's\n* texture (cached under `sd.nodeId`, else `fallbackId`), or a 1×1 dummy.\n*/\nfunction signalTextureView(sc, param, fallbackId) {\n\tconst { args } = sc;\n\tif (param.gpuTextureView) return param.gpuTextureView;\n\tif (param.hasStaticSig && param.sd) return signalRegistry.getOrCreate2DTextureView(args.ctx.device, args.encoder, param.sd.nodeId ?? fallbackId, sc.elapsedSeconds, sc.durationSeconds, param.sd, sc.width, sc.height, args.props.renderId, sc.frame, sc.fps);\n\treturn signalRegistry.getDummy1x1TextureView(args.ctx.device);\n}\n/** Clears `target` to transparent and draws one full-screen quad into it. */\nfunction drawFullscreenPass(encoder, target, pipeline, bindGroups) {\n\tconst pass = encoder.beginRenderPass({ colorAttachments: [{\n\t\tview: target,\n\t\tloadOp: \"clear\",\n\t\tstoreOp: \"store\",\n\t\tclearValue: TRANSPARENT\n\t}] });\n\tpass.setPipeline(pipeline);\n\tbindGroups.forEach((group, index) => {\n\t\tpass.setBindGroup(index, group);\n\t});\n\tpass.draw(4);\n\tpass.end();\n}\n\n//#endregion\nexport { FULLSCREEN_QUAD_WGSL, PREMULTIPLIED_BLEND, STRAIGHT_ALPHA_BLEND, beginTargetPass, createFullscreenPipeline, drawChildToTexture, drawFullscreenPass, drawTextureToTarget, fragmentBindGroupLayout, perDevice, signalTextureView, signalTiming, texturesLayout };\n//# sourceMappingURL=gpu.mjs.map"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { do as VirtualMediaData } from "./index-
|
|
2
|
-
import { n as NodeRendererPlugin } from "./index-
|
|
1
|
+
import { do as VirtualMediaData } from "./index-Cpkzy5XR.mjs";
|
|
2
|
+
import { n as NodeRendererPlugin } from "./index-Fciq8bcC.mjs";
|
|
3
3
|
|
|
4
4
|
//#region ../compositions/dist/index.d.mts
|
|
5
5
|
|
|
@@ -111,4 +111,4 @@ interface EncodeWavOptions {
|
|
|
111
111
|
declare function encodeStereoWav(channels: [Float32Array, Float32Array], options?: EncodeWavOptions): Buffer;
|
|
112
112
|
//#endregion
|
|
113
113
|
export { SfxTrigger as a, softLimit as c, _default$2 as d, _default$3 as f, mixAudioTracks as g, _default$6 as h, SfxRenderContext as i, _default as l, _default$5 as m, encodeStereoWav as n, mixSfxInto as o, _default$4 as p, RenderedSfx as r, renderSfx as s, EncodeWavOptions as t, _default$1 as u };
|
|
114
|
-
//# sourceMappingURL=index
|
|
114
|
+
//# sourceMappingURL=index--0vVZDPM.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index
|
|
1
|
+
{"version":3,"file":"index--0vVZDPM.d.mts","names":["a","isStaticVisualMedia","c","RenderParams","i","calculateLayerTransform","l","computeRenderParams","n","framesToSeconds","o","resolveLayerDuration","r","secondsToFrames","s","CropRegion","t","formatTimecode","u","getFontUrl","VirtualMediaData","GPUCommandEncoder","GPUTexture","GPUTextureView","NodeRenderProps","RenderContextValue","drawCompositionTree","Promise","CompositionStateStore","compositionStateStore","SceneProps","AudioClip","decodeAudioSource","Float32Array","mixAudioTracks","GPUDevice","NormalizationContext","normalizeTimeline","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../compositions/dist/index.d.mts","../../../nodes/node-audio-compressor/dist/renderer.d.mts","../../../nodes/node-audio-delay/dist/renderer.d.mts","../../../nodes/node-audio-fade/dist/renderer.d.mts","../../../nodes/node-audio-noise-gate/dist/renderer.d.mts","../../../nodes/node-audio-parametric-eq/dist/renderer.d.mts","../../../nodes/node-audio-reverb/dist/renderer.d.mts","../../../nodes/node-stereo-panning/dist/renderer.d.mts","../src/audio/synth/sfx.ts","../src/audio/synth/wav-encoder.ts"],"sourcesContent":["import { a as isStaticVisualMedia, c as RenderParams, i as calculateLayerTransform, l as computeRenderParams, n as framesToSeconds, o as resolveLayerDuration, r as secondsToFrames, s as CropRegion, t as formatTimecode, u as getFontUrl } from \"./timing-Bx-hzLFR.mjs\";\nimport { VirtualMediaData } from \"@framefields/core\";\nimport { GPUCommandEncoder, GPUTexture, GPUTextureView, NodeRenderProps } from \"@framefields/node-sdk\";\nimport { RenderContextValue } from \"@framefields/webgpu-renderers\";\n\n//#region src/compositions/canvas-composition.d.ts\ndeclare function drawCompositionTree(ctx: RenderContextValue, encoder: GPUCommandEncoder, targetView: GPUTextureView, targetTexture: GPUTexture, targetWidth: number, targetHeight: number, virtualMedia: VirtualMediaData, props: NodeRenderProps, inheritedSeekOffset?: number, inheritedClockOffset?: number): Promise<void>;\n//#endregion\n//#region src/compositions/composition-state.d.ts\ndeclare class CompositionStateStore {\n private states;\n private listeners;\n setState(key: string, frame: number, fps: number, isPlaying?: boolean): void;\n getState(key: string): {\n frame: number;\n fps: number;\n isPlaying: boolean;\n };\n subscribe(key: string, listener: () => void): () => void;\n clearKey(key: string): void;\n private notify;\n}\ndeclare const compositionStateStore: CompositionStateStore;\ninterface SceneProps {\n viewportWidth: number;\n viewportHeight: number;\n containerWidth?: number;\n containerHeight?: number;\n virtualMedia?: VirtualMediaData;\n backgroundColor?: string;\n type?: \"Video\" | \"Audio\" | \"Image\";\n volume?: number;\n renderId?: string;\n frame?: number;\n fps?: number;\n [key: string]: unknown;\n}\n//#endregion\n//#region src/utils/audio-extractor.d.ts\ninterface AudioClip {\n sourceUrl: string;\n destStartFrame: number;\n trimStartSec: number;\n durationFrames: number;\n speed: number;\n volume: number;\n}\n/**\n * Decodes all audio samples from a given source URL into raw Float32 mono/stereo channel buffers.\n */\ndeclare function decodeAudioSource(url: string): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n} | null>;\n/**\n * Recursively parses the VirtualMediaData tree and mixes all active audio tracks\n * into a single unified stereo PCM stream (Float32Array channels).\n */\ndeclare function mixAudioTracks(virtualMedia: VirtualMediaData, fps: number, targetSampleRate?: number, device?: GPUDevice, renderId?: string): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n}>;\n//#endregion\n//#region src/utils/normalization.d.ts\n/**\n * NormalizationContext carries the accumulated offsets and limits\n * as we traverse down the virtual media tree.\n */\ninterface NormalizationContext {\n timeOffsetSec: number;\n durationLimitMs?: number;\n}\n/**\n * normalizeTimeline recurses through the virtual media tree and \"absorbs\"\n * generic timeline-shifting operations into standard properties\n * of their children.\n */\ndeclare function normalizeTimeline(vv: VirtualMediaData, fps: number, context?: NormalizationContext): VirtualMediaData;\n//#endregion\nexport { AudioClip, CropRegion, RenderParams, SceneProps, calculateLayerTransform, compositionStateStore, computeRenderParams, decodeAudioSource, drawCompositionTree, formatTimecode, framesToSeconds, getFontUrl, isStaticVisualMedia, mixAudioTracks, normalizeTimeline, resolveLayerDuration, secondsToFrames };\n//# sourceMappingURL=index.d.mts.map","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","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","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","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","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","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","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":";;;;;;ASKA;AAOA;;iBT8CiBkC,cAAAA,CS7CS,YAAA,ET6CoBd,gBS7CpB,EAAA,GAAA,EAAA,MAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,MAAA,CAAA,ET6CuFe,SS7CvF,EAAA,QAAA,CAAA,EAAA,MAAA,CAAA,ET6CsHR,OS7CtH,CAAA;EAChB,QAAA,ET6CEM,YS7CF,EAAA;EACP,UAAA,EAAA,MAAA;CAAM,CAAA;;;;;;;;;;cRZKM,YAAUE,SAASH;AD+CuB;;;;cE/C1CM,YAAUE,SAASH;AF+CuB;;;;cG/C1CM,YAAUE,SAASH;AH+CuB;;;;cI/C1CM,YAAUE,SAASH;AJ+CuB;;;;cK/C1CM,YAAUE,SAASH;AL+CuB;;;;cM/C1CM,YAAUE,SAASH;AN+CuB;;;;cO/C1CM,UAAUE,SAASH;AP+CuB;;;;;;;;AAAA;;;;;AAQ+F,UQhDtI,UAAA,CRgDsI;;;;ECvDzI7B,WAAAA,CAAAA,EAAsE,MAAA;;;KOexE,YAAA,IAAgB,cAAc;ANf5BK,UMiBG,WAAA,CNjBgBD;;;YMoBtB;ALvBuE;UK0BjE,gBAAA;;;EJvBHW;;;;ACHoE;;;;ACGpEU,iBEsLE,SAAA,CFtLiBD,OAAAA,EEuLvB,UFvLcG,EAAAA,GAAQ,EEwL1B,gBFxL0B,CAAA,EEyL7B,WFzL6B;;iBEiOhB,UAAA,SACP,gCACU;;ADtO+D;;;iBC6PlE,SAAA,SACP;;;;;;;ARpMQhC,USrDA,gBAAA,CTqDc;EAAed,UAAAA,CAAAA,EAAAA,MAAAA;;;;;iBS9C9B,eAAA,YACJ,cAAc,yBAChB,mBACP"}
|
|
@@ -126,4 +126,4 @@ declare class FontManager {
|
|
|
126
126
|
}
|
|
127
127
|
//#endregion
|
|
128
128
|
export { RegisteredFont as a, RegisterFontOptions as i, MeasureTextOptions as n, TextMetrics as o, MeasuredGlyph as r, FontManager as t };
|
|
129
|
-
//# sourceMappingURL=index-
|
|
129
|
+
//# sourceMappingURL=index-BcA8rep0.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BcA8rep0.d.mts","names":[],"sources":["../src/fonts/manager.ts"],"sourcesContent":[],"mappings":";UASiB,mBAAA;EAAA,MAAA,CAAA,EAAA,MAAA;EAOA,MAAA,EAAA,MAAA,GALC,UAKa;EAmJd,MAAA,CAAA,EAAA,MAAA,GAAA,MAAkB;EAelB,KAAA,CAAA,EAAA,QAAa,GAAA,QAAA,GAAA,SAAA;AAe9B;AAkBa,UAnMI,cAAA,CAmMO;EASM,MAAA,EAAA,MAAA;EAWH,MAAA,EAAA,MAAA,GArNT,UAqNS;EACP,QAAA,CAAA,EAAA,MAAA;EACR,MAAA,EAAA,UAAA,GAAA,UAAA;EAAR,cAAA,CAAA,EAAA,MAAA;EAWe,UAAA,CAAA,EAAA,MAAA;EACf,MAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAqBO,KAAA,CAAA,EAAA,MAAA;;;;;AAsHS,UA7NH,kBAAA,CA6NG;EACR,UAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EAAA,MAAA;EAgFyB,UAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAQX;EAAc,aAAA,CAAA,EAAA,MAAA;;;;;;;;;UAvSf,aAAA;;;;;;;;;;;;;;UAeA,WAAA;;;;;;UAMR;;;;;;;;;;;cAYI,WAAA;;;;;;;wBASiB;;;;2CAWH,gDACP,aAChB,QAAQ;;;;;;;4CAWO,aACf;;;;;;;;;;;;wCAqBO,qBACP;;;;8BAgFgC;;;;;;;;mBAcX;;;;;;;;;;;;oCAsBE,gDACP,aAChB,QAAQ;uBAgFiB;;YAQX"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fa as OutputItem } from "./index-
|
|
2
|
-
import { t as SignalResultSchema } from "./index-
|
|
1
|
+
import { fa as OutputItem } from "./index-Cpkzy5XR.mjs";
|
|
2
|
+
import { t as SignalResultSchema } from "./index-Fciq8bcC.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region ../../nodes/node-audio-signal-extractor/dist/index.d.mts
|
|
@@ -261,4 +261,4 @@ type SignalMathResult = z.infer<typeof SignalMathResultSchema>;
|
|
|
261
261
|
|
|
262
262
|
//#endregion
|
|
263
263
|
export { index_d_exports$3 as i, index_d_exports$1 as n, index_d_exports$2 as r, index_d_exports as t };
|
|
264
|
-
//# sourceMappingURL=index-
|
|
264
|
+
//# sourceMappingURL=index-BzQc812z.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-Db8Z3AtX.d.mts","names":["z","_framefields_core0","ExtractionModeEnum","ZodEnum","ExtractionMode","infer","SignalCurveEnum","SignalCurve","AudioSignalExtractorConfigSchema","ZodDefault","ZodNumber","ZodBoolean","core","$strip","ZodObject","AudioSignalExtractorConfig","AudioSignalExtractorResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodString","ZodOptional","AudioSignalExtractorResult","SignalResultSchema","z","WGSL_OUTPUT_TYPES","WGSLOutputType","WGSL_PARAM_TYPES","WGSLParamType","FnParamSchema","ZodString","ZodEnum","ZodNumber","core","$strip","ZodObject","FnParam","infer","SignalNodeConfigSchema","ZodDefault","ZodBoolean","ZodArray","SignalNodeConfig","SignalNodeResult","_framefields_core0","z","GateModeSchema","ZodEnum","GateMode","infer","SignalGateConfigSchema","ZodNumber","ZodDefault","ZodBoolean","core","$strip","ZodObject","SignalGateConfig","SignalGateResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodString","ZodOptional","SignalGateResult","z","_framefields_core0","SignalMathOperationEnum","ZodEnum","SignalMathOperation","infer","SignalMathConfigSchema","ZodDefault","ZodNumber","ZodString","core","$strip","ZodObject","SignalMathConfig","SignalMathResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodOptional","SignalMathResult"],"sources":["../../../nodes/node-audio-signal-extractor/dist/index.d.mts","../../../nodes/node-signal/dist/index.d.mts","../../../nodes/node-signal-gate/dist/index.d.mts","../../../nodes/node-signal-math/dist/index.d.mts"],"sourcesContent":["import \"./renderer.mjs\";\nimport { z } from \"zod\";\nimport * as _framefields_core0 from \"@framefields/core\";\n\n//#region src/shared/config.d.ts\ndeclare const ExtractionModeEnum: z.ZodEnum<{\n rms_envelope: \"rms_envelope\";\n transient_beat: \"transient_beat\";\n sub_bass: \"sub_bass\";\n bass: \"bass\";\n mid: \"mid\";\n high: \"high\";\n spectral_flux: \"spectral_flux\";\n}>;\ntype ExtractionMode = z.infer<typeof ExtractionModeEnum>;\ndeclare const SignalCurveEnum: z.ZodEnum<{\n linear: \"linear\";\n exponential: \"exponential\";\n logarithmic: \"logarithmic\";\n square: \"square\";\n smoothstep: \"smoothstep\";\n}>;\ntype SignalCurve = z.infer<typeof SignalCurveEnum>;\ndeclare const AudioSignalExtractorConfigSchema: z.ZodObject<{\n extractionMode: z.ZodDefault<z.ZodEnum<{\n rms_envelope: \"rms_envelope\";\n transient_beat: \"transient_beat\";\n sub_bass: \"sub_bass\";\n bass: \"bass\";\n mid: \"mid\";\n high: \"high\";\n spectral_flux: \"spectral_flux\";\n }>>;\n attackMs: z.ZodDefault<z.ZodNumber>;\n releaseMs: z.ZodDefault<z.ZodNumber>;\n sensitivity: z.ZodDefault<z.ZodNumber>;\n noiseFloorDb: z.ZodDefault<z.ZodNumber>;\n dynamicRangeDb: z.ZodDefault<z.ZodNumber>;\n autoRange: z.ZodDefault<z.ZodBoolean>;\n smoothing: z.ZodDefault<z.ZodNumber>;\n curve: z.ZodDefault<z.ZodEnum<{\n linear: \"linear\";\n exponential: \"exponential\";\n logarithmic: \"logarithmic\";\n square: \"square\";\n smoothstep: \"smoothstep\";\n }>>;\n beatThreshold: z.ZodDefault<z.ZodNumber>;\n beatDecayMs: z.ZodDefault<z.ZodNumber>;\n previewMode: z.ZodDefault<z.ZodEnum<{\n waveform: \"waveform\";\n envelope: \"envelope\";\n beat_markers: \"beat_markers\";\n spectrum: \"spectrum\";\n }>>;\n}, z.core.$strip>;\ntype AudioSignalExtractorConfig = z.infer<typeof AudioSignalExtractorConfigSchema>;\ndeclare const AudioSignalExtractorResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype AudioSignalExtractorResult = z.infer<typeof AudioSignalExtractorResultSchema>;\n//#endregion\nexport { AudioSignalExtractorConfig, AudioSignalExtractorConfigSchema, AudioSignalExtractorResult, AudioSignalExtractorResultSchema, ExtractionMode, ExtractionModeEnum, SignalCurve, SignalCurveEnum };\n//# sourceMappingURL=index.d.mts.map","import { SignalResultSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.d.ts\ndeclare const WGSL_OUTPUT_TYPES: readonly [\"f32\"];\ntype WGSLOutputType = (typeof WGSL_OUTPUT_TYPES)[number];\ndeclare const WGSL_PARAM_TYPES: readonly [\"f32\", \"i32\", \"u32\", \"vec2f\", \"vec3f\", \"vec4f\"];\ntype WGSLParamType = (typeof WGSL_PARAM_TYPES)[number];\ndeclare const FnParamSchema: z.ZodObject<{\n name: z.ZodString;\n type: z.ZodEnum<{\n f32: \"f32\";\n i32: \"i32\";\n u32: \"u32\";\n vec2f: \"vec2f\";\n vec3f: \"vec3f\";\n vec4f: \"vec4f\";\n }>;\n defaultValue: z.ZodNumber;\n}, z.core.$strip>;\ntype FnParam = z.infer<typeof FnParamSchema>;\ndeclare const SignalNodeConfigSchema: z.ZodObject<{\n amplitude: z.ZodDefault<z.ZodNumber>;\n frequency: z.ZodDefault<z.ZodNumber>;\n phase: z.ZodDefault<z.ZodNumber>;\n offset: z.ZodDefault<z.ZodNumber>;\n amplitudeMin: z.ZodDefault<z.ZodNumber>;\n amplitudeMax: z.ZodDefault<z.ZodNumber>;\n spatialScale: z.ZodDefault<z.ZodNumber>;\n spatialSpeed: z.ZodDefault<z.ZodNumber>;\n fmAmplitude: z.ZodDefault<z.ZodNumber>;\n fmFrequency: z.ZodDefault<z.ZodNumber>;\n gateEnabled: z.ZodDefault<z.ZodBoolean>;\n gateStartFrame: z.ZodDefault<z.ZodNumber>;\n gateEndFrame: z.ZodDefault<z.ZodNumber>;\n gateIdleValue: z.ZodDefault<z.ZodNumber>;\n envelopeUseFrame: z.ZodDefault<z.ZodBoolean>;\n baseEnabled: z.ZodDefault<z.ZodBoolean>;\n baseType: z.ZodDefault<z.ZodEnum<{\n sine: \"sine\";\n triangle: \"triangle\";\n sawtooth: \"sawtooth\";\n square: \"square\";\n constant: \"constant\";\n noise_smooth: \"noise_smooth\";\n noise_white: \"noise_white\";\n pulse: \"pulse\";\n bounce: \"bounce\";\n staircase: \"staircase\";\n custom: \"custom\";\n }>>;\n fmEnabled: z.ZodDefault<z.ZodBoolean>;\n envelopeEnabled: z.ZodDefault<z.ZodBoolean>;\n envelopeFamily: z.ZodDefault<z.ZodEnum<{\n sine: \"sine\";\n bounce: \"bounce\";\n linear: \"linear\";\n quad: \"quad\";\n cubic: \"cubic\";\n quart: \"quart\";\n quint: \"quint\";\n expo: \"expo\";\n circ: \"circ\";\n back: \"back\";\n elastic: \"elastic\";\n smoothstep: \"smoothstep\";\n smootherstep: \"smootherstep\";\n }>>;\n envelopeMode: z.ZodDefault<z.ZodEnum<{\n in: \"in\";\n out: \"out\";\n in_out: \"in_out\";\n }>>;\n envelopePattern: z.ZodDefault<z.ZodEnum<{\n ramp_up: \"ramp_up\";\n ramp_down: \"ramp_down\";\n bell: \"bell\";\n loop: \"loop\";\n }>>;\n envelopeCycles: z.ZodDefault<z.ZodNumber>;\n fnBody: z.ZodDefault<z.ZodString>;\n fnOutputType: z.ZodDefault<z.ZodEnum<{\n f32: \"f32\";\n }>>;\n fnParams: z.ZodDefault<z.ZodArray<z.ZodObject<{\n name: z.ZodString;\n type: z.ZodEnum<{\n f32: \"f32\";\n i32: \"i32\";\n u32: \"u32\";\n vec2f: \"vec2f\";\n vec3f: \"vec3f\";\n vec4f: \"vec4f\";\n }>;\n defaultValue: z.ZodNumber;\n }, z.core.$strip>>>;\n previewMode: z.ZodDefault<z.ZodEnum<{\n pattern: \"pattern\";\n cartesian: \"cartesian\";\n \"3d\": \"3d\";\n }>>;\n}, z.core.$strip>;\ntype SignalNodeConfig = z.infer<typeof SignalNodeConfigSchema>;\ntype SignalNodeResult = z.infer<typeof SignalResultSchema>;\n//#endregion\nexport { FnParam, FnParamSchema, SignalNodeConfig, SignalNodeConfigSchema, SignalNodeResult, SignalResultSchema, WGSLOutputType, WGSLParamType, WGSL_OUTPUT_TYPES, WGSL_PARAM_TYPES };\n//# sourceMappingURL=index.d.mts.map","import \"./renderer.mjs\";\nimport * as _framefields_core0 from \"@framefields/core\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.d.ts\ndeclare const GateModeSchema: z.ZodEnum<{\n gate: \"gate\";\n trigger: \"trigger\";\n toggle: \"toggle\";\n}>;\ntype GateMode = z.infer<typeof GateModeSchema>;\ndeclare const SignalGateConfigSchema: z.ZodObject<{\n threshold: z.ZodDefault<z.ZodNumber>;\n debounceMs: z.ZodDefault<z.ZodNumber>;\n mode: z.ZodDefault<z.ZodEnum<{\n gate: \"gate\";\n trigger: \"trigger\";\n toggle: \"toggle\";\n }>>;\n holdFrames: z.ZodDefault<z.ZodNumber>;\n invert: z.ZodDefault<z.ZodBoolean>;\n}, z.core.$strip>;\ntype SignalGateConfig = z.infer<typeof SignalGateConfigSchema>;\ndeclare const SignalGateResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype SignalGateResult = z.infer<typeof SignalGateResultSchema>;\n//#endregion\nexport { GateMode, GateModeSchema, SignalGateConfig, SignalGateConfigSchema, SignalGateResult, SignalGateResultSchema };\n//# sourceMappingURL=index.d.mts.map","import { z } from \"zod\";\nimport * as _framefields_core0 from \"@framefields/core\";\n\n//#region src/shared/config.d.ts\ndeclare const SignalMathOperationEnum: z.ZodEnum<{\n remap: \"remap\";\n normalize: \"normalize\";\n add: \"add\";\n subtract: \"subtract\";\n multiply: \"multiply\";\n divide: \"divide\";\n invert: \"invert\";\n clamp: \"clamp\";\n power: \"power\";\n smoothstep: \"smoothstep\";\n custom: \"custom\";\n}>;\ntype SignalMathOperation = z.infer<typeof SignalMathOperationEnum>;\ndeclare const SignalMathConfigSchema: z.ZodObject<{\n operation: z.ZodDefault<z.ZodEnum<{\n remap: \"remap\";\n normalize: \"normalize\";\n add: \"add\";\n subtract: \"subtract\";\n multiply: \"multiply\";\n divide: \"divide\";\n invert: \"invert\";\n clamp: \"clamp\";\n power: \"power\";\n smoothstep: \"smoothstep\";\n custom: \"custom\";\n }>>;\n bValue: z.ZodDefault<z.ZodNumber>;\n inMin: z.ZodDefault<z.ZodNumber>;\n inMax: z.ZodDefault<z.ZodNumber>;\n outMin: z.ZodDefault<z.ZodNumber>;\n outMax: z.ZodDefault<z.ZodNumber>;\n clampMin: z.ZodDefault<z.ZodNumber>;\n clampMax: z.ZodDefault<z.ZodNumber>;\n exponent: z.ZodDefault<z.ZodNumber>;\n edge0: z.ZodDefault<z.ZodNumber>;\n edge1: z.ZodDefault<z.ZodNumber>;\n customWGSL: z.ZodDefault<z.ZodString>;\n}, z.core.$strip>;\ntype SignalMathConfig = z.infer<typeof SignalMathConfigSchema>;\ndeclare const SignalMathResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype SignalMathResult = z.infer<typeof SignalMathResultSchema>;\n//#endregion\nexport { SignalMathConfig, SignalMathConfigSchema, SignalMathOperation, SignalMathOperationEnum, SignalMathResult, SignalMathResultSchema };\n//# sourceMappingURL=index.d.mts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-BzQc812z.d.mts","names":["z","_framefields_core0","ExtractionModeEnum","ZodEnum","ExtractionMode","infer","SignalCurveEnum","SignalCurve","AudioSignalExtractorConfigSchema","ZodDefault","ZodNumber","ZodBoolean","core","$strip","ZodObject","AudioSignalExtractorConfig","AudioSignalExtractorResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodString","ZodOptional","AudioSignalExtractorResult","SignalResultSchema","z","WGSL_OUTPUT_TYPES","WGSLOutputType","WGSL_PARAM_TYPES","WGSLParamType","FnParamSchema","ZodString","ZodEnum","ZodNumber","core","$strip","ZodObject","FnParam","infer","SignalNodeConfigSchema","ZodDefault","ZodBoolean","ZodArray","SignalNodeConfig","SignalNodeResult","_framefields_core0","z","GateModeSchema","ZodEnum","GateMode","infer","SignalGateConfigSchema","ZodNumber","ZodDefault","ZodBoolean","core","$strip","ZodObject","SignalGateConfig","SignalGateResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodString","ZodOptional","SignalGateResult","z","_framefields_core0","SignalMathOperationEnum","ZodEnum","SignalMathOperation","infer","SignalMathConfigSchema","ZodDefault","ZodNumber","ZodString","core","$strip","ZodObject","SignalMathConfig","SignalMathResultSchema","OutputItem","$ZodTypeInternals","ZodType","ZodArray","ZodOptional","SignalMathResult"],"sources":["../../../nodes/node-audio-signal-extractor/dist/index.d.mts","../../../nodes/node-signal/dist/index.d.mts","../../../nodes/node-signal-gate/dist/index.d.mts","../../../nodes/node-signal-math/dist/index.d.mts"],"sourcesContent":["import \"./renderer.mjs\";\nimport { z } from \"zod\";\nimport * as _framefields_core0 from \"@framefields/core\";\n\n//#region src/shared/config.d.ts\ndeclare const ExtractionModeEnum: z.ZodEnum<{\n rms_envelope: \"rms_envelope\";\n transient_beat: \"transient_beat\";\n sub_bass: \"sub_bass\";\n bass: \"bass\";\n mid: \"mid\";\n high: \"high\";\n spectral_flux: \"spectral_flux\";\n}>;\ntype ExtractionMode = z.infer<typeof ExtractionModeEnum>;\ndeclare const SignalCurveEnum: z.ZodEnum<{\n linear: \"linear\";\n exponential: \"exponential\";\n logarithmic: \"logarithmic\";\n square: \"square\";\n smoothstep: \"smoothstep\";\n}>;\ntype SignalCurve = z.infer<typeof SignalCurveEnum>;\ndeclare const AudioSignalExtractorConfigSchema: z.ZodObject<{\n extractionMode: z.ZodDefault<z.ZodEnum<{\n rms_envelope: \"rms_envelope\";\n transient_beat: \"transient_beat\";\n sub_bass: \"sub_bass\";\n bass: \"bass\";\n mid: \"mid\";\n high: \"high\";\n spectral_flux: \"spectral_flux\";\n }>>;\n attackMs: z.ZodDefault<z.ZodNumber>;\n releaseMs: z.ZodDefault<z.ZodNumber>;\n sensitivity: z.ZodDefault<z.ZodNumber>;\n noiseFloorDb: z.ZodDefault<z.ZodNumber>;\n dynamicRangeDb: z.ZodDefault<z.ZodNumber>;\n autoRange: z.ZodDefault<z.ZodBoolean>;\n smoothing: z.ZodDefault<z.ZodNumber>;\n curve: z.ZodDefault<z.ZodEnum<{\n linear: \"linear\";\n exponential: \"exponential\";\n logarithmic: \"logarithmic\";\n square: \"square\";\n smoothstep: \"smoothstep\";\n }>>;\n beatThreshold: z.ZodDefault<z.ZodNumber>;\n beatDecayMs: z.ZodDefault<z.ZodNumber>;\n previewMode: z.ZodDefault<z.ZodEnum<{\n waveform: \"waveform\";\n envelope: \"envelope\";\n beat_markers: \"beat_markers\";\n spectrum: \"spectrum\";\n }>>;\n}, z.core.$strip>;\ntype AudioSignalExtractorConfig = z.infer<typeof AudioSignalExtractorConfigSchema>;\ndeclare const AudioSignalExtractorResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype AudioSignalExtractorResult = z.infer<typeof AudioSignalExtractorResultSchema>;\n//#endregion\nexport { AudioSignalExtractorConfig, AudioSignalExtractorConfigSchema, AudioSignalExtractorResult, AudioSignalExtractorResultSchema, ExtractionMode, ExtractionModeEnum, SignalCurve, SignalCurveEnum };\n//# sourceMappingURL=index.d.mts.map","import { SignalResultSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.d.ts\ndeclare const WGSL_OUTPUT_TYPES: readonly [\"f32\"];\ntype WGSLOutputType = (typeof WGSL_OUTPUT_TYPES)[number];\ndeclare const WGSL_PARAM_TYPES: readonly [\"f32\", \"i32\", \"u32\", \"vec2f\", \"vec3f\", \"vec4f\"];\ntype WGSLParamType = (typeof WGSL_PARAM_TYPES)[number];\ndeclare const FnParamSchema: z.ZodObject<{\n name: z.ZodString;\n type: z.ZodEnum<{\n f32: \"f32\";\n i32: \"i32\";\n u32: \"u32\";\n vec2f: \"vec2f\";\n vec3f: \"vec3f\";\n vec4f: \"vec4f\";\n }>;\n defaultValue: z.ZodNumber;\n}, z.core.$strip>;\ntype FnParam = z.infer<typeof FnParamSchema>;\ndeclare const SignalNodeConfigSchema: z.ZodObject<{\n amplitude: z.ZodDefault<z.ZodNumber>;\n frequency: z.ZodDefault<z.ZodNumber>;\n phase: z.ZodDefault<z.ZodNumber>;\n offset: z.ZodDefault<z.ZodNumber>;\n amplitudeMin: z.ZodDefault<z.ZodNumber>;\n amplitudeMax: z.ZodDefault<z.ZodNumber>;\n spatialScale: z.ZodDefault<z.ZodNumber>;\n spatialSpeed: z.ZodDefault<z.ZodNumber>;\n fmAmplitude: z.ZodDefault<z.ZodNumber>;\n fmFrequency: z.ZodDefault<z.ZodNumber>;\n gateEnabled: z.ZodDefault<z.ZodBoolean>;\n gateStartFrame: z.ZodDefault<z.ZodNumber>;\n gateEndFrame: z.ZodDefault<z.ZodNumber>;\n gateIdleValue: z.ZodDefault<z.ZodNumber>;\n envelopeUseFrame: z.ZodDefault<z.ZodBoolean>;\n baseEnabled: z.ZodDefault<z.ZodBoolean>;\n baseType: z.ZodDefault<z.ZodEnum<{\n sine: \"sine\";\n triangle: \"triangle\";\n sawtooth: \"sawtooth\";\n square: \"square\";\n constant: \"constant\";\n noise_smooth: \"noise_smooth\";\n noise_white: \"noise_white\";\n pulse: \"pulse\";\n bounce: \"bounce\";\n staircase: \"staircase\";\n custom: \"custom\";\n }>>;\n fmEnabled: z.ZodDefault<z.ZodBoolean>;\n envelopeEnabled: z.ZodDefault<z.ZodBoolean>;\n envelopeFamily: z.ZodDefault<z.ZodEnum<{\n sine: \"sine\";\n bounce: \"bounce\";\n linear: \"linear\";\n quad: \"quad\";\n cubic: \"cubic\";\n quart: \"quart\";\n quint: \"quint\";\n expo: \"expo\";\n circ: \"circ\";\n back: \"back\";\n elastic: \"elastic\";\n smoothstep: \"smoothstep\";\n smootherstep: \"smootherstep\";\n }>>;\n envelopeMode: z.ZodDefault<z.ZodEnum<{\n in: \"in\";\n out: \"out\";\n in_out: \"in_out\";\n }>>;\n envelopePattern: z.ZodDefault<z.ZodEnum<{\n ramp_up: \"ramp_up\";\n ramp_down: \"ramp_down\";\n bell: \"bell\";\n loop: \"loop\";\n }>>;\n envelopeCycles: z.ZodDefault<z.ZodNumber>;\n fnBody: z.ZodDefault<z.ZodString>;\n fnOutputType: z.ZodDefault<z.ZodEnum<{\n f32: \"f32\";\n }>>;\n fnParams: z.ZodDefault<z.ZodArray<z.ZodObject<{\n name: z.ZodString;\n type: z.ZodEnum<{\n f32: \"f32\";\n i32: \"i32\";\n u32: \"u32\";\n vec2f: \"vec2f\";\n vec3f: \"vec3f\";\n vec4f: \"vec4f\";\n }>;\n defaultValue: z.ZodNumber;\n }, z.core.$strip>>>;\n previewMode: z.ZodDefault<z.ZodEnum<{\n pattern: \"pattern\";\n cartesian: \"cartesian\";\n \"3d\": \"3d\";\n }>>;\n}, z.core.$strip>;\ntype SignalNodeConfig = z.infer<typeof SignalNodeConfigSchema>;\ntype SignalNodeResult = z.infer<typeof SignalResultSchema>;\n//#endregion\nexport { FnParam, FnParamSchema, SignalNodeConfig, SignalNodeConfigSchema, SignalNodeResult, SignalResultSchema, WGSLOutputType, WGSLParamType, WGSL_OUTPUT_TYPES, WGSL_PARAM_TYPES };\n//# sourceMappingURL=index.d.mts.map","import \"./renderer.mjs\";\nimport * as _framefields_core0 from \"@framefields/core\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.d.ts\ndeclare const GateModeSchema: z.ZodEnum<{\n gate: \"gate\";\n trigger: \"trigger\";\n toggle: \"toggle\";\n}>;\ntype GateMode = z.infer<typeof GateModeSchema>;\ndeclare const SignalGateConfigSchema: z.ZodObject<{\n threshold: z.ZodDefault<z.ZodNumber>;\n debounceMs: z.ZodDefault<z.ZodNumber>;\n mode: z.ZodDefault<z.ZodEnum<{\n gate: \"gate\";\n trigger: \"trigger\";\n toggle: \"toggle\";\n }>>;\n holdFrames: z.ZodDefault<z.ZodNumber>;\n invert: z.ZodDefault<z.ZodBoolean>;\n}, z.core.$strip>;\ntype SignalGateConfig = z.infer<typeof SignalGateConfigSchema>;\ndeclare const SignalGateResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype SignalGateResult = z.infer<typeof SignalGateResultSchema>;\n//#endregion\nexport { GateMode, GateModeSchema, SignalGateConfig, SignalGateConfigSchema, SignalGateResult, SignalGateResultSchema };\n//# sourceMappingURL=index.d.mts.map","import { z } from \"zod\";\nimport * as _framefields_core0 from \"@framefields/core\";\n\n//#region src/shared/config.d.ts\ndeclare const SignalMathOperationEnum: z.ZodEnum<{\n remap: \"remap\";\n normalize: \"normalize\";\n add: \"add\";\n subtract: \"subtract\";\n multiply: \"multiply\";\n divide: \"divide\";\n invert: \"invert\";\n clamp: \"clamp\";\n power: \"power\";\n smoothstep: \"smoothstep\";\n custom: \"custom\";\n}>;\ntype SignalMathOperation = z.infer<typeof SignalMathOperationEnum>;\ndeclare const SignalMathConfigSchema: z.ZodObject<{\n operation: z.ZodDefault<z.ZodEnum<{\n remap: \"remap\";\n normalize: \"normalize\";\n add: \"add\";\n subtract: \"subtract\";\n multiply: \"multiply\";\n divide: \"divide\";\n invert: \"invert\";\n clamp: \"clamp\";\n power: \"power\";\n smoothstep: \"smoothstep\";\n custom: \"custom\";\n }>>;\n bValue: z.ZodDefault<z.ZodNumber>;\n inMin: z.ZodDefault<z.ZodNumber>;\n inMax: z.ZodDefault<z.ZodNumber>;\n outMin: z.ZodDefault<z.ZodNumber>;\n outMax: z.ZodDefault<z.ZodNumber>;\n clampMin: z.ZodDefault<z.ZodNumber>;\n clampMax: z.ZodDefault<z.ZodNumber>;\n exponent: z.ZodDefault<z.ZodNumber>;\n edge0: z.ZodDefault<z.ZodNumber>;\n edge1: z.ZodDefault<z.ZodNumber>;\n customWGSL: z.ZodDefault<z.ZodString>;\n}, z.core.$strip>;\ntype SignalMathConfig = z.infer<typeof SignalMathConfigSchema>;\ndeclare const SignalMathResultSchema: z.ZodObject<{\n selectedOutputIndex: z.ZodNumber;\n outputs: z.ZodArray<z.ZodObject<{\n items: z.ZodArray<z.ZodType<_framefields_core0.OutputItem<\"Signal\">, unknown, z.core.$ZodTypeInternals<_framefields_core0.OutputItem<\"Signal\">, unknown>>>;\n }, z.core.$strip>>;\n sourceFingerprint: z.ZodOptional<z.ZodString>;\n}, z.core.$strip>;\ntype SignalMathResult = z.infer<typeof SignalMathResultSchema>;\n//#endregion\nexport { SignalMathConfig, SignalMathConfigSchema, SignalMathOperation, SignalMathOperationEnum, SignalMathResult, SignalMathResultSchema };\n//# sourceMappingURL=index.d.mts.map"],"mappings":"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"}
|
|
@@ -5895,4 +5895,4 @@ declare global {
|
|
|
5895
5895
|
}
|
|
5896
5896
|
//#endregion
|
|
5897
5897
|
export { AnchorGroupingSchema as $, TrackedObject as $a, NodeProcessorContext as $i, BezierSegment3D as $n, progressSignal as $o, DEFAULT_MEDIA_DIMENSION as $r, TextCursorStyle as $t, SlugPipeline as A, SignalGateDataSchema as Aa, HandleTypeVal as Ai, computeLineLeadingDisplacement as An, formatHex as Ao, AnimationTypeSchema as Ar, ParticleDissolveConfig as At, lutStore as B, StorageService as Ba, MediaOperation as Bi, evaluateSkewMatrix as Bn, gradientStopsToOklab as Bo, COMPOSITE_OPERATIONS as Br, SelectorUnits as Bt, RoundedBoxGeometryOptions as C, SignalBuilderConfig as Ca, GateSignalOptions as Ci, Vec2Schema as Cn, cosineSignal as Co, ResolvedEnvironment as Cr, GlyphAnchorPointSchema as Ct, SignalRegistryResource as D, SignalData as Da, Gradient as Di, VolumetricFormationModeSchema as Dn, deserializeSignalData as Do, parseColorToRgb as Dr, LineSpacingDynamicsSchema as Dt, SignalRegistry as E, SignalContext as Ea, GlobalCompositeOperation as Ei, VolumetricFormationMode as En, dataTypeColors as Eo, Vector3Math as Er, LineSpacingDynamics as Et, initHeadlessWebGPU as F, SignalValue as Fa, Landmark3D as Fi, evaluateCubicBezier as Fn, getFileDataMetadata as Fo, BaseMediaOperationProps as Fr, SelectorBasedOnSchema as Ft, signalRegistry as G, TensorNode as Ga, MediaSourceSchema as Gi, generatePathSegments as Gn, isVirtualMediaData as Go, ConfigHandle as Gr, Spatial3DPropertiesSchema as Gt, parseMTL as H, TensorData as Ha, MediaService as Hi, evaluateTypewriterState as Hn, isCssGradient as Ho, CannyOptions as Hr, SkewProperties as Ht, inputStore as I, SineSignalOptions as Ia, MAX_GRADIENT_STOPS as Ii, evaluateCubicBezierDerivative as In, getFingerprint as Io, BaseMediaOperationPropsSchema as Ir, SelectorMode as It, AETextAnimatorSchema as J, TextSpan as Ja, ModerationUnrefundableError as Ji, parseSvgPathToCubicBeziers as Jn, normalizeColorStops as Jo, ConnectedInput as Jr, TextAnchorConfig as Jt, textureCache as K, TensorPipelineConfig as Ka, MeshAudioDeformConfig as Ki, getScramblePool as Kn, limitGradientStops as Ko, ConfigHandleSchema as Kr, SpringPhysics as Kt, loadFBX as L, SingleOutputGeneric as La, MIME_TYPES as Li, evaluateExpressionSelector as Ln, getLeafMediaType as Lo, BaseVideoLayerProps as Lr, SelectorModeSchema as Lt, WebGPUAudioProcessor as M, SignalMathDataSchema as Ma, JsonObject as Mi, deterministicWigglyNoise as Mn, frameSignal as Mo, AnyOutputUnionSchema as Mr, PathChainLUT as Mt, buildWGSLSignalFn as N, SignalStats as Na, JsonValue as Ni, distanceToCurveParameter as Nn, generateId as No, AudioExtractorSignalData as Nr, PathChainLUTEntry as Nt, Skeleton3D as O, SignalDataSchema as Oa, GradientType as Oi, buildPathLUT as On, extractSvgDimensions as Oo, resolveEnvironment as Or, LongShadowConfig as Ot, ensureDevice as P, SignalStatsSchema as Pa, JsonValueSchema as Pi, ellipseToCubicBeziers as Pn, getActiveMediaMetadata as Po, AudioExtractorSignalDataSchema as Pr, SelectorBasedOn as Pt, AnchorGrouping as Q, TimelineTransformSchema as Qa, NodeMetadataSchema as Qi, waveToCubicBeziers as Qn, programmaticSignal as Qo, DEFAULT_FPS as Qr, TextCursorConfigSchema as Qt, loadModel3D as R, SingleOutputGenericSchema as Ra, MediaMetadata as Ri, evaluateMarqueeOffset as Rn, getMediaType as Ro, BaseVideoLayerPropsSchema as Rr, SelectorShape as Rt, Renderer3D as S, Signal as Sa, GPUTextureBinding as Si, Vec2 as Sn, computed as So, Path3DSample as Sr, GlyphAnchorPoint as St, ShadowPipeline as T, SignalChannelMetaSchema as Ta, GeneratorSignalDataSchema as Ti, VolumetricFormationConfigSchema as Tn, createVirtualMedia as To, Vec3 as Tr, KineticMarqueeConfigSchema as Tt, parseOBJ as U, TensorDimensions as Ua, MediaSourceDescriptor as Ui, evaluateVolumetricFormation as Un, isEqual as Uo, Color$1 as Ur, SkewPropertiesSchema as Ut, parseFBX as V, TEXT_LAYER_DEFAULTS as Va, MediaOperationSchema as Vi, evaluateSpringProgress as Vn, hasOnlySingleSource as Vo, COMPOSITOR_DEFAULTS as Vr, SelectorUnitsSchema as Vt, shaderStore as W, TensorFormat as Wa, MediaSourceInput as Wi, generateArcLengthLUT as Wn, isSignal as Wo, ColorStopLike as Wr, Spatial3DProperties as Wt, AdvancedTextAnimatorBuilder as X, TimelineSegmentSchema as Xa, MultiOutputGenericSchema as Xi, sampleCurveGeometry as Xn, parseCssColor as Xo, DATA_TYPE_EXTENSIONS as Xr, TextAnimatorBuilder as Xt, AdvancedTextAnimator as Y, TextSpanMark as Ya, MultiOutputGeneric as Yi, sampleAudioSpectrumScale as Yn, oklabToRgb as Yo, ControlNetConditioningOutputs as Yr, TextAnchorConfigSchema as Yt, AdvancedTextAnimatorSchema as Z, TimelineTransform as Za, NodeMetadata as Zi, samplePathChainGeometry as Zn, parseCssGradient as Zo, DEFAULT_DURATION_MS as Zr, TextCursorConfig as Zt, Model3DData as _, ProgrammaticSignal as _a, FileAssetSchema as _i, TypewriterAnimatorSchema as _n, WritableSignal as _o, MAX_LIGHTS as _r, ExpressionSelectorSchema as _t, AudioMeshDeformPipeline as a, NodeVisualConfig as aa, DeflickerOptions as ai, TextPathSourceSchema as an, VideoLayerType as ao, ENVIRONMENT_PRESETS as ar, resolveParam as as, AudioSpectrumTypography as at, RenderContextValue as b, Rgba as ba, FrameContext as bi, VariableFontAxes as bn, checkNodeResultCache as bo, Path3D as br, GlyphAnchorGrouping as bt, BlendMode as c, NormalizedLandmarkList as ca, Effect as ci, TextScrambleConfig as cn, VideoStylePropsSchema as co, FrustumPlane as cr, sampleColorStops as cs, ChromaticGlitchConfigSchema as ct, EffectPipeline as d, Output$1 as da, ExportResult as di, TextSelectorSchema as dn, VirtualMediaData as do, HelixOptions as dr, signalBuilder as ds, DynamicStrokeProperties as dt, NodeProcessorParams as ea, DataForType as ei, TextCursorStyleSchema as en, TransitionSchema as eo, Camera3D as er, registerSignalDependency as es, AnchorPreset as et, GlassPipeline as f, OutputItem as fa, ExportResultSchema as fi, TextSignalSelector as fn, VirtualMediaDataSchema as fo, LIGHT_UNIFORM_SIZE_BYTES as fr, sineSignal as fs, DynamicStrokePropertiesSchema as ft, Mesh3DData as g, PoseSkeletonOptions as ga, FileAsset as gi, TypewriterAnimator as gn, VisionVariant as go, LightsUniformData as gr, updateClockSignals as gs, ExpressionSelector as gt, Material3D as h, ParsedGradientStop as ha, FaceLandmarksOptions as hi, TextWigglySelectorSchema as hn, VisionTask as ho, LightKind as hr, timeSignal as hs, ExpressionEvaluationContext as ht, AudioLatentTrackCache as i, NodeValidationFn as ia, DataTypes as ii, TextPathSource as in, VideoAnimationSchema as io, CirclePathOptions as ir, resolveNumber as is, ArcLengthLUTEntry as it, SphereGeometryOptions as j, SignalMathData as ja, JsonArray as ji, computeRangeSelectorWeight as jn, frameArraySignal as jo, AnyOutputUnion as jr, ParticleDissolveConfigSchema as jt, SlugFontCache as k, SignalGateData as ka, HandleType as ki, computeAnchorPivotOffset as kn, findSourceAsset as ko, AnimationType as kr, LongShadowConfigSchema as kt, Bone3D as l, ObjectBoundingBox as la, EffectConfig as li, TextScrambleConfigSchema as ln, VideoTextPropsSchema as lo, FrustumPlanes as lr, serializeSignalData as ls, CubicBezierSegment as lt, MasterAudioEntry as m, ParsedGradient as ma, ExtendedLayerSchema as mi, TextWigglySelector as mn, VisionNodeSpec as mo, Light3DOptions as mr, takeRenderDiagnostics as ms, EnhancedTextNodeSchema as mt, AudioLatentData as n, NodeResultSchema as na, DataTypeEnum as ni, TextPathOptions as nn, TransitionTypeSchema as no, CameraShakeOptions as nr, resolveBoolean as ns, AnimatableGlyphProps as nt, AudioSignalComputeConfig as o, NodeVisualConfigSchema as oa, DepthNormalsOptions as oi, TextRangeSelector as on, VideoLayerTypeSchema as oo, Environment3DFog as or, resolveString as os, AudioSpectrumTypographySchema as ot, LoadModelOptions as p, OutputItemSchema as pa, ExtendedLayer as pi, TextSignalSelectorSchema as pn, VisionConfig as po, Light3D as pr, stampResult as ps, EnhancedTextNode as pt, AETextAnimator as q, TextOperationSchema as qa, ModerationError as qi, getShuffledOrder as qn, mixColors as qo, ConfigSchemaRegistry as qr, SpringPhysicsSchema as qt, AudioLatentEngine as r, NodeRunFunction as ra, DataTypeVal as ri, TextPathOptionsSchema as rn, VideoAnimation as ro, CatmullRomOptions as rr, resolveMediaMimeType as rs, AnimatableGlyphPropsSchema as rt, AudioSignalComputePipeline as s, NormalRelightingOptions as sa, DetectedObject as si, TextRangeSelectorSchema as sn, VideoSpatialPropsSchema as so, Environment3DOptions as sr, rgbToOklab as ss, ChromaticGlitchConfig as st, AnimationClip3D as t, NodeResult as ta, DataType as ti, TextPathBuilder as tn, TransitionType as to, Camera3DPose as tr, reportRenderDiagnostic as ts, AnchorPresetSchema as tt, CylinderGeometryOptions as u, OpticalFlowOptions as ua, EffectConfigValue as ui, TextSelector as un, VideoTimingPropsSchema as uo, GPULightData as ur, signal as us, CubicBezierSegmentSchema as ut, MotionBlurPipeline as v, ProgrammaticSignalOptions as va, FileData as vi, TypingCadence as vn, XYPosition as vo, Mat4 as vr, ExtendedGlyphProperties as vt, SSAOPipeline as w, SignalChannelMeta as wa, GeneratorSignalData as wi, VolumetricFormationConfig as wn, createOutputItemSchema as wo, ShadowUniformInfo as wr, KineticMarqueeConfig as wt, Renderer2D as x, SegmentationOptions as xa, FrameSignal as xi, VariableFontAxesSchema as xn, computeVideoCropRenderProps as xo, Path3DPoint as xr, GlyphAnchorGroupingSchema as xt, NodeAnimationTrack3D as y, RenderDiagnostic as ya, FileDataSchema as yi, TypingCadenceSchema as yn, appendOperation as yo, Matrix4Math as yr, ExtendedGlyphPropertiesSchema as yt, loadOBJ as z, SourceOperationSchema as za, MediaMetadataSchema as zi, evaluateSelectorCombination as zn, getRenderFingerprint as zo, CAPTION_LAYER_DEFAULTS as zr, SelectorShapeSchema as zt };
|
|
5898
|
-
//# sourceMappingURL=index-
|
|
5898
|
+
//# sourceMappingURL=index-Cpkzy5XR.d.mts.map
|