@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGpuStorageBuffer.js","sources":["../../../../../../src/rendering/webgpu/compute/WebGpuStorageBuffer.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAEA;;;;;;;;AAQG;MACU,mBAAmB,CAAA;AACd,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,KAAK;IAEb,eAAe,GAAqB,IAAI;AAEhD,IAAA,WAAA,CAAmB,MAAiB,EAAE,UAAkB,EAAE,KAAK,GAAG,SAAS,EAAA;AACzE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;YAChC,KAAK;AACL,YAAA,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;AAClF,SAAA,CAAC;IACJ;;AAGO,IAAA,KAAK,CAAC,IAAqB,EAAE,UAAU,GAAG,CAAC,EAAE,QAAiB,EAAA;QACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC;IACnH;AAEA;;;;;;;AAOG;AACI,IAAA,MAAM,IAAI,CAAC,MAAuB,EAAE,OAA2B,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC9C,gBAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,SAAA,CAAW;gBAC/B,IAAI,EAAE,IAAI,CAAC,UAAU;AACrB,gBAAA,KAAK,EAAE,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ;AACzD,aAAA,CAAC;QACJ;QAEA,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA,cAAA,CAAgB,EAAE,CAAC;AAExG,QAAA,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAEvF,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD;QAEA,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;AAEpD,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;AACpE,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAqB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;AAEhG,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAEhD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"WebGpuStorageBuffer.js","sources":["../../../../../../src/rendering/webgpu/compute/WebGpuStorageBuffer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.d.ts","sourceRoot":"","sources":["../../../src/resources/Asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3E,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Asset.d.ts","sourceRoot":"","sources":["../../../src/resources/Asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3E,gBAAgB;AAChB,qBAAa,SAAS;IACpB,gBAAgB;IAChB,SAAgB,OAAO,EAAE,cAAc,CAAC;gBAErB,MAAM,EAAE,cAAc;IAIzC,IAAW,IAAI,IAAI,MAAM,gBAAgB,CAExC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;CACF;AAMD,iFAAiF;AACjF,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CACxB;AAED,KAAK,kBAAkB,GAAG,KAAK,CAAC,SAAS,MAAM,gBAAgB,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEhK,eAAO,MAAM,KAAK,EAA2B,kBAAkB,CAAC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Internal implementation
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
/** @internal */
|
|
5
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
6
5
|
class AssetImpl {
|
|
7
6
|
/** @internal */
|
|
8
7
|
_config;
|
|
@@ -16,7 +15,6 @@ class AssetImpl {
|
|
|
16
15
|
return this._config.source;
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
20
18
|
const Asset = AssetImpl;
|
|
21
19
|
|
|
22
20
|
export { Asset, AssetImpl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.js","sources":["../../../../src/resources/Asset.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;AACA;AACA;AAEA;
|
|
1
|
+
{"version":3,"file":"Asset.js","sources":["../../../../src/resources/Asset.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;AACA;AACA;AAEA;MACa,SAAS,CAAA;;AAEJ,IAAA,OAAO;AAEvB,IAAA,WAAA,CAAmB,MAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACvB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;IAC1B;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC5B;AACD;AAkBM,MAAM,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary asset container (`.exoa`) — format constants, reader, and writer.
|
|
3
|
+
*
|
|
4
|
+
* A container packs N assets into one file so a single HTTP request yields all
|
|
5
|
+
* of them (the FFX VBF / Unreal `.pak` model). Layout:
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* magic "EXOA" (4B) │ version u32 LE │ indexLength u32 LE │ index (JSON, UTF-8)
|
|
9
|
+
* data: concatenated asset bytes [slice0][slice1]…[sliceN]
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* The index is a small JSON table of contents read once — zero-copy matters only
|
|
13
|
+
* for the asset *data*, not the TOC, so JSON keeps it trivial to build, parse,
|
|
14
|
+
* and extend. `offset`/`length` are relative to the start of the data section.
|
|
15
|
+
*
|
|
16
|
+
* `encodeContainer` (writer) and `parseContainer` (reader) share these constants
|
|
17
|
+
* so the build tooling and the runtime never drift. The writer is exported for
|
|
18
|
+
* the `scripts/build-container` tool and tests; it is tree-shaken out of the
|
|
19
|
+
* runtime bundle, which only pulls in the reader via `Loader.loadContainer`.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
/** Magic bytes at the start of every container: ASCII `"EXOA"`. */
|
|
24
|
+
export declare const CONTAINER_MAGIC = "EXOA";
|
|
25
|
+
/** Current container format version written by {@link encodeContainer}. */
|
|
26
|
+
export declare const CONTAINER_VERSION = 1;
|
|
27
|
+
/** Fixed header size: magic (4) + version (4) + indexLength (4). */
|
|
28
|
+
export declare const CONTAINER_HEADER_SIZE = 12;
|
|
29
|
+
/**
|
|
30
|
+
* One entry in a container's index. `offset`/`length` address the asset's bytes
|
|
31
|
+
* within the data section (after the header + index). `type` is the asset type
|
|
32
|
+
* name resolved against the loader's type map; `options` are forwarded to the
|
|
33
|
+
* handler's `createFromBytes`.
|
|
34
|
+
*/
|
|
35
|
+
export interface ContainerEntry {
|
|
36
|
+
/** Loader alias the unpacked resource is stored under. */
|
|
37
|
+
readonly alias: string;
|
|
38
|
+
/** Asset type name (resolved to a constructor via the loader's type map). */
|
|
39
|
+
readonly type: string;
|
|
40
|
+
/** Byte offset of this asset within the data section. */
|
|
41
|
+
readonly offset: number;
|
|
42
|
+
/** Byte length of this asset's slice. */
|
|
43
|
+
readonly length: number;
|
|
44
|
+
/** Optional MIME hint (informational; the factory determines type from bytes). */
|
|
45
|
+
readonly mime?: string;
|
|
46
|
+
/** Optional per-asset options forwarded to the handler. */
|
|
47
|
+
readonly options?: unknown;
|
|
48
|
+
}
|
|
49
|
+
/** Result of {@link parseContainer}: the validated index plus where data begins. */
|
|
50
|
+
export interface ParsedContainer {
|
|
51
|
+
readonly version: number;
|
|
52
|
+
readonly entries: readonly ContainerEntry[];
|
|
53
|
+
/** Byte offset where the data section starts (header size + index length). */
|
|
54
|
+
readonly dataStart: number;
|
|
55
|
+
}
|
|
56
|
+
/** Input for {@link encodeContainer}: an asset's bytes plus its index metadata. */
|
|
57
|
+
export interface ContainerInput {
|
|
58
|
+
readonly alias: string;
|
|
59
|
+
readonly type: string;
|
|
60
|
+
readonly bytes: ArrayBuffer | Uint8Array;
|
|
61
|
+
readonly mime?: string;
|
|
62
|
+
readonly options?: unknown;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Pack assets into a container `ArrayBuffer`. The inverse of
|
|
66
|
+
* {@link parseContainer}; used by the build tooling and the roundtrip test.
|
|
67
|
+
*/
|
|
68
|
+
export declare function encodeContainer(inputs: readonly ContainerInput[]): ArrayBuffer;
|
|
69
|
+
/**
|
|
70
|
+
* Parse and validate a container's header and index. Throws (never returns
|
|
71
|
+
* partial/garbage data) on a bad magic, unsupported version, truncated buffer,
|
|
72
|
+
* malformed index, or an entry whose slice runs past the data section.
|
|
73
|
+
*/
|
|
74
|
+
export declare function parseContainer(buffer: ArrayBuffer): ParsedContainer;
|
|
75
|
+
//# sourceMappingURL=AssetContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetContainer.d.ts","sourceRoot":"","sources":["../../../src/resources/AssetContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,mEAAmE;AACnE,eAAO,MAAM,eAAe,SAAS,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,WAAW,CA0C9E;AA+BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAwCnE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binary asset container (`.exoa`) — format constants, reader, and writer.
|
|
3
|
+
*
|
|
4
|
+
* A container packs N assets into one file so a single HTTP request yields all
|
|
5
|
+
* of them (the FFX VBF / Unreal `.pak` model). Layout:
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* magic "EXOA" (4B) │ version u32 LE │ indexLength u32 LE │ index (JSON, UTF-8)
|
|
9
|
+
* data: concatenated asset bytes [slice0][slice1]…[sliceN]
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* The index is a small JSON table of contents read once — zero-copy matters only
|
|
13
|
+
* for the asset *data*, not the TOC, so JSON keeps it trivial to build, parse,
|
|
14
|
+
* and extend. `offset`/`length` are relative to the start of the data section.
|
|
15
|
+
*
|
|
16
|
+
* `encodeContainer` (writer) and `parseContainer` (reader) share these constants
|
|
17
|
+
* so the build tooling and the runtime never drift. The writer is exported for
|
|
18
|
+
* the `scripts/build-container` tool and tests; it is tree-shaken out of the
|
|
19
|
+
* runtime bundle, which only pulls in the reader via `Loader.loadContainer`.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
/** Magic bytes at the start of every container: ASCII `"EXOA"`. */
|
|
24
|
+
const CONTAINER_MAGIC = 'EXOA';
|
|
25
|
+
/** Current container format version written by {@link encodeContainer}. */
|
|
26
|
+
const CONTAINER_VERSION = 1;
|
|
27
|
+
/** Fixed header size: magic (4) + version (4) + indexLength (4). */
|
|
28
|
+
const CONTAINER_HEADER_SIZE = 12;
|
|
29
|
+
function fail(detail) {
|
|
30
|
+
throw new Error(`Invalid asset container: ${detail}.`);
|
|
31
|
+
}
|
|
32
|
+
function readEntry(value, i, dataLength) {
|
|
33
|
+
if (typeof value !== 'object' || value === null) {
|
|
34
|
+
fail(`index entry ${i} is not an object`);
|
|
35
|
+
}
|
|
36
|
+
const record = value;
|
|
37
|
+
const { alias, type, offset, length, mime } = record;
|
|
38
|
+
if (typeof alias !== 'string')
|
|
39
|
+
fail(`index entry ${i} has a non-string "alias"`);
|
|
40
|
+
if (typeof type !== 'string')
|
|
41
|
+
fail(`index entry ${i} ("${alias}") has a non-string "type"`);
|
|
42
|
+
if (typeof offset !== 'number' || !Number.isFinite(offset) || offset < 0)
|
|
43
|
+
fail(`index entry "${alias}" has an invalid "offset"`);
|
|
44
|
+
if (typeof length !== 'number' || !Number.isFinite(length) || length < 0)
|
|
45
|
+
fail(`index entry "${alias}" has an invalid "length"`);
|
|
46
|
+
if (offset + length > dataLength)
|
|
47
|
+
fail(`index entry "${alias}" runs past the data section (offset ${offset} + length ${length} > ${dataLength})`);
|
|
48
|
+
if (mime !== undefined && typeof mime !== 'string')
|
|
49
|
+
fail(`index entry "${alias}" has a non-string "mime"`);
|
|
50
|
+
return {
|
|
51
|
+
alias,
|
|
52
|
+
type,
|
|
53
|
+
offset,
|
|
54
|
+
length,
|
|
55
|
+
...(typeof mime === 'string' && { mime }),
|
|
56
|
+
...(record.options !== undefined && { options: record.options }),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse and validate a container's header and index. Throws (never returns
|
|
61
|
+
* partial/garbage data) on a bad magic, unsupported version, truncated buffer,
|
|
62
|
+
* malformed index, or an entry whose slice runs past the data section.
|
|
63
|
+
*/
|
|
64
|
+
function parseContainer(buffer) {
|
|
65
|
+
if (buffer.byteLength < CONTAINER_HEADER_SIZE) {
|
|
66
|
+
fail(`buffer too small for a ${CONTAINER_HEADER_SIZE}-byte header (got ${buffer.byteLength})`);
|
|
67
|
+
}
|
|
68
|
+
const bytes = new Uint8Array(buffer);
|
|
69
|
+
const view = new DataView(buffer);
|
|
70
|
+
for (let i = 0; i < CONTAINER_MAGIC.length; i++) {
|
|
71
|
+
if (bytes[i] !== CONTAINER_MAGIC.charCodeAt(i)) {
|
|
72
|
+
fail(`bad magic (expected "${CONTAINER_MAGIC}")`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const version = view.getUint32(4, true);
|
|
76
|
+
if (version > CONTAINER_VERSION) {
|
|
77
|
+
fail(`unsupported version ${version} (this build reads up to ${CONTAINER_VERSION})`);
|
|
78
|
+
}
|
|
79
|
+
const indexLength = view.getUint32(8, true);
|
|
80
|
+
const dataStart = CONTAINER_HEADER_SIZE + indexLength;
|
|
81
|
+
if (dataStart > buffer.byteLength) {
|
|
82
|
+
fail(`index length ${indexLength} runs past the buffer (size ${buffer.byteLength})`);
|
|
83
|
+
}
|
|
84
|
+
let parsed;
|
|
85
|
+
try {
|
|
86
|
+
parsed = JSON.parse(new TextDecoder().decode(bytes.subarray(CONTAINER_HEADER_SIZE, dataStart)));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
fail('index is not valid JSON');
|
|
90
|
+
}
|
|
91
|
+
if (!Array.isArray(parsed)) {
|
|
92
|
+
fail('index is not an array');
|
|
93
|
+
}
|
|
94
|
+
const dataLength = buffer.byteLength - dataStart;
|
|
95
|
+
const entries = parsed.map((entry, i) => readEntry(entry, i, dataLength));
|
|
96
|
+
return { version, entries, dataStart };
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { CONTAINER_HEADER_SIZE, CONTAINER_MAGIC, CONTAINER_VERSION, parseContainer };
|
|
100
|
+
//# sourceMappingURL=AssetContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetContainer.js","sources":["../../../../src/resources/AssetContainer.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;AAqBG;AAEH;AACO,MAAM,eAAe,GAAG;AAE/B;AACO,MAAM,iBAAiB,GAAG;AAEjC;AACO,MAAM,qBAAqB,GAAG;AA4FrC,SAAS,IAAI,CAAC,MAAc,EAAA;AAC1B,IAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAA,CAAA,CAAG,CAAC;AACxD;AAEA,SAAS,SAAS,CAAC,KAAc,EAAE,CAAS,EAAE,UAAkB,EAAA;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/C,QAAA,IAAI,CAAC,CAAA,YAAA,EAAe,CAAC,CAAA,iBAAA,CAAmB,CAAC;IAC3C;IAEA,MAAM,MAAM,GAAG,KAAgC;AAC/C,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM;IAEpD,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,CAAA,YAAA,EAAe,CAAC,CAAA,yBAAA,CAA2B,CAAC;IAChF,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,CAAA,YAAA,EAAe,CAAC,MAAM,KAAK,CAAA,0BAAA,CAA4B,CAAC;AAC3F,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;AAAE,QAAA,IAAI,CAAC,CAAA,aAAA,EAAgB,KAAK,CAAA,yBAAA,CAA2B,CAAC;AAChI,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;AAAE,QAAA,IAAI,CAAC,CAAA,aAAA,EAAgB,KAAK,CAAA,yBAAA,CAA2B,CAAC;AAChI,IAAA,IAAI,MAAM,GAAG,MAAM,GAAG,UAAU;QAAE,IAAI,CAAC,CAAA,aAAA,EAAgB,KAAK,CAAA,qCAAA,EAAwC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAA,GAAA,EAAM,UAAU,CAAA,CAAA,CAAG,CAAC;AACjJ,IAAA,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,CAAA,aAAA,EAAgB,KAAK,CAAA,yBAAA,CAA2B,CAAC;IAE1G,OAAO;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC;AACzC,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACjE;AACH;AAEA;;;;AAIG;AACG,SAAU,cAAc,CAAC,MAAmB,EAAA;AAChD,IAAA,IAAI,MAAM,CAAC,UAAU,GAAG,qBAAqB,EAAE;QAC7C,IAAI,CAAC,0BAA0B,qBAAqB,CAAA,kBAAA,EAAqB,MAAM,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;IAChG;AAEA,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACpC,IAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC;AAEjC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,CAAA,qBAAA,EAAwB,eAAe,CAAA,EAAA,CAAI,CAAC;QACnD;IACF;IAEA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;AACvC,IAAA,IAAI,OAAO,GAAG,iBAAiB,EAAE;AAC/B,QAAA,IAAI,CAAC,CAAA,oBAAA,EAAuB,OAAO,4BAA4B,iBAAiB,CAAA,CAAA,CAAG,CAAC;IACtF;IAEA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;AAC3C,IAAA,MAAM,SAAS,GAAG,qBAAqB,GAAG,WAAW;AACrD,IAAA,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE;QACjC,IAAI,CAAC,gBAAgB,WAAW,CAAA,4BAAA,EAA+B,MAAM,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;IACtF;AAEA,IAAA,IAAI,MAAe;AACnB,IAAA,IAAI;QACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC;IACjG;AAAE,IAAA,MAAM;QACN,IAAI,CAAC,yBAAyB,CAAC;IACjC;IAEA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC1B,IAAI,CAAC,uBAAuB,CAAC;IAC/B;AAEA,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAEzE,IAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AACxC;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AudioStream } from '#audio/AudioStream';
|
|
2
2
|
import type { AudioSpriteClip } from '#audio/Sound';
|
|
3
3
|
import type { Sound } from '#audio/Sound';
|
|
4
4
|
import type { PlaybackOptions, StreamingLoadEvent } from '#core/types';
|
|
@@ -32,7 +32,7 @@ export interface AssetDefinitions {
|
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
music: {
|
|
35
|
-
resource:
|
|
35
|
+
resource: AudioStream;
|
|
36
36
|
config: {
|
|
37
37
|
source: string;
|
|
38
38
|
mimeType?: string;
|
|
@@ -131,7 +131,7 @@ export type AnyAssetConfig = {
|
|
|
131
131
|
type: K;
|
|
132
132
|
} & AssetDefinitions[K]['config'];
|
|
133
133
|
}[keyof AssetDefinitions];
|
|
134
|
-
export type AssetInput = AnyAssetConfig | Asset<
|
|
134
|
+
export type AssetInput = AnyAssetConfig | Asset<unknown>;
|
|
135
135
|
export type InferAssetResource<I extends AssetInput> = I extends Asset<infer T> ? T : I extends {
|
|
136
136
|
type: infer K extends keyof AssetDefinitions;
|
|
137
137
|
} ? AssetDefinitions[K]['resource'] : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetDefinitions.d.ts","sourceRoot":"","sources":["../../../src/resources/AssetDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AssetDefinitions.d.ts","sourceRoot":"","sources":["../../../src/resources/AssetDefinitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assets.d.ts","sourceRoot":"","sources":["../../../src/resources/Assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAkB,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMzF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI;KACpE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI;IACjE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAMF,gBAAgB;AAChB,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAC1D,SAAgB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAE5B,UAAU,EAAE,CAAC;CAuBjC;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAEpG,KAAK,mBAAmB,GAAG,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Assets.d.ts","sourceRoot":"","sources":["../../../src/resources/Assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAkB,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMzF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI;KACpE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI;IACjE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAMF,gBAAgB;AAChB,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAC1D,SAAgB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAE5B,UAAU,EAAE,CAAC;CAuBjC;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAEpG,KAAK,mBAAmB,GAAG,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,MAAM,EAA4B,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assets.js","sources":["../../../../src/resources/Assets.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAgBA;AACA;AACA;AAEA;MACa,UAAU,CAAA;AACL,IAAA,OAAO;AAEvB,IAAA,WAAA,CAAmB,UAAa,EAAA;QAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;AACxC,YAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,GAAG,0DAA0D,CAAC;QAC/I;QAEA,MAAM,OAAO,GAAmC,EAAE;QAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;AAC7B,YAAA,MAAM,QAAQ,GAAmB,KAAK,YAAY,SAAS,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,KAAuB,CAAC;AAE5G,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ;AAEvB,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AAC/B,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,OAAgC;IACjD;AACD;
|
|
1
|
+
{"version":3,"file":"Assets.js","sources":["../../../../src/resources/Assets.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAgBA;AACA;AACA;AAEA;MACa,UAAU,CAAA;AACL,IAAA,OAAO;AAEvB,IAAA,WAAA,CAAmB,UAAa,EAAA;QAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;AACxC,YAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,GAAG,0DAA0D,CAAC;QAC/I;QAEA,MAAM,OAAO,GAAmC,EAAE;QAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;AAC7B,YAAA,MAAM,QAAQ,GAAmB,KAAK,YAAY,SAAS,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,KAAuB,CAAC;AAE5G,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ;AAEvB,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AAC/B,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,OAAgC;IACjD;AACD;AA4BM,MAAM,MAAM,GAAG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FactoryRegistry.d.ts","sourceRoot":"","sources":["../../../src/resources/FactoryRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FactoryRegistry.d.ts","sourceRoot":"","sources":["../../../src/resources/FactoryRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAS/E;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGxB;IAEH,wEAAwE;IACjE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAI7E;;;OAGG;IACI,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAU7D;;;OAGG;IACI,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAI3C;;;OAGG;IACI,OAAO,IAAI,IAAI;CAGvB"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { Registry } from '../core/Registry.js';
|
|
2
|
+
|
|
3
|
+
/** Climbs one step up the prototype chain, returning the parent constructor. */
|
|
4
|
+
const parentConstructor = (type) => {
|
|
5
|
+
const prototype = Object.getPrototypeOf(type.prototype);
|
|
6
|
+
return prototype?.constructor ?? null;
|
|
7
|
+
};
|
|
1
8
|
/**
|
|
2
9
|
* Maps {@link AssetConstructor} tokens to their corresponding
|
|
3
10
|
* {@link AssetFactory} instances.
|
|
@@ -10,7 +17,10 @@
|
|
|
10
17
|
* @internal Used by {@link Loader}; consumers interact through `loader.register()`.
|
|
11
18
|
*/
|
|
12
19
|
class FactoryRegistry {
|
|
13
|
-
_factories = new
|
|
20
|
+
_factories = new Registry({
|
|
21
|
+
walk: parentConstructor,
|
|
22
|
+
dispose: factory => factory.destroy(),
|
|
23
|
+
});
|
|
14
24
|
/** Registers `factory` as the handler for `type` and its subclasses. */
|
|
15
25
|
register(type, factory) {
|
|
16
26
|
this._factories.set(type, factory);
|
|
@@ -20,15 +30,7 @@ class FactoryRegistry {
|
|
|
20
30
|
* chain if necessary. Throws if no matching factory is found.
|
|
21
31
|
*/
|
|
22
32
|
resolve(type) {
|
|
23
|
-
|
|
24
|
-
let factory;
|
|
25
|
-
while (constructor !== null && !factory) {
|
|
26
|
-
factory = this._factories.get(constructor);
|
|
27
|
-
if (!factory) {
|
|
28
|
-
const prototype = Object.getPrototypeOf(constructor.prototype);
|
|
29
|
-
constructor = prototype?.constructor ?? null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
33
|
+
const factory = this._factories.resolve(type);
|
|
32
34
|
if (!factory) {
|
|
33
35
|
throw new Error(`No factory registered for ${type.name}. ` + 'Register one with loader.register() before loading.');
|
|
34
36
|
}
|
|
@@ -39,25 +41,14 @@ class FactoryRegistry {
|
|
|
39
41
|
* prototype-chain ancestors.
|
|
40
42
|
*/
|
|
41
43
|
has(type) {
|
|
42
|
-
|
|
43
|
-
while (constructor !== null) {
|
|
44
|
-
if (this._factories.has(constructor)) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
const prototype = Object.getPrototypeOf(constructor.prototype);
|
|
48
|
-
constructor = prototype?.constructor ?? null;
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
44
|
+
return this._factories.has(type);
|
|
51
45
|
}
|
|
52
46
|
/**
|
|
53
47
|
* Calls {@link AssetFactory.destroy} on every registered factory and
|
|
54
48
|
* clears the registry.
|
|
55
49
|
*/
|
|
56
50
|
destroy() {
|
|
57
|
-
|
|
58
|
-
factory.destroy();
|
|
59
|
-
}
|
|
60
|
-
this._factories.clear();
|
|
51
|
+
this._factories.destroy();
|
|
61
52
|
}
|
|
62
53
|
}
|
|
63
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAWA;AACA,MAAM,iBAAiB,GAAG,CAAC,IAAsB,KAA6B;IAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAA8C;AAEpG,IAAA,OAAO,SAAS,EAAE,WAAW,IAAI,IAAI;AACvC,CAAC;AAED;;;;;;;;;;AAUG;MACU,eAAe,CAAA;IACT,UAAU,GAAG,IAAI,QAAQ,CAAiC;AACzE,QAAA,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;AACtC,KAAA,CAAC;;IAGK,QAAQ,CAAI,IAAyB,EAAE,OAAwB,EAAA;QACpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;IACpC;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAI,IAAyB,EAAA;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI,GAAG,qDAAqD,CAAC;QACrH;AAEA,QAAA,OAAO,OAA0B;IACnC;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAC,IAAsB,EAAA;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC;AAEA;;;AAGG;IACI,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;IAC3B;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDbDatabase.d.ts","sourceRoot":"","sources":["../../../src/resources/IndexedDbDatabase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoB3C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwF;IACpH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA4B;IAE7C,IAAW,SAAS,IAAI,OAAO,CAE9B;gBAGC,IAAI,EAAE,MAAM,EACZ,OAAO,SAAI,EACX,UAAU,GAAE,SAAS,MAAM,EAAsB,EACjD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,KAAK,OAAO,CAAC;IAYxF;;;;;OAKG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,GAAE,kBAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAM1G,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"IndexedDbDatabase.d.ts","sourceRoot":"","sources":["../../../src/resources/IndexedDbDatabase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoB3C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwF;IACpH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAA4B;IAE7C,IAAW,SAAS,IAAI,OAAO,CAE9B;gBAGC,IAAI,EAAE,MAAM,EACZ,OAAO,SAAI,EACX,UAAU,GAAE,SAAS,MAAM,EAAsB,EACjD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,KAAK,OAAO,CAAC;IAYxF;;;;;OAKG;cACa,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,GAAE,kBAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAM1G,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAiE3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAY9B,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAchE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWpD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5C,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAWvC,OAAO,IAAI,IAAI;CASvB"}
|
|
@@ -81,7 +81,11 @@ class IndexedDbDatabase {
|
|
|
81
81
|
.filter(v => v > oldVersion && v <= (newVersion ?? this.version))
|
|
82
82
|
.sort((a, b) => a - b);
|
|
83
83
|
for (const v of migrationKeys) {
|
|
84
|
-
const
|
|
84
|
+
const migration = this._migrations[v];
|
|
85
|
+
if (migration === undefined) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const ok = migration(database, transaction);
|
|
85
89
|
if (!ok) {
|
|
86
90
|
transaction.abort();
|
|
87
91
|
return;
|
|
@@ -125,6 +129,9 @@ class IndexedDbDatabase {
|
|
|
125
129
|
async load(type, name) {
|
|
126
130
|
const store = await this.getObjectStore(type);
|
|
127
131
|
return new Promise((resolve, reject) => {
|
|
132
|
+
// `IDBRequest.result` is typed `any`; the records this store writes in
|
|
133
|
+
// `save()` have the shape `{ name, data }`, so type the request to that
|
|
134
|
+
// record so `result.data` resolves as `T`.
|
|
128
135
|
const request = store.get(name);
|
|
129
136
|
request.addEventListener('success', () => resolve(request.result?.data ?? null));
|
|
130
137
|
request.addEventListener('error', () => reject(new Error('An error occurred while loading an item.')));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA,MAAM,iBAAiB,GAAsB;IAC3C,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,cAAc;CACf;AAED;;;;;;;;;;;;;;AAcG;MACU,iBAAiB,CAAA;AACZ,IAAA,IAAI;AACJ,IAAA,OAAO;AAEN,IAAA,WAAW;AACX,IAAA,WAAW;IACX,eAAe,GAAe,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IACjE,UAAU,GAAG,KAAK;IAClB,SAAS,GAAuB,IAAI;AAE5C,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,WAAA,CACE,IAAY,EACZ,OAAO,GAAG,CAAC,EACX,UAAA,GAAgC,iBAAiB,EACjD,UAAsF,EAAA;QAEtF,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;QAC7D;AAEA,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU;IAC/B;AAEA;;;;;AAKG;AACO,IAAA,MAAM,cAAc,CAAC,IAAY,EAAE,kBAAsC,UAAU,EAAA;AAC3F,QAAA,MAAM,IAAI,CAAC,OAAO,EAAE;AAEpB,QAAA,OAAO,IAAI,CAAC,SAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/E;AAEO,IAAA,MAAM,OAAO,GAAA;QAClB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,OAAO,GAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAEzE,YAAA,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,IAAG;AAChD,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC/B,gBAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAY;gBACxC,MAAM,aAAa,GAAa,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC;AACjE,gBAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK;AAExC,gBAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;AAC5G,gBAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAEhG,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;yBAC/C,GAAG,CAAC,MAAM;AACV,yBAAA,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;AAC/D,yBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAExB,oBAAA,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type IndexedDbStoreOptions } from './IndexedDbStore';
|
|
2
|
+
import type { KeyValueStore } from './KeyValueStore';
|
|
3
|
+
/** Construction options for {@link IndexedDbKeyValueStore}. */
|
|
4
|
+
export interface IndexedDbKeyValueStoreOptions extends Omit<IndexedDbStoreOptions, 'storeNames'> {
|
|
5
|
+
/** Object-store name within the database. Default `"__kv_store"`. */
|
|
6
|
+
storeName?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* {@link KeyValueStore} over IndexedDB (via {@link IndexedDbStore}), using the
|
|
10
|
+
* **structured-clone** algorithm.
|
|
11
|
+
*
|
|
12
|
+
* Unlike {@link WebStorageStore}, values are stored *directly* — no
|
|
13
|
+
* `JSON.stringify`. So `Blob`s, `ArrayBuffer`s, typed arrays and nested objects
|
|
14
|
+
* round-trip natively, and there is no string-size ceiling beyond the (large)
|
|
15
|
+
* IndexedDB quota. Use this for binary or large saves; use `WebStorageStore` for
|
|
16
|
+
* small synchronous JSON.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const store = new IndexedDbKeyValueStore('my-game-saves');
|
|
21
|
+
* await store.set('autosave', { level: 3, snapshot: pngBlob });
|
|
22
|
+
* const data = await store.get<{ level: number; snapshot: Blob }>('autosave');
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class IndexedDbKeyValueStore implements KeyValueStore {
|
|
26
|
+
private readonly _storeName;
|
|
27
|
+
private readonly _store;
|
|
28
|
+
constructor(nameOrOptions?: string | IndexedDbKeyValueStoreOptions);
|
|
29
|
+
get<T>(key: string): Promise<T | null>;
|
|
30
|
+
set(key: string, value: unknown): Promise<void>;
|
|
31
|
+
has(key: string): Promise<boolean>;
|
|
32
|
+
delete(key: string): Promise<boolean>;
|
|
33
|
+
clear(): Promise<boolean>;
|
|
34
|
+
/** Synchronously release the underlying database handle. */
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=IndexedDbKeyValueStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbKeyValueStore.d.ts","sourceRoot":"","sources":["../../../src/resources/IndexedDbKeyValueStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,+DAA+D;AAC/D,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC9F,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAErB,aAAa,GAAE,MAAM,GAAG,6BAAmD;IAajF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC,4DAA4D;IACrD,OAAO,IAAI,IAAI;CAGvB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IndexedDbStore } from './IndexedDbStore.js';
|
|
2
|
+
|
|
3
|
+
const defaultDatabaseName = 'exojs-kv-store';
|
|
4
|
+
const defaultStoreName = '__kv_store';
|
|
5
|
+
/**
|
|
6
|
+
* {@link KeyValueStore} over IndexedDB (via {@link IndexedDbStore}), using the
|
|
7
|
+
* **structured-clone** algorithm.
|
|
8
|
+
*
|
|
9
|
+
* Unlike {@link WebStorageStore}, values are stored *directly* — no
|
|
10
|
+
* `JSON.stringify`. So `Blob`s, `ArrayBuffer`s, typed arrays and nested objects
|
|
11
|
+
* round-trip natively, and there is no string-size ceiling beyond the (large)
|
|
12
|
+
* IndexedDB quota. Use this for binary or large saves; use `WebStorageStore` for
|
|
13
|
+
* small synchronous JSON.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const store = new IndexedDbKeyValueStore('my-game-saves');
|
|
18
|
+
* await store.set('autosave', { level: 3, snapshot: pngBlob });
|
|
19
|
+
* const data = await store.get<{ level: number; snapshot: Blob }>('autosave');
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
class IndexedDbKeyValueStore {
|
|
23
|
+
_storeName;
|
|
24
|
+
_store;
|
|
25
|
+
constructor(nameOrOptions = defaultDatabaseName) {
|
|
26
|
+
const options = typeof nameOrOptions === 'string' ? { name: nameOrOptions } : nameOrOptions;
|
|
27
|
+
const storeName = options.storeName ?? defaultStoreName;
|
|
28
|
+
this._storeName = storeName;
|
|
29
|
+
this._store = new IndexedDbStore({
|
|
30
|
+
name: options.name,
|
|
31
|
+
...(options.version !== undefined && { version: options.version }),
|
|
32
|
+
...(options.migrations !== undefined && { migrations: options.migrations }),
|
|
33
|
+
storeNames: [storeName],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async get(key) {
|
|
37
|
+
return (await this._store.load(this._storeName, key));
|
|
38
|
+
}
|
|
39
|
+
async set(key, value) {
|
|
40
|
+
await this._store.save(this._storeName, key, value);
|
|
41
|
+
}
|
|
42
|
+
async has(key) {
|
|
43
|
+
return (await this._store.load(this._storeName, key)) !== null;
|
|
44
|
+
}
|
|
45
|
+
async delete(key) {
|
|
46
|
+
return this._store.delete(this._storeName, key);
|
|
47
|
+
}
|
|
48
|
+
async clear() {
|
|
49
|
+
return this._store.clear(this._storeName);
|
|
50
|
+
}
|
|
51
|
+
/** Synchronously release the underlying database handle. */
|
|
52
|
+
destroy() {
|
|
53
|
+
this._store.destroy();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { IndexedDbKeyValueStore };
|
|
58
|
+
//# sourceMappingURL=IndexedDbKeyValueStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexedDbKeyValueStore.js","sources":["../../../../src/resources/IndexedDbKeyValueStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;AASA,MAAM,mBAAmB,GAAG,gBAAgB;AAC5C,MAAM,gBAAgB,GAAG,YAAY;AAErC;;;;;;;;;;;;;;;;AAgBG;MACU,sBAAsB,CAAA;AAChB,IAAA,UAAU;AACV,IAAA,MAAM;AAEvB,IAAA,WAAA,CAAmB,gBAAwD,mBAAmB,EAAA;AAC5F,QAAA,MAAM,OAAO,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,aAAa;AAC3F,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB;AAEvD,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,YAAA,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAClE,YAAA,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3E,UAAU,EAAE,CAAC,SAAS,CAAC;AACxB,SAAA,CAAC;IACJ;IAEO,MAAM,GAAG,CAAI,GAAW,EAAA;AAC7B,QAAA,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;IACtD;AAEO,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,KAAc,EAAA;AAC1C,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;IACrD;IAEO,MAAM,GAAG,CAAC,GAAW,EAAA;AAC1B,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,IAAI;IAChE;IAEO,MAAM,MAAM,CAAC,GAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;IACjD;AAEO,IAAA,MAAM,KAAK,GAAA;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3C;;IAGO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACvB;AACD;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async key/value store for application data — game saves, settings, profiles,
|
|
3
|
+
* cached payloads. A single, uniform surface so calling code does not care
|
|
4
|
+
* whether the backing store is synchronous or asynchronous.
|
|
5
|
+
*
|
|
6
|
+
* The backend is the axis you choose by capability, not a flag:
|
|
7
|
+
* - {@link WebStorageStore} — `localStorage`/`sessionStorage`: small, synchronous,
|
|
8
|
+
* JSON-only (no Blobs/ArrayBuffers). The moral successor of the old `JsonStore`.
|
|
9
|
+
* - {@link IndexedDbKeyValueStore} — IndexedDB: large, structured-clone, so Blobs,
|
|
10
|
+
* `ArrayBuffer`s and nested objects round-trip without JSON.
|
|
11
|
+
* - {@link MemoryStore} — in-memory: ephemeral, holds references directly. For
|
|
12
|
+
* tests and throwaway data.
|
|
13
|
+
*
|
|
14
|
+
* Pair with {@link Scene.serialize} / {@link Scene.deserialize} for a save
|
|
15
|
+
* system: `store.set(slot, scene.serialize())` to save, `scene.deserialize(await
|
|
16
|
+
* store.get(slot))` to restore. Slot naming, profiles and autosave policy are
|
|
17
|
+
* the game's concern, not the engine's.
|
|
18
|
+
*/
|
|
19
|
+
export interface KeyValueStore {
|
|
20
|
+
/** Read the value at `key`, or `null` when absent. */
|
|
21
|
+
get<T>(key: string): Promise<T | null>;
|
|
22
|
+
/** Write `value` at `key`, replacing any existing entry. */
|
|
23
|
+
set(key: string, value: unknown): Promise<void>;
|
|
24
|
+
/** Whether an entry exists at `key`. */
|
|
25
|
+
has(key: string): Promise<boolean>;
|
|
26
|
+
/** Remove the entry at `key`. Resolves `true` if one existed and was removed. */
|
|
27
|
+
delete(key: string): Promise<boolean>;
|
|
28
|
+
/** Remove every entry owned by this store. Resolves `true` on success. */
|
|
29
|
+
clear(): Promise<boolean>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=KeyValueStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValueStore.d.ts","sourceRoot":"","sources":["../../../src/resources/KeyValueStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,4DAA4D;IAC5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,wCAAwC;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,iFAAiF;IACjF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,0EAA0E;IAC1E,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3B"}
|