framefields 2.9.3 → 2.10.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/NOTICE.md +4 -0
  2. package/README.md +9 -2
  3. package/dist/audio/index.d.mts +5 -5
  4. package/dist/audio/index.mjs +13 -13
  5. package/dist/{audio-D6tBMbHh.d.mts → audio-1X5qNNmk.d.mts} +4 -4
  6. package/dist/{audio-D6tBMbHh.d.mts.map → audio-1X5qNNmk.d.mts.map} +1 -1
  7. package/dist/{audio-BlDbnteH.mjs → audio-KHBadECb.mjs} +1 -1
  8. package/dist/{audio-BlDbnteH.mjs.map → audio-KHBadECb.mjs.map} +1 -1
  9. package/dist/{audio-B6RmYOPe.mjs → audio-YpBRdI7r.mjs} +4 -4
  10. package/dist/{audio-B6RmYOPe.mjs.map → audio-YpBRdI7r.mjs.map} +1 -1
  11. package/dist/{check-result-Bj7g62ka.mjs → check-result-Culfu7Nx.mjs} +1 -1
  12. package/dist/{check-result-Bj7g62ka.mjs.map → check-result-Culfu7Nx.mjs.map} +1 -1
  13. package/dist/cli/check-worker.mjs +50 -50
  14. package/dist/cli.mjs +179 -3
  15. package/dist/cli.mjs.map +1 -1
  16. package/dist/cloud/index.d.mts +118 -0
  17. package/dist/cloud/index.d.mts.map +1 -0
  18. package/dist/cloud/index.mjs +3 -0
  19. package/dist/cloud-xcfV4J03.mjs +233 -0
  20. package/dist/cloud-xcfV4J03.mjs.map +1 -0
  21. package/dist/components/index.d.mts +14 -14
  22. package/dist/components/index.mjs +47 -47
  23. package/dist/{dist-Dq5TkNDI.mjs → dist-2_lT3Dwc.mjs} +2 -2
  24. package/dist/{dist-Dq5TkNDI.mjs.map → dist-2_lT3Dwc.mjs.map} +1 -1
  25. package/dist/{dist-Cn8bDsQF.mjs → dist-BIE8fvlv.mjs} +1 -1
  26. package/dist/{dist-Cn8bDsQF.mjs.map → dist-BIE8fvlv.mjs.map} +1 -1
  27. package/dist/{dist-ByxHoMQI.mjs → dist-Bf2_efYP.mjs} +1 -1
  28. package/dist/{dist-ByxHoMQI.mjs.map → dist-Bf2_efYP.mjs.map} +1 -1
  29. package/dist/{dist-BlulwErl.mjs → dist-BwtxciN4.mjs} +1 -1
  30. package/dist/{dist-D12-a3-x.mjs → dist-C4Vxgm0Q.mjs} +275 -78
  31. package/dist/dist-C4Vxgm0Q.mjs.map +1 -0
  32. package/dist/{dist-DEUU6sNe.mjs → dist-Cu1fZ9Uy.mjs} +4 -4
  33. package/dist/{dist-DEUU6sNe.mjs.map → dist-Cu1fZ9Uy.mjs.map} +1 -1
  34. package/dist/{dist-DL1GwJvs.mjs → dist-CySGkG54.mjs} +2 -2
  35. package/dist/dist-CySGkG54.mjs.map +1 -0
  36. package/dist/effects/index.d.mts +6 -6
  37. package/dist/effects/index.mjs +36 -36
  38. package/dist/{effects-CViUoQSV.mjs → effects-DiWYouOK.mjs} +3 -3
  39. package/dist/{effects-CViUoQSV.mjs.map → effects-DiWYouOK.mjs.map} +1 -1
  40. package/dist/fonts/index.d.mts +1 -1
  41. package/dist/fonts/index.mjs +3 -3
  42. package/dist/{fonts-B0U2KO5I.mjs → fonts-BnV-GB1o.mjs} +2 -2
  43. package/dist/{fonts-B0U2KO5I.mjs.map → fonts-BnV-GB1o.mjs.map} +1 -1
  44. package/dist/{gpu-zFNrvhV9.mjs → gpu-Bw35AMwY.mjs} +11 -3
  45. package/dist/gpu-Bw35AMwY.mjs.map +1 -0
  46. package/dist/{index-Bzo1uj8h.d.mts → index-B7WqFBZA.d.mts} +33 -2
  47. package/dist/index-B7WqFBZA.d.mts.map +1 -0
  48. package/dist/{index-BuYtrhzL.d.mts → index-BW0Q1ygn.d.mts} +1 -1
  49. package/dist/{index-BuYtrhzL.d.mts.map → index-BW0Q1ygn.d.mts.map} +1 -1
  50. package/dist/{index-C6GcuYVA.d.mts → index-Bbv0VtxJ.d.mts} +6 -6
  51. package/dist/{index-C6GcuYVA.d.mts.map → index-Bbv0VtxJ.d.mts.map} +1 -1
  52. package/dist/{index-w28KUM9A.d.mts → index-CDQrdZ0J.d.mts} +3 -3
  53. package/dist/{index-w28KUM9A.d.mts.map → index-CDQrdZ0J.d.mts.map} +1 -1
  54. package/dist/{index-9_4X2ro1.d.mts → index-COYNQ_mf.d.mts} +1 -1
  55. package/dist/{index-9_4X2ro1.d.mts.map → index-COYNQ_mf.d.mts.map} +1 -1
  56. package/dist/{index-CgGM31I9.d.mts → index-CdCrae-I.d.mts} +2 -2
  57. package/dist/{index-CgGM31I9.d.mts.map → index-CdCrae-I.d.mts.map} +1 -1
  58. package/dist/{index-DBhswLMO.d.mts → index-DQa7mhzq.d.mts} +2 -2
  59. package/dist/{index-DBhswLMO.d.mts.map → index-DQa7mhzq.d.mts.map} +1 -1
  60. package/dist/{index-B9Lm1x8i.d.mts → index-Dyt4yS-x.d.mts} +376 -288
  61. package/dist/index-Dyt4yS-x.d.mts.map +1 -0
  62. package/dist/{index-svAgwTY_.d.mts → index-WwuuX8ZJ.d.mts} +25 -23
  63. package/dist/index-WwuuX8ZJ.d.mts.map +1 -0
  64. package/dist/{index-V0ZQ4JN6.d.mts → index-gOVtTm-P.d.mts} +125 -3
  65. package/dist/index-gOVtTm-P.d.mts.map +1 -0
  66. package/dist/{index-f4IF1vRH.d.mts → index-h7m8QgcL.d.mts} +3 -3
  67. package/dist/{index-f4IF1vRH.d.mts.map → index-h7m8QgcL.d.mts.map} +1 -1
  68. package/dist/index.d.mts +16 -16
  69. package/dist/index.mjs +59 -59
  70. package/dist/preview/index.d.mts +4 -4
  71. package/dist/preview/index.mjs +12 -12
  72. package/dist/{preview-ZKJ_zTmd.mjs → preview-BW7ilNWk.mjs} +3 -3
  73. package/dist/{preview-ZKJ_zTmd.mjs.map → preview-BW7ilNWk.mjs.map} +1 -1
  74. package/dist/preview-engine/audio.mjs +1 -1
  75. package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
  76. package/dist/preview-engine/{chunk-5AWAOMBR.mjs → chunk-4BWBX2HM.mjs} +1 -1
  77. package/dist/preview-engine/{chunk-BEYA25UZ.mjs → chunk-4DSOZ5QG.mjs} +1 -1
  78. package/dist/preview-engine/{chunk-VVE2QHVG.mjs → chunk-4FACCLLE.mjs} +1 -1
  79. package/dist/preview-engine/{chunk-DMSZXG56.mjs → chunk-4N25ZU43.mjs} +1 -1
  80. package/dist/preview-engine/{chunk-FTCEG3SF.mjs → chunk-4RLKHFV6.mjs} +1 -1
  81. package/dist/preview-engine/chunk-4TPXZNVR.mjs +483 -0
  82. package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
  83. package/dist/preview-engine/{chunk-CC4NNNIY.mjs → chunk-57WXGYEV.mjs} +1 -1
  84. package/dist/preview-engine/{chunk-C4M3B2Q2.mjs → chunk-5SLBE2FX.mjs} +1 -1
  85. package/dist/preview-engine/{chunk-PM2W4VLT.mjs → chunk-5Y7SO37Q.mjs} +1 -1
  86. package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
  87. package/dist/preview-engine/{chunk-Y5K5LVOR.mjs → chunk-6BE3IL7L.mjs} +1 -1
  88. package/dist/preview-engine/{chunk-GA4HNR44.mjs → chunk-6LBFSGCI.mjs} +1 -1
  89. package/dist/preview-engine/{chunk-IB6GZJOL.mjs → chunk-6O55UROD.mjs} +1 -1
  90. package/dist/preview-engine/{chunk-SPJPM43P.mjs → chunk-6SLCECHG.mjs} +1 -1
  91. package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
  92. package/dist/preview-engine/{chunk-QCSVT73T.mjs → chunk-7A3BNAWY.mjs} +84 -25
  93. package/dist/preview-engine/{chunk-CN2VLYLB.mjs → chunk-7HW7GA76.mjs} +1 -1
  94. package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
  95. package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
  96. package/dist/preview-engine/{chunk-LVYVXVZO.mjs → chunk-C2GX5L5S.mjs} +1 -1
  97. package/dist/preview-engine/{chunk-4WYM72ZN.mjs → chunk-CHXR5XZK.mjs} +1 -1
  98. package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
  99. package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
  100. package/dist/preview-engine/{chunk-RJIAES3X.mjs → chunk-EKEKYGXE.mjs} +1 -1
  101. package/dist/preview-engine/{chunk-TNJEZKXM.mjs → chunk-FH72KTSM.mjs} +1 -1
  102. package/dist/preview-engine/{chunk-P5FKRQFU.mjs → chunk-FW2UDDUT.mjs} +1 -1
  103. package/dist/preview-engine/{chunk-S2ABWY5G.mjs → chunk-GTMZOMAN.mjs} +1 -1
  104. package/dist/preview-engine/{chunk-6R3UJBL5.mjs → chunk-HGWT3RVQ.mjs} +10 -10
  105. package/dist/preview-engine/{chunk-34RJ7GAS.mjs → chunk-HKYENGC5.mjs} +1 -1
  106. package/dist/preview-engine/{chunk-7U34VKNO.mjs → chunk-HO7FXISJ.mjs} +1 -1
  107. package/dist/preview-engine/{chunk-73CNXGAK.mjs → chunk-HPQDCC4S.mjs} +1 -1
  108. package/dist/preview-engine/{chunk-ZY47XIRK.mjs → chunk-IVAA5X5H.mjs} +1 -1
  109. package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
  110. package/dist/preview-engine/{chunk-UXYM2G6J.mjs → chunk-JFBSNFN6.mjs} +1 -1
  111. package/dist/preview-engine/{chunk-GIICZZQI.mjs → chunk-JSKEVYKD.mjs} +1 -1
  112. package/dist/preview-engine/{chunk-EJJITH6U.mjs → chunk-K3TJJXVC.mjs} +1 -1
  113. package/dist/preview-engine/{chunk-GZWA5QJS.mjs → chunk-L2NTIWW5.mjs} +1 -1
  114. package/dist/preview-engine/{chunk-VN36PRVD.mjs → chunk-LBP7E7SJ.mjs} +1 -1
  115. package/dist/preview-engine/{chunk-34DL53D5.mjs → chunk-LTR5FXGU.mjs} +1 -1
  116. package/dist/preview-engine/{chunk-GRJJVSOV.mjs → chunk-ML7WO27M.mjs} +1 -1
  117. package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
  118. package/dist/preview-engine/{chunk-OH5W5EL6.mjs → chunk-NTTEGJD6.mjs} +1 -1
  119. package/dist/preview-engine/{chunk-2B722GXM.mjs → chunk-OD4CSXZL.mjs} +15 -15
  120. package/dist/preview-engine/{chunk-AHQCDTD6.mjs → chunk-OOUDE4XL.mjs} +1 -1
  121. package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
  122. package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
  123. package/dist/preview-engine/{chunk-ZJ5SWTCW.mjs → chunk-RAW2I27S.mjs} +1 -1
  124. package/dist/preview-engine/{chunk-BJV2LBII.mjs → chunk-RMHL4XZ3.mjs} +1 -1
  125. package/dist/preview-engine/chunk-T6L3DO3H.mjs +1 -0
  126. package/dist/preview-engine/{chunk-2PYTDN2C.mjs → chunk-V5HU6NIW.mjs} +1 -1
  127. package/dist/preview-engine/{chunk-DVZITDQS.mjs → chunk-VRJBOFFY.mjs} +1 -1
  128. package/dist/preview-engine/{chunk-SF37HXAH.mjs → chunk-WVIDORLK.mjs} +1 -1
  129. package/dist/preview-engine/{chunk-35HMRW4I.mjs → chunk-XCQ7KN4S.mjs} +1 -1
  130. package/dist/preview-engine/{chunk-KHJZMTOS.mjs → chunk-Y2SWIWIU.mjs} +1 -1
  131. package/dist/preview-engine/{chunk-H7BSN7V7.mjs → chunk-YS3ROS25.mjs} +1 -1
  132. package/dist/preview-engine/{chunk-2DWY7UBV.mjs → chunk-YXCTOCQ2.mjs} +1 -1
  133. package/dist/preview-engine/{chunk-BVDWS3D2.mjs → chunk-ZA5LWHRM.mjs} +1 -1
  134. package/dist/preview-engine/chunk-ZGEKF34E.mjs +1974 -0
  135. package/dist/preview-engine/components.mjs +1 -1
  136. package/dist/preview-engine/effects.mjs +1 -1
  137. package/dist/preview-engine/fonts.mjs +1 -1
  138. package/dist/preview-engine/framefields.mjs +1 -1
  139. package/dist/preview-engine/player.mjs +1 -1
  140. package/dist/preview-engine/renderers-33PIDDZC.mjs +1 -0
  141. package/dist/preview-engine/{renderers-ZACSHGNZ.mjs → renderers-36P2TKPC.mjs} +1 -1
  142. package/dist/preview-engine/{renderers-TSBV4KPE.mjs → renderers-37Y5LR2S.mjs} +1 -1
  143. package/dist/preview-engine/renderers-3AZ3HY53.mjs +1 -0
  144. package/dist/preview-engine/renderers-3FGKW52B.mjs +1 -0
  145. package/dist/preview-engine/renderers-4A2FBS3Y.mjs +1 -0
  146. package/dist/preview-engine/{renderers-5TO2SXFR.mjs → renderers-4MW4NW6O.mjs} +1 -1
  147. package/dist/preview-engine/{renderers-ENMY4DKF.mjs → renderers-4SNAK77B.mjs} +1 -1
  148. package/dist/preview-engine/{renderers-Y22VSOXF.mjs → renderers-4WFRXGMR.mjs} +1 -1
  149. package/dist/preview-engine/{renderers-5KANN7XF.mjs → renderers-5K3BSBI6.mjs} +1 -1
  150. package/dist/preview-engine/renderers-65DU2F5W.mjs +1 -0
  151. package/dist/preview-engine/renderers-6CTPYQR6.mjs +1 -0
  152. package/dist/preview-engine/{renderers-NUAI4TO5.mjs → renderers-6RRWA33X.mjs} +1 -1
  153. package/dist/preview-engine/{renderers-4F7WLQD5.mjs → renderers-6RYIPQ7W.mjs} +1 -1
  154. package/dist/preview-engine/{renderers-U4M7ZCV4.mjs → renderers-AUYCQNSS.mjs} +1 -1
  155. package/dist/preview-engine/renderers-AWODRI3B.mjs +1 -0
  156. package/dist/preview-engine/renderers-BO6HHGMZ.mjs +1 -0
  157. package/dist/preview-engine/renderers-BSXYDEV7.mjs +1 -0
  158. package/dist/preview-engine/{renderers-FSI5KNGZ.mjs → renderers-CMBI4JOC.mjs} +1 -1
  159. package/dist/preview-engine/{renderers-6Z7DWAPH.mjs → renderers-CQIPHCIW.mjs} +1 -1
  160. package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
  161. package/dist/preview-engine/renderers-ECW2CGNU.mjs +1 -0
  162. package/dist/preview-engine/renderers-EEX22FUO.mjs +1 -0
  163. package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
  164. package/dist/preview-engine/{renderers-NCGH2WWJ.mjs → renderers-G2FL3IFD.mjs} +1 -1
  165. package/dist/preview-engine/{renderers-5XRKZHVT.mjs → renderers-GCQKGJ7W.mjs} +1 -1
  166. package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
  167. package/dist/preview-engine/renderers-HZBXLDKG.mjs +1 -0
  168. package/dist/preview-engine/renderers-IOXNQPQK.mjs +1 -0
  169. package/dist/preview-engine/renderers-IR44E4ZZ.mjs +1 -0
  170. package/dist/preview-engine/{renderers-TGJSOKDY.mjs → renderers-JALV3B3A.mjs} +1 -1
  171. package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
  172. package/dist/preview-engine/{renderers-CUMVIVHI.mjs → renderers-JZYHX4XI.mjs} +1 -1
  173. package/dist/preview-engine/renderers-JZZ3ODOZ.mjs +1 -0
  174. package/dist/preview-engine/renderers-K37YL3Z7.mjs +1 -0
  175. package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
  176. package/dist/preview-engine/renderers-KUJQV3K6.mjs +1 -0
  177. package/dist/preview-engine/renderers-KXVKLSSX.mjs +1 -0
  178. package/dist/preview-engine/{renderers-WEYAHOBK.mjs → renderers-LF6U4MR5.mjs} +1 -1
  179. package/dist/preview-engine/renderers-N4RVFX3G.mjs +1 -0
  180. package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
  181. package/dist/preview-engine/renderers-NZWWEAYA.mjs +1 -0
  182. package/dist/preview-engine/{renderers-5UZ3YFBD.mjs → renderers-OPRXVIGT.mjs} +1 -1
  183. package/dist/preview-engine/{renderers-7C5RA3R5.mjs → renderers-OZKPOUMW.mjs} +1 -1
  184. package/dist/preview-engine/renderers-P4JJEDZB.mjs +1 -0
  185. package/dist/preview-engine/{renderers-V3AQO7AR.mjs → renderers-PGZDFDSC.mjs} +1 -1
  186. package/dist/preview-engine/renderers-Q4572F5C.mjs +1 -0
  187. package/dist/preview-engine/{renderers-PIIEUKFE.mjs → renderers-Q5YCUPYE.mjs} +1 -1
  188. package/dist/preview-engine/renderers-QAX2QWWQ.mjs +1 -0
  189. package/dist/preview-engine/{renderers-SEIAUKJF.mjs → renderers-RQ3JZE3L.mjs} +1 -1
  190. package/dist/preview-engine/renderers-SRFIEVWL.mjs +1 -0
  191. package/dist/preview-engine/renderers-SYC6WFTM.mjs +1 -0
  192. package/dist/preview-engine/{renderers-QA2HKUJJ.mjs → renderers-TKHQRERE.mjs} +1 -1
  193. package/dist/preview-engine/{renderers-A24KZK2Q.mjs → renderers-U4S577ON.mjs} +1 -1
  194. package/dist/preview-engine/{renderers-KC6ZSKCW.mjs → renderers-UBIFSF37.mjs} +1 -1
  195. package/dist/preview-engine/renderers-UH4WN3QN.mjs +1 -0
  196. package/dist/preview-engine/renderers-V4FFCAS7.mjs +1 -0
  197. package/dist/preview-engine/renderers-VGDEOZUU.mjs +1 -0
  198. package/dist/preview-engine/renderers-VJJKBX5K.mjs +1 -0
  199. package/dist/preview-engine/renderers-VJOKVDYW.mjs +1 -0
  200. package/dist/preview-engine/renderers-VUUWZUOH.mjs +1 -0
  201. package/dist/preview-engine/renderers-WG756VF3.mjs +228 -0
  202. package/dist/preview-engine/renderers-WOP5GOZP.mjs +1 -0
  203. package/dist/preview-engine/{renderers-T74CQCEN.mjs → renderers-XZ3XDQIN.mjs} +1 -1
  204. package/dist/preview-engine/renderers-Y4MGN2FR.mjs +1 -0
  205. package/dist/preview-engine/renderers-YAMYH7IK.mjs +1 -0
  206. package/dist/preview-engine/{renderers-MD3PRFZL.mjs → renderers-YJ4PJEPG.mjs} +1 -1
  207. package/dist/preview-engine/renderers-ZNLSAWW3.mjs +1 -0
  208. package/dist/preview-engine/{renderers-L6YDX6GS.mjs → renderers-ZQVKE5AO.mjs} +1 -1
  209. package/dist/preview-engine/signals.mjs +1 -1
  210. package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-GPF7RIBU.mjs} +1 -1
  211. package/dist/{program-xjIwjKb6.mjs → program-BUjUTdxq.mjs} +44 -17
  212. package/dist/program-BUjUTdxq.mjs.map +1 -0
  213. package/dist/registry/focus-zoom.json +9 -2
  214. package/dist/renderer/index.d.mts +4 -4
  215. package/dist/renderer/index.mjs +4 -4
  216. package/dist/{renderer-B3IRvukr.mjs → renderer--f8JHHyT.mjs} +5 -5
  217. package/dist/{renderer-B3IRvukr.mjs.map → renderer--f8JHHyT.mjs.map} +1 -1
  218. package/dist/{renderer-BWMzjSgf.mjs → renderer-1KgHl_ls.mjs} +5 -5
  219. package/dist/{renderer-BWMzjSgf.mjs.map → renderer-1KgHl_ls.mjs.map} +1 -1
  220. package/dist/renderer-6sNr6ZRJ.mjs +6 -0
  221. package/dist/{renderer-CpedZNEG.mjs → renderer-7c0ecb-L.mjs} +74 -21
  222. package/dist/renderer-7c0ecb-L.mjs.map +1 -0
  223. package/dist/{renderer-B78W9uad.mjs → renderer-7w9PZmWJ.mjs} +4 -4
  224. package/dist/{renderer-B78W9uad.mjs.map → renderer-7w9PZmWJ.mjs.map} +1 -1
  225. package/dist/{renderer-CDVb4OfJ.mjs → renderer-B3WHDQeB.mjs} +5 -5
  226. package/dist/{renderer-CDVb4OfJ.mjs.map → renderer-B3WHDQeB.mjs.map} +1 -1
  227. package/dist/{renderer-BG6bkKtY.mjs → renderer-B84T5I98.mjs} +5 -5
  228. package/dist/{renderer-BG6bkKtY.mjs.map → renderer-B84T5I98.mjs.map} +1 -1
  229. package/dist/{renderer-CXLugAe8.mjs → renderer-B8i4d1Rc.mjs} +4 -4
  230. package/dist/{renderer-CXLugAe8.mjs.map → renderer-B8i4d1Rc.mjs.map} +1 -1
  231. package/dist/renderer-BDHGxD6p.mjs +5 -0
  232. package/dist/{renderer-ESkPj6pk.mjs → renderer-BFmVDdVs.mjs} +4 -4
  233. package/dist/{renderer-ESkPj6pk.mjs.map → renderer-BFmVDdVs.mjs.map} +1 -1
  234. package/dist/{renderer-CwVbHki6.mjs → renderer-BG_cnGbF.mjs} +5 -5
  235. package/dist/{renderer-CwVbHki6.mjs.map → renderer-BG_cnGbF.mjs.map} +1 -1
  236. package/dist/{renderer-B7kOF_Az.mjs → renderer-BIToh0CA.mjs} +3 -3
  237. package/dist/{renderer-B7kOF_Az.mjs.map → renderer-BIToh0CA.mjs.map} +1 -1
  238. package/dist/{renderer-DrWeb39d.mjs → renderer-BOg8i8eF.mjs} +11 -2
  239. package/dist/{renderer-DrWeb39d.mjs.map → renderer-BOg8i8eF.mjs.map} +1 -1
  240. package/dist/{renderer-HnSiwSW8.mjs → renderer-BSW4CGZF.mjs} +4 -4
  241. package/dist/{renderer-HnSiwSW8.mjs.map → renderer-BSW4CGZF.mjs.map} +1 -1
  242. package/dist/{renderer-BPYIqtNg.mjs → renderer-BT4im6c0.mjs} +5 -5
  243. package/dist/{renderer-BPYIqtNg.mjs.map → renderer-BT4im6c0.mjs.map} +1 -1
  244. package/dist/renderer-BT9dvpk2.mjs +5 -0
  245. package/dist/{renderer-BgDLCCuq.mjs → renderer-BTLZBD63.mjs} +5 -5
  246. package/dist/{renderer-BgDLCCuq.mjs.map → renderer-BTLZBD63.mjs.map} +1 -1
  247. package/dist/{renderer-CUBDxuxh.mjs → renderer-Bb_HHUQ0.mjs} +5 -5
  248. package/dist/{renderer-CUBDxuxh.mjs.map → renderer-Bb_HHUQ0.mjs.map} +1 -1
  249. package/dist/renderer-Bd-NuU3M.mjs +3 -0
  250. package/dist/{renderer-C7MAqpIS.mjs → renderer-BdRwbLLV.mjs} +4 -4
  251. package/dist/{renderer-C7MAqpIS.mjs.map → renderer-BdRwbLLV.mjs.map} +1 -1
  252. package/dist/{renderer-DIEmK57T.mjs → renderer-BeJoW-nG.mjs} +5 -5
  253. package/dist/{renderer-DIEmK57T.mjs.map → renderer-BeJoW-nG.mjs.map} +1 -1
  254. package/dist/renderer-BfaRh0qy.mjs +5 -0
  255. package/dist/{renderer-AUK_ZS3p.mjs → renderer-BhNZn2DU.mjs} +4 -4
  256. package/dist/{renderer-AUK_ZS3p.mjs.map → renderer-BhNZn2DU.mjs.map} +1 -1
  257. package/dist/{renderer-BcO7LUla.mjs → renderer-Bif8bwCq.mjs} +3 -3
  258. package/dist/{renderer-BcO7LUla.mjs.map → renderer-Bif8bwCq.mjs.map} +1 -1
  259. package/dist/renderer-BlwXKV7Y.mjs +5 -0
  260. package/dist/{renderer-BZmmekE8.mjs → renderer-Bm91Xv6l.mjs} +4 -4
  261. package/dist/{renderer-BZmmekE8.mjs.map → renderer-Bm91Xv6l.mjs.map} +1 -1
  262. package/dist/{renderer-mQt-y49D.mjs → renderer-BnN3JH9u.mjs} +20 -7
  263. package/dist/renderer-BnN3JH9u.mjs.map +1 -0
  264. package/dist/{renderer-C_2UDMEG.mjs → renderer-Bo5GwErU.mjs} +6 -6
  265. package/dist/{renderer-C_2UDMEG.mjs.map → renderer-Bo5GwErU.mjs.map} +1 -1
  266. package/dist/{renderer-Cl8r1LJe.mjs → renderer-Br_aJ_b7.mjs} +4 -4
  267. package/dist/{renderer-Cl8r1LJe.mjs.map → renderer-Br_aJ_b7.mjs.map} +1 -1
  268. package/dist/{renderer-Dee8ksIV.mjs → renderer-BvRaVByi.mjs} +3 -3
  269. package/dist/{renderer-Dee8ksIV.mjs.map → renderer-BvRaVByi.mjs.map} +1 -1
  270. package/dist/renderer-C40yZK3x.mjs +5 -0
  271. package/dist/renderer-C5MjQ7L8.mjs +5 -0
  272. package/dist/renderer-C8LjKYnS.mjs +5 -0
  273. package/dist/renderer-C9q9H_qa.mjs +5 -0
  274. package/dist/renderer-CC4fhNup.mjs +3 -0
  275. package/dist/{renderer-BRWjLiHX.mjs → renderer-CDfCaqV4.mjs} +3 -3
  276. package/dist/{renderer-BRWjLiHX.mjs.map → renderer-CDfCaqV4.mjs.map} +1 -1
  277. package/dist/renderer-CF9ta9Rm.mjs +5 -0
  278. package/dist/{renderer-BNbMi9CI.mjs → renderer-CKlNHDKI.mjs} +5 -5
  279. package/dist/{renderer-BNbMi9CI.mjs.map → renderer-CKlNHDKI.mjs.map} +1 -1
  280. package/dist/{renderer-D1VsqFf4.mjs → renderer-CLRrcT_3.mjs} +5 -5
  281. package/dist/{renderer-D1VsqFf4.mjs.map → renderer-CLRrcT_3.mjs.map} +1 -1
  282. package/dist/{renderer-CEfVvcw-.mjs → renderer-CO1PwItH.mjs} +4 -4
  283. package/dist/{renderer-CEfVvcw-.mjs.map → renderer-CO1PwItH.mjs.map} +1 -1
  284. package/dist/renderer-CO205Gr9.mjs +5 -0
  285. package/dist/renderer-CSm8UXLP.mjs +5 -0
  286. package/dist/renderer-CSy8HRtF.mjs +5 -0
  287. package/dist/{renderer-BYqrtBvd.mjs → renderer-CTSvHf6g.mjs} +5 -5
  288. package/dist/{renderer-BYqrtBvd.mjs.map → renderer-CTSvHf6g.mjs.map} +1 -1
  289. package/dist/{renderer-eT7Gp7FS.mjs → renderer-CWmlfdLb.mjs} +5 -5
  290. package/dist/{renderer-eT7Gp7FS.mjs.map → renderer-CWmlfdLb.mjs.map} +1 -1
  291. package/dist/{renderer-Dat8opUZ.mjs → renderer-CanNjQuL.mjs} +4 -4
  292. package/dist/{renderer-Dat8opUZ.mjs.map → renderer-CanNjQuL.mjs.map} +1 -1
  293. package/dist/renderer-CdNRWDsA.mjs +5 -0
  294. package/dist/{renderer-NTCk1Srf.mjs → renderer-CeNAgCE2.mjs} +3 -3
  295. package/dist/{renderer-NTCk1Srf.mjs.map → renderer-CeNAgCE2.mjs.map} +1 -1
  296. package/dist/{renderer-CcJyD9Q5.mjs → renderer-Ch1qZ2PT.mjs} +4 -4
  297. package/dist/{renderer-CcJyD9Q5.mjs.map → renderer-Ch1qZ2PT.mjs.map} +1 -1
  298. package/dist/{renderer-g7fF2AYk.mjs → renderer-Chfo4G9t.mjs} +5 -5
  299. package/dist/{renderer-g7fF2AYk.mjs.map → renderer-Chfo4G9t.mjs.map} +1 -1
  300. package/dist/{renderer-DIqkhsLI.mjs → renderer-Ck-NLzz0.mjs} +4 -4
  301. package/dist/{renderer-DIqkhsLI.mjs.map → renderer-Ck-NLzz0.mjs.map} +1 -1
  302. package/dist/renderer-CkAjiGRB.mjs +5 -0
  303. package/dist/renderer-CmryuPBm.mjs +5 -0
  304. package/dist/renderer-CnEwne4L.mjs +5 -0
  305. package/dist/{renderer-BdbI_u9w.mjs → renderer-CsRuEpR2.mjs} +3 -3
  306. package/dist/{renderer-BdbI_u9w.mjs.map → renderer-CsRuEpR2.mjs.map} +1 -1
  307. package/dist/{renderer-C4yKI8MT.mjs → renderer-CtulmkqT.mjs} +3 -3
  308. package/dist/{renderer-C4yKI8MT.mjs.map → renderer-CtulmkqT.mjs.map} +1 -1
  309. package/dist/{renderer-CyCtm0UV.mjs → renderer-CwAuWLWm.mjs} +3 -3
  310. package/dist/{renderer-CyCtm0UV.mjs.map → renderer-CwAuWLWm.mjs.map} +1 -1
  311. package/dist/{renderer-CbhnJi_8.mjs → renderer-CxabOSkk.mjs} +4 -4
  312. package/dist/{renderer-CbhnJi_8.mjs.map → renderer-CxabOSkk.mjs.map} +1 -1
  313. package/dist/{renderer-Be5hfwSd.mjs → renderer-CybBR8AL.mjs} +425 -115
  314. package/dist/renderer-CybBR8AL.mjs.map +1 -0
  315. package/dist/{renderer-B6TjJi1g.mjs → renderer-D1tDMuD0.mjs} +5 -5
  316. package/dist/{renderer-B6TjJi1g.mjs.map → renderer-D1tDMuD0.mjs.map} +1 -1
  317. package/dist/renderer-D4QDoqOG.mjs +5 -0
  318. package/dist/{renderer-5qJPGvVL.mjs → renderer-D7DlNOVi.mjs} +5 -5
  319. package/dist/{renderer-5qJPGvVL.mjs.map → renderer-D7DlNOVi.mjs.map} +1 -1
  320. package/dist/renderer-D7cS2a8z.mjs +5 -0
  321. package/dist/{renderer-C06U4c9k.mjs → renderer-D7lApyWZ.mjs} +3 -3
  322. package/dist/{renderer-C06U4c9k.mjs.map → renderer-D7lApyWZ.mjs.map} +1 -1
  323. package/dist/renderer-D85CNC-b.mjs +5 -0
  324. package/dist/{renderer-BJQt0RiZ.mjs → renderer-DAfCcnCz.mjs} +5 -5
  325. package/dist/{renderer-BJQt0RiZ.mjs.map → renderer-DAfCcnCz.mjs.map} +1 -1
  326. package/dist/{renderer-C3Iev6zu.mjs → renderer-DAug14gu.mjs} +4 -4
  327. package/dist/{renderer-C3Iev6zu.mjs.map → renderer-DAug14gu.mjs.map} +1 -1
  328. package/dist/{renderer-F1D9ZJ8I.mjs → renderer-DBfx6QX1.mjs} +3 -3
  329. package/dist/renderer-DC9IoJNz.mjs +5 -0
  330. package/dist/{renderer-CWLF6cAz.mjs → renderer-DCMoBppL.mjs} +58 -4
  331. package/dist/renderer-DCMoBppL.mjs.map +1 -0
  332. package/dist/renderer-DIDh0gFm.mjs +5 -0
  333. package/dist/{renderer-B-inTgyb.d.mts → renderer-DJuVX3c5.d.mts} +2 -2
  334. package/dist/{renderer-B-inTgyb.d.mts.map → renderer-DJuVX3c5.d.mts.map} +1 -1
  335. package/dist/{renderer-xDV2cCkX.mjs → renderer-DKptrHeL.mjs} +5 -5
  336. package/dist/{renderer-xDV2cCkX.mjs.map → renderer-DKptrHeL.mjs.map} +1 -1
  337. package/dist/renderer-DLmJ9GWE.mjs +5 -0
  338. package/dist/renderer-DM7PUWP9.mjs +5 -0
  339. package/dist/{renderer-Du-GnKLb.mjs → renderer-DMtzPqYo.mjs} +211 -72
  340. package/dist/renderer-DMtzPqYo.mjs.map +1 -0
  341. package/dist/renderer-DPWFDxIO.mjs +5 -0
  342. package/dist/renderer-DUCByhAk.mjs +5 -0
  343. package/dist/renderer-DVOtnCKH.mjs +5 -0
  344. package/dist/renderer-DVrN2bW8.mjs +5 -0
  345. package/dist/{renderer-VhkubIx_.mjs → renderer-D_rEtJAH.mjs} +5 -5
  346. package/dist/{renderer-VhkubIx_.mjs.map → renderer-D_rEtJAH.mjs.map} +1 -1
  347. package/dist/{renderer-q4zMFfnY.mjs → renderer-Dak_wVh9.mjs} +2 -2
  348. package/dist/{renderer-q4zMFfnY.mjs.map → renderer-Dak_wVh9.mjs.map} +1 -1
  349. package/dist/{renderer-DOKHd37M.mjs → renderer-Dd2XrdqA.mjs} +4 -4
  350. package/dist/{renderer-DOKHd37M.mjs.map → renderer-Dd2XrdqA.mjs.map} +1 -1
  351. package/dist/renderer-DdOVwfG4.mjs +5 -0
  352. package/dist/{renderer-IQ97z2rw.mjs → renderer-Dih1rtT6.mjs} +3 -3
  353. package/dist/{renderer-IQ97z2rw.mjs.map → renderer-Dih1rtT6.mjs.map} +1 -1
  354. package/dist/{renderer-DW7hbluw.mjs → renderer-DjiebKHO.mjs} +3 -3
  355. package/dist/{renderer-DW7hbluw.mjs.map → renderer-DjiebKHO.mjs.map} +1 -1
  356. package/dist/{renderer-bbaMOD4I.mjs → renderer-DkAFIpzB.mjs} +5 -5
  357. package/dist/{renderer-bbaMOD4I.mjs.map → renderer-DkAFIpzB.mjs.map} +1 -1
  358. package/dist/{renderer-BQOeeXTr.mjs → renderer-DlbSqOJR.mjs} +5 -5
  359. package/dist/{renderer-BQOeeXTr.mjs.map → renderer-DlbSqOJR.mjs.map} +1 -1
  360. package/dist/{renderer-CYX9vKZ-.mjs → renderer-DrExCXnp.mjs} +4 -4
  361. package/dist/{renderer-CYX9vKZ-.mjs.map → renderer-DrExCXnp.mjs.map} +1 -1
  362. package/dist/{renderer-BVql26Ay.mjs → renderer-DsPLMzy1.mjs} +2 -2
  363. package/dist/{renderer-BVql26Ay.mjs.map → renderer-DsPLMzy1.mjs.map} +1 -1
  364. package/dist/{renderer-BfbSvElt.mjs → renderer-Dswrn-yi.mjs} +4 -4
  365. package/dist/{renderer-BfbSvElt.mjs.map → renderer-Dswrn-yi.mjs.map} +1 -1
  366. package/dist/renderer-DtCe9ouu.mjs +5 -0
  367. package/dist/{renderer-sPI7aY6c.mjs → renderer-DtCmG-tT.mjs} +4 -4
  368. package/dist/{renderer-sPI7aY6c.mjs.map → renderer-DtCmG-tT.mjs.map} +1 -1
  369. package/dist/{renderer-BJKzZwyn.mjs → renderer-DxiF4O6X.mjs} +4 -4
  370. package/dist/{renderer-BJKzZwyn.mjs.map → renderer-DxiF4O6X.mjs.map} +1 -1
  371. package/dist/{renderer-CCFHnafT.mjs → renderer-DxkvDAA6.mjs} +4 -4
  372. package/dist/{renderer-CCFHnafT.mjs.map → renderer-DxkvDAA6.mjs.map} +1 -1
  373. package/dist/{renderer-CPTXJs0n.mjs → renderer-FFLnACY-.mjs} +6 -6
  374. package/dist/{renderer-CPTXJs0n.mjs.map → renderer-FFLnACY-.mjs.map} +1 -1
  375. package/dist/{renderer-US4GsamT.mjs → renderer-H4CZt3Z5.mjs} +3 -3
  376. package/dist/{renderer-mLlgfM7X.mjs → renderer-JASAZUyY.mjs} +4 -4
  377. package/dist/{renderer-mLlgfM7X.mjs.map → renderer-JASAZUyY.mjs.map} +1 -1
  378. package/dist/renderer-Mg0kr9Fm.mjs +5 -0
  379. package/dist/{renderer-D2TTDcgh.mjs → renderer-R2kLaNuR.mjs} +3 -3
  380. package/dist/{renderer-D2TTDcgh.mjs.map → renderer-R2kLaNuR.mjs.map} +1 -1
  381. package/dist/renderer-T35PsSw5.mjs +5 -0
  382. package/dist/{renderer-DEQeONTd.mjs → renderer-fWW0bsVl.mjs} +3 -3
  383. package/dist/renderer-iSZ5NT-J.mjs +5 -0
  384. package/dist/{renderer-DH7l5WFr.mjs → renderer-jBKpX3Xg.mjs} +4 -4
  385. package/dist/{renderer-DH7l5WFr.mjs.map → renderer-jBKpX3Xg.mjs.map} +1 -1
  386. package/dist/{renderer-C6st34I6.mjs → renderer-kFx1_MmK.mjs} +3 -3
  387. package/dist/{renderer-C6st34I6.mjs.map → renderer-kFx1_MmK.mjs.map} +1 -1
  388. package/dist/{renderer-CIB5L_C4.mjs → renderer-muB4slsV.mjs} +5 -5
  389. package/dist/{renderer-CIB5L_C4.mjs.map → renderer-muB4slsV.mjs.map} +1 -1
  390. package/dist/renderer-nEmMjQ1a.mjs +5 -0
  391. package/dist/{renderer-C3tVrzyT.mjs → renderer-oiDoNzhv.mjs} +3 -3
  392. package/dist/renderer-pG1nyfjE.mjs +5 -0
  393. package/dist/{renderer-DoPEPlbG.d.mts → renderer-tcypOFaB.d.mts} +23 -5
  394. package/dist/renderer-tcypOFaB.d.mts.map +1 -0
  395. package/dist/{renderer-Dss7T71q.mjs → renderer-vPxMXiv8.mjs} +5 -5
  396. package/dist/{renderer-Dss7T71q.mjs.map → renderer-vPxMXiv8.mjs.map} +1 -1
  397. package/dist/renderer-vbb9e3E3.mjs +5 -0
  398. package/dist/{renderer-OsQRvOle.mjs → renderer-vpsU_4XW.mjs} +5 -5
  399. package/dist/{renderer-OsQRvOle.mjs.map → renderer-vpsU_4XW.mjs.map} +1 -1
  400. package/dist/{renderer-BMP_lYMk.mjs → renderer-w7mlMSC-.mjs} +4 -4
  401. package/dist/{renderer-BMP_lYMk.mjs.map → renderer-w7mlMSC-.mjs.map} +1 -1
  402. package/dist/{renderers-CP8CFWDs-BH1gUTYa.mjs → renderers-CP8CFWDs-OgyUiyrr.mjs} +4 -4
  403. package/dist/{renderers-CP8CFWDs-BH1gUTYa.mjs.map → renderers-CP8CFWDs-OgyUiyrr.mjs.map} +1 -1
  404. package/dist/sam/index.d.mts +3 -3
  405. package/dist/sam/index.mjs +1 -1
  406. package/dist/signals/index.d.mts +7 -7
  407. package/dist/signals/index.mjs +8 -8
  408. package/dist/{signals-gOd0Ui9B.mjs → signals-BfJ1aqpT.mjs} +4 -4
  409. package/dist/{signals-gOd0Ui9B.mjs.map → signals-BfJ1aqpT.mjs.map} +1 -1
  410. package/dist/{src-Bnr8DUC--DzkRGA62.mjs → src-BU6vm9sP-DFJ3phW0.mjs} +76 -11
  411. package/dist/src-BU6vm9sP-DFJ3phW0.mjs.map +1 -0
  412. package/dist/{src-BU1VOWSk.mjs → src-C3f3zXYg.mjs} +250 -30
  413. package/dist/src-C3f3zXYg.mjs.map +1 -0
  414. package/package.json +30 -24
  415. package/dist/dist-D12-a3-x.mjs.map +0 -1
  416. package/dist/dist-DL1GwJvs.mjs.map +0 -1
  417. package/dist/gpu-zFNrvhV9.mjs.map +0 -1
  418. package/dist/index-B9Lm1x8i.d.mts.map +0 -1
  419. package/dist/index-Bzo1uj8h.d.mts.map +0 -1
  420. package/dist/index-V0ZQ4JN6.d.mts.map +0 -1
  421. package/dist/index-svAgwTY_.d.mts.map +0 -1
  422. package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
  423. package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
  424. package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
  425. package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
  426. package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
  427. package/dist/preview-engine/chunk-FKG27DVO.mjs +0 -4
  428. package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
  429. package/dist/preview-engine/chunk-MIEH74UH.mjs +0 -480
  430. package/dist/preview-engine/chunk-Q62GPWGD.mjs +0 -1974
  431. package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
  432. package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
  433. package/dist/preview-engine/renderers-3BOQOUEU.mjs +0 -1
  434. package/dist/preview-engine/renderers-3M2FESR2.mjs +0 -1
  435. package/dist/preview-engine/renderers-6LHIWKMZ.mjs +0 -1
  436. package/dist/preview-engine/renderers-7XHO6M3B.mjs +0 -228
  437. package/dist/preview-engine/renderers-A43VCJ7X.mjs +0 -1
  438. package/dist/preview-engine/renderers-AKY464RY.mjs +0 -1
  439. package/dist/preview-engine/renderers-C5UO6PL5.mjs +0 -1
  440. package/dist/preview-engine/renderers-C64QSZO4.mjs +0 -1
  441. package/dist/preview-engine/renderers-CIRCR6NG.mjs +0 -1
  442. package/dist/preview-engine/renderers-CIWOPETY.mjs +0 -1
  443. package/dist/preview-engine/renderers-CZEZCELP.mjs +0 -1
  444. package/dist/preview-engine/renderers-FSQMWHQM.mjs +0 -1
  445. package/dist/preview-engine/renderers-FZEW5C23.mjs +0 -1
  446. package/dist/preview-engine/renderers-HCET2IML.mjs +0 -1
  447. package/dist/preview-engine/renderers-IUOOC6K7.mjs +0 -1
  448. package/dist/preview-engine/renderers-KYYJLVIJ.mjs +0 -1
  449. package/dist/preview-engine/renderers-L4GE7WV3.mjs +0 -1
  450. package/dist/preview-engine/renderers-LRAFWKCO.mjs +0 -1
  451. package/dist/preview-engine/renderers-LU3XZWEB.mjs +0 -1
  452. package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
  453. package/dist/preview-engine/renderers-ND2WV4K3.mjs +0 -1
  454. package/dist/preview-engine/renderers-NJ5CWVVH.mjs +0 -1
  455. package/dist/preview-engine/renderers-NKXYPR3V.mjs +0 -1
  456. package/dist/preview-engine/renderers-NWR66CGK.mjs +0 -1
  457. package/dist/preview-engine/renderers-O22WTBRM.mjs +0 -1
  458. package/dist/preview-engine/renderers-PBBA7LQB.mjs +0 -1
  459. package/dist/preview-engine/renderers-Q6LJRZ7R.mjs +0 -1
  460. package/dist/preview-engine/renderers-RMEACSRL.mjs +0 -1
  461. package/dist/preview-engine/renderers-SP42LCSI.mjs +0 -1
  462. package/dist/preview-engine/renderers-T7SZA3BX.mjs +0 -1
  463. package/dist/preview-engine/renderers-VADTDAHD.mjs +0 -1
  464. package/dist/preview-engine/renderers-VNNWI5C3.mjs +0 -1
  465. package/dist/preview-engine/renderers-WZ75MLP3.mjs +0 -1
  466. package/dist/preview-engine/renderers-XB5R4UQA.mjs +0 -1
  467. package/dist/preview-engine/renderers-YBIUZDGQ.mjs +0 -1
  468. package/dist/preview-engine/renderers-YESJR4O7.mjs +0 -1
  469. package/dist/preview-engine/renderers-YKSRZRRT.mjs +0 -1
  470. package/dist/program-xjIwjKb6.mjs.map +0 -1
  471. package/dist/renderer-129U3pc9.mjs +0 -5
  472. package/dist/renderer-2phFTFxQ.mjs +0 -5
  473. package/dist/renderer-9muKpDeE.mjs +0 -5
  474. package/dist/renderer-B5Dhv6j9.mjs +0 -5
  475. package/dist/renderer-BBUgCS3C.mjs +0 -5
  476. package/dist/renderer-BKXM28Mx.mjs +0 -5
  477. package/dist/renderer-BKqm6xdf.mjs +0 -5
  478. package/dist/renderer-BMfMMf0R.mjs +0 -5
  479. package/dist/renderer-BPsjEnnl.mjs +0 -5
  480. package/dist/renderer-Be5hfwSd.mjs.map +0 -1
  481. package/dist/renderer-Bofr6f88.mjs +0 -6
  482. package/dist/renderer-BqoGcujR.mjs +0 -5
  483. package/dist/renderer-BvuBt2aH.mjs +0 -5
  484. package/dist/renderer-BxTgXHu1.mjs +0 -5
  485. package/dist/renderer-Bz2Rrz60.mjs +0 -5
  486. package/dist/renderer-CBjG8rjE.mjs +0 -5
  487. package/dist/renderer-CS2zyPyZ.mjs +0 -5
  488. package/dist/renderer-CWLF6cAz.mjs.map +0 -1
  489. package/dist/renderer-CXnbl_jR.mjs +0 -5
  490. package/dist/renderer-CaF9vod_.mjs +0 -5
  491. package/dist/renderer-CbSBH3lp.mjs +0 -5
  492. package/dist/renderer-CdjuGRbO.mjs +0 -5
  493. package/dist/renderer-CoLbxC13.mjs +0 -5
  494. package/dist/renderer-CpedZNEG.mjs.map +0 -1
  495. package/dist/renderer-Cr9G0dXB.mjs +0 -5
  496. package/dist/renderer-D63l6_UC.mjs +0 -5
  497. package/dist/renderer-DCJqnzER.mjs +0 -5
  498. package/dist/renderer-DFBOR5J3.mjs +0 -5
  499. package/dist/renderer-DGAZSzw6.mjs +0 -5
  500. package/dist/renderer-DPLGk1Qk.mjs +0 -5
  501. package/dist/renderer-DTCUzByS.mjs +0 -5
  502. package/dist/renderer-DdGahYi1.mjs +0 -5
  503. package/dist/renderer-DhL4nNPk.mjs +0 -5
  504. package/dist/renderer-DkyTbiVz.mjs +0 -3
  505. package/dist/renderer-DnAZweRX.mjs +0 -5
  506. package/dist/renderer-DoPEPlbG.d.mts.map +0 -1
  507. package/dist/renderer-DpisVnT2.mjs +0 -5
  508. package/dist/renderer-Ds7pAKnE.mjs +0 -3
  509. package/dist/renderer-Du-GnKLb.mjs.map +0 -1
  510. package/dist/renderer-DxZD5B54.mjs +0 -5
  511. package/dist/renderer-PMHOnbnA.mjs +0 -5
  512. package/dist/renderer-STufNpMx.mjs +0 -5
  513. package/dist/renderer-SdrgfCxH.mjs +0 -5
  514. package/dist/renderer-mQt-y49D.mjs.map +0 -1
  515. package/dist/src-BU1VOWSk.mjs.map +0 -1
  516. package/dist/src-Bnr8DUC--DzkRGA62.mjs.map +0 -1
  517. /package/dist/{chunk-D8S17ehY.mjs → chunk-W71TSjRM.mjs} +0 -0
  518. /package/dist/{renderer-Cputd36d.mjs → renderer-B6rZUBwE.mjs} +0 -0
