@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,108 @@
1
+ import { Registry } from '../Registry.js';
2
+
3
+ /** Walk one step up the constructor's prototype chain, or stop at the base. */
4
+ const walkPrototype = (ctor) => {
5
+ const parent = Object.getPrototypeOf(ctor);
6
+ return typeof parent === 'function' && parent !== Function.prototype ? parent : null;
7
+ };
8
+ /**
9
+ * Bidirectional name ↔ constructor ↔ {@link NodeSerializer} registry backing
10
+ * the scene serializer.
11
+ *
12
+ * Serialize resolves a node to its serializer by walking the constructor's
13
+ * prototype chain (so a subclass without its own registration inherits the
14
+ * nearest registered base serializer); deserialize resolves by type name.
15
+ * Core registers the built-in node types; extensions contribute their own via
16
+ * the {@link Extension.serializers} binding.
17
+ *
18
+ * @see registerSerializer for the convenience entry point onto the
19
+ * {@link defaultSerializationRegistry}.
20
+ */
21
+ class SerializationRegistry {
22
+ _fallback;
23
+ _byCtor = new Registry({ walk: walkPrototype });
24
+ _byName = new Map();
25
+ /**
26
+ * @param _fallback Optional parent registry consulted when this registry has
27
+ * no own entry for a lookup. An {@link Application} owns its own registry
28
+ * chained to the {@link defaultSerializationRegistry}, so app-scoped
29
+ * extension serializers stay isolated per Application while core and
30
+ * globally-registered serializers remain shared.
31
+ */
32
+ constructor(_fallback = null) {
33
+ this._fallback = _fallback;
34
+ }
35
+ /**
36
+ * Register `serializer` for `ctor` under `typeName`. Re-registering the same
37
+ * `(typeName, ctor)` pair overwrites silently; registering an existing
38
+ * `typeName` against a **different** constructor throws.
39
+ */
40
+ register(typeName, ctor, serializer) {
41
+ const existing = this._byName.get(typeName);
42
+ if (existing !== undefined && existing.ctor !== ctor) {
43
+ throw new Error(`A serializer for type name "${typeName}" is already registered for a different constructor.`);
44
+ }
45
+ const entry = { typeName, ctor, serializer };
46
+ this._byCtor.set(ctor, entry);
47
+ this._byName.set(typeName, entry);
48
+ }
49
+ /**
50
+ * Resolve the serializer for `node` by walking its constructor's prototype
51
+ * chain. Returns `undefined` if no registration matches.
52
+ * @internal
53
+ */
54
+ resolveByNode(node) {
55
+ return this._byCtor.resolve(node.constructor) ?? this._fallback?.resolveByNode(node);
56
+ }
57
+ /**
58
+ * Resolve the serializer registered under `typeName`, or `undefined`.
59
+ * @internal
60
+ */
61
+ resolveByName(typeName) {
62
+ return this._byName.get(typeName) ?? this._fallback?.resolveByName(typeName);
63
+ }
64
+ /** Returns `true` if a serializer is registered under `typeName`. */
65
+ hasType(typeName) {
66
+ return this._byName.has(typeName) || (this._fallback?.hasType(typeName) ?? false);
67
+ }
68
+ /**
69
+ * Remove every own registration (both the name and constructor maps). The
70
+ * fallback chain is left untouched. Test infrastructure only — used to reset
71
+ * the {@link defaultSerializationRegistry} between suites so process-wide
72
+ * registrations do not leak across them.
73
+ * @internal
74
+ */
75
+ clear() {
76
+ this._byName.clear();
77
+ this._byCtor.destroy();
78
+ }
79
+ }
80
+ /**
81
+ * Process-wide default registry. Core node serializers register here lazily on
82
+ * first use; extension serializers are materialised here at Application
83
+ * construction.
84
+ */
85
+ const defaultSerializationRegistry = new SerializationRegistry();
86
+ /**
87
+ * Register a custom {@link NodeSerializer}. Defaults to the
88
+ * {@link defaultSerializationRegistry}; pass `app.serializers` to register the
89
+ * type only for that {@link Application} (it stays isolated from other apps and
90
+ * from the global registry, resolving through the fallback chain).
91
+ *
92
+ * Use this to make your own {@link SceneNode} subclasses serializable. Delegate
93
+ * to a base type's behaviour by composing with the framework helpers, or
94
+ * register a fully custom serializer.
95
+ *
96
+ * ```ts
97
+ * registerSerializer('PowerUp', PowerUp, {
98
+ * write: (node) => ({ kind: node.kind }),
99
+ * read: (data) => new PowerUp(typeof data.kind === 'string' ? data.kind : ''),
100
+ * });
101
+ * ```
102
+ */
103
+ function registerSerializer(typeName, ctor, serializer, registry = defaultSerializationRegistry) {
104
+ registry.register(typeName, ctor, serializer);
105
+ }
106
+
107
+ export { SerializationRegistry, defaultSerializationRegistry, registerSerializer };
108
+ //# sourceMappingURL=SerializationRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializationRegistry.js","sources":["../../../../../src/core/serialization/SerializationRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAuBA;AACA,MAAM,aAAa,GAAG,CAAC,IAA0B,KAAiC;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAY;AAErD,IAAA,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,QAAQ,CAAC,SAAS,GAAI,MAA+B,GAAG,IAAI;AAChH,CAAC;AAED;;;;;;;;;;;;AAYG;MACU,qBAAqB,CAAA;AAWI,IAAA,SAAA;IAVnB,OAAO,GAAG,IAAI,QAAQ,CAAwC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACtF,IAAA,OAAO,GAAG,IAAI,GAAG,EAA2B;AAE7D;;;;;;AAMG;AACH,IAAA,WAAA,CAAoC,YAA0C,IAAI,EAAA;QAA9C,IAAA,CAAA,SAAS,GAAT,SAAS;IAAwC;AAErF;;;;AAIG;AACI,IAAA,QAAQ,CAAsB,QAAgB,EAAE,IAA6B,EAAE,UAA6B,EAAA;QACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAE3C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAA,oDAAA,CAAsD,CAAC;QAChH;QAEA,MAAM,KAAK,GAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QAE7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;IACnC;AAEA;;;;AAIG;AACI,IAAA,aAAa,CAAC,IAAe,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAmC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;IAC9G;AAEA;;;AAGG;AACI,IAAA,aAAa,CAAC,QAAgB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;IAC9E;;AAGO,IAAA,OAAO,CAAC,QAAgB,EAAA;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACnF;AAEA;;;;;;AAMG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AACD;AAED;;;;AAIG;AACI,MAAM,4BAA4B,GAAG,IAAI,qBAAqB;AAErE;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,kBAAkB,CAChC,QAAgB,EAChB,IAA6B,EAC7B,UAA6B,EAC7B,QAAA,GAAkC,4BAA4B,EAAA;IAE9D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;AAC/C;;;;"}
@@ -0,0 +1,20 @@
1
+ import type { SceneNode } from '#core/SceneNode';
2
+ import type { SerializedNode } from './types';
3
+ /**
4
+ * Write the common `SceneNode` (+ `Drawable`) fields of `node` into `out`.
5
+ *
6
+ * Only non-default values are written, so a freshly-constructed node
7
+ * contributes nothing here. Transforms are emitted in logical units
8
+ * (px / degrees); the `Drawable` tint is `[r, g, b, a]` with `r/g/b` in 0..255
9
+ * and `a` in 0..1. Runtime caches, matrices and dirty flags are never written.
10
+ */
11
+ export declare function writeCommonFields(node: SceneNode, out: SerializedNode): void;
12
+ /**
13
+ * Apply the common fields from `data` onto an already-constructed `node`.
14
+ *
15
+ * Called by the framework after a {@link NodeSerializer.read} returns, so it
16
+ * overrides any transform side-effects of construction (e.g. a `Sprite` frame
17
+ * resetting scale). Absent fields keep the node's constructed defaults.
18
+ */
19
+ export declare function applyCommonFields(node: SceneNode, data: SerializedNode): void;
20
+ //# sourceMappingURL=commonFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonFields.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/commonFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAOjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAiD5E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CA+C7E"}
@@ -0,0 +1,149 @@
1
+ import { Color } from '../Color.js';
2
+ import { Rectangle } from '../../math/Rectangle.js';
3
+ import { Drawable } from '../../rendering/Drawable.js';
4
+ import { isPixelSnapMode } from '../../rendering/pixelSnap.js';
5
+ import { RenderNode } from '../../rendering/RenderNode.js';
6
+ import { BlendModes } from '../../rendering/types.js';
7
+
8
+ /**
9
+ * Write the common `SceneNode` (+ `Drawable`) fields of `node` into `out`.
10
+ *
11
+ * Only non-default values are written, so a freshly-constructed node
12
+ * contributes nothing here. Transforms are emitted in logical units
13
+ * (px / degrees); the `Drawable` tint is `[r, g, b, a]` with `r/g/b` in 0..255
14
+ * and `a` in 0..1. Runtime caches, matrices and dirty flags are never written.
15
+ */
16
+ function writeCommonFields(node, out) {
17
+ if (node.x !== 0)
18
+ out.x = node.x;
19
+ if (node.y !== 0)
20
+ out.y = node.y;
21
+ if (node.rotation !== 0)
22
+ out.rotation = node.rotation;
23
+ if (node.scale.x !== 1)
24
+ out.scaleX = node.scale.x;
25
+ if (node.scale.y !== 1)
26
+ out.scaleY = node.scale.y;
27
+ if (node.skewX !== 0)
28
+ out.skewX = node.skewX;
29
+ if (node.skewY !== 0)
30
+ out.skewY = node.skewY;
31
+ if (node.origin.x !== 0)
32
+ out.originX = node.origin.x;
33
+ if (node.origin.y !== 0)
34
+ out.originY = node.origin.y;
35
+ if (!node.visible)
36
+ out.visible = false;
37
+ if (node.zIndex !== 0)
38
+ out.zIndex = node.zIndex;
39
+ if (!node.cullable)
40
+ out.cullable = false;
41
+ if (node.name !== null)
42
+ out.name = node.name;
43
+ if (node instanceof RenderNode) {
44
+ if (node.interactive)
45
+ out.interactive = true;
46
+ if (node.draggable)
47
+ out.draggable = true;
48
+ if (node.focusable)
49
+ out.focusable = true;
50
+ if (node.tabIndex !== 0)
51
+ out.tabIndex = node.tabIndex;
52
+ if (node.cursor !== null)
53
+ out.cursor = node.cursor;
54
+ if (node.clip)
55
+ out.clip = true;
56
+ if (node.preserveDrawOrder)
57
+ out.preserveDrawOrder = true;
58
+ if (node.cacheAsBitmap)
59
+ out.cacheAsBitmap = true;
60
+ const clipShape = node.clipShape;
61
+ if (clipShape instanceof Rectangle) {
62
+ out.clipShape = [clipShape.x, clipShape.y, clipShape.width, clipShape.height];
63
+ }
64
+ }
65
+ if (node instanceof Drawable) {
66
+ const tint = node.tint;
67
+ if (tint.r !== 255 || tint.g !== 255 || tint.b !== 255 || tint.a !== 1) {
68
+ out.tint = [tint.r, tint.g, tint.b, tint.a];
69
+ }
70
+ if (node.blendMode !== BlendModes.Normal) {
71
+ out.blendMode = node.blendMode;
72
+ }
73
+ if (node.pixelSnapMode !== 'none') {
74
+ out.pixelSnapMode = node.pixelSnapMode;
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Apply the common fields from `data` onto an already-constructed `node`.
80
+ *
81
+ * Called by the framework after a {@link NodeSerializer.read} returns, so it
82
+ * overrides any transform side-effects of construction (e.g. a `Sprite` frame
83
+ * resetting scale). Absent fields keep the node's constructed defaults.
84
+ */
85
+ function applyCommonFields(node, data) {
86
+ if (typeof data.x === 'number')
87
+ node.x = data.x;
88
+ if (typeof data.y === 'number')
89
+ node.y = data.y;
90
+ if (typeof data.rotation === 'number')
91
+ node.rotation = data.rotation;
92
+ if (typeof data.scaleX === 'number')
93
+ node.scale.x = data.scaleX;
94
+ if (typeof data.scaleY === 'number')
95
+ node.scale.y = data.scaleY;
96
+ if (typeof data.skewX === 'number')
97
+ node.skewX = data.skewX;
98
+ if (typeof data.skewY === 'number')
99
+ node.skewY = data.skewY;
100
+ if (typeof data.originX === 'number')
101
+ node.origin.x = data.originX;
102
+ if (typeof data.originY === 'number')
103
+ node.origin.y = data.originY;
104
+ if (data.visible === false)
105
+ node.visible = false;
106
+ if (typeof data.zIndex === 'number')
107
+ node.zIndex = data.zIndex;
108
+ if (data.cullable === false)
109
+ node.cullable = false;
110
+ if (typeof data.name === 'string')
111
+ node.name = data.name;
112
+ if (node instanceof RenderNode) {
113
+ if (data.interactive === true)
114
+ node.interactive = true;
115
+ if (data.draggable === true)
116
+ node.draggable = true;
117
+ if (data.focusable === true)
118
+ node.focusable = true;
119
+ if (typeof data.tabIndex === 'number')
120
+ node.tabIndex = data.tabIndex;
121
+ if (typeof data.cursor === 'string')
122
+ node.cursor = data.cursor;
123
+ if (data.clip === true)
124
+ node.clip = true;
125
+ if (data.preserveDrawOrder === true)
126
+ node.preserveDrawOrder = true;
127
+ if (data.cacheAsBitmap === true)
128
+ node.cacheAsBitmap = true;
129
+ const clipShape = data.clipShape;
130
+ if (Array.isArray(clipShape) && clipShape.length === 4) {
131
+ node.clipShape = new Rectangle(Number(clipShape[0]), Number(clipShape[1]), Number(clipShape[2]), Number(clipShape[3]));
132
+ }
133
+ }
134
+ if (node instanceof Drawable) {
135
+ const tint = data.tint;
136
+ if (Array.isArray(tint) && tint.length === 4) {
137
+ node.tint = new Color(Number(tint[0]), Number(tint[1]), Number(tint[2]), Number(tint[3]));
138
+ }
139
+ if (typeof data.blendMode === 'number') {
140
+ node.blendMode = data.blendMode;
141
+ }
142
+ if (typeof data.pixelSnapMode === 'string' && isPixelSnapMode(data.pixelSnapMode)) {
143
+ node.pixelSnapMode = data.pixelSnapMode;
144
+ }
145
+ }
146
+ }
147
+
148
+ export { applyCommonFields, writeCommonFields };
149
+ //# sourceMappingURL=commonFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonFields.js","sources":["../../../../../src/core/serialization/commonFields.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAWA;;;;;;;AAOG;AACG,SAAU,iBAAiB,CAAC,IAAe,EAAE,GAAmB,EAAA;AACpE,IAAA,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACrD,IAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,IAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC5C,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC5C,IAAA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACpD,IAAA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,OAAO;AAAE,QAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACtC,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;IAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,QAAA,GAAG,CAAC,QAAQ,GAAG,KAAK;AACxC,IAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;AAAE,QAAA,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAE5C,IAAA,IAAI,IAAI,YAAY,UAAU,EAAE;QAC9B,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,GAAG,CAAC,WAAW,GAAG,IAAI;QAC5C,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI;QACxC,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI;AACxC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;AAAE,YAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACrD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;AAAE,YAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAClD,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,GAAG,CAAC,IAAI,GAAG,IAAI;QAC9B,IAAI,IAAI,CAAC,iBAAiB;AAAE,YAAA,GAAG,CAAC,iBAAiB,GAAG,IAAI;QACxD,IAAI,IAAI,CAAC,aAAa;AAAE,YAAA,GAAG,CAAC,aAAa,GAAG,IAAI;AAEhD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAEhC,QAAA,IAAI,SAAS,YAAY,SAAS,EAAE;YAClC,GAAG,CAAC,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QAC/E;IAGF;AAEA,IAAA,IAAI,IAAI,YAAY,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;QAEtB,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YACtE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C;QAEA,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE;AACxC,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACxC;IACF;AACF;AAEA;;;;;;AAMG;AACG,SAAU,iBAAiB,CAAC,IAAe,EAAE,IAAoB,EAAA;AACrE,IAAA,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,IAAA,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,IAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACpE,IAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;AAC/D,IAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;AAC/D,IAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC3D,IAAA,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC3D,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO;AAClE,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO;AAClE,IAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;AAAE,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AAChD,IAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9D,IAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;AAAE,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAClD,IAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;AAAE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAExD,IAAA,IAAI,IAAI,YAAY,UAAU,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACtD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAClD,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AACpE,QAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9D,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AACxC,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAClE,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAE1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAEhC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxH;IACF;AAEA,IAAA,IAAI,IAAI,YAAY,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAEtB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F;AAEA,QAAA,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QACjC;AAEA,QAAA,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AACjF,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACzC;IACF;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ import type { SerializationRegistry } from './SerializationRegistry';
2
+ /**
3
+ * Register all built-in node serializers (core leaf types + rendering package +
4
+ * UI widgets) on `registry`. Called once, lazily, from the serialization
5
+ * framework.
6
+ * @internal
7
+ */
8
+ export declare function registerCoreSerializers(registry: SerializationRegistry): void;
9
+ //# sourceMappingURL=coreSerializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreSerializers.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/coreSerializers.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAoGrE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAO7E"}
@@ -0,0 +1,101 @@
1
+ import { Rectangle } from '../../math/Rectangle.js';
2
+ import { Container } from '../../rendering/Container.js';
3
+ import { Sprite } from '../../rendering/sprite/Sprite.js';
4
+ import { Text } from '../../rendering/text/Text.js';
5
+ import { Texture } from '../../rendering/texture/Texture.js';
6
+ import { asSerializedNode } from './read.js';
7
+ import { registerRenderingSerializers } from './renderingSerializers.js';
8
+ import { readLayoutOptions, compact, deserializeStyleOptions, serializeStyle } from './serializerHelpers.js';
9
+ import { registerUiSerializers } from './uiSerializers.js';
10
+ import { SDF_RADIUS } from '../../rendering/text/GlyphAtlas.js';
11
+
12
+ // ── Container ────────────────────────────────────────────────────────────────
13
+ const containerSerializer = {
14
+ write(node, ctx) {
15
+ if (node.children.length === 0) {
16
+ return {};
17
+ }
18
+ return { children: node.children.map(child => ctx.writeNode(child)) };
19
+ },
20
+ read(data, ctx) {
21
+ const node = new Container();
22
+ const children = data.children;
23
+ if (Array.isArray(children)) {
24
+ for (const child of children) {
25
+ const childNode = asSerializedNode(child);
26
+ if (childNode !== null)
27
+ node.addChild(ctx.readNode(childNode));
28
+ }
29
+ }
30
+ return node;
31
+ },
32
+ };
33
+ // ── Sprite ─────────────────────────────────────────────────────────────────
34
+ const spriteSerializer = {
35
+ write(node, ctx) {
36
+ const out = {};
37
+ const source = ctx.keyFor(node.texture);
38
+ if (source !== null) {
39
+ out.texture = source;
40
+ }
41
+ if (node.material !== null) ;
42
+ const texture = node.texture;
43
+ const frame = node.textureFrame;
44
+ // Emit the frame only for sub-regions (spritesheets); a full-texture frame
45
+ // is reconstructed for free by `new Sprite(texture)`.
46
+ if (texture !== null && (frame.x !== 0 || frame.y !== 0 || frame.width !== texture.width || frame.height !== texture.height)) {
47
+ out.frame = [frame.x, frame.y, frame.width, frame.height];
48
+ }
49
+ return out;
50
+ },
51
+ read(data, ctx) {
52
+ const texture = ctx.resolveAsset(typeof data.texture === 'string' ? data.texture : null, Texture);
53
+ const sprite = new Sprite(texture);
54
+ const frame = data.frame;
55
+ if (texture !== null && Array.isArray(frame) && frame.length === 4) {
56
+ sprite.setTextureFrame(Rectangle.temp.set(Number(frame[0]), Number(frame[1]), Number(frame[2]), Number(frame[3])));
57
+ }
58
+ return sprite;
59
+ },
60
+ };
61
+ // ── Text ─────────────────────────────────────────────────────────────────────
62
+ const textSerializer = {
63
+ write(node) {
64
+ const out = { text: node.text };
65
+ const style = serializeStyle(node.style);
66
+ if (style !== undefined)
67
+ out.style = style;
68
+ if (Object.keys(node.layout).length > 0)
69
+ out.layout = { ...node.layout };
70
+ if (node.colorGlyphs)
71
+ out.colorGlyphs = true;
72
+ if (node.sdfRadius !== SDF_RADIUS)
73
+ out.sdfRadius = node.sdfRadius;
74
+ return out;
75
+ },
76
+ read(data) {
77
+ const layout = readLayoutOptions(data.layout);
78
+ return new Text(typeof data.text === 'string' ? data.text : '', compact({
79
+ ...deserializeStyleOptions(data.style),
80
+ ...layout,
81
+ colorGlyphs: data.colorGlyphs === true,
82
+ sdfRadius: typeof data.sdfRadius === 'number' ? data.sdfRadius : undefined,
83
+ }));
84
+ },
85
+ };
86
+ /**
87
+ * Register all built-in node serializers (core leaf types + rendering package +
88
+ * UI widgets) on `registry`. Called once, lazily, from the serialization
89
+ * framework.
90
+ * @internal
91
+ */
92
+ function registerCoreSerializers(registry) {
93
+ registry.register('Container', Container, containerSerializer);
94
+ registry.register('Sprite', Sprite, spriteSerializer);
95
+ registry.register('Text', Text, textSerializer);
96
+ registerRenderingSerializers(registry);
97
+ registerUiSerializers(registry);
98
+ }
99
+
100
+ export { registerCoreSerializers };
101
+ //# sourceMappingURL=coreSerializers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreSerializers.js","sources":["../../../../../src/core/serialization/coreSerializers.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAeA;AAEA,MAAM,mBAAmB,GAA8B;IACrD,KAAK,CAAC,IAAI,EAAE,GAAG,EAAA;QACb,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,EAAE;QACX;QAEA,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;IACvE,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,GAAG,EAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAE9B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC5B,gBAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACzC,IAAI,SAAS,KAAK,IAAI;oBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAe,CAAC;YAC9E;QACF;AAEA,QAAA,OAAO,IAAI;IACb,CAAC;CACF;AAED;AAEA,MAAM,gBAAgB,GAA2B;IAC/C,KAAK,CAAC,IAAI,EAAE,GAAG,EAAA;QACb,MAAM,GAAG,GAA4B,EAAE;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAEvC,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,GAAG,CAAC,OAAO,GAAG,MAAM;QACtB;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAO5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;;;AAI/B,QAAA,IAAI,OAAO,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5H,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;QAC3D;AAEA,QAAA,OAAO,GAAG;IACZ,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,GAAG,EAAA;QACZ,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;AACjG,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AAExB,QAAA,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAClE,YAAA,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpH;AAEA,QAAA,OAAO,MAAM;IACf,CAAC;CACF;AAED;AAEA,MAAM,cAAc,GAAyB;AAC3C,IAAA,KAAK,CAAC,IAAI,EAAA;QACR,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QACxD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAExC,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,GAAG,CAAC,KAAK,GAAG,KAAK;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;QACxE,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,GAAG,CAAC,WAAW,GAAG,IAAI;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;AAAE,YAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAEjE,QAAA,OAAO,GAAG;IACZ,CAAC;AACD,IAAA,IAAI,CAAC,IAAI,EAAA;QACP,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QAE7C,OAAO,IAAI,IAAI,CACb,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,EAC9C,OAAO,CAAC;AACN,YAAA,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,YAAA,GAAG,MAAM;AACT,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI;AACtC,YAAA,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS;AAC3E,SAAA,CAAC,CACH;IACH,CAAC;CACF;AAED;;;;;AAKG;AACG,SAAU,uBAAuB,CAAC,QAA+B,EAAA;IACrE,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,mBAAmB,CAAC;IAC9D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;IACrD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC;IAE/C,4BAA4B,CAAC,QAAQ,CAAC;IACtC,qBAAqB,CAAC,QAAQ,CAAC;AACjC;;;;"}
@@ -0,0 +1,6 @@
1
+ export type { DeserializeContext, NodeSerializer, SerializeContext } from './NodeSerializer';
2
+ export { Prefab } from './Prefab';
3
+ export { registerSerializer, type SceneNodeConstructor, SerializationRegistry } from './SerializationRegistry';
4
+ export type { AssetRef, SerializedNode, SerializedScene } from './types';
5
+ export { SERIALIZATION_VERSION } from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,65 @@
1
+ import type { SerializedNode } from './types';
2
+ /**
3
+ * Validating read helpers for deserialization — **check instead of cast**.
4
+ *
5
+ * Deserialized JSON is treated as untrusted input (it may come from a save
6
+ * file, cloud sync, shared prefab, or user-generated content). Every field
7
+ * access goes through one of these helpers so a manipulated or corrupt document
8
+ * can only ever cause a field to be *ignored* (falling back to the constructor
9
+ * default) — never to inject an unchecked value of the wrong type/domain into
10
+ * the engine. Structural top-level errors are rejected at the boundary
11
+ * (`migrate` / `Scene.deserialize`); per-field garbage degrades to defaults.
12
+ *
13
+ * The `read*` helpers take `(data, key)` for field access; the `as*` helpers
14
+ * narrow an already-extracted value (used for nested elements).
15
+ *
16
+ * @internal
17
+ */
18
+ type Data = Record<string, unknown>;
19
+ /** Read a string field; `fallback` (or `undefined`) when absent or not a string. */
20
+ export declare function readString(data: Data, key: string): string | undefined;
21
+ export declare function readString(data: Data, key: string, fallback: string): string;
22
+ /**
23
+ * Read a finite-number field; `fallback` (or `undefined`) when absent, not a
24
+ * number, or non-finite. The finite check rejects `NaN`/`Infinity` smuggled in
25
+ * through a hand-edited document.
26
+ */
27
+ export declare function readNumber(data: Data, key: string): number | undefined;
28
+ export declare function readNumber(data: Data, key: string, fallback: number): number;
29
+ /** Read a boolean field; `fallback` (or `undefined`) when absent or not a boolean. */
30
+ export declare function readBoolean(data: Data, key: string): boolean | undefined;
31
+ export declare function readBoolean(data: Data, key: string, fallback: boolean): boolean;
32
+ /**
33
+ * Read a string field constrained to `allowed`; `fallback` (or `undefined`)
34
+ * when absent or not a member. The cast is performed **after** the runtime
35
+ * membership check, so it is sound — this is the helper that replaces the bare
36
+ * `data.x as SomeEnum` casts.
37
+ */
38
+ export declare function readEnum<T extends string>(data: Data, key: string, allowed: readonly T[]): T | undefined;
39
+ export declare function readEnum<T extends string>(data: Data, key: string, allowed: readonly T[], fallback: T): T;
40
+ /** Read an object-valued (non-array) field as a record, or `undefined`. */
41
+ export declare function readObject(data: Data, key: string): Data | undefined;
42
+ /** Narrow an already-extracted value to a plain object record, or `null`. */
43
+ export declare function asObject(value: unknown): Data | null;
44
+ /**
45
+ * Narrow an already-extracted value to a {@link SerializedNode} (an object
46
+ * carrying a string `type` tag), or `null`. Guards the recursive child descent
47
+ * so a `children` array containing non-objects is skipped rather than crashing
48
+ * with `Cannot read 'type' of …`.
49
+ */
50
+ export declare function asSerializedNode(value: unknown): SerializedNode | null;
51
+ /**
52
+ * Narrow an already-extracted value to an array of finite numbers (non-numeric
53
+ * or non-finite entries collapse to `0`), or `null` when not an array.
54
+ */
55
+ export declare function asNumberArray(value: unknown): number[] | null;
56
+ /** Allowed {@link FontWeight} values for {@link readEnum}. */
57
+ export declare const FONT_WEIGHTS: readonly ["normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900"];
58
+ /** Allowed {@link TextAlignment} values for {@link readEnum}. */
59
+ export declare const TEXT_ALIGNMENTS: readonly ["left", "center", "right", "justify"];
60
+ /** Allowed {@link RepeatMode} values for {@link readEnum}. */
61
+ export declare const REPEAT_MODES: readonly ["stretch", "repeat", "mirror-repeat"];
62
+ /** Allowed {@link RepeatFit} values for {@link readEnum}. */
63
+ export declare const REPEAT_FITS: readonly ["clip", "round"];
64
+ export {};
65
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/read.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;;;;;;;GAeG;AAEH,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAO9E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAO9E,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;AAOjF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1G,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;AAO3G,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEpE;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAEtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAE7D;AAQD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,4FAA6H,CAAC;AAEvJ,iEAAiE;AACjE,eAAO,MAAM,eAAe,iDAAqF,CAAC;AAElH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,iDAAkF,CAAC;AAE5G,6DAA6D;AAC7D,eAAO,MAAM,WAAW,4BAA4D,CAAC"}
@@ -0,0 +1,48 @@
1
+ function readNumber(data, key, fallback) {
2
+ const value = data[key];
3
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
4
+ }
5
+ function readBoolean(data, key, fallback) {
6
+ const value = data[key];
7
+ return typeof value === 'boolean' ? value : fallback;
8
+ }
9
+ function readEnum(data, key, allowed, fallback) {
10
+ const value = data[key];
11
+ return typeof value === 'string' && allowed.includes(value) ? value : fallback;
12
+ }
13
+ /** Narrow an already-extracted value to a plain object record, or `null`. */
14
+ function asObject(value) {
15
+ return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : null;
16
+ }
17
+ /**
18
+ * Narrow an already-extracted value to a {@link SerializedNode} (an object
19
+ * carrying a string `type` tag), or `null`. Guards the recursive child descent
20
+ * so a `children` array containing non-objects is skipped rather than crashing
21
+ * with `Cannot read 'type' of …`.
22
+ */
23
+ function asSerializedNode(value) {
24
+ return typeof value === 'object' && value !== null && typeof value.type === 'string' ? value : null;
25
+ }
26
+ /**
27
+ * Narrow an already-extracted value to an array of finite numbers (non-numeric
28
+ * or non-finite entries collapse to `0`), or `null` when not an array.
29
+ */
30
+ function asNumberArray(value) {
31
+ return Array.isArray(value) ? value.map(entry => (typeof entry === 'number' && Number.isFinite(entry) ? entry : 0)) : null;
32
+ }
33
+ // ── Serialized-enum value lists ──────────────────────────────────────────────
34
+ // `satisfies readonly T[]` makes a typo here a compile error (a listed value
35
+ // that is not a union member fails to type-check). If a new union member is
36
+ // added upstream, an omission here only makes an otherwise-valid value fall
37
+ // back to its default — never unsafe — so keep these in sync deliberately.
38
+ /** Allowed {@link FontWeight} values for {@link readEnum}. */
39
+ const FONT_WEIGHTS = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];
40
+ /** Allowed {@link TextAlignment} values for {@link readEnum}. */
41
+ const TEXT_ALIGNMENTS = ['left', 'center', 'right', 'justify'];
42
+ /** Allowed {@link RepeatMode} values for {@link readEnum}. */
43
+ const REPEAT_MODES = ['stretch', 'repeat', 'mirror-repeat'];
44
+ /** Allowed {@link RepeatFit} values for {@link readEnum}. */
45
+ const REPEAT_FITS = ['clip', 'round'];
46
+
47
+ export { FONT_WEIGHTS, REPEAT_FITS, REPEAT_MODES, TEXT_ALIGNMENTS, asNumberArray, asObject, asSerializedNode, readBoolean, readEnum, readNumber };
48
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sources":["../../../../../src/core/serialization/read.ts"],"sourcesContent":[null],"names":[],"mappings":"SAyCgB,UAAU,CAAC,IAAU,EAAE,GAAW,EAAE,QAAiB,EAAA;AACnE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ;AAC/E;SAKgB,WAAW,CAAC,IAAU,EAAE,GAAW,EAAE,QAAkB,EAAA;AACrE,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ;AACtD;AAUM,SAAU,QAAQ,CAAmB,IAAU,EAAE,GAAW,EAAE,OAAqB,EAAE,QAAY,EAAA;AACrG,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEvB,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAI,KAAW,GAAG,QAAQ;AAC9G;AAOA;AACM,SAAU,QAAQ,CAAC,KAAc,EAAA;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAI,KAAc,GAAG,IAAI;AACtG;AAEA;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAAc,CAAC,IAAI,KAAK,QAAQ,GAAI,KAAwB,GAAG,IAAI;AACnI;AAEA;;;AAGG;AACG,SAAU,aAAa,CAAC,KAAc,EAAA;AAC1C,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;AAC5H;AAEA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAE5G;AACO,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;AAEpE;AACO,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe;AAEjE;MACa,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO;;;;"}
@@ -0,0 +1,7 @@
1
+ import type { SerializationRegistry } from './SerializationRegistry';
2
+ /**
3
+ * Register the rendering-package node serializers on `registry`.
4
+ * @internal
5
+ */
6
+ export declare function registerRenderingSerializers(registry: SerializationRegistry): void;
7
+ //# sourceMappingURL=renderingSerializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderingSerializers.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/renderingSerializers.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAmVrE;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAQlF"}