@codexo/exojs 0.6.12 → 0.7.12

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 (512) hide show
  1. package/CHANGELOG.md +1424 -0
  2. package/dist/esm/animation/Tween.d.ts +60 -1
  3. package/dist/esm/animation/Tween.js +60 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +10 -0
  6. package/dist/esm/animation/TweenManager.js +10 -0
  7. package/dist/esm/animation/TweenManager.js.map +1 -1
  8. package/dist/esm/animation/types.d.ts +15 -0
  9. package/dist/esm/animation/types.js +6 -0
  10. package/dist/esm/animation/types.js.map +1 -1
  11. package/dist/esm/audio/AbstractMedia.d.ts +29 -0
  12. package/dist/esm/audio/AbstractMedia.js +76 -0
  13. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  14. package/dist/esm/audio/AudioAnalyser.d.ts +83 -23
  15. package/dist/esm/audio/AudioAnalyser.js +277 -57
  16. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  17. package/dist/esm/audio/AudioBus.d.ts +82 -0
  18. package/dist/esm/audio/AudioBus.js +255 -0
  19. package/dist/esm/audio/AudioBus.js.map +1 -0
  20. package/dist/esm/audio/AudioFilter.d.ts +16 -0
  21. package/dist/esm/audio/AudioFilter.js +13 -0
  22. package/dist/esm/audio/AudioFilter.js.map +1 -0
  23. package/dist/esm/audio/AudioListener.d.ts +39 -0
  24. package/dist/esm/audio/AudioListener.js +97 -0
  25. package/dist/esm/audio/AudioListener.js.map +1 -0
  26. package/dist/esm/audio/AudioManager.d.ts +68 -0
  27. package/dist/esm/audio/AudioManager.js +139 -0
  28. package/dist/esm/audio/AudioManager.js.map +1 -0
  29. package/dist/esm/audio/BeatDetector.d.ts +142 -0
  30. package/dist/esm/audio/BeatDetector.js +957 -0
  31. package/dist/esm/audio/BeatDetector.js.map +1 -0
  32. package/dist/esm/audio/Envelope.d.ts +44 -0
  33. package/dist/esm/audio/Envelope.js +60 -0
  34. package/dist/esm/audio/Envelope.js.map +1 -0
  35. package/dist/esm/audio/Media.d.ts +11 -0
  36. package/dist/esm/audio/Music.d.ts +20 -0
  37. package/dist/esm/audio/Music.js +45 -4
  38. package/dist/esm/audio/Music.js.map +1 -1
  39. package/dist/esm/audio/OscillatorSound.d.ts +98 -0
  40. package/dist/esm/audio/OscillatorSound.js +342 -0
  41. package/dist/esm/audio/OscillatorSound.js.map +1 -0
  42. package/dist/esm/audio/Sound.d.ts +119 -9
  43. package/dist/esm/audio/Sound.js +301 -117
  44. package/dist/esm/audio/Sound.js.map +1 -1
  45. package/dist/esm/audio/audio-context.d.ts +48 -0
  46. package/dist/esm/audio/audio-context.js +48 -5
  47. package/dist/esm/audio/audio-context.js.map +1 -1
  48. package/dist/esm/audio/crossFade.d.ts +19 -0
  49. package/dist/esm/audio/crossFade.js +26 -0
  50. package/dist/esm/audio/crossFade.js.map +1 -0
  51. package/dist/esm/audio/dsp/fft.d.ts +22 -0
  52. package/dist/esm/audio/dsp/mel.d.ts +43 -0
  53. package/dist/esm/audio/dsp/tempogram.d.ts +51 -0
  54. package/dist/esm/audio/filters/ChorusFilter.d.ts +52 -0
  55. package/dist/esm/audio/filters/ChorusFilter.js +143 -0
  56. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -0
  57. package/dist/esm/audio/filters/CompressorFilter.d.ts +43 -0
  58. package/dist/esm/audio/filters/CompressorFilter.js +108 -0
  59. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -0
  60. package/dist/esm/audio/filters/DelayFilter.d.ts +34 -0
  61. package/dist/esm/audio/filters/DelayFilter.js +110 -0
  62. package/dist/esm/audio/filters/DelayFilter.js.map +1 -0
  63. package/dist/esm/audio/filters/DuckingFilter.d.ts +44 -0
  64. package/dist/esm/audio/filters/DuckingFilter.js +164 -0
  65. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -0
  66. package/dist/esm/audio/filters/EqualizerFilter.d.ts +49 -0
  67. package/dist/esm/audio/filters/EqualizerFilter.js +134 -0
  68. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -0
  69. package/dist/esm/audio/filters/GranularFilter.d.ts +62 -0
  70. package/dist/esm/audio/filters/GranularFilter.js +176 -0
  71. package/dist/esm/audio/filters/GranularFilter.js.map +1 -0
  72. package/dist/esm/audio/filters/HighpassFilter.d.ts +29 -0
  73. package/dist/esm/audio/filters/HighpassFilter.js +71 -0
  74. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -0
  75. package/dist/esm/audio/filters/LowpassFilter.d.ts +29 -0
  76. package/dist/esm/audio/filters/LowpassFilter.js +71 -0
  77. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -0
  78. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +44 -0
  79. package/dist/esm/audio/filters/PitchShiftFilter.js +132 -0
  80. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -0
  81. package/dist/esm/audio/filters/ReverbFilter.d.ts +36 -0
  82. package/dist/esm/audio/filters/ReverbFilter.js +118 -0
  83. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -0
  84. package/dist/esm/audio/filters/VocoderFilter.d.ts +49 -0
  85. package/dist/esm/audio/filters/VocoderFilter.js +174 -0
  86. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -0
  87. package/dist/esm/audio/filters/WorkletFilter.d.ts +51 -0
  88. package/dist/esm/audio/filters/WorkletFilter.js +106 -0
  89. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -0
  90. package/dist/esm/audio/filters/index.d.ts +12 -0
  91. package/dist/esm/audio/index.d.ts +15 -1
  92. package/dist/esm/audio/worklet/registerWorklet.d.ts +10 -0
  93. package/dist/esm/audio/worklet/registerWorklet.js +44 -0
  94. package/dist/esm/audio/worklet/registerWorklet.js.map +1 -0
  95. package/dist/esm/core/Application.d.ts +82 -0
  96. package/dist/esm/core/Application.js +137 -2
  97. package/dist/esm/core/Application.js.map +1 -1
  98. package/dist/esm/core/Bounds.d.ts +23 -0
  99. package/dist/esm/core/Bounds.js +23 -0
  100. package/dist/esm/core/Bounds.js.map +1 -1
  101. package/dist/esm/core/Clock.d.ts +21 -0
  102. package/dist/esm/core/Clock.js +21 -0
  103. package/dist/esm/core/Clock.js.map +1 -1
  104. package/dist/esm/core/Color.d.ts +35 -0
  105. package/dist/esm/core/Color.js +35 -0
  106. package/dist/esm/core/Color.js.map +1 -1
  107. package/dist/esm/core/Scene.d.ts +46 -0
  108. package/dist/esm/core/Scene.js +27 -0
  109. package/dist/esm/core/Scene.js.map +1 -1
  110. package/dist/esm/core/SceneManager.d.ts +62 -0
  111. package/dist/esm/core/SceneManager.js +49 -0
  112. package/dist/esm/core/SceneManager.js.map +1 -1
  113. package/dist/esm/core/SceneNode.d.ts +40 -1
  114. package/dist/esm/core/SceneNode.js +75 -6
  115. package/dist/esm/core/SceneNode.js.map +1 -1
  116. package/dist/esm/core/Signal.d.ts +44 -0
  117. package/dist/esm/core/Signal.js +39 -0
  118. package/dist/esm/core/Signal.js.map +1 -1
  119. package/dist/esm/core/Time.d.ts +21 -0
  120. package/dist/esm/core/Time.js +22 -1
  121. package/dist/esm/core/Time.js.map +1 -1
  122. package/dist/esm/core/Timer.d.ts +7 -0
  123. package/dist/esm/core/Timer.js +7 -0
  124. package/dist/esm/core/Timer.js.map +1 -1
  125. package/dist/esm/core/capabilities.d.ts +12 -0
  126. package/dist/esm/core/capabilities.js +12 -0
  127. package/dist/esm/core/capabilities.js.map +1 -1
  128. package/dist/esm/core/index.d.ts +0 -1
  129. package/dist/esm/core/types.d.ts +37 -0
  130. package/dist/esm/core/utils.d.ts +48 -0
  131. package/dist/esm/core/utils.js +48 -0
  132. package/dist/esm/core/utils.js.map +1 -1
  133. package/dist/esm/debug/BoundingBoxesLayer.d.ts +26 -0
  134. package/dist/esm/debug/BoundingBoxesLayer.js +136 -0
  135. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -0
  136. package/dist/esm/debug/DebugLayer.d.ts +42 -0
  137. package/dist/esm/debug/DebugLayer.js +34 -0
  138. package/dist/esm/debug/DebugLayer.js.map +1 -0
  139. package/dist/esm/debug/DebugOverlay.d.ts +59 -0
  140. package/dist/esm/debug/DebugOverlay.js +123 -0
  141. package/dist/esm/debug/DebugOverlay.js.map +1 -0
  142. package/dist/esm/debug/HitTestLayer.d.ts +32 -0
  143. package/dist/esm/debug/HitTestLayer.js +118 -0
  144. package/dist/esm/debug/HitTestLayer.js.map +1 -0
  145. package/dist/esm/debug/PerformanceLayer.d.ts +37 -0
  146. package/dist/esm/debug/PerformanceLayer.js +193 -0
  147. package/dist/esm/debug/PerformanceLayer.js.map +1 -0
  148. package/dist/esm/debug/PointerStackLayer.d.ts +31 -0
  149. package/dist/esm/debug/PointerStackLayer.js +160 -0
  150. package/dist/esm/debug/PointerStackLayer.js.map +1 -0
  151. package/dist/esm/debug/index.d.ts +6 -0
  152. package/dist/esm/debug/index.js +7 -0
  153. package/dist/esm/debug/index.js.map +1 -0
  154. package/dist/esm/index.js +30 -4
  155. package/dist/esm/index.js.map +1 -1
  156. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  157. package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
  158. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  159. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  160. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  161. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  162. package/dist/esm/input/Gamepad.d.ts +48 -0
  163. package/dist/esm/input/Gamepad.js +43 -0
  164. package/dist/esm/input/Gamepad.js.map +1 -1
  165. package/dist/esm/input/GamepadChannels.d.ts +8 -0
  166. package/dist/esm/input/GamepadChannels.js +8 -0
  167. package/dist/esm/input/GamepadChannels.js.map +1 -1
  168. package/dist/esm/input/GamepadControl.d.ts +18 -0
  169. package/dist/esm/input/GamepadControl.js +13 -0
  170. package/dist/esm/input/GamepadControl.js.map +1 -1
  171. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  172. package/dist/esm/input/GamepadDefinitions.js +40 -1
  173. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  174. package/dist/esm/input/GamepadMapping.d.ts +32 -2
  175. package/dist/esm/input/GamepadMapping.js +24 -0
  176. package/dist/esm/input/GamepadMapping.js.map +1 -1
  177. package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
  178. package/dist/esm/input/GamepadPromptLayouts.js +25 -1
  179. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  180. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
  181. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
  182. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  183. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  184. package/dist/esm/input/GestureRecognizer.js +11 -2
  185. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  186. package/dist/esm/input/Input.d.ts +24 -0
  187. package/dist/esm/input/Input.js +22 -0
  188. package/dist/esm/input/Input.js.map +1 -1
  189. package/dist/esm/input/InputManager.d.ts +43 -0
  190. package/dist/esm/input/InputManager.js +68 -5
  191. package/dist/esm/input/InputManager.js.map +1 -1
  192. package/dist/esm/input/InteractionEvent.d.ts +31 -0
  193. package/dist/esm/input/InteractionEvent.js +37 -0
  194. package/dist/esm/input/InteractionEvent.js.map +1 -0
  195. package/dist/esm/input/InteractionManager.d.ts +163 -0
  196. package/dist/esm/input/InteractionManager.js +575 -0
  197. package/dist/esm/input/InteractionManager.js.map +1 -0
  198. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
  199. package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
  200. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  201. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
  202. package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
  203. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  204. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  205. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  206. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  207. package/dist/esm/input/Pointer.d.ts +22 -0
  208. package/dist/esm/input/Pointer.js +22 -0
  209. package/dist/esm/input/Pointer.js.map +1 -1
  210. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  211. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  212. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  213. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  214. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  215. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  216. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  217. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  218. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  219. package/dist/esm/input/index.d.ts +2 -0
  220. package/dist/esm/input/interaction-hooks.d.ts +34 -0
  221. package/dist/esm/input/interaction-hooks.js +35 -0
  222. package/dist/esm/input/interaction-hooks.js.map +1 -0
  223. package/dist/esm/input/types.d.ts +20 -0
  224. package/dist/esm/input/types.js +20 -0
  225. package/dist/esm/input/types.js.map +1 -1
  226. package/dist/esm/math/AbstractVector.d.ts +83 -0
  227. package/dist/esm/math/AbstractVector.js +83 -0
  228. package/dist/esm/math/AbstractVector.js.map +1 -1
  229. package/dist/esm/math/Circle.d.ts +44 -2
  230. package/dist/esm/math/Circle.js +116 -16
  231. package/dist/esm/math/Circle.js.map +1 -1
  232. package/dist/esm/math/CircleLike.d.ts +1 -0
  233. package/dist/esm/math/Collision.d.ts +39 -0
  234. package/dist/esm/math/Collision.js +5 -0
  235. package/dist/esm/math/Collision.js.map +1 -1
  236. package/dist/esm/math/Ellipse.d.ts +11 -0
  237. package/dist/esm/math/Ellipse.js +18 -2
  238. package/dist/esm/math/Ellipse.js.map +1 -1
  239. package/dist/esm/math/EllipseLike.d.ts +3 -0
  240. package/dist/esm/math/Flags.d.ts +31 -0
  241. package/dist/esm/math/Flags.js +31 -0
  242. package/dist/esm/math/Flags.js.map +1 -1
  243. package/dist/esm/math/Interval.d.ts +15 -0
  244. package/dist/esm/math/Interval.js +16 -1
  245. package/dist/esm/math/Interval.js.map +1 -1
  246. package/dist/esm/math/Line.d.ts +17 -1
  247. package/dist/esm/math/Line.js +17 -1
  248. package/dist/esm/math/Line.js.map +1 -1
  249. package/dist/esm/math/LineLike.d.ts +1 -0
  250. package/dist/esm/math/Matrix.d.ts +44 -3
  251. package/dist/esm/math/Matrix.js +44 -3
  252. package/dist/esm/math/Matrix.js.map +1 -1
  253. package/dist/esm/math/ObservableSize.d.ts +7 -0
  254. package/dist/esm/math/ObservableSize.js +7 -0
  255. package/dist/esm/math/ObservableSize.js.map +1 -1
  256. package/dist/esm/math/ObservableVector.d.ts +11 -2
  257. package/dist/esm/math/ObservableVector.js +13 -2
  258. package/dist/esm/math/ObservableVector.js.map +1 -1
  259. package/dist/esm/math/PointLike.d.ts +1 -0
  260. package/dist/esm/math/PolarVector.d.ts +15 -0
  261. package/dist/esm/math/PolarVector.js +16 -1
  262. package/dist/esm/math/PolarVector.js.map +1 -1
  263. package/dist/esm/math/Polygon.d.ts +35 -1
  264. package/dist/esm/math/Polygon.js +78 -6
  265. package/dist/esm/math/Polygon.js.map +1 -1
  266. package/dist/esm/math/PolygonLike.d.ts +4 -0
  267. package/dist/esm/math/Quadtree.d.ts +84 -0
  268. package/dist/esm/math/Quadtree.js +204 -0
  269. package/dist/esm/math/Quadtree.js.map +1 -0
  270. package/dist/esm/math/Random.d.ts +25 -0
  271. package/dist/esm/math/Random.js +26 -1
  272. package/dist/esm/math/Random.js.map +1 -1
  273. package/dist/esm/math/Rectangle.d.ts +15 -0
  274. package/dist/esm/math/Rectangle.js +17 -2
  275. package/dist/esm/math/Rectangle.js.map +1 -1
  276. package/dist/esm/math/RectangleLike.d.ts +1 -0
  277. package/dist/esm/math/Segment.d.ts +7 -0
  278. package/dist/esm/math/Segment.js +7 -0
  279. package/dist/esm/math/Segment.js.map +1 -1
  280. package/dist/esm/math/ShapeLike.d.ts +6 -0
  281. package/dist/esm/math/Size.d.ts +9 -0
  282. package/dist/esm/math/Size.js +10 -1
  283. package/dist/esm/math/Size.js.map +1 -1
  284. package/dist/esm/math/Vector.d.ts +16 -0
  285. package/dist/esm/math/Vector.js +17 -1
  286. package/dist/esm/math/Vector.js.map +1 -1
  287. package/dist/esm/math/collision-detection.d.ts +47 -1
  288. package/dist/esm/math/collision-detection.js +231 -17
  289. package/dist/esm/math/collision-detection.js.map +1 -1
  290. package/dist/esm/math/collision-primitives.d.ts +23 -0
  291. package/dist/esm/math/collision-primitives.js +23 -0
  292. package/dist/esm/math/collision-primitives.js.map +1 -1
  293. package/dist/esm/math/geometry.d.ts +42 -0
  294. package/dist/esm/math/geometry.js +37 -0
  295. package/dist/esm/math/geometry.js.map +1 -1
  296. package/dist/esm/math/index.d.ts +1 -0
  297. package/dist/esm/math/utils.d.ts +41 -0
  298. package/dist/esm/math/utils.js +41 -0
  299. package/dist/esm/math/utils.js.map +1 -1
  300. package/dist/esm/particles/Particle.d.ts +37 -0
  301. package/dist/esm/particles/Particle.js +37 -0
  302. package/dist/esm/particles/Particle.js.map +1 -1
  303. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  304. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  305. package/dist/esm/particles/ParticleSystem.js +70 -0
  306. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  307. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  308. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  309. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  310. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  311. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  312. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  313. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  314. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  315. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  316. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  317. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  318. package/dist/esm/particles/affectors/TorqueAffector.js +12 -1
  319. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  320. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  321. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  322. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  323. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  324. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  325. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  326. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  327. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  328. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  329. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  330. package/dist/esm/rendering/Container.d.ts +44 -0
  331. package/dist/esm/rendering/Container.js +62 -0
  332. package/dist/esm/rendering/Container.js.map +1 -1
  333. package/dist/esm/rendering/Drawable.d.ts +22 -0
  334. package/dist/esm/rendering/Drawable.js +22 -0
  335. package/dist/esm/rendering/Drawable.js.map +1 -1
  336. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  337. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  338. package/dist/esm/rendering/RenderBackendType.js +4 -0
  339. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  340. package/dist/esm/rendering/RenderNode.d.ts +45 -0
  341. package/dist/esm/rendering/RenderNode.js +62 -0
  342. package/dist/esm/rendering/RenderNode.js.map +1 -1
  343. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  344. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  345. package/dist/esm/rendering/RenderStats.js +7 -0
  346. package/dist/esm/rendering/RenderStats.js.map +1 -1
  347. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  348. package/dist/esm/rendering/RenderTarget.js +17 -0
  349. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  350. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  351. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  352. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  353. package/dist/esm/rendering/Renderer.d.ts +15 -0
  354. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  355. package/dist/esm/rendering/RendererRegistry.js +7 -0
  356. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  357. package/dist/esm/rendering/View.d.ts +73 -6
  358. package/dist/esm/rendering/View.js +69 -2
  359. package/dist/esm/rendering/View.js.map +1 -1
  360. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  361. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  362. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  363. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  364. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  365. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  366. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  367. package/dist/esm/rendering/filters/Filter.js +20 -0
  368. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  369. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +114 -0
  370. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +273 -0
  371. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -0
  372. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +116 -0
  373. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +402 -0
  374. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -0
  375. package/dist/esm/rendering/index.d.ts +3 -0
  376. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  377. package/dist/esm/rendering/mesh/Mesh.js +3 -0
  378. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  379. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  380. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  381. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  382. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  383. package/dist/esm/rendering/shader/Shader.js +26 -0
  384. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  385. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  386. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  387. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  388. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  389. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  390. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  391. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +34 -0
  392. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +60 -0
  393. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -0
  394. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  395. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  396. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  397. package/dist/esm/rendering/sprite/Sprite.d.ts +62 -1
  398. package/dist/esm/rendering/sprite/Sprite.js +97 -19
  399. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  400. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  401. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  402. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  403. package/dist/esm/rendering/text/Text.d.ts +2 -0
  404. package/dist/esm/rendering/text/Text.js +2 -0
  405. package/dist/esm/rendering/text/Text.js.map +1 -1
  406. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  407. package/dist/esm/rendering/text/TextStyle.js +24 -0
  408. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  409. package/dist/esm/rendering/text/types.d.ts +1 -0
  410. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  411. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  412. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  413. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  414. package/dist/esm/rendering/texture/Sampler.js +13 -0
  415. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  416. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  417. package/dist/esm/rendering/texture/Texture.js +30 -0
  418. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  419. package/dist/esm/rendering/types.d.ts +29 -0
  420. package/dist/esm/rendering/types.js +29 -0
  421. package/dist/esm/rendering/types.js.map +1 -1
  422. package/dist/esm/rendering/utils.d.ts +20 -0
  423. package/dist/esm/rendering/utils.js +10 -0
  424. package/dist/esm/rendering/utils.js.map +1 -1
  425. package/dist/esm/rendering/video/Video.d.ts +39 -1
  426. package/dist/esm/rendering/video/Video.js +68 -6
  427. package/dist/esm/rendering/video/Video.js.map +1 -1
  428. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  429. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  430. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  431. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +17 -4
  432. package/dist/esm/rendering/webgl2/WebGl2Backend.js +20 -16
  433. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  434. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  435. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  436. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  437. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -8
  438. package/dist/esm/rendering/webgpu/WebGpuBackend.js +160 -40
  439. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  440. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  441. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  442. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  443. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  444. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  445. package/dist/esm/resources/AssetManifest.js +25 -0
  446. package/dist/esm/resources/AssetManifest.js.map +1 -1
  447. package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
  448. package/dist/esm/resources/CacheFirstStrategy.js +12 -0
  449. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  450. package/dist/esm/resources/CacheStore.d.ts +23 -0
  451. package/dist/esm/resources/CacheStrategy.d.ts +20 -0
  452. package/dist/esm/resources/Database.d.ts +45 -0
  453. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  454. package/dist/esm/resources/FactoryRegistry.js +24 -0
  455. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  456. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  457. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  458. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  459. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  460. package/dist/esm/resources/IndexedDbStore.js +12 -0
  461. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  462. package/dist/esm/resources/Loader.d.ts +167 -0
  463. package/dist/esm/resources/Loader.js +110 -0
  464. package/dist/esm/resources/Loader.js.map +1 -1
  465. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
  466. package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
  467. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  468. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  469. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  470. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  471. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  472. package/dist/esm/resources/factories/FontFactory.js +26 -0
  473. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  474. package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
  475. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  476. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  477. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  478. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  479. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  480. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  481. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  482. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  483. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  484. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  485. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  486. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  487. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  488. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  489. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  490. package/dist/esm/resources/factories/TextFactory.js +11 -0
  491. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  492. package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
  493. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  494. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  495. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  496. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  497. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  498. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  499. package/dist/esm/resources/factories/VttFactory.js +24 -0
  500. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  501. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  502. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  503. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  504. package/dist/esm/resources/utils.d.ts +10 -0
  505. package/dist/esm/resources/utils.js +10 -0
  506. package/dist/esm/resources/utils.js.map +1 -1
  507. package/dist/exo.esm.js +11182 -2538
  508. package/dist/exo.esm.js.map +1 -1
  509. package/package.json +20 -9
  510. package/dist/esm/core/Quadtree.d.ts +0 -20
  511. package/dist/esm/core/Quadtree.js +0 -86
  512. package/dist/esm/core/Quadtree.js.map +0 -1
