framefields 2.3.2 → 2.4.0

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.
Files changed (266) hide show
  1. package/README.md +24 -1
  2. package/dist/audio/index.d.mts +4 -4
  3. package/dist/audio/index.mjs +10 -10
  4. package/dist/{audio-BNnEclHU.d.mts → audio-C6toT7F3.d.mts} +3 -3
  5. package/dist/{audio-BNnEclHU.d.mts.map → audio-C6toT7F3.d.mts.map} +1 -1
  6. package/dist/{audio-C7Kn5xBm.mjs → audio-DXwNhi1z.mjs} +3 -3
  7. package/dist/{audio-C7Kn5xBm.mjs.map → audio-DXwNhi1z.mjs.map} +1 -1
  8. package/dist/{dist-CPUIfrtw.mjs → dist-Cl0mvShy.mjs} +2 -2
  9. package/dist/{dist-CPUIfrtw.mjs.map → dist-Cl0mvShy.mjs.map} +1 -1
  10. package/dist/{dist-CturBK2Z.mjs → dist-DRB6Vg5u.mjs} +1188 -743
  11. package/dist/dist-DRB6Vg5u.mjs.map +1 -0
  12. package/dist/effects/index.d.mts +4 -4
  13. package/dist/effects/index.mjs +34 -34
  14. package/dist/{effects-CW1VgdI5.mjs → effects-lBqG-vd1.mjs} +2 -2
  15. package/dist/{effects-CW1VgdI5.mjs.map → effects-lBqG-vd1.mjs.map} +1 -1
  16. package/dist/fonts/index.mjs +2 -2
  17. package/dist/{fonts-EgMNL8KE.mjs → fonts-DlRJD6NS.mjs} +2 -2
  18. package/dist/{fonts-EgMNL8KE.mjs.map → fonts-DlRJD6NS.mjs.map} +1 -1
  19. package/dist/{gpu-CN14e7Bi.mjs → gpu-DOQX1W2q.mjs} +2 -2
  20. package/dist/{gpu-CN14e7Bi.mjs.map → gpu-DOQX1W2q.mjs.map} +1 -1
  21. package/dist/{index-QmkcUL3W.d.mts → index-BHqdtJbN.d.mts} +2 -2
  22. package/dist/{index-QmkcUL3W.d.mts.map → index-BHqdtJbN.d.mts.map} +1 -1
  23. package/dist/{index-CeRv1KC0.d.mts → index-BONyHjZX.d.mts} +3 -3
  24. package/dist/{index-CeRv1KC0.d.mts.map → index-BONyHjZX.d.mts.map} +1 -1
  25. package/dist/{index-Cg2ptXcs.d.mts → index-CaiZ5p6q.d.mts} +2 -2
  26. package/dist/{index-Cg2ptXcs.d.mts.map → index-CaiZ5p6q.d.mts.map} +1 -1
  27. package/dist/{index-BU51pxZO.d.mts → index-Cf1pVxn0.d.mts} +4 -4
  28. package/dist/{index-BU51pxZO.d.mts.map → index-Cf1pVxn0.d.mts.map} +1 -1
  29. package/dist/{index-AdrZIWT0.d.mts → index-DEODKaL6.d.mts} +13 -1
  30. package/dist/index-DEODKaL6.d.mts.map +1 -0
  31. package/dist/{index-B3BwLHa6.d.mts → index-DN9oXO-X.d.mts} +3 -3
  32. package/dist/{index-B3BwLHa6.d.mts.map → index-DN9oXO-X.d.mts.map} +1 -1
  33. package/dist/index.d.mts +177 -9
  34. package/dist/index.d.mts.map +1 -1
  35. package/dist/index.mjs +485 -90
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/preview/index.d.mts +2 -2
  38. package/dist/preview/index.mjs +10 -10
  39. package/dist/{preview-1sjnhHQL.mjs → preview-Ca4tF5Ro.mjs} +2 -2
  40. package/dist/{preview-1sjnhHQL.mjs.map → preview-Ca4tF5Ro.mjs.map} +1 -1
  41. package/dist/preview-engine/chunk-7QJUC6YY.mjs +1525 -0
  42. package/dist/preview-engine/framefields.mjs +32 -25
  43. package/dist/preview-engine/player.mjs +1 -1
  44. package/dist/preview-engine/{renderers-WP2LBR5U.mjs → renderers-HQEKSUNR.mjs} +3 -3
  45. package/dist/{program-DtiNMTxO.mjs → program-CJEg2wMa.mjs} +2 -2
  46. package/dist/{program-DtiNMTxO.mjs.map → program-CJEg2wMa.mjs.map} +1 -1
  47. package/dist/renderer/index.d.mts +2 -2
  48. package/dist/renderer/index.mjs +2 -2
  49. package/dist/renderer--IHe-yqK.mjs +5 -0
  50. package/dist/{renderer-CMzd3BrW.mjs → renderer-445i0uxs.mjs} +2 -2
  51. package/dist/{renderer-CMzd3BrW.mjs.map → renderer-445i0uxs.mjs.map} +1 -1
  52. package/dist/{renderer-MS70wrQB.mjs → renderer-5tQ7ImPk.mjs} +2 -2
  53. package/dist/{renderer-MS70wrQB.mjs.map → renderer-5tQ7ImPk.mjs.map} +1 -1
  54. package/dist/{renderer-Dw1e5phO.mjs → renderer-Ai5nZsof.mjs} +3 -3
  55. package/dist/{renderer-Dw1e5phO.mjs.map → renderer-Ai5nZsof.mjs.map} +1 -1
  56. package/dist/renderer-B16iwR0_.mjs +5 -0
  57. package/dist/renderer-B3EEYpx6.mjs +5 -0
  58. package/dist/renderer-B3Si5IB4.mjs +5 -0
  59. package/dist/{renderer-ktpusVT2.mjs → renderer-B4JmNa_T.mjs} +3 -3
  60. package/dist/{renderer-ktpusVT2.mjs.map → renderer-B4JmNa_T.mjs.map} +1 -1
  61. package/dist/{renderer-CBG6ewNf.mjs → renderer-B6UqWjtH.mjs} +3 -3
  62. package/dist/{renderer-CBG6ewNf.mjs.map → renderer-B6UqWjtH.mjs.map} +1 -1
  63. package/dist/{renderer-BmWH4dK1.mjs → renderer-B8v8iEkB.mjs} +7 -6
  64. package/dist/{renderer-BmWH4dK1.mjs.map → renderer-B8v8iEkB.mjs.map} +1 -1
  65. package/dist/{renderer-dJcu7WqI.mjs → renderer-BFWRUTov.mjs} +3 -3
  66. package/dist/{renderer-dJcu7WqI.mjs.map → renderer-BFWRUTov.mjs.map} +1 -1
  67. package/dist/renderer-BH8vZKmX.mjs +5 -0
  68. package/dist/renderer-BHZie6Pa.mjs +5 -0
  69. package/dist/renderer-BHpJ1e15.mjs +5 -0
  70. package/dist/{renderer-CRYO5HQw.mjs → renderer-BL36f2IQ.mjs} +2 -2
  71. package/dist/{renderer-CRYO5HQw.mjs.map → renderer-BL36f2IQ.mjs.map} +1 -1
  72. package/dist/{renderer-Bq9jXYJ5.mjs → renderer-BOvCstdU.mjs} +3 -3
  73. package/dist/{renderer-Bq9jXYJ5.mjs.map → renderer-BOvCstdU.mjs.map} +1 -1
  74. package/dist/renderer-BPJ79b47.mjs +5 -0
  75. package/dist/renderer-BPbM_6WR.mjs +5 -0
  76. package/dist/{renderer-DjwF10p2.mjs → renderer-BPsi7Q7Z.mjs} +3 -3
  77. package/dist/{renderer-DjwF10p2.mjs.map → renderer-BPsi7Q7Z.mjs.map} +1 -1
  78. package/dist/{renderer-BYj8x8YM.mjs → renderer-BTJyO6ov.mjs} +2 -2
  79. package/dist/{renderer-BYj8x8YM.mjs.map → renderer-BTJyO6ov.mjs.map} +1 -1
  80. package/dist/{renderer-DmOewVsB.mjs → renderer-BZCLdb8F.mjs} +3 -3
  81. package/dist/{renderer-DmOewVsB.mjs.map → renderer-BZCLdb8F.mjs.map} +1 -1
  82. package/dist/{renderer-CbNW0KHh.mjs → renderer-BZF48o1T.mjs} +3 -3
  83. package/dist/{renderer-CbNW0KHh.mjs.map → renderer-BZF48o1T.mjs.map} +1 -1
  84. package/dist/{renderer-_Fh9IBlE.mjs → renderer-BZWiY6Jw.mjs} +3 -3
  85. package/dist/{renderer-_Fh9IBlE.mjs.map → renderer-BZWiY6Jw.mjs.map} +1 -1
  86. package/dist/{renderer-Fm2brScz.mjs → renderer-BZvWlGsa.mjs} +3 -3
  87. package/dist/{renderer-Fm2brScz.mjs.map → renderer-BZvWlGsa.mjs.map} +1 -1
  88. package/dist/{renderer-DL4oR40b.mjs → renderer-BaBluD-r.mjs} +2 -2
  89. package/dist/{renderer-DL4oR40b.mjs.map → renderer-BaBluD-r.mjs.map} +1 -1
  90. package/dist/{renderer-DacnnTjY.mjs → renderer-BaHEN_Kv.mjs} +3 -3
  91. package/dist/{renderer-DacnnTjY.mjs.map → renderer-BaHEN_Kv.mjs.map} +1 -1
  92. package/dist/{renderer-Mdyv_W8K.mjs → renderer-BhZutM8K.mjs} +3 -3
  93. package/dist/{renderer-Mdyv_W8K.mjs.map → renderer-BhZutM8K.mjs.map} +1 -1
  94. package/dist/renderer-Bn-WnRh9.mjs +5 -0
  95. package/dist/renderer-BqHvDAUe.mjs +5 -0
  96. package/dist/{renderer-D8tdGi2P.mjs → renderer-BtJ6XYN7.mjs} +3 -3
  97. package/dist/{renderer-D8tdGi2P.mjs.map → renderer-BtJ6XYN7.mjs.map} +1 -1
  98. package/dist/{renderer-F410V727.mjs → renderer-BzgnTEvf.mjs} +3 -3
  99. package/dist/{renderer-F410V727.mjs.map → renderer-BzgnTEvf.mjs.map} +1 -1
  100. package/dist/{renderer-D-eTVnDS.mjs → renderer-C-La-IAt.mjs} +2 -2
  101. package/dist/{renderer-D-eTVnDS.mjs.map → renderer-C-La-IAt.mjs.map} +1 -1
  102. package/dist/{renderer-BFHgl-0f.mjs → renderer-C2ZIAhdJ.mjs} +2 -2
  103. package/dist/{renderer-BFHgl-0f.mjs.map → renderer-C2ZIAhdJ.mjs.map} +1 -1
  104. package/dist/{renderer-BebePsG7.mjs → renderer-C9pl21Zb.mjs} +2 -2
  105. package/dist/{renderer-BebePsG7.mjs.map → renderer-C9pl21Zb.mjs.map} +1 -1
  106. package/dist/renderer-CAtXDNsh.mjs +5 -0
  107. package/dist/{renderer-BkXqFmNO.mjs → renderer-CCCitH4J.mjs} +2 -2
  108. package/dist/{renderer-BkXqFmNO.mjs.map → renderer-CCCitH4J.mjs.map} +1 -1
  109. package/dist/{renderer-QMGrRiab.mjs → renderer-CCu1Q8ib.mjs} +2 -2
  110. package/dist/{renderer-QMGrRiab.mjs.map → renderer-CCu1Q8ib.mjs.map} +1 -1
  111. package/dist/{renderer-DvoPplvC.mjs → renderer-CG4TmDWH.mjs} +2 -2
  112. package/dist/{renderer-S6ez0leJ.mjs → renderer-CJmZURPQ.mjs} +2 -2
  113. package/dist/{renderer-S6ez0leJ.mjs.map → renderer-CJmZURPQ.mjs.map} +1 -1
  114. package/dist/{renderer-CPNLkir4.mjs → renderer-CN3iCli4.mjs} +2 -2
  115. package/dist/{renderer-CPNLkir4.mjs.map → renderer-CN3iCli4.mjs.map} +1 -1
  116. package/dist/{renderer--S2cNYXS.mjs → renderer-CNS8LA2_.mjs} +3 -3
  117. package/dist/{renderer--S2cNYXS.mjs.map → renderer-CNS8LA2_.mjs.map} +1 -1
  118. package/dist/renderer-C_5nfVce.mjs +5 -0
  119. package/dist/{renderer-ButaUWLr.mjs → renderer-CduDa1qf.mjs} +3 -3
  120. package/dist/{renderer-ButaUWLr.mjs.map → renderer-CduDa1qf.mjs.map} +1 -1
  121. package/dist/{renderer-Ch1rv1XP.mjs → renderer-CduL1AOK.mjs} +2 -2
  122. package/dist/{renderer-Ch1rv1XP.mjs.map → renderer-CduL1AOK.mjs.map} +1 -1
  123. package/dist/{renderer-z3YOOR3k.mjs → renderer-Cfto0m0-.mjs} +3 -3
  124. package/dist/{renderer-z3YOOR3k.mjs.map → renderer-Cfto0m0-.mjs.map} +1 -1
  125. package/dist/{renderer-CJwgsecF.mjs → renderer-CgZ1G37H.mjs} +2 -2
  126. package/dist/{renderer-CJwgsecF.mjs.map → renderer-CgZ1G37H.mjs.map} +1 -1
  127. package/dist/renderer-Cie7KKeQ.mjs +5 -0
  128. package/dist/{renderer-BaOC1Pd1.mjs → renderer-CjTxu89O.mjs} +3 -3
  129. package/dist/{renderer-BaOC1Pd1.mjs.map → renderer-CjTxu89O.mjs.map} +1 -1
  130. package/dist/{renderer-C2Ff-9u_.mjs → renderer-CoN2JgLO.mjs} +2 -2
  131. package/dist/{renderer-C2Ff-9u_.mjs.map → renderer-CoN2JgLO.mjs.map} +1 -1
  132. package/dist/{renderer-DjPC9l3w.mjs → renderer-CoO2j8AC.mjs} +3 -3
  133. package/dist/{renderer-DjPC9l3w.mjs.map → renderer-CoO2j8AC.mjs.map} +1 -1
  134. package/dist/{renderer-BRWpn3dT.mjs → renderer-CoX23zo_.mjs} +3 -3
  135. package/dist/{renderer-BRWpn3dT.mjs.map → renderer-CoX23zo_.mjs.map} +1 -1
  136. package/dist/renderer-CuoxvPsX.mjs +5 -0
  137. package/dist/renderer-Cvd3oIJQ.mjs +5 -0
  138. package/dist/renderer-CxAgpBrJ.mjs +5 -0
  139. package/dist/{renderer-C4puWDLK.mjs → renderer-CxSH3F_n.mjs} +2 -2
  140. package/dist/{renderer-C4puWDLK.mjs.map → renderer-CxSH3F_n.mjs.map} +1 -1
  141. package/dist/{renderer-B6c_Rk_2.mjs → renderer-Cz9fzS11.mjs} +3 -3
  142. package/dist/{renderer-B6c_Rk_2.mjs.map → renderer-Cz9fzS11.mjs.map} +1 -1
  143. package/dist/{renderer-BAmGO6Hj.mjs → renderer-D-IcBLT0.mjs} +3 -3
  144. package/dist/{renderer-BAmGO6Hj.mjs.map → renderer-D-IcBLT0.mjs.map} +1 -1
  145. package/dist/renderer-D-cWBX0r.mjs +5 -0
  146. package/dist/{renderer-DqlvbOUt.mjs → renderer-D-e3vDnO.mjs} +3 -3
  147. package/dist/{renderer-DqlvbOUt.mjs.map → renderer-D-e3vDnO.mjs.map} +1 -1
  148. package/dist/renderer-D0q2VyJR.mjs +5 -0
  149. package/dist/{renderer-BqSiWRoD.mjs → renderer-D4E8Yf61.mjs} +2 -2
  150. package/dist/{renderer-BqSiWRoD.mjs.map → renderer-D4E8Yf61.mjs.map} +1 -1
  151. package/dist/renderer-D6NXn3Ky.mjs +5 -0
  152. package/dist/renderer-D9bp2jor.mjs +5 -0
  153. package/dist/{renderer-GlyeFl5R.mjs → renderer-DA1brg35.mjs} +3 -3
  154. package/dist/{renderer-GlyeFl5R.mjs.map → renderer-DA1brg35.mjs.map} +1 -1
  155. package/dist/{renderer-DNhOjz6C.mjs → renderer-DAFi5TC_.mjs} +2 -2
  156. package/dist/{renderer-DNhOjz6C.mjs.map → renderer-DAFi5TC_.mjs.map} +1 -1
  157. package/dist/renderer-DEzIOIB7.mjs +5 -0
  158. package/dist/{renderer-B5Icb0XW.mjs → renderer-DFX2V9Dp.mjs} +2 -2
  159. package/dist/{renderer-B5Icb0XW.mjs.map → renderer-DFX2V9Dp.mjs.map} +1 -1
  160. package/dist/{renderer-w8LKBg_5.mjs → renderer-DH0wkQkR.mjs} +2 -2
  161. package/dist/{renderer-w8LKBg_5.mjs.map → renderer-DH0wkQkR.mjs.map} +1 -1
  162. package/dist/{renderer-BXCZev4l.mjs → renderer-DOZJeWM4.mjs} +3 -3
  163. package/dist/{renderer-BXCZev4l.mjs.map → renderer-DOZJeWM4.mjs.map} +1 -1
  164. package/dist/{renderer-Cz11KJmQ.mjs → renderer-DOkEalxy.mjs} +2 -2
  165. package/dist/{renderer-Cz11KJmQ.mjs.map → renderer-DOkEalxy.mjs.map} +1 -1
  166. package/dist/renderer-DSSTVulw.mjs +5 -0
  167. package/dist/renderer-DUmTURPu.mjs +5 -0
  168. package/dist/{renderer-BI1nmIqA.mjs → renderer-DVaVVz-D.mjs} +3 -3
  169. package/dist/{renderer-BI1nmIqA.mjs.map → renderer-DVaVVz-D.mjs.map} +1 -1
  170. package/dist/renderer-DXCAgI9m.mjs +5 -0
  171. package/dist/{renderer-BlafvK-L.mjs → renderer-DY8fPeH3.mjs} +2 -2
  172. package/dist/renderer-DZ9j3fQj.mjs +5 -0
  173. package/dist/{renderer-6QAlE1Mp.mjs → renderer-DZndEvZN.mjs} +3 -3
  174. package/dist/{renderer-6QAlE1Mp.mjs.map → renderer-DZndEvZN.mjs.map} +1 -1
  175. package/dist/{renderer-B3x-uogM.mjs → renderer-DaV95CAd.mjs} +3 -3
  176. package/dist/{renderer-B3x-uogM.mjs.map → renderer-DaV95CAd.mjs.map} +1 -1
  177. package/dist/{renderer-YtRSM2cv.mjs → renderer-DautVsW4.mjs} +2 -2
  178. package/dist/{renderer-YtRSM2cv.mjs.map → renderer-DautVsW4.mjs.map} +1 -1
  179. package/dist/renderer-Dd1G_VKM.mjs +5 -0
  180. package/dist/renderer-Dee8079X.mjs +5 -0
  181. package/dist/{renderer-B48vtpou.mjs → renderer-Dg5yLAM9.mjs} +3 -3
  182. package/dist/{renderer-B48vtpou.mjs.map → renderer-Dg5yLAM9.mjs.map} +1 -1
  183. package/dist/renderer-DgWh5noB.mjs +5 -0
  184. package/dist/{renderer-DlESyfg7.d.mts → renderer-Dim2ZlfK.d.mts} +2 -2
  185. package/dist/{renderer-DlESyfg7.d.mts.map → renderer-Dim2ZlfK.d.mts.map} +1 -1
  186. package/dist/{renderer-R0sJId_6.mjs → renderer-Dk0dnuHr.mjs} +2 -2
  187. package/dist/{renderer-R0sJId_6.mjs.map → renderer-Dk0dnuHr.mjs.map} +1 -1
  188. package/dist/{renderer-Bf4BdBtb.mjs → renderer-DkM_wN8j.mjs} +2 -2
  189. package/dist/{renderer-Bf4BdBtb.mjs.map → renderer-DkM_wN8j.mjs.map} +1 -1
  190. package/dist/{renderer-DS64UaYK.mjs → renderer-DkYiOWPJ.mjs} +3 -3
  191. package/dist/{renderer-DS64UaYK.mjs.map → renderer-DkYiOWPJ.mjs.map} +1 -1
  192. package/dist/{renderer-ITtBRR4o.mjs → renderer-DqgduGiO.mjs} +3 -3
  193. package/dist/{renderer-ITtBRR4o.mjs.map → renderer-DqgduGiO.mjs.map} +1 -1
  194. package/dist/renderer-DuD9QRix.mjs +5 -0
  195. package/dist/{renderer--Da6pAJ4.mjs → renderer-Edn9xltT.mjs} +2 -2
  196. package/dist/renderer-KtG5p44R.mjs +5 -0
  197. package/dist/{renderer-DDBmBmQN.mjs → renderer-Tf1AS1aO.mjs} +2 -2
  198. package/dist/{renderer-DDBmBmQN.mjs.map → renderer-Tf1AS1aO.mjs.map} +1 -1
  199. package/dist/{renderer-_-MCpvGq.mjs → renderer-TyZu7nQ2.mjs} +69 -69
  200. package/dist/{renderer-_-MCpvGq.mjs.map → renderer-TyZu7nQ2.mjs.map} +1 -1
  201. package/dist/{renderer-CgEMtLOL.mjs → renderer-eWBBsCv2.mjs} +2 -2
  202. package/dist/{renderer-CgEMtLOL.mjs.map → renderer-eWBBsCv2.mjs.map} +1 -1
  203. package/dist/{renderer-ClK7_Yzz.mjs → renderer-fXRwAdO2.mjs} +2 -2
  204. package/dist/{renderer-ClK7_Yzz.mjs.map → renderer-fXRwAdO2.mjs.map} +1 -1
  205. package/dist/renderer-fdVdNIhL.mjs +5 -0
  206. package/dist/renderer-gBKWL0_E.mjs +5 -0
  207. package/dist/{renderer-D90PpIKG.mjs → renderer-gbBgGPNL.mjs} +2 -2
  208. package/dist/{renderer-Kj9AhRCc.mjs → renderer-h9sJnoxw.mjs} +3 -3
  209. package/dist/{renderer-Kj9AhRCc.mjs.map → renderer-h9sJnoxw.mjs.map} +1 -1
  210. package/dist/renderer-hmWhsR6C.mjs +5 -0
  211. package/dist/{renderer-Rg1BFv8B.mjs → renderer-i4RJ-_sx.mjs} +2 -2
  212. package/dist/{renderer-Rg1BFv8B.mjs.map → renderer-i4RJ-_sx.mjs.map} +1 -1
  213. package/dist/renderer-jkL9FU2W.mjs +6 -0
  214. package/dist/{renderer-8k-TR_Cy.mjs → renderer-nMnE_T2y.mjs} +3 -3
  215. package/dist/{renderer-8k-TR_Cy.mjs.map → renderer-nMnE_T2y.mjs.map} +1 -1
  216. package/dist/{renderer-CczmOPAO.mjs → renderer-q971j1BW.mjs} +3 -3
  217. package/dist/{renderer-CczmOPAO.mjs.map → renderer-q971j1BW.mjs.map} +1 -1
  218. package/dist/{renderer-DJWQWN1E.mjs → renderer-wFyrVuuj.mjs} +3 -3
  219. package/dist/{renderer-DJWQWN1E.mjs.map → renderer-wFyrVuuj.mjs.map} +1 -1
  220. package/dist/renderer-yAWv-daq.mjs +5 -0
  221. package/dist/{renderer-DYo_a5-8.mjs → renderer-yGARXwV0.mjs} +2 -2
  222. package/dist/{renderer-DYo_a5-8.mjs.map → renderer-yGARXwV0.mjs.map} +1 -1
  223. package/dist/{renderers-CP8CFWDs-DXiR_PLR.mjs → renderers-CP8CFWDs-DoVn7dbW.mjs} +2 -2
  224. package/dist/{renderers-CP8CFWDs-DXiR_PLR.mjs.map → renderers-CP8CFWDs-DoVn7dbW.mjs.map} +1 -1
  225. package/dist/signals/index.d.mts +5 -5
  226. package/dist/signals/index.mjs +4 -4
  227. package/package.json +57 -56
  228. package/dist/dist-CturBK2Z.mjs.map +0 -1
  229. package/dist/index-AdrZIWT0.d.mts.map +0 -1
  230. package/dist/preview-engine/chunk-U7NIY7UC.mjs +0 -1522
  231. package/dist/renderer-1hypa-l7.mjs +0 -5
  232. package/dist/renderer-6D8M4DRu.mjs +0 -5
  233. package/dist/renderer-APrj6tdP.mjs +0 -5
  234. package/dist/renderer-BF8wlbN1.mjs +0 -5
  235. package/dist/renderer-BOUcMCJB.mjs +0 -5
  236. package/dist/renderer-BSwn6KmG.mjs +0 -5
  237. package/dist/renderer-BUxvuC5A.mjs +0 -5
  238. package/dist/renderer-BYOsmJ8F.mjs +0 -5
  239. package/dist/renderer-Bp7LqSTt.mjs +0 -5
  240. package/dist/renderer-CD0amH_Q.mjs +0 -5
  241. package/dist/renderer-CIJGjrt7.mjs +0 -5
  242. package/dist/renderer-CNFTl94b.mjs +0 -5
  243. package/dist/renderer-CTJ0gHPS.mjs +0 -5
  244. package/dist/renderer-Cc3INn7w.mjs +0 -5
  245. package/dist/renderer-CeHh2lKY.mjs +0 -5
  246. package/dist/renderer-CfjwkQP4.mjs +0 -5
  247. package/dist/renderer-CiuOB-Md.mjs +0 -5
  248. package/dist/renderer-Cor66Y2X.mjs +0 -5
  249. package/dist/renderer-CtIM0LWe.mjs +0 -5
  250. package/dist/renderer-CyqgTsnx.mjs +0 -5
  251. package/dist/renderer-D2QG9yIW.mjs +0 -5
  252. package/dist/renderer-D2woU27o.mjs +0 -6
  253. package/dist/renderer-DAhDiQQY.mjs +0 -5
  254. package/dist/renderer-DIjxOQFi.mjs +0 -5
  255. package/dist/renderer-DRzalGhU.mjs +0 -5
  256. package/dist/renderer-DY6S1jWp.mjs +0 -5
  257. package/dist/renderer-DeW0KNQV.mjs +0 -5
  258. package/dist/renderer-DsVSVFkl.mjs +0 -5
  259. package/dist/renderer-DxvcIgEU.mjs +0 -5
  260. package/dist/renderer-F0MKqmol.mjs +0 -5
  261. package/dist/renderer-OkbovcAc.mjs +0 -5
  262. package/dist/renderer-QyBeWMEL.mjs +0 -5
  263. package/dist/renderer-hSh5IrDp.mjs +0 -5
  264. package/dist/renderer-puLncHft.mjs +0 -5
  265. package/dist/renderer-wnFCaw7j.mjs +0 -5
  266. package/dist/renderer-xjtlyGS1.mjs +0 -5
