@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
@@ -0,0 +1,311 @@
1
+ import { Rectangle } from '../../math/Rectangle.js';
2
+ import { Mesh } from '../../rendering/mesh/Mesh.js';
3
+ import { Graphics } from '../../rendering/primitives/Graphics.js';
4
+ import { AnimatedSprite } from '../../rendering/sprite/AnimatedSprite.js';
5
+ import { NineSliceSprite } from '../../rendering/sprite/NineSliceSprite.js';
6
+ import { RepeatingSprite } from '../../rendering/sprite/RepeatingSprite.js';
7
+ import { BitmapText } from '../../rendering/text/BitmapText.js';
8
+ import { BmFont } from '../../rendering/text/BmFont.js';
9
+ import { Texture } from '../../rendering/texture/Texture.js';
10
+ import { Video } from '../../rendering/video/Video.js';
11
+ import { asSerializedNode, asObject, readEnum, asNumberArray, readBoolean, REPEAT_MODES, REPEAT_FITS } from './read.js';
12
+ import { compact, readLayoutOptions, deserializeStyleOptions, serializeStyle } from './serializerHelpers.js';
13
+
14
+ // ── Small helpers ────────────────────────────────────────────────────────────
15
+ const toF32 = (value) => (Array.isArray(value) ? new Float32Array(value.map(Number)) : new Float32Array());
16
+ const toU16 = (value) => (Array.isArray(value) ? new Uint16Array(value.map(Number)) : new Uint16Array());
17
+ const toU32 = (value) => (Array.isArray(value) ? new Uint32Array(value.map(Number)) : new Uint32Array());
18
+ const num = (value) => (typeof value === 'number' && Number.isFinite(value) ? value : undefined);
19
+ /** Read a {@link NineSliceInsets} from JSON, defaulting any missing/invalid edge to 0 (never `undefined` — `slices` is required and `undefined` would crash `normalizeInsets`). */
20
+ const readInsets = (value) => {
21
+ const source = asObject(value);
22
+ return {
23
+ left: num(source?.left) ?? 0,
24
+ top: num(source?.top) ?? 0,
25
+ right: num(source?.right) ?? 0,
26
+ bottom: num(source?.bottom) ?? 0,
27
+ };
28
+ };
29
+ /** Read {@link NineSliceModes} from JSON, keeping only valid enum fields (invalid ones fall back to the renderer's defaults). */
30
+ const readModes = (value) => {
31
+ const source = asObject(value);
32
+ if (source === null) {
33
+ return undefined;
34
+ }
35
+ const out = {};
36
+ const edges = readEnum(source, 'edges', REPEAT_MODES);
37
+ if (edges !== undefined)
38
+ out.edges = edges;
39
+ const center = readEnum(source, 'center', REPEAT_MODES);
40
+ if (center !== undefined)
41
+ out.center = center;
42
+ const top = readEnum(source, 'top', REPEAT_MODES);
43
+ if (top !== undefined)
44
+ out.top = top;
45
+ const right = readEnum(source, 'right', REPEAT_MODES);
46
+ if (right !== undefined)
47
+ out.right = right;
48
+ const bottom = readEnum(source, 'bottom', REPEAT_MODES);
49
+ if (bottom !== undefined)
50
+ out.bottom = bottom;
51
+ const left = readEnum(source, 'left', REPEAT_MODES);
52
+ if (left !== undefined)
53
+ out.left = left;
54
+ const edgeFit = readEnum(source, 'edgeFit', REPEAT_FITS);
55
+ if (edgeFit !== undefined)
56
+ out.edgeFit = edgeFit;
57
+ const centerFit = readEnum(source, 'centerFit', REPEAT_FITS);
58
+ if (centerFit !== undefined)
59
+ out.centerFit = centerFit;
60
+ return out;
61
+ };
62
+ // ── Mesh ─────────────────────────────────────────────────────────────────────
63
+ const meshSerializer = {
64
+ write(node, ctx) {
65
+ const out = { vertices: [...node.vertices] };
66
+ if (node.indices !== null)
67
+ out.indices = [...node.indices];
68
+ if (node.uvs !== null)
69
+ out.uvs = [...node.uvs];
70
+ if (node.colors !== null)
71
+ out.colors = [...node.colors];
72
+ const source = ctx.keyFor(node.texture);
73
+ if (source !== null)
74
+ out.texture = source;
75
+ if (node.material !== null) ;
76
+ return out;
77
+ },
78
+ read(data, ctx) {
79
+ return new Mesh(compact({
80
+ vertices: toF32(data.vertices),
81
+ indices: data.indices !== undefined ? toU16(data.indices) : undefined,
82
+ uvs: data.uvs !== undefined ? toF32(data.uvs) : undefined,
83
+ colors: data.colors !== undefined ? toU32(data.colors) : undefined,
84
+ texture: ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture),
85
+ }));
86
+ },
87
+ };
88
+ // ── Graphics ───────────────────────────────────────────────────────────────
89
+ // Graphics is immediate-mode: its authored result is the baked Mesh children it
90
+ // accumulates. Round-trips the rendered geometry (gradient fills, drawn via
91
+ // runtime DataTextures, degrade to their vertex colours — texture refs are
92
+ // unkeyed and dropped). The pen state is transient and not serialized.
93
+ const graphicsSerializer = {
94
+ write(node, ctx) {
95
+ if (node.children.length === 0) {
96
+ return {};
97
+ }
98
+ return { children: node.children.map(child => ctx.writeNode(child)) };
99
+ },
100
+ read(data, ctx) {
101
+ const node = new Graphics();
102
+ const children = data.children;
103
+ if (Array.isArray(children)) {
104
+ for (const child of children) {
105
+ const childNode = asSerializedNode(child);
106
+ if (childNode !== null)
107
+ node.addChild(ctx.readNode(childNode));
108
+ }
109
+ }
110
+ return node;
111
+ },
112
+ };
113
+ // ── NineSliceSprite ──────────────────────────────────────────────────────────
114
+ const nineSliceSerializer = {
115
+ write(node, ctx) {
116
+ const out = {
117
+ slices: { ...node.slices },
118
+ border: { ...node.border },
119
+ modes: { ...node.modes },
120
+ width: node.width,
121
+ height: node.height,
122
+ };
123
+ const source = ctx.keyFor(node.texture);
124
+ if (source !== null)
125
+ out.texture = source;
126
+ return out;
127
+ },
128
+ read(data, ctx) {
129
+ const texture = ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture);
130
+ if (texture === null) {
131
+ throw new Error('NineSliceSprite deserialize requires its texture to be pre-loaded into the Loader.');
132
+ }
133
+ return new NineSliceSprite(texture, compact({
134
+ slices: readInsets(data.slices),
135
+ border: asObject(data.border) !== null ? readInsets(data.border) : undefined,
136
+ modes: readModes(data.modes),
137
+ width: num(data.width),
138
+ height: num(data.height),
139
+ }));
140
+ },
141
+ };
142
+ // ── RepeatingSprite ──────────────────────────────────────────────────────────
143
+ const repeatingSerializer = {
144
+ write(node, ctx) {
145
+ const out = {
146
+ width: node.width,
147
+ height: node.height,
148
+ modeX: node.modeX,
149
+ modeY: node.modeY,
150
+ fitX: node.fitX,
151
+ fitY: node.fitY,
152
+ offsetX: node.offsetX,
153
+ offsetY: node.offsetY,
154
+ };
155
+ const source = ctx.keyFor(node.texture);
156
+ if (source !== null)
157
+ out.texture = source;
158
+ return out;
159
+ },
160
+ read(data, ctx) {
161
+ const texture = ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture);
162
+ if (texture === null) {
163
+ throw new Error('RepeatingSprite deserialize requires its texture to be pre-loaded into the Loader.');
164
+ }
165
+ return new RepeatingSprite(texture, compact({
166
+ width: num(data.width),
167
+ height: num(data.height),
168
+ modeX: readEnum(data, 'modeX', REPEAT_MODES),
169
+ modeY: readEnum(data, 'modeY', REPEAT_MODES),
170
+ fitX: readEnum(data, 'fitX', REPEAT_FITS),
171
+ fitY: readEnum(data, 'fitY', REPEAT_FITS),
172
+ offsetX: num(data.offsetX),
173
+ offsetY: num(data.offsetY),
174
+ }));
175
+ },
176
+ };
177
+ // ── AnimatedSprite ───────────────────────────────────────────────────────────
178
+ // Clips round-trip fully; playback resumes at the active clip's first frame
179
+ // (the exact current frame / elapsed time is runtime state and not restored).
180
+ const animatedSpriteSerializer = {
181
+ write(node, ctx) {
182
+ const out = {};
183
+ const source = ctx.keyFor(node.texture);
184
+ if (source !== null)
185
+ out.texture = source;
186
+ const clips = {};
187
+ for (const [name, clip] of Object.entries(node._getClipDefinitions())) {
188
+ clips[name] = {
189
+ frames: clip.frames.map(frame => [frame.x, frame.y, frame.width, frame.height]),
190
+ fps: clip.fps,
191
+ loop: clip.loop,
192
+ };
193
+ }
194
+ out.clips = clips;
195
+ if (node.currentClip !== null)
196
+ out.currentClip = node.currentClip;
197
+ if (node.playing)
198
+ out.playing = true;
199
+ return out;
200
+ },
201
+ read(data, ctx) {
202
+ const texture = ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture);
203
+ const clips = {};
204
+ const clipsData = data.clips;
205
+ const clipsObject = asObject(clipsData);
206
+ if (clipsObject !== null) {
207
+ for (const [name, raw] of Object.entries(clipsObject)) {
208
+ const clip = asObject(raw);
209
+ if (clip === null) {
210
+ continue;
211
+ }
212
+ const frames = Array.isArray(clip.frames)
213
+ ? clip.frames.map(frame => {
214
+ const values = asNumberArray(frame) ?? [];
215
+ return new Rectangle(values[0] ?? 0, values[1] ?? 0, values[2] ?? 0, values[3] ?? 0);
216
+ })
217
+ : [];
218
+ clips[name] = compact({ frames, fps: num(clip.fps), loop: readBoolean(clip, 'loop') });
219
+ }
220
+ }
221
+ const sprite = new AnimatedSprite(texture, clips);
222
+ if (typeof data.currentClip === 'string' && data.currentClip in clips) {
223
+ sprite.play(data.currentClip);
224
+ if (data.playing !== true) {
225
+ sprite.pause();
226
+ }
227
+ }
228
+ return sprite;
229
+ },
230
+ };
231
+ // ── BitmapText ─────────────────────────────────────────────────────────────
232
+ const bitmapTextSerializer = {
233
+ write(node, ctx) {
234
+ const out = { text: node.text };
235
+ const source = ctx.keyFor(node.font);
236
+ if (source !== null)
237
+ out.font = source;
238
+ if (node.msdf)
239
+ out.msdf = true;
240
+ if (node.fontScale !== 1)
241
+ out.scale = node.fontScale;
242
+ const style = serializeStyle(node.style);
243
+ if (style !== undefined)
244
+ out.style = style;
245
+ if (Object.keys(node.layout).length > 0)
246
+ out.layout = { ...node.layout };
247
+ return out;
248
+ },
249
+ read(data, ctx) {
250
+ const font = ctx.resolveAsset(typeof data.font === 'string' ? data.font : null, BmFont);
251
+ if (font === null) {
252
+ throw new Error('BitmapText deserialize requires its BmFont to be pre-loaded into the Loader.');
253
+ }
254
+ const layout = readLayoutOptions(data.layout);
255
+ return new BitmapText(typeof data.text === 'string' ? data.text : '', font, compact({
256
+ ...deserializeStyleOptions(data.style),
257
+ msdf: data.msdf === true,
258
+ scale: num(data.scale),
259
+ layout,
260
+ }));
261
+ },
262
+ };
263
+ // ── Video ────────────────────────────────────────────────────────────────────
264
+ // Captures the source URL + playback options. Deserialize creates a fresh
265
+ // `<video>` element (requires a DOM); the live decode/audio graph is rebuilt by
266
+ // the Video constructor.
267
+ const videoSerializer = {
268
+ write(node) {
269
+ const out = { src: node.videoElement.src };
270
+ if (node.volume !== 1)
271
+ out.volume = node.volume;
272
+ if (node.loop)
273
+ out.loop = true;
274
+ if (node.playbackRate !== 1)
275
+ out.playbackRate = node.playbackRate;
276
+ if (node.muted)
277
+ out.muted = true;
278
+ if (node.currentTime > 0)
279
+ out.time = node.currentTime;
280
+ return out;
281
+ },
282
+ read(data) {
283
+ const element = document.createElement('video');
284
+ if (typeof data.src === 'string') {
285
+ element.src = data.src;
286
+ }
287
+ return new Video(element, compact({
288
+ volume: num(data.volume),
289
+ loop: data.loop === true ? true : undefined,
290
+ playbackRate: num(data.playbackRate),
291
+ muted: data.muted === true ? true : undefined,
292
+ time: num(data.time),
293
+ }));
294
+ },
295
+ };
296
+ /**
297
+ * Register the rendering-package node serializers on `registry`.
298
+ * @internal
299
+ */
300
+ function registerRenderingSerializers(registry) {
301
+ registry.register('Mesh', Mesh, meshSerializer);
302
+ registry.register('Graphics', Graphics, graphicsSerializer);
303
+ registry.register('NineSliceSprite', NineSliceSprite, nineSliceSerializer);
304
+ registry.register('RepeatingSprite', RepeatingSprite, repeatingSerializer);
305
+ registry.register('AnimatedSprite', AnimatedSprite, animatedSpriteSerializer);
306
+ registry.register('BitmapText', BitmapText, bitmapTextSerializer);
307
+ registry.register('Video', Video, videoSerializer);
308
+ }
309
+
310
+ export { registerRenderingSerializers };
311
+ //# sourceMappingURL=renderingSerializers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderingSerializers.js","sources":["../../../../../src/core/serialization/renderingSerializers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { SceneNode } from '#core/SceneNode';
2
+ import type { Container } from '#rendering/Container';
3
+ import type { Loader } from '#resources/Loader';
4
+ import { type SerializationRegistry } from './SerializationRegistry';
5
+ import { type SerializedNode, type SerializedScene } from './types';
6
+ /**
7
+ * Reset the process-wide serialization state so test suites do not leak
8
+ * registrations into one another. Clears both module-level states: the
9
+ * {@link defaultSerializationRegistry} **and** the `_coreRegistered` latch. Both
10
+ * are mandatory — clearing the registry alone would leave the latch `true`, so
11
+ * the core serializers would never re-register and later round-trips would fail
12
+ * with spurious "No serializer registered" errors.
13
+ *
14
+ * Not exported from the public barrel; import via the direct module path in
15
+ * tests.
16
+ * @internal — For unit tests only.
17
+ */
18
+ export declare function _resetDefaultSerializers(): void;
19
+ /**
20
+ * Serialize a single node and its subtree to a {@link SerializedNode}. Pass a
21
+ * {@link Loader} so texture/asset references resolve to their source keys.
22
+ * @internal
23
+ */
24
+ export declare function serializeTree(node: SceneNode, loader?: Loader | null, registry?: SerializationRegistry): SerializedNode;
25
+ /**
26
+ * Reconstruct a node subtree from a {@link SerializedNode}. Referenced assets
27
+ * must be pre-loaded into `loader`.
28
+ * @internal
29
+ */
30
+ export declare function deserializeTree(data: SerializedNode, loader?: Loader | null, registry?: SerializationRegistry): SceneNode;
31
+ /**
32
+ * Rebuild `container`'s contents from `data` in place: clears existing
33
+ * children, applies `data`'s common fields to the container, then deserializes
34
+ * and re-adds its children. Used by {@link Scene.deserialize} to reuse the
35
+ * eagerly-created scene root.
36
+ * @internal
37
+ */
38
+ export declare function deserializeInto(container: Container, data: SerializedNode, loader?: Loader | null, registry?: SerializationRegistry): void;
39
+ /**
40
+ * Validate and migrate a serialized scene document to the current
41
+ * {@link SERIALIZATION_VERSION}, returning a structurally-sound
42
+ * {@link SerializedScene}.
43
+ *
44
+ * This is the **untrusted top-level boundary**: the parameter is `unknown`
45
+ * because a save file / cloud document is not guaranteed to match the type. The
46
+ * frame (`version`/`root`/`ui`) is validated here so downstream `deserialize*`
47
+ * paths can rely on `root` being a real node. Throws on a non-object document,
48
+ * a version newer than supported, or a missing/invalid root; an invalid `ui` is
49
+ * dropped (it is optional) rather than thrown.
50
+ *
51
+ * The migration chain is empty at v1; future version bumps register
52
+ * version→version+1 transforms here.
53
+ * @internal
54
+ */
55
+ export declare function migrate(data: unknown): SerializedScene;
56
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/serialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAyB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAiB3F;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAqFD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,EAAE,QAAQ,GAAE,qBAAoD,GAAG,cAAc,CAI3J;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,EAAE,QAAQ,GAAE,qBAAoD,GAAG,SAAS,CAI7J;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,cAAc,EACpB,MAAM,GAAE,MAAM,GAAG,IAAW,EAC5B,QAAQ,GAAE,qBAAoD,GAC7D,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAsBtD"}
@@ -0,0 +1,144 @@
1
+ import { applyCommonFields, writeCommonFields } from './commonFields.js';
2
+ import { registerCoreSerializers } from './coreSerializers.js';
3
+ import { asSerializedNode, asObject } from './read.js';
4
+ import { defaultSerializationRegistry } from './SerializationRegistry.js';
5
+ import { SERIALIZATION_VERSION } from './types.js';
6
+
7
+ // Core serializers register lazily (not as an import side effect) so they
8
+ // survive `sideEffects: false` tree-shaking: the registration is reachable
9
+ // only through the framework entry points below, which a consumer must call.
10
+ let _coreRegistered = false;
11
+ /** Idempotently register the built-in node serializers on first use. @internal */
12
+ function ensureCoreSerializers() {
13
+ if (_coreRegistered) {
14
+ return;
15
+ }
16
+ _coreRegistered = true;
17
+ registerCoreSerializers(defaultSerializationRegistry);
18
+ }
19
+ function createSerializeContext(loader, registry) {
20
+ const ctx = {
21
+ version: SERIALIZATION_VERSION,
22
+ loader,
23
+ writeNode: node => writeNodeWith(node, ctx, registry),
24
+ keyFor: resource => {
25
+ if (resource === null || resource === undefined || typeof resource !== 'object' || loader === null) {
26
+ return null;
27
+ }
28
+ const key = loader.keyFor(resource);
29
+ if (key === null) {
30
+ return null;
31
+ }
32
+ return key.source;
33
+ },
34
+ };
35
+ return ctx;
36
+ }
37
+ function createDeserializeContext(loader, version, registry) {
38
+ const ctx = {
39
+ version,
40
+ loader,
41
+ readNode: data => readNodeWith(data, ctx, registry),
42
+ resolveAsset: (source, type) => {
43
+ if (source === null || source === undefined || loader === null) {
44
+ return null;
45
+ }
46
+ const resource = loader.peek(type, source);
47
+ return resource;
48
+ },
49
+ };
50
+ return ctx;
51
+ }
52
+ function writeNodeWith(node, ctx, registry) {
53
+ const entry = registry.resolveByNode(node);
54
+ if (entry === undefined) {
55
+ throw new Error(`No serializer registered for node type "${node.constructor.name}". Register one via registerSerializer().`);
56
+ }
57
+ const out = { type: entry.typeName };
58
+ writeCommonFields(node, out);
59
+ Object.assign(out, entry.serializer.write(node, ctx));
60
+ return out;
61
+ }
62
+ function readNodeWith(data, ctx, registry) {
63
+ const entry = registry.resolveByName(data.type);
64
+ if (entry === undefined) {
65
+ throw new Error(`No serializer registered for type "${data.type}". Register one via registerSerializer().`);
66
+ }
67
+ const node = entry.serializer.read(data, ctx);
68
+ applyCommonFields(node, data);
69
+ return node;
70
+ }
71
+ /**
72
+ * Serialize a single node and its subtree to a {@link SerializedNode}. Pass a
73
+ * {@link Loader} so texture/asset references resolve to their source keys.
74
+ * @internal
75
+ */
76
+ function serializeTree(node, loader = null, registry = defaultSerializationRegistry) {
77
+ ensureCoreSerializers();
78
+ return writeNodeWith(node, createSerializeContext(loader, registry), registry);
79
+ }
80
+ /**
81
+ * Reconstruct a node subtree from a {@link SerializedNode}. Referenced assets
82
+ * must be pre-loaded into `loader`.
83
+ * @internal
84
+ */
85
+ function deserializeTree(data, loader = null, registry = defaultSerializationRegistry) {
86
+ ensureCoreSerializers();
87
+ return readNodeWith(data, createDeserializeContext(loader, SERIALIZATION_VERSION, registry), registry);
88
+ }
89
+ /**
90
+ * Rebuild `container`'s contents from `data` in place: clears existing
91
+ * children, applies `data`'s common fields to the container, then deserializes
92
+ * and re-adds its children. Used by {@link Scene.deserialize} to reuse the
93
+ * eagerly-created scene root.
94
+ * @internal
95
+ */
96
+ function deserializeInto(container, data, loader = null, registry = defaultSerializationRegistry) {
97
+ ensureCoreSerializers();
98
+ const ctx = createDeserializeContext(loader, SERIALIZATION_VERSION, registry);
99
+ container.removeChildren();
100
+ applyCommonFields(container, data);
101
+ const children = data.children;
102
+ if (Array.isArray(children)) {
103
+ for (const child of children) {
104
+ const childNode = asSerializedNode(child);
105
+ if (childNode !== null)
106
+ container.addChild(ctx.readNode(childNode));
107
+ }
108
+ }
109
+ }
110
+ /**
111
+ * Validate and migrate a serialized scene document to the current
112
+ * {@link SERIALIZATION_VERSION}, returning a structurally-sound
113
+ * {@link SerializedScene}.
114
+ *
115
+ * This is the **untrusted top-level boundary**: the parameter is `unknown`
116
+ * because a save file / cloud document is not guaranteed to match the type. The
117
+ * frame (`version`/`root`/`ui`) is validated here so downstream `deserialize*`
118
+ * paths can rely on `root` being a real node. Throws on a non-object document,
119
+ * a version newer than supported, or a missing/invalid root; an invalid `ui` is
120
+ * dropped (it is optional) rather than thrown.
121
+ *
122
+ * The migration chain is empty at v1; future version bumps register
123
+ * version→version+1 transforms here.
124
+ * @internal
125
+ */
126
+ function migrate(data) {
127
+ const scene = asObject(data);
128
+ if (scene === null) {
129
+ throw new Error('Cannot deserialize scene: the document is not an object.');
130
+ }
131
+ const version = typeof scene.version === 'number' ? scene.version : 0;
132
+ if (version > SERIALIZATION_VERSION) {
133
+ throw new Error(`Cannot deserialize scene: data version ${version} is newer than the supported version ${SERIALIZATION_VERSION}.`);
134
+ }
135
+ const root = asSerializedNode(scene.root);
136
+ if (root === null) {
137
+ throw new Error('Cannot deserialize scene: the document has no valid root node.');
138
+ }
139
+ const ui = asSerializedNode(scene.ui);
140
+ return ui !== null ? { version, root, ui } : { version, root };
141
+ }
142
+
143
+ export { deserializeInto, deserializeTree, migrate, serializeTree };
144
+ //# sourceMappingURL=serialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sources":["../../../../../src/core/serialization/serialize.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Color } from '#core/Color';
2
+ import type { LayoutOptions } from '#rendering/text/LayoutOptions';
3
+ import type { TextStyleOptions } from '#rendering/text/TextStyle';
4
+ /**
5
+ * Return a shallow copy of `options` with every `undefined`-valued key removed,
6
+ * so an optional property is *omitted* rather than set to `undefined`. Lets a
7
+ * deserializer build an options bag from sparse JSON without forcing a default
8
+ * past a constructor's own `?? default` (and stays valid under
9
+ * `exactOptionalPropertyTypes`).
10
+ */
11
+ export declare function compact<T extends object>(options: T): {
12
+ [K in keyof T]: Exclude<T[K], undefined>;
13
+ };
14
+ /** Serialize a colour to `[r, g, b, a]` (r/g/b 0..255, a 0..1). */
15
+ export declare const colorToArray: (color: Color) => [number, number, number, number];
16
+ /** Deserialize a `[r, g, b, a]` tuple back to a {@link Color}, or `undefined`. */
17
+ export declare const arrayToColor: (value: unknown) => Color | undefined;
18
+ /** Serialize the plain-data fields of a {@link TextStyle}, omitting defaults. */
19
+ export declare function serializeStyle(style: {
20
+ fontFamily: string;
21
+ fontWeight: string;
22
+ fontStyle: string;
23
+ fontSize: number;
24
+ fillColor: Color;
25
+ outlineColor: Color;
26
+ outlineWidth: number;
27
+ align: string;
28
+ lineHeight: number;
29
+ leading: number;
30
+ shadowColor: Color;
31
+ shadowOffsetX: number;
32
+ shadowOffsetY: number;
33
+ shadowAlpha: number;
34
+ shadowBlur: number;
35
+ gradientColors: [Color, Color] | null;
36
+ gradientAxis: string;
37
+ }): Record<string, unknown> | undefined;
38
+ /** Rebuild {@link TextStyleOptions} from serialized style data, or `undefined`. */
39
+ export declare function deserializeStyleOptions(data: unknown): TextStyleOptions | undefined;
40
+ /**
41
+ * Rebuild {@link LayoutOptions} from a serialized layout object, dropping
42
+ * unknown or mistyped fields. Returns `undefined` when nothing valid remains,
43
+ * so a corrupt `layout` value degrades to the node's constructor defaults.
44
+ */
45
+ export declare function readLayoutOptions(value: unknown): LayoutOptions | undefined;
46
+ //# sourceMappingURL=serializerHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializerHelpers.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/serializerHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAMlE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,CAQlG;AAID,mEAAmE;AACnE,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAyC,CAAC;AAErH,kFAAkF;AAClF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,GAAG,SACsF,CAAC;AAM7I,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,KAAK,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA0BtC;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAoDnF;AAQD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CA8B3E"}