@iwsdk/core 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +136 -8
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +1 -0
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +16 -2
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/camera/camera-system.d.ts.map +1 -1
  42. package/dist/camera/camera-system.js +5 -3
  43. package/dist/camera/camera-system.js.map +1 -1
  44. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  45. package/dist/depth/depth-sensing-system.js +31 -10
  46. package/dist/depth/depth-sensing-system.js.map +1 -1
  47. package/dist/ecs/builtin-components.d.ts +1239 -0
  48. package/dist/ecs/builtin-components.d.ts.map +1 -0
  49. package/dist/ecs/builtin-components.js +87 -0
  50. package/dist/ecs/builtin-components.js.map +1 -0
  51. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  52. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  53. package/dist/ecs/component-editor-metadata.js +19 -0
  54. package/dist/ecs/component-editor-metadata.js.map +1 -0
  55. package/dist/ecs/component-manifest.d.ts +24 -0
  56. package/dist/ecs/component-manifest.d.ts.map +1 -0
  57. package/dist/ecs/component-manifest.js +121 -0
  58. package/dist/ecs/component-manifest.js.map +1 -0
  59. package/dist/ecs/component.d.ts +1 -0
  60. package/dist/ecs/component.d.ts.map +1 -1
  61. package/dist/ecs/entity.d.ts +20 -2
  62. package/dist/ecs/entity.d.ts.map +1 -1
  63. package/dist/ecs/entity.js +59 -3
  64. package/dist/ecs/entity.js.map +1 -1
  65. package/dist/ecs/index.d.ts +3 -1
  66. package/dist/ecs/index.d.ts.map +1 -1
  67. package/dist/ecs/system.d.ts +9 -0
  68. package/dist/ecs/system.d.ts.map +1 -1
  69. package/dist/ecs/system.js.map +1 -1
  70. package/dist/ecs/world.d.ts +158 -4
  71. package/dist/ecs/world.d.ts.map +1 -1
  72. package/dist/ecs/world.js +304 -5
  73. package/dist/ecs/world.js.map +1 -1
  74. package/dist/environment/dome-gradient.d.ts +2 -1
  75. package/dist/environment/dome-gradient.d.ts.map +1 -1
  76. package/dist/environment/dome-gradient.js +2 -1
  77. package/dist/environment/dome-gradient.js.map +1 -1
  78. package/dist/environment/environment-system.d.ts +19 -3
  79. package/dist/environment/environment-system.d.ts.map +1 -1
  80. package/dist/environment/environment-system.js +78 -48
  81. package/dist/environment/environment-system.js.map +1 -1
  82. package/dist/environment/gradient-environment.d.ts.map +1 -1
  83. package/dist/environment/gradient-environment.js +13 -7
  84. package/dist/environment/gradient-environment.js.map +1 -1
  85. package/dist/environment/scene-ar-environment.d.ts +39 -0
  86. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  87. package/dist/environment/scene-ar-environment.js +93 -0
  88. package/dist/environment/scene-ar-environment.js.map +1 -0
  89. package/dist/grab/grab-helpers.d.ts +39 -0
  90. package/dist/grab/grab-helpers.d.ts.map +1 -0
  91. package/dist/grab/grab-helpers.js +59 -0
  92. package/dist/grab/grab-helpers.js.map +1 -0
  93. package/dist/grab/grab-system.d.ts +45 -0
  94. package/dist/grab/grab-system.d.ts.map +1 -1
  95. package/dist/grab/grab-system.js +67 -5
  96. package/dist/grab/grab-system.js.map +1 -1
  97. package/dist/grab/grab-warnings.d.ts +14 -0
  98. package/dist/grab/grab-warnings.d.ts.map +1 -0
  99. package/dist/grab/grab-warnings.js +53 -0
  100. package/dist/grab/grab-warnings.js.map +1 -0
  101. package/dist/grab/handles.d.ts.map +1 -1
  102. package/dist/grab/handles.js +8 -3
  103. package/dist/grab/handles.js.map +1 -1
  104. package/dist/index.d.ts +4 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +42 -16
  107. package/dist/index.js.map +1 -1
  108. package/dist/init/world-initializer.d.ts +11 -7
  109. package/dist/init/world-initializer.d.ts.map +1 -1
  110. package/dist/init/world-initializer.js +118 -57
  111. package/dist/init/world-initializer.js.map +1 -1
  112. package/dist/init/xr.d.ts +0 -1
  113. package/dist/init/xr.d.ts.map +1 -1
  114. package/dist/init/xr.js +12 -3
  115. package/dist/init/xr.js.map +1 -1
  116. package/dist/input/input-system.d.ts.map +1 -1
  117. package/dist/input/input-system.js +26 -11
  118. package/dist/input/input-system.js.map +1 -1
  119. package/dist/layers/xr-layer-state.d.ts +47 -0
  120. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  121. package/dist/layers/xr-layer-state.js +23 -0
  122. package/dist/layers/xr-layer-state.js.map +1 -0
  123. package/dist/layers/xr-layer-system.d.ts +45 -93
  124. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  125. package/dist/layers/xr-layer-system.js +4 -25
  126. package/dist/layers/xr-layer-system.js.map +1 -1
  127. package/dist/level/index.d.ts +6 -2
  128. package/dist/level/index.d.ts.map +1 -1
  129. package/dist/level/level-component-applier.d.ts +24 -0
  130. package/dist/level/level-component-applier.d.ts.map +1 -0
  131. package/dist/level/level-component-applier.js +199 -0
  132. package/dist/level/level-component-applier.js.map +1 -0
  133. package/dist/level/level-player-rig.d.ts +17 -0
  134. package/dist/level/level-player-rig.d.ts.map +1 -0
  135. package/dist/level/level-player-rig.js +113 -0
  136. package/dist/level/level-player-rig.js.map +1 -0
  137. package/dist/level/level-scene-environment.d.ts +28 -0
  138. package/dist/level/level-scene-environment.d.ts.map +1 -0
  139. package/dist/level/level-scene-environment.js +121 -0
  140. package/dist/level/level-scene-environment.js.map +1 -0
  141. package/dist/level/level-scene-json-importer.d.ts +53 -0
  142. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  143. package/dist/level/level-scene-json-importer.js +256 -0
  144. package/dist/level/level-scene-json-importer.js.map +1 -0
  145. package/dist/level/level-scene-material.d.ts +22 -0
  146. package/dist/level/level-scene-material.d.ts.map +1 -0
  147. package/dist/level/level-scene-material.js +231 -0
  148. package/dist/level/level-scene-material.js.map +1 -0
  149. package/dist/level/level-scene-object.d.ts +49 -0
  150. package/dist/level/level-scene-object.d.ts.map +1 -0
  151. package/dist/level/level-scene-object.js +396 -0
  152. package/dist/level/level-scene-object.js.map +1 -0
  153. package/dist/level/level-scene-primitive.d.ts +21 -0
  154. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  155. package/dist/level/level-scene-primitive.js +159 -0
  156. package/dist/level/level-scene-primitive.js.map +1 -0
  157. package/dist/level/level-system.d.ts +14 -20
  158. package/dist/level/level-system.d.ts.map +1 -1
  159. package/dist/level/level-system.js +114 -49
  160. package/dist/level/level-system.js.map +1 -1
  161. package/dist/lighting/index.d.ts +10 -0
  162. package/dist/lighting/index.d.ts.map +1 -0
  163. package/dist/lighting/index.js +4 -0
  164. package/dist/lighting/index.js.map +1 -0
  165. package/dist/lighting/light-binding.d.ts +76 -0
  166. package/dist/lighting/light-binding.d.ts.map +1 -0
  167. package/dist/lighting/light-binding.js +229 -0
  168. package/dist/lighting/light-binding.js.map +1 -0
  169. package/dist/lighting/light-components.d.ts +885 -0
  170. package/dist/lighting/light-components.d.ts.map +1 -0
  171. package/dist/lighting/light-components.js +146 -0
  172. package/dist/lighting/light-components.js.map +1 -0
  173. package/dist/lighting/light-system.d.ts +919 -0
  174. package/dist/lighting/light-system.d.ts.map +1 -0
  175. package/dist/lighting/light-system.js +244 -0
  176. package/dist/lighting/light-system.js.map +1 -0
  177. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  178. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  179. package/dist/locomotion/locomotion-environment.js +22 -0
  180. package/dist/locomotion/locomotion-environment.js.map +1 -0
  181. package/dist/locomotion/locomotion.d.ts +5 -34
  182. package/dist/locomotion/locomotion.d.ts.map +1 -1
  183. package/dist/locomotion/locomotion.js +33 -31
  184. package/dist/locomotion/locomotion.js.map +1 -1
  185. package/dist/locomotion/materials/line.js +1 -1
  186. package/dist/locomotion/slide.d.ts.map +1 -1
  187. package/dist/locomotion/slide.js +2 -2
  188. package/dist/locomotion/slide.js.map +1 -1
  189. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  190. package/dist/mcp/ecs-debug-tools.js +10 -2
  191. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  192. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  193. package/dist/mcp/mcp-runtime.js +4 -1
  194. package/dist/mcp/mcp-runtime.js.map +1 -1
  195. package/dist/mcp/scene-tools.d.ts +152 -1
  196. package/dist/mcp/scene-tools.d.ts.map +1 -1
  197. package/dist/mcp/scene-tools.js +538 -8
  198. package/dist/mcp/scene-tools.js.map +1 -1
  199. package/dist/physics/index.js +11 -4
  200. package/dist/physics/index.js.map +1 -1
  201. package/dist/physics/physics-system.d.ts +704 -11
  202. package/dist/physics/physics-system.d.ts.map +1 -1
  203. package/dist/physics/physics-system.js +307 -25
  204. package/dist/physics/physics-system.js.map +1 -1
  205. package/dist/physics/physicsBody.d.ts +40 -1
  206. package/dist/physics/physicsBody.d.ts.map +1 -1
  207. package/dist/physics/physicsBody.js +39 -0
  208. package/dist/physics/physicsBody.js.map +1 -1
  209. package/dist/physics/physicsManipulation.d.ts +1 -1
  210. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  211. package/dist/physics/physicsShape.d.ts +5 -3
  212. package/dist/physics/physicsShape.d.ts.map +1 -1
  213. package/dist/physics/physicsShape.js +2 -1
  214. package/dist/physics/physicsShape.js.map +1 -1
  215. package/dist/physics/utils.d.ts +10 -0
  216. package/dist/physics/utils.d.ts.map +1 -1
  217. package/dist/physics/utils.js +82 -48
  218. package/dist/physics/utils.js.map +1 -1
  219. package/dist/project/index.d.ts +11 -0
  220. package/dist/project/index.d.ts.map +1 -0
  221. package/dist/project/index.js +5 -0
  222. package/dist/project/index.js.map +1 -0
  223. package/dist/project/normalize.d.ts +19 -0
  224. package/dist/project/normalize.d.ts.map +1 -0
  225. package/dist/project/normalize.js +206 -0
  226. package/dist/project/normalize.js.map +1 -0
  227. package/dist/project/paths.d.ts +21 -0
  228. package/dist/project/paths.d.ts.map +1 -0
  229. package/dist/project/paths.js +75 -0
  230. package/dist/project/paths.js.map +1 -0
  231. package/dist/project/types.d.ts +159 -0
  232. package/dist/project/types.d.ts.map +1 -0
  233. package/dist/project/types.js +11 -0
  234. package/dist/project/types.js.map +1 -0
  235. package/dist/project/validation.d.ts +17 -0
  236. package/dist/project/validation.d.ts.map +1 -0
  237. package/dist/project/validation.js +501 -0
  238. package/dist/project/validation.js.map +1 -0
  239. package/dist/scene-understanding/scene-understanding-system.d.ts +23 -2
  240. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  241. package/dist/scene-understanding/scene-understanding-system.js +76 -54
  242. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  243. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  244. package/dist/transform/transform-component.d.ts +32 -0
  245. package/dist/transform/transform-component.d.ts.map +1 -0
  246. package/dist/transform/transform-component.js +24 -0
  247. package/dist/transform/transform-component.js.map +1 -0
  248. package/dist/transform/transform.d.ts +9 -42
  249. package/dist/transform/transform.d.ts.map +1 -1
  250. package/dist/transform/transform.js +8 -25
  251. package/dist/transform/transform.js.map +1 -1
  252. package/dist/ui/document.d.ts +9 -2
  253. package/dist/ui/document.d.ts.map +1 -1
  254. package/dist/ui/document.js +30 -5
  255. package/dist/ui/document.js.map +1 -1
  256. package/dist/ui/follow-component.d.ts +57 -0
  257. package/dist/ui/follow-component.d.ts.map +1 -0
  258. package/dist/ui/follow-component.js +38 -0
  259. package/dist/ui/follow-component.js.map +1 -0
  260. package/dist/ui/follow.d.ts +28 -102
  261. package/dist/ui/follow.d.ts.map +1 -1
  262. package/dist/ui/follow.js +10 -48
  263. package/dist/ui/follow.js.map +1 -1
  264. package/dist/ui/index.d.ts +3 -0
  265. package/dist/ui/index.d.ts.map +1 -1
  266. package/dist/ui/panel-components.d.ts +29 -0
  267. package/dist/ui/panel-components.d.ts.map +1 -0
  268. package/dist/ui/panel-components.js +22 -0
  269. package/dist/ui/panel-components.js.map +1 -0
  270. package/dist/ui/screenspace-component.d.ts +39 -0
  271. package/dist/ui/screenspace-component.d.ts.map +1 -0
  272. package/dist/ui/screenspace-component.js +21 -0
  273. package/dist/ui/screenspace-component.js.map +1 -0
  274. package/dist/ui/screenspace.d.ts +47 -135
  275. package/dist/ui/screenspace.d.ts.map +1 -1
  276. package/dist/ui/screenspace.js +127 -65
  277. package/dist/ui/screenspace.js.map +1 -1
  278. package/dist/ui/ui.d.ts +20 -122
  279. package/dist/ui/ui.d.ts.map +1 -1
  280. package/dist/ui/ui.js +44 -107
  281. package/dist/ui/ui.js.map +1 -1
  282. package/dist/ui/uikitml-asset.d.ts +25 -0
  283. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  284. package/dist/ui/uikitml-asset.js +56 -0
  285. package/dist/ui/uikitml-asset.js.map +1 -0
  286. package/dist/ui/uikitml.d.ts +41 -0
  287. package/dist/ui/uikitml.d.ts.map +1 -0
  288. package/dist/ui/uikitml.js +119 -0
  289. package/dist/ui/uikitml.js.map +1 -0
  290. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  291. package/dist/version.d.ts +1 -1
  292. package/dist/version.js +1 -1
  293. package/dist/visibility/visibility-component.d.ts +14 -0
  294. package/dist/visibility/visibility-component.d.ts.map +1 -0
  295. package/dist/visibility/visibility-component.js +15 -0
  296. package/dist/visibility/visibility-component.js.map +1 -0
  297. package/dist/visibility/visibility.d.ts +3 -10
  298. package/dist/visibility/visibility.d.ts.map +1 -1
  299. package/dist/visibility/visibility.js +9 -12
  300. package/dist/visibility/visibility.js.map +1 -1
  301. package/package.json +48 -19
  302. package/LICENSE +0 -21
  303. package/dist/ecs/component-registry.d.ts +0 -54
  304. package/dist/ecs/component-registry.d.ts.map +0 -1
  305. package/dist/ecs/component-registry.js +0 -86
  306. package/dist/ecs/component-registry.js.map +0 -1
  307. package/dist/level/level-entity-creator.d.ts +0 -27
  308. package/dist/level/level-entity-creator.d.ts.map +0 -1
  309. package/dist/level/level-entity-creator.js +0 -108
  310. package/dist/level/level-entity-creator.js.map +0 -1
  311. package/dist/level/level-glxf-importer.d.ts +0 -23
  312. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  313. package/dist/level/level-glxf-importer.js +0 -40
  314. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -1,10 +1,15 @@
