framefields 2.0.8 → 2.0.10

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 (317) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio--hi7MiZt.mjs → audio-B7Al-W_0.mjs} +3 -3
  4. package/dist/{audio--hi7MiZt.mjs.map → audio-B7Al-W_0.mjs.map} +1 -1
  5. package/dist/{audio-a6pY05g2.d.mts → audio-BxA0sL9z.d.mts} +3 -3
  6. package/dist/{audio-a6pY05g2.d.mts.map → audio-BxA0sL9z.d.mts.map} +1 -1
  7. package/dist/{client-C74hb7fy.mjs → client-CwRhflHE.mjs} +1 -1
  8. package/dist/{client-C74hb7fy.mjs.map → client-CwRhflHE.mjs.map} +1 -1
  9. package/dist/{dist-BQFap0wr.mjs → dist-B9PkqWnN.mjs} +78 -17
  10. package/dist/dist-B9PkqWnN.mjs.map +1 -0
  11. package/dist/{dist-ZVlYkuR4.mjs → dist-BFjSQP7i.mjs} +17 -8
  12. package/dist/dist-BFjSQP7i.mjs.map +1 -0
  13. package/dist/{dist-cjs-qEJrwjGk.mjs → dist-cjs--lfMLs3U.mjs} +4 -4
  14. package/dist/{dist-cjs-qEJrwjGk.mjs.map → dist-cjs--lfMLs3U.mjs.map} +1 -1
  15. package/dist/{dist-cjs-x5cwlqA5.mjs → dist-cjs--pxyGFw2.mjs} +1 -1
  16. package/dist/{dist-cjs-x5cwlqA5.mjs.map → dist-cjs--pxyGFw2.mjs.map} +1 -1
  17. package/dist/dist-cjs-3pon9kTt.mjs +6 -0
  18. package/dist/{dist-cjs-Dzs5P3K0.mjs → dist-cjs-BDpO-TH_.mjs} +1 -1
  19. package/dist/{dist-cjs-Dzs5P3K0.mjs.map → dist-cjs-BDpO-TH_.mjs.map} +1 -1
  20. package/dist/{dist-cjs-lYvO8aDo.mjs → dist-cjs-BiKQozdJ.mjs} +3 -3
  21. package/dist/{dist-cjs-lYvO8aDo.mjs.map → dist-cjs-BiKQozdJ.mjs.map} +1 -1
  22. package/dist/{dist-cjs-BUwe2XhR.mjs → dist-cjs-BmyyWYWv.mjs} +2 -2
  23. package/dist/{dist-cjs-BUwe2XhR.mjs.map → dist-cjs-BmyyWYWv.mjs.map} +1 -1
  24. package/dist/{dist-cjs-DgxjcvBN.mjs → dist-cjs-CND_ghfH.mjs} +1 -1
  25. package/dist/{dist-cjs-DgxjcvBN.mjs.map → dist-cjs-CND_ghfH.mjs.map} +1 -1
  26. package/dist/{dist-cjs-BWgoUCXJ.mjs → dist-cjs-CQwmMllY.mjs} +6 -6
  27. package/dist/{dist-cjs-BWgoUCXJ.mjs.map → dist-cjs-CQwmMllY.mjs.map} +1 -1
  28. package/dist/{dist-cjs-B5EVqDFp.mjs → dist-cjs-CgFzrgj8.mjs} +1 -1
  29. package/dist/{dist-cjs-B5EVqDFp.mjs.map → dist-cjs-CgFzrgj8.mjs.map} +1 -1
  30. package/dist/{dist-cjs-ECMuIF57.mjs → dist-cjs-CsU2sZoX.mjs} +4 -4
  31. package/dist/{dist-cjs-ECMuIF57.mjs.map → dist-cjs-CsU2sZoX.mjs.map} +1 -1
  32. package/dist/{dist-cjs-BKmGCgtm.mjs → dist-cjs-DJ8fcQEe.mjs} +11 -11
  33. package/dist/{dist-cjs-BKmGCgtm.mjs.map → dist-cjs-DJ8fcQEe.mjs.map} +1 -1
  34. package/dist/{dist-cjs-D7kEM-Mj.mjs → dist-cjs-DT2jJlcK.mjs} +5 -5
  35. package/dist/{dist-cjs-D7kEM-Mj.mjs.map → dist-cjs-DT2jJlcK.mjs.map} +1 -1
  36. package/dist/{dist-cjs-BUc0_kg-.mjs → dist-cjs-DjzmP0-x.mjs} +13 -13
  37. package/dist/{dist-cjs-BUc0_kg-.mjs.map → dist-cjs-DjzmP0-x.mjs.map} +1 -1
  38. package/dist/{dist-cjs-BGJkdexX.mjs → dist-cjs-DzjrlfbE.mjs} +14 -14
  39. package/dist/{dist-cjs-BGJkdexX.mjs.map → dist-cjs-DzjrlfbE.mjs.map} +1 -1
  40. package/dist/{dist-cjs-Df7144zM.mjs → dist-cjs-M-8QOgS_.mjs} +2 -2
  41. package/dist/{dist-cjs-Df7144zM.mjs.map → dist-cjs-M-8QOgS_.mjs.map} +1 -1
  42. package/dist/{dist-cjs-DFUmy89O.mjs → dist-cjs-TsA8LFXC.mjs} +3 -3
  43. package/dist/{dist-cjs-DFUmy89O.mjs.map → dist-cjs-TsA8LFXC.mjs.map} +1 -1
  44. package/dist/{dist-cjs-DsMdld8l.mjs → dist-cjs-agQl9T8M.mjs} +6 -6
  45. package/dist/{dist-cjs-DsMdld8l.mjs.map → dist-cjs-agQl9T8M.mjs.map} +1 -1
  46. package/dist/effects/index.d.mts +5 -5
  47. package/dist/effects/index.mjs +27 -26
  48. package/dist/{effects-axfL_C3a.mjs → effects-CREopCyP.mjs} +27 -3
  49. package/dist/effects-CREopCyP.mjs.map +1 -0
  50. package/dist/{event-streams-D-APZ7Ke.mjs → event-streams-BaNGaLxh.mjs} +2 -2
  51. package/dist/{event-streams-D-APZ7Ke.mjs.map → event-streams-BaNGaLxh.mjs.map} +1 -1
  52. package/dist/fonts/index.d.mts +1 -1
  53. package/dist/fonts/index.mjs +1 -1
  54. package/dist/{fonts-Cy26mbrO.mjs → fonts-DhEQ5h6E.mjs} +2 -2
  55. package/dist/{fonts-Cy26mbrO.mjs.map → fonts-DhEQ5h6E.mjs.map} +1 -1
  56. package/dist/{index-BJUS4Nx6.d.mts → index-BXNNJVs8.d.mts} +2 -2
  57. package/dist/{index-BJUS4Nx6.d.mts.map → index-BXNNJVs8.d.mts.map} +1 -1
  58. package/dist/{index-CbzEM_o6.d.mts → index-CQcdKyxF.d.mts} +1 -1
  59. package/dist/{index-CbzEM_o6.d.mts.map → index-CQcdKyxF.d.mts.map} +1 -1
  60. package/dist/{index-BJx_Qxc_.d.mts → index-CvDVpaKn.d.mts} +69 -27
  61. package/dist/index-CvDVpaKn.d.mts.map +1 -0
  62. package/dist/{index-WIPHLy5m.d.mts → index-D1zaOwEU.d.mts} +1 -1
  63. package/dist/index-D1zaOwEU.d.mts.map +1 -0
  64. package/dist/{index-CZChQhXZ.d.mts → index-J9CIK_nu.d.mts} +4 -2
  65. package/dist/index-J9CIK_nu.d.mts.map +1 -0
  66. package/dist/{index-Bi2nRZ_g.d.mts → index-fo4E7A6C.d.mts} +3 -3
  67. package/dist/{index-Bi2nRZ_g.d.mts.map → index-fo4E7A6C.d.mts.map} +1 -1
  68. package/dist/{index-BLbUQolI.d.mts → index-oodg5k9K.d.mts} +3 -3
  69. package/dist/{index-BLbUQolI.d.mts.map → index-oodg5k9K.d.mts.map} +1 -1
  70. package/dist/index.d.mts +11 -10
  71. package/dist/index.d.mts.map +1 -1
  72. package/dist/index.mjs +43 -42
  73. package/dist/index.mjs.map +1 -1
  74. package/dist/{package-C58KmGKw.mjs → package-XpCRbTOA.mjs} +1 -1
  75. package/dist/{package-C58KmGKw.mjs.map → package-XpCRbTOA.mjs.map} +1 -1
  76. package/dist/preview/index.d.mts +2 -2
  77. package/dist/preview/index.mjs +11 -11
  78. package/dist/{preview-BUPB38Kk.mjs → preview-9ifxywUM.mjs} +2 -2
  79. package/dist/{preview-BUPB38Kk.mjs.map → preview-9ifxywUM.mjs.map} +1 -1
  80. package/dist/preview-engine/audio.mjs +1 -1
  81. package/dist/preview-engine/{chunk-3ROJ7JVY.mjs → chunk-25IW7NYO.mjs} +1 -1
  82. package/dist/preview-engine/chunk-36YGYLKD.mjs +58 -0
  83. package/dist/preview-engine/chunk-4VOHF3FF.mjs +1 -0
  84. package/dist/preview-engine/{chunk-TNZENER3.mjs → chunk-7DIAFPQP.mjs} +2 -2
  85. package/dist/preview-engine/{chunk-CXFEQ5PM.mjs → chunk-7O24H4YT.mjs} +2 -2
  86. package/dist/preview-engine/{chunk-VWLR2AZR.mjs → chunk-AEK5BO3J.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-5PPSCISJ.mjs → chunk-AG5JNZYQ.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-BE3CEVJB.mjs → chunk-AUFSM5KI.mjs} +2 -2
  89. package/dist/preview-engine/chunk-AW7HNZKR.mjs +98 -0
  90. package/dist/preview-engine/chunk-BHFI3Y4T.mjs +1 -0
  91. package/dist/preview-engine/chunk-DLXQDDIN.mjs +46 -0
  92. package/dist/preview-engine/chunk-EJGLUZMW.mjs +1 -0
  93. package/dist/preview-engine/{chunk-XSMK5E2V.mjs → chunk-JAOXXYXG.mjs} +2 -2
  94. package/dist/preview-engine/{chunk-PO4VAAQC.mjs → chunk-K52S5DJX.mjs} +1 -1
  95. package/dist/preview-engine/{chunk-IGFT3XLN.mjs → chunk-MDDF2GCF.mjs} +2 -2
  96. package/dist/preview-engine/chunk-MJM3NFEC.mjs +315 -0
  97. package/dist/preview-engine/{chunk-BUWK5RJ4.mjs → chunk-QTKJXDIW.mjs} +1 -1
  98. package/dist/preview-engine/{chunk-WQ7BFSKF.mjs → chunk-RNOO4UR5.mjs} +1 -1
  99. package/dist/preview-engine/{chunk-POPVFC5P.mjs → chunk-S4CSX6K5.mjs} +10 -10
  100. package/dist/preview-engine/chunk-SNYAHQ25.mjs +186 -0
  101. package/dist/preview-engine/{chunk-JNEVSC4I.mjs → chunk-T6CC2KCZ.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-MC7TZZLD.mjs → chunk-T6COGNOW.mjs} +2 -2
  103. package/dist/preview-engine/chunk-VVLM6LZ3.mjs +1 -0
  104. package/dist/preview-engine/chunk-XUM42I4R.mjs +1 -0
  105. package/dist/preview-engine/chunk-ZDCA6NVT.mjs +82 -0
  106. package/dist/preview-engine/effects.mjs +1 -1
  107. package/dist/preview-engine/fonts.mjs +1 -1
  108. package/dist/preview-engine/framefields.mjs +13 -13
  109. package/dist/preview-engine/player.mjs +5 -5
  110. package/dist/preview-engine/{renderers-Q2ZDD5K2.mjs → renderers-2US2NIUG.mjs} +2 -2
  111. package/dist/preview-engine/{renderers-54AQK6RF.mjs → renderers-32PIFHPS.mjs} +1 -1
  112. package/dist/preview-engine/{renderers-O6HOYIPS.mjs → renderers-76PQY2SO.mjs} +1 -1
  113. package/dist/preview-engine/renderers-7HNVXNAI.mjs +248 -0
  114. package/dist/preview-engine/{renderers-PXGLEFZO.mjs → renderers-CI2GXWLP.mjs} +1 -1
  115. package/dist/preview-engine/{renderers-GC7EGB5Z.mjs → renderers-CRKRWR2Y.mjs} +1 -1
  116. package/dist/preview-engine/{renderers-47UITXLZ.mjs → renderers-EE2GFG7J.mjs} +1 -1
  117. package/dist/preview-engine/{renderers-E3JYRLSD.mjs → renderers-GJSUN5HU.mjs} +1 -1
  118. package/dist/preview-engine/{renderers-KCP4TFHG.mjs → renderers-IHKORHMT.mjs} +1 -1
  119. package/dist/preview-engine/{renderers-OBMTU3QY.mjs → renderers-NQUDQEHY.mjs} +1 -1
  120. package/dist/preview-engine/{renderers-QECJP22T.mjs → renderers-NSY2SDIE.mjs} +1 -1
  121. package/dist/preview-engine/{renderers-KS4HPV6Q.mjs → renderers-PWLWOZY4.mjs} +1 -1
  122. package/dist/preview-engine/{renderers-TUYQLKHJ.mjs → renderers-W5CVDJVH.mjs} +1 -1
  123. package/dist/preview-engine/{renderers-N5UPJY73.mjs → renderers-WLLJFZTF.mjs} +1 -1
  124. package/dist/preview-engine/renderers-WN4SYFCU.mjs +1 -0
  125. package/dist/preview-engine/{renderers-TG62LZTF.mjs → renderers-XFBSGTHU.mjs} +1 -1
  126. package/dist/preview-engine/signals.mjs +1 -1
  127. package/dist/{program-Jt07Tx1J.mjs → program-xRfFoPxe.mjs} +2 -2
  128. package/dist/{program-Jt07Tx1J.mjs.map → program-xRfFoPxe.mjs.map} +1 -1
  129. package/dist/renderer/index.d.mts +2 -2
  130. package/dist/renderer/index.mjs +3 -3
  131. package/dist/{renderer-Bal8734U.d.mts → renderer-2NQWaZd7.d.mts} +2 -2
  132. package/dist/{renderer-Bal8734U.d.mts.map → renderer-2NQWaZd7.d.mts.map} +1 -1
  133. package/dist/{renderer-CIMjMFGm.mjs → renderer-5h0llpx7.mjs} +2 -2
  134. package/dist/{renderer-CIMjMFGm.mjs.map → renderer-5h0llpx7.mjs.map} +1 -1
  135. package/dist/{renderer-U0LJuM9D.mjs → renderer-6GeDT4Mx.mjs} +2 -2
  136. package/dist/{renderer-U0LJuM9D.mjs.map → renderer-6GeDT4Mx.mjs.map} +1 -1
  137. package/dist/{renderer-CIQYTiT9.mjs → renderer-8qpGxSSO.mjs} +2 -2
  138. package/dist/{renderer-CIQYTiT9.mjs.map → renderer-8qpGxSSO.mjs.map} +1 -1
  139. package/dist/{renderer-BkOXe6o6.mjs → renderer-9wp5R7PL.mjs} +2 -2
  140. package/dist/{renderer-BkOXe6o6.mjs.map → renderer-9wp5R7PL.mjs.map} +1 -1
  141. package/dist/renderer-B4F6wL68.mjs +3 -0
  142. package/dist/renderer-B4i1jmiT.mjs +3 -0
  143. package/dist/renderer-B5ylY3uM.mjs +3 -0
  144. package/dist/{renderer-B6Q5e9CU.mjs → renderer-BA8YwBRQ.mjs} +2 -2
  145. package/dist/{renderer-B6Q5e9CU.mjs.map → renderer-BA8YwBRQ.mjs.map} +1 -1
  146. package/dist/{renderer-DVQp5fLG.mjs → renderer-BGXbGqY4.mjs} +5 -4
  147. package/dist/{renderer-DVQp5fLG.mjs.map → renderer-BGXbGqY4.mjs.map} +1 -1
  148. package/dist/{renderer-Dgg6pQGI.mjs → renderer-BJ6Y-7ke.mjs} +2 -2
  149. package/dist/{renderer-Dgg6pQGI.mjs.map → renderer-BJ6Y-7ke.mjs.map} +1 -1
  150. package/dist/{renderer-BDLnExoP.mjs → renderer-BM05sB8m.mjs} +8 -7
  151. package/dist/renderer-BM05sB8m.mjs.map +1 -0
  152. package/dist/renderer-BPw23wiR.mjs +3 -0
  153. package/dist/{renderer-DP-xNaYX.mjs → renderer-BZmfKIom.mjs} +2 -2
  154. package/dist/{renderer-DP-xNaYX.mjs.map → renderer-BZmfKIom.mjs.map} +1 -1
  155. package/dist/{renderer-DXyaswab.mjs → renderer-BgdkEFmv.mjs} +18 -17
  156. package/dist/renderer-BgdkEFmv.mjs.map +1 -0
  157. package/dist/renderer-BghW-bSZ.mjs +3 -0
  158. package/dist/{renderer-BdSHGzHj.mjs → renderer-BiSALMQy.mjs} +1 -1
  159. package/dist/{renderer-C-Bv9nVB.mjs → renderer-BnvqEqvE.mjs} +2 -2
  160. package/dist/{renderer-C-Bv9nVB.mjs.map → renderer-BnvqEqvE.mjs.map} +1 -1
  161. package/dist/{renderer-CmIySXSN.mjs → renderer-BpCxKWQm.mjs} +11 -5
  162. package/dist/renderer-BpCxKWQm.mjs.map +1 -0
  163. package/dist/{renderer-CceiI6P7.mjs → renderer-BtRfKx5N.mjs} +18 -4
  164. package/dist/renderer-BtRfKx5N.mjs.map +1 -0
  165. package/dist/{renderer-CXZe0lfI.mjs → renderer-But0u-xi.mjs} +2 -2
  166. package/dist/{renderer-CXZe0lfI.mjs.map → renderer-But0u-xi.mjs.map} +1 -1
  167. package/dist/renderer-Bw3oZ9YT.mjs +3 -0
  168. package/dist/renderer-C2009W-_.mjs +3 -0
  169. package/dist/renderer-C36yoGXG.mjs +3 -0
  170. package/dist/{renderer-VPK8JnSw.mjs → renderer-CIYcdZuZ.mjs} +7 -6
  171. package/dist/{renderer-VPK8JnSw.mjs.map → renderer-CIYcdZuZ.mjs.map} +1 -1
  172. package/dist/{renderer-D49-PYDo.mjs → renderer-CJNyhr_S.mjs} +2 -2
  173. package/dist/{renderer-D49-PYDo.mjs.map → renderer-CJNyhr_S.mjs.map} +1 -1
  174. package/dist/renderer-CM1_2ZWA.mjs +3 -0
  175. package/dist/{renderer-0uccAKQe.mjs → renderer-CNF10fCq.mjs} +2 -2
  176. package/dist/{renderer-0uccAKQe.mjs.map → renderer-CNF10fCq.mjs.map} +1 -1
  177. package/dist/{renderer-DxBUppHf.mjs → renderer-CStktK20.mjs} +74 -63
  178. package/dist/{renderer-DxBUppHf.mjs.map → renderer-CStktK20.mjs.map} +1 -1
  179. package/dist/renderer-CWlzudP8.mjs +3 -0
  180. package/dist/{renderer-D5GsF1LT.mjs → renderer-CcU7dVn9.mjs} +2 -2
  181. package/dist/{renderer-D5GsF1LT.mjs.map → renderer-CcU7dVn9.mjs.map} +1 -1
  182. package/dist/renderer-Cd5vzrGs.mjs +3 -0
  183. package/dist/renderer-CeJ_vDXI.mjs +3 -0
  184. package/dist/{renderer-DFKsLrUs.mjs → renderer-CepMDQ06.mjs} +1 -1
  185. package/dist/{renderer-DFKsLrUs.mjs.map → renderer-CepMDQ06.mjs.map} +1 -1
  186. package/dist/{renderer-DrgNyCSx.mjs → renderer-CfeoxM_3.mjs} +2 -2
  187. package/dist/{renderer-DrgNyCSx.mjs.map → renderer-CfeoxM_3.mjs.map} +1 -1
  188. package/dist/{renderer-BENX0vRC.mjs → renderer-CgmFh6MY.mjs} +1 -1
  189. package/dist/renderer-CjY77sB_.mjs +3 -0
  190. package/dist/{renderer-Bu0xOP_v.mjs → renderer-CoZKST2Y.mjs} +2 -2
  191. package/dist/{renderer-Bu0xOP_v.mjs.map → renderer-CoZKST2Y.mjs.map} +1 -1
  192. package/dist/{renderer-BQZniXw0.mjs → renderer-CroHPOsX.mjs} +2 -2
  193. package/dist/{renderer-BQZniXw0.mjs.map → renderer-CroHPOsX.mjs.map} +1 -1
  194. package/dist/{renderer-DabG62XS.mjs → renderer-D2XD4QYk.mjs} +1 -1
  195. package/dist/{renderer-DabG62XS.mjs.map → renderer-D2XD4QYk.mjs.map} +1 -1
  196. package/dist/renderer-D5Z6mda5.mjs +3 -0
  197. package/dist/{renderer-Bv-ljXHc.mjs → renderer-D7ztfQHX.mjs} +2 -2
  198. package/dist/{renderer-Bv-ljXHc.mjs.map → renderer-D7ztfQHX.mjs.map} +1 -1
  199. package/dist/{renderer-DjI45OYC.mjs → renderer-D7zvPHKn.mjs} +1 -1
  200. package/dist/{renderer-DjI45OYC.mjs.map → renderer-D7zvPHKn.mjs.map} +1 -1
  201. package/dist/renderer-D9NnIx7o.mjs +3 -0
  202. package/dist/{renderer-C5RhNQdr.mjs → renderer-DAMJZNtX.mjs} +10 -9
  203. package/dist/{renderer-C5RhNQdr.mjs.map → renderer-DAMJZNtX.mjs.map} +1 -1
  204. package/dist/{renderer-Bq3Geqe3.mjs → renderer-DBlPbsgi.mjs} +1 -1
  205. package/dist/renderer-DCJa7OGk.mjs +3 -0
  206. package/dist/{renderer-DDd3cjaz.mjs → renderer-DCkSR2Ne.mjs} +18 -11
  207. package/dist/renderer-DCkSR2Ne.mjs.map +1 -0
  208. package/dist/{renderer-B80s47yo.mjs → renderer-DEJwPRkR.mjs} +1 -1
  209. package/dist/{renderer-B80s47yo.mjs.map → renderer-DEJwPRkR.mjs.map} +1 -1
  210. package/dist/renderer-DGwSl7g1.mjs +3 -0
  211. package/dist/{renderer-DbaSgadp.mjs → renderer-DNNqpK7t.mjs} +2 -2
  212. package/dist/{renderer-DbaSgadp.mjs.map → renderer-DNNqpK7t.mjs.map} +1 -1
  213. package/dist/renderer-DNoRNfMm.mjs +3 -0
  214. package/dist/renderer-DOZ8bpyY.mjs +3 -0
  215. package/dist/renderer-DRHyRNU8.mjs +3 -0
  216. package/dist/{renderer-BjROyv5F.mjs → renderer-DTvfYkI9.mjs} +2 -2
  217. package/dist/{renderer-BjROyv5F.mjs.map → renderer-DTvfYkI9.mjs.map} +1 -1
  218. package/dist/{renderer-CboM4tba.mjs → renderer-DYm4duFr.mjs} +11 -5
  219. package/dist/renderer-DYm4duFr.mjs.map +1 -0
  220. package/dist/{renderer-CIvaRnP_.mjs → renderer-D_1oDOCP.mjs} +1 -1
  221. package/dist/{renderer-CIvaRnP_.mjs.map → renderer-D_1oDOCP.mjs.map} +1 -1
  222. package/dist/renderer-DdVBt8Rz.mjs +263 -0
  223. package/dist/renderer-DdVBt8Rz.mjs.map +1 -0
  224. package/dist/{renderer-BPbNLPcz.mjs → renderer-DffynBHa.mjs} +2 -2
  225. package/dist/{renderer-BPbNLPcz.mjs.map → renderer-DffynBHa.mjs.map} +1 -1
  226. package/dist/{renderer-CXJxK7HP.mjs → renderer-DjTiNeAp.mjs} +17 -4
  227. package/dist/renderer-DjTiNeAp.mjs.map +1 -0
  228. package/dist/{renderer-DP948J9X.mjs → renderer-Dju9CaeL.mjs} +18 -4
  229. package/dist/renderer-Dju9CaeL.mjs.map +1 -0
  230. package/dist/renderer-DlD85Xoi.mjs +3 -0
  231. package/dist/renderer-Dr0bgOrW.mjs +3 -0
  232. package/dist/{renderer-BTFPC3UJ.mjs → renderer-DryPrxYc.mjs} +1 -1
  233. package/dist/renderer-DurtG-Hc.mjs +3 -0
  234. package/dist/{renderer-zwxwjWqa.mjs → renderer-DxtHmyAa.mjs} +2 -2
  235. package/dist/{renderer-zwxwjWqa.mjs.map → renderer-DxtHmyAa.mjs.map} +1 -1
  236. package/dist/{renderer-h-HOoLwD.mjs → renderer-_bygZSKk.mjs} +1 -1
  237. package/dist/{renderer-h-HOoLwD.mjs.map → renderer-_bygZSKk.mjs.map} +1 -1
  238. package/dist/{renderer-BD6Jkc8j.mjs → renderer-b6sZN90h.mjs} +4 -3
  239. package/dist/{renderer-BD6Jkc8j.mjs.map → renderer-b6sZN90h.mjs.map} +1 -1
  240. package/dist/renderer-d5-F_48R.mjs +3 -0
  241. package/dist/renderer-eFv9HBmL.mjs +3 -0
  242. package/dist/renderer-iuV6wQoL.mjs +4 -0
  243. package/dist/{renderer-D5xelwpw.mjs → renderer-jkZ_IQnW.mjs} +2 -2
  244. package/dist/{renderer-D5xelwpw.mjs.map → renderer-jkZ_IQnW.mjs.map} +1 -1
  245. package/dist/renderer-n-uuWPF4.mjs +3 -0
  246. package/dist/renderer-rzccTFuY.mjs +3 -0
  247. package/dist/{renderer-DIfk6m2O.mjs → renderer-wVldKtFU.mjs} +2 -2
  248. package/dist/{renderer-DIfk6m2O.mjs.map → renderer-wVldKtFU.mjs.map} +1 -1
  249. package/dist/{renderer-o4wOvjEC.mjs → renderer-xKOVmd2O.mjs} +21 -18
  250. package/dist/renderer-xKOVmd2O.mjs.map +1 -0
  251. package/dist/renderer-y9eGFPFL.mjs +3 -0
  252. package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs → renderers-CP8CFWDs-BLgwUYX2.mjs} +2 -2
  253. package/dist/{renderers-CP8CFWDs-BQBjaV9O.mjs.map → renderers-CP8CFWDs-BLgwUYX2.mjs.map} +1 -1
  254. package/dist/signals/index.d.mts +5 -5
  255. package/dist/signals/index.mjs +4 -4
  256. package/dist/{signin-CZj4Oc5s.mjs → signin-Db08vl-g.mjs} +9 -9
  257. package/dist/{signin-CZj4Oc5s.mjs.map → signin-Db08vl-g.mjs.map} +1 -1
  258. package/dist/{sso-oidc-C0_31ThY.mjs → sso-oidc-CpLz_lIu.mjs} +9 -9
  259. package/dist/{sso-oidc-C0_31ThY.mjs.map → sso-oidc-CpLz_lIu.mjs.map} +1 -1
  260. package/dist/{sts-DD4ggEXC.mjs → sts-BQefGuml.mjs} +2 -2
  261. package/dist/{sts-nXw8RDJI.mjs → sts-Dgl0kH-t.mjs} +9 -9
  262. package/dist/{sts-nXw8RDJI.mjs.map → sts-Dgl0kH-t.mjs.map} +1 -1
  263. package/package.json +55 -54
  264. package/dist/dist-BQFap0wr.mjs.map +0 -1
  265. package/dist/dist-ZVlYkuR4.mjs.map +0 -1
  266. package/dist/dist-cjs-CmZEMtO6.mjs +0 -6
  267. package/dist/effects-axfL_C3a.mjs.map +0 -1
  268. package/dist/index-BJx_Qxc_.d.mts.map +0 -1
  269. package/dist/index-CZChQhXZ.d.mts.map +0 -1
  270. package/dist/index-WIPHLy5m.d.mts.map +0 -1
  271. package/dist/preview-engine/chunk-2XXICKQV.mjs +0 -82
  272. package/dist/preview-engine/chunk-66NVL4BN.mjs +0 -58
  273. package/dist/preview-engine/chunk-7MJVROKR.mjs +0 -98
  274. package/dist/preview-engine/chunk-7NVDTELW.mjs +0 -1
  275. package/dist/preview-engine/chunk-DMWSTYFF.mjs +0 -1
  276. package/dist/preview-engine/chunk-FKZ4XXPE.mjs +0 -1
  277. package/dist/preview-engine/chunk-JQ4WY6BZ.mjs +0 -186
  278. package/dist/preview-engine/chunk-S3P3MJYU.mjs +0 -1
  279. package/dist/preview-engine/chunk-ZJFAGIOM.mjs +0 -315
  280. package/dist/preview-engine/renderers-MZBR3MSR.mjs +0 -248
  281. package/dist/renderer-1mNREW16.mjs +0 -3
  282. package/dist/renderer-4tKI3p9c.mjs +0 -3
  283. package/dist/renderer-B3XeKN-e.mjs +0 -3
  284. package/dist/renderer-B7_6SHd8.mjs +0 -3
  285. package/dist/renderer-BDLnExoP.mjs.map +0 -1
  286. package/dist/renderer-BENF6Wts.mjs +0 -3
  287. package/dist/renderer-BMovYRoR.mjs +0 -3
  288. package/dist/renderer-BPiLdwI1.mjs +0 -3
  289. package/dist/renderer-BdyMrzUX.mjs +0 -3
  290. package/dist/renderer-BfpdekRn.mjs +0 -3
  291. package/dist/renderer-BfvBHHNr.mjs +0 -3
  292. package/dist/renderer-BtdnLjKZ.mjs +0 -3
  293. package/dist/renderer-C0q5UUY7.mjs +0 -3
  294. package/dist/renderer-CXJxK7HP.mjs.map +0 -1
  295. package/dist/renderer-CboM4tba.mjs.map +0 -1
  296. package/dist/renderer-CceiI6P7.mjs.map +0 -1
  297. package/dist/renderer-Cg-rJgwM.mjs +0 -3
  298. package/dist/renderer-CkgQArsi.mjs +0 -3
  299. package/dist/renderer-CmIySXSN.mjs.map +0 -1
  300. package/dist/renderer-CnO9KcmP.mjs +0 -3
  301. package/dist/renderer-Cnp5JCwi.mjs +0 -3
  302. package/dist/renderer-CwiCQzjW.mjs +0 -4
  303. package/dist/renderer-D2LCMZ0l.mjs +0 -3
  304. package/dist/renderer-D6bWQtr-.mjs +0 -3
  305. package/dist/renderer-DBGy4qIh.mjs +0 -3
  306. package/dist/renderer-DBRnvHBV.mjs +0 -3
  307. package/dist/renderer-DDd3cjaz.mjs.map +0 -1
  308. package/dist/renderer-DJgrcu3v.mjs +0 -3
  309. package/dist/renderer-DP948J9X.mjs.map +0 -1
  310. package/dist/renderer-DTpBOlDA.mjs +0 -3
  311. package/dist/renderer-DWwIX4Mr.mjs +0 -3
  312. package/dist/renderer-DXyaswab.mjs.map +0 -1
  313. package/dist/renderer-DfnacE0H.mjs +0 -3
  314. package/dist/renderer-RA8pee2T.mjs +0 -3
  315. package/dist/renderer-eH4u4-2c.mjs +0 -3
  316. package/dist/renderer-eWOqFUz9.mjs +0 -3
  317. package/dist/renderer-o4wOvjEC.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { P as WebGPUAudioProcessor } from "../index-WIPHLy5m.mjs";
