framefields 2.0.2 → 2.0.3

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 (174) hide show
  1. package/README.md +6 -6
  2. package/dist/audio/index.mjs +10 -10
  3. package/dist/{audio-x28ZgQBP.mjs → audio-DbxiKp5p.mjs} +3 -3
  4. package/dist/{audio-x28ZgQBP.mjs.map → audio-DbxiKp5p.mjs.map} +1 -1
  5. package/dist/{dist-1iUYuPct.mjs → dist-CGIme1vZ.mjs} +2 -2
  6. package/dist/{dist-1iUYuPct.mjs.map → dist-CGIme1vZ.mjs.map} +1 -1
  7. package/dist/{dist-gjHmorxL.mjs → dist-DuIv211_.mjs} +16 -2
  8. package/dist/dist-DuIv211_.mjs.map +1 -0
  9. package/dist/effects/index.d.mts +1 -1
  10. package/dist/effects/index.mjs +23 -23
  11. package/dist/{effects-CHWORCYd.mjs → effects-B_APkGJJ.mjs} +2 -2
  12. package/dist/{effects-CHWORCYd.mjs.map → effects-B_APkGJJ.mjs.map} +1 -1
  13. package/dist/fonts/index.mjs +1 -1
  14. package/dist/{fonts-DrGTBJJk.mjs → fonts-CwwIhe1o.mjs} +2 -2
  15. package/dist/{fonts-DrGTBJJk.mjs.map → fonts-CwwIhe1o.mjs.map} +1 -1
  16. package/dist/{index-DKFGNyMB.d.mts → index-CnAk1hTw.d.mts} +8 -1
  17. package/dist/{index-DKFGNyMB.d.mts.map → index-CnAk1hTw.d.mts.map} +1 -1
  18. package/dist/index-D2jDC7O5.d.mts.map +1 -1
  19. package/dist/{index-B0BNPEoH.d.mts → index-D7llSs-m.d.mts} +2 -2
  20. package/dist/index-D7llSs-m.d.mts.map +1 -0
  21. package/dist/index.d.mts +68 -61
  22. package/dist/index.d.mts.map +1 -1
  23. package/dist/index.mjs +38 -38
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/preview/index.d.mts +1 -1
  26. package/dist/preview/index.mjs +10 -10
  27. package/dist/{preview-uQM210iy.mjs → preview-D7TqF9i_.mjs} +2 -2
  28. package/dist/{preview-uQM210iy.mjs.map → preview-D7TqF9i_.mjs.map} +1 -1
  29. package/dist/preview-engine/{chunk-MT2DZQHO.mjs → chunk-4Q7JG6WJ.mjs} +1 -1
  30. package/dist/preview-engine/{chunk-SWD76532.mjs → chunk-PCB2VB5K.mjs} +2 -2
  31. package/dist/preview-engine/{chunk-DPST2XLC.mjs → chunk-QARN3FLA.mjs} +6 -6
  32. package/dist/preview-engine/chunk-UC7CSW2A.mjs +1 -0
  33. package/dist/preview-engine/effects.mjs +1 -1
  34. package/dist/preview-engine/framefields.mjs +1 -1
  35. package/dist/preview-engine/player.mjs +5 -5
  36. package/dist/preview-engine/{renderers-YVN3EIOP.mjs → renderers-76MPTVZK.mjs} +1 -1
  37. package/dist/{program-Dl510wmI.mjs → program-Cjva0Nw2.mjs} +2 -2
  38. package/dist/{program-Dl510wmI.mjs.map → program-Cjva0Nw2.mjs.map} +1 -1
  39. package/dist/renderer/index.d.mts +1 -1
  40. package/dist/renderer/index.mjs +2 -2
  41. package/dist/renderer-0kXgErRZ.mjs +3 -0
  42. package/dist/{renderer-B9-QSJcG.mjs → renderer-1ccLpvz3.mjs} +2 -2
  43. package/dist/{renderer-B9-QSJcG.mjs.map → renderer-1ccLpvz3.mjs.map} +1 -1
  44. package/dist/{renderer-I-Sw3JBB.mjs → renderer-8dDNjgzG.mjs} +2 -2
  45. package/dist/{renderer-I-Sw3JBB.mjs.map → renderer-8dDNjgzG.mjs.map} +1 -1
  46. package/dist/{renderer-DxjVQV6f.mjs → renderer-9ZcinEHr.mjs} +2 -2
  47. package/dist/{renderer-DxjVQV6f.mjs.map → renderer-9ZcinEHr.mjs.map} +1 -1
  48. package/dist/{renderer-CB5aWAaf.mjs → renderer-B0DTz9Fr.mjs} +2 -2
  49. package/dist/{renderer-CB5aWAaf.mjs.map → renderer-B0DTz9Fr.mjs.map} +1 -1
  50. package/dist/{renderer-B1CvhW4p.mjs → renderer-B5Tq5MWB.mjs} +2 -2
  51. package/dist/{renderer-B1CvhW4p.mjs.map → renderer-B5Tq5MWB.mjs.map} +1 -1
  52. package/dist/{renderer-vCFTm0oe.mjs → renderer-B6YiOv7l.mjs} +2 -2
  53. package/dist/{renderer-vCFTm0oe.mjs.map → renderer-B6YiOv7l.mjs.map} +1 -1
  54. package/dist/{renderer-7DOcIxFG.mjs → renderer-B8ugHLDi.mjs} +2 -2
  55. package/dist/{renderer-7DOcIxFG.mjs.map → renderer-B8ugHLDi.mjs.map} +1 -1
  56. package/dist/renderer-B9e4XyZy.mjs +3 -0
  57. package/dist/renderer-BBhCaxS2.mjs +3 -0
  58. package/dist/{renderer-B_NuVaIP.mjs → renderer-BBweieq9.mjs} +2 -2
  59. package/dist/{renderer-B_NuVaIP.mjs.map → renderer-BBweieq9.mjs.map} +1 -1
  60. package/dist/renderer-BC0iMueW.mjs +3 -0
  61. package/dist/renderer-BGd1VV9J.mjs +3 -0
  62. package/dist/renderer-BJKbasW6.mjs +3 -0
  63. package/dist/{renderer-OWQmmg4Z.mjs → renderer-BQgAn_oc.mjs} +2 -2
  64. package/dist/{renderer-OWQmmg4Z.mjs.map → renderer-BQgAn_oc.mjs.map} +1 -1
  65. package/dist/renderer-BV3mlZMX.mjs +3 -0
  66. package/dist/{renderer-ByDhfrPE.mjs → renderer-BXDrwZNT.mjs} +2 -2
  67. package/dist/{renderer-ByDhfrPE.mjs.map → renderer-BXDrwZNT.mjs.map} +1 -1
  68. package/dist/{renderer-CwQhzcUn.mjs → renderer-BcckaXum.mjs} +2 -2
  69. package/dist/{renderer-CwQhzcUn.mjs.map → renderer-BcckaXum.mjs.map} +1 -1
  70. package/dist/{renderer-BsgIcBKH.mjs → renderer-BgAzIw8w.mjs} +2 -2
  71. package/dist/{renderer-BsgIcBKH.mjs.map → renderer-BgAzIw8w.mjs.map} +1 -1
  72. package/dist/renderer-BgO4XWZz.mjs +3 -0
  73. package/dist/{renderer-Tp6OXWNZ.mjs → renderer-Bh1pfpzz.mjs} +2 -2
  74. package/dist/{renderer-Tp6OXWNZ.mjs.map → renderer-Bh1pfpzz.mjs.map} +1 -1
  75. package/dist/renderer-Bk842iGl.mjs +4 -0
  76. package/dist/{renderer-CszOjcRW.mjs → renderer-Bmt3fpzg.mjs} +1 -1
  77. package/dist/renderer-Bn7jX6n3.mjs +3 -0
  78. package/dist/{renderer-HFfcJlmR.mjs → renderer-BusX07ZE.mjs} +2 -2
  79. package/dist/{renderer-HFfcJlmR.mjs.map → renderer-BusX07ZE.mjs.map} +1 -1
  80. package/dist/{renderer-k2JL79kM.mjs → renderer-BwE5dnyL.mjs} +2 -2
  81. package/dist/{renderer-k2JL79kM.mjs.map → renderer-BwE5dnyL.mjs.map} +1 -1
  82. package/dist/{renderer-CclIvsLO.mjs → renderer-CBdqOoTN.mjs} +1 -1
  83. package/dist/renderer-CPKOjnkT.mjs +3 -0
  84. package/dist/renderer-CSgVUPHu.mjs +3 -0
  85. package/dist/renderer-CUr66blo.mjs +3 -0
  86. package/dist/{renderer-BXMmISWG.mjs → renderer-CXO4wWOT.mjs} +2 -2
  87. package/dist/{renderer-BXMmISWG.mjs.map → renderer-CXO4wWOT.mjs.map} +1 -1
  88. package/dist/renderer-CYC-j_8W.mjs +3 -0
  89. package/dist/{renderer-vvpdx1vk.mjs → renderer-CcDfRa1o.mjs} +2 -2
  90. package/dist/{renderer-vvpdx1vk.mjs.map → renderer-CcDfRa1o.mjs.map} +1 -1
  91. package/dist/{renderer-CMzEjdzi.mjs → renderer-CeF66MG3.mjs} +2 -2
  92. package/dist/{renderer-CMzEjdzi.mjs.map → renderer-CeF66MG3.mjs.map} +1 -1
  93. package/dist/{renderer-Ryo2CEFD.mjs → renderer-CkLD7Lp7.mjs} +2 -2
  94. package/dist/{renderer-Ryo2CEFD.mjs.map → renderer-CkLD7Lp7.mjs.map} +1 -1
  95. package/dist/{renderer-Dt6fzgX5.mjs → renderer-CuppzplW.mjs} +2 -2
  96. package/dist/{renderer-Dt6fzgX5.mjs.map → renderer-CuppzplW.mjs.map} +1 -1
  97. package/dist/{renderer-CB7lH5K8.mjs → renderer-CxE-8m71.mjs} +1 -1
  98. package/dist/renderer-Cy7k7eN9.mjs +3 -0
  99. package/dist/renderer-D3poaM-T.mjs +3 -0
  100. package/dist/renderer-D69vFGNB.mjs +3 -0
  101. package/dist/{renderer-COkcU3db.mjs → renderer-D9lcIxrz.mjs} +4 -4
  102. package/dist/{renderer-COkcU3db.mjs.map → renderer-D9lcIxrz.mjs.map} +1 -1
  103. package/dist/{renderer-BQHbp-Sp.mjs → renderer-DFA0KBdj.mjs} +2 -2
  104. package/dist/{renderer-BQHbp-Sp.mjs.map → renderer-DFA0KBdj.mjs.map} +1 -1
  105. package/dist/{renderer-CDOUAN7X.mjs → renderer-DG3VnR50.mjs} +2 -2
  106. package/dist/{renderer-CDOUAN7X.mjs.map → renderer-DG3VnR50.mjs.map} +1 -1
  107. package/dist/{renderer-BGXU6vcW.mjs → renderer-DQQnEcSA.mjs} +2 -2
  108. package/dist/{renderer-BGXU6vcW.mjs.map → renderer-DQQnEcSA.mjs.map} +1 -1
  109. package/dist/{renderer-D7EX8IjU.mjs → renderer-DVSagfD4.mjs} +2 -2
  110. package/dist/{renderer-D7EX8IjU.mjs.map → renderer-DVSagfD4.mjs.map} +1 -1
  111. package/dist/{renderer-C17wL9QX.mjs → renderer-DWvg6ZKK.mjs} +2 -2
  112. package/dist/{renderer-C17wL9QX.mjs.map → renderer-DWvg6ZKK.mjs.map} +1 -1
  113. package/dist/{renderer-Dp_FfvF-.mjs → renderer-Daa-Af8y.mjs} +2 -2
  114. package/dist/{renderer-Dp_FfvF-.mjs.map → renderer-Daa-Af8y.mjs.map} +1 -1
  115. package/dist/renderer-DiXzb5FQ.mjs +3 -0
  116. package/dist/{renderer-pxXf9dvk.mjs → renderer-DjYRCzzV.mjs} +2 -2
  117. package/dist/{renderer-pxXf9dvk.mjs.map → renderer-DjYRCzzV.mjs.map} +1 -1
  118. package/dist/renderer-DkKjy-Q0.mjs +3 -0
  119. package/dist/renderer-DlxCfGuA.mjs +3 -0
  120. package/dist/{renderer-Cj-whdVr.mjs → renderer-Dm0r9IBd.mjs} +2 -2
  121. package/dist/{renderer-Cj-whdVr.mjs.map → renderer-Dm0r9IBd.mjs.map} +1 -1
  122. package/dist/renderer-DnUe5mD1.mjs +3 -0
  123. package/dist/renderer-DwtLqidh.mjs +3 -0
  124. package/dist/{renderer-DbaQLI4z.mjs → renderer-NYcVjCOi.mjs} +2 -2
  125. package/dist/{renderer-DbaQLI4z.mjs.map → renderer-NYcVjCOi.mjs.map} +1 -1
  126. package/dist/{renderer-WkVrkCVA.mjs → renderer-VHpQTPbr.mjs} +2 -2
  127. package/dist/{renderer-WkVrkCVA.mjs.map → renderer-VHpQTPbr.mjs.map} +1 -1
  128. package/dist/renderer-WaLyCr37.mjs +3 -0
  129. package/dist/{renderer-BAQmR0Zo.mjs → renderer-Y7-Us00q.mjs} +1 -1
  130. package/dist/{renderer-Cl1oUXMi.mjs → renderer-aH8p3zLE.mjs} +2 -2
  131. package/dist/{renderer-Cl1oUXMi.mjs.map → renderer-aH8p3zLE.mjs.map} +1 -1
  132. package/dist/renderer-rrz9Fhwo.mjs +3 -0
  133. package/dist/{renderer-CH8sdfYX.mjs → renderer-s_HENMCc.mjs} +2 -2
  134. package/dist/{renderer-CH8sdfYX.mjs.map → renderer-s_HENMCc.mjs.map} +1 -1
  135. package/dist/renderer-ssnm_dWv.mjs +3 -0
  136. package/dist/{renderer-Fco4EmAu.mjs → renderer-vnHsTpQf.mjs} +111 -60
  137. package/dist/{renderer-Fco4EmAu.mjs.map → renderer-vnHsTpQf.mjs.map} +1 -1
  138. package/dist/renderer-xc9wkiC7.mjs +3 -0
  139. package/dist/{renderer-XcmYTd6P.mjs → renderer-z6Qb5Z-W.mjs} +143 -4
  140. package/dist/renderer-z6Qb5Z-W.mjs.map +1 -0
  141. package/dist/{renderers-BWg16W-V-BXG_cjhM.mjs → renderers-BWg16W-V-FofeEqQL.mjs} +2 -2
  142. package/dist/{renderers-BWg16W-V-BXG_cjhM.mjs.map → renderers-BWg16W-V-FofeEqQL.mjs.map} +1 -1
  143. package/dist/signals/index.mjs +4 -4
  144. package/package.json +54 -54
  145. package/dist/dist-gjHmorxL.mjs.map +0 -1
  146. package/dist/index-B0BNPEoH.d.mts.map +0 -1
  147. package/dist/preview-engine/chunk-DRLEOHN5.mjs +0 -1
  148. package/dist/renderer-3BNskNuJ.mjs +0 -3
  149. package/dist/renderer-9dHlMQGX.mjs +0 -3
  150. package/dist/renderer-BGvORwkQ.mjs +0 -3
  151. package/dist/renderer-BLikd6BK.mjs +0 -3
  152. package/dist/renderer-BSbTJBWc.mjs +0 -3
  153. package/dist/renderer-BU1rwNRT.mjs +0 -3
  154. package/dist/renderer-BZJm3m4f.mjs +0 -3
  155. package/dist/renderer-BqyAgNt3.mjs +0 -3
  156. package/dist/renderer-BryTM2g7.mjs +0 -3
  157. package/dist/renderer-CQCoggIa.mjs +0 -3
  158. package/dist/renderer-CV2m6k1V.mjs +0 -3
  159. package/dist/renderer-CYY-poLe.mjs +0 -3
  160. package/dist/renderer-C_Ki91kc.mjs +0 -3
  161. package/dist/renderer-CmApuKjS.mjs +0 -3
  162. package/dist/renderer-Cu074POw.mjs +0 -3
  163. package/dist/renderer-D4qLmox-.mjs +0 -3
  164. package/dist/renderer-D6cJ6MSq.mjs +0 -3
  165. package/dist/renderer-DQLGnEFc.mjs +0 -3
  166. package/dist/renderer-DY2SVYUW.mjs +0 -3
  167. package/dist/renderer-DoAY5JbB.mjs +0 -4
  168. package/dist/renderer-DuplLRbp.mjs +0 -3
  169. package/dist/renderer-DvfUbZ31.mjs +0 -3
  170. package/dist/renderer-Q_uUQipO.mjs +0 -3
  171. package/dist/renderer-UQFCgeNx.mjs +0 -3
  172. package/dist/renderer-XcmYTd6P.mjs.map +0 -1
  173. package/dist/renderer-eMsnzJg9.mjs +0 -3
  174. package/dist/renderer-pHiz78e0.mjs +0 -3