@@ -0,0 +1,233 @@
1
+ import { createWriteStream, realpathSync } from "node:fs";
2
+ import path from "node:path";
3
+ import fs$1 from "node:fs/promises";
4
+ import { execFileSync } from "node:child_process";
5
+ import { Readable } from "node:stream";
6
+ import { pipeline } from "node:stream/promises";
7
+
8
+ //#region src/cloud/git-source.ts
9
+ /**
10
+ * Where a cloud render gets the project from: the git repo the working
11
+ * directory is in, at the commit checked out now. Cloud workers fetch from
12
+ * the remote, so that commit has to be pushed; uncommitted changes are not
13
+ * rendered.
14
+ */
15
+ /** Reads repo, branch, commit and folder from git, and checks the commit is pushed. */
16
+ function resolveGitSource(cwd, entry) {
17
+ const git = (...args) => execFileSync("git", args, {
18
+ cwd,
19
+ encoding: "utf8",
20
+ stdio: [
21
+ "ignore",
22
+ "pipe",
23
+ "pipe"
24
+ ]
25
+ }).trim();
26
+ let root;
27
+ try {
28
+ root = git("rev-parse", "--show-toplevel");
29
+ } catch {
30
+ throw new Error(`${cwd} is not in a git repository. Cloud renders fetch the project from git: commit it and push it to a remote first.`);
31
+ }
32
+ const workdir = path.relative(realpathSync(root), realpathSync(cwd)).split(path.sep).join("/") || ".";
33
+ const relEntry = path.relative(cwd, path.resolve(cwd, entry)).split(path.sep).join("/");
34
+ if (relEntry.startsWith("../") || path.isAbsolute(relEntry)) throw new Error(`${entry} is outside ${cwd}; run from the project folder that contains it.`);
35
+ const branch = git("rev-parse", "--abbrev-ref", "HEAD");
36
+ const commit = git("rev-parse", "HEAD");
37
+ const remoteName = upstreamRemote(git, branch) ?? "origin";
38
+ let remoteUrl;
39
+ try {
40
+ remoteUrl = git("remote", "get-url", remoteName);
41
+ } catch {
42
+ throw new Error(`The repository has no "${remoteName}" remote. Push the project to a git host first.`);
43
+ }
44
+ if (!git("branch", "-r", "--contains", commit)) throw new Error(`Commit ${commit.slice(0, 7)} is not on ${remoteName}. Push it first (\`git push\`): cloud workers fetch the project from the remote.`);
45
+ const dirty = git("status", "--porcelain", "--untracked-files=no", "--", ".");
46
+ return {
47
+ source: {
48
+ repo: toHttps(remoteUrl),
49
+ ...branch !== "HEAD" && { ref: branch },
50
+ commit,
51
+ workdir
52
+ },
53
+ entry: relEntry,
54
+ warnings: dirty ? [`Uncommitted changes are not rendered: the cloud renders commit ${commit.slice(0, 7)}.`] : []
55
+ };
56
+ }
57
+ function upstreamRemote(git, branch) {
58
+ if (branch === "HEAD") return void 0;
59
+ try {
60
+ return git("config", `branch.${branch}.remote`) || void 0;
61
+ } catch {
62
+ return;
63
+ }
64
+ }
65
+ /** `git@github.com:acme/films.git` → `https://github.com/acme/films.git`; credentials dropped. */
66
+ function toHttps(url) {
67
+ const scp = /^[\w.-]+@([^:/]+):(.+)$/.exec(url);
68
+ if (scp) return `https://${scp[1]}/${scp[2]}`;
69
+ const parsed = URL.canParse(url) ? new URL(url) : void 0;
70
+ if (parsed && (parsed.protocol === "ssh:" || parsed.protocol === "git:")) return `https://${parsed.hostname}${parsed.pathname}`;
71
+ if (parsed?.protocol === "https:" || parsed?.protocol === "http:") {
72
+ parsed.username = "";
73
+ parsed.password = "";
74
+ return parsed.toString();
75
+ }
76
+ return url;
77
+ }
78
+
79
+ //#endregion
80
+ //#region src/cloud/index.ts
81
+ /**
82
+ * Cloud renders on api.framefields.dev: the project renders from git on
83
+ * framefields' GPU workers, billed to the account that owns the API key.
84
+ *
85
+ * ```ts
86
+ * import { renderCloud } from "framefields/cloud";
87
+ *
88
+ * const result = await renderCloud({
89
+ * entry: "src/film.ts",
90
+ * workers: "auto", // split a long film across GPUs; 1 (default) renders on one
91
+ * outputPath: "output/film.mp4",
92
+ * onProgress: (s) => console.log(s.status, s.progress.frames),
93
+ * });
94
+ * ```
95
+ *
96
+ * `workers: "auto"` probes the film on one worker first, then splits it into
97
+ * as many chunks as stay efficient: short films stay on one worker, long ones
98
+ * spread out up to `maxWorkers`. `dryRun: true` returns that plan with the
99
+ * estimated cost and renders nothing. Aborting `signal` cancels the render;
100
+ * GPU time already used is charged.
101
+ */
102
+ const FRAMEFIELDS_API_URL = "https://api.framefields.dev";
103
+ /** A cloud render that failed, was cancelled, or was refused by the API. */
104
+ var CloudRenderError = class extends Error {
105
+ constructor(message, code, status) {
106
+ super(message);
107
+ this.code = code;
108
+ this.status = status;
109
+ this.name = "CloudRenderError";
110
+ }
111
+ };
112
+ const DONE = new Set([
113
+ "planned",
114
+ "completed",
115
+ "failed",
116
+ "cancelled"
117
+ ]);
118
+ /** Starts a cloud render and waits for it; resolves when it completed (or was planned). */
119
+ async function renderCloud(options) {
120
+ const api = cloudClient(options);
121
+ const cwd = options.cwd ?? process.cwd();
122
+ const resolved = options.source ? {
123
+ source: options.source,
124
+ entry: options.entry,
125
+ warnings: []
126
+ } : resolveGitSource(cwd, options.entry);
127
+ const warn = options.onWarning ?? ((m) => process.stderr.write(`framefields: ${m}\n`));
128
+ for (const w of resolved.warnings) warn(w);
129
+ let status = await api.start({
130
+ source: resolved.source,
131
+ target: {
132
+ entry: resolved.entry,
133
+ export: options.export ?? "buildFilm",
134
+ ...options.args !== void 0 && { args: options.args },
135
+ ...options.select && { select: [options.select] }
136
+ },
137
+ render: {
138
+ codec: options.codec ?? "h264",
139
+ ...options.quality && { quality: options.quality }
140
+ },
141
+ workers: options.workers ?? 1,
142
+ ...options.maxWorkers && { max_workers: options.maxWorkers },
143
+ dry_run: options.dryRun ?? false
144
+ });
145
+ options.onProgress?.(status);
146
+ try {
147
+ while (!DONE.has(status.status)) {
148
+ await sleep(options.pollMs ?? 3e3, options.signal);
149
+ status = await api.status(status.id);
150
+ options.onProgress?.(status);
151
+ }
152
+ } catch (err) {
153
+ if (options.signal?.aborted) throw new CloudRenderError("The cloud render was cancelled.", "cancelled", await api.cancel(status.id).catch(() => status));
154
+ throw err;
155
+ }
156
+ if (status.status === "failed" || status.status === "cancelled") throw new CloudRenderError(status.error ? `Cloud render ${status.status}: ${status.error.message} (${status.error.code})` : `Cloud render ${status.status}.`, status.error?.code ?? status.status, status);
157
+ if (status.status === "completed" && options.outputPath && status.output) {
158
+ await download(status.output.url, options.outputPath, options.signal);
159
+ return {
160
+ ...status,
161
+ filePath: options.outputPath
162
+ };
163
+ }
164
+ return status;
165
+ }
166
+ /** The API calls behind `renderCloud`, for callers who track renders themselves. */
167
+ function cloudClient(options) {
168
+ const key = options.apiKey ?? process.env.FRAMEFIELDS_API_KEY;
169
+ if (!key) throw new CloudRenderError("No API key. Set FRAMEFIELDS_API_KEY (keys at https://framefields.dev/dashboard/keys) or pass apiKey.", "invalid_api_key");
170
+ const base = (options.apiUrl ?? process.env.FRAMEFIELDS_API_URL ?? FRAMEFIELDS_API_URL).replace(/\/+$/, "");
171
+ const call = async (method, route, body) => {
172
+ const res = await fetch(`${base}/v1/render${route}`, {
173
+ method,
174
+ headers: {
175
+ Authorization: `Bearer ${key}`,
176
+ "Content-Type": "application/json"
177
+ },
178
+ ...body !== void 0 && { body: JSON.stringify(body) }
179
+ });
180
+ const json = await res.json().catch(() => ({}));
181
+ if (!res.ok) throw new CloudRenderError(json.error?.message ?? `api.framefields.dev answered HTTP ${res.status}`, json.error?.type ?? `http_${res.status}`);
182
+ return fromApi(json);
183
+ };
184
+ return {
185
+ start: (body) => call("POST", "", body),
186
+ status: (id) => call("GET", `/${encodeURIComponent(id)}`),
187
+ cancel: (id) => call("DELETE", `/${encodeURIComponent(id)}`)
188
+ };
189
+ }
190
+ function fromApi(s) {
191
+ return {
192
+ id: s.id,
193
+ status: s.status,
194
+ workers: s.workers ?? 1,
195
+ ...s.plan && { plan: {
196
+ workers: s.plan.workers,
197
+ workSec: s.plan.work_sec,
198
+ etaSec: s.plan.eta_sec,
199
+ chunks: s.plan.chunks
200
+ } },
201
+ progress: {
202
+ frames: s.progress?.frames ?? 0,
203
+ totalFrames: s.progress?.total_frames ?? null,
204
+ etaSec: s.progress?.eta_sec ?? null
205
+ },
206
+ costUsd: s.cost_usd ?? 0,
207
+ gpuSeconds: s.gpu_seconds ?? 0,
208
+ ...s.estimate_usd !== void 0 && { estimateUsd: s.estimate_usd },
209
+ ...s.sha && { sha: s.sha },
210
+ ...s.output && { output: s.output },
211
+ ...s.error && { error: s.error }
212
+ };
213
+ }
214
+ async function download(url, file, signal) {
215
+ const res = await fetch(url, { signal });
216
+ if (!res.ok || !res.body) throw new CloudRenderError(`Downloading the render failed: HTTP ${res.status}`, "download_failed");
217
+ await fs$1.mkdir(path.dirname(path.resolve(file)), { recursive: true });
218
+ await pipeline(Readable.fromWeb(res.body), createWriteStream(file));
219
+ }
220
+ function sleep(ms, signal) {
221
+ return new Promise((resolve$1, reject) => {
222
+ if (signal?.aborted) return reject(signal.reason);
223
+ const timer = setTimeout(resolve$1, ms);
224
+ signal?.addEventListener("abort", () => {
225
+ clearTimeout(timer);
226
+ reject(signal.reason);
227
+ }, { once: true });
228
+ });
229
+ }
230
+
231
+ //#endregion
232
+ export { resolveGitSource as a, renderCloud as i, FRAMEFIELDS_API_URL as n, toHttps as o, cloudClient as r, CloudRenderError as t };
233
+ //# sourceMappingURL=cloud-xcfV4J03.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-xcfV4J03.mjs","names":["fs","resolve"],"sources":["../src/cloud/git-source.ts","../src/cloud/index.ts"],"sourcesContent":["/**\n * Where a cloud render gets the project from: the git repo the working\n * directory is in, at the commit checked out now. Cloud workers fetch from\n * the remote, so that commit has to be pushed; uncommitted changes are not\n * rendered.\n */\nimport { execFileSync } from \"node:child_process\";\nimport { realpathSync } from \"node:fs\";\nimport path from \"node:path\";\n\nexport interface CloudSource {\n\trepo: string;\n\tref?: string;\n\tcommit?: string;\n\t/** The project's folder inside the repo (monorepos), `.` at the root. */\n\tworkdir?: string;\n}\n\nexport interface ResolvedSource {\n\tsource: CloudSource;\n\t/** The entry relative to `source.workdir`, as the worker loads it. */\n\tentry: string;\n\t/** Things that render differently than the user may expect (uncommitted changes). */\n\twarnings: string[];\n}\n\n/** Reads repo, branch, commit and folder from git, and checks the commit is pushed. */\nexport function resolveGitSource(cwd: string, entry: string): ResolvedSource {\n\tconst git = (...args: string[]) =>\n\t\texecFileSync(\"git\", args, {\n\t\t\tcwd,\n\t\t\tencoding: \"utf8\",\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t}).trim();\n\tlet root: string;\n\ttry {\n\t\troot = git(\"rev-parse\", \"--show-toplevel\");\n\t} catch {\n\t\tthrow new Error(\n\t\t\t`${cwd} is not in a git repository. Cloud renders fetch the project from git: commit it and push it to a remote first.`,\n\t\t);\n\t}\n\t// git reports the root with symlinks resolved (macOS /var → /private/var).\n\tconst workdir =\n\t\tpath\n\t\t\t.relative(realpathSync(root), realpathSync(cwd))\n\t\t\t.split(path.sep)\n\t\t\t.join(\"/\") || \".\";\n\tconst relEntry = path\n\t\t.relative(cwd, path.resolve(cwd, entry))\n\t\t.split(path.sep)\n\t\t.join(\"/\");\n\tif (relEntry.startsWith(\"../\") || path.isAbsolute(relEntry))\n\t\tthrow new Error(\n\t\t\t`${entry} is outside ${cwd}; run from the project folder that contains it.`,\n\t\t);\n\n\tconst branch = git(\"rev-parse\", \"--abbrev-ref\", \"HEAD\");\n\tconst commit = git(\"rev-parse\", \"HEAD\");\n\tconst remoteName = upstreamRemote(git, branch) ?? \"origin\";\n\tlet remoteUrl: string;\n\ttry {\n\t\tremoteUrl = git(\"remote\", \"get-url\", remoteName);\n\t} catch {\n\t\tthrow new Error(\n\t\t\t`The repository has no \"${remoteName}\" remote. Push the project to a git host first.`,\n\t\t);\n\t}\n\tconst pushed = git(\"branch\", \"-r\", \"--contains\", commit);\n\tif (!pushed)\n\t\tthrow new Error(\n\t\t\t`Commit ${commit.slice(0, 7)} is not on ${remoteName}. Push it first (\\`git push\\`): cloud workers fetch the project from the remote.`,\n\t\t);\n\tconst dirty = git(\"status\", \"--porcelain\", \"--untracked-files=no\", \"--\", \".\");\n\treturn {\n\t\tsource: {\n\t\t\trepo: toHttps(remoteUrl),\n\t\t\t...(branch !== \"HEAD\" && { ref: branch }),\n\t\t\tcommit,\n\t\t\tworkdir,\n\t\t},\n\t\tentry: relEntry,\n\t\twarnings: dirty\n\t\t\t? [\n\t\t\t\t\t`Uncommitted changes are not rendered: the cloud renders commit ${commit.slice(0, 7)}.`,\n\t\t\t\t]\n\t\t\t: [],\n\t};\n}\n\nfunction upstreamRemote(\n\tgit: (...args: string[]) => string,\n\tbranch: string,\n): string | undefined {\n\tif (branch === \"HEAD\") return undefined;\n\ttry {\n\t\treturn git(\"config\", `branch.${branch}.remote`) || undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\n/** `git@github.com:acme/films.git` → `https://github.com/acme/films.git`; credentials dropped. */\nexport function toHttps(url: string): string {\n\tconst scp = /^[\\w.-]+@([^:/]+):(.+)$/.exec(url);\n\tif (scp) return `https://${scp[1]}/${scp[2]}`;\n\tconst parsed = URL.canParse(url) ? new URL(url) : undefined;\n\tif (parsed && (parsed.protocol === \"ssh:\" || parsed.protocol === \"git:\"))\n\t\treturn `https://${parsed.hostname}${parsed.pathname}`;\n\tif (parsed?.protocol === \"https:\" || parsed?.protocol === \"http:\") {\n\t\tparsed.username = \"\";\n\t\tparsed.password = \"\";\n\t\treturn parsed.toString();\n\t}\n\treturn url;\n}\n","/**\n * Cloud renders on api.framefields.dev: the project renders from git on\n * framefields' GPU workers, billed to the account that owns the API key.\n *\n * ```ts\n * import { renderCloud } from \"framefields/cloud\";\n *\n * const result = await renderCloud({\n * entry: \"src/film.ts\",\n * workers: \"auto\", // split a long film across GPUs; 1 (default) renders on one\n * outputPath: \"output/film.mp4\",\n * onProgress: (s) => console.log(s.status, s.progress.frames),\n * });\n * ```\n *\n * `workers: \"auto\"` probes the film on one worker first, then splits it into\n * as many chunks as stay efficient: short films stay on one worker, long ones\n * spread out up to `maxWorkers`. `dryRun: true` returns that plan with the\n * estimated cost and renders nothing. Aborting `signal` cancels the render;\n * GPU time already used is charged.\n */\nimport { createWriteStream } from \"node:fs\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { pipeline } from \"node:stream/promises\";\nimport type { ReadableStream as WebReadableStream } from \"node:stream/web\";\nimport { type CloudSource, resolveGitSource } from \"./git-source.js\";\n\nexport { type CloudSource, resolveGitSource, toHttps } from \"./git-source.js\";\n\nexport const FRAMEFIELDS_API_URL = \"https://api.framefields.dev\";\n\nexport interface CloudRenderOptions {\n\t/** The module that builds the composition, relative to `cwd`. */\n\tentry: string;\n\t/** Its export: a Composition, or a function returning one. Default `buildFilm`. */\n\texport?: string;\n\t/** Passed to the export when it is a function. */\n\targs?: unknown;\n\t/** When the export returns several compositions, the one to render. */\n\tselect?: string;\n\t/** 1 (default) renders on one worker; a number or \"auto\" splits the film. */\n\tworkers?: number | \"auto\";\n\t/** Upper bound for \"auto\" (the API caps it too). */\n\tmaxWorkers?: number;\n\tcodec?: \"h264\" | \"vp9\";\n\tquality?: string;\n\t/** Probe and plan only: returns the plan and estimated cost, renders nothing. */\n\tdryRun?: boolean;\n\t/** Download the finished video here. */\n\toutputPath?: string;\n\t/** Project folder. Default `process.cwd()`. */\n\tcwd?: string;\n\t/** Instead of reading repo, branch and commit from git. */\n\tsource?: CloudSource;\n\t/** Default `process.env.FRAMEFIELDS_API_KEY`. */\n\tapiKey?: string;\n\t/** Default `process.env.FRAMEFIELDS_API_URL`, else https://api.framefields.dev. */\n\tapiUrl?: string;\n\t/** Called with every status poll. */\n\tonProgress?: (status: CloudRenderStatus) => void;\n\t/** Called for each warning (uncommitted changes). Default: stderr. */\n\tonWarning?: (message: string) => void;\n\t/** Aborting cancels the cloud render. */\n\tsignal?: AbortSignal;\n\t/** Status poll interval, ms. Default 3000. */\n\tpollMs?: number;\n}\n\nexport type CloudRenderPhase =\n\t| \"probing\"\n\t| \"holding\"\n\t| \"rendering\"\n\t| \"stitching\"\n\t| \"planned\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"cancelled\";\n\nexport interface CloudRenderPlan {\n\tworkers: number;\n\t/** Render time of the whole film on one GPU, seconds. */\n\tworkSec: number;\n\t/** Expected wall time with this plan, seconds. */\n\tetaSec: number;\n\tchunks: { start: number; end: number; workSec: number }[];\n}\n\nexport interface CloudRenderStatus {\n\tid: string;\n\tstatus: CloudRenderPhase;\n\tworkers: number;\n\tplan?: CloudRenderPlan;\n\tprogress: {\n\t\tframes: number;\n\t\ttotalFrames: number | null;\n\t\tetaSec: number | null;\n\t};\n\t/** Charged so far (final once the render ended), USD. */\n\tcostUsd: number;\n\tgpuSeconds: number;\n\t/** The planned render's estimated charge, USD. */\n\testimateUsd?: number;\n\t/** The commit rendered. */\n\tsha?: string;\n\toutput?: { url: string; bytes?: number };\n\terror?: { code: string; message: string };\n}\n\nexport interface CloudRenderResult extends CloudRenderStatus {\n\t/** Where the video was downloaded (`outputPath`). */\n\tfilePath?: string;\n}\n\n/** A cloud render that failed, was cancelled, or was refused by the API. */\nexport class CloudRenderError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly code: string,\n\t\treadonly status?: CloudRenderStatus,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"CloudRenderError\";\n\t}\n}\n\nconst DONE = new Set<CloudRenderPhase>([\n\t\"planned\",\n\t\"completed\",\n\t\"failed\",\n\t\"cancelled\",\n]);\n\n/** Starts a cloud render and waits for it; resolves when it completed (or was planned). */\nexport async function renderCloud(\n\toptions: CloudRenderOptions,\n): Promise<CloudRenderResult> {\n\tconst api = cloudClient(options);\n\tconst cwd = options.cwd ?? process.cwd();\n\tconst resolved = options.source\n\t\t? { source: options.source, entry: options.entry, warnings: [] }\n\t\t: resolveGitSource(cwd, options.entry);\n\tconst warn =\n\t\toptions.onWarning ??\n\t\t((m: string) => process.stderr.write(`framefields: ${m}\\n`));\n\tfor (const w of resolved.warnings) warn(w);\n\n\tlet status = await api.start({\n\t\tsource: resolved.source,\n\t\ttarget: {\n\t\t\tentry: resolved.entry,\n\t\t\texport: options.export ?? \"buildFilm\",\n\t\t\t...(options.args !== undefined && { args: options.args }),\n\t\t\t...(options.select && { select: [options.select] }),\n\t\t},\n\t\trender: {\n\t\t\tcodec: options.codec ?? \"h264\",\n\t\t\t...(options.quality && { quality: options.quality }),\n\t\t},\n\t\tworkers: options.workers ?? 1,\n\t\t...(options.maxWorkers && { max_workers: options.maxWorkers }),\n\t\tdry_run: options.dryRun ?? false,\n\t});\n\toptions.onProgress?.(status);\n\n\ttry {\n\t\twhile (!DONE.has(status.status)) {\n\t\t\tawait sleep(options.pollMs ?? 3000, options.signal);\n\t\t\tstatus = await api.status(status.id);\n\t\t\toptions.onProgress?.(status);\n\t\t}\n\t} catch (err) {\n\t\tif (options.signal?.aborted) {\n\t\t\tconst final = await api.cancel(status.id).catch(() => status);\n\t\t\tthrow new CloudRenderError(\n\t\t\t\t\"The cloud render was cancelled.\",\n\t\t\t\t\"cancelled\",\n\t\t\t\tfinal,\n\t\t\t);\n\t\t}\n\t\tthrow err;\n\t}\n\n\tif (status.status === \"failed\" || status.status === \"cancelled\")\n\t\tthrow new CloudRenderError(\n\t\t\tstatus.error\n\t\t\t\t? `Cloud render ${status.status}: ${status.error.message} (${status.error.code})`\n\t\t\t\t: `Cloud render ${status.status}.`,\n\t\t\tstatus.error?.code ?? status.status,\n\t\t\tstatus,\n\t\t);\n\tif (status.status === \"completed\" && options.outputPath && status.output) {\n\t\tawait download(status.output.url, options.outputPath, options.signal);\n\t\treturn { ...status, filePath: options.outputPath };\n\t}\n\treturn status;\n}\n\n/** The API calls behind `renderCloud`, for callers who track renders themselves. */\nexport function cloudClient(\n\toptions: Pick<CloudRenderOptions, \"apiKey\" | \"apiUrl\">,\n) {\n\tconst key = options.apiKey ?? process.env.FRAMEFIELDS_API_KEY;\n\tif (!key)\n\t\tthrow new CloudRenderError(\n\t\t\t\"No API key. Set FRAMEFIELDS_API_KEY (keys at https://framefields.dev/dashboard/keys) or pass apiKey.\",\n\t\t\t\"invalid_api_key\",\n\t\t);\n\tconst base = (\n\t\toptions.apiUrl ??\n\t\tprocess.env.FRAMEFIELDS_API_URL ??\n\t\tFRAMEFIELDS_API_URL\n\t).replace(/\\/+$/, \"\");\n\tconst call = async (method: string, route: string, body?: unknown) => {\n\t\tconst res = await fetch(`${base}/v1/render${route}`, {\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${key}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\t...(body !== undefined && { body: JSON.stringify(body) }),\n\t\t});\n\t\tconst json = (await res.json().catch(() => ({}))) as ApiStatus & {\n\t\t\terror?: { type?: string; message?: string };\n\t\t};\n\t\tif (!res.ok)\n\t\t\tthrow new CloudRenderError(\n\t\t\t\tjson.error?.message ??\n\t\t\t\t\t`api.framefields.dev answered HTTP ${res.status}`,\n\t\t\t\tjson.error?.type ?? `http_${res.status}`,\n\t\t\t);\n\t\treturn fromApi(json);\n\t};\n\treturn {\n\t\tstart: (body: unknown) => call(\"POST\", \"\", body),\n\t\tstatus: (id: string) => call(\"GET\", `/${encodeURIComponent(id)}`),\n\t\tcancel: (id: string) => call(\"DELETE\", `/${encodeURIComponent(id)}`),\n\t};\n}\n\n/** The API's snake_case status. */\ninterface ApiStatus {\n\tid: string;\n\tstatus: CloudRenderPhase;\n\tworkers?: number;\n\tplan?: {\n\t\tworkers: number;\n\t\twork_sec: number;\n\t\teta_sec: number;\n\t\tchunks: CloudRenderPlan[\"chunks\"];\n\t};\n\tprogress?: {\n\t\tframes?: number;\n\t\ttotal_frames?: number | null;\n\t\teta_sec?: number | null;\n\t};\n\tcost_usd?: number;\n\tgpu_seconds?: number;\n\testimate_usd?: number;\n\tsha?: string;\n\toutput?: { url: string; bytes?: number };\n\terror?: { code: string; message: string };\n}\n\nfunction fromApi(s: ApiStatus): CloudRenderStatus {\n\treturn {\n\t\tid: s.id,\n\t\tstatus: s.status,\n\t\tworkers: s.workers ?? 1,\n\t\t...(s.plan && {\n\t\t\tplan: {\n\t\t\t\tworkers: s.plan.workers,\n\t\t\t\tworkSec: s.plan.work_sec,\n\t\t\t\tetaSec: s.plan.eta_sec,\n\t\t\t\tchunks: s.plan.chunks,\n\t\t\t},\n\t\t}),\n\t\tprogress: {\n\t\t\tframes: s.progress?.frames ?? 0,\n\t\t\ttotalFrames: s.progress?.total_frames ?? null,\n\t\t\tetaSec: s.progress?.eta_sec ?? null,\n\t\t},\n\t\tcostUsd: s.cost_usd ?? 0,\n\t\tgpuSeconds: s.gpu_seconds ?? 0,\n\t\t...(s.estimate_usd !== undefined && { estimateUsd: s.estimate_usd }),\n\t\t...(s.sha && { sha: s.sha }),\n\t\t...(s.output && { output: s.output }),\n\t\t...(s.error && { error: s.error }),\n\t};\n}\n\nasync function download(url: string, file: string, signal?: AbortSignal) {\n\tconst res = await fetch(url, { signal });\n\tif (!res.ok || !res.body)\n\t\tthrow new CloudRenderError(\n\t\t\t`Downloading the render failed: HTTP ${res.status}`,\n\t\t\t\"download_failed\",\n\t\t);\n\tawait fs.mkdir(path.dirname(path.resolve(file)), { recursive: true });\n\tawait pipeline(\n\t\tReadable.fromWeb(res.body as WebReadableStream),\n\t\tcreateWriteStream(file),\n\t);\n}\n\nfunction sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal?.aborted) return reject(signal.reason);\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tsignal?.addEventListener(\n\t\t\t\"abort\",\n\t\t\t() => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(signal.reason);\n\t\t\t},\n\t\t\t{ once: true },\n\t\t);\n\t});\n}\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import "../chunk-D8S17ehY.mjs";
2
- import "../index-9_4X2ro1.mjs";
3
- import "../index-w28KUM9A.mjs";
4
- import "../index-Bzo1uj8h.mjs";
5
- import "../renderer-DoPEPlbG.mjs";
6
- import "../renderer-B-inTgyb.mjs";
7
- import { $a as withDefaults, $i as evaluateGlyphExpression, $n as Anchor, $r as ResolvedMotion, Aa as springAt, Ai as bandEdges, Ar as GlyphBox, Ba as targetPoint, Bi as contrastRatio, Br as MeasureOptions, Ca as resolveTarget, Ci as anchorPoint, Cr as ExtrudedTextOptions, Da as scaleFrames, Di as audioLevelsSchema, Dr as FrameValue, Ea as safeArea, Ei as ascending, Er as FrameContextLike, Fa as staggerOffsets, Fi as boundsOf, Fr as Host, Ga as toPathData, Gi as dist, Gr as MotionPresetName, Ha as themeFrames, Hi as defineComponent, Hr as Metrics, Ia as staggerRanks, Ii as boxPath, Ir as KeyBook, Ja as transparent, Ji as elevate, Jr as Placement, Ka as toSeconds, Ki as drawOnKeys, Kr as MotionSize, La as stepExpression, Li as catmullRom, Lr as LayerStyleConfig, Ma as springSettleFrames, Mi as beats, Mr as GlyphUnit, Na as springTrack, Ni as bind, Nr as GrainOptions, Oa as scheduleExpression, Oi as bakeFunction, Or as FrameWindow, Pa as squigglePath, Pi as boilKeys, Pr as HandOptions, Qa as withAlpha, Qi as evaluateEase, Qn as AnalyzeOptions, Qr as Rect, Ra as supersede, Ri as chain, Rr as MOTION_PRESETS, Sa as resolveMotion, Si as analyzeChannels, Sr as ElevationLevel, Ta as round, Ti as arrowPaths, Tr as FontRole, Ua as themes, Ui as defineMeta, Ur as MotionOptions, Va as textLayout, Vi as cover, Vr as MediaOptions, Wa as toFrames, Wi as defineTheme, Wr as MotionPreset, Xa as valueAt, Xi as ellipsePath, Xr as PropsOf, Ya as typingFrames, Yi as elevationStyle, Yr as ProjectDefaults, Za as windowExpression, Zi as enterAnimation, Zn as targetSchema, Zr as PulseOptions, _a as pulseKeys, _i as UNIT_INDEX, _r as Cues, aa as hashString, ai as Spring, ar as AudioLevels, ba as rendererChars, bi as WordRange, br as EaseFn, ca as isLight, ci as Target, cr as BaseProps, da as linePath, di as TextLayout, dr as CanvasSize, ea as exitAnimation, ei as ResolvedTarget, eo as within, er as Animatable, fa as lineShift, fi as Theme, fr as ComponentDefaults, ga as parseColor, gi as TrackedObjectLike, gr as Cue, ha as offsetCues, hi as Track, hr as ComponentMeta, i as analyzeAudio, ia as hashRng, ii as SafeInsets, ir as ArrowGeometry, ja as springKeys, ji as basePropsSchema, jr as GlyphProps, ka as smoothRelease, ki as bakeSamples, kr as GlyphAnimator, la as last, li as TargetContext, lr as BuildContext, ma as mix, mi as ThemeName, mr as ComponentExtras, n as bindComponent, na as frameSpan, ni as Rng, no as wordRanges, nr as ArcPath, oa as holdFirstKeys, oi as StaggerOrder, or as BakeOptions, pa as luminance, pi as ThemeInput, pr as ComponentDefinition, qa as transformPathData, qi as ease$1, qr as ParticleOptions, r as z, ra as glyphAnimator, ri as SAFE_INSETS, rr as ArrowCurve, sa as inkOn, si as SyntaxKind, sr as BakedKey, t as ComponentNode, ta as findRange, ti as Rgba, to as wobblePoints, tr as AnimatableMethods, ua as lerp2, ui as TargetNode, ur as BuildResult, va as quantize, vi as UnitSchedule, vr as CuesOf, wa as rng, wi as arcPath, wr as FontNeed, xa as resampleBands, xi as after, xr as Elevation, ya as rangeRects, yi as Vec2, yr as CutoutOptions, za as surfaceFill, zi as constantExpression, zr as MeasureFn } from "../index-B9Lm1x8i.mjs";
8
- import "../index-f4IF1vRH.mjs";
9
- import "../audio-D6tBMbHh.mjs";
10
- import "../index-svAgwTY_.mjs";
11
- import "../index-DBhswLMO.mjs";
12
- import "../index-C6GcuYVA.mjs";
13
- import "../index-V0ZQ4JN6.mjs";
14
- import "../index-CgGM31I9.mjs";
1
+ import "../chunk-W71TSjRM.mjs";
2
+ import "../index-COYNQ_mf.mjs";
3
+ import "../index-CDQrdZ0J.mjs";
4
+ import "../index-B7WqFBZA.mjs";
5
+ import "../renderer-tcypOFaB.mjs";
6
+ import "../renderer-DJuVX3c5.mjs";
7
+ import { $a as withDefaults, $i as exitAnimation, $n as Animatable, $r as ResolvedTarget, Aa as springKeys, Ai as basePropsSchema, Ar as GlyphProps, Ba as targetSchema, Bi as cover, Br as MediaOptions, Ca as rng, Ci as arcPath, Cr as FontNeed, Da as scheduleExpression, Di as bakeFunction, Dr as FrameWindow, Ea as scaleFrames, Ei as audioLevelsSchema, Er as FrameValue, Fa as staggerRanks, Fi as boxPath, Fr as KeyBook, Ga as toPathData, Gi as drawOnKeys, Gr as MotionSize, Ha as themeFrames, Hi as defineMeta, Hr as MotionOptions, Ia as stepExpression, Ii as catmullRom, Ir as LayerStyleConfig, Ja as transparent, Ji as elevationStyle, Jr as ProjectDefaults, Ka as toSeconds, Ki as ease$1, Kr as ParticleOptions, La as supersede, Li as chain, Lr as MOTION_PRESETS, Ma as springTrack, Mi as bind, Mr as GrainOptions, Na as squigglePath, Ni as boilKeys, Nr as HandOptions, Oa as smoothRelease, Oi as bakeSamples, Or as GlyphAnimator, Pa as staggerOffsets, Pi as boundsOf, Pr as Host, Qa as withAlpha, Qi as evaluateGlyphExpression, Qn as Anchor, Qr as ResolvedMotion, Ra as surfaceFill, Ri as constantExpression, Rr as MeasureFn, Sa as resolveTarget, Si as anchorPoint, Sr as ExtrudedTextOptions, Ta as safeArea, Ti as ascending, Tr as FrameContextLike, Ua as themes, Ui as defineTheme, Ur as MotionPreset, Va as textLayout, Vi as defineComponent, Vr as Metrics, Wa as toFrames, Wi as dist, Wr as MotionPresetName, Xa as valueAt, Xi as enterAnimation, Xr as PulseOptions, Ya as typingFrames, Yi as ellipsePath, Yr as PropsOf, Za as windowExpression, Zi as evaluateEase, Zn as AnalyzeOptions, Zr as Rect, _a as quantize, _i as UnitSchedule, _r as CuesOf, aa as holdFirstKeys, ai as StaggerOrder, ar as BakeOptions, ba as resampleBands, bi as after, br as Elevation, ca as last, ci as TargetContext, cr as BuildContext, da as lineShift, di as Theme, dr as ComponentDefaults, ea as findRange, ei as Rgba, eo as within, er as AnimatableMethods, fa as luminance, fi as ThemeInput, fr as ComponentDefinition, ga as pulseKeys, gi as UNIT_INDEX, gr as Cues, ha as parseColor, hi as TrackedObjectLike, hr as Cue, i as analyzeAudio, ia as hashString, ii as Spring, ir as AudioLevels, ja as springSettleFrames, ji as beats, jr as GlyphUnit, ka as springAt, ki as bandEdges, kr as GlyphBox, la as lerp2, li as TargetNode, lr as BuildResult, ma as offsetCues, mi as Track, mr as ComponentMeta, n as bindComponent, na as glyphAnimator, ni as SAFE_INSETS, no as wordRanges, nr as ArrowCurve, oa as inkOn, oi as SyntaxKind, or as BakedKey, pa as mix, pi as ThemeName, pr as ComponentExtras, qa as transformPathData, qi as elevate, qr as Placement, r as z, ra as hashRng, ri as SafeInsets, rr as ArrowGeometry, sa as isLight, si as Target, sr as BaseProps, t as ComponentNode, ta as frameSpan, ti as Rng, to as wobblePoints, tr as ArcPath, ua as linePath, ui as TextLayout, ur as CanvasSize, va as rangeRects, vi as Vec2, vr as CutoutOptions, wa as round, wi as arrowPaths, wr as FontRole, xa as resolveMotion, xi as analyzeChannels, xr as ElevationLevel, ya as rendererChars, yi as WordRange, yr as EaseFn, za as targetPoint, zi as contrastRatio, zr as MeasureOptions } from "../index-Dyt4yS-x.mjs";
8
+ import "../index-h7m8QgcL.mjs";
9
+ import "../audio-1X5qNNmk.mjs";
10
+ import "../index-WwuuX8ZJ.mjs";
11
+ import "../index-DQa7mhzq.mjs";
12
+ import "../index-Bbv0VtxJ.mjs";
13
+ import "../index-gOVtTm-P.mjs";
14
+ import "../index-CdCrae-I.mjs";
15
15
  export { AnalyzeOptions, Anchor, Animatable, AnimatableMethods, ArcPath, ArrowCurve, ArrowGeometry, AudioLevels, BakeOptions, BakedKey, BaseProps, BuildContext, BuildResult, CanvasSize, ComponentDefaults, ComponentDefinition, ComponentExtras, ComponentMeta, ComponentNode, Cue, Cues, CuesOf, CutoutOptions, EaseFn, Elevation, ElevationLevel, ExtrudedTextOptions, FontNeed, FontRole, FrameContextLike, FrameValue, FrameWindow, GlyphAnimator, GlyphBox, GlyphProps, GlyphUnit, GrainOptions, HandOptions, Host, KeyBook, LayerStyleConfig, MOTION_PRESETS, MeasureFn, MeasureOptions, MediaOptions, Metrics, MotionOptions, MotionPreset, MotionPresetName, MotionSize, ParticleOptions, Placement, ProjectDefaults, PropsOf, PulseOptions, Rect, ResolvedMotion, ResolvedTarget, Rgba, Rng, SAFE_INSETS, SafeInsets, Spring, StaggerOrder, SyntaxKind, Target, TargetContext, TargetNode, TextLayout, Theme, ThemeInput, ThemeName, Track, TrackedObjectLike, UNIT_INDEX, UnitSchedule, Vec2, WordRange, after, analyzeAudio, analyzeChannels, anchorPoint, arcPath, arrowPaths, ascending, audioLevelsSchema, bakeFunction, bakeSamples, bandEdges, basePropsSchema, beats, bind, bindComponent, boilKeys, boundsOf, boxPath, catmullRom, chain, constantExpression, contrastRatio, cover, defineComponent, defineMeta, defineTheme, dist, drawOnKeys, ease$1 as ease, elevate, elevationStyle, ellipsePath, enterAnimation, evaluateEase, evaluateGlyphExpression, exitAnimation, findRange, frameSpan, glyphAnimator, hashRng, hashString, holdFirstKeys, inkOn, isLight, last, lerp2, linePath, lineShift, luminance, mix, offsetCues, parseColor, pulseKeys, quantize, rangeRects, rendererChars, resampleBands, resolveMotion, resolveTarget, rng, round, safeArea, scaleFrames, scheduleExpression, smoothRelease, springAt, springKeys, springSettleFrames, springTrack, squigglePath, staggerOffsets, staggerRanks, stepExpression, supersede, surfaceFill, targetPoint, targetSchema, textLayout, themeFrames, themes, toFrames, toPathData, toSeconds, transformPathData, transparent, typingFrames, valueAt, windowExpression, withAlpha, withDefaults, within, wobblePoints, wordRanges, z };
