@codexo/exojs 0.12.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 (759) hide show
  1. package/CHANGELOG.md +258 -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 +78 -11
  200. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  201. package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -1
  202. package/dist/esm/extensions/ExtensionRegistry.js.map +1 -1
  203. package/dist/esm/extensions/materialize.d.ts +9 -1
  204. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  205. package/dist/esm/extensions/materialize.js +17 -2
  206. package/dist/esm/extensions/materialize.js.map +1 -1
  207. package/dist/esm/extensions/snapshot.d.ts +14 -3
  208. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  209. package/dist/esm/extensions/snapshot.js +51 -14
  210. package/dist/esm/extensions/snapshot.js.map +1 -1
  211. package/dist/esm/index.d.ts +2 -1
  212. package/dist/esm/index.d.ts.map +1 -1
  213. package/dist/esm/index.js +37 -54
  214. package/dist/esm/index.js.map +1 -1
  215. package/dist/esm/input/FocusManager.d.ts +59 -0
  216. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  217. package/dist/esm/input/FocusManager.js +175 -0
  218. package/dist/esm/input/FocusManager.js.map +1 -0
  219. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  220. package/dist/esm/input/Gamepad.js +8 -4
  221. package/dist/esm/input/Gamepad.js.map +1 -1
  222. package/dist/esm/input/GamepadAxis.js +2 -2
  223. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  224. package/dist/esm/input/GamepadDefinitions.js +6 -2
  225. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  226. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  227. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  228. package/dist/esm/input/GestureRecognizer.js +1 -3
  229. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  230. package/dist/esm/input/InputBinding.js +3 -3
  231. package/dist/esm/input/InputBinding.js.map +1 -1
  232. package/dist/esm/input/InputManager.d.ts +7 -2
  233. package/dist/esm/input/InputManager.d.ts.map +1 -1
  234. package/dist/esm/input/InputManager.js +35 -21
  235. package/dist/esm/input/InputManager.js.map +1 -1
  236. package/dist/esm/input/InteractionManager.d.ts +67 -2
  237. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  238. package/dist/esm/input/InteractionManager.js +165 -41
  239. package/dist/esm/input/InteractionManager.js.map +1 -1
  240. package/dist/esm/input/KeyEvent.d.ts +25 -0
  241. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  242. package/dist/esm/input/KeyEvent.js +32 -0
  243. package/dist/esm/input/KeyEvent.js.map +1 -0
  244. package/dist/esm/input/Pointer.d.ts +21 -4
  245. package/dist/esm/input/Pointer.d.ts.map +1 -1
  246. package/dist/esm/input/Pointer.js +54 -15
  247. package/dist/esm/input/Pointer.js.map +1 -1
  248. package/dist/esm/input/index.d.ts +3 -1
  249. package/dist/esm/input/index.d.ts.map +1 -1
  250. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  251. package/dist/esm/math/AbstractVector.js +7 -2
  252. package/dist/esm/math/AbstractVector.js.map +1 -1
  253. package/dist/esm/math/Circle.d.ts.map +1 -1
  254. package/dist/esm/math/Circle.js +5 -1
  255. package/dist/esm/math/Circle.js.map +1 -1
  256. package/dist/esm/math/Line.d.ts +1 -1
  257. package/dist/esm/math/Line.d.ts.map +1 -1
  258. package/dist/esm/math/Line.js +1 -1
  259. package/dist/esm/math/Line.js.map +1 -1
  260. package/dist/esm/math/Matrix.d.ts.map +1 -1
  261. package/dist/esm/math/Matrix.js +6 -1
  262. package/dist/esm/math/Matrix.js.map +1 -1
  263. package/dist/esm/math/ObservableVector.d.ts +26 -8
  264. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  265. package/dist/esm/math/ObservableVector.js +24 -16
  266. package/dist/esm/math/ObservableVector.js.map +1 -1
  267. package/dist/esm/math/Polygon.d.ts +5 -0
  268. package/dist/esm/math/Polygon.d.ts.map +1 -1
  269. package/dist/esm/math/Polygon.js +27 -3
  270. package/dist/esm/math/Polygon.js.map +1 -1
  271. package/dist/esm/math/Random.d.ts +9 -9
  272. package/dist/esm/math/Random.d.ts.map +1 -1
  273. package/dist/esm/math/Random.js +46 -46
  274. package/dist/esm/math/Random.js.map +1 -1
  275. package/dist/esm/math/Rectangle.d.ts +11 -4
  276. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  277. package/dist/esm/math/Rectangle.js +12 -6
  278. package/dist/esm/math/Rectangle.js.map +1 -1
  279. package/dist/esm/math/Vector.d.ts +1 -1
  280. package/dist/esm/math/Vector.d.ts.map +1 -1
  281. package/dist/esm/math/Vector.js +1 -1
  282. package/dist/esm/math/Vector.js.map +1 -1
  283. package/dist/esm/math/collision-detection.d.ts +42 -0
  284. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  285. package/dist/esm/math/collision-detection.js +54 -4
  286. package/dist/esm/math/collision-detection.js.map +1 -1
  287. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  288. package/dist/esm/math/collision-primitives.js +4 -0
  289. package/dist/esm/math/collision-primitives.js.map +1 -1
  290. package/dist/esm/math/geometry.d.ts +26 -0
  291. package/dist/esm/math/geometry.d.ts.map +1 -1
  292. package/dist/esm/math/geometry.js +89 -2
  293. package/dist/esm/math/geometry.js.map +1 -1
  294. package/dist/esm/math/index.d.ts +7 -5
  295. package/dist/esm/math/index.d.ts.map +1 -1
  296. package/dist/esm/math/swept-collision.d.ts +13 -0
  297. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  298. package/dist/esm/math/swept-collision.js +15 -1
  299. package/dist/esm/math/swept-collision.js.map +1 -1
  300. package/dist/esm/math/triangulate.d.ts.map +1 -1
  301. package/dist/esm/math/triangulate.js +9 -1
  302. package/dist/esm/math/triangulate.js.map +1 -1
  303. package/dist/esm/math/utils.d.ts +20 -0
  304. package/dist/esm/math/utils.d.ts.map +1 -1
  305. package/dist/esm/math/utils.js +18 -15
  306. package/dist/esm/math/utils.js.map +1 -1
  307. package/dist/esm/renderer-sdk.d.ts +2 -0
  308. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  309. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  310. package/dist/esm/renderer-sdk.js.map +1 -0
  311. package/dist/esm/rendering/CallbackRenderPass.js +1 -1
  312. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  313. package/dist/esm/rendering/Container.d.ts +3 -0
  314. package/dist/esm/rendering/Container.d.ts.map +1 -1
  315. package/dist/esm/rendering/Container.js +28 -5
  316. package/dist/esm/rendering/Container.js.map +1 -1
  317. package/dist/esm/rendering/Drawable.d.ts +47 -0
  318. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  319. package/dist/esm/rendering/Drawable.js +88 -0
  320. package/dist/esm/rendering/Drawable.js.map +1 -1
  321. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  322. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  323. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  324. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  325. package/dist/esm/rendering/RenderBackend.d.ts +15 -1
  326. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  327. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  328. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  329. package/dist/esm/rendering/RenderBatch.js +107 -0
  330. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  331. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  332. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  333. package/dist/esm/rendering/RenderNode.js +113 -20
  334. package/dist/esm/rendering/RenderNode.js.map +1 -1
  335. package/dist/esm/rendering/RenderNodePass.js +2 -2
  336. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  337. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  338. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  339. package/dist/esm/rendering/RenderStats.js +14 -0
  340. package/dist/esm/rendering/RenderStats.js.map +1 -1
  341. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  342. package/dist/esm/rendering/RendererRegistry.js +20 -23
  343. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  344. package/dist/esm/rendering/RenderingContext.d.ts +88 -4
  345. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  346. package/dist/esm/rendering/RenderingContext.js +107 -5
  347. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  348. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  349. package/dist/esm/rendering/TransformBuffer.js +2 -0
  350. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  351. package/dist/esm/rendering/View.d.ts +47 -15
  352. package/dist/esm/rendering/View.d.ts.map +1 -1
  353. package/dist/esm/rendering/View.js +44 -27
  354. package/dist/esm/rendering/View.js.map +1 -1
  355. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -1
  356. package/dist/esm/rendering/coreRendererBindings.js +22 -0
  357. package/dist/esm/rendering/coreRendererBindings.js.map +1 -1
  358. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  359. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
  360. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  361. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  362. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  363. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  364. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  365. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  366. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  367. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  368. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  369. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  370. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  371. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  372. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  373. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  374. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  375. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  376. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  377. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  378. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  379. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  380. package/dist/esm/rendering/pixelSnap.d.ts +219 -0
  381. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
  382. package/dist/esm/rendering/pixelSnap.js +187 -0
  383. package/dist/esm/rendering/pixelSnap.js.map +1 -0
  384. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  385. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  386. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  387. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  388. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  389. package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
  390. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  391. package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
  392. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  393. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  394. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  395. package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
  396. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  397. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  398. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  399. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  400. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  401. package/dist/esm/rendering/plan/RenderPlanPlayer.js +70 -13
  402. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  403. package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
  404. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  405. package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
  406. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  407. package/dist/esm/rendering/primitives/Graphics.js +17 -1
  408. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  409. package/dist/esm/rendering/{index.d.ts → public.d.ts} +13 -30
  410. package/dist/esm/rendering/public.d.ts.map +1 -0
  411. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  412. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  413. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  414. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
  415. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  416. package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
  417. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  418. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
  419. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
  420. package/dist/esm/rendering/sprite/NineSliceSprite.js +206 -0
  421. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
  422. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
  423. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
  424. package/dist/esm/rendering/sprite/RepeatingSprite.js +277 -0
  425. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
  426. package/dist/esm/rendering/sprite/Sprite.d.ts +13 -0
  427. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  428. package/dist/esm/rendering/sprite/Sprite.js +53 -3
  429. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  430. package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
  431. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
  432. package/dist/esm/rendering/sprite/nineSlice.js +334 -0
  433. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
  434. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
  435. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
  436. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
  437. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
  438. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  439. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  440. package/dist/esm/rendering/text/BitmapText.js +4 -0
  441. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  442. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  443. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  444. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  445. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  446. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  447. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  448. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  449. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  450. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  451. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  452. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  453. package/dist/esm/rendering/text/HTMLText.js +1 -0
  454. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  455. package/dist/esm/rendering/text/Text.d.ts +17 -6
  456. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  457. package/dist/esm/rendering/text/Text.js +7 -12
  458. package/dist/esm/rendering/text/Text.js.map +1 -1
  459. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  460. package/dist/esm/rendering/text/TextLayout.js +4 -18
  461. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  462. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  463. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  464. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  465. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  466. package/dist/esm/rendering/texture/Texture.js +8 -0
  467. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  468. package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
  469. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
  470. package/dist/esm/rendering/texture/TextureRegion.js +144 -0
  471. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
  472. package/dist/esm/rendering/texture/repeat.d.ts +96 -0
  473. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
  474. package/dist/esm/rendering/texture/repeat.js +158 -0
  475. package/dist/esm/rendering/texture/repeat.js.map +1 -0
  476. package/dist/esm/rendering/types.d.ts +11 -0
  477. package/dist/esm/rendering/types.d.ts.map +1 -1
  478. package/dist/esm/rendering/types.js +11 -0
  479. package/dist/esm/rendering/types.js.map +1 -1
  480. package/dist/esm/rendering/video/Video.d.ts +7 -3
  481. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  482. package/dist/esm/rendering/video/Video.js +7 -3
  483. package/dist/esm/rendering/video/Video.js.map +1 -1
  484. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  485. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  486. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  487. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +41 -2
  488. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  489. package/dist/esm/rendering/webgl2/WebGl2Backend.js +137 -8
  490. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  491. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  492. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  493. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  494. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  495. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  496. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  497. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  498. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
  499. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
  500. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +309 -0
  501. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
  502. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  503. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  504. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  505. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  506. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
  507. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
  508. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +539 -0
  509. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
  510. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  511. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  512. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  513. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  514. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  515. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  516. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  517. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  518. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +9 -0
  519. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +29 -4
  521. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  522. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  523. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  524. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  525. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  526. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
  527. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  528. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +39 -3
  529. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  530. package/dist/esm/rendering/webgpu/WebGpuBackend.js +120 -12
  531. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  532. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  533. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
  534. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  535. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
  536. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  537. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
  538. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  539. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
  540. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
  541. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +363 -0
  542. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
  543. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
  544. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
  545. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +566 -0
  546. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
  547. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -0
  548. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  549. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +30 -6
  550. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  551. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  552. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
  553. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  554. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  555. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
  556. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  557. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -4
  558. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  559. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +26 -6
  560. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  561. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  562. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  563. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  564. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  565. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  566. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  567. package/dist/esm/resources/Asset.d.ts +1 -1
  568. package/dist/esm/resources/Asset.d.ts.map +1 -1
  569. package/dist/esm/resources/Asset.js +0 -2
  570. package/dist/esm/resources/Asset.js.map +1 -1
  571. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  572. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  573. package/dist/esm/resources/AssetContainer.js +100 -0
  574. package/dist/esm/resources/AssetContainer.js.map +1 -0
  575. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  576. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  577. package/dist/esm/resources/Assets.d.ts.map +1 -1
  578. package/dist/esm/resources/Assets.js +0 -1
  579. package/dist/esm/resources/Assets.js.map +1 -1
  580. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  581. package/dist/esm/resources/FactoryRegistry.js +14 -23
  582. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  583. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  584. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  585. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  586. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  587. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  588. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  589. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  590. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  591. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  592. package/dist/esm/resources/Loader.d.ts +78 -10
  593. package/dist/esm/resources/Loader.d.ts.map +1 -1
  594. package/dist/esm/resources/Loader.js +119 -15
  595. package/dist/esm/resources/Loader.js.map +1 -1
  596. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  597. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  598. package/dist/esm/resources/MemoryStore.js +30 -0
  599. package/dist/esm/resources/MemoryStore.js.map +1 -0
  600. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  601. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  602. package/dist/esm/resources/WebStorageStore.js +84 -0
  603. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  604. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  605. package/dist/esm/resources/coreAssetBindings.js +16 -5
  606. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  607. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  608. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  609. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  610. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  611. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  612. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  613. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  614. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  615. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  616. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  617. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  618. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  619. package/dist/esm/resources/index.d.ts +51 -34
  620. package/dist/esm/resources/index.d.ts.map +1 -1
  621. package/dist/esm/resources/utils.js +4 -4
  622. package/dist/esm/resources/utils.js.map +1 -1
  623. package/dist/esm/ui/Button.d.ts +54 -0
  624. package/dist/esm/ui/Button.d.ts.map +1 -0
  625. package/dist/esm/ui/Button.js +139 -0
  626. package/dist/esm/ui/Button.js.map +1 -0
  627. package/dist/esm/ui/Label.d.ts +17 -0
  628. package/dist/esm/ui/Label.d.ts.map +1 -0
  629. package/dist/esm/ui/Label.js +37 -0
  630. package/dist/esm/ui/Label.js.map +1 -0
  631. package/dist/esm/ui/Panel.d.ts +38 -0
  632. package/dist/esm/ui/Panel.d.ts.map +1 -0
  633. package/dist/esm/ui/Panel.js +61 -0
  634. package/dist/esm/ui/Panel.js.map +1 -0
  635. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  636. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  637. package/dist/esm/ui/ProgressBar.js +76 -0
  638. package/dist/esm/ui/ProgressBar.js.map +1 -0
  639. package/dist/esm/ui/Stack.d.ts +34 -0
  640. package/dist/esm/ui/Stack.d.ts.map +1 -0
  641. package/dist/esm/ui/Stack.js +69 -0
  642. package/dist/esm/ui/Stack.js.map +1 -0
  643. package/dist/esm/ui/UIRoot.d.ts +31 -0
  644. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  645. package/dist/esm/ui/UIRoot.js +49 -0
  646. package/dist/esm/ui/UIRoot.js.map +1 -0
  647. package/dist/esm/ui/Widget.d.ts +45 -0
  648. package/dist/esm/ui/Widget.d.ts.map +1 -0
  649. package/dist/esm/ui/Widget.js +113 -0
  650. package/dist/esm/ui/Widget.js.map +1 -0
  651. package/dist/esm/ui/index.d.ts +13 -0
  652. package/dist/esm/ui/index.d.ts.map +1 -0
  653. package/dist/exo.debug.esm.js +1 -948
  654. package/dist/exo.debug.esm.js.map +1 -1
  655. package/dist/exo.esm.js +1 -37555
  656. package/dist/exo.esm.js.map +1 -1
  657. package/package.json +31 -13
  658. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  659. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  660. package/dist/esm/audio/AbstractMedia.js +0 -179
  661. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  662. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  663. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  664. package/dist/esm/audio/AudioAnalyser.js +0 -473
  665. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  666. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  667. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  668. package/dist/esm/audio/AudioFilter.js +0 -15
  669. package/dist/esm/audio/AudioFilter.js.map +0 -1
  670. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  671. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  672. package/dist/esm/audio/BeatDetector.js +0 -424
  673. package/dist/esm/audio/BeatDetector.js.map +0 -1
  674. package/dist/esm/audio/Media.d.ts +0 -37
  675. package/dist/esm/audio/Media.d.ts.map +0 -1
  676. package/dist/esm/audio/Music.d.ts +0 -42
  677. package/dist/esm/audio/Music.d.ts.map +0 -1
  678. package/dist/esm/audio/Music.js +0 -164
  679. package/dist/esm/audio/Music.js.map +0 -1
  680. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  681. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  682. package/dist/esm/audio/OscillatorSound.js +0 -346
  683. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  684. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  685. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  686. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  687. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  688. package/dist/esm/audio/dsp/mel.js +0 -70
  689. package/dist/esm/audio/dsp/mel.js.map +0 -1
  690. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  691. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  692. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  693. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  694. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  695. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  696. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  697. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  698. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  699. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  700. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  701. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  702. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  703. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  704. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  705. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  706. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  707. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  708. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  709. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  710. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  711. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  712. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  713. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  714. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  715. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  716. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  717. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  718. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  719. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  720. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  721. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  722. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  723. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  724. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  725. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  726. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  727. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  728. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  729. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  730. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  731. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  732. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  733. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  734. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  735. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  736. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  737. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  738. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  739. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  740. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  741. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  742. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  743. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  744. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  745. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  746. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  747. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  748. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  749. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  750. package/dist/esm/rendering/index.d.ts.map +0 -1
  751. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  752. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  753. package/dist/esm/rendering.d.ts +0 -28
  754. package/dist/esm/rendering.d.ts.map +0 -1
  755. package/dist/esm/rendering.js.map +0 -1
  756. package/dist/esm/resources/JsonStore.d.ts +0 -19
  757. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  758. package/dist/esm/resources/JsonStore.js +0 -62
  759. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -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"}
