@codexo/exojs 0.14.0 → 0.15.1

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 (277) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/README.md +2 -4
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +0 -1
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +44 -5
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +57 -5
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +1 -0
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/Playable.d.ts +6 -1
  17. package/dist/esm/audio/Playable.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  19. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  20. package/dist/esm/audio/WorkletEffect.js +92 -25
  21. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  22. package/dist/esm/core/Application.d.ts +43 -5
  23. package/dist/esm/core/Application.d.ts.map +1 -1
  24. package/dist/esm/core/Application.js +83 -9
  25. package/dist/esm/core/Application.js.map +1 -1
  26. package/dist/esm/core/BuildInfo.js +2 -2
  27. package/dist/esm/core/Codec.d.ts +41 -0
  28. package/dist/esm/core/Codec.d.ts.map +1 -0
  29. package/dist/esm/core/Codec.js +79 -0
  30. package/dist/esm/core/Codec.js.map +1 -0
  31. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  32. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  33. package/dist/esm/core/FixedTimestep.js +62 -0
  34. package/dist/esm/core/FixedTimestep.js.map +1 -0
  35. package/dist/esm/core/Scene.d.ts +14 -0
  36. package/dist/esm/core/Scene.d.ts.map +1 -1
  37. package/dist/esm/core/Scene.js +18 -0
  38. package/dist/esm/core/Scene.js.map +1 -1
  39. package/dist/esm/core/SceneManager.d.ts +7 -0
  40. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  41. package/dist/esm/core/SceneManager.js +20 -4
  42. package/dist/esm/core/SceneManager.js.map +1 -1
  43. package/dist/esm/core/SceneNode.d.ts +46 -7
  44. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  45. package/dist/esm/core/SceneNode.js +73 -12
  46. package/dist/esm/core/SceneNode.js.map +1 -1
  47. package/dist/esm/core/Stage.d.ts +7 -0
  48. package/dist/esm/core/Stage.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  50. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  51. package/dist/esm/core/SystemRegistry.js +10 -0
  52. package/dist/esm/core/SystemRegistry.js.map +1 -1
  53. package/dist/esm/core/index.d.ts +4 -0
  54. package/dist/esm/core/index.d.ts.map +1 -1
  55. package/dist/esm/core/logging.d.ts +34 -0
  56. package/dist/esm/core/logging.d.ts.map +1 -0
  57. package/dist/esm/core/logging.js +59 -0
  58. package/dist/esm/core/logging.js.map +1 -0
  59. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  60. package/dist/esm/core/serialization/commonFields.js +6 -0
  61. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  62. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  63. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  64. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  65. package/dist/esm/debug/BoundingBoxesLayer.d.ts.map +1 -1
  66. package/dist/esm/debug/BoundingBoxesLayer.js +2 -1
  67. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  68. package/dist/esm/debug/HitTestLayer.js +4 -4
  69. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  70. package/dist/esm/debug/PerformanceLayer.js +1 -1
  71. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  72. package/dist/esm/debug/RenderPassInspectorLayer.js +2 -2
  73. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  74. package/dist/esm/index.js +7 -2
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/input/Gamepad.d.ts +10 -0
  77. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  78. package/dist/esm/input/Gamepad.js +12 -0
  79. package/dist/esm/input/Gamepad.js.map +1 -1
  80. package/dist/esm/input/InputManager.d.ts.map +1 -1
  81. package/dist/esm/input/InputManager.js +5 -0
  82. package/dist/esm/input/InputManager.js.map +1 -1
  83. package/dist/esm/input/InteractionManager.js +4 -4
  84. package/dist/esm/input/InteractionManager.js.map +1 -1
  85. package/dist/esm/math/AbstractVector.d.ts +4 -3
  86. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  87. package/dist/esm/math/AbstractVector.js +5 -4
  88. package/dist/esm/math/AbstractVector.js.map +1 -1
  89. package/dist/esm/math/ObservableVector.d.ts +2 -0
  90. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  91. package/dist/esm/math/ObservableVector.js +9 -0
  92. package/dist/esm/math/ObservableVector.js.map +1 -1
  93. package/dist/esm/math/Polygon.d.ts.map +1 -1
  94. package/dist/esm/math/Polygon.js +4 -1
  95. package/dist/esm/math/Polygon.js.map +1 -1
  96. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  97. package/dist/esm/math/collision-detection.js +14 -14
  98. package/dist/esm/math/collision-detection.js.map +1 -1
  99. package/dist/esm/math/collision-primitives.d.ts +1 -1
  100. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  101. package/dist/esm/math/collision-primitives.js +4 -1
  102. package/dist/esm/math/collision-primitives.js.map +1 -1
  103. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  104. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  105. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  106. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  107. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  108. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  109. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  110. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  111. package/dist/esm/rendering/PassContext.d.ts +42 -0
  112. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  113. package/dist/esm/rendering/PassContext.js +48 -0
  114. package/dist/esm/rendering/PassContext.js.map +1 -0
  115. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  116. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  117. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  118. package/dist/esm/rendering/RenderNode.js +2 -2
  119. package/dist/esm/rendering/RenderNode.js.map +1 -1
  120. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  121. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  122. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  123. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  124. package/dist/esm/rendering/RenderingContext.js +134 -36
  125. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  126. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  127. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  128. package/dist/esm/rendering/TransformBuffer.js +58 -0
  129. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  130. package/dist/esm/rendering/View.d.ts +38 -0
  131. package/dist/esm/rendering/View.d.ts.map +1 -1
  132. package/dist/esm/rendering/View.js +37 -0
  133. package/dist/esm/rendering/View.js.map +1 -1
  134. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  135. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  136. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  137. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  138. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  139. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  140. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  141. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  142. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  143. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  144. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  145. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  146. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  147. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  148. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  149. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  150. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  151. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  152. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  153. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  154. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  155. package/dist/esm/rendering/primitives/Graphics.d.ts +17 -1
  156. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  157. package/dist/esm/rendering/primitives/Graphics.js +50 -15
  158. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  159. package/dist/esm/rendering/public.d.ts +5 -5
  160. package/dist/esm/rendering/public.d.ts.map +1 -1
  161. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +57 -19
  162. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  163. package/dist/esm/rendering/sprite/AnimatedSprite.js +138 -31
  164. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  165. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  166. package/dist/esm/rendering/sprite/Sprite.js +8 -0
  167. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  168. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  169. package/dist/esm/rendering/text/BitmapText.js +2 -0
  170. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  171. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  172. package/dist/esm/rendering/text/HTMLText.js +2 -2
  173. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  174. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  175. package/dist/esm/rendering/text/Text.js +2 -0
  176. package/dist/esm/rendering/text/Text.js.map +1 -1
  177. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  178. package/dist/esm/rendering/text/TextLayout.js +2 -3
  179. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  180. package/dist/esm/rendering/types.d.ts +37 -13
  181. package/dist/esm/rendering/types.d.ts.map +1 -1
  182. package/dist/esm/rendering/types.js +37 -13
  183. package/dist/esm/rendering/types.js.map +1 -1
  184. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  185. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  186. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  187. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  188. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  189. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  190. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  191. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  192. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  193. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  194. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  195. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  196. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  197. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  198. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  199. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  201. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  202. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  203. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  204. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  205. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  207. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  208. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  210. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  212. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  213. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  214. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  215. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  216. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  217. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  218. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  219. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  220. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  222. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  223. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  224. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  225. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  226. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  227. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  228. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  229. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  230. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  231. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  232. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  233. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  234. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  235. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  236. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  237. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  238. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  239. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  240. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  241. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  242. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  243. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  244. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  245. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  246. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  247. package/dist/esm/resources/Loader.d.ts +13 -0
  248. package/dist/esm/resources/Loader.d.ts.map +1 -1
  249. package/dist/esm/resources/Loader.js +67 -7
  250. package/dist/esm/resources/Loader.js.map +1 -1
  251. package/dist/esm/resources/coreAssetBindings.d.ts +11 -0
  252. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  253. package/dist/esm/resources/coreAssetBindings.js +10 -2
  254. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  255. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  256. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  257. package/dist/esm/ui/ScrollContainer.js +99 -0
  258. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  259. package/dist/esm/ui/Tooltip.d.ts +67 -0
  260. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  261. package/dist/esm/ui/Tooltip.js +133 -0
  262. package/dist/esm/ui/Tooltip.js.map +1 -0
  263. package/dist/esm/ui/index.d.ts +4 -0
  264. package/dist/esm/ui/index.d.ts.map +1 -1
  265. package/dist/exo.debug.esm.js +1 -1
  266. package/dist/exo.debug.esm.js.map +1 -1
  267. package/dist/exo.esm.js +1 -1
  268. package/dist/exo.esm.js.map +1 -1
  269. package/dist/exo.iife.js +45273 -0
  270. package/dist/exo.iife.js.map +1 -0
  271. package/dist/exo.iife.min.js +2 -0
  272. package/dist/exo.iife.min.js.map +1 -0
  273. package/package.json +15 -3
  274. package/dist/esm/rendering/Camera.d.ts +0 -34
  275. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  276. package/dist/esm/rendering/Camera.js +0 -38
  277. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -9,7 +9,7 @@ import { InteractionManager } from '#input/InteractionManager';