@@ -1,49 +1,49 @@
1
- import "../chunk-D8S17ehY.mjs";
2
- import { $ as glyphAnimator, $t as wordRanges, A as boilKeys, At as squigglePath, B as defineTheme, Bt as themes, C as audioLevelsSchema, Ct as scaleFrames, D as basePropsSchema, Dt as springKeys, E as bandEdges, Et as springAt, F as constantExpression, Ft as surfaceFill, G as elevationStyle, Gt as transparent, H as drawOnKeys, Ht as toPathData, I as contrastRatio, It as targetPoint, J as evaluateEase, Jt as windowExpression, K as ellipsePath, Kt as typingFrames, L as cover, Lt as targetSchema, M as boxPath, Mt as staggerRanks, N as catmullRom, Nt as stepExpression, O as beats, Ot as springSettleFrames, P as chain, Pt as supersede, Q as frameSpan, Qt as wobblePoints, R as defineComponent, Rt as textLayout, S as ascending, St as safeArea, T as bakeSamples, Tt as smoothRelease, U as ease, Ut as toSeconds, V as dist, Vt as toFrames, W as elevate, Wt as transformPathData, X as exitAnimation, Xt as withDefaults, Y as evaluateGlyphExpression, Yt as withAlpha, Z as findRange, Zt as within, _ as after, _t as resampleBands, at as last, b as arcPath, bt as rng, ct as lineShift, d as analyzeAudio, dt as offsetCues, et as hashRng, f as KeyBook, ft as parseColor, g as UNIT_INDEX, gt as rendererChars, h as Track, ht as rangeRects, it as isLight, j as boundsOf, jt as staggerOffsets, k as bind, kt as springTrack, l as bindComponent, lt as luminance, m as SAFE_INSETS, mt as quantize, nt as holdFirstKeys, ot as lerp2, p as MOTION_PRESETS, pt as pulseKeys, q as enterAnimation, qt as valueAt, rt as inkOn, st as linePath, tt as hashString, u as z, ut as mix, v as analyzeChannels, vt as resolveMotion, w as bakeFunction, wt as scheduleExpression, x as arrowPaths, xt as round, y as anchorPoint, yt as resolveTarget, z as defineMeta, zt as themeFrames } from "../src-BU1VOWSk.mjs";
3
- import "../dist-D12-a3-x.mjs";
4
- import "../renderers-CP8CFWDs-BH1gUTYa.mjs";
5
- import "../signals-gOd0Ui9B.mjs";
6
- import "../renderer-C7MAqpIS.mjs";
7
- import "../renderer-q4zMFfnY.mjs";
8
- import "../renderer-CbhnJi_8.mjs";
9
- import "../renderer-CEfVvcw-.mjs";
10
- import "../renderer-BfbSvElt.mjs";
11
- import "../renderer-Dat8opUZ.mjs";
12
- import "../renderer-CYX9vKZ-.mjs";
13
- import "../renderer-CCFHnafT.mjs";
14
- import "../renderer-Cputd36d.mjs";
15
- import "../renderer-DH7l5WFr.mjs";
16
- import "../renderer-mQt-y49D.mjs";
17
- import "../renderer-BdbI_u9w.mjs";
18
- import "../renderer-BMP_lYMk.mjs";
19
- import "../renderer-C4yKI8MT.mjs";
20
- import "../renderer-BcO7LUla.mjs";
21
- import "../renderer-BRWjLiHX.mjs";
22
- import "../renderer-C3Iev6zu.mjs";
23
- import "../renderer-BJKzZwyn.mjs";
24
- import "../renderer-sPI7aY6c.mjs";
25
- import "../renderer-C6st34I6.mjs";
26
- import "../renderer-CyCtm0UV.mjs";
27
- import "../renderer-BZmmekE8.mjs";
28
- import "../renderer-CXLugAe8.mjs";
29
- import "../renderer-IQ97z2rw.mjs";
30
- import "../renderer-CpedZNEG.mjs";
31
- import "../renderer-B6TjJi1g.mjs";
32
- import "../renderer-Dee8ksIV.mjs";
33
- import "../renderer-ESkPj6pk.mjs";
34
- import "../renderer-DOKHd37M.mjs";
35
- import "../renderer-B7kOF_Az.mjs";
36
- import "../renderer-NTCk1Srf.mjs";
37
- import "../renderer-HnSiwSW8.mjs";
38
- import "../renderer-B78W9uad.mjs";
39
- import "../renderer-mLlgfM7X.mjs";
40
- import "../renderer-xDV2cCkX.mjs";
41
- import "../renderer-AUK_ZS3p.mjs";
42
- import "../renderer-C06U4c9k.mjs";
43
- import "../renderer-Cl8r1LJe.mjs";
44
- import "../renderer-DW7hbluw.mjs";
45
- import "../renderer-DIqkhsLI.mjs";
46
- import "../renderer-D2TTDcgh.mjs";
47
- import "../renderer-CWLF6cAz.mjs";
1
+ import "../chunk-W71TSjRM.mjs";
2
+ import { $ as glyphAnimator, $t as wordRanges, A as boilKeys, At as squigglePath, B as defineTheme, Bt as themes, C as audioLevelsSchema, Ct as scaleFrames, D as basePropsSchema, Dt as springKeys, E as bandEdges, Et as springAt, F as constantExpression, Ft as surfaceFill, G as elevationStyle, Gt as transparent, H as drawOnKeys, Ht as toPathData, I as contrastRatio, It as targetPoint, J as evaluateEase, Jt as windowExpression, K as ellipsePath, Kt as typingFrames, L as cover, Lt as targetSchema, M as boxPath, Mt as staggerRanks, N as catmullRom, Nt as stepExpression, O as beats, Ot as springSettleFrames, P as chain, Pt as supersede, Q as frameSpan, Qt as wobblePoints, R as defineComponent, Rt as textLayout, S as ascending, St as safeArea, T as bakeSamples, Tt as smoothRelease, U as ease, Ut as toSeconds, V as dist, Vt as toFrames, W as elevate, Wt as transformPathData, X as exitAnimation, Xt as withDefaults, Y as evaluateGlyphExpression, Yt as withAlpha, Z as findRange, Zt as within, _ as after, _t as resampleBands, at as last, b as arcPath, bt as rng, ct as lineShift, d as analyzeAudio, dt as offsetCues, et as hashRng, f as KeyBook, ft as parseColor, g as UNIT_INDEX, gt as rendererChars, h as Track, ht as rangeRects, it as isLight, j as boundsOf, jt as staggerOffsets, k as bind, kt as springTrack, l as bindComponent, lt as luminance, m as SAFE_INSETS, mt as quantize, nt as holdFirstKeys, ot as lerp2, p as MOTION_PRESETS, pt as pulseKeys, q as enterAnimation, qt as valueAt, rt as inkOn, st as linePath, tt as hashString, u as z, ut as mix, v as analyzeChannels, vt as resolveMotion, w as bakeFunction, wt as scheduleExpression, x as arrowPaths, xt as round, y as anchorPoint, yt as resolveTarget, z as defineMeta, zt as themeFrames } from "../src-C3f3zXYg.mjs";
3
+ import "../dist-C4Vxgm0Q.mjs";
4
+ import "../renderers-CP8CFWDs-OgyUiyrr.mjs";
5
+ import "../signals-BfJ1aqpT.mjs";
6
+ import "../renderer-BdRwbLLV.mjs";
7
+ import "../renderer-Dak_wVh9.mjs";
8
+ import "../renderer-CxabOSkk.mjs";
9
+ import "../renderer-CO1PwItH.mjs";
10
+ import "../renderer-Dswrn-yi.mjs";
11
+ import "../renderer-CanNjQuL.mjs";
12
+ import "../renderer-DrExCXnp.mjs";
13
+ import "../renderer-DxkvDAA6.mjs";
14
+ import "../renderer-B6rZUBwE.mjs";
15
+ import "../renderer-jBKpX3Xg.mjs";
16
+ import "../renderer-BnN3JH9u.mjs";
17
+ import "../renderer-CsRuEpR2.mjs";
18
+ import "../renderer-w7mlMSC-.mjs";
19
+ import "../renderer-CtulmkqT.mjs";
20
+ import "../renderer-Bif8bwCq.mjs";
21
+ import "../renderer-CDfCaqV4.mjs";
22
+ import "../renderer-DAug14gu.mjs";
23
+ import "../renderer-DxiF4O6X.mjs";
24
+ import "../renderer-DtCmG-tT.mjs";
25
+ import "../renderer-kFx1_MmK.mjs";
26
+ import "../renderer-CwAuWLWm.mjs";
27
+ import "../renderer-Bm91Xv6l.mjs";
28
+ import "../renderer-B8i4d1Rc.mjs";
29
+ import "../renderer-Dih1rtT6.mjs";
30
+ import "../renderer-7c0ecb-L.mjs";
31
+ import "../renderer-D1tDMuD0.mjs";
32
+ import "../renderer-BvRaVByi.mjs";
33
+ import "../renderer-BFmVDdVs.mjs";
34
+ import "../renderer-Dd2XrdqA.mjs";
35
+ import "../renderer-BIToh0CA.mjs";
36
+ import "../renderer-CeNAgCE2.mjs";
37
+ import "../renderer-BSW4CGZF.mjs";
38
+ import "../renderer-7w9PZmWJ.mjs";
39
+ import "../renderer-JASAZUyY.mjs";
40
+ import "../renderer-DKptrHeL.mjs";
41
+ import "../renderer-BhNZn2DU.mjs";
42
+ import "../renderer-D7lApyWZ.mjs";
43
+ import "../renderer-Br_aJ_b7.mjs";
44
+ import "../renderer-DjiebKHO.mjs";
45
+ import "../renderer-Ck-NLzz0.mjs";
46
+ import "../renderer-R2kLaNuR.mjs";
47
+ import "../renderer-DCMoBppL.mjs";
48
48
 