@@ -15,7 +15,7 @@ import { type BinaryAsset, type CsvAsset, FontAsset, type ImageAsset, type Json,
15
15
  * Any abstract or concrete constructor that can be used as an asset type token
16
16
  * with {@link Loader.load} and related methods.
17
17
  */
18
- export type Loadable = abstract new (...args: any[]) => any;
18
+ export type Loadable = abstract new (...args: any[]) => unknown;
19
19
  /** Maps each key of an `AssetInput` map to its resolved runtime resource type. */
20
20
  export type InferLoadedMap<M extends Record<string, AssetInput>> = {
21
21
  [K in keyof M]: InferAssetResource<M[K]>;
@@ -56,23 +56,47 @@ type PathExtension<S extends string> = S extends `${string}.${infer E}?${string}
56
56
  * compile time; use the token form (`load(MyType, path)`) instead.
57
57
  */
58
58
  export type LoadByPath<S extends string> = PathExtension<S> extends keyof ExtensionTypeMap ? ExtensionTypeMap[PathExtension<S>] : unknown;
59
+ /**
60
+ * Additional asset types accepted by the **token form** of {@link Loader.load}
61
+ * (`load(MyType, 'file.ext')`) for a given file extension, beyond the
62
+ * path-only type registered in {@link ExtensionTypeMap}.
63
+ *
64
+ * Augment via declaration merging when a format package ships an advanced
65
+ * source-model token that shares a file extension with its common-case
66
+ * runtime type. The path-only form (`load('file.ext')`) is unaffected and
67
+ * keeps resolving to the {@link ExtensionTypeMap} entry alone:
68
+ * ```ts
69
+ * declare module '@codexo/exojs' {
70
+ * interface ExtensionTypeMap { tmj: TileMap } // load('world.tmj') → TileMap
71
+ * interface ExtensionTokenTypeMap { tmj: TiledMap } // load(TiledMap, 'world.tmj') also allowed
72
+ * }
73
+ * ```
74
+ */
75
+ export interface ExtensionTokenTypeMap {
76
+ }
77
+ /** Resolves the additional token types allowed for extension `E`, or `never` when none are registered. */
78
+ type TokenTypesFor<E> = E extends keyof ExtensionTokenTypeMap ? ExtensionTokenTypeMap[E] : never;
59
79
  /**
60
80
  * Constrains a {@link Loadable} token against the types registered for a
61
81
  * given path's extension. When the extension is in {@link ExtensionTypeMap},
62
- * `T` must produce a value assignable to the registered union otherwise
63
- * resolves to `never`, triggering a compile-time error.
82
+ * `T` must produce a value assignable to the registered union (including any
83
+ * extra token types from {@link ExtensionTokenTypeMap}) — otherwise resolves
84
+ * to `never`, triggering a compile-time error.
64
85
  *
65
- * For paths with an unregistered extension the constraint is skipped and any
66
- * `T` is accepted (runtime behaviour is unchanged).
86
+ * For paths with an unregistered extension including non-literal `string`
87
+ * paths and extension-less paths, where no extension can be derived — the
88
+ * constraint is skipped and any `T` is accepted (runtime behaviour is
89
+ * unchanged).
67
90
  *
68
91
  * ```ts
69
92
  * // ExtensionTypeMap: { ogg: Sound | Video }
70
93
  * loader.load(Sound, 'effect.ogg') // ✓ Sound ∈ Sound | Video
71
94
  * loader.load(BitmapText, 'effect.ogg') // ✗ BitmapText ∉ Sound | Video
72
95
  * loader.load(Sound, 'theme.custom') // ✓ .custom not in map → unconstrained
96
+ * loader.load(Sound, dynamicPath) // ✓ string path → unconstrained
73
97
  * ```
74
98
  */
75
- export type ConstrainedLoadable<T extends abstract new (...args: any[]) => any, S extends string> = PathExtension<S> extends keyof ExtensionTypeMap ? (LoadReturn<T> extends ExtensionTypeMap[PathExtension<S>] ? T : never) : T;
99
+ export type ConstrainedLoadable<T extends abstract new (...args: any[]) => any, S extends string> = [PathExtension<S>] extends [never] ? T : PathExtension<S> extends keyof ExtensionTypeMap ? LoadReturn<T> extends ExtensionTypeMap[PathExtension<S>] | TokenTypesFor<PathExtension<S>> ? T : never : T;
76
100
  /**
77
101
  * Context object passed to custom asset-type load handlers registered via
78
102
  * {@link Loader.registerAssetType}.
@@ -130,7 +154,7 @@ export interface LoaderOptions {
130
154
  *
131
155
  * The `Loader` orchestrates fetching, processing, caching, and retrieval of
132
156
  * all engine asset types. It ships with built-in factories for every first-party
133
- * type (Texture, Sound, Music, Video, FontFace, HTMLImageElement, Json, text,
157
+ * type (Texture, Sound, AudioStream, Video, FontFace, HTMLImageElement, Json, text,
134
158
  * SVG, VTT, binary, and WASM) and allows registering custom factories via
135
159
  * {@link register}.
136
160
  *
@@ -155,6 +179,7 @@ export declare class Loader {
155
179
  private readonly _registry;
156
180
  private readonly _assetTypeMap;
157
181
  private readonly _resources;
182
+ private readonly _resourceKeys;
158
183
  private readonly _manifest;
159
184
  private readonly _bundles;
160
185
  private readonly _inFlight;
@@ -286,6 +311,22 @@ export declare class Loader {
286
311
  * not been registered.
287
312
  */
288
313
  loadBundle(name: string, options?: LoadBundleOptions): Promise<void>;
314
+ /**
315
+ * Load every asset packed into a binary container (`.exoa`) in a **single
316
+ * request**. Unlike {@link loadBundle} (one fetch per entry), a container is
317
+ * one file with an embedded index: its bytes are fetched once (and cached
318
+ * cross-session like any asset), then each slice is unpacked through its
319
+ * type's handler and stored under the entry's alias — retrievable with
320
+ * {@link get} exactly as if it had been loaded individually.
321
+ *
322
+ * Each entry's asset type must support byte-source construction
323
+ * ({@link AssetHandler.createFromBytes}); the factory-backed core types
324
+ * (textures, audio, JSON, text, binary, …) do. Throws on a malformed
325
+ * container, an unknown type, or a type that cannot be built from bytes.
326
+ *
327
+ * @param url Path to the container file, resolved against the loader base path.
328
+ */
329
+ loadContainer(url: string): Promise<void>;
289
330
  /**
290
331
  * Returns `true` if every asset in the named bundle has been loaded and is
291
332
  * currently held in the in-memory resource store.
@@ -378,6 +419,22 @@ export declare class Loader {
378
419
  peek<T extends Loadable>(type: T, alias: string): LoadReturn<T> | null;
379
420
  /** Returns `true` if the asset is currently held in the in-memory store. */
380
421
  has(type: Loadable, alias: string): boolean;
422
+ /**
423
+ * Reverse lookup: given a loaded resource object, return the asset type and
424
+ * source key it was first loaded under, or `null` for runtime-created,
425
+ * unloaded, or non-object resources.
426
+ *
427
+ * When a resource is shared across several aliases, the **first** alias it
428
+ * was stored under is returned (the canonical key). Primitive results
429
+ * (parsed JSON, text, CSV rows) are not keyable. Used by scene serialization
430
+ * to turn a live asset reference back into a portable source key; the
431
+ * contract is that the same asset is pre-loaded under that key before a
432
+ * matching deserialize.
433
+ */
434
+ keyFor(resource: object): {
435
+ readonly type: AssetConstructor;
436
+ readonly source: string;
437
+ } | null;
381
438
  /**
382
439
  * Removes a single asset from the in-memory resource store.
383
440
  *
@@ -413,13 +470,17 @@ export declare class Loader {
413
470
  * Atomically bind all keys for one AssetBinding to a pre-created handler.
414
471
  * Validates all keys BEFORE mutating any map. Any already-registered key
415
472
  * throws before any mutation (no override in 0.12).
473
+ *
474
+ * `Result` and `Options` are inferred from the binding's `AssetBinding<Result, Options>`
475
+ * contract. A declarative handler's optional `getIdentityKey` is forwarded into
476
+ * the internal {@link HandlerEntry} so it participates in in-flight deduplication.
416
477
  * @internal
417
478
  */
418
- bindAsset(keys: {
419
- type: AssetConstructor;
479
+ bindAsset<Result = unknown, Options = undefined>(keys: {
480
+ type: AssetConstructor<Result>;
420
481
  typeNames?: readonly string[];
421
482
  extensions?: readonly string[];
422
- }, handler: AssetHandler): void;
483
+ }, handler: AssetHandler<Result, Options>): void;
423
484
  /**
424
485
  * Returns true if a handler or factory is already registered for the given constructor.
425
486
  * @advanced
@@ -482,6 +543,13 @@ export declare class Loader {
482
543
  * identity function — the cached value is returned unchanged.
483
544
  */
484
545
  private _contextFetch;
546
+ /**
547
+ * Construct an asset from in-memory `bytes` (no fetch) and store it under
548
+ * `alias`. Uses the type's {@link AssetHandler.createFromBytes} when present,
549
+ * otherwise a `register()`-style factory; throws if neither can build from
550
+ * bytes. The backing path for {@link loadContainer}.
551
+ */
552
+ private _injectSource;
485
553
  private _fetch;
486
554
  private _drainBackground;
487
555
  private _boostFromQueue;
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.d.ts","sourceRoot":"","sources":["../../../src/resources/Loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Loader.d.ts","sourceRoot":"","sources":["../../../src/resources/Loader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Signal } from '../core/Signal.js';
2
2
  import { AssetImpl, Asset } from './Asset.js';
3
+ import { parseContainer } from './AssetContainer.js';
3
4
  import { defineAssetManifest, BundleLoadError } from './AssetManifest.js';
4
5
  import { AssetsImpl } from './Assets.js';
5
6
  import { CacheFirstStrategy } from './CacheFirstStrategy.js';
@@ -15,7 +16,7 @@ import { FontAsset } from './tokens.js';
15
16
  *
16
17
  * The `Loader` orchestrates fetching, processing, caching, and retrieval of
17
18
  * all engine asset types. It ships with built-in factories for every first-party
18
- * type (Texture, Sound, Music, Video, FontFace, HTMLImageElement, Json, text,
19
+ * type (Texture, Sound, AudioStream, Video, FontFace, HTMLImageElement, Json, text,
19
20
  * SVG, VTT, binary, and WASM) and allows registering custom factories via
20
21
  * {@link register}.
21
22
  *
@@ -40,6 +41,11 @@ class Loader {
40
41
  _registry = new FactoryRegistry();
41
42
  _assetTypeMap = new Map();
42
43
  _resources = new Map();
44
+ // Reverse lookup: loaded resource object → the (type, source) it was first
45
+ // stored under. Backs {@link Loader.keyFor} for scene serialization. A
46
+ // WeakMap so it never retains resources; only object resources participate
47
+ // (primitive results like parsed JSON/text are not keyable → null).
48
+ _resourceKeys = new WeakMap();
43
49
  _manifest = new Map();
44
50
  _bundles = new Map();
45
51
  _inFlight = new Map();
@@ -112,9 +118,10 @@ class Loader {
112
118
  };
113
119
  Object.defineProperty(syntheticCtor, 'name', { value: typeName });
114
120
  this._assetTypeMap.set(typeName, syntheticCtor);
121
+ const boundIdentityKey = ctorOrHandler.getIdentityKey?.bind(ctorOrHandler);
115
122
  this._handlerFunctions.set(syntheticCtor, {
116
123
  load: (config, ctx) => ctorOrHandler.load(config, ctx),
117
- getIdentityKey: ctorOrHandler.getIdentityKey?.bind(ctorOrHandler),
124
+ ...(boundIdentityKey !== undefined && { getIdentityKey: boundIdentityKey }),
118
125
  });
119
126
  }
120
127
  return this;
@@ -146,7 +153,10 @@ class Loader {
146
153
  this._addManifestEntry(ctor, source, source);
147
154
  }
148
155
  else if (Array.isArray(source)) {
149
- for (const path of source) {
156
+ // `Array.isArray` narrows the union to `any[]`, dropping the element type;
157
+ // the only array member of the union is `readonly string[]`.
158
+ const paths = source;
159
+ for (const path of paths) {
150
160
  this._addManifestEntry(ctor, path, path);
151
161
  }
152
162
  }
@@ -246,6 +256,38 @@ class Loader {
246
256
  throw new BundleLoadError(name, failures);
247
257
  }
248
258
  }
259
+ /**
260
+ * Load every asset packed into a binary container (`.exoa`) in a **single
261
+ * request**. Unlike {@link loadBundle} (one fetch per entry), a container is
262
+ * one file with an embedded index: its bytes are fetched once (and cached
263
+ * cross-session like any asset), then each slice is unpacked through its
264
+ * type's handler and stored under the entry's alias — retrievable with
265
+ * {@link get} exactly as if it had been loaded individually.
266
+ *
267
+ * Each entry's asset type must support byte-source construction
268
+ * ({@link AssetHandler.createFromBytes}); the factory-backed core types
269
+ * (textures, audio, JSON, text, binary, …) do. Throws on a malformed
270
+ * container, an unknown type, or a type that cannot be built from bytes.
271
+ *
272
+ * @param url Path to the container file, resolved against the loader base path.
273
+ */
274
+ async loadContainer(url) {
275
+ const buffer = await this._contextFetch(url, '__ctx_binary', response => response.arrayBuffer());
276
+ const { entries, dataStart } = parseContainer(buffer);
277
+ // Resolve every type up front so an unknown type fails before any asset is stored.
278
+ const resolved = entries.map(entry => {
279
+ const type = this._assetTypeMap.get(entry.type);
280
+ if (!type) {
281
+ throw new Error(`Container "${url}" references unknown asset type "${entry.type}".`);
282
+ }
283
+ return { entry, type };
284
+ });
285
+ await Promise.all(resolved.map(({ entry, type }) => {
286
+ const start = dataStart + entry.offset;
287
+ const slice = buffer.slice(start, start + entry.length);
288
+ return this._injectSource(type, entry.alias, slice, entry.options);
289
+ }));
290
+ }
249
291
  /**
250
292
  * Returns `true` if every asset in the named bundle has been loaded and is
251
293
  * currently held in the in-memory resource store.
@@ -365,7 +407,7 @@ class Loader {
365
407
  const configMap = arg0;
366
408
  const items = Object.entries(configMap).map(([alias, value]) => ({
367
409
  alias,
368
- asset: (value instanceof AssetImpl ? value : new Asset(value)),
410
+ asset: value instanceof AssetImpl ? value : new Asset(value),
369
411
  }));
370
412
  return this._createLoadingQueue(items, results => {
371
413
  const out = {};
@@ -449,6 +491,23 @@ class Loader {
449
491
  const ctor = type;
450
492
  return this._resources.get(ctor)?.has(alias) ?? false;
451
493
  }
494
+ /**
495
+ * Reverse lookup: given a loaded resource object, return the asset type and
496
+ * source key it was first loaded under, or `null` for runtime-created,
497
+ * unloaded, or non-object resources.
498
+ *
499
+ * When a resource is shared across several aliases, the **first** alias it
500
+ * was stored under is returned (the canonical key). Primitive results
501
+ * (parsed JSON, text, CSV rows) are not keyable. Used by scene serialization
502
+ * to turn a live asset reference back into a portable source key; the
503
+ * contract is that the same asset is pre-loaded under that key before a
504
+ * matching deserialize.
505
+ */
506
+ keyFor(resource) {
507
+ // WeakMap.get returns undefined for any non-registered or non-weakly-holdable
508
+ // key, so primitive/unkeyed inputs safely resolve to null without a guard.
509
+ return this._resourceKeys.get(resource) ?? null;
510
+ }
452
511
  unload(arg0, arg1) {
453
512
  if (arg0 instanceof AssetImpl) {
454
513
  const asset = arg0;
@@ -564,6 +623,10 @@ class Loader {
564
623
  * Atomically bind all keys for one AssetBinding to a pre-created handler.
565
624
  * Validates all keys BEFORE mutating any map. Any already-registered key
566
625
  * throws before any mutation (no override in 0.12).
626
+ *
627
+ * `Result` and `Options` are inferred from the binding's `AssetBinding<Result, Options>`
628
+ * contract. A declarative handler's optional `getIdentityKey` is forwarded into
629
+ * the internal {@link HandlerEntry} so it participates in in-flight deduplication.
567
630
  * @internal
568
631
  */
569
632
  bindAsset(keys, handler) {
@@ -596,17 +659,30 @@ class Loader {
596
659
  }
597
660
  }
598
661
  // All validation passed — install atomically.
599
- // Internally the loader builds a flat config `{ source, ...fields }` (the
600
- // shape the advanced `registerAssetType` handler form receives). Extension
601
- // AssetHandlers are typed against the public `AssetLoadRequest`
602
- // (`{ source, options? }`), so reshape the flat config here: pull `source`
603
- // out and nest the remaining per-load fields under `options`.
662
+ //
663
+ // Localized type-erasure boundary: the internal Loader uses a flat config
664
+ // `{ source, ...fields }`. The public AssetHandler<Result, Options> interface
665
+ // uses `AssetLoadRequest<Options> = { source, options? }`. This single `toRequest`
666
+ // helper is the only place where the erased flat config is cast to the typed
667
+ // request — justified by the `AssetBinding<Result, Options>` contract that
668
+ // associates this handler's Options with the registered constructor.
669
+ //
670
+ // `options` is intentionally omitted (not set to `undefined`) when the flat
671
+ // config carries no extra fields, keeping the object compatible with a future
672
+ // `exactOptionalPropertyTypes` migration.
673
+ const toRequest = (config) => {
674
+ const { source, ...rest } = config;
675
+ if (Object.keys(rest).length === 0) {
676
+ return { source };
677
+ }
678
+ return { source, options: rest };
679
+ };
680
+ const boundIdentityKey = handler.getIdentityKey?.bind(handler);
681
+ const boundCreateFromBytes = handler.createFromBytes?.bind(handler);
604
682
  this._handlerFunctions.set(keys.type, {
605
- load: (config, ctx) => {
606
- const { source, ...rest } = config;
607
- const options = Object.keys(rest).length > 0 ? rest : undefined;
608
- return handler.load({ source, options }, ctx);
609
- },
683
+ load: (config, ctx) => handler.load(toRequest(config), ctx),
684
+ ...(boundIdentityKey && { getIdentityKey: (config) => boundIdentityKey(toRequest(config)) }),
685
+ ...(boundCreateFromBytes && { createFromBytes: (bytes, options) => boundCreateFromBytes(bytes, options) }),
610
686
  });
611
687
  for (const name of resolvedNames) {
612
688
  this._assetTypeMap.set(name, keys.type);
@@ -614,7 +690,9 @@ class Loader {
614
690
  for (const ext of normalizedExts) {
615
691
  this._extensionMap.set(ext, keys.type);
616
692
  }
617
- // Own this handler for lifecycle management
693
+ // Own this handler for lifecycle management.
694
+ // Cast to the erased AssetHandler for storage; destroy() is the only method
695
+ // called on entries in this array.
618
696
  this._boundHandlers.push(handler);
619
697
  }
620
698
  /**
@@ -891,6 +969,26 @@ class Loader {
891
969
  };
892
970
  return this._cacheStrategy.resolve({ storageName, key: source, url, requestOptions: this._fetchOptions, factory, options: undefined }, this._stores);
893
971
  }
972
+ /**
973
+ * Construct an asset from in-memory `bytes` (no fetch) and store it under
974
+ * `alias`. Uses the type's {@link AssetHandler.createFromBytes} when present,
975
+ * otherwise a `register()`-style factory; throws if neither can build from
976
+ * bytes. The backing path for {@link loadContainer}.
977
+ */
978
+ async _injectSource(type, alias, bytes, options) {
979
+ const handlerEntry = this._handlerFunctions.get(type);
980
+ let resource;
981
+ if (handlerEntry?.createFromBytes) {
982
+ resource = await handlerEntry.createFromBytes(bytes, options);
983
+ }
984
+ else if (this._registry.has(type)) {
985
+ resource = await this._registry.resolve(type).create(bytes, options);
986
+ }
987
+ else {
988
+ throw new Error(`Asset type "${type.name}" cannot be built from container bytes (no createFromBytes handler).`);
989
+ }
990
+ this._storeResource(type, alias, resource);
991
+ }
894
992
  async _fetch(type, alias, path, options) {
895
993
  const factory = this._registry.resolve(type);
896
994
  const url = this._resolveUrl(path);
@@ -936,6 +1034,8 @@ class Loader {
936
1034
  if (index === -1)
937
1035
  return;
938
1036
  const [entry] = this._backgroundQueue.splice(index, 1);
1037
+ if (entry === undefined)
1038
+ return;
939
1039
  this._startBackgroundEntry(entry);
940
1040
  }
941
1041
  _isQueuedInBackground(type, alias) {
@@ -1110,6 +1210,10 @@ class Loader {
1110
1210
  this._resources.set(type, typeResources);
1111
1211
  }
1112
1212
  typeResources.set(alias, resource);
1213
+ // Record the canonical reverse key (first alias wins) for object resources.
1214
+ if (typeof resource === 'object' && resource !== null && !this._resourceKeys.has(resource)) {
1215
+ this._resourceKeys.set(resource, { type, source: alias });
1216
+ }
1113
1217
  this.onLoaded.dispatch(type, alias, resource);
1114
1218
  }
1115
1219
  _getTypeId(type) {