framefields 2.8.0 → 2.8.1

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 (285) hide show
  1. package/dist/audio/index.d.mts +4 -4
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-CxAUxVyA.d.mts → audio-Ccpl9mjV.d.mts} +3 -3
  4. package/dist/{audio-CxAUxVyA.d.mts.map → audio-Ccpl9mjV.d.mts.map} +1 -1
  5. package/dist/{audio-CGVJlZb9.mjs → audio-vatRe308.mjs} +3 -3
  6. package/dist/{audio-CGVJlZb9.mjs.map → audio-vatRe308.mjs.map} +1 -1
  7. package/dist/cli/check-worker.mjs +43 -43
  8. package/dist/components/index.d.mts +10 -10
  9. package/dist/components/index.mjs +42 -42
  10. package/dist/{dist-C5eZw8ms.mjs → dist-BbwtlSZO.mjs} +2 -2
  11. package/dist/{dist-C5eZw8ms.mjs.map → dist-BbwtlSZO.mjs.map} +1 -1
  12. package/dist/{dist-CnFcSau0.mjs → dist-CFe1fC9l.mjs} +2289 -212
  13. package/dist/dist-CFe1fC9l.mjs.map +1 -0
  14. package/dist/effects/index.d.mts +4 -4
  15. package/dist/effects/index.mjs +34 -34
  16. package/dist/{effects-DdvkiI3u.mjs → effects-CCyfjbhZ.mjs} +2 -2
  17. package/dist/{effects-DdvkiI3u.mjs.map → effects-CCyfjbhZ.mjs.map} +1 -1
  18. package/dist/fonts/index.mjs +2 -2
  19. package/dist/{fonts-k_89s1HO.mjs → fonts-C1mgtkCa.mjs} +2 -2
  20. package/dist/{fonts-k_89s1HO.mjs.map → fonts-C1mgtkCa.mjs.map} +1 -1
  21. package/dist/{gpu-BoyykRdD.mjs → gpu-CU2tEKJJ.mjs} +2 -2
  22. package/dist/{gpu-BoyykRdD.mjs.map → gpu-CU2tEKJJ.mjs.map} +1 -1
  23. package/dist/{index-CPFKis94.d.mts → index-7Z9_a_iB.d.mts} +3 -3
  24. package/dist/{index-CPFKis94.d.mts.map → index-7Z9_a_iB.d.mts.map} +1 -1
  25. package/dist/{index-CFKMZDv1.d.mts → index-BIjMAW1h.d.mts} +2 -2
  26. package/dist/{index-CFKMZDv1.d.mts.map → index-BIjMAW1h.d.mts.map} +1 -1
  27. package/dist/{index-Ds9_v60R.d.mts → index-BwRrsP_V.d.mts} +181 -13
  28. package/dist/index-BwRrsP_V.d.mts.map +1 -0
  29. package/dist/{index-BukqOGDa.d.mts → index-CFoAmh7q.d.mts} +3 -3
  30. package/dist/{index-BukqOGDa.d.mts.map → index-CFoAmh7q.d.mts.map} +1 -1
  31. package/dist/{index-CPeaSZoz.d.mts → index-CJL0JAU8.d.mts} +2 -2
  32. package/dist/{index-CPeaSZoz.d.mts.map → index-CJL0JAU8.d.mts.map} +1 -1
  33. package/dist/{index-Ced1Ry4S.d.mts → index-D5UDyVMb.d.mts} +211 -9
  34. package/dist/index-D5UDyVMb.d.mts.map +1 -0
  35. package/dist/{index-B_nooAhS.d.mts → index-UDDAfHAF.d.mts} +4 -4
  36. package/dist/{index-B_nooAhS.d.mts.map → index-UDDAfHAF.d.mts.map} +1 -1
  37. package/dist/index.d.mts +11 -11
  38. package/dist/index.mjs +49 -49
  39. package/dist/preview/index.d.mts +3 -3
  40. package/dist/preview/index.mjs +10 -10
  41. package/dist/{preview-DHqCrFhG.mjs → preview-WXbsf6Dv.mjs} +2 -2
  42. package/dist/{preview-DHqCrFhG.mjs.map → preview-WXbsf6Dv.mjs.map} +1 -1
  43. package/dist/preview-engine/{chunk-K5F4ZW6T.mjs → chunk-7U34VKNO.mjs} +1 -1
  44. package/dist/preview-engine/chunk-FKG27DVO.mjs +4 -0
  45. package/dist/preview-engine/chunk-KFNVUGNN.mjs +1974 -0
  46. package/dist/preview-engine/chunk-NKAVHU7H.mjs +480 -0
  47. package/dist/preview-engine/chunk-PYX6Q2EJ.mjs +2403 -0
  48. package/dist/preview-engine/components.mjs +1 -1
  49. package/dist/preview-engine/framefields.mjs +1 -1
  50. package/dist/preview-engine/player.mjs +1 -1
  51. package/dist/preview-engine/renderers-KPCQGBIY.mjs +228 -0
  52. package/dist/{program-CqQDWfSV.mjs → program-Cq4gP9Dd.mjs} +5 -6
  53. package/dist/program-Cq4gP9Dd.mjs.map +1 -0
  54. package/dist/renderer/index.d.mts +2 -2
  55. package/dist/renderer/index.mjs +2 -2
  56. package/dist/renderer-01zxT4CK.mjs +5 -0
  57. package/dist/renderer-35LHkj36.mjs +5 -0
  58. package/dist/{renderer-Cx2Sw9Ib.mjs → renderer-AMBVtZ_G.mjs} +3 -3
  59. package/dist/{renderer-Cx2Sw9Ib.mjs.map → renderer-AMBVtZ_G.mjs.map} +1 -1
  60. package/dist/renderer-B0OIdCGj.mjs +5 -0
  61. package/dist/renderer-B3IPtkK9.mjs +5 -0
  62. package/dist/{renderer-DCyp-jzQ.mjs → renderer-B4iCFvJh.mjs} +3 -3
  63. package/dist/{renderer-DCyp-jzQ.mjs.map → renderer-B4iCFvJh.mjs.map} +1 -1
  64. package/dist/{renderer-DsGE9qtz.mjs → renderer-BD00i68i.mjs} +3 -3
  65. package/dist/{renderer-DsGE9qtz.mjs.map → renderer-BD00i68i.mjs.map} +1 -1
  66. package/dist/{renderer-CuK1lPnA.mjs → renderer-BEuU7qlG.mjs} +2 -2
  67. package/dist/{renderer-CuK1lPnA.mjs.map → renderer-BEuU7qlG.mjs.map} +1 -1
  68. package/dist/{renderer-BuYRrBRf.mjs → renderer-BGPnCRFI.mjs} +3 -3
  69. package/dist/{renderer-BuYRrBRf.mjs.map → renderer-BGPnCRFI.mjs.map} +1 -1
  70. package/dist/{renderer-D7FuHXiz.mjs → renderer-BIGILDEA.mjs} +2 -2
  71. package/dist/{renderer-D7FuHXiz.mjs.map → renderer-BIGILDEA.mjs.map} +1 -1
  72. package/dist/{renderer-4GwADfB0.mjs → renderer-BLU0PQTB.mjs} +3 -3
  73. package/dist/{renderer-4GwADfB0.mjs.map → renderer-BLU0PQTB.mjs.map} +1 -1
  74. package/dist/renderer-BMC39abo.mjs +5 -0
  75. package/dist/{renderer-DS-Gv-3w.mjs → renderer-BNzT34UV.mjs} +2 -2
  76. package/dist/renderer-BQj3nlAI.mjs +5 -0
  77. package/dist/{renderer-DqMZiy5N.mjs → renderer-BWlMAacF.mjs} +2 -2
  78. package/dist/{renderer-DqMZiy5N.mjs.map → renderer-BWlMAacF.mjs.map} +1 -1
  79. package/dist/{renderer-DXu0nrzo.d.mts → renderer-BX7jS14r.d.mts} +2 -2
  80. package/dist/{renderer-DXu0nrzo.d.mts.map → renderer-BX7jS14r.d.mts.map} +1 -1
  81. package/dist/{renderer-DPUULdjh.mjs → renderer-BXAgUuAq.mjs} +2 -2
  82. package/dist/{renderer-DPUULdjh.mjs.map → renderer-BXAgUuAq.mjs.map} +1 -1
  83. package/dist/{renderer-Cn34qZC4.mjs → renderer-BZKkT-6Q.mjs} +2 -2
  84. package/dist/{renderer-Cn34qZC4.mjs.map → renderer-BZKkT-6Q.mjs.map} +1 -1
  85. package/dist/{renderer-BcHpcLq3.mjs → renderer-BdbGTz7z.mjs} +3 -3
  86. package/dist/{renderer-BcHpcLq3.mjs.map → renderer-BdbGTz7z.mjs.map} +1 -1
  87. package/dist/{renderer-Dhi0Q1cI.mjs → renderer-BeFiQfzV.mjs} +69 -69
  88. package/dist/{renderer-Dhi0Q1cI.mjs.map → renderer-BeFiQfzV.mjs.map} +1 -1
  89. package/dist/{renderer-kg8-ngnB.mjs → renderer-BeQrWrOa.mjs} +2 -2
  90. package/dist/{renderer-kg8-ngnB.mjs.map → renderer-BeQrWrOa.mjs.map} +1 -1
  91. package/dist/{renderer-Ca-LoeJh.mjs → renderer-BioUC9zE.mjs} +2 -2
  92. package/dist/{renderer-Ca-LoeJh.mjs.map → renderer-BioUC9zE.mjs.map} +1 -1
  93. package/dist/{renderer-wH_l-jMH.mjs → renderer-Bkqg-U2F.mjs} +3 -3
  94. package/dist/{renderer-wH_l-jMH.mjs.map → renderer-Bkqg-U2F.mjs.map} +1 -1
  95. package/dist/{renderer-Sj11W1xq.mjs → renderer-BlVmbzPs.mjs} +2 -2
  96. package/dist/renderer-BnBvSmp_.mjs +5 -0
  97. package/dist/{renderer-Qd-HCwKj.mjs → renderer-Br4UZvfL.mjs} +3 -3
  98. package/dist/{renderer-Qd-HCwKj.mjs.map → renderer-Br4UZvfL.mjs.map} +1 -1
  99. package/dist/{renderer-DX5ZpEBB.mjs → renderer-BrWOcJ9Q.mjs} +3 -3
  100. package/dist/{renderer-DX5ZpEBB.mjs.map → renderer-BrWOcJ9Q.mjs.map} +1 -1
  101. package/dist/renderer-BsDSpTpL.mjs +5 -0
  102. package/dist/renderer-BtW6_gvE.mjs +5 -0
  103. package/dist/renderer-By8U44Rt.mjs +5 -0
  104. package/dist/{renderer-XnWe1hSL.mjs → renderer-C-5RNIeX.mjs} +2 -2
  105. package/dist/{renderer-XnWe1hSL.mjs.map → renderer-C-5RNIeX.mjs.map} +1 -1
  106. package/dist/renderer-C3lDmxuX.mjs +5 -0
  107. package/dist/renderer-C6SZAE_x.mjs +5 -0
  108. package/dist/{renderer-DSM5c7UA.mjs → renderer-C8rxyjaE.mjs} +2 -2
  109. package/dist/{renderer-DSM5c7UA.mjs.map → renderer-C8rxyjaE.mjs.map} +1 -1
  110. package/dist/renderer-CA3IVeZj.mjs +5 -0
  111. package/dist/{renderer-DYT4iPi-.mjs → renderer-CAagaRag.mjs} +2 -2
  112. package/dist/{renderer-DYT4iPi-.mjs.map → renderer-CAagaRag.mjs.map} +1 -1
  113. package/dist/{renderer-CaE0rp9j.mjs → renderer-CCSzKnvs.mjs} +2 -2
  114. package/dist/{renderer-CaE0rp9j.mjs.map → renderer-CCSzKnvs.mjs.map} +1 -1
  115. package/dist/renderer-CFoCH_mO.mjs +5 -0
  116. package/dist/renderer-CLhZqJF8.mjs +6 -0
  117. package/dist/{renderer-Bw5jGUo5.mjs → renderer-COQc1jn6.mjs} +2 -2
  118. package/dist/{renderer-Bw5jGUo5.mjs.map → renderer-COQc1jn6.mjs.map} +1 -1
  119. package/dist/{renderer-DB7PM7nZ.mjs → renderer-CP2FOWyJ.mjs} +3 -3
  120. package/dist/{renderer-DB7PM7nZ.mjs.map → renderer-CP2FOWyJ.mjs.map} +1 -1
  121. package/dist/{renderer-DXsV3mZD.mjs → renderer-CUq2qgyc.mjs} +3 -3
  122. package/dist/{renderer-DXsV3mZD.mjs.map → renderer-CUq2qgyc.mjs.map} +1 -1
  123. package/dist/{renderer-DYfNgEhK.mjs → renderer-CXWAdRqn.mjs} +2 -2
  124. package/dist/{renderer-DYfNgEhK.mjs.map → renderer-CXWAdRqn.mjs.map} +1 -1
  125. package/dist/renderer-CYJXQS8E.mjs +5 -0
  126. package/dist/{renderer-JDLYPnRh.mjs → renderer-CZyJ72JZ.mjs} +2 -2
  127. package/dist/{renderer-JDLYPnRh.mjs.map → renderer-CZyJ72JZ.mjs.map} +1 -1
  128. package/dist/renderer-C_vj6_WJ.mjs +5 -0
  129. package/dist/{renderer-4F4FypvN.mjs → renderer-Ce8VPaog.mjs} +2 -2
  130. package/dist/{renderer-4F4FypvN.mjs.map → renderer-Ce8VPaog.mjs.map} +1 -1
  131. package/dist/{renderer-4a4koLCl.mjs → renderer-CeX7uUXB.mjs} +2 -2
  132. package/dist/{renderer-4a4koLCl.mjs.map → renderer-CeX7uUXB.mjs.map} +1 -1
  133. package/dist/renderer-CeqfC6OR.mjs +5 -0
  134. package/dist/{renderer-NvGahExL.mjs → renderer-Ci9x2WUd.mjs} +3 -3
  135. package/dist/{renderer-NvGahExL.mjs.map → renderer-Ci9x2WUd.mjs.map} +1 -1
  136. package/dist/{renderer-iA7rxZmR.mjs → renderer-CiMIftlS.mjs} +3 -3
  137. package/dist/{renderer-iA7rxZmR.mjs.map → renderer-CiMIftlS.mjs.map} +1 -1
  138. package/dist/{renderer-CpEU-TRR.mjs → renderer-CjklM-KD.mjs} +2 -2
  139. package/dist/{renderer-CpEU-TRR.mjs.map → renderer-CjklM-KD.mjs.map} +1 -1
  140. package/dist/{renderer-CNVzJIBz.mjs → renderer-Cjx3x7xM.mjs} +3 -3
  141. package/dist/{renderer-CNVzJIBz.mjs.map → renderer-Cjx3x7xM.mjs.map} +1 -1
  142. package/dist/renderer-CkZCGMAc.mjs +5 -0
  143. package/dist/renderer-Clxju1r9.mjs +5 -0
  144. package/dist/{renderer-l-K6iZLC.mjs → renderer-CrgfMDbh.mjs} +3 -3
  145. package/dist/{renderer-l-K6iZLC.mjs.map → renderer-CrgfMDbh.mjs.map} +1 -1
  146. package/dist/{renderer-fv9WvK0d.mjs → renderer-CsilJwL-.mjs} +3 -3
  147. package/dist/{renderer-fv9WvK0d.mjs.map → renderer-CsilJwL-.mjs.map} +1 -1
  148. package/dist/{renderer-DBN6SV8L.mjs → renderer-CxEBV-w0.mjs} +2 -2
  149. package/dist/{renderer-DBN6SV8L.mjs.map → renderer-CxEBV-w0.mjs.map} +1 -1
  150. package/dist/{renderer-Bw3tlr9I.mjs → renderer-CyWRvKUI.mjs} +2 -2
  151. package/dist/{renderer-Bw3tlr9I.mjs.map → renderer-CyWRvKUI.mjs.map} +1 -1
  152. package/dist/renderer-CyWtKBF7.mjs +5 -0
  153. package/dist/{renderer-BlUfAZyK.mjs → renderer-D-17HVPb.mjs} +3 -3
  154. package/dist/{renderer-BlUfAZyK.mjs.map → renderer-D-17HVPb.mjs.map} +1 -1
  155. package/dist/renderer-D27STGoB.mjs +5 -0
  156. package/dist/{renderer-BUV6IH0o.mjs → renderer-D2JOseb1.mjs} +2 -2
  157. package/dist/{renderer-BUV6IH0o.mjs.map → renderer-D2JOseb1.mjs.map} +1 -1
  158. package/dist/{renderer-BYIa_hnS.mjs → renderer-D3K9FEQk.mjs} +3 -3
  159. package/dist/{renderer-BYIa_hnS.mjs.map → renderer-D3K9FEQk.mjs.map} +1 -1
  160. package/dist/{renderer-bE6yZ_Ef.mjs → renderer-D41gHat4.mjs} +3 -3
  161. package/dist/{renderer-bE6yZ_Ef.mjs.map → renderer-D41gHat4.mjs.map} +1 -1
  162. package/dist/{renderer-C7SYbHgB.mjs → renderer-D6X9vWkN.mjs} +2 -2
  163. package/dist/{renderer-C7SYbHgB.mjs.map → renderer-D6X9vWkN.mjs.map} +1 -1
  164. package/dist/renderer-D78Aq9YK.mjs +5 -0
  165. package/dist/{renderer-ClxmV_id.mjs → renderer-D7Cu9OZx.mjs} +2 -2
  166. package/dist/{renderer-ClxmV_id.mjs.map → renderer-D7Cu9OZx.mjs.map} +1 -1
  167. package/dist/{renderer-DO15Nj-w.mjs → renderer-D7Kk7VxM.mjs} +3 -3
  168. package/dist/{renderer-DO15Nj-w.mjs.map → renderer-D7Kk7VxM.mjs.map} +1 -1
  169. package/dist/{renderer-DZKZup7n.mjs → renderer-D8CMakyz.mjs} +3 -3
  170. package/dist/{renderer-DZKZup7n.mjs.map → renderer-D8CMakyz.mjs.map} +1 -1
  171. package/dist/{renderer-DbO4xZBb.mjs → renderer-DEcbSNQd.mjs} +3 -3
  172. package/dist/{renderer-DbO4xZBb.mjs.map → renderer-DEcbSNQd.mjs.map} +1 -1
  173. package/dist/{renderer-DjWBBISJ.mjs → renderer-DGPaKIFf.mjs} +2 -2
  174. package/dist/renderer-DHEffABL.mjs +5 -0
  175. package/dist/{renderer-CTr_Zi08.mjs → renderer-DIPyUVX2.mjs} +3 -3
  176. package/dist/{renderer-CTr_Zi08.mjs.map → renderer-DIPyUVX2.mjs.map} +1 -1
  177. package/dist/{renderer-D_Mf-Zft.d.mts → renderer-DKgPVOLL.d.mts} +2 -2
  178. package/dist/{renderer-D_Mf-Zft.d.mts.map → renderer-DKgPVOLL.d.mts.map} +1 -1
  179. package/dist/{renderer-BrXkb-9N.mjs → renderer-DPn2DhMU.mjs} +2 -2
  180. package/dist/{renderer-BrXkb-9N.mjs.map → renderer-DPn2DhMU.mjs.map} +1 -1
  181. package/dist/{renderer-CyELq6P6.mjs → renderer-DRGa6tlX.mjs} +2 -2
  182. package/dist/{renderer-CyELq6P6.mjs.map → renderer-DRGa6tlX.mjs.map} +1 -1
  183. package/dist/{renderer-Crl8q_vD.mjs → renderer-DSpTGqUU.mjs} +3 -3
  184. package/dist/{renderer-Crl8q_vD.mjs.map → renderer-DSpTGqUU.mjs.map} +1 -1
  185. package/dist/{renderer-vVKNp3ri.mjs → renderer-DTgO5LPf.mjs} +3 -3
  186. package/dist/{renderer-vVKNp3ri.mjs.map → renderer-DTgO5LPf.mjs.map} +1 -1
  187. package/dist/renderer-DUuNCgzW.mjs +5 -0
  188. package/dist/renderer-DVD5pzRq.mjs +5 -0
  189. package/dist/{renderer-C55eLbl1.mjs → renderer-DgLt0TPo.mjs} +2 -2
  190. package/dist/{renderer-C55eLbl1.mjs.map → renderer-DgLt0TPo.mjs.map} +1 -1
  191. package/dist/{renderer-BHwbnT6S.mjs → renderer-Dk45W8Zd.mjs} +3 -3
  192. package/dist/{renderer-BHwbnT6S.mjs.map → renderer-Dk45W8Zd.mjs.map} +1 -1
  193. package/dist/{renderer-Dv5yE4LE.mjs → renderer-DlZwbO-A.mjs} +2 -2
  194. package/dist/{renderer-Dv5yE4LE.mjs.map → renderer-DlZwbO-A.mjs.map} +1 -1
  195. package/dist/{renderer-CaRPsrbX.mjs → renderer-DnPzvIHK.mjs} +2 -2
  196. package/dist/{renderer-CCnrG0Pd.mjs → renderer-DoRazdp_.mjs} +2 -2
  197. package/dist/{renderer-CCnrG0Pd.mjs.map → renderer-DoRazdp_.mjs.map} +1 -1
  198. package/dist/{renderer-CeIXVu9F.mjs → renderer-DsAoxQ8O.mjs} +2 -2
  199. package/dist/{renderer-CeIXVu9F.mjs.map → renderer-DsAoxQ8O.mjs.map} +1 -1
  200. package/dist/renderer-Dsp6xDw5.mjs +5 -0
  201. package/dist/renderer-DuC-BFXR.mjs +5 -0
  202. package/dist/renderer-DuWs_Wsv.mjs +5 -0
  203. package/dist/{renderer-8pS82_mX.mjs → renderer-DveQQCi8.mjs} +3 -3
  204. package/dist/{renderer-8pS82_mX.mjs.map → renderer-DveQQCi8.mjs.map} +1 -1
  205. package/dist/{renderer-Dypn26aP.mjs → renderer-DxHICEk3.mjs} +3 -3
  206. package/dist/{renderer-Dypn26aP.mjs.map → renderer-DxHICEk3.mjs.map} +1 -1
  207. package/dist/{renderer-DfTnsfy9.mjs → renderer-DxbFjINv.mjs} +3 -3
  208. package/dist/{renderer-DfTnsfy9.mjs.map → renderer-DxbFjINv.mjs.map} +1 -1
  209. package/dist/{renderer-jvgqy4Td.mjs → renderer-Gw1ICOJ3.mjs} +3 -3
  210. package/dist/{renderer-jvgqy4Td.mjs.map → renderer-Gw1ICOJ3.mjs.map} +1 -1
  211. package/dist/{renderer-j-3XB8YI.mjs → renderer-LY2MiIj0.mjs} +3 -3
  212. package/dist/{renderer-j-3XB8YI.mjs.map → renderer-LY2MiIj0.mjs.map} +1 -1
  213. package/dist/{renderer-BLrhcSex.mjs → renderer-LwrcnEtI.mjs} +3 -3
  214. package/dist/{renderer-BLrhcSex.mjs.map → renderer-LwrcnEtI.mjs.map} +1 -1
  215. package/dist/renderer-OSgsiIrW.mjs +5 -0
  216. package/dist/renderer-OZaMFYtZ.mjs +5 -0
  217. package/dist/renderer-T79TmHET.mjs +5 -0
  218. package/dist/{renderer-7Tx-L9Vf.mjs → renderer-U-12BOhe.mjs} +2 -2
  219. package/dist/{renderer-7Tx-L9Vf.mjs.map → renderer-U-12BOhe.mjs.map} +1 -1
  220. package/dist/renderer-UhsC9oTU.mjs +5 -0
  221. package/dist/renderer-WYZV1jWf.mjs +5 -0
  222. package/dist/renderer-Y7evDjHH.mjs +5 -0
  223. package/dist/{renderer-CQkZUsvc.mjs → renderer-cg06hb82.mjs} +3 -3
  224. package/dist/{renderer-CQkZUsvc.mjs.map → renderer-cg06hb82.mjs.map} +1 -1
  225. package/dist/{renderer-DRLtfxdW.mjs → renderer-eAVNsuX8.mjs} +95 -16
  226. package/dist/renderer-eAVNsuX8.mjs.map +1 -0
  227. package/dist/renderer-mcePkmUe.mjs +5 -0
  228. package/dist/{renderer-CT_aJBk2.mjs → renderer-uorPCWdC.mjs} +3 -3
  229. package/dist/{renderer-CT_aJBk2.mjs.map → renderer-uorPCWdC.mjs.map} +1 -1
  230. package/dist/{renderer-BMnX_-PZ.mjs → renderer-xLQ_nkmy.mjs} +3 -3
  231. package/dist/{renderer-BMnX_-PZ.mjs.map → renderer-xLQ_nkmy.mjs.map} +1 -1
  232. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs → renderers-CP8CFWDs-ywy4xljX.mjs} +2 -2
  233. package/dist/{renderers-CP8CFWDs-fYqxoIKK.mjs.map → renderers-CP8CFWDs-ywy4xljX.mjs.map} +1 -1
  234. package/dist/signals/index.d.mts +5 -5
  235. package/dist/signals/index.mjs +4 -4
  236. package/dist/{src-DggYlKaX.mjs → src-B0KFNjj4.mjs} +289 -59
  237. package/dist/src-B0KFNjj4.mjs.map +1 -0
  238. package/package.json +58 -58
  239. package/dist/dist-CnFcSau0.mjs.map +0 -1
  240. package/dist/index-Ced1Ry4S.d.mts.map +0 -1
  241. package/dist/index-Ds9_v60R.d.mts.map +0 -1
  242. package/dist/preview-engine/chunk-3OXRGTQ2.mjs +0 -2390
  243. package/dist/preview-engine/chunk-7EYVBRN3.mjs +0 -480
  244. package/dist/preview-engine/chunk-7WBDEZ2A.mjs +0 -1974
  245. package/dist/preview-engine/chunk-HPP52AQI.mjs +0 -4
  246. package/dist/preview-engine/renderers-CCOEGTZJ.mjs +0 -228
  247. package/dist/program-CqQDWfSV.mjs.map +0 -1
  248. package/dist/renderer-68XHoE2b.mjs +0 -5
  249. package/dist/renderer-AqUForA-.mjs +0 -5
  250. package/dist/renderer-B0J-uGBG.mjs +0 -5
  251. package/dist/renderer-BF2R0rwb.mjs +0 -5
  252. package/dist/renderer-BLrO9lqK.mjs +0 -5
  253. package/dist/renderer-BMy8jXhL.mjs +0 -5
  254. package/dist/renderer-BUxENp9L.mjs +0 -5
  255. package/dist/renderer-C-ebryrM.mjs +0 -5
  256. package/dist/renderer-C8Gbs3kr.mjs +0 -5
  257. package/dist/renderer-CFZvMv2-.mjs +0 -5
  258. package/dist/renderer-CGXW7mOs.mjs +0 -5
  259. package/dist/renderer-CNq6OGbb.mjs +0 -5
  260. package/dist/renderer-CO-Ddz6-.mjs +0 -5
  261. package/dist/renderer-CRdxAsP7.mjs +0 -5
  262. package/dist/renderer-CZLo0ALi.mjs +0 -5
  263. package/dist/renderer-CdvVUkhR.mjs +0 -5
  264. package/dist/renderer-Cjg7kmTq.mjs +0 -5
  265. package/dist/renderer-CxKymhVa.mjs +0 -5
  266. package/dist/renderer-Cxlpu3pN.mjs +0 -5
  267. package/dist/renderer-Cz6qZ2Ii.mjs +0 -5
  268. package/dist/renderer-DDGvF2YA.mjs +0 -5
  269. package/dist/renderer-DFxtOKpi.mjs +0 -5
  270. package/dist/renderer-DGBNjTsB.mjs +0 -6
  271. package/dist/renderer-DRLtfxdW.mjs.map +0 -1
  272. package/dist/renderer-DUFcdZmw.mjs +0 -5
  273. package/dist/renderer-DUMu6EOH.mjs +0 -5
  274. package/dist/renderer-DdULrvJo.mjs +0 -5
  275. package/dist/renderer-DoaOOP6_.mjs +0 -5
  276. package/dist/renderer-DqmZqV-a.mjs +0 -5
  277. package/dist/renderer-LxTQ2E-G.mjs +0 -5
  278. package/dist/renderer-SpU-RddZ.mjs +0 -5
  279. package/dist/renderer-W6ahCM9z.mjs +0 -5
  280. package/dist/renderer-gGqtzw-S.mjs +0 -5
  281. package/dist/renderer-l0Wn1AoV.mjs +0 -5
  282. package/dist/renderer-rpXHvMZG.mjs +0 -5
  283. package/dist/renderer-twdsKOiz.mjs +0 -5
  284. package/dist/renderer-uJz-eIqO.mjs +0 -5
  285. package/dist/src-DggYlKaX.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { Uo as VirtualMediaData } from "./index-Ced1Ry4S.mjs";
