@cueframe/kernel 0.2.57 → 0.2.59-rc.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.
- package/dist/THIRD_PARTY_NOTICES.md +111 -0
- package/dist/_members/account-model/testing/conversationStoreContract.d.ts +3 -4
- package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +3 -4
- package/dist/_members/account-model/validators/index.d.ts +0 -1
- package/dist/_members/animate/index.d.ts +0 -2
- package/dist/_members/authoring/index.d.ts +1 -1
- package/dist/_members/authoring/prompts/index.d.ts +0 -1
- package/dist/_members/authoring/resources.d.ts +2 -11
- package/dist/_members/cloud-import/CloudImportService.d.ts +0 -1
- package/dist/_members/cloud-import/index.d.ts +0 -2
- package/dist/_members/component-runtime/allowedImports.d.ts +6 -0
- package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserIdentity.d.ts +2 -12
- package/dist/_members/component-runtime/browserIdentity.d.ts.map +1 -1
- package/dist/_members/component-runtime/canonicalIdentity.d.ts +8 -1
- package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
- package/dist/_members/component-runtime/contracts.d.ts +2 -1
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
- package/dist/_members/component-runtime/identity.d.ts +2 -3
- package/dist/_members/component-runtime/identity.d.ts.map +1 -1
- package/dist/_members/component-runtime/importPolicy.d.ts +5 -0
- package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
- package/dist/_members/component-runtime/template/bind.d.ts +22 -0
- package/dist/_members/component-runtime/template/bind.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/checks.d.ts +71 -0
- package/dist/_members/component-runtime/template/checks.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/extract.d.ts +35 -0
- package/dist/_members/component-runtime/template/extract.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/index.d.ts +6 -0
- package/dist/_members/component-runtime/template/index.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/schema.d.ts +1581 -0
- package/dist/_members/component-runtime/template/schema.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/testing/fixtures.d.ts +33 -0
- package/dist/_members/component-runtime/template/testing/fixtures.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/testing/index.d.ts +3 -0
- package/dist/_members/component-runtime/template/testing/index.d.ts.map +1 -0
- package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts +53 -0
- package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts.map +1 -0
- package/dist/_members/component-runtime/testing/sourcePolicyCases.d.ts +15 -0
- package/dist/_members/component-runtime/testing/sourcePolicyCases.d.ts.map +1 -0
- package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -1
- package/dist/_members/compose/index.d.ts +1 -1
- package/dist/_members/compose/primitiveRegistry.d.ts +0 -2
- package/dist/_members/composition/audio/audioMix.d.ts +0 -1
- package/dist/_members/composition/audio/mixStaging.d.ts +0 -5
- package/dist/_members/composition/fixtures/index.d.ts +0 -1
- package/dist/_members/composition/graphics-plan/index.d.ts +0 -2
- package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
- package/dist/_members/composition/invariants/etag.d.ts +0 -1
- package/dist/_members/composition/invariants/index.d.ts +0 -1
- package/dist/_members/composition/ops/compositionOps.d.ts +0 -1
- package/dist/_members/composition/ops/compositionOps.shared.d.ts +6 -0
- package/dist/_members/composition/ops/index.d.ts +2 -1
- package/dist/_members/composition/primitive-catalog/index.d.ts +2 -3
- package/dist/_members/composition/primitive-catalog/types.d.ts +3 -1
- package/dist/_members/composition/projection/behind-readiness.d.ts +0 -6
- package/dist/_members/composition/timeline/link.d.ts +0 -4
- package/dist/_members/composition/timeline/plan.d.ts +0 -1
- package/dist/_members/composition/validators/brandKit.d.ts +11 -4
- package/dist/_members/composition/validators/brandKitBody.d.ts +543 -0
- package/dist/_members/composition/validators/cardHtml.d.ts +11 -0
- package/dist/_members/composition/validators/composition.d.ts +2 -5
- package/dist/_members/composition/validators/css-tree-subpaths.d.ts +16 -0
- package/dist/_members/composition/validators/index.d.ts +0 -3
- package/dist/_members/composition/validators/session.d.ts +3 -3
- package/dist/_members/composition/validators/webhook.d.ts +4 -4
- package/dist/_members/composition-ops/alphaLayers.d.ts +0 -5
- package/dist/_members/composition-ops/index.d.ts +2 -2
- package/dist/_members/composition-ops/opRecorder.d.ts +23 -3
- package/dist/_members/core/render/exportSettings.d.ts +4 -2
- package/dist/_members/core/render/index.d.ts +1 -1
- package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -1
- package/dist/_members/director/ai-sdk/index.d.ts +0 -1
- package/dist/_members/director/ai-sdk/messages.d.ts +0 -1
- package/dist/_members/director/domain/chat.d.ts +0 -78
- package/dist/_members/director/domain/index.d.ts +0 -1
- package/dist/_members/errors/registry.d.ts +42 -0
- package/dist/_members/foundation/canonical/index.d.ts +14 -0
- package/dist/_members/foundation/index.d.ts +1 -1
- package/dist/_members/foundation/primitives/index.d.ts +0 -2
- package/dist/_members/foundation/testing/index.d.ts +1 -0
- package/dist/_members/foundation/testing/knownRed.d.ts +13 -0
- package/dist/_members/mcp/adapter.d.ts +21 -0
- package/dist/_members/mcp/compositionOps.d.ts +10 -0
- package/dist/_members/mcp/server.d.ts +0 -2
- package/dist/_members/mcp/wait.d.ts +3 -1
- package/dist/_members/media-model/generation.d.ts +0 -25
- package/dist/_members/nle-export/xml-utils.d.ts +0 -8
- package/dist/_members/plane/conformance.d.ts +20 -0
- package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +1 -1
- package/dist/_members/primitives/effects/blur/config.d.ts +1 -1
- package/dist/_members/primitives/effects/color-grade/config.d.ts +2 -2
- package/dist/_members/primitives/effects/grain/config.d.ts +3 -3
- package/dist/_members/primitives/effects/particles/config.d.ts +2 -2
- package/dist/_members/primitives/effects/stage-camera/config.d.ts +6 -6
- package/dist/_members/primitives/effects/vignette/config.d.ts +1 -1
- package/dist/_members/primitives/index.d.ts +1 -11
- package/dist/_members/primitives/layouts/flex-layout/config.d.ts +3 -3
- package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +2 -2
- package/dist/_members/primitives/lib/index.d.ts +1 -1
- package/dist/_members/primitives/lib/tokens.d.ts +0 -16
- package/dist/_members/primitives/lib/types.d.ts +1 -1
- package/dist/_members/primitives/scenes/device-showcase/config.d.ts +7 -7
- package/dist/_members/primitives/text/cinematic-title/config.d.ts +3 -3
- package/dist/_members/primitives/text/karaoke/config.d.ts +1 -1
- package/dist/_members/primitives/text/kinetic-type/config.d.ts +3 -3
- package/dist/_members/primitives/text/stat-counter/config.d.ts +1 -1
- package/dist/_members/primitives/text/text-effect/config.d.ts +2 -2
- package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +3 -3
- package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +2 -2
- package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +2 -2
- package/dist/_members/render-harness/cardAssetAdmission.d.ts +1 -0
- package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
- package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/mediaServer.d.ts +6 -1
- package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
- package/dist/account-model/testing.js +15 -5
- package/dist/account-model/validators.js +5 -7
- package/dist/account-model.js +5 -7
- package/dist/animate/preparation-facts.js +1 -1
- package/dist/animate.js +2 -6
- package/dist/authoring/composer.js +1 -1
- package/dist/authoring/context.js +8 -6
- package/dist/authoring/models/defaults.d.ts +1 -0
- package/dist/authoring/models/defaults.js +7 -0
- package/dist/authoring/models.js +5 -3
- package/dist/authoring/motion.d.ts +1 -0
- package/dist/authoring/motion.js +25 -0
- package/dist/authoring/prompts.js +4 -14
- package/dist/authoring/providers.js +1 -1
- package/dist/authoring/resource-routing.js +2 -2
- package/dist/authoring/resources.js +4 -22
- package/dist/authoring/scene.js +3 -2
- package/dist/authoring.js +662 -218
- package/dist/brand-derivation/constants.js +1 -1
- package/dist/brand-derivation.js +1 -1
- package/dist/{chunk-TKFLSGAS.js → chunk-25JH5QZA.js} +2 -2
- package/dist/{chunk-LBJ5LI5V.js → chunk-2K2GBFLU.js} +17 -8
- package/dist/{chunk-RAXHCRVV.js → chunk-2PAP5LO5.js} +1 -1
- package/dist/{chunk-JPMVNMF3.js → chunk-3HLDIIWA.js} +1 -1
- package/dist/{chunk-PTVTWQ4T.js → chunk-3JEUNKDK.js} +2 -2
- package/dist/chunk-3VWJ3H4X.js +68 -0
- package/dist/{chunk-S5H6GH6M.js → chunk-3Z7CN54H.js} +1 -1
- package/dist/{chunk-FVDFPJHT.js → chunk-46WBCUPE.js} +1 -1
- package/dist/chunk-4VBLQIM5.js +30 -0
- package/dist/{chunk-N2OZDD44.js → chunk-6HA55CRU.js} +4 -5
- package/dist/{chunk-WL2MLKWU.js → chunk-6HPEMDQW.js} +1 -1
- package/dist/chunk-6KZCXAYL.js +257 -0
- package/dist/{chunk-IEXAKOEX.js → chunk-6QGARSV6.js} +2 -15
- package/dist/{chunk-3YVIAWET.js → chunk-7II5OM7R.js} +13 -1
- package/dist/{chunk-VLJOIUHL.js → chunk-7PSQUTL5.js} +3 -3
- package/dist/{chunk-UFD4EZHM.js → chunk-AFUITAH6.js} +4 -5
- package/dist/{chunk-HGCYZMII.js → chunk-AK6QPX7A.js} +9 -9
- package/dist/{chunk-EC6VFQE6.js → chunk-BZVOCVQV.js} +1 -0
- package/dist/{chunk-RBWS5XHE.js → chunk-CAF7BRNE.js} +2 -2
- package/dist/chunk-CEO47DIE.js +199 -0
- package/dist/chunk-CIOUDOGN.js +12 -0
- package/dist/{chunk-BDFAA747.js → chunk-DCKADD5B.js} +1 -1
- package/dist/{chunk-7AZLFN26.js → chunk-EISHFHU5.js} +20 -20
- package/dist/chunk-EQH37KNZ.js +224 -0
- package/dist/{chunk-EXY4JJPH.js → chunk-F6PLDBAK.js} +2 -11
- package/dist/{chunk-DAARYRNT.js → chunk-FKSXKS35.js} +6 -6
- package/dist/{chunk-KBDUEU4W.js → chunk-FZB7UX44.js} +1 -1
- package/dist/chunk-H2ZZXISB.js +24 -0
- package/dist/{chunk-WSMCZRJ2.js → chunk-I2HNC4PQ.js} +1 -1
- package/dist/{chunk-VXGA7LQQ.js → chunk-IUJABAG2.js} +14 -10
- package/dist/{chunk-MZB4ZXYW.js → chunk-IVFMOHAC.js} +1 -9
- package/dist/{chunk-UKDBU7HM.js → chunk-JNBNDHEF.js} +3 -3
- package/dist/{chunk-JWMWVP64.js → chunk-KC4LNZL5.js} +4 -9
- package/dist/{chunk-GCQ7Z7S7.js → chunk-KKATUGRU.js} +3 -9
- package/dist/{chunk-Q5P5UFOP.js → chunk-KLQ53NX3.js} +13 -1
- package/dist/{chunk-UMXES6ED.js → chunk-LVMWPFV4.js} +1 -1
- package/dist/chunk-NECN7TT4.js +367 -0
- package/dist/{chunk-4ZE564YF.js → chunk-NM7NWXGF.js} +0 -146
- package/dist/{chunk-KSRFYFUZ.js → chunk-NY6EI5YW.js} +4 -4
- package/dist/{chunk-4PV3UYJF.js → chunk-ONSGT6UJ.js} +257 -226
- package/dist/{chunk-VZ7TYX6Z.js → chunk-P3EFZDM5.js} +0 -17
- package/dist/{chunk-BEFSJMFF.js → chunk-P6RVYHLT.js} +9 -9
- package/dist/{chunk-TBHSOEYK.js → chunk-PLWDYWK6.js} +4 -34
- package/dist/{chunk-KYRDKK2D.js → chunk-Q6CJ6HCU.js} +1 -6
- package/dist/{chunk-FWSJLHSV.js → chunk-R642352J.js} +1 -1
- package/dist/{chunk-XELS2BGA.js → chunk-R6HTIP3N.js} +1 -3
- package/dist/{chunk-RL5SO653.js → chunk-RQRPSSRT.js} +1 -1
- package/dist/chunk-RR7UBEBV.js +172 -0
- package/dist/{chunk-FHMTAZD4.js → chunk-RWJHZCOR.js} +1 -71
- package/dist/{chunk-73DQTUWY.js → chunk-TIAJMEQ4.js} +2 -22
- package/dist/{chunk-2ESYSVXG.js → chunk-U67V476Y.js} +2 -15
- package/dist/{chunk-N54EGUVM.js → chunk-U7KSOA2L.js} +4 -21
- package/dist/{chunk-K66NLMGX.js → chunk-UGWJC4GA.js} +62 -18
- package/dist/chunk-VBYINB74.js +136 -0
- package/dist/{chunk-W2245F6G.js → chunk-WTQRLFR2.js} +1 -1
- package/dist/{chunk-Z4G3VM3H.js → chunk-X2RTLS6K.js} +2 -23
- package/dist/chunk-XHMKPTHV.js +20 -0
- package/dist/{chunk-R7G2PNEZ.js → chunk-XOT2VWCO.js} +13 -28
- package/dist/{chunk-E63UEO5C.js → chunk-XQGQ5EFS.js} +16 -1
- package/dist/chunk-XR76OZKC.js +21 -0
- package/dist/chunk-ZCEYEIRB.js +179 -0
- package/dist/{chunk-IMIUHG2E.js → chunk-ZPJQ3TQL.js} +1 -3
- package/dist/cloud-import.js +1 -16
- package/dist/component-runtime/browserOptions.js +4 -3
- package/dist/component-runtime/contracts.js +2 -2
- package/dist/component-runtime/identity/browser.js +2 -17
- package/dist/component-runtime/identity.js +5 -7
- package/dist/component-runtime/importPolicy.js +3 -3
- package/dist/component-runtime/mediaResolution.js +1 -1
- package/dist/component-runtime/render.js +8 -7
- package/dist/component-runtime/sourceAdmission.js +3 -3
- package/dist/component-runtime/template/testing.d.ts +1 -0
- package/dist/component-runtime/template/testing.js +383 -0
- package/dist/component-runtime/template.d.ts +1 -0
- package/dist/component-runtime/template.js +251 -0
- package/dist/component-runtime.js +27 -28
- package/dist/compose.js +22 -39
- package/dist/composition/audio.js +4 -8
- package/dist/composition/brand-kit.js +1 -1
- package/dist/composition/brief.js +1 -1
- package/dist/composition/card-html.d.ts +1 -0
- package/dist/composition/card-html.js +15 -0
- package/dist/composition/depth.js +1 -1
- package/dist/composition/floors.js +2 -2
- package/dist/composition/fonts.js +1 -1
- package/dist/composition/graphics-plan.js +4 -44
- package/dist/composition/invariants.js +5 -12
- package/dist/composition/ops.js +7 -5
- package/dist/composition/primitive-catalog.js +4 -6
- package/dist/composition/projection.js +3 -5
- package/dist/composition/reframe/coverage.js +1 -1
- package/dist/composition/reframe/kenBurns.js +1 -1
- package/dist/composition/reframe/shotScale.js +1 -1
- package/dist/composition/reframe/trajectory.js +1 -1
- package/dist/composition/reframe.js +1 -1
- package/dist/composition/scene/budget-policy.js +1 -1
- package/dist/composition/scene.js +1 -1
- package/dist/composition/timeline.js +4 -8
- package/dist/composition/validators/brand-kit-body.d.ts +1 -0
- package/dist/composition/validators/brand-kit-body.js +18 -0
- package/dist/composition/validators/graphic-kinds.js +1 -1
- package/dist/composition/validators.js +16 -69
- package/dist/composition-ops.js +17 -15
- package/dist/composition.js +21 -83
- package/dist/context-7SWSVJ6Z.js +17 -0
- package/dist/core/render.js +13 -9
- package/dist/core/select.js +3 -3
- package/dist/core.js +9 -9
- package/dist/director/ai-sdk.js +7 -11
- package/dist/director/domain.js +9 -17
- package/dist/director.js +9 -21
- package/dist/{dist-LAJ2363K.js → dist-6FO67KVA.js} +1 -1
- package/dist/errors.js +2 -2
- package/dist/foundation/canonical.d.ts +1 -0
- package/dist/foundation/canonical.js +7 -0
- package/dist/foundation/primitives.js +4 -6
- package/dist/foundation/testing.d.ts +1 -0
- package/dist/foundation/testing.js +7 -0
- package/dist/foundation.js +7 -9
- package/dist/{magic-string.es-SDTMJBWP.js → magic-string.es-KVSW34UD.js} +1 -1
- package/dist/mcp/adapter.js +8 -16
- package/dist/mcp/composition-ops.d.ts +1 -0
- package/dist/mcp/composition-ops.js +11 -0
- package/dist/mcp/core.js +2 -2
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/executor.js +1 -1
- package/dist/mcp/scene-shot.js +3 -3
- package/dist/mcp/server.js +6 -30
- package/dist/mcp/wire-schema.js +13 -2
- package/dist/mcp.js +11 -33
- package/dist/media-model/generation.js +6 -8
- package/dist/media-model/media-kind.js +1 -1
- package/dist/media-model/testing.js +2 -2
- package/dist/media-model/transcriptSearch.js +1 -1
- package/dist/media-model.js +6 -8
- package/dist/nle-export/xml.js +1 -1
- package/dist/nle-export.js +2 -2
- package/dist/perception.js +1 -1
- package/dist/plane/conformance.js +8 -4
- package/dist/plane/contract.js +1 -1
- package/dist/plane.js +8 -4
- package/dist/primitives/backgrounds.js +3 -3
- package/dist/primitives/captions.js +5 -5
- package/dist/primitives/effects.js +4 -4
- package/dist/primitives/hero-text.js +4 -4
- package/dist/primitives/layouts.js +4 -4
- package/dist/primitives/lib/easings.js +1 -1
- package/dist/primitives/lib/frameScale.js +1 -1
- package/dist/primitives/lib/index.js +7 -13
- package/dist/primitives/lib/palette.js +2 -2
- package/dist/primitives/lib/preview.js +1 -1
- package/dist/primitives/lib/schema.js +1 -1
- package/dist/primitives/lib/seeded-random.js +1 -1
- package/dist/primitives/lib/text/contrast.js +3 -3
- package/dist/primitives/lib/text/fill.js +1 -1
- package/dist/primitives/lib/text/fitText.js +1 -1
- package/dist/primitives/lib/text/marker.js +1 -1
- package/dist/primitives/lib/text/motion.js +1 -1
- package/dist/primitives/lib/text/recolor.js +1 -1
- package/dist/primitives/lib/text/stage.js +1 -1
- package/dist/primitives/lib/text/typeface.js +1 -1
- package/dist/primitives/lib/tokens.js +4 -11
- package/dist/primitives/lib.js +7 -13
- package/dist/primitives/scenes.js +5 -5
- package/dist/primitives/subject-foreground.js +1 -1
- package/dist/primitives/text.js +4 -4
- package/dist/primitives/transitions.js +3 -3
- package/dist/primitives/ui-blocks.js +5 -5
- package/dist/primitives/workspace.js +1 -1
- package/dist/primitives.js +18 -32
- package/dist/render-harness/cardAssetAdmission.js +4 -4
- package/dist/render-harness/cardFonts.js +3 -3
- package/dist/render-harness/renderInputAssets.js +4 -4
- package/dist/render-harness.js +100 -82
- package/dist/src-XI5MULKD.js +71 -0
- package/package.json +51 -61
- package/dist/_members/account-model/validators/workingComposition.d.ts +0 -11
- package/dist/_members/animate/animations/index.d.ts +0 -9
- package/dist/_members/animate/easing/index.d.ts +0 -3
- package/dist/_members/animate/mobjects/index.d.ts +0 -4
- package/dist/_members/animate/scene/internal.d.ts +0 -29
- package/dist/_members/authoring/prompts/graphics.d.ts +0 -9
- package/dist/_members/cloud-import/cloudConfig.d.ts +0 -2
- package/dist/_members/composition/autozoom/index.d.ts +0 -25
- package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -34
- package/dist/_members/composition/invariants/time.d.ts +0 -14
- package/dist/_members/composition/types/index.d.ts +0 -8
- package/dist/_members/composition/validators/font.d.ts +0 -58
- package/dist/_members/composition/validators/registry.d.ts +0 -79
- package/dist/_members/composition/validators/render.d.ts +0 -2068
- package/dist/_members/director/ai-sdk/chunks.d.ts +0 -14
- package/dist/_members/director/domain/ports.d.ts +0 -32
- package/dist/_members/director/testing/contract.d.ts +0 -52
- package/dist/_members/director/testing/index.d.ts +0 -1
- package/dist/_members/foundation/codes/index.d.ts +0 -10
- package/dist/_members/nle-export/server/index.d.ts +0 -1
- package/dist/_members/nle-export/server/pack-zip.d.ts +0 -6
- package/dist/_members/render-harness/assetRefs.d.ts +0 -26
- package/dist/_members/render-harness/assetRefs.d.ts.map +0 -1
- package/dist/_members/render-harness/remotion-runtime.d.ts +0 -87
- package/dist/authoring/build-tools.d.ts +0 -1
- package/dist/authoring/build-tools.js +0 -27
- package/dist/authoring/capabilities.d.ts +0 -1
- package/dist/authoring/capabilities.js +0 -11
- package/dist/authoring/pipelineTrace.d.ts +0 -1
- package/dist/authoring/pipelineTrace.js +0 -7
- package/dist/authoring/tools.d.ts +0 -1
- package/dist/authoring/tools.js +0 -30
- package/dist/chunk-AXRSCHQX.js +0 -661
- package/dist/chunk-DV7ZFVL4.js +0 -116
- package/dist/chunk-GF52TW4I.js +0 -51
- package/dist/chunk-JOURGVOR.js +0 -27
- package/dist/chunk-LBN5KQC6.js +0 -384
- package/dist/chunk-OSMXQV5V.js +0 -18
- package/dist/chunk-QDBVYZSF.js +0 -128
- package/dist/chunk-RERR5JLM.js +0 -197
- package/dist/chunk-U3JPILZS.js +0 -15
- package/dist/chunk-Y4HPN4BC.js +0 -364
- package/dist/composition/autozoom.d.ts +0 -1
- package/dist/composition/autozoom.js +0 -76
- package/dist/composition/fixtures.d.ts +0 -1
- package/dist/composition/fixtures.js +0 -154
- package/dist/composition/types.d.ts +0 -1
- package/dist/composition/types.js +0 -0
- package/dist/context-6HPUO36M.js +0 -15
- package/dist/director/testing.d.ts +0 -1
- package/dist/director/testing.js +0 -22
- package/dist/foundation/codes.d.ts +0 -1
- package/dist/foundation/codes.js +0 -7
- package/dist/nle-export/server.d.ts +0 -1
- package/dist/nle-export/server.js +0 -25856
- /package/dist/{chunk-FTVZF4GO.js → chunk-S432RE6G.js} +0 -0
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
projectMediaPlaybackSpans,
|
|
4
4
|
sliceTranscriptWords,
|
|
5
5
|
splitIntoSentences
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IUJABAG2.js";
|
|
7
7
|
import {
|
|
8
8
|
createHeadlessStore,
|
|
9
9
|
findClipById,
|
|
10
10
|
findMarkerById,
|
|
11
11
|
findTrackContainingClipId
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2K2GBFLU.js";
|
|
13
13
|
import {
|
|
14
14
|
CaptionLayoutInput,
|
|
15
15
|
CaptionSegment,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
captionLayoutIssues,
|
|
26
26
|
captionSegmentSignature,
|
|
27
27
|
captionVisibilityIssues
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-AFUITAH6.js";
|
|
29
29
|
import {
|
|
30
30
|
ReframeSegment
|
|
31
31
|
} from "./chunk-B7J5UUUV.js";
|
|
@@ -40,6 +40,256 @@ import {
|
|
|
40
40
|
// ../composition-ops/src/index.ts
|
|
41
41
|
import { z } from "zod";
|
|
42
42
|
|
|
43
|
+
// ../composition-ops/src/opRecorder.ts
|
|
44
|
+
var genTrackId = (kind) => `track-${kind}-${crypto.randomUUID().slice(0, 8)}`;
|
|
45
|
+
var NON_DOCUMENT_METHODS = /* @__PURE__ */ new Set([
|
|
46
|
+
"selectClip",
|
|
47
|
+
"setSelection",
|
|
48
|
+
"selectAllClips",
|
|
49
|
+
"selectOverlay",
|
|
50
|
+
"clearOverlaySelection",
|
|
51
|
+
"getState",
|
|
52
|
+
"batch"
|
|
53
|
+
]);
|
|
54
|
+
function wrapWithOpRecorder(base, opts) {
|
|
55
|
+
const { record, getComposition } = opts;
|
|
56
|
+
const captionTarget = {
|
|
57
|
+
getState: () => ({ composition: getComposition() }),
|
|
58
|
+
setCaptionStyle: (style) => base.setCaptionStyle(style),
|
|
59
|
+
setCaptions: (segments, style) => base.setCaptions(segments, style)
|
|
60
|
+
};
|
|
61
|
+
const opTarget = {
|
|
62
|
+
...base,
|
|
63
|
+
getState: () => ({ composition: getComposition() })
|
|
64
|
+
};
|
|
65
|
+
const applyAndRecord = (op) => {
|
|
66
|
+
const before = getComposition();
|
|
67
|
+
applyOp(before, op);
|
|
68
|
+
record(op, before);
|
|
69
|
+
applyOpToStore(opTarget, op);
|
|
70
|
+
};
|
|
71
|
+
const wrapped = {
|
|
72
|
+
addClip: (clip, options) => {
|
|
73
|
+
const before = getComposition();
|
|
74
|
+
const c = clip.kind ? clip : { ...clip, kind: "video" };
|
|
75
|
+
if (options?.newTrack || !before.tracks.some((t) => t.kind === "video")) {
|
|
76
|
+
const newTrackId = options?.newTrackId ?? genTrackId("video");
|
|
77
|
+
record({ type: "clip.add", clip: c, newTrack: true, newTrackId }, before);
|
|
78
|
+
base.addClip(c, { newTrack: true, newTrackId });
|
|
79
|
+
} else {
|
|
80
|
+
record({ type: "clip.add", clip: c }, before);
|
|
81
|
+
base.addClip(c);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
addClipToTrack: (clip, target) => {
|
|
85
|
+
if ("trackId" in target) {
|
|
86
|
+
applyAndRecord({ type: "clip.add", clip, trackId: target.trackId });
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const c = clip.kind ? clip : { ...clip, kind: target.kind };
|
|
90
|
+
const creates = target.newTrack || !getComposition().tracks.some((t) => t.kind === target.kind);
|
|
91
|
+
applyAndRecord(
|
|
92
|
+
creates ? { type: "clip.add", clip: c, newTrack: true, newTrackId: target.newTrackId ?? genTrackId(target.kind) } : { type: "clip.add", clip: c }
|
|
93
|
+
);
|
|
94
|
+
},
|
|
95
|
+
removeClip: (id) => {
|
|
96
|
+
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
97
|
+
base.removeClip(id);
|
|
98
|
+
},
|
|
99
|
+
updateClip: (id, updates) => {
|
|
100
|
+
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
101
|
+
base.updateClip(id, updates);
|
|
102
|
+
},
|
|
103
|
+
removeClipsByMediaId: (mediaId) => {
|
|
104
|
+
record({ type: "removeClipsByMediaId", mediaId }, getComposition());
|
|
105
|
+
base.removeClipsByMediaId(mediaId);
|
|
106
|
+
},
|
|
107
|
+
setClipProperties: (id, props) => {
|
|
108
|
+
const { playbackRate, ...patch } = props;
|
|
109
|
+
if (playbackRate !== void 0) {
|
|
110
|
+
if (opts.onUnjournalable) {
|
|
111
|
+
const preview = createHeadlessStore(getComposition());
|
|
112
|
+
preview.setClipProperties(id, props);
|
|
113
|
+
opts.onUnjournalable("setClipProperties.playbackRate", preview.getState().composition);
|
|
114
|
+
return base.setClipProperties(id, props);
|
|
115
|
+
}
|
|
116
|
+
throw new Error(
|
|
117
|
+
"opRecorder.setClipProperties: playbackRate is not serializable as a clip.update op (source.playbackRate triggers a cross-field ripple). Use the server-authoritative ripple path."
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
record({ type: "clip.update", clipId: id, patch }, getComposition());
|
|
121
|
+
return base.setClipProperties(id, props);
|
|
122
|
+
},
|
|
123
|
+
addOverlay: (clip) => {
|
|
124
|
+
const before = getComposition();
|
|
125
|
+
const track = before.tracks.find((t) => t.kind === "overlay");
|
|
126
|
+
let trackId = track?.id;
|
|
127
|
+
if (!trackId) {
|
|
128
|
+
trackId = genTrackId("overlay");
|
|
129
|
+
record({ type: "addTrack", kind: "overlay", id: trackId }, before);
|
|
130
|
+
base.addTrack("overlay", void 0, trackId);
|
|
131
|
+
}
|
|
132
|
+
record({ type: "clip.add", clip, trackId }, getComposition());
|
|
133
|
+
base.addOverlay(clip);
|
|
134
|
+
},
|
|
135
|
+
removeOverlay: (id) => {
|
|
136
|
+
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
137
|
+
base.removeOverlay(id);
|
|
138
|
+
},
|
|
139
|
+
updateOverlay: (id, updates) => {
|
|
140
|
+
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
141
|
+
base.updateOverlay(id, updates);
|
|
142
|
+
},
|
|
143
|
+
loadOverlays: (clips) => {
|
|
144
|
+
record({ type: "loadOverlays", clips }, getComposition());
|
|
145
|
+
base.loadOverlays(clips);
|
|
146
|
+
},
|
|
147
|
+
addAudioClip: (clip) => {
|
|
148
|
+
const before = getComposition();
|
|
149
|
+
const track = before.tracks.find((t) => t.kind === "audio");
|
|
150
|
+
let trackId = track?.id;
|
|
151
|
+
if (!trackId) {
|
|
152
|
+
trackId = genTrackId("audio");
|
|
153
|
+
record({ type: "addTrack", kind: "audio", id: trackId }, before);
|
|
154
|
+
base.addTrack("audio", void 0, trackId);
|
|
155
|
+
}
|
|
156
|
+
record({ type: "clip.add", clip, trackId }, getComposition());
|
|
157
|
+
base.addAudioClip(clip);
|
|
158
|
+
},
|
|
159
|
+
removeAudioClip: (id) => {
|
|
160
|
+
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
161
|
+
base.removeAudioClip(id);
|
|
162
|
+
},
|
|
163
|
+
updateAudioClip: (id, updates) => {
|
|
164
|
+
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
165
|
+
base.updateAudioClip(id, updates);
|
|
166
|
+
},
|
|
167
|
+
addMarker: (marker) => {
|
|
168
|
+
record({ type: "addMarker", marker }, getComposition());
|
|
169
|
+
base.addMarker(marker);
|
|
170
|
+
},
|
|
171
|
+
removeMarker: (id) => {
|
|
172
|
+
record({ type: "removeMarker", markerId: id }, getComposition());
|
|
173
|
+
base.removeMarker(id);
|
|
174
|
+
},
|
|
175
|
+
updateMarker: (id, updates) => {
|
|
176
|
+
record({ type: "updateMarker", markerId: id, updates }, getComposition());
|
|
177
|
+
base.updateMarker(id, updates);
|
|
178
|
+
},
|
|
179
|
+
setCropIntents: (clipId, segments) => {
|
|
180
|
+
record({ type: "setCropIntents", clipId, segments }, getComposition());
|
|
181
|
+
base.setCropIntents(clipId, segments);
|
|
182
|
+
},
|
|
183
|
+
setEffects: (clipId, effects) => {
|
|
184
|
+
record({ type: "setEffects", clipId, effects }, getComposition());
|
|
185
|
+
base.setEffects(clipId, effects);
|
|
186
|
+
},
|
|
187
|
+
// The two caption writes go through the same function `applyOpToStore` uses, so the op this
|
|
188
|
+
// journals is exactly the op a replay applies. Calling the store's setter directly left this
|
|
189
|
+
// lane — Studio's composition store and the in-app agent capability are built on it — able to
|
|
190
|
+
// write a face the op gate refuses and to journal an op `applyOp` would refuse on replay.
|
|
191
|
+
// The op is applied FIRST: a refusal must leave nothing in the journal.
|
|
192
|
+
setCaptionStyle: (style) => {
|
|
193
|
+
const before = getComposition();
|
|
194
|
+
const op = { type: "setCaptionStyle", style };
|
|
195
|
+
applyOp(before, op);
|
|
196
|
+
record(op, before);
|
|
197
|
+
applyCaptionOpToStore(captionTarget, op);
|
|
198
|
+
},
|
|
199
|
+
setCaptions: (segments, style) => {
|
|
200
|
+
const before = getComposition();
|
|
201
|
+
const op = {
|
|
202
|
+
type: "setCaptions",
|
|
203
|
+
segments,
|
|
204
|
+
...style !== void 0 ? { style } : {}
|
|
205
|
+
};
|
|
206
|
+
applyOp(before, op);
|
|
207
|
+
record(op, before);
|
|
208
|
+
applyCaptionOpToStore(captionTarget, op);
|
|
209
|
+
},
|
|
210
|
+
setCaptionLayouts: (layouts) => {
|
|
211
|
+
applyAndRecord({
|
|
212
|
+
type: "setCaptionLayouts",
|
|
213
|
+
layouts: layouts.map(({ wordSignature: _signature, ...layout }) => layout)
|
|
214
|
+
});
|
|
215
|
+
},
|
|
216
|
+
setCaptionDepth: (zPlane) => {
|
|
217
|
+
applyAndRecord({ type: "setCaptionDepth", zPlane });
|
|
218
|
+
},
|
|
219
|
+
setFormat: (format) => {
|
|
220
|
+
record({ type: "setFormat", format }, getComposition());
|
|
221
|
+
base.setFormat(format);
|
|
222
|
+
},
|
|
223
|
+
addTrack: (kind, name, id) => {
|
|
224
|
+
const useId = id ?? genTrackId(kind);
|
|
225
|
+
record({ type: "addTrack", kind, ...name !== void 0 ? { name } : {}, id: useId }, getComposition());
|
|
226
|
+
base.addTrack(kind, name, useId);
|
|
227
|
+
},
|
|
228
|
+
removeTrack: (trackId) => {
|
|
229
|
+
record({ type: "removeTrack", trackId }, getComposition());
|
|
230
|
+
base.removeTrack(trackId);
|
|
231
|
+
},
|
|
232
|
+
updateTrack: (trackId, updates) => {
|
|
233
|
+
record({ type: "updateTrack", trackId, updates }, getComposition());
|
|
234
|
+
base.updateTrack(trackId, updates);
|
|
235
|
+
},
|
|
236
|
+
reorderTracks: (fromIndex, toIndex) => {
|
|
237
|
+
record({ type: "reorderTracks", fromIndex, toIndex }, getComposition());
|
|
238
|
+
base.reorderTracks(fromIndex, toIndex);
|
|
239
|
+
},
|
|
240
|
+
moveClipToTrack: (clipId, targetTrackId, newStartTime) => {
|
|
241
|
+
record(
|
|
242
|
+
{
|
|
243
|
+
type: "moveClipToTrack",
|
|
244
|
+
clipId,
|
|
245
|
+
targetTrackId,
|
|
246
|
+
...newStartTime !== void 0 ? { newStartTime } : {}
|
|
247
|
+
},
|
|
248
|
+
getComposition()
|
|
249
|
+
);
|
|
250
|
+
base.moveClipToTrack(clipId, targetTrackId, newStartTime);
|
|
251
|
+
},
|
|
252
|
+
duplicateClip: (id) => {
|
|
253
|
+
if (createHeadlessStore(getComposition()).duplicateClip(id) === void 0) return void 0;
|
|
254
|
+
const newClipId = `${id}-dup-${crypto.randomUUID().slice(0, 8)}`;
|
|
255
|
+
applyAndRecord({ type: "duplicateClip", clipId: id, newClipId });
|
|
256
|
+
return newClipId;
|
|
257
|
+
},
|
|
258
|
+
cutAndRipple: (start, end) => {
|
|
259
|
+
record({ type: "cutAndRipple", start, end }, getComposition());
|
|
260
|
+
base.cutAndRipple(start, end);
|
|
261
|
+
},
|
|
262
|
+
ripple: (time, amount) => {
|
|
263
|
+
record({ type: "ripple", time, amount }, getComposition());
|
|
264
|
+
base.ripple(time, amount);
|
|
265
|
+
},
|
|
266
|
+
addExcludedRange: (clipId, sourceStart, sourceEnd, reason) => {
|
|
267
|
+
record(
|
|
268
|
+
{
|
|
269
|
+
type: "addExcludedRange",
|
|
270
|
+
clipId,
|
|
271
|
+
sourceStart,
|
|
272
|
+
sourceEnd,
|
|
273
|
+
...reason !== void 0 ? { reason } : {}
|
|
274
|
+
},
|
|
275
|
+
getComposition()
|
|
276
|
+
);
|
|
277
|
+
base.addExcludedRange(clipId, sourceStart, sourceEnd, reason);
|
|
278
|
+
},
|
|
279
|
+
removeExcludedRange: (clipId, rangeIdx) => {
|
|
280
|
+
record({ type: "removeExcludedRange", clipId, rangeIdx }, getComposition());
|
|
281
|
+
base.removeExcludedRange(clipId, rangeIdx);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
for (const [name, member] of Object.entries(base)) {
|
|
285
|
+
if (typeof member !== "function" || name in wrapped || NON_DOCUMENT_METHODS.has(name)) continue;
|
|
286
|
+
throw new Error(
|
|
287
|
+
`wrapWithOpRecorder: '${name}' is neither journaled nor a non-document method. Journal it here, or add it to NON_DOCUMENT_METHODS if it changes no document state.`
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
return { ...base, ...wrapped };
|
|
291
|
+
}
|
|
292
|
+
|
|
43
293
|
// ../composition-ops/src/recordingStore.ts
|
|
44
294
|
function createRecordingStore(initial) {
|
|
45
295
|
const base = createHeadlessStore(initial);
|
|
@@ -378,28 +628,6 @@ function collectRawComponentClips(composition) {
|
|
|
378
628
|
}
|
|
379
629
|
return out;
|
|
380
630
|
}
|
|
381
|
-
function collectUnbakedComponentClips(composition) {
|
|
382
|
-
const tracks = composition?.tracks;
|
|
383
|
-
if (!Array.isArray(tracks)) return [];
|
|
384
|
-
const out = [];
|
|
385
|
-
for (const track of tracks) {
|
|
386
|
-
const contents = track?.contents;
|
|
387
|
-
if (!Array.isArray(contents)) continue;
|
|
388
|
-
for (const c of contents) {
|
|
389
|
-
const src = c?.source;
|
|
390
|
-
if (!src || typeof src !== "object") continue;
|
|
391
|
-
if (src.kind !== "overlay") continue;
|
|
392
|
-
if (src.primitiveId !== "custom") continue;
|
|
393
|
-
const params = src.params;
|
|
394
|
-
const componentId = params && typeof params === "object" ? params.componentId : void 0;
|
|
395
|
-
const clipId = c.id;
|
|
396
|
-
if (typeof componentId !== "string" || componentId.length === 0) continue;
|
|
397
|
-
if (typeof clipId !== "string" || clipId.length === 0) continue;
|
|
398
|
-
out.push({ clipId, componentId });
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
return out;
|
|
402
|
-
}
|
|
403
631
|
|
|
404
632
|
// ../composition-ops/src/index.ts
|
|
405
633
|
var SceneAssetBindings = z.record(z.string().min(1), z.string().min(1));
|
|
@@ -726,6 +954,9 @@ function applyOpToStore(store, op) {
|
|
|
726
954
|
store.moveClipToTrack(op.clipId, op.targetTrackId, op.newStartTime);
|
|
727
955
|
break;
|
|
728
956
|
case "duplicateClip": {
|
|
957
|
+
if (op.newClipId !== void 0 && findClipById(composition, op.newClipId)) {
|
|
958
|
+
throw new Error(`duplicateClip: clip '${op.newClipId}' already exists`);
|
|
959
|
+
}
|
|
729
960
|
const minted = store.duplicateClip(op.clipId);
|
|
730
961
|
if (op.newClipId !== void 0 && minted !== void 0 && minted !== op.newClipId) {
|
|
731
962
|
store.updateClip(minted, { id: op.newClipId });
|
|
@@ -892,207 +1123,8 @@ function invertOp(before, op) {
|
|
|
892
1123
|
}
|
|
893
1124
|
}
|
|
894
1125
|
|
|
895
|
-
// ../composition-ops/src/opRecorder.ts
|
|
896
|
-
var genTrackId = (kind) => `track-${kind}-${crypto.randomUUID().slice(0, 8)}`;
|
|
897
|
-
function wrapWithOpRecorder(base, opts) {
|
|
898
|
-
const { record, getComposition } = opts;
|
|
899
|
-
const captionTarget = {
|
|
900
|
-
getState: () => ({ composition: getComposition() }),
|
|
901
|
-
setCaptionStyle: (style) => base.setCaptionStyle(style),
|
|
902
|
-
setCaptions: (segments, style) => base.setCaptions(segments, style)
|
|
903
|
-
};
|
|
904
|
-
const wrapped = {
|
|
905
|
-
addClip: (clip, options) => {
|
|
906
|
-
const before = getComposition();
|
|
907
|
-
const c = clip.kind ? clip : { ...clip, kind: "video" };
|
|
908
|
-
if (options?.newTrack) {
|
|
909
|
-
const newTrackId = options.newTrackId ?? genTrackId("video");
|
|
910
|
-
record({ type: "clip.add", clip: c, newTrack: true, newTrackId }, before);
|
|
911
|
-
base.addClip(c, { newTrack: true, newTrackId });
|
|
912
|
-
} else {
|
|
913
|
-
record({ type: "clip.add", clip: c }, before);
|
|
914
|
-
base.addClip(c);
|
|
915
|
-
}
|
|
916
|
-
},
|
|
917
|
-
removeClip: (id) => {
|
|
918
|
-
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
919
|
-
base.removeClip(id);
|
|
920
|
-
},
|
|
921
|
-
updateClip: (id, updates) => {
|
|
922
|
-
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
923
|
-
base.updateClip(id, updates);
|
|
924
|
-
},
|
|
925
|
-
removeClipsByMediaId: (mediaId) => {
|
|
926
|
-
record({ type: "removeClipsByMediaId", mediaId }, getComposition());
|
|
927
|
-
base.removeClipsByMediaId(mediaId);
|
|
928
|
-
},
|
|
929
|
-
setClipProperties: (id, props) => {
|
|
930
|
-
const { playbackRate, ...patch } = props;
|
|
931
|
-
if (playbackRate !== void 0) {
|
|
932
|
-
if (opts.onUnjournalable) {
|
|
933
|
-
const result = base.setClipProperties(id, props);
|
|
934
|
-
opts.onUnjournalable("setClipProperties.playbackRate");
|
|
935
|
-
return result;
|
|
936
|
-
}
|
|
937
|
-
throw new Error(
|
|
938
|
-
"opRecorder.setClipProperties: playbackRate is not serializable as a clip.update op (source.playbackRate triggers a cross-field ripple). Use the server-authoritative ripple path."
|
|
939
|
-
);
|
|
940
|
-
}
|
|
941
|
-
record({ type: "clip.update", clipId: id, patch }, getComposition());
|
|
942
|
-
return base.setClipProperties(id, props);
|
|
943
|
-
},
|
|
944
|
-
addOverlay: (clip) => {
|
|
945
|
-
const before = getComposition();
|
|
946
|
-
const track = before.tracks.find((t) => t.kind === "overlay");
|
|
947
|
-
let trackId = track?.id;
|
|
948
|
-
if (!trackId) {
|
|
949
|
-
trackId = genTrackId("overlay");
|
|
950
|
-
record({ type: "addTrack", kind: "overlay", id: trackId }, before);
|
|
951
|
-
base.addTrack("overlay", void 0, trackId);
|
|
952
|
-
}
|
|
953
|
-
record({ type: "clip.add", clip, trackId }, getComposition());
|
|
954
|
-
base.addOverlay(clip);
|
|
955
|
-
},
|
|
956
|
-
removeOverlay: (id) => {
|
|
957
|
-
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
958
|
-
base.removeOverlay(id);
|
|
959
|
-
},
|
|
960
|
-
updateOverlay: (id, updates) => {
|
|
961
|
-
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
962
|
-
base.updateOverlay(id, updates);
|
|
963
|
-
},
|
|
964
|
-
loadOverlays: (clips) => {
|
|
965
|
-
record({ type: "loadOverlays", clips }, getComposition());
|
|
966
|
-
base.loadOverlays(clips);
|
|
967
|
-
},
|
|
968
|
-
addAudioClip: (clip) => {
|
|
969
|
-
const before = getComposition();
|
|
970
|
-
const track = before.tracks.find((t) => t.kind === "audio");
|
|
971
|
-
let trackId = track?.id;
|
|
972
|
-
if (!trackId) {
|
|
973
|
-
trackId = genTrackId("audio");
|
|
974
|
-
record({ type: "addTrack", kind: "audio", id: trackId }, before);
|
|
975
|
-
base.addTrack("audio", void 0, trackId);
|
|
976
|
-
}
|
|
977
|
-
record({ type: "clip.add", clip, trackId }, getComposition());
|
|
978
|
-
base.addAudioClip(clip);
|
|
979
|
-
},
|
|
980
|
-
removeAudioClip: (id) => {
|
|
981
|
-
record({ type: "clip.remove", clipId: id }, getComposition());
|
|
982
|
-
base.removeAudioClip(id);
|
|
983
|
-
},
|
|
984
|
-
updateAudioClip: (id, updates) => {
|
|
985
|
-
record({ type: "clip.update", clipId: id, patch: updates }, getComposition());
|
|
986
|
-
base.updateAudioClip(id, updates);
|
|
987
|
-
},
|
|
988
|
-
addMarker: (marker) => {
|
|
989
|
-
record({ type: "addMarker", marker }, getComposition());
|
|
990
|
-
base.addMarker(marker);
|
|
991
|
-
},
|
|
992
|
-
removeMarker: (id) => {
|
|
993
|
-
record({ type: "removeMarker", markerId: id }, getComposition());
|
|
994
|
-
base.removeMarker(id);
|
|
995
|
-
},
|
|
996
|
-
updateMarker: (id, updates) => {
|
|
997
|
-
record({ type: "updateMarker", markerId: id, updates }, getComposition());
|
|
998
|
-
base.updateMarker(id, updates);
|
|
999
|
-
},
|
|
1000
|
-
setCropIntents: (clipId, segments) => {
|
|
1001
|
-
record({ type: "setCropIntents", clipId, segments }, getComposition());
|
|
1002
|
-
base.setCropIntents(clipId, segments);
|
|
1003
|
-
},
|
|
1004
|
-
setEffects: (clipId, effects) => {
|
|
1005
|
-
record({ type: "setEffects", clipId, effects }, getComposition());
|
|
1006
|
-
base.setEffects(clipId, effects);
|
|
1007
|
-
},
|
|
1008
|
-
// The two caption writes go through the same function `applyOpToStore` uses, so the op this
|
|
1009
|
-
// journals is exactly the op a replay applies. Calling the store's setter directly left this
|
|
1010
|
-
// lane — Studio's composition store and the in-app agent capability are built on it — able to
|
|
1011
|
-
// write a face the op gate refuses and to journal an op `applyOp` would refuse on replay.
|
|
1012
|
-
// The op is applied FIRST: a refusal must leave nothing in the journal.
|
|
1013
|
-
setCaptionStyle: (style) => {
|
|
1014
|
-
const before = getComposition();
|
|
1015
|
-
const op = { type: "setCaptionStyle", style };
|
|
1016
|
-
applyCaptionOpToStore(captionTarget, op);
|
|
1017
|
-
record(op, before);
|
|
1018
|
-
},
|
|
1019
|
-
setCaptions: (segments, style) => {
|
|
1020
|
-
const before = getComposition();
|
|
1021
|
-
const op = {
|
|
1022
|
-
type: "setCaptions",
|
|
1023
|
-
segments,
|
|
1024
|
-
...style !== void 0 ? { style } : {}
|
|
1025
|
-
};
|
|
1026
|
-
applyCaptionOpToStore(captionTarget, op);
|
|
1027
|
-
record(op, before);
|
|
1028
|
-
},
|
|
1029
|
-
setFormat: (format) => {
|
|
1030
|
-
record({ type: "setFormat", format }, getComposition());
|
|
1031
|
-
base.setFormat(format);
|
|
1032
|
-
},
|
|
1033
|
-
addTrack: (kind, name, id) => {
|
|
1034
|
-
const useId = id ?? genTrackId(kind);
|
|
1035
|
-
record({ type: "addTrack", kind, ...name !== void 0 ? { name } : {}, id: useId }, getComposition());
|
|
1036
|
-
base.addTrack(kind, name, useId);
|
|
1037
|
-
},
|
|
1038
|
-
removeTrack: (trackId) => {
|
|
1039
|
-
record({ type: "removeTrack", trackId }, getComposition());
|
|
1040
|
-
base.removeTrack(trackId);
|
|
1041
|
-
},
|
|
1042
|
-
updateTrack: (trackId, updates) => {
|
|
1043
|
-
record({ type: "updateTrack", trackId, updates }, getComposition());
|
|
1044
|
-
base.updateTrack(trackId, updates);
|
|
1045
|
-
},
|
|
1046
|
-
reorderTracks: (fromIndex, toIndex) => {
|
|
1047
|
-
record({ type: "reorderTracks", fromIndex, toIndex }, getComposition());
|
|
1048
|
-
base.reorderTracks(fromIndex, toIndex);
|
|
1049
|
-
},
|
|
1050
|
-
moveClipToTrack: (clipId, targetTrackId, newStartTime) => {
|
|
1051
|
-
record(
|
|
1052
|
-
{
|
|
1053
|
-
type: "moveClipToTrack",
|
|
1054
|
-
clipId,
|
|
1055
|
-
targetTrackId,
|
|
1056
|
-
...newStartTime !== void 0 ? { newStartTime } : {}
|
|
1057
|
-
},
|
|
1058
|
-
getComposition()
|
|
1059
|
-
);
|
|
1060
|
-
base.moveClipToTrack(clipId, targetTrackId, newStartTime);
|
|
1061
|
-
},
|
|
1062
|
-
duplicateClip: (id) => {
|
|
1063
|
-
record({ type: "duplicateClip", clipId: id }, getComposition());
|
|
1064
|
-
return base.duplicateClip(id);
|
|
1065
|
-
},
|
|
1066
|
-
cutAndRipple: (start, end) => {
|
|
1067
|
-
record({ type: "cutAndRipple", start, end }, getComposition());
|
|
1068
|
-
base.cutAndRipple(start, end);
|
|
1069
|
-
},
|
|
1070
|
-
ripple: (time, amount) => {
|
|
1071
|
-
record({ type: "ripple", time, amount }, getComposition());
|
|
1072
|
-
base.ripple(time, amount);
|
|
1073
|
-
},
|
|
1074
|
-
addExcludedRange: (clipId, sourceStart, sourceEnd, reason) => {
|
|
1075
|
-
record(
|
|
1076
|
-
{
|
|
1077
|
-
type: "addExcludedRange",
|
|
1078
|
-
clipId,
|
|
1079
|
-
sourceStart,
|
|
1080
|
-
sourceEnd,
|
|
1081
|
-
...reason !== void 0 ? { reason } : {}
|
|
1082
|
-
},
|
|
1083
|
-
getComposition()
|
|
1084
|
-
);
|
|
1085
|
-
base.addExcludedRange(clipId, sourceStart, sourceEnd, reason);
|
|
1086
|
-
},
|
|
1087
|
-
removeExcludedRange: (clipId, rangeIdx) => {
|
|
1088
|
-
record({ type: "removeExcludedRange", clipId, rangeIdx }, getComposition());
|
|
1089
|
-
base.removeExcludedRange(clipId, rangeIdx);
|
|
1090
|
-
}
|
|
1091
|
-
};
|
|
1092
|
-
return { ...base, ...wrapped };
|
|
1093
|
-
}
|
|
1094
|
-
|
|
1095
1126
|
export {
|
|
1127
|
+
NON_DOCUMENT_METHODS,
|
|
1096
1128
|
wrapWithOpRecorder,
|
|
1097
1129
|
createRecordingStore,
|
|
1098
1130
|
CaptionMaterializationError,
|
|
@@ -1106,7 +1138,6 @@ export {
|
|
|
1106
1138
|
replaceRegion,
|
|
1107
1139
|
collectAlphaLayerClips,
|
|
1108
1140
|
collectRawComponentClips,
|
|
1109
|
-
collectUnbakedComponentClips,
|
|
1110
1141
|
mediaFamily,
|
|
1111
1142
|
resolveClipKind,
|
|
1112
1143
|
CompositionOp,
|
|
@@ -37,7 +37,6 @@ var AMBIENCE_BED = {
|
|
|
37
37
|
};
|
|
38
38
|
var SFX_TRACK_ID = "track-audio-sfx";
|
|
39
39
|
var MUSIC_TRACK_ID = "track-audio-music";
|
|
40
|
-
var AMBIENCE_TRACK_ID = "track-audio-ambience";
|
|
41
40
|
|
|
42
41
|
// ../composition/src/audio/mixStaging.ts
|
|
43
42
|
var ROLE_DEFAULT_GAIN_DB = {
|
|
@@ -78,20 +77,6 @@ function effectiveClipGainDb(source, voPresent) {
|
|
|
78
77
|
if (source.audioRole !== void 0) return roleDefaultGainDb(source.audioRole, voPresent);
|
|
79
78
|
return void 0;
|
|
80
79
|
}
|
|
81
|
-
function sfxTransients(composition) {
|
|
82
|
-
const out = [];
|
|
83
|
-
for (const track of composition.tracks) {
|
|
84
|
-
if (track.enabled === false) continue;
|
|
85
|
-
for (const c of track.contents) {
|
|
86
|
-
if (!("source" in c)) continue;
|
|
87
|
-
const src = c.source;
|
|
88
|
-
if (src.kind === "media" && src.audioRole === "sfx") {
|
|
89
|
-
out.push({ clipId: c.id, startMs: Math.round(c.startTime * 1e3) });
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return out.sort((a, b) => a.startMs - b.startMs);
|
|
94
|
-
}
|
|
95
80
|
function detectNoAudioTrack(composition) {
|
|
96
81
|
if ((composition.markers ?? []).some((m) => m.kind === "intentional-silence")) return [];
|
|
97
82
|
for (const track of composition.tracks) {
|
|
@@ -415,13 +400,11 @@ export {
|
|
|
415
400
|
AMBIENCE_BED,
|
|
416
401
|
SFX_TRACK_ID,
|
|
417
402
|
MUSIC_TRACK_ID,
|
|
418
|
-
AMBIENCE_TRACK_ID,
|
|
419
403
|
ROLE_DEFAULT_GAIN_DB,
|
|
420
404
|
ROLE_HIERARCHY,
|
|
421
405
|
roleDefaultGainDb,
|
|
422
406
|
compositionHasVo,
|
|
423
407
|
effectiveClipGainDb,
|
|
424
|
-
sfxTransients,
|
|
425
408
|
detectNoAudioTrack,
|
|
426
409
|
detectMixHierarchyInversion,
|
|
427
410
|
sfxPackR2Key,
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
assertSceneShotParamsAdmitted,
|
|
4
4
|
materializeComponentSource,
|
|
5
5
|
renderComponentAlpha
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AK6QPX7A.js";
|
|
7
|
+
import {
|
|
8
|
+
assertSourceReadsDeclaredAssets
|
|
9
|
+
} from "./chunk-6HPEMDQW.js";
|
|
10
|
+
import {
|
|
11
|
+
resolvedComponentRenderer
|
|
12
|
+
} from "./chunk-KC4LNZL5.js";
|
|
7
13
|
import {
|
|
8
14
|
componentArtifactId,
|
|
9
15
|
componentBundleId,
|
|
10
16
|
componentRenderKey,
|
|
11
17
|
sha256Hex,
|
|
12
18
|
sourceVersionId
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import {
|
|
15
|
-
assertSourceReadsDeclaredAssets
|
|
16
|
-
} from "./chunk-WL2MLKWU.js";
|
|
17
|
-
import {
|
|
18
|
-
resolvedComponentRenderer
|
|
19
|
-
} from "./chunk-JWMWVP64.js";
|
|
19
|
+
} from "./chunk-F6PLDBAK.js";
|
|
20
20
|
import {
|
|
21
21
|
ComponentBakeJobV2,
|
|
22
22
|
ComponentBakeRequestV2,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
ComponentRuntimeError,
|
|
26
26
|
assertGraphicsReceiptMatches,
|
|
27
27
|
assertRendererReceiptMatches
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-BZVOCVQV.js";
|
|
29
29
|
|
|
30
30
|
// ../execution/component-runtime/src/assetServer.ts
|
|
31
31
|
import { createHash, randomBytes } from "crypto";
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
canonicalJson
|
|
3
|
+
} from "./chunk-XHMKPTHV.js";
|
|
1
4
|
import {
|
|
2
5
|
checkTracks
|
|
3
6
|
} from "./chunk-T56BK7NS.js";
|
|
@@ -5,23 +8,8 @@ import {
|
|
|
5
8
|
// ../composition/src/invariants/etag.ts
|
|
6
9
|
import { sha256 } from "@noble/hashes/sha256";
|
|
7
10
|
import { bytesToHex } from "@noble/hashes/utils";
|
|
8
|
-
function canonicalJSON(value) {
|
|
9
|
-
return JSON.stringify(canonicalize(value));
|
|
10
|
-
}
|
|
11
|
-
function canonicalize(value) {
|
|
12
|
-
if (value === null || typeof value !== "object") return value;
|
|
13
|
-
if (Array.isArray(value)) return value.map(canonicalize);
|
|
14
|
-
const out = {};
|
|
15
|
-
const keys = Object.keys(value).sort();
|
|
16
|
-
for (const key of keys) {
|
|
17
|
-
const v = value[key];
|
|
18
|
-
if (v === void 0) continue;
|
|
19
|
-
out[key] = canonicalize(v);
|
|
20
|
-
}
|
|
21
|
-
return out;
|
|
22
|
-
}
|
|
23
11
|
function etag(composition) {
|
|
24
|
-
const canonical =
|
|
12
|
+
const canonical = canonicalJson(composition);
|
|
25
13
|
const hash = bytesToHex(sha256(new TextEncoder().encode(canonical)));
|
|
26
14
|
return `"${hash}"`;
|
|
27
15
|
}
|
|
@@ -138,20 +126,6 @@ function compositionDuration(composition) {
|
|
|
138
126
|
return max;
|
|
139
127
|
}
|
|
140
128
|
|
|
141
|
-
// ../composition/src/invariants/time.ts
|
|
142
|
-
function otioFrames(seconds, fps) {
|
|
143
|
-
return Math.round(seconds * fps);
|
|
144
|
-
}
|
|
145
|
-
function otioRationalTime(seconds, fps) {
|
|
146
|
-
return { value: Math.round(seconds * fps), rate: fps };
|
|
147
|
-
}
|
|
148
|
-
function sourceFrame(params) {
|
|
149
|
-
const { outputFrame, formatFps, clipStartTime, trimStart, playbackRate, sourceFps } = params;
|
|
150
|
-
const outSeconds = outputFrame / formatFps;
|
|
151
|
-
const sourceSeconds = trimStart + (outSeconds - clipStartTime) * playbackRate;
|
|
152
|
-
return Math.round(sourceSeconds * sourceFps);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
129
|
// ../composition/src/invariants/clipPlacement.ts
|
|
156
130
|
var AUDIO_TRACK_KINDS = /* @__PURE__ */ new Set(["audio"]);
|
|
157
131
|
var VISUAL_TRACK_KINDS = /* @__PURE__ */ new Set(["video", "image"]);
|
|
@@ -196,7 +170,6 @@ function collectClipPlacementIssues(composition, mediaKindById) {
|
|
|
196
170
|
}
|
|
197
171
|
|
|
198
172
|
export {
|
|
199
|
-
canonicalJSON,
|
|
200
173
|
etag,
|
|
201
174
|
checkSceneMarkerPartition,
|
|
202
175
|
checkIdCollisions,
|
|
@@ -204,8 +177,5 @@ export {
|
|
|
204
177
|
checkKeyframes,
|
|
205
178
|
checkComposition,
|
|
206
179
|
compositionDuration,
|
|
207
|
-
otioFrames,
|
|
208
|
-
otioRationalTime,
|
|
209
|
-
sourceFrame,
|
|
210
180
|
collectClipPlacementIssues
|
|
211
181
|
};
|
|
@@ -34,14 +34,9 @@ function expandToLinkGroup(composition, entities) {
|
|
|
34
34
|
function linkPartners(composition, clipId) {
|
|
35
35
|
return expandClipIdsToLinkGroups(composition, [clipId]).filter((id) => id !== clipId);
|
|
36
36
|
}
|
|
37
|
-
function makeLinkGroup(clipIds, newGroupId) {
|
|
38
|
-
if (clipIds.length < 2) return null;
|
|
39
|
-
return { linkGroupId: newGroupId(), clipIds };
|
|
40
|
-
}
|
|
41
37
|
|
|
42
38
|
export {
|
|
43
39
|
expandClipIdsToLinkGroups,
|
|
44
40
|
expandToLinkGroup,
|
|
45
|
-
linkPartners
|
|
46
|
-
makeLinkGroup
|
|
41
|
+
linkPartners
|
|
47
42
|
};
|