@@ -1,8 +1,8 @@
1
1
  import { a as __toCommonJS, i as __require, o as __toESM, t as __commonJSMin } from "./chunk-GMkBE123.mjs";
2
2
  import { Bt as takeRenderDiagnostics, Ht as updateClockSignals, wt as getMediaType } from "./dist-Bx6J0VcM.mjs";
3
3
  import { r as registerWebGPURenderer, t as audioRegistry } from "./renderer-CtVkU_GA.mjs";
4
- import { B as inputStore, C as WebGPUAudioProcessor, F as ensureDevice, G as lutStore, L as getHeadlessFontPath, R as getRenderer2D, T as clearAllVideoCache, at as R2_CUSTOM_DOMAIN, d as NodeSurfaceProvider, et as shaderStore, it as GetFontAssetUrl, q as mediaDecoderCache, rt as textureCache, y as SlugFontCache, z as initHeadlessWebGPU } from "./dist-gjHmorxL.mjs";
5
- import { i as mixAudioTracks, r as drawCompositionTree, t as compositionStateStore, y as preloadFont } from "./dist-1iUYuPct.mjs";
4
+ import { B as inputStore, C as WebGPUAudioProcessor, F as ensureDevice, G as lutStore, L as getHeadlessFontPath, R as getRenderer2D, T as clearAllVideoCache, at as R2_CUSTOM_DOMAIN, d as NodeSurfaceProvider, et as shaderStore, it as GetFontAssetUrl, q as mediaDecoderCache, rt as textureCache, y as SlugFontCache, z as initHeadlessWebGPU } from "./dist-DuIv211_.mjs";
5
+ import { i as mixAudioTracks, r as drawCompositionTree, t as compositionStateStore, y as preloadFont } from "./dist-CGIme1vZ.mjs";
6
6
  import { t as require_dist_cjs$20 } from "./dist-cjs-BUwe2XhR.mjs";