1
+ import { clone } from 'three/examples/jsm/utils/SkeletonUtils.js';
1
2
  import '../runtime/three.js';
2
3
  import { CacheManager } from './cache-manager.js';
3
4
  import { AudioAssetLoader } from './loaders/audio-loader.js';
4
- import { GLTFAssetLoader } from './loaders/gltf-loader.js';
5
+ import { DEFAULT_ASSET_LOAD_TIMEOUT_MS, assertAssetLoadTimeout } from './loaders/cached-asset-load.js';
6
+ export { AssetLoadTimeoutError } from './loaders/cached-asset-load.js';
7
+ import { GLTFAssetLoader, DEFAULT_MAX_MODEL_PAYLOAD_BYTES, DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES, disposeGLTFResources } from './loaders/gltf-loader.js';
8
+ export { GLTFPayloadLimitError } from './loaders/gltf-loader.js';
5
9
  import { HDRTextureAssetLoader } from './loaders/hdr-texture-loader.js';
6
10
  import { TextureAssetLoader } from './loaders/texture-loader.js';
7
- import { LoadingManager } from 'three';
11
+ import { UIKitMLAssetLoader } from './loaders/uikitml-loader.js';
12
+ import { SphereGeometry, CylinderGeometry, CapsuleGeometry, BoxGeometry, Mesh, MeshStandardMaterial, LoadingManager, Box3 } from 'three';
8
13
 