@@ -1,17 +1,44 @@
1
1
  import type { Loadable } from './Loader';
2
+ /**
3
+ * A single asset declaration inside an {@link AssetManifest} bundle.
4
+ *
5
+ * `type` is the loadable class token (e.g. `Texture`, `Sound`), `alias` is
6
+ * the key used to retrieve the asset from the {@link Loader}, and `path` is
7
+ * the URL or relative path used to fetch it.
8
+ */
2
9
  export interface AssetEntry<T extends Loadable = Loadable> {
3
10
  readonly type: T;
4
11
  readonly alias: string;
5
12
  readonly path: string;
6
13
  readonly options?: unknown;
7
14
  }
15
+ /**
16
+ * Static description of all asset bundles in an application.
17
+ *
18
+ * Pass to {@link Loader.registerManifest} and then load individual bundles on
19
+ * demand with {@link Loader.loadBundle}. Use {@link defineAssetManifest} to
20
+ * construct a validated, type-safe manifest at authoring time.
21
+ */
8
22
  export interface AssetManifest {
9
23
  readonly bundles: Readonly<Record<string, ReadonlyArray<AssetEntry>>>;
10
24
  }
25
+ /**
26
+ * Options controlling how a bundle is loaded by {@link Loader.loadBundle}.
27
+ *
28
+ * Set `background` to `true` to load the bundle through the low-priority
29
+ * background queue, and supply `onProgress` for per-bundle progress updates.
30
+ */
11
31
  export interface LoadBundleOptions {
12
32
  background?: boolean;
13
33
  onProgress?: (loaded: number, total: number) => void;
14
34
  }