7
7
  import { D as require_dist_cjs$21, O as dist_es_exports$1, _ as require_dist_cjs$33, a as require_dist_cjs$26, b as init_protocols, c as require_dist_cjs$37, d as require_dist_cjs$32, f as require_dist_cjs$23, g as require_dist_cjs$34, h as require_dist_cjs$35, i as require_dist_cjs$28, k as init_dist_es$1, l as require_dist_cjs$27, m as require_dist_cjs$22, n as require_dist_cjs$31, o as require_dist_cjs$29, p as require_dist_cjs$24, r as require_dist_cjs$30, s as require_dist_cjs$25, t as require_dist_cjs$38, u as require_dist_cjs$36, v as dist_es_exports, x as protocols_exports, y as init_dist_es } from "./dist-cjs-BKmGCgtm.mjs";
8
8
  import { F as require_dist_cjs$42, I as require_dist_cjs$44, P as require_dist_cjs$39, R as require_dist_cjs$43, T as schema_exports, t as require_dist_cjs$41, v as init_tslib_es6, w as init_schema, y as tslib_es6_exports, z as require_dist_cjs$40 } from "./dist-cjs-DsMdld8l.mjs";
@@ -26,7 +26,7 @@ import * as webcodecs from "@napi-rs/webcodecs";
26
26
  import { VideoFrame } from "@napi-rs/webcodecs";