9
14
  /**
10
15
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -22,7 +27,178 @@ var AssetType;
22
27
  AssetType["Audio"] = "audio";
23
28
  AssetType["Texture"] = "texture";
24
29
  AssetType["HDRTexture"] = "hdr-texture";
30
+ AssetType["UIKitML"] = "uikitml";
25
31
  })(AssetType || (AssetType = {}));
32
+ /** Non-enumerable marker carried by manifests created with defineAssets. */
33
+ const ASSET_MANIFEST_BRAND = Symbol('@iwsdk/core/asset-manifest/v1');
34
+ /**
35
+ * Declare the complete application asset catalog shared by runtime/editor.
36
+ * The returned container is frozen; entry objects and Three.js prototypes are
37
+ * intentionally left mutable and retain their original identities.
38
+ */
39
+ function defineAssets(assets) {
40
+ if (assets == null || typeof assets !== 'object' || Array.isArray(assets)) {
41
+ throw new Error('Asset manifest must be an object');
42
+ }
43
+ for (const [id, entry] of Object.entries(assets)) {
44
+ if (id.trim().length === 0) {
45
+ throw new Error('Asset IDs must not be blank');
46
+ }
47
+ assertAssetManifestEntry(id, entry);
48
+ }
49
+ const manifest = { ...assets };
50
+ Object.defineProperty(manifest, ASSET_MANIFEST_BRAND, {
51
+ configurable: false,
52
+ enumerable: false,
53
+ value: 1,
54
+ writable: false,
55
+ });
56
+ return Object.freeze(manifest);
57
+ }
58
+ /** Structured identity for critical, background, and on-demand failures. */
59
+ class AssetLoadError extends Error {
60
+ constructor(assetId, url, cause) {
61
+ super(`Failed to load asset "${assetId}" from "${url}": ${errorMessage(cause)}`);
62
+ this.assetId = assetId;
63
+ this.url = url;
64
+ this.cause = cause;
65
+ this.name = 'AssetLoadError';
66
+ }
67
+ }
68
+ const BUILTIN_PRIMITIVE_ASSETS = Object.freeze({
69
+ 'primitive-box': createPrimitivePrototype('Box', new BoxGeometry(0.5, 0.5, 0.5)),
70
+ 'primitive-capsule': createPrimitivePrototype('Capsule', new CapsuleGeometry(0.2, 0.5, 4, 12)),
71
+ 'primitive-cylinder': createPrimitivePrototype('Cylinder', new CylinderGeometry(0.25, 0.25, 0.6, 24)),
72
+ 'primitive-sphere': createPrimitivePrototype('Sphere', new SphereGeometry(0.3, 24, 16)),
73
+ });
74
+ /**
75
+ * World-owned view of the application's renderable asset manifest.
76
+ *
77
+ * The registry never places registered prototypes into a scene. Each request
78
+ * returns a hierarchy clone while retaining shared geometry and material
79
+ * references, matching the existing glTF cache behavior.
80
+ */
81
+ class RenderableAssetRegistry {
82
+ constructor(manifest = {}, options = {}) {
83
+ this.options = options;
84
+ this.manifest = { ...BUILTIN_PRIMITIVE_ASSETS, ...manifest };
85
+ for (const [id, entry] of Object.entries(this.manifest)) {
86
+ if (isObject3DManifestEntry(entry) && entry.parent != null) {
87
+ throw new Error(`Renderable asset prototype "${id}" must not have a parent`);
88
+ }
89
+ }
90
+ AssetManager.registerManifest(this.manifest);
91
+ }
92
+ async preload() {
93
+ await AssetManager.preloadAssets(this.manifest);
94
+ }
95
+ has(id) {
96
+ return this.kind(id) != null;
97
+ }
98
+ /** Return whether an id instantiates as a conventional model hierarchy. */
99
+ hasRenderable(id) {
100
+ return isRenderableManifestEntry(this.manifest[id]);
101
+ }
102
+ /** Return whether an id is available to authoring, including UIKitML. */
103
+ hasAuthoringAsset(id) {
104
+ return this.kind(id) != null;
105
+ }
106
+ /** Resolve the authoring kind for a manifest id. */
107
+ kind(id) {
108
+ const entry = this.manifest[id];
109
+ if (entry == null) {
110
+ return undefined;
111
+ }
112
+ if (isObject3DManifestEntry(entry)) {
113
+ return isPrimitivePrototype(entry) ? 'primitive' : 'procedural';
114
+ }
115
+ if (entry.type === AssetType.GLTF) {
116
+ return 'gltf';
117
+ }
118
+ if (entry.type === AssetType.UIKitML) {
119
+ return 'uikitml';
120
+ }
121
+ return undefined;
122
+ }
123
+ list() {
124
+ const result = [];
125
+ for (const [id, entry] of Object.entries(this.manifest)) {
126
+ if (isObject3DManifestEntry(entry)) {
127
+ result.push({
128
+ bounds: boundsForPrototype(entry),
129
+ id,
130
+ kind: isPrimitivePrototype(entry) ? 'primitive' : 'procedural',
131
+ name: entry.name || id,
132
+ });
133
+ }
134
+ else if (entry.type === AssetType.GLTF) {
135
+ result.push({
136
+ bounds: this.bounds(id),
137
+ id,
138
+ kind: 'gltf',
139
+ name: entry.name || id,
140
+ });
141
+ }
142
+ }
143
+ return result;
144
+ }
145
+ /** List placeable model and UIKitML assets for authoring tools. */
146
+ catalog() {
147
+ const result = this.list();
148
+ for (const [id, entry] of Object.entries(this.manifest)) {
149
+ if (!isObject3DManifestEntry(entry) && entry.type === AssetType.UIKitML) {
150
+ result.push({
151
+ id,
152
+ kind: 'uikitml',
153
+ name: entry.name || id,
154
+ url: entry.url,
155
+ });
156
+ }
157
+ }
158
+ return result;
159
+ }
160
+ bounds(id) {
161
+ const entry = this.manifest[id];
162
+ if (entry == null) {
163
+ return undefined;
164
+ }
165
+ if (isObject3DManifestEntry(entry)) {
166
+ return boundsForPrototype(entry);
167
+ }
168
+ if (entry.type !== AssetType.GLTF) {
169
+ return undefined;
170
+ }
171
+ const gltf = AssetManager.getGLTF(id, { shared: true });
172
+ return gltf == null ? undefined : boundsForPrototype(gltf.scene);
173
+ }
174
+ async instantiate(id) {
175
+ const entry = this.manifest[id];
176
+ if (entry == null) {
177
+ throw new Error(`Unknown renderable asset "${id}"`);
178
+ }
179
+ if (isObject3DManifestEntry(entry)) {
180
+ return clone(entry);
181
+ }
182
+ if (entry.type === AssetType.UIKitML) {
183
+ if (this.options.instantiateUIKitML == null) {
184
+ throw new Error(`UIKitML asset "${id}" requires the spatialUI feature`);
185
+ }
186
+ if (entry.priority === 'lazy') {
187
+ await AssetManager.loadUIKitMLById(id);
188
+ }
189
+ return this.options.instantiateUIKitML(id);
190
+ }
191
+ if (entry.type !== AssetType.GLTF) {
192
+ throw new Error(`Manifest entry "${id}" is not a renderable asset`);
193
+ }
194
+ await AssetManager.loadGLTFById(id);
195
+ const gltf = AssetManager.getGLTF(id);
196
+ if (gltf == null) {
197
+ throw new Error(`Renderable glTF asset "${id}" failed to load`);
198
+ }
199
+ return gltf.scene;
200
+ }
201
+ }
26
202
  /**
27
203
  * Centralized asset loader with caching and priority‑based preloading.
28
204
  *
@@ -37,48 +213,110 @@ class AssetManager {
37
213
  * Initialize loaders and bind to the current world/renderer.
38
214
  */