2
- import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-Bi2nRZ_g.mjs";
3
- import "../index-CZChQhXZ.mjs";
4
- import { t as _default$1 } from "../renderer-Bal8734U.mjs";
1
+ import { P as WebGPUAudioProcessor } from "../index-D1zaOwEU.mjs";
2
+ import { a as SfxTrigger, c as softLimit, d as _default$5, f as _default$4, g as mixAudioTracks, h as _default$2, i as SfxRenderContext, l as _default$7, m as _default$3, n as encodeStereoWav, o as mixSfxInto, p as _default, r as RenderedSfx, s as renderSfx, t as EncodeWavOptions, u as _default$6 } from "../index-fo4E7A6C.mjs";
3
+ import "../index-J9CIK_nu.mjs";
4
+ import { t as _default$1 } from "../renderer-2NQWaZd7.mjs";
5
5
  export { EncodeWavOptions, RenderedSfx, SfxRenderContext, SfxTrigger, WebGPUAudioProcessor, _default as audioFadeRenderer, _default$1 as audioSignalExtractorRenderer, _default$2 as compressorRenderer, _default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, _default$4 as noiseGateRenderer, _default$5 as parametricEqRenderer, renderSfx, _default$6 as reverbRenderer, softLimit, _default$7 as stereoPanningRenderer };
