@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.
Files changed (739) hide show
  1. package/CHANGELOG.md +133 -6
  2. package/README.md +80 -63
  3. package/dist/esm/animation/Tween.js +1 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +9 -5
  6. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  7. package/dist/esm/animation/TweenManager.js +14 -8
  8. package/dist/esm/animation/TweenManager.js.map +1 -1
  9. package/dist/esm/animation/index.d.ts +6 -4
  10. package/dist/esm/animation/index.d.ts.map +1 -1
  11. package/dist/esm/audio/AudioBus.d.ts +12 -12
  12. package/dist/esm/audio/AudioBus.js +29 -29
  13. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  14. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  15. package/dist/esm/audio/AudioEffect.js +16 -0
  16. package/dist/esm/audio/AudioEffect.js.map +1 -0
  17. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  18. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  19. package/dist/esm/audio/AudioGenerator.js +165 -0
  20. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  21. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  22. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  23. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  24. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  25. package/dist/esm/audio/AudioInput.d.ts +39 -0
  26. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  27. package/dist/esm/audio/AudioInput.js +53 -0
  28. package/dist/esm/audio/AudioInput.js.map +1 -0
  29. package/dist/esm/audio/AudioManager.d.ts +72 -34
  30. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  31. package/dist/esm/audio/AudioManager.js +97 -51
  32. package/dist/esm/audio/AudioManager.js.map +1 -1
  33. package/dist/esm/audio/AudioStream.d.ts +49 -0
  34. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  35. package/dist/esm/audio/AudioStream.js +109 -0
  36. package/dist/esm/audio/AudioStream.js.map +1 -0
  37. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  38. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  39. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  40. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  41. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  42. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  43. package/dist/esm/audio/BaseVoice.js +298 -0
  44. package/dist/esm/audio/BaseVoice.js.map +1 -0
  45. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  46. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  47. package/dist/esm/audio/BiquadEffect.js +110 -0
  48. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  49. package/dist/esm/audio/InputVoice.d.ts +41 -0
  50. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  51. package/dist/esm/audio/InputVoice.js +85 -0
  52. package/dist/esm/audio/InputVoice.js.map +1 -0
  53. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  54. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  55. package/dist/esm/audio/NoopVoice.js +52 -0
  56. package/dist/esm/audio/NoopVoice.js.map +1 -0
  57. package/dist/esm/audio/Playable.d.ts +135 -0
  58. package/dist/esm/audio/Playable.d.ts.map +1 -0
  59. package/dist/esm/audio/Sound.d.ts +64 -69
  60. package/dist/esm/audio/Sound.d.ts.map +1 -1
  61. package/dist/esm/audio/Sound.js +176 -377
  62. package/dist/esm/audio/Sound.js.map +1 -1
  63. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  64. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  65. package/dist/esm/audio/SoundVoice.js +168 -0
  66. package/dist/esm/audio/SoundVoice.js.map +1 -0
  67. package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
  68. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  69. package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
  70. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  71. package/dist/esm/audio/audio-context.js +1 -1
  72. package/dist/esm/audio/audio-context.js.map +1 -1
  73. package/dist/esm/audio/crossFade.d.ts +22 -13
  74. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  75. package/dist/esm/audio/crossFade.js +21 -13
  76. package/dist/esm/audio/crossFade.js.map +1 -1
  77. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  78. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  79. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  80. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  81. package/dist/esm/audio/filters/index.d.ts +0 -10
  82. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  83. package/dist/esm/audio/index.d.ts +13 -15
  84. package/dist/esm/audio/index.d.ts.map +1 -1
  85. package/dist/esm/core/Application.d.ts +127 -10
  86. package/dist/esm/core/Application.d.ts.map +1 -1
  87. package/dist/esm/core/Application.js +226 -25
  88. package/dist/esm/core/Application.js.map +1 -1
  89. package/dist/esm/core/BuildInfo.js +2 -2
  90. package/dist/esm/core/Color.d.ts +6 -4
  91. package/dist/esm/core/Color.d.ts.map +1 -1
  92. package/dist/esm/core/Color.js +19 -15
  93. package/dist/esm/core/Color.js.map +1 -1
  94. package/dist/esm/core/DisposalScope.d.ts +50 -0
  95. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  96. package/dist/esm/core/DisposalScope.js +86 -0
  97. package/dist/esm/core/DisposalScope.js.map +1 -0
  98. package/dist/esm/core/Perf.d.ts +10 -22
  99. package/dist/esm/core/Perf.d.ts.map +1 -1
  100. package/dist/esm/core/Perf.js +15 -8
  101. package/dist/esm/core/Perf.js.map +1 -1
  102. package/dist/esm/core/Registry.d.ts +64 -0
  103. package/dist/esm/core/Registry.d.ts.map +1 -0
  104. package/dist/esm/core/Registry.js +79 -0
  105. package/dist/esm/core/Registry.js.map +1 -0
  106. package/dist/esm/core/Scene.d.ts +69 -21
  107. package/dist/esm/core/Scene.d.ts.map +1 -1
  108. package/dist/esm/core/Scene.js +109 -16
  109. package/dist/esm/core/Scene.js.map +1 -1
  110. package/dist/esm/core/SceneManager.d.ts +22 -60
  111. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  112. package/dist/esm/core/SceneManager.js +68 -153
  113. package/dist/esm/core/SceneManager.js.map +1 -1
  114. package/dist/esm/core/SceneNode.d.ts +43 -2
  115. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  116. package/dist/esm/core/SceneNode.js +101 -12
  117. package/dist/esm/core/SceneNode.js.map +1 -1
  118. package/dist/esm/core/Signal.js.map +1 -1
  119. package/dist/esm/core/Stage.d.ts +42 -0
  120. package/dist/esm/core/Stage.d.ts.map +1 -0
  121. package/dist/esm/core/System.d.ts +22 -0
  122. package/dist/esm/core/System.d.ts.map +1 -0
  123. package/dist/esm/core/SystemRegistry.d.ts +35 -0
  124. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  125. package/dist/esm/core/SystemRegistry.js +104 -0
  126. package/dist/esm/core/SystemRegistry.js.map +1 -0
  127. package/dist/esm/core/Time.d.ts +15 -0
  128. package/dist/esm/core/Time.d.ts.map +1 -1
  129. package/dist/esm/core/Time.js +25 -0
  130. package/dist/esm/core/Time.js.map +1 -1
  131. package/dist/esm/core/dev.d.ts +9 -4
  132. package/dist/esm/core/dev.d.ts.map +1 -1
  133. package/dist/esm/core/dev.js +5 -0
  134. package/dist/esm/core/dev.js.map +1 -1
  135. package/dist/esm/core/index.d.ts +26 -15
  136. package/dist/esm/core/index.d.ts.map +1 -1
  137. package/dist/esm/core/letterbox.d.ts +25 -0
  138. package/dist/esm/core/letterbox.d.ts.map +1 -0
  139. package/dist/esm/core/letterbox.js +26 -0
  140. package/dist/esm/core/letterbox.js.map +1 -0
  141. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  142. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  143. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  144. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  145. package/dist/esm/core/serialization/Prefab.js +61 -0
  146. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  147. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  148. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  149. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  150. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  151. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  152. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  153. package/dist/esm/core/serialization/commonFields.js +149 -0
  154. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  155. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  156. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  157. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  158. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  159. package/dist/esm/core/serialization/index.d.ts +6 -0
  160. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  161. package/dist/esm/core/serialization/read.d.ts +65 -0
  162. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  163. package/dist/esm/core/serialization/read.js +48 -0
  164. package/dist/esm/core/serialization/read.js.map +1 -0
  165. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  166. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  167. package/dist/esm/core/serialization/renderingSerializers.js +311 -0
  168. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  169. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  170. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  171. package/dist/esm/core/serialization/serialize.js +144 -0
  172. package/dist/esm/core/serialization/serialize.js.map +1 -0
  173. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  174. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  175. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  176. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  177. package/dist/esm/core/serialization/types.d.ts +49 -0
  178. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  179. package/dist/esm/core/serialization/types.js +9 -0
  180. package/dist/esm/core/serialization/types.js.map +1 -0
  181. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  182. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  183. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  184. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  185. package/dist/esm/core/types.d.ts +1 -1
  186. package/dist/esm/core/types.d.ts.map +1 -1
  187. package/dist/esm/core/utils.d.ts +1 -16
  188. package/dist/esm/core/utils.d.ts.map +1 -1
  189. package/dist/esm/core/utils.js +2 -100
  190. package/dist/esm/core/utils.js.map +1 -1
  191. package/dist/esm/debug/PerformanceLayer.js +8 -9
  192. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  193. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  194. package/dist/esm/debug/PointerStackLayer.js +9 -6
  195. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  196. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  197. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  198. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  199. package/dist/esm/extensions/Extension.d.ts +39 -4
  200. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  201. package/dist/esm/extensions/materialize.d.ts +9 -1
  202. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  203. package/dist/esm/extensions/materialize.js +17 -2
  204. package/dist/esm/extensions/materialize.js.map +1 -1
  205. package/dist/esm/extensions/snapshot.d.ts +2 -1
  206. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  207. package/dist/esm/extensions/snapshot.js +8 -0
  208. package/dist/esm/extensions/snapshot.js.map +1 -1
  209. package/dist/esm/index.d.ts +2 -1
  210. package/dist/esm/index.d.ts.map +1 -1
  211. package/dist/esm/index.js +34 -59
  212. package/dist/esm/index.js.map +1 -1
  213. package/dist/esm/input/FocusManager.d.ts +59 -0
  214. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  215. package/dist/esm/input/FocusManager.js +175 -0
  216. package/dist/esm/input/FocusManager.js.map +1 -0
  217. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  218. package/dist/esm/input/Gamepad.js +8 -4
  219. package/dist/esm/input/Gamepad.js.map +1 -1
  220. package/dist/esm/input/GamepadAxis.js +2 -2
  221. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  222. package/dist/esm/input/GamepadDefinitions.js +6 -2
  223. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  224. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  225. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  226. package/dist/esm/input/GestureRecognizer.js +1 -3
  227. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  228. package/dist/esm/input/InputBinding.js +3 -3
  229. package/dist/esm/input/InputBinding.js.map +1 -1
  230. package/dist/esm/input/InputManager.d.ts +7 -2
  231. package/dist/esm/input/InputManager.d.ts.map +1 -1
  232. package/dist/esm/input/InputManager.js +35 -21
  233. package/dist/esm/input/InputManager.js.map +1 -1
  234. package/dist/esm/input/InteractionManager.d.ts +67 -2
  235. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  236. package/dist/esm/input/InteractionManager.js +165 -41
  237. package/dist/esm/input/InteractionManager.js.map +1 -1
  238. package/dist/esm/input/KeyEvent.d.ts +25 -0
  239. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  240. package/dist/esm/input/KeyEvent.js +32 -0
  241. package/dist/esm/input/KeyEvent.js.map +1 -0
  242. package/dist/esm/input/Pointer.d.ts +21 -4
  243. package/dist/esm/input/Pointer.d.ts.map +1 -1
  244. package/dist/esm/input/Pointer.js +54 -15
  245. package/dist/esm/input/Pointer.js.map +1 -1
  246. package/dist/esm/input/index.d.ts +3 -1
  247. package/dist/esm/input/index.d.ts.map +1 -1
  248. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  249. package/dist/esm/math/AbstractVector.js +7 -2
  250. package/dist/esm/math/AbstractVector.js.map +1 -1
  251. package/dist/esm/math/Circle.d.ts.map +1 -1
  252. package/dist/esm/math/Circle.js +5 -1
  253. package/dist/esm/math/Circle.js.map +1 -1
  254. package/dist/esm/math/Line.d.ts +1 -1
  255. package/dist/esm/math/Line.d.ts.map +1 -1
  256. package/dist/esm/math/Line.js +1 -1
  257. package/dist/esm/math/Line.js.map +1 -1
  258. package/dist/esm/math/Matrix.d.ts.map +1 -1
  259. package/dist/esm/math/Matrix.js +6 -1
  260. package/dist/esm/math/Matrix.js.map +1 -1
  261. package/dist/esm/math/ObservableVector.d.ts +26 -8
  262. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  263. package/dist/esm/math/ObservableVector.js +24 -16
  264. package/dist/esm/math/ObservableVector.js.map +1 -1
  265. package/dist/esm/math/Polygon.d.ts +5 -0
  266. package/dist/esm/math/Polygon.d.ts.map +1 -1
  267. package/dist/esm/math/Polygon.js +27 -3
  268. package/dist/esm/math/Polygon.js.map +1 -1
  269. package/dist/esm/math/Random.d.ts +9 -9
  270. package/dist/esm/math/Random.d.ts.map +1 -1
  271. package/dist/esm/math/Random.js +46 -46
  272. package/dist/esm/math/Random.js.map +1 -1
  273. package/dist/esm/math/Rectangle.d.ts +11 -4
  274. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  275. package/dist/esm/math/Rectangle.js +12 -6
  276. package/dist/esm/math/Rectangle.js.map +1 -1
  277. package/dist/esm/math/Vector.d.ts +1 -1
  278. package/dist/esm/math/Vector.d.ts.map +1 -1
  279. package/dist/esm/math/Vector.js +1 -1
  280. package/dist/esm/math/Vector.js.map +1 -1
  281. package/dist/esm/math/collision-detection.d.ts +42 -0
  282. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  283. package/dist/esm/math/collision-detection.js +54 -4
  284. package/dist/esm/math/collision-detection.js.map +1 -1
  285. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  286. package/dist/esm/math/collision-primitives.js +4 -0
  287. package/dist/esm/math/collision-primitives.js.map +1 -1
  288. package/dist/esm/math/geometry.d.ts +26 -0
  289. package/dist/esm/math/geometry.d.ts.map +1 -1
  290. package/dist/esm/math/geometry.js +89 -2
  291. package/dist/esm/math/geometry.js.map +1 -1
  292. package/dist/esm/math/index.d.ts +7 -5
  293. package/dist/esm/math/index.d.ts.map +1 -1
  294. package/dist/esm/math/swept-collision.d.ts +13 -0
  295. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  296. package/dist/esm/math/swept-collision.js +15 -1
  297. package/dist/esm/math/swept-collision.js.map +1 -1
  298. package/dist/esm/math/triangulate.d.ts.map +1 -1
  299. package/dist/esm/math/triangulate.js +9 -1
  300. package/dist/esm/math/triangulate.js.map +1 -1
  301. package/dist/esm/math/utils.d.ts +20 -0
  302. package/dist/esm/math/utils.d.ts.map +1 -1
  303. package/dist/esm/math/utils.js +18 -15
  304. package/dist/esm/math/utils.js.map +1 -1
  305. package/dist/esm/renderer-sdk.d.ts +2 -0
  306. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  307. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  308. package/dist/esm/renderer-sdk.js.map +1 -0
  309. package/dist/esm/rendering/CallbackRenderPass.js +1 -1
  310. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  311. package/dist/esm/rendering/Container.d.ts +3 -0
  312. package/dist/esm/rendering/Container.d.ts.map +1 -1
  313. package/dist/esm/rendering/Container.js +28 -5
  314. package/dist/esm/rendering/Container.js.map +1 -1
  315. package/dist/esm/rendering/Drawable.d.ts +24 -0
  316. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  317. package/dist/esm/rendering/Drawable.js +54 -0
  318. package/dist/esm/rendering/Drawable.js.map +1 -1
  319. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  320. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  321. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  322. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  323. package/dist/esm/rendering/RenderBackend.d.ts +15 -1
  324. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  325. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  326. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  327. package/dist/esm/rendering/RenderBatch.js +107 -0
  328. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  329. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  330. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  331. package/dist/esm/rendering/RenderNode.js +113 -20
  332. package/dist/esm/rendering/RenderNode.js.map +1 -1
  333. package/dist/esm/rendering/RenderNodePass.js +2 -2
  334. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  335. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  336. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  337. package/dist/esm/rendering/RenderStats.js +14 -0
  338. package/dist/esm/rendering/RenderStats.js.map +1 -1
  339. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  340. package/dist/esm/rendering/RendererRegistry.js +20 -23
  341. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  342. package/dist/esm/rendering/RenderingContext.d.ts +88 -4
  343. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  344. package/dist/esm/rendering/RenderingContext.js +107 -5
  345. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  346. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  347. package/dist/esm/rendering/TransformBuffer.js +2 -0
  348. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  349. package/dist/esm/rendering/View.d.ts +47 -15
  350. package/dist/esm/rendering/View.d.ts.map +1 -1
  351. package/dist/esm/rendering/View.js +44 -27
  352. package/dist/esm/rendering/View.js.map +1 -1
  353. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  354. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
  355. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  356. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  357. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  358. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  359. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  360. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  361. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  362. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  363. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  364. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  365. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  366. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  367. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  368. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  369. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  370. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  371. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  372. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  373. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  374. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  375. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
  376. package/dist/esm/rendering/pixelSnap.js +1 -0
  377. package/dist/esm/rendering/pixelSnap.js.map +1 -1
  378. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  379. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  380. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  381. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  382. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  383. package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
  384. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  385. package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
  386. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  387. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  388. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  389. package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
  390. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  391. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  392. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  393. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  394. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  395. package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
  396. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  397. package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
  398. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  399. package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
  400. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  401. package/dist/esm/rendering/primitives/Graphics.js +17 -1
  402. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  403. package/dist/esm/rendering/{index.d.ts → public.d.ts} +5 -35
  404. package/dist/esm/rendering/public.d.ts.map +1 -0
  405. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  406. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  407. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  408. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
  409. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  410. package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
  411. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  412. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
  413. package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
  414. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
  415. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
  416. package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
  417. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
  418. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  419. package/dist/esm/rendering/sprite/Sprite.js +30 -3
  420. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  421. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
  422. package/dist/esm/rendering/sprite/nineSlice.js +12 -18
  423. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
  424. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
  425. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
  426. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
  427. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  428. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  429. package/dist/esm/rendering/text/BitmapText.js +4 -0
  430. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  431. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  432. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  433. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  434. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  435. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  436. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  437. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  438. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  439. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  440. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  441. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  442. package/dist/esm/rendering/text/HTMLText.js +1 -0
  443. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  444. package/dist/esm/rendering/text/Text.d.ts +17 -6
  445. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  446. package/dist/esm/rendering/text/Text.js +7 -12
  447. package/dist/esm/rendering/text/Text.js.map +1 -1
  448. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  449. package/dist/esm/rendering/text/TextLayout.js +4 -18
  450. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  451. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  452. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  453. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  454. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  455. package/dist/esm/rendering/texture/Texture.js +8 -0
  456. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  457. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
  458. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
  459. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
  460. package/dist/esm/rendering/texture/repeat.js +2 -2
  461. package/dist/esm/rendering/texture/repeat.js.map +1 -1
  462. package/dist/esm/rendering/types.d.ts +11 -0
  463. package/dist/esm/rendering/types.d.ts.map +1 -1
  464. package/dist/esm/rendering/types.js +11 -0
  465. package/dist/esm/rendering/types.js.map +1 -1
  466. package/dist/esm/rendering/video/Video.d.ts +7 -3
  467. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  468. package/dist/esm/rendering/video/Video.js +7 -3
  469. package/dist/esm/rendering/video/Video.js.map +1 -1
  470. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  471. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  472. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  473. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +21 -2
  474. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  475. package/dist/esm/rendering/webgl2/WebGl2Backend.js +106 -6
  476. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  477. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  478. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  479. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  480. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  481. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  482. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  483. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  484. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
  485. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
  486. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
  487. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  488. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  489. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  490. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  491. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
  492. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
  493. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
  494. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  495. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  496. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  497. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  498. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  499. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  500. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  501. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  502. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  503. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
  504. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  505. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  506. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  507. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  508. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  509. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
  510. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  511. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +18 -2
  512. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  513. package/dist/esm/rendering/webgpu/WebGpuBackend.js +91 -10
  514. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  515. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  516. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
  517. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  518. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
  519. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  520. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
  521. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  522. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  523. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +6 -1
  524. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  525. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  526. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +19 -9
  527. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  528. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  529. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +8 -4
  530. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  531. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  532. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
  533. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  534. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  535. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
  536. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  537. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +13 -2
  538. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  539. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +22 -2
  540. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  541. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  542. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  543. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  544. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  545. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  546. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  547. package/dist/esm/resources/Asset.d.ts +1 -1
  548. package/dist/esm/resources/Asset.d.ts.map +1 -1
  549. package/dist/esm/resources/Asset.js +0 -2
  550. package/dist/esm/resources/Asset.js.map +1 -1
  551. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  552. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  553. package/dist/esm/resources/AssetContainer.js +100 -0
  554. package/dist/esm/resources/AssetContainer.js.map +1 -0
  555. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  556. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  557. package/dist/esm/resources/Assets.d.ts.map +1 -1
  558. package/dist/esm/resources/Assets.js +0 -1
  559. package/dist/esm/resources/Assets.js.map +1 -1
  560. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  561. package/dist/esm/resources/FactoryRegistry.js +14 -23
  562. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  563. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  564. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  565. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  566. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  567. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  568. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  569. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  570. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  571. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  572. package/dist/esm/resources/Loader.d.ts +42 -2
  573. package/dist/esm/resources/Loader.d.ts.map +1 -1
  574. package/dist/esm/resources/Loader.js +92 -7
  575. package/dist/esm/resources/Loader.js.map +1 -1
  576. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  577. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  578. package/dist/esm/resources/MemoryStore.js +30 -0
  579. package/dist/esm/resources/MemoryStore.js.map +1 -0
  580. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  581. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  582. package/dist/esm/resources/WebStorageStore.js +84 -0
  583. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  584. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  585. package/dist/esm/resources/coreAssetBindings.js +16 -5
  586. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  587. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  588. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  589. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  590. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  591. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  592. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  593. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  594. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  595. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  596. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  597. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  598. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  599. package/dist/esm/resources/index.d.ts +51 -34
  600. package/dist/esm/resources/index.d.ts.map +1 -1
  601. package/dist/esm/resources/utils.js +4 -4
  602. package/dist/esm/resources/utils.js.map +1 -1
  603. package/dist/esm/ui/Button.d.ts +54 -0
  604. package/dist/esm/ui/Button.d.ts.map +1 -0
  605. package/dist/esm/ui/Button.js +139 -0
  606. package/dist/esm/ui/Button.js.map +1 -0
  607. package/dist/esm/ui/Label.d.ts +17 -0
  608. package/dist/esm/ui/Label.d.ts.map +1 -0
  609. package/dist/esm/ui/Label.js +37 -0
  610. package/dist/esm/ui/Label.js.map +1 -0
  611. package/dist/esm/ui/Panel.d.ts +38 -0
  612. package/dist/esm/ui/Panel.d.ts.map +1 -0
  613. package/dist/esm/ui/Panel.js +61 -0
  614. package/dist/esm/ui/Panel.js.map +1 -0
  615. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  616. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  617. package/dist/esm/ui/ProgressBar.js +76 -0
  618. package/dist/esm/ui/ProgressBar.js.map +1 -0
  619. package/dist/esm/ui/Stack.d.ts +34 -0
  620. package/dist/esm/ui/Stack.d.ts.map +1 -0
  621. package/dist/esm/ui/Stack.js +69 -0
  622. package/dist/esm/ui/Stack.js.map +1 -0
  623. package/dist/esm/ui/UIRoot.d.ts +31 -0
  624. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  625. package/dist/esm/ui/UIRoot.js +49 -0
  626. package/dist/esm/ui/UIRoot.js.map +1 -0
  627. package/dist/esm/ui/Widget.d.ts +45 -0
  628. package/dist/esm/ui/Widget.d.ts.map +1 -0
  629. package/dist/esm/ui/Widget.js +113 -0
  630. package/dist/esm/ui/Widget.js.map +1 -0
  631. package/dist/esm/ui/index.d.ts +13 -0
  632. package/dist/esm/ui/index.d.ts.map +1 -0
  633. package/dist/exo.debug.esm.js +1 -948
  634. package/dist/exo.debug.esm.js.map +1 -1
  635. package/dist/exo.esm.js +1 -40945
  636. package/dist/exo.esm.js.map +1 -1
  637. package/package.json +24 -13
  638. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  639. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  640. package/dist/esm/audio/AbstractMedia.js +0 -179
  641. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  642. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  643. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  644. package/dist/esm/audio/AudioAnalyser.js +0 -473
  645. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  646. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  647. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  648. package/dist/esm/audio/AudioFilter.js +0 -15
  649. package/dist/esm/audio/AudioFilter.js.map +0 -1
  650. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  651. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  652. package/dist/esm/audio/BeatDetector.js +0 -424
  653. package/dist/esm/audio/BeatDetector.js.map +0 -1
  654. package/dist/esm/audio/Media.d.ts +0 -37
  655. package/dist/esm/audio/Media.d.ts.map +0 -1
  656. package/dist/esm/audio/Music.d.ts +0 -42
  657. package/dist/esm/audio/Music.d.ts.map +0 -1
  658. package/dist/esm/audio/Music.js +0 -164
  659. package/dist/esm/audio/Music.js.map +0 -1
  660. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  661. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  662. package/dist/esm/audio/OscillatorSound.js +0 -346
  663. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  664. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  665. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  666. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  667. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  668. package/dist/esm/audio/dsp/mel.js +0 -70
  669. package/dist/esm/audio/dsp/mel.js.map +0 -1
  670. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  671. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  672. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  673. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  674. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  675. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  676. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  677. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  678. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  679. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  680. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  681. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  682. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  683. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  684. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  685. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  686. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  687. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  688. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  689. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  690. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  691. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  692. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  693. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  694. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  695. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  696. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  697. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  698. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  699. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  700. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  701. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  702. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  703. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  704. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  705. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  706. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  707. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  708. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  709. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  710. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  711. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  712. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  713. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  714. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  715. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  716. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  717. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  718. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  719. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  720. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  721. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  722. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  723. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  724. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  725. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  726. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  727. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  728. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  729. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  730. package/dist/esm/rendering/index.d.ts.map +0 -1
  731. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  732. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  733. package/dist/esm/rendering.d.ts +0 -29
  734. package/dist/esm/rendering.d.ts.map +0 -1
  735. package/dist/esm/rendering.js.map +0 -1
  736. package/dist/esm/resources/JsonStore.d.ts +0 -19
  737. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  738. package/dist/esm/resources/JsonStore.js +0 -62
  739. 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;IAC9B;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC7B;IACF;AACD;;;;"}
