framefields 2.11.0 → 2.13.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 (540) hide show
  1. package/NOTICE.md +4 -0
  2. package/dist/audio/index.d.mts +6 -5
  3. package/dist/audio/index.mjs +13 -13
  4. package/dist/{audio-CYZkDwae.d.mts → audio-CHV33Od9.d.mts} +3 -4
  5. package/dist/audio-CHV33Od9.d.mts.map +1 -0
  6. package/dist/{audio-BuCVk1IQ.mjs → audio-DHzLQ_RG.mjs} +4 -4
  7. package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHzLQ_RG.mjs.map} +1 -1
  8. package/dist/{audio-KHBadECb.mjs → audio-DS9Jg2ls.mjs} +1 -1
  9. package/dist/{audio-KHBadECb.mjs.map → audio-DS9Jg2ls.mjs.map} +1 -1
  10. package/dist/{check-result-Culfu7Nx.mjs → check-result-DZWx73V8.mjs} +1 -1
  11. package/dist/{check-result-Culfu7Nx.mjs.map → check-result-DZWx73V8.mjs.map} +1 -1
  12. package/dist/cli/check-worker.mjs +51 -51
  13. package/dist/cli/check-worker.mjs.map +1 -1
  14. package/dist/cli/local-worker.d.mts +28 -0
  15. package/dist/cli/local-worker.d.mts.map +1 -0
  16. package/dist/cli/local-worker.mjs +83 -0
  17. package/dist/cli/local-worker.mjs.map +1 -0
  18. package/dist/cli.mjs +390 -124
  19. package/dist/cli.mjs.map +1 -1
  20. package/dist/cloud/index.d.mts +16 -3
  21. package/dist/cloud/index.d.mts.map +1 -1
  22. package/dist/cloud/index.mjs +2 -2
  23. package/dist/cloud-Cj1TIme8.mjs +685 -0
  24. package/dist/cloud-Cj1TIme8.mjs.map +1 -0
  25. package/dist/components/index.d.mts +15 -14
  26. package/dist/components/index.mjs +47 -47
  27. package/dist/{dist-CySGkG54.mjs → dist-BSKAbyea.mjs} +2 -2
  28. package/dist/dist-BSKAbyea.mjs.map +1 -0
  29. package/dist/{dist-CNGv-JTX.mjs → dist-B_rSWeOz.mjs} +1 -1
  30. package/dist/{dist-Bf2_efYP.mjs → dist-C8XSqfTx.mjs} +1 -1
  31. package/dist/{dist-Bf2_efYP.mjs.map → dist-C8XSqfTx.mjs.map} +1 -1
  32. package/dist/{dist-EQX3TUUl.mjs → dist-CUNvNDS3.mjs} +129 -82
  33. package/dist/dist-CUNvNDS3.mjs.map +1 -0
  34. package/dist/dist-CiTgmfUw.mjs +502 -0
  35. package/dist/dist-CiTgmfUw.mjs.map +1 -0
  36. package/dist/{dist-CWLLnigL.mjs → dist-D3BeAZ7X.mjs} +315 -84
  37. package/dist/dist-D3BeAZ7X.mjs.map +1 -0
  38. package/dist/{dist-BIE8fvlv.mjs → dist-DgZpN6IK.mjs} +1 -1
  39. package/dist/{dist-BIE8fvlv.mjs.map → dist-DgZpN6IK.mjs.map} +1 -1
  40. package/dist/{dist-Dg9LMWoX.mjs → dist-Kbf-JTry.mjs} +2 -2
  41. package/dist/{dist-Dg9LMWoX.mjs.map → dist-Kbf-JTry.mjs.map} +1 -1
  42. package/dist/effects/index.d.mts +6 -6
  43. package/dist/effects/index.mjs +36 -36
  44. package/dist/{effects-DKLbLXF7.mjs → effects-BiDgCK1L.mjs} +3 -3
  45. package/dist/{effects-DKLbLXF7.mjs.map → effects-BiDgCK1L.mjs.map} +1 -1
  46. package/dist/fonts/index.d.mts +1 -1
  47. package/dist/fonts/index.mjs +3 -3
  48. package/dist/{fonts-gPbGbShD.mjs → fonts-DeDPWdvJ.mjs} +2 -2
  49. package/dist/{fonts-gPbGbShD.mjs.map → fonts-DeDPWdvJ.mjs.map} +1 -1
  50. package/dist/{gpu-CpkJJLQP.mjs → gpu-CWjgql4C.mjs} +11 -3
  51. package/dist/gpu-CWjgql4C.mjs.map +1 -0
  52. package/dist/index-BFTtXosj.d.mts +63 -0
  53. package/dist/index-BFTtXosj.d.mts.map +1 -0
  54. package/dist/{index-BW0Q1ygn.d.mts → index-C5sgRLlG.d.mts} +1 -1
  55. package/dist/{index-BW0Q1ygn.d.mts.map → index-C5sgRLlG.d.mts.map} +1 -1
  56. package/dist/{index-CdCrae-I.d.mts → index-CnZhBlob.d.mts} +2 -2
  57. package/dist/index-CnZhBlob.d.mts.map +1 -0
  58. package/dist/{index-D2i9J9Zq.d.mts → index-D68eGFNE.d.mts} +3 -30
  59. package/dist/index-D68eGFNE.d.mts.map +1 -0
  60. package/dist/{index-CEU_Zsb9.d.mts → index-DBh3WphX.d.mts} +25 -23
  61. package/dist/index-DBh3WphX.d.mts.map +1 -0
  62. package/dist/{index-gOVtTm-P.d.mts → index-DQ1U3HC3.d.mts} +14 -6
  63. package/dist/index-DQ1U3HC3.d.mts.map +1 -0
  64. package/dist/{index-jSDEM-uE.d.mts → index-Dibc_xpC.d.mts} +6 -6
  65. package/dist/{index-jSDEM-uE.d.mts.map → index-Dibc_xpC.d.mts.map} +1 -1
  66. package/dist/{index-Cro-818i.d.mts → index-E2IXX0Cz.d.mts} +88 -14
  67. package/dist/index-E2IXX0Cz.d.mts.map +1 -0
  68. package/dist/{index-BuiZzc6i.d.mts → index-X2u96TEo.d.mts} +162 -5
  69. package/dist/index-X2u96TEo.d.mts.map +1 -0
  70. package/dist/{index-Bly-7YM1.d.mts → index-YB9j9KUx.d.mts} +3 -3
  71. package/dist/{index-Bly-7YM1.d.mts.map → index-YB9j9KUx.d.mts.map} +1 -1
  72. package/dist/{index-COYNQ_mf.d.mts → index-a6JrbAK0.d.mts} +1 -1
  73. package/dist/{index-COYNQ_mf.d.mts.map → index-a6JrbAK0.d.mts.map} +1 -1
  74. package/dist/{index-C8YwZ6k1.d.mts → index-rtCXNxGO.d.mts} +2 -2
  75. package/dist/{index-C8YwZ6k1.d.mts.map → index-rtCXNxGO.d.mts.map} +1 -1
  76. package/dist/index.d.mts +16 -15
  77. package/dist/index.mjs +58 -58
  78. package/dist/preview/index.d.mts +5 -4
  79. package/dist/preview/index.mjs +12 -12
  80. package/dist/{preview-BToKUTtZ.mjs → preview-PDz7o2xg.mjs} +323 -35
  81. package/dist/preview-PDz7o2xg.mjs.map +1 -0
  82. package/dist/preview-engine/audio.mjs +1 -1
  83. package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
  84. package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
  87. package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
  89. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  90. package/dist/preview-engine/chunk-4P3MMJWD.mjs +1 -0
  91. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  92. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  93. package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
  94. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  95. package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-77WWW75O.mjs} +1 -1
  96. package/dist/preview-engine/chunk-7M5LE6EM.mjs +483 -0
  97. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  98. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  99. package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
  101. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  102. package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-CYM75INB.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
  105. package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
  107. package/dist/preview-engine/chunk-FRJPXWAG.mjs +1 -0
  108. package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
  109. package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
  110. package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-IEEV5RB3.mjs} +1 -1
  112. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  113. package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
  114. package/dist/preview-engine/chunk-LZNHGH56.mjs +5 -0
  115. package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-N2VISDTG.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  117. package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
  118. package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
  119. package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-NVXFEDJS.mjs} +1 -1
  120. package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
  121. package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-PD2HKW2S.mjs} +1 -1
  122. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  123. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  124. package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
  125. package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
  126. package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-R4H52Q7S.mjs} +1 -1
  127. package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
  128. package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
  129. package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-RYSV44B4.mjs} +1 -1
  130. package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
  131. package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-SMHEMYCV.mjs} +1 -1
  132. package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-SV3ZNZQU.mjs} +1 -1
  133. package/dist/preview-engine/{chunk-32WC4FRR.mjs → chunk-UE7Y65C3.mjs} +3 -3
  134. package/dist/preview-engine/chunk-UFPA36D2.mjs +2227 -0
  135. package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
  136. package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-VMXJZ4KQ.mjs} +1 -1
  137. package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
  138. package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
  139. package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-XYCR3STG.mjs} +84 -25
  140. package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
  141. package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
  142. package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
  143. package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
  144. package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
  145. package/dist/preview-engine/components.mjs +1 -1
  146. package/dist/preview-engine/effects.mjs +1 -1
  147. package/dist/preview-engine/fonts.mjs +1 -1
  148. package/dist/preview-engine/framefields.mjs +1 -1
  149. package/dist/preview-engine/player.mjs +5 -5
  150. package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
  151. package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
  152. package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
  153. package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
  154. package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
  155. package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
  156. package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
  157. package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
  158. package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
  159. package/dist/preview-engine/renderers-AFTUFMQQ.mjs +1 -0
  160. package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
  161. package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
  162. package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
  163. package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
  164. package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
  165. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  166. package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
  167. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  168. package/dist/preview-engine/renderers-EPSF5CSQ.mjs +1 -0
  169. package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
  170. package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
  171. package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
  172. package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
  173. package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
  174. package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
  175. package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
  176. package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
  177. package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
  178. package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
  179. package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
  180. package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
  181. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  182. package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
  183. package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
  184. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  185. package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
  186. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  187. package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
  188. package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
  189. package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
  190. package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
  191. package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
  192. package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
  193. package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
  194. package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
  195. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  196. package/dist/preview-engine/renderers-OJWWIVNW.mjs +1 -0
  197. package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
  198. package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
  199. package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
  200. package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
  201. package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
  202. package/dist/preview-engine/renderers-RHMRWX46.mjs +1 -0
  203. package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
  204. package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
  205. package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
  206. package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
  207. package/dist/preview-engine/renderers-TTXTV4PC.mjs +228 -0
  208. package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
  209. package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
  210. package/dist/preview-engine/renderers-VEHYARKY.mjs +1 -0
  211. package/dist/preview-engine/renderers-VRXAG3FR.mjs +1 -0
  212. package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
  213. package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
  214. package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
  215. package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
  216. package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
  217. package/dist/preview-engine/renderers-ZHSOWEMQ.mjs +1 -0
  218. package/dist/preview-engine/renderers-ZMDRNYSS.mjs +1 -0
  219. package/dist/preview-engine/signals.mjs +1 -1
  220. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-YXNX4MLK.mjs} +1 -1
  221. package/dist/{program-Bc860ko5.mjs → program-Bn6ko_I4.mjs} +44 -17
  222. package/dist/program-Bn6ko_I4.mjs.map +1 -0
  223. package/dist/renderer/index.d.mts +4 -3
  224. package/dist/renderer/index.mjs +3 -3
  225. package/dist/{renderer-B3Dme2es.mjs → renderer--Q0pM9Vh.mjs} +5 -5
  226. package/dist/{renderer-B3Dme2es.mjs.map → renderer--Q0pM9Vh.mjs.map} +1 -1
  227. package/dist/renderer-1aSF5BmY.mjs +5 -0
  228. package/dist/{renderer-CAWnCsQc.mjs → renderer-45ifiDkn.mjs} +5 -5
  229. package/dist/{renderer-CAWnCsQc.mjs.map → renderer-45ifiDkn.mjs.map} +1 -1
  230. package/dist/{renderer-Cz-n883J.mjs → renderer-549d94qG.mjs} +5 -5
  231. package/dist/{renderer-Cz-n883J.mjs.map → renderer-549d94qG.mjs.map} +1 -1
  232. package/dist/{renderer-BhsrlGKp.mjs → renderer-B-LUGB9h.mjs} +74 -21
  233. package/dist/renderer-B-LUGB9h.mjs.map +1 -0
  234. package/dist/renderer-B2e4Gr9u.mjs +5 -0
  235. package/dist/{renderer-B1LD29TV.mjs → renderer-B5b-ehRb.mjs} +3 -3
  236. package/dist/{renderer-B1LD29TV.mjs.map → renderer-B5b-ehRb.mjs.map} +1 -1
  237. package/dist/renderer-B6fz4j50.mjs +5 -0
  238. package/dist/{renderer-_9gbYS-3.mjs → renderer-BCTUqJG7.mjs} +5 -5
  239. package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BCTUqJG7.mjs.map} +1 -1
  240. package/dist/renderer-BEftIYw-.mjs +5 -0
  241. package/dist/{renderer-C9BSXyrq.mjs → renderer-BHPgkoEL.mjs} +4 -4
  242. package/dist/{renderer-C9BSXyrq.mjs.map → renderer-BHPgkoEL.mjs.map} +1 -1
  243. package/dist/renderer-BHTnO-7e.mjs +5 -0
  244. package/dist/{renderer-fs8f1QeE.mjs → renderer-BIieU9pY.mjs} +5 -5
  245. package/dist/{renderer-fs8f1QeE.mjs.map → renderer-BIieU9pY.mjs.map} +1 -1
  246. package/dist/{renderer-DwK9jsER.mjs → renderer-BKi6jDi_.mjs} +4 -4
  247. package/dist/{renderer-DwK9jsER.mjs.map → renderer-BKi6jDi_.mjs.map} +1 -1
  248. package/dist/renderer-BMlnQqTO.mjs +5 -0
  249. package/dist/{renderer-BNJ6Jk7-.mjs → renderer-BMpmmYOq.mjs} +4 -4
  250. package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-BMpmmYOq.mjs.map} +1 -1
  251. package/dist/{renderer-DkqZmfm8.mjs → renderer-BO_wuUKA.mjs} +5 -5
  252. package/dist/{renderer-DkqZmfm8.mjs.map → renderer-BO_wuUKA.mjs.map} +1 -1
  253. package/dist/renderer-BOzcFezY.mjs +5 -0
  254. package/dist/{renderer-Bxjb0HYU.mjs → renderer-BPOh9x5X.mjs} +4 -4
  255. package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-BPOh9x5X.mjs.map} +1 -1
  256. package/dist/{renderer-Ros7XQg2.mjs → renderer-BPiWsrC2.mjs} +3 -3
  257. package/dist/{renderer-Ros7XQg2.mjs.map → renderer-BPiWsrC2.mjs.map} +1 -1
  258. package/dist/{renderer-lHNTgiOM.mjs → renderer-BUj7jE6t.mjs} +3 -3
  259. package/dist/{renderer-lHNTgiOM.mjs.map → renderer-BUj7jE6t.mjs.map} +1 -1
  260. package/dist/renderer-BVbjJIKJ.mjs +5 -0
  261. package/dist/renderer-BXsHKf4k.mjs +5 -0
  262. package/dist/{renderer-D0aAZHC7.mjs → renderer-BZgJj8Cl.mjs} +4 -4
  263. package/dist/{renderer-D0aAZHC7.mjs.map → renderer-BZgJj8Cl.mjs.map} +1 -1
  264. package/dist/{renderer-V4dhrf_h.mjs → renderer-BgjPbgbn.mjs} +6 -6
  265. package/dist/{renderer-V4dhrf_h.mjs.map → renderer-BgjPbgbn.mjs.map} +1 -1
  266. package/dist/{renderer-BaIJIfJ6.mjs → renderer-BjgFpwVK.mjs} +5 -5
  267. package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-BjgFpwVK.mjs.map} +1 -1
  268. package/dist/renderer-Bks49NVl.mjs +5 -0
  269. package/dist/{renderer-CU8v-LxD.mjs → renderer-BlZgyBSo.mjs} +5 -5
  270. package/dist/{renderer-CU8v-LxD.mjs.map → renderer-BlZgyBSo.mjs.map} +1 -1
  271. package/dist/{renderer-B6Oeahe_.mjs → renderer-BqUAyzCZ.mjs} +5 -5
  272. package/dist/{renderer-B6Oeahe_.mjs.map → renderer-BqUAyzCZ.mjs.map} +1 -1
  273. package/dist/{renderer-h62QaJYz.mjs → renderer-Br8km655.mjs} +4 -4
  274. package/dist/{renderer-h62QaJYz.mjs.map → renderer-Br8km655.mjs.map} +1 -1
  275. package/dist/{renderer-sfqZK6L5.mjs → renderer-BsMZ5Iaq.mjs} +4 -4
  276. package/dist/{renderer-sfqZK6L5.mjs.map → renderer-BsMZ5Iaq.mjs.map} +1 -1
  277. package/dist/{renderer-g_1t2je9.mjs → renderer-BtgqTg2K.mjs} +3 -3
  278. package/dist/{renderer-DcvjSolU.mjs → renderer-BuvKGwk3.mjs} +11 -2
  279. package/dist/{renderer-DcvjSolU.mjs.map → renderer-BuvKGwk3.mjs.map} +1 -1
  280. package/dist/{renderer-BOrMBwQS.mjs → renderer-C-3qhk5x.mjs} +2 -2
  281. package/dist/{renderer-BOrMBwQS.mjs.map → renderer-C-3qhk5x.mjs.map} +1 -1
  282. package/dist/{renderer-CLAvn9c6.mjs → renderer-C-GTxnfv.mjs} +4 -4
  283. package/dist/{renderer-CLAvn9c6.mjs.map → renderer-C-GTxnfv.mjs.map} +1 -1
  284. package/dist/renderer-C-t7qFKr.mjs +5 -0
  285. package/dist/{renderer-BDZC3o3N.mjs → renderer-C1ctHdXl.mjs} +4 -4
  286. package/dist/{renderer-BDZC3o3N.mjs.map → renderer-C1ctHdXl.mjs.map} +1 -1
  287. package/dist/renderer-C24n-6CX.mjs +6 -0
  288. package/dist/{renderer-pNmI-A9o.mjs → renderer-C7m7Yxgc.mjs} +5 -5
  289. package/dist/{renderer-pNmI-A9o.mjs.map → renderer-C7m7Yxgc.mjs.map} +1 -1
  290. package/dist/{renderer-Bf4-N7k7.mjs → renderer-C9dqx3U7.mjs} +5 -5
  291. package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-C9dqx3U7.mjs.map} +1 -1
  292. package/dist/renderer-CCReX-7M.mjs +5 -0
  293. package/dist/{renderer-JHByuUNb.mjs → renderer-CE4535aW.mjs} +3 -3
  294. package/dist/{renderer-JHByuUNb.mjs.map → renderer-CE4535aW.mjs.map} +1 -1
  295. package/dist/renderer-CIxFQrAm.mjs +5 -0
  296. package/dist/{renderer-ByjaseAo.mjs → renderer-CL-vyXgX.mjs} +5 -5
  297. package/dist/{renderer-ByjaseAo.mjs.map → renderer-CL-vyXgX.mjs.map} +1 -1
  298. package/dist/renderer-CLHBMIqJ.mjs +5 -0
  299. package/dist/renderer-CMJKi-Ye.mjs +5 -0
  300. package/dist/{renderer-B-CMRUag.mjs → renderer-CMnlgAGs.mjs} +4 -4
  301. package/dist/{renderer-B-CMRUag.mjs.map → renderer-CMnlgAGs.mjs.map} +1 -1
  302. package/dist/{renderer-BNHcwxw9.mjs → renderer-CQFMyC_c.mjs} +4 -4
  303. package/dist/{renderer-BNHcwxw9.mjs.map → renderer-CQFMyC_c.mjs.map} +1 -1
  304. package/dist/{renderer-DgPn_SOC.mjs → renderer-CYwVNbUh.mjs} +4 -4
  305. package/dist/{renderer-DgPn_SOC.mjs.map → renderer-CYwVNbUh.mjs.map} +1 -1
  306. package/dist/{renderer-DLPhfwbR.mjs → renderer-CZ5mwBW1.mjs} +3 -3
  307. package/dist/{renderer-DLPhfwbR.mjs.map → renderer-CZ5mwBW1.mjs.map} +1 -1
  308. package/dist/{renderer-4ZUv3X1I.mjs → renderer-C_1eqfI0.mjs} +5 -5
  309. package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-C_1eqfI0.mjs.map} +1 -1
  310. package/dist/renderer-C_H3mHZa.mjs +5 -0
  311. package/dist/{renderer-B1esRxGy.mjs → renderer-CciiDHuU.mjs} +4 -4
  312. package/dist/{renderer-B1esRxGy.mjs.map → renderer-CciiDHuU.mjs.map} +1 -1
  313. package/dist/renderer-CfkTdR5B.mjs +5 -0
  314. package/dist/{renderer-ynFRJh7G.mjs → renderer-CgK7Q1G8.mjs} +3 -3
  315. package/dist/{renderer-CR0mDPYY.mjs → renderer-CnL8Cmmr.mjs} +3 -3
  316. package/dist/renderer-CnhkXJ0R.mjs +5 -0
  317. package/dist/{renderer-fwKnV9zs.mjs → renderer-Cp_HOmp7.mjs} +5 -5
  318. package/dist/{renderer-fwKnV9zs.mjs.map → renderer-Cp_HOmp7.mjs.map} +1 -1
  319. package/dist/renderer-CqpyVsq_.mjs +5 -0
  320. package/dist/renderer-CtWgIpTE.mjs +5 -0
  321. package/dist/{renderer-riIFosX6.mjs → renderer-Cu3iKMSJ.mjs} +5 -5
  322. package/dist/{renderer-riIFosX6.mjs.map → renderer-Cu3iKMSJ.mjs.map} +1 -1
  323. package/dist/{renderer-D4f8f66C.mjs → renderer-CuPAQjDK.mjs} +4 -4
  324. package/dist/{renderer-D4f8f66C.mjs.map → renderer-CuPAQjDK.mjs.map} +1 -1
  325. package/dist/{renderer-CxGx1Lhi.mjs → renderer-CwlY8Tb-.mjs} +3 -3
  326. package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-CwlY8Tb-.mjs.map} +1 -1
  327. package/dist/{renderer-o68mVeyk.mjs → renderer-CxSFvKd1.mjs} +4 -4
  328. package/dist/{renderer-o68mVeyk.mjs.map → renderer-CxSFvKd1.mjs.map} +1 -1
  329. package/dist/{renderer-CrR8Mpxq.mjs → renderer-CyUiXLRa.mjs} +5 -5
  330. package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-CyUiXLRa.mjs.map} +1 -1
  331. package/dist/renderer-CyuKr5ca.mjs +5 -0
  332. package/dist/renderer-CzgcZXKH.mjs +3 -0
  333. package/dist/{renderer-Bx14Wnxl.mjs → renderer-D-GWBoVT.mjs} +58 -4
  334. package/dist/renderer-D-GWBoVT.mjs.map +1 -0
  335. package/dist/{renderer-BwrfKKqw.mjs → renderer-D-fzEZfX.mjs} +4 -4
  336. package/dist/{renderer-BwrfKKqw.mjs.map → renderer-D-fzEZfX.mjs.map} +1 -1
  337. package/dist/renderer-D5yp74NL.mjs +3 -0
  338. package/dist/{renderer-DAn9xiQT.mjs → renderer-D8gN7aqk.mjs} +4 -4
  339. package/dist/{renderer-DAn9xiQT.mjs.map → renderer-D8gN7aqk.mjs.map} +1 -1
  340. package/dist/renderer-D9ON_1Hf.mjs +5 -0
  341. package/dist/renderer-DAnTgh4o.mjs +5 -0
  342. package/dist/{renderer-Dpl6poqD.mjs → renderer-DGOMfyh8.mjs} +2 -2
  343. package/dist/{renderer-Dpl6poqD.mjs.map → renderer-DGOMfyh8.mjs.map} +1 -1
  344. package/dist/{renderer-Rw87u1Cr.mjs → renderer-DGb_wgTW.mjs} +6 -6
  345. package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-DGb_wgTW.mjs.map} +1 -1
  346. package/dist/{renderer-Co6UFbZB.mjs → renderer-DJPZs_zV.mjs} +5 -5
  347. package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DJPZs_zV.mjs.map} +1 -1
  348. package/dist/renderer-DKJOon6y.d.mts +1 -0
  349. package/dist/{renderer-DOkbn1ot.mjs → renderer-DOZPZTxe.mjs} +5 -5
  350. package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DOZPZTxe.mjs.map} +1 -1
  351. package/dist/{renderer-DaXQgGg3.mjs → renderer-DRal7Goa.mjs} +5 -5
  352. package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DRal7Goa.mjs.map} +1 -1
  353. package/dist/renderer-DWgpivA3.mjs +5 -0
  354. package/dist/{renderer-Bo7shNdU.mjs → renderer-DXFJv_e6.mjs} +4 -4
  355. package/dist/{renderer-Bo7shNdU.mjs.map → renderer-DXFJv_e6.mjs.map} +1 -1
  356. package/dist/renderer-Dh_qNNwR.mjs +5 -0
  357. package/dist/renderer-DkCpXPMP.mjs +5 -0
  358. package/dist/{renderer-eMCTAa9e.mjs → renderer-Dp5ChuOs.mjs} +4 -4
  359. package/dist/{renderer-eMCTAa9e.mjs.map → renderer-Dp5ChuOs.mjs.map} +1 -1
  360. package/dist/{renderer-1uoKiILq.mjs → renderer-DpZballM.mjs} +3 -3
  361. package/dist/{renderer-1uoKiILq.mjs.map → renderer-DpZballM.mjs.map} +1 -1
  362. package/dist/renderer-Dre-6cDR.mjs +5 -0
  363. package/dist/renderer-Ds5z4_HX.mjs +5 -0
  364. package/dist/{renderer-7ow5Acsg.mjs → renderer-DwGlDNOV.mjs} +3 -3
  365. package/dist/{renderer-7ow5Acsg.mjs.map → renderer-DwGlDNOV.mjs.map} +1 -1
  366. package/dist/{renderer-q7q6k_cD.mjs → renderer-DxB_OfLs.mjs} +4 -4
  367. package/dist/{renderer-q7q6k_cD.mjs.map → renderer-DxB_OfLs.mjs.map} +1 -1
  368. package/dist/{renderer-DFJWPqOJ.mjs → renderer-Dz6P-rPI.mjs} +3 -3
  369. package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-Dz6P-rPI.mjs.map} +1 -1
  370. package/dist/{renderer-BURhYcpA.mjs → renderer-FPiLBwj5.mjs} +4 -4
  371. package/dist/{renderer-BURhYcpA.mjs.map → renderer-FPiLBwj5.mjs.map} +1 -1
  372. package/dist/renderer-HGSCOMyP.mjs +5 -0
  373. package/dist/renderer-KMY8W-cJ.mjs +5 -0
  374. package/dist/{renderer-D-QVGphn.mjs → renderer-KgsVk9c6.mjs} +4 -4
  375. package/dist/{renderer-D-QVGphn.mjs.map → renderer-KgsVk9c6.mjs.map} +1 -1
  376. package/dist/{renderer-COcKhouz.mjs → renderer-LXhEPCmy.mjs} +5 -5
  377. package/dist/{renderer-COcKhouz.mjs.map → renderer-LXhEPCmy.mjs.map} +1 -1
  378. package/dist/{renderer-HDj9Zb-O.mjs → renderer-NBMmvqWl.mjs} +20 -7
  379. package/dist/renderer-NBMmvqWl.mjs.map +1 -0
  380. package/dist/{renderer-DE9Jik9K.mjs → renderer-Nnu32rqg.mjs} +3 -3
  381. package/dist/{renderer-DE9Jik9K.mjs.map → renderer-Nnu32rqg.mjs.map} +1 -1
  382. package/dist/renderer-R21YvXz3.mjs +5 -0
  383. package/dist/{renderer-celhuAL7.mjs → renderer-RAq3LnNy.mjs} +3 -3
  384. package/dist/{renderer-celhuAL7.mjs.map → renderer-RAq3LnNy.mjs.map} +1 -1
  385. package/dist/renderer-RtzCz37W.mjs +5 -0
  386. package/dist/{renderer-50JEMaVo.mjs → renderer-RzkU_O1i.mjs} +5 -5
  387. package/dist/{renderer-50JEMaVo.mjs.map → renderer-RzkU_O1i.mjs.map} +1 -1
  388. package/dist/{renderer-Bbxh4N8Y.mjs → renderer-S9tVGneU.mjs} +95 -80
  389. package/dist/renderer-S9tVGneU.mjs.map +1 -0
  390. package/dist/{renderer-BSELd5vU.mjs → renderer-SJyp9-62.mjs} +3 -3
  391. package/dist/{renderer-BSELd5vU.mjs.map → renderer-SJyp9-62.mjs.map} +1 -1
  392. package/dist/{renderer-jnAIhWn_.mjs → renderer-_54hiCq0.mjs} +5 -5
  393. package/dist/{renderer-jnAIhWn_.mjs.map → renderer-_54hiCq0.mjs.map} +1 -1
  394. package/dist/{renderer-88C3QpKL.d.mts → renderer-aRk849b3.d.mts} +2 -2
  395. package/dist/{renderer-88C3QpKL.d.mts.map → renderer-aRk849b3.d.mts.map} +1 -1
  396. package/dist/{renderer-BQetXCcZ.mjs → renderer-dGEMVaZ3.mjs} +4 -4
  397. package/dist/{renderer-BQetXCcZ.mjs.map → renderer-dGEMVaZ3.mjs.map} +1 -1
  398. package/dist/{renderer-RvI3qRUI.mjs → renderer-dRXP2dJU.mjs} +5 -5
  399. package/dist/{renderer-RvI3qRUI.mjs.map → renderer-dRXP2dJU.mjs.map} +1 -1
  400. package/dist/{renderer-D06HxSXO.mjs → renderer-g9SstkTz.mjs} +3 -3
  401. package/dist/renderer-iMrqAjix.mjs +5 -0
  402. package/dist/{renderer-BJ-7WRgO.mjs → renderer-opVuiAQR.mjs} +3 -3
  403. package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-opVuiAQR.mjs.map} +1 -1
  404. package/dist/{renderer-KKk7myX1.mjs → renderer-puQhVfDS.mjs} +5 -5
  405. package/dist/{renderer-KKk7myX1.mjs.map → renderer-puQhVfDS.mjs.map} +1 -1
  406. package/dist/renderer-sMed1u1O.mjs +5 -0
  407. package/dist/renderer-tsAuo46l.mjs +5 -0
  408. package/dist/{renderer-TKZCA0B9.mjs → renderer-vll8LX0I.mjs} +211 -72
  409. package/dist/renderer-vll8LX0I.mjs.map +1 -0
  410. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-BRQyvcut.mjs} +4 -4
  411. package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-BRQyvcut.mjs.map} +1 -1
  412. package/dist/sam/index.d.mts +3 -3
  413. package/dist/sam/index.mjs +1 -1
  414. package/dist/signals/index.d.mts +7 -7
  415. package/dist/signals/index.mjs +8 -8
  416. package/dist/{signals-BfJ1aqpT.mjs → signals-tiho_9fp.mjs} +4 -4
  417. package/dist/{signals-BfJ1aqpT.mjs.map → signals-tiho_9fp.mjs.map} +1 -1
  418. package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DdTHmCr4.mjs} +76 -11
  419. package/dist/src-BU6vm9sP-DdTHmCr4.mjs.map +1 -0
  420. package/dist/{src-BYp6r-cS.mjs → src-BzFGotRc.mjs} +250 -30
  421. package/dist/src-BzFGotRc.mjs.map +1 -0
  422. package/dist/storage/index.d.mts +206 -0
  423. package/dist/storage/index.d.mts.map +1 -0
  424. package/dist/storage/index.mjs +3 -0
  425. package/package.json +67 -59
  426. package/dist/audio-CYZkDwae.d.mts.map +0 -1
  427. package/dist/cloud-xcfV4J03.mjs +0 -233
  428. package/dist/cloud-xcfV4J03.mjs.map +0 -1
  429. package/dist/dist-CWLLnigL.mjs.map +0 -1
  430. package/dist/dist-CySGkG54.mjs.map +0 -1
  431. package/dist/dist-EQX3TUUl.mjs.map +0 -1
  432. package/dist/gpu-CpkJJLQP.mjs.map +0 -1
  433. package/dist/index-BuiZzc6i.d.mts.map +0 -1
  434. package/dist/index-CEU_Zsb9.d.mts.map +0 -1
  435. package/dist/index-CdCrae-I.d.mts.map +0 -1
  436. package/dist/index-Cro-818i.d.mts.map +0 -1
  437. package/dist/index-D2i9J9Zq.d.mts.map +0 -1
  438. package/dist/index-gOVtTm-P.d.mts.map +0 -1
  439. package/dist/preview-BToKUTtZ.mjs.map +0 -1
  440. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  441. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  442. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  443. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  444. package/dist/preview-engine/chunk-C4M3B2Q2.mjs +0 -1
  445. package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
  446. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  447. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  448. package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
  449. package/dist/preview-engine/chunk-P4Y3PMJF.mjs +0 -1
  450. package/dist/preview-engine/chunk-SE2C623Z.mjs +0 -5
  451. package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
  452. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  453. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  454. package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
  455. package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
  456. package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
  457. package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
  458. package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
  459. package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
  460. package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
  461. package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
  462. package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
  463. package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
  464. package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
  465. package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
  466. package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
  467. package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
  468. package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
  469. package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
  470. package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
  471. package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
  472. package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
  473. package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
  474. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  475. package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
  476. package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
  477. package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
  478. package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
  479. package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
  480. package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
  481. package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
  482. package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
  483. package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
  484. package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
  485. package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
  486. package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
  487. package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
  488. package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
  489. package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
  490. package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
  491. package/dist/program-Bc860ko5.mjs.map +0 -1
  492. package/dist/renderer--Ymc_4XJ.mjs +0 -5
  493. package/dist/renderer-B-OdV-eq.mjs +0 -5
  494. package/dist/renderer-B65fwoA2.mjs +0 -5
  495. package/dist/renderer-B92Ahkcv.mjs +0 -5
  496. package/dist/renderer-B9z2AK31.mjs +0 -5
  497. package/dist/renderer-BIF3Dg3Z.mjs +0 -5
  498. package/dist/renderer-BJUVaIAT.mjs +0 -5
  499. package/dist/renderer-BKRDMbI-.mjs +0 -5
  500. package/dist/renderer-BSwhyVWa.mjs +0 -5
  501. package/dist/renderer-BUqSZn2X.mjs +0 -5
  502. package/dist/renderer-BVKOQarx.d.mts +0 -99
  503. package/dist/renderer-BVKOQarx.d.mts.map +0 -1
  504. package/dist/renderer-BbmvjqK9.mjs +0 -3
  505. package/dist/renderer-Bbxh4N8Y.mjs.map +0 -1
  506. package/dist/renderer-BhsrlGKp.mjs.map +0 -1
  507. package/dist/renderer-Bpe4k_x6.mjs +0 -5
  508. package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
  509. package/dist/renderer-C1NjG0CJ.mjs +0 -5
  510. package/dist/renderer-C7Puyst9.mjs +0 -5
  511. package/dist/renderer-CGA_7320.mjs +0 -5
  512. package/dist/renderer-CLnFkXO7.mjs +0 -5
  513. package/dist/renderer-CMQIT1Kh.mjs +0 -5
  514. package/dist/renderer-CQ1rwjIh.mjs +0 -5
  515. package/dist/renderer-CT8h0boY.mjs +0 -5
  516. package/dist/renderer-Cb0lszt3.mjs +0 -5
  517. package/dist/renderer-Ci7oLye9.mjs +0 -5
  518. package/dist/renderer-CjqXB3CZ.mjs +0 -5
  519. package/dist/renderer-CqTV04zQ.mjs +0 -5
  520. package/dist/renderer-CtWeRtHK.mjs +0 -5
  521. package/dist/renderer-CzolnwCo.mjs +0 -5
  522. package/dist/renderer-D6qhcx_C.mjs +0 -5
  523. package/dist/renderer-DDfEf0jt.mjs +0 -5
  524. package/dist/renderer-DDpa8ztp.mjs +0 -5
  525. package/dist/renderer-DbQBqzmx.mjs +0 -5
  526. package/dist/renderer-DfUcwMKa.mjs +0 -5
  527. package/dist/renderer-DgIjNANM.mjs +0 -6
  528. package/dist/renderer-Dsh6Tgu0.mjs +0 -3
  529. package/dist/renderer-DuIwR9GT.mjs +0 -5
  530. package/dist/renderer-Dv4u2c14.mjs +0 -5
  531. package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
  532. package/dist/renderer-IE1yu3lZ.mjs +0 -5
  533. package/dist/renderer-PY_wnEN0.mjs +0 -5
  534. package/dist/renderer-TKZCA0B9.mjs.map +0 -1
  535. package/dist/renderer-gv24VyzO.mjs +0 -5
  536. package/dist/renderer-nN6lPZf9.mjs +0 -5
  537. package/dist/src-BYp6r-cS.mjs.map +0 -1
  538. package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
  539. /package/dist/{chunk-W71TSjRM.mjs → chunk-DOL2i2sR.mjs} +0 -0
  540. /package/dist/{renderer-B6rZUBwE.mjs → renderer-Co2YqWX0.mjs} +0 -0