@@ -1,14 +1,14 @@
1
- import { C as WebGPUAudioProcessor } from "../dist-BQFap0wr.mjs";
2
- import { t as renderers_default$1 } from "../renderers-CP8CFWDs-BQBjaV9O.mjs";
3
- import { i as mixAudioTracks } from "../dist-ZVlYkuR4.mjs";
4
- import { t as renderers_default$2 } from "../renderer-zwxwjWqa.mjs";
5
- import { t as renderers_default$3 } from "../renderer-BjROyv5F.mjs";
6
- import { t as renderers_default } from "../renderer-Bv-ljXHc.mjs";
7
- import { t as renderers_default$4 } from "../renderer-DbaSgadp.mjs";
8
- import { t as renderers_default$5 } from "../renderer-DrgNyCSx.mjs";
9
- import { t as renderers_default$6 } from "../renderer-0uccAKQe.mjs";
1
+ import { C as WebGPUAudioProcessor } from "../dist-B9PkqWnN.mjs";
2
+ import { t as renderers_default$1 } from "../renderers-CP8CFWDs-BLgwUYX2.mjs";
3
+ import { i as mixAudioTracks } from "../dist-BFjSQP7i.mjs";
4
+ import { t as renderers_default$2 } from "../renderer-DxtHmyAa.mjs";
5
+ import { t as renderers_default$3 } from "../renderer-DTvfYkI9.mjs";
6
+ import { t as renderers_default } from "../renderer-D7ztfQHX.mjs";
7
+ import { t as renderers_default$4 } from "../renderer-DNNqpK7t.mjs";
8
+ import { t as renderers_default$5 } from "../renderer-CfeoxM_3.mjs";
9
+ import { t as renderers_default$6 } from "../renderer-CNF10fCq.mjs";
10
10
  import "../renderer-C2n-EHxg.mjs";