9
9
  import type { PointLike } from '#math/PointLike';
10
10
  import { Random } from '#math/Random';
11
11
  import type { RenderBackend } from '#rendering/RenderBackend';
12
- import { RenderingContext, type RenderToOptions } from '#rendering/RenderingContext';
12
+ import { type CaptureOptions, RenderingContext } from '#rendering/RenderingContext';
13
13
  import { type RenderNode } from '#rendering/RenderNode';
14
14
  import type { RenderTexture } from '#rendering/texture/RenderTexture';
15
15
  import { Texture } from '#rendering/texture/Texture';
@@ -94,6 +94,11 @@ export interface ApplicationOptions {
94
94
  input?: InputApplicationOptions;
95
95
  /** Seed for the per-Application {@link Application.random} RNG. Omit for a non-deterministic seed. */
96
96
  seed?: number;
97
+ /**
98
+ * Fixed-timestep size in **seconds** for {@link Scene.fixedUpdate} / {@link Application.onFixedFrame}.
99
+ * Default `1 / 60`. Must be positive.
100
+ */
101
+ fixedTimeStep?: number;
97
102
  /**
98
103
  * Extension selection.
99
104
  * `undefined` → Core + globally registered extensions.
@@ -165,15 +170,22 @@ export declare class Application {
165
170
  readonly serializers: SerializationRegistry;
166
171
  readonly onResize: Signal<[number, number, Application]>;
167
172
  readonly onFrame: Signal<[Time]>;
173
+ /** Dispatched once per fixed-timestep step (zero or more times per frame), ahead of {@link onFrame}. */
174
+ readonly onFixedFrame: Signal<[Time]>;
168
175
  readonly onCanvasFocusChange: Signal<[focused: boolean]>;
169
176
  readonly onVisibilityChange: Signal<[visible: boolean]>;
170
177
  readonly onBackendLost: Signal<[]>;
171
178
  readonly onBackendRestored: Signal<[]>;
179
+ /** Dispatched when an unhandled error occurs in scene lifecycle. */
180
+ readonly onError: Signal<[error: Error]>;
172
181
  pauseOnHidden: boolean;
173
182
  private readonly _updateHandler;
174
183
  private readonly _startupClock;
175
184
  private readonly _activeClock;
176
185
  private readonly _frameClock;
186
+ private readonly _fixed;
187
+ private readonly _fixedTime;
188
+ private _frameAlpha;
177
189
  private _status;
178
190
  private _pixelRatio;
179
191
  private _designWidth;
@@ -189,6 +201,7 @@ export declare class Application {
189
201
  private _cursor;
190
202
  private readonly _visibilityChangeHandler;
191
203
  private _resizeObserver;
204
+ private _sizingMode;
192
205
  private readonly _audio;
193
206
  constructor(appSettings?: ApplicationOptions);
194
207
  get status(): ApplicationStatus;
@@ -196,6 +209,15 @@ export declare class Application {
196
209
  get activeTime(): Time;
197
210
  get frameTime(): Time;
198
211
  get frameCount(): number;
212
+ /**
213
+ * Interpolation factor `[0, 1)` — the leftover sub-step fraction after this
214
+ * frame's fixed steps. Lerp rendered state between its previous and current
215
+ * fixed-step values by this to smooth motion when the fixed rate is below the
216
+ * frame rate.
217
+ */
218
+ get frameAlpha(): number;
219
+ /** Fixed-timestep size in seconds (see {@link ApplicationOptions.fixedTimeStep}). */
220
+ get fixedTimeStep(): number;
199
221
  /**
200
222
  * Low-level render backend. Prefer the high-level
201
223
  * {@link Application.rendering} render context for normal rendering.
@@ -221,6 +243,21 @@ export declare class Application {
221
243
  get documentVisible(): boolean;
222
244
  get cursor(): string;
223
245
  set cursor(cursor: string);
246
+ /**
247
+ * The active {@link CanvasSizingMode}. Assigning a new mode re-applies the
248
+ * sizing strategy live: the previous mode's {@link ResizeObserver} (if any)
249
+ * is disconnected and the new mode's CSS / observer is installed. Assigning
250
+ * the current value is a no-op.
251
+ */
252
+ get sizingMode(): CanvasSizingMode;
253
+ set sizingMode(mode: CanvasSizingMode);
254
+ /**
255
+ * The colour the canvas is cleared to each frame, as a live {@link Color}.
256
+ * Assigning copies into the backend's clear colour (effective next frame);
257
+ * you may also mutate it in place via `app.clearColor.set(...)`.
258
+ */
259
+ get clearColor(): Color;
260
+ set clearColor(color: Color);
224
261
  get audio(): AudioManager;
225
262
  /**
226
263
  * Logical (design-space) canvas width — the value passed as `canvas.width`
@@ -245,7 +282,7 @@ export declare class Application {
245
282
  * {@link Pointer.x}/{@link Pointer.y} and node positions, e.g. `0..app.width`
246
283
  * — to a world position using the active camera. At the default centered
247
284
  * camera this is the identity; with a panned/zoomed/rotated camera it undoes
248
- * the transform. Equivalent to `app.rendering.camera.screenToWorld(x, y)`.
285
+ * the transform. Equivalent to `app.rendering.view.screenToWorld(x, y)`.
249
286
  */
250
287
  screenToWorld(x: number, y: number): PointLike;
251
288
  /**
@@ -331,11 +368,12 @@ export declare class Application {
331
368
  */
332
369
  setCursor(cursor: string | Texture | HTMLImageElement | HTMLCanvasElement): this;
333
370
  /**
334
- * Renders `node` into an off-screen {@link RenderTexture} and returns it.
371
+ * Captures `node` into a freshly allocated off-screen {@link RenderTexture}
372
+ * and returns it.
335
373
  *
336
- * Convenience wrapper that delegates to {@link RenderingContext.renderTo}.
374
+ * Convenience wrapper that delegates to {@link RenderingContext.capture}.
337
375
  */
338
- renderTo(node: RenderNode, options: RenderToOptions): RenderTexture;
376
+ capture(node: RenderNode, options: CaptureOptions): RenderTexture;
339
377
  /**
340
378
  * Tear down every owned subsystem (loader, the app systems — input,
341
379
  * interaction, audio, tweens, rendering — backend, scene manager, all clocks,
@@ -1 +1 @@
1
- {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../src/core/Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../src/core/Application.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,12 @@ import { Color } from './Color.js';
13
13
  import './SceneNode.js';
14
14
  import { Signal } from './Signal.js';
15
15
  import '../math/Rectangle.js';
16
+ import '../rendering/types.js';
16
17
  import '../rendering/plan/RenderCommand.js';
17
18
  import '../rendering/plan/RenderScope.js';
18
19
  import '../rendering/texture/RenderTexture.js';
19
20
  import { Texture } from '../rendering/texture/Texture.js';
20
21
  import '../rendering/pass/RenderPassDescriptor.js';
21
- import '../rendering/types.js';
22
22
  import '../rendering/View.js';
23
23
  import { WebGl2Backend } from '../rendering/webgl2/WebGl2Backend.js';
24
24
  import { WebGpuBackend } from '../rendering/webgpu/WebGpuBackend.js';
@@ -26,7 +26,9 @@ import { coreAssetBindings } from '../resources/coreAssetBindings.js';
26
26
  import { Loader } from '../resources/Loader.js';
27
27
  import { Capabilities } from './capabilities.js';
28
28
  import { Clock } from './Clock.js';
29
+ import { FixedTimestep } from './FixedTimestep.js';
29
30
  import { computeLetterboxLayout } from './letterbox.js';
31
+ import { logger } from './logging.js';
30
32
  import { SceneManager } from './SceneManager.js';
31
33
  import { SerializationRegistry, defaultSerializationRegistry } from './serialization/SerializationRegistry.js';
32
34
  import { SystemRegistry } from './SystemRegistry.js';
@@ -41,6 +43,10 @@ var ApplicationStatus;
41
43
  ApplicationStatus[ApplicationStatus["Stopped"] = 4] = "Stopped";
42
44
  })(ApplicationStatus || (ApplicationStatus = {}));
43
45
  const maxDeltaMs = 100;
46
+ /** Default fixed-timestep size in milliseconds (60 Hz). */
47
+ const defaultFixedStepMs = 1000 / 60;
48
+ /** Max fixed steps run in one frame — the spiral-of-death guard. */
49
+ const maxFixedSteps = 5;
44
50
  const createDefaultCanvas = () => document.createElement('canvas');
45
51
  /**
46
52
  * Upper bound for the auto-resolved device-pixel ratio. Caps the backing-store
@@ -140,15 +146,22 @@ class Application {
140
146
  serializers = new SerializationRegistry(defaultSerializationRegistry);
141
147
  onResize = new Signal();
142
148
  onFrame = new Signal();
149
+ /** Dispatched once per fixed-timestep step (zero or more times per frame), ahead of {@link onFrame}. */
150
+ onFixedFrame = new Signal();
143
151
  onCanvasFocusChange = new Signal();
144
152
  onVisibilityChange = new Signal();
145
153
  onBackendLost = new Signal();
146
154
  onBackendRestored = new Signal();
155
+ /** Dispatched when an unhandled error occurs in scene lifecycle. */
156
+ onError = new Signal();
147
157
  pauseOnHidden = false;
148
158
  _updateHandler;
149
159
  _startupClock = new Clock();
150
160
  _activeClock = new Clock();
151
161
  _frameClock = new Clock();
162
+ _fixed;
163
+ _fixedTime;
164
+ _frameAlpha = 0;
152
165
  _status = ApplicationStatus.Stopped;
153
166
  _pixelRatio = defaultCanvasSettings.pixelRatio;
154
167
  _designWidth = defaultCanvasSettings.width;
@@ -164,6 +177,7 @@ class Application {
164
177
  _cursor = 'default';
165
178
  _visibilityChangeHandler = this._onDocumentVisibilityChange.bind(this);
166
179
  _resizeObserver = null;
180
+ _sizingMode = 'fixed';
167
181
  _audio = new AudioManager();
168
182
  constructor(appSettings = {}) {
169
183
  const canvasOptions = appSettings.canvas ?? {};
@@ -188,7 +202,8 @@ class Application {
188
202
  this.canvas.style.imageRendering = canvasOptions.imageRendering;
189
203
  }
190
204
  this._mountCanvas(canvasOptions.mount);
191
- this._applySizingMode(canvasOptions.sizingMode ?? 'fixed');
205
+ this._sizingMode = canvasOptions.sizingMode ?? 'fixed';
206
+ this._applySizingMode(this._sizingMode);
192
207
  this.options = {
193
208
  clearColor: appSettings.clearColor ?? Color.cornflowerBlue,
194
209
  backend: appSettings.backend ?? defaultBackendConfig,
@@ -243,6 +258,9 @@ class Application {
243
258
  this.scene = new SceneManager(this);
244
259
  this.random = new Random(this.options.seed);
245
260
  this._updateHandler = this.update.bind(this);
261
+ const fixedStepMs = this.options.fixedTimeStep !== undefined ? this.options.fixedTimeStep * 1000 : defaultFixedStepMs;
262
+ this._fixed = new FixedTimestep(fixedStepMs, maxFixedSteps);
263
+ this._fixedTime = new Time(fixedStepMs);
246
264
  // Register the core managers as ordered app systems (reserved order bands);
247
265
  // they tick from one loop, ahead of any user systems (order 600+).
248
266
  this.systems.add(this.input);
@@ -277,6 +295,19 @@ class Application {
277
295
  get frameCount() {
278
296
  return this._frameCount;
279
297
  }
298
+ /**
299
+ * Interpolation factor `[0, 1)` — the leftover sub-step fraction after this
300
+ * frame's fixed steps. Lerp rendered state between its previous and current
301
+ * fixed-step values by this to smooth motion when the fixed rate is below the
302
+ * frame rate.
303
+ */
304
+ get frameAlpha() {
305
+ return this._frameAlpha;
306
+ }
307
+ /** Fixed-timestep size in seconds (see {@link ApplicationOptions.fixedTimeStep}). */
308
+ get fixedTimeStep() {
309
+ return this._fixed.stepMs / 1000;
310
+ }
280
311
  /**
281
312
  * Low-level render backend. Prefer the high-level
282
313
  * {@link Application.rendering} render context for normal rendering.
@@ -319,6 +350,35 @@ class Application {
319
350
  set cursor(cursor) {
320
351
  this.setCursor(cursor);
321
352
  }
353
+ /**
354
+ * The active {@link CanvasSizingMode}. Assigning a new mode re-applies the
355
+ * sizing strategy live: the previous mode's {@link ResizeObserver} (if any)
356
+ * is disconnected and the new mode's CSS / observer is installed. Assigning
357
+ * the current value is a no-op.
358
+ */
359
+ get sizingMode() {
360
+ return this._sizingMode;
361
+ }
362
+ set sizingMode(mode) {
363
+ if (mode === this._sizingMode) {
364
+ return;
365
+ }
366
+ this._resizeObserver?.disconnect();
367
+ this._resizeObserver = null;
368
+ this._sizingMode = mode;
369
+ this._applySizingMode(mode);
370
+ }
371
+ /**
372
+ * The colour the canvas is cleared to each frame, as a live {@link Color}.
373
+ * Assigning copies into the backend's clear colour (effective next frame);
374
+ * you may also mutate it in place via `app.clearColor.set(...)`.
375
+ */
376
+ get clearColor() {
377
+ return this._backend.clearColor;
378
+ }
379
+ set clearColor(color) {
380
+ this._backend.clearColor.copy(color);
381
+ }
322
382
  get audio() {
323
383
  return this._audio;
324
384
  }
@@ -351,10 +411,10 @@ class Application {
351
411
  * {@link Pointer.x}/{@link Pointer.y} and node positions, e.g. `0..app.width`
352
412
  * — to a world position using the active camera. At the default centered
353
413
  * camera this is the identity; with a panned/zoomed/rotated camera it undoes
354
- * the transform. Equivalent to `app.rendering.camera.screenToWorld(x, y)`.
414
+ * the transform. Equivalent to `app.rendering.view.screenToWorld(x, y)`.
355
415
  */
356
416
  screenToWorld(x, y) {
357
- return this._rendering.camera.screenToWorld(x, y);
417
+ return this._rendering.view.screenToWorld(x, y);
358
418
  }
359
419
  /**
360
420
  * Map a canvas backing-store pixel coordinate into design space. Because the
@@ -390,6 +450,7 @@ class Application {
390
450
  await this.scene.setScene(scene);
391
451
  this._frameRequest = requestAnimationFrame(this._updateHandler);
392
452
  this._frameClock.restart();
453
+ this._fixed.reset();
393
454
  this._activeClock.start();
394
455
  this._status = ApplicationStatus.Running;
395
456
  }
@@ -428,6 +489,7 @@ class Application {
428
489
  if (this._status === ApplicationStatus.Running) {
429
490
  if (this.pauseOnHidden && !this._documentVisible) {
430
491
  this._frameClock.restart();
492
+ this._fixed.reset();
431
493
  this._frameRequest = requestAnimationFrame(this._updateHandler);
432
494
  return this;
433
495
  }
@@ -438,6 +500,14 @@ class Application {
438
500
  this.backend.resetStats();
439
501
  this.backend.stats.rawFrameDeltaMs = rawDeltaMs;
440
502
  this.systems._tick(frameDelta);
503
+ // Fixed-timestep steps (0..N) for deterministic logic/physics, after input
504
+ // so they see this frame's input and before the variable update/draw.
505
+ const fixedSteps = this._fixed.advance(clampedDeltaMs);
506
+ for (let step = 0; step < fixedSteps; step++) {
507
+ this.scene.fixedUpdate(this._fixedTime);
508
+ this.onFixedFrame.dispatch(this._fixedTime);
509
+ }
510
+ this._frameAlpha = this._fixed.alpha;
441
511
  this.scene.update(frameDelta);
442
512
  this.onFrame.dispatch(frameDelta);
443
513
  this.backend.flush();
@@ -458,7 +528,8 @@ class Application {
458
528
  this._status = ApplicationStatus.Halting;
459
529
  cancelAnimationFrame(this._frameRequest);
460
530
  void this.scene.setScene(null).catch((error) => {
461
- console.error('Application.stop() failed to unload the active scene.', error);
531
+ logger.error('core', 'Application.stop() failed to unload the active scene.', error instanceof Error ? error : undefined);
532
+ this.onError?.dispatch(error instanceof Error ? error : new Error(String(error)));
462
533
  });
463
534
  this._activeClock.stop();
464
535
  this._frameClock.stop();
@@ -588,12 +659,13 @@ class Application {
588
659
  return this;
589
660
  }
590
661
  /**
591
- * Renders `node` into an off-screen {@link RenderTexture} and returns it.
662
+ * Captures `node` into a freshly allocated off-screen {@link RenderTexture}
663
+ * and returns it.
592
664
  *
593
- * Convenience wrapper that delegates to {@link RenderingContext.renderTo}.
665
+ * Convenience wrapper that delegates to {@link RenderingContext.capture}.
594
666
  */
595
- renderTo(node, options) {
596
- return this._rendering.renderTo(node, options);
667
+ capture(node, options) {
668
+ return this._rendering.capture(node, options);
597
669
  }
598
670
  /**
599
671
  * Tear down every owned subsystem (loader, the app systems — input,
@@ -618,10 +690,12 @@ class Application {
618
690
  this._frameClock.destroy();
619
691
  this.onResize.destroy();
620
692
  this.onFrame.destroy();
693
+ this.onFixedFrame.destroy();
621
694
  this.onCanvasFocusChange.destroy();
622
695
  this.onVisibilityChange.destroy();
623
696
  this.onBackendLost.destroy();
624
697
  this.onBackendRestored.destroy();
698
+ this.onError.destroy();
625
699
  }
626
700
  _onDocumentVisibilityChange() {
627
701
  const visible = document.visibilityState === 'visible';
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;AAsG7B,MAAM,UAAU,GAAG,GAAG;AAEtB,MAAM,mBAAmB,GAAG,MAAyB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAErF;;;;;;AAMG;AACH,MAAM,iBAAiB,GAAG,CAAC;AAE3B;;;;;AAKG;AACH,MAAM,qBAAqB,GAAG,MAAa;AACzC,IAAA,MAAM,GAAG,GAAI,UAA4C,CAAC,gBAAgB;IAE1E,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;AAClF,CAAC;AAED,MAAM,oBAAoB,GAAsB,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE,MAAM,qBAAqB,GAAG;AAC5B,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,EAAE;CACJ;AACV,MAAM,yBAAyB,GAAgB;AAC7C,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,SAAS;CACjB;AACD,MAAM,wBAAwB,GAA0C;AACtE,IAAA,KAAK,EAAE,KAAK;IACZ,uBAAuB,EAAE,IAAI;AAC7B,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,qBAAqB,EAAE,KAAK;AAC5B,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACb,KAAA;CACF;AACD,MAAM,oBAAoB,GAAsC;AAC9D,IAAA,kBAAkB,EAAE,EAAE;AACtB,IAAA,mBAAmB,EAAE,QAAQ;AAC7B,IAAA,wBAAwB,EAAE,EAAE;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;MACU,WAAW,CAAA;AACN,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,KAAK;;AAEL,IAAA,MAAM;AACN,IAAA,MAAM,GAAiB,IAAI,YAAY,EAAE;AACzD;;;;;AAKG;AACa,IAAA,OAAO,GAAG,IAAI,cAAc,EAAE;AAC9C;;;;;;AAMG;AACa,IAAA,WAAW,GAAG,IAAI,qBAAqB,CAAC,4BAA4B,CAAC;AACrE,IAAA,QAAQ,GAAG,IAAI,MAAM,EAAiC;AACtD,IAAA,OAAO,GAAG,IAAI,MAAM,EAAU;AAC9B,IAAA,mBAAmB,GAAG,IAAI,MAAM,EAAsB;AACtD,IAAA,kBAAkB,GAAG,IAAI,MAAM,EAAsB;AACrD,IAAA,aAAa,GAAG,IAAI,MAAM,EAAE;AAC5B,IAAA,iBAAiB,GAAG,IAAI,MAAM,EAAE;IACzC,aAAa,GAAG,KAAK;AAEX,IAAA,cAAc;AACd,IAAA,aAAa,GAAU,IAAI,KAAK,EAAE;AAClC,IAAA,YAAY,GAAU,IAAI,KAAK,EAAE;AACjC,IAAA,WAAW,GAAU,IAAI,KAAK,EAAE;AAEzC,IAAA,OAAO,GAAsB,iBAAiB,CAAC,OAAO;AACtD,IAAA,WAAW,GAAW,qBAAqB,CAAC,UAAU;AACtD,IAAA,YAAY,GAAW,qBAAqB,CAAC,KAAK;AAClD,IAAA,aAAa,GAAW,qBAAqB,CAAC,MAAM;IACpD,WAAW,GAAG,CAAC;IACf,aAAa,GAAG,CAAC;AACjB,IAAA,YAAY;AACZ,IAAA,QAAQ;AACR,IAAA,UAAU;AACD,IAAA,SAAS;IAClB,aAAa,GAAwB,IAAI;IACzC,gBAAgB,GAAG,IAAI;IACvB,OAAO,GAAG,SAAS;IACV,wBAAwB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/E,eAAe,GAA0B,IAAI;AACpC,IAAA,MAAM,GAAiB,IAAI,YAAY,EAAE;AAE1D,IAAA,WAAA,CAAmB,cAAkC,EAAE,EAAA;AACrD,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE;AAC9C,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE;AAC9C,QAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,IAAI,EAAE;AACpD,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,mBAAmB,EAAE;QAE7D,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK;QACvE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM;QAC1E,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,UAAU,IAAI,qBAAqB,EAAE;AACtE,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,aAAa,CAAC;AAElD,QAAA,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;QAC/C;aAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,qBAAqB,CAAC,QAAQ;QACvD;AAEA,QAAA,IAAI,aAAa,CAAC,cAAc,KAAK,SAAS,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc;QACjE;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,IAAI,OAAO,CAAC;QAE1D,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,cAAc;AAC1D,YAAA,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,oBAAoB;AACpD,YAAA,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,MAAM;AACpB,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,IAAI,CAAC,WAAW;AAC5B,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC9B,gBAAA,IAAI,aAAa,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,EAAE,CAAC;AACpG,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,EAAE;gBACtC,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,EAAE,GAAG,yBAAyB,EAAE;AAC5E,gBAAA,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AACxE,gBAAA,IAAI,aAAa,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC;AAChG,gBAAA,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC;AAC3F,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,gBAAgB,CAAC,KAAK,IAAI,wBAAwB,CAAC,KAAK;AAC/D,gBAAA,eAAe,EAAE,gBAAgB,CAAC,eAAe,IAAI,wBAAwB,CAAC,eAAe;AAC7F,gBAAA,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB,IAAI,wBAAwB,CAAC,uBAAuB;AACtH,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,IAAI,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;AACnG,gBAAA,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,mBAAmB;AACjG,gBAAA,wBAAwB,EAAE,YAAY,CAAC,wBAAwB,IAAI,oBAAoB,CAAC,wBAAwB;AACjH,aAAA;SACF;;AAGD,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,UAAU,KAAK,SAAS,GAAG,yBAAyB,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AAExI,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAE7C,QAAA,IAAI;AACF,YAAA,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvF,6BAA6B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAC7E;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB;AAAE,YAAA,MAAM;;YAER;AACA,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAE;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;QAI5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAEjC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAE1B,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB,CAAC;QAC9E;QAEA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,IAAG;AAC3C,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,IAAG;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW;IACvC;AAEA,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW;IACtC;AAEA,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW;IACrC;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA;;;;;AAKG;AACH,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;;AAIG;AACH,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC;QAC1I;QAEA,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa;IACjC;AAEA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACxB;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;;AAMG;IACI,aAAa,CAAC,CAAS,EAAE,CAAS,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD;AAEA;;;;;;;AAOG;IACI,qBAAqB,CAAC,aAAqB,EAAE,aAAqB,EAAA;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;QAE7C,OAAO;YACL,CAAC,EAAE,CAAC,aAAa,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY;YACrD,CAAC,EAAE,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,aAAa;SACxD;IACH;AAEA;;;;;AAKG;IACI,MAAM,KAAK,CAAC,KAAY,EAAA;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;;;AAIxC,YAAA,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK;AAE9C,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB;gBAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/D,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;YAC1C;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;AACxC,gBAAA,MAAM,KAAK;YACb;QACF;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;IACI,MAAM,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;YAC9C,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAChD,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAE/D,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY;YAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;AAChD,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;AAEpC,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU;AAE/C,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;AAE9B,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU;YAC/D,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/D,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,WAAW,EAAE;QACpB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;AACxC,YAAA,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,YAAA,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AACtD,gBAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC;AAC/E,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;QAC1C;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,MAAM,CAAC,KAAa,EAAE,MAAc,EAAA;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAC9B,KAAK;YACL,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAE3C,QAAA,OAAO,IAAI;IACb;;AAGQ,IAAA,YAAY,CAAC,KAA4B,EAAA;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YAC1D;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK;AAEhF,QAAA,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7B;AAEA;;;;;;;AAOG;AACK,IAAA,gBAAgB,CAAC,IAAsB,EAAA;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;QAE/B,QAAQ,IAAI;YACV,KAAK,MAAM,EAAE;AACX,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;gBAExC,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE;oBACpD;gBACF;AAEA,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;AAC7C,oBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW;AAChC,oBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY;oBAElC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;AAC3B,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC5B;AACF,gBAAA,CAAC,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC;YACF;YACA,KAAK,WAAW,EAAE;AAChB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;gBAExC,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE;oBACpD;gBACF;;;AAIA,gBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK;AAEhC,gBAAA,WAAW,CAAC,OAAO,GAAG,MAAM;AAC5B,gBAAA,WAAW,CAAC,UAAU,GAAG,QAAQ;AACjC,gBAAA,WAAW,CAAC,cAAc,GAAG,QAAQ;AACrC,gBAAA,WAAW,CAAC,QAAQ,GAAG,QAAQ;AAC/B,gBAAA,WAAW,CAAC,UAAU,GAAG,MAAM;AAE/B,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;AAC7C,oBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW;AAChC,oBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY;oBAElC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;AAC3B,wBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3C;AACF,gBAAA,CAAC,CAAC;AACF,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC;YACF;AACA,YAAA,KAAK,KAAK;AACR,gBAAA,KAAK,CAAC,KAAK,GAAG,MAAM;AACpB,gBAAA,KAAK,CAAC,MAAM,GAAG,MAAM;AACrB,gBAAA,KAAK,CAAC,SAAS,GAAG,SAAS;gBAC3B;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,CAAC,QAAQ,GAAG,MAAM;AACvB,gBAAA,KAAK,CAAC,SAAS,GAAG,MAAM;AACxB,gBAAA,KAAK,CAAC,SAAS,GAAG,SAAS;gBAC3B;;IAKN;AAEA;;;;;;;;;AASG;IACK,qBAAqB,CAAC,cAAsB,EAAE,eAAuB,EAAA;QAC3E,MAAM,MAAM,GAAG,sBAAsB,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;QAE/H,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,MAAM,CAAC,eAAe,CAAA,EAAA,CAAI;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAC,gBAAgB,CAAA,EAAA,CAAI;IAC3D;AAEA;;;;;AAKG;AACI,IAAA,SAAS,CAAC,MAA+D,EAAA;AAC9E,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;AAEjE,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;QACpD;QAEA,IAAI,CAAC,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,CAAA,IAAA,EAAO,qBAAqB,CAAC,MAAM,CAAC,SAAS;QAClG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;AAEvC,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,QAAQ,CAAC,IAAgB,EAAE,OAAwB,EAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAChD;AAEA;;;;;AAKG;IACI,OAAO,GAAA;AACZ,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB,CAAC;QACjF;AAEA,QAAA,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAE3B,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;IAClC;IAEQ,2BAA2B,GAAA;AACjC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS;AAEtD,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACrC,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C;IACF;IAEQ,yBAAyB,GAAA;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI;AAE9C,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,QAAQ;IAClD;IAEQ,aAAa,CAAC,WAAgC,EAAE,QAA2B,EAAA;QACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACrD,QAAA,MAAM,YAAY,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;QAChE,MAAM,WAAW,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;AAE5D,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;AAEvC,YAAA,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAK;AAChC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACnC,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI;AACF,gBAAA,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC;YACnD;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI;oBACF,OAAO,CAAC,OAAO,EAAE;gBACnB;AAAE,gBAAA,MAAM;;gBAER;AACA,gBAAA,MAAM,KAAK;YACb;AAEA,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;AAEvC,QAAA,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAK;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACnC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI;AACF,YAAA,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC;QACnD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI;gBACF,OAAO,CAAC,OAAO,EAAE;YACnB;AAAE,YAAA,MAAM;;YAER;AACA,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,MAAM,iBAAiB,GAAA;AAC7B,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AAC3E,gBAAA,MAAM,KAAK;YACb;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;;;AAIrE,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;YACtC,iBAAiB,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AAEjC,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClC;IACF;IAEQ,YAAY,GAAA;QAClB,MAAM,YAAY,GAAG,SAA8C;AAEnE,QAAA,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG;IAC3B;IAEQ,gBAAgB,CAAC,KAAa,EAAE,MAAc,EAAA;AACpD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAE1D,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;IAC1C;AACD;;;;"}
1
+ {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  const buildInfo = Object.freeze({
2
- version: "0.14.0",
3
- revision: "e4d9d55",
2
+ version: "0.15.1",
3
+ revision: "6f825a8",
4
4
  development: false,
5
5
  });
6
6
 
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Binary codec helpers: base64 decoding and stream decompression.
3
+ *
4
+ * These are zero-dependency wrappers over platform primitives (`atob` and the
5
+ * native `DecompressionStream`), useful for save games, embedded binary blobs,
6
+ * network payloads, and inline-encoded asset data (e.g. base64/gzip tile-layer
7
+ * data in Tiled maps).
8
+ *
9
+ * Decompression is async because `DecompressionStream` is a streaming API.
10
+ * Only the formats the platform implements natively are supported — notably
11
+ * **not** `zstd`, which has no native browser decoder.
12
+ */
13
+ /** Compression formats supported by the native `DecompressionStream`. */
14
+ export type DecompressFormat = 'gzip' | 'deflate' | 'deflate-raw';
15
+ /**
16
+ * Decode a standard base64 string into raw bytes. Whitespace (newlines, spaces)
17
+ * is ignored, so multi-line base64 blocks decode correctly.
18
+ *
19
+ * @throws If the input is not valid base64.
20
+ */
21
+ declare function decodeBase64(input: string): Uint8Array;
22
+ /**
23
+ * Decompress a byte buffer using the native `DecompressionStream`.
24
+ *
25
+ * - `'gzip'` — gzip container (RFC 1952).
26
+ * - `'deflate'` — zlib container (RFC 1950), Tiled's `zlib` compression.
27
+ * - `'deflate-raw'` — raw DEFLATE with no header (RFC 1951).
28
+ *
29
+ * @throws If the platform lacks `DecompressionStream`, or the data is corrupt.
30
+ */
31
+ declare function decompress(bytes: Uint8Array, format: DecompressFormat): Promise<Uint8Array>;
32
+ /**
33
+ * Binary codec facade, grouped as a namespace so the public API carries no
34
+ * loose codec functions.
35
+ */
36
+ export declare const Codec: {
37
+ readonly decodeBase64: typeof decodeBase64;
38
+ readonly decompress: typeof decompress;
39
+ };
40
+ export {};
41
+ //# sourceMappingURL=Codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Codec.d.ts","sourceRoot":"","sources":["../../../src/core/Codec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAElE;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAS/C;AAED;;;;;;;;GAQG;AACH,iBAAe,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC1F;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK;;;CAGR,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Binary codec helpers: base64 decoding and stream decompression.
3
+ *
4
+ * These are zero-dependency wrappers over platform primitives (`atob` and the
5
+ * native `DecompressionStream`), useful for save games, embedded binary blobs,
6
+ * network payloads, and inline-encoded asset data (e.g. base64/gzip tile-layer
7
+ * data in Tiled maps).
8
+ *
9
+ * Decompression is async because `DecompressionStream` is a streaming API.
10
+ * Only the formats the platform implements natively are supported — notably
11
+ * **not** `zstd`, which has no native browser decoder.
12
+ */
13
+ /**
14
+ * Decode a standard base64 string into raw bytes. Whitespace (newlines, spaces)
15
+ * is ignored, so multi-line base64 blocks decode correctly.
16
+ *
17
+ * @throws If the input is not valid base64.
18
+ */
19
+ function decodeBase64(input) {
20
+ const clean = input.replaceAll(/\s+/g, '');
21
+ const binary = atob(clean);
22
+ const length = binary.length;
23
+ const bytes = new Uint8Array(length);
24
+ for (let i = 0; i < length; i++) {
25
+ bytes[i] = binary.charCodeAt(i);
26
+ }
27
+ return bytes;
28
+ }
29
+ /**
30
+ * Decompress a byte buffer using the native `DecompressionStream`.
31
+ *
32
+ * - `'gzip'` — gzip container (RFC 1952).
33
+ * - `'deflate'` — zlib container (RFC 1950), Tiled's `zlib` compression.
34
+ * - `'deflate-raw'` — raw DEFLATE with no header (RFC 1951).
35
+ *
36
+ * @throws If the platform lacks `DecompressionStream`, or the data is corrupt.
37
+ */
38
+ async function decompress(bytes, format) {
39
+ if (typeof DecompressionStream === 'undefined') {
40
+ throw new Error('Codec.decompress requires the native DecompressionStream API.');
41
+ }
42
+ // Feed the input through the decompressor as a single chunk, then drain the
43
+ // output by reading the stream directly. Avoids Blob/Response so the helper
44
+ // works uniformly across browsers, Node, and jsdom test environments.
45
+ const source = new ReadableStream({
46
+ start(controller) {
47
+ controller.enqueue(bytes);
48
+ controller.close();
49
+ },
50
+ });
51
+ const reader = source.pipeThrough(new DecompressionStream(format)).getReader();
52
+ const chunks = [];
53
+ let total = 0;
54
+ for (;;) {
55
+ const { done, value } = await reader.read();
56
+ if (done)
57
+ break;
58
+ chunks.push(value);
59
+ total += value.length;
60
+ }
61
+ const out = new Uint8Array(total);
62
+ let offset = 0;
63
+ for (const chunk of chunks) {
64
+ out.set(chunk, offset);
65
+ offset += chunk.length;
66
+ }
67
+ return out;
68
+ }
69
+ /**
70
+ * Binary codec facade, grouped as a namespace so the public API carries no
71
+ * loose codec functions.
72
+ */
73
+ const Codec = {
74
+ decodeBase64,
75
+ decompress,
76
+ };
77
+
78
+ export { Codec };
79
+ //# sourceMappingURL=Codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Codec.js","sources":["../../../../src/core/Codec.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;AAWG;AAKH;;;;;AAKG;AACH,SAAS,YAAY,CAAC,KAAa,EAAA;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;AAC1C,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1B,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAC5B,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACpC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACjC;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;;;;;;AAQG;AACH,eAAe,UAAU,CAAC,KAAiB,EAAE,MAAwB,EAAA;AACnE,IAAA,IAAI,OAAO,mBAAmB,KAAK,WAAW,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;IAClF;;;;AAKA,IAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAe;AAC9C,QAAA,KAAK,CAAC,UAAU,EAAA;AACd,YAAA,UAAU,CAAC,OAAO,CAAC,KAAqB,CAAC;YACzC,UAAU,CAAC,KAAK,EAAE;QACpB,CAAC;AACF,KAAA,CAAC;AACF,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;IAE9E,MAAM,MAAM,GAAiB,EAAE;IAC/B,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,SAAS;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAC3C,QAAA,IAAI,IAAI;YAAE;AACV,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAClB,QAAA,KAAK,IAAI,KAAK,CAAC,MAAM;IACvB;AAEA,IAAA,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC;AACd,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,QAAA,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AACtB,QAAA,MAAM,IAAI,KAAK,CAAC,MAAM;IACxB;AACA,IAAA,OAAO,GAAG;AACZ;AAEA;;;AAGG;AACI,MAAM,KAAK,GAAG;IACnB,YAAY;IACZ,UAAU;;;;;"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Fixed-timestep accumulator (Gaffer's "Fix Your Timestep"). Converts the
3
+ * variable per-frame delta into a whole number of fixed-size steps, carrying the
4
+ * sub-step remainder across frames as an interpolation {@link FixedTimestep.alpha}.
5
+ *
6
+ * Pure timing logic — no scene or signal coupling — so the loop can drive it and
7
+ * tests can exercise the step/alpha maths directly. The {@link maxSteps} cap is
8
+ * the spiral-of-death guard: when a frame is so long it would need more than
9
+ * `maxSteps` catch-up steps, the surplus whole-step backlog is dropped rather
10
+ * than accumulated (which would make the next frame even longer).
11
+ *
12
+ * @internal
13
+ */
14
+ export declare class FixedTimestep {
15
+ private readonly _stepMs;
16
+ private readonly _maxSteps;
17
+ private _accumulatorMs;
18
+ constructor(_stepMs: number, _maxSteps: number);
19
+ /** The fixed step size in milliseconds. */
20
+ get stepMs(): number;
21
+ /** Leftover fraction `[0, 1)` of a step — the render interpolation factor. */
22
+ get alpha(): number;
23
+ /** Add a frame's elapsed time and return how many fixed steps to run now (capped at `maxSteps`). */
24
+ advance(frameDeltaMs: number): number;
25
+ /** Clear the accumulator (e.g. on start/resume so a paused gap is not caught up). */
26
+ reset(): void;
27
+ }
28
+ //# sourceMappingURL=FixedTimestep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedTimestep.d.ts","sourceRoot":"","sources":["../../../src/core/FixedTimestep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,OAAO,CAAC,cAAc,CAAK;gBAGR,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM;IAOpC,2CAA2C;IAC3C,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,8EAA8E;IAC9E,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,oGAAoG;IAC7F,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA2B5C,qFAAqF;IAC9E,KAAK,IAAI,IAAI;CAGrB"}