39
215
  static init(renderer, world, options = {}) {
216
+ var _a;
40
217
  this.world = world;
41
218
  this.loadingManager = new LoadingManager();
219
+ this.manifestEntries.clear();
220
+ this.loadTimeoutMs = (_a = options.loadTimeoutMs) !== null && _a !== void 0 ? _a : DEFAULT_ASSET_LOAD_TIMEOUT_MS;
221
+ assertAssetLoadTimeout(this.loadTimeoutMs);
42
222
  // Initialize all specialized loaders
43
223
  AudioAssetLoader.init(this.loadingManager);
44
224
  GLTFAssetLoader.init(this.loadingManager, renderer, options);
45
225
  TextureAssetLoader.init(this.loadingManager);
46
226
  HDRTextureAssetLoader.init(this.loadingManager);
47
227
  }
228
+ /** Configure the finite timeout used by subsequent asset loads. */
229
+ static setLoadTimeout(timeoutMs) {
230
+ assertAssetLoadTimeout(timeoutMs);
231
+ this.loadTimeoutMs = timeoutMs;
232
+ }
233
+ /** Register catalog identity without starting network requests. */
234
+ static registerManifest(manifest) {
235
+ this.manifestEntries.clear();
236
+ for (const [id, entry] of Object.entries(manifest)) {
237
+ if (isObject3DManifestEntry(entry)) {
238
+ continue;
239
+ }
240
+ this.manifestEntries.set(id, entry);
241
+ CacheManager.setKeyToUrl(id, entry.url);
242
+ }
243
+ }
48
244
  /** Preload assets with critical/background prioritization. */
