framefields 2.9.2 → 2.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +14 -0
- package/README.md +1 -5
- package/dist/audio/index.d.mts +5 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-BfQg37MW.mjs → audio-B6RmYOPe.mjs} +4 -4
- package/dist/{audio-BfQg37MW.mjs.map → audio-B6RmYOPe.mjs.map} +1 -1
- package/dist/{audio-a0MFkK6J.mjs → audio-BlDbnteH.mjs} +1 -1
- package/dist/{audio-a0MFkK6J.mjs.map → audio-BlDbnteH.mjs.map} +1 -1
- package/dist/{audio-Ccpl9mjV.d.mts → audio-D6tBMbHh.d.mts} +4 -3
- package/dist/audio-D6tBMbHh.d.mts.map +1 -0
- package/dist/{check-result-C3jlgV2i.mjs → check-result-Bj7g62ka.mjs} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs.map → check-result-Bj7g62ka.mjs.map} +1 -1
- package/dist/cli/check-worker.mjs +50 -50
- package/dist/cli.mjs +1 -1
- package/dist/components/index.d.mts +14 -11
- package/dist/components/index.mjs +47 -47
- package/dist/dist-BlulwErl.mjs +3 -0
- package/dist/{dist-BlIrsfcn.mjs → dist-ByxHoMQI.mjs} +1 -1
- package/dist/{dist-BlIrsfcn.mjs.map → dist-ByxHoMQI.mjs.map} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs → dist-Cn8bDsQF.mjs} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs.map → dist-Cn8bDsQF.mjs.map} +1 -1
- package/dist/{dist-C1cCW7Bt.mjs → dist-D12-a3-x.mjs} +3 -3
- package/dist/{dist-C1cCW7Bt.mjs.map → dist-D12-a3-x.mjs.map} +1 -1
- package/dist/{dist-C8Xq3zgx.mjs → dist-DEUU6sNe.mjs} +4 -4
- package/dist/{dist-C8Xq3zgx.mjs.map → dist-DEUU6sNe.mjs.map} +1 -1
- package/dist/{dist-DVMepKaO.mjs → dist-DL1GwJvs.mjs} +2 -2
- package/dist/{dist-DVMepKaO.mjs.map → dist-DL1GwJvs.mjs.map} +1 -1
- package/dist/dist-Dq5TkNDI.mjs +1434 -0
- package/dist/dist-Dq5TkNDI.mjs.map +1 -0
- package/dist/effects/index.d.mts +6 -4
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-CemgqEPv.mjs → effects-CViUoQSV.mjs} +3 -3
- package/dist/{effects-CemgqEPv.mjs.map → effects-CViUoQSV.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-BW0pPcvJ.mjs → fonts-B0U2KO5I.mjs} +2 -2
- package/dist/{fonts-BW0pPcvJ.mjs.map → fonts-B0U2KO5I.mjs.map} +1 -1
- package/dist/{gpu-CMaa63nz.mjs → gpu-zFNrvhV9.mjs} +2 -2
- package/dist/{gpu-CMaa63nz.mjs.map → gpu-zFNrvhV9.mjs.map} +1 -1
- package/dist/index-9_4X2ro1.d.mts +2402 -0
- package/dist/index-9_4X2ro1.d.mts.map +1 -0
- package/dist/{index-Bnh42ouE.d.mts → index-B9Lm1x8i.d.mts} +9 -8
- package/dist/index-B9Lm1x8i.d.mts.map +1 -0
- package/dist/{index-BfDFmIBE.d.mts → index-BuYtrhzL.d.mts} +1 -1
- package/dist/{index-BfDFmIBE.d.mts.map → index-BuYtrhzL.d.mts.map} +1 -1
- package/dist/{index-D5UDyVMb.d.mts → index-Bzo1uj8h.d.mts} +4 -2401
- package/dist/index-Bzo1uj8h.d.mts.map +1 -0
- package/dist/{index-CQ-bbZk3.d.mts → index-C6GcuYVA.d.mts} +6 -1164
- package/dist/index-C6GcuYVA.d.mts.map +1 -0
- package/dist/{index-BIjMAW1h.d.mts → index-CgGM31I9.d.mts} +2 -2
- package/dist/{index-BIjMAW1h.d.mts.map → index-CgGM31I9.d.mts.map} +1 -1
- package/dist/index-DBhswLMO.d.mts +330 -0
- package/dist/index-DBhswLMO.d.mts.map +1 -0
- package/dist/{index-CJL0JAU8.d.mts → index-V0ZQ4JN6.d.mts} +2 -2
- package/dist/{index-CJL0JAU8.d.mts.map → index-V0ZQ4JN6.d.mts.map} +1 -1
- package/dist/{index-7Z9_a_iB.d.mts → index-f4IF1vRH.d.mts} +3 -3
- package/dist/{index-7Z9_a_iB.d.mts.map → index-f4IF1vRH.d.mts.map} +1 -1
- package/dist/index-svAgwTY_.d.mts +1163 -0
- package/dist/index-svAgwTY_.d.mts.map +1 -0
- package/dist/{index-CFoAmh7q.d.mts → index-w28KUM9A.d.mts} +3 -3
- package/dist/{index-CFoAmh7q.d.mts.map → index-w28KUM9A.d.mts.map} +1 -1
- package/dist/index.d.mts +15 -12
- package/dist/index.mjs +58 -57
- package/dist/preview/index.d.mts +4 -3
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-DvP8AZuV.mjs → preview-ZKJ_zTmd.mjs} +3 -3
- package/dist/{preview-DvP8AZuV.mjs.map → preview-ZKJ_zTmd.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-KXLXP66K.mjs → chunk-Q62GPWGD.mjs} +23 -23
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/{program-CKpKkllV.mjs → program-xjIwjKb6.mjs} +4 -4
- package/dist/{program-CKpKkllV.mjs.map → program-xjIwjKb6.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +3 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/renderer-129U3pc9.mjs +5 -0
- package/dist/renderer-2phFTFxQ.mjs +5 -0
- package/dist/{renderer-Bfk6A7UO.mjs → renderer-5qJPGvVL.mjs} +5 -5
- package/dist/{renderer-Bfk6A7UO.mjs.map → renderer-5qJPGvVL.mjs.map} +1 -1
- package/dist/renderer-9muKpDeE.mjs +5 -0
- package/dist/{renderer-B522Dkdk.mjs → renderer-AUK_ZS3p.mjs} +4 -4
- package/dist/{renderer-B522Dkdk.mjs.map → renderer-AUK_ZS3p.mjs.map} +1 -1
- package/dist/{renderer-DKgPVOLL.d.mts → renderer-B-inTgyb.d.mts} +2 -2
- package/dist/{renderer-DKgPVOLL.d.mts.map → renderer-B-inTgyb.d.mts.map} +1 -1
- package/dist/{renderer-BF0hx_iJ.mjs → renderer-B3IRvukr.mjs} +5 -5
- package/dist/{renderer-BF0hx_iJ.mjs.map → renderer-B3IRvukr.mjs.map} +1 -1
- package/dist/renderer-B5Dhv6j9.mjs +5 -0
- package/dist/{renderer-DO-KbpYZ.mjs → renderer-B6TjJi1g.mjs} +5 -5
- package/dist/{renderer-DO-KbpYZ.mjs.map → renderer-B6TjJi1g.mjs.map} +1 -1
- package/dist/{renderer-D61B9bXF.mjs → renderer-B78W9uad.mjs} +4 -4
- package/dist/{renderer-D61B9bXF.mjs.map → renderer-B78W9uad.mjs.map} +1 -1
- package/dist/{renderer-BPWDsufX.mjs → renderer-B7kOF_Az.mjs} +3 -3
- package/dist/{renderer-BPWDsufX.mjs.map → renderer-B7kOF_Az.mjs.map} +1 -1
- package/dist/renderer-BBUgCS3C.mjs +5 -0
- package/dist/{renderer-C7eFJf0_.mjs → renderer-BG6bkKtY.mjs} +5 -5
- package/dist/{renderer-C7eFJf0_.mjs.map → renderer-BG6bkKtY.mjs.map} +1 -1
- package/dist/{renderer-B39I6CQw.mjs → renderer-BJKzZwyn.mjs} +4 -4
- package/dist/{renderer-B39I6CQw.mjs.map → renderer-BJKzZwyn.mjs.map} +1 -1
- package/dist/{renderer-DqvoMLca.mjs → renderer-BJQt0RiZ.mjs} +5 -5
- package/dist/{renderer-DqvoMLca.mjs.map → renderer-BJQt0RiZ.mjs.map} +1 -1
- package/dist/renderer-BKXM28Mx.mjs +5 -0
- package/dist/renderer-BKqm6xdf.mjs +5 -0
- package/dist/{renderer-DiY70S8S.mjs → renderer-BMP_lYMk.mjs} +4 -4
- package/dist/{renderer-DiY70S8S.mjs.map → renderer-BMP_lYMk.mjs.map} +1 -1
- package/dist/renderer-BMfMMf0R.mjs +5 -0
- package/dist/{renderer-DkRSZg5g.mjs → renderer-BNbMi9CI.mjs} +5 -5
- package/dist/{renderer-DkRSZg5g.mjs.map → renderer-BNbMi9CI.mjs.map} +1 -1
- package/dist/{renderer-D7Al3_-5.mjs → renderer-BPYIqtNg.mjs} +5 -5
- package/dist/{renderer-D7Al3_-5.mjs.map → renderer-BPYIqtNg.mjs.map} +1 -1
- package/dist/renderer-BPsjEnnl.mjs +5 -0
- package/dist/{renderer-DDEkFbVI.mjs → renderer-BQOeeXTr.mjs} +5 -5
- package/dist/{renderer-DDEkFbVI.mjs.map → renderer-BQOeeXTr.mjs.map} +1 -1
- package/dist/{renderer-GBmWjBvy.mjs → renderer-BRWjLiHX.mjs} +3 -3
- package/dist/{renderer-GBmWjBvy.mjs.map → renderer-BRWjLiHX.mjs.map} +1 -1
- package/dist/{renderer-_iMAO698.mjs → renderer-BVql26Ay.mjs} +2 -2
- package/dist/{renderer-_iMAO698.mjs.map → renderer-BVql26Ay.mjs.map} +1 -1
- package/dist/{renderer-CHr7MiYW.mjs → renderer-BWMzjSgf.mjs} +5 -5
- package/dist/{renderer-CHr7MiYW.mjs.map → renderer-BWMzjSgf.mjs.map} +1 -1
- package/dist/{renderer-pHWEHDnM.mjs → renderer-BYqrtBvd.mjs} +5 -5
- package/dist/{renderer-pHWEHDnM.mjs.map → renderer-BYqrtBvd.mjs.map} +1 -1
- package/dist/{renderer-CwFqqpWY.mjs → renderer-BZmmekE8.mjs} +4 -4
- package/dist/{renderer-CwFqqpWY.mjs.map → renderer-BZmmekE8.mjs.map} +1 -1
- package/dist/{renderer-D47AEJE_.mjs → renderer-BcO7LUla.mjs} +3 -3
- package/dist/{renderer-D47AEJE_.mjs.map → renderer-BcO7LUla.mjs.map} +1 -1
- package/dist/{renderer-BlvGcyAN.mjs → renderer-BdbI_u9w.mjs} +3 -3
- package/dist/{renderer-BlvGcyAN.mjs.map → renderer-BdbI_u9w.mjs.map} +1 -1
- package/dist/{renderer-DPAD6fL1.mjs → renderer-Be5hfwSd.mjs} +74 -74
- package/dist/{renderer-DPAD6fL1.mjs.map → renderer-Be5hfwSd.mjs.map} +1 -1
- package/dist/{renderer-BAYTI6jj.mjs → renderer-BfbSvElt.mjs} +4 -4
- package/dist/{renderer-BAYTI6jj.mjs.map → renderer-BfbSvElt.mjs.map} +1 -1
- package/dist/{renderer-BpIF1QIE.mjs → renderer-BgDLCCuq.mjs} +5 -5
- package/dist/{renderer-BpIF1QIE.mjs.map → renderer-BgDLCCuq.mjs.map} +1 -1
- package/dist/renderer-Bofr6f88.mjs +6 -0
- package/dist/renderer-BqoGcujR.mjs +5 -0
- package/dist/renderer-BvuBt2aH.mjs +5 -0
- package/dist/renderer-BxTgXHu1.mjs +5 -0
- package/dist/renderer-Bz2Rrz60.mjs +5 -0
- package/dist/{renderer-g_vrrAQU.mjs → renderer-C06U4c9k.mjs} +3 -3
- package/dist/{renderer-g_vrrAQU.mjs.map → renderer-C06U4c9k.mjs.map} +1 -1
- package/dist/{renderer-D7r6onRT.mjs → renderer-C3Iev6zu.mjs} +4 -4
- package/dist/{renderer-D7r6onRT.mjs.map → renderer-C3Iev6zu.mjs.map} +1 -1
- package/dist/{renderer-CpUJBOfb.mjs → renderer-C3tVrzyT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs → renderer-C4yKI8MT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs.map → renderer-C4yKI8MT.mjs.map} +1 -1
- package/dist/{renderer-Xv6GfNUI.mjs → renderer-C6st34I6.mjs} +3 -3
- package/dist/{renderer-Xv6GfNUI.mjs.map → renderer-C6st34I6.mjs.map} +1 -1
- package/dist/{renderer-sCovEubT.mjs → renderer-C7MAqpIS.mjs} +4 -4
- package/dist/{renderer-sCovEubT.mjs.map → renderer-C7MAqpIS.mjs.map} +1 -1
- package/dist/renderer-CBjG8rjE.mjs +5 -0
- package/dist/{renderer-BAusZ6Vu.mjs → renderer-CCFHnafT.mjs} +4 -4
- package/dist/{renderer-BAusZ6Vu.mjs.map → renderer-CCFHnafT.mjs.map} +1 -1
- package/dist/{renderer-DVCJjVn7.mjs → renderer-CDVb4OfJ.mjs} +5 -5
- package/dist/{renderer-DVCJjVn7.mjs.map → renderer-CDVb4OfJ.mjs.map} +1 -1
- package/dist/{renderer-DpruWmZU.mjs → renderer-CEfVvcw-.mjs} +4 -4
- package/dist/{renderer-DpruWmZU.mjs.map → renderer-CEfVvcw-.mjs.map} +1 -1
- package/dist/{renderer-DbRZe0Re.mjs → renderer-CIB5L_C4.mjs} +5 -5
- package/dist/{renderer-DbRZe0Re.mjs.map → renderer-CIB5L_C4.mjs.map} +1 -1
- package/dist/{renderer-ktWXVYka.mjs → renderer-CPTXJs0n.mjs} +6 -6
- package/dist/{renderer-ktWXVYka.mjs.map → renderer-CPTXJs0n.mjs.map} +1 -1
- package/dist/renderer-CS2zyPyZ.mjs +5 -0
- package/dist/{renderer-CcvvoKiZ.mjs → renderer-CUBDxuxh.mjs} +5 -5
- package/dist/{renderer-CcvvoKiZ.mjs.map → renderer-CUBDxuxh.mjs.map} +1 -1
- package/dist/renderer-CWLF6cAz.mjs +1008 -0
- package/dist/renderer-CWLF6cAz.mjs.map +1 -0
- package/dist/{renderer-EaLUCobW.mjs → renderer-CXLugAe8.mjs} +4 -4
- package/dist/{renderer-EaLUCobW.mjs.map → renderer-CXLugAe8.mjs.map} +1 -1
- package/dist/renderer-CXnbl_jR.mjs +5 -0
- package/dist/{renderer-C7L8Ceqr.mjs → renderer-CYX9vKZ-.mjs} +4 -4
- package/dist/{renderer-C7L8Ceqr.mjs.map → renderer-CYX9vKZ-.mjs.map} +1 -1
- package/dist/{renderer-8QIwXh7O.mjs → renderer-C_2UDMEG.mjs} +6 -6
- package/dist/{renderer-8QIwXh7O.mjs.map → renderer-C_2UDMEG.mjs.map} +1 -1
- package/dist/renderer-CaF9vod_.mjs +5 -0
- package/dist/renderer-CbSBH3lp.mjs +5 -0
- package/dist/{renderer-B2jjxsjO.mjs → renderer-CbhnJi_8.mjs} +4 -4
- package/dist/{renderer-B2jjxsjO.mjs.map → renderer-CbhnJi_8.mjs.map} +1 -1
- package/dist/{renderer-BdyopiLC.mjs → renderer-CcJyD9Q5.mjs} +4 -4
- package/dist/{renderer-BdyopiLC.mjs.map → renderer-CcJyD9Q5.mjs.map} +1 -1
- package/dist/renderer-CdjuGRbO.mjs +5 -0
- package/dist/{renderer-DF-yvIrV.mjs → renderer-Cl8r1LJe.mjs} +4 -4
- package/dist/{renderer-DF-yvIrV.mjs.map → renderer-Cl8r1LJe.mjs.map} +1 -1
- package/dist/renderer-CoLbxC13.mjs +5 -0
- package/dist/{renderer-BgO6BA_z.mjs → renderer-CpedZNEG.mjs} +3 -3
- package/dist/{renderer-BgO6BA_z.mjs.map → renderer-CpedZNEG.mjs.map} +1 -1
- package/dist/renderer-Cr9G0dXB.mjs +5 -0
- package/dist/{renderer-bAKUeHF3.mjs → renderer-CwVbHki6.mjs} +5 -5
- package/dist/{renderer-bAKUeHF3.mjs.map → renderer-CwVbHki6.mjs.map} +1 -1
- package/dist/{renderer-DTqDy2m9.mjs → renderer-CyCtm0UV.mjs} +3 -3
- package/dist/{renderer-DTqDy2m9.mjs.map → renderer-CyCtm0UV.mjs.map} +1 -1
- package/dist/{renderer-CYC32bDW.mjs → renderer-D1VsqFf4.mjs} +5 -5
- package/dist/{renderer-CYC32bDW.mjs.map → renderer-D1VsqFf4.mjs.map} +1 -1
- package/dist/{renderer-CCycwCEB.mjs → renderer-D2TTDcgh.mjs} +3 -3
- package/dist/{renderer-CCycwCEB.mjs.map → renderer-D2TTDcgh.mjs.map} +1 -1
- package/dist/renderer-D63l6_UC.mjs +5 -0
- package/dist/renderer-DCJqnzER.mjs +5 -0
- package/dist/{renderer-cod5Ona9.mjs → renderer-DEQeONTd.mjs} +3 -3
- package/dist/renderer-DFBOR5J3.mjs +5 -0
- package/dist/renderer-DGAZSzw6.mjs +5 -0
- package/dist/{renderer-oKRF4A0M.mjs → renderer-DH7l5WFr.mjs} +4 -4
- package/dist/{renderer-oKRF4A0M.mjs.map → renderer-DH7l5WFr.mjs.map} +1 -1
- package/dist/{renderer-DNQvOrkY.mjs → renderer-DIEmK57T.mjs} +5 -5
- package/dist/{renderer-DNQvOrkY.mjs.map → renderer-DIEmK57T.mjs.map} +1 -1
- package/dist/{renderer-DEmYyaqj.mjs → renderer-DIqkhsLI.mjs} +4 -4
- package/dist/{renderer-DEmYyaqj.mjs.map → renderer-DIqkhsLI.mjs.map} +1 -1
- package/dist/{renderer-DX41niRU.mjs → renderer-DOKHd37M.mjs} +4 -4
- package/dist/{renderer-DX41niRU.mjs.map → renderer-DOKHd37M.mjs.map} +1 -1
- package/dist/renderer-DPLGk1Qk.mjs +5 -0
- package/dist/renderer-DTCUzByS.mjs +5 -0
- package/dist/{renderer-BXJXziIt.mjs → renderer-DW7hbluw.mjs} +3 -3
- package/dist/{renderer-BXJXziIt.mjs.map → renderer-DW7hbluw.mjs.map} +1 -1
- package/dist/{renderer--fkmiVjl.mjs → renderer-Dat8opUZ.mjs} +4 -4
- package/dist/{renderer--fkmiVjl.mjs.map → renderer-Dat8opUZ.mjs.map} +1 -1
- package/dist/renderer-DdGahYi1.mjs +5 -0
- package/dist/{renderer-DmkWrWAk.mjs → renderer-Dee8ksIV.mjs} +3 -3
- package/dist/{renderer-DmkWrWAk.mjs.map → renderer-Dee8ksIV.mjs.map} +1 -1
- package/dist/renderer-DhL4nNPk.mjs +5 -0
- package/dist/renderer-DkyTbiVz.mjs +3 -0
- package/dist/renderer-DnAZweRX.mjs +5 -0
- package/dist/{renderer-BX7jS14r.d.mts → renderer-DoPEPlbG.d.mts} +3 -2
- package/dist/{renderer-BX7jS14r.d.mts.map → renderer-DoPEPlbG.d.mts.map} +1 -1
- package/dist/renderer-DpisVnT2.mjs +5 -0
- package/dist/{renderer-mNSyac1V.mjs → renderer-DrWeb39d.mjs} +1 -1
- package/dist/{renderer-mNSyac1V.mjs.map → renderer-DrWeb39d.mjs.map} +1 -1
- package/dist/renderer-Ds7pAKnE.mjs +3 -0
- package/dist/{renderer-CiQhD8Gg.mjs → renderer-Dss7T71q.mjs} +5 -5
- package/dist/{renderer-CiQhD8Gg.mjs.map → renderer-Dss7T71q.mjs.map} +1 -1
- package/dist/{renderer-C41U1tK6.mjs → renderer-Du-GnKLb.mjs} +9 -9
- package/dist/{renderer-C41U1tK6.mjs.map → renderer-Du-GnKLb.mjs.map} +1 -1
- package/dist/renderer-DxZD5B54.mjs +5 -0
- package/dist/{renderer-WCZu2Rf5.mjs → renderer-ESkPj6pk.mjs} +4 -4
- package/dist/{renderer-WCZu2Rf5.mjs.map → renderer-ESkPj6pk.mjs.map} +1 -1
- package/dist/{renderer-DMvmf3T2.mjs → renderer-F1D9ZJ8I.mjs} +3 -3
- package/dist/{renderer-BlPqTEii.mjs → renderer-HnSiwSW8.mjs} +4 -4
- package/dist/{renderer-BlPqTEii.mjs.map → renderer-HnSiwSW8.mjs.map} +1 -1
- package/dist/{renderer-1r-Uq-Ae.mjs → renderer-IQ97z2rw.mjs} +3 -3
- package/dist/{renderer-1r-Uq-Ae.mjs.map → renderer-IQ97z2rw.mjs.map} +1 -1
- package/dist/{renderer-DFzI3yI_.mjs → renderer-NTCk1Srf.mjs} +3 -3
- package/dist/{renderer-DFzI3yI_.mjs.map → renderer-NTCk1Srf.mjs.map} +1 -1
- package/dist/{renderer-D8bBHrWC.mjs → renderer-OsQRvOle.mjs} +5 -5
- package/dist/{renderer-D8bBHrWC.mjs.map → renderer-OsQRvOle.mjs.map} +1 -1
- package/dist/renderer-PMHOnbnA.mjs +5 -0
- package/dist/renderer-STufNpMx.mjs +5 -0
- package/dist/renderer-SdrgfCxH.mjs +5 -0
- package/dist/{renderer-Lth37j17.mjs → renderer-US4GsamT.mjs} +3 -3
- package/dist/{renderer-zXPVLRlD.mjs → renderer-VhkubIx_.mjs} +5 -5
- package/dist/{renderer-zXPVLRlD.mjs.map → renderer-VhkubIx_.mjs.map} +1 -1
- package/dist/{renderer-DIw3UtEU.mjs → renderer-bbaMOD4I.mjs} +5 -5
- package/dist/{renderer-DIw3UtEU.mjs.map → renderer-bbaMOD4I.mjs.map} +1 -1
- package/dist/{renderer-hSCfnvaK.mjs → renderer-eT7Gp7FS.mjs} +5 -5
- package/dist/{renderer-hSCfnvaK.mjs.map → renderer-eT7Gp7FS.mjs.map} +1 -1
- package/dist/{renderer-CQvmbRQ5.mjs → renderer-g7fF2AYk.mjs} +5 -5
- package/dist/{renderer-CQvmbRQ5.mjs.map → renderer-g7fF2AYk.mjs.map} +1 -1
- package/dist/{renderer-B-ur0Ej8.mjs → renderer-mLlgfM7X.mjs} +4 -4
- package/dist/{renderer-B-ur0Ej8.mjs.map → renderer-mLlgfM7X.mjs.map} +1 -1
- package/dist/{renderer-SSBL4M1o.mjs → renderer-mQt-y49D.mjs} +5 -5
- package/dist/{renderer-SSBL4M1o.mjs.map → renderer-mQt-y49D.mjs.map} +1 -1
- package/dist/{renderer-BIGFP1cF.mjs → renderer-q4zMFfnY.mjs} +2 -2
- package/dist/{renderer-BIGFP1cF.mjs.map → renderer-q4zMFfnY.mjs.map} +1 -1
- package/dist/{renderer-DXEWbnRF.mjs → renderer-sPI7aY6c.mjs} +4 -4
- package/dist/{renderer-DXEWbnRF.mjs.map → renderer-sPI7aY6c.mjs.map} +1 -1
- package/dist/{renderer-sYSkIUfo.mjs → renderer-xDV2cCkX.mjs} +5 -5
- package/dist/{renderer-sYSkIUfo.mjs.map → renderer-xDV2cCkX.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs → renderers-CP8CFWDs-BH1gUTYa.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs.map → renderers-CP8CFWDs-BH1gUTYa.mjs.map} +1 -1
- package/dist/sam/index.d.mts +4 -0
- package/dist/sam/index.mjs +3 -0
- package/dist/signals/index.d.mts +7 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-CXwgAUp-.mjs → signals-gOd0Ui9B.mjs} +4 -4
- package/dist/{signals-CXwgAUp-.mjs.map → signals-gOd0Ui9B.mjs.map} +1 -1
- package/dist/{src-DFEqficI.mjs → src-BU1VOWSk.mjs} +12 -18
- package/dist/src-BU1VOWSk.mjs.map +1 -0
- package/dist/{renderer-B2P1vgb7.mjs → src-Bnr8DUC--DzkRGA62.mjs} +8 -1008
- package/dist/src-Bnr8DUC--DzkRGA62.mjs.map +1 -0
- package/package.json +69 -69
- package/dist/audio-Ccpl9mjV.d.mts.map +0 -1
- package/dist/index-Bnh42ouE.d.mts.map +0 -1
- package/dist/index-CQ-bbZk3.d.mts.map +0 -1
- package/dist/index-D5UDyVMb.d.mts.map +0 -1
- package/dist/renderer--Ac-dg4A.mjs +0 -5
- package/dist/renderer--N7TMqzU.mjs +0 -5
- package/dist/renderer-2ecmdOae.mjs +0 -5
- package/dist/renderer-B2P1vgb7.mjs.map +0 -1
- package/dist/renderer-B5RJp5g-.mjs +0 -5
- package/dist/renderer-B7xyT1Vb.mjs +0 -5
- package/dist/renderer-BBeArN_x.mjs +0 -5
- package/dist/renderer-BCAZDu-r.mjs +0 -5
- package/dist/renderer-BJnhik7Y.mjs +0 -5
- package/dist/renderer-BxRW8MZO.mjs +0 -5
- package/dist/renderer-C-lfsEAN.mjs +0 -5
- package/dist/renderer-C6nOFN4-.mjs +0 -5
- package/dist/renderer-C84TSQmS.mjs +0 -5
- package/dist/renderer-C8_6YofT.mjs +0 -5
- package/dist/renderer-COb3tOPG.mjs +0 -5
- package/dist/renderer-CSCIzaLy.mjs +0 -5
- package/dist/renderer-CmI4c8MS.mjs +0 -5
- package/dist/renderer-CqVltdX9.mjs +0 -5
- package/dist/renderer-D-FpMzLY.mjs +0 -5
- package/dist/renderer-D-Oyn9mG.mjs +0 -5
- package/dist/renderer-D2QrkA8_.mjs +0 -5
- package/dist/renderer-D5bjOx83.mjs +0 -3
- package/dist/renderer-D64r4iN-.mjs +0 -5
- package/dist/renderer-DCq6YkgP.mjs +0 -5
- package/dist/renderer-DDHG3GdR.mjs +0 -5
- package/dist/renderer-DMdNfcud.mjs +0 -6
- package/dist/renderer-DZQXZ4lK.mjs +0 -5
- package/dist/renderer-DczJJLA1.mjs +0 -5
- package/dist/renderer-DfqJj9oe.mjs +0 -5
- package/dist/renderer-DgO9ihVJ.mjs +0 -5
- package/dist/renderer-DhgnQZYb.mjs +0 -5
- package/dist/renderer-DjxKjHMf.mjs +0 -5
- package/dist/renderer-DnRDW2Oz.mjs +0 -3
- package/dist/renderer-DqLA5cdR.mjs +0 -5
- package/dist/renderer-Dudp6ZlH.mjs +0 -5
- package/dist/renderer-_jC5KIT1.mjs +0 -5
- package/dist/renderer-cTgAuVmJ.mjs +0 -5
- package/dist/renderer-nVKDvDLO.mjs +0 -5
- package/dist/renderer-pZ6_pUo1.mjs +0 -5
- package/dist/src-DFEqficI.mjs.map +0 -1
- /package/dist/{chunk-BcJoO4Nm.mjs → chunk-D8S17ehY.mjs} +0 -0
- /package/dist/{renderer-COqFNSfV.mjs → renderer-Cputd36d.mjs} +0 -0
|
@@ -0,0 +1,2402 @@
|
|
|
1
|
+
import z$1, { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region ../core/dist/index.d.mts
|
|
4
|
+
//#region src/signals/programmatic.d.ts
|
|
5
|
+
interface ProgrammaticSignalOptions {
|
|
6
|
+
readonly fps?: number;
|
|
7
|
+
readonly durationFrames?: number;
|
|
8
|
+
readonly gpuBinding?: GPUTextureBinding;
|
|
9
|
+
readonly nodeId?: string;
|
|
10
|
+
readonly label?: string;
|
|
11
|
+
}
|
|
12
|
+
interface GateSignalOptions {
|
|
13
|
+
readonly mode?: "gate" | "trigger" | "toggle";
|
|
14
|
+
readonly debounceFrames?: number;
|
|
15
|
+
readonly holdFrames?: number;
|
|
16
|
+
readonly invert?: boolean;
|
|
17
|
+
}
|
|
18
|
+
type EvaluatorFn = (ctx: FrameContext) => number;
|
|
19
|
+
declare class ProgrammaticSignal implements FrameSignal<number> {
|
|
20
|
+
readonly gpuBinding?: GPUTextureBinding;
|
|
21
|
+
readonly label?: string;
|
|
22
|
+
private _evaluator;
|
|
23
|
+
private _samples?;
|
|
24
|
+
private _fps;
|
|
25
|
+
private _durationFrames?;
|
|
26
|
+
private _cachedFrame;
|
|
27
|
+
private _cachedContext?;
|
|
28
|
+
private _cachedValue;
|
|
29
|
+
private _seekedFrame;
|
|
30
|
+
private _subscribers;
|
|
31
|
+
private _children;
|
|
32
|
+
get fps(): number;
|
|
33
|
+
constructor(source: number | ArrayLike<number> | EvaluatorFn | Signal<number>, options?: ProgrammaticSignalOptions);
|
|
34
|
+
get value(): number;
|
|
35
|
+
get(ctx?: FrameContext): number;
|
|
36
|
+
peek(): number;
|
|
37
|
+
registerChild(child: ProgrammaticSignal): void;
|
|
38
|
+
private _derive;
|
|
39
|
+
seekFrame(frame: number): void;
|
|
40
|
+
invalidate(): void;
|
|
41
|
+
valueOf(): number;
|
|
42
|
+
[Symbol.toPrimitive](hint: string): unknown;
|
|
43
|
+
smooth(windowFrames: number): ProgrammaticSignal;
|
|
44
|
+
remap(inMin: number, inMax: number, outMin: number, outMax: number, clamp?: boolean): ProgrammaticSignal;
|
|
45
|
+
clamp(min: number, max: number): ProgrammaticSignal;
|
|
46
|
+
gate(threshold: number, options?: GateSignalOptions): ProgrammaticSignal;
|
|
47
|
+
velocity(dt?: number): ProgrammaticSignal;
|
|
48
|
+
delay(frames: number): ProgrammaticSignal;
|
|
49
|
+
spring(stiffness?: number, damping?: number): ProgrammaticSignal;
|
|
50
|
+
add(other: number | Signal<number>): ProgrammaticSignal;
|
|
51
|
+
subtract(other: number | Signal<number>): ProgrammaticSignal;
|
|
52
|
+
multiply(factor: number | Signal<number>): ProgrammaticSignal;
|
|
53
|
+
invert(): ProgrammaticSignal;
|
|
54
|
+
pow(exponent: number): ProgrammaticSignal;
|
|
55
|
+
map(fn: (val: number, ctx: FrameContext) => number): ProgrammaticSignal;
|
|
56
|
+
toFrameArray(totalFrames: number, fps?: number): Float32Array;
|
|
57
|
+
}
|
|
58
|
+
declare function programmaticSignal(source: number | ArrayLike<number> | EvaluatorFn | Signal<number>, options?: ProgrammaticSignalOptions): ProgrammaticSignal;
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/signals/resolve.d.ts
|
|
61
|
+
/**
|
|
62
|
+
* Extracts a numeric value from a primitive, Signal, or wrapper object.
|
|
63
|
+
* Returns the fallback if undefined, null, NaN, or non-numeric.
|
|
64
|
+
*/
|
|
65
|
+
declare function resolveNumber(val: unknown, fallback: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Extracts a string value from a primitive, Signal, or wrapper object.
|
|
68
|
+
* Returns the fallback if undefined, null, or non-string.
|
|
69
|
+
*/
|
|
70
|
+
declare function resolveString(val: unknown, fallback: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Extracts a boolean value from a primitive, Signal, or wrapper object.
|
|
73
|
+
* Returns the fallback if undefined, null, or non-boolean.
|
|
74
|
+
*/
|
|
75
|
+
declare function resolveBoolean(val: unknown, fallback: boolean): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Generic parameter resolver matching the fallback value's type.
|
|
78
|
+
*/
|
|
79
|
+
declare function resolveParam<T>(val: unknown, fallback: T): T;
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region src/signals/index.d.ts
|
|
82
|
+
interface FrameContext {
|
|
83
|
+
frame: number;
|
|
84
|
+
fps: number;
|
|
85
|
+
time: number;
|
|
86
|
+
duration: number;
|
|
87
|
+
durationMs: number;
|
|
88
|
+
progress: number;
|
|
89
|
+
deltaTime: number;
|
|
90
|
+
}
|
|
91
|
+
interface GPUTextureBinding {
|
|
92
|
+
nodeId: string;
|
|
93
|
+
channel?: "primary" | "beat" | "bass" | "energy";
|
|
94
|
+
textureView?: unknown;
|
|
95
|
+
texture?: unknown;
|
|
96
|
+
buffer?: unknown;
|
|
97
|
+
stats?: {
|
|
98
|
+
min: number;
|
|
99
|
+
max: number;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
interface Signal<T> {
|
|
103
|
+
readonly value: T;
|
|
104
|
+
get(ctx?: FrameContext): T;
|
|
105
|
+
peek(): T;
|
|
106
|
+
}
|
|
107
|
+
interface WritableSignal<T> extends Signal<T> {
|
|
108
|
+
value: T;
|
|
109
|
+
set(value: T): void;
|
|
110
|
+
update(fn: (prev: T) => T): void;
|
|
111
|
+
}
|
|
112
|
+
interface FrameSignal<T = number> extends Signal<T> {
|
|
113
|
+
readonly gpuBinding?: GPUTextureBinding;
|
|
114
|
+
readonly fps?: number;
|
|
115
|
+
seekFrame?(frame: number): void;
|
|
116
|
+
}
|
|
117
|
+
type SignalContext = FrameContext;
|
|
118
|
+
type SignalValue<T = unknown> = T | Signal<T> | WritableSignal<T> | FrameSignal<T extends number ? number : T>;
|
|
119
|
+
declare function registerSignalDependency(subscribers: Set<ComputedImpl<unknown>>): void;
|
|
120
|
+
declare function isSignal(val: unknown): val is Signal<unknown>;
|
|
121
|
+
declare class ComputedImpl<T> implements Signal<T> {
|
|
122
|
+
private _fn;
|
|
123
|
+
private _value;
|
|
124
|
+
private _dirty;
|
|
125
|
+
private _evaluating;
|
|
126
|
+
deps: Set<Set<ComputedImpl<unknown>>>;
|
|
127
|
+
private _subscribers;
|
|
128
|
+
constructor(fn: () => T);
|
|
129
|
+
get value(): T;
|
|
130
|
+
get(): T;
|
|
131
|
+
peek(): T;
|
|
132
|
+
markDirty(): void;
|
|
133
|
+
private compute;
|
|
134
|
+
valueOf(): T;
|
|
135
|
+
[Symbol.toPrimitive](hint: string): unknown;
|
|
136
|
+
}
|
|
137
|
+
declare function signal<T>(initialValue: T): WritableSignal<T>;
|
|
138
|
+
/**
|
|
139
|
+
* Whether `val` is a plain value signal (from `signal()`): it reads the same
|
|
140
|
+
* whatever frame context it is given, so one read stands for every frame.
|
|
141
|
+
*/
|
|
142
|
+
declare function isValueSignal(val: unknown): val is WritableSignal<unknown>;
|
|
143
|
+
declare function computed<T>(fn: () => T): Signal<T>;
|
|
144
|
+
declare function frameArraySignal(samples: ArrayLike<number>, fps?: number, gpuBinding?: GPUTextureBinding): FrameSignal<number>;
|
|
145
|
+
declare const frameSignal: WritableSignal<number>;
|
|
146
|
+
declare const timeSignal: WritableSignal<number>;
|
|
147
|
+
declare const progressSignal: WritableSignal<number>;
|
|
148
|
+
declare function updateClockSignals(frame: number, fps?: number, durationMs?: number): void;
|
|
149
|
+
interface SignalBuilderConfig {
|
|
150
|
+
type?: "sine" | "triangle" | "sawtooth" | "square" | "bounce" | "custom";
|
|
151
|
+
frequency?: number;
|
|
152
|
+
amplitude?: number;
|
|
153
|
+
offset?: number;
|
|
154
|
+
phase?: number;
|
|
155
|
+
wgsl?: string;
|
|
156
|
+
gpuBinding?: GPUTextureBinding;
|
|
157
|
+
fn?: (ctx: FrameContext) => number;
|
|
158
|
+
}
|
|
159
|
+
declare function signalBuilder(config: SignalBuilderConfig): FrameSignal<number>;
|
|
160
|
+
interface SineSignalOptions {
|
|
161
|
+
min?: number;
|
|
162
|
+
max?: number;
|
|
163
|
+
period?: number;
|
|
164
|
+
frequency?: number;
|
|
165
|
+
amplitude?: number;
|
|
166
|
+
offset?: number;
|
|
167
|
+
phase?: number;
|
|
168
|
+
}
|
|
169
|
+
declare function sineSignal(options?: SineSignalOptions): FrameSignal<number>;
|
|
170
|
+
declare function cosineSignal(options?: SineSignalOptions): FrameSignal<number>;
|
|
171
|
+
declare const Signal: {
|
|
172
|
+
state: typeof signal;
|
|
173
|
+
computed: typeof computed;
|
|
174
|
+
builder: typeof signalBuilder;
|
|
175
|
+
fromArray: typeof frameArraySignal;
|
|
176
|
+
programmatic: typeof programmaticSignal;
|
|
177
|
+
frame: WritableSignal<number>;
|
|
178
|
+
time: WritableSignal<number>;
|
|
179
|
+
progress: WritableSignal<number>;
|
|
180
|
+
sine: typeof sineSignal;
|
|
181
|
+
cosine: typeof cosineSignal;
|
|
182
|
+
};
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/types/base.d.ts
|
|
185
|
+
declare const DataTypeVal: {
|
|
186
|
+
readonly Text: "Text";
|
|
187
|
+
readonly Number: "Number";
|
|
188
|
+
readonly Boolean: "Boolean";
|
|
189
|
+
readonly Image: "Image";
|
|
190
|
+
readonly Video: "Video";
|
|
191
|
+
readonly Audio: "Audio";
|
|
192
|
+
readonly SVG: "SVG";
|
|
193
|
+
readonly Caption: "Caption";
|
|
194
|
+
readonly Lottie: "Lottie";
|
|
195
|
+
readonly ThreeD: "ThreeD";
|
|
196
|
+
readonly GIF: "GIF";
|
|
197
|
+
readonly Signal: "Signal";
|
|
198
|
+
readonly LUT: "LUT";
|
|
199
|
+
};
|
|
200
|
+
declare const DataType: {
|
|
201
|
+
readonly Text: "Text";
|
|
202
|
+
readonly Number: "Number";
|
|
203
|
+
readonly Boolean: "Boolean";
|
|
204
|
+
readonly Image: "Image";
|
|
205
|
+
readonly Video: "Video";
|
|
206
|
+
readonly Audio: "Audio";
|
|
207
|
+
readonly SVG: "SVG";
|
|
208
|
+
readonly Caption: "Caption";
|
|
209
|
+
readonly Lottie: "Lottie";
|
|
210
|
+
readonly ThreeD: "ThreeD";
|
|
211
|
+
readonly GIF: "GIF";
|
|
212
|
+
readonly Signal: "Signal";
|
|
213
|
+
readonly LUT: "LUT";
|
|
214
|
+
};
|
|
215
|
+
type DataType = (typeof DataTypeVal)[keyof typeof DataTypeVal];
|
|
216
|
+
declare const DataTypes: [DataType, ...DataType[]];
|
|
217
|
+
type DataTypeEnum = DataType;
|
|
218
|
+
declare const HandleTypeVal: {
|
|
219
|
+
readonly Input: "Input";
|
|
220
|
+
readonly Output: "Output";
|
|
221
|
+
};
|
|
222
|
+
type HandleType = (typeof HandleTypeVal)[keyof typeof HandleTypeVal];
|
|
223
|
+
type JsonValue = string | number | boolean | null | JsonObject | JsonArray;
|
|
224
|
+
interface JsonObject {
|
|
225
|
+
[key: string]: JsonValue | undefined;
|
|
226
|
+
}
|
|
227
|
+
interface JsonArray extends Array<JsonValue> {}
|
|
228
|
+
declare const JsonValueSchema: z$1.ZodType<JsonValue>;
|
|
229
|
+
/**
|
|
230
|
+
* Zod schema for the FileAsset model
|
|
231
|
+
* Matches the Prisma schema definitions for types and nullability.
|
|
232
|
+
*/
|
|
233
|
+
declare const FileAssetSchema: z$1.ZodObject<{
|
|
234
|
+
id: z$1.ZodCUID2;
|
|
235
|
+
name: z$1.ZodString;
|
|
236
|
+
createdAt: z$1.z.ZodCoercedDate<unknown>;
|
|
237
|
+
updatedAt: z$1.z.ZodCoercedDate<unknown>;
|
|
238
|
+
userId: z$1.ZodNullable<z$1.ZodCUID2>;
|
|
239
|
+
width: z$1.ZodNullable<z$1.ZodNumber>;
|
|
240
|
+
height: z$1.ZodNullable<z$1.ZodNumber>;
|
|
241
|
+
bucket: z$1.ZodString;
|
|
242
|
+
size: z$1.ZodNumber;
|
|
243
|
+
mimeType: z$1.ZodString;
|
|
244
|
+
key: z$1.ZodString;
|
|
245
|
+
isUploaded: z$1.ZodDefault<z$1.ZodBoolean>;
|
|
246
|
+
duration: z$1.ZodNullable<z$1.ZodNumber>;
|
|
247
|
+
sampleRate: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
248
|
+
channels: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
249
|
+
bitDepth: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
250
|
+
audioCodec: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
|
|
251
|
+
audioBitrate: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
252
|
+
fps: z$1.ZodNullable<z$1.ZodNumber>;
|
|
253
|
+
fingerprint: z$1.ZodNullable<z$1.ZodString>;
|
|
254
|
+
}, z$1.z.core.$strip>;
|
|
255
|
+
type FileAsset = z$1.infer<typeof FileAssetSchema>;
|
|
256
|
+
interface XYPosition {
|
|
257
|
+
x: number;
|
|
258
|
+
y: number;
|
|
259
|
+
}
|
|
260
|
+
declare const NodeVisualConfigSchema: z$1.ZodObject<{
|
|
261
|
+
position: z$1.ZodOptional<z$1.ZodObject<{
|
|
262
|
+
x: z$1.ZodNumber;
|
|
263
|
+
y: z$1.ZodNumber;
|
|
264
|
+
}, z$1.z.core.$strip>>;
|
|
265
|
+
width: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
266
|
+
height: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
|
|
267
|
+
locked: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodBoolean>>;
|
|
268
|
+
collapsed: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodBoolean>>;
|
|
269
|
+
}, z$1.z.core.$loose>;
|
|
270
|
+
type NodeVisualConfig = z$1.infer<typeof NodeVisualConfigSchema>;
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region src/types/brands.d.ts
|
|
273
|
+
declare const BrandTag: unique symbol;
|
|
274
|
+
/**
|
|
275
|
+
* Compile-time zero-cost nominal typing tag ("newtype" pattern).
|
|
276
|
+
* Prevents accidental cross-assignment of semantically incompatible primitives
|
|
277
|
+
* (e.g. milliseconds to seconds, handle labels to handle IDs, or fractional frames).
|
|
278
|
+
*/
|
|
279
|
+
type Brand<T, B extends string> = T & {
|
|
280
|
+
readonly [BrandTag]: B;
|
|
281
|
+
};
|
|
282
|
+
/** Timeline frame number (must be a non-negative integer). */
|
|
283
|
+
type FrameIndex = Brand<number, "FrameIndex">;
|
|
284
|
+
/** Time in seconds. */
|
|
285
|
+
type Seconds = Brand<number, "Seconds">;
|
|
286
|
+
/** Time in milliseconds. */
|
|
287
|
+
type Milliseconds = Brand<number, "Milliseconds">;
|
|
288
|
+
/** Frame rate in frames per second. */
|
|
289
|
+
type Fps = Brand<number, "Fps">;
|
|
290
|
+
/** Normalized scalar in the range [0.0, 1.0]. */
|
|
291
|
+
type Normalized = Brand<number, "Normalized">;
|
|
292
|
+
/** Angle in degrees (0 to 360). */
|
|
293
|
+
type Degrees = Brand<number, "Degrees">;
|
|
294
|
+
/** Angle in radians (0 to 2*PI). */
|
|
295
|
+
type Radians = Brand<number, "Radians">;
|
|
296
|
+
/** Dimension in screen/canvas pixels. */
|
|
297
|
+
type Pixels = Brand<number, "Pixels">;
|
|
298
|
+
/** Live compositor dynamic input/output handle identifier. */
|
|
299
|
+
type HandleId = Brand<string, "HandleId">;
|
|
300
|
+
/** Human-readable handle label (distinct from HandleId to prevent runtime lookup failure). */
|
|
301
|
+
type HandleLabel = Brand<string, "HandleLabel">;
|
|
302
|
+
/** Unique layout node identifier. */
|
|
303
|
+
type NodeId = Brand<string, "NodeId">;
|
|
304
|
+
/** Asserts and casts a number to an integer FrameIndex. */
|
|
305
|
+
declare function frame(n: number): FrameIndex;
|
|
306
|
+
/** Asserts and casts a number to Seconds. */
|
|
307
|
+
declare function seconds(s: number): Seconds;
|
|
308
|
+
/** Asserts and casts a number to Milliseconds. */
|
|
309
|
+
declare function ms(m: number): Milliseconds;
|
|
310
|
+
/** Asserts and casts a number to Fps. */
|
|
311
|
+
declare function fps(f: number): Fps;
|
|
312
|
+
/** Clamps and casts a number to Normalized [0.0, 1.0]. */
|
|
313
|
+
declare function normalized(n: number): Normalized;
|
|
314
|
+
/** Asserts and casts a number to Degrees. */
|
|
315
|
+
declare function degrees(deg: number): Degrees;
|
|
316
|
+
/** Asserts and casts a number to Radians. */
|
|
317
|
+
declare function radians(rad: number): Radians;
|
|
318
|
+
/** Asserts and casts a number to Pixels. */
|
|
319
|
+
declare function pixels(px: number): Pixels;
|
|
320
|
+
/** Casts a string to HandleId. */
|
|
321
|
+
declare function handleId(id: string): HandleId;
|
|
322
|
+
/** Casts a string to HandleLabel. */
|
|
323
|
+
declare function handleLabel(label: string): HandleLabel;
|
|
324
|
+
/** Casts a string to NodeId. */
|
|
325
|
+
declare function nodeId(id: string): NodeId;
|
|
326
|
+
/** Type guard checking if a number is a valid FrameIndex. */
|
|
327
|
+
declare function isFrameIndex(val: unknown): val is FrameIndex;
|
|
328
|
+
/** Type guard checking if a number is in the Normalized [0, 1] range. */
|
|
329
|
+
declare function isNormalized(val: unknown): val is Normalized;
|
|
330
|
+
//#endregion
|
|
331
|
+
//#region src/types/config/colors.d.ts
|
|
332
|
+
declare const dataTypeColors: Record<string, {
|
|
333
|
+
bg: string;
|
|
334
|
+
stroke: string;
|
|
335
|
+
hex: string;
|
|
336
|
+
text: string;
|
|
337
|
+
border: string;
|
|
338
|
+
}>;
|
|
339
|
+
//#endregion
|
|
340
|
+
//#region src/types/config/schemas.d.ts
|
|
341
|
+
declare const DATA_TYPE_EXTENSIONS: Record<DataType, string>;
|
|
342
|
+
declare const MIME_TYPES: Record<string, string>;
|
|
343
|
+
declare const COMPOSITE_OPERATIONS: readonly ["source-over", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "lighter", "copy", "xor", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
|
|
344
|
+
declare const GlobalCompositeOperation: z.ZodEnum<{
|
|
345
|
+
"source-over": "source-over";
|
|
346
|
+
"source-in": "source-in";
|
|
347
|
+
"source-out": "source-out";
|
|
348
|
+
"source-atop": "source-atop";
|
|
349
|
+
"destination-over": "destination-over";
|
|
350
|
+
"destination-in": "destination-in";
|
|
351
|
+
"destination-out": "destination-out";
|
|
352
|
+
"destination-atop": "destination-atop";
|
|
353
|
+
lighter: "lighter";
|
|
354
|
+
copy: "copy";
|
|
355
|
+
xor: "xor";
|
|
356
|
+
multiply: "multiply";
|
|
357
|
+
screen: "screen";
|
|
358
|
+
overlay: "overlay";
|
|
359
|
+
darken: "darken";
|
|
360
|
+
lighten: "lighten";
|
|
361
|
+
"color-dodge": "color-dodge";
|
|
362
|
+
"color-burn": "color-burn";
|
|
363
|
+
"hard-light": "hard-light";
|
|
364
|
+
"soft-light": "soft-light";
|
|
365
|
+
difference: "difference";
|
|
366
|
+
exclusion: "exclusion";
|
|
367
|
+
hue: "hue";
|
|
368
|
+
saturation: "saturation";
|
|
369
|
+
color: "color";
|
|
370
|
+
luminosity: "luminosity";
|
|
371
|
+
}>;
|
|
372
|
+
type ZodSchemaType = z.ZodType<any, any, any>;
|
|
373
|
+
declare class ConfigSchemaRegistry {
|
|
374
|
+
private static schemas;
|
|
375
|
+
static register(type: string, schema: ZodSchemaType): void;
|
|
376
|
+
static get(type: string): ZodSchemaType | undefined;
|
|
377
|
+
static clear(): void;
|
|
378
|
+
}
|
|
379
|
+
//#endregion
|
|
380
|
+
//#region src/types/constants.d.ts
|
|
381
|
+
declare const COMPOSITOR_DEFAULTS: {
|
|
382
|
+
FONT_FAMILY: string;
|
|
383
|
+
FONT_SIZE: number;
|
|
384
|
+
FILL: string;
|
|
385
|
+
LINE_HEIGHT: number;
|
|
386
|
+
ALIGN: string;
|
|
387
|
+
VERTICAL_ALIGN: string;
|
|
388
|
+
LETTER_SPACING: number;
|
|
389
|
+
STROKE_WIDTH: number;
|
|
390
|
+
STROKE: string;
|
|
391
|
+
CORNER_RADIUS: number;
|
|
392
|
+
PADDING: number;
|
|
393
|
+
};
|
|
394
|
+
//#endregion
|
|
395
|
+
//#region src/types/video/virtual-video.d.ts
|
|
396
|
+
declare const MediaSourceSchema: z.ZodObject<{
|
|
397
|
+
entity: z.ZodOptional<z.ZodObject<{
|
|
398
|
+
id: z.ZodCUID2;
|
|
399
|
+
name: z.ZodString;
|
|
400
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
401
|
+
updatedAt: z.ZodCoercedDate<unknown>;
|
|
402
|
+
userId: z.ZodNullable<z.ZodCUID2>;
|
|
403
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
404
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
405
|
+
bucket: z.ZodString;
|
|
406
|
+
size: z.ZodNumber;
|
|
407
|
+
mimeType: z.ZodString;
|
|
408
|
+
key: z.ZodString;
|
|
409
|
+
isUploaded: z.ZodDefault<z.ZodBoolean>;
|
|
410
|
+
duration: z.ZodNullable<z.ZodNumber>;
|
|
411
|
+
sampleRate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
412
|
+
channels: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
413
|
+
bitDepth: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
414
|
+
audioCodec: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
415
|
+
audioBitrate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
416
|
+
fps: z.ZodNullable<z.ZodNumber>;
|
|
417
|
+
fingerprint: z.ZodNullable<z.ZodString>;
|
|
418
|
+
}, z.core.$strip>>;
|
|
419
|
+
}, z.core.$strip>;
|
|
420
|
+
declare const MediaMetadataSchema: z.ZodObject<{
|
|
421
|
+
width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
422
|
+
height: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
423
|
+
fps: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
424
|
+
durationMs: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
425
|
+
sampleRate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
426
|
+
channels: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
427
|
+
bitDepth: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
428
|
+
audioCodec: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
429
|
+
audioBitrate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
430
|
+
}, z.core.$strip>;
|
|
431
|
+
type MediaMetadata = z.infer<typeof MediaMetadataSchema>;
|
|
432
|
+
declare const TimelineSegmentSchema: z.ZodObject<{
|
|
433
|
+
startSec: z.ZodNumber;
|
|
434
|
+
endSec: z.ZodOptional<z.ZodNumber>;
|
|
435
|
+
}, z.core.$strip>;
|
|
436
|
+
declare const TimelineTransformSchema: z.ZodObject<{
|
|
437
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
438
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
439
|
+
startSec: z.ZodNumber;
|
|
440
|
+
endSec: z.ZodOptional<z.ZodNumber>;
|
|
441
|
+
}, z.core.$strip>>>;
|
|
442
|
+
}, z.core.$strip>;
|
|
443
|
+
type TimelineTransform = z.infer<typeof TimelineTransformSchema>;
|
|
444
|
+
declare const BaseMediaOperationPropsSchema: z.ZodObject<{
|
|
445
|
+
volume: z.ZodOptional<z.ZodNumber>;
|
|
446
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
447
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
448
|
+
durationFrames: z.ZodOptional<z.ZodNumber>;
|
|
449
|
+
timeline: z.ZodOptional<z.ZodObject<{
|
|
450
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
451
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
452
|
+
startSec: z.ZodNumber;
|
|
453
|
+
endSec: z.ZodOptional<z.ZodNumber>;
|
|
454
|
+
}, z.core.$strip>>>;
|
|
455
|
+
}, z.core.$strip>>;
|
|
456
|
+
}, z.core.$strip>;
|
|
457
|
+
type BaseMediaOperationProps = z.infer<typeof BaseMediaOperationPropsSchema>;
|
|
458
|
+
type NodeInputConnection = {
|
|
459
|
+
connectionValid: boolean;
|
|
460
|
+
outputItem: {
|
|
461
|
+
type: string;
|
|
462
|
+
data: unknown;
|
|
463
|
+
} | null;
|
|
464
|
+
};
|
|
465
|
+
type NodeOperation<TOp extends string = string, TConfig extends object = Record<string, unknown>> = BaseMediaOperationProps & {
|
|
466
|
+
op: TOp;
|
|
467
|
+
id?: string;
|
|
468
|
+
metadata?: MediaMetadata;
|
|
469
|
+
dataType?: DataType;
|
|
470
|
+
effect?: unknown;
|
|
471
|
+
signals?: Record<string, unknown>;
|
|
472
|
+
inputs?: Record<string, NodeInputConnection>;
|
|
473
|
+
onRequestFrame?: (ctx: FrameContext) => void;
|
|
474
|
+
} & TConfig;
|
|
475
|
+
/** Original source file (leaf node) */
|
|
476
|
+
declare const SourceOperationSchema: z.ZodObject<{
|
|
477
|
+
volume: z.ZodOptional<z.ZodNumber>;
|
|
478
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
479
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
480
|
+
durationFrames: z.ZodOptional<z.ZodNumber>;
|
|
481
|
+
timeline: z.ZodOptional<z.ZodObject<{
|
|
482
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
483
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
484
|
+
startSec: z.ZodNumber;
|
|
485
|
+
endSec: z.ZodOptional<z.ZodNumber>;
|
|
486
|
+
}, z.core.$strip>>>;
|
|
487
|
+
}, z.core.$strip>>;
|
|
488
|
+
op: z.ZodLiteral<"source">;
|
|
489
|
+
source: z.ZodObject<{
|
|
490
|
+
entity: z.ZodOptional<z.ZodObject<{
|
|
491
|
+
id: z.ZodCUID2;
|
|
492
|
+
name: z.ZodString;
|
|
493
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
494
|
+
updatedAt: z.ZodCoercedDate<unknown>;
|
|
495
|
+
userId: z.ZodNullable<z.ZodCUID2>;
|
|
496
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
497
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
498
|
+
bucket: z.ZodString;
|
|
499
|
+
size: z.ZodNumber;
|
|
500
|
+
mimeType: z.ZodString;
|
|
501
|
+
key: z.ZodString;
|
|
502
|
+
isUploaded: z.ZodDefault<z.ZodBoolean>;
|
|
503
|
+
duration: z.ZodNullable<z.ZodNumber>;
|
|
504
|
+
sampleRate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
505
|
+
channels: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
506
|
+
bitDepth: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
507
|
+
audioCodec: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
508
|
+
audioBitrate: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
509
|
+
fps: z.ZodNullable<z.ZodNumber>;
|
|
510
|
+
fingerprint: z.ZodNullable<z.ZodString>;
|
|
511
|
+
}, z.core.$strip>>;
|
|
512
|
+
}, z.core.$strip>;
|
|
513
|
+
sourceMeta: z.ZodObject<{
|
|
514
|
+
width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
515
|
+
height: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
516
|
+
fps: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
517
|
+
durationMs: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
518
|
+
sampleRate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
519
|
+
channels: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
520
|
+
bitDepth: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
521
|
+
audioCodec: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
522
|
+
audioBitrate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
523
|
+
}, z.core.$strip>;
|
|
524
|
+
dataType: z.ZodEnum<{
|
|
525
|
+
Text: "Text";
|
|
526
|
+
Number: "Number";
|
|
527
|
+
Boolean: "Boolean";
|
|
528
|
+
Image: "Image";
|
|
529
|
+
Video: "Video";
|
|
530
|
+
Audio: "Audio";
|
|
531
|
+
SVG: "SVG";
|
|
532
|
+
Caption: "Caption";
|
|
533
|
+
Lottie: "Lottie";
|
|
534
|
+
ThreeD: "ThreeD";
|
|
535
|
+
GIF: "GIF";
|
|
536
|
+
Signal: "Signal";
|
|
537
|
+
LUT: "LUT";
|
|
538
|
+
}>;
|
|
539
|
+
}, z.core.$strip>;
|
|
540
|
+
/** Text content (leaf node) */
|
|
541
|
+
declare const TextOperationSchema: z.ZodObject<{
|
|
542
|
+
volume: z.ZodOptional<z.ZodNumber>;
|
|
543
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
544
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
545
|
+
durationFrames: z.ZodOptional<z.ZodNumber>;
|
|
546
|
+
timeline: z.ZodOptional<z.ZodObject<{
|
|
547
|
+
startFrame: z.ZodOptional<z.ZodNumber>;
|
|
548
|
+
segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
549
|
+
startSec: z.ZodNumber;
|
|
550
|
+
endSec: z.ZodOptional<z.ZodNumber>;
|
|
551
|
+
}, z.core.$strip>>>;
|
|
552
|
+
}, z.core.$strip>>;
|
|
553
|
+
op: z.ZodLiteral<"text">;
|
|
554
|
+
text: z.ZodString;
|
|
555
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
556
|
+
width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
557
|
+
height: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
558
|
+
fps: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
559
|
+
durationMs: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
560
|
+
sampleRate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
561
|
+
channels: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
562
|
+
bitDepth: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
563
|
+
audioCodec: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
564
|
+
audioBitrate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
565
|
+
}, z.core.$strip>>;
|
|
566
|
+
dataType: z.ZodEnum<{
|
|
567
|
+
Text: "Text";
|
|
568
|
+
Number: "Number";
|
|
569
|
+
Boolean: "Boolean";
|
|
570
|
+
Image: "Image";
|
|
571
|
+
Video: "Video";
|
|
572
|
+
Audio: "Audio";
|
|
573
|
+
SVG: "SVG";
|
|
574
|
+
Caption: "Caption";
|
|
575
|
+
Lottie: "Lottie";
|
|
576
|
+
ThreeD: "ThreeD";
|
|
577
|
+
GIF: "GIF";
|
|
578
|
+
Signal: "Signal";
|
|
579
|
+
LUT: "LUT";
|
|
580
|
+
}>;
|
|
581
|
+
}, z.core.$loose>;
|
|
582
|
+
declare const MediaOperationSchema: z.ZodType<MediaOperation>;
|
|
583
|
+
type MediaOperation = BaseMediaOperationProps & (({
|
|
584
|
+
op: "source";
|
|
585
|
+
} & z.infer<typeof SourceOperationSchema>) | ({
|
|
586
|
+
op: "text";
|
|
587
|
+
} & z.infer<typeof TextOperationSchema>) | NodeOperation<string, Record<string, unknown>>);
|
|
588
|
+
type VirtualMediaData<TOperation extends MediaOperation = MediaOperation> = {
|
|
589
|
+
metadata: MediaMetadata;
|
|
590
|
+
operation: TOperation;
|
|
591
|
+
children: VirtualMediaData[];
|
|
592
|
+
};
|
|
593
|
+
declare const VirtualMediaDataSchema: z.ZodType<VirtualMediaData>;
|
|
594
|
+
//#endregion
|
|
595
|
+
//#region src/types/node-result.d.ts
|
|
596
|
+
declare const FileDataSchema: z$1.ZodObject<{
|
|
597
|
+
entity: z$1.ZodOptional<z$1.ZodCustom<{
|
|
598
|
+
id: string;
|
|
599
|
+
name: string;
|
|
600
|
+
createdAt: Date;
|
|
601
|
+
updatedAt: Date;
|
|
602
|
+
userId: string | null;
|
|
603
|
+
width: number | null;
|
|
604
|
+
height: number | null;
|
|
605
|
+
bucket: string;
|
|
606
|
+
size: number;
|
|
607
|
+
mimeType: string;
|
|
608
|
+
key: string;
|
|
609
|
+
isUploaded: boolean;
|
|
610
|
+
duration: number | null;
|
|
611
|
+
fps: number | null;
|
|
612
|
+
fingerprint: string | null;
|
|
613
|
+
sampleRate?: number | null | undefined;
|
|
614
|
+
channels?: number | null | undefined;
|
|
615
|
+
bitDepth?: number | null | undefined;
|
|
616
|
+
audioCodec?: string | null | undefined;
|
|
617
|
+
audioBitrate?: number | null | undefined;
|
|
618
|
+
}, {
|
|
619
|
+
id: string;
|
|
620
|
+
name: string;
|
|
621
|
+
createdAt: Date;
|
|
622
|
+
updatedAt: Date;
|
|
623
|
+
userId: string | null;
|
|
624
|
+
width: number | null;
|
|
625
|
+
height: number | null;
|
|
626
|
+
bucket: string;
|
|
627
|
+
size: number;
|
|
628
|
+
mimeType: string;
|
|
629
|
+
key: string;
|
|
630
|
+
isUploaded: boolean;
|
|
631
|
+
duration: number | null;
|
|
632
|
+
fps: number | null;
|
|
633
|
+
fingerprint: string | null;
|
|
634
|
+
sampleRate?: number | null | undefined;
|
|
635
|
+
channels?: number | null | undefined;
|
|
636
|
+
bitDepth?: number | null | undefined;
|
|
637
|
+
audioCodec?: string | null | undefined;
|
|
638
|
+
audioBitrate?: number | null | undefined;
|
|
639
|
+
}>>;
|
|
640
|
+
}, z$1.z.core.$strip>;
|
|
641
|
+
type FileData = z$1.infer<typeof FileDataSchema>;
|
|
642
|
+
declare const SignalStatsSchema: z$1.ZodObject<{
|
|
643
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
644
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
645
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
646
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
647
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
648
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
649
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
650
|
+
}, z$1.z.core.$strip>;
|
|
651
|
+
type SignalStats = z$1.infer<typeof SignalStatsSchema>;
|
|
652
|
+
declare const SignalChannelMetaSchema: z$1.ZodObject<{
|
|
653
|
+
id: z$1.ZodString;
|
|
654
|
+
name: z$1.ZodString;
|
|
655
|
+
index: z$1.ZodNumber;
|
|
656
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
657
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
658
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
659
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
660
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
661
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
662
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
663
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
664
|
+
}, z$1.z.core.$strip>>;
|
|
665
|
+
}, z$1.z.core.$strip>;
|
|
666
|
+
type SignalChannelMeta = z$1.infer<typeof SignalChannelMetaSchema>;
|
|
667
|
+
declare const GeneratorSignalDataSchema: z$1.ZodObject<{
|
|
668
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
669
|
+
type: z$1.ZodLiteral<"generator">;
|
|
670
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
671
|
+
baseType: z$1.ZodOptional<z$1.ZodString>;
|
|
672
|
+
func: z$1.ZodDefault<z$1.ZodUnion<[z$1.ZodEnum<{
|
|
673
|
+
custom: "custom";
|
|
674
|
+
sine: "sine";
|
|
675
|
+
triangle: "triangle";
|
|
676
|
+
sawtooth: "sawtooth";
|
|
677
|
+
square: "square";
|
|
678
|
+
}>, z$1.ZodString]>>;
|
|
679
|
+
frequency: z$1.ZodDefault<z$1.ZodNumber>;
|
|
680
|
+
amplitude: z$1.ZodDefault<z$1.ZodNumber>;
|
|
681
|
+
phase: z$1.ZodDefault<z$1.ZodNumber>;
|
|
682
|
+
offset: z$1.ZodDefault<z$1.ZodNumber>;
|
|
683
|
+
waveform: z$1.ZodOptional<z$1.ZodString>;
|
|
684
|
+
bpm: z$1.ZodOptional<z$1.ZodNumber>;
|
|
685
|
+
syncToBpm: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
686
|
+
fmFrequency: z$1.ZodOptional<z$1.ZodNumber>;
|
|
687
|
+
fmDepth: z$1.ZodOptional<z$1.ZodNumber>;
|
|
688
|
+
envelope: z$1.ZodOptional<z$1.ZodString>;
|
|
689
|
+
fnBody: z$1.ZodOptional<z$1.ZodString>;
|
|
690
|
+
fnParams: z$1.ZodOptional<z$1.ZodArray<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>>;
|
|
691
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
692
|
+
signalFnName: z$1.ZodOptional<z$1.ZodString>;
|
|
693
|
+
outputType: z$1.ZodOptional<z$1.ZodString>;
|
|
694
|
+
fps: z$1.ZodOptional<z$1.ZodNumber>;
|
|
695
|
+
durationMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
696
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
697
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
698
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
699
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
700
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
701
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
702
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
703
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
704
|
+
}, z$1.z.core.$strip>>;
|
|
705
|
+
}, z$1.z.core.$loose>;
|
|
706
|
+
type GeneratorSignalData = z$1.infer<typeof GeneratorSignalDataSchema>;
|
|
707
|
+
declare const AudioExtractorSignalDataSchema: z$1.ZodObject<{
|
|
708
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
709
|
+
type: z$1.ZodLiteral<"audio_extractor">;
|
|
710
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
711
|
+
sourceUrl: z$1.ZodOptional<z$1.ZodString>;
|
|
712
|
+
channel: z$1.ZodOptional<z$1.ZodUnion<[z$1.ZodEnum<{
|
|
713
|
+
primary: "primary";
|
|
714
|
+
beat: "beat";
|
|
715
|
+
bass: "bass";
|
|
716
|
+
energy: "energy";
|
|
717
|
+
spectral_flux: "spectral_flux";
|
|
718
|
+
}>, z$1.ZodString]>>;
|
|
719
|
+
channelIndex: z$1.ZodOptional<z$1.ZodNumber>;
|
|
720
|
+
channels: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
721
|
+
id: z$1.ZodString;
|
|
722
|
+
name: z$1.ZodString;
|
|
723
|
+
index: z$1.ZodNumber;
|
|
724
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
725
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
726
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
727
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
728
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
729
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
730
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
731
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
732
|
+
}, z$1.z.core.$strip>>;
|
|
733
|
+
}, z$1.z.core.$strip>>>;
|
|
734
|
+
extractionMode: z$1.ZodOptional<z$1.ZodString>;
|
|
735
|
+
attackMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
736
|
+
releaseMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
737
|
+
sensitivity: z$1.ZodOptional<z$1.ZodNumber>;
|
|
738
|
+
noiseFloorDb: z$1.ZodOptional<z$1.ZodNumber>;
|
|
739
|
+
dynamicRangeDb: z$1.ZodOptional<z$1.ZodNumber>;
|
|
740
|
+
autoRange: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
741
|
+
smoothing: z$1.ZodOptional<z$1.ZodNumber>;
|
|
742
|
+
curve: z$1.ZodOptional<z$1.ZodString>;
|
|
743
|
+
beatThreshold: z$1.ZodOptional<z$1.ZodNumber>;
|
|
744
|
+
beatDecayMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
745
|
+
previewMode: z$1.ZodOptional<z$1.ZodString>;
|
|
746
|
+
samples: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodArray<z$1.ZodNumber>, z$1.ZodCustom<Float32Array<ArrayBuffer>, Float32Array<ArrayBuffer>>]>>;
|
|
747
|
+
fps: z$1.ZodOptional<z$1.ZodNumber>;
|
|
748
|
+
durationMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
749
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
750
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
751
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
752
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
753
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
754
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
755
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
756
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
757
|
+
}, z$1.z.core.$strip>>;
|
|
758
|
+
state: z$1.ZodOptional<z$1.ZodEnum<{
|
|
759
|
+
pending: "pending";
|
|
760
|
+
ready: "ready";
|
|
761
|
+
failed: "failed";
|
|
762
|
+
}>>;
|
|
763
|
+
error: z$1.ZodOptional<z$1.ZodString>;
|
|
764
|
+
virtualMedia: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
|
|
765
|
+
signalFnName: z$1.ZodOptional<z$1.ZodString>;
|
|
766
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
767
|
+
}, z$1.z.core.$loose>;
|
|
768
|
+
type AudioExtractorSignalData = z$1.infer<typeof AudioExtractorSignalDataSchema>;
|
|
769
|
+
declare const SignalMathDataSchema: z$1.ZodObject<{
|
|
770
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
771
|
+
type: z$1.ZodLiteral<"signal_math">;
|
|
772
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
773
|
+
op: z$1.ZodOptional<z$1.ZodString>;
|
|
774
|
+
operation: z$1.ZodOptional<z$1.ZodString>;
|
|
775
|
+
signalA: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
776
|
+
signalB: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
777
|
+
bValue: z$1.ZodOptional<z$1.ZodNumber>;
|
|
778
|
+
inMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
779
|
+
inMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
780
|
+
outMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
781
|
+
outMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
782
|
+
clampMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
783
|
+
clampMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
784
|
+
exponent: z$1.ZodOptional<z$1.ZodNumber>;
|
|
785
|
+
edge0: z$1.ZodOptional<z$1.ZodNumber>;
|
|
786
|
+
edge1: z$1.ZodOptional<z$1.ZodNumber>;
|
|
787
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
788
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
789
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
790
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
791
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
792
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
793
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
794
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
795
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
796
|
+
}, z$1.z.core.$strip>>;
|
|
797
|
+
}, z$1.z.core.$loose>;
|
|
798
|
+
type SignalMathData = z$1.infer<typeof SignalMathDataSchema>;
|
|
799
|
+
declare const SignalGateDataSchema: z$1.ZodObject<{
|
|
800
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
801
|
+
type: z$1.ZodLiteral<"gate">;
|
|
802
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
803
|
+
sourceSignal: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
804
|
+
threshold: z$1.ZodOptional<z$1.ZodNumber>;
|
|
805
|
+
debounceMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
806
|
+
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
807
|
+
gate: "gate";
|
|
808
|
+
trigger: "trigger";
|
|
809
|
+
toggle: "toggle";
|
|
810
|
+
}>>;
|
|
811
|
+
holdFrames: z$1.ZodOptional<z$1.ZodNumber>;
|
|
812
|
+
invert: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
813
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
814
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
815
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
816
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
817
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
818
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
819
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
820
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
821
|
+
}, z$1.z.core.$strip>>;
|
|
822
|
+
}, z$1.z.core.$loose>;
|
|
823
|
+
type SignalGateData = z$1.infer<typeof SignalGateDataSchema>;
|
|
824
|
+
declare const SignalDataSchema: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
825
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
826
|
+
type: z$1.ZodLiteral<"generator">;
|
|
827
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
828
|
+
baseType: z$1.ZodOptional<z$1.ZodString>;
|
|
829
|
+
func: z$1.ZodDefault<z$1.ZodUnion<[z$1.ZodEnum<{
|
|
830
|
+
custom: "custom";
|
|
831
|
+
sine: "sine";
|
|
832
|
+
triangle: "triangle";
|
|
833
|
+
sawtooth: "sawtooth";
|
|
834
|
+
square: "square";
|
|
835
|
+
}>, z$1.ZodString]>>;
|
|
836
|
+
frequency: z$1.ZodDefault<z$1.ZodNumber>;
|
|
837
|
+
amplitude: z$1.ZodDefault<z$1.ZodNumber>;
|
|
838
|
+
phase: z$1.ZodDefault<z$1.ZodNumber>;
|
|
839
|
+
offset: z$1.ZodDefault<z$1.ZodNumber>;
|
|
840
|
+
waveform: z$1.ZodOptional<z$1.ZodString>;
|
|
841
|
+
bpm: z$1.ZodOptional<z$1.ZodNumber>;
|
|
842
|
+
syncToBpm: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
843
|
+
fmFrequency: z$1.ZodOptional<z$1.ZodNumber>;
|
|
844
|
+
fmDepth: z$1.ZodOptional<z$1.ZodNumber>;
|
|
845
|
+
envelope: z$1.ZodOptional<z$1.ZodString>;
|
|
846
|
+
fnBody: z$1.ZodOptional<z$1.ZodString>;
|
|
847
|
+
fnParams: z$1.ZodOptional<z$1.ZodArray<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>>;
|
|
848
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
849
|
+
signalFnName: z$1.ZodOptional<z$1.ZodString>;
|
|
850
|
+
outputType: z$1.ZodOptional<z$1.ZodString>;
|
|
851
|
+
fps: z$1.ZodOptional<z$1.ZodNumber>;
|
|
852
|
+
durationMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
853
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
854
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
855
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
856
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
857
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
858
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
859
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
860
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
861
|
+
}, z$1.z.core.$strip>>;
|
|
862
|
+
}, z$1.z.core.$loose>, z$1.ZodObject<{
|
|
863
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
864
|
+
type: z$1.ZodLiteral<"audio_extractor">;
|
|
865
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
866
|
+
sourceUrl: z$1.ZodOptional<z$1.ZodString>;
|
|
867
|
+
channel: z$1.ZodOptional<z$1.ZodUnion<[z$1.ZodEnum<{
|
|
868
|
+
primary: "primary";
|
|
869
|
+
beat: "beat";
|
|
870
|
+
bass: "bass";
|
|
871
|
+
energy: "energy";
|
|
872
|
+
spectral_flux: "spectral_flux";
|
|
873
|
+
}>, z$1.ZodString]>>;
|
|
874
|
+
channelIndex: z$1.ZodOptional<z$1.ZodNumber>;
|
|
875
|
+
channels: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
876
|
+
id: z$1.ZodString;
|
|
877
|
+
name: z$1.ZodString;
|
|
878
|
+
index: z$1.ZodNumber;
|
|
879
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
880
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
881
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
882
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
883
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
884
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
885
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
886
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
887
|
+
}, z$1.z.core.$strip>>;
|
|
888
|
+
}, z$1.z.core.$strip>>>;
|
|
889
|
+
extractionMode: z$1.ZodOptional<z$1.ZodString>;
|
|
890
|
+
attackMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
891
|
+
releaseMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
892
|
+
sensitivity: z$1.ZodOptional<z$1.ZodNumber>;
|
|
893
|
+
noiseFloorDb: z$1.ZodOptional<z$1.ZodNumber>;
|
|
894
|
+
dynamicRangeDb: z$1.ZodOptional<z$1.ZodNumber>;
|
|
895
|
+
autoRange: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
896
|
+
smoothing: z$1.ZodOptional<z$1.ZodNumber>;
|
|
897
|
+
curve: z$1.ZodOptional<z$1.ZodString>;
|
|
898
|
+
beatThreshold: z$1.ZodOptional<z$1.ZodNumber>;
|
|
899
|
+
beatDecayMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
900
|
+
previewMode: z$1.ZodOptional<z$1.ZodString>;
|
|
901
|
+
samples: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodArray<z$1.ZodNumber>, z$1.ZodCustom<Float32Array<ArrayBuffer>, Float32Array<ArrayBuffer>>]>>;
|
|
902
|
+
fps: z$1.ZodOptional<z$1.ZodNumber>;
|
|
903
|
+
durationMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
904
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
905
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
906
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
907
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
908
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
909
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
910
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
911
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
912
|
+
}, z$1.z.core.$strip>>;
|
|
913
|
+
state: z$1.ZodOptional<z$1.ZodEnum<{
|
|
914
|
+
pending: "pending";
|
|
915
|
+
ready: "ready";
|
|
916
|
+
failed: "failed";
|
|
917
|
+
}>>;
|
|
918
|
+
error: z$1.ZodOptional<z$1.ZodString>;
|
|
919
|
+
virtualMedia: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
|
|
920
|
+
signalFnName: z$1.ZodOptional<z$1.ZodString>;
|
|
921
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
922
|
+
}, z$1.z.core.$loose>, z$1.ZodObject<{
|
|
923
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
924
|
+
type: z$1.ZodLiteral<"signal_math">;
|
|
925
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
926
|
+
op: z$1.ZodOptional<z$1.ZodString>;
|
|
927
|
+
operation: z$1.ZodOptional<z$1.ZodString>;
|
|
928
|
+
signalA: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
929
|
+
signalB: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
930
|
+
bValue: z$1.ZodOptional<z$1.ZodNumber>;
|
|
931
|
+
inMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
932
|
+
inMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
933
|
+
outMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
934
|
+
outMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
935
|
+
clampMin: z$1.ZodOptional<z$1.ZodNumber>;
|
|
936
|
+
clampMax: z$1.ZodOptional<z$1.ZodNumber>;
|
|
937
|
+
exponent: z$1.ZodOptional<z$1.ZodNumber>;
|
|
938
|
+
edge0: z$1.ZodOptional<z$1.ZodNumber>;
|
|
939
|
+
edge1: z$1.ZodOptional<z$1.ZodNumber>;
|
|
940
|
+
customWGSL: z$1.ZodOptional<z$1.ZodString>;
|
|
941
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
942
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
943
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
944
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
945
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
946
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
947
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
948
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
949
|
+
}, z$1.z.core.$strip>>;
|
|
950
|
+
}, z$1.z.core.$loose>, z$1.ZodObject<{
|
|
951
|
+
v: z$1.ZodOptional<z$1.ZodLiteral<2>>;
|
|
952
|
+
type: z$1.ZodLiteral<"gate">;
|
|
953
|
+
nodeId: z$1.ZodOptional<z$1.ZodString>;
|
|
954
|
+
sourceSignal: z$1.ZodOptional<z$1.ZodUnknown>;
|
|
955
|
+
threshold: z$1.ZodOptional<z$1.ZodNumber>;
|
|
956
|
+
debounceMs: z$1.ZodOptional<z$1.ZodNumber>;
|
|
957
|
+
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
958
|
+
gate: "gate";
|
|
959
|
+
trigger: "trigger";
|
|
960
|
+
toggle: "toggle";
|
|
961
|
+
}>>;
|
|
962
|
+
holdFrames: z$1.ZodOptional<z$1.ZodNumber>;
|
|
963
|
+
invert: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
964
|
+
stats: z$1.ZodOptional<z$1.ZodObject<{
|
|
965
|
+
min: z$1.ZodOptional<z$1.ZodNumber>;
|
|
966
|
+
max: z$1.ZodOptional<z$1.ZodNumber>;
|
|
967
|
+
mean: z$1.ZodOptional<z$1.ZodNumber>;
|
|
968
|
+
rms: z$1.ZodOptional<z$1.ZodNumber>;
|
|
969
|
+
peak: z$1.ZodOptional<z$1.ZodNumber>;
|
|
970
|
+
beats: z$1.ZodOptional<z$1.ZodArray<z$1.ZodNumber>>;
|
|
971
|
+
tempo: z$1.ZodOptional<z$1.ZodNumber>;
|
|
972
|
+
}, z$1.z.core.$strip>>;
|
|
973
|
+
}, z$1.z.core.$loose>, z$1.ZodObject<{
|
|
974
|
+
type: z$1.ZodString;
|
|
975
|
+
}, z$1.z.core.$loose>]>;
|
|
976
|
+
type SignalData = z$1.infer<typeof SignalDataSchema>;
|
|
977
|
+
declare function serializeSignalData(data: SignalData): string;
|
|
978
|
+
declare function deserializeSignalData(raw: unknown): SignalData;
|
|
979
|
+
type DataForType<R extends DataType> = R extends "Text" ? string : R extends "Number" ? number : R extends "Boolean" ? boolean : R extends "Signal" ? SignalData : R extends "Image" | "SVG" | "Caption" | "Video" | "Audio" | "Lottie" | "ThreeD" | "GIF" | "LUT" ? VirtualMediaData : R extends "Any" ? string | number | boolean | FileData | VirtualMediaData | SignalData : never;
|
|
980
|
+
declare const OutputItemSchema: z$1.ZodObject<{
|
|
981
|
+
type: z$1.ZodCustom<DataType, DataType>;
|
|
982
|
+
data: z$1.ZodAny;
|
|
983
|
+
outputHandleId: z$1.ZodOptional<z$1.ZodString>;
|
|
984
|
+
}, z$1.z.core.$strip>;
|
|
985
|
+
declare const createOutputItemSchema: <T extends DataType>(type: z$1.ZodLiteral<T>, dataSchema: z$1.ZodTypeAny) => z$1.ZodType<OutputItem<T>>;
|
|
986
|
+
type OutputItem<R extends DataType> = {
|
|
987
|
+
type: R;
|
|
988
|
+
data: DataForType<R>;
|
|
989
|
+
outputHandleId: string | undefined;
|
|
990
|
+
};
|
|
991
|
+
type Output = {
|
|
992
|
+
items: OutputItem<DataType>[];
|
|
993
|
+
};
|
|
994
|
+
declare const SingleOutputGenericSchema: <T extends DataType>(outputItemSchema: z$1.ZodType<OutputItem<T>>) => z$1.ZodObject<{
|
|
995
|
+
selectedOutputIndex: z$1.ZodLiteral<0>;
|
|
996
|
+
outputs: z$1.ZodTuple<[z$1.ZodObject<{
|
|
997
|
+
items: z$1.ZodTuple<[z$1.ZodType<OutputItem<T>, unknown, z$1.z.core.$ZodTypeInternals<OutputItem<T>, unknown>>], null>;
|
|
998
|
+
}, z$1.z.core.$strip>], null>;
|
|
999
|
+
}, z$1.z.core.$strip>;
|
|
1000
|
+
type SingleOutputGeneric<T extends DataType> = {
|
|
1001
|
+
selectedOutputIndex: 0;
|
|
1002
|
+
outputs: [{
|
|
1003
|
+
items: [OutputItem<T>];
|
|
1004
|
+
}];
|
|
1005
|
+
};
|
|
1006
|
+
declare const MultiOutputGenericSchema: <T extends DataType>(outputItemSchema: z$1.ZodType<OutputItem<T>>) => z$1.ZodObject<{
|
|
1007
|
+
selectedOutputIndex: z$1.ZodNumber;
|
|
1008
|
+
outputs: z$1.ZodArray<z$1.ZodObject<{
|
|
1009
|
+
items: z$1.ZodArray<z$1.ZodType<OutputItem<T>, unknown, z$1.z.core.$ZodTypeInternals<OutputItem<T>, unknown>>>;
|
|
1010
|
+
}, z$1.z.core.$strip>>;
|
|
1011
|
+
sourceFingerprint: z$1.ZodOptional<z$1.ZodString>;
|
|
1012
|
+
}, z$1.z.core.$strip>;
|
|
1013
|
+
type MultiOutputGeneric<T extends DataType> = {
|
|
1014
|
+
selectedOutputIndex: number;
|
|
1015
|
+
outputs: {
|
|
1016
|
+
items: OutputItem<T>[];
|
|
1017
|
+
}[];
|
|
1018
|
+
sourceFingerprint?: string;
|
|
1019
|
+
};
|
|
1020
|
+
type AnyOutputUnion = OutputItem<"Video"> | OutputItem<"Image"> | OutputItem<"Audio"> | OutputItem<"Text"> | OutputItem<"Number"> | OutputItem<"Boolean"> | OutputItem<"SVG"> | OutputItem<"GIF"> | OutputItem<"Caption"> | OutputItem<"Lottie"> | OutputItem<"ThreeD"> | OutputItem<"Signal"> | OutputItem<"LUT">;
|
|
1021
|
+
declare const AnyOutputUnionSchema: z$1.ZodType<AnyOutputUnion>;
|
|
1022
|
+
declare const NodeResultSchema: z$1.ZodObject<{
|
|
1023
|
+
selectedOutputIndex: z$1.ZodNumber;
|
|
1024
|
+
outputs: z$1.ZodArray<z$1.ZodObject<{
|
|
1025
|
+
items: z$1.ZodArray<z$1.ZodType<AnyOutputUnion, unknown, z$1.z.core.$ZodTypeInternals<AnyOutputUnion, unknown>>>;
|
|
1026
|
+
}, z$1.z.core.$strip>>;
|
|
1027
|
+
}, z$1.z.core.$strip>;
|
|
1028
|
+
type NodeResult = z$1.infer<typeof NodeResultSchema>;
|
|
1029
|
+
declare const ExportResultSchema: z$1.ZodObject<{
|
|
1030
|
+
selectedOutputIndex: z$1.ZodNumber;
|
|
1031
|
+
outputs: z$1.ZodArray<z$1.ZodObject<{
|
|
1032
|
+
items: z$1.ZodArray<z$1.ZodType<OutputItem<"Text" | "Number" | "Boolean" | "Image" | "Video" | "Audio" | "SVG" | "Caption" | "Lottie" | "ThreeD" | "GIF" | "Signal" | "LUT">, unknown, z$1.z.core.$ZodTypeInternals<OutputItem<"Text" | "Number" | "Boolean" | "Image" | "Video" | "Audio" | "SVG" | "Caption" | "Lottie" | "ThreeD" | "GIF" | "Signal" | "LUT">, unknown>>>;
|
|
1033
|
+
}, z$1.z.core.$strip>>;
|
|
1034
|
+
sourceFingerprint: z$1.ZodOptional<z$1.ZodString>;
|
|
1035
|
+
}, z$1.z.core.$strip>;
|
|
1036
|
+
type ExportResult = {
|
|
1037
|
+
selectedOutputIndex: number;
|
|
1038
|
+
outputs: {
|
|
1039
|
+
items: AnyOutputUnion[];
|
|
1040
|
+
}[];
|
|
1041
|
+
sourceFingerprint?: string;
|
|
1042
|
+
};
|
|
1043
|
+
//#endregion
|
|
1044
|
+
//#region src/types/node-processor.d.ts
|
|
1045
|
+
type ConnectedInput = {
|
|
1046
|
+
connectionValid: boolean;
|
|
1047
|
+
outputItem: AnyOutputUnion | null;
|
|
1048
|
+
};
|
|
1049
|
+
interface NodeProcessorContext {
|
|
1050
|
+
getFirstOutputHandle: (nodeId: string, type?: DataTypeEnum) => string | undefined;
|
|
1051
|
+
getFirstOutputHandleWithLabel: (nodeId: string, label: string) => string | undefined;
|
|
1052
|
+
findInputData: (inputs: Record<string, ConnectedInput>, requiredType?: string, handleLabel?: string) => string | undefined;
|
|
1053
|
+
registerObjectUrl: (url: string) => void;
|
|
1054
|
+
getOutputHandle: (type: string, label?: string) => string | undefined;
|
|
1055
|
+
}
|
|
1056
|
+
type NodeProcessorParams<TNode = any> = {
|
|
1057
|
+
node: TNode;
|
|
1058
|
+
inputs: Record<string, ConnectedInput>;
|
|
1059
|
+
signal: AbortSignal;
|
|
1060
|
+
data: any;
|
|
1061
|
+
context: NodeProcessorContext;
|
|
1062
|
+
};
|
|
1063
|
+
type NodeRunFunction<TNode = any> = (params: NodeProcessorParams<TNode>) => Promise<NodeResult | null>;
|
|
1064
|
+
//#endregion
|
|
1065
|
+
//#region src/types/rich-text.d.ts
|
|
1066
|
+
interface TextSpanMark {
|
|
1067
|
+
background: string | Signal<string>;
|
|
1068
|
+
borderRadius?: number;
|
|
1069
|
+
paddingX?: number;
|
|
1070
|
+
paddingY?: number;
|
|
1071
|
+
}
|
|
1072
|
+
interface TextSpan {
|
|
1073
|
+
text: string | Signal<string>;
|
|
1074
|
+
fontFamily?: string;
|
|
1075
|
+
fontSize?: number | Signal<number>;
|
|
1076
|
+
fontWeight?: number | string;
|
|
1077
|
+
fontStyle?: "normal" | "italic";
|
|
1078
|
+
fill?: string | Signal<string>;
|
|
1079
|
+
letterSpacing?: number;
|
|
1080
|
+
baselineShift?: number;
|
|
1081
|
+
opacity?: number | Signal<number>;
|
|
1082
|
+
mark?: TextSpanMark;
|
|
1083
|
+
}
|
|
1084
|
+
//#endregion
|
|
1085
|
+
//#region src/types/services.d.ts
|
|
1086
|
+
/**
|
|
1087
|
+
* Interface for media processing and handling.
|
|
1088
|
+
*/
|
|
1089
|
+
interface MediaService {
|
|
1090
|
+
getImageDimensions: (buffer: Buffer) => Promise<{
|
|
1091
|
+
width: number;
|
|
1092
|
+
height: number;
|
|
1093
|
+
}> | {
|
|
1094
|
+
width: number;
|
|
1095
|
+
height: number;
|
|
1096
|
+
};
|
|
1097
|
+
getImageBuffer: (imageInput: FileData) => Promise<Buffer>;
|
|
1098
|
+
resolveFileDataUrl: (data: FileData | null) => string | Promise<string | null> | null;
|
|
1099
|
+
}
|
|
1100
|
+
/**
|
|
1101
|
+
* Interface for storage operations.
|
|
1102
|
+
*/
|
|
1103
|
+
interface StorageService {
|
|
1104
|
+
uploadToStorage: (buffer: Buffer, key: string, contentType?: string, bucketName?: string) => Promise<void>;
|
|
1105
|
+
uploadFileToStorage: (filePath: string, key: string, contentType?: string, bucketName?: string) => Promise<void>;
|
|
1106
|
+
getFromStorage?: (key: string, bucketName?: string) => Promise<Buffer>;
|
|
1107
|
+
deleteFromStorage?: (key: string, bucketName?: string) => Promise<void>;
|
|
1108
|
+
getPublicUrl?: (key: string, bucketName?: string) => string;
|
|
1109
|
+
}
|
|
1110
|
+
//#endregion
|
|
1111
|
+
//#region src/types/vision.d.ts
|
|
1112
|
+
/**
|
|
1113
|
+
* Shared vision types (engine-agnostic — no ONNX imports here).
|
|
1114
|
+
*
|
|
1115
|
+
* Consumed by @framefields/vision (the inference engine) and @framefields/framefields (the SDK).
|
|
1116
|
+
*/
|
|
1117
|
+
/**
|
|
1118
|
+
* Vision tasks and the model that serves each:
|
|
1119
|
+
* - `detect` / `segment` — RTMDet-Ins (COCO 80 boxes + instance masks, one forward pass)
|
|
1120
|
+
* - `pose` — RTMO (COCO-17 keypoints, multi-person)
|
|
1121
|
+
* - `matte` — MediaPipe Selfie Segmenter (fast person-vs-background alpha)
|
|
1122
|
+
*/
|
|
1123
|
+
type VisionTask = "detect" | "segment" | "pose" | "matte";
|
|
1124
|
+
/** Model size: `t` (tiny, fastest) · `s` (default) · `m` (most accurate). */
|
|
1125
|
+
type VisionVariant = "t" | "s" | "m";
|
|
1126
|
+
interface VisionConfig {
|
|
1127
|
+
readonly enableDetection?: boolean;
|
|
1128
|
+
readonly enableSegmentation?: boolean;
|
|
1129
|
+
readonly enablePose?: boolean;
|
|
1130
|
+
/** Fast person matte (Selfie Segmenter) alongside or instead of instance masks. */
|
|
1131
|
+
readonly enableMatte?: boolean;
|
|
1132
|
+
/** COCO class-name filter (all classes when omitted). */
|
|
1133
|
+
readonly classes?: readonly string[];
|
|
1134
|
+
/** Minimum detection score, 0..1. Default 0.3. */
|
|
1135
|
+
readonly confidence?: number;
|
|
1136
|
+
/** Model size. Default "s". */
|
|
1137
|
+
readonly variant?: VisionVariant;
|
|
1138
|
+
/** Model cache directory. Default `$FRAMEFIELDS_MODELS_DIR` or `~/.cache/framefields/models`. */
|
|
1139
|
+
readonly modelsDir?: string;
|
|
1140
|
+
/** Mirror origin for model downloads (`<baseUrl>/<filename>`). Default: pinned Hugging Face revisions. */
|
|
1141
|
+
readonly baseUrl?: string;
|
|
1142
|
+
/** Mask probability threshold (lower → fuller masks). Default 0.5. */
|
|
1143
|
+
readonly maskThreshold?: number;
|
|
1144
|
+
/** Soft-edge band around `maskThreshold`, 0..1. Default 0.05. */
|
|
1145
|
+
readonly featherRadius?: number;
|
|
1146
|
+
/** Vertical FOV (degrees) used to project landmarks into camera space. */
|
|
1147
|
+
readonly cameraFov?: number;
|
|
1148
|
+
}
|
|
1149
|
+
interface VisionNodeSpec {
|
|
1150
|
+
readonly id: string;
|
|
1151
|
+
readonly kind: "vision";
|
|
1152
|
+
readonly source?: unknown;
|
|
1153
|
+
readonly config: VisionConfig;
|
|
1154
|
+
}
|
|
1155
|
+
interface Landmark3D {
|
|
1156
|
+
readonly x: number;
|
|
1157
|
+
readonly y: number;
|
|
1158
|
+
readonly z: number;
|
|
1159
|
+
readonly visibility?: number;
|
|
1160
|
+
}
|
|
1161
|
+
type NormalizedLandmarkList = readonly Landmark3D[];
|
|
1162
|
+
interface ObjectBoundingBox {
|
|
1163
|
+
readonly originX: number;
|
|
1164
|
+
readonly originY: number;
|
|
1165
|
+
readonly width: number;
|
|
1166
|
+
readonly height: number;
|
|
1167
|
+
readonly normalizedX: number;
|
|
1168
|
+
readonly normalizedY: number;
|
|
1169
|
+
readonly normalizedWidth: number;
|
|
1170
|
+
readonly normalizedHeight: number;
|
|
1171
|
+
readonly angle?: number;
|
|
1172
|
+
}
|
|
1173
|
+
interface DetectedObject {
|
|
1174
|
+
readonly category: string;
|
|
1175
|
+
readonly score: number;
|
|
1176
|
+
readonly boundingBox: ObjectBoundingBox;
|
|
1177
|
+
readonly keypoints?: NormalizedLandmarkList;
|
|
1178
|
+
}
|
|
1179
|
+
interface TrackedObject {
|
|
1180
|
+
readonly trackId: number;
|
|
1181
|
+
readonly category: string;
|
|
1182
|
+
readonly score: number;
|
|
1183
|
+
readonly boundingBox: ObjectBoundingBox;
|
|
1184
|
+
readonly centerX: number;
|
|
1185
|
+
readonly centerY: number;
|
|
1186
|
+
readonly normalizedCenterX: number;
|
|
1187
|
+
readonly normalizedCenterY: number;
|
|
1188
|
+
readonly velocity: {
|
|
1189
|
+
readonly vx: number;
|
|
1190
|
+
readonly vy: number;
|
|
1191
|
+
};
|
|
1192
|
+
readonly speed: number;
|
|
1193
|
+
readonly age: number;
|
|
1194
|
+
readonly hits: number;
|
|
1195
|
+
readonly active: boolean;
|
|
1196
|
+
readonly isCoasting: boolean;
|
|
1197
|
+
}
|
|
1198
|
+
//#endregion
|
|
1199
|
+
//#region src/types/tensor.d.ts
|
|
1200
|
+
type TensorFormat = "r8unorm" | "r32float" | "rg16float" | "rgba16float" | "rgba8unorm";
|
|
1201
|
+
interface TensorDimensions {
|
|
1202
|
+
readonly width: number;
|
|
1203
|
+
readonly height: number;
|
|
1204
|
+
readonly channels: number;
|
|
1205
|
+
}
|
|
1206
|
+
interface OpticalFlowOptions {
|
|
1207
|
+
readonly scale?: number;
|
|
1208
|
+
readonly windowSize?: number;
|
|
1209
|
+
readonly regularization?: number;
|
|
1210
|
+
readonly outputFormat?: "rgba16float" | "rg32float";
|
|
1211
|
+
}
|
|
1212
|
+
interface DeflickerOptions {
|
|
1213
|
+
readonly blendWeight?: number | Signal<number>;
|
|
1214
|
+
readonly disocclusionThreshold?: number;
|
|
1215
|
+
readonly maxMotionPixels?: number;
|
|
1216
|
+
readonly opticalFlow?: OpticalFlowOptions;
|
|
1217
|
+
}
|
|
1218
|
+
interface NormalRelightingOptions {
|
|
1219
|
+
readonly normalMap?: GPUTexture | unknown;
|
|
1220
|
+
readonly depthScale?: number | Signal<number>;
|
|
1221
|
+
readonly roughness?: number | Signal<number>;
|
|
1222
|
+
readonly specularStrength?: number | Signal<number>;
|
|
1223
|
+
readonly metallic?: number | Signal<number>;
|
|
1224
|
+
readonly ambientIntensity?: number | Signal<number>;
|
|
1225
|
+
readonly volumetricDensity?: number | Signal<number>;
|
|
1226
|
+
}
|
|
1227
|
+
interface ControlNetConditioningOutputs {
|
|
1228
|
+
readonly canny?: GPUTexture;
|
|
1229
|
+
readonly depth?: GPUTexture;
|
|
1230
|
+
readonly normals?: GPUTexture;
|
|
1231
|
+
readonly poseSkeleton?: GPUTexture;
|
|
1232
|
+
readonly segmentationMask?: GPUTexture;
|
|
1233
|
+
readonly faceLandmarks?: GPUTexture;
|
|
1234
|
+
readonly motionVectors?: GPUTexture;
|
|
1235
|
+
readonly deflickered?: GPUTexture;
|
|
1236
|
+
}
|
|
1237
|
+
interface TensorData {
|
|
1238
|
+
readonly data: Float32Array;
|
|
1239
|
+
readonly shape: readonly number[];
|
|
1240
|
+
readonly dtype: "float32";
|
|
1241
|
+
}
|
|
1242
|
+
interface CannyOptions {
|
|
1243
|
+
readonly low?: number;
|
|
1244
|
+
readonly high?: number;
|
|
1245
|
+
readonly outputFormat?: "rgba8unorm" | "r32float";
|
|
1246
|
+
}
|
|
1247
|
+
interface DepthNormalsOptions {
|
|
1248
|
+
readonly depthQuality?: "high" | "standard";
|
|
1249
|
+
readonly depthScale?: number;
|
|
1250
|
+
readonly outputFormat?: "rgba16float" | "rgba8unorm";
|
|
1251
|
+
}
|
|
1252
|
+
interface PoseSkeletonOptions {
|
|
1253
|
+
readonly width?: number;
|
|
1254
|
+
readonly height?: number;
|
|
1255
|
+
readonly lineWidth?: number;
|
|
1256
|
+
readonly landmarks?: NormalizedLandmarkList;
|
|
1257
|
+
}
|
|
1258
|
+
interface FaceLandmarksOptions {
|
|
1259
|
+
readonly width?: number;
|
|
1260
|
+
readonly height?: number;
|
|
1261
|
+
readonly lineWidth?: number;
|
|
1262
|
+
readonly landmarks?: NormalizedLandmarkList;
|
|
1263
|
+
}
|
|
1264
|
+
interface SegmentationOptions {
|
|
1265
|
+
readonly threshold?: number;
|
|
1266
|
+
readonly feather?: number;
|
|
1267
|
+
readonly outputFormat?: "rgba8unorm" | "r8unorm";
|
|
1268
|
+
}
|
|
1269
|
+
interface TensorPipelineConfig {
|
|
1270
|
+
readonly canny?: CannyOptions;
|
|
1271
|
+
readonly depthNormals?: DepthNormalsOptions;
|
|
1272
|
+
readonly poseSkeleton?: PoseSkeletonOptions;
|
|
1273
|
+
readonly faceLandmarks?: FaceLandmarksOptions;
|
|
1274
|
+
readonly segmentation?: SegmentationOptions;
|
|
1275
|
+
readonly opticalFlow?: OpticalFlowOptions;
|
|
1276
|
+
readonly deflicker?: DeflickerOptions;
|
|
1277
|
+
}
|
|
1278
|
+
interface TensorNode {
|
|
1279
|
+
readonly id: string;
|
|
1280
|
+
readonly kind: "tensor";
|
|
1281
|
+
readonly source?: unknown;
|
|
1282
|
+
readonly config: TensorPipelineConfig;
|
|
1283
|
+
}
|
|
1284
|
+
interface MeshAudioDeformConfig {
|
|
1285
|
+
readonly audioTrackId?: string;
|
|
1286
|
+
/**
|
|
1287
|
+
* normal_extrusion pushes vertices out along their normals by the band's
|
|
1288
|
+
* energy; radial_pulse inflates the mesh from its origin on bass and
|
|
1289
|
+
* drums; harmonic_wave runs a sine along Y; twist turns each slice about
|
|
1290
|
+
* the Y axis in proportion to its height and the bass; ripple sends
|
|
1291
|
+
* concentric waves across the XY plane, struck by the drums.
|
|
1292
|
+
*/
|
|
1293
|
+
readonly mode: "radial_pulse" | "harmonic_wave" | "normal_extrusion" | "twist" | "ripple";
|
|
1294
|
+
readonly frequencyRange?: [minHz: number, maxHz: number];
|
|
1295
|
+
readonly amplitudeMultiplier?: number | Signal<number>;
|
|
1296
|
+
readonly damping?: number;
|
|
1297
|
+
}
|
|
1298
|
+
//#endregion
|
|
1299
|
+
//#region src/types/video/base-layer-schema.d.ts
|
|
1300
|
+
declare const AnimationTypeSchema: z.ZodEnum<{
|
|
1301
|
+
"fade-in": "fade-in";
|
|
1302
|
+
"fade-out": "fade-out";
|
|
1303
|
+
"slide-in-left": "slide-in-left";
|
|
1304
|
+
"slide-in-right": "slide-in-right";
|
|
1305
|
+
"slide-in-top": "slide-in-top";
|
|
1306
|
+
"slide-in-bottom": "slide-in-bottom";
|
|
1307
|
+
"zoom-in": "zoom-in";
|
|
1308
|
+
"zoom-out": "zoom-out";
|
|
1309
|
+
"rotate-cw": "rotate-cw";
|
|
1310
|
+
"rotate-ccw": "rotate-ccw";
|
|
1311
|
+
bounce: "bounce";
|
|
1312
|
+
shake: "shake";
|
|
1313
|
+
}>;
|
|
1314
|
+
type AnimationType = z.infer<typeof AnimationTypeSchema>;
|
|
1315
|
+
declare const VideoAnimationSchema: z.ZodObject<{
|
|
1316
|
+
id: z.ZodString;
|
|
1317
|
+
type: z.ZodEnum<{
|
|
1318
|
+
"fade-in": "fade-in";
|
|
1319
|
+
"fade-out": "fade-out";
|
|
1320
|
+
"slide-in-left": "slide-in-left";
|
|
1321
|
+
"slide-in-right": "slide-in-right";
|
|
1322
|
+
"slide-in-top": "slide-in-top";
|
|
1323
|
+
"slide-in-bottom": "slide-in-bottom";
|
|
1324
|
+
"zoom-in": "zoom-in";
|
|
1325
|
+
"zoom-out": "zoom-out";
|
|
1326
|
+
"rotate-cw": "rotate-cw";
|
|
1327
|
+
"rotate-ccw": "rotate-ccw";
|
|
1328
|
+
bounce: "bounce";
|
|
1329
|
+
shake: "shake";
|
|
1330
|
+
}>;
|
|
1331
|
+
value: z.ZodNumber;
|
|
1332
|
+
}, z.core.$strip>;
|
|
1333
|
+
type VideoAnimation = z.infer<typeof VideoAnimationSchema>;
|
|
1334
|
+
declare const VideoSpatialPropsSchema: z.ZodObject<{
|
|
1335
|
+
x: z.ZodDefault<z.ZodNumber>;
|
|
1336
|
+
y: z.ZodDefault<z.ZodNumber>;
|
|
1337
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
1338
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
1339
|
+
rotation: z.ZodDefault<z.ZodNumber>;
|
|
1340
|
+
scale: z.ZodDefault<z.ZodNumber>;
|
|
1341
|
+
opacity: z.ZodDefault<z.ZodNumber>;
|
|
1342
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
1343
|
+
blendMode: z.ZodOptional<z.ZodEnum<{
|
|
1344
|
+
"source-over": "source-over";
|
|
1345
|
+
"source-in": "source-in";
|
|
1346
|
+
"source-out": "source-out";
|
|
1347
|
+
"source-atop": "source-atop";
|
|
1348
|
+
"destination-over": "destination-over";
|
|
1349
|
+
"destination-in": "destination-in";
|
|
1350
|
+
"destination-out": "destination-out";
|
|
1351
|
+
"destination-atop": "destination-atop";
|
|
1352
|
+
lighter: "lighter";
|
|
1353
|
+
copy: "copy";
|
|
1354
|
+
xor: "xor";
|
|
1355
|
+
multiply: "multiply";
|
|
1356
|
+
screen: "screen";
|
|
1357
|
+
overlay: "overlay";
|
|
1358
|
+
darken: "darken";
|
|
1359
|
+
lighten: "lighten";
|
|
1360
|
+
"color-dodge": "color-dodge";
|
|
1361
|
+
"color-burn": "color-burn";
|
|
1362
|
+
"hard-light": "hard-light";
|
|
1363
|
+
"soft-light": "soft-light";
|
|
1364
|
+
difference: "difference";
|
|
1365
|
+
exclusion: "exclusion";
|
|
1366
|
+
hue: "hue";
|
|
1367
|
+
saturation: "saturation";
|
|
1368
|
+
color: "color";
|
|
1369
|
+
luminosity: "luminosity";
|
|
1370
|
+
}>>;
|
|
1371
|
+
}, z.core.$strip>;
|
|
1372
|
+
declare const VideoTimingPropsSchema: z.ZodObject<{
|
|
1373
|
+
startFrame: z.ZodDefault<z.ZodNumber>;
|
|
1374
|
+
durationInMS: z.ZodOptional<z.ZodNumber>;
|
|
1375
|
+
trimStart: z.ZodOptional<z.ZodNumber>;
|
|
1376
|
+
trimEnd: z.ZodOptional<z.ZodNumber>;
|
|
1377
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
1378
|
+
}, z.core.$strip>;
|
|
1379
|
+
declare const VideoTextPropsSchema: z.ZodObject<{
|
|
1380
|
+
text: z.ZodOptional<z.ZodString>;
|
|
1381
|
+
fontSize: z.ZodOptional<z.ZodNumber>;
|
|
1382
|
+
fontFamily: z.ZodOptional<z.ZodString>;
|
|
1383
|
+
fontStyle: z.ZodOptional<z.ZodString>;
|
|
1384
|
+
fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
1385
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
1386
|
+
align: z.ZodOptional<z.ZodString>;
|
|
1387
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
1388
|
+
ltr: "ltr";
|
|
1389
|
+
rtl: "rtl";
|
|
1390
|
+
auto: "auto";
|
|
1391
|
+
}>>;
|
|
1392
|
+
verticalAlign: z.ZodOptional<z.ZodString>;
|
|
1393
|
+
letterSpacing: z.ZodOptional<z.ZodNumber>;
|
|
1394
|
+
lineHeight: z.ZodOptional<z.ZodNumber>;
|
|
1395
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
1396
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
1397
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
1398
|
+
strokeAlign: z.ZodOptional<z.ZodEnum<{
|
|
1399
|
+
inside: "inside";
|
|
1400
|
+
center: "center";
|
|
1401
|
+
outside: "outside";
|
|
1402
|
+
}>>;
|
|
1403
|
+
textShadow: z.ZodOptional<z.ZodString>;
|
|
1404
|
+
textBackgroundColor: z.ZodOptional<z.ZodString>;
|
|
1405
|
+
shadows: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1406
|
+
color: z.ZodString;
|
|
1407
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
1408
|
+
x: z.ZodNumber;
|
|
1409
|
+
y: z.ZodNumber;
|
|
1410
|
+
}, z.core.$strip>>;
|
|
1411
|
+
blurRadius: z.ZodOptional<z.ZodNumber>;
|
|
1412
|
+
}, z.core.$strip>>>;
|
|
1413
|
+
textAnimation: z.ZodOptional<z.ZodAny>;
|
|
1414
|
+
bottomPadding: z.ZodOptional<z.ZodNumber>;
|
|
1415
|
+
maxWidth: z.ZodOptional<z.ZodNumber>;
|
|
1416
|
+
}, z.core.$strip>;
|
|
1417
|
+
declare const VideoStylePropsSchema: z.ZodObject<{
|
|
1418
|
+
backgroundColor: z.ZodOptional<z.ZodString>;
|
|
1419
|
+
borderColor: z.ZodOptional<z.ZodString>;
|
|
1420
|
+
borderWidth: z.ZodOptional<z.ZodNumber>;
|
|
1421
|
+
strokeRadius: z.ZodOptional<z.ZodNumber>;
|
|
1422
|
+
autoDimensions: z.ZodOptional<z.ZodBoolean>;
|
|
1423
|
+
}, z.core.$strip>;
|
|
1424
|
+
declare const VideoLayerTypeSchema: z.ZodEnum<{
|
|
1425
|
+
Text: "Text";
|
|
1426
|
+
Image: "Image";
|
|
1427
|
+
Video: "Video";
|
|
1428
|
+
Audio: "Audio";
|
|
1429
|
+
SVG: "SVG";
|
|
1430
|
+
Caption: "Caption";
|
|
1431
|
+
Lottie: "Lottie";
|
|
1432
|
+
GIF: "GIF";
|
|
1433
|
+
}>;
|
|
1434
|
+
type VideoLayerType = z.infer<typeof VideoLayerTypeSchema>;
|
|
1435
|
+
declare const BaseVideoLayerPropsSchema: z.ZodObject<{
|
|
1436
|
+
x: z.ZodDefault<z.ZodNumber>;
|
|
1437
|
+
y: z.ZodDefault<z.ZodNumber>;
|
|
1438
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
1439
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
1440
|
+
rotation: z.ZodDefault<z.ZodNumber>;
|
|
1441
|
+
scale: z.ZodDefault<z.ZodNumber>;
|
|
1442
|
+
opacity: z.ZodDefault<z.ZodNumber>;
|
|
1443
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
1444
|
+
blendMode: z.ZodOptional<z.ZodEnum<{
|
|
1445
|
+
"source-over": "source-over";
|
|
1446
|
+
"source-in": "source-in";
|
|
1447
|
+
"source-out": "source-out";
|
|
1448
|
+
"source-atop": "source-atop";
|
|
1449
|
+
"destination-over": "destination-over";
|
|
1450
|
+
"destination-in": "destination-in";
|
|
1451
|
+
"destination-out": "destination-out";
|
|
1452
|
+
"destination-atop": "destination-atop";
|
|
1453
|
+
lighter: "lighter";
|
|
1454
|
+
copy: "copy";
|
|
1455
|
+
xor: "xor";
|
|
1456
|
+
multiply: "multiply";
|
|
1457
|
+
screen: "screen";
|
|
1458
|
+
overlay: "overlay";
|
|
1459
|
+
darken: "darken";
|
|
1460
|
+
lighten: "lighten";
|
|
1461
|
+
"color-dodge": "color-dodge";
|
|
1462
|
+
"color-burn": "color-burn";
|
|
1463
|
+
"hard-light": "hard-light";
|
|
1464
|
+
"soft-light": "soft-light";
|
|
1465
|
+
difference: "difference";
|
|
1466
|
+
exclusion: "exclusion";
|
|
1467
|
+
hue: "hue";
|
|
1468
|
+
saturation: "saturation";
|
|
1469
|
+
color: "color";
|
|
1470
|
+
luminosity: "luminosity";
|
|
1471
|
+
}>>;
|
|
1472
|
+
startFrame: z.ZodDefault<z.ZodNumber>;
|
|
1473
|
+
durationInMS: z.ZodOptional<z.ZodNumber>;
|
|
1474
|
+
trimStart: z.ZodOptional<z.ZodNumber>;
|
|
1475
|
+
trimEnd: z.ZodOptional<z.ZodNumber>;
|
|
1476
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
1477
|
+
text: z.ZodOptional<z.ZodString>;
|
|
1478
|
+
fontSize: z.ZodOptional<z.ZodNumber>;
|
|
1479
|
+
fontFamily: z.ZodOptional<z.ZodString>;
|
|
1480
|
+
fontStyle: z.ZodOptional<z.ZodString>;
|
|
1481
|
+
fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
1482
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
1483
|
+
align: z.ZodOptional<z.ZodString>;
|
|
1484
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
1485
|
+
ltr: "ltr";
|
|
1486
|
+
rtl: "rtl";
|
|
1487
|
+
auto: "auto";
|
|
1488
|
+
}>>;
|
|
1489
|
+
verticalAlign: z.ZodOptional<z.ZodString>;
|
|
1490
|
+
letterSpacing: z.ZodOptional<z.ZodNumber>;
|
|
1491
|
+
lineHeight: z.ZodOptional<z.ZodNumber>;
|
|
1492
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
1493
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
1494
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
1495
|
+
strokeAlign: z.ZodOptional<z.ZodEnum<{
|
|
1496
|
+
inside: "inside";
|
|
1497
|
+
center: "center";
|
|
1498
|
+
outside: "outside";
|
|
1499
|
+
}>>;
|
|
1500
|
+
textShadow: z.ZodOptional<z.ZodString>;
|
|
1501
|
+
textBackgroundColor: z.ZodOptional<z.ZodString>;
|
|
1502
|
+
shadows: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1503
|
+
color: z.ZodString;
|
|
1504
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
1505
|
+
x: z.ZodNumber;
|
|
1506
|
+
y: z.ZodNumber;
|
|
1507
|
+
}, z.core.$strip>>;
|
|
1508
|
+
blurRadius: z.ZodOptional<z.ZodNumber>;
|
|
1509
|
+
}, z.core.$strip>>>;
|
|
1510
|
+
textAnimation: z.ZodOptional<z.ZodAny>;
|
|
1511
|
+
bottomPadding: z.ZodOptional<z.ZodNumber>;
|
|
1512
|
+
maxWidth: z.ZodOptional<z.ZodNumber>;
|
|
1513
|
+
backgroundColor: z.ZodOptional<z.ZodString>;
|
|
1514
|
+
borderColor: z.ZodOptional<z.ZodString>;
|
|
1515
|
+
borderWidth: z.ZodOptional<z.ZodNumber>;
|
|
1516
|
+
strokeRadius: z.ZodOptional<z.ZodNumber>;
|
|
1517
|
+
autoDimensions: z.ZodOptional<z.ZodBoolean>;
|
|
1518
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
1519
|
+
Text: "Text";
|
|
1520
|
+
Image: "Image";
|
|
1521
|
+
Video: "Video";
|
|
1522
|
+
Audio: "Audio";
|
|
1523
|
+
SVG: "SVG";
|
|
1524
|
+
Caption: "Caption";
|
|
1525
|
+
Lottie: "Lottie";
|
|
1526
|
+
GIF: "GIF";
|
|
1527
|
+
}>>;
|
|
1528
|
+
animations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1529
|
+
id: z.ZodString;
|
|
1530
|
+
type: z.ZodEnum<{
|
|
1531
|
+
"fade-in": "fade-in";
|
|
1532
|
+
"fade-out": "fade-out";
|
|
1533
|
+
"slide-in-left": "slide-in-left";
|
|
1534
|
+
"slide-in-right": "slide-in-right";
|
|
1535
|
+
"slide-in-top": "slide-in-top";
|
|
1536
|
+
"slide-in-bottom": "slide-in-bottom";
|
|
1537
|
+
"zoom-in": "zoom-in";
|
|
1538
|
+
"zoom-out": "zoom-out";
|
|
1539
|
+
"rotate-cw": "rotate-cw";
|
|
1540
|
+
"rotate-ccw": "rotate-ccw";
|
|
1541
|
+
bounce: "bounce";
|
|
1542
|
+
shake: "shake";
|
|
1543
|
+
}>;
|
|
1544
|
+
value: z.ZodNumber;
|
|
1545
|
+
}, z.core.$strip>>>;
|
|
1546
|
+
}, z.core.$strip>;
|
|
1547
|
+
type BaseVideoLayerProps = z.infer<typeof BaseVideoLayerPropsSchema>;
|
|
1548
|
+
//#endregion
|
|
1549
|
+
//#region src/types/video/layer-schema.d.ts
|
|
1550
|
+
declare const ExtendedLayerSchema: z.ZodObject<{
|
|
1551
|
+
x: z.ZodDefault<z.ZodNumber>;
|
|
1552
|
+
y: z.ZodDefault<z.ZodNumber>;
|
|
1553
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
1554
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
1555
|
+
rotation: z.ZodDefault<z.ZodNumber>;
|
|
1556
|
+
scale: z.ZodDefault<z.ZodNumber>;
|
|
1557
|
+
opacity: z.ZodDefault<z.ZodNumber>;
|
|
1558
|
+
blendMode: z.ZodOptional<z.ZodEnum<{
|
|
1559
|
+
"source-over": "source-over";
|
|
1560
|
+
"source-in": "source-in";
|
|
1561
|
+
"source-out": "source-out";
|
|
1562
|
+
"source-atop": "source-atop";
|
|
1563
|
+
"destination-over": "destination-over";
|
|
1564
|
+
"destination-in": "destination-in";
|
|
1565
|
+
"destination-out": "destination-out";
|
|
1566
|
+
"destination-atop": "destination-atop";
|
|
1567
|
+
lighter: "lighter";
|
|
1568
|
+
copy: "copy";
|
|
1569
|
+
xor: "xor";
|
|
1570
|
+
multiply: "multiply";
|
|
1571
|
+
screen: "screen";
|
|
1572
|
+
overlay: "overlay";
|
|
1573
|
+
darken: "darken";
|
|
1574
|
+
lighten: "lighten";
|
|
1575
|
+
"color-dodge": "color-dodge";
|
|
1576
|
+
"color-burn": "color-burn";
|
|
1577
|
+
"hard-light": "hard-light";
|
|
1578
|
+
"soft-light": "soft-light";
|
|
1579
|
+
difference: "difference";
|
|
1580
|
+
exclusion: "exclusion";
|
|
1581
|
+
hue: "hue";
|
|
1582
|
+
saturation: "saturation";
|
|
1583
|
+
color: "color";
|
|
1584
|
+
luminosity: "luminosity";
|
|
1585
|
+
}>>;
|
|
1586
|
+
startFrame: z.ZodDefault<z.ZodNumber>;
|
|
1587
|
+
trimStart: z.ZodOptional<z.ZodNumber>;
|
|
1588
|
+
trimEnd: z.ZodOptional<z.ZodNumber>;
|
|
1589
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
1590
|
+
text: z.ZodOptional<z.ZodString>;
|
|
1591
|
+
fontSize: z.ZodOptional<z.ZodNumber>;
|
|
1592
|
+
fontFamily: z.ZodOptional<z.ZodString>;
|
|
1593
|
+
fontStyle: z.ZodOptional<z.ZodString>;
|
|
1594
|
+
fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
1595
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
1596
|
+
align: z.ZodOptional<z.ZodString>;
|
|
1597
|
+
direction: z.ZodOptional<z.ZodEnum<{
|
|
1598
|
+
ltr: "ltr";
|
|
1599
|
+
rtl: "rtl";
|
|
1600
|
+
auto: "auto";
|
|
1601
|
+
}>>;
|
|
1602
|
+
verticalAlign: z.ZodOptional<z.ZodString>;
|
|
1603
|
+
letterSpacing: z.ZodOptional<z.ZodNumber>;
|
|
1604
|
+
lineHeight: z.ZodOptional<z.ZodNumber>;
|
|
1605
|
+
padding: z.ZodOptional<z.ZodNumber>;
|
|
1606
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
1607
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
1608
|
+
strokeAlign: z.ZodOptional<z.ZodEnum<{
|
|
1609
|
+
inside: "inside";
|
|
1610
|
+
center: "center";
|
|
1611
|
+
outside: "outside";
|
|
1612
|
+
}>>;
|
|
1613
|
+
textShadow: z.ZodOptional<z.ZodString>;
|
|
1614
|
+
textBackgroundColor: z.ZodOptional<z.ZodString>;
|
|
1615
|
+
shadows: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1616
|
+
color: z.ZodString;
|
|
1617
|
+
offset: z.ZodOptional<z.ZodObject<{
|
|
1618
|
+
x: z.ZodNumber;
|
|
1619
|
+
y: z.ZodNumber;
|
|
1620
|
+
}, z.core.$strip>>;
|
|
1621
|
+
blurRadius: z.ZodOptional<z.ZodNumber>;
|
|
1622
|
+
}, z.core.$strip>>>;
|
|
1623
|
+
textAnimation: z.ZodOptional<z.ZodAny>;
|
|
1624
|
+
bottomPadding: z.ZodOptional<z.ZodNumber>;
|
|
1625
|
+
maxWidth: z.ZodOptional<z.ZodNumber>;
|
|
1626
|
+
backgroundColor: z.ZodOptional<z.ZodString>;
|
|
1627
|
+
borderColor: z.ZodOptional<z.ZodString>;
|
|
1628
|
+
borderWidth: z.ZodOptional<z.ZodNumber>;
|
|
1629
|
+
strokeRadius: z.ZodOptional<z.ZodNumber>;
|
|
1630
|
+
autoDimensions: z.ZodOptional<z.ZodBoolean>;
|
|
1631
|
+
animations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1632
|
+
id: z.ZodString;
|
|
1633
|
+
type: z.ZodEnum<{
|
|
1634
|
+
"fade-in": "fade-in";
|
|
1635
|
+
"fade-out": "fade-out";
|
|
1636
|
+
"slide-in-left": "slide-in-left";
|
|
1637
|
+
"slide-in-right": "slide-in-right";
|
|
1638
|
+
"slide-in-top": "slide-in-top";
|
|
1639
|
+
"slide-in-bottom": "slide-in-bottom";
|
|
1640
|
+
"zoom-in": "zoom-in";
|
|
1641
|
+
"zoom-out": "zoom-out";
|
|
1642
|
+
"rotate-cw": "rotate-cw";
|
|
1643
|
+
"rotate-ccw": "rotate-ccw";
|
|
1644
|
+
bounce: "bounce";
|
|
1645
|
+
shake: "shake";
|
|
1646
|
+
}>;
|
|
1647
|
+
value: z.ZodNumber;
|
|
1648
|
+
}, z.core.$strip>>>;
|
|
1649
|
+
id: z.ZodString;
|
|
1650
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1651
|
+
type: z.ZodEnum<{
|
|
1652
|
+
Text: "Text";
|
|
1653
|
+
Image: "Image";
|
|
1654
|
+
Video: "Video";
|
|
1655
|
+
Audio: "Audio";
|
|
1656
|
+
SVG: "SVG";
|
|
1657
|
+
Caption: "Caption";
|
|
1658
|
+
Lottie: "Lottie";
|
|
1659
|
+
GIF: "GIF";
|
|
1660
|
+
}>;
|
|
1661
|
+
virtualMedia: z.ZodOptional<z.ZodType<VirtualMediaData<MediaOperation>, unknown, z.core.$ZodTypeInternals<VirtualMediaData<MediaOperation>, unknown>>>;
|
|
1662
|
+
transitionIn: z.ZodOptional<z.ZodObject<{
|
|
1663
|
+
type: z.ZodEnum<{
|
|
1664
|
+
none: "none";
|
|
1665
|
+
crossfade: "crossfade";
|
|
1666
|
+
"wipe-left": "wipe-left";
|
|
1667
|
+
"wipe-right": "wipe-right";
|
|
1668
|
+
"slide-up": "slide-up";
|
|
1669
|
+
"slide-down": "slide-down";
|
|
1670
|
+
}>;
|
|
1671
|
+
durationFrames: z.ZodNumber;
|
|
1672
|
+
}, z.core.$strip>>;
|
|
1673
|
+
transitionOut: z.ZodOptional<z.ZodObject<{
|
|
1674
|
+
type: z.ZodEnum<{
|
|
1675
|
+
none: "none";
|
|
1676
|
+
crossfade: "crossfade";
|
|
1677
|
+
"wipe-left": "wipe-left";
|
|
1678
|
+
"wipe-right": "wipe-right";
|
|
1679
|
+
"slide-up": "slide-up";
|
|
1680
|
+
"slide-down": "slide-down";
|
|
1681
|
+
}>;
|
|
1682
|
+
durationFrames: z.ZodNumber;
|
|
1683
|
+
}, z.core.$strip>>;
|
|
1684
|
+
durationInMS: z.ZodNumber;
|
|
1685
|
+
maxDurationInMS: z.ZodOptional<z.ZodNumber>;
|
|
1686
|
+
src: z.ZodOptional<z.ZodString>;
|
|
1687
|
+
volume: z.ZodDefault<z.ZodNumber>;
|
|
1688
|
+
inputHandleId: z.ZodOptional<z.ZodString>;
|
|
1689
|
+
isPlaceholder: z.ZodOptional<z.ZodBoolean>;
|
|
1690
|
+
lockAspect: z.ZodOptional<z.ZodBoolean>;
|
|
1691
|
+
lockRatio: z.ZodOptional<z.ZodBoolean>;
|
|
1692
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
1693
|
+
}, z.core.$strict>;
|
|
1694
|
+
type ExtendedLayer = z.infer<typeof ExtendedLayerSchema>;
|
|
1695
|
+
//#endregion
|
|
1696
|
+
//#region src/types/video/rendering-defaults.d.ts
|
|
1697
|
+
declare const DEFAULT_FPS = 60;
|
|
1698
|
+
declare const DEFAULT_DURATION_MS = 3000;
|
|
1699
|
+
declare const DEFAULT_MEDIA_DIMENSION = 1080;
|
|
1700
|
+
/** Default styling applied to new Text layers. */
|
|
1701
|
+
declare const TEXT_LAYER_DEFAULTS: Partial<ExtendedLayer>;
|
|
1702
|
+
/** Default styling applied to new Caption layers. */
|
|
1703
|
+
declare const CAPTION_LAYER_DEFAULTS: Partial<ExtendedLayer>;
|
|
1704
|
+
//#endregion
|
|
1705
|
+
//#region src/types/video/resolve-media.d.ts
|
|
1706
|
+
type MediaSourceDescriptor = {
|
|
1707
|
+
url?: string;
|
|
1708
|
+
path?: string;
|
|
1709
|
+
width?: number;
|
|
1710
|
+
height?: number;
|
|
1711
|
+
durationMs?: number;
|
|
1712
|
+
fps?: number;
|
|
1713
|
+
mimeType?: string;
|
|
1714
|
+
sampleRate?: number;
|
|
1715
|
+
channels?: number;
|
|
1716
|
+
bitDepth?: number;
|
|
1717
|
+
audioCodec?: string;
|
|
1718
|
+
audioBitrate?: number;
|
|
1719
|
+
entity?: any;
|
|
1720
|
+
};
|
|
1721
|
+
type MediaSourceInput = VirtualMediaData | string | MediaSourceDescriptor | FileData;
|
|
1722
|
+
/**
|
|
1723
|
+
* Identify the actual leaf media type (Video, Image, etc) by walking down the tree.
|
|
1724
|
+
* This can differ from getMediaType() if an operation (like Ken Burns) upgrades
|
|
1725
|
+
* an Image to a Video.
|
|
1726
|
+
*/
|
|
1727
|
+
declare function getLeafMediaType(vv: VirtualMediaData | undefined | null): DataType | undefined;
|
|
1728
|
+
/**
|
|
1729
|
+
* Resolve the MIME type of the leaf source media.
|
|
1730
|
+
*/
|
|
1731
|
+
declare function resolveMediaMimeType(vv: VirtualMediaData | undefined | null): string | undefined;
|
|
1732
|
+
/**
|
|
1733
|
+
* Create a VirtualMediaData from a FileData source or Text.
|
|
1734
|
+
* Used by Import, VideoGen, and Text nodes to wrap concrete content.
|
|
1735
|
+
*/
|
|
1736
|
+
declare function createVirtualMedia(source: MediaSourceInput, type?: DataType): VirtualMediaData;
|
|
1737
|
+
/**
|
|
1738
|
+
* Identify if a VirtualMediaData node is intended to be Video, Audio, Image, or Text.
|
|
1739
|
+
*/
|
|
1740
|
+
declare function getMediaType(vv: VirtualMediaData): DataType;
|
|
1741
|
+
/**
|
|
1742
|
+
* Append an operation to an existing VirtualMediaData (recursive).
|
|
1743
|
+
* This creates a new parent node wrapping the current one as a child.
|
|
1744
|
+
*/
|
|
1745
|
+
declare function appendOperation(vv: VirtualMediaData, operation: MediaOperation): VirtualMediaData;
|
|
1746
|
+
declare function getFileDataMetadata(filedata: {
|
|
1747
|
+
entity?: {
|
|
1748
|
+
width?: number | null;
|
|
1749
|
+
height?: number | null;
|
|
1750
|
+
duration?: number | null;
|
|
1751
|
+
fps?: number | null;
|
|
1752
|
+
mimeType?: string | null;
|
|
1753
|
+
sampleRate?: number | null;
|
|
1754
|
+
channels?: number | null;
|
|
1755
|
+
bitDepth?: number | null;
|
|
1756
|
+
audioCodec?: string | null;
|
|
1757
|
+
audioBitrate?: number | null;
|
|
1758
|
+
name?: string | null;
|
|
1759
|
+
};
|
|
1760
|
+
} | null | undefined): MediaMetadata | null;
|
|
1761
|
+
/**
|
|
1762
|
+
* Get the active metadata from the VirtualMediaData node.
|
|
1763
|
+
* Simply returns the metadata property of the node.
|
|
1764
|
+
* Supports legacy formats (sourceMeta) and extracts from source if needed.
|
|
1765
|
+
*/
|
|
1766
|
+
declare function getActiveMediaMetadata(vv: VirtualMediaData | undefined | null): MediaMetadata | null;
|
|
1767
|
+
/**
|
|
1768
|
+
* Compute the dimensions and offsets for rendering a cropped video.
|
|
1769
|
+
* Traverses the VirtualMediaData tree to find nested crops and source dimensions.
|
|
1770
|
+
*/
|
|
1771
|
+
declare function computeVideoCropRenderProps(virtualMedia: VirtualMediaData): {
|
|
1772
|
+
videoNaturalWidth: number;
|
|
1773
|
+
videoNaturalHeight: number;
|
|
1774
|
+
cropTranslatePercentageX: number;
|
|
1775
|
+
cropTranslatePercentageY: number;
|
|
1776
|
+
} | null;
|
|
1777
|
+
//#endregion
|
|
1778
|
+
//#region src/types/video/transition-schema.d.ts
|
|
1779
|
+
declare const TransitionTypeSchema: z.ZodEnum<{
|
|
1780
|
+
none: "none";
|
|
1781
|
+
crossfade: "crossfade";
|
|
1782
|
+
"wipe-left": "wipe-left";
|
|
1783
|
+
"wipe-right": "wipe-right";
|
|
1784
|
+
"slide-up": "slide-up";
|
|
1785
|
+
"slide-down": "slide-down";
|
|
1786
|
+
}>;
|
|
1787
|
+
declare const TransitionSchema: z.ZodObject<{
|
|
1788
|
+
type: z.ZodEnum<{
|
|
1789
|
+
none: "none";
|
|
1790
|
+
crossfade: "crossfade";
|
|
1791
|
+
"wipe-left": "wipe-left";
|
|
1792
|
+
"wipe-right": "wipe-right";
|
|
1793
|
+
"slide-up": "slide-up";
|
|
1794
|
+
"slide-down": "slide-down";
|
|
1795
|
+
}>;
|
|
1796
|
+
durationFrames: z.ZodNumber;
|
|
1797
|
+
}, z.core.$strip>;
|
|
1798
|
+
type TransitionType = z.infer<typeof TransitionTypeSchema>;
|
|
1799
|
+
//#endregion
|
|
1800
|
+
//#region src/effects/index.d.ts
|
|
1801
|
+
type EffectConfigValue<T> = T | Signal<T> | WritableSignal<T> | FrameSignal<T>;
|
|
1802
|
+
type EffectConfig<T extends object> = { [K in keyof T]: EffectConfigValue<T[K]> };
|
|
1803
|
+
type EffectDomain = "visual" | "audio" | "both";
|
|
1804
|
+
declare abstract class Effect<TConfig extends object = Record<string, unknown>, TOp extends string = string, TDomain extends EffectDomain = "visual"> {
|
|
1805
|
+
abstract readonly op: TOp;
|
|
1806
|
+
readonly domain: TDomain;
|
|
1807
|
+
readonly signals: { [K in keyof TConfig]: WritableSignal<TConfig[K]> | Signal<TConfig[K]> };
|
|
1808
|
+
readonly config: TConfig;
|
|
1809
|
+
private _frameHooks;
|
|
1810
|
+
constructor(initialConfig: TConfig);
|
|
1811
|
+
/**
|
|
1812
|
+
* Game-engine per-frame lifecycle hook.
|
|
1813
|
+
* Invoked before rendering each frame so scripts or agents can mutate properties.
|
|
1814
|
+
*/
|
|
1815
|
+
onRequestFrame(callback: (ctx: FrameContext) => void): this;
|
|
1816
|
+
notifyFrame(ctx: FrameContext): void;
|
|
1817
|
+
/**
|
|
1818
|
+
* Samples concrete scalar / config values for the current frame.
|
|
1819
|
+
*/
|
|
1820
|
+
resolveUniforms(ctx?: FrameContext): Record<string, unknown>;
|
|
1821
|
+
/**
|
|
1822
|
+
* Returns WebGPU texture bindings attached to any property signal.
|
|
1823
|
+
*/
|
|
1824
|
+
resolveTextures(): Record<string, unknown>;
|
|
1825
|
+
/**
|
|
1826
|
+
* Converts the effect into an operation node for the VirtualMediaData AST.
|
|
1827
|
+
*/
|
|
1828
|
+
toOperation(): NodeOperation<TOp, TConfig>;
|
|
1829
|
+
}
|
|
1830
|
+
//#endregion
|
|
1831
|
+
//#region src/errors.d.ts
|
|
1832
|
+
declare class ModerationError extends Error {
|
|
1833
|
+
constructor(message: string);
|
|
1834
|
+
}
|
|
1835
|
+
declare class ModerationUnrefundableError extends Error {
|
|
1836
|
+
constructor(message: string);
|
|
1837
|
+
}
|
|
1838
|
+
//#endregion
|
|
1839
|
+
//#region src/frame-time.d.ts
|
|
1840
|
+
/** Frame windows are half-open: [startFrame, startFrame + durationFrames). */
|
|
1841
|
+
declare function frameCount(durationMs: number, fps: number): number;
|
|
1842
|
+
declare function assertFps(fps: number): void;
|
|
1843
|
+
/** Resolve once, before hooks or rendering. atMs takes precedence over frame. */
|
|
1844
|
+
declare function resolveFrameRequest(request: {
|
|
1845
|
+
frame?: number;
|
|
1846
|
+
atMs?: number;
|
|
1847
|
+
}, fps: number): {
|
|
1848
|
+
frame: number;
|
|
1849
|
+
timeMs: number;
|
|
1850
|
+
};
|
|
1851
|
+
//#endregion
|
|
1852
|
+
//#region src/id-gen.d.ts
|
|
1853
|
+
/**
|
|
1854
|
+
* Generates a unique ID using nanoid.
|
|
1855
|
+
* This function is cross-platform compatible (Node.js and Browser).
|
|
1856
|
+
*
|
|
1857
|
+
* @param size - Optional size of the ID (default is 21)
|
|
1858
|
+
* @returns A unique string ID
|
|
1859
|
+
*/
|
|
1860
|
+
declare const generateId: (size?: number) => string;
|
|
1861
|
+
//#endregion
|
|
1862
|
+
//#region src/media-time-signal.d.ts
|
|
1863
|
+
/** A sampled source-time curve or the integral of a sampled playback rate. */
|
|
1864
|
+
type SampledMediaSignal = {
|
|
1865
|
+
readonly mode: "source-time";
|
|
1866
|
+
readonly values: Float64Array;
|
|
1867
|
+
readonly fps: number;
|
|
1868
|
+
} | {
|
|
1869
|
+
readonly mode: "speed";
|
|
1870
|
+
readonly values: Float64Array;
|
|
1871
|
+
readonly positions: Float64Array;
|
|
1872
|
+
readonly fps: number;
|
|
1873
|
+
};
|
|
1874
|
+
/**
|
|
1875
|
+
* Sample a signal at every composition-frame boundary in layer order.
|
|
1876
|
+
* Values between boundaries are linearly interpolated; speeds are integrated
|
|
1877
|
+
* analytically, so picture and audio can query the same fractional frame.
|
|
1878
|
+
*/
|
|
1879
|
+
declare function sampleMediaSignal(options: {
|
|
1880
|
+
mode: "source-time" | "speed";
|
|
1881
|
+
fps: number;
|
|
1882
|
+
startFrame: number;
|
|
1883
|
+
durationFrames: number;
|
|
1884
|
+
sourceStartSec?: number;
|
|
1885
|
+
sample: (compositionFrame: number) => number;
|
|
1886
|
+
}): SampledMediaSignal;
|
|
1887
|
+
/** Sample an engine signal with its composition clock and full frame context. */
|
|
1888
|
+
declare function sampleFrameMediaSignal(options: {
|
|
1889
|
+
mode: "source-time" | "speed";
|
|
1890
|
+
fps: number;
|
|
1891
|
+
startFrame: number;
|
|
1892
|
+
durationFrames: number;
|
|
1893
|
+
compositionDurationFrames: number;
|
|
1894
|
+
sourceStartSec?: number;
|
|
1895
|
+
signal: Signal<number>;
|
|
1896
|
+
}): SampledMediaSignal;
|
|
1897
|
+
/** The frame context a composition-clock signal sees at a composition frame. */
|
|
1898
|
+
declare function compositionFrameContext(frame: number, fps: number, compositionDurationFrames: number): FrameContext;
|
|
1899
|
+
/** Evaluate at any fractional local frame, independent of query order. */
|
|
1900
|
+
declare function sampledMediaSourceTime(map: SampledMediaSignal, frame: number): number;
|
|
1901
|
+
/** Source-time bounds over a layer interval; `max` is exclusive unless included. */
|
|
1902
|
+
interface MediaSourceRange {
|
|
1903
|
+
min: number;
|
|
1904
|
+
max: number;
|
|
1905
|
+
maxIncluded: boolean;
|
|
1906
|
+
}
|
|
1907
|
+
/** Range includes direction changes inside a speed-signal interval. */
|
|
1908
|
+
declare function sampledMediaSourceRange(map: SampledMediaSignal, from: number, to: number): MediaSourceRange;
|
|
1909
|
+
/**
|
|
1910
|
+
* Records a live signal at each composition-frame boundary, so its history can
|
|
1911
|
+
* be replayed for audio, seeks and vision without evaluating it a second time.
|
|
1912
|
+
* With a sampler, boundaries are evaluated on demand, but never past the
|
|
1913
|
+
* frame the composition has reached ({@link advance}): no look-ahead.
|
|
1914
|
+
*/
|
|
1915
|
+
declare class MediaSignalRecorder {
|
|
1916
|
+
private readonly values;
|
|
1917
|
+
private readonly positions;
|
|
1918
|
+
private recorded;
|
|
1919
|
+
private evaluating;
|
|
1920
|
+
private horizon;
|
|
1921
|
+
private sampler;
|
|
1922
|
+
private check;
|
|
1923
|
+
readonly startFrame: number;
|
|
1924
|
+
readonly durationFrames: number;
|
|
1925
|
+
readonly fps: number;
|
|
1926
|
+
readonly mode: "source-time" | "speed";
|
|
1927
|
+
constructor(options: {
|
|
1928
|
+
mode: "source-time" | "speed";
|
|
1929
|
+
fps: number;
|
|
1930
|
+
startFrame: number;
|
|
1931
|
+
durationFrames: number;
|
|
1932
|
+
sourceStartSec?: number;
|
|
1933
|
+
sample?: (compositionFrame: number) => number;
|
|
1934
|
+
});
|
|
1935
|
+
/** The first composition frame whose boundary is not yet recorded. */
|
|
1936
|
+
get nextFrame(): number;
|
|
1937
|
+
get complete(): boolean;
|
|
1938
|
+
/** Allow on-demand sampling through a composition frame the clock has reached. */
|
|
1939
|
+
advance(frame: number): void;
|
|
1940
|
+
/**
|
|
1941
|
+
* Validate source bounds as history arrives: the recorded part now, each
|
|
1942
|
+
* further interval as it is recorded.
|
|
1943
|
+
*/
|
|
1944
|
+
checkRange(check: (range: MediaSourceRange) => void): void;
|
|
1945
|
+
/** Each boundary is recorded once in composition-frame order. */
|
|
1946
|
+
record(frame: number, value: number): void;
|
|
1947
|
+
/**
|
|
1948
|
+
* Evaluate a boundary once, reporting recursive time dependencies. A
|
|
1949
|
+
* boundary already recorded is kept, and `sample` is not called again.
|
|
1950
|
+
*/
|
|
1951
|
+
recordFrom(frame: number, sample: () => number): void;
|
|
1952
|
+
/** Sample every boundary through `frame` that the clock has reached. */
|
|
1953
|
+
ensure(frame: number): void;
|
|
1954
|
+
/**
|
|
1955
|
+
* Close a layer that outlives the clock: the boundaries past the last
|
|
1956
|
+
* rendered frame hold the last recorded value.
|
|
1957
|
+
*/
|
|
1958
|
+
close(): void;
|
|
1959
|
+
/** The known source position at an already-recorded frame boundary. */
|
|
1960
|
+
at(frame: number): number;
|
|
1961
|
+
/** Read a recorded local frame, including fractional audio sample positions. */
|
|
1962
|
+
sourceTime(localFrame: number): number;
|
|
1963
|
+
/** Read the instantaneous speed for an interval whose endpoints are known. */
|
|
1964
|
+
rate(localFrame: number): number;
|
|
1965
|
+
isHold(localFrame: number): boolean;
|
|
1966
|
+
range(from: number, to: number): MediaSourceRange;
|
|
1967
|
+
/** A self-contained snapshot, available only when every boundary was recorded. */
|
|
1968
|
+
finish(): SampledMediaSignal;
|
|
1969
|
+
private knownInterval;
|
|
1970
|
+
/** Bounds of the interval starting at boundary `i`, its end exclusive. */
|
|
1971
|
+
private interval;
|
|
1972
|
+
private history;
|
|
1973
|
+
}
|
|
1974
|
+
//#endregion
|
|
1975
|
+
//#region src/media-time.d.ts
|
|
1976
|
+
/** Maps layer-local frames to absolute source seconds. */
|
|
1977
|
+
declare const MediaTimeRemapSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1978
|
+
kind: z.ZodLiteral<"rate">;
|
|
1979
|
+
sourceStartSec: z.ZodNumber;
|
|
1980
|
+
rate: z.ZodNumber;
|
|
1981
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
1982
|
+
kind: z.ZodLiteral<"keyframes">;
|
|
1983
|
+
keyframes: z.ZodArray<z.ZodObject<{
|
|
1984
|
+
frame: z.ZodNumber;
|
|
1985
|
+
sourceSec: z.ZodNumber;
|
|
1986
|
+
interpolation: z.ZodOptional<z.ZodEnum<{
|
|
1987
|
+
linear: "linear";
|
|
1988
|
+
"ease-in": "ease-in";
|
|
1989
|
+
"ease-out": "ease-out";
|
|
1990
|
+
smooth: "smooth";
|
|
1991
|
+
}>>;
|
|
1992
|
+
}, z.core.$strict>>;
|
|
1993
|
+
}, z.core.$strict>], "kind">;
|
|
1994
|
+
type MediaTimeRemap = z.infer<typeof MediaTimeRemapSchema>;
|
|
1995
|
+
/**
|
|
1996
|
+
* Drives source time from a signal on the composition clock: `"speed"` is
|
|
1997
|
+
* playback rate (source seconds per second, integrated from `sourceStartSec`),
|
|
1998
|
+
* `"source-time"` is absolute source seconds. `signal` is a signal instance or
|
|
1999
|
+
* the name of a composition signal. The signal is read at every frame
|
|
2000
|
+
* boundary of the layer, after that frame's hooks have run.
|
|
2001
|
+
*/
|
|
2002
|
+
interface MediaTimeSignalRemap {
|
|
2003
|
+
kind: "signal";
|
|
2004
|
+
mode: "speed" | "source-time";
|
|
2005
|
+
signal: Signal<number> | string;
|
|
2006
|
+
sourceStartSec?: number;
|
|
2007
|
+
}
|
|
2008
|
+
declare const MediaTimeSignalRemapSchema: z.ZodObject<{
|
|
2009
|
+
kind: z.ZodLiteral<"signal">;
|
|
2010
|
+
mode: z.ZodEnum<{
|
|
2011
|
+
speed: "speed";
|
|
2012
|
+
"source-time": "source-time";
|
|
2013
|
+
}>;
|
|
2014
|
+
signal: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Signal<number>, Signal<number>>]>;
|
|
2015
|
+
sourceStartSec: z.ZodOptional<z.ZodNumber>;
|
|
2016
|
+
}, z.core.$strict>;
|
|
2017
|
+
/** Every `timeRemap` an author can write: a fixed map or a signal binding. */
|
|
2018
|
+
type MediaTimeRemapInput = MediaTimeRemap | MediaTimeSignalRemap;
|
|
2019
|
+
declare const MediaTimeRemapInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2020
|
+
kind: z.ZodLiteral<"rate">;
|
|
2021
|
+
sourceStartSec: z.ZodNumber;
|
|
2022
|
+
rate: z.ZodNumber;
|
|
2023
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
2024
|
+
kind: z.ZodLiteral<"keyframes">;
|
|
2025
|
+
keyframes: z.ZodArray<z.ZodObject<{
|
|
2026
|
+
frame: z.ZodNumber;
|
|
2027
|
+
sourceSec: z.ZodNumber;
|
|
2028
|
+
interpolation: z.ZodOptional<z.ZodEnum<{
|
|
2029
|
+
linear: "linear";
|
|
2030
|
+
"ease-in": "ease-in";
|
|
2031
|
+
"ease-out": "ease-out";
|
|
2032
|
+
smooth: "smooth";
|
|
2033
|
+
}>>;
|
|
2034
|
+
}, z.core.$strict>>;
|
|
2035
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
2036
|
+
kind: z.ZodLiteral<"signal">;
|
|
2037
|
+
mode: z.ZodEnum<{
|
|
2038
|
+
speed: "speed";
|
|
2039
|
+
"source-time": "source-time";
|
|
2040
|
+
}>;
|
|
2041
|
+
signal: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<Signal<number>, Signal<number>>]>;
|
|
2042
|
+
sourceStartSec: z.ZodOptional<z.ZodNumber>;
|
|
2043
|
+
}, z.core.$strict>], "kind">;
|
|
2044
|
+
/** A per-render signal history resolved by the media timing scheduler. */
|
|
2045
|
+
type ResolvedMediaTimeRemap = MediaTimeRemap | {
|
|
2046
|
+
readonly kind: "sampled";
|
|
2047
|
+
readonly history: SampledMediaSignal;
|
|
2048
|
+
} | {
|
|
2049
|
+
readonly kind: "recorded";
|
|
2050
|
+
readonly recorder: MediaSignalRecorder;
|
|
2051
|
+
};
|
|
2052
|
+
/** Validate the map against its explicit, exclusive layer duration. */
|
|
2053
|
+
declare function validateMediaTimeRemap(map: MediaTimeRemapInput, durationFrames: number): string | undefined;
|
|
2054
|
+
/** Absolute source seconds at a fractional layer-local frame. */
|
|
2055
|
+
declare function mediaSourceTime(map: ResolvedMediaTimeRemap, localFrame: number, fps: number): number;
|
|
2056
|
+
/** True only for a constant source-time interval, not a ramp with zero instantaneous velocity. */
|
|
2057
|
+
declare function mediaSourceIsHold(map: ResolvedMediaTimeRemap, frame: number): boolean;
|
|
2058
|
+
/** Source seconds per output second at a layer-local frame. */
|
|
2059
|
+
declare function mediaSourceRate(map: ResolvedMediaTimeRemap, frame: number, fps: number): number;
|
|
2060
|
+
/** Bounds over a local-frame interval, including intermediate turns. */
|
|
2061
|
+
declare function mediaSourceRange(map: ResolvedMediaTimeRemap, fromFrame: number, toFrame: number, fps: number): MediaSourceRange;
|
|
2062
|
+
//#endregion
|
|
2063
|
+
//#region src/node-metadata.d.ts
|
|
2064
|
+
declare const ConfigHandleSchema: z$1.ZodObject<{
|
|
2065
|
+
configKey: z$1.ZodString;
|
|
2066
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2067
|
+
label: z$1.ZodString;
|
|
2068
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
2069
|
+
}, z$1.z.core.$strip>;
|
|
2070
|
+
type ConfigHandle = z$1.infer<typeof ConfigHandleSchema>;
|
|
2071
|
+
/**
|
|
2072
|
+
* Function type for node config/input validation.
|
|
2073
|
+
*/
|
|
2074
|
+
type NodeValidationFn = (config: any, inputs?: Record<string, any>, handles?: any[]) => Record<string, string> | null;
|
|
2075
|
+
/**
|
|
2076
|
+
* Metadata defining the interface and identity of a node.
|
|
2077
|
+
* This is safe to import in any environment.
|
|
2078
|
+
*/
|
|
2079
|
+
declare const NodeMetadataSchema: z$1.ZodObject<{
|
|
2080
|
+
type: z$1.ZodString;
|
|
2081
|
+
version: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2082
|
+
baseType: z$1.ZodOptional<z$1.ZodString>;
|
|
2083
|
+
displayName: z$1.ZodString;
|
|
2084
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
2085
|
+
showInQuickAccess: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2086
|
+
showInSidebar: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2087
|
+
advanced: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2088
|
+
category: z$1.ZodString;
|
|
2089
|
+
subcategory: z$1.ZodOptional<z$1.ZodString>;
|
|
2090
|
+
defaultDimensions: z$1.ZodOptional<z$1.ZodObject<{
|
|
2091
|
+
width: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2092
|
+
height: z$1.ZodOptional<z$1.ZodNumber>;
|
|
2093
|
+
}, z$1.z.core.$strip>>;
|
|
2094
|
+
handles: z$1.ZodObject<{
|
|
2095
|
+
inputs: z$1.ZodArray<z$1.ZodObject<{
|
|
2096
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2097
|
+
label: z$1.ZodString;
|
|
2098
|
+
required: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2099
|
+
order: z$1.ZodNumber;
|
|
2100
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
2101
|
+
}, z$1.z.core.$strip>>;
|
|
2102
|
+
outputs: z$1.ZodArray<z$1.ZodObject<{
|
|
2103
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2104
|
+
label: z$1.ZodString;
|
|
2105
|
+
required: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2106
|
+
order: z$1.ZodNumber;
|
|
2107
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
2108
|
+
}, z$1.z.core.$strip>>;
|
|
2109
|
+
}, z$1.z.core.$strip>;
|
|
2110
|
+
variableInputs: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
2111
|
+
enabled: z$1.ZodLiteral<true>;
|
|
2112
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2113
|
+
}, z$1.z.core.$strip>, z$1.ZodObject<{
|
|
2114
|
+
enabled: z$1.ZodLiteral<false>;
|
|
2115
|
+
dataTypes: z$1.ZodOptional<z$1.ZodCustom<DataType[], DataType[]>>;
|
|
2116
|
+
}, z$1.z.core.$strip>], "enabled">>;
|
|
2117
|
+
variableOutputs: z$1.ZodOptional<z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
|
|
2118
|
+
enabled: z$1.ZodLiteral<true>;
|
|
2119
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2120
|
+
}, z$1.z.core.$strip>, z$1.ZodObject<{
|
|
2121
|
+
enabled: z$1.ZodLiteral<false>;
|
|
2122
|
+
dataTypes: z$1.ZodOptional<z$1.ZodCustom<DataType[], DataType[]>>;
|
|
2123
|
+
}, z$1.z.core.$strip>], "enabled">>;
|
|
2124
|
+
isTerminal: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2125
|
+
isTransient: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
2126
|
+
configSchema: z$1.ZodOptional<z$1.ZodCustom<z$1.ZodType<unknown, unknown, z$1.z.core.$ZodTypeInternals<unknown, unknown>>, z$1.ZodType<unknown, unknown, z$1.z.core.$ZodTypeInternals<unknown, unknown>>>>;
|
|
2127
|
+
defaultConfig: z$1.ZodOptional<z$1.ZodRecord<z$1.ZodString, z$1.ZodUnknown>>;
|
|
2128
|
+
validation: z$1.ZodOptional<z$1.ZodAny>;
|
|
2129
|
+
resultSchema: z$1.ZodOptional<z$1.ZodCustom<z$1.ZodType<unknown, unknown, z$1.z.core.$ZodTypeInternals<unknown, unknown>>, z$1.ZodType<unknown, unknown, z$1.z.core.$ZodTypeInternals<unknown, unknown>>>>;
|
|
2130
|
+
configHandles: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
|
|
2131
|
+
configKey: z$1.ZodString;
|
|
2132
|
+
dataTypes: z$1.ZodCustom<DataType[], DataType[]>;
|
|
2133
|
+
label: z$1.ZodString;
|
|
2134
|
+
description: z$1.ZodOptional<z$1.ZodString>;
|
|
2135
|
+
}, z$1.z.core.$strip>>>;
|
|
2136
|
+
}, z$1.z.core.$strip>;
|
|
2137
|
+
type NodeMetadata = Omit<z$1.infer<typeof NodeMetadataSchema>, "validation"> & {
|
|
2138
|
+
validation?: NodeValidationFn;
|
|
2139
|
+
};
|
|
2140
|
+
//#endregion
|
|
2141
|
+
//#region src/render-diagnostics.d.ts
|
|
2142
|
+
/**
|
|
2143
|
+
* Problems a render noticed about its document (as opposed to its output),
|
|
2144
|
+
* collected per render id so the renderer can put them in its QA report.
|
|
2145
|
+
* Producers report; the renderer takes them when the render ends.
|
|
2146
|
+
*/
|
|
2147
|
+
interface RenderDiagnostic {
|
|
2148
|
+
readonly severity: "error" | "warning" | "info";
|
|
2149
|
+
/** Stable machine-readable kind, e.g. "animation_truncated" */
|
|
2150
|
+
readonly code: string;
|
|
2151
|
+
readonly message: string;
|
|
2152
|
+
readonly layerId?: string;
|
|
2153
|
+
}
|
|
2154
|
+
/** Record a diagnostic for a render; repeats (same code, layer and message) are kept once. */
|
|
2155
|
+
declare function reportRenderDiagnostic(renderId: string, diagnostic: RenderDiagnostic): void;
|
|
2156
|
+
/**
|
|
2157
|
+
* Everything reported for a render, including its nested compositions (they
|
|
2158
|
+
* render under derived ids, `${renderId}-…`), removing it from the store.
|
|
2159
|
+
*/
|
|
2160
|
+
declare function takeRenderDiagnostics(renderId: string): RenderDiagnostic[];
|
|
2161
|
+
//#endregion
|
|
2162
|
+
//#region src/utils/assert.d.ts
|
|
2163
|
+
/**
|
|
2164
|
+
* Compile-time exhaustiveness check helper for discriminated unions and enums.
|
|
2165
|
+
*
|
|
2166
|
+
* In switch statements or if-else ladders, passing the unhandled variable to
|
|
2167
|
+
* `assertNever(x)` will fail TypeScript compilation if any variant was missed.
|
|
2168
|
+
* At runtime, if an unexpected value arrives (e.g. from unvalidated JSON), it throws
|
|
2169
|
+
* a descriptive Error.
|
|
2170
|
+
*/
|
|
2171
|
+
declare function assertNever(value: never, message?: string): never;
|
|
2172
|
+
//#endregion
|
|
2173
|
+
//#region src/utils/color.d.ts
|
|
2174
|
+
/**
|
|
2175
|
+
* CSS color parsing, perceptual mixing and authoring helpers, shared by the
|
|
2176
|
+
* schema evaluator (color tracks), the GPU renderers (fills) and the public
|
|
2177
|
+
* `Color` helper. Pure and dependency-free.
|
|
2178
|
+
*
|
|
2179
|
+
* Every helper returns a CSS string any color prop accepts: `#rrggbb`, or
|
|
2180
|
+
* `#rrggbbaa` when not fully opaque.
|
|
2181
|
+
*/
|
|
2182
|
+
/** Straight (non-premultiplied) sRGB, each channel 0..1. */
|
|
2183
|
+
type Rgba = [r: number, g: number, b: number, a: number];
|
|
2184
|
+
/** sRGB (0..1) → OKLab [L, a, b]. */
|
|
2185
|
+
declare function rgbToOklab(r: number, g: number, b: number): [number, number, number];
|
|
2186
|
+
/** OKLab → sRGB (0..1, clamped to gamut). */
|
|
2187
|
+
declare function oklabToRgb(L: number, a: number, b: number): [number, number, number];
|
|
2188
|
+
/**
|
|
2189
|
+
* Parses any CSS color this engine accepts: hex (3/4/6/8), `rgb()`/`rgba()`,
|
|
2190
|
+
* `hsl()`/`hsla()`, `oklch()`, `oklab()` (comma or space syntax, `/ alpha`)
|
|
2191
|
+
* and common named colors. Returns `null` when the string is not a color.
|
|
2192
|
+
*/
|
|
2193
|
+
declare function parseCssColor(input: string): Rgba | null;
|
|
2194
|
+
/** Formats straight sRGB as `#rrggbb` (or `#rrggbbaa` when translucent). */
|
|
2195
|
+
declare function formatHex([r, g, b, a]: Rgba): string;
|
|
2196
|
+
/**
|
|
2197
|
+
* Mixes two colors perceptually (in OKLab), `t` = 0 → `a`, 1 → `b`.
|
|
2198
|
+
* Midpoints keep their lightness and saturation instead of going muddy
|
|
2199
|
+
* the way a plain sRGB lerp does.
|
|
2200
|
+
*/
|
|
2201
|
+
declare function mixColors(a: string, b: string, t: number): string;
|
|
2202
|
+
interface ColorStopLike {
|
|
2203
|
+
offset: number;
|
|
2204
|
+
color: string;
|
|
2205
|
+
}
|
|
2206
|
+
/** Samples a multi-stop gradient (stops in any order) at `t` ∈ [0, 1]. */
|
|
2207
|
+
declare function sampleColorStops(stops: readonly (string | ColorStopLike)[], t: number): string;
|
|
2208
|
+
/** Bare color strings become evenly spaced stops; result is sorted by offset. */
|
|
2209
|
+
declare function normalizeColorStops(stops: readonly (string | ColorStopLike)[]): ColorStopLike[];
|
|
2210
|
+
/**
|
|
2211
|
+
* Authoring helpers for colors. Every function returns a hex string, so the
|
|
2212
|
+
* result drops straight into any color prop or keyframe.
|
|
2213
|
+
*
|
|
2214
|
+
* ```ts
|
|
2215
|
+
* Color.oklch(0.7, 0.15, 250) // perceptual: equal L reads equally bright
|
|
2216
|
+
* Color.hsl(212, 0.95, 0.74)
|
|
2217
|
+
* Color.mix("#ff5a1f", "#1f6bff", 0.5) // OKLab, no muddy midpoint
|
|
2218
|
+
* const wave = Color.ramp(["#3b82f6", "#8b5cf6", "#ec4899"]);
|
|
2219
|
+
* wave(0.5) // sample a gradient
|
|
2220
|
+
* Color.lighten("#ff5a1f", 0.1), Color.alpha("#000", 0.4)
|
|
2221
|
+
* ```
|
|
2222
|
+
*/
|
|
2223
|
+
declare const Color: {
|
|
2224
|
+
/** Parses any supported CSS color to straight sRGB 0..1, or null. */
|
|
2225
|
+
readonly parse: typeof parseCssColor;
|
|
2226
|
+
/** Normalizes any supported CSS color to hex. */
|
|
2227
|
+
readonly hex: (c: string) => string;
|
|
2228
|
+
/** `r, g, b` in 0..255, `a` in 0..1. */
|
|
2229
|
+
readonly rgb: (r: number, g: number, b: number, a?: number) => string;
|
|
2230
|
+
/** Hue in degrees; saturation and lightness in 0..1. */
|
|
2231
|
+
readonly hsl: (h: number, s: number, l: number, a?: number) => string;
|
|
2232
|
+
/**
|
|
2233
|
+
* Perceptual lightness 0..1, chroma ~0..0.37, hue in degrees. Colors with
|
|
2234
|
+
* the same `l` look equally bright, which makes balanced palettes easy.
|
|
2235
|
+
*/
|
|
2236
|
+
readonly oklch: (l: number, c: number, h: number, a?: number) => string;
|
|
2237
|
+
/** Perceptual (OKLab) mix; `t` = 0 → `a`, 1 → `b`. */
|
|
2238
|
+
readonly mix: typeof mixColors;
|
|
2239
|
+
/** A gradient sampler: `Color.ramp(["#f00", "#00f"])(0.25)`. */
|
|
2240
|
+
readonly ramp: (stops: readonly (string | ColorStopLike)[]) => (t: number) => string;
|
|
2241
|
+
/** `n` evenly spaced swatches along a gradient. */
|
|
2242
|
+
readonly steps: (stops: readonly (string | ColorStopLike)[], n: number) => string[];
|
|
2243
|
+
/** Raises perceptual lightness by `amount` (0..1). */
|
|
2244
|
+
readonly lighten: (c: string, amount: number) => string;
|
|
2245
|
+
readonly darken: (c: string, amount: number) => string;
|
|
2246
|
+
/** Scales chroma: 0 = grey, 1 = unchanged, >1 = more vivid. */
|
|
2247
|
+
readonly saturate: (c: string, factor: number) => string;
|
|
2248
|
+
/** Rotates hue by `degrees`, keeping perceptual lightness. */
|
|
2249
|
+
readonly rotate: (c: string, degrees: number) => string;
|
|
2250
|
+
/** Replaces alpha. */
|
|
2251
|
+
readonly alpha: (c: string, a: number) => string;
|
|
2252
|
+
/** WCAG relative-luminance contrast ratio (1..21). ≥ 4.5 for body text. */
|
|
2253
|
+
readonly contrast: (a: string, b: string) => number;
|
|
2254
|
+
/** Black or white, whichever reads better on `background`. */
|
|
2255
|
+
readonly readableOn: (background: string) => string;
|
|
2256
|
+
};
|
|
2257
|
+
//#endregion
|
|
2258
|
+
//#region src/utils/emoji.d.ts
|
|
2259
|
+
/**
|
|
2260
|
+
* How a grapheme presents, after Unicode's emoji presentation rules
|
|
2261
|
+
* (UTS #51): as a color emoji, as text, or as text when the text font has
|
|
2262
|
+
* the glyph. Layout and the emoji preload use it, and so does the
|
|
2263
|
+
* `missing_emoji_font` lint, so they agree on which characters need the
|
|
2264
|
+
* color emoji font.
|
|
2265
|
+
*/
|
|
2266
|
+
/**
|
|
2267
|
+
* `"emoji"`: draw from the color emoji font. `"text"`: draw from the text
|
|
2268
|
+
* font (✓ ★ ❯, letters). `"either"`: a pictograph that defaults to text
|
|
2269
|
+
* (❤ ✈ ☀ © ™ without VS16), drawn from the text font when it has the glyph
|
|
2270
|
+
* and from the emoji font when it doesn't, as browsers fall back.
|
|
2271
|
+
*/
|
|
2272
|
+
type EmojiPresentation = "emoji" | "text" | "either";
|
|
2273
|
+
declare function emojiPresentation(grapheme: string): EmojiPresentation;
|
|
2274
|
+
//#endregion
|
|
2275
|
+
//#region src/utils/gradient.d.ts
|
|
2276
|
+
type GradientType = "linear" | "radial" | "conic";
|
|
2277
|
+
interface ParsedGradientStop {
|
|
2278
|
+
/** 0..1 along the gradient line / radius / turn. */
|
|
2279
|
+
offset: number;
|
|
2280
|
+
/** Straight sRGB 0..1. */
|
|
2281
|
+
color: Rgba;
|
|
2282
|
+
}
|
|
2283
|
+
type RadialExtent = "closest-side" | "closest-corner" | "farthest-side" | "farthest-corner";
|
|
2284
|
+
interface ParsedGradient {
|
|
2285
|
+
type: GradientType;
|
|
2286
|
+
/** Linear: CSS angle in degrees (0 = to top, 90 = to right, 180 = to bottom). */
|
|
2287
|
+
angle: number;
|
|
2288
|
+
/** Radial / conic center as a fraction of the box (0.5, 0.5 = middle). */
|
|
2289
|
+
center: [number, number];
|
|
2290
|
+
/** Radial: circle or ellipse, sized by `extent` unless `radius` gives px radii. */
|
|
2291
|
+
shape: "circle" | "ellipse";
|
|
2292
|
+
radius?: [number, number];
|
|
2293
|
+
/** Radial size keyword (CSS): where the last stop lands. Default farthest-corner. */
|
|
2294
|
+
extent?: RadialExtent;
|
|
2295
|
+
/** Conic: start angle in degrees (0 = top, clockwise). */
|
|
2296
|
+
from: number;
|
|
2297
|
+
stops: ParsedGradientStop[];
|
|
2298
|
+
}
|
|
2299
|
+
/** Gradients this renderer draws at most this many stops (extra ones are resampled). */
|
|
2300
|
+
declare const MAX_GRADIENT_STOPS = 8;
|
|
2301
|
+
declare function isCssGradient(value: unknown): value is string;
|
|
2302
|
+
/** Parses a CSS gradient string; `null` when it is not one this engine draws. */
|
|
2303
|
+
declare function parseCssGradient(input: string): ParsedGradient | null;
|
|
2304
|
+
/** Up to MAX_GRADIENT_STOPS stops: longer lists are resampled evenly. */
|
|
2305
|
+
declare function limitGradientStops(stops: ParsedGradientStop[]): ParsedGradientStop[];
|
|
2306
|
+
/**
|
|
2307
|
+
* Stops as OKLab + alpha for the GPU. A transparent stop borrows its
|
|
2308
|
+
* neighbor's color, so fading to `transparent` keeps the hue instead of
|
|
2309
|
+
* passing through grey (CSS premultiplied interpolation does the same).
|
|
2310
|
+
*/
|
|
2311
|
+
declare function gradientStopsToOklab(stops: ParsedGradientStop[]): Array<[number, number, number, number]>;
|
|
2312
|
+
type StopInput = string | {
|
|
2313
|
+
color: string;
|
|
2314
|
+
offset: number;
|
|
2315
|
+
};
|
|
2316
|
+
/**
|
|
2317
|
+
* Writes CSS gradient strings for `background` / `fill`:
|
|
2318
|
+
*
|
|
2319
|
+
* ```ts
|
|
2320
|
+
* Layer.box({ background: Gradient.linear(["#ff5a1f", "#7c3aed"], 135) })
|
|
2321
|
+
* Layer.shape("circle", { fill: Gradient.radial(["#fff", "transparent"]) })
|
|
2322
|
+
* Gradient.conic(["red", "yellow", "lime", "aqua", "blue", "magenta", "red"])
|
|
2323
|
+
* ```
|
|
2324
|
+
* Plain strings work too: `"linear-gradient(to right, #000, #fff 80%)"`.
|
|
2325
|
+
*/
|
|
2326
|
+
declare const Gradient: {
|
|
2327
|
+
/** `angle` in degrees: 0 = bottom→top, 90 = left→right, 180 = top→bottom (default). */
|
|
2328
|
+
readonly linear: (stops: readonly StopInput[], angle?: number) => string;
|
|
2329
|
+
/** Ellipse to the farthest corner, centered unless `at` ([0..1, 0..1]) says otherwise. */
|
|
2330
|
+
readonly radial: (stops: readonly StopInput[], options?: {
|
|
2331
|
+
at?: [number, number];
|
|
2332
|
+
circle?: boolean;
|
|
2333
|
+
radius?: number;
|
|
2334
|
+
}) => string;
|
|
2335
|
+
/** A sweep around `at`, starting at `from` degrees (0 = top, clockwise). */
|
|
2336
|
+
readonly conic: (stops: readonly StopInput[], options?: {
|
|
2337
|
+
from?: number;
|
|
2338
|
+
at?: [number, number];
|
|
2339
|
+
}) => string;
|
|
2340
|
+
readonly parse: typeof parseCssGradient;
|
|
2341
|
+
readonly is: typeof isCssGradient;
|
|
2342
|
+
};
|
|
2343
|
+
//#endregion
|
|
2344
|
+
//#region src/utils/is-equal.d.ts
|
|
2345
|
+
/**
|
|
2346
|
+
* Performs a deep comparison between two values to determine if they are equivalent.
|
|
2347
|
+
* Handles primitives, objects, arrays, Dates, and NaNs.
|
|
2348
|
+
*/
|
|
2349
|
+
declare function isEqual(a: any, b: any): boolean;
|
|
2350
|
+
//#endregion
|
|
2351
|
+
//#region src/utils/result-cache.d.ts
|
|
2352
|
+
/**
|
|
2353
|
+
* Checks if a cached node result can be reused based on source fingerprint.
|
|
2354
|
+
* Returns the valid cached result, or null if the cache is stale.
|
|
2355
|
+
*/
|
|
2356
|
+
declare function checkNodeResultCache<T extends {
|
|
2357
|
+
sourceFingerprint?: string;
|
|
2358
|
+
}>(currentResult: T | undefined | null, input: unknown): T | null;
|
|
2359
|
+
/**
|
|
2360
|
+
* Creates a fresh result with a source fingerprint stamp.
|
|
2361
|
+
*/
|
|
2362
|
+
declare function stampResult<T>(result: T, input: unknown): T & {
|
|
2363
|
+
sourceFingerprint: string;
|
|
2364
|
+
};
|
|
2365
|
+
//#endregion
|
|
2366
|
+
//#region src/utils/svg.d.ts
|
|
2367
|
+
/**
|
|
2368
|
+
* Attempts to parse the width and height of an SVG from its buffer.
|
|
2369
|
+
* Falls back to viewBox ratios if explicitly defined sizes are missing.
|
|
2370
|
+
*/
|
|
2371
|
+
declare function extractSvgDimensions(buffer: Buffer): {
|
|
2372
|
+
w: number;
|
|
2373
|
+
h: number;
|
|
2374
|
+
} | null;
|
|
2375
|
+
//#endregion
|
|
2376
|
+
//#region src/utils/virtual-media.d.ts
|
|
2377
|
+
/**
|
|
2378
|
+
* Generates a fingerprint for the given data.
|
|
2379
|
+
*/
|
|
2380
|
+
declare function getFingerprint(data: unknown): string;
|
|
2381
|
+
/**
|
|
2382
|
+
* Generates a version-aware fingerprint for render caching.
|
|
2383
|
+
* Includes app version so cached renders are invalidated on version bumps.
|
|
2384
|
+
*/
|
|
2385
|
+
declare function getRenderFingerprint(data: unknown, appVersion: string, extra?: Record<string, unknown>): string;
|
|
2386
|
+
/**
|
|
2387
|
+
* Checks if data is VirtualMediaData.
|
|
2388
|
+
*/
|
|
2389
|
+
declare function isVirtualMediaData(data: any): data is VirtualMediaData;
|
|
2390
|
+
/**
|
|
2391
|
+
* Checks if the virtual media is just a raw source without any significant operations
|
|
2392
|
+
* that would require a rendering step (like transformations, trimming, or effects).
|
|
2393
|
+
*/
|
|
2394
|
+
declare function hasOnlySingleSource(data: any): boolean;
|
|
2395
|
+
/**
|
|
2396
|
+
* Finds the source asset in a virtual media tree.
|
|
2397
|
+
*/
|
|
2398
|
+
declare function findSourceAsset(vm: VirtualMediaData): FileData | null;
|
|
2399
|
+
//#endregion
|
|
2400
|
+
//#endregion
|
|
2401
|
+
export { FrameSignal as $, TransitionSchema as $n, isFrameIndex as $r, NormalRelightingOptions as $t, DataTypeVal as A, sampleColorStops as Ai, SignalMathData as An, deserializeSignalData as Ar, MediaTimeRemapInputSchema as At, EmojiPresentation as B, stampResult as Bi, TEXT_LAYER_DEFAULTS as Bn, generateId as Br, NodeId as Bt, DATA_TYPE_EXTENSIONS as C, resolveBoolean as Ci, SignalChannelMeta as Cn, computeVideoCropRenderProps as Cr, MediaSignalRecorder as Ct, DataForType as D, resolveParam as Di, SignalDataSchema as Dn, createVirtualMedia as Dr, MediaSourceSchema as Dt, DEFAULT_MEDIA_DIMENSION as E, resolveNumber as Ei, SignalData as En, createOutputItemSchema as Er, MediaSourceRange as Et, DetectedObject as F, seconds as Fi, SineSignalOptions as Fn, fps as Fr, Milliseconds as Ft, FaceLandmarksOptions as G, TensorPipelineConfig as Gn, getMediaType as Gr, NodeProcessorContext as Gt, ExportResultSchema as H, timeSignal as Hi, TensorDimensions as Hn, getFileDataMetadata as Hr, NodeMetadata as Ht, Effect as I, serializeSignalData as Ii, SingleOutputGeneric as In, frame as Ir, ModerationError as It, FileData as J, TextSpanMark as Jn, handleId as Jr, NodeResultSchema as Jt, FileAsset as K, TextOperationSchema as Kn, getRenderFingerprint as Kr, NodeProcessorParams as Kt, EffectConfig as L, signal as Li, SingleOutputGenericSchema as Ln, frameArraySignal as Lr, ModerationUnrefundableError as Lt, DeflickerOptions as M, sampleMediaSignal as Mi, SignalStats as Mn, extractSvgDimensions as Mr, MediaTimeSignalRemap as Mt, Degrees as N, sampledMediaSourceRange as Ni, SignalStatsSchema as Nn, findSourceAsset as Nr, MediaTimeSignalRemapSchema as Nt, DataType as O, resolveString as Oi, SignalGateData as On, dataTypeColors as Or, MediaTimeRemap as Ot, DepthNormalsOptions as P, sampledMediaSourceTime as Pi, SignalValue as Pn, formatHex as Pr, MeshAudioDeformConfig as Pt, FrameIndex as Q, TrackedObject as Qn, isEqual as Qr, NodeVisualConfigSchema as Qt, EffectConfigValue as R, signalBuilder as Ri, SourceOperationSchema as Rn, frameCount as Rr, MultiOutputGeneric as Rt, ControlNetConditioningOutputs as S, reportRenderDiagnostic as Si, SignalBuilderConfig as Sn, compositionFrameContext as Sr, MediaService as St, DEFAULT_FPS as T, resolveMediaMimeType as Ti, SignalContext as Tn, cosineSignal as Tr, MediaSourceInput as Tt, ExtendedLayer as U, updateClockSignals as Ui, TensorFormat as Un, getFingerprint as Ur, NodeMetadataSchema as Ut, ExportResult as V, takeRenderDiagnostics as Vi, TensorData as Vn, getActiveMediaMetadata as Vr, NodeInputConnection as Vt, ExtendedLayerSchema as W, validateMediaTimeRemap as Wi, TensorNode as Wn, getLeafMediaType as Wr, NodeOperation as Wt, Fps as X, TimelineTransform as Xn, hasOnlySingleSource as Xr, NodeValidationFn as Xt, FileDataSchema as Y, TimelineSegmentSchema as Yn, handleLabel as Yr, NodeRunFunction as Yt, FrameContext as Z, TimelineTransformSchema as Zn, isCssGradient as Zr, NodeVisualConfig as Zt, ColorStopLike as _, pixels as _i, Rgba as _n, XYPosition as _r, MIME_TYPES as _t, AudioExtractorSignalData as a, mediaSourceIsHold as ai, OutputItem as an, VideoLayerTypeSchema as ar, Gradient as at, ConfigSchemaRegistry as b, radians as bi, SegmentationOptions as bn, assertNever as br, MediaOperation as bt, BaseMediaOperationPropsSchema as c, mediaSourceTime as ci, ParsedGradientStop as cn, VideoTextPropsSchema as cr, HandleLabel as ct, Brand as d, nodeId as di, ProgrammaticSignal as dn, VirtualMediaDataSchema as dr, JsonArray as dt, isNormalized as ei, Normalized as en, TransitionType as er, GPUTextureBinding as et, CAPTION_LAYER_DEFAULTS as f, normalizeColorStops as fi, ProgrammaticSignalOptions as fn, VisionConfig as fr, JsonObject as ft, Color as g, parseCssGradient as gi, ResolvedMediaTimeRemap as gn, WritableSignal as gr, MAX_GRADIENT_STOPS as gt, CannyOptions as h, parseCssColor as hi, RenderDiagnostic as hn, VisionVariant as hr, Landmark3D as ht, AnyOutputUnionSchema as i, limitGradientStops as ii, Output as in, VideoLayerType as ir, GlobalCompositeOperation as it, DataTypes as j, sampleFrameMediaSignal as ji, SignalMathDataSchema as jn, emojiPresentation as jr, MediaTimeRemapSchema as jt, DataTypeEnum as k, rgbToOklab as ki, SignalGateDataSchema as kn, degrees as kr, MediaTimeRemapInput as kt, BaseVideoLayerProps as l, mixColors as li, Pixels as ln, VideoTimingPropsSchema as lr, HandleType as lt, COMPOSITOR_DEFAULTS as m, oklabToRgb as mi, Radians as mn, VisionTask as mr, JsonValueSchema as mt, AnimationTypeSchema as n, isValueSignal as ni, ObjectBoundingBox as nn, VideoAnimation as nr, GeneratorSignalData as nt, AudioExtractorSignalDataSchema as o, mediaSourceRange as oi, OutputItemSchema as on, VideoSpatialPropsSchema as or, GradientType as ot, COMPOSITE_OPERATIONS as p, normalized as pi, RadialExtent as pn, VisionNodeSpec as pr, JsonValue as pt, FileAssetSchema as q, TextSpan as qn, gradientStopsToOklab as qr, NodeResult as qt, AnyOutputUnion as r, isVirtualMediaData as ri, OpticalFlowOptions as rn, VideoAnimationSchema as rr, GeneratorSignalDataSchema as rt, BaseMediaOperationProps as s, mediaSourceRate as si, ParsedGradient as sn, VideoStylePropsSchema as sr, HandleId as st, AnimationType as t, isSignal as ti, NormalizedLandmarkList as tn, TransitionTypeSchema as tr, GateSignalOptions as tt, BaseVideoLayerPropsSchema as u, ms as ui, PoseSkeletonOptions as un, VirtualMediaData as ur, HandleTypeVal as ut, ConfigHandle as v, programmaticSignal as vi, SampledMediaSignal as vn, appendOperation as vr, MediaMetadata as vt, DEFAULT_DURATION_MS as w, resolveFrameRequest as wi, SignalChannelMetaSchema as wn, computed as wr, MediaSourceDescriptor as wt, ConnectedInput as x, registerSignalDependency as xi, Signal as xn, checkNodeResultCache as xr, MediaOperationSchema as xt, ConfigHandleSchema as y, progressSignal as yi, Seconds as yn, assertFps as yr, MediaMetadataSchema as yt, EffectDomain as z, sineSignal as zi, StorageService as zn, frameSignal as zr, MultiOutputGenericSchema as zt };
|
|
2402
|
+
//# sourceMappingURL=index-9_4X2ro1.d.mts.map
|