49
49
  export { KeyBook, MOTION_PRESETS, SAFE_INSETS, Track, UNIT_INDEX, after, analyzeAudio, analyzeChannels, anchorPoint, arcPath, arrowPaths, ascending, audioLevelsSchema, bakeFunction, bakeSamples, bandEdges, basePropsSchema, beats, bind, bindComponent, boilKeys, boundsOf, boxPath, catmullRom, chain, constantExpression, contrastRatio, cover, defineComponent, defineMeta, defineTheme, dist, drawOnKeys, ease, elevate, elevationStyle, ellipsePath, enterAnimation, evaluateEase, evaluateGlyphExpression, exitAnimation, findRange, frameSpan, glyphAnimator, hashRng, hashString, holdFirstKeys, inkOn, isLight, last, lerp2, linePath, lineShift, luminance, mix, offsetCues, parseColor, pulseKeys, quantize, rangeRects, rendererChars, resampleBands, resolveMotion, resolveTarget, rng, round, safeArea, scaleFrames, scheduleExpression, smoothRelease, springAt, springKeys, springSettleFrames, springTrack, squigglePath, staggerOffsets, staggerRanks, stepExpression, supersede, surfaceFill, targetPoint, targetSchema, textLayout, themeFrames, themes, toFrames, toPathData, toSeconds, transformPathData, transparent, typingFrames, valueAt, windowExpression, withAlpha, withDefaults, within, wobblePoints, wordRanges, z };