package/dist/index.mjs CHANGED
@@ -1,65 +1,460 @@
1
1
  import "./chunk-GBe2k3y8.mjs";
2
2
  import { $ as TimelineTransformSchema, $t as serializeSignalData, A as MIME_TYPES, At as gradientStopsToOklab, B as OutputItemSchema, Bt as parseCssColor, C as FileDataSchema, Ct as generateId, D as HandleTypeVal, Dt as getLeafMediaType, E as Gradient, Et as getFingerprint, F as ModerationUnrefundableError, Ft as isVirtualMediaData, G as SignalGateDataSchema, Gt as reportRenderDiagnostic, H as Signal, Ht as programmaticSignal, I as MultiOutputGenericSchema, It as limitGradientStops, J as SingleOutputGenericSchema, Jt as resolveNumber, K as SignalMathDataSchema, Kt as resolveBoolean, L as NodeMetadataSchema, Lt as mixColors, M as MediaOperationSchema, Mt as isCssGradient, N as MediaSourceSchema, Nt as isEqual, O as JsonValueSchema, Ot as getMediaType, P as ModerationError, Pt as isSignal, Q as TimelineSegmentSchema, Qt as sampleColorStops, R as NodeResultSchema, Rt as normalizeColorStops, S as FileAssetSchema, St as frameSignal, T as GlobalCompositeOperation, Tt as getFileDataMetadata, U as SignalChannelMetaSchema, Ut as progressSignal, V as ProgrammaticSignal, Vt as parseCssGradient, W as SignalDataSchema, Wt as registerSignalDependency, X as TEXT_LAYER_DEFAULTS, Xt as resolveString, Y as SourceOperationSchema, Yt as resolveParam, Z as TextOperationSchema, Zt as rgbToOklab, _ as DataTypeVal, _t as deserializeSignalData, a as BaseVideoLayerPropsSchema, an as timeSignal, at as VideoStylePropsSchema, b as ExportResultSchema, bt as formatHex, c as COMPOSITOR_DEFAULTS, ct as VirtualMediaDataSchema, d as ConfigSchemaRegistry, dt as computeVideoCropRenderProps, en as signal, et as TransitionSchema, f as DATA_TYPE_EXTENSIONS, ft as computed, g as DataType, gt as dataTypeColors, h as DEFAULT_MEDIA_DIMENSION, ht as createVirtualMedia, i as BaseMediaOperationPropsSchema, in as takeRenderDiagnostics, it as VideoSpatialPropsSchema, j as MediaMetadataSchema, jt as hasOnlySingleSource, k as MAX_GRADIENT_STOPS, kt as getRenderFingerprint, l as Color, lt as appendOperation, m as DEFAULT_FPS, mt as createOutputItemSchema, n as AnyOutputUnionSchema, nn as sineSignal, nt as VideoAnimationSchema, o as CAPTION_LAYER_DEFAULTS, on as updateClockSignals, ot as VideoTextPropsSchema, p as DEFAULT_DURATION_MS, pt as cosineSignal, q as SignalStatsSchema, qt as resolveMediaMimeType, r as AudioExtractorSignalDataSchema, rn as stampResult, rt as VideoLayerTypeSchema, s as COMPOSITE_OPERATIONS, st as VideoTimingPropsSchema, t as AnimationTypeSchema, tn as signalBuilder, tt as TransitionTypeSchema, u as ConfigHandleSchema, ut as checkNodeResultCache, v as DataTypes, vt as extractSvgDimensions, w as GeneratorSignalDataSchema, wt as getActiveMediaMetadata, x as ExtendedLayerSchema, xt as frameArraySignal, y as Effect$1, yt as findSourceAsset, z as NodeVisualConfigSchema, zt as oklabToRgb } from "./dist-fjKpBYkc.mjs";
