@vgai/engine 0.2.0 → 0.3.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/README.md +3 -1
- package/dist/adapter/authoring.d.ts +404 -0
- package/dist/adapter/authoring.d.ts.map +1 -0
- package/dist/adapter/authoring.js +22 -0
- package/dist/adapter/colyseus-networking-adapter.d.ts +43 -0
- package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -0
- package/dist/adapter/colyseus-networking-adapter.js +38 -0
- package/dist/adapter/first-party-systems.d.ts +38 -0
- package/dist/adapter/first-party-systems.d.ts.map +1 -0
- package/dist/adapter/first-party-systems.js +77 -0
- package/dist/adapter/game-adapter.d.ts +133 -0
- package/dist/adapter/game-adapter.d.ts.map +1 -0
- package/dist/adapter/game-adapter.js +10 -0
- package/dist/adapter/host-context.d.ts +73 -0
- package/dist/adapter/host-context.d.ts.map +1 -0
- package/dist/adapter/host-context.js +16 -0
- package/dist/adapter/index.d.ts +22 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +15 -0
- package/dist/adapter/ingest/game-contract.d.ts +53 -0
- package/dist/adapter/ingest/game-contract.d.ts.map +1 -0
- package/dist/adapter/ingest/game-contract.js +30 -0
- package/dist/adapter/ingest/overlay-applier.d.ts +118 -0
- package/dist/adapter/ingest/overlay-applier.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-applier.js +132 -0
- package/dist/adapter/ingest/overlay-apply.d.ts +60 -0
- package/dist/adapter/ingest/overlay-apply.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-apply.js +101 -0
- package/dist/adapter/ingest/overlay-file.d.ts +79 -0
- package/dist/adapter/ingest/overlay-file.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-file.js +66 -0
- package/dist/adapter/ingest/overlay-report.d.ts +113 -0
- package/dist/adapter/ingest/overlay-report.d.ts.map +1 -0
- package/dist/adapter/ingest/overlay-report.js +103 -0
- package/dist/adapter/ingest/scene-capture.d.ts +97 -0
- package/dist/adapter/ingest/scene-capture.d.ts.map +1 -0
- package/dist/adapter/ingest/scene-capture.js +248 -0
- package/dist/adapter/ingest/upstream-pin.d.ts +47 -0
- package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -0
- package/dist/adapter/ingest/upstream-pin.js +50 -0
- package/dist/adapter/loop-gate-report.d.ts +34 -0
- package/dist/adapter/loop-gate-report.d.ts.map +1 -0
- package/dist/adapter/loop-gate-report.js +37 -0
- package/dist/adapter/rapier-physics-adapter.d.ts +12 -0
- package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -0
- package/dist/adapter/rapier-physics-adapter.js +46 -0
- package/dist/adapter/system-adapter.d.ts +133 -0
- package/dist/adapter/system-adapter.d.ts.map +1 -0
- package/dist/adapter/system-adapter.js +13 -0
- package/dist/adapter/transform.d.ts +18 -0
- package/dist/adapter/transform.d.ts.map +1 -0
- package/dist/adapter/transform.js +1 -0
- package/dist/adapter/vgai-scene-game-adapter.d.ts +116 -0
- package/dist/adapter/vgai-scene-game-adapter.d.ts.map +1 -0
- package/dist/adapter/vgai-scene-game-adapter.js +714 -0
- package/dist/adapter/world-kind.d.ts +30 -0
- package/dist/adapter/world-kind.d.ts.map +1 -0
- package/dist/adapter/world-kind.js +18 -0
- package/dist/ai/navigation.d.ts +64 -0
- package/dist/ai/navigation.d.ts.map +1 -0
- package/dist/ai/navigation.js +133 -0
- package/dist/animation/anim-graph-types.d.ts +25 -0
- package/dist/animation/anim-graph-types.d.ts.map +1 -0
- package/dist/animation/anim-graph-types.js +1 -0
- package/dist/animation/animation-clock.d.ts +213 -0
- package/dist/animation/animation-clock.d.ts.map +1 -0
- package/dist/animation/animation-clock.js +301 -0
- package/dist/animation/blend-node.d.ts +22 -0
- package/dist/animation/blend-node.d.ts.map +1 -0
- package/dist/animation/blend-node.js +97 -0
- package/dist/animation/camera-ownership.d.ts +250 -0
- package/dist/animation/camera-ownership.d.ts.map +1 -0
- package/dist/animation/camera-ownership.js +169 -0
- package/dist/animation/cinematic-cues.d.ts +200 -0
- package/dist/animation/cinematic-cues.d.ts.map +1 -0
- package/dist/animation/cinematic-cues.js +213 -0
- package/dist/animation/clip-map.d.ts +12 -0
- package/dist/animation/clip-map.d.ts.map +1 -0
- package/dist/animation/clip-map.js +37 -0
- package/dist/animation/gsap-registration.d.ts +119 -0
- package/dist/animation/gsap-registration.d.ts.map +1 -0
- package/dist/animation/gsap-registration.js +92 -0
- package/dist/animation/theatre-clock-binding.d.ts +89 -0
- package/dist/animation/theatre-clock-binding.d.ts.map +1 -0
- package/dist/animation/theatre-clock-binding.js +29 -0
- package/dist/animation/theatre-director.d.ts +242 -0
- package/dist/animation/theatre-director.d.ts.map +1 -0
- package/dist/animation/theatre-director.js +235 -0
- package/dist/animation/theatre-object-binding.d.ts +305 -0
- package/dist/animation/theatre-object-binding.d.ts.map +1 -0
- package/dist/animation/theatre-object-binding.js +351 -0
- package/dist/animation/xstate-animation-binding.d.ts +111 -0
- package/dist/animation/xstate-animation-binding.d.ts.map +1 -0
- package/dist/animation/xstate-animation-binding.js +307 -0
- package/dist/animation/xstate-animation-meta.d.ts +228 -0
- package/dist/animation/xstate-animation-meta.d.ts.map +1 -0
- package/dist/animation/xstate-animation-meta.js +221 -0
- package/dist/assets.d.ts +26 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +55 -0
- package/dist/audio/index.d.ts +4 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/index.js +24 -0
- package/dist/audio/tone-clock-binding.d.ts +75 -0
- package/dist/audio/tone-clock-binding.d.ts.map +1 -0
- package/dist/audio/tone-clock-binding.js +29 -0
- package/dist/audio/tone-context.d.ts +114 -0
- package/dist/audio/tone-context.d.ts.map +1 -0
- package/dist/audio/tone-context.js +39 -0
- package/dist/audio/tone-offline-render.d.ts +90 -0
- package/dist/audio/tone-offline-render.d.ts.map +1 -0
- package/dist/audio/tone-offline-render.js +56 -0
- package/dist/audio/wav-encode.d.ts +38 -0
- package/dist/audio/wav-encode.d.ts.map +1 -0
- package/dist/audio/wav-encode.js +97 -0
- package/dist/core/game-loop.d.ts +21 -0
- package/dist/core/game-loop.d.ts.map +1 -0
- package/dist/core/game-loop.js +130 -0
- package/dist/core/system-runner.d.ts +120 -0
- package/dist/core/system-runner.d.ts.map +1 -0
- package/dist/core/system-runner.js +286 -0
- package/dist/core/types.d.ts +58 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +25 -0
- package/dist/data/data-asset.d.ts +101 -0
- package/dist/data/data-asset.d.ts.map +1 -0
- package/dist/data/data-asset.js +122 -0
- package/dist/data/data-check-core.d.ts +110 -0
- package/dist/data/data-check-core.d.ts.map +1 -0
- package/dist/data/data-check-core.js +178 -0
- package/dist/data/data-ref.d.ts +79 -0
- package/dist/data/data-ref.d.ts.map +1 -0
- package/dist/data/data-ref.js +130 -0
- package/dist/data/vite-plugin-data.d.ts +79 -0
- package/dist/data/vite-plugin-data.d.ts.map +1 -0
- package/dist/data/vite-plugin-data.js +217 -0
- package/dist/dev/console-bridge.d.ts +22 -0
- package/dist/dev/console-bridge.d.ts.map +1 -0
- package/dist/dev/console-bridge.js +71 -0
- package/dist/dev/debug-draw.d.ts +24 -0
- package/dist/dev/debug-draw.d.ts.map +1 -0
- package/dist/dev/debug-draw.js +73 -0
- package/dist/dev/logger.d.ts +30 -0
- package/dist/dev/logger.d.ts.map +1 -0
- package/dist/dev/logger.js +90 -0
- package/dist/ecs/component-manager.d.ts +189 -0
- package/dist/ecs/component-manager.d.ts.map +1 -0
- package/dist/ecs/component-manager.js +676 -0
- package/dist/ecs/game-component.d.ts +97 -0
- package/dist/ecs/game-component.d.ts.map +1 -0
- package/dist/ecs/game-component.js +80 -0
- package/dist/ecs/hmr-swap-report.d.ts +53 -0
- package/dist/ecs/hmr-swap-report.d.ts.map +1 -0
- package/dist/ecs/hmr-swap-report.js +55 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/input/input-manager.d.ts +596 -0
- package/dist/input/input-manager.d.ts.map +1 -0
- package/dist/input/input-manager.js +1564 -0
- package/dist/input/input-types.d.ts +171 -0
- package/dist/input/input-types.d.ts.map +1 -0
- package/dist/input/input-types.js +1 -0
- package/dist/input/prompt-labels.d.ts +21 -0
- package/dist/input/prompt-labels.d.ts.map +1 -0
- package/dist/input/prompt-labels.js +121 -0
- package/dist/input/rebind-controller.d.ts +59 -0
- package/dist/input/rebind-controller.d.ts.map +1 -0
- package/dist/input/rebind-controller.js +85 -0
- package/dist/input/schema.d.ts +16 -0
- package/dist/input/schema.d.ts.map +1 -0
- package/dist/input/schema.js +228 -0
- package/dist/loader.d.ts +43 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +59 -0
- package/dist/manifest/index.d.ts +5 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +8 -0
- package/dist/manifest/load-file.d.ts +4 -0
- package/dist/manifest/load-file.d.ts.map +1 -0
- package/dist/manifest/load-file.js +14 -0
- package/dist/manifest/load.d.ts +117 -0
- package/dist/manifest/load.d.ts.map +1 -0
- package/dist/manifest/load.js +255 -0
- package/dist/manifest/schema.d.ts +173 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +302 -0
- package/dist/physics/collision-system.d.ts +41 -0
- package/dist/physics/collision-system.d.ts.map +1 -0
- package/dist/physics/collision-system.js +64 -0
- package/dist/physics/physics-registry.d.ts +45 -0
- package/dist/physics/physics-registry.d.ts.map +1 -0
- package/dist/physics/physics-registry.js +65 -0
- package/dist/physics/transform-writer.d.ts +16 -0
- package/dist/physics/transform-writer.d.ts.map +1 -0
- package/dist/physics/transform-writer.js +38 -0
- package/dist/physics/trigger-dispatch.d.ts +24 -0
- package/dist/physics/trigger-dispatch.d.ts.map +1 -0
- package/dist/physics/trigger-dispatch.js +80 -0
- package/dist/react/game-state.d.ts +105 -0
- package/dist/react/game-state.d.ts.map +1 -0
- package/dist/react/game-state.js +144 -0
- package/dist/react/use-data.d.ts +60 -0
- package/dist/react/use-data.d.ts.map +1 -0
- package/dist/react/use-data.js +96 -0
- package/dist/react/use-selection.d.ts +75 -0
- package/dist/react/use-selection.d.ts.map +1 -0
- package/dist/react/use-selection.js +90 -0
- package/dist/render/auto-batcher.d.ts +34 -0
- package/dist/render/auto-batcher.d.ts.map +1 -0
- package/dist/render/auto-batcher.js +140 -0
- package/dist/render/render-batch-system.d.ts +33 -0
- package/dist/render/render-batch-system.d.ts.map +1 -0
- package/dist/render/render-batch-system.js +230 -0
- package/dist/render/render-features.d.ts +47 -0
- package/dist/render/render-features.d.ts.map +1 -0
- package/dist/render/render-features.js +105 -0
- package/dist/render/render-settings.d.ts +36 -0
- package/dist/render/render-settings.d.ts.map +1 -0
- package/dist/render/render-settings.js +51 -0
- package/dist/runtime/create-runtime.d.ts +280 -0
- package/dist/runtime/create-runtime.d.ts.map +1 -0
- package/dist/runtime/create-runtime.js +795 -0
- package/dist/runtime/frame-selector-cache.d.ts +41 -0
- package/dist/runtime/frame-selector-cache.d.ts.map +1 -0
- package/dist/runtime/frame-selector-cache.js +65 -0
- package/dist/runtime/game.d.ts +433 -0
- package/dist/runtime/game.d.ts.map +1 -0
- package/dist/runtime/game.js +569 -0
- package/dist/runtime/input-router.d.ts +78 -0
- package/dist/runtime/input-router.d.ts.map +1 -0
- package/dist/runtime/input-router.js +171 -0
- package/dist/runtime/mount-game.d.ts +129 -0
- package/dist/runtime/mount-game.d.ts.map +1 -0
- package/dist/runtime/mount-game.js +152 -0
- package/dist/runtime/mount-manifest.d.ts +119 -0
- package/dist/runtime/mount-manifest.d.ts.map +1 -0
- package/dist/runtime/mount-manifest.js +204 -0
- package/dist/runtime/render-audio-control.d.ts +110 -0
- package/dist/runtime/render-audio-control.d.ts.map +1 -0
- package/dist/runtime/render-audio-control.js +111 -0
- package/dist/runtime/render-control.d.ts +291 -0
- package/dist/runtime/render-control.d.ts.map +1 -0
- package/dist/runtime/render-control.js +264 -0
- package/dist/runtime/render-seed.d.ts +57 -0
- package/dist/runtime/render-seed.d.ts.map +1 -0
- package/dist/runtime/render-seed.js +74 -0
- package/dist/runtime/scene-ui-bridge.d.ts +69 -0
- package/dist/runtime/scene-ui-bridge.d.ts.map +1 -0
- package/dist/runtime/scene-ui-bridge.js +23 -0
- package/dist/runtime/scene-ui-data.d.ts +13 -0
- package/dist/runtime/scene-ui-data.d.ts.map +1 -0
- package/dist/runtime/scene-ui-data.js +92 -0
- package/dist/runtime/state-bridge.d.ts +47 -0
- package/dist/runtime/state-bridge.d.ts.map +1 -0
- package/dist/runtime/state-bridge.js +53 -0
- package/dist/runtime/types.d.ts +179 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +1 -0
- package/dist/scene/asset-loaders.d.ts +79 -0
- package/dist/scene/asset-loaders.d.ts.map +1 -0
- package/dist/scene/asset-loaders.js +141 -0
- package/dist/scene/asset-paths.d.ts +11 -0
- package/dist/scene/asset-paths.d.ts.map +1 -0
- package/dist/scene/asset-paths.js +108 -0
- package/dist/scene/asset-ref-check.d.ts +88 -0
- package/dist/scene/asset-ref-check.d.ts.map +1 -0
- package/dist/scene/asset-ref-check.js +214 -0
- package/dist/scene/asset-registry.d.ts +30 -0
- package/dist/scene/asset-registry.d.ts.map +1 -0
- package/dist/scene/asset-registry.js +50 -0
- package/dist/scene/collider-dimensions.d.ts +63 -0
- package/dist/scene/collider-dimensions.d.ts.map +1 -0
- package/dist/scene/collider-dimensions.js +98 -0
- package/dist/scene/component-registry.d.ts +17 -0
- package/dist/scene/component-registry.d.ts.map +1 -0
- package/dist/scene/component-registry.js +28 -0
- package/dist/scene/defaults.d.ts +252 -0
- package/dist/scene/defaults.d.ts.map +1 -0
- package/dist/scene/defaults.js +151 -0
- package/dist/scene/geometries/index.d.ts +8 -0
- package/dist/scene/geometries/index.d.ts.map +1 -0
- package/dist/scene/geometries/index.js +7 -0
- package/dist/scene/geometries/terrain.d.ts +2 -0
- package/dist/scene/geometries/terrain.d.ts.map +1 -0
- package/dist/scene/geometries/terrain.js +37 -0
- package/dist/scene/geometry-registry.d.ts +24 -0
- package/dist/scene/geometry-registry.d.ts.map +1 -0
- package/dist/scene/geometry-registry.js +20 -0
- package/dist/scene/instance-registry.d.ts +36 -0
- package/dist/scene/instance-registry.d.ts.map +1 -0
- package/dist/scene/instance-registry.js +55 -0
- package/dist/scene/instancers/grid.d.ts +2 -0
- package/dist/scene/instancers/grid.d.ts.map +1 -0
- package/dist/scene/instancers/grid.js +36 -0
- package/dist/scene/instancers/index.d.ts +8 -0
- package/dist/scene/instancers/index.d.ts.map +1 -0
- package/dist/scene/instancers/index.js +7 -0
- package/dist/scene/light-camera-factory.d.ts +23 -0
- package/dist/scene/light-camera-factory.d.ts.map +1 -0
- package/dist/scene/light-camera-factory.js +68 -0
- package/dist/scene/material-factory.d.ts +17 -0
- package/dist/scene/material-factory.d.ts.map +1 -0
- package/dist/scene/material-factory.js +197 -0
- package/dist/scene/material-registry.d.ts +40 -0
- package/dist/scene/material-registry.d.ts.map +1 -0
- package/dist/scene/material-registry.js +44 -0
- package/dist/scene/materials/index.d.ts +8 -0
- package/dist/scene/materials/index.d.ts.map +1 -0
- package/dist/scene/materials/index.js +7 -0
- package/dist/scene/materials/water.d.ts +2 -0
- package/dist/scene/materials/water.d.ts.map +1 -0
- package/dist/scene/materials/water.js +54 -0
- package/dist/scene/parse.d.ts +23 -0
- package/dist/scene/parse.d.ts.map +1 -0
- package/dist/scene/parse.js +179 -0
- package/dist/scene/particles-factory.d.ts +33 -0
- package/dist/scene/particles-factory.d.ts.map +1 -0
- package/dist/scene/particles-factory.js +282 -0
- package/dist/scene/scene-apply.d.ts +109 -0
- package/dist/scene/scene-apply.d.ts.map +1 -0
- package/dist/scene/scene-apply.js +326 -0
- package/dist/scene/scene-diff-schema.d.ts +285 -0
- package/dist/scene/scene-diff-schema.d.ts.map +1 -0
- package/dist/scene/scene-diff-schema.js +92 -0
- package/dist/scene/scene-diff-types.d.ts +40 -0
- package/dist/scene/scene-diff-types.d.ts.map +1 -0
- package/dist/scene/scene-diff-types.js +14 -0
- package/dist/scene/scene-loader.d.ts +177 -0
- package/dist/scene/scene-loader.d.ts.map +1 -0
- package/dist/scene/scene-loader.js +1213 -0
- package/dist/scene/scene-query.d.ts +11 -0
- package/dist/scene/scene-query.d.ts.map +1 -0
- package/dist/scene/scene-query.js +63 -0
- package/dist/scene/scene-types.d.ts +10 -0
- package/dist/scene/scene-types.d.ts.map +1 -0
- package/dist/scene/scene-types.js +8 -0
- package/dist/scene/scene-version.d.ts +26 -0
- package/dist/scene/scene-version.d.ts.map +1 -0
- package/dist/scene/scene-version.js +34 -0
- package/dist/scene/schema/animation.d.ts +8 -0
- package/dist/scene/schema/animation.d.ts.map +1 -0
- package/dist/scene/schema/animation.js +42 -0
- package/dist/scene/schema/audio.d.ts +13 -0
- package/dist/scene/schema/audio.d.ts.map +1 -0
- package/dist/scene/schema/audio.js +22 -0
- package/dist/scene/schema/camera.d.ts +28 -0
- package/dist/scene/schema/camera.d.ts.map +1 -0
- package/dist/scene/schema/camera.js +17 -0
- package/dist/scene/schema/collider.d.ts +40 -0
- package/dist/scene/schema/collider.d.ts.map +1 -0
- package/dist/scene/schema/collider.js +55 -0
- package/dist/scene/schema/entity-ref.d.ts +31 -0
- package/dist/scene/schema/entity-ref.d.ts.map +1 -0
- package/dist/scene/schema/entity-ref.js +61 -0
- package/dist/scene/schema/entity.d.ts +1036 -0
- package/dist/scene/schema/entity.d.ts.map +1 -0
- package/dist/scene/schema/entity.js +153 -0
- package/dist/scene/schema/environment.d.ts +425 -0
- package/dist/scene/schema/environment.d.ts.map +1 -0
- package/dist/scene/schema/environment.js +357 -0
- package/dist/scene/schema/index.d.ts +39 -0
- package/dist/scene/schema/index.d.ts.map +1 -0
- package/dist/scene/schema/index.js +20 -0
- package/dist/scene/schema/instances.d.ts +14 -0
- package/dist/scene/schema/instances.d.ts.map +1 -0
- package/dist/scene/schema/instances.js +28 -0
- package/dist/scene/schema/joint.d.ts +23 -0
- package/dist/scene/schema/joint.d.ts.map +1 -0
- package/dist/scene/schema/joint.js +23 -0
- package/dist/scene/schema/light.d.ts +38 -0
- package/dist/scene/schema/light.d.ts.map +1 -0
- package/dist/scene/schema/light.js +26 -0
- package/dist/scene/schema/material.d.ts +199 -0
- package/dist/scene/schema/material.d.ts.map +1 -0
- package/dist/scene/schema/material.js +99 -0
- package/dist/scene/schema/mesh.d.ts +48 -0
- package/dist/scene/schema/mesh.d.ts.map +1 -0
- package/dist/scene/schema/mesh.js +82 -0
- package/dist/scene/schema/particles.d.ts +2178 -0
- package/dist/scene/schema/particles.d.ts.map +1 -0
- package/dist/scene/schema/particles.js +321 -0
- package/dist/scene/schema/physics.d.ts +56 -0
- package/dist/scene/schema/physics.d.ts.map +1 -0
- package/dist/scene/schema/physics.js +37 -0
- package/dist/scene/schema/scene-file.d.ts +304 -0
- package/dist/scene/schema/scene-file.d.ts.map +1 -0
- package/dist/scene/schema/scene-file.js +262 -0
- package/dist/scene/schema/shadow.d.ts +28 -0
- package/dist/scene/schema/shadow.d.ts.map +1 -0
- package/dist/scene/schema/shadow.js +20 -0
- package/dist/scene/schema/spline.d.ts +25 -0
- package/dist/scene/schema/spline.d.ts.map +1 -0
- package/dist/scene/schema/spline.js +15 -0
- package/dist/scene/schema/tuples.d.ts +12 -0
- package/dist/scene/schema/tuples.d.ts.map +1 -0
- package/dist/scene/schema/tuples.js +14 -0
- package/dist/scene/schema/ui.d.ts +880 -0
- package/dist/scene/schema/ui.d.ts.map +1 -0
- package/dist/scene/schema/ui.js +506 -0
- package/dist/scene/user-data.d.ts +171 -0
- package/dist/scene/user-data.d.ts.map +1 -0
- package/dist/scene/user-data.js +137 -0
- package/dist/setup/setup-audio.d.ts +20 -0
- package/dist/setup/setup-audio.d.ts.map +1 -0
- package/dist/setup/setup-audio.js +41 -0
- package/dist/setup/setup-particles.d.ts +17 -0
- package/dist/setup/setup-particles.d.ts.map +1 -0
- package/dist/setup/setup-particles.js +16 -0
- package/dist/setup/setup-physics.d.ts +25 -0
- package/dist/setup/setup-physics.d.ts.map +1 -0
- package/dist/setup/setup-physics.js +51 -0
- package/dist/setup/setup-renderer.d.ts +69 -0
- package/dist/setup/setup-renderer.d.ts.map +1 -0
- package/dist/setup/setup-renderer.js +363 -0
- package/dist/tools/define-tool.d.ts +105 -0
- package/dist/tools/define-tool.d.ts.map +1 -0
- package/dist/tools/define-tool.js +82 -0
- package/dist/world2d/authoring-2d.d.ts +76 -0
- package/dist/world2d/authoring-2d.d.ts.map +1 -0
- package/dist/world2d/authoring-2d.js +176 -0
- package/dist/world2d/capture-to-scene2d.d.ts +5 -0
- package/dist/world2d/capture-to-scene2d.d.ts.map +1 -0
- package/dist/world2d/capture-to-scene2d.js +49 -0
- package/dist/world2d/collision-2d.d.ts +52 -0
- package/dist/world2d/collision-2d.d.ts.map +1 -0
- package/dist/world2d/collision-2d.js +70 -0
- package/dist/world2d/components-2d.d.ts +47 -0
- package/dist/world2d/components-2d.d.ts.map +1 -0
- package/dist/world2d/components-2d.js +77 -0
- package/dist/world2d/index.d.ts +34 -0
- package/dist/world2d/index.d.ts.map +1 -0
- package/dist/world2d/index.js +32 -0
- package/dist/world2d/ingest-iframe-2d.d.ts +82 -0
- package/dist/world2d/ingest-iframe-2d.d.ts.map +1 -0
- package/dist/world2d/ingest-iframe-2d.js +166 -0
- package/dist/world2d/ingest2d.d.ts +97 -0
- package/dist/world2d/ingest2d.d.ts.map +1 -0
- package/dist/world2d/ingest2d.js +40 -0
- package/dist/world2d/physics2d-registry.d.ts +24 -0
- package/dist/world2d/physics2d-registry.d.ts.map +1 -0
- package/dist/world2d/physics2d-registry.js +38 -0
- package/dist/world2d/pixi-game-adapter.d.ts +107 -0
- package/dist/world2d/pixi-game-adapter.d.ts.map +1 -0
- package/dist/world2d/pixi-game-adapter.js +211 -0
- package/dist/world2d/pixi-surface.d.ts +39 -0
- package/dist/world2d/pixi-surface.d.ts.map +1 -0
- package/dist/world2d/pixi-surface.js +47 -0
- package/dist/world2d/scene-capture-2d.d.ts +43 -0
- package/dist/world2d/scene-capture-2d.d.ts.map +1 -0
- package/dist/world2d/scene-capture-2d.js +92 -0
- package/dist/world2d/scene2d-loader.d.ts +27 -0
- package/dist/world2d/scene2d-loader.d.ts.map +1 -0
- package/dist/world2d/scene2d-loader.js +274 -0
- package/dist/world2d/schema/entity2d.d.ts +102 -0
- package/dist/world2d/schema/entity2d.d.ts.map +1 -0
- package/dist/world2d/schema/entity2d.js +119 -0
- package/dist/world2d/schema/physics2d.d.ts +46 -0
- package/dist/world2d/schema/physics2d.d.ts.map +1 -0
- package/dist/world2d/schema/physics2d.js +45 -0
- package/dist/world2d/schema/sprite.d.ts +42 -0
- package/dist/world2d/schema/sprite.d.ts.map +1 -0
- package/dist/world2d/schema/sprite.js +63 -0
- package/dist/world2d/schema/tilemap.d.ts +15 -0
- package/dist/world2d/schema/tilemap.d.ts.map +1 -0
- package/dist/world2d/schema/tilemap.js +19 -0
- package/dist/world2d/schema/tuples2d.d.ts +20 -0
- package/dist/world2d/schema/tuples2d.d.ts.map +1 -0
- package/dist/world2d/schema/tuples2d.js +19 -0
- package/dist/world2d/system-adapters-2d.d.ts +16 -0
- package/dist/world2d/system-adapters-2d.d.ts.map +1 -0
- package/dist/world2d/system-adapters-2d.js +37 -0
- package/dist/world2d/transform-writer-2d.d.ts +16 -0
- package/dist/world2d/transform-writer-2d.d.ts.map +1 -0
- package/dist/world2d/transform-writer-2d.js +22 -0
- package/dist/world2d/types.d.ts +53 -0
- package/dist/world2d/types.d.ts.map +1 -0
- package/dist/world2d/types.js +1 -0
- package/package.json +18 -4
- package/src/adapter/authoring.ts +10 -0
- package/src/adapter/first-party-systems.ts +23 -34
- package/src/adapter/index.ts +1 -3
- package/src/adapter/system-adapter.ts +15 -22
- package/src/adapter/vgai-scene-game-adapter.ts +5 -14
- package/src/animation/anim-graph-types.ts +12 -43
- package/src/animation/animation-clock.ts +479 -0
- package/src/animation/camera-ownership.ts +467 -0
- package/src/animation/cinematic-cues.ts +451 -0
- package/src/animation/clip-map.ts +41 -0
- package/src/animation/gsap-registration.ts +184 -0
- package/src/animation/theatre-clock-binding.ts +111 -0
- package/src/animation/theatre-director.ts +347 -0
- package/src/animation/theatre-object-binding.ts +661 -0
- package/src/animation/xstate-animation-binding.ts +398 -0
- package/src/animation/xstate-animation-meta.ts +282 -0
- package/src/audio/index.ts +39 -7
- package/src/audio/tone-clock-binding.ts +98 -0
- package/src/audio/tone-context.ts +129 -0
- package/src/audio/tone-offline-render.ts +167 -0
- package/src/audio/wav-encode.ts +119 -0
- package/src/core/game-loop.ts +17 -0
- package/src/core/types.ts +13 -0
- package/src/data/data-asset.ts +167 -0
- package/src/data/data-check-core.ts +242 -0
- package/src/data/data-ref.ts +145 -0
- package/src/data/vite-plugin-data.ts +290 -0
- package/src/index.ts +48 -0
- package/src/input/input-manager.ts +1206 -32
- package/src/input/input-types.ts +155 -3
- package/src/input/prompt-labels.ts +122 -0
- package/src/input/rebind-controller.ts +105 -0
- package/src/input/schema.ts +206 -52
- package/src/react/use-data.ts +114 -0
- package/src/react/use-selection.tsx +135 -0
- package/src/runtime/create-runtime.ts +30 -9
- package/src/runtime/render-audio-control.ts +168 -0
- package/src/runtime/render-control.ts +522 -0
- package/src/runtime/render-seed.ts +79 -0
- package/src/runtime/types.ts +0 -5
- package/src/scene/asset-loaders.ts +10 -36
- package/src/scene/asset-paths.ts +0 -2
- package/src/scene/asset-ref-check.ts +248 -0
- package/src/scene/parse.ts +133 -0
- package/src/scene/scene-loader.ts +81 -96
- package/src/scene/schema/animation.ts +30 -79
- package/src/scene/schema/entity.ts +20 -0
- package/src/scene/schema/index.ts +2 -12
- package/src/scene/user-data.ts +8 -9
- package/src/setup/setup-renderer.ts +9 -2
- package/src/tools/define-tool.ts +152 -0
- package/src/animation/anim-graph.ts +0 -406
- package/src/animation/anim-system.ts +0 -28
- package/src/animation/property-track.ts +0 -178
- package/src/animation/schema.ts +0 -204
- package/src/audio/ambient.ts +0 -300
- package/src/audio/impacts.ts +0 -212
- package/src/audio/movement.ts +0 -140
- package/src/audio/musical.ts +0 -200
- package/src/audio/ui-sounds.ts +0 -171
- package/src/audio/vehicle.ts +0 -235
- package/src/audio/weapons.ts +0 -152
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// T3.1 slice 1 — the game manifest loader/validator (docs/GAME-MANIFEST-DESIGN.md §5).
|
|
2
|
+
//
|
|
3
|
+
// Pure data-in/data-out: `loadGameManifest(raw)` parses `raw` against
|
|
4
|
+
// `GameManifestSchema`, runs the cross-field checks §3 promises beyond what
|
|
5
|
+
// Zod alone can express, resolves every optional/derivable field, and
|
|
6
|
+
// returns a `ResolvedGameManifest` with nothing left implicit. This is the
|
|
7
|
+
// schema's runtime reader (T4.1 policy) — every described field in
|
|
8
|
+
// `schema.ts` either drives a check here or is carried into the resolved
|
|
9
|
+
// output explicitly (see the per-field comments below and
|
|
10
|
+
// `packages/engine/test/schema-consumption-map.ts`'s `manifest.*` entries).
|
|
11
|
+
//
|
|
12
|
+
// No `fs` import here on purpose — `load-file.ts` is the thin Node-only
|
|
13
|
+
// wrapper that reads a path and calls this function, so browser bundles that
|
|
14
|
+
// only need `loadGameManifest` never pull in `node:fs`.
|
|
15
|
+
import { GameManifestSchema, } from './schema';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// §4 — the per-context ceiling table (named + exported: the tier-table doc
|
|
18
|
+
// test in slice 2 pins docs/CAPABILITY-TIERS.md's rows against this).
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* Ceiling (maximum legal declared `Tier`) per adapter type and delivery
|
|
22
|
+
* context. `default` worlds are always first-party in both contexts (D6/§2 —
|
|
23
|
+
* a first-party world is fully vgai-native everywhere). `ingest` worlds are
|
|
24
|
+
* ceilinged by their own capture `strategy`: locally the local CLI's Vite
|
|
25
|
+
* pipeline gives bundler dedupe, so every strategy reaches its own natural
|
|
26
|
+
* rung; hosted has no bundler (esbuild-wasm + externals only), and a
|
|
27
|
+
* `deduped` world is DEFINED by being source built through our pipeline — no
|
|
28
|
+
* prebuilt bundle exists to fall back to an iframe rung, and nothing
|
|
29
|
+
* implements a hosted build for it, so hosted is `unsupported` (honesty over
|
|
30
|
+
* optimism; if the hosted esbuild-wasm path ever proves capable, raising
|
|
31
|
+
* this ceiling is a non-breaking widening). `shared`/`iframe-reachable`/
|
|
32
|
+
* `opaque-embed` don't depend on a bundler either way, so they carry through
|
|
33
|
+
* unchanged. `module` adapters have no derivable ceiling ("a custom
|
|
34
|
+
* adapter's reach is not derivable", §4) — modeled here as `first-party`
|
|
35
|
+
* (the top rank), i.e. no ceiling actually constrains a module adapter's
|
|
36
|
+
* declared tier; the loader instead requires the tier to be declared
|
|
37
|
+
* explicitly for module worlds (see `resolveCapabilities`), since there is no
|
|
38
|
+
* default to derive.
|
|
39
|
+
*/
|
|
40
|
+
export const CAPABILITY_CEILINGS = {
|
|
41
|
+
default: { local: 'first-party', hosted: 'first-party' },
|
|
42
|
+
ingest: {
|
|
43
|
+
shared: { local: 'shared', hosted: 'shared' },
|
|
44
|
+
deduped: { local: 'deduped', hosted: 'unsupported' },
|
|
45
|
+
'iframe-reachable': { local: 'iframe-reachable', hosted: 'iframe-reachable' },
|
|
46
|
+
'opaque-embed': { local: 'opaque-embed', hosted: 'opaque-embed' },
|
|
47
|
+
},
|
|
48
|
+
module: { local: 'first-party', hosted: 'first-party' },
|
|
49
|
+
};
|
|
50
|
+
/** Total order over `Tier` (§4: `first-party > shared ≈ deduped > iframe-reachable > opaque-embed > unsupported`). */
|
|
51
|
+
const TIER_RANK = {
|
|
52
|
+
'first-party': 5,
|
|
53
|
+
shared: 4,
|
|
54
|
+
deduped: 4,
|
|
55
|
+
'iframe-reachable': 3,
|
|
56
|
+
'opaque-embed': 2,
|
|
57
|
+
unsupported: 1,
|
|
58
|
+
};
|
|
59
|
+
/** Default relative path for `server.module` when omitted (§3) — the scaffolded Colyseus bootstrap. */
|
|
60
|
+
export const DEFAULT_SERVER_MODULE = 'server/colyseus-setup.ts';
|
|
61
|
+
const SEMVER_RE = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z-.]+)?(?:\+[0-9A-Za-z-.]+)?$/;
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Adapter shape guards
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
function isModuleAdapter(adapter) {
|
|
66
|
+
return typeof adapter === 'object' && 'module' in adapter;
|
|
67
|
+
}
|
|
68
|
+
function isIngestAdapter(adapter) {
|
|
69
|
+
return typeof adapter === 'object' && 'ingest' in adapter;
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Cross-field checks (§3 — beyond what Zod alone enforces)
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
//
|
|
75
|
+
// D-V6 (docs/WAVE5-MULTIWORLD-INGEST-DESIGN.md): world-id uniqueness used to
|
|
76
|
+
// be a cross-field check HERE (`checkUniqueWorldIds`, removed) — it moved
|
|
77
|
+
// INTO `GameManifestSchema`'s `worlds` `superRefine` (schema.ts) instead, so
|
|
78
|
+
// the generated JSON Schema and any other schema consumer see the same
|
|
79
|
+
// constraint the loader always enforced. `parseManifest` below catches that
|
|
80
|
+
// one recognizable schema-level issue and rethrows it as a clean, single
|
|
81
|
+
// `Error` — the exact message shape `checkUniqueWorldIds` used to throw
|
|
82
|
+
// directly — rather than a raw multi-issue `ZodError` dump, so existing
|
|
83
|
+
// callers/tests that pattern-match the message text are unaffected by the
|
|
84
|
+
// enforcement moving one layer down.
|
|
85
|
+
function checkAdapterSceneEntryRules(world) {
|
|
86
|
+
const { adapter } = world;
|
|
87
|
+
if (adapter === 'default' && !world.scene && !world.entry) {
|
|
88
|
+
throw new Error(`Game manifest: world "${world.id}" uses the 'default' adapter but declares neither ` +
|
|
89
|
+
'`scene` nor `entry` — a default-adapter world requires one of the two (§3).');
|
|
90
|
+
}
|
|
91
|
+
if (isIngestAdapter(adapter) && world.scene !== undefined) {
|
|
92
|
+
throw new Error(`Game manifest: world "${world.id}" uses an { ingest } adapter but declares \`scene\` — ` +
|
|
93
|
+
'ingest adapters forbid `scene` (adapt-never-migrate: ingested games keep their own ' +
|
|
94
|
+
"formats; overlay persistence is T3.2's) (§3).");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Historical note (Track N, N1): this file used to reject EVERY `kind:
|
|
98
|
+
// 'react'` + `{ ingest }` world outright here (`checkReactAdapterRestriction`,
|
|
99
|
+
// citing "no react ingest program is un-parked"). Track N un-parks exactly
|
|
100
|
+
// that program (docs/REACT-INGEST-LANDING-DESIGN.md) — react+ingest is now a
|
|
101
|
+
// structurally legal combination, resolved to the `'ingest-react'` identity
|
|
102
|
+
// by `resolveAdapter` below like any other ingest world. There is nothing
|
|
103
|
+
// left to reject at THIS layer: `checkAdapterSceneEntryRules` above already
|
|
104
|
+
// forbids `scene` on any `{ ingest }`-adapter world (kind-agnostic), and the
|
|
105
|
+
// v1 "deduped strategy only" restriction is an editor-resolver concern
|
|
106
|
+
// (D-N3), not a manifest-shape concern — see the `ResolvedAdapter` type's
|
|
107
|
+
// comment above.
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Resolution (§5)
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
function resolveAdapter(world) {
|
|
112
|
+
const { adapter, kind } = world;
|
|
113
|
+
if (adapter === 'default') {
|
|
114
|
+
const identity = kind === 'threejs' ? 'default-three' : kind === 'pixijs' ? 'default-pixi' : 'default-react';
|
|
115
|
+
return { type: 'default', identity };
|
|
116
|
+
}
|
|
117
|
+
if (isModuleAdapter(adapter)) {
|
|
118
|
+
return { type: 'module', identity: 'module', module: adapter.module };
|
|
119
|
+
}
|
|
120
|
+
// isIngestAdapter (Track N, N1: 'ingest-react' joins 'ingest-three'/
|
|
121
|
+
// 'ingest-pixi' — see the `ResolvedAdapter` type's comment above for why
|
|
122
|
+
// this stays strategy-agnostic here).
|
|
123
|
+
const identity = kind === 'threejs' ? 'ingest-three' : kind === 'pixijs' ? 'ingest-pixi' : 'ingest-react';
|
|
124
|
+
const ingest = adapter.ingest;
|
|
125
|
+
return {
|
|
126
|
+
type: 'ingest',
|
|
127
|
+
identity,
|
|
128
|
+
strategy: ingest.strategy,
|
|
129
|
+
entryHtml: ingest.entryHtml,
|
|
130
|
+
assets: ingest.assets,
|
|
131
|
+
domStubs: ingest.domStubs,
|
|
132
|
+
captureTimeoutMs: ingest.captureTimeoutMs,
|
|
133
|
+
bundleUrl: ingest.bundleUrl,
|
|
134
|
+
baseHref: ingest.baseHref,
|
|
135
|
+
assetBaseUrl: ingest.assetBaseUrl,
|
|
136
|
+
extraDeps: ingest.extraDeps,
|
|
137
|
+
pixiModuleUrl: ingest.pixiModuleUrl,
|
|
138
|
+
bodyHtml: ingest.bodyHtml,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function ceilingFor(adapter, context) {
|
|
142
|
+
if (adapter === 'default')
|
|
143
|
+
return CAPABILITY_CEILINGS.default[context];
|
|
144
|
+
if (isModuleAdapter(adapter))
|
|
145
|
+
return CAPABILITY_CEILINGS.module[context];
|
|
146
|
+
return CAPABILITY_CEILINGS.ingest[adapter.ingest.strategy][context];
|
|
147
|
+
}
|
|
148
|
+
function resolveCapabilities(world) {
|
|
149
|
+
const contexts = ['local', 'hosted'];
|
|
150
|
+
const result = {};
|
|
151
|
+
for (const context of contexts) {
|
|
152
|
+
const declared = world.capabilities?.[context];
|
|
153
|
+
if (declared !== undefined) {
|
|
154
|
+
const ceiling = ceilingFor(world.adapter, context);
|
|
155
|
+
if (TIER_RANK[declared] > TIER_RANK[ceiling]) {
|
|
156
|
+
throw new Error(`Game manifest: world "${world.id}": declared capabilities.${context} tier "${declared}" ` +
|
|
157
|
+
`exceeds the "${ceiling}" ceiling for this adapter in the ${context} context (§4). ` +
|
|
158
|
+
'Under-claiming (including `unsupported`) is legal; over-claiming is not.');
|
|
159
|
+
}
|
|
160
|
+
result[context] = declared;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
// Omitted -> derive.
|
|
164
|
+
if (world.adapter === 'default') {
|
|
165
|
+
result[context] = 'first-party';
|
|
166
|
+
}
|
|
167
|
+
else if (isModuleAdapter(world.adapter)) {
|
|
168
|
+
throw new Error(`Game manifest: world "${world.id}": { module } adapter requires an explicit ` +
|
|
169
|
+
`capabilities.${context} declaration — a custom adapter's reach is not derivable (§4).`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
result[context] = CAPABILITY_CEILINGS.ingest[world.adapter.ingest.strategy][context];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
function checkEngineVersionPin(version) {
|
|
178
|
+
if (!SEMVER_RE.test(version)) {
|
|
179
|
+
throw new Error(`Game manifest: engine.version "${version}" is not a valid exact semver string (e.g. ` +
|
|
180
|
+
'"0.1.0") — §1.5 requires an exact identity pin, not a range.');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Resolve one already-Zod-validated world entry into its `ResolvedWorldEntry`
|
|
185
|
+
* (adapter identity, capabilities, and a pass-through of every other field).
|
|
186
|
+
* Every `WorldEntry` field participates here or in a check above:
|
|
187
|
+
* `id`/`kind` drive adapter resolution + uniqueness; `adapter` (incl. its
|
|
188
|
+
* `module`/`ingest.*` sub-fields) drives identity + capability-ceiling
|
|
189
|
+
* resolution; `scene`/`entry` drive the scene/entry cross-field rule and are
|
|
190
|
+
* carried through; `zOrder` drives the final sort; `pausable`/`loop` are
|
|
191
|
+
* carried through as-is (their consumers are the runtime/CLI, T3.2/T3.3);
|
|
192
|
+
* `capabilities.{local,hosted}` drive tier resolution; `description` (T3.3
|
|
193
|
+
* slice 3) is carried through as-is — its consumer today is
|
|
194
|
+
* `resolveIngestDescriptor` (packages/editor/src/adapter-resolver.ts), which
|
|
195
|
+
* threads an ingest-three world's description into `IngestGame.description`.
|
|
196
|
+
*/
|
|
197
|
+
function resolveWorld(world) {
|
|
198
|
+
checkAdapterSceneEntryRules(world);
|
|
199
|
+
return {
|
|
200
|
+
id: world.id,
|
|
201
|
+
kind: world.kind,
|
|
202
|
+
description: world.description,
|
|
203
|
+
adapter: resolveAdapter(world),
|
|
204
|
+
scene: world.scene,
|
|
205
|
+
entry: world.entry,
|
|
206
|
+
zOrder: world.zOrder,
|
|
207
|
+
pausable: world.pausable,
|
|
208
|
+
loop: world.loop,
|
|
209
|
+
capabilities: resolveCapabilities(world),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
// ---------------------------------------------------------------------------
|
|
213
|
+
// Entry point
|
|
214
|
+
// ---------------------------------------------------------------------------
|
|
215
|
+
/**
|
|
216
|
+
* Parse + validate + resolve a raw manifest value into a `ResolvedGameManifest`.
|
|
217
|
+
* Pure data-in/data-out (no `fs`) — see `load-file.ts` for the Node path-based
|
|
218
|
+
* wrapper. Throws a descriptive `Error` (naming the offending world/field) on
|
|
219
|
+
* any Zod validation failure or cross-field rule violation.
|
|
220
|
+
*/
|
|
221
|
+
export function loadGameManifest(raw) {
|
|
222
|
+
const parsed = GameManifestSchema.safeParse(raw);
|
|
223
|
+
if (!parsed.success) {
|
|
224
|
+
// D-V6: the `worlds` `superRefine`'s duplicate-id issue is the one
|
|
225
|
+
// schema-level violation this loader still surfaces as a clean, single
|
|
226
|
+
// `Error` (matching `checkUniqueWorldIds`'s pre-D-V6 message shape) —
|
|
227
|
+
// every other schema violation keeps propagating as the raw `ZodError`
|
|
228
|
+
// it always has (unchanged behavior, e.g. the iframe-reachable
|
|
229
|
+
// field-exclusivity / manifestVersion checks).
|
|
230
|
+
const dupIssue = parsed.error.issues.find((issue) => issue.message.startsWith('Game manifest: duplicate world id'));
|
|
231
|
+
if (dupIssue)
|
|
232
|
+
throw new Error(dupIssue.message);
|
|
233
|
+
throw parsed.error;
|
|
234
|
+
}
|
|
235
|
+
const manifest = parsed.data;
|
|
236
|
+
checkEngineVersionPin(manifest.engine.version);
|
|
237
|
+
const resolvedWithIndex = manifest.worlds.map((world, index) => ({
|
|
238
|
+
world: resolveWorld(world),
|
|
239
|
+
index,
|
|
240
|
+
}));
|
|
241
|
+
resolvedWithIndex.sort((a, b) => a.world.zOrder - b.world.zOrder || a.index - b.index);
|
|
242
|
+
const worlds = resolvedWithIndex.map(({ world }) => world);
|
|
243
|
+
const server = manifest.server
|
|
244
|
+
? { room: manifest.server.room, module: manifest.server.module ?? DEFAULT_SERVER_MODULE }
|
|
245
|
+
: undefined;
|
|
246
|
+
return {
|
|
247
|
+
manifestVersion: manifest.manifestVersion,
|
|
248
|
+
name: manifest.name,
|
|
249
|
+
version: manifest.version,
|
|
250
|
+
engine: { version: manifest.engine.version },
|
|
251
|
+
worlds,
|
|
252
|
+
server,
|
|
253
|
+
resolution: manifest.resolution,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const IngestStrategySchema: z.ZodEnum<{
|
|
3
|
+
shared: "shared";
|
|
4
|
+
deduped: "deduped";
|
|
5
|
+
"iframe-reachable": "iframe-reachable";
|
|
6
|
+
"opaque-embed": "opaque-embed";
|
|
7
|
+
}>;
|
|
8
|
+
export type IngestStrategy = z.infer<typeof IngestStrategySchema>;
|
|
9
|
+
export declare const TierSchema: z.ZodEnum<{
|
|
10
|
+
shared: "shared";
|
|
11
|
+
deduped: "deduped";
|
|
12
|
+
"iframe-reachable": "iframe-reachable";
|
|
13
|
+
"opaque-embed": "opaque-embed";
|
|
14
|
+
"first-party": "first-party";
|
|
15
|
+
unsupported: "unsupported";
|
|
16
|
+
}>;
|
|
17
|
+
export type Tier = z.infer<typeof TierSchema>;
|
|
18
|
+
export declare const WorldAdapterSchema: z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
|
|
19
|
+
module: z.ZodString;
|
|
20
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
21
|
+
ingest: z.ZodObject<{
|
|
22
|
+
strategy: z.ZodEnum<{
|
|
23
|
+
shared: "shared";
|
|
24
|
+
deduped: "deduped";
|
|
25
|
+
"iframe-reachable": "iframe-reachable";
|
|
26
|
+
"opaque-embed": "opaque-embed";
|
|
27
|
+
}>;
|
|
28
|
+
entryHtml: z.ZodOptional<z.ZodString>;
|
|
29
|
+
assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
30
|
+
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
|
+
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
bundleUrl: z.ZodOptional<z.ZodString>;
|
|
33
|
+
baseHref: z.ZodOptional<z.ZodString>;
|
|
34
|
+
assetBaseUrl: z.ZodOptional<z.ZodString>;
|
|
35
|
+
extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
|
+
pixiModuleUrl: z.ZodOptional<z.ZodString>;
|
|
37
|
+
bodyHtml: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
}, z.core.$strip>]>;
|
|
40
|
+
export type WorldAdapter = z.infer<typeof WorldAdapterSchema>;
|
|
41
|
+
export declare const WorldEntrySchema: z.ZodObject<{
|
|
42
|
+
id: z.ZodString;
|
|
43
|
+
kind: z.ZodEnum<{
|
|
44
|
+
threejs: "threejs";
|
|
45
|
+
pixijs: "pixijs";
|
|
46
|
+
react: "react";
|
|
47
|
+
}>;
|
|
48
|
+
description: z.ZodOptional<z.ZodString>;
|
|
49
|
+
adapter: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
|
|
50
|
+
module: z.ZodString;
|
|
51
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
52
|
+
ingest: z.ZodObject<{
|
|
53
|
+
strategy: z.ZodEnum<{
|
|
54
|
+
shared: "shared";
|
|
55
|
+
deduped: "deduped";
|
|
56
|
+
"iframe-reachable": "iframe-reachable";
|
|
57
|
+
"opaque-embed": "opaque-embed";
|
|
58
|
+
}>;
|
|
59
|
+
entryHtml: z.ZodOptional<z.ZodString>;
|
|
60
|
+
assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
61
|
+
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
62
|
+
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
bundleUrl: z.ZodOptional<z.ZodString>;
|
|
64
|
+
baseHref: z.ZodOptional<z.ZodString>;
|
|
65
|
+
assetBaseUrl: z.ZodOptional<z.ZodString>;
|
|
66
|
+
extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
67
|
+
pixiModuleUrl: z.ZodOptional<z.ZodString>;
|
|
68
|
+
bodyHtml: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
}, z.core.$strip>]>>;
|
|
71
|
+
scene: z.ZodOptional<z.ZodString>;
|
|
72
|
+
entry: z.ZodOptional<z.ZodString>;
|
|
73
|
+
zOrder: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
pausable: z.ZodDefault<z.ZodBoolean>;
|
|
75
|
+
loop: z.ZodDefault<z.ZodEnum<{
|
|
76
|
+
gated: "gated";
|
|
77
|
+
"self-driven": "self-driven";
|
|
78
|
+
}>>;
|
|
79
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
80
|
+
local: z.ZodOptional<z.ZodEnum<{
|
|
81
|
+
shared: "shared";
|
|
82
|
+
deduped: "deduped";
|
|
83
|
+
"iframe-reachable": "iframe-reachable";
|
|
84
|
+
"opaque-embed": "opaque-embed";
|
|
85
|
+
"first-party": "first-party";
|
|
86
|
+
unsupported: "unsupported";
|
|
87
|
+
}>>;
|
|
88
|
+
hosted: z.ZodOptional<z.ZodEnum<{
|
|
89
|
+
shared: "shared";
|
|
90
|
+
deduped: "deduped";
|
|
91
|
+
"iframe-reachable": "iframe-reachable";
|
|
92
|
+
"opaque-embed": "opaque-embed";
|
|
93
|
+
"first-party": "first-party";
|
|
94
|
+
unsupported: "unsupported";
|
|
95
|
+
}>>;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
export type WorldEntry = z.infer<typeof WorldEntrySchema>;
|
|
99
|
+
export declare const GameManifestSchema: z.ZodObject<{
|
|
100
|
+
manifestVersion: z.ZodLiteral<1>;
|
|
101
|
+
name: z.ZodString;
|
|
102
|
+
version: z.ZodString;
|
|
103
|
+
engine: z.ZodObject<{
|
|
104
|
+
version: z.ZodString;
|
|
105
|
+
}, z.core.$strip>;
|
|
106
|
+
worlds: z.ZodArray<z.ZodObject<{
|
|
107
|
+
id: z.ZodString;
|
|
108
|
+
kind: z.ZodEnum<{
|
|
109
|
+
threejs: "threejs";
|
|
110
|
+
pixijs: "pixijs";
|
|
111
|
+
react: "react";
|
|
112
|
+
}>;
|
|
113
|
+
description: z.ZodOptional<z.ZodString>;
|
|
114
|
+
adapter: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
|
|
115
|
+
module: z.ZodString;
|
|
116
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
117
|
+
ingest: z.ZodObject<{
|
|
118
|
+
strategy: z.ZodEnum<{
|
|
119
|
+
shared: "shared";
|
|
120
|
+
deduped: "deduped";
|
|
121
|
+
"iframe-reachable": "iframe-reachable";
|
|
122
|
+
"opaque-embed": "opaque-embed";
|
|
123
|
+
}>;
|
|
124
|
+
entryHtml: z.ZodOptional<z.ZodString>;
|
|
125
|
+
assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
126
|
+
domStubs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
127
|
+
captureTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
bundleUrl: z.ZodOptional<z.ZodString>;
|
|
129
|
+
baseHref: z.ZodOptional<z.ZodString>;
|
|
130
|
+
assetBaseUrl: z.ZodOptional<z.ZodString>;
|
|
131
|
+
extraDeps: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
132
|
+
pixiModuleUrl: z.ZodOptional<z.ZodString>;
|
|
133
|
+
bodyHtml: z.ZodOptional<z.ZodString>;
|
|
134
|
+
}, z.core.$strip>;
|
|
135
|
+
}, z.core.$strip>]>>;
|
|
136
|
+
scene: z.ZodOptional<z.ZodString>;
|
|
137
|
+
entry: z.ZodOptional<z.ZodString>;
|
|
138
|
+
zOrder: z.ZodDefault<z.ZodNumber>;
|
|
139
|
+
pausable: z.ZodDefault<z.ZodBoolean>;
|
|
140
|
+
loop: z.ZodDefault<z.ZodEnum<{
|
|
141
|
+
gated: "gated";
|
|
142
|
+
"self-driven": "self-driven";
|
|
143
|
+
}>>;
|
|
144
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
145
|
+
local: z.ZodOptional<z.ZodEnum<{
|
|
146
|
+
shared: "shared";
|
|
147
|
+
deduped: "deduped";
|
|
148
|
+
"iframe-reachable": "iframe-reachable";
|
|
149
|
+
"opaque-embed": "opaque-embed";
|
|
150
|
+
"first-party": "first-party";
|
|
151
|
+
unsupported: "unsupported";
|
|
152
|
+
}>>;
|
|
153
|
+
hosted: z.ZodOptional<z.ZodEnum<{
|
|
154
|
+
shared: "shared";
|
|
155
|
+
deduped: "deduped";
|
|
156
|
+
"iframe-reachable": "iframe-reachable";
|
|
157
|
+
"opaque-embed": "opaque-embed";
|
|
158
|
+
"first-party": "first-party";
|
|
159
|
+
unsupported: "unsupported";
|
|
160
|
+
}>>;
|
|
161
|
+
}, z.core.$strip>>;
|
|
162
|
+
}, z.core.$strip>>;
|
|
163
|
+
server: z.ZodOptional<z.ZodObject<{
|
|
164
|
+
room: z.ZodString;
|
|
165
|
+
module: z.ZodOptional<z.ZodString>;
|
|
166
|
+
}, z.core.$strip>>;
|
|
167
|
+
resolution: z.ZodOptional<z.ZodObject<{
|
|
168
|
+
width: z.ZodNumber;
|
|
169
|
+
height: z.ZodNumber;
|
|
170
|
+
}, z.core.$strip>>;
|
|
171
|
+
}, z.core.$strip>;
|
|
172
|
+
export type GameManifest = z.infer<typeof GameManifestSchema>;
|
|
173
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,oBAAoB;;;;;EAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,eAAO,MAAM,UAAU;;;;;;;EAOrB,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAS9C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;mBA8K5B,CAAC;AACJ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6D3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+D2D,CAAC;AAE3F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|