2
- import { n as NodeRendererPlugin } from "./renderer-DXu0nrzo.mjs";
1
+ import { $o as VirtualMediaData } from "./index-D5UDyVMb.mjs";
2
+ import { n as NodeRendererPlugin } from "./renderer-BX7jS14r.mjs";
3
3
 
4
4
  //#region ../compositions/dist/index.d.mts
5
5
 
@@ -120,4 +120,4 @@ interface EncodeWavOptions {
120
120
  declare function encodeStereoWav(channels: [Float32Array, Float32Array], options?: EncodeWavOptions): Buffer;
121
121
  //#endregion
122
122
  export { SfxTrigger as a, softLimit as c, _default$2 as d, _default$3 as f, mixAudioTracks as g, _default$6 as h, SfxRenderContext as i, _default as l, _default$5 as m, encodeStereoWav as n, mixSfxInto as o, _default$4 as p, RenderedSfx as r, renderSfx as s, EncodeWavOptions as t, _default$1 as u };
123
- //# sourceMappingURL=index-BukqOGDa.d.mts.map
123
+ //# sourceMappingURL=index-CFoAmh7q.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BukqOGDa.d.mts","names":["a","isStaticVisualMedia","c","RenderParams","i","calculateLayerTransform","l","computeRenderParams","n","framesToSeconds","o","resolveLayerDuration","r","secondsToFrames","s","CropRegion","t","formatTimecode","VirtualMediaData","GPUCommandEncoder","GPUTexture","GPUTextureView","NodeRenderProps","RenderContextValue","drawCompositionTree","Promise","CompositionStateStore","compositionStateStore","SceneProps","AudioClip","decodeAudioSource","Float32Array","AudioMixProgress","MixAudioOptions","mixAudioTracks","GPUDevice","preflightMediaTime","NormalizationContext","normalizeTimeline","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../compositions/dist/index.d.mts","../../../nodes/node-audio-compressor/dist/renderer.d.mts","../../../nodes/node-audio-delay/dist/renderer.d.mts","../../../nodes/node-audio-fade/dist/renderer.d.mts","../../../nodes/node-audio-noise-gate/dist/renderer.d.mts","../../../nodes/node-audio-parametric-eq/dist/renderer.d.mts","../../../nodes/node-audio-reverb/dist/renderer.d.mts","../../../nodes/node-stereo-panning/dist/renderer.d.mts","../src/audio/synth/sfx.ts","../src/audio/synth/wav-encoder.ts"],"sourcesContent":["import { a as isStaticVisualMedia, c as RenderParams, i as calculateLayerTransform, l as computeRenderParams, n as framesToSeconds, o as resolveLayerDuration, r as secondsToFrames, s as CropRegion, t as formatTimecode } from \"./timing-CluwdKGr.mjs\";\nimport { VirtualMediaData } from \"@framefields/core\";\nimport { GPUCommandEncoder, GPUTexture, GPUTextureView, NodeRenderProps } from \"@framefields/node-sdk\";\nimport { RenderContextValue } from \"@framefields/webgpu-renderers\";\n\n//#region src/compositions/canvas-composition.d.ts\ndeclare function drawCompositionTree(ctx: RenderContextValue, encoder: GPUCommandEncoder, targetView: GPUTextureView, targetTexture: GPUTexture, targetWidth: number, targetHeight: number, virtualMedia: VirtualMediaData, props: NodeRenderProps, inheritedSeekOffset?: number, inheritedClockOffset?: number): Promise<void>;\n//#endregion\n//#region src/compositions/composition-state.d.ts\ndeclare class CompositionStateStore {\n private states;\n private listeners;\n setState(key: string, frame: number, fps: number, isPlaying?: boolean): void;\n getState(key: string): {\n frame: number;\n fps: number;\n isPlaying: boolean;\n };\n subscribe(key: string, listener: () => void): () => void;\n clearKey(key: string): void;\n private notify;\n}\ndeclare const compositionStateStore: CompositionStateStore;\ninterface SceneProps {\n viewportWidth: number;\n viewportHeight: number;\n containerWidth?: number;\n containerHeight?: number;\n virtualMedia?: VirtualMediaData;\n backgroundColor?: string;\n type?: \"Video\" | \"Audio\" | \"Image\";\n volume?: number;\n renderId?: string;\n frame?: number;\n fps?: number;\n [key: string]: unknown;\n}\n//#endregion\n//#region src/utils/audio-extractor.d.ts\ninterface AudioClip {\n sourceUrl: string;\n destStartFrame: number;\n trimStartSec: number;\n durationFrames: number;\n speed: number;\n volume: number;\n}\n/**\n * Decodes all audio samples from a given source URL into raw Float32 mono/stereo channel buffers.\n */\ndeclare function decodeAudioSource(url: string): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n} | null>;\n/** Progress reported by `mixAudioTracks` as each audio or video clip is mixed. */\ninterface AudioMixProgress {\n /** Clips mixed so far. */\n done: number;\n /** Audio and video clips in the tree; muted or empty ones may be skipped. */\n total: number;\n /** File name of the clip just mixed (no directory or query string). */\n source?: string;\n}\ninterface MixAudioOptions {\n onProgress?: (progress: AudioMixProgress) => void;\n}\n/**\n * Recursively parses the VirtualMediaData tree and mixes all active audio tracks\n * into a single unified stereo PCM stream (Float32Array channels).\n */\ndeclare function mixAudioTracks(virtualMedia: VirtualMediaData, fps: number, targetSampleRate?: number, device?: GPUDevice, renderId?: string, options?: MixAudioOptions): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n}>;\n//#endregion\n//#region src/utils/media-time-preflight.d.ts\n/** Verify mapped source intervals before decoding or mixing. */\ndeclare function preflightMediaTime(root: VirtualMediaData, fps: number): Promise<void>;\n//#endregion\n//#region src/utils/normalization.d.ts\n/**\n * NormalizationContext carries the accumulated offsets and limits\n * as we traverse down the virtual media tree.\n */\ninterface NormalizationContext {\n timeOffsetSec: number;\n durationLimitMs?: number;\n}\n/**\n * normalizeTimeline recurses through the virtual media tree and \"absorbs\"\n * generic timeline-shifting operations into standard properties\n * of their children.\n */\ndeclare function normalizeTimeline(vv: VirtualMediaData, fps: number, context?: NormalizationContext): VirtualMediaData;\n//#endregion\nexport { AudioClip, AudioMixProgress, CropRegion, MixAudioOptions, RenderParams, SceneProps, calculateLayerTransform, compositionStateStore, computeRenderParams, decodeAudioSource, drawCompositionTree, formatTimecode, framesToSeconds, isStaticVisualMedia, mixAudioTracks, normalizeTimeline, preflightMediaTime, resolveLayerDuration, secondsToFrames };\n//# sourceMappingURL=index.d.mts.map","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","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","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","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","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","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","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":";;;;;AQ6PA;URtMUgC,gBAAAA;;;ESlDV;EAOA,KAAgB,EAAA,MAAA;EACJ;EAAc,MAAA,CAAA,EAAA,MAAA;;UTkDhBC,eAAAA,CShDP;EAAM,UAAA,CAAA,EAAA,CAAA,QAAA,ETiDiBD,gBSjDjB,EAAA,GAAA,IAAA;;;;;;iBTuDQE,cAAAA,eAA6BhB,mEAAmEiB,wCAAwCF,kBAAkBR;YAC/JM;;;;;;;;;cCpEES,YAAUE,SAASH;AD+CuB;;;;cE/C1CM,YAAUE,SAASH;AF+CuB;;;;cG/C1CM,YAAUE,SAASH;AH+CuB;;;;cI/C1CM,YAAUE,SAASH;AJ+CuB;;;;cK/C1CM,YAAUE,SAASH;AL+CuB;;;;cM/C1CM,YAAUE,SAASH;AN+CuB;;;;cO/C1CM,UAAUE,SAASH;AP+CuB;;;;;;;;AAAA;AAK9B;AASgB;;;AAM+GpC,UQ5DxI,UAAA,CR4DwIA;EAC7IF,IAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,QAAAA,GAAAA,aAAAA,GAAAA,QAAAA;EAD+JN;EAAO,KAAA,EAAA,MAAA;;;;ACnEpKe,KOeF,YAAA,GPfwE,COexD,YPfKD,EOeS,YPflBG,CAAAA;UOiBP,WAAA;;;ENjBHG,QAAAA,EMoBH,YNpByE;;UMuBnE,gBAAA;;ELvBHK,aAAsE,EAAA,MAAA;;;;ACHF;;;;ACAA;iBGyLlE,SAAA,UACN,iBACJ,mBACH;;iBAwCa,UAAA,SACP,gCACU;AFtO+D;;;;ACGpEoB,iBC0PE,SAAA,CD1PiBD,MAAAA,EC2PxB,YD3PeG,EAAQ,IAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;;;APoDtBxC,USlDO,gBAAA,CTkDS;EAQhBC,UAAAA,CAAAA,EAAAA,MAAe;AACiB;;;;AAO9BF,iBS3DI,eAAA,CT2DJA,QAAAA,EAAAA,CS1DA,YT0DAA,ES1Dc,YT0DdA,CAAAA,EAAAA,OAAAA,CAAAA,ESzDF,gBTyDEA,CAAAA,ESxDT,MTwDSA"}
1
+ {"version":3,"file":"index-CFoAmh7q.d.mts","names":["a","isStaticVisualMedia","c","RenderParams","i","calculateLayerTransform","l","computeRenderParams","n","framesToSeconds","o","resolveLayerDuration","r","secondsToFrames","s","CropRegion","t","formatTimecode","VirtualMediaData","GPUCommandEncoder","GPUTexture","GPUTextureView","NodeRenderProps","RenderContextValue","drawCompositionTree","Promise","CompositionStateStore","compositionStateStore","SceneProps","AudioClip","decodeAudioSource","Float32Array","AudioMixProgress","MixAudioOptions","mixAudioTracks","GPUDevice","preflightMediaTime","NormalizationContext","normalizeTimeline","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default","_framefields_node_sdk_renderer0","_default","NodeRendererPlugin","Readonly","default"],"sources":["../../compositions/dist/index.d.mts","../../../nodes/node-audio-compressor/dist/renderer.d.mts","../../../nodes/node-audio-delay/dist/renderer.d.mts","../../../nodes/node-audio-fade/dist/renderer.d.mts","../../../nodes/node-audio-noise-gate/dist/renderer.d.mts","../../../nodes/node-audio-parametric-eq/dist/renderer.d.mts","../../../nodes/node-audio-reverb/dist/renderer.d.mts","../../../nodes/node-stereo-panning/dist/renderer.d.mts","../src/audio/synth/sfx.ts","../src/audio/synth/wav-encoder.ts"],"sourcesContent":["import { a as isStaticVisualMedia, c as RenderParams, i as calculateLayerTransform, l as computeRenderParams, n as framesToSeconds, o as resolveLayerDuration, r as secondsToFrames, s as CropRegion, t as formatTimecode } from \"./timing-CluwdKGr.mjs\";\nimport { VirtualMediaData } from \"@framefields/core\";\nimport { GPUCommandEncoder, GPUTexture, GPUTextureView, NodeRenderProps } from \"@framefields/node-sdk\";\nimport { RenderContextValue } from \"@framefields/webgpu-renderers\";\n\n//#region src/compositions/canvas-composition.d.ts\ndeclare function drawCompositionTree(ctx: RenderContextValue, encoder: GPUCommandEncoder, targetView: GPUTextureView, targetTexture: GPUTexture, targetWidth: number, targetHeight: number, virtualMedia: VirtualMediaData, props: NodeRenderProps, inheritedSeekOffset?: number, inheritedClockOffset?: number): Promise<void>;\n//#endregion\n//#region src/compositions/composition-state.d.ts\ndeclare class CompositionStateStore {\n private states;\n private listeners;\n setState(key: string, frame: number, fps: number, isPlaying?: boolean): void;\n getState(key: string): {\n frame: number;\n fps: number;\n isPlaying: boolean;\n };\n subscribe(key: string, listener: () => void): () => void;\n clearKey(key: string): void;\n private notify;\n}\ndeclare const compositionStateStore: CompositionStateStore;\ninterface SceneProps {\n viewportWidth: number;\n viewportHeight: number;\n containerWidth?: number;\n containerHeight?: number;\n virtualMedia?: VirtualMediaData;\n backgroundColor?: string;\n type?: \"Video\" | \"Audio\" | \"Image\";\n volume?: number;\n renderId?: string;\n frame?: number;\n fps?: number;\n [key: string]: unknown;\n}\n//#endregion\n//#region src/utils/audio-extractor.d.ts\ninterface AudioClip {\n sourceUrl: string;\n destStartFrame: number;\n trimStartSec: number;\n durationFrames: number;\n speed: number;\n volume: number;\n}\n/**\n * Decodes all audio samples from a given source URL into raw Float32 mono/stereo channel buffers.\n */\ndeclare function decodeAudioSource(url: string): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n} | null>;\n/** Progress reported by `mixAudioTracks` as each audio or video clip is mixed. */\ninterface AudioMixProgress {\n /** Clips mixed so far. */\n done: number;\n /** Audio and video clips in the tree; muted or empty ones may be skipped. */\n total: number;\n /** File name of the clip just mixed (no directory or query string). */\n source?: string;\n}\ninterface MixAudioOptions {\n onProgress?: (progress: AudioMixProgress) => void;\n}\n/**\n * Recursively parses the VirtualMediaData tree and mixes all active audio tracks\n * into a single unified stereo PCM stream (Float32Array channels).\n */\ndeclare function mixAudioTracks(virtualMedia: VirtualMediaData, fps: number, targetSampleRate?: number, device?: GPUDevice, renderId?: string, options?: MixAudioOptions): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n}>;\n//#endregion\n//#region src/utils/media-time-preflight.d.ts\n/** Verify mapped source intervals before decoding or mixing. */\ndeclare function preflightMediaTime(root: VirtualMediaData, fps: number): Promise<void>;\n//#endregion\n//#region src/utils/normalization.d.ts\n/**\n * NormalizationContext carries the accumulated offsets and limits\n * as we traverse down the virtual media tree.\n */\ninterface NormalizationContext {\n timeOffsetSec: number;\n durationLimitMs?: number;\n}\n/**\n * normalizeTimeline recurses through the virtual media tree and \"absorbs\"\n * generic timeline-shifting operations into standard properties\n * of their children.\n */\ndeclare function normalizeTimeline(vv: VirtualMediaData, fps: number, context?: NormalizationContext): VirtualMediaData;\n//#endregion\nexport { AudioClip, AudioMixProgress, CropRegion, MixAudioOptions, RenderParams, SceneProps, calculateLayerTransform, compositionStateStore, computeRenderParams, decodeAudioSource, drawCompositionTree, formatTimecode, framesToSeconds, isStaticVisualMedia, mixAudioTracks, normalizeTimeline, preflightMediaTime, resolveLayerDuration, secondsToFrames };\n//# sourceMappingURL=index.d.mts.map","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","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","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","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","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","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","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":";;;;;AQ6PA;URtMUgC,gBAAAA;;;ESlDV;EAOA,KAAgB,EAAA,MAAA;EACJ;EAAc,MAAA,CAAA,EAAA,MAAA;;UTkDhBC,eAAAA,CShDP;EAAM,UAAA,CAAA,EAAA,CAAA,QAAA,ETiDiBD,gBSjDjB,EAAA,GAAA,IAAA;;;;;;iBTuDQE,cAAAA,eAA6BhB,mEAAmEiB,wCAAwCF,kBAAkBR;YAC/JM;;;;;;;;;cCpEES,YAAUE,SAASH;AD+CuB;;;;cE/C1CM,YAAUE,SAASH;AF+CuB;;;;cG/C1CM,YAAUE,SAASH;AH+CuB;;;;cI/C1CM,YAAUE,SAASH;AJ+CuB;;;;cK/C1CM,YAAUE,SAASH;AL+CuB;;;;cM/C1CM,YAAUE,SAASH;AN+CuB;;;;cO/C1CM,UAAUE,SAASH;AP+CuB;;;;;;;;AAAA;AAK9B;AASgB;;;AAM+GpC,UQ5DxI,UAAA,CR4DwIA;EAC7IF,IAAAA,EAAAA,QAAAA,GAAAA,OAAAA,GAAAA,QAAAA,GAAAA,aAAAA,GAAAA,QAAAA;EAD+JN;EAAO,KAAA,EAAA,MAAA;;;;ACnEpKe,KOeF,YAAA,GPfwE,COexD,YPfKD,EOeS,YPflBG,CAAAA;UOiBP,WAAA;;;ENjBHG,QAAAA,EMoBH,YNpByE;;UMuBnE,gBAAA;;ELvBHK,aAAsE,EAAA,MAAA;;;;ACHF;;;;ACAA;iBGyLlE,SAAA,UACN,iBACJ,mBACH;;iBAwCa,UAAA,SACP,gCACU;AFtO+D;;;;ACGpEoB,iBC0PE,SAAA,CD1PiBD,MAAAA,EC2PxB,YD3PeG,EAAQ,IAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;;;APoDtBxC,USlDO,gBAAA,CTkDS;EAQhBC,UAAAA,CAAAA,EAAAA,MAAe;AACiB;;;;AAO9BF,iBS3DI,eAAA,CT2DJA,QAAAA,EAAAA,CS1DA,YT0DAA,ES1Dc,YT0DdA,CAAAA,EAAAA,OAAAA,CAAAA,ESzDF,gBTyDEA,CAAAA,ESxDT,MTwDSA"}
@@ -1,4 +1,4 @@
1
- import { Uo as VirtualMediaData } from "./index-Ced1Ry4S.mjs";
1
+ import { $o as VirtualMediaData } from "./index-D5UDyVMb.mjs";
2
2
  import { VideoSampleSource } from "mediabunny";
3
3
  import pino from "pino";
4
4
  import { VideoFrame } from "@napi-rs/webcodecs";
@@ -359,4 +359,4 @@ type FrameGridRenderable = {
359
359
  declare function renderFrameGrid(target: FrameGridRenderable, options?: FrameGridOptions): Promise<Buffer>;
360
360
  //#endregion
361
361
  export { renderSemaphore as _, renderFrameGrid as a, HeadlessMediaRenderer as c, QaSegment as d, RenderProgress as f, formatQaReport as g, VideoQaStats as h, computeGridLayout as i, HeadlessWebGPURenderer as l, VideoQaReport as m, FrameGridRenderable as n, resolveSamplePoints as o, VideoQaOptions as p, FrameSamplePoint as r, AudioQaStats as s, FrameGridOptions as t, QaIssue as u, resetRenderCaches as v };
362
- //# sourceMappingURL=index-CPeaSZoz.d.mts.map
362
+ //# sourceMappingURL=index-CJL0JAU8.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CPeaSZoz.d.mts","names":["pino","DestinationStream","VideoColorPrimaries","VideoFrame","VideoMatrixCoefficients","VideoTransferCharacteristics","RenderDiagnostic","VirtualMediaData","VideoSampleSource","preloadFonts","GPUDevice","Promise","StagingSlotStatus","VideoColorSpaceConfig","DmaStagingRingOptions","GPUTextureFormat","StagingSlotInfo","DmaStagingRing","GPUCommandEncoder","GPUTexture","Uint8Array","findNodesDir","discoverAndRegisterNodeRenderers","RenderPhase","RenderProgress","VideoQaOptions","QaSegment","QaIssue","VideoQaStats","AudioQaStats","VideoQaReport","FrameInspector","analyzeAudio","Float32Array","integratedLoudness","buildQaReport","formatQaReport","RenderSemaphore","renderSemaphore","HeadlessWebGPURenderer","Buffer","AbortSignal","HeadlessMediaRenderer","resetRenderCaches","resolveLogFormat","Record","textLogStream","rendererLogger","Logger","NODE_KINDS","NodeKind","NodeRendererExports","NodeManifest","NodeManifestError","Error","parseNodeManifest","loadNodeManifests","ZeroCopyWebCodecsPipelineOptions","WebCodecsPipelineStats","ZeroCopyWebCodecsPipeline"],"sources":["../../renderer/dist/index.d.mts","../src/renderer/framegrid.ts"],"sourcesContent":["import pino, { DestinationStream } from \"pino\";\nimport { VideoColorPrimaries, VideoFrame, VideoMatrixCoefficients, VideoTransferCharacteristics } from \"@napi-rs/webcodecs\";\nimport { RenderDiagnostic, VirtualMediaData } from \"@framefields/core\";\nimport { VideoSampleSource } from \"mediabunny\";\n\n//#region src/asset-preloader.d.ts\n\n/**\n * Preloads only the fonts (and emoji) a VirtualMediaData tree's text uses, so\n * typography renders correctly on Node.js without loading its media. Shared\n * with the browser preview; emoji need a font set with\n * `FontManager.registerEmojiFont()`.\n */\ndeclare function preloadFonts(media: VirtualMediaData, device?: GPUDevice | null): Promise<void>;\n//#endregion\n//#region src/dma-staging-ring.d.ts\ntype StagingSlotStatus = \"idle\" | \"rendering\" | \"mapping\" | \"mapped\";\ninterface VideoColorSpaceConfig {\n readonly primaries?: VideoColorPrimaries;\n readonly transfer?: VideoTransferCharacteristics;\n readonly matrix?: VideoMatrixCoefficients;\n readonly fullRange?: boolean;\n}\ninterface DmaStagingRingOptions {\n readonly width: number;\n readonly height: number;\n readonly capacity?: number;\n readonly format?: GPUTextureFormat;\n}\ninterface StagingSlotInfo {\n readonly index: number;\n readonly status: StagingSlotStatus;\n readonly inFlightFrame: number | null;\n}\n/**\n * Pipelined Asynchronous DMA Staging Ring for WebGPU.\n *\n * Implements double-buffered (or N-buffered) GPU staging buffers to overlap\n * GPU render passes with asynchronous DMA host transfers and WebCodecs hardware encoding.\n * Eliminates GPU stalls by allowing Frame i+1 to execute on the GPU while Frame i\n * is asynchronously mapped and consumed by the hardware video encoder.\n */\ndeclare class DmaStagingRing {\n readonly width: number;\n readonly height: number;\n readonly capacity: number;\n readonly bytesPerRow: number;\n readonly unpaddedBytesPerRow: number;\n readonly bufferSize: number;\n readonly format: GPUTextureFormat;\n readonly device: GPUDevice;\n private readonly slots;\n private isDestroyed;\n constructor(device: GPUDevice, options: DmaStagingRingOptions);\n /**\n * Prepares the staging buffer slot for writing by ensuring any prior mapping\n * from a previous cycle has been completed and unmapped.\n */\n prepareSlot(frameIndex: number): Promise<void>;\n /**\n * Records a GPU-to-buffer DMA copy command into the provided command encoder.\n */\n stageTexture(encoder: GPUCommandEncoder, texture: GPUTexture, frameIndex: number): void;\n /**\n * Initiates asynchronous DMA mapping on the slot for the specified frame.\n * Must be called immediately after submitting the command encoder to the device queue.\n */\n scheduleMap(frameIndex: number): Promise<void>;\n /**\n * Awaits asynchronous mapping and extracts pixels into a tightly packed Uint8Array.\n * The slot remains in the \"mapped\" state until releaseFrame() is called.\n */\n readFramePixels(frameIndex: number): Promise<Uint8Array>;\n /**\n * Awaits asynchronous mapping, extracts pixels, and immediately unmaps the staging buffer,\n * returning the slot to \"idle\" state so it can be reused immediately.\n */\n readAndReleaseFrame(frameIndex: number): Promise<Uint8Array>;\n /**\n * Directly reads the mapped staging buffer into a WebCodecs VideoFrame,\n * bypassing redundant intermediate JS allocations when row pitches align,\n * and immediately unmaps the buffer.\n */\n readFrameToVideoFrame(frameIndex: number, timestampUs: number, colorSpace?: VideoColorSpaceConfig, /** Sees the tightly packed RGBA pixels while they are mapped; must not keep them. */\n inspect?: (rgba: Uint8Array) => void): Promise<VideoFrame>;\n /**\n * Unmaps the staging buffer for the specified frame and marks the slot idle.\n */\n releaseFrame(frameIndex: number): void;\n /**\n * Returns current status info for each slot in the ring.\n */\n getSlotInfos(): readonly StagingSlotInfo[];\n /**\n * Destroys all staging buffers and releases resources.\n */\n destroy(): void;\n private checkDestroyed;\n}\n//#endregion\n//#region src/dynamic-node-discovery.d.ts\n/** Locates the workspace `nodes/` directory by climbing up from this file. */\ndeclare function findNodesDir(startDir?: string): string | null;\n/**\n * Registers the built-in node renderers, then any extra nodes found in the\n * directory named by `FRAMEFIELDS_NODES_DIR` (local node development). A node in\n * that directory overrides the built-in renderer for the same op.\n */\ndeclare function discoverAndRegisterNodeRenderers(): Promise<void>;\n//#endregion\n//#region src/render-reporter.d.ts\n/**\n * Stages of `renderVideo`, in order. Audio-only renders skip \"render\";\n * \"convert\" runs only for GIF output.\n */\ntype RenderPhase = \"prepare\" | \"render\" | \"audio\" | \"audio-encode\" | \"mux\" | \"convert\" | \"done\";\n/** Progress reported by `renderVideo({ onProgress })`. */\ninterface RenderProgress {\n /**\n * \"prepare\" loads fonts and warms the pipeline, \"render\" draws and encodes\n * frames, \"audio\" mixes the soundtrack, \"audio-encode\" encodes it, \"mux\"\n * writes the container, \"convert\" makes the GIF, \"done\" is the last event.\n */\n phase: RenderPhase;\n /** Frames finished so far (1-based); `totalFrames` once frames are done. */\n frame: number;\n totalFrames: number;\n /** Time since the render started. */\n elapsedMs: number;\n /** Share of the current phase done (0–1), when it can be measured. */\n phaseProgress?: number;\n /** Frames per second so far (\"render\" only). */\n fps?: number;\n /** Estimated seconds until the frames are done (\"render\" only). */\n etaSec?: number;\n /** What the phase is working on, e.g. \"3/7 sources: music.mp3\". */\n detail?: string;\n}\n//#endregion\n//#region src/video-qa.d.ts\n/**\n * Quality checks run on a video while it renders: frames are measured as\n * they are read back for the encoder and audio as it is mixed, so the report\n * describes exactly what was encoded without decoding the file again.\n */\ninterface VideoQaOptions {\n /** Luma (0-1) at or below which a pixel counts as black. Default 0.1. */\n readonly blackPixelThreshold?: number;\n /** Share of black pixels that makes a frame black. Default 0.98. */\n readonly blackFrameRatio?: number;\n /** Shortest run of black frames reported. Default 0.5 s. */\n readonly minBlackSec?: number;\n /** Shortest run of unchanging frames reported. Default 2 s. */\n readonly minFrozenSec?: number;\n /** Level (dBFS, 100 ms windows) below which audio counts as silent. Default -60. */\n readonly silenceDbfs?: number;\n /** Shortest silent stretch reported. Default 2 s. */\n readonly minSilenceSec?: number;\n /** Integrated loudness to hit, e.g. -14 for most streaming platforms. Unchecked when unset. */\n readonly targetLufs?: number;\n /** Allowed distance from `targetLufs`, in LU. Default 1. */\n readonly lufsTolerance?: number;\n}\ninterface QaSegment {\n readonly startSec: number;\n readonly endSec: number;\n}\ninterface QaIssue {\n readonly severity: \"error\" | \"warning\" | \"info\";\n /** Stable machine-readable kind, e.g. \"black_frames\", \"audio_clipping\" */\n readonly code: string;\n readonly message: string;\n readonly startSec?: number;\n readonly endSec?: number;\n readonly layerId?: string;\n}\ninterface VideoQaStats {\n readonly expectedFrames: number;\n readonly encodedFrames: number;\n readonly fps: number;\n readonly width: number;\n readonly height: number;\n /** Average luma over the whole video, 0-1 */\n readonly meanLuma: number;\n readonly blackSegments: readonly QaSegment[];\n readonly frozenSegments: readonly QaSegment[];\n}\ninterface AudioQaStats {\n readonly sampleRate: number;\n readonly channels: number;\n readonly durationSec: number;\n /** Highest sample, dBFS (sample peak, not true peak) */\n readonly peakDbfs: number;\n /** Mean level over the whole track, dBFS */\n readonly rmsDbfs: number;\n /** ITU-R BS.1770 integrated loudness; null when the track is silent */\n readonly integratedLufs: number | null;\n /** Samples at or beyond full scale */\n readonly clippedSamples: number;\n readonly silentSegments: readonly QaSegment[];\n}\ninterface VideoQaReport {\n /** No errors or warnings (info issues do not fail a render) */\n readonly passed: boolean;\n readonly video?: VideoQaStats;\n readonly audio?: AudioQaStats;\n readonly issues: readonly QaIssue[];\n}\n/** Measures frames handed to it in order, as RGBA bytes. */\ndeclare class FrameInspector {\n private readonly blackLuma;\n private readonly blackRatio;\n private readonly black;\n private readonly sameAsPrevious;\n private lumaSum;\n private previous;\n constructor(options?: VideoQaOptions);\n get frameCount(): number;\n inspect(rgba: Uint8Array, width: number, height: number): void;\n stats(expectedFrames: number, encodedFrames: number, fps: number, width: number, height: number, options?: VideoQaOptions): VideoQaStats;\n}\n/** Measures a mixed audio track (one Float32Array per channel). */\ndeclare function analyzeAudio(channels: readonly Float32Array[], sampleRate: number, options?: VideoQaOptions): AudioQaStats;\n/**\n * ITU-R BS.1770-4 integrated loudness (LUFS): K-weighted mean square in\n * 400 ms blocks with 75% overlap, gated at -70 LUFS and then at 10 LU below\n * the mean of what passed. Channels weigh 1 (stereo and mono layouts).\n */\ndeclare function integratedLoudness(channels: readonly Float32Array[], sampleRate: number): number | null;\n/** Turn measurements and document diagnostics into a report with issues. */\ndeclare function buildQaReport(parts: {\n video?: VideoQaStats;\n audio?: AudioQaStats;\n diagnostics?: readonly RenderDiagnostic[];\n options?: VideoQaOptions;\n}): VideoQaReport;\n/** A short human- and agent-readable summary of a report. */\ndeclare function formatQaReport(report: VideoQaReport): string;\n//#endregion\n//#region src/headless-webgpu-renderer.d.ts\ndeclare class RenderSemaphore {\n private _running;\n private readonly _max;\n private readonly _queue;\n constructor(max: number);\n acquire(timeoutMs?: number): Promise<void>;\n release(): void;\n get stats(): {\n active: number;\n queued: number;\n max: number;\n };\n}\ndeclare const renderSemaphore: RenderSemaphore;\ndeclare class HeadlessWebGPURenderer {\n private static isInitialized;\n private static initPromise;\n private static initFailureCount;\n private static readonly MAX_INIT_FAILURES;\n private static nextRetryAt;\n static initialize(): Promise<void>;\n renderImage(virtualMedia: VirtualMediaData, frame?: number, fps?: number, options?: {\n renderId?: string;\n /** \"rgba\" skips PNG encoding and returns width*height*4 raw pixels. */\n format?: \"png\" | \"rgba\";\n }): Promise<Buffer>;\n /**\n * Renders a single frame to a PNG buffer at a specified timestamp in milliseconds or frame index.\n */\n renderFrame(source: VirtualMediaData | {\n toVirtualMedia(): VirtualMediaData;\n }, options?: {\n atMs?: number;\n frame?: number;\n fps?: number;\n /** Reuse compiled state across calls; see `renderImage`. */\n renderId?: string;\n /** \"rgba\" returns raw width*height*4 pixels instead of a PNG. */\n format?: \"png\" | \"rgba\";\n }): Promise<Buffer>;\n /**\n * Mixes the composition's full audio timeline (clips, effects, synthesized\n * tracks) to stereo PCM, exactly as `renderVideo` muxes it.\n */\n renderAudio(virtualMedia: VirtualMediaData, options?: {\n fps?: number;\n sampleRate?: number;\n }): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n }>;\n renderLut(virtualMedia: VirtualMediaData, frame?: number, fps?: number): Promise<Buffer>;\n private resolveMediaDuration;\n renderVideo(virtualMedia: VirtualMediaData, options?: {\n codec?: string;\n audioCodec?: string;\n quality?: string;\n concurrency?: number;\n /**\n * Depth of the DMA staging ring (default 2, clamped 2–8). A deeper\n * ring overlaps more encoder latency at the cost of VRAM\n * (~8.3MB/slot at 1080p RGBA). Also settable via\n * `FRAMEFIELDS_RING_CAPACITY`.\n */\n ringCapacity?: number;\n /**\n * Measure the output while it renders (black and frozen frames,\n * dropped frames, loudness, clipping, silence, document warnings)\n * and return the findings as `qa`. `true` uses default thresholds.\n */\n qa?: boolean | VideoQaOptions;\n /**\n * Aborts the render between frames; the promise rejects with\n * `signal.reason` and the partial output is deleted.\n */\n signal?: AbortSignal;\n /**\n * Called as the render moves through its phases: \"prepare\", each\n * frame (\"render\"), \"audio\" (mixing, per clip), \"audio-encode\",\n * \"mux\", \"convert\" (GIF only) and \"done\".\n */\n onProgress?: (progress: RenderProgress) => void;\n }): Promise<{\n filePath: string;\n cleanup: () => Promise<void>;\n qa?: VideoQaReport;\n }>;\n}\ndeclare const HeadlessMediaRenderer: typeof HeadlessWebGPURenderer;\ntype HeadlessMediaRenderer = HeadlessWebGPURenderer;\n//#endregion\n//#region src/job-reset.d.ts\n/**\n * Drops every cache keyed by a file path or URL: media inputs and decoders,\n * textures, LUTs, fonts and downloaded font files. A long-lived worker calls this between jobs,\n * because the next checkout may hold different bytes at the same path. The\n * GPU device and compiled pipelines stay warm.\n */\ndeclare function resetRenderCaches(): void;\n//#endregion\n//#region src/logger.d.ts\n/**\n * \"json\" (pino lines, for log collectors) or \"text\" (one short line each, for\n * people and agents reading a terminal). `FRAMEFIELDS_LOG_FORMAT` picks one;\n * otherwise production is JSON and everything else text.\n */\ndeclare function resolveLogFormat(vars?: Record<string, string | undefined> | undefined): \"json\" | \"text\";\n/**\n * Turns pino's JSON lines into `[framefields] Rendered 40% (…)`: the message\n * without its `[Component]` prefix, the level only for warnings and errors,\n * and an error's message (its stack reaches the caller with the throw).\n */\ndeclare function textLogStream(write?: (line: string) => void): DestinationStream;\ndeclare const rendererLogger: pino.Logger<never, boolean>;\n//#endregion\n//#region src/node-manifest.d.ts\n/**\n * The `framefields` block of a node package's `package.json`.\n *\n * This is the single declaration of a node's op: renderer discovery, the\n * effects generator (`scripts/generate-effects.ts`) and the skill catalog all\n * read it from here. There is deliberately no fallback that derives an op from\n * the package name. See `spec/sync-node.md` §5.1.\n */\ndeclare const NODE_KINDS: readonly [\"effect\", \"audio\", \"source\", \"signal\", \"utility\"];\ntype NodeKind = (typeof NODE_KINDS)[number];\ninterface NodeRendererExports {\n development?: string;\n import?: string;\n default?: string;\n}\ninterface NodeManifest {\n /** Directory name under `nodes/`, e.g. `node-apply-lut`. */\n dir: string;\n /** Absolute path of the node package. */\n path: string;\n /** npm package name, e.g. `@framefields/node-lut`. */\n packageName: string;\n /** Canonical op literal used in the operation AST and the renderer registry. */\n type: string;\n kind: NodeKind;\n /** Legacy ops that resolve to the same renderer. */\n aliases: readonly string[];\n /** Named zod schema export of `src/shared/config.ts`. */\n schema?: string;\n /** Authoring class name. Defaults to `type`. */\n className?: string;\n /** Key on `Effect.*`. Defaults to `className` with a lower-cased first letter. */\n factory?: string;\n /** A hand-written subclass exists under `effects/custom/`. */\n custom: boolean;\n /** `false` when the package opts out of discovery. */\n enabled: boolean;\n rendererExports?: NodeRendererExports;\n}\ndeclare class NodeManifestError extends Error {\n readonly problems: readonly string[];\n constructor(problems: readonly string[]);\n}\n/**\n * Validates one parsed `package.json`. Returns the manifest, or the list of\n * problems that make it unusable. Never throws.\n */\ndeclare function parseNodeManifest(pkg: unknown, dir: string, nodePath?: string): {\n manifest?: NodeManifest;\n problems: string[];\n};\n/**\n * Reads every `nodes/node-*` package and returns its manifest, sorted by\n * directory name. Throws a single {@link NodeManifestError} listing every\n * problem: a missing or malformed block, or an op/alias claimed twice.\n */\ndeclare function loadNodeManifests(nodesDir: string): NodeManifest[];\n//#endregion\n//#region src/zero-copy-webcodecs-pipeline.d.ts\ninterface ZeroCopyWebCodecsPipelineOptions {\n readonly width: number;\n readonly height: number;\n readonly fps: number;\n readonly videoSource: VideoSampleSource;\n readonly ringCapacity?: number;\n readonly colorSpace?: VideoColorSpaceConfig;\n readonly directCanvasSource?: unknown;\n /**\n * Called with each frame's RGBA pixels, in frame order, just before it is\n * encoded (staging-ring path only). The buffer is reused: read, don't keep.\n */\n readonly onFrame?: (rgba: Uint8Array, frameIndex: number) => void;\n}\ninterface WebCodecsPipelineStats {\n readonly totalFramesEnqueued: number;\n readonly totalFramesEncoded: number;\n readonly averageGpuSubmitTimeMs: number;\n readonly averageEncodeTimeMs: number;\n readonly averageCycleTimeMs: number;\n readonly maxCycleTimeMs: number;\n readonly minCycleTimeMs: number;\n readonly throughputFps: number;\n readonly ringCapacity: number;\n readonly isDirectZeroCopy: boolean;\n}\n/**\n * High-performance hardware video encoding pipeline integrating WebGPU textures with WebCodecs.\n *\n * Provides:\n * 1. Direct hardware acceleration when running with WebCodecs / OffscreenCanvas.\n * 2. Pipelined asynchronous double-buffered DMA staging ring for headless Node.js (Dawn native),\n * allowing GPU Frame i+1 rendering to overlap concurrently with Frame i hardware encoding.\n */\ndeclare class ZeroCopyWebCodecsPipeline {\n readonly width: number;\n readonly height: number;\n readonly fps: number;\n readonly ringCapacity: number;\n private readonly device;\n private readonly videoSource;\n private readonly stagingRing;\n private readonly colorSpace?;\n private readonly directCanvasSource?;\n private readonly onFrame?;\n private readonly inFlightFrames;\n private readonly cycleStartTimes;\n private totalFramesEnqueued;\n private totalFramesEncoded;\n private totalGpuSubmitTimeMs;\n private totalEncodeTimeMs;\n private totalCycleTimeMs;\n private maxCycleTimeMs;\n private minCycleTimeMs;\n private pipelineStartTime;\n constructor(device: GPUDevice, options: ZeroCopyWebCodecsPipelineOptions);\n /**\n * Returns true if direct zero-copy from an OffscreenCanvas or texture is active.\n */\n canDirectZeroCopy(): boolean;\n /**\n * Enqueues a rendered GPU texture frame into the pipeline.\n *\n * Uses double-buffered DMA staging: if the staging ring has reached capacity,\n * the oldest in-flight frame is asynchronously consumed and added to the video encoder\n * before staging the new frame, guaranteeing constant bounded VRAM usage and zero GPU stalls.\n */\n enqueueFrame(frameIndex: number, targetTexture: GPUTexture, encoder: GPUCommandEncoder): Promise<void>;\n /**\n * Drains all remaining in-flight frames in the pipeline, ensuring every enqueued\n * frame has been encoded and added to the video sample source.\n */\n drain(): Promise<void>;\n /**\n * Returns runtime throughput, latency, and pipeline statistics.\n */\n getStats(): WebCodecsPipelineStats;\n /**\n * Destroys the pipeline and releases all staging buffers.\n */\n destroy(): void;\n private consumeAndEncode;\n}\n//#endregion\nexport { AudioQaStats, DmaStagingRing, DmaStagingRingOptions, FrameInspector, HeadlessMediaRenderer, HeadlessWebGPURenderer, NODE_KINDS, NodeKind, NodeManifest, NodeManifestError, NodeRendererExports, QaIssue, QaSegment, type RenderPhase, type RenderProgress, StagingSlotInfo, StagingSlotStatus, VideoColorSpaceConfig, VideoQaOptions, VideoQaReport, VideoQaStats, WebCodecsPipelineStats, ZeroCopyWebCodecsPipeline, ZeroCopyWebCodecsPipelineOptions, analyzeAudio, buildQaReport, discoverAndRegisterNodeRenderers, findNodesDir, formatQaReport, integratedLoudness, loadNodeManifests, parseNodeManifest, preloadFonts, renderSemaphore, rendererLogger, resetRenderCaches, resolveLogFormat, textLogStream };\n//# sourceMappingURL=index.d.mts.map"],"mappings":";;;;;;;;;;;;;KAmHKuB,WAAAA;;UAEKC,cAAAA;;;;;;SAMDD;;;;;;;;;;;;;;;;;;;;;;UAsBCE,cAAAA;;;;;;;;;;;;;;;;;;UAkBAC,SAAAA;;;;UAIAC,OAAAA;;;;;;;;;UASAC,YAAAA;;;;;;;;mCAQyBF;oCACCA;;UAE1BG,YAAAA;;;;;;;;;;;;oCAY0BH;;UAE1BI,aAAAA;;;mBAGSF;mBACAC;4BACSF;;;;;iBA+BXS,cAAAA,SAAuBN;;;cAG1BO,eAAAA;;;;;+BAKiB1B;;;;;;;;cAQjB2B,iBAAiBD;cACjBE,sBAAAA;;;;;;uBAMS5B;4BACKJ;;;;MAItBI,QAAQ6B;;;;sBAIQjC;sBACAA;;;;;;;;;MAShBI,QAAQ6B;;;;;4BAKcjC;;;MAGtBI;cACQsB;;;0BAGY1B,iDAAiDI,QAAQ6B;;4BAEvDjC;;;;;;;;;;;;;;;;;mBAiBTkB;;;;;aAKNgB;;;;;;4BAMejB;MACtBb;;mBAEaA;SACVmB;;;cAGKY,8BAA8BH;KACvCG,qBAAAA,GAAwBH;;;;;;;;;iBASZI,iBAAAA,CAAAA;;;;;;;;;;UCxUA,gBAAA;;;;ADkG2C;AASlDnB,UCrGO,gBAAA,CD2GRD;EAsBCE;AAAc;AAkBL;EAaTG,UAAAA,CAAAA,EAAAA,MAAY;EAWZC;AAYmC;;EAM1BA,QAAAA,CAAAA,EAAAA,MAAAA;EACSF;;AA6BX;EAKHU,UAAAA,CAAAA,EAAAA,MAAe;EAafC;AAAgC;;EAQlB/B,MAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAIdiC;;;EAKQjC,OAAAA,CAAAA,EAAAA,MAAAA;EASRiC;;;EASAP,KAAAA,CAAAA,EAAAA,MAAAA;EADRtB;;;EAIqEA,MAAAA,CAAAA,EAAAA,MAAAA;EAE/CJ;;;EA4BAiB,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAGTb;;;;EAIL+B,GAAAA,CAAAA,EAAAA,MAAAA;EACTA;AAA8C;;;;AC/TnD;AAMA;AA+KA;EA4DgB,SAAA,CAAA,EAAA,MAAA;EAiFJ;;;EAOC,UAAA,CAAA,EAAA,MAAA;EAAR;;AAWL;EACS,GAAA,CAAA,EAAA,MAAA;EACC;;;EACA,OAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA5NE;;;iBA0DI,mBAAA,UACN;WAGI;;;;;;iBAwDE,iBAAA,mDAGN;;;;;;;;;;;KA8EE,mBAAA;oBACO;;;;;eAKN;MACR,QAAQ;;;;;;;;;;iBAWS,eAAA,SACb,+BACC,mBACP,QAAQ"}
1
+ {"version":3,"file":"index-CJL0JAU8.d.mts","names":["pino","DestinationStream","VideoColorPrimaries","VideoFrame","VideoMatrixCoefficients","VideoTransferCharacteristics","RenderDiagnostic","VirtualMediaData","VideoSampleSource","preloadFonts","GPUDevice","Promise","StagingSlotStatus","VideoColorSpaceConfig","DmaStagingRingOptions","GPUTextureFormat","StagingSlotInfo","DmaStagingRing","GPUCommandEncoder","GPUTexture","Uint8Array","findNodesDir","discoverAndRegisterNodeRenderers","RenderPhase","RenderProgress","VideoQaOptions","QaSegment","QaIssue","VideoQaStats","AudioQaStats","VideoQaReport","FrameInspector","analyzeAudio","Float32Array","integratedLoudness","buildQaReport","formatQaReport","RenderSemaphore","renderSemaphore","HeadlessWebGPURenderer","Buffer","AbortSignal","HeadlessMediaRenderer","resetRenderCaches","resolveLogFormat","Record","textLogStream","rendererLogger","Logger","NODE_KINDS","NodeKind","NodeRendererExports","NodeManifest","NodeManifestError","Error","parseNodeManifest","loadNodeManifests","ZeroCopyWebCodecsPipelineOptions","WebCodecsPipelineStats","ZeroCopyWebCodecsPipeline"],"sources":["../../renderer/dist/index.d.mts","../src/renderer/framegrid.ts"],"sourcesContent":["import pino, { DestinationStream } from \"pino\";\nimport { VideoColorPrimaries, VideoFrame, VideoMatrixCoefficients, VideoTransferCharacteristics } from \"@napi-rs/webcodecs\";\nimport { RenderDiagnostic, VirtualMediaData } from \"@framefields/core\";\nimport { VideoSampleSource } from \"mediabunny\";\n\n//#region src/asset-preloader.d.ts\n\n/**\n * Preloads only the fonts (and emoji) a VirtualMediaData tree's text uses, so\n * typography renders correctly on Node.js without loading its media. Shared\n * with the browser preview; emoji need a font set with\n * `FontManager.registerEmojiFont()`.\n */\ndeclare function preloadFonts(media: VirtualMediaData, device?: GPUDevice | null): Promise<void>;\n//#endregion\n//#region src/dma-staging-ring.d.ts\ntype StagingSlotStatus = \"idle\" | \"rendering\" | \"mapping\" | \"mapped\";\ninterface VideoColorSpaceConfig {\n readonly primaries?: VideoColorPrimaries;\n readonly transfer?: VideoTransferCharacteristics;\n readonly matrix?: VideoMatrixCoefficients;\n readonly fullRange?: boolean;\n}\ninterface DmaStagingRingOptions {\n readonly width: number;\n readonly height: number;\n readonly capacity?: number;\n readonly format?: GPUTextureFormat;\n}\ninterface StagingSlotInfo {\n readonly index: number;\n readonly status: StagingSlotStatus;\n readonly inFlightFrame: number | null;\n}\n/**\n * Pipelined Asynchronous DMA Staging Ring for WebGPU.\n *\n * Implements double-buffered (or N-buffered) GPU staging buffers to overlap\n * GPU render passes with asynchronous DMA host transfers and WebCodecs hardware encoding.\n * Eliminates GPU stalls by allowing Frame i+1 to execute on the GPU while Frame i\n * is asynchronously mapped and consumed by the hardware video encoder.\n */\ndeclare class DmaStagingRing {\n readonly width: number;\n readonly height: number;\n readonly capacity: number;\n readonly bytesPerRow: number;\n readonly unpaddedBytesPerRow: number;\n readonly bufferSize: number;\n readonly format: GPUTextureFormat;\n readonly device: GPUDevice;\n private readonly slots;\n private isDestroyed;\n constructor(device: GPUDevice, options: DmaStagingRingOptions);\n /**\n * Prepares the staging buffer slot for writing by ensuring any prior mapping\n * from a previous cycle has been completed and unmapped.\n */\n prepareSlot(frameIndex: number): Promise<void>;\n /**\n * Records a GPU-to-buffer DMA copy command into the provided command encoder.\n */\n stageTexture(encoder: GPUCommandEncoder, texture: GPUTexture, frameIndex: number): void;\n /**\n * Initiates asynchronous DMA mapping on the slot for the specified frame.\n * Must be called immediately after submitting the command encoder to the device queue.\n */\n scheduleMap(frameIndex: number): Promise<void>;\n /**\n * Awaits asynchronous mapping and extracts pixels into a tightly packed Uint8Array.\n * The slot remains in the \"mapped\" state until releaseFrame() is called.\n */\n readFramePixels(frameIndex: number): Promise<Uint8Array>;\n /**\n * Awaits asynchronous mapping, extracts pixels, and immediately unmaps the staging buffer,\n * returning the slot to \"idle\" state so it can be reused immediately.\n */\n readAndReleaseFrame(frameIndex: number): Promise<Uint8Array>;\n /**\n * Directly reads the mapped staging buffer into a WebCodecs VideoFrame,\n * bypassing redundant intermediate JS allocations when row pitches align,\n * and immediately unmaps the buffer.\n */\n readFrameToVideoFrame(frameIndex: number, timestampUs: number, colorSpace?: VideoColorSpaceConfig, /** Sees the tightly packed RGBA pixels while they are mapped; must not keep them. */\n inspect?: (rgba: Uint8Array) => void): Promise<VideoFrame>;\n /**\n * Unmaps the staging buffer for the specified frame and marks the slot idle.\n */\n releaseFrame(frameIndex: number): void;\n /**\n * Returns current status info for each slot in the ring.\n */\n getSlotInfos(): readonly StagingSlotInfo[];\n /**\n * Destroys all staging buffers and releases resources.\n */\n destroy(): void;\n private checkDestroyed;\n}\n//#endregion\n//#region src/dynamic-node-discovery.d.ts\n/** Locates the workspace `nodes/` directory by climbing up from this file. */\ndeclare function findNodesDir(startDir?: string): string | null;\n/**\n * Registers the built-in node renderers, then any extra nodes found in the\n * directory named by `FRAMEFIELDS_NODES_DIR` (local node development). A node in\n * that directory overrides the built-in renderer for the same op.\n */\ndeclare function discoverAndRegisterNodeRenderers(): Promise<void>;\n//#endregion\n//#region src/render-reporter.d.ts\n/**\n * Stages of `renderVideo`, in order. Audio-only renders skip \"render\";\n * \"convert\" runs only for GIF output.\n */\ntype RenderPhase = \"prepare\" | \"render\" | \"audio\" | \"audio-encode\" | \"mux\" | \"convert\" | \"done\";\n/** Progress reported by `renderVideo({ onProgress })`. */\ninterface RenderProgress {\n /**\n * \"prepare\" loads fonts and warms the pipeline, \"render\" draws and encodes\n * frames, \"audio\" mixes the soundtrack, \"audio-encode\" encodes it, \"mux\"\n * writes the container, \"convert\" makes the GIF, \"done\" is the last event.\n */\n phase: RenderPhase;\n /** Frames finished so far (1-based); `totalFrames` once frames are done. */\n frame: number;\n totalFrames: number;\n /** Time since the render started. */\n elapsedMs: number;\n /** Share of the current phase done (0–1), when it can be measured. */\n phaseProgress?: number;\n /** Frames per second so far (\"render\" only). */\n fps?: number;\n /** Estimated seconds until the frames are done (\"render\" only). */\n etaSec?: number;\n /** What the phase is working on, e.g. \"3/7 sources: music.mp3\". */\n detail?: string;\n}\n//#endregion\n//#region src/video-qa.d.ts\n/**\n * Quality checks run on a video while it renders: frames are measured as\n * they are read back for the encoder and audio as it is mixed, so the report\n * describes exactly what was encoded without decoding the file again.\n */\ninterface VideoQaOptions {\n /** Luma (0-1) at or below which a pixel counts as black. Default 0.1. */\n readonly blackPixelThreshold?: number;\n /** Share of black pixels that makes a frame black. Default 0.98. */\n readonly blackFrameRatio?: number;\n /** Shortest run of black frames reported. Default 0.5 s. */\n readonly minBlackSec?: number;\n /** Shortest run of unchanging frames reported. Default 2 s. */\n readonly minFrozenSec?: number;\n /** Level (dBFS, 100 ms windows) below which audio counts as silent. Default -60. */\n readonly silenceDbfs?: number;\n /** Shortest silent stretch reported. Default 2 s. */\n readonly minSilenceSec?: number;\n /** Integrated loudness to hit, e.g. -14 for most streaming platforms. Unchecked when unset. */\n readonly targetLufs?: number;\n /** Allowed distance from `targetLufs`, in LU. Default 1. */\n readonly lufsTolerance?: number;\n}\ninterface QaSegment {\n readonly startSec: number;\n readonly endSec: number;\n}\ninterface QaIssue {\n readonly severity: \"error\" | \"warning\" | \"info\";\n /** Stable machine-readable kind, e.g. \"black_frames\", \"audio_clipping\" */\n readonly code: string;\n readonly message: string;\n readonly startSec?: number;\n readonly endSec?: number;\n readonly layerId?: string;\n}\ninterface VideoQaStats {\n readonly expectedFrames: number;\n readonly encodedFrames: number;\n readonly fps: number;\n readonly width: number;\n readonly height: number;\n /** Average luma over the whole video, 0-1 */\n readonly meanLuma: number;\n readonly blackSegments: readonly QaSegment[];\n readonly frozenSegments: readonly QaSegment[];\n}\ninterface AudioQaStats {\n readonly sampleRate: number;\n readonly channels: number;\n readonly durationSec: number;\n /** Highest sample, dBFS (sample peak, not true peak) */\n readonly peakDbfs: number;\n /** Mean level over the whole track, dBFS */\n readonly rmsDbfs: number;\n /** ITU-R BS.1770 integrated loudness; null when the track is silent */\n readonly integratedLufs: number | null;\n /** Samples at or beyond full scale */\n readonly clippedSamples: number;\n readonly silentSegments: readonly QaSegment[];\n}\ninterface VideoQaReport {\n /** No errors or warnings (info issues do not fail a render) */\n readonly passed: boolean;\n readonly video?: VideoQaStats;\n readonly audio?: AudioQaStats;\n readonly issues: readonly QaIssue[];\n}\n/** Measures frames handed to it in order, as RGBA bytes. */\ndeclare class FrameInspector {\n private readonly blackLuma;\n private readonly blackRatio;\n private readonly black;\n private readonly sameAsPrevious;\n private lumaSum;\n private previous;\n constructor(options?: VideoQaOptions);\n get frameCount(): number;\n inspect(rgba: Uint8Array, width: number, height: number): void;\n stats(expectedFrames: number, encodedFrames: number, fps: number, width: number, height: number, options?: VideoQaOptions): VideoQaStats;\n}\n/** Measures a mixed audio track (one Float32Array per channel). */\ndeclare function analyzeAudio(channels: readonly Float32Array[], sampleRate: number, options?: VideoQaOptions): AudioQaStats;\n/**\n * ITU-R BS.1770-4 integrated loudness (LUFS): K-weighted mean square in\n * 400 ms blocks with 75% overlap, gated at -70 LUFS and then at 10 LU below\n * the mean of what passed. Channels weigh 1 (stereo and mono layouts).\n */\ndeclare function integratedLoudness(channels: readonly Float32Array[], sampleRate: number): number | null;\n/** Turn measurements and document diagnostics into a report with issues. */\ndeclare function buildQaReport(parts: {\n video?: VideoQaStats;\n audio?: AudioQaStats;\n diagnostics?: readonly RenderDiagnostic[];\n options?: VideoQaOptions;\n}): VideoQaReport;\n/** A short human- and agent-readable summary of a report. */\ndeclare function formatQaReport(report: VideoQaReport): string;\n//#endregion\n//#region src/headless-webgpu-renderer.d.ts\ndeclare class RenderSemaphore {\n private _running;\n private readonly _max;\n private readonly _queue;\n constructor(max: number);\n acquire(timeoutMs?: number): Promise<void>;\n release(): void;\n get stats(): {\n active: number;\n queued: number;\n max: number;\n };\n}\ndeclare const renderSemaphore: RenderSemaphore;\ndeclare class HeadlessWebGPURenderer {\n private static isInitialized;\n private static initPromise;\n private static initFailureCount;\n private static readonly MAX_INIT_FAILURES;\n private static nextRetryAt;\n static initialize(): Promise<void>;\n renderImage(virtualMedia: VirtualMediaData, frame?: number, fps?: number, options?: {\n renderId?: string;\n /** \"rgba\" skips PNG encoding and returns width*height*4 raw pixels. */\n format?: \"png\" | \"rgba\";\n }): Promise<Buffer>;\n /**\n * Renders a single frame to a PNG buffer at a specified timestamp in milliseconds or frame index.\n */\n renderFrame(source: VirtualMediaData | {\n toVirtualMedia(): VirtualMediaData;\n }, options?: {\n atMs?: number;\n frame?: number;\n fps?: number;\n /** Reuse compiled state across calls; see `renderImage`. */\n renderId?: string;\n /** \"rgba\" returns raw width*height*4 pixels instead of a PNG. */\n format?: \"png\" | \"rgba\";\n }): Promise<Buffer>;\n /**\n * Mixes the composition's full audio timeline (clips, effects, synthesized\n * tracks) to stereo PCM, exactly as `renderVideo` muxes it.\n */\n renderAudio(virtualMedia: VirtualMediaData, options?: {\n fps?: number;\n sampleRate?: number;\n }): Promise<{\n channels: Float32Array[];\n sampleRate: number;\n }>;\n renderLut(virtualMedia: VirtualMediaData, frame?: number, fps?: number): Promise<Buffer>;\n private resolveMediaDuration;\n renderVideo(virtualMedia: VirtualMediaData, options?: {\n codec?: string;\n audioCodec?: string;\n quality?: string;\n concurrency?: number;\n /**\n * Depth of the DMA staging ring (default 2, clamped 2–8). A deeper\n * ring overlaps more encoder latency at the cost of VRAM\n * (~8.3MB/slot at 1080p RGBA). Also settable via\n * `FRAMEFIELDS_RING_CAPACITY`.\n */\n ringCapacity?: number;\n /**\n * Measure the output while it renders (black and frozen frames,\n * dropped frames, loudness, clipping, silence, document warnings)\n * and return the findings as `qa`. `true` uses default thresholds.\n */\n qa?: boolean | VideoQaOptions;\n /**\n * Aborts the render between frames; the promise rejects with\n * `signal.reason` and the partial output is deleted.\n */\n signal?: AbortSignal;\n /**\n * Called as the render moves through its phases: \"prepare\", each\n * frame (\"render\"), \"audio\" (mixing, per clip), \"audio-encode\",\n * \"mux\", \"convert\" (GIF only) and \"done\".\n */\n onProgress?: (progress: RenderProgress) => void;\n }): Promise<{\n filePath: string;\n cleanup: () => Promise<void>;\n qa?: VideoQaReport;\n }>;\n}\ndeclare const HeadlessMediaRenderer: typeof HeadlessWebGPURenderer;\ntype HeadlessMediaRenderer = HeadlessWebGPURenderer;\n//#endregion\n//#region src/job-reset.d.ts\n/**\n * Drops every cache keyed by a file path or URL: media inputs and decoders,\n * textures, LUTs, fonts and downloaded font files. A long-lived worker calls this between jobs,\n * because the next checkout may hold different bytes at the same path. The\n * GPU device and compiled pipelines stay warm.\n */\ndeclare function resetRenderCaches(): void;\n//#endregion\n//#region src/logger.d.ts\n/**\n * \"json\" (pino lines, for log collectors) or \"text\" (one short line each, for\n * people and agents reading a terminal). `FRAMEFIELDS_LOG_FORMAT` picks one;\n * otherwise production is JSON and everything else text.\n */\ndeclare function resolveLogFormat(vars?: Record<string, string | undefined> | undefined): \"json\" | \"text\";\n/**\n * Turns pino's JSON lines into `[framefields] Rendered 40% (…)`: the message\n * without its `[Component]` prefix, the level only for warnings and errors,\n * and an error's message (its stack reaches the caller with the throw).\n */\ndeclare function textLogStream(write?: (line: string) => void): DestinationStream;\ndeclare const rendererLogger: pino.Logger<never, boolean>;\n//#endregion\n//#region src/node-manifest.d.ts\n/**\n * The `framefields` block of a node package's `package.json`.\n *\n * This is the single declaration of a node's op: renderer discovery, the\n * effects generator (`scripts/generate-effects.ts`) and the skill catalog all\n * read it from here. There is deliberately no fallback that derives an op from\n * the package name. See `spec/sync-node.md` §5.1.\n */\ndeclare const NODE_KINDS: readonly [\"effect\", \"audio\", \"source\", \"signal\", \"utility\"];\ntype NodeKind = (typeof NODE_KINDS)[number];\ninterface NodeRendererExports {\n development?: string;\n import?: string;\n default?: string;\n}\ninterface NodeManifest {\n /** Directory name under `nodes/`, e.g. `node-apply-lut`. */\n dir: string;\n /** Absolute path of the node package. */\n path: string;\n /** npm package name, e.g. `@framefields/node-lut`. */\n packageName: string;\n /** Canonical op literal used in the operation AST and the renderer registry. */\n type: string;\n kind: NodeKind;\n /** Legacy ops that resolve to the same renderer. */\n aliases: readonly string[];\n /** Named zod schema export of `src/shared/config.ts`. */\n schema?: string;\n /** Authoring class name. Defaults to `type`. */\n className?: string;\n /** Key on `Effect.*`. Defaults to `className` with a lower-cased first letter. */\n factory?: string;\n /** A hand-written subclass exists under `effects/custom/`. */\n custom: boolean;\n /** `false` when the package opts out of discovery. */\n enabled: boolean;\n rendererExports?: NodeRendererExports;\n}\ndeclare class NodeManifestError extends Error {\n readonly problems: readonly string[];\n constructor(problems: readonly string[]);\n}\n/**\n * Validates one parsed `package.json`. Returns the manifest, or the list of\n * problems that make it unusable. Never throws.\n */\ndeclare function parseNodeManifest(pkg: unknown, dir: string, nodePath?: string): {\n manifest?: NodeManifest;\n problems: string[];\n};\n/**\n * Reads every `nodes/node-*` package and returns its manifest, sorted by\n * directory name. Throws a single {@link NodeManifestError} listing every\n * problem: a missing or malformed block, or an op/alias claimed twice.\n */\ndeclare function loadNodeManifests(nodesDir: string): NodeManifest[];\n//#endregion\n//#region src/zero-copy-webcodecs-pipeline.d.ts\ninterface ZeroCopyWebCodecsPipelineOptions {\n readonly width: number;\n readonly height: number;\n readonly fps: number;\n readonly videoSource: VideoSampleSource;\n readonly ringCapacity?: number;\n readonly colorSpace?: VideoColorSpaceConfig;\n readonly directCanvasSource?: unknown;\n /**\n * Called with each frame's RGBA pixels, in frame order, just before it is\n * encoded (staging-ring path only). The buffer is reused: read, don't keep.\n */\n readonly onFrame?: (rgba: Uint8Array, frameIndex: number) => void;\n}\ninterface WebCodecsPipelineStats {\n readonly totalFramesEnqueued: number;\n readonly totalFramesEncoded: number;\n readonly averageGpuSubmitTimeMs: number;\n readonly averageEncodeTimeMs: number;\n readonly averageCycleTimeMs: number;\n readonly maxCycleTimeMs: number;\n readonly minCycleTimeMs: number;\n readonly throughputFps: number;\n readonly ringCapacity: number;\n readonly isDirectZeroCopy: boolean;\n}\n/**\n * High-performance hardware video encoding pipeline integrating WebGPU textures with WebCodecs.\n *\n * Provides:\n * 1. Direct hardware acceleration when running with WebCodecs / OffscreenCanvas.\n * 2. Pipelined asynchronous double-buffered DMA staging ring for headless Node.js (Dawn native),\n * allowing GPU Frame i+1 rendering to overlap concurrently with Frame i hardware encoding.\n */\ndeclare class ZeroCopyWebCodecsPipeline {\n readonly width: number;\n readonly height: number;\n readonly fps: number;\n readonly ringCapacity: number;\n private readonly device;\n private readonly videoSource;\n private readonly stagingRing;\n private readonly colorSpace?;\n private readonly directCanvasSource?;\n private readonly onFrame?;\n private readonly inFlightFrames;\n private readonly cycleStartTimes;\n private totalFramesEnqueued;\n private totalFramesEncoded;\n private totalGpuSubmitTimeMs;\n private totalEncodeTimeMs;\n private totalCycleTimeMs;\n private maxCycleTimeMs;\n private minCycleTimeMs;\n private pipelineStartTime;\n constructor(device: GPUDevice, options: ZeroCopyWebCodecsPipelineOptions);\n /**\n * Returns true if direct zero-copy from an OffscreenCanvas or texture is active.\n */\n canDirectZeroCopy(): boolean;\n /**\n * Enqueues a rendered GPU texture frame into the pipeline.\n *\n * Uses double-buffered DMA staging: if the staging ring has reached capacity,\n * the oldest in-flight frame is asynchronously consumed and added to the video encoder\n * before staging the new frame, guaranteeing constant bounded VRAM usage and zero GPU stalls.\n */\n enqueueFrame(frameIndex: number, targetTexture: GPUTexture, encoder: GPUCommandEncoder): Promise<void>;\n /**\n * Drains all remaining in-flight frames in the pipeline, ensuring every enqueued\n * frame has been encoded and added to the video sample source.\n */\n drain(): Promise<void>;\n /**\n * Returns runtime throughput, latency, and pipeline statistics.\n */\n getStats(): WebCodecsPipelineStats;\n /**\n * Destroys the pipeline and releases all staging buffers.\n */\n destroy(): void;\n private consumeAndEncode;\n}\n//#endregion\nexport { AudioQaStats, DmaStagingRing, DmaStagingRingOptions, FrameInspector, HeadlessMediaRenderer, HeadlessWebGPURenderer, NODE_KINDS, NodeKind, NodeManifest, NodeManifestError, NodeRendererExports, QaIssue, QaSegment, type RenderPhase, type RenderProgress, StagingSlotInfo, StagingSlotStatus, VideoColorSpaceConfig, VideoQaOptions, VideoQaReport, VideoQaStats, WebCodecsPipelineStats, ZeroCopyWebCodecsPipeline, ZeroCopyWebCodecsPipelineOptions, analyzeAudio, buildQaReport, discoverAndRegisterNodeRenderers, findNodesDir, formatQaReport, integratedLoudness, loadNodeManifests, parseNodeManifest, preloadFonts, renderSemaphore, rendererLogger, resetRenderCaches, resolveLogFormat, textLogStream };\n//# sourceMappingURL=index.d.mts.map"],"mappings":";;;;;;;;;;;;;KAmHKuB,WAAAA;;UAEKC,cAAAA;;;;;;SAMDD;;;;;;;;;;;;;;;;;;;;;;UAsBCE,cAAAA;;;;;;;;;;;;;;;;;;UAkBAC,SAAAA;;;;UAIAC,OAAAA;;;;;;;;;UASAC,YAAAA;;;;;;;;mCAQyBF;oCACCA;;UAE1BG,YAAAA;;;;;;;;;;;;oCAY0BH;;UAE1BI,aAAAA;;;mBAGSF;mBACAC;4BACSF;;;;;iBA+BXS,cAAAA,SAAuBN;;;cAG1BO,eAAAA;;;;;+BAKiB1B;;;;;;;;cAQjB2B,iBAAiBD;cACjBE,sBAAAA;;;;;;uBAMS5B;4BACKJ;;;;MAItBI,QAAQ6B;;;;sBAIQjC;sBACAA;;;;;;;;;MAShBI,QAAQ6B;;;;;4BAKcjC;;;MAGtBI;cACQsB;;;0BAGY1B,iDAAiDI,QAAQ6B;;4BAEvDjC;;;;;;;;;;;;;;;;;mBAiBTkB;;;;;aAKNgB;;;;;;4BAMejB;MACtBb;;mBAEaA;SACVmB;;;cAGKY,8BAA8BH;KACvCG,qBAAAA,GAAwBH;;;;;;;;;iBASZI,iBAAAA,CAAAA;;;;;;;;;;UCxUA,gBAAA;;;;ADkG2C;AASlDnB,UCrGO,gBAAA,CD2GRD;EAsBCE;AAAc;AAkBL;EAaTG,UAAAA,CAAAA,EAAAA,MAAY;EAWZC;AAYmC;;EAM1BA,QAAAA,CAAAA,EAAAA,MAAAA;EACSF;;AA6BX;EAKHU,UAAAA,CAAAA,EAAAA,MAAe;EAafC;AAAgC;;EAQlB/B,MAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAIdiC;;;EAKQjC,OAAAA,CAAAA,EAAAA,MAAAA;EASRiC;;;EASAP,KAAAA,CAAAA,EAAAA,MAAAA;EADRtB;;;EAIqEA,MAAAA,CAAAA,EAAAA,MAAAA;EAE/CJ;;;EA4BAiB,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAGTb;;;;EAIL+B,GAAAA,CAAAA,EAAAA,MAAAA;EACTA;AAA8C;;;;AC/TnD;AAMA;AA+KA;EA4DgB,SAAA,CAAA,EAAA,MAAA;EAiFJ;;;EAOC,UAAA,CAAA,EAAA,MAAA;EAAR;;AAWL;EACS,GAAA,CAAA,EAAA,MAAA;EACC;;;EACA,OAAA,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA5NE;;;iBA0DI,mBAAA,UACN;WAGI;;;;;;iBAwDE,iBAAA,mDAGN;;;;;;;;;;;KA8EE,mBAAA;oBACO;;;;;eAKN;MACR,QAAQ;;;;;;;;;;iBAWS,eAAA,SACb,+BACC,mBACP,QAAQ"}
@@ -2721,6 +2721,7 @@ interface GPULightData {
2721
2721
  /** x = cos(outer), y = cos(inner), z = decay, w = 0 */
2722
2722
  spotParams: [number, number, number, number];
2723
2723
  }
2724
+ /** Slots retained in the legacy uniform prefix; actual direct lights use storage. */
2724
2725
  declare const MAX_LIGHTS = 8;
2725
2726
  /**
2726
2727
  * 16 (ambient) + 16 (params) + 8 * 64 (lights), then the physical-shading
@@ -2755,6 +2756,8 @@ declare const Light3D: {
2755
2756
  * Packs active scene lights into a Float32Array matching WGSL LightsUniforms layout.
2756
2757
  */
2757
2758
  packLightsUniforms(lights: Light3DOptions[], environment?: Environment3DOptions | null, shadow?: ShadowUniformInfo | null, isReflectionPass?: boolean): Float32Array;
2759
+ /** Packs every direct light for the variable-length GPU storage binding. */
2760
+ packDirectLights(lights: Light3DOptions[], shadows?: ShadowUniformInfo[]): Float32Array;
2758
2761
  /** Index (among non-ambient lights) of the light that should cast shadows, or -1. */
2759
2762
  shadowCasterIndex(lights: Light3DOptions[]): number;
2760
2763
  /** Fills params.zw and the appended physical-shading block (offset 136 on). */
@@ -2827,6 +2830,14 @@ declare class Path3D {
2827
2830
  * Extracts pitch, yaw, roll Euler angles in degrees from the orthonormal frame.
2828
2831
  */
2829
2832
  private eulerFromFrame;
2833
+ /**
2834
+ * Returns a copy of the discrete samples `[position, tangent, distance]` along this path.
2835
+ */
2836
+ getSamples(): ReadonlyArray<Path3DSample>;
2837
+ /**
2838
+ * Evaluates `count` evenly arc-length-spaced 3D positions along the path.
2839
+ */
2840
+ getPoints(count?: number): Vec3[];
2830
2841
  /**
2831
2842
  * Evaluates point, tangent, normal, binormal, and rotation at normalized progress u in [0, 1].
2832
2843
  * Progression moves with constant velocity along the arc length of the path.
@@ -5414,6 +5425,8 @@ interface MeshUniformData extends SurfaceParams {
5414
5425
  skinningMatrices?: Float32Array;
5415
5426
  /** Hardware-instanced draw path. */
5416
5427
  isInstanced?: boolean;
5428
+ /** Instance storage contains model and normal matrices in pairs. */
5429
+ matrixInstances?: boolean;
5417
5430
  /** Storage buffer containing `array<InstanceData>` (64 bytes per instance). */
5418
5431
  instanceBuffer?: GPUBuffer;
5419
5432
  material?: "lit" | "unlit" | "toon";
@@ -5519,6 +5532,12 @@ declare class MotionBlurPipeline {
5519
5532
  destroy(): void;
5520
5533
  }
5521
5534
  //#endregion
5535
+ //#region src/renderer3d/text-extruder.d.ts
5536
+ interface Point2D {
5537
+ x: number;
5538
+ y: number;
5539
+ }
5540
+ //#endregion
5522
5541
  //#region src/renderer3d/primitive-geometry.d.ts
5523
5542
  /**
5524
5543
  * Procedural solids built as real meshes (one draw call each), centered on
@@ -5564,8 +5583,187 @@ interface CylinderGeometryOptions extends PrimitiveSurface {
5564
5583
  height: number;
5565
5584
  /** Segments around (default 32). */
5566
5585
  segments?: number;
5567
- /** Leave the caps off (a tube). */
5586
+ /** Leave the caps off (a thin open cylinder). */
5568
5587
  openEnded?: boolean;
5588
+ /** Render each lateral side as a flat-shaded facet instead of smooth-shaded (default false). */
5589
+ flatShaded?: boolean;
5590
+ }
5591
+ interface TorusGeometryOptions extends PrimitiveSurface {
5592
+ type: "torus";
5593
+ /** Major radius from the torus center to the center of the tube (default 60). */
5594
+ radius?: number;
5595
+ /** Minor radius of the circular tube cross-section (default 20). */
5596
+ tube?: number;
5597
+ /** Segments around the tube cross-section (default 24). */
5598
+ radialSegments?: number;
5599
+ /** Segments around the main ring (default 48). */
5600
+ tubularSegments?: number;
5601
+ /** Central sweep angle in degrees (default 360). */
5602
+ arc?: number;
5603
+ }
5604
+ interface CapsuleGeometryOptions extends PrimitiveSurface {
5605
+ type: "capsule";
5606
+ /** Radius of the cylinder body and hemispherical end caps (default 30). */
5607
+ radius?: number;
5608
+ /** Straight cylinder length between the hemisphere centers; total height is `length + 2 * radius` (default 60). */
5609
+ length?: number;
5610
+ /** Latitude rings per hemisphere cap (default 12). */
5611
+ capSegments?: number;
5612
+ /** Segments around the circumference (default 32). */
5613
+ radialSegments?: number;
5614
+ }
5615
+ interface RingGeometryOptions extends PrimitiveSurface {
5616
+ type: "ring";
5617
+ /** Inner hole radius (default 30). */
5618
+ innerRadius?: number;
5619
+ /** Outer rim radius (default 60). */
5620
+ outerRadius?: number;
5621
+ /** Thick-walled depth along z (or y when `extrude` > 0); 0 or omitted builds a 2-sided flat annulus with front/back faces. */
5622
+ depth?: number;
5623
+ /** Segments around the ring (default 48). */
5624
+ thetaSegments?: number;
5625
+ /** Concentric radial subdivisions across the ring face (default 1). */
5626
+ phiSegments?: number;
5627
+ /** Start angle in degrees (default 0). */
5628
+ thetaStart?: number;
5629
+ /** Sweep angle in degrees (default 360). */
5630
+ thetaLength?: number;
5631
+ }
5632
+ interface PolyhedronGeometryOptions extends PrimitiveSurface {
5633
+ type: "polyhedron";
5634
+ /** Base Platonic solid. Default "icosahedron". */
5635
+ shape?: "tetrahedron" | "octahedron" | "dodecahedron" | "icosahedron" | "icosphere";
5636
+ /** Bounding sphere radius (default 50). */
5637
+ radius?: number;
5638
+ /** Geodesic subdivision levels (0..5): 0 keeps the base solid, >0 subdivides and projects onto the sphere. */
5639
+ detail?: number;
5640
+ /** Flat-shade each triangle facet (default true for polyhedra, false when `shape` is "icosphere" and `flatShaded` is omitted). */
5641
+ flatShaded?: boolean;
5642
+ }
5643
+ interface ExtrudeShapeGeometryOptions extends PrimitiveSurface {
5644
+ type: "extrude";
5645
+ /** SVG path string (`M ... Z`, including holes/multiple subpaths) or one or more 2D point contours (`[x, y]` or `{x, y}`). */
5646
+ shape?: string | Array<[number, number] | Point2D> | Array<Array<[number, number] | Point2D>>;
5647
+ /** Alias for `shape` when passing an SVG path string (`M ... Z`). */
5648
+ d?: string;
5649
+ /** Outer 2D contour (`[x, y]` or `{x, y}`) when not using `shape` or `d`. */
5650
+ contour?: Array<[number, number] | Point2D>;
5651
+ /** Optional inner hole contours (`[[x, y], ...][]`). */
5652
+ holes?: Array<Array<[number, number] | Point2D>>;
5653
+ /** Extrusion thickness along Z (default 20). */
5654
+ depth?: number;
5655
+ /** Optional bevel thickness along Z at front and back caps (default 0). */
5656
+ bevelThickness?: number;
5657
+ /** Optional bevel radial inset/outset in XY (default `bevelThickness`). */
5658
+ bevelSize?: number;
5659
+ /** Bevel steps (default 1 when bevelThickness > 0). */
5660
+ bevelSegments?: number;
5661
+ /** Color of the side walls and bevels; defaults to `color`. */
5662
+ bevelColor?: string;
5663
+ /** Fixed straight segments per curve. */
5664
+ curveSegments?: number;
5665
+ /** Max curve chord error in px (default 0.25). */
5666
+ curveTolerance?: number;
5667
+ /** Center the extruded 2D outline around (0, 0) in local XY (default true). */
5668
+ center?: boolean;
5669
+ }
5670
+ interface LatheGeometryOptions extends PrimitiveSurface {
5671
+ type: "lathe";
5672
+ /**
5673
+ * Profile curve in the XY plane revolved around the Y axis, as `[[r, y], ...]`
5674
+ * (or `{x, y}`) or an SVG path string. `x` (radius >= 0) is distance from the Y axis.
5675
+ */
5676
+ points: string | Array<[number, number] | Point2D>;
5677
+ /** Circumferential segments around the Y axis (default 32). */
5678
+ segments?: number;
5679
+ /** Start angle in degrees (default 0). */
5680
+ phiStart?: number;
5681
+ /** Sweep angle in degrees (default 360). */
5682
+ phiLength?: number;
5683
+ /** Cap the top and bottom openings when the profile starts/ends away from r = 0 (default false). */
5684
+ capped?: boolean;
5685
+ /** Alias for `capped`. */
5686
+ closed?: boolean;
5687
+ /** Flat-shade longitudinal segments (default false). */
5688
+ flatShaded?: boolean;
5689
+ }
5690
+ type TubePathSpec = {
5691
+ kind: "catmullRom";
5692
+ points: Vec3[];
5693
+ tension?: number;
5694
+ closed?: boolean;
5695
+ samplesPerSegment?: number;
5696
+ } | {
5697
+ kind: "bezier";
5698
+ segments: Array<{
5699
+ p0: Vec3;
5700
+ p1: Vec3;
5701
+ p2: Vec3;
5702
+ p3: Vec3;
5703
+ }>;
5704
+ samplesPerSegment?: number;
5705
+ } | {
5706
+ kind: "helix";
5707
+ center?: Vec3;
5708
+ radius: number;
5709
+ pitch: number;
5710
+ turns: number;
5711
+ axis?: "x" | "y" | "z";
5712
+ samplesPerTurn?: number;
5713
+ } | {
5714
+ kind: "circle";
5715
+ center?: Vec3;
5716
+ radius: number;
5717
+ startAngleDeg?: number;
5718
+ endAngleDeg?: number;
5719
+ samples?: number;
5720
+ } | Vec3[];
5721
+ interface TubeGeometryOptions extends PrimitiveSurface {
5722
+ type: "tube";
5723
+ /** 3D path specification or array of 3D waypoints `[x, y, z]`. */
5724
+ path: TubePathSpec;
5725
+ /** Outer radius of the tube (default 12). */
5726
+ radius?: number;
5727
+ /** Optional inner radius for a thick-walled hollow pipe (0 = solid tube with end caps). */
5728
+ innerRadius?: number;
5729
+ /** Optional end-to-end radius taper `[radiusStart, radiusEnd]`. */
5730
+ radiusTaper?: [number, number];
5731
+ /** Segments along the 3D path (default 64). */
5732
+ tubularSegments?: number;
5733
+ /** Segments around the circular cross-section (default 16). */
5734
+ radialSegments?: number;
5735
+ /** Close the tube loop smoothly from end to start (default false). */
5736
+ closed?: boolean;
5737
+ /** Cap the ends when not closed (default true). */
5738
+ capped?: boolean;
5739
+ }
5740
+ interface Line3DGeometryOptions extends PrimitiveSurface {
5741
+ type: "line3d";
5742
+ /** 3D polyline points `[x, y, z]` or a `TubePathSpec` curve. */
5743
+ points: TubePathSpec;
5744
+ /** Optional per-vertex CSS colors matching `points`. */
5745
+ colors?: string[];
5746
+ /** Connect consecutive points (`"strip"`, default) or pairs `(0,1), (2,3), ...` (`"segments"`). */
5747
+ mode?: "strip" | "segments";
5748
+ /** Close the polyline back to point 0 (default false). */
5749
+ closed?: boolean;
5750
+ /** Optional dash length in world px for dashed 3D diagram lines. */
5751
+ dashSize?: number;
5752
+ /** Gap length between dashes in world px (default `dashSize`). */
5753
+ gapSize?: number;
5754
+ }
5755
+ interface Points3DGeometryOptions extends PrimitiveSurface {
5756
+ type: "points3d";
5757
+ /** 3D point coordinates `[x, y, z]` or a `TubePathSpec` curve. */
5758
+ points: TubePathSpec;
5759
+ /** Optional per-point CSS colors. */
5760
+ colors?: string[];
5761
+ /**
5762
+ * Point radius in world px. When > 0 (default 0 = native GPU `point-list` pixels),
5763
+ * each point is tessellated into a low-poly icosahedral dot of radius `pointSize`
5764
+ * so diagram nodes have real 3D thickness and perspective size.
5765
+ */
5766
+ pointSize?: number;
5569
5767
  }
5570
5768
  interface ShardGeometryOptions extends PrimitiveSurface {
5571
5769
  type: "shard";
@@ -5887,7 +6085,7 @@ interface DrawMesh3DOpts extends SurfaceParams {
5887
6085
  transparent?: boolean;
5888
6086
  /** Whether vertex skinning is enabled */
5889
6087
  isSkinned?: boolean;
5890
- /** Skinning matrices (128 * 16 floats) */
6088
+ /** Skinning matrices (16 floats per joint) */
5891
6089
  skinningMatrices?: Float32Array;
5892
6090
  /** Pre-computed model matrix overriding position/rotation/scale if supplied */
5893
6091
  modelMatrix?: Mat4;
@@ -5928,6 +6126,8 @@ interface DrawMesh3DOpts extends SurfaceParams {
5928
6126
  firstInstance?: number;
5929
6127
  /** Storage buffer holding `InstanceData` structs (64 bytes per instance). */
5930
6128
  instanceBuffer?: GPUBuffer;
6129
+ /** Each instance stores a model matrix followed by its normal matrix. */
6130
+ matrixInstances?: boolean;
5931
6131
  /** Optional overall bounding box (e.g. for instanced clusters or swarms) for shadow frustum fitting. */
5932
6132
  bounds?: Aabb;
5933
6133
  }
@@ -5936,7 +6136,7 @@ interface Scene3DWorld {
5936
6136
  /** Present = physically based shading (see `Environment3DOptions`). */
5937
6137
  environment?: Environment3DOptions | null;
5938
6138
  /** From `renderShadowMap`, when a light casts shadows. */
5939
- shadow?: ShadowUniformInfo | null;
6139
+ shadow?: ShadowUniformInfo | ShadowUniformInfo[] | null;
5940
6140
  }
5941
6141
  /** Something that can fall into a shadow map. */
5942
6142
  type ShadowCaster3D = {
@@ -5952,6 +6152,9 @@ type ShadowCaster3D = {
5952
6152
  interface ShadowMapOptions3D {
5953
6153
  /** Texels per side. Default 2048. */
5954
6154
  mapSize?: number;
6155
+ /** Layer and total layers in the shadow texture array. */
6156
+ layer?: number;
6157
+ layerCount?: number;
5955
6158
  /** Edge blur in texels. Default 2.5. */
5956
6159
  softness?: number;
5957
6160
  /** 0..1. Default 1. */
@@ -5971,6 +6174,7 @@ declare class Renderer3D {
5971
6174
  private dofBindGroupLayout;
5972
6175
  private cameraPool;
5973
6176
  private lightsPool;
6177
+ private directLightsPool;
5974
6178
  private instancePool;
5975
6179
  private cameraUniformBindGroupCache;
5976
6180
  private samplerCache;
@@ -5995,6 +6199,7 @@ declare class Renderer3D {
5995
6199
  private modelCache;
5996
6200
  private lastCameraPose;
5997
6201
  private shadowTexture;
6202
+ private shadowTextures;
5998
6203
  private placeholderShadowTexture;
5999
6204
  private shadowSampler;
6000
6205
  private meshBounds;
@@ -6064,7 +6269,7 @@ declare class Renderer3D {
6064
6269
  drawSlugText(pass: GPURenderPassEncoder, cameraBindGroup: GPUBindGroup, lightsBindGroup: GPUBindGroup, batches: SlugGlyphBatch[], opts: DrawQuad3DOpts, stackBase?: number, useMrt?: boolean): void;
6065
6270
  drawTextureQuad(pass: GPURenderPassEncoder, cameraBindGroup: GPUBindGroup, lightsBindGroup: GPUBindGroup, texture: GPUTexture, opts: DrawQuad3DOpts, useMrt?: boolean): void;
6066
6271
  /** T(pos) * Rz * Ry * Rx * S, or the draw's precomputed model matrix. */
6067
- private meshModelMatrix;
6272
+ meshModelMatrix(opts: DrawMesh3DOpts): Mat4;
6068
6273
  getOrCreateMeshBuffers(mesh: Mesh3DData, wireframe?: boolean): GPUMeshBuffers;
6069
6274
  private ensureWireIndices;
6070
6275
  morphMesh(encoder: GPUCommandEncoder, mesh: Mesh3DData, weights: number[], wireframe?: boolean): GPUMeshBuffers;
@@ -6150,9 +6355,6 @@ declare class SSAOPipeline {
6150
6355
  render(commandEncoder: GPUCommandEncoder, depthView: GPUTextureView, normalView: GPUTextureView, rawAOView: GPUTextureView, finalAOView: GPUTextureView, options: SSAOPassOptions): void;
6151
6356
  destroy(): void;
6152
6357
  }
6153
- //#endregion
6154
- //#region src/renderer3d/text-extruder.d.ts
6155
-
6156
6358
  //#endregion
6157
6359
  //#region src/shader-store.d.ts
6158
6360
  interface RegisteredShader {
@@ -6564,5 +6766,5 @@ declare global {
6564
6766
  var __GATEWAI_DELAYS__: Set<number>;
6565
6767
  }
6566
6768
  //#endregion
6567
- export { AdvancedTextAnimatorBuilder as $, SegmentationOptions as $a, MediaOperation as $i, sampleCurveGeometry as $n, assertNever as $o, ConfigSchemaRegistry as $r, radians as $s, TextAnimatorBuilder as $t, Skeleton3D as A, NodeVisualConfig as Aa, FrameContext as Ai, VolumetricFormationModeSchema as An, TimelineTransformSchema as Ao, Vector3Math as Ar, isCssGradient as As, LineSpacingDynamicsSchema as At, loadFBX as B, ParsedGradient as Ba, HandleId as Bi, evaluateExpressionSelector as Bn, VideoStylePropsSchema as Bo, BaseMediaOperationProps as Br, mediaSourceRate as Bs, SelectorModeSchema as Bt, Renderer3D as C, NodeOperation as Ca, validateMediaTimeRemap as Cc, ExtendedLayerSchema as Ci, VariableFontAxes as Cn, TensorNode as Co, Matrix4Math as Cr, getLeafMediaType as Cs, GlyphAnchorGrouping as Ct, ShardGeometryOptions as D, NodeResultSchema as Da, FileData as Di, VolumetricFormationConfig as Dn, TextSpanMark as Do, ResolvedEnvironment as Dr, handleId as Ds, KineticMarqueeConfig as Dt, ShadowPipeline as E, NodeResult as Ea, FileAssetSchema as Ei, Vec2Schema as En, TextSpan as Eo, Path3DSample as Er, gradientStopsToOklab as Es, GlyphAnchorPointSchema as Et, buildWGSLSignalFn as F, ObjectBoundingBox as Fa, GeneratorSignalData as Fi, deterministicWigglyNoise as Fn, VideoAnimation as Fo, AnimationTypeSchema as Fr, isValueSignal as Fs, PathChainLUT as Ft, parseMTL as G, ProgrammaticSignalOptions as Ga, JsonObject as Gi, evaluateTypewriterState as Gn, VisionConfig as Go, CAPTION_LAYER_DEFAULTS as Gr, normalizeColorStops as Gs, SkewProperties as Gt, loadOBJ as H, Pixels as Ha, HandleType as Hi, evaluateSelectorCombination as Hn, VideoTimingPropsSchema as Ho, BaseVideoLayerProps as Hr, mixColors as Hs, SelectorShapeSchema as Ht, describeGpu as I, OpticalFlowOptions as Ia, GeneratorSignalDataSchema as Ii, distanceToCurveParameter as In, VideoAnimationSchema as Io, AnyOutputUnion as Ir, isVirtualMediaData as Is, PathChainLUTEntry as It, signalRegistry as J, RenderDiagnostic as Ja, Landmark3D as Ji, generatePathSegments as Jn, VisionVariant as Jo, CannyOptions as Jr, parseCssColor as Js, Spatial3DPropertiesSchema as Jt, parseOBJ as K, RadialExtent as Ka, JsonValue as Ki, evaluateVolumetricFormation as Kn, VisionNodeSpec as Ko, COMPOSITE_OPERATIONS as Kr, normalized as Ks, SkewPropertiesSchema as Kt, ensureDevice as L, Output$1 as La, GlobalCompositeOperation as Li, ellipseToCubicBeziers as Ln, VideoLayerType as Lo, AnyOutputUnionSchema as Lr, limitGradientStops as Ls, SelectorBasedOn as Lt, SlugPipeline as M, NormalRelightingOptions as Ma, FrameSignal as Mi, computeAnchorPivotOffset as Mn, TransitionSchema as Mo, parseColorToRgb as Mr, isFrameIndex as Ms, LongShadowConfigSchema as Mt, SphereGeometryOptions as N, Normalized as Na, GPUTextureBinding as Ni, computeLineLeadingDisplacement as Nn, TransitionType as No, resolveEnvironment as Nr, isNormalized as Ns, ParticleDissolveConfig as Nt, SignalRegistry as O, NodeRunFunction as Oa, FileDataSchema as Oi, VolumetricFormationConfigSchema as On, TimelineSegmentSchema as Oo, ShadowUniformInfo as Or, handleLabel as Os, KineticMarqueeConfigSchema as Ot, WebGPUAudioProcessor as P, NormalizedLandmarkList as Pa, GateSignalOptions as Pi, computeRangeSelectorWeight as Pn, TransitionTypeSchema as Po, AnimationType as Pr, isSignal as Ps, ParticleDissolveConfigSchema as Pt, AdvancedTextAnimator as Q, Seconds as Qa, MediaMetadataSchema as Qi, sampleAudioSpectrumScale as Qn, assertFps as Qo, ConfigHandleSchema as Qr, progressSignal as Qs, TextAnchorConfigSchema as Qt, initHeadlessWebGPU as R, OutputItem as Ra, Gradient as Ri, evaluateCubicBezier as Rn, VideoLayerTypeSchema as Ro, AudioExtractorSignalData as Rr, mediaSourceIsHold as Rs, SelectorBasedOnSchema as Rt, Renderer2D as S, NodeMetadataSchema as Sa, updateClockSignals as Sc, ExtendedLayer as Si, TypingCadenceSchema as Sn, TensorFormat as So, Mat4 as Sr, getFingerprint as Ss, ExtendedGlyphPropertiesSchema as St, SSAOPipeline as T, NodeProcessorParams as Ta, FileAsset as Ti, Vec2 as Tn, TextOperationSchema as To, Path3DPoint as Tr, getRenderFingerprint as Ts, GlyphAnchorPoint as Tt, lutStore as U, PoseSkeletonOptions as Ua, HandleTypeVal as Ui, evaluateSkewMatrix as Un, VirtualMediaData as Uo, BaseVideoLayerPropsSchema as Ur, ms as Us, SelectorUnits as Ut, loadModel3D as V, ParsedGradientStop as Va, HandleLabel as Vi, evaluateMarqueeOffset as Vn, VideoTextPropsSchema as Vo, BaseMediaOperationPropsSchema as Vr, mediaSourceTime as Vs, SelectorShape as Vt, parseFBX as W, ProgrammaticSignal as Wa, JsonArray as Wi, evaluateSpringProgress as Wn, VirtualMediaDataSchema as Wo, Brand as Wr, nodeId as Ws, SelectorUnitsSchema as Wt, AETextAnimator as X, Rgba as Xa, MIME_TYPES as Xi, getShuffledOrder as Xn, XYPosition as Xo, ColorStopLike as Xr, pixels as Xs, SpringPhysicsSchema as Xt, textureCache as Y, ResolvedMediaTimeRemap as Ya, MAX_GRADIENT_STOPS as Yi, getScramblePool as Yn, WritableSignal as Yo, Color$1 as Yr, parseCssGradient as Ys, SpringPhysics as Yt, AETextAnimatorSchema as Z, SampledMediaSignal as Za, MediaMetadata as Zi, parseSvgPathToCubicBeziers as Zn, appendOperation as Zo, ConfigHandle as Zr, programmaticSignal as Zs, TextAnchorConfig as Zt, Mesh3DData as _, MultiOutputGeneric as _a, signalBuilder as _c, EffectConfigValue as _i, TextWigglySelector as _n, SourceOperationSchema as _o, Light3D as _r, frameCount as _s, EnhancedTextNodeSchema as _t, AudioMeshDeformPipeline as a, MediaSourceRange as aa, resolveNumber as ac, DEFAULT_MEDIA_DIMENSION as ai, TextPathOptions as an, SignalData as ao, CameraShakeOptions as ar, createOutputItemSchema as as, AnimatableGlyphProps as at, NodeAnimationTrack3D as b, NodeInputConnection as ba, takeRenderDiagnostics as bc, ExportResult as bi, TypewriterAnimatorSchema as bn, TensorData as bo, LightsUniformData as br, getActiveMediaMetadata as bs, ExpressionSelectorSchema as bt, BlendMode as c, MediaTimeRemapInput as ca, rgbToOklab as cc, DataTypeEnum as ci, TextPathSourceSchema as cn, SignalGateDataSchema as co, ENVIRONMENT_PRESETS as cr, degrees as cs, AudioSpectrumTypography as ct, EffectPipeline as d, MediaTimeSignalRemap as da, sampleMediaSignal as dc, DeflickerOptions as di, TextScrambleConfig as dn, SignalStats as do, Environment3DOptions as dr, extractSvgDimensions as ds, ChromaticGlitchConfigSchema as dt, MediaOperationSchema as ea, registerSignalDependency as ec, ConnectedInput as ei, TextCursorConfig as en, Signal as eo, samplePathChainGeometry as er, checkNodeResultCache as es, AdvancedTextAnimatorSchema as et, GlassPipeline as f, MediaTimeSignalRemapSchema as fa, sampledMediaSourceRange as fc, Degrees as fi, TextScrambleConfigSchema as fn, SignalStatsSchema as fo, FrustumPlane as fr, findSourceAsset as fs, CubicBezierSegment as ft, Material3D as g, ModerationUnrefundableError as ga, signal as gc, EffectConfig as gi, TextSignalSelectorSchema as gn, SingleOutputGenericSchema as go, LIGHT_UNIFORM_SIZE_BYTES as gr, frameArraySignal as gs, EnhancedTextNode as gt, MasterAudioEntry as h, ModerationError as ha, serializeSignalData as hc, Effect as hi, TextSignalSelector as hn, SingleOutputGeneric as ho, HelixOptions as hr, frame as hs, DynamicStrokePropertiesSchema as ht, AudioLatentTrackCache as i, MediaSourceInput as ia, resolveMediaMimeType as ic, DEFAULT_FPS as ii, TextPathBuilder as in, SignalContext as io, Camera3DPose as ir, cosineSignal as is, AnchorPresetSchema as it, SlugFontCache as j, NodeVisualConfigSchema as ja, FrameIndex as ji, buildPathLUT as jn, TrackedObject as jo, linearRgb as jr, isEqual as js, LongShadowConfig as jt, SignalRegistryResource as k, NodeValidationFn as ka, Fps as ki, VolumetricFormationMode as kn, TimelineTransform as ko, Vec3 as kr, hasOnlySingleSource as ks, LineSpacingDynamics as kt, Bone3D as l, MediaTimeRemapInputSchema as la, sampleColorStops as lc, DataTypeVal as li, TextRangeSelector as ln, SignalMathData as lo, Environment3DFloor as lr, deserializeSignalData as ls, AudioSpectrumTypographySchema as lt, LoadModelOptions as m, Milliseconds as ma, seconds as mc, DetectedObject as mi, TextSelectorSchema as mn, SineSignalOptions as mo, GPULightData as mr, fps as ms, DynamicStrokeProperties as mt, AudioLatentData as n, MediaSignalRecorder as na, resolveBoolean as nc, DATA_TYPE_EXTENSIONS as ni, TextCursorStyle as nn, SignalChannelMeta as no, BezierSegment3D as nr, computeVideoCropRenderProps as ns, AnchorGroupingSchema as nt, AudioSignalComputeConfig as o, MediaSourceSchema as oa, resolveParam as oc, DataForType as oi, TextPathOptionsSchema as on, SignalDataSchema as oo, CatmullRomOptions as or, createVirtualMedia as os, AnimatableGlyphPropsSchema as ot, GpuAdapterDescription as p, MeshAudioDeformConfig as pa, sampledMediaSourceTime as pc, DepthNormalsOptions as pi, TextSelector as pn, SignalValue as po, FrustumPlanes as pr, formatHex as ps, CubicBezierSegmentSchema as pt, shaderStore as q, Radians as qa, JsonValueSchema as qi, generateArcLengthLUT as qn, VisionTask as qo, COMPOSITOR_DEFAULTS as qr, oklabToRgb as qs, Spatial3DProperties as qt, AudioLatentEngine as r, MediaSourceDescriptor as ra, resolveFrameRequest as rc, DEFAULT_DURATION_MS as ri, TextCursorStyleSchema as rn, SignalChannelMetaSchema as ro, Camera3D as rr, computed as rs, AnchorPreset as rt, AudioSignalComputePipeline as s, MediaTimeRemap as sa, resolveString as sc, DataType as si, TextPathSource as sn, SignalGateData as so, CirclePathOptions as sr, dataTypeColors as ss, ArcLengthLUTEntry as st, AnimationClip3D as t, MediaService as ta, reportRenderDiagnostic as tc, ControlNetConditioningOutputs as ti, TextCursorConfigSchema as tn, SignalBuilderConfig as to, waveToCubicBeziers as tr, compositionFrameContext as ts, AnchorGrouping as tt, CylinderGeometryOptions as u, MediaTimeRemapSchema as ua, sampleFrameMediaSignal as uc, DataTypes as ui, TextRangeSelectorSchema as un, SignalMathDataSchema as uo, Environment3DFog as ur, emojiPresentation as us, ChromaticGlitchConfig as ut, Model3DData as v, MultiOutputGenericSchema as va, sineSignal as vc, EffectDomain as vi, TextWigglySelectorSchema as vn, StorageService as vo, Light3DOptions as vr, frameSignal as vs, ExpressionEvaluationContext as vt, RoundedBoxGeometryOptions as w, NodeProcessorContext as wa, FaceLandmarksOptions as wi, VariableFontAxesSchema as wn, TensorPipelineConfig as wo, Path3D as wr, getMediaType as ws, GlyphAnchorGroupingSchema as wt, RenderContextValue as x, NodeMetadata as xa, timeSignal as xc, ExportResultSchema as xi, TypingCadence as xn, TensorDimensions as xo, MAX_LIGHTS as xr, getFileDataMetadata as xs, ExtendedGlyphProperties as xt, MotionBlurPipeline as y, NodeId as ya, stampResult as yc, EmojiPresentation as yi, TypewriterAnimator as yn, TEXT_LAYER_DEFAULTS as yo, LightKind as yr, generateId as ys, ExpressionSelector as yt, inputStore as z, OutputItemSchema as za, GradientType as zi, evaluateCubicBezierDerivative as zn, VideoSpatialPropsSchema as zo, AudioExtractorSignalDataSchema as zr, mediaSourceRange as zs, SelectorMode as zt };
6568
- //# sourceMappingURL=index-Ced1Ry4S.d.mts.map
6769
+ export { lutStore as $, PoseSkeletonOptions as $a, HandleTypeVal as $i, evaluateSkewMatrix as $n, VirtualMediaData as $o, BaseVideoLayerPropsSchema as $r, ms as $s, SelectorUnits as $t, RingGeometryOptions as A, NodeInputConnection as Aa, takeRenderDiagnostics as Ac, ExportResult as Ai, TypewriterAnimatorSchema as An, TensorData as Ao, LightsUniformData as Ar, getActiveMediaMetadata as As, ExpressionSelectorSchema as At, SphereGeometryOptions as B, NodeVisualConfig as Ba, FrameContext as Bi, VolumetricFormationModeSchema as Bn, TimelineTransformSchema as Bo, Vector3Math as Br, isCssGradient as Bs, LineSpacingDynamicsSchema as Bt, MotionBlurPipeline as C, MeshAudioDeformConfig as Ca, sampledMediaSourceTime as Cc, DepthNormalsOptions as Ci, TextSelector as Cn, SignalValue as Co, FrustumPlanes as Cr, formatHex as Cs, CubicBezierSegmentSchema as Ct, RenderContextValue as D, MultiOutputGeneric as Da, signalBuilder as Dc, EffectConfigValue as Di, TextWigglySelector as Dn, SourceOperationSchema as Do, Light3D as Dr, frameCount as Ds, EnhancedTextNodeSchema as Dt, PolyhedronGeometryOptions as E, ModerationUnrefundableError as Ea, signal as Ec, EffectConfig as Ei, TextSignalSelectorSchema as En, SingleOutputGenericSchema as Eo, LIGHT_UNIFORM_SIZE_BYTES as Er, frameArraySignal as Es, EnhancedTextNode as Et, SignalRegistry as F, NodeProcessorParams as Fa, FileAsset as Fi, Vec2 as Fn, TextOperationSchema as Fo, Path3DPoint as Fr, getRenderFingerprint as Fs, GlyphAnchorPoint as Ft, buildWGSLSignalFn as G, ObjectBoundingBox as Ga, GeneratorSignalData as Gi, deterministicWigglyNoise as Gn, VideoAnimation as Go, AnimationTypeSchema as Gr, isValueSignal as Gs, PathChainLUT as Gt, TubeGeometryOptions as H, NormalRelightingOptions as Ha, FrameSignal as Hi, computeAnchorPivotOffset as Hn, TransitionSchema as Ho, parseColorToRgb as Hr, isFrameIndex as Hs, LongShadowConfigSchema as Ht, SignalRegistryResource as I, NodeResult as Ia, FileAssetSchema as Ii, Vec2Schema as In, TextSpan as Io, Path3DSample as Ir, gradientStopsToOklab as Is, GlyphAnchorPointSchema as It, initHeadlessWebGPU as J, OutputItem as Ja, Gradient as Ji, evaluateCubicBezier as Jn, VideoLayerTypeSchema as Jo, AudioExtractorSignalData as Jr, mediaSourceIsHold as Js, SelectorBasedOnSchema as Jt, describeGpu as K, OpticalFlowOptions as Ka, GeneratorSignalDataSchema as Ki, distanceToCurveParameter as Kn, VideoAnimationSchema as Ko, AnyOutputUnion as Kr, isVirtualMediaData as Ks, PathChainLUTEntry as Kt, Skeleton3D as L, NodeResultSchema as La, FileData as Li, VolumetricFormationConfig as Ln, TextSpanMark as Lo, ResolvedEnvironment as Lr, handleId as Ls, KineticMarqueeConfig as Lt, SSAOPipeline as M, NodeMetadataSchema as Ma, updateClockSignals as Mc, ExtendedLayer as Mi, TypingCadenceSchema as Mn, TensorFormat as Mo, Mat4 as Mr, getFingerprint as Ms, ExtendedGlyphPropertiesSchema as Mt, ShadowPipeline as N, NodeOperation as Na, validateMediaTimeRemap as Nc, ExtendedLayerSchema as Ni, VariableFontAxes as Nn, TensorNode as No, Matrix4Math as Nr, getLeafMediaType as Ns, GlyphAnchorGrouping as Nt, Renderer2D as O, MultiOutputGenericSchema as Oa, sineSignal as Oc, EffectDomain as Oi, TextWigglySelectorSchema as On, StorageService as Oo, Light3DOptions as Or, frameSignal as Os, ExpressionEvaluationContext as Ot, ShardGeometryOptions as P, NodeProcessorContext as Pa, FaceLandmarksOptions as Pi, VariableFontAxesSchema as Pn, TensorPipelineConfig as Po, Path3D as Pr, getMediaType as Ps, GlyphAnchorGroupingSchema as Pt, loadOBJ as Q, Pixels as Qa, HandleType as Qi, evaluateSelectorCombination as Qn, VideoTimingPropsSchema as Qo, BaseVideoLayerProps as Qr, mixColors as Qs, SelectorShapeSchema as Qt, SlugFontCache as R, NodeRunFunction as Ra, FileDataSchema as Ri, VolumetricFormationConfigSchema as Rn, TimelineSegmentSchema as Ro, ShadowUniformInfo as Rr, handleLabel as Rs, KineticMarqueeConfigSchema as Rt, Model3DData as S, MediaTimeSignalRemapSchema as Sa, sampledMediaSourceRange as Sc, Degrees as Si, TextScrambleConfigSchema as Sn, SignalStatsSchema as So, FrustumPlane as Sr, findSourceAsset as Ss, CubicBezierSegment as St, Points3DGeometryOptions as T, ModerationError as Ta, serializeSignalData as Tc, Effect as Ti, TextSignalSelector as Tn, SingleOutputGeneric as To, HelixOptions as Tr, frame as Ts, DynamicStrokePropertiesSchema as Tt, TubePathSpec as U, Normalized as Ua, GPUTextureBinding as Ui, computeLineLeadingDisplacement as Un, TransitionType as Uo, resolveEnvironment as Ur, isNormalized as Us, ParticleDissolveConfig as Ut, TorusGeometryOptions as V, NodeVisualConfigSchema as Va, FrameIndex as Vi, buildPathLUT as Vn, TrackedObject as Vo, linearRgb as Vr, isEqual as Vs, LongShadowConfig as Vt, WebGPUAudioProcessor as W, NormalizedLandmarkList as Wa, GateSignalOptions as Wi, computeRangeSelectorWeight as Wn, TransitionTypeSchema as Wo, AnimationType as Wr, isSignal as Ws, ParticleDissolveConfigSchema as Wt, loadFBX as X, ParsedGradient as Xa, HandleId as Xi, evaluateExpressionSelector as Xn, VideoStylePropsSchema as Xo, BaseMediaOperationProps as Xr, mediaSourceRate as Xs, SelectorModeSchema as Xt, inputStore as Y, OutputItemSchema as Ya, GradientType as Yi, evaluateCubicBezierDerivative as Yn, VideoSpatialPropsSchema as Yo, AudioExtractorSignalDataSchema as Yr, mediaSourceRange as Ys, SelectorMode as Yt, loadModel3D as Z, ParsedGradientStop as Za, HandleLabel as Zi, evaluateMarqueeOffset as Zn, VideoTextPropsSchema as Zo, BaseMediaOperationPropsSchema as Zr, mediaSourceTime as Zs, SelectorShape as Zt, Line3DGeometryOptions as _, MediaTimeRemap as _a, resolveString as _c, DataType as _i, TextPathSource as _n, SignalGateData as _o, CirclePathOptions as _r, dataTypeColors as _s, ArcLengthLUTEntry as _t, AudioMeshDeformPipeline as a, MAX_GRADIENT_STOPS as aa, parseCssGradient as ac, Color$1 as ai, SpringPhysics as an, ResolvedMediaTimeRemap as ao, getScramblePool as ar, WritableSignal as as, textureCache as at, Material3D as b, MediaTimeRemapSchema as ba, sampleFrameMediaSignal as bc, DataTypes as bi, TextRangeSelectorSchema as bn, SignalMathDataSchema as bo, Environment3DFog as br, emojiPresentation as bs, ChromaticGlitchConfig as bt, BlendMode as c, MediaMetadataSchema as ca, progressSignal as cc, ConfigHandleSchema as ci, TextAnchorConfigSchema as cn, Seconds as co, sampleAudioSpectrumScale as cr, assertFps as cs, AdvancedTextAnimator as ct, CylinderGeometryOptions as d, MediaService as da, reportRenderDiagnostic as dc, ControlNetConditioningOutputs as di, TextCursorConfigSchema as dn, SignalBuilderConfig as do, waveToCubicBeziers as dr, compositionFrameContext as ds, AnchorGrouping as dt, JsonArray as ea, nodeId as ec, Brand as ei, SelectorUnitsSchema as en, ProgrammaticSignal as eo, evaluateSpringProgress as er, VirtualMediaDataSchema as es, parseFBX as et, EffectPipeline as f, MediaSignalRecorder as fa, resolveBoolean as fc, DATA_TYPE_EXTENSIONS as fi, TextCursorStyle as fn, SignalChannelMeta as fo, BezierSegment3D as fr, computeVideoCropRenderProps as fs, AnchorGroupingSchema as ft, LatheGeometryOptions as g, MediaSourceSchema as ga, resolveParam as gc, DataForType as gi, TextPathOptionsSchema as gn, SignalDataSchema as go, CatmullRomOptions as gr, createVirtualMedia as gs, AnimatableGlyphPropsSchema as gt, GpuAdapterDescription as h, MediaSourceRange as ha, resolveNumber as hc, DEFAULT_MEDIA_DIMENSION as hi, TextPathOptions as hn, SignalData as ho, CameraShakeOptions as hr, createOutputItemSchema as hs, AnimatableGlyphProps as ht, AudioLatentTrackCache as i, Landmark3D as ia, parseCssColor as ic, CannyOptions as ii, Spatial3DPropertiesSchema as in, RenderDiagnostic as io, generatePathSegments as ir, VisionVariant as is, signalRegistry as it, RoundedBoxGeometryOptions as j, NodeMetadata as ja, timeSignal as jc, ExportResultSchema as ji, TypingCadence as jn, TensorDimensions as jo, MAX_LIGHTS as jr, getFileDataMetadata as js, ExtendedGlyphProperties as jt, Renderer3D as k, NodeId as ka, stampResult as kc, EmojiPresentation as ki, TypewriterAnimator as kn, TEXT_LAYER_DEFAULTS as ko, LightKind as kr, generateId as ks, ExpressionSelector as kt, Bone3D as l, MediaOperation as la, radians as lc, ConfigSchemaRegistry as li, TextAnimatorBuilder as ln, SegmentationOptions as lo, sampleCurveGeometry as lr, assertNever as ls, AdvancedTextAnimatorBuilder as lt, GlassPipeline as m, MediaSourceInput as ma, resolveMediaMimeType as mc, DEFAULT_FPS as mi, TextPathBuilder as mn, SignalContext as mo, Camera3DPose as mr, cosineSignal as ms, AnchorPresetSchema as mt, AudioLatentData as n, JsonValue as na, normalized as nc, COMPOSITE_OPERATIONS as ni, SkewPropertiesSchema as nn, RadialExtent as no, evaluateVolumetricFormation as nr, VisionNodeSpec as ns, parseOBJ as nt, AudioSignalComputeConfig as o, MIME_TYPES as oa, pixels as oc, ColorStopLike as oi, SpringPhysicsSchema as on, Rgba as oo, getShuffledOrder as or, XYPosition as os, AETextAnimator as ot, ExtrudeShapeGeometryOptions as p, MediaSourceDescriptor as pa, resolveFrameRequest as pc, DEFAULT_DURATION_MS as pi, TextCursorStyleSchema as pn, SignalChannelMetaSchema as po, Camera3D as pr, computed as ps, AnchorPreset as pt, ensureDevice as q, Output$1 as qa, GlobalCompositeOperation as qi, ellipseToCubicBeziers as qn, VideoLayerType as qo, AnyOutputUnionSchema as qr, limitGradientStops as qs, SelectorBasedOn as qt, AudioLatentEngine as r, JsonValueSchema as ra, oklabToRgb as rc, COMPOSITOR_DEFAULTS as ri, Spatial3DProperties as rn, Radians as ro, generateArcLengthLUT as rr, VisionTask as rs, shaderStore as rt, AudioSignalComputePipeline as s, MediaMetadata as sa, programmaticSignal as sc, ConfigHandle as si, TextAnchorConfig as sn, SampledMediaSignal as so, parseSvgPathToCubicBeziers as sr, appendOperation as ss, AETextAnimatorSchema as st, AnimationClip3D as t, JsonObject as ta, normalizeColorStops as tc, CAPTION_LAYER_DEFAULTS as ti, SkewProperties as tn, ProgrammaticSignalOptions as to, evaluateTypewriterState as tr, VisionConfig as ts, parseMTL as tt, CapsuleGeometryOptions as u, MediaOperationSchema as ua, registerSignalDependency as uc, ConnectedInput as ui, TextCursorConfig as un, Signal as uo, samplePathChainGeometry as ur, checkNodeResultCache as us, AdvancedTextAnimatorSchema as ut, LoadModelOptions as v, MediaTimeRemapInput as va, rgbToOklab as vc, DataTypeEnum as vi, TextPathSourceSchema as vn, SignalGateDataSchema as vo, ENVIRONMENT_PRESETS as vr, degrees as vs, AudioSpectrumTypography as vt, NodeAnimationTrack3D as w, Milliseconds as wa, seconds as wc, DetectedObject as wi, TextSelectorSchema as wn, SineSignalOptions as wo, GPULightData as wr, fps as ws, DynamicStrokeProperties as wt, Mesh3DData as x, MediaTimeSignalRemap as xa, sampleMediaSignal as xc, DeflickerOptions as xi, TextScrambleConfig as xn, SignalStats as xo, Environment3DOptions as xr, extractSvgDimensions as xs, ChromaticGlitchConfigSchema as xt, MasterAudioEntry as y, MediaTimeRemapInputSchema as ya, sampleColorStops as yc, DataTypeVal as yi, TextRangeSelector as yn, SignalMathData as yo, Environment3DFloor as yr, deserializeSignalData as ys, AudioSpectrumTypographySchema as yt, SlugPipeline as z, NodeValidationFn as za, Fps as zi, VolumetricFormationMode as zn, TimelineTransform as zo, Vec3 as zr, hasOnlySingleSource as zs, LineSpacingDynamics as zt };
6770
+ //# sourceMappingURL=index-D5UDyVMb.d.mts.map