3
- import { $t as TextSelectorSchema, A as ensureDevice, An as sampleAudioSpectrumScale, At as GlyphAnchorGroupingSchema, B as loadModel3D, Cn as evaluateTypewriterState, Ct as AudioSpectrumTypographySchema, Dn as getScramblePool, Dt as EnhancedTextNodeSchema, En as generatePathSegments, Et as DynamicStrokePropertiesSchema, Ft as ParticleDissolveConfigSchema, G as parseColor, Gt as TextAnimatorBuilder, H as lutStore, Ht as Spatial3DPropertiesSchema, It as SelectorBasedOnSchema, J as parseOBJ, Jt as TextPathBuilder, K as parseFBX, Kt as TextCursorConfigSchema, L as inputStore, Lt as SelectorModeSchema, M as generateExtrudedTextGeometry, Mn as samplePathChainGeometry, Mt as KineticMarqueeConfigSchema, Nn as signalRegistry, Nt as LineSpacingDynamicsSchema, On as getShuffledOrder, Ot as ExpressionSelectorSchema, P as getPrimitiveGeometry, Pn as waveToCubicBeziers, Pt as LongShadowConfigSchema, Qt as TextScrambleConfigSchema, Rt as SelectorShapeSchema, Sn as evaluateSpringProgress, Tn as generateArcLengthLUT, Tt as CubicBezierSegmentSchema, Ut as SpringPhysicsSchema, V as loadOBJ, Vt as SkewPropertiesSchema, W as mediaDecoderCache, Wt as TextAnchorConfigSchema, Xt as TextPathSourceSchema, Y as parseSvgPathToSegments, Yt as TextPathOptionsSchema, Zt as TextRangeSelectorSchema, _ as buildShapeSvgPath, _n as evaluateCubicBezierDerivative, _t as AdvancedTextAnimatorBuilder, a as GlassPipeline, an as Vec2Schema, bn as evaluateSelectorCombination, bt as AnchorPresetSchema, c as Renderer2D, cn as buildPathLUT, ct as LIGHT_UNIFORM_SIZE_BYTES, dn as computeLineLeadingDisplacement, dt as Matrix4Math, en as TextSignalSelectorSchema, et as shaderStore, f as ShadowPipeline, fn as computeRangeSelectorWeight, ft as Path3D, gn as evaluateCubicBezier, gt as AETextAnimatorSchema, h as SlugPipeline, hn as ellipseToCubicBeziers, ht as resolveEnvironment, i as EffectPipeline, in as VariableFontAxesSchema, jn as sampleCurveGeometry, jt as GlyphAnchorPointSchema, kn as parseSvgPathToCubicBeziers, kt as ExtendedGlyphPropertiesSchema, l as Renderer3D, lt as Light3D, mn as distanceToCurveParameter, mt as parseColorToRgb, n as AudioLatentTrackCache, nn as TypewriterAnimatorSchema, o as MotionBlurPipeline, on as VolumetricFormationConfigSchema, ot as Camera3D, p as SlugFontCache, pn as deterministicWigglyNoise, pt as Vector3Math, q as parseMTL, qt as TextCursorStyleSchema, r as AudioMeshDeformPipeline, rn as TypingCadenceSchema, rt as textureCache, sn as VolumetricFormationModeSchema, st as ENVIRONMENT_PRESETS, t as AudioLatentEngine, tn as TextWigglySelectorSchema, u as SSAOPipeline, un as computeAnchorPivotOffset, ut as MAX_LIGHTS, vn as evaluateExpressionSelector, vt as AdvancedTextAnimatorSchema, wn as evaluateVolumetricFormation, wt as ChromaticGlitchConfigSchema, x as describeGpu, xn as evaluateSkewMatrix, xt as AnimatableGlyphPropsSchema, yn as evaluateMarqueeOffset, yt as AnchorGroupingSchema, z as loadFBX, zt as SelectorUnitsSchema } from "./dist-CturBK2Z.mjs";
4
- import "./renderers-CP8CFWDs-DXiR_PLR.mjs";
3
+ import { $t as TextSelectorSchema, A as ensureDevice, An as sampleAudioSpectrumScale, At as GlyphAnchorGroupingSchema, B as loadModel3D, Cn as evaluateTypewriterState, Ct as AudioSpectrumTypographySchema, Dn as getScramblePool, Dt as EnhancedTextNodeSchema, En as generatePathSegments, Et as DynamicStrokePropertiesSchema, Ft as ParticleDissolveConfigSchema, G as parseColor, Gt as TextAnimatorBuilder, H as lutStore, Ht as Spatial3DPropertiesSchema, It as SelectorBasedOnSchema, J as parseOBJ, Jt as TextPathBuilder, K as parseFBX, Kt as TextCursorConfigSchema, L as inputStore, Lt as SelectorModeSchema, M as generateExtrudedTextGeometry, Mn as samplePathChainGeometry, Mt as KineticMarqueeConfigSchema, Nn as signalRegistry, Nt as LineSpacingDynamicsSchema, On as getShuffledOrder, Ot as ExpressionSelectorSchema, P as getPrimitiveGeometry, Pn as waveToCubicBeziers, Pt as LongShadowConfigSchema, Qt as TextScrambleConfigSchema, Rt as SelectorShapeSchema, Sn as evaluateSpringProgress, Tn as generateArcLengthLUT, Tt as CubicBezierSegmentSchema, Ut as SpringPhysicsSchema, V as loadOBJ, Vt as SkewPropertiesSchema, W as mediaDecoderCache, Wt as TextAnchorConfigSchema, Xt as TextPathSourceSchema, Y as parseSvgPathToSegments, Yt as TextPathOptionsSchema, Zt as TextRangeSelectorSchema, _ as buildShapeSvgPath, _n as evaluateCubicBezierDerivative, _t as AdvancedTextAnimatorBuilder, a as GlassPipeline, an as Vec2Schema, bn as evaluateSelectorCombination, bt as AnchorPresetSchema, c as Renderer2D, cn as buildPathLUT, ct as LIGHT_UNIFORM_SIZE_BYTES, dn as computeLineLeadingDisplacement, dt as Matrix4Math, en as TextSignalSelectorSchema, et as shaderStore, f as ShadowPipeline, fn as computeRangeSelectorWeight, ft as Path3D, gn as evaluateCubicBezier, gt as AETextAnimatorSchema, h as SlugPipeline, hn as ellipseToCubicBeziers, ht as resolveEnvironment, i as EffectPipeline, in as VariableFontAxesSchema, jn as sampleCurveGeometry, jt as GlyphAnchorPointSchema, kn as parseSvgPathToCubicBeziers, kt as ExtendedGlyphPropertiesSchema, l as Renderer3D, lt as Light3D, mn as distanceToCurveParameter, mt as parseColorToRgb, n as AudioLatentTrackCache, nn as TypewriterAnimatorSchema, o as MotionBlurPipeline, on as VolumetricFormationConfigSchema, ot as Camera3D, p as SlugFontCache, pn as deterministicWigglyNoise, pt as Vector3Math, q as parseMTL, qt as TextCursorStyleSchema, r as AudioMeshDeformPipeline, rn as TypingCadenceSchema, rt as textureCache, sn as VolumetricFormationModeSchema, st as ENVIRONMENT_PRESETS, t as AudioLatentEngine, tn as TextWigglySelectorSchema, u as SSAOPipeline, un as computeAnchorPivotOffset, ut as MAX_LIGHTS, vn as evaluateExpressionSelector, vt as AdvancedTextAnimatorSchema, wn as evaluateVolumetricFormation, wt as ChromaticGlitchConfigSchema, x as describeGpu, xn as evaluateSkewMatrix, xt as AnimatableGlyphPropsSchema, yn as evaluateMarqueeOffset, yt as AnchorGroupingSchema, z as loadFBX, zt as SelectorUnitsSchema } from "./dist-DRB6Vg5u.mjs";
4
+ import "./renderers-CP8CFWDs-DoVn7dbW.mjs";
5
5
  import "./signals-DGRs6ddH.mjs";
