framefields 2.0.9 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -6
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-BxA0sL9z.d.mts → audio-BHanw8Jb.d.mts} +3 -3
- package/dist/{audio-BxA0sL9z.d.mts.map → audio-BHanw8Jb.d.mts.map} +1 -1
- package/dist/{audio-Dev4NGPa.mjs → audio-COOMNwL5.mjs} +4 -4
- package/dist/{audio-Dev4NGPa.mjs.map → audio-COOMNwL5.mjs.map} +1 -1
- package/dist/{dist-CoSg-CWr.mjs → dist-BAVZdFEJ.mjs} +3 -3
- package/dist/{dist-CoSg-CWr.mjs.map → dist-BAVZdFEJ.mjs.map} +1 -1
- package/dist/{dist-DzUJmIHt.mjs → dist-BYqNNwsl.mjs} +2 -2
- package/dist/{dist-DzUJmIHt.mjs.map → dist-BYqNNwsl.mjs.map} +1 -1
- package/dist/{dist-B9Afsv83.mjs → dist-CbG3QxDw.mjs} +651 -2
- package/dist/dist-CbG3QxDw.mjs.map +1 -0
- package/dist/{dist-DgfykO99.mjs → dist-Cxi68OuY.mjs} +5347 -3286
- package/dist/dist-Cxi68OuY.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +25 -25
- package/dist/{effects-hxRwxjyC.mjs → effects-DzbjFhyA.mjs} +3 -3
- package/dist/{effects-hxRwxjyC.mjs.map → effects-DzbjFhyA.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +2 -2
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-BznIea-I.mjs → fonts-C0W6TgJk.mjs} +52 -5
- package/dist/fonts-C0W6TgJk.mjs.map +1 -0
- package/dist/{index-J9CIK_nu.d.mts → index-9B8CJowc.d.mts} +2 -2
- package/dist/{index-J9CIK_nu.d.mts.map → index-9B8CJowc.d.mts.map} +1 -1
- package/dist/{index-CvDVpaKn.d.mts → index-CDoTrMs1.d.mts} +4 -4
- package/dist/{index-CvDVpaKn.d.mts.map → index-CDoTrMs1.d.mts.map} +1 -1
- package/dist/{index-BXNNJVs8.d.mts → index-CYGpSVsf.d.mts} +2 -2
- package/dist/{index-BXNNJVs8.d.mts.map → index-CYGpSVsf.d.mts.map} +1 -1
- package/dist/{index-D1zaOwEU.d.mts → index-DDEPvMww.d.mts} +520 -71
- package/dist/index-DDEPvMww.d.mts.map +1 -0
- package/dist/{index-oodg5k9K.d.mts → index-DGJp1d30.d.mts} +3 -3
- package/dist/{index-oodg5k9K.d.mts.map → index-DGJp1d30.d.mts.map} +1 -1
- package/dist/{index-fo4E7A6C.d.mts → index-DRZu3ezy.d.mts} +3 -3
- package/dist/{index-fo4E7A6C.d.mts.map → index-DRZu3ezy.d.mts.map} +1 -1
- package/dist/{index-CQcdKyxF.d.mts → index-DnWsbbuZ.d.mts} +54 -2
- package/dist/index-DnWsbbuZ.d.mts.map +1 -0
- package/dist/index.d.mts +398 -18
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +633 -57
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-DZTbEON9.mjs → preview-BV2C4Fk6.mjs} +2 -2
- package/dist/{preview-DZTbEON9.mjs.map → preview-BV2C4Fk6.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-VVLM6LZ3.mjs → chunk-6256GQFP.mjs} +1 -1
- package/dist/preview-engine/{chunk-VWLR2AZR.mjs → chunk-AEK5BO3J.mjs} +1 -1
- package/dist/preview-engine/{chunk-YG35X5R5.mjs → chunk-AWTH2WZO.mjs} +1 -1
- package/dist/preview-engine/{chunk-7DIAFPQP.mjs → chunk-ECPP3UG6.mjs} +1 -1
- package/dist/preview-engine/{chunk-5JD65JSJ.mjs → chunk-FGHOHCFG.mjs} +1 -1
- package/dist/preview-engine/chunk-IMV5SBQV.mjs +1 -0
- package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
- package/dist/preview-engine/chunk-L3IEJZ5S.mjs +474 -0
- package/dist/preview-engine/chunk-M7NMFDJ3.mjs +3 -0
- package/dist/preview-engine/chunk-MJM3NFEC.mjs +315 -0
- package/dist/preview-engine/chunk-NFAGEP43.mjs +1448 -0
- package/dist/preview-engine/{chunk-5PPSCISJ.mjs → chunk-Q66QQI6N.mjs} +1 -1
- package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-QYRDQMNB.mjs} +1 -1
- package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-RJUAM52F.mjs} +1 -1
- package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
- package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-Y6HWYPKX.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +27 -27
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/renderers-5BV6JGTU.mjs +248 -0
- package/dist/preview-engine/renderers-7X2W6QWX.mjs +1 -0
- package/dist/preview-engine/renderers-EOJMPPAQ.mjs +1 -0
- package/dist/preview-engine/renderers-G5KQISVL.mjs +1 -0
- package/dist/preview-engine/renderers-GMX2ZQDG.mjs +1 -0
- package/dist/preview-engine/renderers-TVTQ2R74.mjs +1 -0
- package/dist/preview-engine/renderers-ZIMBODX6.mjs +1 -0
- package/dist/{program-C797QMRL.mjs → program-BmNKgzja.mjs} +281 -23
- package/dist/program-BmNKgzja.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-D-4Yh-RK.mjs → renderer-1VuQTY1Z.mjs} +2 -2
- package/dist/{renderer-D-4Yh-RK.mjs.map → renderer-1VuQTY1Z.mjs.map} +1 -1
- package/dist/renderer-6oMSare3.mjs +3 -0
- package/dist/renderer-B1ComPb2.mjs +3 -0
- package/dist/{renderer-DgSO5OO0.mjs → renderer-B1YMwl2B.mjs} +1 -1
- package/dist/{renderer-9QCHY8Kh.mjs → renderer-B2ieylQ3.mjs} +2 -2
- package/dist/{renderer-9QCHY8Kh.mjs.map → renderer-B2ieylQ3.mjs.map} +1 -1
- package/dist/{renderer-CuqhAB4i.mjs → renderer-B8-kzZdP.mjs} +2 -2
- package/dist/{renderer-CuqhAB4i.mjs.map → renderer-B8-kzZdP.mjs.map} +1 -1
- package/dist/{renderer-Dn8v2o9L.mjs → renderer-B8UaFNqb.mjs} +3 -3
- package/dist/{renderer-Dn8v2o9L.mjs.map → renderer-B8UaFNqb.mjs.map} +1 -1
- package/dist/{renderer-DPpgBTlK.mjs → renderer-BDbTWSpP.mjs} +3 -3
- package/dist/{renderer-DPpgBTlK.mjs.map → renderer-BDbTWSpP.mjs.map} +1 -1
- package/dist/{renderer-CrVAvP92.mjs → renderer-BIIWCg_J.mjs} +3 -3
- package/dist/{renderer-CrVAvP92.mjs.map → renderer-BIIWCg_J.mjs.map} +1 -1
- package/dist/{renderer-5jfDUKd4.mjs → renderer-BJ1aTkZf.mjs} +3 -3
- package/dist/{renderer-5jfDUKd4.mjs.map → renderer-BJ1aTkZf.mjs.map} +1 -1
- package/dist/renderer-BQ5Bz5D0.mjs +3 -0
- package/dist/{renderer-D6Gi_h4K.mjs → renderer-BSaYG8aw.mjs} +1 -1
- package/dist/{renderer-2NQWaZd7.d.mts → renderer-BTdOMMEx.d.mts} +2 -2
- package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-BTdOMMEx.d.mts.map} +1 -1
- package/dist/renderer-BZcn_iBl.mjs +3 -0
- package/dist/{renderer-DnF3aXPX.mjs → renderer-Bc04fivZ.mjs} +3 -3
- package/dist/{renderer-DnF3aXPX.mjs.map → renderer-Bc04fivZ.mjs.map} +1 -1
- package/dist/{renderer-B1UeU7lX.mjs → renderer-BfAWZziM.mjs} +193 -12
- package/dist/renderer-BfAWZziM.mjs.map +1 -0
- package/dist/{renderer-CKJb_Lky.mjs → renderer-Bfgd4N0O.mjs} +3 -3
- package/dist/{renderer-CKJb_Lky.mjs.map → renderer-Bfgd4N0O.mjs.map} +1 -1
- package/dist/{renderer-b6sZN90h.mjs → renderer-BhZZEyFX.mjs} +2 -2
- package/dist/{renderer-b6sZN90h.mjs.map → renderer-BhZZEyFX.mjs.map} +1 -1
- package/dist/{renderer-C-PfbkPu.mjs → renderer-Bhdf90Zq.mjs} +2 -2
- package/dist/{renderer-C-PfbkPu.mjs.map → renderer-Bhdf90Zq.mjs.map} +1 -1
- package/dist/renderer-Bp6sDMa6.mjs +3 -0
- package/dist/renderer-Bt7_sb_Y.mjs +3 -0
- package/dist/{renderer-CB8hMQgm.mjs → renderer-Bv21DbWy.mjs} +1 -1
- package/dist/{renderer-gT0ADXMW.mjs → renderer-Bv6q84TU.mjs} +2 -2
- package/dist/{renderer-gT0ADXMW.mjs.map → renderer-Bv6q84TU.mjs.map} +1 -1
- package/dist/renderer-C606ZPUn.mjs +3 -0
- package/dist/renderer-C9jyKn1i.mjs +3 -0
- package/dist/renderer-CERfcxgv.mjs +3 -0
- package/dist/renderer-CG5PzNkv.mjs +3 -0
- package/dist/{renderer-CpUbDJAV.mjs → renderer-CI7sG_cv.mjs} +2 -2
- package/dist/{renderer-CpUbDJAV.mjs.map → renderer-CI7sG_cv.mjs.map} +1 -1
- package/dist/renderer-CPoIMVdk.mjs +3 -0
- package/dist/{renderer-B4ecTNR7.mjs → renderer-CWTpc4ff.mjs} +2 -2
- package/dist/{renderer-B4ecTNR7.mjs.map → renderer-CWTpc4ff.mjs.map} +1 -1
- package/dist/{renderer-D3uNI10l.mjs → renderer-CXn5HAnK.mjs} +3 -3
- package/dist/{renderer-D3uNI10l.mjs.map → renderer-CXn5HAnK.mjs.map} +1 -1
- package/dist/{renderer-DCK73tcD.mjs → renderer-C_TPMHiH.mjs} +2 -2
- package/dist/{renderer-DCK73tcD.mjs.map → renderer-C_TPMHiH.mjs.map} +1 -1
- package/dist/renderer-Ca7L1EOp.mjs +3 -0
- package/dist/{renderer-6PqlYQjC.mjs → renderer-CaaOKMSd.mjs} +2 -2
- package/dist/{renderer-6PqlYQjC.mjs.map → renderer-CaaOKMSd.mjs.map} +1 -1
- package/dist/{renderer-DX38J6mK.mjs → renderer-CdciwwMI.mjs} +3 -3
- package/dist/{renderer-DX38J6mK.mjs.map → renderer-CdciwwMI.mjs.map} +1 -1
- package/dist/{renderer-DRpE3ZW4.mjs → renderer-CfC_aiew.mjs} +3 -3
- package/dist/{renderer-DRpE3ZW4.mjs.map → renderer-CfC_aiew.mjs.map} +1 -1
- package/dist/{renderer-BE4Ns0nw.mjs → renderer-ChdLYS-G.mjs} +3 -3
- package/dist/{renderer-BE4Ns0nw.mjs.map → renderer-ChdLYS-G.mjs.map} +1 -1
- package/dist/renderer-Cl6GkeHx.mjs +3 -0
- package/dist/renderer-ClcjrFyo.mjs +3 -0
- package/dist/{renderer-B8gTyU3w.mjs → renderer-CnXW28b9.mjs} +2 -2
- package/dist/{renderer-B8gTyU3w.mjs.map → renderer-CnXW28b9.mjs.map} +1 -1
- package/dist/{renderer-C2gnWTQZ.mjs → renderer-Ctk2zzfy.mjs} +3 -3
- package/dist/{renderer-C2gnWTQZ.mjs.map → renderer-Ctk2zzfy.mjs.map} +1 -1
- package/dist/{renderer-EmG34sT2.mjs → renderer-CtyD_Xju.mjs} +2 -2
- package/dist/{renderer-EmG34sT2.mjs.map → renderer-CtyD_Xju.mjs.map} +1 -1
- package/dist/renderer-CySUP_wk.mjs +3 -0
- package/dist/renderer-D2l_Odyg.mjs +3 -0
- package/dist/{renderer-CckJJHbM.mjs → renderer-D2nCGcjv.mjs} +2 -2
- package/dist/{renderer-CckJJHbM.mjs.map → renderer-D2nCGcjv.mjs.map} +1 -1
- package/dist/renderer-DCPCYySt.mjs +3 -0
- package/dist/{renderer-BgqjWI7K.mjs → renderer-DIgsilTw.mjs} +3 -3
- package/dist/{renderer-BgqjWI7K.mjs.map → renderer-DIgsilTw.mjs.map} +1 -1
- package/dist/renderer-DIkpJEOZ.mjs +3 -0
- package/dist/{renderer-CxQ5v4fJ.mjs → renderer-DML9qpmS.mjs} +2 -2
- package/dist/{renderer-CxQ5v4fJ.mjs.map → renderer-DML9qpmS.mjs.map} +1 -1
- package/dist/renderer-DNSXPkf_.mjs +3 -0
- package/dist/renderer-DP-CvZ_Z.mjs +3 -0
- package/dist/renderer-DeXb8R6h.mjs +3 -0
- package/dist/renderer-DezO-ZaP.mjs +4 -0
- package/dist/renderer-DhXe04fC.mjs +3 -0
- package/dist/{renderer-BwmZUkvd.mjs → renderer-DirxsOjq.mjs} +2 -2
- package/dist/{renderer-BwmZUkvd.mjs.map → renderer-DirxsOjq.mjs.map} +1 -1
- package/dist/{renderer-BcPpcKDI.mjs → renderer-Djlb4TLO.mjs} +3 -3
- package/dist/{renderer-BcPpcKDI.mjs.map → renderer-Djlb4TLO.mjs.map} +1 -1
- package/dist/renderer-DnH3SI7w.mjs +3 -0
- package/dist/{renderer-xp_J0ln7.mjs → renderer-DpGc-N3G.mjs} +3 -3
- package/dist/{renderer-xp_J0ln7.mjs.map → renderer-DpGc-N3G.mjs.map} +1 -1
- package/dist/renderer-Dpw4oi33.mjs +3 -0
- package/dist/{renderer-DAFyJ4dv.mjs → renderer-DxTs4Iyi.mjs} +2 -2
- package/dist/{renderer-DAFyJ4dv.mjs.map → renderer-DxTs4Iyi.mjs.map} +1 -1
- package/dist/{renderer-BXaK02qA.mjs → renderer-Dy0utCl7.mjs} +3 -3
- package/dist/{renderer-BXaK02qA.mjs.map → renderer-Dy0utCl7.mjs.map} +1 -1
- package/dist/renderer-Md-ytU0v.mjs +3 -0
- package/dist/{renderer-BTYncYDf.mjs → renderer-RKsXlF_0.mjs} +43 -43
- package/dist/{renderer-BTYncYDf.mjs.map → renderer-RKsXlF_0.mjs.map} +1 -1
- package/dist/renderer-U-bhWO9Q.mjs +3 -0
- package/dist/{renderer-CV8diddR.mjs → renderer-WSGuj_V6.mjs} +2 -2
- package/dist/{renderer-CV8diddR.mjs.map → renderer-WSGuj_V6.mjs.map} +1 -1
- package/dist/{renderer-_bygZSKk.mjs → renderer-bsWnRNpJ.mjs} +2 -2
- package/dist/{renderer-_bygZSKk.mjs.map → renderer-bsWnRNpJ.mjs.map} +1 -1
- package/dist/{renderer-lq4n1hSS.mjs → renderer-cgxO2xN6.mjs} +3 -3
- package/dist/{renderer-lq4n1hSS.mjs.map → renderer-cgxO2xN6.mjs.map} +1 -1
- package/dist/{renderer-zvtpCnqy.mjs → renderer-dncoIVdd.mjs} +1 -1
- package/dist/{renderer-BpJgfBQ8.mjs → renderer-kwmlLQOO.mjs} +3 -3
- package/dist/{renderer-BpJgfBQ8.mjs.map → renderer-kwmlLQOO.mjs.map} +1 -1
- package/dist/{renderer--vY6O19V.mjs → renderer-vqkKWqa5.mjs} +2 -2
- package/dist/{renderer--vY6O19V.mjs.map → renderer-vqkKWqa5.mjs.map} +1 -1
- package/dist/renderer-zA5okHds.mjs +3 -0
- package/dist/{renderers-CP8CFWDs-Ciap7y_j.mjs → renderers-CP8CFWDs-DwQTx8S7.mjs} +3 -3
- package/dist/{renderers-CP8CFWDs-Ciap7y_j.mjs.map → renderers-CP8CFWDs-DwQTx8S7.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-CsxqD2AA.mjs → signals-Bv1OweKd.mjs} +3 -3
- package/dist/{signals-CsxqD2AA.mjs.map → signals-Bv1OweKd.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/dist-B9Afsv83.mjs.map +0 -1
- package/dist/dist-DgfykO99.mjs.map +0 -1
- package/dist/fonts-BznIea-I.mjs.map +0 -1
- package/dist/index-CQcdKyxF.d.mts.map +0 -1
- package/dist/index-D1zaOwEU.d.mts.map +0 -1
- package/dist/preview-engine/chunk-BUWK5RJ4.mjs +0 -997
- package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
- package/dist/preview-engine/chunk-OF75EHTX.mjs +0 -418
- package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
- package/dist/preview-engine/chunk-WQ7BFSKF.mjs +0 -3
- package/dist/preview-engine/chunk-ZJFAGIOM.mjs +0 -315
- package/dist/preview-engine/renderers-32PIFHPS.mjs +0 -1
- package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
- package/dist/preview-engine/renderers-CHJWUJVI.mjs +0 -1
- package/dist/preview-engine/renderers-CI2GXWLP.mjs +0 -1
- package/dist/preview-engine/renderers-EE2GFG7J.mjs +0 -1
- package/dist/preview-engine/renderers-LTNTQLWE.mjs +0 -248
- package/dist/preview-engine/renderers-UGZUPONY.mjs +0 -1
- package/dist/program-C797QMRL.mjs.map +0 -1
- package/dist/renderer-3uTfN95I.mjs +0 -3
- package/dist/renderer-B1UeU7lX.mjs.map +0 -1
- package/dist/renderer-B5GslTP-.mjs +0 -3
- package/dist/renderer-BUIWeIKQ.mjs +0 -3
- package/dist/renderer-B_LfC88A.mjs +0 -3
- package/dist/renderer-B_zmicsE.mjs +0 -3
- package/dist/renderer-BtNxtXkR.mjs +0 -3
- package/dist/renderer-C-sZSHtf.mjs +0 -3
- package/dist/renderer-C1zifktw.mjs +0 -3
- package/dist/renderer-CCt2XTSM.mjs +0 -3
- package/dist/renderer-CL3evUmF.mjs +0 -3
- package/dist/renderer-CMXcaArD.mjs +0 -3
- package/dist/renderer-CW9D5zCP.mjs +0 -3
- package/dist/renderer-CjY77sB_.mjs +0 -3
- package/dist/renderer-D1R7vBUl.mjs +0 -3
- package/dist/renderer-D5yawxtJ.mjs +0 -3
- package/dist/renderer-DC8jr1Ay.mjs +0 -3
- package/dist/renderer-DCv-Abvn.mjs +0 -4
- package/dist/renderer-DPLFhzaV.mjs +0 -3
- package/dist/renderer-DVsF2FDr.mjs +0 -3
- package/dist/renderer-DetDm3ep.mjs +0 -3
- package/dist/renderer-DhMhJh_G.mjs +0 -3
- package/dist/renderer-DhQld4Qt.mjs +0 -3
- package/dist/renderer-Dn3rc3ah.mjs +0 -3
- package/dist/renderer-Dw9LxE2f.mjs +0 -3
- package/dist/renderer-HvrQZw5E.mjs +0 -3
- package/dist/renderer-QdJE56ts.mjs +0 -3
- package/dist/renderer-euGyUN2O.mjs +0 -3
- package/dist/renderer-p3SmBFP9.mjs +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals-CsxqD2AA.mjs","names":[],"sources":["../../../nodes/node-audio-signal-extractor/dist/index.mjs","../../../nodes/node-signal/dist/index.mjs","../../../nodes/node-signal-gate/dist/index.mjs","../../../nodes/node-signal-math/dist/index.mjs"],"sourcesContent":["import \"./renderers-CP8CFWDs.mjs\";\nimport { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst ExtractionModeEnum = z.enum([\n\t\"rms_envelope\",\n\t\"transient_beat\",\n\t\"sub_bass\",\n\t\"bass\",\n\t\"mid\",\n\t\"high\",\n\t\"spectral_flux\"\n]);\nconst SignalCurveEnum = z.enum([\n\t\"linear\",\n\t\"exponential\",\n\t\"logarithmic\",\n\t\"square\",\n\t\"smoothstep\"\n]);\nconst AudioSignalExtractorConfigSchema = z.object({\n\textractionMode: ExtractionModeEnum.default(\"rms_envelope\"),\n\tattackMs: z.number().min(.5).max(1e3).default(10),\n\treleaseMs: z.number().min(1).max(5e3).default(120),\n\tsensitivity: z.number().min(.1).max(10).default(1),\n\tnoiseFloorDb: z.number().min(-90).max(0).default(-48),\n\tdynamicRangeDb: z.number().min(6).max(80).default(48),\n\tautoRange: z.boolean().default(true),\n\tsmoothing: z.number().min(0).max(1).default(.15),\n\tcurve: SignalCurveEnum.default(\"linear\"),\n\tbeatThreshold: z.number().min(.01).max(1).default(.08),\n\tbeatDecayMs: z.number().min(10).max(1e3).default(80),\n\tpreviewMode: z.enum([\n\t\t\"waveform\",\n\t\t\"envelope\",\n\t\t\"beat_markers\",\n\t\t\"spectrum\"\n\t]).default(\"envelope\")\n});\nconst AudioSignalExtractorResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.any()));\n\n//#endregion\nexport { AudioSignalExtractorConfigSchema, AudioSignalExtractorResultSchema, ExtractionModeEnum, SignalCurveEnum };\n//# sourceMappingURL=index.mjs.map","import { SignalResultSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst WGSL_OUTPUT_TYPES = [\"f32\"];\nconst WGSL_PARAM_TYPES = [\n\t\"f32\",\n\t\"i32\",\n\t\"u32\",\n\t\"vec2f\",\n\t\"vec3f\",\n\t\"vec4f\"\n];\nconst FnParamSchema = z.object({\n\tname: z.string().regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, \"Must be a valid WGSL identifier\"),\n\ttype: z.enum(WGSL_PARAM_TYPES),\n\tdefaultValue: z.number()\n});\nconst SignalNodeConfigSchema = z.object({\n\tamplitude: z.number().min(0).default(1),\n\tfrequency: z.number().min(0).default(1),\n\tphase: z.number().min(-2 * Math.PI).max(2 * Math.PI).default(0),\n\toffset: z.number().default(0),\n\tamplitudeMin: z.number().default(-1),\n\tamplitudeMax: z.number().default(1),\n\tspatialScale: z.number().min(0).default(1),\n\tspatialSpeed: z.number().default(1),\n\tfmAmplitude: z.number().min(0).default(1),\n\tfmFrequency: z.number().min(0).default(.5),\n\tgateEnabled: z.boolean().default(false),\n\tgateStartFrame: z.number().int().min(0).default(0),\n\tgateEndFrame: z.number().int().min(0).default(100),\n\tgateIdleValue: z.number().default(0),\n\tenvelopeUseFrame: z.boolean().default(true),\n\tbaseEnabled: z.boolean().default(true),\n\tbaseType: z.enum([\n\t\t\"sine\",\n\t\t\"triangle\",\n\t\t\"sawtooth\",\n\t\t\"square\",\n\t\t\"constant\",\n\t\t\"noise_smooth\",\n\t\t\"noise_white\",\n\t\t\"pulse\",\n\t\t\"bounce\",\n\t\t\"staircase\",\n\t\t\"custom\"\n\t]).default(\"sine\"),\n\tfmEnabled: z.boolean().default(false),\n\tenvelopeEnabled: z.boolean().default(false),\n\tenvelopeFamily: z.enum([\n\t\t\"linear\",\n\t\t\"sine\",\n\t\t\"quad\",\n\t\t\"cubic\",\n\t\t\"quart\",\n\t\t\"quint\",\n\t\t\"expo\",\n\t\t\"circ\",\n\t\t\"back\",\n\t\t\"elastic\",\n\t\t\"bounce\",\n\t\t\"smoothstep\",\n\t\t\"smootherstep\"\n\t]).default(\"sine\"),\n\tenvelopeMode: z.enum([\n\t\t\"in\",\n\t\t\"out\",\n\t\t\"in_out\"\n\t]).default(\"in_out\"),\n\tenvelopePattern: z.enum([\n\t\t\"ramp_up\",\n\t\t\"ramp_down\",\n\t\t\"bell\",\n\t\t\"loop\"\n\t]).default(\"ramp_up\"),\n\tenvelopeCycles: z.number().int().min(1).default(2),\n\tfnBody: z.string().default([\n\t\t\"// Bindings: t: f32 | x y z: f32 | i n frame: u32\",\n\t\t\"// Constants: PI, TAU, E\",\n\t\t\"return u.amplitude * sin(t * u.frequency * TAU + u.phase) + u.offset;\"\n\t].join(\"\\n\")),\n\tfnOutputType: z.enum(WGSL_OUTPUT_TYPES).default(\"f32\"),\n\tfnParams: z.array(FnParamSchema).default([]),\n\tpreviewMode: z.enum([\n\t\t\"pattern\",\n\t\t\"cartesian\",\n\t\t\"3d\"\n\t]).default(\"cartesian\")\n}).superRefine((data, ctx) => {\n\tif (data.amplitudeMax <= data.amplitudeMin) ctx.addIssue({\n\t\tcode: z.ZodIssueCode.custom,\n\t\tpath: [\"amplitudeMax\"],\n\t\tmessage: \"amplitudeMax must be greater than amplitudeMin\"\n\t});\n\tif (data.gateEndFrame <= data.gateStartFrame) ctx.addIssue({\n\t\tcode: z.ZodIssueCode.custom,\n\t\tpath: [\"gateEndFrame\"],\n\t\tmessage: \"gateEndFrame must be greater than gateStartFrame\"\n\t});\n});\n\n//#endregion\nexport { FnParamSchema, SignalNodeConfigSchema, SignalResultSchema, WGSL_OUTPUT_TYPES, WGSL_PARAM_TYPES };\n//# sourceMappingURL=index.mjs.map","import \"./renderer.mjs\";\nimport { SignalDataSchema } from \"@framefields/core\";\nimport { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst GateModeSchema = z.enum([\n\t\"gate\",\n\t\"trigger\",\n\t\"toggle\"\n]);\nconst SignalGateConfigSchema = z.object({\n\tthreshold: z.number().min(0).max(1).default(.5),\n\tdebounceMs: z.number().min(0).max(5e3).default(100),\n\tmode: GateModeSchema.default(\"gate\"),\n\tholdFrames: z.number().min(1).max(120).default(4),\n\tinvert: z.boolean().default(false)\n});\nconst SignalGateResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), SignalDataSchema));\n\n//#endregion\nexport { GateModeSchema, SignalGateConfigSchema, SignalGateResultSchema };\n//# sourceMappingURL=index.mjs.map","import { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst SignalMathOperationEnum = z.enum([\n\t\"remap\",\n\t\"normalize\",\n\t\"add\",\n\t\"subtract\",\n\t\"multiply\",\n\t\"divide\",\n\t\"invert\",\n\t\"clamp\",\n\t\"power\",\n\t\"smoothstep\",\n\t\"custom\"\n]);\nconst SignalMathConfigSchema = z.object({\n\toperation: SignalMathOperationEnum.default(\"remap\"),\n\tbValue: z.number().default(1),\n\tinMin: z.number().default(0),\n\tinMax: z.number().default(1),\n\toutMin: z.number().default(0),\n\toutMax: z.number().default(1),\n\tclampMin: z.number().default(0),\n\tclampMax: z.number().default(1),\n\texponent: z.number().default(2),\n\tedge0: z.number().default(0),\n\tedge1: z.number().default(1),\n\tcustomWGSL: z.string().default([\n\t\t\"// Variables in scope:\",\n\t\t\"// a: f32 (Signal A)\",\n\t\t\"// b: f32 (Signal B or uniform bValue)\",\n\t\t\"// a_min: f32, a_max: f32 (Signal A min/max stats)\",\n\t\t\"// t: f32 (seconds), t_norm: f32 [0..1], frame: u32\",\n\t\t\"// Constants: PI, TAU, E\",\n\t\t\"return a;\"\n\t].join(\"\\n\"))\n});\nconst SignalMathResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.record(z.string(), z.unknown())));\n\n//#endregion\nexport { SignalMathConfigSchema, SignalMathOperationEnum, SignalMathResultSchema };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signals-Bv1OweKd.mjs","names":[],"sources":["../../../nodes/node-audio-signal-extractor/dist/index.mjs","../../../nodes/node-signal/dist/index.mjs","../../../nodes/node-signal-gate/dist/index.mjs","../../../nodes/node-signal-math/dist/index.mjs"],"sourcesContent":["import \"./renderers-CP8CFWDs.mjs\";\nimport { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst ExtractionModeEnum = z.enum([\n\t\"rms_envelope\",\n\t\"transient_beat\",\n\t\"sub_bass\",\n\t\"bass\",\n\t\"mid\",\n\t\"high\",\n\t\"spectral_flux\"\n]);\nconst SignalCurveEnum = z.enum([\n\t\"linear\",\n\t\"exponential\",\n\t\"logarithmic\",\n\t\"square\",\n\t\"smoothstep\"\n]);\nconst AudioSignalExtractorConfigSchema = z.object({\n\textractionMode: ExtractionModeEnum.default(\"rms_envelope\"),\n\tattackMs: z.number().min(.5).max(1e3).default(10),\n\treleaseMs: z.number().min(1).max(5e3).default(120),\n\tsensitivity: z.number().min(.1).max(10).default(1),\n\tnoiseFloorDb: z.number().min(-90).max(0).default(-48),\n\tdynamicRangeDb: z.number().min(6).max(80).default(48),\n\tautoRange: z.boolean().default(true),\n\tsmoothing: z.number().min(0).max(1).default(.15),\n\tcurve: SignalCurveEnum.default(\"linear\"),\n\tbeatThreshold: z.number().min(.01).max(1).default(.08),\n\tbeatDecayMs: z.number().min(10).max(1e3).default(80),\n\tpreviewMode: z.enum([\n\t\t\"waveform\",\n\t\t\"envelope\",\n\t\t\"beat_markers\",\n\t\t\"spectrum\"\n\t]).default(\"envelope\")\n});\nconst AudioSignalExtractorResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.any()));\n\n//#endregion\nexport { AudioSignalExtractorConfigSchema, AudioSignalExtractorResultSchema, ExtractionModeEnum, SignalCurveEnum };\n//# sourceMappingURL=index.mjs.map","import { SignalResultSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst WGSL_OUTPUT_TYPES = [\"f32\"];\nconst WGSL_PARAM_TYPES = [\n\t\"f32\",\n\t\"i32\",\n\t\"u32\",\n\t\"vec2f\",\n\t\"vec3f\",\n\t\"vec4f\"\n];\nconst FnParamSchema = z.object({\n\tname: z.string().regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, \"Must be a valid WGSL identifier\"),\n\ttype: z.enum(WGSL_PARAM_TYPES),\n\tdefaultValue: z.number()\n});\nconst SignalNodeConfigSchema = z.object({\n\tamplitude: z.number().min(0).default(1),\n\tfrequency: z.number().min(0).default(1),\n\tphase: z.number().min(-2 * Math.PI).max(2 * Math.PI).default(0),\n\toffset: z.number().default(0),\n\tamplitudeMin: z.number().default(-1),\n\tamplitudeMax: z.number().default(1),\n\tspatialScale: z.number().min(0).default(1),\n\tspatialSpeed: z.number().default(1),\n\tfmAmplitude: z.number().min(0).default(1),\n\tfmFrequency: z.number().min(0).default(.5),\n\tgateEnabled: z.boolean().default(false),\n\tgateStartFrame: z.number().int().min(0).default(0),\n\tgateEndFrame: z.number().int().min(0).default(100),\n\tgateIdleValue: z.number().default(0),\n\tenvelopeUseFrame: z.boolean().default(true),\n\tbaseEnabled: z.boolean().default(true),\n\tbaseType: z.enum([\n\t\t\"sine\",\n\t\t\"triangle\",\n\t\t\"sawtooth\",\n\t\t\"square\",\n\t\t\"constant\",\n\t\t\"noise_smooth\",\n\t\t\"noise_white\",\n\t\t\"pulse\",\n\t\t\"bounce\",\n\t\t\"staircase\",\n\t\t\"custom\"\n\t]).default(\"sine\"),\n\tfmEnabled: z.boolean().default(false),\n\tenvelopeEnabled: z.boolean().default(false),\n\tenvelopeFamily: z.enum([\n\t\t\"linear\",\n\t\t\"sine\",\n\t\t\"quad\",\n\t\t\"cubic\",\n\t\t\"quart\",\n\t\t\"quint\",\n\t\t\"expo\",\n\t\t\"circ\",\n\t\t\"back\",\n\t\t\"elastic\",\n\t\t\"bounce\",\n\t\t\"smoothstep\",\n\t\t\"smootherstep\"\n\t]).default(\"sine\"),\n\tenvelopeMode: z.enum([\n\t\t\"in\",\n\t\t\"out\",\n\t\t\"in_out\"\n\t]).default(\"in_out\"),\n\tenvelopePattern: z.enum([\n\t\t\"ramp_up\",\n\t\t\"ramp_down\",\n\t\t\"bell\",\n\t\t\"loop\"\n\t]).default(\"ramp_up\"),\n\tenvelopeCycles: z.number().int().min(1).default(2),\n\tfnBody: z.string().default([\n\t\t\"// Bindings: t: f32 | x y z: f32 | i n frame: u32\",\n\t\t\"// Constants: PI, TAU, E\",\n\t\t\"return u.amplitude * sin(t * u.frequency * TAU + u.phase) + u.offset;\"\n\t].join(\"\\n\")),\n\tfnOutputType: z.enum(WGSL_OUTPUT_TYPES).default(\"f32\"),\n\tfnParams: z.array(FnParamSchema).default([]),\n\tpreviewMode: z.enum([\n\t\t\"pattern\",\n\t\t\"cartesian\",\n\t\t\"3d\"\n\t]).default(\"cartesian\")\n}).superRefine((data, ctx) => {\n\tif (data.amplitudeMax <= data.amplitudeMin) ctx.addIssue({\n\t\tcode: z.ZodIssueCode.custom,\n\t\tpath: [\"amplitudeMax\"],\n\t\tmessage: \"amplitudeMax must be greater than amplitudeMin\"\n\t});\n\tif (data.gateEndFrame <= data.gateStartFrame) ctx.addIssue({\n\t\tcode: z.ZodIssueCode.custom,\n\t\tpath: [\"gateEndFrame\"],\n\t\tmessage: \"gateEndFrame must be greater than gateStartFrame\"\n\t});\n});\n\n//#endregion\nexport { FnParamSchema, SignalNodeConfigSchema, SignalResultSchema, WGSL_OUTPUT_TYPES, WGSL_PARAM_TYPES };\n//# sourceMappingURL=index.mjs.map","import \"./renderer.mjs\";\nimport { SignalDataSchema } from \"@framefields/core\";\nimport { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst GateModeSchema = z.enum([\n\t\"gate\",\n\t\"trigger\",\n\t\"toggle\"\n]);\nconst SignalGateConfigSchema = z.object({\n\tthreshold: z.number().min(0).max(1).default(.5),\n\tdebounceMs: z.number().min(0).max(5e3).default(100),\n\tmode: GateModeSchema.default(\"gate\"),\n\tholdFrames: z.number().min(1).max(120).default(4),\n\tinvert: z.boolean().default(false)\n});\nconst SignalGateResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), SignalDataSchema));\n\n//#endregion\nexport { GateModeSchema, SignalGateConfigSchema, SignalGateResultSchema };\n//# sourceMappingURL=index.mjs.map","import { MultiOutputGenericSchema, createOutputItemSchema } from \"@framefields/node-sdk\";\nimport { z } from \"zod\";\n\n//#region src/shared/config.ts\nconst SignalMathOperationEnum = z.enum([\n\t\"remap\",\n\t\"normalize\",\n\t\"add\",\n\t\"subtract\",\n\t\"multiply\",\n\t\"divide\",\n\t\"invert\",\n\t\"clamp\",\n\t\"power\",\n\t\"smoothstep\",\n\t\"custom\"\n]);\nconst SignalMathConfigSchema = z.object({\n\toperation: SignalMathOperationEnum.default(\"remap\"),\n\tbValue: z.number().default(1),\n\tinMin: z.number().default(0),\n\tinMax: z.number().default(1),\n\toutMin: z.number().default(0),\n\toutMax: z.number().default(1),\n\tclampMin: z.number().default(0),\n\tclampMax: z.number().default(1),\n\texponent: z.number().default(2),\n\tedge0: z.number().default(0),\n\tedge1: z.number().default(1),\n\tcustomWGSL: z.string().default([\n\t\t\"// Variables in scope:\",\n\t\t\"// a: f32 (Signal A)\",\n\t\t\"// b: f32 (Signal B or uniform bValue)\",\n\t\t\"// a_min: f32, a_max: f32 (Signal A min/max stats)\",\n\t\t\"// t: f32 (seconds), t_norm: f32 [0..1], frame: u32\",\n\t\t\"// Constants: PI, TAU, E\",\n\t\t\"return a;\"\n\t].join(\"\\n\"))\n});\nconst SignalMathResultSchema = MultiOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.record(z.string(), z.unknown())));\n\n//#endregion\nexport { SignalMathConfigSchema, SignalMathOperationEnum, SignalMathResultSchema };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;;;;;;;;;AAKA,MAAM,qBAAqB,EAAE,KAAK;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,kBAAkB,EAAE,KAAK;CAC9B;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,mCAAmC,EAAE,OAAO;CACjD,gBAAgB,mBAAmB,QAAQ,eAAe;CAC1D,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACjD,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI;CAClD,aAAa,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;CAClD,cAAc,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CACrD,gBAAgB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG;CACrD,WAAW,EAAE,SAAS,CAAC,QAAQ,KAAK;CACpC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CAChD,OAAO,gBAAgB,QAAQ,SAAS;CACxC,eAAe,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CACtD,aAAa,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;CACpD,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,WAAW;CACtB,CAAC;AACF,MAAM,mCAAmC,yBAAyB,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;;;;;;;;;;;ACpCvH,MAAM,oBAAoB,CAAC,MAAM;AACjC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;AACD,MAAM,gBAAgB,EAAE,OAAO;CAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,4BAA4B,kCAAkC;CACrF,MAAM,EAAE,KAAK,iBAAiB;CAC9B,cAAc,EAAE,QAAQ;CACxB,CAAC;AACF,MAAM,yBAAyB,EAAE,OAAO;CACvC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACvC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACvC,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE;CAC/D,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,cAAc,EAAE,QAAQ,CAAC,QAAQ,GAAG;CACpC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACnC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAC1C,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACnC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACzC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAC1C,aAAa,EAAE,SAAS,CAAC,QAAQ,MAAM;CACvC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClD,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI;CAClD,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE;CACpC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC3C,aAAa,EAAE,SAAS,CAAC,QAAQ,KAAK;CACtC,UAAU,EAAE,KAAK;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,OAAO;CAClB,WAAW,EAAE,SAAS,CAAC,QAAQ,MAAM;CACrC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC3C,gBAAgB,EAAE,KAAK;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,OAAO;CAClB,cAAc,EAAE,KAAK;EACpB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,SAAS;CACpB,iBAAiB,EAAE,KAAK;EACvB;EACA;EACA;EACA;EACA,CAAC,CAAC,QAAQ,UAAU;CACrB,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;EAC1B;EACA;EACA;EACA,CAAC,KAAK,KAAK,CAAC;CACb,cAAc,EAAE,KAAK,kBAAkB,CAAC,QAAQ,MAAM;CACtD,UAAU,EAAE,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC;CAC5C,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,QAAQ,YAAY;CACvB,CAAC,CAAC,aAAa,MAAM,QAAQ;AAC7B,KAAI,KAAK,gBAAgB,KAAK,aAAc,KAAI,SAAS;EACxD,MAAM,EAAE,aAAa;EACrB,MAAM,CAAC,eAAe;EACtB,SAAS;EACT,CAAC;AACF,KAAI,KAAK,gBAAgB,KAAK,eAAgB,KAAI,SAAS;EAC1D,MAAM,EAAE,aAAa;EACrB,MAAM,CAAC,eAAe;EACtB,SAAS;EACT,CAAC;EACD;;;;;;;;;AC9FF,MAAM,iBAAiB,EAAE,KAAK;CAC7B;CACA;CACA;CACA,CAAC;AACF,MAAM,yBAAyB,EAAE,OAAO;CACvC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG;CAC/C,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI;CACnD,MAAM,eAAe,QAAQ,OAAO;CACpC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;CACjD,QAAQ,EAAE,SAAS,CAAC,QAAQ,MAAM;CAClC,CAAC;AACF,MAAM,yBAAyB,yBAAyB,uBAAuB,EAAE,QAAQ,SAAS,EAAE,iBAAiB,CAAC;;;;;;;;;ACdtH,MAAM,0BAA0B,EAAE,KAAK;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AACF,MAAM,yBAAyB,EAAE,OAAO;CACvC,WAAW,wBAAwB,QAAQ,QAAQ;CACnD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC5B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC/B,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC/B,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC/B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC5B,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC5B,YAAY,EAAE,QAAQ,CAAC,QAAQ;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,KAAK,KAAK,CAAC;CACb,CAAC;AACF,MAAM,yBAAyB,yBAAyB,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framefields",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "High-performance WebGPU rendering SDK for video composition, Photoshop-grade 2D VFX, audio DSP, and reactive signals. Built for AI Agents.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -110,60 +110,60 @@
|
|
|
110
110
|
"tsdown": "^0.19.0",
|
|
111
111
|
"typescript": "^5.8.3",
|
|
112
112
|
"vitest": "4.1.5",
|
|
113
|
-
"@framefields/
|
|
114
|
-
"@framefields/
|
|
115
|
-
"@framefields/
|
|
116
|
-
"@framefields/
|
|
117
|
-
"@framefields/node-audio-
|
|
118
|
-
"@framefields/node-audio-
|
|
119
|
-
"@framefields/node-audio-
|
|
120
|
-
"@framefields/node-audio-
|
|
121
|
-
"@framefields/node-
|
|
122
|
-
"@framefields/node-
|
|
123
|
-
"@framefields/node-
|
|
124
|
-
"@framefields/node-
|
|
125
|
-
"@framefields/node-
|
|
126
|
-
"@framefields/node-
|
|
127
|
-
"@framefields/node-
|
|
128
|
-
"@framefields/node-film-grain": "2.0.
|
|
129
|
-
"@framefields/node-
|
|
130
|
-
"@framefields/node-
|
|
131
|
-
"@framefields/node-
|
|
132
|
-
"@framefields/
|
|
133
|
-
"@framefields/node-
|
|
134
|
-
"@framefields/node-
|
|
135
|
-
"@framefields/node-
|
|
136
|
-
"@framefields/node-
|
|
137
|
-
"@framefields/node-
|
|
138
|
-
"@framefields/node-
|
|
139
|
-
"@framefields/node-
|
|
140
|
-
"@framefields/node-
|
|
141
|
-
"@framefields/node-
|
|
142
|
-
"@framefields/node-
|
|
143
|
-
"@framefields/node-
|
|
144
|
-
"@framefields/node-
|
|
145
|
-
"@framefields/node-refine-edge": "2.0.
|
|
146
|
-
"@framefields/node-refraction-caustics": "2.0.
|
|
147
|
-
"@framefields/node-
|
|
148
|
-
"@framefields/node-
|
|
149
|
-
"@framefields/node-
|
|
150
|
-
"@framefields/node-
|
|
151
|
-
"@framefields/node-
|
|
152
|
-
"@framefields/node-
|
|
153
|
-
"@framefields/node-
|
|
154
|
-
"@framefields/node-
|
|
155
|
-
"@framefields/node-
|
|
156
|
-
"@framefields/node-
|
|
157
|
-
"@framefields/node-
|
|
158
|
-
"@framefields/node-vignette": "2.0.
|
|
159
|
-
"@framefields/
|
|
160
|
-
"@framefields/node-
|
|
161
|
-
"@framefields/
|
|
162
|
-
"@framefields/
|
|
163
|
-
"@framefields/
|
|
164
|
-
"@framefields/
|
|
165
|
-
"@framefields/
|
|
166
|
-
"@framefields/webgpu
|
|
113
|
+
"@framefields/node-audio-compressor": "2.0.11",
|
|
114
|
+
"@framefields/compositions": "2.0.11",
|
|
115
|
+
"@framefields/client-utils": "2.0.11",
|
|
116
|
+
"@framefields/core": "2.0.11",
|
|
117
|
+
"@framefields/node-audio-noise-gate": "2.0.11",
|
|
118
|
+
"@framefields/node-audio-delay": "2.0.11",
|
|
119
|
+
"@framefields/node-audio-parametric-eq": "2.0.11",
|
|
120
|
+
"@framefields/node-audio-fade": "2.0.11",
|
|
121
|
+
"@framefields/node-audio-signal-extractor": "2.0.11",
|
|
122
|
+
"@framefields/node-blur": "2.0.11",
|
|
123
|
+
"@framefields/node-colorkey": "2.0.11",
|
|
124
|
+
"@framefields/node-corner-pin": "2.0.11",
|
|
125
|
+
"@framefields/node-deflicker": "2.0.11",
|
|
126
|
+
"@framefields/node-audio-reverb": "2.0.11",
|
|
127
|
+
"@framefields/node-curves": "2.0.11",
|
|
128
|
+
"@framefields/node-film-grain": "2.0.11",
|
|
129
|
+
"@framefields/node-crop": "2.0.11",
|
|
130
|
+
"@framefields/node-gradient-map": "2.0.11",
|
|
131
|
+
"@framefields/node-displacement-map": "2.0.11",
|
|
132
|
+
"@framefields/node-high-pass": "2.0.11",
|
|
133
|
+
"@framefields/node-flip": "2.0.11",
|
|
134
|
+
"@framefields/node-layer-style": "2.0.11",
|
|
135
|
+
"@framefields/node-kenburns": "2.0.11",
|
|
136
|
+
"@framefields/node-halftone-screen": "2.0.11",
|
|
137
|
+
"@framefields/node-liquify": "2.0.11",
|
|
138
|
+
"@framefields/node-color-balance": "2.0.11",
|
|
139
|
+
"@framefields/node-modulate": "2.0.11",
|
|
140
|
+
"@framefields/node-lut": "2.0.11",
|
|
141
|
+
"@framefields/node-mask-math": "2.0.11",
|
|
142
|
+
"@framefields/node-patch-heal": "2.0.11",
|
|
143
|
+
"@framefields/node-paint": "2.0.11",
|
|
144
|
+
"@framefields/node-relight-3d": "2.0.11",
|
|
145
|
+
"@framefields/node-refine-edge": "2.0.11",
|
|
146
|
+
"@framefields/node-refraction-caustics": "2.0.11",
|
|
147
|
+
"@framefields/node-selective-color": "2.0.11",
|
|
148
|
+
"@framefields/node-sdk": "2.0.11",
|
|
149
|
+
"@framefields/node-shadows-highlights": "2.0.11",
|
|
150
|
+
"@framefields/node-levels": "2.0.11",
|
|
151
|
+
"@framefields/node-signal-math": "2.0.11",
|
|
152
|
+
"@framefields/node-signal": "2.0.11",
|
|
153
|
+
"@framefields/node-stereo-panning": "2.0.11",
|
|
154
|
+
"@framefields/node-mesh-warp": "2.0.11",
|
|
155
|
+
"@framefields/node-tile-offset": "2.0.11",
|
|
156
|
+
"@framefields/node-signal-gate": "2.0.11",
|
|
157
|
+
"@framefields/node-rotate": "2.0.11",
|
|
158
|
+
"@framefields/node-vignette": "2.0.11",
|
|
159
|
+
"@framefields/renderer": "2.0.11",
|
|
160
|
+
"@framefields/node-vision": "2.0.11",
|
|
161
|
+
"@framefields/renderers": "2.0.11",
|
|
162
|
+
"@framefields/vision": "2.0.11",
|
|
163
|
+
"@framefields/tsconfig": "2.0.11",
|
|
164
|
+
"@framefields/webgpu-renderers": "2.0.11",
|
|
165
|
+
"@framefields/node-unsharp-mask": "2.0.11",
|
|
166
|
+
"@framefields/tensor-webgpu": "2.0.11"
|
|
167
167
|
},
|
|
168
168
|
"scripts": {
|
|
169
169
|
"build": "tsdown && node ../../scripts/sync-readme.mjs && node scripts/check-dts-bundle.mjs",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dist-B9Afsv83.mjs","names":["ProgrammaticSignal","ConfigSchemaRegistry"],"sources":["../../core/dist/index.mjs"],"sourcesContent":["import { nanoid } from \"nanoid\";\nimport z$1, { z } from \"zod\";\n\n//#region src/signals/programmatic.ts\nvar ProgrammaticSignal = class ProgrammaticSignal {\n\tgpuBinding;\n\tlabel;\n\t_evaluator;\n\t_samples;\n\t_fps;\n\t_durationFrames;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\t_children = /* @__PURE__ */ new Set();\n\tget fps() {\n\t\treturn this._fps;\n\t}\n\tconstructor(source, options = {}) {\n\t\tthis._fps = options.fps ?? 24;\n\t\tthis._durationFrames = options.durationFrames;\n\t\tthis.gpuBinding = options.gpuBinding;\n\t\tthis.label = options.label;\n\t\tif (typeof source === \"number\") {\n\t\t\tconst constVal = source;\n\t\t\tthis._evaluator = () => constVal;\n\t\t\tthis._cachedValue = constVal;\n\t\t} else if (typeof source === \"function\") this._evaluator = source;\n\t\telse if (isSignal(source)) this._evaluator = (ctx) => Number(source.get(ctx)) || 0;\n\t\telse {\n\t\t\tconst arr = source;\n\t\t\tthis._samples = arr instanceof Float32Array ? arr : new Float32Array(Array.from(arr));\n\t\t\tthis._durationFrames = this._samples.length;\n\t\t\tthis._cachedValue = this._samples.length > 0 ? this._samples[0] : 0;\n\t\t\tthis._evaluator = (ctx) => {\n\t\t\t\tif (!this._samples || this._samples.length === 0) return 0;\n\t\t\t\tconst compFps = ctx.fps ?? this._fps;\n\t\t\t\tconst targetFrame = compFps !== this._fps && compFps > 0 ? ctx.frame / compFps * this._fps : ctx.frame;\n\t\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\t\t\treturn this._samples[idx];\n\t\t\t};\n\t\t}\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tregisterSignalDependency(this._subscribers);\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tconst fps = ctx?.fps ?? this._fps;\n\t\tconst time = ctx?.time ?? (fps > 0 ? currentFrame / fps : 0);\n\t\tconst duration = ctx?.duration ?? this._durationFrames ?? 100;\n\t\tconst resolvedCtx = {\n\t\t\tframe: currentFrame,\n\t\t\tfps,\n\t\t\ttime,\n\t\t\tduration,\n\t\t\tdurationMs: ctx?.durationMs ?? duration / fps * 1e3,\n\t\t\tprogress: duration > 0 ? currentFrame / duration : 0,\n\t\t\tdeltaTime: ctx?.deltaTime ?? (fps > 0 ? 1 / fps : .0416)\n\t\t};\n\t\tthis._cachedFrame = currentFrame;\n\t\tthis._cachedValue = this._evaluator(resolvedCtx);\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tregisterChild(child) {\n\t\tthis._children.add(child);\n\t}\n\t_derive(evaluator, options, other) {\n\t\tconst child = new ProgrammaticSignal(evaluator, {\n\t\t\tfps: this._fps,\n\t\t\tdurationFrames: this._durationFrames,\n\t\t\t...options\n\t\t});\n\t\tthis._children.add(child);\n\t\tif (other instanceof ProgrammaticSignal) other.registerChild(child);\n\t\treturn child;\n\t}\n\tseekFrame(frame) {\n\t\tthis._seekedFrame = frame;\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.seekFrame(frame);\n\t}\n\tinvalidate() {\n\t\tthis._cachedFrame = -1;\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t\tfor (const child of this._children) child.invalidate();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n\tsmooth(windowFrames) {\n\t\tconst window = Math.max(1, Math.round(windowFrames));\n\t\tif (window <= 1) return this;\n\t\treturn this._derive((ctx) => {\n\t\t\tlet sum = 0;\n\t\t\tlet count = 0;\n\t\t\tconst startF = Math.max(0, ctx.frame - window + 1);\n\t\t\tfor (let f = startF; f <= ctx.frame; f++) {\n\t\t\t\tsum += this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tcount++;\n\t\t\t}\n\t\t\treturn count > 0 ? sum / count : 0;\n\t\t}, { label: `${this.label ?? \"sig\"}_smoothed(${window})` });\n\t}\n\tremap(inMin, inMax, outMin, outMax, clamp = false) {\n\t\tconst inRange = inMax - inMin;\n\t\tconst outRange = outMax - outMin;\n\t\treturn this._derive((ctx) => {\n\t\t\tconst val = this.get(ctx);\n\t\t\tconst remapped = outMin + (inRange !== 0 ? (val - inMin) / inRange : 0) * outRange;\n\t\t\tif (clamp) {\n\t\t\t\tconst lo = Math.min(outMin, outMax);\n\t\t\t\tconst hi = Math.max(outMin, outMax);\n\t\t\t\treturn Math.max(lo, Math.min(hi, remapped));\n\t\t\t}\n\t\t\treturn remapped;\n\t\t}, { label: `${this.label ?? \"sig\"}_remap` });\n\t}\n\tclamp(min, max) {\n\t\tconst lo = Math.min(min, max);\n\t\tconst hi = Math.max(min, max);\n\t\treturn this._derive((ctx) => Math.max(lo, Math.min(hi, this.get(ctx))), { label: `${this.label ?? \"sig\"}_clamped` });\n\t}\n\tgate(threshold, options = {}) {\n\t\tconst mode = options.mode ?? \"gate\";\n\t\tconst debounce = Math.max(1, options.debounceFrames ?? 2);\n\t\tconst hold = Math.max(1, options.holdFrames ?? 4);\n\t\tconst invert = Boolean(options.invert);\n\t\treturn this._derive((ctx) => {\n\t\t\tconst currentF = ctx.frame;\n\t\t\tlet out = 0;\n\t\t\tif (mode === \"gate\") out = this.get(ctx) >= threshold ? 1 : 0;\n\t\t\telse if (mode === \"trigger\") {\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tconst startF = Math.max(0, currentF - 120);\n\t\t\t\tfor (let f = startF; f <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) lastTrigger = f;\n\t\t\t\t}\n\t\t\t\tout = currentF >= lastTrigger && currentF < lastTrigger + hold ? 1 : 0;\n\t\t\t} else if (mode === \"toggle\") {\n\t\t\t\tlet toggleCount = 0;\n\t\t\t\tlet lastTrigger = -Infinity;\n\t\t\t\tfor (let f = 0; f <= currentF; f++) {\n\t\t\t\t\tconst v = this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t\t});\n\t\t\t\t\tconst prev = f > 0 ? this.get({\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframe: f - 1,\n\t\t\t\t\t\ttime: (f - 1) / ctx.fps\n\t\t\t\t\t}) : 0;\n\t\t\t\t\tif (v >= threshold && prev < threshold && f - lastTrigger >= debounce) {\n\t\t\t\t\t\ttoggleCount++;\n\t\t\t\t\t\tlastTrigger = f;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tout = toggleCount % 2 === 1 ? 1 : 0;\n\t\t\t}\n\t\t\treturn invert ? 1 - out : out;\n\t\t}, { label: `${this.label ?? \"sig\"}_gate(${threshold})` });\n\t}\n\tvelocity(dt = 1) {\n\t\tconst step = Math.max(1, Math.round(dt));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst curr = this.get(ctx);\n\t\t\tconst prevF = Math.max(0, ctx.frame - step);\n\t\t\tconst prev = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: prevF,\n\t\t\t\ttime: prevF / ctx.fps\n\t\t\t});\n\t\t\tconst deltaSec = step / ctx.fps;\n\t\t\treturn deltaSec > 0 ? (curr - prev) / deltaSec : curr - prev;\n\t\t}, { label: `${this.label ?? \"sig\"}_velocity` });\n\t}\n\tdelay(frames) {\n\t\tconst shift = Math.max(0, Math.round(frames));\n\t\treturn this._derive((ctx) => {\n\t\t\tconst delayedF = Math.max(0, ctx.frame - shift);\n\t\t\treturn this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: delayedF,\n\t\t\t\ttime: delayedF / ctx.fps\n\t\t\t});\n\t\t}, { label: `${this.label ?? \"sig\"}_delay(${shift})` });\n\t}\n\tspring(stiffness = 150, damping = 12) {\n\t\treturn this._derive((ctx) => {\n\t\t\tconst targetFrame = ctx.frame;\n\t\t\tif (targetFrame <= 0) return this.get(ctx);\n\t\t\tlet pos = this.get({\n\t\t\t\t...ctx,\n\t\t\t\tframe: 0,\n\t\t\t\ttime: 0\n\t\t\t});\n\t\t\tlet vel = 0;\n\t\t\tconst dt = 1 / Math.max(1, ctx.fps);\n\t\t\tfor (let f = 1; f <= targetFrame; f++) {\n\t\t\t\tconst targetVal = this.get({\n\t\t\t\t\t...ctx,\n\t\t\t\t\tframe: f,\n\t\t\t\t\ttime: f / ctx.fps\n\t\t\t\t});\n\t\t\t\tconst displacement = pos - targetVal;\n\t\t\t\tconst force = -stiffness * displacement - damping * vel;\n\t\t\t\tvel += force * dt;\n\t\t\t\tpos += vel * dt;\n\t\t\t}\n\t\t\treturn pos;\n\t\t}, { label: `${this.label ?? \"sig\"}_spring` });\n\t}\n\tadd(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) + other);\n\t\treturn this._derive((ctx) => this.get(ctx) + (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tsubtract(other) {\n\t\tif (typeof other === \"number\") return this._derive((ctx) => this.get(ctx) - other);\n\t\treturn this._derive((ctx) => this.get(ctx) - (Number(other.get(ctx)) || 0), void 0, other);\n\t}\n\tmultiply(factor) {\n\t\tif (typeof factor === \"number\") return this._derive((ctx) => this.get(ctx) * factor);\n\t\treturn this._derive((ctx) => this.get(ctx) * (Number(factor.get(ctx)) || 0), void 0, factor);\n\t}\n\tinvert() {\n\t\treturn this._derive((ctx) => 1 - this.get(ctx), { label: `${this.label ?? \"sig\"}_inverted` });\n\t}\n\tpow(exponent) {\n\t\treturn this._derive((ctx) => this.get(ctx) ** exponent);\n\t}\n\tmap(fn) {\n\t\treturn this._derive((ctx) => fn(this.get(ctx), ctx));\n\t}\n\ttoFrameArray(totalFrames, fps) {\n\t\tconst count = Math.max(1, totalFrames);\n\t\tconst f = fps ?? this._fps;\n\t\tconst out = new Float32Array(count);\n\t\tfor (let i = 0; i < count; i++) out[i] = this.get({\n\t\t\tframe: i,\n\t\t\tfps: f,\n\t\t\ttime: i / f,\n\t\t\tduration: count,\n\t\t\tdurationMs: count / f * 1e3,\n\t\t\tprogress: i / count,\n\t\t\tdeltaTime: 1 / f\n\t\t});\n\t\treturn out;\n\t}\n};\nfunction programmaticSignal(source, options) {\n\treturn new ProgrammaticSignal(source, options);\n}\n\n//#endregion\n//#region src/signals/resolve.ts\n/**\n* Unwraps a potential Signal, Signal-like object with `.peek()`,\n* or object with `.value`. Returns the raw value or the original object.\n*/\nfunction unwrapValue(val) {\n\tif (val === null || typeof val !== \"object\") return val;\n\tif (isSignal(val)) return val.peek();\n\tif (\"peek\" in val && typeof val.peek === \"function\") return val.peek();\n\tif (\"value\" in val) return val.value;\n\treturn val;\n}\n/**\n* Extracts a numeric value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, NaN, or non-numeric.\n*/\nfunction resolveNumber(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"number\" && !Number.isNaN(unwrapped) ? unwrapped : fallback;\n}\n/**\n* Extracts a string value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-string.\n*/\nfunction resolveString(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"string\" ? unwrapped : fallback;\n}\n/**\n* Extracts a boolean value from a primitive, Signal, or wrapper object.\n* Returns the fallback if undefined, null, or non-boolean.\n*/\nfunction resolveBoolean(val, fallback) {\n\tconst unwrapped = unwrapValue(val);\n\treturn typeof unwrapped === \"boolean\" ? unwrapped : fallback;\n}\n/**\n* Generic parameter resolver matching the fallback value's type.\n*/\nfunction resolveParam(val, fallback) {\n\tif (typeof fallback === \"number\") return resolveNumber(val, fallback);\n\tif (typeof fallback === \"string\") return resolveString(val, fallback);\n\tif (typeof fallback === \"boolean\") return resolveBoolean(val, fallback);\n\tconst unwrapped = unwrapValue(val);\n\treturn unwrapped !== void 0 && unwrapped !== null ? unwrapped : fallback;\n}\n\n//#endregion\n//#region src/signals/index.ts\nlet activeComputed = null;\nfunction registerSignalDependency(subscribers) {\n\tif (activeComputed !== null) {\n\t\tsubscribers.add(activeComputed);\n\t\tactiveComputed.deps.add(subscribers);\n\t}\n}\nfunction isSignal(val) {\n\treturn val !== null && typeof val === \"object\" && \"get\" in val && typeof val.get === \"function\" && \"value\" in val;\n}\nvar StateSignalImpl = class {\n\t_value;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(initialValue) {\n\t\tthis._value = initialValue;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tset value(nextValue) {\n\t\tthis.set(nextValue);\n\t}\n\tget() {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\treturn this._value;\n\t}\n\tset(nextValue) {\n\t\tif (Object.is(this._value, nextValue)) return;\n\t\tthis._value = nextValue;\n\t\tthis.notifySubscribers();\n\t}\n\tupdate(fn) {\n\t\tthis.set(fn(this._value));\n\t}\n\tnotifySubscribers() {\n\t\tif (this._subscribers.size === 0) return;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar ComputedImpl = class {\n\t_fn;\n\t_value;\n\t_dirty = true;\n\t_evaluating = false;\n\tdeps = /* @__PURE__ */ new Set();\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(fn) {\n\t\tthis._fn = fn;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget() {\n\t\tif (activeComputed !== null && activeComputed !== this) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tpeek() {\n\t\tif (this._dirty) this.compute();\n\t\treturn this._value;\n\t}\n\tmarkDirty() {\n\t\tif (this._dirty) return;\n\t\tthis._dirty = true;\n\t\tconst toNotify = Array.from(this._subscribers);\n\t\tfor (const sub of toNotify) sub.markDirty();\n\t}\n\tcompute() {\n\t\tif (this._evaluating) throw new Error(\"Cyclic dependency detected in computed signal\");\n\t\tfor (const depSubSet of this.deps) depSubSet.delete(this);\n\t\tthis.deps.clear();\n\t\tconst prevActive = activeComputed;\n\t\tactiveComputed = this;\n\t\tthis._evaluating = true;\n\t\ttry {\n\t\t\tthis._value = this._fn();\n\t\t\tthis._dirty = false;\n\t\t} finally {\n\t\t\tthis._evaluating = false;\n\t\t\tactiveComputed = prevActive;\n\t\t}\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nvar FrameArraySignalImpl = class {\n\tgpuBinding;\n\tfps;\n\t_samples;\n\t_cachedFrame = -1;\n\t_cachedValue = 0;\n\t_seekedFrame = -1;\n\t_subscribers = /* @__PURE__ */ new Set();\n\tconstructor(samples, fps = 24, gpuBinding) {\n\t\tthis._samples = samples;\n\t\tthis.fps = fps;\n\t\tthis.gpuBinding = gpuBinding;\n\t\tif (samples.length > 0) this._cachedValue = samples[0];\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tif (activeComputed !== null) {\n\t\t\tthis._subscribers.add(activeComputed);\n\t\t\tactiveComputed.deps.add(this._subscribers);\n\t\t}\n\t\tframeSignal.get();\n\t\tconst currentFrame = ctx?.frame ?? (this._seekedFrame >= 0 ? this._seekedFrame : frameSignal.value);\n\t\tif (this._cachedFrame === currentFrame) return this._cachedValue;\n\t\tthis._cachedFrame = currentFrame;\n\t\tif (!this._samples || this._samples.length === 0) {\n\t\t\tthis._cachedValue = 0;\n\t\t\treturn 0;\n\t\t}\n\t\tconst compFps = ctx?.fps ?? this.fps;\n\t\tconst targetFrame = compFps !== this.fps && compFps > 0 ? currentFrame / compFps * this.fps : currentFrame;\n\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(targetFrame)));\n\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\treturn this._cachedValue;\n\t}\n\tpeek() {\n\t\treturn this._cachedValue;\n\t}\n\tseekFrame(frame) {\n\t\tthis._seekedFrame = frame;\n\t\tthis._cachedFrame = frame;\n\t\tif (!this._samples || this._samples.length === 0) this._cachedValue = 0;\n\t\telse {\n\t\t\tconst idx = Math.max(0, Math.min(this._samples.length - 1, Math.round(frame)));\n\t\t\tthis._cachedValue = Number(this._samples[idx]) || 0;\n\t\t}\n\t\tfor (const sub of this._subscribers) sub.markDirty();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signal(initialValue) {\n\treturn new StateSignalImpl(initialValue);\n}\nfunction computed(fn) {\n\treturn new ComputedImpl(fn);\n}\nfunction frameArraySignal(samples, fps = 24, gpuBinding) {\n\treturn new FrameArraySignalImpl(samples, fps, gpuBinding);\n}\nconst frameSignal = signal(0);\nconst timeSignal = signal(0);\nconst progressSignal = signal(0);\nfunction updateClockSignals(frame, fps = 24, durationMs) {\n\tframeSignal.set(frame);\n\tconst timeSec = fps > 0 ? frame / fps : 0;\n\ttimeSignal.set(timeSec);\n\tif (durationMs && durationMs > 0) {\n\t\tconst durSec = durationMs / 1e3;\n\t\tprogressSignal.set(Math.max(0, Math.min(1, timeSec / durSec)));\n\t} else progressSignal.set(0);\n}\nvar ProceduralSignalImpl = class {\n\tgpuBinding;\n\t_config;\n\tconstructor(config) {\n\t\tthis._config = {\n\t\t\ttype: \"sine\",\n\t\t\tfrequency: 1,\n\t\t\tamplitude: 1,\n\t\t\toffset: 0,\n\t\t\tphase: 0,\n\t\t\t...config\n\t\t};\n\t\tthis.gpuBinding = config.gpuBinding;\n\t}\n\tget value() {\n\t\treturn this.get();\n\t}\n\tget(ctx) {\n\t\tframeSignal.get();\n\t\tconst frame = ctx?.frame ?? frameSignal.value;\n\t\tconst fps = ctx?.fps ?? 24;\n\t\tconst time = ctx?.time ?? (fps > 0 ? frame / fps : 0);\n\t\tif (this._config.fn) return this._config.fn(ctx ?? {\n\t\t\tframe,\n\t\t\tfps,\n\t\t\ttime,\n\t\t\tduration: 0,\n\t\t\tdurationMs: 0,\n\t\t\tprogress: 0,\n\t\t\tdeltaTime: fps > 0 ? 1 / fps : 0\n\t\t});\n\t\tconst freq = this._config.frequency ?? 1;\n\t\tconst amp = this._config.amplitude ?? 1;\n\t\tconst off = this._config.offset ?? 0;\n\t\tconst phase = this._config.phase ?? 0;\n\t\tswitch (this._config.type ?? \"sine\") {\n\t\t\tcase \"sine\": return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t\tcase \"triangle\": return off + amp * (2 * Math.abs(2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5))) - 1);\n\t\t\tcase \"sawtooth\": return off + amp * (2 * (time * freq + phase / (2 * Math.PI) - Math.floor(time * freq + phase / (2 * Math.PI) + .5)));\n\t\t\tcase \"square\": return off + (Math.sin(2 * Math.PI * freq * time + phase) >= 0 ? amp : -amp);\n\t\t\tcase \"bounce\": {\n\t\t\t\tconst cycle = time * freq % 1;\n\t\t\t\treturn off + amp * Math.abs(Math.sin(Math.PI * cycle));\n\t\t\t}\n\t\t\tdefault: return off + amp * Math.sin(2 * Math.PI * freq * time + phase);\n\t\t}\n\t}\n\tpeek() {\n\t\treturn this.get();\n\t}\n\tvalueOf() {\n\t\treturn this.get();\n\t}\n\t[Symbol.toPrimitive](hint) {\n\t\tif (hint === \"number\") return Number(this.get());\n\t\tif (hint === \"string\") return String(this.get());\n\t\treturn this.get();\n\t}\n};\nfunction signalBuilder(config) {\n\treturn new ProceduralSignalImpl(config);\n}\nfunction sineSignal(options = {}) {\n\tconst min = options.min;\n\tconst max = options.max;\n\tlet amplitude = options.amplitude ?? 1;\n\tlet offset = options.offset ?? 0;\n\tif (min !== void 0 && max !== void 0) {\n\t\toffset = (min + max) / 2;\n\t\tamplitude = (max - min) / 2;\n\t} else if (min !== void 0) offset = min + amplitude;\n\telse if (max !== void 0) offset = max - amplitude;\n\tconst period = options.period;\n\tconst frequency = options.frequency;\n\tconst phase = options.phase ?? 0;\n\treturn signalBuilder({\n\t\ttype: \"custom\",\n\t\tfn: (ctx) => {\n\t\t\tlet angle;\n\t\t\tif (period !== void 0 && period > 0) angle = 2 * Math.PI * ctx.frame / period + phase;\n\t\t\telse {\n\t\t\t\tconst freq = frequency ?? 1;\n\t\t\t\tangle = 2 * Math.PI * freq * ctx.time + phase;\n\t\t\t}\n\t\t\treturn offset + amplitude * Math.sin(angle);\n\t\t}\n\t});\n}\nfunction cosineSignal(options = {}) {\n\tconst min = options.min;\n\tconst max = options.max;\n\tlet amplitude = options.amplitude ?? 1;\n\tlet offset = options.offset ?? 0;\n\tif (min !== void 0 && max !== void 0) {\n\t\toffset = (min + max) / 2;\n\t\tamplitude = (max - min) / 2;\n\t} else if (min !== void 0) offset = min + amplitude;\n\telse if (max !== void 0) offset = max - amplitude;\n\tconst period = options.period;\n\tconst frequency = options.frequency;\n\tconst phase = options.phase ?? 0;\n\treturn signalBuilder({\n\t\ttype: \"custom\",\n\t\tfn: (ctx) => {\n\t\t\tlet angle;\n\t\t\tif (period !== void 0 && period > 0) angle = 2 * Math.PI * ctx.frame / period + phase;\n\t\t\telse {\n\t\t\t\tconst freq = frequency ?? 1;\n\t\t\t\tangle = 2 * Math.PI * freq * ctx.time + phase;\n\t\t\t}\n\t\t\treturn offset + amplitude * Math.cos(angle);\n\t\t}\n\t});\n}\nconst Signal = {\n\tstate: signal,\n\tcomputed,\n\tbuilder: signalBuilder,\n\tfromArray: frameArraySignal,\n\tprogrammatic: programmaticSignal,\n\tframe: frameSignal,\n\ttime: timeSignal,\n\tprogress: progressSignal,\n\tsine: sineSignal,\n\tcosine: cosineSignal\n};\n\n//#endregion\n//#region src/effects/index.ts\nvar Effect = class {\n\tsignals;\n\tconfig;\n\t_frameHooks = [];\n\tconstructor(initialConfig) {\n\t\tthis.config = { ...initialConfig };\n\t\tthis.signals = {};\n\t\tfor (const [key, val] of Object.entries(initialConfig)) if (isSignal(val)) this.signals[key] = val;\n\t\telse this.signals[key] = signal(val);\n\t\treturn new Proxy(this, {\n\t\t\tget(target, prop, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst sig = target.signals[prop];\n\t\t\t\t\treturn sig ? sig.value : void 0;\n\t\t\t\t}\n\t\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t\t},\n\t\t\tset(target, prop, val, receiver) {\n\t\t\t\tif (typeof prop === \"string\" && prop in target.signals) {\n\t\t\t\t\tconst currentSig = target.signals[prop];\n\t\t\t\t\tif (isSignal(val)) {\n\t\t\t\t\t\ttarget.signals[prop] = val;\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else if (currentSig && typeof currentSig.set === \"function\") {\n\t\t\t\t\t\tcurrentSig.set(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.signals[prop] = signal(val);\n\t\t\t\t\t\ttarget.config[prop] = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn Reflect.set(target, prop, val, receiver);\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Game-engine per-frame lifecycle hook.\n\t* Invoked before rendering each frame so scripts or agents can mutate properties.\n\t*/\n\tonRequestFrame(callback) {\n\t\tthis._frameHooks.push(callback);\n\t\treturn this;\n\t}\n\tnotifyFrame(ctx) {\n\t\tfor (const hook of this._frameHooks) hook(ctx);\n\t}\n\t/**\n\t* Samples concrete scalar / config values for the current frame.\n\t*/\n\tresolveUniforms(ctx) {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) out[k] = sig.get(ctx);\n\t\treturn out;\n\t}\n\t/**\n\t* Returns WebGPU texture bindings attached to any property signal.\n\t*/\n\tresolveTextures() {\n\t\tconst out = {};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst gpu = sig.gpuBinding;\n\t\t\tif (gpu?.textureView) out[`${k}TextureView`] = gpu.textureView;\n\t\t\tif (gpu?.texture) out[`${k}Texture`] = gpu.texture;\n\t\t}\n\t\treturn out;\n\t}\n\t/**\n\t* Converts the effect into an operation node for the VirtualMediaData AST.\n\t*/\n\ttoOperation() {\n\t\tconst opPayload = {\n\t\t\top: this.op,\n\t\t\teffect: this,\n\t\t\tonRequestFrame: (ctx) => this.notifyFrame(ctx),\n\t\t\tsignals: this.signals,\n\t\t\t...this.config\n\t\t};\n\t\tfor (const [k, sig] of Object.entries(this.signals)) {\n\t\t\tconst orig = this.config[k];\n\t\t\tif (!isSignal(orig) && (typeof orig === \"string\" || typeof orig === \"boolean\")) opPayload[k] = sig.value;\n\t\t\telse opPayload[k] = sig;\n\t\t}\n\t\treturn opPayload;\n\t}\n};\n\n//#endregion\n//#region src/errors.ts\nvar ModerationError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationError\";\n\t}\n};\nvar ModerationUnrefundableError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ModerationUnrefundableError\";\n\t}\n};\n\n//#endregion\n//#region src/id-gen.ts\n/**\n* Generates a unique ID using nanoid.\n* This function is cross-platform compatible (Node.js and Browser).\n*\n* @param size - Optional size of the ID (default is 21)\n* @returns A unique string ID\n*/\nconst generateId = (size) => {\n\treturn nanoid(size);\n};\n\n//#endregion\n//#region src/node-metadata.ts\nconst HandleDefinitionSchema = z$1.object({\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\trequired: z$1.boolean().optional(),\n\torder: z$1.number(),\n\tdescription: z$1.string().optional()\n});\nconst ConfigHandleSchema = z$1.object({\n\tconfigKey: z$1.string(),\n\tdataTypes: z$1.custom(),\n\tlabel: z$1.string(),\n\tdescription: z$1.string().optional()\n});\n/**\n* Metadata defining the interface and identity of a node.\n* This is safe to import in any environment.\n*/\nconst NodeMetadataSchema = z$1.object({\n\ttype: z$1.string().min(1),\n\tversion: z$1.number().int().positive().optional(),\n\tbaseType: z$1.string().optional(),\n\tdisplayName: z$1.string().min(1),\n\tdescription: z$1.string().optional(),\n\tshowInQuickAccess: z$1.boolean().optional(),\n\tshowInSidebar: z$1.boolean().optional(),\n\tadvanced: z$1.boolean().optional(),\n\tcategory: z$1.string().min(1),\n\tsubcategory: z$1.string().optional(),\n\tdefaultDimensions: z$1.object({\n\t\twidth: z$1.number().positive().optional(),\n\t\theight: z$1.number().positive().optional()\n\t}).optional(),\n\thandles: z$1.object({\n\t\tinputs: z$1.array(HandleDefinitionSchema),\n\t\toutputs: z$1.array(HandleDefinitionSchema)\n\t}),\n\tvariableInputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tvariableOutputs: z$1.discriminatedUnion(\"enabled\", [z$1.object({\n\t\tenabled: z$1.literal(true),\n\t\tdataTypes: z$1.custom()\n\t}), z$1.object({\n\t\tenabled: z$1.literal(false),\n\t\tdataTypes: z$1.custom().optional()\n\t})]).optional(),\n\tisTerminal: z$1.boolean().optional(),\n\tisTransient: z$1.boolean().optional(),\n\tconfigSchema: z$1.custom().optional(),\n\tdefaultConfig: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tvalidation: z$1.any().optional(),\n\tresultSchema: z$1.custom().optional(),\n\tconfigHandles: z$1.array(ConfigHandleSchema).optional()\n});\n\n//#endregion\n//#region src/render-diagnostics.ts\nconst STORE_KEY = Symbol.for(\"framefields.renderDiagnostics\");\nconst diagnosticsByRender = globalThis[STORE_KEY] ?? (globalThis[STORE_KEY] = /* @__PURE__ */ new Map());\nconst MAX_TRACKED_RENDERS = 256;\n/** Record a diagnostic for a render; repeats (same code, layer and message) are kept once. */\nfunction reportRenderDiagnostic(renderId, diagnostic) {\n\tlet forRender = diagnosticsByRender.get(renderId);\n\tif (!forRender) {\n\t\tif (diagnosticsByRender.size >= MAX_TRACKED_RENDERS) {\n\t\t\tconst oldest = diagnosticsByRender.keys().next().value;\n\t\t\tif (oldest !== void 0) diagnosticsByRender.delete(oldest);\n\t\t}\n\t\tforRender = /* @__PURE__ */ new Map();\n\t\tdiagnosticsByRender.set(renderId, forRender);\n\t}\n\tconst key = `${diagnostic.code}|${diagnostic.layerId ?? \"\"}|${diagnostic.message}`;\n\tif (!forRender.has(key)) forRender.set(key, diagnostic);\n}\n/**\n* Everything reported for a render, including its nested compositions (they\n* render under derived ids, `${renderId}-…`), removing it from the store.\n*/\nfunction takeRenderDiagnostics(renderId) {\n\tconst collected = /* @__PURE__ */ new Map();\n\tfor (const [id, forRender] of diagnosticsByRender) {\n\t\tif (id !== renderId && !id.startsWith(`${renderId}-`)) continue;\n\t\tfor (const [key, diagnostic] of forRender) collected.set(key, diagnostic);\n\t\tdiagnosticsByRender.delete(id);\n\t}\n\treturn [...collected.values()];\n}\n\n//#endregion\n//#region src/types/base.ts\nconst DataTypeVal = {\n\tText: \"Text\",\n\tNumber: \"Number\",\n\tBoolean: \"Boolean\",\n\tImage: \"Image\",\n\tVideo: \"Video\",\n\tAudio: \"Audio\",\n\tSVG: \"SVG\",\n\tCaption: \"Caption\",\n\tLottie: \"Lottie\",\n\tThreeD: \"ThreeD\",\n\tGIF: \"GIF\",\n\tSignal: \"Signal\",\n\tLUT: \"LUT\"\n};\nconst DataType = DataTypeVal;\nconst DataTypes = Object.values(DataTypeVal);\nconst HandleTypeVal = {\n\tInput: \"Input\",\n\tOutput: \"Output\"\n};\nconst JsonValueSchema = z$1.lazy(() => z$1.union([\n\tz$1.string(),\n\tz$1.number(),\n\tz$1.boolean(),\n\tz$1.null(),\n\tz$1.array(JsonValueSchema),\n\tz$1.record(z$1.string(), JsonValueSchema.optional())\n]));\n/**\n* Zod schema for the FileAsset model\n* Matches the Prisma schema definitions for types and nullability.\n*/\nconst FileAssetSchema = z$1.object({\n\tid: z$1.cuid2(),\n\tname: z$1.string(),\n\tcreatedAt: z$1.coerce.date(),\n\tupdatedAt: z$1.coerce.date(),\n\tuserId: z$1.cuid2().nullable(),\n\twidth: z$1.number().int().nullable(),\n\theight: z$1.number().int().nullable(),\n\tbucket: z$1.string(),\n\tsize: z$1.number().int(),\n\tmimeType: z$1.string(),\n\tkey: z$1.string(),\n\tisUploaded: z$1.boolean().default(true),\n\tduration: z$1.number().int().nullable(),\n\tsampleRate: z$1.number().int().nullable().optional(),\n\tchannels: z$1.number().int().nullable().optional(),\n\tbitDepth: z$1.number().int().nullable().optional(),\n\taudioCodec: z$1.string().nullable().optional(),\n\taudioBitrate: z$1.number().int().nullable().optional(),\n\tfps: z$1.number().int().nullable(),\n\tfingerprint: z$1.string().nullable()\n});\nconst NodeVisualConfigSchema = z$1.object({\n\tposition: z$1.object({\n\t\tx: z$1.number(),\n\t\ty: z$1.number()\n\t}).optional(),\n\twidth: z$1.number().nullish(),\n\theight: z$1.number().nullish(),\n\tlocked: z$1.boolean().optional().default(false),\n\tcollapsed: z$1.boolean().optional().default(false)\n}).passthrough();\n\n//#endregion\n//#region src/types/config/colors.ts\nconst dataTypeColors = {\n\tText: {\n\t\tbg: \"bg-blue-500\",\n\t\tstroke: \"stroke-blue-500\",\n\t\thex: \"#3b82f6\",\n\t\ttext: \"text-blue-500\",\n\t\tborder: \"border-blue-500\"\n\t},\n\tImage: {\n\t\tbg: \"bg-purple-500\",\n\t\tstroke: \"stroke-purple-500\",\n\t\thex: \"#a855f7\",\n\t\ttext: \"text-purple-500\",\n\t\tborder: \"border-purple-500\"\n\t},\n\tVideo: {\n\t\tbg: \"bg-teal-500\",\n\t\tstroke: \"stroke-teal-500\",\n\t\thex: \"oklch(60% 0.118 184.704)\",\n\t\ttext: \"text-teal-500\",\n\t\tborder: \"border-teal-500\"\n\t},\n\tAudio: {\n\t\tbg: \"bg-orange-500\",\n\t\tstroke: \"stroke-orange-500\",\n\t\thex: \"#f97316\",\n\t\ttext: \"text-orange-500\",\n\t\tborder: \"border-orange-500\"\n\t},\n\tNumber: {\n\t\tbg: \"bg-green-600\",\n\t\tstroke: \"stroke-green-600\",\n\t\thex: \"#16a34a\",\n\t\ttext: \"text-green-600\",\n\t\tborder: \"border-green-600\"\n\t},\n\tBoolean: {\n\t\tbg: \"bg-amber-600\",\n\t\tstroke: \"stroke-amber-600\",\n\t\thex: \"#d97706\",\n\t\ttext: \"text-amber-600\",\n\t\tborder: \"border-amber-600\"\n\t},\n\tSVG: {\n\t\tbg: \"bg-lime-600\",\n\t\tstroke: \"stroke-lime-600\",\n\t\thex: \"#65a30d\",\n\t\ttext: \"text-lime-600\",\n\t\tborder: \"border-lime-600\"\n\t},\n\tCaption: {\n\t\tbg: \"bg-rose-500\",\n\t\tstroke: \"stroke-rose-500\",\n\t\thex: \"#f43f5e\",\n\t\ttext: \"text-rose-500\",\n\t\tborder: \"border-rose-500\"\n\t},\n\tGIF: {\n\t\tbg: \"bg-pink-500\",\n\t\tstroke: \"stroke-pink-500\",\n\t\thex: \"#ec4899\",\n\t\ttext: \"text-pink-500\",\n\t\tborder: \"border-pink-500\"\n\t},\n\tLottie: {\n\t\tbg: \"bg-indigo-500\",\n\t\tstroke: \"stroke-indigo-500\",\n\t\thex: \"#6366f1\",\n\t\ttext: \"text-indigo-500\",\n\t\tborder: \"border-indigo-500\"\n\t},\n\tSignal: {\n\t\tbg: \"bg-fuchsia-500\",\n\t\tstroke: \"stroke-fuchsia-500\",\n\t\thex: \"#d946ef\",\n\t\ttext: \"text-fuchsia-500\",\n\t\tborder: \"border-fuchsia-500\"\n\t},\n\tLUT: {\n\t\tbg: \"bg-cyan-600\",\n\t\tstroke: \"stroke-cyan-600\",\n\t\thex: \"#0891b2\",\n\t\ttext: \"text-cyan-600\",\n\t\tborder: \"border-cyan-600\"\n\t}\n};\n\n//#endregion\n//#region src/types/config/schemas.ts\nconst DATA_TYPE_EXTENSIONS = {\n\tImage: \"png\",\n\tVideo: \"mp4\",\n\tAudio: \"mp3\",\n\tText: \"txt\",\n\tNumber: \"txt\",\n\tBoolean: \"txt\",\n\tSVG: \"svg\",\n\tCaption: \"srt\",\n\tLottie: \"json\",\n\tThreeD: \"glb\",\n\tGIF: \"gif\",\n\tSignal: \"txt\",\n\tLUT: \"cube\"\n};\nconst MIME_TYPES = {\n\tpng: \"image/png\",\n\tjpg: \"image/jpeg\",\n\tjpeg: \"image/jpeg\",\n\tgif: \"image/gif\",\n\twebp: \"image/webp\",\n\tsvg: \"image/svg+xml\",\n\tmp4: \"video/mp4\",\n\twebm: \"video/webm\",\n\tmov: \"video/quicktime\",\n\tmp3: \"audio/mpeg\",\n\twav: \"audio/wav\",\n\togg: \"audio/ogg\",\n\tpdf: \"application/pdf\",\n\tjson: \"application/json\",\n\ttxt: \"text/plain\",\n\tsrt: \"text/srt\",\n\taac: \"audio/aac\",\n\tflac: \"audio/flac\"\n};\nconst COMPOSITE_OPERATIONS = [\n\t\"source-over\",\n\t\"source-in\",\n\t\"source-out\",\n\t\"source-atop\",\n\t\"destination-over\",\n\t\"destination-in\",\n\t\"destination-out\",\n\t\"destination-atop\",\n\t\"lighter\",\n\t\"copy\",\n\t\"xor\",\n\t\"multiply\",\n\t\"screen\",\n\t\"overlay\",\n\t\"darken\",\n\t\"lighten\",\n\t\"color-dodge\",\n\t\"color-burn\",\n\t\"hard-light\",\n\t\"soft-light\",\n\t\"difference\",\n\t\"exclusion\",\n\t\"hue\",\n\t\"saturation\",\n\t\"color\",\n\t\"luminosity\"\n];\nconst GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);\nvar ConfigSchemaRegistry = class ConfigSchemaRegistry {\n\tstatic schemas = /* @__PURE__ */ new Map();\n\tstatic register(type, schema) {\n\t\tConfigSchemaRegistry.schemas.set(type, schema);\n\t}\n\tstatic get(type) {\n\t\treturn ConfigSchemaRegistry.schemas.get(type);\n\t}\n\tstatic clear() {\n\t\tConfigSchemaRegistry.schemas.clear();\n\t}\n};\n\n//#endregion\n//#region src/types/constants.ts\nconst COMPOSITOR_DEFAULTS = {\n\tFONT_FAMILY: \"Inter\",\n\tFONT_SIZE: 64,\n\tFILL: \"#ffffff\",\n\tLINE_HEIGHT: 1.1,\n\tALIGN: \"left\",\n\tVERTICAL_ALIGN: \"top\",\n\tLETTER_SPACING: 0,\n\tSTROKE_WIDTH: 0,\n\tSTROKE: \"#000000\",\n\tCORNER_RADIUS: 0,\n\tPADDING: 0\n};\n\n//#endregion\n//#region src/types/node-result.ts\nconst FileDataSchema = z$1.object({ entity: z$1.custom().optional() });\nconst SignalStatsSchema = z$1.object({\n\tmin: z$1.number().optional(),\n\tmax: z$1.number().optional(),\n\tmean: z$1.number().optional(),\n\trms: z$1.number().optional(),\n\tpeak: z$1.number().optional(),\n\tbeats: z$1.array(z$1.number()).optional(),\n\ttempo: z$1.number().optional()\n});\nconst SignalChannelMetaSchema = z$1.object({\n\tid: z$1.string(),\n\tname: z$1.string(),\n\tindex: z$1.number(),\n\tstats: SignalStatsSchema.optional()\n});\nconst GeneratorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"generator\"),\n\tnodeId: z$1.string().optional(),\n\tbaseType: z$1.string().optional(),\n\tfunc: z$1.enum([\n\t\t\"sine\",\n\t\t\"triangle\",\n\t\t\"sawtooth\",\n\t\t\"square\",\n\t\t\"custom\"\n\t]).or(z$1.string()).default(\"sine\"),\n\tfrequency: z$1.number().default(1),\n\tamplitude: z$1.number().default(1),\n\tphase: z$1.number().default(0),\n\toffset: z$1.number().default(0),\n\twaveform: z$1.string().optional(),\n\tbpm: z$1.number().optional(),\n\tsyncToBpm: z$1.boolean().optional(),\n\tfmFrequency: z$1.number().optional(),\n\tfmDepth: z$1.number().optional(),\n\tenvelope: z$1.string().optional(),\n\tfnBody: z$1.string().optional(),\n\tfnParams: z$1.array(z$1.record(z$1.string(), z$1.unknown())).optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tsignalFnName: z$1.string().optional(),\n\toutputType: z$1.string().optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst AudioExtractorSignalDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"audio_extractor\"),\n\tnodeId: z$1.string().optional(),\n\tsourceUrl: z$1.string().optional(),\n\tchannel: z$1.enum([\n\t\t\"primary\",\n\t\t\"beat\",\n\t\t\"bass\",\n\t\t\"energy\",\n\t\t\"spectral_flux\"\n\t]).or(z$1.string()).optional(),\n\tchannelIndex: z$1.number().optional(),\n\tchannels: z$1.array(SignalChannelMetaSchema).optional(),\n\textractionMode: z$1.string().optional(),\n\tattackMs: z$1.number().optional(),\n\treleaseMs: z$1.number().optional(),\n\tsensitivity: z$1.number().optional(),\n\tnoiseFloorDb: z$1.number().optional(),\n\tdynamicRangeDb: z$1.number().optional(),\n\tautoRange: z$1.boolean().optional(),\n\tsmoothing: z$1.number().optional(),\n\tcurve: z$1.string().optional(),\n\tbeatThreshold: z$1.number().optional(),\n\tbeatDecayMs: z$1.number().optional(),\n\tpreviewMode: z$1.string().optional(),\n\tsamples: z$1.union([z$1.array(z$1.number()), z$1.instanceof(Float32Array)]).optional(),\n\tfps: z$1.number().optional(),\n\tdurationMs: z$1.number().optional(),\n\tstats: SignalStatsSchema.optional(),\n\tstate: z$1.enum([\n\t\t\"pending\",\n\t\t\"ready\",\n\t\t\"failed\"\n\t]).optional(),\n\terror: z$1.string().optional(),\n\tvirtualMedia: z$1.record(z$1.string(), z$1.unknown()).optional(),\n\tsignalFnName: z$1.string().optional(),\n\tcustomWGSL: z$1.string().optional()\n}).passthrough();\nconst SignalMathDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"signal_math\"),\n\tnodeId: z$1.string().optional(),\n\top: z$1.string().optional(),\n\toperation: z$1.string().optional(),\n\tsignalA: z$1.unknown().optional(),\n\tsignalB: z$1.unknown().optional(),\n\tbValue: z$1.number().optional(),\n\tinMin: z$1.number().optional(),\n\tinMax: z$1.number().optional(),\n\toutMin: z$1.number().optional(),\n\toutMax: z$1.number().optional(),\n\tclampMin: z$1.number().optional(),\n\tclampMax: z$1.number().optional(),\n\texponent: z$1.number().optional(),\n\tedge0: z$1.number().optional(),\n\tedge1: z$1.number().optional(),\n\tcustomWGSL: z$1.string().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalGateDataSchema = z$1.object({\n\tv: z$1.literal(2).optional(),\n\ttype: z$1.literal(\"gate\"),\n\tnodeId: z$1.string().optional(),\n\tsourceSignal: z$1.unknown().optional(),\n\tthreshold: z$1.number().optional(),\n\tdebounceMs: z$1.number().optional(),\n\tmode: z$1.enum([\n\t\t\"gate\",\n\t\t\"trigger\",\n\t\t\"toggle\"\n\t]).optional(),\n\tholdFrames: z$1.number().optional(),\n\tinvert: z$1.boolean().optional(),\n\tstats: SignalStatsSchema.optional()\n}).passthrough();\nconst SignalDataSchema = z$1.union([\n\tGeneratorSignalDataSchema,\n\tAudioExtractorSignalDataSchema,\n\tSignalMathDataSchema,\n\tSignalGateDataSchema,\n\tz$1.object({ type: z$1.string() }).passthrough()\n]);\nfunction serializeSignalData(data) {\n\treturn JSON.stringify(data, (_key, value) => {\n\t\tif (value instanceof Float32Array) return Array.from(value);\n\t\treturn value;\n\t});\n}\nfunction deserializeSignalData(raw) {\n\tif (typeof raw === \"string\") try {\n\t\treturn SignalDataSchema.parse(JSON.parse(raw));\n\t} catch {\n\t\treturn { type: \"unknown\" };\n\t}\n\treturn SignalDataSchema.parse(raw);\n}\nconst OutputItemSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst createOutputItemSchema = (type, dataSchema) => {\n\treturn z$1.object({\n\t\ttype,\n\t\tdata: dataSchema,\n\t\toutputHandleId: z$1.string().optional()\n\t});\n};\nconst SingleOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.literal(0),\n\toutputs: z$1.tuple([z$1.object({ items: z$1.tuple([outputItemSchema]) })])\n});\nconst MultiOutputGenericSchema = (outputItemSchema) => z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(outputItemSchema) })),\n\tsourceFingerprint: z$1.string().optional()\n});\nconst AnyOutputUnionSchema = z$1.object({\n\ttype: z$1.custom(),\n\tdata: z$1.any(),\n\toutputHandleId: z$1.string().optional()\n});\nconst NodeResultSchema = z$1.object({\n\tselectedOutputIndex: z$1.number(),\n\toutputs: z$1.array(z$1.object({ items: z$1.array(AnyOutputUnionSchema) }))\n});\nconst ExportResultSchema = MultiOutputGenericSchema(AnyOutputUnionSchema);\n\n//#endregion\n//#region src/types/video/base-layer-schema.ts\nconst AnimationTypeSchema = z.enum([\n\t\"fade-in\",\n\t\"fade-out\",\n\t\"slide-in-left\",\n\t\"slide-in-right\",\n\t\"slide-in-top\",\n\t\"slide-in-bottom\",\n\t\"zoom-in\",\n\t\"zoom-out\",\n\t\"rotate-cw\",\n\t\"rotate-ccw\",\n\t\"bounce\",\n\t\"shake\"\n]);\nconst VideoAnimationSchema = z.object({\n\tid: z.string(),\n\ttype: AnimationTypeSchema,\n\tvalue: z.number()\n});\nconst VideoSpatialPropsSchema = z.object({\n\tx: z.number().default(0),\n\ty: z.number().default(0),\n\twidth: z.number().optional(),\n\theight: z.number().optional(),\n\trotation: z.number().default(0),\n\tscale: z.number().min(0).default(1),\n\topacity: z.number().min(0).max(1).default(1),\n\tzIndex: z.number().int().optional(),\n\tblendMode: GlobalCompositeOperation.optional()\n});\nconst VideoTimingPropsSchema = z.object({\n\tstartFrame: z.number().int().min(0).default(0),\n\tdurationInMS: z.number().int().min(1).optional(),\n\ttrimStart: z.number().int().min(0).optional(),\n\ttrimEnd: z.number().int().min(0).optional(),\n\tspeed: z.number().min(.25).max(4).optional()\n});\nconst VideoTextPropsSchema = z.object({\n\ttext: z.string().optional(),\n\tfontSize: z.number().optional(),\n\tfontFamily: z.string().optional(),\n\tfontStyle: z.string().optional(),\n\tfontWeight: z.union([z.number(), z.string()]).optional(),\n\tfill: z.string().optional(),\n\talign: z.string().optional(),\n\tverticalAlign: z.string().optional(),\n\tletterSpacing: z.number().optional(),\n\tlineHeight: z.number().optional(),\n\tpadding: z.number().optional(),\n\tstroke: z.string().optional(),\n\tstrokeWidth: z.number().optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional(),\n\ttextShadow: z.string().optional(),\n\ttextBackgroundColor: z.string().optional(),\n\tshadows: z.array(z.object({\n\t\tcolor: z.string(),\n\t\toffset: z.object({\n\t\t\tx: z.number(),\n\t\t\ty: z.number()\n\t\t}).optional(),\n\t\tblurRadius: z.number().optional()\n\t})).optional(),\n\ttextAnimation: z.any().optional(),\n\tbottomPadding: z.number().optional(),\n\tmaxWidth: z.number().optional()\n});\nconst VideoStylePropsSchema = z.object({\n\tbackgroundColor: z.string().optional(),\n\tborderColor: z.string().optional(),\n\tborderWidth: z.number().optional(),\n\tstrokeRadius: z.number().optional(),\n\tautoDimensions: z.boolean().optional()\n});\nconst VideoLayerTypeSchema = z.enum([\n\t\"Video\",\n\t\"Image\",\n\t\"Audio\",\n\t\"Text\",\n\t\"Caption\",\n\t\"SVG\",\n\t\"GIF\",\n\t\"Lottie\"\n]);\nconst BaseVideoLayerPropsSchema = VideoSpatialPropsSchema.merge(VideoTimingPropsSchema).merge(VideoTextPropsSchema).merge(VideoStylePropsSchema).extend({\n\ttype: VideoLayerTypeSchema.optional(),\n\tanimations: z.array(VideoAnimationSchema).optional()\n});\n\n//#endregion\n//#region src/types/video/transition-schema.ts\nconst TransitionTypeSchema = z.enum([\n\t\"none\",\n\t\"crossfade\",\n\t\"wipe-left\",\n\t\"wipe-right\",\n\t\"slide-up\",\n\t\"slide-down\"\n]);\nconst TransitionSchema = z.object({\n\ttype: TransitionTypeSchema,\n\tdurationFrames: z.number().min(1)\n});\n\n//#endregion\n//#region src/types/video/virtual-video.ts\nconst MediaSourceSchema = z.object({ entity: FileAssetSchema.optional() });\nconst MediaMetadataSchema = z.object({\n\twidth: z.number().optional().nullable(),\n\theight: z.number().optional().nullable(),\n\tfps: z.number().optional().nullable(),\n\tdurationMs: z.number().optional().nullable(),\n\tsampleRate: z.number().optional().nullable(),\n\tchannels: z.number().optional().nullable(),\n\tbitDepth: z.number().optional().nullable(),\n\taudioCodec: z.string().optional().nullable(),\n\taudioBitrate: z.number().optional().nullable()\n});\nconst TimelineSegmentSchema = z.object({\n\tstartSec: z.number(),\n\tendSec: z.number().optional()\n});\nconst TimelineTransformSchema = z.object({\n\tstartFrame: z.number().optional(),\n\tsegments: z.array(TimelineSegmentSchema).optional()\n});\nconst BaseMediaOperationPropsSchema = z.object({\n\tvolume: z.number().optional(),\n\topacity: z.number().optional(),\n\tstartFrame: z.number().optional(),\n\ttimeline: TimelineTransformSchema.optional()\n});\n/** Original source file (leaf node) */\nconst SourceOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"source\"),\n\tsource: MediaSourceSchema,\n\tsourceMeta: MediaMetadataSchema,\n\tdataType: z.enum(Object.values(DataTypeVal))\n});\n/** Text content (leaf node) */\nconst TextOperationSchema = BaseMediaOperationPropsSchema.extend({\n\top: z.literal(\"text\"),\n\ttext: z.string(),\n\tmetadata: MediaMetadataSchema.optional(),\n\tdataType: z.enum(Object.values(DataTypeVal))\n}).passthrough();\nconst MediaOperationSchema = z.union([\n\tSourceOperationSchema,\n\tTextOperationSchema,\n\tBaseMediaOperationPropsSchema.extend({\n\t\top: z.string(),\n\t\tmetadata: MediaMetadataSchema.optional(),\n\t\tdataType: z.enum(Object.values(DataTypeVal))\n\t}).passthrough()\n]);\nconst VirtualMediaDataSchema = z.lazy(() => z.object({\n\tmetadata: MediaMetadataSchema,\n\toperation: MediaOperationSchema,\n\tchildren: z.array(VirtualMediaDataSchema).default([])\n}));\n\n//#endregion\n//#region src/types/video/layer-schema.ts\nconst ExtendedLayerSchema = BaseVideoLayerPropsSchema.extend({\n\tid: z.string(),\n\tname: z.string().optional(),\n\ttype: VideoLayerTypeSchema,\n\tvirtualMedia: VirtualMediaDataSchema.optional(),\n\ttransitionIn: TransitionSchema.optional(),\n\ttransitionOut: TransitionSchema.optional(),\n\tdurationInMS: z.number(),\n\tmaxDurationInMS: z.number().optional(),\n\tsrc: z.string().optional(),\n\tvolume: z.number().default(1),\n\tinputHandleId: z.string().optional(),\n\tisPlaceholder: z.boolean().optional(),\n\tlockAspect: z.boolean().optional(),\n\tlockRatio: z.boolean().optional(),\n\tzIndex: z.number().optional()\n}).strict();\n\n//#endregion\n//#region src/types/video/rendering-defaults.ts\nconst DEFAULT_FPS = 60;\nconst DEFAULT_DURATION_MS = 3e3;\nconst DEFAULT_MEDIA_DIMENSION = 1080;\n/** Default styling applied to new Text layers. */\nconst TEXT_LAYER_DEFAULTS = {\n\tfontSize: 60,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\tfontStyle: \"normal\",\n\talign: \"start\",\n\tpadding: 0\n};\n/** Default styling applied to new Caption layers. */\nconst CAPTION_LAYER_DEFAULTS = {\n\tfontSize: 48,\n\tfontFamily: \"Inter\",\n\tfill: \"#ffffff\",\n\talign: \"center\",\n\tverticalAlign: \"bottom\",\n\tpadding: 0,\n\tlineHeight: 1.1,\n\ttextAnimation: {\n\t\tin: \"none\",\n\t\tout: \"none\",\n\t\tentranceMs: 0,\n\t\texitMs: 0,\n\t\tkinetic: \"none\",\n\t\tapplyBy: \"word\",\n\t\tsmoothing: true\n\t},\n\tbottomPadding: 60\n};\n\n//#endregion\n//#region src/types/video/resolve-media.ts\n/**\n* Identify the actual leaf media type (Video, Image, etc) by walking down the tree.\n* This can differ from getMediaType() if an operation (like Ken Burns) upgrades\n* an Image to a Video.\n*/\nfunction getLeafMediaType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") return vv.operation.dataType;\n\tif (vv.children && vv.children.length > 0) return getLeafMediaType(vv.children[0]);\n\treturn vv.operation.dataType;\n}\n/**\n* Resolve the MIME type of the leaf source media.\n*/\nfunction resolveMediaMimeType(vv) {\n\tif (!vv) return void 0;\n\tif (vv.operation?.op === \"source\") {\n\t\tconst op = vv.operation;\n\t\tif (op.mimeType) return op.mimeType;\n\t\tif (op.sourceMeta?.mimeType) return op.sourceMeta.mimeType;\n\t\tif (op.source?.entity?.mimeType) return op.source.entity.mimeType;\n\t\tconst url = typeof op.source === \"string\" ? op.source : op.url ?? op.source?.url;\n\t\tif (typeof url === \"string\") {\n\t\t\tconst ext = url.split(\".\").pop()?.toLowerCase();\n\t\t\tif (ext === \"mp4\") return \"video/mp4\";\n\t\t\tif (ext === \"webm\") return \"video/webm\";\n\t\t\tif (ext === \"mov\") return \"video/quicktime\";\n\t\t\tif (ext === \"png\") return \"image/png\";\n\t\t\tif (ext === \"jpg\" || ext === \"jpeg\") return \"image/jpeg\";\n\t\t\tif (ext === \"webp\") return \"image/webp\";\n\t\t\tif (ext === \"svg\") return \"image/svg+xml\";\n\t\t\tif (ext === \"mp3\") return \"audio/mpeg\";\n\t\t\tif (ext === \"wav\") return \"audio/wav\";\n\t\t\tif (ext === \"aac\") return \"audio/aac\";\n\t\t}\n\t}\n\tif (vv.children && vv.children.length > 0) return resolveMediaMimeType(vv.children[0]);\n}\n/**\n* Create a VirtualMediaData from a FileData source or Text.\n* Used by Import, VideoGen, and Text nodes to wrap concrete content.\n*/\nfunction createVirtualMedia(source, type = \"Video\") {\n\tif (source && typeof source === \"object\" && \"operation\" in source && \"metadata\" in source) return source;\n\tif (typeof source === \"string\") {\n\t\tconst url = source;\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: void 0,\n\t\t\theight: void 0,\n\t\t\tdurationMs: type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url) ? DEFAULT_DURATION_MS : void 0,\n\t\t\tfps: void 0\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tif (typeof source === \"object\" && source !== null && (\"url\" in source || \"path\" in source)) {\n\t\tconst desc = source;\n\t\tconst url = desc.url ?? desc.path;\n\t\tconst isImage = type === \"Image\" || /\\.(png|jpg|jpeg|webp|gif|svg)$/i.test(url);\n\t\tconst durationMs = desc.durationMs ?? (isImage ? DEFAULT_DURATION_MS : void 0);\n\t\tconst sourceMeta$1 = {\n\t\t\twidth: desc.width,\n\t\t\theight: desc.height,\n\t\t\tdurationMs,\n\t\t\tfps: desc.fps,\n\t\t\tsampleRate: desc.sampleRate,\n\t\t\tchannels: desc.channels,\n\t\t\tbitDepth: desc.bitDepth,\n\t\t\taudioCodec: desc.audioCodec,\n\t\t\taudioBitrate: desc.audioBitrate\n\t\t};\n\t\treturn {\n\t\t\tmetadata: sourceMeta$1,\n\t\t\toperation: {\n\t\t\t\top: \"source\",\n\t\t\t\turl,\n\t\t\t\tsource: url,\n\t\t\t\tsourceMeta: sourceMeta$1,\n\t\t\t\tdataType: type\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t}\n\tconst sourceMeta = getFileDataMetadata(source) || {\n\t\twidth: void 0,\n\t\theight: void 0,\n\t\tdurationMs: void 0,\n\t\tfps: void 0\n\t};\n\treturn {\n\t\tmetadata: sourceMeta,\n\t\toperation: {\n\t\t\top: \"source\",\n\t\t\tsource: { entity: source?.entity },\n\t\t\tsourceMeta,\n\t\t\tdataType: type\n\t\t},\n\t\tchildren: []\n\t};\n}\n/**\n* Identify if a VirtualMediaData node is intended to be Video, Audio, Image, or Text.\n*/\nfunction getMediaType(vv) {\n\tif (!vv) throw new Error(\"No media data provided\");\n\treturn vv.operation.dataType;\n}\n/**\n* Append an operation to an existing VirtualMediaData (recursive).\n* This creates a new parent node wrapping the current one as a child.\n*/\nfunction appendOperation(vv, operation) {\n\treturn {\n\t\tmetadata: computeNextMetadata(getActiveMediaMetadata(vv) ?? {}, operation),\n\t\toperation,\n\t\tchildren: [vv]\n\t};\n}\n/**\n* Helper to compute the metadata of the NEXT node in the operator tree.\n*/\nfunction computeNextMetadata(baseMeta, op) {\n\tlet { width, height, durationMs, fps, sampleRate, channels, bitDepth, audioCodec, audioBitrate } = baseMeta;\n\tif (\"metadata\" in op && op.metadata) {\n\t\twidth = op.metadata.width ?? width;\n\t\theight = op.metadata.height ?? height;\n\t\tdurationMs = op.metadata.durationMs ?? durationMs;\n\t\tfps = op.metadata.fps ?? fps;\n\t\tsampleRate = op.metadata.sampleRate ?? sampleRate;\n\t\tchannels = op.metadata.channels ?? channels;\n\t\tbitDepth = op.metadata.bitDepth ?? bitDepth;\n\t\taudioCodec = op.metadata.audioCodec ?? audioCodec;\n\t\taudioBitrate = op.metadata.audioBitrate ?? audioBitrate;\n\t}\n\tif (op.dataType === \"Audio\" || op.dataType === \"Text\" || op.dataType === \"Caption\") {\n\t\twidth = void 0;\n\t\theight = void 0;\n\t\tfps = void 0;\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs,\n\t\tfps,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\nfunction getFileDataMetadata(filedata) {\n\tif (!filedata) return null;\n\tconst { entity } = filedata;\n\tconst width = entity?.width;\n\tconst height = entity?.height;\n\tlet durationMs = entity?.duration;\n\tconst fps = entity?.fps;\n\tconst sampleRate = entity?.sampleRate;\n\tconst channels = entity?.channels;\n\tconst bitDepth = entity?.bitDepth;\n\tconst audioCodec = entity?.audioCodec;\n\tconst audioBitrate = entity?.audioBitrate;\n\tif (durationMs === void 0 || durationMs === null) {\n\t\tconst mimeType = entity?.mimeType ?? \"\";\n\t\tif (mimeType.startsWith(\"image/\") || mimeType === \"image/svg+xml\") durationMs = DEFAULT_DURATION_MS;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Get the active metadata from the VirtualMediaData node.\n* Simply returns the metadata property of the node.\n* Supports legacy formats (sourceMeta) and extracts from source if needed.\n*/\nfunction getActiveMediaMetadata(vv) {\n\tif (!vv) return null;\n\tlet width = vv.metadata?.width;\n\tlet height = vv.metadata?.height;\n\tlet durationMs = vv.metadata?.durationMs;\n\tlet fps = vv.metadata?.fps;\n\tlet sampleRate = vv.metadata?.sampleRate;\n\tlet channels = vv.metadata?.channels;\n\tlet bitDepth = vv.metadata?.bitDepth;\n\tlet audioCodec = vv.metadata?.audioCodec;\n\tlet audioBitrate = vv.metadata?.audioBitrate;\n\tconst op = vv.operation;\n\tif (op?.op === \"source\") {\n\t\tconst sm = op.sourceMeta || {};\n\t\tconst fdm = op.source ? getFileDataMetadata(op.source) : null;\n\t\twidth = width ?? sm.width ?? fdm?.width;\n\t\theight = height ?? sm.height ?? fdm?.height;\n\t\tdurationMs = durationMs ?? sm.durationMs ?? fdm?.durationMs;\n\t\tfps = fps ?? sm.fps ?? fdm?.fps;\n\t\tsampleRate = sampleRate ?? sm.sampleRate ?? fdm?.sampleRate;\n\t\tchannels = channels ?? sm.channels ?? fdm?.channels;\n\t\tbitDepth = bitDepth ?? sm.bitDepth ?? fdm?.bitDepth;\n\t\taudioCodec = audioCodec ?? sm.audioCodec ?? fdm?.audioCodec;\n\t\taudioBitrate = audioBitrate ?? sm.audioBitrate ?? fdm?.audioBitrate;\n\t}\n\tif (width === void 0 && height === void 0 && durationMs === void 0 && sampleRate === void 0 && channels === void 0) return null;\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tdurationMs: durationMs === 0 ? void 0 : durationMs,\n\t\tfps,\n\t\tsampleRate,\n\t\tchannels,\n\t\tbitDepth,\n\t\taudioCodec,\n\t\taudioBitrate\n\t};\n}\n/**\n* Compute the dimensions and offsets for rendering a cropped video.\n* Traverses the VirtualMediaData tree to find nested crops and source dimensions.\n*/\nfunction computeVideoCropRenderProps(virtualMedia) {\n\tlet totalOffsetX = 0;\n\tlet totalOffsetY = 0;\n\tlet hasCrop = false;\n\tlet sourceMetaFound = null;\n\tlet currentNode = virtualMedia;\n\twhile (currentNode) {\n\t\tconst op = currentNode.operation;\n\t\tif (op.op === \"Crop\") {\n\t\t\thasCrop = true;\n\t\t\tconst anyOp = op;\n\t\t\tconst inputMeta = currentNode.children[0]?.metadata;\n\t\t\tconst inputW = inputMeta?.width ?? 0;\n\t\t\tconst inputH = inputMeta?.height ?? 0;\n\t\t\tif (inputW > 0 && inputH > 0) {\n\t\t\t\tconst cropLeftPx = anyOp.leftPercentage / 100 * inputW;\n\t\t\t\tconst cropTopPx = anyOp.topPercentage / 100 * inputH;\n\t\t\t\ttotalOffsetX += cropLeftPx;\n\t\t\t\ttotalOffsetY += cropTopPx;\n\t\t\t}\n\t\t}\n\t\tif (op.op === \"source\") sourceMetaFound = op.sourceMeta ?? currentNode.metadata;\n\t\tcurrentNode = currentNode.children[0];\n\t}\n\tif (!hasCrop || !sourceMetaFound) return null;\n\tconst sourceW = sourceMetaFound.width ?? 1;\n\tconst sourceH = sourceMetaFound.height ?? 1;\n\treturn {\n\t\tvideoNaturalWidth: sourceW,\n\t\tvideoNaturalHeight: sourceH,\n\t\tcropTranslatePercentageX: -(totalOffsetX / sourceW) * 100,\n\t\tcropTranslatePercentageY: -(totalOffsetY / sourceH) * 100\n\t};\n}\n\n//#endregion\n//#region src/utils/is-equal.ts\n/**\n* Performs a deep comparison between two values to determine if they are equivalent.\n* Handles primitives, objects, arrays, Dates, and NaNs.\n*/\nfunction isEqual(a, b) {\n\tif (a === b) return true;\n\tif (typeof a === \"number\" && typeof b === \"number\" && Number.isNaN(a) && Number.isNaN(b)) return true;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tif (a.constructor !== b.constructor) return false;\n\t\tif (Array.isArray(a)) {\n\t\t\tif (a.length !== b.length) return false;\n\t\t\tfor (let i = 0; i < a.length; i++) if (!isEqual(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tif (a instanceof Date) return a.getTime() === b.getTime();\n\t\tif (a instanceof RegExp) return a.toString() === b.toString();\n\t\tconst keys = Object.keys(a);\n\t\tif (keys.length !== Object.keys(b).length) return false;\n\t\tfor (const key of keys) {\n\t\t\tif (!Object.hasOwn(b, key)) return false;\n\t\t\tif (!isEqual(a[key], b[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/utils/virtual-media.ts\n/**\n* Gets a stable object for hashing/fingerprinting by sorting keys and skipping volatile fields.\n*/\nfunction getStableData(data) {\n\tif (typeof data !== \"object\" || data === null) return data;\n\tif (Array.isArray(data)) return data.map(getStableData);\n\tconst result = {};\n\tconst keys = Object.keys(data).sort();\n\tfor (const key of keys) {\n\t\tconst val = data[key];\n\t\tif (key === \"createdAt\" || key === \"updatedAt\" || key === \"dataUrl\" || key === \"filePath\") continue;\n\t\tif (typeof val === \"string\" && val.startsWith(\"blob:\")) continue;\n\t\tif (key === \"entity\" && val && typeof val === \"object\" && val.id) {\n\t\t\tresult.entity = { id: val.id };\n\t\t\tcontinue;\n\t\t}\n\t\tresult[key] = getStableData(val);\n\t}\n\treturn result;\n}\n/**\n* Generates a fingerprint for the given data.\n*/\nfunction getFingerprint(data) {\n\tconst stableData = getStableData(data);\n\tconst str = JSON.stringify(stableData);\n\tif (str.length === 0) return \"0\";\n\tconst getHash = (seed) => {\n\t\tlet h1 = 3735928559 ^ seed;\n\t\tlet h2 = 1103547991 ^ seed;\n\t\tfor (let i = 0; i < str.length; i++) {\n\t\t\tconst ch = str.charCodeAt(i);\n\t\t\th1 = Math.imul(h1 ^ ch, 2654435761);\n\t\t\th2 = Math.imul(h2 ^ ch, 1597334677);\n\t\t}\n\t\th1 = Math.imul(h1 ^ h1 >>> 16, 2246822519);\n\t\th1 = Math.imul(h1 ^ h1 >>> 13, 3266489917);\n\t\th1 = h1 ^ h1 >>> 16;\n\t\th2 = Math.imul(h2 ^ h2 >>> 16, 2246822519);\n\t\th2 = Math.imul(h2 ^ h2 >>> 13, 3266489917);\n\t\th2 = h2 ^ h2 >>> 16;\n\t\treturn (h1 >>> 0).toString(36).padStart(7, \"0\") + (h2 >>> 0).toString(36).padStart(7, \"0\");\n\t};\n\treturn getHash(0) + getHash(1);\n}\n/**\n* Generates a version-aware fingerprint for render caching.\n* Includes app version so cached renders are invalidated on version bumps.\n*/\nfunction getRenderFingerprint(data, appVersion, extra) {\n\treturn getFingerprint({\n\t\t__v: appVersion,\n\t\tdata,\n\t\t...extra\n\t});\n}\n/**\n* Checks if data is VirtualMediaData.\n*/\nfunction isVirtualMediaData(data) {\n\treturn typeof data === \"object\" && data !== null && \"metadata\" in data && \"operation\" in data && \"children\" in data;\n}\n/**\n* Checks if the virtual media is just a raw source without any significant operations\n* that would require a rendering step (like transformations, trimming, or effects).\n*/\nfunction hasOnlySingleSource(data) {\n\tif (!isVirtualMediaData(data)) return false;\n\tif (data.operation.op === \"source\") {\n\t\tif (data.children && data.children.length > 0) return false;\n\t\tconst op = data.operation;\n\t\treturn !(op.volume !== void 0 && op.volume !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.startFrame !== void 0 && op.startFrame !== 0 || op.timeline && (op.timeline.startFrame !== void 0 && op.timeline.startFrame !== 0 || op.timeline.segments && op.timeline.segments.length > 0));\n\t}\n\tif (data.operation.op === \"compose\") return false;\n\tif (data.operation.op === \"layer\" && data.children.length === 1) {\n\t\tconst op = data.operation;\n\t\tif (!(op.x !== void 0 && op.x !== 0 || op.y !== void 0 && op.y !== 0 || op.rotation !== void 0 && op.rotation !== 0 || op.scale !== void 0 && op.scale !== 1 || op.opacity !== void 0 && op.opacity !== 1 || op.volume !== void 0 && op.volume !== 1 || op.zIndex !== void 0 || op.blendMode !== void 0 || op.filters !== void 0 || op.transitionIn !== void 0 || op.transitionOut !== void 0 || op.animations && op.animations.length > 0 || op.trimStart !== void 0 || op.trimEnd !== void 0 || op.speed !== void 0 || op.backgroundColor !== void 0 || op.borderColor !== void 0 || op.borderWidth !== void 0 || op.strokeRadius !== void 0)) return hasOnlySingleSource(data.children[0]);\n\t}\n\treturn false;\n}\n/**\n* Finds the source asset in a virtual media tree.\n*/\nfunction findSourceAsset(vm) {\n\tif (vm.operation.op === \"source\") return vm.operation.source;\n\tif (vm.children && vm.children.length > 0) return findSourceAsset(vm.children[0]);\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/result-cache.ts\n/**\n* Checks if a cached node result can be reused based on source fingerprint.\n* Returns the valid cached result, or null if the cache is stale.\n*/\nfunction checkNodeResultCache(currentResult, input) {\n\tif (!currentResult?.sourceFingerprint) return null;\n\tconst inputFingerprint = getFingerprint(input);\n\tif (currentResult.sourceFingerprint !== inputFingerprint) return null;\n\treturn currentResult;\n}\n/**\n* Creates a fresh result with a source fingerprint stamp.\n*/\nfunction stampResult(result, input) {\n\treturn {\n\t\t...result,\n\t\tsourceFingerprint: getFingerprint(input)\n\t};\n}\n\n//#endregion\n//#region src/utils/svg.ts\n/**\n* Attempts to parse the width and height of an SVG from its buffer.\n* Falls back to viewBox ratios if explicitly defined sizes are missing.\n*/\nfunction extractSvgDimensions(buffer) {\n\ttry {\n\t\tconst match = buffer.toString(\"utf-8\").match(/<svg[^>]*>/i);\n\t\tif (!match) return null;\n\t\tconst svgTag = match[0];\n\t\tconst getAttr = (name) => {\n\t\t\tconst attrMatch = svgTag.match(new RegExp(`${name}=[\"']([^\"']+)[\"']`, \"i\"));\n\t\t\tif (!attrMatch) return null;\n\t\t\tconst val = parseFloat(attrMatch[1].replace(/[a-z%]/gi, \"\"));\n\t\t\treturn isNaN(val) ? null : val;\n\t\t};\n\t\tlet w = getAttr(\"width\");\n\t\tlet h = getAttr(\"height\");\n\t\tconst viewBoxMatch = svgTag.match(/viewBox=[\"']([^\"']+)[\"']/i);\n\t\tif (viewBoxMatch) {\n\t\t\tconst parts = viewBoxMatch[1].split(/[\\s,]+/).map(parseFloat);\n\t\t\tif (parts.length >= 4 && !isNaN(parts[2]) && !isNaN(parts[3])) {\n\t\t\t\tconst vbW = parts[2];\n\t\t\t\tconst vbH = parts[3];\n\t\t\t\tif (w == null && h == null) {\n\t\t\t\t\tw = vbW;\n\t\t\t\t\th = vbH;\n\t\t\t\t} else if (w != null && h == null) h = w * (vbH / vbW);\n\t\t\t\telse if (h != null && w == null) w = h * (vbW / vbH);\n\t\t\t}\n\t\t}\n\t\tif (w != null && h != null && w > 0 && h > 0) return {\n\t\t\tw,\n\t\t\th\n\t\t};\n\t\treturn null;\n\t} catch (error) {\n\t\tconsole.error(\"Error parsing SVG dimensions\", error);\n\t\treturn null;\n\t}\n}\n\n//#endregion\nexport { AnimationTypeSchema, AnyOutputUnionSchema, AudioExtractorSignalDataSchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, CAPTION_LAYER_DEFAULTS, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, ConfigHandleSchema, ConfigSchemaRegistry, DATA_TYPE_EXTENSIONS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, Effect, ExportResultSchema, ExtendedLayerSchema, FileAssetSchema, FileDataSchema, GeneratorSignalDataSchema, GlobalCompositeOperation, HandleTypeVal, JsonValueSchema, MIME_TYPES, MediaMetadataSchema, MediaOperationSchema, MediaSourceSchema, ModerationError, ModerationUnrefundableError, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, OutputItemSchema, ProgrammaticSignal, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SourceOperationSchema, TEXT_LAYER_DEFAULTS, TextOperationSchema, TimelineSegmentSchema, TimelineTransformSchema, TransitionSchema, TransitionTypeSchema, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, VirtualMediaDataSchema, appendOperation, checkNodeResultCache, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, deserializeSignalData, extractSvgDimensions, findSourceAsset, frameArraySignal, frameSignal, generateId, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, hasOnlySingleSource, isEqual, isSignal, isVirtualMediaData, programmaticSignal, progressSignal, registerSignalDependency, reportRenderDiagnostic, resolveBoolean, resolveMediaMimeType, resolveNumber, resolveParam, resolveString, serializeSignalData, signal, signalBuilder, sineSignal, stampResult, takeRenderDiagnostics, timeSignal, updateClockSignals };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|