1
+ {"version":3,"file":"WebGpuStorageBuffer.js","sources":["../../../../../../src/rendering/webgpu/compute/WebGpuStorageBuffer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AnyAssetConfig, AssetDefinitions } from './AssetDefinitions';
2
2
  /** @internal */
3
- export declare class AssetImpl<Phantom> {
3
+ export declare class AssetImpl {
4
4
  /** @internal */
5
5
  readonly _config: AnyAssetConfig;
6
6
  constructor(config: AnyAssetConfig);
@@ -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;AAEhB,qBAAa,SAAS,CAAC,OAAO;IAC5B,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;AAGhK,eAAO,MAAM,KAAK,EAA2B,kBAAkB,CAAC"}
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;AACA;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;AAkBD;AACO,MAAM,KAAK,GAAG;;;;"}
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 { Music } from '#audio/Music';
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: Music;
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<any>;
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":"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"}
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;AAGlG,eAAO,MAAM,MAAM,EAA4B,mBAAmB,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"}
@@ -25,7 +25,6 @@ class AssetsImpl {
25
25
  this.entries = entries;
26
26
  }
27
27
  }
28
- // eslint-disable-next-line @typescript-eslint/naming-convention
29
28
  const Assets = AssetsImpl;
30
29
 
31
30
  export { Assets, AssetsImpl };
@@ -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;AA4BD;AACO,MAAM,MAAM,GAAG;;;;"}
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":"AAAA,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;AAE/E;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6C;IAExE,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;IAqB7D;;;OAGG;IACI,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAgB3C;;;OAGG;IACI,OAAO,IAAI,IAAI;CAOvB"}
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 Map();
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
- let constructor = type;
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
- let constructor = type;
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
- for (const factory of this._factories.values()) {
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":"AASA;;;;;;;;;;AAUG;MACU,eAAe,CAAA;AACT,IAAA,UAAU,GAAG,IAAI,GAAG,EAAkC;;IAGhE,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,IAAI,WAAW,GAA4B,IAAI;AAC/C,QAAA,IAAI,OAAiC;AAErC,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE1C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAC9C;QACF;QAEA,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,IAAI,WAAW,GAA4B,IAAI;AAE/C,QAAA,OAAO,WAAW,KAAK,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpC,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,YAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;QAC9C;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;AAGG;IACI,OAAO,GAAA;QACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC9C,OAAO,CAAC,OAAO,EAAE;QACnB;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACzB;AACD;;;;"}
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;IA4D3B,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;IAWhE,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"}
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 ok = this._migrations[v](database, transaction);
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":"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"}
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"}