@codexo/exojs 0.13.0 → 0.14.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/CHANGELOG.md +133 -6
- package/README.md +80 -63
- package/dist/esm/animation/Tween.js +1 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +9 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +14 -8
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/index.d.ts +6 -4
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +12 -12
- package/dist/esm/audio/AudioBus.js +29 -29
- package/dist/esm/audio/AudioEffect.d.ts +18 -0
- package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
- package/dist/esm/audio/AudioEffect.js +16 -0
- package/dist/esm/audio/AudioEffect.js.map +1 -0
- package/dist/esm/audio/AudioGenerator.d.ts +91 -0
- package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
- package/dist/esm/audio/AudioGenerator.js +165 -0
- package/dist/esm/audio/AudioGenerator.js.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
- package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
- package/dist/esm/audio/AudioInput.d.ts +39 -0
- package/dist/esm/audio/AudioInput.d.ts.map +1 -0
- package/dist/esm/audio/AudioInput.js +53 -0
- package/dist/esm/audio/AudioInput.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +72 -34
- package/dist/esm/audio/AudioManager.d.ts.map +1 -1
- package/dist/esm/audio/AudioManager.js +97 -51
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/AudioStream.d.ts +49 -0
- package/dist/esm/audio/AudioStream.d.ts.map +1 -0
- package/dist/esm/audio/AudioStream.js +109 -0
- package/dist/esm/audio/AudioStream.js.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.js +137 -0
- package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
- package/dist/esm/audio/BaseVoice.d.ts +111 -0
- package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
- package/dist/esm/audio/BaseVoice.js +298 -0
- package/dist/esm/audio/BaseVoice.js.map +1 -0
- package/dist/esm/audio/BiquadEffect.d.ts +53 -0
- package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
- package/dist/esm/audio/BiquadEffect.js +110 -0
- package/dist/esm/audio/BiquadEffect.js.map +1 -0
- package/dist/esm/audio/InputVoice.d.ts +41 -0
- package/dist/esm/audio/InputVoice.d.ts.map +1 -0
- package/dist/esm/audio/InputVoice.js +85 -0
- package/dist/esm/audio/InputVoice.js.map +1 -0
- package/dist/esm/audio/NoopVoice.d.ts +29 -0
- package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
- package/dist/esm/audio/NoopVoice.js +52 -0
- package/dist/esm/audio/NoopVoice.js.map +1 -0
- package/dist/esm/audio/Playable.d.ts +135 -0
- package/dist/esm/audio/Playable.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +64 -69
- package/dist/esm/audio/Sound.d.ts.map +1 -1
- package/dist/esm/audio/Sound.js +176 -377
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/SoundVoice.d.ts +63 -0
- package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
- package/dist/esm/audio/SoundVoice.js +168 -0
- package/dist/esm/audio/SoundVoice.js.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
- package/dist/esm/audio/WorkletEffect.js.map +1 -0
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +22 -13
- package/dist/esm/audio/crossFade.d.ts.map +1 -1
- package/dist/esm/audio/crossFade.js +21 -13
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/HighpassFilter.js +2 -2
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/LowpassFilter.js +2 -2
- package/dist/esm/audio/filters/index.d.ts +0 -10
- package/dist/esm/audio/filters/index.d.ts.map +1 -1
- package/dist/esm/audio/index.d.ts +13 -15
- package/dist/esm/audio/index.d.ts.map +1 -1
- package/dist/esm/core/Application.d.ts +127 -10
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +226 -25
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Color.d.ts +6 -4
- package/dist/esm/core/Color.d.ts.map +1 -1
- package/dist/esm/core/Color.js +19 -15
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/DisposalScope.d.ts +50 -0
- package/dist/esm/core/DisposalScope.d.ts.map +1 -0
- package/dist/esm/core/DisposalScope.js +86 -0
- package/dist/esm/core/DisposalScope.js.map +1 -0
- package/dist/esm/core/Perf.d.ts +10 -22
- package/dist/esm/core/Perf.d.ts.map +1 -1
- package/dist/esm/core/Perf.js +15 -8
- package/dist/esm/core/Perf.js.map +1 -1
- package/dist/esm/core/Registry.d.ts +64 -0
- package/dist/esm/core/Registry.d.ts.map +1 -0
- package/dist/esm/core/Registry.js +79 -0
- package/dist/esm/core/Registry.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +69 -21
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +109 -16
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +22 -60
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +68 -153
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +43 -2
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +101 -12
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +42 -0
- package/dist/esm/core/Stage.d.ts.map +1 -0
- package/dist/esm/core/System.d.ts +22 -0
- package/dist/esm/core/System.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.d.ts +35 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.js +104 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -0
- package/dist/esm/core/Time.d.ts +15 -0
- package/dist/esm/core/Time.d.ts.map +1 -1
- package/dist/esm/core/Time.js +25 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/dev.d.ts +9 -4
- package/dist/esm/core/dev.d.ts.map +1 -1
- package/dist/esm/core/dev.js +5 -0
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +26 -15
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/letterbox.d.ts +25 -0
- package/dist/esm/core/letterbox.d.ts.map +1 -0
- package/dist/esm/core/letterbox.js +26 -0
- package/dist/esm/core/letterbox.js.map +1 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.d.ts +49 -0
- package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.js +61 -0
- package/dist/esm/core/serialization/Prefab.js.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
- package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts +20 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
- package/dist/esm/core/serialization/commonFields.js +149 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.js +101 -0
- package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
- package/dist/esm/core/serialization/index.d.ts +6 -0
- package/dist/esm/core/serialization/index.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.d.ts +65 -0
- package/dist/esm/core/serialization/read.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.js +48 -0
- package/dist/esm/core/serialization/read.js.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.js +311 -0
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
- package/dist/esm/core/serialization/serialize.d.ts +56 -0
- package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
- package/dist/esm/core/serialization/serialize.js +144 -0
- package/dist/esm/core/serialization/serialize.js.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.js +161 -0
- package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
- package/dist/esm/core/serialization/types.d.ts +49 -0
- package/dist/esm/core/serialization/types.d.ts.map +1 -0
- package/dist/esm/core/serialization/types.js +9 -0
- package/dist/esm/core/serialization/types.js.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.js +206 -0
- package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -16
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/core/utils.js +2 -100
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +8 -9
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +9 -6
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/extensions/Extension.d.ts +39 -4
- package/dist/esm/extensions/Extension.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.d.ts +9 -1
- package/dist/esm/extensions/materialize.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.js +17 -2
- package/dist/esm/extensions/materialize.js.map +1 -1
- package/dist/esm/extensions/snapshot.d.ts +2 -1
- package/dist/esm/extensions/snapshot.d.ts.map +1 -1
- package/dist/esm/extensions/snapshot.js +8 -0
- package/dist/esm/extensions/snapshot.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +34 -59
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/FocusManager.d.ts +59 -0
- package/dist/esm/input/FocusManager.d.ts.map +1 -0
- package/dist/esm/input/FocusManager.js +175 -0
- package/dist/esm/input/FocusManager.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +8 -4
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +2 -2
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
- package/dist/esm/input/GamepadDefinitions.js +6 -2
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
- package/dist/esm/input/GestureRecognizer.js +1 -3
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.js +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +7 -2
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +35 -21
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +67 -2
- package/dist/esm/input/InteractionManager.d.ts.map +1 -1
- package/dist/esm/input/InteractionManager.js +165 -41
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/KeyEvent.d.ts +25 -0
- package/dist/esm/input/KeyEvent.d.ts.map +1 -0
- package/dist/esm/input/KeyEvent.js +32 -0
- package/dist/esm/input/KeyEvent.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +21 -4
- package/dist/esm/input/Pointer.d.ts.map +1 -1
- package/dist/esm/input/Pointer.js +54 -15
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/index.d.ts +3 -1
- package/dist/esm/input/index.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.js +7 -2
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts.map +1 -1
- package/dist/esm/math/Circle.js +5 -1
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Line.d.ts +1 -1
- package/dist/esm/math/Line.d.ts.map +1 -1
- package/dist/esm/math/Line.js +1 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -1
- package/dist/esm/math/Matrix.js +6 -1
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +26 -8
- package/dist/esm/math/ObservableVector.d.ts.map +1 -1
- package/dist/esm/math/ObservableVector.js +24 -16
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +5 -0
- package/dist/esm/math/Polygon.d.ts.map +1 -1
- package/dist/esm/math/Polygon.js +27 -3
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Random.d.ts +9 -9
- package/dist/esm/math/Random.d.ts.map +1 -1
- package/dist/esm/math/Random.js +46 -46
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +11 -4
- package/dist/esm/math/Rectangle.d.ts.map +1 -1
- package/dist/esm/math/Rectangle.js +12 -6
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +1 -1
- package/dist/esm/math/Vector.d.ts.map +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +42 -0
- package/dist/esm/math/collision-detection.d.ts.map +1 -1
- package/dist/esm/math/collision-detection.js +54 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts.map +1 -1
- package/dist/esm/math/collision-primitives.js +4 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +26 -0
- package/dist/esm/math/geometry.d.ts.map +1 -1
- package/dist/esm/math/geometry.js +89 -2
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +7 -5
- package/dist/esm/math/index.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +13 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.js +15 -1
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.d.ts.map +1 -1
- package/dist/esm/math/triangulate.js +9 -1
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +20 -0
- package/dist/esm/math/utils.d.ts.map +1 -1
- package/dist/esm/math/utils.js +18 -15
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/renderer-sdk.d.ts +2 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -1
- package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
- package/dist/esm/renderer-sdk.js.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +3 -0
- package/dist/esm/rendering/Container.d.ts.map +1 -1
- package/dist/esm/rendering/Container.js +28 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +24 -0
- package/dist/esm/rendering/Drawable.d.ts.map +1 -1
- package/dist/esm/rendering/Drawable.js +54 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
- package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
- package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
- package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +15 -1
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderBatch.d.ts +55 -0
- package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBatch.js +107 -0
- package/dist/esm/rendering/RenderBatch.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +50 -10
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +113 -20
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.js +2 -2
- package/dist/esm/rendering/RenderNodePass.js.map +1 -1
- package/dist/esm/rendering/RenderStats.d.ts +39 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
- package/dist/esm/rendering/RenderStats.js +14 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
- package/dist/esm/rendering/RendererRegistry.js +20 -23
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +88 -4
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +107 -5
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +2 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +47 -15
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +44 -27
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.js +4 -2
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.js +7 -2
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.js +2 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
- package/dist/esm/rendering/material/ShaderSource.js +6 -0
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.js +40 -13
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
- package/dist/esm/rendering/pixelSnap.js +1 -0
- package/dist/esm/rendering/pixelSnap.js.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.js +23 -21
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +17 -1
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/{index.d.ts → public.d.ts} +5 -35
- package/dist/esm/rendering/public.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
- package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
- package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.js +30 -3
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.js +12 -18
- package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +4 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.js +5 -1
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +1 -0
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +17 -6
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +7 -12
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
- package/dist/esm/rendering/text/TextLayout.js +4 -18
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.js +2 -2
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +6 -0
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
- package/dist/esm/rendering/texture/Texture.js +8 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
- package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
- package/dist/esm/rendering/texture/repeat.js +2 -2
- package/dist/esm/rendering/texture/repeat.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +11 -0
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +11 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +7 -3
- package/dist/esm/rendering/video/Video.d.ts.map +1 -1
- package/dist/esm/rendering/video/Video.js +7 -3
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +21 -2
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +106 -6
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +18 -2
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +91 -10
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +6 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +19 -9
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +8 -4
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +13 -2
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +22 -2
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
- package/dist/esm/resources/Asset.d.ts +1 -1
- package/dist/esm/resources/Asset.d.ts.map +1 -1
- package/dist/esm/resources/Asset.js +0 -2
- package/dist/esm/resources/Asset.js.map +1 -1
- package/dist/esm/resources/AssetContainer.d.ts +75 -0
- package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
- package/dist/esm/resources/AssetContainer.js +100 -0
- package/dist/esm/resources/AssetContainer.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
- package/dist/esm/resources/Assets.d.ts.map +1 -1
- package/dist/esm/resources/Assets.js +0 -1
- package/dist/esm/resources/Assets.js.map +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
- package/dist/esm/resources/FactoryRegistry.js +14 -23
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +8 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
- package/dist/esm/resources/KeyValueStore.d.ts +31 -0
- package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +42 -2
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +92 -7
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/MemoryStore.d.ts +17 -0
- package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
- package/dist/esm/resources/MemoryStore.js +30 -0
- package/dist/esm/resources/MemoryStore.js.map +1 -0
- package/dist/esm/resources/WebStorageStore.d.ts +40 -0
- package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
- package/dist/esm/resources/WebStorageStore.js +84 -0
- package/dist/esm/resources/WebStorageStore.js.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
- package/dist/esm/resources/coreAssetBindings.js +16 -5
- package/dist/esm/resources/coreAssetBindings.js.map +1 -1
- package/dist/esm/resources/factories/BmFontFactory.js +4 -4
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +7 -7
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +51 -34
- package/dist/esm/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/utils.js +4 -4
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/esm/ui/Button.d.ts +54 -0
- package/dist/esm/ui/Button.d.ts.map +1 -0
- package/dist/esm/ui/Button.js +139 -0
- package/dist/esm/ui/Button.js.map +1 -0
- package/dist/esm/ui/Label.d.ts +17 -0
- package/dist/esm/ui/Label.d.ts.map +1 -0
- package/dist/esm/ui/Label.js +37 -0
- package/dist/esm/ui/Label.js.map +1 -0
- package/dist/esm/ui/Panel.d.ts +38 -0
- package/dist/esm/ui/Panel.d.ts.map +1 -0
- package/dist/esm/ui/Panel.js +61 -0
- package/dist/esm/ui/Panel.js.map +1 -0
- package/dist/esm/ui/ProgressBar.d.ts +37 -0
- package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
- package/dist/esm/ui/ProgressBar.js +76 -0
- package/dist/esm/ui/ProgressBar.js.map +1 -0
- package/dist/esm/ui/Stack.d.ts +34 -0
- package/dist/esm/ui/Stack.d.ts.map +1 -0
- package/dist/esm/ui/Stack.js +69 -0
- package/dist/esm/ui/Stack.js.map +1 -0
- package/dist/esm/ui/UIRoot.d.ts +31 -0
- package/dist/esm/ui/UIRoot.d.ts.map +1 -0
- package/dist/esm/ui/UIRoot.js +49 -0
- package/dist/esm/ui/UIRoot.js.map +1 -0
- package/dist/esm/ui/Widget.d.ts +45 -0
- package/dist/esm/ui/Widget.d.ts.map +1 -0
- package/dist/esm/ui/Widget.js +113 -0
- package/dist/esm/ui/Widget.js.map +1 -0
- package/dist/esm/ui/index.d.ts +13 -0
- package/dist/esm/ui/index.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +1 -948
- package/dist/exo.debug.esm.js.map +1 -1
- package/dist/exo.esm.js +1 -40945
- package/dist/exo.esm.js.map +1 -1
- package/package.json +24 -13
- package/dist/esm/audio/AbstractMedia.d.ts +0 -75
- package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
- package/dist/esm/audio/AbstractMedia.js +0 -179
- package/dist/esm/audio/AbstractMedia.js.map +0 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
- package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -473
- package/dist/esm/audio/AudioAnalyser.js.map +0 -1
- package/dist/esm/audio/AudioFilter.d.ts +0 -17
- package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
- package/dist/esm/audio/AudioFilter.js +0 -15
- package/dist/esm/audio/AudioFilter.js.map +0 -1
- package/dist/esm/audio/BeatDetector.d.ts +0 -207
- package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
- package/dist/esm/audio/BeatDetector.js +0 -424
- package/dist/esm/audio/BeatDetector.js.map +0 -1
- package/dist/esm/audio/Media.d.ts +0 -37
- package/dist/esm/audio/Media.d.ts.map +0 -1
- package/dist/esm/audio/Music.d.ts +0 -42
- package/dist/esm/audio/Music.d.ts.map +0 -1
- package/dist/esm/audio/Music.js +0 -164
- package/dist/esm/audio/Music.js.map +0 -1
- package/dist/esm/audio/OscillatorSound.d.ts +0 -100
- package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
- package/dist/esm/audio/OscillatorSound.js +0 -346
- package/dist/esm/audio/OscillatorSound.js.map +0 -1
- package/dist/esm/audio/dsp/fft.d.ts +0 -23
- package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.d.ts +0 -44
- package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.js +0 -70
- package/dist/esm/audio/dsp/mel.js.map +0 -1
- package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
- package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.js +0 -155
- package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.js +0 -123
- package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.js +0 -114
- package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.js +0 -172
- package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
- package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.js +0 -107
- package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.js +0 -122
- package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.js +0 -94
- package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.js +0 -89
- package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
- package/dist/esm/rendering/index.d.ts.map +0 -1
- package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
- package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
- package/dist/esm/rendering.d.ts +0 -29
- package/dist/esm/rendering.d.ts.map +0 -1
- package/dist/esm/rendering.js.map +0 -1
- package/dist/esm/resources/JsonStore.d.ts +0 -19
- package/dist/esm/resources/JsonStore.d.ts.map +0 -1
- package/dist/esm/resources/JsonStore.js +0 -62
- package/dist/esm/resources/JsonStore.js.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Registry } from '../Registry.js';
|
|
2
|
+
|
|
3
|
+
/** Walk one step up the constructor's prototype chain, or stop at the base. */
|
|
4
|
+
const walkPrototype = (ctor) => {
|
|
5
|
+
const parent = Object.getPrototypeOf(ctor);
|
|
6
|
+
return typeof parent === 'function' && parent !== Function.prototype ? parent : null;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Bidirectional name ↔ constructor ↔ {@link NodeSerializer} registry backing
|
|
10
|
+
* the scene serializer.
|
|
11
|
+
*
|
|
12
|
+
* Serialize resolves a node to its serializer by walking the constructor's
|
|
13
|
+
* prototype chain (so a subclass without its own registration inherits the
|
|
14
|
+
* nearest registered base serializer); deserialize resolves by type name.
|
|
15
|
+
* Core registers the built-in node types; extensions contribute their own via
|
|
16
|
+
* the {@link Extension.serializers} binding.
|
|
17
|
+
*
|
|
18
|
+
* @see registerSerializer for the convenience entry point onto the
|
|
19
|
+
* {@link defaultSerializationRegistry}.
|
|
20
|
+
*/
|
|
21
|
+
class SerializationRegistry {
|
|
22
|
+
_fallback;
|
|
23
|
+
_byCtor = new Registry({ walk: walkPrototype });
|
|
24
|
+
_byName = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* @param _fallback Optional parent registry consulted when this registry has
|
|
27
|
+
* no own entry for a lookup. An {@link Application} owns its own registry
|
|
28
|
+
* chained to the {@link defaultSerializationRegistry}, so app-scoped
|
|
29
|
+
* extension serializers stay isolated per Application while core and
|
|
30
|
+
* globally-registered serializers remain shared.
|
|
31
|
+
*/
|
|
32
|
+
constructor(_fallback = null) {
|
|
33
|
+
this._fallback = _fallback;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Register `serializer` for `ctor` under `typeName`. Re-registering the same
|
|
37
|
+
* `(typeName, ctor)` pair overwrites silently; registering an existing
|
|
38
|
+
* `typeName` against a **different** constructor throws.
|
|
39
|
+
*/
|
|
40
|
+
register(typeName, ctor, serializer) {
|
|
41
|
+
const existing = this._byName.get(typeName);
|
|
42
|
+
if (existing !== undefined && existing.ctor !== ctor) {
|
|
43
|
+
throw new Error(`A serializer for type name "${typeName}" is already registered for a different constructor.`);
|
|
44
|
+
}
|
|
45
|
+
const entry = { typeName, ctor, serializer };
|
|
46
|
+
this._byCtor.set(ctor, entry);
|
|
47
|
+
this._byName.set(typeName, entry);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve the serializer for `node` by walking its constructor's prototype
|
|
51
|
+
* chain. Returns `undefined` if no registration matches.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
resolveByNode(node) {
|
|
55
|
+
return this._byCtor.resolve(node.constructor) ?? this._fallback?.resolveByNode(node);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resolve the serializer registered under `typeName`, or `undefined`.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
resolveByName(typeName) {
|
|
62
|
+
return this._byName.get(typeName) ?? this._fallback?.resolveByName(typeName);
|
|
63
|
+
}
|
|
64
|
+
/** Returns `true` if a serializer is registered under `typeName`. */
|
|
65
|
+
hasType(typeName) {
|
|
66
|
+
return this._byName.has(typeName) || (this._fallback?.hasType(typeName) ?? false);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Remove every own registration (both the name and constructor maps). The
|
|
70
|
+
* fallback chain is left untouched. Test infrastructure only — used to reset
|
|
71
|
+
* the {@link defaultSerializationRegistry} between suites so process-wide
|
|
72
|
+
* registrations do not leak across them.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
clear() {
|
|
76
|
+
this._byName.clear();
|
|
77
|
+
this._byCtor.destroy();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Process-wide default registry. Core node serializers register here lazily on
|
|
82
|
+
* first use; extension serializers are materialised here at Application
|
|
83
|
+
* construction.
|
|
84
|
+
*/
|
|
85
|
+
const defaultSerializationRegistry = new SerializationRegistry();
|
|
86
|
+
/**
|
|
87
|
+
* Register a custom {@link NodeSerializer}. Defaults to the
|
|
88
|
+
* {@link defaultSerializationRegistry}; pass `app.serializers` to register the
|
|
89
|
+
* type only for that {@link Application} (it stays isolated from other apps and
|
|
90
|
+
* from the global registry, resolving through the fallback chain).
|
|
91
|
+
*
|
|
92
|
+
* Use this to make your own {@link SceneNode} subclasses serializable. Delegate
|
|
93
|
+
* to a base type's behaviour by composing with the framework helpers, or
|
|
94
|
+
* register a fully custom serializer.
|
|
95
|
+
*
|
|
96
|
+
* ```ts
|
|
97
|
+
* registerSerializer('PowerUp', PowerUp, {
|
|
98
|
+
* write: (node) => ({ kind: node.kind }),
|
|
99
|
+
* read: (data) => new PowerUp(typeof data.kind === 'string' ? data.kind : ''),
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
function registerSerializer(typeName, ctor, serializer, registry = defaultSerializationRegistry) {
|
|
104
|
+
registry.register(typeName, ctor, serializer);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { SerializationRegistry, defaultSerializationRegistry, registerSerializer };
|
|
108
|
+
//# sourceMappingURL=SerializationRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SerializationRegistry.js","sources":["../../../../../src/core/serialization/SerializationRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAuBA;AACA,MAAM,aAAa,GAAG,CAAC,IAA0B,KAAiC;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAY;AAErD,IAAA,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,QAAQ,CAAC,SAAS,GAAI,MAA+B,GAAG,IAAI;AAChH,CAAC;AAED;;;;;;;;;;;;AAYG;MACU,qBAAqB,CAAA;AAWI,IAAA,SAAA;IAVnB,OAAO,GAAG,IAAI,QAAQ,CAAwC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACtF,IAAA,OAAO,GAAG,IAAI,GAAG,EAA2B;AAE7D;;;;;;AAMG;AACH,IAAA,WAAA,CAAoC,YAA0C,IAAI,EAAA;QAA9C,IAAA,CAAA,SAAS,GAAT,SAAS;IAAwC;AAErF;;;;AAIG;AACI,IAAA,QAAQ,CAAsB,QAAgB,EAAE,IAA6B,EAAE,UAA6B,EAAA;QACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAE3C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAA,oDAAA,CAAsD,CAAC;QAChH;QAEA,MAAM,KAAK,GAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QAE7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;IACnC;AAEA;;;;AAIG;AACI,IAAA,aAAa,CAAC,IAAe,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAmC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;IAC9G;AAEA;;;AAGG;AACI,IAAA,aAAa,CAAC,QAAgB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;IAC9E;;AAGO,IAAA,OAAO,CAAC,QAAgB,EAAA;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACnF;AAEA;;;;;;AAMG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AACD;AAED;;;;AAIG;AACI,MAAM,4BAA4B,GAAG,IAAI,qBAAqB;AAErE;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,kBAAkB,CAChC,QAAgB,EAChB,IAA6B,EAC7B,UAA6B,EAC7B,QAAA,GAAkC,4BAA4B,EAAA;IAE9D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;AAC/C;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SceneNode } from '#core/SceneNode';
|
|
2
|
+
import type { SerializedNode } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Write the common `SceneNode` (+ `Drawable`) fields of `node` into `out`.
|
|
5
|
+
*
|
|
6
|
+
* Only non-default values are written, so a freshly-constructed node
|
|
7
|
+
* contributes nothing here. Transforms are emitted in logical units
|
|
8
|
+
* (px / degrees); the `Drawable` tint is `[r, g, b, a]` with `r/g/b` in 0..255
|
|
9
|
+
* and `a` in 0..1. Runtime caches, matrices and dirty flags are never written.
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeCommonFields(node: SceneNode, out: SerializedNode): void;
|
|
12
|
+
/**
|
|
13
|
+
* Apply the common fields from `data` onto an already-constructed `node`.
|
|
14
|
+
*
|
|
15
|
+
* Called by the framework after a {@link NodeSerializer.read} returns, so it
|
|
16
|
+
* overrides any transform side-effects of construction (e.g. a `Sprite` frame
|
|
17
|
+
* resetting scale). Absent fields keep the node's constructed defaults.
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyCommonFields(node: SceneNode, data: SerializedNode): void;
|
|
20
|
+
//# sourceMappingURL=commonFields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonFields.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/commonFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAiD5E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CA+C7E"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Color } from '../Color.js';
|
|
2
|
+
import { Rectangle } from '../../math/Rectangle.js';
|
|
3
|
+
import { Drawable } from '../../rendering/Drawable.js';
|
|
4
|
+
import { isPixelSnapMode } from '../../rendering/pixelSnap.js';
|
|
5
|
+
import { RenderNode } from '../../rendering/RenderNode.js';
|
|
6
|
+
import { BlendModes } from '../../rendering/types.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Write the common `SceneNode` (+ `Drawable`) fields of `node` into `out`.
|
|
10
|
+
*
|
|
11
|
+
* Only non-default values are written, so a freshly-constructed node
|
|
12
|
+
* contributes nothing here. Transforms are emitted in logical units
|
|
13
|
+
* (px / degrees); the `Drawable` tint is `[r, g, b, a]` with `r/g/b` in 0..255
|
|
14
|
+
* and `a` in 0..1. Runtime caches, matrices and dirty flags are never written.
|
|
15
|
+
*/
|
|
16
|
+
function writeCommonFields(node, out) {
|
|
17
|
+
if (node.x !== 0)
|
|
18
|
+
out.x = node.x;
|
|
19
|
+
if (node.y !== 0)
|
|
20
|
+
out.y = node.y;
|
|
21
|
+
if (node.rotation !== 0)
|
|
22
|
+
out.rotation = node.rotation;
|
|
23
|
+
if (node.scale.x !== 1)
|
|
24
|
+
out.scaleX = node.scale.x;
|
|
25
|
+
if (node.scale.y !== 1)
|
|
26
|
+
out.scaleY = node.scale.y;
|
|
27
|
+
if (node.skewX !== 0)
|
|
28
|
+
out.skewX = node.skewX;
|
|
29
|
+
if (node.skewY !== 0)
|
|
30
|
+
out.skewY = node.skewY;
|
|
31
|
+
if (node.origin.x !== 0)
|
|
32
|
+
out.originX = node.origin.x;
|
|
33
|
+
if (node.origin.y !== 0)
|
|
34
|
+
out.originY = node.origin.y;
|
|
35
|
+
if (!node.visible)
|
|
36
|
+
out.visible = false;
|
|
37
|
+
if (node.zIndex !== 0)
|
|
38
|
+
out.zIndex = node.zIndex;
|
|
39
|
+
if (!node.cullable)
|
|
40
|
+
out.cullable = false;
|
|
41
|
+
if (node.name !== null)
|
|
42
|
+
out.name = node.name;
|
|
43
|
+
if (node instanceof RenderNode) {
|
|
44
|
+
if (node.interactive)
|
|
45
|
+
out.interactive = true;
|
|
46
|
+
if (node.draggable)
|
|
47
|
+
out.draggable = true;
|
|
48
|
+
if (node.focusable)
|
|
49
|
+
out.focusable = true;
|
|
50
|
+
if (node.tabIndex !== 0)
|
|
51
|
+
out.tabIndex = node.tabIndex;
|
|
52
|
+
if (node.cursor !== null)
|
|
53
|
+
out.cursor = node.cursor;
|
|
54
|
+
if (node.clip)
|
|
55
|
+
out.clip = true;
|
|
56
|
+
if (node.preserveDrawOrder)
|
|
57
|
+
out.preserveDrawOrder = true;
|
|
58
|
+
if (node.cacheAsBitmap)
|
|
59
|
+
out.cacheAsBitmap = true;
|
|
60
|
+
const clipShape = node.clipShape;
|
|
61
|
+
if (clipShape instanceof Rectangle) {
|
|
62
|
+
out.clipShape = [clipShape.x, clipShape.y, clipShape.width, clipShape.height];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (node instanceof Drawable) {
|
|
66
|
+
const tint = node.tint;
|
|
67
|
+
if (tint.r !== 255 || tint.g !== 255 || tint.b !== 255 || tint.a !== 1) {
|
|
68
|
+
out.tint = [tint.r, tint.g, tint.b, tint.a];
|
|
69
|
+
}
|
|
70
|
+
if (node.blendMode !== BlendModes.Normal) {
|
|
71
|
+
out.blendMode = node.blendMode;
|
|
72
|
+
}
|
|
73
|
+
if (node.pixelSnapMode !== 'none') {
|
|
74
|
+
out.pixelSnapMode = node.pixelSnapMode;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Apply the common fields from `data` onto an already-constructed `node`.
|
|
80
|
+
*
|
|
81
|
+
* Called by the framework after a {@link NodeSerializer.read} returns, so it
|
|
82
|
+
* overrides any transform side-effects of construction (e.g. a `Sprite` frame
|
|
83
|
+
* resetting scale). Absent fields keep the node's constructed defaults.
|
|
84
|
+
*/
|
|
85
|
+
function applyCommonFields(node, data) {
|
|
86
|
+
if (typeof data.x === 'number')
|
|
87
|
+
node.x = data.x;
|
|
88
|
+
if (typeof data.y === 'number')
|
|
89
|
+
node.y = data.y;
|
|
90
|
+
if (typeof data.rotation === 'number')
|
|
91
|
+
node.rotation = data.rotation;
|
|
92
|
+
if (typeof data.scaleX === 'number')
|
|
93
|
+
node.scale.x = data.scaleX;
|
|
94
|
+
if (typeof data.scaleY === 'number')
|
|
95
|
+
node.scale.y = data.scaleY;
|
|
96
|
+
if (typeof data.skewX === 'number')
|
|
97
|
+
node.skewX = data.skewX;
|
|
98
|
+
if (typeof data.skewY === 'number')
|
|
99
|
+
node.skewY = data.skewY;
|
|
100
|
+
if (typeof data.originX === 'number')
|
|
101
|
+
node.origin.x = data.originX;
|
|
102
|
+
if (typeof data.originY === 'number')
|
|
103
|
+
node.origin.y = data.originY;
|
|
104
|
+
if (data.visible === false)
|
|
105
|
+
node.visible = false;
|
|
106
|
+
if (typeof data.zIndex === 'number')
|
|
107
|
+
node.zIndex = data.zIndex;
|
|
108
|
+
if (data.cullable === false)
|
|
109
|
+
node.cullable = false;
|
|
110
|
+
if (typeof data.name === 'string')
|
|
111
|
+
node.name = data.name;
|
|
112
|
+
if (node instanceof RenderNode) {
|
|
113
|
+
if (data.interactive === true)
|
|
114
|
+
node.interactive = true;
|
|
115
|
+
if (data.draggable === true)
|
|
116
|
+
node.draggable = true;
|
|
117
|
+
if (data.focusable === true)
|
|
118
|
+
node.focusable = true;
|
|
119
|
+
if (typeof data.tabIndex === 'number')
|
|
120
|
+
node.tabIndex = data.tabIndex;
|
|
121
|
+
if (typeof data.cursor === 'string')
|
|
122
|
+
node.cursor = data.cursor;
|
|
123
|
+
if (data.clip === true)
|
|
124
|
+
node.clip = true;
|
|
125
|
+
if (data.preserveDrawOrder === true)
|
|
126
|
+
node.preserveDrawOrder = true;
|
|
127
|
+
if (data.cacheAsBitmap === true)
|
|
128
|
+
node.cacheAsBitmap = true;
|
|
129
|
+
const clipShape = data.clipShape;
|
|
130
|
+
if (Array.isArray(clipShape) && clipShape.length === 4) {
|
|
131
|
+
node.clipShape = new Rectangle(Number(clipShape[0]), Number(clipShape[1]), Number(clipShape[2]), Number(clipShape[3]));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (node instanceof Drawable) {
|
|
135
|
+
const tint = data.tint;
|
|
136
|
+
if (Array.isArray(tint) && tint.length === 4) {
|
|
137
|
+
node.tint = new Color(Number(tint[0]), Number(tint[1]), Number(tint[2]), Number(tint[3]));
|
|
138
|
+
}
|
|
139
|
+
if (typeof data.blendMode === 'number') {
|
|
140
|
+
node.blendMode = data.blendMode;
|
|
141
|
+
}
|
|
142
|
+
if (typeof data.pixelSnapMode === 'string' && isPixelSnapMode(data.pixelSnapMode)) {
|
|
143
|
+
node.pixelSnapMode = data.pixelSnapMode;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export { applyCommonFields, writeCommonFields };
|
|
149
|
+
//# sourceMappingURL=commonFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonFields.js","sources":["../../../../../src/core/serialization/commonFields.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SerializationRegistry } from './SerializationRegistry';
|
|
2
|
+
/**
|
|
3
|
+
* Register all built-in node serializers (core leaf types + rendering package +
|
|
4
|
+
* UI widgets) on `registry`. Called once, lazily, from the serialization
|
|
5
|
+
* framework.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerCoreSerializers(registry: SerializationRegistry): void;
|
|
9
|
+
//# sourceMappingURL=coreSerializers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreSerializers.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/coreSerializers.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAoGrE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAO7E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Rectangle } from '../../math/Rectangle.js';
|
|
2
|
+
import { Container } from '../../rendering/Container.js';
|
|
3
|
+
import { Sprite } from '../../rendering/sprite/Sprite.js';
|
|
4
|
+
import { Text } from '../../rendering/text/Text.js';
|
|
5
|
+
import { Texture } from '../../rendering/texture/Texture.js';
|
|
6
|
+
import { asSerializedNode } from './read.js';
|
|
7
|
+
import { registerRenderingSerializers } from './renderingSerializers.js';
|
|
8
|
+
import { readLayoutOptions, compact, deserializeStyleOptions, serializeStyle } from './serializerHelpers.js';
|
|
9
|
+
import { registerUiSerializers } from './uiSerializers.js';
|
|
10
|
+
import { SDF_RADIUS } from '../../rendering/text/GlyphAtlas.js';
|
|
11
|
+
|
|
12
|
+
// ── Container ────────────────────────────────────────────────────────────────
|
|
13
|
+
const containerSerializer = {
|
|
14
|
+
write(node, ctx) {
|
|
15
|
+
if (node.children.length === 0) {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
return { children: node.children.map(child => ctx.writeNode(child)) };
|
|
19
|
+
},
|
|
20
|
+
read(data, ctx) {
|
|
21
|
+
const node = new Container();
|
|
22
|
+
const children = data.children;
|
|
23
|
+
if (Array.isArray(children)) {
|
|
24
|
+
for (const child of children) {
|
|
25
|
+
const childNode = asSerializedNode(child);
|
|
26
|
+
if (childNode !== null)
|
|
27
|
+
node.addChild(ctx.readNode(childNode));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return node;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
// ── Sprite ─────────────────────────────────────────────────────────────────
|
|
34
|
+
const spriteSerializer = {
|
|
35
|
+
write(node, ctx) {
|
|
36
|
+
const out = {};
|
|
37
|
+
const source = ctx.keyFor(node.texture);
|
|
38
|
+
if (source !== null) {
|
|
39
|
+
out.texture = source;
|
|
40
|
+
}
|
|
41
|
+
if (node.material !== null) ;
|
|
42
|
+
const texture = node.texture;
|
|
43
|
+
const frame = node.textureFrame;
|
|
44
|
+
// Emit the frame only for sub-regions (spritesheets); a full-texture frame
|
|
45
|
+
// is reconstructed for free by `new Sprite(texture)`.
|
|
46
|
+
if (texture !== null && (frame.x !== 0 || frame.y !== 0 || frame.width !== texture.width || frame.height !== texture.height)) {
|
|
47
|
+
out.frame = [frame.x, frame.y, frame.width, frame.height];
|
|
48
|
+
}
|
|
49
|
+
return out;
|
|
50
|
+
},
|
|
51
|
+
read(data, ctx) {
|
|
52
|
+
const texture = ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture);
|
|
53
|
+
const sprite = new Sprite(texture);
|
|
54
|
+
const frame = data.frame;
|
|
55
|
+
if (texture !== null && Array.isArray(frame) && frame.length === 4) {
|
|
56
|
+
sprite.setTextureFrame(Rectangle.temp.set(Number(frame[0]), Number(frame[1]), Number(frame[2]), Number(frame[3])));
|
|
57
|
+
}
|
|
58
|
+
return sprite;
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
// ── Text ─────────────────────────────────────────────────────────────────────
|
|
62
|
+
const textSerializer = {
|
|
63
|
+
write(node) {
|
|
64
|
+
const out = { text: node.text };
|
|
65
|
+
const style = serializeStyle(node.style);
|
|
66
|
+
if (style !== undefined)
|
|
67
|
+
out.style = style;
|
|
68
|
+
if (Object.keys(node.layout).length > 0)
|
|
69
|
+
out.layout = { ...node.layout };
|
|
70
|
+
if (node.colorGlyphs)
|
|
71
|
+
out.colorGlyphs = true;
|
|
72
|
+
if (node.sdfRadius !== SDF_RADIUS)
|
|
73
|
+
out.sdfRadius = node.sdfRadius;
|
|
74
|
+
return out;
|
|
75
|
+
},
|
|
76
|
+
read(data) {
|
|
77
|
+
const layout = readLayoutOptions(data.layout);
|
|
78
|
+
return new Text(typeof data.text === 'string' ? data.text : '', compact({
|
|
79
|
+
...deserializeStyleOptions(data.style),
|
|
80
|
+
...layout,
|
|
81
|
+
colorGlyphs: data.colorGlyphs === true,
|
|
82
|
+
sdfRadius: typeof data.sdfRadius === 'number' ? data.sdfRadius : undefined,
|
|
83
|
+
}));
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Register all built-in node serializers (core leaf types + rendering package +
|
|
88
|
+
* UI widgets) on `registry`. Called once, lazily, from the serialization
|
|
89
|
+
* framework.
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
function registerCoreSerializers(registry) {
|
|
93
|
+
registry.register('Container', Container, containerSerializer);
|
|
94
|
+
registry.register('Sprite', Sprite, spriteSerializer);
|
|
95
|
+
registry.register('Text', Text, textSerializer);
|
|
96
|
+
registerRenderingSerializers(registry);
|
|
97
|
+
registerUiSerializers(registry);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { registerCoreSerializers };
|
|
101
|
+
//# sourceMappingURL=coreSerializers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreSerializers.js","sources":["../../../../../src/core/serialization/coreSerializers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { DeserializeContext, NodeSerializer, SerializeContext } from './NodeSerializer';
|
|
2
|
+
export { Prefab } from './Prefab';
|
|
3
|
+
export { registerSerializer, type SceneNodeConstructor, SerializationRegistry } from './SerializationRegistry';
|
|
4
|
+
export type { AssetRef, SerializedNode, SerializedScene } from './types';
|
|
5
|
+
export { SERIALIZATION_VERSION } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { SerializedNode } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Validating read helpers for deserialization — **check instead of cast**.
|
|
4
|
+
*
|
|
5
|
+
* Deserialized JSON is treated as untrusted input (it may come from a save
|
|
6
|
+
* file, cloud sync, shared prefab, or user-generated content). Every field
|
|
7
|
+
* access goes through one of these helpers so a manipulated or corrupt document
|
|
8
|
+
* can only ever cause a field to be *ignored* (falling back to the constructor
|
|
9
|
+
* default) — never to inject an unchecked value of the wrong type/domain into
|
|
10
|
+
* the engine. Structural top-level errors are rejected at the boundary
|
|
11
|
+
* (`migrate` / `Scene.deserialize`); per-field garbage degrades to defaults.
|
|
12
|
+
*
|
|
13
|
+
* The `read*` helpers take `(data, key)` for field access; the `as*` helpers
|
|
14
|
+
* narrow an already-extracted value (used for nested elements).
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
type Data = Record<string, unknown>;
|
|
19
|
+
/** Read a string field; `fallback` (or `undefined`) when absent or not a string. */
|
|
20
|
+
export declare function readString(data: Data, key: string): string | undefined;
|
|
21
|
+
export declare function readString(data: Data, key: string, fallback: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Read a finite-number field; `fallback` (or `undefined`) when absent, not a
|
|
24
|
+
* number, or non-finite. The finite check rejects `NaN`/`Infinity` smuggled in
|
|
25
|
+
* through a hand-edited document.
|
|
26
|
+
*/
|
|
27
|
+
export declare function readNumber(data: Data, key: string): number | undefined;
|
|
28
|
+
export declare function readNumber(data: Data, key: string, fallback: number): number;
|
|
29
|
+
/** Read a boolean field; `fallback` (or `undefined`) when absent or not a boolean. */
|
|
30
|
+
export declare function readBoolean(data: Data, key: string): boolean | undefined;
|
|
31
|
+
export declare function readBoolean(data: Data, key: string, fallback: boolean): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Read a string field constrained to `allowed`; `fallback` (or `undefined`)
|
|
34
|
+
* when absent or not a member. The cast is performed **after** the runtime
|
|
35
|
+
* membership check, so it is sound — this is the helper that replaces the bare
|
|
36
|
+
* `data.x as SomeEnum` casts.
|
|
37
|
+
*/
|
|
38
|
+
export declare function readEnum<T extends string>(data: Data, key: string, allowed: readonly T[]): T | undefined;
|
|
39
|
+
export declare function readEnum<T extends string>(data: Data, key: string, allowed: readonly T[], fallback: T): T;
|
|
40
|
+
/** Read an object-valued (non-array) field as a record, or `undefined`. */
|
|
41
|
+
export declare function readObject(data: Data, key: string): Data | undefined;
|
|
42
|
+
/** Narrow an already-extracted value to a plain object record, or `null`. */
|
|
43
|
+
export declare function asObject(value: unknown): Data | null;
|
|
44
|
+
/**
|
|
45
|
+
* Narrow an already-extracted value to a {@link SerializedNode} (an object
|
|
46
|
+
* carrying a string `type` tag), or `null`. Guards the recursive child descent
|
|
47
|
+
* so a `children` array containing non-objects is skipped rather than crashing
|
|
48
|
+
* with `Cannot read 'type' of …`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function asSerializedNode(value: unknown): SerializedNode | null;
|
|
51
|
+
/**
|
|
52
|
+
* Narrow an already-extracted value to an array of finite numbers (non-numeric
|
|
53
|
+
* or non-finite entries collapse to `0`), or `null` when not an array.
|
|
54
|
+
*/
|
|
55
|
+
export declare function asNumberArray(value: unknown): number[] | null;
|
|
56
|
+
/** Allowed {@link FontWeight} values for {@link readEnum}. */
|
|
57
|
+
export declare const FONT_WEIGHTS: readonly ["normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900"];
|
|
58
|
+
/** Allowed {@link TextAlignment} values for {@link readEnum}. */
|
|
59
|
+
export declare const TEXT_ALIGNMENTS: readonly ["left", "center", "right", "justify"];
|
|
60
|
+
/** Allowed {@link RepeatMode} values for {@link readEnum}. */
|
|
61
|
+
export declare const REPEAT_MODES: readonly ["stretch", "repeat", "mirror-repeat"];
|
|
62
|
+
/** Allowed {@link RepeatFit} values for {@link readEnum}. */
|
|
63
|
+
export declare const REPEAT_FITS: readonly ["clip", "round"];
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/read.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAO9E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAO9E,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;AAOjF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1G,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;AAO3G,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEpE;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAEtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAE7D;AAQD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,4FAA6H,CAAC;AAEvJ,iEAAiE;AACjE,eAAO,MAAM,eAAe,iDAAqF,CAAC;AAElH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,iDAAkF,CAAC;AAE5G,6DAA6D;AAC7D,eAAO,MAAM,WAAW,4BAA4D,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
function readNumber(data, key, fallback) {
|
|
2
|
+
const value = data[key];
|
|
3
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
|
|
4
|
+
}
|
|
5
|
+
function readBoolean(data, key, fallback) {
|
|
6
|
+
const value = data[key];
|
|
7
|
+
return typeof value === 'boolean' ? value : fallback;
|
|
8
|
+
}
|
|
9
|
+
function readEnum(data, key, allowed, fallback) {
|
|
10
|
+
const value = data[key];
|
|
11
|
+
return typeof value === 'string' && allowed.includes(value) ? value : fallback;
|
|
12
|
+
}
|
|
13
|
+
/** Narrow an already-extracted value to a plain object record, or `null`. */
|
|
14
|
+
function asObject(value) {
|
|
15
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Narrow an already-extracted value to a {@link SerializedNode} (an object
|
|
19
|
+
* carrying a string `type` tag), or `null`. Guards the recursive child descent
|
|
20
|
+
* so a `children` array containing non-objects is skipped rather than crashing
|
|
21
|
+
* with `Cannot read 'type' of …`.
|
|
22
|
+
*/
|
|
23
|
+
function asSerializedNode(value) {
|
|
24
|
+
return typeof value === 'object' && value !== null && typeof value.type === 'string' ? value : null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Narrow an already-extracted value to an array of finite numbers (non-numeric
|
|
28
|
+
* or non-finite entries collapse to `0`), or `null` when not an array.
|
|
29
|
+
*/
|
|
30
|
+
function asNumberArray(value) {
|
|
31
|
+
return Array.isArray(value) ? value.map(entry => (typeof entry === 'number' && Number.isFinite(entry) ? entry : 0)) : null;
|
|
32
|
+
}
|
|
33
|
+
// ── Serialized-enum value lists ──────────────────────────────────────────────
|
|
34
|
+
// `satisfies readonly T[]` makes a typo here a compile error (a listed value
|
|
35
|
+
// that is not a union member fails to type-check). If a new union member is
|
|
36
|
+
// added upstream, an omission here only makes an otherwise-valid value fall
|
|
37
|
+
// back to its default — never unsafe — so keep these in sync deliberately.
|
|
38
|
+
/** Allowed {@link FontWeight} values for {@link readEnum}. */
|
|
39
|
+
const FONT_WEIGHTS = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];
|
|
40
|
+
/** Allowed {@link TextAlignment} values for {@link readEnum}. */
|
|
41
|
+
const TEXT_ALIGNMENTS = ['left', 'center', 'right', 'justify'];
|
|
42
|
+
/** Allowed {@link RepeatMode} values for {@link readEnum}. */
|
|
43
|
+
const REPEAT_MODES = ['stretch', 'repeat', 'mirror-repeat'];
|
|
44
|
+
/** Allowed {@link RepeatFit} values for {@link readEnum}. */
|
|
45
|
+
const REPEAT_FITS = ['clip', 'round'];
|
|
46
|
+
|
|
47
|
+
export { FONT_WEIGHTS, REPEAT_FITS, REPEAT_MODES, TEXT_ALIGNMENTS, asNumberArray, asObject, asSerializedNode, readBoolean, readEnum, readNumber };
|
|
48
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sources":["../../../../../src/core/serialization/read.ts"],"sourcesContent":[null],"names":[],"mappings":"SAyCgB,UAAU,CAAC,IAAU,EAAE,GAAW,EAAE,QAAiB,EAAA;AACnE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ;AAC/E;SAKgB,WAAW,CAAC,IAAU,EAAE,GAAW,EAAE,QAAkB,EAAA;AACrE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ;AACtD;AAUM,SAAU,QAAQ,CAAmB,IAAU,EAAE,GAAW,EAAE,OAAqB,EAAE,QAAY,EAAA;AACrG,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAI,KAAW,GAAG,QAAQ;AAC9G;AAOA;AACM,SAAU,QAAQ,CAAC,KAAc,EAAA;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAI,KAAc,GAAG,IAAI;AACtG;AAEA;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAAc,CAAC,IAAI,KAAK,QAAQ,GAAI,KAAwB,GAAG,IAAI;AACnI;AAEA;;;AAGG;AACG,SAAU,aAAa,CAAC,KAAc,EAAA;AAC1C,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;AAC5H;AAEA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAE5G;AACO,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;AAEpE;AACO,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe;AAEjE;MACa,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SerializationRegistry } from './SerializationRegistry';
|
|
2
|
+
/**
|
|
3
|
+
* Register the rendering-package node serializers on `registry`.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerRenderingSerializers(registry: SerializationRegistry): void;
|
|
7
|
+
//# sourceMappingURL=renderingSerializers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderingSerializers.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/renderingSerializers.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAmVrE;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAQlF"}
|