@cueframe/kernel 0.1.4 → 0.2.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 (330) hide show
  1. package/dist/_members/account-model/validators/contextFile.d.ts +3 -21
  2. package/dist/_members/account-model/validators/conversation.d.ts +12 -42
  3. package/dist/_members/account-model/validators/dashboardInsight.d.ts +3 -17
  4. package/dist/_members/account-model/validators/sessionToken.d.ts +10 -36
  5. package/dist/_members/account-model/validators/uploadToken.d.ts +11 -21
  6. package/dist/_members/account-model/validators/userSettings.d.ts +3 -13
  7. package/dist/_members/account-model/validators/workingComposition.d.ts +3 -19
  8. package/dist/_members/authoring/capabilities.d.ts +0 -9
  9. package/dist/_members/authoring/index.d.ts +1 -1
  10. package/dist/_members/authoring/models/defaultModels.d.ts +12 -0
  11. package/dist/_members/authoring/models/modelFactory.d.ts +1 -0
  12. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +1 -7
  13. package/dist/_members/authoring/types.d.ts +0 -1
  14. package/dist/_members/component-runtime/assetServer.d.ts +18 -0
  15. package/dist/_members/component-runtime/assetServer.d.ts.map +1 -0
  16. package/dist/_members/component-runtime/bake.d.ts +12 -0
  17. package/dist/_members/component-runtime/bake.d.ts.map +1 -0
  18. package/dist/_members/component-runtime/browserFirewall.d.ts +21 -0
  19. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -0
  20. package/dist/_members/component-runtime/browserIdentity.d.ts +14 -0
  21. package/dist/_members/component-runtime/browserIdentity.d.ts.map +1 -0
  22. package/dist/_members/component-runtime/browserOptions.d.ts +8 -0
  23. package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -0
  24. package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
  25. package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -0
  26. package/dist/_members/component-runtime/contracts.d.ts +443 -0
  27. package/dist/_members/component-runtime/contracts.d.ts.map +1 -0
  28. package/dist/_members/component-runtime/determinism.d.ts +18 -0
  29. package/dist/_members/component-runtime/determinism.d.ts.map +1 -0
  30. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +9 -0
  31. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +1 -0
  32. package/dist/_members/component-runtime/identity.d.ts +16 -0
  33. package/dist/_members/component-runtime/identity.d.ts.map +1 -0
  34. package/dist/_members/component-runtime/importPolicy.d.ts +3 -0
  35. package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -0
  36. package/dist/_members/component-runtime/index.d.ts +11 -0
  37. package/dist/_members/component-runtime/index.d.ts.map +1 -0
  38. package/dist/_members/component-runtime/outputVerifier.d.ts +29 -0
  39. package/dist/_members/component-runtime/outputVerifier.d.ts.map +1 -0
  40. package/dist/_members/{render-harness/localRender.d.ts → component-runtime/render.d.ts} +22 -15
  41. package/dist/_members/component-runtime/render.d.ts.map +1 -0
  42. package/dist/_members/component-runtime/sourceWorkspace.d.ts +10 -0
  43. package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -0
  44. package/dist/_members/compose/index.d.ts +0 -5
  45. package/dist/_members/composition/graphics-plan/schemas.d.ts +299 -1309
  46. package/dist/_members/composition/primitive-catalog/index.d.ts +2 -2
  47. package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -14
  48. package/dist/_members/composition/reframe/index.d.ts +56 -528
  49. package/dist/_members/composition/validators/brandKit.d.ts +247 -1208
  50. package/dist/_members/composition/validators/composePlan.d.ts +106 -818
  51. package/dist/_members/composition/validators/composition.d.ts +1338 -5856
  52. package/dist/_members/composition/validators/font.d.ts +35 -91
  53. package/dist/_members/composition/validators/project.d.ts +15 -46
  54. package/dist/_members/composition/validators/registry.d.ts +53 -135
  55. package/dist/_members/composition/validators/render.d.ts +803 -7273
  56. package/dist/_members/composition/validators/session.d.ts +38 -76
  57. package/dist/_members/composition/validators/webhook.d.ts +23 -50
  58. package/dist/_members/composition-ops/alphaLayers.d.ts +3 -2
  59. package/dist/_members/composition-ops/index.d.ts +409 -4309
  60. package/dist/_members/core/render/compositionAudioAndDepth.d.ts +6 -0
  61. package/dist/_members/core/render/compositionRender.d.ts +3 -4
  62. package/dist/_members/core/render/compositionValidation.d.ts +4 -0
  63. package/dist/_members/core/render/index.d.ts +2 -2
  64. package/dist/_members/core/render/types.d.ts +16 -8
  65. package/dist/_members/director/ai-sdk/messages.d.ts +67 -217
  66. package/dist/_members/director/domain/chat.d.ts +70 -293
  67. package/dist/_members/director/testing/contract.d.ts +11 -11
  68. package/dist/_members/errors/registry.d.ts +189 -3
  69. package/dist/_members/foundation/primitives/index.d.ts +1 -1
  70. package/dist/_members/mcp/adapter.d.ts +3 -0
  71. package/dist/_members/mcp/burnedNames.d.ts +0 -1
  72. package/dist/_members/mcp/core.d.ts +6 -3
  73. package/dist/_members/mcp/curation.d.ts +3 -38
  74. package/dist/_members/mcp/curationTypes.d.ts +34 -0
  75. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  76. package/dist/_members/mcp/generated/operations.d.ts +10 -0
  77. package/dist/_members/mcp/main.d.ts +1 -0
  78. package/dist/_members/mcp/mediaContextFormat.d.ts +4 -0
  79. package/dist/_members/mcp/prompts.d.ts +1 -1
  80. package/dist/_members/mcp/query.d.ts +4 -0
  81. package/dist/_members/mcp/resources.d.ts +1 -1
  82. package/dist/_members/mcp/server.d.ts +1 -2
  83. package/dist/_members/mcp/wireSchema.d.ts +13 -0
  84. package/dist/_members/media-model/api.d.ts +114 -662
  85. package/dist/_members/media-model/generation.d.ts +141 -228
  86. package/dist/_members/plane/contract.d.ts +16 -19
  87. package/dist/_members/primitives/backgrounds/animated-bar-chart/config.d.ts +3 -27
  88. package/dist/_members/primitives/backgrounds/animated-line-chart/config.d.ts +2 -26
  89. package/dist/_members/primitives/backgrounds/dither-gradient-bg/config.d.ts +1 -17
  90. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +6 -14
  91. package/dist/_members/primitives/backgrounds/ecosystem-constellation/config.d.ts +1 -11
  92. package/dist/_members/primitives/backgrounds/infinite-marquee/config.d.ts +1 -21
  93. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/config.d.ts +2 -12
  94. package/dist/_members/primitives/backgrounds/perspective-marquee/config.d.ts +2 -26
  95. package/dist/_members/primitives/backgrounds/silk-flow-bg/config.d.ts +2 -22
  96. package/dist/_members/primitives/backgrounds/vector-field/config.d.ts +1 -17
  97. package/dist/_members/primitives/backgrounds/volumetric-rays/config.d.ts +1 -19
  98. package/dist/_members/primitives/effects/blur/config.d.ts +5 -14
  99. package/dist/_members/primitives/effects/color-grade/config.d.ts +10 -18
  100. package/dist/_members/primitives/effects/grain/config.d.ts +9 -12
  101. package/dist/_members/primitives/effects/parallax/config.d.ts +8 -12
  102. package/dist/_members/primitives/effects/particles/config.d.ts +9 -20
  103. package/dist/_members/primitives/effects/pulsing-indicator/config.d.ts +1 -13
  104. package/dist/_members/primitives/effects/spotlight-card/config.d.ts +1 -25
  105. package/dist/_members/primitives/effects/spring-pop-in/config.d.ts +1 -15
  106. package/dist/_members/primitives/effects/success-confetti/config.d.ts +2 -26
  107. package/dist/_members/primitives/effects/vignette/config.d.ts +5 -12
  108. package/dist/_members/primitives/hero-text/config.d.ts +9 -24
  109. package/dist/_members/primitives/layouts/chat-to-preview-layout/config.d.ts +1 -11
  110. package/dist/_members/primitives/layouts/infinite-bento-pan/config.d.ts +1 -9
  111. package/dist/_members/primitives/layouts/letterbox/config.d.ts +1 -9
  112. package/dist/_members/primitives/layouts/photo-grid/config.d.ts +2 -12
  113. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +7 -12
  114. package/dist/_members/primitives/layouts/split-screen/config.d.ts +1 -7
  115. package/dist/_members/primitives/layouts/staggered-bento-grid/config.d.ts +3 -51
  116. package/dist/_members/primitives/lib/schema.d.ts +1 -1
  117. package/dist/_members/primitives/scenes/changelog-bite/config.d.ts +7 -24
  118. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +5 -14
  119. package/dist/_members/primitives/scenes/landing-code-showcase/config.d.ts +1 -7
  120. package/dist/_members/primitives/scenes/live-code-compilation/config.d.ts +1 -7
  121. package/dist/_members/primitives/scenes/pricing-tier-focus/config.d.ts +2 -12
  122. package/dist/_members/primitives/scenes/product-launch-trailer/config.d.ts +1 -19
  123. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/config.d.ts +1 -11
  124. package/dist/_members/primitives/text/blur-reveal/config.d.ts +1 -17
  125. package/dist/_members/primitives/text/cinematic-title/config.d.ts +13 -73
  126. package/dist/_members/primitives/text/inline-highlight/config.d.ts +1 -21
  127. package/dist/_members/primitives/text/karaoke/config.d.ts +10 -93
  128. package/dist/_members/primitives/text/kinetic-type/config.d.ts +14 -49
  129. package/dist/_members/primitives/text/lower-third/config.d.ts +8 -70
  130. package/dist/_members/primitives/text/marker-highlight/config.d.ts +1 -23
  131. package/dist/_members/primitives/text/masked-slide-reveal/config.d.ts +1 -17
  132. package/dist/_members/primitives/text/matrix-decode/config.d.ts +1 -19
  133. package/dist/_members/primitives/text/quote-card/config.d.ts +1 -11
  134. package/dist/_members/primitives/text/rgb-glitch-text/config.d.ts +1 -23
  135. package/dist/_members/primitives/text/shimmer-sweep/config.d.ts +1 -17
  136. package/dist/_members/primitives/text/slot-machine-roll/config.d.ts +1 -17
  137. package/dist/_members/primitives/text/staggered-fade-up/config.d.ts +2 -24
  138. package/dist/_members/primitives/text/stat-counter/config.d.ts +6 -20
  139. package/dist/_members/primitives/text/strikethrough-replace/config.d.ts +1 -19
  140. package/dist/_members/primitives/text/text-effect/config.d.ts +10 -15
  141. package/dist/_members/primitives/text/text-fade-replace/config.d.ts +1 -17
  142. package/dist/_members/primitives/text/token-stream/config.d.ts +1 -11
  143. package/dist/_members/primitives/text/tracking-in/config.d.ts +1 -19
  144. package/dist/_members/primitives/text/typewriter/config.d.ts +1 -21
  145. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/config.d.ts +5 -8
  146. package/dist/_members/primitives/transitions/code-diff-wipe/config.d.ts +1 -21
  147. package/dist/_members/primitives/transitions/directional-wipe/config.d.ts +7 -6
  148. package/dist/_members/primitives/transitions/frosted-glass-wipe/config.d.ts +1 -5
  149. package/dist/_members/primitives/transitions/glitch-cut/config.d.ts +1 -7
  150. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +6 -12
  151. package/dist/_members/primitives/transitions/ink-wipe/config.d.ts +7 -8
  152. package/dist/_members/primitives/transitions/kinetic-type-mask/config.d.ts +1 -7
  153. package/dist/_members/primitives/transitions/light-leak/config.d.ts +1 -7
  154. package/dist/_members/primitives/transitions/luma-matte/config.d.ts +6 -6
  155. package/dist/_members/primitives/transitions/morph/config.d.ts +5 -6
  156. package/dist/_members/primitives/transitions/spatial-push/config.d.ts +7 -6
  157. package/dist/_members/primitives/transitions/swipe-transition-wipe/config.d.ts +5 -10
  158. package/dist/_members/primitives/transitions/zoom-through/config.d.ts +2 -30
  159. package/dist/_members/primitives/transitions/zoom-through-transition/config.d.ts +1 -13
  160. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/config.d.ts +1 -29
  161. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/config.d.ts +1 -11
  162. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +8 -16
  163. package/dist/_members/primitives/ui-blocks/before-after-slider/config.d.ts +1 -11
  164. package/dist/_members/primitives/ui-blocks/benchmark-bars/config.d.ts +3 -73
  165. package/dist/_members/primitives/ui-blocks/bounding-box-selector/config.d.ts +1 -15
  166. package/dist/_members/primitives/ui-blocks/browser-flow/config.d.ts +1 -7
  167. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/config.d.ts +1 -21
  168. package/dist/_members/primitives/ui-blocks/chat-exchange/config.d.ts +1 -15
  169. package/dist/_members/primitives/ui-blocks/code-accordion/config.d.ts +2 -26
  170. package/dist/_members/primitives/ui-blocks/context-meter/config.d.ts +1 -13
  171. package/dist/_members/primitives/ui-blocks/cursor-flow/config.d.ts +2 -66
  172. package/dist/_members/primitives/ui-blocks/dashboard-populate/config.d.ts +1 -9
  173. package/dist/_members/primitives/ui-blocks/data-flow-pipes/config.d.ts +3 -97
  174. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +5 -14
  175. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/config.d.ts +1 -13
  176. package/dist/_members/primitives/ui-blocks/eval-scorecard/config.d.ts +2 -36
  177. package/dist/_members/primitives/ui-blocks/glass-code-block/config.d.ts +1 -23
  178. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/config.d.ts +3 -113
  179. package/dist/_members/primitives/ui-blocks/metric-gauge/config.d.ts +2 -34
  180. package/dist/_members/primitives/ui-blocks/morphing-modal/config.d.ts +3 -113
  181. package/dist/_members/primitives/ui-blocks/pipeline-journey/config.d.ts +1 -9
  182. package/dist/_members/primitives/ui-blocks/progress-steps/config.d.ts +6 -37
  183. package/dist/_members/primitives/ui-blocks/reasoning-trace/config.d.ts +2 -12
  184. package/dist/_members/primitives/ui-blocks/simulated-cursor/config.d.ts +2 -54
  185. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +9 -48
  186. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +7 -20
  187. package/dist/_members/primitives/ui-blocks/tool-call-stack/config.d.ts +2 -42
  188. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/config.d.ts +1 -19
  189. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/config.d.ts +3 -71
  190. package/dist/_members/primitives/ui-blocks/voice-waveform/config.d.ts +5 -14
  191. package/dist/_members/primitives/workspace.d.ts +1 -5
  192. package/dist/_members/render-harness/cardAssetAdmission.d.ts +3 -0
  193. package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -0
  194. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  195. package/dist/_members/render-harness/index.d.ts +1 -5
  196. package/dist/_members/render-harness/index.d.ts.map +1 -1
  197. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  198. package/dist/_members/render-harness/remotion-runtime.d.ts +20 -0
  199. package/dist/_members/render-harness/renderInputAssets.d.ts +2 -1
  200. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  201. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  202. package/dist/authoring/build-tools.js +8 -8
  203. package/dist/authoring/context.js +5 -5
  204. package/dist/authoring/models.js +3 -1
  205. package/dist/authoring/resource-routing.js +1 -1
  206. package/dist/authoring/resources.js +1 -1
  207. package/dist/authoring/tools.js +7 -7
  208. package/dist/authoring.js +15 -31
  209. package/dist/{chunk-R5BMJ2NX.js → chunk-4FOOBSEE.js} +33 -2
  210. package/dist/{chunk-YXEZ75MB.js → chunk-4JRUGT2Y.js} +43 -108
  211. package/dist/{chunk-FMODQD5P.js → chunk-4ZE564YF.js} +16 -9
  212. package/dist/chunk-5OTQ7M43.js +718 -0
  213. package/dist/{chunk-O7GNE4BQ.js → chunk-6ID2J64H.js} +4 -4
  214. package/dist/{chunk-RXCEPCAQ.js → chunk-6XI57FZZ.js} +280 -191
  215. package/dist/{chunk-2SNY75AR.js → chunk-7KEUL3FI.js} +4 -2
  216. package/dist/{chunk-WTT3GGCA.js → chunk-AD5HWBCE.js} +1 -1
  217. package/dist/{chunk-JY26PIRP.js → chunk-C5SEPOWD.js} +163 -171
  218. package/dist/chunk-CGHTMZNC.js +6 -0
  219. package/dist/chunk-DHKQ47Q6.js +57 -0
  220. package/dist/{chunk-3PM6VICZ.js → chunk-DQKSCHFC.js} +4 -4
  221. package/dist/{chunk-D6S3ZKIY.js → chunk-EEXCDFY5.js} +1 -1
  222. package/dist/{chunk-ZT7MHRQU.js → chunk-GCQ7Z7S7.js} +15 -5
  223. package/dist/{chunk-ZBRPF6GV.js → chunk-GEGRJKKO.js} +1 -1
  224. package/dist/chunk-HHFDHJ3I.js +392 -0
  225. package/dist/{chunk-JRIPQ7DN.js → chunk-IBMJ33EL.js} +3 -3
  226. package/dist/{chunk-JTVFIN6H.js → chunk-IHFREGFA.js} +10 -4
  227. package/dist/chunk-IJ7PVJTK.js +114 -0
  228. package/dist/{chunk-6ABIXGLO.js → chunk-KKEY5MIW.js} +8 -8
  229. package/dist/{chunk-7TQCR7AB.js → chunk-LNBVTDFR.js} +1 -1
  230. package/dist/chunk-LQUWKBST.js +195 -0
  231. package/dist/chunk-M2TLRXEO.js +41 -0
  232. package/dist/{chunk-7V3F5HO4.js → chunk-NOEBAV2G.js} +58 -2
  233. package/dist/{chunk-RQ2G4DXI.js → chunk-QBKDEO7J.js} +1502 -1314
  234. package/dist/chunk-RFXR7ATW.js +244 -0
  235. package/dist/chunk-SIAXP3ZO.js +131 -0
  236. package/dist/{chunk-MCBUX5XV.js → chunk-SLN5UKLT.js} +2 -2
  237. package/dist/{chunk-GH27OS5S.js → chunk-VCBLGZQQ.js} +19 -4
  238. package/dist/{chunk-TLVPDT4R.js → chunk-XHUYWVYK.js} +1 -1
  239. package/dist/{chunk-D2EGO543.js → chunk-XVBOSPZI.js} +15 -17
  240. package/dist/{chunk-YE3F4LNJ.js → chunk-Y3QGYASW.js} +18 -18
  241. package/dist/{chunk-LSP4HN5N.js → chunk-ZCAQHNPI.js} +1 -1
  242. package/dist/{chunk-PJ4R4N4Q.js → chunk-ZN6P3KOJ.js} +70 -93
  243. package/dist/chunk-ZZRBKGDA.js +109 -0
  244. package/dist/component-runtime/browserOptions.d.ts +1 -0
  245. package/dist/component-runtime/browserOptions.js +7 -0
  246. package/dist/component-runtime/contracts.d.ts +1 -0
  247. package/dist/component-runtime/contracts.js +49 -0
  248. package/dist/component-runtime/identity/browser.d.ts +1 -0
  249. package/dist/component-runtime/identity/browser.js +35 -0
  250. package/dist/component-runtime/identity.d.ts +1 -0
  251. package/dist/component-runtime/identity.js +21 -0
  252. package/dist/component-runtime/importPolicy.d.ts +1 -0
  253. package/dist/component-runtime/importPolicy.js +10 -0
  254. package/dist/component-runtime/render.d.ts +1 -0
  255. package/dist/component-runtime/render.js +34 -0
  256. package/dist/component-runtime.d.ts +1 -0
  257. package/dist/component-runtime.js +132 -0
  258. package/dist/compose.js +17 -31
  259. package/dist/composition/graphics-plan.js +1 -1
  260. package/dist/composition/ops.js +4 -4
  261. package/dist/composition/primitive-catalog.js +1 -3
  262. package/dist/composition/projection.js +2 -2
  263. package/dist/composition/timeline.js +2 -2
  264. package/dist/composition/validators.js +2 -2
  265. package/dist/composition-ops.js +23 -17
  266. package/dist/composition.js +15 -15
  267. package/dist/{context-XWNT6QZH.js → context-4GSDBFT3.js} +5 -5
  268. package/dist/core/render.js +8 -8
  269. package/dist/core/select.js +2 -2
  270. package/dist/core.js +6 -6
  271. package/dist/director/ai-sdk.js +3 -3
  272. package/dist/director/domain.js +2 -2
  273. package/dist/director.js +3 -3
  274. package/dist/errors.js +1 -1
  275. package/dist/mcp/adapter.js +22 -29
  276. package/dist/mcp/core.js +1 -1
  277. package/dist/mcp/curation.js +1 -1
  278. package/dist/mcp/executor.js +1 -1
  279. package/dist/mcp/server.js +4 -6
  280. package/dist/mcp/wire-schema.d.ts +1 -0
  281. package/dist/mcp/wire-schema.js +37 -0
  282. package/dist/mcp.js +6 -29
  283. package/dist/nle-export.js +16 -25
  284. package/dist/plane/conformance.js +1 -1
  285. package/dist/plane/contract.js +7 -0
  286. package/dist/plane.js +1 -1
  287. package/dist/primitives/backgrounds.js +2 -2
  288. package/dist/primitives/captions.js +3 -3
  289. package/dist/primitives/effects.js +2 -2
  290. package/dist/primitives/layouts.js +2 -2
  291. package/dist/primitives/lib/index.js +8 -8
  292. package/dist/primitives/lib/schema.js +1 -1
  293. package/dist/primitives/lib.js +8 -8
  294. package/dist/primitives/text.js +2 -2
  295. package/dist/primitives/ui-blocks.js +2 -2
  296. package/dist/primitives.js +18 -18
  297. package/dist/render-harness/cardAssetAdmission.d.ts +1 -0
  298. package/dist/render-harness/cardAssetAdmission.js +8 -0
  299. package/dist/render-harness/renderInputAssets.d.ts +1 -0
  300. package/dist/render-harness/renderInputAssets.js +17 -0
  301. package/dist/render-harness.js +44 -574
  302. package/package.json +69 -36
  303. package/dist/_members/authoring/transpileComponent.d.ts +0 -6
  304. package/dist/_members/authoring/transpileHelper.d.ts +0 -8
  305. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  306. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -25
  307. package/dist/_members/compose/schema.d.ts +0 -30
  308. package/dist/_members/compose/tokenResolver.d.ts +0 -17
  309. package/dist/_members/render-harness/browserOptions.d.ts +0 -11
  310. package/dist/_members/render-harness/browserOptions.d.ts.map +0 -1
  311. package/dist/_members/render-harness/contractRender.d.ts +0 -27
  312. package/dist/_members/render-harness/contractRender.d.ts.map +0 -1
  313. package/dist/_members/render-harness/localRender.d.ts.map +0 -1
  314. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -9
  315. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +0 -1
  316. package/dist/authoring/transpileComponent.d.ts +0 -1
  317. package/dist/authoring/transpileComponent.js +0 -31
  318. package/dist/authoring/transpileHelper.d.ts +0 -1
  319. package/dist/authoring/transpileHelper.js +0 -9
  320. package/dist/chunk-MHOQTPOB.js +0 -124
  321. package/dist/chunk-QSDFTYKV.js +0 -85
  322. package/dist/chunk-RHVLQNYF.js +0 -20
  323. package/dist/chunk-V24L35GM.js +0 -61
  324. package/dist/compose/renderer.d.ts +0 -1
  325. package/dist/compose/renderer.js +0 -170
  326. package/dist/render-harness/sandboxGlobalSpecs.d.ts +0 -1
  327. package/dist/render-harness/sandboxGlobalSpecs.js +0 -13
  328. package/dist/{chunk-THJAY7QS.js → chunk-BKHGL4MB.js} +4 -4
  329. package/dist/{chunk-XATRRDVG.js → chunk-G5BFI32U.js} +3 -3
  330. package/dist/{chunk-23HFEKV7.js → chunk-QISFYLBB.js} +4 -4