35
+ /**
36
+ * Thrown by {@link Loader.loadBundle} when one or more assets in the bundle
37
+ * fail to load.
38
+ *
39
+ * The `failures` array contains every entry that errored, letting callers
40
+ * distinguish individual per-asset failures from a wholesale network outage.
41
+ */
15
42
  export declare class BundleLoadError extends Error {
16
43
  readonly bundle: string;
17
44
  readonly failures: Array<{
@@ -25,4 +52,22 @@ export declare class BundleLoadError extends Error {
25
52
  error: Error;
26
53
  }>);
27
54
  }
55
+ /**
56
+ * Validates and returns a strongly-typed {@link AssetManifest}.
57
+ *
58
+ * Validates the manifest shape at runtime (non-empty bundle names, valid entry
59
+ * fields, no duplicate aliases per type/bundle) and preserves the literal
60
+ * types of the input for downstream type inference. Throws a descriptive
61
+ * `Error` on any validation failure.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const manifest = defineAssetManifest({
66
+ * bundles: {
67
+ * ui: [{ type: Texture, alias: 'button', path: 'assets/button.png' }],
68
+ * },
69
+ * });
70
+ * loader.registerManifest(manifest);
71
+ * ```
72
+ */
28
73
  export declare function defineAssetManifest<const M extends AssetManifest>(manifest: M): M;
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Thrown by {@link Loader.loadBundle} when one or more assets in the bundle
3
+ * fail to load.
4
+ *
5
+ * The `failures` array contains every entry that errored, letting callers
6
+ * distinguish individual per-asset failures from a wholesale network outage.
7
+ */
1
8
  class BundleLoadError extends Error {
2
9
  bundle;
3
10
  failures;
@@ -8,6 +15,24 @@ class BundleLoadError extends Error {
8
15
  this.failures = failures;
9
16
  }
10
17
  }