6
- import "./renderer-CbNW0KHh.mjs";
6
+ import "./renderer-BZF48o1T.mjs";
7
7
  import "./renderer-BajIOuZH.mjs";
8
- import { _ as spring, c as computeStrokeRect, d as measureSpring, f as measureText, g as requiresIsolation, h as preloadFont, i as mixAudioTracks, l as interpolate, m as preloadCompositionFonts, o as Easing, p as measureTextAsync, s as bezier, u as mapBlendModeToSkia, v as springCalculation } from "./dist-CPUIfrtw.mjs";
9
- import { t as AudioSignal } from "./audio-C7Kn5xBm.mjs";
10
- import { t as FontManager } from "./fonts-EgMNL8KE.mjs";
11
- import "./renderer-Rg1BFv8B.mjs";
12
- import "./renderer-BebePsG7.mjs";
13
- import "./renderer-DYo_a5-8.mjs";
14
- import "./renderer-QMGrRiab.mjs";
15
- import "./renderer-BkXqFmNO.mjs";
16
- import "./renderer-Cz11KJmQ.mjs";
8
+ import { _ as spring, c as computeStrokeRect, d as measureSpring, f as measureText, g as requiresIsolation, h as preloadFont, i as mixAudioTracks, l as interpolate, m as preloadCompositionFonts, o as Easing, p as measureTextAsync, s as bezier, u as mapBlendModeToSkia, v as springCalculation } from "./dist-Cl0mvShy.mjs";
9
+ import { t as AudioSignal } from "./audio-DXwNhi1z.mjs";
10
+ import { t as FontManager } from "./fonts-DlRJD6NS.mjs";
11
+ import "./renderer-i4RJ-_sx.mjs";
12
+ import "./renderer-C9pl21Zb.mjs";
13
+ import "./renderer-yGARXwV0.mjs";
14
+ import "./renderer-CCu1Q8ib.mjs";
15
+ import "./renderer-CCCitH4J.mjs";
16
+ import "./renderer-DOkEalxy.mjs";
17
17
  import "./renderer-B-BcgA6d.mjs";
18
- import "./renderer-DDBmBmQN.mjs";
18
+ import "./renderer-Tf1AS1aO.mjs";
19
19
  import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "./audio-DJeVoE8b.mjs";
20
20
  import { i as OpticalFlowComputePipeline, n as ControlNetMultiplexer, o as TemporalDeflickerPipeline, r as DepthNormalsComputePipeline, s as TensorPipeline, t as CannyComputePipeline } from "./dist-0QGroRYZ.mjs";
21
21
  import { _ as COCO_CLASSES, a as COCO17_KEYPOINT_NAMES, c as SpatialLandmarkTransformer, d as VisionNode, f as VisionRunner, g as pinNodeToObject, h as pinNodeToLandmark, i as COCO17_KEYPOINTS, l as TemporalObjectTracker, m as mergeSubjectMask, n as CLIP_SUBJECT, o as PoseSkeletonRenderer, p as analyzeSequence, r as COCO17_BONES, s as SegmentationTexturePool, u as VisionBundle } from "./renderer-DQtk282o.mjs";
22
- import { A as applyStaggerToChildren, B as evaluateTrackAtFrame, C as ShapeNodeSchema, D as TextSpanMarkSchema, E as TextNodeSchema, F as computeLayout, I as computeLayoutSync, L as computeStaggerDelay, M as collectNodeOps, N as compositorToProgram, O as TextSpanSchema, P as computeCarrierContinuity, R as evaluateAnimationAtFrame, S as Sequence, T as TextAnimatorSchema, U as lintComposition, V as hoistMattes, W as mergeAnimationTracks, _ as MediaNodeSchema, a as CarrierHandoffConfigSchema, b as SceneDefinitionSchema, c as EnvironmentFogSchema, d as LayerAnimation, f as LayoutNodeSchema, g as MatteModeSchema, h as MaterialTypeSchema, i as CameraNodeSchema, j as calculateSequenceTimeline, k as ToneMappingSchema, l as EnvironmentPresetSchema, m as LightTypeSchema, n as BoxNodeSchema, o as ColorStopSchema, p as LightNodeSchema, r as CameraAnimation, s as CompositorProgramSchema, t as BloomConfigSchema, u as FlexNodeSchema, v as Model3DNodeSchema, w as TextAnimator, x as SceneTransitionTypeSchema, y as Scene } from "./program-DtiNMTxO.mjs";
23
- import "./renderer-DacnnTjY.mjs";
24
- import "./renderer-CMzd3BrW.mjs";
25
- import "./renderer-DjwF10p2.mjs";
26
- import "./renderer-BYj8x8YM.mjs";
27
- import "./renderer-Bf4BdBtb.mjs";
28
- import "./renderer-S6ez0leJ.mjs";
29
- import "./renderer-BqSiWRoD.mjs";
30
- import "./renderer-dJcu7WqI.mjs";
31
- import "./renderer-6QAlE1Mp.mjs";
32
- import "./renderer-CRYO5HQw.mjs";
33
- import "./renderer-8k-TR_Cy.mjs";
34
- import "./renderer-BAmGO6Hj.mjs";
35
- import "./renderer-DL4oR40b.mjs";
36
- import "./renderer-CgEMtLOL.mjs";
37
- import "./renderer-ClK7_Yzz.mjs";
38
- import "./renderer-B48vtpou.mjs";
39
- import "./renderer-DNhOjz6C.mjs";
40
- import "./renderer-Kj9AhRCc.mjs";
41
- import "./renderer-CJwgsecF.mjs";
42
- import "./renderer-D-eTVnDS.mjs";
43
- import "./renderer-C4puWDLK.mjs";
44
- import "./renderer-R0sJId_6.mjs";
45
- import "./renderer-YtRSM2cv.mjs";
46
- import "./renderer-CBG6ewNf.mjs";
47
- import "./renderer-B3x-uogM.mjs";
48
- import "./renderer-Bq9jXYJ5.mjs";
49
- import "./renderer-B5Icb0XW.mjs";
50
- import "./renderer-CPNLkir4.mjs";
51
- import "./renderer-w8LKBg_5.mjs";
52
- import "./renderer-C2Ff-9u_.mjs";
53
- import "./renderer-MS70wrQB.mjs";
54
- import { $ as NoiseGenerator, A as AudioParametricEq, B as Datamosh, C as effectFactories, D as AudioDelay, E as AudioCompressor, F as ChannelSplitter, G as Gooey, H as Dither, I as ColorBalance, J as KenBurns, K as Iridescence, L as ColorKey, M as CRT, N as CameraParallax3D, O as AudioFade, P as ChannelMerger, Q as MeshWarp, R as Contour, S as Vision, T as Ascii, U as ExtractLUT, V as DisplacementMap, W as Flip, X as Liquify, Y as LayerStyle, Z as MaskMath, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, ct as RefineEdge, d as Levels, dt as Rotate, et as OpArt, f as Modulate, ft as StereoPanning, g as SSAO, gt as effectMeta, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, j as AudioReverb, k as AudioNoiseGate, l as HalftoneScreen, lt as RefractionCaustics3D, m as PBRGlass, mt as Trails, n as AudioSignalExtractor, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, rt as PatchHeal, s as FilmGrain, st as RGBSplit, t as ApplyLUT, tt as Paint, u as HighPass, ut as ResizerScaler, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker, z as CornerPin } from "./effects-CW1VgdI5.mjs";
55
- import { a as HeadlessMediaRenderer, c as renderSemaphore, i as resetRenderCaches, n as renderFrameGrid, o as HeadlessWebGPURenderer, r as resolveSamplePoints, s as formatQaReport, t as computeGridLayout } from "./renderer-_-MCpvGq.mjs";
56
- import { t as startPreview } from "./preview-1sjnhHQL.mjs";
22
+ import { A as applyStaggerToChildren, B as evaluateTrackAtFrame, C as ShapeNodeSchema, D as TextSpanMarkSchema, E as TextNodeSchema, F as computeLayout, I as computeLayoutSync, L as computeStaggerDelay, M as collectNodeOps, N as compositorToProgram, O as TextSpanSchema, P as computeCarrierContinuity, R as evaluateAnimationAtFrame, S as Sequence, T as TextAnimatorSchema, U as lintComposition, V as hoistMattes, W as mergeAnimationTracks, _ as MediaNodeSchema, a as CarrierHandoffConfigSchema, b as SceneDefinitionSchema, c as EnvironmentFogSchema, d as LayerAnimation, f as LayoutNodeSchema, g as MatteModeSchema, h as MaterialTypeSchema, i as CameraNodeSchema, j as calculateSequenceTimeline, k as ToneMappingSchema, l as EnvironmentPresetSchema, m as LightTypeSchema, n as BoxNodeSchema, o as ColorStopSchema, p as LightNodeSchema, r as CameraAnimation, s as CompositorProgramSchema, t as BloomConfigSchema, u as FlexNodeSchema, v as Model3DNodeSchema, w as TextAnimator, x as SceneTransitionTypeSchema, y as Scene } from "./program-CJEg2wMa.mjs";
23
+ import "./renderer-BaHEN_Kv.mjs";
24
+ import "./renderer-445i0uxs.mjs";
25
+ import "./renderer-BPsi7Q7Z.mjs";
26
+ import "./renderer-BTJyO6ov.mjs";
27
+ import "./renderer-DkM_wN8j.mjs";
28
+ import "./renderer-CJmZURPQ.mjs";
29
+ import "./renderer-D4E8Yf61.mjs";
30
+ import "./renderer-BFWRUTov.mjs";
31
+ import "./renderer-DZndEvZN.mjs";
32
+ import "./renderer-BL36f2IQ.mjs";
33
+ import "./renderer-nMnE_T2y.mjs";
34
+ import "./renderer-D-IcBLT0.mjs";
35
+ import "./renderer-BaBluD-r.mjs";
36
+ import "./renderer-eWBBsCv2.mjs";
37
+ import "./renderer-fXRwAdO2.mjs";
38
+ import "./renderer-Dg5yLAM9.mjs";
39
+ import "./renderer-DAFi5TC_.mjs";
40
+ import "./renderer-h9sJnoxw.mjs";
41
+ import "./renderer-CgZ1G37H.mjs";
42
+ import "./renderer-C-La-IAt.mjs";
43
+ import "./renderer-CxSH3F_n.mjs";
44
+ import "./renderer-Dk0dnuHr.mjs";
45
+ import "./renderer-DautVsW4.mjs";
46
+ import "./renderer-B6UqWjtH.mjs";
47
+ import "./renderer-DaV95CAd.mjs";
48
+ import "./renderer-BOvCstdU.mjs";
49
+ import "./renderer-DFX2V9Dp.mjs";
50
+ import "./renderer-CN3iCli4.mjs";
51
+ import "./renderer-DH0wkQkR.mjs";
52
+ import "./renderer-CoN2JgLO.mjs";
53
+ import "./renderer-5tQ7ImPk.mjs";
54
+ import { $ as NoiseGenerator, A as AudioParametricEq, B as Datamosh, C as effectFactories, D as AudioDelay, E as AudioCompressor, F as ChannelSplitter, G as Gooey, H as Dither, I as ColorBalance, J as KenBurns, K as Iridescence, L as ColorKey, M as CRT, N as CameraParallax3D, O as AudioFade, P as ChannelMerger, Q as MeshWarp, R as Contour, S as Vision, T as Ascii, U as ExtractLUT, V as DisplacementMap, W as Flip, X as Liquify, Y as LayerStyle, Z as MaskMath, _ as SelectiveColor, a as CustomEffect, at as Posterize, b as TileOffset, c as GradientMap, ct as RefineEdge, d as Levels, dt as Rotate, et as OpArt, f as Modulate, ft as StereoPanning, g as SSAO, gt as effectMeta, h as Relight3D, ht as Vignette, i as Curves, it as Pixelate, j as AudioReverb, k as AudioNoiseGate, l as HalftoneScreen, lt as RefractionCaustics3D, m as PBRGlass, mt as Trails, n as AudioSignalExtractor, nt as Painterly, o as DepthOfField, ot as ProceduralVFX, p as MotionBlur, pt as Toon, q as Kaleidoscope, r as Crop, rt as PatchHeal, s as FilmGrain, st as RGBSplit, t as ApplyLUT, tt as Paint, u as HighPass, ut as ResizerScaler, v as ShadowsHighlights, w as Blur, x as UnsharpMask, y as TemporalDeflicker, z as CornerPin } from "./effects-lBqG-vd1.mjs";
55
+ import { a as HeadlessMediaRenderer, c as renderSemaphore, i as resetRenderCaches, n as renderFrameGrid, o as HeadlessWebGPURenderer, r as resolveSamplePoints, s as formatQaReport, t as computeGridLayout } from "./renderer-TyZu7nQ2.mjs";
56
+ import { t as startPreview } from "./preview-Ca4tF5Ro.mjs";
57
57
  import path from "node:path";