@@ -1,6 +1,6 @@
1
- import { Bt as getMediaType, It as getActiveMediaMetadata, Rn as updateClockSignals, Xt as isSignal, bn as resolveMediaMimeType, en as mediaSourceIsHold, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, tn as mediaSourceRange } from "./dist-Bf2_efYP.mjs";
2
- import { d as webgpuRegistry, t as audioRegistry } from "./renderer-DcvjSolU.mjs";
3
- import { A as emojiGraphemes, C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, I as getRegisteredFontSource, O as drawSvgNode, P as getHeadlessFontPath, S as drawCaptionNode, T as drawLottieNode, et as registerHeadlessFont, it as shaderStore, k as drawVideoNode, lt as GetFontAssetUrl, m as SlugGeometry, p as SlugFontCache, ut as resolveMediaSourceUrl, w as drawImageNode, z as inputStore, zn as signalRegistry } from "./dist-CWLLnigL.mjs";
1
+ import { Bt as getMediaType, It as getActiveMediaMetadata, Rn as updateClockSignals, Xt as isSignal, bn as resolveMediaMimeType, en as mediaSourceIsHold, p as DEFAULT_DURATION_MS, rn as mediaSourceTime, tn as mediaSourceRange } from "./dist-C8XSqfTx.mjs";
2
+ import { f as webgpuRegistry, t as audioRegistry } from "./renderer-BuvKGwk3.mjs";
3
+ import { A as emojiGraphemes, C as drawGifNode, D as drawSignalNode, E as drawParagraphNode, I as getRegisteredFontSource, O as drawSvgNode, P as getHeadlessFontPath, S as drawCaptionNode, T as drawLottieNode, Vn as signalRegistry, at as shaderStore, dt as GetFontAssetUrl, et as registerHeadlessFont, ft as resolveMediaSourceUrl, g as WebGPUAudioProcessor, k as drawVideoNode, m as SlugGeometry, p as SlugFontCache, tt as resolveInputUrl, w as drawImageNode, z as inputStore } from "./dist-D3BeAZ7X.mjs";
4
4
  import { AudioSampleSink } from "mediabunny";