11
- import { t as renderers_default$7 } from "../renderer-BPbNLPcz.mjs";
11
+ import { t as renderers_default$7 } from "../renderer-DffynBHa.mjs";
12
12
  import { i as softLimit, n as mixSfxInto, r as renderSfx, t as encodeStereoWav } from "../audio-TAvPwzLR.mjs";
13
13
 
14
14
  export { WebGPUAudioProcessor, renderers_default as audioFadeRenderer, renderers_default$1 as audioSignalExtractorRenderer, renderers_default$2 as compressorRenderer, renderers_default$3 as delayRenderer, encodeStereoWav, mixAudioTracks, mixSfxInto, renderers_default$4 as noiseGateRenderer, renderers_default$5 as parametricEqRenderer, renderSfx, renderers_default$6 as reverbRenderer, softLimit, renderers_default$7 as stereoPanningRenderer };
@@ -1,6 +1,6 @@
1
1
  import { _t as frameArraySignal } from "./dist-B9Afsv83.mjs";
2
- import { F as ensureDevice, i as AudioSignalComputePipeline } from "./dist-BQFap0wr.mjs";
3
- import { n as decodeAudioSource } from "./dist-ZVlYkuR4.mjs";
2
+ import { F as ensureDevice, i as AudioSignalComputePipeline } from "./dist-B9PkqWnN.mjs";
3
+ import { n as decodeAudioSource } from "./dist-BFjSQP7i.mjs";
4
4
 