@@ -1,4 +1,4 @@
1
- import { F as registerVisionModel, M as varint, O as readVarint, P as VISION_MODELS, _ as fields, b as lengthDelimited, g as encoder, h as createDefaultSessionProvider, j as strings, k as sessionCompute, m as concat, u as VisionModelStore, v as firstString, y as imageToTensor } from "./src-Bnr8DUC--DzkRGA62.mjs";
1
+ import { F as registerVisionModel, M as varint, O as readVarint, P as VISION_MODELS, _ as fields, b as lengthDelimited, g as encoder, h as createDefaultSessionProvider, j as strings, k as sessionCompute, m as concat, u as VisionModelStore, v as firstString, y as imageToTensor } from "./src-BU6vm9sP-DFJ3phW0.mjs";
2
2
  import { z } from "zod";
3
3
  import { Tokenizer } from "@huggingface/tokenizers";
4
4
 
@@ -1431,4 +1431,4 @@ function seedLogits(logits) {
1431
1431
 
1432
1432
  //#endregion
1433
1433
  export { sam3Run as C, validateSam3Prompts as E, sam3Revision as S, validateSam2Prompts as T, sam3EncoderFiles as _, SAM_MODELS as a, sam3Position as b, Sam3MemoryBank as c, assertSamLicenseAccepted as d, decodeSam2Mask as f, sam3DenseDecoder as g, sam2Tokens as h, SAM_LICENSE_TERMS_URL as i, Sam3TextSelector as l, sam2Revision as m, SAM3_ENCODER as n, Sam2MemoryBank as o, ensureSamModelsRegistered as p, SAM_LICENSE as r, Sam2Tracker as s, SAM2_EXPORTS as t, Sam3Tracker as u, sam3Floats as v, sam3SupportGraphs as w, sam3Precision as x, sam3Mask as y };
1434
- //# sourceMappingURL=dist-Dq5TkNDI.mjs.map
1434
+ //# sourceMappingURL=dist-2_lT3Dwc.mjs.map