27
27
  import { fileURLToPath, pathToFileURL } from "node:url";
28
28
  import { registerMediabunnyServer } from "@mediabunny/server";
29
- import { execSync, spawn } from "node:child_process";
29
+ import { exec, spawn } from "node:child_process";
30
30
  import sharp from "sharp";
31
31
 
32
32
  //#region ../../node_modules/.pnpm/@inversifyjs+common@1.5.2/node_modules/@inversifyjs/common/lib/esm/index.js
@@ -21593,7 +21593,7 @@ const envSchema = z$1.object({
21593
21593
  * App version read from the monorepo root package.json.
21594
21594
  * Used for version-aware render fingerprinting.
21595
21595
  */
21596
- const APP_VERSION = "2.0.2";
21596
+ const APP_VERSION = "2.0.3";
21597
21597
  let loggerContext = {
21598
21598
  getStore: () => void 0,
21599
21599
  run: (_store, callback, ...args) => callback(...args)
@@ -22004,52 +22004,52 @@ const BUILTIN_NODE_RENDERERS = [
22004
22004
  {
22005
22005
  packageName: "@framefields/node-lut",
22006
22006
  ops: ["ApplyLUT"],
22007
- load: () => import("./renderer-CYY-poLe.mjs")
22007
+ load: () => import("./renderer-CPKOjnkT.mjs")
22008
22008
  },
22009
22009
  {
22010
22010
  packageName: "@framefields/node-audio-compressor",
22011
22011
  ops: ["AudioCompressor"],
22012
- load: () => import("./renderer-UQFCgeNx.mjs")
22012
+ load: () => import("./renderer-BV3mlZMX.mjs")
22013
22013
  },
22014
22014
  {
22015
22015
  packageName: "@framefields/node-audio-delay",
22016
22016
  ops: ["AudioDelay"],
22017
- load: () => import("./renderer-DQLGnEFc.mjs")
22017
+ load: () => import("./renderer-Cy7k7eN9.mjs")
22018
22018
  },
22019
22019
  {
22020
22020
  packageName: "@framefields/node-audio-fade",
22021
22021
  ops: ["AudioFade"],
22022
- load: () => import("./renderer-D4qLmox-.mjs")
22022
+ load: () => import("./renderer-CUr66blo.mjs")
22023
22023
  },
22024
22024
  {
22025
22025
  packageName: "@framefields/node-audio-noise-gate",
22026
22026
  ops: ["AudioNoiseGate"],
22027
- load: () => import("./renderer-Q_uUQipO.mjs")
22027
+ load: () => import("./renderer-D69vFGNB.mjs")
22028
22028
  },
22029
22029
  {
22030
22030
  packageName: "@framefields/node-audio-parametric-eq",
22031
22031
  ops: ["AudioParametricEq"],
22032
- load: () => import("./renderer-CV2m6k1V.mjs")
22032
+ load: () => import("./renderer-CSgVUPHu.mjs")
22033
22033
  },
22034
22034
  {
22035
22035
  packageName: "@framefields/node-audio-reverb",
22036
22036
  ops: ["AudioReverb"],
22037
- load: () => import("./renderer-9dHlMQGX.mjs")
22037
+ load: () => import("./renderer-DlxCfGuA.mjs")
22038
22038
  },
22039
22039
  {
22040
22040
  packageName: "@framefields/node-audio-signal-extractor",
22041
22041
  ops: ["AudioSignalExtractor"],
22042
- load: () => import("./renderer-DoAY5JbB.mjs")
22042
+ load: () => import("./renderer-Bk842iGl.mjs")
22043
22043
  },
22044
22044
  {
22045
22045
  packageName: "@framefields/node-blur",
22046
22046
  ops: ["Blur"],
22047
- load: () => import("./renderer-DvfUbZ31.mjs")
22047
+ load: () => import("./renderer-ssnm_dWv.mjs")
22048
22048
  },
22049
22049
  {
22050
22050
  packageName: "@framefields/node-camera-parallax-3d",
22051
22051
  ops: ["CameraParallax3D"],
22052
- load: () => import("./renderer-Cj-whdVr.mjs")
22052
+ load: () => import("./renderer-Dm0r9IBd.mjs")
22053
22053
  },
22054
22054
  {
22055
22055
  packageName: "@framefields/node-canvas-generator",
@@ -22069,17 +22069,17 @@ const BUILTIN_NODE_RENDERERS = [
22069
22069
  {
22070
22070
  packageName: "@framefields/node-color-balance",
22071
22071
  ops: ["ColorBalance"],
22072
- load: () => import("./renderer-CszOjcRW.mjs")
22072
+ load: () => import("./renderer-Bmt3fpzg.mjs")
22073
22073
  },
22074
22074
  {
22075
22075
  packageName: "@framefields/node-colorkey",
22076
22076
  ops: ["ColorKey"],
22077
- load: () => import("./renderer-BZJm3m4f.mjs")
22077
+ load: () => import("./renderer-D3poaM-T.mjs")
22078
22078
  },
22079
22079
  {
22080
22080
  packageName: "@framefields/node-compositor",
22081
22081
  ops: ["Compositor"],
22082
- load: () => import("./renderer-COkcU3db.mjs")
22082
+ load: () => import("./renderer-D9lcIxrz.mjs")
22083
22083
  },
22084
22084
  {
22085
22085
  packageName: "@framefields/node-corner-pin",
@@ -22104,7 +22104,7 @@ const BUILTIN_NODE_RENDERERS = [
22104
22104
  {
22105
22105
  packageName: "@framefields/node-displacement-map",
22106
22106
  ops: ["DisplacementMap"],
22107
- load: () => import("./renderer-pHiz78e0.mjs")
22107
+ load: () => import("./renderer-Bn7jX6n3.mjs")
22108
22108
  },
22109
22109
  {
22110
22110
  packageName: "@framefields/node-extract-frame",
@@ -22114,12 +22114,12 @@ const BUILTIN_NODE_RENDERERS = [
22114
22114
  {
22115
22115
  packageName: "@framefields/node-extract-lut",
22116
22116
  ops: ["ExtractLUT"],
22117
- load: () => import("./renderer-HFfcJlmR.mjs")
22117
+ load: () => import("./renderer-BusX07ZE.mjs")
22118
22118
  },
22119
22119
  {
22120
22120
  packageName: "@framefields/node-film-grain",
22121
22121
  ops: ["FilmGrain"],
22122
- load: () => import("./renderer-CmApuKjS.mjs")
22122
+ load: () => import("./renderer-BgO4XWZz.mjs")
22123
22123
  },
22124
22124
  {
22125
22125
  packageName: "@framefields/node-flip",
@@ -22129,17 +22129,17 @@ const BUILTIN_NODE_RENDERERS = [
22129
22129
  {
22130
22130
  packageName: "@framefields/node-gradient-map",
22131
22131
  ops: ["GradientMap"],
22132
- load: () => import("./renderer-CB7lH5K8.mjs")
22132
+ load: () => import("./renderer-CxE-8m71.mjs")
22133
22133
  },
22134
22134
  {
22135
22135
  packageName: "@framefields/node-halftone-screen",
22136
22136
  ops: ["HalftoneScreen"],
22137
- load: () => import("./renderer-BU1rwNRT.mjs")
22137
+ load: () => import("./renderer-0kXgErRZ.mjs")
22138
22138
  },
22139
22139
  {
22140
22140
  packageName: "@framefields/node-high-pass",
22141
22141
  ops: ["HighPass"],
22142
- load: () => import("./renderer-BqyAgNt3.mjs")
22142
+ load: () => import("./renderer-DiXzb5FQ.mjs")
22143
22143
  },
22144
22144
  {
22145
22145
  packageName: "@framefields/node-kenburns",
@@ -22154,7 +22154,7 @@ const BUILTIN_NODE_RENDERERS = [
22154
22154
  {
22155
22155
  packageName: "@framefields/node-levels",
22156
22156
  ops: ["Levels"],
22157
- load: () => import("./renderer-C_Ki91kc.mjs")
22157
+ load: () => import("./renderer-DwtLqidh.mjs")
22158
22158
  },
22159
22159
  {
22160
22160
  packageName: "@framefields/node-liquify",
@@ -22164,7 +22164,7 @@ const BUILTIN_NODE_RENDERERS = [
22164
22164
  {
22165
22165
  packageName: "@framefields/node-mask-math",
22166
22166
  ops: ["MaskMath"],
22167
- load: () => import("./renderer-DY2SVYUW.mjs")
22167
+ load: () => import("./renderer-BGd1VV9J.mjs")
22168
22168
  },
22169
22169
  {
22170
22170
  packageName: "@framefields/node-mesh-warp",
@@ -22174,37 +22174,37 @@ const BUILTIN_NODE_RENDERERS = [
22174
22174
  {
22175
22175
  packageName: "@framefields/node-modulate",
22176
22176
  ops: ["Modulate"],
22177
- load: () => import("./renderer-eMsnzJg9.mjs")
22177
+ load: () => import("./renderer-BJKbasW6.mjs")
22178
22178
  },
22179
22179
  {
22180
22180
  packageName: "@framefields/node-noise-generator",
22181
22181
  ops: ["NoiseGenerator"],
22182
- load: () => import("./renderer-B9-QSJcG.mjs")
22182
+ load: () => import("./renderer-1ccLpvz3.mjs")
22183
22183
  },
22184
22184
  {
22185
22185
  packageName: "@framefields/node-paint",
22186
22186
  ops: ["Paint"],
22187
- load: () => import("./renderer-BSbTJBWc.mjs")
22187
+ load: () => import("./renderer-CYC-j_8W.mjs")
22188
22188
  },
22189
22189
  {
22190
22190
  packageName: "@framefields/node-patch-heal",
22191
22191
  ops: ["PatchHeal"],
22192
- load: () => import("./renderer-BAQmR0Zo.mjs")
22192
+ load: () => import("./renderer-Y7-Us00q.mjs")
22193
22193
  },
22194
22194
  {
22195
22195
  packageName: "@framefields/node-refine-edge",
22196
22196
  ops: ["RefineEdge"],
22197
- load: () => import("./renderer-DuplLRbp.mjs")
22197
+ load: () => import("./renderer-DnUe5mD1.mjs")
22198
22198
  },
22199
22199
  {
22200
22200
  packageName: "@framefields/node-refraction-caustics",
22201
22201
  ops: ["RefractionCaustics3D"],
22202
- load: () => import("./renderer-CclIvsLO.mjs")
22202
+ load: () => import("./renderer-CBdqOoTN.mjs")
22203
22203
  },
22204
22204
  {
22205
22205
  packageName: "@framefields/node-relight-3d",
22206
22206
  ops: ["Relight3D"],
22207
- load: () => import("./renderer-D6cJ6MSq.mjs")
22207
+ load: () => import("./renderer-BC0iMueW.mjs")
22208
22208
  },
22209
22209
  {
22210
22210
  packageName: "@framefields/node-resizer-scaler",
@@ -22219,12 +22219,12 @@ const BUILTIN_NODE_RENDERERS = [
22219
22219
  {
22220
22220
  packageName: "@framefields/node-shadows-highlights",
22221
22221
  ops: ["ShadowsHighlights"],
22222
- load: () => import("./renderer-BLikd6BK.mjs")
22222
+ load: () => import("./renderer-DkKjy-Q0.mjs")
22223
22223
  },
22224
22224
  {
22225
22225
  packageName: "@framefields/node-shape-generator",
22226
22226
  ops: ["ShapeGenerator"],
22227
- load: () => import("./renderer-D7EX8IjU.mjs")
22227
+ load: () => import("./renderer-DVSagfD4.mjs")
22228
22228
  },
22229
22229
  {
22230
22230
  packageName: "@framefields/node-signal-gate",
@@ -22234,27 +22234,27 @@ const BUILTIN_NODE_RENDERERS = [
22234
22234
  {
22235
22235
  packageName: "@framefields/node-stereo-panning",
22236
22236
  ops: ["StereoPanning"],
22237
- load: () => import("./renderer-Cu074POw.mjs")
22237
+ load: () => import("./renderer-rrz9Fhwo.mjs")
22238
22238
  },
22239
22239
  {
22240
22240
  packageName: "@framefields/node-tile-offset",
22241
22241
  ops: ["TileOffset"],
22242
- load: () => import("./renderer-BryTM2g7.mjs")
22242
+ load: () => import("./renderer-WaLyCr37.mjs")
22243
22243
  },
22244
22244
  {
22245
22245
  packageName: "@framefields/node-unsharp-mask",
22246
22246
  ops: ["UnsharpMask"],
22247
- load: () => import("./renderer-3BNskNuJ.mjs")
22247
+ load: () => import("./renderer-B9e4XyZy.mjs")
22248
22248
  },
22249
22249
  {
22250
22250
  packageName: "@framefields/node-vignette",
22251
22251
  ops: ["Vignette"],
22252
- load: () => import("./renderer-BGvORwkQ.mjs")
22252
+ load: () => import("./renderer-BBhCaxS2.mjs")
22253
22253
  },
22254
22254
  {
22255
22255
  packageName: "@framefields/node-vision",
22256
22256
  ops: ["Vision"],
22257
- load: () => import("./renderer-CQCoggIa.mjs")
22257
+ load: () => import("./renderer-xc9wkiC7.mjs")
22258
22258
  }
22259
22259
  ];
22260
22260
  /**
@@ -22453,7 +22453,7 @@ const bootstrapMediabunny = () => {
22453
22453
  };
22454
22454
 
22455
22455
  //#endregion
22456
- //#region ../renderer/dist/headless-webgpu-renderer-5ajPGQL3.mjs
22456
+ //#region ../renderer/dist/headless-webgpu-renderer-B9EKrcuH.mjs
22457
22457
  const DEFAULTS = {
22458
22458
  blackPixelThreshold: .1,
22459
22459
  blackFrameRatio: .98,
@@ -23090,6 +23090,72 @@ function resolveQuality(quality) {
23090
23090
  default: return QUALITY_VERY_HIGH;
23091
23091
  }
23092
23092
  }
23093
+ let cachedVramUsage = "N/A";
23094
+ let vramProbeInFlight = false;
23095
+ function refreshVramUsage() {
23096
+ if (vramProbeInFlight) return;
23097
+ vramProbeInFlight = true;
23098
+ exec("nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits", {
23099
+ encoding: "utf-8",
23100
+ timeout: 2e3
23101
+ }, (err, stdout) => {
23102
+ vramProbeInFlight = false;
23103
+ if (err || !stdout) return;
23104
+ const [used, total] = stdout.trim().split(",").map((s) => s.trim());
23105
+ if (used && total) cachedVramUsage = `${used}MB / ${total}MB`;
23106
+ });
23107
+ }
23108
+ function getVramUsage() {
23109
+ return cachedVramUsage;
23110
+ }
23111
+ const DEFAULT_RING_CAPACITY = 2;
23112
+ const MIN_RING_CAPACITY = 2;
23113
+ const MAX_RING_CAPACITY = 8;
23114
+ function resolveRingCapacity(explicit) {
23115
+ const fromEnv = Number(process.env.FRAMEFIELDS_RING_CAPACITY);
23116
+ const requested = explicit ?? (Number.isFinite(fromEnv) && fromEnv > 0 ? fromEnv : NaN);
23117
+ if (!Number.isFinite(requested) || requested <= 0) return DEFAULT_RING_CAPACITY;
23118
+ return Math.max(MIN_RING_CAPACITY, Math.min(MAX_RING_CAPACITY, Math.floor(requested)));
23119
+ }
23120
+ var NodeSurfacePool = class {
23121
+ idle = [];
23122
+ maxIdle = 2;
23123
+ acquire(device, width, height) {
23124
+ const index = this.idle.findIndex((entry) => entry.device === device && entry.surface.width === width && entry.surface.height === height);
23125
+ if (index >= 0) {
23126
+ const [entry] = this.idle.splice(index, 1);
23127
+ if (entry) return entry.surface;
23128
+ }
23129
+ for (let i$1 = this.idle.length - 1; i$1 >= 0; i$1--) {
23130
+ const entry = this.idle[i$1];
23131
+ if (entry && entry.device !== device) {
23132
+ this.idle.splice(i$1, 1);
23133
+ try {
23134
+ entry.surface.destroy();
23135
+ } catch {}
23136
+ }
23137
+ }
23138
+ return new NodeSurfaceProvider(device, width, height);
23139
+ }
23140
+ release(device, surface) {
23141
+ if (this.idle.length >= this.maxIdle) {
23142
+ try {
23143
+ surface.destroy();
23144
+ } catch {}
23145
+ return;
23146
+ }
23147
+ this.idle.push({
23148
+ device,
23149
+ surface
23150
+ });
23151
+ }
23152
+ destroy() {
23153
+ for (const entry of this.idle.splice(0)) try {
23154
+ entry.surface.destroy();
23155
+ } catch {}
23156
+ }
23157
+ };
23158
+ const nodeSurfacePool = new NodeSurfacePool();
23093
23159
  function formatLutAsCube(lut) {
23094
23160
  const lines = [
23095
23161
  "# Created by Gatewai",
@@ -23152,7 +23218,7 @@ var HeadlessWebGPURenderer = class HeadlessWebGPURenderer$1 {
23152
23218
  const device = await ensureDevice();
23153
23219
  try {
23154
23220
  await preloadFonts(virtualMedia, device);
23155
- surface = new NodeSurfaceProvider(device, width, height);
23221
+ surface = nodeSurfacePool.acquire(device, width, height);
23156
23222
  renderer = getRenderer2D(device, surface.colorFormat);
23157
23223
  const ctx = {
23158
23224
  device,
@@ -23219,9 +23285,7 @@ var HeadlessWebGPURenderer = class HeadlessWebGPURenderer$1 {
23219
23285
  try {
23220
23286
  shaderStore.clear(renderId);
23221
23287
  } catch {}
23222
- try {
23223
- surface?.destroy();
23224
- } catch {}
23288
+ if (surface) nodeSurfacePool.release(device, surface);
23225
23289
  try {
23226
23290
  textureCache.destroy();
23227
23291
  } catch {}
@@ -23456,22 +23520,9 @@ var HeadlessWebGPURenderer = class HeadlessWebGPURenderer$1 {
23456
23520
  const heapTotalMb = Math.round(mem.heapTotal / 1024 / 1024);
23457
23521
  return `Process: ${Math.round(mem.rss / 1024 / 1024)}MB RSS (${heapUsedMb}MB/${heapTotalMb}MB Heap), System: ${Math.round(usedMem / 1024 / 1024)}MB/${Math.round(totalMem / 1024 / 1024)}MB`;
23458
23522
  };
23459
- const getVramUsage = () => {
23460
- try {
23461
- const [used, total] = execSync("nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits", {
23462
- encoding: "utf-8",
23463
- stdio: [
23464
- "ignore",
23465
- "pipe",
23466
- "ignore"
23467
- ]
23468
- }).trim().split(",").map((s) => s.trim());
23469
- if (used && total) return `${used}MB / ${total}MB`;
23470
- } catch {}
23471
- return "N/A";
23472
- };
23473
23523
  let statsInterval;
23474
23524
  if (process.env.NODE_ENV === "production") statsInterval = setInterval(() => {
23525
+ refreshVramUsage();
23475
23526
  rendererLogger.info({
23476
23527
  renderId,
23477
23528
  cpu: getCpuUsage(),
@@ -23522,7 +23573,7 @@ var HeadlessWebGPURenderer = class HeadlessWebGPURenderer$1 {
23522
23573
  height,
23523
23574
  fps,
23524
23575
  videoSource,
23525
- ringCapacity: 2,
23576
+ ringCapacity: resolveRingCapacity(options?.ringCapacity),
23526
23577
  onFrame: inspector ? (rgba) => inspector.inspect(rgba, width, height) : void 0
23527
23578
  });
23528
23579
  const ctx = surface && renderer ? {
@@ -23865,4 +23916,4 @@ async function renderFrameGrid(target, options = {}) {
23865
23916
 
23866
23917
  //#endregion
23867
23918
  export { HeadlessWebGPURenderer as a, HeadlessMediaRenderer as i, renderFrameGrid as n, formatQaReport as o, resolveSamplePoints as r, renderSemaphore as s, computeGridLayout as t };
23868
- //# sourceMappingURL=renderer-Fco4EmAu.mjs.map
23919
+ //# sourceMappingURL=renderer-vnHsTpQf.mjs.map