49
245
  static async preloadAssets(manifest) {
50
- // Separate by priority
51
- const criticalAssets = Object.entries(manifest).filter(([_, config]) => {
52
- return config.priority !== 'background';
246
+ this.registerManifest(manifest);
247
+ const loadableAssets = Object.entries(manifest).filter((entry) => !isObject3DManifestEntry(entry[1]));
248
+ const criticalAssets = loadableAssets.filter(([_, config]) => {
249
+ return config.priority !== 'background' && config.priority !== 'lazy';
53
250
  });
54
- const backgroundAssets = Object.entries(manifest).filter(([_, config]) => {
251
+ const backgroundAssets = loadableAssets.filter(([_, config]) => {
55
252
  return config.priority === 'background';
56
253
  });
57
- // Phase 1: Load critical assets (blocking)
58
254
  const criticalPromises = criticalAssets.map(([key, config]) => {
59
- CacheManager.setKeyToUrl(key, config.url);
60
255
  return this.loadAssetByType(config.url, config.type, key);
61
256
  });
62
257
  await Promise.all(criticalPromises);
63
- // Phase 2: Start background loading (non-blocking)
64
258
  backgroundAssets.forEach(([key, config]) => {
65
- CacheManager.setKeyToUrl(key, config.url);
66
259
  this.loadAssetByType(config.url, config.type, key).catch((err) => console.warn(`Background asset failed: ${key}`, err));
67
260
  });
68
261
  }
69
- static async loadAssetByType(url, type, key) {
70
- switch (type) {
71
- case AssetType.GLTF:
72
- return GLTFAssetLoader.loadGLTF(url, key);
73
- case AssetType.Audio:
74
- return AudioAssetLoader.loadAudio(url);
75
- case AssetType.Texture:
76
- return TextureAssetLoader.loadTexture(url);
77
- case AssetType.HDRTexture:
78
- return HDRTextureAssetLoader.loadHDRTexture(url);
79
- default:
80
- throw new Error(`Unsupported asset type: ${type}`);
262
+ static async loadAssetByType(url, type, assetId = url) {
263
+ CacheManager.setKeyToUrl(assetId, url);
264
+ try {
265
+ switch (type) {
266
+ case AssetType.GLTF:
267
+ return await GLTFAssetLoader.loadGLTF(url, assetId, this.loadTimeoutMs);
268
+ case AssetType.Audio:
269
+ return await AudioAssetLoader.loadAudio(url, this.loadTimeoutMs);
270
+ case AssetType.Texture:
271
+ return await TextureAssetLoader.loadTexture(url, this.loadTimeoutMs);
272
+ case AssetType.HDRTexture:
273
+ return await HDRTextureAssetLoader.loadHDRTexture(url, this.loadTimeoutMs);
274
+ case AssetType.UIKitML:
275
+ return await UIKitMLAssetLoader.loadUIKitML(url, assetId, false, this.loadTimeoutMs);
276
+ default:
277
+ throw new Error(`Unsupported asset type: ${type}`);
278
+ }
81
279
  }
280
+ catch (cause) {
281
+ if (cause instanceof AssetLoadError) {
282
+ throw cause;
283
+ }
284
+ throw new AssetLoadError(assetId, url, cause);
285
+ }
286
+ }
287
+ /** Load one registered manifest entry by asset ID. */
288
+ static async loadAsset(assetId) {
289
+ const entry = this.requireManifestEntry(assetId);
290
+ return this.loadAssetByType(entry.url, entry.type, assetId);
291
+ }
292
+ static async loadGLTFById(assetId) {
293
+ return this.loadTypedManifestAsset(assetId, AssetType.GLTF);
294
+ }
295
+ static async loadAudioById(assetId) {
296
+ return this.loadTypedManifestAsset(assetId, AssetType.Audio);
297
+ }
298
+ static async loadTextureById(assetId) {
299
+ return this.loadTypedManifestAsset(assetId, AssetType.Texture);
300
+ }
301
+ static async loadHDRTextureById(assetId) {
302
+ return this.loadTypedManifestAsset(assetId, AssetType.HDRTexture);
303
+ }
304
+ static async loadUIKitMLById(assetId) {
305
+ return this.loadTypedManifestAsset(assetId, AssetType.UIKitML);
306
+ }
307
+ static loadTypedManifestAsset(assetId, expectedType) {
308
+ const entry = this.requireManifestEntry(assetId);
309
+ if (entry.type !== expectedType) {
310
+ throw new Error(`Asset "${assetId}" has type "${entry.type}", expected "${expectedType}"`);
311
+ }
312
+ return this.loadAssetByType(entry.url, entry.type, assetId);
313
+ }
314
+ static requireManifestEntry(assetId) {
315
+ const entry = this.manifestEntries.get(assetId);
316
+ if (entry == null) {
317
+ throw new Error(`Unknown loadable asset "${assetId}"`);
318
+ }
319
+ return entry;
82
320
  }
83
321
  /**
84
322
  * Load a GLTF by URL; optionally register a logical key.
@@ -88,10 +326,15 @@ class AssetManager {
88
326
  * after the load resolves to retrieve a clone suitable for placing into
89
327
  * multiple entities.
90
328
  */
91
- static loadGLTF(url, key) {
92
- return GLTFAssetLoader.loadGLTF(url, key);
329
+ static loadGLTF(urlOrKey, key) {
330
+ const url = key == null ? CacheManager.resolveUrl(urlOrKey) : urlOrKey;
331
+ return this.loadAssetByType(url, AssetType.GLTF, key !== null && key !== void 0 ? key : urlOrKey);
332
+ }
333
+ /** Create an isolated glTF load transaction for scene resource preflight. */
334
+ static createGLTFLoadTransaction(limits = {}) {
335
+ return new GLTFLoadTransaction(limits);
93
336
  }
94
- // GLXF has been removed from the asset pipeline. Use World.loadLevel(url).
337
+ // Scene documents are loaded through World.loadLevel(url).
95
338
  /** Fetch any cached asset by logical key. */
96
339
  static getAsset(key) {
97
340
  return CacheManager.getAssetByKey(key);
@@ -99,13 +342,8 @@ class AssetManager {
99
342
  // Public API Methods - delegate to specialized loaders
100
343
  /** Load an AudioBuffer by URL; optionally register a logical key. */
101
344
  static async loadAudio(url, key) {
102
- if (key) {
103
- CacheManager.setKeyToUrl(key, url);
104
- }
105
- else {
106
- CacheManager.setKeyToUrl(url, url);
107
- }
108
- return AudioAssetLoader.loadAudio(url);
345
+ const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
346
+ return this.loadAssetByType(resolvedUrl, AssetType.Audio, key !== null && key !== void 0 ? key : url);
109
347
  }
110
348
  /** Get a cached AudioBuffer by logical key. */
111
349
  static getAudio(key) {
@@ -113,27 +351,32 @@ class AssetManager {
113
351
  }
114
352
  /** Load a Texture by URL; optionally register a logical key. */
115
353
  static async loadTexture(url, key) {
116
- if (key) {
117
- CacheManager.setKeyToUrl(key, url);
118
- }
119
- else {
120
- CacheManager.setKeyToUrl(url, url);
121
- }
122
- return TextureAssetLoader.loadTexture(url);
354
+ const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
355
+ return this.loadAssetByType(resolvedUrl, AssetType.Texture, key !== null && key !== void 0 ? key : url);
123
356
  }
124
357
  /** Get a cached Texture by logical key. */
125
358
  static getTexture(key) {
126
359
  return TextureAssetLoader.getTexture(key);
127
360
  }
361
+ /** Load and cache UIKitML source by URL or manifest key. */
362
+ static loadUIKitML(urlOrKey, key, forceReload = false) {
363
+ const url = key == null ? CacheManager.resolveUrl(urlOrKey) : urlOrKey;
364
+ const assetId = key !== null && key !== void 0 ? key : urlOrKey;
365
+ CacheManager.setKeyToUrl(assetId, url);
366
+ return UIKitMLAssetLoader.loadUIKitML(url, assetId, forceReload, this.loadTimeoutMs).catch((cause) => {
367
+ throw cause instanceof AssetLoadError
368
+ ? cause
369
+ : new AssetLoadError(assetId, url, cause);
370
+ });
371
+ }
372
+ /** Get cached UIKitML source by URL or manifest key. */
373
+ static getUIKitML(keyOrUrl) {
374
+ return UIKitMLAssetLoader.getUIKitML(keyOrUrl);
375
+ }
128
376
  /** Load an HDR equirectangular texture; optionally register a logical key. */
129
377
  static async loadHDRTexture(url, key) {
130
- if (key) {
131
- CacheManager.setKeyToUrl(key, url);
132
- }
133
- else {
134
- CacheManager.setKeyToUrl(url, url);
135
- }
136
- return HDRTextureAssetLoader.loadHDRTexture(url);
378
+ const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
379
+ return this.loadAssetByType(resolvedUrl, AssetType.HDRTexture, key !== null && key !== void 0 ? key : url);
137
380
  }
138
381
  /**
139
382
  * Get a cached GLTF by logical key.
@@ -148,6 +391,207 @@ class AssetManager {
148
391
  return GLTFAssetLoader.getGLTF(key, options);
149
392
  }
150
393
  }
394
+ AssetManager.loadTimeoutMs = DEFAULT_ASSET_LOAD_TIMEOUT_MS;
395
+ AssetManager.manifestEntries = new Map();
396
+ function isObject3DManifestEntry(entry) {
397
+ return (entry === null || entry === void 0 ? void 0 : entry.isObject3D) === true;
398
+ }
399
+ const SUPPORTED_ASSET_TYPES = new Set(Object.values(AssetType));
400
+ const SUPPORTED_ASSET_PRIORITIES = new Set([
401
+ 'critical',
402
+ 'background',
403
+ 'lazy',
404
+ ]);
405
+ function assertAssetManifestEntry(id, entry) {
406
+ if (isObject3DManifestEntry(entry)) {
407
+ if (entry.parent != null) {
408
+ throw new Error(`Renderable asset prototype "${id}" must not have a parent`);
409
+ }
410
+ return;
411
+ }
412
+ if (entry == null || typeof entry !== 'object' || Array.isArray(entry)) {
413
+ throw new Error(`Asset manifest entry "${id}" must be a URL entry or Object3D prototype`);
414
+ }
415
+ const candidate = entry;
416
+ if (typeof candidate.url !== 'string' || candidate.url.trim().length === 0) {
417
+ throw new Error(`Asset manifest entry "${id}" must have a nonblank URL`);
418
+ }
419
+ if (typeof candidate.type !== 'string' ||
420
+ !SUPPORTED_ASSET_TYPES.has(candidate.type)) {
421
+ throw new Error(`Asset manifest entry "${id}" has unsupported type "${String(candidate.type)}"`);
422
+ }
423
+ if (candidate.priority !== undefined &&
424
+ !SUPPORTED_ASSET_PRIORITIES.has(candidate.priority)) {
425
+ throw new Error(`Asset manifest entry "${id}" has unsupported priority "${String(candidate.priority)}"`);
426
+ }
427
+ if (candidate.name !== undefined && typeof candidate.name !== 'string') {
428
+ throw new Error(`Asset manifest entry "${id}" name must be a string`);
429
+ }
430
+ }
431
+ function errorMessage(error) {
432
+ return error instanceof Error ? error.message : String(error);
433
+ }
434
+ function createPrimitivePrototype(name, geometry) {
435
+ const prototype = new Mesh(geometry, new MeshStandardMaterial({
436
+ color: 0x91a4ba,
437
+ metalness: 0.05,
438
+ roughness: 0.72,
439
+ }));
440
+ prototype.name = name;
441
+ prototype.userData.iwsdkAssetKind = 'primitive';
442
+ return prototype;
443
+ }
444
+ function isPrimitivePrototype(entry) {
445
+ return entry.userData.iwsdkAssetKind === 'primitive';
446
+ }
447
+ function isRenderableManifestEntry(entry) {
448
+ return (entry != null &&
449
+ (isObject3DManifestEntry(entry) || entry.type === AssetType.GLTF));
450
+ }
451
+ function boundsForPrototype(prototype) {
452
+ const instance = clone(prototype);
453
+ instance.updateMatrixWorld(true);
454
+ const bounds = new Box3().setFromObject(instance);
455
+ if (bounds.isEmpty()) {
456
+ return undefined;
457
+ }
458
+ return {
459
+ min: bounds.min.toArray(),
460
+ max: bounds.max.toArray(),
461
+ };
462
+ }
463
+ /**
464
+ * Stages model resources without mutating shared AssetManager caches. A
465
+ * successful scene commit adopts owned resources; rollback disposes them.
466
+ */
467
+ class GLTFLoadTransaction {
468
+ constructor(limits = {}) {
469
+ var _a, _b;
470
+ this.stagedByUrl = new Map();
471
+ this.urlByKey = new Map();
472
+ this.state = 'open';
473
+ this.totalPayloadBytes = 0;
474
+ this.maxModelPayloadBytes =
475
+ (_a = limits.maxModelPayloadBytes) !== null && _a !== void 0 ? _a : DEFAULT_MAX_MODEL_PAYLOAD_BYTES;
476
+ this.maxTotalModelPayloadBytes =
477
+ (_b = limits.maxTotalModelPayloadBytes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES;
478
+ assertPositiveByteLimit('maxModelPayloadBytes', this.maxModelPayloadBytes);
479
+ assertPositiveByteLimit('maxTotalModelPayloadBytes', this.maxTotalModelPayloadBytes);
480
+ }
481
+ /** Stage one logical key. Repeated URLs share one detached response. */
482
+ async stage(url, key) {
483
+ this.assertOpen();
484
+ const priorUrl = this.urlByKey.get(key);
485
+ if (priorUrl != null && priorUrl !== url) {
486
+ throw new Error(`Staged model key "${key}" already refers to "${priorUrl}"`);
487
+ }
488
+ let staged = this.stagedByUrl.get(url);
489
+ if (staged == null) {
490
+ const cached = await getSettledCachedGLTF(url);
491
+ if (cached != null) {
492
+ staged = { gltf: cached, payloadBytes: 0, source: 'cache', url };
493
+ }
494
+ else {
495
+ const loaded = await GLTFAssetLoader.loadGLTFDetached(url, this.maxModelPayloadBytes);
496
+ if (this.totalPayloadBytes + loaded.payloadBytes >
497
+ this.maxTotalModelPayloadBytes) {
498
+ disposeGLTFResources(loaded.gltf);
499
+ throw new Error(`Staged model payloads total ${this.totalPayloadBytes + loaded.payloadBytes} bytes; the configured scene limit is ${this.maxTotalModelPayloadBytes} bytes`);
500
+ }
501
+ staged = {
502
+ gltf: loaded.gltf,
503
+ payloadBytes: loaded.payloadBytes,
504
+ source: 'detached',
505
+ url,
506
+ };
507
+ this.totalPayloadBytes += loaded.payloadBytes;
508
+ }
509
+ this.stagedByUrl.set(url, staged);
510
+ }
511
+ this.urlByKey.set(key, url);
512
+ return staged;
513
+ }
514
+ /** Retrieve a clone for materialization without transferring ownership. */
515
+ getGLTF(key, options = {}) {
516
+ const url = this.urlByKey.get(key);
517
+ const staged = url == null ? null : this.stagedByUrl.get(url);
518
+ if (staged == null) {
519
+ return null;
520
+ }
521
+ return options.shared
522
+ ? staged.gltf
523
+ : GLTFAssetLoader.cloneGLTF(staged.gltf);
524
+ }
525
+ /** Exact newly fetched primary-response bytes in this transaction. */
526
+ get payloadBytes() {
527
+ return this.totalPayloadBytes;
528
+ }
529
+ /** Verify cache ownership can transfer synchronously after scene install. */
530
+ assertCanCommit() {
531
+ this.assertOpen();
532
+ for (const staged of this.stagedByUrl.values()) {
533
+ const cached = CacheManager.getAsset(staged.url);
534
+ if (staged.source === 'cache') {
535
+ if (cached !== staged.gltf) {
536
+ throw new Error(`Cached model "${staged.url}" changed during resource preflight`);
537
+ }
538
+ }
539
+ else if (cached != null || CacheManager.hasPromise(staged.url)) {
540
+ throw new Error(`Model "${staged.url}" entered the shared cache during resource preflight`);
541
+ }
542
+ }
543
+ }
544
+ /** Atomically transfer staged resources and logical keys to the shared cache. */
545
+ commit() {
546
+ this.assertCanCommit();
547
+ for (const staged of this.stagedByUrl.values()) {
548
+ if (staged.source === 'detached') {
549
+ CacheManager.setAsset(staged.url, staged.gltf);
550
+ }
551
+ }
552
+ for (const [key, url] of this.urlByKey) {
553
+ CacheManager.setKeyToUrl(key, url);
554
+ }
555
+ this.state = 'committed';
556
+ }
557
+ /** Dispose all transaction-owned model resources; cached resources are borrowed. */
558
+ rollback() {
559
+ if (this.state !== 'open') {
560
+ return;
561
+ }
562
+ for (const staged of this.stagedByUrl.values()) {
563
+ if (staged.source === 'detached') {
564
+ disposeGLTFResources(staged.gltf);
565
+ }
566
+ }
567
+ this.state = 'rolled-back';
568
+ this.stagedByUrl.clear();
569
+ this.urlByKey.clear();
570
+ }
571
+ assertOpen() {
572
+ if (this.state !== 'open') {
573
+ throw new Error(`GLTF load transaction is already ${this.state}`);
574
+ }
575
+ }
576
+ }
577
+ async function getSettledCachedGLTF(url) {
578
+ var _a;
579
+ const cached = CacheManager.getAsset(url);
580
+ if (cached != null) {
581
+ return cached;
582
+ }
583
+ const inFlight = CacheManager.getPromise(url);
584
+ if (inFlight == null) {
585
+ return null;
586
+ }
587
+ await inFlight;
588
+ return (_a = CacheManager.getAsset(url)) !== null && _a !== void 0 ? _a : null;
589
+ }
590
+ function assertPositiveByteLimit(name, value) {
591
+ if (!Number.isSafeInteger(value) || value <= 0) {
592
+ throw new Error(`${name} must be a positive safe integer`);
593
+ }
594
+ }
151
595
 
152
- export { AssetManager, AssetType };
596
+ export { ASSET_MANIFEST_BRAND, AssetLoadError, AssetManager, AssetType, DEFAULT_ASSET_LOAD_TIMEOUT_MS, DEFAULT_MAX_MODEL_PAYLOAD_BYTES, DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES, GLTFLoadTransaction, RenderableAssetRegistry, defineAssets };
153
597
  //# sourceMappingURL=asset-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-manager.js","sources":["../../src/asset/asset-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-manager.js","sources":["../../src/asset/asset-manager.ts"],"sourcesContent":[null],"names":["cloneObject3D"],"mappings":"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"}