@@ -0,0 +1,718 @@
1
+ import {
2
+ cacheDir,
3
+ componentDir
4
+ } from "./chunk-WB2VFDQZ.js";
5
+ import {
6
+ COMPONENT_CHROMIUM_OPTIONS
7
+ } from "./chunk-CGHTMZNC.js";
8
+ import {
9
+ ComponentRuntimeError,
10
+ ComponentRuntimeErrorCode
11
+ } from "./chunk-LQUWKBST.js";
12
+
13
+ // ../execution/component-runtime/src/browserFirewall.ts
14
+ function isLoopbackHost(hostname) {
15
+ return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
16
+ }
17
+ function decideComponentRequest(url, resourceType, documentOrigin, allowedAssetOrigins) {
18
+ let parsed;
19
+ try {
20
+ parsed = new URL(url);
21
+ } catch {
22
+ return { allow: false, documentOrigin };
23
+ }
24
+ if (parsed.protocol === "data:" || parsed.protocol === "blob:" || parsed.protocol === "about:") {
25
+ return { allow: true, documentOrigin };
26
+ }
27
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
28
+ return { allow: false, documentOrigin };
29
+ }
30
+ if (documentOrigin === null && resourceType === "Document" && isLoopbackHost(parsed.hostname)) {
31
+ return { allow: true, documentOrigin: parsed.origin };
32
+ }
33
+ return {
34
+ allow: parsed.origin === documentOrigin || allowedAssetOrigins.has(parsed.origin),
35
+ documentOrigin
36
+ };
37
+ }
38
+ var PAGE_LOCKDOWN = `
39
+ Object.defineProperties(globalThis, {
40
+ open: { value: undefined },
41
+ Worker: { value: undefined },
42
+ SharedWorker: { value: undefined },
43
+ RTCPeerConnection: { value: undefined },
44
+ webkitRTCPeerConnection: { value: undefined },
45
+ WebSocket: { value: undefined },
46
+ EventSource: { value: undefined }
47
+ });
48
+ `;
49
+ var COMPONENT_PAGE_LOCKDOWN = PAGE_LOCKDOWN;
50
+ async function installComponentRequestFirewall(browser, allowedAssetOrigins) {
51
+ let closing = false;
52
+ const denied = [];
53
+ const closeBrowser = browser.close.bind(browser);
54
+ browser.close = async (options) => {
55
+ closing = true;
56
+ return await closeBrowser(options);
57
+ };
58
+ const configureSession = async (client) => {
59
+ let documentOrigin = null;
60
+ client.on("Fetch.requestPaused", (event) => {
61
+ const decision = decideComponentRequest(
62
+ event.request.url,
63
+ event.resourceType,
64
+ documentOrigin,
65
+ allowedAssetOrigins
66
+ );
67
+ documentOrigin = decision.documentOrigin;
68
+ if (!decision.allow) denied.push(event.request.url);
69
+ const action = decision.allow ? client.send("Fetch.continueRequest", { requestId: event.requestId }) : client.send("Fetch.failRequest", { requestId: event.requestId, errorReason: "BlockedByClient" });
70
+ void action.catch(() => {
71
+ });
72
+ });
73
+ await client.send("Fetch.enable", { patterns: [{ urlPattern: "*" }] });
74
+ await client.send("Page.addScriptToEvaluateOnNewDocument", { source: PAGE_LOCKDOWN });
75
+ await client.send("Runtime.runIfWaitingForDebugger");
76
+ };
77
+ browser.connection.on("sessionattached", (client) => {
78
+ void configureSession(client).catch(() => {
79
+ if (!closing) void browser.close({ silent: true }).catch(() => {
80
+ });
81
+ });
82
+ });
83
+ await browser.connection.send("Target.setAutoAttach", {
84
+ autoAttach: true,
85
+ waitForDebuggerOnStart: true,
86
+ flatten: true,
87
+ filter: [{ type: "page", exclude: false }, { exclude: true }]
88
+ });
89
+ return { deniedRequests: () => denied };
90
+ }
91
+
92
+ // ../execution/component-runtime/src/render.ts
93
+ import { mkdirSync, realpathSync, writeFileSync } from "fs";
94
+ import { dirname, isAbsolute, join, relative, resolve, sep } from "path";
95
+ import { fileURLToPath } from "url";
96
+
97
+ // ../execution/component-runtime/src/determinism.ts
98
+ function createDeterministicRuntimeScope(target) {
99
+ const failure = (name) => {
100
+ throw new Error(`Ambient nondeterministic API is not allowed: ${name}. Use render.frame, render.fps, and render.seed.`);
101
+ };
102
+ const deniedFunction = (name) => function deniedAmbientApi() {
103
+ return failure(name);
104
+ };
105
+ const guardedFacade = (value, label, blockedKeys, denyCall = false) => {
106
+ const blocked = new Set(blockedKeys);
107
+ const deniedByKey = /* @__PURE__ */ new Map();
108
+ const denied = (key) => {
109
+ let fn = deniedByKey.get(key);
110
+ if (!fn) {
111
+ fn = deniedFunction(`${label}.${String(key)}`);
112
+ deniedByKey.set(key, fn);
113
+ }
114
+ return fn;
115
+ };
116
+ return new Proxy(value, {
117
+ get(original, key, receiver) {
118
+ return blocked.has(key) ? denied(key) : Reflect.get(original, key, receiver);
119
+ },
120
+ getOwnPropertyDescriptor(original, key) {
121
+ const descriptor = Reflect.getOwnPropertyDescriptor(original, key);
122
+ if (!blocked.has(key) || descriptor?.configurable === false) return descriptor;
123
+ return {
124
+ configurable: true,
125
+ enumerable: descriptor?.enumerable ?? false,
126
+ writable: false,
127
+ value: denied(key)
128
+ };
129
+ },
130
+ set(original, key, next, receiver) {
131
+ if (blocked.has(key)) return failure(`${label}.${String(key)} mutation`);
132
+ return Reflect.set(original, key, next, receiver);
133
+ },
134
+ defineProperty(original, key, descriptor) {
135
+ if (blocked.has(key)) return failure(`${label}.${String(key)} mutation`);
136
+ return Reflect.defineProperty(original, key, descriptor);
137
+ },
138
+ deleteProperty(original, key) {
139
+ if (blocked.has(key)) return failure(`${label}.${String(key)} mutation`);
140
+ return Reflect.deleteProperty(original, key);
141
+ },
142
+ apply(original, thisArg, args) {
143
+ if (denyCall) return failure(label);
144
+ return Reflect.apply(original, thisArg, args);
145
+ },
146
+ construct(original, args, newTarget) {
147
+ if (denyCall) return failure(label);
148
+ return Reflect.construct(original, args, newTarget);
149
+ }
150
+ });
151
+ };
152
+ const overrides = /* @__PURE__ */ new Map();
153
+ const math = target.Math;
154
+ if (math && (typeof math === "object" || typeof math === "function")) {
155
+ overrides.set("Math", guardedFacade(math, "Math", ["random"]));
156
+ }
157
+ const date = target.Date;
158
+ if (typeof date === "function") {
159
+ overrides.set("Date", guardedFacade(date, "Date", ["now"], true));
160
+ }
161
+ const performance = target.performance;
162
+ if (performance && (typeof performance === "object" || typeof performance === "function")) {
163
+ overrides.set("performance", guardedFacade(performance, "performance", ["now", "timeOrigin"]));
164
+ }
165
+ const crypto = target.crypto;
166
+ if (crypto && (typeof crypto === "object" || typeof crypto === "function")) {
167
+ overrides.set("crypto", guardedFacade(crypto, "crypto", ["getRandomValues", "randomUUID"]));
168
+ }
169
+ for (const name of ["requestAnimationFrame", "setTimeout", "setInterval", "Worker", "SharedWorker"]) {
170
+ if (name in target) overrides.set(name, deniedFunction(name));
171
+ }
172
+ let scope;
173
+ scope = new Proxy(target, {
174
+ get(original, key) {
175
+ if (key === "globalThis" || key === "window" || key === "self") return scope;
176
+ return overrides.has(key) ? overrides.get(key) : Reflect.get(original, key, original);
177
+ },
178
+ getOwnPropertyDescriptor(original, key) {
179
+ if (key === "globalThis" || key === "window" || key === "self" || overrides.has(key)) {
180
+ const descriptor = Reflect.getOwnPropertyDescriptor(original, key);
181
+ if (descriptor?.configurable === false) return descriptor;
182
+ return {
183
+ configurable: true,
184
+ enumerable: descriptor?.enumerable ?? true,
185
+ writable: false,
186
+ value: key === "globalThis" || key === "window" || key === "self" ? scope : overrides.get(key)
187
+ };
188
+ }
189
+ return Reflect.getOwnPropertyDescriptor(original, key);
190
+ },
191
+ set(original, key, value, receiver) {
192
+ if (overrides.has(key) || key === "globalThis" || key === "window" || key === "self") {
193
+ return failure(`${String(key)} mutation`);
194
+ }
195
+ return Reflect.set(original, key, value, receiver);
196
+ },
197
+ defineProperty(original, key, descriptor) {
198
+ if (overrides.has(key) || key === "globalThis" || key === "window" || key === "self") {
199
+ return failure(`${String(key)} mutation`);
200
+ }
201
+ return Reflect.defineProperty(original, key, descriptor);
202
+ },
203
+ deleteProperty(original, key) {
204
+ if (overrides.has(key) || key === "globalThis" || key === "window" || key === "self") {
205
+ return failure(`${String(key)} mutation`);
206
+ }
207
+ return Reflect.deleteProperty(original, key);
208
+ }
209
+ });
210
+ return scope;
211
+ }
212
+ function deterministicRuntimeScopeSource() {
213
+ return createDeterministicRuntimeScope.toString();
214
+ }
215
+
216
+ // ../execution/component-runtime/src/render.ts
217
+ var LOCAL_ROOT_FILENAME = "Root.local.tsx";
218
+ var LOCAL_ENTRY_FILENAME = "entry.local.tsx";
219
+ var LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
220
+ var GRAPHICS_ATTESTATION_PREFIX = "__cueframe_graphics_v2__:";
221
+ var BROWSER_RUNTIME_ERROR_PREFIX = "__cueframe_component_error_v2__:";
222
+ function componentRuntimeError(error, fallbackCode, retryable = false) {
223
+ if (error instanceof ComponentRuntimeError) return error;
224
+ const message = error instanceof Error ? error.message : String(error);
225
+ const marker = message.lastIndexOf(BROWSER_RUNTIME_ERROR_PREFIX);
226
+ if (marker >= 0) {
227
+ const payload = message.slice(marker + BROWSER_RUNTIME_ERROR_PREFIX.length);
228
+ const separator = payload.indexOf(":");
229
+ const code = ComponentRuntimeErrorCode.safeParse(separator >= 0 ? payload.slice(0, separator) : payload);
230
+ if (code.success) {
231
+ return new ComponentRuntimeError(
232
+ code.data,
233
+ separator >= 0 ? payload.slice(separator + 1) : message,
234
+ { retryable: code.data === "component_device_lost" || code.data === "component_deadline_exceeded", cause: error }
235
+ );
236
+ }
237
+ }
238
+ return new ComponentRuntimeError(fallbackCode, message, { retryable, cause: error });
239
+ }
240
+ function parseGraphicsAttestationLog(text) {
241
+ if (!text.startsWith(GRAPHICS_ATTESTATION_PREFIX)) return null;
242
+ try {
243
+ const parsed = JSON.parse(text.slice(GRAPHICS_ATTESTATION_PREFIX.length));
244
+ if (parsed.api !== "canvas2d" && parsed.api !== "webgpu" || parsed.acceleration !== "hardware" && parsed.acceleration !== "software" || parsed.deviceLost !== false) return null;
245
+ return parsed;
246
+ } catch {
247
+ return null;
248
+ }
249
+ }
250
+ function graphicsCollector(required) {
251
+ let attestation = null;
252
+ return {
253
+ onBrowserLog(log) {
254
+ const parsed = parseGraphicsAttestationLog(log.text);
255
+ if (!parsed) return;
256
+ if (parsed.api !== required.api) {
257
+ throw new ComponentRuntimeError(
258
+ "component_graphics_mismatch",
259
+ `Renderer reported ${parsed.api} for a ${required.api} component.`
260
+ );
261
+ }
262
+ if (attestation && JSON.stringify(attestation) !== JSON.stringify(parsed)) {
263
+ throw new ComponentRuntimeError(
264
+ "component_graphics_mismatch",
265
+ "Renderer workers reported inconsistent graphics adapters."
266
+ );
267
+ }
268
+ attestation = parsed;
269
+ },
270
+ receipt() {
271
+ if (!attestation) {
272
+ throw new ComponentRuntimeError(
273
+ "component_graphics_unavailable",
274
+ `Renderer produced no trusted ${required.api} attestation.`
275
+ );
276
+ }
277
+ return attestation;
278
+ }
279
+ };
280
+ }
281
+ function toImportSpecifier(fromDir, toFile) {
282
+ const rel = relative(fromDir, toFile).split("\\").join("/");
283
+ return rel.startsWith(".") ? rel : `./${rel}`;
284
+ }
285
+ function generateLocalRoot(ws, opts) {
286
+ const dir = cacheDir(ws);
287
+ mkdirSync(dir, { recursive: true });
288
+ const componentFile = join(componentDir(ws, opts.id), "index");
289
+ const componentSpecifier = toImportSpecifier(dir, componentFile);
290
+ const root = `// GENERATED by @cueframe/component-runtime \u2014 DO NOT EDIT.
291
+ import React from 'react';
292
+ import { useEffect, useState } from 'react';
293
+ import { Composition, cancelRender, continueRender, delayRender, getInputProps, useCurrentFrame } from 'remotion';
294
+
295
+ const importAuthoredComponent = async () => {
296
+ return import(${JSON.stringify(componentSpecifier)});
297
+ };
298
+
299
+ const GuardedAuthoredComponent: React.FC<{
300
+ Component: React.ComponentType<any>;
301
+ componentProps: Record<string, unknown>;
302
+ }> = ({Component, componentProps}) => {
303
+ return <Component {...componentProps} />;
304
+ };
305
+
306
+ const Resolved: React.FC = () => {
307
+ const input = getInputProps() as {
308
+ params: Record<string, unknown>;
309
+ assets: Record<string, unknown>;
310
+ seed: string;
311
+ graphics: {
312
+ api: 'canvas2d' | 'webgpu';
313
+ required: true;
314
+ accelerationPreference: 'hardware-preferred' | 'software-allowed';
315
+ };
316
+ };
317
+ const frame = useCurrentFrame();
318
+ const [Component, setComponent] = useState<React.ComponentType<any> | null>(null);
319
+ const [waitHandle] = useState(() => input.graphics.api === 'webgpu'
320
+ ? delayRender('CueFrame WebGPU admission')
321
+ : null);
322
+
323
+ useEffect(() => {
324
+ let active = true;
325
+ let admissionTimer: ReturnType<typeof setTimeout> | undefined;
326
+ const canvasPrototype = HTMLCanvasElement.prototype as unknown as {
327
+ getContext: (kind: string, ...args: unknown[]) => unknown;
328
+ };
329
+ const originalGetContext = canvasPrototype.getContext;
330
+
331
+ void (async () => {
332
+ try {
333
+ if (input.graphics.api === 'canvas2d') {
334
+ const loaded = await importAuthoredComponent();
335
+ if (!active) return;
336
+ setComponent(() => loaded.default);
337
+ console.info(${JSON.stringify(GRAPHICS_ATTESTATION_PREFIX)} + JSON.stringify({
338
+ api: 'canvas2d', acceleration: 'software', deviceLost: false,
339
+ }));
340
+ return;
341
+ }
342
+
343
+ const gpu = (navigator as unknown as { gpu?: { requestAdapter: (options?: unknown) => Promise<unknown> } }).gpu;
344
+ if (!gpu) throw new Error(${JSON.stringify(BROWSER_RUNTIME_ERROR_PREFIX)} + 'component_graphics_unavailable:The staged browser does not expose WebGPU.');
345
+ let adapterInfo: { description?: string; architecture?: string; device?: string; vendor?: string; isFallbackAdapter?: boolean } = {};
346
+ const gpuPrototype = Object.getPrototypeOf(gpu) as { requestAdapter: (options?: unknown) => Promise<any> };
347
+ const originalRequestAdapter = gpuPrototype.requestAdapter;
348
+ gpuPrototype.requestAdapter = async function (options?: unknown) {
349
+ const adapter = await originalRequestAdapter.call(this, options);
350
+ if (adapter?.info) adapterInfo = adapter.info;
351
+ return adapter;
352
+ };
353
+ canvasPrototype.getContext = function (kind: string, ...args: unknown[]) {
354
+ if (kind !== 'webgpu') {
355
+ throw new Error('A WebGPU-required component may only create a WebGPU canvas context.');
356
+ }
357
+ const context = originalGetContext.call(this, kind, ...args) as null | { configure: (configuration: any) => void };
358
+ if (!context) return context;
359
+ const contextPrototype = Object.getPrototypeOf(context) as { configure: (configuration: any) => void; __cueframePatched?: boolean };
360
+ if (!contextPrototype.__cueframePatched) {
361
+ const originalConfigure = contextPrototype.configure;
362
+ Object.defineProperty(contextPrototype, '__cueframePatched', { value: true });
363
+ contextPrototype.configure = function (configuration: any) {
364
+ const result = originalConfigure.call(this, configuration);
365
+ if (active) {
366
+ const adapterName = [adapterInfo.vendor, adapterInfo.architecture, adapterInfo.device, adapterInfo.description]
367
+ .filter(Boolean)
368
+ .join(' ');
369
+ const softwarePattern = /swiftshader|software|fallback/i;
370
+ const acceleration = adapterInfo.isFallbackAdapter === true || softwarePattern.test(adapterName)
371
+ ? 'software'
372
+ : 'hardware';
373
+ console.info(${JSON.stringify(GRAPHICS_ATTESTATION_PREFIX)} + JSON.stringify({
374
+ api: 'webgpu', acceleration, adapterName: adapterName || undefined, deviceLost: false,
375
+ }));
376
+ const device = configuration?.device as { lost?: Promise<unknown> } | undefined;
377
+ void device?.lost?.then(() => {
378
+ if (active) cancelRender(new Error(${JSON.stringify(BROWSER_RUNTIME_ERROR_PREFIX)} + 'component_device_lost:WebGPU device was lost during component rendering.'));
379
+ });
380
+ active = false;
381
+ if (admissionTimer) clearTimeout(admissionTimer);
382
+ continueRender(waitHandle as number);
383
+ }
384
+ return result;
385
+ };
386
+ }
387
+ return context;
388
+ };
389
+ Object.defineProperty(globalThis, 'OffscreenCanvas', { value: undefined, configurable: true });
390
+ const loaded = await importAuthoredComponent();
391
+ if (!active) return;
392
+ setComponent(() => loaded.default);
393
+ admissionTimer = setTimeout(() => {
394
+ if (active) cancelRender(new Error(${JSON.stringify(BROWSER_RUNTIME_ERROR_PREFIX)} + 'component_graphics_mismatch:The component did not configure a WebGPU canvas surface.'));
395
+ }, 10_000);
396
+ } catch (error) {
397
+ cancelRender(error instanceof Error ? error : new Error(String(error)));
398
+ }
399
+ })();
400
+ return () => {
401
+ active = false;
402
+ if (admissionTimer) clearTimeout(admissionTimer);
403
+ canvasPrototype.getContext = originalGetContext;
404
+ };
405
+ }, []);
406
+
407
+ if (!Component) return null;
408
+ return <GuardedAuthoredComponent
409
+ Component={Component}
410
+ componentProps={{
411
+ durationInFrames: ${opts.durationInFrames},
412
+ params: input.params,
413
+ assets: input.assets,
414
+ render: {
415
+ frame,
416
+ fps: ${opts.fps},
417
+ width: ${opts.width},
418
+ height: ${opts.height},
419
+ seed: input.seed,
420
+ colorSpace: 'srgb',
421
+ },
422
+ }}
423
+ />;
424
+ };
425
+
426
+ export const RemotionRoot: React.FC = () => (
427
+ <Composition
428
+ id=${JSON.stringify(LOCAL_COMPOSITION_ID)}
429
+ component={Resolved}
430
+ durationInFrames={${opts.durationInFrames}}
431
+ fps={${opts.fps}}
432
+ width={${opts.width}}
433
+ height={${opts.height}}
434
+ defaultProps={{}}
435
+ />
436
+ );
437
+ `;
438
+ writeFileSync(join(dir, LOCAL_ROOT_FILENAME), root);
439
+ const entry = `// GENERATED by @cueframe/component-runtime \u2014 DO NOT EDIT.
440
+ import { registerRoot } from 'remotion';
441
+ import { RemotionRoot } from './${LOCAL_ROOT_FILENAME}';
442
+ registerRoot(RemotionRoot);
443
+ `;
444
+ const entryPath = join(dir, LOCAL_ENTRY_FILENAME);
445
+ writeFileSync(entryPath, entry);
446
+ return entryPath;
447
+ }
448
+ var DeterministicAuthoredModulePlugin = class {
449
+ #authoredComponentRoot;
450
+ #scopeSource;
451
+ constructor(authoredComponentRoot) {
452
+ this.#authoredComponentRoot = realpathSync(authoredComponentRoot);
453
+ this.#scopeSource = deterministicRuntimeScopeSource();
454
+ }
455
+ apply(compiler) {
456
+ const pluginName = "CueFrameDeterministicAuthoredModulePlugin";
457
+ compiler.hooks.compilation.tap(pluginName, (compilation) => {
458
+ const hooks = compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);
459
+ const { ConcatSource } = compiler.webpack.sources;
460
+ hooks.renderModuleContent.tap(
461
+ pluginName,
462
+ (source, module) => {
463
+ if (!module.resource) return source;
464
+ const resource = realpathSync(module.resource.split("?")[0]);
465
+ const relativeResource = relative(this.#authoredComponentRoot, resource);
466
+ const belongsToAuthoredComponent = relativeResource === "" || relativeResource !== ".." && !relativeResource.startsWith(`..${sep}`) && !isAbsolute(relativeResource);
467
+ if (!belongsToAuthoredComponent) return source;
468
+ return new ConcatSource(
469
+ "const __cueframeHostGlobal = globalThis;\n{\nconst {globalThis, window, self, Math, Date, performance, crypto, requestAnimationFrame, setTimeout, setInterval, Worker, SharedWorker} = (",
470
+ this.#scopeSource,
471
+ ")(__cueframeHostGlobal);\n{\n",
472
+ source,
473
+ "\n}\n}\n"
474
+ );
475
+ }
476
+ );
477
+ });
478
+ }
479
+ };
480
+ function buildLocalWebpackOverride(renderEntryRoot, authoredComponentRoot) {
481
+ const animateEntry = join(resolve(renderEntryRoot, ".."), "animate", "src", "index.ts");
482
+ return (config) => ({
483
+ ...config,
484
+ resolve: {
485
+ ...config.resolve,
486
+ modules: [
487
+ ...config.resolve?.modules ?? ["node_modules"],
488
+ join(renderEntryRoot, "node_modules"),
489
+ join(resolve(renderEntryRoot, ".."), "animate", "node_modules"),
490
+ join(resolve(renderEntryRoot, "..", ".."), "node_modules"),
491
+ join(resolve(renderEntryRoot, "..", "..", ".."), "node_modules")
492
+ ],
493
+ alias: {
494
+ "@cueframe/animate$": animateEntry
495
+ }
496
+ },
497
+ plugins: [
498
+ ...config.plugins ?? [],
499
+ new DeterministicAuthoredModulePlugin(authoredComponentRoot)
500
+ ]
501
+ });
502
+ }
503
+ async function importFromRenderEntry(renderEntryRoot, spec) {
504
+ const { createRequire } = await import("module");
505
+ const { pathToFileURL } = await import("url");
506
+ const requireFromRenderEntry = createRequire(join(renderEntryRoot, "package.json"));
507
+ return await import(pathToFileURL(requireFromRenderEntry.resolve(spec)).href);
508
+ }
509
+ function resolveRenderEntryRoot(override) {
510
+ if (override) return override;
511
+ if (process.env.RENDER_ENTRY_ROOT) return process.env.RENDER_ENTRY_ROOT;
512
+ const here = dirname(fileURLToPath(import.meta.url));
513
+ return join(resolve(here, "..", ".."), "render-entry");
514
+ }
515
+ async function prepareLocalBundle(opts) {
516
+ const renderEntryRoot = resolveRenderEntryRoot(opts.renderEntryRoot);
517
+ const browserExecutable = process.env.REMOTION_CHROME_EXECUTABLE || void 0;
518
+ const entryPoint = generateLocalRoot(opts.ws, {
519
+ id: opts.id,
520
+ width: opts.width,
521
+ height: opts.height,
522
+ fps: opts.fps,
523
+ durationInFrames: opts.durationInFrames
524
+ });
525
+ const { bundle } = await importFromRenderEntry(
526
+ renderEntryRoot,
527
+ "@remotion/bundler"
528
+ );
529
+ let serveUrl;
530
+ try {
531
+ serveUrl = await bundle({
532
+ entryPoint,
533
+ webpackOverride: buildLocalWebpackOverride(renderEntryRoot, componentDir(opts.ws, opts.id))
534
+ });
535
+ } catch (error) {
536
+ throw componentRuntimeError(error, "component_does_not_compile");
537
+ }
538
+ return {
539
+ serveUrl,
540
+ browserExecutable,
541
+ inputProps: {
542
+ params: opts.params,
543
+ assets: opts.assets ?? {},
544
+ seed: opts.seed ?? "cueframe",
545
+ graphics: opts.graphics ?? {
546
+ api: "canvas2d",
547
+ required: true,
548
+ accelerationPreference: "software-allowed"
549
+ }
550
+ },
551
+ renderEntryRoot
552
+ };
553
+ }
554
+ async function renderComponentStill(opts) {
555
+ const width = opts.width ?? 1920;
556
+ const height = opts.height ?? 1080;
557
+ const fps = opts.fps ?? 30;
558
+ const durationInFrames = opts.durationInFrames ?? 1;
559
+ const frame = opts.frame ?? 0;
560
+ const { serveUrl, browserExecutable, inputProps, renderEntryRoot } = await prepareLocalBundle({
561
+ ws: opts.ws,
562
+ id: opts.id,
563
+ width,
564
+ height,
565
+ fps,
566
+ durationInFrames,
567
+ params: opts.params,
568
+ assets: opts.assets,
569
+ seed: opts.seed,
570
+ graphics: opts.graphics,
571
+ renderEntryRoot: opts.renderEntryRoot
572
+ });
573
+ const { openBrowser, selectComposition, renderStill } = await importFromRenderEntry(
574
+ renderEntryRoot,
575
+ "@remotion/renderer"
576
+ );
577
+ const requiredGraphics = opts.graphics ?? {
578
+ api: "canvas2d",
579
+ required: true,
580
+ accelerationPreference: "software-allowed"
581
+ };
582
+ const collector = graphicsCollector(requiredGraphics);
583
+ let browser;
584
+ try {
585
+ browser = await openBrowser("chrome", {
586
+ browserExecutable,
587
+ chromiumOptions: COMPONENT_CHROMIUM_OPTIONS
588
+ });
589
+ } catch (error) {
590
+ throw componentRuntimeError(error, "component_resource_exhausted", true);
591
+ }
592
+ const firewall = await installComponentRequestFirewall(browser, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set());
593
+ try {
594
+ const composition = await selectComposition({
595
+ serveUrl,
596
+ id: LOCAL_COMPOSITION_ID,
597
+ inputProps,
598
+ puppeteerInstance: browser,
599
+ onBrowserLog: collector.onBrowserLog
600
+ });
601
+ const pngPath = join(cacheDir(opts.ws), `still-${opts.id}.png`);
602
+ await renderStill({
603
+ composition,
604
+ serveUrl,
605
+ inputProps,
606
+ output: pngPath,
607
+ frame,
608
+ puppeteerInstance: browser,
609
+ timeoutInMilliseconds: 12e4,
610
+ onBrowserLog: collector.onBrowserLog
611
+ });
612
+ const denied = firewall.deniedRequests();
613
+ if (denied.length > 0) {
614
+ throw new ComponentRuntimeError("component_network_denied", `Component attempted ${denied.length} denied network request(s).`);
615
+ }
616
+ return { pngPath, actualGraphics: collector.receipt() };
617
+ } catch (error) {
618
+ throw componentRuntimeError(error, "component_runtime_error");
619
+ } finally {
620
+ await browser.close({ silent: true });
621
+ }
622
+ }
623
+ function alphaRenderConfig(codec) {
624
+ return codec === "prores" ? { codec: "prores", proResProfile: "4444", pixelFormat: "yuva444p10le", imageFormat: "png", muted: true } : { codec: "vp9", pixelFormat: "yuva420p", imageFormat: "png", muted: true };
625
+ }
626
+ function alphaExt(codec) {
627
+ return codec === "prores" ? "mov" : "webm";
628
+ }
629
+ async function renderComponentAlpha(opts) {
630
+ const width = opts.width ?? 1920;
631
+ const height = opts.height ?? 1080;
632
+ const fps = opts.fps ?? 30;
633
+ const durationInFrames = opts.durationInFrames ?? fps * 3;
634
+ const codec = opts.codec ?? "prores";
635
+ const { serveUrl, browserExecutable, inputProps, renderEntryRoot } = await prepareLocalBundle({
636
+ ws: opts.ws,
637
+ id: opts.id,
638
+ width,
639
+ height,
640
+ fps,
641
+ durationInFrames,
642
+ params: opts.params,
643
+ assets: opts.assets,
644
+ seed: opts.seed,
645
+ graphics: opts.graphics,
646
+ renderEntryRoot: opts.renderEntryRoot
647
+ });
648
+ const { openBrowser, selectComposition, renderMedia } = await importFromRenderEntry(
649
+ renderEntryRoot,
650
+ "@remotion/renderer"
651
+ );
652
+ const requiredGraphics = opts.graphics ?? {
653
+ api: "canvas2d",
654
+ required: true,
655
+ accelerationPreference: "software-allowed"
656
+ };
657
+ const collector = graphicsCollector(requiredGraphics);
658
+ let browser;
659
+ try {
660
+ browser = await openBrowser("chrome", {
661
+ browserExecutable,
662
+ chromiumOptions: COMPONENT_CHROMIUM_OPTIONS
663
+ });
664
+ } catch (error) {
665
+ throw componentRuntimeError(error, "component_resource_exhausted", true);
666
+ }
667
+ const firewall = await installComponentRequestFirewall(browser, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set());
668
+ try {
669
+ const composition = await selectComposition({
670
+ serveUrl,
671
+ id: LOCAL_COMPOSITION_ID,
672
+ inputProps,
673
+ puppeteerInstance: browser,
674
+ onBrowserLog: collector.onBrowserLog
675
+ });
676
+ const rangeSuffix = opts.frameRange ? `-${opts.frameRange[0]}-${opts.frameRange[1]}` : "";
677
+ const videoPath = join(cacheDir(opts.ws), `alpha-${opts.id}${rangeSuffix}.${alphaExt(codec)}`);
678
+ await renderMedia({
679
+ composition,
680
+ serveUrl,
681
+ inputProps,
682
+ puppeteerInstance: browser,
683
+ outputLocation: videoPath,
684
+ ...alphaRenderConfig(codec),
685
+ onBrowserLog: collector.onBrowserLog,
686
+ concurrency: 1,
687
+ ...opts.frameRange ? { frameRange: opts.frameRange } : {}
688
+ });
689
+ const denied = firewall.deniedRequests();
690
+ if (denied.length > 0) {
691
+ throw new ComponentRuntimeError("component_network_denied", `Component attempted ${denied.length} denied network request(s).`);
692
+ }
693
+ return { videoPath, actualGraphics: collector.receipt() };
694
+ } catch (error) {
695
+ throw componentRuntimeError(error, "component_runtime_error");
696
+ } finally {
697
+ await browser.close({ silent: true });
698
+ }
699
+ }
700
+
701
+ export {
702
+ decideComponentRequest,
703
+ COMPONENT_PAGE_LOCKDOWN,
704
+ installComponentRequestFirewall,
705
+ LOCAL_ROOT_FILENAME,
706
+ LOCAL_ENTRY_FILENAME,
707
+ LOCAL_COMPOSITION_ID,
708
+ GRAPHICS_ATTESTATION_PREFIX,
709
+ parseGraphicsAttestationLog,
710
+ generateLocalRoot,
711
+ buildLocalWebpackOverride,
712
+ importFromRenderEntry,
713
+ resolveRenderEntryRoot,
714
+ renderComponentStill,
715
+ alphaRenderConfig,
716
+ alphaExt,
717
+ renderComponentAlpha
718
+ };