@cueframe/kernel 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_members/animate/index.d.ts +8 -2
- package/dist/_members/animate/layout/FlexLayout.d.ts +69 -0
- package/dist/_members/animate/layout/fit.d.ts +44 -0
- package/dist/_members/animate/layout/index.d.ts +3 -0
- package/dist/_members/animate/layout/solveFlex.d.ts +70 -0
- package/dist/_members/animate/media/MediaTileScene.d.ts +65 -0
- package/dist/_members/animate/media/recipes.d.ts +61 -0
- package/dist/_members/animate/scene/FocusPass.d.ts +76 -0
- package/dist/_members/animate/scene/UnlitPlane.d.ts +45 -0
- package/dist/_members/animate/scene/__oracle__/cssProjection.d.ts +24 -0
- package/dist/_members/animate/scene/assets.d.ts +21 -0
- package/dist/_members/animate/scene/backdrop.d.ts +7 -0
- package/dist/_members/animate/scene/coordinates.d.ts +58 -0
- package/dist/_members/animate/scene/deviceOpacity.d.ts +18 -0
- package/dist/_members/animate/scene/errors.d.ts +14 -0
- package/dist/_members/animate/scene/finishing.d.ts +69 -0
- package/dist/_members/animate/scene/finishingMath.d.ts +60 -0
- package/dist/_members/animate/scene/finishingPass.d.ts +35 -0
- package/dist/_members/animate/scene/focusBlur.d.ts +56 -0
- package/dist/_members/animate/scene/focusResources.d.ts +190 -0
- package/dist/_members/animate/scene/focusShaders.d.ts +68 -0
- package/dist/_members/animate/scene/fontReadiness.d.ts +27 -0
- package/dist/_members/animate/scene/grainNoise.d.ts +118 -0
- package/dist/_members/animate/scene/index.d.ts +19 -0
- package/dist/_members/animate/scene/internal.d.ts +29 -0
- package/dist/_members/animate/scene/planeFit.d.ts +46 -0
- package/dist/_members/animate/scene/preparedWorldText.d.ts +25 -0
- package/dist/_members/animate/scene/rasterCache.d.ts +30 -0
- package/dist/_members/animate/scene/rasterReadiness.d.ts +33 -0
- package/dist/_members/animate/scene/readiness.d.ts +69 -0
- package/dist/_members/animate/scene/redraw.d.ts +10 -0
- package/dist/_members/animate/scene/render.d.ts +9 -0
- package/dist/_members/animate/scene/scaling.d.ts +13 -0
- package/dist/_members/animate/scene/text.d.ts +40 -0
- package/dist/_members/animate/scene/textLayout.d.ts +78 -0
- package/dist/_members/animate/scene/textureImageSize.d.ts +4 -0
- package/dist/_members/animate/scene/useSceneImageTexture.d.ts +21 -0
- package/dist/_members/animate/scene/useWorldTextTexture.d.ts +21 -0
- package/dist/_members/animate/scene/v2/MeasuredPlaneGeometry.d.ts +7 -0
- package/dist/_members/animate/scene/v2/PhotographicStudioRig.d.ts +11 -0
- package/dist/_members/animate/scene/v2/PreparedSceneShotV1.d.ts +12 -0
- package/dist/_members/animate/scene/v2/SceneShotV2.d.ts +59 -0
- package/dist/_members/animate/scene/v2/builders.d.ts +170 -0
- package/dist/_members/animate/scene/v2/finishes.d.ts +152 -0
- package/dist/_members/animate/scene/v2/lighting.d.ts +119 -0
- package/dist/_members/animate/scene/v2/observePmremTargets.d.ts +4 -0
- package/dist/_members/animate/scene/v2/preparationFacts.d.ts +32 -0
- package/dist/_members/animate/scene/v2/preparedSurface.d.ts +17 -0
- package/dist/_members/animate/scene/v2/projectedResolution.d.ts +2 -0
- package/dist/_members/animate/scene/v2/renderTargetObserver.d.ts +5 -0
- package/dist/_members/animate/scene/v2/runtimeAllocations.d.ts +55 -0
- package/dist/_members/animate/scene/v2/shadow.d.ts +23 -0
- package/dist/_members/animate/scene/v2/slabGeometry.d.ts +134 -0
- package/dist/_members/animate/scene/v2/slots.d.ts +73 -0
- package/dist/_members/animate/scene/v2/videoBinding.d.ts +39 -0
- package/dist/_members/animate/scene/worldBounds.d.ts +19 -0
- package/dist/_members/animate/scene/worldTextRaster.d.ts +87 -0
- package/dist/_members/animate/scene/worldTextTexture.d.ts +32 -0
- package/dist/_members/animate/stage/PerspectiveStage.d.ts +73 -0
- package/dist/_members/animate/stage/camera.d.ts +143 -0
- package/dist/_members/animate/stage/dof.d.ts +9 -0
- package/dist/_members/animate/stage/index.d.ts +6 -0
- package/dist/_members/animate/stage/presets.d.ts +17 -0
- package/dist/_members/animate/three/DeviceMesh.d.ts +256 -0
- package/dist/_members/animate/three/SceneCameraRig.d.ts +12 -0
- package/dist/_members/animate/three/StageCameraRig.d.ts +7 -0
- package/dist/_members/animate/three/StudioRig.d.ts +228 -0
- package/dist/_members/animate/three/ThreeCanvas.d.ts +22 -0
- package/dist/_members/animate/three/defaultScreen.d.ts +23 -0
- package/dist/_members/animate/three/index.d.ts +7 -1
- package/dist/_members/animate/three/textureLifecycle.d.ts +29 -0
- package/dist/_members/animate/three/toneMapping.d.ts +113 -0
- package/dist/_members/animate/three/useImageTexture.d.ts +17 -0
- package/dist/_members/authoring/index.d.ts +2 -0
- package/dist/_members/authoring/scene/index.d.ts +6 -0
- package/dist/_members/authoring/scene/materialize.d.ts +47 -0
- package/dist/_members/authoring/scene/validate.d.ts +80 -0
- package/dist/_members/authoring/scene/wrapper.d.ts +41 -0
- package/dist/_members/component-runtime/allowedImports.d.ts +3 -0
- package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -0
- package/dist/_members/component-runtime/bake.d.ts +8 -0
- package/dist/_members/component-runtime/bake.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts +7 -1
- package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
- package/dist/_members/component-runtime/browserOptions.d.ts +59 -3
- package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -1
- package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
- package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
- package/dist/_members/component-runtime/contracts.d.ts +341 -1
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts +5 -0
- package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts.map +1 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts +8 -0
- package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts.map +1 -0
- package/dist/_members/component-runtime/importPolicy.d.ts +3 -2
- package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
- package/dist/_members/component-runtime/index.d.ts +3 -0
- package/dist/_members/component-runtime/index.d.ts.map +1 -1
- package/dist/_members/component-runtime/livePreviewProxy.d.ts +7 -0
- package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +1 -0
- package/dist/_members/component-runtime/localRoot.d.ts +37 -0
- package/dist/_members/component-runtime/localRoot.d.ts.map +1 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts +25 -0
- package/dist/_members/component-runtime/mediaResolution.d.ts.map +1 -0
- package/dist/_members/component-runtime/render.d.ts +151 -13
- package/dist/_members/component-runtime/render.d.ts.map +1 -1
- package/dist/_members/component-runtime/renderDiagnostics.d.ts +14 -0
- package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts +47 -0
- package/dist/_members/component-runtime/sceneAdmission.d.ts.map +1 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts +8 -0
- package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -1
- package/dist/_members/component-runtime/webglProbe.d.ts +191 -0
- package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -0
- package/dist/_members/composition/fonts/bundledFaces.d.ts +150 -0
- package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
- package/dist/_members/composition/fonts.d.ts +11 -4
- package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
- package/dist/_members/composition/ops/types.d.ts +1 -1
- package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
- package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
- package/dist/_members/composition/projection/brandKit.d.ts +6 -0
- package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
- package/dist/_members/composition/scene/animation.d.ts +25 -0
- package/dist/_members/composition/scene/budget.d.ts +29 -0
- package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
- package/dist/_members/composition/scene/clipRules.d.ts +119 -0
- package/dist/_members/composition/scene/constraints.d.ts +61 -0
- package/dist/_members/composition/scene/device.d.ts +21 -0
- package/dist/_members/composition/scene/examples.d.ts +11 -0
- package/dist/_members/composition/scene/index.d.ts +11 -0
- package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
- package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
- package/dist/_members/composition/scene/resolution.d.ts +178 -0
- package/dist/_members/composition/scene/schema.d.ts +351 -0
- package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
- package/dist/_members/composition/validators/brandKit.d.ts +1 -0
- package/dist/_members/composition/validators/render.d.ts +2 -0
- package/dist/_members/composition-ops/index.d.ts +45 -0
- package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
- package/dist/_members/core/render/compositionRender.d.ts +41 -9
- package/dist/_members/core/render/index.d.ts +9 -2
- package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
- package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
- package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
- package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
- package/dist/_members/core/render/trackProjection.d.ts +33 -0
- package/dist/_members/core/render/types.d.ts +142 -0
- package/dist/_members/errors/registry.d.ts +6 -0
- package/dist/_members/mcp/adapter.d.ts +5 -0
- package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
- package/dist/_members/mcp/sceneShot.d.ts +38 -0
- package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
- package/dist/_members/media-model/api.d.ts +1 -0
- package/dist/_members/media-model/media-kind.d.ts +1 -1
- package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
- package/dist/_members/primitives/effects/index.d.ts +1 -0
- package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
- package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
- package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
- package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
- package/dist/_members/primitives/layouts/index.d.ts +1 -0
- package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
- package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
- package/dist/_members/primitives/lib/index.d.ts +1 -0
- package/dist/_members/primitives/lib/palette.d.ts +30 -30
- package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
- package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
- package/dist/_members/primitives/lib/types.d.ts +2 -0
- package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
- package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
- package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
- package/dist/_members/primitives/scenes/index.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
- package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
- package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
- package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
- 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/css-tree-subpaths.d.ts +11 -0
- package/dist/_members/render-harness/extractSegments.d.ts +1 -0
- package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
- package/dist/_members/render-harness/imageHeader.d.ts +14 -0
- package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
- package/dist/_members/render-harness/index.d.ts +6 -0
- package/dist/_members/render-harness/index.d.ts.map +1 -1
- package/dist/_members/render-harness/materializeSources.d.ts +46 -2
- package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
- package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
- package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
- package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
- package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
- package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
- package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
- package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
- package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
- package/dist/animate/preparation-facts.d.ts +1 -0
- package/dist/animate/preparation-facts.js +22 -0
- package/dist/animate.js +336 -1005
- package/dist/authoring/build-tools.js +7 -6
- package/dist/authoring/context.js +5 -4
- package/dist/authoring/prompts.js +1 -1
- package/dist/authoring/scene.d.ts +1 -0
- package/dist/authoring/scene.js +50 -0
- package/dist/authoring/tools.js +6 -5
- package/dist/authoring.js +49 -29
- package/dist/chunk-2L7PYYJK.js +23 -0
- package/dist/{chunk-ZN6P3KOJ.js → chunk-32TH76H3.js} +2 -2
- package/dist/chunk-5DJ3IEJR.js +4424 -0
- package/dist/chunk-6BVVCRRD.js +26488 -0
- package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
- package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
- package/dist/{chunk-2PGLNTB7.js → chunk-A74FZCPY.js} +45 -5
- package/dist/{chunk-C5SEPOWD.js → chunk-AS5EXBNS.js} +1792 -707
- package/dist/{chunk-BKHGL4MB.js → chunk-B3GSTQLR.js} +341 -274
- package/dist/chunk-BVA3537Z.js +63 -0
- package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
- package/dist/chunk-DQLYWNLC.js +2063 -0
- package/dist/chunk-E6WHXIDF.js +3619 -0
- package/dist/{chunk-NOEBAV2G.js → chunk-E7GIZEPS.js} +1 -1
- package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
- package/dist/{chunk-GEGRJKKO.js → chunk-F2DJL7P7.js} +1 -1
- package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
- package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
- package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
- package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
- package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
- package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
- package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
- package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
- package/dist/chunk-MH3UPKWR.js +3415 -0
- package/dist/{chunk-RFXR7ATW.js → chunk-NUKDEOK6.js} +13 -1
- package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
- package/dist/chunk-QAGGJHAF.js +16 -0
- package/dist/chunk-QS36DMFG.js +332 -0
- package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
- package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
- package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
- package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
- package/dist/{chunk-Y3QGYASW.js → chunk-SX523NDS.js} +14 -14
- package/dist/chunk-TARKDVP6.js +430 -0
- package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
- package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
- package/dist/{chunk-KU376ELE.js → chunk-UY77TMKD.js} +31 -44
- package/dist/chunk-VKATKWWR.js +1462 -0
- package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
- package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
- package/dist/chunk-WIHXXF3X.js +221 -0
- package/dist/{chunk-XVBOSPZI.js → chunk-X74EEFXV.js} +6 -6
- package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
- package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
- package/dist/{chunk-6XI57FZZ.js → chunk-YFSBFCXO.js} +1022 -46
- package/dist/{chunk-6ID2J64H.js → chunk-YHC3RXS7.js} +162 -25
- package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
- package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
- package/dist/component-runtime/browserOptions.js +14 -3
- package/dist/component-runtime/contracts.js +35 -3
- package/dist/component-runtime/identity/browser.js +1 -1
- package/dist/component-runtime/identity.js +2 -2
- package/dist/component-runtime/importPolicy.js +2 -2
- package/dist/component-runtime/mediaResolution.d.ts +1 -0
- package/dist/component-runtime/mediaResolution.js +11 -0
- package/dist/component-runtime/render.js +38 -5
- package/dist/component-runtime.js +118 -14
- package/dist/compose.js +27 -21
- package/dist/composition/fonts.js +64 -67
- package/dist/composition/graphics-plan.js +3 -2
- package/dist/composition/ops.js +4 -3
- package/dist/composition/primitive-catalog.js +1 -1
- package/dist/composition/projection.js +10 -3
- package/dist/composition/scene/budget-policy.d.ts +1 -0
- package/dist/composition/scene/budget-policy.js +17 -0
- package/dist/composition/scene/schema.json +2757 -0
- package/dist/composition/scene.d.ts +1 -0
- package/dist/composition/scene.js +275 -0
- package/dist/composition/validators.js +3 -2
- package/dist/composition-ops.js +103 -13
- package/dist/composition.js +12 -5
- package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
- package/dist/core/render.js +54 -3
- package/dist/core/select.js +2 -2
- package/dist/core.js +6 -3
- 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 +4 -4
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/media-model/media-kind.js +2 -0
- package/dist/media-model/testing.js +16 -11
- package/dist/media-model.js +1 -1
- package/dist/nle-export.js +27 -21
- package/dist/primitives/backgrounds.js +2 -2
- package/dist/primitives/captions.js +21 -11
- package/dist/primitives/effects.js +14 -4
- package/dist/primitives/graphics.json +3 -0
- package/dist/primitives/hero-text.js +4 -3
- package/dist/primitives/layouts.js +9 -2
- package/dist/primitives/lib/frameScale.d.ts +1 -0
- package/dist/primitives/lib/frameScale.js +11 -0
- package/dist/primitives/lib/index.js +18 -10
- package/dist/primitives/lib/palette.js +1 -1
- package/dist/primitives/lib/text/contrast.js +2 -1
- package/dist/primitives/lib/text/typeface.js +1 -1
- package/dist/primitives/lib.js +18 -10
- package/dist/primitives/params-required.json +3 -0
- package/dist/primitives/scenes.js +12 -3
- package/dist/primitives/text.js +5 -5
- package/dist/primitives/transitions.js +2 -2
- package/dist/primitives/ui-blocks.js +7 -6
- package/dist/primitives/version-map.json +5 -2
- package/dist/primitives.js +27 -20
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness/renderInputAssets.js +2 -2
- package/dist/render-harness.js +876 -126
- package/package.json +51 -17
- package/dist/_members/animate/three/drei.d.ts +0 -6
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
- package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
- package/dist/chunk-4JRUGT2Y.js +0 -544
- package/dist/chunk-5OTQ7M43.js +0 -718
- package/dist/chunk-CGHTMZNC.js +0 -6
- package/dist/chunk-QBKDEO7J.js +0 -9521
- /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type Workspace } from '../primitives/workspace.js';
|
|
2
|
+
export declare const LOCAL_ROOT_FILENAME = "Root.local.tsx";
|
|
3
|
+
export declare const LOCAL_ENTRY_FILENAME = "entry.local.tsx";
|
|
4
|
+
export declare const LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
|
|
5
|
+
type LiveTransport = {
|
|
6
|
+
frame: number;
|
|
7
|
+
playing: boolean;
|
|
8
|
+
} & Record<string, unknown>;
|
|
9
|
+
/** Frame-presentation state used by the generated live iframe. Kept pure so
|
|
10
|
+
* seek transitions can be exercised without a browser or source-string assertions. */
|
|
11
|
+
export declare function createLivePresentationRouter(callbacks: {
|
|
12
|
+
mediaTileScene: () => string | null;
|
|
13
|
+
requestFrame: (callback: () => void) => void;
|
|
14
|
+
acknowledge: (transport: LiveTransport, presentedFrame: number) => void;
|
|
15
|
+
}): {
|
|
16
|
+
request(transport: LiveTransport): void;
|
|
17
|
+
committed(frame: number): void;
|
|
18
|
+
tilePresented(frame: number, scene: string): void;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
};
|
|
21
|
+
export declare function generateLocalRoot(ws: Workspace, opts: {
|
|
22
|
+
id: string;
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
fps: number;
|
|
26
|
+
durationInFrames: number;
|
|
27
|
+
revision?: string;
|
|
28
|
+
liveInputProps?: Record<string, unknown>;
|
|
29
|
+
fontFaces?: ReadonlyArray<{
|
|
30
|
+
family: string;
|
|
31
|
+
weight: number;
|
|
32
|
+
style?: string;
|
|
33
|
+
url: string;
|
|
34
|
+
}>;
|
|
35
|
+
}): string;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=localRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localRoot.d.ts","sourceRoot":"","sources":["../src/localRoot.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,gCAAgC,CAAC;AAOxC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,KAAK,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnF;sFACsF;AACtF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE;IACtD,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;uBAiCsB,aAAa;qBACf,MAAM;yBACF,MAAM,SAAS,MAAM;;EAO7C;AAOD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F,GACA,MAAM,CAqaR"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ComponentMediaDemandV1, ComponentMediaTierV1 } from './contracts.js';
|
|
2
|
+
export declare const COMPONENT_MEDIA_TIERS: readonly [256, 512, 1024, 2048];
|
|
3
|
+
export declare const COMPONENT_MEDIA_HEADROOM = 1.25;
|
|
4
|
+
export interface ComponentMediaSourceDimensions {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ComponentMediaOutputDimensions {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
export type ComponentMediaRepresentationPlan = {
|
|
13
|
+
kind: 'original' | 'proxy';
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
tier: ComponentMediaTierV1 | null;
|
|
17
|
+
requiredWidth: number;
|
|
18
|
+
requiredHeight: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function planComponentMediaRepresentation(input: {
|
|
21
|
+
source: ComponentMediaSourceDimensions;
|
|
22
|
+
output: ComponentMediaOutputDimensions;
|
|
23
|
+
demand: ComponentMediaDemandV1;
|
|
24
|
+
}): ComponentMediaRepresentationPlan;
|
|
25
|
+
//# sourceMappingURL=mediaResolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaResolution.d.ts","sourceRoot":"","sources":["../src/mediaResolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,eAAO,MAAM,qBAAqB,iCAA4E,CAAC;AAC/G,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAgBF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,sBAAsB,CAAC;CAChC,GAAG,gCAAgC,CA6CnC"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { type Workspace } from '../primitives/workspace.js';
|
|
2
|
-
import { type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2 } from './contracts.js';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export declare
|
|
7
|
-
export declare
|
|
8
|
-
export declare
|
|
9
|
-
|
|
10
|
-
width: number;
|
|
11
|
-
height: number;
|
|
12
|
-
fps: number;
|
|
13
|
-
durationInFrames: number;
|
|
14
|
-
}): string;
|
|
2
|
+
import { type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2, type ComponentHostAttestationV2, type ComponentCapturePageRasterAttestationV1, type ComponentStillPngContainerFactsV1 as ComponentStillPngFactsV1, type ComponentStillSessionAttestationV1 as ComponentStillSessionAttestationFactsV1, type ComponentStillSessionHostAttestationV1 as ComponentStillSessionHostAttestationFactsV1 } from './contracts.js';
|
|
3
|
+
import type { FfmpegOverrideFn } from '@remotion/renderer';
|
|
4
|
+
export { generateLocalRoot, LOCAL_COMPOSITION_ID, LOCAL_ENTRY_FILENAME, LOCAL_ROOT_FILENAME, } from './localRoot.js';
|
|
5
|
+
export { GRAPHICS_ATTESTATION_PREFIX, parseGraphicsAttestationLog } from './renderDiagnostics.js';
|
|
6
|
+
export declare function shouldIsolateWebGpuStillBrowser(platform: NodeJS.Platform, graphicsApi: ComponentGraphicsRequirementV2['api']): boolean;
|
|
7
|
+
export declare const COMPONENT_BROWSER_FIREWALL_TIMEOUT_MS = 10000;
|
|
8
|
+
export declare const COMPONENT_BROWSER_CLEANUP_TIMEOUT_MS = 5000;
|
|
9
|
+
export declare const COMPONENT_BROWSER_FIREWALL_ATTEMPTS = 2;
|
|
15
10
|
export declare function buildLocalWebpackOverride(renderEntryRoot: string, authoredComponentRoot: string): (config: any) => any;
|
|
16
11
|
export interface RenderComponentStillOpts {
|
|
17
12
|
ws: Workspace;
|
|
@@ -25,22 +20,138 @@ export interface RenderComponentStillOpts {
|
|
|
25
20
|
height?: number;
|
|
26
21
|
fps?: number;
|
|
27
22
|
durationInFrames?: number;
|
|
23
|
+
/** Remotion output scale. The composition keeps its authored layout dimensions. */
|
|
24
|
+
scale?: number;
|
|
28
25
|
renderEntryRoot?: string;
|
|
29
26
|
allowedAssetOrigins?: ReadonlySet<string>;
|
|
27
|
+
/** Trusted host font faces served from the verified render-entry public tree. */
|
|
28
|
+
fontFaces?: ReadonlyArray<{
|
|
29
|
+
family: string;
|
|
30
|
+
weight: number;
|
|
31
|
+
style?: string;
|
|
32
|
+
url: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export interface ComponentStillFrameOpts {
|
|
36
|
+
frame?: number;
|
|
37
|
+
params?: Record<string, unknown>;
|
|
38
|
+
assets?: Record<string, unknown>;
|
|
39
|
+
seed?: string;
|
|
40
|
+
/** Refuse a request queued against a different compiled source revision. */
|
|
41
|
+
expectedRevision?: string;
|
|
42
|
+
outputPath?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ComponentStillSession {
|
|
45
|
+
readonly revision: string;
|
|
46
|
+
readonly liveUrl: string;
|
|
47
|
+
/** Same-session host facts, present only when capture attestation was requested. */
|
|
48
|
+
readonly hostAttestation: ComponentStillSessionHostAttestationFactsV1 | null;
|
|
49
|
+
renderFrame(opts?: ComponentStillFrameOpts): Promise<{
|
|
50
|
+
pngPath: string;
|
|
51
|
+
revision: string;
|
|
52
|
+
actualGraphics: ComponentGraphicsActualV2;
|
|
53
|
+
capturePageRaster: ComponentCapturePageRasterAttestationV1 | null;
|
|
54
|
+
outputOwnedBySession: boolean;
|
|
55
|
+
}>;
|
|
56
|
+
renderVerifiedFrame(opts?: ComponentStillFrameOpts): Promise<{
|
|
57
|
+
png: ComponentStillPngFactsV1;
|
|
58
|
+
revision: string;
|
|
59
|
+
actualGraphics: ComponentGraphicsActualV2;
|
|
60
|
+
attestation: ComponentStillSessionAttestationFactsV1;
|
|
61
|
+
}>;
|
|
62
|
+
close(): Promise<void>;
|
|
63
|
+
/** Immediately closes the owned browser, then waits for active work to settle. */
|
|
64
|
+
cancel(): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
export interface CreateComponentStillSessionOpts extends Omit<RenderComponentStillOpts, 'frame'> {
|
|
67
|
+
/** Stable identity supplied by an immutable source owner. Defaults to the
|
|
68
|
+
* authored entrypoint digest captured before compilation. */
|
|
69
|
+
revision?: string;
|
|
70
|
+
/** Collect identity facts from this exact browser before it captures a frame. */
|
|
71
|
+
captureAttestation?: boolean;
|
|
72
|
+
/** Optional host diagnostic sink for browser console output during startup/render. */
|
|
73
|
+
onBrowserLog?: (entry: unknown) => void;
|
|
74
|
+
/** Reports bounded startup phases without exposing component source or props. */
|
|
75
|
+
onStartupPhase?: (phase: 'prepare' | 'prepared' | 'open-browser' | 'browser-open' | 'firewall' | 'select-composition' | 'composition-ready' | 'start-proxy' | 'ready') => void;
|
|
30
76
|
}
|
|
31
77
|
export declare function importFromRenderEntry<T>(renderEntryRoot: string, spec: string): Promise<T>;
|
|
78
|
+
/** What the shared verifier hands back: the browser this process will actually run. */
|
|
79
|
+
export type StagedBrowserIdentity = {
|
|
80
|
+
path: string;
|
|
81
|
+
sha256: string;
|
|
82
|
+
version: string;
|
|
83
|
+
product: string;
|
|
84
|
+
chromeMode: 'headless-shell' | 'chrome-for-testing';
|
|
85
|
+
manifestPath: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* How long this lane gives the staged executable to answer `--version`.
|
|
89
|
+
*
|
|
90
|
+
* The composition lane derives its probe budget from the render deadline it was given
|
|
91
|
+
* (`resolveBrowserVersionProbeBudgetMs`); a preview session has no deadline of its own, so it takes
|
|
92
|
+
* that derivation's own ceiling. A probe that outlives it has not been slow, it has hung.
|
|
93
|
+
*/
|
|
94
|
+
export declare const LOCAL_BROWSER_VERSION_PROBE_MS = 30000;
|
|
95
|
+
export declare function verifyLocalStagedBrowser(renderEntryRoot: string): Promise<StagedBrowserIdentity>;
|
|
96
|
+
/**
|
|
97
|
+
* Install the sizer on `browser` and answer a `size(width, height)` that refuses by name.
|
|
98
|
+
*
|
|
99
|
+
* Installed ONCE per browser and before the request firewall, because the sizer's measuring page
|
|
100
|
+
* must exist before anything installs `Target.setAutoAttach` over the same browser — a page created
|
|
101
|
+
* and closed after that is auto-attached while it is already going away, and the firewall's first
|
|
102
|
+
* command to it fails. The returned `size` may then be called per composition.
|
|
103
|
+
*
|
|
104
|
+
* A refusal raised asynchronously by a later page — the sizer verifies every page target against
|
|
105
|
+
* the window it verified — is surfaced on the NEXT `size` call and, for the lanes that call `size`
|
|
106
|
+
* once, by the browser teardown the sizer performs, which ends the render in flight.
|
|
107
|
+
*/
|
|
108
|
+
export declare function installLocalLaneWindowSizer(renderEntryRoot: string, browser: unknown): Promise<(width: number, height: number) => Promise<void>>;
|
|
109
|
+
/** Install and size once, for a lane that knows its frame size before it opens a page. */
|
|
110
|
+
export declare function sizeLocalLaneWindows(renderEntryRoot: string, browser: unknown, width: number, height: number): Promise<void>;
|
|
111
|
+
/** The five typed fields a staged-browser refusal puts on the wire, or null for anything else. */
|
|
112
|
+
export type StagedBrowserWireLocator = {
|
|
113
|
+
code: string;
|
|
114
|
+
path: string | null;
|
|
115
|
+
expected: string | null;
|
|
116
|
+
observed: string | null;
|
|
117
|
+
repair: string | null;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* The wire locator for a caught error, DELEGATED to the shared verifier module rather than
|
|
121
|
+
* reimplemented here.
|
|
122
|
+
*
|
|
123
|
+
* A second copy of "is this a staged-browser refusal, and what are its fields" is how the two lanes
|
|
124
|
+
* came to disagree about the same broken bundle, so there is not one. `null` before the module has
|
|
125
|
+
* ever loaded is correct and not a fallback: no staged-browser refusal can exist before the module
|
|
126
|
+
* that throws it has been loaded, and by the time a refusal is being reported it has been.
|
|
127
|
+
*/
|
|
128
|
+
export declare function stagedBrowserLocator(error: unknown): StagedBrowserWireLocator | null;
|
|
32
129
|
export declare function resolveRenderEntryRoot(override?: string): string;
|
|
130
|
+
export declare const COMPONENT_STILL_RUNTIME_IDENTITY = "@cueframe/component-runtime/still-session-v1";
|
|
131
|
+
/** Raster-affecting Remotion launch arguments pinned before a browser is opened. */
|
|
132
|
+
export declare function componentStillRasterAffectingFlags(graphics: ComponentGraphicsRequirementV2): {
|
|
133
|
+
browserArguments: string[];
|
|
134
|
+
};
|
|
135
|
+
export declare function componentStillDependencyIdentity(renderEntryRoot: string): Promise<string>;
|
|
136
|
+
export declare function createComponentStillSession(opts: CreateComponentStillSessionOpts): Promise<ComponentStillSession>;
|
|
33
137
|
export declare function renderComponentStill(opts: RenderComponentStillOpts): Promise<{
|
|
34
138
|
pngPath: string;
|
|
35
139
|
actualGraphics: ComponentGraphicsActualV2;
|
|
36
140
|
}>;
|
|
37
141
|
export type AlphaCodec = 'prores' | 'vp9';
|
|
142
|
+
/** Bounded VP9 row parallelism through Remotion's supported encoder hook.
|
|
143
|
+
* Keep alpha, frame timing and container arguments supplied by Remotion.
|
|
144
|
+
* The renderer bundle digest seals this fixed profile into bake cache identity.
|
|
145
|
+
*/
|
|
146
|
+
export declare const vp9AlphaFfmpegOverride: FfmpegOverrideFn;
|
|
38
147
|
export declare function alphaRenderConfig(codec: AlphaCodec): {
|
|
39
148
|
codec: AlphaCodec;
|
|
40
149
|
pixelFormat: 'yuva444p10le' | 'yuva420p';
|
|
41
150
|
imageFormat: 'png';
|
|
42
151
|
muted: true;
|
|
43
152
|
proResProfile?: '4444';
|
|
153
|
+
crf?: number;
|
|
154
|
+
ffmpegOverride?: FfmpegOverrideFn;
|
|
44
155
|
};
|
|
45
156
|
export declare function alphaExt(codec: AlphaCodec): 'mov' | 'webm';
|
|
46
157
|
export interface RenderComponentAlphaOpts {
|
|
@@ -60,9 +171,36 @@ export interface RenderComponentAlphaOpts {
|
|
|
60
171
|
frameRange?: [number, number];
|
|
61
172
|
renderEntryRoot?: string;
|
|
62
173
|
allowedAssetOrigins?: ReadonlySet<string>;
|
|
174
|
+
concurrency?: number;
|
|
175
|
+
onProgress?: (progress: {
|
|
176
|
+
renderedFrames: number;
|
|
177
|
+
encodedFrames: number;
|
|
178
|
+
totalFrames: number;
|
|
179
|
+
}) => void;
|
|
180
|
+
onTiming?: (timing: ComponentRenderTiming) => void;
|
|
181
|
+
}
|
|
182
|
+
export interface ComponentRenderTiming {
|
|
183
|
+
stage: 'bundle' | 'browser' | 'composition' | 'first-frame' | 'frames' | 'encoding' | 'render';
|
|
184
|
+
durationMs: number;
|
|
185
|
+
slowestFrames?: Array<{
|
|
186
|
+
frame: number;
|
|
187
|
+
time: number;
|
|
188
|
+
}>;
|
|
189
|
+
/** Native Remotion process-level counters. Concurrent capture durations
|
|
190
|
+
* overlap; these averages are not additional pipeline wall time. */
|
|
191
|
+
rendererPerformance?: string[];
|
|
63
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* `host` is what browser admission attested about the machine that drew the frames — the WebGL
|
|
195
|
+
* feature status, the renderer string, the measured `MAX_TEXTURE_SIZE` and the backend — or null
|
|
196
|
+
* when this render probed no host. It is carried out of here so the bake can record it on the
|
|
197
|
+
* receipt (`ComponentRenderReceiptV2.host`), which is the only place the measurement survives the
|
|
198
|
+
* render: it is taken once, before the first frame, and cannot be recovered from the artifact.
|
|
199
|
+
* It is not part of any identity; see `ComponentHostAttestationV2`.
|
|
200
|
+
*/
|
|
64
201
|
export declare function renderComponentAlpha(opts: RenderComponentAlphaOpts): Promise<{
|
|
65
202
|
videoPath: string;
|
|
66
203
|
actualGraphics: ComponentGraphicsActualV2;
|
|
204
|
+
host: ComponentHostAttestationV2 | null;
|
|
67
205
|
}>;
|
|
68
206
|
//# sourceMappingURL=render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComponentRuntimeError, type ComponentCapturePageRasterAttestationV1 as CapturePageRasterAttestation, type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2, type ComponentRuntimeErrorCode as RuntimeErrorCode } from './contracts.js';
|
|
2
|
+
export declare const GRAPHICS_ATTESTATION_PREFIX = "__cueframe_graphics_v2__:";
|
|
3
|
+
export declare const CAPTURE_PAGE_RASTER_ATTESTATION_PREFIX = "__cueframe_capture_raster_v1__:";
|
|
4
|
+
export declare const BROWSER_RUNTIME_ERROR_PREFIX = "__cueframe_component_error_v2__:";
|
|
5
|
+
export declare function componentRuntimeError(error: unknown, fallbackCode: RuntimeErrorCode, retryable?: boolean): ComponentRuntimeError;
|
|
6
|
+
export declare function parseGraphicsAttestationLog(text: string): ComponentGraphicsActualV2 | null;
|
|
7
|
+
export declare function parseCapturePageRasterAttestationLog(text: string): CapturePageRasterAttestation | null;
|
|
8
|
+
export declare function graphicsCollector(required: ComponentGraphicsRequirementV2): {
|
|
9
|
+
onBrowserLog(log: {
|
|
10
|
+
text: string;
|
|
11
|
+
}): void;
|
|
12
|
+
receipt(): ComponentGraphicsActualV2;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=renderDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderDiagnostics.d.ts","sourceRoot":"","sources":["../src/renderDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,qBAAqB,EAA6B,KAAK,uCAAuC,IAAI,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,KAAK,yBAAyB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1V,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AACxF,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,UAAQ,GAChB,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAa1F;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAStG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,8BAA8B;sBAGpD;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;eAiB9B,yBAAyB;EAUvC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scene-shot capability admission. A source that declares `manifest.sceneShot`
|
|
3
|
+
* opts its `params.scene` into the typed contract from `@cueframe/composition/scene`.
|
|
4
|
+
* Everything here runs before a workspace is written, a bundle is built, or a
|
|
5
|
+
* browser is opened, and every refusal names the stage, the clip and component,
|
|
6
|
+
* the exact field path, and the corrective action.
|
|
7
|
+
*/
|
|
8
|
+
import { type SceneShotSpecV2 } from '../composition/scene/index.js';
|
|
9
|
+
import { type ComponentManifestV2, type SceneShotCapabilityV2 } from './contracts.js';
|
|
10
|
+
/** Authored scene contract versions accepted by admission. */
|
|
11
|
+
export declare const SUPPORTED_SCENE_SHOT_VERSIONS: readonly number[];
|
|
12
|
+
/** The authored prop that carries the shot for a scene-shot source. */
|
|
13
|
+
export declare const SCENE_SHOT_PARAM: "scene";
|
|
14
|
+
export declare const SCENE_ADMISSION_STAGE: "admission";
|
|
15
|
+
export interface SceneAdmissionContext {
|
|
16
|
+
componentId?: string;
|
|
17
|
+
clipId?: string;
|
|
18
|
+
}
|
|
19
|
+
/** `['layers', 0, 'width']` → `scene.layers.0.width`; the root issue is `scene`. */
|
|
20
|
+
export declare function sceneShotIssuePath(path: ReadonlyArray<PropertyKey>): string;
|
|
21
|
+
/**
|
|
22
|
+
* Inspects the raw (pre-parse) manifest so an unsupported version or a
|
|
23
|
+
* mismatched graphics api is refused with a typed error rather than a bare
|
|
24
|
+
* schema failure. Returns the capability when declared and supported and null
|
|
25
|
+
* for an ordinary source, and leaves other manifest defects to the strict parse.
|
|
26
|
+
*
|
|
27
|
+
* A `sceneShot` key that is present but unreadable — `{}`, `{ version: '2' }`,
|
|
28
|
+
* `null` — is a declaration this runtime cannot honour, never "not a scene": it
|
|
29
|
+
* is refused here so a malformed declaration can never slip past scene
|
|
30
|
+
* validation and be captured as an ordinary component.
|
|
31
|
+
*/
|
|
32
|
+
export declare function assertSceneShotCapabilitySupported(manifest: unknown, context?: SceneAdmissionContext): SceneShotCapabilityV2 | null;
|
|
33
|
+
/**
|
|
34
|
+
* Validates `params.scene` for a source that declared `sceneShot`. Ordinary
|
|
35
|
+
* sources keep their semantics: the param is not inspected. The error carries
|
|
36
|
+
* the exact zod path under `scene`.
|
|
37
|
+
*
|
|
38
|
+
* "Declared a scene shot" is decided by `assertSceneShotCapabilitySupported`,
|
|
39
|
+
* not by the truthiness of `manifest.sceneShot`, so the two halves of admission
|
|
40
|
+
* cannot disagree: a present-but-unreadable declaration (`{}`, `null`,
|
|
41
|
+
* `{ version: '2' }`, or one on a non-WebGL source) is refused here with the
|
|
42
|
+
* same typed error the capability check raises, instead of one half calling it
|
|
43
|
+
* a scene and the other calling it an ordinary component. The call is pure and
|
|
44
|
+
* idempotent, so lanes that already ran the capability check pay nothing.
|
|
45
|
+
*/
|
|
46
|
+
export declare function assertSceneShotParamsAdmitted(manifest: Pick<ComponentManifestV2, 'graphics' | 'sceneShot'>, params: Record<string, unknown>, context?: SceneAdmissionContext): SceneShotSpecV2 | null;
|
|
47
|
+
//# sourceMappingURL=sceneAdmission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sceneAdmission.d.ts","sourceRoot":"","sources":["../src/sceneAdmission.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAEnF,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AAEjD,eAAO,MAAM,qBAAqB,EAAG,WAAoB,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,qBAA0B,GAClC,qBAAqB,GAAG,IAAI,CA+B9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC,EAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,qBAA0B,GAClC,eAAe,GAAG,IAAI,CAgBxB"}
|
|
@@ -7,4 +7,12 @@ export interface MaterializedComponentSource {
|
|
|
7
7
|
componentDir: string;
|
|
8
8
|
}
|
|
9
9
|
export declare function materializeComponentSource(workspaceRoot: string, input: ComponentSource): MaterializedComponentSource;
|
|
10
|
+
/**
|
|
11
|
+
* The immutable source a workspace component was materialized from, or null for
|
|
12
|
+
* a plain workspace component (one authored on disk without a pinned manifest).
|
|
13
|
+
* The render path reads it so every lane that renders a materialized source,
|
|
14
|
+
* including hosts that only hand the workspace over, admits `params.scene`
|
|
15
|
+
* against the manifest the bundle is built from.
|
|
16
|
+
*/
|
|
17
|
+
export declare function readMaterializedComponentSource(ws: Workspace, id: string): ComponentSource | null;
|
|
10
18
|
//# sourceMappingURL=sourceWorkspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceWorkspace.d.ts","sourceRoot":"","sources":["../src/sourceWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"sourceWorkspace.d.ts","sourceRoot":"","sources":["../src/sourceWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAqB,KAAK,iBAAiB,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAO9F,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,eAAe,GACrB,2BAA2B,CAwB7B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAIjG"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/** Chrome's own account of the GPU and backend it selected, over CDP alone: one round trip,
|
|
2
|
+
* no page. This is everything `SystemInfo.getInfo` carries that either lane reads. */
|
|
3
|
+
export interface GpuAttestation {
|
|
4
|
+
/** `gpu.auxAttributes.glRenderer`, or '' when the browser did not report one. */
|
|
5
|
+
renderer: string;
|
|
6
|
+
/** `gpu.featureStatus`, keyed by Chrome's feature names (`webgl`, `gpu_compositing`, ...). */
|
|
7
|
+
featureStatus: Record<string, string>;
|
|
8
|
+
/** Canonical exposed GPU/device/driver facts, or null when Chrome exposes none. */
|
|
9
|
+
gpuIdentity: string | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Chrome's attestation plus what a page in this browser can actually allocate.
|
|
13
|
+
*
|
|
14
|
+
* A separate type from `GpuAttestation`, and read by a separate function, because measuring the
|
|
15
|
+
* limit costs a page: `MAX_TEXTURE_SIZE` exists only inside a GL context, so it cannot be had
|
|
16
|
+
* without opening one. A lane that does not need WebGL must not pay for it, and — more to the
|
|
17
|
+
* point — must not be able to hold a half-measured attestation that a `null` limit would make
|
|
18
|
+
* indistinguishable from a host with no WebGL2 at all.
|
|
19
|
+
*/
|
|
20
|
+
export interface WebGlAttestation extends GpuAttestation {
|
|
21
|
+
/**
|
|
22
|
+
* The host's WebGL2 `MAX_TEXTURE_SIZE`, or null when a page in this browser could not create a
|
|
23
|
+
* WebGL2 context at all. Null is a refusal for a scene shot, never a "carry on": the scene
|
|
24
|
+
* renderer is a WebGL2 renderer, so a browser whose pages have no WebGL2 context cannot draw
|
|
25
|
+
* one whatever `featureStatus.webgl` says.
|
|
26
|
+
*/
|
|
27
|
+
maxTextureSize: number | null;
|
|
28
|
+
/**
|
|
29
|
+
* The half-float colour extension a page in this browser reports, or null when it reports
|
|
30
|
+
* neither of `HALF_FLOAT_COLOR_TARGET_EXTENSIONS` — and null too when there was no WebGL2
|
|
31
|
+
* context to ask, which `maxTextureSize: null` says on its own.
|
|
32
|
+
*
|
|
33
|
+
* Measured on the same context as the limit above, in the same page, because that is the
|
|
34
|
+
* context whose capabilities the render's own will share.
|
|
35
|
+
*/
|
|
36
|
+
halfFloatColorTarget: string | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The two extensions that make a half-float colour attachment renderable, either of which is
|
|
40
|
+
* enough. This is the pair three itself tests before choosing `HalfFloatType` for its own
|
|
41
|
+
* intermediates, and the pair the renderer-side gate asks for by name
|
|
42
|
+
* (`@cueframe/animate`'s `scene/focusResources.ts`, `HALF_FLOAT_TARGET_EXTENSIONS`): asking the
|
|
43
|
+
* question the way the renderer asks it is what keeps the answer true of the target it will
|
|
44
|
+
* actually allocate.
|
|
45
|
+
*
|
|
46
|
+
* The list is stated twice, here and there, because the two packages cannot import from each
|
|
47
|
+
* other — this one is bundled for the plain-Node script lane and must stay cheap, and animate
|
|
48
|
+
* does not depend on it. Neither copy may change alone; the renderer-side refusal
|
|
49
|
+
* (`scene_render_target_unsupported`) is the second gate for exactly the case where they have.
|
|
50
|
+
*/
|
|
51
|
+
export declare const HALF_FLOAT_COLOR_TARGET_EXTENSIONS: readonly ["EXT_color_buffer_half_float", "EXT_color_buffer_float"];
|
|
52
|
+
/** What one page in the staged browser can allocate: the measurements admission is decided on. */
|
|
53
|
+
export interface WebGlPageLimits {
|
|
54
|
+
maxTextureSize: number;
|
|
55
|
+
/** The first of `HALF_FLOAT_COLOR_TARGET_EXTENSIONS` the context grants, or null for neither. */
|
|
56
|
+
halfFloatColorTarget: string | null;
|
|
57
|
+
}
|
|
58
|
+
/** The part of a Remotion page this probe uses: it evaluates exactly one function, below. */
|
|
59
|
+
export interface ProbePage {
|
|
60
|
+
evaluate(pageFunction: () => WebGlPageLimits | null): Promise<WebGlPageLimits | null>;
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
export interface WebGlPolicy {
|
|
64
|
+
/** The GL backend this lane launched the browser with; named in the refusal. */
|
|
65
|
+
backend?: string | null;
|
|
66
|
+
/** True under `CUEFRAME_RENDER_ACCELERATION=hardware`, which forbids software WebGL. */
|
|
67
|
+
hardware?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Opening the one page the limits are measured in, in the shape Remotion's browser handle offers
|
|
71
|
+
* it. Typed on its own because it is the capability only the WebGL half of this probe needs, and
|
|
72
|
+
* the capability sets are what the two halves are split along.
|
|
73
|
+
*/
|
|
74
|
+
export type ProbePageOpener = (options: {
|
|
75
|
+
context: () => null;
|
|
76
|
+
logLevel: 'error';
|
|
77
|
+
indent: false;
|
|
78
|
+
pageIndex: number;
|
|
79
|
+
onBrowserLog: null;
|
|
80
|
+
onLog: () => void;
|
|
81
|
+
}) => Promise<ProbePage>;
|
|
82
|
+
/**
|
|
83
|
+
* The part of a Remotion browser handle this probe uses: the CDP connection Chrome answers
|
|
84
|
+
* `SystemInfo.getInfo` on, and — for the WebGL half alone — one page for the limits it does not
|
|
85
|
+
* report there.
|
|
86
|
+
*
|
|
87
|
+
* The page opener is optional *here* and required by `WebGlProbeBrowser` below, which is what
|
|
88
|
+
* `readWebGlAttestation` narrows to before it opens anything. The split is the capability set each
|
|
89
|
+
* reader actually uses. `readGpuAttestation` makes one CDP round trip and opens nothing, and so
|
|
90
|
+
* does the hardware-compositor path of admission that calls it, so the connection alone is
|
|
91
|
+
* everything that path can be asked to prove. Stating the opener as required on the shared handle
|
|
92
|
+
* type would charge every caller of the shared entry point — `assertComponentBrowserHardware`,
|
|
93
|
+
* which a canvas2d component goes through too — for a capability that path never uses, and the
|
|
94
|
+
* handles callers hold do not all declare it: `render.ts` passes Remotion's browser, whose
|
|
95
|
+
* declaration in the render-harness project is the connection and `close` and no more.
|
|
96
|
+
*/
|
|
97
|
+
export interface CdpBrowserConnection {
|
|
98
|
+
connection: {
|
|
99
|
+
send(method: string, params?: unknown): Promise<unknown>;
|
|
100
|
+
};
|
|
101
|
+
newPage?: ProbePageOpener;
|
|
102
|
+
}
|
|
103
|
+
/** A handle carrying both halves: what the WebGL measurement needs, and nothing wider. */
|
|
104
|
+
export interface WebGlProbeBrowser extends CdpBrowserConnection {
|
|
105
|
+
newPage: ProbePageOpener;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Runs inside the probe page. `null` means this browser has no WebGL2 context to measure.
|
|
109
|
+
*
|
|
110
|
+
* The extension names are written out rather than read from
|
|
111
|
+
* `HALF_FLOAT_COLOR_TARGET_EXTENSIONS`, and they have to be: this function is serialized and
|
|
112
|
+
* evaluated in the browser, where nothing in this module exists, so a closure over the constant
|
|
113
|
+
* would arrive as a reference error and the probe would refuse every host. `webglProbe.test.ts`
|
|
114
|
+
* reads this function's own source and checks it asks for exactly the names the refusal names.
|
|
115
|
+
*/
|
|
116
|
+
export declare function readWebGlLimitsInPage(): WebGlPageLimits | null;
|
|
117
|
+
/**
|
|
118
|
+
* Chrome's GPU attestation over CDP: the renderer string and the feature status, one round trip.
|
|
119
|
+
*
|
|
120
|
+
* Remotion's transport wraps protocol results in `{value, size}`.
|
|
121
|
+
*/
|
|
122
|
+
export declare function readGpuAttestation(browser: CdpBrowserConnection): Promise<GpuAttestation>;
|
|
123
|
+
/**
|
|
124
|
+
* The attestation above, plus what one page in this browser can allocate: `MAX_TEXTURE_SIZE` and
|
|
125
|
+
* half-float colour targets.
|
|
126
|
+
*
|
|
127
|
+
* Two round trips, because Chrome's `SystemInfo.getInfo` carries neither: its `gpu.auxAttributes`
|
|
128
|
+
* reports `glRenderer`, `glVersion`, `maxMsaaSamples` and the rest, and no size limit and no
|
|
129
|
+
* extension registry at all (`apps/studio/scripts/probe-gpu-limits.mjs` prints the key list). Both
|
|
130
|
+
* exist only inside a GL context, so this opens one `about:blank` page — it navigates nowhere and
|
|
131
|
+
* issues no request — asks it once for both, and closes it again. One page, because they are
|
|
132
|
+
* properties of one context: an answer taken from a different context would not be about the
|
|
133
|
+
* context the render draws through.
|
|
134
|
+
*
|
|
135
|
+
* Only a lane that needs WebGL calls this. A canvas2d or hardware-compositor check reads
|
|
136
|
+
* `readGpuAttestation` alone and opens no page.
|
|
137
|
+
*/
|
|
138
|
+
export declare function readWebGlAttestation(browser: CdpBrowserConnection): Promise<WebGlAttestation>;
|
|
139
|
+
/**
|
|
140
|
+
* The WebGL admission decision: null when the browser can capture a WebGL scene
|
|
141
|
+
* under this policy, otherwise the refusal message. Naming the missing feature
|
|
142
|
+
* and the selected backend is the point — a lane must never quietly capture a
|
|
143
|
+
* black frame or substitute another api.
|
|
144
|
+
*
|
|
145
|
+
* Four ways to fail, all closed:
|
|
146
|
+
* - the browser does not attest `webgl`, or attests it off;
|
|
147
|
+
* - it runs WebGL in software under an acceleration policy that forbids that;
|
|
148
|
+
* - a page in it has no WebGL2 context, or reports a `MAX_TEXTURE_SIZE` below the shadow map
|
|
149
|
+
* the scene renderer may allocate (`STUDIO_SHADOW_MAP_BUDGET`). The renderer does not clamp:
|
|
150
|
+
* a map spread over fewer texels than it was tuned for is a different picture, and a request
|
|
151
|
+
* over the host's limit is a GL error mid-render rather than a refusal before one. So the
|
|
152
|
+
* refusal happens here, at admission, with both numbers named;
|
|
153
|
+
* - a page in it grants neither half-float colour extension. Every scene shot's world — in
|
|
154
|
+
* focus or not — is rasterized into a half-float colour target and composited out of it, so
|
|
155
|
+
* this is a capability of the shot rather than of an optional effect, and eight-bit linear is
|
|
156
|
+
* not a near-enough substitute (stored as `round(L * 255)` it collapses sRGB codes 16-24 onto
|
|
157
|
+
* one or two levels, which is where a dark product-UI gradient lives). The renderer refuses
|
|
158
|
+
* too, typed `scene_render_target_unsupported`, and that gate stays: it is what catches a host
|
|
159
|
+
* whose page-level answer and whose render-time answer disagree. But it fires in the browser
|
|
160
|
+
* at the first drawn frame, after a capture has been staged and paid for, so the decision
|
|
161
|
+
* belongs here as well — before capture, naming the extensions.
|
|
162
|
+
*/
|
|
163
|
+
export declare function webGlRefusal(attestation: WebGlAttestation, policy?: WebGlPolicy): string | null;
|
|
164
|
+
/**
|
|
165
|
+
* What a host that passed `webGlRefusal` attested about itself, in the shape a receipt records.
|
|
166
|
+
*
|
|
167
|
+
* This exists so a lane can state the host it was admitted on instead of leaving the measurement
|
|
168
|
+
* inside a decision nobody can cite afterwards: `maxTextureSize` in particular is measured once,
|
|
169
|
+
* before the first frame, and is otherwise unrecoverable from the artifact.
|
|
170
|
+
*
|
|
171
|
+
* It is NOT part of any render identity or cache key, on either lane, and the reason is the same
|
|
172
|
+
* one that keeps the limit off `ComponentRendererConfigV2` (contracts.ts): every host that clears
|
|
173
|
+
* `STUDIO_SHADOW_MAP_BUDGET` draws the identical frame, so a host reporting 16384 and one
|
|
174
|
+
* reporting 8192 would key differently while producing the same bytes — splitting the identity,
|
|
175
|
+
* and evicting correct artifacts, on a difference the render cannot see. What the limit governs is
|
|
176
|
+
* admission, and below it there is no render to key.
|
|
177
|
+
*
|
|
178
|
+
* Only call it on an admitted host: `maxTextureSize` and `halfFloatColorTarget` are `null`
|
|
179
|
+
* exactly when `webGlRefusal` refused, so a null in either would mean a receipt was being written
|
|
180
|
+
* for a shot that never should have been captured. The callers narrow them (component-runtime
|
|
181
|
+
* parses this through `ComponentHostAttestationV2`, which rejects both) rather than papering over
|
|
182
|
+
* it.
|
|
183
|
+
*/
|
|
184
|
+
export declare function admittedHost(attestation: WebGlAttestation, policy?: WebGlPolicy): {
|
|
185
|
+
webgl: string;
|
|
186
|
+
renderer: string;
|
|
187
|
+
maxTextureSize: number | null;
|
|
188
|
+
halfFloatColorTarget: string | null;
|
|
189
|
+
glBackend: string;
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=webglProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webglProbe.d.ts","sourceRoot":"","sources":["../src/webglProbe.ts"],"names":[],"mappings":"AAqBA;sFACsF;AACtF,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mFAAmF;IACnF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kCAAkC,oEAAqE,CAAC;AAErH,kGAAkG;AAClG,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,6FAA6F;AAC7F,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAEzB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,OAAO,EAAE,eAAe,CAAC;CAC1B;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,IAAI,CAS9D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkC/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoDnG;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,GAAG,IAAI,CAoBnG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAE,WAAgB,GAAG;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB,CAQA"}
|