5
5
 
6
6
  //#region ../renderers/dist/index.mjs
@@ -1082,42 +1082,54 @@ async function decodeAudioSource(url) {
1082
1082
  */
1083
1083
  const DECODE_PREROLL_SEC = .5;
1084
1084
  /**
1085
+ * A source this runtime can't decode at all (a codec WebCodecs lacks, in a
1086
+ * worker without AudioContext). Thrown, not mixed as silence, so the caller
1087
+ * can mix where it can be decoded.
1088
+ */
1089
+ var AudioDecodeUnavailable = class extends Error {
1090
+ name = "AudioDecodeUnavailable";
1091
+ };
1092
+ /**
1093
+ * The browser's whole-file decoder, for codecs WebCodecs can't decode
1094
+ * (mediabunny reads byte ranges and decodes with WebCodecs first).
1095
+ */
1096
+ async function decodeWithAudioContext(url) {
1097
+ const AudioContextClass = window.AudioContext || window.webkitAudioContext;
1098
+ if (!AudioContextClass) throw new AudioDecodeUnavailable(`No decoder here for ${url}: WebCodecs can't decode it and there is no AudioContext (a worker).`);
1099
+ const audioCtx = new AudioContextClass();
1100
+ try {
1101
+ const response = await fetch(resolveInputUrl(url, false));
1102
+ mediaLogger.debug(`[AudioExtractor] Fetch response status for ${url}: ${response.status} (${response.statusText})`);
1103
+ if (!response.ok) throw new Error(`Failed to fetch audio source: ${response.statusText}`);
1104
+ const arrayBuffer = await response.arrayBuffer();
1105
+ mediaLogger.debug(`[AudioExtractor] Fetched ${arrayBuffer.byteLength} bytes. Decoding audio data...`);
1106
+ const audioBuffer = await audioCtx.decodeAudioData(arrayBuffer);
1107
+ mediaLogger.debug(`[AudioExtractor] Decoded successfully: ${audioBuffer.numberOfChannels} channels, sampleRate: ${audioBuffer.sampleRate}, duration: ${audioBuffer.duration}s`);
1108
+ const channels = [];
1109
+ for (let c = 0; c < audioBuffer.numberOfChannels; c++) channels.push(new Float32Array(audioBuffer.getChannelData(c)));
1110
+ return {
1111
+ channels,
1112
+ sampleRate: audioBuffer.sampleRate,
1113
+ startIndex: 0,
1114
+ validFromSec: 0,
1115
+ validToSec: Number.POSITIVE_INFINITY
1116
+ };
1117
+ } finally {
1118
+ audioCtx.close();
1119
+ mediaLogger.debug(`[AudioExtractor] AudioContext closed for ${url}`);
1120
+ }
1121
+ }
1122
+ /**
1085
1123
  * Decodes [range.startSec, range.endSec) of a source (the whole file without
1086
1124
  * a range), so a short clip from a long file decodes only what it plays.
1087
1125
  */
1088
1126
  async function decodeAudioRange(url, range) {
1089
1127
  mediaLogger.debug(`[AudioExtractor] decodeAudioSource started for url: ${url}`);
1090
1128
  try {
1091
- if (typeof window !== "undefined" && typeof window.document !== "undefined" && !(typeof process !== "undefined" && process.versions && process.versions.node)) {
1092
- mediaLogger.debug(`[AudioExtractor] Browser detected. Fetching arrayBuffer for ${url}...`);
1093
- const AudioContextClass = window.AudioContext || window.webkitAudioContext;
1094
- if (!AudioContextClass) throw new Error("AudioContext is not supported in this browser");
1095
- const audioCtx = new AudioContextClass();
1096
- try {
1097
- const response = await fetch(url);
1098
- mediaLogger.debug(`[AudioExtractor] Fetch response status for ${url}: ${response.status} (${response.statusText})`);
1099
- if (!response.ok) throw new Error(`Failed to fetch audio source: ${response.statusText}`);
1100
- const arrayBuffer = await response.arrayBuffer();
1101
- mediaLogger.debug(`[AudioExtractor] Fetched ${arrayBuffer.byteLength} bytes. Decoding audio data...`);
1102
- const audioBuffer = await audioCtx.decodeAudioData(arrayBuffer);
1103
- mediaLogger.debug(`[AudioExtractor] Decoded successfully: ${audioBuffer.numberOfChannels} channels, sampleRate: ${audioBuffer.sampleRate}, duration: ${audioBuffer.duration}s`);
1104
- const channels = [];
1105
- for (let c = 0; c < audioBuffer.numberOfChannels; c++) channels.push(new Float32Array(audioBuffer.getChannelData(c)));
1106
- return {
1107
- channels,
1108
- sampleRate: audioBuffer.sampleRate,
1109
- startIndex: 0,
1110
- validFromSec: 0,
1111
- validToSec: Number.POSITIVE_INFINITY
1112
- };
1113
- } finally {
1114
- audioCtx.close();
1115
- mediaLogger.debug(`[AudioExtractor] AudioContext closed for ${url}`);
1116
- }
1117
- }
1129
+ const isBrowser = !(typeof process !== "undefined" && process.versions?.node);
1118
1130
  let inputAcquired = false;
1119
1131
  try {
1120
- mediaLogger.debug(`[AudioExtractor] Server / Node.js detected. Acquiring from inputStore for ${url}...`);
1132
+ mediaLogger.debug(`[AudioExtractor] Acquiring from inputStore for ${url}...`);
1121
1133
  const input = await inputStore.acquire(url);
1122
1134
  inputAcquired = true;
1123
1135
  mediaLogger.debug(`[AudioExtractor] inputStore acquired. Retrieving primary audio track...`);
@@ -1208,6 +1220,7 @@ async function decodeAudioRange(url, range) {
1208
1220
  };
1209
1221
  } catch (err) {
1210
1222
  if (err instanceof Error && err.message.includes("Cannot open local media file")) throw err;
1223
+ if (isBrowser) return decodeWithAudioContext(url);
1211
1224
  if (typeof process !== "undefined" && process.versions?.node) try {
1212
1225
  const { execFileSync } = await import("node:child_process");
1213
1226
  const ffStartIndex = range ? Math.round(Math.max(0, range.startSec) * 48e3) : 0;
@@ -1253,7 +1266,7 @@ async function decodeAudioRange(url, range) {
1253
1266
  if (inputAcquired) inputStore.release(url);
1254
1267
  }
1255
1268
  } catch (err) {
1256
- if (err instanceof Error && err.message.includes("Cannot open local media file")) throw err;
1269
+ if (err instanceof AudioDecodeUnavailable || err instanceof Error && err.message.includes("Cannot open local media file")) throw err;
1257
1270
  mediaLogger.error({ err }, `[AudioExtractor] Failed to decode source ${url}`);
1258
1271
  return null;
1259
1272
  }
@@ -1278,13 +1291,13 @@ async function resampleMappedPCM(input, sourceRate, outputRate, length, inputSta
1278
1291
  * `trimOffsetSamples` is a whole-file index; `inputStartIndex` is the
1279
1292
  * whole-file index of `inputChannel[0]` when it holds only a range.
1280
1293
  */
1281
- async function resampleAndStretchPCM(inputChannel, sourceSampleRate, targetSampleRate, speed, outputLength, trimOffsetSamples, inputStartIndex = 0) {
1294
+ async function resampleAndStretchPCM(inputChannel, sourceSampleRate, targetSampleRate, speed, outputLength, trimOffsetSamples, inputStartIndex = 0, firstOutputSample = 0) {
1282
1295
  const output = new Float32Array(outputLength);
1283
1296
  const factor = sourceSampleRate / targetSampleRate * speed;
1284
1297
  const YIELD_INTERVAL = 1e5;
1285
1298
  for (let i = 0; i < outputLength; i++) {
1286
1299
  if (i > 0 && i % YIELD_INTERVAL === 0) await yieldToMain();
1287
- const srcIndex = trimOffsetSamples + i * factor - inputStartIndex;
1300
+ const srcIndex = trimOffsetSamples + (firstOutputSample + i) * factor - inputStartIndex;
1288
1301
  const indexFloor = Math.floor(srcIndex);
1289
1302
  const indexCeil = Math.ceil(srcIndex);
1290
1303
  if (indexFloor < 0) {
@@ -1339,6 +1352,22 @@ var MixBus = class {
1339
1352
  for (let c = 0; c < 2; c++) addInto(dest[c], src[c], start);
1340
1353
  }
1341
1354
  };
1355
+ /**
1356
+ * The master stage, in place: `gain` (the automatic ceiling: a mix whose
1357
+ * summed tracks exceed -0.5 dB, 0.95, is scaled down smoothly), then soft
1358
+ * limiting and non-finite sanitation (transparent saturation instead of
1359
+ * harsh square-wave clipping).
1360
+ */
1361
+ function applyMaster(channels, gain) {
1362
+ for (const channel of channels) for (let i = 0; i < channel.length; i++) {
1363
+ const v = (channel[i] ?? 0) * gain;
1364
+ channel[i] = Number.isFinite(v) ? Math.tanh(v) : 0;
1365
+ }
1366
+ }
1367
+ /** The master stage's gain for a mix whose loudest sample is `peak`. */
1368
+ function masterGain(peak) {
1369
+ return peak > .95 ? .92 / peak : 1;
1370
+ }
1342
1371
  /** A clip's file name for progress, without paths or signed-URL queries. */
1343
1372
  function sourceLabel(url) {
1344
1373
  if (url.startsWith("data:")) return "inline audio";
@@ -1359,10 +1388,19 @@ function decodeURIComponentSafe(s) {
1359
1388
  async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device, renderId, options = {}) {
1360
1389
  mediaLogger.debug(`[AudioExtractor] mixAudioTracks started. FPS: ${fps}, targetSampleRate: ${targetSampleRate}`);
1361
1390
  await waitForDelayRender();
1391
+ if (device && !options.continue) WebGPUAudioProcessor.resetState(renderId ?? "global", device);
1362
1392
  shaderStore.registerSignalsFromComposition(renderId, virtualMedia);
1363
1393
  const durationMs = getActiveMediaMetadata(virtualMedia)?.durationMs || 1e3;
1364
1394
  const totalDurationSec = durationMs / 1e3;
1365
1395
  const totalTargetSamples = Math.ceil(totalDurationSec * targetSampleRate);
1396
+ const winStart = options.window ? Math.max(0, Math.round(options.window.startSec * targetSampleRate)) : 0;
1397
+ const winEnd = options.window ? Math.min(totalTargetSamples, Math.round(options.window.endSec * targetSampleRate)) : Number.POSITIVE_INFINITY;
1398
+ const outputSamples = options.window ? Math.max(0, winEnd - winStart) : totalTargetSamples;
1399
+ /** The part [lo, hi) of a node's local samples that the window covers. */
1400
+ const visible = (absStart, length) => ({
1401
+ lo: Math.max(0, winStart - absStart),
1402
+ hi: Math.min(length, winEnd - absStart)
1403
+ });
1366
1404
  mediaLogger.debug(`[AudioExtractor] Composition total duration: ${durationMs}ms (${totalDurationSec}s). Total mixed samples to allocate: ${totalTargetSamples}`);
1367
1405
  const decodedCache = /* @__PURE__ */ new Map();
1368
1406
  const undecodable = /* @__PURE__ */ new Set();
@@ -1387,11 +1425,11 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1387
1425
  ranges.push(decoded);
1388
1426
  return decoded;
1389
1427
  }
1390
- async function mappedChannels(url, length, map, startFrame) {
1428
+ async function mappedChannels(url, length, map, startFrame, skip = 0) {
1391
1429
  const left = new Float32Array(length), right = new Float32Array(length);
1392
1430
  for (let offset = 0; offset < length;) {
1393
1431
  let count = Math.min(length - offset, targetSampleRate * 2);
1394
- const first = startFrame + offset / targetSampleRate * fps;
1432
+ const first = startFrame + (skip + offset) / targetSampleRate * fps;
1395
1433
  let range = mediaSourceRange(map, first, first + (count - 1) / targetSampleRate * fps, fps);
1396
1434
  while (range.max - range.min > 3 && count > 1) {
1397
1435
  count = Math.max(1, Math.floor(count / 2));
@@ -1421,7 +1459,7 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1421
1459
  audibleCache.set(node, audible);
1422
1460
  return audible;
1423
1461
  }
1424
- async function traverse(node, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, inheritedDurationFrames, inheritedRemap) {
1462
+ async function traverse(node, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, inheritedDurationFrames, inheritedRemap, absStart = 0) {
1425
1463
  if (!node || !isAudible(node)) return null;
1426
1464
  const op = node.operation;
1427
1465
  if (!op) {
@@ -1430,15 +1468,15 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1430
1468
  const actualDurationFrames = inheritedRemap && inheritedDurationFrames !== null ? inheritedDurationFrames : inheritedDurationFrames !== null ? durationFrames > 0 ? Math.min(inheritedDurationFrames, durationFrames) : inheritedDurationFrames : durationFrames;
1431
1469
  const localSamplesCount$1 = Math.ceil(actualDurationFrames / fps * targetSampleRate);
1432
1470
  if (localSamplesCount$1 <= 0) return null;
1433
- const bus$1 = new MixBus(localSamplesCount$1);
1471
+ const { lo: lo$1, hi: hi$1 } = visible(absStart, localSamplesCount$1);
1472
+ if (hi$1 <= lo$1) return null;
1473
+ const bus$1 = new MixBus(hi$1 - lo$1);
1434
1474
  for (const child of node.children) {
1435
- const childChannels = await traverse(child, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, actualDurationFrames, inheritedRemap);
1436
- if (childChannels) {
1437
- const childOp = child.operation;
1438
- const childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;
1439
- const childStartSample = Math.round(childStartFrame / fps * targetSampleRate);
1440
- bus$1.add(childChannels, childStartSample);
1441
- }
1475
+ const childOp = child.operation;
1476
+ const childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;
1477
+ const childStartSample = Math.round(childStartFrame / fps * targetSampleRate);
1478
+ const childChannels = await traverse(child, inheritedSeekSec, inheritedClockFrames, inheritedVolume, inheritedSpeed, actualDurationFrames, inheritedRemap, absStart + childStartSample);
1479
+ if (childChannels) bus$1.add(childChannels, Math.max(childStartSample, lo$1) - lo$1);
1442
1480
  }
1443
1481
  return bus$1.channels;
1444
1482
  }
@@ -1462,7 +1500,9 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1462
1500
  const nodeActualDurationFrames = inheritedRemap && !ownRemap && inheritedDurationFrames !== null ? inheritedDurationFrames : inheritedDurationFrames !== null ? nodeDurationFrames > 0 ? Math.min(inheritedDurationFrames, nodeDurationFrames) : inheritedDurationFrames : nodeDurationFrames;
1463
1501
  const localSamplesCount = Math.ceil(nodeActualDurationFrames / fps * targetSampleRate);
1464
1502
  if (localSamplesCount <= 0) return null;
1465
- const bus = new MixBus(localSamplesCount);
1503
+ const { lo, hi } = visible(absStart, localSamplesCount);
1504
+ if (hi <= lo) return null;
1505
+ const bus = new MixBus(hi - lo);
1466
1506
  const processSegment = async (seg, windowStartFrameOffset) => {
1467
1507
  const segSeekSec = seg ? seg.startSec : 0;
1468
1508
  const totalSeekSec = inheritedSeekSec + layerTrimSec + segSeekSec;
@@ -1480,28 +1520,32 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1480
1520
  const effectiveTrimSec = Math.max(0, (Number(params.trimStartSec) || 0) + totalSeekSec);
1481
1521
  const clipDurationSec = actualDurationFrames / fps;
1482
1522
  const clipSamplesCount = Math.min(localSamplesCount - segmentStartSample, Math.ceil(clipDurationSec * targetSampleRate));
1483
- const mapped = remap && clipSamplesCount > 0 ? await mappedChannels(params.sourceUrl, clipSamplesCount, remap.map, remap.offsetFrames + windowStartFrameOffset) : null;
1484
- const decoded = !remap && clipSamplesCount > 0 && segmentStartSample < localSamplesCount ? await getDecodedRange(params.sourceUrl, effectiveTrimSec, effectiveTrimSec + clipSamplesCount / targetSampleRate * finalSpeed + RANGE_MARGIN_SEC) : null;
1523
+ const clipFrom = Math.max(segmentStartSample, lo);
1524
+ const count = Math.min(segmentStartSample + clipSamplesCount, hi) - clipFrom;
1525
+ const skip = clipFrom - segmentStartSample;
1526
+ const writeAt = clipFrom - lo;
1527
+ const mapped = remap && count > 0 ? await mappedChannels(params.sourceUrl, count, remap.map, remap.offsetFrames + windowStartFrameOffset, skip) : null;
1528
+ const decoded = !remap && count > 0 && segmentStartSample < localSamplesCount ? await getDecodedRange(params.sourceUrl, effectiveTrimSec + skip / targetSampleRate * finalSpeed, effectiveTrimSec + (skip + count) / targetSampleRate * finalSpeed + RANGE_MARGIN_SEC) : null;
1485
1529
  if (mapped || decoded) {
1486
1530
  let stretchedLeft;
1487
1531
  let stretchedRight;
1488
1532
  if (mapped) [stretchedLeft, stretchedRight] = mapped;
1489
1533
  else if (decoded) {
1490
1534
  const trimOffsetSamples = Math.round(effectiveTrimSec * decoded.sampleRate);
1491
- stretchedLeft = await resampleAndStretchPCM(decoded.channels[0], decoded.sampleRate, targetSampleRate, finalSpeed, clipSamplesCount, trimOffsetSamples, decoded.startIndex);
1492
- stretchedRight = decoded.channels.length > 1 ? await resampleAndStretchPCM(decoded.channels[1], decoded.sampleRate, targetSampleRate, finalSpeed, clipSamplesCount, trimOffsetSamples, decoded.startIndex) : stretchedLeft;
1535
+ stretchedLeft = await resampleAndStretchPCM(decoded.channels[0], decoded.sampleRate, targetSampleRate, finalSpeed, count, trimOffsetSamples, decoded.startIndex, skip);
1536
+ stretchedRight = decoded.channels.length > 1 ? await resampleAndStretchPCM(decoded.channels[1], decoded.sampleRate, targetSampleRate, finalSpeed, count, trimOffsetSamples, decoded.startIndex, skip) : stretchedLeft;
1493
1537
  } else throw new Error("No decoded audio");
1494
1538
  const stretched = [stretchedLeft, stretchedRight];
1495
- if (bus.canAdopt(stretched, segmentStartSample)) {
1539
+ if (bus.canAdopt(stretched, writeAt)) {
1496
1540
  if (volume !== 1) {
1497
- for (let i = 0; i < clipSamplesCount; i++) stretchedLeft[i] *= volume;
1498
- if (stretchedRight !== stretchedLeft) for (let i = 0; i < clipSamplesCount; i++) stretchedRight[i] *= volume;
1541
+ for (let i = 0; i < count; i++) stretchedLeft[i] *= volume;
1542
+ if (stretchedRight !== stretchedLeft) for (let i = 0; i < count; i++) stretchedRight[i] *= volume;
1499
1543
  }
1500
1544
  bus.channels = [stretchedLeft, stretchedRight === stretchedLeft ? stretchedLeft.slice() : stretchedRight];
1501
1545
  } else {
1502
1546
  const [localLeft, localRight] = bus.get();
1503
- for (let i = 0; i < clipSamplesCount; i++) {
1504
- const outIndex = segmentStartSample + i;
1547
+ for (let i = 0; i < count; i++) {
1548
+ const outIndex = writeAt + i;
1505
1549
  localLeft[outIndex] += stretchedLeft[i] * volume;
1506
1550
  localRight[outIndex] += stretchedRight[i] * volume;
1507
1551
  }
@@ -1519,27 +1563,35 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1519
1563
  }
1520
1564
  }
1521
1565
  if (node.children) for (const child of node.children) {
1522
- const childChannels = await traverse(child, totalSeekSec, totalClockFrames, volume, speedMultiplier, actualDurationFrames, remap);
1523
- if (childChannels) {
1524
- const childOp = child.operation;
1525
- const childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;
1526
- const relativeStartFrame = op.op === "CompositorLayer" && childOp?.op === "CompositorLayer" ? childStartFrame - nodeStartFrame : childStartFrame;
1527
- const childStartSample = Math.round(relativeStartFrame / fps * targetSampleRate);
1528
- bus.add(childChannels, segmentStartSample + childStartSample);
1529
- }
1566
+ const childOp = child.operation;
1567
+ const childStartFrame = childOp?.startFrame ?? childOp?.timeline?.startFrame ?? 0;
1568
+ const relativeStartFrame = op.op === "CompositorLayer" && childOp?.op === "CompositorLayer" ? childStartFrame - nodeStartFrame : childStartFrame;
1569
+ const childStart = segmentStartSample + Math.round(relativeStartFrame / fps * targetSampleRate);
1570
+ const childChannels = await traverse(child, totalSeekSec, totalClockFrames, volume, speedMultiplier, actualDurationFrames, remap, absStart + childStart);
1571
+ if (childChannels) bus.add(childChannels, Math.max(childStart, lo) - lo);
1530
1572
  }
1531
1573
  const pluginProcessor = audioRegistry.get(op.op);
1532
1574
  if (pluginProcessor) try {
1533
1575
  const clipDurationSec = actualDurationFrames / fps;
1534
1576
  const clipSamplesCount = Math.min(localSamplesCount - segmentStartSample, Math.ceil(clipDurationSec * targetSampleRate));
1535
- if (clipSamplesCount > 0 && segmentStartSample < localSamplesCount && segmentStartSample >= 0) await pluginProcessor(bus.get().map((ch) => ch.subarray(segmentStartSample, segmentStartSample + clipSamplesCount)), targetSampleRate, node, {
1536
- device,
1537
- frame: totalClockFrames,
1538
- fps,
1539
- renderId,
1540
- elapsedMs: ((totalClockFrames - (op.op === "CompositorLayer" ? localClockFrames : 0)) / fps + totalSeekSec - layerTrimSec) * 1e3,
1541
- durationMs: getActiveMediaMetadata(node)?.durationMs ?? void 0
1542
- });
1577
+ const from = Math.max(segmentStartSample, lo);
1578
+ const to = Math.min(segmentStartSample + clipSamplesCount, hi);
1579
+ const skip = from - segmentStartSample;
1580
+ if (to > from && segmentStartSample < localSamplesCount && segmentStartSample >= 0) {
1581
+ const slicedChannels = bus.get().map((ch) => ch.subarray(from - lo, to - lo));
1582
+ const layerClockFrames = op.op === "CompositorLayer" ? localClockFrames : 0;
1583
+ const skipSec = skip / targetSampleRate;
1584
+ const elapsedMs = ((totalClockFrames - layerClockFrames) / fps + totalSeekSec - layerTrimSec + skipSec) * 1e3;
1585
+ const durationMs$1 = getActiveMediaMetadata(node)?.durationMs ?? void 0;
1586
+ await pluginProcessor(slicedChannels, targetSampleRate, node, {
1587
+ device,
1588
+ frame: totalClockFrames + skipSec * fps,
1589
+ fps,
1590
+ renderId,
1591
+ elapsedMs,
1592
+ durationMs: durationMs$1
1593
+ });
1594
+ }
1543
1595
  } catch (pluginErr) {
1544
1596
  mediaLogger.error({ err: pluginErr }, `[AudioExtractor] Custom plugin for operation '${op.op}' failed`);
1545
1597
  }
@@ -1575,7 +1627,7 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1575
1627
  });
1576
1628
  }
1577
1629
  const rootChannels = await traverse(normalized, 0, 0, 1, 1, null);
1578
- const mixedChannels = rootChannels?.every((ch) => ch.length === totalTargetSamples) && rootChannels[0] !== rootChannels[1] ? rootChannels : [new Float32Array(totalTargetSamples), new Float32Array(totalTargetSamples)];
1630
+ const mixedChannels = rootChannels?.every((ch) => ch.length === outputSamples) && rootChannels[0] !== rootChannels[1] ? rootChannels : [new Float32Array(outputSamples), new Float32Array(outputSamples)];
1579
1631
  const [outputLeft, outputRight] = mixedChannels;
1580
1632
  if (rootChannels && mixedChannels !== rootChannels) for (let c = 0; c < 2; c++) {
1581
1633
  const dest = mixedChannels[c];
@@ -1585,22 +1637,17 @@ async function mixAudioTracks(virtualMedia, fps, targetSampleRate = 48e3, device
1585
1637
  }
1586
1638
  decodedCache.clear();
1587
1639
  let mixPeak = 0;
1588
- for (let i = 0; i < totalTargetSamples; i++) {
1640
+ for (let i = 0; i < outputSamples; i++) {
1589
1641
  const l = Math.abs(outputLeft[i] ?? 0);
1590
1642
  const r = Math.abs(outputRight[i] ?? 0);
1591
1643
  if (l > mixPeak) mixPeak = l;
1592
1644
  if (r > mixPeak) mixPeak = r;
1593
1645
  }
1594
- const autoGain = mixPeak > .95 ? .92 / mixPeak : 1;
1595
- for (let i = 0; i < totalTargetSamples; i++) {
1596
- const l = (outputLeft[i] ?? 0) * autoGain;
1597
- const r = (outputRight[i] ?? 0) * autoGain;
1598
- outputLeft[i] = Number.isFinite(l) ? Math.tanh(l) : 0;
1599
- outputRight[i] = Number.isFinite(r) ? Math.tanh(r) : 0;
1600
- }
1646
+ if (options.master !== false) applyMaster(mixedChannels, masterGain(mixPeak));
1601
1647
  return {
1602
1648
  channels: mixedChannels,
1603
- sampleRate: targetSampleRate
1649
+ sampleRate: targetSampleRate,
1650
+ peak: mixPeak
1604
1651
  };
1605
1652
  }
1606
1653
  /** Resolve the source bound to a compositor layer, including effect wrappers. */
@@ -1648,4 +1695,4 @@ async function preflightMediaTime(root, fps) {
1648
1695
 
1649
1696
  //#endregion
1650
1697
  export { requiresIsolation as _, preflightMediaTime as a, bezier as c, mapBlendModeToSkia as d, measureSpring as f, preloadFont as g, preloadCompositionFonts as h, mixAudioTracks as i, computeStrokeRect as l, measureTextAsync as m, decodeAudioSource as n, resolveLayerDuration as o, measureText as p, drawCompositionTree as r, Easing as s, compositionStateStore as t, interpolate as u, spring as v, springCalculation as y };
1651
- //# sourceMappingURL=dist-EQX3TUUl.mjs.map
1698
+ //# sourceMappingURL=dist-CUNvNDS3.mjs.map