58
58
  import fs from "node:fs/promises";
59
59
  import { format } from "d3-format";
60
60
  import { scaleBand, scaleLinear, scaleUtc } from "d3-scale";
61
61
  import { arc, area, curveLinear, curveMonotoneX, curveStepAfter, line, pie, stack, stackOffsetDiverging } from "d3-shape";
62
62
 
63
+ //#region ../ai/dist/index.mjs
64
+ /**
65
+ * A non-2xx answer from the gateway or the model. `type` is the gateway's error code
66
+ * (`insufficient_credits`, `rate_limited`, `key_limit_reached`, …) when the gateway refused
67
+ * the call; it is unset when the model itself failed.
68
+ */
69
+ var ApiError = class extends Error {
70
+ status;
71
+ body;
72
+ requestId;
73
+ type;
74
+ constructor({ message, status: status$1, body, requestId, type }) {
75
+ super(message);
76
+ this.name = "ApiError";
77
+ this.status = status$1;
78
+ this.body = body;
79
+ this.requestId = requestId ?? "";
80
+ this.type = type;
81
+ }
82
+ };
83
+ /** A `422`: the input did not match the model's schema. `fieldErrors` says which fields. */
84
+ var ValidationError = class extends ApiError {
85
+ constructor(args) {
86
+ super(args);
87
+ this.name = "ValidationError";
88
+ }
89
+ get fieldErrors() {
90
+ return Array.isArray(this.body?.detail) ? this.body.detail : [];
91
+ }
92
+ getFieldErrors(field) {
93
+ return this.fieldErrors.filter((e) => e.loc[e.loc.length - 1] === field);
94
+ }
95
+ };
96
+ function messageOf(body, fallback) {
97
+ if (body?.error?.message) return body.error.message;
98
+ if (typeof body?.detail === "string") return body.detail;
99
+ if (Array.isArray(body?.detail)) {
100
+ const first = body.detail[0];
101
+ if (first?.msg) return `${first.msg} (${(first.loc ?? []).join(".")})`;
102
+ }
103
+ if (typeof body?.message === "string") return body.message;
104
+ return fallback;
105
+ }
106
+ /** Builds the error for a failed response; the body is read here, once. */
107
+ async function errorFromResponse(response) {
108
+ const text = await response.text().catch(() => "");
109
+ let body = text || void 0;
110
+ try {
111
+ body = text ? JSON.parse(text) : void 0;
112
+ } catch {}
113
+ const parsed = typeof body === "object" && body !== null ? body : void 0;
114
+ const args = {
115
+ message: messageOf(parsed, `${response.status} ${response.statusText}`.trim()),
116
+ status: response.status,
117
+ body,
118
+ requestId: response.headers.get("x-framefields-request-id") ?? void 0,
119
+ type: parsed?.error?.type
120
+ };
121
+ return response.status === 422 && Array.isArray(parsed?.detail) ? new ValidationError(args) : new ApiError(args);
122
+ }
123
+ /** The framefields AI gateway. Every request goes here, authenticated with a framefields key. */
124
+ const FRAMEFIELDS_AI_PROXY_URL = "https://api.framefields.dev/v1/ai/proxy";
125
+ let configuredKey;
126
+ const env = (name) => typeof process !== "undefined" ? process.env?.[name] : void 0;
127
+ function setApiKey(key) {
128
+ configuredKey = key;
129
+ }
130
+ function apiKey() {
131
+ const key = configuredKey ?? env("FRAMEFIELDS_API_KEY");
132
+ if (!key) throw new Error("framefields ai: no API key. Set FRAMEFIELDS_API_KEY or call ai.config({ apiKey }). Create a key at https://framefields.dev/dashboard/keys");
133
+ return key;
134
+ }
135
+ function targetOf({ service, path: path$1, query }) {
136
+ const params = new URLSearchParams();
137
+ for (const [name, value] of Object.entries(query ?? {})) if (value !== void 0) params.set(name, value);
138
+ const search = params.size ? `?${params}` : "";
139
+ return `${service}/${path$1.replace(/^\/+/, "")}${search}`;
140
+ }
141
+ /**
142
+ * Sends one call through the gateway and returns the response, or throws `ApiError` /
143
+ * `ValidationError` for a non-2xx answer. The key is checked before anything is sent.
144
+ */
145
+ async function gatewayFetch(request) {
146
+ const headers = {
147
+ Authorization: `Key ${apiKey()}`,
148
+ Accept: request.accept ?? "application/json",
149
+ "x-framefields-target": targetOf(request)
150
+ };
151
+ const hasBody = request.body !== void 0;
152
+ if (hasBody) headers["Content-Type"] = "application/json";
153
+ const response = await fetch(env("FRAMEFIELDS_AI_PROXY_URL") ?? FRAMEFIELDS_AI_PROXY_URL, {
154
+ method: request.method ?? (hasBody ? "POST" : "GET"),
155
+ headers,
156
+ body: hasBody ? JSON.stringify(request.body) : void 0,
157
+ signal: request.signal
158
+ });
159
+ if (!response.ok) throw await errorFromResponse(response);
160
+ return response;
161
+ }
162
+ /** `gatewayFetch` for JSON answers, with the gateway's request id alongside. */
163
+ async function gatewayJson(request) {
164
+ const response = await gatewayFetch(request);
165
+ return {
166
+ data: await response.json(),
167
+ requestId: response.headers.get("x-framefields-request-id") ?? ""
168
+ };
169
+ }
170
+ /** Files above this size upload in parts. */
171
+ const MULTIPART_THRESHOLD = 90 * 1024 * 1024;
172
+ const PART_SIZE = 10 * 1024 * 1024;
173
+ const PART_TRIES = 3;
174
+ const EXTENSIONS = {
175
+ "image/jpeg": "jpg",
176
+ "image/png": "png",
177
+ "image/webp": "webp",
178
+ "video/mp4": "mp4",
179
+ "audio/mpeg": "mp3",
180
+ "audio/wav": "wav"
181
+ };
182
+ function fileName(file, contentType) {
183
+ if ("name" in file && typeof file.name === "string" && file.name) return file.name;
184
+ return `${Date.now()}.${EXTENSIONS[contentType] ?? "bin"}`;
185
+ }
186
+ function initiate(file, multipart) {
187
+ const contentType = file.type || "application/octet-stream";
188
+ return gatewayJson({
189
+ service: "storage",
190
+ path: multipart ? "upload/initiate-multipart" : "upload/initiate",
191
+ body: {
192
+ content_type: contentType,
193
+ file_name: fileName(file, contentType)
194
+ }
195
+ }).then((r) => r.data);
196
+ }
197
+ async function put(url, init) {
198
+ const response = await fetch(url, init);
199
+ if (!response.ok) throw await errorFromResponse(response);
200
+ return response;
201
+ }
202
+ async function uploadPart(url, chunk) {
203
+ for (let attempt = 1;; attempt++) try {
204
+ return await (await put(url, {
205
+ method: "PUT",
206
+ body: chunk
207
+ })).json();
208
+ } catch (err) {
209
+ if (attempt >= PART_TRIES) throw err;
210
+ }
211
+ }
212
+ async function uploadMultipart(file) {
213
+ const ticket = await initiate(file, true);
214
+ const base = new URL(ticket.upload_url);
215
+ const partUrl = (suffix) => `${base.origin}${base.pathname}/${suffix}${base.search}`;
216
+ const parts = [];
217
+ for (let start = 0; start < file.size; start += PART_SIZE) {
218
+ const chunk = file.slice(start, Math.min(start + PART_SIZE, file.size));
219
+ parts.push(await uploadPart(partUrl(parts.length + 1), chunk));
220
+ }
221
+ await put(partUrl("complete"), {
222
+ method: "POST",
223
+ headers: { "Content-Type": "application/json" },
224
+ body: JSON.stringify({ parts: parts.map(({ partNumber, etag }) => ({
225
+ partNumber,
226
+ etag
227
+ })) })
228
+ });
229
+ return ticket.file_url;
230
+ }
231
+ async function upload(file) {
232
+ if (file.size > MULTIPART_THRESHOLD) return uploadMultipart(file);
233
+ const ticket = await initiate(file, false);
234
+ await put(ticket.upload_url, {
235
+ method: "PUT",
236
+ body: file,
237
+ headers: { "Content-Type": file.type || "application/octet-stream" }
238
+ });
239
+ return ticket.file_url;
240
+ }
241
+ const isPlainObject = (value) => typeof value === "object" && value !== null && Object.getPrototypeOf(value) === Object.prototype;
242
+ async function transformInput(input) {
243
+ if (input instanceof Blob) return await upload(input);
244
+ if (Array.isArray(input)) return await Promise.all(input.map((item) => transformInput(item)));
245
+ if (isPlainObject(input)) {
246
+ const entries = await Promise.all(Object.entries(input).map(async ([key, value]) => [key, await transformInput(value)]));
247
+ return Object.fromEntries(entries);
248
+ }
249
+ return input;
250
+ }
251
+ const storage = {
252
+ upload,
253
+ transformInput
254
+ };
255
+ /** Statuses worth asking again for: rate limits and a gateway or model service hiccup. */
256
+ const TRANSIENT = new Set([
257
+ 429,
258
+ 502,
259
+ 503,
260
+ 504
261
+ ]);
262
+ const READ_TRIES = 4;
263
+ const sleep = (ms, signal$1) => new Promise((resolve$1, reject) => {
264
+ signal$1?.throwIfAborted();
265
+ const timer = setTimeout(resolve$1, ms);
266
+ signal$1?.addEventListener("abort", () => {
267
+ clearTimeout(timer);
268
+ reject(signal$1.reason);
269
+ }, { once: true });
270
+ });
271
+ /** Reads (status, result) are free and idempotent, so transient failures are retried. */
272
+ async function read(run$1, signal$1) {
273
+ for (let attempt = 1;; attempt++) try {
274
+ return await run$1();
275
+ } catch (err) {
276
+ if (!(err instanceof ApiError && TRANSIENT.has(err.status)) || attempt >= READ_TRIES) throw err;
277
+ await sleep(500 * 2 ** attempt, signal$1);
278
+ }
279
+ }
280
+ const requestPath = (model, requestId, suffix = "") => `${model}/requests/${encodeURIComponent(requestId)}${suffix}`;
281
+ async function submit(model, { input, abortSignal }) {
282
+ const { data } = await gatewayJson({
283
+ service: "queue",
284
+ path: model,
285
+ body: await storage.transformInput(input) ?? {},
286
+ signal: abortSignal
287
+ });
288
+ return data;
289
+ }
290
+ function status(model, { requestId, logs, abortSignal }) {
291
+ return read(async () => {
292
+ const { data } = await gatewayJson({
293
+ service: "queue",
294
+ path: requestPath(model, requestId, "/status"),
295
+ query: { logs: logs ? "1" : void 0 },
296
+ signal: abortSignal
297
+ });
298
+ return data;
299
+ }, abortSignal);
300
+ }
301
+ function result(model, { requestId, abortSignal }) {
302
+ return read(async () => {
303
+ const { data } = await gatewayJson({
304
+ service: "queue",
305
+ path: requestPath(model, requestId),
306
+ signal: abortSignal
307
+ });
308
+ return {
309
+ data,
310
+ requestId
311
+ };
312
+ }, abortSignal);
313
+ }
314
+ async function cancel(model, { requestId, abortSignal }) {
315
+ await gatewayJson({
316
+ service: "queue",
317
+ path: requestPath(model, requestId, "/cancel"),
318
+ method: "PUT",
319
+ signal: abortSignal
320
+ });
321
+ }
322
+ async function subscribeToStatus(model, options) {
323
+ const interval = options.pollInterval ?? 500;
324
+ for (;;) {
325
+ const current = await status(model, options);
326
+ options.onQueueUpdate?.(current);
327
+ if (current.status === "COMPLETED") return current;
328
+ await sleep(interval, options.abortSignal);
329
+ }
330
+ }
331
+ const queue = {
332
+ submit,
333
+ status,
334
+ result,
335
+ cancel,
336
+ subscribeToStatus
337
+ };
338
+ /** Queues the job, waits for it, and returns its output. */
339
+ async function subscribe(model, options) {
340
+ const { request_id: requestId } = await submit(model, options);
341
+ options.onEnqueue?.(requestId);
342
+ await subscribeToStatus(model, {
343
+ ...options,
344
+ requestId
345
+ });
346
+ return result(model, {
347
+ requestId,
348
+ abortSignal: options.abortSignal
349
+ });
350
+ }
351
+ /** Yields each `data:` payload of a server-sent event stream, joined across lines. */
352
+ async function* serverSentEvents(body) {
353
+ const decoder = new TextDecoder();
354
+ let buffer = "";
355
+ for await (const chunk of body) {
356
+ buffer += decoder.decode(chunk, { stream: true }).replace(/\r\n?/g, "\n");
357
+ let end = buffer.indexOf("\n\n");
358
+ while (end !== -1) {
359
+ const block = buffer.slice(0, end);
360
+ buffer = buffer.slice(end + 2);
361
+ const parsed = parseBlock(block);
362
+ if (parsed) yield parsed;
363
+ end = buffer.indexOf("\n\n");
364
+ }
365
+ }
366
+ const last = parseBlock(buffer);
367
+ if (last) yield last;
368
+ }
369
+ function parseBlock(block) {
370
+ let event = "message";
371
+ const data = [];
372
+ for (const line$1 of block.split("\n")) if (line$1.startsWith("data:")) data.push(line$1.slice(5).replace(/^ /, ""));
373
+ else if (line$1.startsWith("event:")) event = line$1.slice(6).trim();
374
+ return data.length ? {
375
+ event,
376
+ data: data.join("\n")
377
+ } : null;
378
+ }
379
+ async function* outputs(body, requestId) {
380
+ for await (const { event, data } of serverSentEvents(body)) {
381
+ const payload = JSON.parse(data);
382
+ if (event === "error") throw new ApiError({
383
+ message: "The model stream ended with an error",
384
+ status: 500,
385
+ body: payload,
386
+ requestId
387
+ });
388
+ yield payload;
389
+ }
390
+ }
391
+ /** Runs a streaming model; resolves once the stream is open. */
392
+ async function stream(model, { input, abortSignal }) {
393
+ const controller = new AbortController();
394
+ const signal$1 = abortSignal ? AbortSignal.any([abortSignal, controller.signal]) : controller.signal;
395
+ const response = await gatewayFetch({
396
+ service: "run",
397
+ path: `${model}/stream`,
398
+ body: await storage.transformInput(input) ?? {},
399
+ accept: "text/event-stream",
400
+ signal: signal$1
401
+ });
402
+ const requestId = response.headers.get("x-framefields-request-id") ?? "";
403
+ if (!response.body) throw new ApiError({
404
+ message: "Empty stream",
405
+ status: 502,
406
+ requestId
407
+ });
408
+ const source = outputs(response.body, requestId);
409
+ let last;
410
+ let finished;
411
+ async function* tracked() {
412
+ for await (const value of source) {
413
+ last = value;
414
+ yield value;
415
+ }
416
+ }
417
+ const iterator = tracked();
418
+ const drain = async () => {
419
+ let step = await iterator.next();
420
+ while (!step.done) step = await iterator.next();
421
+ if (last === void 0) throw new ApiError({
422
+ message: "Stream had no output",
423
+ status: 502,
424
+ requestId
425
+ });
426
+ return last;
427
+ };
428
+ return {
429
+ requestId,
430
+ [Symbol.asyncIterator]: () => iterator,
431
+ done: () => {
432
+ finished ??= drain();
433
+ return finished;
434
+ },
435
+ abort: () => controller.abort()
436
+ };
437
+ }
438
+ async function run(model, { input, abortSignal }) {
439
+ return gatewayJson({
440
+ service: "run",
441
+ path: model,
442
+ body: await storage.transformInput(input) ?? {},
443
+ signal: abortSignal
444
+ });
445
+ }
446
+ const ai = {
447
+ config(options) {
448
+ setApiKey(options.apiKey);
449
+ },
450
+ run,
451
+ subscribe,
452
+ stream,
453
+ queue,
454
+ storage
455
+ };
456
+
457
+ //#endregion
63
458
  //#region src/ids.ts