5
5
  //#region src/signals/audio.ts
6
6
  const AudioSignal = {
@@ -82,4 +82,4 @@ const AudioSignal = {
82
82
 
83
83
  //#endregion
84
84
  export { AudioSignal as t };
85
- //# sourceMappingURL=audio--hi7MiZt.mjs.map
85
+ //# sourceMappingURL=audio-B7Al-W_0.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio--hi7MiZt.mjs","names":[],"sources":["../src/signals/audio.ts"],"sourcesContent":["import { decodeAudioSource } from \"@framefields/compositions\";\nimport {\n\ttype FrameSignal,\n\tframeArraySignal,\n\ttype GPUTextureBinding,\n} from \"@framefields/core\";\nimport {\n\ttype AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\n} from \"@framefields/webgpu-renderers\";\n\nexport interface AudioSignalOptions extends AudioSignalComputeConfig {\n\tfps?: number;\n\ttargetWidth?: number;\n\tpreviewMode?: \"waveform\" | \"envelope\" | \"beat_markers\" | \"spectrum\";\n}\n\nexport interface ExtractedAudioSignalsBundle {\n\tprimary: FrameSignal<number>;\n\tbeat: FrameSignal<number>;\n\tbass: FrameSignal<number>;\n\tenergy: FrameSignal<number>;\n\tdurationSec: number;\n\tnumFrames: number;\n\tsampleRate: number;\n\ttextureView: unknown;\n\ttexture: unknown;\n\tprimaryBuffer: unknown;\n\tbeatBuffer: unknown;\n\tbassBuffer: unknown;\n\tenergyBuffer: unknown;\n\tseekFrame(frame: number): void;\n}\n\nexport const AudioSignal = {\n\tasync extractFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst targetWidth = options.targetWidth ?? 512;\n\n\t\tconst extracted = await AudioSignalComputePipeline.extractFeatures(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t\ttargetWidth,\n\t\t);\n\n\t\tconst samples = extracted.channelSamples ?? {\n\t\t\tprimary: new Float32Array(extracted.numFrames),\n\t\t\tbeat: new Float32Array(extracted.numFrames),\n\t\t\tbass: new Float32Array(extracted.numFrames),\n\t\t\tenergy: new Float32Array(extracted.numFrames),\n\t\t};\n\n\t\tconst primaryBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_primary\",\n\t\t\tchannel: \"primary\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.primaryBuffer,\n\t\t\tstats: extracted.stats.primary,\n\t\t};\n\t\tconst beatBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_beat\",\n\t\t\tchannel: \"beat\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.beatBuffer,\n\t\t\tstats: extracted.stats.beat,\n\t\t};\n\t\tconst bassBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_bass\",\n\t\t\tchannel: \"bass\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.bassBuffer,\n\t\t\tstats: extracted.stats.bass,\n\t\t};\n\t\tconst energyBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_energy\",\n\t\t\tchannel: \"energy\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.energyBuffer,\n\t\t\tstats: extracted.stats.energy,\n\t\t};\n\n\t\tconst primary = frameArraySignal(samples.primary, fps, primaryBinding);\n\t\tconst beat = frameArraySignal(samples.beat, fps, beatBinding);\n\t\tconst bass = frameArraySignal(samples.bass, fps, bassBinding);\n\t\tconst energy = frameArraySignal(samples.energy, fps, energyBinding);\n\n\t\treturn {\n\t\t\tprimary,\n\t\t\tbeat,\n\t\t\tbass,\n\t\t\tenergy,\n\t\t\tdurationSec: extracted.durationSec,\n\t\t\tnumFrames: extracted.numFrames,\n\t\t\tsampleRate,\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tprimaryBuffer: extracted.primaryBuffer,\n\t\t\tbeatBuffer: extracted.beatBuffer,\n\t\t\tbassBuffer: extracted.bassBuffer,\n\t\t\tenergyBuffer: extracted.energyBuffer,\n\t\t\tseekFrame(frame: number) {\n\t\t\t\tprimary.seekFrame?.(frame);\n\t\t\t\tbeat.seekFrame?.(frame);\n\t\t\t\tbass.seekFrame?.(frame);\n\t\t\t\tenergy.seekFrame?.(frame);\n\t\t\t},\n\t\t};\n\t},\n\n\tasync extract(\n\t\tsource: string,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst decoded = await decodeAudioSource(source);\n\t\tif (!decoded || decoded.channels.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to decode audio source for feature extraction: ${source}`,\n\t\t\t);\n\t\t}\n\t\treturn AudioSignal.extractFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n};\n"],"mappings":";;;;;AAmCA,MAAa,cAAc;CAC1B,MAAM,oBACL,UACA,YACA,UAA8B,EAAE,EACO;EACvC,MAAM,SAAS,MAAM,cAAc;EACnC,MAAM,MAAM,QAAQ,OAAO;EAC3B,MAAM,cAAc,QAAQ,eAAe;EAE3C,MAAM,YAAY,MAAM,2BAA2B,gBAClD,QACA,UACA,YACA,KACA,SACA,YACA;EAED,MAAM,UAAU,UAAU,kBAAkB;GAC3C,SAAS,IAAI,aAAa,UAAU,UAAU;GAC9C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,QAAQ,IAAI,aAAa,UAAU,UAAU;GAC7C;EAED,MAAM,iBAAoC;GACzC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,gBAAmC;GACxC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EAED,MAAM,UAAU,iBAAiB,QAAQ,SAAS,KAAK,eAAe;EACtE,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,SAAS,iBAAiB,QAAQ,QAAQ,KAAK,cAAc;AAEnE,SAAO;GACN;GACA;GACA;GACA;GACA,aAAa,UAAU;GACvB,WAAW,UAAU;GACrB;GACA,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,eAAe,UAAU;GACzB,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,cAAc,UAAU;GACxB,UAAU,OAAe;AACxB,YAAQ,YAAY,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,WAAO,YAAY,MAAM;;GAE1B;;CAGF,MAAM,QACL,QACA,UAA8B,EAAE,EACO;EACvC,MAAM,UAAU,MAAM,kBAAkB,OAAO;AAC/C,MAAI,CAAC,WAAW,QAAQ,SAAS,WAAW,EAC3C,OAAM,IAAI,MACT,yDAAyD,SACzD;AAEF,SAAO,YAAY,oBAClB,QAAQ,UACR,QAAQ,YACR,QACA;;CAEF"}
1
+ {"version":3,"file":"audio-B7Al-W_0.mjs","names":[],"sources":["../src/signals/audio.ts"],"sourcesContent":["import { decodeAudioSource } from \"@framefields/compositions\";\nimport {\n\ttype FrameSignal,\n\tframeArraySignal,\n\ttype GPUTextureBinding,\n} from \"@framefields/core\";\nimport {\n\ttype AudioSignalComputeConfig,\n\tAudioSignalComputePipeline,\n\tensureDevice,\n} from \"@framefields/webgpu-renderers\";\n\nexport interface AudioSignalOptions extends AudioSignalComputeConfig {\n\tfps?: number;\n\ttargetWidth?: number;\n\tpreviewMode?: \"waveform\" | \"envelope\" | \"beat_markers\" | \"spectrum\";\n}\n\nexport interface ExtractedAudioSignalsBundle {\n\tprimary: FrameSignal<number>;\n\tbeat: FrameSignal<number>;\n\tbass: FrameSignal<number>;\n\tenergy: FrameSignal<number>;\n\tdurationSec: number;\n\tnumFrames: number;\n\tsampleRate: number;\n\ttextureView: unknown;\n\ttexture: unknown;\n\tprimaryBuffer: unknown;\n\tbeatBuffer: unknown;\n\tbassBuffer: unknown;\n\tenergyBuffer: unknown;\n\tseekFrame(frame: number): void;\n}\n\nexport const AudioSignal = {\n\tasync extractFromChannels(\n\t\tchannels: Float32Array[],\n\t\tsampleRate: number,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst device = await ensureDevice();\n\t\tconst fps = options.fps ?? 24;\n\t\tconst targetWidth = options.targetWidth ?? 512;\n\n\t\tconst extracted = await AudioSignalComputePipeline.extractFeatures(\n\t\t\tdevice,\n\t\t\tchannels,\n\t\t\tsampleRate,\n\t\t\tfps,\n\t\t\toptions,\n\t\t\ttargetWidth,\n\t\t);\n\n\t\tconst samples = extracted.channelSamples ?? {\n\t\t\tprimary: new Float32Array(extracted.numFrames),\n\t\t\tbeat: new Float32Array(extracted.numFrames),\n\t\t\tbass: new Float32Array(extracted.numFrames),\n\t\t\tenergy: new Float32Array(extracted.numFrames),\n\t\t};\n\n\t\tconst primaryBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_primary\",\n\t\t\tchannel: \"primary\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.primaryBuffer,\n\t\t\tstats: extracted.stats.primary,\n\t\t};\n\t\tconst beatBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_beat\",\n\t\t\tchannel: \"beat\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.beatBuffer,\n\t\t\tstats: extracted.stats.beat,\n\t\t};\n\t\tconst bassBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_bass\",\n\t\t\tchannel: \"bass\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.bassBuffer,\n\t\t\tstats: extracted.stats.bass,\n\t\t};\n\t\tconst energyBinding: GPUTextureBinding = {\n\t\t\tnodeId: \"audio_energy\",\n\t\t\tchannel: \"energy\",\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tbuffer: extracted.energyBuffer,\n\t\t\tstats: extracted.stats.energy,\n\t\t};\n\n\t\tconst primary = frameArraySignal(samples.primary, fps, primaryBinding);\n\t\tconst beat = frameArraySignal(samples.beat, fps, beatBinding);\n\t\tconst bass = frameArraySignal(samples.bass, fps, bassBinding);\n\t\tconst energy = frameArraySignal(samples.energy, fps, energyBinding);\n\n\t\treturn {\n\t\t\tprimary,\n\t\t\tbeat,\n\t\t\tbass,\n\t\t\tenergy,\n\t\t\tdurationSec: extracted.durationSec,\n\t\t\tnumFrames: extracted.numFrames,\n\t\t\tsampleRate,\n\t\t\ttextureView: extracted.textureView,\n\t\t\ttexture: extracted.texture,\n\t\t\tprimaryBuffer: extracted.primaryBuffer,\n\t\t\tbeatBuffer: extracted.beatBuffer,\n\t\t\tbassBuffer: extracted.bassBuffer,\n\t\t\tenergyBuffer: extracted.energyBuffer,\n\t\t\tseekFrame(frame: number) {\n\t\t\t\tprimary.seekFrame?.(frame);\n\t\t\t\tbeat.seekFrame?.(frame);\n\t\t\t\tbass.seekFrame?.(frame);\n\t\t\t\tenergy.seekFrame?.(frame);\n\t\t\t},\n\t\t};\n\t},\n\n\tasync extract(\n\t\tsource: string,\n\t\toptions: AudioSignalOptions = {},\n\t): Promise<ExtractedAudioSignalsBundle> {\n\t\tconst decoded = await decodeAudioSource(source);\n\t\tif (!decoded || decoded.channels.length === 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to decode audio source for feature extraction: ${source}`,\n\t\t\t);\n\t\t}\n\t\treturn AudioSignal.extractFromChannels(\n\t\t\tdecoded.channels,\n\t\t\tdecoded.sampleRate,\n\t\t\toptions,\n\t\t);\n\t},\n};\n"],"mappings":";;;;;AAmCA,MAAa,cAAc;CAC1B,MAAM,oBACL,UACA,YACA,UAA8B,EAAE,EACO;EACvC,MAAM,SAAS,MAAM,cAAc;EACnC,MAAM,MAAM,QAAQ,OAAO;EAC3B,MAAM,cAAc,QAAQ,eAAe;EAE3C,MAAM,YAAY,MAAM,2BAA2B,gBAClD,QACA,UACA,YACA,KACA,SACA,YACA;EAED,MAAM,UAAU,UAAU,kBAAkB;GAC3C,SAAS,IAAI,aAAa,UAAU,UAAU;GAC9C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,MAAM,IAAI,aAAa,UAAU,UAAU;GAC3C,QAAQ,IAAI,aAAa,UAAU,UAAU;GAC7C;EAED,MAAM,iBAAoC;GACzC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,cAAiC;GACtC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EACD,MAAM,gBAAmC;GACxC,QAAQ;GACR,SAAS;GACT,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,QAAQ,UAAU;GAClB,OAAO,UAAU,MAAM;GACvB;EAED,MAAM,UAAU,iBAAiB,QAAQ,SAAS,KAAK,eAAe;EACtE,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,OAAO,iBAAiB,QAAQ,MAAM,KAAK,YAAY;EAC7D,MAAM,SAAS,iBAAiB,QAAQ,QAAQ,KAAK,cAAc;AAEnE,SAAO;GACN;GACA;GACA;GACA;GACA,aAAa,UAAU;GACvB,WAAW,UAAU;GACrB;GACA,aAAa,UAAU;GACvB,SAAS,UAAU;GACnB,eAAe,UAAU;GACzB,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,cAAc,UAAU;GACxB,UAAU,OAAe;AACxB,YAAQ,YAAY,MAAM;AAC1B,SAAK,YAAY,MAAM;AACvB,SAAK,YAAY,MAAM;AACvB,WAAO,YAAY,MAAM;;GAE1B;;CAGF,MAAM,QACL,QACA,UAA8B,EAAE,EACO;EACvC,MAAM,UAAU,MAAM,kBAAkB,OAAO;AAC/C,MAAI,CAAC,WAAW,QAAQ,SAAS,WAAW,EAC3C,OAAM,IAAI,MACT,yDAAyD,SACzD;AAEF,SAAO,YAAY,oBAClB,QAAQ,UACR,QAAQ,YACR,QACA;;CAEF"}
@@ -1,5 +1,5 @@
1
- import { o as AudioSignalComputeConfig, zt as FrameSignal } from "./index-WIPHLy5m.mjs";
2
- import { n as NodeRendererPlugin } from "./index-CZChQhXZ.mjs";
1
+ import { o as AudioSignalComputeConfig, zt as FrameSignal } from "./index-D1zaOwEU.mjs";
2
+ import { n as NodeRendererPlugin } from "./index-J9CIK_nu.mjs";
3
3
 
4
4
  //#region ../../nodes/node-modulate/dist/renderer.d.mts
5
5
  //#region src/renderers/index.d.ts
@@ -34,4 +34,4 @@ declare const AudioSignal: {
34
34
  };
35
35
  //#endregion
36
36
  export { _default as i, AudioSignalOptions as n, ExtractedAudioSignalsBundle as r, AudioSignal as t };
37
- //# sourceMappingURL=audio-a6pY05g2.d.mts.map
37
+ //# sourceMappingURL=audio-BxA0sL9z.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audio-a6pY05g2.d.mts","names":["_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../../nodes/node-modulate/dist/renderer.d.mts","../src/signals/audio.ts"],"sourcesContent":["import * as _framefields_node_sdk_renderer0 from \"@framefields/node-sdk/renderer\";\n\n//#region src/renderers/index.d.ts\ndeclare const _default: Readonly<_framefields_node_sdk_renderer0.NodeRendererPlugin>;\n//#endregion\nexport { _default as default };\n//# sourceMappingURL=renderer.d.mts.map"],"mappings":";;;;;cAGcC,UAAUE,SAASH;AAHiD;;;UCYjE,kBAAA,SAA2B;;EDT9BC,WAAsE,CAAA,EAAA,MAAA;;;UCenE,2BAAA;EANA,OAAA,EAOP,WAPO,CAAmB,MAAA,CAAA;EAMnB,IAAA,EAEV,WAFU,CAAA,MAAA,CAAA;EACP,IAAA,EAEH,WAFG,CAAA,MAAA,CAAA;EACH,MAAA,EAEE,WAFF,CAAA,MAAA,CAAA;EACA,WAAA,EAAA,MAAA;EACE,SAAA,EAAA,MAAA;EAAW,UAAA,EAAA,MAAA;EAaP,WAAA,EAAA,OAuGZ;EArGW,OAAA,EAAA,OAAA;EAED,aAAA,EAAA,OAAA;EACC,UAAA,EAAA,OAAA;EAAR,UAAA,EAAA,OAAA;EAoFO,YAAA,EAAA,OAAA;EACC,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAD,cA1FE,WA0FF,EAAA;gCAxFC,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ"}
1
+ {"version":3,"file":"audio-BxA0sL9z.d.mts","names":["_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../../nodes/node-modulate/dist/renderer.d.mts","../src/signals/audio.ts"],"sourcesContent":["import * as _framefields_node_sdk_renderer0 from \"@framefields/node-sdk/renderer\";\n\n//#region src/renderers/index.d.ts\ndeclare const _default: Readonly<_framefields_node_sdk_renderer0.NodeRendererPlugin>;\n//#endregion\nexport { _default as default };\n//# sourceMappingURL=renderer.d.mts.map"],"mappings":";;;;;cAGcC,UAAUE,SAASH;AAHiD;;;UCYjE,kBAAA,SAA2B;;EDT9BC,WAAsE,CAAA,EAAA,MAAA;;;UCenE,2BAAA;EANA,OAAA,EAOP,WAPO,CAAmB,MAAA,CAAA;EAMnB,IAAA,EAEV,WAFU,CAAA,MAAA,CAAA;EACP,IAAA,EAEH,WAFG,CAAA,MAAA,CAAA;EACH,MAAA,EAEE,WAFF,CAAA,MAAA,CAAA;EACA,WAAA,EAAA,MAAA;EACE,SAAA,EAAA,MAAA;EAAW,UAAA,EAAA,MAAA;EAaP,WAAA,EAAA,OAuGZ;EArGW,OAAA,EAAA,OAAA;EAED,aAAA,EAAA,OAAA;EACC,UAAA,EAAA,OAAA;EAAR,UAAA,EAAA,OAAA;EAoFO,YAAA,EAAA,OAAA;EACC,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAAD,cA1FE,WA0FF,EAAA;gCAxFC,8CAED,qBACP,QAAQ;oCAoFD,qBACP,QAAQ"}
@@ -63,4 +63,4 @@ var init_client = __esmMin((() => {
63
63
 
64
64
  //#endregion
65
65
  export { setCredentialFeature as a, setFeature as i, init_client as n, emitWarningIfUnsupportedVersion as o, setTokenFeature as r, state as s, client_exports as t };
66
- //# sourceMappingURL=client-C74hb7fy.mjs.map
66
+ //# sourceMappingURL=client-CwRhflHE.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-C74hb7fy.mjs","names":[],"sources":["../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setTokenFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js"],"sourcesContent":["export const state = {\n warningEmitted: false,\n};\nexport const emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n","export function setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n","export function setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n","export function setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n","export * from \"./emitWarningIfUnsupportedVersion\";\nexport * from \"./setCredentialFeature\";\nexport * from \"./setFeature\";\nexport * from \"./setTokenFeature\";\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":";;;;;CAAa,QAAQ,EACjB,gBAAgB,OACnB;CACY,mCAAmC,YAAY;AACxD,MAAI,WAAW,CAAC,MAAM,kBAAkB,SAAS,QAAQ,UAAU,GAAG,QAAQ,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI;AAC/F,SAAM,iBAAiB;AACvB,WAAQ,YAAY;4BACA,QAAQ;;;;;wDAKoB;;;;;;;ACZxD,SAAgB,qBAAqB,aAAa,SAAS,OAAO;AAC9D,KAAI,CAAC,YAAY,QACb,aAAY,UAAU,EAAE;AAE5B,aAAY,QAAQ,WAAW;AAC/B,QAAO;;;;;;ACLX,SAAgB,WAAW,SAAS,SAAS,OAAO;AAChD,KAAI,CAAC,QAAQ,kBACT,SAAQ,oBAAoB,EACxB,UAAU,EAAE,EACf;UAEI,CAAC,QAAQ,kBAAkB,SAChC,SAAQ,kBAAkB,WAAW,EAAE;AAE3C,SAAQ,kBAAkB,SAAS,WAAW;;;;;;ACTlD,SAAgB,gBAAgB,OAAO,SAAS,OAAO;AACnD,KAAI,CAAC,MAAM,QACP,OAAM,UAAU,EAAE;AAEtB,OAAM,QAAQ,WAAW;AACzB,QAAO"}
1
+ {"version":3,"file":"client-CwRhflHE.mjs","names":[],"sources":["../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/setTokenFeature.js","../../../node_modules/.pnpm/@aws-sdk+core@3.973.20/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js"],"sourcesContent":["export const state = {\n warningEmitted: false,\n};\nexport const emitWarningIfUnsupportedVersion = (version) => {\n if (version && !state.warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 20) {\n state.warningEmitted = true;\n process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will\nno longer support Node.js ${version} in January 2026.\n\nTo continue receiving updates to AWS services, bug fixes, and security\nupdates please upgrade to a supported Node.js LTS version.\n\nMore information can be found at: https://a.co/c895JFp`);\n }\n};\n","export function setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n","export function setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n","export function setTokenFeature(token, feature, value) {\n if (!token.$source) {\n token.$source = {};\n }\n token.$source[feature] = value;\n return token;\n}\n","export * from \"./emitWarningIfUnsupportedVersion\";\nexport * from \"./setCredentialFeature\";\nexport * from \"./setFeature\";\nexport * from \"./setTokenFeature\";\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":";;;;;CAAa,QAAQ,EACjB,gBAAgB,OACnB;CACY,mCAAmC,YAAY;AACxD,MAAI,WAAW,CAAC,MAAM,kBAAkB,SAAS,QAAQ,UAAU,GAAG,QAAQ,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI;AAC/F,SAAM,iBAAiB;AACvB,WAAQ,YAAY;4BACA,QAAQ;;;;;wDAKoB;;;;;;;ACZxD,SAAgB,qBAAqB,aAAa,SAAS,OAAO;AAC9D,KAAI,CAAC,YAAY,QACb,aAAY,UAAU,EAAE;AAE5B,aAAY,QAAQ,WAAW;AAC/B,QAAO;;;;;;ACLX,SAAgB,WAAW,SAAS,SAAS,OAAO;AAChD,KAAI,CAAC,QAAQ,kBACT,SAAQ,oBAAoB,EACxB,UAAU,EAAE,EACf;UAEI,CAAC,QAAQ,kBAAkB,SAChC,SAAQ,kBAAkB,WAAW,EAAE;AAE3C,SAAQ,kBAAkB,SAAS,WAAW;;;;;;ACTlD,SAAgB,gBAAgB,OAAO,SAAS,OAAO;AACnD,KAAI,CAAC,MAAM,QACP,OAAM,UAAU,EAAE;AAEtB,OAAM,QAAQ,WAAW;AACzB,QAAO"}
@@ -4555,9 +4555,7 @@ var LutStore = class {
4555
4555
  if (onAbort && signal) signal.removeEventListener("abort", onAbort);
4556
4556
  }
4557
4557
  }
4558
- const response = await fetch(src, { signal });
4559
- if (!response.ok) throw new Error(`Failed to load LUT file: ${response.statusText}`);
4560
- const lines = (await response.text()).split(/\r?\n/);
4558
+ const lines = (await readLutText(src, signal)).split(/\r?\n/);
4561
4559
  let size = 33;
4562
4560
  let type = "3D";
4563
4561
  const points = [];
@@ -4632,6 +4630,26 @@ const lutStore = (() => {
4632
4630
  if (!globalThis[globalKey]) globalThis[globalKey] = new LutStore();
4633
4631
  return globalThis[globalKey];
4634
4632
  })();
4633
+ /**
4634
+ * A `.cube` file's text. Under Node a local path or `file://` URL is read from
4635
+ * disk (fetch cannot open either), the same sources video layers accept;
4636
+ * everything else is fetched.
4637
+ */
4638
+ async function readLutText(src, signal) {
4639
+ const isNode = typeof process !== "undefined" && Boolean(process.versions?.node);
4640
+ const isLocal = src.startsWith("/") || src.startsWith("file://");
4641
+ if (isNode && isLocal) {
4642
+ const { readFile } = await import("node:fs/promises");
4643
+ const { fileURLToPath } = await import("node:url");
4644
+ return readFile(src.startsWith("file://") ? fileURLToPath(src) : src, {
4645
+ encoding: "utf8",
4646
+ signal
4647
+ });
4648
+ }
4649
+ const response = await fetch(src, { signal });
4650
+ if (!response.ok) throw new Error(`Failed to load LUT file: ${response.statusText}`);
4651
+ return response.text();
4652
+ }
4635
4653
  const uniformData$1 = new Float32Array(8);
4636
4654
  const TEXTURE_WIDTH$1 = 4096;
4637
4655
  const SLUGGISH_HEADER_DATA$1 = "SLUGGISH";
@@ -5733,13 +5751,26 @@ var SlugFontCache = class SlugFontCache$1 {
5733
5751
  if (isNode && !isHttp) {
5734
5752
  const fs$1 = await import(
5735
5753
  /* webpackIgnore: true */
5736
- "fs/promises"
5754
+ "node:fs/promises"
5737
5755
  );
5738
5756
  const path$1 = await import(
5739
5757
  /* webpackIgnore: true */
5740
- "path"
5758
+ "node:path"
5741
5759
  );
5760
+ const fontDirs = [];
5761
+ if (process.env.FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FONTS_DIR));
5762
+ if (process.env.FRAMEFIELDS_FONTS_DIR) fontDirs.push(path$1.resolve(process.env.FRAMEFIELDS_FONTS_DIR));
5763
+ let currentDir = process.cwd();
5764
+ for (let i = 0; i < 5; i++) {
5765
+ fontDirs.push(path$1.resolve(currentDir, "assets/fonts"));
5766
+ const parent = path$1.dirname(currentDir);
5767
+ if (parent === currentDir) break;
5768
+ currentDir = parent;
5769
+ }
5742
5770
  const candidates = [];
5771
+ const addCandidate = (candidatePath) => {
5772
+ if (!candidates.includes(candidatePath)) candidates.push(candidatePath);
5773
+ };
5743
5774
  if (fontUrl && !fontUrl.startsWith("//api/")) {
5744
5775
  let fontPath = fontUrl;
5745
5776
  if (fontUrl.startsWith("file://")) try {
@@ -5747,8 +5778,9 @@ var SlugFontCache = class SlugFontCache$1 {
5747
5778
  } catch {
5748
5779
  fontPath = fontUrl.replace(/^file:\/\//, "");
5749
5780
  }
5750
- candidates.push(fontPath);
5751
- candidates.push(path$1.resolve(process.cwd(), fontPath));
5781
+ addCandidate(fontPath);
5782
+ addCandidate(path$1.resolve(process.cwd(), fontPath));
5783
+ for (const dir of fontDirs) addCandidate(path$1.resolve(dir, path$1.basename(fontPath)));
5752
5784
  }
5753
5785
  const cleanFamily = fontFamily.replace(/['"]/g, "").trim();
5754
5786
  const variations = [
@@ -5756,15 +5788,14 @@ var SlugFontCache = class SlugFontCache$1 {
5756
5788
  cleanFamily.replace(/ /g, ""),
5757
5789
  cleanFamily.replace(/ /g, "_")
5758
5790
  ];
5759
- for (const v of variations) {
5760
- candidates.push(path$1.resolve(process.cwd(), "assets/fonts", v + ".ttf"));
5761
- candidates.push(path$1.resolve(process.cwd(), "assets/fonts", v + ".otf"));
5762
- candidates.push(`/Users/okanaslankan/framefields/assets/fonts/${v}.ttf`);
5763
- candidates.push(`/Users/okanaslankan/Gatewai/apps/gatewai-artifex/assets/fonts/${v}.ttf`);
5764
- candidates.push(`/Users/okanaslankan/Gatewai/apps/gatewai-backend/src/assets/fonts/${v}/font_file.ttf`);
5791
+ for (const dir of fontDirs) for (const v of variations) {
5792
+ addCandidate(path$1.resolve(dir, `${v}.ttf`));
5793
+ addCandidate(path$1.resolve(dir, `${v}.otf`));
5794
+ }
5795
+ for (const dir of fontDirs) {
5796
+ addCandidate(path$1.resolve(dir, "Inter.ttf"));
5797
+ addCandidate(path$1.resolve(dir, "Inter.otf"));
5765
5798
  }
5766
- candidates.push("/Users/okanaslankan/framefields/assets/fonts/Inter.ttf");
5767
- candidates.push("/Users/okanaslankan/Gatewai/apps/gatewai-artifex/assets/fonts/Inter.ttf");
5768
5799
  let nodeBuffer = null;
5769
5800
  for (const c of candidates) try {
5770
5801
  nodeBuffer = await fs$1.readFile(c);
@@ -14668,6 +14699,36 @@ var MediaDecoderCache = class {
14668
14699
  }
14669
14700
  };
14670
14701
  const mediaDecoderCache = new MediaDecoderCache();
14702
+ const sizes = /* @__PURE__ */ new Map();
14703
+ /**
14704
+ * Display size of a video source, read from its container (no decode) and
14705
+ * memoized per URL. For nodes that need the source's real aspect when the
14706
+ * document never stated it (a layer built from a bare path); null when the
14707
+ * source has no video track or cannot be opened.
14708
+ */
14709
+ function probeVideoSize(url) {
14710
+ let size = sizes.get(url);
14711
+ if (!size) {
14712
+ size = (async () => {
14713
+ try {
14714
+ const input = await inputStore.acquire(url);
14715
+ try {
14716
+ const track = await input.getPrimaryVideoTrack();
14717
+ return track ? {
14718
+ width: track.displayWidth,
14719
+ height: track.displayHeight
14720
+ } : null;
14721
+ } finally {
14722
+ inputStore.release(url);
14723
+ }
14724
+ } catch {
14725
+ return null;
14726
+ }
14727
+ })();
14728
+ sizes.set(url, size);
14729
+ }
14730
+ return size;
14731
+ }
14671
14732
  const STATIC_SIGNAL_PREVIEW_SHADER = `
14672
14733
  struct SignalUniforms {
14673
14734
  amplitude : f32,
@@ -27580,5 +27641,5 @@ var ScreenSpaceRelightPipeline = class {
27580
27641
  };
27581
27642
 
27582
27643
  //#endregion
27583
- export { registerHeadlessFont as $, drawLottieNode as A, inputStore as B, WebGPUAudioProcessor as C, drawCaptionNode as D, colorMatrixWgsl as E, ensureDevice as F, lutStore as G, loadFBX as H, generateExtrudedTextGeometry as I, parseColor as J, measureMaxCaptionHeight as K, getHeadlessFontPath as L, drawSignalNode as M, drawSvgNode as N, drawGifNode as O, drawVideoNode as P, poseNodes as Q, getRenderer2D as R, Vector3Math as S, clearAllVideoCache as T, loadModel3D as U, jointMatrices as V, loadOBJ as W, parseMTL as X, parseFBX as Y, parseOBJ as Z, ShadowPipeline as _, Camera3D as a, getEnv as at, SlugGeometry as b, Light3D as c, NodeSurfaceProvider as d, shaderStore as et, Path3D as f, ScreenSpaceRelightPipeline as g, SSAOPipeline as h, AudioSignalComputePipeline as i, GetFontAssetUrl as it, drawParagraphNode as j, drawImageNode as k, Matrix4Math as l, Renderer3D as m, AudioLatentTrackCache as n, srtLoader as nt, EffectPipeline as o, resolveMediaSourceUrl as ot, Renderer2D as p, mediaDecoderCache as q, AudioMeshDeformPipeline as r, textureCache as rt, GlassPipeline as s, AudioLatentEngine as t, signalRegistry as tt, MotionBlurPipeline as u, SignalRegistry as v, buildWGSLSignalFn as w, SlugPipeline as x, SlugFontCache as y, initHeadlessWebGPU as z };
27584
- //# sourceMappingURL=dist-BQFap0wr.mjs.map
27644
+ export { probeVideoSize as $, drawLottieNode as A, inputStore as B, WebGPUAudioProcessor as C, drawCaptionNode as D, colorMatrixWgsl as E, ensureDevice as F, lutStore as G, loadFBX as H, generateExtrudedTextGeometry as I, parseColor as J, measureMaxCaptionHeight as K, getHeadlessFontPath as L, drawSignalNode as M, drawSvgNode as N, drawGifNode as O, drawVideoNode as P, poseNodes as Q, getRenderer2D as R, Vector3Math as S, clearAllVideoCache as T, loadModel3D as U, jointMatrices as V, loadOBJ as W, parseMTL as X, parseFBX as Y, parseOBJ as Z, ShadowPipeline as _, Camera3D as a, GetFontAssetUrl as at, SlugGeometry as b, Light3D as c, NodeSurfaceProvider as d, registerHeadlessFont as et, Path3D as f, ScreenSpaceRelightPipeline as g, SSAOPipeline as h, AudioSignalComputePipeline as i, textureCache as it, drawParagraphNode as j, drawImageNode as k, Matrix4Math as l, Renderer3D as m, AudioLatentTrackCache as n, signalRegistry as nt, EffectPipeline as o, getEnv as ot, Renderer2D as p, mediaDecoderCache as q, AudioMeshDeformPipeline as r, srtLoader as rt, GlassPipeline as s, resolveMediaSourceUrl as st, AudioLatentEngine as t, shaderStore as tt, MotionBlurPipeline as u, SignalRegistry as v, buildWGSLSignalFn as w, SlugPipeline as x, SlugFontCache as y, initHeadlessWebGPU as z };
27645
+ //# sourceMappingURL=dist-B9PkqWnN.mjs.map