@aura3d/assets 1.0.6

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 (324) hide show
  1. package/README.md +17 -0
  2. package/dist/AdvancedAssetCorpus.d.ts +124 -0
  3. package/dist/AdvancedAssetCorpus.d.ts.map +1 -0
  4. package/dist/AdvancedAssetCorpus.js +266 -0
  5. package/dist/AdvancedAssetCorpus.js.map +1 -0
  6. package/dist/AssetBundleCacheFixtures.d.ts +62 -0
  7. package/dist/AssetBundleCacheFixtures.d.ts.map +1 -0
  8. package/dist/AssetBundleCacheFixtures.js +222 -0
  9. package/dist/AssetBundleCacheFixtures.js.map +1 -0
  10. package/dist/AssetCache.d.ts +21 -0
  11. package/dist/AssetCache.d.ts.map +1 -0
  12. package/dist/AssetCache.js +54 -0
  13. package/dist/AssetCache.js.map +1 -0
  14. package/dist/AssetCompatibility.d.ts +54 -0
  15. package/dist/AssetCompatibility.d.ts.map +1 -0
  16. package/dist/AssetCompatibility.js +122 -0
  17. package/dist/AssetCompatibility.js.map +1 -0
  18. package/dist/AssetCorpus.d.ts +88 -0
  19. package/dist/AssetCorpus.d.ts.map +1 -0
  20. package/dist/AssetCorpus.js +215 -0
  21. package/dist/AssetCorpus.js.map +1 -0
  22. package/dist/AssetDependencyGraph.d.ts +12 -0
  23. package/dist/AssetDependencyGraph.d.ts.map +1 -0
  24. package/dist/AssetDependencyGraph.js +66 -0
  25. package/dist/AssetDependencyGraph.js.map +1 -0
  26. package/dist/AssetHandle.d.ts +26 -0
  27. package/dist/AssetHandle.d.ts.map +1 -0
  28. package/dist/AssetHandle.js +53 -0
  29. package/dist/AssetHandle.js.map +1 -0
  30. package/dist/AssetImportPreflight.d.ts +43 -0
  31. package/dist/AssetImportPreflight.d.ts.map +1 -0
  32. package/dist/AssetImportPreflight.js +117 -0
  33. package/dist/AssetImportPreflight.js.map +1 -0
  34. package/dist/AssetInspection.d.ts +183 -0
  35. package/dist/AssetInspection.d.ts.map +1 -0
  36. package/dist/AssetInspection.js +397 -0
  37. package/dist/AssetInspection.js.map +1 -0
  38. package/dist/AssetLoader.d.ts +26 -0
  39. package/dist/AssetLoader.d.ts.map +1 -0
  40. package/dist/AssetLoader.js +12 -0
  41. package/dist/AssetLoader.js.map +1 -0
  42. package/dist/AssetManager.d.ts +37 -0
  43. package/dist/AssetManager.d.ts.map +1 -0
  44. package/dist/AssetManager.js +161 -0
  45. package/dist/AssetManager.js.map +1 -0
  46. package/dist/AssetRegistry.d.ts +10 -0
  47. package/dist/AssetRegistry.d.ts.map +1 -0
  48. package/dist/AssetRegistry.js +34 -0
  49. package/dist/AssetRegistry.js.map +1 -0
  50. package/dist/AssetRenderDefaults.d.ts +13 -0
  51. package/dist/AssetRenderDefaults.d.ts.map +1 -0
  52. package/dist/AssetRenderDefaults.js +23 -0
  53. package/dist/AssetRenderDefaults.js.map +1 -0
  54. package/dist/AudioLoader.d.ts +17 -0
  55. package/dist/AudioLoader.d.ts.map +1 -0
  56. package/dist/AudioLoader.js +23 -0
  57. package/dist/AudioLoader.js.map +1 -0
  58. package/dist/BlenderExportValidation.d.ts +64 -0
  59. package/dist/BlenderExportValidation.d.ts.map +1 -0
  60. package/dist/BlenderExportValidation.js +143 -0
  61. package/dist/BlenderExportValidation.js.map +1 -0
  62. package/dist/CarConceptMaterialStability.d.ts +28 -0
  63. package/dist/CarConceptMaterialStability.d.ts.map +1 -0
  64. package/dist/CarConceptMaterialStability.js +1308 -0
  65. package/dist/CarConceptMaterialStability.js.map +1 -0
  66. package/dist/EXRLoader.d.ts +2 -0
  67. package/dist/EXRLoader.d.ts.map +1 -0
  68. package/dist/EXRLoader.js +2 -0
  69. package/dist/EXRLoader.js.map +1 -0
  70. package/dist/ExternalParityGLTFCorpus.d.ts +39 -0
  71. package/dist/ExternalParityGLTFCorpus.d.ts.map +1 -0
  72. package/dist/ExternalParityGLTFCorpus.js +32 -0
  73. package/dist/ExternalParityGLTFCorpus.js.map +1 -0
  74. package/dist/GLTFAnimationRuntime.d.ts +243 -0
  75. package/dist/GLTFAnimationRuntime.d.ts.map +1 -0
  76. package/dist/GLTFAnimationRuntime.js +954 -0
  77. package/dist/GLTFAnimationRuntime.js.map +1 -0
  78. package/dist/GLTFCompressionDecoders.d.ts +42 -0
  79. package/dist/GLTFCompressionDecoders.d.ts.map +1 -0
  80. package/dist/GLTFCompressionDecoders.js +99 -0
  81. package/dist/GLTFCompressionDecoders.js.map +1 -0
  82. package/dist/GLTFExtensionSupport.d.ts +33 -0
  83. package/dist/GLTFExtensionSupport.d.ts.map +1 -0
  84. package/dist/GLTFExtensionSupport.js +85 -0
  85. package/dist/GLTFExtensionSupport.js.map +1 -0
  86. package/dist/GLTFLoader.d.ts +361 -0
  87. package/dist/GLTFLoader.d.ts.map +1 -0
  88. package/dist/GLTFLoader.js +2735 -0
  89. package/dist/GLTFLoader.js.map +1 -0
  90. package/dist/GLTFRenderResources.d.ts +162 -0
  91. package/dist/GLTFRenderResources.d.ts.map +1 -0
  92. package/dist/GLTFRenderResources.js +1684 -0
  93. package/dist/GLTFRenderResources.js.map +1 -0
  94. package/dist/HDRLoader.d.ts +2 -0
  95. package/dist/HDRLoader.d.ts.map +1 -0
  96. package/dist/HDRLoader.js +2 -0
  97. package/dist/HDRLoader.js.map +1 -0
  98. package/dist/ImageLoader.d.ts +15 -0
  99. package/dist/ImageLoader.d.ts.map +1 -0
  100. package/dist/ImageLoader.js +36 -0
  101. package/dist/ImageLoader.js.map +1 -0
  102. package/dist/ImportPipeline.d.ts +39 -0
  103. package/dist/ImportPipeline.d.ts.map +1 -0
  104. package/dist/ImportPipeline.js +105 -0
  105. package/dist/ImportPipeline.js.map +1 -0
  106. package/dist/KTX2BasisTextureTranscoder.d.ts +9 -0
  107. package/dist/KTX2BasisTextureTranscoder.d.ts.map +1 -0
  108. package/dist/KTX2BasisTextureTranscoder.js +178 -0
  109. package/dist/KTX2BasisTextureTranscoder.js.map +1 -0
  110. package/dist/LoadContext.d.ts +20 -0
  111. package/dist/LoadContext.d.ts.map +1 -0
  112. package/dist/LoadContext.js +42 -0
  113. package/dist/LoadContext.js.map +1 -0
  114. package/dist/MaterialLoader.d.ts +17 -0
  115. package/dist/MaterialLoader.d.ts.map +1 -0
  116. package/dist/MaterialLoader.js +138 -0
  117. package/dist/MaterialLoader.js.map +1 -0
  118. package/dist/MeshOptimization.d.ts +20 -0
  119. package/dist/MeshOptimization.d.ts.map +1 -0
  120. package/dist/MeshOptimization.js +65 -0
  121. package/dist/MeshOptimization.js.map +1 -0
  122. package/dist/OBJLoader.d.ts +13 -0
  123. package/dist/OBJLoader.d.ts.map +1 -0
  124. package/dist/OBJLoader.js +492 -0
  125. package/dist/OBJLoader.js.map +1 -0
  126. package/dist/SceneAnalysisFixtures.d.ts +100 -0
  127. package/dist/SceneAnalysisFixtures.d.ts.map +1 -0
  128. package/dist/SceneAnalysisFixtures.js +331 -0
  129. package/dist/SceneAnalysisFixtures.js.map +1 -0
  130. package/dist/SceneLoader.d.ts +27 -0
  131. package/dist/SceneLoader.d.ts.map +1 -0
  132. package/dist/SceneLoader.js +40 -0
  133. package/dist/SceneLoader.js.map +1 -0
  134. package/dist/ShaderLoader.d.ts +12 -0
  135. package/dist/ShaderLoader.d.ts.map +1 -0
  136. package/dist/ShaderLoader.js +18 -0
  137. package/dist/ShaderLoader.js.map +1 -0
  138. package/dist/TextureLoader.d.ts +16 -0
  139. package/dist/TextureLoader.d.ts.map +1 -0
  140. package/dist/TextureLoader.js +17 -0
  141. package/dist/TextureLoader.js.map +1 -0
  142. package/dist/TexturePipeline.d.ts +24 -0
  143. package/dist/TexturePipeline.d.ts.map +1 -0
  144. package/dist/TexturePipeline.js +64 -0
  145. package/dist/TexturePipeline.js.map +1 -0
  146. package/dist/TextureStreaming.d.ts +10 -0
  147. package/dist/TextureStreaming.d.ts.map +1 -0
  148. package/dist/TextureStreaming.js +11 -0
  149. package/dist/TextureStreaming.js.map +1 -0
  150. package/dist/WorkerAssetJobs.d.ts +18 -0
  151. package/dist/WorkerAssetJobs.d.ts.map +1 -0
  152. package/dist/WorkerAssetJobs.js +37 -0
  153. package/dist/WorkerAssetJobs.js.map +1 -0
  154. package/dist/advanced-gallery/index.d.ts +3 -0
  155. package/dist/advanced-gallery/index.d.ts.map +1 -0
  156. package/dist/advanced-gallery/index.js +2 -0
  157. package/dist/advanced-gallery/index.js.map +1 -0
  158. package/dist/asset-corpus/GLTFSceneLoader.d.ts +3 -0
  159. package/dist/asset-corpus/GLTFSceneLoader.d.ts.map +1 -0
  160. package/dist/asset-corpus/GLTFSceneLoader.js +2 -0
  161. package/dist/asset-corpus/GLTFSceneLoader.js.map +1 -0
  162. package/dist/asset-corpus/ProductionAssetCorpus.d.ts +89 -0
  163. package/dist/asset-corpus/ProductionAssetCorpus.d.ts.map +1 -0
  164. package/dist/asset-corpus/ProductionAssetCorpus.js +116 -0
  165. package/dist/asset-corpus/ProductionAssetCorpus.js.map +1 -0
  166. package/dist/asset-corpus/ProductionAssetPipeline.d.ts +3 -0
  167. package/dist/asset-corpus/ProductionAssetPipeline.d.ts.map +1 -0
  168. package/dist/asset-corpus/ProductionAssetPipeline.js +3 -0
  169. package/dist/asset-corpus/ProductionAssetPipeline.js.map +1 -0
  170. package/dist/asset-corpus/ProductionGLTFRenderPipeline.d.ts +65 -0
  171. package/dist/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -0
  172. package/dist/asset-corpus/ProductionGLTFRenderPipeline.js +110 -0
  173. package/dist/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -0
  174. package/dist/asset-corpus/ProductionHDRTextureLoader.d.ts +8 -0
  175. package/dist/asset-corpus/ProductionHDRTextureLoader.d.ts.map +1 -0
  176. package/dist/asset-corpus/ProductionHDRTextureLoader.js +2 -0
  177. package/dist/asset-corpus/ProductionHDRTextureLoader.js.map +1 -0
  178. package/dist/asset-corpus/ProductionKTX2TextureLoader.d.ts +7 -0
  179. package/dist/asset-corpus/ProductionKTX2TextureLoader.d.ts.map +1 -0
  180. package/dist/asset-corpus/ProductionKTX2TextureLoader.js +2 -0
  181. package/dist/asset-corpus/ProductionKTX2TextureLoader.js.map +1 -0
  182. package/dist/asset-corpus/ProductionTextureLoader.d.ts +7 -0
  183. package/dist/asset-corpus/ProductionTextureLoader.d.ts.map +1 -0
  184. package/dist/asset-corpus/ProductionTextureLoader.js +2 -0
  185. package/dist/asset-corpus/ProductionTextureLoader.js.map +1 -0
  186. package/dist/asset-corpus/index.d.ts +10 -0
  187. package/dist/asset-corpus/index.d.ts.map +1 -0
  188. package/dist/asset-corpus/index.js +8 -0
  189. package/dist/asset-corpus/index.js.map +1 -0
  190. package/dist/browser-index.d.ts +48 -0
  191. package/dist/browser-index.d.ts.map +1 -0
  192. package/dist/browser-index.js +26 -0
  193. package/dist/browser-index.js.map +1 -0
  194. package/dist/createRenderableScene.d.ts +23 -0
  195. package/dist/createRenderableScene.d.ts.map +1 -0
  196. package/dist/createRenderableScene.js +94 -0
  197. package/dist/createRenderableScene.js.map +1 -0
  198. package/dist/index.d.ts +82 -0
  199. package/dist/index.d.ts.map +1 -0
  200. package/dist/index.js +45 -0
  201. package/dist/index.js.map +1 -0
  202. package/dist/loadRenderableAsset.d.ts +16 -0
  203. package/dist/loadRenderableAsset.d.ts.map +1 -0
  204. package/dist/loadRenderableAsset.js +50 -0
  205. package/dist/loadRenderableAsset.js.map +1 -0
  206. package/dist/loaders/CubeTextureLoader.d.ts +4 -0
  207. package/dist/loaders/CubeTextureLoader.d.ts.map +1 -0
  208. package/dist/loaders/CubeTextureLoader.js +9 -0
  209. package/dist/loaders/CubeTextureLoader.js.map +1 -0
  210. package/dist/loaders/EXRLoader.d.ts +4 -0
  211. package/dist/loaders/EXRLoader.d.ts.map +1 -0
  212. package/dist/loaders/EXRLoader.js +10 -0
  213. package/dist/loaders/EXRLoader.js.map +1 -0
  214. package/dist/loaders/HDRLoader.d.ts +4 -0
  215. package/dist/loaders/HDRLoader.d.ts.map +1 -0
  216. package/dist/loaders/HDRLoader.js +7 -0
  217. package/dist/loaders/HDRLoader.js.map +1 -0
  218. package/dist/loaders/KTX2Loader.d.ts +4 -0
  219. package/dist/loaders/KTX2Loader.d.ts.map +1 -0
  220. package/dist/loaders/KTX2Loader.js +7 -0
  221. package/dist/loaders/KTX2Loader.js.map +1 -0
  222. package/dist/loaders/LoaderDiagnostics.d.ts +18 -0
  223. package/dist/loaders/LoaderDiagnostics.d.ts.map +1 -0
  224. package/dist/loaders/LoaderDiagnostics.js +18 -0
  225. package/dist/loaders/LoaderDiagnostics.js.map +1 -0
  226. package/dist/loaders/MTLLoader.d.ts +10 -0
  227. package/dist/loaders/MTLLoader.d.ts.map +1 -0
  228. package/dist/loaders/MTLLoader.js +14 -0
  229. package/dist/loaders/MTLLoader.js.map +1 -0
  230. package/dist/loaders/OBJLoader.d.ts +12 -0
  231. package/dist/loaders/OBJLoader.d.ts.map +1 -0
  232. package/dist/loaders/OBJLoader.js +16 -0
  233. package/dist/loaders/OBJLoader.js.map +1 -0
  234. package/dist/loaders/TextureLoader.d.ts +6 -0
  235. package/dist/loaders/TextureLoader.d.ts.map +1 -0
  236. package/dist/loaders/TextureLoader.js +11 -0
  237. package/dist/loaders/TextureLoader.js.map +1 -0
  238. package/dist/loaders/ThreeCompatGLTFLoader.d.ts +10 -0
  239. package/dist/loaders/ThreeCompatGLTFLoader.d.ts.map +1 -0
  240. package/dist/loaders/ThreeCompatGLTFLoader.js +13 -0
  241. package/dist/loaders/ThreeCompatGLTFLoader.js.map +1 -0
  242. package/dist/loaders/index.d.ts +15 -0
  243. package/dist/loaders/index.d.ts.map +1 -0
  244. package/dist/loaders/index.js +10 -0
  245. package/dist/loaders/index.js.map +1 -0
  246. package/dist/threejs-compatibility/ThreeCompatAssetProvenance.d.ts +34 -0
  247. package/dist/threejs-compatibility/ThreeCompatAssetProvenance.d.ts.map +1 -0
  248. package/dist/threejs-compatibility/ThreeCompatAssetProvenance.js +16 -0
  249. package/dist/threejs-compatibility/ThreeCompatAssetProvenance.js.map +1 -0
  250. package/dist/threejs-compatibility/ThreeCompatAssetRegistry.d.ts +29 -0
  251. package/dist/threejs-compatibility/ThreeCompatAssetRegistry.d.ts.map +1 -0
  252. package/dist/threejs-compatibility/ThreeCompatAssetRegistry.js +33 -0
  253. package/dist/threejs-compatibility/ThreeCompatAssetRegistry.js.map +1 -0
  254. package/dist/threejs-example-parity/index.d.ts +20 -0
  255. package/dist/threejs-example-parity/index.d.ts.map +1 -0
  256. package/dist/threejs-example-parity/index.js +218 -0
  257. package/dist/threejs-example-parity/index.js.map +1 -0
  258. package/package.json +23 -0
  259. package/src/AdvancedAssetCorpus.ts +454 -0
  260. package/src/AssetBundleCacheFixtures.ts +290 -0
  261. package/src/AssetCache.ts +76 -0
  262. package/src/AssetCompatibility.ts +224 -0
  263. package/src/AssetCorpus.ts +329 -0
  264. package/src/AssetDependencyGraph.ts +83 -0
  265. package/src/AssetHandle.ts +74 -0
  266. package/src/AssetImportPreflight.ts +179 -0
  267. package/src/AssetInspection.ts +706 -0
  268. package/src/AssetLoader.ts +36 -0
  269. package/src/AssetManager.ts +211 -0
  270. package/src/AssetRegistry.ts +44 -0
  271. package/src/AssetRenderDefaults.ts +36 -0
  272. package/src/AudioLoader.ts +41 -0
  273. package/src/BlenderExportValidation.ts +227 -0
  274. package/src/CarConceptMaterialStability.ts +1405 -0
  275. package/src/EXRLoader.ts +1 -0
  276. package/src/ExternalParityGLTFCorpus.ts +65 -0
  277. package/src/GLTFAnimationRuntime.ts +1221 -0
  278. package/src/GLTFCompressionDecoders.ts +190 -0
  279. package/src/GLTFExtensionSupport.ts +138 -0
  280. package/src/GLTFLoader.ts +4001 -0
  281. package/src/GLTFRenderResources.ts +2105 -0
  282. package/src/HDRLoader.ts +1 -0
  283. package/src/ImageLoader.ts +52 -0
  284. package/src/ImportPipeline.ts +148 -0
  285. package/src/KTX2BasisTextureTranscoder.ts +224 -0
  286. package/src/LoadContext.ts +60 -0
  287. package/src/MaterialLoader.ts +166 -0
  288. package/src/MeshOptimization.ts +93 -0
  289. package/src/OBJLoader.ts +551 -0
  290. package/src/SceneAnalysisFixtures.ts +438 -0
  291. package/src/SceneLoader.ts +62 -0
  292. package/src/ShaderLoader.ts +30 -0
  293. package/src/TextureLoader.ts +30 -0
  294. package/src/TexturePipeline.ts +96 -0
  295. package/src/TextureStreaming.ts +20 -0
  296. package/src/WorkerAssetJobs.ts +56 -0
  297. package/src/advanced-gallery/index.ts +18 -0
  298. package/src/asset-corpus/GLTFSceneLoader.ts +9 -0
  299. package/src/asset-corpus/ProductionAssetCorpus.ts +230 -0
  300. package/src/asset-corpus/ProductionAssetPipeline.ts +5 -0
  301. package/src/asset-corpus/ProductionGLTFRenderPipeline.ts +182 -0
  302. package/src/asset-corpus/ProductionHDRTextureLoader.ts +2 -0
  303. package/src/asset-corpus/ProductionKTX2TextureLoader.ts +2 -0
  304. package/src/asset-corpus/ProductionTextureLoader.ts +2 -0
  305. package/src/asset-corpus/index.ts +29 -0
  306. package/src/browser-index.ts +224 -0
  307. package/src/createRenderableScene.ts +128 -0
  308. package/src/index.ts +317 -0
  309. package/src/loadRenderableAsset.ts +67 -0
  310. package/src/loaders/CubeTextureLoader.ts +8 -0
  311. package/src/loaders/EXRLoader.ts +10 -0
  312. package/src/loaders/HDRLoader.ts +7 -0
  313. package/src/loaders/KTX2Loader.ts +7 -0
  314. package/src/loaders/LoaderDiagnostics.ts +36 -0
  315. package/src/loaders/MTLLoader.ts +20 -0
  316. package/src/loaders/OBJLoader.ts +24 -0
  317. package/src/loaders/TextureLoader.ts +14 -0
  318. package/src/loaders/ThreeCompatGLTFLoader.ts +19 -0
  319. package/src/loaders/index.ts +14 -0
  320. package/src/threejs-compatibility/ThreeCompatAssetProvenance.ts +51 -0
  321. package/src/threejs-compatibility/ThreeCompatAssetRegistry.ts +61 -0
  322. package/src/threejs-example-parity/index.ts +262 -0
  323. package/tests/assets.test.ts +311 -0
  324. package/tsconfig.json +7 -0
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @aura3d/assets
2
+
3
+ `@aura3d/assets` owns asset identity, loading, caching, dependency tracking, import pipelines, worker job boundaries, and built-in loaders for runtime data.
4
+
5
+ ## Public API
6
+
7
+ - `AssetManager`, `AssetRegistry`, `AssetCache`, `AssetHandle`: asset registration, load requests, cache retention, request cancellation, transient retry recovery, progress reporting, release, and disposal.
8
+ - `AssetLoader`, `AssetLoadRequest`, `AssetLoadError`, `LoadContext`: typed loader contracts, URL resolution, abort handling, and recoverable load failures.
9
+ - `AssetDependencyGraph`: deterministic dependency ownership and release ordering.
10
+ - `ImportPipeline`, `ImportStage`, `createMeshOptimizationStage`, `createTextureMipGenerationStage`: explicit import-stage execution for source assets, including deterministic indexed-mesh optimization and RGBA8 texture mip-chain generation hooks.
11
+ - `GLTFLoader`: JSON glTF and binary GLB loading for meshes, streamed external buffers, named scene selection, materials, textures, common PBR material extensions, `EXT_meshopt_compression` bufferView decode hooks, `KHR_draco_mesh_compression` primitive decode hooks, skins, animation clips, deterministic serialization, and disposed-state enforcement after release.
12
+ - `ImageLoader`, `TextureLoader`, `MaterialLoader`, `ShaderLoader`, `AudioLoader`, `SceneLoader`: built-in loaders for common engine asset types. Material descriptors can instantiate validated renderer `PBRMaterial` and `UnlitMaterial` instances.
13
+ - `WorkerAssetJobs`: worker-job scheduling boundary for CPU-side asset work with abort handling for worker and fallback pipeline execution.
14
+
15
+ ## Verification
16
+
17
+ Asset cache/release behavior, dependency graphs, failed-load retry, in-flight cancellation, progress reporting, streamed external glTF buffers, shader/material loaders, material descriptor to renderer material creation, import-pipeline mesh optimization and texture mip-generation stages, worker job aborts, native scene loading, glTF/GLB parsing, named glTF scene selection, meshopt bufferView decode hook validation, Draco primitive decode hook validation, glTF asset disposal, PBR material extension validation/binding, skin/animation import, deterministic serialization, and browser texture upload are covered by `tests/unit/workstream5-runtime.test.ts` and `tests/browser/asset-texture-browser.spec.ts`. Export and import consistency is covered by `pnpm verify:exports` and `pnpm verify:imports`.
@@ -0,0 +1,124 @@
1
+ export type CurrentRoutesAssetClass = "product" | "automotive" | "character" | "animation" | "materials" | "architecture" | "physics";
2
+ export interface CurrentRoutesAssetRequirement {
3
+ readonly minimumAssetCount: number;
4
+ readonly minimumTotalBytes: number;
5
+ readonly minimumTotalTriangles: number;
6
+ readonly minimumTexturedPbrAssets: number;
7
+ readonly minimumAnimationAssets: number;
8
+ readonly minimumSkinAssets: number;
9
+ readonly minimumMorphAssets: number;
10
+ readonly minimumMaterialExtensionAssets: number;
11
+ readonly requiredClasses: readonly CurrentRoutesAssetClass[];
12
+ readonly requiredFeatures: readonly string[];
13
+ }
14
+ export interface CurrentRoutesAssetManifestEntry {
15
+ readonly id: string;
16
+ readonly name: string;
17
+ readonly class: CurrentRoutesAssetClass;
18
+ readonly role: string;
19
+ readonly localPath: string;
20
+ readonly source: string;
21
+ readonly sourceUri: string;
22
+ readonly license: string;
23
+ readonly sha256: string;
24
+ readonly bytes: number;
25
+ readonly triangleCount: number;
26
+ readonly textureCount: number;
27
+ readonly animationCount: number;
28
+ readonly skinCount: number;
29
+ readonly morphTargetCount: number;
30
+ readonly materialExtensionCount: number;
31
+ readonly tags: readonly string[];
32
+ readonly requiredFeatures: readonly string[];
33
+ }
34
+ export interface CurrentRoutesEnvironmentManifestEntry {
35
+ readonly id: string;
36
+ readonly name: string;
37
+ readonly localPath: string;
38
+ readonly source: string;
39
+ readonly sourceUri: string;
40
+ readonly license: string;
41
+ readonly sha256: string;
42
+ readonly bytes: number;
43
+ readonly tags: readonly string[];
44
+ }
45
+ export interface CurrentRoutesAssetManifest {
46
+ readonly schema: "a3d-current-routes-local-asset-corpus";
47
+ readonly claimBoundary: string;
48
+ readonly requirements: CurrentRoutesAssetRequirement;
49
+ readonly assets: readonly CurrentRoutesAssetManifestEntry[];
50
+ readonly environments: readonly CurrentRoutesEnvironmentManifestEntry[];
51
+ }
52
+ export interface CurrentRoutesGlbInspection {
53
+ readonly validGlb: boolean;
54
+ readonly version: number;
55
+ readonly jsonChunkBytes: number;
56
+ readonly sceneCount: number;
57
+ readonly nodeCount: number;
58
+ readonly meshCount: number;
59
+ readonly primitiveCount: number;
60
+ readonly vertexCount: number;
61
+ readonly triangleCount: number;
62
+ readonly materialCount: number;
63
+ readonly texturedPbrMaterialCount: number;
64
+ readonly textureCount: number;
65
+ readonly imageCount: number;
66
+ readonly animationCount: number;
67
+ readonly animationChannelCount: number;
68
+ readonly animationSamplerCount: number;
69
+ readonly skinCount: number;
70
+ readonly jointCount: number;
71
+ readonly morphTargetPrimitiveCount: number;
72
+ readonly morphTargetCount: number;
73
+ readonly materialExtensionCount: number;
74
+ readonly materialTextureSlotCount: number;
75
+ readonly textureTransformCount: number;
76
+ readonly materialVariantCount: number;
77
+ readonly extensionsUsed: readonly string[];
78
+ readonly extensionsRequired: readonly string[];
79
+ readonly features: readonly string[];
80
+ readonly unsupportedRequiredExtensions: readonly string[];
81
+ }
82
+ export interface CurrentRoutesAssetReadinessEntry {
83
+ readonly id: string;
84
+ readonly localPath: string;
85
+ readonly exists: boolean;
86
+ readonly bytesMatch: boolean;
87
+ readonly sha256Matches: boolean;
88
+ readonly missingDeclaredFields: readonly string[];
89
+ readonly missingRequiredFeatures: readonly string[];
90
+ readonly inspection: CurrentRoutesGlbInspection | null;
91
+ }
92
+ export interface CurrentRoutesEnvironmentReadinessEntry {
93
+ readonly id: string;
94
+ readonly localPath: string;
95
+ readonly exists: boolean;
96
+ readonly bytesMatch: boolean;
97
+ readonly sha256Matches: boolean;
98
+ readonly bytes: number;
99
+ }
100
+ export interface AdvancedAssetCorpusSummary {
101
+ readonly schema: "a3d-current-routes-asset-readiness";
102
+ readonly pass: boolean;
103
+ readonly assetCount: number;
104
+ readonly environmentCount: number;
105
+ readonly existingAssetCount: number;
106
+ readonly shaVerifiedAssetCount: number;
107
+ readonly totalBytes: number;
108
+ readonly totalTriangles: number;
109
+ readonly texturedPbrAssetCount: number;
110
+ readonly animationAssetCount: number;
111
+ readonly skinAssetCount: number;
112
+ readonly morphAssetCount: number;
113
+ readonly materialExtensionAssetCount: number;
114
+ readonly classCoverage: readonly CurrentRoutesAssetClass[];
115
+ readonly featureCoverage: readonly string[];
116
+ readonly failures: readonly string[];
117
+ readonly entries: readonly CurrentRoutesAssetReadinessEntry[];
118
+ readonly environments: readonly CurrentRoutesEnvironmentReadinessEntry[];
119
+ }
120
+ export declare function loadCurrentRoutesAssetManifest(path?: string): CurrentRoutesAssetManifest;
121
+ export declare function inspectCurrentRoutesGlb(path: string): CurrentRoutesGlbInspection;
122
+ export declare function createAdvancedAssetCorpusSummary(manifest?: CurrentRoutesAssetManifest): AdvancedAssetCorpusSummary;
123
+ export declare function writeAdvancedAssetCorpusReport(path?: string): AdvancedAssetCorpusSummary;
124
+ //# sourceMappingURL=AdvancedAssetCorpus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdvancedAssetCorpus.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/AdvancedAssetCorpus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync, readFileSync, statSync, writeFileSync } from "node:fs";
3
+ import { resolve } from "node:path";
4
+ const GLB_MAGIC = 0x46546c67;
5
+ const JSON_CHUNK_TYPE = 0x4e4f534a;
6
+ const SUPPORTED_REQUIRED_EXTENSIONS = new Set([
7
+ "KHR_lights_punctual",
8
+ "KHR_materials_anisotropy",
9
+ "KHR_materials_clearcoat",
10
+ "KHR_materials_diffuse_transmission",
11
+ "KHR_materials_dispersion",
12
+ "KHR_materials_emissive_strength",
13
+ "KHR_materials_ior",
14
+ "KHR_materials_iridescence",
15
+ "KHR_materials_pbrSpecularGlossiness",
16
+ "KHR_materials_sheen",
17
+ "KHR_materials_specular",
18
+ "KHR_materials_transmission",
19
+ "KHR_materials_unlit",
20
+ "KHR_materials_variants",
21
+ "KHR_materials_volume",
22
+ "KHR_mesh_quantization",
23
+ "KHR_texture_transform"
24
+ ]);
25
+ export function loadCurrentRoutesAssetManifest(path = "fixtures/threejs-parity/assets/manifest.json") {
26
+ return JSON.parse(readFileSync(resolve(path), "utf8"));
27
+ }
28
+ export function inspectCurrentRoutesGlb(path) {
29
+ const data = readFileSync(resolve(path));
30
+ if (data.byteLength < 20 || data.readUInt32LE(0) !== GLB_MAGIC) {
31
+ throw new Error(`Not a GLB file: ${path}`);
32
+ }
33
+ const version = data.readUInt32LE(4);
34
+ const jsonChunkBytes = data.readUInt32LE(12);
35
+ const jsonChunkType = data.readUInt32LE(16);
36
+ if (jsonChunkType !== JSON_CHUNK_TYPE) {
37
+ throw new Error(`GLB missing JSON chunk: ${path}`);
38
+ }
39
+ const gltf = JSON.parse(data.toString("utf8", 20, 20 + jsonChunkBytes).trim());
40
+ const meshes = gltf.meshes ?? [];
41
+ const materials = gltf.materials ?? [];
42
+ const primitives = meshes.flatMap((mesh) => mesh.primitives ?? []);
43
+ const textureInfos = materials.flatMap((material) => collectMaterialTextureInfos(material));
44
+ const extensionsUsed = [
45
+ ...new Set([
46
+ ...(gltf.extensionsUsed ?? []),
47
+ ...materials.flatMap((material) => Object.keys(material.extensions ?? {})),
48
+ ...primitives.flatMap((primitive) => Object.keys(primitive.extensions ?? {}))
49
+ ])
50
+ ].sort();
51
+ const materialVariantCount = countMaterialVariants(gltf);
52
+ const materialExtensionCount = materials.reduce((total, material) => total + Object.keys(material.extensions ?? {}).length, 0);
53
+ const textureTransformCount = textureInfos.filter((textureInfo) => Boolean(textureInfo.extensions?.KHR_texture_transform)).length;
54
+ const animationChannelCount = (gltf.animations ?? []).reduce((total, animation) => total + (animation.channels?.length ?? 0), 0);
55
+ const animationSamplerCount = (gltf.animations ?? []).reduce((total, animation) => total + (animation.samplers?.length ?? 0), 0);
56
+ const morphTargetCounts = primitives.map((primitive) => primitive.targets?.length ?? 0);
57
+ const skinJointCounts = (gltf.skins ?? []).map((skin) => skin.joints?.length ?? 0);
58
+ const vertexCount = primitives.reduce((total, primitive) => total + accessorCount(gltf, primitive.attributes?.POSITION), 0);
59
+ const triangleCount = primitives.reduce((total, primitive) => total + primitiveTriangleCount(gltf, primitive), 0);
60
+ const unsupportedRequiredExtensions = (gltf.extensionsRequired ?? []).filter((extension) => !SUPPORTED_REQUIRED_EXTENSIONS.has(extension));
61
+ const features = [
62
+ ...(triangleCount > 1000 ? ["real-geometry"] : []),
63
+ ...(materials.length > 0 ? ["materials"] : []),
64
+ ...(textureInfos.length > 0 ? ["textures"] : []),
65
+ ...(materials.some((material) => material.pbrMetallicRoughness) ? ["pbr-metallic-roughness"] : []),
66
+ ...(materials.some((material) => material.normalTexture) ? ["normal-texture"] : []),
67
+ ...(materials.some((material) => material.occlusionTexture || material.pbrMetallicRoughness?.metallicRoughnessTexture) ? ["orm-texture"] : []),
68
+ ...(materials.some((material) => material.emissiveTexture) ? ["emissive-texture"] : []),
69
+ ...(materialExtensionCount > 0 ? ["material-extensions"] : []),
70
+ ...(textureTransformCount > 0 ? ["texture-transform"] : []),
71
+ ...(materialVariantCount > 0 ? ["material-variants"] : []),
72
+ ...((gltf.animations?.length ?? 0) > 0 ? ["animation"] : []),
73
+ ...((gltf.skins?.length ?? 0) > 0 ? ["skinning"] : []),
74
+ ...(morphTargetCounts.some((count) => count > 0) ? ["morph-targets"] : [])
75
+ ];
76
+ return {
77
+ validGlb: true,
78
+ version,
79
+ jsonChunkBytes,
80
+ sceneCount: gltf.scenes?.length ?? 0,
81
+ nodeCount: gltf.nodes?.length ?? 0,
82
+ meshCount: meshes.length,
83
+ primitiveCount: primitives.length,
84
+ vertexCount,
85
+ triangleCount,
86
+ materialCount: materials.length,
87
+ texturedPbrMaterialCount: materials.filter((material) => {
88
+ const pbr = material.pbrMetallicRoughness;
89
+ return Boolean(pbr?.baseColorTexture || pbr?.metallicRoughnessTexture || material.normalTexture || material.occlusionTexture || material.emissiveTexture);
90
+ }).length,
91
+ textureCount: gltf.textures?.length ?? 0,
92
+ imageCount: gltf.images?.length ?? 0,
93
+ animationCount: gltf.animations?.length ?? 0,
94
+ animationChannelCount,
95
+ animationSamplerCount,
96
+ skinCount: gltf.skins?.length ?? 0,
97
+ jointCount: skinJointCounts.reduce((total, count) => total + count, 0),
98
+ morphTargetPrimitiveCount: morphTargetCounts.filter((count) => count > 0).length,
99
+ morphTargetCount: morphTargetCounts.reduce((total, count) => total + count, 0),
100
+ materialExtensionCount,
101
+ materialTextureSlotCount: textureInfos.length,
102
+ textureTransformCount,
103
+ materialVariantCount,
104
+ extensionsUsed,
105
+ extensionsRequired: gltf.extensionsRequired ?? [],
106
+ features,
107
+ unsupportedRequiredExtensions
108
+ };
109
+ }
110
+ export function createAdvancedAssetCorpusSummary(manifest = loadCurrentRoutesAssetManifest()) {
111
+ const entries = manifest.assets.map((asset) => {
112
+ const path = resolve(asset.localPath);
113
+ const exists = existsSync(path);
114
+ const bytesMatch = exists && statSync(path).size === asset.bytes;
115
+ const sha256Matches = exists && sha256(path) === asset.sha256;
116
+ const inspection = exists ? inspectCurrentRoutesGlb(path) : null;
117
+ const missingDeclaredFields = [
118
+ ...requiredText(asset.id, "source", asset.source),
119
+ ...requiredText(asset.id, "sourceUri", asset.sourceUri),
120
+ ...requiredText(asset.id, "license", asset.license),
121
+ ...requiredText(asset.id, "sha256", asset.sha256),
122
+ ...(asset.bytes > 0 ? [] : [`${asset.id}.bytes`]),
123
+ ...(asset.triangleCount > 0 ? [] : [`${asset.id}.triangleCount`]),
124
+ ...(asset.tags.length > 0 ? [] : [`${asset.id}.tags`])
125
+ ];
126
+ const featureSet = new Set(inspection?.features ?? []);
127
+ const missingRequiredFeatures = asset.requiredFeatures.filter((feature) => !featureSet.has(feature));
128
+ const metadataMismatches = inspection ? [
129
+ ...(asset.triangleCount === inspection.triangleCount ? [] : [`${asset.id}.triangleCount expected ${asset.triangleCount} actual ${inspection.triangleCount}`]),
130
+ ...(asset.textureCount === inspection.textureCount ? [] : [`${asset.id}.textureCount expected ${asset.textureCount} actual ${inspection.textureCount}`]),
131
+ ...(asset.animationCount === inspection.animationCount ? [] : [`${asset.id}.animationCount expected ${asset.animationCount} actual ${inspection.animationCount}`]),
132
+ ...(asset.skinCount === inspection.skinCount ? [] : [`${asset.id}.skinCount expected ${asset.skinCount} actual ${inspection.skinCount}`]),
133
+ ...(asset.morphTargetCount === inspection.morphTargetCount ? [] : [`${asset.id}.morphTargetCount expected ${asset.morphTargetCount} actual ${inspection.morphTargetCount}`]),
134
+ ...(asset.materialExtensionCount === inspection.materialExtensionCount ? [] : [`${asset.id}.materialExtensionCount expected ${asset.materialExtensionCount} actual ${inspection.materialExtensionCount}`])
135
+ ] : [];
136
+ return {
137
+ id: asset.id,
138
+ localPath: asset.localPath,
139
+ exists,
140
+ bytesMatch,
141
+ sha256Matches,
142
+ missingDeclaredFields: [...missingDeclaredFields, ...metadataMismatches],
143
+ missingRequiredFeatures,
144
+ inspection
145
+ };
146
+ });
147
+ const environments = manifest.environments.map((environment) => {
148
+ const path = resolve(environment.localPath);
149
+ const exists = existsSync(path);
150
+ return {
151
+ id: environment.id,
152
+ localPath: environment.localPath,
153
+ exists,
154
+ bytesMatch: exists && statSync(path).size === environment.bytes,
155
+ sha256Matches: exists && sha256(path) === environment.sha256,
156
+ bytes: exists ? statSync(path).size : 0
157
+ };
158
+ });
159
+ const inspections = entries.flatMap((entry) => entry.inspection ? [entry.inspection] : []);
160
+ const totalBytes = manifest.assets.reduce((total, asset) => total + asset.bytes, 0) + manifest.environments.reduce((total, environment) => total + environment.bytes, 0);
161
+ const totalTriangles = inspections.reduce((total, inspection) => total + inspection.triangleCount, 0);
162
+ const classCoverage = [...new Set(manifest.assets.map((asset) => asset.class))].sort();
163
+ const featureCoverage = [...new Set(inspections.flatMap((inspection) => inspection.features))].sort();
164
+ const texturedPbrAssetCount = entries.filter((entry) => (entry.inspection?.texturedPbrMaterialCount ?? 0) > 0).length;
165
+ const animationAssetCount = entries.filter((entry) => (entry.inspection?.animationCount ?? 0) > 0).length;
166
+ const skinAssetCount = entries.filter((entry) => (entry.inspection?.skinCount ?? 0) > 0).length;
167
+ const morphAssetCount = entries.filter((entry) => (entry.inspection?.morphTargetCount ?? 0) > 0).length;
168
+ const materialExtensionAssetCount = entries.filter((entry) => (entry.inspection?.materialExtensionCount ?? 0) > 0).length;
169
+ const failures = [
170
+ ...(manifest.assets.length < manifest.requirements.minimumAssetCount ? [`asset count ${manifest.assets.length} is below ${manifest.requirements.minimumAssetCount}`] : []),
171
+ ...(entries.some((entry) => !entry.exists) ? ["one or more assets are missing from fixtures/threejs-parity"] : []),
172
+ ...(entries.some((entry) => !entry.bytesMatch) ? ["one or more asset byte sizes do not match manifest"] : []),
173
+ ...(entries.some((entry) => !entry.sha256Matches) ? ["one or more asset sha256 checks do not match manifest"] : []),
174
+ ...(entries.some((entry) => entry.missingDeclaredFields.length > 0) ? ["one or more assets are missing source/license/checksum/tags"] : []),
175
+ ...(entries.some((entry) => entry.missingRequiredFeatures.length > 0) ? ["one or more assets are missing required declared GLB features"] : []),
176
+ ...(inspections.some((inspection) => inspection.unsupportedRequiredExtensions.length > 0) ? ["one or more GLBs require unsupported extensions"] : []),
177
+ ...(environments.some((entry) => !entry.exists || !entry.bytesMatch || !entry.sha256Matches) ? ["one or more HDR environments failed checksum validation"] : []),
178
+ ...(totalBytes < manifest.requirements.minimumTotalBytes ? [`total corpus bytes ${totalBytes} is below ${manifest.requirements.minimumTotalBytes}`] : []),
179
+ ...(totalTriangles < manifest.requirements.minimumTotalTriangles ? [`total triangle count ${totalTriangles} is below ${manifest.requirements.minimumTotalTriangles}`] : []),
180
+ ...(texturedPbrAssetCount < manifest.requirements.minimumTexturedPbrAssets ? ["too few textured PBR assets"] : []),
181
+ ...(animationAssetCount < manifest.requirements.minimumAnimationAssets ? ["too few animated assets"] : []),
182
+ ...(skinAssetCount < manifest.requirements.minimumSkinAssets ? ["too few skinned assets"] : []),
183
+ ...(morphAssetCount < manifest.requirements.minimumMorphAssets ? ["too few morph assets"] : []),
184
+ ...(materialExtensionAssetCount < manifest.requirements.minimumMaterialExtensionAssets ? ["too few material-extension assets"] : []),
185
+ ...manifest.requirements.requiredClasses.filter((assetClass) => !classCoverage.includes(assetClass)).map((assetClass) => `missing asset class ${assetClass}`),
186
+ ...manifest.requirements.requiredFeatures.filter((feature) => !featureCoverage.includes(feature)).map((feature) => `missing corpus feature ${feature}`)
187
+ ];
188
+ return {
189
+ schema: "a3d-current-routes-asset-readiness",
190
+ pass: failures.length === 0,
191
+ assetCount: manifest.assets.length,
192
+ environmentCount: manifest.environments.length,
193
+ existingAssetCount: entries.filter((entry) => entry.exists).length,
194
+ shaVerifiedAssetCount: entries.filter((entry) => entry.sha256Matches).length,
195
+ totalBytes,
196
+ totalTriangles,
197
+ texturedPbrAssetCount,
198
+ animationAssetCount,
199
+ skinAssetCount,
200
+ morphAssetCount,
201
+ materialExtensionAssetCount,
202
+ classCoverage,
203
+ featureCoverage,
204
+ failures,
205
+ entries,
206
+ environments
207
+ };
208
+ }
209
+ export function writeAdvancedAssetCorpusReport(path = "tests/reports/current-routes-assets.json") {
210
+ const summary = createAdvancedAssetCorpusSummary();
211
+ const outputPath = resolve(path);
212
+ writeFileSync(outputPath, `${JSON.stringify(summary, null, 2)}\n`);
213
+ return summary;
214
+ }
215
+ function collectMaterialTextureInfos(material) {
216
+ const extensionTextureInfos = Object.values(material.extensions ?? {}).flatMap((extension) => {
217
+ if (!extension || typeof extension !== "object")
218
+ return [];
219
+ return Object.entries(extension)
220
+ .filter(([key, value]) => /Texture$/.test(key) && value && typeof value === "object")
221
+ .map(([, value]) => value);
222
+ });
223
+ return [
224
+ ...[material.pbrMetallicRoughness?.baseColorTexture, material.pbrMetallicRoughness?.metallicRoughnessTexture],
225
+ material.normalTexture,
226
+ material.occlusionTexture,
227
+ material.emissiveTexture,
228
+ ...extensionTextureInfos
229
+ ].filter((textureInfo) => Boolean(textureInfo));
230
+ }
231
+ function countMaterialVariants(gltf) {
232
+ const rootVariants = gltf.extensions?.KHR_materials_variants;
233
+ const primitiveVariantMappings = (gltf.meshes ?? [])
234
+ .flatMap((mesh) => mesh.primitives ?? [])
235
+ .flatMap((primitive) => {
236
+ const variants = primitive.extensions?.KHR_materials_variants;
237
+ return variants?.mappings ?? [];
238
+ });
239
+ return (rootVariants?.variants?.length ?? 0) + primitiveVariantMappings.length;
240
+ }
241
+ function primitiveTriangleCount(gltf, primitive) {
242
+ const primitiveCount = primitive.indices === undefined
243
+ ? accessorCount(gltf, primitive.attributes?.POSITION)
244
+ : accessorCount(gltf, primitive.indices);
245
+ switch (primitive.mode ?? 4) {
246
+ case 4:
247
+ return Math.floor(primitiveCount / 3);
248
+ case 5:
249
+ case 6:
250
+ return Math.max(0, primitiveCount - 2);
251
+ default:
252
+ return 0;
253
+ }
254
+ }
255
+ function accessorCount(gltf, accessorIndex) {
256
+ if (accessorIndex === undefined)
257
+ return 0;
258
+ return gltf.accessors?.[accessorIndex]?.count ?? 0;
259
+ }
260
+ function requiredText(id, field, value) {
261
+ return value.trim().length > 0 ? [] : [`${id}.${field}`];
262
+ }
263
+ function sha256(path) {
264
+ return createHash("sha256").update(readFileSync(path)).digest("hex");
265
+ }
266
+ //# sourceMappingURL=AdvancedAssetCorpus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdvancedAssetCorpus.js","sourceRoot":"","sources":["../../../../packages/assets/src/AdvancedAssetCorpus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,eAAe,GAAG,UAAU,CAAC;AAoLnC,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC5C,qBAAqB;IACrB,0BAA0B;IAC1B,yBAAyB;IACzB,oCAAoC;IACpC,0BAA0B;IAC1B,iCAAiC;IACjC,mBAAmB;IACnB,2BAA2B;IAC3B,qCAAqC;IACrC,qBAAqB;IACrB,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,UAAU,8BAA8B,CAAC,IAAI,GAAG,8CAA8C;IAClG,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAA+B,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAa,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5F,MAAM,cAAc,GAAG;QACrB,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;YAC9B,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAC1E,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SAC9E,CAAC;KACH,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/H,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC;IAClI,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjI,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjI,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5H,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,MAAM,6BAA6B,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3I,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9I,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,OAAO;QACP,cAAc;QACd,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,cAAc,EAAE,UAAU,CAAC,MAAM;QACjC,WAAW;QACX,aAAa;QACb,aAAa,EAAE,SAAS,CAAC,MAAM;QAC/B,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,oBAAoB,CAAC;YAC1C,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,IAAI,GAAG,EAAE,wBAAwB,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5J,CAAC,CAAC,CAAC,MAAM;QACT,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;QACxC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QACpC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;QAC5C,qBAAqB;QACrB,qBAAqB;QACrB,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;QAClC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QACtE,yBAAyB,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM;QAChF,gBAAgB,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9E,sBAAsB;QACtB,wBAAwB,EAAE,YAAY,CAAC,MAAM;QAC7C,qBAAqB;QACrB,oBAAoB;QACpB,cAAc;QACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;QACjD,QAAQ;QACR,6BAA6B;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAAQ,GAAG,8BAA8B,EAAE;IAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoC,EAAE;QAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC;QACjE,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC;QAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,qBAAqB,GAAG;YAC5B,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACjD,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;YACvD,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACnD,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;SACvD,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,uBAAuB,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrG,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,2BAA2B,KAAK,CAAC,aAAa,WAAW,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7J,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,0BAA0B,KAAK,CAAC,YAAY,WAAW,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;YACxJ,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,4BAA4B,KAAK,CAAC,cAAc,WAAW,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;YAClK,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,uBAAuB,KAAK,CAAC,SAAS,WAAW,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YACzI,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,8BAA8B,KAAK,CAAC,gBAAgB,WAAW,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5K,GAAG,CAAC,KAAK,CAAC,sBAAsB,KAAK,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,oCAAoC,KAAK,CAAC,sBAAsB,WAAW,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;SAC3M,CAAC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM;YACN,UAAU;YACV,aAAa;YACb,qBAAqB,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;YACxE,uBAAuB;YACvB,UAAU;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAA0C,EAAE;QACrG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM;YACN,UAAU,EAAE,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK;YAC/D,aAAa,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM;YAC5D,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzK,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACtG,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAA+B,CAAC;IACpH,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtG,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,wBAAwB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACtH,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1G,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACxG,MAAM,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAsB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1H,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAa,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1K,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnH,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3I,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/I,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,6BAA6B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrJ,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChK,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,sBAAsB,UAAU,aAAa,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzJ,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,wBAAwB,cAAc,aAAa,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3K,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,2BAA2B,GAAG,QAAQ,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpI,GAAG,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,uBAAuB,UAAU,EAAE,CAAC;QAC7J,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,OAAO,EAAE,CAAC;KACxJ,CAAC;IACF,OAAO;QACL,MAAM,EAAE,oCAAoC;QAC5C,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;QAClC,gBAAgB,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM;QAC9C,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM;QAClE,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM;QAC5E,UAAU;QACV,cAAc;QACd,qBAAqB;QACrB,mBAAmB;QACnB,cAAc;QACd,eAAe;QACf,2BAA2B;QAC3B,aAAa;QACb,eAAe;QACf,QAAQ;QACR,OAAO;QACP,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAI,GAAG,0CAA0C;IAC9F,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAoD;IACvF,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC3F,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,SAAoC,CAAC;aACxD,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;aACpF,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAoB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO;QACL,GAAG,CAAC,QAAQ,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;QAC7G,QAAQ,CAAC,aAAa;QACtB,QAAQ,CAAC,gBAAgB;QACzB,QAAQ,CAAC,eAAe;QACxB,GAAG,qBAAqB;KACzB,CAAC,MAAM,CAAC,CAAC,WAAW,EAA8B,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,sBAAgF,CAAC;IACvH,MAAM,wBAAwB,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;SACjD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;SACxC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,EAAE,sBAAgF,CAAC;QACxH,OAAO,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC;AACjF,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAc,EAAE,SAAqF;IACnI,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS;QACpD,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC;QACrD,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QACzC;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAc,EAAE,aAAiC;IACtE,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,KAAa,EAAE,KAAa;IAC5D,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,62 @@
1
+ export type AssetBundleCacheEvictionPolicy = "lru" | "lfu" | "fifo" | "ttl" | "size";
2
+ export interface AssetBundleCacheInput {
3
+ readonly assetId: string;
4
+ readonly url: string;
5
+ readonly meshCount: number;
6
+ readonly materialCount: number;
7
+ readonly textureCount: number;
8
+ readonly animationCount: number;
9
+ readonly skinCount: number;
10
+ readonly morphTargetCount: number;
11
+ readonly decodedTextureBytes?: number;
12
+ }
13
+ export interface AssetBundleManifestEvidenceEntry {
14
+ readonly id: string;
15
+ readonly path: string;
16
+ readonly type: "document" | "buffer" | "texture" | "material" | "animation" | "metadata";
17
+ readonly sizeBytes: number;
18
+ readonly dependencies: readonly string[];
19
+ }
20
+ export interface AssetBundleCacheEvidence {
21
+ readonly source: "origin-master-asset-bundle-cache-adapted";
22
+ readonly manifest: {
23
+ readonly id: string;
24
+ readonly version: "external-parity-generated";
25
+ readonly assetCount: number;
26
+ readonly totalBytes: number;
27
+ readonly entries: readonly AssetBundleManifestEvidenceEntry[];
28
+ };
29
+ readonly dependencyGraph: {
30
+ readonly rootAssetId: string;
31
+ readonly loadOrder: readonly string[];
32
+ readonly releaseOrder: readonly string[];
33
+ readonly directDependencies: readonly string[];
34
+ readonly transitiveDependencies: readonly string[];
35
+ readonly cycleDetected: false;
36
+ };
37
+ readonly cache: {
38
+ readonly policy: AssetBundleCacheEvictionPolicy;
39
+ readonly maxEntries: number;
40
+ readonly maxBytes: number;
41
+ readonly cachedEntries: number;
42
+ readonly memoryBytes: number;
43
+ readonly hits: number;
44
+ readonly misses: number;
45
+ readonly evictions: number;
46
+ readonly hitRate: number;
47
+ readonly retainedAssetIds: readonly string[];
48
+ readonly evictedAssetIds: readonly string[];
49
+ };
50
+ readonly productionReadiness: {
51
+ readonly bundleManifest: true;
52
+ readonly dependencySorting: true;
53
+ readonly memoryBudgetEviction: true;
54
+ readonly cacheTelemetry: true;
55
+ readonly inFlightDeduplicationBoundary: true;
56
+ };
57
+ readonly blockedClaims: readonly string[];
58
+ readonly claimBoundary: string;
59
+ readonly hash: string;
60
+ }
61
+ export declare function createAssetBundleCacheEvidence(input: AssetBundleCacheInput): AssetBundleCacheEvidence;
62
+ //# sourceMappingURL=AssetBundleCacheFixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetBundleCacheFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/AssetBundleCacheFixtures.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,8BAA8B,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACzF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,0CAA0C,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;QAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,gCAAgC,EAAE,CAAC;KAC/D,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE;QACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;QAC/C,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;QACnD,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;QAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;QAC7C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7C,CAAC;IACF,QAAQ,CAAC,mBAAmB,EAAE;QAC5B,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACjC,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC;QACpC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;QAC9B,QAAQ,CAAC,6BAA6B,EAAE,IAAI,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB,CA+CrG"}