18
+ /**
19
+ * Validates and returns a strongly-typed {@link AssetManifest}.
20
+ *
21
+ * Validates the manifest shape at runtime (non-empty bundle names, valid entry
22
+ * fields, no duplicate aliases per type/bundle) and preserves the literal
23
+ * types of the input for downstream type inference. Throws a descriptive
24
+ * `Error` on any validation failure.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const manifest = defineAssetManifest({
29
+ * bundles: {
30
+ * ui: [{ type: Texture, alias: 'button', path: 'assets/button.png' }],
31
+ * },
32
+ * });
33
+ * loader.registerManifest(manifest);
34
+ * ```
35
+ */
11
36
  function defineAssetManifest(manifest) {
12
37
  validateAssetManifest(manifest);
13
38
  return manifest;
@@ -1 +1 @@
1
- {"version":3,"file":"AssetManifest.js","sources":["../../../../src/resources/AssetManifest.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetManifest.js","sources":["../../../../src/resources/AssetManifest.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import type { CacheRequest, CacheStrategy } from './CacheStrategy';
2
2
  import type { CacheStore } from './CacheStore';
3
+ /**
4
+ * {@link CacheStrategy} that checks every provided {@link CacheStore} before
5
+ * falling back to the network.
6
+ *
7
+ * On a cache hit the stored value is validated by calling
8
+ * {@link AssetFactory.create | factory.create}; if that throws (stale or
9
+ * corrupt entry) the entry is deleted and the next store is tried. Only once
10
+ * all stores miss does the strategy fetch from the network and write the
11
+ * result back to every store. Quota or serialisation errors during write are
12
+ * swallowed silently so that a full storage can never prevent an asset from
13
+ * loading.
14
+ */
3
15
  export declare class CacheFirstStrategy implements CacheStrategy {
4
16
  resolve(request: CacheRequest, stores: ReadonlyArray<CacheStore>): Promise<unknown>;
5
17
  }
@@ -1,3 +1,15 @@
1
+ /**
2
+ * {@link CacheStrategy} that checks every provided {@link CacheStore} before
3
+ * falling back to the network.
4
+ *
5
+ * On a cache hit the stored value is validated by calling
6
+ * {@link AssetFactory.create | factory.create}; if that throws (stale or
7
+ * corrupt entry) the entry is deleted and the next store is tried. Only once
8
+ * all stores miss does the strategy fetch from the network and write the
9
+ * result back to every store. Quota or serialisation errors during write are
10
+ * swallowed silently so that a full storage can never prevent an asset from
11
+ * loading.
12
+ */
1
13
  class CacheFirstStrategy {
2
14
  async resolve(request, stores) {
3
15
  const { storageName, key, url, requestOptions, factory } = request;
@@ -1 +1 @@
1
- {"version":3,"file":"CacheFirstStrategy.js","sources":["../../../../src/resources/CacheFirstStrategy.ts"],"sourcesContent":[null],"names":[],"mappings":"MAGa,kBAAkB,CAAA;AAEpB,IAAA,MAAM,OAAO,CAAC,OAAqB,EAAE,MAAiC,EAAA;AACzE,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO;AAElE,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;YAEjD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AACzC,gBAAA,IAAI;AACA,oBAAA,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5B,oBAAA,OAAO,MAAM;gBACjB;AAAE,gBAAA,MAAM;oBACJ,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;gBACxC;YACJ;QACJ;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAEjD,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,GAAG,CAAA,GAAA,EAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC;QAC5F;QAEA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AAE9C,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI;gBACA,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC;YAC9C;AAAE,YAAA,MAAM;;YAER;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
1
+ {"version":3,"file":"CacheFirstStrategy.js","sources":["../../../../src/resources/CacheFirstStrategy.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;AAWG;MACU,kBAAkB,CAAA;AAEpB,IAAA,MAAM,OAAO,CAAC,OAAqB,EAAE,MAAiC,EAAA;AACzE,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO;AAElE,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;YAEjD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AACzC,gBAAA,IAAI;AACA,oBAAA,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5B,oBAAA,OAAO,MAAM;gBACjB;AAAE,gBAAA,MAAM;oBACJ,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;gBACxC;YACJ;QACJ;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAEjD,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,GAAG,CAAA,GAAA,EAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC;QAC5F;QAEA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AAE9C,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI;gBACA,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC;YAC9C;AAAE,YAAA,MAAM;;YAER;QACJ;AAEA,QAAA,OAAO,MAAM;IACjB;AACH;;;;"}
@@ -1,7 +1,30 @@
1
+ /**
2
+ * Persistent storage backend used by the {@link Loader} to cache processed
3
+ * asset data between sessions.
4
+ *
5
+ * Each method accepts a `storageName` namespace (sourced from
6
+ * {@link AssetFactory.storageName}) and a per-asset `key`, allowing a single
7
+ * store to hold data for multiple asset types. {@link IndexedDbStore} is the
8
+ * built-in implementation backed by the browser's IndexedDB API.
9
+ */
1
10
  export interface CacheStore {
11
+ /**
12
+ * Loads a previously saved value, or `null` if the entry does not exist.
13
+ */
2
14
  load(storageName: string, key: string): Promise<unknown | null>;
15
+ /**
16
+ * Persists `data` under the given namespace and key.
17
+ * Implementations must tolerate failures silently when storage is full.
18
+ */
3
19
  save(storageName: string, key: string, data: unknown): Promise<void>;
20
+ /**
21
+ * Removes a single entry. Returns `true` if the entry existed and was removed.
22
+ */
4
23
  delete(storageName: string, key: string): Promise<boolean>;
24
+ /**
25
+ * Removes all entries within `storageName`. Returns `true` on success.
26
+ */
5
27
  clear(storageName: string): Promise<boolean>;
28
+ /** Synchronously releases any open handles held by the store. */
6
29
  destroy(): void;
7
30
  }
@@ -1,12 +1,32 @@
1
1
  import type { AssetFactory } from './AssetFactory';
2
2
  import type { CacheStore } from './CacheStore';
3
+ /**
4
+ * All the information a {@link CacheStrategy} needs to resolve a single asset.
5
+ *
6
+ * Bundles the target factory, cache namespace, lookup key, and the fetch
7
+ * parameters into one value so strategies remain stateless.
8
+ */
3
9
  export interface CacheRequest {
10
+ /** The {@link AssetFactory.storageName} used as the cache namespace. */
4
11
  readonly storageName: string;
12
+ /** The per-asset lookup key (typically the alias). */
5
13
  readonly key: string;
14
+ /** The fully resolved URL to fetch from the network if the cache misses. */
6
15
  readonly url: string;
7
16
  readonly requestOptions: RequestInit;
8
17
  readonly factory: AssetFactory;
9
18
  }
19
+ /**
20
+ * Strategy interface that decides how assets are fetched and cached.
21
+ *
22
+ * Implement this interface to control the caching policy — for example,
23
+ * {@link CacheFirstStrategy} checks persistent stores before hitting the
24
+ * network, while {@link NetworkOnlyStrategy} always goes to the network.
25
+ */
10
26
  export interface CacheStrategy {
27
+ /**
28
+ * Resolves a single asset according to the strategy's caching policy and
29
+ * returns the processed intermediate value ready for {@link AssetFactory.create}.
30
+ */
11
31
  resolve(request: CacheRequest, stores: ReadonlyArray<CacheStore>): Promise<unknown>;
12
32
  }
@@ -1,13 +1,58 @@
1
+ /**
2
+ * Low-level key/value database abstraction used by {@link CacheStore}
3
+ * implementations.
4
+ *
5
+ * Data is organised into named object stores (`type`) that act as namespaces,
6
+ * each holding entries keyed by `name`. {@link IndexedDbDatabase} is the
7
+ * built-in implementation; custom backends can be provided by implementing
8
+ * this interface and wrapping it in a {@link CacheStore}.
9
+ */
1
10
  export interface Database {
11
+ /** Human-readable database identifier, typically an application name. */
2
12
  readonly name: string;
13
+ /** Schema version used during `upgradeneeded` migrations. */
3
14
  readonly version: number;
15
+ /** Whether a live connection to the underlying database is open. */
4
16
  readonly connected: boolean;
17
+ /**
18
+ * Opens the database connection, running any pending schema migrations.
19
+ * Resolves to `true` when the connection is ready; rejects on error.
20
+ * Calling this when already connected is a no-op that resolves `true`.
21
+ */
5
22
  connect(): Promise<boolean>;
23
+ /**
24
+ * Closes the live database connection and resets the connected state.
25
+ * Always resolves `true`; safe to call when not connected.
26
+ */
6
27
  disconnect(): Promise<boolean>;
28
+ /**
29
+ * Retrieves the entry with the given `name` from the `type` object store,
30
+ * or `null` if no such entry exists.
31
+ */
7
32
  load<T = unknown>(type: string, name: string): Promise<T | null>;
33
+ /**
34
+ * Persists `data` under `name` within the `type` object store, replacing
35
+ * any existing entry with the same name.
36
+ */
8
37
  save(type: string, name: string, data: unknown): Promise<void>;
38
+ /**
39
+ * Deletes the entry with the given `name` from the `type` object store.
40
+ * Resolves `true` on success.
41
+ */
9
42
  delete(type: string, name: string): Promise<boolean>;
43
+ /**
44
+ * Removes all entries from the `type` object store without dropping the
45
+ * store itself. Resolves `true` on success.
46
+ */
10
47
  clearStorage(type: string): Promise<boolean>;
48
+ /**
49
+ * Disconnects and then permanently deletes the entire database.
50
+ * Resolves `true` on success.
51
+ */
11
52
  deleteStorage(): Promise<boolean>;
53
+ /**
54
+ * Synchronously closes any open handles without waiting for pending
55
+ * transactions to complete. Prefer {@link disconnect} for graceful teardown.
56
+ */
12
57
  destroy(): void;
13
58
  }
@@ -1,9 +1,37 @@
1
1
  import type { AssetFactory } from './AssetFactory';
2
+ /**
3
+ * Any abstract or concrete constructor whose instances are the asset type
4
+ * produced by a factory (e.g. `typeof Texture`, `typeof Sound`).
5
+ */
2
6
  export type AssetConstructor<T = unknown> = abstract new (...args: Array<any>) => T;
7
+ /**
8
+ * Maps {@link AssetConstructor} tokens to their corresponding
9
+ * {@link AssetFactory} instances.
10
+ *
11
+ * Resolution is prototype-chain aware: if no factory is registered for the
12
+ * exact constructor, the registry walks up the prototype chain and returns the
13
+ * first ancestor match. This means registering a factory for a base class
14
+ * automatically handles all subclasses.
15
+ *
16
+ * @internal Used by {@link Loader}; consumers interact through `loader.register()`.
17
+ */
3
18
  export declare class FactoryRegistry {
4
19
  private readonly _factories;
20
+ /** Registers `factory` as the handler for `type` and its subclasses. */
5
21
  register<T>(type: AssetConstructor<T>, factory: AssetFactory<T>): void;
22
+ /**
23
+ * Returns the factory registered for `type`, walking up the prototype
24
+ * chain if necessary. Throws if no matching factory is found.
25
+ */
6
26
  resolve<T>(type: AssetConstructor<T>): AssetFactory<T>;
27
+ /**
28
+ * Returns `true` if a factory is registered for `type` or any of its
29
+ * prototype-chain ancestors.
30
+ */
7
31
  has(type: AssetConstructor): boolean;
32
+ /**
33
+ * Calls {@link AssetFactory.destroy} on every registered factory and
34
+ * clears the registry.
35
+ */
8
36
  destroy(): void;
9
37
  }
@@ -1,8 +1,24 @@
1
+ /**
2
+ * Maps {@link AssetConstructor} tokens to their corresponding
3
+ * {@link AssetFactory} instances.
4
+ *
5
+ * Resolution is prototype-chain aware: if no factory is registered for the
6
+ * exact constructor, the registry walks up the prototype chain and returns the
7
+ * first ancestor match. This means registering a factory for a base class
8
+ * automatically handles all subclasses.
9
+ *
10
+ * @internal Used by {@link Loader}; consumers interact through `loader.register()`.
11
+ */
1
12
  class FactoryRegistry {
2
13
  _factories = new Map();
14
+ /** Registers `factory` as the handler for `type` and its subclasses. */
3
15
  register(type, factory) {
4
16
  this._factories.set(type, factory);
5
17
  }
18
+ /**
19
+ * Returns the factory registered for `type`, walking up the prototype
20
+ * chain if necessary. Throws if no matching factory is found.
21
+ */
6
22
  resolve(type) {
7
23
  let constructor = type;
8
24
  let factory = undefined;
@@ -19,6 +35,10 @@ class FactoryRegistry {
19
35
  }
20
36
  return factory;
21
37
  }
38
+ /**
39
+ * Returns `true` if a factory is registered for `type` or any of its
40
+ * prototype-chain ancestors.
41
+ */
22
42
  has(type) {
23
43
  let constructor = type;
24
44
  while (constructor !== null) {
@@ -30,6 +50,10 @@ class FactoryRegistry {
30
50
  }
31
51
  return false;
32
52
  }
53
+ /**
54
+ * Calls {@link AssetFactory.destroy} on every registered factory and
55
+ * clears the registry.
56
+ */
33
57
  destroy() {
34
58
  for (const factory of this._factories.values()) {
35
59
  factory.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"MAKa,eAAe,CAAA;AAEP,IAAA,UAAU,GAAG,IAAI,GAAG,EAAkC;IAEhE,QAAQ,CAAI,IAAyB,EAAE,OAAwB,EAAA;QAClE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAuB,CAAC;IACtD;AAEO,IAAA,OAAO,CAAI,IAAyB,EAAA;QACvC,IAAI,WAAW,GAA4B,IAAI;QAC/C,IAAI,OAAO,GAA6B,SAAS;AAEjD,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACrC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE1C,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CACX,6BAA6B,IAAI,CAAC,IAAI,CAAA,EAAA;AACpC,kBAAA,qDAAqD,CAC1D;QACL;AAEA,QAAA,OAAO,OAA0B;IACrC;AAEO,IAAA,GAAG,CAAC,IAAsB,EAAA;QAC7B,IAAI,WAAW,GAA4B,IAAI;AAE/C,QAAA,OAAO,WAAW,KAAK,IAAI,EAAE;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAClC,gBAAA,OAAO,IAAI;YACf;YAEA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,YAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;QAChD;AAEA,QAAA,OAAO,KAAK;IAChB;IAEO,OAAO,GAAA;QACV,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC5C,OAAO,CAAC,OAAO,EAAE;QACrB;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
1
+ {"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AASA;;;;;;;;;;AAUG;MACU,eAAe,CAAA;AAEP,IAAA,UAAU,GAAG,IAAI,GAAG,EAAkC;;IAGhE,QAAQ,CAAI,IAAyB,EAAE,OAAwB,EAAA;QAClE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAuB,CAAC;IACtD;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAI,IAAyB,EAAA;QACvC,IAAI,WAAW,GAA4B,IAAI;QAC/C,IAAI,OAAO,GAA6B,SAAS;AAEjD,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACrC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE1C,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CACX,6BAA6B,IAAI,CAAC,IAAI,CAAA,EAAA;AACpC,kBAAA,qDAAqD,CAC1D;QACL;AAEA,QAAA,OAAO,OAA0B;IACrC;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAC,IAAsB,EAAA;QAC7B,IAAI,WAAW,GAA4B,IAAI;AAE/C,QAAA,OAAO,WAAW,KAAK,IAAI,EAAE;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAClC,gBAAA,OAAO,IAAI;YACf;YAEA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,YAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;QAChD;AAEA,QAAA,OAAO,KAAK;IAChB;AAEA;;;AAGG;IACI,OAAO,GAAA;QACV,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC5C,OAAO,CAAC,OAAO,EAAE;QACrB;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
@@ -1,4 +1,19 @@
1
1
  import type { Database } from '@/resources/Database';
2
+ /**
3
+ * {@link Database} implementation backed by the browser's IndexedDB API.
4
+ *
5
+ * Each object store is created with a `keyPath` of `"name"`, so records are
6
+ * stored as `{ name, data }` objects. By default the database is initialised
7
+ * with stores for every built-in asset type (font, image, sound, etc.); pass
8
+ * a custom `storeNames` list to restrict or extend the set.
9
+ *
10
+ * Schema migrations are handled in two modes:
11
+ * - **Default** — the constructor-supplied `storeNames` list is diff'd
12
+ * against the existing stores and objects stores added/deleted accordingly.
13
+ * - **Explicit** — a `migrations` map keyed by target version runs the
14
+ * corresponding callback for each version between `oldVersion` and
15
+ * `newVersion`, allowing precise schema evolution.
16
+ */
2
17
  export declare class IndexedDbDatabase implements Database {
3
18
  readonly name: string;
4
19
  readonly version: number;
@@ -9,7 +24,13 @@ export declare class IndexedDbDatabase implements Database {
9
24
  private _database;
10
25
  get connected(): boolean;
11
26
  constructor(name: string, version?: number, storeNames?: ReadonlyArray<string>, migrations?: Record<number, (db: IDBDatabase, transaction: IDBTransaction) => boolean>);
12
- getObjectStore(type: string, transactionMode?: IDBTransactionMode): Promise<IDBObjectStore>;
27
+ /**
28
+ * Opens (or re-uses) an IDBObjectStore for `type` in the given
29
+ * `transactionMode`. Calls {@link connect} automatically if the database
30
+ * is not yet open. Used internally by the load/save/delete methods;
31
+ * `protected` so subclasses can extend with custom transaction shapes.
32
+ */
33
+ protected getObjectStore(type: string, transactionMode?: IDBTransactionMode): Promise<IDBObjectStore>;
13
34
  connect(): Promise<boolean>;
14
35
  disconnect(): Promise<boolean>;
15
36
  load<T = unknown>(type: string, name: string): Promise<T | null>;
@@ -4,6 +4,21 @@ const defaultStoreNames = [
4
4
  'font', 'video', 'music', 'sound', 'image', 'texture',
5
5
  'text', 'svg', 'json', 'binary', 'wasm', 'vtt',
6
6
  ];
7
+ /**
8
+ * {@link Database} implementation backed by the browser's IndexedDB API.
9
+ *
10
+ * Each object store is created with a `keyPath` of `"name"`, so records are
11
+ * stored as `{ name, data }` objects. By default the database is initialised
12
+ * with stores for every built-in asset type (font, image, sound, etc.); pass
13
+ * a custom `storeNames` list to restrict or extend the set.
14
+ *
15
+ * Schema migrations are handled in two modes:
16
+ * - **Default** — the constructor-supplied `storeNames` list is diff'd
17
+ * against the existing stores and objects stores added/deleted accordingly.
18
+ * - **Explicit** — a `migrations` map keyed by target version runs the
19
+ * corresponding callback for each version between `oldVersion` and
20
+ * `newVersion`, allowing precise schema evolution.
21
+ */
7
22
  class IndexedDbDatabase {
8
23
  name;
9
24
  version;
@@ -24,6 +39,12 @@ class IndexedDbDatabase {
24
39
  this._storeNames = storeNames;
25
40
  this._migrations = migrations;
26
41
  }
42
+ /**
43
+ * Opens (or re-uses) an IDBObjectStore for `type` in the given
44
+ * `transactionMode`. Calls {@link connect} automatically if the database
45
+ * is not yet open. Used internally by the load/save/delete methods;
46
+ * `protected` so subclasses can extend with custom transaction shapes.
47
+ */
27
48
  async getObjectStore(type, transactionMode = 'readonly') {
28
49
  await this.connect();
29
50
  return this._database.transaction([type], transactionMode).objectStore(type);
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,10 +1,30 @@
1
1
  import type { CacheStore } from './CacheStore';
2
+ /**
3
+ * Configuration options for {@link IndexedDbStore}.
4
+ *
5
+ * `name` is the IndexedDB database name; `version` defaults to `1`.
6
+ * `storeNames` overrides the default asset-type object stores, and
7
+ * `migrations` provides explicit per-version schema callbacks (see
8
+ * {@link IndexedDbDatabase} for migration semantics).
9
+ */
2
10
  export interface IndexedDbStoreOptions {
3
11
  name: string;
4
12
  version?: number;
5
13
  storeNames?: ReadonlyArray<string>;
6
14
  migrations?: Record<number, (db: IDBDatabase, transaction: IDBTransaction) => boolean>;
7
15
  }
16
+ /**
17
+ * {@link CacheStore} implementation that persists processed asset data in an
18
+ * IndexedDB database via {@link IndexedDbDatabase}.
19
+ *
20
+ * Pass an instance to {@link LoaderOptions.cache} to enable cross-session
21
+ * asset caching with no additional configuration beyond a database name.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const loader = new Loader({ cache: new IndexedDbStore('my-game-assets') });
26
+ * ```
27
+ */
8
28
  export declare class IndexedDbStore implements CacheStore {
9
29
  private readonly _db;
10
30
  constructor(nameOrOptions: string | IndexedDbStoreOptions);
@@ -1,5 +1,17 @@
1
1
  import { IndexedDbDatabase } from './IndexedDbDatabase.js';
2
2
 
3
+ /**
4
+ * {@link CacheStore} implementation that persists processed asset data in an
5
+ * IndexedDB database via {@link IndexedDbDatabase}.
6
+ *
7
+ * Pass an instance to {@link LoaderOptions.cache} to enable cross-session
8
+ * asset caching with no additional configuration beyond a database name.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const loader = new Loader({ cache: new IndexedDbStore('my-game-assets') });
13
+ * ```
14
+ */
3
15
  class IndexedDbStore {
4
16
  _db;
5
17
  constructor(nameOrOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbStore.js","sources":["../../../../src/resources/IndexedDbStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAUa,cAAc,CAAA;AAEN,IAAA,GAAG;AAEpB,IAAA,WAAA,CAAmB,aAA6C,EAAA;AAC5D,QAAA,MAAM,OAAO,GAAG,OAAO,aAAa,KAAK;AACrC,cAAE,EAAE,IAAI,EAAE,aAAa;cACrB,aAAa;AAEnB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAiB,CAC5B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,IAAI,CAAC,EACpB,OAAO,CAAC,UAAU,IAAI;YAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;YACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;AACjD,SAAA,EACD,OAAO,CAAC,UAAU,CACrB;IACL;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAA;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1C;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAE,IAAa,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC;IAChD;AAEO,IAAA,MAAM,MAAM,CAAC,WAAmB,EAAE,GAAW,EAAA;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5C;IAEO,MAAM,KAAK,CAAC,WAAmB,EAAA;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC;IAC7C;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;IACtB;AACH;;;;"}
1
+ {"version":3,"file":"IndexedDbStore.js","sources":["../../../../src/resources/IndexedDbStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAkBA;;;;;;;;;;;AAWG;MACU,cAAc,CAAA;AAEN,IAAA,GAAG;AAEpB,IAAA,WAAA,CAAmB,aAA6C,EAAA;AAC5D,QAAA,MAAM,OAAO,GAAG,OAAO,aAAa,KAAK;AACrC,cAAE,EAAE,IAAI,EAAE,aAAa;cACrB,aAAa;AAEnB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAiB,CAC5B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,IAAI,CAAC,EACpB,OAAO,CAAC,UAAU,IAAI;YAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;YACrD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;AACjD,SAAA,EACD,OAAO,CAAC,UAAU,CACrB;IACL;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAA;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1C;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAE,IAAa,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC;IAChD;AAEO,IAAA,MAAM,MAAM,CAAC,WAAmB,EAAE,GAAW,EAAA;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5C;IAEO,MAAM,KAAK,CAAC,WAAmB,EAAA;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC;IAC7C;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;IACtB;AACH;;;;"}