@aura3d/engine 4.0.8 → 4.1.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 (329) hide show
  1. package/dist/audio/index.d.ts +1 -0
  2. package/dist/audio/index.d.ts.map +1 -1
  3. package/dist/audio/index.js +1 -0
  4. package/dist/audio/index.js.map +1 -1
  5. package/dist/audio/synth/SampleSlices.d.ts +88 -0
  6. package/dist/audio/synth/SampleSlices.d.ts.map +1 -0
  7. package/dist/audio/synth/SampleSlices.js +185 -0
  8. package/dist/audio/synth/SampleSlices.js.map +1 -0
  9. package/dist/audio/synth/SynthCueBank.d.ts +102 -0
  10. package/dist/audio/synth/SynthCueBank.d.ts.map +1 -0
  11. package/dist/audio/synth/SynthCueBank.js +323 -0
  12. package/dist/audio/synth/SynthCueBank.js.map +1 -0
  13. package/dist/audio/synth/SynthLoops.d.ts +77 -0
  14. package/dist/audio/synth/SynthLoops.d.ts.map +1 -0
  15. package/dist/audio/synth/SynthLoops.js +147 -0
  16. package/dist/audio/synth/SynthLoops.js.map +1 -0
  17. package/dist/audio/synth/index.d.ts +9 -0
  18. package/dist/audio/synth/index.d.ts.map +1 -0
  19. package/dist/audio/synth/index.js +5 -0
  20. package/dist/audio/synth/index.js.map +1 -0
  21. package/dist/audio/synth/notes.d.ts +18 -0
  22. package/dist/audio/synth/notes.d.ts.map +1 -0
  23. package/dist/audio/synth/notes.js +35 -0
  24. package/dist/audio/synth/notes.js.map +1 -0
  25. package/dist/audio/synth/types.d.ts +84 -0
  26. package/dist/audio/synth/types.d.ts.map +1 -0
  27. package/dist/audio/synth/types.js +2 -0
  28. package/dist/audio/synth/types.js.map +1 -0
  29. package/dist/aura3d-cli/cli-help.d.ts.map +1 -1
  30. package/dist/aura3d-cli/cli-help.js +6 -0
  31. package/dist/aura3d-cli/cli-help.js.map +1 -1
  32. package/dist/aura3d-cli/cli.js +33 -0
  33. package/dist/aura3d-cli/cli.js.map +1 -1
  34. package/dist/aura3d-cli/commands/assets/gltfToolkit.d.ts +25 -0
  35. package/dist/aura3d-cli/commands/assets/gltfToolkit.d.ts.map +1 -0
  36. package/dist/aura3d-cli/commands/assets/gltfToolkit.js +59 -0
  37. package/dist/aura3d-cli/commands/assets/gltfToolkit.js.map +1 -0
  38. package/dist/aura3d-cli/commands/assets/importMeshy.d.ts +50 -0
  39. package/dist/aura3d-cli/commands/assets/importMeshy.d.ts.map +1 -0
  40. package/dist/aura3d-cli/commands/assets/importMeshy.js +112 -0
  41. package/dist/aura3d-cli/commands/assets/importMeshy.js.map +1 -0
  42. package/dist/aura3d-cli/commands/assets/index.d.ts +6 -0
  43. package/dist/aura3d-cli/commands/assets/index.d.ts.map +1 -0
  44. package/dist/aura3d-cli/commands/assets/index.js +54 -0
  45. package/dist/aura3d-cli/commands/assets/index.js.map +1 -0
  46. package/dist/aura3d-cli/commands/assets/mergeClips.d.ts +44 -0
  47. package/dist/aura3d-cli/commands/assets/mergeClips.d.ts.map +1 -0
  48. package/dist/aura3d-cli/commands/assets/mergeClips.js +103 -0
  49. package/dist/aura3d-cli/commands/assets/mergeClips.js.map +1 -0
  50. package/dist/aura3d-cli/commands/assets/optimize.d.ts +54 -0
  51. package/dist/aura3d-cli/commands/assets/optimize.d.ts.map +1 -0
  52. package/dist/aura3d-cli/commands/assets/optimize.js +76 -0
  53. package/dist/aura3d-cli/commands/assets/optimize.js.map +1 -0
  54. package/dist/aura3d-cli/commands/assets/optimizeVerb.d.ts +9 -0
  55. package/dist/aura3d-cli/commands/assets/optimizeVerb.d.ts.map +1 -0
  56. package/dist/aura3d-cli/commands/assets/optimizeVerb.js +40 -0
  57. package/dist/aura3d-cli/commands/assets/optimizeVerb.js.map +1 -0
  58. package/dist/aura3d-cli/commands/meshyLedger.d.ts +103 -0
  59. package/dist/aura3d-cli/commands/meshyLedger.d.ts.map +1 -0
  60. package/dist/aura3d-cli/commands/meshyLedger.js +308 -0
  61. package/dist/aura3d-cli/commands/meshyLedger.js.map +1 -0
  62. package/dist/aura3d-cli/commands/prd05/index.d.ts.map +1 -1
  63. package/dist/aura3d-cli/commands/prd05/index.js +8 -2
  64. package/dist/aura3d-cli/commands/prd05/index.js.map +1 -1
  65. package/dist/aura3d-cli/commands/registry.d.ts +1 -0
  66. package/dist/aura3d-cli/commands/registry.d.ts.map +1 -1
  67. package/dist/aura3d-cli/commands/registry.js +1 -0
  68. package/dist/aura3d-cli/commands/registry.js.map +1 -1
  69. package/dist/create-aura3d/index.js +1 -1
  70. package/dist/debug/index.d.ts +2 -0
  71. package/dist/debug/index.d.ts.map +1 -1
  72. package/dist/debug/index.js +1 -0
  73. package/dist/debug/index.js.map +1 -1
  74. package/dist/debug/safety/blackFrame.d.ts +119 -0
  75. package/dist/debug/safety/blackFrame.d.ts.map +1 -0
  76. package/dist/debug/safety/blackFrame.js +326 -0
  77. package/dist/debug/safety/blackFrame.js.map +1 -0
  78. package/dist/debug/safety/diagnosticsPanel.d.ts +70 -0
  79. package/dist/debug/safety/diagnosticsPanel.d.ts.map +1 -0
  80. package/dist/debug/safety/diagnosticsPanel.js +123 -0
  81. package/dist/debug/safety/diagnosticsPanel.js.map +1 -0
  82. package/dist/debug/safety/guard.d.ts +51 -0
  83. package/dist/debug/safety/guard.d.ts.map +1 -0
  84. package/dist/debug/safety/guard.js +64 -0
  85. package/dist/debug/safety/guard.js.map +1 -0
  86. package/dist/debug/safety/index.d.ts +50 -0
  87. package/dist/debug/safety/index.d.ts.map +1 -0
  88. package/dist/debug/safety/index.js +71 -0
  89. package/dist/debug/safety/index.js.map +1 -0
  90. package/dist/debug/safety/switches.d.ts +27 -0
  91. package/dist/debug/safety/switches.d.ts.map +1 -0
  92. package/dist/debug/safety/switches.js +23 -0
  93. package/dist/debug/safety/switches.js.map +1 -0
  94. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  95. package/dist/engine/agent-api/app/createAuraApp.js +6 -0
  96. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  97. package/dist/engine/agent-api/app/frameLoop.d.ts +1 -1
  98. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  99. package/dist/engine/agent-api/app/frameLoop.js +8 -1
  100. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  101. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  102. package/dist/engine/agent-api/app/runtimeNodes.js +15 -0
  103. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  104. package/dist/engine/agent-api/assets/productionModels.d.ts +58 -0
  105. package/dist/engine/agent-api/assets/productionModels.d.ts.map +1 -0
  106. package/dist/engine/agent-api/assets/productionModels.js +103 -0
  107. package/dist/engine/agent-api/assets/productionModels.js.map +1 -0
  108. package/dist/engine/agent-api/compiler/customMaterial.d.ts +12 -0
  109. package/dist/engine/agent-api/compiler/customMaterial.d.ts.map +1 -1
  110. package/dist/engine/agent-api/compiler/customMaterial.js +23 -17
  111. package/dist/engine/agent-api/compiler/customMaterial.js.map +1 -1
  112. package/dist/engine/agent-api/compiler/errors.d.ts +1 -1
  113. package/dist/engine/agent-api/compiler/errors.d.ts.map +1 -1
  114. package/dist/engine/agent-api/compiler/errors.js.map +1 -1
  115. package/dist/engine/agent-api/compiler/lines.d.ts.map +1 -1
  116. package/dist/engine/agent-api/compiler/lines.js +10 -1
  117. package/dist/engine/agent-api/compiler/lines.js.map +1 -1
  118. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  119. package/dist/engine/agent-api/compiler/renderInput.js +8 -0
  120. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  121. package/dist/engine/agent-api/diagnostics.d.ts +5 -0
  122. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  123. package/dist/engine/agent-api/diagnostics.js +15 -1
  124. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  125. package/dist/engine/agent-api/game-kits/ballFlight.d.ts +145 -0
  126. package/dist/engine/agent-api/game-kits/ballFlight.d.ts.map +1 -0
  127. package/dist/engine/agent-api/game-kits/ballFlight.js +308 -0
  128. package/dist/engine/agent-api/game-kits/ballFlight.js.map +1 -0
  129. package/dist/engine/agent-api/game-kits/index.d.ts +9 -5
  130. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -1
  131. package/dist/engine/agent-api/game-kits/index.js +1 -0
  132. package/dist/engine/agent-api/game-kits/index.js.map +1 -1
  133. package/dist/engine/agent-api/game-kits/racketAthleteRig.d.ts +107 -0
  134. package/dist/engine/agent-api/game-kits/racketAthleteRig.d.ts.map +1 -0
  135. package/dist/engine/agent-api/game-kits/racketAthleteRig.js +178 -0
  136. package/dist/engine/agent-api/game-kits/racketAthleteRig.js.map +1 -0
  137. package/dist/engine/agent-api/game-kits/racketGeometry.d.ts +8 -0
  138. package/dist/engine/agent-api/game-kits/racketGeometry.d.ts.map +1 -0
  139. package/dist/engine/agent-api/game-kits/racketGeometry.js +73 -0
  140. package/dist/engine/agent-api/game-kits/racketGeometry.js.map +1 -0
  141. package/dist/engine/agent-api/game-kits/racketScoring.d.ts +53 -0
  142. package/dist/engine/agent-api/game-kits/racketScoring.d.ts.map +1 -0
  143. package/dist/engine/agent-api/game-kits/racketScoring.js +69 -0
  144. package/dist/engine/agent-api/game-kits/racketScoring.js.map +1 -0
  145. package/dist/engine/agent-api/game-kits/racketSports.d.ts +20 -6
  146. package/dist/engine/agent-api/game-kits/racketSports.d.ts.map +1 -1
  147. package/dist/engine/agent-api/game-kits/racketSports.js +15 -74
  148. package/dist/engine/agent-api/game-kits/racketSports.js.map +1 -1
  149. package/dist/engine/agent-api/index.d.ts +7 -0
  150. package/dist/engine/agent-api/index.d.ts.map +1 -1
  151. package/dist/engine/agent-api/index.js +5 -0
  152. package/dist/engine/agent-api/index.js.map +1 -1
  153. package/dist/engine/agent-api/nodes/batched.d.ts.map +1 -1
  154. package/dist/engine/agent-api/nodes/batched.js +63 -3
  155. package/dist/engine/agent-api/nodes/batched.js.map +1 -1
  156. package/dist/engine/agent-api/nodes/batchedState.d.ts +5 -0
  157. package/dist/engine/agent-api/nodes/batchedState.d.ts.map +1 -1
  158. package/dist/engine/agent-api/nodes/batchedState.js +10 -0
  159. package/dist/engine/agent-api/nodes/batchedState.js.map +1 -1
  160. package/dist/engine/agent-api/nodes/instances.js +1 -2
  161. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  162. package/dist/engine/agent-api/nodes/lines.d.ts.map +1 -1
  163. package/dist/engine/agent-api/nodes/lines.js +2 -1
  164. package/dist/engine/agent-api/nodes/lines.js.map +1 -1
  165. package/dist/engine/agent-api/nodes/mergeStatic.d.ts +26 -0
  166. package/dist/engine/agent-api/nodes/mergeStatic.d.ts.map +1 -0
  167. package/dist/engine/agent-api/nodes/mergeStatic.js +126 -0
  168. package/dist/engine/agent-api/nodes/mergeStatic.js.map +1 -0
  169. package/dist/engine/agent-api/nodes/scatter.d.ts +116 -0
  170. package/dist/engine/agent-api/nodes/scatter.d.ts.map +1 -0
  171. package/dist/engine/agent-api/nodes/scatter.js +211 -0
  172. package/dist/engine/agent-api/nodes/scatter.js.map +1 -0
  173. package/dist/engine/agent-api/nodes/scene.d.ts +9 -1
  174. package/dist/engine/agent-api/nodes/scene.d.ts.map +1 -1
  175. package/dist/engine/agent-api/nodes/scene.js +28 -2
  176. package/dist/engine/agent-api/nodes/scene.js.map +1 -1
  177. package/dist/engine/agent-api/nodes/types.d.ts +8 -0
  178. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  179. package/dist/engine/contracts/stubs/game.d.ts +0 -8
  180. package/dist/engine/contracts/stubs/game.d.ts.map +1 -1
  181. package/dist/engine/contracts/stubs/game.js +6 -0
  182. package/dist/engine/contracts/stubs/game.js.map +1 -1
  183. package/dist/engine/deprecated/advanced-runtime.js +2 -2
  184. package/dist/engine/deprecated/apps.js +2 -2
  185. package/dist/engine/deprecated/assets-browser.js +2 -2
  186. package/dist/engine/deprecated/contracts.js +2 -2
  187. package/dist/engine/deprecated/media-node.js +2 -2
  188. package/dist/engine/deprecated/production-runtime.js +2 -2
  189. package/dist/engine/deprecated/rendering-production-runtime.js +2 -2
  190. package/dist/engine/deprecated/rendering-webgpu.js +2 -2
  191. package/dist/engine/deprecated/rendering.js +2 -2
  192. package/dist/engine/deprecated/workflows-production.js +2 -2
  193. package/dist/engine/index.d.ts +1 -0
  194. package/dist/engine/index.d.ts.map +1 -1
  195. package/dist/engine/index.js +1 -0
  196. package/dist/engine/index.js.map +1 -1
  197. package/dist/engine/instances-model/InstancedModel.d.ts.map +1 -1
  198. package/dist/engine/instances-model/InstancedModel.js +2 -5
  199. package/dist/engine/instances-model/InstancedModel.js.map +1 -1
  200. package/dist/engine/production-runtime/TypedGLBActor.d.ts +6 -0
  201. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  202. package/dist/engine/production-runtime/TypedGLBActor.js +8 -1
  203. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  204. package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts +38 -0
  205. package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -0
  206. package/dist/engine/production-runtime/actor/ModelTextureShare.js +65 -0
  207. package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -0
  208. package/dist/engine/public/index.d.ts +71 -67
  209. package/dist/engine/public/index.d.ts.map +1 -1
  210. package/dist/engine/public/index.js +59 -54
  211. package/dist/engine/public/index.js.map +1 -1
  212. package/dist/engine/qa/countedRng.d.ts +16 -0
  213. package/dist/engine/qa/countedRng.d.ts.map +1 -0
  214. package/dist/engine/qa/countedRng.js +40 -0
  215. package/dist/engine/qa/countedRng.js.map +1 -0
  216. package/dist/engine/qa/fixedStepLoop.d.ts +43 -0
  217. package/dist/engine/qa/fixedStepLoop.d.ts.map +1 -0
  218. package/dist/engine/qa/fixedStepLoop.js +83 -0
  219. package/dist/engine/qa/fixedStepLoop.js.map +1 -0
  220. package/dist/engine/qa/hooks.d.ts +80 -0
  221. package/dist/engine/qa/hooks.d.ts.map +1 -0
  222. package/dist/engine/qa/hooks.js +95 -0
  223. package/dist/engine/qa/hooks.js.map +1 -0
  224. package/dist/engine/qa/index.d.ts +10 -0
  225. package/dist/engine/qa/index.d.ts.map +1 -0
  226. package/dist/engine/qa/index.js +6 -0
  227. package/dist/engine/qa/index.js.map +1 -0
  228. package/dist/engine/qa/params.d.ts +38 -0
  229. package/dist/engine/qa/params.d.ts.map +1 -0
  230. package/dist/engine/qa/params.js +35 -0
  231. package/dist/engine/qa/params.js.map +1 -0
  232. package/dist/game/capture/captureFromUrl.d.ts +1 -1
  233. package/dist/game/capture/captureFromUrl.d.ts.map +1 -1
  234. package/dist/game/capture/index.d.ts +1 -1
  235. package/dist/game/capture/index.d.ts.map +1 -1
  236. package/dist/game/components.d.ts +1 -1
  237. package/dist/game/components.d.ts.map +1 -1
  238. package/dist/game/createGame.d.ts +1 -1
  239. package/dist/game/createGame.d.ts.map +1 -1
  240. package/dist/game/createGame.js +1 -1
  241. package/dist/game/createGame.js.map +1 -1
  242. package/dist/game/evidence/beacon.d.ts +1 -1
  243. package/dist/game/evidence/beacon.d.ts.map +1 -1
  244. package/dist/game/flagDefault.d.ts +8 -0
  245. package/dist/game/flagDefault.d.ts.map +1 -0
  246. package/dist/game/flagDefault.js +28 -0
  247. package/dist/game/flagDefault.js.map +1 -0
  248. package/dist/game/index.d.ts +4 -2
  249. package/dist/game/index.d.ts.map +1 -1
  250. package/dist/game/index.js +10 -3
  251. package/dist/game/index.js.map +1 -1
  252. package/dist/game/input/bindingStore.d.ts +87 -0
  253. package/dist/game/input/bindingStore.d.ts.map +1 -0
  254. package/dist/game/input/bindingStore.js +164 -0
  255. package/dist/game/input/bindingStore.js.map +1 -0
  256. package/dist/game/session/GameSession.d.ts +2 -2
  257. package/dist/game/session/GameSession.d.ts.map +1 -1
  258. package/dist/game/session/GameSession.js +1 -1
  259. package/dist/game/session/GameSession.js.map +1 -1
  260. package/dist/rendering/ForwardPass.d.ts +5 -0
  261. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  262. package/dist/rendering/ForwardPass.js +75 -2
  263. package/dist/rendering/ForwardPass.js.map +1 -1
  264. package/dist/rendering/ShaderFailures.d.ts +77 -0
  265. package/dist/rendering/ShaderFailures.d.ts.map +1 -0
  266. package/dist/rendering/ShaderFailures.js +141 -0
  267. package/dist/rendering/ShaderFailures.js.map +1 -0
  268. package/dist/rendering/ShaderLibrary.js +5 -5
  269. package/dist/rendering/ShaderLibraryCore.js +1 -1
  270. package/dist/rendering/WebGL2Device.js +1 -1
  271. package/dist/rendering/WebGL2Device.js.map +1 -1
  272. package/dist/rendering/WebGPUDevice.js +1 -1
  273. package/dist/rendering/index.d.ts +2 -0
  274. package/dist/rendering/index.d.ts.map +1 -1
  275. package/dist/rendering/index.js +2 -0
  276. package/dist/rendering/index.js.map +1 -1
  277. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts +1 -1
  278. package/dist/rendering/output/ToneMappingOperators.glsl.d.ts.map +1 -1
  279. package/dist/rendering/output/ToneMappingOperators.glsl.js +2 -0
  280. package/dist/rendering/output/ToneMappingOperators.glsl.js.map +1 -1
  281. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  282. package/dist/rendering/post/v2Stages.js +4 -0
  283. package/dist/rendering/post/v2Stages.js.map +1 -1
  284. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts +2 -2
  285. package/dist/rendering/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  286. package/dist/rendering/program/chunks/shadow_forward.glsl.js +1 -1
  287. package/dist/rendering/shaders/chunks/author/colorspace.glsl.d.ts +8 -0
  288. package/dist/rendering/shaders/chunks/author/colorspace.glsl.d.ts.map +1 -0
  289. package/dist/rendering/shaders/chunks/author/colorspace.glsl.js +20 -0
  290. package/dist/rendering/shaders/chunks/author/colorspace.glsl.js.map +1 -0
  291. package/dist/rendering/shaders/chunks/author/fog.glsl.d.ts +3 -0
  292. package/dist/rendering/shaders/chunks/author/fog.glsl.d.ts.map +1 -0
  293. package/dist/rendering/shaders/chunks/author/fog.glsl.js +18 -0
  294. package/dist/rendering/shaders/chunks/author/fog.glsl.js.map +1 -0
  295. package/dist/rendering/shaders/chunks/author/index.d.ts +16 -0
  296. package/dist/rendering/shaders/chunks/author/index.d.ts.map +1 -0
  297. package/dist/rendering/shaders/chunks/author/index.js +77 -0
  298. package/dist/rendering/shaders/chunks/author/index.js.map +1 -0
  299. package/dist/rendering/shaders/chunks/author/math.glsl.d.ts +3 -0
  300. package/dist/rendering/shaders/chunks/author/math.glsl.d.ts.map +1 -0
  301. package/dist/rendering/shaders/chunks/author/math.glsl.js +43 -0
  302. package/dist/rendering/shaders/chunks/author/math.glsl.js.map +1 -0
  303. package/dist/rendering/shaders/chunks/author/noise.glsl.d.ts +3 -0
  304. package/dist/rendering/shaders/chunks/author/noise.glsl.d.ts.map +1 -0
  305. package/dist/rendering/shaders/chunks/author/noise.glsl.js +94 -0
  306. package/dist/rendering/shaders/chunks/author/noise.glsl.js.map +1 -0
  307. package/dist/rendering/shaders/chunks/author/sky.glsl.d.ts +3 -0
  308. package/dist/rendering/shaders/chunks/author/sky.glsl.d.ts.map +1 -0
  309. package/dist/rendering/shaders/chunks/author/sky.glsl.js +28 -0
  310. package/dist/rendering/shaders/chunks/author/sky.glsl.js.map +1 -0
  311. package/dist/rendering/shaders/chunks/author/toon.glsl.d.ts +3 -0
  312. package/dist/rendering/shaders/chunks/author/toon.glsl.d.ts.map +1 -0
  313. package/dist/rendering/shaders/chunks/author/toon.glsl.js +21 -0
  314. package/dist/rendering/shaders/chunks/author/toon.glsl.js.map +1 -0
  315. package/dist/rendering/shaders/chunks/author/triplanar.glsl.d.ts +3 -0
  316. package/dist/rendering/shaders/chunks/author/triplanar.glsl.d.ts.map +1 -0
  317. package/dist/rendering/shaders/chunks/author/triplanar.glsl.js +14 -0
  318. package/dist/rendering/shaders/chunks/author/triplanar.glsl.js.map +1 -0
  319. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  320. package/dist/rendering/webgl2/LegacyPost.js +3 -2
  321. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  322. package/package.json +29 -26
  323. package/templates/cinematic-scene/package.json +2 -2
  324. package/templates/mini-game/package.json +2 -2
  325. package/templates/product-viewer/package.json +2 -2
  326. package/templates/production-asset-inspector/package.json +1 -1
  327. package/templates/production-material-studio/package.json +1 -1
  328. package/templates/production-product-configurator/package.json +1 -1
  329. package/templates/production-product-viewer/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ export function createCountedRng(seed = 1) {
2
+ let state = seed >>> 0;
3
+ let currentSeed = seed;
4
+ let count = 0;
5
+ const next = () => {
6
+ count++;
7
+ state = (state + 0x6d2b79f5) >>> 0;
8
+ let t = state;
9
+ t = Math.imul(t ^ (t >>> 15), t | 1);
10
+ t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
11
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
12
+ };
13
+ return {
14
+ get seed() {
15
+ return currentSeed;
16
+ },
17
+ get count() {
18
+ return count;
19
+ },
20
+ next,
21
+ range(min, max) {
22
+ if (min > max)
23
+ throw new RangeError("min must be <= max");
24
+ return min + (max - min) * next();
25
+ },
26
+ int(min, maxExclusive) {
27
+ if (!Number.isInteger(min) || !Number.isInteger(maxExclusive) || min >= maxExclusive) {
28
+ throw new RangeError("int requires integer min < maxExclusive.");
29
+ }
30
+ return min + Math.floor(next() * (maxExclusive - min));
31
+ },
32
+ reset(nextSeed) {
33
+ if (nextSeed !== undefined)
34
+ currentSeed = nextSeed;
35
+ state = currentSeed >>> 0;
36
+ count = 0;
37
+ }
38
+ };
39
+ }
40
+ //# sourceMappingURL=countedRng.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countedRng.js","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/countedRng.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,gBAAgB,CAAC,IAAI,GAAG,CAAC;IACvC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,GAAW,EAAE;QACxB,KAAK,EAAE,CAAC;QACR,KAAK,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;IACF,OAAO;QACL,IAAI,IAAI;YACN,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,KAAK;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI;QACJ,KAAK,CAAC,GAAG,EAAE,GAAG;YACZ,IAAI,GAAG,GAAG,GAAG;gBAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAC1D,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,YAAY;YACnB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;gBACrF,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,IAAI,QAAQ,KAAK,SAAS;gBAAE,WAAW,GAAG,QAAQ,CAAC;YACnD,KAAK,GAAG,WAAW,KAAK,CAAC,CAAC;YAC1B,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ export interface FixedStepLoopOptions {
2
+ /** Advance the simulation by one fixed step (`stepSeconds`). */
3
+ readonly step: (stepSeconds: number, stepIndex: number) => void;
4
+ /** Present the current state; called once per animation frame (after its steps) and once at the end of `advance`. */
5
+ readonly render?: (frameSeconds: number) => void;
6
+ /** Fixed step length in seconds. Default 1/60. */
7
+ readonly stepSeconds?: number;
8
+ /** Most steps one frame may run before the remaining time is dropped. Default 6. */
9
+ readonly maxCatchUpSteps?: number;
10
+ /** A frame longer than this is clamped (tab switches, debugger pauses). Default 0.1. */
11
+ readonly maxFrameSeconds?: number;
12
+ /** Shortest frame time used for the accumulator. Default 0.001. */
13
+ readonly minFrameSeconds?: number;
14
+ /** Manual mode: the loop never advances on its own; only `advance(n)` moves it (QA runs). */
15
+ readonly manual?: boolean;
16
+ /** Returning false pauses the loop (for example before the app is ready) without losing the clock. */
17
+ readonly isActive?: () => boolean;
18
+ /** Injectable clock and scheduler for tests. Default `performance.now` and `requestAnimationFrame`. */
19
+ readonly now?: () => number;
20
+ readonly schedule?: (callback: (nowMs: number) => void) => unknown;
21
+ readonly cancel?: (handle: unknown) => void;
22
+ }
23
+ export interface FixedStepLoop {
24
+ /** Begin scheduling frames. Idempotent. */
25
+ start(): void;
26
+ stop(): void;
27
+ readonly running: boolean;
28
+ manual: boolean;
29
+ /** Total simulation steps executed through this loop (live and manual). */
30
+ readonly steps: number;
31
+ /** Seconds of unsimulated time carried to the next frame. */
32
+ readonly accumulator: number;
33
+ /** Run one animation frame at `nowMs` (what the scheduler calls); returns the steps it executed. */
34
+ tick(nowMs: number): number;
35
+ /** Run exactly `count` steps now, ignoring the clock, then render once. Returns the step count. */
36
+ advance(count: number, beforeStep?: (indexInBatch: number) => void): number;
37
+ }
38
+ /**
39
+ * The accumulator loop every port hand-rolled: variable frame time in, fixed simulation steps out, with the
40
+ * same clamping and catch-up guard, a manual mode for deterministic QA, and one render per frame.
41
+ */
42
+ export declare function createFixedStepLoop(options: FixedStepLoopOptions): FixedStepLoop;
43
+ //# sourceMappingURL=fixedStepLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixedStepLoop.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/fixedStepLoop.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,qHAAqH;IACrH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,wFAAwF;IACxF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,uGAAuG;IACvG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oGAAoG;IACpG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,mGAAmG;IACnG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAC;CAC7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA0EhF"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The accumulator loop every port hand-rolled: variable frame time in, fixed simulation steps out, with the
3
+ * same clamping and catch-up guard, a manual mode for deterministic QA, and one render per frame.
4
+ */
5
+ export function createFixedStepLoop(options) {
6
+ const stepSeconds = options.stepSeconds ?? 1 / 60;
7
+ const maxCatchUp = options.maxCatchUpSteps ?? 6;
8
+ const maxFrame = options.maxFrameSeconds ?? 0.1;
9
+ const minFrame = options.minFrameSeconds ?? 0.001;
10
+ if (!(stepSeconds > 0))
11
+ throw new RangeError("stepSeconds must be > 0");
12
+ const now = options.now ?? (() => (typeof performance === "undefined" ? Date.now() : performance.now()));
13
+ const schedule = options.schedule ?? ((cb) => requestAnimationFrame(cb));
14
+ const cancel = options.cancel ?? ((handle) => cancelAnimationFrame(handle));
15
+ let running = false;
16
+ let handle;
17
+ let last = 0;
18
+ let accumulator = 0;
19
+ let steps = 0;
20
+ const runStep = () => {
21
+ options.step(stepSeconds, steps);
22
+ steps++;
23
+ };
24
+ const loop = {
25
+ manual: options.manual ?? false,
26
+ get running() {
27
+ return running;
28
+ },
29
+ get steps() {
30
+ return steps;
31
+ },
32
+ get accumulator() {
33
+ return accumulator;
34
+ },
35
+ tick(nowMs) {
36
+ const frameSeconds = Math.min(maxFrame, Math.max(minFrame, (nowMs - last) / 1000));
37
+ last = nowMs;
38
+ if (loop.manual || (options.isActive && !options.isActive()))
39
+ return 0;
40
+ accumulator += frameSeconds;
41
+ let executed = 0;
42
+ while (accumulator >= stepSeconds && executed < maxCatchUp) {
43
+ accumulator -= stepSeconds;
44
+ runStep();
45
+ executed++;
46
+ }
47
+ if (executed === maxCatchUp && accumulator >= stepSeconds)
48
+ accumulator = 0;
49
+ options.render?.(frameSeconds);
50
+ return executed;
51
+ },
52
+ advance(count, beforeStep) {
53
+ const n = Math.max(0, Math.trunc(count));
54
+ for (let i = 0; i < n; i++) {
55
+ beforeStep?.(i);
56
+ runStep();
57
+ }
58
+ options.render?.(stepSeconds);
59
+ return n;
60
+ },
61
+ start() {
62
+ if (running)
63
+ return;
64
+ running = true;
65
+ last = now();
66
+ const frame = (nowMs) => {
67
+ if (!running)
68
+ return;
69
+ handle = schedule(frame);
70
+ loop.tick(nowMs);
71
+ };
72
+ handle = schedule(frame);
73
+ },
74
+ stop() {
75
+ running = false;
76
+ if (handle !== undefined)
77
+ cancel(handle);
78
+ handle = undefined;
79
+ }
80
+ };
81
+ return loop;
82
+ }
83
+ //# sourceMappingURL=fixedStepLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixedStepLoop.js","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/fixedStepLoop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /** The slice of an `AuraApp` the generated hooks read; every member is optional so partial apps work. */
2
+ export interface QaHookApp {
3
+ capture?(options: {
4
+ type: "png-blob";
5
+ }): Promise<unknown>;
6
+ diagnostics?(): unknown;
7
+ /** Renderer info: either a getter function or the info object itself (`AuraApp.info`). */
8
+ readonly info?: unknown;
9
+ }
10
+ export interface QaHooksOptions<S, I, X extends object = {}> {
11
+ /** True once the app finished booting. */
12
+ readonly ready: () => boolean;
13
+ /** Plain-data snapshot of the simulation (compared against recorded references). */
14
+ readonly state: () => S;
15
+ /** Advance `n` simulation steps (input applies to the first step) and present once. Default: not installed. */
16
+ readonly stepFrames?: (n: number, input?: Partial<I>) => void;
17
+ /** Rebuild the simulation, optionally with a new seed. */
18
+ readonly reset?: (seed?: number) => void;
19
+ /** Headless replay of a recorded script; returns the trace. */
20
+ readonly replay?: (script: string, ...rest: number[]) => unknown;
21
+ /** Start a run (press Start) without rendering a title flow. */
22
+ readonly begin?: () => void;
23
+ readonly seed?: number;
24
+ /** One compact trace row for the current step and the column names (for capture/replay tooling). */
25
+ readonly traceRow?: () => unknown;
26
+ readonly traceColumns?: readonly string[];
27
+ /** The mounted app (or a getter, because ports create it asynchronously). Powers `frame`, `pixels`, `info`, `diagnostics`. */
28
+ readonly app?: QaHookApp | null | (() => QaHookApp | null | undefined);
29
+ readonly routeHealth?: () => unknown;
30
+ readonly nodeCount?: () => number;
31
+ /** Game-specific hooks merged on top of the standard ones (they win on name clashes). */
32
+ readonly extras?: X;
33
+ /** Install target; defaults to `globalThis`. */
34
+ readonly target?: Record<string, unknown>;
35
+ }
36
+ export interface QaPixels {
37
+ readonly width: number;
38
+ readonly height: number;
39
+ readonly data: Uint8ClampedArray;
40
+ }
41
+ export interface QaStandardHooks<S, I> {
42
+ ready(): boolean;
43
+ readonly seed: number | undefined;
44
+ state(): S;
45
+ stepFrames(n: number, input?: Partial<I>): S;
46
+ reset(seed?: number): void;
47
+ replay(script: string, ...rest: number[]): unknown;
48
+ begin(): void;
49
+ traceRow(): unknown;
50
+ readonly traceColumns: readonly string[] | undefined;
51
+ frame(width?: number, height?: number, quality?: number): Promise<string>;
52
+ pixels(): Promise<QaPixels>;
53
+ info(): unknown;
54
+ diagnostics(): unknown;
55
+ routeHealth(): unknown;
56
+ nodeCount(): number;
57
+ }
58
+ export type QaHooks<S, I, X extends object = {}> = QaStandardHooks<S, I> & X;
59
+ export interface InstalledQaHooks<S, I, X extends object = {}> {
60
+ readonly hooks: QaHooks<S, I, X>;
61
+ /** Name of the global the hooks live on, for example `__AURA_SPLAT_RUSH__`. */
62
+ readonly globalName: string;
63
+ /** Name of the global the first boot error is stored on, for example `__AURA_SPLAT_RUSH_ERROR__`. */
64
+ readonly errorGlobalName: string;
65
+ /** Record a boot/runtime error; the first error wins so later noise cannot hide the cause. */
66
+ reportError(error: unknown): void;
67
+ /** Remove the hooks (and the error global) from the target. */
68
+ uninstall(): void;
69
+ }
70
+ /** `splat-rush` -> `__AURA_SPLAT_RUSH__`. */
71
+ export declare function qaHookGlobalName(name: string): string;
72
+ /** `splat-rush` -> `__AURA_SPLAT_RUSH_ERROR__`. */
73
+ export declare function qaErrorGlobalName(name: string): string;
74
+ /**
75
+ * Install the `window.__AURA_<NAME>__` QA hooks browser specs, capture tools and the live smoke read:
76
+ * `ready`, `state`, `stepFrames`, `reset`, `replay`, `begin`, `traceRow`, `frame` (JPEG data URL), `pixels`
77
+ * (RGBA), `info`, `diagnostics`, `routeHealth` and `nodeCount`, plus any game-specific extras.
78
+ */
79
+ export declare function installQaHooks<S, I = Record<string, unknown>, X extends object = {}>(name: string, options: QaHooksOptions<S, I, X>): InstalledQaHooks<S, I, X>;
80
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /** `splat-rush` -> `__AURA_SPLAT_RUSH__`. */
2
+ export function qaHookGlobalName(name) {
3
+ return `__AURA_${name.trim().toUpperCase().replace(/[^A-Z0-9]+/g, "_").replace(/^_+|_+$/g, "")}__`;
4
+ }
5
+ /** `splat-rush` -> `__AURA_SPLAT_RUSH_ERROR__`. */
6
+ export function qaErrorGlobalName(name) {
7
+ return qaHookGlobalName(name).replace(/__$/, "_ERROR__");
8
+ }
9
+ /**
10
+ * Install the `window.__AURA_<NAME>__` QA hooks browser specs, capture tools and the live smoke read:
11
+ * `ready`, `state`, `stepFrames`, `reset`, `replay`, `begin`, `traceRow`, `frame` (JPEG data URL), `pixels`
12
+ * (RGBA), `info`, `diagnostics`, `routeHealth` and `nodeCount`, plus any game-specific extras.
13
+ */
14
+ export function installQaHooks(name, options) {
15
+ const target = (options.target ?? globalThis);
16
+ const globalName = qaHookGlobalName(name);
17
+ const errorGlobalName = qaErrorGlobalName(name);
18
+ const app = () => {
19
+ const value = typeof options.app === "function" ? options.app() : options.app;
20
+ return value ?? null;
21
+ };
22
+ const capturePng = async () => {
23
+ const current = app();
24
+ if (!current?.capture)
25
+ throw new Error(`${globalName}: no app with capture() is mounted yet`);
26
+ return (await current.capture({ type: "png-blob" }));
27
+ };
28
+ const standard = {
29
+ ready: options.ready,
30
+ seed: options.seed,
31
+ state: options.state,
32
+ stepFrames(n, input) {
33
+ options.stepFrames?.(n, input);
34
+ return options.state();
35
+ },
36
+ reset(seed) {
37
+ options.reset?.(seed);
38
+ },
39
+ replay(script, ...rest) {
40
+ if (!options.replay)
41
+ throw new Error(`${globalName}: replay is not supported by this game`);
42
+ return options.replay(script, ...rest);
43
+ },
44
+ begin() {
45
+ options.begin?.();
46
+ },
47
+ traceRow: () => options.traceRow?.() ?? null,
48
+ traceColumns: options.traceColumns,
49
+ async frame(width = 480, height = 270, quality = 0.7) {
50
+ const blob = await capturePng();
51
+ const bitmap = await createImageBitmap(blob);
52
+ const canvas = document.createElement("canvas");
53
+ canvas.width = width;
54
+ canvas.height = height;
55
+ canvas.getContext("2d").drawImage(bitmap, 0, 0, width, height);
56
+ return canvas.toDataURL("image/jpeg", quality);
57
+ },
58
+ async pixels() {
59
+ const blob = await capturePng();
60
+ const bitmap = await createImageBitmap(blob);
61
+ const canvas = document.createElement("canvas");
62
+ canvas.width = bitmap.width;
63
+ canvas.height = bitmap.height;
64
+ const context = canvas.getContext("2d");
65
+ context.drawImage(bitmap, 0, 0);
66
+ const image = context.getImageData(0, 0, canvas.width, canvas.height);
67
+ return { width: canvas.width, height: canvas.height, data: image.data };
68
+ },
69
+ info: () => {
70
+ const info = app()?.info;
71
+ return (typeof info === "function" ? info() : info) ?? null;
72
+ },
73
+ diagnostics: () => app()?.diagnostics?.() ?? null,
74
+ routeHealth: () => options.routeHealth?.() ?? null,
75
+ nodeCount: () => options.nodeCount?.() ?? 0
76
+ };
77
+ const hooks = { ...standard, ...(options.extras ?? {}) };
78
+ target[globalName] = hooks;
79
+ return {
80
+ hooks,
81
+ globalName,
82
+ errorGlobalName,
83
+ reportError(error) {
84
+ if (target[errorGlobalName])
85
+ return;
86
+ target[errorGlobalName] = String(error?.stack ?? error);
87
+ },
88
+ uninstall() {
89
+ if (target[globalName] === hooks)
90
+ delete target[globalName];
91
+ delete target[errorGlobalName];
92
+ }
93
+ };
94
+ }
95
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { createCountedRng } from "./countedRng.js";
2
+ export type { QaCountedRng } from "./countedRng.js";
3
+ export { readQaParams } from "./params.js";
4
+ export type { QaParamSchema, QaParamSpec, QaParamValues } from "./params.js";
5
+ export { createFixedStepLoop } from "./fixedStepLoop.js";
6
+ export type { FixedStepLoop, FixedStepLoopOptions } from "./fixedStepLoop.js";
7
+ export { installQaHooks, qaErrorGlobalName, qaHookGlobalName } from "./hooks.js";
8
+ export type { InstalledQaHooks, QaHookApp, QaHooks, QaHooksOptions, QaPixels, QaStandardHooks } from "./hooks.js";
9
+ export { createFixedStepLoop as fixedStepLoop } from "./fixedStepLoop.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjF,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { createCountedRng } from "./countedRng.js";
2
+ export { readQaParams } from "./params.js";
3
+ export { createFixedStepLoop } from "./fixedStepLoop.js";
4
+ export { installQaHooks, qaErrorGlobalName, qaHookGlobalName } from "./hooks.js";
5
+ export { createFixedStepLoop as fixedStepLoop } from "./fixedStepLoop.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASjF,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /** One declared URL parameter: how to parse it and what it defaults to. */
2
+ export type QaParamSpec = {
3
+ readonly type: "flag";
4
+ } | {
5
+ readonly type: "number";
6
+ readonly default: number;
7
+ } | {
8
+ readonly type: "int";
9
+ readonly default: number;
10
+ } | {
11
+ readonly type: "string";
12
+ readonly default?: string;
13
+ } | {
14
+ readonly type: "enum";
15
+ readonly values: readonly string[];
16
+ readonly default: string;
17
+ };
18
+ export type QaParamSchema = Readonly<Record<string, QaParamSpec>>;
19
+ export type QaParamValues<S extends QaParamSchema> = {
20
+ readonly [K in keyof S]: S[K] extends {
21
+ readonly type: "flag";
22
+ } ? boolean : S[K] extends {
23
+ readonly type: "number" | "int";
24
+ } ? number : S[K] extends {
25
+ readonly type: "enum";
26
+ readonly default: infer D;
27
+ } ? D extends string ? string : never : S[K] extends {
28
+ readonly type: "string";
29
+ readonly default: string;
30
+ } ? string : string | undefined;
31
+ };
32
+ /**
33
+ * Parse the QA query parameters every port repeats (`manual=1`, `autostart=1`, `warmup=30`, `seed=7`,
34
+ * `quality=low`, ...). A flag is true for `1`, `true` and the bare key; numbers that fail to parse fall back
35
+ * to their default; enums outside `values` fall back to their default.
36
+ */
37
+ export declare function readQaParams<const S extends QaParamSchema>(schema: S, search?: string): QaParamValues<S>;
38
+ //# sourceMappingURL=params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/params.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC3D,OAAO,GACP,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAA;KAAE,GAC9C,MAAM,GACN,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAC/D,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,KAAK,GACjC,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAChE,MAAM,GACN,MAAM,GAAG,SAAS;CAC7B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,EACxD,MAAM,EAAE,CAAC,EACT,MAAM,GAAE,MAA+D,GACtE,aAAa,CAAC,CAAC,CAAC,CA4BlB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Parse the QA query parameters every port repeats (`manual=1`, `autostart=1`, `warmup=30`, `seed=7`,
3
+ * `quality=low`, ...). A flag is true for `1`, `true` and the bare key; numbers that fail to parse fall back
4
+ * to their default; enums outside `values` fall back to their default.
5
+ */
6
+ export function readQaParams(schema, search = typeof location === "undefined" ? "" : location.search) {
7
+ const params = new URLSearchParams(search);
8
+ const out = {};
9
+ for (const [key, spec] of Object.entries(schema)) {
10
+ const raw = params.get(key);
11
+ switch (spec.type) {
12
+ case "flag":
13
+ out[key] = raw !== null && (raw === "" || raw === "1" || raw.toLowerCase() === "true");
14
+ break;
15
+ case "number": {
16
+ const value = raw === null || raw === "" ? Number.NaN : Number(raw);
17
+ out[key] = Number.isFinite(value) ? value : spec.default;
18
+ break;
19
+ }
20
+ case "int": {
21
+ const value = raw === null || raw === "" ? Number.NaN : Number(raw);
22
+ out[key] = Number.isFinite(value) ? Math.trunc(value) : spec.default;
23
+ break;
24
+ }
25
+ case "enum":
26
+ out[key] = raw !== null && spec.values.includes(raw) ? raw : spec.default;
27
+ break;
28
+ case "string":
29
+ out[key] = raw ?? spec.default;
30
+ break;
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../../../packages/engine/src/qa/params.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAS,EACT,SAAiB,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;IAEvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;gBACvF,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,MAAM;gBACT,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC1E,MAAM;YACR,KAAK,QAAQ;gBACX,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC/B,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,GAAuB,CAAC;AACjC,CAAC"}
@@ -8,6 +8,6 @@
8
8
  * (PRD-12 §6.6 / T5.2) fails any game that reads `capture`, `review`,
9
9
  * `overview` or the debug params (T0-29 crash table, #979).
10
10
  */
11
- import type { CaptureContext } from "../../engine/contracts/index.js";
11
+ import type { CaptureContext } from "../../engine/index.js";
12
12
  export declare function captureFromUrl(url?: URL): CaptureContext;
13
13
  //# sourceMappingURL=captureFromUrl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captureFromUrl.d.ts","sourceRoot":"","sources":["../../../../../packages/game/src/capture/captureFromUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,cAAc,CAiBxD"}
1
+ {"version":3,"file":"captureFromUrl.d.ts","sourceRoot":"","sources":["../../../../../packages/game/src/capture/captureFromUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,cAAc,CAiBxD"}
@@ -3,5 +3,5 @@
3
3
  */
4
4
  export { captureFromUrl } from "./captureFromUrl.js";
5
5
  export { lookSignature, lookManifest, lookManifestString, type LookSource, type LookNodeEntry } from "./lookSignature.js";
6
- export type { CaptureContext } from "../../engine/contracts/index.js";
6
+ export type { CaptureContext } from "../../engine/index.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/game/src/capture/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/game/src/capture/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * tracked and inspectable via snapshot() — and carry the same
8
8
  * "primitive-pool" backend label the engine stub used.
9
9
  */
10
- import type { GameShell, Hud, GameFxLayer, TransitionSpec } from "../engine/contracts/index.js";
10
+ import type { GameShell, Hud, GameFxLayer, TransitionSpec } from "../engine/index.js";
11
11
  import type { AuraVec3 } from "../engine/index.js";
12
12
  import type { GameSessionImpl } from "./session/GameSession.js";
13
13
  import { type TransitionDriver } from "./shell/transition.js";
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../packages/game/src/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../packages/game/src/components.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { createGameApp, type AuraAppTarget, type AuraCreateGameAppOptions } from "../engine/index.js";
12
12
  type RuntimeInput = ReturnType<typeof createGameApp>["input"];
13
13
  type MountedRuntime = ReturnType<typeof createGameApp>;
14
- import type { CreateGameOptions, Game, GameScenario } from "../engine/contracts/index.js";
14
+ import type { CreateGameOptions, Game, GameScenario } from "../engine/index.js";
15
15
  import { GameSessionImpl } from "./session/GameSession.js";
16
16
  import { type LifecycleSound } from "./session/lifecycle.js";
17
17
  import { type LookSource } from "./capture/lookSignature.js";
@@ -1 +1 @@
1
- {"version":3,"file":"createGame.d.ts","sourceRoot":"","sources":["../../../../packages/game/src/createGame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EAEb,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAI9B,MAAM,gBAAgB,CAAC;AACxB,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACvD,OAAO,KAAK,EAEV,iBAAiB,EACjB,IAAI,EACJ,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAA0C,KAAK,uBAAuB,EAA+B,MAAM,oBAAoB,CAAC;AAKvI,OAAO,EAAe,KAAK,KAAK,EAAwC,MAAM,eAAe,CAAC;AAO9F,OAAO,EAAmB,KAAK,SAAS,EAAyB,MAAM,gBAAgB,CAAC;AAWxF,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/F,8DAA8D;IAC9D,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,8DAA8D;IAC9D,UAAU,IAAI,UAAU,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAClC;AAED;iFACiF;AACjF,MAAM,MAAM,sBAAsB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAC3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG;IAC1F,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5D,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC7C,CAAC;AAEJ,wBAAgB,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EACvE,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,GAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAiYzB"}
1
+ {"version":3,"file":"createGame.d.ts","sourceRoot":"","sources":["../../../../packages/game/src/createGame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EAEb,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAI9B,MAAM,gBAAgB,CAAC;AACxB,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACvD,OAAO,KAAK,EAEV,iBAAiB,EACjB,IAAI,EACJ,YAAY,EAEb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAA0C,KAAK,uBAAuB,EAA+B,MAAM,oBAAoB,CAAC;AAKvI,OAAO,EAAe,KAAK,KAAK,EAAwC,MAAM,eAAe,CAAC;AAO9F,OAAO,EAAmB,KAAK,SAAS,EAAyB,MAAM,gBAAgB,CAAC;AAWxF,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/F,8DAA8D;IAC9D,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,8DAA8D;IAC9D,UAAU,IAAI,UAAU,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAClC;AAED;iFACiF;AACjF,MAAM,MAAM,sBAAsB,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAC3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG;IAC1F,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5D,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC7C,CAAC;AAEJ,wBAAgB,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EACvE,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,GAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAiYzB"}
@@ -9,7 +9,7 @@
9
9
  * (`__AURA3D_GAME_EVIDENCE__[route]`) install only in DOM contexts.
10
10
  */
11
11
  import { createGameApp, normalizeSceneSnapshot } from "../engine/index.js";
12
- import { StubTimeController } from "../engine/contracts/index.js";
12
+ import { StubTimeController } from "../engine/index.js";
13
13
  import { GameSessionImpl } from "./session/GameSession.js";
14
14
  import { awaitFirstPresentedDraw, drawCallsOf } from "./session/presented.js";
15
15
  import { attachSessionLifecycle } from "./session/lifecycle.js";