@cueframe/kernel 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_members/account-model/validators/contextFile.d.ts +3 -21
- package/dist/_members/account-model/validators/conversation.d.ts +12 -42
- package/dist/_members/account-model/validators/dashboardInsight.d.ts +3 -17
- package/dist/_members/account-model/validators/sessionToken.d.ts +10 -36
- package/dist/_members/account-model/validators/uploadToken.d.ts +11 -21
- package/dist/_members/account-model/validators/userSettings.d.ts +3 -13
- package/dist/_members/account-model/validators/workingComposition.d.ts +3 -19
- package/dist/_members/authoring/capabilities.d.ts +0 -9
- package/dist/_members/authoring/index.d.ts +1 -1
- package/dist/_members/authoring/models/defaultModels.d.ts +12 -0
- package/dist/_members/authoring/models/modelFactory.d.ts +1 -0
- package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +1 -7
- package/dist/_members/authoring/types.d.ts +0 -1
- package/dist/_members/component-runtime/assetServer.d.ts +18 -0
- package/dist/_members/component-runtime/assetServer.d.ts.map +1 -0
- package/dist/_members/component-runtime/bake.d.ts +12 -0
- package/dist/_members/component-runtime/bake.d.ts.map +1 -0
- package/dist/_members/component-runtime/browserFirewall.d.ts +21 -0
- package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -0
- package/dist/_members/component-runtime/browserIdentity.d.ts +14 -0
- package/dist/_members/component-runtime/browserIdentity.d.ts.map +1 -0
- package/dist/_members/component-runtime/browserOptions.d.ts +8 -0
- package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -0
- package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
- package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -0
- package/dist/_members/component-runtime/contracts.d.ts +443 -0
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -0
- package/dist/_members/component-runtime/determinism.d.ts +18 -0
- package/dist/_members/component-runtime/determinism.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +9 -0
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +1 -0
- package/dist/_members/component-runtime/identity.d.ts +16 -0
- package/dist/_members/component-runtime/identity.d.ts.map +1 -0
- package/dist/_members/component-runtime/importPolicy.d.ts +3 -0
- package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -0
- package/dist/_members/component-runtime/index.d.ts +11 -0
- package/dist/_members/component-runtime/index.d.ts.map +1 -0
- package/dist/_members/component-runtime/outputVerifier.d.ts +29 -0
- package/dist/_members/component-runtime/outputVerifier.d.ts.map +1 -0
- package/dist/_members/{render-harness/localRender.d.ts → component-runtime/render.d.ts} +22 -15
- package/dist/_members/component-runtime/render.d.ts.map +1 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts +10 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -0
- package/dist/_members/compose/index.d.ts +0 -5
- package/dist/_members/composition/graphics-plan/schemas.d.ts +299 -1309
- package/dist/_members/composition/primitive-catalog/index.d.ts +2 -2
- package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -14
- package/dist/_members/composition/reframe/index.d.ts +56 -528
- package/dist/_members/composition/validators/brandKit.d.ts +247 -1208
- package/dist/_members/composition/validators/composePlan.d.ts +106 -818
- package/dist/_members/composition/validators/composition.d.ts +1338 -5856
- package/dist/_members/composition/validators/font.d.ts +35 -91
- package/dist/_members/composition/validators/project.d.ts +15 -46
- package/dist/_members/composition/validators/registry.d.ts +53 -135
- package/dist/_members/composition/validators/render.d.ts +803 -7273
- package/dist/_members/composition/validators/session.d.ts +38 -76
- package/dist/_members/composition/validators/webhook.d.ts +23 -50
- package/dist/_members/composition-ops/alphaLayers.d.ts +3 -2
- package/dist/_members/composition-ops/index.d.ts +409 -4309
- package/dist/_members/core/render/compositionAudioAndDepth.d.ts +6 -0
- package/dist/_members/core/render/compositionRender.d.ts +3 -4
- package/dist/_members/core/render/compositionValidation.d.ts +4 -0
- package/dist/_members/core/render/index.d.ts +2 -2
- package/dist/_members/core/render/types.d.ts +16 -8
- package/dist/_members/director/ai-sdk/messages.d.ts +67 -217
- package/dist/_members/director/domain/chat.d.ts +70 -293
- package/dist/_members/director/testing/contract.d.ts +11 -11
- package/dist/_members/errors/registry.d.ts +189 -3
- package/dist/_members/foundation/primitives/index.d.ts +1 -1
- package/dist/_members/mcp/adapter.d.ts +3 -0
- package/dist/_members/mcp/burnedNames.d.ts +0 -1
- package/dist/_members/mcp/core.d.ts +6 -3
- package/dist/_members/mcp/curation.d.ts +3 -38
- package/dist/_members/mcp/curationTypes.d.ts +34 -0
- package/dist/_members/mcp/generated/harness.d.ts +1 -1
- package/dist/_members/mcp/generated/operations.d.ts +10 -0
- package/dist/_members/mcp/main.d.ts +1 -0
- package/dist/_members/mcp/mediaContextFormat.d.ts +4 -0
- package/dist/_members/mcp/prompts.d.ts +1 -1
- package/dist/_members/mcp/query.d.ts +4 -0
- package/dist/_members/mcp/resources.d.ts +1 -1
- package/dist/_members/mcp/server.d.ts +1 -2
- package/dist/_members/mcp/wireSchema.d.ts +13 -0
- package/dist/_members/media-model/api.d.ts +114 -662
- package/dist/_members/media-model/generation.d.ts +141 -228
- package/dist/_members/plane/contract.d.ts +16 -19
- package/dist/_members/primitives/backgrounds/animated-bar-chart/config.d.ts +3 -27
- package/dist/_members/primitives/backgrounds/animated-line-chart/config.d.ts +2 -26
- package/dist/_members/primitives/backgrounds/dither-gradient-bg/config.d.ts +1 -17
- package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +6 -14
- package/dist/_members/primitives/backgrounds/ecosystem-constellation/config.d.ts +1 -11
- package/dist/_members/primitives/backgrounds/infinite-marquee/config.d.ts +1 -21
- package/dist/_members/primitives/backgrounds/mesh-gradient-bg/config.d.ts +2 -12
- package/dist/_members/primitives/backgrounds/perspective-marquee/config.d.ts +2 -26
- package/dist/_members/primitives/backgrounds/silk-flow-bg/config.d.ts +2 -22
- package/dist/_members/primitives/backgrounds/vector-field/config.d.ts +1 -17
- package/dist/_members/primitives/backgrounds/volumetric-rays/config.d.ts +1 -19
- package/dist/_members/primitives/effects/blur/config.d.ts +5 -14
- package/dist/_members/primitives/effects/color-grade/config.d.ts +10 -18
- package/dist/_members/primitives/effects/grain/config.d.ts +9 -12
- package/dist/_members/primitives/effects/parallax/config.d.ts +8 -12
- package/dist/_members/primitives/effects/particles/config.d.ts +9 -20
- package/dist/_members/primitives/effects/pulsing-indicator/config.d.ts +1 -13
- package/dist/_members/primitives/effects/spotlight-card/config.d.ts +1 -25
- package/dist/_members/primitives/effects/spring-pop-in/config.d.ts +1 -15
- package/dist/_members/primitives/effects/success-confetti/config.d.ts +2 -26
- package/dist/_members/primitives/effects/vignette/config.d.ts +5 -12
- package/dist/_members/primitives/hero-text/config.d.ts +9 -24
- package/dist/_members/primitives/layouts/chat-to-preview-layout/config.d.ts +1 -11
- package/dist/_members/primitives/layouts/infinite-bento-pan/config.d.ts +1 -9
- package/dist/_members/primitives/layouts/letterbox/config.d.ts +1 -9
- package/dist/_members/primitives/layouts/photo-grid/config.d.ts +2 -12
- package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +7 -12
- package/dist/_members/primitives/layouts/split-screen/config.d.ts +1 -7
- package/dist/_members/primitives/layouts/staggered-bento-grid/config.d.ts +3 -51
- package/dist/_members/primitives/lib/schema.d.ts +1 -1
- package/dist/_members/primitives/scenes/changelog-bite/config.d.ts +7 -24
- package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +5 -14
- package/dist/_members/primitives/scenes/landing-code-showcase/config.d.ts +1 -7
- package/dist/_members/primitives/scenes/live-code-compilation/config.d.ts +1 -7
- package/dist/_members/primitives/scenes/pricing-tier-focus/config.d.ts +2 -12
- package/dist/_members/primitives/scenes/product-launch-trailer/config.d.ts +1 -19
- package/dist/_members/primitives/scenes/terminal-to-browser-deploy/config.d.ts +1 -11
- package/dist/_members/primitives/text/blur-reveal/config.d.ts +1 -17
- package/dist/_members/primitives/text/cinematic-title/config.d.ts +13 -73
- package/dist/_members/primitives/text/inline-highlight/config.d.ts +1 -21
- package/dist/_members/primitives/text/karaoke/config.d.ts +10 -93
- package/dist/_members/primitives/text/kinetic-type/config.d.ts +14 -49
- package/dist/_members/primitives/text/lower-third/config.d.ts +8 -70
- package/dist/_members/primitives/text/marker-highlight/config.d.ts +1 -23
- package/dist/_members/primitives/text/masked-slide-reveal/config.d.ts +1 -17
- package/dist/_members/primitives/text/matrix-decode/config.d.ts +1 -19
- package/dist/_members/primitives/text/quote-card/config.d.ts +1 -11
- package/dist/_members/primitives/text/rgb-glitch-text/config.d.ts +1 -23
- package/dist/_members/primitives/text/shimmer-sweep/config.d.ts +1 -17
- package/dist/_members/primitives/text/slot-machine-roll/config.d.ts +1 -17
- package/dist/_members/primitives/text/staggered-fade-up/config.d.ts +2 -24
- package/dist/_members/primitives/text/stat-counter/config.d.ts +6 -20
- package/dist/_members/primitives/text/strikethrough-replace/config.d.ts +1 -19
- package/dist/_members/primitives/text/text-effect/config.d.ts +10 -15
- package/dist/_members/primitives/text/text-fade-replace/config.d.ts +1 -17
- package/dist/_members/primitives/text/token-stream/config.d.ts +1 -11
- package/dist/_members/primitives/text/tracking-in/config.d.ts +1 -19
- package/dist/_members/primitives/text/typewriter/config.d.ts +1 -21
- package/dist/_members/primitives/transitions/chromatic-aberration-wipe/config.d.ts +5 -8
- package/dist/_members/primitives/transitions/code-diff-wipe/config.d.ts +1 -21
- package/dist/_members/primitives/transitions/directional-wipe/config.d.ts +7 -6
- package/dist/_members/primitives/transitions/frosted-glass-wipe/config.d.ts +1 -5
- package/dist/_members/primitives/transitions/glitch-cut/config.d.ts +1 -7
- package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +6 -12
- package/dist/_members/primitives/transitions/ink-wipe/config.d.ts +7 -8
- package/dist/_members/primitives/transitions/kinetic-type-mask/config.d.ts +1 -7
- package/dist/_members/primitives/transitions/light-leak/config.d.ts +1 -7
- package/dist/_members/primitives/transitions/luma-matte/config.d.ts +6 -6
- package/dist/_members/primitives/transitions/morph/config.d.ts +5 -6
- package/dist/_members/primitives/transitions/spatial-push/config.d.ts +7 -6
- package/dist/_members/primitives/transitions/swipe-transition-wipe/config.d.ts +5 -10
- package/dist/_members/primitives/transitions/zoom-through/config.d.ts +2 -30
- package/dist/_members/primitives/transitions/zoom-through-transition/config.d.ts +1 -13
- package/dist/_members/primitives/ui-blocks/ai-generate-overlay/config.d.ts +1 -29
- package/dist/_members/primitives/ui-blocks/ai-generation-canvas/config.d.ts +1 -11
- package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +8 -16
- package/dist/_members/primitives/ui-blocks/before-after-slider/config.d.ts +1 -11
- package/dist/_members/primitives/ui-blocks/benchmark-bars/config.d.ts +3 -73
- package/dist/_members/primitives/ui-blocks/bounding-box-selector/config.d.ts +1 -15
- package/dist/_members/primitives/ui-blocks/browser-flow/config.d.ts +1 -7
- package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/config.d.ts +1 -21
- package/dist/_members/primitives/ui-blocks/chat-exchange/config.d.ts +1 -15
- package/dist/_members/primitives/ui-blocks/code-accordion/config.d.ts +2 -26
- package/dist/_members/primitives/ui-blocks/context-meter/config.d.ts +1 -13
- package/dist/_members/primitives/ui-blocks/cursor-flow/config.d.ts +2 -66
- package/dist/_members/primitives/ui-blocks/dashboard-populate/config.d.ts +1 -9
- package/dist/_members/primitives/ui-blocks/data-flow-pipes/config.d.ts +3 -97
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +5 -14
- package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/config.d.ts +1 -13
- package/dist/_members/primitives/ui-blocks/eval-scorecard/config.d.ts +2 -36
- package/dist/_members/primitives/ui-blocks/glass-code-block/config.d.ts +1 -23
- package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/config.d.ts +3 -113
- package/dist/_members/primitives/ui-blocks/metric-gauge/config.d.ts +2 -34
- package/dist/_members/primitives/ui-blocks/morphing-modal/config.d.ts +3 -113
- package/dist/_members/primitives/ui-blocks/pipeline-journey/config.d.ts +1 -9
- package/dist/_members/primitives/ui-blocks/progress-steps/config.d.ts +6 -37
- package/dist/_members/primitives/ui-blocks/reasoning-trace/config.d.ts +2 -12
- package/dist/_members/primitives/ui-blocks/simulated-cursor/config.d.ts +2 -54
- package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +9 -48
- package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +7 -20
- package/dist/_members/primitives/ui-blocks/tool-call-stack/config.d.ts +2 -42
- package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/config.d.ts +1 -19
- package/dist/_members/primitives/ui-blocks/visual-docs-snippet/config.d.ts +3 -71
- package/dist/_members/primitives/ui-blocks/voice-waveform/config.d.ts +5 -14
- package/dist/_members/primitives/workspace.d.ts +1 -5
- package/dist/_members/render-harness/cardAssetAdmission.d.ts +3 -0
- package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -0
- package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
- package/dist/_members/render-harness/index.d.ts +1 -5
- package/dist/_members/render-harness/index.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/remotion-runtime.d.ts +20 -0
- package/dist/_members/render-harness/renderInputAssets.d.ts +2 -1
- package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
- package/dist/authoring/build-tools.js +8 -8
- package/dist/authoring/context.js +5 -5
- package/dist/authoring/models.js +3 -1
- package/dist/authoring/resource-routing.js +1 -1
- package/dist/authoring/resources.js +1 -1
- package/dist/authoring/tools.js +7 -7
- package/dist/authoring.js +15 -31
- package/dist/chunk-2PGLNTB7.js +132 -0
- package/dist/{chunk-R5BMJ2NX.js → chunk-4FOOBSEE.js} +33 -2
- package/dist/{chunk-YXEZ75MB.js → chunk-4JRUGT2Y.js} +43 -108
- package/dist/{chunk-FMODQD5P.js → chunk-4ZE564YF.js} +16 -9
- package/dist/chunk-5OTQ7M43.js +718 -0
- package/dist/{chunk-O7GNE4BQ.js → chunk-6ID2J64H.js} +4 -4
- package/dist/{chunk-RXCEPCAQ.js → chunk-6XI57FZZ.js} +280 -191
- package/dist/{chunk-2SNY75AR.js → chunk-7KEUL3FI.js} +4 -2
- package/dist/{chunk-WTT3GGCA.js → chunk-AD5HWBCE.js} +1 -1
- package/dist/{chunk-JY26PIRP.js → chunk-C5SEPOWD.js} +163 -171
- package/dist/chunk-CGHTMZNC.js +6 -0
- package/dist/chunk-DHKQ47Q6.js +57 -0
- package/dist/{chunk-3PM6VICZ.js → chunk-DQKSCHFC.js} +4 -4
- package/dist/{chunk-D6S3ZKIY.js → chunk-EEXCDFY5.js} +1 -1
- package/dist/{chunk-ZT7MHRQU.js → chunk-GCQ7Z7S7.js} +15 -5
- package/dist/{chunk-ZBRPF6GV.js → chunk-GEGRJKKO.js} +1 -1
- package/dist/{chunk-JRIPQ7DN.js → chunk-IBMJ33EL.js} +3 -3
- package/dist/{chunk-JTVFIN6H.js → chunk-IHFREGFA.js} +10 -4
- package/dist/chunk-IJ7PVJTK.js +114 -0
- package/dist/{chunk-6ABIXGLO.js → chunk-KKEY5MIW.js} +8 -8
- package/dist/chunk-KU376ELE.js +392 -0
- package/dist/{chunk-7TQCR7AB.js → chunk-LNBVTDFR.js} +1 -1
- package/dist/chunk-LQUWKBST.js +195 -0
- package/dist/chunk-M2TLRXEO.js +41 -0
- package/dist/{chunk-7V3F5HO4.js → chunk-NOEBAV2G.js} +58 -2
- package/dist/{chunk-RQ2G4DXI.js → chunk-QBKDEO7J.js} +1502 -1314
- package/dist/chunk-RFXR7ATW.js +244 -0
- package/dist/{chunk-MCBUX5XV.js → chunk-SLN5UKLT.js} +2 -2
- package/dist/{chunk-GH27OS5S.js → chunk-VCBLGZQQ.js} +19 -4
- package/dist/{chunk-TLVPDT4R.js → chunk-XHUYWVYK.js} +1 -1
- package/dist/{chunk-D2EGO543.js → chunk-XVBOSPZI.js} +15 -17
- package/dist/{chunk-YE3F4LNJ.js → chunk-Y3QGYASW.js} +18 -18
- package/dist/{chunk-LSP4HN5N.js → chunk-ZCAQHNPI.js} +1 -1
- package/dist/{chunk-PJ4R4N4Q.js → chunk-ZN6P3KOJ.js} +70 -93
- package/dist/chunk-ZZRBKGDA.js +109 -0
- package/dist/component-runtime/browserOptions.d.ts +1 -0
- package/dist/component-runtime/browserOptions.js +7 -0
- package/dist/component-runtime/contracts.d.ts +1 -0
- package/dist/component-runtime/contracts.js +49 -0
- package/dist/component-runtime/identity/browser.d.ts +1 -0
- package/dist/component-runtime/identity/browser.js +35 -0
- package/dist/component-runtime/identity.d.ts +1 -0
- package/dist/component-runtime/identity.js +21 -0
- package/dist/component-runtime/importPolicy.d.ts +1 -0
- package/dist/component-runtime/importPolicy.js +10 -0
- package/dist/component-runtime/render.d.ts +1 -0
- package/dist/component-runtime/render.js +34 -0
- package/dist/component-runtime.d.ts +1 -0
- package/dist/component-runtime.js +132 -0
- package/dist/compose.js +17 -31
- package/dist/composition/graphics-plan.js +1 -1
- package/dist/composition/ops.js +4 -4
- package/dist/composition/primitive-catalog.js +1 -3
- package/dist/composition/projection.js +2 -2
- package/dist/composition/timeline.js +2 -2
- package/dist/composition/validators.js +2 -2
- package/dist/composition-ops.js +23 -17
- package/dist/composition.js +15 -15
- package/dist/{context-XWNT6QZH.js → context-4GSDBFT3.js} +5 -5
- package/dist/core/render.js +8 -8
- package/dist/core/select.js +2 -2
- package/dist/core.js +6 -6
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +22 -29
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/executor.js +1 -1
- package/dist/mcp/server.js +4 -6
- package/dist/mcp/wire-schema.d.ts +1 -0
- package/dist/mcp/wire-schema.js +37 -0
- package/dist/mcp.js +6 -29
- package/dist/nle-export.js +16 -25
- package/dist/plane/conformance.js +1 -1
- package/dist/plane/contract.js +7 -0
- package/dist/plane.js +1 -1
- package/dist/primitives/backgrounds.js +2 -2
- package/dist/primitives/captions.js +3 -3
- package/dist/primitives/effects.js +2 -2
- package/dist/primitives/layouts.js +2 -2
- package/dist/primitives/lib/index.js +8 -8
- package/dist/primitives/lib/schema.js +1 -1
- package/dist/primitives/lib.js +8 -8
- package/dist/primitives/text.js +2 -2
- package/dist/primitives/ui-blocks.js +2 -2
- package/dist/primitives.js +18 -18
- package/dist/render-harness/cardAssetAdmission.d.ts +1 -0
- package/dist/render-harness/cardAssetAdmission.js +8 -0
- package/dist/render-harness/renderInputAssets.d.ts +1 -0
- package/dist/render-harness/renderInputAssets.js +17 -0
- package/dist/render-harness.js +44 -574
- package/package.json +71 -34
- package/dist/_members/authoring/transpileComponent.d.ts +0 -6
- package/dist/_members/authoring/transpileHelper.d.ts +0 -8
- package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
- package/dist/_members/compose/sceneToRenderInput.d.ts +0 -25
- package/dist/_members/compose/schema.d.ts +0 -30
- package/dist/_members/compose/tokenResolver.d.ts +0 -17
- package/dist/_members/render-harness/browserOptions.d.ts +0 -11
- package/dist/_members/render-harness/browserOptions.d.ts.map +0 -1
- package/dist/_members/render-harness/contractRender.d.ts +0 -27
- package/dist/_members/render-harness/contractRender.d.ts.map +0 -1
- package/dist/_members/render-harness/localRender.d.ts.map +0 -1
- package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -9
- package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +0 -1
- package/dist/authoring/transpileComponent.d.ts +0 -1
- package/dist/authoring/transpileComponent.js +0 -31
- package/dist/authoring/transpileHelper.d.ts +0 -1
- package/dist/authoring/transpileHelper.js +0 -9
- package/dist/chunk-MHOQTPOB.js +0 -124
- package/dist/chunk-QSDFTYKV.js +0 -85
- package/dist/chunk-RHVLQNYF.js +0 -20
- package/dist/chunk-V24L35GM.js +0 -61
- package/dist/compose/renderer.d.ts +0 -1
- package/dist/compose/renderer.js +0 -170
- package/dist/render-harness/sandboxGlobalSpecs.d.ts +0 -1
- package/dist/render-harness/sandboxGlobalSpecs.js +0 -13
- package/dist/{chunk-THJAY7QS.js → chunk-BKHGL4MB.js} +4 -4
- package/dist/{chunk-XATRRDVG.js → chunk-G5BFI32U.js} +3 -3
- package/dist/{chunk-23HFEKV7.js → chunk-QISFYLBB.js} +4 -4
package/dist/render-harness.js
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
listComponents
|
|
5
|
-
} from "./chunk-WB2VFDQZ.js";
|
|
2
|
+
assertCardHtmlAssetFree
|
|
3
|
+
} from "./chunk-IJ7PVJTK.js";
|
|
6
4
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
assertNoRemoteRefs,
|
|
6
|
+
assetSlots,
|
|
7
|
+
assetUrlKey,
|
|
8
|
+
isRemoteUrl,
|
|
9
|
+
renderInputAssets
|
|
10
|
+
} from "./chunk-RFXR7ATW.js";
|
|
11
|
+
import "./chunk-KU376ELE.js";
|
|
12
|
+
import {
|
|
13
|
+
importFromRenderEntry,
|
|
14
|
+
resolveRenderEntryRoot
|
|
15
|
+
} from "./chunk-5OTQ7M43.js";
|
|
16
|
+
import "./chunk-WB2VFDQZ.js";
|
|
17
|
+
import {
|
|
18
|
+
COMPONENT_CHROMIUM_OPTIONS
|
|
19
|
+
} from "./chunk-CGHTMZNC.js";
|
|
20
|
+
import "./chunk-M2TLRXEO.js";
|
|
21
|
+
import "./chunk-DHKQ47Q6.js";
|
|
22
|
+
import "./chunk-2PGLNTB7.js";
|
|
23
|
+
import "./chunk-LQUWKBST.js";
|
|
24
|
+
import "./chunk-C5SEPOWD.js";
|
|
25
|
+
import "./chunk-7PA7FGLD.js";
|
|
26
|
+
import "./chunk-4FOOBSEE.js";
|
|
10
27
|
import "./chunk-2ESYSVXG.js";
|
|
11
28
|
|
|
12
29
|
// ../execution/render-harness/src/materializeSources.ts
|
|
@@ -163,121 +180,10 @@ async function extractSegments(clips, sourceFiles, opts) {
|
|
|
163
180
|
import { existsSync as existsSync3 } from "fs";
|
|
164
181
|
import { join as join3, extname as extname2 } from "path";
|
|
165
182
|
import { createHash } from "crypto";
|
|
166
|
-
|
|
167
|
-
// ../execution/render-harness/src/renderInputAssets.ts
|
|
168
|
-
function isRemoteUrl(u) {
|
|
169
|
-
return typeof u === "string" && /^https?:\/\//i.test(u) && !/^https?:\/\/(127\.0\.0\.1|localhost)(:|\/|$)/i.test(u);
|
|
170
|
-
}
|
|
171
|
-
function assetUrlKey(url) {
|
|
172
|
-
return url.split("?")[0];
|
|
173
|
-
}
|
|
174
|
-
function* assetSlots(input) {
|
|
175
|
-
for (const clip of input.clips ?? []) {
|
|
176
|
-
yield { role: "source", get: () => clip.src, set: (u) => {
|
|
177
|
-
clip.src = u;
|
|
178
|
-
} };
|
|
179
|
-
yield { role: "matte", get: () => clip.packedUrl, set: (u) => {
|
|
180
|
-
clip.packedUrl = u;
|
|
181
|
-
} };
|
|
182
|
-
yield {
|
|
183
|
-
role: "trajectory",
|
|
184
|
-
get: () => clip.cropTrajectoryUrl,
|
|
185
|
-
set: (u) => {
|
|
186
|
-
clip.cropTrajectoryUrl = u;
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
for (const track of input.audioTracks ?? []) {
|
|
191
|
-
yield { role: "audio", get: () => track.src, set: (u) => {
|
|
192
|
-
track.src = u;
|
|
193
|
-
} };
|
|
194
|
-
}
|
|
195
|
-
for (const overlay of input.overlays ?? []) {
|
|
196
|
-
const params = overlay.params;
|
|
197
|
-
if (params) {
|
|
198
|
-
yield { role: "overlayAsset", get: () => params.src, set: (u) => {
|
|
199
|
-
params.src = u;
|
|
200
|
-
} };
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
for (const font of input.brandKit?.fontAssets ?? []) {
|
|
204
|
-
yield { role: "font", get: () => font.url, set: (u) => {
|
|
205
|
-
font.url = u;
|
|
206
|
-
} };
|
|
207
|
-
}
|
|
208
|
-
const bk = input.brandKit;
|
|
209
|
-
if (bk) {
|
|
210
|
-
if (bk.logo) {
|
|
211
|
-
yield { role: "brandMedia", get: () => bk.logo.src, set: (u) => {
|
|
212
|
-
bk.logo.src = u;
|
|
213
|
-
} };
|
|
214
|
-
}
|
|
215
|
-
if (bk.intro) {
|
|
216
|
-
yield { role: "brandMedia", get: () => bk.intro.src, set: (u) => {
|
|
217
|
-
bk.intro.src = u;
|
|
218
|
-
} };
|
|
219
|
-
}
|
|
220
|
-
if (bk.outro) {
|
|
221
|
-
yield { role: "brandMedia", get: () => bk.outro.src, set: (u) => {
|
|
222
|
-
bk.outro.src = u;
|
|
223
|
-
} };
|
|
224
|
-
}
|
|
225
|
-
if (bk.watermark) {
|
|
226
|
-
yield { role: "brandMedia", get: () => bk.watermark.src, set: (u) => {
|
|
227
|
-
bk.watermark.src = u;
|
|
228
|
-
} };
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
function extFor(url, role) {
|
|
233
|
-
const path = assetUrlKey(url);
|
|
234
|
-
const m = path.match(/\.([a-z0-9]{2,5})$/i);
|
|
235
|
-
if (m) return m[1].toLowerCase();
|
|
236
|
-
return role === "trajectory" ? "json" : role === "audio" ? "m4a" : role === "font" ? "woff2" : "mp4";
|
|
237
|
-
}
|
|
238
|
-
function shortHash(s) {
|
|
239
|
-
let h = 2166136261 >>> 0;
|
|
240
|
-
for (let i = 0; i < s.length; i++) {
|
|
241
|
-
h ^= s.charCodeAt(i);
|
|
242
|
-
h = Math.imul(h, 16777619) >>> 0;
|
|
243
|
-
}
|
|
244
|
-
return h.toString(36);
|
|
245
|
-
}
|
|
246
|
-
function filenameFor(url, role) {
|
|
247
|
-
return `${role}-${shortHash(assetUrlKey(url))}.${extFor(url, role)}`;
|
|
248
|
-
}
|
|
249
|
-
function renderInputAssets(input) {
|
|
250
|
-
const seen = /* @__PURE__ */ new Set();
|
|
251
|
-
const refs = [];
|
|
252
|
-
for (const slot of assetSlots(input)) {
|
|
253
|
-
const url = slot.get();
|
|
254
|
-
if (!isRemoteUrl(url)) continue;
|
|
255
|
-
const key = assetUrlKey(url);
|
|
256
|
-
if (seen.has(key)) continue;
|
|
257
|
-
seen.add(key);
|
|
258
|
-
refs.push({ role: slot.role, url, filename: filenameFor(url, slot.role) });
|
|
259
|
-
}
|
|
260
|
-
return refs;
|
|
261
|
-
}
|
|
262
|
-
function assertNoRemoteRefs(input) {
|
|
263
|
-
const leftover = [];
|
|
264
|
-
for (const slot of assetSlots(input)) {
|
|
265
|
-
const url = slot.get();
|
|
266
|
-
if (isRemoteUrl(url)) leftover.push(`${slot.role}: ${assetUrlKey(url)}`);
|
|
267
|
-
}
|
|
268
|
-
if (leftover.length > 0) {
|
|
269
|
-
throw new Error(
|
|
270
|
-
`RenderInput still references ${leftover.length} un-localized remote asset(s) after staging \u2014 the render environment is incomplete and would block/hang in a no-egress sandbox:
|
|
271
|
-
` + leftover.join("\n ")
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// ../execution/render-harness/src/resolveAssets.ts
|
|
277
183
|
async function resolveAssets(renderInput, tempDir, mediaServerUrl, download) {
|
|
278
184
|
const urlMap = {};
|
|
279
185
|
const seen = /* @__PURE__ */ new Set();
|
|
280
|
-
async function
|
|
186
|
+
async function resolve(url) {
|
|
281
187
|
if (!url) return url;
|
|
282
188
|
if (!isRemoteUrl(url)) return url;
|
|
283
189
|
if (seen.has(url)) return urlMap[url] ?? url;
|
|
@@ -290,8 +196,10 @@ async function resolveAssets(renderInput, tempDir, mediaServerUrl, download) {
|
|
|
290
196
|
try {
|
|
291
197
|
await download(url, localPath);
|
|
292
198
|
} catch (err) {
|
|
293
|
-
|
|
294
|
-
|
|
199
|
+
throw new Error(
|
|
200
|
+
`Failed to materialize required render asset ${new URL(url).origin}${new URL(url).pathname}`,
|
|
201
|
+
{ cause: err }
|
|
202
|
+
);
|
|
295
203
|
}
|
|
296
204
|
}
|
|
297
205
|
const localUrl = `${mediaServerUrl}/${filename}`;
|
|
@@ -301,7 +209,7 @@ async function resolveAssets(renderInput, tempDir, mediaServerUrl, download) {
|
|
|
301
209
|
if (renderInput.audioTracks) {
|
|
302
210
|
for (const track of renderInput.audioTracks) {
|
|
303
211
|
if ("src" in track && typeof track.src === "string") {
|
|
304
|
-
track.src = await
|
|
212
|
+
track.src = await resolve(track.src);
|
|
305
213
|
}
|
|
306
214
|
}
|
|
307
215
|
}
|
|
@@ -310,7 +218,7 @@ async function resolveAssets(renderInput, tempDir, mediaServerUrl, download) {
|
|
|
310
218
|
if (overlay.params) {
|
|
311
219
|
for (const [key, value] of Object.entries(overlay.params)) {
|
|
312
220
|
if (typeof value === "string" && isRemoteUrl(value)) {
|
|
313
|
-
const resolved = await
|
|
221
|
+
const resolved = await resolve(value);
|
|
314
222
|
if (resolved) overlay.params[key] = resolved;
|
|
315
223
|
}
|
|
316
224
|
}
|
|
@@ -350,6 +258,7 @@ async function httpDownload(url, destPath) {
|
|
|
350
258
|
}
|
|
351
259
|
async function materializeSources(renderInput, workDir, log = () => {
|
|
352
260
|
}) {
|
|
261
|
+
assertCardHtmlAssetFree(renderInput);
|
|
353
262
|
if (renderInputAssets(renderInput).length === 0 && !hasLocalFileRefs(renderInput)) {
|
|
354
263
|
return { renderInput, close: async () => {
|
|
355
264
|
} };
|
|
@@ -420,7 +329,7 @@ async function materializeSources(renderInput, workDir, log = () => {
|
|
|
420
329
|
}
|
|
421
330
|
for (const slot of assetSlots(renderInput)) {
|
|
422
331
|
const url = slot.get();
|
|
423
|
-
if (!isRemoteUrl(url)) continue;
|
|
332
|
+
if (typeof url !== "string" || !isRemoteUrl(url)) continue;
|
|
424
333
|
const local = localByKey.get(assetUrlKey(url));
|
|
425
334
|
if (local) slot.set(local);
|
|
426
335
|
}
|
|
@@ -451,313 +360,9 @@ async function materializeSources(renderInput, workDir, log = () => {
|
|
|
451
360
|
};
|
|
452
361
|
}
|
|
453
362
|
|
|
454
|
-
// ../execution/render-harness/src/localRender.ts
|
|
455
|
-
import { mkdirSync, writeFileSync } from "fs";
|
|
456
|
-
import { join as join5, relative, resolve, dirname } from "path";
|
|
457
|
-
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
458
|
-
|
|
459
|
-
// ../execution/render-harness/src/browserOptions.ts
|
|
460
|
-
var SOFTWARE_CHROMIUM_OPTIONS = Object.freeze({ gl: "swangle" });
|
|
461
|
-
|
|
462
|
-
// ../execution/render-harness/src/localRender.ts
|
|
463
|
-
var LOCAL_REGISTRY_FILENAME = "registry.local.tsx";
|
|
464
|
-
var LOCAL_ROOT_FILENAME = "Root.local.tsx";
|
|
465
|
-
var LOCAL_ENTRY_FILENAME = "entry.local.tsx";
|
|
466
|
-
var LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
|
|
467
|
-
function toImportSpecifier(fromDir, toFile) {
|
|
468
|
-
const rel = relative(fromDir, toFile).split("\\").join("/");
|
|
469
|
-
return rel.startsWith(".") ? rel : `./${rel}`;
|
|
470
|
-
}
|
|
471
|
-
function generateLocalRegistry(ws) {
|
|
472
|
-
const dir = cacheDir(ws);
|
|
473
|
-
mkdirSync(dir, { recursive: true });
|
|
474
|
-
const ids = listComponents(ws);
|
|
475
|
-
const imports = [];
|
|
476
|
-
const registrations = [];
|
|
477
|
-
ids.forEach((id, i) => {
|
|
478
|
-
const configFile = join5(componentDir(ws, id), "config");
|
|
479
|
-
const spec = toImportSpecifier(dir, configFile);
|
|
480
|
-
const local = `config${i}`;
|
|
481
|
-
imports.push(`import { config as ${local} } from '${spec}'; // ${id}`);
|
|
482
|
-
registrations.push(`registerPrimitiveOverride(${local} as LocalPrimitiveConfig, OWNER);`);
|
|
483
|
-
});
|
|
484
|
-
const source = `// GENERATED by @cueframe/render-harness generateLocalRegistry \u2014 DO NOT EDIT.
|
|
485
|
-
import { registerPrimitiveOverride, resetPrimitiveOverrides } from '@cueframe/compose';
|
|
486
|
-
${imports.join("\n")}
|
|
487
|
-
|
|
488
|
-
type LocalPrimitiveConfig = Parameters<typeof registerPrimitiveOverride>[0];
|
|
489
|
-
|
|
490
|
-
const OWNER = ${JSON.stringify(ws.root)};
|
|
491
|
-
resetPrimitiveOverrides();
|
|
492
|
-
${registrations.join("\n")}
|
|
493
|
-
`;
|
|
494
|
-
const outPath = join5(dir, LOCAL_REGISTRY_FILENAME);
|
|
495
|
-
writeFileSync(outPath, source);
|
|
496
|
-
return outPath;
|
|
497
|
-
}
|
|
498
|
-
function generateLocalRoot(ws, opts) {
|
|
499
|
-
const dir = cacheDir(ws);
|
|
500
|
-
mkdirSync(dir, { recursive: true });
|
|
501
|
-
const root = `// GENERATED by @cueframe/render-harness \u2014 DO NOT EDIT.
|
|
502
|
-
import React from 'react';
|
|
503
|
-
import { Composition, getInputProps } from 'remotion';
|
|
504
|
-
import { resolvePrimitive } from '@cueframe/compose';
|
|
505
|
-
import './${LOCAL_REGISTRY_FILENAME}';
|
|
506
|
-
|
|
507
|
-
const Resolved: React.FC = () => {
|
|
508
|
-
const params = getInputProps() as Record<string, unknown>;
|
|
509
|
-
const meta = resolvePrimitive(${JSON.stringify(opts.id)});
|
|
510
|
-
if (!meta) throw new Error('local primitive did not resolve: ' + ${JSON.stringify(opts.id)});
|
|
511
|
-
const C = meta.component as React.FC<Record<string, unknown>>;
|
|
512
|
-
return <C durationInFrames={${opts.durationInFrames}} params={params} />;
|
|
513
|
-
};
|
|
514
|
-
|
|
515
|
-
export const RemotionRoot: React.FC = () => (
|
|
516
|
-
<Composition
|
|
517
|
-
id=${JSON.stringify(LOCAL_COMPOSITION_ID)}
|
|
518
|
-
component={Resolved}
|
|
519
|
-
durationInFrames={${opts.durationInFrames}}
|
|
520
|
-
fps={${opts.fps}}
|
|
521
|
-
width={${opts.width}}
|
|
522
|
-
height={${opts.height}}
|
|
523
|
-
defaultProps={{}}
|
|
524
|
-
/>
|
|
525
|
-
);
|
|
526
|
-
`;
|
|
527
|
-
writeFileSync(join5(dir, LOCAL_ROOT_FILENAME), root);
|
|
528
|
-
const entry = `// GENERATED by @cueframe/render-harness \u2014 DO NOT EDIT.
|
|
529
|
-
import { registerRoot } from 'remotion';
|
|
530
|
-
import { RemotionRoot } from './${LOCAL_ROOT_FILENAME}';
|
|
531
|
-
registerRoot(RemotionRoot);
|
|
532
|
-
`;
|
|
533
|
-
const entryPath = join5(dir, LOCAL_ENTRY_FILENAME);
|
|
534
|
-
writeFileSync(entryPath, entry);
|
|
535
|
-
return entryPath;
|
|
536
|
-
}
|
|
537
|
-
function buildBoxGlobalsProvideMap(args) {
|
|
538
|
-
const { renderEntryRoot, specs, animateNames } = args;
|
|
539
|
-
const globalsModule = join5(renderEntryRoot, "src", "sandbox-globals");
|
|
540
|
-
const map = {};
|
|
541
|
-
for (const [name, spec] of Object.entries(specs)) {
|
|
542
|
-
if (spec.exportName === "default") {
|
|
543
|
-
map[name] = spec.module;
|
|
544
|
-
continue;
|
|
545
|
-
}
|
|
546
|
-
let mod;
|
|
547
|
-
if (spec.module === GLOBALS_MODULE) {
|
|
548
|
-
mod = globalsModule;
|
|
549
|
-
} else if (spec.module.startsWith(".")) {
|
|
550
|
-
mod = join5(renderEntryRoot, "src", spec.module.replace(/^\.\//, ""));
|
|
551
|
-
} else {
|
|
552
|
-
mod = spec.module;
|
|
553
|
-
}
|
|
554
|
-
map[name] = [mod, spec.exportName];
|
|
555
|
-
}
|
|
556
|
-
for (const key of animateNames) {
|
|
557
|
-
map[key] = ["@cueframe/animate", key];
|
|
558
|
-
}
|
|
559
|
-
return map;
|
|
560
|
-
}
|
|
561
|
-
function buildLocalWebpackOverride(renderEntryRoot, globals) {
|
|
562
|
-
const tauriShim = join5(renderEntryRoot, "scripts", "tauri-shim.mjs");
|
|
563
|
-
const animateAlias = join5(renderEntryRoot, "src", "animateStub.ts");
|
|
564
|
-
class TauriShimPlugin {
|
|
565
|
-
shimPath;
|
|
566
|
-
constructor(shimPath) {
|
|
567
|
-
this.shimPath = shimPath;
|
|
568
|
-
}
|
|
569
|
-
apply(resolver) {
|
|
570
|
-
const shimPath = this.shimPath;
|
|
571
|
-
resolver.getHook("resolve").tapAsync("TauriShimPlugin", ((request, ctx, cb) => {
|
|
572
|
-
if (request.request && /^@tauri-apps\//.test(request.request)) {
|
|
573
|
-
resolver.doResolve(
|
|
574
|
-
resolver.getHook("resolve"),
|
|
575
|
-
{ ...request, request: shimPath },
|
|
576
|
-
null,
|
|
577
|
-
ctx,
|
|
578
|
-
cb
|
|
579
|
-
);
|
|
580
|
-
return;
|
|
581
|
-
}
|
|
582
|
-
cb();
|
|
583
|
-
}));
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
const provideMap = buildBoxGlobalsProvideMap({
|
|
587
|
-
renderEntryRoot,
|
|
588
|
-
specs: globals.specs,
|
|
589
|
-
animateNames: globals.animateNames
|
|
590
|
-
});
|
|
591
|
-
const webpack = globals.webpack;
|
|
592
|
-
if (!webpack || typeof webpack.ProvidePlugin !== "function") {
|
|
593
|
-
throw new Error(
|
|
594
|
-
"buildLocalWebpackOverride: webpack.ProvidePlugin unavailable \u2014 the box bundle cannot inject the Remotion sandbox globals (no-import components would fail)."
|
|
595
|
-
);
|
|
596
|
-
}
|
|
597
|
-
return (config) => ({
|
|
598
|
-
...config,
|
|
599
|
-
plugins: [...config.plugins ?? [], new webpack.ProvidePlugin(provideMap)],
|
|
600
|
-
resolve: {
|
|
601
|
-
...config.resolve,
|
|
602
|
-
modules: [join5(renderEntryRoot, "node_modules"), ...config.resolve?.modules ?? ["node_modules"]],
|
|
603
|
-
alias: {
|
|
604
|
-
...config.resolve?.alias,
|
|
605
|
-
"@cueframe/animate": animateAlias,
|
|
606
|
-
"@": join5(renderEntryRoot, "src")
|
|
607
|
-
},
|
|
608
|
-
plugins: [...config.resolve?.plugins ?? [], new TauriShimPlugin(tauriShim)]
|
|
609
|
-
}
|
|
610
|
-
});
|
|
611
|
-
}
|
|
612
|
-
async function importFromRenderEntry(renderEntryRoot, spec) {
|
|
613
|
-
const { createRequire } = await import("module");
|
|
614
|
-
const { pathToFileURL } = await import("url");
|
|
615
|
-
const requireFromRenderEntry = createRequire(join5(renderEntryRoot, "package.json"));
|
|
616
|
-
return await import(pathToFileURL(requireFromRenderEntry.resolve(spec)).href);
|
|
617
|
-
}
|
|
618
|
-
function resolveRenderEntryRoot(override) {
|
|
619
|
-
if (override) return override;
|
|
620
|
-
if (process.env.RENDER_ENTRY_ROOT) return process.env.RENDER_ENTRY_ROOT;
|
|
621
|
-
const here = dirname(fileURLToPath2(import.meta.url));
|
|
622
|
-
return join5(resolve(here, "..", ".."), "render-entry");
|
|
623
|
-
}
|
|
624
|
-
async function loadSandboxGlobals(renderEntryRoot) {
|
|
625
|
-
const { pathToFileURL } = await import("url");
|
|
626
|
-
const { createRequire } = await import("module");
|
|
627
|
-
let animateNames;
|
|
628
|
-
if (typeof __BOX_ANIMATE_NAMES_JSON__ !== "undefined") {
|
|
629
|
-
animateNames = JSON.parse(__BOX_ANIMATE_NAMES_JSON__);
|
|
630
|
-
} else {
|
|
631
|
-
const animateStub = join5(renderEntryRoot, "src", "animateStub.ts");
|
|
632
|
-
const animateMod = await import(pathToFileURL(animateStub).href);
|
|
633
|
-
animateNames = animateMod.sandboxScopeNames;
|
|
634
|
-
}
|
|
635
|
-
const requireFromRenderEntry = createRequire(join5(renderEntryRoot, "package.json"));
|
|
636
|
-
const bundlerPkg = requireFromRenderEntry.resolve("@remotion/bundler/package.json");
|
|
637
|
-
const requireFromBundler = createRequire(bundlerPkg);
|
|
638
|
-
const webpackEntry = requireFromBundler.resolve("webpack");
|
|
639
|
-
const webpackMod = await import(pathToFileURL(webpackEntry).href);
|
|
640
|
-
const webpack = webpackMod.default ?? webpackMod;
|
|
641
|
-
return {
|
|
642
|
-
specs: SANDBOX_GLOBAL_SPECS,
|
|
643
|
-
animateNames,
|
|
644
|
-
webpack
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
async function prepareLocalBundle(opts) {
|
|
648
|
-
const renderEntryRoot = resolveRenderEntryRoot(opts.renderEntryRoot);
|
|
649
|
-
const browserExecutable = process.env.REMOTION_CHROME_EXECUTABLE || void 0;
|
|
650
|
-
generateLocalRegistry(opts.ws);
|
|
651
|
-
const entryPoint = generateLocalRoot(opts.ws, {
|
|
652
|
-
id: opts.id,
|
|
653
|
-
width: opts.width,
|
|
654
|
-
height: opts.height,
|
|
655
|
-
fps: opts.fps,
|
|
656
|
-
durationInFrames: opts.durationInFrames
|
|
657
|
-
});
|
|
658
|
-
const { bundle } = await importFromRenderEntry(
|
|
659
|
-
renderEntryRoot,
|
|
660
|
-
"@remotion/bundler"
|
|
661
|
-
);
|
|
662
|
-
const { specs, animateNames, webpack } = await loadSandboxGlobals(renderEntryRoot);
|
|
663
|
-
const serveUrl = await bundle({
|
|
664
|
-
entryPoint,
|
|
665
|
-
webpackOverride: buildLocalWebpackOverride(renderEntryRoot, { specs, animateNames, webpack })
|
|
666
|
-
});
|
|
667
|
-
return { serveUrl, browserExecutable, inputProps: opts.params, renderEntryRoot };
|
|
668
|
-
}
|
|
669
|
-
async function renderComponentStill(opts) {
|
|
670
|
-
const width = opts.width ?? 1920;
|
|
671
|
-
const height = opts.height ?? 1080;
|
|
672
|
-
const fps = opts.fps ?? 30;
|
|
673
|
-
const durationInFrames = opts.durationInFrames ?? 1;
|
|
674
|
-
const frame = opts.frame ?? 0;
|
|
675
|
-
const { serveUrl, browserExecutable, inputProps, renderEntryRoot } = await prepareLocalBundle({
|
|
676
|
-
ws: opts.ws,
|
|
677
|
-
id: opts.id,
|
|
678
|
-
width,
|
|
679
|
-
height,
|
|
680
|
-
fps,
|
|
681
|
-
durationInFrames,
|
|
682
|
-
params: opts.params,
|
|
683
|
-
renderEntryRoot: opts.renderEntryRoot
|
|
684
|
-
});
|
|
685
|
-
const { selectComposition, renderStill } = await importFromRenderEntry(
|
|
686
|
-
renderEntryRoot,
|
|
687
|
-
"@remotion/renderer"
|
|
688
|
-
);
|
|
689
|
-
const composition = await selectComposition({
|
|
690
|
-
serveUrl,
|
|
691
|
-
id: LOCAL_COMPOSITION_ID,
|
|
692
|
-
inputProps,
|
|
693
|
-
browserExecutable,
|
|
694
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS
|
|
695
|
-
});
|
|
696
|
-
const pngPath = join5(cacheDir(opts.ws), `still-${opts.id}.png`);
|
|
697
|
-
await renderStill({
|
|
698
|
-
composition,
|
|
699
|
-
serveUrl,
|
|
700
|
-
inputProps,
|
|
701
|
-
output: pngPath,
|
|
702
|
-
frame,
|
|
703
|
-
browserExecutable,
|
|
704
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS,
|
|
705
|
-
timeoutInMilliseconds: 12e4
|
|
706
|
-
});
|
|
707
|
-
return { pngPath };
|
|
708
|
-
}
|
|
709
|
-
function alphaRenderConfig(codec) {
|
|
710
|
-
return codec === "prores" ? { codec: "prores", proResProfile: "4444", pixelFormat: "yuva444p10le", imageFormat: "png", muted: true } : { codec: "vp9", pixelFormat: "yuva420p", imageFormat: "png", muted: true };
|
|
711
|
-
}
|
|
712
|
-
function alphaExt(codec) {
|
|
713
|
-
return codec === "prores" ? "mov" : "webm";
|
|
714
|
-
}
|
|
715
|
-
async function renderComponentAlpha(opts) {
|
|
716
|
-
const width = opts.width ?? 1920;
|
|
717
|
-
const height = opts.height ?? 1080;
|
|
718
|
-
const fps = opts.fps ?? 30;
|
|
719
|
-
const durationInFrames = opts.durationInFrames ?? fps * 3;
|
|
720
|
-
const codec = opts.codec ?? "prores";
|
|
721
|
-
const { serveUrl, browserExecutable, inputProps, renderEntryRoot } = await prepareLocalBundle({
|
|
722
|
-
ws: opts.ws,
|
|
723
|
-
id: opts.id,
|
|
724
|
-
width,
|
|
725
|
-
height,
|
|
726
|
-
fps,
|
|
727
|
-
durationInFrames,
|
|
728
|
-
params: opts.params,
|
|
729
|
-
renderEntryRoot: opts.renderEntryRoot
|
|
730
|
-
});
|
|
731
|
-
const { selectComposition, renderMedia } = await importFromRenderEntry(
|
|
732
|
-
renderEntryRoot,
|
|
733
|
-
"@remotion/renderer"
|
|
734
|
-
);
|
|
735
|
-
const composition = await selectComposition({
|
|
736
|
-
serveUrl,
|
|
737
|
-
id: LOCAL_COMPOSITION_ID,
|
|
738
|
-
inputProps,
|
|
739
|
-
browserExecutable,
|
|
740
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS
|
|
741
|
-
});
|
|
742
|
-
const rangeSuffix = opts.frameRange ? `-${opts.frameRange[0]}-${opts.frameRange[1]}` : "";
|
|
743
|
-
const videoPath = join5(cacheDir(opts.ws), `alpha-${opts.id}${rangeSuffix}.${alphaExt(codec)}`);
|
|
744
|
-
await renderMedia({
|
|
745
|
-
composition,
|
|
746
|
-
serveUrl,
|
|
747
|
-
inputProps,
|
|
748
|
-
browserExecutable,
|
|
749
|
-
outputLocation: videoPath,
|
|
750
|
-
...alphaRenderConfig(codec),
|
|
751
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS,
|
|
752
|
-
concurrency: 1,
|
|
753
|
-
...opts.frameRange ? { frameRange: opts.frameRange } : {}
|
|
754
|
-
});
|
|
755
|
-
return { videoPath };
|
|
756
|
-
}
|
|
757
|
-
|
|
758
363
|
// ../execution/render-harness/src/cardRender.ts
|
|
759
|
-
import { mkdirSync
|
|
760
|
-
import { join as
|
|
364
|
+
import { mkdirSync, writeFileSync } from "fs";
|
|
365
|
+
import { join as join5 } from "path";
|
|
761
366
|
var CARD_COMPOSITION_ID = "CueFrameCardStill";
|
|
762
367
|
var CARD_ROOT_FILENAME = "card.Root.local.tsx";
|
|
763
368
|
var CARD_ENTRY_FILENAME = "card.entry.local.tsx";
|
|
@@ -803,7 +408,7 @@ function buildCardWebpackOverride(renderEntryRoot) {
|
|
|
803
408
|
...config,
|
|
804
409
|
resolve: {
|
|
805
410
|
...config.resolve,
|
|
806
|
-
modules: [
|
|
411
|
+
modules: [join5(renderEntryRoot, "node_modules"), ...config.resolve?.modules ?? ["node_modules"]]
|
|
807
412
|
}
|
|
808
413
|
});
|
|
809
414
|
}
|
|
@@ -814,10 +419,10 @@ async function renderCardStill(opts) {
|
|
|
814
419
|
const frame = opts.frame ?? 0;
|
|
815
420
|
const renderEntryRoot = resolveRenderEntryRoot(opts.renderEntryRoot);
|
|
816
421
|
const browserExecutable = process.env.REMOTION_CHROME_EXECUTABLE || void 0;
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
const entryPoint =
|
|
820
|
-
|
|
422
|
+
mkdirSync(opts.outDir, { recursive: true });
|
|
423
|
+
writeFileSync(join5(opts.outDir, CARD_ROOT_FILENAME), generateCardRootSource({ width, height, fps }));
|
|
424
|
+
const entryPoint = join5(opts.outDir, CARD_ENTRY_FILENAME);
|
|
425
|
+
writeFileSync(entryPoint, generateCardEntrySource());
|
|
821
426
|
const { bundle } = await importFromRenderEntry(
|
|
822
427
|
renderEntryRoot,
|
|
823
428
|
"@remotion/bundler"
|
|
@@ -833,9 +438,9 @@ async function renderCardStill(opts) {
|
|
|
833
438
|
id: CARD_COMPOSITION_ID,
|
|
834
439
|
inputProps,
|
|
835
440
|
browserExecutable,
|
|
836
|
-
chromiumOptions:
|
|
441
|
+
chromiumOptions: COMPONENT_CHROMIUM_OPTIONS
|
|
837
442
|
});
|
|
838
|
-
const pngPath =
|
|
443
|
+
const pngPath = join5(opts.outDir, "card-still.png");
|
|
839
444
|
await renderStill({
|
|
840
445
|
composition,
|
|
841
446
|
serveUrl,
|
|
@@ -843,162 +448,27 @@ async function renderCardStill(opts) {
|
|
|
843
448
|
output: pngPath,
|
|
844
449
|
frame,
|
|
845
450
|
browserExecutable,
|
|
846
|
-
chromiumOptions:
|
|
451
|
+
chromiumOptions: COMPONENT_CHROMIUM_OPTIONS,
|
|
847
452
|
timeoutInMilliseconds: 12e4
|
|
848
453
|
});
|
|
849
454
|
return { pngPath };
|
|
850
455
|
}
|
|
851
|
-
|
|
852
|
-
// ../execution/render-harness/src/contractRender.ts
|
|
853
|
-
import { mkdirSync as mkdirSync3, writeFileSync as writeFileSync3 } from "fs";
|
|
854
|
-
import { join as join7 } from "path";
|
|
855
|
-
var CONTRACT_COMPOSITION_ID = "CueFrameContractFrames";
|
|
856
|
-
var CONTRACT_ROOT_FILENAME = "contract.Root.local.tsx";
|
|
857
|
-
var CONTRACT_ENTRY_FILENAME = "contract.entry.local.tsx";
|
|
858
|
-
function generateContractRootSource(opts) {
|
|
859
|
-
if (!opts.jsxSource.includes("export default")) {
|
|
860
|
-
throw new Error(
|
|
861
|
-
"generateContractRootSource: jsxSource is not contract-shaped \u2014 expected an 'export default function ({ durationInFrames, params })'"
|
|
862
|
-
);
|
|
863
|
-
}
|
|
864
|
-
const transformed = opts.jsxSource.replace(/export\s+default\s+/, "return ");
|
|
865
|
-
return `// GENERATED by @cueframe/render-harness generateContractRootSource \u2014 DO NOT EDIT.
|
|
866
|
-
import React from 'react';
|
|
867
|
-
import {
|
|
868
|
-
Composition,
|
|
869
|
-
AbsoluteFill,
|
|
870
|
-
getInputProps,
|
|
871
|
-
useCurrentFrame,
|
|
872
|
-
useVideoConfig,
|
|
873
|
-
interpolate,
|
|
874
|
-
Easing,
|
|
875
|
-
} from 'remotion';
|
|
876
|
-
|
|
877
|
-
const ContractComponent = (() => {
|
|
878
|
-
${transformed}
|
|
879
|
-
})();
|
|
880
|
-
|
|
881
|
-
const Frame: React.FC = () => {
|
|
882
|
-
const { params, cssVars } = getInputProps() as {
|
|
883
|
-
params?: Record<string, unknown>;
|
|
884
|
-
cssVars?: Record<string, string>;
|
|
885
|
-
};
|
|
886
|
-
return (
|
|
887
|
-
<AbsoluteFill>
|
|
888
|
-
<div style={{ width: '100%', height: '100%', ...(cssVars ?? {}) }}>
|
|
889
|
-
<ContractComponent durationInFrames={${opts.durationInFrames}} params={params ?? {}} />
|
|
890
|
-
</div>
|
|
891
|
-
</AbsoluteFill>
|
|
892
|
-
);
|
|
893
|
-
};
|
|
894
|
-
|
|
895
|
-
export const RemotionRoot: React.FC = () => (
|
|
896
|
-
<Composition
|
|
897
|
-
id=${JSON.stringify(CONTRACT_COMPOSITION_ID)}
|
|
898
|
-
component={Frame}
|
|
899
|
-
durationInFrames={${opts.durationInFrames}}
|
|
900
|
-
fps={${opts.fps}}
|
|
901
|
-
width={${opts.width}}
|
|
902
|
-
height={${opts.height}}
|
|
903
|
-
defaultProps={{}}
|
|
904
|
-
/>
|
|
905
|
-
);
|
|
906
|
-
`;
|
|
907
|
-
}
|
|
908
|
-
function generateContractEntrySource() {
|
|
909
|
-
return `// GENERATED by @cueframe/render-harness \u2014 DO NOT EDIT.
|
|
910
|
-
import { registerRoot } from 'remotion';
|
|
911
|
-
import { RemotionRoot } from './${CONTRACT_ROOT_FILENAME}';
|
|
912
|
-
registerRoot(RemotionRoot);
|
|
913
|
-
`;
|
|
914
|
-
}
|
|
915
|
-
async function renderContractFrames(opts) {
|
|
916
|
-
const width = opts.width ?? 1080;
|
|
917
|
-
const height = opts.height ?? 1920;
|
|
918
|
-
const fps = opts.fps ?? 30;
|
|
919
|
-
const renderEntryRoot = resolveRenderEntryRoot(opts.renderEntryRoot);
|
|
920
|
-
const browserExecutable = process.env.REMOTION_CHROME_EXECUTABLE || void 0;
|
|
921
|
-
mkdirSync3(opts.outDir, { recursive: true });
|
|
922
|
-
writeFileSync3(
|
|
923
|
-
join7(opts.outDir, CONTRACT_ROOT_FILENAME),
|
|
924
|
-
generateContractRootSource({
|
|
925
|
-
jsxSource: opts.jsxSource,
|
|
926
|
-
width,
|
|
927
|
-
height,
|
|
928
|
-
fps,
|
|
929
|
-
durationInFrames: opts.durationInFrames
|
|
930
|
-
})
|
|
931
|
-
);
|
|
932
|
-
const entryPoint = join7(opts.outDir, CONTRACT_ENTRY_FILENAME);
|
|
933
|
-
writeFileSync3(entryPoint, generateContractEntrySource());
|
|
934
|
-
const { bundle } = await importFromRenderEntry(
|
|
935
|
-
renderEntryRoot,
|
|
936
|
-
"@remotion/bundler"
|
|
937
|
-
);
|
|
938
|
-
const serveUrl = await bundle({ entryPoint, webpackOverride: buildCardWebpackOverride(renderEntryRoot) });
|
|
939
|
-
const { selectComposition, renderStill } = await importFromRenderEntry(
|
|
940
|
-
renderEntryRoot,
|
|
941
|
-
"@remotion/renderer"
|
|
942
|
-
);
|
|
943
|
-
const inputProps = { params: opts.params ?? {}, cssVars: opts.cssVars ?? {} };
|
|
944
|
-
const composition = await selectComposition({
|
|
945
|
-
serveUrl,
|
|
946
|
-
id: CONTRACT_COMPOSITION_ID,
|
|
947
|
-
inputProps,
|
|
948
|
-
browserExecutable,
|
|
949
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS
|
|
950
|
-
});
|
|
951
|
-
const pngPaths = [];
|
|
952
|
-
for (const frame of opts.frames) {
|
|
953
|
-
const pngPath = join7(opts.outDir, `frame-${String(frame).padStart(4, "0")}.png`);
|
|
954
|
-
await renderStill({
|
|
955
|
-
composition,
|
|
956
|
-
serveUrl,
|
|
957
|
-
inputProps,
|
|
958
|
-
output: pngPath,
|
|
959
|
-
frame,
|
|
960
|
-
browserExecutable,
|
|
961
|
-
chromiumOptions: SOFTWARE_CHROMIUM_OPTIONS,
|
|
962
|
-
timeoutInMilliseconds: 12e4
|
|
963
|
-
});
|
|
964
|
-
pngPaths.push(pngPath);
|
|
965
|
-
}
|
|
966
|
-
return { pngPaths };
|
|
967
|
-
}
|
|
968
456
|
export {
|
|
969
457
|
CARD_COMPOSITION_ID,
|
|
970
458
|
CARD_ENTRY_FILENAME,
|
|
971
459
|
CARD_ROOT_FILENAME,
|
|
972
|
-
|
|
973
|
-
CONTRACT_ENTRY_FILENAME,
|
|
974
|
-
CONTRACT_ROOT_FILENAME,
|
|
975
|
-
LOCAL_COMPOSITION_ID,
|
|
976
|
-
LOCAL_ENTRY_FILENAME,
|
|
977
|
-
LOCAL_REGISTRY_FILENAME,
|
|
978
|
-
LOCAL_ROOT_FILENAME,
|
|
979
|
-
alphaExt,
|
|
980
|
-
alphaRenderConfig,
|
|
460
|
+
assertCardHtmlAssetFree,
|
|
981
461
|
assertNoRemoteRefs,
|
|
982
462
|
assetSlots,
|
|
983
463
|
assetUrlKey,
|
|
984
|
-
buildBoxGlobalsProvideMap,
|
|
985
464
|
buildCardWebpackOverride,
|
|
986
|
-
buildLocalWebpackOverride,
|
|
987
465
|
extractSegments,
|
|
988
466
|
generateCardEntrySource,
|
|
989
467
|
generateCardRootSource,
|
|
990
|
-
generateContractEntrySource,
|
|
991
|
-
generateContractRootSource,
|
|
992
|
-
generateLocalRegistry,
|
|
993
|
-
importFromRenderEntry,
|
|
994
468
|
isRemoteUrl,
|
|
995
469
|
materializeSources,
|
|
996
470
|
renderCardStill,
|
|
997
|
-
renderComponentAlpha,
|
|
998
|
-
renderComponentStill,
|
|
999
|
-
renderContractFrames,
|
|
1000
471
|
renderInputAssets,
|
|
1001
472
|
resolveAssets,
|
|
1002
|
-
resolveRenderEntryRoot,
|
|
1003
473
|
startMediaServer
|
|
1004
474
|
};
|