64
459
  /**
65
460
  * Default ids for nodes created without one. A counter per prefix rather than
@@ -1423,14 +1818,14 @@ var PersonTrack = class PersonTrack {
1423
1818
  }
1424
1819
  /** Signals for a keypoint, for `.signal("x", …)`; read while rendering. */
1425
1820
  signals(name) {
1426
- const read = (axis) => Signal.builder({
1821
+ const read$1 = (axis) => Signal.builder({
1427
1822
  type: "custom",
1428
1823
  fn: (ctx) => this.point(name, ctx.frame)[axis]
1429
1824
  });
1430
1825
  return {
1431
- x: read("x"),
1432
- y: read("y"),
1433
- visibility: read("visibility")
1826
+ x: read$1("x"),
1827
+ y: read$1("y"),
1828
+ visibility: read$1("visibility")
1434
1829
  };
1435
1830
  }
1436
1831
  /**
@@ -1469,14 +1864,14 @@ var PersonTrack = class PersonTrack {
1469
1864
  const t = this.transform();
1470
1865
  const cx = (x - t.ox) / t.sx / cell - .5;
1471
1866
  const cy = (y - t.oy) / t.sy / cell - .5;
1472
- const read = (gx, gy) => gx < 0 || gy < 0 || gx >= w || gy >= h ? 0 : grid[gy * w + gx];
1867
+ const read$1 = (gx, gy) => gx < 0 || gy < 0 || gx >= w || gy >= h ? 0 : grid[gy * w + gx];
1473
1868
  const bil = (px, py) => {
1474
1869
  const x0 = Math.floor(px);
1475
1870
  const y0 = Math.floor(py);
1476
1871
  const ux = px - x0;
1477
1872
  const uy = py - y0;
1478
- const a = read(x0, y0) + (read(x0 + 1, y0) - read(x0, y0)) * ux;
1479
- return a + (read(x0, y0 + 1) + (read(x0 + 1, y0 + 1) - read(x0, y0 + 1)) * ux - a) * uy;
1873
+ const a = read$1(x0, y0) + (read$1(x0 + 1, y0) - read$1(x0, y0)) * ux;
1874
+ return a + (read$1(x0, y0 + 1) + (read$1(x0 + 1, y0 + 1) - read$1(x0, y0 + 1)) * ux - a) * uy;
1480
1875
  };
1481
1876
  return {
1482
1877
  alpha: bil(cx, cy),
@@ -2093,15 +2488,15 @@ var Particles = class extends Effect$1 {
2093
2488
  }
2094
2489
  particleFrame(frame, fps) {
2095
2490
  const o = this.options;
2096
- const read = (d, fallback) => d === void 0 ? fallback : sampleDriver(d, frame, fps);
2491
+ const read$1 = (d, fallback) => d === void 0 ? fallback : sampleDriver(d, frame, fps);
2097
2492
  const layerFrame = frame - (o.startFrame ?? 0);
2098
2493
  const burst = (o.emitter?.bursts ?? []).filter((b) => Math.round(b.frame) === layerFrame).reduce((n, b) => n + b.count, 0);
2099
2494
  const g = o.gravity;
2100
- const gravity = Array.isArray(g) ? [read(g[0], 0), read(g[1], 0)] : [0, read(g, 0)];
2495
+ const gravity = Array.isArray(g) ? [read$1(g[0], 0), read$1(g[1], 0)] : [0, read$1(g, 0)];
2101
2496
  let push = null;
2102
2497
  if (o.push) push = {
2103
- strength: read(o.push.strength, 6e3),
2104
- sweep: read(o.push.sweep, 6e4),
2498
+ strength: read$1(o.push.strength, 6e3),
2499
+ sweep: read$1(o.push.sweep, 6e4),
2105
2500
  mask: o.push.person.silhouetteGrid(frame),
2106
2501
  previous: o.push.person.silhouetteGrid(Math.max(0, frame - 1))
2107
2502
  };
@@ -2125,19 +2520,19 @@ var Particles = class extends Effect$1 {
2125
2520
  }
2126
2521
  return {
2127
2522
  ...emitter && { emitter },
2128
- rate: read(o.emitter?.rate, 1e3),
2523
+ rate: read$1(o.emitter?.rate, 1e3),
2129
2524
  burst,
2130
2525
  gravity,
2131
- drag: read(o.drag, .4),
2526
+ drag: read$1(o.drag, .4),
2132
2527
  noise: {
2133
- strength: read(o.noise?.strength, 0),
2528
+ strength: read$1(o.noise?.strength, 0),
2134
2529
  scale: o.noise?.scale ?? 300,
2135
2530
  speed: o.noise?.speed ?? .3
2136
2531
  },
2137
2532
  attractors: (o.attractors ?? []).map((a) => ({
2138
- x: read(a.x, 0),
2139
- y: read(a.y, 0),
2140
- strength: read(a.strength, 0),
2533
+ x: read$1(a.x, 0),
2534
+ y: read$1(a.y, 0),
2535
+ strength: read$1(a.strength, 0),
2141
2536
  radius: a.radius ?? 200
2142
2537
  })),
2143
2538
  push
@@ -3648,7 +4043,7 @@ var PhysicsWorld2D = class extends WorldCore {
3648
4043
  restitution: options.restitution ?? .2
3649
4044
  };
3650
4045
  const tall = H * 4 + t;
3651
- const result = {
4046
+ const result$1 = {
3652
4047
  floor: this.body({
3653
4048
  x: x - t,
3654
4049
  y: y + H,
@@ -3669,13 +4064,13 @@ var PhysicsWorld2D = class extends WorldCore {
3669
4064
  }, mat),
3670
4065
  ceiling: void 0
3671
4066
  };
3672
- if (options.ceiling) result.ceiling = this.body({
4067
+ if (options.ceiling) result$1.ceiling = this.body({
3673
4068
  x: x - t,
3674
4069
  y: y - t,
3675
4070
  width: W + 2 * t,
3676
4071
  height: t
3677
4072
  }, mat);
3678
- return result;
4073
+ return result$1;
3679
4074
  }
3680
4075
  /** Pins a body to the world at a point (default its center); it can still swing around it. */
3681
4076
  pin(body, at) {
@@ -4083,17 +4478,17 @@ var PhysicsBody3D = class {
4083
4478
  const follow = this.options.follow;
4084
4479
  if (this.type !== "kinematic" || !follow) return void 0;
4085
4480
  const fps = this.world.fps;
4086
- const read = (d, fallback) => d === void 0 ? fallback : sampleDriver(d, frame, fps);
4481
+ const read$1 = (d, fallback) => d === void 0 ? fallback : sampleDriver(d, frame, fps);
4087
4482
  const p = this.start.position;
4088
4483
  const r = this.start.rotation;
4089
4484
  const ppm = this.world.pixelsPerMeter;
4090
4485
  return {
4091
4486
  position: [
4092
- read(follow.x, p[0]) / ppm,
4093
- read(follow.y, p[1]) / ppm,
4094
- read(follow.z, p[2]) / ppm
4487
+ read$1(follow.x, p[0]) / ppm,
4488
+ read$1(follow.y, p[1]) / ppm,
4489
+ read$1(follow.z, p[2]) / ppm
4095
4490
  ],
4096
- rotation: quatFromEuler(read(follow.rotateX, r[0]), read(follow.rotateY, r[1]), read(follow.rotateZ, r[2]))
4491
+ rotation: quatFromEuler(read$1(follow.rotateX, r[0]), read$1(follow.rotateY, r[1]), read$1(follow.rotateZ, r[2]))
4097
4492
  };
4098
4493
  }
4099
4494
  /** @internal */
@@ -4422,11 +4817,11 @@ var PhysicsWorld3D = class extends WorldCore {
4422
4817
  /** A steady push, px/s² (mass-independent). Drivers are read every frame. */
4423
4818
  force(body, accel) {
4424
4819
  const ppm = this.pixelsPerMeter;
4425
- const read = (d, frame) => d === void 0 ? 0 : sampleDriver(d, frame, this.fps) / ppm;
4820
+ const read$1 = (d, frame) => d === void 0 ? 0 : sampleDriver(d, frame, this.fps) / ppm;
4426
4821
  this.addForce(body, (frame) => [
4427
- read(accel.x, frame),
4428
- read(accel.y, frame),
4429
- read(accel.z, frame)
4822
+ read$1(accel.x, frame),
4823
+ read$1(accel.y, frame),
4824
+ read$1(accel.z, frame)
4430
4825
  ]);
4431
4826
  return this;
4432
4827
  }
@@ -4985,14 +5380,14 @@ var Media = class Media {
4985
5380
  * Copies a rendered temp file to `outputPath` and drops the temp, so the
4986
5381
  * returned `filePath` is where the video actually lives.
4987
5382
  */
4988
- async function deliverToOutputPath(result, outputPath) {
4989
- if (!outputPath) return result;
5383
+ async function deliverToOutputPath(result$1, outputPath) {
5384
+ if (!outputPath) return result$1;
4990
5385
  const target = path.resolve(outputPath);
4991
5386
  await fs.mkdir(path.dirname(target), { recursive: true });
4992
- await fs.copyFile(result.filePath, target);
4993
- await result.cleanup();
5387
+ await fs.copyFile(result$1.filePath, target);
5388
+ await result$1.cleanup();
4994
5389
  return {
4995
- ...result,
5390
+ ...result$1,
4996
5391
  filePath: target,
4997
5392
  cleanup: async () => {}
4998
5393
  };
@@ -5579,22 +5974,22 @@ var Composition = class Composition {
5579
5974
  ...options,
5580
5975
  outputPath: outputPathOrOptions
5581
5976
  } : outputPathOrOptions;
5582
- const result = await (opts.renderer ?? new HeadlessMediaRenderer()).renderVideo(this.toVirtualMedia(), opts);
5583
- if (result.qa) {
5977
+ const result$1 = await (opts.renderer ?? new HeadlessMediaRenderer()).renderVideo(this.toVirtualMedia(), opts);
5978
+ if (result$1.qa) {
5584
5979
  const lint = this.lint();
5585
- const issues = [...result.qa.issues, ...lint.map((d) => ({
5980
+ const issues = [...result$1.qa.issues, ...lint.map((d) => ({
5586
5981
  severity: d.severity,
5587
5982
  code: d.code,
5588
5983
  message: d.message,
5589
5984
  ...d.layerId !== void 0 && { layerId: d.layerId }
5590
5985
  }))];
5591
- result.qa = {
5592
- ...result.qa,
5986
+ result$1.qa = {
5987
+ ...result$1.qa,
5593
5988
  issues,
5594
- passed: result.qa.passed && !lint.some((d) => d.severity === "error")
5989
+ passed: result$1.qa.passed && !lint.some((d) => d.severity === "error")
5595
5990
  };
5596
5991
  }
5597
- return deliverToOutputPath(result, opts.outputPath);
5992
+ return deliverToOutputPath(result$1, opts.outputPath);
5598
5993
  }
5599
5994
  /**
5600
5995
  * Checks the document for things that render without error but not as
@@ -6255,5 +6650,5 @@ const Effect = Object.assign(Effect$1, effectFactories, {
6255
6650
  });
6256
6651
 
6257
6652
  //#endregion
6258
- export { AETextAnimatorSchema, AdvancedTextAnimatorBuilder, AdvancedTextAnimatorSchema, AnchorGroupingSchema, AnchorPresetSchema, AnimatableGlyphPropsSchema, AnimationTypeSchema, AnyOutputUnionSchema, ApplyLUT, Ascii, AudioCompressor, AudioDelay, AudioExtractorSignalDataSchema, AudioFade, AudioLatentEngine, AudioLatentTrackCache, AudioMeshDeformPipeline, AudioNoiseGate, AudioParametricEq, AudioReverb, AudioSignal, AudioSignalExtractor, AudioSpectrumTypographySchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, BloomConfigSchema, Blur, BoxNodeSchema, CAPTION_LAYER_DEFAULTS, COCO17_BONES, COCO17_KEYPOINTS, COCO17_KEYPOINT_NAMES, COCO_CLASSES, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, CRT, Camera3D, CameraAnimation, CameraNodeSchema, CameraParallax3D, CannyComputePipeline, CarrierHandoffConfigSchema, ChannelMerger, ChannelSplitter, ChromaticGlitchConfigSchema, ClipVision, Color, ColorBalance, ColorKey, ColorStopSchema, Composition, CompositorProgramSchema, ConfigHandleSchema, ConfigSchemaRegistry, Contour, ControlNetMultiplexer, CornerPin, Crop, CubicBezierSegmentSchema, Curves, CustomEffect, DATA_TYPE_EXTENSIONS, DEFAULT_CHART_COLORS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, Datamosh, DepthNormalsComputePipeline, DepthOfField, DisplacementMap, Dither, DynamicStrokePropertiesSchema, ENVIRONMENT_PRESETS, Easing, Effect, EffectPipeline, EnhancedTextNodeSchema, EnvironmentFogSchema, EnvironmentPresetSchema, ExportResultSchema, ExpressionSelectorSchema, ExtendedGlyphPropertiesSchema, ExtendedLayerSchema, ExtractLUT, FileAssetSchema, FileDataSchema, FilmGrain, FlexNodeSchema, Flip, FontManager, GeneratorSignalDataSchema, GlassPipeline, GlobalCompositeOperation, GlyphAnchorGroupingSchema, GlyphAnchorPointSchema, Gooey, Gradient, GradientMap, HalftoneScreen, HandleTypeVal, HeadlessMediaRenderer, HeadlessWebGPURenderer, HighPass, Iridescence, JsonValueSchema, Kaleidoscope, KenBurns, KineticMarqueeConfigSchema, LIGHT_UNIFORM_SIZE_BYTES, Layer, Layer3D, LayerAnimation, LayerStyle, LayoutNodeSchema, Levels, Light, Light3D, LightNodeSchema, LightTypeSchema, Lighting, LineSpacingDynamicsSchema, Liquify, LongShadowConfigSchema, MAX_GRADIENT_STOPS, MAX_LIGHTS, MIME_TYPES, MaskMath, MaterialTypeSchema, Matrix4Math, MatteModeSchema, Media, MediaMetadataSchema, MediaNodeSchema, MediaOperationSchema, MediaSourceSchema, MeshWarp, Model3DNodeSchema, ModerationError, ModerationUnrefundableError, Modulate, MotionBlur, MotionBlurPipeline, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, NoiseGenerator, OpArt, OpticalFlowComputePipeline, OutputItemSchema, PBRGlass, Paint, Painterly, ParticleDissolveConfigSchema, Particles, PatchHeal, Path3D, PersonTrack, Physics, PhysicsBody2D, PhysicsBody3D, PhysicsWorld2D, PhysicsWorld3D, Pixelate, PoseSkeletonRenderer, Posterize, ProceduralVFX, ProgrammaticSignal, RGBSplit, RefineEdge, RefractionCaustics3D, Relight3D, Renderer2D, Renderer3D, ResizerScaler, Rotate, SSAO, SSAOPipeline, Scene, SceneDefinitionSchema, SceneTransitionTypeSchema, SegmentationTexturePool, SelectiveColor, SelectorBasedOnSchema, SelectorModeSchema, SelectorShapeSchema, SelectorUnitsSchema, Sequence, ShadowPipeline, ShadowsHighlights, ShapeNodeSchema, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SkewPropertiesSchema, SlugFontCache, SlugPipeline, SourceOperationSchema, Spatial3DPropertiesSchema, SpatialLandmarkTransformer, SpringPhysicsSchema, StereoPanning, Styles, TEXT_LAYER_DEFAULTS, TemporalDeflicker, TemporalDeflickerPipeline, TemporalObjectTracker, TensorPipeline, TextAnchorConfigSchema, TextAnimator, TextAnimatorBuilder, TextAnimatorSchema, TextCursorConfigSchema, TextCursorStyleSchema, TextNodeSchema, TextOperationSchema, TextPathBuilder, TextPathOptionsSchema, TextPathSourceSchema, TextRangeSelectorSchema, TextScrambleConfigSchema, TextSelectorSchema, TextSignalSelectorSchema, TextSpanMarkSchema, TextSpanSchema, TextWigglySelectorSchema, TileOffset, TimelineSegmentSchema, TimelineTransformSchema, ToneMappingSchema, Toon, Trails, Transition, TransitionSchema, TransitionTypeSchema, TypewriterAnimatorSchema, TypingCadenceSchema, UnsharpMask, VariableFontAxesSchema, Vec2Schema, Vector3Math, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, Vignette, VirtualMediaDataSchema, Vision, VisionBundle, VisionNode, VisionRunner, VolumetricFormationConfigSchema, VolumetricFormationModeSchema, accent, analyzeSequence, appendOperation, applyStaggerToChildren, bezier, blurRegion, bold, buildPathLUT, calculateSequenceTimeline, checkNodeResultCache, code, collectNodeOps, color, compositorToProgram, computeAnchorPivotOffset, computeCarrierContinuity, computeGridLayout, computeLayout, computeLayoutSync, computeLineLeadingDisplacement, computeRangeSelectorWeight, computeStaggerDelay, computeStrokeRect, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, describeGpu, deserializeSignalData, deterministicWigglyNoise, distanceToCurveParameter, editTrackedRegion, effectFactories, effectMeta, ellipseToCubicBeziers, encodeStereoWav, ensureDevice, evaluateAnimationAtFrame, evaluateCubicBezier, evaluateCubicBezierDerivative, evaluateExpressionSelector, evaluateMarqueeOffset, evaluateSelectorCombination, evaluateSkewMatrix, evaluateSpringProgress, evaluateTrackAtFrame, evaluateTypewriterState, evaluateVolumetricFormation, extractSvgDimensions, findSourceAsset, formatHex, formatQaReport, frameArraySignal, frameSignal, generateArcLengthLUT, generateId, generatePathSegments, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, getScramblePool, getShuffledOrder, gradientStopsToOklab, hasOnlySingleSource, hoistMattes, inputStore, interpolate, isCssGradient, isEqual, isSignal, isVirtualMediaData, italic, limitGradientStops, lintComposition, loadFBX, loadModel3D, loadOBJ, lutStore, mapBlendModeToSkia, mark, measureSpring, measureText, measureTextAsync, mergeAnimationTracks, mixAudioTracks, mixColors, mixSfxInto, normalizeColorStops, normalizeTextSpans, oklabToRgb, parseColorToRgb, parseCssColor, parseCssGradient, parseFBX, parseMTL, parseMarkup, parseOBJ, parseSvgPathToCubicBeziers, pinNodeToLandmark, pinNodeToObject, preloadCompositionFonts, preloadFont, programmaticSignal, progressSignal, registerSignalDependency, renderFrameGrid, renderSemaphore, renderSfx, reportRenderDiagnostic, requiresIsolation, resetRenderCaches, resolveBoolean, resolveEnvironment, resolveMediaMimeType, resolveNumber, resolveParam, resolveSamplePoints, resolveString, rgbToOklab, rich, sampleAudioSpectrumScale, sampleColorStops, sampleCurveGeometry, samplePathChainGeometry, section, serializeSignalData, shaderStore, signal, signalBuilder, signalRegistry, sineSignal, size, softLimit, span, spring, springCalculation, stampResult, startPreview, sub, sup, takeRenderDiagnostics, textureCache, timeSignal, updateClockSignals, waveToCubicBeziers };
6653
+ export { AETextAnimatorSchema, AdvancedTextAnimatorBuilder, AdvancedTextAnimatorSchema, AnchorGroupingSchema, AnchorPresetSchema, AnimatableGlyphPropsSchema, AnimationTypeSchema, AnyOutputUnionSchema, ApiError, ApplyLUT, Ascii, AudioCompressor, AudioDelay, AudioExtractorSignalDataSchema, AudioFade, AudioLatentEngine, AudioLatentTrackCache, AudioMeshDeformPipeline, AudioNoiseGate, AudioParametricEq, AudioReverb, AudioSignal, AudioSignalExtractor, AudioSpectrumTypographySchema, BaseMediaOperationPropsSchema, BaseVideoLayerPropsSchema, BloomConfigSchema, Blur, BoxNodeSchema, CAPTION_LAYER_DEFAULTS, COCO17_BONES, COCO17_KEYPOINTS, COCO17_KEYPOINT_NAMES, COCO_CLASSES, COMPOSITE_OPERATIONS, COMPOSITOR_DEFAULTS, CRT, Camera3D, CameraAnimation, CameraNodeSchema, CameraParallax3D, CannyComputePipeline, CarrierHandoffConfigSchema, ChannelMerger, ChannelSplitter, ChromaticGlitchConfigSchema, ClipVision, Color, ColorBalance, ColorKey, ColorStopSchema, Composition, CompositorProgramSchema, ConfigHandleSchema, ConfigSchemaRegistry, Contour, ControlNetMultiplexer, CornerPin, Crop, CubicBezierSegmentSchema, Curves, CustomEffect, DATA_TYPE_EXTENSIONS, DEFAULT_CHART_COLORS, DEFAULT_DURATION_MS, DEFAULT_FPS, DEFAULT_MEDIA_DIMENSION, DataType, DataTypeVal, DataTypes, Datamosh, DepthNormalsComputePipeline, DepthOfField, DisplacementMap, Dither, DynamicStrokePropertiesSchema, ENVIRONMENT_PRESETS, Easing, Effect, EffectPipeline, EnhancedTextNodeSchema, EnvironmentFogSchema, EnvironmentPresetSchema, ExportResultSchema, ExpressionSelectorSchema, ExtendedGlyphPropertiesSchema, ExtendedLayerSchema, ExtractLUT, FRAMEFIELDS_AI_PROXY_URL, FileAssetSchema, FileDataSchema, FilmGrain, FlexNodeSchema, Flip, FontManager, GeneratorSignalDataSchema, GlassPipeline, GlobalCompositeOperation, GlyphAnchorGroupingSchema, GlyphAnchorPointSchema, Gooey, Gradient, GradientMap, HalftoneScreen, HandleTypeVal, HeadlessMediaRenderer, HeadlessWebGPURenderer, HighPass, Iridescence, JsonValueSchema, Kaleidoscope, KenBurns, KineticMarqueeConfigSchema, LIGHT_UNIFORM_SIZE_BYTES, Layer, Layer3D, LayerAnimation, LayerStyle, LayoutNodeSchema, Levels, Light, Light3D, LightNodeSchema, LightTypeSchema, Lighting, LineSpacingDynamicsSchema, Liquify, LongShadowConfigSchema, MAX_GRADIENT_STOPS, MAX_LIGHTS, MIME_TYPES, MaskMath, MaterialTypeSchema, Matrix4Math, MatteModeSchema, Media, MediaMetadataSchema, MediaNodeSchema, MediaOperationSchema, MediaSourceSchema, MeshWarp, Model3DNodeSchema, ModerationError, ModerationUnrefundableError, Modulate, MotionBlur, MotionBlurPipeline, MultiOutputGenericSchema, NodeMetadataSchema, NodeResultSchema, NodeVisualConfigSchema, NoiseGenerator, OpArt, OpticalFlowComputePipeline, OutputItemSchema, PBRGlass, Paint, Painterly, ParticleDissolveConfigSchema, Particles, PatchHeal, Path3D, PersonTrack, Physics, PhysicsBody2D, PhysicsBody3D, PhysicsWorld2D, PhysicsWorld3D, Pixelate, PoseSkeletonRenderer, Posterize, ProceduralVFX, ProgrammaticSignal, RGBSplit, RefineEdge, RefractionCaustics3D, Relight3D, Renderer2D, Renderer3D, ResizerScaler, Rotate, SSAO, SSAOPipeline, Scene, SceneDefinitionSchema, SceneTransitionTypeSchema, SegmentationTexturePool, SelectiveColor, SelectorBasedOnSchema, SelectorModeSchema, SelectorShapeSchema, SelectorUnitsSchema, Sequence, ShadowPipeline, ShadowsHighlights, ShapeNodeSchema, Signal, SignalChannelMetaSchema, SignalDataSchema, SignalGateDataSchema, SignalMathDataSchema, SignalStatsSchema, SingleOutputGenericSchema, SkewPropertiesSchema, SlugFontCache, SlugPipeline, SourceOperationSchema, Spatial3DPropertiesSchema, SpatialLandmarkTransformer, SpringPhysicsSchema, StereoPanning, Styles, TEXT_LAYER_DEFAULTS, TemporalDeflicker, TemporalDeflickerPipeline, TemporalObjectTracker, TensorPipeline, TextAnchorConfigSchema, TextAnimator, TextAnimatorBuilder, TextAnimatorSchema, TextCursorConfigSchema, TextCursorStyleSchema, TextNodeSchema, TextOperationSchema, TextPathBuilder, TextPathOptionsSchema, TextPathSourceSchema, TextRangeSelectorSchema, TextScrambleConfigSchema, TextSelectorSchema, TextSignalSelectorSchema, TextSpanMarkSchema, TextSpanSchema, TextWigglySelectorSchema, TileOffset, TimelineSegmentSchema, TimelineTransformSchema, ToneMappingSchema, Toon, Trails, Transition, TransitionSchema, TransitionTypeSchema, TypewriterAnimatorSchema, TypingCadenceSchema, UnsharpMask, ValidationError, VariableFontAxesSchema, Vec2Schema, Vector3Math, VideoAnimationSchema, VideoLayerTypeSchema, VideoSpatialPropsSchema, VideoStylePropsSchema, VideoTextPropsSchema, VideoTimingPropsSchema, Vignette, VirtualMediaDataSchema, Vision, VisionBundle, VisionNode, VisionRunner, VolumetricFormationConfigSchema, VolumetricFormationModeSchema, accent, ai, analyzeSequence, appendOperation, applyStaggerToChildren, bezier, blurRegion, bold, buildPathLUT, calculateSequenceTimeline, checkNodeResultCache, code, collectNodeOps, color, compositorToProgram, computeAnchorPivotOffset, computeCarrierContinuity, computeGridLayout, computeLayout, computeLayoutSync, computeLineLeadingDisplacement, computeRangeSelectorWeight, computeStaggerDelay, computeStrokeRect, computeVideoCropRenderProps, computed, cosineSignal, createOutputItemSchema, createVirtualMedia, dataTypeColors, describeGpu, deserializeSignalData, deterministicWigglyNoise, distanceToCurveParameter, editTrackedRegion, effectFactories, effectMeta, ellipseToCubicBeziers, encodeStereoWav, ensureDevice, evaluateAnimationAtFrame, evaluateCubicBezier, evaluateCubicBezierDerivative, evaluateExpressionSelector, evaluateMarqueeOffset, evaluateSelectorCombination, evaluateSkewMatrix, evaluateSpringProgress, evaluateTrackAtFrame, evaluateTypewriterState, evaluateVolumetricFormation, extractSvgDimensions, findSourceAsset, formatHex, formatQaReport, frameArraySignal, frameSignal, generateArcLengthLUT, generateId, generatePathSegments, getActiveMediaMetadata, getFileDataMetadata, getFingerprint, getLeafMediaType, getMediaType, getRenderFingerprint, getScramblePool, getShuffledOrder, gradientStopsToOklab, hasOnlySingleSource, hoistMattes, inputStore, interpolate, isCssGradient, isEqual, isSignal, isVirtualMediaData, italic, limitGradientStops, lintComposition, loadFBX, loadModel3D, loadOBJ, lutStore, mapBlendModeToSkia, mark, measureSpring, measureText, measureTextAsync, mergeAnimationTracks, mixAudioTracks, mixColors, mixSfxInto, normalizeColorStops, normalizeTextSpans, oklabToRgb, parseColorToRgb, parseCssColor, parseCssGradient, parseFBX, parseMTL, parseMarkup, parseOBJ, parseSvgPathToCubicBeziers, pinNodeToLandmark, pinNodeToObject, preloadCompositionFonts, preloadFont, programmaticSignal, progressSignal, registerSignalDependency, renderFrameGrid, renderSemaphore, renderSfx, reportRenderDiagnostic, requiresIsolation, resetRenderCaches, resolveBoolean, resolveEnvironment, resolveMediaMimeType, resolveNumber, resolveParam, resolveSamplePoints, resolveString, rgbToOklab, rich, sampleAudioSpectrumScale, sampleColorStops, sampleCurveGeometry, samplePathChainGeometry, section, serializeSignalData, shaderStore, signal, signalBuilder, signalRegistry, sineSignal, size, softLimit, span, spring, springCalculation, stampResult, startPreview, sub, sup, takeRenderDiagnostics, textureCache, timeSignal, updateClockSignals, waveToCubicBeziers };
6259
6654
  //# sourceMappingURL=index.mjs.map